summaryrefslogtreecommitdiffstats
path: root/import-layers
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2017-02-23 20:41:17 -0600
committerPatrick Williams <patrick@stwcx.xyz>2017-03-29 13:00:27 -0500
commitc0f7c04c3041b951defd78886f86fde99dcd8c08 (patch)
tree5f7883711c3d55df52d31f71822c8dc347154cfe /import-layers
parent217b5ac4fff609787b45e58df7998317b19f2b43 (diff)
downloadtalos-openbmc-c0f7c04c3041b951defd78886f86fde99dcd8c08.tar.gz
talos-openbmc-c0f7c04c3041b951defd78886f86fde99dcd8c08.zip
Squashed 'import-layers/yocto-poky/'.
dc8508f build-applance-image: Fix to use the release branch for morty bf5dd36 build-appliance-image: Update to morty head revision 746c681 meta-yocto-bsp: linux-yocto: bump to the latest stable version for non-x86 BSPs 73aa36e linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 cddb7f1 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 3999037 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.8 e09163a linux-yocto/4.8: sync preempt-rt with upstream project 2c0efd2 devtool: runqemu: work around runqemu script path assumption fb1df18 image_types: Use softer setting of WKS_FILE e127d01 ref-manual: Removed host package requirements for SDK 0915ee7 ref-manual: Applied minor corrections to 2.2 migration section. 7c3cdf8 yocto-project-qs: Created two sub-sections for the "Build" section. 9ae4ab5 yocto-project-qs: Fixed the example to use 'dd' instead of 'mkefidisk.sh' e40a8d7 ref-manual: Added BBMULTICONFIG glossary description. 5e0d634 dev-manual: Added section for multi-configuration support 41e7488 ref-manual: Updated 2.2 migration for runqemu porting to python 952a47b buildstats: check IMAGE_ROOTFS exists before checking its size 74f30e9 build-appliance-image: add /sbin to PATH 143f9a3 linux-yocto/4.8: update to v4.8.3 4fd9b03 linux-yocto/4.1: fix CVE-2016-5195 (dirtycow) d9f9b52 linux-yocto/4.4: update to v4.4.26 a8a4817 kern-tools: make patches with shell-unsafe characters valid a32f8ce linux-yocto/4.4/4.8: kernel config warning cleanups ef627ab local.conf.sample.extended: remove RM_OLD_IMAGE 9c04beb ref-manual: Removed RM_OLD_IMAGE variable description. b6eef65 ref-manual: Added more to migration 2.2 runqemu ported to python. f9ea0a8 ref-manual: Updated the 2.2 Migration section with review changes. d669b83 ref-manual: Added links for migration BitBake change. 3a5b86e ref-manual: Fixed missing title for migration section. a6752eb ref-manual: Added the 2.2 Migration guide section. 2b08a28 ref-manual: Added note to RM_OLD_IMAGE indicating redundancy 97ac701 ref-manual: Changed BB_SETSCENE_VERIFY_FUNCTION name 069adf7 build-appliance-image: Update to master head revision 4b94b49 bitbake: toaster: Update default release to Morty 3332426 bitbake: toaster: Update poky fixture for Morty release 7656dea bitbake: toaster: Update oe-core fixture for Morty release 0fc03be linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 Upgrades to Linux 4.4.22 bf16e8b linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 Upgrades to Linux 4.1.33 06e0718 README.hardware: update Edgerouter section fb49654 edgerouter.conf: produce wic images for Edgerouter 8bc037f poky-tiny.conf: set QB_DEFAULT_FSTYPE to IMAGE_FSTYPES cd271d2 README.hardware: update Beaglebone section 924ca10 bitbake: bb.event: fix infinite loop on print_ui_queue 24abb88 binutils: Fix gas error with cfi_section inconsistencies be587db libxml2: Make tests non-executable 2a2592e bind: fix two CVEs 5dba357 rpm: prevent race in tempdir creation 901e632 insane.bbclass: fix package_qa_check_arch() for mips64-o32 34b16fe arch-mips.inc: remove duplicates from PACKAGE_ARCHS 8d3a272 ppp: fix building with linux-4.8 21d5c58 Revert "linux-libc-headers: fix in/if.h includes" b2726f7 populate_sdk_ext: explicitly set DL_DIR 7052400 sqlite3: Revert ad601c7962 from 3.14.1 amalgamation package d8adf58 linux-yocto.inc: ensure do_kernel_link_images runs before do_strip 76f42d6 binutils: fix for MIPS "Can't find matching LO16 reloc" errors ee835e1 libgpg-error: Make case generic for MIPS 704c8b8 live-vm-common.bbclass: Allow to use different kernel image than KERNEL_IMAGETYPE for /vmlinuz 65eb514 image_types.bbclass: add dependency do_image_wic -> do_bootimg 1d3b825 libxcb: use python3 to build it ede3319 xcb-proto: fix for python3 a489cb1 xcb-proto: create .pyc files for python2 49d189e package_tar: avoid chdir warnings and restore cwd after packaging a618501 source-highlight: use with-boost-libdir a35493d insane.bbclass: Additional "mips" and "mipsel" machine definitions ca3c782 kernel-arch.bbclass: Add xtensa and arc into valid_archs table 9ab52c8 libxrender: remove spurious build dependency d46883c libxext: remove spurious dependencies 95a7729 libxext: remove stale git recipe 4e1b9d5 cmake: improve CMAKE_SYSTEM_PROCESSOR assignment in nativesdk 62a0163 cmake: also set CMAKE_FIND_ROOT_PATH_MODE_PACKAGE b7b2e34 base-files: fix profile error under < /dev/null f683658 x86-base: Update version to 4.8 7c32a77 pixbufcache: handle gdk-pixbuf not being present 76b0c18 librsvg: remove redundant assignment 751cb2c Remove RM_OLD_IMAGE, it's no longer useful 1a95d4a bitbake: bitbake-user-manual: Changed BB_SETSCENE_VERIFY_FUNCTION name 19d39be bitbake: bitbake-user-manual: Fixes small typos for 'addtask' section ce70355 bitbake: bitbake-user-manual: Updated the [noexec] and [nostamp] flag descriptions 1d4031a bitbake: bitbake-user-manual: Fleshed out the "addtask" documentation eedb264 bitbake: bitbake-user-manual: Updated the datastore functions b2f1d21 dev-manual: Re-wrote the remote GDB debugging section. 551f7d8 dev-manual: Applied review comments to "Packaging Externally Produced Binaries" cbc5986 bsp-guide: Updated the yocto-bsp create selections in the example. 4616a47 toaster-manual: Added video link to 2.2 Toaster Intro. 13033b2 yocto-project-qs: Fixed Minnow MAX build example 371ab63 build-appliance-image: Update to master head revision a75bccd bitbake: runqueue.py: Remove redundant whitelist checks f725929 classes/externalsrc: re-run do_configure when configure files change 2d60ffc poky.conf: fix DISTRO_VERSION 1c85c29 sdk-installer: Fix unclear SDK installer message df80b81 sysklogd and busybox: ignore return code from init script stop 83e4e27 update-rc.d.bbclass: ignore init script return code a003a92 insane: display names instead of ELF machine numbers 8419817 lib/oe/qa: add ELF machine to string function 1de0cc9 build-appliance-image: Update to master head revision 9304fcc vte: Build without vala by default 4a7eb4b build-appliance-image: Update to master head revision 1b1bc79 ref-manual: Updated the USERADD_ERROR_DYNAMIC and USERADDEXTENSION variables. 96b9007 dev-manual: Updated "Packaging Externally Produced Binaries" 2cd0125 bsp-guide: Updated the yocto-bsp create output in the example. 684a875 ref-manual: Added link in the SYSROOT_DIRS_NATIVE description cda7141 ref-manual: Review edits to do_populate_sysroot and SYSROOT_DIRS_NATIVE 6be52dd ref-manual: Updated three SYSROOT_DIRS* variables. d31a826 ref-manual: Updated the do_sysroot_populate task description. 1053502 ref-manual: Updated QA error message. 3b4987a ref-manual: Added note about bb.fatal() raising an exception. b1e4d96 documentation: Updated Manual revision table for 2.2 8312ba8 ref-manual: Applied review changes to the STAGING_DIR_HOST aaeb1ee ref-manual: Added a reference to viewing task variable dependencies. 2da62c5 yocto-project-qs: Altered MinnowBoard MAX example ca2b282 mega-manual: Added new chapters to support building the manual 8e57e88 poky.ent: Updated the variables for Morty release. 5f146e5 dev-manual: Added new section on recipe style guidelines 81698ab dev-manual: Fixed missing quote in SRC_URI example. ca85107 ref-manual: Updated build/tmp/cache/ reference section 7ff22fc sdk-manual: Fixed example in "Passing Host Options" 2083e83 ref-manual: Updated the STAGING_DIR_HOST variable description. c2c052e ref-manual: Added explanation of the -C option e2083c0 dev-manual: Fixed IMAGE_FEATURES examples in debug section. 6ec45ef dev-manual: Update to GPL file finder script. 45a8da9 poky.conf: Bump version for 2.2.0 morty release 9756e53 bitbake: bitbake: Update version to 1.32.0 45f7221 archiver: fix gcc-source handling 0f042b1 bitbake: depexp: Close UI with error message on NoProvider event b8f4804 genericx86-common.inc: add dependency do_image_wic -> do_bootimg d9809e9 README.hardware: Update Genericx86 section 68c6457 genericx86-common.inc: produce EFI wic image 58d0abe linux-yocto: linux 4.4: bump to the latest stable version for non-x86 BSPs f51158b linux-yocto: linux 4.1: bump to the latest stable version for non-x86 BSPs b8499e7 linux-yocto: linux 4.8: bump to the final v4.8 release for non-x86 BSPs 0f25619 net-tools: fix building with linux-4.8 40f262f Revert "linux-libc-headers: if_tunnel: remove include of if/ip/in6.h" a8efeb7 canned-wks: use GPT partition table a7648af systemd-bootdisk.wks: update kernel command line 55a8fe7 flex: Backport buffer overflow fix 2109c62 flex: Update upstream check uri fbdeb3f gnutls: Backport certificate check fix b9d6a7c bitbake: main: Check bitbake server-only port is a number 77e5619 bitbake: runqueue: Optimise task id string manipulations 146eb22 bitbake: toaster: fix cloning of git+ssh repositories f436629 bitbake: bb.runqueue: fix unexpected process death logic 31aafe6 bitbake: ui/knotty.py: Fix signal handling of SIGWINCH in BBProgress 9489382 testimage: disable build tests for qemumips and qemumips64 b5e8924 mkgummidisk.wks: update kernel command line 2f7c6bb mklibs-native: update broken SRC_URI 8209a01 gcc-runtime.inc: Add CPP support for x86-64-x32 tune 1b55ee1 libgcc-common.inc: Fix broken symlinks for multilib SDK 65107a9 machine.cfg: Unset CONFIG_64BIT for qemu i386 architecture b872e2b linux-yocto/4.8: Enable R8169 driver since its needed by supported platforms ac647ea update-rc.d.bbclass: check that init script is executable before running it 3536271 classes/populate_sdk_ext: add symlinks and unfsd to support Eclipse plugin 78c0199 oeqa/sshcontrol: Handle interrupted system call error 3c1faa1 u-boot: Add support to use uboot-extlinux-config class 7df1951 classes/uboot-extlinux-config: Add class 09a9de4 wic: selftest: add test for sdimage-bootpart bed4a13 wic: selftest: add test for systemd-bootdisk 33bed1e security_flags: Diable PIE for mesa-gl 926a1e6 mkefidisk.wks: update kernel command line dc67037 mkefidisk.wks: use MSDOS partition table 12ea11e wic: rewrite MBR disk identifier 5763d8f9 wic: generate PARTUUID for MDOS partitions e8ce508 wic: set PARTUUID only for gpt partition table 1ddd23c linuxloader.bbclass: Adjust mips to cover all mips/mips64 8be92dc arch-mips: Add mipsisa{32, 64}r6{el, } tunes 559f52f gcc-configure: Add mipsisa{32, 64}r6{el, } support 561e7e1 glibc: Add mipsisa{32, 64}r6{el, } support 4ab8b8f bitbake.conf: Add mipsisa{32, 64}r6{el, } support 80a4239 siteinfo.bbclass: Add mipsisa{32, 64}r6{el, } support 8535ed9 linuxloader.bbclass: Add mipsisa{32, 64}r6{el, } support ba8bfee libc-package.bbclass: Add mipsisa{32, 64}r6{el, } support caf7e84 kernel-arch.bbclass: Add mipsisa{32, 64}r6{el, } support 4ec02b3 insane.bbclass: Add mipsisa{32, 64}r6{el, } 0623259 pseudo: backport a patch to fix renameat() e96af0c xmlto: Add libxslt to native DEPENDS ef7828c utils.bbclass: add function to check for git config user 4454d02 bitbake: toaster: Update tests to reflect front end changes 7f67977 bitbake: toaster: Delete notification update front end implementation to design 8df5606 bitbake: toaster: importlayer Fix layer dependencies button state toggle 5e9b405 bitbake: toaster: checksettings Remove confusing startup messages 25ea0b6 bitbake: toaster: buildinfohelper: Use correct way to get message from LogMessage fffce32 bitbake: toaster: api / project Cancel any in progress builds before project delete 8c4091a linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.8 510157e bitbake: bitbake-user-manual: Added new section on BB-style functions 04128a6 bitbake: bitbake-user-manual: Updated minor wordings. 7ab459d bitbake: bitbake-user-manual: Added examples for using overrides with functions. dda8ed0 bitbake: bitbake-user-manual: Fixed grammar from missing word f12825d scripts: Rename 'native' to 'oe-run-native' ce7e025 uninative: users can override download site 35ca6ad icecc.bbclass: replace os.popen with subprocess.check_output 3c51b74 devtool: modify command fails to ignore source files 79286b4 populate_sdk_base.bbclass: Make do_populate_sdk depend on PACKAGE_EXCLUDE_COMPLEMENTARY 27d947c image.bbclass: Make do_rootfs depend on PACKAGE_EXCLUDE_COMPLEMENTARY d067b0e package_manager.py: Allow multiple regexps in PACKAGE_EXCLUDE_COMPLEMENTARY 2334201 package_manager.py: Allow a leading - in PACKAGE_EXCLUDE_COMPLEMENTARY b16001f oeqa.buildperf: measure apparent size instead of real disk usage 4189a19 bitbake: toaster: add Font Awesome license 7d27275 bitbake: bb.build: in _exec_task, catch errors from TaskStarted 1110dde bitbake: event: prevent unclosed file warning in print_ui_queue 079396f gtk+3: Backport treeview focus fix 5f6a62c linux-yocto/4.8: fix BUG_ON() in workingset_node_shadows_dec() triggers 84113ca pigz: Update SRC_URI c43aed1 perf: Fix to obey LD failure ff3c3b8 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for x86-64 arch 8cdef44 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for PowerPC arch 338c775 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for qemu arch fc34ac0 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for i386 arch f43da79 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for MIPS64 arch eb62965 machine.conf: Remove duplicate xserver choices fe18ded yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for MIPS arch 6020616 yocto-bsp: linux-yocto recipes update (4.4 to 4.8) for arm arch 3812e9f bitbake: bitbake: Update version to 1.31.2 79012f9 bitbake: bb/event.py: fire_ui_handlers enable threading lock support 45f401a sanity: Update minimum version requirement to 1.31.2 f5f3ccf alsa-lib: allow building ARM thumb again 7923647 devtool: deploy-target: Avoid unnecessary dependency on awk on the target ed12917 parselogs.py: Add disabling eDP error to x86_common whitelist f205384 classes/sstate.bbclass: Enable thread lock when checkstatus f1f6993 Revert "gst-player: Disable visualizations" f63e8d2 xf86-video-intel: Upgrade to recent git 28ffbd4 matchbox-panel-2: Fix small systray icon drawing 389cfd2 Revert "connman-gnome: StatusIcon adapts to size changes" bb7468e Revert "attr: Added ncurses to depends" 18caaca devtool: add: build nodejs-native if npm is needed and not available ee697d8 devtool: add: display a warning for deprecated -f/--fetch option 0c5fd7a devtool: add: fix error message when only specifying a recipe name dea7097 base-files: don't export TZ="UTC" from /etc/profile d89e16d oeqa/selftest: Update test after fetcher error changes 1688288 systemtap: rationalise dependencies 25f3a3d json-c: add BBCLASSEXTEND for native and nativesdk fb71f34 linux-libc-headers: if_tunnel: remove include of if/ip/in6.h 8c5ac48 linux-yocto/4.1/4.4: remove innappropriate standard/base patches 7c6b78a linux-libc-headers: fix in/if.h includes f154229 linux-yocto/4.8: update to 4.8 -final release 5ffef79 linux-libc-headers: update to 4.8 final e2290f0 linux-yocto/4.4: update to v4.4.22 d69f01e linux-yocto/4.1: update to 4.1.33 edf08e5 linux-yocto/4.8: mmc configuration for x86* 575ee2d cmake: Use bb.fatal() instead of raising FuncFailed 56be38f testimage.bbclass: Use bb.fatal() instead of raising FuncFailed 4768cd6 utility-tasks.bbclass: Use bb.fatal() instead of raising FuncFailed 4dbb0d7 package.bbclass: Use bb.fatal() instead of raising FuncFailed 4c25460 libc-package.bbclass: Use bb.fatal() instead of raising FuncFailed c5823be testsdk.bbclass: Use bb.fatal() instead of raising FuncFailed fe7a783 chrpath.bbclass: Use bb.fatal() instead of raising FuncFailed 39f80ce sstate.bbclass: Use bb.fatal() instead of raising FuncFailed db6ae52 useradd.bbclass: Use bb.fatal() instead of raising FuncFailed fadc4fc gtk-immodules-cache.bbclass: Use bb.fatal() instead of raising FuncFailed 823acf8 systemd.bbclass: Use bb.fatal() instead of raising FuncFailed 0aaa51e license.bbclass: Use bb.fatal() instead of raising FuncFailed 7f22c97 update-rc.d.bbclass: Use bb.fatal() instead of raising FuncFailed f13bd4b gummiboot.bbclass: Use bb.fatal() instead of raising FuncFailed d11b51d systemd-boot.bbclass: Use bb.fatal() instead of raising FuncFailed 4639810 syslinux.bbclass: Use bb.fatal() instead of raising FuncFailed 103ab2d grub-efi.bbclass: Use bb.fatal() instead of raising FuncFailed 255f260 useradd-staticids.bbclass: Use bb.fatal() instead of raising FuncFailed fc3dc09 package_rpm.bbclass: Use bb.fatal() instead of raising FuncFailed c7d522c package_deb.bbclass: Use bb.fatal() instead of raising FuncFailed 9efdd60 package_ipk.bbclass: Use bb.fatal() instead of raising FuncFailed 4359ef0 base.bbclass: Use bb.fatal() instead of raising FuncFailed 0c9ba38 binutils: apply RPATH fixes from our libtool patches 55e8c3a binutils: fix typo in libtool patch 922a745 classes/native: set lt_cv_sys_lib_dlsearch_path_spec 87acbfe classes/cross: set lt_cv_sys_lib_dlsearch_path_spec 3a73fe0 beaglebone.conf: produce wic images for Beaglebone 642197f bitbake: data: Fix handling of vardepvalueexclude be873a0 machine-sdk: Clear ABIEXTENSION to avoid sstate checksum mismatch issues 2d7df9b oeqa/sstatetests: Add test for multilib allarch checksums ff8fa4c boost: Ensure native recipes have consistent checksums 2ba0fbc gcc-cross: Stop target recipes depending on SDK_SYS 6f03af9 multilib.conf: Ensure sstate checksums don't change when using this include a9b3a6d allarch: Fixes to stop rebuilds when change multilibs d36c703 nativesdk: Don't enable MULTILIBS 7ae326c oeqa/utils: Add StreamHandler to logger 5d96223 subprocess: remove Popen in favor of check_output 1ab3a23 kbd: create ptest sub-package 3159738 mkefidisk.wks: use partition UUID and GPT partition table 7b31253 scripts: add new script 'native' 14cdcbc grub-efi.bbclass: Add a space between root and append parameter a17ce35 build-perf-test-wrapper.sh: accept test case failures e4e6ff3 oe-build-perf-test: return 2 if some tests failed debb7bb multilib_header: avoid sstate checksum issues for -nativesdk recipes 4df4024 build-perf-test-wrapper.sh: show defaults for '-a' and '-w' eb1c8cd build-perf-test-wrapper.sh: check for positional arguments a8002cb runqemu: Add little endian variations for MIPS 4f58013 scripts/buildstats-diff: implement --multi option a235c1b scripts/buildstats-diff: make logger msg format a bit more readable cbbe51f scripts/buildstats-diff: use exception for internal error handling 4cdf47a scripts/buildstats-diff: add walltime to --diff-attr c6047cd scripts/buildstats-diff: add read_ops and write_ops to --diff-attr 44bc3f4 scripts/buildstats-diff: add read_bytes and write_bytes to --diff-attr 01a2b58 scripts/buildstats-diff: introduce --diff-attr e053091 scripts/buildstats-diff: do not hardcode field widths in output 7113ac9 scripts/buildstats-diff: implement BSTask class 4cc1c43 scripts/buildstats-diff: rename --min-time and --min-timediff args 58bd0fd scripts/buildstats-diff: check that the given directory exists d887997 mips64-linux: set ac_cv_sizeof_ssize_t for mips64el a3e5ebe image-buildinfo: restore trailing newline 2056bad linux-yocto.inc: Run kernel_version_sanity_check with final source 0cbd843 tzdata: update to 2016g cdbdca1 tzcode-native: Update to 2016g 7aba4c9 pseudo: quiet diagnostics during startup for pseudo -d 4205c0b libxml-parser-perl: remove redundant expat-native dependency d19645b wic: rename and amend systemd-boot wks file fe01148 bootchart2: Allocate space on heap for collector chunks a75b79a genericx86-64.conf: Add SERIAL_CONSOLES_CHECK = "ttyS0" de34aab bitbake: toaster: make error message more informative af0f679 bitbake: toaster: fix 'Unhandled MetadataEvent' error c7b55ea bitbake: toaster: fix handling of EnvironmentError cc4c02a bitbake: toaster: check if file exist efa8cfb bitbake: toaster: stop modifying OEROOT in toaster script 5b035ed bitbake: toaster: layerdetails Update implementation of delete imported layer ac5aba6 bitbake: toaster: customrecipe Add frontend feature to delete custom image recipe 5b23bf0 bitbake: toaster: importlayer Convert success import to new notification system fbf7e14 bitbake: toaster: Add front end controls for deleting a build 44058c4 bitbake: toaster: Add backend API for deleting a build d209f8b bitbake: toaster: alerts and modals Avoid modals and alerts overlaying each other 0d70606 bitbake: toaster: project page Implement front end feature to delete project 7ca44f5 bitbake: toaster: libtoaster Add a global notification set/show mechanism 8ba7ccd bitbake: toaster: move MostRecentBuildsView to its own widget 4d0bc8d bitbake: toaster: Clean up and convert to rest api project edit and get calls 0b17e6d bitbake: runqueue: Ensure worker failure is accounted for in task statistics 3b6ec40 db: Refresh patches 9393b16 db: Upgrade to 6.0.35 b625335 cross-canadian/libgcc-common: Fixes for arm multilib e0e8cd0 parselogs: Update uvesafb errors in qemu whitelist 5753147 runqemu: explicitly set image format b8f5fda qemuboot: don't fail when QB_DEFAULT_KERNEL isn't symlink e01466f cve-check-tool: report progress when downloading CVE database 0466c81 cve-check-tool: convert do_populate_cve_db() from python to sh 5d8a968 dev-manual: Applied review changes to GNU debugging section. 75e60f1 ref-manual: Updated the DEPENDS variable description b064c34 dev-manual: Updated the example to identify GPL files. 2199b68 dev-manual: Updated the devpyshell section 99b9efb dev-manual: Updates to the on-target debugging section. e7e6150 ref-manual: Updated the DEPENDS variable description. 0d091db ref-manual: Applied small edits to the DEPENDS variable desc. bbc7a64 ref-manual, dev-manual: Add information on devpyshell 9f2cf76 dev-manual: Added new GDB debug requirements section for target 924966f dev-manual: Updated the Known issue for QEMU not working in usermode 8a8349b ref-manual, dev-manual: Updates for "staging" discussion and variables. 1c59455 dev-manual: Added new "Dependencies" section to writing new rec. cd2a26c ref-manual: Updated the DEPENDS variable description b8ad433 dev-manual: Applied review edits to the "writing new recipe" 285931e dev-manual, sdk-manual: Applied review comments for SDK movement f1b31e9 ref-manual: Updated the intro to the devtool quick reference. 58b1381 ref-manual: Fixed a typo. 13d47a1 ref-manual: Added two new tips ad539f5 ref-manual: Added 'depchains' description for auto dep. mech. 8263839 ref-manual: Updated the PACKAGES variable description 89621b1 ref-manual: Updated "Viewing Variable Values" section. 959a062 sdk-manual, dev-manual: Applied SDK review edits. 4404fc3 ref-manual: Provided an introductory text to the devtool ref. 39639ad dev-manual: Updates to the "Writing a New Recipe" section. fe8d575 sdk-manual: New Projet chapter added and other fixes ed6a549 documentation: devtool upgrade and quick ref changes to mult manuals 38278f0 sdk-manual: Added the devtool upgrade command flow to the manual. 54a10ca dev-manual: Updated the devtool upgrade command flow e2251b5 maintainers: Change maintainers for python(3) modules 3c1af2e maintainers: new maintainers in multiple recipes 3935476 maintainers.inc: Change perl maintainer 8b24b0c bitbake: build.py: fix os.getcwd() exception 1290534 oeqa/sstatetests: Ensure we cover deb packaging backend for sstate test f420227 dpkg: Only set DEB_HOST_ARCH in target case 93d4250 populate_sdk_base.bbclass: fix broken variables 46c5e7a lib/oeqa: Regenerate galculator configure c8089ae recipetool: newappend: drop _provide_to_pn a713b78 perl: module-overload needs module-overloading 5268f78 perl: correct math-bigint dependency typo 206ad10 lttng-tools: fix ptest d31bd86 linux-yocto/4.8: update to -rc8 425c614 openssl: Upgrade 1.0.2i -> 1.0.2j 390140e image_types.bbclass: remove redundant dependency c6fbb37 linux-yocto: Move PREFERRED_PROVIDER check to be generic 04a3b6c scripts/cleanup-workdir: Adapt to SDK_ARCH -> SDK_SYS chanages for crosssdk cf882b6 SDK: Allow changing SDKMACHINE without wiping TMP folder 2d35edf libsolv: enable MULTI_SEMANTICS bb744b8 parselogs.py: Add amd_nb error to x86_common whitelist 850ded3 gst-player: Disable visualizations 013fff4 perl: fix CVE-2016-1238 fd4391d python: fix CVE-2016-1000110 b5a0033 archive.bbclass: fix do_ar_original archiving of multiple source repos 58866d6 archiver.bbclass: ignore unpack sub-directories in do_ar_original e8426a5 linux-firmware: package Broadcom BCM43430 firmware 2e18c87 linux-firmware: update to revision 42ad5367 b7fac3f boost: add support for additional boost libs 55cab15 boost: disable pch when build boost-math 6c22e39 ptest-runner: recipe update related to minor fix. 527764b devtool: Add a line break to generated README 47abf98 prelink: Manipulate library paths to match the target system library setup 153da94 utils: Add all_multilib_tune_list function de4fffe machine/qemu*: Add comment regarding the reason for virtio-rng-pci 72dc833 glibc-initial: use python3 instead of python (v2) 7ff051c autotools.bbclass: use python3 instead of python (v2) 8b5a62e uninative: Upgrade to 1.4 725e66e meta-environment: ensure corret TOOLCHAIN_CONFIGSITE_NOCACHE value 8dfcfbe arch-mips: Add mips64-o32 tunes bad17ae tune-ppc[65]00.inc: Disable QEMU usermode usage 18afc88 qemu.bbclass: Allow use different QEMU binary depending of target 2305c00 pseudo: Fix problem where pseudo could kill a container init 1d1f94b scripts/runqemu: provide better error message on runqemu ifup fail f82cc4b scons.bbclass: rework parameters for install task 37f7c03 cracklib: Apply patch to fix CVE-2016-6318 36accdb gnutls: Skip QA check for text relocation on x86 347316d wic: remove partition images 6b8d16c openssl.inc: avoid random ptest failures d9e1bb6 openssl: update to 1.0.2i (CVE-2016-6304 and more) 2f4b80b arch-mips: Add mips64r2 tunes 0f16c90 lttng-tools: adds DEPENDS to util-linux a9f4b94 lttng-tools: fixes a wrong header issue 7caf628 lib/oe/patch: improve accuracy of patch header extraction f692840 lib/oe/patch: exclude "From <hash>" from commit message when PATCHTOOL is "git" efa3c7d nativesdk-qemu-helper: drop old Zaurus flash tools be642a6 bluez5: remove duplicated udev setting from FILES_${PN} 3d7a4f4 pcmciautils: remove duplicated udev setting from FILES_${PN} fa78499 eudev: don't move udev directory c0dbfc6 xf86-input-vmmouse: remove duplicated udev setting from FILES_${PN} 26a6e95 mdadm: remove duplicated udev setting from FILES_${PN} 4a071fb ofono: remove duplicated udev setting from FILES_${PN} 20d355b libinput: fix udevdir 544241e systemd: install udev.pc 5728255 bitbake.conf: add eudev's udevdir to FILES_${PN} bd933a3 buildtools/uninative-tarball: Fix deployment overlap issues b75ed25 toolchain-shar-relocate.sh: Fix typo cea1d78 sdk-manual: Removed two Git tag developer notes. 394b909 sdk-manual: Removed notes about the BitBake Commander 0ac7b1e sdk-manual: Updated Passing host options example ad1ba19 ref-manual: Updates to PKGDESTWORK and do_packagedata 5ec03cd dev-manual: Updated add and modify flows and text. 0c823cc sdk-manual: Updates to the devtool Finish command flow. 7d208c1 ref-manual: Applied review edits to auto added runtime deps aba386b sdk-manual: Updated SDK workflow 6cecded sdk-manual, ref-manual: New variable for including toolchain 4824bb4 ref-manual: Added note to PREFERRED_VERSION 8bc6c1c ref-manual: New section and updates for runtime dep work 899ea9c ref-manual: Another edit to the oe-pkgdata-utils description b247bae ref-manual: More wording changes to oe-pkgdata-util section. 79cb2ed ref-manual: Applied some re-writes to oe-pkgdata-util use section. 7267910 sdk-manual: Updated the connection steps for deployment 8c2172b ref-manual: New section on using oe-pkgdata-util 43b5d14 sdk-manual: Fixed spelling error. 72d1435 documentation: Added new description for the PACKAGECONFIG_CONFARGS variable. 066ecf6 mega-manual: Added the new mars appendix to the sdk-manual build section. 11e9d10 ref-manual: Added variable description for PACKAGECONFIG_CONFARGS 0637314 sdk-manual: Updated neon JDK requirements to be 1.8+ 4317c65 sdk-manual: Updated legacy mars links to go to neon section. 3277d8d sdk-manual: Updates to "Working With Eclips" for Neon 8a3d542 ref-manual: Fixed typo for "debugging". 7791b32 poky.ent: Updated the essentials list variable for Fedora 77dee66 ref-manual: Changed command to install Fedora Python package 0de5767 yocto-project-qs, ref-manual: Updated Python requirement to 3.4.0 5f5671e ref-manual: Removed link to ROOTFS_RO_UNNEEDED. 2a2ccb0 ref-manual: Added new note item to the DEPENDS note box. 4b8e7d8 ref-manual: Updated the MLPREFIX variable description. 2c38cc6 dev-manual: Updated QEMU known issues for user-mode 007193c ref-manual: Added variable description for FORCE_RO_REMOVE. c3adec9 ref-manual: Updated CLASSOVERRIDE with a new example. d4cd787 yocto-project-qs, ref-manual: Removed Python 3.0 exclusion 3fa0f9d ref-manual: Updated the DISTROOVERRIDES variable description. 2233924 ref-manual: Updated the MACHINEOVERRIDES variable description 44b0b07 ref-manual: Rewrite of the CLASSOVERRIDE variable in the glossary 43b9962 ref-manual: Grammar fix in the OVERRIDES variable description. 9f0e068 ref-manual: Grammar fix in "Stamp Files and the Rerunning of Tasks" e0347ec ref-manual: Clarified the OVERRIDES glossary description. f187919 ref-manual: New section clarifying stamps, input checksums and sstate cache ba8bc1b ref-manual: Updated systemd-boot documentation link. 9173b11 bitbake: knotty: ensure progress bar output is accounted for in display 0d76de8 bitbake: knotty: Show task elapsed time c902e7b oeqa/selftest/base: backup and restore local configuration files 659fab4 testimage.bbclass: Add package manager dependency 0156812 scripts/runqemu: Using a cpio* rootfs has no special network deba7ca runqemu: Move virtio RNG to machine configuration 8aa8d14 cmake-native: prefer native sysroot libraries over host 49d4477 gstreamer1.0-libav: Add 'valgrind' config option 8381125 wpa_supplicant: Security Advisory-CVE-2016-4477 9b78237 wpa_supplicant: Security Advisory-CVE-2016-4476 d2259ac encodings: Add dependency to mkfontdir-native 65a7b15 bitbake.conf: add a lazy default for SDKMACHINE e08640b buildtools-tarball: improve stamp independence cb1ffb8 toolchain-scripts-base: add base class for toolchain_create_sdk_version 8f85911 xserver-xorg: fix qa warnings 88df0e4 bitbake: cooker/providers: Only add target to world build if task exists 37d5307 bitbake: fetch2: handle absolute paths in subdir 7358cbf base.bbclass: Drop unnecessary dirs setting 577ff4e autotools/siteinfo: Tweak CONFIG_SITE handling for determism/races 99284c3 asciidoc: set CLEANBROKEN to fix rebuild d6616a4 directdisk*.wks: add serial console support ef942d6 perf: Fix to obey LD failure on qemux86-64 0f09354 libunwind: fix build by linking with bfd instead of gold 95da87e systemd: fix indentation aa7f7b6 x264: add textrel to INSANE_SKIP f5b1cd0 perl: fix CVE-2015-8607 c27660d perl: fix CVE-2016-6185 7a0fbb9 toolchain-shar-relocate.sh: Add error-handling 2a0f4e7 libnewt: link whiptail properly with libnewt 3c1807e uninative-tarball: Make stamp independent 46afeab bitbake: bitbake-user-manual: Added information for using single quotes 39828d3 bitbake: bitbake-user-manual: New section on functions you can call from Python 5503ed1 bitbake: bb.build: in _exec_task, catch BBHandledException 792c40c buildtools-tarball: add SDKMACHINE to stamps-extra-info 9294261 runqemu: don't fail during check_arg_machine() 5d3c56f runqemu: don't try and invoke bitbake when running in a toolchain env c97912a runqemu: try and guess qemu-system binary when MACHINE isn't set cd47b64 runqemu: validate paths and attempt to infer unset paths 7ab74d8 linux-yocto: Updates genericx86* SRCREVs for linux-yocto 4.8 7f44dde linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 Upgrades to Linux 4.4.20 ec41b0d linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 Upgrades to Linux 4.1.32 66abd36 meta-yocto-bsp: bump to linux-yocto 4.8 for the non-x86 BSPs 3cbf23a meta-yocto-bsp: linux 4.4: bump to the latest stable version for the non-x86 BSPs d16b6dd meta-yocto-bsp: linux 4.1: bump to the latest stable version for the non-x86 BSPs 1fe840a genericx86-common.inc: produce wic images 425a38a genericx86-common.inc: support boot by runqemu d3e6e10 bitbake: runqueue: Handle missing sstate dependencies better a884c43 bitbake: toaster: buildinfohelper local layer don't construct path using git info 6066729 bitbake: toaster: Add tests to detect if we have missing db migrations 7a3cccb bitbake: toaster: unlock BuildEnvirnoment when build is done ad04a63 bitbake: runbuilds: code cleanup - remove unused imports 5e88c4a bitbake: runbuilds: code cleanup - whitespaces, long lines 323b81a bitbake: runbuilds: process builds on start 64d284b bitbake: runbuilds: process builds on SIGUSR1 e9a12e5 bitbake: toaster: notify runbuilds when build status changes 2478a6f bitbake: toaster: implement signal_runbuilds function 483c16a bitbake: toaster: fix checking of repository url 08af663 bitbake: cookerdata.py: Catch BBHandledException, preventing a backtrace in an event f1d8f1e bitbake: cooker.py: add LAYERRECOMMENDS processing 74acb91 bitbake: toaster: Remove duplicate layer information 07aa966 bitbake: toaster: Indicate active navigation element 67ce1ce bitbake: toaster: Fix links to tasks with specific outcome ac2ac31 bitbake: uihelper: use elif instead of repeated if cb169d3 linux-yocto/4.8: introduce preempt-rt 8692bed linux-yocto/4.8: integrate 4.8-rc7 b4cf3f3 linux-yocto/4.1: 4.1.32 content and configuration warning fixes 0eacf03 kernel.bbclass: Add kernel_version_sanity_check function c2908e1 boost: Replace math::static_lcm with integer b26926c uninative-tarball: add SDKMACHINE to stamps-extra-info e29c460 populate_sdk_base: fix support for changing SDKMACHINE settings a767c78 oeqa/selftest/lic-checksum: don't report the expected failure to errors.yp ffdc23a openssl: fix do_configure error when cwd is not in @INC 1fe48d0 gcc-configure: Enable initfini-array a8cf594 oeqa/runtime/parselogs.py: Add ignore of tsc calibration fail in x86 3f31981 enchant: add PACKAGECONFIG for *spell 506df09 boost: switch to using C++11 atomics when available d8af0f2 runqemu: improve finding of rootfs, kernel and dtb 67cb116 linux-firmware: package carl9170 separately fbb99b2 runqemu-gen-tapdevs: remove /etc/runqemu-nosudo when remove taps fad4caf default-distrovars.inc: remove libidn from LGPLv2_WHITELIST_GPL-3.0 b2a6f9a openssh: fix potential signed overflow to enable compilation with -ftrapv 69005ae image_types: add parted-native to do_image_wic depends 9ead92a gawk-3.1.5: fix non-glibc & gcc >= v4 builds 0a04692 package_manager.py: Change diagnostic messages per IRC f1e3dc0 package_manager.py: Adjust error message order 1a8e50e qemuboot.bbclass: don't fail on very first build dbb76e2 externalsrc.bbclass: Make reparsing work for BBCLASSEXTENDed recipes 91347ed kernel.bbclass: assign INITRAMFS_BASE_NAME using ?= f5062f0 dropbear: deterministic selection of system -vs- bundled libtom libs 472c245 dropbear: fix -ltomcrypt -ltommath order when using system libtom libs 5637f86 runqemu: use OECORE_NATIVE_SYSROOT from sdk 5060e66 runqemu: work even if a *.qemuboot.conf isn't found 239d170 runqemu: try symlinks when kernel or rootfs can't be found 52e04cd qemuboot: also write the kernel link name to the conf file 0fd7247 runqemu: clarify an INFO message 7352d35 qemuboot: write the full kernel filename, not the link name 2952aff runqemu: add guidance to resolve issues with missing files 383a4af devtool: add: drop superfluous validation for recipe name ce1904a lib/oe/recipeutils: fix invalid character detection in validate_pn() 90f925c recipetool: create: support git short form URLs 147774f recipetool: create: tweak license crunching 198c6d5 recipetool: create: pick up AC_PROG_SWIG 1370edb recipetool: create: detect python autoconf macros 541c54e recipetool: create: fix error with git tree and no network e30276c recipetool: create: fix name/version extraction from filename 9aa1cf3 recipetool: create: improve python recipe license handling 3a8a0bb recipetool: create: fix picking up name from local python source tree 6a5bd99 runqemu: acquire_lock() should fail when failed to open the file 286db04 qemuppc.conf: adjust kernel console 2833b40 groff: not ship /usr/bin/glilypond e5de851 linux-firmware: Add missing ralink-firmware License 77a9472 linux-firmware: Correct the LICENSE setting of license packages 49a7839 build-appliance-image: Create image in correct location 5414b80 bitbake: cooker: check if target contains task 088d386 bitbake: cookerdata: allow multiple passes of config re-parsing e3e239b bitbake: cookerdata: fire ConfigParsed event after re-parse 359feed scripts: add tool to scan for bashisms recipe shell scripts a24b2fa sanity.bbclass: split out config re-parse check 5fc455e pulseaudio: add ${S}/LICENSE to LIC_FILES_CHKSUM de154f0 useradd_base.bbclass: Do not mess with the gshadow file in the sysroot a4f10da util-linux: Disable bfs support e88cee8 util-linux: Disable minix support. 8d3f712 qemuboot-x86: Add task_timeout = -1 to uvesafb bdb10d8 cmake-native: rationalise system/internal library dependencies 04cc7ab cmake: use convenience options for clarity 12cd9c0 scripts: introduce buildstats-diff 06e56ab package_manager.py: fix bitbake package-index failed 55bb15f shadow: use relaxed usernames 7ba62d6 oeqa/sdkext/devtool: use a smaller module to test node.js functionality f9b18c3 makedevs: don't restrict device node paths to 40 characters 92862c6 qemurunner: print out the runqemu command d0b4ac3 cve-check.bbclass: Add class 1896732 cve-check-tool: Add recipe 08dc55c cmake: don't inherit autotools 84e0260 openssl: Fix MIPS64be and add MIPS64le a7a6d05 oeqa/oetest: show stderr when running commands cfe4112 sanity: make license QA failures fatal again 2a2634e openjade/sgml-common: Add sstate postrm commands 0573dce sstate: Add postrm command support 0c1b8bf bitbake: Add missing file from 'toaster: Allow git information to be null for BRLayer' 53b1fa2 bitbake: build: Allow dirs/cleandirs to work for empty functions c3f630d bitbake: bitbake: fetch2: Make SRCREV_FORMAT name substitution safer d5698c0 bitbake: fetch2/npm: don't download same URL multiple times d649c64 bitbake: event.py: output errors and warnings to stderr 62c45ff oeqa/utils/decorators: LogResults fix race condition in linkfile b28e6d6 oe-selftest: check for coverage version before starting tests 405262d image.bbclass: add IMAGE_DEVICE_TABLE to rootfs[vardeps] f7367de create-pull-request: remove output directory 5b5c426 ptest-runner: allow building from externalsrc d03439e patchelf: Update to version 0.9 a6f0bce busybox: Avoid race building libbb de915fb linux-yocto: Adds new bbappend for genericx86 and genericx86-64 BSPs to support kernel 4.8 56a4900 Revert "oeqa.runtime.smart: work around smart race issues" 0825fcf libdrm: Explicitly disable cunit tests 2e8c59d piglit: Backport linker flag patch 26e46e6 runqemu: fix a race issue on lockdir edc92ea python-smartpm: use md5 as the digest for rpm_sys channel 3f95a21 lib/oe/copy_buildsystem: fix building eSDK with indirect paths in BBLAYERS ca10752 classes/populate_sdk_ext: ensure we clean the right temporary TMPDIR path 533315b eudev: Add missing pkgconfig dependencies c77f114 autotools: Correctly filter m4 files view to setscene dependencies 1373b52 kernel-yocto: remove do_shared_workdir from SRCTREECOVEREDTASKS 55dd3fa linux-yocto/4.1: update to 4.1.32 1542689 linux-yocto/4.4: update to 4.4.20 7576715 linux-yocto/4.8: update to v4.8-rc6 f08aeff gtk-doc: require perl-native only if api-documentation feature is enabled 04e3dc6 image.bbclass: also mask debugfs versions of masked images dd50dec image.bbclass: do not check size of the debugfs image 5d13da4 valgrind: MIPS: Make toolchain basename generic f603002 gst-player: specify PV f5e2daf sstate.bbclass: normalize whitelisted paths d115b12 gstreamer1.0-plugins-good.inc: Fix libv4l2 packageconfig dependency 05602d9 classes/populate_sdk_ext: exclude image tasks from locked signatures 7c2d197 classes/gobject-introspecton-data: lazy assign GI_DATA_ENABLED fc9ddc2 classes/gtk-doc: lazy assign GTKDOC_ENABLED 02e6c1e meta: cleanup d.getVar(var, 0) b8e2bab meta: cleanup d.getVar(var, 1) 32b8267 testimage: add createrepo-native to testimage depends 564a0d7 gstreamer1.0-plugins-bad: Fix packageconfigs and patches 473a479 gstreamer1.0-omx: inherit upstream-version-is-even 32d14e3 bitbake.conf: Add BBSERVER to HASHBASE_WHITELIST 2c7849f oeqa: Remove linux user utilized for rpm test. 0736079 oeqa.buildperf: another fix for splitting 'nevr' string 6b889ff libical: fix build failure after changing machine 25468b5 tiff: Update download URL 03fa820 rpm: remove redundant removals 059c556 glibc: remove hard-coded reference to gcc -E d4583c9 libpcre: explicitely specify CCLD_FOR_BUILD for this recipe c14dc1a rpm: manually cleanup sysck cc27fa2 sanity: fix hardcoded references to gcc 9da9abd busybox: allow overriding compiler name in KConfig 3e6f3e0 linux-libc-headers: allow overriding compiler name in KConfig 270f423 linux-yocto: allow overriding compiler name in KConfig ddc7bd7 cross: export CC family from BUILD_* for cross compilers a1bcc48 gstreamer1.0-plugins-good: enable v4l2-probe 2b92328 u-boot: Set u-boot binary permissions to 0644 5f8c168 useradd: do not delete users and groups during configure 996aaf9 oeqa/parselogs: Don't use cwd for file transfers 4359f8c poky: add Fedora-24 to SANITY_TESTED_DISTROS ece1156 maintainers.inc: add missing recipes 2679a34 maintainers.inc: rename gtk-doc-stub to gtk-doc, reassign to me 68e35c8 oeqa.runtime.smart: work around smart race issues d399134 oeqa/runtime/smart: Prune feeds to save memory ab3f239 gtk-doc: only depend on native gtk-doc for documentation generation 620e2bf gtk-doc: use pkg-config-native in native gtk-doc.m4 5041e68 gstreamer: remove packaged copy of gtk-doc.m4 f224154 gobject-introspection: set GI_SCANNER_DISABLE_CACHE for native ca9ff8b distro-alias.inc: rename gtk-doc-stub to gtk-doc 03425de clutter-1.0: do not use the prepackaged clutter.types file when generating gtk-doc 9a8b392 pango: fix gtk-doc build when x11 is not in use 3ed15a8 util-linux: do not enable gtk-doc and explain why c370dda p11-kit: enable gtk-doc fe14b24 libsoup-2.4: enable gtk-doc 5c899de libtasn1: enable gtk-doc b41127f gnutls: enable gtk-doc 3bea0e5 harfbuzz: enable gtk-doc 363b298 cairo: enable gtk-doc fa351bc libenck3: enable gtk-doc ff774d0 libgudev: enable gtk-doc 3cc2055 json-glib: enable gtk-doc 406a9b7 gnome-desktop3: enable gtk-doc 60604de gdk-pixbuf: enable gtk-doc 1cfdc18 libuser: enable gtk-doc 2d20b54 libidn: enable gtk-doc b240b9b orc: enable gtk-doc 83301b4 dbus-glib: enable gtk-doc 063f84e webkitgtk: re-enable introspection on powerpc 38f2f51 gcr, libsecret, webkitgtk: disable gtk-doc on mips64 d6a1027 gcr: disable gtk-doc on x86_64 ae773d6 gtk+3: disable gtk-doc when x11 is not available 31029c8 webkitgtk: enable gtk-doc support 3878dac gstreamer1.0: enable gtk-doc support e1aad9e libglade: remove the recipe 3a093d1 systemd: drop unused gtkdoc-related variable 6d26601 kmod: do not let gtkdocize fail 2167573 gtk-doc.bbclass: enable building gtk-doc based documentation 5029d1f gtk-doc: add a recipe, remove gtk-doc-stub 94317f5 source-highlight: add a recipe 8c46605 oeqa: Use snapshot instead of copying the rootfs image 0d21440 scripts/runqemu: Add snapshot support b2dc9c7 runqemu: Enable virtio RNG for all platforms eb1494f runqemu: Update to modern prefrerred net syntax d1cb381 runqemu: Allow unique network interface MAC addresses 95331c6 qemurunner.py/qemutinyrunner.py: remove runqemu-internal b18f8a5 nativesdk-qemu-helper: fix for new runqemu d1303c2 runqemu: fix run from testimage with non-standard DEPLOY_DIR_IMAGE 8a8948e runqemu: fixes for when invoked during a bitbake run d5d4869 runqemu: better handle running on a host with different paths e162303 runqemu: assume artefacts are relative to *.qemuboot.conf b405712 runqemu: refactor it and remove machine knowledge 638d19a qemu.inc: inherit qemuboot.bbclass f9732b4 qemuppc: Use virtio networking instead of pcnet 18c7c0d qemuppc.conf: set vars for runqemu 09a7710 qemumips/qemumips64.conf: set vars for runqemu 64da0d7 qemux86.conf/qemux86-64.conf: set vars for runqemu 9b0a94c qemuarm64.conf: set vars for runqemu 8b6e772 qemuarm.conf: set PREFERRED_VERSION_linux-yocto 9b7614e qemuarm: Add DTB file new kernel 90ab47c qemuarm.conf: set vars for runqemu 605d8b1 qemuboot.bbclass: add it for runqemu 2984863 qemu: fix: cp command cannot find tests/Makeflie e6c48b1 qemu: 2.6.0 -> 2.7.0 af7ec7a parselogs: Whitelist qemux86 error message with qemu 2.7.0 e399ca1 parselogs: Whitelist qemuppc error message with qemu 2.7.0 f6ff037 libwebp: sepcify neon availability for arm 4192e4b utils.bbclass: Added error checking for oe_soinstall e912692 utils.bbclass: Remove trailing whitespace 3860224 watchdog-config: Add recipe 7a79aba watchdog: Add wd_keepalive package f344440 linux-yocto: update LINUX_VERSION to -rc5 649d79d kconfig-frontends: inherit pkgconfig 0455444 kmod: inherit pkgconfig e292f77 x11-common: Remove Xserver script 3b7cdff xserver-nodm-init: Deprecate /etc/X11/Xserver 37f4b39 kernel-module-split.bbclass: no need for running depmod df1635e kernel-module-split.bbclass: generate dependencies across recipes fe90376 module.bbclass: use Module.symvers for dependants a296633 linux-yocto/4.4/4.8: uvesafb: provide option to specify timeout for task completion f14532a linux-yocto: update to 4.8-rc5 27eacf6 kernel-yocto: restore missing configuration meta data 50c4c79 kernel-yocto: allow --allnoconfig and --alldefconfig as KCONFIG_MODES 81297ee kernel-yocto: restore kernel-meta data detection for SRC_URI elements ce4ea7a recipetool: create: avoid extra blank lines in output recipe ff259b0 recipetool: create: support node.js code outside of npm fa90c2f recipetool: create: allow license variable handling to be rerun b1c3e44 recipetool: create: add --keep-temp command line option 17afc80 recipetool: create: support git submodules 9885a9d recipetool: create: fix mapping python dependencies to python-dbg package 4da96ce recipetool: create: AX_PKG_SWIG should add dependency on swig-native 39d3aa2 devtool: update-recipe: support files with subdir= 94aefd9 lib/oe/patch: handle non-UTF8 encoding when reading patches ead0545 bitbake: cooker: record events on cooker exit b22a505 bitbake: toaster: don't kill all runserver processes d2e7ed0 bitbake: toaster: remove handling of .toasterui.pid 8719012 bitbake: toaster: don't kill toaster on start 87cf84f bitbake: toaster: orm Update IMAGE_FSTYPES values 36fe748 bitbake: toaster: keep layer name in variable history path 8ba4f54 bitbake: toaster: Allow forward slash in variable names b5070f5 bitbake: toaster: layer details Fix "edit" form interaction 23056fc bitbake: toaster: import layer Layout fixes c4fcf41 bitbake: toaster: layer details Layout fixes 65e1d66 bitbake: toaster: configuration Provide machine help text ebc6e84 bitbake: toaster: tasks Remove recipe version from defaults ee7c6d0 bitbake: lib/bb/utils: edit_metadata() comment tweaks d67e3b4 bitbake: fetch2/npm: clarify comment 3a0f5d9 bitbake: fetch2/npm: handle top-level shrinkwrap file 5ab6867 bitbake: fetch2/npm: support subdir= parameter eb53750 bitbake: fetch2/npm: fix broken fetches if more than one npm URL fetched 1937b17 bitbake: fetch2/npm: explicitly specify workdir 144e7db file: build with c std as c99 9d4fd7d apt: add PACKAGECONFIG for lz4 98264a9 oeqa.buildperf: be sure to use the latest buildstats b673a56 pciutils: fix PACKAGECONFIG d021889 oeqa.buildperf: try harder when splitting 'nevr' string 4594f25 webkitgtk: 2.12.4 -> 2.12.5 f203e5b lighttpd: fix EXTRA_OECONF 79d45bf cmake.bbclass: avoid treating imports as system includes 23ec1fc python: recompile _sysconfigdata.py after modifying it d41968d systemd_230.bb: Set journal RuntimeMaxSize to 64M as default a477fcd busybox: avoid circular dependency when using initramfs b4f2c76 libcap: Replace EXTRA_OECONF with PACKAGECONFIG_CONFARGS f52cc8b autoconf: remove upstreamed patch 0d92f44 libffi: backport patch to fix building MIPS soft float 3e53ab2 gnutls: update to 3.5.3 f7ca989 oeqa.buildperf: correct globalres time format 1f70669 oe-build-perf-test: fix log file path e8e8178 selftest/liboe: add a test for copyhardlinktree() 822c708 oe.path: fix copyhardlinktree() f5b4ca2 lttng-modules: Do not fail if CONFIG_TRACEPOINTS is not enabled 7005018 lttng-modules: Bump to 6e4fc6f3 revision 0abb1d7 rpm: ensure rpm2cpio call rpm relocation code 92fc3ef coreutils: enable xattr for native b9d90ac poky: Update to linux-yocto 4.8 for qemu* machines 6a49d3f sysstat: 11.3.5 -> 11.4.0 91ae039 build-perf-test-wrapper.sh: fix handling of -C argument 5f5115a ofono: RRECOMMENDS tun.ko & APN database fb75cd2 e2fsprogs: packaging cleanups (compile_et & mk_cmds) 5b8206f boost: fix MIPS16e compilation 7e712e1 boost: fix mips soft float compilation 02d82ea boost: fix a musl compilation warning d7268e9 valgrind: Disable for MIPS Soft Float 8edb53c packagegroup: Disable packages not available on mipsel 88b99a4 packagegroup-core-sdk: Disable sanitizers for mipsel ed8ecea linux-yocto/4.1: backport virtio HW_RANDOM_VIRTIO config 42e2b97 oeqa/parselogs: Add qemuarm64 warning from 4.8 kernel to whitelist d9c2c02 oeqa/parselogs/qemuarm: Whitelist amba and jitter for 4.8+ kernels 8078c5e cryptodev: Add backported patches for 4.6+ kernels 223eb65 linux-yocto/4.x: configuration updates d152840 kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error 5ea48fa kernel-yocto: test for empty artifacts 942e2af linux-yocto/4.8: add qemuarm device tree specification 98d57df linux-libc-headers: Refresh musl patches against newer kernel headers version ab338be libc-headers: update to v4.8 5cb0f38 linux-yocto-dev: bump to v4.8+ 6298912 perf: adapt to Makefile.config 4d1a124 linux-yocto: introduce v4.8 recipes 9428b19 toaster: fire TaskArtifacts event 25c4677 buildtools-tarball/uninative-tarball: Fix for working with populate_sdk under sstate control e1de696 populate_sdk_ext: Put populate_sdk_ext under sstate control 3c3962d populate_sdk_base: Put populate_sdk under sstate control bc31120 sstate: Avoid duplicate README file errors for sdk under sstate control def3485 image.bbclass: Put image_complete under sstate control 5f9889e populate_sdk_base: Deploy images to SDKDEPLOYDIR 9cc4492 image: Deploy images to IMGDEPLOYDIR 619d299 image/populate_sdk_base: Add *DEPLOYDIR variables 51afd45 arch-mips.inc: Disable QEMU usermode usage when building with n32 ABI 08acf58 busybox: fix "sed n (flushes pattern space, terminates early)" testcase failure 104eb57 kernel.bbclass: include signing keys when copying files required for module builds 0e38688 oeqa/selftest Adds eSDK test cases to devtool verification. 1da953d /oeqa/sdkext Adds verification for devtool on eSDK. e616beb scripts: ensure tinfoil is shut down correctly f2854c6 gcc-runtime.inc: add CPP support for mips64-n32 tune c93ee72 kernel.bbclass: add user output to savedefconfig 34d0cf3 Fix out of tree builds of u-boot with gold linker 180eebf sstate.bbclass: skip packaging if SSTATE_SKIP_CREATION is set ea1d3ff initscripts: Start devpts at 06 instead of 38 eda43ca lighttpd: control ipv6 support based on DISTRO_FEATURES beda03b xhost: control ipv6 support based on DISTRO_FEATURES c8f383a xauth: control ipv6 support based on DISTRO_FEATURES c0ea54d wget: control ipv6 support based on DISTRO_FEATURES 4d0ab9c rsync: control ipv6 support based on DISTRO_FEATURES cc3c028 rsync: use rsync.inc to avoid duplicated codes 7e157da pulseaudio: control ipv6 support based on DISTRO_FEATURES d529fe5 psmisc: control ipv6 support based on DISTRO_FEATURES ae139c6 nspr: control ipv6 support based on DISTRO_FEATURES 0dbd6e4 nfs-utils: control ipv6 support based on DISTRO_FEATURES d4d2441 libxmu: control ipv6 support based on DISTRO_FEATURES 75f86b4 libxml2: control ipv6 support based on DISTRO_FEATURES 68e3f3f libxfont: control ipv6 support based on DISTRO_FEATURES c1716f6 libsm: control ipv6 support based on DISTRO_FEATURES 3366467 libpcap: control ipv6 support based on DISTRO_FEATURES 92ce5fe libice: control ipv6 support based on DISTRO_FEATURES 2e478ff apr: control ipv6 support based on DISTRO_FEATURES 4a5aa7e scripts/contrib: update scripts for changes to internal API 1100af9 base-files: Add shell test quoting c95af9c meta-ide-support: inherit nopackages bacb105 flex: fix gcc-6 failure fef13d8 gstreamer1.0-plugins-bad: add packageconfig for egl 4b43874 lib/oe/patch: commit with a dummy user/email when PATCHTOOL=git e5f61f8 oe-selftest: devtool: fix test after recent change bf1954c glibc-scripts: add RDEPENDS on libsotruss package required by sotruss script 71ffc92 webkitgtk: fix racy double build of WebKit2-4.0.gir 390d959 webkitgtk: upgrade to 2.12.4 c25d5ba asciidoc: fix upstream version check 1429d9d oeqa.selftest.liboe: add test for xattr in copytree 92f9308 oe.path: preserve xattr in copytree() and copyhardlinktree() 97677c1 oeqa.selftest: add a test for oe.path.copytree() 74d0a3d ltp: remove useless script STPfailure_report.pl 7d77c02 oeqa.buildperf: include commands log file name in results.json c39db4b oeqa.buildperf: include buildstats file name in results.json c5d1301 oeqa.buildperf: show skipped tests in results, too 81b8ccc oeqa.buildperf: convert buildstats into json format f1fb013 oeqa.buildperf: measure io stat 0b33203 oeqa.buildperf: don't use Gnu time 33a38bc oeqa.buildperf: rename buildstats directories 6d75f39 oeqa.buildperf: separate output dir for each test 700ebe9 oeqa.buildperf: strip date from buildstats directory path 35ae939 oe-build-perf-test: rename log file and implement --log-file e8c47a6 oeqa.buildperf: enable json-formatted results 4418893 oeqa.buildperf: add 'product' to test result data e16f008 oe-build-perf-test: update globalres and git even if tests failed 899b174 oeqa.buildperf: treat failed measurements as errors 85b7b10 oeqa.buildperf: make tests independent 6722b04 oeqa.buildperf: fix checking of invalid results 40d8bef x264: remove EXTRA_OEMAKE workaround b8b1edb systemtap: remove EXTRA_OEMAKE workaround 06415ab linux-libc-headers: remove EXTRA_OEMAKE workaround 2044c88 lsof: remove EXTRA_OEMAKE workaround 8ddb47b musl: remove EXTRA_OEMAKE workaround 270d6dd ifupdown: remove EXTRA_OEMAKE workaround a267015 kernel.bbclass: remove EXTRA_OEMAKE workaround d5b602c distutils-common-base.bbclass: remove EXTRA_OEMAKE workaround 734a49b autotools.bbclass: remove EXTRA_OEMAKE workaround 5686645 lttng-modules: Update 2.7.3 -> 2.8.0+master c015522 lttng-tools: Add PACKAGECONFIG for manpages e0acc0b lttng-tools: Update 2.7.1 -> 2.8.1 8f0ca9c lttng-ust: Update 2.7.1 -> 2.8.1 b0e7288 libyaml: update to 0.1.7 c32ce592 ffmpeg: update to 3.1.3 acc113c iso-codes: update to 3.70 0d755c6 gstreamer1.0: upgrade to 1.8.3 bc42617 sqlite3: upgrade to 3.14.1 8dcb8da base, autotools: Append PACKAGECONFIG_CONFARGS to EXTRA_OECONF only in autotools.bbclass f7d8025 unzip: fixes strange output c27e23c nss: update to 3.25 b1da441 mpg123: update to 1.23.6 7bb1907 lighttpd: update to 1.4.41 16fae9f gobject-introspection: odd versions are development snapshots 9587685 ffmpeg: update to 3.1.2 190895d bdwgc: Add missing include to avoid musl build failures bd02a38 bdwgc: update to 7.6.0 32ac934 bash-completion: update to 2.4 31eadec iso-codes: upgrade to 3.69 673c007 btrfs-tools: update to 4.7.1 e5b80ab libwebp: upgrade to 0.5.1 ff0ebe9 libnl: fix RREPLACES and RCONFLICTS for libnl-genl 75610e2 libnl: backport musl fix (strerror_r / strerror_l) 126c4b2 libnl: update to v3.2.28 d1c566f libnl: fix packaging mistakes 5dcb2a1 image_types: check COMPRESS_DEPENDS for backwards compatibility f2f177c bitbake: bb.fetch2.svn: correctly pass workdir when fetching 355e4ec bitbake: cooker.py: Catch when stdout doesn't have a file descriptor de83a8a bitbake: toaster: localhostbecontroller Remove git assumption ce592fc bitbake: toaster: Allow git information to be null for BRLayer 4daae79 bitbake: toaster: tests Add selenium test layer source switching layer details page 2318f92 bitbake: toaster: Move Custom image recipe rest api to api file 3b87f28 bitbake: toaster: Fix oe-core fixture 50a8d3a bitbake: toaster: layerdetails clean ups after integrating local layer changes e99b4cd bitbake: toaster: update api to include local_source_dir fa48ca6 bitbake: toaster: layerdetails js changes for switching layers d9b5d11 bitbake: toaster: add switch of git and not-git layers imported d2797b5 bitbake: buildinfohelper: discover kernel artifacts correctly 46bad46 bitbake: wget: allow basic http auth for SSTATE_MIRRORS 3658f6d bitbake: cookerdata/ast: Fail gracefully if event handler function is not found 412a26e bitbake: build/runqueue: Add noextra stamp file parameter to fix multiconfig builds e7b2b7d bitbake: fetch2: Handle multiconfig fetcher issues 26aad57 bitbake: tinfoil: add a parse_recipe_file function 818a365 bitbake: cache: allow parsing a recipe with a custom config datastore f551e67 bitbake: bitbake-diffsigs/bitbake-layers: Ensure tinfoil is shut down correctly 8f277fc bitbake: tinfoil: add context manager functions 2f33bb3 bitbake: bitbake-user-manual: Added "Exporting Variables to the Environment" 9b20975 bitbake: bitbake-user-manual: Corrected misspelled STAMPS_DIR 087c580 init-install: Fixes the install script failing when not finding any mmcblk devices 2fedd22 ref-manual: Fixed small wording in PKGR in the glossary 3b70c96 ref-manual: Replaced "bitbake-dumpsigs" with "bitbake-dumpsig". 08e3ef9 ref-manual: Updates to PKGV, PKGE, and PKGR. 9ba4fc0 dev-manual, ref-manual: Systemd-boot: Update documents for new EFI bootloader ac0fa7a ref-manual: Added bitbake.conf to list of example conf files 1769e1a ref-manual: Suggested fleshing out of the sigdata/siginfo documentation a2e8f19 ref-manual: Updated some variables in the glossary for nits. b9df28b sdk-manual: Added developer note for updating to Neon eb7781f sdk-manual: Updated boxes to check when installing pre-built mars yp plug-in 3a5397d sdk-manual: Removed "snapshot" in an example version string. 4d1e642 sdk-manual: Added note to link to the wiki on building an SDK 4bdd0cf sdk-manual: Added an example name for an extensible SDK 5393fd7 sdk-manual: Fixed a broken "do_install" task link 0d4510e sdk-manual: Fixed a broken link to the "base" class 3c77e18 sdk-manual: "Linkified" the CC variable in section 3.3.4 9359c10 sdk-manual: Grammar fix. e990bce sdk-manual: Updated the extensible SDK installer example 66ca0c4 sdk-manual: Re-worded Step 6 for deploying image in eclipse flow. 7bbaab7 sdk-manual: Added note about building the image for QEMU use 151a129 sdk-manual: Removed bad link 766e91f sdk-manual: Provided better wording to intro running sdk env script. 4e0a0d1 sdk-manual: Added note about building and SDK 99d43e6 sdk-manual: Used &DISTRO; for some output release versions. 4d5dc4a sdk-manual: Created new Mars Eclipse appendix a3f519e core-image-kernel-dev.bb: Standardize use of _append and leading space. 3ae2eef linux-firmware: set a preferred provider for brcmfmac-sdio.bin 051d7aa groff: correct the location path for awk 8232ce2 perl: Correct perl path for ptest fb12fe9 lsbinitscripts: 9.64 -> 9.68 5bd1a35 systemd: split systemd-container d45a344 rootfs.py: allow removal of unneeded packages 31982f1 unfs3: Simplify simultaneous usage of "_append" and "+=" 96e68f1 build-perf-test-wrapper.sh: make workdir configurable ee4c5f6 build-perf-test-wrapper.sh: make archive dir configurable a34fd3c build-perf-test-wrapper.sh: allow saving results in Git dc30252 build-perf-test-wrapper.sh: parse args with getopts 7155a9b oe-build-perf-test: add {git_commit_count} keyword for --commit-results-tag d0bac25 oeqa.buildperf: add git commit count to result data caf6ad8 oe-build-perf-test: new {tag_num} keyword for --commit-results-tag 06b2c75 oe-build-perf-test: tag results committed to Git 28333b3 oe-build-perf-test: pre-check Git repo when using --commit-results 6d9c52f oeqa.utils.git: implement init() method 96e8337 oe-build-perf-test: implement --commit-results-branch 8335422 oe-build-perf-test: support committing results data to Git 66540ae oeqa.buildperf: use term commit instead of revision 979c735 oeqa.utils.git.GitRepo: new arg to require topdir 618a2ed oeqa.utils.git: implement GitRepo.get_current_branch() 6cf7464 oeqa.utils.git: introduce GitRepo.rev_parse() 7fcc9f5 oeqa.utils.git: support git commands with updated env 665800f oe-build-perf-test: use absolute paths in cmdline args c284616 oe-build-perf-test: implement --run-tests option e484378 python-3.5-manifest: Add argparse module 4c184eb python-3.5-manifest: Rename Queue module to queue c1f4bef useradd.bblass: Simplify target overrides 9b6bc21 gcc: Update to final 6.2.0 release f5ccefd piglit: Add python3-argparse module to RDEPENDS 07ebdbe devtool: build_image: Fix recipe filter d97aaac devtool: Use the wildcard flag in update_recipe_patch 3656481 nasm: 2.11.08 -> 2.12.02 5a35913 subversion: 1.9.3 -> 1.9.4 713b2e5 git: 2.9.2 -> 2.9.3 5bd808b systemd-compat-units: do not inherit allarch bf23d4f bash-completion: add bash-completion to DEPENDS for target packages ba736a3 utils: check_app_exists: strip whitespace from binary when searching 8670979 oeqa/runtime/rpm: use su instead of sudo 578f811 layer.conf: remove pointercal 9228f75 distro_alias.inc: remove xtscal, pointercal and tslib references e373c7c pointercal: remove recipe e389a96 tslib: remove recipe d2531ac xtscal: remove recipe 23b11c2 packagegroup-core-x11-base.bb: remove pointercal be554d7 x11-common: replace xtscal with xinput-calibrator 19214ae packagegroup-core-tools-testapps: remove tslib references 4f31b12 pointercal-xinput: add a dummy calibration file for qemu 3e97690 parselogs: Ignore uvesafb timeouts e1ab839 image_types: use COMPRESSIONTYPES variable for backward compatibility ffcc52e hdparm: set LICENSE correctly 988f77a license: simple verification of LICENSE_<pkg> values 831e983 license.bbclass: do not process LICENSE_pn variables c222936 bitbake: fetch2: clean up remaining cwd saves/changes 970ff6c linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 5d23bac linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 a81b326 combo-layer: python3: fix UnicodeDecodeError 94646f4 oeqa/buildiptables: Switch from netfilter.org to yoctoproject.org mirror 7e4d206 xserver-xf86-config: pre-load int10 and exa modules 7afa09d cmake.bbclass: call cmake with a relative path 5a3947c openssh: Upgrade 7.2p2 -> 7.3p1 2b7541d wayland-protocols: 1.5 -> 1.7 a850ba3 libinput: Upgrade 1.3.0 -> 1.4.1 86884f6 json-glib: Upgrade 1.2.0 -> 1.2.2 5818fec vte: Upgrade 0.44.1 -> 0.44.2 08d8afe gtk+3: Upgrade 3.20.6 -> 3.20.9 c0dcc5d gnome-themes-standard: Upgrade 3.18.0 -> 3.20.2 69d8707 fontconfig: Upgrade 2.12.0 -> 2.12.1 624597d libgcrypt: upgrade to 1.7.3 1a62096 rm_work: don't remove timestamps of image tasks fd23044 python-3.5-manifest.inc: the signal module RDEPENDS on enum 19b2f7c libidn: 1.32 -> 1.33 e8168a5 useradd_base: avoid unintended expansion for useradd parameters 05c3022 xorg-proto: remove stale git recipes bef6e62 inputproto: explicitly disable asciidoc to avoid floating dependency 053bafd gettext_0.16.1: whitespace changes to align with v0.19.8.1 5acf2f6 gettext_0.16.1: align configure options with v0.19.8.1 recipe dff0cb4 gettext_0.16.1: fix lispdir configure option bb96b16 gettext_0.16.1: use musl gettext implementation edec1c4 insane: improve package_qa_clean_path 8616440 grub: fix load module all_video failed ddaf84c bash: fix run-intl ptest failed 0db6b0f bootchart2: fixes a BOOTLOG_DEST typo f0213bb adwaita-icon-theme: 3.18.0 -> 3.20 0d44584 initscripts: Check for logrotate in dmesg.sh 4945cdf python3-native: Extend python3-native rproviders cf0e3d0 python3-native: Change code style for rprovides 9e4e6b9 grub-efi.bbclass: Fix path in startup.nsh for iso image. 63ac352 glibc: Fix scope resolution in glibc to be breadth first. 1bb1200 linux-yocto/4.4: fix configuration warnings 4b80b34 linux-yocto/4.1/4.4: -stable updates and configuration changes 7b97f59 maintainers.inc: update maintainers for Dengke f078ccf bitbake: siggen: Fix file variable typo in compare_sigfiles ab09541 bitbake: fetch2: preserve current working directory eefb4b6 bitbake: dump_cache.py: use python3 as interpreter 9d09624 bitbake: toasterui, knotty: don't print taskid followed by taskstring which are now in most cases identical 0b40911 bitbake: tests: add unit tests for the usehead url parameter c04468d bitbake: git: Allow local repos to use HEAD 4093f0b bitbake: bitbake-selftest: enable bitbake logging to stdout 9cce855 bitbake: bitbake-selftest: introduce BB_TMPDIR_NOCLEAN 81697a8 bitbake: bitbake-selftest: add help text for env variable(s) 9139d75 bitbake: bitbake-selftest: utilize unittest.main better 5471b2c Revert "local.conf.sample: Disable ARM and PPC due to prelink test case failures" aaca17d packagefeed-stability.bbclass: cleansstate should remove pkgs from deploy dir bc31551 libdrm: 2.4.68 -> 2.4.70 a2f9420 glib-2.0: 2.48.1 -> 2.48.2 e7ec6cf kbd: remove PARALLEL_MAKEINST = "" 1e211f3 kmod: upgrade to 23 a65de2b diffutils: upgrade to 3.4 c80af16 util-linux: upgrade to 2.28.1 e22daba bootchart2: Add ALTERNATIVE configuration for bootchartd 0c9f39c asciidoc-native: add dependency on docbook-xml-dtd4-native fe4e56b openssl: fix add missing dependencies building for test directory cd3c558 libffi: fix a typo (mips) 27c0e2f image-vm.bbclass: remove old images if RM_OLD_IMAGE is enabled 9cabc18 oeqa.buildperf: fix crash when creating globalres.log b26c43c oe-build-perf-test: align log message format with testrunner output f019bb9 syslinux.bbclass: ensure creation of output directory f755bab busybox: Add parallel make fix 7283c14 sanity.bbclass: Ensure we expand BUILD_PREFIX f038f06 local.conf.sample: Disable ARM and PPC due to prelink test case failures 63dcfa8 Revert "local.conf.sample: Disable prelink by default" fc16cfc prelink: Move to latest version of prelink b7157a2 gcc: Upgrade to 6.2 RC1 b360310 libunwind: Fix build race conflict with gcc and musl c666836 ref-manual: swabber: remove from documentation bfd0850 ref-manual: Update SERIAL_CONSOLES_CHECK description dfb899d ref-manual: change SYSLINUX_ROOT to ROOT_VM for DISK_SIGNATURE variable f1d2a93 ref-manual: Applied review edits to "Viewing Dependencies" b249c8d ref-manual: Removed the "pid" stuff from viewing failed tasks feda248 ref-manual: Various small corrections to package-related stuff f82a657 ref-manual: Updated the "Viewing Logs from Failed Tasks" section. 3db5ff6 ref-manual: Updated the section on viewing dependencies 1a1fc42 ref-manual: Clarify and flesh out debugging using bitbake -e 813be27 dev-manual: Added a new "known issue" for running qemu. 72ebd62 ref-manual: Updated PROVIDES and FILES variable descriptions 5337ac9 ref-manual: Updated the SERIAL_CONSOLES_CHECK variable description. efb6266 ref-manual: Changed the BPN variable description. df33765 ref-manual: Updates to PARALLEL_MAKE, PARALLEL_MAKEINST, EXTRA_OEMAKE 836b80c ref-manual: Added note to PROVIDES variable description. b88973f ref-manual: New "Fakeroot and Pseudo" section. c78c500 ref-manual: Added new variable description EXTRANATIVEPATH. 9576ddc ref-manual: Applied review changes to INITRAMF_IMAGE variable. 2996779 ref-manual: Updated the INITRAMFS_IMAGE_BUNDLE variable description. 31b06fe ref-manual: Updated the do_compile task section. 85ce753 ref-manual: Updates to INITRAMFS_IMAGE and INITRAMFS_FSTYPES 4fc256d ref-manual: Updated the INITRAMFS_FSTYPES variable. ffdba3f ref-manual: Updated the INITRAMFS_IMAGE variable. dfd845a ref-manual: Updated the PROVIDES variable description. 70ccc66 systemd-compat-units: Only enable for systemd in DISTRO_FEATURES bcc8b87 systemd-compat-units: pkg_postinst() does not work 6c24a64 sanity: Require bitbake 1.31.1 for multi-config changes 189371f devtool/recipetool/meta: Adapt to bitbake API changes for multi-configuration builds 8b35b03 bitbake: bitbake: Update version to 1.31.1 218b81a bitbake: bitbake: Initial multi-config support fac16ff bitbake: siggen: properly close files rather than opening them inline 0eb6d70 bitbake: ast/ConfHandler: Add a syntax to clear variable b50b14e bitbake: cache: Build datastores from databuilder object b176189 bitbake: cache: Split Cache() into a NoCache() parent object e79550e bitbake: cache/cooker: Pass databuilder into bb.cache.Cache() 97ce912 bitbake: cache: Make virtualfn2realfn/realfn2virtual standalone functions 4cd5647 bitbake: cache/ast: Move __VARIANTS handling to parse cache function 0ef16f0 bitbake: runqueue: Abstract worker functionality to an object/array 2496869 bitbake: cookerdata: Simplify prefiles/postfiles 3be73dc yocto-bsp/yocto-kernel: update to work with the latest kern-tools 26b0657 parselogs: Ignore amb_nb warning messages under qemux86* 56e53db parselogs.py: Add failed to setup card detect gpio error on x86 a9b2c9d parselogs.py: Add dmi and ioremap errors to ignore list for core2 e290a83 parselogs.py: Ignore Skylake graphics firmware load errors on genericx86-64 f479e38 testimage: allow using kvm when running qemux86* machines ff3a455 image.bbclass: rename COMPRESS(ION) to CONVERSION 10e44fe grub: split grub-editenv into it's own package 2973bc2 bash: 4.3.39 -> 4.3.46 f4ad606 openssh: add ed25519 host key location to read-only sshd config e27bfac connman: add missing space in _append 5ef0620 kernel-yocto: streamline patch, configuration and audit phases 028e133 linux-yocto/4.4: -rt update patch meta-data to remove () 93ea3a5 linux-yocto/4.1: config updates cb63dd1 linux-yocto/4.1: bump to v4.1.29 e7c6817 linux-yocto/4.1: netfilter: x_tables: fix stable backport b6af219 dbus: 1.10.8 -> 1.10.10 d3d395b busybox: Backport makefile fix from upstream d37837a gobject-introspection: Ensure prelink config file exists to avoid build failures 180a77c alsa-utils: 1.1.1 -> 1.1.2 400e262 alsa-lib: 1.1.1 -> 1.1.2 9800b4d oeqa.buildperf: use oe.path.remove() 51970d1 oeqa.buildperf: be more verbose about failed commands 818d4c2 oe-build-perf-test: simplify stderr log format 5039a91 oe-build-perf-test: set-up file logging as early as possible 74820e9 oe-build-perf-test: suppress logger output when tests are being run d82a795 oeqa.buildperf: introduce runCmd2() f4128f0 oe-build-perf-test: use new unittest based framework 979be84 oeqa.buildperf: convert test cases to unittest 09b9a4a oeqa.buildperf: add BuildPerfTestResult class 3acf648 oeqa.buildperf: add BuildPerfTestLoader class 3f519df oeqa.buildperf: derive BuildPerfTestCase class from unitest.TestCase daee755 oeqa.buildperf: rename module containing basic tests 6203a77 buildperf: Add support for times without decimal part a191285 lib/oeqa/selftest/bbtests: don't report expected failures dde033a oeqa/runtime/syslog.py: Improve test_syslog_logger on systemd 0cff756 python3.5-manifest: Fixes several dependencies on the newest python3 cd20d76 ncurses: upgrade to 6.0+20160625 205418f gnupg: upgrade to 2.1.14 8ce7bc3 man-pages: upgrade to 4.07 b2e6ac6 python3-git: Fixes dependencies, avoiding to install python3-misc 97ddbc8 python3-gitdb: Fixes zlib missing dependency cae5c74 gmp: Fix wrong detection of -march flag a56f14e graph-tool: update to new networkx API, be iterative a1f39e5 python-3.5-manifest: Add some missing RDEPENDS a84bfd8 libpng: update 1.6.23 -> 1.6.24 b66ec0f libtasn1: Backport compiler warning fixes af96bed ffmpeg: Pas CC and CXX to configure c0ea62e curl: upgrade to 7.50.1 bba1b91 Use PYTHON_SITEPACKAGES_DIR insted of hard-coded *site-packages* 92f505b init-install*: /etc/mtab make a link rather than a copy caaff71 npm: npm.bbclass now adds nodejs to RDEPENDS 322435b iproute2: update 4.6.0 -> 4.7.0 aa1b6cb sqlite3: update 3.13.0 -> 3.14.0 0b8ddf5 perl-native: backport libnm link fix a6b26f8 xinput-calibrator: remove bash dependency 99d109c classes/populate_sdk_ext: drop duplicated error message 64ffbd4 classes/populate_sdk_ext: add some pre-install checks cea1632 toolchain-shar-extract.sh: add option to list contents 7cd213d classes/populate_sdk_ext: properly determine buildtools filename 5895bb6 classes/populate_sdk_ext: properly handle buildtools install failure 7df442c lib/oe/copy_buildsystem: fix merging sstate directories for eSDK 37b8196 classes/populate_sdk_ext: sstate filtering fixes 53b7935 classes/populate_sdk_ext: handle lack of uninative when filtering sstate cdd2460 classes/populate_sdk_ext: ensure eSDK can build without uninative enabled 0a78f98 gen-lockedsig-cache: ensure symlinks are dereferenced 65ff9f5 oe-buildenv-internal: hint at specifying bitbake path in error message eea2de9 ccache.bbclass: don't remove CCACHE_DIR as part of do_clean 51d74f5 systemd: fix typo in avoid-using-system-auth.patch 993bfb5 init-install*: only pick root mmc devices 4b9c75a sanity.bbclass: Only verify /bin/sh link if it's a link 9375b7e tiff: Security fix CVE-2016-5323 1b03beb tiff: Security fix CVE-2016-5321 b762eb9 tiff: Security fix CVE-2016-3186 ecb7e52 tiff: Security fix CVE-2015-8784 dc75fc9 tiff: Security fix CVE-2015-8781 955d6cb e2fsprogs: Fix missing check for permission denied. df6694b initrdscripts/init-install*: Add rootwait when installing to USB devices 08a5471 u-boot.inc: Enable out-of-tree builds 23afc33 dropbear/init: Allow extra arguments for key generation 4f9ddb6 initramfs-live-boot: Make sure we kill udev before switching root when live booting 7debab3 cross-canadian.bbclass: Add BASECANADIANEXTRAOS to specify main extraos 310d860 security_flags.inc: enable PIE for a few recipes 896f1c7 oeqa/oetest: Improve subprocess error reporting a18e3c9 report-error: Fix tracebacks fbc144d uninative: Update to 1.3 96a861e bitbake: bitbake-user-manual: Re-write "Dependencies Internal to the .bb File" cbf8516 bitbake: bitbake-user-manual: Added setting variable for a single task 277a5a9 bitbake: bitbake-user-manual: Added more detail to anonymous Python functions. 3a1ae38 bitbake: bitbake-user-manual: Formatted all "flags" to be consistent 50d7813 bitbake: bitbake-user-manual: Added detail to [dirs] and [cleardirs] flags 500ebdd bitbake: bb/utils.py: export_proxies add GIT_PROXY_COMMAND 8a45291 bitbake: knotty: don't show number of running tasks in quiet mode ea08000 bitbake: knotty: fix task progress bar not starting at 0% 1b6f701 bitbake: runqueue: fix two minor issues with the initialising tasks progress 407ba77 bitbake: lib/bb/tests/fetch: remove URL that doesn't exist anymore 40b655d bitbake: toaster: update web urls for openembedded-core's special case 6b66e93 Allow for simultaneous do_rootfs tasks with rpm d11e8e1 systemd_boot: Enable module to test systemd bootloader 2c043e3 Revert "systemd_boot: Enable module to test systemd bootloader" e274a51 bitbake: toaster: buildinfohelper Add handling local layers (i.e. non-git) layers 4ac57fb bitbake: toaster: bldcontrol model BRLayer Add corresponding local_source_dir cb5ed74 bitbake: toaster: adapt xhr_import_layer test locally imported layer 5827ae0 bitbake: toaster: update build configuration page f5acb42 bitbake: toaster: update recipe details page 875770d bitbake: toaster: update package detail page 3a50399 bitbake: toaster: updte build tables for locally imported layers 186320f bitbake: toaster: update the tables information ef617e6 bitbake: toaster: collect details for local dir imported from ui 8cad519 bitbake: toaster: add local_source_dir field to model 494eae3 bitbake: toaster: add local directory to the db b3fa98d bitbake: toaster: improve the display when local dir is added 331c1c6 bitbake: toaster: update css file for layer import 42d3a41 bitbake: toaster: add local_source_dir to the needed_fields 836f332 bitbake: toaster: control the selection of git and local repo c2c58a1 bitbake: toaster: add import of local directory to UI 953ba7a bitbake: toaster: fix unhandled exception f6261da bitbake: toasterui: ensure that the Build object is always available f17ab95 bitbake: toaster-tests: add test for showing self-dependent task 98ef970 bitbake: toaster: prevent infinite loop when finding task dependencies 2ff892d bitbake: toaster-tests: add tests for reverting to default sort dd78459 bitbake: toaster: reset table to default orderby when orderby column is hidden 01c8496 bitbake: toaster: show loading spinner after creating custom image 6172fb1 bitbake: toaster-tests: fix erroneous message when test fails cf0b07c bitbake: toaster-tests: add tests for most recent builds state changes 36f71db bitbake: toaster-tests: add tests for build dashboard menu and summary visibility 504a858 bitbake: toaster-tests: add tests for build time links in the all builds page 2d80b90 bitbake: toaster: adjust build dashboard for failed builds e387a7a bitbake: toaster: add started property to Build dce5037 bitbake: toaster: remove links from time field on failed builds 9ed45f7 bitbake: toaster: tweak styling and typos in recent builds area 82d998d bitbake: toaster: show "Tasks starting..." until the first task completes dd99cf9 bitbake: toaster: show progress of recipe parsing in recent builds area 952ffb3 bitbake: toaster: move most recent builds templating to client c471740 bitbake: cooker: add BuildInit event f4e65d1 bitbake: toaster: fixtures Add README 71f553b bitbake: toaster: Remove old toaster config loading mechanism 4903982 bitbake: toaster: lsupdates Add spinner for parsing/http fetch 33a4006 bitbake: toaster: checksettings call django's loaddata instead of custom command 72fa18f bitbake: toaster: Add poky and openembedded configuration fixtures a1629a2 bitbake: toaster: tests test_new_project_page Catch button not enabled exception cae9e6f bitbake: toaster: --help now returns 0 instead of 1 5d1d177 bitbake: siggen: Fix typo 9381793 bitbake: fetch2/gitannex.py: use 'git annex init' instead of 'git annex sync' 82da1e6 bitbake: persist_data: Fix py3 update stack overflow 12c8a50 maintainers.inc: add recently added recipes 33b0128 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 4534741 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 dd53025 poky: update supported distros a6630c2 bitbake: fetch: Fix use of tar's --exclude option for tar >= 1.29 87cb470 dbus: backport stdint.h build fix 5aca5bc base-files: restrict resize to run on serial consoles only in profile │· b6ecbee libunwind: Do not use gold for linking e0ad5a9 webkitgtk: Disable gold for mips/mips64 ad79a89 connman: clean up musl fixes fc08ecf connman: disable version-scripts to fix crashes at startup 3ac3f3f oeqa: start() add remaining args SimpleRemoteTarget and QemuTinyRunner 4a4a24f busybox: Fix busybox-init on non-tty consoles b51959e uboot-sign: do_concat_dtb(): cd to $B c1a6945 uboot-sign: Handle .rom signing the same as .img 749d777 kernel-fitimage: Add x86 support ec755d2 kernel-fitimage: add initramfs support 3153bd3 kernel-fitimage.bbclass: do_assemble_fitimage(): cd to $B d90eaa8 linux-dtb.inc: Support for .dtbo files for dtb overlays a960d9b packagefeed-stability.bbclass: fix multilib + rpm ce8e654 runqemu: qemuzynqmp: Add Linux boot support 6f2fa0a package: correct subprocess.Popen.communicate() return values b30aeb3 chrpath: correct subprocess.Popen.communicate() return values a48fea2 license: improve handling of license files with identical basenames da72327 sysvinit-inittab_2.88dsf.bb: Allow aliasing with SERIAL_CONSOLES_CHECK 95403e3 buildhistory: output package variables in a repeatable order 7b33b23 nettle: update LICENSE info for version 2.7.1 2be5ee7 gst-player: update the callback for delete-event aca6dae dpkg: Avoid automatic target architecture detection 0e421c9 ca-certificates: remove -- separator 309a6e0 world-broken: Add libunwind for musl/arm 6d84986 strace: Fix build with mips/mips64 on musl feb125e oeqa/utils/httpserver.py: HTTPServer enable thread connection handling 262c81e quilt/acl/attc/sed: Fix use of tar's --exclude option for tar >= 1.29 1f00fa1 alsa-utils: fix installed-vs-shipped for bat 50c23e6 openssl: fix add missing `make depend` command before `make` library 17d728d terminal: Add sleep in pid-monitor loop ce1cf85 consolekit: don't ship /var/log/ConsoleKit 7633b81 package.bbclass: warn about files under symlinked directories 961b526 package.bbclass: better handling of middle-path dir symlinks 416c4bc util-linux: make prlimit a separate package 07d9c3a lzo: update ptest output format 9ec7cef oeqa/selftest: disable report-error class when builds are expected to fail b26e09b pseudo: Add nobody user and group b192bc0 python3: Upgrade from 3.5.1 to 3.5.2 3ab991b python3-native: Upgrade from 3.5.1 to 3.5.2 adf4266 python: upgrade from 2.7.11 to 2.7.12 db95088 python-native: Upgrade from 2.7.11 to 2.7.12 909e212 python-smartpm_git.bb: Add patch for debugging random errors 1650f67 libevent: update ptests fail condition 8efd482 package.bbclass: remove unneeded chmod() and chown() 591bd6b libgcrypt: upgrade to 1.7.2 f157570 procps: upgrade to 3.3.12 69735b9 curl: upgrade to 7.50.0 a4f0ae1 kernel.bbclass: add lzop dependency 3b064be piglit: fix build failure with gold linker 3e97d19 matchbox-panel-2: remove dangling patch 49b4df1 matchbox-desktop: remove dangling patch 2b8dd4c alsa-utils: remove dangling patch cb188dc python-numpy: remove dangling patch fe5f80b guile: remove dangling patch 8b88df3 openssl: remove dangling patch f389433 gstreamer1.0-plugins-bad: remove two dangling patches 77e5a89 autotools.bbclass: remove intltool.m4 from ${S} 63cb0ee autotools: move aclocal-copy to WORKDIR e1081f4 intltool: bump serial for aclocal --install c5af754 yocto-uninative: bump to uninative tarball version 1.2 88a3d76 meta/classes: fix bb.build.FuncFailed typos 30ab044 binutils: Bump to 2.27 26c6b10 apt: Fix build in musl it was break due to upgrade to 1.2.12 e884cee glibc: Switch to 2.24 release branch dfc016f maintainers.inc: remove augeas a9681ef Revert "packagegroup-core-x11-base.bb: replace pointercal with pointercal-xinput" a56fb90 base.bbclass wipe ${S} before unpacking source 3522a90 packagegroup-core-x11-base.bb: replace pointercal with pointercal-xinput 5745154 dpkg: put start-stop-daemon into a separate package 7759b48 perf: enable man pages for 'help' functionality 9ddb513 create-pull-request: set subject automatically for cover latter 1d7228c create-pull-request: read remote from env var CPR_CONTRIB_REMOTE a158265 create-pull-request: add option -a to auto push ca56459 cronie: upgrade to 1.5.1 1580eac Asciidoc: add it a5eb998 augeas: remove from oe-core 9ac1500 tcl: 8.6.5 -> 8.6.6 46d5901 strace: 4.12 -> 4.13 7dbfe6f libcap-ng: 0.7.7 -> 0.7.8 1f1ac9f grub2.inc: run autogen.sh before configure 37f1e0c oeqa/utils/sshcontrol.py: Allows to copy symlinks to target 65459f5 oeqa/oetest.py: Allow to export packages using symlinks 65a03c3 oetest.py: Remove check for __init__.py 84d854c oetest.py: Add command line parameter support for tag in testexport 2d565fa bitbake.conf: set READELF for cross compilation 8b5f369 Fix random python backtrace in mutlilib handling code. 44ae828 selftest/runtime-test.py: Add test for testexport SDK feature d2e5c93 dhcp: dhcrelay.service cannot start successfully 43a3933 meta: add more missing patch tags 6d59c5c cml1: fix tasks after default [dirs] changed c00346d bitbake.conf/toolchain-scripts.bbclass: Remove debug prefix mappings in SDK 6cfd86f pseudo: update git recipe to include xattr perf fix 2726f91 pseudo: backport patch to fix xattr performance d4040da mesa: Fix build when cross compiling with clang 50008ff gstreamer1.0-plugins-bad: Backport GstGLMemoryEGL implementation a09a7b7 gdb: Cache gnu gettext config vars for musl builds 76fc5ab ffmpeg: Upgrade to 3.1.1 8b21a51 apt: Upgrade to 1.2.12 564657e groff_1.18.1.4: fix narrowing conversion error b37463b python-pexpect: Upgrade to 4.2.0 1e555c0 glew: upgrade to 2.0.0 d753c91 apmd: use snapshot.debian.org for SRC_URI a996ae6 linux-yocto/4.1: qemuppc and qemumips build fixes 453c174 linux-yocto/4.1: bug fixes and configuration changes 9dc4cfc linux-yocto/4.1: bump to v4.1.28 a3cad8f bitbake: bitbake-user-manual: Applied typo fix to "Override Style Operation Advantages" ae427fb bitbake: bitbake-user-manual: Changed bitbake command example. e205789 bitbake: bitbake-user-manual: Updated the PROVIDES variable f0e73a4 bitbake: bitbake-user-manual: Added non-existant variable expansion 41b49ca bitbake: bitbake-user-manual: Applied some review comments a3a7ddf bitbake: bitbake-user-manual: Updated the "Inline Python Variable Expansion" section. eb282b7 bitbake: bitbake-user-manual: Fixed override operator syntax. 6aaf379 bitbake: bitbake-user-manual: Clarified override-style operators. d1e3f0b bitbake: bitbake-user-manual: Updated the variable expansion section. 2652217 bitbake: Revert "bitbake-user-manual: Added new section on command-line execution" 5203cfe ref-manual: Removed redundant "and" 2322267 ref-manual: Removed stray parenthesis. 566ebc1 ref-manual: Updated the STAGING_DIR_HOST variable. 4396ffb ref-manual: Updated STAGING_DIR_TARGET and MULTIMACH* variables. 05beac3 ref-manual: Added a link to D variable and moved a task: 376a820 ref-manual: Augmented some STAGING_DIR_* variable descriptions: 599be67 Revert "ref-manual: Added new glossary entry for REMOVE_PKG_SUPPORT." 33b01c5 ref-manual: Added 3 new QA sanity checks. f2fa3c5 ref-manual: Applied review edits to "Checking for Missing Build-Time Dependencies" 7c5a147 ref-manual: Applied review changes to the do_deploy task. c9e3815 ref-manual: Added new "Checking for Missing Build-Time Dependencies" section. fa0c574 ref-manual: Added link to the do_populate_sysroot task 6c302a4 ref-manual: Applied formatting to QA check string in do_install task 38c33b7 ref-manual: Fixed output example in the B variable. 30929cf ref-manual: Updated the do_deploy task reference section. bc14368 ref-manual: Added detail to the populate_sysroot task. bb16434 ref-manual: Updated the do_packages task. 4f27aa6 ref-manual: Updated the do_install reference section. 781bff8 ref-manual: Updated the do_configure task. 8f2d8c2 ref-manual: Fleshed out the do_compile task. 04c6112 ref-manual: Updated RDEPENDS variable description with note. 818e439 ref-manual: Applied review comments to logging mechanism section 2db1d3b foomatic-filters: Security fixes CVE-2015-8327 e07ebd0 foomatic-filters: Security fix CVE-2015-8560 f5a7cd4 at: use snapshot.debian.org for SRC_URI eef97b3 mailx: use snapshot.debian.org for SRC_URI 27b49de libaio: use snapshot.debian.org for SRC_URI 1a740c6 blktool: use snapshot.debian.org for SRC_URI ecde311 serf: use snapshot.debian.org for SRC_URI 5727f46 linuxdoc-tools: use snapshot.debian.org for SRC_URI 9cfb420 docbook-xml-dtd4: use snapshot.debian.org for SRC_URI df4451c netbase: use snapshot.debian.org for SRC_URI f6e53ac ossp-uuid: use snapshot.debian.org for SRC_URI 0966a83 linux-yocto/4.4: update to -r19 2c358b9 readline: don't install readline C examples a9aef40 useradd-staticids.bbclass: trigger reparsing when table files change 1981ab0 oeqa/utils/commands.py: Command class improve validations/decoding in output 1648504 oeqa/runtime/syslog: test_syslog_logger Don't try to use logread when systemd is enabled a86a1b2 classes/testimage: When image is systemd, enable debug log level 140f6c7 busybox-syslog.default: When systemd is enabled don't use circular buffer b4ba36a oeqa/runtime/syslog.py: Improve test_syslog_logger 8b3f624 xorg-xserver: upgrade xserver version from 1.18.3 to 1.18.4 0ec45e9 tcf-agent: update to 1.4_neon_bugfix branch 3286f4f python-git: Upgrade python-git and python3-git to 2.0.7 d8cff60 python-numpy: upgrade to 1.11.1 5c2bc4d linux-yocto/4.4: mousedev and printk configuation streamlining e647fe0 linux-yocto/4.4: lx-dialog and mei bug fixes ec31f30 linux-yocto/4.4: bump to v4.4.15 6d2987c systemd-boot: use lnr instead of ln --relative 215687e gstreamer1.0-plugins-bad: add missing wayland-native dependency f31683d selftest/runtime-test.py: Add test for import test from other layers 36b3e58 cmake: upgrade to 3.6.1 8c6371f libassuan: upgrade to 2.4.3 e7a0997 libgpg-error: upgrade to 1.24 3486b72 dropbear: upgrade to 2016.74 f55bf4e wayland-protocols: upgrade to 1.5 0ef807a libtasn1: upgrade to 4.9 c90d799 libsolv: upgrade to 0.6.23 75efb26 connman: upgrade to 1.33 081acd5 update-rc.d: Correct trivial typo in DESCRIPTION line. 556059a binutils: Cache gettext api version 1 and 2 support 8ab6c4a menu-cache: remove spurious dependency on intltool 6f1f317 sysprof: clean up FILES 1ebec49 tune-mips-24k: add QEMU_EXTRAOPTIONS for DSP and MIPS16e cores b004e3a qemu: add patch to add mips 24KEc CPU definition 0152d75 bash: add patch to build w/ -Wformat-security f4709b1 uncovered: list uncovered python modules 81580c5 screen: add back the patch for parallel build b332b38 avahi-ui: use PACKAGECONFIG for gtk features baaaea5 Revert "lttng-tools: filter random filename of ptest output" 2c01447 oe-selftest: simplifying log filenames e91d0d5 oe-selftest: export test results via xmlrunner cc3c276 oe-selftest: recipetool: add tests for git URL mangling 12fbed9 recipetool: create: fix greedy regex that broke support for github tarballs be68ef5 useradd.bbclass: Fix delete user/group when more than one item aa2d945 bitbake: lib/toaster: Fix missing new files from previous commits 5b61fa0 bitbake: toaster-tests: fix URL given for Chromedriver download 05f82e8 bitbake: toaster-tests: define capabilities for latest Firefox driver 2a849e7 bitbake: lib/bb/checksum: avoid exception on broken symlinks ea23423 bitbake: lib/bb/utils: show subprocess output in stack traces c42b533 bitbake: fetch2: fix pickle issues while switching from master to krogoth 039f47a uclibc: remove meta-yocto-bsp append 1d39e4c dpkg: use snapshot.debian.org for SRC_URI 7cb7ca9 babeltrace: remove unnecessary SRCREV 87678bbd rt-tests: rationalise compiler flags 3ec9a62 recipetool: record unknown license files 25507bf lib/oe/recipeutils: fix patch_recipe*() with empty input dd85405 classes/buildhistory: ensure eSDK sstate lists sorted secondarily by name 82c7d0f classes/buildhistory: add additional variables for eSDK 4048af4 classes/populate_sdk_ext: add gdb to full extensible SDK 0b2ca66 classes/populate_sdk_ext: filter sstate within the extensible SDK 2ac1fdf scripts: add oe-check-sstate script 4253e2e classes/populate_sdk_ext: allow including toolchain in eSDK on install f84b01b meta-extsdk-toolchain: add meta-recipe to install toolchain into eSDK cb5d308 classes/populate_sdk_ext: set default for SDK_INCLUDE_PKGDATA 1b4dc78 oeqa/selftest/signing: check that we have GPG in setup 5218c24 oeqa/selftest/signing: use a temporary directory for GPG home ab075b6 kdump: don't set default values for KDUMP_CMDLINE and KDUMP_KIMAGE 9b8b730 harfbuzz: upgrade to 1.3.0 8b0db50 bluez5: upgrade to 5.41 b261791 dhcp: remove dhclient-script bash dependency 21916fe net-tools: lib/inet6.c:INET6_rresolve() - various fixes 012262a gcc: Don't use vectorized builtins when Neon is not there 6660e95 sysprof: fix floating dependency on polkit 71d0c87 kernel.bbclass: explicitly set workdir in do_bundle_initramfs 4858c6b kernel-uimage.bbclass: indeed update var KERNEL_IMAGETYPE_FOR_MAKE 7178f07 musl: don't compile in mips16e mode 1131507 lib/oe/path: Fix tar invocation with --no-recursion 57bb38d gcc: Fix libgcc unresolved symbols with PIE on musl 13ee352 webkitgtk: Do not use gold with clang 7d04a4d insane: only check ${S} exists if we had sources to fetch 2eec44e lib/oe/gpg_sign: fix output in error paths f02f0ed python-smartpm: add support to check signatures 2f6bbc7 openssh: conditional compile DES code. 2c2f22a packagefeed-stability.bbclass: copy all packages of a recipe 600f0b3 packagefeed-stability.bbclass: minor fixes b36753b packagefeed-stability: add class to help reduce package feed churn cbf7902 package_deb.bbclass/package_ipk.bbclass: sort RPROVIDES 9621959 build-compare: improve deb and ipk checking ad6aae3 build-compare: fix checking for named pipe and others fef5ae1 build-compare: make pkg-diff.sh 75% faster 495e2f8 build-compare: remove space at head 51b0883 rpm: make --nosignature work 2ab4926 package_deb.bbclass: fix Python 3 error 0e63414 piglit: Add build fix patch ad625f7 avahi: fix resource temporarily unavailable issue 05dca6e pulseaudio: fix floating dependency on webrtc-audio-processing 7c9acf0 pulseaudio: 8.0 -> 9.0 328e249 libsndfile1: 1.0.26 -> 1.0.27 24f871c classes/populate_sdk_ext: show progress when preparing build system 1052fef layer.conf: bump version for uclibc removal and LSB update bb9d9da uclibc: remove 5600778 LSB: 4.1.0 -> 5.0 e6e05a3 systemd_boot: Enable module to test systemd bootloader efd7d6b webkitgtk: Switch the ARMv7 build to Thumb2 and enable back the JSC JIT. b6aa976 quota: make compile pass when disable rpc b7a2688 weston-init: De-couple framebuffer console from Weston for systemd startup df9f8a8 weston-init: Fix weston-start to handle 0 or 1 args 9f7c1a5 weston-init: Fix weston-start to allow weston args without openvt args c406e9a ccache: 3.2.4 -> 3.2.5 36f6219 gettext-minimal-native: 0.19.4 -> 0.19.8.1 cff2123 gettext: 0.19.6 -> 0.19.8.1 91a6f3a slang: 2.2.4 -> 2.3.0 2186bbc gnu-efi: 3.0.3 -> 3.0.4 6d9958e guile: 2.0.11 -> 2.0.12 cf03952 git: 2.8.4 -> 2.9.2 cea867b linux-yocto-dev: Ensure we don't reparse the recipe when its not being used (take 2) e1fcb03 Revert "linux-yocto-dev: Handle performance regression" 31cef0d lib/oeqa/decorators: handle broken links when creating new symlink ebc80fa siteinfo: Add mechanism to extend siteinfo information from BSP layer e693f2e insane: Add mechanism to extend QA machine information from BSP layer 1393b23 bitbake: lib/bb/build: handle incomplete message fragments in log FIFO 9411e33 bitbake: toaster-tests: add tasks and recipes sub-page tests 4357d7a bitbake: toaster: set non-hideable columns for built recipes table bd2cce0 bitbake: toaster: set non-hideable columns for build tasks table 83ccef3 bitbake: toaster: fix download URL for task logs 24905d3 bitbake: fetcher2/__init__: Print command in case of ExecutionError in runfetchcmd 729d9fc bitbake: toaster: loadconf Partially add back some of the layerSource parsing 04d1ad5 bitbake: toaster: admin Add Layer_Version to the admin-able models 97278fb bitbake: toaster: orm Remove the layerindex specific up_branch fields 8b31460 bitbake: toaster: lsupdates Add progress information and clean up logging bb260e9 bitbake: toaster: tests: Remove references to LayerSource model ef627d0 bitbake: toaster: Replace references to LayerSource models ffc78d3 bitbake: toaster: lsupdates Add layerindex fetcher 853450b bitbake: toaster: models Remove LayerSource models and replace with enum 20f939f bitbake: toaster: bldcollector admin Remove LayerSourceAdmin 1477886 bitbake: toaster: loadconf remove Loading LayerSources c27ae25 bitbake: lib/bb/progress: avoid possibility of start event being reported twice 5f4559b bitbake: knotty: don't display ETA for tasks with progress 23a551b bitbake: knotty: fix some minor bugs in BBProgress 0c3ce68 bitbake: fetch: copy files with -H 7f6b6b2 bitbake: cache: Don't interleave pickle cache file writing 5d41200 bitbake: cache: Add better cache loading sanity checks 40d45cf bitbake: cache: Drop/simplify pointless type checking c9e65c5 bitbake: cache: Improve versions fields handling 09f6a56 bitbake: cache: Correctly handle missing extra caches b2ef908 bitbake: cache: Move the parsing message to a more logical place 36feb38 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.4 f06b023 linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.1 3177082 bitbake: bitbake: implement idle timeout for xmlrpc server 4cba010 bitbake: bitbake: implement --foreground command line option 380b6e8 bitbake: bitbake-user-manual: Added new section on command-line execution cb40ae4 bitbake: bitbake-user-manual: Applied review edits to "Recursive Dependencies" 80b1efb bitbake: bitbake-user-manual: Fixed typo in the BBDEBUG variable description. 9a9577e bitbake: bitbake-user-manual: Added review changes to BBCLASSEXTEND description 4bc1ee5 bitbake: bitbake-user-manual: Added review changes to recursive section. 35081f5 bitbake: bitbake-user-manual: Addeds support for the Perforce Fetcher a6cffcf bitbake: bitbake-user-manual: Added clarifying note to BBCLASSEXTEND variable. 8c55a9c bitbake: bitbake-user-manual: Added a note providing examples of task dependencies d918df7 bitbake: bitbake-user-manual: Updated dependency section for tasks 6743f12 bitbake: bitbake-user-manual: Updated the defaults for getVar and getVarFlag 8321d66 bitbake: bitbake-user-manual: Added new section on command-line execution 321f4e9 boost: fix CVE-2012-2677 d183d1e package_manager.py: Avoid installing an empty package list 56aa9c8 glibc: Update to 2.24 after hard-freeze 2d5b282 wic: rawcopy: make source filenames unique 788d6fb buildhistory-diff: reduce PKGR noise d4d6021 systemd: allow add users to groups in rootfs postprocess 031c2f6 initrdscripts/init-install*: Select install target instead of looping through 8da54b4 oeqa/controllers: Add test target for Systemd-boot cd78d87 oetest.py: Fix problem when there is more than one json file for package extraction 736eab6 oe-selftest: print errors when failed to find test e1aa836 lib/oeqa/utils/commands.py: Move updateEnv() from runexported.py 9043691 bitbake: cooker: Fix incorrect dot file generation 1bf1e2c bitbake: toaster-tests: add class SeleniumTestCaseBase for browser tests a61eb1f intltool: remove broken XML::Parser detection ae39c3a intltool: merge .bb and .inc bb42984 oeqa/recipetool: update recipe test to pass SHA 738f47a oeqa/devtool: update recipe test as libmatchbox changed bf69538 xf86-input-libinput: Upgrade 0.16.0 -> 0.19.0 6c2f073 xf86-input-evdev: Upgrade 2.10.2 -> 2.10.3 e7d910b xkeyboard-config: Upgrade 2.17 -> 2.18 fded0a0 libxfixes: Upgrade 5.0.1 -> 5.0.2 a5392dd weston: Upgrade 1.10.0 -> 1.11.0 ddb0de6 wayland: Upgrade 1.10.0 -> 1.11.0 534cc86 wayland-protocols: Upgrade 1.3 -> 1.4 d18a28c mesa: Upgrade 11.2.2 -> 12.0.1 00191b8 mesa-demos: Require X11 distro feature 4518058 image: add do_image_qa task to run QA checks on the constructed image d1fdd0a python3: Security fix CVE-2016-5636 81106cd python2: Security fix CVE-2016-5636 3aaf023 bzip2: Security fix CVE-2016-3189 c0dbed6 openssl: Security fix CVE-2016-2178 03f6074 openssl: Security fix CVE-2016-2177 61577c5 xmlto: only target requires coreutils f74ddc6 piglit: Fix build on musl/arm dbf53c9 xuser-account: remove GROUPADD_PARAM e24bc6d recipes-graphics: Added native and nativesdk support for some libraries 69dfc58 tcl: fix sed command in do_install bffb0fb oe-git-proxy: don't depend on syslinux dd0474c sysstat: upgrade to 11.3.5 db0c499 sudo: upgrade to 1.8.17p1 35c9e2a cups: upgrade to 2.1.4 1854732 byacc: upgrade to 20160606 e53630e at: upgrade to 3.1.20 096b4c6 libxsettings-client: Remove as unneeded 49d3d7d libmatchbox: Upgrade 1.11 -> 1.12 b1d573b matchbox-keyboard: Upgrade to 0.1.1 16fa164 sato-screenshot: Upgrade 0.2 -> 0.3 8bf2692 matchbox-panel-2: Upgrade 2.10 -> 2.11 5484015 libpng: update to 1.6.23 11f23ec linux-firmware: update to revision cccb6a0da9 5813d40 nss: Fix build on mips/clang 0508464 wic: oe-selftest: build bmap-tools-native ed319ff musl: Fix mips regressions in 1.1.15 bb915a1 binutils: backport fix for TLSDESC relocations with no TLS segment on arch64 4fdfee4 classes/license.bbclass: don't set [dirs] and [cleandirs] 6494a59 glibc: use the host locale archive in nativesdk builds 6047780 perl: fix CVE-2016-2381 ac0910e opkg: upgrade to v0.3.3 d62fd77 devtool: add finish subcommand 10a5af5 devtool: upgrade: record original recipe files 7af3295 devtool: update-recipe: refactor to allow calling separately 5d78525 devtool: reset: refactor to allow calling separately 7435cdf lib/oe/recipeutils: fix a few issues in find_layerdir() c4297f3 devtool: update-recipe: don't copy local files that haven't changed 8be2077 devtool: update-recipe: find and use existing files directories 220a68b bash: fix string format errors when enabling security flags 2184694 bash: ensure LDFLAGS is passed when building ptest d713c48 libevdev: Upgrade 1.5.1 -> 1.5.2 b66059b librsvg: Upgrade 2.40.15 -> 2.40.16 c124584 libgpg-error: Upgrade 1.22 -> 1.23 54d5009 freetype: Upgrade 2.6.3 -> 2.6.5 0a98691 fontconfig: Upgrade 2.11.95 -> 2.12.0 3eaf1ac cairo: Remove unnecessary UPSTREAM_CHECK_REGEX b3e4044 expat: Upgrade 2.1.1 -> 2.2.0 5d5efbc packagegroup-core-tools-testapps: remove Piglit temporarily c3753a8 piglit: Upgrade version, use python3 b384b72 oe/lib/package: handle shlibs files disappearing 72becf9 bitbake.conf: use ${prefix} to define exec_prefix ad6aaae utils/qemurunner.py: QemuRunner.start() add support for specify extra kernel cmdline e558b50 site: Move rsync_cv_HAVE_C99_VSNPRINTF to common-linux 17dcf19 nss: Fix build with clang 317447f python-six: Add to oe-core 89eab25 python3: update manifest RDEPENDS for importlib and compression packages 4a5de97 db: Use cross libtool 15ba3c1 initramfs-framework: make rootfs module optional 7eaf305 testimage.bbclass: INHERIT -> IMAGE_CLASSES 4574311 wic: mountpoint is an optional argument 65a0c27 report-error: replace build paths with markers not whitespace 3ad542a rpm: remove CVS-based recipe d291ca3 recipes-sato: fix upstream version check 470558f python-numpy: fix upstream version check 447d715 python-scons: fix upstream version check 652cacc epiphany: update to 3.20.3 441a1fc libwnck3: upgrade to 3.20.1 15901eb desktop-file-utils-native: update to 0.23 f4cd97c bash-completion: update to 2.3 4c9b1a4 wic: clone gummiboot wks for systemd-boot 3091a8c wic: add systemd-boot option in EFI boot image plugin a98a818 gcc-cross: default linker hash style to sysv 648fd33 gstreamer1.0-plugins-bad: Fix little rectangel appears at the center when use squeeze and tunnel effects c62fd75 gstreamer1.0-plugins-bad: Use the newer texture() function in glcolorconvert a933b78 gstreamer1.0-plugins-bad: Add glBindFragDataLocation in glshader 352acc9 gstreamer1.0-plugins-bad: Don't use the predefined variable name in glcolorconvert 365fdce gstreamer1.0-plugins-bad: Implement multiple render targets for GLES3 e1eca35 gstreamer1.0-plugins-bad: Enable gldeinterlace on OpenGL ES b0d66a7 gettext_0.16.1: remove useless files to avoid sysroot conflicts f583dad git: 2.8.4 -> 2.9.0 6ac1f90 sstate.bbclass: make PV to depend on PV variable value 5c545ca v86d: Accept aarch64 as build host 54fd9af libunwind: Port to ppc/musl d2296ea webkitgtk: Fix build on ppc with musl fa0b782 python{3}-numpy: Predefine of sizeof off_t on mips/mipsel/ppc d55b765 linux-yocto: Enable debug/printk.scc KERNEL_FEATURE on qemuall machines. e833508 nativesdk-packagegroup-sdk-host: Add wayland-scanner to the SDK native toolchain 9045e21 neard: upgrade to 0.16 01a3261 libidn: add license per package 42e870c image_types.bbclass: support template .wks.in files for wic be90c3e image_types.bbclass: add intermediate var for WKS_FILE_CHECKSUM 8cc2f2c Revert "core-image-sato: add gtk+ for M1" 38d2c59 remove sukoku ad0cfdb testimage: swap sudoku for galculator 9c4b143 oeqa/sdk: remove buildsudoku test 0b61f87 linux-yocto/4.1: pinctrl backports 200fcba linux-yocto: powerclamp and gpio configuration changes 8a4fb05 linux-yocto/4.4: pwm and mei updates 171d825 linux-yocto/4.4: update to v4.4.14 8e16152 linux-yocto/4.1: update to 4.1.27 6ae50db linux-yocto/config: mei, gpio and usb type c 0c5b11a linux-yocto/4.4: cpumask: Export cpumask_any_but() 59d3fb6 linux-yocto/4.1/4.1: mei, usb and extcon changes 92469ae linux-yocto/4.1/4.4: x86, power and usb-c mainline backports 63ff759 bitbake: bitbake: main: implement server autostart feature b190c08 bitbake: bitbake: utils: add BBSERVER to the list of preserved variables 6597ba6 bitbake: bitbake: xmlrpc: implement check of connection to server dead7b2 bitbake: lib/bb/utils: no need to unsetenv when manipulating os.environ aae4c2a ref-manual: Updated the "Recipe Logging Mechanisms" section 451334a ref-manual: Applied review changes to the DEPENDS variable. bdf9003 ref-manual: Added review changes to BBCLASSEXTEND description acdfb5f ref-manual: Added notes to the DEPENDS variable description. b09a3ad toaster-manual: Changed the Webport address: 640181c ref-manual: Added clarifying note to the BBCLASSEXTEND variable. 48336f5 ref-manual: Added cross-referencing to tasks and dependencies cf3b80b ref-manual: Added new glossary entry for REMOVE_PKG_SUPPORT. a814a61 toaster-manual: splitted long line f649382 toaster-manual: point keywords to Django documentation 9a5af9c toaster-manual: Update toaster start documentation e92b3a8 toaster-manual: add OpenSUSE to the list of distros 4e01774 toaster-manual: update runbuilds instructions 3d24037 toaster-manual: update apache configuration file c3e076f toaster-manual: add instructions for OpenSUSE aa42629 toaster-manual: change mysql driver 4b3c595 toaster-manual: add instructions to create user 14194fa toaster-manual: add list of packages for openSUSE 2134659 toaster-manual: update list of packages b094b97 toaster-manual: update distro versions 64b8e17 toaster-manual: Switch to pip3 dependency installer f6378c1 toaster-manual: add instructions to create user 444a80a ref-manual: Added a new section on setscene task variants 4fb1961 ref-manual: Fixed typo in the "Shared State" section. b67f865 ref-manual: Review edits to the PR variable in glossary. e5fabb9 ref-manual: Updated the RDEPENDS variable description in the glossary b66e84e ref-manual: Updated the PR variable description. 33e1c39 dev-manual: Review edits to the package installation section 77031ba ref-manual: Updated the flag descriptions for shared state details 57acc32 dev-manual: Edits to the package feed creation section. fc518b5 ref-manual: Updated the DISTRO_FEATURES description of Bluez5 45baa90 bitbake: fetch2: implement progress support 843f7ae toaster.bbclass: only scan files-in-image.txt if it exists ac339ec toaster.bbclass: remove directory scan logic for detecting artifacts 8d08a73 bitbake: toaster-tests: package count/size shouldn't show for non-image builds 8ccf839 bitbake: toaster-tests: new custom image button shouldn't show for non-image builds db5426b bitbake: toaster-tests: add tests for build artifact display on build dashboard 9475a68 bitbake: toaster: the customise image button shouldn't rely on targets 2db40e3 bitbake: toaster: add package manifest path to Target objects 1027e0e bitbake: toaster: better display of targets which produced no images adbf206 bitbake: toaster: show manifests in their own section of the build dashboard 07a58a8 bitbake: toaster: only show "New custom image" button for builds with image targets 587275e bitbake: toaster: use has_images() methods to display images correctly 150e558 bitbake: buildinfohelper: only record image files for tasks which make images 00c2c0b bitbake: toaster: improve scan for SDK artifacts f39ae14 bitbake: buildinfohelper: fix retrieval of targets 4125da7 bitbake: toaster: attach kernel artifacts to targets e980857 bitbake: toaster: improve image file suffix retrieval 5dfa120 bitbake: toaster: do image and artifact scan on BuildCompleted b0585e6 bitbake: toaster: display Target targets in build dashboard 844e1f9 bitbake: runqueue: improve exception logging 7a220ae bitbake: lib/bb/utils.py: return sorted OrderedDict in explode_dep_versions2 bc3a206 bitbake: knotty: avoid errors when fetching outside of a task 2afcbfe bitbake: build: don't use $B as the default cwd for functions faa7268 bitbake: lib/bb/build.py: decode the command as UTF-8 b7a741c bitbake: lib/bb/utils: fix set_process_name 627d019 useradd-staticids: use map() instead of imap() fd08714 python3: Add compression to python3-shell dependencies 4473e64 python3-native: Add "io" to rprovides 5e747eb python3: Add dependencies for python3-misc 114206f buildstats-summary: round the floating point percentage 029e3eb lib/oe/patch: handle encoding differences in patch files f465039 recipetool: create: support specifying a file as the local source 54486a1 recipetool: create: fix handling of github URLs 2c9291d graph-tool: convert to python3 baed9bd scripts/contrib/devtool-stress: exclude more recipes by default 89f8348 scripts/contrib/devtool-stress: skip incompatible recipes 5c91537 devtool: return specific exit code for incompatible recipes d56caf3 devtool: reset: allow reset to work if the recipe file has been deleted 117c80f devtool: update-recipe: fix --initial-rev option 7f6f998 gtk+3: update 0003-Add-disable-opengl-configure-option.patch e5f9326 file: 5.27 -> 5.28 824e7f7 tzcode-native: update to 2016f 64c54ef tzdata: update to 2016f 56e23ae debianutils: 4.7 -> 4.8 4de8b37 gmp: 6.1.0 -> 6.1.1 65a8f24 libpcre: 8.38 -> 8.39 4dd3980 wget: 1.17.1 -> 1.18 c072b18 mtd-utils: build also for nativesdk 3e01371 linux-yocto-dev: Handle performance regression 6deadf5 gcc: CVE-2016-4490 661ff39 gcc-runtime: add SUMMARY values 1c0fc7f gcc: add runtime packages to RRECOMMENDS 7355e4e libgcc: remove duplicate configure options a219424 glibc: add more Imagination Meta relocation to elf.h ea43996 glibc: Upgrade to latest tip of master ec33670 binutils: Upgrade to 2.26.1 d428f2e musl: Update to v1.1.15 release 6bb3069 tune-ppce500mc.inc: pass -mcpu=e500mc for ppce500mc kernel compile 586249a classes/libc-package: remove pointless copying when running localedef e2a150b libc-package: remove obsolete do_configure_prepend 8c95d22 move directfb from oe-core 7852381 buildoptions.py: remove directfb image build test e7ddecc distro_alias.inc: remove directfb related references e91d0e8 remove core-image-directfb.bb a526c31 remove packagegroup-core-directfb.bb 3a6f0b6 db: use S/B more idiomatically b58c5dc libsolv: upgrade to 0.6.22 8501934 screen: upgrade to 4.4.0 3eb5cba libatomic-ops: upgrade to 7.4.4 578bc2b ethtool: upgrade to 4.6 5d34839 vala: update to 0.32.1 82f83f6 nss: update to 3.24 969ba57 mpg123: update to 1.23.5 a75183b btrfs-tools: update to 4.6.1 b141340 gnutls: update to 3.5.1 f31597a babeltrace: update to 1.4.0 c04d4a0 libarchive: update to 3.2.1 4d8a816 ffmpeg: update to 3.1 5c4e3b5 bdwgc: update to 7.4.4 d6abd75 terminal: Drop gnome-terminal --disable-factory workarounds c706bfb terminal: Fix gnome-terminal to work with recent versions 9df3cdf pseudo: Upgrade to 1.8.1 a14d30f oe-selftest: drop test_prepare_unexpected 8dc159d bitbake: toaster: tests Add selenium test for layerdetails page 8813726 bitbake: toaster: add Layer delete front end feature to layerdetails e1ba2fd bitbake: toaster: api Add util function for returning the error response 36dec68 bitbake: toaster: layerdetails api Fix saving of git revision of a layer 903c3c2 bitbake: buildinfohelper: ensure task datetimes are timezone-aware 78b3fe6 bitbake: eventreplay: rewrite the script 2b56c03 bitbake: eventreplay: reorganize imports 9431a6f bitbake: eventreplay: replace MockConfigParameters with namedtuple 70cc20d bitbake: eventreplay: fix event loading code 2199ff5 bitbake: eventprelay: implement setEventMask command a1ceb0f bitbake: eventreplay: add MockConnection.getEventHandle method ed9c309 bitbake: toaster: fix layout for command-line builds in recent builds area 7ed76e4 bitbake: bitbake-worker: don't reassign sys.stdout dab3b1b bitbake: toaster: views Fix most frequently built target in project reporting 5018d5f bitbake: toaster: layerBtn avoid connecting handler to other build buttons 9d730f4 bitbake: bitbake: toaster-tests: tests for project config dabb49b bitbake: toaster: fix validation checks for DL_DIR and SSTATE_DIR be00eb2 bitbake: toaster: remove SSTATE_MIRRORS from projectconf f433664 bitbake: toaster: remove SSTATE_MIRRORS from blacklists in views b301251 bitbake: progress: Ensure missing start event is fired 1b5688e bitbake: knotty: Handle process indicators more gracefully 1b930b4 bitbake: runqueue: report progress for "Preparing RunQueue" step f3b62c1 bitbake: runqueue: add ability to enforce that tasks are setscened 76feac3 bitbake: knotty: add quiet output mode 465f939 bitbake: knotty: show task progress bar 8d56d59 bitbake: knotty: add code to support showing progress for sstate object querying 0e3281f bitbake: lib/bb/progress: add MultiStageProgressReporter ac5e720 bitbake: lib: implement basic task progress support 1cf6e14 bitbake: knotty: import latest python-progressbar 481048c bitbake: knotty: provide a symlink to the latest console log 312f1a5 bitbake: fetch2/wget: attempt checkstatus again if it fails 1bbd580 oeqa/selftest/bbtests: Fix failing test after progress changes c7147ce oeqa/runtime/systemd: fix typo in skipUnlessPassed decorator 895353a service: obey CFLAGS, LDFLAGS d6a43d2 initramfs-framework: Add support for PartUUIDs ee6a6c3 initramfs-framework: add retry loop for slow boot devices (like USB) e34eb01 lib/oe/path: remove oe.path.check_output 6a2753b scripts: Fixed typo in parameter that was causing exception f8bdaf3 rt-tests: move ptest to python3 6074ed6 gcc: remove GCC 4.9 14c9011 gcc: remove unused patch 7b6f667 gcc-5.4: Fix hang with mmusl option on cmdline b45155b pulseaudio: Disable unit tests ac0e5e2 socat: remove the hardcoded shifting offset dc626e3 runqemu: Avoid duplicating custom QEMU options for AArch64 e8e8d41 libpfm4: fix compile error 23ae622 classes/populate_sdk_ext: exclude initramfs images from locked signatures c7ab9f3 classes/populate_sdk_ext: ensure tasks to build the image are included 1063622 recipetool: create: drop unused convert_pkginfo() function 75f1a0e recipetool: create: avoid decoding errors with Python 3 74c5cd0 autogen-native: fix script error when processing libguile e4224fb l3afpad: add check for GTK3DISTROFEATURES dca5d9d gettext: fix for low-version recipe e1ca5d9 libidn: add patch to build w/ -Wformat-security e49d337 meta: update patch metadata e6ad36c run-postinsts: Correct comment misspelling, "rpm-posinsts". 94fb1a5 oepydevshell-internal: python3: encode/decode pty content e8feb19 devpyshell: python3: flush stdout explicitly 250955a devshell.bbclass: fix double unbuffering 16df2b6 pseudo: drop recipe for old 1.6.7 version 4ebe0e1 classes/cmake: enable progress for do_compile a702c68 classes/populate_sdk_ext: eliminate double execution on install c24b651 toolchain-shar-extract.sh: allow TERM through into SDK installer env af4d725 lib/oe/sstatesig: print locked sigs file message only when explicitly called ff41cfb classes/testsdk: print output correctly on failure 6677dd3 classes/sstate: add a mode to error if sstate package unavailable e769dce classes/sstate: show progress during sstate object availability check 4071217 classes/image: implement progress support for do_rootfs 8daa1b4 bitbake.conf: whitelist progress varflag 4e889c0 scripts/lib/bsp/help.py: Changed help of yocto-bsp to match latest syntax 479d15b yocto-bsp: Refactor script to use argparse instead of optparse 4ab8650 scripts/yocto-bsp: Removing version from yocto-bsp 4252ec7 scripts/lib/bsp/engine.py: Add error message for wrong input file 71bc7fd scripts/lib/bsp/help.py: Fixed pager for yocto-bsp help 2128272 scripts: Fixed typo in parameter that was causing exception 3f8fbdb meta-yocto: Delete PREFERRED_VERSION for obsolete version of U-Boot. 9d0e391 local.conf.sample.extended: drop RPM4 example 11af659 poky: drop unsupported distros 5c11e36 lib/oeqa: add Galculator to SDK and runtime tests b305564 oeqa/runtime/syslog: remove redundant skipUnlessPassed e0bcf33 toolchain-scripts: add sysroot/usr/share/pkgconfig to PKG_CONFIG_PATH 076a93e oeqa/utils/commands: fix single-character variable matching in get_bb_vars() 8f82db7 linux-yocto: bxt and input configuration changes 76332d9 linux-yocto/4.x: vfat feature cleanup b80b543 linux-yocto/4.1/4.4: tpm, telemetry, acpi and cpuid changes 678a02e scripts/contrib: introduce build-perf-test-wrapper.sh 0c92770 oe-build-perf-test: add --out-dir command line argument c3ee14e oe-build-perf-test: enable locking eb36f00 oe-build-perf-test: implement --globalres-file option 8c59636 oeqa.buildperf: add git revision and branch to result data 964fffa oeqa.utils: add git module 8329d56 oe-build-perf-test: enable logging into file 5599645 oeqa.buildperf: archive build/conf into test results da3b924 oeqa.buildperf: add test Test4 fe24b5a oeqa.buildperf: add test Test3 0b2fae8 oeqa.buildperf: add test Test2 1701a34 oeqa.buildperf: add test Test1P3 b5ca437 oeqa.buildperf: add test Test1P2 2c1b874 oeqa.buildperf: add test Test1P1 1d88659 oeqa.buildperf: implement BuildPerfTestRunner class 6512d69 oeqa.buildperf: add method for saving buildstats 45c6a04 oeqa.buildperf: add method for measuring file disk usage 1a0e205 oeqa.buildperf: add method to log shell commands 6e27b2a oeqa.buildperf: method for measuring system resource usage 1b10ded oeqa.buildperf: add BuildPerfTest class cee685c oeqa.buildperf: functionality to drop kernel caches 7d42cea oe-build-perf-test: introduce oeqa.buildperf module c855cb8 oe-build-perf-test: add pre-run sanity check 14108a8 scripts: introduce oe-build-perf-test ec8be20 oeqa.utils.commands: runCmd: return stderr output, too cf4c898 oeqa.utils.commands: use get_bb_vars() in get_bb_var() c9639e6 oeqa.utils.commands: Introduce get_bb_vars() 58643b7 lib/oe/package_manager: keep platform_extra and default_platform_extra lists ordered 6d2bcc2 linux-libc-headers: Update doc for recipe depends aa2da21 gstreamer1.0-libav_git: bump version to 1.8.2 2f5737c gstreamer1.0-plugins-ugly_git: bump version to 1.8.2 345edd4 gstreamer1.0-plugins-base_git: bump version to 1.8.2 5e22094 gstreamer1.0-plugins-bad_git: bump version to 1.8.2 b4fc653 gstreamer1.0-plugins-good_git: bump version to 1.8.2 869ad20 gstreamer1.0_git: bump to 1.8.2 6bfec95 gstreamer1.0: Upgrade to 1.8.2 3e74ef2 kernel-module-split.bbclass: add a prefix for module package name pattern fff33f1 watchdog: Fix build with musl 1bf0944 gcc5: Upgrade to gcc 5.4 0412b6d uclibc: re-enable verbose compilation c1dafd1 uclibc: backport patch to fix gdb 7.11 compilation 820a9d0 classes/kernel: fix symlink logic when bundling initramfs images 1b29aff binutils: backport patch to fix mipsel (malta) kernel compile aa9fb3f glib: disable valgrind support when compiling in mips16e mode fc97ef9 libffi: don't compile in mips16e mode 90bb7c1 uclibc: don't compile in mips16e mode 2c80ebf gmp: don't compile in mips16e mode d81b918 json-c: backport patch to fix uClibc link issues 15c3c3e libidn: fix QA warning (uClibc) 83444bb classes/kernel: fix symlink creation in DEPLOYDIR for bundled initramfs dc1b016 musl: Upgrade to tip b84875f pythonnative.bbclass, python3native.bbclass: use DEPENDS_append instead of DEPENDS += 98121ad recipetool: recognize less common makefile names 77b5728 systemd: upgrade to 230 f400833 bash-completion: delete files util-linux provides 73dcfb6 util-linux: upgrade to 2.28 52adfed test-dependencies.sh: Strip also '\.bb; .*' before adding failed recipe to list of failed 3b208bc libcap: fix the libcap-native building failure on CentOS 6.7 0658935 libsdl2: Add missing comma typo cf1af6b pythonnative.bbclass, python3native.bbclass: export STAGING_INCDIR, STAGING_LIBDIR, PYTHON variables 83b11dc gdb-cross: do not hardcode the use of Python 2 a3869bf connman-gnome: StatusIcon adapts to size changes 0cef80f vte: don't build test app 2ebd117 gsettings-desktop-schemas: inherit upstream-version-is-even d818cde cairo: inherit upstream-version-is-even fd7a8b2 puzzles: Keep building even with deprecation warnings ad439ce clutter-gtk-1.0: Upgrade 1.6.6 -> 1.8.0 e889651 at-spi2-atk: Upgrade 2.18.1 -> 2.20.1 169fbdb at-spi2-core: Upgrade 2.18.3 -> 2.20.2 478d446 atk: Upgrade 2.18.0 -> 2.20.0 33226ae gtk+3: Upgrade 3.18.8 -> 3.20.6 ef8bbc7 openssl: prevent warnings from openssl-c_rehash.sh 2fcece7 bitbake.conf: Drop BUILDSDK_LDFLAGS rpath, rpath-link 2ef717d qemu: add PACKAGECONFIG stanza for bzip2 ec64c9c u-boot: extend UBOOT_CONFIG format to support different binary name f91a01b e2fsprogs: tweak mke2fs ext4 features 13eb4a8 gst-player: upgrade to latest HEAD c6d50b2 bitbake: lib/bb/build.py: remove task flag in deltask() 6ae96f7 puzzles: fix Samba conflict, clean up recipe 8375252 linux-yocto/4.4: sensor driver backports f28c266 linux-yocto/4.1: pstate backports f775c27 linux-yocto/4.1: driver, mmc and power backports 48d7ebc linux-yocto/4.1: SPI, MFD, alsa and perf backports deced08 linux-yocto/4.1: tpm2, pinctrl, powercap and watchdog backports 2f9b8e9 initramfs-framework: base: Ensures /run/lock is available 9623b23 initramfs-framework: mdev: Add a runtime dependency on busybox-mdev 0c8b264 linux-firmware: add iwlwifi-misc package for remaining iwlwifi firmware c406763 linux-firmware: add iwlwifi virtual package of all iwlwifi firmwares 5f854c2 linux-firmware: fix typo in RDEPENDS line for iwlwifi-6000g2b-5 4c46ca1 linux-firmware: add LICENSE line for iwlwifi-license package 87dbb6b linux-firmware: fix typo in LICENSE line for iwlwifi-6000g2b-5 1960abc oeqa/targetbuild: use os.path.join instead of string concatenation 40268fe oeqa/targetbuild: add extra_cmds argument to run_configure 0aa028f oeqa/targetbuild: fix folder name estimate logic c844230 tzdata: update to 2016e 4bd8e67 tzcode: update to 2016e 313ae0a qemu: Use Gtk+3, add configure patch to find vte d8afd0c libmad: remove recipe 00fea48 gstreamer1.0-plugins-ugly: disable mad, enable mpg123 6085ce0 mpg123: add a recipe from meta-oe ec96025 security_flags.inc: add python3-pycairo and libnewt-python to no-pie exception list 0881208 security_flags.inc: add SECURITY_NO_PIE_CFLAGS to libgcc and gcc-sanitizers 95cd78a bitbake.conf: don't set CCACHE_DIR to $HOME by default 51059ee binutils: configure with --enable-deterministic-archives 1bf1af5 dbus/dbus-test: upgrade to 1.10.8 1137709 opkg: upgrade to v0.3.2 772ba8d openssh: fix init script restart with read-only-rootfs e6faa3d packagegroups: use new gst-player package name 79ca8d0 gstreamer1.0-plugins-bad: Upgrade to 1.8.1 a029113 expat: CVE-2016-0718 c0238cb linux-firmware: add iwlwifi-8000C-19 version bf54af3 sysprof: fix pkgconfig packaging e04da4b autotools: ensure Makefile exists in do_compile c2acd4e package_manager.py: specify tmpdir for opkg 675843d oeqa: fix hasPackage, add hasPackageMatch c65cf8e xcb-proto: use python3 instead of python2 1096a95 toasterconf: exclude releases Toaster can't build 5e86682 maintainers.inc: remove libmad, add mpg123 922294d maintainers.inc: reassign vala recipe 6f0c553 build-appliance-image: Update to master head revision b6d61ec e2fsprogs: Manually bump PR due to PV change (work around sstate confusion) 84cce1d e2fsprogs: remove the extra dot from the recipe filename a3494dd sdk-manual: Updated configure.ac file in helloworld example. 11b6dd1 ref-manual: Updated SSTATE_MIRRORS examples to match reality 0689732 dev-manual: Updated Runtime Testing for Package Installation 26d2f28 dev-manual: Updated the method to set SimpleHTTPServer for testing fadcb31 ref-manual: Fixed a typo for installing "python3-git" ca519a1 dev-manual: Applied edits to the package feed section. 6b3b444 ref-manual: Updated the UPSTREAM_CHECK_* variables. ac8173e dev-manual: Updated Host Server Machine Setup for package feeds 52fc567 ref-manual: Added note about installing Git-Python package f33db8b ref-manual: Updates to the UPSTREAM_CHECK_* variables 508e890 dev-manual: Review edits applied to the package feed build considerations. cd7f787 ref-manual: Edits to UPSTREAM_CHECK_* variables. c735ade ref-manual: Added descriptions for three UPSTREAM* variables. 7ef4a65 dev-manual: Updated Package Feed Creation sections 44f29bf ref-manual: Updated the INHIBIT_PACKAGE_STRIP variable 37ec030 build-appliance-image: Update to master head revision e6d26f5 package_manager: Fix multilib package arch ordering issues 95f6e7b bitbake: cooker: clean up EvertWriter f6fc25d bitbake: cooker: replace EventLogWriteHandler with namedtuple a158388 bitbake: cooker: don't remove event file e28b36e bitbake: cooker: encode event objects to base64 3e7edc3 bitbake: cooker: move EventLogWriteHandler to the top module level 90d7b09 bitbake: depexp.py: port to gtk+3 8d56c54 rootfs_rpm: Increase rootfs size 09d0834 Revert "cmake.bbclass: set the modules directory correctly" 7b9e1f5 cmake.bbclass: set the modules directory correctly 8f7f8f7 pseudo: remove rpath from libpseudo.so 3037e0d useradd-staticids.bbclass: Allow missing UIDs/GIDs to generate warnings c99750d useradd-staticids.bbclass: Restore failure on missing UIDs/GIDs 4ed711a documentation.conf: Add information about USERADD variables 40f3099 base.bbclass: p4 fetcher supports srcrev 0006a7f packagegroup-self-hosted: add back Python 2 4799e1e gtk+3: Add patch for --disable-opengl ce5523b bitbake: toaster: remove last css file with bootstrap v2 license 107d428 build-appliance-image: Add LC_ALL setting and drop pseudo pieces 9b32dd5 package_deb: Avoid chdir warnings and restore cwd after packaging 3dfe69b build-appliance-image: Install network components f74ba25 bitbake: runqueue: Use tid instead of taskid in find_chains() 26447a0 bitbake: fetch2/perforce: Rework to support SRCREV and P4CONFIG 9f91785 bitbake: fetch2: fix unpacking of deb packages 34dc5b3 bitbake: toaster: fix typo which causes table searches to fail d4a87b9 build-appliance-image: Update to master head revision 772e9b4 bitbake: bitbake: fix wrong usage of format_exc 39ed544 packagegroup-core-device-devel: add binutils-symlinks 2a85038 directfb: fix client->gfx_state initialisation 792fd38 package_ipk: restore cwd after packaging 70d6306 classes/package: save/restore cwd in split_and_strip_files e2e6fe9 classes/kernel: remove path assumptions in compile_kernelmodules 6f7a3dc classes/image: don't chdir when creating symlinks 4e1a104 linux-yocto: Update SRCREV for genericx86* for 4.4 Upgrades to Linux version 4.4.13 f2cf71a linux-yocto: Update SRCREV for genericx86* for 4.1 Upgrades to Linux version 4.1.26 755bb55 conf/distro: remove oprofileui 6e53ab4 maintainers.inc: add missing recipes 282d5f7 core-image-sato: add gtk+ for M1 1c91694 make: 4.2 -> 4.2.1 a525a06 gnome-themes-standard: Use distro_features_check for GTK+2 27f62dc gtk-engines: Remove as unused 73e9f90 sato-icon-theme: remove as unused 3abdec9 gtk-sato-engine: Remove as unused f5e4aa2 packagegroup-self-hosted: Remove unused theme, use Adwaita icons f9c7851 matchbox-desktop: Add Sato folder configuration bff5f0e matchbox-session-sato: Update session startup dda59dd sysprof: Upgrade to git version slightly past 3.20 c072545 avahi-ui: Build with Gtk+3 7bcb1c5 webkitgtk: Disable Gtk2 plugin process by default ef3d05a gtk+: RRECOMMEND adwaita theme 81d0b2d packagegroup-core-x11-sato: Remove gtk-sato-engine 14b8cb1 libowl: Remove as unused e0ba559 libfm: switch to GTK3 version 1545d3a pcmanfm: switch to GTK3 version 79faec0 leafpad: Replace with L3afpad 920fc82 matchbox-config-gtk: Upgrade to 0.2 457f825 gst-player: Start building with Gtk+3 70f4651 puzzles: Use Gtk+3 by default e4738fd matchbox-terminal: Upgrade to 0.1 ee0188f vte: Upgrade to 0.44.1 5b076f9 packagegroup-core-x11: Use adwaita icons instead of sato c8044c4 matchbox-keyboard: Enable GTK+3 IM module fdbf32b connman-gnome: Add patch to port to Gtk+3 8e71c58 matchbox-wm: Upgrade to 1.2.1 8072c70 settings-daemon: Upgrade to 0.0.2 f1dcc26 sato-screenshot: Upgrade to 0.2 ff6dd06 matchbox-panel-2: Upgrade to 2.10 7a69ef0 matchbox-desktop: Ugrade to 2.1 e618179 matchbox-theme-sato: Upgrade to 0.2 66c5a4a classes/license: handle EXDEV if hard link to license fails 4f8f3f6 classes/rm_work: use the idle I/O scheduler class fe4184d python3: fix CROSSPYTHONPATH for cross builds ce6e49a gcc: make sure header path is set correctly 66aebcc flex: Fix top_builddir path for flex's test-driver script 6a27517 linux-yocto/4.1: powerclamp: APL CPU 96a993b linux-yocto/4.1: Always Running Timer Support 30a289a linux-yocto/4.1: intel_idle: backport BXT CPU support 3dcbd12 linux-yocto/4.4: update to v4.4.13 62f4fa4 linux-yocto/4.1: bump to v4.1.26 7ccbe39 linux-yocto/4.1: serial, mmc, mtd mainline backports 280061c classes/sdl: remove pointless class 1ed0e8a update-rc.d.bbclass: Disable class when sysvinit is not in DISTRO_FEATURES 44ab979 qemu-native: set ld.bfd, fix cflags, and set some environment vars 8f9f48a oprofileui: remove ff6d458 bitbake: parse/ast, event: Ensure we reset registered handlers during parsing 27fa181 bitbake: toaster: Remove mismerged files af04a52 bitbake: taskdata/runqueue: Rewrite without use of ID indirection 29b4fb1 bitbake: runqueue: Change buildable/running lists to sets 7e54da0 bitbake: toaster: tests browser Fix selenium tests after bootstrap3 breakage 234a625 bitbake: toaster: tests Rename test settings to python compliant name and fix import 000d724 bitbake: toaster: selenium tests Fix all_projects page and sample tests f48feeb bitbake: toaster: selenium tests Update unique custom image string and fix import 5ee6b70 bitbake: toaster: js tests Twitter typeahead library object is now ttTypeahead aa6894a bitbake: toaster: fix wrong usage of print_exc and format_exc eb634f9 bitbake: toaster: changed python version in shebang 0a7bd53 bitbake: toaster: toastergui tests Use new BeautifulSoup syntax eba5321 bitbake: toaster: open image files in binary mode when sending in response 16df75d bitbake: toaster-tests: fix tests for latest Selenium version 6eefd9c bitbake: toaster: fix broken reference to urllib 79a3954 bitbake: toaster: fix test_toaster_tables 4422d26 bitbake: toaster: fix incorrect file mode c28f918 bitbake: toaster: decode response content 1fd1600 bitbake: toaster: fix migrations f0740b0 bitbake: toaster: replace viewkeys() -> keys() 5bebe39 bitbake: toaster: bin Use python 3 for our django modules check e23faac bitbake: toaster: BuildTasksTable filters remove outcome NA option 0db23ae bitbake: toaster: BuiltPackagesTable format empty state in packages table 1a00cdb bitbake: toaster: build data Fix left navigation a7d498d bitbake: toaster: port all build analysis pages to bootstrap 3 4627183 bitbake: toaster: buildtables Remove links from non name fields de3984c bitbake: toaster: fix typo which prevents filters from working ef72321 bitbake: toaster-tests: maximize browser window when running UI tests dd76400 bitbake: toaster: Rework displaying package dependencies across Toaster 89433a3 bitbake: toaster: widgets ToasterTable Catch template rendering exceptions 82722cb bitbake: toaster: tests Add new build tables to tests c42f1cc bitbake: toaster: table.js Add the ability to highlight a particular row caae3b6 bitbake: toaster: port Installed packages table to ToasterTable b2a68f5 bitbake: toaster: port Task tables to ToasterTables widget 32d1e2d bitbake: toaster: port Built recipes table to toastertables a786ac1 bitbake: toaster: port table for Built packages to ToasterTable b63f951 bitbake: toaster: ToasterTable widget add an 'a' to Name in Exception class 0bd6095 bitbake: toaster: toaster tables Enable complex empty states 443f7b3 bitbake: toaster: Migrate project configuration from bootstrap 2 to bootstrap 3 79e0eb9 bitbake: toaster: work-around our lack of a synchronous fetch for typeaheads cd7b48c bitbake: toaster: migrate typeahead library 6462202 bitbake: toaster: tests Add a BuildTest helper class 6f924f3 bitbake: toaster: tweaks to recipe file downloads abfd095 bitbake: toaster: testsjs Add call back to append elements on completion of tests 099f026 gzip: upgrade to 1.8 3274e76 ncurses: upgrade to 6.0+20160319 322ada3 pax-utils: upgrade to 1.1.6 8211709 man-pages: upgrade to 4.06 466428e libxml2: upgrade to 2.9.4 4e5128b libnewt/libnewt-python: upgrade to 0.52.19 f81a018 libgcrypt: upgrade to 1.7.0 72e560e help2man-native: upgrade to 1.47.4 a9d1786 gnugp: upgrade to 2.1.12 16fbcbb ghostscript: upgrade to 9.19 c6930da dhcp: upgrade to 4.3.4 7028192 image.bbclass: do exact match for rootfs type 672c024 xinput-calibrator: add missing dependency for xinput_calibrator_once.sh 5c94a49 libc-package: ensure glibc-locale package list is deterministic 87d4da4 webkitgtk: do not inherit pythonnative 367a102 python3-native Add RPROVIDES python3-importlib-native 873e56e python-ptyprocess: Extend to cover nativesdk 57bde45 testexport-tarball: Add default value for TEST_EXPORT_SDK_PACKAGES b41b2fa scripts: ensure not specifying subcommand shows help text 5c1b9fd devtool: reset: allow specifying multiple recipes dd6d61a devtool: tweak README in created workspace layer a0006fd python-mako: rm -df -> rmdir 0918ac9 staging: Add BB_SETSCENE_VERIFY_FUNCTION2 for bitbake runqueue changes f491996 binutils: fix the incorrect assembling for ppc wait instruction 559dba8 strace: 4.11 -> 4.12 632b773 tcl: 8.6.4 -> 8.6.5 e5043db libcap: 2.24 -> 2.25 791e18a libbsd: 0.8.2 -> 0.8.3 f221f33 e2fsprogs: 1.42.99+1.43+git -> 1.43 ce0a036 make: 4.1 -> 4.2 ca9af20 git: 2.8.2 -> 2.8.4 306e8b8 mklibs-native: 0.1.40 -> 0.1.41 e19af01 file: 5.25 -> 5.27 4690723 autogen-native: 5.18.6 -> 5.18.10 4b77707 resolvconf: upgrade to 1.79 ff1105f pciutils: upgrade to 3.5.1 ad63662 tar: upgrade to 1.29 df25fcd curl: upgrade to 7.49.1 d665bfb byacc: upgrade to 20160324 523382d sudo: upgrade to 1.8.16 2a6da10 sysstat: upgrade to 11.3.4 20a9c29 grep: upgrade to 2.25 e9987f6 systemd-boot: Set COMPATIBLE_HOST in recipe 71765a9 bitbake: cooker.py: fix warn() -> warning() f2e5d88 bitbake: data_smart/utils: Add 'd' to the context used for better_eval in python expansion a1a0ce1 scripts/lib/bsp/engine.py: Added missing parentheses to string formatting 7fc6c45 scripts/lib/bsp/kernel.py: python3: use explicit relative imports dd20de9 scripts/lib/bsp/engine.py: Rename raw_input commands to input 0aa5c27 scripts/yocto-bsp: Fixed typo in parameter that was causing exception 9199a25 systemtap: add build dependency on ncurses db84521 oe/distro_check.py: Fixes for python3 4c38798 useradd-staticids.bbclass: Avoid FutureWarning about split() 93698ac useradd-staticids.bbclass: Make sure opened files are closed a912099 mips: add tunes for (some) 24K cores 7acb3db mips: add a tune for using MIPS16e ASE instructions ef35fac uclibc: never build with SSP b709c6c uclibc: no need for CONFIG_MIPS_ISA_xxx config options 9ac4c8b image/image_types.bbclass: fix fatal error during cpio debugfs creation 3332061 libjpeg-turbo: update to 1.5.0 4078b77 gnutls: update 3.4.9 -> 3.4.11 cfac890 weston: Fix bug causing the xwayland package to always be included 0c9c349 adwaita-icon-theme: Split symbolic icons into 2 packages e501d6f gtk+3: Add RRECOMMENDS to match gtk+ b0c69fe gtk-immodules-cache: Support both GTKs at same time b72c246 distcc: Disable GTK UI by default 7888c74 oh-puzzles: Remove as we're using puzzles now f04d8bc packagegroup-core-x11-sato: Use puzzles instead of oh-puzzles 947d41a gnome-themes-standard: Add new GTK+2 theme 21343ac npm.bbclass: avoid str/byte conversion problems for PKGV and SUMMARY b2b1a5f buildhistory-diff: suggest correct version of PythonGit a6da506 weston-init: Don't change XDG_RUNTIME_DIR if it already exists 7950a90 weston-init: Use bitbake path variable be82bdd x11-common: Fix XDG_RUNTIME_DIR typo 5edb12b python: Several recipes needed SRC_URI updating 61ba930 oe-pkgdata-util: new option to provide full info for binary package(s) 8a6c198 lib/oe/terminal.py: decode bytes variable before rstrip/split 09b9325 python3-pygobject: Upgrade from 3.18.2 to 3.20.1 cf12463 avahi: add extra path to GIR_EXTRA_LIBS_PATH fed0933 python3-pygobject: only check for even upstream versions bfade8c bash-completion: fix upstream version check 35fb16d python-numpy: Upgrade from 1.10.4 to 1.11.0 6aaeced python3-pip: Upgrade from 8.0.0 to 8.1.2 313a5f5 python-scons: Upgrade from 2.4.1 to 2.5.0 07c5fd7 python-pexpect: Upgrade from 4.0.1 to 4.1.0 84e9f80 python-mako: Upgrade python-mako and python3-mako to 1.0.4 03fa693 python-git: Upgrade from 1.0.2 to 2.0.5 f69acee python-setuptools: Upgrade to 22.0.5 3411d2d eudev: upgrade to 3.2 98fbdc7 runqemu-internal: Update the qemuzynq boot options 768dcc1 webkitgtk: disable gobject-introspection on mips64 abd5c11 packagegroup-self-hosted: port to Python 3 24dc5fc perl: fix several perl test failures 7ff9c5f perl: some perl tests require libssp 16f0c78 perl: set proper perl subversion number in config files ff3bc6c runqemu: Add suport for qemuzynqmp 21fbcdb packagegroup-self-hosted.bb: remove unsuitable network related dependence 40e789d bitbake: lib/bb/main.py: Fix use of BBPOSTCONF and BBPRECONF db7ec6c oe-pkgdata-util: fix AttributeError 4a842cc selftest/testexport.py: Add test test_testexport_basic 2228b16 testexport.bbclass: Create tarballs for easy release 120f706 testexport.bbclass: Add support for testexport-tarball 7d18d9f testexport-tarball.bb: Add recipe cfe3efd testimage.bbclass: Make dependency of cpio when using RPMs 938f053 oetest.py: Add install/uninstall functionality for DUTs d9b3ee8 lib/oeqa/otest.py: Fix import tests from other layers with python3 84441a9 oe/lib/pacakge_manager.py: Update missing pipeline decoding d28781b alsa-plugins: 1.1.0 -> 1.1.1 4c63497 alsa-utils: 1.1.0 -> 1.1.1 c883f4c alsa-lib: 1.1.0 -> 1.1.1 adfec92 alsa: update BUGTRACKER links b7cd72c opkg-utils: update SRCREV d9e47a5 rm_work: exclude all kernel recipes a2eb6d4 gobject-introspection: move to Python 3 794a23a db: add RECIPE_NO_UPDATE_REASON aafcdd0 linux-yocto/4.4: mmc backports 7bb3651 yocto-bsps: add i2c definitions to beaglebone 87dc548 linux-yocto/4.4: bump to v4.4.12 a7ddbea meta: Drop swabber c2dbcbb scripts/lib/bsp/engine.py: Added missing keyword to fix syntax error cffea7f maintainers.inc: change maintainer of db package 9c75c64 kernel-dev: Fix the locations of .config and source directory 25d8fac profile-manual: Added cross-reference links to INHIBIT_PACKAGE_STRIP ceb7c51 ref-manual: Fixed *[doc] string for INHIBIT_PACKAGE_DEBUG_SPLIT 6c5fea2 documentation: Prepared manuals for a 2.2 release. 8fc310c ref-manual: Added BlueZ version 5 feature to distro feature section. 6c5d7f1 lib/oe/package_manager: adapt for Python 3 5481363 libarchive: respect disable-acl configuration option 04319c0 image-buildinfo: Update to python3 syntax 928e133 libarchive: Add PACKAGECONFIG for lz4 to ensure determinism 81b59a1 dpkg: Upgrade to 1.18.7 b7644fc ofono: update to 1.18 25586a3 gnome-desktop3: update to 3.20.2 0fb7a43 watchdog: update to 5.15 d2d5bf5 systemtap: update to 3.0 41f1882 msmtp: update to 1.6.5 9b93787 libxslt: update to 1.1.29 eddd0ec libksba: update to 1.3.4 7183a89 kexec-tools: update to 2.0.12 878ca63 iso-codes: update to 3.68 d44fcb3 icu: update to 57.1 64e6409 mc: update to 4.8.17 2a16d50 gobject-introspection: update to 1.48.0 3b85abf gdb: fix upstream check 02d0933b gcc: fix upstream check for 5.x version 09f1f30 cantarell-fonts: update to 0.0.24 063d49b ffmpeg: update to 3.0.2 5200775 build-appliance-image: update version to 15.0.0 88ac059 btrfs-tools: update to 4.5.3 f6f7db7 boost: update to 1.61.0 7a0ef75 cantarell-fonts: fix upstream check 91874ce tzcode, tzdata: fix upstream version check ce3ab76 cups: fix upstream version check da4abff webkitgtk: upgrade to 2.12.3 2d97d69 rt-tests, hwlatdetect: upgrade to 2.0 9e29916 gdbm: upgrade to 1.12 4b4e182 toasterconf.json: exclude releases Toaster can't build df963f5 scripts/pybootchart: Fix print statement 438ac32 bitbake: codeparser: Use hashlib for hashing, not hash() 5f2facf bitbake: codeparser: Small optimisation to stop repeated hash() calls 7e73990 scripts: python3: change python to python3 in shebang 3e309e0 scripts: python3: decode subprocess output 3af9f6b engine: python3: replace iteritems() -> items() c675974 scripts: python3: replace exec statement with builtin 059dd9f scripts: python3: use explicit relative imports d1421df engine.py: python3: rename sys.maxint to sys.maxsize ecc9184 scripts: python3: use new metaclass syntax 5483fa2 scripts: python3: rename raw_input to input 02ac95a bitbake: fetch2: fix unpacking of deb packages 08c6808 bitbake: fetch2/git.py: References must match exactly 2660dde bitbake: cookerdata: print an error if layer dir does not exist c8aad90 send-error-report: encode data to bytes 14b758b lib/oe/buildhistory_analysis: fix for Python 3 a8cf2ce security_flags.inc: add an entry for python3-numpy 91a7f54 testexport.bbclass: Update to use python3 1a2a69e dosfstools: Upgrade 3.0.28 -> 4.0 469e56b image-live, image-vm, wic: Remove fs size workaround 48bc623 mtools: Patch out a useless sanity check 309c0b6 ca-certificates: add dependency for native/nativesdk on openssl-native cdff6bc scripts: python3: change python to python3 in shebang 4e36eee scripts: python3: decode subprocess output a8314b9 combo-layer: python3: use tempfile.TemporaryFile f1e85d4 dirsize: python3: fix TypeError: unorderable types a404542 combo-layer: python3: import reduce 64987b2 scripts: python3: use new metaclass syntax b05bf8c scripts: python3: get rid of __future__ imports 793b83a scripts: python3: rename raw_input to input 90e7fee ksize.py: python3: get rid of strings.join f6f1085 scripts: python3: fix urllib imports ee31bad scripts: python3: use new style except statement 07c97db scripts: python3: convert iterables to lists 1132970 automake: drop the Python scriptlets to determine Python's directories 5796328 python3-numpy: add a recipe 7f2ac59 hwlatdetect: move to Python 3 caf553b libcap-ng: move to Python 3 cc95c79 systemtap: move to Python 3 eb80ec9 lttng-ust: move to Python 3 8fdb4be lttng-tools: move to Python 3 76d6f00 gnome-doc-utils: remove recipe 296004a libnewt-python: move to Python 3 0789227 libuser: move to Python 3 444da83 python-docutils: move to Python 3 68cea00 python-imaging: remove unused recipe 5cd554f python-pyrex: remove unused recipe 991a713 swig: move to Python 3 609bf2e gdb: move to Python 3 ada03c3 bootchart2: move to Python 3 4672ffa python-pycairo: move to Python 3 a8d85cf util-linux: move to Python 3 8c1aa8b systemd: drop python dependency for ptests 96f8845 nfs-utils: switch to Python 3 6042021 packagegroup-core-full-cmdline: drop python-dbus from the list of services 0bde4b9 ofono: drop the custom-made revert to Python 2 from Python 3 5a3a4a7 connman: do not install Python test scripts eb45d83 bluez5: switch to Python 3 48bd640 neard: do not package python test scripts 4de7a81 python-pygobject: port to Python 3 900674e dbus-test: remove unneeded pygobject dependency 2e5367e glib: move to Python 3 f5d36b1 python3: drop 110-enable-zlib.patch 141fa73 python-dbus: update to 1.2.4, port to python 3 a17e159 bind: switch Python dependency to Python 3.x c71f5ab systemd: support systemd-boot as a stand-alone EFI bootloader 4082974 pango_1.40.1.bb: Fix compilation error 2ce2225 libpam: update dependency list d62aed1 iw: update to version 4.7 b6951c7 libsdl2: Fix build with wayland 1.10 59b6a03 syslinux.bbclass: Added configurable SYSLINUX_ALLOWOPTIONS variable 0726b2d bitbake: bitbake-layers: show-layers: disable parsing dcbfc72 poky: Add Ubuntu 16.04 to tested/supported list since I run it myself 5a9745d distro_check.py: Don't mix tabs and spaces 3a76339 bitbake: toaster: use python3 explicitly 2b362f6 bitbake: toaster: fix urllib imports 2de58c9 bitbake: toaster: don't use mru.count in the template ce9cff5 bitbake: toaster: use // operator instead of / 9434eee bitbake: Revert "buildinfohelper: work around unicode exceptions" 2448df7 bitbake: xmlrpc: add parameter use_builtin_types 7cd7680 bitbake: toaster: use knotty when working with bitbake server 15bb3d4 bitbake: toaster: fix migrations de21205 bitbake: toaster: moved import bb.server.xmlrpc 5074c60 bitbake: toaster: read timezone files in binary mode cf454d7 bitbake: toaster: use re.sub() instead of translate() d393fe6 bitbake: toaster: replace map with list comprehensions 314541f bitbake: toaster: use items and range instead of old APIs 96ce543 bitbake: toaster: use decode('utf-8') for binary data 46ed4ff bitbake: toaster: modified list of dependencies 9a3f2b3 bitbake: toaster: fix local imports 0224f75 bitbake: toaster: fix imports to work for python 3 bbc6e75 bitbake: toaster: get rid of using reduce 7c44d88 bitbake: toaster: use force_text instead of force_bytes 8a93f5f bitbake: goggle/image-writer: Drop since bitrotting and no longer used 685628e bitbake: image-writer/goggle: Disable pygtkcompat problems e80a8c2 bitbake: lib/bb: Set required python 3 version to 3.4.0 a15e538 bitbake: data_smart: Simplify ExpansionError exception 0f2c593 bitbake: bitbake: Convert to python 3 ef1df51 bitbake: bitbake: Drop futures usage since we're python 3 deca147 bitbake: bitbake/pyinotify.py: Upgrade to py3 version 822eabf bitbake: bitbake/bs4: Upgrade 4.3.2 -> 4.4.1 (python 3 version) 4f89593 oeqa/selftest/recipetool.py: Tweak matching of warning line 440c681 qemurunner: Use surrogateescape decoding 76aefc4 devtool.py: Fix parsing of bitbake-layers' output e2e3fa4 buildhistory_analysis: Convert stream data (bytes) to strings 89d40a1 selftest/devtool: Compare sets instead of arrays on AssertEqual 3b39971 classes/lib: Complete transition to python3 52c4b7f scripts: use python3 in shebang 0d7db8e scripts: Fix urlparse imports for python3 fa4275b scripts: Rename ConfigParser -> configparser for python3 3ee70cb scripts: Fix encoding errors for python3 ed7abe6 scripts: Replace basestring -> str for python3 7eab022 scripts: Fix deprecated dict methods for python3 63404ba qemurunner: convert data when working with socket aa10d71 wic: encode help text ddbd307 wic: use python3 in shebang dca3aba sanity: Switch urlparse to urllib.parse 642a997 classes/lib: Update xrange -> range for python3 44e9a0d classes/lib: Update to explictly create lists where needed 8587bce classes/lib: Update to match python3 iter requirements a7309d5 classes/lib: Update to use python3 command pipeline decoding 297438e classes/lib: Convert to use python3 octal syntax c77e7b8 oe-buildenv-internal: Update to python3 3c42280 sanity: Drop setting C locale ab75075 scripts: python3: Use print function fc79776 scripts/lnr: update for python3 2e38804 scripts: python3: Use print function 79be110 systemd: allow add users as a rootfs postprocess cmd cdd764c openssl: fix the dangling libcrypto.a symlink af587b8 package.bbclass: fix strip and split logic 5efe4c9 perl-ptest.inc: fix tar call to prevent objcopy failure 37688b3 insane: return line-feeds to qa.log 51c6704 bluez5: update to 5.40 078b867 libpng: update to 1.6.22 763a3d4 unzip: fix security issues c6e5c00 libarchive: Upgrade to v3.2.0 9d7867a python-numpy: move recipe to own directory 083d0aa python3: add = to -L linking option only when the path is absolute a80a5b1 python3-nose: add a recipe f540622 python3-mako: add a Python 3 recipe be4e792 cracklib: disable building the python module 79797a8 subversion: remove unnecessary python dependency 2efef0c qemu: remove runtime python dependency d78beb7 git: remove Python package (to which nothing was packaged) 3e03ca7 python3: manipulate all of the config*/Makefile files, not just config/Makefile 2fe44ef avahi-ui: remove support for building a python module 0b38900 sip.bbclass: remove 1c83fcd default-versions.inc: drop python-related defaults 03da683 python3-dir.bbclass: add a separate class for Python 3 78502a8 distutils-native-base.bbclass, distutils3-native-base.bbclass: remove 4977a07 python-native, python3-native: remove the use of exported HOST_SYS and BUILD_SYS variables 49557a5 recipetool / devtool: set a fixed SRCREV by default when fetching from git 0a7c699 recipetool: create: use ${BP} for subdir for binary packages eb09735 recipetool: create: extract variable values from .deb/.ipk/.rpm 2b510f5 recipetool: create: support extracting SUMMARY and HOMEPAGE c056dad lib/oe/recipeutils: fix insertion of variable values 9f56b98 lib/oe/recipeutils: patch_recipe_lines: allow omitting trailing newlines c93602c lib/oe/recipeutils: split out patch_recipe_lines() fcc2c3c yocto-bsps: Update to 4.1 to include musb fixes 04777ae yocto-bsps: update to 4.1.24 2b82b59 linux-yocto/4.1: fix musb compilation error 5224ac7 linux-yocto: only use intel branches for optimized platforms 141bf482 linux-yocto: create intel branches 4dc5ec2 linux-yocto:4.4: broxton backports c1a4ddd layer.conf: Whitelist ca-certificate dependency on openssl f8ff1f2 ca-certificates: Add openssl as a runtime dependency f053b5f initscripts: check if swapon/swapoff exists before executing them b426b2b uboot-sign: rebuild u-boot.img with signed dtb 8d7f58b u-boot: replace old-style shell syntax with the modern one 6b38e77 xcb-proto: remove stale git recipe and now redundant .inc ea9d27a libxcb: upgrade to 1.12 621a038 xcb-proto: upgrade to 1.12 8c3add9 libsecret: upgrade to 0.18.5 ae7898c liburcu: upgrade to 0.9.2 e3ba64a gcr: upgrade to 3.20.0 8e23a04 babeltrace: upgrade to 1.3.2 8fd1a59 msmtp: upgrade to 1.6.4 1b71c59 gobject-introspection.bbclass: disable introspection for -native and -nativesdk recipes 0f64a71 lib/oe/package_manager.py: Add pkgpath to dict returned by package_info d56ccf6 oetest.py: Add support to copy unextracted packages for runtime testing 92afca7 oetest.py: Add extract_packages() to RuntimeTestContext class 8a68910 oetest.py: Add json file support to specify packages needed in runtime tests 3a81a3d xmlto: xmlto needs tail to run 2dbd873 libgpg-error: Upgrade 1.21 -> 1.22 145d285 gnupg.org-hosted recipes: Change SRC_URI to https site 2e74e4c libevdev: Upgrade 1.4.6 -> 1.5.1 dff8ca2 gtk+: Upgrade 2.24.29 -> 2.24.30 1645e71 clutter-gst-3.0: Upgrade 3.0.16 -> 3.0.18 095f03c clutter-1.0: Upgrade 1.24.2 -> 1.26.0 c342731 coreutils: revert upstream commit causing havoc with ls output 91488e9 wic: bootimg-efi: include startup.nsh if it's available 837670e gummiboot.bbclass: also write startup.nsh for non-iso dbee7ae grub-efi.bbclass: also write startup.nsh for non-iso affb439 linux-firmware: update to git rev 80d463be82 87f0a82 libpam: update to 1.3.0 52d130d dropbear: Remove incorrect SFTPSERVER_PATH from CFLAGS 1eca8ea docbook-xsl-stylesheets: Upgrade 1.78.1 -> 1.79.1 c45c942 kernel: Make symbol link to vmlinuz in boot directory 0437a59 kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time 077377e cpio: Add native variant 6a7138e oeqa/utils/package_manager.py: Add get_package_manager() daf0cc3 oetest.py: Move getTests() outside loadTests() method 549f134 testexport.bbclass: Stop exporting test context c358ab5 nopackages.bbclass: deltask foo_setscene fbb6775 libjpeg-turbo: set SUMMARY 2c7cf13 gobject-introspection: set SUMMARY and HOMEPAGE 4dd7a01 argp-standalone: set SUMMARY instead of DESCRIPTION 8e2617a signing-keys: set SUMMARY instead of DESCRIPTION 0c2972b fts: set SUMMARY instead of DESCRIPTION 3a31047 bsd-headers: set SUMMARY instead of DESCRIPTION 4d6f027 dhcp: fix non-deterministic libxml2 dependency a0acd70 gcc: Backport nios2 gcc ICE fix 899358a npm: add target_arch flag to npm 7fed397 ghostcript: Set UPSTREAM_CHECK_URI variable 7b3061e sanity: check that the en_US.UTF-8 locale exists 4c3738c diffutils: Add patch to fix gplv2 version with gcc6 239efcc tcmode-default: Bump gcc 2718e84 yocto-bsps: update to 4.4.11 56ab1a5 linux-yocto/4.4: integrate v4.4.11 1e9c392 linux-yocto/4.4: beaglebone: build in the usb controller drivers 9a38dc6 linux-yocto/4.1: v4.1.24 and gcc6 powerpc fixes ce37657 sqlite3: update to 3.13.0 9ade84b iproute2: upgrade to 4.6.0 44e4d20 matchbox-keyboard: Upgrade b5fe460 mesa-demos: Upgrade 8.2.0 -> 8.3.0 6ec0804 fontconfig: Upgrade 2.11.94 -> 2.11.95 8aad230 dropbear: Upgrade 2015.71 -> 2016.73 8a97d9e mkelfimage: fix compile issues 06563e6 openssl: Ensure SSL certificates are stored on sysconfdir 0b1a03e ca-certificates: Use c_rehash utility 0a84108 openssl: Add Shell-Script based c_rehash utility 1cdd979 sstate.bbclass: Don't create symlinks, download to the correct location 2d0a5c8 devtool: upgrade: clarify help text for --srcrev option 93a1c01 devtool: upgrade: tweak conflict handling ab22745 devtool: upgrade: handle upgrading recipes with a versioned inc file c7e614c useradd: Fix infinite build loop 32bbf68 meta-yocto-bsp: Enable xf86 modeset for beaglebone bd7b363 linux-yocto-rt, core-image-rt*: Explicitly skip when PREFERRED_PROVIDER_virtual/kernel isn't set to linux-yocto-rt 21af6c6 scripts/bitbake-whatchanged: migrate from optparse to argparse aac3659 core-image-{minimal, testmaster}-initramfs: set COMPATIBLE_HOST 1974624 image.bbclass: additional output in create_symlinks e7b5bd2 image.bbclass: support duplicate compression types 96b1eb4 coreutils: Fix rootfs creation errors 34d64f0 net-tools: Fix rootfs creation errors f8aa96e shadow: Fix rootfs creation errors b414b50 musl: Update to latest tip ff35bfa qemu: Upgrade to 2.6.0 bc155f8 harfbuzz: update to 1.2.7 fb51dc9 libsolv: update to 0.6.21 133ad83 libsoup-2.4: provide PACKAGECONFIG for gssapi 2c1aa9c cmake: update to 3.5.2 9157c11 ghostscript: Update URL_SRI considered as 'old release' f2092e6 systemd: re-enable mount propagation for udevd 13df45b package_manager: no need to output Note: in bb.note() calls 456b222 wipe-sysroot: fix wrong glob when removing manifests f9b0781 scripts/oe-selftest: Remove inadvertant python3 specific change 66b484f python-smartpm: Avoid locale issue with bitbake python3 d57de67 bitbake.conf/toolchain-shar-extract: Use en_US.UTF-8 as locale 3ddde5f meta: Update to modern exception syntax 01d07f3 kernel-uimage: Fix python indentation 8897211 meta/scripts: python3: rename file -> open ffe9604 meta/selftest/scripts: Use print function for python3 compatibility 0298688 devtool: sdk-update: drop support for local updates 0111181 nativesdk-glibc: Extend relocation support to locales 6b3ac01 glibc-locale: Enable binary locale generation for nativesdk-glibc 72fb52e build-appliance-image: use 'lnr' instead of 'ln -sr' 22a55ba lttng-modules: Upgrade to 2.7.3 release fe70c06 mkelfimage: obey LDFLAGS, sort out HOST_ flags d61d4ba core-image-weston: If X11 is enabled, add XWayland support 5fb0c1e weston-init: Use weston-launch when starting weston as the first windowing system 7b779c8 weston: Add Xwayland initialization support using weston-start 5afb6a9 weston-init: Add module support for the weston-start helper 71b3566 weston-init: Error out if loading a nested instance 2f0283a weston-init: Rework init sequence to avoid code duplication d46c5be weston-init: Rework do_install to use install -D option 959237e weston: Provide a default version of weston-launch that doesn't require PAM 9a9f04f weston: Remove XWayland dependencies on PACKAGECONFIG 9b5abe2 weston: Enable XWayland when X11 and Wayland support are available ecd8d88 weston: Add PACKAGECONFIG option for 'clients' 959bec1 weston: Fix SystemD service description e2f31e1 weston: weston-launch: Handle invalid command line options 2192a48 bitbake: cooker: Fix parse progress for python3 e73a85b lib/oe/rootfs: Fix DEBUGFS generation, without openssl bf4616d gdb: Backport patch to changes with AVX and MPX 070ea45 acl.inc, run-ptest: improve ptest functionality on limited rootfs 599933c mesa: fix mesa_populate_packages() when dri is disabled 70b0e62 wic: fix path parsing, use last occurrence 55159ef classes/kernel: check OLDEST_KERNEL at configure time 02587c4 classes/kernel: fix typo 55c383d bluez5: fixed path to bluetoothd in sysvinit script b0207e7 qemu: Upgrade to 2.5.1.1 for fix CVE-2016-3710 and CVE-2016-3712 1bf7a81 openssh: update homepage and summary fd436a2 classes/populate_sdk_ext: adjust variable blacklisting 711185d linux-dummy: set INHIBIT_DEFAULT_DEPS d3a2da4 kernel: fitimage: Repair misuse of shell test command 5ca7cbf bluez5: move btmgmt to common READLINE section de18e6b webkitgtk: turn off JIT on armv4 and armv7a 982b631 mesa-demos: provide option for disabling GLX demos 409c940 bitbake: toaster: tests builds Add SSTATE_MISS as a valid condition for tc=833 0664a89 bitbake: toaster: tests build Add a test for a build of core-image-minimal 085688c bitbake: toaster: tests Add a BuildTest helper class 5ce1adb bitbake: toaster: Add a specific test settings file 82dc991 bitbake: toaster: runbuilds move the execution sequence out of the poll loop db84307 bitbake: toaster: Remove DATABASE_URL being passed around as an environment var 8fba59c bitbake: toaster-tests: tests for project config 1aab29e bitbake: toaster: projectconf Small tweaks to IMAGE_FSTYPES form c81d03e bitbake: toaster: handle multiple imagefs types 5444aba kernel: moves KERNEL_SRC_PATH to bitbake.conf a53a9dd zip: update SRC_URI 8949d25 unzip: update SRC_URI 7dbdef4 libgudev: fix upstream check 69dfa87 freetype: fix upstream check 9f447ba package_regex.inc: remove deprecated file efd892b yocto-uninative: Update to 1.1 tarball (new version of glibc) 18eccfa rootfs.py: Unify _log_check_warn() and _log_check_error() 9948e0d rootfs.py: Reduce spam from _log_check_warn() 79d1778 rootfs.py: Exclude lines in _log_check_warn() as well e3e8d50 rootfs.py: Use one way to exclude lines in _log_check_error() a653f36 rootfs.py: Simplify the regular expression used in _log_check_warn() d416a4e rootfs.py: Remove _log_check_error() from the RpmRootfs class c60134f Revert "rootfs.py: add more info to the warning message" 458f824 sysprof: Disable nios2 support e1ec420 elfutils-0.148: Fix build with gcc6 fd36a44 systemd: Create missing sysusers offline 553fa35 useradd.bbclass: Strip trailing ';' in cmd params c9867c4 bitbake: cooker: Improve taskgraph file handling 2970800 bitbake: codeparser: Increase cache version after code parser dependency changes 1fb330b bitbake: bb.codeparser: track variable flag references 32ee30a bitbake: Provide LAYERDIR_RE for layer.conf 90bc9b4 bitbake: cache: Increase cache version after task checksum calculation changes 692b874 bitbake: Implement support for per-task exports a809f1c bitbake: bb.cooker: show limited traceback for parsing ExpansionError b00282f makedevs: fix security issues c676d5d zip: fix security issues 8ed2551 stat: fix security issues 1613275 pixman: Fix build on arches not defining FE_INVALID exception 479780d buildtools-tarball: add nativesdk-locale-base-en-us 9f92167 buildtools-tarball: replace nativesdk-python with nativesdk-python3 a2e3f17 buildtools-tarball: remove nativesdk-python-pexpect 65ab096 python3-git: add it for buildtools-tarball 57c50be python3-gitdb: add it for python3-git 643b444 python3-async: add it for python3-gitdb e0b7ecc python3-smmap: add it for python3-gitdb 1e24447 useradd: use bindir_native for pseudo PATH 90cb500 openssh: Backport fix for CVE-2015-8325 4d72f50 openssh: Upgrade 7.1p2 -> 7.2p2 ce2dd24 scripts/oe-selftest: Improve listing by reducing unneeded spacing 978d450 oe-selftest: wic: add test_bmap test case 471a816 wic: add help for --bmap commandline option b580449 wic: implement --bmap option a49d279 wic: add bmaptool to the list of utilities 37abaa3 mkefidisk.sh: mount images as read-only e44c849 python-smartpm: Remove unnecessary error reporting improvement patch be0cabf python-smartpm: Don't ignore error if RPM transaction fails without problems e89c6c4 python-smartpm: Fix channel command --remove-all option (again) 350d939 python-numpy: fix build failure with python-matplotlib b4c23e9 oetest.py: Use the real ExportTestContext in exported tests 86d65d7 oetest.py: Add default pscmd to oeTest 20afc59 testimage.bbclass: Remove exported test 41fbf2c oeqa/runexported.py: Remove host dumper b3a6563 testexport.bbclass: Split testimage class a9eb22e oeqa/oetest.py: Add class ExportTestContext e090775 pseudo: Work around issues with glibc 2.24 3eb00d6 glibc: Add missing patch hunk back 7707cf6 sdk-manual: Fixed three broken links to sections within manual. ba91c24 pkgconfig: Update AM_GLIB_GNU_GETTEXT macro 7cfaf9f gnome-doc-utils: Update AM_GLIB_GNU_GETTEXT macro d972c62 weston: Upgrade 1.9.0 -> 1.10.0 aac99fb wayland-protocols: Add recipe c88aee4 wayland: Upgrade 1.9.0 -> 1.10.0 93e7f38 glib-2.0: Upgrade 2.46.2 -> 2.48.1 6bbe4fe bitbake: bitbake-layers: convert to plugin-based 07eebc6 bitbake: knotty: Fix output buffering issues 62384f5 bitbake: siggen: Fixes to handle sigdata/siginfo files only containing basehash data 74ae91e bitbake: toaster: don't show "Rebuild" button for cancelled cli builds d9d715b bitbake: toasterui: capture keyboard interrupts the same way as knotty df0fc2d bitbake: buildinfohelper: add method to set current build as CANCELLED 3718f8d bitbake: toaster: toastergui tests Fix toastertable tests 54bf7cc bitbake: toaster: toastertables: Clean up and fix up a number of items a906a09 gcc: Security fix CVE-2016-4490 a1928c8 gcc: Security fix CVE-2016-2226 23f0032 gcc: Security fix CVE-2016-4489 02321b6 gcc: Security fix CVE-2016-4488 e3eaef7 eudev: remove eudev-hwdb from RRECOMMENDS_eudev 3da513b mesa-demos: OpenVG demos with single frame need eglSwapBuffer d28ab58 classes/base: get_lic_checksum_file_list imporve validaton of url's 4725d90 coreutils: fix for native and nativesdk da53c7d oe-buildenv-internal: add BBPATH_EXTRA to BB_ENV_EXTRAWHITE_OE 46cf6f5 gnu-efi: set COMPATIBLE_HOST_armv4 to null d34237c cogl-1.0: set COMPATIBLE_HOST_armv4 to null a994ad9 openssh: change URI to http: 3fec661 perl: use PACKAGESPLITFUNCS instead of populate_packages_prepend 9e48d19 libsolv: upgrade to 0.6.20 53b05b5 libproxy: update to version 0.4.13 31af290 xproto: Upgrade 7.0.28 -> 7.0.29 d4099e1 expat: Upgrade 2.1.0 -> 2.1.1 169852e libsoup-2.4: Upgrade 2.52.2 -> 2.54.1 249dd79 json-glib: Upgrade 1.0.4 -> 1.2.0 b1f4932 inputproto: Upgrade 2.3.1 -> 2.3.2 d63463b gsettings-desktop-schemas: Upgrade 3.19.3 -> 3.20.0 7e96b68 gdk-pixbuf: Upgrade 2.32.3 -> 2.34.0 53c4318 pango: Upgrade 1.38.1 -> 1.40.1 29b9316 glib-networking: Upgrade 2.46.1 -> 2.48.2 7db0cc2 sstate: Ensure we sort the value used for SSTATETASKS for determinism 9094ea9 classes/oeqa: Update for print statements and file() -> open() for python3 ca2edae oeqa: Print function python3 fixes 52b3cc9 tcmode-default: Bump glibc,gdb 45da72b security_flags: Enable security flags on leafpad, ltp and libuser. b830a97 leafpad: Fix security formating issues. 6523854 libuser: Fix security string formatting issues. eecba71 ltp: Fixes security string printf on testcases/network/nfsv4/acl/acl1.c 574e9f4 linux-yocto/4.4: gcc6 build fixes (powerpc and mips) 531c354 glibc-initial.inc: fix py3 SyntaxError in cfgscript print() 144c517 autotools.bbclass: fix py3 SyntaxError in cfgscript print() bb44e5b oeqa/decorators: Use wraps consistently 7a93223 linux-yocto: Update SRCREV for genericx86* for 4.4 ba36be6 linux-yocto: Update SRCREV for genericx86* for 4.1 0854035 bitbake: toaster: use new syntax of except statement 519a85e bitbake: toaster: use print function in toaster script 3249e33 bitbake: toaster: use 'in' instead of has_key bfc21fd bitbake: server/process: Fix missing log messages issue 471310e bitbake: cooker/toasterui: Drop SEND_DEPENDS_TREE UI feature da46751 bitbake: runqueue.py: always emit bb.event.DepTreeGenerated ff5d6f8 selftest: add bmap test 39498d0 image types: add bmap generation option 8a8ed52 bmap-tools: initial commit, version 3.2 dc93972 image_types: add support for zip compression c589aff wic: use next builtin instead of .next method dd732ee wic: don't encode unicode strings a173885 wic: decode output of subprocess.communicate 5f06463 wic: use // operator instead of / bc89dc4 wic: use find_executable in favor of bb.utils.which b6b5b5e wic: don't use L suffix for integers 5fedb5d wic: refactor pluginbase d4ded7f wic: remove unused functions e301be3 wic: use new syntax of 'except' statement ed10a80 wic: remove with_statement imports dac0e80 wic: don't inherit classes from object 52ce79d wic: don't use dict.keys and dict.has_key e36d04a wic: use items instead of iteritems 0c57dd9 wic: replace print statements with print function 4dadbbd combo-layer: avoid too long command lines in update with history 659ed87 combo-layer: fix default "update" mode f969ce9 python-native: Point to expat in native sysroot and add missing dep on expat-native 45dd3d2 feature-arm-vfp.inc: fix overzealous ARMPKGSFX_FPU modification 0c717ff gdb: Upgrade to 7.11 6d27c16 glibc: Add recipes for 2.24 release 9b25b35 gcc 4.9: backport gperf fixes 31f98f9 openjade-native: work around bug exposed by GCC 6 efe59db gcc-5.3: backport gperf fixes 97531ef report-error: Replace the build directory path in the error text 0ba9ce2 mmc-utils: update to latest git version ad03e92 connman: update to version 1.32 0ff3f49 package_manager.py: Add extract() method for RPM package manager b372a82 package_manager.py: Add extract() method for opkg and dpkg c5aa524 package_manager.py: Move opkg_query() outside of Indexer class e81c8fc pong-clock: obey CFLAGS, LDFLAGS e593d3a ruby: obey LDFLAGS for the link of libruby 01cbd46 pseudo: obey our LDFLAGS b39ddd9 image_types: adjust default level of XZ compression 36912cd cmake: enable verbose builds 3d11229 bitbake: toaster: fix progress bar in MySQL environment c0db739 bitbake: main: Ensure exceptions are correctly displayed 2fc5d5d bitbake: cookerdata: Fix log messages and ensure we exit a46d485 bitbake: event/msg: Pass formatted exceptions ca824a9 bitbake: fetch: Use OrderedDict for url parameters ef4a7c3 bitbake: main: Change warn() -> warning() 7c0a219 bitbake: cooker: Fix log message syntax a0db121 bitbake: utils: Force bitbake to en_US.UTF-8 locale setting everywhere 221705a bitbake: bin/bitbake-worker: Fix invalid bb.msg.fatal usage df15469 bitbake: contrib/dump_cache.py, cache: Fix to use python 3 syntax 7d06ec1 bitbake: knotty: Ensure consolelog file handle is closed 6cc6818 bitbake: runqueue: Improve timestamp comparisons fce8da9 bitbake: daemonize/prserv/tests/fetch: Convert file() -> open() 9a30968 gcc-runtime, libgcc: Symlink c++ header and startup files in target_triplet for SDK use 7cabc9e mpfr: Upgrade to 3.1.4 0dcc42c ruby: Upgrade to 2.2.5 278f8e8 distcc: Upgrade to 3.2 3a167e6 mdadm: Fix build with clang 922c640 musl: Create symlinks for stub libraries 6d7cbc6 bitbake: Oldest kernel for nios2 is 3.19 f2f35cc gdb: Disable binutils components 26698cd libunwind: Add a confgure option for tests f3c90e1 gdb,strace: Fix builds on ppc/musl af6bfed libgcc: Ensure that gcc configure options are passed to libgcc too cc86da0 libunwind: Upgrade to 1.2rc1+ fb6ee22 libgcc: Ensure that gcc configure options are passed to libgcc too e260dc3 musl: Upgrade to tip of tree 54d06c0 bitbake.conf: Empty out BUILDSDK_CPPFLAGS ca8ae66 libunwind: Upgrade to 1.2rc1+ 08a9f5d grub_git: Upgrade to latest tip e511478 conf: bump minimum kernel to 3.2.0 f99fb6a libc-common.bbclass: Use sed instead of grep ec8c9eb busybox/mdev: Ensure /sys is mounted before using it 4eec0cb valgrind: Fix build with gcc6 a6f67e2 grub: Fix build with gcc-6 f0d2bd3 binutils: disable werror on native build b83a808 pkgconfig: Fix build with gcc-6 and upgrade to 0.29.1 40abaa6 nss: Upgrade to 3.23 6ab12ea mdadm: Fix gcc 6 warnings faf16fd oprofile: Fix with gcc6 268f66f webkitgtk: Upgrade to 2.12.1 b5c1f58 lzop: Fix build with gcc-6 54cbfa3 alsa-tools: Fix build with gcc6 b8e70ce rpm: Fix build with gcc6 24d9927 elfutils: Upgrade to 0.166 a088a41 glib-2.0: Ignore useless warning found with gcc-6 6ea164c gcc: Add gcc6 recipes 1f2108f linux-yocto/4.4: bump to v4.4.10 5968601 linux-yocto/4.4: beaglebone: Enable drm for omap 322a783 linux-yocto/4.4: update to v4.4.9 975fa0d linux-yocto/4.4: bump to v4.4.8 55f6cc4 font-util: Remove ${datadir}/fonts from SYSROOT_DIRS_BLACKLIST fc8f228 libtool: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from the sysroot 9390701 gcc-target.inc: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from sysroot 2aa49bc gettext: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from the sysroot 2997f01 grub2.inc: Use SYSROOT_DIRS_BLACKLIST to exclude dirs from the sysroot 4021e9b gobject-introspection: Use SYSROOT_DIRS to add dirs to stage in sysroot df02994 vala.inc: Use SYSROOT_DIRS to add dirs to stage in sysroot 700ce6b signing-keys: Use SYSROOT_DIRS to add dirs to stage in sysroot 40d19d9 base-files: Use SYSROOT_DIRS to add dirs to stage in sysroot 138d161 depmodwrapper-cross: Use SYSROOT_DIRS to add dirs to stage in sysroot c486741 shadow-sysroot: Use SYSROOT_DIRS to add dirs to stage in sysroot f6ed023 tcl: Use SYSROOT_DIRS to add dirs to stage in sysroot bc217a6 qemuwrapper-cross: Use SYSROOT_DIRS to add dirs to stage in sysroot dad9316 libtool-cross: Use SYSROOT_DIRS to add dirs to stage in sysroot 97f6ed3 u-boot-fw-utils: Use SYSROOT_DIRS to add dirs to stage in sysroot e839431 staging.bbclass: Make it easier to define which dirs to stage 5f6e5e4 pixman: Upgrade 0.32.8 -> 0.34.0 c2ceef3 mesa: Upgrade 11.1.1 -> 11.2.2 8505fde libdrm: Upgrade 2.4.67 -> 2.4.68 1c55101 libxkbcommon: Upgrade 0.5.0 -> 0.6.1 f9d5328 videoproto: Upgrade 2.3.2 -> 2.3.3 f264e09 xf86-input-evdev: Upgrade 2.10.1 -> 2.10.2 06b53bf libinput: Upgrade 1.1.4 -> 1.3.0 b74ee99 xkeyboard-config: Upgrade to 2.17 376bba7 xrandr: Upgrade to 1.5.0 2843331 bitbake: toaster: tests browser Add test for creating a project cd4f0b3 bitbake: toaster: models Add missing import sys 7e2d501 bitbake: toaster: ui handles duplicate project name in project page dc57476 bitbake: toaster: ui handles duplicate project name in new project page 9bdfed8 bitbake: toaster: projectNameValidation API added cc2f136 bitbake: runqueue: Fix missing fakeworker under dry run 442acd2 bitbake: lib/bb/utils.py: Fix explode_dep_versions2() determinism issue 3795f4d bitbake: bin, toaster: Fix print and exception syntax a9d90f7 bitbake: tests: assertEquals -> assertEqual 654eadf bitbake: bitbake: Update logger.warn() -> logger.warning() 5052bf9 oeqa/lic-checksum: Update after recent LIC_FILES_CHKSUM changes 8320293 devtool: Fix build-sdk when pn doesn't match filename 32d80fe Drop unneeded LIC_FILES_CHKSUM values 296c7e1 classes/insane: do not force LIC_FILES_CHKSUM unless SRC_URI is set 69cf7b3 lib/classextend: Fix determinism issue f49be7e update-alternatives: Fix determinism issue 8a88c56 image: Fix IMAGE_FEATURES determinism issue 015266a bitbake.conf: add default for IMAGE_FSTYPES_DEBUGFS 88d5f56 metadata_scm.bbclass: Do not assume ${COREBASE} is a Git repo 361c5be lttng-tools: filter random filename of ptest output c7bf1a8 feature-arm-neon.inc: restore vfpv3-d16 support 3333002 gcc: obey ldflags in the link of libgcc 47c994f populate_sdk_ext: Change lockedsigs task mismatch to a warning 1e88c74 xserver-xorg: update 1.18.3 and add PACKAGECONFIG for glamor b86f8a0 populate_sdk_ext.bbclass : Show logfile in case the SDK EXT installation failed d53ed05 combo-layer: implement "update with history" 107c35e combo-layer: runcmd() enhancements aa4de3c combo-layer: dummy "update with history" eb0ab04 sshcontrol.py: Add methods to copy dirs and delete files e81d7a8 classes/image_vm: allow different filesystems to be used for VM images. c1ce0d9 lib/oe/rootfs: Fix DEBUGFS generation for opkg & openssl-cnf 442fbdd linux-yocto-rt/4.1: update to rt23 834d316 linux-yocto/4.4: bump to v4.4.8 3730f6f linux-yocto/4.4: broxton enablement and refactoring 954bf18 linux-yocto/4.4: skylake configuration 6fd2ec9 linux-yocto/4.4: BXT mmc fixes + PUNIT, tubropower, and telemetry backport 3db6b64 linux-yocto/4.1: make ltsi content available ccfa498 linux-yocto/4.1: update to v4.1.22 1ce221d kernel-yocto: allow branch auditing to be suspended 0e50f6f kern-tools: handle directories with, or without, trailing / 07f9133 linux-yocto/4.4: sched/cgroup: Fix/cleanup cgroup teardown/init bfe3731 linux-yocto/uvesafb: print error message when task timeout occurs 9b9b983 image_types: fix image/compression dependency collection cf17882 libpcre: Fix CVE-2016-3191 af4e319 image_types.bbclass: add WIC_CREATE_EXTRA_ARGS 5ae5fc7 openssl: Security fix via update to 1.0.2h 199b348 image-live.bbclass: make the INITRD optional 26bf0e9 librsvg: Security fixes via update to 2.40.15 01f6052 git: update to 2.8.2 c63c1aa qemu: updgrade to 2.5.1 6b0bdd6 alsa-lib: Fix incorrect appl pointer when mmap_commit() returns error. 8c1932e iproute2: upgrade to version 4.5.0 cc5e129 sqlite3: upgrade to 3.12.2 cb3b214 harfbuzz: upgrade to 1.2.6 64edecf orc: upgrade to 0.4.25 8d66086 mc: upgrade to 4.8.16 41a1bbf libtasn1: upgrade to 4.8 a5f82b4 pkgconfig: update to version 0.29.1 5a21422 ethtool: upgrade to 4.5 db36fc9 acpid: upgrade to 2.0.27 06aa0d4 gdb: fix QA warning (uClibc) 0aba7d5 base-files: add some safety checks in profile 548e55c bluez5: upgrade to 5.39 7ca60ec test-empty-image: Fix LIC_FILES_CHKSUM typo 912e372 scripts/lib/bsp/kernel.py: force patching when branch is machine branch is re-use 3cdecde meta-selftest/images: Add LIC_FILES_CHKSUM to images using image.bbclass 1ee4cc1 bitbake.conf: change APACHE_MIRROR to point at archive.apache.org 2329274 mesa: add PACKAGECONFIG for gbm 46bfdec libxsettings-client: fix COPYING file b13367b meta-world-pkgdata: add LIC_FILES_CHKSUM b31c7ab packagegroup-foo.bb: remove LICENSE = "MIT" d38c923 packagegroup.bbclass: set LICENSE and LIC_FILES_CHKSUM a8b3576 insane.bbclass: package_qa_check_license -> populate_lic_qa_checksum 24eb9b1 tune-mips32r2.inc: add soft-float variants 6e4b817 ddimage: if 'pv' is installed, use it 6ebe903 dbus-test: install executables not libtool wrapper scripts b851cb0 mesa-demos: remove demos using obsolete screen surface 7f70b10 arch-powerpc64.inc: disable the use of qemu usermode on ppc64 1108bee eudev: add PACKAGECONFIG for hwdb 41f7160 libxml2: fix dependencies and QA Issues 1d9432a bash: fix dependencies and QA Issue 7ce949c popt: fix dependencies and QA Issue 0c26298 curl: add krb5 to PACKAGECONFIG 9efd547 oeqa/selftest/buildoptions: remove buildhistory signature test 692f9d4 mesa-gl: add missing MESA_CRYPTO to PACKAGECONFIG 5f14204 cross-localedef-native_2.22.bb: Use autotools configure 0bf6d57 insane.bbclass: remove workdir from package_qa_check_license() 30ba663 qemu: remove explicit but redundant native build dependencies b73ebda webkitgtk: remove gnome-common dependency 1b6ffd9 gnome-desktop3: remove redundant gnome-common dependency 997beb0 python-pygobject: remove redundant gnome-common dependency 8f275ff recipetool: create: fix falling back to declared license for npm packages 6ddd408 recipetool: create: fix picking up false npm package directories de75626 arch-armv7ve: inherit armv7a tunes file f088e69 kernel: fitimage: basic support for fitimage signature cb565d5 kernel: fitimage: support device tree compiler options 858ddd5 u-boot: deploy u-boot-nodtb and dtb files d8ae396 u-boot: basic support of dtb append for verified boot a78e4ad scripts/lib/argparse_oe: also change 'positional arguments' to 'arguments' 09cbec8 scripts/lib/argparse_oe: simplify options title change 3e79d54 scripts/lib/argparse_oe: show subparser help for unrecognized args 55c760b scripts/lib/argparse_oe: show self.prog in the error message 7669219 wic: use sparse_copy to preserve sparseness db9557c wic: use sparse_copy to copy partitions 4b97156 wic: add sparse_copy API a468d4b wic: add FIEMAP and SEEK_HOLE / SEEK_DATA APIs f8959d4 wic: moved DiskImage to direct.py f318015 wic: get rid of fs_related.makedirs 4daf903 wic: get rid of inheritance Disk->DiskImage d03cbac wic: use truncate utility to create sparse files e93254b autotools: add default for CACHED_CONFIGUREVARS 8d6bb65 packagegroup-core-lsb: fix whitespace in meta-qt* warnings 30f9a50 security_flags: turn potential string format security issues into an error 8fa797d sysvinit-inittab: restrict labels to 4 chars 36a2640 toolchain-scripts: replace source built-in call a2526b5 gstreamer1.0-rtsp-server: upgrade to version 1.8.1 06f5b8a gstreamer1.0-libav: upgrade to version 1.8.1 b8dbd21 gstreamer1.0-plugins-ugly: upgrade to version 1.8.1 9f9e48c gstreamer1.0-plugins-good: upgrade to version 1.8.1 32a315a gstreamer1.0-plugins-base: upgrade to version 1.8.1 e9c85d5 gstreamer1.0: upgrade to version 1.8.1 c6394a5 bitbake: bb.{cooker, data}: only emit a var as python if 'func' is set 9465558 bitbake: bb.utils: let loaded plugins provide a plugin object 19e6fd5 bitbake: bb.utils: use imp.get_suffixes for load_plugins 7dc1211 bitbake: bb.utils: add load_plugins from scriptutils 39b79ef bitbake: bb.data_smart: use iter() for __len__ cd20dd0 bitbake: bb.event: handle __builtins__ as a module 2d2d312 bitbake: bb.build: handle __builtins__ as a module 4f4f1c1 bitbake: bitbake: fetch2: Safer check for BB_ORIGENV datastore f00b4e4 bitbake: toaster: bin/toaster Fix noweb command 93853e0 bitbake: toaster: bin/toaster Add ability to specify port and address to bind to 4446b35 bitbake: toaster: bin/toaster Add help text for unrecognised command be49d0a bitbake: bitake: main: fix line-too-long pytling warnings b5af50e bitbake: bitbake: main: fix bad-continuation warnings 3437266 bitbake: bitbake: main: fix bad-witespace pylint warnings 24f5c32 bitbake: bitbake: main: set defaults from env variables 21b314d bitbake: bitbake: main: add 2 environment variables fce42a2 bitbake: toaster: customrecipe Only show download icon or button if it's possible d3b5b0b bitbake: toaster: orm Add get_base_recipe_file to CustomImageRecipe f7b5208 poky: Switch to post release name/version dfc5510 poky-tiny: Switch to using kernel 4.4 and busybox for init a4cf8bc bitbake: bitbake: Switch to post release version f9c623d bitbake: fetch2: export DBUS_SESSION_BUS_ADDRESS to support authentication agents 768c796 utils.bbclass: note for deprecated base_contains f22380e oeqa/sstatetests: remove temporary DL_DIRs in noop_samesigs 10ebdbb attr: Remove redundant "+=" after "_append" 19d8760 oeqa/sstatetests: add http_proxy to no-op hash test 0579719 bluez5: enable out-of-tree builds 860dfaf mx: move to autotools instead of autotools-brokensep c4ee663 mx-1.0: inherit gtk-doc 92f482b meta: add comments to explain autotools-brokensep use 7f8b975 cups.inc: Fix ldflags warning. 2daea56 wic: add help for --system-id option 5bc1e42 wic: set partition system id 514a878 wic: add system_id argument to Image.add_partition 8d747c8 wic: add system_id attribute to Partition e6a5232 wic: add sfdisk to the list of utilities a48630b wic: add --system-id wks option 4ed22ed wic: isoimage-isohybrid: fix splash file paths d73b756 image.bbclass: don't execute compression commands multiple times 57136a6 grub_git: set COMPATIBLE_HOST_armv7a to null 222c5c6 wic: isoimage-isohybrid: add grubefi configfile support 5073e5b busybox: don't build ar 002847a autotools: warn when running intltoolize if intltool isn't a dependemcy 9563869 bash: fixed ptest run-builtins failed 9c812e7 libunwind: backport aarch64_be support e7d3dcb image.bbclass: don't emit redundant IMAGE_CMD_xxx functions 2c9ead4 linux-firmware: break out bnx2 mips firmware and WHENCE license f095fdc package: ensure do_split_packages doesn't return duplicates 4e0d9d1 kernel-uimage: change target image to vmlinux 5dc3f38 packagegroup-core-tools-profile: Enable valgrind on ARMv7a and above a13343b directfb/pango/webkit: base_contains -> bb.utils.contains cb61390 gcc-sanitizers: Depend on target gcc 510344f babeltrace: Let autotools.bbclass run autoreconf a1d67b2 ref-manual: Added GObject Introspection to 2.1 migration section. 8aebd1c dev-manual: Added Gobject Introspection section. ab3147e ref-manual: Added new 2.1 migration misc. Change 6429369 sdk-manual: Applied review edits throughout the manual. d4c4b2f ref-manual: Applied 2.1 Migration section review edits. 1ae33ba sdk-manual: Updated the normal customization.xml file. 3f55657 ref-manual: Fixed a grammar consistency error 01df6a7 ref-manual: Applied review edit comments to the 2.1 migration section. 15a93e9 dev-manual: Updated the "varname" use to "VARNAME" b98a834 sdk-manual: Updated eclipse customization file. 07286b6 build-appliance: Switch to master branch post release 90f2040 qemu: Security fix CVE-2016-2858 dbdf9bf qemu: Security fix CVE-2016-2857 a421090 busybox: musl mips64 ip fix 9f3d7ae busybox: Security fix CVE-2016-2147 2928ca4 busybox: Security Fix CVE-2016-2148 3c6ead9 openssh: Security Fix CVE-2016-3115 3f75a64 tiff: Security fixes CVE-2015-8665 and CVE-2015-8683 71979b2 rpm: explicitly disable tomcrypt 592e5a9 recipetool.newappend: fix syntax error for 'not path_ok' error 9de4e4a matchbox-panel-2: Depend on dbus-glib-native 567483f connman-gnome: Depend on dbus-glib-native ea41b63 gobject-introspection: Depend on native flex and bison 7c1badf gobject-introspection: fix floating dep on python-mako 5bfd397 sdk.py: preserve packaging data when SDKIMAGE_FEATURES has "package-management" 69d3df9 lib/oe/rootfs: Fix DEBUGFS generation when using opkg e717e28 boost: improve configure ff61a85 boost: delete the build directory before rebuilding a9b503b license.bbclass: make sure that image manifest dir exists 2755304 busybox: update flock behavior to match upstream 7da7587 valgrind: turn off the file level dependency 1bcdc89 tzdata: update to 2016d b4057ae tzcode: update to 2016d 04f7e29 meta: add missing intltool-native dependency 2caf6e5 pulseaudio: Add intltool-native dependency 6c1c013 build-appliance-image: Update to krogoth head revision 5f84d65 syslinux.bbclass: Remove APPEND from variable dependency d9dd864 bitbake: toaster-tests: tests for build dashboard 1cf8f21 bitbake: toaster: add modal to select custom image for editing a40a3e6 bitbake: toaster: add build dashboard buttons to edit/create custom images e65c980 bitbake: toaster-tests: make helper click on input before entering text 484cbf8 bitbake: toaster-tests: add tests for new custom image page 437b728 bitbake: toaster: prevent exception when Project.release is null cfc22d3 bitbake: toaster: only prevent duplicate custom image names within a project 3036413 bitbake: toaster: disable/enable "Add layer" button according to input's content 040dbf6 bitbake: toaster: fix sorting after hiding a column in build tables 1b11b79 bitbake: toaster: ensure ToasterTable headings are reset when order by changes 9855840 image.bbclass: The wrong name is being used for the debug filesystem 38c7e2d image_types: Ensure rootfs dependencies cover DEBUGFS 0c3eaa7 syslinux.bbclass: The AUTO_SYSLINUXMENU value needs to be boolean 9c8a049 perf: pass DESTDIR in EXTRA_OEMAKE 9de7324 buildtools-tarball: set INHIBIT_DEFAULT_DEPS ef09105 xf86-video-omapfb: remove EXTRA_OECONF_armv7a c2f7da2 base.bbclass: Introduce PACKAGECONFIG_CONFARGS variable e1c6890 git: update to 2.7.4 98bf7de license.bbclass: do write_deploy_manifest in image postprocessing 519600c devtool: sdk-update: fix handling of UNINATIVE_CHECKSUM changes c7980b6 bitbake: main: fix processing of BBEVENTLOG ee25d0e toasterconf.json: Update for krogoth release b8e5de2 toasterconf.json: Remove fido from supported configurations c59771e toasterconf.json: Update for krogoth release d0bce0b toasterconf.json: Remove fido from supported configurations d25eea3 poky-tiny.conf: set PREFERRED_VERSION_linux-yocto-tiny to 4.4 9f970b6 dev-manual, profile-manual, ref-manual: Purging Oprofile stuff 1d93104 ref-manual: Added description for the testsdk.bbclass. db47094 ref-manual: Updated the remove-libtool.bbclass description. a16eeca ref-manual: Added gobject-introspection.bbclass description. 3e761b4 ref-manual: Added reference for npm.bbclass. 5e50157 ref-manual: Fixed typo in the nopackages.bbclass description f7b68c7 ref-manual: Added description for bash-completion.bbclass ece900a ref-manual: Added nopackages.bbclass description. Fixed stray typo. 9143e9e ref-manual: Added description for the INSTALL_TIMEZONE_FILE variable. 6391dbf ref-manual: Updated the PREFERRED_PROVIDER variable with a note. 6d86f7a ref-manual: Dropped references to the autotools_stage class 4d5ff5e ref-manual, dev-manual: Scrubbed boot-directdisk and bootimg classes cd2aaaa ref-manual: Updated the uninative.bbclass description. e975d26 documentation: Converted "meta-yocto" to "meta-poky" 84452ee bsp-guide: Updated yocto-bsp create example output. e00a62c ref-manual: Added the migration section for 2.1 02db9e6 yocto-project-qs, ref-manual: Upgraded minimum Git requirement 989841f ref-manual: Added rootfs-postcommands class description. d06b343 ref-manual: Updated the EXTRA_OEMAKE variable description. ecb2eb6 dev-manual: Updated "Additional Implementation Details" section 004b939 bitbake: lib/bb/utils: add docstring for contains() 524d04c ca-certificates: support Toybox ecaf12e oetest: make console output more verbose 4946ecf dhcp: CVE-2016-2774 c219c6d buildtools-tarball: fix perl being included when building with ipk 9fe7738 buildtools-tarball.bb: fix unexpected operator ed07f43 lib/oeqa/selftest/base.py: Correct a reference to meta/lib/oeqa/selftest 8953d83 oe-selftest: Correct the usage examples dee47ad devtool: sdk-update: reset git metadata on update 396e64d build-appliance-image: Load TUN at startup 55068b1 default-providers.inc: set openssl PREFERRED_PROVIDER to openssl 74ab080 bind: CVE-2016-2088 d488d78 rpm: Disable __sync_add_and_fetch_8 on nios2 9d2d1ae kernel: fitimage: Fix do_deploy taskhash mismatch 4693593 images: zero out the rootfs_extra_space in initramfs images 8beb671 ext-sdk-prepare.py: exclude do_rm_work from unexpected output; create unit test 0262bc5 bitbake: bitbake-user-manual: Updated the 'bitbake -h' output example. 890ccd3 bitbake: bitbake-user-manual: Updated "Conditional Metadata" section 20a0121 bitbake: bitbake-user-manual: Updated discussion about using "inherit" 9f374c4 bitbake: providers: Add PREFERRED_RPROVIDER support 4b8b110 bitbake: providers: We don't depend on previous build results 8e7282c bitbake: cooker/knotty: Prefix parse logs with filename being parsed 1131303 bitbake: cooker: pass exception to finishAsyncCommand ffa2ca0 fs-perms.txt: fix ROOT_HOME's permission fd66a38 Revert "fs-perms.txt: fix ROOT_HOME's permission" 9ec9557 buildstats: Fix tracebacks for early task failures 7f9d01e default-providers: Update to use PREFERRED_RPROVIDER 76f4bbc oeqa/selftest/sstatetests: fix no-op sstate test 6326812 buildhistory: don't alter SDK creation stamps bb40b5e dhcp: Enable update-rc.d service 27e202f meta/classes/qemu.bbclass: set -cpu of ppce5500/ppce6500 to e500mc 7c5823a shadow: Disable syslog for more commands 60a8719 devtool: upgrade: handle recipes where source is not first entry in SRC_URI 8353557 devtool: update-recipe: handle where SRC_URI is appended to with += aab3c8d linux-yocto: make aufs4 optional d75d2be linux-yocto: tiny and pin ctrl config updates 8547cbf linux-yocto/4.4: BXT enablement ffad386 linux-yocto/4.1: mainline SPI backports 4ba33a3 linux-yocto/4.4: gpio-pca953x: fix the "drive" property cannot read/write 86571db devtool: don't copy .git when building the eSDK 83eac65 package.bbclass: improve permission handling eeae2ac fs-perms.txt: fix ROOT_HOME's permission 1db3dc8 runqemu: let ramfs equal to cpio.gz a8c8e81 gcc-common.inc: String format tweak for available tunes a7c426a pbzip2: fix LIC_FILES_CHKSUM following 1.1.12 -> 1.1.13 upgrade 1229009 pbzip2: don't skip do_configure 1e4ee30 useradd_base.bbclass: remove flock option '-w' cb45ef3 matchbox-keyboard: Hide desktop launcher 69e20ca npm.bbclass: Stop packagenames containing underscores from being generated c3c55478 bind: CVE-2016-1285 CVE-2016-1286 c4387a8 image.bbclass: add DEB_{PRE, POST}PROCESS_COMMANDS to rootfs_command_variables list 967bc74 rootfs.py: apply ROOTFS_POSTINSTALL_COMMAND to all package formats f7352ca wic: fix bug in handling fsoptions b2f5de5 buildtools-tarball.bb: set TOOLCHAIN_NEED_CONFIGSITE_CACHE to null a460b04 rpm: more verbose errors in rpmTempFile a43991d rootfs-postcommands: handle broken links when writing manifest 2c81e17 socat: Use c_ispeed and c_ospeed based upon libc 5c8124d archiver: Improve debug output e912c46 kbd: remove uclibc-stdarg.patch 965fd3c image.bbclass: use max() instead of indexing booleans 6d85874 linux-yocto-tiny: fix KBRANCH 440d949 sudo: fix pam config on systemd systems 3fd5a6d sysvinit: make lastb.1 an alternative 175263e lib/oe/lsb: sanitise the distro identifier 9262d2f package.bbclass: handle links in sorted order 29cf263 sanity: allow sftp and ssh mirrors f503317 toaster.bbclass: improve package information collection 88f4178 rsync: remove upstream's rebuild logic 8d59d06 rsync: pass cached configure values through the right variable 384e41c rsync: don't install acinclude.m4 e80800e Revert "oeqa/selftest/wic: add test case for sparse images" 45c0763 Revert "wic/utils/partitionedfs.py: assemble .wic images as sparse files" e0e5426 bitbake: runqueue: Improve 'mulitiple .bb files are due to be built' message 380004b archiver: Ensure sstate-inputdir directory is created 3ad70a5 linux-yocto-tiny: fix COMPATIBLE_MACHINE 0e59727 glib-2.0: Put glib-compile-schemas back in -utils d27ca36 oeqa/runexported.py: Fix exported test 85dbd7b oeqa/selftest/sstatetests: split 32/64 build host from no-op action tests 57be6dd util-linux: take ownership of hwclock if installed acc1f96 meta: remove redundant ac_cv_sizeof_off_t assignments 92759d8 meta/site: remove sizeof_off_t 5602f64 archiver: Fix ASSUME_PROVIDED issues fab626c distrodata: Exclude DATETIME reference from sstate checksum faaeaf9 build-appliance-image: Support for VirtualBox guest additions 778121a local.conf.sample: Make it possible to override EXTRA_IMAGE_FEATURES f947c27 poky.conf: add Fedora 23 to supported distros f33a110 maintainers.inc: remove adt-installer 83d4fab local.conf.sample: remove reference to adt 52cfdb6 bitbake: toaster: fixes for customimage package not found dae4ffb bitbake: data_smart: Restrict expansion regexp to not include : characters 7e739ac bitbake: tests/utils.py: test origvalue in a callback matches what is expected e1e459e bitbake: lib/bb/utils.py: Fix a bug in edit_metadata() that could corrupt vars 43150ab oeqa/selftest/wic: add test case for sparse images 29bc2f7 wic/utils/partitionedfs.py: assemble .wic images as sparse files 7fdb061 image-vm.bbclass/image_types.bbclass: IMAGE_NAME -> IMAGE_LINK_NAME 04e1978 image_types.bbclass: fix elf 513ea49 image_types.bbclass: set nodesize for btrfs bad434b libxml2: fix AM_PATH_XML2 9fe3d01 useradd_base.bbclass: prevent variable expansion in $opts fb8e5f9 extrausers.bbclass: drop retry count for perform_user/group* calls f737af4 build-perf-test: add eSDK installed size to metrics 50f5ca3 rpm: brace expansion is a bashism 66ecbd3 openssl.inc: minor packaging cleanup e38ec0c systemd-systemctl-native: fix unit detection 4019058 apr-util: fix path in rules.mk for nativesdk bdf453f bdwgc: installed-vs-shipped for nativesdk 12ca8df libsolv: fix installed-vs-shipped for nativesdk c88c894 desktop-file-utils-native: disable emacs d4f6c0e toaster: add DL_DIR and SSTATE_DIR to oe toasterconf 69b3f87 toaster.bbclass: strip task from the target aa45c75 x11-common: Add PACKAGECONFIG for screen blanking d366a33 opkg-utils: re-do find/ls code to not fail on filenames with spaces 5e360ca image-live.bbclass: fix iso + efi only f5adb23 Add missing runtime dependency to python-pygobject 0720425 devtool: Create unlocked-sigs.inc containing items in the workspace 64cca7e sstatesig.py: Add a method to "unlock" recipes 1cb99dd populate_sdk_ext.bbclass: Enable locked sigs errors 2431ed7 sstatesig.py: Improve the SIGGEN_LOCKEDSIGS_TASKSIG_CHECK message 7e90280 sstatesig.py: Split single locked sigs check into multiple checks 7ce800c toasterconf.json: Set default distro to nodistro 1b7b548 dev-manual: Updated poky-floating-revisions file snippit example. 8d9e233 dev-manual: set correct task name for do_kernel_configme 6971029 poky-floating-revisions: Fix typo 14e2b90 toasterconf.json: Add DL_DIR and SSTATE_DIR to poky toasterconf 296dfbc build-appliance-image: Update to master head revision 00c4c9b poky: Convetion is 2.1, not 2.1.0 8cd1dec build-appliance-image: Update to master head revision ecd58bb poky.conf: Bump version for 2.1.0 krogoth release e955b5d bitbake: Update version to 1.30.0 4fd14e3 build-appliance-image: Update to master head revision 133224f documentation: Fixed references using the DISTRO_NAME variable 3831ca0 documentation: Updated release date in manual history tables. b590fab dev-manual, ref-manual, sdk-manual: Removing oprofile references. d2084cc Makefile: Removed adt-manual support 2677098 mega-manual: Removed the adt title .PNG file. d9b4c80 README: Updated to remove the ADT manual and add the SDK manual. 9796cbb mega-manual.sed: Removed adt-manual processing aa4b72b yocto-project-qs: Updated the minnowboard example. f2505af poky.ent: Added lower-case distro name variable. ee42a9b kernel-dev: Applied review comments to "Adding Recipe-Space Kernel Features" d57fe7c ref-manual: Updated the PREFERRED_VERSION variable description. 53bade8 dev-manual: Added new section describing hardware and non-hardware config 763ae4e ref-manual: Updated verbiage on proxy handling a1295ed ref-manual: Updated PREFERRED_VERSION variable description 879eec2 ref-manual: Updated debugging tips and tricks 23dbf81 kernel-dev: Added new "Adding Recipe-Space Kernel Features" section. f30bfe9 kernel-dev: Updated the "Kernel Metadata Location" section. 53729bc sdk-manual: Removed three sections of writer notes. 9f0c571 sdk-manual: Applied review edits. d4bdafa sdk-manual: Added sections in Appendix B. d94fa00 dev-manual, profile-manual: Removed oprofile section and link 4f3dfa8 bitbake: bitbake: update LICENSE file with QUnit details 013984d bitbake: tests: browser Add test to run the js unit tests 7609888 bitbake: toaster: views jsunittest Add MACHINE and an extra layer to test project fbc2c5d bitbake: toaster: tests Set MACHINE for the test projects cb6b4eb bitbake: toaster: Add quint to project so that it can be used offline 18cb7fe bitbake: toaster: add rev dep column to image detail pages 7a309d9 bitbake: buildinfohelper: work around unicode exceptions 860cba8 bitbake: toasterui: update build in internal state acb9407 bitbake: buildinfohelper: fix KeyError 52c8740 bitbake: toaster: get bitbake location from BBBASEDIR f5d3ef6 bitbake: toaster: export BBBASEDIR variable 71ff9b9 bitbake: toaster: update projectconf.html for DL_DIR and SSTATE_DIR 705d44f bitbake: toaster: update view to support DL_DIR and SSTATE_DIR 4aafcae bitbake: toaster: use empty token 5ce4665 bitbake: toaster: runbuilds Clean up runbuilds 55b6fab bitbake: toaster: runbuilds Make runbuilds aware of the build CANCELLED state f4cee88 bitbake: toaster: models Exclude the CANCELLED builds from get_number_of_builds 296d373 bitbake: toaster: mrb_section template Add build cancel button f1b49dc bitbake: toaster: tables BuildsTable exclude cancelled builds 22242ae bitbake: buildinfohelper: Add handler for cancelling a build 9dcb9cb bitbake: toaster: bldcontrol models Add a cancelling state the BuildRequest dfa8510 bitbake: toaster: models Add cancelled state to build outcome 5f862bb bitbake: toaster: update BuildEnvironmentController and BitbakeController 0db62c5 bitbake: toaster: libtoaster Update implementation of startABuild and cancelABuild afab95c bitbake: toaster: xhr Update the implementation of the build cancellation request eead032 bitbake: toaster: Move xhr calls for starting and stopping builds f5aa970 bitbake: toaster: bldcontrol Add forceShutDown function to BitbakeController d6992a8 bitbake: toasterui: shutdown on BuildCompleted event c4ae028 bitbake: toaster: use bash explicitly 4adddfd bitbake: toaster: fix jethro build b1a919a bitbake: toaster: update conf/local.conf 590a815 bitbake: toaster: stop bitbake server after the build a8f6001 bitbake: toaster: add new parameter to _shellcmd a43a16b bitbake: toaster: reimplement triggerBuild ab18c20 bitbake: toaster: modified setLayers API 22fba9b bitbake: toaster: add brbe parameter to triggerBuild 829a0bd bitbake: toaster: remove release API 7068e8a bitbake: toaster: remove startBBServer API 9d4c62d bitbake: toasterui: fix brbe reporting 5bcce68 bitbake: buildinfohelper: improve handling of providermap 61b6b98 bitbake: uievent: improve BBUIEventQueue code 0b0d754 bitbake: toasterui: add brbe parameter to buildinfohelper 94ac3f0 bitbake: toaster: set BITBAKE_UI environment variable e23a23b bitbake: toaster: get rid of noui option f77baec bitbake: toaster: don't start bitbake server 4127fef image_types: use compress framework to produce checksums for images 60786b8 runqemu-gen-tapdevs: Add note about NetworkManager & tap devices 634aeed libtool: fix contaminated path to lt_truncate_bin 298d875 create-pull-request: fix for newer git 4faeff9 wget: fix build when len(TMPDIR) == 410 b667f4d sanity.bbclass: fix a hardcode in check_path_length() 94b3583 grub: remove unused 0001-Fix-build-with-glibc-2.20.patch ef163ab glibc: remove unused CVE patches b050ab2 clutter-gst-3.0: remove unused enable-tests.patch 064ebd5 cmake: remove unused dont-run-cross-binaries.patch a71db4c tcl: remove unused fix-configure.patch 476eeea rpm: remove two unused patch 3d56864 ffmpeg, gstreamer1.0-libav: add textrel INSANE_SKIPs 8cc10a9 ffmpeg: Make configure options explicit 45c1944 bzip2: set correct soname cbe33ec useradd.bbclass: remove user/group created by the package in clean* task c115740 bitbake: fetch2/git.py: remove .indirectiondir workaround 4f07c22 bitbake: persist_data: Return str instead of unicode for sqlite3 text queries d8f1f42 scripts/oe-selftest: avoid the creation of coverage file when coverage not installed 6e5e225 scripts/oe-selftest: remove coverage file if any coverage option is given 5edfec4 scripts/oe-selftest: remove unneeded coverage warning 8109e93 patch.bbclass: remove useless path assignment 7963613 gstreamer: remove now-redundant expansion in do_split_packages 37f4f5b package: do_split_packages: expand variables in extra_depends 2ed2089 xf86-video-intel: Add patch to fix some poor image quality c1436b3 sanity: Increase minimum git version to 1.8.3.1 672545b scripts/oe-buildenv-internal: Fix regression in BB_ENV_EXTRAWHITE setting f7fed7c license.bbclass: fix warnings when run in unprivileged "container" env 43071a0 externalsrc: avoid race in temporary git index file f4f1d20 scripts/lib/bsp/help.py: Typo in help for yocto-bsp create 1bd2c8e bdwgc: use github repo for source location 0e6743b xf86-video-intel: Add patch to allow UXA to build 21e31c2 package_manager.py: better error handling in opkg's package listing f2d5e20 systemd: make systemd-serialgetty optional e699404 ncurses: reorder PACKAGES f94ad4d bluez5.inc: remove obsolete workaround a0cd8c0 buildtools-tarball: Add texinfo (for makeinfo) 9877795 cogl: fix G-I .typelib installation b13184c classes/buildhistory: fix grammar in comments e5c0a9f classes/buildhistory: fix filtering of depends-nokernel.dot 4d364f2 classes/buildhistory: optimise getting package size list af5f423 bitbake: siggen: Ensure tainted stamps are accounted for with writing custom stamps 47e9e12 bitbake: siggen: Fix nostamp taint handling 8033627 bitbake: siggen: Add checksum recalculation/checking code 3e1b5e0 bitbake: siggen: Fix check calculation problem with file_checksums 39b637c bitbake: siggen: Drop misleading duplicate method 2c722e2 bitbake: tests/fetch.py: Improve unit tests for trusted network check cf6d12d bitbake: fetch2: BB_ALLOWED_NETWORKS should not care about port numbers 158575c bitbake: toaster: orm better detect requires during CustomImageRecipe generation c634473 bitbake: toaster: Correct typo on build form help text c9ad1e6 bitbake: toaster: buildinfohelper Add additional metadata to the built layer 072a0b3 poky: Exclude DATE from DISTRO/SDK_VERSION checksums f3c029f build-appliance-image: Exclude DDATETIME from task signature 7833eb4 image-vm: Exclude DISK_SIGNATURE_GENERATED from task signature 85ff4ff populate_sdk_ext: Exclude BBTASKDEPDATA from task signature 66412ab opkg-utils: opkg-build exit when fail to list files. 6b8f8a4 kernel-yocto: enforce SRC_URI specified branch 6ebd43c linux-yocto/4.4: UVC: Add support for R200 depth camera 6d2299f linux-yocto/4.4: fix PAT for 32bit x86 5559301 Revert "linux-yocto: Work around PAT issue on qemux86" 686c74f linux-yocto-dev: bump to v4.6-rcX b3ba813 linux-yocto/4.1: ahci: backport AHCI runtime PM 8f7bbea linux-yocto/4.4: gpio-pca953x: add PCAL9535 interrupt support 4a50c05 linux-yocto/4.1: telemetry and dmaengine backports 31a10cb wic/isoimage-isohybrid.py: change cpio generated uid&gid to root 5cabf3b wic/isoimage-isohybrid.py: use glob to find initramfs location 5c60c36 bluez5: add ptest support fc8b24d oe/patch: print cleaner error message when patch fails to apply bf14014 oe/patch: more detailed error reporting a2bf9e3 insane.bbclass: avoid false positives on library location 1f2f43c grub-efi.bbclass: use GRUB_ROOT rather than APPEND for root device bf58526 bitbake.conf: Add BB_WORKERCONTEXT to HASHBASE_WHITELIST 1c1e851 gdb-cross-canadian: use PACKAGECONFIG for python and readline 370a50a base: Fixup PACKAGECONFIG incorrect mappings dea3423 classes/packagegroup: Refactor code to be simpler 5defbcd default-distrovars.inc: remove libassuan from LGPLv2_WHITELIST_GPL-3.0 58d8123 libassuan: use package specific licensing 1f2a01b init-install-efi.sh: remove all root=foo from grub.cfg 3ce7d8c init-install.sh: fix disk_size 46eed0a ltp: fix test_proc_kill hanging 207ee90 ltp: add periodic output for memcg stress test feafad1 epiphany: Depend on intltool-native for configure 2510239 image: Fix debugfs image type recursion loop 7dcb4c4 bitbake: toaster: tests Migrate landing page tests to Selenium 5b848fa bitbake: toaster: tests Migrate all projects page tests to Selenium f2a38ea bitbake: toaster: tests Migrate project builds page tests to Selenium 961cd90 bitbake: toaster: tests Migrate all builds page and project page tests to Selenium f859a3d bitbake: toaster: tests Migrate to Selenium for UI tests 965c72c yocto-bsp: Set correct default branches and branches base for i386, qemu and x86_64 archs d110eba selftest/signing: Use packagedata to obtain PR value for signing test 34f11b5 lib/oe/packagedata: Add import os 0012b90 base.bbclass: avoid duplicate call to d.getVar('LICENSE', True) efe73cb base.bbclass: drop obsolete HOSTTOOLS_WHITELIST_GPL-3.0 5293b83 man: use BUILD_CC and target include files for configure 5121705 scripts, lib: Don't limit traceback lengths to arbitrary values 3168134 bitbake: bitbake: Don't limit traceback lengths to arbitrary values 88ea0b9 image-vm.bbclass: remove invalid code 4d1df2c image-live.bbclass/image-vm.bbclass: remove duplicated code d6d7526 bootimg.bbclass: merge it into image-live.bbclass 723fa56 boot-directdisk.bbclass: merge it into image-vm.bbclass 9e588481 man: fix several annoying compile/build warnings aa13b97 image.bbclass: Make unneeded packages for a read-only rootfs configurable 4dde12f relocate_sdk: additional error checks 22bd875 systemd: fix build with gcrypt PACKAGECONFIG disabled 4b77909 devtool: modify: call shutdown on tinfoil when done 43da712 toolchain-shar-extract.sh: ensure all_proxy is allowed through 2aec71e oe-publish-sdk: exclude sstate-cache if publishing minimal SDK 8ef7016 oe-publish-sdk: prevent specifying a directory for the SDK argument 591b97c classes/populate_sdk_ext: support setting vars from environment at build time c37d542 scripts, lib: Don't limit traceback lengths to arbitrary values 8049f25 pyton-numpy: Add definition of off_t size b75505e image-live.bbclass: DEPENDS on syslinux 3ece012 ldconfig-native: Fix ELF flags on 64-bit binaries d492aec recipes-support/rng-tools: Change runlevel start from S to 2, 3, 4, 5. ab5c62e oeqa/runtime/parselogs.py: Add systemd unit circular dependencies errors. 9be3fb2 systemd-serialgetty: allow baud rate overriding cf6788c psmisc: Remove including sys/user.h and __WORDSIZE ede11b6 selftest: Added testcase decorator to tests ccfe48c linux-yocto: add overlayfs feature 6ae0224 linux-yocto/4.4: broxton and usb type-c backports e1ae3ee linux-yocto/4.4: drm/i915/skl: Fix DMC load on Skylake J0 and K0 0a1d621 linux-yocto/4.1: Intel Broxton: pwm backports 6ce8802 linux-yocto/4.1: Apollo Lake/Broxton mmc backports a256628 linux-yocto/4.1: i2c: designware: Backport i2c patches fbd209d linux-yocto/4.1: device property backports ccf1b33 linux-yocto/qemuarm64: enable 32 bit compatibility dacf9f2 linux-yocto/4.1: SMBus/iTCO backports ab6fd48 default-distrovars.inc: remove gnutls + libtasn1 from LGPLv2_WHITELIST_GPL-3.0 2123a7e sanity.bbclass: Use pythonexception to raise real exceptions without backtraces 6af88d8 sanity: Require bitbake 1.29.1 1b2df6e uninative: Switch md5sum -> sha256 f719386 bitbake: cookerdata.py: remove slash in the end e26087f bitbake: Bump version to 1.29.1 d73da22 bitbake: build/utils: Allow python functions to execute with real exception handling 672c07d bitbake: fetch2: Ensure that incorrect checksumed files are always renamed 2554be4 bitbake: cooker: fix CookerParser.shutdown() 53b5dc0 gcc: Fix musl ldso name for mips64 dd31bca selftest/buildoptions.py: use INHERIT += 71db079 archiver.bbclass: addtask do_deploy_archives_setscene 1ca71e5 bitbake: cooker: Ensure bbappend order is deterministic 292c3e8 bitbake: checksum: In FileChecksumCache don't follow directory symlinks 326fc29 gcc-5.3/gcc-4.9: -fdebug-prefix-map support to remap relative path 9e20f94 ptest-runner_2.0.bb: Update recipe to point git.yoctoproject.org repo. 437841c man: fix src/Makefile to work with parallel make abb5b46 oeqa/selftest/bbtests: Test bbappend order ddbeb56 bitbake: cookerdata: Improve handling of ParseError 6dff639 gcc: Backport fixes for musl ssp configuration ab20659 siteinfo: Fix musl 64bit targets cd16b65 musl: Update to tip 0883aff buildhistory.bbclass: create image directory when needed c093f7c runqemu: fix for iso f1f9f89 init-live.sh: fix overlay fs 4e7eaed init-live.sh: fix ROOT_MOUNT 1622077 no-static-libs.inc: build static libusb1-native b3e4a31 sstatesig: Ensure we keep native depends for allarch recipes 528a890 oe-selftest: generate .env only in test_image_env 21823cb build-appliance-image: Update to master head revision 7d251f7 build-appliance-image: Fix permissions 60656d0 bitbake: fetch2/wget.py: _check_latest_version_by_dir fix prefix detection 45ee2b1 bitbake: fetch2/wget.py: _check_latest_version_by_dir use group names 55cd35b conf/bitbake.conf package.bbclass: fix dbg package not contain sources while -fdebug-prefix-map used e2b919c externalsrc: remove nostamp from do_configure bbfc210 externalsrc: do not use do_configure[nostamp] for git srctrees 9ee403b archiver.bbclass: Just archive gcc-source for all gcc recipes 37683ef oeqa/utils/ftools: improve remove_from_file algorithm 3a934a8 scripts:/oe-selftest: Use timestamp instead of test names in coverage data file 71304d8 xcursor-transparent-theme: upgrade to latest git revision 7c5343a gdb: Fix build on mips64/musl 856be1f libunwind: Fix build on mips/mips64 for musl targets dd61341 toolchain-shar-extract.sh: check the length for target_sdk_dir c3c793b relocate_sdk: fixed .gccrelocprefix section handling cc97d57 glib-2.0: Fix packaging cef8bc9 gio-module-cache: Add class for Gio modules 0cda9d8 glib-2.0: Install gio-querymodules in main package 9ac1b6f oe-git-proxy: support username / password in http proxy a15541d oe-git-proxy: also check all_proxy and http_proxy env variables 92b2bc5 wic: Update after task ordering changes d6cb46c image.bbclass: run wicenv task only for wic images 5cb7705 wic: fix type of no-table option 1209eb2 matchbox-desktop: Do not close desktop on alt-F4 0361676 rootfs-postcommands: don't write manifest when IMAGE_MANIFEST empty abd5b24 bitbake.conf: rename 'gobject-introspection-data' machine feature to 'qemu-usermode' f81065f selftest/devtool: Update after make PROVIDER changes 25a04ee make, remake: make them properly exclude each other f3a92ff kernel.bbclass: consider .csp firmware files 0569b69 tzdata: update to 2016c a7e726a tzcode: update to 2016c 201d9d3 icecc.bbclass: replace icc with icecc da00f6c icecc.bbclass: expand package arch 3f1702c icecc.bbclass: add icc_is_allarch inherit check 39170fe classes/sanity: use proper multi-line string literals 33a6135 oe-buildenv-internal: simplify derivation of BB_ENV_EXTRAWHITE c6ab828 u-boot.inc: Add sub-dir support for SPL_BINARY ddedab4 quilt: run ptest as normal user afa4d5e site: Cache config vars for ccache 04344eb gdb-cross: use PACKAGECONFIG for python and readline 5005cab add !meta-poky to .gitignore file 1dd9348 scripts/lib/bsp/help.py: Add missing options to yocto-bsp help and usage 54eca75 poky-sanity.bbclass: update conf/templateconf.cfg for existing installations 2b992f3 site.conf.sample: fix reference to oe-git-proxy script af63b49 conf-notes: remove reference to adt-installer 1d219ce linux-yocto: Update SRCREV for genericx86* for 4.4 8d4f43e linux-yocto: Update SRCREV for genericx86* for 4.1 84d5924 bitbake: fetch2: Handle lockfiles for file:// urls redirected to mirrors b036afb bitbake: toaster: get all dependents for pkg for removal 9bf98a9 bitbake: toaster: new customise package-remove modal dlg d5a419d bitbake: toaster: show full list of dependents to remove fda94f4 bitbake: bitbake: fetch2/gitsm: Fix fetch when the repository contains nested submodules 1341c17 pseudo: backport a patch to fix xattr removal 07f0af3 uninative: don't try to relocate static binaries c3c0d0a lib/oe/qa: add method to check if static or dynamic linked 10b6037 uninative: ensure patchelf errors are visible 86d7e44 libmad: remove use of obsolete _thumb over-ride e7395c8 perf: package python modules into perf-python b47225f perf: fix python scripts QA errors ea8b914 linux-yocto/4.1: MFD backports b6563a1 linux-yocto/4.1: device property : Backport device property patches 46baceb linux-yocto: ktypes/standard: Add tmpfs-posix-acl feature bdf6b20 linux-firmware: Break out some additional firmware 6d8141f linux-firmware: Clean-up and sync license data cea2a21 linux-firmware: Collapse iwlwifi firmware blobs for 7260 and 7265 3b3fe1d linux-firmware: Update to latest HEAD d7cf2c3 archiver.bbclass: Fix tar name for git repositories 2cb4cb7 archiver.bbclass: Fix gcc-source corner case c29eea0 archiver.bbclass: Fix use of ARCHIVER_WORKDIR and ARCHIVER_OUTDIR 8b7ee6e archiver.bbclass: Don't expand python functions in dumpdata bc100b3 bind: /var/cache/bind 04d883c sysvinit: downgrade ALTERNATIVE_PRIORITY[mountpoint] 688d9a6 util-linux: split out util-linux-mountpoint 85ff75d gconf: fix buildpaths QA issue 7f7c9ab python-pygobject: use Python 2 instead of Python 3 e33124f sanity.bbclass: check host tool dependencies on change in NATIVELSBSTRING 4fe64d7 libunwind: Fix build with fstack-protector on musl 4aa08b8 ltp: Fix build on x86/musl 959b7f2 package.bbclass: Treat .node files same as .so when checking what to strip e0bc781 bootimg.bbclass: only inherit syslinux when pcbios 1b1de89 grub-efi.bbclass: make it can build vm and live together 4ebaeb2 bootimg.bbclass: fix settings for grub-efi.bbclass af1f77a pixz: Fix build on big-endian/musl systems 421289c sanity.bbclass cleanup 93e411e matchbox-wm: Update to fix XChangeProperty datatype issue c843022 matchbox-panel-2: Fix Home-button icon load issue 01f6818 gstreamer1.0: fix introspection support also for git recipes 171adb1 gstreamer1.0-plugins-bad: fix incorrect handling of Cflags in gstreamer-gl.pc file 6462d08 x86-base.inc: suggest the latest kernel c5c9ed6 at: fix configure option with/without-selinux 9b2b1f0 no-static-libs: just like target and native, nativesk-libcap doesn't like unrecognised options bf90d0c linux-firmware: package firmware for Marvell 88W8688 cd17ab0 tune-arm926ejs: Handle missing thumb suffix 5b70c7e nativesdk-coreutils: a lot of warnings fixed b47c53b runqemu-internal: split the code into functions fae732f runqemu-internal: cleanup unsed code e469bb7 runqemu: simplify checking for iso and ramfs 3610329 runqemu: add support for qcow2 and vdi d85ca4a runqemu: remove ISO and RAMFS from help text 58bc854 runqemu: simplify the checking for vm images 6716eb2 runqemu: fix ROOTFS for vmdk 258cfa8 python(3): Disable tkinter 5988b5c selftest/signing.py: RPM_GPG_PASSPHRASE_FILE -> RPM_GPG_PASSPHRASE 3e5c5fe gpg_sign.py: get rid of pexpect 05d7e0d rpm: check _gpg_passphrase before ask for input 13a31b1 oe-publish-sdk: fix remote publishing 9926425 oe-publish-sdk: improve help output slightly 905286c oe-publish-sdk: drop SDK installer file from published output 0523378 devtool: add: create git repository if URL specified as positional argument 11c1d30 devtool: add: delete externalsrc files on npm recipe do_install 552a68a devtool: configure-help: fix error if do_configure not already run eab3f06 bitbake.conf: whitelist proxy variables in config hash 58d2e56 classes/populate_sdk_ext: parse metadata on minimal SDK install 0684572 devtool: sdk-install: add option to allow building from source 50addfb classes/distutils*: don't hide logs when setup script fails 0ec30c7 classes/packagegroup: drop complementary -ptest if ptest not in DISTRO_FEATURES d96ea29 classes/packagegroup: fix dbg/dev/ptest complementary packages b58e5b1 bitbake: bitbake: xmlrpc: set single use mode differently 2df514b sdk-manual: Added note for running remote apps with SSH port forw enabled. 12f5c25 poky.ent: Added code name for 2.1 release to the variable 64241e0 sdk-manual: Applied more review edits to the manual per Eggleton. b44d9e5 ref-manual: Created distrodata and checkpkg tasks, updated distrodata class 54050ff sdk-manual: Applied 2nd round of review edits. 6db8cbc sdk-manual: Applied review edits to the manual. 922eaeb sdk-manual: Updated the SDK devtool modify flow diagram. 2bbf77a dev-manual: Fixed a grammar error 286b76f sdk-manual, mega-manual: Updated the SDK devtool modify diagram c3946bc dev-manual, profile-manual, ref-manual: Updates to remove meta-toolchain 7233e35 sdk-manual: Edits to add extensible SDK configuration sections. b31bf7c ref-manual, sdk-manual: Changed section heading. 670735e ref-manual: Added some SDK manual support to introduction 266742b profile-manual: Updated screen output for oe-init-build-env 0654224 kernel-dev: Changed a link from an example to in-text. 19e3648 dev-manual: Edits from a 2.1 read-through. a389684 poky.ent: Fixed a typo in one of the variables "ftar" to "tar" b5d3065 poky.ent, bsp-guide: Removed eMenlow example and updated 2.1 variables 884b528 yocto-project-qs: Performed a read-through edit. 4b42385 poky.ent: Updated copyright year and version variables. ae48b1f mega-manual: Added two new sections for the sdk manual 815d686 sdk-manual: Added some intro stuff about the SDK 4c5157f ref-manual: Resolving a conflict 4306f7f sdk-manual, mega-manual: Added new figure for Eclipse flow. 0bb6e48 sdk-manual: WIP on the book. 5a64701 sdk-manual, mega-manual, Makefile: Added new figures 32629e0 Makefile: Resolving a conflict af40e9a sdk-manual: Added a new figure for installed extensible sdk directory. 6247788 sdk-manual: Applied some "red" text formatting to indicate notes 7ab8afa Makefile: Added the ".png" part to a figure I forgot. fc43555 sdk-manual: Added a red-text "role" to the style sheet. d07100d sdk-manual: Added new section detailing installed SDK directory. b750729 sdk-manual-customization: Fixed XSL Appendix numbering parameter ad7a994 Makefile: Updated the figure list for the mega-manual. 890f721 sdk-manual: WIP - Various small edits as WIP f15f96c sdk-manual: New content for outline purposes. 4643b04 sdk-manual: Updated with two new appendices for new files. d05566b sdk-manual: Added sdk-environment.png diagram. 0936eed sdk-manual: Added two appendix files to SDK Manual. 6996a1c Makefile: Added sdk-environment.png to figure list for SDK Manual 6cdb356 toaster-manual: Edits to a previous patch. 77594c0 mega-manual, Makefile: Added support for three new toaster figures. 00fe95d toaster-manual: Explain the local release d06c7b8 documentation: remove all references to Hob be8af37 ref-manual: Updated COREBASE_FILES variable. 5c7e5aa bitbake: bitbake-user-manual: include/require checks current directory 7ec8f28 bitbake: bitbake-user-manual: Updated the "inherit Directive" section. 75cba54 bitbake: bitbake-user-manual: Updated the copyright year to 2016 2918b50 bitbake: toasterui: remove ParseStarted from the event list ab2abd4 bitbake: toasterui: Remove the excessive exception logging d8137be bitbake: cache: Make BB_DONT_CACHE variable external 1d1aaa2 bitbake: toaster: orm generate CustomImageRecipe contents try secondary path 5c49230 bitbake: toaster: localhostbecontroller put generated layer in the builddir b60c994 bitbake: toaster: localhostbecontroller Allow file:/// uri type for git repo 3025092 bitbake: toaster: orm Add a constant for the CustomImageRecipe's layer name 3df6551 bitbake: toaster: localhostbecontroller Don't clear out toaster custom layer dir 2f2f784 parselogs: add new whitelist entries to address 4.4.3 issues 8037ba4 bitbake: bb/tests/fetch: Update cups url dab6d59 oe-buildenv-internal: Correct the sed expression which updates $PATH 068afc5 tzdata: update to 2016b e140272 tzcode: update to 2016b c0b3667 ffmpeg: Remove RSUGGEST=mplayer e528a0a lttng-tools: Remove lttng-ust from PACKAGECONFIG for musl 42b9bdf packagegroup: Disable packages not available on musl f148a2e world-broken: Add packages broken on musl 624ca6a siteinfo: Move apr configure cache to common-linux 90234f1 parselogs: add new whitelist entries to address 4.4.3 issues 13a2a3f u-boot: Upgrade to 2016.03 release ecf3396 grub: add -Wno-error=trampolines to native CFLAGS 07515b0 dhcpd: create dhcpd user for dhcp dameon b9ad80d valgrind: fix buildpath QA issue 7985006 gcc-5.3/gcc-4.9:Reuse -fdebug-prefix-map to replace -ffile-prefix-map 2faa718 gcc-5.3/gcc-4.9:replace build path with target path in __FILE__ 76f10fd oe-buildenv-internal: Some clean up 4d1efc3 oe-buildenv-internal: Add variables individually to BB_ENV_EXTRAWHITE 39ac332 oe-buildenv-internal: Add paths to $PATH individually dd5f2f7 oe-init-build-env*: Make them actually return failures ea28de6 oe-init-build-env*: Remove unnecessary differences between the scripts 51aa00f oe-init-build-env*: Update/correct comment about specifying arguments 16fb9b8 oe-init-build-env*: Allow $OEROOT to be predefined 3173979 bluez5: allow D-Bus to spawn obexd in systems without systemd 10ef68f oeqa: remove RPM 4 self test d915965 lib/package_manager: remove RPM4 support code 03fce73 smartpm: remove rpm4 patch 1e9de52 rpm: remove RPM 4 a7dd04d grub: fix documentation rebuilds ee4f61b oe-selftest: Fixed --list-tests-by tag option 068e898 gcc-runtime.inc: set LICENSE for all gcc-runtime packages 788dfdd ParaTypeFFL-1.3: Add license file 62ddde6 externalsrc: use shared stamp directory if B=S 1969332 rpm: fix error when 'lua' is enabled a31301e matchbox-keyboard: Update to latest HEAD to fix 64bit issue 40a55f1 oeqa/selftest/buildoptions: test read-only-rootfs f64fdd2 oeqa/selftest/sstatetests: verify more variables don't impact the hash ac347da gobject-introspection.bbclass: wrap comments at 80 columns ae63b88 qemuarm64.conf: don't clear MACHINE_FEATURES cad415d sanity.bbclass: allow customizing config file update error messages 96a5cb4 sanity.bbclass: fix success message when config file was updated 805aca8 sanity.bbclass: expand error messages for version checks 7d6801c lighttpd: fix /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_written 5f7b9f0 valgrind: Disable nios2 support aaaccc4 systemtap: Disable nios2 support 5857b20 lttng-modules: Add nios2 support 26248cd kexec: Disable on nios2 3e4d99b packagegroup-core-sdk: Disable sanitizers for nios2 797ffc8 bdgwc: Backport nios2 support 238e2c1 libatomic-ops: Backport nios2 support 7e83af3 selftest/buildoptions: Renamed one test case 0d9f515 python-numpy: Fix build on musl e1f3f4c socat: Access c_ispeed and c_ospeed via APIs bb4e6e0 watchdog: Disable nfs on musl targets f00cca8 bdwgc: Check for getcontext() API during configure 51464e7 devtool: change config symlink name to .config.new 8c0148f systemd: Fix and expand ptests 427e369 oeqa/utils/testexport.py: add functionality for exporting binaries 2191623 init-live : make it easier to add custom boot targets 57a525c useradd_base.bbclass: replace retry logic with flock 5d06f00 image.bbclass: track ROOTFS_POSTUNINSTALL_COMMAND in do_rootfs vardeps 6129d86 eudev: split eudev-hwdb from eudev 9aa27fe openssl: don't move libcrypto to base_libdir 370419e xcb-util-image: Fix build with clang 8727975 musl: Update to get mips64 port 4653fdd dhcp: enable gentle shutdown e382d96 coreutils: fix reporting 'unknown' by `uname -p' and `uname -i' 3b8cd1d ncurses_6: Improve installation 9cc65ed Revert "selftest: Added MACHINE = "qemux86" to tests that use runqemu" 3c5ee61 busybox: Drop -r passthrough patch 2c666af linux-yocto/4.1: usb: add usb_otg_caps to usb_gadget structure. 8dc9162 linux-yocto/4.1: Intel Broxton and Sunrisepoint-H: pinctrl and drm 99ad4c9 linux-yocto/4.1: powercap/RAPL: Backport powercap/RAPL c4f544e linux-yocto/4.1: Thermal: Enable Broxton SoC thermal reporting device 123c2c6 linux-yocto/4.1: usb backports for Apollo Lake/Broxton 600b700 recipetool: create: don't create extra files directory unconditionally 8debfea local.conf.sample: Disable prelink by default efa0881 oeqa/selftest/recipetool: Fix test_recipetool_create_simple c9d269c Revert "packagegroup-core-x11-sato: add python-pygobject and gtk+3" d24a39a oeqa/recipetool: Fix syntax error 55a1e52 oeqa/recipetool: Improve debugging output by adding dirlist 637b3c8 uninative: Add a fix for icu-native to use the correct ABI 9dbfbe9 scripts/oe-selftest: Add short names to most common options 681a452 gcc: Fix the license on GNU OpenMP 15c5b2a Revert "gcc: Fix the license on GNU OpenMP" d5cdb48 perl: fix missing dependency for perl-misc 0eb52b9 classes/buildhistory: record a few more variables for extensible SDK cbb4c5b package-deb: Ignore circular dependencies fcc7ff0 package_deb: Fix python runtime error 9155b24 python-numpy: fix buildpaths QA issue 9e69963 python: move ast module into python-core 1a35166 xserver: require sufficiently new libdrm 36bf666 package_manager.py: Fix race condition in OpkgIndexer.write_index() 35be679 scripts/oe-selftest: Add search expression matching to run/list options 4489ef1 glib-2.0: relocate the GIO module directory for native builds cf3402e image-buildinfo.bbclass: fix performance problems e2fe28c linux-yocto/4.4: gpio-pca953x: add "drive" property 3d45853 python3: fix do_configure check platform triplet error 03b167d ncurses_6: Fix an install race condition 09eab6b build-appliance: make the inclusion of downloaded sources optional 8ea5cdc builder: remove hob from autostart ff5d9f7 Revert "gstreamer1.0-plugins-XXX: move inherit gettext into common .inc file" c99da8d musl: disable building of gobject introspection data 0dea50e machine/include/arch-x86: Make x32 ABI not supporting gobject-introspection-data 8c14c74 bitbake.conf: add 'gobject-introspection-data' to DISTRO/MACHINE_FEATURES_BACKFILL 2e27994 packagegroup-core-x11-sato: add python-pygobject and gtk+3 8b1fa2a webkitgtk: enable gobject introspection 7bd32b9 recipes-gnome: fix introspection support efd37c5 python-pygobject: update to 3.18.2 ff3500b gnomebase.bbclass: do not disable gobject introspection ac5cc0c gstreamer: enable gobject introspection 03cd714 libsoup-2.4: enable gobject introspection c1d67e4 clutter: enable gobject introspection 0ec412b gtk+3: enable gobject-introspection d6f8028 gtk+: enable gobject introspection 0d1e4b2 avahi: enable gobject-introspection d2e0dc1 python-pygtk: remove the recipe 0c6d7cb avahi-ui: remove the dependency on python-pygtk by disabling avahi-discover 4fbf761 vala.bbclass: remove pre-packaged vapigen.m4 from tarballs 235455d vala: enable the use of vapigen by packages with vala support d1b96f1 gobject-introspection.bbclass: add a class that enables gobject introspection 96b5847 gtk-doc-stub: remove introspection stubs 3a1d9fb gobject-introspection: Override GIO_MODULE_DIR when scanning 10e9977 gobject-introspection: add the recipe 3c66619 bitbake: fetch2/npm: fix ud.registry so that alternative registries can be handled 0155472 ref-manual: Updated "Application Development SDK" section. 4438460 ref-manual: Applied review edits to several SDK variables. 3c727ff ref-manual: Updated "Cross-Development Toolchain Development" section. af1517c ref-manual: Updated "Build History SDK Information" section. d9fc04b dev-manual, mega-manual: Updated "Application Development SDK" section. 357aa33 ref-manual, mega-manual: Updated "SDK Generation" section. 54490c0 ref-manual: Added several extensible SDK variables to glossary. 6dfd441 ref-manual: Updated IMAGE_PKGTYPE variable. 77f002c ref-manual: Updated "Cross-Development Toolchain Generation" ee90cc6 ref-manual: Updated the "Build History SDK Information" section. 53dd8a0 dev-manual: Moved "Optionally Using an External Toolchain" to Tasks chapter. 9d76cfe meta: toolchain-shar-relocate.sh: Fix for extracting SDK in the same directory as SDK script. 054abad nettle: The variable named p in the patch file was incorrectly named. 93a5417 valgrind: Make dep on glibc-utils conditional on TCLIBC = glibc 40c9774 make 4.1: fix segfault when ttyname fails 7f27713 gcc: Disable libitm for MicroBlaze 81d58d6 sign_package_feed: add feed signature type 42f612c package_manager: sign IPK package feeds c637783 signing-keys: create ipk package 14e809e gpg_sign: export_pubkey: add signature type support 0b088e0 gpg_sign: detach_sign: fix gpg > 2.1 STDIN file descriptor 2fccd8a gpg_sign: add local ipk package signing functionality 6bd6a2b systemd: add comment stating that resolved needs gcrypt a5fd57d selftest/bblayers.py: Remove harcoded recipe files dce7290 selftest/prservice.py: Sanitize package version when looking for stamp cbd87f3 lsof: update UPSTREAM_CHECK_URI 57fb05a eudev: provide UPSTREAM_CHECK_URI 3f8d5bf toaster.bbclass: show packages that were setscened into existence too 39e1351 gcc: Fix the license on GNU OpenMP c6aeef3 linux-yocto/4.4: Galileo updates 37b61b0 siteinfo: Add ppc64le support. 0265fcc nettle: disable static for 2.7.1 8660cd1 nettle: Security fix CVE-2015-8804 dae5715 nettle: Security fix CVE-2015-8803 and CVE-2015-8805 24aea3a glib-2.0: silence warnings when parsing headers for introspection 3331992 qemu: Limit paths searched during user mode emulation b578a06 image-mklibs: handle position independent binaries c706b5e libpam: define limits.conf as CONFFILES of package libpam-runtime 82dec46 perl-rdepends: Remove circular dependencies 815c36f rpm: Sync CVS to regular version 775f22e rpm: Fix musl integration with RPM5 001bdef gcc: Disable libitm for nios2 d53413d bitbake: server/process: Try connecting 4 times before giving up 0f01059 bitbake: toaster: models List only have the specified project's imported layers 0dcab02 bitbake: toaster: rework task buildstats storage and display cc74a8a bitbake: toaster: use force_bytes to display non-ascii project names aebc22d bitbake: fetch2: Make SRC_URI[md5sum] and SRC_URI[sha256sum] expand their values d405f97 bitbake: xmlrpc: fix bug in setting XMLRPCServer.single_use c50bdb3 bitbake: fetch2/npm: add missing URL argument to ParameterError fbf27c4 bitbake: fetch2/npm: properly handle npm dependencies ef6a451 bitbake: fetch2/npm: fix errors with some version specifications ad50ce9 populate_sdk_ext: Correct commit 8b81bb56c69aabdea984352f8e267a9783c0bdbc bc0e99d recipetool: create: shrinkwrap and lockdown npm modules 309b2e6 recipetool: create: support creation of additional files by plugins 2279eb2 recipetool: create: check if npm available if npm:// URL specified 9145500 recipetool: create: split npm module dependencies into packages d46827c recipetool: create: add license file crunching 3fd244b recipetool: create: match *LICENSE* as a license file 2b6a352 recipetool: create: improve mapping for autotools program macros 1607fac recipetool: create: be more tolerant of spacing in configure.ac 9dca5c8 lib/sstatesig: skip shared_workdir when checking locked sigs 142bad3 python3: fix patching get_python_lib() in distutils/sysconfig.py 50d07e9 python3-native: use the previous version of python-config script 5dce2e3 qemu.bbclass: add qemu_wrapper_cmdline() 8b5afcd db: remove the NO_UPDATE_REASON and replace it a comment about RPM 5699c67 rpmresolve: It is not necessary to manually specify -lpopt 8ea55ba rpm: A number of the patches have been submitted upstream 6833c5d rpm: Enable specific crypto and digest settings via variables 59a4d99 security_flags.inc: Special flags are needed for RPM 007c284 rpm: Uprev to rpm-5.4.16 (pre) and rpm-5.4+cvs to current CVS head a27ca6d yocto-bsp: Update templates to 4.4 kernel 2d0933c conf/distro/include: drop old recipes 1fd183e bblayers.conf.sample: remove BBLAYERS_NON_REMOVABLE 477b8fb poky: Enable uninative 1b7cc9c linux-yocto/4.4: explicitly enable ftrace in tracing fragment aee7482 linux-yocto/4.4: iwlwifi: mvm: don't allow sched scans without matches to be started 2408f49 linux-yocto/kernel-meta: ktype refactoring: move DEBUG_KERNEL, EXPERT and EMBEDDED 9ac029b xmlto: tell xmlto where cp is 6d89b52 toaster.bbclass: improve how we gather buildstats for Toaster 4dd3e40 image-prelink: use STAGING_*_NATIVE variables 2193e9d strace: Backport fixes for compiling with clang ee8ff42 ghostscript: 9.16 -> 9.18 3f5725c fontconfig: Revert changes made to FcConfigAppFontAddDir() recently 433d866 populate_sdk_ext: Make populate_sdk_ext nostamp e186d6d systemd: binfmt should be added to SYSTEMD_PACKAGES only if binfmt is enabled b051a95 license.bbclass: fix host contamination warnings for license files f8a9774 oeqa/selftest/buildoptions: Test build does not fail without git rev 656aeff busybox.inc: add tail symlink so busybox can commit suicide cleanly a321f4e avahi-ui: add dbus to PACKAGECONFIG 1bd4b72 avahi: add missing intltool-native build dependency 72f9e39 avahi: make dbus optional but default 424466b oe-setup-builddir: tidy up local.conf and bblayers.conf commentary 07919e9 net-tools: Add SCTP option support e8254bc tune-corei7.inc: Fix PACKAGE_EXTRA_ARCHS for corei7-32 5346675 eudev: remove redundant udev_run assignment adad264 xcursor-transparent-theme: use a version glob in the selftest bbappend 946d00c populate_sdk_ext: Update after uninative changes ba57ba1 image.bbclass: support chaining compression (aka conversion) commands 5ac3dc7 image.bbclass: fix incomplete .rootfs customization 3322fa7 bitbake: toasterui: fix warning 'Unknown event' 621cbc8 bitbake: toasterui: exit on final events 8e138b7 bitbake: toasterui: make toasterui to work in build mode 0a61306 bitbake: toasterui: check if setEventMask succeeded ac941ac bitbake: command: make setEventMask readonly dd3da9a bitbake: toasterui: update list of events f56fa5d bitbake: toasterui: reformat list of events a71d32a bitbake: toaster: remove sshbecontroller module 3db71b4 bitbake: toaster: don't use sshbecontroller 790b2d1 bitbake: toaster: raise NotImplementedError 96535ba bitbake: toaster: bring back the strict directive 5b8b399 bitbake: toaster: change 'revision' to 'Git revision' 07ead98 bitbake: toaster: views api Package info return both kinds of RDEPENDS 9cda2ab bitbake: toaster: fixup dependency excludes for customimage a54cebe bitbake: fetch2/npm: ignore unknown headers in tarballs 0cd1be1 bitbake: fetch2/npm: handle alternative dependency syntax d999927 bitbake: fetch2/npm: fix indentation 26ee4dd image creation: allow overriding .rootfs suffix e43fcdf scripts/hob: drop 59b4cef classes/packageinfo: remove bbf2a5d conf/documentation.conf: remove BBLAYERS_NON_REMOVABLE 7054882 yocto-uninative: Add common include for uninative d2c96ca mtools: Drop GCONV_PATH manipulation d27644e uninative: Handle relocate of GCONV_PATH in libc 0523499 uninative: Add checksum support 73265d1 uninative: Refactor common code 4feb00d uninative: Use CXX11 ABI for interoperation between gcc4 and gcc5 013dd24 uninative: correctly enable uninative 034618d glibc: Add relocation of GCONV_PATH 8dca343 uninative-tarball: Add glibc-gconv-iso8859-1 for guile 1f50f29 dkpg: Use tar everywhere (not gtar) b158d6c gtk3+: Add missing DEPENDS on wayland-native e395e81 tune-cortexa17.inc: apply changes similar to a15 ea53d1e sstate: Allow late expansion of NATIVELSBSTRING bd3a1d5 linux-yocto: Update SRCREV for genericx86* for 4.4 70c6df2 linux-yocto: Update SRCREV for genericx86* for 4.1 ae85c4b linuxloader/image-prelink/image-mklibs: Fix non-standard path prelinking 0b84897 insane/prelink: Handle nonstandard library paths 6b564ae ext-sdk-prepare: Catch setscene tasks which should have run but didn't d8efd2e createrepo: Fix stat floating timestamps ce5a9df xmlto: ensure /bin/bash is used as bash 70b4f36 openssl: add a patch to fix parallel builds 1632742 xdg-utils: remove trailing whitespace in multiline string 816391a btrfs-tools: Add libgcc to RDEPENDS e467156 bitbake.conf: Add libgcc-native to ASSUME_PROVIDED a91713f net-tools: Override CFLAGS/LDFLAGS in do_install too fb0c3c5 nspr: Fix build regression on musl from last upgrade 37f5fb9 gdb: fix builds with internal readline and no static libraries 6518db4 feature-arm-thumb.inc: Fix thumb tune override warning afb1d09 recipetool: create: fix support for AX_CHECK_LIBRARY 463fd5e formfactor: assume a keyboard is plugged in e2107f5 acl: Fix re pattern in test cases 82a8064 gcc-runtime.inc: disable libitm for little endian MIPS too 25d9c4e devtool: add build-sdk subcommand 41eb36d devtool: build-image: rename module 82d0c8a oeqa/buildoptions: Improve unsafe references tests 4284fdf insane.bbclass: make the checking stricter for unsafe references in scripts 5cd71fe yocto-project-qs: Updated flow to mention Toaster cd041b7 dev-manual: Applied review comments to the devshell section. f54fe56 ref-manual: Updates for nativesdk clarifications. a882267 dev-manual: Fixed typo in the devshell section. 70c7e36 dev-manual: Created devtool upgrade section. b2b22d5 dev-manual, mega-manual, Makefile: Added support for new upgrade flow 0b7d8a4 dev-manual, mega-manual: Updated the workspace directory structure image 050e021 dev-manual: Applied review changes to the devtool section. 09ecf38 dev-manual, mega-manual: Updated three figures for devtool f33ffaa dev-manual: Applied more review comments to the section. fe70eb2 dev-manual, mega-manual: Updated the devtool modify flow diagram. eb3b414 dev-manual, mega-manual: Updated the devtool add flow diagram. 4c5bd3f dev-manual, mega-manual: Updated the devtool workspace figure. 9cee16b dev-manual: Applied review comments to the devtool section c678d1a dev-manual: Updated the devtool add section. a09238a dev-manual, mega-manual: Updated devtool add flow diagram 7699f0a dev-manual: Added section for devtool modify flow 1eecaea dev-manual, mega-manual: Added new figure for devtool modify flow 9582da6 dev-manual: Edits to the devtool-add section. 740369f dev-manual, mega-manual: Updated the devtool add flow figure a848e9f dev-manual, mega-manual: Updated the workflow layer content figure. 34e08b3 dev-manual: Added new "writernotes" style. 17a21e6 Makefile, dev-manual, mega-manual: Added new figure support d346c35 dev-manual: Applied review comments to devshell section. 3b41049 ref-manual, dev-manual: Clarifying "native" and "sdknative" a1970eb dev-manual: Updated devshell section. a58cde0 toaster-manual: Updated how manage.py createsuperuser command is run c5b4f69 ref-manual, dev-manual: Clarification of "native" and "sdknative" 952bcc7 toaster-manual: Removed prompts for json file. 34c75fa ref-manual: Updated the S variable description with feedback 2b2ced0 ref-manual: Updated the staging.bbclass description b9dddd5 ref-manual: Updated the S variable description. 41e9f7c dev-manual, ref-manual: Updated licensing text information. 5066fbc ref-manual: Added order information for conf file parsing. ad6b2f2 toaster-manual: Removed typo - double "allow" words. c8c533e ref-manual: Updated the do_populate_sysroot task. 2a3942b dev-manual: Updated section on adding license text. 77b3d06 ref-manual: Updated the S variable entry in the glossary. a1a4808 toaster-manual: Applied a patch to weed out build mode (modes). 353b755 bitbake: bitbake-user-manual: Added expand() function to list. 638ad17 bitbake: bitbake-user-manual: Added note for Python variable ref expansion. da22add bitbake: bitbake-user-manual: Enhance environment variable discussion. f11de9d e2fsprogs: do not enable non-stable features by default b04280a sdk_update.py: Enable local sdk-update tests 14dd07c sdk.py: Fix undefined variable c12e919 eudev: recipe formatting improvements 73a43fc openssl: Security fix Drown via 1.0.2g update ed14aef layer.conf: Update after replacement of udev with eudev e72233a bootimg: set default value for LABELS variable 4eaef67 sanity: Do not mistake meta-yocto-bsp for meta-yocto 86759de sanity.bbclass: remove conflict checking for image vm and live bb1c719 syslinux.bbclass: make vm and live can be built together 5c5c13d recipetool: create: add basic support for new npm fetcher/class 2be37a9 recipetool: create: add basic support for generating linux kernel recipes 5cf15ff recipetool: create: add support for out-of-tree kernel modules 937ecd0 bitbake: toaster: cleanup of bin/toaster startup code a7d1b95 bitbake: ui: remove the puccho ui a9dc72f bitbake: hob: removal of hob ui and associated ui files 27468db bitbake: fetch2/npm: Add missing ParameterError import 44e3461 bitbake: npm: in cases where shrinkwrap resolved a git URL, ignore it and grab dist.tarball 2a73181 bitbake: fetch2: Fix unpack for absolute file urls 865d2fe bitbake: fetch2: fixes copying of file://dir; subdir=foo, bug 6128 and bug 6129 fb437d3 meta-yocto-bsp: bump to linux-yocto 4.4 for the non-x86 BSPs fbedac4 maintainers.inc: Add new eudev package and change maintainership for udev 0138874 gcc: Add support for atomic opertions (libitm) where available 70153b4 classes/externalsrc: fix symlinking if symlink exists pointing to another path eac4061 populate_sdk_ext: Only write LCONF_VERSION to bblayers if it is set c366343 automake: don't delete .pyc files d6e63be cracklib: fix Python packaging a005d25 populate_sdk_base: handle empty SDK_PACKAGING_FUNC ec3be9f linux-yocto/4.4: update to 4.4.3 6ed16ff linux-yocto/4.1: iwlwifi: mvm: don't allow sched scans without matches to be started 2497e80 linux-yocto/4.4: update to -stable 4.4.2 aa2c1f7 linux-yocto: braswell: Remove feature and move DRM_I915_PRELIMINARY_HW_SUPPORT option 702701d linux-yocto/4.4: yaffs2 build fixes c2152b8 linux-yocto/4.1: update to 4.1.18 45d4cd7 linux-yocto/4.1: clkdev updates 79ecef6 linux-yocto/4.1: Galileo updates 5f61693 usbutils: Fix for new eudev implementation c89b777 libgudev: Fix for new eudev implementation 3e5e540 eudev: Replaces udev with eudev for compatibility when using sysvinit on newer kernels 674e55f populate_sdk_ext: Delete the buildtools tar file after installation d8acef2 libarchive: Set xattrs after setting times 431c1e1 combo-layer: handle empty commits during "init --history" 695cc45 classes/populate_sdk_ext: prepend to PATH rather than appending b145480 classes/module: allow substitution of the modules_install target name b03936c grub2.inc: drop bogus dependency on xz 7328765 grub2.inc: avoid passing -isystem to native builds 576587d grub2.inc: dont export TARGET_CFLAGS etc to grub2 configure 97a3322 harfbuzz: update 1.2.1 -> 1.2.3 edf93a0 gstreamer1.0-plugins-bad.inc: limit ARM_INSTRUCTION_SET over-rides to armv4/armv5 89140b0 dhcp: CVE-2015-8605 6ccd8cd sato/images: Add ptest image f38debb layer.conf: Whitelist cantarell-fonts fontconfig dependency b307937 pango: make ${PN}-ptest RDEPENDS on cantarell-fonts 0c80f29 cantarell-fonts: Add recipe 4006a7f sanity: Fix int verses string reference 2e27c4b bitbake: fetch2/npm: Enable fetcher 1c060d7 pseudo: Increase number of retries 030d920 bitbake: providers: Fix PREFERRED_VERSION lookup for '_' in PN c679a3d bitbake: fetch2: Skip lockfiles and donestamps for local files d01042e bitbake: fetch2/__init__.py: Error if lockfile path invalid ab7b7bf bitbake: fetch2/__init__: Fix decodeurl to better handle urls without paths 06b4d8f bitbake: fetch2/wget: Set localfile for directories 8d7e799 genericx86-common: Update PREFERRED_VERSION_linux-yocto to 4.4 65d6a62 gstreamer1.0-plugins-bad.inc: enable webp PACKAGECONFIG by default cd00748 gettext: Delete libintl.la file from install b33efa9 systemctl: handle RequiredBy dependencies 8caa592 ffmpeg: add bzlib, lzma and xv PACKAGECONFIGs 0011760 rootfs-postcommands: fix ssh_allow_empty_password checking 96f5f89 musl: Add linux-libc-headers to deps 3354878 mesa: Fix build on musl 7651342 dosfstools_2.11: fix build following removal of -e from EXTRA_OEMAKE 6c8abea uclibc support for rng-tools c7e5a38 oeqa/sdkext: Add sdk_update.SDKUpdateTest class. 738bd1a classes/testsdk: Pass tcname to SDK and SDKExt contexts 2a410b2 classes/testsdk: Move the removal of bitbake PATH to eSDK context only eb1f8b9 classes/testsdk: Move code for avoid PATHs to oeqa.utils 55d4849 gstreamer1.0-plugins-XXX: control orc PACKAGECONFIG via GSTREAMER_ORC 083c63d boost.inc: fix BJAM_OPTS --build-dir option f4e17c6 shared-mime-info: update to 1.6 4ffdfdf vala: update to 0.30.1 f53f374 python-git: update to 1.0.2 ec73437 pax-utils: update to 1.1.5 447ddb9 nettle: update to 3.2 26a3d25 ncurses: update to revision 20160213 dc42d30 libdrm: update to 2.4.67 0296e0a gtk+3: update to 3.18.8 e08ad62 gtk-icon-utils-native: update to 3.18.8 9daf153 git: update to 2.7.2 927dfaf gnupg: update to 2.1.11 2c39358 clutter-gst-3.0: update to 3.0.16 b8a1e59 ccache: update to 3.2.4 4d4aa1f libsolv: update to 0.6.19 8c2e420 ffmpeg: update to 3.0 afce247 nspr: update to 4.12 b19dbe5 pcmanfm: update to 1.2.4 6b41608 libfm: update to 1.2.4 325a9d3 epiphany: update to 3.18.4 d4da534 wic: don't throw away our created swap partition 5f82d17 automake: set test-driver path relative to top_builddir b41862d uninative-tarball: respect SDKMACHINE when building 4d1c14f boost.inc: enable more verbose build logs 7f84ad0 gstreamer1.0-plugins-XXX: move inherit gettext into common .inc file 2ce48e6 gstreamer1.0.inc: add explicit PACKAGECONFIG init 935d88a gstreamer1.0-libav: move LIBAV_EXTRA_CONFIGURE_COMMON_ARG into .inc 3a8ff19 gstreamer1.0-libav_git: add --ranlib option to LIBAV_EXTRA_CONFIGURE_COMMON_ARG b8bdb99 boost.inc: limit ARM_INSTRUCTION_SET over-rides to armv4/armv5 9ca8f30 populate_sdk_ext: Add images to SDK_INSTALL_TARGETS 07dc765 boot-directdisk.bbclass: drop IS_VM chechking a87574c image-live/boot-directdisk.bbclass: remove AUTO_SYSLINUXCFG 76eb815 testimage.bbclass: reuse generic test suites 6571a84 testimage.bbclass: add generic, image test suites 8c45747 gconf: remove redundant dependencies a74c389 gtk-doc-stub: don't inherit autotools 2269f90 os-release: sanitise VERSION_ID field 9d86b26 apr-util: add ldap crypto and sqlite3 to PACKAGECONFIG d8d2f57 apr-util: fix loadable module packaging 77cfa2b glibc.inc: improve optimisation level sanity checking 04c4719 rsync: add native variant 2c20fe4 core-tools-profile: add lttng tools for aarch64 8a0b997 lttng-ust: add support for aarch64_be 6081c35 liburcu: add support for aarch64_be 07a3c71 harfbuzz: add explicit dependency on fontconfig 73cc8b8 harfbuzz: update 1.2.0 -> 1.2.1 bb151b8 fontconfig: Don't add font directories from host e9f5134 musl: Upgrade to 1.1.14 bf4d380 oe-selftest: devtool: add an additional test for devtool upgrade 4bae2f2 oe-selftest: devtool: rework devtool upgrade test 10290f2 devtool: upgrade: print new recipe name 5cd3be3 devtool: upgrade: drop PR on upgrade e6f684b devtool: upgrade: eliminate unnecessary datastore copy 860574e devtool: upgrade: fix several issues with extraction of new source 66a781c devtool: upgrade: fix constructing new branch from tarball releases d30cc76 devtool: upgrade: fix renaming of recipe if PV is not in name 75eeeab devtool: upgrade: fix moving version-specific files directory 81ebb0b devtool: upgrade: fix version argument checking e953b57 devtool: upgrade: drop superfluous call to validate_pn 492b1eb devtool: upgrade: make source tree path optional 942ae25 devtool: modify: fix source tree default name when mapping virtuals e2334e1 devtool: add: tweak auto-determining name failure message 55ae566 uninative.bbclass: if the loader can't be found disable instead of failing 50b8740 uninative: use check_output instead of Popen directly 4495e8b lib/oe/qa: add explicit exception for 'file isn't an ELF' 4553bb1 libdrm: fix build with uclibc 4e5a871 strace: fix ptest execution e8e0489 clutter-1.0: Fix confgure test errors found by clang b748f40 oeqa/parselogs: Updated whitelist 4b32351 buildstats.bbclass: Don't assume /proc/<pid>/io present 07e1f10 sysvinit-inittab: Move start_getty scrip to base_bindir. 8d07e14 oeqa/selftest/prservice: Added new TC: check pr-server starts and stop correctly on localhost. d2a563c oe-selftest: Add support for lib/oeqa/selftest subdirectories 7f58b92 musl: Upgrade to 1.1.14 73bf792 devtool: update-recipe: create config fragment 2fbd1d7 devtool: sync: update kernel config 26f951b git: fix installed-vs-shipped QA Issue 033db24 btrfs-tools: fix symlink creation multiple times 9af773f bison/gettext: add --with-bisonlocaledir to assign BISON_LOCALEDIR b14e2ae gcc: use relative path for configure script 1f00fb2 depmodwrapper-cross: nopackages to avoid QA [buildpaths] issue 00a6f5a oeqa/utils: added new network module 3f7aa6f scripts/oe-selftest: Use site.USER_SITE to run coverage configuration code for sub-process 1c6c76e scripts/oe-selftest: Add filtering to the coverage data gathered by oe-selftest 4a21827 oeqa/selftest/signing: Added test for locked signatures 604dc1c package: check inherit instead of PN to decide if a recipe is a packagegroup b4df005 tune-cortexa9.inc: add vfpv3 tunes 889a5cc mirrors/own-mirrors/sanity: Updates after npm fetcher addition 28d17cf npm.bbclass: Add npm class to match fetcher bc5a1d1 base: Add nodejs-native dependency for npm:// urls 9d5483c meta-yocto: Rename to meta-poky to better match its purpose ab3a718 adt-installer: Drop since its replaced by the extensible SDK c1c6a9d sanity: Improve configuration upgrade capabilities (support meta-yocto -> poky transition) 2587101 image: Run do_rootfs_wicenv after do_image e0fd964 bitbake: toaster: change 'delete layer' to 'remove layer' 6e82820 bitbake: toaster: rename 'run again' button c8dd72c bitbake: toaster: fix banner after customimage package add 149f574 bitbake: toaster: custom breadcrumb for the default project 4a12865 bitbake: prserv: Add dump_db() bdb51ab bitbake: toaster: remove custom images from Image Recipes 98d462c bitbake: toaster: show suffix for image files and basename for artifact files 88b5660 bitbake: toaster: add missing link to image recipe details 25b179d bitbake: toaster: adjust the search field width a97081b bitbake: toaster: make 'configuration' the first tab e1fc319 bitbake: toaster: link to configuration in all breadcrumbs df2808f bitbake: toaster: reduce max height of modal dialogs 6c51f08 bitbake: toaster: disable add layer button on click d4a663a bitbake: toaster: apply error class to name field 48f0ae2 bitbake: toaster: fix custom image name form 07eb4f2 bitbake: toaster: comment out project release change 12ade9b bitbake: fetch2/npm: Add mirroring support for npm fetcher ca5b6d6 bitbake: fetch2/npm: Add npm fetcher 813bd1f bitbake: utils.py: Add sha1_file call 7bb9e8d signing-keys: Make signing keys the only publisher of keys 64ab17b systemd: Upgrade to 229 44248af harfbuzz: update to version 1.2.0 f4f5573 perf: add sysroot handling to subcmd 7a95c2c oeqa/selftest/buildoptions: build -minimal instead of -sato images 2980ac0 bitbake.conf: add findutils-native to ASSUME_PROVIDED 2e152ff findutils: upgrade to 4.6.0 951ce18 mesa: add missing space to RRECOMMENDS append 2305610 uclibc: Do not use immediate expansion operator aab3900 security_flags: Disable ssp when compiling uclibc afb954e rpm: fix building rpm 5 with internal beecrypt 069cdbe alsa-lib: topology: Add missing include sys/stat.h b879aed libsdl2: Fix patch after upgrade 3d4f71d gstreamer1.0-libav_git: update 1.7.1 -> 1.7.2 9d83a3e gstreamer1.0-plugins-ugly_git: update 1.7.1 -> 1.7.2 6456a6f gstreamer1.0-plugins-bad_git: update 1.7.1 -> 1.7.2 821498f gstreamer1.0-plugins-good_git: update 1.7.1 -> 1.7.2 04e77c1 gstreamer1.0-plugins-base_git: update 1.7.1 -> 1.7.2 e67c91d gstreamer1.0_git: update 1.7.1 -> 1.7.2 ea8c34e libnewt: Fix build with PIE flags 66a833a pseudo: Fix build when security flags are enabled 91a1baa glibc: Upgrade to 2.23 c1f9507 no-static-libs: remove eglinfo 0ab67d6 freetype: use autotools instead of a manual do_configure 4883ccc classes/populate_sdk_ext: add a better config extension mechanism 524ee08 recipetool: create: improve CMake package mapping 7b6e5b0 recipetool: create: add additional extension mechanisms b2d4472 devtool: modify: tweak help description for behaviour change a8e0e5e devtool: deploy-target: preserve existing files 2059a34 devtool: undeploy-target: support undeploying all recipes b95c72c devtool: deploy-target: write deployed files list to target 62989ef devtool: sdk-update: tweak command-line handling of updateserver cada5a8 devtool: (un)deploy-target: add help descriptions 6bd88e6 scripts/lib/argparse_oe: tweak title above options 32ef523 devtool: categorise and order subcommands in help output 9f7df76 devtool: update-recipe: don't show workspace recipe warning if no update 51972ed devtool: reset: fix preserving patches/other files next to recipes e54f9c1 devtool / recipetool: use common code for launching editor dd35f69 devtool: minor fix for error message 41242a2 staging.bbclass: remove trail slash from SYSROOT_DESTDIR aeb8964 terminal.bbclass: import oe.terminal for oe.terminal.prioritized() bee556a recipe_sanity.bbclass: skip DataSmart in recipe_sanity_eh() 2d293bd image.bbclass: fix circular dependency when IMAGE_FSTYPES append hddimg a332360 toolchain-scripts.bbclass: add three other path to PATH in env.sh 4d2910f libsoup-2.4: disable libsoup-gnome by default 619f6c6 libsoup-2.4: prevent PACKAGECONFIG dependant package renaming 13e726f libsoup-2.4: minor formatting improvements dd0ef3c populate_sdk_ext.bbclass: Add SDK_RECRDEP_TASKS variable 4c5c40d devtool: Don't recursively look for .devtoolbase in --basepath 0220180 populate_sdk_ext: Don't ignore SDK_TARGETS value 8c0ba8d bitbake: toaster: toastergui Fix invalid char test and implementation 913e9b1 bitbake: toaster: PackagesTable show only installed packages 94bca58 bitbake: toaster: toastergui unit tests convert to use fixtures 8796ac8 bitbake: toaster: SoftwareRecipesTable apply default order_by 8469e58 bitbake: toaster: orm migrations Sort out migrations mess 78b6109 cml1/sstate: Fix missing getVar parameter 7e19f88 linux-yocto/4.1: capabilities backports 54bfbcc waf.bbclass: Remove --disable-static from EXTRA_OECONF 51fc304 gcc-5.3: backport fix for PR-target-65358 ed20c6c epiphany: Add libxml2-native to DEPENDS 2021f63 libsdl2: update to 2.0.4 947b3bf cmake: Update to 3.4.3. 4699483 sstate.bbclass: use oe.gpg_sign for gpg signing db7c7c2 oe/gpg_sign: add 'passphrase' argument to detach_sign method e845b75 sign_rpm.bbclass: do not store key details in signer instance d5be866 oe/gpg_sign: add 'armor' argument to detach_sign() 03554b7 oe/gpg_sign: add verify() method af7e516 ruby: break out ri-docs and rdoc into separate packages 8bcf139 insane.bbclass: print more info for build-deps and file-rdeps 5f3dfea curl: re-enable proxy support by default 1f61888 libtool: Don't hardcode grep paths a3b996a cml1.bbclass: fix do_menuconfig 91bfe50 cups: upgrade to 2.1.3 eeac0a9 coreutils: upgrade to 8.25 01dc859 findutils: upgrade to 4.5.19 bf7d5f6 diffstat: upgrade to 1.61 247f3b4 grep: upgrade to 2.23 4e5e501 bitbake: data_smart: Drop default expand=False to getVarFlag [API change] c7610aa bitbake: data_smart: Drop default expand=False to getVar [API change] 4f0ab27 bitbake: SignatureGeneratorBasic: make checksum cache file configurable 0cdf193 bitbake: MultiProcessCache: make cache filename configurable ca552bb bitbake: FileChecksumCache: add get_checksums() method 8f61f2d bitbake: bb/runqueue: save task file dependency cache onto disk 5177b1e bitbake: SignatureGenerator: add method for saving the file checksum cache 97617fd bitbake: bb/cache: drop some unused arguments 5a87d8c bitbake: Allow Hob to run images on a custom simulator, other than qemu 7fc38ea gma500-gfx-check: Fixes infinite calling to modprobe gma500_gfx be7b52a pulseaudio: 6.0 -> 8.0 c52b8f6 alsa-plugins: 1.0.29 -> 1.1.0 a231a4e alsa-utils: 1.0.29 -> 1.1.0 1adbb73 alsa-tools: 1.0.29 -> 1.1.0 3a82e2e avahi: update to version 0.6.32 14daeb5 no-static-libs.inc: Add libcap-native c001863 libsdl2: Fix build with static libraries disabled a46dc87 uboot-inc: Backport patch to fix Beaglebone Black bootloader c7355b9 busybox: drop patches that are not valid anymore 47d0119 pcmciautils: Update SRC_URI f37ac5b debianutils: Upgrade 4.5.1 -> 4.7 adfcaf2 busybox: Add musl config for _git recipe 46824dc debianutils: Fix SRC_URI to use debian snapshot 3df8701 nfs-utils: bugfix: adjust name of statd service unit c15bf55 musl: Upgrade to 1.1.13+ 07e7879 dpkg: Update to 1.18.4 5794b56 glew: upgrade to 1.13.0. aea0746 glew: rewrite to use upstream build system 0b1c324 socat: Fix build with musl 04c6a48 binutils: Fix useless rpaths QA warning eb6d14e image/populate_sdk: seprate variables to fix dependency c9e5e34 gcc: Backport nios2 r31 fix 012460d sqlite3: update 3.10.2 -> 3.11.0 f770a6e insane: wrap autotools checks in inherits_class(autotools) checks 35011d9 cmake: don't inherit autotools 9cd64ed oeqa/selftest/bbtests: Test bitbake --setscene-only option 7e5b451 glew: don't put our CFLAGS into the pkgconfig file b1145cc dbus: update large file patch fad63e3 coreutils: fix problem with acl for 6.9 version 351039f gcc-4.9/5.3: Ignore -fdebug-prefix-map in producer string 7a11650 bitbake.conf: use target path as compile dir in debugging info ef30119 glibc: Security fix CVE-2015-7547 c834ebc glibc: CVE-2015-8776 842177a glibc: CVE-2015-9761 efa1ae5 glibc: CVE-2015-8779 aefe1fa glibc: CVE-2015-8777.patch 152914f oeqa/parselogs: Whitelist dmi firmware failure message in 4.4 kernels 683ea31 rng-tools: Fix underquoted m4 and libgcrypt floating dependency 7a700f5 lib/qa.py: raise ValueError if file isn't an ELF 334e1b5 lib/oe/qa: ELFFile: check that a path is a file before opening it 11359e9 rng-tools: fix the build with musl a258589 bitbake: bb.ui.knotty: prefix task messages with recipe/task 4bf8b21 bitbake: Move bb.{debug,note,..} into their own logging domain 3b35de3 layer.conf: Add gstreamer1.0-meta-base to SIGGEN_EXCLUDERECIPES_ABISAFE 14e9385 sstate: Add ca-certificates-native to postinst recipes list 73e53e4 nss: define RPATH variable for nss-native 6e4e9f7 Revert "lsbinitscripts: fix the path for mountpoint" 6db39e1 libunwind: Fix build on ppc 47896a7 dbus-glib: 0.104 -> 0.106 93d8fc1 conf/no-static-libs: add explicit rule for libical 637b44c runtime/systemd: Fix for boot time string parse error ef5b8b4 security_flags: Add SECURITY_CFLAGS to TARGET_CC_ARCH for binutils 1387785 binutils: Use tip of 2.26 branch da13f0b buildhistory.bbclass: remove out-dated information on request a56da4a Remove obsolete references to exmap 8b21720 bitbake: knotty: Set exit failure code on runQueueTaskFailed events a9223e2 bitbake: taskdata: Fix traceback issue with missing provider 7593756 bitbake: cooker: Improve cache handling 9cb38c1 poky: Disable static libs by default f852014 bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE b050c50 apmd: fix build with static libraries disabled d585a71 oeqa: Update to handle domain specific references in build logs 9300749 libpng12: Handle no static libs 67ea65e ed_0.5: Handle --disable-static option 438d6d6 conf/distro/include: Add no-static-libs.inc 2eb19cc classes/buildhistory: fix for python function parsing change 1a3204c valgrind: Fix build with musl e8b0da1 rpm: Fix build with musl 48144e0 gstreamer1.0-meta-base: Mark as machine specific due to COMBINED_FEATURES ff8ca89 gdb-cross-canadian: Add missing virtual/* DEPENDS 120a160 e2fsprogs: Update to upstream version of a patch 5394ada gdb: Rationalise PACKAGECONFIG ce0f8ab insane: Add --disable-static to UNKNOWN_CONFIGURE_WHITELIST 94abdb2 linux-yocto: Work around PAT issue on qemux86 6fb493a libgcrypt: update 1.6.4 -> 1.6.5 bf9ad22 musl: Upgrade to tip of tree 5d156bc oe-selftest: don't use specific tasks 80e8928 oe-selftest: pylinted wic tests 9b6dc9b wic-image-minimal: use uuid for root partition ab7cb65 wic: fix processing of --use-uuid 51e0a8a oe-selftest: add new wic testcase 2100f82 wic-image-minimal: update .wks to boot by qemu 4b26601 wic-image-minimal: change IMAGE_FSTYPES f799e21 oeqa/targetcontrol: support wic image type 7066f16 oeqa/targetcontrol: make ssh control optional 0ade658 qemurunner: add parameter to method 'start' d083fec oe-selftest: remove unused parameter c26a9c3 runqemu: support path/to/<image>-<machine>.wic c7f0578 runqemu: don't set KERNEL for wic images 2c3a009 runqemu: add support for wic images 64d2f13 scripts/sstate-cache-management.sh: Change wording 6740dd5 qemu.inc: Add rng-tools to qemu images ce3df21 rng-tools: Import recipe from meta-openembedded 36b43b2 lib/oe/terminal: set workdir for konsole terminal 03e1950 mmc-utils: upgrade to latest git version b5b8003 ltp: Upgrade to 20160126 and fix build on musl f6b3957 initscripts: start urandom after populate-volatiles 85ac8eb initscripts: populate-volatiles.sh: add mount-bind feature be5b72c libdrm: don't detect components that have been disabled 5fc5996 buildhistory: Fix regex to handle versions without spaces 7c3d4c0 debian: Fix superfluous setting for RPROVIDES 2eba066 autotools: Fix interaction with bitbake -b 9c8fee9 autotools: Correct dependency search logic error 971fafb maintainers.inc: include libjpeg-turbo and mmc-utils 4e0b334 scripts/runqemu-internal: Work around qemux86 PAT bugs in linux 4.4.1 283a302 sanity: Bump minimum version to 1.29.0 1c2d632 bitbake: Bump version post release to 1.29.0 a12dcc4 base.bbclass: fix support for gitsm:// bc72f64 linux-yocto: Update SRCREV for genericx86* for 4.4 be89a1d linux-yocto: Update SRCREV for genericx86* for 4.1 4a8d20a poky: update qemu* to prefer 4.4 kernel d255f4f linux-yocto/4.1: galileo backports and support fdcb373 linux-yocto/4.1: update to v4.1.17 5688cab linux-yocto/4.4: update to v4.4.1 f9f93ae bitbake: cooker: gracefully shutdown parsers 1f7f077 bitbake: buildinfohelper: unset brbe variable when build finishes 9a6cb10 nativesdk-buildtools-perl-dummy.bb: Fix variable expansion in python code 5e978d7 classes/testsdk: do_testsdkext avoid STAGING_DIR/BASE_WORKDIR in PATH f56e9aa freetype: update 2.6.2 -> 2.6.3 1ba1aa3 freetype: minor formatting improvements 0d5e611 piglit: upgrade SRCREV 72c6b62 libbsd: Security fix and update 0.8.2 78be954 gstreamer1.0-plugins-bad_git: fix gst_structure_get() etc compiler warnings fdd8979 gstreamer1.0-plugins-good_git: fix gst_structure_get() compiler warning a23a50e python-setuptools: Add python-compile on RDEPENDS 914ff14 qemu: Security fix CVE-2016-2198 0938353 qemu: Security fix CVE-2016-2197 1f3e1d1 curl: add PACKAGECONFIG options for less common / legacy protocols 19045ba toaster: tests Remove symlinks from toasteruitest folder 738a9b7 classes/sanity: check_perl_modules provide output when fail e64ce73 oe-selftest: devtool: add another devtool add test a5095d1 recipetool: create: set S when we set SRC_URI from local git repo ca5a36c recipetool: create: convert http git URLs that don't end in .git but contain /git/ 4c71afb recipetool: create: ensure URL parameters don't make it into the name 86f3464 devtool: add: fix adding from a local source directory fa50153 devtool: modify: make -x the default behaviour f767757 recipetool: create: determine name/version from github/bitbucket URLs d94c7e3 recipetool: create: support cmake find_library directive ddfe744 devtool: commit for extra tasks that modify source when extracting e36cb6c classes/externalsrc: create symlinks for workdir and logs 20034c3 classes/externalsrc: disable rm_work when active c38f253 uninative.bbclass: capture stdout/err from patchelf-uninative 9065222 db: update HOMEPAGE f0d5478 mdadm: update to version 3.4 79d5041 iproute2: update to version 4.4.0 21e3b2a image_types_uboot: add cpio.gz.uboot to supported IMAGE_TYPES 6fab5fc recipetool.newappend: add -e/--edit argument 252f97e liburcu: Add nios2 support e72ab70 strace: Fix build for arc, metag, nios2, or1k, tile 691277f udhcpc: specify full path for ip command calls f141f0b alsa-lib: avoid including <sys/poll.h> directly a1ad3d0 oprofile: Add nios2 support fd7dd07 nspr: Add nios2 support 954dc45 guile: Fix nios2 support 611e3d8 binutils: Repair nios2 PLT and GP handling 027eac5 gstreamer1.0-meta-base: make gstreamer1.0-plugins-base-alsa conditional 056d82c curl: drop obsolete pkgconfig_fix.patch 0e62f01 iproute2: update to version 4.4.0 216e618 quota: update to version 4.03 25d2956 oeqa/selftest/sstatetests.py: check that PARALLEL_MAKE doesn't change signatures 2966016 bitbake.conf: remove unused ALLOWED_FLAGS 3bdeda5 libproxy: remove GPLv3 logic and spurious exports 86994fd libproxy: add PACKAGECONFIG control for gnome3 033d754 libproxy: replace PACKAGECONFIG equivalent with the real thing e65a29e openssh: Properly skip ptrace test if tools are missing e1a1e0b openssh: Fix regex that sets sftp-server path for tests d7faf67 insane.bbclass: Support MicroBlaze with musl 9937c93 hdparm: Explicitly set EXTRA_OEMAKE as required 7475c4c qemu: Security fix CVE-2016-1568 4857511 xserver-xorg: Add PACKAGECONFIG for crypto libraries 34798fa mesa: upgrade 10.6.3 -> 11.1.1 7edea7c initrdscripts: fix mmc device as install target c3ef2bb libsoup-2.4: Remove unnecessary gnutls dependency 04454b2 wpa-supplicant: Only depend on libgcrypt when needed 4de0ee6 systemd: Don't depend on gcrypt unnecessarily 0da96bf3 buildstats.bbclass: remove dead URL from comment 326592d Remove obsolete references to exmap a0cc1c3 curl: update 7.47.0 -> 7.47.1 a0d3eb9 sign_package_feed.bbclass: fix task dependencies 8cb1e83 oe/gpg_sign: fix incorrect variable name 902a68f meta/conf/layer.conf: adapt to more flexible initramfs-framework RDEPENDS 5b2b343 tune-corei7.inc: tell qemu to emulate a matching processor 5b70ee4 pixz: fix upstream version check 62a6f97 webkitgtk: update to 2.10.7 1cd6912 libwnck3: update to 3.14.1 e53eef9 iso-codes: update to 3.65 30cf8aa bash-completion: fix upstream version check 8098256 gstreamer1.0: fix upstream check for unstable versions from git c24b0ab ffmpeg: update to 2.8.6 9237097 python: merge python-elementtree into python-xml 5ac4172 piglit: add missing dependency on python-xml 4d3ca42 systemd: tighten timesyncd and journal-gateway user accounts 6be3031 systemd: extend PACKAGECONFIG flags 85728ec systemd: rename systemd-zsh to systemd-zsh-completion 22a2866 systemd: move some tools into systemd-extra-utils package 9909104 classes/useradd: handle whitespace only USERADD/GROUPADD/GROUPMEMS e485686 systemd: realign packages list 41d0f83 systemd: move bash completion into separate package 9a80afd nettle.inc: drop duplicate LIC_FILES_CHKSUM and SRC_URI hashes 72ec267 gdb: drop unnecessary CC_FOR_BUILD etc exports 00d6b67 gdb: build fix for MIPS + musl libc 40e4e8c strace: build fix for MIPS + musl libc 299b426 uclibc: fetch from master branch not 1.0 4ac4d28 uclibc-ng: Bump up to 1.0.12 release 70bfd4c musl: Upgrade to tip of tree d1496b4 e2fsprogs: Fix multiple xattr handling 9d4b526 cdrtools-native: Explicitly set EXTRA_OEMAKE as required 864797a oeqa/prservice: Fix whitespace problem 7cd8351 pseudo: uprev to 1.7.5 246b02e ptest-runner: Explicitly set EXTRA_OEMAKE as required 7932525 unzip: Explicitly set EXTRA_OEMAKE as required 4ef055c sysklogd: Explicitly set EXTRA_OEMAKE as required 625066b stat: Explicitly set EXTRA_OEMAKE as required 07e81c8 pigz: Explicitly set EXTRA_OEMAKE as required 936223b iputils: Explicitly set EXTRA_OEMAKE as required 1e3fdbb ed: Explicitly set EXTRA_OEMAKE as required ef36b6f gptfdisk: Explicitly set EXTRA_OEMAKE as required 59ee206 dmidecode: Explicitly set EXTRA_OEMAKE as required d17758a libacpi: Explicitly set EXTRA_OEMAKE as required 44e8d0f apmd: Explicitly set EXTRA_OEMAKE as required 961d898 perl: Explicitly set EXTRA_OEMAKE as required ecb9c34 oeqa: Improve test failure messages ae2f3a3 sstate: Ensure populate_lic sstate objects are cleaned 26f26e5 package_deb: Ensure allarch deb packages aren't target specific b3a2065 base: Make do_cleansstate nostamp 37357ab classes/testimage: Fix exportTests function. f895a61 classes/testsdk: Add help information on how to run tests. e22fbce oeqa/sdkext/devtool.py: Add location test to ensure that devtool is the eSDK one. 92d0cc5 oeqa/sdkext: Add devtool basic tests for eSDK. a619ea2 oeqa/oetest: Fix compatibility SDK tests using eSDK. 062dbd6 classes/populate_sdk_ext: Add SDK_EXT_TARGET_MANIFEST and SDK_EXT_HOST_MANIFEST 4cfdf17 testsdkext: Add skeleton for support Extensible SDK tests. 5580d7b classes/testsdk: Add compatibility SDK testsuite to eSDK 7181da7 oeqa/oetest: oeSDKTest when run a command redirect env output to null f3c2ce2 classes/testsdk: Add function run_test_context 3577c35 oetest.py/TestContext: Move loadTests and runTests inside it. 8009418 testimage/testsdk: Move get test suites routine inside TestContext. b588b80 testimage/testsdk: Modularize TestContext. 59791d1 toolchain-shar-extract.sh: Add proxy variable to new env. abd8158 classes/testsdk: Add call to export_proxies on testsdkext. 42f2ac4 classes/testsdk: Add testsdkext task only install. 90590ab get_test_suites: Add sdkext type for load test suites. 2ecc319 populate_sdk_ext: Set TOOLCHAINEXT_OUTPUTNAME. 7b459be classes/testimage: Add defeault inherit for testsdk. 24326a9 classes/testsdk: Add new class testsdk. 3d1d30b testimage: Modularize helper functions for get test lists. 8b5ee36 bitbake.conf/base: Improve handling of SRCPV 947e526 oeqa: setup bitbake logger after tinfoil.shutdown 400f530 bitbake: build: Improve python execution tracebacks aece748 bitbake: build/data: Don't expand python functions before execution [API change] e39cfb1 bitbake: cooker: Don't expand python functions in variable dumps f652b6b bitbake: data: Don't expand python functions for variable dependencies d3e0c44 bitbake: data_smart: Avoid expanding anonymous python functions e0eb2ea bitbake: toaster: models Remove manual transaction control from lsupdates 48622e1 bitbake: toaster: build section Improve display of builds when > 1 targets 4d0ba0f bitbake: toaster: templates make build data breadcrumb consistent 99184d7 bitbake: BBHandler/ast: Merge handMethod and handleMethodFlags 6ba69b4 bitbake: utils: Drop datastore function inspection during exception f8a44b1 bitbake: cooker: extended dot styling 30c132b bitbake: toaster: Enable Image Customisation feature 5e14a8f bitbake: toaster: xhr_customrecipe_packages Add dependencies to included packages 749f5a6 bitbake: toaster: orm generate_recipe_content only exclude locale packages 6269411 bitbake: toaster: customrecipe page Add last successful build link and conditionals 8d5b61e bitbake: toaster: models Add update_package_list for CustomImageRecipe 86db0bd bitbake: toaster: orm Add last_updated field to CustomImageRecipe 18d8b17 bitbake: toaster: models add get_last_successful_built_target method 8885b7b bitbake: toaster: pkg_dependencies_popover just show direct dependencies 40f6eff bitbake: toaster: models add all_depends method for Package_DependencyManager a8ab1c6 bitbake: toaster: buildinfohelper CustomImagePackage update dependency info 0fee829 bitbake: toaster: newcustomimage_modal add frontend name validation cb6d290 bitbake: toaster: API CustomImageRecipe check the recipe name supplied is valid 5634a25 bitbake: toaster: views CustomRecipe API add size information to the package lists 6fbceb0 bitbake: toaster: models Invalidate ToasterTables cache when a m2m field changes 998f9af bitbake: toaster: customrecipe Add dependency tracking to package selection 9976e4f bitbake: toaster: tables move template logic into the pkg_add_rm_btn d77c247 bitbake: toaster: CustomImageRecipe generate overwrite IMAGE_FEATURES 481dc11 bitbake: toaster: make locale packages uneditable in custom image page a757d39 bitbake: toaster: include locale and packagegroup packages in custom image baac458 bitbake: toaster: update custom image package table filters efbffe3 bitbake: toaster: move recent builds query to model b514785 bitbake: toaster: update customimagerecipe migration df58f5b bitbake: toaster: add merge migration to resolve conflict 38f4913 bitbake: toaster: orm generate_recipe_file_contents Handler for require recipe 769017e bitbake: toaster: project builds Poll the server to get latest progress for build 971d65c bitbake: toaster: localhostbectrl Update the dirpath of customrecipe's base layer 6d9f342 bitbake: toaster: tables Check layer presence in project for customise_btn 76c0008 bitbake: toaster: toastergui tests Add addtional data to the setUp for new tables 70a078e bitbake: toaster: tables SelectPackagesTable rename recipe_id to custrecipeid 7e4c231 bitbake: toaster: toastergui tests Update package test to use CustomImagePackage 4b3c9d6 bitbake: toaster: customrecipe Add further front end features using new API b213907 bitbake: toaster: xhr_customrecipe_packages add GET info for package response a9668ee bitbake: toaster: xhr_customrecipe_id change to use CustomImagePackage 439314c bitbake: toaster: API allow CustomImageRecipe to be updated after creation 9ea4de6 bitbake: toaster: tables Change SelectPackagesTable to use ProjectPackage 20f400b bitbake: toaster: tables add recipe download link to CustomImagesTable 1c9ce1c bitbake: toaster: newcustomimage_modal use libtoaster method for new CustomRecipe 8b1d043 bitbake: toaster: libtoaster Add createCustomRecipe method 32048fa bitbake: toaster: orm Add convenience method to get all pkgs in a CustomImageRecipe c80b7df bitbake: toaster: orm get_project_layer_versions to return layer_version objects 796e348 bitbake: toaster: toastergui tests Add unit test for download custom recipe 04d8c94 bitbake: toaster: toastergui tests Update to reflect changes to CustomImageRecipe 4e8a0aa bitbake: toaster: views xhr_customrecipe_packages clean up API 66b5608 bitbake: toaster: toastertable remove title from Show all in table ce72896 bitbake: toaster: Add recipe details page 5f52614 bitbake: toaster: newcustomimage Move modal dialog out of newcustomimage template 2a3dd32 bitbake: toaster: Continue front end features to custom image recipe page. d6e7e4a bitbake: toaster: tables Add table for Packages and update SelectPackagesTable 43f0a05 bitbake: toaster: views Add view to download custom recipe 2cf55af bitbake: toaster: move CustomImageRecipe generation to API entry point c402ac2 bitbake: toaster: orm add CustomImageRecipe generate contents function a6e4f94 bitbake: toaster: buildinfohelper Add the concept of CustomImagePackage e1bfe1c bitbake: toaster: orm: Add db migration for new CustomImagePackage table f760a78 bitbake: toaster: orm Add CustomImagePackage table 4117af2 bitbake: toaster: orm: Add db migration for new CustomImageRecipe inheritance change 1f10289 bitbake: toaster: orm make CustomImageRecipe inherit from Recipe 648753b bitbake: toaster: orm Add sum of dependencies size function to PackageDependencyManager a92fc30 bitbake: toaster: tablejs Add an event handler to manually trigger a data reload 4c82878 bitbake: toaster: ToasterTables simplify filter function move common part to widget 3e1e8e6 bitbake: toaster: models fall back to a sensible string for no vcs reference 14d09c8 bitbake: toaster: localhostbecontroller CustomRecipe now base_recipe is Recipe 7d5d8d0 scripts/lib/bsp/engine: trailing whitespace cleanup dfeda17 scripts/lib/bsp/engine: fix path separator d482d84 maintainers: remove gtk-theme-torturer and gnome-mime-data d0d85a4 bitbake: bb/fetch2: Move export_proxies function from wget to utils. 7226ce2 glibc-locale: fix QA warning 4a2f42f formfactor: add machconfig for Beaglebone eb53c54 sstatetests: Fix after change to sstate populate_lic SWSPEC a43b9ef gstreamer1.0-plugins-base: move freetype dependency into 1.6.3 recipe fb4f05b gstreamer1.0-plugins-base_git: update to git master 1.7.1-79-g6414289 fc81c80 gstreamer1.0-plugins-bad_git: avoid including <sys/poll.h> directly 3f02474 gstreamer1.0-plugins-good_git: avoid including <sys/poll.h> directly 9b0a74a gstreamer1.0: avoid including <sys/poll.h> directly f9e565e gmp_4.2.1: fix build for MIPS 6d570c8 gmp.inc: limit ARM_INSTRUCTION_SET over-rides to armv4/armv5 3aecdd9 gmp: move BBCLASSEXTEND = "native nativesdk" from gmp.inc into 6.1.0 recipe 263a65d gmp: move SRC_URI out of gmp.inc + minor reformatting aacae25 image_types.bbclass: Embed IMAGE_NAME in ubinize config file 9c0d4ec toolchain-scripts: drop PYTHONHOME 6560f80 python: set PYTHONHOME for nativesdk 92ae4e2 gcc: musl related fixes for ppc/secure-plt and gthr 9e5222c gcc: Assume libssp and dl_iterate_phdr on musl 281bd41 security_flags: wipe security flags for gcc/glibc and related libraries 61a5875 security_flags: use -fstack-protector-strong a07f2fd security_flags: ensure security flags only apply to target builds 8d57d1d gcc: Fix build on musl with -fstack-protector eb134c6 isoimage-isohybrid.py: fix cpio working directory 8bedf76 glib-2.0: use the system libpcre 1ae132e libpcre: enable unicode properties by default 3adb8d5 python3: remove optimize by default patch 1df1ac9 security_flags.inc: don't do -pie for syslinux 562c75c neon: convert to PACKAGECONFIG 6228cf8 bitbake: toaster: reinstate ID on edit columns button 916c73d bitbake: cooker: shutdown cooker parser on shutdown 8857498 bitbake: fetch2/osc: Clean up old variable syntax 54da829 bitbake: fetch2/osc: Remove hardcoded url c57ba52 cross-localedef-native: add ABI breaking glibc patch 0cc825f uninative: Improve error handling 576a248 patchelf: Add patch to handle large files bbdbe00 package_manager.py: fix python indentation bug (opkg) ea40a0b populate_sdk_ext: Make populate_sdk_ext depend on sdk_extra_conf 4f7656a populate_sdk_ext: Add support for a "minimal" type 71bb332 populate_sdk_ext: Don't set sdk_update_targets in the config 5b7a43e toolchain-scripts.bbclass: Use PYTHONPATH instead of PYTHONHOME f1f8447 copy_buildsystem.py: Pass the nativelsb argument to gen-lockedsig-cache b130805 gnome-mime-data: remove 12d5fa8 gtk-theme-torturer: remove from oe-core 659d755 openssl.inc: drop obsolete mtx-1 and mtx-2 over-rides 32b498c scripts/devtool: Add getVarFlag expand argument ed5daa1 bitbake.conf/native/nativesdk: Set PKG_CONFIG_SYSTEM_ at top level 8fa2d52 pango: unset LDFLAGS when building gen_all_unicode edfaa04 pango: merge bb and inc 00ccf51 e2fsprogs: Ensure we use the right mke2fs.conf when restoring from sstate 66a6ec2 nativesdk: Set PKG_CONFIG_SYSTEM_ variables 34e95b0 local.conf.sample.extended: Document HOW-TO enable systemd or busbox for init system 077d32e local.conf.sample: Remove trailing whitespaces 6ae662a bitbake: parse/ast: Mark anonymous functions as python functions 9913fd8 bitbake: codeparser: Improve handling of data.expand() dependencies 4628fe1 bitbake: lib/bb: Add expansion parameter to getVarFlag b98866d bitbake: fetch2/gitsm: Fix when repository change submodules 390c2c1 bitbake: data_smart: Add missing expand parameter to getVar call 56454f6 bitbake: bitbake: prserv: do not clear umask when daemonizing abf8a8f bitbake: bitbake: prserv: SIGTERM handling hung process be032fc bitbake: bitbake: prserv: -wal and -shm sqlite lost when daemonizing 1e95ebd poky-tiny: Use musl for default system C library 6594bd5 maintainers.inc: Set me as Maintainer of QEMU. 86851d5 insane: Fix populate_sysroot sanity test path d09a25e socat: upgrade to 1.7.3.1 fad264b libffi: move from recipes-gnome to recipes-support d3753dd libffi: ensure sysroot paths are not in libffi.pc c72614b syslinux: remove LDFLAGS manipulation 8ad11fc lttng-tools: Fix ptest installed la files 66ed16b gnutls: update 3.4.8 -> 3.4.9 149cb17 python-distutils: add missing dependency on python-email 3473962 nss-myhostname: Fix build on musl 42e37d7 linux-firmware: update to latest revision 52442afee ce1bed7 license.bbclass: add LICENSE_CREATE_PACKAGE to perform_packagecopy vardeps e43504b i2c-tools: point SRC_URI at Yocto source mirrors 2d7622c gnutls.inc: allow libidn support to be controlled via PACKAGECONFIG 60ebe1c gnutls.inc: add gmp to DEPENDS 935aa96 gnutls.inc: minor formatting improvements 3fa1c54 Revert "kernel/kernel-arch: Explicitly mapping between i386/x86_64 and x86 for kernel ARCH" 0b82af2 wic: isoimage-isohybrid: check for syslinux-native 9699441 formfactor: add machconfig for qemumips64 4701dc9 ncurses: use closing curly brackets in FILES_${PN}-tools variable 9d9f233 util-linux: Change ALTERNATIVE_PRIORITY above busybox 8f2306c mktemp: lower the priority of standalone mktemp package 6251846 libxsettings-client: drop obsolete disable_Os_option.patch 7894633 wic: default to empty bootloader config 090fb51 copy_buildsystem: add ability to exclude layers 8dc600f toaster.bbclass: reinstate scan for artifacts in the sdk directory eee675b toaster.bbclass: attach image file scan postfunc to do_image_complete 0c0b072 meta: add ASSUME_PROVIDED dependency on wget-native for http fetches f926610 gtk+3: Tweak getVar to use True, not 1 7fa6eeb classes/lib: Add expand parameter to getVarFlag 252e645 python-pycurl: remove unnecessary exports 9fd214d sstate: Fix SSTATE_SWSPEC only used by populate_lic tasks 4ea6a64 package.bbclass: Add data expansion to do_split_packages() 6ab5001 busybox/gtk/perl/base-passwd: Ensure data is correctly expanded e8860f7 ref-manual: Fixed typo in FAQ 14.15 section. 9d2925e ref-manual: Updated FAQ entry regarding Proxy for SOCKS 29a44da ref-manual: Fixed type in LICENSE_CREATE_PACKAGE variable description 4181e58 ref-manual: Updated warning regarding libexecdir 0d8bd7d ref-manual: Added description for LICENSE_CREATE_PACKAGE variable. 6aca5b8 ref-manual: Added remove-libtool class 5e2201e toaster-manual: Updated the "Installation" to have TOASTER_DIR information 3aa162a p11-kit: fix packaging warnings 60c9759 piglit: don't use /tmp to write generated sources to b33e440 libical: Work around hardcoded paths in pkgconfig file a131b6e documentation.conf: align the documentation for DEBUG_OPTIMIZATION and FULL_OPTIMIZATION with bitbake.conf 974a8c0 pciutils: Explicitly set EXTRA_OEMAKE as required 2d3e6f3 openssl: Explicitly set EXTRA_OEMAKE as required b07e161 dbus: add user sessions support 877eae1 dbus: use ${systemd_system_unitdir} 6010088 populate_sdk_ext: Add SSTATE_MIRRORS to config blacklist 70ec867 insane: add test for -dev packaging containing real libraries 38d6f1f python3: set INSANE_SKIP as libpython3.so is a trampoline library 4ac4023 p11-kit: fix module packaging 9a27010 libnl: package the libnl-cli modules in libnl-cli 111af1d remove-libtool: add new class 333dce4 gtk-immodules-cache.bbclass: fix immodules-cache path b1e41f4 Revert "matchbox-keyboard: export GTK_IM_MODULE_FILE location" ac1f311 directfb: use Yocto source mirrors for SRC_URI 4d80f7a gcc-configure-common.inc: drop --enable-target-optspace from configure 654eddc machine/include: drop tune-cortexm*.inc and tune-cortexr4.inc 322015a liboil: drop recipe from oe-core 41d50f9 boost: Fix build on soft-float ABI arm systems 07a91a6 libnss-mdns: Check for nss.h before using 1b34f55 db: Use cross libtool 64089c6 libtool-cross: Unset pre|post dep objects 457f417 docbook-xsl-stylesheets: create a link for easy refer 1ba62f9 pth: Remove dead code a4a5d1f bitbake: cooker, bitbake-worker: Fix spelling of "received" 8f6b9c7 bitbake: cooker: Only start as many parse threads as we need 602da7c bitbake: knotty: Don't show errors for universe provider issues 1dd2d76 linux-yocto: Adds new genericx86 and genericx86-64 SRCREVs for kernel 4.4 b8fa9d3 poky: Add poky-world-exclude.inc and add qwt-as 5503a22 sstate: Revert using -m option to tar in sstate 6023798 libarchive-native: Disable libxml2 support b09b054 pcmciautils: Fix makefile race 89df5f1 binutils: Use target provided zlib c85c54f binutils: Upgrade to 2.26 ba2fdcd native.bbclass: Set CXXFLAGS from BUILD_CXXFLAGS not BUILD_CFLAGS 2394b15 gstreamer1.0-plugins-base: Add video crop supporting when convert frame 2724908 gstreamer1.0-plugins-bad: Fix memory leak of navigation thread db81fc9 lib/oe/package_manager: remove package feed lists c43da12 externalsrc: use shared CONFIGURESTAMPFILE if B=S c6b8227 Make sure that the directory for CONFIGURESTAMPFILE exists ca06179 autotools.bbclass: use oe_runmake instead of ${MAKE} f4f9f2f gcc, qemuppc: Explicitly disable forcing SPE flags 691f7e4 pango.inc: misc dependency fixes 70efb8d pango.inc: limit ptest specific do_compile_prepend to target builds c1273d4 systemtap_git.inc: do not immediate expand SELECTED_OPTIMIZATION e631be2 glibc.inc: do not immediate expand SELECTED_OPTIMIZATION 770d9ff mkelfimage: fix target cflags leaks to host c936bf0 base: Move COMPATIBLE_MACHINE out the scope of SOURCE_MIRROR_FETCH 3072361 bitbake: bitbake: BBUIHelper: Remove function findServerDetails 28c041c bitbake: fetch2: Simplify logic in verify_checksum() 5375e64 bitbake: bitbake: Set process names to be meaninful 5b234d1 bitbake: utils: Add ability to change the process name 0b06924 bitbake: data.py: avoid double newlines at the end of functions in emit_var() 68600ae bitbake: build.py: minor shell_trap_code() formatting tweaks 423a264 conf/distro/poky.conf: use example.com for connectivity check 6c058ce curl: update 7.46.0 -> 7.47.0 ( CVE-2016-0754 CVE-2016-0755 ) adbe63d openssl: update 1.0.2e -> 1.0.2f ( CVE-2016-0701 CVE-2015-3197 ) 85b6679 autotools.bbclass: don't create subshell to delete configure scripts 2f1bcc1 sstate: Add back packagedata on packagedata dependencies 346b225 libical: update to 2.0.0 b696bb3 kexec: package kdump init script/configuration file correctly 51cebbf connman: fix crash with iptables 1.6 7f54fab autotools_stage.bbclass: remove it 07c4bc1 gdb-common.inc: add PACKAGECONFIG for readline 5869e35 tzdata: update to 2016a c9cc707 tzcode: update to 2016a aff2f58 glibc-testing.inc: drop pruning of PATCH_GET from the testglibc script dfb9d41 gcc-cross.inc: drop pruning of PATCH_GET from the testgcc script 9e7d929 bitbake.conf: stop exporting PATCH_GET = "0" 5410aff sstate: Improve handling of useradd dependencies 9823802 gtk-icon-utils-native: Drop problematic dependency 6c04e0d glib.inc: limit ARM_INSTRUCTION_SET over-rides to armv4/armv5 83476b5 glib-2.0: drop add-march-i486-into-CFLAGS-automatically.patch fab76ae glib-2.0: refresh configure-libtool.patch 593dcd4 systemd: fix systemctl enable script for template units 3c90507 glib: use bash-completion.bbclass d88ed5d kmod: use bash-completion.bbclass 0f3780c git: use bash-completion.bbclass 9d20661 util-linux: use bash-completion.bbclass 0e5b0bf dbus-glib: use bash-completion.bbclass 9cddc0a bash-completion.bbclass: add class ddb786c bash-completion: move in recipe from meta-oe 74e2f68 ffmpeg: add a recipe, and remove the libav recipe eb7e554 lib/oe/patch: Make GitApplyTree._applypatch() support read-only .git/hooks 3ed566e gcc: fix hidden weak symbols by removing buggy gcc patch 51d9ba6 dpkg: fix CVE-2015-0860 f80d16e qemu.bbclass: clarify QEMU_EXTRAOPTIONS 3dca294 pango.inc: drop obsolete dependency on qemu-native a16e9a2f dbus: upgrade to 1.10.6 7081458 buildhistory: fix the check for existence of a git repo d74325e connman: tidy up connman-conf usage 79f4495 connman-conf: convert to systemd oneshot 5c35883 bitbake-whatchanged: avoid double do_ task name prefix 7881c02 netbase: add ipv6 host to /etc/hosts 93fcee6 linux-yocto/4.4: CVEs and preempt-rt update 07c182f linux-yocto/4.1: update to 4.1.16 7003698 gstreamer1.0-plugins-bad: fix compiler warnings with -Os in 1.7.1 6e90145 gstreamer1.0-plugins-good: fix compiler warnings with -Os in 1.7.1 3cd70c8 libsoup-2.4: add glib-2.0-native dependency d5b3b97 libtirpc: remove stray .orig file from Use-netbsd-queue.h.patch 209066c ptest-runner: Add ptest-runner_2.0 recipe. 4953e26 musl: Upgrade to tip of tree 52413d0 libdrm: Refresh patch to match upstream submission 66e215f fts: Correct LIC_FILES_CHKSUM be4c446 pth: Delete df95988 elfutils: Fix build with uclibc/musl 047ad2c grub: Backport fix for largefile detection/use 956be0c oeqa/runtime/rpm: be more verbose if test_rpm_query_nonroot fails 3b5288f libc-package.bbclass: add LOCALE_UTF8_IS_DEFAULT 4f3ef90 ref-manual: Updated the BBMASK variable description. b2b7214 dev-manual: Restored ptest-runner2 to ptest-runner d484e58 ref-manual: Removed obsolete do_deploy statement from "Shared State" 7705b87 toaster-manual: Updated instructions for production setup. 4b4a8a6 ref-manual: Updated the SDK figure. d7481ce ref-manual: Added do_image and do_image_complete tasks d39e9d1 ref-manual: Rewrite of "Image Generation" and devtool text. 1e7735e ref-manual, mega-manual: Updated the Image Creation figure fded4fa ref-manual: Updated configuration of auto.conf in closer look 9f192c8 dev-manual: Updated the devtool help examples. 4bbd39d dev-manual: Grammar fix to kickstart section. 75078dd dev-manual: Updated wic reference section 9ed7881 poky-ent: Grouped Fedora perl packages for niceness 3ac0416 local.conf.sample.extended: Update the info about BBMASK d61d290 bitbake: bitbake-user-manual-ref-variables: Update the help for BBMASK a948f52 bitbake: cooker: Allow BBMASK to contain multiple regular expressions e82101a bitbake: bitbake-user-manual-metadata: Updated 'dir' flag 100d6c2 bitbake: bitbake-user-manual: Updated the example BitBake directory 11be341 documentation.conf: Update the help for BBMASK 3d2c0f5 cmake: update to 3.4.2 4364850 at-spi2-core: update to 2.18.3 c763940 webkitgtk: update to 2.10.5 1e95815 libsecret: update to 0.18.4 9259a43 freetype: update to 2.6.2 5ec6dbb gdk-pixbuf: update to 2.32.3 9c84fbc glib-2.0: update to 2.46.2 bd7278c gtk+3: update to 3.18.6 d609cd5 gtk+: update to 2.24.29 6197313 gtk-icon-utils-native: update to 3.18.6 1556f0e libsoup-2.4: update to 2.52.2 dff038a waffle: update to 1.5.2 89bd19f vala: update to 0.30.0 6c02099 rxvt-unicode: update to 9.22 245af2b btrfs-tools: Disable backtrace on musl fa01d37 bsd-headers: Fix LICENCE and dev package RDEPENDS 05e11a5 gdb: Fix build failures on musl 72c1aa2 ltp: Add rdep on ldd 1d0332d argp-standalone: Fix build when S != B 9f22898 bitbake: fetch2/wget: fallback to GET if HEAD is rejected in checkstatus() d11cc29 busybox: fix stop -vs- start typo in rcS script 9f4b088 mtools: keep v3.9.9 recipe in sync with the v4.0.18 version 2c14be3 gen-lockedsig-cache: fix bad destination path joining 9dea876 distutils-common-base: do not set PACKAGES - use defaults from bitbake.conf 4ead707 insane: remove unused variable assignment 44e9c3b meta: fix capitalisation in Upstream-Status 06b4572 pixman: only check even upstream versions 0f74387 gcr: check only even upstream versions a2848ee avahi: Add patch to fix Win10 mDNS issues 04ef34f xf86-input-libinput: initial add 0.16.0 8a2dfa1 image.bbclass: check INITRAMFS_MAXSIZE 962cc37 systemd: make TEST_DIR configurable 9967746 bind: update to 9.10.3-P3 cac47db uninative: handle UNINATIVE_URL being file:/// 9995814 uninative: fix path to patchelf-uninative 2495dfa scripts/wipe-sysroot: also delete uninative sysroot bb97157 meta/lib: new module for handling GPG signing aadb879 devtool: extract: use the correct datastore for builddir fa801e7 busybox: backport upstream truncate open mode fix 6996b26 gstreamer1.0-plugins-base.inc: drop obsolete dependency on liboil 1c4a8cc e2fsprogs: disable blkid 0de8766 pango.inc: drop obsolete FULL_OPTIMIZATION over-ride 89a7ed5 devtool: add configure-help subcommand 84720c8 devtool: properly handle bb.build.FuncFailed when extracting source c3f0f7b devtool: add: warn if modified recipe found in attic directory e559b66 devtool: build-image: allow specifying packages to add to image e00eac8 devtool: move edit-recipe to a separate module 6720bda image: Don't create tasks with '.' in the name 88ca227 rootfs-postcommands: fix allow-empty-password on read-only rootfs fdac363 kernel: Clean DEPLOYDIR before do_deploy runs c2231de gcc-cross-canadian: Add missing DEPENDS on virtual/${HOST_PREFIX}gcc-crosssdk 5fdedb6 libtirpc: Drop unneeded xz-native dependency 7a98fb7 libuser: Drop unneeded xz-native dependency 72f98ba bitbake: toaster: Update UI test runner c192bd6 Revert "xz: Allow to work with ASSUME_PROVIDED xz-native" 6df607b acpid: upgrade to 2.0.26 7a52f67 build-perf-test.sh: add eSDK testing 5c367ec build-perf-test.sh: more generic timing function 44fee2b python3-pip: Upgrade to 8.0.0 9d95a9d orc: update HOMEPAGE 0c1c93e gstreamer1.0-plugins.inc: drop obsolete ${S}/po/Makefile.in.in workaround be145ad busybox: Add support for busybox-init 716fa93 pulseaudio.inc: drop obsolete dependency on liboil 55bfaa2 sqlite3: update 3.10.0 -> 3.10.2 6bb1dd1 sqlite3.inc: add PACKAGECONFIG to support building against libedit 39f6a9e sqlite3.inc: dynamically link the sqlite3 command-line utility 9b2835e sqlite: formatting improvements, move more stuff into sqlite3.inc 89ed462 sqlite3.inc: drop obsolete config_BUILD_CC, etc exports 6188419 sqlite3.inc: fix readline PACKAGECONFIG 939de8d sqlite3: fix the parallel build fix patch a304b82 weston: Add missing DEPENDS on wayland-native 4a5458f bitbake: fetch2: Don't show checksum warnings if a single checksum was supplied e66599f uninative: Fix conflicts with normal sysroot 4833bee insane: Drop do_stage test 861c916 populate_sdk: Use pixz instead of xz a1c35f3 lib/oe/sdk: Partially revert "sdk.py: fix conflicts of packages" 29c5eda uninative: Add fetch capability b54fa25 pixz: Add 1.0.6 d47572d xz: Allow to work with ASSUME_PROVIDED xz-native 0aeb33f lib/oe/package_manager: prevent testing an undefined variable c1f4e92 recipetool: create: better fix for fetch error handling 10c8d14 recipetool: create: fix extraction of name from URLs ending in / b307e0a recipetool: create: extract SRC_URI from local git repositories 50e40fc devtool / recipetool: support specifying a subdirectory within the fetched source 7e1691d recipetool: create: strip quotes from values extracted from CMakeLists.txt 477fa84 gen-lockedsig-cache: copy correct native sstate into ext SDK 204e4ab toolchain-shar-extract.sh: improve behaviour when xz is not installed 979c8fb classes/populate_sdk*: add dependencies on script files f220abc classes/populate_sdk_ext: drop ext-sdk-prepare.py when installing b435225 devtool: add sdk-install subcommand 44d1a2a devtool: sdk-update: improve SDK update process robustness 3360baa devtool: sdk-update: improve temp directory handling d193531 devtool: build: ensure pkgdata is written out d3a4f72 classes/populate_sdk_ext: add option to bring in pkgdata for world a9dfced linux-libc-headers: Port patches for linux-headers for musl 3cffa6d libsolv: Update to 0.6.17+ d9134cf glib-2.0: Fix locale location on musl 527cd95 syslinux: Set LD to avoid using build host ld 136db70 binutils: Fix gold linking errors due to unresolved R_ARM_MOVW_ABS_NC 704e342 puzzles: Silence warning on arm with clang bee65f9 eglinfo: Fix build on raspberrypi 6296c0f mdadm: Fix build with musl 67eef11 gpgme: Define __error_t_defined on musl 368e838 console-tools: Fix header inclusion when not using glibc 5a8c935 uclibc: Update to 1.0.11 1113d58 unfs3: Depend on libtirpc when building on musl 2ecfc02 guile: Fix build with musl 2df08b8 bsd-headers: Package cdefs.h 29deaf0 musl: Create ld.so as a relative symlink 2d028b3 fts: Fix linker hash-style option 8dd1aa8 dosfstools: Correct cross-compile CFLAGS and fix build with musl 21550d1 nss: Undefine HAVE_SYS_CDEFS_H 92e6a7a apmd: Fix build with musl 5d661c5 pcmciautils: Fix parallel build and include sys/types.h 86795ff kexec-tools: Define _GNU_SOURCE for getting loff_t definition ff8006f systemd: Skip parsing on musl based targets f2856a1 oprofile: fix build with musl 226c450 portmap: Point to tirpc headers and libraries on musl 5512c2f nfs-utils: Disable tcp-wrappers for musl 06d0204 bsd-headers,musl: Add recipe for bsd missing features c2c9202 tcf-agent: Implement canonicalize_file_name() for musl as well f294813 chkconfig: Avoid using caddr_t b2aca09 nspr: Drop older glibc code c0976fc irda-utils: Fix header inclusions a3f9721 iproute2: Fix build with musl 22333f0 libuser: Fix build when secure getenv is not there ea9dc99 iputils: Use member based initialization for mrghdr struct b207868 pax: Fix build with musl 1076499 tar: Fix build for musl based targets e451023 rt-tests: Fix build with non-gcc compilers 68da390 webkitgtk: Fix build with clang/musl da81635 console-tools: Include sys/types.h for u_char and u_short defs 205a07a sysklogd: untangle header inclusion maze 9f40dba babeltrace: Add missing header for MAXNAMLEN define 2458850 libunwind: backtrace APIs are glibc specific abdfacb apt: Add support for building for musl targets ec187d3 puzzles: Zero'ise structs before use 3cd0a8c dpkg: Add musleabi to known architectures aaa8516 xinetd: Fix build with musl 93fb408 watchdog: Fix build with musl 7509ffd gzip: Fix build with musl 1d28cbc directfb: Fix build with musl 7b6b312 net-tools: Link with libintl on uclibc ee1bfdb parted: Fix build with uclibc ed5da2a mtools: Fix build with uclibc 5384f08 gnutls: Link with libuargp on uclibc 493e557 guile: Fix build with uclibc 1636f6f packagegroup-self-hosted.bb: Move glibc-gconv-ibm850 to glibc only case 3e7d7ab util-linux: Fix ptest builds on musl 77825f8 gnutls: Link with libargp on musl and depend on argp-standalone 1a6fe71 argp-standalone: Add recipe a7d780c gdk-pixbuf: Fix latent build issue exposed by musl f2cf5d3 xserver-xorg: Fix build with musl b8de631 libcgroup: Add dependency on fts when building on musl 87c3e98 connman: include config.h for HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR cc55fc7 fts: Add recipe 6e3950b tcp-wrappers: Fix build with musl 68f88a5 ppp: Fix build with musl 4972edd blktrace: Include <sys/types.h for dev_t d629fa1 powertop: Include right headers for timval struct 063dc38 update-alternatives: when warning about alt_link==alt_target, say what PN 6baafa1 python-setuptools: Unify and upgrade python-setuptools and python3-setuptools to 19.4 f0e500e gstreamer1.0-libav: update git recipe to 1.7.1 90cbdfb gstreamer1.0-plugins-ugly: update git recipe to 1.7.1 6752484 gstreamer1.0-plugins-bad: update git recipe to 1.7.1 ad8f201 gstreamer1.0-plugins-good: update git recipe to 1.7.1 2ca9f20 gstreamer1.0-plugins-base: update git recipe to 1.7.1 3c7f2b8 gstreamer1.0: update git recipe to 1.7.1 7c810d0 gstreamer1.0-libav: update 1.6.2 -> 1.6.3 a4b8e9a gstreamer1.0-plugins-ugly: update 1.6.2 -> 1.6.3 8170e06 gstreamer1.0-plugins-bad: update 1.6.2 -> 1.6.3 497ebc9 gstreamer1.0-plugins-good: update 1.6.2 -> 1.6.3 3d87902 gstreamer1.0-plugins-base: update 1.6.2 -> 1.6.3 1e256ee gstreamer1.0: update 1.6.2 -> 1.6.3 dacf2aa gst-plugins-package.inc: drop perl RDEPEND for XXX-apps packages 676275f gstreamer1.0-plugins.inc: don't set base SRC_URI via python 852f098 gstreamer1.0-plugins.inc: drop obsolete lib-link.m4 workaround a32ac26 gstreamer1.0-plugins-bad.inc: update hls dependency gnutls -> nettle 97e0752 gstreamer1.0-plugins-bad.inc: don't set ${S} or apply version specific patch 78e9361 gstreamer1.0-plugins-good.inc: remove duplicate --disable-examples 0edabfd gstreamer1.0-plugins.inc: convert GSTREAMER_1_0_DEBUG to a PACKAGECONFIG 81cd227 gstreamer1.0-plugins.inc: add missing glib-2.0-native dependency a0b1e66 gstreamer1.0.inc: add missing glib-2.0-native dependency e5fb79d gstreamer1.0-rtsp-server.inc: minor formatting improvements 434aa8e gstreamer1.0-omx: minor formatting improvements + update HOMEPAGE 69bcd33 gstreamer1.0-libav: minor formatting improvements + update HOMEPAGE 1d6e61a gstreamer1.0-plugins-ugly: minor formatting improvements c45ce26 gstreamer1.0-plugins-bad: minor formatting improvements c1ea981 gstreamer1.0-plugins-good: minor formatting improvements beb8091 gstreamer1.0-plugins-base: minor formatting improvements 61f30b4 gstreamer1.0-plugins.inc: minor formatting improvements 981145a gstreamer1.0: minor formatting improvements 9f1a943 gst-plugins-package.inc: minor formatting improvements 9e08b69 gst-player: minor formatting improvements a8ed2c8 valgrind: remove unused valgrind-remove-rpath.patch e24123d emptytest: exclude from world builds 6808035 build-appliance-image: bump version to 14.0.0 eb418c3 insane.bbclass: fix package_qa_walk() e185004 insane.bbclass: print all the QA messages 95fa36e weston: upgrade 1.8.0 -> 1.9.0 1bc0c89 wayland: upgrade 1.8.1 -> 1.9.0 03dae8e glib-2.0: fix the ptest 68c5e6d insane.bbclass:buildpaths: ignore ipkg/dpkg's CONTROL dir 258676b sstate: display the sysroot name when cleaning for clarity f35b2e2 bitbake: set default libexecdir to $prefix/libexec 40f0c2d gawk: fix libexecdir/libdir/BPN confusion 2458f41 mesa: update SRC_URI fdb12f9 e2fsprogs: set PV to 1.42.99+1.43+git${SRCPV} 9cf1ec0 valgrind: avoid neon for targets which don't support it b191f58 valgrind: re-enable ARM intdiv and vcvt_fixed_float_VFP tests b0b3412 valgrind: let valgrind determine its own optimisation flags 92abb5f meta/files/toolchain-shar-relocate.sh: Detect different python binaries and select one that exists. 924e2c3 python-nose: upgrade to 1.3.7 02440b5 python-native: Make python-native also RPROVIDE python-unittest-native b7ca05d linux-libc-headers: update to 4.4 f73ee59 libpng12: upgrade to 1.2.56 3a59486 libpng: upgrade to 1.6.21 63a49f8 libtirpc: remove redundant va_list patch 55a8df2 perl: Upgrade to 5.22.1 a840588 oeqa/selftest/signing: use temporary rpmdb 65c1de9 kexec-tools: inherit update-rc.d ba837f1 autotools: don't output the full config.log on configure failure 3e3cb62 bitbake.conf: Remove horrible variable expansion hacks b963efb mesa: add missing wayland-native build dependency 9dd6c81 maintainers.inc: Correct maintainership for several packages bd1a534 bitbake: toaster: run bitbake server with --read option 76a281c bitbake: taskdata: add the ability to access world targets list 11a1f49 bitbake: cache.py: check existence before add to cachedata.rproviders 05c1775 bitbake: taskdata.py: add RuntimeProviders to close matches cf9cb65 bitbake: data_smart: Don't show exceptions for EOL literals b80219e udev: Add 2 patches to support 4.4 kernel 1013385 gcc-runtime.inc: provide libquadmath 60b237f kexec: update supported architecture list 92a0032 strace: update 4.10 -> 4.11 0aa8169 strace: fix ARCH definition in tests/Makefile 2408149 strace: remove need for git-version-gen script 9ca6a5f strace: fix --disable-aio configure option dd90f32 strace: drop unnecessary dependency on acl aadae7b libnewt: Fix linking error due missing symbols 571289d lib/oe/package_manager.py: Remove list() from PkgsList class 6ebda8e lib/oe/rootfs: Use list_pkgs() instead of list() 03075f6 lib/oe/utils: Add function format_pkg_list() c708411 lib/oe/package_manager: Add list_pkgs() to PkgsList class 113e136 python3: Minor upgrade 3.5.0 -> 3.5.1 918149d python-numpy: upgrade to 1.10.4 eae7584 swig: upgrade to 3.0.8 21f7677 python-scons: upgrade to 2.4.1 7721652 python-pycurl: upgrade to 7.21.5 2ef401f python-mako: upgrade to 1.0.3 2a608cc python-setuptools: Upgrade to 19.2 6395bc8 python3-setuptools: upgrade to 19.2 40738af python: Upgrade 2.7.9 > 2.7.11 35855a0 wic: pylinted ksparser module e3b3bcf wic: add help for 'include' command bfaabe5 wic: move parts of canned .wks into common.wks.inc 50a3dc5 wic: implement search of includes 15ea180 wic: refactor get_boot_config d304162 wic: ksparser: add support for include 3fc6aaa wic: do not remove build dir in source plugins 8d34eea wic: use unique partition number 43b4058 wic: move wks parsing code to KickStart._parse 3860640 nss: update to 3.21 ea39ad0 libjpeg-turbo: fix upstream version check (sort of) 48a8a89 libical: fix upstream version check c6f71c5 gnutls: update to 3.4.8 7a80f84 sysstat: fix upstream version check 2aabf9a pbzip2: update to 1.1.13 77aee28 ncurses: fix upstream version check 56e4ff6 libsolv: fix upstream version check d46bc77 e2fsprogs: fix upstream version check 0436e3f build-appliance-image: bump version to 14.0 a206a19 btrfs-tools: update to 4.4 a1790bc bootchart2: update to 0.14.8 68c7113 poky.conf: Delete BB_SIGNATURE_HANDLER settings 0916235 rpm: remove bashisms: [ x == x ] -> [ x = x ] 2dbd61f uclibc: remove a use of immediate expansion and oe_filter_out () 32eeb00 gcc-runtime: switch to removal override syntax to modify CXXFLAGS c886a78 bitbake: tests/codeparser.py: Add filename/lineno flags to test variable f130033 bitbake: toaster: write variables to toaster.conf 1835768 sstate: replace verbose manifest removal with a single count d4c721a libdrm: Upgrade 2.4.65 -> 2.4.66 b5508a8 slang: Add dependency on ncurses 27b2df2 valgrind: make it explicit that valgrind supports armv7a and above 5dc38a3 sign_rpm.bbclass: fix task dependencies 27c39c4 opkg-utils: store alternatives in nonarch_libdir 77fde15 security_flags.inc: remove obsolete workarounds for curl 31ce027 cups: update systemd support a4b48c2 coreutils: Add xattr PACKAGECONFIG 7a0b1c1 oeqa/runtime/parselogs: use -F to search fixed strings for grep b8e11e2 libinput: Upgrade 0.21.0 -> 1.1.4 a9f2e87 postinst-intercepts: always use set -e de0848f maintainers: mark Khem as nominal owner for uclibc 3235f5e formfactor: remove unused beagleboard configuration 6c64700 alsa-state: remove beagleboard configuration f0d47a6 bitbake: Revert "runqueue.py: Ensure one setscene function doesn't mask out another which needs to run" 9e867ef sstate: Add packagedata to list of tasks not to recurse 5e881c1 classes/populate_sdk_ext: fix task dependency regression 2e9f092 image: Handle image types containing '-' correctly 0612ca4 oe-selftest: devtool: fix test_devtool_add_library if python was built first c1492c4 recipetool: create: add a couple more license checksums 2c8c9fe recipetool: create: add basic support for extracting dependencies from cmake 3eb397f recipetool: create: force GL libraries to virtual/* 726dbda recipetool: create: move dependency mapping code to RecipeHandler 788e4bb recipetool: create: fix overzealous mapping of git URLs ece0a2e recipetool: create: support additional autoconf macros from autoconf-archive 903d471 recipetool: create: detect flex/bison dependency a66f4ac recipetool: create: pick up boost macros in configure.ac dbe91a3 recipetool: create: improve extraction of pkg-config / lib deps e7bedb9 wic: rename kickstarter.py -> ksparser.py 3bb6ea6 wic: override ArgumentParser.error d652203 wic: removed unused imports d2090a6 wic: improve processing of parseing errors 1ed97cc wic: catch KickStartError bda77fd wic: add custom exception KickStartError ef211a5 bootimg/image-vm/image-live: Improve image dependencies 0910bc6 image: Always run do_rootfs_wicenv 12e37e7 selftest/buildhistory: Improve test to remove sources of error 05716dd bootimg/image: Enhance bootimg to respect RM_OLD_IMAGE 1c869a9 rootfs-postcommands: Ensure license manifests respect RM_OLD_IMAGE d27491b image: Ensure we don't expand TMPDIR in image commands ce8a206 image: Fix instability of do_image_* checksums fb1654f image: Fix wic environment issues 1da8f52 insane: Start to clean up do_configure_qa code dd28695 insane: Clean up horrible return value processing code 839fb18 e2fsprogs: fix PV b1236dc e2fsprogs: add PACKAGECONFIG for fuse f98e11c bitbake: toastergui: make artifact download more robust 68f3e1e bitbake: toasterui: log OSErrorException metadata events fb94754 bitbake: toasterui: listen for bb.event.MetadataEvent a2f23fa openssh: CVE-2016-1907 320a319 license.bbclass: fix license manifest 4339a82 wic/help.py: document requirements for valid fstab generation d688df8 glib-2.0: add dependency glib-2.0-native back 76e35f1 kernel-yocto.bbclass: move do_kernel_link_vmlinux() into kernel.bbclass d453fa1 kernel-yocto.bbclass: remove do_kernel_link_vmlinux from SRCTREECOVEREDTASKS 2b92f88 libarchive: Add bsdtar and bsdcpio packages e246905 toaster.bbclass: Separate artifact dump from image file dump 4f481bc pax-utils: 1.0.5 -> 1.1.4 f9974f2 sqlite3: upgrade to version 3.10.0 cd7910d connman: upgrade to 1.31 b9169b7 python3: add missing dependency on PN-misc to PN-modules 4b4dea7 useradd-staticids.bbclass: Remove unnecessary spaces 4f2c352 useradd-staticids.bbclass: Read passwd/group files before parsing 4cbdb15 useradd-staticids.bbclass: Simplify the logic for when to add groups b18e40c useradd-staticids.bbclass: Simplify some logic b689aa0 useradd-staticids.bbclass: Make --no-user-group have effect c03ea8d useradd-staticids.bbclass: Treat mutually exclusive options as such af8b005 wic: get rid of 2 getters 2573e28 wic: get rid of set_size and set_source_file setters 5cd222b wic: get rid of get_rootfs and set_rootfs 4d5d5dd wic: get rid of get_timeout getter 26fb2a1 wic: adjust code for new data structure c827238 wic: remove pykickstart code c15ea82 wic: use new kickstart parser f572f44 wic: add kickstart parser module e5e1905 wic: add partition module 180f170 alsa-lib: 1.0.29 -> 1.1.0 a8c25af matchbox-keyboard: export GTK_IM_MODULE_FILE location d75cb1f xf86-input-evdev: upgrade to 2.10.1 2283732 menu-cache: upgrade to 1.0.1 ec7e406 libxi: upgrade to 1.7.6 86f3f25 librsvg: upgrade to 2.40.13 72dd806 libgpg-error: upgrade to 1.21 3c02fe0 libevdev: upgrade to 1.4.6 33e9930 libcroco: upgrade to 0.6.11 5b63c44 gsettings-desktop-schemas: upgrade to 3.19.3 dfff167 gpgme: upgrade to 1.6.0 5abb691 u-boot: Update to 2016.01 release e9280d1 linux-yocto: introduce v4.4 standard/preempt-rt/standard kernel 8c3276e e2fsprogs: 1.42.9 -> 1.43 (master) b248e55 bitbake.conf: rename python-native-runtime 65d0bfc net-tools_1.60-26.bb: Fix do_patch dependency error 99923fc ncurses: 5.9 0 -> 6.0 44d283a autotools.bbclass: use relative path to run configure script b2f1de3 glibc-initial.inc: use relative path to run configure 0fe6e2d bitbake: toaster: increase timeout a5f34bc poky.ent: Added "perl-bignum" package for Fedora afc6cba dev-manual: Updated "Running ptset" section ec047ad yocto-project-qs: Updated the "Next Steps" section 57ddbe8 ref-manual: Removed all variables related to "QMAKE" 7814b33 ref-manual: Updates to cull out qt4 stuff. bf81969 toaster-manual: Updates on how to start Toaster. 798e8b8 bitbake: toastergui: code formatting and clean-up c4b5011 bitbake: toaster tests: fix Django tests for new ToasterTable pages 88a262c bitbake: toastergui: remove unused views and template code 059a274 bitbake: toastergui: fix error and warning counts for builds 4103e0c bitbake: toastergui: make "Apply" button state depend on filter range 6c2d88f bitbake: toastergui: mute label for filter actions with no records f08730a bitbake: toastergui: set default visible and hideable columns 112f374 bitbake: toastergui: serialise decimals correctly e024aab bitbake: toastergui: streamline construction of filter objects fcb20f9 bitbake: toastergui: ensure filter_value updates f9c46f5 bitbake: toastergui: don't hide all elements with .col class eaae82a bitbake: toastergui: convert project builds page to ToasterTable 33b011c bitbake: toastergui: implement "today" and "yesterday" filters f8d383d bitbake: toastergui: implement date range filters for builds b929889 bitbake: toastergui: show recent builds on all builds page 1a4b203 bitbake: toastergui: switch off filter highlights when inactive 809046c bitbake: toastergui: refactor ToasterTable filtering 294579b bitbake: toastergui: convert all builds page to ToasterTable 6c12ca7 bitbake: toastergui: use event delegates for hover help elements ef93dce bitbake: toastergui: switch projects/ view to ToasterTable 417f1d3 bitbake: toaster: check inferred file suffixes against list of known types c02ee05 bitbake: toaster: move image file suffix list to model d29e4cd bitbake: toastergui: use ToasterTable for projects page b1256db openssh: update to 7.1p2 c0e9f2d kernel/kernel-arch: Explicitly mapping between i386/x86_64 and x86 for kernel ARCH f8508de bitbake: Revert "fetch/git: Change to use clearer ssh url syntax for broken servers" b567235 image/image-live: Add back IMAGE_TYPES_MASKED support e914e2a image.bbclass: Handle image base type dependency properly ad32f65 autoconf: add missing perl-module-file-find to RDEPENDS d83dfe6 ca-certificates: update to 20160104 4440560 epiphany: upgrade to 3.18.3 dcf54b4 iso-codes: upgrade to 3.64 d7bee35 lighttpd: upgrade to 1.4.39 08c8923 libwebp: upgrade to 0.5.0 cf0aea7 classes/populate_sdk_ext: avoid unnecessary sstate being brought in ea29bec insane/package: Fix cases where QA errors aren't fatal 2e620a4 classes/populate_sdk_ext: check that extensible SDK prepared correctly 4685c33 classes/buildhistory: save auto.conf and bblayers.conf for extensible SDK 39f6472 classes/populate_sdk_ext: support auto.conf 91877aa classes/populate_sdk_ext.bbclass: handle if local.conf doesn't end with a newline 764c927 util-linux: create util-linux-runuser iff pam in DISTRO_FEATURES 95dce70 rsync: 3.1.1 -> 3.1.2 38aa0fc less: 479 -> 481 4cb2269 iputils: s20121221 -> s20151218 fe47dd7 wget: 1.17 -> 1.17.1 79886e9 git: 2.5.0 -> 2.7.0 d3e16b8 file: 5.24 -> 5.25 3549abc autogen-native: 5.18.5 -> 5.18.6 fb14627 curl: upgrade to 7.46 eaf88d7 xz: upgrade to 5.2.2 8516ff7 sysstat: upgrade to 11.2.0 ae73be1 at: upgrade to 3.18 21efab7 kmod: upgrade to 22 c88efae resolvconf: upgrade to 1.78 6729889 pciutils: upgrade to 3.4.1 edd319c gnupg: 2.1.7 -> 2.1.10 78b58b8 help2man-native: 1.47.1 -> 1.47.3 ac0e0d5 man-pages: 4.02 -> 4.04 1e0cbb9 libgcrypt: 1.6.3 -> 1.6.4 372c23d xmlto: 0.0.26 -> 0.0.28 aaafe33 elfutils: 0.163 -> 0.164 38901a7 dhcp: 4.3.2 -> 4.3.3 ea05e05 image.bbclass: Unconditional includes of populate_sdk_ext fails c08f272 tcmode-default.inc: Fix preferred provider nativesdk-sdk_prefix-libc-initial 5d2f783 dhcp: search libxml2 for bind b69652d tzdata: remove bashism 7c7c249 harfbuzz: update 1.1.2 -> 1.1.3 84623dc libpostproc: duplicate armv7a over-rides for armv7ve 1744198 libav.inc: duplicate armv7a over-rides for armv7ve 102dfa1 gcc-configure-common.inc: duplicate armv7a over-ride for armv7ve b08dfb5 subversion: Upgrade 1.9.2 -> 1.9.3 d6fae0c lttng-ust: Upgrade to 2.7.1 a9cc9b5 lttng-tools: Upgrade to 2.7.1 6b02575 lttng-modules: Upgrade to 2.7.1 a378430 gdb: upgrade to 7.10.1 92cc02f linux-yocto: Update Genericx86* BSPs to 4.1.15 da43a56 bitbake: Revert "fetch2/local.py: avoid using PREMIRROR" 96a34e7 conf/distro/poky-tiny: correctly disable python in opkg-utils 1724ffd bitbake: fetch2/git.py: Add missing "errno" module import. 74fa824 bitbake: bitbake: clean up stamp-base related codes f3f769a local.conf.sample: add qemumips64 43328fe bitbake: runqueue: Fix setscene task dependencies 7b905ca bitbake: toaster: settings Add uid to the toaster cache dir dff7a27 bitbake: toaster: show 'satisfied via' text for reverse deps 89f4932 bitbake: toaster: show 'satisfied via' text for build deps febb898 bitbake: toaster: show list of provides for the recipe 2ff4ccb bitbake: buildinfohelper: add provides info to the db 16a81fb bitbake: toaster: add Provider model 6a28ed3 bitbake: buildinfohelper: use providermap f2b7252 bitbake: cooker: add providermap to dep_tree 7e380d4 bitbake: taskdata: refactor get_providermap 46731da bitbake: main/runqueue: Add --setscene-only option to bitbake 34f8db9 update_font_cache: only scan system font directories e5c011b Add "CVE:" tag to current patches in OE-core f04fb88 scripts/create-pull-request: fix git request-pull syntax 928ceb6 qt4: fix-for-mips-n32.patch: remove it c4a3258 util-linux: create util-linux-runuser package 554ca68 valgrind: include aarch64 in COMPATIBLE_HOST 0ce775a valgrind: update to 3.11.0 21a94f6 valgrind: don't restrict to armv7a b8ebac9 DpkgRootfs: Fix logcheck_error false-positive when use multilib e265fbb package_deb.bbclass: add 'Multi-Arch: foreign' tag to allarch packages 4aeb69d package_manager.py: fixes for multilib deb packaging builds 9ea7428 package_deb.bbclass, cross-canadian.bbclass: DPKG_ARCH mapping function 72e6932 connman.inc: add missing RDEPENDS 675ff42 meta: rename perl-native-runtime 3f4fb39 dbus: support large-file for stat64 0d5e41f freetype: enable out-of-tree builds, and use host zlib 8f2ab19 bluez5: upgrade to 5.37 11f5a42 cogl-1.0: fix may be used uninitialized error 235606f oeqa/runtime/logrotate: fix hardcoded root directory cce6c3e oeqa/runtime/smart: fix hardcoded root directory cd2cf1f boost: update to 1.60.0 afc0255 bitbake.conf: remove 'stamp-base' c8fef7f gcc5: Fix build on NIOS2 eda3947 rpmresolve.c: Fix unfreed pointers that keep DB opened 3c8a451 tzdata: Make /etc/timezone optional b80da02 systemd: arrange for volatile /etc/resolv.conf 5548a76 systemd: add myhostname to nsswitch.conf d6bc841 opkg-utils: add update-alternatives PACKAGECONFIG c3b96ff linux-dtb.inc: use absolute upd-alt paths 3ad08c0 uclibc: Upgrade to 1.0.10 74c3667 populate_sdk_ext: Pass excluded_targets as a list to prune_lockedsigs e306d54 populate_sdk_ext: Change to include siginfo and non sstate task sigs e1a558a populate_sdk: Switch from bzip2 to xz 3341f3f classes: Fix do_rootfs references 0a4e1f9 image: Create separate tasks for rootfs construction fdced52 image: Move pre/post process commands to bbclass cdc0aee image.bbclass: Separate out image generation into a new task, do_image 0269219 populate_sdk_ext: Use new --setscene-only option to bitbake instead of workarounds 1ee0842 sstatesig: Handle special case of gcc-source shared-workdir for printdiff d93c212 bitbake.conf: add virtual/libiconv-native to ASSUME_PROVIDED b2fe2a8 devtool: build: support using BBCLASSEXTENDed names 38ed039 devtool: reset: support recipes with BBCLASSEXTEND 532f429 devtool: refactor code for getting local recipe file ec90168 devtool: add: support adding a native variant 99e3872 devtool: reset: do clean for multiple recipes at once with -a 5ef716c recipetool: create: support creating standalone native/nativesdk recipes 1e503c0 recipetool: create: lower case name when determining from filename 4deed25 devtool: sdk-update: add option to skip preparation step d586a11 devtool: sdk-update: fix error checking c1b7d83 devtool: sdk-update: fix metadata update step efead10 devtool: sdk-update: fix not using updateserver config file option 9348c91 classes/populate_sdk_ext: disable signature warnings d44dcd7 classes/populate_sdk_ext: fix cascading from preparation failure d11051c scripts/oe-publish-sdk: add missing call to git update-server-info fbc2147 libbsd: upgrade to 0.8.1 221d864 bitbake: fetch/git: Change to use clearer ssh url syntax for broken servers 46d62d0 bitbake: knotty: Use non-interactive mode as fallback for dumb terminals bfa7859 bitbake: cooker: fix findFilesMatchingInDir documentation 3d42737 bitbake: cooker: use in instead of count 0e83229 maintainers.inc: remove x11vnc d914c7f meta-yocto: drop qt4 references 0f3ad7c scripts/yocto-layer: Avoids duplication of "meta-" prefix 220ef32 poky-lsb/poky-tiny: update preferred kernel to 4.1 b82e228 yocto-bsp: remove 3.14 and 3.19 bbappends 685daeb conf/local.conf.sample: comment out ASSUME_PROVIDED=libsdl-native 2c5e7e0 image: Really remove lockfiles flag a500e3a boost: ensure boost to remain an empty metapackage b151506 image_types.bbclass: Rebuild when WICVARS change eb4159c gccmakedep: fix buildpaths qa check f54e53c bash: fix buildpaths qa check error 6d111c8 testimage: remove VNC test, x11vnc isn't in oe-core anymore 8bec5c5 x11vnc: remove all references to moved package 8f865e2 x11vnc: move recipe to meta-oe ae1fc96 classes/buildhistory: actually use KiB in extensible SDK sizes files 84f66b5 x11vnc: move recipe to meta-oe c44599d readline: move inputrc into readline f29d642 tune-*: use mcpu instead of mtune for ARM tunes c6a1991 arch-armv7ve: add tune include for armv7ve and use it from cortexa7 and cortexa15 21d61fa cortexa{7,15,17}: add VFPv4 tunes 7f2cb68 feature-arm-vfp.inc: Further simplify with TUNE_CCARGS_MFLOAT e9b2ffc feature-arm-{neon,vfp}.inc: refactor and fix issues 45f726c arch-armv7a.inc: add vfpv4 support also to softfp and big endiand tunes ebe8358 arch-armv7a.inc: Fix PACKAGE_EXTRA_ARCHS for tune-armv7atb-vfpv3, tune-armv7atb-vfpv3d16, cortexa7thf-neon-vfpv4 9280a8e arch-armv5.inc: drop duplicate ARMPKGSFX_DSP and PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp 46d6b0e arch-armv[456]*.inc: improve indentation like armv7a 860663a arm/arch-arm*, tune-cortexa*, tune-thunderx.inc, powerpac/arch-powerpc64.inc: Use normal assignment 8c483a1 arch-armv7a, tune-cortexa*: improve indentation 7498b91 arch-armv7a, tune-cortexa*: improve comment VFP -> HF bb9b581 arch-armv7a: add missing space before ?= 15f8344 tune-cortexr4.inc: fix PACKAGE_EXTRA_ARCHS e2736f7 sanity.bbclass: add more information to error message about TUNE_PKGARCH missing in PACKAGE_ARCHS b68d947 mkefidisk.sh: add boot log on console 62d7c97 mkefidisk.sh: add startup script for automated boot 5aa3b93 oeqa/selftest/recipetool: update for libjpeg-turbo migration ffa7469 libjpeg: Replace libjpeg with libjpeg-turbo 29d273f python3: fix installed-vs-shipped when 64bit + multilib db7cee6 pulseaudio: add PACKAGECONFIG for lirc b900ec8 sstate-sysroot-cruft.sh: Extend the whitelist 20843fa iptables: upgrade to 1.6.0 c2bda6c scripts/oe-selftest: Allow to run tests on random/all MACHINEs 8e1435e selftest: Added testcase decorators for 2 tests 32f332c oe-selftest: New option --list-tests 17d886b oe-selftest: Improved --list-classes when determining test names 4ec2da7 selftest: moved tc test_buildhistory_does_not_change_signatures 02d259c scripts/oe-selftest: Remove extra coverage data added to unittests 30c06a4 expat: CVE-2015-1283 315bdc8 packagegroup-core-x11-sato: enable pcmanfm on mips a3e26f9 wic: rawcopy: Copy source file to build folder d6e0da4 grub2: Fix CVE-2015-8370 bb663b0 systemd: enable compatibility libraries by default 3fea163 systemd: add more compression and importd PACKAGECONFIGs d462b70 gcc-sanitizers: link directly against sysroot libstc++ 3eb6135 openjade: Fix build if not installing libtool .la files 6308c47 valgrind: Define __UCLIBC__ for uclibc based systems 3d19a1e security_flags.inc: disable -fstack-protector-XXX for valgrind 807ed8a meta/conf/layer.conf: bump layer version due to Qt4 removal 4fb3e05 packagegroup-core-lsb: treat qt4 packages same as qt3 packages 8b11ed8 qt4: remove recipes and classes 0baadc8 toaster-manual: Updates to toaster use chapter. 908bbff ref-manual: Updated the list of supported image types. 5d27451 dev-manual: Added the --configfile bootloader option. 7b3b1f9 dev-manual: Added three new wic option descriptions. eeffa64 dev-manual: Added the --overhead-factor wic option description. 2beb19b dev-manual: Added the --extra-space wic option description. 95851df dev-manual: Added wic --notable option description. 88a2794 dev-manual: 8bdc707 sdk-manual: Initial Manual framework f1f7625 bsp-guide: Updated the license statement. 6686a31 dev-manual: Correction to the KVM stuff in the runqemu commands. ccc830d documentation: Prepare for 2.1 builds 7af9314 mega-manual: Added four new figures for GUI example. f8185ff bitbake: ast: Add filename/lineno to mapped functions a178c5a bitbake: main: kill server without queue setup 773700d bitbake: xmplrpc: split connect method 05b4fbc bitbake: uievent: refactor retry loop ebc169c bitbake: uievent: get rid of EventHandler attribute 4e0de6e bitbake: uievent: add error to registerEventHandler return 01419d5 bitbake: cooker: add state.get_name method 763506d bitbake: fetch2/__init__.py: Add support for 7-Zip f5bfc1c bitbake: utils: Remove double compile from better_compile b4141f6 bitbake: fetch2/local.py: avoid using PREMIRROR 1ad3595 bitbake: siggen: Change exception note into a warning 4ba49ac bitbake: data: Drop misleading ExpansionError exception 2c94311 bitbake: cooker: Drop useless parsing exception a16b543 bitbake: data: Pass lineno/filename data from build_dependencies 958f0ff bitbake: codeparser: Add support for correct linenumbers db4376e udev-extraconf: introduce multiple blacklist files for more complex setups a8fb429 uclibc: disable parallel builds 401c632 image: Condense do_rootfs function/flags 0051510 image/rootfs-postcommands: Separate out post rootfs commands to separate class 3428edd image: Remove pointless rootfs lock eb5bb0e packagegroup-core-boot:replace busybox to variable cc7bb6c initramfs-framework_1.0:replace busybox for variable. d9ffa59 core-image-minimal-initramfs: replace base-utils 9349f42 base-utils:flexible dependency for command utilities c44b76a orc: Add missing PACKAGES_DYNAMIC 2cd061a bluez5: include the patch only for 5.36 4c35473 meta-yocto-bsp: remove 3.14 and 3.19 bbappends 6af8981 meta-yocto-bsp: Remove uvesafb (v86d) from generic x86 features 614e9ec qemu: add PACKAGECONFIG for Nettle crypto support 09705a4 oeqa/selftest: support sets in devtool comparisons 4b543f7 packagegroup-core-x11-sato: include pulseaudio-misc 23302ee devtool: use cp instead of shutil.copytree d6e7b5b xorg-lib: allow native building without x11 DISTRO_FEATURES 4cba706 busybox: generalize recipe to work with arbitrary install directories 9d001ae cairo: update 1.14.4 -> 1.14.6 6d561fb libdrm: Upgrade to 2.4.65 0f516f0 image-vm.bbclass: uses IMAGE_LINK_NAME c851096 image-live.bbclass: uses IMAGE_LINK_NAME 907b87d rpm: Generate per distribution and multilib macro files c910789 package_manager.py: add debugging support for rpm scriptlet execution 8dd27ef xinput-calibrator: get screen geometry when calibrating e8d36f4 scripts: hand the TEMPLATECONF local over to setup-builddir 0f4fb26 util-linux: Fix floating dependency upon 'readline' 2cb434a linux-firmware: package Broadcom BCM43340 firmware f70d46f rpcbind: Fix build with libtirpc 1.0.1 866c693 libtirpc: upgrade to 1.0.1 5754b83 gstreamer1.0-libav: upgrade to version 1.6.2 6ac601f gstreamer1.0-rtsp-server: upgrade to version 1.6.2 3ac3d33 gstreamer1.0-plugins-ugly: upgrade to version 1.6.2 823b623 gstreamer1.0-plugins-bad: upgrade to version 1.6.2 6d13f30 gstreamer1.0-plugins-good: upgrade to version 1.6.2 05896a5 gstreamer1.0-plugins-base: upgrade to version 1.6.2 a8eb77b gstreamer1.0: upgrade to version 1.6.2 dd5756b mirrors: add archive.apache.org to Apache mirrors cfbd804 guile: remove redundant replacement of .pc file c2e8079 bind: 9.10.2-P4 -> 9.10.3-P2 7204a0f libsndfile1: enable FLAC/Ogg/Vorbis support 35bd254 buildhistory: improve support for extensible SDK ea0abcd buildhistory: fix not recording SDK information b6d191d scripts/oe-selftest: Add support for selftest log with timestamp ab79287 selftest: Added MACHINE = "qemux86" to tests that use runqemu b09080d ncurses: fixes wrong paths in BINCONFIG 8df88fb xcb: don't build-depend on python-native d7759a5 tcmode-default: Use glibc for nativesdk version even on uclibc and musl a7eadc3 qemu: upgrade to 2.5.0 9988ab3 webkitgtk: update to 2.10.4 cedb027 epiphany: update to 3.18.2 6e27dd8 libwebp: update to 0.4.4 efcf4b4 libsecret: update to 0.18.3 0112274 gnome-desktop3: update to 3.18.2 88a656e gcr: update to 3.18.0 883193a linux-yocto: remove 3.14 and 3.19 recipes 4487e3a kernel-yocto: fix checkout bare-cloned kernel repositories 5161944 linux-yocto/4.1: update to v4.1.15 a462d16 linux-yocto-dev: bump to 4.4-rcX 862b3b3 lttng-modules: fix build issue against kernel 4.4 9563aa8 yaffs2: fix checkpoint functionality cefc24d mobile-broadband-provider-info: update to tagged release 20151214 04aa27c icu: fix upstream version check 2865e5f btrfs-tools: update to 4.3.1 5beb3bc iso-codes: update to 3.63 503c08d kexec-tools: update to 2.0.11 4fa2e4b lighttpd: update to 1.4.38 f7a7796 tiff: update to 4.0.6 2498065 libassuan: update to 2.4.2 f2192fa msmtp: update to 1.6.3 7fc3066 liburcu: update to 0.9.1 10d14bc trace-cmd: update to 2.6 fc774e9 python3-pip: update to 7.1.2 c3330aa pytnon-pexpect: update to 4.0.1 aa90b5d ifupdown: update to 0.8.2 4c98105 gptfdisk: update to 1.0.1 edde9af cryptodev: update to 1.8 9da9308 oe-selftest: devtool: add more explicit check for ls output c2435b1 oe-selftest: add tests for simple devtool add / recipetool create URL case 8916731 recipetool: create: fix error when extracting source to a specified directory fe28c25 recipetool: create: improve autotools support 498e483 devtool: sync: tweak help / messages b272c51 devtool: reset: print message about leaving source tree behind 95a234e devtool: status: list recipe file within workspace if one exists e116739 devtool: modify: default source tree path 110f433 devtool: add: allow specifying URL as positional argument ceaa4bf devtool: add: figure out recipe name from recipetool ee0d5a1 devtool: add: allow source tree to be omitted 0d8751f scripts/lib/argparse_oe: handle intermixing of optional positional arguments 1bd7793 devtool: update-recipe: use correct method to get bbappend filename 2074654 devtool: split out function for naming bbappend 6acbdc9 devtool: add: tweak help text 316b57b devtool: edit-recipe: add new subcommand ebe5f0b recipetool: create: basic extraction of name/version from filename db5f964 recipetool: create: support extracting name and version from build scripts 6a7661b recipetool: create: set up priority system for recipe handlers 38803e3 recipetool: create: detect when specified URL returns a web page e78a039 recipetool: create: prevent attempting to unpack entire DL_DIR e61645b recipetool: create: minor fix for potential issue in python handling ae2141b recipetool: create: fix do_install handling for makefile-only software c2f1742 recipetool: create: avoid traceback on fetch error 470f20b recipetool: create: handle https://....git URLs 8e0a84c scripts: print usage in argparse-using scripts when a command-line error occurs 548d433 directfb.inc: enable bfd linker workaround for all arm targets 2381f4a devtool: sdk-update: fix traceback without update server set 7540550 classes/populate_sdk_ext: error out of install if buildtools install fails ecce3d3 classes/populate_sdk_ext: hide build configuration in devtool build* output fd84d0f classes/base: don't print header if BUILDCFG_HEADER not set a4f496a classes/populate_sdk_ext: use uninative to set NATIVELSBSTRING a6f8a3f toaster.bbclass: fix TypeError when parsing build stats 937b7fd libxcb: Add a workaround for gcc5 bug on mips 86c8b8b flex: update to 2.6.0 dad130b opkg: upgrade to v0.3.1 d2b770c systemd: remove merge conflicts accidently left in ca69643 wic/help.py: document that mountpoint is optional for part command 5628dde pixman: check neon support via TUNE_FEATURES, not the _armv7a over-ride 9a74388 xdg-utils: Do not build the in-script documentation 520b37d gettext: Upgrade 0.19.4 -> 0.19.6 cae0e0f gcc-configure-common.inc: add gcc-runtime ABI fixes for armv7m and armv7r cba8fb3 tune-cortexr4.inc: provide an _armv7r over-ride via MACHINEOVERRIDES fd10723 tune-cortexm3.inc: provide an _armv7m over-ride via MACHINEOVERRIDES b6fe440 feature-arm-thumb.inc: drop 'no-thumb-interwork' tuning feature 1d5a4cf feature-arm-thumb.inc: drop legacy _thumb and _thumb-interwork over-rides ca64c16 feature-arm-thumb.inc: drop ARM -vs- thumb comments 95a79a5 rpm: Fix support for db5 and db6 75cec07 oe-buildenv-internal: fix return code 606c9e7 staging.bbclass: make already-stripped can be skipped 647e0e4 buildhistory-collect-srcrevs: hide empty sections d4b5a1f selftest/buildhistory.py: Test buildhistory does not change sigs 4b83f1f gcc5: Upgrade gcc-5.2 -> gcc-5.3 0381b78 bitbake: event/utils/methodpool: Add a cache of compiled code objects c61c1eb bitbake: BBHandler: Improve IN_PYTHON_EOF handling 2a94194 bitbake.conf: Add filename and lineno to BB_SIGNATURE_EXCLUDE_FLAGS 5f40691 bitbake: toaster: remove 2 confusing parameters 3960b6e bitbake: toaster: move setting of default values b194c0c bitbake: toaster: move startup checks to a better place 064d2c7 bitbake: toaster: remove 2 unused functions c505f24 bitbake: toaster: remove addtoConfiguration function c7e4404 bitbake: toaster: updated header of the toaster script af34920 bitbake: toaster: add MANAGE variable 563b786 bitbake: toaster: remove unused variable aa3cc12 bitbake: toaster: split long lines, add/remove whitespace 8e4acac bitbake: toaster: check if address:port is in use 847b935 bitbake: toaster: implement checksocket command 9f3681d buildstats-summary/toaster: Cope with removal of get_bn() 522dcaa bitbake: knotty: Improve exception error message 01d67bf bitbake: knotty: Fix row/column function return value issue 6c12efa bitbake: buildinfohelper: Update for buildstats layout change 28ea1a1 bitbake: fetch: use orig localpath when calling orig method 5cb6d83 bitbake: utils: Improve traceback from better_exec internal errors 0019edc bitbake: ast/event/utils: Improve tracebacks to include file and line numbers more correctly b14ccb2 bitbake: runqueue: Add support for <task>- syntax 5069ab6 m4: Drop unused/unreferenced patch d7e766b toaster: Update for buildstats changes adfdca4 buildstats: Improve to add getrusage data and corrected IO stats 3187647 buildstats: Separate out the build and task data to allow improvements 38a2553 buildstats: Clean up e.data and bb.data references 7b1e48f buildstats: Drop get_bn/set_pn and just use BUILDNAME 7837162 buildstats: Drop disk data from buildstats 030c033 nativesdk-buildtools-perl-dummy: Bump PR e6f2761 combo-layer: Stop using filterdiff f1f3716 meta: more removals of redunant FILES_${PN}-dbg 5fb8fea clutter-gst-3.0: add dependency on libgudev 54f01ca systemd: Upgrade to 228 63bdadc uclibc: Switch to using uclibc-ng 0b5cddd cdrtools-native: update to 3.01 final c4dfb92 grep: update to 2.22 d8608bc procps: update to 3.3.11 52f6a01 babeltrace: update to 1.3.1 0c705d6 powertop: update to 2.8 516d8c9 nfs-utils: update to 1.3.3 9c39a4f systemtap: update to 2.9 fef0ec6 kbd: update to 2.0.3 8668e17 gmp: update to 6.1.0 86e02d0 docbook-xsl-stylesheets: fix UPSTREAM_CHECK_REGEX f065766 mtd-utils: update to 1.5.2 5d32aeb unfs3: update to r497 4e653b5 python-numpy: update to 1.10.1 90b7212 libxml-simple-perl: update to 2.22 689db13 dmidecode: update to 3.0 d301451 cpio: update to 2.12 2bea006 puzzles: update to current commit 2d04c83 gnutls: update to 3.4.7 cf1eb2b libidn: add native and nativesdk support dd58b3b libpng: Update SRC_URI to use GENTOO_MIRROR b763668 libpng12: Upgrade 1.2.54 -> 1.2.55 91c92fc libical: Upgrade 1.0.0 -> 1.0.1 5c6ff26 libxslt: use proper SRC_URI a444eb5 kexec-tools: added the script kdump be9f7f9 ltp: Upgrade 20150420 -> 20150903 81f1e41 musl: Update to latest 1.1.12 release c529e66 util-linux: Upgrade to 2.27.1 bdbc5ee packagegroup-core-sdk: Disable sanitizers for uclibc 692853d libsolv: add new recipe 8bba7de curl: upgrade to 7.45 2e3a172 libsndfile1: 1.0.25 -> 1.0.26 df18352 wget: Upgrade 1.16.3 -> 1.17 81eb101 unifdef: upgrade to 2.11 19c76ad sstate-sysroot-cruft: Add php, python, lua, fontcache generated files to whitelist f80f8ba oeqa/selftest: Added testcase decorators for 2 testcases a5dd1dd uninative.bbclass: Choose the correct loader based on BUILD_ARCH 388e580 license: Fix BB_TASKDEPDATA references f19e8de coreutils/procps: Revert priority change since coreutils > busybox 455ff32 meta: more removals of redunant FILES_${PN}-dbg e0890b6 meta: Drop now pointless manual -dbg packaging b7766e4 package: Add auto package splitting of .debug files 89f13c7 meta/conf/toasterconf.json: remove SDKMACHINE variable as it no longer used 03d715e bitbake: toaster: tables Set a default order for the software recipes table 4ff0d60 bitbake: toaster: rework checking of Django version 4a78416 bitbake: toaster: monkey patch Queryset c1c8eff bitbake: toaster: removed extra calls of migrate 507aafb bitbake: toaster: work around 'database is locked' error 322b470 bitbake: toaster: fixed format strings 84daa40 bitbake: toaster: use OneToOneField instead of ForeignKey c464f34 bitbake: toaster: Amend regex for MySQL database URLs f001a4a bitbake: toaster: Remove compatible_layerversions() method 0adffdf bitbake: toaster: Check Django version against toaster-requirements.txt 8d058cf bitbake: toaster: Update deprecated manage.py command 717c636 bitbake: toaster: Prevent deprecation warnings for RedirectView 0f602c1 bitbake: toaster: Update API used to make runbuilds methods run in transactions 93f5738 bitbake: toaster: rename get_query_set -> get_queryset 23c4806 bitbake: toaster: Start Django machinery for database access 7a0c45e bitbake: toaster: Create default project with get_or_create* method 9de8dfa bitbake: toaster: Fix references to app paths 535fc9b bitbake: toaster: Remove South migrations 8ca4664 bitbake: toaster: Upgrade to Django 1.8.6 and remove South b322dec bitbake: toasterui: process SetBRBE event 0274b68 bitbake: toaster: trigger SetBRBE event fdb8e74 bitbake: toaster: implement BitbakeController.triggerEvent 5de3800 bitbake: event: Fix subprocess event error traceback failures 0da1d71 nopackages: Add class for recipes which don't generate packages 5003d14 sstate: Ensure populate_lic dependencies are not followed 48aad51 populate_sdk_ext/sign_rpm/sign_package_feed: Add missing getVar parameter 98dcdcb autoconf: Disable macro which causes excessive delays when using dash as sh 28fa304 automake: Remove delays in configure scripts using automake f5e681d site/common-linux: Add some macros to avoid sleeps during configure 93adf46 meta-yocto/conf/toasterconf.json: remove SDKMACHINE variable as it no longer used b3d6872 lttng-tools: Revert wrong enforcement of Python 3.0 use 2c11bdd attr: Add patch to account for use of internal glibc header f1c034b libpam: Fix build with musl 33bab59 openssl: Add musl configuration support c4207ee busybox: Add config for musl 083d9d1 gettext: Delete libintl.h and charset.alias 3a0797f sysvinit: Fix build with musl fd21402 musl: Add recipe 781d34f mtools: Use proper glibc override to add glibc packages to recommendations 1b90d67 squashfs-tools: Define FNM_EXTMATCH if not defined 36a709a mtd-utils: Backport and create patches to support musl 41fd73f gdb: Fix build with musl 1ee97d8 autoconf: Add musl support a2ea58b gcc: Add support for building musl configuration 37c74e2 gstreamer1.0: Split bash completion information into separate package fc32a3b attr: add attr dependency to attr-ptest 9205f0a valgrind: import Debian link_tool patch for MIPS c27bbb4 slang: update upstream URI to (official) jedsoft.org 21e35df subversion: update to 1.9.2 39260c3 json-c: add manual upstream version check 4ff0017 mirrors: replace references to archive.apache.org 1672a18 mobile-broadband-provider-info: update to current commit b699b15 nspr: update to 4.11 dec8d20 python-setuptools: update to 18.7.1 b3535e2 openssl: update to 1.0.2e fce2ee7 dropbear.inc: drop legacy CFLAGS and LD tweaks f87063b dropbear: update 2015.70 -> 2015.71 a520495 texinfo: don't create dependency on INHERIT variable 2b2774b sudo: upgrade to 1.8.15 5eb0e90 linux-firmware: update to latest revision bbe4917 c147782 bluez5: upgrade to 5.36 64c3a09 sudo: remove libdir INSANE_SKIP b407a80 libsdl: expand PACKAGECONFIG and enable native builds 39facf9 buildtools-tarball.bb: 32bit tools need pseudo 32bit library bc26a7d rpm: fix file conflicts for MIPS64 N32 01c0285 rpm: Enable MIPS64 N32 transactions a742586 bash: fix testcase run-coproc/run-execscript/run-test/run-heredoc failed a6bb872 cpio: fix test case of symlink-bad-length 787d82b linux-libc-headers: update default KORG_ARCHIVE_COMPRESSION bz2 -> xz 94c0332 linux-libc-headers.inc: remove '-e MAKEFLAGS=' from EXTRA_OEMAKE c7ad779 gcc-4.9: import patch fixing compilation in thumb mode 1260ded gcc-5.2: import patch fixing compilation in thumb mode b4db53a dropbear: Upgrade 2015.68 -> 2015.70 e0162c1 gcc-cross-initial: make dependency on gnu-config-native and autoconf-native explicit fccb128 weston-init: add a native systemd unit file a1fa8d9 python: Fix cross compiling issue c9fdc1b icu: Upgrade 55.1 -> 56.1 95909bc kernel.bbclass: drop unnecessary 'eval' from kernel_do_configure() ec79a19 insane: in libdir test allow libraries in libexecdir 9c0186f rootfs.py: Change logic to unistall packages 23083e7 oeqa/systemd: get runtest target boot time and log c6330a2 oeqa/systemd: journalctl helper function 220a78b scripts: oe-selftest Added new features. 98d2485 oe-buildenv-internal: preserve existing BB_ENV_EXTRAWHITE 9cab798 toolchain-shar-extract.sh: fix ~ not working in path f27401d nativesdk-buildtools-perl-dummy: properly set PACKAGE_ARCH 5e3e2e0 poky.conf: Bump for 2.1 development 7e8ff7b bitbake: toaster: toasterui Add ParseStarted/ParseProgress events to mask f823601 build-appliance-image: Update to master head revision 992e577 linux-yocto: Update genericx86* BSPs to v4.1.13 b4f6950 cmake: Add nios2 support 27b9f04 boost: adjust hard-coded path after python3 upgrade 639cadd sdk.py / OpkgSdk: remove_packaging_data() after install fd4894f devtool: extract: update SRCTREECOVEREDTASKS for kernel 34f1d81 devtool: extract: copy kernel config to srctree 6650357 lib/oe/package_manager: Introducing PACKAGE_FEED_BASE_PATHS/PACKAGE_FEED_ARCHS d7baeb5 selftest/wic.py: Add test for custom bootloader config 8612f26 directdisk-bootloader-config.wks: Add example for custom bootloader config c59dc3b wic/help.py: Document the new option "configfile" 7033873 wic: Allow to use a custom config for bootloaders f95f729 wic/utils/misc.py: Added function to search for files in canned-wks 9773faa wic: Prepare wicboot to allow custom bootloader config 4515186 package_ipk: allow to specify OPKG_ARGS in local.conf 7cf7156 systemd.bbclass: Allow enabling of parameterised services 551cda0 base: check for existing prefix when expanding names in PACKAGECONFIG c093fd8 linux-yocto/4.1: Fix kernel oops on qemuarm boot cda3905 toolchain-shar-extract.sh: ensure cleaned environment will work for ext SDK f9384b0 bitbake: knotty: Enforce terminal line limit to stop crazy scrolling 7a775a1 initramfs-framework: create directory /var/run 2861399 libpcre: drop UPSTREAM_CHECK_ variables 35c28e3 libpcre: upgrade to 8.38 d50ef65 libpng: update 1.6.19 -> 1.6.20 (CVE-2015-8126) 2b736f2 ghostscript: add dependency for pnglibconf.h 976f0e3 package_regex.inc: split the rest of the entries to their recipes 74bfa62 package_regex.inc: split entries which blacklist specific versions to their recipes 75c6929 package_regex.inc: split sourceforge related entries to their own recipes cefeac2 package_regex.inc: split PyPi related entries to their own recipes aa5df2a package_regex.inc: split Debian-related entries into their own recipes 12ba5cc package_regex.inc: split GITTAGREGEX entries into recipe files 642e92f package_regex.inc: split entries with odd-even versioning into their own recipes 96eac69 package_regex.inc: deprecate the file b0bbea5 gstreamer: really fix the helper install race b822216 neard: fix libdir/libexecdir confusion cbfccc6 glibc: fix libdir/libexecdir path confusion d0577f9 sudo: handle libexecdir != libdir/PN. 6f837cc util-linux: Add ptest dbd02bd libav: Correctly handle prefix="" fda9859 libav: Add PACKAGECONFIG options: avdevice, avfilter, avplay, gpl 7ba85f1 libav: Remove deprecated --disable-avserver 2739ed0 busybox: backport upstream fixes for unzip 6decbbb qt4-4.8.7: fix build for mips n32 f1e8938 gstreamer1.0: Convert tests and valgrind config opts to PACKAGECONFIGs 11b9524 cracklib: fix for base_libdir == libdir d9f73ca libbsd: Upgrade to 0.8.0 10d6dc4 libcroco: Upgrade 0.6.8 -> 0.6.9 79b823a shared-mime-info: Upgrade 1.4 -> 1.5 f6ec8a4 xdg-utils: Upgrade to 1.1.1 a3f63f9 gsettings-desktop-schemas: Upgrade 2.16.1 -> 3.18.1 754f6b6 gnome-common: Upgrade 3.14.0 -> 3.18.0 75aba18 clutter-gtk-1.0: Upgrade 1.6.2 -> 1.6.6 c6a6212 clutter-gst-3.0: Upgrade 3.0.8 -> 3.0.14 2da6cd5 clutter-1.0: Upgrade 1.24.2 148c953 cogl-1.0: Upgrade 1.20.0 -> 1.22.0 f54d4e4 ghostscript: Add NIOS2 support 21ba42b harfbuzz: update 1.1.0 -> 1.1.2 058b91e xvideo-tests: move to the latest release 70d459c scripts/oe-pkgdata-util: sort the packages in list-pkg-files 80e3919 wic: insert local Python paths at front 9d788d7 toolchain-scripts.bbclass: unset command_not_found_handle 82ab99f waf.bbclass: remove unused parameter from get_waf_parallel_make() 68d3dfe toolchain-shar-extract.sh: proper fix for additional env setup scripts 0c5d239 base: Improve handling of switching virtual/x providers 3745479 bitbake: bitbake: rename REGEX, REGEX_URI, and GITTAGREGEX. dd282d4 bitbake: toaster: return back 'New project' button 2a8e970 bitbake: toaster: tests Update UI tests to work with 2.0 changes fe8a0a3 bitbake: toaster: tests Automated build-mode backend tests 0497b57 bitbake: toaster: unset environment variables 8b7a548 bitbake: toaster: get rid of complicated heuristics 556b8b6 bitbake: toaster: remove SDKMACHINE from project variables 4186f5b bitbake: toaster: stop using toaster-pre.conf 361faa3 bitbake: toaster: remove writeConfFile API fcbba5a bitbake: toaster: set varibales on bitbake server 993bc7e bitbake: toaster: implement BitbakeController.getVariable 53e981e bitbake: toaster: buildinfohelper Broaden the toaster created recipe data case 57e5f24 bitbake: toaster: do not create duplicate HelpText objects 4c1e5ec bitbake: toaster: remove usage of BUILD_MODE variable 9902895 bitbake: toaster: do not terminate bb server 58765a8 bitbake: toaster: remove stopBBServer API 95a3cf7 bitbake: toaster: reimplemented startBBServer method 76d53b5 bitbake: toaster: remove _setupBE function 87b2f95 bitbake: toaster: implement 'toaster restart-bitbake' 891484a bitbake: toaster: implement start_bitbake function bf25471 bitbake: toaster: implement stop_bitbake function 7c2b225 bitbake: toaster: update brbe and project attributes de812d0 bitbake: toaster: start 'manage.py runbuilds' in the script 28e8ccf bitbake: toaster: make runbuilds to loop a3871a3 bitbake: toaster: use parent of the build dir 2a96d35 bitbake: toaster: check for toaster configuration later d87a534 bitbake: toaster: remove unused variable dc6a489 bitbake: toaster: change toasterconf.json logic to use TEMPLATECONF, like oe-setup-builddir 5a42c2d bitbake: toaster: run bitbake the same way cac91db bitbake: toaster: set DATABASE_URL in toaster script a464bf2 bitbake: toaster: implement get-dburl command e473151 bitbake: toaster: don't allow to run toaster as a script 4de214f bitbake: lib/bb/utils: improve edit_bblayers_conf() handling of bblayers.conf formatting 0debb11 bitbake: lib/bb/utils: fix error in edit_metadata() when deleting first line 9d19dd9 bitbake: wget.py: parse only <a> tags 71ede7b bitbake: toaster: toastergui tests Add generic test for ToasterTables widget 34b22cf bitbake: toaster: tables Fix invalid field name on NewCustomImagesTable 1c59846 bitbake: toaster: tables Add default_orderby field where it was missing or unset d82c541 bitbake: toaster: CustomImageRecipe add search_allowed_fields to this model bdf6241 bitbake: toaster: machines table Fix missing layers information needed for filter b90a8dc bitbake: toaster: tablejs Make sure click handlers consume click event c075bcf bitbake: toaster: projectpage Make sure build targets are space separated 698c74c libsdl: remove redundant configure_tweak patch 35945fd iw: upgrade to version 4.3 15969ae gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2 e601b38 gstreamer1.0-plugins-bad: fix dependencies for uvch264 PACKAGECONFIG ddf2501 gudev: Add from meta-oe e406fa8 lsb: fix installed-vs-shipped for mips 39ecdce rpm: fix for N32 MIPS64 09b4da6 glibc/0029-fix-getmnt-empty-lines.patch: fix getmntent() 1781a9a init-install-efi: fix script for eMMC installation f808747 init-install-efi: fix script for gummiboot loader 2a55036 linux-firmware: rtl8192cx: Add latest available firmware b60af3b libsdl2: add missing dependency on libxkbcommon for PACKAGECONFIG[wayland] ed31874 libxml2: upgrade to 2.9.3 ecb1c71 libxml2: merge pointless bb/inc split 19a626d openssh: redesign ssh-agent.sh regression test case 81b59e7 gcr: Require x11 DISTRO_FEATURE 934e486 psplash: update to latest git version ccb2a57 sysvinit-inittab: Add wrapper script to verify console exists b7f610d linux-yocto/4.1: Bluetooth:Fix the connection fail of 6lowpan over BT LE d08e761 linux-yocto-rt/4.1: update to -rt15 6aa464c linux-yocto/4.1: fsl-mpc8315e-rdb: Enable EEPROM bd29006 linux-yocto/4.1: update to v4.1.13 5561407 uClibc: enable utmp for shadow compatibility 533fc01 glibc: Backported a patch to fix glibc's bug(18589) 598e372 ncurses: update SRC_URI 51b64ee openssl: enable parallel make 88e45cd busybox: enable resize applet 87de4a1 busybox: disable support for mounting NFS file systems on Linux < 2.6.23 73cc839 busybox: update 1.23.2 -> 1.24.1 f8ac408 busybox: re-order defconfig to align with busybox 1.24.1 3648a37 busybox.inc: remove '-e MAKEFLAGS=' from EXTRA_OEMAKE bf28ea9 busybox.inc: set CC=${CC} via make command line f21dce1 busybox.inc: fix CONFIG_EXTRA_CFLAGS configmangle 6167669 busybox.inc: don't set .config CROSS_COMPILER_PREFIX e1ecccd busybox: move EXTRA_OEMAKE etc into busybox.inc 0e63300 busybox.inc: don't export EXTRA_OEMAKE 3735776 busybox_git: Enable getopt applet b1774f4 harfbuzz: update 1.0.6 -> 1.1.0 31f803a sqlite3: update 3.9.0 -> 3.9.2 7e3474c readline: apply missing upstream patches 99b9d52 readline: prepare for readline6.3 upstream patches e0b6d0c dbus: merge .bb and .inc d99958a pulseaudio: Fix HDMI profile selection 2ba954f initscripts: hide the error in case system is not writeable 4ed84ff nativesdk-buildtools-perl-dummy: fix rebuilding when SDKMACHINE changes b8fdd09 xf86-video-vmware: Add vmwgfx PACKAGECONFIG option dfd5c4d pkgconfig: merge .bb and .inc 61c6887 pkgconfig: upgrade to version 0.29 744e89f ofono: upgrade to version 1.17 996f843 libxml2: remove legacy LDFLAGS += "-ldl" workaround dedabc1 apr: fix LTFLAGS to make it work with ccache 9470956 iproute2: install bridge tool by default 1b8f6a2 lttng-tools: add libgcc to RDEPENDS 22dd6e7 lttng-tools: Upgrade to 2.7 release ef73f21 lttng-tools: Drop unused patch c375976 lttng-ust: Upgrade to 2.7 release f5c1b57 lttng-modules: Upgrade to 2.7 release 8d708a5 libunistring: upgrade to version 0.9.6 f840e59 libtasn1: upgrade to 4.7 012ca02 wpa-supplicant: upgrade to 2.5 872e153 mesa: Make gl libraries RRECOMMEND mesa-megadriver a62fa23 directfb.inc: force bfd linker for armv7a 9b075ca libpng12: update to 1.2.54 6d1eb34 libpng: update to 1.6.19 92a881f orc: update to 0.4.24 2f479b1 libpcap: update to 1.7.4 bd4058f apr-util: add missing RDEPENDS for ptest 1408642 iproute2: update to 4.3.0 e677c25 ruby-native: Depend on openssl-native 9e37812 db: fix race issue for libdb-6.0.la c19036a pango: use ptest-gnome 43b29d9 gst-plugins-bad: improve FILES variables 9fc877f gstreamer1.0-plugins-base: add PACKAGECONFIG for libvisual 7a2bb0d python3: fix building nativesdk-python3 2268a70 python3: Upgrade from 3.4.3 to 3.5 ed8d1be python-git: Add missing dependency dee2a8c guile, mailx, gcc, opensp, gstreamer1.0-libav, libunwind: disable thumb where it fails for qemuarm c0b822f icu: force arm mode f42ef3f rpcbind: Security Advisory - rpcbind - CVE-2015-7236 04034e7 subversion: fix CVE-2015-3187 f91aedf subversion: fix CVE-2015-3184 40cd228 oeqa/sshcontrol: don't source profile d39192a oeqa/runtime/multilib: refactor ELF class extraction cc34104 oe-selftest: Enable code coverage on unit tests 06859de meta/conf/machine: use ' inside quoted values 6be94ec runqemu-internal: Replace wacom-tablet with tablet for usbdevice 0cc3810 recipetool: make plugin registration function name consistent with devtool b381f80 recipetool: add setvar subcommand 1fbd760 lib/oe/recipeutils: refactor patch_recipe_file() to use edit_metadata() 0b850cb devtool: clarify help text 5001f23 devtool: build: enable showing default task in help f79022d devtool: build: use bbappend to set PARALLEL_MAKE 21481bc lib/oe/recipeutils: check in validate_pn() for names instead of filenames 671f41e devtool: ensure we change back to the original dir on error 74505b4 devtool: search: print SUMMARY value 3f46af2 devtool: drop unused plugin_init() functions 176211a devtool: package: use DEPLOY_DIR_<pkgtype> to get deploy directory 0fe7426 devtool: disable creating workspace for extract and search subcommands a360fa7 lib/oe/patch: improve extraction of patch header f79cc4d devtool: upgrade: provide a means to update the source branch b4d4d21 devtool: upgrade: fetch remote repository before checking out new revision 9b7d45c devtool: upgrade: remove erroneous error when not renaming recipe 9a70444 devtool: upgrade: fix updating PV and SRCREV 6a52c73 devtool: upgrade: fix removing other recipes from workspace on reset 44ef78a devtool: include do_patch in SRCTREECOVEREDTASKS 804f5b8 image.py: avoid mkdir race when building multiple images 312862f package_manager.py: define info_dir and status_file when OPKGLIBDIR isn't the default b00f734 image.py: Avoid creating empty .env file in _write_wic_env a88505b lib/oe/terminal: use C locale when determining version 8d784ba toolchain-shar-extract.sh: Ensure it's ran in clean environment 7f3c20f toolchain-shar-extract.sh: do not allow $ in paths for ext SDK 2d21e5d create-pull-request: handle empty ODIR c63b36f scripts/gen-lockedsig-cache: improve output 67af6d6 wic: exec_native_cmd: implement support for pseudo 8ffba25 toolchain-shar-relocate: don't assume last state of env_setup_script is good b8ee7ae sanity: don't enforce DISPLAY for testimage b364183 oeqa/qemurunner: pass nographic to runqemu if DISPLAY isn't set 46755cc base: add automatic dependency on lzip-native for .lz SRC_URI 6ea39c2 base: decode SRC_URI before adding implicit fetch dependencies eded9c2 buildhistory.bbclass: support extending the content of the build history d95df11 license.bbclass: Create image license manifest efdab52 license.bbclass: Add function get_deployed_files cc0d044 license.bbclass: Added function get_deployed_dependencies d45e10e license.bbclass: Added get_boot_dependencies function 8b1e7bc license.bbclass: Split license create manifest 1a210e6 license.bbclass: Write recipeinfo file in license folder 74c7cd5 populate_sdk_ext.bbclass: Be more permissive on the name of the buildtools 5ba6382 populate_sdk_base: Add sysroot symlink check 7fed655 classes/populate_sdk_ext: fail if SDK_ARCH != BUILD_ARCH 2948169 classes/populate_sdk_ext: tweak reporting of workspace exclusion 28a2ea7 classes/populate_sdk_ext: make it clear when SDK installation has failed 124c6aa classes/populate_sdk_ext: tidy up preparation log file writing d348624 boot-directdisk.bbclass: remove HDDIMG before create 03f15e5 sstate: Ensure siginfo and sig files are also touched 615ccae weston: Add PACKAGECONFIG option for colord CMS cdad67c opkg: add cache filename length fixes 2ec77de openjade-native: statically link local libs 29747d4 sysklogd: inhibit updatercd for non-sysvinit add3451 connman: depend on readline 7a557a22 latencytop: obey LDFLAGS 8aeec87 tcf-agent: obey LDFLAGS 9025d2e blkspace: fix ldflags for iowatcher 1732a8a bluez5: enable sysvinit support 160fdd8 sysprof: use packageconfig for the gui 425d020 mc: upgrade to 4.8.15 7386647 packagegroup-core-directfb: Don't depend on pango-modules ac5ed8e xkeyboard-config: Upgrade 2.15 -> 2.16 3a71fab xkbcomp: Upgrade 1.3.0 -> 1.3.1 b7cb308 xinput: Upgrade 1.6.1 -> 1.6.2 05eca73 xf86-video-omap: Upgrade 0.4.3 -> 0.4.4 cfcc5e5 xf86-input-synaptics: Upgrade 1.8.2 -> 1.8.3 4c9256f xf86-input-evdev: Upgrade 2.9.2 -> 2.10.0 96ddcc5 xorg-driver-input: add xorg configuration to FILES a1003f5 xserver-xorg: Upgrade 1.17.2 -> 1.18.0 a336b8a libxcb: Remove unused git-version of the recipe 05ba0db libxcb: Upgrade 1.11 -> 1.11.1 44233d3 pixman: Upgrade 0.32.6 -> 0.32.8 7ab0466 libxi: Upgrade 1.7.4 -> 1.7.5 63feef0 gtk-icon-utils-native: Upgrade 3.16.6 -> 3.18.2 38924d9 package_regex.inc: Add gtk-icon-utils-native 060b482 gtk+3: Upgrade 3.16.6 -> 3.18.2 4f3d2b3 adwaita-icon-theme: Upgrade 3.16.2.1 -> 3.18.0 c8849ac librsvg: Upgrade 2.40.10 -> 2.40.11 81769ca pango: add RPROVIDES for removed packages c9b06f5 pango: Upgrade 1.36.8 -> 1.38.1 ced8d49 gdk-pixbuf: Upgrade 2.30.8 -> 2.32.1 918c773 libsoup-2.4: Upgrade 2.50.0 -> 2.52.1 5bd9305 at-spi2-atk: Upgrade 2.16.0 -> 2.18.1 8eb0c8f atk-spi2-core: Upgrade 2.16.0 -> 2.18.1 78130eb atk: Upgrade 2.16.0 -> 2.18.0 e7141ab glib-networking: Upgrade 2.44.0 -> 2.46.1 fcd7494 glib-2.0: build dependency cleanup 5357764 glib-2.0: Enable more tests while cross-compiling 1e271af glib-2.0: Upgrade 2.44.1 -> 2.46.1 bc1be07 qemu: Backport malloc-trace disabling bca5a7a logrotate: do not move binary logrotate to /usr/bin 0069c0d systemd: drop unneeded $D check in prerm cd1f2b4 systemd: chown hwdb.bin to root:root for do_rootfs 7ca8cd9 systemd: for valgrind, define VALGRIND=1 46fa8ab systemd: make coredump a PACKAGECONFIG ac34784 systemd: add machine-id to conffiles 04937cc systemd: ignore .so filenames in systemd-doc 6821854 systemd: fix Upstream-Status tag 82107b1 mdadm: fix CFLAGS and ptest issues d8adfd2 gcc-4.9: Fix various _FOR_BUILD and related variables 8ae27fa devtool: add sync command 6bfa1dc boost.inc: remove unused parameter from get_boost_parallel_make() 16d7bfd wireless-tools: remove unused files ee923bf gstreamer1.0: fix install race 0ae52c8 gcc-multilib-config: make aarch64 support multilib 8514d21 libxml2: fix CVE-2015-7942 and CVE-2015-8035 e864f71 terminal: Open a new window instead of split on older tmux versions (<1.9) 5056581 flex: fix test-bison-yylval and test-bison-yylloc failed c54540e gdbm 1.8.3: install libgdbm_compat b9f87ed harfbuzz: update to 1.0.6 3f75537 ethtool: bump version to 4.2 9a4da3c openssl: fix ptest issues 9163a5d base-files: stage /etc/skel d60c5ff mktemp: raise the priority to avoid conflicting with coreutils b06eacd libunwind: fix build for qemuarm c4acace gma500_gfx: Avoid inserting gma500_gfx module for certain devices 6c3f680 libsndfile: fix CVE-2014-9756 aa07eb1 python-pycurl: update version to 7.19.5.2 696aa7e rt-tests: upgrade to version 0.96 6ec7dc2 rpcbind: don't use '-w' for starting rpcbind eddd88f libsecret: add dependency on intltool-native 2e8efb1 openssl: use subdir= instead of moving files in do_configure_prepend() 036d2dc openssl: sanity check that the bignum module is present cf366d8 libsdl2: require GLES when building Wayland support 4b38be6 meta: add some missing Upstream-Status tags to patches 42c75cd weston: delete unused patch 521fac6 glibc: fix Upstream-Status tag 44a7bbc linux-firmware: package Broadcom BCM4339 firmware f9d51cd libusb1: fix make install race cb01f6d libusb1: upgrade from 1.0.19 to 1.0.20 b4e6f63 perl: fix spaces in brackets while using CC version a59d019 u-boot: Update to 2015.10 release e67c5b0 bitbake-prserv-tool: check file name 4e2c5e1 recipetool.append: don't choke on a trailing ; in a url a35f79d yocto-bsp: Set SRCREV meta/machine revisions to AUTOREV 9d585b5 yocto-bsp: Set KTYPE to user selected base branch 1542c2a yocto-bsp: Typo on the file extension f674ffa yocto-bsp: Avoid duplication of user patches ({{=machine}}-user-patches.scc) 49a465c package_manager.py: Delete installed_pkgs.txt file ace895d rootfs.py: Stop using installed_pkgs.txt ccb1616 lib/oe/distro_check: don't set empty proxy keys 8137a84 lib/oe/copy_buildsystem: Don't expand BB_TASKDEPDATA a6c68d8 oeqa/selftest/sstatetests: prettier output for allarch test 92328b4 oeqa/selftest/signing: Added new test for signing sstate. fbb03a8 oeqa/selftest/signing: New test for Signing packages in the package feeds. 13a4c38 qemu.bbclass: fix vardeps of QEMU_OPTIONS 51bd011 qemu.bbclass: correct the fsl ppc QEMU_EXTRAOPTIONS 753f31e autotools: Allow recipe-individual configure scripts e281791 allarch: Force TARGET_*FLAGS variable values e28e17e distro/maintainers.inc: include stress package details 76d2e46 image_types: improve wks path specification 70ae7a6 insane.bbclass: Avoid libdir QA check if PACKAGE_DEBUG_SPLIT_STYLE='debug-file-directory' cf0dfdb classes/cpan-base: fix libdir for nativesdk a205c4c bbclass: fix spelling mistakes cf218e5 rootfs_*.bbclass: don't add BUILDNAME to do_rootfs vardepsexclude 7d8616c insane: Don't depend on BB_TASKDEPDATA a9cc27e kernel: fix race condition between compile_kernelmodules and shared_workdir fecb077 classes: Ensure pass setVar/setVarFlag strings, not integers 9167f20 classes/license: fix intermittent license collection warning 43c8867 classes/metadata_scm: fix git errors showing up on non-git repositories 59b27d5 sstate: respect GPG_BIN and GPG_HOME 4415dc5 archiver.bbclass: add bbappend when do_ar_recipe kernel and gcc packages 2f0ff3a archiver.bbclass: fix previous issue regarding work-shared for linux-yocto 0cc4eef waf.bbclass: filter out non -j from PARALLEL_MAKE 95719b0 ptest-gnome: extend EXTRA_OECONF in all builds, not just target 1b25a70 yocto-project-qs, ref-manual, poky.ent: CentOS Package updates 2e649d7 dev-manual: Updated runqemu command options list bd62289 toaster-manual: Removed SDKMACHINE from the json file example. c674cd7 ref-manual: Updated list of supported distros. 33d8cff ref-manual: Updated the GCC 5 migration section for 2.0 d9aabf9 gcc: Drop 4.8 2cb1aee layer.conf: Correct gcc-cross dependency 88f9310 bitbake: toaster: builds pages Fix the download cooker log link d04af8b bitbake: toaster: project pages Link to image recipes table in notifications 70465c7 bitbake: toaster: tests: Re-write some cases to make them more maintainable 536b73f bitbake: data_smart: Only support lowercase OVERRIDES fb01a66 bitbake: fetch2: Remove crazy code in unpack 7db88aa bitbake: parse: Don't try to expand __base_depends/__depends 4c04ce0 bitbake: cache: Don't try to expand __inherit_data 9d8e36a bitbake: toaster: localhostbectrl Pass DATABASE_URL in via the process environment 4677d8b bitbake: toaster: Remove the new-build-input button widget 55f4494 bitbake: toaster: projecttopbar Use the project in context to get num builds e9d4962 bitbake: toaster: projectpage Disable/Enable build input if we have 0 layers 5fa4c73 bitbake: toaster: orm Fix get_number_of_builds to count all apart from IN_PROGRESS c4032f4 bitbake: codeparser: Only load the codeparser cache once e3b66c1 maintainers: mass reassign and cleanup 37ddd3e Revert "local.conf.sample: Disable image-prelink by default" 9cc221d yocto-bsp: Default kernel version to 4.1 on x86_64 7100c42 scripts: runqemu: remove QEMUARCH from help message f47e4ad cairo: update 1.14.2 -> 1.14.4 603b4de cairo.inc: drop obsolete CFLAGS += "-ffat-lto-objects" workaround e8833a6 cmake: update 3.3.1 -> 3.3.2 8b2b068 oe-selftest: add test for bitbake-layers show-recipes 480bbae oeqa/selftest/layerappend: fix test if build directory is not inside COREBASE a301f6e oeqa/selftest/devtool: fix test if build directory is not inside COREBASE fd6bf77 classes/distrodata: split SRC_URI properly before determining type 7cebff6 classes/buildhistory: split package history values only once 10fc534 conf/distro/include: drop old recipes from include files 37cfd80 gitignore: fix overzealous exclusion 1f6599b meta: Fix typos in Upstream-Status labels 7cace4c meta/conf/layer.conf: fix typo ca8e1e5 texinfo-dummy-native: set SUMMARY instead of DESCRIPTION 64cd113 gstreamer1.0-meta-base: set SUMMARY instead of DESCRIPTION 1d42d59 mmc-utils: set SUMMARY instead of DESCRIPTION 6692540 swig: set SUMMARY instead of DESCRIPTION 47ae8eb alsa-plugins: set SUMMARY instead of DESCRIPTION eac5fa9 tzcode-native: set SUMMARY instead of DESCRIPTION 0a30a1f linux-yocto.inc: set SUMMARY instead of DESCRIPTION 19e1a73 python-nose: add SUMMARY b5f58c1 stress: add SUMMARY 5f9392a libunwind: add SUMMARY 1460e01 gptfdisk: add SUMMARY 0821c36 verify-homepage: fix recipe file selection 0c48921 verify-homepage: tidy up output and comments 0e348e7 verify-homepage: get expanded HOMEPAGE value caaca00 verify-homepage: use scriptpath to find bitbake path 649b6bc libaio: don't disable linking to the system libraries 11a9c24 runqemu: don't specify IP when starting a VNC server 3b95964 qemurunner: Remove the timeout in run_serial bbd6d07 libxslt: CVE-2015-7995 a0d2ea9 gstreamer1.0-rtsp-server: upgrade to version 1.6.1 2459ec2 gstreamer1.0-libav: upgrade to version 1.6.1 bce06e7 gstreamer1.0-plugins-ugly: upgrade to version 1.6.1 0ec3c62 gstreamer1.0-plugins-bad: upgrade to version 1.6.1 ba1bc63 gstreamer1.0-plugins-good: upgrade to version 1.6.1 4a55d12 gstreamer1.0-plugins-base: upgrade to version 1.6.1 8360f23 gstreamer1.0: upgrade to version 1.6.1 8800033 prelink: Fix various prelink issues on IA32, ARM, and MIPS. 920fb96 gcc: Update default Power GCC settings to use secure-plt 7b1763a glibc: Fix ld.so / prelink interface for ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA e63e191 qemurunner: Enable timestamps on kernel boot-up a1ca788 openssl: fix mips64 configure support 5a10a6f at: modify sources in do_patch 78e0598 unzip: rename patch to reflect CVE fix b80935a readline: rename patch to contain CVE reference 86d84ff qemu: upgrade to 2.4.0.1 4f0d756 gnome-desktop-testing: fix ptest output format 834de84 default-distrovars: remove less from WHITELIST_GPL-3.0 29bba95 lsof: don't export EXTRA_OEMAKE 3d37768 cmake.bbclass: don't duplicate CMAKE_C_FLAGS in CMAKE_C_FLAGS_RELEASE efc07c2 rm_work.bbclass: Exclude do_rootfs stamp removal 5f9d16b cairo: fix license for cairo-script-interpreter 7328479 openssh: enable X11Forwarding if distro feature x11 is set adeb820 acpid: Upgrade to 2.0.25 781dfd8 libidn: 1.30 -> 1.32 351c69a sqlite: 3.8.10.2 -> 3.9.0 c0fe43c rt-tests: bump to v0.94 cf972f9 gbm: Fix "configure: error: gbm requires --enable-dri" 17733cc xinetd: install xinetd supported services configuration aa1844e combo-layer: introduce ability to exclude component from mass update dcc446f linux-dtb.inc: refactor common code to function get_real_dtb_path_in_kernel af9c7a4 linux-dtb.inc: refactor common code to function normalize_dtb 7eecb81 linux-dtb.inc: explicit test for empty string not needed 54df911 ptest-runner: Allow running of specific tests 54325b2 oeqa/testimage: Add support for test folder export. ecbe135 oeqa/runtime/multilib: run the arch tests on connmand not connman-applet 2d1071e oeqa/runtime: remove dmesg test 42a5378 nfs-utils/statd: fix a segfault 77e3246 qemu: enable user mode for mips64 and mips64el 70600fb gnupg: fix find-version for beta checking ab123ef rpm: define EM_AARCH64 for debugedit af8c136 xserver-xorg: drop empty ${PN}-security-policy package b667067 xserver-xorg: add Xwayland RRECOMMENDS 80f4d71 weston: add a PACKAGECONFIG option for xwayland support 883ab0f systemd: make dbus an optional build time dependency 2c5047f weston: add PACKAGECONFIG to build with systemd-login support 65ffeb5 systemd: add PACKAGECONFIG to build with compatibility libraries 4b29c80 os-release: put double-quotes around variable contents 0f516a5 cpio: fix testcase symlink-bad-lengths [ LIN8-947 ] bceb9cb cpio: Fix symlink-bad-length test for 64-bit [ LIN8-947 ] architectures. 0ff3fc7 gtk+3: fix ALTERNATIVE_PRIORITY conflict with gtk+ eca12a6 coreutils: fix ALTERNATIVE_PRIORITY conflict with procps and mktemp 8de5315 util-linux: fix ALTERNATIVE_PRIORITY conflict with ncurses procps and e2fsprogs 3befb43 console-tools: fix ALTERNATIVE_PRIORITY conflict with kbd 5385ea8 debianutils: fix ALTERNATIVE_PRIORITY conflict with which 3a0bd40 linux-dtb.inc: use same variable name DTB for all elements of KERNEL_DEVICETREE a879312 linux-dtb.inc: remove unneeded 'cd' a23d1ca webkitgtk: Add upstream patch to fix build problem 69836e8 python: don't append -D__SOFTFP__ to TARGET_CC_ARCH for armv6/armv7a 38d1d63 prexport.bbclass: avoid export for native and crosssdk d3da006 recipes: add distro_features_check for some packages 63690f0 scons.bbclass: SCons packages don't require do_configure bffdc65 busybox: Schedule mdev after mountall 13ce7c2 busybox: Fix mdev block device automounting b09f0f2 libarchive: rename patch to reflect CVE 116360f binutils: Fix XLP / Octeon 3 instruction clash fd4f4d2 binutils: Fix octeon3 disassembly patch fc45dea build-appliance-image: Update to jethro head revision e14498b meta-yocto/distro: Updated SANITY_TESTED_DISTROS. 01bba74 meta-yocto/distro: Updated SANITY_TESTED_DISTROS. e1aa897 build-appliance-image: Update to jethro head revision 96cab33 unzip: CVE-2015-7696, CVE-2015-7697 1b2a942 vte: fix DoS from malicious escape sequence (CVE-2012-2738) 370a291 build-appliance-image: Update to jethro head revision 00911c9 linux-yocto_4.1: Update SRCREV for genericx86* c86957a glibc: Allow 64 bit atomics for x86 b02c5f6 local.conf.sample: Disable image-prelink by default 1630dbb ref-manual: Applied a correction to the GCC 5 migration 2.0 section. 37677d6 ref-manual: Updated ADT Installer Extras a79e303 kernel-dev: Added cross-reference to .config information e03b19b ref-manual: Applied review updates to 2.0 migration section. a0791c1 bitbake: toasterui: Create per-build logs 290534d bitbake: build/utils: Add BB_TASK_IONICE_LEVEL support 3ebf761 bitbake: cooker: Ensure BB_CONSOLE remains correct over server resets 5b19b71 bitbake: bb/ui: Use getSetVariable command for BB_CONSOLELOG acc7b4d bitbake: command: Add getSetVariable command c8051c5 bitbake: bitbake-user-manual: Added new description for BB_TASK_IONICE_LEVEL 183290a bitbake: bitbake-user-manual: Added BBTARGETS variable description. 66d3c35 bitbake: toaster: templates Add meaningful title tags 5724b2a perl: Remove errornous extra path-specs for Module::Build based modules 884cf7a perl: Correct path for vendorlib, vendorarch, sitelib and sitearch 2d0c499 perl: fix Perl5 module builds 24cfcc4 runqemu-export-rootfs: update location of unfsd binary da386d3 gtk-icon-cache: pass the native libdir to the intercept 63a0311 connman: Move wired-setup to ${datadir} 1c3c76d useradd-staticids.bbclass: Do not require trailing colons 8a0d8ee toaster manual: Updated the set up and use chapter f19b52c ref-manual: Updates to the 1.8 to 2.0 Migration section. b73da6b toaster-manual: Added new Toaster functionality descriptions. 947e156 ref-manual: Updated the rootfs*.bbclass description. 62e200e bitbake: toaster: orm Fix restrictive LogMessage message length 78f935d bitbake: toaster: Remove all navigation when not in build mode c5f147b bitbake: toaster: Run tests in build mode 1d17109 bitbake: toaster: Hide builds for non-cli projects in analysis mode a580479 bitbake: toaster: Hide top bar buttons in analysis mode 1ec2ec3 bitbake: toaster: Show mode-appropriate landing page bbac0f0 bitbake: toaster: Add BUILD_MODE flag to context 851f0d8 bitbake: toaster: add get_or_create_targets API dcd9cd0 bitbake: fetcher: svn: Add support for checkout to a custom path 4ab7202 bitbake: cooker: preserve pre and post configs fdfdfc8 oeqa/utils/decorators: fix missing keyword arguments on decorators a2d5b7a classes/gtk-icon-cache: don't pass STAGING_LIBDIR_NATIVE to intercepts 5171329 intercepts/update_icon_cache: use STAGING_DIR_NATIVE from environment d18d902 lib/oe/rootfs: tell intercepts where the native sysroot is 9336e1f subversion: add explicit dependency on file-replacement-native for native builds 19358d0 rpm: add explicit dependency on file-replacement-native for native builds 698c3de file: don't replace host file when built natively 83a2bde sanity: check that the host has file installed 43c46e9 bitbake: add file-native to ASSUME_PROVIDED 2925cd9 Revert "runqemu-export-rootfs: update location of unfsd binary" d023d99 populate_sdk_base: Ensure PKGDATA_DIR exists 9b956c4 Perl: Use CC version not $Config(gccversion) 0f75740 wic/utils/oe/misc.py: Preserve PATH when running native tools 273bcb4 mtools_4.0.18.bb: Use create_wrapper() for mcopy 031d464 scripts/oe-pkgdata-util: Fix variable name in error handling d8d4ce7 Add 850 codepage to uninative-tarball c1d5e89 e2fsprogs: backport a patch to fix filetype for hardlink 426a9b7 oeqa/selftest: Added testcase decorators. 835525c runqemu-ifup: Check if the tap interface is set up correctly b13c0be qemurunner: Show the output of runqemu script 9846275 runqemu-internal: Enable support for use virtio devices. 304c956 linux-yocto{, -rt}: Enable support for virtio drivers in qemu machines. eebcbe1 runqemu: Enable support for kvm without vhost in x86 and x86_64 135d094 prserv.bbclass: remove it since it is null c509c78 initscripts/sysfs.sh: Mount devtmpfs on /dev/ if needed 022f8cc image-mklibs.bbclass: update i586 TARGET_ARCH test to i*86 d492a70 base.bbclass: considering multilib when setting LICENSE_EXCLUSION 54b7471 gcc-target.inc: Add support for executable thats may have a suffix 0d69a171 cairo: backport fix for compatibility with OpenGL ES 2.0 64b5e3e mesa-demos: fix deadlock in sharedtex_mt dc8495f bzip2: fix bunzip2 -qt returns 0 for corrupt archives 5bf1430 gnome-desktop: add xkeyboard-config dependency 48443cc gtk+3: Do not try to initialize GL without libgl 59fdbae classes/insane: rename invalid-pkgconfig QA check to invalid-packageconfig 73e1d33 uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm 2e4575d systemd: Fix build with uclibc 40911f4 libtirpc: Fix a bug exposed by uclibc d90d3e8 libpam: Fix build with uclibc 32c8625 coreutils: Do not use host paths in getloadavg.m4 20b7d87 coreutils-6.9: Add missing dependency on virtual/libiconv 8bb6436 uclibc: Fix build with gcc5 e5e8fce libtirpc: Refresh uclibc patches fd66dd1 rpcbind: Fix build with uclibc 369c536 scripts/oe-publish-sdk: create directory before making git repo 8a555fe rootfs.py: add more info to the warning message 787253f package signing: automatically export public keys 579e254 package_manager: fail if signed feeds are enabled for ipk or dpkg 835e755 Add new bbclass for package feed signing 822844d sign_rpm.bbclass: make RPM_GPG_NAME a mandatory setting 48d60fc sign_rpm.bbclass: be more verbose in case of error dbb9af6 package_manager: support GPG_PATH variable b682fca sign_rpm.bbclass: introduce GPG_PATH variable 8ccbc26 apr: remove conflict with ccache 5e42593 linux-yocto: nf_tables: Add nf_tables feature 1c2fdd9 linux-yocto/3.19: fix ARM boot with gcc5.x 3bab714 linux-yocto: skip kernel meta data branches when finding machine branch 1561d0d kern-tools: avoid duplicate .scc file processing 47dcee2 linux-yocto/4.1: drm/i915: Fix the VBT child device parsing for BSW 380f2c6 linux-yocto: axxia configuration updates 505a826 build-appliance-image: Update to jethro head revision 7d30d67 ref-manual: Updated the allarch class description. a8674ae ref-manual: Updated the MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable e7c8c79 ref-manual: Added the 1.8 to 2.0 migration section. cd48ccc dev-manual: Added notes to clarify use of pkg-config dc9e4cb ref-manual: Added correct class name as part of pkgconfig description 5bc8fa6 ref-manual: Fixed typo in 1.6 migration section for BitBake 2fe3809 ref-manual, dev-manual: Applied feedback to edit several classes 359b7fb ref-manual: Added three PACKAGE_FEED_* variable descriptions 2f4e90c toaster-manual: Updated the json file example bits to be current 66653cb ref-manual: Updated the image-swab.bbclass description d66cf20 toaster-manual: New section on PREFERRED_VERSION 4b9daa8 ref-manual: Added many new class descriptions. ae0d508 toaster-manual: Added note for creating virtual environment 98d7d24 toaster-manual: Updates to example toasterconf.json file b263a3e dev-manual: Added CentOS packages to enable runtime tests on QEMU 9abc72c adt-manual: Fixed PMS typo 2e7d650 ref-manual: Updates to clarify Fetcher URL directory parameters 7facee6 toaster-manual: Updated the section for setting up virtual env. 10970a6 dev-manual: Added package requirements for runtime QEMU testing acacf6b ref-manual: Added linuxloader.bbclass reference description. 8fc90a7 Makefile: Updated the make file to not create toaster-manual pdf 0889848 dev-manual: Updated devtool build --help example 1944d28 documentation: Updated files to support 2.0 release. 8d2a6f0 toaster-manual: Removed "dizzy" and replaced with "jethro" 3bff581 ref-manual: Added descriptions for 5 new variables and 2 tasks. a87268e dev-manual: Updated the Marking Packages information. 1c7f462 ref-manual: Added oe-seltest package requirements sections. 3d82046 adt-manual: Updated the build toolchain section with more detail. 54b4aff adt-manual: Updated some hard-coded distro values 196210f dev-manual: Updated the multilib example. 3930f04 ref-manual: Updated the EXCLUDE_FROM_SHLIBS description 0d1c86b ref-manual: Updated EXCLUDE_FROM_SHLIBS description. eea7521 ref-manual: Updated distrodata.bbclass example 2eaf843f ref-manual: Added new description for PACKAGE_EXCLUDE_COMPLEMENTARY 97298fb dev-manual: Fixed typo in path for wic plugins 05d8101 ref-manual: Added new EXCLUDE_FROM_SHLIB variable 316d432 ref-manual: Added new variable description for SKIP_FILEDEPS a1b25e6 yocto-project-qs, ref-manual: Replaced "yum" with "dnf" d284fba ref-manual: Added cross-reference phrase to some variables 5a226f7 dev-manual: Changed multilib example 6ca549f dev-manual: Added note about building out Autotools projects 92b26ad archiver.bbclass: Fixes and improves archiver class for kernel and gcc packages 2d00803 oeqa/selftest: improve config writing and cleanup 1881564 oeqa/selftest/wic: remove numbers from test names 2ac34d2 oeqa/selftest: clean up selftest.inc in teardown a66ed33 oeqa/selftest/wic: fix cleaning b67b1a4 oeqa/selftest/wic: corrected testcase decorator for test18_iso_image e191120 oeqa/selftest: verify that devtool can use plugins in other layers b8a9728 oeqa/selftest/buildoptions: Use the correct script for cleaning the workdir 94decbc oeqa/selftest/bbtests: Updated bitbake TCs 322c324 oeqa/selftest/bbtests: clean up local DL_DIR/SSTATE_DIR safely cf311a7 oeqa/utils/ftools: From functions that expect data, check if None 900639c oeqa/utils/ftools: Ignore the exception if file does not exist 2e91cbd oeqa/selftest/manifest.py: Test support for manifests c9bef34 useradd_base.bbclass: Do not warn without a reason accb59e qemu: disable Valgrind ac1bc7d i2c-tools: fix inverted RDEPENDS 35c043b rpm: remove spurious build dependencies 41cbfd7 gcc-5.2: Fix various _FOR_BUILD and related variables a27da70 sudo: fix file permission for /etc/pam.d/sudo abeaed9 openssh: fix file permission for /etc/pam.d/sshd 96a5cfd sanity.bbclass: expand warning when chmod fails 409e6e0 populate SDK: prepare calling of bb.utils for exceptions db55d31 devtool: handle virtual providers 8578bc1 libc-package: Fix localedef multilib dependency issues 0942aff toolchain-shar-extract.sh: print full-length title underline 9630fc1 classes/populate_sdk_ext: detect and warn if running in OE environment 254ff38 classes/populate_sdk_ext: add note to env setup script 9a81ba7 classes/populate_sdk_ext: prevent image construction from executing on install ec5ec35 classes/populate_sdk_ext: consistent indentation b8f7042 oeqa/runtime: Fix setUp and tearDown methods 3327401 oetest: Add tearDownLocal class 3b7853a test-empty-image: rename from core-image-empty 5febb1d scripts/gen-lockedsig-cache: fix race with temp file creation 3b5d6ff image-live: make SYSLINUX_ROOT changable in image recipes 5009966 toolchain-shar-extract.sh: provide proper path for env_setup_script ae7703f classes/base: provide hints on PACKAGECONFIG error 5a02ec2 devtool: extract: fix error handling 3aac110 metadata_scm: rewrite git hash logic 59668f2 linux-yocto-custom: fix typo in Upstream-Status tag c52dcb0 grub-efi, gummiboot: Emit correct path in startup.nsh f9d29ab coreutils: fix for native and nativesdk b1a7405 gcc-4.x: fix wrong warning when using the universal zero initializer {0} 402723e tzdata: reinstate changes reverted in 2014c upgrade 3770461 build-compare: drop PATCHTOOL setting 4846260 common-licenses: use correct GFDL-1.1 license text a9053ac bitbake: toaster: Add tests for error message display on the build dashboard 2517987 bitbake: toaster: Modify "New build" button behaviour for cli builds project 56d4c84 bitbake: toaster: Clean up template code d96cedf bitbake: toaster: More linting of tests 7c8877e bitbake: toaster: Show tooltip next to cli builds project name in all builds 7670234 bitbake: toaster: Hide tabs and add info popups for command line builds da4c614 bitbake: toaster: Make the builds view the project page for "command line builds" ef6fc2b bitbake: toaster: Replace "Run again" button with help text for cli builds 7467b68 bitbake: toaster: Exclude "command line builds" project from projects typeahead b5624c7 bitbake: toaster: Show 'not applicable' for default project machine and release 3c4c984 bitbake: toaster: Reorganise and lint tests 3ba43f2 bitbake: fetch2/hg: Include missing errno import 6fa3fec bitbake: cooker: normalize build targets 5effe8f bitbake: toaster: Allow any text input to machine configuration variable 320d05e bitbake: toaster: exit or return depending on the mode 2e2e40c bitbake: toaster: set TOASTER_MANAGED variable a73895e bitbake: toaster: get rid of SRCFILE 779539c bitbake: toaster: use path to the script to guess config path eb8b2b9 bitbake: toaster: Guard against builds with no targets 65e8bde bitbake: toaster: Remove Toaster exceptions section of build dashboard 93f0b61 bitbake: toaster: Record critical errors 069a611 bitbake: toaster: Test that exception isn't thrown by project page 026e981 bitbake: toaster: Check whether buildrequest exists before using it 1feeb8e bitbake: toaster: Always run bldcontrol migrations ae82d77 bitbake: toaster: buildinfohelper Detect command line builds 596c219 bitbake: toaster: Disable add layer button when input is empty 24e5a17 bitbake: toaster: Have 'Version' next to recipe name c895838 bitbake: toaster: Improve directory structure layout 2f52ef4 bitbake: toaster: importlayer Update property names for importlayer api calls 556c0ea lib/oe/image.py: Fix dependency handling for compressed types d302c98 bitbake: toaster: Fix missing tooltips from layers on project configuration page 7e5464b bitbake: toaster: Fix broken test case 2e375e6 bitbake: toaster: exclude recipes with empty names fa3e82d bitbake: toaster: delete recipe if it can't be saved 82675fc bitbake: toaster: Remove project name from latest project builds 6aeaca1 bitbake: toaster: test get_alldeps API 0fb6be0 bitbake: toaster: fix orm tests dea679a bitbake: toaster: fix NameError 6e0c0fd bitbake: toaster: use get_alldeps in layerdetails renderer bd2ec77 bitbake: toaster: implement API to get full list of deps 05594f8 bash: Disable custom memory allocator adbbab7 icu: fix install race b1d0aab webkitgtk, gcr, libsecret: force ARM mode 67d6500 gtk+3: gtk3-demo needs libgl f385ed1 lib/oe/distro_check: Remove '_proxy' on dict values used by urllib.open 4bf7b7d cups: fix non-deterministic xinetd behaviour 32dbf71 cronie: clean up bugtracker info 6396d6a irda-utils: clean up bugtracker info 8d5878b screen: fix CVE-2015-6806 acdc2db kbd: provide a workaround for build failures 67959b9 machine/qemu: Fix OpenGL/GLX support with xserver-xorg. fedff4f busybox.inc: remove redundant @DATADIR@ replacement 78b9d2d insane.bbclass: remove misleading path in warning 8995a30 iptables: only check libnetfilter-conntrack when libnfnetlink is enabled e35c404 bitbake: toaster: Don't descend into directories for cached_layers d9528d9 toasterconf: update meta-yocto to jethro and drop dizzy 2d6701f bitbake: toaster: Update JS unit tests ab896df bitbake: toaster: Fix stale layer state buttons 41a5f82 bitbake: toaster: tables Add the recipe filter back into the Recipe table 2bebcd4 bitbake: toaster: Fix typo in returning pk list of layer versions in current project d6d680d bitbake: toaster: layerdetails update build recipe button class name 7794b57 bitbake: toaster: Hide "Download build log" button if log doesn't exist 8c69539 bitbake: toaster: fix naming for clone directory 41286f4 bitbake: toaster: buildinfohelper Skip packages we have no build info about 97d0006 bitbake: toaster: buildinfohelper associate build data with built_recipe 0dcc963 bitbake: toaster: remove bashisms so script works in dash as well 8068aa3 bitbake: toaster: get rid of interactivity in bldcontrol 7d7823e bitbake: toaster: check for configuration file and exit if not found 315989c bitbake: toaster: remove layer and build dir interactive questions 489d5ff bitbake: toaster: removed superuser question from startup c7d1dab bitbake: toaster: orm Machines filter don't pass self in as parameter dd957fe bitbake: toaster: Rationalise mimetype guessing to fix artifact downloads ce9011a bitbake: toaster: Use Python's mimetypes module 466bbec bitbake: toaster: display warnings for bad "IMAGE_FSTYPES" values 8b7d846 bitbake: toaster: Set default columns in recipes tables 9daf6ef bitbake: toaster: Comment out broken sorting and filters b661f53 bitbake: toaster: Don't HTTP cache ToasterTable responses a3742a0 bitbake: toaster: Don't add new history entries when table data loads fa68ae0 bitbake: toaster: use meaningful logging levels bd8b27b bitbake: toaster: ignore ReachableStamps event ceeb52a linux-yocto: Update SRCREV for genericx86* BSPs 7766265 os-release: fix do_compile() when RPM signing is enabled 9a02df0 readline: actually apply readline63-003 (aka CVE-2014-2524) a856580 rpm: fix return without value in patch 49bf4b1 Revert "qemu-native: Enable temporary debug info as default." ad8c021 linux-yocto/4.1: drm/i915 backports 48e5579 oeqa/utils/qemurunner: Add support for Unicode from qemu 1f99452 report-error.bbclass: Support Unicode reports b25af33 udev: add PROVIDES = "libgudev" a0d9d2d lib/oe/image.py: Add image generation for companion debug filesystem 8ee9a93 package_manager.py: sort output of OpkgPkgsList().list 37c54af ThunderX: Add initial tune file a0e7311 tzdata: update to 2015g 931dda4 tzcode: update to 2015g 8cacd22 recipetool: create: fix change in path structure if --extract-to path exists e961688 devtool: update-recipe: avoid updating patches that have not changed 07fc8c2 oe-selftest: wic: fix LocalSetup eac61f3 build-appliance-image: Update to jethro head revision c9bdcf5 oeqa/runexported: Replaced optionparser with argparse. 038ae3f systemd: remove glib-2.0 build dependency 0516cd2 webkitgtk: Add some PACKAGECONFIG options. dff30d2 fontcache: allow to pass extra parameters and environment to fc-cache d5ce2f5 webkitgtk: Use ON/OFF for cmake switches. ebd5035 testimage: Added IO commands to dumps b73a35e distro-alias.inc: Updated for jethro 2.0 release b7f9cde build-appliance-image: Update to jethro head revision cf8ad8d toaster: Special case the openembedded-core layer to avoid duplicates 20b888b build-appliance-image: Update to jethro head revision 8fb5a5a bitbake: bitbake/lib: Update version to 1.28.0 0eca7ff build-appliance-image: Update to jethro head revision 34fede6 poky.conf: Bump version for 2.0 jethro release a7329e1 Revert "oeqa/runtime: Added one runtime testcase in connman." c2e78e3 qemu: Drop BROKEN usage e788961 smart:cache.py: getPackages() matches name + arch f3e57ba devtool: modify: use correct local files directory name 7cb0765 xuser-account: Take over xuser specific D-Bus policy cdaa8fd bluez5: Use upstream D-Bus policy e4a4961 ptest: run-ptest not required to run do_install_ptest 12cd705 distrodata: Take account proxies on distrodata tasks f047ee8 devtool: update-recipe: enable var history tracking 979de77 lib/oeqa/selftest/yoctobsp: Basic tests for yocto-bsp script e20d8b8 scripts/lib/bsp/engine: Indent the karch properties when stored into a file f2933cc yocto-bsp: Update templates to 4.1 kernel 8283a57 scrips/lib/bsp/engine: List properties to stdout when output parameter is omitted b355a5e scripts/yocto-bsp: Exit successfully when asking for help ad9ee3d meta-yocto-bsp: bump to linux-yocto 4.1 for the non-x86 BSPs cdc57f6 bitbake: siggen: Make it clear why nostamp tasks signatures don't match 1630f0a bitbake: runqueue: Add handling of virtual/xxx provider mappings 0b96e6f bitbake: taskdata: Add a function to return the virtual/ mapping data 40fae32 bitbake: cookerdata: Rename BBPKGS -> BBTARGETS 1e467b3 bitbake: bitbake-worker: Guard against multiprocessing corruption of event data e5b9c2a oeqa/selftest/wic: Use SetupLocal instead of Setup 4266cc9 kernel.bbclass: fix the bug of checking the existing sections in do_strip() ec1146e linux-yocto_{3.14,3.19,4.1}: qemuarm enable virtio drivers 2ea0e4c runqemu-internal: qemuarm enable usage of virtio devices a23239a gnome-doc-utils: xslt - don't install Makefiles f671163 apr-utils: cleanup buildpaths for target stuffs f68d739 apr: cleanup buildpaths from target stuffs a7ac905 curl: cleanup buildpaths from curl-config 833bfd3 dropbear: fix key generation when systemd is in use and rootfs is readonly d592abd image.bbclass: tweak the key location for dropbear when rootfs is readonly 299806d openssh: fix sshd key generation when systemd is in use and rootfs is readonly 006497e image.bbclass: when building a readonly rootfs, tweak ssh settings regardless of init system in use f1e2515 lttng-tools: Drop KERNELDIR reference 381a7bd meta-ide-support: No need to mark as nostamp anymore ab9d2bb adt-installer: No need to mark as nostamp d8ab563 distutils3: Avoid MACHINE specific checksums a0d6322 gstreamer-omx: Improve variable expansion of ${S} c71bd57 bitbake.conf: Exclude sstate-outputdirs flag from checksums f02cbc6 deploy: Mark deploy tasks as MACHINE specific a0435bf layer.conf: Add SIGGEN exclusion for oprofile kernel dependency f4a8917 layer.conf: Improve siggen exclusion to handle virtual/libc 6fe4fd2 multilib_global: Add handling of SIGGEN variables for multilib 2c19695 lib/oe/sstate: Add tasks_resolved handler for virtual/xxx mappings ff17f14 oeqa/selftest/sstatetests: Add test that MACHINE doesn't change target sigs d822764 meta-selftest: Add qemux86copy machine 6cfc7c0 oeqa/selftest/sstatetests: Add check for same sigs for SDKMACHINE 5dbd061 multilib.conf: Ensure MACHINE doesn't change target sigs 71fdb36 gcc-multilib-config: Ensure SDK_ARCH doesn't change target sigs c9ea0c6 lib/oe/package_manager: Handle empty package list in opkg case ec504e0 oeqa/utils/decorators: Append the testname without the full path 8fe5b48 kern-tools: fix multi-layer patch application b054506 linux-yocto/4.1: braswell bug fixes c6c093b linux-yocto/4.1: update to 4.1.8 -stable a502a2d linux-yocto-rt/4.1: integrate axxia BSP 38f0ffa meta: fix build with gettext 0.16.1 56c0fdf hostap-utils: Use C99 stddefs in defining local typedefs 34707c2 linux-yocto-custom: Update for newer kernel df09a6f oetest: Change logic of a failed test 7a6cb2e cwautomacros: cleanup buildpath in autogen.sh 1222eb1 oeqa/runexported: Fix a problem with ssh_target_log existing in folder. cb93670 qemurunner: Sanitize output from qemu and qemu pid ba0f6ca oeqa/testimage: Add ability to run single test from suite. 3e40688 recipes-extended: remove duplicate recipe and .wks 6f2047a runqemu-internal: Make sure two serial ports always exist 385a5e8 cross-canadian.bbclass: big-endian ARM is also gnueabi. 7c96fcf openssl: fix ptest failures d9ce095 python-async: inherit setuptools adb6987 util-linux: add runuser PAM config files to fix runuser error 9549f57 oeqa/decorators: Fixed a problem with decorator logs link. 790b6c7 oeqa/selftest/wic: Added testcase decorator to all testcases + fixed minor typos. ffd4bd6 toolchain-shar-extract: Correct environment-setup script names for multilib 249b810 lsb: add lsbinitscripts and util-linux rdepends c7548b5 systemd: add PACKAGECONFIG for qrencode 3b04553 opkg: create opkg.lock in /run instead of /var/run c275627 toolchain-shar-relocate.sh: make it faster 434665d populate_sdk_base: Simplify postprocess commands 5bfcd13 classes/meta: Add DISTRO_FEATURES check for gtk+/gtk3+ 5b629a9 devtool: modify: make bitbake use local files from srctree e9bae50 devtool: better support for local source files a74fa38 devtool: file mover function that creates target dir 109c09b devtool: update_recipe: refactor patch generation c976028 devtool: update-recipe: add new patches in correct order 2f8440b oe-selftest: devtool: add method for checking repo status 0a9f59e oe-selftest: devtool: add method for checking srctree repo afb0142 oe-selftest: devtool: add setup() method 31c3078 oe.patch.GitApplyTree: add paths argument to extractPatches d5e2dd4 recipeutils: implement get_recipe_local_files() 4bc3f09 bitbake: toaster: move clones into subdirectory 9e1516d bitbake: toaster: make clone directory name unique 552fd83 bitbake: toaster: fix reimporting module 55dc927 bitbake: toaster: fix bug in resetting git repository 6939340 bitbake: toaster: use git reset --hard instead of rebase 3d73dfa bitbake: toaster: don't use --single-branch when cloning 226e7da bitbake: utils: only add layer once in edit_bblayers_conf() d48b7ef bitbake: toaster: display most recent builds for projects f902dc6 bitbake: toaster: orm remove the complicated querying on the ORM fe29297 bitbake: Revert "bitbake: toaster: don't re-create Target objects" e6d967d bitbake: toaster: buildinfohelper Create a copy of the built layer and recipe 17fe16b bitbake: toaster: tables show all recipes in the layerdetails even duplicates aed6d2e bitbake: toaster: Prioroitise the layer more generic vcs reference over the sha 922503f bitbake: toaster: Create a relationship between build information and toaster layers 0bc0a44 bitbake: toaster: Special case the openembedded-core layer to avoid duplicates e68f63a bitbake: toaster: Add test cases for new Image customisation features d98c771 bitbake: toaster: Add Image customisation frontend feature 37948cc bitbake: toaster: Add ToasterTables for Image customisation feature a3ff4b2 bitbake: toaster: Add new ReST API for Image Customisation feature 28153ac bitbake: toaster: Fix indentation of jsunittests view 60f3ddb bitbake: toaster: implement decorator for REST responses a7f43bd bitbake: toaster: add toggle for enabling image customisation feeature 3ff6401 bitbake: toaster: Add CustomImageRecipe model 8948d04 bitbake: toaster: ToasterTable remove unused class definition c1157cf bitbake: toaster: add nocache option to the ToasterTable widget 1cafc39 bitbake: toaster: widgets ToasterTable Add more info to search field exception c71bbad bitbake: toaster: widgets ToasterTable add logger to notify when cache hit 934f8d7 bitbake: toaster: create custom layer and recipes for Image customisation 340b398 bitbake: toaster: tables Move the title and name into the widget e1851fe bitbake: toaster: make a workaround for old style index f78f902 bitbake: prserv/serv.py: Better messaging when starting/stopping the server with port=0 134b267 bitbake: prserv/serv: Close the DB connection out of class destructor caf422c multilib: Add TARGET_VENDOR to saved variables list 3af9f06 oeqa/sdk/gcc: Fix makefile test 00f0d2b gdk-pixbuf: Only apply native cleaning in normal task, not setscene 452237b runqemu-export-rootfs: update location of unfsd binary aa1253f runqemu: don't complain about conflicting machines if they are equal 994915b oeqa/testimage: Remove absolute path to oeqa from json f8da3b6 iproute2: fix the configure process 218d9f4 gcc-multilib-config: Expand ccargs variable be13cdb Empty image: core-image-empty recipe 2bbec56 Empty image:rootfs.py:handle empty PACKAGE_INSTALL 4562f3f gstreamer1.0-plugins-bad: change glimagesink rank to marginal 677a463 linux-yocto/4.1: rt update to 4.1.x-rt8 cdd9c4c linux-yocto/4.1: common-pc-drivers: add CONFIG_PATA_SCH 9028d93 ltp: replace 'inline' with 'static inline' for gcc 5.x 5942dfe waffle: Fix build with musl cfa3ed0 cups: fix pam configuration file's permission 8227d49 busybox: Use CC instead of bare LD to be the Linker a3c4817 busybox: Use UTMPX instead of legacy UTMP ea031f0 distrodata: handle recipes with empty or absent SRC_URI in checkpkg() 5cc44fe recipeutils.py: don't hardcode the upstream version as 1.0 when SRC_URI is empty or absent 320500e oeqa/parselogs: Updated log parser whitelist. adeba9a connman: Don't use a blanket "allow" D-Bus policy 907c8a7 connman: Depend on xuser-account unconditionally 1b146c5 byacc: add missing patch header 5fd3089 sstate: run recipe-provided hooks outside of ${B} 3fb464f oeqa/decorators: Add timestamp to decorator logs. 5f371e5 image types: add hdddirect ca52ca0 packagegroup-core-standalone-sdk-target: ensure libatomic is in SDK 6d68ba9 glibc/mmc-utils: Rename 'BRANCH' variable to 'SRCBRANCH' for clearness c5aab3f sanity.bbclass: show warning when chmod fails 5702a19 systemd: apply persistent storage udev rules also for /dev/hd* cb24cbb rpm: search for gpg if gpg2 is not found 217cccd openssl: Add mapping for nios2 3408d0d qemurunner: Handle qemu start failure correctly 79e3418 gcc-runtime: Add multilib C++ header mapping 09af262 oeqa/oetest: Fix SDK command execution 5d4f39f mulitlib: Ensure SDKTARGETSYSROOT is set correctly c356961 gtk-icon-cache/pixbufcache: don't set GDK_PIXBUF_MODULEDIR 4a36842 librsvg: tell configure where gdk-pixbuf-query-loaders is 8a12632 gdk-pixbuf: move gdk-pixbuf-query-loaders to $libdir for multilib safety b070778 gdk-pixbuf: move gdk-pixbuf-pixdata to gdk-pixbuf-dev 7fb583a multilib: Drop populate_sdk variable manipulation eb7b1a5 package_manager.py: make rpm install mutilib pkgs corectly 5a51fb2 bitbake: prserv/serv: Start/Stop daemon using ip instead of host 2687b24 gdk-pixbuf: Avoid rebuild failures 94184a0 systemd: fix tmpfiles location when multilib in use 179ee77 p11-kit: configure without trust-paths c7624b4 oe-pkgdata-util: avoid returning skipped packages dd11f5c toolchain-shar-extract.sh: remove checkbashism 99fc786 archiver: stamp-base is dead, remove it ce7bc12 gcc-shared-source: Set empty SRC_URI 47ef201 libgcc.inc: package baremetal multilib libraries aff7e72 meta-selftest: add error recipe and error-image 261e68c libksba: fix pkgconfig patch 3235a64 systemd: disable problematic GCC 5.2 optimizations 6e7ed5e Revert "systemd: disable problematic GCC 5.2 optimizations" 9673278 oeqa/selftest/archiver: Test that archiver filters on recipe name 6807327 oeqa/utils/dump: Add default commands and directory 5d31e94 webkitgtk: add REQUIRED_DISTRO_FEATURES 8733b53 oeqa/runexported: Removed DEPLOY_DIR as mandatory. f1e7fb0 oeqa/oetest: Remove bb as requirement for oetest. d70c5cb gcc-5.2: disable isl 66dca4b kmod: Change SRCREV to fix return code in error path 61e77c7 oeqa/runtime/parselogs.py: Fix dmesg log retrieve in sato dd26efb insane.bbclass: make package_qa_clean_path return a relative path bdbd8b4 devtool: upgrade: use shutil.move instead of os.rename 346784b devtool: runqemu: avoid recipe parse 85d8b4a devtool: second fix for running from a different directory 6363a95 guile: cleanup buildpaths and add RDEPENDS on pkgconfig 6d1447b gmp: Use __gnu_inline__ attribute in 4.2.1 42dc902 pseudo_1.7.4.bb: fix f*open() 9f66aa1 bitbake: toaster: start script warning text formatting small improvement c6eaef0 bitbake: tinfoil: remove logging handler at shutdown fb26ea3 bitbake: toaster: remove time from builds in progress 15b482b bitbake: toaster: Add fake entry to Target_File for filesystem root 767fe69 bitbake: toaster: layerdetails Fix back button tab behaviour 4c0320f bitbake: toaster: UI test improvements 4c5af77 bitbake: toaster: support selenium testing from mac OS X e6c4970 bitbake: toaster: add 2 UI tests f6a70ad bitbake: toaster: change UI to show tasks 08000eb bitbake: toaster: don't re-create Target objects ea37358 bitbake: toaster: store task name in Target objects 524ddd8 oeqa/utils/qemurunner.py: Remove duplicate message on LoggingThread start 376ce71 oeqa/utils/qemurunner.py: Fix HIGH CPU usage on LoggingThread 6c0066c devtool: add search command 0613301 devtool: add basic means of running runqemu within the extensible SDK c4181c6 devtool / recipetool: add handling for binary-only packages 76084cd devtool: build-image: delete bbappend at end of build ef197f9 devtool: build-image: improve image recipe handling 8f67bb7 devtool: build-image: tell user where to find output files afb9340 devtool: build-image: fix recipe/package terminology d736518 devtool: add: move important "recipe created" message to the end 3bd0f33 devtool: add: set up fetched source as a git repository by default e759b0b devtool: better handling for recipes that don't unpack source a34f733 devtool: fix extracting source for work-shared recipes 5bc437b devtool: show proper error when extracting source for recipes with disabled unpack task 210d959 recipetool: create: fix handling of URIs containing # a35ad72 recipetool: create: fix creating empty shell functions 30c7e7a devtool: add: properly handle separate build directory 99fc284 devtool / lib/oe/recipeutils: ensure we can parse without bbappends 5d1a117 devtool: add: ensure --color=never turns off recipetool colour output ae788fb devtool: check that source tree still exists 99cd79d scripts/contrib: add devtool stress tester e0b9a96 lib/oe/patch: fix for git am not cleaning up after itself 8fb70c6 classes/externalsrc: fix setting of deps varflag as a string 586291f classes/externalsrc: scale back warning to a plain note 72810f9 toolchain-shar-extract.sh: show progress when extracting SDK 0dc9299 classes/populate_sdk_ext: drop work-config.inc 3a08728 classes/populate_sdk_ext: allow custom configuration for extensible SDK b853dde classes/populate_sdk_ext: fix missing environment settings if running installer with sh 374e1fe lib/oe/recipeutils: properly split unexpanded variable values 7fb3fb9 linux-yocto/4.1: hid, bluetooth, aufs and yaffs2 updates 9241ec5 image_types.bbclass: Don't try to create ubi symlink twice 266e417 oeqa/selftest: buildoptions.py Removed unused imports 329d09f systemd: disable problematic GCC 5.2 optimizations 554c817 libgpg-error: Add support for nios2 84e1100 pixman: Fix missing FE_DIVBYZERO on nios2 9baffc1 libtool: Fix nios2 support ba1e0ee linux-yocto: depend on libgcc for nios2 8efff24 kernel-arch: Add nios2 to valid archs 4d9af35 siteinfo: Add nios2-linux 76a8c74 insane: Add nios2 support 6adffd0 autotools: fix traversal bug in aclocal copying 6a02bbd python3-debugger: Adds pkgutils dependency to pdb a7dd758 python3-debugger: fix importlib dependency 0e5a911 libsdl: depends on libglu when both x11 and opengl d762ea1 lttng-tools: sessiond: disable: match app event by name c8a7d76 testimage.bbclass: Fix break introduced with SIGTERM handling 7d166a6 sysstat: Include needed headers explicitly d36384e connman: Fix build with musl 0df9b98 quota: Replace using -I= with STAGING_INCDIR 433a7a0 opkg: Include stdio.h for FILE definition 5aadabf syslinux: Dont bypass gcc driver for dependency generation options 05b9a0c gnu-efi, syslinux: Support gcc < 4.7 cdfd96e gummiboot: Fix build warnings seen with gcc5 0141652 qt4: Fix kmap2qmap build with clang 6b73a05 xz: Correctly specify GPL-3.0 with autoconf exception a96069d insane.bbclass: drop extra line-feed in pkgname check 10fb575 insane.bbclass: show PN and relative path in package_qa_check_host_user 5624889 package.bbclass: add summary line to installed-vs-shipped QA check d6e40e8 initramfs-framework: better error reporting for invalid root boot parameter 288a9ff initramfs-framework: fix "support dropping into shell on failure" 5ff7e8d qt4: remove already merged patch 9578b09 gdk-pixbuf: remove redundant libx11 DEPENDS line fe70aa4 runqemu-internal: For qemumicroblaze use the QEMU provided device tree 9aaf7e3 runqemu-internal: Fix qemu networking for qemuzynq an qemumicroblaze be493ba libpcre: Allow building 16 and 32bit libpcre versions f32a6e1 oe-git-proxy: Allow socks4 as protocol in $ALL_PROXY 18309f0 oe-git-proxy: Correct the parsing of a port in $ALL_PROXY c035f35 oe-git-proxy: Allow explicit IP addresses in $NO_PROXY bbe06b4 oeqa/testimage: Enhance -v switch in testimage e0b38f2 wic-image-minimal: add dependency to .wks dd7726f wic: fix partition size calculation 219d73a wic: use ext4 in wic-image-minimal.wks ce2cb45 wic: add dependencies to wic-image-minimal recipe a66f586 testimage.bbclass: Don't require an image manifest 39c11d8 gstreamer1.0: Fix basesink drop buffer error 5f13793 grep: fix install if bindir == base_bindir b17c02f gzip: fix install if bindir == base_bindir b6f8ea1 cpio: fix install if bindir == base_bindir fe0cdab tar: fix install if bindir == base_bindir c6b52f3 bind: fix too long error from gen 81d65df ccache: fix file name too long cdbe5c9 bitbake.conf: update APACHE_MIRROR 12772c8 linux-yocto/4.1: hid-core: Avoid uninitialized buffer access 88b11e6 kern-tools: optimize patching peformance 0864782 linux-yocto/4.1: aufs, yaffs2 and driver fixes 7b86c77 bitbake: bitbake: bb.fetch2.git: Import errno module e993aa6 bitbake: toaster: hide irrelevant builds in the project builds view 5b4e380 bitbake: data_smart: Ensure OVERRIDES dependencies account for contains() 60d019d bitbake: data_smart: Correctly handle OVERRIDE values set using ??= 701ad76 bitbake: data_smart: When considering OVERRIDE dependencies, do so recursively 4325f6f bitbake: data_smart: Expand overrides cache recursively 3a5e46b bitbake: bb.fetch2.{git, hg}: remove tarball if it needs updating 441f04c bitbake: toaster: Simplify redirects when build page parameters are missing 30f9f79 bitbake: toaster: Fix date range pickers on the project builds page 047245f bitbake: toaster: Show correct builds count on project pages 5528f3a bitbake: toaster: hide irrelevant builds in the project builds view 2bb600a bitbake: tests/fetch.py: Fix recursion failure in url mapping 4c3d4ec bitbake: fetch2/__init__.py: uri_replace regex handling 460e4c2 bitbake: toaster: Don't def a function for each call to build_artifact() b6d1d2a bitbake: toaster: Avoid unnecessary local to local copy of cooker log 8c63d60 bitbake: toaster: Read correct cooker log path from toasterui 013c030 bitbake: toaster: delete multiple builds cleanup 3165af3 bitbake: data_smart: Separate out update_overridevars into separate function 07aef86 bitbake: cache: Handle spaces and colons in directory names for file-checksums 9679500 autotools.bbclass: mkdir ${B} -> mkdir -p ${B} c30ee2a perf: mkdir ${B} -> mkdir -p ${B} d18612a recipetool: add 'newappend' sub-command 4727384 oeqa/sstatetests: Add test for nativesdk stamp invariance with MACHINE 56b2c53 glibc: Ensure OVERRIDES doesn't influence sstate checksum 1884550 image.py: Ensure base image size is an integer ec72426 python: Add python-misc as rdependency to python-modules c170f35 cryptodev-tests: don't use STAGING_KERNEL_DIR, fix re-packaging in multi-machine builds 2d7fe03 adwaita-icon-theme: RREPLACE gnome-icon-theme 94d280f mkelfimage: fix owner for /usr/sbin/mkelfImage 3323c3f nspr: fix SRC_URI 935a8bd mkefidisk: Create interactive menu for the script 6c05e6a image.bbclass: add do_rootfs vardeps for {COMPRESS, IMAGE}_CMD_* 82be1f3 squashfs-tools: make it be able to be compiled by gcc5 with "-O0" dc3bc22 linux-firmware: package Broadcom BCM4354 firmware db8f796 perf: fix the install-python_ext on upstream kernel bfe2cd1 systemd: fix missing space in SRC_URI append 2515cf2 python: remove --with-wctype-functions configure option 17f5a5a kmod: fix link creation when base_bindir != /bin e2cfe93 prelink: Move to latest release 32472dc glibc: don't require bash for nscd init script d8eb9d4 oeqa/decorators: Added decorator to restart the DUT in case of test hang. 5acf99d init-install-efi.sh: Avoid /mnt/mtab creation if already present ea562de qemu: Update to upstream patches 1d0b922 qemu: remove redundant lines in smc91c111_fix.patch 39b661e webkitgtk: Add patch to fix gcc5 compile issues 572e50d webkitgtk: add a new recipe for latest upstream version 7eabed3 distutils.bbclass: Handle python-backport modules ca73270 xorg-driver: Fix logical && with bitwise and operation b5a433f distro: update include files related to webkitgtk and epiphany addition 8fcb01c midori: remove the recipe and replace references to midori with epiphany e552b25 webkit-gtk: remove the recipe for the obsolete version 1.8.3 23bf09b epiphany: add a recipe from meta-gnome 62fca97 image_types.bbclass: Restore compatibility with previous UBI filesystems 722aa22 image.py: Allow IMAGE_LINK_NAME to be empty 3006cb2 as-needed.inc: add babeltrace exception 75bad1b gcc: reformat 0063-nativesdk-gcc-support.patch 1c914a8 meta: Fix Upstream-Status statements 20d90af maintainers.inc: remove packages that are no longer in oe-core 2625fa5 poky-tiny.conf: Require utmpx, its needed for busybox 2e39f18 maintainers: add maintainer info for new webkitgtk, epiphany and their dependencies 68aefbb bitbake: bitbake-worker: Ensure pipe closure doesn't crash before killpg() aaa48b6 bitbake: toaster: increase waiting time 58ef81c testimage: Handle core-image-lsb-sdk qemumips test restriction ba17ce3 oeqa/targetbuild: Ensure we run gnu-configize so config files are up to date 7c2ff62 populate_sdk_base: Fix aarch64 OLDEST_KERNEL sdk issues 6a71f66 testimage: Fix SDK extraction error handling 06cde90 devtool: update-recipe: get srcuri parameters with decodeurl() 9cda8f7 Revert "ptest: use fakeroot for do_install_ptest_base" 10c4f1b u-boot.inc: Add host compiler flags and openssl-native dependency 29e94f6 build-compare: add support for examining deb and ipk packages 3a9e230 classes/sstate: break out function to get sstate manifest filename 2a05181 runqemu: avoid image file name mismatches c2165c9 u-boot.inc: Add U-Boot ELF install and deploy 302ec46 connman: upgrade to 1.30 08ec92a initramfs-framework: support dropping into shell on failure 04f4ef9 initramfs-framework: support init boot parameter 77524d7 initramfs-framework: support ro boot parameter d7508fe initramfs-framework: support rootflags and rootfstype boot parameter f9d2302 directfb: Avoid using VLAs and printf formats 7d018a6 mdadm: Fix bugs exposed by clang 0749e35 sudo: Disable rsize_t deliberately 60a57c7 puzzles: Fix build with clang decbbac kexec-tools: Pass -r directly to linker 5b97579 alsa-tools: Fix compiling with clang 3d8fd2f latencytop: Fix build with clang c8f4822 ccache: Dont add LDFLAGS to compiler flags 81d1508 bdwgc: Include signal.h instead of hard asm/sigcontext.h 7e4cc98 minicom: Fix build with musl f03b36b man: Use -DSYSV when builing for linux 0a67128 sudo: Include sys/types.h for id_t definition 27a850a slang: Fix namespace conflict vis-a-vis posix_close 5ee0383 irda-utils: Weak Define the build TARGETS 18aaf65 bjam-native: build and install bjam.debug 1f86887 gcc-5.2: remake 0040-nativesdk-gcc-support.patch 1dbb37d bind: fix compile failure when building path is long 48a144b sstate: only fetch remote signatures if verification is enabled f7056fa Revert "boot-directdisk.bbclass: use rootfs UUID by default" a2ec6d4 ptest: fix file ownerships in ${PTEST_PATH} e0543d1 runqemu: Define OECORE_MACHINE_SYSROOT on setup_sysroot 30dc71d gnome-icon-theme: remove the recipe 89118a3 pcmanfm: add an icon theme dependency a14c363 oeqa: Test failure/cleanup improvements 4c73aaf perf: fix the install-python_ext d0abea0 packagegroup-core-nfs: provide the nfs-client IMAGE_FEATURES 59f822d gstreamer1.0: Fix QoS/lateness checking if subclass implements prepare/prepare_list vfuncs f051f10 gstreamer1.0: Fix sticky events haven't been sent out when active track reach EOS 9a24b6b externalsrc.bbclass: better filtering of cleandirs f0af24e buildstats: Outputs 'task recipe elapsed-time' from each buildstats' recipe 9485888 devtool: make plugin_init optional 996ec17 gnu-efi: Make setjmp.S portable to ARM 53e09c5 scripts: Move BUILDDIR chmod fix after checks in oe-setup-builddir 77523c0 gsettings-desktop-schemas: add a recipe from meta-gnome c52f71c gnome-desktop3: add a recipe from meta-gnome 80ecafc libwnck3: add a recipe from meta-gnome e28a9f2 gcr: add a recipe from meta-gnome 2096387 p11-kit: add a recipe from meta-oe f17e1da libwebp: add a recipe from meta-oe 11e6aa6 libsecret: add a recipe from meta-gnome 206049f ruby: add a recipe from meta-ruby 5198ec9 libyaml: add a recipe from meta-oe 4e661a5 wic-image-minimal: add wic image recipe and .wks 32633f0 sanity.bbclass: remove abspath warning for SSTATE_MIRRORS 44ae903 oeqa/runtime/date: stop systemd-timesyncd during test e20c9ea systemd: Implement OE-Specific systemd-sysv-install 6814767 systemd: Upgrade 219 -> 225 21fffde rootfs: Conditionally uninstall update-rc.d 4cccac9 Revert "rootfs: Do not uninstall update-rc.d" d4585fa bsps: update 3.14 SRCREVs 4460700 bitbake: toaster: Changes to navigation 6271fcb bitbake: bitbake-worker: Handle SIGKILL of parent gracefully 3195cd9 bitbake: bitbake-worker: Simple code cleanup 85256c8 bitbake: prserv: SIGTERM and deamonization fixes 289007e bitbake: utils: Add signal_on_parent_exit() function 384533b bitbake: server/process: Handle SIGTERM more gracefully dae69e6 ptest: use fakeroot for do_install_ptest_base 9bfaf59 oeqa/sstatettests: Improve output of assert 79af375 bind: update to 9.10.2-p4 e384b97 screen: backport to fix build error 69b7a61 devtool: fix running from a different directory 7b1f670 devtool: add package plugin that lets you create package via devtool 6d50a5e devtool: update-recipe: add a warning when recipe is inside the workspace 3dd9fc3 devtool: update-recipe: better 'auto' mode 0d0e508 devtool: Allow disabling make parallelism on build command 1a72181 devtool: Create a single file for the build devtool feature 8be95c5 devtool: add upgrade feature 7cde0eb devtool: improve modified file preservation to handle directory structures ee0c11d scriptutils: split out simple fetching function from recipetool 3690281 devtool: modify: enable do_shared_workdir for kernel baf39c8 kernel.bbclass: do not mv/link sources when externalsrc enabled 0ec0b17 kernel-yocto.bbclass: do_kernel_metadata depends on do_unpack 07ac146 extrernalsrc.bbclass: treat kernel meta like local source 08e0922 adt-installer: upgrade to opkg 0.3.0 dd075b9 oeqa/parselogs: Updated log error whitelist. 8a2edb9 binutils: Add thunderx support to gas 8ad2c02 linux-yocto/3.14: fix edgerouter (octeon) build e87c182 qemurunner: Fix killpg pid usage 335260c qemurunner: Ensure runqemu doesn't survive SIGKILL 79bf3f7 rootfs.py: show intercept script output in log.do_rootfs 525979f package_manager.py: search provides when not found by pkgname 4031de5 wic: round variable before converting to int a0590d1 rootfs: Do not uninstall update-rc.d 697428c busybox: Enable getopt applet e3b5d8f qemurunner: Drop error to a warning to improve user feedback fa2f7f9 qemu: Add fixes for smc91c11 qemu segfaults on arm ee428e2 devtool: add mechanism for updating extensible SDK 2aaa59e oe-publish-sdk: add script ad95963 Extensible SDK: allow for installation without preparing build system 9f670d1 populate_sdk_ext: don't remove the native qemu dependencies 164136d populate_sdk_ext: consider custom configuration in local.conf d7efdfe copy_buildsystem: make sure bitbake directory is copied 479deeb populate_sdk_ext: install the latest buildtools-tarball 16d0df5 classes/populate_sdk_ext: avoid poky-specific buildtools naming 4587180 toolchain-shar-extract.sh: explain why we cannot use sudo in extensible SDK 08d0735 toolchain-shar-extract.sh: better default install path for extensible SDK f5f9185 toolchain-shar-extract.sh: ensure extensible SDK install path obeys restrictions 6b41b7c testimage: handle SIGTERM to conclude runqemu e570b32 postinst_intercept: allow to pass variables with spaces ae00b59 rootfs.py: Allow to override postinst-intercepts location db92bc2 bitbake: toaster: replace ETA with % of tasks done c386abc bitbake: toaster: fix project names in latest builds a4dbd4b bitbake: toaster: remove unnecessary white space 1e9ac4c bitbake: toastergui: Add missing files from 1c2f6b9b7b9e700146944b9d6d2114e0d014ee81 c1df471 pseudo_1.7.3.bb: New version of pseudo e3feac1 sstate: implement basic signing/validation 3bafddb libinput: avoid --enable-event-gui=auto afcd243 cross-canadian.bbclass: typo fix in comments (s/repsonsible/responsible/) 3b823fe boot-directdisk.bbclass: use rootfs UUID by default 6d7bcd4 boot loader: support root=UUID 5d79814 image-vm.bbclass: support specifying an initramfs 95bfdce image-vm.bbclass: avoid duplicating syslinux default values 82dd3fb initramfs-framework: handle kernel parameters with . inside 8582791 initramfs-live-boot: create /dev/console cc9ff1a initramfs-framework: create /dev/console 8215c42 runqemu: support full-disk images 9337ce2 oprofileui: Use inherit gettext 4925fa0 oeqa/decorators: Fixed a problem with tests having the same names. e59b817 libunique: remove the recipe 924348d report-error: send only last 5242000 characters in error logs 466eee6 procps: fix for base_sbindir == sbindir 1e9ed16 nfs-utils: don't force use of /sbin as sbindir 73a6fe9 pcmciautils: handle udev dir being 2 levels below / b7a6484 bluez: handle udev dir being 2 levels below / d1c2b4d pulseaudio: handle udev dir being 2 levels below / d13bbbe alsa-utils: handle udev dir being 2 levels below / cfdf5d4 systemd: remove hard-coded paths in FILES entries cf5704e busybox: fixes for when base_bindir != /bin ef0fe31 oeqa: Test failure/cleanup improvements 3d81a56 tcmode-default: Set gcc 5.2 as the default a024631 bitbake: bb.fetch: don't remove the clone when an update fails ba50c2f bitbake: bb.fetch: handle checksums consistently for mirrors abba11d bitbake: bb.fetch.git: remove leading '.' from gitsrcname 7c4fdb8 bitbake: bb.cookerdata: include useful traceback for ExpansionError/ParseError 5fe590c bitbake: bb.data_smart: retain traceback from ExpansionError 7ef2f95 bitbake: cooker/runqueue: Allow bitbake commands starting with do_ ccc1d9a bitbake: toaster: improve explanation of checkout dir 4b9de76 bitbake: event/server: Add _uiready flag to handle missing error messages 7c07946 bitbake: utils: Fix a potential error in movefile ea3384e qemu: Fix qemu_cpu_kick_thread on init 92f68b4 package_regex.inc: various updates to improve RRS accuracy 5799269 vte: add RECIPE_NO_UPDATE_REASON e874dd2 remake: update to 4.1+dbg-1.1 5effdb3 python-smmap: update to 0.9.0 ed77a00 python-async: update to 0.6.2 ff100fd6 mkelfimage: add RECIPE_NO_UPDATE_REASON bf362e4 net-tools: update to 1.60-25 1f5e747 mailx: update to 12.5-5 d025e78 ccache: update to 3.2.3 fac0d67e testimage: filter proper test cases by tags 1efd172 gcc-target.inc: Remove non-related gcc headers from include_fixed folder 2b6218d devtool: run kernel dependencies 3b3f9bb devtool: extract: correct initial rev for kernel packages 9e9fd09 devtool: make required tasks be run in kernel build 5cf3420 ifupdown: create alternative links bf18f8a ifupdown: import recipe 338c325 lib/oe/package_manager: Include PACKAGE_FEED_PREFIX instead of hardcode paths 7f93052 libunwind: Security Advisory - libunwind - CVE-2015-3239 1362986 sdk.py: fix conflicts of packages 635d385 image.bbclass: add rootfs_check_host_user_contaminated 2d49767 insane.bbclass: add host-user-contaminated test b95c340 insane.bbclass: handle tests which need fakeroot 31c231c binutils: Fix symbols with --dynamic-list when using gold linker bc6a1a2 bitbake: toaster: Add tests for pages which show the default project 3b6d193 bitbake: toaster: Fix test for projects page JSON 3b233fc bitbake: toaster: Exclude default project unless it has builds c9a05be bitbake: toaster: Only redirect to projects page if user has added projects 214ba67 bitbake: toaster: Improve how default project is identified and fetched 5b26bbd bitbake: toaster: Make 0021 migration compatible with MySQL 24d6d3f bitbake: toaster: show incomplete configuration warning 249f366 bitbake: toaster: disable build button as needed c80b582 debianutils: create package for run-parts d8caef4 Fix recursive mode -st on BUILDDIR setup 4287e5e qemu: enable alsa only if in DISTRO_FEATURES 097f36f qemurunner: Handle lack of data on run serial gracefully a3fec07 image.py: rename _write_env -> _write_wic_env 791a391 wic: fix short variable names 14b47e2 wic: get rid of listing properties 1561970 wic: fix pylint warning redefined-builtin e7287e5 wic: fix pylint warning unused-variable e3a062a wic: fix pylint warning no-member e85f807 wic: use optparse instead of cmdln f1bcf47 wic: fix pylint warning multiple-statements 0fc551e wic: get rid of wildcard imports c987683 wic: fix errors in partition.py module 90486ff wic: remove micboot.py 282fb04 wic: remove micpartition.py 2e2ac0c wic: fix typo 4fd65df wic: add test cases for 3 images bf41b06 oe-selftest: wic: configure a build 7d4bb40 wic: get rid of scripts/lib/image 77561e7 wic: use ext4 in canned .wks files 2e7e720 sysstat: add systemd service files 1031ae3 valgrind: enable rt_sigpending syscall on ppc64 linux a346a3c kernel.bbclass: add the runtime dependency on kernel-vmlinux for kernel-image fc6e967 iproute2: upgrade to 4.1.1 636d247 insane.bbclass: Check for invalid characters (non UTF8) on recipe metadata 275fc5f screen: fix parallel build failure 3dd8c75 libnotify: add (R)PROVIDES/RCONFLICTS/RREPLACES for meta-gnome's libnotify ae69b1f mtd-utils: add xattr PACKAGECONFIG and fix acl dependency d0b71dd libvorbis: remove legacy options 59c7c7b package_manager: support for signed RPM package feeds 3983e3f os-release: add the public package-signing key 752736a package_rpm: support signing of rpm packages 103f0e5 createrepo: disable RPM signature validation 16bda74 pulseaudio: add 'autospawn-for-root' PACKAGECONFIG 7e11e81 pulseaudio: pass --with-systemduserunitdir 52b75fc packagegroup-core-x11-sato: obey the pulseaudio distro feature a2b0d04 runexported: Make it compatible with host dump 53ab41a qemurunner: Added host dumps when there are errors 170b89d glibc: package nscd related files 3d75914 bitbake.conf: add MIRROR vars to SRC_URI vardeps b5c6675 python: Fix python-distutils variables 3e6a5af python3: Fix python-distutils variables d6b1171 opkg: upgrade to v0.3.0 ab50b1d libevent_2.0.22.bb: Add native and nativesdk support to the recipe. f321655 bitbake: utils: Specify dest file name in movefile() 383450c bitbake: build: delete tasks thoroughly 71b0568 rt-tests: drop unnecessary added-missing-dependencies.patch 0491a7e openssh: Upgrade 7.0p1 -> 7.1p1 e444e84 dpkg: update to 1.18.2 eb45cd6 cmake: update to 3.3.1 bb72a86 package_regex.inc: updates to improve upstream tracking ca1497b e2fsprogs: explain why there is no update for now 5e79211 libnotify: don't inherit unnecessary distro_features_check abd9ae9 dropbear: update to 2015.68 c19225a upstream_tracking.inc: deprecate and move contents to recipes 8c40147 pulseaudio: improve PACKAGECONFIG for dbus/consolekit dependencies b9cdd11 mirrors.bbclass: Update gnutls mirrors 2eb4b1e gnutls: Upgrade 3.3.14 -> 3.3.17.1 3a37c43 nettle: Add ptests 38f4e92 nettle: Add (LGPLv3) version 3.1.1 6fac60d gmp: Bring back version 4.2.1 (LGPL 2.1+) b9ade91 nettle: Fix binary license to LGPLv2.1+ cd61c1a Fix mode +st on TMPDIR when creating it 79de172 packagegroup-base: pull in iw as well as wireless-tools 464f4e2 iw: support and enable separate build dir fbb8b53 iw: obey our target path variables eced780 iw: inherit pkgconfig fc4a209 iw: add recipe from meta-networking e8769bf bitbake: toaster: new Toaster image 3e27f92 bitbake: toastergui: remove old screenshots 22afc04 oe-selftest: test devtool build-image plugin 15526a8 devtool: build-image: add comments 2dac49d devtool: build-image: remove <image>.bbappend 9672624 devtool: build-image: add extra logging 45ebff4 devtool: build-image: generate notification callback 61ecb6c devtool: build-image: filter out recipes 214dd95 devtool: build-image: improve help and description e9fbc7a devtool: build-image: rename LOG -> logger 7eb7dc8 Revert "devtool: make add_md5 a public API" 71fdc64 devtool: make 2 functions public 906f885 devtool: build-image: stop using add_md5 beea25e oe-selftest: wic: fix test19_image_env test case 67ed7c3 oeqa: Add allarch sstate sig test fc8ceb7 layer.conf: Add missing dependency for allarch package initramfs-framework 7b421dc wic: use bitbake variable ROOTFS_SIZE 4f7b72a oe-selftest: test building wic image by bitbake 7c09401 wic-image-minimal: add wic image recipe and .wks 7053414 oe-selftest: test generation of <image>.env 7770281 image.py: write bitbake variables to .env file 8a5eb20 oeqa/utils/dump: Handle empty commandlist gracefully 0f84702 image_types.bbclass: add wic image type 530f3c5 wic: implement --vars option 5856f8f wic: implement getting variables from .env files d80ad23 wic: set default image 95c6749 wic: add default_image attribute to BitbakeVars e1fe347 wic: create new method _parse_line 58c3930 wic: add BitbakeVars class 92c3f03 linux-yocto-3.14: Use a revision thats on the branch for qemuppc 6b17c38 linux-yocto-3.14: Update to latest revisions b0db6c2 linux-yocto/3.14/4.1: fix ARM boot with gcc 5.x ac0b85d oeqa/runtime/multilib: add test for libc 277571b oetest: Fix regresion when testing real hardware c78ba0d dump: allow to have datastore vars on dump commands 85fd1a7 dump: Created new classes for dump host and target d14ffaf classes/buildhistory: add build result to commit message 734411a classes/buildhistory: include metadata revisions in commit message 2a08f4a classes/buildhistory: handle additional files at recipe level 846cb34 classes/buildhistory: fix permissions in package file listing 1bfae0f classes/buildhistory: tweak buildhistory_list_pkg_files 5d34d32 classes/buildhistory: indent recently added function consistently ec412d5 classes/buildhistory: exclude . in file listings e6c330c classes/buildhistory: ensure we push when "no changes" commits are made 9badc1c image.py: add script output to the rootfs log 5bcc423 image.py: set bitbake variable ROOTFS_SIZE 8313cea wic: deferred call of hlp.get_wic_plugins_help() 31324ed wic: rename variable b41de12 wic: remove undescore from function name e79a22e python-distribute, python-setuptools: Migrate to good old python-setuptools 48373be testimage: Run commands in target and host when test fails f9f1643 byacc: fix compilation on Ubuntu 14.04 6874f5e autotools.bbclass: Allow dependency tracking option to be overridden 4292352 runqemu-internal: Fixes unary operator expected in new TCPSERIAL_PORTNUM 38bc164 linux-yocto-dev: update to 4.2-rc 6e0a563 linux-yocto/4.1: CIRRUS config and quark thermal support 474f66c linux-yocto/4.1: enable DRM_CIRRUS_QEMU and EXT4_USE_FOR_EXT23 6dd4209 linux-yocto/4.1: update to v4.1.6 and v4.1.6-rt5 d1d3b64 linux-yocto/3.14: cleanups and gcc5 ARM build fixes ad4ab1b linux-yocto/4.1: quark configuration and thermal support 9815270 linux-yocto/3.19/4.1: add coretemp to intel-common-drivers de7e449 linux-yocto/4.1: fix qemuarm preempt-rt configuration 9253e92 lib/oe/patch: handle patches that delete files with older git fc209e9 os-release: Exclude DATETIME from sstate signature 4e02e5b layer.conf: Add several allarch dependency exclusions 66b7dfb package_*.bbclass: Ensure OVERRIDES doesn't change sstate signature d105205 oeqa: Optimise sstate tests b749251 jpeg: update to version 9a 650fe92 xf86-video-intel: fix missing fstat() prototype a91e6f6 libatomic-ops: move to recipes-support, fix recipe name 3ffad2d libunwind: always depend on libatomics-ops a753bc7 nativesdk.bbclass: set sbindir to bindir 67ecba4 update-rc.d.bbclass: explicitly dep on initscripts b3d8b37 image.bbclass: re-run do_rootfs when feature packages change 641b2e2 bitbake.conf: set PATCHRESOLVE to noop by default 51f95df bitbake.conf: set USE_NLS based on DISTRO_FEATURES 83ac732 bitbake.conf: unexport SHELL 06b97ac systemd: Cache/define tool paths for target 2a9cf4d core-image-minimal: Add 4M extra space when using systemd f457c98 diffstat: Add TOOLCHAIN_OPTIONS to Linker calls a95269a liburcu: Fix atomic function parameter types in calls 506c564 systemd: Remove exporting special CPP 0630005 bitbake.conf: Define fallback DISTRO_NAME 36e8f93 mdadm: Upgrade mdadm_3.3.2.bb -> mdadm_3.3.4.bb 9d46958 psplash: Turn psplash_fb_plot_pixel() into static inline 99e67db libvorbis: Update libvorbis_1.3.4.bb -> libvorbis_1.3.5.bb 646a29c json-c: Include math_compat.c for NAN/INF values 0053600 sysvinit: Fix makefile bug found with clang ff7a4ca cross-canadian.bbclass: support for TCLIBC="baremetal" 443c59b libgcc-common.inc: overrides for libc-baremetal 466684e gcc-cross.inc: overrides for libc-baremetal 260aa52 gcc-cross-canadian.inc: overrides for libc-baremetal 2dd0c1d tclibc-baremetal.inc: baremetal specific distro policy file c2591e1 alsa-lib: Lift the limitation to use gcc only cross compiler b2c1e64 devtool: implement build-image plugin 69c6372 devtool: make add_md5 a public API 491e86a harfbuzz: upgrade to 1.0.2 5a5cf2c btrfs-tools: 4.1.1 -> 4.1.2 1b00e85 tune-octeon.inc: add BASE_LIB settings 7635c1f tune-octeon.inc: correct packaging suffix b5b3085 oprofile: 1.0.0 -> 1.1.0 79431e8 gnu-efi: 3.0.2 -> 3.0.3 db1b3df gnupg: 2.1.6 -> 2.1.7 14d4445 bitbake: toastergui: Add frontend javascript unit tests ab9644f bitbake: toaster: fix global navigation ae329b7 bitbake: toaster: adjust spacing in project pages 7957e1f bitbake: toaster: fix show / hide columns in all builds table 8e1f080 bitbake: toaster: Support environments which have proxies set ce2a827 bitbake: toaster: Remove Log column from All builds page f454fc5 bitbake: toaster: Fix extra checkbox in most recently built recipes section d45ab49 bitbake: toaster: update directory tree expansion 294948c bitbake: lib/bb/cooker: add interrupted flag to BuildCompleted event 7ee503e bitbake: toastergui: change image in landing page 1fa9a0c qemu-native: Enable temporary debug info as default. 995b6d6 systemd: Increase devices timeout in QEMU machines to avoid failures on serial-getty 70b45d6 gcc-source: exlude from world 0cd5d6d Empty image: filesystem allocation 9b6bf6a Empty image: package list splitting and iteration 013f762 oeqa/runtime/multilib: fix and improve multilib test f44e043 qemuarm64.conf: Make the second serial console /dev/hvc0 a8a061b sysvinit-inittab: Run ttys on ttys that don't have tty in the name 5c0e6f8 bind: remove dependency on bind in bind-dev 1e8d038 qemurunner: Don't loop on EWOULDBLOCK in logging thread. 63340ae runqemu-internal: Make sure tcpserial is always last 6de522e runtime/syslog.py: fix syslog test crash 393bd74 oeqa/oetest.py: add better package search for hasPackage() 315fb4c qemurunner: In the logging thread retry on EAGAIN, EWOULDBLOCK 778fc61 libnotify: update to version 0.7.6 55077ea qemurunner: Shut down logging thread successfully when test fails 15c8835 yocto-bsp / yocto-layer: fix template recipes 790b229 README.hardware: drop mention of binary-only drivers e6a917d layer.conf: Increase layer version to 6 bb34181 bitbake: lib/bb/main: avoid importing all server/UI modules on every execution d893a25 runqemu: Add a tcpserial option fd164dc qemurunner: Use two serial ports and log console with a thread 8d05d8a qemurunner: Make create_socket() return data and use exceptions 62585cf qemurunner.py: Move some class variables that should only be local 8754a00 libcap-ng: add package 0.7.7 20c6c72 swig: add package 3.0.6 6b0768e xf86-video-intel: enable xvmc feature by default and fix dependency 311c428 package_rpm.bbclass : escape "%" in files and directories name e062f01 packagegroup-qt*-toolchain-target: fix hard dependency on phonon library 0f42566 service: tweak example recipe fde9969 hello-mod: drop PV and PR 21f9844 oe-selftest: replace assertTrue(False, ...) with fail(...) d114b56 classes/insane: fix QA check message referring to nativesdk 025f759 scripts/create-recipe: drop bb00ebc man-pages: update to 4.02 37b73ce lsbinitscripts: Upgrade 9.63 -> 9.64 b3db1f3 lsof: Upgrade 4.88 -> 4.89 c95e205 gstreamer1.0-plugins-*: Remove unused GSTREAMER_1_0_ORC variable d51f314 gstreamer1.0-plugins: Ensure the native OE orcc is used e4522a8 iso-codes: add a recipe from meta-oe fdc8267 glib: add a warning suppression patch to glib c89a1eb classes/cmake: add arch conversion routine 2b46af7 harfbuzz: enable icu feature 429985c classes/gnomebase: change tarball compression to xz 7ce9209 perl: Undefine finitel for uclibc aced11f kernel-arch: Force BFD kernel when using gcc for linking a6a0251 libinput: Upgrade 0.18.0 -> 0.21.0 e4cb847 wic: Test creation of iso image 1308e30 wic: add mkhybridiso kickstart file de5bc1b wic: Add plugin for hybrid iso image 5c44238 parted: set VERSION number same as recipe's version f62afbf glibc: use cross-rpcgen to replace host's rpcgen ee80b72 openssh: build regression test binaries 1993c1f json-glib: inherit gnomebase instead of gnome 9697c58 gnome: move introspection options to gnomebase e01f40f json-glib: enable native builds a044db9 multilib: let pkg-config find architecture-independent .pc files a3d228a bitbake: main: Handle RuntimeError exception in list_extension_modules a01a33b linux-yocto-3.14: Update to branch HEADs 6b8bb44 genericx86*: Update BSPs to use 4.1 Kernel 6f176d4 bitbake: toastergui: fix projectbuilds page ab13498 bitbake: toastergui: do not show in-progress builds in the table 25d4a35 bitbake: toaster logger: fix pylint issues c9455a7 bitbake: toaster: fix pylint errors 07b58c9 bitbake: toaster: fix updates on failed build requests 242603e bitbake: toaster: replace raising Exceptions in loadconf c159b3c bitbake: toaster: do not stop data import on bad data be4636a bitbake: toastergui: rename variables in views.py 12c9cca bitbake: toaster: use loggers instead of prints d18e630 bitbake: toaster: models field initialization 504396f bitbake: toaster: improve exception handling 99730d6 bitbake: toaster: checksettings: fix TEMPLATECONF detection 3a1af07 bitbake: toaster: checksettings: fix guesspath initialization 98dfa27 bitbake: toaster: pylint fixes c8df847 bitbake: toasteruitest: Updated UI tests cases to use dom IDs and 1.9 UI changes 55f13d4 bitbake: toastergui: Call csrf function in all pages to ensure cookie is sent ae7d048 bitbake: bitbake-layers: show-recipes: allow filtering by class inheritance a3967e2 bitbake: bitbake-layers: fix mapping files to layers 22e8c6c bitbake: bitbake-layers: remove-layer: accept just layer directory c4989e7 bitbake: bitbake-layers: ensure we exit if BBLAYERS_LAYERINDEX_URL is not set 5807ab3 bitbake: lib/bb/main: consolidate UI/server extension listing and loading 9b05ef5 bitbake: lib/bb/parse: properly handle OSError when updating mtime cache 9706775 bitbake: bitbake-layers: use "with open" consistently 90d97f7 bitbake: bitbake-layers: refactor show-appends to stop using cooker bbappends list 67a6a4d bitbake: bitbake-layers: Convert flatten to use collections.bbappends 3c3ff92 bitbake: cooker: drop appendlist b84bf58 bitbake: cooker: drop appliedappendlist e2ddc18 bitbake: Fix -m handling if cannot connect to server 7ce27b9 bitbake: cooker: ensure prefile/postfile can work in memory resident mode 37a2c06 bitbake: command: ensure sync commands that read configuration see updates 6e5ac6b bitbake: cooker: further limit inotify watches e0daf78 bitbake: command: intercept SystemExit to avoid trashing the server 715d857 bitbake: Fix default function parameter assignment to a list 22a653d binconfig-disabled: write an message to stderr to help confused developers c0dd559 oeqa/targetbuild: Remove bashism c1e7995 glibc-package: use ${PN} in INSANE_SKIP a21b047 rpm: opendb before rpmverifyscript to avoid null point input 7ed4a91 u-boot.inc: Add UBOOT_BINARY sym links for UBOOT_CONFIG types d4618ff packagegroup-core-standalone-sdk-target: remove qemuwrapper-cross dd7b869 toolchain-shar-extract.sh: add a space in the end b961402 tune-octeon: add tune file for MIPS Octeon 86559e1 binutils: Add MIPS Octeon3 0f23a3a lib/oe/recipeutils: avoid parsing in get_var_files() 677e8c8 devtool: fix handling of BBCLASSEXTENDed recipes 48bb9ec devtool: extract: remove patches subdirectory when S == WORKDIR 5e88067 devtool: extract: prevent externalsrc from interfering with extraction 1019d8c package_deb.bbclass: Allow UTF-8 characters on control files 3898cc3 valgrind: build ptests without optimizations c8b8749 openssh: Upgrade 6.9p1 -> 7.0p1 050629c gdk-pixbuf: Security Advisory - gdk-pixbuf - CVE-2015-4491 09ad7ca lz4: update to 131 76d7e8e archiver.bbclass: Run deploy_archives in $WORKDIR d6eb9cc uclibc: Upgrade to tip of master 71e1835 lzop: Fix build with gcc5 on ppc de17216 libunistring: Upgrade recipe 0.9.4 -> 0.9.5 a334395 guile: Specify directories to find proper libunistring, libgmp and libltdl 625e0ec glibc: Consider adding -Wno-error in cases when not using -O2 b7cd768 canned-wks: added a qemux86* directdisk recipe for wic 3aaea35 image_types.bbclass: allow replacing tar command 3753b51 tar-replacement-native: relocate via NATIVE_PACKAGE_PATH_SUFFIX a56d7e9 qemu: upgrade to 2.4.0 c348fa5 bitbake: toaster: move code from setup_lv_tests to setUp e5956a6 bitbake: toaster: remove ProjectLVSelectionTestCase 5638321 bitbake: toaster: add header to orm/test.py 50f9e20 bitbake: toaster: simplify testcase code 552b1fe bitbake: toaster: remove duplicated code 1f7d7bf bitbake: toaster: reuse common code 958696f bitbake: toaster: reformat LayerVersionEquivalenceTestCase d637b91 bitbake: toaster: rewrite LILSUpdateTestCase 344ad2e bitbake: toaster: rewrite test for LayerSource model 11668e2 bitbake: toaster: fix test_build_layerversion test case 77ca551 bitbake: toaster: remove prints from the test code 645435a bitbake: toastergui: Added IDs to elements used in testing 91d8f88 bitbake: toastergui: Add tests for xhr_importlayer c9d1cb2 bitbake: toaster: fix invalid fields in the package details page 8ab2101 bitbake: toaster: Fix typo in set up script output 783a76d adt-installer: use DEPLOY_DIR in ANT_DEPLOY expansion cbf8dcc mtd-utils: keep xattr support enabled dd8e385 package_regex.inc: fix regexes for adwaita-icon-theme, cairo and dhcp 918379a puzzles: switch svn for git, as upstream has done the same 6e1f77c tremor: update to 20150107 (svn r19427) a25e8bd quilt: fix the deps for ptest be158c8 curl: upgrade to 7.44 330340f libpfm4: Fix GNU_HASH warning. e623c10 screen: Upgrade 4.0.3 -> 4.3.1 b3ec91d glibc: Package libmvec when built cb7368c glibc: Upgrade 2.21 -> 2.22 0183d7c openssh: Upgrade 6.8p1 -> 6.9p1 00b7ea6 apmd: update to 3.2.2-15 5b9f451 blktool: update to 4-7 7cc816b build-appliance-image: use ext4 for rootfs 407d156 IMAGES_FSTYPES: default to EXT4 857da08 oetest.py: Don't wait to write dump files 9c72c1a oetest.py: Added method tearDown for oeRuntimeTest 51d8e8f qemurunner.py: Performance improvements in run_serial c0c463b qemurunner.py: Added raw mode in run_serial a5bfa11 qemurunner.py: Added login to start method 78e1c4f qemurunner.py: Add method run_serial 7ffb660 gnu-efi: BBCLASSEXTEND to native 73a876e qemu-native: Add debugging when qemu fails with qemu_cpu_kick_thread 6b16689 bash: append srcdir to run-ptest script a62e073 systemd: update SRC_URI 4c35cd9 create-pull-request: cleanup bashisms f535efb valgrind: Fix build with glibc 2.22 0e05155 librsvg: Upgrade 2.40.9 -> 2.40.10 a111555 nss: Upgrade 3.19.1 -> 3.19.2 d2164b7 mc: Fix QA warning depends on util-linux 97105c4 attr: narrow fix_symlink to populate_sysroot 07cbc40 meta-yocto-bsp: mpc8315e-rdb: Set KERNEL_DEVICETREE to mpc8315erdb.dtb db8886d distro/include: Move files to OE-Core for support distrodata 95683e6 tzdata: update to 2015f 6754469 tzcode-native: update to 2015f fd3dd25 kernel: Correct mishandling of linux.bin for building uImage 522af4f uclibc.inc: remove unused UCLIBC_EXTRA_LDFLAGS c8b7f09 lib/oe/package_manager: fix opkg feed generation d7581de upstream_tracking.inc: add no update reasons for base-passwd and chkconfig 6a024c2 distrodata: Make self-contained. a533776 perf: fix build breakage on kernels after 4.1 0f7df92 clutter-gst: update to 3.0.8 161180b Revert "base.bbclass/blacklist.bbclass: remove doc item when d.getVarFlags()" d6d7494 fotowall: update SRC_URI to use github instead of qt-apps.org bda0ac2 distcc: update SRC_URI to not use Google Code 5b1d7ca xf86-video-omapfb: switch SRC_URI to debian git repo b638fb2 stress: use BPN and BP in SRC_URI be79a17 texinfo: Upgrade 5.2 -> 6.0 a7aab66 qmmp: Upgrade 0.8.5 -> 0.8.6 0a662f2 libepoxy: Upgrade 1.2 -> 1.3.1 6d8ace0 autogen: update to 5.18.5 9d32d93 apt: update to 1.0.10.1 654ac86 bluez5: update to 5.33 514077b cdrtools: update to 3.01a31 072330d nettle: clean up license information 44ee875 packagegroup-core-sdk: Disable sanitizers on musl 69790b0 cml1.bbclass: make menuconfig task configurable d2598bf oeqa/selftest: remove tests for TCs that are no longer valid 61fe46d kernel.bbclass: dont assume ${B}/include/generated exists f820d02 sanity.bbclass: check SSTATE_DIR, DL_DIR and *MIRROR for broken symlinks 9d8a725 gstreamer1.0-plugins-base: Need more buffers in output queue for better performance e9a3cfa gstreamer1.0-plugins-base: Set need_segment after sink pad receive GST_EVENT_SEGMENT 96cc8de gstreamer1.0-plugins-base: Enhance SSA text lines parsing 41792fe gstreamer1.0-plugins-base: Don't set async of custom text-sink to false 48cfaec gstreamer1.0-plugins-base: Make memory copy when video buffer's memory is read only 19c96d7 gstreamer1.0-plugins-base: Do not change EOS event to GAP event f0f8f90 gstreamer1.0-plugins-base: Keep sticky events around when doing a soft reset 30e6657 gstreamer1.0-plugins-base: Fix output buffer can't writable after frame_map() issue ec5d33a gstreamer1.0-plugins-base: Update video alignment after video alignment 9a5a62a gstreamer1.0-plugins-base: Handle audio/video decoder error bda68cc gstreamer1.0-plugins-base: Bug fix for id3demux issue 1f156ab gnu-config: Update git version to latest and use it a71ef70 wpa-supplicant: Fix CVE-2015-4142 3b7a062 weston: improve parallel make race fixes a8804b1 bootchart2: update to 0.14.7 627d183 mesa-demos: Fix dependency for 'vg' support a16e0b4 bitbake: toaster: reduced amount of instance attributes 5fe1c19 bitbake: toaster: fix pylint warning 'no space allowed' 27a483d bitbake: toaster: fix test_get_json_call_returns_json again 3ba3cf2 bitbake: toaster: don't catch json.load exceptions b3ab9b1 bitbake: toaster: add header and docstings 8ee14d5 bitbake: toaster: remove unused import 91fea09 bitbake: toaster: get rid of class attributes 8af82c2 bitbake: toaster: put all test cases into one class 2f8c8e4 bitbake: toaster: get rid of AllProjectsViewTestCase 13e0417 bitbake: toaster: wrap long lines 9e3c0ee bitbake: toaster: fix test_get_json_call_returns_json test 0b80ef5 bitbake: runqueue.py: Add provides to taskdepdata 9527cd0 bind: upgrade to 9.10.2-p3 309982f recipeutils.py: allow all characters in regexes used to parse version strings aa8225f oprofile: reorder SRC_URI lines to fix upstream version check 13dce7c gptfdisk: update to 1.0.0 34b59db mesa: upgrade 10.5.8 -> 10.6.3 fbe44c4 xf86-input-vmmouse: Upgrade 13.0.0 -> 13.1.0 f0ad4ce pulseaudio: Add systemd to PACKAGECONFIG if enabled in DISTRO_FEATURES 3255d00 systemd.bbclass: Use systemd_system_unitdir 319a69f bitbake.conf: Add nonarch_libdir and base systemd vars on it 6617347 bootimg.bbclass:iso: determine the -iso-level only if there is a rootfs d00f88b bash_3.2.48: dont include target CFLAGS in host LDFLAGS 101fac5 ca-certificates: Update 20141019 -> 20150426 7137a31 uclibc: backport upstream fix for SH4 670244e libiconv_1.11.1: merge build and packaging fixes from libiconv_1.14 2601d52 libiconv_1.11.1: fix LICENSE declaration, LGPL -> LGPLv2.0 5d03ba2 gettext_0.16.1: add -lrt and -lpthread to LDFLAGS for uclibc builds c66aca7 gettext_0.16.1: remove obsolete uclibc specific patch 3893a4f which: Upgrade 2.20 -> 2.21 d70a3db vte: Fix LICENSE to LGPL2.0 acc0af6 fontconfig: Upgrade 2.11.93 -> 2.11.94 0bf30e5 gtk-icon-utils-native: Upgrade 3.16.4 -> 3.16.6 3205b86 gtk+3: Upgrade 3.16.4 -> 3.16.6 f41818c gstreamer1.0-plugins-base: Enable pango packageconfig by default 38d5255 initscripts: Fix regression for requiring /bin/bash 8b83808 qemu: upgrade to 2.4.0-rc4 b698e2e libinput: add configure arg and PACKAGECONFIG for libunwind fcc3afc cups: upgrade to 2.0.4 5f1615e resolvconf: upgrade to 1.77 c4040ea binutils: 2.25 -> 2.25.1 31eb386 qemu: add ptest sub-package 800ebee rt-tests: fix redo install error 44bbb40 bash: 4.3 -> 4.3.30 280a895 libcheck: 0.9.14 -> 0.10.0 9d162de file: 5.23 -> 5.24 9170c34 git: 2.4.6 -> 2.5.0 a9b41db boost: add python3 support c75cefe libpam: Fix patch broken during upgrade ad841db security_flags.inc: disable -pie and -fpie from Python3 compilation. 9b97a06 wic: release 0.2.0 8ce8328 wic: code cleanup: pylint misc.py 8421e0e wic: code cleanup: remove unused code 87a846d wic: Report recipe name for native commands daa8109 wic: Improve 'wic help overview' content 04c5307 wic: improved usage text 57b3e39 stress: update checksums to match upstream tarball da0f503 create-pull-request: cd to relative directory d31f89b wpa-supplicant: Fix CVE-2015-4141, CVE-2015-4143, CVE-2015-4144, CVE-2015-4145, CVE-2015-4146 177d463 xf86-video-intel: fix yocto/oe-core wreckage from libdrm upgrade 37e7846 oeqa/qemurunner: Improve runqemu log output debug 0968e3a runqemu: Handle device names like tapX@NONE 8020a9e runqemu: Add error handling for unexpected tap devices ecec4af weston: Fix parallel make race 8b847ff combo-layer: fix action_pull for unknown branch b2a0c2f combo-layer: enhance output in action_pull 0658434 qemurunner: Improves checking for server and target IPs on qemus parameters 58197f3 bitbake: toastergui: layerBtn Fix build trigger mechanism a65099e bitbake: toastergui: Fix typo on layers in project filter condition 5194f04 bitbake: toastergui: Move click disabled check after table ready event c1993d0 bitbake: toastergui: Machine select button url parameters change b12e51c bitbake: toastermain: Add a longer default database timeout af72d0f bitbake: toastergui: Move layerdetails view definition to the views.py da4c663 bitbake: toastergui: Fix toastertable table header reference e616c20 bitbake: toastergui: libtoaster typeahead Add in results highlighter aad3800 bitbake: toastergui: libtoaster: typeahead resiliency for slow server 0494a27 bitbake: toastergui: tests Fix and more comprehensive typeahead unittest 4d7944d bitbake: toastergui: views Standardise the fields project layer response 951e40d bitbake: toasterui: views Remove unused xhr_typeahead view definition 1e7707b bitbake: toastergui: libtoaster Throw an exception no url is specified aff29d2 bitbake: toastergui: Switch to using the new toaster typeahead widget 73367c2 bitbake: toastergui: Add typeaheads layers, machines, projects, recipes f4e51ff bitbake: toastergui: widgets Add a typeahead widget 68128ad bitbake: toastergui: tables Use util functions for the common querysets c4e7113 bitbake: toaster: orm Add util functions to return common querysets d3b9927 bitbake: toaster: orm Add util function to return the url to layerversion c8bc7ee bitbake: toastergui: add action to empty "most built" recipes 1a0fa6c bitbake: toastergui: fix spacing in the import layers page 0378aad bitbake: toastergui: remove project name from layer change notification 69c6f1f bitbake: toastergui: change link styles in alert-info 569567d bitbake: toastergui: breadcrumb fixes d47358f bitbake: toastergui: spacing and top nav style change a8b7234 bitbake: cooker: Resolve file monitoring race issues when using memres bitbake 55c662d builder: Fix multilib compile failure 22078d5 bitbake: bb.parse: properly error out on filesystem errors 75fc6bf bitbake: bb.cookerdata: don't show traceback for ParseError/ExpansionError d2bf05f perl: fix build failure if building dir has the "blib" string aaf1033 rootfs.py: fix PRE/POSTPROCESS_COMMANDS for rpm and deb 10196e3 python3: delete patches that don't get applied anywhere b5e9dbb python3: remove 2to3 symlink from package python3-2to3 0b69680 python3: remove package python3-robotparser 3c53a2b python3: detect libraries in STAGING_LIBDIR 016f5ae builder: fix USERADD_PARAM f292979 useradd_base.bbclass: do not warn when the user exists fd92142 useradd_base.bbclass: print PN when bbnote/bbwarn/bbfatal b741780 base.bbclass/blacklist.bbclass: remove doc item when d.getVarFlags() 1df8af4 base.bbclass: move invalid PACKAGECONFIG checking to insane.bbclass 6087a04 busybox: enable support for sha1sum and sha256sum applets 40d64a5 busybox: support mount via label for btrfs and squashfs a2fad2b busybox: disable fatattr in defconfig 6618cb4 busybox: disable sha3sum in defconfig 35f02c9 busybox: refresh defconfig for busybox v1.23.2 7ea9595 busybox: re-order defconfig to align with busybox 1.23.2 be79846 busybox: remove CONFIG_FEATURE_VI_OPTIMIZE_CURSOR from defconfig 52328c2 dhcp: fix installed not shipped warning for lib32 5398b9d populate_sdk_ext: pass BBPATH to devtool --bbpath 84ad12e devtool: add --bbpath argument 2251f71 populate_sdk_ext: use lnr, not ln -sr, for portability d16b62f python-scons: 2.3.4 -> 2.3.6 e91ce72 kexec-tools: 2.0.9 -> 2.0.10 020f33c mpfr: 3.1.2 -> 3.1.3 d0be3ae libmpc: 1.0.2 -> 1.0.3 e87b533 opkg: solve inconsistency of using different lists directories 5c76072 base.bbclass: Note when including pn with INCOMPATIBLE_LICENSES 445c49c init-install-efi.sh: Check if an installation device is present e4a4c9b bitbake: bitbake-user-manual-fetching.xml: note about URLs with semi-colons 7f4eb55 bitbake: bitbake: toaster: Add is_image field to the Recipe model 9be8ea6 bitbake: bitbake: toaster: Uncomment logging messages 79c8ffa bitbake: bitbake: toaster: get rid of _createdirpath function 3b6e5df bitbake: bitbake: toaster: Fix usage of wrong variables a403ddb bitbake: bitbake: toaster: Wait for toaster gui to come e68370c bitbake: bitbake: toastergui: Toastertables don't replace dash in cache key 6520feb bitbake: toaster: toastergui: run pylint on the toaster files 1da5e0a bitbake: toaster: tts: execute tests in numeric order e6419cc bitbake: toaster: tts: make sure to import data ada494d bitbake: toaster: tts: delete the database only if created ef70e13 bitbake: toaster: tts: delete pyc files before the tests start f9eb958 bitbake: toaster: tts: fix startup and cleanup for managed mode ba667a0 bitbake: toaster: tts: improve logging in urlcheck.py faaa5d4 bitbake: toaster: tts: improve debugging information f169733 bitbake: toaster tests: gitignore and use absolute path for log file 73f1497 bitbake: toaster: tts: clean up HTML5 compatible url list 1640a65 bitbake: toaster: tts: fix pylint warnings 160d610 bitbake: toastergui: Remove angularJS and projectapp based on angular 829fe32 bitbake: toastergui: project page Add inline project name change feature c76137e bitbake: toastergui: layerBtn use libtoaster for change notification b90a253 bitbake: toastergui: newbuildbutton Fix removed elements 11627fc bitbake: bitbake: toastergui: newbuildbutton Fix typo on project save function c385f15 bitbake: toastergui: Change build button popover to a build-button 10ffe1b bitbake: toastergui: base Use removeAttr / attr be2b423 bitbake: toastergui: Fix Duplicate layer importlayer api calls 1a2f120 bitbake: toastergui: libtoaster: Add guard against missing name property a9549e8 bitbake: toastergui: libtoaster Make sure we always pass format=json 691d547 bitbake: toastergui: css Remove redundant css rules 80c1586 bitbake: toastergui: Add new project page and navigation 258c929 bitbake: toastergui: css Add new rules for new project page 9af7ce5 bitbake: toastergui: http api Add guard against incomplete change requests 7a589c0 bitbake: toastergui: tables Add name field to layers table 8ff56b0 bitbake: toastergui: libtoaster Add show change notification function 1b13222 bitbake: toastergui: Standardise the layer object property layerdetailurl df999d2 bitbake: toastergui: Remove erroneous CSS property dd8c78b bitbake: toastergui: importlayer Add format type to JSON calls d826d4e bitbake: toastergui: base Fix html indentation b06a633 bitbake: toastergui: Implement new project navigation 3d3a2db bitbake: toastergui: Implement new top navigation design 8acab25 bitbake: wget.py: fix incorrect regexes 4c2f28b bitbake: cooker: properly fix bitbake.lock handling 18dfdb0 oeqa/commands: Increase qemu boot timeout to match testimage.bbclass b850da9 license_class: Fix choose_lic_set into incompatible license 4d027f0 distrodata.bbclass: drop the manual upstream version check logic a1ec19c distrodata.bbclass: do not skip -native recipes in checkpkg task b76c908 nss: advance to version 3.19.1 4c8f274 perf: add liblzma depdenency 77e3946 guilt-native: set PV in the recipe to allow upstream version check 5f9d379 stress: use developer's website for SRC_URI 1ef03d5 shared-mime-info: reorder SRC_URI lines to fix upstream version check 7258205 syslinux: drop v6.xx/ from directory path in SRC_URI 91c9532 pseudo: fix upstream SRC_URI to enable upstream version check 0bb94f4 libmad: use ftp instead of sourceforge for consistency with libid3tag eac846b eglinfo: change version from 1.0 to 1.0.0 to match the upstream git tag f606c52 ossp-uuid: update SRC_URI to not use Google Code 689dd4e adt-installer: update SRC_URI to not use Google Code 891ee70 libproxy: update SRC_URI to not use Google Code 79e41e3 oeqa/sstatetests.py: add annotator to test_sstate_32_64_same_hash [YOCTO #6006] d1e2d28 oeqa/sstatetests.py: add decorator to test_sstate_nativelsbstring_same_hash 36eb8f9 alsa-utils: assume the alsa storing is success if machine has no sound card dd8db95 tzdata: Add marking for config files in recipe 90bc2f3 create-pull-request: Implement -d option 363bec0 smartpm: set noprogress for pycurl 5452625 qemu: upgrade to 2.4.0-rc3 a1f78e4 guile: Add earlyclobber constraint to the SMULL outputs. 8f12739 dbus: upgrade to 1.8.20 f494fc2 gcc-multilib-config: Adapt mips for mips64 and different gcc versions c125ef1 cross-canadian/gcc: Various mips64 fixes 7b56b2c glibc: don't override TUNE_CCARGS for MIPS 05879d6 cross.bbclass: override MULTIMACH_TARGET_SYS 25fad72 packagegroups-cross-canadian: don't override TRANSLATED_TARGET_ARCH ec38dac arch-mips.inc: don't override TRANSLATED_TARGET_ARCH ac692c6 multilib_global: Fix PREFERRED_VERSION mapping for gcc-cross-canadian d3f991a cross-canadian: Add symlinks for multilib cases c114833 libgcc: Fix symlink handling in cross-arch multilib cases 6c4b21d gcc-multilib-config: Tweak naming of options to match gcc's expectations cc21092 gcc-cross-canadian: Add symlink to real-ld alongside other symlinks c4e40a4 gcc: Add patch to handle on target multilibs better a95a14a packagegroup-cross-canadian: Make the code more readable 146905a utils: Handle MLPREFIX in all_multilib_tune_values() f351c03 testimage: testsdk fixes/improvements 93360e8 oe-selftest: devtool: fix teardown warning in test_devtool_update_recipe_append 9a672bd devtool: use tinfoil shutdown method 3167580 u-boot: fix extern inline build errors for gcc 5 3243682 poky: Fix SANITY_TESTED_DISTROS lsb name for openSUSE 13.2 9890344 upstream_tracking.inc: remove outdated information 87d6468 package_regex.inc: updates to fix upstream version checks for multple packages e73ba3b distro_alias.inc: drop reference to Google Code 3d6893a distro/maintainers.inc: maintainer updates 405bb5b combo-layer: fix AttributeError traceback. 54c9219 sshcontrol: Use os.environ.copy() instead of copy.copy() e384d9b pixbufcache: Use sceneQueueComplete event to simplify usage 64acfb3 arch-armv7a.inc, feature-arm-vfp.inc: add tunes for vfpv3 and vfpv3d16 8f270dc elfutils: fix stack usage warning 133ad63 bind: upgrade to 9.10.2-P2 6ff6cc4 pax-utils: 1.0.3 -> 1.0.5 855a442 man-pages: 4.00 -> 4.01 8998358 help2man-native: 1.46.4 -> 1.47.1 d1ee2d7 gnupg: 2.1.5 -> 2.1.6 45efeff cracklib: 2.9.4 -> 2.9.5 2b9dca1 less: 478 -> 479 4e87fef libuser: 0.61 -> 0.62 2d7a1a7 git: 2.4.4 -> 2.4.6 222b1a9 lsbtest: sync test suite packages version 60f6dcb qemu: add PACKAGECONFIG for gnutls fc8902f qemu_git.bb: remove it 7635f09 lighttpd: 1.4.35 -> 1.4.36 96433ee opkg-utils: use ${bindir} instead of hardcoding /usr/bin 0e9a984 run-postinsts: use ${localstatedir} instead of hardcoding /var/lib 1ce5d59 initscripts: urandom: respect ${localstatedir} instead of hardcoding /var 6b4cfaa opkg: read config file from ${sysconfdir} instead of /etc 890f24a rsync: use ${sysconfdir} instead of hardcoding /etc 856082c libepoxy: Don't try to use python3 during configuration d897507 toolchain-scripts: Extend to cover nativesdk compiler tools (e.g. nativesdk-gcc) f66ead9 linux-firmware: upgrade to commit 75cc3ef8ba6712fd72c073b17a790282136cc743 dab511c gcc: Add support for nativesdk-gcc 3b7c384 binutils: Add nativesdk support 7f654dc lib/oe/classextend: Fix nativesdk double name mapping eb1c88c distro/maintainers.inc: Fix parsing error due to lack of " at end. 19f77cf distro/maintainers.inc: remove Saul Wold from maintainership 798fc18 ref-manual: New description for KERNEL_CLASSES variable. 49bcb74 dev-manual: Applied review edits to devtool section. ce97654 poky.ent: Added "findutils" and "which" packages to Fedora essentials. c3ac09f kernel-dev: Added 'make defconfig' details for own source work 3b93408 dev-manual: Added a "biosfilename" item to the runqemu command section. cb19478 ref-manual: Added glossary description for BB_ALLOWED_NETWORKS. ab23dd9 yocto-project-qs and others: Rewrite of the QS add1f73 ref-manual: Fix to QA error message. 3cd876d ref-manual: Updated the IMAGE_TYPES glossary description. 68620d5 ref-manual: Fixed grammar issue in the oelint.bbclass section. 282fe35 ref-manual: Updated UNKNOW_CONFIGURE_WHITELIST variable 926d70f kernel-dev: Added kernel-devsrc information for building on target 39bcabf toaster-manual: Removed the daemon requirement 3423f3b poky.ent: Updated the YOCTO_RELEASE_NOTES variable 9325599 ref-manual: Updated the UNKNOWN_CONFIGURE_WHITELIST variable. 5644756 kernel-dev: Added new requirement for working with yocto-linux-custom.bb 4764062 ref-manual: Updated ARCHIVER_MODE and archiver.bbclass 4ec8e88 documentation: Updated customization layers to point to XSL mirrors 2de3283 ref-manual: Fixed "TBD" section cross-reference in KBUILD_DEFCONFIG f9df1a4 kernel-dev: Added new "in-tree" defconfig file section. 540b8ef dev-manual: Added new section on "defconfig" files. 7b1697b kernel-dev: Added detail to start of generating config file 7baadd8 ref-manual: Removed PRINC entry from the glossary e52dd53 toaster-manual: Added detail for the URL to access Web Interface ec068fe ref-manual: Added new variable description UNKNOWN_CONFIGURE_WHITELIST 744893b ref-manual: Updated EXTRA_IMAGE_FEATURES variable 64d7456 dev-manual: Updates to kernel configuration in the "Kernel Modification Workflow" section 3d2f2b6 dev-manual: Added a link to reference defconfig files. 8c43d0f dev-manual: Minor edits to "Configuring the Kernel" section. 72169b2 ref-manual: Added new glossary description for KBUILD_DEFCONFIG. 6e12a35 adt-manual: Updated the "Getting the Images" section for eclipse-debug d9cf575 ref-manual: Added and updated variables to support calling functions fb82bcb ref-manual: Added 'ptest' to the list of Distro Features 26f9777 ref-manual: Updates to the "Speeding Up the Build" section e05c636 ref-manual, dev-manual: Added info about make race work-around 8c9fb71 ref-manual: Formatting fixes and tag fix. 935f5d7 ref-manual: Updates to BB_NUMBER_THREADS and PARALLEL_MAKE 113c427 ref-manual: Added descriptions for four new variables 2a95850 adt-manual: Emphasis on populate_sdk as bitbake method for building toolchain 95108a1 dev-manual: Updated requirements for writing a new test. d0531db ref-manual: Added new variable description for ARCHIVER_MODE 46f8649 ref-manual: clarify allarch wrt RDPENDS and TUNE_PKGARCH a894da0 ref-manual: fix example of setting root password using extrausers 5e357ed oe-selftest: restore gummiboot tests 1b88b74 bitbake: build: Exit scripts with result of last shell function eeb412d harfbuzz: upgrade to 1.0.1 5d8739f opkg-utils: fix bashism in opkg-build 5981ccf cross-canadian: Put links in place for uclibc and musl 72777f4 toolchain-scripts: For non-glibc, pass compiler options to ensure the correct libc selection ae344c1 oeqa/qemurunner: Fix AttributeError: QemuRunner instance has no attribute 'server_socket' 7c71bc8 nativesdk-qt4-tools: depend on nativesdk-qt4-tools only if DISTRO_FEATURES includes x11 997893e security-flags: Disable PIE for coreutils, elfutils, gcc, iptables f4f72b1 qemurunner: Show last 25 line of log, not 5 e3aa7a3 targetcontrol: Improve logs by outputting qemu boot log in case of failure edc7780 oeqa/selftest/devtool: use new runqemu function c256bbc oeqa/selftest/imagefeatures: remove gummiboot tests 86f0232 oeqa/selftest/imagefeatures: fix RPM4 test 90a52ff oeqa/selftest/imagefeatures: fix SSH without password tests 76d8c4e oeqa/selftest/imagefeatures: Use QemuTarget code 01ccad1 oeqa/targetcontrol: write QemuRunner log output to a file a6eb5ec oeqa/utils/qemurunner: fix error handling if runqemu exits with an error 7f9b42a oeqa/utils/qemurunner: avoid blocking on stty when running under oe-selftest 4855ec3 oeqa/utils/qemurunner: fix logging 69bae06 oeqa/targetcontrol: create test directory before copying rootfs image 67a3807 oe-selftest: add scripts/lib and bitbake/lib to path 3108e00 oeqa/recipetool: allow templayerdir override 7eb55b4 oeqa/recipetool: add tests for appendsrcfile(s) 6e7ee4e oeqa/recipetool: refactor / split out RecipetoolBase 51d760e oe-selftest: add libdirs from BBPATH to sys.path d2023c3 oe-selftest: obey oeqa.selftest.__path__ 0eb40ba devtool: also load plugins from BBPATH da02f48 recipetool: parse global args early 7136678 recipetool: also load plugins from BBPATH 89878f5 recipetool.append: add extralines arg to appendsrc e28c4ba recipetool: catch BBHandledException from parsing 813c417 toaster.bbclass: Fix ValueError e86dc1a gcc-target 5.1: fix for libcc1 fd91e71 gcc5: Upgrade from 5.1 to 5.2 53caeeb sudo: upgrade to 1.8.14p3 898fd07 sed: Make locale depenencies glibc specific d941141 updated-rc.d: Only add dependencies in target case e9804c7 oeqa: Add exception handling around qemu process cleanup 6381d45 update-rc.d: Include updated-rc.d in DEPENDS 4ab6b46 qemu: change default version to 4.1 ad5414b yocto-bsps: add 3.14-rt configuration 3a4b0d6 linux-yocto: introduce 4.1 versioned recipes f7ee1c9 kern-tools: standalone tree configuration c29aac6 linux-yocto: split meta data from kernel repository 741a44c perf: Fix config file conflict with 4.1 kernels 12b5a44 byacc: upgrade to 20150711 2963cc2 image: Support for qcow2 6dcd355 qemu: upgrade to 2.4.0-rc2 ff037a6 boot-directdisk: Make kernel image inclusion conditional. 66bad55 diffstat: upgrade to 1.60 c9553b8 tcf-agent: Update to version 1.3 00a706e mklibs-native: Remove dependency on dpkg 9a539cb oeqa/qemurunner: don't assume hostname starts with qemu b0f034e oeqa/runtime/parselogs: don't use uname to get MACHINE 46cb3f0 oeqa/selftest/imagefeatures: handle killpg victim not existing 7b33ced oeqa/runtime/parselogs: add more x86 log exceptions 672517e oeqa/sshcontrol: Ensure we don't trigger ssh-askpass 98b5364 sed: rrec on locale-base-ru-ru, not rdep f5f6748 bitbake: data_smart: Improve override history logging 9901415 bitbake: data_smart: Improve performance of infer_caller_details() 67c6cc8 bitbake: data: Clean up datastore accesses and True/False values fdfb3fd bitbake: data: Add newline after the last export in emit_func ada9300 bitbake: tinfoil: Add shutdown method 901be2c bitbake: bitbake-selftest: Add -v option for verbosity aaea533 bitbake: tests/parse: Add BBCLASSEXTEND multiple data store corruption reproducer 19f290f bitbake: data_smart: Add CoW approach for overridedata 9120130 linux-libc-headers: update to 4.1 c56cb31 recipetool: appendsrcfile: handle S == STAGING_KERNEL_DIR 5c080f7 recipetool: appendsrcfile: use -D, not -d for destdir 023e9b2 recipetool: appendsrcfile: fix duplicate SRC_URI check 51ae491 oeqa/buildoptions.py: automate test case 926, archive work dir and export source d8c9810 oeqa/buildoptions.py: automate test case 563; build directfb image 99e39a1 common-glibc: define bash_cv_getcwd_malloc 1b17b58 oeqa/QemuRunner: don't use bb for logging d87878e cronie: Upgrade v1.4.12 to v1.5.0 fbea156 bootimg: remove previous FATIMG before creating a new one 50b5186 mesa-demos: Fix building demos which require GLU. 3b7961f gtk+: require either x11 or directfb DISTRO_FEATURES to be set 08f0136 tune-cortexa17: add tunes for ARM Cortex-A17 fd31e62 ncurses-terminfo-base: include screen-256color 6e78cc4 *image.bbclass: Consolidate ROOTFS_POSTPROCESS_COMMANDs 061d6ec gtk+3: fix Wayland-only builds 271b9b6 lttng-ust: 2.6.1 -> 2.6.2 51b590d u-boot: Upgrade to 2015.07 release 99b082d volatile-binds: correct path of command umount 31531dd sqlite3: Upgrade 3.8.10.0 -> 3.8.10.2 83f19d4 oeqa/syslog: Removed a pointless testcase and added skip for another. cc2202b oeqa/runtime: Added decorators for the remaining auto tests. 1bfb932 oeqa/runtime: Added a new automated rpm test. 0d1f10e oeqa/prservice: add useful failure messages to test cases 68f546e oeqa/recipetool: add useful failure messages to test cases 9d02d3f oeqa/pkgdata: add useful failure messages to test cases 7d01c59 oeqa/runtime: Added one runtime testcase in connman. 613cbe5 rpm4: Drop native RDEPENDS 6deffe1 recipeutils.py: get_recipe_pv_without_srcpv remove prefixes from pv 74240cc oe/recipeutils.py: get_recipe_upstream_info update to get revision e28c1eb oe/recipeutils.py: get_recipe_upstream_info only use sfx and pfx when exits 205c39b bitbake: tests/fetch.py: Updated test name FetchMethodTest -> FetchLatestVersionTest 22d2f7b bitbake: fetch2/wget.py: latest_versionstring now returns (version, revision) bd5167d bitbake: fetch2/git.py: latest_versionstring now returns (version, revision) 4bbc5dd bitbake: fetch2/git.py: latest_versionstring search in all tags bc0f1cf libx11: update Upstream-Status on a merged patch d6fa512 oeqa/selftest: Fix imagefeature testcases not to interfere with testimage on AB aa05be4 distro: remove gamin metadata 94c50ef Revert "create-pull-request: Fix error on 2.0 versions of git" 0a5f2bc sanity.bbclass: Remove check if /tmp is writable 9f87dcf local.conf.sample: Added /tmp to BB_DISKMON_DIRS f5206e8 bitbake: data_smart: Use deepcopy for overridedata b68de1c native: Move virtclass override to earlier so DEPENDS is handled correctly f8a6931 qemu: upgrade to 2.4.0-rc1 c5f1681 pseudo: 1.6.5 -> 1.6.7 9a92500 bitbake: toastergui: make our tables Chrome-happy 0c0ec86 bitbake: toaster: continue processing layer dependencies despite errors 0f8d89c core-image-lsb-sdk: use kernel-devsrc to ensure kernel module builds work 557bca8 kexec-tools: change powerpc memory size limit c49cfc2 kexec-tools: disable the GCC's stack protection for purgatory code 88dd997 libpam: Upgrade v1.1.6 -> v1.2.1 e9b9f8c lttng-modules: 2.6.1 -> 2.6.2 8325277 btrfs-tools: 4.0.1 -> 4.1.1 d0ae6fa pulseaudio: rdepend on modules referenced by start-pulseaudio-x11 7942e64 neard: merge .inc file a2d6745 neard: remove overridden do_install 6257bf7 gnome-icon-theme: clean up icon-naming search 350b73f python-smartpm: Improve warnings/errors consistency fbec920 lib/oe/package_manager: Use log-level warning instead of quiet 0076525 package_ipk/deb: Drop version information from RPROVIDES 771126c debian: Add versions to RPROVIDES 920819f gamin: remove 2563aa5 extensible sdk: Error when trying to install as root. 873b8ed subversion_1.8.13.bb: Upstream-Status updated to Accepted c54472c libcap: control attr PACKAGECONFIG via xattr DISTRO feature 2173c00 libcap: avoid losing default Large File Support CFLAGS 26b2db8 libcap: always link apps dynamically 058b53e linux-yocto/3.19: drm and axxia updates d7c633c linux-yocto/3.14: fix gcc 4.9.4/5.1 build issues, yaffs2 memory leak 46720f0 qemu: upgrade to 2.4.0-rc0 56542b8 maintainers/distro-alias: rename gtk-update-icon-cache to gtk-icon-utils 5e7f26d gtk-icon-utils: Rename, upgrade, add binary 5863080 package_regex.inc: Add rules for clutter recipes d3809b7 bitbake: lib/bb: provide mechanism to bypass UI log suppression 5261c5b bitbake: lib/bb/process: check output of select() before reading extrafiles 723411d lib/oe/recipeutils: fix replace_dir_vars to return the correct variables 7e7e123 sstate.bbclass: remove redundant cd and mkdir commands 4d77270 oeqa/devtool: add useful failure messages for some test cases a7f23c6 bitbake.conf: fix qemu user mode linux for qemuarm64 77cd461 runqemu-internal: add temporary disk interface to qemuarm64 74dc0c8 oeqa/buildoptions: add useful failure messages for all test cases eeed010 oeqa/bblayers.py: add useful failure messages to all test cases 2606cd2 oeqa/bbtests: add useful failure messages for all test cases e20f810 connman-conf: fix SRC_URI_append e60597a classes/logging: allow shell message functions to work in devshell ddc1df3 Use die() or bbfatal_log() where the log should definitely be printed 757be60 classes/base: fix die() to print the full log 546bfe8 classes/useradd: don't read bbnote/bbwarn/bbfatal values 09fe2fd guile: Add explicit directories to guile_cross_config bca59f9 chkconfig: use explicit directories in obey_variables() 4e9ea09 dmidecode: use absolute paths in fixup task 5352e65 depmodwrapper-cross: set S correctly 794ea78 qemuwrapper-cross: set S correctly 3172250 opkg-arch-config: set S correctly 9cbc0c1 systemd-compat-units: set S correctly 13dbdd4 gnupg: fix build of GPLv2 version of gnupg with gcc 5 aad604f lighttpd: Fix mod_cgi to avoid it buffers data without bound. 88d7df4 systemd: update the status of configurable root patch c713a22 kernel: fix path assumptions in tasks a08f8db libc-package: don't abuse B to change directory af2deca python: add explicit directories in py_package_preprocess 62dae66 boost: add dirs flag to boostconfig task c5c80d9 ptest: add dirs flag to ptest tasks 6e8313d create-pull-request: Fix error on 2.0 versions of git 1195b41 grep: use internal regex library with musl-libc 7e51763 systemd: add PACKAGECONFIG for valgrind e47a97a piglit: Fix floating dependency on freeglut fdbd322 systemd: recommend the vconsole setup units df2e393 gnu-config: set noexec for do_compile d890d81 glibc: print PN when bbwarn 1537381 newt: enable native builds 9f33c00 slang: enable native builds 8bffb5a mesa: respect MESA_EGL_NO_X11_HEADERS even with x11 in PACKAGECONFIG 3f9658a kernel-yocto: fix machine_srcrev check in do_patch 525ba4c initrdscripts: handle mmc device as installer medium ca869fd gettext-minimal-native: use MKIDR_P in Makefile.in.in 2b811ee perf: Modify SPDX_S directory to avoid do_spdx error. 4012fd3 do_unpack: move qa check of unpack into insane.bbclass c18fadb lttng: Fix timer calculation error a117fd5 libdrm: Upgrade to 2.4.62 6c3c74f expect: replace the STAGING_INCDIR with includedir ca789f0 midori: Depend on Adwaita, not gnome-icon-theme 80fdc5d sato-icon-theme: Inherit Adwaita, not gnome-icon-theme 7395925 matchbox-session-sato: set GTK_CSD env var 88ea874 gtk+3: Upgrade to 3.16.4 f71e473 adwaita-icon-theme: Add new icon theme for GTK+ b0079ec combo-layer: implement --hard-reset option d1a1dbb combo-layer: only allow fast-forward when pulling 60cebe6 apr: Fix packet discards HTTP redirect 3f79bf7 python-io: Add runtime dependency on contextlib 45772ba sanity.bbclass: Check if /tmp is writable b250b5c buildhistory.bbclass: Check output folder is present before creating files-in-$pkg.txt a79007b dbus-ptest: set INSANE_SKIP for build-deps 49f1d97 xserver-xorg: remove invalid ac_cv_file__usr_share_sgml_X11_defs_ent 191e93a apt: remove invalid ac_cv_glibc_ver db18fed glibc: remove invalid ac_cv_path_KSH 6ea080f git: remove invalid ac_cv_c_c99_format=yes 5ba0890 mc: Upgrade to release 4.8.14 1678926 alsa-plugins, pulseaudio: depend on speexdsp, not speex 505e1af speex: 1.2rc1 -> 1.2rc2 d8c3428 speexdsp: initial recipe ba07a69 dpkg: Fix for Fedora22 and new versions of tar bc2191d tar: Add symlink to tar from gtar 7f8286f classes/sstate.bbclass: Improve checkstatus using connection cache. 7699386 python-smartpm: Have native smart use nativepython 2ec97a2 opkg-build: Ignore tar error due to hardlinks issue when creating ipk files f1bf0b4 gcc: remove EXTRA_OECONF_INTERMEDIATE 9fee217 netbase: add rpcbind as an alias to sunrpc 75c877b oe/recipeutils.py: get_recipe_upstream_version returns 1.0 when not SRC_URI 5d0f8a6 intltool: Upgrade 0.50.2 -> 0.51.0 450dd5a harfbuzz: upgrade to 0.9.41 c3ac850 classes/logging: make shell message functions output to the console de2d643 qt4: fixes for sed command e2cf270 cups: remove invalid sed command 301e73b perf: remove invalid sed command 3f71c88 python-pygtk: remove invalid sed command d3904ca python: remove invalid sed command ee5b19d perl: remove invalid sed command d512cf2 mdadm: remove do_configure_prepend 911cb68 rpm: remove invalid sed command 8d1a344 qemu: remove invalid sed command 4e9c3db glibc-initial: remove invalid sed command e1c9739 opkg: remove do_configure_prepend af3f87c elfutils 0.163: remove do_configure_prepend 4a32362 i2c-tools: uprev to 3.1.2 1bd4ee1 gnome-icon-theme: inherit allarch 95083b2 archiver.bbclass: add do_deploy_all_archives 274389c populate_sdk_base.bbclass: don't inherit toolchain-scripts.bbclass 2d498b0 buildtools-tarball: Add inherit toolchain-scripts 960ed55 clutter-gtk-1.0: Upgrade 1.4.4 -> 1.6.2 d296521 clutter-1.0: Upgrade 1.20.0 -> 1.22.4 4094901 cogl-1.0: Upgrade 1.18.2 -> 1.20.0 383e48e xproto: Upgrade 7.0.27 -> 7.0.28 671a00b gcc-5: Backport patches for -Wno-narrowing behaviour fixes ee9e365 gcc-4.9: Upgrade to 4.9.3 0ae9afd bluez5: upgrade to 5.32 e9817d5 oeqa/sstatetests: Add NATIVELSB sstate signature equivalence test ee69463 recipetool/append: Fix selftest failure with multilib b60521c lib/oe/recipeutils: Ensure order of data store doesn't influence the result a730981 bitbake: tests/data: Add new data tests 4c386e1 bitbake: data_smart: Fix appendVar/prependVar 75a5855 bitbake: data_smart: Fix data expansion cache issues a259968 bitbake: data_smart: Fix keys() missing overrides 816acb6 bitbake: data_smart: Cache set(self.overrides) 0ac9c80 bitbake: data_smart: Improve override recursion handling 2dbb067 bitbake: data_smart: Tweak OVERRIDES value cache for performance d8ebb47 bitbake: data_smart: Seperate out the override cache c690d5b bitbake: data_smart: VariableHistory: Ignore override duplicates and overlap with CoW functions 933e196 bitbake: parse/ast/data_smart: Add parsing flag to getVar/setVar 95be16f bitbake: data_smart: Move override handling to getVar 7fc6f6c bitbake: data_smart: Cache overrides and fix data store 35a6f7d bitbake: data_smart: Fix cache clearance problems 577f160 bitbake: data_smart: Improve override handling e7ccd90 bitbake: data_smart: Remove need for update_data calls 42a5996 bitbake: data_smart: Defer append/prepend handling 5ae52ee bitbake: fetch2/wget.py: checkstatus disable SSL cert validation. 73b9cd9 bitbake: tests/fetch.py: FetchCheckStatusTest add cases for ftp and https. 804f1a2 bitbake: fetch2/wget.py: checkstatus fix using proxy handler 913631c bitbake: tests/fetch.py: Add FetchCheckStatusTest tests. 3b186fb bitbake: fetch2/wget.py: Add support of connection cache in checkstatus. 97c5ecf bitbake: fetch2/sftp: Set BatchMode=yes as argument to sftp 518abb7 bitbake: git.py: create a branch when checkout 61fbff2 bitbake: cooker/taskdata: Make NoProvider errors non-fatal to -e/-g options 625a6bf bitbake: prserv/db: Document history modes 3b50312 bitbake: lib/bb: set up infrastructure for shell message functions 8f8d336 wic: Set default set of bitbake variables b80ddb0 openssl: upgrade to 1.0.2d f9ea480 bitbake: fetch2: Add fetch parameter to checkstatus bf6c21c bitbake: fetch2/__init__.py: Add FetchConnectionCache class 3b5b74b bitbake: knotty.py: Make sure bitbake.lock is unlocked before exiting 67eaefe bitbake: command.py: Unlock function included into CommandsSync class 7bccf59 bitbake: cooker.py: Lock/Unlock members function into BBCooker 4b9fc47 libtool: Fix regression from previous commit d245899 testimage: Add support for test suites manifest files 129aed8 testimage: Support full TC path such oeqa.runtime.pnp.get_memory_size in TEST_SUITES 92c10c9 bootchart2: add runtime dependency 975cb96 oeqa/selftest: Added 2 testcases and updated setup for other two in imagefeatures. 1881c5e systemd: add PACKAGECONFIG selinux fbe51e0 initscripts: add /sbin/sushell for systemd service debug-shell fb9e697 opkg-build: Ignore tar error due to hardlinks issue when creating ipk files 64df5e5 coreutils: upgrade to 8.24 e2ac1e8 qemu: fix CVE-2015-3209 8b3666e rpm: disable external key server 925397f gdb: Fix detection of 64-bit PPC inferior in gdbserver 05b02d2 python-smartpm: 1.4.1 -> 1.5 f9ac3f3 elfutils: 0.162 -> 0.163 d32b383 less: 471 -> 478 5de2efa nfs-utils: fix to start nfs-server correctly in systemd 5a0f48f ltp: Add inhibit of split 32cd0c8 systemd: fix immediate unmount of mountpoints not in fstab 91c1574 report-error: expand all variables 7250010 bitbake.conf: Add BUILD_ARCH and SSTATE_PKGARCH to HASHBASE whitelist 3e4edfd pseudo: Exclude SITEINFO_BITS from checksums 9fa842a oeqa/sstatetests: Add test for comparing 32 and 64 bit sstate checksums 0aaa67a oeqa/bbtests: Fix to ensure DL_DIR is set 25702f3 bitbake: cooker: Improve DATE/TIME handling eb068cc file: fix long-options 21bdccb ca-certificates: remove Debianism in run-parts invocation 9238984 image_types.bbclass: add support for multiple ubi sizes d93171c subversion_1.8.13.bb: Regex modified to allow '-D' in paths 389d010 mklibs-native: two fixes abe6459 security_flags: eliminate FORTIFY_SOURCE for debug builds c4437f1 Update alternatives of man pages 44544fc man: replace ',' with '#' 09febe0 ldconfig-native: Add 64-bit flag for ELF64 entries daec53e combo-layer: modified to generate better commit messages. 8a0cb22 mesa-demos: rename clear 4913e35 libdrm: remove git recipe, merge inc 86fc0b2 lsbinitscripts: avoid exit 1 in functions script eb29cea rpm: check if the argument(rootpath) exists or be writable 09a5cb0 image_types_uboot: remove the middle file d7826f2 libav: update i586 TARGET_ARCH test to also handle i686 090e957 lsb: update i586 TARGET_ARCH tests to also handle i686 a1bb764 gcc: update i586 TARGET_ARCH tests to also handle i686 d1874be multilib_global: expand multilib pref values properly cb196d2 core-image-kernel-dev: Define a correct subset of TEST_SUITES to run for this image 992c02c perl: Undefine finitel for musl ad11256 valgrind: build with altivec only if it supported 5e032f1 squashfs-tools: upgrade to newer revision from git 44f0c01 dhcp: modify dhcpd.service to make it start successfully and add systemd service files dhcpd6.service ae5c24b grub-efi: Allow to use file name different from grub.cfg in GRUBCFG 923fb2e oeqa/selftest: Added new testsuite for image features. 75fa966 scripts/oe-selftest: Added mechanism for including/removing bblayers.inc ffa54b9 oeqa/selftest: Added @testcase decorators to oeselftest testcases. 9f91aa6 oeqa/selftest: Add methods to manipulate bblayers.conf in base.py cd37932 report-error.bbclass: Added file syncronization. 046f1ab volatile-binds: Set S to prevent QA warning 2513e02 systemd-serialgetty: Set S to prevent QA warning 18d71ed bitbake: main: add skeleton documentation for the recipe:do_task syntax 62caaa4 bitbake: fetch2: Checkout to correct ref begore init and update submodules a24fdca oeqa/bbtests: Fix race over DL_DIR and SSTATE_DIR 929a109 libffi: fix typo in fix-libffi.la-location.patch 0e82f9f texinfo: fix typo in dont-depend-on-help2man.patch da65172 valgrind: fix typo in valgrind-remove-rpath.patch 3990d42 rpm: fix typo in rpm-reloc-macros.patch 6fd8459 rpm: fix typo in rpm-realpath.patch cb52477 python-numpy: fix typo in no-host-paths.patch 0436dc1 pkgconfig: fix typo in fix-glib-configure-libtool-usage.patch a806971 flex: fix typo in do_not_create_pdf_doc.patch d5e0177 dosfstools: fix typo in nofat32_autoselect.patch a44f203 glibc: fix typo in add_resource_h_to_wait_h.patch 6edd1f0 base-passwd: fix typo in add_shutdown.patch 2dd57d9 dpkg: fix typo in tar-error-code.patch, Upsteam -> Upstream 67ab9eb distrodata.bbclass: fix typo, Upsteam -> Upstream a49a850 maintainers.inc: reassign audio recipe maintainership 7a40230 distro/package_regex.inc: Use GNOME_STABLE rule for vala 5706b0c tune-core2.inc: set X86ARCH32 to i686 (instead of i586) df61141 wayland: enable nativesdk builds df7386e wayland: always build wayland-scanner fa0845f mesa: Add blank r600 PACKAGECONFIG d451627 cmake bbclass: fix support for native builds 6b76ee0 libinput: Upgrade 0.7.0 -> 0.18.0 43e5bf4 wayland: Upgrade 1.6.0 -> 1.8.1 3ff474c weston: Upgrade weston_1.6.0.bb -> weston_1.8.0.bb edb240b libpciaccess: Upgrade to 0.13.4 7803567 gdb: Disable lttng support for musl 4a52eb5 feature-arm-thumb.inc: Fix ARMPKGSFX_THUMB value cea2042 sanity.bbclass: Check if /tmp is writable 38d8f2e rootfs.py: Add check for kernel modules before running depmod 7e074c3 runqemu-internal: correctly set format for root FS as raw a23d273 bootimg bbclass: don't hardcode 'bzImage' name ffb64e3 documentation: document KERNEL_CLASSES 81ead6a ltp: vma03 fix the alginment of page size 00020fa wic: Code cleanup: unused imports 34172ef wic: Code cleanup: long lines, identation and whitespaces 335aa0f wic: Fix confusing error message d88af4f wic: Remove __write_partition method 0ef9cdd wic: Refactor fstab update code a49a422 wic: Add --uuid partition option 594dc72 wic: Fix naming conflict 4023377 wic: Remove duplicated code b5dce25 wic: Refactor prepare_empty_partition API 052c819 wic: Call methods better way 73d0d23 wic: Get rid of useless variable 'image_rootfs' 1e307c3 wic: Rename partition images e9237bf wic: Refactor prepare_rootfs API 992f789 wic: Turn off debug output for 'bitbake -e' 9ca3472 wic: Remove annoing debug message 1cabf09 wic: Include mount point into image report aa470a1 wic: Refactor getting bitbake variables 6733434 wic: Test rootfs plugin using rootfs paths ba23968 wic: Fix misleading message b42d7d2 wic: Test rootfs plugin using image recipes c86a0d2 bitbake: toaster: Fix build execution regression 5606687 bitbake: toaster: runbuilds Fix incorrect variable name 483b21b bitbake: toaster: Remove erroneously committed template include cfc4f1b bitbake: toaster: Revert the addition of analysis project mode selection 3b3ef9c bitbake: toaster: Partial Revert "fixes after html5 compliance testing" d73a813 cross.bbclass: delete package_qa task b78b1a6 tune-i586-nlp: Add new tune file to support Quark/X1000 CPU 5c71337 bootimg.bbclass:hddimg: check the size of rootfs.img for hddimg b3c79c4 bootimg.bbclass:iso: use mkisofs -iso-level 3 for large iso 53ddebe logrotate: 3.8.8 -> 3.9.1 563269f wpa-supplicant: Fix CVE-2015-4142 63873d0 nfs-utils: debianize start-statd 703108c nfs-utils: Reexport all directories when start 3c6ddc7 mklibs-native: avoid failure on symbol provided by application 71ceb8c unzip: drop 12-cve-2014-9636-test-compr-eb.patch a386648 perl-native: Specifically undefine other gdbm paths 3360f93 oeqa/bbtests: Show useful failure message for gplv3 test 58ecd46 oeqa/bbtests: Improve error handling dcd361f gdbm 1.8.3: install ndbm.h and dbm.h 2d65e23 openssl: upgrade to 1.0.2c dc5813d perl: remove default byteorder from config.sh f4248c6 perl: odbm.t: fix the path of dbmt_common.pl d61804d perl: fix for ODBM_File.so ae4e9de perl: fix test case switches.t 3020570 perl: use perl.inc for target and native perl 304ebe1 cpan_build.bbclass: remove libmodule-build-perl 3f7e55b perl: 5.20.0 -> 5.22.0 a01d406 curl: upgrade to 7.43.0 af193ea sysstat: upgrade to 11.1.5 b111b6b mmc-utils: fix the building failure when DEBUG_BUILD is 1 348c85c file: 5.22 -> 5.23 318687d gnupg: 2.1.4 -> 2.1.5 85b27b5 hdparm: 9.45 -> 9.48 2904802 git: 2.4.2 -> 2.4.4 da9b9ac elfutils: 0.161 -> 0.162 2578ff3 bitbake: codeparser: Add repr() methods dcbbe54 bitbake: codeparser: Allow empty functions 43c6e8c bitbake: bitbake: fetch2/hg.py: fix unpack error and mirror tarball 3836d9b bitbake: fetch/perforce: Fix single file checkouts 4bc0fc7 oeqa/parselogs: Whitelist qemumips64 runtime error b3b6483 testimage: Don't test xorg/vnc on qemuarm64 6dba7a0 oeqa/parselogs: Whitelist qemuarm64 runtime errors e77c23c oeqa/recipetool: Fix symlink resolution a3df479 gstreamer1.0-plugins-bad.inc: remove duplicate bzip2 dependency e3b35f5 tiff: Update to 4.0.4 b3fc374 subversion: Fix subversion-native on Fedora22 608bf22 oeqa/parselogs: Fixed a problem in parselogs 871efa6 quota: fix quota do_install errors c8042fd kmod: upgrade to 21 b428f88 recipetool: add appendsrcfile(s) sub-commands 49a089f recipetool.append: use argparse types for validation 83a6611 oe.recipeutils: fix line.split error in bbappend_recipe 01c9c73 buildhistory.bbclass: Create a files-in-<pkg>.txt containg recipe's pkg files a053775 xf86-video-vesa: Upgrade 2.3.3 -> 2.3.4 f8b2537 xorg-xserver: Upgrade 1.17.1 -> 1.17.2 c11d4c9 mesa: Upgrade 10.5.6 -> 10.5.8 c812af4 freetype: Upgrade 2.5.5 -> 2.6 2eb1794 populate_sdk_base.bbclass: use pbzip2 to compress SDK tarfiles a62cb8a image_types.bbclass: use pbzip2 for images requiring bz2 compression bac6bb6 pbzip2: Fix native dependency on bzip2-native a3a3376 pbzip2: add initial recipe, pbzip2 v1.1.12 64229cb run-postinsts: Fix ipk package management detection b2c9e73 oe/rootfs.py: DpkgRootfs/OpkgRootfs add support for dependency handling in postinsts scripts. f8661aa cmake: Upgrade 2.8.12.2 -> 3.2.2 b053b81 oe-selftest: timestamp the test runs 545ff77 uclibc: Cope with other mips32 variants 8b4f659 piglit: fix floating dependence on freeglut 6122446 gdb: Add missing runtime dependency for python option d2a87aa unzip: fix four CVE defects a1bac0f qemu: backport patches to fix CVE issues a8ae731 terminal.py: Allow devshell/menuconfig on recent gnome-terminal e8af6ad bluez5: upgrade to 5.31 c148ce5 linux-firmware: upgrade to commit 3161bfa479d5e9ed4f46b57df9bcecbbc4f8eb3c 7b2f30e weston: fix libdir/libexecdir confusion 8cef098 bluez5: fix lib/libexecdir confusion 98c2bdb testimage: Handle ipk/deb packaging format tests correctly e6f29dd wic: oe-selftest: Test image compressing a04ebe7 wic: Make code more pythonic 3476685 wic: Implement image compressing 597cba6 wic: Add new argument to direct plugin 40349f1 wic: Add new argument to wic_create function 13427e1 wic: Add --compress-with command line option 48b5ea6 sanity.bbclass: check /bin/sh is dash or bash ad2bd4c toolchain-scripts: fix for multilib 8c3dd2d bitbake: event: Handle recursive events and the data store better 00ca43b bitbake: cooker: Fire BuildCompleted before finishing the command d93bc4c bitbake: toaster: Add url pattern for backward compatibility df48243 bitbake: toaster: split orm app into it's own module and app 62288a6 bitbake: toaster: bldcontrol Ignore toasterconf files in own directories 10e35ab bitbake: toaster: Restore 'in project' filters to main tables 4013784 bitbake: toaster: table.js fix filter visual indicator and interaction d21e174 bitbake: toaster: toastertable Pass up the kwargs for setup_filter 93c54c2 bitbake: toaster: Enable toastertable cache f28116e bitbake: toasterui: fixes after html5 compliance testing 583e320 bitbake: toasterui: verify variable before usage 8ef5165 bitbake: toaster: delete multiple builds 5d0abf1 bitbake: toastergui: select project types 70c4eb8 bitbake: toaster: refactor build model 287b49a bitbake: toaster: bring django-aggregate-if into the project 35fe311 bitbake: toaster: add django-aggregate-if 335c975 bitbake: toaster: fixes after replacing BuildRequest with Build d7c8d95 bitbake: toaster: fill in build data from buildrequest 1605635 bitbake: toaster: refactor the builds pages 2c7ed96 bitbake: toaster: remove BuildRequest references c362e61 bitbake: toaster: remove MANAGED references b98a2fc bitbake: toaster: fixing undefined variables 933e4db bitbake: toastergui: enable strict variable checking 0b2e644 bitbake: toaster: improve the buildenvironment API aad93dd bitbake: toastergui: fix angular error ffd7cac oeqa/selftest/recipetool: Fix appendfile_binary test on opensuse131 e8c50a2 lib/devtool/standard: Fix patch cleanup d85231e lib/oe/patch: Fix git patch application for source in subdirectory 615b351 oe/utils.py: Add support for init/end helper functions in ThreadWorker. 3fa3215 oe/utils.py: Fix thread leakage in ThreadPool 18e902b wpa-supplicant: Revert "Make SystemD D-Bus config conditional" ef1a66b maintainers.inc: reassign GTK+ and X maintainership 70a1c1e apt-native: Drop obsolete symlinks 68a11a8 meta-environment: Ensure we append to the default TOOLCHAIN_NEED_CONFIGSITE_CACHE 6cfed59 toolchain-scrpts: Fix sitecache issues with multilib fed80c3 staging: Strip files in sysroot 6f4304e bitbake: runqueue: Sanity check BB_NUMBER_THREADS 810bf00 bitbake: runqueue: Handle BBHandledException correctly 2ce9055 bitbake: server/process: Don't log BBHandledException c6918b6 bitbake: runqueue: Improve handling of fakeworker failing to start df123dd bitbake: event: Inject 'd' into event handlers 69b6919 bitbake: bitbake: Add explict getVar param for (non) expansion 86d30d7 meta: Add explict getVar param for (non) expansion f98c849 distro/package_regex.inc: Fix dbus version pattern a06a5ae bitbake: bitbake-user-manual-ref-variables: Added BBLAYERS_FETCH_DIR glossary item. dcb441c neard: remove unused service file c0123e5 rpm: Rebrand rpm custom macro paths to be distro specific a990d21 rpm: Fix lua 'print' statement capture db34474 rpm: Fix CVE-2013-6435 3886107 rpm: Fix CVE-2014-8118 5f0dfec distutils-common-base: add to, don't set, FILES_${PN} bfa8ae9 python-2.7/3.4-manifest.inc: add missing dependencies for python-netserver fbed86a python3-ctypes: Fix cross compilation for arm targets 81e469b wic: removed unused command line option a4da21d wic: code cleanup: superfluous-parens 4862a4c wic: oe-selftest: Add 3 tests of 'wic help' command 40764a3 wic: Return error code when wic fails to invoke command 5daadf8 wic: Integrated plugin docstrings into 'wic help plugins' output cfe6412 wic: Add missing docstrings to plugin classes 553f332 wic: Code cleanup: bad-classmethod-argument 9286213 wic: Document creation of empty partition 410e272 oe-selftest: wic: Fix testcase 2173a0e init-install: Properly delete partition table 68d8f6d init-install: code cleanup: replace /dev/$device -> $device 99a7c5b init-install: code cleanup: Replace tabs with spaces a10c448 init-install: Specify partition name in parted command line 891cdac init-install: Specify filesystem type in parted command line 1f7d16b init-install: Implement UUID support 04bff65 init-install: Use GPT table with GRUB 2 78bacee init-install-efi: Implement UUID support d040802 busybox: Enable UUID-related options 411c276 initramfs-live-install: Add blkid to initramfs ff8ec3d image-live: Set syslinux timeout to 5s 74603c4 rt-tests: bump version to v0.92 b8d8d1d babeltrace: Fix invalid pointer free with trace collection f3a1bec dbus-test: Upgrade 1.8.10 -> 1.8.18 955537c dbus: Upgrade 1.8.16 -> 1.8.18 9497345 packagegroup-core-tools-profile.bb: Remove oprofile. 5c1f244 packagegroup-core-sdk.bb: Drop distcc from the core-sdk. 840d055 runqemu-internal: set mutual exclusiveness for serial and nographic options a155d24 runqemu-script: define console for qemuarm NFS booting 67b9643 runqemu-internal: add support to boot arm64 qemu target via NFS 8b1bc36 runqemu: fix MACHINE being detected as qemuarm for qemuarm64 kernel image 3739d36 qt4-4.8.7: restore arm64 patches which are dropped by mistake b877c96 cups: upgrade from 2.0.2 to 2.0.3 83836c5 openssl: fix building on x32 systems 798daa7 Revert "distrodata: Remove unnecessary include of package_regex.inc" 41423d9 lttng-modules: drop makefile patch f677b58 insane.bbclass: fix false negative in build-deps QA check ae9102b copyleft_filter.bbclass: Allow to filter on name b4c5f80 gtk+: Upgrade 2.24.27 -> 2.24.28 04a1fea base.class: warn for invalid PACKAGECONFIG e344dc1 libpcap: add a dummy PACKAGECONFIG for bluez5 00a3872 bluez5: remove alsa from PACKAGECONFIG 695279b libsdl2: PACKAGECONFIGize 914278e neon: fix compat issues with gnutls 4.3 553305e logging.bbclass: avoid bashism in bbdebug() 4caed87 distutils: regenerate pyc files after being modified by sed de18f75 security_flags.inc: remove duplicated over-rides 8ef99a0 libxml2: Security Advisory - libxml2 - CVE-2015-1819 64df52d piglit: Add missing inclusion of Xutil.h 6353ee6 tzdata: update to 2015e eaf0980 tzcode-native: update to 2015e 2054b29 devtool: deploy: fix preservation of symlinks and permissions/ownership e22c181 lib/oeqa/utils/commands: ensure get_bb_var() works when value contains = 0899d9a classes/externalsrc: handle tasks with existing lockfiles 32ed5f5 recipetool: appendfile: fix file command error handling 44e0369 recipetool: appendfile: clarify help text 07f7665 devtool: use DevtoolError for error handling 5648a79 devtool: remove some unused return values 6027809 devtool: split out 'patch' update mode into a separate function 18efa99 devtool: split out 'srcrev' update mode into a separate function f5ea48c devtool: slight simplification of path splitting logic 962f8a4 devtool: simplify few conditionals a bit 1f48307 devtool: simplify the logic of determining patches to be removed 5d7437e devtool: update-recipe: do rev parsing in a separate function f0ab93f devtool: refactor bb task execution into a separate class 6e039bf devtool: fix wrong indentation 7a98387 bitbake: bitbake-user-manual-ref-variables.xml: Added BB_ALLOWED_NETWORKS desc. 5efbaaf packagedata: Fix to ensure variables expand correctly ed3b424 wayland: Fix hardlink corruption issue 04e2dd9 multilib_global: Stop empty space influencing RPROVIDES af377d6 package_ipk/deb/rpm: Improve OVERRIDES handling 379a030 bitbake: toastergui: prevent contamination of libtoaster context 4f459fc bitbake: toaster: Add global ajaxError handler 0573e2d bitbake: toaster: Add ajax loading spinner eb28534 bitbake: toaster: tables: Remove obsolete field_name for select column 5a013b5 bitbake: toaster: Make toaster script to work in dash 0eaf070 bitbake: toaster: Code cleanup: bashisms 58cd4a1 bitbake: toaster: fixes after refactoring 27f5137 bitbake: toastergui: remove xhr_datatypeahaed layerdeps call a8be6d4 bitbake: toastergui: remove xhr_datatypeahead and xhr_XXXbuild 88dca45 bitbake: toaster: eliminate duplicate querysets 7c2b866 bitbake: toaster: add class template view for single-object pages 51ae1de bitbake: toaster: toastertables raise errors c941743 bitbake: toaster: ToasterTables add computational fields 58600cf bitbake: toaster: toaster table add raw data 4a2a057 bitbake: toastergui: remove xhr_projectedit and xhr_projectinfo URLs b1c91d0 bitbake: toastergui: use defaults on xhr_datatypeahead parameters d9341d1 bitbake: toaster: toastertables REST refactoring 751e918 bitbake: convert all project-based view to JSON APIs afe06e3 bitbake: toaster: move project data typeahead to the REST API 94aa0d5 poky-tiny: Update kernel to 3.19 f268480 pulseaudio: fix version when building inside a dirty git checkout 19d61b9 libpostproc: pass correct libdir 1d350d4 Add license file XFree86-1.0 e53c871 gcc-source.inc: fix STAMPCLEAN to avoid race issue 7a4d72d oeqa/parselogs: Added some more errors to the whitelist. ee66396 oeqa/parselogs: The logs are now copied and parsed locally. f355baa libatomic-ops: 7.2 -> 7.4.2 346769c piglit: upgrade to more recent srvrev 7b08012 cmake: extend CMAKE_MODULE_PATH instead of setting ad0aa8d oeqa/utils: Added timeout decorator for testcases. f08baee cracklib:Fix an error in the patch 8db97b5 libgpg-error: Upgrade 1.18 -> 1.19 b108e3e blktrace: 1.0.5 -> 1.1.0 f0651f4 sysstat: DEPENDS on base-passwd 4467c72 mtools: add PACKAGECONFIG for libbsd 041af82 multilib.bbclass: use package_qa_handle_error ad9542c update-rc.d.bbclass: add MLPREFIX when set RRECOMMENDS 6119f30 bind: ensure searching for json headers searches sysroot 62136c0 xorg: fix VESA int10 error c929827 neon: build the test suite to verify neon links b012fc8 cups: clean up autotools use 8c9acb7 x264: r2265 -> r2491 e28c111 yasm: 1.2.0 -> 1.3.0 89734f8 libevdev: 1.3 -> 1.4.2 c516f5f qmmp: 0.7.7 -> 0.8.5 6aa3cdd gstreamer1.0-libav: fix build for i586 with gcc 6e54d3b gpgme: 1.4.3 -> 1.5.4 bd418a0 dropbear: 2014.66 -> 2015.67 daa597e augeas: 1.2.0 -> 1.4.0 3e42d79 clutter-gst-3.0: 3.0.4 -> 3.0.6 860265e libpfm4: 4.3.0 -> 4.6.0 d1fc21e busybox: fix the wrong help text for chown 47c4e76 busybox: fix double free error for ifconfig 7ab1ae6 busybox: sync the patches for git version 4fb4732 build-appliance-image: do_vmdkimg replaced by do_vmimg a0b5164 boot-direct.bbclass: Add support for VDI images fe0f643 sanity.bbclass: Prevent 'vdi' and 'live' to be built together 1177419 documentation.conf: Document do_vmimg 24be4df qemu: Add support for UUID a13c51e image: Support for VDI d59d876 wic: Move validation of --ptable option to wks parser 69bbf80 wic: Add help for --part-type and --use-uuid options 998273a wic: oe-selftest: Configure testing of gpt/UUID image b71f4d0 wic: Use partition UUID in directdisk-gpt 708ce3f wic: Set type GUID and UUID for partition 9f40e6a wic: Add parameter 'uuid' to Image.add_partition method c3148c6 wic: Refactored getting root device name 5b4ab4e wic: Fix format string 0510591 wic: Generate random uuid for partition 8535185 wic: Add --use-uuid partition option 0e36497 wic: pylinted partitionedfs.py 4f9fe5b wic: replaced __run_parted with exec_native_cmd dec9156 wic: move checks to exec_native_cmd 77e9243 wic: removed exec_cmd_quiet and exec_native_cmd_quiet 921ea71 wic: Test creation of directdisk image with GPT table ebc6936 wic: create directdisk-gpt.wks 9682d8f wic: Make _ptable_format public 179fb20 wic: Use gptmbr.bin MBR for gpt partitions 76f5035 wic: Add gpt to the list of supported partition table formats b7b3e46 wic: check if part_type is set only for msdos partition table 0a13707 wic: set legacy_boot flag for gpt partitions e5a1175 python-smartpm: change "already installed" warnings into info messages 0090170 lib/oe/rootfs: tidy up log warning reporting 63e6259 insane: errors out on binaries installed by allarch-inherit recipes 062678c sysvinit: Only enable recipe in builds where its applicable a3e60c3 sanity.conf: Bump minimum bitbake version to 1.27.1 for sstate change ccb2d1b sstate: Add eventhandler which cleans up stale recipe data 926de56 bitbake: bitbake: Bump version to 1.27.1 4bedfef bitbake: cooker/event: Add an event which lists all stamps reachable after parsing c93f334 poky.conf: use correct GPLv3 license name 90b58da x264: use x86 over-ride instead of i586 c116da8 lame: use x86 over-ride instead of i586 cfd7d6e gstreamer1.0-plugins-base.inc: use x86 over-ride instead of i586 1f3b403 python-numpy: use x86 over-ride instead of i586 ba74614 scripts/jhbuild: remove 02a1a8f libsndfile: Security Advisory - libsndfile - CVE-2014-9496 e2603e5a autogen: redirect the log file to build dir 20a71d6 distrodata: Use Python CSV instead of did by hand 56072bb distrodata: checkpkg make usage of oe.recipeutils.get_recipe_upstream_version 2a4ee94 distrodata: Remove unnecessary include of package_regex.inc a8c7467 recipeutils: Improve get_recipe_pv_without_srcpv function 9634494 xkeyboard-config: Upgrade 2.14 -> 2.15 1a6bcd7 xf86-video-vmware: Upgrade 13.0.2 -> 13.1.0 0131986 xf86-video-omap: Upgrade to 0.4.3 81b0a09 xf86-input-synaptics: Upgrade 1.8.1 -> 1.8.2 28d9b2d xf86-input-keyboard: Upgrade 1.8.0 -> 1.8.1 a2caca7 xf86-input-evdev: Upgrade 2.9.1 -> 2.9.2 09fd6c8 python3-pip: Adds recipe for python3-pip c4553e0 python3-distribute: Upgrade to python3-setuptools 15.2 ae67f74 python3-io: Fixes compilation of python3 ssl module 3b1f687 python3: Fix distutils import error 84105eb python3: fix pyconfig.h installation on target 39abb87 rpm: remove extra dev and dbg packages 673a49a lsof: Remove LSOF_OS 554e255 libpam: Fix wrong crypt library detection f73abe5 sgmlspl-native: 1.03ii -> 1.1 9c8ed1b cmake: Whitespace fix 759ac65 alsa-tools: add dependency glib-2.0 60d67fe alsa-plugins: enable alsa-plugins-pulseaudio-conf conditionally ba93bdd qt4: upgrade to 4.8.7 20a3a36 scripts/combo-layer: Fix exit codes and tty handling ffd9a4b bsps: update SRCREVs to the 3.19 latest be0c6ec meta-yocto-bsp: bump to linux-yocto 3.19 for the non-x86 BSPs ffaa0f1 bitbake: parse/BBHandler: Avoid repeatedly resetting FILE 7fff2ed xserver-xorg: always enable DRI2 by default ea63603 linux-yocto: update beaglebone, mpc8315e and edgerouter to 3.19 fcc67ae xserver-xorg: Upgrade 1.16.3 -> 1.17.1 (OELAYOUT_ABI change) 8b5cb86 distro/package_regex: add stable branch regex for Pango 8313d6e dosfstools: Add recipe for v3.0.28 87d6717 glib-2.0: 2.44.0 -> 2.44.1 359585a ethtool: 3.16 -> 4.0 46ccf0a debianutils: 4.5 -> 4.5.1 5143631 python-nose: 1.2.1 -> 1.3.6 0c2f1ce python-mako: 0.9.1 -> 1.0.1 9052526 liberror-perl: 0.17023 -> 0.17024 f63e9b3 xserver-xorg: Upgrade 1.16.3 -> 1.17.1 (OELAYOUT_ABI change) 0420f7f distutils.bbclass: consistency between error message and setup.py's command 68ffb9a libav: upgrade to 9.18 86319df btrfs-tools: 3.18.2 -> 4.0.1 d66e6d5 alsa-plugins: Include missing sys/select.h 91b7c88 binutils: Update to tip of 2.25 branch 0d45914 gdb: Minor upgrade to 7.9.1 8a5df28 glibc: ignore for musl/uclibc but only for target recipes 9dbb2d2 glibc: remove duplicate --disable-nscd from EXTRA_OECONF 933aaf7 rsync: backport a patch to fix CVE-2014-8242 9ee388f gawk: upgrade to 4.1.3 ed3283b util-linux: upgrade to 2.26.2 1fd152f glibc: Fix __memcpy_chk on non-SSE2 CPUs f21f0d7 packagegroup-core-full-cmdline: remove lighttpd 8c6bd8a recipeutils: Add get_recipe_upstream_version and get_recipe_pv_without_srcpv functions 7cd3c60 boost: fix build for mips 801436b sstate: Add note when performing sstate mirror checks 1f839f2 sstate: Parallelise checkstatus calls for sstate mirror 5331bbc oe/utils: Add simple threaded pool implementation 9fd3c7e soc-family.inc: Add a default SOC_FAMILY value 2389d4c base: Fix license checksum rebuild problems 5cc614e qt4: unconditionally disable gstreamer 0.10 support in qt webkit 1d0e217 xserver-nodm: Support reboot from inside X 1d22b56 gnutls: control zlib support via PACKAGECONFIG 1a180b6 gnutls: use pkg-config to locate zlib e092f15 openssl: Backport upstreamed version of patch to fix build on mips64 db3aafa alsa-plugins: Install 99-pulseaudio-default.conf when pulseaudio is enabled 5973353 mesa: Upgrade 10.5.4 -> 10.5.6 63a409a python3: fix build for shared object 511865f alsa-tools: update makefile_no_gtk.patch 30adf4b grep: fix CVE-2015-1345 fb0da9e gpgme: fix CVE-2014-3564 1c5e37a security_flags: Add comment about what it does and who uses it ac87ae7 lttng-ust: 2.6.0 -> 2.6.1 23371df nasm: 2.11.06 -> 2.11.08 b47ef4f gnupg: 2.1.2 -> 2.1.4 917ca4d man-pages: 3.83 -> 4.00 3ac8fb3 cracklib: 2.9.3 -> 2.9.4 df093b3 python-git: 1.0.0 -> 1.0.1 1b193fd git: 2.3.7 -> 2.4.2 b268343 debianutils: 4.4 -> 4.5 6e23a3d bitbake: toaster: more HTML5 fixes 225daf4 bitbake: toaster tests: enable url check test 2914391 bitbake: toaster/tts: Fix tests 356809f bitbake: toaster: enable no browser start b3189f3 bitbake: orm: Fix all failing unit test 3480be7 bitbake: bldcontrol: Fix all failing unit tests 22a0d8a bitbake: toastergui: add tests for xhr_datatypeahead calls 65c805e bitbake: toastergui: tests for the all-projects API point fea4a82 bitbake: toasterui: replace cookie-based preferences with session data 1b6a50c bitbake: toaster: refactor checksettings command 52fe880 bitbake: toastergui: Consider task name when restarting a build in /builds 6fab4cb bitbake: toaster-gui: Show task name for the builds in /builds e5aa569 bitbake: toaster: Add an invalidate cache method on data update signal 2de01a6 bitbake: toaster: Port layerdetails to ToasterTables a0ea663 bitbake: toaster: Add a simplified ToasterTable template e3a4905 bitbake: toaster: Fix toastertable header 6a9efef bitbake: toastergui: show relative paths in configvars view 9dcfa32 bitbake: toastergui: table header bring back 56c5ff9 bitbake: toaster logger: assign projects to all builds e3e85bd bitbake: toaster logger: refactor recipe and layer file paths a5236be bitbake: toaster: enable server-side sessions for all usages 5da543c bitbake: toaster: Fix build button current project race b8caddb bitbake: data: Make expandKeys deterministic 3db9d6e bitbake: ConfHandler: Fix bogus dependency problems 91c45c0 bitbake: BBHandler: Drop cwd from search path 08b77c8 bitbake: cooker/utils: Improve parsing profiling 553267d bitbake: tests/data: Add key expansion unit test bde0f60 bitbake: tests/data: Add log parsing test code 8d8b02a bitbake: data: Revert expandKeys warning move 30cba37 bitbake: data: Clean up expandKeys None value handling c7f01ce harfbuzz: upgrade to 0.9.40 46bca1b wpa-supplicant: upgrade to 2.4 2d2d5e6 ppp: Security Advisory - CVE-2015-3310 0bbd310 boost: extend libraries with log and random 68d7124 xkeyboard-config: bring back Philippines keyboard symbols 7a4c52c gcc-source.inc: set PATH for gnu-configize, not for cd 5a2d985 qemu: fix CVE-2015-3456 2efd475 apt: upgrade to 1.0.9.9 320d766 waffle: Upgrade 1.3.0 -> 1.5.1 346ef92 wic: refactored processing of wic exceptions 9761bec wic: do not strip traceback 3b627bb update-rc.d: Improve RRECOMMENDS handling 2f0fcb2 bitbake.conf: Use immediate expansion for os.uname() ed1555c avahi: Fix key expansion variable masking a05663b distro/upstream_tracking: remove stale update reasons 374064c distro/package_regex: Add extra patterns for GNOME stable release packages d60a207 distro/package_regex: add patterns for GNOME stable releases 1604ca2 kernel: Build uImage only when really needed a33a567 kernel: Add basic fitImage support d2e26ef kernel: Build DTBs early bb68c7c kernel: Separate out uboot_prep_kimage 7f131b8 kernel: Pull uImage generation into separate class 12f983b kernel: Pull out the linux.bin generation 88d79fe kernel: Rework do_uboot_mkimage 92864a9 kernel: Clean up KERNEL_IMAGETYPE_FOR_MAKE af6405e grep: Fix LSB NG Cases for gplv2 version. fe405a4 native: Improve PROVIDES handling a9cb4dd autotools: Use space with prepend to clean up variable whitespace a32937c bitbake: data: Move warning code to the first loop for performance 9e9d052 bitbake: siggen: Don't crash if number of task dependencies change 7fab819 bitbake: cache: Clean up getVar usage to modern syntax/style 5ee1222 bitbake: bitbake-worker: Fix regression with unbuffered logs 70c1d22 bitbake: fetch/hg: Disable checksums for archived downloads 51701777 bitbake: fetch2/git.py: Add gitpkgv_revision alternative version information f03e108 bitbake: fetch2/__init__.py: Make get_srcrev output configurable 2db5dd7 packagegroup-core-x11-sato: add PulseAudio bd9177c pulseaudio-client-conf-sato: initial recipe 862ce8a pulseaudio: conf-parser: add support for .d directories 5246fc0 pulseaudio: client-conf: Add allow-autospawn-for-root 5d71a49 alsa-plugins: initial recipe 55fe5a0 eglibc-use-option-groups: Conditionally exclude c++ tests 7a7c6b0 image.bbclass: Add a method for creating a companion debug filesystem fa00c9a openssl: Fix build with gcc5 on mips64 d6e0c3f npth: Upgrade to 1.2 b6dc547 libassuan: Upgrade to 2.2.1 71b4ca3 boost/bjam-native: Upgrade to 1.58.0 d1ce219 valgrind: remove arm tests that don't compile ace08a2 package.bbclass: Include missing variables on PACKAGEVARS c49ff17 libpng: Upgrade 1.6.16 -> 1.6.17 5f60fd4 libpng12: Upgrade 1.2.52 -> 1.2.53 29d5503 oe-selftest: Build wic runtime requirements and images before testing 7a4d637 gettext-minimal-native: Disable the unnecessary check in iconv.m4 ef19b19 bitbake.conf: programatically generate COMBINED_FEATURES a60aeca utils: add helper to perform the intersection of two string lists a497998 openssl: drop the padlock_conf.patch ea2428a packagegroup-core-qt4e: make phonon-gstreamer plugin optional 87d20e4 gnutls: remove --with-libz-prefix configure option 98a3f87 toolchain-scripts.bbclass: fix quoting for CCACHE_PATH a55e99f squashfs-tools: build and install unsquashfs as well 74c7efb wic: Make sure file exists before removing it 1b2332d classes/buildhistory: ensure that git user email and name are set e1de8af initrdscripts: make boot drive detection more generic 9da81df buildstats-summary: add eventmask 65c0027 rootfs.py: Make set -x not break rootfs creation c1eefc5 libepoxy: make buildable for x11-less environments / update to latest version 887fcb5 linux-yocto/3.19: NFC config, Braswell fixes and axxia support c1ed724 linux-yocto/3.19: CONFIG_ATA_BMDMA and gcc5 ARM64 be1442e linux-yocto/3.19: Braswell DRM fixes 03abfcb linux-yocto: drop suggestion of devshell for patch failures 203eadf linux-yocto-custom: clarify bbappend versus copy in comments f92f336 linux-yocto/3.19: braswell DRM/i915 Graphics fixes ada5e49 linux-yocto/3.14: cavium and configuration changes 2f41470 bitbake: bitbake-user-manual: Updated "Delete a Task" section for broken deps decb28f genericx860common.inc: Enable using the 3.19 kernel ef8a781 xvinfo: upgrade to 1.1.3 175c724 xkeyboard-config: upgrade to 2.14 b88a24a xdpyinfo: upgrade to 1.3.2 b7a051f puzzles: upgrade to latest srcrev 9d8c61a sanity.bbclass: import subprocess in correct function 45bf783 license_class: Add explicity avoid of CLOSED license in validations b3fba03 gtk-engines: Make gtk-engines-dev installable by dropping dependency to not generated gtk-engines package. a0cbb5b rootfs.py: Improve rpm log_check_regex b29ca69 zlib: clean up base_libdir symlink 45b8e62 combo-layer: handle unset dest_dir in sanity_check() c60aac5 distro: remove obsolete gstreamer 0.10 packages from distro configuration bedf028 upstream_tracking.inc: Remove obsolete reasons 86a49aa libxdmcp: make libbsd usage deterministic 5bcf966 sstate: Add handling of do_shared_workdir task b5ba70b sqlite3: upgrade to 3.8.10 2af3009 midori: fix build with GLib 2.44 929b179 testapps: remove old gst-meta-audio/video dependencies 66e2eef sanity.bbclass: improve the sanity check for PATH and BBPATH 9ceff87 pinentry: package update to 9.2 91681fe alsa-utils: upgrade to 1.0.29 1416986 alsa-tools: upgrade to version 1.0.29 3a864e5 vala: upgrade to version 0.28.0 f8232d7 gstreamer: remove 0.10 recipes 443d25a webkitgtk: disable audio and video support 4c67abd qt4: disable Phonon framework b2365c4 qt4: remove Qt Mobility 50ce68a clutter-gst: update to latest upstream version 3.0.4 d30b1b0 python-gst: remove obsolete Python gstreamer 0.10 bindings 336ddb3 icu-native: fix hard paths in native icu d642865 xkeyboard-config: remove GPLv3 files 0e38b69 libxx86vm: upgrade to 1.1.4 c096376 libxvmc: upgrade to 1.0.9 d561834 libxt: upgrade to 1.1.5 db6ca6b libxshmfence: upgrade to 1.2 a8a2b8d libxrender: upgrade to 0.9.9 0e99e1a libxrandr: upgrade to 1.5.0 f158d2e randrproto: upgrade to 1.5.0 3ddc5cb libxkbfile: upgrade to 1.0.9 c271fae libxfont: upgrade to 1.5.1 9c6576b libxdmcp: upgrade to 1.1.2 bfb1cf7 libx11: upgrade to 1.6.3 b52526d libfontenc: upgrade to 1.1.3 9fbfb5c font-util: upgrade to 1.3.1 3eab94c pcmciautils: fix the parallel building issue 7539c1f devtool: update-recipe: add option to write changes to bbappend fbfc06a recipetool: add appendfile subcommand c63adf5 oe-selftest: move recipetool tests to their own module 2298b4a lib/oe/patch: use with open() for all file operations 3d0418a devtool / recipetool: ensure bb.note() gets printed f302457 msmtp: Upgrade to 1.6.2 e5ef343 liburcu: Upgrade to 0.8.7 6dcb8ef libinitscripts: Upgrade to 9.63 550a0ae libidn: Upgrade to 1.30 f49d90a libksba: Upgrade to 1.3.3 16caaab bitbake: bitbake-user-manual-customization.xsl: Pointing to mirrors for XSL files. 7310c3c bitbake: fetch/git: Fix uri in git checkstatus 8b8859a bitbake: toaster: Remove dependency on daemon application 37c0b98 bitbake: localhostbecontroller: Fix server search debug message 3371a7b bitbake: fetch2/hg.py: add clean function aefc80c bitbake: lib/bb/utils: fix and extend edit_metadata_file() ba0546b bitbake: lib/bb/utils: fix several bugs in edit_metadata_file() 0d9c452 bitbake: lib/bb/utils: add function to get layer containing a file 40b58b1 meta-yocto-bsp: Add genericx86* BSP to use 3.19 37fe48d glibc: CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow bc162d2 bitbake: tests/parse: Add file missing from previous commit c2bb602 wic: remove intermediate partitions 71626c1 bitbake: tests/fetch: Add mirror of mirror tests 2be2271 bitbake: fetch2: Improve mirror building function error handling b614049 bitbake: fetch2: Allow GIT_SMART_HTTP to be passed through 5d42679 useradd.bbclass: Remove base-passwd dependency 4075192 devtool: if workspace layer exists, still ensure it's in bblayers.conf 293c82b devtool: deploy-target: use tinfoil instead of bitbake -e 5796fe4 lib/oe/recipeutils: add a parse_recipe_simple() function 1bab18f devtool: fix build env command execution error handling 18114bb devtool: deploy plugin: fix bad indentation 7883af3 devtool: add missing docstrings c977cdf devtool: rename unused variables 87fba31 devtool: remove unused imports / re-imports 89fb8c5 devtool: extract: remove patches when S=WORKDIR 4faa0cd gstreamer1.0-plugins-bad: Move EGL requirement for Wayland 05ea29b xserver-xorg: add PACKAGECONFIG for wayland and add xserver-xorg-xwayland 24b8347 native.bbclass: avoid unintended substring replacement when setting PROVIDES cdf8180 lttng-modules: Update to stable version 2.6.1 e5f9a2c Revert "libsdl: depends on libglu when x11" 0cf9ef0 cairo: make xlib and libxcb dependencies explicit 26fcfbb base-files: Remove /proc/bus/usb from fstab. 3f8a47b automake: simplify perl location forcing logic 226ba5c autoconf: simplify perl location forcing logic c41b5b6 bitbake: bitbake: fetch2/git: Add URL when latest_revision generates an exception. 2a56445 bitbake: tests/parse: Add very basic start of parse tests fd73114 bitbake: BBHandler: Error for incomplete function definitions c5316d4 bitbake: tests/fetch: ensure fetch tests preserve current dir f5a87b4 bitbake: fetch2/git: ensure the unpacked origin remote points upstream 1dc2ee9 bitbake: runqueue: Handle cases where siginfo is now a parameter to the hashvadlidate function a485c2b boost: properly fix do_boostconfig re-execution 79a2fc2 python3: Upgrade from 3.4.2 to 3.4.3 1237db6 sstate: Improve HASHCHECK function to make siginfo configurable f5f2467 kernel/rm_work: Improve interaction fab7da4 poky.conf: Fix git URL example e05be1f bitbake: toastergui: tables updates for HTML5 compliance 80ca4f0 bitbake: toaster/contrib: adding TTS squashed patch 23f5b00 bitbake: toaster: Port All recipes, layers and machines to ToasterTables 7f8c447 bitbake: toaster: Add toaster table widget 2ac26e4 bitbake: toaster: managedcontextprocessor requires Project imported ec8bd70 bitbake: toaster: Remove old bldviewer application c5a1623 bitbake: toaster: fix html5 compliance 35d75c8 bitbake: toastergui: change the import layer action help text 534da08 base: Avoid find race cf8c2e3 glibc: Fix x32 make race 3e7dde7 oeqa/utils: Fixed a problem with get_bb_var not returning right variable. 13fb855 libevent: add ptest 942ec74 systemd: removing workaround odering journal after remote-fs.target 11b8f34 alsa-tools: set CLEANBROKEN 0bc3a79 systemd.bbclass: drop has_exactly_one_service setting 3fb1532 strace: add PACKAGECONFIG for bluez b92a75c socat: fix for parallel build 5f165e1 ghostscript: 9.15 -> 9.16 109d670 apr: 1.5.1 -> 1.5.2 27387f5 libpcre: 8.36 -> 8.37 bbb00e3 coreutils_6.9.bb: Fix LSB NG Cases. 7a483d1 bind: separate B and S 3cad583 xf86-video-cirrus: Upgrade 1.5.2 -> 1.5.3 0ac9aa1 packagegroup-core-qt: add x11 to REQUIRED_DISTRO_FEATURES d003b90 at-spi2-atk: add x11 to REQUIRED_DISTRO_FEATURES 12d02d5 recipes-sato: add x11 to REQUIRED_DISTRO_FEATURES 3a0a27f gst-plugins-gl: add x11 to REQUIRED_DISTRO_FEATURES b741051 recipes-graphics: add x11 to REQUIRED_DISTRO_FEATURES f609f7a recipes-extended: add x11 to REQUIRED_DISTRO_FEATURES 41719e1 libowl/settings-daemon/libnotify: add x11 to REQUIRED_DISTRO_FEATURES f744f0b libsdl: depends on libglu when x11 45c008b libglu: add x11 to REQUIRED_DISTRO_FEATURES 5f21aa0 mesa-demos: only enable glu when x11 in DISTRO_FEATURES d5f7e09 mesa: fix do_install_append 212d9d4 libxml2: fix python path and add libxml2-python 52e465f ncurses: inherit pkgconfig 9f83916 qt4-x11-free: make virtual/libgl dependency conditional f6e13ec sanity.bbclass: Increased verbosity for connectivity check c9ec542 unzip: Security Advisory -CVE-2014-9636 and CVE-2015-1315 654f3e5 kernelshark: fix for rebuild a3eda32 gcc-5: fix installed-vs-shipped b12d79e module/module-base/lttng-modules: Improve kernel module dependencies 57aeb9e openssl/orc: virtclass-native -> class-native 7d02344 stat: fix SRC_URI 2682b78 elfutils: Disable the unnecessary check in iconv.m4 f65a682 gcc5: Add back g++ sysroot patch 80f59a3 meta-yocto/distro: Added Ubuntu 15.04 to SANITY_TESTED_DISTROS 099dbf3 maintainers.inc: update MAINTAINERS 4df4098 bitbake: toaster: adding art missing from Bootstrap 2d09cb2 gcc5: Add PR65779 patch to fix powerpc compile issues e6bb5db insserv: Remove 464ee2e dbus: Fix do_install files outside ${D} 59ce7d0 bitbake: fetch2: Add BB_ALLOWED_NETWORKS support 9e24bde bitbake: fetch/hg: support submodules d30aedc bitbake: fetch2: Allow git to use a different CA Bundle with private keys cc63e15 bitbake: bitbake-user-manual-metadata.xml: Alphabetized varflag list. 0e8f83f bitbake: bitbake-user-manual-metadata.xml: Added two new varflag descriptions 3c4f377 bitbake: toastergui: removing unused views e7f4d9c bitbake: toastergui: fix whitespace after URL 94d38a4 bitbake: toasterui: URL refactoring a5193d3 bitbake: toastergui: Consider task name when restarting a build 44b7b67 bitbake: toaster: <Add class id to a few columns> 1e625fc bitbake: toaster: fix typo in format string b546be9 bitbake: toaster: Code cleanup: indent 13e8814 bitbake: toaster: Make toaster script working in zsh 3b1bb2d bitbake: toastergui: decrease load time for configuration page 84a294e bitbake: toaster: clear up toaster shutdown for mac osx 2d69dd2 license_class: license_create_manifest improvment b394cd4 license: Add support for handle INCOMPATIBLE_LICENSE in manifest creation bb3469f license: Split visit_string in LicenseVisitor 8c7082d license_class: Generalize license_ok function b971eb0 license_class: Reimplemented manifest creation in python 7405f47 distro_features_check: add any of test dcb8f89 combo-layer: improve merge commit handling 5179d7c weston-init: support system's configuration file 54870dc dbus: upgrade to 1.8.16 4e5d6c7 gcc-4.9, gcc-5: Use variable SYSTEMLIBS_DIR instead of hardcoding it for aarch64 9ba0bf8 gcc: Add 5 recipes a28371b kernel-yocto: propagate in tree defconfigs to WORKDIR 5929d94 linux-yocto/3.14: fix qemumips build error c126709 linux-yocto: fix race between checkout and meta data generation 61e077e linux-yocto/3.19: Braswell support and bug fixes fbbf054 xserver-xorg: Make xinerama selectable via PACKAGECONFIG ccd0bed gstreamer1.0: Make check selectable via PACKAGECONFIG 5ac3e91 gstreamer1.0: convert GSTREAMER_1_DEBUG to PACKAGECONFIG c4fc58e bind: disable the HTTP statistics service by default 4b042c2 bind: update libxml2 detection patch 0595667 bind: upgrade to 9.10.2 29c7111 bitbake: prserv: serv.py: remove unused and duplicate imports 1fe445d bitbake: toaster: filtersnippet remove redefinition of filter type key 286da98 bitbake: toaster: Add links to the layer add notification bec5d16 bitbake: toaster: Refactor and expand layer add remove mechanism a4cfca6 bitbake: toaster: projectapp Implement machine select command ed26a06 bitbake: toaster: Move project context variables to common scope 4b59ba1 bitbake: toasterui: close build on BuildCompleted event 7759cd4 bitbake: toasterui: proper exit code on toaster errors 4a71102 oe-selftest: devtool: add a proper test to see if tap devices exist 1f15117 devtool: fix for rename of gcc-source b7cff75 oe-selftest: devtool: fix broken URL in test_devtool_add_fetch 78ec80a bluez: update to 5.30 3176510 e2fsprogs: fix the CVE-2015-1572 781cd0d curl: upgrade to 7.42.1 0ea0f6d insane: Support aarch64 on musl 2a743d6 libart-lgpl: Fix cross compiling 02d0a00 kernel.bbclass: Fix race condition e01db42 classes/buildstats: misc cleanups 9e9d25d classes/buildstats: don't catch all errors from mkdirhier c045129 classes/buildstats: whitespace cleanup 6ca0be7 runqemu-internal: correctly set format for root FS as raw 19d5755 qemu: upgrade to 2.3.0 fc94b83 x11perf: Upgrade 1.5.4 -> 1.6.0 b98e993 xhost: Upgrade 1.0.6 -> 1.0.7 329245f xmodmap: Upgrade 1.0.8 -> 1.0.9 fea20fd xev: Upgrade 1.2.1 -> 1.2.2 14acb33 serf: update SRC_URI to use debian mirrors instead of googlecode fd673b4 libarchive: fix out of tree builds 8381ffc kbproto: Upgrade 1.0.6 -> 1.0.7 c7e524c randrproto: Upgrade 1.4.0 -> 1.4.1 58830d3 xproto: Upgrade 7.0.26 -> 7.0.27 bebf1ce python3: Disable pip to fix issues on the Autobuilders 6599783 python3-native: Disable pip on native builds to fix Autobuilder issues 0be72c2 python3-native: Fix pip install issue due to unclean build directory 528a256 python3: Change python BASEVERSION to 3.4 2912ad7 generate-manifest-3.4.py: Add fractions to ${PN}-numbers 19149e6 python3: Upgrade from 3.3.3 to 3.4.2 b2b59b1 poky.conf: remove SVK mirror fd584e0 connman: upgrade to 1.29 1f6d4cc connman: code cleanup a2b98ef ghostscript: Add MicroBlaze support 51985eb siteinfo.bbclass: Add MicroBlaze big endian target info 8473de9 insane.bbclass: Add MicroBlaze big endian target info 55c96db kernel-arch: Update mapping for MicroBlaze architectures 09fa915 mirrors.bbclass: drop support for svk sources c4359d1 shared-mime-info: Upgrade 1.3 -> 1.4 08d78e0 pseudo 1.6.5: less pointlessly chatty eb4306e bitbake.conf/base.bbclass: Drop PRINC support f841526 directfb: Correct bashism 7a8f37d dev-manual: Updates to add Luna support for Eclipse b72cb0d ref-manual: Updated the "Image Features" section 6192753 ref-manual; mega-manual: Edits to further define packaging process a2d770b poky-lsb: Select that latest LTSI, not a version which doesn't exist 6773af5 directfb: Improve CFLAGS handling for x86 d650772 security_flags: Add python-numpy to pie incompatible list ee1c1ea bitbake.conf: backfill bluez5 feature dbdf1ed bluez: remove bluez4 recipes 11981a5 bluez4: add proper systemd support a7afc04 multilib: Tweak value of PN used for OVERRIDES ed3321d systemd: bring back the patch to customise root's $HOME 39bd94a bind: remove 5 backport patches daf5113 libart_lgpl: Allow art_config.h to be generated at compile time 29abd1f icu: Upgrade 54.1 -> 55.1 f0ac290 freetype: Upgrade 2.5.4 -> 2.5.5 8b96568 e2fsprogs: install populate-extfs.sh 9f40031 linux-yocto-dev: introduce 4.1-rc development kernel 358be3e perf: fix build (and feature tests) for 4.1-rcX 383fb05 linux-yocto: add core bluetooth support to qemux86* and common-pc* e12d2be linux-yocto/3.14: refresh -rt support d755e76 systemd: remove unused patches 90972c95 openssh: fix login fails for ssh -o Batchmode=yes with empty passwords aa2b636 boost/libxslt: Enable nativesdk to unbreak <bitbake universe> 4255b32 wic: Add plugin for single partition disk fd254d0 wic tests: Move wic tests to oe-selftest infra 6451c08 wic tests: Add docstrings to test methods 9fbfd40 wic tests: Add functional tests for directdisk 5bed033 qt4-embedded: add checking for AArch64 ilp32 eea3a90 libcap: Avoid passing "-e" to make 8bc5ccb oeqa/utils: Allow ~ in bblayers 0d9903d libtasn1: Upgrade 4.0 -> 4.5 014c9bc gnutls: Upgrade 3.3.12 -> 3.3.14 1643a7f oe-selftest: devtool: add some tests for devtool add -f fa61a94 recipetool: allow specifying SRCREV via rev= in URI 4502dae devtool: add: use the appropriate file naming and versioning for SCM recipes 266ea28 devtool: add: add an option to fetch remote source a4fca1d recipetool: ensure git clone is standalone when extracting 24e5ad2 recipetool: avoid second-level subdir when extracting bae7794 package: Fix license exclusion packaging errors 24609d9 subversion: remove 1.6.X recipes c1ac5a8 pigz: set ALTERNATIVE for nativesdk package to empty 145abfc elfutils: Security Advisory - CVE-2015-0255 927bc71 linux-firmware: add NO_GENERIC_LICENSE for all licenses 8651289 Revert "common-licenses: Add common license files for linux-firmware" 9c2e961 license.bbclass: allow copying license not in common licenses 462a873 pcmciautils: fix for parallel build a185a09 bison: fix parallel issue 43a60fa rpcbind: 0.2.2 -> 0.2.3 18ed8ec ltp: 20150119 -> 20150420 1df3ea3 git: 2.3.5 -> 2.3.7 a69a4e8 man-pages: 3.82 -> 3.83 150fe37 dpkg: upgrade to 1.17.25 8ca6988 curl: Fix wrong assumption about sizeof off_t on largefile systems aa38937 grub2: fix initrd size restriction bug 7fc174f elfutils: enable fix-build-gcc-4.8.patch ddc6d09 texinfo: remove enumerate_greater_than_ten.patch 1bd0115 libaio: remove libaio-generic.patch 17f6cd2 lttng-modules: remove bio-bvec-iter.patch 636cbe6 openssl: remove 3 patches 2be3398 kmod: remove 0001-Makefile.am-fix-parallel-build-problem.patch 1903369 logrotate: remove logrotate-CVE-2011-1548.patch 7e23d9d libxml2: remove libxml2-CVE-2014-3660.patch 2e31add nspr: remove nspr-CVE-2014-1545.patch 31e6dda python3: remove sys_platform_is_now_always_linux2.patch 8cf04ed python-numpy: remove 2 dangling patches f2db690 mesa: Upgrade 10.4.4 -> 10.5.4 44f5b0e default-distrovars: Clean up gcc license issues bb77a36 libgcc-initial: Correctly reflect libgcc LICENSE 7b88042 gcc-shared-source: Add PV to PN 0321760 xserver-xorg: use GCC 5 patch from upstream db40969 bitbake: bitbake: reset build mtime cache before the build 4eeae70 bitbake: bitbake: use sys.exit to simplify the code 37e46e4 bitbake: bitbake: Check if bitbake versions match 47e2dbd bitbake: bitbake: Handle BBMainException 74dc936 split_and_strip_files: regroup hardlinks to make build deterministic 9eb4222 lib/oe/package: Improve strip subprocess handling 26997d1 lib/oeqa: Add sdk tests for gcc/perl/python 527b28c autotools: Fix find races on source directory e794d09 testimage: Improve sdk handling of TEST_SUITES 1ef8234 gpgme: Fix to use pkg-config in .m4 files 94ed114 oeqa/targetbuild: Use DL_DIR for downloads if present 591e6a6 sstate: Use SSTATE_DIR for FILESPATH 0007b5c testimage: Fix sdk test manifest handling 515a8b7 ref-manual: Updated the ELF Binary QA warning message 6e4a1a0 dev-manual; ref-manual: Fixed &dash; issue ae736db libxfont: Security Advisory - libxfont - CVE-2015-1804 8f8858b libxfont: Security Advisory - libxfont - CVE-2015-1803 1abe116 libxfont: Security Advisory - libxfont - CVE-2015-1802 d812d32 kern-tools: unify meta directory detection aee1b2a libarchive: Security Advisory - libarchive - CVE-2015-2304 0a6e3a9 less: fix CVE-2014-9488 b628843 rsync: backport a patch to fix CVE-2014-9512 c3537bd kernel-devsrc: depends on virtual/kernel:do_install d6a579a gnu-efi: fix parallel issue 5c93858 icecc.bbclass: blacklist libgcc-initial 4817e01 libunwind: don't use gold for mips e346628 mesa: respect x11 in PACKAGECONFIG not DISTRO_FEATURES 9686a10 udev-cache: improve error handling c62828e udev-cache: Remove unnecessary tar read from stdin b34412c alsa-utils: Remove double dependency on udev a03039c subversion: upgrade it from 1.8.11 to 1.8.13 6bae518 populate_sdk_base: also record the host part into manifest 87de892 ptest: add recommends to ptest-runner 3ddd99d mkefidisk.sh: be more explicit with device error 50623fd mkefidisk.sh: fix hanging on non-writeable device 4d5c875 mkefidisk.sh: use script mode when running parted 216d26a devtool: update-recipe: check if source tree is a git repository d6cd355 devtool: update-recipe: handle unversioned bbappends 1d40692 devtool: reset: avoid errors in case file no longer exists e8db1cc devtool: add: use correct bbappend file name with -V option f1f9fab devtool: handle . in recipe name ca1f4d7 devtool: include bbappends in recipe parsing a8c7558 oe-selftest: devtool: fix test_devtool_update_recipe_git 240b4ef devtool: modify: implement --no-same-dir ee0ff82 devtool: modify: use B=S if that is the default for the recipe 46add1d xkeyboard-config: modified the license a61234e sysstat: upgrade to 11.1.4 b92fd39 pciutils: upgrade to 3.3.1 34ddfb6 linux-yocto/3.19: configuration updates and stable integration 8c92444 tzdata: update to 2015d b69bf51 tzcode: update to 2015d b23855f insserv: Fix build with gcc5 and clang 09fab50 fontconfig: Fix pkgconfig file generation to not have absolute paths 7caffd2 fontconfig: Upgrade to 2.11.93 3ec67a9 pkgconfig: Upgrade to latest git tip 2a14041 gummiboot: upgrade 43 -> 48+git 3d2e60f grub: Backport const qualifier fix for gcc-5 fb4478e gtk+: Correct function prototype 4c74306 gnome-icon-theme: Needs nls.m4 9b19d65 subversion: Add -P to CPPFLAGS 35a2acd lttng-tools: Add extern qualifier to declarations in .h file 25105f8 mdadm: Fix inline semantics 77c2e2d u-boot-mkimage: Backport fix from upstream to fix build with gcc-5 44131ab xserver-xorg: Fix build with gcc-5 2bdbadd glibc, packagegroup-self-hosted, packagegroup-core-lsb: Consider non-glibc libcs f6a2628 libsoup-2.4: Upgrade 2.46.0 -> 2.50.0 b4b46c0 librsvg: Upgrade 0.40.6 -> 0.40.9 0247a1e json-glib: Upgrade 1.0.2 -> 1.0.4 e070ff8 hicolor-icon-theme: Upgrade to 0.15 31e55d0 libxml-simple-perl/libconvert-asn1-perl: using PERLHOSTLIB f003674 curl: upgrade to 7.42.0 7bfc989 systemd 219 -> system 219-stable a6ad418 oeqa/selftest/toaster: fix bad indent 438b7e0 mtd-utils: enable mtd-utils-fix-corrupt-cleanmarker-with-flash_erase--j-command.patch 2f78aeb populate_sdk_base: avoid executing empty function 2d74cb4 uninative-tarball: delete the packagedata task 9a91a1f yocto-project-qs: Replaced GNOME Mobile with GTK+ wordings. 14d0b60 toaster-manual: Removed redundant video. 92d9a29 ref-manual: Removed FAQ question for GNOME Mobile. ee19ce0 ref-manual: Fixed some dashes in the user input examples. 5c27b8b ref-manual: Fixed some formatting on a user-input example. bed39bb ref-manual: Removed tag from profile-manual cross-ref d0ba89a bsp-guide: Fixed link to the OpenEmbedded style guide. e1518ee adt-manual: fixed formatting for user-supplied data in example. 9a054c4 dev-manual: Applied some formatting for user input. 87a60a2 dev-manual: Fixed link to Toaster Manual. 7e1a9d9 dev-manual: Fixed a cross-ref link that used "here" as the link. acf537b dev-manual: Added Toaster to the list of ways to develop. 527cf82 dev-manual: Removed a cross-ref link to "here" 2747111 dev-manual: Updated branch descriptions for better manual maintenance 031aba2 ref-manual: Removed "Intel Corporation" from the "Links" section. 966dd98 dev-manual: Updated the poky definition in the "Terms" section. 447a351 ref-manual: Updates to ELF binary QA warning - review changes d4dc2f8 dev-manual: Updated the "Enabling and Using the Tool" section b8d0927 dev-manual: Updated "Requirements" section for creating partitioned images 7634512 ref-manual: Updates to the TCLIBC variable description 2eb48c2 ref-manual: Updates to ELF binary QA warning f06cd40 ref-manual: Added glossary entry for EXTERNAL_KERNEL_TOOLS ddafde3 ref-manual: Fixed style sheet 3985cef bash: explicitly define NON_INTERACTIVE_LOGIN_SHELLS in CFLAGS d477da6 shadow: fix `su' behaviour da1a288 gcc-4.9: backport from gcc trunk r212178 4af6384 siteinfo.bbclass: Added Epiphany archinfo b16f22b insane.bbclass: Added Epiphany machine definitions 376b6b7 image: zap_empty_root_password doesn't handle passwd file in shadow case bef3305 rootfsdebugfiles.bbclass: quick-and-dirty installation of additional files e156b08 ghostscript: add objarch.h for armeb f2a0a98 wic: code cleanup: wildcard imports 1d0c338 wic: code cleanup: undefined variables eb9964e toolchain-shar-extract.sh: mention how to set up the SDK environment f61e572 classes/populate_sdk_base: Show title in SDK installer 617a02d classes/populate_sdk_ext: add warning against editing configuration 0c09ff2 classes/populate_sdk_ext: disable network connectivity check 5b1a6ab devtool: force use of bash when running build within extensible SDK d997e75 nss: improve the script signlibs.sh 9b1ad0e util-linux: Add lastb to alternatives 775dedb alsa-lib: 1.0.28 -> 1.0.29 b80a8fe u-boot.inc: make sure all counter variables are properly unset 781165b bison: don't depend on help2man fc15878 init-install-efi.sh: fix gummiboot entry installation 6467ad4 txdata: update to 2015c b3a9979 tzcode: update to 2015c 3a6f221 gcc-target: remove gcc-plugin-dev from PACKAGES 3189c5c libgcc: remove libgcov-dev from PACKAGES 6834c08 curl: remove extra dev and staticdev from PACKAGES b07659e xz: remove liblzma-dev and liblzma-dbg from PACKAGES 6787dbc bison: 2.7.1 -> 3.0.4 2b49fba webkit-gtk: ANGLE doesn't build with bison 3 4f35838 gstreamer: change priv_gst_parse_yylex arguments b20b0a6 python-git: 0.3.6 -> 1.0.0 4b295e5 tcl: 8.6.3 -> 8.6.4 243985f gnu-efi: 3.0.1 -> 3.0.2 29361a0 fontcache: allow to pass different fontconfig cache dir 71db576 oeqa/utils/decorators: Fix up frame selection 7283022 recipes: Fix charset.alias for musl bd1aa28 mtd-utils: update to latest and fix static inlining 9e901d8 libnfsidmap: Include sys/types.h for u_int32_t a4111d3 parted: Add patches to fix build on musl 114dd78 distcc:Include missing fcntl.h in zeroconf c94d444 dosfstools: Fix build with musl 5688e6c openssh: Upgrade 6.7 - > 6.8 95f2534 coreutils: Add code to consider musl when selecting charsets 3dcaab5 at: Remove glibc specific code 1e4c6e8 strace: fixes for compilation failures with musl 869a770 e2fsprogs: add ptest 8fb1cd8 libunwind: use gold for all archs 25217da pax-utils: 0.9.2 -> 1.0.3 80d7ae1 liberror-perl: 0.17022 -> 0.17023 04419c1 cryptodev: 1.6 -> 1.7 6184951 dbus-glib: 0.102 -> 0.104 59abe83 ccache: 3.1.9 -> 3.1.11 aa091f9 directfb: 1.7.6 -> 1.7.7 05395a5 cracklib: 2.9.2 -> 2.9.3 fcc6092 sysvinit: Add lastb to alternatives ca2948a udev: Add RCONFLICTS/RREPLACES for udev-utils 705f14d lz4: update package to 128 and SRC_URI b35e311 upstream_tracking.inc: bluez4 removed from oe-core e555851 maintainers.inc: remove info related to bluez4 50c2ef0 image.bbclass: Allow to remove do_rootfs -> virtual/kernel:do_packagedata dependency 167025e initscripts: Remove /etc/volatile.cache on upgrade 6f03a8d base-files: Check for /run and /var/lock softlinks on upgrade 72d88f2 bitbake: lib/bb/utils: add safeguard against recursively deleting things we shouldn't f9b1605 bitbake: cookerdata: Allow ~ in bblayers 4c31f35 gmp: remove referencing paths from the build host ccb2feb cairo_1.14.2: Modified the license of cairo-trace. 760dec2 libgcrypt: modified the license of dumpsexp. 01fec9e mdadm: add ptest 9a664b9 wic: try to find bitbake using find_executable API d7a9b5e devtool: call parse_recipe with correct arguments 494bf2d classes/base: clarify S not set correctly warning d92970f lib/oe/package_manager: avoid traceback with no packages 9fc5587 classes/package: clarify installed-vs-shipped message a23c938 lsb: provide lsb-core-ARCH 32d2351 groff: fix RDEPENDS fa391a5 busybox: remove CVE-2014-9645 patch (already upstream in 1.23.x) bb9b0e3 strace: fix build for aarch64 f40a2d6 libunwind: fix build with aarch64 9a52901 aspell: inherit binconfig-disabled 529c4c0 libepoxy: DEPENDS on virtual/egl and virtual/libx11 21efa90 cracklib: add python support back e1bf753 syslinux: Fix syslinux-nomtools permissions 203aaae bitbake: bitbake-user-manual: Cleaned up parallelism note and formatted user input 547b189 bitbake: bitbake-diffsigs: consider the situation where sigdata and siginfo files having the same hash values abc7f15 bitbake: toaster: date range filter for project builds page db254cb bitbake: toaster: recipe path broken in recipe detail page 77cad30 bitbake: toasterui: remove 'targets' from project notification c655227 bitbake: toaster: searching all projects table resets page count ac69236 bitbake: toaster: add layer source in admin throws an error 86f982c bitbake: toasterui: correct terminology in landing page 0405ef3 bitbake: toaster: BuildButton target input allow building targets with tasks fab29bd bitbake: toaster: base.js minor jshint fixes 65e9859 bitbake: fetch/git: Remove a possible trailing '/' in subpath 3c0664b bitbake: toastergui: minor spelling fixes 02881a8 documentation: Preparation for 1.9 builds 65167a8 yocto-project-qs: Added MinnowBoard MAX example to "Super User" d654160 adt-manual: Updated the Makefile-based project section. 941910f ref-manual: Updated the section on oe-init-build-env-memres 9d72edd ref-manual: Fixed two spelling errors. 59c09e3 toolchain-scripts: Allow the CONFIGSITE_CACHE variable to be overridden 7fe5976 gst-player: Fix typo c012dcb elfutils: fix an incorrect patch for 0.161 1da17af crypto: use bigint in x86-64 perl 31b2c1f elfutils: fix build with -Os 1b4f717 syslinux: add syslinux-nomtools to PACKAGES 51a16b4 linux-firmware: fix the mess of licenses 7a1fb7a common-licenses: Add common license files for linux-firmware 7ad628e kmod: upgrade to 20 710b01e oeqa: Add test for layer append and FILESPATH tracking e9fcc57 wic: Print bitbake error output ea07f03 wic: use native parted df9069d bitbake: bitbake-layers: ensure non-extended recipe name is preferred 8538c22 libgpg-error 1.18: simplify tupple handling and add armv8b support 42131b6 oe-init-build-env: fix for build dirs that have spaces in their path 0fa5b04 gdb: Refresh patches against git 683942b kbd: Mark glibc headers under __GLIBC__ 4fb58a4 xserver-xf86-config: Preload graphics driver modules for musl 40db5c4 sudo: Disable hardening for musl b8d9c04 pulseaudio: Fix build with musl 7b766ab xserver-xorg: Use __GLIBC__ instread of __linux__ to denote glibc dependent code 0b708c5 iptables: Fix build on musl 65b4ed6 perl: Fix build for musl 98f4f38 libfm-extra: Add own nls.m4 00adc1a vte: Pass _GNU_SOURCE via CFLAGS d451fec musl: Enable NLS a543a57 ppp: Add extra include dirs 76e8f21 libproxy: Include select.h for posix compliance 5dff87d groff: add runtime dependency on sed 7a5a20d bitbake.conf: add sed-native to ASSUME_PROVIDED eb6d324 package_manager: RpmPM: Fix scriptlet for rpm 4 23a88e2 tiff: remove extra dev and dbg from PACKAGES 22af6a2 sysfsutils: remove libsysfs-dev and libsysfs-staticdev from PACKAGES 05a1f2b pciutils: remove libpci-dev and libpci-dbg from PACKAGES b9fb704 opkg: remove libopkg-dev and libopkg-staticdev from PACKAGES 4a9b8e5 libxmu: remove libxmuu-dev from PACKAGES f44aa10 libtool: remove libltdl-dev libltdl-dbg libltdl-staticdev from PACKAGES e263083 elfutils: remove libdw-dev libasm-dev libelf-dev from PACKAGES eb342b8 cogl: remove extra dev from PACKAGES 3e14122 augeas: remove extra dev and dbg from PACKAGES f225880 apmd: remove libapm-dev and libapm-staticdev from PACKAGES acaf702 aspell: remove libpspell-dev from PACKAGES b515939 acl/attr: remove extra dev and staticdev from PACKAGES 672d38e bzip2: remove libbz2-dev libbz2-staticdev from from PACKAGES 9e80d79 wic: setup infrastructure for nosetests 3a60a23 wic: Add argv argument to main 7141e48 wic: Use __file__ instead of sys.argv[0] d0d0ab8 wic:code cleanup: No space allowed 1521a3d insane.bbclass: Enhance file-rdeps QA check 86cbe08 generate-manifest-2.7.py: Add fractions to ${PN}-numbers df59ac2 pcmciautils: fix for parallel build 5fd4453 grub-efi: add PACKAGECONFIG for grub-mount and device-mapper 9ee62f1 at-spi2-core: Upgrade to 2.16.0 bd7de7e libepoxy: Add as GTK+ 3.16 requirement 4a1b6ad at-spi2-atk: Upgrade to 2.16.0 1ee0907 atk: Upgrade to 2.16.0 0bfd63e cairo: Upgrade to 1.14.2 ebe931c glib-networking: Upgrade to 2.44.0 d61cba7 git: 2.3.1 -> 2.3.5 8e66ba1 wget: 1.16.2 -> 1.16.3 23a8493 groff: 1.22.2 -> 1.22.3 84e8b1b shadow: split files needed for PAM use into separate package b77b25e bluez5: upgrade to 5.29 3d1106e oeqa/runtime: Boot test for poky-tiny. 38320db oeqa/utils: Add runner for poky-tiny qemu. fa5970e oeqa/targetcontrol: Add support for poky-tiny in QemuTarget. bcd9f05 mesa: Fix building with musl 62980ea at-spi2-core: Add nls.m4 from gettext 83f9ab7 bluez4: Fix encrypt symbol namespace collision 4ace5f8 quota: Fix build with musl 768794e binutils: Fix linking issue for R_ARM_REL32 relocs 252d566 ncurses: Upgrade 4.9 stable to latest patchlevel 20150329 f2d82a1 libusb-compat: Include sys/types.h in usb.h 472eaf1 util-linux: Upgrade to 2.26 b221140 quota: Upgrade quota_4.01.bb -> quota_4.02.bb 1f922cb libffi: Use proper compiler define for linux platform e81e085 common-licenses: Add BSD-0-Clause 933967f libdaemon: Explicitly include unisttd.h instead of sys/unistd.h 16d8c89 wic: make error message more informative 0245140 wic: don't use host paths when looking for native tools 77a44c2 xorg-server: Security Advisory - xorg-server - CVE-2015-0255 6cbfe0f libpcap.inc: consolidate inherit and PACKAGECONFIG lines ddb122f libpcap.inc: remove obsolete libnl1 PACKAGECONFIG 39d5666 oeqa/runtime/smart: Added new decorators for existing automated tests. e58e983 oeqa/runtime/rpm: Added new decorators for existing automated tests. 3dabad4 oeqa/runtime/ping: Added new decorators for existing automated tests. f33488a oeqa/runtime/parselogs: Added new decorators for existing automated tests. d48df94 oeqa/runtime/ldd: Added new decorators for existing automated tests. f626c58 testimage: sort modules based on dependencies 206d532 oeqa/runtime/systemd.py: skip instead of failing without avahi 058e75d oeqa/oetest.py: use bb logging 8284e3e gst-ffmpeg: fix internal-libav builds with inherit autotools-brokensep d275504 gst-ffmpeg: remove bogus patch that leads to build failures 915712d gst-ffmpeg: fix libav-9.patch c793501 dpkg: add triplet entry to fix build error for armeb c0fc3c4 lib/oeqa/selftest/bblayers: improve test for add-layer and remove-layer f23a3b6 shadow: add 'util-linux-sulogin' to RDEPENDS 8c24e4e util-linux: split out util-linux-sulogin 36e064a pango: fix postinst 0928eb7 tzdata: fix postinst 2b77579 libgpg-error: Fix native build on i686 bf8aa74 connman: Create connman.service at proper moment 21303a4 nss: Fix build in x32 ABI 7ab461c kexec-tools: Add support for build with x32 ABI in x86_64 66b39c8 gtk+: Upgrade to 2.24.27 17b0be5 xz: upgrade to 5.2.1 ec0f031 sysstat: upgrade to 11.1.3 465508d sudo: upgrade to 1.8.13 eac9603 busybox: upgrade to 1.23.2 462e7cc curl: upgrade to 7.41.0 6bd0df0 ref-manual: Corrected the "package_rpm.bbclass" section. fa398ae ref-manual: Update to oe-init-build-env-memres description. be1e182 ref-manual: Updates to "Kernel Build Changes" in the 1.8 migration section. ab14596 toaster-manual: Fixed release month in the manual table. 48804ad toaster-manual: Added new video link for toaster configuration. 7fb6a6e upstream_tracking.inc: Add no-update reason for gdk-pixbuf 2dc3024 wic: Implement --build-rootfs command line option 939fca9 wic: support ontrackdm6aux3 partitions 8bf5afb wic: rawcopy: ensure comparison is done on int dd6a152 wic: code cleanup: unused imports ba9cde6 wic: code cleanup: bad indentation 7c63dc2 security_flags.inc: elfutils on ARM fails with PIE flags f042708 file: add -P prompt into usage info a686622 perl: module overload rdpends on overloading a64aeb2 python: Change python 2.7.9 to use libffi from the system 9bad894 glib-2.0: 2.42.1 -> 2.44.0 e3704e8 binutils: Fix packaging now gold is always built 25ab65b tcmode-default: Pin gdb to 7.9 a146e8c bitbake: runqueue: pass finalized metadata to scenequeue callbacks 3ed754b gcc-4.8: Upgrade 4.8.2 -> 4.8.4 ca6b43c rpcbind: Fix build with musl 9a2768b libxml2: Contain glibc-extentions under __GLIBC__ ab16cd1 wpa-supplicant: Replace non-standard base defines with c99 compliant ones de32267 pixman,libpciaccess: Fix build on musl be8ffcd ofono: Disable backtrace for non-glibc libraries f5e7eee man-pages: 3.76 -> 3.82 86e6a37 dhcp: 4.3.1 -> 4.3.2 8bdf8b9 socat: 1.7.2.4 -> 1.7.3.0 7d6f070 gnupg: 2.1.1 -> 2.1.2 b44d75e libgcrypt: 1.6.2 -> 1.6.3 2402fe8 patch: 2.7.1 -> 2.7.5 8feafde libuser: 0.60 -> 0.61 5169721 strace: 4.9 -> 4.10 6cd8c8d libunwind: Build with gold to avoid build failures 26648dc binutils: Allow gold to build even when not the default 33db621 u-boot: Avoid issues with binutils-2.25 3141e1e util-linux: add lastb.1 and nologin.8 to update-alternatives 13db7db prelink_git.bb: Update to latest cross-prelink version fa43839 pinentry: update to 9.1 efb906a useradd_base.bbclass: typo fixes (s/scucess/success/) 87aedfb valgrind: add configure option to build only 32-bit or 64-bit components ea4f0da libevent: update 2.0.21 -> 2.0.22 801269e libevent: control openssl support via PACKAGECONFIG 5ef9f03 oe.sstatesig: align swspec handling with sstate.bbclass dd90ccf meta/lib/oe/utils.py: Corrected the return value of both_contain() 74e7f68 nss: generate debug info 60cea21 uclibc: fix undefinition of '_dl_strchr' in libdl.a a940fcc piglit: add PACKAGECONFIG for freeglut 904e73f lzop: Fix build using x32 ABI c3991d2 stress: add new package 00be85a hwlatdetect: upgrade to version 0.91 12f3850 rt-tests: bump version and enable ptest support b559d7f binutils: Switch to using binutils stable/2.25 branch 1cb175f binutils: Fix ICE in gold 2be79f0 binutils: upgrade to 2.25 b3b6cfb gdb: Upgrade 7.8.1 -> 7.9 a50a01e git: 2.3.0 -> 2.3.1 3df7127 wget: 1.16.1 -> 1.16.2 d6d2dd5 tools: A real fix for thos mega-manual.sed file for Toaster. 810106a tools: Updated the mega-manual.sed file to include the Toaster manual. 51c68d7 toaster-manual: Review edits applied. 12f6c19 toaster-manual: Updated customization layer to not use local XSL file. 82fea80 dev-manual: Fixed bitbake -c populate_sysroot example. cd0800f ref-manual: Edits to the 1.8 migration section. d5abcfb toaster-manual: Applied final review edits. 079d6c9 ref-manual: Added new migration section for going to 1.8 9f08067 ref-manual: Added new bluetooth class. b544b4b package_manager: call createrepo with --dbpath pointing inside WORKDIR 673d022 createrepo: Implement --dbpath command line option 1674b53 glibc: fix a typo dc2d0e8 db: fix parallel issue 723c64b ref-manual: Updates to doc packages and reference links c24b67d bsp-guide: removed the BBLAYERS_NON_REMOVABLE from the example code. 223d075 dev-manual: Removed the detailed section on how to set up and use Toaster 3bb1c76 dev-manual: Added a small section to note Toaster as a development model. 3237e33 dev-manual: Fixed a few broken links and added Toaster manual to list. f1a2683 yocto-project-qs: Fixed broken link to AB nightly builds. 937c709 ref-manual: Updated the OE_TERMINAL variable description 575d464 ref-manual: Updated the supported distros list. d083205 ref-manual: Backed out the bits for the context PNG images. 69121f2 dev-manual, yocto-project-qs: Dropped Python 2.6 as a requirement a9d25bd toaster-manual: Made some updates for virtual environment section. 3fafd2b toaster-manual: Added a new video that shows fido features. 70ddcce ref-manual: Downplayed the BBLAYERS_NON_REMOVABLE variable. ae4951d dev-manual: Updates to the devtool section. c41b060 dev-manual: Updates to the receiptool section. a92a203 toaster-manual: Created links to Youtube for the GUI vids d0e413e toaster-manual: Added note telling user to initialize virtual env 2b82240 documentation: Updates to try to fix CentOS docs build errors a4bd9cd dev-manual: Added footnote crediting Trevor Woerner for devtool addition. e1ff065 dev-manual: Applied review edits to the devtool section. abf3039 mega-manual: Added two figures to the figures directory. 45e9e79 mega-manual: Updated the chapter structure for the toaster manual. 1f63333 Makefile: Added figures to the mega-manual TARFILE list a089bed Makefile: Added additional PNG files to toaster TARFILE list. 85a0b9b toaster-manual: Draft of Manual. 9e4adec distro_alias.inc: update/sort alias information. fe9c5b1 bitbake: bin/image-writer: Add ext4 as a deployable image type 3cb8772 bitbake: cooker: Ensure bbappend files are processed in a determistic order 764fbea image_types: Add missing ext4 support ce2573b bitbake: Revert "toaster: machine not searchable in all builds/projects" e5a441c bitbake: toastergui: add ext4 option for IMAGE_FSTYPES ddee53e bitbake: toasterui: rename 'targets' to 'recipes' c6ea812 bitbake: toastergui: prevent error on empty build list 0d0d02a insane: Add baremetal mappings to the QA arch test 240a797 siteinfo: Add x86_64-elf support 6fd976f README.hardware: clarify NFS requirements for edgerouter 5bb5313 toaster: updating toasterconf.json for fido release 051ce59 populate_sdk_ext: Log the "Preparing build system" step 4073194 dpkg-native: Avoid 'file changed' errors from tar 3c284cf wpa-supplicant: Make SystemD D-Bus config conditional a879c89 u-boot.inc: fix rename image error dd52ac5 libart-lgpl: add art_config.h for armeb/aarch64be/aarch64be_32 240dade combo-layer: fix file_exclude for empty commits 3775c6e combo-layer: fix file_exclude for dest_dir = . 5508950 combo-layer: clean up dest_dir checking 47dedbc glibc-testing: Specify location of c++ header files 88340ad oe-git-proxy: Redirect error messages to STDERR aa1438b autotools: Avoid find race for S = "${WORKDIR}" c0e32b4 gcc: Tweak arm multilib endian patch for baremetal 6978d8a kernel-yocto: merge duplicate kernel_configme task definitions a9025e8 linux-yocto: add kern-tools-native to kernel_metadata depends feb84ef toaster: update toasterconf.json for fido release 6671089 toaster.bbclass: do not add symbolic links to artifacts 3837f29 cpio: fix CVE-2015-1197 c35aba3 patch: fix CVE-2015-1196 5c76ceb poky: Add 1.8 to sanity tested distro list f08c349 poky.conf: Flip DISTRO_VERSION for post 1.8 release e029d27 bitbake: Update to version 1.27.0 post 1.26 release 5756684 bitbake: Update to version 1.26.0 87c4e58 bitbake: toasterui: enable sanity checker eeef93a bitbake: toaster: most-build-targets bug fixes 1a4c8a8 bitbake: toaster: PACKAGE_CLASSES variable does not show current value when editing 3190ab6 bitbake: toasterui: small changes to empty states 38c3f2e bitbake: toasterui: hide right column if empty 63510bf bitbake: toasterui: Improve messaging for empty layer details 7c3bdeb bitbake: toasterui: hide release when only one exists fd4085f bitbake: toasterui: update links to Toaster manual 792716a bitbake: toastergui: changes to release change notifications 2b59512 bitbake: toaster: alert fixes for project release change 6a934f4 bitbake: toaster: build date range selections e840b7a bitbake: toaster: build date range selections static sources abcd979 bitbake: toaster: machine not searchable in all builds/projects 7cb05bf bitbake: toastergui: changes to the all projects table fb7160e bitbake: toaster: Project page fix targets url and tooltip placement e1a5d81 bitbake: toaster: layer-relative paths for config files fa59513 bitbake: toastergui: give button nice rounded corners 1385f28 bitbake: uievent: catch and log exceptions in receiving events 4e18659 bitbake: bin/bitbake: Create bitbake_main API f2ca8bc python-pygobject: Disable parallel make install in native case a77f368 lttng-modules: Update along 2.6 stable branch 3a64656 uninative-tarball: fix dependency on patchelf 6e1ba48 skeleton: clarify linux-yocto-custom workflow dbfafd8 linux-yocto/3.19: fixes for Intel core warnings c0f931a linux-yocto/3.14: integrate korg stable and meta data changes 9dbc258 linux-yocto/3.19: configuration updates and stable import 4dbe239 kernel-yocto: allow in-tree defconfigs df6d275 openssl: 1.0.2 -> 1.0.2a 62fdc7b gst-player: Add error messages for missing plugins 14098e3 package_deb: DpkgIndexer use apt-ftparchive that needs a valid config d269075 image.bbclass: Empty /var/volatile if it is a mount point 96104b8 image: Ensure manifests end with a newline c70dc37 libunwind: use xz, because it fails to detect liblzma provided by lzma f94450a ca-certificates: clean up before do_compile() f43d13c pigz: fix alternatives handling, use symlinks, provide zcat 4ca684a kernel-module-split.bbclass: Avoid bogus recommends for modules ending with -dev f878ee5 valgrind: enable build for MIPS 43d84d8 connman: only depend on xuser-account if ROOTLESS_X is set 9782db0 libav: fix floating dependency on libasound b31a0e3 python: fix cached config value for /dev/ptmx 7cb5ea0 qemu: Add patch to fix qemux86-64 EDSCA key problems 4439387 Revert "systemd: Fix the problem of an empty journal on boot" 68bc421 kernel-module-split.bbclass: fix autoloading from postinst script 65a8408 python: Fix PGEN linking errors 2a473ac update-alternatives.bbclass: alternatives should be removed in prerm 8b8d843 dpkg: Don't move update-alternatives to sbindir ce9226f rootfs.py: Also uninstall update-alternatives and shadow for read-only-rootfs 349f3ab package.bbclass: Add SYSTEMD_SERVICE to list of package specific variables 7ecfaaa webkit-gtk: disable JIT for armv5/armv6 3699321 yocto-bsp: Update templates to 3.19 kernel 4bd886f systemd: fix firmware path to match linux-firmware b528712 meta-yocto/distro: Updated SANITY_TESTED_DISTROS. fdf383f poky.conf: Fix 'distro is not validated' warning for OpenSUSE 814252e systemd: restore userspace firmware loading support bbc1396 tzdata: update to 2015b 21f4188 tzcode: update to 2015b 3acdd43 lib/oe/lsb.py: Prioritize parsing of /etc/os-release cbce06a tar: set acpaths to avoid "Argument list too long" error 98487cc watchdog: Provide and install initscript a1cb3b0 mtd-utils: minor recipe formatting cleanup 543d1bd postinst_intercept script: drop pipe 86aec93 rootfs.py: add log checking ability for deb and ipk f4d90ec rootfs.py: two changes regarding log checking 5dc1f3d oelint.bbclass: remove duplicated code 7366894 oelint.bbclass: adjust task order b457868 neard: fix the install path in init scripts 4f1ce61 nss: move /usr/bin/smime to nss-smime dfa8034 directfb: define DEPENDS and EXTRA_OECONF via directfb.inc only 5e9d2d6 python-pexpect: Adds this module to buildtools, since it is needed by some of the automated runtime test code. 44c8637 python-pexpect: Creates a recipe for the pexpect python module d70c981 license.bbclass: skip license checking if the package contains no file 19ad6b6 python-distribute: Adds netclient, email and shell runtime dependencies necessary to 72ead27 sanity.bbclass: vmdk and live can't be built together 38aff0d os-release: add LIC_FILES_CHKSUM f987e92 tzdata: fix HOMEPAGE 75c16c0 groff: fix HOMEPAGE 2ade4b2 gawk: fix HOMEPAGE c1e4e27 libav: add PACKAGECONFIG for VA-API 84e5007 e2fsprogs: Package resize2fs 94f5ce0 xserver-nodm-init: Change to vt1 when stop 3e9476e sysvinit-inittab: Fix no tty in runlevel 1. 3aad5e0 util-linux-native: Fixed conflicts with shadow-native and ncurses-native b0b8f47 oeqa/runtime: Added a new auto rpm test a8c98c3 oe-selftest: use spaces to indent python code, not tabs 4783ead dev-manual: Applied review edits to section on hostname changing 12c7efe bitbake: toaster: insure IMAGE_INSTALL_append values have a space prefix d2b2046 bitbake: toaster: display machine and project values in input fields 1f1230c bitbake: toaster: tasks trigger the select related tables before ordering 3c5e291 bitbake: toaster: Add cancel build to latest build section 2f684f1 bitbake: toaster: Incorrect breadcrumb behaviour in the project page 8ff98c6 bitbake: toaster: leave cancel enabled for release change 5252c45 bitbake: toastergui: recipe and layer identification 9752757 bitbake: toasterui: fix error message parameter 0dc4a62 bitbake: toaster: do not throw exception on misconfigured data 934a974 bitbake: toastergui: builds and projects outcome filter 5d021f6 bitbake: toastergui: fix machines page search ede212b bitbake: toaster: display bitbake output after process start 5b22f15 bitbake: toaster: targets page performance improvement a273d8f bitbake: toasterui: improve info in the toaster_ui.log c5e9654 scripts/combo-layer: Handle update with no repo/revision specified db4f142 glibc: avoid configure stall by feeding prompt 92739ed gcc-cross-canadian: Enable stripping and packaging of binaries 31801c6 ltp: find all .debug directories 1a29b3b lsb: fix installed-vs-shipped when build with multilib d6be13a gst-plugins-good: fix nondeterministic udev dependency 76930a5 pulseaudio: remove obsolete resampler patching d342810 puzzles: Fix build in x32 ABI 4add6e3 systemtap: Fix build in x32 ABI 3732fde mdadm: Fix build in x32 ABI 8e19349 systemd: set the location of binaries used by service files 0f25dd5 base.bbclass: clean up warning message for 'S' f14ef4d valgrind: enable building on 4.x kernel 740770c udev: remove 'modprobe' local rule 31f15d6 perf: add bash to RDEPENDS 76730a8 linux-yocto/3.19: integrate korg -stable update ad6313d kernel-yocto: split meta data generation from patching phase c328e2f kern-tools: fix iterative configuration runs c5cfcb7 gstreamer1.0: Shorten __FILE__ in gst_debug_log output on all platforms. 8457e13 dbus-test: make do_install run to trigger the effect of cleandirs flag 6ecc468 tcmode-default: Define one gdb version 80c8372 pulseaudio: add system.pa to CONFFILES cc7652f pulseaudio: move client.conf to libpulse 2ab66b8 package_manager: Create variable for install_dir_name 05471f8 lib/oeqa/selftest/lic-checksum: Add INHIBIT_DEFAULT_DEPS 8b8baf5 lib/oeqa/selftest/lic-checksum: Rename test_foo a7701ba trace-cmd: remove unnecessary 'protocol=git' from SRC_URI 1219b63 mmc-utils: remove unnecessary 'protocol=git' from SRC_URI 6bd34e6 systemd: remove unnecessary 'protocol=git' from SRC_URI 52e9d2c u-boot-mkimage: remove unnecessary 'protocol=git' from SRC_URI b647a06 u-boot-fw-utils: remove unnecessary 'protocol=git' from SRC_URI 6f6e866 oe-selftest: add missing dependency to test_recipetool_create_git 0a45ccb recipetool: fix duplicate licenses being picked up 4a8fec9 oe-selftest: add a test for devtool modify on recipes fetching local files a976d63 oe-selftest: add a test for devtool deploy-target a0b774e oe-selftest: support getting unexported variable values 3c4c63d gitignore: exclude meta-selftest, drop meta-hob 8123b4a devtool: deploy-target: add dry-run option a504771 classes/externalsrc: fix for recipes that fetch local files 3d7777f devtool: deploy-target: add an option to disable quiet mode 3f370f8 devtool: deploy-target: detect and error if D is empty ad57dab devtool: deploy-target: allow disabling host key checking cb4b078 devtool: modify/extract: prevent usage with incompatible recipes 221705f devtool: modify: get correct initial revision from previously extracted source tree 9adae67 devtool: reset: add ability to reset entire workspace e3cfb80 devtool: name command line parsers appropriately 4424440 devtool: deploy-target: fix deploying to previously deployed machine be6289f combo-layer-hook-default.sh: handle patches without Signed-off-by b4e78cf combo-layer-hook-default.sh: beware of embedded patches ad0147a combo-layer-hook-default.sh: avoid duplicating prefix e0d3cab combo-layer: partial import for '--history init' 14eac2a combo-layer: combine trees via replacement objects dd985a2 combo-layer: init with full history b4326bf combo-layer: update() also instance property 96b9845 combo-layer: exclude files 627e524 combo-layer: runcmd() with separate output 58c5bb2 combo-layer: make Signed-off-by optional b1408ba combo-layer: let user choose where properties get updated fd2823d runqemu-internal: Add cpio support for qemux86 so that we can boot poky-tiny images b8107c5 scripts/runqemu: Allow FSTYPE to be changed from the environment 577f9f3 gst-player: Fix Pause/Play in GTK+ player f4857dc xf86-input-synaptics: drop already applied patch 8b125fe opkg: drop already applied patch 2c11ccf packagegroup zeroconf: nss-mdns is libc dependant cffacfb glibc/glibc-collateral.inc: Add LIC_FILES_CHKSUM to avoid warnings in manifest creation b85ee03 unzip: Add ALTERNATIVE configuration 1e34e71 meta/lib/oe/package.py: fix files ownership in packages b7a9a06 oeqa/runtime: Fixed a problem in logparser where it failed to whitelist some common errors. 6ad040a Add archiver folder to SSTATE_DUPWHITELIST 35fbb0f wic: Consider PSEUDO_* environment variables 40d3d7a rpcbind: don't try to enable rpcbind.socket twice d0d404f systemctl: Don't try to remove directory which doesn't exist 7197dab gst-player: Depend on -libav if commercial license is enabled c65e364 waffle: drop unneeded setting of EXTRA_OECMAKE 7f536ba oe-selftest: improve bitbake-layers tests 61e14ad oe-init-build-env-memres: Fix source check 0308f31 bitbake: knotty.py: fix indent 12b6cf0 poky-tiny: ext2 isn't enabled in the kernel so don't mention/build it 083d4a3 dev-manual: Added new section on changing default image hostname 1345195 documentation: Updated Manual revision tables with "April 2015" 186104e dev-manual: Backed out the half-done Eclipse Luna changes. f7dbbd1 dev-manual: Removed inc PR step from Quilt workflow 40f3ca0 poky-ent: update OpenSUSE essentials df0672b bitbake: toaster: Fix the orderkey to match the column 5c4b7e0 bitbake: toaster: projectconf fix typo of package name c2a1e04 bitbake: toastergui: replace ETA with percentage fb84086 bitbake: toastergui: fix mrb Run again buttons 25d2131 bitbake: toaster: localhost build increase timeout 887c1cb bitbake: toasterui: relative recipe paths e4ff3ea bitbake: toastergui: improve toaster suggestion c472208 bitbake: toastergui: dirinfo needs path separation 193989c bitbake: toastergui: tables display optimizations 2b629e6 bitbake: toastergui: project app build command fix feb95bb bitbake: toastergui: update search fields cca5170 bitbake: toasterui: identify proper layer in build mode 42d1b65 bitbake: toastergui: improve performance in the all targets page 50c5ca5 bitbake: toastergui: improve data suggestion e5590bc bitbake: toastergui: fix project page layer branch names cffc208 bitbake: toastergui: suggestion in alphabetical order c8714ec bitbake: toastergui: project page - consistent error display daaafb4 systemd: fix /var/log/journal ownership da8a15a systemd: Fix journal "Failed to set file attributes:" warning 85532e0 curl: remove samba from PACKAGECONFIG[smb] DEPENDS 4811b04 e2fsprogs: CVE-2015-0247 59e01b0 linux-yocto-rt: removed duplicated line f743cce mailx: disable parallel build 73dca1e util-linux: split libraries dynamically b14dd6a util-linux: fix CVE-2014-9114 e5f9a67 sysprof: fix arm big-endian build. 3e8eb2d logrotate: Identify CONFFILES 1cdf386 nfs-utils: Identify CONFFILES f6c9b4f nfs-utils: Install nfsmount.conf 4851a67 msmtp: add link file /usr/lib/sendmail 03ba0b7 lsb: update init-functions and remove sendmail e67611b Revert "blktrace: fix and enable parallel build" 9afc9ea mtd-utils: disable parallel build 40e15f0 lttng: Add tracing group when building lttng-tools 3cbc509 kernel-devsrc: fix file ownership c5fd577 util-linux: move getopt u-a link to base_bindir c212977 liberation-fonts: inherit allarch as fonts are arch-independent 28c986c resolvconf: fix SRC_URI 6270510 net-tools: fix SRC_URI 18c6acd apt: fix SRC_URI de2aad0 libevent: fix SRC_URI b35689b xinetd: fix HOMEPAGE and SRC_URI 05a1691 libunwind: backport patch to link against libgcc_s intead of libgcc 38382e0 rootfs.py: fix logic error so that warnings are checked c03c82a pixbufcache.bbclass: add harfbuzz-native to PIXBUFCACHE_SYSROOT_DEP 788fd5a kernelsrc.bbclass: fix KERNEL_VERSION 9157c1b chrpath.bbclass: handle RUNPATH as well as RPATH 05a69ed license.bbclass: set dirs for do_populate_lic_setscene 8a9ac1d devshell: allow the starting directory to be overridden 66a4d8b buildstats.bbclass: typecast argument to os.minor/os.major to long 9d0feb3 fontcache.bbclass: prepend to PACKAGEFUNCS instead of appending d03e167 postinst-intercepts/update_font_cache: fix ownership of fontconfig cache a30c6a5 nativesdk.bbclass: set PKGDATA_DIR explicitly 9a712be test-dependencies.sh: strip only .bb suffix 1d43c3c oe-setup-builddir: output message cleanup 18c1c51 bitbake.conf: use http:// for GNU_MIRROR instead of ftp:// cd5e168 lib/oeqa/runtime/systemd: Add a basic runtime test for the journal 313ad2a bitbake: bitbake-layers: use stdout instead of stderr for logging 855fc21 bitbake: knotty: Do not log show_versions output 0b5ab4d bitbake: knotty: Catch exceptions on broken pipes 7f30749 oeqa/parselogs: Skip hda opcode errors 0aff275 layer.conf: bump version as error-report interface changed c60786c poky.conf: Update for post 1.7 release versioning f67d496 kernel-dev: Fixed missed shortcut 78cecf7 kernel-dev: Updates to the "Using Kernel Metadata in a Recipe" section. 947cc83 kernel-dev: Correct reference to "files" directory, should be ${PN}", and update kernel version. 7727a16 ref-manual: Updated the KMACHINE variable description. 2a5344e yocto-project-qs: Added note to Debian package requirements section. dae9b5f xserver-xorg: don't close already-closed connections 38cdb72 systemtap: Upgrade to 2.7 e75c95c systemd: Fix the problem of an empty journal on boot d7fe8b4 mailx: fix SRC_URI 1662423 systemd: Fix runtime failures in systemd-tmpfiles-setup.service. 56f010f glibc: 'yes' within the path sets wrong variables 9e95469 opkg: Fix error when recompiled d5fb9aa gdb: add whitespace to _append 44d763e systemd: correct permission mode of /var/volatile/tmp 664c1df systemd: Create packageconfig for ldconfig support bd0ed7c image_types: Fix MIN_BTRFS_SIZE to be 1024 blocks to match ROOTFS_SIZE d6a2a54 systemd: fix systemd-tmpfiles ACL issues f5e4349 openssl: Upgrade to 1.0.2 7c504b4 bash 3.2.48: disable parallel build 370e730 create-pull-request: fix git GIT_VERSION 72ee285 pkg-config: strip system library paths reliably 8732930 rpm: don't put LDFLAGS into the .pc file ddc8222 oeqa/selftest: Added a testcase to verify INCOMPATIBLE_LICENSE option. f0f6b23 lib/oeqa/selftest/lic-checksum: Verify failure when checksum changes. a39ce56 base.bbclass: Add LIC_FILES_CHKSUM files to checksum files. 3f8ce1e sed: Cope with ${bindir} and ${base_bindir} being the same 9d078a1 libtool: put libltdl.la in the right package. 6e539bf glibc_2.21.bb: Fix condition to skip parsing the recipe for non-glibc libc bd193a0 libgpg-error: Add -P option to CPPFLAGS 1aa32a1 wic: rawcopy: support skipping 5e2dd63 wic: add fsimage plugin 0393438 wic: fix fstab generation 5cfac6b systemd: avoid parsing error when 'networkd' is enabled in PACKAGECONFIG 5818c0d gcc-source: fix bug to avoid building error. ca3a3c0 meta/lib/oe/utils.py: properly implement both_contain() d5a2858 report-error: Update information on the submission process a8b1ded scripts/send-error-report: Rework script to support new features ba78a36 recipes: add x11 to required DISTRO_FEATURES 0467d53 bitbake: cooker/server: Fix up 100% CPU usage at idle 8ce2f2c maintainers.inc: Became maintainer of python2 and python3 efc7f04 scripts/runqemu: clarify help text 21e2c03 qt4: add patch for BMP denial-of-service vulnerability 73be8c1 man: fix bugs of makewhatis script 36e47a9 bitbake: fetch2: Revalidate checksums, YOCTO #5571 3c641e7 bitbake: toaster: cached outcome download button f5edfce bitbake: toaster: projectapp.js - clear up jslint warnings 0fa38bb bitbake: toaster: libtoaster Fix a few warnings picked up by jshint 41ebd51 bitbake: toaterui: shorten the unavailable artifact message 5a03a23 bitbake: toasterui: give some space to the download log button 74bb0fb bitbake: toasterui: apply correct class to latest builds targets d2c9f70 bitbake: toasterui: fix the h1 in the project builds page 16c03f8 bitbake: toasterui: don't open layer details in a new tab dcbfc74 bitbake: toaster: Enforce unique layer names d8ae3ac bitbake: toaster: commit id format on layers page 4004aeb bitbake: toastergui: bring back base URLs for pages that need them ece39b4 bitbake: toaster: reconcile non-manage-mode landing classes 4f36647 bitbake: toaster: hide special code for core vars not present, disable add button 48c48a4 bitbake: toaster: layer rev tooltip only if necessary ec8e07f bitbake: toaster: add sort, search, paging to recipe package page e248a50 bitbake: toaster: models.py do not use transactions 7d9dd12 bitbake: xmlrpc server: delete function on errors b611de9 bitbake: cooker: make sure state is properly used to accept clients 8d87f70 bitbake: xmlrpcserver: do not connect client on error 69d13dc bitbake: toaster: delete test data a9cd657 bitbake: cooker: read file watches on server idle c504276 dev-manual, ref-manual: Replaced &dash;&dash; with "--" a889cc0 yocto-project-qs: Added a cross-link to the wiki page for YP releases. 551edbd kernel-dev: Update name of build directory a79cdb5 bsp-guide, kernel-dev, ref-manual: KERNEL_FEATURES should refer to .scc files. f0b44ff kernel-dev: Applied some user-input formatting for some variables. dc56adb kernel-dev: Substituted "emenlow" example for "fri2" 0401f07 kernel-dev: Added quotes around a section cross-reference. 14316cf kernel-dev: Fixed variable formatting. 42f5b11 dev-manual: Updates to the "Working Within Eclipse" section. 1beb6fc poky.ent: Added a new variable ECLIPSE_LUNA_URL 62e4d45 ref-manual: Updated the MACHINE variable description. 4a5f137 kernel-dev: Swapped out fri2 BSP for emenlow BSP in example. 82ad008 kernel-dev: Updated "Modifying Source Code" section. 86f4cf8 yocto-project-qs: Updates to add more explanations and navigation 8951db6 poky.ent: Changed the code name from "tbd" to "fido". 0a20913 dev-manual: Updates to Eclipse section e7e5330 kernel-dev: Scrubbed out the 3.4 kernel references. 043e02c kernel-dev: Minor typo fixed and added LTSI link a8f2196 kernel-dev, ref-manual: Edits to KBRANCH. 8ced82e kernel-dev, ref-manual: Scrubbed out the KBRANCH_DEFAULT variable. fef68d3 ref-manual: Updated the KBRANCH variable description b49a5cc kernel-dev: Clarify a couple minor things in kernel manual, ch 2. bef8558 README: expand the Where To Send Patches section 5c1c8af build-appliance-image: Update to master head revision d01cd53 systemd: fix tmpfiles error on images without PAM 8d4e621 gstreamer1.0-plugins-bad: disable Yadif on X32 ecd052e glibc: Fix check for -Os. 03a3577 gst-player: port to GTK+ 2 3fb3030 kern-tools: improve patch application performance 49d7aae linux-yocto/3.14: OcteonIII support e02016e kernel-yocto: inhibit BSP description warnings for custom linux-yocto kernels dd1d4e5 linux-yocto: fix qemux86-64 config warning bf1a68e taglib: Fix cmake floating dependency on boost bf59b22 security_flags: remove PIE flags from flex and gstreamer1.0-plugins-bad 4a26326 build-appliance-image: Update to master head revision d273197 gst-player: only depend on -ugly plugins if commercial licenses enabled 89bf0bf build-appliance-image: Update to master head revision 9bd1da2 systemd: add PACKAGECONFIG for xkbcommon and iptables aef3a58 systemd: use PACKAGECONFIG for PAM enable/disable c0bd9e6 systemd: add missing util-linux build-dependency a3fe99d owl-video: remove 646dfe0 packagegroups: use gst-player instead of owl-video a240f08 sato: fix typo in packagegroup 5025479 build-appliance-image: Update to master head revision 8571027 ref-manual: Added variable description for FILES_SOLIBSDEV 4bdaa5c kernel-dev: Small fixes. 1a74c79 kernel-dev: Updated FILESEXTRAPATHS example in 2.2.3. 9c4574e python: Fix ctypes/libffi configure 51908e5 package_rpm.bbclass: support packaging of symlinks to directories de638414 libpcap: add pkg-config support 7ce7756 systemd: Upgrade 218 -> 219 3af8d90 libgpg-error: Upgrade 1.17 -> 1.18 aecc63d bitbake: toaster: config var layout fixes 8c476c2 bitbake: toaster: all projects data and sorts 6768a30 bitbake: toastergui: add csrf tokens for AJAX calls ee1af30 bitbake: toasterui: do not use transactions if the database autocommits 87c6a54 bitbake: toaster: order layers with same priority f116c32 bitbake: toasterui: fix sstate task identification 2d1d6a8 bitbake: toastergui: stop covered task graph traversal early 63e5d47 bitbake: toaster: fix typo in models.py e2b5d23 gaku: remove (replaced by gst-player) b05a5a7 sato: use gtk-play (from gst-player) instead of Gaku f8b5481 gst-player: add 6d7cf8e lib/oe/terminal: fix konsole terminal support for KDE 4.x f160730 lib/oe/terminal: fix regressions efd78e3 bitbake: bitbake-layers: fix wildcard support in remove-layer 40d80f9 build-appliance-image: Update to master head revision b77596a ref-manual: Updates to scrub out 3.10 kernel. f94b629 dev-manual: Adjusted text for deprecated 3.10 and 3.17 kernels. a438aa3 bsp-guide: Removed 3.10 and 3.17 kernel references. a0a1f17 ref-manual: Repositioned PNG files for context image. 0a8c08e ref-style.css: Added a new style to support glossary hanging indent 8aa9a23 bitbake: toasterui: fix ETA calculation f120b78 bitbake: toastergui: performance improvements in task details page cb23e30 bitbake: toasterui: disable autocommit for build logging 6de6739 bitbake: toaster: update requirement for Django 1.6 03c1e47 bitbake: toasterui: improving the latest builds consistency 1ea940f bitbake: toaster: Add machine selection notification 1e0e700 bitbake: toasterui: style the Toaster version information 4742ae9 bitbake: toaster: layerdetails Fix pagination controls 00e3545 bitbake: toaster: layerdetails Add link to machines file e28097f bitbake: toaster: layerdetails summary/descriptions to be searchable bd5087d bitbake: toastergui: fix spacing and input field sizes 43afafe terminal.py: No --disable-factory for gnome-terminal >= 3.10 9e9d6df systemd: Upgrade 216 -> 218 28618e4 util-linux: disable systemd 0481973 python-native: Fixes PGEN linking errors Changes Makefile rules to avoid parallel make races when trying to build Parser/PGEN d6a2cf3 glibc: Help compile with -Os 4d83a90 gst-plugins-package.inc: Avoid dependency on ${PN} from ${PN}-<plugin> d861cc4 recipes: Delete superfluous assignments, S = ${WORKDIR}/${BP} f7c45a4 busybox:udhcpc: Remove the routes from the right interface 48fa868 busybox:udhcpc: Start with a metric of 10 for routes 0e04c93 base-files: clean up and clarify hostname logic 5456737 populate_sdk_ext: add extensible SDK 46ee86c scripts/oe-buildenv-internal: add means of skipping SDK check during setup 8e8e924 uninative-tarball: Actually use bzip2 for compression. 01c9f3b toolchain-shar-template.sh: Make relocation optional. fe678e7 toolchain-scripts: Add parameters to toolchain_create_sdk_env_script. 1118c12 copy_buildsystem.py: Add methods to copy shared state. d5d4b70 copy_buildsystem.py: Add a way to copy buildsystem to a directory. 91a9b3f sstatesig: Add ability to filter list of tasks for locked-sigs.inc 67c1d2e gen-lockedsig-cache: Allow cross-filesystem copies. 19e06e6 poky.conf: resolve mismatch between poky bblayers version and OE-Core 1bb0022 classes/sanity: avoid bblayers version issue when switching between poky and other DISTRO values a509e27 Revert "bind: fix and enable parallel build" 04faba5 Revert "logrotate: 3.8.8 -> 3.8.9" 687c797 Revert "openssl: fix and enable parallel build" 360dbb5 python-native: Reverts usage of distutils.sysconfig On older versions of Python, sysconfig read the Makefile and Python.h, generated at build time now it uses _sysconfigdata which contains information about the HOST, erroneous in our case, this causes an error when bulding something using distutils since it obtains compiler information and such. cb02ecb Python: Upgrade from 2.7.3 to 2.7.9: 122ee11 devtool: fix broken clones of git recipes e7744de devtool: support source extraction for recipes that use a shared workdir 62a41b4 devtool: modify: handle recipes that use a shared workdir e2ce29f devtool: prevent extract/modify use with image recipes efedd43 devtool: update-recipe: add handling for git recipes 6015deb lib/oe/recipeutils: minor improvements to patch_recipe() e5bf4ed devtool: build: run do_populate_sysroot instead of do_install 845efa4 devtool: reset: run bitbake -c clean on recipe 8e7437b devtool: add/modify: add option to build in same directory 4a2e42d classes/kernel-yocto: extend SRCTREECOVEREDTASKS 550d455 classes/externalsrc: show a warning on compiling d4af8f0 classes/externalsrc: add workaround for recipes that use SRCPV in PV db7f7b5 classes/externalsrc: fix source being wiped out on clean with kernel f205cca lib/oe/patch: fix PATCHTOOL = "git" with source in a subdirectory 5eb9ffe recipetool: fix regression caused by previous commit 3c2f5fd pulseaudio: upgrade to 6.0 1726063 meta-yocto-bsps: remove 3.10 bbappend f3e7955 meta-yocto: update qemu default kernel version to 3.19 dfa2848 bitbake: bitbake-layers: add ability to fetch layers and their dependencies from layer index 90ffdc0 bitbake: bitbake-layers: fix logging 4a32837 bitbake: bitbake-layers: refactor to use argparse instead of cmd 68f4dca runqemu: Specify rootfstype to qemu to avoid QA warnings 7dcf6c9 machine/qemu: Switch from ext3 to ext4 8506429 layer.conf: set a variable to map to the OE Layer Index name 48d0b3f bitbake.conf: Add two variables for layer index f1daefb lib/oeqa/selftest/bblayers: use dashed subcommands d4f11d6 glibc: Dont offer to be parsed for non-glibc TCLIBC selection 739b177 tclibc-musl: Use musl for providing virtual/libintl instead of gettext 982b5aa lttng-tools: add PACKAGECONFIG for kmod 1f6e644 build-compare: update Rename-rpm-check.sh-to-pkg-diff.sh.patch e011e92 lib/oe/package_manager: Performance tweak in regex usage efa7c29 e2fsprogs: Add a patch to speedup mkfs c417736 arch-armv7a.inc, tune-arm920t.inc: Fix PACKAGE_EXTRA_ARCHS fe66853 feature-arm-thumb.inc: respect ARM_INSTRUCTION_SET when adding thumb suffix 4b69d00 kexec-tools: fix build failure on aarch64_be architecture b4a936a wic: Fix kernel dir location 629b91b xorg-font-common: fix sysroot injection for encoding maps ab18ec7 font-util: remove MAPFILES_PATH override f220b96 font-util: stage encoding maps into sysroot bc309f0 opkg: fix systemd unit installation 76c8fad Revert "kernel-arch.bbclass: add arm64 support to U-Boot architecture map" 0a69248 logrotate: 3.8.8 -> 3.8.9 3124798 python-gitdb: 0.6.1 -> 0.6.4 3f99702 python-git: 0.3.3 -> 0.3.6 8611188 git: 2.2.1 -> 2.3.0 d078cae cups: 2.0.1 -> 2.0.2 aba8f4a quilt: 0.63 -> 0.64 e0a55a9 kernelshark: Update to version 2.5.3 6dc2030 trace-cmd: Update to version 2.5.3 b3e92f4 oeqa/parselogs: Add exception for new mips error message 726c6c1 linux-yocto: warn when a generated BSP description is used 7e6147b linux-yocto: introduce 3.19 versioned recipes c75d6c8 linux-yocto: remove 3.10 and 3.17 recipes dfa83e6 linux-yocto: make kernel configuration audit user visible 63dd5d0 linux-libc-headers: update to 3.19 5db6a27 bitbake: toaster: importlayer Remove description input field d27893d bitbake: toasterui: remove layer directory in managed mode 50f11b9 bitbake: toasterui: style the Toaster version information 91e900f bitbake: toaster: layerdetails Don't show None type in description/summary 64fc177 bitbake: toaster: landing page when no build module c856a4e bitbake: toaster: get proper version string e133fbf bitbake: toasterui: UI query performance improvements 9c358bd bitbake: toasterui: fix time estimation in project page 6dbd214 bitbake: toaster: properly detect starting in rolling log file c368d83 bitbake: toaster: bitbake cooker log saving and downloading a574f29 glibc: Update to glibc 2.21 release tag a488fd5 glibc: Upgrade 2.20 -> 2.21 dda70ca lzo: Upgrade to 2.09 and add ptest 3201818 bind: Fix parallel make issue 285966f btrfs-tools: fix for parallel build da1259e busybox: update to 1.23.1 release 0a53957 openssl: disable SSLv3 by default 0aa5ea1 packaging: allow globs in CONFFILES c4cc479 qt-mobility: Add patch to fix disabling bluez compile issues 26be755 oeqa/ptest: Fixed complementary package install detection and added ptest-runner exit code check 2f8e5a8 license.bbclass: fix unexpected operator for LICENSE values with space c58a3ae valgrind: add glibc-2.21 to glibc.patch 9973ce1 useradd.bbclass: avoid do_rootfs error for debian package backend 3d7c798 update-rc.d: use '-f' option in updatercd_postrm aa48c4f package_manager.py: use 'purge' instead of 'remove' in case of deb 876015d scripts: delete dummy help2man script 2fdc772 coreutils: import prebuilt manpages from Gentoo a481686 coreutils: don't generate useless dummy stub manpages 2ca0339 utils.bbclass: fix create_cmdline_wrapper 51bdf3b ref-manual: Review edits to the AUTOREV variable. f03c837 ref-manual: Updates to AUTOREV and SRCREV variable descriptions 586992d toaster-manual: 2nd draft for review. 3dad9aee adt-manual, ref-manual: Detail on using an external toolchain. 6d17aa0 ref-manual: Added 'debug-tweaks' fragmentation. f63a3b6 ref-manual: Updates to some variables per review comments. da3a489 ref-manual, mega-manual: Adjustments to variable context images 26a3df4 ref-manual: Updated the ASSUME_SHLIB variable. 5727058 ref-manual: Added new variable description for BUILD_VENDOR. 3c3e856 ref-manual: Added variable description for BUILD_PREFIX. d089b7c ref-manual: Added new description for SDK_VENDOR. b0ed0bc ref-manual: Edits to the SDK_SYS variable. 9525322 ref-manual: Added new variable description for SDK_SYS. d8acb87 ref-manual: Added new description for SDK_OS. 35612bf ref-manual: Created new SDK_PREFIX glossary entry. 0410f36 ref-manual: Updates to TARGET_PREFIX and STAGING_DIR_HOST variables. 32f6b13 ref-manual: Updated the SOURCE_MIRROR_FETCH variable description. 022f5af ref-manual: Updated the Date variable description. a7f992e ref-manual: Updated the BUILD_OS variable description. a89f895 ref-manual: Updated the BUILD_ARCH variable description. 0ba32a6 ref-manual: Updated the ASSUME_SHLIBS variable. 46614da dev-manual: Edit to wording in "Avoid Duplicating Include Files" 8e8d9615 ref-manual: Updated the following variables based on review comments: 21fcd57 ref-manual: Updates to SDKTARGETSYSROOT and PKG_CONFIG_PATH variables. f3410bf dev-manual: Updates to "Avoiding Duplicating Include Files" section. ef959e6 ref-manual: Added "leakage" FAQ entry. a0999ab toaster-manual: Updated tar contents to not include the PDF file. 481c178 mega-manual: Edits to fix titling 0c4e31c mega-manual: Fixed reference to style sheet. 1b719fa toaster-manual: Cleaned up the intro chapter 6d512bd mega-manual: Updated sed file to include the toaster manual. dd62d57 mega-manual: Added toaster-title.png and code to include toaster-manual ab2007d Makefile: Removed default PDF creation of Toaster Manual. 9d033d8 toaster-manual: Added two chapter files. e2f004f toaster-manual: Changed from "current" to "1.76.1" XSL templates 7fe19fc toaster-manual: Edits to the intro chapter 464c1d9 toaster-manual: Added two chapters to the manual's book file. 0e3cb25 toaster-manual: WIP - Some placeholder introductory text. cd31b93 documentation: Support files to build Toaster Manual. 4302376 toaster-manual: Initial file structure for new Toaster User Manual. 75206cc ref-manual: WIP - test for YOCTO #5600 d8e2874 mega-manual: New PNG file for mega-manual title page. f1bb814 ref-manual: Fixed icecc example code b83bed6 dev-manual: Fixed reference to TEST_SERIALCONTROL link 3c7ad6e dev-manual: Fixed tc attribute description 5d19f2b dev-manual: First draft of recipetool section. b2a6806 dev-manual: Edits to Quilt and finding temporary source code sections be7e182 documentation: Reverted back to the 1.76.1 XSL stylesheet 0a54446 mega-manual, Makefile, poky.ent: Added front matter to mega-manual 4a1ea28 documentation: First draft devtools. b876909 adt-manual, ref-manual: Review edits for xcross-toolchain additions. 93052c9 adt-manual: Remaining mods to clarify xtoolchain env use 05feb96 adt-manual: Added file name for reference to the config file. ce8ead3 adt-manual, ref-manual: Added missing variables and cross-links 9c27a91 adt-manual: Added a list of variables defined for ADT setup 4d12f8d adt-manual: Expanded note with a user configuration reference. 77a6283 adt-manual: Added missing period. 9dff02b adt-manual: Added some reasoning behind sourcing the xtoolchain env script cc06786 adt-manual: Reword for how user-space tools are provided. db030b1 dev-manual: Updated the OpenEmbedded build system term. b0639bc adt-manual: Added cross-reference to OE build system term 7ca1a51 dev-manual: Added OpenEmbedded build system term, dumped build system 568224b adt-manual: Fixed hyphenation issue. ee80485 dev-manual: Removed #!/bin/sh -e from the base script form f50e412 dev-manual: Updated the QEMUARCH option in the runqemu command. 3ac2890 ref-manual: Removed the DISTRO_PN_ALIAS variable. e0dbcbf ref-manual: Edits to SOURCE_MIRROR_FETCH variable and typo fix 44ddc35 ref-manual, dev-manual: Removed information about package name alias. db874ed ref-manual, dev-manual, adt-manual, yocto-project-qs: scrub eglibc 9a47967 ref-manual, mega-manual: Updated buildhistory example figure 84647d5 ref-manual: scrubbed eglibc 84ee65a ref-manual: Edits to the TCLIBCAPPEND variable. 328b3bd ref-manual: Added 21 new variable to glossary. 70a2007 ref-manual: New variables added to the variable glossary eafdfbf tools: Added new file update-documentation-conf 10b2504 ref-manual: Updated the [doc] string to include the & character. c9b7007 ref-manual: Added warnings about using package_tar 4ab132a dev-manual, ref-manual, yocto-project-qs: Updates to parallelism variables 0a367c5 ref-manual: Updated text for speeding up builds. d1bd81e dev-manual: Updated examples in "Splitting an Application into Multiple Packages" 281c472 dev-manual: Edits to add more detail to where patch files are 6a6687d dev-manual: Updated text to indicate patch files can end differently 3cd8d86 dev-manual: Removed unwanted characters from text. f8245d9 dev-manual: Updated section on how checksums are dealt with 4492b37 dev-manual: Replaced lttng-control and lttng-viewer with lttng-tools. 2d54b1d ref-manual: Added CentOS 7.x to list of supported distros. bc4858f dev-manual, ref-manual: Edits to dev manager section and USE_DEVFS var. 0e0a19a ref-manual: Added a cross-reference from the USE_DEVFS variable da47cb7 dev-manual: New section on choosing a device manager added. a23e76d dev-manual: repaired cross-line link for a <ulink></ulink> pair. b273c25 ref-manual: Added USE_DEVFS variable description 8bb0ffb ref-manual: Re-ordered the UPDATERCPN variable. f972db3 dev-manual: Updates to the "Locate a Base Recipe" section. c037dd7 dev-manual: Updates to the "Using .bbappend Files" section. 1e0797a documentation: Removed redundant ID tags that were throwing warnings 48559ff ref-manual: Review edits to several glossary variables. 63750d8 dev-manual: Updates to using IMAGE_FEATURES and EXTRA_IMAGE_FEATURES a0e8418 bsp-guide: Added a clarifying not about meta- in BSP layer names. 73588fa dev-manual: Updated sysroot location for Eclipse examples. 261fd1b bsp-guide: Replaced the Crown Bay example with the eMenlow. 2bf21c2 bsp-guide: Updated the output examples for bsp tools. 7d480c3 ref-manual: 13 new variables added to the glossary. b83c526 Makefile: Modified to make 'pdf' target not part of 'all' e318032 ref-manual: Updated the supported distro list. e1f4ba8 poky.ent: Corrected two variables with typos d250d38 documentation: Changed back to the "current" XSL style sheet. 66ad91b dev-manual: Rewrite of the section on customizing images with packagegroups c8691a2 dev-manual, mega-manual: Updated kernel-overview-2-generic.png file. 0cec924 dev-manual: Applied wording to warn reader that wikis have dated info. cd37517 dev-manual: Add ref to bitbake-layers "add-layer" and "remove-layer" b7020b0 dev-manual: Added missing ending quotation to code snippet. 88f431c bitbake: toasterui: empty state for pages 208f40d bitbake: toaster: Set the machines page default pagesize to 100 baa38a1 bitbake: toaster: Remove filtering from layers,machines and targets c5ba5ec bitbake: toaster: Remove Layer source from machines, layers and targets 82d2c50 bitbake: toaster: New build button allow arbitrary build targets 9819728 bitbake: toaster: Additional fixes for the project variable page eba4e0f bitbake: toaster: layerdetails use new vcs reference api 3775265 bitbake: toaster: fix git checkout command a07cf2e bitbake: toaster: properly detect failed server start d8d0db1 bitbake: toaster: Use on input event for validation rather than keyup fdb5639 lib/oe/package_manager: support exclusion from complementary glob process by regex 3d2d158 test-dependencies.sh: strip only .bb suffix 3f8c532 qt-mobility: select distro preference for bluez provider 9571ccb iputils: install clockdiff same as ubuntu and fedora 508509d populate_sdk: Handle OLDEST_KERNEL d8d5fee default-providers: Set the preferred provider for bluez based on version 8633e18 connman: depend on distro provider of bluez 7800588 conf/distro/include/default-providers: updated bluez-hcidump providers 44b08f2 gstreamer1.0-plugins-bad: select distro preference for bluez provider 4e2642e ofono: select distro preference for bluez provider 8596c29 libpcap: select distro preference for bluez provider 47dea14 neard: select distro preference for bluez provider 0a4db94 pulseaudio: select distro preference for bluez provider 0c9d0e9 packagegroup-base: select distro preference for bluez provider 1139cc4 bluetooth.bbclass: simplify recipe inference of bluetooth provider 69c5e09 libtool: 2.4.5 -> 2.4.6 ad82508 neon: update 0.30.0 -> 0.30.1 6ae933b bitbake: tests/fetch.py: latest_versionstring add set of PN 1c1d9e3 bitbake: fetch2: wget remove scape of - in regexes don't needed 5a88664 bitbake: fetch2: wget _modelate_version improvments 22cebb8 bitbake: fetch2: wget latest_versionstring improvments in get version by dir 62e171b bitbake: fetch2: wget add _check_latest_version_by_dir 309d92e bitbake: fetch2: wget latest_versionstring _check_latest_version improvments bed1b3f bitbake: fetch2: wget latest_versionstring improve _parse_path c4da9b9 bitbake: cooker: rework LAYERDEPENDS versioning so that it is actually useful 758dc92 bitbake: tests: add tests for OE pre-release version formatting 93c3f39 bitbake: utils: ensure explode_dep_versions2 raises an exception on invalid/missing operator b427750 bitbake: depexp.py: Fix segfault if DISPLAY is not set a2bfd4b syslinux: support ext2/3/4 device 06ff3c4 e2fsprogs: Extend to add nativesdk for syslinux a55d537 gcc: Upgrade 4.9.1 -> 4.9.2 18b3cfd gst-plugins-base: Fix mulitlib packaging d88555b openssl: upgrade to 1.0.1k 4c00256 oeqa/ptest: Removed buildhistory as requirement for ptest c74ee53 libassuan: add native build cd34df3 gpgme: fix configuration by setting proper parameters instead of patching 6cac3ad oeqa/smart: Added some new test cases c0a7941 build-compare: Add the build-compare_git.bb recipe. c0a1f43 coreutils 6.9: fix unknown-configure-option ce79eca libnewt-python: remove make var LIBNEWTSH dc9c8bc icu: remove obsolete aclocal.m4 workaround (fixed upstream since v52.1) abb6cde libaio: Backport generic arch detection patch 60ae5c2 meta: enable parallel build for several recipes eee50b2 vala.bbclass: enable PARALLEL_MAKE eacb5c5 pcmciautils: fix and enable parallel build 8d30c2a ghostscript: fix and enable parallel build 2d9763a blktrace: fix and enable parallel build 7502fa5 openssl: fix and enable parallel build 60b33e5 pth: fix and enable parallel build 5f5d0d8 mtools: fix and enable parallel build 208c9d3 at: fix and enable parallel build 5c87de1 tcp-wrappers: fix and enable parallel build b003df0 bind: fix and enable parallel build 3dff11c openssl: Add mapping for microblaze architecture f562905 btrfs-tools: remove nodocs.patch f404ab2 neard: do not ship version.h 146f28a gcc-sanitizers: check gcc-build-internal before link 88ad298 rt-tests: fix gzip command b3dab28 libtool: don't execute automake and autoconf on every invocation 00472a7 Revert "libtool: avoid running automake/autoconf --version" ef07260 bluez5: upgrade to 5.28 51b6021 ofono: upgrade to 1.16 7d1e1fc python-pycurl: 7.19.5 -> 7.19.5.1 7b72a84 python-scons: 2.3.2 -> 2.3.4 ca88dd8 lttng-tools: 2.5.3 -> 2.6.0 6d247eb libpciaccess 0.13.2 -> 0.13.3 6f47148 lttng-ust: 2.5.2 -> 2.6.0 8b54cb7 subversion: 1.8.10 -> 1.8.11 1aa6b04 kexec-tools: 2.0.8 -> 2.0.9 2e608ec package_regex.inc: Cleanup and organize 73f7ced upstream_tracking.inc: Remove entries that now isn\'t needed b7153be image: add new items to IMAGE_FEATURES[validitems] list 5476ce3 gstreamer-plugins: don't ship files in ${PN} f749594 gst-plugins-good: ship equaliser presets in right package 8df03f4 gstreamer1.0-plugins-good: ship equaliser presets in right package bfb4819 gstreamer1.0-plugins-base: move data to the right subpackage 34221ef gst-plugins-*, gstreamer1.0-plugins-*: fix main package binary components 1920ef3 oe-pkgdata-util: add some QA tests cfc12df oe-pkgdata-util: add list-pkg-files subcommand 8d13d18 oe-pkgdata-util: add list-pkgs subcommand 4b33006 oe-pkgdata-util: allow reverse package name lookups 0f77efe oe-pkgdata-util: fix read-value to handle data with colons in the value 1fb1caf oe-pkgdata-util: make find-path show a proper error if no package found 9f03969 oe-pkgdata-util: improve command-line usage 675aa5f git: add basic tab completion support 9aafb02 git: expand recipe to take advantage of pre-gen'd manpages af7fc22 lib/oe/lsb.py: Fix up for dash 842a332 image_types: Error out if BTRFS image is too small e34a65f cryptodev-module: Fix build on kernel v3.19 ae977c5 xserver-xorg: Improvments in systemd-logind disable 84520a9 xserver-xorg: Update to 1.16.3 1cdaf20 base-files/profile: change EDITOR to not be busybox specific 34a4413 u-boot: update to version 2015.01 1993237 procps: disable fancy new top output mode 9e93803 connman: upgrade to 1.28 c22ba2d harfbuzz: upgrade to 0.9.38 8102bd0 wic: add GPT support fa818fb wic: properly label filesystems 5c05635 wic: fix empty btrfs partitions 4dce5c4 wic: remove useless calls to __write_fstab cf3e21e wic: allow to configure overhead factor per partition d84742c wic: allow to configure extra space per partition 605627b wic: add rawcopy source plugin 0b156da wic: allow creation of partitions not in table f923f0f toasterconf: update Toaster configuration file 53f3f61 mesa: update 10.4.3 -> 10.4.4 efd0e86 mesa: update --with-llvm-shared-libs configure option 548ab15 qemu: Update PACKAGECONFIG[xen] and add xen to defaults 62eb5e6 kern-tools: fix patch application error (preempt-rt) edde3e5 runqemu: Add option for BIOS binary filename 98da500 btrfs-tools: update to 3.18.2 a298d8c qmake_base.bbclass: fix hardcoded paths in a generated qt.conf 23bf6bf gst-fluendo-mpegdemux: update to 0.10.85 4870290 rootfs.py: ignore "NOTE:" when catching warnings 2c2b003 dhcp-client: Ignore partial checksums a849839 u-boot.inc: unbreak ae32fed gcc-target: Don't install target gcc libdir files cefc403 autotools/siteinfo: Avoid races over siteinfo files 231d4a9 bitbake: bitbake-user-manual: Removed errant writer note line. 9f562f8 bitbake: bitbake-user-manual: Added some links to some new variables. d87805b bitbake: bitbake-user-manual: Added five new repo variables and links. 961e692 bitbake: Makefile: Updated the script to not create PDF version by default 1a740bb bitbake: toastergui: links outside Toaster should open in a new window c8a8288 bitbake: toaster: All machines Fix filter counts ea7d246 bitbake: toaster: All machines show results count if filtering or searching 2a3ca55 bitbake: toaster: All machines reset order_by if removing that column 203ac29 bitbake: toaster: all Machines exclude de-prioritised layer source items a7ab4d0 bitbake: toaster: All Machines fix reset search link 9e8798f bitbake: toaster: models Allow the machine's layer name to be searched d6868d5 bitbake: toaster: All machines Add filtering based on layer in project 50719af bitbake: toaster: All machines Add layer name order by functions 02b7704 bitbake: toaster: layerdetails Don't remove alert from dom on dismissal a1347a1 bitbake: toaster: All machines Update layer notifications 479338c bitbake: toaster: All machines add a column to link back to machine conf 87074af bitbake: toaster: machines Make sure we don't overwrite the pagesize 8c25c34 bitbake: toaster: Add add/select functionality to machines page 6969a3d bitbake: toaster: machines Fix undefined variables b2a903e bitbake: toastergui: add download task log icon to recipe details page 6877263 bitbake: toastergui: add the word 'compatible' to 'all' pages 42a7d91 bitbake: toastergui: set column heading to 'Revision' d81e514 bitbake: toaster: display Toaster mode and version in debug mode da8110a bitbake: toaster: improve logging facilities for toaster 0c89846 bitbake: toaster: enhancements for the startup sequence 202d808 bitbake: toastergui: improvements in layer selection logic b741c9a bitbake: toaster: enable server-side caches and debug-panel d72f198 bitbake: toastergui: fix loadconf error message ed5c448 bitbake: toaster: correct typo in toaster script 514b7cf bitbake: toasterui: use text() instead of html() 16a9667 bitbake: toastergui: remove time link for failed build requests cc5f804 libtool: Fix option parsing performance regression 870323c linux-yocto/3.14: fix qemumips build error 0357437 kern-tools: import patch performance improvements 9348049 linux-yocto-dev: update to v3.19+ 4078802 lttng: update to 2.6.0-stable 46b1b96 linux-yocto: basic octeon III support ef3fa60 linux-yocto/3.17: update to v3.17.8 d0fe36e linux-yocto/3.10: update to v3.10.65 5848c92 linux-yocto/3.14: update to 3.14.29 a7c428c kernel-dev: install all modules by default dade54f libdrm: upgrade to 2.4.59 62cd5e7 flac: upgrade to 1.3.1 3145abf neard: upgrade to 0.15 4530a8f m4-native 1.4.9: remove it 586eab4 bison 2.3: disable native 90ca8d5 coreutils 6.9: disable native 9171652 elfutils 0.148: use BPN in SRC_URI b5577e0 subversion 1.6.15: fix unknown-configure-option 8eadaec rxvt-unicode: fix for 9.20 and 9.21 594959e tar 1.17: fix unknown-configure-option f4b1459 grep 2.5.1a: fix unknown-configure-option 1f9b782 gzip 1.3.12: a few fixes 8f2bda7 patch 2.5.9: fix unknown-configure-option b92a619 m4 1.4.9: fix unknown-configure-option 82bc3fb findutils 4.2.31: fix SRC_URI d31ec82 groff 1.18.1.4: fix HOMEPAGE and SRC_URI 60b932d xf86-video-intel 2.21.15: remove it 4557e95 matchbox-desktop: remove 0.9.1 and 2.0 version f9db549 matchbox-wm 1.2: remove it a960a14 which 2.18: fix SRC_URI 1b45a51 busybox: Include 'mesg' utility a3dfb70 recipetool: improve command-line help 9433537 devtool: improve command-line help 7d73324 scripts/oe-selftest: add command line option to list test classes 336d28c scripts/oe-selftest: fix startup backtrace eba9f8a wic: bootimg-partition: Stop removing whole workdir 080e3e4 wic: print partition alignment when available 602d90d wic: use kB for the partitions size 7c3b9a9 terminal.py: add tmux new window option b7d91d3 openssh: Fix non-deterministic build behaviour 0de948f linux-yocto-tiny_3.17: Update to actually use 3.17 git repo f6ec8df Revert "bitbake.conf: don't remove WARN_QA and ERROR_QA from hashes" 24d9d5a insane.bbclass: Added QA test for expanded ${D} 1c5be77 files/toolchain-shar-template.sh: fix replace target_sdk_dir twice in environment setup file 16a0178 mesa: Upgrade to 10.4.3 09fba50 wic: bail out on kickstart parse errors 24ffda5 glibc: Re-enable upstream __USE_KERNEL_XATTR_DEFS patch 1f29265 image.bbclass: don't let do_rootfs depend on BUILDNAME d42963a core-image: split debug-tweaks into individual features dbfed41 create-pull-request: Fix git request-pull 5a4e20a ca-certificates: Upgrade to 20141019 (git based) 308a7ea lsbinitscripts: Upgrade to 9.61 10f95ff nspr: Upgrade to 4.10.8 5ca2518 glew: Upgrade to 1.12 30a5c9e classes/license: tweak license format messages 617e2e9 binconfig-disabled.bbclass: fix echo command 775d467 gcc-configure-common.inc: remove ac_cv_path_SED 588342f valgrind: depends on boost when ptest 5fcb217 apr-util: Allow use in SDK 6b19a93 wic: fix extended/logical partition layout eca277b u-boot.inc : add compile multiple u-boot feature 1e4ee4b uboot-config.bbclass: Allow multiple U-Boot config for machine 02a1e01 yocto-bsp: Add branch to SRC_URI for custom kernels bf6f35b yocto-bsp: Add missing conf dir to arm template 1f53ede libtool: avoid running automake/autoconf --version d8f0011 opkg-keyrings: New recipe 9d3e44d opkg: Backport improvements to opkg-key c8c75ed poky-feed-config-opkg: Remove e4d165d opkg: Merge in opkg-collateral 3d18626 opkg: Merge opkg.inc into recipe and tidy up d07c9ad opkg-collateral: Simplify source files d1373d4 opkg-arch-config: Renamed from opkg-config-base cb6501a apr: Allow use in SDK 8ec0347 insane: add unknown-configure-option to default WARN_QA 9c9560f bitbake.conf: don't remove WARN_QA and ERROR_QA from hashes ddb8d3f wayland: remove explicit class-native DEPENDS 8ac69a9 native: remove PN from DEPENDS automatically 7330a88 systemd: Backports fixes to 216 960dd0a lsbinitscripts: fix the path for mountpoint da35877 lib/oe/terminal: add support for Terminology terminal emulator 95bf2ab piglit: add x11 to required DISTRO_FEATURES 4cc8614 xmlto-native: fixes slow creation of yocto docs ee9acb1 xorg-driver: add x11 to required DISTRO_FEATURES 4385b3c package_manager.py: fix rootfs failure with multilib enabled e4dc8fe openssh: configuration updates 93842f0 pigz: Upgrade to 2.3.3 57647c9 terminal.py: fixes launching multiple windows of gnome-terminal f14e96a runqemu-internal: get rid of annoying but harmless error message 491d1db image.bbclass: make kernel depmod data optional 616696a busybox: cve-2014-9645 88a966a gnutls: update to 3.3.12 29d961a mingetty: fix SRC_URI 2bb31f1 pcmciautils: fix SRC_URI and HOMEPAGE 92cf495 latencytop: fix SRC_URI and HOMEPAGE a4ae55d pax: fix SRC_URI and HOMEPAGE 7775537 man: fix SRC_URI a375173 cwautomacros: fix SRC_URI and HOMEPAGE b0a28c0 dosfstools: fix SRC_URI eb0c8d5 base-passwd: fix SRC_URI 8c2c459 cdrtools-native: fix HOMEPAGE and SRC_URI 03038f3 perf: add LIBNUMA_DEFINES 312e8a1 screen: add PACKAGECONFIG for libutempter 5379ed8 dpkg: add perl to RDEPENDS ca232b5 lib/oe/image.py: add error checking for missing IMAGE_CMD 26e5b0f classes/image: ensure uninstalled packages do not appear in manifests 69c588b classes/image: skip recipe on invalid IMAGE_FEATURES item 124f041 lib/oe/rootfs.py: rename _uninstall_uneeded to fix spelling error 4421239 classes/image: drop unused default of MACHINE_POSTPROCESS_COMMAND 3f739a8 recipetool: replace version in S value bcfca54 libtool: Fix tools path issues bd84192 report-error: Catch un-readable log data 013f7e2 poky.conf: use logic to edit WARN_QA and ERROR_QA 3ebb522 poky.conf: remove poky-feed-config-opkg from images 825c0a9 bitbake: data_smart: split expanded removal values when handling _remove b00e781 bitbake: tests/data: add test for incorrect remove behaviour 22c38e2 build-appliance-image: Update to master head revision e240435 libtool: 2.4.4 -> 2.4.5 1036630 python: Disables SSLv3 4213ccc sed-native: drop 47a5525 btrfs: create an empty file to build the fs in 823d2f9 tzdata: update to 2015a including leap second d231cc4 tzcode: update to 2015a leap second changes too 6145832 build-appliance-image: update to head afe85485fe185b663a1285b5c27de3160bf06cf7 b4d01ec toasterconf.json update c462ce6 maintainers.inc: Update some items for Randy Witt. 2237c9f bitbake: toaster: proper setup for build configuration afe8548 bitbake: toaster: new layer checkout logic c58c948 bitbake: toaster: update texts for the startup sequence 635130d bitbake: data_smart: Don't use mutable objects as default args 087424d bitbake: parse/ast: Fix issue if path contains '&' 4f71827 bitbake: toastergui: update project build listing fefef50 bitbake: toasterui: do not filter images by extension 32b396b bitbake: toastergui: alignment fix bc63d6b bitbake: toastergui: remove recipe id links to the layer index a9c0865 bitbake: toastergui: consistent capitals in button 05f5435 bitbake: toastergui: hide table controls when when less than 10 entries 8a2ec99 bitbake: toastergui: set column width in layer details page d4b9b0f bitbake: toastergui: add 'show all' link to no results page c748c7e bitbake: toastergui: give the add dependencies form some breathing space 088c19d bitbake: toastergui: consistent add / remove layer notifications 571d551 bitbake: toastergui: remove redundant style declaration c049775 bitbake: toastergui: Generic message for the layer details empty states 24979f5 bitbake: toaster: apply common styles to right hand column of detail pages a11a34c bitbake: toaster: make layouts consistent e2cffc0 scripts/send-error-report: Set exit code if error occurs 3f15d8a kernel: Fix depmod for multilib 36bd248 image: Add missing depends on virtual/kernel for depmod data 08c64b5 security_flags: disable PIE on expect 7bc6794 logrotate: fix missing acl and libselinux dependencies 474661b dpkg: fix host contamination 3592507 combo-layer: support updating up to arbitrary commit 62d94a4 combo-layer: minor refactor f51e79b libunwind: Fix test case link failure on PowerPC with Altivec 8754c8a udev: remove obsolete dependency on acl 693d455 udev: fix missing dependency on glib-2.0-native d963f3b bitbake.conf: add PKGDATA_DIR to BB_HASHBASE_WHITELIST 609898a linux-dummy: provide empty shared_workdir method 86c77ac elfutils_0.148.bb: CVE-2014-9447 fix 6e02676 recipes-qt: add x11 to required DISTRO_FEATURES 6618cff libpng: Upgrade to 1.6.16 c55165e gmp: Change the SRC_URI to reflect upstream changed location dc11c0e icu: Upgrade to v54 ca1cd18 usbutils: Fix typo in md5sum b7d334d xserver-xorg: Add the patch to fix subwindow in Xi emulated events 14ef8b9 udev-cache: avoid using '-L' for stat 2b7d311 util-linux: move readprofile to match busybox 0962b29 libsm: remove dependency on e2fsprogs 2e8b1b4 systemd: remove util-linux from DEPENDS 0f8c091 util-linux: upgrade to 2.25.2 09aa2b1 libav: drop older 0.8.* and use libav-9 by default 872b656 libpostproc: import from meta-oe f78bf87 gst-ffmpeg: add dependency on libpostproc 57351e9 udev: don't keep ptest testdata laying around 0d5ac1a udev: fix ptest rule syntax check 29de3d2 ltp: update to 20150119 release b688d55 orc : Update to 0.4.23. af69192 kernel-yocto.bbclass: Bug Fix inside do_kernel_checkout() 3bf5b6d arch-mips.inc: Change definition of TRANSLATED_TARGET_ARCH e558e54 feature-arm-thumb.inc: Remove extra space on thumb override 9e44be4 dmidecode: add powerpc64 to compatible host 6a41dd1 gcc-sanitizers: fix licensing b2b62c3 binconfig-disabled: install config scripts in sysroot 5e6e95d binconfig-disabled: try harder to prevent usage of config scripts 0383bb8 lighttpd: Use PACKAGECONFIG to enable openssl c453597 eglibc-use-option-groups.patch: Various fixups 2af94b0 python-smartpm: Fix attemptonly builds when file conflicts occur 5656567 u-boot-fw-utils: Fix the cross build f687f99 libidn_0.6.14: fix the QA Issue 6a63df7 glibc: CVE-2014-9402 endless loop in getaddr_r 5db14d5 nss: update package to 3.17.3 and build fix dacbc74 boost: Avoid to use local host configuration 43dc6b5 image_types.bbclass: manage 'cpio_append' directory e598bd5 image_types.bbclass: fixed 'init' creation for cpio images 579aa72 kmod: new PACKAGECONFIG debug and logging to help reduce binary size. db8e08c base-passwd: Don't replace $ variables in passwd and group files 99ee41b build-appliance-image: Upgrade for 1.8 Master fd37993 mkfontscale: Upgrade to 1.1.2 2baa624 libxml-parser-perl: upgrade to 2.44 8bef633 gcc: ensure target gcc headers can be included a3dbfc8 bind: fix typo chown->chmod c4c885b distcc: fix initscript can not stop distcc daemon correctly 959759b gcc/libgcc-common.inc: Add missing 'fakeroot' to two tasks 867758c shadow: securetty: Add Xilinx Zynq SoC 2323efc pseudo_1.6.x.bb/pseudo_git.bb: Pseudo 1.6.4 07f2eca tiny-init: set proper S value 745cebd bitbake: siggen: Ensure taskdata default functions exist in base class 2b899a4 net-tools: Fix rerunning of do_patch task 11ef55a kernel/image/depmodwrapper: Fixups for depmod 46dba26 gcc-runtime: Remove libgfortran data from receipe a9102e5 package.bbclass: Let PR server update PKGV, not PV 8bab098 lib/oe/package: Ensure strip breaks hardlinks 7f58a85 python-2.7-manifest: Add package for contextlib module 3948336 dhcp: not override site.h bee37d4 dhcp: upgrade to 4.3.1 02ee240 rpcbind: add PACKAGECONFIG for systemd 38978ee rpcbind: upgrade to 0.2.2 3676378 man-pages: upgrade to 3.76 f733dad gnupg: upgrade to 2.1.1 e758eb5 xmlto: upgrade to 0.0.25 0421c67 elfutils: upgrade to 1.161 5832ed3 packagegroup-self-hosted: package all of Python 9839638 fix '[[: not found' error message using dash c5fb558 packagegroup-core-sdk: add gcc-sanitizers to core SDK 166015c gcc-sanitizers: Enable GCC sanitizers 5b985fd oeqa/utils/decorators: Try and improve ugly _ErrorHandler tracebacks 52a837e perf: fix for rebuilding f63f4b5 libav: drop unused FFMPEG_LIBS and move libpostproc only to 0.8.11 58d91fa xorg-app: add x11 to required DISTRO_FEATURES and cleanup dependencies 1b7b58a recipetool: add python dependency scanning support e490d79 recipetool: add python buildsystem support 26f7732 perl: Backport fix for bug #123591 817606a grub-efi: bump the PR e220207 neard: fix B != S 7cd7230 neard: fix parallel issue 940c417 guile: fix installed-vs-shipped error b31e6e7 Revert "guile: fixed installed-vs-shipped error" cf72ede base.bbclass: detect when S has been set incorrectly 4eb3db9 meta: set proper S value 00fbca6 xorg-minimal-fonts: set and handle S in a proper way 06a2dd7 lsof: handle S in a proper way ed3ddd4 makedevs: set and handle S in a proper way 32fb1de gnutls: fix sed command b2f8367 python3: fix for cross compiling 3873efd curl: Add PACKAGECONFIG for samba 8f9506b at-spi2-core: pass correct path to dbus-daemon c929bd3 texi2html: update po_document/Makefile.in.in for new gettext 77125fe texinfo: update po_document/Makefile.in.in for new gettext b3dd5ec gettext: upgrade to 0.19.4 edd91b4 opkg: fix libtoolize error d4e1862 libtool: upgraded to 2.4.4 d977873 automake: upgrade to 1.15 0d93a58 mklibs-native: upgrade to 0.1.40 4a0386e autogen-native: upgrade to 5.18.4 cc0ee9b grub: remove autogen-native dependency for tarball recipes 6f19667 lib/oe/sdk.py: Add SDKIMAGE_INSTALL_COMPLEMENTARY capabilities to DpkgSdk 9538ee9 bitbake: cooker: Use expanded_data for ASSUME_PROVIDED 4eb3ffe bitbake: cooker: Rename event_data -> expanded_data 793f2f2 bitbake: server/process: Fix select call d95e988 bitbake: toastergui: enable re-ordering when columns are hidden 02c49c2 bitbake: toastergui: all projects column show/hide ca8c634 bitbake: toastergui: fix the second 'view all targets' link 2dba917 bitbake: toastergui: minor fixes 08e5a49 bitbake: toastegui: project page build selected targets c546815 bitbake: toastergui: fix all targets page search 4571c82 bitbake: toastergui: fix all-targets redirect 8e3be3f bitbake: toaster: newproject default release selection fix bdbc37f bitbake: toastergui: "Run again" button in build pages 99bbf30 bitbake: toastergui: fix duplicate IDs all builds page c7af070 bitbake: toasterui: save event backlog to build 4dc8edb bitbake: toastergui: save cookie for orderby/page size settings 07bfa68 poky.conf: change case of Poky for DISTRO<->SANITY mismatch d675932 upstream_tracking.inc: update entries for bash 8da8a0e bitbake: prserv/serv: Improve exit handling 6abcc61 bitbake: toaster: project configuration variables page d1dbf4c bitbake: toaster: project builds page 9a51fb3 bitbake: fetcher: use os.path.splitext() instead of string.split() f0d5edc bitbake: bin/bitbake: only check that /dev/shm is writable on Linux a67b855 bitbake: bb/fetch2/wget.py: latest_versionstring escape packagename when built regex c6f933e bitbake: cooker.py: trap the ENOSPC error and translate it e63723f bitbake: cooker: Further optimise pyinotify db45dde bitbake: command/cooker/knotty: Fix memres handling of command environment changes 3e4d84a arch-mips.inc: Add the MIPS ABIEXTENSION to toolchain name 3290dc9 maintainers: Clean up a couple items 08d3f44 bitbake: lib/fetch2: Tweak get_srcrev() function description 35c9fa0 maintainers: Update for non-maintained recipes d9d5b8b depmodwrapper-cross: Update to use STAGING_KERNEL_BUILDDIR 1dfb903 lib/oe/rootfs.py: Fix reference to abiversion file location 7298317 xserver-xorg: Always disable systemd-logind. 42b7055 maintainers.inc: update it 08970d4 glibc: Fix up minimal build with libc-libm 2d58e62 msmtp: fix configure options fde9288 kexec-tools: separate B and S 0a861d2 presentproto: separate B and S a7f4a3a rpm: separate B and S fb043c4 icon-naming-utils: separate B and S e6fd674 libfm: separate B and S 972178d libfm-extra: separate B and S 03ab499 connman: fix B != S 55a4586 python: fix B != S 84a76b2 alsa-utils: fix B != S 15ce397 libcroco: separate B and S 0736edb gnome-desktop-testing: separate B and S 3a0c5de qemu: fix B != S 9d4cad3 apr-util: fix B != S 646230a expect: separate B and S 0c498a7 oprofile: separate B and S 3d0bf25 pinentry: separate B and S de6e1fa bash: separate B and S 42947da gnutls: separate B and S 0e67d3c libgcrypt: separate B and S ec65748 flac: separate B and S e340a37 cracklib: separate B and S bd52abb cmake: fix B != S f7b94f6 bc: separate B and S d625245 ghostscript: fix B != S 3b1324b nspr: fix B != S 92597b5 libnl: separate B and S 2e1bdff rxvt-unicode: Add Upgraded version 9.21 586c5bd dtc: Upgrade to 1.4.1 (git based) 36be2d6 msmtp: Upgrade to 1.6.1 4bbe189 autotools.bbclass: print make clean 41e6eae quilt: set CLEANBROKEN 8617fde mkelfimage: set CLEANBROKEN 4acf17f slang: set CLEANBROKEN 8910c5e libxml-parser-perl: fix LICENSE to be more accurate fee4f23 libxml-simple-perl: fix LICENSE to be more accurate b404dd3 perl: fix LICENSE to be more accurate 56e8fc5 pigz: add Apache-2.0 to LICENSE ca6cb22 portmap: remove obsolete lines 8d8e035 man: remove fakeroot from do_install() 2acea20 cups: remove fakeroot from do_install() 93c9b3c libical: use BPN in SRC_URI f3eb277 gnu-efi: upgrade to 3.0.1 63925b5 bluez5: upgrade to 5.27 bbd5fe6 libaio: Upgrade to 0.3.110 85326e2 security_flags: disable pie support for libaio, blktrace and ltp 399c0fa usbutils: Add version 008 1f63bd2 systemd: add missing RDEPENDS e518d3e python-gitdb: upgrade to 0.6.1 3996f7a python-git: upgrade to 0.3.3 b39ebfd socat: forcibly disable use of libbsd 5e52a6c BAD_RECOMMENDATIONS also works for RPM packaging. 363100f curl: upgrade to 7.40 013de19 package.bbclass: Fix support for private libs 311d9d1 sysklogd: upgrade to 1.5.1 ce9cb7a coreutils: upgrade to 8.23 ce5cc41 sysstat: upgrade to stable version 11.0.2 5b7371b qt4-embedded: support c++0x stand for directfb ac35e3c directfb: upgrade to 1.7.6 7b8c6b8 lz4: update to r127 ac867c3 grub 2.0: several fixes 175d162 pax-utils: RDEPENDS on python 23864d6 parted: parted-ptest RDEPENDS on python ca133bc oprofile: disable documentation c2c4579 icecc.bbclass: properly handle disabling of icecc db2255d cross-canadian/meta-environment: Allow modification of TARGET_OS to be optional 0e35e33 openssh: deliver ssh-copy-id 2eaeba1 kernel-yocto: remove GUILT_BASE from terminal exports 34f3d55 kernel.bbclass: Update cleandirs to remove new kernel staging dirs fddf343 kernel-devsrc: Depend on virtual/kernel:do_compile 14fa134 perf: Disable perf-libunwind 4e13036 perf: Add libdw unwind support to perf-libunwind feature 46cdaf1 kernel: move source and build output to work-shared 92725ad kernel.bbclass: When linux/version.h exists, copy it 1a0343a module.bbclass: Add KERNEL_SRC in EXTRA_OEMAKE 397f27c guile: fixed installed-vs-shipped error 4e20211 bitbake: toasterui: fix variable data error 2d78912 bitbake: toastergui: all builds page lists failed build requests ce78487 bitbake: toaster: layerdetails Remove compatibility setting 025533d bitbake: toaster: Add layer details page feature 2a6f739 bitbake: ConfHandler: Clean up bogus imports 5c9e2b2 bitbake: ConfHandler: Rename oldfn to parentfn to be clearer 967f13f bitbake: cooker: Improve pyinotify performance 1083747 libxml2: Backport fix for CVE introduced entity issues 2b92504 poky.conf: add support for running mips64 qemu machine eb7480f bitbake: cooker: Fix pyinotify handling of ENOENT issues 6c3c3e1 bitbake: cooker/cache/parse: Implement pyinofity based reconfigure 83f8a40 bitbake: bitbake: Add pyinotify to lib/ 3cd31b1 bitbake: bb/fetch2/ssh.py: Fix urldata.localpath use os.path.normpath 83a30df bitbake: fetch/git: Improve ls-remote handling for latest_revision c45589a poky.conf: mark all CentOS 6/7 versions as compatible 8763704 bitbake: toaster: implementation of project page 66e1b52 bitbake: toaster: branch name priority resolution 3e73af4 bitbake: toaster: do not launch web browser on noweb option 3c37669 bitbake: toaster: write pre-read conf file for build variables ed9fa17 bitbake: toaster: Improve client side error handling 2e26745 bitbake: ast: Add error when trying to use dash in sh function names 97d44bf bitbake: cache/fetch2/siggen: Ensure we track include history for file checksums 26cd67e bitbake: wget: Add localpaths method which gives localpath with history 130958c bitbake: bitbake-worker: Use setsid() rather than setpgid() 1393e22 bitbake: cooker: Shut down the parser in error state cbb4f57 bind: Update libxml2 check to make it deterministic. 33f8236 git: upgrade to 2.2.1 9a998a4 file: upgrade to 5.22 19399d5 oeqa/parselogs: Added a check in case the folder location does not contain any log files 9fee93d pcmanfm: update to 1.2.3 bb21377 menu-cache: update to 1.0.0 6450281 libfm: update to 1.2.3 41fa9bd base.bbclass: Avoid explicit ${MAKE} in do_configure 2aa210c rm_work: Fix RM_WORK_EXCLUDE for image/sdk recipes 292f32b glib-2.0: add HOMEPAGE c366bcb cogl: fix .pc file packaging 02f010b cmake-native: disable check for acl.h 9cfe52d libgpg-error: Update to 1.17 1a3afca liburcu: Upgrade to 0.8.6 108b481 libksba: Upgrade to 1.3.2 be42ad1 libassuan: Upgrade to 2.2.0 0943983 libffi: Upgrade to 3.2.1 6ca44e2 lsbinitscripts: Upgrade to 9.60 86b24bc json-c: Upgrade to 0.12 5e2bf79 openssl: fix hard paths in native openssl c4fc564 syslinux: Update to 6.0.3 31059be gnupg: Upgrade to 2.1.0 144630e cogl: enable egl-x11 when build with x11 188db83 cups: check avahi before use it d1b523e qt4: Fix QT4 applications spamming "QWSLock::down(): Invalid argument" fca3bc5 dropbear: upgrade to 2014.66 3fb5191 openssh: upgrade to 6.7p1 060e354 libevdev: upgrade to 1.3 3accae1 rgb: upgrade to 1.0.6. b457fe5 xkbcomp: upgrade to 1.3.0 c8cf56b xinit: upgrade to 1.3.4 1db3472 xf86-video-modesetting: upgrade to 0.9.0 8db61a9 xf86-input-synaptics: upgrade to 1.8.1 57f2f85 xf86-input-evdev: upgrade to 2.9.1 593ad57 xf86-video-intel: upgrade to 2.99.917 86d1a86 freetype: upgrade to 2.5.4. b186008 xkeyboard-config: upgrade to 2.13. cd00f2a libpng12: upgrade to 1.2.52 67786c4 librsvg: upgrade to 2.40.6 450a4aa hicolor-icon-theme: upgrade to 0.14 e4aa242 json-glib: upgrade to 1.0.2 fad05a7 gst-fluendo-mp3: upgrade to 0.10.31 4935fe6 insane.bbclass: fix desktop cc73622 kernel.bbclass: fix do_unpack function when S ends with slash 0e92cbc pulseaudio: use stricter PACKAGES_DYNAMIC 97ca1c3 poky.conf: add file-rdeps to WARN_QA 2674ddb dev-manual: Some minor fixes to some text. cf17b6c dev-manual: Minor hyphenation fix. 060d30d bsp-guide: Added more detail for customizing a BSP recipe 54f98c0 bsp-guide: Cleaned up some examples affected by VESA-support eae11ba bsp-guide: Updates to the "yocto-bsp" section. bc42151 bsp-guide: Some minor fixes to the BSP Guide e38e7e7 bsp-guide: Some corrections to the Crown Bay code examples. 63e4452 Makefile: Clean ups to the Makefile. 67f9fa9 poky.ent: Updated the high-end copyright date to "2015". 46f120c documentation: Updated all XSL style sheet imports to use 1.76.1 version bfe7d30 gstreamer1.0-omx: use mulitple SCMs to fetch submodules b3d517a image.bbclass: Remove 'set_image_autologin' function ea06c15 telepathy: remove (moved to meta-oe) d25f398 lttng-ust: Update to 2.5.2 version 1fc866e lttng-tools: Update to 2.5.3 version b371b6b lttng-modules: Update to revision to 16d7431c3 93f902f libinput: update to 0.7.0 4ae6e8f mmc-utils: update to latest git version 8c9fb9d oeqa/selftest: fix test_incremental_image_generation for changes in log output 9c16a96 gstreamer1.0-rtsp-server: upgrade to 1.4.5 dabb7f6 gstreamer1.0-libav: upgrade to 1.4.5 7bdb55f gstreamer1.0-plugins-ugly: upgrade to 1.4.5 fbf32be gstreamer1.0-plugins-good: upgrade to 1.4.5 f5e4d7b gstreamer1.0-plugins-bad: upgrade to 1.4.5 88b6366 gstreamer1.0-plugins-base: upgrade to 1.4.5 8c42ad4 gstreamer1.0: upgrade to 1.4.5 4477069 oeqa/parselogs: Add harmless failure warning introduced by new qemu version on qemuppc 39dea06 qemu: upgrade to 2.2.0 5c8ef2b gstreamer1.0-plugins-base: Taglist will not be sent to downstream if all the frame corrupted 0b97142 gstreamer1.0-plugins-good: Decrease the rank as havn't this kind of decoder for asteriskh263 ff46a34 xcb-util-keysyms: upgrade to 0.4.0 f5cb9a7 xcb-util-image: upgrade to 0.4.0 5da3d30 xcb-util: upgrade to 0.4.0 b74c1ad xtrans: upgrade to 1.3.5 f551ab1 libxext: upgrade to 1.3.3 9e64b6d gtk+: upgrade to 2.24.25 db8bf52 pango: upgrade to 1.36.8 e81b8ab harfbuzz: upgrade to 0.9.37 538b6b6 cairo: upgrade to 1.12.8 515d71a at-spi2-atk: upgrade to 2.14.1. cfc6154 at-spi2-core: upgrade to 2.14.1 344ce08 atk: upgrade to 2.14.0 d26dcd8 glib-2.0: Upgrade to 2.42.1 fa9777b sqlite3: Upgrade to 3.8.7.4 1e8147a mc: Upgrade to 4.8.13 0d58be6 lsof: Upgrade to 4.88 6e13bfb acpid: Upgrade to 2.0.23 4db2bdf xrandr: Upgrade to 1.4.3 e400e03 pciutils: change default value of PACKAGECONFIG 6ceceb1 bind: fix for CVE-2014-8500 4889478 diffutils & diffstat: fix up EXTRA_OECONF 8bd9b20 wpa-supplicant: avoid host contamination of drivers by libnl3 8de27f8 clutter: enable EGL backend by default 82a5df1 clutter-1.0: add ptest 66ede54 clutter-1.0: upgrade to v1.20.0 96f9761 local.conf.sample: Add qemuarm64 8b8d46f bitbake: utils: make edit_metadata_file() handle VARIABLE += b264f56 bitbake: bitbake-layers: fix error handling in add-layer / remove-layer 6dde745 binutils: several security fixes 508c95d m4: Disable searching for libsigsegv 4b2a1d8 diffutils: Disable searching for libsigsegv 16d74f8 grep: upgrade to 2.21 088d4bb xz: upgrade to latest stable release 5.2.0 8bc9af4 pciutils: add PACKAGECONFIG for 'hwdb' 39e21d1 pciutils: upgrade to 3.3.0 5f62b2c sudo: upgrade to latest state version 1.8.11p2 e3aa717 tar: upgrade to 2.18 09c1c79 kmod: upgrade to 19 c73a6ca boost : Add the atomic and chrono libraries to the build. e3a623b runqemu-internal: increase memory for qemuarm64 575ba9a elfutils: Update PREFERRED_VERSION after upgrade 93ba8e0 oeqa/selftest: fix test_force_task so it doesn't taint the entire build 5268d8a oeqa/selftest: populate pkgdata/shlibs in test_recipetool_create_git 9c93079 oeqa/selftest: improve failure messages for devtool tests 41f3dd1 oeqa/selftest: skip test_incremental_image_generation if not using rpm 8bb5dcc oeqa/selftest: fix test_event_handler for changes in bitbake output 7d9b5fb oeqa/utils: fix testcase decorator to allow calling tests individually d4d73b0 oeqa/utils: replace some tabs with spaces e75139c bitbake: fetch2/wget: Fix horrible temp file handling 1d4908d bitbake: tests/data: Add a key deletion test 4d06fb7 bitbake: tests/fetch: Add versionstring tests to network tests list, fix print() 5445339 bitbake: data_smart: Ensure d.keys() doesn't list deleted variables 172ea4f dpkg: Upgrade to 1.17.21 f6cf293 pythonnative: set PYTHON_EXECUTABLE so that cmake can find it 052c67c wic: account for mmcblk device partition naming 51374d5 lsb: remove sendmail from sysroot 422c317 bind: fix conf.patch to add db.255 configuration file b4499ec image.bbclass: avoid boot error on read-only systemd image bcc548c license.bbclass: hardlink requires write permission ccd2f54 opkg-collateral: Use new lists_dir syntax d33bfe4 ppp: upgrade 2.4.7 4641f72 pax-utils: upgrade to 0.9.2 7296df4 apr-util: upgrade to 1.5.4 bd4052b libxml2: upgrade to 2.9.2 3ef9f83 license: Validate if LICENSE is well defined. 101c3bf license_class: fix license.manifest shows LICENSE field differently to recipe c924c07 logrotate: upgrade to 3.8.8 01c7d08 lib/oe/image.py: Handle compressed IMAGE_TYPEDEP values 7856fb3 image_types.bbclass: Rework code to map types for 'ext3' fc74b5d image_types.bbclass: Respect IMAGE_TYPEDEP dependencies ac17cd3 poky.conf: Add qemuarm64 support 8c90663 bitbake: bb/fetch2/wget.py: latest_versionstring fix multithread and remove deprecated code 6b33e1a bitbake: ui/ncurses: Update ncurses ui to accept configParams d31b7bd bitbake: cooker: add ability to ignore unmatched regexes in BBFILE_PATTERN db3f589 bitbake: bitbake-layers: add commands for adding and removing layers b1e5a67 bitbake: utils: add basic metadata manipulation functions 7b70d5e bitbake: siggen: ensure nostamp tasks force dependent tasks to re-execute c91b10c init-ifupdown: Add missing script for qemuarm64 a273462 libpng 1.6.13: fix build for aarch64 f1d83b8 make: upgrade to 4.1 5756e07 git: upgrade to 2.2.0 9b49cfd rsync: upgrade to 3.1.1 9b6247b wget: add PACKAGECONFIG for util-linux f3c615e wget: upgrade to 1.16.1 7d8fe6d file: upgrade to 5.21 e185893 runqemu-internal: Fix qemu networking for qemuarm64 eef1d41 linux-yocto: Fixup linux-yocto for aarch64 eba9c1b aarch-arm64: Update tune files a1d75c2 glibc-package: aarch64 enable symlink for ABI compliance 3923f7e gcc: Disable aarch64 multilib options 5fd4e25 packagegroup-core-tools-profile: remove sysprof for aarch64 8bf791c kexec-tools: add aarch64 support f78f9d7 runqemu: add qemuarm64 support. b6663eb libunwind: add aarch64 support 4c2048f guile: allow compilation for aarch64 ba1db06 lttng: recognize aarch64 1ce4f04 sysprof: disable build for aarch64 fbfabde qt4: add aarch64 support 5b3107a libatomics-ops: add aarch64 target iniitial support c4c7d86 glibc-locale.inc: add aarch64 to BINARY_LOCALE_ARCHES 275504e libc-package.bbclass: add aarch64 target to locale_arch_options 2637385 siteinfo: account for 32 and 64 bit arm 8781b49 Add machine qemuarm64 28ba4d3 linux-yocto: depend on libgcc for aarch64 2ca1870 python-2.7-manifest.inc: add stdlib argparse module 9a9a226 python-argparse: remove external argparse module 4a17e7c opkg-utils: Update SRCREV f25fdec byacc: Upgrade to 20141128 d0e3099 cups: Upgrade to 2.0.1 5734086 less: Upgrade to 471 8d46255 devtool: add QA tests 0d686cc scripts/devtool: Support deploy/undeploy function cd5ca4a scripts/devtool: add development helper tool b7d53f2 scripts: add scriptutils module 5638ca2 scripts/recipetool: Add a recipe auto-creation script f176b0c classes/externalsrc: set do_compile as nostamp d7aec8c oeqa/utils: make get_bb_var() more reliable 15de188 kernel-devsrc: Ensure we have a dependency on the actual source b99419f README.hardware: update beaglebone entry to match KERNEL_IMAGETYPE 1f5eaa3 beaglebone.conf: update KERNEL_IMAGETYPE to match u-boot 5d72743 meta-yocto/conf/distro/include: Update package_regex'es and upstream info. b671847 sanity: TMPDIR ABI change for kernel process db73bcc lib/oe: add recipeutils module 12bb32e lib/oe/patch: add support for extracting patches from git tree 50e771d lib/oe/patch.py: abort "git am" if it fails 37db9e6 lib/oe/patch: use --keep-cr with git am 400933b lib/oe/patch: auto-commit when falling back from git am e03c047 lib/oe/patch: fall back to patch if git apply fails de8730c classes/package: move read_shlib_providers() to a common unit 3e6e4e0 meta-environment: don't mark tasks as nostamp 54d5e74 core-image-sato-sdk: Use kernel-devsrc to ensure kernel module builds work 6ae253c boot-directdisk: Use kernel from DEPLOY_DIR_IMAGE, not sysroot c5236d7 bootimg: Use deploy artefacts, not STAGING_KERNEL_DIR 1dd37a2 kernel: Fix non linux-yocto builds 6eb95d6 kernel-devsrc: Ensure we don't race against do_make_scripts from module-base.bbclass da2764e kernel-devsrc: Handle ppc crtsaves.o explictly for now 76b7e81 kernel-devsrc: Inherit module-base 22246c6 kernelsrc.bbclass: Ensure fetch/unpack/patch tasks don't run bc97e85 linux-libc-headers: Upgrade 3.17 -> 3.17.7 be50d1d linux-libc-headers: update to 3.17 c219f6b socat: fix compile erorr against 3.17+ kernel headers fc152d9 linux-yocto/3.14: update to 3.14.26, integrate ltsi and -rt updates 88fb739 linux-yocto/3.10: update to v3.10.62 d02bb17 linux-yocto/3.17: update to v3.17.6 7a16c50 lttng-modules: fix mm_compaction_isolate_template build 662f39e linux-yocto/3.14: update to v3.14.24 bb98127 linux-yocto/3.10: update to v3.10.59 f0fe7dc linux-yocto/3.17: update to v3.17.2 33437d6 linux-yocto/3.17: update to v3.17.1 63695c6 kernel: Clean ${S} before unpack d0857f4 sanity: TMPDIR ABI change for kernel process 6a5a2df kernel-yocto: make sure git tags get dereferenced properly in do_patch() 5b71b69 kernel-yocto: fix non-git builds 2214cb2 lttng/perf: depend on virtual/kernel:do_install b829eaa images: introduce core-image-kernel-dev a1c24ec kerneldev: create kernel-devsrc packaging d1aced4 kernel: fix out of tree module builds 86893e4 kernel: Rearrange for 1.8 1ff64a7 image: Avoid race over directory creation e2f68c0 dbus-test: Fix SRC_URI checksum to match dbus 900f27a report-error: Handle the case no logfile exists 88528a1 ref-manual: Update to the BOOT_IMAGE_FILES variable in the glossary 99bd2c4 ref-manual: Updates to some tuning variables in the glossary: 4f0fa92 Revert "yocto-project-qs, mega-manual: Conformed to YP book set" d23e189 Revert "yocto-project-qs: Removed redundant code to display title image." 5c7acf0 yocto-project-qs: Removed redundant code to display title image. c576556 yocto-project-qs, mega-manual: Conformed to YP book set 6ee3207 yocto-project-qs: Updated DocBook type declaration 2059a66 security_flags: Fix typo for cups 973c565 busybox-mdev: Support automatic mounting of block devices 6695f76 busybox-mdev: Add hotplug kernel module support to mdev.conf f9392a5 busybox/find-touchscreen.sh: Simplify script and recognize USB devices f50c622 busybox-mdev: Install missing find-touchscreen.sh 3ee4015 powertop: Fix build for !uclibc 88af919 common-licenses: add SMAIL_GPL cff6c48 wic: add globbing support in IMAGE_BOOT_FILES entries 90487df wic: IMAGE_BOOT_FILES format checks in bootimg-partition source 94e1442 mesa: add PACKAGECONFIG support for gallium XA state tracker 7d495e5 vala: Add Upstream-Status to patch 3c55f44 oprofile: add missing Upstream-Status 77e1c5f which: add missing Upstream-Status 02e11ce udev-cache: refactor conditionals and error handling 408baa9 udev-cache: Update cache asynchronously 88c184a udev-cache: invalidate on rules.d changes 7c522ce udev-cache: always warn on console if invalidated 8b0be80 udev-cache: Clean up message when cache is invalidated 0002d46 udev-cache: refactor sysconf generation c6e8f07 udev-cache: don't generate sysconf twice 7f8634c udev-cache: replace readfiles() with cmp 24a159e udev-cache: stop race between sysconf and cache generation a957ff1 buildtools-tarball: restore missing git tools d5e0cc7 systemd-systemctl: add handling of template unit files 0932d84 libproxy: let INCOMPATIBLE_LICENSE supports wildcard b3c625a default-versions.inc: let INCOMPATIBLE_LICENSE supports wildcard 5f78cf9 base/license.bbclass: expand wildcards in INCOMPATIBLE_LICENSE fc51832 gcc runtime: specify license on a per package basis 31e86e6 toaster.bbclass: trigger event for other image files 1f41cb6 systemd: backport patch to fix reading journal backwards ef552b9 font-util: Fix incorrect PKG_CONFIG_PATH 244cb9b package.bbclass: do variable fixups even when FILES was set 48b3540 kernel.bbclass: Remove bashism 3195210 image_types.bbclass: Populate cpio /init as symlink 25a3ab1 shadow: disable nscd feature when glibc is not built with spawn posix functions 1b330a4 gnutls: upgrade to 3.3.11 3fb5467 packagegroup-core-tools-profile: allow lttng-modules for ARM 2cd226e glibc: CVE 2014-7817 and 2012-3406 fixes d913c67 openssh: move setting LD to allow for correct override 48a0394 qemu: disable vte if gtk is also disabled 73388a1 gstreamer1.0-* fix configure for out of tree build on git recipes f9ea938 connman: use PACKAGECONFIG to control systemd option 2c8be73 ofono: use PACKAGECONFIG for systemd and bluetooth b9ed702 gst-plugins-bad: add PACKAGECONFIG for the RTMP plugin 8a4e32d gst-plugins: remove spurious whitespace 0a791e9 bitbake: data: escape '$' in shell variable assignment bb83fcc bitbake: toaster: importlayer Tidy up the page initialisation 641c50d bitbake: toaster: Change the full stop to a colon 6f3f059 bitbake: toaster: Formatting changes to error messages c89fd79 bitbake: toaster: projectapp Add links to the imported layers notify 8d96256 bitbake: toaster: importlayer Avoid namespace clash with layer name dadc11a bitbake: toaster: Importlayer add notify exactly which layers changed bd6b879 bitbake: toaster: tweaking the import layers form 1605cd3 bitbake: toaster: Add import layer feature. 13141af bitbake: toasterui: refactor project layer finding logic 7d5cd68 bitbake: toaster: libtoaster Add editProject and getLayerDepsForProject d5fc4f7 bitbake: toaster: libtoaster Add a error handler to GET in makeTypehead c058c37 bitbake: toaster: Initialise the 'change' icon tooltips 3910763 bitbake: toaster: base Only show change project icon when > one project 4061fcd bitbake: add POST endpoint for uploading eventlog files aa9816a bitbake: toastergui: implement UI changes to allow file download 85a17f8 bitbake: add option to write offline event log file d086fa3 bitbake: toasterui: add extra debug and development infos f99f2cd bitbake: add build artifacts table and other improvements c467bbd toasterconf: naming and description changes fb76005 yocto-bsp: Get rid of 'strange' filenames in x86_64 templates 82e8b73 yocto-layer: Get rid of 'strange' filenames in templates 4b4eca1 yocto-bsp: Get rid of 'strange' filenames in powerpc templates debb440 yocto-bsp: Get rid of 'strange' filenames in mips64 templates 4b82dab yocto-bsp: Get rid of 'strange' filenames in arm templates 6a10332 yocto-bsp: Get rid of 'strange' filenames in mips templates 37a6aff yocto-bsp: Get rid of 'strange' filenames in x86 templates cac5446 yocto-bsp: Get rid of 'strange' filenames ed99aee yocto-bsp: Add a processing pass to get rid of 'strange' filenames 8657c2f serf: readded md5sum 456ea67 gsettings-desktop-schemas: remove 87c310c npth: npth needs pthread in some cases 7ae7964 babeltrace: Update to 1.2.4 40304fc procps: Upgrade to 3.3.10 6bcd295 python-pycurl: build docstrings to fix rebuilds b570d90 valgrind: update to 3.10.1 c72bada apr: avoid absolute paths for grep bcc18fe midori: update to 0.5.8 b9001b6 cpio: fix bug CVE-2014-9112 for cpio-2.11 8018f61 cpio: fix bug CVE-2014-9112 for cpio-2.8 adb8c0d libxcb, xcbproto: upgrade to version 1.11 ae7bfb2 autoconf: disable checking for emacs 93f3754 bluez5: support experimental through PACKAGECONFIG 360064a bluez5: add a package for tools left in the build area 756cb16 bluez-hcidump: select provider as bluez4 or bluez5 74d4a5c python3-core: Fix minimal python3 install 2b945a9 python: add python-codecs runtime dependency for python-json 3499544 python: fix ssl import error 7f7d3b7 gstreamer1.0-libav: specify proper cross-prefix acfb298 xorg-xserver: Upgrade to 1.16.2. 993989f mesa: Upgrade to 10.3.4. fe4aa1a dtc: don't use autotools as this doesn't use autotools 5168672 distro/poky: Add Debian 8 (Jessie) as sanity tested ec6377b bitbake: bitbake-user-manual-metadata.xml: Updated do_package_write example d5a808d bitbake: bitbake-user-manual-metadata.xml: Added [eventmask] flag information. 1aae447 bitbake: runqueue: Fix 100% cpu use after keyboard interrupt eb2ea6f bitbake: data: Handle BASH_FUNC shellshock implication 9c02ad9 bitbake: event: fix resetting class handlers object c1ef10a bitbake: event: add a means of filtering events internally eb0a6fc bitbake: fetch2: add means of disabling SRC_URI checksums cde2848 bitbake: utils: add exec_flat_python_func() 8ff0840 bitbake: bitbake-user-manual: Updated copyright to 2015. 3a17209 dev-manual: Added link to ptest wiki page into Ptest section. 8165210 bsp-guide: Fixed ambiguous sentence. 400cb14 ref-manual: Created form for context images for variables 56d0995 ref-manual: Added XSERVER variable description to the glossary. 6a57cb1 dev-manual: Added more info to mulit-machine builds section. 117c9b4 dev-manual: Edits to the multi-machine builds section. 81fb49b ref-manual: Added info strings for variables in glossary. 5f4050f dev-manual: First draft of "multi-builds" section. 146d4bb ref-manual: WIP - Edits for the speed section. 62a67c8 ref-manual: WIP - New section on speeding up builds. b813bde qemu/libc-package: Fix qemu option handling da53141 libnewt: set CLEANBROKEN 764e08b libdrm: Upgrade to 2.4.58. 7930902 bzip2: use subdir SRC_URI param instead of adding tasks 9a79319 tcmode-default.inc: use GCCVERSION for gcc-source 0ca237d default-distrovars: add gcc-source recipe to the GPLv3 whitelist 450651b gcc: stub do_fetch instead of removing it 3d1199c cwautomacros: stub do_configure to avoid cleaning 814ad79 gnome-doc-utils: set CLEANBROKEN a1abb63 autotools.bbclass: respect CLEANBROKEN 55db877 base.bbclass: fix CLEANBROKEN logic bdadf2f coreutils-native: don't install groups 997fb34 gzip: fix MakeMaker issues with using wrong SHELL/GREP 984e17d lzo: add debian patch for alignment issue 3cbe382 util-linux: add switch_root to alternatives list 5e21592 Revert "busybox : fix do_compile failed on qemumips when DEBUG_BUILD (ICE)" 853e76f8 openssh: fix using the original config files in srcdir 615fb3b package_manager.py: fix arguments to string format 9fc63c5 eglibc: modified option-groups.h generation 0935937 mesa-demos: Move util to the front of the SUBDIRS variable. ab4ed9c glew: Additional fix for generation of glew.pc. 95fcc67 image.bbclass: whitespace d3b221d image.bbclass: remove comment that readonly only works for sysvinit 07f7764 qt4: disable webkit for mips64 n32 temporarily 8403b75 Revert "qt4*.bbclass: disable build qt on mips64 with 64 bits userspace" 05f206d bootchart2: fix to find collector correctly in case of multilib 845fc6f systemd: add PACKAGECONFIG for 'manpages' 8729809 libxslt: create wrapper to avoid host system referencing 8ad1d1d kernel-yocto.bbclass: fix shell syntax error 7d59e19 gnutls: disable tpm 93bf97b powertop: update version number from 2.6.1 to 2.7 4de97f7 gstreamer1.0-plugins-bad.inc: Disable cocoa on configure 60d504b cmake: supply CMAKE_AR in toolchain file 54d0203 valgrind: Upgrade to 3.10.0 ab70595 weston: fix plugin location in FILES dec0b0f dbus: don't use PTEST_ENABLED as recipe doesn't inherit ptest 6b58ddb python: remove spurious nativesdk dependency 4835629 python: ensure all of Python is installed in nativesdk bf0ec70 yocto-bsp: Add mips64 support 0cc9a12 yocto-bsp: Update templates to 3.17 kernel 4fa0f0c meta-yocto/distro: Updated SANITY_TESTED_DISTROS. a862bf0 upstream_tracking.inc: update entries for dbus 9315a2b bitbake: bitbake: Update to 1.25.0 as development version after release b92ec90 bitbake: data: rename defaultval to _defaultval 1332298 gdb: disable Guile fcd72aa attr: use EXTRA_AUTORECONF to disable autoheader 8a21eee bash: use EXTRA_AUTORECONF to disable autoheader 1ecad61 toolchain-script: Add support for ccache builds with the SDK 1a46946 libpam: avoid overwritting editable files during package updating b4f4d0f initscripts: avoid overwritting editable files during package updating 535afd4 base-files: avoid overwritting editable files during package updating 5007319 package_manager.py: check the result of create_index 5030c7f compress_doc.bbclass: support update-alternatives 887ffa0 compress_doc.bbclass: improve manual file detection 97d5b99 metadata_scm: Fix crash due to uncaught python exception 496a793 serf: fix 'ccache' builds ec47811 package.bbclass: Create empty key/value if not there for shlib_provider 35e0a3e resolvconf: add fixes for busybox and make it work bc9adc1 pseudo: remove older version and patches 85c4761 boost: Upgrade to 1.57 2f7c9fa npth: Upgrade to 1.1 2a7b875 babeltrace: Upgrade to 1.2.3 bcff2a7 curl: Ugrade to 7.38 49329f4 connman-gnome: fix dbus interface name 1654f38 dbus-glib: Upgrade to 0.102 89a8e1c dbus-test: Upgrade to 1.8.10 6e0f74a dbus: Upgrade to 1.8.10 ec6aeea libnewt/libnewt-python: upgrade to 0.52.18 4b938a6 cracklib: upgrade to 2.9.2 f821566 gcc: Rework shared work 893f9b2 bitbake.conf: remove internal flags from BB_SIGNATURE_EXCLUDE_FLAGS 77eebcc scripts: don't skip defaultval e89a5d0 uboot-config.bbclass: don't skip defaultval cd90414 base.bbclass: don't skip defaultval daeb4a4 sanity.conf: Update to require bitbake 1.25.0 as minimum version b863141 package_regex.inc: Update REGEX'es in order to find upstream versions correctly 2fc06a1 bitbake: cooker: Allow featureset in error state b585c4b bitbake: fetch/wget: latest_versionstring clean improvments minor 0ce833d bitbake: tests/fetch: Update wget latest_versionstring cups case 158aee7 bitbake: fetch/wget: latest_versionstring remove newuri set because is previous set 75b82b0 bitbake: fetch/wget: latest_versionstring add support for search in RAW html lines aa35076 bitbake: fetch/wget: latest_versionstring remove unnecessary usage for name in version comparision 4b29329 bitbake: fetch/wget: latest_versionstring improvments in searching af47f14 bitbake: fetch/wget: latest_versionstring add package_custom_regex_comp cd40af6 bitbake: fetch/wget: Improve REGEX_URI handling a7bdd0e bitbake: fetch/wget: _init_regexes rename variables to be more consistent and move dirver_regex into it 35b7089 bitbake: fetch/wget: latest_versionstring create _init_regex method for have one place when regex'es are defined 6cecdd1 bitbake: toaster: remove the word 'project' from layers and machine fee87cd bitbake: toaster: release name consistency af51fb0 bitbake: toasterui: Compatibility patch for daisy and dizzy dc1be9c bitbake: toaster: fix padding of build notifications c31f309 bitbake: toaster: make 'latest builds' section consistent across pages be2475b bitbake: toaster: fix errors and warnings display 126bca4 bitbake: toastergui: new project page 5790337 bitbake: toaster: fix loadconf path calculation d9644d4 bitbake: toasterui: fix layer identification for managed builds af1f9fd bitbake: toaster: display Toaster exceptions and other fixes 707a960 bitbake: toastergui: do not show project info in interactive mode 4c82dfb bitbake: toastergui: update layer search criteria 152e2d9 bitbake: toaster: base Only show New Build button when there are > 0 projects 49ac18d bitbake: toaster: use http proxies to fetch data 2192445 distrodata_class: checkpkg make usage of latest_versionstring methods in bitbake fetcher fd9fc49 gcc-4.8: Drop unused patch ef7ea38 qemu: Add missing wacom HID descriptor c5ebca2 toaster.bbclass: use the openembedded-core name e2cf2d1 toaster: naming and description changes 99262b6 toasterconf: fix localpath values 0bc03af maintainers.inc: update maintainers ab63640 gdk-pixbuf: use ptest-gnome f363c20 useradd.bbclass: set PSEUDO_PASSWD consistent with root directory b0b468d bitbake.conf: pseudo fall back to last-resort passwd files e96ac60 pseudo: provide fallback passwd and group files 4ad0821 pseudo: default --without-passwd-fallback d1434d9 image.bbclass: search both rootfs and native staging for passwd files 835f5c8 pseudo: support multiple search directories in PSEUDO_PASSWD d2b8576 pseudo: support --without-passwd-fallback configuration option 16e8b40 oeqa/runtime: Added some new filters for the log parser Including custom filters for edgerouter, minnow and jasperforest. 3857f24 procps: install symlink under /etc/sysctl.d in case of systemd 2e13f27 elfutils: upgrade to 0.160 fa234ef bind: clean host path in isc-config.sh fc5ad52 e2fsprogs: clean host path in compile_et, mk_cmds 692950e bash: clean host path in bashbug 3fc5cfe gst-ffmpeg: fixes for CVE-2014-8548 and CVE-2014-8541 a2b7b6d opkg-utils: Update SRCREV 417ce46 opkg: Update patch status 0ee83d7 opkg: Upgrade to v0.2.4 11d9f02 libpam: Stop a QA WARNING when building multlib version ce8c56f python3: several fixes for cross compiling 4a7446e cronie: Added default crontab b4ba8d6 gnome-desktop: removed gnome-desktop recipe 44a8677 gnome-common: Upgrade to 3.14.0 4d9172d cronie: Upgrade to 1.4.12 1379659 nfs-utils: Upgrade to 1.3.1 16edf5c iproute2: upgrade to 3.17.0 2169801 libpcap: upgrade to 1.6.2 273572d netbase: upgrade to 5.3 89108b4 serf: 1.3.6 -> 1.3.8 322ba17 perl: fix PERL5LIB settings 67261e2 dtc: old SRC_URI died, changing to new working one 49547a6 toaster: add toaster layer configuration files ae7c1e5 toaster: add toaster layer configuration files for meta-yocto 39bace0 bitbake: toaster: do not show target if target name is empty f3ffeba bitbake: toaster: fix dependencies dialog layout 57b8ccc bitbake: toaster: add no results state to all layers page 2066b9b bitbake: toaster: Tiny refinements to the new build button dialog 3530316 bitbake: toaster: project page remove additional tooltip for Change pencil f26c3cd bitbake: toaster: Add New Build Button feature 5b8a62d bitbake: toaster: libtoaster: Add getProjectInfo utility function fa9206e bitbake: toaster: Create libtoaster.js with some utility functions 0b6859c bitbake: toastergui: layer name correlation 5b0616a bitbake: toaster: skip virtualenv when searching for django apps 2f3e40c bitbake: toaster: fix file name collision c09e561 bitbake: bitbake-worker: exit normally when SIGHUP 7d559fc gtk+: drop part of patch adding useless file 69e388b xmodmap: drop already applied patch 0ed1983 cmake: drop already applied patches 4d67727 openssh: drop already applied patch bc41835 cups: remove unrecognised option 3092f33 spdx.bbclass: improved error handling and code cleanup 0f5d0e9 postinst-intercept: rename recipe for nativesdk only 9ca0777 toolchain-shar-template.sh: fix the text files in the top dir 71df8a4 shadow-securetty: add ttyAM[0-3] serial ports 01e9ca3 bind: use PACKAGE_BEFORE_PN instead of PACKAGES_prepend c360dcb gcc-4.9: fix the compile failure of 'defaults.h' not found 3e813f4 ethtool: Upgrade to 3.16 aa2c154 parted: upgrade to 3.2 8aa5f17 byacc: Upgrade to 20141006 bd45e51 tcl: Upgrade to 8.6.3 7ce2293 lsb: update RDEPENDS for broken-out util-linux-getopt 887c75a default-providers.inc: define VIRTUAL-RUNTIME_getopt 92afbae util-linux: break out util-linux-getopt 318730b rpm: fix the rpm addsign function 07a31ed python: Fix CVE-2014-7185 587b28b ghostscript: upgrade to 9.15 58bee16 systemd-serialgetty: Disable the carrier detect requirement for serial consoles 3a3e5ab sysvinit-inittab: Disable the carrier detect requirement for serial consoles 7bc2e2a toolchain-scripts.bbclass: Export KCFLAGS to ensure sysroot is provided 9544db4 xkeyboard-config: Inherit gettext 419a37e bluez5: fix QA error from configure option fd338cf linux-firmware: upgrade to git rev 0e5f637 cdbcadf bluez5: upgrade to 5.25 9f2732b sbc: upgrade to 1.3 d681466 wpa-supplicant: upgrade to 2.3 3c7cf5d bitbake: bb.codeparser.py: Remove reference for oe.utils.contains d895e96 bitbake: depexp: use stateForceShutdown instead of stateStop edaeb89 bitbake: cooker.py: fix loginfo op being set to an invalid value c5d19aa bitbake: toastergui: fix XSS injection points in projects page 326d5b1 bitbake: toaster: importing angular service 76f1800 bitbake: toastergui: Silly UI fixes 3a338a2 bitbake: toaster: Replace bootstrap js with the correct version 7b65fa9 bitbake: toastergui: changes for the Project page, round 3 of reviews abf7551 bitbake: toaster: separate the load configuration file command 6f0496e bitbake: toaster: Update filter count labels when Add/Remove layers 6cfd8aa bitbake: toaster: Fix the table data so that it matches the column order 42afeb4 bitbake: toastergui: Various fixes for projects, layers and targets page 46f1fbe bitbake: adding angular-animate plugin 78e3a78 bitbake: toaster: update Release model to pinpoint to specific Branch 990fb9e bitbake: toaster: SQL query logging 3e9fc8d bitbake: toasterui: performance improvements 0ca70ce bitbake: toaster script: webport option and other improvements baa1082 docbook-xsl-stylesheets: fix do_configure typo 15d7937 tzdata: update to 2014j 42444d3 tzcode: update to 2014j 5638e1f strace: add libunwind dependency bb213d8 meta-environment: Fix config-site with a multilib config 8c240ad vala: upgrade to 0.26.1 92dd727 opkg-utils: Update SRCREV 2decbd0 nss: Upgrade to 3.17.2 7abfdd2 documentation.conf: add missing tasks / variables 2cdcd4b classextend: Do not extend for that already have multilib prefix c5f8996 systemd: add PACKAGECONFIG for 'audit' 12fe05c apr-native: Set CONFIG_SHELL to /bin/bash 5c69e44 gptfdisk: add 0.8.10+git version 35c2ff7 qemu: remove task sanitize_sources 5c23ec6 u-boot: update to version 2014.07 2abfdcf systemd: avoid using system-auth e9b729d libtool: remove build host paths from installed libtool 507947a beecrypt: add option --with-dev-dsp c0dafd3 scripts: use '/usr/bin/env' in shebangs with python 3e06883 bitbake: progressbar: use '/usr/bin/env' in shebangs with python 6bb241a bitbake: fetch/wget: Add latest_versionstring method 7587877 bitbake: fetch/git: Add latest_versionstring method 95c7b39 maintainers: Update per replies on OE-Core 3c741a8 oprofile: 0.9.9 -> 1.0.0 77d62cc python-pygtk: Clean up incorrect "fix" fb4d7ec populate_sdk_base: improve POSIXLY_CORRECT compat a899e13 tcl: Upgrade to 8.6.2 24ad278 strace: Upgrade to 4.9 bfe16db byacc: Upgrade to 20140715 a485eb8 libpcre: Upgrade to 8.36 4d9771a lz4: update to version r123 59283bd pinentry: update 0.9 da6a4f6 ncurses, busybox, cml1.bbclass: Fix menuconfig display corruption 8f9ed24 nfs-utils: change owner/group of directories in do_install 5fe3954 perl: set the perl libraries search path b3ea9b6 apt: Add missing running depency debianutils 9e3c886 debianutils: Add recipe from meta-oe 1d19791 package_manager: DpkgPM fix populate_sdk ed3e253 image-buildinfo.bbclass: new class, writes build information to image c582375 watchdog: Upgrade to 5.14 f5ecb75 man-pages: Upgrade to 3.75 739100c lsbinitscripts: Upgrade to 9.56.1 b166d5c less: Upgrade to 470 8523fd5 hdparm: Upgrade to 9.45 2ce92ad help2man: Upgrade to 1.46.4 0aca644 cups: Upgrade to 2.0.0 b230663 at: Upgrade to 3.1.16 2fa79a9 resolvconf: Upgrade to 1.76 1ec6ea1 libxkbcommon: Upgrade to 0.5.0 afd7e24 systemtap: Upgrade to 2.6 Git Version 58c76d1 libksba: Ugrade to 1.3.1 813718c libgcrypt: Ugrade to 1.6.2 ddc5abe liburcu: Ugrade to 0.8.5 5ff390f npth: Upgrade to 1.0 54cedb1 btrfs: Update to 3.17 version 78f6f53 libcap: Upgrade to 2.24 0ee5eb2 gcc: Fix intermittent failures during configure b78e3e3 gdb: 7.7.1 -> 7.8.1 593f14b package/prserv: Merge two similar functions into one d01b8d5 base: Make PRINC warning an error cb4b12c perl: Enable rebuilds to account for configuration changes e6cbda6 base: Improve makefile clean handling, introduce CLEANBROKEN variable 2020ba7 ltp: update to 20140828 release 45bb9e3 profile-manual: Updates to the LTTng Documentation section. 0d3e685 ref-manual: Fixed typo in the PACKAGE_EXTRA_ARCHS variable. 9104c1c dev-manual: Fixed broken link to the allarch class. 2f17b2c bitbake: data_smart.py: fix variable splitting at _remove mechanism 01a61c8 bitbake: siggen: Fix shared work checksum mismatch/rebuild issues 2db07ca bitbake: siggen: Add computed hash code to verify hash computation to dumpsig 636dcb8 bitbake: siggen: Ensure we output if the ordering of runtaskdeps changes 695d254 readline: Patch for readline multikey dispatch issue 7bd03ac bitbake: toastergui: fix invalid build url usage fc75011 bitbake: toasterui: improvements in data reading 7105d44 bitbake: prserv: Use WAL mode 5dca71b bitbake: bitbake: Make printed 'runqueue' be consistently capitalized 25e3e57 bitbake: bs4: Add beautifulsoup 4.3.2 to assist the fetcher bc6330c bitbake: fetch2/git: Allow other namespaces than refs/heads to be searched. 5fa2ce0 image_types.bbclass: whitespace and reorder ad6fd2c weston: update to version 1.6.0, add libinput PACKAGECONFIG ab3086f wayland: update version to 1.6.0 24dc5f4 libinput: add 0.6.0 version 8569e10 nss: Upgrade to 3.17 c1809c4 findutils: Upgrade to 4.5.14 1888739 vala: Update to 0.24.0 0d9a071 texinfo: integrate texinfo 4.8 c60fa73 insane.bbclass: add condition for build-deps 49d22ac gst-plugin-bluetooth: remove systemd service file ddac00a qemu: upgrade to 2.1.2 c3d0cd9 psplash: update to latest git version b7ae852 gcc: backport two patches to fix ICE in dwarf2out_var_location 40b3888 connman: upgrade to 1.26 a4db2d9 wget: upgrade to 1.16 07e8ae7 acl: add acl dependency to acl-ptest 6e055bb toaster.bbclass: read elapsed time from the stats file 6839a39 perl: Fix bug when installs SDK in custom directory b0bbdf2 packagegroup-self-hosted: add git-perltools e20a85d subversion: 1.8.9 -> 1.8.10 d19152d kexec-tools: 2.0.7 -> 2.0.8 e972fcf mdadm: 3.3.1 -> 3.3.2 f54fc65 python-pycurl: 7.19.3.1 -> 7.19.5 d38da0f libunistring: 0.9.3 -> 0.9.4 c4c7b0f nasm: 2.11.05 -> 2.11.06 0add8ab buildtools-tarball: package all of Python 7cde98f curl: Security Advisory - curl - CVE-2014-3620 9bfd0de poky-tiny.conf: remove inherit of blacklist 2380ebe bitbake: prserv/serv: Ensure sync happens in the correct thread 51f6cb0 mega-manual.sed: Updated to support the 1.8 release. 1484e62 documentation: Updated the manual revision history tables. c2d6feb poky-ent: Updated variables to support the 1.8 release. 27754b2 docbook-xsl-stylesheets: add perl to RDEPENDS f948dbf rootfs.py: tweak inner warn message catching 944fb2f python-smartpm: report warn rather than error during install with --attempt fe244b2 man-pages/shadow: resolve man pages confliction 1c8040ef shadow: enable support for subordinate IDs 18f6c12 iproute2: backport a patch to make adding vxlan link success 8e14697 python-pygtk: Restore pkg-config file 69dd116 pciutils: Fix multilib header conflict - pci/config.h 72964fc python-2.7.3:remove BOM insertion code d6fd303 image_types.bbclass: Make ubi depend on ubifs 8c051c8 license.bbclass: canonicalise the licenses named with 'X+' 014654f curl: Security Advisory - curl - CVE-2014-3613 9adfa08 kmod: fix debuginfo is missing in shared library 028a394 systemd: don't add files and dependencies from units Conflicts 365947e package_manager: Fix BAD_RECOMMENDATIONS for opkg 9e07fbb bind: fix to use correct environment file in service file 56fa8cd udev: fix uevent-helper disable 7e8ca6f BusyBox: Fixing broadcast address is not fed and rightly initialized 160b53b ldconfig-native: fix a endian-ness bug a60af9a xinetd: add systemd unit file 0d339e2 gdb-cross: build with python support 41ae205 systemd: don't move libgudev around, it breaks libgudev-1.0.la 8619d93 multilib.bbclass/package_manager.py: fix <multilib>-meta-toolchain build failure 99b0f38 opkg: fix remove pkg with --force-removal-of-dependent-packages failed b19d014 tzdata: update to 2014i a5abc53 tzcode: update to 2014i 2eed76b mtd-utils: Fix alignment trap triggered by NEON instructions bfd2afa python3: do not replace ccache in the middle of a path a64e37a subversion: Security Advisory - subversion - CVE-2014-3528 514a91d subversion: Security Advisory - subversion - CVE-2014-3522 d962e45 mc: Update patch status facfeb0 multilib.bbclass: fix incorrect TARGET_VENDOR in multilib image 150f0f5 classes/image: remove obsolete MULTILIB_VENDORS f19b4e9 bitbake: bitbake: clarify startup message 24dab21 bitbake: toaster: update web vcs fields for layers 298c3d5 bitbake: toastergui: provide download file capability 2837b11 bitbake: toaster: change startup parameter passing to avoid race a066071 bitbake: toaster: improvements for admin pages 97c0beb bitbake: toaster: use modified validators for git url fields a1f7a09 bitbake: toaster: changes to the landing page c7382db bitbake: toastergui: protect variable value reads 477587b bitbake: toastergui: refactor objects get in views.py 1b109c7 bitbake: toastergui: project edit capabilities in all layers page 960580c bitbake: toaster: fix Project page in order to trigger builds 1a463ab bitbake: toaster: fix layer source update code b27fc6f bitbake: toaster: we add static copies of AngularJS and related libraries f16f434 bitbake: toastergui: update breadcrumb in analysis pages 4f1390c bitbake: toasterui: save build id in build request on first chance 14e5b27 bitbake: toastergui: Show failed tasks in the build dashboard 324b277 bitbake: toastergui: Tiny change to help text 754f3e7 bitbake: toastergui: Remove extra <div> from build dashboard ceb1139 bitbake: toastergui: Remove sorting from "Size over total" column 719f5e4 bitbake: toastergui: Fix blue highlight for failed tasks 927943b bitbake: toastergui: Fix reverse dependencies tab for packages included 7aaedc2 bitbake: toastergui: Add missing task descriptions 93835e7 bitbake: toastergui: Amend show rows options daad086 bitbake: toastergui: Fix help text in packages 'Reverse runtime dependencies' tab 83edc57 bitbake: toasterbld: update checksettings command d485279 maintainers.inc: Updated with some ownership for Aníbal Limón and Alejandro Hernandez. 7fb6b0f elfutils: fix elf_cvt_gnuhash 70ad050 which-2.18: Use foreign strictness to avoid automake errors e962f99 hicolor-icon-theme: Deal with "make clean" breakage b900a81 gnu-config: Deal with "make clean" breakage d5881b7 wpa_supplicant: Improve rebuild handling c1f4b1f cmake: Try and improve cleaning of builds when B==S 6bd2d9d base.bbclass: Enable using 'make clean' for rebuilds 444ae98 autotools: Use make clean for builds not supporting B != S fcf5608 wic: Update bootimg-partition to use bootimg_dir 42d0334 wic: Remove special-case bootimg_dir 3840061 Revert "wic: set bootimg_dir when using image-name artifacts" d1f8b8f wic: Update the help text to include -D (--debug) 005d81d wic: Use overhead factor when creating partitions from rootfs directories 334f83a wic: Don't allow mkfs to fail silently in partition command 87dec81 bitbake: buildinfohelper: Make sure we use the orm defined value for loglevel c97194b image.py: Fix error in graph sorting ef32b9f multilib.conf: set MULTILIB_GLOBAL_VARIANTS conditionally 55d66ed mklibs: Fix loader for mipsel b8740fd glibc: Delete ldconfig when USE_LDCONFIG is not set 6476f0b rm_work: Speed up rootfs/populate_sdk removal 678e879 gcc: poison default sysroot path 4faca22 ref-manual: Updates to the migrating to YP 1.7 section. a0aeeff dev-manual: Updates to "Performing Automated Runtime Testing" 0761eba ref-manual: Added some new test variables: 9908d9e ref-manual: Updated list of supported distros. cf82c67 bitbake: prserv: don't wait until exit to sync 2794f91 bitbake: utils.py: don't use len() for truth value testing. f5b9b38 bitbake: fetch2: add .lz compression support dacc4ce nativesdk-cmake: Adjust toolchain paths dynamically ce339dd poky-lsb: Set LTSI as base kernel for LSB 0cfb89b poky.conf: add Debian 7.7 to SANITY_TESTED_DISTROS dd376e7 local.conf.sample.extended: update for RPM_PREFER_ELF_ARCH 11dafe8 kernel-yocto: fix branch validation for AUTOREV, non machine_meta kernels 2f93628 linux-yocto/3.17: v3.17 release and config cdfe99f linux-yocto/3.10: 8250/8250_dw: fix compile failure due to stable/Yocto conflict fc0a068 unifdef: remove fork, package upstream ac638b7 native.bbclass: use BUILD_* variables 9f33c28 rpm: realpath is required before expanding _dbpath in chroot 4c222d3 kernel.bbclass: Create modules directory even if there is no modules installed b05755c libxml2: fix CVE-2014-3660 0de79a7 nfs-utils: fix start-statd 38f02f1 cross-localedef-native: provide SRCREV_FORMAT 1a04850 archiver: fix truncation of src_rev caebcda libaio: fix for mips64 c908f5e systemd: fix libidn floating dependency c981ebb grub: add cmdpath to grub configuration file f348071 spdx.bbclass: improved stability, fixed SPDX compliance issues. Changes are reflected in licenses.conf. 8882eaa default-versions.inc: match version of db and db-native while "AGPL-3.0" in ${INCOMPATIBLE_LICENSE} 7a206eb libtool: Extend fix-final-rpath.patch 12769d7 liburcu: revert ARM GCC blacklist commit 5269dfa nfs-utils: fix a Gcc undefined behavior d7cb96f python-smartpm: Add checking for "rpm-ignoresize" option fd50427 systemd: Use ${ROOT_HOME} instead of /root ad065f9 ref-manual: Minor edits to variables. 78c5c17 ref-manual: Cleaned up wording in glossary for "inheriting" 38c853a ref-manual: Applied review edits for new classes and variables. 01f2e75 ref-manual: Added new uninative class. 1ea92a2 ref-manual: Added gummiboot class and four supporting variables. 82638ca ref-manual: Added copyleft_filter class description. 43b8f88 ref-manual: Added texinfo class and two new variables. 369f8d6 ref-manual: Added buildstats-summary.bbclass section. 41e7dd2 ref-manual: Added BINCONFIG variable and binconfig-disabled class. 567d9af ref-manual: Added ptest-gnome.bbclass section. 12fb49e ref-manual: Added compress_doc class and DOC_COMPRESS variable. 924da20 build-appliance-image: Update to dizzy head revision f0a2a2f ref-manual: Updated the populate_sdk_* class a424beb profile-manual: Scrubbed and fixed user-input formatting. d6e89e7 kernel-dev: Scrubbed and fixed all user-supplied input formatting. 5f61389 adt-manual: Scrubbed and fixed user-supplied input formatting. 2eaf7e6 ref-manual: Scrubbed for variable (user) input. b96378e ref-manual: Updated the introductory section list manual overview. 31d0bb2 ref-manual: Minor edits for review on new QA checks. e5255cc ref-manual: Added [build-deps] QA error message. d5d81af ref-manual: Added [file->rdeps] QA error message. 41173c8 ref-manual: Added new build-deps QA check to insane.bbclass. 3305c26 ref-manual: Added file-redeps QA check to the insane.bbclass. 8998871 ref-manual: Added new do_package_qa task entry to tasks chapter. 3c29495 ref-manual: Another change to the autotools class. 360ad12 ref-manual: Updated the autotools class. e9ecf3f dev-manual, ref-manual: Updated 1.7 migration section with review comments 8eb706a ref-manual, dev-manual: Applied migration review edits. 323929d ref-manual, mega-manual: Updated build history figure d8e41e8 ref-manual: Added new migration section for the 1.7 release. a51b755 ref-manual: Updated the build history section for build-id.txt ba0483c dev-manual: Updated the list of linux-yocto kernels 3d1820b ref-manual: Added cross-reference. 4b03b71 ref-manual: Updated the module_autoload variable. c2e2eb7 ref-manual: Added new KERNEL_MODULE_AUTOLOAD variable. d6c0a7d ref-manual: Added new KERNEL_MODULE_PROBECONF variable 55169b9 ref-manual: Updated module_conf variable 75fda35 gst-ffmpeg: Security Advisory - ffmpeg - CVE-2013-0869 3503fe8 gst-ffmpeg: Security Advisory - ffmpeg - CVE-2013-4358 e17e815 mtools: fix broken /usr/bin/lz 38968de gnupg_1.4.7: add package config libusb 5278071 openssl: upgrade to 1.0.1j bacc657 readline: Security Advisory - readline - CVE-2014-2524 7a9f5c9 gnupg: CVE-2013-4242 754288c sstate.bbclass: Fix up white space lost in last commit. 0d761fc sstate.bbclass: specify func dirs for sstate_hardcode_path 8a475be file: add wrapper to nativesdk-file a9dc143 openssh: avoid screen sessions being killed on disconnect with systemd f95d3fc python: force off_t size to 8 to enable large file support 9c218a3 wic/bootimg-pcbios.py: checking the existance of syslinux ccf5a4d build-appliance-image: Update to dizzy head revision ef3755b bitbake: fetcher: fix getVar call due to incorrect argument datatype 0fb3552 gcc: backport patch for gcc bug 61144 c0b0f69 package_deb: skip pre/postrm scripts on upgrade, write only one shebang 6bc86e0 mesa_git.bb: Fix fetch and license errors. 0172cde build-appliance-image: Update to dizzy head revision b2f1250 package_do_shlibs: Look for provider in the path thats in shlib_provider dictionary e495d9c build-appliance-image: Update to dizzy head revision f85455a build-appliance-image: Update to dizzy head revision 448549b ncurses: enable-pc-files requires PKG_CONFIG_LIBDIR existed b934ba1 Revert "meta-yocto: make 3.17 the preferred qemu kernel version" 3e991ee ref-manual, template: Permalinks for QA errors and warnings 6f32f3c ref-manual: Fixed grammar use in "Image Features" list. 07de72c glibc: remove bad patch snippet that eglibc forward ported f8d5bfb toolchains-scripts: Add support for target environment scripts ea8a7c5 sdk.py: fix write target sdk manifest failed based on ipk b718465 wpa-supplicant: fix for rebuild dd79603 git: fix do_install error afeb590 avahi-ui: fix for building systemd with multilib 08a86f8 nss-myhostname: skip it when systemd 90f3709 rpcbind: make service socket activated d3a5658 sstate.bbclass: split the too long line a200134 sstate.bbclass: the second bb.fatal not work d8b5b26 valgrind: Enforce 30 seconds limit for each test 0aedb38 boost: fix build when ${PARALLEL_MAKE} contains '-l' 0cac199 dosfstools: place files in /sbin, not in /usr/sbin b6b8029 python-pygobject: add libffi to DEPENDS 18b42b8 neard: update service file 3ce139b xserver-xorg: update patch to match upstream 1d00f3e oe-git-proxy: use SOCKS4a instead of SOCKS4 0843260 gnome-desktop-testing: Fix build on uclibc c9ec325 curl: add PACKAGECONFIG option to use libssh2 cc2add2 xserver-xorg: report DRI3 and Present modules as present 6334380 latencytop: Creates x11 PACKAGECONFIG. 6ec3a0b libassuan: fix for rebuild ddf7d2b meta-toolchain-qt: Fix environment population ee0ab90 toolchain-scripts.bbclass: Allow sourcing of subscript for environment 505a6b6 bitbake: fetcher: fix BB_STRICT_CHECKSUM datatype check 09a51b9 package_ipk.bbclass: Fix SRC_URI whitespace handling fc37a44 bash: update and CVE-2014-6278 fix 8ef4ded linuxdoc-tools-native: Makedoc.sh uses /tmp and fails w/ noexec mount 533a852 package.bbclass: Reverse runtime symlinks should be tied to package generation 5c0b727 LTP - realtime tests - fix bad robust mutex conditionals fbcab6e LTP - realtime tests - fix bad PI mutex conditionals 94d2fea bash: Upgrade bash to latest patch level to fix CVEs be2cf13 pseudo*.bb: update to pseudo 1.6.2 07ad00e cross-canadian: Disable the packagedata stamp-extra-info c8b9996 meta-environment: Deal with machines which change TARGET_OS 64eca27 gcc-runtime: Add linux-gnuspe symlink to fix c++ headers 3224472 kernel.bbclass: enable a link for external module building ff89dfb kernel: Added bc-native as DEPENDS 63a0781 adt-installer: Fix to work with meta-environment changes 6c3d119 documentation: Updated release date for manual rev tables. e90f4a1 ref-manual: Minor edits to "Image Features" section. 0389b3b uninative-tarball: Update eglibc -> glibc 54a755b oeqa/dmesg: Whitelist usbhid failures f246933 adt-installer: Set INHIBIT_DEFAULT_DEPS 5367855 build-appliance-image: Update to dizzy head revision 6a56492 meta-yocto: make 3.17 the preferred qemu kernel version 4a3e3db yocto-bsps: update h/w reference boards to the latest 3.14 SRCREVs 399192d oeqa/parselogs: Ignore qemu usbhid errors 0eeba11 gtk+3: Add missing MLPREFIX 5c16dcf meta-environment: Set libdir correctly to fix PKGCONFIG entries ef44f39 apt: apt-key binary was not being installed, including it in the installation 319eb60 perf: fix undefined pr_* routines 96c46db linux-yocto/3.17: update to v3.17-rc7 f351b74 linux-yocto/3.14/3.17: allmodconfig/allyesconfig build fixes 1e3a3cd linux-yocto/3.14: revert BFP feature, and fix intel-common -rt ce9f31a linux-yocto/3.14/3.17: menuconfig and cryptodev 448c1fc kern-tools: fix overly greedy path relocations abf9372 build-appliance-image: Update to dizzy head revision 6d843e6 ref-manual: Edits to the "Image Features" section layout 380ec32 ref-manual: Fixed "debug-tweaks" typo. 328cb8c ref-manual: Updated the "Image Features" section. 4a90871 ref-manual: Updated list of Machine Features shipped with YP. 70faf99 ref-manual: Updated the IMAGE_BOOT_FILES variable. 0369712 ref-manual: Updated the bin_package class. 1fd575f ref-manual: Updated the IMAGE_BOOT_FILES variable description. 609c216 dev-manual: Updated the supported BSP bullet item. d4cf38d local.conf.sample.extended: Document RPM4 setup 03813f4 perl: Improve sysroot regexp 3956c7b gdb-cross-canadian: Add to sstate whitelist 94503ca gtk-doc-stub: update to latest commit 41b420e mx: remove version from patch directory 58d9c4e rpm: add version 4.11.2 6be3386 python-smartpm: Add patches for rpm4 5ad57f4 rpm5: add python-rpm PROVIDES c1b5dc2 nss: nss.pc is not target specific 576b8f4 tzdata: update to 2014h 91c2fc9 tzcode-native: update to 2014h c34775f deb_packaging: Added support for multilib a08bf9a ltp: Add additional m4 path to autoconf. 4572e4c sstate: Add rpm allarch to overwrite whitelist ab2fcd2 ltp: add PACKAGECONFIG for numactrl a032509 squashfs-tools_4.3: modify SPDX_S variable 4211d1b icu.inc: modify SPDX_S variable 6ec2470 db_6.0.30: modify SPDX_S variable dbf6891 db_5.3.28: modify SPDX_S variable 0d3aac7 spdx.bbclass: Add SPDX-specific source tree variable. b186c4a oprofile: eliminate git recipe 3b92eb9 rootfs.py: catch inner warn message ecf0897 alsa-utils: interrupt streaming via signal 78b44ce kernel-yocto.bbclass: Fixup shell condition test syntax error c81072b lttng-modules: fix build issues with the v3.17 kernel 6a30031 apt: fix for CVE-2014-0478 202ae5a base.bbclass: add SRCREV to do_fetch() hash 78a2c81 staging: Exclude MULTI_PROVIDER_WHISTLIST from do_populate_sysroot 78b2f5a meta-environment: Two critical fixes to unbreak toolchains b2637ad babeltrace: Add missing bison/flex depensencies. 805f244 tcmode-default: Define PREFERRED_VERSION for binutils-native c7c24cc boost: fix atomics for armv6 39ca8b4 bitbake: toastergui fix size rendering in dirinfo page d6709b0 bash: Fix CVE-2014-7169 cab81b3 nss.inc: Fix LICENSE 215e7b9 bash: fix CVE-2014-6271 cf9fbf5 curl: add a PACKAGECONFIG for librtmp 49cbd6a licenses.conf: remove link to deleted License_Audit wiki page 236f382 meta-toolchain-qt: fix up old reference to Nokia and typo ea8945b qt4: fix bug tracker URLs for patches d7d028e qt-mobility: fix source URL 0d90e61 man/texinfo: conditionally add gzip/bzip2/xz to RDEPENDS 597b0c0 texinfo: fix QA Error while doc compress enabled 392026a git: add Git perl module to perltools package 576cb35 oeqa/utils: Added filter to LogResults decorator to enforce custom log level. 3ad2f85 sstate.bbclass: update the timestamps after install 38b8126 gnupg: add pinentry into RRECOMMENDS e9d8cec pinentry: add recipes c15ed36 dhcp: use ${PN} for SYSTEMD_SERVICES 3028c8e volatile-binds: use ${PN} for SYSTEMD_SERVICE dc73940 acpid: use ${PN} for SYSTEMD_SERVICE a7636ec packagegroup-core-standalone-sdk-target: Add libgcov-dev to on device SDK 5761032 gnomebase: fix indentation 6870dff syslog: Change unused variable declaration LOCAL=0 to LOG_LOCAL=1 020f4cb qtdemo-init: Make qtdemo startup correctly 8ff856a perf: fix issue about package splitting cf558b4 libpam / xtests: remove bash dependency 5948287 gst-plugins-base: fix build failure for x86 a876a2b coreutils: selinux/flask.h should respect to with_selinux f3e9be3 systemd: disable resolv.conf symlink unless resolved is enabled 5cc5917 sstate: Change overlapping files warning to a fatal error e92e800 bitbake: prserv/serv: Improve error message when prserver cannot bind to supplied host address 438a508 bitbake: hob: Fix sstate mirrors mangling 8e4e03c bitbake: fetch: Extend testing of subdir unpack parameter and fix 1f4e751 bitbake: fetch: SRC_URI parameter "subdir" does not work for local files 249a0e9 bitbake: monitordisk: don't log when not monitoring a filesystem for inodes 8ac8eca build-appliance-image: Update to dizzy head revision 21df5ec poky.conf: Bump version for 1.7 dizzy release c84b0c0 bitbake: bin/bitbake: Update to version 1.24.0 9a3781d sanity.conf: Update minimum bitbake version to 1.23.2 due to event changes 88f76f8 ref-manual: document IMAGE_BOOT_FILES 4995908 dev-manual: Added reference to the meta-selinux layer. 33cff3e layer.conf: Mark opkg-utils as ABISAFE for update-alternatives usage 4ebd2e49 update-rc.d/systemd: Remove OVERRIDES dependency 0aed04a layer.conf: Add in useradd dependencies as ABISAFE dependencies 78aeee1 man: fix not support xz/bz2 compression 75d6b2b ltp: make setregid02 be able to pass c9dbd26 systemtap: disable libvirt 8207c90 beaglebone.conf: add IMAGE_BOOT_FILES 7291691 wic: add sdimage-bootpart kickstart file 6b03fc2 wic: add new bootimg-partition plugin f24abaa documentation.conf: document IMAGE_BOOT_FILES 7ce1dc1 wic: set bootimg_dir when using image-name artifacts 48ff3fa wic: fix vfat partition sector count only if needed 0b3f477 wic: use IMAGE_EXTRA_SPACE for vfat rootfs c94d8e9 wic: minor comment update 2cbab45 uninative: Add uninative - a way of reusing native/cross over multiple distros a94574f bitbake: fetch2/perforce: Use replace (1 line) instead of find (3 lines) 7ca8b65 bitbake: fetch2/perforce: Fix localfile name if labels are used ff5fba8 bitbake: knotty: Ensure commandline parameters are updated in memres server b98bd94 irda-utils: remove inherit autotools 177af6e oe-init-build-env-memres: Fix automatic port usage b65e3e2 linux-yocto/3.14: update to v3.14.19 ca4f364 linux-yocto/3.10: update to v3.10.55 001db84 linux-yocto/3.17: bump to v3.17-rc6 0243bcf linux-yocto/3.17: switch to dedicated 3.17 repository cef6884 linux-yocto/3.17: update to v3.17-rc5 5b68bcf linux-yocto/3.14: update to v3.14.18 and -rt9 7040b6f linux-yocto/3.10: update to v3.10.54 and -rt55 afdbe31 bitbake: bitbake-worker: Fix bitbake -n bff185f dev-manual: Added a note to the EXTERNALSRC example about the class 2acf47b dev-manual: Fixed typo in the make races section header. ab7f117 dev-manual: Added a second EXTERNALSRC example. 79fd7f1 dev-manual: Updated another EXTERNALSRC example. 018c498 dev-manual: Updated EXTERNALSRC example for user-input formatting. 567c1ae ref-manual: Updated RRECOMMENDS variable description. 385f20b poky.ent: Updated the "tbd" name to "dizzy" for 1.7. d269a45 ref-manual: Added new INHIBIT_PACKAGE_DEBUG_SPLIT variable to glossary. c7dffc7 yocto-project-qs: Minor edits from a read-thru b4c03a7 dev-manual: Added some formatting for user-supplied input. f819f3d dev-manual: General edits to "Common Tasks" chapter. c2e5449 dev-manual: Review edits for GDB without source d0dda27 ref-manual: Added GLIBC_GENERATE_LOCALES variable. 9cc019b ref-manual: Added PACKAGE_DEBUG_SPLIT_STYLE variable. 05fabfc oeqa/selftest: Added decorators to buildoptions.py 5ceb02d kernel.bbclass: use one package split for all firmware filename extensions 4f0cbf5 u-boot: cleanup indentation and consolidate .inc file 955bf63 populate_sdk_base/meta-environment: Remove overlap from the two 6523bc1 meta-environment: Fix TARGET_OS problem for ppc cc58218 gstreamer1.0-plugins-bad: disable libssh2 13d1209 perl: remove unneeded patches in ptest directory adb3d77 python: obey LDFLAGS 93f7d09 irda-utils: obey LDFLAGS eb55720 blktrace: obey LDFLAGS for btrecord 6bd98e8 hostap-utils: obey LDFLAGS 3c9bf23 setserial: obey LDFLAGS 5ed0721 ossp-uuid: obey LDFLAGS e04fdb5 gdbm-1.8.3: obey LDFLAGS d9ddf29 zlib: obey LDFLAGS for tests 6730378 ltp: Added zip-native as a DEPENDS 533af2d flex: fix the deps for ptest builds 3e6df77 cmake.bbclass : Add support for cmake projects that use .S files. 280b6d0 sstatesig: fix overrides behaviour to remove SIGGEN_LOCKEDSIGS_i586 7450ba4 sstate: set SIGGEN_LOCKEDSIGS_CHECK_LEVEL default to error f9723a3 sstatesig.py: Replace '_'s with '-'s in SSTATE_LOCKEDSIGS* names. abf0e7e sstatesig: Improve the support for locked down sstate cache usage a08d7dc sstatesig: Improve to handle locking of multiple machines c5cc499 sstatesig/sstate: Add support for locked down sstate cache usage 7d80f8e bitbake: data_smart: Clarify what 'computed' means in the data store history context 14ace86 gcc-configure/gcc-common: Move preconfigure definition to common include 0db15bb libgcrypt: Fix ARM assembly when building __PIC__ da36b0a build-appliance-image: remove hardwired path 50f8fb7 rsync: remove trailing whitespace ed6b52c rsync: Add PACKAGECONFIG for acl/attr a6d390a systemd: fix to use ${libdir} for libraries a4cfa20 lttng-tools: add PACKAGECONFIG to support --enable-python-bindings and lttng-ust 04a3360 i2c-tools: create i2c-tools-misc package for perl scripts 14adc48 portmap: add systemd service file d11ec7f portmap: fix INITSCRIPT_PARAMS 8e47b28 dropbear: add pam modules dependencies eb6bf53 at-spi2-core: fix DBIND_CHECK_ALIGNOF m4 macro 23613ef grub-efi: Replace _BSD_SOURCE macro with _DEFAULT_SOURCE f8d38d5 gstreamer1.0-plugins-bad.inc: Add rtmp support in gstreamer. 563ea5b sstate.bbclass: fix sstate_hardcode_path() 40e1c38 license: Improve disk usage 57edf59 sstate: Fix incorrect return value handling 7029032 shadow: Make useradd work correctly with --root again fceef0c bitbake: data_smart: Fix remove operator and its interaction with data expansion 429802f classes/populate_sdk_base: enable adding custom commands to SDK install script 51e3921 bitbake: bin/bitbake: Update to version 1.23.2 bb54fd0 bitbake: siggen/runqueue/bitbake-worker: Improve siggen data transfer interface 9ebf982 xserver-xorg: remove aarch64.patch 3b37586 build-appliance-image: upgraded VMware machine config bd1a3ab nspr: Upgrade to 4.10.7 9f9476f packagegroup-self-hosted: move graphics packages to graphics group c2c8c02 packagegroup.bbclass: Use immediate expanded PACKAGE_ARCH value 7c16a53 oeqa/runtime: Automatic test for ptest 0a39472 oeqa/utils/logparser.py: results based log parser utility 1f5186e oeqa: Added package installer to oetest to aid in future automatic install of packages 7a497b8 linux-yocto-dev: bump to v3.17+ 56e93f5 linux-yocto/3.14: configuration updates and feature merges. e7d0486 linux-yocto/3.10: update valleyisland-io merge branch 4a82041 linux-yocto: introduce v3.17 6cb383c perf: fix v3.17 powerpc compilation issues 73ef403 lttng-modules: fix compilation for 3.17-rcX e107239 linux-yocto/3.10: baytrail i/o updates 5dc9a8f e2fsprogs: update acinclude.m4 ec20c06 e2fsprogs: remove manual build of util/subst cea6ad7 e2fsprogs: enable verbose build 0a74947 e2fsprogs: remove chmod f1ce75e pcihp: fix possible array out of bounds, CVE-2014-5388 5e18549 bitbake.conf: use ??= for IMAGE_ROOTFS_SIZE 3a77693 kernel.bbclass: handle .dsp firmware a41d97a classes/buildhistory: fix for sstate class change 0d3c795 glibc: Incremental bump to 2.20 release branch a425639 gdb: allow compilation for __aarch64__ 5bef322 wic: Completely remove all urlgrabber references 7576bd9 valgrind: backport enabling for glibc 2.20 ecb4014 systemd: disable resolved and networkd f42d028 alsa-utils: hard-code alsa-utils in SRC_URI 7efad8a qemu.bbclass: add -r ${OLDEST_KERNEL} parameter d8c8ea7 shadow: add Qualcomm and STMicroelectronics SoCs c46a548 glib-2.0: fix mount detection 7736967 python-native: disable user site support fe0f441 gstreamer: Set DEPENDS dynamically for plugins-ugly and plugins-bad 679b9fb bluez5: Allow method calls over dbus for bluetooth daemon beff451 alsa-utils: upgrade to 1.0.28 54f58f1 systemd: Adding RRECOMMENDS for os-release b092e55 os-release: Adding a new recipe for operating system identification 7df5910 pixman: upgrade to 0.32.6 28500e5 gtk+3: update to 3.12.2 4cdc9fd pango: update to 1.36.6 79900b8 libpng: update to 1.6.13 da5710d libpng: drop unnecessary automake requirement lowering patch 3e4cd04 gtk+2: update to 2.24.24 1f162cd libxkbcommon: Add missing dependency on xkeyboard-config 5f26c02 sstate: Add extra intercept functions SSTATEPOSTCREATEFUNCS d06839e package_manager.py: use RPM_PREFER_ELF_ARCH 124ad80 perf: add libunwind support 9204cac libunwind: add recipes 69e7936 lighttpd: install config file without execute permissions 38a44d4 sudo: make sudoers a config file 60bfdb0 insane.bbclass: add QA check: file-rdeps e7a78bd package_manager: RpmPkgsList: determine rpm version 1894522 bitbake: tinfoil: add a means of enabling variable history tracking dfbb546 bitbake: toaster: fix some code spacing issues 69e5cbd bitbake: toaster: use cookies for count and sorting in templates tables a6f1e31 bitbake: toaster: do not save objects in session 32a2793 bitbake: toaster: enable SSH-based remote build support 5bd2b3f bitbake: toaster: bitbake server listen on all interface a287a6d bitbake: toaster: rename bldviewer projecttags custom tagset a440062 distro/poky: Add Debian 7.5 and 7.6 version as validated 57b214d alsa-lib: libasound should runtime depends on alsa-conf c7541a2 rpmresolve: ignore null requires 628875e systemtap: Cross compilation fix af28cad systemtap: Fixed probe syscall.sendfile failure b02da02 useradd-staticids.bbclass: Fix for Bug 6633 2f42ef8 package_rpm: Add optional improved directory handling 7b722c5 systemd: enable forwarding messages to syslog daemon 1ea5aad run-postinsts.service: remove redundant line 23c9436 modutils-initscripts: mask modutils in case of systemd 9105e9e psplash: mask psplash in case of systemd 2caee0c v86d: mask fbsetup when necessary c57427b keymaps: mask keymap when necessary 3b00803 initscripts: mask several init scripts f8f2ada packagegroup-core-boot: conditionally rdepend on VIRTUAL-RUNTIME_initscripts bebf263 keymaps: remove dependency on initscripts 143e13a at: inherit update-rc.d to handle sysv init script 44be08b at: remove dependency on initscripts ab4f1b2 rpcbind: avoid entering failed status after stopping daemon eaa87ab cups: add systemd support cd8255b cups: make cups daemon start correctly f9c6b40 acpid: upgrade to 2.0.22 and add systemd support 9b5bc94 dhcp: add systemd service files 198ed4b systemd: add support for executing scripts under /etc/rcS.d c39e263 v86d: set INHIBIT_UPDATERCD_BBCLASS if 'sysvinit' not in DISTRO_FEATURES 7580259 systemd: add kbd-keymaps to RRECOMMENDS of systemd-vconsole-setup 62fdd44 keymaps: fix for systemd e3088a7 alsa-state: fix pkg_postinst and set INHIBIT_UPDATERCD_BBCLASS ee05cc8 update-rc.d: fix logic in populate_packages_updatercd 16de99b systemd: make runlevel work in non-runlevel targets 2189b7e systemd: add PACKAGECONFIG for 'journal-upload' 6301fde systemd: upgrade to 216 b2a93ca qemu-native: only depends on libxext-native when x11 187c831 piglit: add bash to RDEPENDS_piglit 957753b scripts/contrib/build-perf-test: Update eglibc -> glibc 2b83ffe xserver-nodm-init: Only start in runlevel 5 e04230b rpcbind: Make user's home directory / b15a703 classes/compress_doc.bbclass: compress man/info pages 9bf365c perf.bb: fix multilib build cdb7752 pango / ptest: clean CFLAGS for host binary 60b8a57 scripts/create-recipe: minor fixes 45907b6 package_manager: Add rpm v4 support c5dc664 package_rpm: Add builddir macro to define source directory 2668104 package_rpm: Add custom extension support for spec generation. 1a7ff8a lz4: update to version 122 83ebcb1 bitbake: process: Ensure abnormal exits set an error level 08ffc6b nettle: Add name to maintainers list a4e6bc7 upstream_tracking: add lz4 version and date info for package bb00d83 conf: Account for eglibc->glibc move 3150bdc python-numpy: Fix build for mips64 f61eac4 grub: Replace _BSD_SOURCE macro with _DEFAULT_SOURCE 9164912 xf86-video-intel/xf86-video-omapfb: Fix build with glibc 2.20 4d26851 xf86-input-synaptics/xf86-input-vmmouse: Fix build with glibc 2.20 5e328bf bitbake.conf: Use 2.6.32 for oldest supported kernel 09e3e78 recipes: Remove references to eglibc 573b743 oeqa: sstatetests should now look for glibc-initial 4e4e80e image-swab.bbclass: Account for eglibc -> glibc move e64efe7 conf: Account for eglibc->glibc move 00f33ff distro: TCLIBC now defines glibc instead of eglibc 54a3375 glibc: Migrate eglibc 2.19 -> glibc 2.20 954e45b perl: add explicit configs for Time-HiRes 8a0a27d ghostscript: Don't build-depend on libgcrypt for the local cups 051f6a1 native.bbclass: deltask package_qa 4900d76 yocto-bsps: update SRCREVs to linux-yocto latest 834ab14 yocto-bsps: remove 3.4 bbappend 76f05ee linux-yocto: ensure that recipe specific defaults take precedence 92c1ece kernel-yocto: replace --is-ancestor with basic git porcelain commands 61c15c0 linux-yocto/3.4: remove 3.4 name recipes 05371f4 linux-yocto/3.14: update to v3.14.17 aeef310 linux-yocto/3.14: vhost, vxland, openvswitch and block/bfq updates b7a16bb kern-tools: allow meta branch and meta data directory to differ 9a3292e kernel-yocto: convert echo statements to bb* equivalents cf8a0ac kernel-yocto: remove KBRANCH_DEFAULT 63f2e18 kernel-yocto: allow custom non-meta, SRCREV format builds ba7614b kernel-yocto: clean overly complex branch checkout 2aa7522 kernel-yocto: use show-ref instead of branch -a 4ee454d kernel-yocto: simplify branch SRCREV validation 3b3fe04 kernel-yocto: remove KBRANCH_DEFAULT 95bfc6a kernel-yocto: remove branch existence checking in do_validate_branches 254bc3a kernel-yocto: remove SRC_URI kbranch validation 8a5b1c7 kernel-yocto: remove containing branch check 7097cdf kernel-yocto: move SRCREV validation to patching phase 4e96983 kernel-yocto: use cat-file instead of git-show 6b294a0 kernel-yocto: remove redundant SRCREV check 50a8400 bitbake: knotty: ignore interrupted system calls 372c9d1 bitbake: toastergui: added pages for project details acd4a17 bitbake: toaster: add project pages for machines, targets, layers fd0398f poky-tiny: Fix qemu build failure 8b70d4b poky-tiny: Set native DISTRO_FEATURES f1b41b9 tzcode: update to 2014g d6bd8df tzdata: update to 2014g 823ba6e libpam: remove MLPREFIX from PN 08c8861 linux-libc-headers: update to 3.16 c07aa7e libpam: Fix multilib packaging e145cd5 libpam: Fix runtime providers e2d64c1 libical: upgrade to 1.0.0 243837b libpcap: upgrade to 1.6.1 b31b04d iproute2: upgrade to 3.16.0 7d8430f at: Upgrade to 3.1.15 d086917 libassuan: Upgrade to 2.1.2 83b4118 libxkbcommon: Upgrade to 0.4.3 04827ad man-pages: Upgrade to 3.71 864fdbb less: Upgrade to 466 af35986 alsa-utils: upgrade to 1.0.28 c74a6dd alsa-tools: upgrade to 1.0.28 b72ce82 alsa-lib: upgrade to 1.0.28 cc0a061 package_manager.py: enable smart non-interactive mode 4568f38 libtirpc: upgrade to 0.2.5 f01a156 gstreamer1.0-plugins-ugly: upgrade to 1.4.1 0fb00d4 gstreamer1.0-rtsp-server: upgrade to 1.4.1 797c793 gstreamer1.0-plugins-bad: upgrade to 1.4.1 2173b1b gstreamer1.0-plugins-good: upgrade to 1.4.1 8ce06de gstreamer1.0-plugins-base: upgrade to 1.4.1 4c8658e gstreamer1.0-libav: upgrade to 1.4.1 987fcaa gstreamer1.0: upgrade to 1.4.1 37fbf2b systemd: add PACKAGECONFIG for 'elfutils' d8f60bb useradd: Add setscene dep on pseudo-native 1ea36c8 qemu-native: depends on libxext-native when enable sdl 9f36a3c package: Correct two typos in a comment 3b47aa1 lib/oe/utils: Make multiprocess_exec() return anything 91375af oeqa: xorg log test is being replaced by parselogs so remove e50ebcc testimage: Add parselogs to the default tests for sato images 09296cd oeqa/pasrselogs: Improve the machine/string whitelist c730c94 oeqa/runtime: Automatic test for parsing the logs on a machine and search for certain error keywords. 0031722 classes/cpan_build.bbclass: add EXTRA_CPAN_BUILD_FLAGS fa9bb30 buildtools-tarball: export GIT_SSL_CAINFO 754a9c3 buildtools-tarball: include nativesdk-ca-certificates 39f77bb lttng-tools: fix ptest execution failure fe2e53b bitbake: toaster: create Build methods for calculating progress and ETA 69955c7 bitbake: buildinfohelper: BuildRequest project file update soft linked 25a715a bitbake: toatergui: update pages to match project models ee250eb bitbake: toaster: update the bldcontrol to the new orm models 95df542 bitbake: toaster: update checksettings command for auto-detection 565f692 bitbake: toaster: add all layers page 3a4356d bitbake: toaster: create project section navigation structure 5453000 bitbake: toaster: enable admin interface on select models 234226b bitbake: toaster: update orm models for layerindex compatibility 10019a6 bitbake: toaster: fix application discovery in settings.py 7eb3e45 bitbake: toasterui: refactor log saving and save out-of-build errors 669c07d bitbake: build/data: Write out more complete python run files 34226b8 bitbake: bitbake-worker: Extra profiling data dump ac66e15 bitbake: utils: Improve profile log processing c79b7f0 bitbake: fetch2/hg: Fix username/password handling d1a133a bitbake: runqueue: Fix setscene tasks not running 859ad94 populate_sdk_base: Remap TOOLCHAIN_HOST_TASK variable a9c628d python3-distribute: fix interpreter bdf14c7 bootchart2: no bashism in bootchartd.in b2dab1f sed: add sed to RDEPENDS sed-ptest ac5aaf8 lsbtest: no bashism in LSB_Test.sh 36f6caa run-ptest: fix bashism cdfc515 valgrind/oprofile/systemd: no bashism in run-ptest 1087a18 meta: fix RDEPNEDS for the test related pkgs 44f98bb ltp: fix RDEPENDS 8ffa79e ethtool: upgrade to 3.15 53fcc0a gstreamer1.0-plugins-bad: Add DEPENDS on jpeg 49ade79 gstreamer1.0-plugins-bad: Fix GL/GLES configuration f0f50a9 gstreamer1.0-plugins-bad: Add DEPENDS on libpng b5c2294 gstreamer1.0-omx: Add DEPENDS on gstreamer1.0-plugins-bad 1094091 gstreamer1.0-plugins-bad: add opencv haar cascade XML files to package 9c0d4f5 cpan.bbclass: matches more lines 89a2b84 perl-native: fixed bad interpreter error 38dbebf packagegroup-core-directfb: Set PACKAGE_ARCH to MACHINE_ARCH 778e892 ofono: upgrade to 1.15 b2b4057 bluez5: upgrade to 5.22 ddf2b0e harfbuzz: upgrade to 0.9.35 94a6ecf connman: upgrade to 1.25 a90346e patchelf: Add patchelf recipe 347f9c6 sstate: Add extra intercept functions bbf1040 linux-dummy: bundle_initramfs should not be nostamp any more c167954 qemu: add PACKAGECONFIG for numa 07ad83e libtiff: fix CVE-2013-1961 40771f3 systemd: Support building on uclibc 036644d uclibc: Support systemd builds 90f6566 uclibc: Upgrade to tip of master 6e7127d openssl: Re-add linux-uclibc tuple 3adf1f5 IBM power7 v2: Add new tune file for PPC power7 38c91f4 IBM power6 v2: Add new tune file for PPC power6 3daa219 IBM Power5 v2: Add new tune file for PPC power5 cpu 88a3c93 nss: CVE-2014-1544 2e8b702 logrotate: add packageconfigs 682933a logrotate: obey our flags 61e3e41 oeqa/sdk/buildsudoku.py: add setUpModule method to run only when gtk+ in installed. e2b4dde oeqa/oetest.py: enable sdk tests to use hasFeature and hasPackage methods. e04172d classes/testimage.bbclass: add more fields to the sdk TestContext 475e976 classes/populate_sdk_base.bbclass: add a manifest for target sdk 30c22a3 qemux86-64: support X11 when QEMU is emulating a different GPU than vmware 0e8d6de qemux86-64: xorg.conf: allow X.Org driver to be selected automatically. 9e8666c qemux86: support X11 when QEMU is emulating a different GPU than vmware ae54f2b qemux86: xorg.conf: allow X.Org driver to be selected automatically. a9085bf xorg-drivers: xf86-video-cirrus: add a recipe for the Cirrus Logic X.Org driver a9b0804 archiver.bbclass: add revision to git tarfile name 3a1b605 hicolor-icon-theme: Upgrade to 0.13 754c983 xkeyboard-config: upgrade to 2.12 b2981a0 xf86-input-mouse: upgrade to 1.9.1 0a21d44 xf86-input-synaptics: upgrade to 1.8.0 726c08e psmisc: Update patch status d09e6d8 native/nativesdk: Clear MACHINEOVERRIDES 8491ca5 sanity: refactor mirrors checks to be more pythonic af6d668 sanity: fix support for regex schemes in mirrors check d68255d sanity: handle both \n and \\n in mirror vars 52b788c autogen-native: inherit pkgconfig to fix a build failure c58b4e4 libxml2: Explicitly enable zlib support e601c8b buildhistory: Restore parsing time optimalization c919acf poky-floating-revisions: SRCREV never worksin PREFERRED_VERSION, remove bad example 6d08e5b bitbake: lib/bb/*.py: Typo fixes/grammar/comment fixes, nothing functional. 91083de bitbake: depexp: don't use undefined variable 'logging' 6962cd8 bitbake.conf: Drop unused MKTEMP* variables 1a76648 package: Disable runtime mapping of RPROVIDES/RCONFLICTS/RREPLACES ff6ab05 package: Don't remap names in packagegroup recipes 3694f05 debian: Set RPROVIDES to include the original packagename when renaming c490ba0 sstatesig: Only squash dependencies for allarch packagegroups 9e213dd packagegroup: Move inherit packagegroup to after PACKAGE_ARCH 9541ec7 allarch: Add warning about packagegroup 4f3f34d packagegroup: Make allarch inherit conditional be8a7ab nettle: add nettle to tracking 21f41f6 bitbake: cooker: tweak CookerCollectFiles::find_bbfiles cf385a55 guile: workaround ice ssa corruption while DEBUG_BUILD ffb4933 puzzles: fix do_compile failed when DEBUG_BUILD 28e3f8c fixup f026b7a busybox : fix do_compile failed on qemumips when DEBUG_BUILD (ICE) de96305 opkg: Add runtime dep on gnupg if 'gpg' is in PACAKGECONFIG 26b2233 gpgme: Add pkg-config file 94c9b02 bind: refer ubuntu/redhat to add bind user/group 7361876 ptest-runner: return 1 instead of zero if any test fails fd0aa6a udev-cache: parametrize sysconf file paths 7c56a5e udev-cache: Don't ignore error messages from cache extract ab5c95f udev-cache: omit sockets and filesystems mounted under /dev 79f5a3b udev-cache: strip timestamps on extract 4f597a8 busybox: enable `tar -m` bcab1f8 udev-cache: choose a more descriptive cache filename 8c423bf udev-cache: Compress the cache bd7fb7c udev-cache: Update cache tarball atomically 8d59fca linux-yocto/3.14: feature merges and configuration updates 29f428d linux-yocto/3.14: cgroups and hugetlb updates 2cc9643 linux-yocto/3.14: fix common clock framework support in PCI glue layer 4045d61 linux-yocto/3.14: KASLR and VDSO backports d4fbc54 linux-yocto/3.14: update to v3.14.13 321cb59 linux-yocto/3.14: add ARM kprobes support 2ffbc27 linux-yocto: intel-common: Enable Industrial IO 0ae7b58 sanity.bbclass: check the format of MIRRORS eb34d66 sanity.bbclass/kernel.bbclass: minor fixes dfb5575 gmp: ppc64 build issue c891078 mc: Fix musl build failure 65fa712 libc-common.bbclass: rename ALL the packages c448f2d expect: fix shared object file cannot be opened 2bdd294 sudo: remove volatile configuration file 5a3a7e0 bitbake: siggen: Fix a subtle bug in hash calculation for shared work tasks d33cc89 bitbake: process: Further improve robustness against server shutdown 8683c24 bitbake: utils: Add workaround for multiprocessing bug ecf72a7 bitbake: command: Trigger updateCache to shut down any active parser threads c501492 bitbake: bitbake-worker: Improve sigterm handler a4f077b bitbake: knotty: Improve exception handling db50630 bitbake: process: Deal with infinite looping of the server b4ad9de bitbake.conf/debian.bbclass: Move AUTO_LIBNAME_PKGS definition to class file 62e3071 packagegroup-core-tools-debug: Drop MACHINE_ARCH as PACKAGE_ARCH 9412254 package.bbclass: Fixup for using common function be1b198 lib/oe/utils: Add utils function for multiprocess execution 6ab380d bitbake.conf: Set PACKAGE_ARCH with ??= f478602 oeqa/utils/httpserver: Reset SIGTERM handler 181bcbe archiver: delete the tail slash in directory name cae5cf2 grub_2.00: strip the sparc64 files from building a140514 mesa: fix Multilib QA Issue bf6ad82 udev: fix /var/volatile/tmp permissions a45cb30 grep: set CONFIG_SHELL to /bin/sh e06238b gzip: set CONFIG_SHELL to /bin/sh 086936a xz: set CONFIG_SHELL to /bin/sh ed3b6ed qemumips.conf: Default to (and support) mips32r2 f9e6b7e fix up eglibc-utils description to match what is actually included f9619af qemu: Explicitly disable libiscsi, its not in DEPENDS 5dfec59 strace: fix ptest execution failure e46011c perl: fix the output format of all tests 638ccc4 lttng-ust: add python-core to RDEPENDS_lttng-ust-bin 185eed0 syslinux: add perl to RDEPENDS_syslinux-misc 03d4906 aspell: add perl to RDEPENDS_aspell-utils fb5f2bb rpm: add perl to RDEPENDS_rpm-build faa4b0a gst-plugins-base: add perl to RDEPENDS_gst-plugins-base-apps ad95a7b dtc: add bash to RDEPENDS_dtc-misc 2311f57 apr: add bash to RDEPENDS_apr-dev a9a0246 pm-utils: add bash to RDEPENDS_pm-utils 63aa531 apt: add bash to RDEPENDS_apt 919a8e2 xmlto: add bash to RDEPENDS_xmlto 3c85381 kconfig-frontends: add bash to RDEPENDS_kconfig-frontends fdf51aa pax-utils: add bash to RDEPENDS_pax-utils f95e62b libtool: add bash to RDEPENDS_libtool 7d3d6a3 bitbake.conf: add bash-native to ASSUME_PROVIDED cdb84ea openssl: add DEPENDS on openssl-native for rehash 87c748c dhcp: do not use ifconfig/route in dhclient-script 3531869 kernel: Prevent from installing so files into source dir 7b0137c nss-myhostname: fix postinst/prerm scripts 06d529c ethtool: Fix musl build failure e335d95 psmisc: Fix musl build failure 0c6c0b6 procps: Fix musl build failure 50fbf19 wic: do not realign aligned partitions 5686b2d wic: do not steal sectors from the first partition cb860e1 e2fsprogs: Backport fixes for building with musl 7607001 classes/autotools: avoid error if recipe is first in task dependency tree 6a6f50b sqlite3: Upgrade to 2.8.6.0 1fb5d64 gnupg: Upgrade to 2.0.26 088123d libidn: Upgrade to 1.29 1203e1e glew: Upgrade to 1.11.0 b1d8f59 boost: Upgrade to 1.56.0 b8dd7c8 libbsd: Upgrade to 0.7.0 0056492 cups: Upgrade to 1.7.5 3443667 bitbake: runqueue.py: Fix typoes/grammar in comments. 02455eb bitbake: fetch2/local.py: fix first line indent of search path debug output f1dc26e bitbake: daemonize.py: Non-functional comment/aesthetic fixes. 8a91a24 bitbake: runqueue.py: Correct several misspellings of "notifing". c3f7f4e bitbake: newbb.vim: remove PR e89001c qemu: fix Darwin cross-compilation be02588 classes/sstate: ensure do_package_qa_setscene doesn't pull in do_package_setscene 3223a70 buildhistory: rename build-id to build-id.txt and add more info 858846d librsvg: disable Bsymbolic if it is not supported on some hosts b7e4518 site/common-darwin: Really fix common-darwin typo abb7f5b oeqa/sdk/: add sdk tests for sudoku, iptables and cvs fec293b oeqa/utils/targetbuild.py: add support for sdk tests 2999a7f oeqa/oetest.py: enable sdk testing c8de46c meta/classes/testimage.bbclass: add testsdk task and enable functionality for it. 59b0f7f chrpath: Drop warning from darwn builds d42794c glib-2.0: Add missing nativesdk-gettext DEPENDS ea06e64 qemu.inc: Drop unneeded nativesdk-libsdl RDEPENDS 241bdb0 qemu-targets.inc: Update to handle mingw/darwin 77ebfe7 gst-ffmpeg: add PACKAGECONFIG for libav9 and patch from Gentoo 1e001d0 piglit: add dependency on libxrender 9e4be7f local.conf.sample: Append sdl to qemu-native* PACKAGECONFIG 7ae2008 avahi: Since ${PN} is empty, set -dev RDEPENDS 7095d8d crosssdk: Clear MACHINEOVERRIDES 5f69b66 openssl: Repace if-else with case and add musl triplet 00e054e syslinux: fix race issue ecb6abe avahi-ui: drop rmdir localstatedir in bb recipe 093149d avahi: unset FILES_avahi to avoid packaging files there ccec199 lttng-tools: update to version 2.5.0 3188e0b libxml2: port AM_PATH_XML2 to use pkg-config 2f8a72e coreutils/libpam: Add BBCLASSEXTEND nativesdk f12ac61 wic: include partition label in fs image file name 4ac5071 gcc-cross-initial: Put limits.h in gccdir/include 1a1d641 lttng-ust/lttng-modules: Update LICENSE to reflect MIT 182cd38 lttng-tools/lttng-ust: Drop old 2.3.1 versions 1cbabcd lttng-ust: update to version 2.5.0 eed2270 toolchain-shar-template.sh: Limit xargs command line 298de65 bootchart2: fix installed-vs-shipped f9f8183 libpam: Allow use during build and in SDK 52dbe71 attr: Allow use during build and SDK ba9cb13 cracklib: Allow use in SDK 072657c wic: Add mkgummidisk kickstart file 32a5799 wic: Add sourceparams to mkefidisk.wks 6e328c9 wic: Add gummiboot support to bootimg-efi 8d0185f wic: Parse and pass sourceparams to partition plugin methods e00e902 wic: Add sourceparam param to partition plugin methods ef700ea wic: Add utility function for parsing sourceparams 3c90ee9 wic: Add '--sourceparams' partition option c4f51a0 image.bbclass: image_types.bbclass is a must 25bf76a gmp: uprev it to 6.0.0 c23b321 Support image type "squashfs-lzo" 6ac0696 squashfs-tools: Add support for LZO and LZ4 compression f21f385 strace: apply ptrace.h conflict workaround 295ce4a curl: --with-random is only applicable with openssl c076959 curl: let configure find gnutls via pkg-config 89d3db7 curl: add zlib PACKAGECONFIG and remove hardcoded DEPENDS ae8d3bc python-pygtk: fix native python path 9a30d34 consolekit: depend on glib-2.0-native 276285b consolekit: allow explicit enable/disable of polkit 0cd5af0 udev-extraconf: Unmount SD card after ejection eb7a847 opkg: Protect add-exclude.patch from malloc failure cb1ab74 multilib_global.bbclass: PREFERRED_PROVIDERS for multilibs c0a071e gcc: update compiler architecture to match gcc-runtime (armv6, armv7a) 6573521 gcc: backport patch affecting Linux kernel builds 75191fc gcc: Abstract long double configuration into python function 14a2d1e sdk: change EXTRA_OECONF_FPU to EXTRA_OECONF_GCC_FLOAT 79e235c gcc-target: make --enable-clocale consistent with gcc-runtime 7a17a0d gcc: remove outdated configuration option 46a812f gcc-4.9: Ensure c++ includes are in /usr/include/c++/${BINV} 7b8b0af gcc: remove inappropriate patch 6d78f39 gcc: recipe whitespace changes 2783ee7 tcmode-default.inc: Add eglibc-scripts and eglibc-mtrace 221c11b prelink_git: Update to current head of cross-prelink development 8e46af2 autoconf: add rdep on perl-module-data-dumper ba4eb6d gcc-cross-initial: Use good old bfd linker by default b8a001d cmake: drop -fpermissive bf07dcd gstreamer1.0-rtsp-server: Upgrade to 1.4.0 c1fe42c libgcrypt: Do not remove m4 files so aggressively c742a6a python-scons-native: Make it useable if old host install exists f1cdd6e glib-networking: Inherit gettext 06db5d9 libsoup-2.4: Inherit gettext 9f6d867 systemd: Inherit gettext 8247293 qemu: add PACKAGECONF lzo d5b7327 qemu: enable aarch64 support 0670cec python: Fix build on musl 9c1ea58 gstreamer1.0-plugins-good: Add a PACKAGECONFIG for udev 19e9510 gdb: Add a dependency on zlib a346777 cml1.bbclass: fix diffconfig diff command 58bd515 libav: update 9.x version to 9.16 ab8365b libav: update 0.8 version to 0.8.15 3939d66 qemu: Overwrite KVM explicitly for darwin/mingw 06d6608 qemu: Simplify DEPENDS 42f0ffe qemu: Add PACKAGECONFIG for glx 153773e qemu: Add alsa PACKAGECONFIG and cleanup native/nativesdk DEPENDS 1c1ce08 qemu: Fixup target sdl configuration to use PACKAGECONFIG f4ff3d3 qemu: Move dtc(fdt) configuration to PACKAGECONFIG 57bdeec site: Add common-darwin fa3df0e glib-2.0: Allow correct printf configuration on darwin/mingw 71135b3 glib-2.0: Make the gtester-report installation conditional 82b7504 populate_sdk_base: Move toolchain installation script to a separate file 2501287 rootfs_*: Refactor common depends/lockfile task flags e6837f7 classes: Combine rootfs_<pkgtype> and populate_sdk_<pkgtype> 6882d2d yocto-project-qs, ref-manual: Added 'socat' package to essentials. edd2532 ref-manual: Updated native.bbclass with grammar fix. 010d19e dev-manual: Misc edits to the model chapter (Chapter 4). 1ab0c8f dev-manual: Various small edits to Chapter 3. 4cc5cb1 dev-manual, mega-manual: Updated the downloads picture. 32b508e dev-manual: Misc edits to Chapter 2. d677a68 dev-manual: Added Toaster to the list of other resources. 5370b58 dev-manual: Updated section on launching remote GDB. 632faca bsp-guide: Applied the <replaceable> tag as needed. cb5c70d ref-manual: Fixed a couple links and made some minor corrections. 8732dab ref-manual: Minor edits for clarity. 2ef2b72 ref-manual: Updated "Images" chapter to remove listed dirs for recipes. 46fb10d ref-manual: Ordered images alphabetically. 15b0f8a ref-manual: Added "core-image-testmaster-initramfs" image d211d47 ref-manual: INITRD var: make it a list of filesystem images. 80bd63b ref-manual: Updated the SRC_URI variable. 932b956 dev-manual: Minor edits to the section to add binaries to an image. 2058187 ref-manual: Edits to some FAQ entries. a20e75f dev-manual: Review edits to how to find checksum values. e2e0844 ref-manual: Review edits to new FAQ entries. 0467e3a dev-manual: Minor edits via patch to "common tasks" chapter. 93f0d03 dev-manual: Technical and text edits applied as patch. 99a3c19 dev-manual: Edits to several examples and some typos. 0346405 dev-manaul: Small edits to various examples. a155083 ref-manual: Updated a couple FAQ entries. 0f24d9c SIGGEN_EXCLUDERECIPES_ABISAFE: add initscripts d7fea14 oe.package_manager: fix use of PACKAGE_EXCLUDE for dpkg 4e3e0df python-dbus: use PACKAGECONFIG for doc generation fe5b333 oeqa/runtime: add new cpp test and file 92785a1 lib/oeqa/selftest: Don't match log level in output d43b439 sstate-sysroot-cruft.sh: Improve to use it from CI f62150b qt4: Avoid duplicate flags in the g++-unix.conf a37c81c tslib: Delete unnecessary "SRC_URI_OVERRIDES_PACKAGE_ARCH = 0" f71208f trace-cmd: fix recompile error 4ca81d6 openssl: upgrade to 1.0.1i 2c175fc directfb: add PACKAGECONFIG for webp c1a2482 kernelshark: add dependency on libxml2 f18ff5f gnupg: Added PACKAGECONFIG[curl] ae10362 curl: add ssl to PACKAGECONFIG a3d0a7b base.bbclass: Remove old-style definition of do_build() task. 786c445 guile: add dependency on ncurses and readline 9e8c8c3 midori: add dependency on libxscrnsaver d150886 libarchive: add PACKAGECONFIG for nettle 984c6a4 mpeg2dec: add PACKAGECONFIG for x11 and fix dependencies 1636d23 gst-fluendo*: add --disable-debug only to gst-fluendo-mp3 a1fa222 test-dependencies, insane.bbclass: improve the message f96432d directfb: add PACKAGECONFIG for drmkms and tiff 48989d3 Remove remnants of deleted "do_package_write" task. d942d22 wic: Bump the version to 2.0 d8f9d05 wic: Rename /mic to /wic a43c1f9 wic: Update Disk description ff1aa23 wic: Rename MountError 312479c wic: Rename PartitionedMount 28453ae wic: Update/rename configure-related code d02c91f wic: Update/rename install-related code 467bf7e wic: Update cleanup/unmount-related code 4d1f5ee wic: Update/rename/delete mount-related code bd0dd44 wic: Remove Mount object d74e7d3 wic: Remove unused conf support 554feee wic: Update 'Background and Motivation' help section 02ebd15 wic: Remove unused command versioning support 8678a6e wic: Clean up Creator f12336a wic: Clean up PartitionedMount 1601821 wic: Clean up DirectImageCreator 6c6c96a wic: Clean up BaseImageCreator df42125 wic: Remove unused plugin and error code 946dbec wic: Remove gpt_parser 5a8bcfb wic: Remove unused 3rdparty/commands c9b5ea0 wic: Remove 3rdparty/urlgrabber ba19b60 wic: Remove unused misc code f0499a0 wic: Remove unused fs_related code 93a60f7 wic: Remove rpmmisc ac2d312 wic: Remove proxy support 29fb556 wic: Remove grabber implementation d9096a6 wic: Remove fiemap support aac3223 wic: Remove bmap support a935109 wic: Remove mic package managers f1dbd46 wic: Remove rt_util c0aa6cb wic: Remove mic chroot d212000 wic: Remove mic bootstrap bd9b934 wic: Remove packaging, config commands 36f4ede wic: Remove unused custom commands 68e6adf wic: Make exec_cmd() error out instead of warn 9636046 qemu: upgrade to 2.1 3b769f0 trace-cmd: Update to version 2.3.2 4380b1a perl-rdepends: add CPAN, CPAN::Meta requirements 47efe35 kexec-tools: reinstate 'kexec-tools' package 2917308 ubootchart: delete ubootchart recipe 23ff42e core-image.bbclass: Correct comment about packagegroups. c8aba32 gstreamer1.0-plugins-good: fix the bug for gstrtpmp4gpay b88b5b7 bootchart2: create recipe for bootchart2 a00dcf2 v86d: fix for systemd to load uvesafb module correctly 34ffa4e alsa-state: install init script only when 'sysvinit' is in DISTRO_FEATURES f0c0040 syslinux: fix reinstall error 8371105 u-boot-mkimage: fix recompile error dfc203c kernelshark: fix recompile error 78e127d kexec-tools: fix recompile error 866070c logrotate: fix recompile error 020f816 libnewt: fix recompile error 3f0bbf6 busybox: Add Upstream-Status to patch 2d77fbf sysvinit: allow stack size configuration from rcS b32b819 wpa-supplicant: use PACKAGECONFIG for ssl selection b6cdfec lz4: update to 120 0065258 boot-directdisk.bbclass: use local HDDDIR 7c872ea remake: fix build error 26c229c tzdata: update to 2014f 39d800d tzcode: update to 2014f 86afd7e ghostscript: Remove bogus gsfonts reference from DESCRIPTION 6cad939 documentation.conf: Small tweak to INITRD variable bfa36a2 code cleanup for INITRD variable handing 73c481d base-files: set dynamic COLUMNS via resize command a40db96 busybox: Make busybox connman aware 268688a oelint.bbclass: Check for ${PN} or ${P} usage 207e94d oelint.bbclass: add patch checking 7c85585 oelint.bbclass: make oelint bbclass work c3dedbe curl: remove unused patch 6fa2d82 perf: fix indentation 522a808 perf: explicitly disable libunwind 3b019ed Add doc entry for "ptest-pkgs" in IMAGE_FEATURES list 6a77a1d scripts/send-error-report: fetch /Errors/ instead of /. 2dab9e6 gstreamer1.0-omx: Remove unnecessary dependency on plugins-bad. 74f0424 kexec-tools: Create separate package for vmcore-dmesg a350f26 slang 2.2.4: fix the iconv existence checking df3d7de cups: regen configure so cups-no-gcrypt.patch has an effect 6767cc1 cairo: explicitly disable LTO support by backporting patch which removes it a0dcda8 tcp-wrappers: install /etc/hosts.allow and /etc/hosts.deny 1d75145 tcp-wrappers: fix do_install when $prefix == $base_prefix 1805ec8 formfactor: Grammar fix in recipe comment. bd7b15b test-dependencies: don't override failed-recipes.log aa87ead nss*: Replace hardcoded "/etc" with "${sysconfdir}" ce7b1b0 alsa-lib: pcm_local.h: include <time.h> to enable CLOCK_MONOTONIC a06c934 alsa-lib: fix hw_ptr exceed the boundary 9a923b9 alsa-lib: use get32_labels for multi-source aa5fa26 psmisc: Typo in fuser makes -M on all the time c91ed20 tcmode-default.inc: allow override of binutils-crosssdk 870bb8d local.conf.sample.extended: fix example for EXTRA_USERS_PARAMS 83775dc autotools: Exclude SDK_OS from autotools task signatures b521321 package: Fix darwin shlibs code 0a7530f upstream-tracking: Add various CHECK_DATE and UPDATE_REASONs for my recipes 25129a6 bitbake: runqueue: Add sceneQueueComplete event 53eaed5 package: Convert dylib handling from .la to otool c702039 package: Fix pkgdest for darwin shlibs code 55379f2 autotools: Fix warning for odctools-crosssdk 03af60e sstate: Allow switching between linux and non-linux SDK builds within the same tmpdir 34dc844 bdwgc: Upgrade 7.2d -> 7.4.2 4a22636 dev-manual: Updates for checksums and wic d283686 dev-manual: Minor fixes. e7dae57 ref-manual: Added two new FAQ entries. 152d307 dev-manual: Updated manual overview to include new QEMU chapter fb46492 dev-manual: Edits to the wic reference section. f937e05 dev-manual: Miscellaneous fixes in the newbie chapter. 3152e69 dev-manual: Created new chapter on QEMU. 5f31e28 dev-manual: Added support for new QEMU chapter. 25d7b0d dev-manual: Modified how to find checksums in the recipes 3be4af9 dev-manual: Applied review edits to the 'wic' section. 73abcb0 dev-manual: Fixed up the list of other references. 231fde5 dev-manual: Replaced "--" with &dash;&dash; throughout. 7ef076c dev-manual: Miscellaneous wic edits. e0aa8f0 dev-manual: Miscellaneous updates from the wic help text. b8a836c dev-manual: Added --fsoptions to wic 537e965 dev-manual: squashfs support added to wic section. 2a11e9d dev-manual: Created new "Plugins" section in the wic section. 1a82521 dev-manual: Updates to the creating partitioned images section. 4560e2f dev-manual: Added note and fixed a grammar spot. b1a9074 dev-manual: Patch to fix some links and references. 6ebbf03 dev-manual: Updated example "foo" recipe name used in examples. 0221f8d poky: Enable build-deps QA test bu default f401e8f bitbake: cooker: Get rid of duplicate 'import re' 70d0316 bitbake: knotty: Move second event check into a proper block 854d9e4 local.conf.sample.extended: update for preferred ABI 68eb17d bitbake: bitbake-user-manual-metadata.xml: Fixed variable flags example. 4643e6b bitbake: bitbake-user-manual-fetching.xml: Minor edits to clearcase fetcher d0dec84 bitbake: bitbake-user-manual/bitbake-user-manual-intro.xml: Fixed link 53436d9 bitbake: bitbake-user-manual-fetching.xml: Added new clearcase fetcher module. b75572d opkg-utils: Update SRCREV 7ff489d mesa-demos: upgrade to 8.2.0 and allow building without GLEW/GLU 8034d77 tune-mips*: Ensure tunes are inherited in order fb8e2a8 gcc: Fix gcc-multilib-config comparison bfb23e6 sanity.bbclass: Add ability to verify toolchain flags cade601 init-install: Skip CDROM devices during probe 112674d init-install: Strip partition number from live_dev_name 7a81bd4 init-install-efi.sh: Verify /sys based files exist before displaying them fd3d11f gcc: Upgrade 4.9.0 -> 4.9.1 a9c8767 package_manager.py: set preferred ABI for rpm 3c61104 libnl: Upgrade to 3.2.25 d468e24 libcheck: Upgrade to 0.9.14 2e880b6 lsbinitscripts: Upgrade to 9.55 87aed8a help2man-native: Upgrade to 1.46.1 c02d6b4 oeqa/utils/decorators.py: add import os 81d7adf qemu.inc: Allow optional use of pkg-config from the HOST 1fb8fdb gstreamer1.0-omx: upgrade to 1.2.0 b819924 gstreamer1.0-libav: upgrade to 1.4.0 d36561c gstreamer1.0-plugins-ugly: upgrade to 1.4.0 273c6ad gstreamer1.0-plugins-bad: upgrade to 1.4.0 4832b94 gstreamer1.0-plugins-good: upgrade to 1.4.0 23808f9 gstreamer1.0-plugins-base: upgrade to 1.4.0 7bdfef3 gstreamer1.0: upgrade to 1.4.0 593f00d i2c-tools: Uprev to 3.1.1 704dd12 alsa-lib: Add upgrade path for alsa-dev 3d1c670 python-smartpm: fix option typo of command channel c07efbd python: python-pycairo: add python-pycairo-native eecd637 image.bbclass: tweak read_only_rootfs_hook to also support systemd based systems 713f1fd systemd: add volatile-binds to RDEPENDS db15e2d volatile-binds: add recipe 3b19f90 INITRD var: make it a list of filesystem images 463c9f4 wic: Various typo/grammar fixes to wic help text b7528a4 wic: Add squashfs to --fstypes documentation dcf7d98 wic: Add documentation for --fsoptions 3e237b1 wic: Fix plugin help text e517b08 image-vmdk.bbclass: use sda rather than hda 2ca9406 gcc-4.9.inc: fix parallel building failure 2d16601 populate_sdk_base: Fix grep command usage on old hosts d738109 selftest/buildoptions.py: fix QA_WARN test and add more output when failing 062bd81 libx11: Add missing NULL check 6a7b989 cml1: correct diffconfig output format 21b1cd1 nss: CVE-2013-5606 0685207 pulseaudio: fix CVE-2014-3970 c6a57f7 base-files: fix up misleading dir grouping names for lsb dirs caea71f base-files: remove strange 2775 perms from dirs like /home 97cc497 base-files: actually install 2775 dirs as 2775, not 2755 3b1beeb libav: fix PACKAGECONFIG for theora and libvorbis 931fd01 autoconf: remove automake patch enforcing --foreign addeef1 lib/oe/rootfs: Improve error message whitespace cdb9b96 directfb-examples: Fix building with new autoconf 7952151 populate_sdk_deb: Fix non x86_64 SDK builds 4310088 apt-native: Add missing DEPENDS on db-native and curl-native 848cc27 populate_sdk_base: Include do_rootfs depends for do_populate_sdk 09def7a wic: do not overwrite autogenerated /etc/fstab with original too early 5627590 util-linux: break out new package util-linux-findfs 7cb16c8 util-linux: break out new package util-linux-hwclock 89d1788 bitbake: codeparser cache improvements a05435f bitbake: cache: Optimise invalid cache file handling 97f4d8f bitbake: cache: Don't reload the cache file since we already have this data in memory e2e8231 insane: Use a warning for FILEEXTRAPATHS issues for now 14a7cde lib/oeqa: Fix accidental revert of code 73ce04e wic: squashfs partition support 5e7de54 wic: --fsoptions handling 68bc4eb insane: add checking to standardize how .bbappend files do FILESEXTRAPATHS 8e26ab7 oeqa/rutime: Added testcase decorators for automated runtime tests. Also added LogResults decorator for oeTest class in oetest.py 242ccee alsa-lib: remove non PN based -dev packages 65e8bc4 cogl-1.0: Add libcogl-path package 419daaa autotools: Improve configure dependency code for finding m4 files c1b244e wget: fix build error with gnutls 3754726 shadow-securetty: add freescale lpuart da75a9a python: fix _json module arbitrary process memory read vulnerability 33a1a17 nspr: Fix for CVE-2014-1545 f6507d3 gcc-4.9.inc: fix parallel building failure 30ef7b2 perl: fix rebuid failed while ${CC} changed 5a7f510 autotools.bbclass: Enhance sed regexp to avoid extra subshell 984f034 oeqa/runtime: Added skipModule import for test modules that use it. 0c4dd0a oeqa: Refactor test skipping decorators to use the unittest result object 0565d8b gstreamer1.0-plugins-good: add missing dependency on libcap 02a15c0 gst-plugins-good: add missing dependency on libcap 8fdee05 pulseaudio: add missing dependency on libcap e9008b0 debian.bbclass: inherit package e2bd60a base-files: Don't export TZ if /etc/TZ exists 35f3f10 glib-2.0: use ptest-gnome 403aa97 ptest-gnome: add ptest helper for GNOME packages 050cbac shared-mime-info: upgrade to 1.3 c76ee2b xf86-video-evdev: upgrade to 2.9.0 7fa1294 libevdev: add new recipe (needed by xf86-input-evdev) 9fe836c libxi: upgrade to 1.7.4 99bffeb curl: Upgrade to 7.37.1 0eed506 cups: Upgrade to 1.7.4 2d7e6a0 binutils-cross-canadian: Explicitly DEPEND on nativesdk-flex, we require it anyway 63df03d qemu: Use PACKAGECONFIG for libusb to avoid floating dependency c6211d8 gcc-multilib: Simply/fix MULTILIB_OPTIONS handling 42470aa lib/oe/classextend: Avoid early expansion of PR values aee3b53 cross-canadian: Copy target_ definitions from cross.bbclass d802443 populate_sdk_base: Extend TOOLCHAIN_TARGET_TASK to include multilib variants 8aeefd4 libomxil-0.9.3: Remove versioning for bellagio .so files. c489b13 Revert "libomxil-0.9.3: Remove versioning for .so files." df214ad allarch: Generate same package for MIPS and non-MIPS targets 80cfdfe libice: fix non-deterministic libbsd dependency 5f496b2 kern-tools: adjust to full history meta-data bc76ecc linux-yocto/3.14: libata and generic CPU modalias handling 4033ca8 kernel: don't copy .so.dbg files into kernel source install 366e7a6 linux-yocto-dev: bump to v3.16+ d332ad7 linux-yocto: x86_64: expand kernel stack to 16K 32a20c3 lttng-modules: re-enable ARM builds 1681c88 lttng-modules: update to 2.5.0 d90124c linux-yocto/3.14: vexpress and MVM firmware support a202f8a insane: Add build depends check 686037c ref-manual: Updated note in the "CentOS Packages" section. 8f52c69 bitbake: bitbake: remove choices for dump-signatures 1306f26 package_ipk.bbclass: Support hierarchical feed 1529ef0 bitbake.conf: move BB_NUMBER_THREADS and PARALLEL_MAKE to bitbake.conf f833195 bitbake.conf: move BB_NUMBER_THREADS and PARALLEL_MAKE to bitbake.conf 91c845c gst-ffmpeg: Add CVE patches b7f8fde serf: specify LIBDIR to avoid install issue 78a38c8 perf: remove CFLAGS override be7eebe net-tools: ifconfig interface:0 del <IP> will remove the aliased IP on IA64 94b2718 toolchain-script: Really fix CANADIANEXTRAOE issues 3134ae1 sanity: Check for setgid/setuid TMPDIR 7c11b32 initscripts: fix bashism in bootmisc.sh 0cc5fa5 squashfs-tools: Add nativesdk in BBCLASSEXTEND 1330419 sysvinit: bootlogd: ensure /var/log/boot is created in volatiles 8076ab2 sysvinit: bootlogd: Don't run savelog if it's not installed 48641d5 sysvinit: bootlogd: Honor VERBOSE 063ee04 wic: Remove fstype from mkefidisk canned wks aec05b6 wic: Add help entry for wic kickstart a0e7d58 wic: Fix bad directory name in bootimg-efi 970de1b pango: upgrade to 1.36.5 252b7ee libxft: upgrade to 2.3.2 4bdd18e xcb-util-wm: upgrade to 0.4.1 93a31df xf86-video-vmware: update to 13.0.2 9c3aac1 gdk-pixbuf: upgrade to 2.30.8 c3601c8 libice: upgrade to 1.0.9 2c74aca gnome-common: upgrade to 3.12.0 4bad95b at-spi2-atk: upgrade to 2.12.1 da056f0 inputproto: upgrade to 2.3.1 84199cc libxfont: upgrade to 1.5.0 376ed31 fontsproto: upgrade to 2.1.3 4071033 kernel-module-split.bbclass: Allow autoloading multiple modules or modules where basename != module name 2c4d82b gstreamer1.0-plugins-base: get caps from src pad when query caps in gsttagdemux 5d7b5bb gstreamer1.0-plugins-base: do not change eos event to gap event if no data has passed to streamsynchronizer. 8040b2d gstreamer1.0: pass rate of input segment to output segment in gstbaseparse. dcd0deb gstreamer1.0-libav: avoid using non-growable pool for videodec 4fc9259 gstreamer: fix a bug for gstbaseparse 036d9ab gst-plugins-good: fix integer overrun for mulawdec fd1aacc adt-installer: fix sed input file error dc6a9a9 systemd: change dependency relationships 0270b0e shadow: fix the behavior of su cfa23a2 mkefidisk.sh: Add signal handling ce38579 mkefidisk.sh: Fix redirection to 1 acfe054 busybox: mdev: Ensure /dev/initctl exists after tmpfs mount 034790d busybox: mdev: Use mdev.seq 67e1a52 busybox: mdev: Make /dev/shm world-writable c294bbe mkefidisk.sh: Remove initrd entry for gummiboot 6ac058c connman: Fix PPTP VPN plugin QA issue 56bfda2 image.bbclass/rootfs.py: add variables to rootfs[vardeps] f4456df bitbake: toasterui: fixing event.data clash 37d2066 bitbake: toaster-requirements.txt: document requirements for the python environment 1b9175a bitbake: toaster: properly set layers when running a build 6e71c27 bitbake: toaster: add project main edit page 8a3789a bitbake: toaster: move bldcontrol initial_data fixture to code 5aba3d7 bitbake: toaster: improved Project models 6cfb76f bitbake: toaster: add fields for sourcedir and builddir paths 5ba68f3 dev-manual: Added the section on "Creating Partitioned Images" b72dc51 ref-manual: Provided canonical GP license names. 2dec5d5 ref-manual: Replace a couple old references to "task-*" d77c4cb kernel-dev: Fixed a wording typo. 653b557 bitbake: "per-package" should say "per-recipe" 8b7116d bitbake: Updated the the example 'bitbake -h' output to match the actual output, which has been recently patched to fix the '-S SIGNATURE_HANDLER, --dump-signatures=SIGNATURE_HANDLER' option. 5bcda42 bitbake: fetch2: Add module for ClearCase (ccrc://) 13a03f2 bitbake: command/runqueue: Fix shutdown logic 4db62df wget: Remove unneeded DEPENDS line ba3f990 kernel-dev: Fixed typo ca4e42a kernel-dev: Fixed link to BitBake command: 6aeed29 ref-manual: Updated some glossary variables: ed3cd02 dev-manual: Removed not to the PTEST_ENABLED variable. 93ad63c ref-manual: renamed "do_package_write" to "do_package_write_*" 8e280b4 yocto-project-qs: Updated the note on working with proxies. ab3e880 ref-manual: Fixed grammar problem in FILES variable description. 1b7c45e ref-manual: Modified licensing verbiage for GPLv3 4767787 ref-manuala: Updates to support links to BB manual 1fc9548 ref-manual, yocto-project-qs: Fixed some references to BitBake Manual. 0558a37 alsa-tools: Disable use of GTK+ when not using X11 8933810 buildtools-tarball: Add wget to buildtools-tarball ec70845 shadow: Add PACKAGECONFIG for acl/attr 0ef3734 libomxil-0.9.3: Remove versioning for .so files. 231c737 bitbake: bitbake: update help message for dump-signatures d74b882 bitbake: bitbake-user-manual-metadata.xml: fixed some example whitespace issues 335defe bitbake: bitbake-user-manual-metadata.xml: KERNEL_FEATURES example updated. c723fa0 bitbake: bitbake-user-manual-metadata.xml: Fixed whitespace c08d724 bitbake: bitbake-user-manual-metadata.xml: Removed fakeroot from list eb169fe bitbake: bitbake-user-manual-metadata.xml: Added second conditional metadata example. 49627bb bitbake: bitbake-user-manual-metadata.xml: Adding some flag examples. e83032c bitbake: bitbake-user-manual-metadata.xml: Edits to some operators af4f1f4 bitbake: bitbake-user-manual-execution.xml: Minor edits to execution chapter. 696973a bitbake: bitbake-user-manual-intro.xml: More edits to the intro chapter. 4df50d3 bitbake: bitbake-user-manual-intro.xml: Minor edits to start of intro chapter b62b682 bitbake: bitbake-user-manual-metadata.xml: Replaced "populate_staging" 435e425 bitbake: bitmake-user-manual-fetching.xml: Added transportuser parameter for SVN c270e24 poky.conf: Catch up with qemu-config rename -> packagegroup-core-device-devel 4d2ac6f rootfs: Remove the extraneous install directory bcadbb6 pseudo: uprev to 1.6.1 5be57ba kernelshark: Remove trace-cmd from the kernelshark package e26aae7 libatomics-ops: Extend to nativesdk c79b452 grub_git: bump version, remove patch 551e456 xf86-video-intel: disable non-deterministic tests for libX11 ee2b26f qemu: security patch for CVE-2014-3471 348102a oprofile: backport two patches to support e500mc/e6500 91bafd5 strace: fix 64 bit process detection ece74df python-numpy: add support for powerpc64 architecture a237888 insane.bbclass: avoid QA errors for n32 kernel 478dbd3 diffstat: update to version 1.59 01e556c gcc: update *LIBC_* linker relocation reglex c0585ca openssh: use pidfile in initscript cd9ab37 eglibc: rewritten tzselect as posix sh and move it to tzcode package 8673b60 busybox: enable CONFIG_FEATURE_AWK_LIBM by default c9a16c5 default-distrovars/multilib: update license whitelists to use canonical names ba197e6 license.bbclass: canonicalise licenses when dealing with INCOMPATIBLE_LICENSE a9710bc scripts/test-remote-image: use the scriptpath module 03e2fb2 scripts/oe-selftest: add command-line parsing and options 172c560 mkefidisk.sh: Reduce output and add verbose flag 049100a mkefidisk.sh: Make the rootfs copy the last step db162c6 mkefidisk.sh: Add die() and cleanup() routines fd8a230 mkefidisk.sh: Improve logging da68264 mkefidisk.sh: Copy the EFI dir recursively 88045c9 mkefidisk.sh: Add gummiboot support 7f595ea mkefidisk.sh: Add mount error checking 3213ab4 mkefidisk.sh: Use all caps for volume names b163ba1 initscripts: Add support for /etc/default/urandom 0327db6 initscripts: make hostname.sh coreutils-compatible 82ef864 initscripts: Use current date as an additional source of entropy 769b0f3 initscripts: parametrize random seed file location 00017b4 initscripts: save /etc/timestamp with seconds accuracy b573ae8 initscripts: bootmisc.sh: Make sysctl -p honor VERBOSE 779f845 rpm: compile rpmqv.c instead of rpmqv.cc 6cb4ba9 libgpg-error: fix pkgconfig.patch 63ee154 grub-core: fix endianness problem 7d1fed2 lz4: update to latest c71a1e1 common-mingw: force ac_cv_func_mmap_fixed_mapped=no 6403cd0 populate_sdk_base: ensure that filenames with empty space character are handled f07c17d python-distribute: add nativesdk to BBCLASSEXTEND d984fcf libdrm: enable freedreno experimental support 493e1db libdrm: upgrade to 2.4.54 449c535 subversion: Disable make install parallelism 04e45f0 license.bbclass: fix indentation in python function 1f45232 subversion: neon support was dropped, switch to serf 93bc890 serf: Add new recipe (needed by subversion for http support) 012c5c1 libatomic-ops: Add BBCLASSEXTEND for native (to support bdwgc-native) 0662aa8 bdwgc: Add PACKAGECONFIG for libatomic-ops d66c567 oeqa/controllers/beaglebonetarget.py: fix deploy when kernel file is a broken link 929e48e oeqs/selftest: Added test case decorators for toaster 1bec8d6 gmp: use PACKAGECONFIG to address readline dependency 46ab196 flac: explicitly disable checking for nasm 14735be oeqa: fix return status in pam.py to match shadow-4.2.1 012a572 shadow: upgrade from 4.1.4.3 to 4.2.1 3ab35e4 man-pages: Upgrade to 3.70 9df9a8c libpod-plainer-perl: Upgrade to 1.04 704a4ba gnupg: Upgrade to 2.0.25 61d4e80 lzo: Upgrade to 2.08 774c339 squashfs-tools: Upgrade to 4.3 5effba2 kmod: Upgrade to latest git 4971feb kbd: Upgrade to 2.0.2 58e3c4d qemu: exclude some ARM EABI obsolete syscalls 97899bc eglibc: check for required distro features d418bed python: Forcibly disable tk fe14f99 xserver-xorg: Fix build determinism problem a0b99a8 gnutls: Fix floating libidn dependency f4bb0d0 libpcap: Fix floating dbus dependency 9837b8e fontcache: Fix build dependency errors 3363638 neard: Fix typo in patch leading to parallel make race 490431f btrfs-tools: Upgrade 3.12 -> 3.14.2 a00faba libconvert-asn1-perl: Upgrade 0.26 -> 0.27 289cf8d python-pycurl: Upgrade 7.19.3 -> 7.19.3.1 76f75e9 subversion: Upgrade 1.7.7 -> 1.8.9 24bee50 cross-canadian: Fix shlibs directory after recent shlibs changes da223ec nasm: Update 2.11.02 -> 2.11.05 bb8573b powertop: Upgrade 2.5 -> 2.6.1 ba34cfc gccmakedep: Upgrade 1.0.2 -> 1.0.3 598357b mdadm: Upgrade 3.3 -> 3.3.1 eaae172 gdb: Upgrade 7.7 -> 7.7.1 9996548 python-scons: Upgrade 2.3.0 -> 2.3.2 c882d7f python-docutil: Upgrade 0.11 -> 0.12 b56d2f5 pkgconfig: Drop version from RPROVIDES 391704d libpcap: Avoid libpcap build error when libnl1 is involved 03c6fd0 ltp: use "foreign" automake strictness 68d1ee3 oprofile: use "foreign" automake strictness 9406b1f libmad: use "foreign" automake strictness 9da7e68 which: use "foreign" automake strictness d779dce libid3tag: use "foreign" automake strictness 36360f2 bzip2: use "foreign" automake strictness 93f54c0 lz4: Add self to maintainers list cd843b3 gstreamer1.0-omx: Use variables for CORE_NAME processing. 7023edc perl-rdepends: Add perl as perl-misc/${PN}-pod runtime dep 3fbfc6d setserial: add missing depends on groff-native fd42fc4 libxml2: enable catalog support fc4c43a xserver-xorg.inc: add missing dep for xmlto 53b68e0 xorg-lib-common.inc: add missing dep for xmlto c61cc3c xorg-proto-common.inc: add missing dep for xmlto 03aa23a alsa-utils-native: add missing dep for xmlto c95dec0 xmlto: add version 0.0.25 605e1f3 docbook-xml: add docbook-xml-dtd4 38d438c docbook-xml: add docbook-xsl-stylesheets 1.78.1 d2c59d3 scripts/test-remote-image: add --skip-download option eb86725 file: remove dump and filesystems 4c78b0a file: fix perl reported as awk 2e822bf git: update to v2.0.1 bb0b765 classes/insane: Show QA check name 5b07620 Remove long-deprecated "task-core" backward compat for packagegroups. be0fea1 pseudo_1.6.0.bb: uprev to pseudo 1.6 037aa4a groff: fix PERLPATH 562cc69 xorg-driver: use PACKAGEFUNCS instead of populate_packages_prepend 2db009d default-versions: remove xf86-video-intel 7b455c5 xf86-video-intel: upgrade to 2.99.912 eca8a56 wic: Error on zero-sized partitions d08c2ce wic: Add kickstart reference to help system d8b65a5 wic: Add wic overview to help system 83e5c09 wic: Add vfat support f398687 wic: Error on parted non-zero error code 1dcdd87 bitbake: toasterui: fix build - project identification e7fa0c3 bitbake: toaster: new project page implementation d19b784 bitbake: toaster: whitespace fix 9cfa66b bitbake: toaster: add automated login in new project page cff1935 bitbake: toaster: add project pages 6b62a0f bitbake: toasterui: Show in the log that ToasterUi is ready to receive events. c35b678 bitbake: toaster: automatically enable applications 5790b60 bitbake: toaster: automatically discover urls.py files 1712c71 bitbake: toaster: remove strftime calls in filters 9e99bcf insane: Ensure do_package_qa happens after do_packagedata 1cb9f7b lib/oe/image.py: check the rootfs size against IMAGE_ROOTFS_MAXSIZE d836437 oeqs/selftest: Added test case decorators for the rest of selftest testcases except toaster 79dae06 xserver-xorg.inc: add PACKAGECONFIG for xmlto e56bc99 xorg-lib-common.inc: add PACKAGECONFIG for xmlto 91c7cba xorg-proto-common.inc: add PACKAGECONFIG for xmlto 8d7f9e6 alsa-utils: add PACKAGECONFIG for xmlto 4febf20 cups.inc: Delete obsolete "PROVIDES" line. d8ef355 wic: Add general 'plugins' help topic f2ab619 wic: Add dummy subcommand and usage strings b5dceca wic: Print error if a partition specifies an invalid --source 1908751 wic: Add help text for 'wic list source-plugins' 40769b7 wic: Add command to list available source plugins ae33bda rpm: disable -Wno-override-init 68df093 libnss-mdns: replace hardcoded /etc with ${sysconfdir} aa460d8 libnss-mdns: support ipv6 in lookups 6156379 libpcap: fix depends on libnl ba46e51 Move boot media to /media/realroot for easy access after boot. 360171c package.bbclass: add a stub implementation of package_name_hook 28270fc bootimg.bbclass: Add parameter to specify HDDIMG volume ID 2f7c92c init-install-efi.sh: improve hard drive searching process ae724e4 init-install-efi.sh: fix to handle the boot partition correctly 90362a4 gcc: Ensure c++ includes are in /usr/include/c++/${BINV} 76940ed builder: removed setting of BB_NUMBER_THREADS and PARALLEL_MAKE d3a3f4b weston: make webp explicitly configurable 4956ae7 cogl-1.0: update to 1.18.2 7b861d0 init-install.sh: Verify /sys based files exist before displaying them 949bf15 base-passwd: install passwd and group atomically 7e6eeee kernel.bbclass: update KERNEL_IMAGE_MAXSIZE 0903a6b gzip: move uncompress bin to avoid cross-fs link e35d626 package.bbclass: Generate runtime-rprovides data 09898d6 insane: Split do_package_qa into a separate task (from do_package) 3ead62a package.bbclass: Rewrite shlib_provider handling to include RPATH db788ac package.bbclass: Improve shlibs pkgdata file format a20cc90 package.bbclass: Rewrite sonames data structure to include library path adb89b1 package.bbclass: Improve shlibs needed data structure 6879c3c maintainers.inc: add info for libical 4730941 sanity.bbclass: Update minimum git version to 1.7.8 6686f75 adt_installer: not download repo page 018e85e adt_installer: check the result of updating opkg f629045 adt_installer: fix syntax error 82999c1 adt_installer: remove unnecessary variable 5d179f6 binconfig-disabled: add a default value and comment for BINCONFIG 9192fc1 xserver-xorg: fix xshmfence autodetection 6bb1bef xserver-xorg: add PACKAGECONFIG for libunwind 5a194a3 bluez5: upgrade to 5.21 e206dfa libcroco: disable /usr/bin/croco-6.0-config 0a6dcf2 libcap: use PACKAGECONFIG for attr and pam configurations 42806c7 groff: fix bindir transaction error 5f27f55 rpm_5.4+cvs: Add RPM community tree for future development 7bf5341 package_rpm.bbclass: Should be using HOST_* not TARGET_* f171799 rpm: Replace patch with backport from SCM version of RPM5 fe483ca rpm: Upgrade to 5.4.14 107ef51 db: Add version 6.0.30 e73deac perl, perl-native, perl-ptest: upgrade from 5.14.3 to 5.20.0 93d77b6 kexec-tools: upgrade to 2.0.7 02cdce9 libtasn1: update to 4.0 3d58c59 gnutls: update to 3.3.5 c8a68bb db_5.3.*: Upgrade to 5.3.28 a5531a2 bitbake: fetch2/svn: Add transportuser parameter 0538574 bitbake: lib: fix no newline at end of file edf8cb1 bitbake: toaster: fix no newline at end of file 359f087 yocto-bsp: Drop GLIBC_ADDONS setting 05c47cc yocto-bsp: Update qemu inclusion lists 868a234 grubtarget.py: Change 'test' GRUB entry selection method 581a06a meta-yocto-bsp: oeqa/controllers: add GrubTarget 57bbb1a Revert "meta-yocto-bsp: oeqa/controllers: add GrubTarget" b21f799 build-appliance-image: Update to master head revision cc7d457 libxml-parser-perl: fix do_compile failed with unrecognized option '-Wl, -O1' 301c3f9 openssh: avoid checking empty passwords to mess up with PAM modules 9674819 autotools.bbclass: remove autotools_set_crosscompiling fd4eca0 scripts/contrib/verify-homepage.py: add a script to verify HOMEPAGE ab1dce9 bitbake.conf: automatically add libexecdir/BPN/.debug to -dbg cc49165 glib-2.0: silence QA warnings about libraries outside ${libdir} ae03111 Added testcase decorator to use in logging. Added class decorator LogResults that outputs test results in separate log file. 52a6d20 elfutils/elfutils-native: Fix patching generated files 2c59db6 lib/oe/package_manager.py: Fix _pkg_translate_smart_to_oe function 70c933e libav: add PACKAGECONFIG for theora, libvorbis, speex and openssl 5f1f863 gtk+: Add PACKAGECONFIG for directfb aa76de9 adt_installer: Fix real envrionment script issues 6ebd0a8 toolchain-scripts: Add handling for CANADIANEXTRAOS 64e2bad meta: fix no newline at end of file 3bc357f runqemu-extract-sdk: normalize paths to improve output fbe1291 qemu: fix qemu-native pkg-config paths 5aec84d init-install-testfs.sh: add '--hotkey x' to 'test' menuentry 49b416d bitbake: templates: Added newline character to end of script. 7043956 bitbake: bitbake-user-manual-ref-variables.xml: Edits to OVERRIDES variable. 0b96a4b bitbake: bitbake-user-manual-execution.xml: Minor fixes. 538cbf4 bitbake: bitbake-user-manual-intro.xml: Minor fixes mostly grammar adjustments. ac8ac17 bitbake: bitbake-user-manual-fetching.xml: Small fix in Git Fetcher 3a7258a bitbake: bitbake-user-manual-execution.xml: Typo and grammar fixes. 00ade7e bitbake: bitbake-user-manual-execution.xml: Edits to "Providers and Preferences" 0736649 bitbake: bitbake-user-manual-fetching.xml: Small wording change. 157c80f bitbake: bitbake-user-manual-ref-variables.xml: Edits to PROVIDES variable. 41b46d7 bitbake: bitbake-user-manual-style.css: Added permalink style for display d3e1ce6 bitbake: bitbake-user-manual-customization.xsl: Added support for variable permalinks. dd09b07 bitbake: template: Added XSL template to support variable glossary permalinks. ca77f37 bitbake: bitbake-user-manual-intro.xml: Edits to "Obtaining BitBake" 296bb74 bitbake: bitbake-user-manual-intro.xml: Basic proofreading, grammar fixes. 1adedec scripts: fix no newline at end of file c8391d0 ref-manual, yocto-project-qs: Fixed required Git to 1.7.8+ d321a50 template: Added new line at end of file so vi does not throw error. 5bdb231 templates: Added new line to avoid vi save warning. 8c26482 ref-manual: Added USE_VT variable description. 9329d7c ref-manual: Added SYSVINIT_ENABLED_GETTYS variable description. cc8c7da ref-manual: Added the INITRD_IMAGE variable description. 8d0d487 ref-manual, bsp-guide: Added cross-references for two variables. 980ad4e ref-manual: Added the LICENSE_FLAGS_WHITELIST glossary description. 68bd063 ref-manual, bsp-guide: Added several cross-references to LICENSE_FLAGS. a53950a ref-manual: Added the LICENSE_FLAGS variable description. 08d68e5 ref-manual, dev-manual: Updates to support PTEST_ENABLED. 2284771 ref-manual: Edits to INITSCRIPT_PARAMS variable. 11bf70b dev-manual: Fixed a couple typos in the Template section. c74284d ref-manual: Some minor fixes to the QA Checks chapter. 695946e ref-manual: Edits to OVERRIDES variable. 0a1d343 ref-manual: Fixed link back into the BB manual. f8d3114 ref-manual: Edits to PROVIDES variable. c5ca7cd mega-manual: Added support for variable permalinks in the glossary. 9eb3e85 documentation: Added permalink display styles to CSS files. 6b5398f ref-manual: Added support for variable permalinks in the glossary. f47e967 template: Added an XSL template to support glossary variable permalinks c13d40a ref-manual: Added the BASE_LIB variable to the glossary. ece1d1a ref-manual: Added TUNE_PKGARCH_tune to the variable glossary. 0a45b37 ref-manual: Added ABIEXTENSION variable to the glossary. 9efc700 ref-manual: Added TUNEABI_OVERRIDE and TUNEABI_WHITELIST to glossary. 5e63079 ref-manual: Added TUNEABI to glossary. 359b9f4 ref-manual: Added TARGET_CC_KERNEL_ARCH variable to glossary. 0d287cd ref-manual: Added TUNECONFLICT[feature] to glossary. 2123c4d ref-manual: Added TUNEVALID[feature] variable to glossary. 81a065b ref-manual: Added three new tuning variables to glossary. e2f04f4 ref-manual: Added TUNE_LDARGS and TARGET_LD_ARCH variables. 590b6cf ref-manual: Added TUNE_ASARGS and TARGET_AS_ARCH variables. 1c0229e ref-manual: Added TUNE_ARCH variable and edited TARGET_ARCH. a548944 bsp-guide: Fixed typo. 2fb201e profile-manual: Fixed bad title. 01af798 dev-manual: Fixed a mult-line <ulink> cross-reference 418af20 mega-manual.sed: Added line to process profile-manual. 58744f8 groff: Fix build on Fedora 17 for 1.18.1.4 ffd4e50 gawk: fix optional dependency mpfr 8a18578 groff: remove redundant code snippet 0ed5a13 python3: fix builtins imports 247c9a1 adt_installer: Fix sed file not found error 9e1c869 oeqa/selftest/_toaster.py: fix 'IndentationError' issues 676c1f5 oeqa/selftest/toaster.py: renamed to _toaster.py 6b5484d Revert "libusb: add missing build dependency on udev" 61ab649 classes/kernel: Use full path for symlink in update-alternatives. ddb70af populate_sdk_base: Remove confusing echo b0a9f30 populate_sdk_base: add auto-completion in setup 4d96116 classes/report-error: tweak summary message 20561ed libusb: add missing build dependency on udev dbb4c73 test-dependencies.sh: Return non-zero return code when there was some failure detected 4e2656d sstate-diff-machines.sh: Return non-zero return code when there was some failure detected 442efc3 patch.bbclass: unset TMPDIR after use 0ae5aad recipes-devtools: fix segfault in lib32-gcc with "." multilib_dir 184dddf initrdscripts: Try to boot if boot label is unknown 946fb18 distutils/distutils3: Fix bashism 68824d9 u-boot-fw-utils: install config file c5713fe createrepo: RDEPENDS on libxml2-python a3cbd2d sudo: upgrade from 1.8.10p2 to 1.8.10p3 8eea757 initramfs-framework: get rid of udev-utils d3f11f8 systemd: remove udev-utils, move 'udevadm' to udev package 9bb5c74 udev: remove udev-utils, add 'udevadm' to udev package 2ecb899 udev-cache.default: set PROBE_PLATFORM_BUS to "yes" by default e508220 udev: update init script for conditional probing of platform bus 3da0162 own-mirrors: Add gitsm:// mirror support b7c077a gtk-doc: Add pkgconfig inherit c3c1ceb libsdl: Convert to use pkg-config in internal m4 macros 0f182ed gst-openmax: Add missing pkgconfig inherit 94dbe85 lib/oe/package_manager.py: Add processing for alternative SDK_OS e110809 gcc-cross-canadian: Add configure-target-libgcc d9cdeac populate_sdk: Fix TOOLCHAIN_TARGET_TASK_ATTEMPTONLY implementation 03679b7 classes/package_rpm.bbclass: Fix SDK Suffix reference 9729482 curl: Convert CURLGNUTL to PACKAGECONFIG 224a183 ca-certificates: Update to 20140325 2f9fd47 mobile-broadband-provider-info: Update SRCREV 0edf844 man-pages: Update to 3.69 4bbfa0d xcb-util-renderutil: Update to version 0.3.9 6e392ab curl: Update to 7.37 ee14096 gnupg: Update to 2.0.23 9624793 liburcu: Update to 0.8.4 c23e597 libusb1: Update to 1.0.19 1bcd736 sqlite3: Update to 3.8.5.0 02a6b7b u-boot: Optionally deploy an environment or script file f3d2e32 cmake.bbclass: restore OECMAKE_SOURCEPATH 540b7a1 binutils: Add fix for recent patch on older gcc ad07178 binutils: Apply the proper fix for PR 16428 7f6a92b oe-pkgdata-util: fix help text 50264f7 list-packageconfig-flags: improve option parsing 1ed4c5d list-packageconfig-flags: filter out doc and defaultval varflags 2b4e150 scripts: consolidate code to find bitbake path 3c7b5ec syslinux: fix isohybird overflows on 32 bit system cc480ea nfs-utils: fix the --with-statdpath= flag df7f584 gummiboot.bbclass: Ensure MLPREFIX is applied to depends flag 6d20145 grub-efi.bbclass: Ensure MLPREFIX is applied to depends flag e5b5239 syslinux.bbclass: Ensure MLPREFIX is applied to depends flag cef0d82 eglibc (2.19): fix hardcoded /sbin path d0f01d8 initscripts: update populate-volatile.sh 953b01e nss-3.15.1: fix CVE-2013-1739 b2aa82c mesa.inc: remove '-' suffix in substitution of package names f197918 dbus-test: fix incorrect checksum d340865 mkefidisk.sh: Allow symlink for device 1f0817c iproute2: upgrade to 3.15.0 135ad14 harfbuzz: upgrade to 0.9.29 0a4c876 bluez5: upgrade to 5.20 e612e18 scripts/test-remote-image: add value check for rootfs fstype, change method name used. 7b45316 oeqa/targetcontrol.py: Separate the matching of supported image fstypes from the resulting value check. d7b3683 meta-yocto-bsp: oeqa/controllers: add GrubTarget 809350a init-install-testfs: create signature file for master image a8f453d init-install-testfs: fix typo 566cba1 oe-core/init-install-testfs.sh: do not overwrite /etc/mtab if the link already exist 94fea43 init-install-testfs: add grub serial line support 7c1a975 bitbake: toaster: Fix spacing and layout in no image files notification fee3a88 bitbake: toaster: display message if no images are generated 457091d bitbake: toaster: Add performance testing script 7ccbea9 bitbake: toaster: refactor the target page f3d0846 bitbake: build.py: Ensure shared work siginfo files are written to the correct location 3df8773 sstatesig: Add try/except around the stat calls 2fcaad2 sstate: Fix shared work preconfigure task handling d95ada9 poky.conf: Add gitsm PREMIRRORS 8afa4e7 local.conf.sample: Add sdl to nativesdk qemu PACKAGECONFIG 5b1c329 bitbake: bitbake-user-manual-fetching.xml: Grammar, typo, and tweaks. 8be77bb bitbake: bitbake-user-manual-style.css: Removed dead .PNG file 7455139 bitbake: bitbake-user-manual: Added permalink support. c65de86 bitbake: bitbake-user-manual-customization.xsl: Removed stale TOC variable. d87cb56 bitbake: bitbake-user-manual-fetching.xml: Edits to the Git Submodule fetcher section. 77166a2 bitbake: bitbake-user-manual-fetching.xml: Added new Git Submodule Fetcher section. 655e2ba dbus: don't override EXTRA_OECONF dae258a kernel-module-split: Fix KERNEL_MODULE_AUTOLOAD handling 2934b25 lttng-modules: update to 2.4.1-stable latest 3d97232 ref-manual: Edits to several tasks that do a bit of "cleaning" d785a16 dev-manual, yocto-project-qs: New section on working with source files. 45a1c42 kernel-dev: Edits to "Working with Out-of-Tree Modules" 5112dbd dev-manual: Edits to "Creating a Custom Template Configuration Directory" 99caeda ref-manual: Added new section on general migration points. 7dd70a8 ref-manual: Corrected wrong class name. daf8183 ref-manual: Fixed a typo in the IMAGE_TYPES variable. 5a143d8 ref-manual: Edits to the FAQ entry on getting source and firewalls. f82569f ref-manual: Fixed a link to the BitBake User Manual. ac6bdb4 dev-manual, kernel-dev: Provides some cross-reference to "clean" stuff. cf0be83 ref-manual: Expanded on the "clean" tasks. a92fcf1 documentation: Updated style sheets to remove unused .PNG files. d994d0b ref-manual: Edits to "atom-pc Board Support Package (BSP)" section. 72beb19 ref-manual: Added ptest default build info to migrating section. 4ff75a5 ref-manual: Fixed a typo in one of the QA descriptions. ad76aa0 dev-manual: Small edit to locating the race failure. 7755de2 dev-manual: Second draft of make race section. 1daa2c0 dev-manual: First draft of new section on debugging race conditions. a19f575 dev-manual, kernel-dev, ref-manual: Updated task name usage. 50af2dc ref-manuals: Edits to the STAGING_DIR_HOST variable. 088da28 ref-manual: Edits to some STAGING* variables. 1657abe ref-manual: Added 17 new STAGING* variables to the glossary: 66e3891 template: Removed the "d:" character namespace prefix. 0f6128e kernel-dev: Updated some TOC generation XSL parameters. 0614ea7 mega-manual: Added TOC control. 1d870a7 kernel-dev: Added an embedded section. 2f7fc00 mega-manual: edits to make the TOC better. 6aaab1a yocto-project-qs: Added XSL templates to support permalinks. e62a5aa profile-manual: Added XSL templates to support permalinks. 8a072df kernel-dev: Added XSL templates to support permalinks. 3c22ec9 dev-manual: Added XSL templates to support permalinks. 705027d bsp-guide: Added XSL templates to support permalinks. 439c776 adt-manual: Added XSL templates to support permalinks. 5aa464c ref-manual-customization.xsl: Changes to custom layer to support permalinks. 90497d8 template: Added XSL stylesheets to support permalinks. 1f6c99d yocto-project-qs: Removed specific sato 50 Gbyte note b503491 yocto-project-qs: Edits to "What You Need and How to Get It" 926a8ee bsp-guide: Edits to "BSP Layers" section adding locator info. 10996cc yocto-project-qs: Fixed inconsistency with storage spec. d9ce6c7 dev-manual: Edit to "Package Archtiture" section. 65cf76c kernel-dev: Added new "Building Out-of-Tree Modules on the Target" section. 3cb0463 dev-manual: Edits to "Writing a New Recipe" 59b50ea dev-manual: Edits to "Creating a Custom Template Configuration Directory" 95a5fad dev-manual: Edits to the "Understanding Recipe Syntax" section. d57b5e5 ref-manual: Updated the do_fetch closer look for checksum behavior. a456afa dev-manual: Updates to the "Understanding Recipe Syntax" section. 84ee8c6 ref-manual, dev-manual: Updates for custom template configuration directory. fae1d7d dev-manual: Added reference to QA checks in the "Packaging" section. 1b68137 ref-manual: Reorded LSB image types to be together. f1dc91c ref-manual: Edits to the IMAGE_DEVICE_TABLES variable. a3b8282 dev-manual: Edits to the "Making Images More Secure" section. e891596 ref-manual: Edits to the "Images" section. 2aba525 ref-manual: Updates to several variables. f339491 linux-yocto/3.10: update to v3.10.43 869e3d7 linux-yocto/3.14: enable mpc8315e NAND and Yaffs2 gcc 4.9 fix 3b65c42 linux-yocto/3.4: update to v3.4.91 c9743d3 linux-yocto/3.14: update to v3.14.5 ddab1a5 linux-yocto/3.10: update to v3.10.41 053620a meta-yocto-bsps: update 3.14 SRCREVs 79e7636 mpc8315e-rdb: add the example about booting from jffs2 root e3dc178 mpc8315e-rdb: add the jffs2 image support 7eb1230 mpc8315e-rdb: bump to linux-yocto 3.14 55b4cff ghostscript: fix sizeof(GX_COLOR_INDEX_TYPE) not equal to ARCH_SIZEOF_GX_COLOR_INDEX on mips 24ca3ae ghostscript: upgrade to 9.14 1709ec7 qmmp: upgrade to 0.7.7 3ea6ebb directfb: upgrade to 1.7.4 cb25932 libnewt/libnewt-python: upgrade to 0.52.17 55c8588 controllers/edgeroutertarget.py: enable dynamical determination of rootfs type 1655fe2 controllers/beaglebonetarget.py: enable dynamical determination of rootfs type d5deca2 beaglebonetarget.py: Add support for get_extra_files() classmethod e105c82 maintainers: Update directfb/ghostscript/libnewt/qmmp ownership 02eb862 hwlatdetect: fix PV a37e09e hwlatdetect 0.85: fix variable ordering 14058e8 dpkg: Security Advisory - CVE-2014-3127 4eea29a dpkg: Security Advisory - CVE-2014-0471 c44d7b5 libtiff: Security Advisory - CVE-2012-4564 9d40ce5 libpam: Security Advisory - CVE-2014-2583 6aa8d74 package_ipk.bbclass: Support hierarchical feed 5a6f1c0 perf: add slang to the dependencies 317224e Revert "populate_sdk: verify executable or dynamically linked library" ee0f647 relocate_sdk: Skip to do relocation if the file size is less than 64 byte 9f7d599 cups: enable cups-str4402.patch d69608c dbus-native: dbus-native: do_compile failed on selinux.c on CentOS 5.10 7f8a53a kexec-tools: fix warning about patch could not be found 01fb5bb wget: use GnuTLS instead of OpenSSL 4dae6c1 directfb: fix-compilation-with-zlib.patch merged upstream c7bfbab gawk: ensure cross compiling doesn't try to remove host files f6ca3ce tzcode: update to verison 2014e b4b5443 tzdata: update to version 2014e f2a104d archiver: create dir 'B' explicitly while WORKDIR changed e95d2f2 image-vmdk.bbclass: set timeout to 1 second 48b1390 systemd: check IFLA_VLAN_PROTOCOL 362ef0a wpa-supplicant: upgrade to 2.2 763331d connman: upgrade to 1.24 79a3a77 gcc-configure-common: Address problems with gengtype c56c9a2 kernel-module-split: Add support for KERNEL_MODULE_AUTOLOAD and KERNEL_MODULE_PROBECONF 3476a49 binconfig-disabled: Add class and use 3a88df9 alsa-tools: Add missing pkgconfg dependency f736833 maintainers: Update package ownership 5cc9702 neard: fix more parallel build issues a08ef9a native.bbclass: Properly define directories 6ad8d64 bitbake.conf/qemu: Move QEMU_OPTIONS to qemu.bbclass 0404123 qemuwrapper-cross: Use QEMU_OPTIONS 7b0e2e9 bitbake.conf: Add QEMU_OPTION for ppc7400 as used by qemuppc ce4cd2c git: don't hardcode the full path to perl 9cfd10d buildstats-summary.bbclass: Import useful bbclass from meta-mentor 62cf222 git: revert to wrapper based relocation 5d6ffdc busybox: handle syslog related files properly a7d0c85 curl: control ipv6 support based on DISTRO feature d76e718 gstreamer1.0-rtsp-server: depends on libcgroup and gstreamer1.0-plugins-base 634c19e stat: use update-alt for stat bcef589 e2fsprogs: use update-alt for chattr 03def88 texinfo-dummy-native: Fix dummy scripts failing when paths contain capital Es 5452824 default-distrovars.inc: Remove unused variable 'LIMIT_BUILT_LOCALES' 88b8075 default-distrovars.inc: Remove unused variable 'LIMIT_BUILT_LOCALES' 445bd3b dbus: fixed mode if systemd service file b462621 dbus: disable usage of dbus-glib explicitly 9713dcc bluez5: Force obex.service in /usr/lib 6467fb3 elfutils: Fix debugedit failure in grub ec22f56 git: fixed typo in 'libexecdir' varname 7c7a25c scripts/test-remote-image: Add script for running runtime tests on remotely built images 5456f0e controllers/masterimage.py: Make testimage kernel naming pattern universal 4bc0206 oeqa/controllers/testtargetloader.py: add 'import os' a5aa889 targetcontrol.py: Add a classmethod to get extra files needed by the target controllers ac75630 core-image-testmaster.bb: add bzip2 to image 41d3000 masterimage.py: enable dynamical determination of rootfs type af38422 targetcontrol.py: make possible dynamical determination of rootfs type 60846a0 kexec-tools: Refine kdump device_tree sort f51c639 oprofile: Determine the root home directory dynamically 36c3e92 perf: split packging 949953d perf: fix broken shell comparsion in do_install 82fc96d nfs-utils: Do not pass CFLAGS to gcc while building 6f0eb99 sed: enable ptest support bdf7343 v4 cups: Shouldn't link against libgcrypt without using gcrypt functions d58401c texinfo.bbclass: native/cross uses dummy texinfo; target uses host's Texinfo. 0a4ba77 texinfo-dummy-native: Create recipe w/ scripts to stand in for Texinfo utils. a681558 texinfo: Use texinfo-replacement-native as an alias for texinfo-native. 51d450f rootfs.py: change the logic in _uninstall_unneeded e163522 bitbake: toaster: build control functionality 87b9927 bitbake: toastergui: fix built ETA calculation 74cd8c3 bitbake: xmlrpc: add support for token reusing c7ae6bd bitbake: toaster: add function to get the database url 3bd8e9a bitbake: toaster: create models for bldcontrol and enable it e09cb40 bitbake: toaster: initial bldcontrol application 8e0c54c bitbake: bb/utils: fix contains_any() 2261e9f bitbake: bb/tests/data.py: add tests for contains() and contains_any() 065fb5d bitbake: cache.py: print debug info when EXCLUDE_FROM_WORLD dd50dfe rpm: Fix cpio 32 bit overflow issues on 64 bit inode filesystems b5a928a bitbake: toaster: add Project class models to orm 9c3b53f bitbake: toaster: comment out bldcontrol migration command e0a3495 Revert "fontconfig: enable 64 bit file support" f365b56 update-rc.d: Allow to use different initscripts provider 0ba1d79 nfs-utils: unset CFLAGS for testlk build e922be5 oe-core/init-install.sh: do not overwrite /etc/mtab if the link already exist df956a6 oprofile: Add PTEST regression testing to oprofile 54f1528 gawk: remove dgawk and pgawk packages, merge gawk-common into gawk e1acb6d gawk: fix module paths 7d8a0af libgcrypt: fix do_configure failed 63f3c39 python-gst: link python shared library to config directory 0670dd1 xorg-font-common.inc: remove shell debug option a934aeb oeqa/utils/commands.py: add support for postconfig option aed4216 gawk: fix libexec of the old 3.1.5 version f89b331 libgcrypt: workaround ICE failure on mips with '-O -g' b5f7bb1 xorg-xserver: disable DRI3 by default 0db73b4 mesa: upgrade to 10.1.3 0219124 mesa: add build-dependency on libxml2-native 212f81d glib-2.0: fix paths to test binaries 0c8a8e8 gdk-pixbuf: fix paths to test binaries 23d8d2b openssl: fix ptests 3255d58 openssl: upgrade to 1.0.1h 66d5be2 bitbake: bitbake: show wildcard appends for bitbake-layers 36a5f66 bitbake: toasterui: fix django settings environment value 07cd9a3 bitbake: toaster: add project related models b68b74d bitbake: toaster: update toaster to run in managed mode b610aae bitbake: toaster: startup script standalone mode 05cf6fe bitbake: toaster: startup script noweb mode 89fe052 bitbake: toaster: read database settings from the environment 506b5bd bitbake: uievent: retry on handler registration failure e89db13 bitbake: xmlrpc: client - remove fatal errors a5d01e9 bitbake: bitbake: move configuration reading code 307d0e1 wic: check if BBLAYERS is valid before use 567fec4 wic: default plugin type directory should be added only once dfd9aa5 gnutls: upgrade to 3.2.15 b6ef8dc busybox: put udhcpc in background f39d876 update-rc.d/useradd: Add additional dependecies 5f0634a generate-manifest-2.7.py: Add importlib 22f422f autogen-native: upgrade from 2.18.2 to 2.18.3 7c127aa file: upgrade from 5.17 to 5.18 c2e6395 grub-2.00: remove our 40_custom ec53bfd grub-2.00: remove our 40_custom 5a49a24 fontconfig: enable 64 bit file support 0b7ea2a freetype: enable 64 bit file support e248594 autoconf: don't disable the autoheader warnings f852934 libxml2: fix python packaging for nativesdk f0b9a7c libarchive: avoid dependency on e2fsprogs 7c0aa8f neard: fix for parallel build 77a4ac2 gawk: upgrade from 4.0.2 to 4.1.1 0fbc24b generate-manifest-3.3.py: Add importlib 4e2cfdb gstreamer1.0-rtsp-server: Add recipe to support gst-rtsp-server 7279de7 Added new test cases for bitbake modes (-e -n -p -r -R -c -k) 85dea57 systemd: update a uclibc specific patch to avoid segment fault error 22ff50f apr: upgrade to 1.5.1 cc86e8b apr-util: upgrade to 1.5.3 ff12256 readline-5.2: exclude autoheader 00a8a54 readline-5.2: use upstream's aclocal.m4 as acinclude.m4 ea4024a grep: upgrade 2.18 to 2.19 6ae56f2 clutter: update to 1.18.2 b7a33b7 cogl: update to 1.18.0 c0a910b mesa-demos: Use DEMOS_DATA_DIR. 65a8c4b mesa-demos: Add missing data files. 4a440b0 mesa-demos: Build with system data files 920642b Update tzdata to 2014d 7e7a5de Update tzcode to 2014d for zic fix e711404 busybox: fix meta-yocto's bbappend's FILESEXTRAPATH f2b265f poky-tiny: Update kernel version to 3.14 f9ac0cb image_types: Fix ubi filesystem return codes a681520 resolvconf: Update to 1.75 aa40f4f cups: Update to 1.7.3 2fe752c man-pages: Update to 3.68 dfc9f90 libffi: Update to 3.1 83e5ef8 libcheck: Update to 0.9.13 fc1ac79 libxkbcommon: Update to 0.4.2 d2e1238 x264: Update SRCREV to match commit in upstream git repo d047de7 grub_git: fix build warning->error 1380d51 qt4: add patch for GIF denial-of-service vulnerability 5bd2950 qt4: upgrade to version 4.8.6 4b616f0 elfutils: upgrade to 0.158 5f45b00 sanity.bbclass: Add libsdl-native check 5c8effa oprofileui-server/oprofileui/pcmanfm: Add missing intltool-native DEPENDS 8eac4e7 libcroco/libfm/menu-cache: Add missing gtk-doc class dependencies 9955b77 gsettings-desktop-schemas: Add missing DEPENDS on gobject-introspection-stub-native c1de48a lame: Add missing DEPENDS on gettext-native e5cf31c recipes: Add missing pkgconfig class inherits 905061e libfm: Ensure m4 directory exists 4a6fb07 toaster.bbclass: exclude variable dependency on toaster postfunc 7b0e38b qemu: upgrade to 2.0.0 79ac26c v86d: fix for SeaBIOS VGA BIOS compatibility 99006ef oeqa/controllers/beaglebonetarget.py: fix conditions for files copied to /boot af49a09 diffstat: patches have now been submitted upstream f9ac8c5 diffstat: fix autoheader warning due to missing AC_DEFINE template ae642d3 socat: upgrade to 1.7.2.4 fd4a918 lrzsz: fix autoheader warning due to missing AC_DEFINE template 32111c4 genericx86: switch to Linux 3.14 from 3.10 60c40e5 bitbake: siggen: Print warning about tainted tasks 8a43a6a bitbake: build/utils: Fix broken exception handling 4a78f52 bitbake: bb.fatal: Raise a BBHandledException instead of exiting 91a164c bitbake: event: Add SkipRecipe event to replace SkipPackage 044296c bitbake: event.py: Allow passthrough of BBHandledException events ab29933 bitbake: cookerdata: Improve error handling a266670 bitbake: event: Fix event handlers to raise SkipPackage fec42d3 util-linux: add sulogin to alternatives list df1dc4e systemd: Upgrade 212 -> 213 0716ce4 libogg: upgrade to 1.3.2 dfe49a1 weston: make lcms explicitly configurable dd1dacf weston: fix make-lcms-configurable.patch 482857a weston: drop superfluous --disable-lcms f11d67a gzip: Avoid host contamination during build 4489f20 bitbake.conf: Set a dafault value for TUNE_PKGARCH fe5bc38 gcc: Clean up configure_prepend and fix for mingw 3caca17 classextend: Fix crosssdk remapping for multilib dce200f opkg-utils: Update SRCREV 1ef8100 combo-layer: fix revlist taking into account file_filter 4562f06 update-rc.d: fix to handle priority numbers correctly 80aece0 eglibc: Fix configure when re-building with gold 1491c57 gcc, uclibc: Add/Fix Upstream-Status in patches b6bdb2b layer.conf: Add musl to safe recipes for exclusion 32ed599 gnu-config: Let it recognise *-*-musl* triplets d73709f cross-canadian.bbclass: Recognise musl 28bb9dd image.bbclass: Remove dependency on ldconfig-native for musl 7e84ec1 multilib_header: Do not install mutlilib headers for musl e06c0a2 tclibc-musl.inc: Add musl specific distro policy file 56d4f91 siteinfo, insane: Recognize musl specific triplets 5d14f3c dev-manual: Updates to the "Making Images More Secure" section. 8beca34 ref-manual: Updated example in extrausers.bbclass. 74cd14c ref-manual: Fixed a link to the PACKAGE_ARCHS variable. d4f1951 ref-manual: Edits to the PACKAGE_ARCHS variable. a6db9e7 ref-manual: Edits to the SDK_PACKAGE_ARCHS variable. d9727ab ref-manual: Added the SDK_PACKAGE_ARCHS variable. 78a88ea ref-manual: Further corrections to the PACKAGE_ARCH variable. 870b846 ref-manual: Edits to PACKAGE_ARCH variable. 98b42bc ref-manual: Added the PACKAGE_ARCHS variable. cb5cf01 ref-manual: Added the MACHINE_ARCH variable. 0b3adff ref-manual: Added the SSTATE_MIRROR_ALLOW_NETWORK variable. 1ddf03c ref-manual: Added EXTRA_IMAGECMD variable. e07d2ed ref-manual: Added IMAGE_CMD variable. 888daaa ref-manual: Added the IMAGE_DEVICE_TABLES variable. 6d7e85a ref-manual: Added the IMAGE_ROOTFS_ALIGNMENT variable. 87280e0 ref-manual: Edits to the PACKAGE_PREPROCESS_FUNCS variable. c0e41a1 ref-manual: Added the PACKAGESPLITFUNCS variable. 13afa78 ref-manual: Added the PACKAGE_PREPROCESS_FUNCS variable. bcd59ab ref-manual: Edits to the SDKMACHINE variable. 9cb506b ref-manual: Edits to the UBOOT_MACHINE variable. 4fac0dd ref-manual: Edits to the LDFLAGS variable. 3cf5fee ref-manual: Edits to the TARGET_CXXFLAGS variable. d234817 ref-manual: Edits to the CFLAGS and CPPFLAGS variables. 0b69f06 ref-manual: Added BUILD_OPTIMIZATION variable to glossary. 1532bfd ref-manual: Edits to the SELECTED_OPTIMIZATION variable. 57bd61e ref-manual: Edits to the "Making Images More Secure" section. bd5973e ref-manual: Edits to the ROOTFS_POSTPROCESS_COMMAND variable. 3de0d39 ref-manual: Removed some extra space beyond the literal example. 28d5925 dev-manual: Updated the "Making Images More Secure" section. 8e9bfa5 ref-manual: another minor fix to the CPPFLAGS variable. 92e80f2 ref-manual: Took out the links to the "Making Images Secure" section. 74e21f3 ref-manual: More edits to some compiler passing variables. 1a8718c ref-manual: Edits to a few variables in the glossary. acdafd5 ref-manual: Edits to the QA checks message section and insane.bbclass. 3dd477c ref-manual: Applied review edits to QA messages and insane.bbclass. 5948338 ref-manual: Added PRIVATE_LIBS variable and supporting links. 566b9bc ref-manual: Added HOST_CC_ARCH variable. 6b8dc79 ref-manual: Added TUNE_CCARGS variable and supporting links. 40a1732 ref-manual: Added TARGET_CC_ARCH variable and supporting links. 76e6f65 ref-manual: Added variables that pass compilers and their supporting links. 1071980 ref-manual: Added BUILDSDK_LDFLAGS variable and supporting links. da5d2af ref-manual: Added TARGET_LDFLAGS variable and supporting links. 19d2f6f ref-manual: Added the BUILD_LDFLAGS variable and supporting links. 66625b1 ref-manual: Added LDFLAGS variable and supporting links. 59d810e ref-manual: Added new chapter on QA error and warning messages. ba2221f ref-manual: Updated reference sections for environment setup scripts. c2852ea bitbake: utils: avoid printing traceback on ExpansionError during parsing 429bb2a bitbake: fetch2: improve handling of two classes of URL parameter mistakes 91b6edd bitbake: Revert "toaster: toaster oe-selftest support" 6c62836 toaster: toaster oe-selftest support d87d9e6 Update tzcode to 2014c 5c0975f Update tzdata to 2014c 269c8a5 ethtool: use serial-tests config needed by ptest. 963c8ea sstatesig: Move saferecipedeps handling to be earlier 0aad3eb openssl: add openssl-CVE-2010-5298.patch SRC_URI b066f87 readline: use upstream's aclocal.m4 as acinclude.m4 385b2d4 readline: exclude autoheader from autoreconf 70400ff readline: add missing STRUCT_DIRENT_D_* symbols to config.h.in 41ccbfc tcmode-default.inc: Default to using gcc 4.9 88ddb5a gcc: add patch to fix errors with Decimal64 type c42df8c i2c-tools: Add i2c-tools to the core 46c2aa4 linux-yocto-dev: Dynamic SRCREV update 594097f linux-yocto/3.10: bump kver to v3.10.40 c539cb5 beaglebone: enable the nowayout option for the watchdog b9cd001 linux-yocto-rt/3.14: update to 3.14-rt5 3869eba linux-yocto/3.14: update to v3.14.4 ce5aadc bitbake: fetch2/hg: Fix missing proto param for hg checkout with user and pw 8cdc792 bitbake: bitbake-layers: show-cross-depends: add support for RRECOMMENDS 8ae64ff bitbake: bitbake-layers: show-cross-depends: ignore self-satisfied RDEPENDS 603f3fb bitbake: bitbake-layers: show-cross-depends: ignore global inherits e124c0f bitbake: bitbake-layers: show-cross-depends: add option to ignore a layer 235f6c4 lighthttp: Use pkg-config for pcre dependency 030e09f libarchive: Use pkg-config for libxml2 dependency 191a2d3 libksba: Use pkg-config for dependencies 3b3f0a6 gpgme: Update to ensure we pkg-config for dependencies ae5c64f libgcrypt: Use pkg-config for dependencies 8557df1 libxslt: Use pkg-config for dependencies 834245f gnupg: Convert to use pkg-config for dependencies 81bb1ab libassuan: Improve pkgconfig support 55d0ae6 libgpg-error: Extend pkgconfig support to m4 macros cd7b437 devshell: Add interactive python shell 3bf2418 pseudo: Honor umask again da9dd69 cmake: Avoid accidentally including libacl.h 19c6c2e ddimage: Support Mac OS f3d62a9 eglinfo: updated to compile with mesa10+ 77841c9 libxshmfence: add it to oe-core ea442cd dri3proto: add it to oe-core e01c99e distro_features_check.bbclass: fix searching whole list 0882d26 weston: upgrade to 1.5.0 87e2ce6 wayland: upgrade to 1.5.0 2f4f644 perl: stop perl-modules recommending perl-ptest aba63ba babeltrace: fix alignment issue 359d2de lttng-tools: fix alignment issue 779d496 bluez5: upgrade to 5.19 284a9b5 perl: fix for CVE-2010-4777 c8645ca pseudo: handle fchmodat better, mask out unwanted write bits 2b7f8db python-native : Add patch to fix configure error with gcc 4.8. b5784fe bitbake.conf: add default ${CPAN_MIRROR} 5b8dbfd mirrors.bbclass: add ${CPAN_MIRROR} option 45bbe35 initramfs-live-install: avoid using grub.d/40_custom ab33209 taglib: Force a disable of the floating dependency on boost 894df44 guile: Update to 2.0.11 version da3a742 byacc: Update to 20140422 version 7310361 flex: Update to 2.5.39 version 7e7f6ef gst-ffmpeg: fix for Security Advisory CVE-2013-0849 c884618 gst-ffmpeg: fix for Security Advisory CVE-2013-0850 f52f366 gst-ffmpeg: fix for Security Advisory CVE-2013-0856 e510fe6 gst-ffmpeg: fix for Security Advisory CVE-2013-0854 34e1e94 gst-ffmpeg: fix for Security Advisory CVE-2013-0851 dda4671 gst-ffmpeg: fix for Security Advisory CVE-2013-0858 0255fd5 gst-ffmpeg: fix for Security Advisory CVE-2013-0852 3577342 gst-ffmpeg: fix for Security Advisory CVE-2013-0845 6a13411 gst-ffmpeg: fix for Security Advisory CVE-2013-0868 e1134f7 gst-ffmpeg: fix for Security Advisory CVE-2014-2099 7721eac gst-ffmpeg: fix for Security Advisory CVE-2013-0865 46a9ffc gst-ffmpeg: fix for Security Advisory CVE-2014-2263 1532ea0 distro_features_check.bbclass: fix wrong indentation 122079e bitbake: data_smart: Fix an unusual variable reference bug bf9ff3d bitbake: toaster: reduce redundant foreign key lookups defe227 bitbake: toaster: sort columns properly after edit columns 8a8d717 bitbake: toaster: toaster oe-selftest support bb86520 cups: fix for cups not building without avahi 5eb03b6 harfbuzz: upgrade to 0.9.28 32a811f wic: add support to look in all layers and get plugins 8af57a6 wic: add support to look in all layers and get .wks file ac9707c libav: upgrade 9.x version to 9.13 646fd85 libav: upgrade 0.8.x version to 0.8.11 cdaee02 runqemu-internal: add "console=ttyS0" to ramfs image kernel parameters 250b58a quilt: Update to 0.63 version 0a23586 libpcre: Update to 8.35 version 00846f6 openssl: fix for CVE-2010-5298 7719f58 tiff: fix for Security Advisory CVE-2013-4231 058ce93 nss: CVE-2013-1740 64f8174 nss: CVE-2014-1492 09f471b subversion: fix for Security Advisory CVE-2013-4277 ab6c322 subversion: fix for Security Advisory CVE-2013-1847 and CVE-2013-1846 128adcb subversion: fix for Security Advisory CVE-2013-1845 722ff43 subversion: fix for Security Advisory CVE-2013-4131 e8d6c87 subversion: fix for Security Advisory CVE-2013-4505 4fc1cff subversion: fix for Security Advisory CVE-2013-1849 210460d screen: fix for Security Advisory CVE-2009-1215 27aba0a Screen: fix for Security Advisory CVE-2009-1214 901a28b lttng-modules: Fix build with older kernels for 2.3.3 as 2.4.0 8293f56 initrdscripts: fix for /run/media 77b4b25 init-live.sh: list block devices correctly 1899511 udev-extraconf: fix the misuse of /run/media 438b866 packagegroup-core-lsb: fix warning text 31c338c pango: enable ptest a62e952 syslinux-native: fix parallel building issue b664c86 libusb1: disable floating dependency on udev 0e2777f maintainers.inc: js package removed e759e4d README: add maintainers section for hardware reference boards 09edf20 bitbake: fetch2/gitsm: Documentation improvements for gitsm:// fetcher 874d81a gstreamer/lame: Better gcc 4.9 fix 4152ac0 rt-tests: restore erroneously deleted patch files ac1acab curl: remove inapporpriate file from curl release 6744815 libusb1: Update to 1.0.18 85f51bb mips: add tune file for mips32r2 (only hard-float) 2134fe8 libsdl2: upgrade to 2.0.3 113d53a dropbear: add missing patch header 98c7754 nfs-utils: upgrade to 1.3.0 882f0aa ethtool: upgrade to 3.14 0158dea openssh: move packaging definitions to the end 944e261 openssh: update to 6.6p1 5c89748 glib-2.0: Do not use readlink to set target paths. c5c11b0 bluez5: Update the bluetooth.conf f7a74e2 freetype: disable harfbuzz 48fc1aa dbus: Update to 1.8.2 version 53082b1 licenses.conf: add AGPL variations 81cfed9 bzip2: fix ptest execution failure d6900a5 wic: Extend indirect string connection to support image names and rootfs bc10da0 wic: add find_artifact() to get a specific bitbake variable 8387f1f wic: Move find_bitbake_env_line() to oe.misc bf7364e curl: make PACKAGES match with FILES/RRECOMMENDS 9d2221f ca-certificates: generate CAfile for -native in do_install f518096 openssh: fix for CVE-2014-2653 fbf63c3 openssh: fix for CVE-2014-2532 939fce4 qemu: define PACKAGECONFIG[] for ssh2 579964a gdb: add PACKAGECONFIG for babeltrace c989c6f mesa-demos: Specify the lib dir properly. 098372a rt-tests: Fix warning flag typo 1d13b58 pax-utils: upgrade to 0.8.1 9238e53 rpm: Fix rpm -V usage fcd1491a adt_installer: run autoreconf before configuring opkg 362b677 eglibc: remove usage of FILESPATH c631117 uclibc: remove usage of FILESPATH 6a43ad9 u-boot: remove unused FILESPATH 0c78776 python: remove usage of FILESPATH dd0442a gcc: remove usage of FILESPATH c8a6583 linuxdoc-tools: remove usage of FILESPATH d45466c qemu: remove unused FILESPATH 7444b73 mesa: remove usage of FILESPATH a5cc0f6 xorg-lib: remove usage of FILESPATH bf35945 trace-cmd: refactoring recipe 845a253 gstreamer: remove unused FILESPATH a20afe0 dbus: remove usage of FILESPATH abf8f0f systemtap: remove usage of FILESPATH 56751ed git: Fix various makefile flags 61e8e0f systemd: remove tcp-wrappers option 92beb80 json-glib: upgrade to 1.0.0 60e5953 python-numpy: add Signed-off-by to patches 9fcc97c gdk-pixbuf: upgrade to 2.30.7 f7eac57 freetype: upgrade to 2.5.3 9557995 glib-2.0: upgrade to 2.40.0 d5958a9 gst-openmax: fix build with GLib 2.40 onwards 4055185 qemu/local.conf.sample: Add sdl PACKAGECONFIG 1e5c722 ref-manual: Edits to the task chapter. 7e5116d ref-manual: Bumped the YP revision in the note. f3dc906 ref-manual: Added more detail to the tasks chapter. 084c784 kernel-dev: Added a link to the do_compile task. 8e90933 dev-manual: Added links to new do_* sections. e867967 ref-manual: Added links to new do_* sections. 2f4d072 ref-manual: Added new chapter on task documentation ab864d7 dev-manual: Edits to the "Understanding Recipe Syntax" section. 1744a1e dev-manual: Edits to the "Understanding Recipe Syntax" section. f7a1612 dev-manual: Added new "Understanding Recipe Syntax" section. 9943e33 mega-manual.sed: Changed the version string to 1.7 d1594ea dev-manual: Added "Properly Versioning Pre-Release Recipes" section. 95c6c26 documentation: Updated the manual revision history tables for 1.7 0caa305 poky.ent: Changed variables to support the 1.7 release. 50067e0 bitbake: fetch2/perforce: Ensure command has a default 56cd778 bitbake: parse: Improve file inheritance logging c0bdb81 bitbake: knotty: Fix output printed to the user at debug log levels 155e55e gstreamer1.0-plugins-good: add libxfixes and libxdamange to x11 depends ec47185 gst-plugins-good: add PACKAGECONFIG for x11 2f5d519 gst-plugins-bad: add PACKAGECONFIG for schro, dc1394 and faac bc39193 bitbake: parse/ast: Show append logging at lower log level 60436dc bitbake: fix cloning of mercurial repository with username and password specified in url 76fd64f mesa-demos: Specify the lib dir to locate glut libraries bc19e91 classes/lib/oe: Fix cross/crosssdk references fe0219c systemd: Upgrade past 212 release a4d931e update-rc.d: Handle multilib case for initscripts 47013aa rt-tests: bump version 0.87 => 0.89 ebaf77d nettle: disable openssl 5b17c5d libpng12: upgrade to 1.2.51 a36f0b9 libsoup: upgrade to 2.46.0 9b1d466 libtasn1: upgrade to 3.5 f9421ca icu: upgrade to 53.1 1b82c73 chrpath: properly handle rootdir with '..' in path a1bad24 libxcb: disable check to avoid floating dependencies 6fcd765 librsvg: upgrade to 2.40.2 c05066e util-linux: fix parallel build issure for PATHFILES bcb30d8 mirrors.bbclass: Add mirror site for savannah 646b089 bitbake: toaster: modify SQL data type constraints 09a1ff9 bitbake: toaster: fix migration code for MySQL 1a10bd3 bitbake: toaster: fix span2 headings for packages 1278267 bitbake: toaster: Make sure layer branch only shows when not empty 961f622 bitbake: toaster: sort outcome and sstate columns by string value 138ed54 bitbake: Fix refetch of local files when they are read only 3189e74 attr: Fix uclibc builds 4666045 gcc: Handle uclibc linker relocation for multilib support 5992d29 openssh: add /var/log/lastlog to volatile list a091b76 separatebuilddir.inc: Drop, now obsolete 43b0a2e sudo: upgrade from 1.8.9p5 to 1.8.10p2 e7e4334 libxml2: fix CVE-2014-0191 e846e0f kmod: update Upstream-Status for one patch 6e0d7de openssl: update upstream status for a patch b537c2f perl: update ptest package dependency list bc1f98d package_manager: Fix NoneType Object on do_populate_sdk c100f0a package_manager: Fix Argument list too long 88593cd x-load: remove recipe 79cacae uclibc: Set MULTILIB_DIR based on baselib d30a5c2 libiconv: Fix B != S with uclibc builds a2e612c ptest: Work from PTEST_ENABLED, not DISTRO_FEATURES 37dcf14 scripts/runqemu: avoid pipe with sed c6a5e6c initscripts: avoid pipe with sed 1150ef1 sysvinit-inittab: avoid pipe with grep 44ba076 dropbear: avoid pipe with sed 4dd22fe apmd: avoid pipe with sed 8de568a acpid: avoid pipe with sed 77790c4 *.bbclass (shell): avoid pipe with sed 5ae4aad tcl: cleanup cc9d01f rxvt-unicode: upgrade to 9.20 cd6f819 babeltrace: upgrade to 1.2.1 9bf4e65 mmc-utils: fix compilation failure for mips64 target. c13ffb9 ltp: enable PM and RT tests b72ab99 perl: fix missing Module::Metadata f3f7fec openssl: fix CVE-2014-0198 28798f1 python3: Revert python-config to distutils.sysconfig bb07e85 python3: Substitute correct python version in shebang f88e6e3 distutils.bbclass: only modify *.py file if it contains path to be removed 96e488b python3/gcc/autoconf: Fix Upstream-Status in some patches I authored 0b4d895 base.bbclass: Fix multilib PREFERRED_VERSION handling a671ced bitbake: data_smart: Ensure all possible overrides are cached including those with '_' in the name 9392fa8 tcmode-default: Fix up sdk related PREFERRED_VERSION variables after toolchain changes 59ef976 tcmode-default.inc: Adjust for new toolchain component changes e6e7c28 linux-firmware: upgrade to commit dec41bce44e0dff6a2c3358a958fadf22bf58858 df85f26 taglib: upgrade to 1.9.1 920ca71 linux-yocto/3.10: mei.cfg: enable Intel chipsets 8dc545c linux-yocto/3.14: update to v3.14.2 5fa2504 linux-yocto/3.10: update to v3.10.38 4aec869 linux-yocto/3.4: update to v3.4.88 70b11e5 linux-yocto-custom: provide defconfig guidance ee4f09a kernel-yocto: quote kconfig mode check 8de1de8 qt4: Explicitly disable sqlite2 b84d791 ldconfig-native: also default to lib32 and lib64 directories e32543e serial-getty service: Add xterm as default TERM 8b91e44 gdbm: enable ptest support 563c329 defaultsetup: enable blacklist by default 8592548 systemtap: update to 2.5 release 010e6f1 grub git: update to latest git (grub-2.02-beta2-81-g4b8b913) 1fe8f63 wpa-supplicant: add libgcrypt as a dependencie 37610cc gnutls: update to 3.2.13 220c7e0 nettle: add nettle to oe-core 08a9594 libgcrypt: update to 1.6.1 6464bcd xinput-calibrator: fix XDG launch 8fc255d xdg-utils: reinstall xdg-terminal 7743cd2 procps: Do not detect 32/64 bit compiler options 03ce8a7 lttng-modules_2.3.3.bb: Fix build on ARM/gcc-4.9 3a9092e mdadm: Fix build on gcc 4.9 5f897ef oprofile: Update to 0.9.9 3cf5a0e systemd: Fix build with gcc 4.9 ab6f21f binutils: Fix building nativesdk binutils with gcc 4.9 9f1f185 cairo: Fix build with gcc 4.9 3d09475 gcc: Add 4.9 recipes 7b78c364 cleanup-workdir: Fix crosssdk reference after addition of PN 56a39e9 sstatetests: Use TUNE_ARCH instead of TARGET_ARCH 5459af3 sstatetests: Update after binutils-cross name change with PN addition 530e66c curl: Backport a fix for a build issue 0304d92 bitbake: prserv/db: Avoid fsync() calls 99c9b33 bitbake: persist_data: Avoid fsync() calls c1f4df4 bitbake: codeparser: Fix to better catch all getVar references dabd58b gcc-common: Ensure checksums don't change to match old behaviour a6df56d PR bumps to remove PRINC usage from meta-raspberrypi 64df4e4 Add texinfo.bbclass; recipes that use texinfo utils at build-time inherit it. 075e288 gcc-common: Only apply fpu settings to target gcc 5e4db52 gcc-cross: Drop TARGET_CC_ARCH 53ea374 cross: Update PKG_CONFIG variables after recent changes 37c498a layer.conf: Exclude gcc-cross dependencies from checksums 96ce3f2 base.bbclass: Silence PREFERRED_PROVIDER warnings for sdk builds cf4d30f tcmode-default.inc: Add default SDK PREFERRED_PROVIDERS f7bbe9c sanity: Bump BitBake minimal version to 1.23.0 afcf8e8 bitbake: bitbake: Bump version to 1.23.1 68efcde tcmode-default: Update PREFERRED_PROVIDERS 11202d9 alsa-tools: Enable GTK support for X11, Wayland and DirectFB 57acd08 meta-yocto-bsp: oeqa/controllers: add EdgeRouterTarget ceb5c4d meta-yocto-bsp: oeqa/controllers: add BeagleBoneTarget 3a4bb1a oeqa: add proper handling for command errors where needed 9e7b0ca scripts/contrib/dialog-power-control: add a trivial power prompt script d20eedb scripts/contrib/serdevtry: add script to handle transient serial terminals abdd8e7 classes/testimage: if start fails, don't try to stop 74f2d8b oeqa/controllers/masterimage: more robust master image startup 6cd18d7 oeqa/controllers/masterimage: add a serial control command bd64b91 oeqa/targetcontrol: restart method shouldn't be abstract cc4234e oeqa/controllers/masterimage: add a base class for hw targets d36c606 sqlite3: restore upstream version numbering 81c4c89 lighttpd: upgrade to 1.4.35 a4e61c6 gstreamer1.0-plugins-ugly: upgrade to 1.2.4 179a6ff gstreamer1.0-plugins-bad: upgrade to 1.2.4 4944ee8 gstreamer1.0-plugins-good: upgrade to 1.2.4 0e93e91 gstreamer1.0-plugins-base: upgrade to 1.2.4 e73fc82 gstreamer1.0-libav: upgrade to 1.2.4 42bd3d9 gstreamer1.0: upgrade to 1.2.4 943d593 telepathy-glib: upgrade to 0.24.0 c4207f0 fontconfig: upgrade to 2.11.1 e5423db xauth: upgrade to 1.0.9 dfb817e nasm: upgrade to 2.11.02 21a38eb kexec-tools: upgrade to 2.0.6 81b9516 xtrans: upgrade to 1.3.4 2d0fa5d xrandr: upgrade to 1.4.2 187d6fd xproto: upgrade to 7.0.26 707d147 gdb: upgrade to 7.7 0b362a4 python-pygobject: upgrade to 2.28.3 2a63f34 xserver-xorg: upgrade to 1.15.1 ef08481 libdrm: upgrade to 2.4.53 9aa7827 xf86-input-synaptics: upgrade to 1.7.4 ec9f2cb oprofileui*: Update to latest git 20634d1 lsbinitscripts: Update to 9.54 4e81f27 util-linux: Update to 2.24.2 ce2cf5e man-pages: Update to 3.65 560e0a1 lib/oe/sdk: Ensure target directory exists before creating the link 413ab0a base.bbclass: Update INCOMPATIBLE_LICENSE changes for gcc updates ecf2a8c gcc: Drop ARCH_FLAGS_FOR_TARGET usage f07b7c0 gcc-common/gcc-configure-common: Move gnu-configize to its own shared task 2b851b9 gcc-target: Limit compile to host targets, don't build runtimes. e078edb binutils/gcc/gdb: Add TARGET_ARCH to PN for all cross recipes 03a0f8e cross: Drop virtclass-cross OVERRIDE 17daa2b bitbake: bb.utils, bb.codeparser: Add bb.utils.contains_any f98159f feature-arm-thumb.inc: set ARMPKGSFX_THUMB only when thumb is in TUNE_FEATURES 985f818 feature-arm-thumb.inc: Suppress false warning 107269d bitbake: codeparser: don't interact with the cache for subshells 3d34b49 bitbake: fetch2: Cleanup file checksum generation, v2 0f717ea bitbake: HG Fetch with username and password in url 6ad25fc package_regex.inc: Changed, removed and added regexes 2b09f5c mc: update to 4.8.12 936218e systemd: Check for HAVE_POSIX_FALLOCATE 59738ff distrodata.bbclass: Fix checkpkg functionality c0df4f6 ltp: update version to 20140422 2b822a8 oeqa/utils: sshcontrol: realtime logging of output bdb07c6 tune-cortexr4.inc: Add thumb and arm to TUNE_FEATURES d19e29a feature-arm-thumb.inc, arch-armv4.inc: Add "arm" to TUNE_FEATURES af76e86 feature-arm-thumb.inc: Replace inner quotes with apostrophes af49e60 openssl: enable ptest support b3c688c sstate-cache-management: Minor cleanup of help text 183dac4 bitbake: Revert "fetch2: Cleanup file checksum generation" a688c9c bitbake: bitbake-diffsigs: Fix runtime error when no arguments are given d103530 bitbake: fetch2: Cleanup file checksum generation c7c58db bitbake: fetch2/git: Stop git from triggering fsync() calls 20e439e cross: Drop package tasks cc23069 uclibc: Add libgcc-initial to DEPENDS c446d4e default-distrovars.inc: Add libgcc-initial to the GPLv3 whitelist (same as libgcc) 1528e59 Globally replace 'base_contains' calls with 'bb.utils.contains' b5606f3 Globally replace 'base_contains' calls with 'bb.utils.contains' eb76c48 Upstream-Status Cleanups cbf4607 bumps to remove PRINC use in meta-fsl-ppc 6c931b4 initscripts: Fix PR reversal 2bef523 dbus: fix a hard dependency about dbus-ptest 20ded0a udev-extraconf: update mount.sh to use /run/media instead of /media 62238e1 files/device_table-minimal.txt: cleanup 3adc47f kernel: don't populate source symbolic link 6e03bfc bind: add support for read-only rootfs 9183987 opkg: Upgrade to v0.2.2 4c14b09 Globally replace 'base_contains' calls with 'bb.utils.contains' 08a38a7 Globally replace oe.utils.contains to bb.utils.contains f11e9e2 openssh: enable ptest support 8a9c165 iproute2: upgrade to 3.14 9f0ef56 harfbuzz: upgrade to 0.9.27 380cb2d bluez5: upgrade to 5.18 d288f8c connman: upgrade to 1.23 5f993cb gcc-cross-initial: Separate out libgcc-initial ee758b6 gcc-cross: Improve handling of unwind.h 44c8028 libgcc: Spit out common code into libgcc-common.inc 5c9025e gcc: Convert to use hardlinkdir ded3fc6 utils: Add hardlinkdir shell function 3be0213 build-appliance-image: Update to head revision 370ae27 native.bbclass: Override TARGET_ flags too 7f138d6 cryptodev-tests: recipe for cryptodev test suite based on OpenSSL 8e12e0c cryptodev-module: recipe for out-of-tree cryptodev device driver 51c6c42 cryptodev-linux: create common .inc file to be shared by module and tests 3ee8805 cryptodev-linux: move to recipes-kernel to be shared with module and tests 40fd8e6 tcf-agent: add systemd support 870a316 ppp: add systemd support b45533c bind: add systemd support 4593e1b cronie: add systemd support b882c0f report-error: Add posting in the public note 965770c libnl: update to 3.2.24 2a30974 sqlite3: Update to 3080403 07d3c2f util-macros: update to 1.19.0 8d2c337 libxkbcommon: update to 0.4.1 49aa353 msmtp: update to 1.4.32 61b7a62 man-pages: update to 3.64 96f3279 lsbinitscripts: update to 9.53 f6741e4 cups: update to 1.7.2 d114770 help2man update to 1.44.1 92d5c07 gsettings-desktop-schemas: add missing dependency on intltool-native 66856e1 apr: do not try to use sctp.h e45da21 PR bumps to remove PRINC use in meta-openpli 5c98e90 console-tools: Remove floating runtime dependency on flex a111ca6 oprofileui-server_git: add avahi-daemon to RDEPENDS list 2b99c7d liberror-perl: add 0.17022 144296f libpng: bump to 1.6.10 2a129dd pixbufcache: add error exit in pixbufcache_sstate_postinst 69b6eac autotools: Enable separate builddir by default 68ef727 ref-manual: Added new section to the 1.6 migration section plus some 1.5 edits. 4b5e855 meta-bsps: update to v3.10.35 3be89ac yocto-bsps: update references to v3.4.85 81a1b83 bitbake: bitbake-worker: Drop BBHASH variables 249a24e bitbake: parse/ast: Optimise data finalisation 39c5cfb bitbake: runqueue: Do not write out stamp files in dry_run mode 75c6b78 bitbake: runqueue: Fix task weighting algorithm d8ef08c bitbake: runqueue: Fix handling of zero priority task 5cbf231 bitbake: bitbake: toaster: Fix Empty tasks filter 5345985 bitbake: bitbake: toaster: Fix total number of tasks in build dashboard 8dd299b kmod: upgrade to v17 via git 8285e78 mtd-utils: upgrade to 1.5.1+gitAUTOINC+12158de 626458b at-spi2-core: upgrade to 2.12.0 8752cb1 at-spi2-atk: upgrade to 2.12.0 7455c17 atk: upgrade to 2.12.0 c931a1b curl: upgrade to 7.36.0 4cd6268 pango: upgrade to 1.36.3 1af448d mklibs-native: upgrade from 0.1.38 to 0.1.39 2732786 automake: upgrade from 1.14 to 1.14.1 6560fa4 wget: upgrade from 1.14 to 1.15 cf3d196 file: upgrade from 5.16 to 5.17 451c751 lttng-modules: update to 2.4.1 version 92bd019 grub-efi: Use a variable to specify built-in grub modules. 920bfc3 openssh-sshd: host contamination fix edb5f34 grub git: workaround debugedit problems bb3f5ce make menuconfig work for recent xfce environment 07cb1c0 linux-yocto/3.14: aufs, edgerouter config and -rt 2b9660c recipe_sanity.bbclass: avoid error when running 'bitbake -e' e2661d7 scripts/send-error-report: simple hack to use proxy from the enviroment 1cb95f7 icecc: don't create unnecessary 'ice' dirs in sysroots when disabled 1f8d809 shadow: fix building systemd with useradd-staticids.bbclass enabled b093750 selftest: DiskMonTest: use a high value for free space 4961972 libav: Add libsdl to DEPENDS only when x11 is enabled 4beb639 libnotify: add dbus-glib dependency 261b9e2 apr: remove the use of ${SHELL} to avoid bash/dash confliction cf8446c build-appliance-image: Update to head revision 9035eb1 distro_alias.inc: update/sort alias information. 02384f0 ref-manual: Pulled the item for forked packages out. 57e8d56 bitbake: bitbake-user-manual-hello.xml: Edits to the "Hello World" Appendix. 61a680f bitbake: bitbake-user-manual-hello.xml: First draft of "Hello World" appendix 4687351 bitbake: bitbake-user-manual-hello.xml: Edits to environment for hello world. f1b9c7e bitbake: bitbake-user-manual-metadata.xml: Added section on pathname syntax ef7fac5 bitbake: bitbake-user-manual-ref-variables.xml: Edits to the BBPATH variable. 45880c7 bitbake: bitbake-user-manual-ref-variables.xml: Fixed BBPATH example 8f4b4e6 bitbake: user-manual-hello.xml: General edits 1313bac bitbake: bitbake-user-manual-hello.xml: Fixed two broken links. ea4e822 bitbake: bitbake-user-manual-metadata.xml: New section on anonymous Python functions 9889a91 bitbake: bitbake-user-manual-metadata.xml: Edits to flexible inheritance section. 392de9d bitbake: doc: Rename user-manual -> bitbake-user-manual 982aa36 ref-manual: Added package change info to the migration section. 601d5f1 dev-manual: Fixed some "systemd" capitalization issues. 3f0a863 ref-manual: Updated the list of supported distributions. 0403353 documentation: Updated all the manual revision history tables. 2648f5d dev-manual: Updates to "Performing Automated Runtime Testing" ac054da dev-manual: Changed GummiBootTarget to GummibootTarget. b7a1413 ref-manual: Added review comments to core-image-testmaster image. c4fec0d dev-manual: Edits to "Using the Error Reporting Tool" bf633eb ref-manual: Added core-image-testmaster to the list of images. 15f128c dev-manual: Edits to "Using the Error Reporting Tool" bbc6c67 ref-manual: Fixed typo 7ae3488 ref-manual: Re-ordered the insane.bbclass tests list. 66c78db ref-manual: Added symlink-to-sysroot insane.bbclass tests. 583ce2c dev-manual: Fixed typo for AUTOREV. ce9fb83 dev-manual, ref-manual: Removed VIRTUAL-RUNTIME note from most places. 0c4d56c scripts/send-error-report: use a real server as the default a2f3991 toaster.bbclass: do not fail on non-existent files 2cae5f7 u-boot: fix beaglebone boot issue with large kernel images ea90bd0 poky.ent: Changed the YOCTO_DOCS_BB_URL location. 43de868 dev-manual: typo fixed. f3dccea ref-manual, dev-manual: Edits to running tests on hardware e63348f ref-manual: Edits to DISK_SIGNATURE variable. 0055a7e ref-manual: Added warning about forking packages when upgrading YP ff50428 ref-manual: Updated the DISK_SIGNATURE description. fee60fb ref-manual: Removed note limiting tests to QEMU. a39e1f7 ref-manual: Edits to the module_autoload and module_conf variables. cc3f382 ref-manual: Updates to deal with installing packages in initramfs c42cadf ref-manual: Edits to module_autoload and module_conf variables. d40aae9 ref-manual: added module_autoload and module_conf variables. 89dd163 bsp-guide: Updated the yocto-bsp example. e371eaf bsp-guide: Updated the yocto-bsp example. f5bd39b ref-manual: Updated KBRANCH to fix a reference to the linux kernel. 7ad0253 ref-manual: Updated KBRANCH variable description. bebc72a bsp-guide: Updates to "Linux Kernel Configuration" section. 693156e bsp-guide: Updated the "Hardware Configuration Options" section. 680394f bsp-guide: Updated the "Example Filesystem Layout" section. 91a0cf7 ref-manual: Extended the D variable description. 750210b Extended description of the ${D} variable to better explain its purpose. 9659789 dev-manual: Grammar fix to the Toaster section. ad3553b dev-manual: Applied Toaster section review edits. 55fc974 ref-manual: Added TEST_EXPORT_DIR to glossary. 028d760 ref-manual: Added TEST_EXPORT_ONLY to glossary. 85087c9 ref-manual: Added TEST_LOG_DIR to glossary. a12b957 ref-manual: Added TEST_SERVER_IP to the variable glossary. dfa1bd8 ref-manual: Added TEST_TARGET_IP to the variable glossary. 4db4dff ref-manual: Added TEST_TARGET variable description. f0e3476 dev-manual: Added new "Exporting Tests" section. ea11a0c dev-manual: Added new "Hardware" section for running tests. cc80d05 dev-manual: Moved list of qemu-specific run information 7406f93 dev-manual: Updates to the "target" class attribute 285ffd8 dev-manual: Updated the "Class Methods" section. eb578b0 dev-manual: Removed note about rm_work ae64c92 ref-manual: Added DISK_SIGNATURE variable description to glossary. 9680453 yocto-project-qs: Substituting Beaglebone for Beagleboard. 863cc74 poky.conf: Post release version bump 1d2cfaa poky: Branch for 1.6 daisy release 4ba4ffe bitbake: bitbake: Update to version 1.23.0 for master c3a216c bitbake: bitbake: Update to version 1.22.0 915ec3d bitbake: cache: don't trigger reparse on recipes with wildcards in SRC_URI 344feb1 linux-yocto/3.10: intel BSP configuration updates 7d58ef3 linux-yocto/3.14: beagleboard black: USB, DRM config tweaks c3a0496 linux-yocto/3.14: intel configuration fixes 1ac45f7 linux-yocto/3.10: intel-common: Add preempt-rt ktype targets 4f62599 linux-yocto/3.10: v3.10.35 and emenlow boot fixes 4c6d49f linux-yocto/3.4: update to v3.4.85 0c282b6 sstate: Silence warnings when switching machines b1cefd9 selftest: DiskMonTest: use POSIX output for df 3c77416 gcc: Fix a race over unwind.h 97fd8c0 vala: inherit pkgconfig ee4f52e perf: Fix sysroot option to CC handling 2966593 kernelshark/trace-cmd: fix syntax error of shell d1c17c5 openssh: fix sshd_config_readonly creation b24f5e8 image.bbclass: improve sed expressions for ssh_allow_empty_password() db80f79 README.hardware: update with Texas Instruments Beaglebone instructions a7d978c beaglebone.conf: configuration updates 47bad42 poky.conf: Update SANITY_TESTED_DISTROS 1f42d82 edgerouter: clarify diskboot instructions 046a9ea bitbake: toaster: Allow toaster to start without pytz 1eb84a8 poky.conf: Update SANITY_TESTED_DISTROS efa4a98 bitbake: toaster: add URI search path list d3e5632 bitbake: toaster: sort on size in detail pages dc7d3d2 bitbake: toaster: hide tasks without order or outcome 74e2f85 bitbake: toaster: regex alternation filter caused django error f88a343 bitbake: toaster: fix filtering query for multiple filters b14482e bitbake: toaster: keep number of rows across searches 5a29328 bitbake: toaster: show unique set-in files in configvar 4b17947 bitbake: toaster: disable 'size over total' sort 1d631fb bitbake: toaster: do not load all available timezones 70288db bitbake: bitbake-selftest: add tests for local fetching 68ec4c1 bitbake: bitbake-selftest: fix help message to include command line b0bf001 libpam: fix 64-bit pam plugins not installed when add to 32-bit image bb20d3a yocto-bsp: Update templates to 3.14 kernel 9eb5249 eglibc: __slow_ieee754_sqrt{, f} functions for ppc e6500-32b 467b19e busybox: fix a sh link wrong e34ad1e python: Fix CVE-2014-1912 398a971 libx11: fix invalid preprocessing directive errors d06a10a freetype: fix multilib header conflict - ftconfig.h b3f7195 e2fsprogs: fix multilib header conflict - ext2_types.h 8f683bf bitbake: bitbake: knotty: Clear footer before outputting to stderr 327ed0b bitbake: fetch2: fix traceback when a wildcard matches a directory 991af87 bitbake: fetch2: handle wildcards correctly when recording file checksums 5dd1d75 openssl: Upgrade to v1.0.1g c0ac09a cmake: Improve method for not building ccmake 68a55c8 ref-manual: Edits to fix up how GID and UIDs are handled. 90d52bd ref-manual: Added useradd-staticids class and edits to some variables. 9f1c18e dev-manual, kernel-dev: Replaced routerstationpro with edgerouter. 7f6d83a documentation: Beagleboard replaced with Beaglebone cdbaa32 ref-manual: New variables to support static uid and gid values. 97d7aeb ref-manual: Edits to the image-live class description. d4a2458 ref-manual: Updated the bootimg class description. 9814bdf dev-manual: Updates to the Toaster section. 4faffb0 ref-manual: Added new migration section on BB console output. b36f26d ref-manual: Typo fix to CFLAGS 1.6 migration section. a8a0e80 ref-manual: Edits to the 1.6 migration section. b02932e dev-manual: Edits to "Providing the Source Code" section. 20c1cc0 ref-manual: Removed archive* class and replaced with archiver class. 0ff499a ref-manual: Edits to the copyleft_compliance class. 757344c ref-manual: Edits to the PYTHON_ABI and PYTHON_PN variables. 4644a88 ref-manual: Edits to distutils3 and setuptools3 class descriptions. 6c8b19b ref-manual: Added setuptools3 class description. 60041e0 ref-manual: Added distutils3 class. 5ce6d8a ref-manual: Updates to PYTHON_ABI and PYTHON_PN variables. 4db0d5f package.bbclass: Add CONFFILES to list of package specific variables 38ef912 toaster.bbclass: image file is missing a "/" ac34639 documentation.conf (LICENSE): tiny addition bbc9aaf bitbake: hob: add "recipes/images/" to BBFILES when Hob is launched 1094be0 bitbake: fetch2: avoid cache ignoring missing files bb66113 bitbake: fetch2: Fix bug in file checksum generation 025021e test-dependencies.sh: Redirect stderr cb68ed9 systemtap: Move to current HEAD 1bc2b2a sysvinit: fix the bootlogd init script header e4ec48a busybox: Specify '-nostdlib' when linking to a .o file. 32acba5 busybox: Use CCLD a8ab7a1 useradd_base.bbclass: avoid the traffic crowding 396e215 bitbake: toaster: added covered task list 1029726 bitbake: toaster: correct package count 9db4332 bitbake: toaster: Fixes to the build dashboard 37e2670 bitbake: toaster: Make tables happy in Chrome 7322ddd bitbake: toaster: Fix the empty packages alert 9e81244 bitbake: toaster: Fix "Recent builds" links 4707c7c bitbake: toaster: catch IndexError error in dictionary lookups 52ed413 bitbake: toaster: Changes to help text 6831b7a bitbake: toaster: Remove html validation errors in tasks.html 53b781f bitbake: toasterui: save warnings from non-build context 1afb2a2 bitbake: toasterui: avoid variable name conflict 86aefcd bitbake: toaster: Update API 0d39bee bitbake: toaster: link task order to right tasks page bf8dcb4 siteconfig: Unbreak after sstate changes some time ago d62302f sstate: Remove name sstate parameter 633818c sstate: Fix an error handling the taskname dba6cdf README.hardware: tweak edgerouter instructions fa3574b README.hardware: drop routerstationpro in favour of edgerouter 501ea83 local.conf.sample: drop routerstationpro in favour of edgerouter 1e1f252 routerstationpro: drop 09d5f9f ref-manual: Added PYTHON_ABI and PYTHON_PN variables to glossary. 5d6dcdb dev-manual, ref-manual: Added notes for Systemd-based images. 6ff92a6 dev-manual, ref-manual: Additions for making an image more secure. ef7f9ab ref-manual: Edits to the SDKMACHINE variable. 35869b5 ref-manual: Updated the "x32" section. 72747d2 ref-manual: Updates to NOISO variable. 7b1fc30 ref-manual: Updated bad conf/distro/<distro>.conf directory. 89e4e72 ref-manual: Added the migration section for 1.6. 583b6a4 ref-manual: Edits to RDEPENDS variable. 2741cd5 ref-manual: Added links for some new variables. 4f086df ref-manual: Edits to the COPY_LIC_DIRS variable in the glossary. 3e52a18 ref-manual: New descriptions for IMAGE_TYPEDEF and COPY_LIC_DIRS. f961183 ref-manual: Added COPY_LIC_MANIFEST variable to glossary. 56c776d bitbake: cooker: Overwrite IMAGE_BASENAME to default in custom image 0723102 bitbake: hob: fix customization of empty image recipe f41241c bitbake: hob: adding INHERIT += " testimage " affects image recipes list 21f9cc2 gcc: enable multilib setup for powerpc64 arch 828b675 util-linux: fix parallel build issue fffd116 SDK default deploy directory 660c27f poky.conf: added Poky 1.6 as tested distro b5ebb5e poky-tiny: enable LFS for uclibc 082a417 bitbake: toaster: fix mis-detection of targets as images 432505d bitbake: toaster: fix help texts not showing for most tasks fee85f0 gtk+3: set proper FLAGS for native 7c0ca0b coreutils: fix search paths for libstdbuf.so 90c2817 libarchive: Add PACKAGECONFIG for lzo 5d63aac selftest/sstatetests.py: Added 'populate_lic' to ignore_patterns b996f22 python: fix build error with Readline 6.3 69a88da rootfs.py: introduce USE_DEVFS check 5d93e04 cmake: Remove dependency on ncurses 85783e5 cmake-native: Stop building ccmake 84aeaa4 Revert "qt-mobility: remove /usr/lib from ld rpath-link option" d2c395a send-error-report: show response de4d7c3 gcc-target: remove infodir c04e085 ed: remove infodir 71bed65 cmake: Add ugly hack from meta-qt5 to prevent cmake trying to detect qt5 342322c sanity: testimage needs DISPLAY set only for qemu targets 6d6d0b8 systemd: backport patch to avoid assertion failures d67e087 dbus: backport memory leak patch for error when listing services ed7afe2 dbus: backport fix for bus activation under systemd session cd13b76 alsa-tools: Fix build without x11 a5775ab bitbake: user-manual-metadata.xml: Added new section on mapping functions. 3e528d3 Make ppce300c3 tune hard-float by default 8b0ecee eglibc_2.19: Make ppc e300c3 benefit from 603e sqrt optimizations 1eae7d2 gdk-pixbuf: pass GDK_PIXBUF_FATAL_LOADER where relevant 41f2f8e gdk-pixbuf: add an option so that loader errors are fatal a684808 libpam: fix multilib packaging issue for pam-plugins 8b63ff3 wayland-native: disable unused macro checks to fix build issue on Centos5.x ae7a079 kmod: fix O_CLOEXEC not supported on old kernel c48aff8 openssl: Fix pod2man des.pod error on Ubuntu 12.04 3d456fc Qemu:Arm:versatilepb: Add memory size checking 3008b12 qemu: Add addition environment space to boot loader qemu-system-mips f4dc1e5 core-image-lsb: enforce pam as a needed distro feature 1588b02 image/image-prelink/image-mklibs/sanity: Drop pointless EXPORT_FUNCTIONS 02e455f qemux86-64: re-enable paravirt guest, bring it in sync with qemux86 377ce42 xorg: Fix for CVE-2013-6424 30959dd image.bbclass: add function to disable SSH DNS Lookup for Qemu 7f14950 gcc: changed multilib options handling f688f6b bitbake: bitbake: cooker: mark setFeatures command as read-only d5a0a6b documentation: Updates to get rid of PRINC variable. 9ba7a77 ref-manual: Updates to the IMAGE_TYPES variable description. 163a4e5 ref-manual: Updated to PACKAGE_GROUP and addition of FEATURE_PACKAGES. 5cf7a54 ref-manual: Added the build/tmp/work-shared directory. f82e035 ref-manual: Added the build/tmp/sstate-control directory ed997db ref-manual: Added the meta/conf/machine-sdk directory e81d0bd dev-manual, ref-manual: Removed meta-hob layer from docs. 11dad29 ref-manual: Added top-level meta-selftest directory 4638e52 bitbake: toaster: secondary sort key as table's default order 362b71a bitbake: toaster: unbuilt package dependency formats 6985696 bitbake: toaster: Update help text in format_vpackage_namehelp tag 3e15609 bitbake: toaster: Match search results form to no results form 694da9c bitbake: toaster: Increase animation duration c759892 bitbake: toaster: Fix the fade out animation bb1e3de bitbake: toaster: Small tweaks to the packages included interface a1e6fb2 bitbake: toaster: Remove trailing spaces from 'name' 3719ecf bitbake: toaster: Show "No builds found" in the builds table 7920219 bitbake: toaster: disable configvar sorts for value and files fd4579e bitbake: toaster: use deploy_dir var to obtain the license.manifest path 85eb8db bitbake: toaster: Display task description 8f791ce bitbake: toaster: fix timezone detection e1bfb5d bitbake: toaster: update saving sstate task data cd8541b bitbake: runqueue: Address issues with incomplete sstate sets d67f25d bitbake: runqueue: Fix sstate task dependency problems dee07be beaglebone: fix typo in the U-Boot config name a34497a meta-yocto-bsp: Bump layer version after the BSP changes 7254dfb Drop beagleboard, replaced by beaglebone af1e58a local.conf.sample: Update for beagleboard -> beaglebone 8fe1e24 beaglebone: Switch to linux-yocto 3.14 76b1d59 beaglebone: add OE machine definition for use with linux-yocto kernels bd072d8 poky: add edgerouter information to README.hardware 4226f9c yocto-bsps: edgerouter: explicitly set preferred version 09b489c yocto-bsps: Add a new BSP to support edgerouter b8f2106 yocto-bsps: update reference BSPs to v3.10.34 316e058 poky: set qemu BSPs preferred version to 3.14 aa27260 meta-yocto-bsp: populate 3.14 bbappend 17a18b8 linux-libc-headers: remove 3.10 recipe 7eeaf1b libc-headers: set TC default to 3.14 0902f1f linux-libc-headers: add 3.14 libc headers 82e73ee linux-libc-headers: make compression format configurable 3746a51 linux-yocto/3.14: introduce versioned recipes 0906266 Revert "zisofs-tools-native: Add missing dependency on zlib-native" 3972259 lib/oeqa: add a test target controller for EFI targets 2764a40 recipes-extended: add master image for testing purposes a4447e3 initrdscripts: add install scripts with a second rootfs 806e671 openssh: build without libbsd 49f2bc4 classes/sanity: check if SDKMACHINE setting has taken effect 79dc4f0 pseudo-1.5.1: keep install command directory mode 15056e2 libomxil-0.9.3: fix configure unrecognised option 1e51b5a toaster.bbclass: the license.manifest is located in DEPLOY_DIR edd500e sstate.bbclass: update missed sstate event cb0bb7c packagegroup-core-tools-testapps: Move GLTOOLS to X11GLTOOLS 8210928 yocto-bsps: remove linux-yocto 3.8 bbappend 4f80de9 linux-yocto/3.10: fix qemuarm build failure b8584fe sstatesig: Anchor inherits class tests 790cc61 bitbake: user-manual-execution.xml: Added how BB processes curly braces. 34f4a9d bitbake: user-manual-execution.xml: Updated "Checksum (Signatures) section. e7277a5 bitbake: user-manual-intro.xml: updated bitbake -h output 5192dfe ref-manual: Edits to the "Source Directory Structure" chapter. e674668 ref-manual: Added placeholder sections for the "Migration" section. c140238 ref-manual: grammar fix to "Licenses" section. ace87ef ref-manual: Some link changes for "Wayland" section. c43c228 ref-manual: Edits to "Shared State Cache" section. 9e19c9d ref-manual: Minor edits to "Cross-Development Toolchain Generation". e2e3365 ref-manual: Edits to "Yocto Project Components" section. ec27a78 ref-manual: Read-through edits to "Closer Look" chapter. 4a3a747 ref-manual: Edits to the "Using" chapter. a4f8da5 ref-manual: Updated the "Introduction" section. 84229e1 ref-manual: Updated the laundry list of what sections are in the manual. 09e01be ref-manual: Removed the BitBake chapter. 338b500 bsp-guide, kernel-dev: Added Cross-references to "BitBake" term df02dd8 dev-manual: WIP for YOCTO #5554. f1e9e33 dev-manual, ref-manual: Added error reporting tool information aa73618 dev-manual, ref-manual: Noting TMPDIR cannot be on NFS ff5b58e ref-manual, dev-manual: Point out "xterm" needed for eclipse use. c4f2191 xkeyboard-config: Add missing dependency on libxslt-native for xsltproc e8f55d2 distro_alias.inc: remove packagegroup-toolset-native fc49a6f bitbake: server/xmlrpc: Simlify featureset handling adba3ed bitbake: bin/bitbake: Only try and process an event_queue if it exists 87fd184 bitbake: bitbake: toaster: do not trap SIGCHLD 6448634 bitbake: prserv: Fix exit race issues ef28fcd bitbake: bin/bitbake/cooker: Ensure initial featureset is optimal f80334d bitbake: cooker: Only change self.data if it exists dd275f4 zisofs-tools-native: Add missing dependency on zlib-native 1d83256 e2fsprogs: Add e2fsprogs-mke2fs and e2fsprogs-e2fsck as recommend packages a8d076f lttng-ust: add python to lttng-ust's RDEPENDS 6b1d027 libpcap: add PACKAGECONFIG for libnl1 e1876b6 syslinux.bbclass: Enable additional kernel parameters for syslinux 23f26b5 weston : refactor to identify EGL, cairoglesv2 support 3f0425d sstate-cache-management: rm_by_stamps - discover all suffixes like remove_duplicated does fec6bd7 sstate-cache-management: skip populate_lic archives when removing duplicates 07e632a sstate-cache-management: rm_by_stamps - remove .siginfo and .done files 42b12dc sstate-cache-management: rm_by_stamps - include signatures of .sigdata. files ba65fe6 wic: Extend --rootfs-dir to connect rootfs-dirs 3c00384 wic: Report all ROOTFS_DIR artifacts 13afd35 wic: Add option --rootfs-dir to --source cbee7cb wic: Use partition label to be part of rootfs filename 550e931 wic: Add rootfs_dir argument to do_prepare_partition() method 25d16c4 wic: Hook up RootfsPlugin plugin 66bb67d wic: Add RootfsPlugin 42d0824 packagegroup-core-lsb: Limit mips64 issues to qt4 packages only 0bc2d87 libcap 2.22: fix, disable gperf detection 7cb6515 wic: Fix bitbake_env_command for 'None' case b8fd50e packagegroup-toolset-native: remove it 2f66147 core-image-sato-sdk: Drop qt4 on mips64 8feed9d make-3.81: Fix build failures with newer makeinfo c565d76 linux-yocto/3.8: remove versioned recipes fb8b51c linux-yocto/3.10: fix drm build failure d00ca40 linux-yocto/3.10: update intel common meta data 7f853aa linux-yocto/3.10: update to v3.10.34 400f831 linux-yocto/3.10: add valleyisland io 1b99904 linux-yocto/3.10: update to v3.10.33 09d875e linux-yocto/3.10: update EFI configuration 433768b linux-yocto/3.4: update mohonpeak.cfg for SATA, SMBus, LPC, WDT, crypto & highmem64g 3019972 linux-yocto/3.10: intel-core*/common configuration updates 5b59444 image.py: check file exists before deleting 0f757af package_*.bbclass: Simplify addtask 8f8e4f0 populate_sdk_*: Drop now unneeded recrdeptask flags af528b0 populate_sdk_base: add dependency of do_package_write_* tasks a56d8e9 rootfs.py: add new cleanup method a5994c0 package_manager.py: leave the __db.00* files in place 6196e18 nss-3.15.1: fix CVE-2013-5605 6a3cade nss-3.15.1: fix CVE-2013-1741 c4c31eb libtiff: fix CVE-2013-4244 4f326c8 libarchive: fix CVE-2013-0211 bb3927d autoconf: new autotest/testsuite option to enable automake test result format 95cd568 bitbake: toaster: filter tasks with cache attempts for all attempts c59e929 bitbake: toaster: fix dirinfo empty dir expansion bae133a bitbake: toaster: added file types to the Outputs column in the build 877dcd7 bitbake: toaster: add support for empty states in pages 14a8443 bitbake: toaster: show installed package name c07a294 bitbake: toaster: Fix typo in heading code 7643ba3 bitbake: toaster: insure _get_query returns distinct records 056fbc4 bitbake: toaster: blocks for custom/highlighted navigation and breadcrumb links 405e190 bitbake: toaster: add Image detail and multiple targets to dashboard 8c3eb5e packagegroup-toolset-native: Update after ocf-linux -> cryptodev-linux change 5eceedf ocf-linux: remove recipe 815798d openssl: replace dependency ocf-linux with cryptodev-linux b895ee7 cryptodev-linux: add recipe cbefaa3 run-postinsts: fix issue with checking IMAGE_FEATURES ad1447d build-appliance-image: update to head ae938eba92b2c89a9fd91161e57c5dbc594ad4ad e4fb1bd gummiboot: fix the installed but not shipped warning 55de991 gummiboot: use objcopy from the env 0e5f6e0 gummiboot: add COMPATIBLE_HOST e69f308 gnu-efi: fix the LIBDIR c4eeaa8 bitbake: knotty: Show a link to the logfile for failed setscene tasks 6ef47ec bitbake: knotty: Split error output onto stderr 6f29f7d bitbake: knotty: Ensure the progress bar shows on stdout cf97773 bitbake: msg: Add stdout/stderr filters 18bbfc4 bitbake.conf: Adds bitbake qemu option for ppc e6500 & ppc e6500-64b. 8c1e43c bitbake: cooker/event: Overhaul sanity test mechanism 172095e bitbake: runqueue/siggen: Pass in commandline options to dump_sigs() 774eb75 bitbake: bitbake: Force -S option to take a parameter 604dd73 selftest/bbtests.py: Fixed regex and added bitbake output to test_warnings_errors ebfd075 lsb: fix lsb_log_msg() implementation 61b088a image.bbclass: replace rootfs with /dev/root b25e90f systemd-serialgetty: update to match systemd 211 3ae9225 git: Fix perl paths in scripts and population of the perltools package dc29d2a base.bbclass: Merge two ConfigParsed event handlers b015b64 sanity.bbclass: Update against bitbake sanity event changes 2651e11 scripts: Update after addtion of parameter to bitbake -S 0f77f3f base.bbclass: Run oe_import before other INHERITs 315542d meta-skeleton: Add name attribute to SRC_URI 7f880e2 wic: Add SD/MMC-Cards support to '--ondisk' param 68f3a57 apt/package_mamager: Ensure WORKDIR is used for lists directory b503d35 package_manager: Fix apt-ftparchive index creation problems da09709 package_manager: Ensure we don't process directories twice 9006f9b mmc-utils: Add user space mmc utilities for eMMC 2614e61 base-files: do_install.sigdata: remove the depends on DATE f782e39 meta/conf/bitbake.conf: add STAMPCLEAN to BB_HASHBASE_WHITELIST 8add7ae util-linux-native: fix qsort_r for CentOS 5.10 cdf0d97 cpio rootfs build: Avoid modifying rootfs dir 0ba7839 gnupg: CVE-2013-4576 0abd941 gnupg: CVE-2013-4351 f6548c5 Security Advisory - openssl - CVE-2013-6449 61fd2e4 Security Advisory - openssl - CVE-2013-6450 3411716 Security Advisory - openssl - CVE-2013-4353 ae938eb local.conf.sample.extended: update it for the archiver 39846dd bitbake: data_smart: Fix caching issue for double remove references 7ae43dc bitbake: test/data: Add in test for append/prepend/remove override operations 7fa5131 bitbake: toaster: format packages with size = -1 64ba1fa bitbake: toaster: Small fixes in tasks UI bca174a bitbake: toaster: Fix help text typos b721972 bitbake: toaster: Remove commented-out code from views.py 7d9f1e2 bitbake: toaster: Change placeholder attribute in variables table 55f6a35 toaster.bbclass: update buildstats event data ae79fa3 Enable yasm in gstreamer1.0-libav by default 6549a43 piglit: ship files with correct permissions 7881b30 bind: remove nslookup from FILES 895cf82 bind: fix no bind-utils package ffa8bbf binutils: Add fixes for binutils issue 16428 8dd12d7 perl-native: fix path in Config.sh for sstate d385bf1 tcl: fix path in Config.sh for sstate 0e58578 bitbake: runqueue: Fix sceneQueueEvent to use the correct hashes 41ed412 bitbake: hob: fix set_extra_setting function 22af803 bitbake: cooker: delVar in removeConfigurationVar 843e3ec bitbake: user-manual-metadata.xml: Added varflag for vardepvalueexclude. 37f7820 bitbake: user-manual-metadata.xml: Edits to "Basic Variable Setting" c0a13d2 bitbake: user-manual-metadata.xml: Sections to handle variable setting added. 019c868 bitbake: Makefile: Added publish tag so the book can be published. b80943f dev-manual: Added notes saying you need to work from same branches b990aa8 ref-manual, yocto-project-qs: Notes and infor for buildtools issues 752bf31 ref-manual: Updated TMPDIR description for NFS issues. 0977097 ref-manual: Fixing whitespace. 20a17fd dev-manual: Added more detail for using an external SCM. 4a40d73 yocto-project-qs: Updated example toolchain command. 4597d2a adt-manual: Fixed example bitbake command. ef627f8 yocto-project-qs, ref-manual: Fixed core number defaults 32890f2 adt-manual, ref-manual: Cross-toolchain details added. New class also. c441f5f dev-manual, ref-manual: Changed core-image-basic to core-image-full-cmdline 7a5cd21 ref-manual, mega-manual: Added manifest file information 97cfb8c dev-manual: Added new summary parameter to do_split_packages list. 52a4508 ref-manual: Edits to "Running Specific Tasks" e8c6097 dev-manual: Read-thru edits for "Maintaining Open Source License..." c70b6e8 dev-manual: Read-thru edits to "Profiling with OProfile" 46330cd dev-manual: Read-thru edits to "Examining Builds Using the Toaster API" eb0a5d5 dev-manual: Read-thru edits to "Debugging with the GNU..." section. 914b3e0 dev-manual: Read-thru edits for "Performing Automated Runtime Testing" 128cdcf dev-manual: Read-thru edits to "Creating a Read-Only Root Filesystem" 46a4fb2 dev-manual: Read-thru edits for "Using an External SCM" d8b69fb dev-manual: Read-thru edits for "Selecting an Initialization Manager" 80e7223 dev-manual: Fixed a reference to the systemd class. e462a1f dev-manual: Read-thru edits for "Building Software from an External Source" fd2846c dev-manual: Read-thru edits to "Working With Packages" a4103b8 dev-manual: Read-thru edits for "Building a Tiny System" 432138a dev-manual: Read-thru edits to "Creating Your Own Distribution" 24ee5fa dev-manual: Added yocto-layer script note and updated kernel version fceba79 dev-manual: Typo fixed. 43d93f3 dev-manual: Read-thru edits to two sections - new machine and libs 58a7688 dev-manual: Read-thru edits to "Writing a New Recipe" aca4b48 dev-manual: Read-through edits to "Customizing Images". 23da05f dev-manual: Read-through edits to "Understanding and Creating Layers". c7fb9a6 dev-manual: Read-through edits applied to "Models" chapter. ccd0e24 dev-manual: WIP - Some edits to Chapter 4 from the read-through. 4032e1a dev-manual: Added Haswell BSP to list of BSPs in meta-intel. dd72756 dev-manual: Read-through edits to Chapter 3. cee847a dev-manual, mega-manual: Updated the Git Workflow figure. a61dd59 poky.ent: Fixed distro name variable to be "daisy" rather than "Daisy" 90dfac0 dev-manual: General edits to the getting started chapter. 2e56389 dev-manual, yocto-project-qs: Recommending 50Gbytes of free space now. 68943bc dev-manual: Added a cross-reference link to BitBake term. 4a6d886 dev-manual: Added cross-reference to the build system. bda6b1a dev-manual: Minor edits to the "Introduction" chapter. 914b2ea adt-manual: Added a word for better grammar. 1b9e73e poky.ent: Added "Daisy" as the DISTRO_NAME variable. 5320b97 adt-manual: Fixed "autotools-based" to "Autotools-based". 79ac80d adt-manual: Fixed Cross-ref target title and applied minor formatting. 529b65a adt-manual: Fixed another instance of BitBake command. 08531f2 adt-manual: Minor edit to default installation directory. 8a8ae81 adt-manual: Fixed occurrences of "BitBake command". e1c1615 adt-manual: Added bold formatting to list leaders. 215718f adt-manual: Minor formatting change. 02fa765 adt-manual: Added a link to BitBake term and fixed some formatting. 720cdab adt-manual: Edited the "Perf" bullet item. 2f0f79c adt-manual: Added cloning poky as a way to have QEMU available. 2edf033 adt-manual: Restructured opening organization. 8986c2e yocto-project-qs: Edits to opening paragraph. 0e8cb1f yocto-project-qs: Added a link to the BitBake section in ref-manual. 4741bb0 yocto-project-qs, poky.ent: Misc fixes in the Quick Start: 35e0265 yocto-project-qs: Added recommendation for cloning YP bits. 65cef19 yocto-project-qs: Eliminated "don't" contraction. 43fc5fd yocto-project-qs: Re-wording for the introductory video item. ca3fbbc yocto-project-qs: Fixed link to go to Build Appliance page. 708dd32 ref-manual: New variables added and some edits as well 2f643ad kernel-dev: New step to "Generating Configuration Files" section. a41113c ref-manual: Added CONFIG_INITRAMFS_SOURCE and edited INITRAMFS_IMAGE_BUNDLE variables. bcd9917 ref-manual: Edits to "Understanding What the Build History Contains" section. ad49ddd ref-manual: Edits to TOPDIR variable. 9953555 ref-manual: Edits to the "Maintaining Build Output Quality" section. 89de0ba ref-manual: Added BUILDHISTORY_PUSH_REPO to glossary. 3233859 ref-manual: Added BUILDHISTORY_COMMIT_AUTHOR to glossary. 47ca210 ref-manual: Added BUILDHISTORY_COMMIT to glossary. f3927f3 ref-manual: Added BUILDHISTORY_IMAGE_FILES to glossary. 3e0d532 ref-manual: Updates to "Maintaining Build Output Quality" 2da4610 ref-manual: Added BUILDHISTORY_SDK variable. 98fee9b ref-manual: Edit to BUILDHISTORY_DIR_IMAGE variable. 5f36c00 ref-manual: Added BUILDHISTORY_DIR_PACKAGE to the glossary. 199a4b3 ref-manual: Added BUILDHISTORY_DIR_IMAGE to glossary. 6ee63d0 ref-manual: Added BUILDHISTORY_DIR to glossary. 4a39d82 ref-manual: Added BUILDHISTORY_FEATURES to glossary. 81f7ff3 documentation: Fixed "Relased date" for the 1.5.1 entry 57c0dd6 dev-manual: Added note about Project names in Eclipse. 5e2d6a3 ref-manual: Fixed error in example for export XDG_RUNTIME_DIR 2c92027 ref-manual: Added directfb to DISTRO_FEATURES list chapter. 93ad02d ref-manual: Edits to PARALLEL_MAKE in the glossary. fdd99bc ref-manual: Added ICECC_PARALLEL_MAKE to glossary. 478f1b7 bitbake: toaster: replace package dependency tag w/ view queries 70f1a3d bitbake: toaster: clean exit on bb server shutdown 1913a17 bitbake: toasterui: save missed sstate tasks 1d20fc4 bitbake: toaster: select recipe based on PN name a6c3cb7 bitbake: toaster: Remove circular dependecies from packages/recipes da1b795 bitbake: toaster: combine ready functions f5d616e bitbake: toaster: add search by section to all recipe page 9e376db bitbake: bitbake toaster: check the file_name with the content of the IMAGE_FSTYPES variable 2d4199b bitbake: toaster: apply filter only on selected attributes 4f44b8b bitbake: toaster: Change "0 found" to "No found" cf3d6bd bitbake: toaster: Update local configuration counter 1b72110 bitbake: toaster: Add help text to filters 259611b bitbake: toaster: Fix alignment issue in searchform ecfb339 bitbake: toaster: fix package size 1st sort order 0525edb bitbake: toaster: Change objectname 'packages' to 'packages built' ef10636 bitbake: toaster: reset default filter for configvar page on new searches 4f02193 bitbake: toaster: warn new filter replaces existing filter 604d2c8 bitbake: toaster: Revert "added file types to the Outputs column in the build page" 888ceb1 tune-ppce6500: Fixes a typo in tune config file for e6500. d777d4a glib-2.0-native: Fix DEPENDS 169d67e classes/binconfig: fix indentation in python function 5d8552e classes/staging: ensure do_populate_sysroot re-execs on changes to sysroot preprocessing funcs ba6caa0 buildstats: use TaskBase time for elapsed time bdbc158 staging: Save out provider information into the sysroot 21169c3 archiver.bbclass: emit patch series files for original src 4a91e14 archiver.bbclass: make it can filter the license 39ea974 gtk-engines: move engine schemas to a dedicated package cd81724 gtk-engines: don't inherit gtk-icon-cache 1f85f07 util-linux: build setpriv requires libcap-ng 228abf2 connman: upgrade to 1.22 9b575fd libsoup-2.4: fix compiling failed while mips-gcc optimization enabled db827dd acl: fix the order of expected output of getfacl 299fbbf bitbake: hob: output filenames based on initial recipe name 7dd4bf6 bitbake: fetch2.URI: Set username/password should not change the other 57484d6 bitbake: fetch2.URI: Support URIs with both query strings and params aca2d14 bitbake: fetch2.URI: add support for query parameters 64fdd3a bitbake: tests.fetch: Remove debug assert 86860bb bitbake: fetch2.URI: Coerce urlparse to use netloc for all schemes 24979a1 busybox: disable fsck.minix and mkfs.minix 004f9be classes/image: ignore modules.* changing during multilib image construction 9ce1f7d classes/kernel: move module postinst commands to kernel-base 0c3d576 local.conf.sample.extended: update for the archiver 7c0a782 gtk-engines: removed gnome inheritance e2d24f5 classes/image: disable pam nullok_secure with debug-tweaks 1f44904 archiver.bbclass: move a few code to copyleft_compliance.bbclass 2c7d20c package_rpm.bbclass: archive the source to srpm package cbcf5b2 archiver.bbclass: refactor it f0714d1 classes/archive*.bbclass: remove archive-*-source.bbclass 3175653 bitbake: toaster: fix task elapsed time calculation 4cdd56f bitbake: toaster: image information views e94f0b4 bitbake: toaster: add jquery treetable plugin 6f5e196 bitbake: toaster: filter out setscene tasks in recipe details d5ff301 bitbake: toaster: Amend failed tasks behaviour 3a36186 bitbake: toaster: Set display of "Cache attempt" column 496365c bitbake: toaster: Remove extra space in the breadcrumb 8936cec bitbake: toaster: Change "Package version" to "Version" 4f812cd bitbake: toaster: Remove trailing spaces from 'name' c9065cb bitbake: toaster: Add link to the Toaster manual f191ab0 bitbake: toaster: measure task duration with server-side timestamps 888683d bitbake: ConfHandlerr: Use full path in variable history 99c08ee gnome-doc-utils: removed gconf inheritance 31a19bc gsettings-desktop-schemas: removed unneeded class inheritance 82191fa gnome-mime-data: removed gconf and gtk-icon-cache inheritance ac23389 gst-plugins-gl: removed gconf inheritance 6579bf7 gnome-desktop: removed gconf inheritance dfb57a1 core-image-minimal: allow user to set size 7df7404 python3: sync module dependencies from 2.7 dd1e12a generate-manifest-3.3.py: sync descriptions with 2.7 version 8d078be libsdl: add missing libglu dependency for openGL 54beec1 kernel-arch.bbclass: add arm64 support to U-Boot architecture map 68acafd runqemu: Add option for custom BIOS directory e8bc7a1 base-files: use /dev/root in /etc/fstab for systemd support e6e4e0e tclibc-uclibc: Changing assignment to conditional variable assignment 35a49f6 pulseaudio: Upgrade 4.0 -> 5.0 da4c46f sstate: list missing files for toaster 4ce36a4 toaster.bbclass: read the data needed for license manifest path ea8640e gcc-runtime: Build libatomic 38d669f image_types.bbclass: use 4096 instead of 8192 bytes-per-inode 2cf83f4 buildhistory.bbclass: create proper dependency files for SDK 0ec27e6 image.bbclass, license.bbclass: adjust the name of list_installed_packages() 483d5a4 rootfs.py, sdk.py: adjust/create the wrappers for creating installed packages list d91e356 package_manager.py: create separate class for installed packages listing 5a78852 linux-dummy: provide kernel-modules (empty) package 93532df cogl-1.0 : Update to 1.16.2 release 5e4ca62 gsettings-desktop-schemas: Updated to 3.10.1.bb af63a09 cairo: Add 'egl' and 'glesv2' PACKAGECONFIG options 0e849f0 scripts/cleanup-workdir: Fix a comment typo 21a3ffb e2fsprogs: return error when failed to populate fs d5982a2 alsa-tools: fix build when x11 and gtk+ not available 08808c9 perf: add libexec and traceevent to packages fe0287c fontcache.bbclass: add fontconfig-utils runtime dependency e270076 genext2fs: remove it b3f83a2 generate-manifest-2.7.py: sync with python-2.7-manifest.inc 6bffd21 generate-manifest-*.py: set SUMMARY instead of DESCRIPTION 7425f3b python: add python-mmap to python-multiprocessing RDEPENDS 77de11f x264: add perlnative to inherit 29ee5c1 useradd{-static}: Ignore useradds on nativesdk 49aad7d bitbake: runqueue: Remove use of waitpid on worker processes 99913df alsa-tools: fix build when x11 and gtk+ not available a0c8357 sgml-common-native: fix the generation of sgml-docbook.cat 779f593 expect: fix do_install failure on SLED 11.2 aec1194 package_manager: Use apt-ftparchive for deb packages 5baa4d7 openssh: Update init file to add ED25519 Key generation 724cdda tar: add knob whether acl.h are checked 9e10db5 gettext-0.16.1: kill target m4 macros from sysroot 7fe34be pulseaudio: Make it compatible with systemd-209 2c10473 Upgrade to systemd 211+ ac4ff56 bitbake: runqueue: Revert child signal handler for now ea52b5e bitbake: runqueue: Don't catch all child return codes 0150bc3 bitbake: runqueue: Really fix sigchld handling cfd1c4e pixbufcache: Fix librsvg-native build 08303af autotools: Exclude variables from autotools_copy_aclocals e58089b bitbake: runqueue: Ensure handler does not recurse 6bbb179 bitbake: runqueue: More carefully handle the sigchld handler 1f16ca9 bitbake: hob: sync after image deploy 92155fd bitbake: runqueue: Don't error if we never setup workers e8476a9 gettext: upgrade from 0.18.3.1 to 0.18.3.2 bb9042a grep: upgrade from 2.16 to 2.18 1d82897 sudo: upgrade to 1.8.9p5 4aa61f2 alsa-tools: update to version 1.0.27 7f035ad directfb-examples: update to 1.7.0 a6ce5f4 directfb: update to 1.7.1 78565c8 qmmp: update to 0.7.5 3c70ad6 docbook-sgml-dtd-native: remove catalog file when do_clean 5760485 boost: Pass CFLAGS, CXXFLAGS and LDFLAGS correctly into boost.build 888447c packagegroup-core-tools-testapps: added connman tools and tests 4c48582 packagegroup-core-tools-testapp: added 3G tools 9f29b9f apt-native: Install apt-ftparchive 331962f mips64-linux: set ac_cv_sizeof_ssize_t 963374e make: add 'inherit pkgconfig' 2195006 linux-yocto-custom: Use SRCREV_machine e73f0f1 lib/oe: turn oe into a namespace package bb18b49 intltool: Define DATADIRNAME=share for uclibc based systems d3ffa39 util-linux: scanf_cv_alloc_modifier changed from 'as' -> 'ms' 7d95e81 glib-2.0: Fix localedir expectations for uclibc 62b3851 gnutls: Link in pthread explicitly for uclibc 60e2df2 uclibc: Remove iconv.h d8ebc75 uclibc: Implement clock_adjtime() d40ac96 bitbake: toaster: added file types to the Outputs column in the build page 3cbe113 bitbake: toaster: Sort layers in alphabetical order 1caad7d bitbake: toaster: Remove the data-toggle attribute c1f97ce bitbake: toaster: Don't show clear search button if text input field is empty a3ccb73 bitbake: toaster: Fix Recipe sorting in tasks table b2e5cab bitbake: toaster: Not using task_color tag for execution heading d24584f bitbake: toaster: Presentation fixes for task.html e3a92c1 bitbake: toaster: Shorten dependency labels 3bc398e bitbake: toaster: Give an extra space to the caret f4755ed bitbake: toaster: Add no search results page 92c98c4 bitbake: toaster: Fixing "Show all builds" link 99f91e4 bitbake: toaster: Amend help text in package_built_detail.html 2873103 bitbake: toaster: Small tweaks to the no results page d7fde8b bitbake: toaster: Replace hyphens with underscores in package name 2ac4387 bitbake: toaster: Format package size in recipe.html bb7776a bitbake: toaster: Make Order column part of the minimum table 1f83c7f bitbake: toaster: Move <tbody> outside for statement be778cd bitbake: toaster: improve recipe matching for native tasks 513722d bitbake: toaster: fix target file inode type information e665de5 bitbake: bitbake: cooker: some IMAGE_FEATURES not recognized d3d3a2c bitbake: toaster: add errors and warnings listing 1db32b0 bitbake: toaster: Add counters to filters 5396191 bitbake: toaster: add license manifest path to database 839f304 bitbake: toaster: populate target image file table a3eb7da eglibc: Update SRC_URI to point to final download location f7fabf1 wic: Use pseudo for ext mkfs command 2b4a00a wic: Use mke2fs to create the ext2/3/4 image 463cd34 Create gstreamer-1.0 package groups 6e483e9 gnomebase: remove trailing whitespace 9a928c5 oe-setup-builddir: small rework 9104a32 bitbake: runqueue: Improve sigchld handler 1960f6b populate_sdk_deb: Fix meta-toolchain-sdk with amd64 ARCH d6dc48f lsbtest: fix comparison bashism 24d1724 btrfs: patch to allow for relative paths 5ab5b77 bind: Update to 9.9.5 f7557a1 dhcp: Update to 4.3.0 4a4be6f util-linux: Update to 2.24.1 deed314 populate_sdk_*.bbclass: remove old rootfs_list_installed_depends() 6029af2 buildhistory.bbclass: Fix dependency files creation d1161cb bitbake: bitbake-worker: Ensure children have default sigterm handler e1d7a45 bitbake: bitbake: fix typo in variable name bf01a9a bitbake: toaster: fix 'show all' labels for tasks and variables 7af7e85 bitbake: toaster: add 'bblayers.conf' files to local config filter 324791a bitbake: toaster: add empty outcome support to task page 65c298d bitbake: toaster: Fix help text for task details outcome 6b4aedc bitbake: toaster: erase checks for stop command bff408a bitbake: toaster: add commands to list and delete builds 00ca499 bitbake: toaster: write files-in-image to the database 7a0add7 bitbake: toaster: update database schema 5f05bdd classes: Add gummiboot class 9d04183 bootimg/grub-efi.bbclass: allow using a different class for EFI images de18567 recipes-bsp: Add gummiboot recipe b588a24 recipes-bsp: add gnu-efi recipe 798877e mtd-utils: Update version to include fixes after 1.5.0 7a8f3c7 e2fsprogs: fix cross compilation problem 614faa6 .templateconf: New file for customized template defaults 5662ab6 scripts/oe-setup-builddir: Keep track of TEMPLATECONF setting 61e8fdb oe-init-build-env: Improve script sourcing detection. cdf4473 oeqa/utils/qemurunner: search for login string in the entire boot log 724b83d oeqa/targetcontrol: fix loading a controller using a class name 517bc16 oeqa/targetcontrol: allow a custom port for SimpleRemoteTarget 6d85ec3 diffutils: enable ptest support fe81406 xf86-video-intel: add recipe for 2.99.910, remove the git one a3f0852 classes/sstate: don't overwrite buildhistory vardepsexclude ec8490a dmidecode: add powerpc to compatible host abb1bde libsdl: bump PR 30f8ec5 kernel-yocto: replace '=' with '+=' 1db8eb4 ptest: Don't enable ptest for nativesdk and cross-canadian packages b130d75 eglibc: Fix build for FSL ppc/fpu a511b25 ltp: Don't link against libfl 3beb482 package_deb: Map TARGET_ARCH x86_64 to DPKG_ARCH amd64 678cca4 oeqa/utils/qemurunner: use the right kill call so we don't send SIGTERM to bitbake-worker 5f81d9d bitbake: runqueue: Use SIGCHLD instead of polling waitpid 324969e bitbake: server/process: Optimise latency when finishing idle functions 5dcc20b bitbake: server/process: Drop unnecessary exit delay efdc159 bitbake: server/process: Use a pipe for quit events instead of Event() a445e03 bitbake: knotty: Remove latency when exiting 75b9f93 bitbake: knotty: Add missing continue statement for runQueueExitWait event aadfea6 bitbake: providers/runqueue/taskdata: Optimise logger.debug calls 0b4ae1c bitbake: cooker: Handle SIGTERM more gracefully 6f3a537 bitbake: server/process: Deal more gracefully with SIGTERM 8fbe218 bitbake: server/process: Use the setFeatures command on the server instead of a manger d51bf8d bitbake: cooker/command: Add setFeatures command b28f007 bitbake: runqueue.py: Gracefully handle a missing worker process bb335f9 bitbake: runqueue.py: Handle worker disappearing gracefully 1568879 bitbake: bitbake-worker: Gracefully handle SIGTERM a7bc031 bitbake: knotty: Deal with exceptions not resetting terminal configuration da6926b bitbake: user-manual: Review edits applied throughout from Paul Eggleton. 40ab940 bitbake: user-manual: Review edits applied from Paul Eggleton. 96294ee bitbake: user-manual: removed SVK references - all types. ead6001 bitbake: user-manual-ref-variables.xml: Edits to BB_GENERATE_MIRROR_TARBALLS variable c390221 bitbake: user-manual-metadata.xml: Added BB_ORIGENV example. 74d2a10 bitbake: user-manual-metadata.xml: Grammar fix. 197e7e3 bitbake: user-manual-execution.xml: Review edits for "Execution" chapter. c509510 bitbake: user-manual: Review edits from Richard (second draft) 4cd882b bitbake: user-manual: Added "Hello World" Appendix. 9b3e31e bitbake: user-manual-fetching.xml: Re-write of the Fetching chapter. cd0c067 bitbake: user-manual-metadata.xml: Title change, sections lifted. b82b3d2 bitbake: user-manual-fetching.xml: Removed a link. 3801023 bitbake: user-manual-execution.xml: Review edits applied. 9996f31 bitbake: user-manual-intro.xml: Review edits to Introduction chapter. 0c5bf41 bitbake: user-manual-execution.xml: Draft of "Execution" chapter 013c9d9 bitbake: user-manual-intro.xml: Added sections 117726c bitbake: user-manual-bitbakecommand.xml: Added anchor tag for the chapter. f3caa2b bitbake: user-manual-fetching.xml: Re-write of "File Download Support" chapter. b4b3bf5 bitbake: user-manual: Added new chapter to cover BB execution. 34bcd96 bitbake: user-manual-intro.xml: Added an introduction to the manual. 8aaff25 bitbake: user-manual-ref-variables.xml: Added a note qualifying the variables. 0510569 bitbake: user-manual-metadata.xml: WIP - Some edits in the checksum area. 1d9c02e bitbake: user-manual-metadata.xml: Rewrite "Accessing Datastore Variables Using Python" 666a7b0 bitbake: user-manual-metadata.xml: Re-write the "Dependencies" section. bfafc2f bitbake: user-manual-metadata.xml: Re-write of "Variants - Class Extension Mechanism" section. 3940d59 bitbake: user-manual-ref-variables.xml: Added BBVERSIONS variable. 233d644 bitbake: user-manual-metadata.xml: Re-write of "Events" section. c0239ff bitbake: user-manual-metadata.xml: General cleanup to "Parsing and Execution" 80127f4 bitbake: user-manual-metadata.xml: Edits to "Variable Flags" section ae96cbb bitbake: user-manual-metadata.xml: Rewrite of the "Tasks" section. faaca84 bitbake: user-manual-metadata.xml: Rewrite of the "Functions" section. d022ec3 bitbake: user-manual-ref-variables.xml: Edits to SRC_URI. 6f8f51f bitbake: user-manual-ref-variables.xml: Edits to BBCLASSEXTEND. 1e305ec bitbake: user-manual-metadata.xml: Edits to "Sharing Functionality" dc42d88 bitbake: user-manual-metadata.xml: Add bare bones of a scheduler section 624e59f bitbake: user-manual-metadata.xml: Add details about general variables used by BitBake bd23241 bitbake: user-manual-metadata.xml: Add details about environment variables used by BitBake d327013 bitbake: toasterui: fix task identification f3294d8 bitbake: toaster: fix issues in the build table 3f16624 bitbake: toasterui: fix status update on failed sstate tasks 24f0617 bitbake: toaster: update database schema 0bad725 bitbake: toaster: Move long content toggle to main.js 4717749 bitbake: toaster: implement the configuration pagedreyna/configure-detail-view 31d4bf8 bitbake: toaster: View detailed information about a task 2bd19cd bitbake: toaster: Bug fix in reload page with parameters 7661585 bitbake: toaster: Fix breadcrumb date format in detail pages 48a93d6 bitbake: toaster: Sort packages and dependencies in recipe.html 5a5e7c0 bitbake: toaster: Change popover headings in recipes table 5462bd0 bitbake: toaster: Change help text for Section f0dce42 bitbake: toaster: Hide the applied filter tooltip on click e01f790 bitbake: toaster: Add .muted class to disabled checkboxes 33203ce bitbake: toaster: Set the right styles for definition lists fd52dfd bitbake: toaster: Set correct string for missed sstate attempts a686734 bitbake: toaster: Remove inline styles in h1 438578e bitbake: toaster: extend Tasks to include Time, Disk IO, and CPU Usage 93aa4ab bitbake: toasterui: add asserts on expected values 0daa189 bitbake: toasterui: task data structure in toasterui 1660519 bitbake: bb/ui: store_dependency_information optimization 06f9059 bitbake: toaster: array-assignment fix from Chome 6fc2462 bitbake: toaster: mark dependency packages 3d0bb41 bitbake: toasterui: adding new task outcome empty 7008a24 bitbake: toastergui: fix task executed status display 4ae5981 bitbake: fetch2/wget: Fix downloadfilename functionality aacc381 toaster.bbclass: read list of files in image abe417e classes/uboot-config: ignore doc varflag 26b65aa documentation.conf: sync with the Yocto Project reference manual 3384659 documentation.conf: drop obsolete variables cd1195b opkg/dpkg: remove the postinstalls 5159ddc run-postinsts: use it for opkg/dpkg too 635c08c grub-efi: add oe's kernel name to the conf file f16fe3b grub git: add oe's kernel name to the conf file 155b010 grub 2.00: add oe's kernel name to the conf file f9c7936 do_rootfs: Add PACKAGE_FEED_URIS as a vardep 7af3eb8 do_rootfs: Added PACKAGE_FEED_URIS functionality ff8d8fb package.py: use subprocess.Popen for rpmdeps call d31d2e8 insane: Special case kernel modules for x32 targets 01e5d7b package_manager.py: make list_installed() list pkg dependencies too 45bbd21 dhcp-client: fix invoke dhclient-script failed on Read-only file system 41917e8 grub-efi: use autotools-brokensep 2de0100 ncurses: use lnr instead of python code 1412dda scripts: add lnr (link relative) a8dc6ae insane: check packages for absolute symlinks to the tmpdir d152d03 oe-selftest: force some values in local.conf for _sstatetests_noauto.py f5bb53a oe-selftest: optimize code in _sstatetests_noauto.py module 9c7477e consolekit: fix console-kit-log-system-start.service startup c5c99de nfs-utils: run rpc.statd as rpcuser:rpcuser instead of rpcuser:root fa7d335 rpcbind: add rpc user and run rpcbind daemon with rpc user 370717d perf: don't use oe.path.relative baa8b03 gcc-cross: don't use oe.path.relative b4455d8 lib/oe: drop custom implementation of oe.path.relative eb1e41e pango: Fix postinst by adding missing qemu-native dependency 30b5a6e libgcc: make sure symlinks are created in a valid directory 8d4c4d1 python-numpy: fix build for qemumips and qemuppc 06ecf39 gstreamer: Fix valgrind determism problem in the same way as gstreamer 0.10 fcbb05c Upgrade to systemd-stable v208 229bcde classes/buildhistory: fix task signatures changing 0f96a83 bitbake.conf: add new vardepvalueexclude varflag to BB_SIGNATURE_EXCLUDE_FLAGS 14a1971 opkg-utils: Update to latest git master 7217f92 gcc: Add upstream fix for gcc bug 58595 755aaad lttng-ust: Disable doc/examples in the build b465c0c lttng-modules: Fix 3.14 bio tracepoints 7a97440 lttng-modules: Exclude arm c065103 lttng-ust: Add version 2.4.0 46959f1 lttng-tools: Add version 2.4.0 89f30af lttng-modules: Add version 2.4.0 7056054 js: remove c7f0d76 zaurusd: remove b65041b meta-yocto/conf/distro/include/*: update image/packagegroup entries 6304180 poky-tiny.conf: update for rename of core-image-basic 4b293da e2fsprogs: populate-extfs.sh: remove it 5809ce0 image_types.bbclass: use mke2fs -d to create the ext2/3/4 image fb980f7 e2fsprogs: enable the "-d" related patches b7afd10 e2fsprogs: mke2fs: update the manual for the -d option 8f0ef72 e2fsprogs: debugfs: use the functions in misc/create_inode.c b489b94 e2fsprogs: mke2fs: handle hardlinks 9074906 e2fsprogs: mke2fs: add an option: -d root-directory 8b1553e e2fsprogs: mke2fs: set owner/mode/time for the inode bc5d73d e2fsprogs: mke2fs: create directory 243cc2b e2fsprogs: mke2fs: copy regular file ad2f1c3 e2fsprogs: mke2fs: create symlink c93421a e2fsprogs: mke2fs: create special file d8409f8 e2fsprogs: mke2fs: copy files recursively 6779ab6 e2fsprogs: mke2fs: add the ability to copy files from a given directory c859853 kernel-yocto: fix diffconfig/kernel_configme breakage e8c99b3 kernel-yocto: Disable ANSI escape codes from git branch a820b3f image.py, rootfs.py, package_manager.py: redirect stderr to stdout when calling check_output() 7b70586 wayland: Add target sysroot scanner m4 macro b7f1cca layer.conf: update LAYERVERSION_core for core-image-full-cmdline d14090a Rename PACKAGE_GROUP variable to FEATURE_PACKAGES 874ab5a classes/image: support package-management in IMAGE_FEATURES 91c372f core-image-basic / packagegroup-core-basic: rename to *-full-cmdline 2f9bf7b PR bumps to remove PRINC use in meta-fsl-arm e955446 bitbake: runqueue: Fix typo 003d317 bitbake: data: add vardepvalueexclude varflag a01af02 recipes: bump PRs 1dc068c base: Show PRINC value in the warning message a1e5348 gnutls: update regex f57b3b7 base.bbclass: Deprecate the PRINC logic 338e97e build-appliance-image: upgraded to commit 54c2e993ec129563c7ae9f3fdee74ab60da28698 8053b21 mc: Add 'inherit pkgconfig' f683023 oe-selftest: add test for image manifest file creation 79024ff gnutls: fix failure during do_compile f75c7fb gnutls: Fixed bug that prevented the rejection of v1 intermediate CA certificates. 4988a8c gnutls: CVE-2014-0092 correct return codes 4df2d01 security_flags: Update to correctly link X modules b1a75ba sanity.bbclass: support wildcards in SANITY_TESTED_DISTROS 593aef7 parted: add patch to handle deprecated readline function da4c775 readline: drop readline-only-enable-meta-key-for-a-single-call-read.patch eddaf70 readline: update configure-fix.patch ad0b28b readline: upgrade to 6.3 3b56aa9 ppp: drop if_pppol2tp.h patches 6fe2315 ppp: drop enable-ipv6.patch 3bd5c23 ppp: upgrade to 2.4.6 5da3ba5 bash: update build-tests.patch a163269 bash: upgrade to 4.3 f874ac6 mtdev: upgrade to 1.1.5 97289f7 package_manager.py: RpmPM: don't add smart channel if already added 61b8503 Revert "lib/oe/package_manager.py: RpmPM: fix issue with multilib builds" 1d2a6da gstreamer: Fix valgrind header detection 2973c12 sstate: Ensure SSTATEPOSTINSTFUNCS is accounted for in signatures 56636dd image.bbclass: add BAD_RECOMMENDATIONS/NO_RECOMMENDATIONS rootfs vardeps f51294d testimage: add task level lock 8615d57 sstate-cache-management.sh: Don't use echo -n 99183f9 sstate-cache-management.sh: Allow to remove old .siginfo and .done files for all tasks 6bfa52a sstate-cache-management: improve shown numbers of removed files 8ae183d bitbake.conf: Drop -fpermissive c2a17dc oprofile: Partially fix separate builddir support 12d613f alsa-tools/autotools: Ensure that aclocal files can be present with AUTOTOOLS_COPYACLOCAL variable b924b49 autotools: Limit aclocal files to those in dependencies b2d55fa openjade: Fix configure assumptions about file moves f03d46f bzip: Add extra files as a specific task f039550 Revert "ncurses: use ln -r to generate relative symlink" 54c2e99 bsps: update H/W reference boards to v3.10.32 9688673 bsps: update to 3.10.28 151eaca bitbake: fetch2: Drop svk fetcher e955def bitbake: codeparser: Fix var_execs to append to execs, not references 69b4614 bitbake: fetch/wget: Separate out download and checkstatus functions 5f0e3a8 bitbake: fetch/wget: Start to clean up command construction 6265744 bitbake: wget: Drop usage of old style *COMMAND variables c0bdd18 bitbake: fetch/svk: Drop usage of old style *COMMAND variable and MKTEMPDIRCMD c547149 bitbake: fetch/perforce: Drop usage of old style *COMMAND variable and MKTEMPDIRCMD 1aab9c7 bitbake: fetch/git: Separate out an ls-remote function 4b048ac ltp: Work around parallel make race 7d949e5 python-native: remove unused and duplicated sitecustomize.py 2163893 oeqa/runtime/dmesg: Ignore DMA timeout errors f363c36 ncurses: use ln -r to generate relative symlink e6e5f64 wpa-supplicant: upgrade to 2.1 0d47ab7 dpkg: Use bzip2-replacement-native 6fab87e oe-selftest: Fix test_sstate_cache_management_script* 0c6ee42 dropbear: upgrade to 2014.63 5f4e1a9 chrpath: upgrade to 0.16 5419357 augeas: upgrade to 1.2.0 8c244c6 cmake: upgrade to 2.8.12.2 147e5ae ethtool: upgrade to 3.13 1964da1 openssh: upgrade to 6.5p1 8f36e1e poky.conf: add CentOS 6.5 to SANITY_TESTED_DISTROS d6596f5 linux-yocto-dev: bump to v3.14-rc4 c2895ed bitbake: tests: add test for gitsm fetcher 0dd3a1b bitbake: tests: add missing import 2f8be92 bitbake: bitbake-selftest: enable specifying tests to run on command line 957c9a8 bitbake: fetch2: fix fetching git submodules with git 1.7.9.x or older 519f0a5 meta-hob: Drop as no longer needed 81f4dd6 bitbake: hob: append bbfiles to bblayers.conf instead of local.conf 2557667 bitbake: hob: remove the code that adds hob layer to bblayers ed19ed0 bitbake: hob: create a base hob image used to create custom images 5105603 bitbake: build: filter out expanded empty strings for lockfiles flag 59be48d hob-image: Drop as no longer needed by bitbake 069de52 autotools-brokensep: Mark recipes with broken separate build dir support 5436de5 python3: Fix make race 3f0e3b5 python3: Fix QA warning ce43612 libomxil: Fix link issue for gst-omx bbe9cb7 python: Backport CVE-2013-1752 fix from upstream 617819a weston: fix build without wayland in distro_features 415e039 dpkg: Fix dpkg-native dependency on target xz 96f40b4 webkit-gtk: Fix separate builddir support 7d9f9ec man-pages: Update to 3.60 c7d9a07 linux-yocto/3.10: integrate latest LTSI changes 967fca6 linux-yocto/3.4: update to v3.4.82 and latest LTSI 771803e linux-yocto/3.10: update to v3.10.32 bd2665a kernel-yocto: always checkout machine branch when existing validate_branches 83b20f8 gcc: Enable SPE & AltiVec generation on powepc*linux target. 9744e0f oeqa/targetcontrol: make BaseTarget an abstract class a18cd65 oe-selftest: Fix for test_rm_old_image 6a606f9 libnotify: don't use gnome.bbclass ae59f6f qt-mobility: fix metaobjectbuilder build errors b367545 mailx: fix the path to sendmail interface 643d3ab libnotify: Fix separate build dir support 1c592a8 telepathy-mission-control: upgrade to 5.16.1 116c1b5 telepathy-glib: upgrade to 0.23.2 44c690e bluez5: upgrade to 5.15 172d150 dbus: proper error handler should be given after send_negotiate_unix_fd failed 4259e6e uboot-config.bbclass: Skip the package if no valid configuration is found 8a33c5d python3: Fix race condition at high parallelism factor 5c6d9a1 adt_installer: fix issue with x86_64 8d13b43 core-image-minimal-initramfs: Use PACKAGE_INSTALL instead of IMAGE_INSTALL d2f5f2b systemd: sed installed file instead of original 49cdb68 base-passwd: sed installed file instead of original 370b2d8 base-files: sed installed file instead of original d9d6f01 initrdscripts: Add rootimage option ad30740 base: Remove pointless createCopy/update_data calls 5ab9d7e security-flags: Avoid lttng-tools issue on arm 4f976b8 security-flags: Deal with powerpc build issues 8117e01 security_flags: disable PIE flags for cups builds e47afff runqemu: Use readlink instead of realpath a76ac78 dpkg-compiler.m4: remove -Wvla (fix build on CentOS 5.8) da93a41 dpkg: fix a link problem for dpkg-native on CentOS 5.8 f66f4b0 grub: exclude .pc from POTFILES.in (fix build on CentOS 5.8) 9a2717f sqlite: rename to match upstream versioning 3ab2b7f oeqa/targetcontrol: properly get the host ip 16d271c package_manager.py: create index files for all backends in PACKAGE_CLASSES 72576e2 bitbake: hob: replace the use of hob-toolchain with populate_sdk task fe4b1ca meta-hob: remove hob-toolchain since this is not needed anymore 38057c4 sqlite3: Update to 3080301 824cc75 package_manager.py: correctly handle empty opkg-query-helper.py output 1571cf6 poky-lsb.conf: fix the include path for security_flags b3f1353 poky: Drop seperatebuilddir.inc, its included in the core now bf33e93 distro/defaultsetup: Add seperatebuildddir.inc 05978b0 pango: upgrade to 1.36.2 bff8e35 curl: upgrade to 7.35.0 e4ef6bb sstate: Drop 'SafeDep' code from setscene validation function 4584968 package: Drop do_package_write task 9161a6f documentation.conf: add a few missing task descriptions e4d1779 classes/utility-tasks: make do_listtasks a little more friendly ae12658 classes/package_tar: fix conflicts with package_deb / package_ipk d7eb0f5 classes/sstate: fix taints being undone on execution of sstate tasks 6189096 lib/oe/rootfs: Fix LDCONFIGDEPEND check a1faa7d bitbake: fetch2: Fix mirror repo tarball creation dd43700 bitbake: runqueue: Catch ValueError from pickle.loads f5a3444 bitbake: ast: Fix support for anonymous methods in wildcard .bbappend files 2b7edd5 lz4: fix CC 6a708c3 x246: Disable Altivec asm when SPE is enabled. 8d7dd9a image_types.bbclass: fix cpio IMAGE_CMD to preserve working directory 6ffc156 manifest.py: remove redundant import line 3ccc90c rootfs.py: tweak _multilib_sanity_test for ipk incremental image generation ec87d0c rootfs.py: support BAD_RECOMMENDATIONS for ipk incremental image generation 1d4462d rootfs.py: support ipk incremental image generation af9e8e9 package_manager.py: support ipk incremental image generation f4de839 manifest.py: add create_full for OpkgManifest class 363b7c9 psmisc: Update to 22.21 d48b9c9 libglade: don't use gnome.bbclass 425dc69 runqemu: Ensure ROOTFS path is absolute dffa543 insserv: enable ptest support 4590a00 gtk+3: upgrade to 3.10.7 b8c50fb git: update to 1.9.0 release 40f3e48 openssh: enable PAM at runtime based on DISTRO_FEATURES 27b81ef update-rc.d.bbclass: fix inhibit check df520a6 uclibc: Add new functionality needed for systemd 209 dc9f7d7 valgrind: integration of regression tests to ptest bb0c269 wic: Make exec_native_command() fail if a command isn't found 8e894d1 wic: Fix exec_native_cmd() path be98ee8 image-vmdk.bbclass: Don't force syslinux timeout 8e08ff4 opkg: Upgrade to v0.2.1 b88321a recipes: convert remaining SUMMARY/DESCRIPTION cosmetic issues (part 2) 7c75e86 package_manager.py: Fix $i -> %s in bb.note e15bec0 libpcre: enable ptest support d32189a opkg: Fix add-exclude.patch 00e503a gstreamer1.0-plugins-good: removed dependency on gconf 27a4be0 gstreamer1.0-libav: upgrade to 1.2.3 bfd5fa4 gstreamer1.0-plugins-bad: upgrade to 1.2.3 f616647 gstreamer1.0-plugins-ugly: upgrade to 1.2.3 36f9ea8 gstreamer1.0-plugins-good: upgrade to 1.2.3 5b1018a gstreamer1.0-plugins-base: upgrade to 1.2.3 0ce3a21 gstreamer1.0: upgrade to 1.2.3 80b1ddc libvorbis: upgrade to 1.3.4 bac8905 populate_sdk_*.bbclass: remove left over bash routines 7e595a5 buildhistory.bbclass: fix creation of installed packages list 1988f71 package_manager.py: fix installed package list creation for Opkg/Dpkg 84210fd lib/oe/image.py: add image dependency mechanism f866b2e image*.bbclass, bootimg.bbclass: add image type dependencies 6664826 avahi: handle SO_REUSEPORT not being available 0bdf56f mesa: upgrade to 9.2.5 e49eff1 libxkbcommon: Add PACKAGECONFIG for x11 bc124da image_types: minor, inline CPIO_TOUCH_INIT() 4166062 cml1.bbclass: Add diffconfig task to cml1 07e59b5 kernel-yocto: Add do_diffconfig task ccb0a58 lighttpd: introduce /etc/lighttpd.d subdir for config file includes 39b98e4 runqemu-export-rootfs: Fix missing # in comment 5456200 image_types.bbclass: Fix tar IMAGE_CMD to not change directories 3f9334b uclibc: Update to git tip a8daee2 binutils: ld-is-gold should not affect native and crosssdk recipes f5205c5 icu: Disable the default LDFLAGSICUDT for target compile f9b100e rootfs.py: Check for LDCONFIGDEPEND being empty string 2e7dd29 eglibc: Upgrade from 2.18 -> 2.19 07f49c3 valgrind: Add glibc 2.19 awareness 9f77ba3 Revert "lib/oe/image.py: fix working directory" ac499f0 dev-manual: Fixed code block example for ARCHIVER. deb3859 bitbake: toaster: implement package summary page 77eeb42 bitbake: toaster: implement recipe summary page 994236e bitbake: toaster: Make popovers mutually exclusive 49a81f0 bitbake: toaster: Make popovers scrollable ec79df9 bitbake: toaster: Make all targets links to the build dashboard 877f87b bitbake: toaster: Select a radio button by default in Filter Dialog f8f448e bitbake: toaster: Fix for task_color tag 155302a bitbake: toaster: Apply error style to cell links 2e3fee7 bitbake: toaster: Make "Edit columns" multiselect 97c81e0 bitbake: toaster: fix javascript for table filters 4157c38 bitbake: toaster: Add clear filter button to filter tooltips 985017a bitbake: toaster: Clean up main.js b4416e3 bitbake: toaster: Clean up default.css 620553d bitbake: toaster: Implementation of package detail views 4763437 bitbake: toaster: Added sorting to other columns in All tasks table 6f38844 bitbake: toaster: Fix builds view filter options to match changes in filter dialog fd86e0e bitbake: toaster: Filter Dialog fix to display filter options as radio buttons 2b2d3d6 bitbake: toaster: Removed unused 'disabled' css class in Filter dialog 3f49597 lib/oe/image.py: fix working directory d66b3d8 bitbake-prserv-tool: make help text show .conf suffix 46bc59d runqemu: add ability to skip using an existing tap device b448cf7 openssl: Fix build on uclibc 94ba459 usbutils: Patch to detect iconv support c33c645 rpm: fix a endian incompatible error in generating tag 0008cd6 bitbake: build: fix handling of task override for tasks with underscores in their names a56bd81 bitbake: parse: make vars_from_file return None for non-recipes e469b0a matchbox-keyboard: daemonize launch b582957 classes/populate_sdk_base: optimise task dependencies 77a53c5 classes/populate_sdk_base: fix race condition with do_rootfs 8dff4af eglibc-locale: add eglibc-gconv to PACKAGES_DYNAMIC 9d2594e bitbake.conf: add BBINCLUDED and BB_INVALIDCONF to config hash whitelist 8664a2a recipes: convert remaining SUMMARY/DESCRIPTION cosmetic issues e7d41d3 wayland: upgrade to 1.4.0 c8cf900 weston: upgrade to 1.4.0 a204c1e package.bbclass: do_split_packages should always return something. 8a0a958 nspr: Update to 4.10.3 b388acd libcheck: Update to 0.9.12 6168aff libxkbcommon: Update to 0.3.2 f73b951 man-pages: Update to 3.56 168d50e help2man: Update to 1.44.1 2d05f57 classes/cpan-base: fix signatures changing when perl is in sysroot ef15760 diffstat: enable ptest support 0f03282 attr: enable ptest support 29a7e79 acl: enable ptest support 4dcd9d6 lib/oe/package_manager: Make empty package directories non-fatal 088642f adt-installer: Disable multilibs 3221d97 bitbake: runqueue: Fix silly variable overlap 155f8a4 package_manager.py: move multilib prefix list computation function to RpmIndexer 4b967d9 linux-yocto/3.10: enable CONFIG_FHANDLE for standard and preempt-rt kernels 9be7acc linux-yocto/3.10: add minnow-io feature to LTSI 3fefbe3 linux-yocto/3.10: arbitrary write with CONFIG_X86_X32 (CVE-2014-0038) 088677a linux-yocto/3.10: update to v3.10.28 94a9df2 systemtap_git: update to newer version to fix a build issue b38c7cb socat: upgrade to 1.7.2.3 0db0bb6 image_types: sum.jffs2 is replaced by jffs2.sum aed1f0c image_types bbclass: use compression framework for jffs2 sum images b563b3b flex: enable ptest support e089580 flex: upgrade to 2.5.38 cb0fe9b flac: upgrade to 1.3.0 da0a4c7 report-error.bbclass: new class to save build information when errors occur 4cc0a43 package_*.bbclass: remove references to the old bash indexing routines 56a866b package-index.bb: use the new python indexing routines a0a0450 package_manager.py, rootfs.py, sdk.py: add Indexer class aed96f6 systemd: Refresh patches for uclibc b60ed2d bitbake: runqueue: Ensure we do run 'masked' setscene tasks if specified as targets a2a20ad runqemu: enforce right CPU type for qemux86/x86-64 6a6cdad buildhistory.bbclass: create wrapper functions around buildhistory_get_sdk_installed f8593b6 hwatdetect: Fix build failures from undeclared INC_PR ee151ed lib/oe/rootfs.py: fix RPM multilib issue abf22be Revert "nss: avoid to use the hardcode kernel version" 937a12d kernel.bbclass, base.bbclass: Fix support for old kernel configuration adc2172 initscripts: fix syntax error in postinsts 01268c3 nss: avoid to use the hardcode kernel version e091548 (image|rootfs_ipk).bbclass, rootfs.py: ipk multilib fixes 0fc98a6 puzzles: upgrade to r10116 d5909eb busybox-syslog: add more comments to systemd configuration file 4794dee sysstat: upgrade to 10.2.1 716557a package: Remove the before do_build constraint of the do_package task 4db39d2 meta/recipes: Remove virtclass references 3d0dccd oeqa/runtime: smart: don't run in auto mode when rpm is not the pm bfed4c0 harfbuzz: upgrade to 0.9.26 5bffece telepathy-mission-control: typo in connectivity switch b70a10c systemd-serialgetty: Update to match version in recent systemd 7b317cd initscripts: mask initscripts from systemd 92cad72 curl: fix https certificate problems 3273473 systemd: Enable building microhttpd via PACKAGECONFIG f7b44fe gmp: add configure.ac patch to append user provided compilation flags 8d17c39 sstate: Exclude SSTATE_EXTRAPATH from checksums 4021080 classes/buildhistory: avoid buildhistory triggering rebuilds (again) 93a4de6 rt-tests: version bump to 0.87 f60f802 license.bbclass: Dont create a manifest when using BUILD_IMAGES_FROM_FEEDS 9c61b63 bitbake: user-manual-metadata.xml: Edits to the "Sharing Functionality" section. d110f55 bitbake: user-manual-metadata.xml: Edits to "Conditional Syntax (Overrides)" decc756 bitbake: user-manual-metadata.xml: Edits to "Defining Pure Python Functions" 2fc9281 bitbake: user-manual-metadata.xml: Edits through syntax section a2e5746 bitbake: user-manual-intro.xml: General edits to Introduction chapter. 3cdf800 bitbake: user-manual-metadata.xml: Added "Checksums (Signatures)" section. 89058e1 bitbake: user-manual-ref-variables.xml: Review edits to several variables in glossary. ddcd91c bitbake: user-manual-ref-variables.xml: Added 11 new variables to glossary. 081d31c bitbake: user-manual-ref-variables.xml: Edits to FILESPATH. 825366d bitbake: user-manual-ref-variables.xml: Added 6 new variables to glossary: 5f59a85 bitbake: user-manual-ref-variables.xml: Edits to PREFERRED_PROVIDER. 658d885 bitbake: user-manual-ref-variables.xml: Added PREFERRED_PROVIDERS to glossary. dac581d bitbake: user-manual-ref-variables.xml: Added FAKEROOT* variables to glossary. 606e2cb bitbake: user-manual-ref-variables.xml: Added BB* variables to glossary. 799ba9a poky.conf: Add Debian-7.4 to SANITY_TESTED_DISTROS 287efe1 useradd-staticids: Adjust USERADD_ERROR_DYNAMIC condition and error message 39d9414 useradd-staticids: Fix groupadd when --user-group is selected a146d50 ref-manual: Edits to OEROOT variable. 3e54f28 ref-manual: Added link to SDKPATH variable. f670e3a ref-manual: Edits to ROOT_HOME f084e33 ref-manual: Added ROOT_HOME to glossary. 776c33e ref-manual: Added SDKPATH to glossary. ec0f9cf ref-manual: Updates to BB_NUMBER_THREADS and PARALLEL_MAKE. beb54ff ref-manual: Adds x11 to Distro Feature list. 5518885 linux-yocto: Use PACKAGE_ARCH in build dir ab9c345 linux-yocto/3.10: add powermanagement config to 32 bit common-pc 897d13a linux-yocto/3.10: integrate LTSI afc4431 package.bbclass: fix strip and split logic e9c1191 python-smartpm: really ignore conflicts during install with --attempt f962396 conf/bitbake.conf: default HOMEPAGE to blank instead of unknown 2882b13 testimage: fail if no package manifest is found 6d0f1d3 oeqa/utils: targetbuild: take proxy into account 2bdc00f kernel: use oldnoconfig before yes '' | make oldconfig b6bfcaa kernel: stop using -exec rm for deleting files 6bf21ce systemd: Fix misc journald memory bugs 410a3e1 bitbake: runqueue: Fix setscene hard dependency problems b2c7cc7 image.py, package_manager.py, rootfs.py: dump command output on error 12f47c2 lib/oe/package_manager.py: RpmPM: fix issue with multilib builds 847591e lib/oe/package_manager.py: check that package list is not empty f4fa44c rootfs.py, package_manager.py, sdk.py: Fix building from feeds feature for opkg ab8cbf3 lib/oe/package_manager.py: OpkgPM, bad recommendation handling change 8af5565 lib/oe/package_manager.py: do not use stamps d3a3b87 lib/oe/rootfs.py: OpkgRootfs, fix issue in _get_delayed_postinsts() 365b779 lib/oe/package_manager.py: OpkgPM/DpkgPM fixes b76f240 lib/oe/image.py: fix image size calculation routine ce12c1b lib/oe/package_manager.py: DpkgPM, use lock on deploy dir a150272 scripts/postinst-intercepts: do not redirect errors to /dev/null 38ffed4 lib/oe/rootfs.py: warn the user if intercept hooks fail 65a2869 lib/oe/package_manager.py: RpmPM fixes 4a6596d lib/oe/package_manager.py: moving global SCRIPTLET_FORMAT and DB_CONFIG_CONTENT to RpmPM c8f41d7 package_manger.py/rootfs.py: rename save_rpmpostinist with save_rpmpostinst 9d3c187 populate_sdk_rpm.bbclass: remove old shell code ed89fd2 lib/oe/rootfs.py: fix invoking _run_intercepts failed 9c71ee0 lib/oe/package_manager.py: fix invoking rpm save_rpmpostinist failed 4df92c6 lib/oe/rootfs.py: fix invoking rpm _handle_intercept_failure failed 62c625e Cleanup rootfs_rpm,package_rpm bbclass files 4d8982a image.bbclass/populate_sdk_base.bbclass: shift position of sdk complementary install definition ee175b5 lib/oe/sdk.py: support RpmRootfs e28b78a license.bbclass: fix license_create_manifest failed 1a1ba04 image.bbclass/license.bbclass: ajustment list_installed_packages invoking f5d35ab lib/oe/image.py: fix get rootfs_extra_space failed 3bc7a4f rootfs.py: strip kernel-abiversion useless readline a49d9f8 rootfs.py: fix uninstall uneeded pkgs failed 9efc87a lib/oe/rootfs.py: Tweak the rootfs removing operation f02cf46 lib/oe/rootfs.py: support RpmRootfs c8103fb lib/oe/package_manager.py: support RpmPM dff8a59 lib/oe/manifest.py: add rpm image manifest creation cb13771 populate_sdk_(deb|ipk).bbclass: remove old shell code e5a1642 image.bbclass: change POPULATE_SDK_POST_TARGET_COMMAND 039ba41 populate_sdk_base.bbclass: activate the new python routines 09c508a lib/oe/sdk.py: add SDK class 080ce63 lib/oe/package_manager.py: fixes for dpkg backend 0b47dc4 lib/oe/rootfs.py: use Manifest.INSTALL_ORDER b91e800 lib/oe/manifest.py: create manifests for SDK too aaa92a6 image.bbclass, lib/oe/rootfs.py: remove intercept_scripts directory f52391a Cleanup image,rootfs_ipk,package_ipk bbclass files 31906d8 lib/oe/rootfs.py: add support for opkg backend ed83ace lib/oe/package_manager.py: add support for opkg backend 2979098 lib/oe/package_manager.py: use the bitbake APT_ARGS variable 1b3e7f0 lib/oe/package_manager.py: add deploy dir locking mechanism 2ead36f lib/oe/manifest.py: create global variables for package types ab14336 package_(deb|ipk).bbclass: remove the stamp when creating package from cache fdd40ce oe/manifest.py: Add manifest creation for opkg 7fc9bda Activate the new python rootfs/image creation routines 85cc53a lib/oe/rootfs.py: add new library for rootfs creation e1bb8a6 lib/oe/package_manager.py: add new package management library 5d34962 lib/oe/manifest.py: add library for image manifest creation 8cfe555 lib/oe/image.py: add new image creation library 7b84097 lib/oe/utils.py: add pre/post process helper function 095bb00 bitbake: bitbake: build.py: create separate function for shell trap creation code 5232ba8 useradd.bbclass: Add ability to select a static uid/gid automatically edbf9ef python-pycurl: upgrade to 7.19.3 3bfb713 xserver-xorg: upgrade to 1.15.0 a493de4 xf86-video-intel: add compat patch for xorg >= 1.14.99.2 824d7a5 presentproto_git.bb: add recipe 214bf91 xf86-input-synaptics: upgrade to 1.7.3 2a5d40d libmpc: upgrade to 1.0.2 a57f2be xkeyboard-config: upgrade to 2.11 bafd0c1 libdrm: upgrade to 2.4.52 a1cc996 xtrans: upgrade to 1.3.3 c51f1b1 xcb-util-wm: upgrade to 0.4.0 21e0bd7 gdb: upgrade to 7.6.2 0ab75b9 xextproto: upgrade to 7.3.0 fa0c091 nasm: upgrade to 2.11 9203c87 binconfig: mangle ${base_libdir} 4bc6982 useradd.bbclass: Add ability to select a static uid/gid automatically 72288dd useradd.bbclass: Fix build time install issues ac656fb scripts/oe-selftest: return based on the test results ccb256e minicom: updated download link ed2f7a2 gdk-pixbuf: enable ptest 3ec94b6 gnome-desktop-testing: upgrade to 2014.1 df634f3 wic: Honor --size for --source partititions 8d008aa jpeg and directfb: cosmetic, fix perms for patches a1240a5 rootfs_deb: Fix whitespace issue 9776dbd systemtap: add aarch64 support d7c0e00 oeqa/utils: targetbuild: don't use bb.fetch anymore 4354cb2 lib/oeqa: add module for running tests outside of the build system 731acba testimage: add ability to export tests da1331b classes/populate_sdk_base: remove nostamp from do_populate_sdk 3a42fa6 bluez5: upgrade to 5.14 7496c64 sbc: upgrade to 1.2 3c9b3ef ossp-uuid: Use alternative source mirror b1d29ef openssh: drag in required PAM modules. 231634d openssh: package sshd PAM config inside openssh-sshd package 4a85e26 binutils: Add backports to resolve systemd (from git) breakage c7ee4de systemd-compat-units: Handle nfs scripts 3a590e8 build-appliance-image: Update to poky commit b37dd451a52622d5b570183a81583cc34c2ff555 d4a1eec package_regex.inc: fix a minor typo d4456f5 pcmanfm: apply a patch to the source, not a generated file b075ddb distcc: rename systemd service to distcc bc7a5b9 glib-2.0: fix race in parallel builds 4217302 systemd: add a hard dependency on udev=$EXTENDPKGV fa1b8ae iproute2: split out package for tc 45ccb49 systemd-compat-units: don't mask dbus, the recipe does this itself 3ca2ae1 dbus: mask the dbus-1 init script if using systemd 618931e classes/buildhistory: write out files in UTF-8 format 4e9eb77 sstate: Improve funciton checksums 707cdcf bitbake: data: Account for pre/postfunc functions when calculating dependencies 82f9c2b wic: Hook up --debug option 94b805f wic: Hook up BootimgEFIPlugin and BootimgPcbiosPlugin plugins e663d2f wic: Add BootimgEFIPlugin and BootimgPcbiosPlugin 73ce090 wic: Add SourcePlugin class 363488f wic: Add wic-specific bootloader subclass 3cb9301 wic: Create and use new functions for getting bitbake variables 534d9ba wic: Move some common items to oe.misc 1ddc105 binutils: Package additional file when using ld-is-gold c8962ab oeqa/runtime/systemd: remove race in settle() 6b7b9ea tcl-native: Depend on zlib-native 76f52a8 insane: Fix python function whitespace changes 220f4f5 classes/buildhistory: fix expansion of escape sequences b37dd45 rootfs_ipk: Ensure that BAD_RECOMMENDATIONS are honoured for all architectures 6d989d0 lttng-ust: Move lttng-gen-tp to ${PN}-bin cc169c9 image.bbclass: Also uninstall update-alternatives and shadow for read-only-rootfs 88a6b2b base-passwd: Remove unnecessary DEPENDS 9341575 wireless-tools: Upgrade 29 -> 30.pre9 0deebd1 libcgroup: Add bison-native and flex-native in depends c99622e lib/oeqa: allow multiple layers to provide their own TEST_TARGET class 6e59874 glib-2.0: fix handling of skipped tests 152679d meta/recipes-core/base-passwd/base-passwd/noshadow.patch: Split it into two parts b96375b libpng: upgrade to 1.6.8 d4b11e8 binutils: Upgrade to 2.24 a42f846 nss: Add nativesdk to BBCLASSEXTEND and bugfix 092afbc nspr: Added nativesdk to BBCLASSEXTEND 0b30e6e nativesdk-packagegroup-sdk-host: Adding nativesdk-postinst-intercept to SDK 8f76b91 postinst-intercept: New recipe to include postinstall intercepts in nativesdk ad9b3e2 python-setuptools: Remove its provided by python-distribute aacfd00 python-distribute: Add recipes for python2 and python3 6a539a7 python_2.7.3.bb: Inherit python-dir 1c8869b python3: Add target and native recipes 3f57c71 distutils: Introduce PYTHON_ABI variable 0221af0 classes: Add distutils for python3 8314590 classes/distutils: Introduce PYTHON_PN 867b1ee package_rpm.bbclass: Trigger the regexp on exact keyword match 962ea3d python3native.bbclass: Add python3 abstraction class c1a3286d python-3.3-manifest: Add python3 manifest file 31a48f4 generate-manifest-3.3.py: Add script to generate python 3.3 manifests 358dd84 sstate-cache-management.sh: don't remove all packagedata sstate archives 7010358 sstate-cache-management.sh: Fix available architectures 6d295ce sstate-cache-management.sh: Show total number of files when showing how many will be deleted a397dec sstate-cache-management.sh: Fix rm_by_stamps() to work after SSTATE_SWSPEC change a8a7e7b sstate-cache-management.sh: Fix remove_duplicated() to work after SSTATE_SWSPEC change 731a745 scripts/cp-noerror: Avoid a race 48bcbc3 meta-yocto: rename busybox's bbappend file to match the current version f7e6513 Revert "poky-tiny: Assume pkgconfig is provided" b214684 apmd.service: Fix typo (not mandatory EnvironmentFile prefix) 7538e25 minicom: fix for multilib and x32 build crash a1dff02 oeqa/runtime: syslog: update --help test 5baa8be procps: make the 'watch' command register to /bin/watch 95ff97e coreutils: move 'stat' to base_bindir_progs d22f12c meta-skeleton: rename busybox's bbappend file b1ea345 busybox: upgrade to stable 1.22.1 4720817 sanity.bbclass: check that TMPDIR is not located on nfs 3ab4a2b sysvinit: add initscripts-functions to RDEPENDS 021129a update-rc.d: automatically rdepend on initscripts-funtions 85b3ba9 Revert "Add missing RDEPENDS of initscripts-functions" c2bb0ce parted: enable ptest support 7c66dcc curl:Fix multilib header conflict - curl/curlbuild.h e65422f Add Cortex A7 support for NEONv2 & FPv4 c914e27 mdadm: fix build on qemumips64 1712cd6 e2fsprogs:fix build native package error 1dd7fd6 oeqa/utils: sshcontrol: rewrite the SSHControl class e54c1ad quilt: add ac_cv_path_BASH to CACHED_CONFIGUREVARS also for native 81325a4 ltp: fix ffsb ftbfs on cross-compiled environment 815261a ltp: fix comment to refer to oe-core instead of poky 7f06b03 ltp: update ffsb-6.0-rc2 license file path 2cb8a4e ltp: drop do_unpack_append/do_extract_tarball 2752118 ltp: fix style using oe-stylize (no changes in the content of the recipe itself) 2e09b7c ltp: update SRC_REV to LTP 20140115 release 0031db1 kernel.bbclass: Fix empty modules directory QA issue 4a8ddd8 syslinux: fix booting memtest86+ using pxelinux regression 1ae1b28 unfs3: Fix compile regression from unfs3 port d93620b bitbake: runqueue: Fix race against tasks sharing stamp files 5e6db9d gcc: Include patch scheduled for GCC 4.8.3 to fix epilogue on ARM 964a590 libtool: Set CONFIG_SHELL for nativesdk 56c21bd db: Fix libtool linking against local libstdc++.so 600dcd9 cogl: Place the patch in the correct directory 28ba0fb toaster.bbclass: save original package name c31a045 documentation.conf: update task descriptions 3f8f70b package.bbclass: Show which files require given dependency in debug output ee045ee package.bbclass: Don't search for providers of PRIVATE_LIBS 5f4fdf8 cogl: kms: include necessary header for size_t d4e57a7 unzip: Pass LDFLAGS to the linker a2cefa0 oeqa/runtime: smart: fix adding channels db1a2a6 oeqa/runtime: drop restartTarget method 245ee16 qemu: Allow building without X11 support 8ef4a3c unfs3: Fix dependencies and allow target builds 321cd5a pkgconfig: Drop glibconfig from SRC_URI to unbreak builds after previous commit 9f6cd59 pkgconfig: remove out-dated configure options and dependencies ced097e python-numpy: don't search host directories for libraries 9532004 scripts/runqemu-internal: use -cpu core2duo for qemux86-64 82893ff oeqa/runtime: rpm: fix finding the test rpm file bfa46b6 bitbake: user-manual: Fix issue with previous revert 14778a8 bitbake: Revert "usermanual: Updated CC License to version 3.0" 37f6013 udev: fix typo 6eaf5b8 packagegroup-core-standalone-sdk-target: Add qemuwrapper-cross to target sysroot 7bbaf8b cml1.bbclass: Fix return code handling in do_menuconfig() 58df7bb wpa-supplicant: Add dependency on openssl af1a44a multilib.bbclass: fix Multilib QA Issue f328a9d buildhistory.bbclass: Improve robustness in image file listing d955d6a bitbake: siggen.py: fix the SignatureGenerator() 30bfec0 bitbake: runqueue: Simplify pointless len() usage 9a46332 bitbake: hob: No need for enable_proxy and same_proxy in conf file 914e50e bitbake: hob: Don't always save proxy values in conf file d246112 bitbake: hob: don't display interruptions as fails 1b6e11c bitbake: hob: unsetting busy cursor after hitting Stop button 14e548d bitbake: bitbake: hob: check if parser has attribute 'shutdown' f43c2d8 bitbake: hob: change error_msg for CommandFailed event 3c5b683 bitbake: cooker: Add option of specifying indvidual tasks for targets b3bb841 lib/oeqa: sshcontrol: Allow alternate port for SSHControl 51cccb7 combo-layer: Make directories only if they don't exisit yet bede5a4 lz4: actually install things 933f6d4 rpcbind: fixes crash during start 2f4bddc tiff: flesh out PACKAGECONFIG 464c120 oe-selftest: New tests for sstate relocation a329371 scons bbclass: enable parallel make 2fedfdc runqemu, runqemu-internal: Allow slirp for NFS and KVM use 96b24e7 runqemu-export-rootfs: update for unfs3 57d269a unfs-server: Remove unfs-server recipe and patches 8dd861d runqemu: Use the newer unfs3 for serving user space nfs cac76ff unfs3, unfs-server: Replace all instances of unfs-server with unfs3 162dd38 unfs3: Add a NFSv3 user mode server for use with runqemu b3bb9c7 dpkg: use systemd service for first boot configuration 1ec04bb image.bbclass: fix paths to run-postinsts 4186d78 systemd-compat-units: remove run-postints service 79f2bb4 run-postinsts: Add systemd service file 78484bf run-postinsts: remove the init script after a clean start-up 8b576ac sanity.bbclass: check required perl modules ffecae7 linux-firmware: split out ATI/AMD Radeon firmware a565ebd feature-arm-thumb: Fix missing t2 suffix for armv7a MACHINEs 76ea30f opkg-utils: Add RPROVIDES/RREPLACES/RCONFLICTS to fix upgrade-path 24fc116 connman: upgrade to 1.21 2eacc87 minicom: upgrade to 2.7 624c648 libpcap: upgrade to 1.5.3 6a7a210 neard: upgrade to 0.14 17e6df6 initscripts: define failure/success/warning/pass functions e1780a2 gawk: enable ptest support 1f45bc3 libcgroup: Update to 0.41 e111e7e lsbinitscripts: Update to 9.52 909486e lib/oe/patch.py: Prefer "git am" over "git apply" when applying git patches 56236e7 cmake: Fix freetype detection f805cff speex: configure in float or fixed mode based on TARGET_FPU 492240a alsa-utils: Add PACKAGECONFIG for udev 66055fb package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata be77f31 package.bbclass: add getter of additional metadata c467a01 at: add systemd support 7c098b4 distcc: add systemd support dbfcfbf openssh: fixes for systemd ab2e677 dropbear: add systemd unit files 330e5eb apr-util: enable ptest support 8a30237 apr: enable ptest support 519ec0e systemd: fix ptest to make it able to run on target 5612e26 yocto-bsp: Add core2 and corei7 tune choice to x86_64 279af93 yocto-bsp: Update substrate to use the new x86 tune files cb2b9b5 genericx86: Use require instead of include 0e0c9ed genericx86: Use new x86 tune files 9d66f32 genericx86-64: Use the core2-64 tune a5b13d4 genericx86: Use the core2 tune file ecb9813 local.conf.sample: Add automatic defaults for BB_NUMBER_THREADS and PARALLEL_MAKE ff1bdc1 doc: Update profile-manual to use new core2_32 tune name 78bd3a1 eglibc-ld.inc: Update the inc file to match the new x86 tune 9261d58 qemux86_64: Use the core2-64 tune a9e7868 tune: README: Typographical corrections 776a335 tune: README: Document best practice e010be1 tune: README: Whitespace cleanup beac8c5 tune: Remove tune-x86_64.inc dff3daa tune-corei7: Add support for cpu-type corei7 bf3cb2c tune: Make 32b or 64b explicit in tune name for core2 4fdfeeb tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS 31d3449 tune-core2: Replace -mtune=generic with -mtune=core2 3a39071 i586: Only add the current tune to PACKAGE_EXTRA_ARCHS 939fec6 x86: Replace ia32 with x86 when referring to the generic architecture 7217730 utils: Add a cpu_count wrapper function 5280192 bitbake: user-manual-ref-variables.xml: Added 10 new variables to the glossary. 6201d18 bitbake: user-manual-ref-variables.xml: Fixed references to "Build Directory". 37ab088 bitbake: user-manual-ref-variables.xml: Editing pass. d51fb53 bitbake: template/titlepage.templates.xml: Suppress Title Text. 4fb4928 bitbake: user-manual-customization.xsl: Updated param list to pass 9dcd603 bitbake: user-manual-metadata.xml: Renamed section tag e501280 bitbake: user-manual-ref-variavbles.xml: Added new glossary chapter. bd41405 bitbake: user-manual-bitbakecommand: Various edits/cleanups 5cce95c bitbake: user-manual-bitbakecommand: Standardise on section tags, not example 2375f55 bitbake: user-manual-bitbakecommand: Replace screen tags with literallayout 64f66d7 bitbake: user-manual-bitbakecommand: Reform whitespace 32304ba bitbake: user-manual-bitbakecommand: Update help text output with that from bitbake master 1669f39 bitbake: user-manual-fetching: Editing pass over the manual chapter 123b978 bitbake: user-manual-fetching: Change varname/emphasis tags to filename 0de491b bitbake: user-manual-fetching: Change screen -> literallayout d0c16f9 bitbake: user-manual-fetching: Change the file whitespace 552d54f bitbake: user-manual-metadata: Clean up task documentation ac576f4 bitbake: user-manual-metadata: Clean up task flag section 7b99bc0 bitbake: user-manual-metadata: Expand parsing process docuemtnation d6b8f74 bitbake: user-manual-metadata: Add section about layers 76072ea bitbake: user-manual-metadata: Add section about INHERIT ab18cca bitbake: user-manual-metadata: Add section about running tasks and the environment 8705fe2 bitbake: user-manual-metadata: Rework section about shell/python functions 908fdb5 bitbake: user-manual-metadata: Add section about data store operations c676bf8 bitbake: user-manual-metadata: Add lists of common events c8892fc bitbake: user-manual-metadata: Editing pass over the manual chapter 98b41e4 bitbake: user-manual-metadata: Use filename tags instead of literal and varname tags a0f3328 bitbake: user-manual-metadata: Replace screen tags with literallayout tags 0e90d0f bitbake: user-manual-metadata: Update whitespace (no content changes) 4dd8a0d bitbake: user-manual-metadata: Reorder sections to more logical order 633db4f bitbake: user-manual-metadata: Add section ids for most sections 437791a bitbake: user-manual-hello.xml: Added new chapter for "Hello World Example" 1b08402 bitbake: user-manual.xml: Cleanup on the title page. 3a9593d bitbake: user-manual-intro.xml: Re-write of BitBake introduction. a713dad bitbake: user-manual-intro: Various minor cleanups/improvements 5b60a81 bitbake: user-manual-intro: Add obtaining bitbake and summary sections e925730 bitbake: user-manual-intro.xml: Added "Concepts" section. 2038b85 bitbake: user-manual-intro: Update/improve whitespace 2ee7747 bitbake: user-manual-intro: Expand introduction and fix spelling mistakes 7c98419 bitbake: documentation: Add README based off the YP docs one a43f1b2 bitbake: gitignore: Update for recent docs changes bfa18b5 bitbake: user-manual: Separate out chapters into individual files 034e490 bitbake: user-manual: Import YP Docs templates for usermanual improvements eeb4c71 bitbake: usermanual: Renamed manual dir to user-manual to be consistent. afac3d8 bitbake: usermanual: Updated CC License to version 3.0 e5b3918 bitbake: toaster: fix package data gathering 9677275 bitbake: toaster: fix builds page CSS and functionality 594eeeb bitbake: toaster: Set .error styles for tables 47d1923 bitbake: toaster: All Tasks Feature with sorting and filtering 84b2390 bitbake: toaster: Implementation of recipe detail views b45defd bitbake: toaster: Implementation of base build details page 05a684f bitbake: toaster: Added custom filter tags for use in templates. 87776ca bitbake: toaster: Base table fixes for header text, sort icon and filter icon 4acdf8a bitbake: toaster: Base html fix to set the page title dfd7a8a bitbake: toaster: settings remove duplicate entry baaab36 bitbake: toaster: Add initial tests b0b1acb bitbake: toaster: Toaster GUI Build and Dashboard pages fixes d27c7f2 bitbake: toaster: add jquery cookie plugin 15e5290 bitbake: toaster: add vim modelines for .py files 731a0ac bitbake: toaster: update Task classification fields 3e1dbed bitbake: toaster: update Simple UI references to avoid conflict 43a3f47 bitbake: runqueue: Only attempt to print closest matching task if there is a match 9a4855b bitbake: fetch2/wget: Check downloaded file isn't zero size 1a9226f libtool-cross/native: Force usage of bash due to sstate inconsistencies d11d782 Revert "e2fsprogs/populate-extfs.sh: fix a problem on dash" e40123a boot-directdisk: fix the support of vmdk 7b171ed pybootchartgui: Add option -T to allways use the full time 57c93e3 pybootchartgui: Adopt the width of the index in split output files 9d492a4 pybootchartgui: Simplify adding processes to the trace ea27845 pybootchartgui: Correct the legend 34a5d1e pybootchartgui: Make the -s option work again ff49d8e libtool: remove the unrecognized configure option 42e122d cmake.bbclass: fix note when warning about deprecated variables 1b0d621 adt_installer: do not install rootfs if target is not selected e9fae95 lib/oeqa: sshcontrol: fix false timeout failures a29d270 gdk-pixbuf: use PACKAGECONFIG to control loaders with external dependencies 1e162c0 gdk-pixbuf: don't forcibly disable GIO sniffing, use PACKAGECONFIG. d59809c gdk-pixbuf: upgrade to 2.30.3 eda6733 libxcb: upgrade to 1.10 022e31f xcb-proto: upgrade to 1.10 00b6157 glproto: upgrade to 1.4.17 6e70474 poky.ent: Fixed broken OE_LISTS_URL. 0fa2144 dev-manual: Updated the section that describes finding source code. 76240de ref-manual: Updated the TCMODE variable. 29b2fb6 ref-manual: Updated the nativesdk class to have correct class. 350aeeb ref-manual: Updated native and nativesdk classes. a8261e9 ref-manual: Small wording change to WORKDIR variable description. 96e3b42 ref-manual: Updated the WORKDIR variable description. 0829757 dev-manual: Another small fix to the EXTENDPE definition. f477d27 dev-manual: Small fix to EXTENDPE definition in "Writing a New Recipe" 3528ab3 dev-manual: Review edits to "Writing a New Recipe" section. b27a930 dev-manual: Added review comments to "Writing a New Recipe" section. 5837061 poky.ent: Updated lists.linuxtogo.org with lists.openembedded.org 52a17c7 mega-manual, dev-manual: Updated the recipe flow figure. ff4d949 dev-manual: Minor re-wording to introduce recipe flow diagram. ad54092 dev-manual: Edits to the "Writing a New Recipe" section. 6a2456a ref-manual: Fixed cross-reference anchor name. 3916613 ref-manual: Fixed cross-reference anchor name. e987fa8 dev-manual: Edits to the "Writing a New Recipe" section. a66675e ref-manual: Added note about curly brace parsing to BitBake chapter. c113777 ref-manual: Edits to TCLIBC variable. f0dff11 dev-manual: Edits to "Examples" and "Post-Installation" sections. b0fd1c3 dev-manual: Edits to "Testing" section. 0d9959a dev-manual: Edits to "Packaging" section. a3224b8 dev-manual: Edits to "Enabling System Services" section. ab001ce dev-manual: Edits to "Installing" section. b6c0bae dev-manual: Edits to "Compilation" section. 814e071 dev-manual: Edits to "Configuring the Recipe" section. 7856430 dev-manual: Edits to the "Licensing" section. 658761c ref-manual: Edits to the SPDXLICENSEMAP variable. 6d65a98 dev-manual: Edits to "Unpacking Code" section. a1cb6db dev-manual: Edits to "Fetching Code" section. 32d6960 dev-manual: Edits to "Running a Build on the Recipe" 0e03166 dev-manual: Edits to "Storing and Naming the Recipe" 8657f00 dev-manual: Edits to "Locate a Base Recipe" section. 8eb6e7f dev-manual: Edits to "Locate a Base Recipe" section. 1105b46 poky.conf: Remove Debian Squeeze from SANITY_TESTED_DISTROS a452c02 poky.conf: add Debian 7.3 to SANITY_TESTED_DISTROS a6c6659 sstate.bbclass: remove previous version's stamp 4b62d9f e2fsprogs/populate-extfs.sh: fix a problem on dash 0205603 linux-firmware: package Marvell SD8797 firmware ed9dca6 guile: don't use the identifier 'noreturn' c81d3ad bitbake: fetch2/git: Dereference unresolved tags with ls-remote d21c153 bitbake: fetch2/git: Anchor names when using ls-remote 594c2e0 bitbake: fetch2: Improve invalid SRCREV error message 453eb54 bitbake: fetch2: Sanity check SRCREV matches rev/tag parameter 721d3d6 bitbake: fetch2: Clean up srcrev_internal_helper 1180ec3 package.bbclass: show warning when package is providing already provided shlib bd938fe package.bbclass: move reading shlibs providers to separate function ea94e0f icecc: use exact match in blacklists, re-start with empty system_package_blacklist 033671d icecc: Fix allarch and native recipes having different signatures cb714e1 icecc: use bb.utils.which also for 'as' a7b97cb icecc: Don't replace non-empty PARALLEL_MAKE with empty ICECC_PARALLEL_MAKE 94802fd allarch: Set empty TARGET_PREFIX and TARGET_FPU 9abc002 sstatesig: include native/cross/nativesdk deps in target signatures b908cac poky-tiny.conf: Add PACKAGECONFIG to disable opkg-utils python dependencies e0d8e2c linux-yocto-bsps: update reference BSPs to v3.10.25 f3dbfbf opkg-utils: Remove strange PACKAGES native override e612e83 opkg-utils: Add basic PACKAGECONFIG for python dependencies 6e15d32 glib-2.0: add explicit build dependency on DBus when ptest is enabled c97d01d oe-selftest: Patch sstate tests to work with new sstate-cache naming and content 13c016e tcl: fix the TCL_INCLUDE_SPEC 6644dac opkg/opkg-utils/chkconfig: Clean up u-a-cworth references 11cff94 update-alternatives: We now use u-a in nativesdk so make sure the dependency is present 6ed41e2 linux-yocto-dev: bump version to 3.13+ bf7383d lib/oeqa: allow a layer to provide it's own TEST_TARGET class 650ee5e x11vnc: fix CAPS_LOCK issues fa9f89c weston: depend on drm for 'launch' packageconfig enabled c76bf26 opkg: No longer PROVIDES update-alternatives ab5bea7 default-providers: Change update-alternatives provider to opkg-utils 6de6281 opkg-utils: Upgrade to latest git HEAD cac6f81 wpa-supplicant-2.0: don't exit in pkg_postinst e036f2a glib-2.0: fix mapped file ptest 49eaa0f glib-2.0: fix the dbus-appinfo test when running outside of X 6dcc4e7 bitbake: fetch2/__init__.py: let try_mirror_url return correct value 5e5a7fc bitbake: SignatureGenerator: Add empty implementation for dump_sigs 7b580cd bitbake: fetch2/gitsm: Use ud.basecmd instead of hardcoding git a99fa6d bitbake: fetch2: Don't allow '/' in user:pass, fix branch containing '@' 19c75e9 bitbake: siggen: Remove fsync that is causing performance issues cfd1520 oe-selftest: separated the SStateBase and SStateTests in different modules 9229f25 oe-selftest: renamed sstate.py module to sstatetests.py 31b8c56 oe-selftest: New object SStateBase cut off from SStateTests. f1f0787 util-linux: add reset.1 manpage in update-alternatives e917b07 initrdscripts: add $CMDLINE to init-live switch_root e4319b6 package_rpm: Fix a race with package_deb/package_ipk fd291d0 alsa-lib: remove hard-coded /usr/include in dev package 527ad1c linux-firmware: add firmware for additional iwlwifi devices f6e170f nativesdk-packagegroup-sdk-host: reverse inherit order 63cde72 allarch.bbclass: set SDK_ARCH and SDK_CC_ARCH to "none" e665db7 glib: add missing dependencies for ptest e927fdf weston: cleanup mesa depends e7f8537 linux-yocto/3.10: mohonpeak bsp config and scc files a166c2e linux-yocto/3.10: update to 3.10.25 5d90065 linux-yocto/3.10: update meta data for media fragments cea75f9 ltp: fix makefile race 375ac72 dbus-ptest: fix incorrect option name 97d7e86 systemd-compat-units: remove dnsmasq from sysv disabled list 21b4548 shutdown-desktop: use poweroff for the Exec field in the shutdown.desktop f5b5edd dbus-ptest: disable systemd e4c23f7 dropbear: Refresh pam patch so it applies against recent version 253a58c eglibc-locale: Fix multilib builds to depend on the correct binutils ede5dbf python-nose: don't install as an Egg 9209641 eglibc-locale: Fix previous dependency change to properly work in nativesdk case aafc91a python-nose: Add BBCLASSEXTEND for native/nativesdk 8069a88 harfbuzz: Move ancillary binaries to ${PN}-bin e26908e security_flags: db can't use pie flags from gcc for security build cfa396b packagegroup-core-tools-testapps: add Piglit a61beff piglit: add (from meta-oe) 971c2e0 waffle: add (from meta-oe) 4ec9929 python-numpy: add (from meta-oe) 7282635 python-nose: add (from meta-oe) d410a12 python-mako: add (from meta-oe) 18e62b8 cmake: specify all install paths 6d339b8 separatebuilddir: Drop cmake lines since cmake class has this as default now a4bcb3f grub-efi: remove configure patch, simply seed the cache 5ccdc91 alsa-tools: fix the AUTOMAKE_DIR 66d59b3 nativesdk-packagegroup-sdk-host: Cleanup strange darwin override 8699cd4 ptest: d.keys() is slow, use a list instead a0bbc06 eglibc-locale: Fix depends on binutils b223b53 make: Disable floating guile dependency 47d9fa8 image_types bbclass: add support for tar.lz4 and cpio.lz4 2fa4364 kernel.bbclass: add support for LZ4 initramfs files 21551f6 distrodata bbclass: add support for lz4 archives ff5a3e9 base bbclass: add support for lz4 compressed archives f6d3fca lz4: add r112 d6ed40f cmake: default to out-of-tree builds 3c6fde0 separatebuilddir: build libproxy and taglib out of the source tree 6aafc52 cmake: respect ${S} and ${B} d4ad8f7 grub git: update to latest git 90e8429 libproxy: Update to 0.4.11 a90fb7b libacpi: Fix GNU_HASH problem a8a6ccb libidn: disable C# directly 5fc79e3 sudo: upgrade to 1.8.9p1 e13cb5a man-pages: upgrade to 3.56 ec7ad9a cups: upgrade to 1.7.1 616e5de util-linux: Add fstrim utility 0c68bcf libsdl2: upgrade to 2.0.1 64a7cce cdrtools-native: upgrade to 3.01a20 9c1c4ce chrpath: upgrade to 0.15 6c93994 dropbear: upgrade to 2013.62 ad6f3ea ptest.bblass: Fix package QA issues when disabled f543a8e systemd-compat-units: do not mask available services af5e693 dbus: Remove stray semicolon from SRC_URI cc8170f oeqa/runtime/systemd: wait for services to start/fail 1b63617 bitbake: toaster: Toaster GUI, generic search, filter and order 5482409 bitbake: toaster: Build dashboard implementation 2251426 bitbake: toaster: Create the base page navigation structure c2fc6ca bitbake: toaster: update static media for Toaster GUI 47621ec bitbake: toaster: clone Simple UI as base for Toaster GUI 8172f24 terminal.bbclass: do not export PS1 fef8709 package: Keep global pkgfiles[] up to date when snapping library symlinks 7ef0f55 binutils: Also add autoconf-native to DEPENDS 8b0be3f kernel-module-split: Remove extraneous call to depmod from module postinst 21c5cb7 libsoup: Remove libproxy from DEPENDS 96f7bd5 grub: add PACKAGECONFIG for device-mapper 54ee387 qemu: Remove stray .git files after unpacking 7be3064 busybox: lineedit: initialize delptr b4f7995 shadow: set correct entries for pseudo terminals in /etc/securetty 41d7758 beecrypt: add ptest support 2b70203 busybox: enable SEAMLESS_XZ by default e823383 libxfont: upgrade to 1.4.7 d863ae2 tcl: enable ptest support a8a711c libsoup-2.4: upgrade to 2.45.3 afa7db3 libtasn1: upgrade to 3.4 37a0775 qemu: upgrade to 1.7.0 ae1ca61 netbase: upgrade to 5.2 753814a lighttpd: add www/{logs,var} symlinks 8d8bcc4 libarchive: Upgrade to v3.1.2 0509a60 base-passwd: upgrade to 3.5.29 6ee5d95 bitbake: fetch2/gitannex: Fix function arguments to match bitbake master 854daab bitbake: gitannex: Add missing file from previous commit a2f5a61 adt-manual: Deleted mis-leading sentence from configure section. 6a6a05a poky.ent, ref-manual: Updated list of Fedora packages 3517a76 dev-manual: Edits to the "Post-Installation Scripts" section. 777601b ref-manual: Edits to KERNEL_SRC and KERNEL_PATH variables. 1cd9f2c dev-manual: Updated the LIC_FILES_CHKSUM example. 7e71031 ref-manual: Added new INITRAMFS_IMAGE variable description. 1e8ba08 ref-manual: Edits to the INITRAMFS_IMAGE_BUNDLE variable. 11d24f4 ref-manual: Added INITRAMFS_IMAGE_BUNDLE variable description. c4bcaa3 bitbake: bitbake: fetch2/git: add description for nobranch 2bd4477 bitbake: bitbake: gitannex.py: Add Git Annex support e93a345 sstate: add do_package to the noexec list in setscene_depvalid 100c883 bitbake: bitbake: fetch2/git: add nobranch option for SRC_URI to skip SHA validating for branch 1d3a139 bitbake: bitbake/lib/bb/build.py: fix the task flags cleandirs 4722965 bitbake: bitbake: usermanual.xml: fix a typo 6c294f0 bitbake: toaster: add two-stage commit startup logic 18d486c base.bbclass: pull in file-native for src.rpm 22764d3 sstate: Add optimizing logic for crosssdk setscene dependencies 7aa3b95 gstreamer1.0-plugins-good: upgrade to 1.2.2 cbd34ce gstreamer1.0-plugins-base: upgrade to 1.2.2 894c882 gstreamer1.0: upgrade to 1.2.2 df7b151 bluez5: upgrade to 5.13 de2f743 ofono: upgrade to 1.14 745ff50 gstreamer1.0-libav: upgrade to 1.2.2 ccb8493 gstreamer1.0-plugins-ugly: upgrade to 1.2.2 89c3875 gstreamer1.0-plugins-bad: upgrade to 1.2.2 0faeea0 screen: update debian patchset to version 4.0.3-14 5ef95e1 guile: fix the depends for target recipes e7fcf1b python: explicitly disable bluetooth.h check 031d2ea xf86-video-modesetting: update to 0.8.1 b1bf8f7 grub: add git version 2acd617 kmod: Update to Rev 16 via git 741a894 libpthread-stubs: should set ALLOW_EMPTY 26a3116 grep: upgrade to 2.16 16080a3 Add missing RDEPENDS of initscripts-functions acaf650 initscripts: split the functions script into a separate package f4ae439 Revert "gconf.bbclass: remove --disable-schemas-install" 2ee78e3 upstream_tracking.inc: remove outdated glib-2.0 entry 23f2902 db : Include C++ binding library in Berkeley DB recipe. 0343546 quilt: enable ptest support bcacd18 lib/oeqa/runtime: add test for python 3b0601a util-linux: remove non PN based -dev packages 12c181f libpcre: upgrade to 8.34 5b711eb kconfig-frontends: fix the incorrect depends on gperf 9a60c5e valgrind: rrecommend libc6-dbg on all architectures 81e1514 cdrtools-native: remove unused FILESPATH 33b9961 make: upgrade to 4.0 0cfb1e7 autogen-native: upgrade to 5.18.2 484727e autoconf: remove path_prog_fixes.patch 9c1d1dd automake: upgrade to 1.14 fc8931b logrotate: two minor fixes 907c8ce logrotate: upgrade to 3.8.7 6328170 e2fsprogs: upgrade to 1.42.9 5ddb7d4 mime.bbclass: remove the --disable-update-mimedb 31fe1b6 gconf.bbclass: remove --disable-schemas-install acfd890 enchant: fix unrecognised option 6a02acb texinfo: Update to 5.2 663dad6 coreutils: upgrade to 8.22 e65fc0e curl: upgrade to 7.34.0 6fd9efc gdbm: upgrade to 1.11 fce8545 security_flags: add the rest of the grub-efi related packages 655b432 image.bbclass: add ability to set systemd default target 19254bd oe-selftest: New tests for sstate related operations f33c990 maintainers.inc: reassign e2fsprogs f4e85ca bitbake: bitbake/lib/bb/cooker.py: remove a duplicated self.data 17aa506 classes/package: set SUMMARY in do_split_packages() 6c6ae2a bitbake.conf: add full stop to default DESCRIPTION 3bf4f68 enchant: tidy up recipe eaf4639 qmmp: add SUMMARY and tweak DESCRIPTION 8a59b94 alsa-utils: add missing individual package SUMMARY values cb4500a Tweak SUMMARY a22ee50 Update after toplevel LICENSE file checksum change 4bd0d31 ref-manual: Added more detail to BB_GENERATE_MIRROR_TARBALLS variable. eb77bc6 profile-manual: Updated output from build env script. ee0d303 dev-manual, mega-manual: Updated the recipe creation figure. 9cf6979 dev-manual: Removed left-over notes from "Unpacking Code" section. 05adf62 dev-manual: Changed "Compiling the Recipe" section to "Compilation" 58a4753 ref-manual: Updated FAQ entry cross-reference. 34c6547 dev-manual: Removed section on excluding a package from the build. daa6066 dev-manual: Final merging of recipe stuff. 71460e5 dev-manual: Integrated Hello World section into new writing recipe section 3ad993d dev-manual: Completed first pass of review feedback. 9f51f11 dev-manual: Completed the "Fetching" and "Configuration" sections. fac99a4 dev-manual: First complete draft of the "Writing a New Recipe" section. 3b908ee dev-manual: Re-wrote the installation part of "Writing a Recipe" b55ffe7 dev-manual: Updates to "Writing a Recipe" section. 4abc384 dev-manual: Some review edits to the new writing a recipe section. 1e83889 dev-manual: Some development text for fetching source 5a3296c dev-manual: Put into place a rough draft of the "Writing Recipe" section 1bd23c8 dev-manual, mega-manual, Makefile: Added new recipe creation flow figure. 2cd87c8 ref-manual: Edits to LICENSE variable. Added SPDXLICENSEMAP variable. d06cd4c ref-manual: Fixed typo in ICECC_DISABLED. 61597c4 ref-manual: Edits to the icecc class. d2c89c7 ref-manual: Added new ICECC_DISABLED variable description. efedaf9 ref-manual: Updated the FAQ entry for how to use an external toolchain. 5dd83ad ref-manual: Updated the TCMODE variable description. 2c9475e bitbake: bitbake: fetcher2: clean(): remove the .patch.done d8d4b0e bitbake: bitbake: fetcher2: git.py: clean(): remove the .tar.gz.done d305a05 bitbake: bitbake: replace 3 spaces with 4 3814e34 e2fsprogs: silence debugfs da9b4fa wipe-sysroot: explain what is being deleted, and check for arguments 5165328 dbus: enable API entry point checks d43adee dbus: use PACKAGECONFIG for X11 and systemd ace1981 libxcb: don't hard-code package splitting 417f8c8 libxcb: don't disable parallel building b8a3fb2 README: fix DISTRO = "" reference ef91193 Fix license notices for OE-Core 4d093fe tzcode: Update to 2013i ec52326 tzdata: Update to 2013i 6b04483 byacc: upgrade to 20140101 db7caba systemtap: Add --enable-prologues to configuration 3de579c meta/lib/oe/terminal.py: Don't pass non-supported '--disable-factory' flag to gnome-terminal 7774bdf kmod: fix zlib dependency 6710c39 test-dependencies.sh: avoid showing misleading error messages 19fc2ed git: upgrade to 1.8.5.2 52b9309 make: remove the obsolete SCCS.patch 4e1b958 poky: Add Fedora-20 to supported distros list 7579e19 quilt: upgrade to 0.61 1cca163 glib-2.0: add EXTRA_OECONF for uclibc 77fec45 tcl: Fix ${bindir}/tclsh symlink e27f7d4 python: fix unrecognised options: --without-cxx --with-cyclic-gc 6ea42c0 sqlite: remove unrecognised options: --enable-tempstore a3c5d82 maintainers.inc: reassign tzcode-native 5e80a34 upstream_tracking.inc: update entries b1f3da9 eglibc: Remove older version 2.17 eae5422 gcc: Drop 4.7.2 version since 4.8 is stable now 87f74ca bitbake.conf: set a default for MACHINE_FEATURES 8ae3f22 pciutils: tidy up recipe 16a4390 opkg-utils: tidy up recipe c81dd87 guilt-native: tidy up recipe 7dabe7b enchant: tidy up recipe e49389a stat: tidy up recipe b5edd1e adt-installer: tweak DESCRIPTION and add SUMMARY and HOMEPAGE c5135e4 core-image-lsb: fix DESCRIPTION 35352b7 binutils: add/tweak SUMMARY 94dd065 icecc-create-env-native: add SUMMARY and tweak DESCRIPTION f92ed88 gmp: set SUMMARY and DESCRIPTION a326200 xf86-video-modesetting: set SUMMARY and DESCRIPTION 2e3396f xf86-video-fbdev: set SUMMARY and DESCRIPTION 5d7d2ae xf86-input-vmmouse: set SUMMARY and DESCRIPTION a011d8a qt4: set SUMMARY and tweak DESCRIPTION 9f8f4fd Basic recipe formatting fixes 2de5f44 linux-dummy: set reasonable DESCRIPTION bc16384 linux-dummy: set LICENSE to GPLv2 to avoid license warning 1b50dbc gawk: set reasonable SUMMARY and DESCRIPTION 535ebc9 xev: add proper SUMMARY and DESCRIPTION 40cbb12 libunique: fix HOMEPAGE and touch up DESCRIPTION 0c5366d bash: update HOMEPAGE aee67ee startup-notification: fix HOMEPAGE d6a19b0 lame: update HOMEPAGE 8e5a11d libsamplerate0: add HOMEPAGE 7c39630 telepathy-mission-control: fix HOMEPAGE a231a0f gettext: set reasonable SUMMARY and DESCRIPTION e792f54 Add missing SUMMARY values cec8b23 Replace one-line DESCRIPTION with SUMMARY 63819fb Replace OpenedHand Bugzilla in BUGTRACKER 3575aee Drop empty/invalid BUGTRACKER values 3f0a760 speex: fix SRC_URI to use PV instead of hardcoding the version 64ffe91 mesa-demos: fix unrecognised options cce0371 ghostscript: remove unrecognised option 27f3190 wget: remove unrecognised option 41b9a11 cups: remove unrecognised option c49a693 enchant: fix unrecognised option 1d146a8 bluez-hcidump: remove unrecognised options 098fdf6 gstreamer1.0: remove unrecognised options ac9e080 gstreamer1.0: remove unrecognised options 728f1c7 gstreamer: fix unrecognised options 54fe057 libid3tag: remove unrecognised option 8830498 dpkg: fix/remove unrecognised options 7267aa9 tremor: remove unrecognised option aec6bc9 alsa-lib: remove unrecognised options c7aa5bb flac: remove unrecognised options 005af45 bitbake: fetch2: avoid printing "no checksum" error message twice 1edb126 bitbake: fetch2: fail checksum validation if SRC_URI checksums set to "" 85ac394 openssl: use PACKAGECONFIG to disable perl bits 405c322 toaster.bbclass: fix crash on buildstats collection 2ccdb82 valgrind: upgrade to 3.9.0 63fb358 classes/insane: restore printing LIC_FILES_CHKSUM checksum if not specified 8ee784e libav: add libpostproc to PROVIDES (for 0.8.x version only) 325fb2b sstate: Use datastore copies due to data changes persisting 6aa4de3 externalsrc: Fix deltask usage 3946917 terminal: Exclude BB_ORIGENV from the signatures 08a8c90 yocto-bsp: Add missing interfaces file for qemu BSP templates 3ada51f sstate/sstatesig: Add populate_lic to list of arch invariant sstate tasks 9a1705e9 bitbake.conf: Exclude WORKDIR changes from sstate checksums e5ee1b8 sstate: Convert to use ':' as a filename sperator and use SSTATE_SWSPEC globally 8685b5c libcap: Allow rebuilds to work correctly a69ccc5 beecrypt: Allow PACKAGECONFIG to be overridden 0a57d5b harfbuzz: Allow PACKAGECONFIG to be overridden 553fa36 nfs-utils: modify the boot sequence of the init script dd50c4d runqemu: Allow user to set -vga option with qemuparams 963b69b testimage: include traceback when loading a test fails b24f217 lib/oeqa/runtime: rewrite the systemd test module 7c1c3d1 oe-selftest: added buildhistory buildtime tests in module buildoptions.py 6fe6a91 oe-selftest: New test module for OE scripts. 8379990 oe-selftest: New BuildhistoryBase object for buildhistory testing. f703027 conf-notes: remove meta-toolchain-sdk references c28a4a0 libtirpc: upgrade to 0.2.4 bd3fed5 sstatesig: Correctly handle matches spanning stamps and sstatedir c61fe39 sstatesig: Update for the removal of sstate-name b6b6d92 sstatesig: Ensure we return all matches for find_sigdata d32d08f ptest: Disable for native recipes f857b62 ptest: Fix dependency/ordering issue 64bb800 externalsrc: Use deltask API 14471d2 native: Use deltask to remove tasks which have no purpose 2c7276c sanity.conf: Require bitbake 1.21.1 as a minumum version for deltask functionality 8bbaed4 bitbake: Update to version 1.21.1 for master 0b5476a bitbake: siggen: Fix reversed difference output eebe65c bitbake: runqueue: Further extend bitbake -S output to view signature differences a4457cf bitbake: siggen: When printing signatures recursively, limit the output 6d2f344 bitbake: runqueue: Fix data being written into siginfo/sigdata files bc1e359 meta-toolchain-sdk: Remove references from meta-yocto 2961b58 security_flags: more relocation issues 6e6613e dbus-ptest: Fix SRC_URI checksums 848961e bitbake: runqueue: Add output for -S option for listing the changepoints compared with an sstate cache 52ef6c2 bitbake: bb.fetch2.git: reuse basecmd attribute 498de04 bitbake: fetch2/git: Improve handling of unresolved names verses branches ba82035 bitbake: build/ast: Create strong task add/del API in bb.build 8a82a38 bitbake: ast/BBHandler/build: Add support for removing tasks (deltask) 0f20411 Minicom depends on libiconv 1047f68 systemd-compat-units: drop machineid.service 3d6d5d7 systemd: delete files that end up in /var/volatile 402308c systemd: pass --root in prerm if running on host 3d2c33c dbus: upgrade to 1.6.18 7e17255 buildhistory: be quiet when garbage collecting the git repo 2a58f76 useradd.bbclass: add dependency on base-files 480bf03 sstate: Get rid of crazy name mapping 7935ae2 sstate/gcc: Fix shared workdir handling for siginfo files 88f0166 sstate: Write out siginfo files for non-sstate tasks ebc7f3a pango: remove no update reason because it was updated 0af8bd9 openssl.inc: Install c_rehash utility with openssl e1e59b6 pointercal-xinput: Mark as SIGGEN_EXCLUDERECIPES_ABISAFE 8a8a0c3 gcc-4.7/gcc: disable sdt from configure.ac to keep compatibility with configure fd0d15f gcc-4.8/libstdc++-v3: disable sdt cc93237 libsoup-2.4: add intltool-native to DEPENDS d9da9cb grub: move xz to DEPENDS list from RDEPENDS list 1a0a0ea scripts/contrib: Add graph-tool f773d90 bluez4: use legacy pygobject instead of gobject-introspection 8e21e3e bluez4: Install the test script 6284998 libpcap: upgrade to 1.5.2 4ed07c5 man-pages: upgrade to 3.55 0957eb6 lsbtest: add ppc64 support b35283c LSB_Test.sh: update locales d71314b LSB_Test.sh: check ldconfig before update cache b34cc27 LSB_Test.sh: update rpm platform file when enable multilib f939b6c lsb: update directory of install_initd and remove_initd 9daa1de qemu/local.conf.sample: Add sdl PACKAGECONFIG cd5d65a insane: handle recursive configures when checking for unknown configure options 8babb8f busybox: get rid of nested functions in find e230b44 pulseaudio: only package consolekit module when x11 is enabled 31f94de git: leverage upstream relocation support 4274ee5 libdrm: use RRECOMMENDS for libdrm-drivers 36632ed xz: make the LICENSE info more accurate e2c2b5b nativesdk: Set LIBCOVERRIDE to a value 1dcbf30 gcc-crosssdk.inc: Fix missing dependencies (such as libmpc-native) 36fe775 useradd-example: add example for setting clear text password c38fee2 image.bbclass: fix for zap_root_password 7b58b5f shadow-native: allow for setting password in clear text 1034518 image.bbclass: default USE_DEVFS to '1' 2b70a38 btrfs-tools: Update to 3.12 599eed2 lib/oeqa/runtime: systemd failure case improvements bf595ca init-ifupdown: adjust priority of networking to fix system freeze problem ab0c7af ltp: Use patch generated without -M ab80273 gstreamer1.0-plugins-base: fix missing rprovides 447e4cf glib-2.0: upgrade to 2.38.2 e70fb78 rpcbind: upgrade to 0.2.1 9409039 bluez5: upgrade to 5.12 6bc2df5 oe-selftest: Add track_for_cleanup method to be used in cleanup tasks 90fa0fd oe-selftest: implement add_command_to_tearDown method 46215bd rpcbind: fix init status and exit code 9b43c57 libgcrypt: fix compile error with '-O2' in sysroot path 0101c26 cpan_build bbclass: do not install module into /usr/share 22dec67 perl: remove sysroot path leakage into packaged files 1cc8a01 distutils bbclass: delete site.py* 66a5f8d linux-libc-headers: fix MIPS klibc build error 4bb18c4 linux-yocto-dev: allow static SRCREVs via include db4961b udev: Add ptest b8e3996 iproute2: upgrade to 3.12.0 81b0b7e iptables: upgrade to 1.4.21 a48f701 cracklib: upgrade to 2.9.1 4abb031 dpkg: upgrade to 1.17.4 b7be318 xorg-lib: remove explicit --enable-malloc0returnsnull c5b3851 util-macros: upgrade to 1.18.0 eef85f8 site: add xorg_cv_malloc0_returns_null a90ad43 libav: Use "BP" and "libav" patch directory c0d28b4 xinetd: add status of init.d command b53a011 systemd-systemctl: Add preset capability e0d4865 grub-efi: allow compilation without large model support 40b73e4 grub-efi: change to generate EFI image in target package 8275e0f ref-manual: Fixed the reference to the script for icecc class. 797a919 ref-manual: Reverted a patch that had added sdk-pms f932163 ref-manual: Added module and module-base classes. 68fbbd1 shadow: change to use SHA512 password encryption 79e2bbd local.conf.sample.extended: restore some edits d4327cb distro_alias.inc: drop external-* bf71844 bitbake: data_smart: Fix hash corruption issue 7a345c3 maintainers.inc: update the the maintainers ba8506e local.conf.extended: Bring into sync with OE-Core 2b38832 gdb-7.6.1: fix cygwin check in configure script 6b124ff sato-icon-theme: simplify icon-name-mapping lookup 07ce029 external-sourcery-toolchain: remove b1b0c31 classes/module_strip: remove bfec6b1 ref-manual: Removed "work" from the SDK_DEPLOY directory. 0f32d39 ref-manual: Edit to SDK_DEPLOY removing "temporary" from directory. 9548726 ref-manual: Edits to gnomebase class. 0091385 ref-manual: Edits to setuptools class. 26556a0 ref-manual: Minor edits to rootfs* class. 62e7ade ref-manual: Edits to GTKIMMODULES_PACKAGES variable. 9feb721 ref-manual: Added new SDK_DEPLOY variable description. caf0dd0 ref-manual: Added more info to distrodata class. b080c99 ref-manual: Added more info to gnomebase class. c6d4c6a ref-manual: Fixed some broken cross-references. 98a70d8 ref-manual: Fixed double word error in EXTRA_QMAKEVARS_PRE variable. 44dd2fe ref-manual: Fixed double word in EXTRA_QMAKEVARS_POST variable. d605e81 ref-manual: Edits to QMAKE_PROFILES variable. d60f9b7 ref-manual: Fixed typo in PACKAGE_CLASSES variable. 80ce249 ref-manual: Edits to the IMAGE_PKGTYPE variable. a545c85 ref-manual: Edits to PIXBUF_PACKAGES variable. 1762d18 ref-manual: Edits to the icecc class. a711ebe ref-manual: Edits to GTKIMMODULES_PACKAGES variable. 3f81865 ref-manual: Edits to FONT_PACKAGES variable. 16626c3 ref-manual: Edits to the terminal class. 483fc48 ref-manual: Edits to the systemd class. 7853e3b ref-manual: Edits to the setuptools class. 6e91d5d ref-manual: Edits to the rootfs* class. d76301b ref-manual: Edits to pixbufcache and pythonnative classes. caf6752 ref-manual: Edits to the PIXBUF_PACKAGES variable. 4e83d80 ref-manual: Edits to the package_tar class. 51781b1 ref-manual: Updated the PACKAGE_CLASSES variable description. 18e1e8d ref-manual: Edits to PACKAGE_CLASSES variable. b330c97 ref-manual: Edits to SYSTEMD_PACKAGES and SYSTEMD_SERVICES. 1c8b4dd ref-manual: Edits to the EXTRA_OESCONS variable. 489a438 ref-manual: Edits to the QMAKE_PROFILES variable. 9cfdf98 ref-manual: Edits to the EXTRA_QMAKEVARS_* variables. 8370e8f ref-manual: Edits to the SDK_DIR and SDK_OUTPUT variables. 56852f8 ref-manual: Edits to IMAGE_PKGTYPE variable. 1378121 ref-manual: More edits to PIXBUF_PACKAGES variable. a2b7a7c ref-manual: Edits to PIXBUF_PACKAGES variable. b152cfc ref-manual: Edits to INHERIT_DISTRO variable. 704c24c ref-manual: Updates to ICECC_USER_PACKAGE_BL and _WL variable. b361db0 ref-manual: Edits to icecc class and removal of three variables. 88fb980 ref-manual: Minor edits to GTKIMMODULES_PACKAGES variable. f779511 ref-manual: Minor edits to FONT_PACKAGES variable. e0a456c ref-manual: Edits to SYSTEMD* variables. 348cec5 ref-manual: Added some references to variables in the useradd class. b972f4b ref-manual: Review edits from "I" through "Z" classes. b74db1f ref-manual: Fixed link back to own-mirrors class. 3b17557 ref-manual: Changed Gobject to GObject. a6f4ea7 ref-manual: Edits to classes "I" through "K" 3a9d776 ref-manual: Review edits to classes "E" through "G" 3224ec9 ref-manual: Added new DEPLOYDIR variable. 644fdc4 ref-manual: Edits to bugzilla and deploy class. 55a5058 ref-manual: Review edits to the "C" and "D" classes. bc6b005 ref-manual: Review edits to classes A through B 6b58ab3 ref-manual: Scrubbed the comment list of undocumented classes. 113077b ref-manual: Removed the section "Other Classes" 79ba3e4 ref-manual: Re-ordered externalsrc class into the "C"'s de7ead9 ref-manual: Edits to externalsrc class. 36a9f7e ref-manual: Edits to useradd class. 1411329 ref-manual: Edits to update-rc.d class. 76a5d86 ref-manual: Edits to update-alternatives class. 58e3323 ref-manual: Re-ordered the classes that start with "U" 759c88f ref-manual: Edits to testimage class. 73ddfa2 ref-manual: Re-ordered classes that start with "T" b43c26f ref-manual: Edits to siteinfo class. 4cdb34b ref-manual: Edits to sanity class. cca4368 ref-manual: Re-ordered classes that start with "S". bf7b6cf ref-manual: Edits to rootfs* class. cd1581b ref-manual: Edits to rm_work class. 035caad ref-manual: Edits to classes-qt4* classes. 749f0c4 ref-manual: Edits to qmake* classes. 8847fd3 ref-manual: Edits to pkgconfig class. 53d0bde ref-manual: Edits to populate-sdk classes. e0152fc ref-manual: Edits to packageinfo class. f6826dd ref-manual: Edits to packagegroup class. f1668bf ref-manual: Edits to packagedata class. b027c7e ref-manual: Edits to package_tar class. efa1700 ref-manual: Edits to package_rpm class. 01929d0 ref-manual: Edits to package_ipk class. 91b192c ref-manual: Edits to package_deb class. 06e1bfa ref-manual: Edits to package class. 08b634e ref-manual: Re-ordered classes that start with "P". 4688e76 ref-manual: Edits to ownmirrors class. 5ec09e0 ref-manual: Edits to oelint class. 2cc4dab ref-manual: Edits to nativesdk class. 951abfd ref-manual: Edits to native class. aa7ba78 ref-manual: Edits to multilib classes. 52e3e79 ref-manual: Edits to mirrors class. 60f6c85 ref-manual: Edits to mime class. 95aa8bc ref-manual: Edits to metadata_scm class. a17963f ref-manual: Edits to meta class. d13d216 ref-manual: Edits to logging class. 5059d55 ref-manual: Edits to linux-kernel-base class. fb25e08 ref-manual: Edits to license class. 94392c4 ref-manual: Edits to lib_package class. 2d557b6 ref-manual: Re-ordered classes that start with "L". ca4fe92 ref-manual: Edits to kernel-yocto class. eff9beb ref-manuals: Edits to kernel-module-split class. 7e69f3b ref-manual: Edits to kernel-arch class. 98e3d01 ref-manual: Edits to kernel class. 2610e84 ref-manual: Re-ordered classes that start with "K". 1450b54 ref-manual: Edits to insserve class. 19b37bd ref-manual: Edits to insane class. 80980ef ref-manual: Edits to image-vmdk class. cbecea8 ref-manual: Edits to the image-swab class. d704c53 ref-manual: Edits to image-prelink class. 564dd5f ref-manuals: Edits to image-mklibs class. b19ba2d ref-manual: Edits to image-live class. 476a229 ref-manual: Edits to image_types_uboot class. 2b22c18 ref-manual: Edits to image_types class. 4c162b5 ref-manual: Edits to image class. 4ba8247 ref-manual: Edits to icecc class and re-order of "I" classes. 9d5ab21 ref-manual: Edits to gzipnative class. 8f09c72 ref-manual: Edits to gtk-immodules-cache class. 551ae6a ref-manual: Edits to gtk-icon-cache class. 7ca6bbd ref-manual: Edits to gtk-doc class. 9eabe58 ref-manual: Edits to gsettings class. d1e046a ref-manual: Edits to grub-efi class. e5f9f17 ref-manual: Edits to gnomebase class. 52abfce ref-manual: Edits to gnome class. 464730e ref-manual: Edits to gettext class. 87330b3 ref-manual: Edits to gconf class. 07d0b04 ref-manual: Edits to fontcache class. 05f51e4 ref-manual: Edits to extrausers class. cfa459e ref-manual: Edits to distutils class. ec4a49b ref-manual: Edits to distrodata class. a0f8777 ref-manual: Edits to distro_features_check class. a0d9e0f ref-manual: Edits to devshell class. de84432 ref-manual: Edits to deploy class. d7ec755 ref-manual: Edits to debian class. 32559a6 ref-manual: Re-ordered the classes that start with "D". b281360 ref-manual: Edits to crosssdk class. cdf3ca0 ref-manual: Edits to cross-canadian class. ad81c79 ref-manual: Edits to cross class. 83c7c68 ref-manual: Edits to core-image class. 588bfe9 ref-manual: Edits to the copyleft_compliance class. 20f5384 ref-manual: Edits to cmake class. 7a3bf66 ref-manual: Edits to clutter class. 5967e69 ref-manual: Edits to chrpath class. 950dcd1 ref-manual: Edits to ccache class. f8c5fa0 ref-manual: Edits to the cpan class. 91b8eff ref-manual: Re-ordered the classes that start with "C" 618fb69 ref-manual: Edits to buildstats class. 32f8cfa ref-manual: Edits to buildhistory class. 306650e ref-manual: Edits to bugzilla class. 774c7a7 ref-manual: Edits to bootimg class. e63b4f2 ref-manual: Edits to boot-directdisk class. 1b7bf35 ref-manual: Edits to the blacklist class. 13b4fc5 ref-manual: Edits to binconfig class. 3fae906 ref-manual: Edits to the bin_package class. d28082c ref-manual: Edits to base class. 4c7ff47 ref-manual: Edits to autotools class. 9506911 ref-manual: Edits to archive* classes. 889bb38 ref-manual: Added waf class. 654411e ref-manual: Added vala class. aa9c2a1 ref-manual: Added utils class. 5fafc2d ref-manual: Added utility-tasks class. 9307442 ref-manual: Added uboot-config class. 31d0e41 ref-manual: Added typecheck class. bfc10cf ref-manual: Added toolchain-scripts class. 9af661f ref-manual: Added toaster class. b4fd227 ref-manual: Added tinderclient class. 376eb53 ref-manual: Added terminal class. 3623ba9 ref-manual: Added systemd class and three variables: c35962a ref-manual: Added syslinux class and many variables. 944ee7f ref-manual: Added the staging class. 59e0a53 ref-manual: Added sstate class. 4253671 ref-manual: Added spdx class. 1287cff ref-manual: Added siteconfig class. cd3f2e6 ref-manual: Added sip class. 16b628c ref-manual: Added setuptools class and edits to distutils class. 4c3eece ref-manual: Added sdl class. 39eaf30 ref-manual: Added scons class and EXTRA_OESCONS variable. 00652a8 ref-manual: Added relocatable class. e30988b ref-manual: Added qt4* classes. 12c1680 ref-manual: Added qmake* class and three variables. 08f89d7 ref-manual: Added qemu class. cde35ec ref-manual: Added pythonnative class. aedf61f ref-manual: Added python-dir class. ec256c0 ref-manual: Added ptest class. 31b5f49 dev-manual: Updated the "Working with a PR Service" section. 4f2fb32 ref-manual: Added prserv class and PRSERV_HOST variable. b5a77f0 ref-manual: Added primport class. 77f8692 ref-manual: Added prexport class. 61edbfc ref-manual: Added populate_sdk_* class and some new variables. e665692 ref-manual: Added populate_sdk class. 56429d3 ref-manual: Added pixbufcache class and PIXBUF_PACKAGES variable. 4ec758a ref-manual: Added the perlnative class. 14603f6 ref-manual: Added the patch class. c981a85 ref-manual: Edits to the packageinfo class. 3a7ba51 ref-manual: Added the packageinfo class. a758f31 ref-manual: Improved on package* class. 5b0367f ref-manual: Added the packagedata class. ccca482 ref-manual: Added the ownmirrors class and the SOURCE_MIRROR_URL variable. 5c63b7a ref-manual: Added the oelint class. d29666f ref-manual: Added the nativesdk class. 4fb42f3 ref-manual: Added the native class. d754ddc bitbake: process: Add timeout to select call 4398019 libmatchbox: use PACKAGECONFIG 8bbd508 libmatchbox: fix libpng detection c66ff8b icu: CVE-2013-2924 42cb2c9 acpid: CVE-2011-1159 bd477cd xinetd: CVE-2013-4342 d1cb9ec libtiff: CVE-2013-4243 3e46414 libtiff: CVE-2013-4232 6e89d26 libtiff: fix CVE-2013-1960 e7d1921 libav: Add v9.10 b9e1f11 buildhistory.bbclass: Specify lang in decoding strings 4848a52 ltp: set PREFERRED_PROVIDER and rename runtests_noltp.sh script 209eba7 multilib: Ensure we map the SYSTEMD_PACKAGES variable 5119975 meta/*: remove unnecessary patches 2b428f4 connman: upgrade to 1.20 0cfc4ea harfbuzz: upgrade to 0.9.25 c16467d freetype: upgrade to 2.5.2 2a3119e makedevs: Add trace option and fix permissions on files if they already exist 7b2be60 makedevs: Respect LDFLAGS 8760307 binutils: Add embedspu to standard binutils package 47d2089 libxcb: fix rebuild when MACHINE changes 62e8b4c distro-tracking: remove GMAE package groups e3b9923 bitbake: hob: after adding a layer, hob do not parse the configuration 3f61189 bitbake: toaster: Add more information for tasks in Simple UI 192583a bitbake: toaster: add pagination to the Simple UI 415ebb7 bitbake: toaster: migrate orm models to South 81ebce0 bitbake: toaster: update to Django 1.5 5ab8545 bitbake: toasterui: do not link non-image targets bb70ade bitbake: toasterui: fix version numbers for no PE specified 54d0e30 bitbake: toaster: change package storage model f812098 bitbake: toaster: update build stats reading ea307bb bitbake: toaster: move layer information reading code 6cbc83f bitbake: toaster: remove Author field in SimpleUI 7d24b00 bitbake: toaster: Analysis API variablehistory update 340c35e toaster.bbclass: read package and image information 5145b5a toaster.bbclass: read build stats 8ee7b08 toaster.bbclass: read layer information 853f5db nativesdk.bbclass: support nativesdk to override with the PACKAGES_DYNAMIC statement fc0bb31 runqemu: remove core-image-* whitelist cb9136d xorg-lib-common.inc: use REQUIRED_DISTRO_FEATURES variable 85bfdda documentation.conf: update for new image testing variables 40b173c buildhistory.bbclass/image.bbclass: remove obsolete codes ded655a boost: Move files -> boost 5a018ee boost: updating to 1.55.0 1907b10 syslinux: add ability to compile with nativesdk 3439665 mtools: add ability to compile with nativesdk d9dba45 nspr: Update to 4.10.2 93729f6 libxkbcommon: Update to 0.3.2 38dcefd file: Update to 5.16 adde744 acl: Update to 2.2.52 2ef65cc license.bbclass: fix copying license directories failed fc0a1aa perf: Disable warnings as errors for kernels 3.1+ 5debfa1 nfs-utils: explicitly rdepend on bash c0e048d nfs-utils: separate package as Debain style fedd84f shadow: remove reference to locale env files from login and su 1fd93bd qemu: add bash and python to qemu's RDEPENDS 8f98bb3 libidn: enable TLD 5a83652 grub: add explicit dependency on bison-native 22beb58 boot-directdisk: add the support of vmdk 80a9a79 .gitignore: Add meta-yocto-imported 4aac8d8 bitbake: data: Ensure we add the contains keys in a particular order b7ff099 linux-libc-headers-yocto: Drop old 3.4+git version 184038b bitbake: fetch2/git: Ensure check is made in the correct directory 121dcd3 linux-yocto/*: restore branch designations 14c2326 python-imaging: fix compilation with Freetype 2.5.1 2b898fe python: Add missing RDEPENDS for python-unittest 66f28a9 tcl: fix tclConfig.sh to point to the correct private headers 5301c59 bitbake: toaster: exclude "set in documentation.conf" from variable history 2bd4c2b bitbake: hob: changes to INHERIT var should use "append" operation f19546e bitbake: fetch2/git: Add sanity check to ensure we really did fetch the correct revisions 4bac6a8 mx/lttng-*: Fix git branch references 0b962a5 fstests: update to git master 67212c2 matchbox-keyboard: Use the branchname the revision is on 7310d23 prelink: Set the branch name correctly for the revision we're using 017f22c meta-yocto-bsp: Drop gmae bbappends to match OE-Core 2b99084 cogl-1.0: explicitly disable cairo 8dee338 lib/oeqa/runtime: output more logging from systemd when services have failed 5c58ba9 lib/oeqa/runtime: print connman status if connman failed to start 271c98a nativesdk-packagegroup-sdk-host: Added nativesdk-smartpm 5c69ae2 classes/buildhistory: fix reading of package-specific values from pkgdata b2a9b91 gmae: remove GMAE toolchain and packagegroups df1505e update-rc.d: process symlinks recursively 77c4f15 pulseaudio: fix RDEPENDS traversal for consolekit abbc345 init-live.sh: remove the '-c /dev/console' for switch_root e2e6756 libav: Update to v0.8.9 77c1320 rpm: Fixed Q&A Errors in netivesdk-rpm aa61c61 freetype: upgrade to 2.5.1 472e6c4 xserver: remove unrecognised options d8efb8d pixman: upgrade to 0.32.4 7df2cfc libxft: fix Freetype header inclusion b9f9c29 pango: upgrade to 1.36.1 d8fa465 libarchive: add SUMMARY and fix HOMEPAGE 41f1731 openssh: remove unrecognised configure option a6c2f3f gpgme: remove pth handling aa40209 icecc-create-env-native: Drop FILESPATH, document PATCHTOOL c295fe6 cpan-base: Add vardepvalue to get_perl_version function f750d65 icecc.bbclass: Fix whitespace, improve comment cae2315 bitbake.conf/native.bbclass: Use FC instead of F77 for fortran 5bde5d9 gcc: Allow fortran to build successfully in 4.8 a67654e lib/oeqa/selftest: add tests for PR service 347cc15 lib/oeqa/selftest: buildoptions: small fixes for some tests 6ab56c5 classes/recipes: More optimal DISTRO_FEATURES references 82233cd eglibc-options: Rewrite so it benefits from bitbake's contains handling f17a693 lib/oeqa/selftest/base, scripts/oe-selftest: fix wrong remove path and do a complete cleanup at the end c3c2cc4 qt4: fixed dependency on icu 3456bd3 gstreamer1.0-plugins-bad: add PACKAGECONFIG for librsvg 2ab24b1 gstreamer1.0-plugins-bad: respect directfb DISTRO_FEATURE ecba848 security_flags: Add entry for openssl ec80166 attr: Add patch tracking details c8d1aa0 gst-plugins-good: Fix configure option f21a3a4 leafpad: Fix configure flags 50be1a1 libxkbfile: Remove obsolete configure option c51730a bitbake: Hob: check if warnings are related to package build 0a5fdfb bitbake: hob: fix package property dialog for changes to FILES_INFO 27ae687 bitbake: hob: name package files list variables appropriately 8a02406 bitbake: lib/bb/ui: handle PKGSIZE change to bytes d1e6664 bitbake: cooker/command/hob: Cleanup configuration init/reset functions and commands b8f0963 bitbake: hob: Use BASEDATASTORE_TRACKING feature eba506b bitbake: codeparser/data_smart: Optimise parsing speed b4b1c90 ptest: ensure do_install_ptest_base task runs in fakeroot context 65535bf populate_sdk: verify executable or dynamically linked library 44b2cf5 qemu: handle CLOEXEC/NONBLOCK if unavailable on host 4eab9d0 cairo: add/use packageconfig for valgrind support 1bc64ba python, python-native: fix PARALLEL_MAKEINST failure 82e373f quota: apply patch to obey tcp-wrappers config 3c94bfe subversion: fix build problem when sysroot contains '-D' or '-I' 6cdecac image-mklibs: ensure sysroot is correctly set when calling gcc 4653302 Don't set DESCRIPTION to the same value as SUMMARY 0954dde dropbear: set SUMMARY instead of DESCRIPTION 79db9ae eee-acpi-scripts: tidy up recipe 9dfcab3 alsa-utils-alsaconf: tidy up path setting 35a0825 squashfs-tools: set SUMMARY instead of DESCRIPTION 4e53364 squashfs-tools: drop FILESPATHPKG 17e3dc2 lib/oeqa: targetcontrol.py: add abstraction for running tests on different targets b4d9b42 testimage: use the new targetcontrol.py module for running tests fd2d165 kmod: avoid parallel-tests 68d40e2 python: do not replace ccache in the middle of a path d4398d4 lib/oeqa: use the new manifest file for determining if a package is installed 1611b47 lib/oeqa/selftest: add test modules for expected bitbake output and bitbake-layers f8ee108 lib/oeqa/selftest: buildoptions.py: add simple image build tests b9afc0d meta-selftest: create a new test layer to be used by oe-selftest script 645dd61 scripts/oe-selftest: script to run builds as unittest against bitbake or various scripts 1fa51bf classes/buildhistory: do git garbage collection after committing d51b3f3 classes/buildhistory: reduce parsing time cdfef97 classes/buildhistory: improve collection of package info 0cb38ee classes/buildhistory: add additional variables to image information 1c37266 classes/buildhistory: drop cruft from old SRCREV tracking implementation c36c198 classes/package: write PE and PKGE out to pkgdata f4e9140 classes/package: record PKGSIZE as total file size in pkgdata 4a75e83 classes/package: fix FILES_INFO serialisation in pkgdata a6450a9 ref-manual: Added the multilib* class. ab2744b ref-manual: Added the mirrors class. 80342f0 ref-manual: Added the mime class. 0e9e1b2 ref-manual: Added the metadata_scm class. 6fb5661 ref-manual: Added the meta class. 926eb4b ref-manual: Added the logging class. 86c58a5 ref-manual: Edits to license class added INHERIT_DISTRO variable. b465168 ref-manual: Added the license class. abbc253 ref-manual: Added the linux-kernel-base class. 96ed7b9 ref-manual: Added the lib_package class. 842461e ref-manual: Added the kernel-yocto class. 11589c4 ref-manual: Added kernel module split class. ed17902 ref-manual: Added kernel-arch class. c3fd5f9 ref-manual: Added the insserve class. 8033de8 ref-manual: Added the image_types_uboot class. 67ecb81 ref-manual: Edits to image_types class. a6a3c79 ref-manual: Added the image-types class. 8cdc2d5 ref-manual: Added the image-swab class. 89a3793 ref-manual: Added image-mklibs and image-prelink classes. 6b1b052 ref-manual: Added image-vmdk class. 5f20fb8 ref-manual: Added image-live class and updated IMAGE_FSTYPES variable. bd0ab4e ref-manual: Added image-empty.bbclass to undocumented class list. 5ac2e26 ref-manual: Removed image-empty.bbclass from undocumented list. 223bfdc ref-manual: Placed the ICECC_CC variable as entry point for "I" variables. cd83080 ref-manual: Added icecc class and several ICECC_* variables. 172cf55 ref-manual: Edits to the GRUB_GFXSERIAL variable. b503308 ref-manual: Added gzipnative class. 11c3ed6 ref-manual: Added the gtk-immodules-cache class and GTKIMMODULES_PACKAGES variable. 02af524 ref-manual: Added gtk-icon-cache class. 694a171 ref-manual: Added gtk-doc class. 8d1637d ref-manual: Added gsettings class. 28a6b52 ref-manual: Added grub-efi class and supporting variables. 04d8460 ref-manual: Fixed class name gtext to gettext. 93267b7 ref-manual: Added gnome, gnomebase, gtk-icon-cache, and mime classes 65d7a93 ref-manual: Addedt gtext class. 8a5a6c3 ref-manual: Added gconf class. d2d4feb ref-manual: Added fontcache class and FONT_PACKAGES variable. 3780240 ref-manual: Added extrausers class and EXTRA_USERS_PARAMS variable. f7d0456 ref-manual: Added classes_distro_features class. d68f52f ref-manual: Added distrodata class. 0423bb6 ref-manual: Added deploy class. b1c1016 ref-manual: Added crosssdk class. 3aa57fe ref-manual: Added cross-canadian class. b82ff9a ref-manual: Added cross class. 539351a ref-manual: Added core-image class. b91a667 ref-manual: Added the copyleft_compliance class. 3361d01 ref-manual: Added the cml1 class. 8853195 ref-manual: Added the cmake class. 79bff74 ref-manual: Added the clutter class. 70b503d ref-manual: Added the chrpath class. 1ad623c ref-manual: Added the ccache class. 09ac6b5 ref-manual: Added BUILDSTATS_BASE variable description. daa589d ref-manual: Added the buildstats class. c33bbac ref-manual: Added the buildhistory class. 6531d22 ref-manual: Added bugzilla class. 5f6fc88 ref-manual: Added boot-directdisk class. ace0b23 ref-manual: Added ROOTFS, NOHDD, and NOISO variable descriptions. 2e4a20d ref-manual: Upper-cased the term "ram". 74df25f ref-manual: Added INITRD variable to the glossary. 77f2a85 ref-manual: Added bootimg class description. ff7f5da ref-manual: Added PNBLACKLIST variable to the glossary. f8ac486 ref-manual: Added blacklist class description. 72562c4 ref-manual: Added bin_package.bbclass description. fb72b61 ref-manual: Removed binconfig class from undocumented list. ba57c9d ref-manual: Removed archive* type classes from the undocumented list. 0f7a5e2 ref-manual: Added allarch class description. 9a6d7e0 ref-manual: Updated the introduction text for Classes chapter. 0922d3c ref-manual: add usage NOTE to IMAGE_FSTYPES 63b2091 dev-manual: ksize.py and dirsize.py live in scripts/tiny 4cbf28c dev-manual: Add a reference to poky-bleeding distro 053d78d dev-manual: Documentation: More minor tweaks to dev manual for clarity 5156a38 dev-manual: Updated how to remove package management requirements 19e6f3f dev-manual: Changed wording of BBMASK example b288fa4 dev-manual: Added note about naming your distribution 134c76e dev-manual: Re-worded menuconfig preparation fe154e4 dev-manual: Re-ordered sections for customizing an image. 8275b92 ref-manual: Updates and additions to variable glossary: 47e7abc dev-manual: Number of minor tweaks to Dev Manual, Chapter 5. 4f7c366 ref-manual: Added new REQUIRED_DISTRO_FEATURES variable description. acf9a04 ref-manual: Added new CONFLICT_DISTRO_FEATURES variable description. 031f188 ref-manual: Slight grammar edits. 3cd9b7e ref-manual: Edits to the COMBINED_FEATURES variable. 9a8d0ea ref-manual: Updated the intro text to "Distro Features" section. bbd193d ref-manual: Some edits to the DISTRO_FEATURES variable. 7496f80 ref-manual: Updated the DISTRO variable description. 63de643 ref-manual: Edits to the DISTRO_FEATURES variable. cf04241 ref-manual: re-ordered distro features and machine features sub-sections. d856388 dev-manual, ref-manual: Updated some section titles. 302c2af ref-manual: Changed depends.dot filename to pn-depends.dot. e4d0b54 ref-manual: Added the pn-buildlist file to list of files 936cc69 ref-manual: Cleaned up some instances of the term "working directory" ee30c8b ref-manual: fixed typo 89fc8b8 ref-manual: Updated to *_FEATURES variables. b2d0ff1 ref-manual: Review edits applied to UBOOT_LOCALVERSION variable. 341a685 ref-manual: Edits to the UBOOT_LOCALVERSION variable. a880e6b ref-manual: Fixed typo in the UBOOT_CONFIG variable. e6df367 ref-manual: Added new variable UBOOT_MAKE_TARGET. a729e89 ref-manual: Added new UBOOT_SUFFIX variable description. 412abae ref-manual: Added new variable UBOOT_LOCALDEFINITION ab4f352 ref-manual: Fixed misc. formatting by removing blank lines. a18b4e3 ref-manual: Fixed typo. f99c70c ref-manual: Reset the top "U" entry for glossary to UBOOT_CONFIG. a16e9a20 ref-manual: Added glossary entry for UBOOT_CONFIG variable. 96b948a ref-manual: Expanded CLASSOVERRIDE variable example description. 21dde6f dev-manual: Updated EXTRA_IMAGE_FEATURES operater for read-only-rootfs example 0e65e79 dev-manual: Added "Task" term. 85e4bb6 dev-manual: Changed "Tasks" term into "Package Groups" term. 17ac9ee dev-manual: updated the ptest section e83292a ref-manual: Added core-image-weston and core-image-directfb 755e23e dev-manual: Re-worded the "Customizing Images Using Custom .bb Files" c95eca6 ref-manual: New glossary entries cac929e ref-manual: Added other argument values to set variable 33c2d81 ref-manual: Fixed a typo. b156232 profile-manual: Edits from Robert P. J. Day 46ac6c6 profile-manual: Review edits from Robert P. J. Day bbc820e profile-manual: Small typo fixed. f4d8358 dev-manual: More minor tweaks to development manual. 2e44a48 dev manual: Minor tweaks to first part of ch 5, dev-manual. c65a2f1 dev-manual: Some minor tweaks to ch 4, development manual: d054a45 dev-manual: Small number of tweaks to ch 3, development manual. 60e8b44 dev-manual: A few tweaks to Ch2 of dev-manual 6ac98af dev-manual: Updated Build Directory term 8831272 dev-manual: Reworded sentence for meta-intel setup c241806 ref-manual: Removed FAQ entry about running on RHEL/CentOS 5.1. 33778bb ref-manual: Updated the FAQ entry about old Python version dd6b2ef documentation: Scrubbed use of directory names 30d7f52 ref-manual: Tweaks to the structure chapter. 830c2df ref-manual: Removed the pseudodone section in the build structure 0290219 ref-manual: Updated the description for oe-init-build-env-memres 437bf60 ref-manual: Tweaks to a patch from Robert P. J. Day c354dc6 ref-manual: Various tweaks/fixes for ch4. ref manual cebf481 ref-manual: Updated bitbake/ section to remove wrapper script c1f030f ref-manual: Couple innocuuous tweaks to migration chapter. 4a52822 ref-manual: Updates to "Variables" and "Building with No Dependencies" f16706d ref-manual: re-wrote the "Invalidating Shared State" section 1c19d66 ref-manual: Updates to the FEED_DEPLOYDIR_BASE_URI variable. 90f80a7 dev-manual: Added a link for the FEED_DEPLOYDIR_BASE_URI variable 81a7812 ref-manual: Added FEED_DEPLOYDIR_BASE_URI variable description a8388ac ref-manual: Small number of fixes to Ch1 of ref-manual ae7c4d5 ref-manual: Pedonic tweaks to ref manual usingpoky.xml 2a8596d ref-manual: Grammar and typo edits to "Closer Look" section. f3c4d68 dev-manual: package add using facilities in oe-core only. c35d59f yocto-project-qs: Removed out-of-date links to distro requirement info 5823041 ref-manual: Removed out-of-date links in supported distros section. 5e715c5 ref-manual: Formatted "Caution" boxes 52ff43b poky.ent: Added gcc-multilib as an essential package 26b104b ref-manual: Patch for various fixes to glossary b88c833 ref-manual: Edits to INITSCRIPT_NAME variable. 3abf9be ref-manual: Edits to the BBLAYERS_NON_REMOVABLE variable. 38853cf babeltrace: correct PV variable da88c5f classes/icecc: fix typos in header comments baf7765 linux-dummy: catch up with image.bbclass changes a17ffbd bitbake: hob: fix rotating progress icon animation 35c2590 bitbake: imagedetailspage: Fix crash with more than 15 layers a67fde0 bitbake: bitbake.lock: Add host:port to bitbake.lock for memres server 6ff9c9e bitbake: bitbake, xmlrpc.py: Implement memory resident auto port configuration/restart 0bea372 bitbake: bitbake: Add --status-only option 72e650d oe-init-build-env-memres: Add auto port functionality 644a1a2 oe-init-build-env: Allow startup with and without memres a6b55d9 gcc-cross-canadian: Fix fortran build a9d8f36 eglibc-initial.inc: Drop duplicate include fabdf2f bitbake: hob: disable layer drag and drop outside the containing widget f5f3ef7 bitbake: parse/ConfHander/BBHandler/utils: Fix cache dependency bugs ea03ed0 qt4-x11-free: depend on ICU 8337aa3 sqlite3: Fix configure option warning 51d3285 util-linux: Remove obsolete configure options 04e3487 linux-yocto/3.10: -rt, ebtables and e1000 fixes 8bd91ec linux-yocto/3.4: update to v3.4.69 5745f59 linux/yocto-3.10: merge v3.10.19 63fbeba webkit/midori: block to build webkit on mips64 with libn32 ABI 44c6911 alsa-state: add status command 813aafe apmd: add status command cb8e55c ppp: add status command 3c182d2 busybox: add busybox_git.bb recipe ef71b02 linux-firmware: Remove bash scripts from target package 7cfee36 hdparm: make wiper appear before hdparm in PACKAGES 39bd9fb libsdl: Clean up configure option QA warnings 2a135de adt_installer: Fix missing autogen.sh error f81aa8d lsb: de-bash scripts to remove bash dependency 32c5d84 image.bbclass: Depend on virtual/kernel:do_deploy 369772c poky: Add Ubuntu-13.10 to supported distros list 92f984d local.conf.sample: Fix typo 7b9f4b2 base/gcc-common: Ensure umask setting is consistent for shared workdir 80d522a sstatesig.py: Fix image regeneration issue f91a3f4 bitbake: cooker: Fix support for wildcards in bbappend filenames 79fbb1f base.bbclass: Set umask 022 also for do_unpack task d340d29 xinput-calibrator: add formfactor to RDEPENDS 977d623 module-base: Fix misleading comment 3f5e982 Revert "kernel: restore scripts in the sysroot" 3ee3d3a rpcbind: Fix rpcbind restart failure when rpcbind is not running 15bff74 elfutils: fix the condition check before remove eu-objdump bd9f9ab libav: install libraries to right directory when multilib is enabled 75cc532 weston: upgrade to 1.3.1 6fcb960 chrpath: Improve crazy code 572a8eb icecc: Disable icecc for allarch recipes 1897cce cronie: fix init.d/crond status return value ebe51c7 tcf-agent: add init.d/tcf-agent status command 013a828 zlib: Add ptest f609852 tcl: fix version string and make recipe multilib build compatible 2e62e82 file: remove useless patches 5bfd377 clutter-1.0: upgrade to 1.16.2 48e1961 librsvg: upgrade to 2.40.1 4a4b36f fontconfig: upgrade to 2.11.0 b732052 pango: upgrade to 1.32.6 b03b338 libdrm: upgrade to 2.4.49 463e56f bitbake: crumbs/builder.py: Fix typo for indefinite article 32adaac libpng: set reasonable SUMMARY a88271e xproto: upgrade to 7.0.25 a0e515f git: upgrade to 1.8.4.4 4661094 libxcb: upgrade to 1.9.3 3be9e24 xcb-proto: upgrade to 1.9 63335c8 powertop: upgrade to 2.5 9e74676 tar: upgrade to 1.27.1 bab3142 python-setuptools: upgrade to 1.4 87e1cca xtrans: upgrade to 1.3.2 d652549 systemtap: upgrade to 2.4 8bec473 libav: use CCLD as ld a216cc1 libpng: upgrade to 1.6.7 e3c4124 coreutils 6.9: fix coreutils.texi 82ff33f bitbake: Hob: force notebook refresh a10301f bitbake: data/codeparser: Improve handling of contains functions d061692 bitbake: bitbake: Share BB_TASKDEPDATA with tasks 4c69970 bitbake: runqueue: Optimise next_buildable_task() 3ca58c7 bitbake: codeparser: Drop unneeded variable separation 960e305 classes/image: write image manifest bbbd6fc harfbuzz: Add PACKAGECONFIG for icu 5048f59 beecrypt: Add PACKAGECONFIG for cplusplus bd93f10 poky: enable unknown-configure-option QA test as a warning 1e084f9 qemu: add PACKAGECONFIG for vnc, libcurl, nss, uuid, curses, gtk+, libcap-ng 937663b bzip2: Remove stange copy line, automake does this for us anyway 381cd84 linux-firmware: add missing linux-firmware-iwlwifi-7260-7 package 447a057 sanity: Use random filename for maximum path length test 181875b sanity: Don't hard code value of ENAMETOOLONG d62ced4 bluez4: added dependency on 'libsndfile1' a6c4868 avahi: add leading space to RRECOMMENDS append 2eccff7 webkit/midori: fix COMPATIBLE_HOST 2d5b4af x264: install libraries to right directory when enable multilib f5e7c84 attr: attr_2.4.47 release tarball missing configure.ac 0aef540 bitbake: fetch2: Correct a few calls to latest_revision() 64372fa bitbake: bitbake: fetch2: Remove the unused urldata from the git fetcher. b1c15cb bitbake: data: Fix output inconsistencies for emit_var 6ddb9bf bitbake: perforce: Fix path subdirectory issues 4ca910d bitbake: bitbake-layers: avoid loading configuration when not needed 300b6f7 bitbake: HOB: Show warnings in Issues tab 381d592 bitbake: cooker: add support for using % as a wildcard in bbappend filename bc267ef bitbake: runqueue/bitbake-worker: Fix dry run fakeroot issues 02a697c adt-installer: Switch from svn to tarball release for opkg b62bdbd metadata_scm: Avoid crashing on new svn version layouts 6e8a4ef kernel.bbclass: Stop bundle_initramfs thwarting sstate cache and fix race 33db10a Revert "kernel.bbclass: move bundle_initramfs after kernel_link_vmlinux" 9814cbf kconfig-frontends: add python to kconfig-frontends's RDEPENDS 2b79088 initscripts: remove erroneous call to /etc/default/rcS in mountnfs.sh 27fb21d pciutils: upgrade to 3.2.1 d796b64 libsoup-2.4: upgrade to 2.44.2 dffdf30 lighttpd: upgrade to 1.4.33 62c50ee syslinux: use cross toolchain to compile e9802e3 util-linux: Package readprofile into it's own package 4b6db00 security_flags: grub-efi-natve does not build with flags enabled c536fe2 librsvg: move gdk-pixbuf-native dependency 6734f82 opkg: Don't use update-alternatives 9339da2 opkg: Add PACKAGECONFIG options 4fe0af5 opkg: Update to version 0.2.0 0dc6c96 json-c: do rm -f on config.status before do_configure bc6a3cf gettext-minimal-native/iconv.m4: remove the test to convert euc-jp 33c97ee rootfs_*.bbclass: List which post-install scripts can not be run 739fba1 package_rpm.bbclass: Replace -linux-gnun32 with -linux.* in RPM platform file 074a0ab gst-ffmpeg: fix CVE-2013-3674 05e9f1f acpid: fix acpid break down 637ad2f acpid: fix acpid boot error 6a3a4ba base.bbclass: Fix incorrect setting of multilib PREFERRED_PROVIDER_virtual_pkg 6a8307c poky.conf: enable ptest distro feature 9d7f8e2 bitbake: fetch2: Stop passing around the pointless url parameter 4acc732 bitbake: fetch2: Clean up some url parameters to functions fda7b7b ethtool: Fix ptest compile e031a05 buildhistory/distrodata: Adapt to updated fetcher API 0d39f33 packagegroup-core-tools-profile: add systemd-analyze afe82ef oeqa/connman: disable unique test b4a0164 gcc: Upgrade to 4.8.2 fd32fcb ia32-base: Remove cpio and ext3 defaults 5968a7b matcbox-keyboard: bump SRCREV d60b4ff yocto-bsp: Add missing format specifier in bblayers error message 2674ad5 genericx86-common.inc: add eee-acpi-scripts to MACHINE_EXTRA_RRECOMMENDS 725fae6 bitbake: toasterui: fix typo e19ee57 bitbake: bitbake: cooker, toaster: mark interrupted builds as failed 10717e5 bitbake: build.py: add single-quotes around already-expanded directory name 852ba6c librsvg: upgrade to 2.40.0 b60666e kconfig-frontends: upgrade to 3.12.0.0 b2ff2d2 weston: remove reference to gles in PACKAGECONFIG ef3b0b5 json-glib: upgrade to 0.16.2 42f1d64 sysvinit: use ALTERNATIVE to manage sulogin c2cbe0f gstreamer1.0: upgrade to 1.2.0 7865ce6 util-linux: collect libs for related libxx-dev package 551fcea license.bbclass: fix missing of license files on ubuntu build host 489b5d0 liburcu: upgrade to 0.8.1 e0d0a4e at-spi2-core: upgrade to 2.10.2 f1cdef5 libjson: update to 0.11 and rename to json-c a053eff btrfs-tools: Update to git HEAD a50da2d image_types: newer btrfs.mkfs needs an empty file to build the disk in c5227cb telepathy-idle: upgrade to 0.2.0 ae70c20 kernel.bbclass: move bundle_initramfs after kernel_link_vmlinux 4cf2d7c xorg-driver: fix qa issue while multilib enabled - contains Xorg driver but no xorg-abi 6af097c bitbake.conf: Remove obsolete/unused MIRROR cruft f61e62c qemu: explicitly disable xen support fe25744 initscripts: add missing dmesg.sh to run-level S 66fd6c4 kernel.bbclass: Use lzma not lzmash for decompressing 3a8b73f systemd: Fix packaging of pam config files. 27acf4f ia32-base.inc: remove eee-acpi-scripts from MACHINE_EXTRA_RRECOMMENDS 17c155b icecc: Use bb.utils.which instead of calling which f2ed8fa distrodata.bbclass: Add fetch2 handlers to svn case in checkpkg 1c0c6dc dbus: Don't depend on dbus-ptest-ptest for the nativesdk-dbus package 5666f8c boost: Add patch to avoid undefined references to boost::atomic::lockpool::get_lock_for() 8d2b5f3 lttng-modules: Update to 2.3.3 version 7ef7e55 lttng-tools: Update to version 2.3.1 ea7aba7 lttng-ust: Update to version 2.3.1 182dc38 util-linux: Fix QA warnings about ALTERNATIVES bcdda02 udev: remove extra -dev/-dbg packages 66a3db6 qemu-helper-native: remove unneeded FILESEXTRAPATH 94aa8d8 squashfs-tools: remove FILESEXTRAPATH and move patches directory b609f91 libpcre: Cleanup FILESPATH e3ff4a2 grub: add xz RDEPENDS 3cc043d lib32-qt4-examples: fix QA warnings and INSANE_SKIP not work 9a6ee8b flex: fix m4 issue on target b74b235 expect: Add recipe 7579458 libnl: Fix random segfaults due to memory corruption 5505bde tcl: Install header into 8.6 instead of PN-PV in user/include 1ef7240 mdadm: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for powerpc64 943f4c1 kernel-grub.bbclass: support /boot area within root partition dc80eea sysvinit: fix problem in switching runlevels 20efe19 libcheck: upgrade to 0.9.11 0079588 sysstat: upgrade to 10.2.0 bf7d135 bitbake: runqueue: Fix hole in setsceneverify skipped task logic 215dab8 bitbake: fetch2: Fix handling of SCM mirrors in MIRRORS 9ccfe66 bitbake: git: Use git branch for ancestor checks e15893a bitbake: serv.py: Give pr-server up to 5 seconds to commit data 2354250 bitbake: git: Use merge-base instead of log for testing if a commit is present e45d735 python: Fix ptest not working problems f9729f4 sysvinit: unmount the psplash lazyily b0281b3 pybootchartgui: Add option --minutes to show time in minutes 8c26891 pybootchartgui: Add a color for the package_write_* tasks 85fca34 pybootchartgui: Reorder the legend to match the task execution order d5f88f0 pybootchartgui: Make bars without a specified color white 46c4585 pybootchartgui: Make "Show more" show all processes 65d4384 pybootchartgui: Draw a lot less ticks 80cce56 pybootchartgui: Disable options that do not make sense 730e350 pybootchartgui: No need to do a double list comprehension over files c10abc7 pybootchartgui: Avoid having overlapping process bars 94caf6f pybootchartgui: Use correct header height 2020eb2 pybootchartgui: Correct the X offset for the chart 1a539bb pybootchartgui: Set the initial state of "Show more" correctly cacd502 pybootchartgui: Make the horizontal scaling stay within bounds d0e513d pybootchartgui: Import pybootchartgui 0.14.5 a52c9b9 mtdev: upgrade to 1.1.4 a95fcec libxrandr: upgrade to 1.4.1 be49e20 gdk-pixbuf: upgrade to 2.30.1 51feb29 nfs-utils: Add new option to disable nfsidmap and PACKAGECONFIG for that 9a9a597 lttng-tools: Fixes incorrect path of ptest cases bba44c6 packagegroup-core-boot: Drop build-time dependency on virtual/kernel 646a3b5 ofono: upgrade to 1.13 36255d4 buildhistory_analysis: fix error when comparing image contents d7ccfc7 kernel.bbclass: fix hardlink test db7f8d4 kernel.bbclass: test for hardlinks before installing 9fdd8ad bitbake: cooker, toaster: variable definition tracking 5108437 bitbake: toaster: task with outcome 2 (sstate), should have sstate_result!=0 6f01250 bitbake: hob/hoblistmodel: check if vals of packages/recipes names are not None ad65846 bitbake: cooker: warn if user specifies a target listed in ASSUME_PROVIDED 859b631 bitbake: hob: refresh tables when the user is redirected to Edit packages 5f98364 bitbake: toaster: fix path to buildstats file 533cf81 bitbake: toasterui: mark failed sceneQueue tasks as failed 9f1e696 bitbake: toaster: remove author field 2445b31 bitbake: toaster: fix tasks showing as NoExec e1e1ee5 linux-yocto/3.10: meta: ARM: OMAP3: Add USB PHY driver for Beagleboard 1893d15 poky.conf: add Debian 7.2 to SANITY_TESTED_DISTROS 8babbd1 meta-yocto-bsp: update SRCREVs for 3.10.17 and beagleboard fixes 779dec9 linux-yocto-rt/3.10: fix ntp merge issue 89c986c linux-yocto/3.10: meta: ARM: OMAP3: Add USB PHY driver for Beagleboard de5f4ff classes/license: use "1" to set boolean variables 152a1b5 classes/pkg_metainfo: remove a6e3916 classes/pkg_distribute: remove 5f6ccc6 systemd: fix comments 8865681 classes/license: fix comments 920be20 gtk-immodules-cache: fix error message to use correct names d1d26a2 bitbake.conf: remove CPU_FEATURES defaults c028dcd classes/sanity: validate SDKMACHINE value 0b15220 bitbake.conf: remove BOOTSTRAP_EXTRA_* variable defaults 8692eeb classes/insane: improve LIC_FILES_CHKSUM messages 6f54fa2 scripts/create-recipe: fix handling of --help 9c27561 perl: perl-ptest.inc polutes package dependencies when ptest not enabled bfc55b9 classes/image-empty: remove 931cf6e staging: Use hardlinking for sysroot_stage_dir ea92671 bitbake: cooker: replace "w" file opening mode with "a" mode 8c53410 bitbake: toaster: convert build_package size to bytes to keep consistence b9d8104 bitbake: newbb.vim: fix spelling 520f953 binutils: Add gnu-config-native to DEPENDS 790b75f insane, license: Trap MalformedUrl exceptions when parsing LIC_FILES_CHKSUM 3635f1f autogen-native: remove the unnecessary RDEPENDS b66f3dc Revert "glib-2.0: Specify libiconv when building on uclibc" 40b3030 bitbake.conf: Default DISTRO to nodistro 442e2e7 e2fsprogs: fix tests/f_extent_oobounds 1c52c87 core-image-weston: add SSH and hwcodecs to the image 78c6e69 icecc: Fix race condition when packaging toolchain 0dbd545 icecc: Add package whitelist 19c65b2 icecc: Support shell evaluation of KERNEL_CC d283bfd icecc: Enable icecc also for install step be18197 icecc: Add dummy python version of set_icecc_env 54f52bc icecc: Add blacklist vars to BB_HASHBASE_WHITELIST 280a492 icecc: Reduce verbosity with empty PARALLEL_MAKE 79272eb icecc: Log reason in error cases 9f56718 qemu: use PACKAGECONFIG to address xfsprogs dependency 27c2cbb vala: cleanup DEPENDS 64194d5 wpa-supplicant: enable CONFIG_CTRL_IFACE_DBUS_NEW f0aa0c2 packagegroup-core-basic: define VIRTUAL-RUNTIME_syslog e2ea549 gcc-common: Enable building multiarch mips gcc c7a80e4 systemd: Upgrade 206 -> 208 a678456 elfutils: remove eu-objdump if it does not work 0a08dc7 mklibs: add dependency on dpkg-native 6eb26f7 image-mklibs: Fix grep pattern when mklibs collects executables in rootfs f312582 weston-init: use /run instead of /var/run 7fd8919 openssh: upgrade to 6.4p1 e6b7180 ethtool: upgrade to 3.12.1 54651f4 nfs-utils: upgrade to 1.2.9 2ba62cc cmake: upgrade to 2.8.12.1 5540693 clutter-gtk-1.0: upgrade to 1.4.4 feba094 freetype: upgrade to 2.5.0.1 65ca5cb syslinux: add APPEND to dependency list df564c4 kernel: Use hardlinks for do_populate_sysroot for speed db5d127 glib-2.0: move more logic to the .inc c393536 lib/oe/path: Fixup handling of .* files in top level paths for copyhardlinktree() 8a07a17 lib/oe/path: Fix performance issue got copyhardlinktree() 5e73287 kernel: Use hardlinks during do_install for speed 4fdc3d7 kbd: Fix stdarg related errors on uclibc 4feed78 liburcu: upgrade to 0.8.0 32c1180 xserver-xorg: upgrade to 1.14.4 bd53283 avahi: fix avahi status command error prompt 4412197 weston-init: start weston on a new VT f648488 weston: upgrade to 1.3.0 5177812 wayland: upgrade to 1.3.0 18ada13 clutter: upgrade ae03f31 cogl: upgrade to 1.16.0 7c3986e cross-canadian: Let cross-canadian packages build for uclibc 67a7ac1 bitbake: HOB: HIG compliant message dialogs 34eb004 bitbake: depexp: Improve wording on requirements 437e916 orc: version 0.4.18 migrated from meta-oe b9a660f binutils: remove embedspu 217a8de nspr: Update to 4.10.1 41f55f4 kbd: upgrade to 2.0.1 8a03d59 sysvinit: adjust boot sequence and remove hack from udev f7140dc bootlogd: create log file if not present 1e16634 lib/oeqa/utils: sshcontrol: make timeout depend on output 26559c5 lib/oe/sstatesig: Ensure packagegroups don't continually rebuild 3a5ab77 ppp: Fix compilation errors in Makefile 530c87b eglibc_2.17.bb: accept make versions 4.0 and greater 3a162de eglibc_2.18.bb: accept make versions 4.0 and greater 2544359 makedevs: several fixes 575dc3b sqlite3: Add support for column metadata API 43cce83 binutils: Drop binutils-symlinks 77ff02f binutils: Use alternatives for the binutils-symlinks package. d6cc7c8 toolchain-scripts/meta-environment: Further cleanup code duplication 0331fc2 package_deb/package_ipk: Cleanup control file handling/races 1eefcf0 package_rpm: Remove need for locking d5a1538 toolchain-scripts: Drop darwin8 code e52020e toolchain-scripts/meta-environment: Merge toolchain_create_sdk_env_script and the for_installer variant 5810d54 extrausers.bbclass: avoid infinite loop 3e6b57f mdadm: Disable the RUN_DIR check ec57d68 zisofs-tools-native: add missing DEPENDS on zlib-native 59818a2 zisofs-tools-native: fix meta fields 16d18ef python-pycurl: upgrade to 7.19.0.2 b353269 diffstat: upgrade to 1.58 aaa4b6e xz: upgrade to 5.1.3alpha 039b8ec git: upgrade to 1.8.4.2 a2e3baa xtrans: upgrade to 1.3.0 4bffa07 xf86-input-keyboard: upgrade to 1.8.0 1c3a35f python-setuptools: upgrade to 1.1.7 e9ec153 linux-yocto/3.10: fix qemuarm boot and spurious mips build warning 6a3e200 qemu: upgrade to 1.6.1 1096136 ppp: Add two structures in if_pppol2tp.h ef942e3 eglibc-locale: Does not create {localedir} if the toolchain has no files under it 19aeca1 lib/oeqa: add oeTest superclass 90c709d iproute2: de-bash its scripts to remove the bash dependency a530781 kernel.bbclass: Delay rm_work to run after do_bundle_initramfs 8f84cc9 package.bbclass: Fix split_and_strip_files when file has single quote (') e82320a db: Fix build with high PARALLEL_MAKE 57498ce bitbake: toaster: fix target package information 9160f37 bitbake: toaster: enable required classes in the toaster startup script 8cbd1ce bitbake: toaster: add variable description for prefixed/suffixed variables 16067d5 bitbake: toaster: server shutdown on terminal exit af32d95 bitbake: toaster: fix timezone settings 0087db6 bitbake: cooker: do not recreate recipecache in buildfile mode 85b9194 bitbake: build, toaster: record proper task type a670859 bitbake: cooker: add data to the dependency tree dump f04a321 bitbake: toaster: fixes for null values from events d870d3e toaster: add class to dump toaster-tracked data fcce65d documentation.conf: update contents 4d7639e image_types: Improve dependency handling between types (and use for sum.jffs2) baf005b linux-yocto/3.10: common-pc: add missing dependencies for BRCMSMAC dd361f0 linux-yocto/3.8: add crystalforest bsp legacy block drivers configurations 1fe7bca linux-yocto/3.10: haswell-wc and crystalforest support a23c7e9 linux-yocto-3.10: bump to 3.10.17 and -rt11 f354122 bitbake: hob: do not display the "Package list may be incomplete!" dialog 1c7bbf8 bitbake: fetch/hg: Improve user/password handling fe3e265 bitbake: hob: populate error_msg when hob receives a CommandFailed event de7e6ef bitbake: fetch2/svn.py: use log instead of info to retrieve revision ba84fbe dev-manual: Updated the note about BB Commander/Eclipse WS locations 98f631a adt-manual: Added note for static builds using -c populate_sdk 3abf3a6 dev-manual: Updates to Toaster section 81cfd06 dev-manual: Edits to the toaster section 721abea ref-manual: Updated the "Development Checkouts" section 08b5e31 ref-manual: updated the list of where to get YP release 0ef2170 ref-manual: Updated link to build tools. c9cf0cf dev-manual: Fixed grammar error. f5180d7 dev-manual: Updated the layer.conf example 43469cd adt-manual, dev-manual: Removed the LatencyTop website link. 2e492c8 dev-manual, mega-manual: Updated kernel flow (text and figs) 15a28d7 dev-manual, mega-manual: Updated BSP Development figure c922bfe dev-manual: Edits to the "Source Directory" term 0dd2fed dev-manual: Edits to "Yocto Project Source Repositories" section d248c5d dev-manual: Removed tarball method for installing meta-intel 4d69fc1 dev-manual: Removed tarball method for poky in setup section 57d2417 dev-manual: Updates to toaster section a26aff6 ref-manual: Edits to the IMAGE_FSTYPES variable a73466a ref-manual: Updated IMAGE_FSTYPES variable description. 195266b adt-manual: Minor edits to Chapter 4 a508060 adt-manual: Edits to "Optionally Building a Toolchain Installer" 853df59 adt-manual: Edits to "Extracting the Root Filesystem" section a8b0bc4 adt-manual: Edits to "Getting the Images" section 62881f1 adt-manual: Edits to "Using BitBake and the Build Directory" section. 443de92 adt-manual: Edits to the "Using a Cross-Toolchain Tarball" section. 4569cba adt-manual: Fixed toolchain path in example 122e688 adt-manual: Removed tarball method from "Getting the ADT Installer Tarball" 610ccdb adt-manual: Fixed wording for getting the ADT tarball 524f1f5 yocto-project-qs: Updated the "Super User" section for no tarballs 458cc5c yocto-project-qs: Fixed toolchain path e3f634c yocto-project-qs: Removed note in "Downloading the Filesystem" section. fbf0e60 yocto-project-qs: Fixed toolchain installer download path 37777b7 yocto-project-qs: Updated "Building an Image" example to use Git repo f762d40 documentation: Changed Note for most recent manual a2aeade ref-manual: Added sdk-pms to Distro Feature list. 1f290da kernel-dev: Corrected error in the FILESEXTRAPATHS example fe02927 dev-manual: Added -ptest to list of complementarty packages 89c1047 dev-manual: Uncommented the Toaster GUI section. fa1ba9b documentation: Updates to Manual revision tables 3d26d97 tools/mega-manual.sed: Updated to build for 1.6 release. 209f6c5 poky.ent: Updated variables for 1.6 release support. 94b5584 profile-manual: Added note about SystemTap ssh connectivity a77c4c8 dev-manual: Added note for BB Commander project location. 75c87f0 dev-manual: Updates to section on using script to create general layer 95f17e0 dev-manual: Updated "Using .bbappend Files" section. 69eec3e dev-manual: Updates to "Best Practices to Follow When Creating Layers" fc5b458 bsp-guide: Fixed some grammar and some filenames. 7059097 sgml-common: make postinst run successfully at rootfs time 2e0f7cf groff: fix pkg_postinst and remove unneeded do_install_prepend a04b611 jpeg: enable postinst to run at rootfs time successfully 660304f busybox: fix sed auto insert newline testcase fa91171 udev: fix typo in local.rules 2c99422 grub-efi.bbclass: Fix startup.nsh to work on more EFI revs 717c1ed update-rc.d.bbclass: Cleanup package scripts 452b23a rxvt-unicode: upgrade to 9.19 cc0baf1 grub-efi.bbclass: Fixes GRUB_IMAGE when using boot-directdisk class 678a4fa Mesa: upgrade to 9.2.2 9f7f7af irda-utils: restart irda daemon correctly 3129619 lttng-tools: make ptest able to work on target c177fb6 elfutils-native: Update the patch to include the missing pieces needed for tests a7ba2f9 syslinux.bbclass: Fix default serial port string 523f2a9 cross-canadian: Improve comment 57b2102 telepathy-glib: upgrade to 0.23.0 5a79e6f telepathy-mission-control: upgrade to 5.16.0 78c3a33 iproute2: upgrade to 3.11.0 1d30c64 libuser: upgrade to 0.60 0902b63 lsb: add begin function to lsb_log_message 3d204a5 libx11: upgrade to 1.6.2 1d8cfc7 shared-mime-info: upgrade to 1.2 b8c0b8f ncurses-terminfo: Remove bashism from basic terminfo installation 1b8bd9e e2fsprogs: Escape filenames in populate-extfs.sh 6ab2d46 coreutils: support command arch 15bc2dd vala.bbclass: add dependency on vala bd1cf71 cross-canadian: Handle powerpc linux verses linux-gnuspe 3e629b2 systemd-compat-units: run-postinsts fix script link aedf3d9 nfs-utils: modify nfsserver init script indent 52a3c78 classes/ptest: do not set EXCLUDE_FROM_WORLD 72d0504 classes/ptest: fix quoting 0cda4bb core-image-basic.bb: Allow user extensions 5e42796 recipes: Remove PR = r0 from all recipes 4d3c79d openssl: create package for openssl configuration file af7a27b dbus: no messages of status command print 6583f62 attr: upgrade to 2.4.47 dd1d9bd gnupg: upgrade to 2.0.22 3f4d3ee cups: upgrade to 1.7.0 1a573bb udev: Update touchscreen rule for ID_INPUT_TOUCHSCREEN 534b447 connman: upgrade to 1.19 5361ed7 libcap: fix CAP_LAST_CAP f232a94 glib-2.0: upgrade to 2.38.1 61af454 bluez5: upgrade to 5.10 b2e86f7 pixbufcache.bbclass: gdk-pixbuf-query-loaders depends on libz f6053d8 sudo: upgrade to 1.8.8 5fb5243 curl: upgrade to 7.33.0 7330735 at: upgrade to 3.1.14 44e2ea5 opkg: putting the service files into PN f8a9653 qt4: add upstream QTBUG-34218/QTBUG-34234 misaligned selection patch 2342fdc wic: Remove selinux_check() bd1a423 strace: remove += assignment of a OVERRIDES variable f7e849f pigz: Add pigz to buildtools tarball cb5a224 debugedit: fix segment fault while file's bss offset have a large number 8ceb14a cogl-1.0: depend on virtual/mesa 2588a0f rpm: Fix FILES_${PN} d69931d scripts/oe-pkgdata-util: fix global name 'debug' is not defined 76751a0 update-rc.d.bbclass: Fix host/target test in postinst 5e75eba pcmanfm: upgraded to 1.1.2 dce662a grep: upgrade to 2.15 91c00fb scripts: Add ksize.py and dirsize.py 7f1b40b libsoup: upgrade to 2.44.1 3075401 libxv: upgrade to 1.0.10 fcd931c pseudo: fix library path in FILES_${PN} 0cff01d pulseaudio: Fix build break on armeb 4b32447 tzcode & tzdata: update to 2013h 8f431d0 meta-toolchain-qt: put QT_CONF_PATH in environment script 60e271a nativesdk-qt4-tools: create qt.conf file 3ccc65f gnome: set UNKNOWN_CONFIGURE_WHITELIST 03ba78b xorg-proto-common: set UNKNOWN_CONFIGURE_WHITELIST 4a8d62c openssh: upgrade to 6.3p1 9c01b3b ethtool: upgrade to 3.11 c64bad9 cmake: upgrade to 2.8.12 97dd981 libgcrypt: remove --without-pth 9669889 gnome-common: inhert gnomebase not gnome bad13be xorg-lib-common: set UNKNOWN_CONFIGURE_WHITELIST 6ce2879 scripts/oe-pkgdata-util: add ability to find a recipe from a target package 948a714 scripts/oe-pkgdata-util: add ability to look up runtime package names 48755f1 scripts/oe-pkgdata-util: add ability to search for a target path 4ec1f8c scripts/oe-pkgdata-util: check path arguments to ensure they exist 8b42409 scripts/oe-pkgdata-util: improve help text and command line parsing 9ce903b scripts/oe-pkgdata-util: remove remnants of former pkgdata structure 78b91ab pigz: bump to 2.3.1 31d041b harfbuzz: upgrade to upstream version 0.9.22 10f561f cairo: upgrade to upstream version 1.12.16 8bb28e3 gtk+: upgrade gtk+ to upstream version 2.24.22 9ad26e3 cracklib: cracklib-native should not depend on zlib 13dbf09 nfs-utils: nfsserver restart should kill and recreate nfsd kernel threads 72eadfc libfm: allow build with automake-1.14 41e5d52 libfm: upgrade to upstream version 1.1.2.2 b40ff31 libcheck: allow build with automake-1.14 95001f4 libxcb: fix build with automake-1.14 b82603b nfs-utils: Stop rpc.statd correctly 2570f13 perf: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for mips64 e75ea49 screen: dynamically add or remove a entry to/from /etc/shells 312cc0f bash: dynamically add or remove a entry to/from /etc/shells be860ac base-files: remove invalid entries from /etc/shells 39356f6 relocate_sdk.py: Allow script to work with Python 2.4 and 3. 2e55755 rpm: Add nativesdk to BBCLASSEXTEND 7a2de00 runqemu-extract-sdk: add --numeric-owner option to tar command e0152db gdk-pixbuf: use PACKAGECONFIG to control legacy X11 sub-library d531a56 nss: don't need set SRC_URI with both += and _append 05efe6b mesa: fix dependency ecf98b4 kernel-grub.bbclass: add a method to install/update for bzImage 6f50315 libarchive: replace += with _append for appending to OVERRIDES variables bc2040d image_types.bbclass: fix endiannes for sumtool (jffs2 summary) 1c3c811 image_types.bbclass: do not force --no-cleanmarkers for jffs2 4af9886 dropbear: update to 2013.60 version b831b8c bzip2: replace += with _append for appending to OVERRIDES variables c0ab353 check: Remove duplicate recipe of libcheck d555261 kbd: Use libcheck instead of check 9ff572a libcheck: Add native support for kbd-native 0816c57 openssl: switch ARM builds from linux-elf-arm to linux-armv4 config 137d141 openssl: use linux-generic64 target for Aarch64 (LE and BE) c9fc9b9 mesa-gl: use base_set_filespath 526488c mesa: make runtime variables depend on PACKAGECONFIG 823299e clutter: remove usage of FILESPATH f995feb buildhistory-diff: add ability to report version changes bc77ea9 packagegroup-base: if zeroconf DISTRO_FEATURE enabled, add libnss-mdns 2ccb868 nspr: Add LDFLAGS to TARGET_CC_ARCH to fix warning d4cc036 minicom: fix -v/-h return value 30bafdc gdb: upgrade to 7.6.1 4525157 mdadm: upgrade to 3.3 3347bc4 tcl: upgrade to 8.6.1 4d68d36 tar: upgrade to 1.27 810126d m4: upgrade to 1.4.17 d286942 xinit: upgrade to 1.3.3 8c1d95f python-setuptools: upgrade to 1.1.6 816593f xmodmap: upgrade to 1.0.8 754e876 base.bbclass: fix nondeterministic PACKAGECONFIG processing order ffb440c midori: exclude from self-hosted for mips64 c367ebd initramfs-framework: fix test that filter backup module files cf66584 wic: Update and generalize pseudo setup for rootfs generation 8ac5454 wic: Make find_binary_path() more user-friendly cb0df94 wic: Remove binary dependencies 51fdae5 wic: Remove rpmmisc call from livecd f2ca93e wic: Remove rpm and grabber dependencies from BaseImageCreator 39c9af5 wic: remove rpm warning code from BackendPlugin 2a83999 wic: Remove dependency on myurlgrab module c4a4fc5 wic: Remove dependency on rpmmisc db034f0 wic: eliminate module checks ce2dabd wic: Remove dependency on rt_util module a7b1ff8 upstream_tracking: Update manual check for minicom 56cc2f2 linux-yocto/3.10: MinnowBoard support 505114c wic: add pseudo to the populate-extfs step 8707c39 bitbake: monitordisk: lower inode check warning to note a8b06e6 file: Add nativesdk in BBCLASSEXTEND 0b3bbef ossp-uuid: Add nativesdk in BBCLASSEXTEND ddf4e89 smartpm: Add nativesdk in BBCLASSEXTEND a73f180 rpmresolve: Add nativesdk in BBCLASSEXTEND 04d5d12 acl: Add nativesdk in BBCLASSEXTEND 05999d1 attr: Add nativesdk in BBCLASSEXTEND cd75fad icu: Add nativesdk in BBCLASSEXTEND 2b7f388 popt: Add nativesdk in BBCLASSEXTEND 11fd886 beecrypt: Add nativesdk in BBCLASSEXTEND 63534ab openssh: fix sshd status command error prompt d3cb369 lib/oeqa/runtime: build kernel module on target test 67378fb wic: Initialize return values in find_artifacts() e22efb4 wic: Check for the existence/correctness of build artifacts 99d33f2 packagegroup-core-basic: libuser has a hard depenency on libpam 75b0fb2 udev: update local rules for new touchscreen device 9d8fc02 ca-certificates: Clarify in Description that certs are Debian based 8b3b1e7 base-passwd: upgrade to 3.5.28 81b0852 kbd: Update to 2.0.0 f2c4d80 check: add check recipe for kbd to use for creating unit tests 89b569b crond: remove UID check in init script 57f75d3 xf86-video-fbdev: upgrade to 0.4.4 46ae29d xprop: upgrade to 1.2.2 81ecf2b xinput: upgrade to 1.6.1 b9d8016 xf86-video-intel: upgrade to 2.21.15 c786249 xset: upgrade to 1.2.3 13f1007 libdrm: upgrade to 2.4.47 3070180 xf86-input-evdev: upgrade to 2.8.2 76b04f0 xauth: upgrade to 1.0.8 c17b080 xkeyboard-config: upgrade to 2.10.1 b0125ee byacc: upgrade to 20130925 db1d37a perf: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for powerpc64 acd1d30 initscripts: insure checkroot.sh runs before anything writing to the file 8bfa6d9 grub: add patch to support 256 byte inodes 88a8e96 cairo: add explicit dependency on zlib cd414c0 kmod: Update to Rev 15 via git e83640d kmod: Add patch to fix seperate build dir of ptest ead4a7d xz: Add nativesdk for Python3 nativesdk dependency 99cfbe9 sysstat: upgrade to 10.1.7 803870d package-regex: Tweak python-docutils so it works correctly a72aae1 local.conf.sample.extended: Add some additional comments for security flags 9a1dce1 bitbake: toaster: add Toaster UI interface 4e21d09 bitbake: toaster: adding frameworks for the Simple UI 164ab73 bitbake: toaster: add toaster code to bitbake d0072fc bitbake: utils: Don't show stack traces for BBHandledException 529bf97 update-rcd.bbclass: fix host/target test 68a41d2 glib-2.0: fix build on Aarch64 40420b9 cross-canadian: Fix SHLIBSDIR when using multilib 4bece4b nativesdk: Fix pn check 024bd68 wic: Check for external modules c7b0165 wic: Force lba off for FAT16 partitions 72b5535 busybox: Add depmod (adds 2240 bytes) 71454f9 wic: check passed-in build artifact directories 040bd3d wic: check for build artifacts 6a39441 bitbake.conf: add WARN_QA and ERROR_QA to the hash whitelist 2b5bac0 poky: Update Version post release 396d8f8 bitbake: bitbake: bitbake: bb: Drop deprecated functions e9662e8 bitbake: siggen: handle recipe path changes in siginfo files ce0a6f8 bitbake: hob: Hob should ask for ports only when Manual proxy is selected 3ca820d bitbake: cooker/command: Add error state for the server and use for pre_serve errors f41922d bitbake: bitbake: Update post 1.20 to development version 5c63fc7 classes: add aarch64_be target 7eca052 libarchive: Add -native version needed for pixz 3d15fdc glib-networking: upgrade to 2.38.0 and PACKAGECONFIGise b740c92 automake: update to upstream version 1.13.4 e604aee automake: unhardcode version number 79939e4 kconfig-frontends: Update to 3.11.0.0 3295750 sqlite3: update to 3.8.0.2 05a3ec2 libpng: Update to 1.6.6 1e02b0c lsbinitscripts: Update to 9.50 40b89fd tzdata: Update to 2013g 6515b64 tzcode: Update to 2013g 8642829 file: Update to 5.15 841ffcc util-macros: upgrade to 1.17.1 6882a5b rsync: upgrade to 3.1.0 29ae8a3 man-pages: upgrade to 3.54 d3d9834 libbsd: upgrade to 0.6.0 2fa7846 desktop-file-utils-native: upgrade to 0.22 5150187 cups: upgrade to 1.6.4 2cab29c at-spi2-gtk: upgrade to 2.10.0 70676e9 at-spi2-core: upgrade to 2.10.0. b50e7ec atk: upgrade to 2.10.0. 7241b28 glib-2.0: upgrade to 2.28.0 d0b578d gnome-desktop-testing: add 05bbc3d xf86-video-vesa: upgrade to 2.3.3 552780d libxpm: upgrade to 3.5.11 5e8e405 libxmu: upgrade to 1.1.2 fa21d18 libsm: upgrade to 1.2.2 b9b3414 ltp: update to new release 20130904 ac40bd0 connman: Upgrade to v1.18 b843f7c sqlite3: update to version 3.8.0.1 9877df0 insane: configure option checking f11cb8d image types: split live into iso and hddimg 6a6735c kernel: restore scripts in the sysroot a839783 libxt: remove unused configure option 76fcef6 pango: fix x11 DISTRO_FEATURE check b5fcad8 libmatchbox: remove unused configure options 298cf58 gtk+: remove unused configure options 86bb78c update-rc: Stop and remove service if updating package 7266015 qt4: add upstream QTBUG-31579 patch for QPainter regression 7939f6b connman: Remove obsolete configurations from EXTRA_OECONF be7dbe6 separatebuilddir: remove entries for imake and xorg-cf-files 043b5c6 xorg-lib-common: fix malloc0returnsnull usage ea4eafc libav: Add libswscale to PACKAGES_DYNAMIC 3e01f95 sysvinit-inittab: Fix getting tty device name from SERIAL_CONSOLES entries 0f431a3 kmod-native: use bswap to work on older Linux hosts f33afad bitbake.conf: Remove double slash from PATH_prepend and PKG_CONFIG_DIR 0496277 device_table-minimal.txt: change group of /dev/hda back to disk 567754a classes/package: handle filenames containing wildcards 029b0fe kernel.bbclass: unset LDFLAGS when run devshell in kernel recipe f4d3a3d telepathy-mission-control: Add PACKAGECONFIG for upower and connectivity 73cf58d matchbox-wm: Add dependency on libxfixes and libxcursor dae0c67 uboot-config.bbclass: Raise an error for unknown configs aeb7909 linux-yocto/3.10: integrate lxc kernel feature and 32 bit x86 config 73513f9 linux-yocto/3.10: boot-live.cfg: Add CONFIG_ZISO=y ff843e5 linux-yocto/3.8: re-use common-pc-64 for hasswell-wc 0bd6312 utils.bbclass: Fix override ordering for FILESPATH 5e3ed0b alsa-state: Rename init script 1960f00 gcc: Fix strange C++ repo issues 0314b91 kernel-yocto: Add a missing '[' f93071f uboot-config.bbclass: Fix use without IMAGE_FSTYPES appending bf19a86 lib/oe/path: Fix copytree functions for tar 1.27 d3846f0 classes: tar 1.27 fixes faf8f86 build-appliance: Update SRCREV for release ee9a3c1 toolchain-scripts: Fix TARGET_SYS reference 102bf5e build-appliance: Update SRCREV for release bc37596 distro_alias.inc: better sort c5a2104 distro_alias.inc: Package corrections c042b16 ref-manual: Added new UBOOT_TARGET variable to glossary. ac7522b ref-manual: Updated the PACKAGECONFIG variable description. c65ae43 dev-manual: Tweaked the source code directory paths in the examples. 82846e6 dev-manual, mega-manual: Updated the generic kernel file figure 5948aaa dev-manual: Fixed anchor tag and added doc step for bug filing. 28bab2e dev-manual: updated the example list of branches for poky. ceb56b7 dev-manual, mega-manual: Updated downloads figure and some links. f52b7f2 dev-manual: Edits to the Getting Started Chapter. 75ac719 dev-manual: Some minor edits to Introduction chapter. 4570c2e dev-manual: Changed "$" to "#" for runtime packaging section 5dfb1de ref-manual: Updated files in the image part of build history 8229b47 ref-manual, dev-manual: Updated buildhistory figure 4404c69 ref-manual, dev-manual: Edits to runtime package management section. b5ad5ba ref-manual: Fixed cross-reference to runtime package management 7754bd2 dev-manual: Patch applied to runtime package management. 5445f71 bitbake: hob: change tooltip for live images 5416b95 maintainers.inc: remove obsolete recipes 81e678b bitbake: bitbake: replace comment added in conf files 3c5b6af bitbake: bitbake-dumpsig: introduce command line and error handling e57bd62 bitbake: bitbake-diffsigs: improve error handling e0e30c6 bitbake: bitbake-diffsigs: refactor argument parsing slightly 7c72144 bitbake: bitbake-diffsigs: handle if task name is specified without do_ prefix f18194c bitbake: bin/bitbake: Clarify server error message 06afe1f bitbake: bin/bitbake: Clear ui-queue when starting a server 266a7d8 bitbake: bin/bitbake: No need to show tracebacks for BBHandledExceptions 22d5782 bitbake: xmlrpc: Show a better error message for connection failures a333693 bitbake: bin/bitbake: Catch establish connection log messages ee7e64f bitbake: bitbake/hob: removing extra parameters from conf files using hob 45392cc bitbake: HOB: MACHINE should be saved in conf files using ?= 9591591 bitbake: utils: use logger.warn instead of print in copyfile 0b9c339 qemu: fix nativesdk build without x11 abeea1b systemd: Add PACKAGECONFIG for cryptsetup 816b6be subversion: Add dependency on file for libmagic b77cb9b lame: Add dependency on ncurses 5f59b3c glib-networking: Add PACKAGECONFIG for p11-kit 7f88c9b x11vnc: Add PACKAGECONFIG for xinerama 280045c tcl: Add dependency on zlib 854fa8e wget: Add dependency on libpcre 69a9c18 gstreamer1.0-libav: Add PACKAGECONFIG for orc 105a709 libunique: Add PACKAGECONFIG for dbus 869d732 aspell: Add PACKAGECONFIG for curses adf8a63 xf86-input-synaptics: Add dependency on libxtst a72f4a9 xdpyinfo: Add dependency on libxcomposite 0c7b734 python: Ensure build completes before install 28eedee run-postinst: Ensure that the postinsts are ordered a59aa9e package_rpm.bbclass: Workaround failure in attemptonly installs acf5470 oe-init-build-env-memres: Unset BBSERVER if already set 540c279 connman-conf: add a global public DNS to network provisioning 113398d oe-init-build-env: unset BBSERVER 479fcbf udpated-rc.d: Track postinst/prerm/postrm in task checksum 47129f3 systemd: Track postinst/prerm in task checksum 0d8cbc3 systemd-compat-units: Use correct run-postinsts script link 17b5f2f kmod: ptest fixes 56ea7ac dbus: fix QA error building nativesdk-dbus 9d64f3de linux-yocto: enable CONFIG_INPUT_EVDEV as standard policy 9def5c9 license.bbclass: use shutil instead of bb.utils.copyfile 2a013e2 opkg: ignore result of opkg configure 20a86e1 cross-canadian: Fix TUNE_PKGARCH references 4e537df pixman: Fix nativesdk rebuilds for armv7a f81f4c5 gcc-common: Improve fpu code checksum dependencies 6dff1bc cross/crosssdl/native/nativesdk: Fix do_packagedata stamps d299444 boot-directdisk: avoid loop in MBR disk signature generation 104166c yocto-kernel: Use variable-substituted BBLAYERS bdfd716 distro_alias: Fix missing = e7a2023 maintainers: Add some maintainers 42b115b package_regex: Add python-docutils 35a74ee upstream_tracking: Update manual checked list 56f39bc bitbake: lib/bb/monitordisk.py: fix spelling in error text a02280f README.hardware: update genericx86 hardware support 85a8645 distro_alias.inc: update distro_alias 20979ec distro_alias.inc: Sort entries 30f85ce poky.conf: Removed obsolete distros from SANITY_TESTED_DISTROS 43a960a linux-dummy.bb: Resolve missing task issues b618f74 makedevs: Do not return error if the fifo exisits d80472c dpkg: Add xz to RDEPENDS 75c143a wic: Add OpenEmbedded-specific implementation 9fc88f9 wic: Add mic w/pykickstart 53a1d9a wic: Initial code for wic (OpenEmbedded Image Creator) e5d0976 yocto-project-qs: Minor formatting to filesystem image section. 62e0a4a yocto-project-qs: Added a link to MACHINE variable. 0f066bb yocto-project-qs: Updated instructions for downloading from website. 218d251 yocto-project-qs: Updated wording for required packages. aa8edc0 yocto-project-qs: Removed redundant production note. 5b973c4 ref-manual: Added U-Boot variables bdede3b ref-manual: Updated supported distros list. 1cd0b1e ref-manual: Updated the BBPATH glossary term a81bfcb ref-manual: Edits to restore the supported Linux distro list. 6b9cff4 documentation: Updated Manual Revision History Tables 320f90d ref-manual: udated list of supported distros 22909d0 ref-manual: Applied review edits to migration section. a8a2404 ref-manual: Updated 1.5 Migration section and COMPLEMENTARY_GLOB variable 0d194a8 dev-manual, ref-manual: Review edits for new variables. df2e70a ref-manual: Updated the QA checks section in the 1.5 migration section. 2814418 ref-manual: Added the version-going-backwards test to insane d8d5841 dev-manual: Edits to the "Setting Up Runtime Package Management" section. ec84110 dev-manual: Updates to "Working with Eclipse" section. e2dd4ee dev-manual: Update to "Toaster" section. 63bc84c poky.ent: Fixed variable for ADT Installer download link ec51951 poky.ent: Changes to the Fedora essential packages for the host 7bd3a81 ref-manual: New migration section for 1.5 and new variables 155961d ref-manual: Updated the "Images" section. 89d3e75 ref-manual: Added some more undocumented classes eb36aaa ref-manual, dev-manual: Edits to running automated tests section. b8bdd92 ref-manual: Updated the bitbake --help listing. 7fa2c8f bsp-guide, dev-manual: Updated for 3.10 default kernel 18d6adb ref-manual: Updated the autotools.bbclass section aca7aea ref-manual: Updates to DESTDIR areas. fcc3b98 ref-manual: Updated the EXCLUDE_FROM_WORLD variable. a8d5d06 ref-manual: Added new PARALLEL_MAKEINST variable description. 0f90262 ref-manual: Edits to PARALLEL_MAKE variable. 45ace75 ref-manual: Updated the PARALLEL_MAKE definition. 46b76d4 ref-manual: Updated the SERIAL_CONSOLE variable 5cb0828 ref-manual: Updated SRC_URI description e44538f ref-manual, dev-manual: Applied review comments for test section 56c4de9 ref-manual: Added TEST_IMAGE variable description to glossary. a1d9b6d pseudo: Fix race problems b43c812 bitbake: HOB: Busy cursor when saving configuration 0fe5d9d qemu: Add fix for floating point issues on x86-64 331159d slang: fix sprintf bug concerning 8-bit characters 58825b9 nss: Fix return codes in postinstall df18dc0 boot-directdisk: ensure generated MBR disk signature is non-zero cf2ebed mkefidisk.sh: Allow using a loopback mounted file 072c4e1 kernel.bbclass: Allow INITRAMFS_TASK to trigger copy initramfs code d273610 opkg: Use systemd service for first boot configuration 7509c0f sato-icon-theme: add more compatibility symlinks d4b0a4b pcmanfm: hide the desktop preferences 2471296 psplash: copy image files from workdir instead of next to recipe 2e1cb79 libtool: Don't patch generated files 08d902a native: Use a native site file and ensure the correct sed is used db51dd2 nativesdk-packagegroup-sdk-host: Add nativesdk-makedevs f9c26fb systemd-compat-units: do not create runlevel command 4312f5a makedevs: rectify the exit codes and handle the invalid parameter 66bf656 makedevs: Add device_table-minimal.txt to the nativesdk sysroot 9f3706f dropbear: pass SFTPSERVER_PATH explicitly 1abb7e7 packagegroup-self-hosted: add xz to enable bootstrap 636cbfd eglinfo: drop machine-specific configuration from oe-core e8e3b62 matchbox-panel: silence some pointless warnings 0ac8934 boot-directdisk.bbclass: Fix media generation problems with vmdk ec9f4c3 syslinux.bbclass, syslinux: Update to syslinux 6.01 fde2911 bootimage.bbclass, zisofs-tools-native: add ability to compress ISO images 4a0ff9c syslinux.bbclass: Fix hard coding of console=tty* 5a2d11e grub-efi.bbclass: Add serial and graphics menu options 24ffda4 bootimage.bbclass, grub-efi.bbclass: Improve EFI & PCBIOS+EFI ISO support 197f1fe grub-efi-native: Add support for EFI ISO images bb8e360 meta-yocto: updated SANITY_TESTED_DISTROS in poky.conf b049d53 testimage: Exclude BB_ORIGENV variable 724a466 builder: register text files with leafpad b88d1fb packagegroup-self-hosted: add leafpad text editor 2f64fae classes/package_rpm: fix bitbake package-index for RPM 1bff3fc oe-init-build-env-memres: use shell instead of Python to show the port number e5fcc7e pseudo: warn twice if the 32-bit toolchain appears broken 601e1a7 pseudo: use bbnote/bbwarn instead of echo 68ec3d4 qt4-x11-free: disable QGtkStyle 32edeb3 gcc/libtool/perl: Fix various path to sed-native problems b8819b0 runqemu: Use correct kvm CPU options for qemux86* with kvm 5454f92 busybox: update mdev.conf 41875fa linux-yocto/3.10: common-pc* config updates d7e22e5 adt-installer: add warning if MACHINE is not set in adt-installer.conf 1ffa203 adt-installer: check if sudo is needed when installing target sysroot 2f8ce2c package.bbclass: Clear umask when using os.mkdir 41f88ee lib/oeqa/runtime: ping: wait for 5 echo replies 141d4f3 nativesdk-packagegroup-sdk-host: Add nativesdk-shadow d43d7b1 shadow: Add nativesdk to BBCLASSEXTEND 5b5e1b9 relocate_sdk.py: make it work also with python 3 c54076e distutils: Replacing path to native path only to be done to non-native python packages e58266d bind: port a patch to fix a build failure 4d8ab87 build-appliance: Update SRCREV 8bf8fe0 poky: Update to 1.5 release version 3059b09 bitbake: bitbake: Update to version 1.20.0 28af70d wget: remove po.m4 patch 68db43e texi2html: remove po.m4 patch 495d05c ptest-runner: compatibile with busybox bd5c5f0 systemd: fix ptest support a2a544d perl: do not use pushd 02af823 grub: don't patch generated configure to fix do_patch re-execution f79b21a scripts/runqemu: write temp file into correct location ebdc88a documentation.conf: update contents e0a351b sysvinit: don't use useradd 5f9ee67 base-passwd: add shutdown group 139e887 shadow: Turn shadow-native into a BBCLASSEXTEND 9bed1a3 shadow: Move common code to shadow.inc 1146eeb webkit-gtk: limit ld memory requirement 1917544 init-install-efi.sh: Remove unnecessary udev rules file to avoid errors e42fefe init-install-efi.sh: Fix root= specification cbc12aa package_deb, apt.conf: fix apt failure in do_rootfs() 7290332 elfutils: remove configure bits from patch a60c6b3 libpam: Avoid host contamination issue w. libprelude ad311a1 makedevs: add nativesdk to BBCLASSEXTEND 49e754a autoconf: Add fix for sh verses bash issues dd4b362 qemu: don't claim support for IrDA and PCMCIA 44d74f6 boost: set up PACKAGECONFIG for boost-python library f9c1ac3 kern-tools: fix multi patch application without headers c68888f telepathy-mission-control: do_compile failed (race issue) a897186 libav: make X11 dependencies dependent on DISTRO_FEATURES 95455bc classes/testimage: add informational messages about tests and do some cleanup/formatting 8020349 image.bbclass: uninstall package only if it's already installed 8c5f345 sstate.bbclass: ignore the tar failure. 0fc8317 yocto-bsp: add 3.10/remove 3.8 kernel from templates bf6b0d9 glib-2.0: fix broken python script header on machines using buildtools 954e349 avahi: bump INC_PR to avoid do_configure failure in existing workdir bd46e2a dev-manual: Updated Git repo path for eclipse plugins. b9bb278 ref-manual: New variable descriptions to support QEMU image tests 06cddeb ref-manual: Added a new entry for the testimage.bbclass. 35ec4d2 dev-manual: New section on running QEMU tests. 395486f dev-manual: First pass changes to support Kepler Eclipse 66e5feb poky.ent: Added a new variable for Kepler f3455db dev-manual: Misc formatting and setup for Kepler support 9fbaa9b dev-manual, profile-manual: changed "plugin" to "plug-in" d3bf6bd ref-manual: Added versioning to some R* variables 6084246 ref-manual, yocto-project-qs: Explanations for Git tarballs 3fa6a30 ref-manual: New BB_GENERATE_MIRROR_TARBALLS variable. d7f340a ref-manual: fixed alphabetical order for glossary entries. 2effece ref-manual, mega-manual: Updates to the SDK Generation section 26354c2 ref-manual, mega-manual: Updates to "Image Generation" 33ed042 ref-manual: Updated the RDEPENDS variable to include syntax 9cef06f ref-manual: Update to the image generation section. 5cdf8a6 ref-manual: Updated *_POSTPROCESS_COMMAND variables 35bd82a ref-manual: New section on SDK generation 43c10b9 ref-manual, mega-manual, Makefile: New figure added for sdk f5686c9 adt-manual: Updated location for toolball install scripts. 110e803 yocto-project-qs: Update to how toolchain installer scripts are named. 34c46b3 ref-manual, mega-manual: Updated the image generation figure 80c66fd ref-manual, mega-manual: Updates to the Image Generation section 070ab36 ref-manual: Updated IMAGE_CLASSES variable description. fde7349 ref-manual: Updated the IMAGE_ROOTFS variable description. 44cc19d ref-manual: Updated the IMAGE_POSTPROCESS_COMMAND variable description. 597aceb ref-manual: Updated the ROOTFS_POSTPROCESS_COMMAND variable description. 7b0c340 Makefile: Updated ssh push string. 25bea91 ref-manual: Edits to the "Image Generation" section 72c73e6 ref-manual, mega-manual: Revised the image generation figure b577e74 ref-manual: First draft of the "Image Generation" section da7a072 dev-manual, ref-manual, Makefile: Added image generation figure 673b28f ref-manual, mega-manual: Updated figure for source fetching caa29e6 ref-manual: Fixed "fsroot" typo to "rootfs". b1d7cfa ref-manual: Added variable description for IMAGE_POSTPROCESS_COMMAND. 718fac6 ref-manual: Added variable description for ROOTFS_POSTPROCESS_COMMAND. dc09cfe ref-manual: Added variable description for IMAGE_ROOTFS. aef1326 ref-manual: Fixed IMAGE_FSTYPES to specify formats instead of format. 599209e ref-manual: Added three new variable descriptions to the glossary 053ee26 ref-manual: Updated the PATCHTOOL variable description. 6294f17 dev-manual: Updated the "Best Practices" section. 6bf4106 kernel-dev: Updated the in-tree metadata section e3ed36e documentation: Updated poky.ent to have the YP 1.5 code name dcefb7c dev-manual: Added new section on "Best Practices" b1b9f43 dev-manual: Updated "Toaster" section to be API-only. 4e7dde7 conf/local.conf.sample: update for new testimage class bead255 bblayers.conf.sample: use ##OEROOT## instead of ##COREBASE## 19ad80c distro: remove anjuta-remote-run from distro_alias and maintainers d4b9713 bitbake: tests/data: Whitespace in key names is a really bad idea d9955a1 bitbake: data_smart: Variable references don't contain newlines, spaces or tabs 3c41bea bitbake: hob: populate "Save image" dialog when saving changes to a custom image recipe d28b181 bitbake: bin/bitbake: Improve --help text 35a1d37 bitbake: build: Add BB_TASK_NICE_LEVEL to task code ace48c2 bitbake: bitbake: runqueue: add task hash to Queue events 24ae636 bitbake: bitbake: event: adding generic event for metadata usage a05d474 bitbake: bitbake: cooker, command: add a command to return global data 0c51d61 bitbake: bitbake: cooker: get extra information from recipe cache 5ee82d4 bitbake: bitbake: build, runqueue: adds info to the *runQueue* events f7621f4 bitbake: bitbake: cooker,runqueue: send the task dependency tree ba83eb3 bitbake: bitbake: cooker,xmlrpc,servers: implement CookerFeatures 87e86d4 gcc-target: Fix libatomic dependency tracking issues c2d5fa9 gzipnative: Ensure dependencies apply to do_unpack and do_populate_lic f427614 btrfs-tools: Fix parallel make issue 5262ea1 uboot-config.bbclass: Handle UBOOT_MACHINE setting 14c6a82 u-boot, u-boot-fw-utils, u-boot-fw-utils-cross: Use uboot-config class 19174b0 uboot-config.bbclass: Use an annonymous python function 8f650f2 oprofileui-server: use two digit initscript sequene fc91e06 libpam: only use pam_systemd.so if systemd is enabled 4209586 x11vnc: respect zeroconf DISTRO_FEATURE to enable Avahi support 139b44b pseudo: force NO32LIB to true for nativesdk 405be52 runqemu: set qemuarm memory size back to 128MB d652987 classes/imagetest-qemu: remove old image testing class 595321a classes/sanity: test for DISPLAY being set with testimage class a3558bf classes/testimage-auto: add class to allow automatically running image tests eba2428 classes/testimage: remove odd characters in comments ed81641 findutils_4.2.31: backport fixes for doc build errors 10c85f5 libunistring: remove the test to convert euc-jp in configure 8ce33c4 pciutils: remove pcimodules ad77d10 lib/oeqa/runtime: cleanup and improve output readability for some tests f3ab2fc lib/oeqa/utils: sshcontrol: log how long the last command take cb2496c qt-mobility: fix build without X11 77ae0d9 wipe-sysroot: delete pkgdata stamps 06965e8 insane: don't abort if workdir is not TMPDIR/work fa0fd37 bitbake.conf: define WORKDIR in terms of BASE_WORKDIR 7a3d2fb gcc-4.8: temporary disable thumb b3c750e core-image-x11: Ensure x11 distro feature is enabled 853bc53 qemu: Fix broken patch 4ed858b linux-yocto/3.10: fix long perf compile times 2ad268f linux-yocto/3.10: mips configuration changes 6942108 linux-yocto/3.8: add haswell-wc board config and branch 99b4173 perf: Add LDFLAGS to allow build of old kernels without patching 4a224d3 qemurunner: disable grabs in automated testing dd2b2f9 qemu: add option to disable X grabs 63cd03b u-boot-fw-utils: Skip package if UBOOT_MACHINE is unset f1ff3c2 bitbake: data_smart: Fix variable reference issues eaf06bc bitbake: cooker: return a copy checkPackages 825cfeb bitbake: usermanual.xml: Two new sections added to BitBake "Description" e624d73 perf: Ensure we use CFLAGS and LDFLAGS settings from kernel build system 1db33e3 cmake-native: fix dependencies 442be3e mesa: add virtual/mesa provider ac191eb libtool: fix resolve of lt_sysroot da47077 avahi: fix and enable out-of-tree builds 37cb3e3 python-smartpm: truncate the filename to meet NAME_MAX 9a4169a u-boot-fw-utils: reinstate target recipe for fw_printenv 14fee32 oeqa/runtime/smart: Increase timeout to 1500 test eae5f4b weston: change mesa dependency to virtual/mesa ab9e266 xserver-xorg: change mesa dependency to virtual/mesa 015cb13 mesa-gl: add GL-only Mesa recipe 7303b67 linux-libc-headers: do_install: fix "Argument list too long" error 8dd7ab3 util-linux: move su to /bin for lsb command check test a71761e shadow: move su to /bin for lsb command check test 44c65db busybox: move su to /bin for lsb command check test bb93962 bitbake: Revert "bb.fatal: Raise a BBHandledException instead of exiting" 3091150 openssh: use volatiles for managing /var/run/sshd 242ad61 Revert "initrdscripts: look for new systemd-udevd location" 5eae2d5 imake: remove 9470f68 transfig-native: remove, nothing depends on it bf413ad rpm: fix typo in PACKAGECONFIG e3cacf1 python: fix failures of LSB python-runtime tests 7d60944 kbd: Allow resizecons on x86_64 0af5853 kbd: Fix coding sytle 63ae37f LSB 4.1 Library Check: fix unable to find library libqt-mt.so.3 85a5a2c cdrtools-native: Update from 3.00 to 3.01a17 c78c1f9 bootimage.bbclass: Move fat image creation into a function 238e9b5 coreutils: set acpaths to avoid "Argument list too long" error 2ac9925 vala: add bison-native depends for vala-native b925c75 udev: avoid autosuspend of USB input devices 9592f31 linux-libc-headers: Fix comment typo spotted by Mark Hatle 1b7f829 webkit-gtk: remove compile-three-times hack 42ef04b connman: Try to figure out NFS root interface if using DHCP 06078af libxml2: remove patch for CVE-2012-2871 1bf8d83 utils: Update bb.which reference and other syntax cleanup 641a80d autotools: Remove .la files if rebuilding non out of tree software 912e8d5 meta-yocto/layer.conf: Bump LAYERVERSION_yocto d96c512 bitbake: bb.fatal: Raise a BBHandledException instead of exiting d15652d bitbake: data: Optimise flag exclusion list handling 9a32eca bitbake: data: Optimise flag lookup in build_dependencies d7e7b99 bitbake: data: Optimise build_dependencies a little d6ac67f bitbake: data_smart: Cache the fact a variable accesses another even if its unset 385bd44 bitbake: data_smart: Allow flags to use the expand cache a61519f bitbake: data_smart: Allow expansion of flags in getVarFlags 0902850 bitbake: data_smart: Add explict None checks 66c9c01 bitbake: data: Cache an list of export variables 36b4fcd bitbake: data: Use direct iteration, not keys() f78db82 bitbake: data_smart: use the expand_cache in VariableParse 43f1867 bitbake: data_smart: Improve variable expansion regexp c971868 bitbake: siggen: Use lookup cache exclusively 43c670a bitbake: data: Be explicit in data_db check 602bb69 bitbake: cooker: Allow profiling of the parser in profile mode eb4854f bitbake: cooker: Avoid duplication for taskdata creation a828c89 bitbake: runqueue: add runQueueTaskSkipped event 1181e69 bitbake: build: Add logfile to add TaskBase events 5fca4d2 linux-yocto/3.10: genericx86 meta data factoring 366bd11 lttng: Enable ptest support. f8ccaba systemd: add ptest 97f1c03 sysvinit: remove unused files e909857 sysvinit: fix indentation 707da95 boot-directdisk: Allow for EFI-only boot direct disk images a6974f2 elfutils-native: Fix build on distros with gcc 4.8 1875fb7 eglibc_2.18.bb: Fix IFUNC support for ARM REL relocations 99875e2 xf86-video-vmware: disable VMWGFX 019dafd systemd: link runlevel from systemctl 576a19e scripts/contrib/build-perf-test.sh: record size in kb and remove extra spaces 5fb63f6 apmd: Add systemd support 27bb9d0 oprofileui-server: Add systemd support 34e875e LSB Command Check: fix install_initd and remove_initd not found 58324d8 anjuta-remote-run: remove 3e31a50 adt-installer: fix opkg repo name babbf7a linux-libc-headers: Add big warning about antisocial behaviour 214bb68 lib/oeqa/runtime: timeout increases 8ebe7be bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific directory af5b3f3 layer.conf: Version bump for DEPLOY_DIR layout change 6670be7 bitbake.conf: include machine name in DEPLOY_DIR_IMAGE ee7ccda icu-native: do_install: Segmentation fault 0c11a77 perf: source should be ready after do_unpack 4137f9a bb-matrix-plot: Use interpolation for sparse data 493e8b4 bitbake.conf: Stop providing ${P} and ${PF} by default 643252f bb-matrix: Clean before, rather than after, building 0acde33 sstate.bbclass: fix parallel building issue ca1b5dd bitbake: cooker: updateCache should rause exceptions, not sys.exit 926b60f bitbake: knotty: Cleanup error/interruption handling ef7e388 bitbake: command: Treat empty messages as failures, not CommandCompleted 0519d1a bitbake: cooker/command: Add finishcommand to reset cooker state 7663a52 bitbake: cooker: Rename confusing 'stop' state to 'forceshutdown' 2174a51 bitbake: cooker: Clean up init/reset configuration code fe1258d bitbake: cooker: Drop obsolete worker test a392877 bitbake: bitbake: xmlrpc: delete unused code BitBakeUIEventServer dd36930 bitbake: data_smart: Account for changes in append/prepend/remove in the config hash 89ca973 ref-manual: Added information for OEROOT and build environment 3c4f2a6 ref-manual, mega-manual: Updated source input figure c375134 dev-manual: Updated wording to be more professional for broken build. 775fbab dev-manual: Update to bblayers.conf example 91b9202 dev-manual, ref-manual: replaced "atom-pc" with "genericx86" 743106f ref-manual: Re-ordered some P* variables in the glossary. de62377 dev-manual: Added new section on how to exclude a package 0ca3c5f ref-manual: Updated the screen help for bitbake command. a266619 documentation: Added the memory-resident BitBake feature cc26267 ref-manual: Re-ordered some B* variables to be in alphabetical order. 2fe0213 ref-manual, mega-manual: Updates to config and package splitting figs 973fd9b ref-manual, mega-manual: Updated two figures fdc1ad2 ref-manual, mega-manual: Edits to figures cc265bf ref-manual: Created new "Closer Look" chapter 7b70da9 ref-manual: Re-ordered flow for detailed process sections. b359e9a ref-manual, mega-manual: Updates to process figures 78e209d ref-manual, mega-manual: Updated package-feeds diagram 6a18edd ref-manual, mega-manual: Updated the analysis figure. 661c27d ref-manual, mega-manual: Updated the configuration figure 8cb2038 ref-manual, mega-manual: Updated the patching figure ddb29c5 ref-manual, mega-manual: Updated the source fetching figure 27b4998 ref-manual, mega-manual: Updated ADK figure 4cf514f yocto-project-qs: Added Creative Commons distribution blurb. 6a0c6ea ref-manual: edits to BAD_ and NO_RECOMMENDATIONS 69daf50 ref-manual: Variable adds and edits for package exclusion changes d3a849f ref-manual: Updated DEPENDS and RDEPENDS variable descriptions. 4265649 ref-manual: Added section on linux kernel image names using PE db678a1 ref-manual: Updated the PE variable description. bd76847 libnewt-python: Don't write a whiptail package 01db559 populate_sdk_rpm: Only remove trailing whitespace, not all whitespace 566ca1e beagleboard: update the dts location cdc3549 weston: as weston-launch depends on PAM, control it with a PACKAGECONFIG 1b25cf7 clutter: fix compilation when building without X11 backend 4540f6f x11vnc: add dependencies for xrandr/xfixes/xdamage/xtst 4496e34 populate_sdk_rpm: Ensure empty strings aren't passed to attemponly rpm code 46597b5 xf86-video-vmware: respect opengl DISTRO_FEATURE 8f9db77 bluez4/5: Add EXCLUDE_FROM_WORLD = 1 33e8896 xf86-video-intel: disable DRI2 tests if no DRI2 is available 3f0525d xf86-video-vesa: change depends to refect reality d439758 ia32-base: only depend on GL if opengl DISTRO_FEATURE enabled 01135ee lib/oeqa/runtime: smart: limit channel add to useful ones 83b90e5 classes/package_rpm: remove unsed outdir variable 40232ed yocto-bsp: conditionalise mesa-swrast on opengl in templates 775bc29 ptest-runner: trivial fixes and refine 4c92281 libcroco: disable Bsymbolic if it is not supported on some hosts 4b2d9ac python-smartpm: Add an attempt install mode 19c3c6d bitbake: utils: Fix BB_PRESERVE_ENV 3e7d669 uclibc: Add missing DEPENDS on kern-tools-native bd3164b image/populate_sdk: Ensure symlinks in target sysroot are relative e7f3fee qemu: only depend on mesa-driver-swrast if opengl is enabled 4c3f8d2 init-live.sh: distinguish between a read-only image and a read-write image b990585 midori: excluded from mips64 temporarily 6b4f7e4 systemd.bbclass: get the correct /lib directory 8dedc08 systemd: Remove base_libdir if installed only for systemd_unitdir 703104c nfs-utils: Add systemd support 06ecd68 rpcbind: Add systemd support 1661f5c lighttpd: Add systemd support c6d25fb openssh: Add systemd support 42742e3 avahi: use correct names in SYSTEMD_SERVICE_* variables a572d8a dbus-ptest: fix populate_sdk error 879ad05 initscripts: filter out empty lines from volatiles in check_requirements() f7d1286 btrfs-tools: fix a parallel build issue a5973ac meta-yocto-bsp: bump reference BSPs to v3.10.11 96eff4c mount.sh: automount cdrom device even if no ID_FS_TYPE available 82914e5 gstreamer-plugins: Change anonymous python structure 5f2748e cmake.bbclass: ensure CMAKE_SYSTEM_NAME is correct 5992830 adt-installer: allow installation of other machines 32090b6 meta-toolchain-qt: include the proper cross-canadian package 9d3d1a2 populate_sdk_base.bbclass: select the proper cross-canadian package 5d125f5 packagegroup-cross-canadian: change package name to include MACHINE bd0fc8e meta-environment: change package name to include MACHINE 74f148c linux-yocto/3.10: bump kver to 3.10.11 4acfbb1 u-boot, u-boot-fw-utils-cross, u-boot-mkimage: Upgrade to 2013.07 aae576c systemd: Fix build with multilib 2044668 bitbake: bitbake: runqueue: add sceneQueueTaskCompleted event a284f6c systemd: update patch header and comments 1492f43 xf86-video-intel: allow builds without opengl, add more options 0f34041 mesa: use distro_features_check to abort build without opengl feature 00b17ad kmod: avoid parallel-tests fec8c28 lttng-modules: Update to version 2.3.0 e4d6925 lttng-tools: Update to version 2.3.0 341c085 lttng-ust: Update to version 2.3.0 8d82eae ptest.bbclass: add cleandirs flag to do_install_ptest_base 8905f77 ptest.bbclass: fix error on ubuntu host 0ca5d1f yocto-bsp: remove apm as a default MACHINE_FEATURE b04b6f9 beagelboard.inc: remove apm as a MACHINE_FEATURE 87771db bitbake: runqueue.py: check whether multiple versions of the same PN are due to be built 0583714 bitbake: providers.py: enhance the runtime debug degbug messgae 5c5a3bf qemu.inc: remove apm as a MACHINE_FEATURE 2ab1bf2 bitbake: prserv: Ensure data is committed 31709ed cmake: set system name correctly 6bf6708 package.bbclass: skip already-stripped QA test if asked for 5ddec10 ghostscript: Add missing dependency to resolve parallel make issue 6d7062a meta-yocto-bsp: update h/w reference boards SRCREVs 6727d1d beagleboard: upgrade the kernel to 3.10.x 8102de6 mpc8315e-rdb: update to the 3.10 kernel 310f89a genericx86: Create a genericx86-common.inc base for the x86 BSPs 82ddcb1 uboot-config.bbclass: Allow choose of U-Boot config for machine e296958 linux-firmware: Update SRCREV, pull in iwlwifi-7260 support 7bcec4a kern-tools: support no author patches baba8cf kernel-yocto: improve error checking on non-git repos fbd6297 linux-yocto/3.10: update meta SRCREV for beagleboard config changes ea84943 bluez5: Rename tests package to testtools 9d33660 bluez5: Install the bluetooth library 76e8678 systemd: split out systemd-binfmt as a separate package 9b84fc7 lib/oeqa/qemurunner: Use a timeout in select() call 457e584 core-image-weston: Ensure wayland distro feature is enabled 3dcff8c core-image-directfb: Use 'distro_features_check' class 9f19820 resolvconf: specify configuration for systemd-tmpfiles --update 41d1c2d lib/oeqa/runtime: add basic scanelf test 1f6bd73 linux-firmware: package Marvell SD8787 firmware 9ebf8fb linux-firmware: correct name of Marvell license file 5963d24 devshell: Don't corrupt the fakeroot variables 75a1492 run-postinsts: move script execution from S98 to S99 in rcS.d c734873 connman: Ignore the NFS root network interface in init script 12223c0 package_rpm.bbclass: Fix no_recommendations and package_exclude f24dda3 useradd: Handle users from a package being used in others 0fa12e4 kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling 95d413d gcc-runtime: Add packaging for libgfortran (and also tweak others) 835b5c1 local.conf.sample.extended: Add an example of how to enable fortran faed110 oeqa/runtime/scp: replace dd call fbb3e5e oeqa/utils/sshcontrol: tweak ssh options f6fed84 oeqa/oetest: oeRuntimeTest: enable long messages c33bf22 chkconfig: remove linuxstdbase symlinks 06dc3a9 boost: adding serialization to BOOST_LIBS 78296aa eglinfo: add recipes for x11 and fb backends e4556e5 waf.bbclass: add waf build system class 43510e5 sysklogd: lower the ALTERNATIVE_PRIORITY in case of systemd 101662d busybox-syslog: add configuration file /etc/syslog.conf 18dfcc5 acpid: print message if rule directory is inexist f438140 acpid: install events directory at default. 71d7751 irda-utils: add init.d/irattach status command for LSB compliance e0d6665 distcc: add init.d/distcc status command for LSB compliance eb34e8d pseudo: fix memory leak and missed privilege drop 3dccd57 bitbake: contrib/vim: merge changes from vim-bitbake repo b093b6c bitbake: knotty: Reduce refresh of footer 373e209 bitbake: bitbake: Ensure ${DATE} and ${TIME} are consistent c8957a4 bitbake: hob: remove custom image from the images list when not needed b501b83 bitbake: hob: limit the description size when a custom image is saved da29dcc bitbake: newbb.vim: Use 'git config' instead of git-config e92b2db bitbake: data_smart: Move getVar expand cache handing to fix _remove operations ed3ef08 qemumips: fix keyboard entry in graphical boots cec4879 linux-yocto/3.10: update to v3.10.10 19904ae linux-yocto/3.10: fix YAFFS2 build issues f41b7a7 bitbake: hob: remove PACKAGE_INSTALL variable setting from hob e63c577 bitbake: bitbake-worker: ensure BUILDNAME is available during execution 12d003a scripts/runqemu: Fix MACHINE regex 7d8038d glib-2.0: fix a host contamination issue 93e7970 bitbake.conf: Add SDKPKGSUFFIX to hash whitelist 6d41d0d package.bbclass: Fix darwin shlib handling 990deb3 flex: Only use create_wrapper for native and nativesdk f1c74a3 mpc8315e-rdb: Set PREFFERED_VERSION to 2013.07 3aa68fd beagleboard: upgrade u-boot to the latest version e3bc93c lib/oeqa/runtime: smart: serve repo on host ip only and increase timeout 8318816 poky.conf: add version-going-backwards to ERROR_QA 755f7d9 pulseaudio: disable GTK+ by default 18fbaab elfutils: Drop do_autoreconf patches 6ccd4d6 runqemu: set memory size to 256M for most qemu machines 212f512 wipe-sysroot: fix removals 1b81449 bitbake: bitbake/cooker: fix some calls of cookerdata.findConfigFile method c7994f8 bitbake: runqueue: Fix scenequeue to pass file descriptors, not a float 5894ac1 sanity: Don't make assumptions about cwd 554c892 meta: Don't use deprecated bitbake API 6d9e3a1 bitbake: server/xmlrpc: stop server on client exit c7b3429 bitbake: prserv/serv: Settle on two threads for optimal performance 6e15fee bitbake: build: Fix profile file names bd023ef bitbake: serv/db: Don't use BEGIN/COMMIT 883813d bitbake: serv/db: Take an excluside lock on the database 3e5abff bitbake: serv/db: Fix looping upon database locked issues b306d7d bitbake: server/process, server/xmlrpc, runqueue: Use select.select() on fds, not time.sleep() d63e6a9 ref-manual: Edits to figures 2ad4f5d ref-manual: Minor edit. 987f91e ref-manual, mega-manual: Edits for expanded packaging description 2abfe0c ref-manual: New variables descriptions for PKGDATA_DIR and PKGDESTWORK efff0d5 lib/oeqa/runtime: ping: fix ping false fail 36fcb61 python: Backport 2 CVE from upstream 116441d perl: Backport 2 CVE Patches 25b8cc8 btrfs-tools: Add dependency on lzo acl e2fsprogs 55d0fca systemd: use /bin/mkdir instead of host mkdir path 03325fe gcc-4.8: fix ICE of cross-compile for PowerPC e500v2 targets ada4bcc libsamplerate0: add PACKAGECONFIG for fftw 09d1761 mesa: add missing elfutils dependency for r600 PACKAGECONFIG 2163807 bluez4: fix network Connect parameter validation 4e7e542 multilib.bbclass: Expand the WHITELISTs with multilib prefix 118d74e oe-setup-rpmrepo: add native sysroot so nativepython can be found by env 4b2906d recipes: Ensure that we only apply poky changes when poky is selected 5fd04b0 bitbake: prserv: Allow 'table is locked' matching for retry loop cb93941 bitbake: server/xmlrpc: Increase timeout to 60s 4322948 bitbake: cookerdata: Allow bblayers.conf to be found using BBPATH c7a3897 bitbake: cookerdata: Set TOPDIR when using bblayers.conf 156baf8 web-webkit: Drop, we have midori now b2a0e3a runqemu-ifdown: clean up the remaining iptables rules 5bffc4f runqemu-internal: provide more info if a preconfigured tap is used a78bf1c runqemu-internal: don't bring down preconfigured tap interface 8f32af9 lib/oeqa/runtime: syslog: fix test for logger in case of systemd 926a117 list-packageconfig-flags.py: fix searching bitbake module failed 1370927 gtk+3: pull forward the gtk+2 hardcoded libtool patch 7034d50 gtk+3: only set GTKIMMODULES_PACKAGES if we have immodules 249dc82 lib/oeqa/utils: qemurunner: fix when runqemu errors out 8a90c8b lttng-ust: Update to version 2.2.1 4c138aa lttng-tools: Update to version 2.2.3 8e85362 util-linux: package mkfs.cramfs and fsck.cramfs 7be46d9 image_types.bbclass: use mkfs.cramfs instead of makecramfs abfe9af busybox: configure system user id to range from 100 to 999 e38285f packagegroup-self-hosted: Add missing python code 9c0131d build-appliance-image: upgrade to commit 5745e45b18e5099e94b4d5a73bc97dc6d4cdc91f 88c5e10 remove the unnecessary protocol parameters 5c0e6cf builder: register html links and files with Midori 4f6358f packagegroup-self-hosted: integrate midori c52981c lib/oeqa: move skeletoninit.py where it belongs c03106d libnfsidmap: Add and modify idmapd.conf 3095ee5 busybox: set default log buffer size to 64 at compile time 5745e45 buildtools-tarball: Add python-pkgutil d5e860b bitbake: prserv/serv: Multithread the server 06d7664 bitbake: prserv/db: Threading fixes 5fba9d8 classes/testimage: add support for finding tests in other layers 62d1418 classes/testimage: increase default boot timeout 4e62e9c lib/oeqa/runtime: remove some unnecessary checks from setUpModule a79afb3 linux-yocto/3.4: v3.4.59, mohonpeak 8b36aa4 linux-yocto/3.10: fix ssh login and restore CC_OPTIMIZE_FOR_SIZE 2051e4d midori: use BPN instead of PN 84708a4 bitbake: serv.py: Fix regression from 972bc43e6d5b 4fd453e midori: add version 0.5.5 from meta-gnome 5aa0ece python-docutils: add version 0.11 from meta-oe fd9a548 libnotify: add version 0.6.0 from meta-gnome 1655c2d vala.bbclass: add class from meta-oe e35dfbb vala: add version 0.16 from meta-oe f17404d dpkg: fix configuration issue for mips64 937968b systemd: Upgrade to 206 6950395 kmod: Upgrade to version 14 87f413f bitbake: data_smart: allow removal of multiple words at once with _remove 092190e bitbake: data_smart: use a split/filter/rejoin for _remove 9b05271 local.conf.sample: Add genericx86-64 machine to machine list 201e547 atom-pc: Purge straggling configuration files 6c3a029 meta-yocto-bsp: Add genericx86-64 machine da6260f bitbake: serv.py: Fix hang when spawned dynamically with bitbake c2533fb linux-yocto-rt: add qemumips and qemuppc to COMPATIBLE_MACHINES 325ee9b gcc-4.8.inc: Allow lto to be configurable d638db8 perf: Ensure we general PIC code to avoid build failures 1472b9e bitbake: hob: fixes for image combo box 39052cd bitbake: hob: add event handlers filtering in Hob 8d134e9 bitbake: bitbake/event.py: UIhandler filter should work without a mask a552fdc lttng-modules: Update to 2.2.1 based release 2942003 README.hardware: Replace atom-pc with genericx86 6edcb6f local.conf.sample: Replace atom-pc with genericx86 9b8c20e layer.conf: Bumping LAYERVERSION_yoctobsp to account for atom-pc be5b808 meta-yocto-bsp: Purge atom-pc in favor of genericx86 ad88361 meta-yocto-bsp/genericx86: Update kernel, branch, KMACHINE, and SRCREV 36fc237 meta-yocto: change default kernel to 3.10 afda1bc linux-yocto: add bc-native dependency, and move to linux-yocto.inc 4379623 kern-tools: fix patch series to git tree validation 88e5aa6 bc: add bc-native 44c3f72 lib/oeqa/runtime: smart: add checks for smart output a855180 lib/oeqa/runtime: multilib: fix typo 355a781 u-boot: update to 2013.07 b07d12d gettext: update to upstream version 0.18.3.1 c34bb76 bitbake: command.py: Call updateCache for all states != running 1dff47b read-only-rootfs-hook.sh: check before bind mounting /var/lib e6e44cf checkroot.sh: check for conflicting configurations 6f25176 eglibc: fix directory cleanup for 2.17 a090406 SPDX:real-time license scanning and SPDX output. daedc2f classess/testimage: change default test suites d80a715 python-2.7-manifest: Add missing python-ctypes dependency to python-multiprocessing 6a78e22 image_types.bbclass: replace genext2fs with populate-extfs.sh 2dfc0e1 lib/oeqa: change behaviour for unskippable tests d7077bc lib/oeqa/runtime: add iptables, cvs and sudoku projects build tests on target c70bf65 lib/oeqa/utils: targetbuild: Add helper class for building packages on target 5158893 lib/oeqa: make it possible to restart the target ecb21fd lib/oeqa/runtime: smart: add new smart tests 2c83398 lib/oeqa/utils: decorators: return the decorated method a9dab56 lib/oeqa/utils: qemurunner: save host IP address f16cc25 lib/oeqa/utils: new file: httpserver.py useful for serving files over HTTP to the target db7e484 lib/oeqa/runtime: rpm: add install and erase tests 3d30fd2 lib/oeqa/runtime: add vncserver for target test 5e1b0cb lib/oeqa/runtime: add adjust date and time test 0ecc510 lib/oeqa/runtime: add new scp test 4ea9e94 lib/oeqa/runtime: add new PAM support test 748ddc3 lib/oeqa/runtime: add new skeletoninit test b91969e lib/oeqa/runtime: add new logrotate test 3b47a0a lib/oeqa/runtime: add a test for ldd dfd627d lib/oeqa/runtime: add test for perl ec8aea9 lib/oeqa/runtime: add basic test for x32 images 1915459 connman-gnome: fix DHCP segfault 6056f12 opkg: add missing initialization of conf->exclude_list b18b210 busybox: enable shared memory logging for systemd 1506d3a ccache: update to upstream version 3.1.9 71abcc9 libpam: add PACKAGECONFIG data concerning audit 0904469 cronie: add PACKAGECONFIG data 39d80f6 e2fsprogs: add populate-extfs.sh 1b21405 e2fsprogs: properly set up extent header in do_write 2cece57 e2fsprogs: only update the icache for ext2_inode a758b93 e2fsprogs: let debugfs do sparse copy f1e6091 e2fsprogs: the max length of debugfs argument is too short 66eac2d oe.types: add 'path' type 78012a2 stat: fix the wrong return code 04fd068 gtk-engines: fix build with automake-1.13 2526a17 pulseaudio: Fix up configure options and use gtk+3 764784c alsa-lib: fix function definitions error for mips 26fe976 connman: upgrade to 1.17 12d4ee1 harfbuzz: upgrade to v0.9.19 b55f923 gpgme: update to 1.4.3 26ce13b runqemu-ifup: when tunctl can't be found, say what package builds it c82255d openssl: avoid NULL pointer dereference in three places b9f0fc6 openssh: add init.d/sshd status command for LSB compliance 6d15552 at: add init.d/atd status command for LSB compliance 1b12507 sysvinit: add init.d/bootlogd status command for LSB compliance 00f0261 dbus: add init.d/dbus-1 status command for LSB compliance f032008 nfs-utils: add init.d/nfsserver status command for LSB compliance 4309a9e sysklogd: add init.d/syslog status command for LSB compliance 2b7d2f8 glib-2.0: Specify libiconv when building on uclibc b3357d5 yocto-bsp: add 3.10 bbappend and update routerstationpro's preferred version d7571c0 bitbake: data_smart: Add _remove operator 69aab78 bitbake: bitbake: Add ui event handlers filtering bfab986 bitbake: server/xmlrpc/prserv: Add sane timeout to default xmlrpc server a03a423 bitbake: process: Improve exit handling and hangs aa0b237 bitbake: parse: Return IOError when including file with absolute path 503daf2 nativesdk-ca-certificates: prepopulate ca-certificates.crt 2413ff0 ca-certificates: add recipe (version 20130610) f541b73 xserver-nodm-init: improvements from meta-oe 93ec1e3 classes: Remove references to _remove in function names since this may become a bitbake keyword 3883187 linux-yocto: introduce v3.10 2c572bd gst-plugins-good: fix 3.10 libc-headers build failure e67ce0d linux-libc-headers: Reinstate scripts-Makefile.headersinst-install-headers-from-sc.patch 1262275 linux-libc-headers: ptrace.h: remove ptrace_peeksiginfo_args 1f18e09 linux-libc-headers: update to v3.10 bfba970 guilt: update to latest git version 3b2b4ee kern-tools: usability, bug fixes and no guilt 5f2170b Add memory resident bitbake script a50b933 ref-manual, mega-manual: Updated figure for conf/compile details e901047 yocto-project-qs, adt-manual: Updates to toolchain installer script 648da6d poky.ent: Reset the toolchain variable. 7a655d5 poky.ent: Changed the toolchain variable 3420b3a Makefile: Added new figure for package creation. 6457ad3 ref-manual, mega-manual: New section on package creation fff996f Makefile: Added figure to the ref-manual and mega-manual bf91da6 ref-manual, mega-manual: new section on config/compile for expanded build 8870546 ref-manual, mega-manual: Updated figures bc17391 Makefile: Updated with new figure. 06c124b ref-manual: New section on patching for expanded build process a0eec0d ref-manual, Makefile: New section on BitBake for expanded build 39ee90b ref-manual: Fixed syntax in the S variable. 59e3953 adt-manual: Removed the gmae stuff d265515 ref-manual, adt-manual: Minor edits from review. e7ed0d5 ref-manual: updated the note about what distros we support 29d8f58 ref-manual: minor edit to the PKGDEST variable. 6ccc545 mpc8315e-rdb: Set PREFFERED_VERSION to a version thats known working b467b99 linux-yocto: switch genericx86 to use common-pc a88d63b linux-yocto: remove genericx86 support from 3.4 501e1a3 bitbake: prserv/serv: Fix pid file removal 25e410b bitbake: event/msg: Add primitive server side UI log record filtering 9f0f799 bitbake: build.py: create symlink for run.do_xxx scripts 4273aa4 sstate: Fix the relative symlink replacement code 445e1e5 xdg-utils: add runtime dependency on xprop 988a7bf packagegroup-self-hosted: pcmanfm and xdg-utils integration 09562cb recipes-graphics/builder: fix wrong user name 560575b packagegroup-self-hosted: Add the sato icon theme 7daf46f eglibc-options.inc: Fix string options 3a86c39 eglibc.inc: Remove quotation marks from OPTION_EGLIBC_NSSWITCH_FIXED_* 747f5be default-providers: Set the preferred provider for bluez ae8e3b6 gcc-4.8: Add two patches to deal with cross-canadian build failures 9f67e31 chrpath: Add support for relocating darwin binaries 45de2c2 Drop darwin8/darwin9 usage 2da6d0b bitbake.conf: Work around dev symlink problems on darwin 861b0d5 gcc-common.inc: Drop unused LIBGCCS_VAR variable 5af02f2 gcc-cross.inc: Clean up after merge 8b855ad gcc-cross-canadian: Fold configure-sdk and package-sdk into the main .inc aa77ec7 gcc-*-runtime.inc: Fold configuration into gcc-runtime.inc 2eb9c1c gcc-*-cross.inc: Fold common configuration into gcc-cross.inc 0dfc8aa gcc-target: Combine gcc-target-configure.inc, gcc-target-package.inc and other common code deae329 libgcc: Move common code to libgcc.inc 6971023 gcc-runtime: Fold common configuration into gcc-configure-runtime.inc c553019 gcc-cross-initial: Fold common configuration into gcc-cross-initial.inc d39770e gcc-cross: Fold common configuration into gcc-cross.inc 5017061 bitbake.conf/classes/gcc: Don't hardcode -nativesdk b64d6af Revert "nativesdk: inherit relocatable" a966f30 gcc-cross-canadian: Merge 4.7 and 4.8 recipes into common include 1995053 gcc-cross-canadian-4.8: Add missing dependency on nativesdk-zlib 505634b gcc-cross-canadian-4.8: Allow elfutils to be a configurable dependency bcdc1cd gcc: Drop gcc-cross4.inc, its pointless now c63831c gcc-configure-sdk.inc: Don't build target-libgcc eb99a30 gcc-package-sdk.inc: Allow executable extension to be overridden f2985f0 gcc-package-sdk.inc: Use relative symlinks in libexec dir ea220e4 gcc-cross-canadian-4.8: Enable PARALLEL_MAKE 9967b4e libiconv: Extend to nativesdk and support non-linux targets 24b1fe9 gettext: Improve USE_NLS handling for nativesdk/crosssdk/cross-canadian 7f5d712 populate_sdk_base: Allow sdk tar options to be overridden 16e59f3 crosssdk: Construct target_exec_prefix from prefix_nativesdk 694f034 package.bbclass: Fix handling of symlinks in debug packages 199b1a8 mkfontscale: This no longer needs a full libx11, xproto suffices 6bdf025 gnupg: Update to 2.0.21 30f85aa valgrind: Backport patch for eglibc 2.18 d429204 libsdl: Backport xData32 patch for x11 update 0bc5f7c libx11-diet: upgrade to 1.6.1 f0a690d libx11: upgrade to 1.6.1 81f9989 eglibc: Update SRC_URI and fix unpackaged empty dir e498471 boost: fix build when PARALLEL_MAKE is not set 068069b libsdl2: add recipe fef7b40 bc: add patch to fix segmentation fault 2d4b261 connman: fix systemd support for connman-* packages. 557d1c7 directfb: add fusion patch for hangs f1bcf10 directfb: Upgrade to 1.6.3 0c3a3a5 mesa: enable additional drivers for gallium-llvm x86/x86-64 851163a builder: register directories with pcmanfm 07130f7 xf86-video-vesa: remove duplicate xf86driproto from DEPENDS 2bbb01d xf86-video-intel: remove duplicate xf86driproto from DEPENDS 88c568c gst-plugins-good: fix orc enabling via PACKAGECONFIG 58eb62b texinfo: correct dont-depend-on-help2man.patch 78de822 shadow: backport a patch to make newgrp work 26e543c distro_features_check.bbclass: Allow checking of required/conflicting features db60ee7 package_ipk: Add support for PACKAGE_EXCLUDE feae7a0 opkg: Add support for excluding packages from the install e58d0fd package_ipk: Add support for NO_RECOMMENDATIONS c52820b opkg: Add --no-install-recommends option. 3882788 package_deb: Add support for NO_RECOMMENDATIONS and PACKAGE_EXCLUDE dc5f6c3 package_deb.bbclass: Use the WORKDIR not SYSROOT for temp files 7ba54b9 package_rpm.bbclass: NO_RECOMMENDATIONS support 33a3eac python-smartpm: Add support to disable installing recommends 479fc7c package_rpm.bbclass: Add support for PACKAGE_EXCLUDE to RPM installs 02c9677 python-smartpm: Add support for excluding package from the install a6a3ec1 image.bbclass: Add basic support for PACKAGE_EXCLUDE 02521a4 busybox.inc: Avoid error when SYSLOG is not enabled 06f1ebf poky.conf: add Debian 7.1 to SANITY_TESTED_DISTROS cb6f97b genericx86: disable USB autosuspend 9a3cdfe genericx86: add v86d to machine recommends so Vesa framebuffer works b2d8f69 SDK_NAME: Change to include image name and tune arch 183e781 upstream_tracking: Update last check dates c467d84 maintainers: give guilt-native to Bruce d6dc332 upstream_tracking: add NO_UPDATE_REASON for gawk and pango 136cb5e bitbake: hob: changes to image combo box from image configuration page 8d1e77e bitbake: propertydialog.py : Scrollable windows for long tooltips b2ff1ad poky.conf: Don't force the addition of extra DISTRO_FEATURES f6ab927 bitbake: build.py: Provide useful diagnostics when exiting. fe227a0 genext2fs: fix memory corruption on powerpc 3c1f166 linux-dtb.inc: Fix dtb generation for kernels newer than 3.8 8d6559c coreutils: allow for acl support 6ef217d coreutils: add PACKAGECONFIG info for acl support 005673f initscripts: remove obsolete device_table.txt 059db22 init-install.sh: fix to handle the boot partition correctly d9e7fba init-install.sh: improve hard drive searching process a42db11 tslib: update to 1.1 a8d686b default-distrovars.inc: Add 'DISTRO_FEATURES_DEFAULT' variable 1cf5a36 useradd.bbclass: add missing functions to preinst 41696b2 gettext: update to upstream version 0.18.3 f07123e gtk+: update to upstream version 2.24.20 e13de3e glib-2.0: update to upstream version 2.36.4 4bf64ec curl: update to upstream version 7.32.0 1b37bb4 pixman: update to upstream version 0.30.2 2cdfd09 glib-2.0: use trim_version() to get the source directory 8b07505 hello-mod: Add comment for kernel module package naming 0e78c29 Revert "hello-mod: Ensure the produced package name begins with kernel-module-" dd1f60c texinfo: handle correctly @enumerate specification greater than 10 5cecdfe uclibc: Upgrade to latest on git 29361cd prelink: update to latest cross-prelink c25fa77 qemuppc: Change default tune to 74xx 7d471bc tune-ppc7400.inc: Add tune file 11293d9 linux-yocto-3.8/meta: enable ALTIVEC for qemuppc 339ecae linux-yocto-3.8/meta: update drm and intel power management settings 6382979 cronie: fix out of tree build 2a48e90 qemu: Fix bit extraction for MTFSFI and MTFSF 752df39 buildhistory-collect-srcrevs: match new buildhistory-diff command line parsing 2a9d9b6 buildhistory-diff: improve command-line handling c5d2e9c classes/buildhistory: avoid mangling names in dot graphs for images 1e8e243 classes/buildhistory: tag last 3 build revisions 742266d classes/buildhistory: show command line in commit message 855b325 classes/buildhistory: record size of installed package not compressed archive 23575b4 classes/buildhistory: remove default of BUILDHISTORY_CHECKVERBACKWARDS de96147 cronie: upgrade to 1.4.11 660601b sudo: upgrade to 1.8.7 48bdcd7 maintainers.inc: add entries for libav, x264 and yasm ff39c79 package_regex.inc: Add regex for atk 1b3f8ac bitbake: hob/retrieveimagedialog: change labels 840a427 bitbake: taskdata: report close matches with NoProvider errors baaa7ad bitbake: runqueue: report close matches for an invalid task name 6b01c97 texinfo: add perl RDEPENDS and fix up packaging 2b20450 openssh: fix for read-only rootfs 0b66192 irda-utils: fix for read-only rootfs 4485cd9 populate-volatile.sh: use 'cp -a' to avoid potential problem a7e8f83 runqemu-internal: fix to start X correctly in live images 0123eb9 populate-volatile.sh: don't spawn background process at rootfs time 43c5b5f populate-volatile.sh: use $ROOT_DIR/var/volatile/tmp as TMPDIR 11660bc udev: remove implicit dependency on initscripts 7ab93ec init-live.sh: make $ROOT_MOUNT/media writable when necessary 771f794 device_table-minimal.txt: use user/group names instead of uid/gid 033baea image.bbclass: create device table after package installation 36d622b makedevs: support using user/group names in device table files ca367d0 wipe-sysroots: don't assume TMPDIR is under BUILDDIR 969f4ed qemu, default-providers: Add mesa as default virtual/egl 8db18b6 cmake.bbclass: Don't use packages from the native build machine 9f9cc59 matchbox-wm: fix icon handling on 64-bit hosts 060df94 libmatchbox: upgrade to 1.11 2176388 xrestop: add dependency on ncurses 0509aad xeyes: add dependency on libxrender 78dfc45 gst-plugins-gl: add dependency on glew 5314bd3 at-spi2-core: add intltool-native dependency b2568fb nfs-utils: Replace spaces with tabs in shell function e9d02d5 rpcbind: Replace spaces with tabs in shell function 04a9cff lighttpd: Replace spaces with tabs in shell function 4fc3788 opkg.inc: remove the obsolete POSTLOG variable 9146bb6 cogl: GL/GLX feature cleanup 03b3e4b linux-dtb: Use kernel build system to generate the dtb files 53729ac systemtap: upgrade to 2.3 c8eb33b meta-skeleton: layer.conf Should also have .bbappend in example ff10f72 meta-skeleton: Add busybox config fragment example 352701f qemu: Skip it for mips64 target 18b9555 dpkg: fix include header caused compile error 70a16ef oe-setup-builddir: substitute ##OEROOT## when using templates 08aabd4 procps: Add cgroup support 9bb0b1c blacklist.bbclass: Avoid blacklist specific handle in base.bbclass 3aabe00 opkg: Fix possible installation of GPLv3 header 7590f69 kernel.bbclass: Correct post(inst|rm) package association 80f6f35 groff: Add GPLv2 version 7677dac groff: Fix License to be GPLv3 0bc564a image.bbclass: Move runtime_mapping_rename to avoid conflict w/ multilib c8879e2 rpm: Enable compatibility with older RPM packages that have invalid platforms bef0aab rpm: Change references from RPM_VENDOR_POKY to RPM_VENDOR_OE 5bac0df linux-dtb.inc: Replace /boot/ with /${KERNEL_IMAGEDEST}/ 693e6a3 grub_0.97: Fix to correctly ship files under /usr/lib dbee00c lib/oeqa/runtime: add new systemd tests 1990a6c lib/oeqa/runtime: rework syslog test 0ba78c1 oeqa/utils/qemurunner: get ip old fashioned way and use tcp serial console bc4b98b classes/testimage: create a link for qemu boot log 32a36db mesa: fix and enable out-of-tree builds 07fdfd6 gst-ffmpeg: set SUMMARY instead of DESCRIPTION 7a07f71 gst-ffmpeg: enable using yasm during build 988f625 gst-ffmpeg: merge in bbappend from meta-oe 4acdab0 libav: add from meta-oe, update and tweak 7071131 x264: add from meta-oe, update and tweak 2d493e9 yasm: add from meta-oe and tweak 0c0ac7d ref-manual: Updates to insane.bbclass and two new variables added. 3565586 ref-manual: Review comments added, new variables added b7c167a ref-manual: Small wording change to installed-vs-shipped test. a89b418 ref-manual: Added more QA checks to the insane.bbclass. e26f253 ref-manual: Review comments to a few variables. d4ee32a ref-manual: updated the IPK_FEED_URIS variable. ee96b1b ref-manual: updated LIC_FILES_CHKSUM exmaple 56e0326 dev-manual: udates to toaster section. 9de2165 ref-manual: Edits to the IMAGE_TYPES variable. 0615dc0 dev-manual, ref-manual, yocto-project-qs: Debian support added e0fa185 yocto-project-qs: Fixed path typo for a download. 198d34d ref-manual: Edits to IMAGE_FSTYPES and IMAGE_TYPES variables. 7f7ede1 ref-manual: Added IMAGE_TYPES variable and updated IMAGE_FSTYPES. f5c7a1f ref-manual: updates to TARGET_ARCH and KARCH variables. a3d3c7d bsp-guide: Updated the returned KARCH list for yocto-bsp script. f8d18fb yocto-project-qs: Updated section on toolchains. 4fc1cd4 ref-manual: Added new variable IPK_FEED_URIS. 61ce3fd ref-manual: Added BINCONFIG_GLOB variable and updated binconfig.bbclass 5056199 ref-manual: Applied review edits to several variable descriptions. 6f77a17 adt-manual: Organized building a toolchain installer into a section. 089fcba ref-manual: Edits and additions to glossary e5b5b5a ref-manual: Updated the update-alternatives class 203b2f7 ref-manual: Edits to the binconfig.bbclass section. 4888d1e ref-manual, dev-manual: Review edits for Build Directory wording. d22a390 ref-manual: Edits to OE_BINCONFIG_EXTRA_MANGLE and binconfig.bbclass f9dc302 ref-manual: Added glossary entry for INHIBIT_DEFAULT_DEPS variable. 43bc43c ref-manual, dev-manual: Fixed links for SERIAL_CONSOLE 68dd731 ref-manual: Added glossary entry for SERIAL_CONSOLES variable. dc02de3 ref-manual: Added glossary entry for SERIAL_CONSOLES_CHECK variable. a799158 ref-manual: Added a glossary entry for the EXTENDPKGV variable. 585b2fe ref-manual: Added new glossary entry for PACKAGE_INSTALL variable. 367da91 ref-manual: Added new glossary entry for the PATCHTOOL variable. af36d33 ref-manual: Added two links for FILESOVERRIDES and OVERRIDES 56b0a9c ref-manual: Added placeholder for BUILDHISTORY_CHECKVERBACKWARDS de0b92f ref-manual: updated link f0d805d ref-manual: New variable entries added. d066247 ref-manual: Changes to the externalsrc.bbclass reference section. 76f5d3f dev-manual: updates to how to use externalsrc.bbclass 97ece25 ref-manual: Updates to the S variable description in the glossary. 2111a92 ref-manual: Added glossary description for OE_BINCONFIG_EXTRA_MANGLE variable. 48335a7 ref-manual: Added new glossary description for RM_OLD_IMAGE. 0bc4ce8 ref-manual: replaced linux_libc-headers with linux-libc-headers 1bedcb0 ref-manual: Edits to the TOPDIR glossary entry. 24dfbba ref-manual: More review edits to closer look section. 8a7e685 ref-manual: Small corrections to the TOPDIR variable description. 2a9ee7a ref-manual: Review comments for closer look at YP dev section 1b056af ref-manual: New COREBASE variable entry added to glossary. 106e89f ref-manual: Updated the TMPDIR description in the glossary. 93c76f4 ref-manual, mega-manual, Makefile: Updates to expanded dev section 4b23d26 ref-manual, mega-manual: New section for images/SDK 17ded75 ref-manual: New variables added to the glossary. 53c70de ref-manual: New glossary entry for DEPLOY_DIR. 40b9e61 ref-manual: Update to note regarding distros supported. 8f865d7 yocto-project-qs: Updated note about the distros supported. 34c68c5 ref-manual: Updated warning note in supported distro section. 3f127a5 ref-manual: Fixed typo 534ec3d ref-manual: New entry for OE_IMPORTS variable added to glossary. f32e019 Makefile: Corrected figure file name. d39c2e2 dev-manual: fixed a grammar issue. 194f2c1 ref-manual: Added note about not supporting rolling distros d1cc158 ref-manual: Removed link to wiki page for tested distros. 5ebb6d8 mega-manual: Added five new figures to the figures folder b57aa07 Makefile: Added new figures to the TARBALL variables. affae18 ref-manual: Wording change for Images section. 96ce7dc ref-manual: New section on Package Feeds. ef0be47 ref-manual: Typos fixed. 8007fef ref-manual: added opengl to distro feature list. fd381a2 ref-manual: Added a section reference to external toolchain question. eccd321 dev-manual: Changes "Webhob" to "Toaster" b44a9ab dev-manual: First draft of webhob section 6987974 yocto-project-qs: Fixed CentOS packages section. 0a074d5 ref-manual: Edits to requirements section. 69b317f ref-manual: Edits to the "source" section of yp dev environment dc7f6e7 ref-manual: First draft of the "Sources" section added. f3b97fa ref-manual: Another round of edits from Paul implemented. cb66b6e ref-manual: Review comments added. c7ac885 ref-manual: Review comments for config and layer sections. 7c8831b ref-manual: Added new overview figure. a9e5f08 dev-manual: Fixed some rogue characters. 1adebc0 ref-manual: Added new section for layer input detail. 20b0437 ref-manual: New figure added for Layer section. 25146ba ref-manual: Some additional edits 0345088 ref-manual: New user configuration figure added. 95cdad1 ref-manual: Start of new section on deeper look into dev env. 482943b ref-manual: Added URL for the pre-built buildtools tarball 485b35d documentation: Removed deprecated kernel-manual. a44fc49 mega-manual.sed: Deleted kernel-manual line. 68752d7 mega-manual.sed: Removed the processing for kernel-manual d917158 README: Updated the file to reflect current state of documentation e5dae1b kernel-dev: Fixed link in title page to point to new manual. 4592adb dev-manual: Fixed reference to bug format. b26af3c yocto-project-qs: Update to Linux Distribution Requirements 6546d5a dev-manual: Removed file. e3550b4 dev-manual: Changed repo name. c56c79f ref-manual: New section on building buildtools tarball 222a9cf ref-manual, adt-manual: Added links to SDKMACHINE variable. b9bf10a ref-manual: Added SDKMACHINE variable description. 16d522b maintainers.inc: reassign maintainers, remove obsolete recipes 5695ec8 checkroot.sh: respect the value of ENABLE_ROOTFS_FSCK 3d1a60a build-appliance-image: upgrade to ac60aa8cf707eec58e2cb51e7c406250d0b43ef1 commit. bc1996c mkfontscale: upgrade to 1.1.1 8429370 ed: upgrade to 1.9 33f6017 systemtap: fix build failure on host system with dyninst installed 86d8d89 busybox: remove syslog-startup.conf if sysvinit not in DISTRO_FEATURES 290a5ae qemu: pass CFLAGS via ./configure instead of a patch afd80c0 separatebuilddir: add comments 6305e6a tzdata: upgrade to 2013d 3ca5ffa gst-fluendo-mpegdemux: upgrade to v0.10.72 3a8f3b8 net-tools: upgrade to v1.60-25 60bc7c1 sudo: quote BUILD_CC d1fd10e bash: reference acl*.m4 from ${S} 5c7b8fc buildhistory: use bb.utils.mkdirhier instead of os.makedirs 560dac6 buildhistory: use package_qa_handle_error for version-going-backwards 712622e bitbake: hob: Add missing file from previous commit f63e7f4 subversion: Add patch to use neon 0.30 7616bea tiny-init: fix bashism b6e4989 maintainers.inc: Update ownership of recipes 30a3b12 package_regex.inc: Add/Update regexes 89f42c9 bitbake: depexp: fix typo in variable name 44db452 bitbake: depexp: insert data instead of append/set, for speed 3412a89 bitbake: depexp: make parse() a member function e76fdac bitbake: hob/imageconfigurationpage: changes to image combobox 4182c53 bitbake: hob/imagedetailspage: add tooltip for save image recipe button 8db39d2 bitbake: hob: set focus on entry name when the name is not correct ecc56f2 bitbake: cooker: save packages in IMAGE_INSTALL instead of PACKAGE_INSTALL c83f818 bitbake: hob: implement the "retrieve image dialog" + changes to image combo box 42a4f33 bitbake: hob: retrieve file name of an image 4640fd0 bitbake: hob: changes to image combo box 63157e2 bitbake: hob/bitbake: when an image is saved, it should require an image from layers 08ccfac bitbake: hob: the saved image should be editable 3bef5a7 bitbake: hob: change the name and description for the saveimagedialog bb8a265 bitbake: hob & bitbake: append a value to a variable from hob throught bitbake 116219c bitbake: hob: make changes in order to permit from UI to edit an image after saving it 564c83b bitbake: hob/bitbake: save the description of a custom image 140744c bitbake: hob/bitbake: create a template (a .bb file) from hob through bitbake ee4fe5a bitbake: hob: create save image dialog used to save a template 843ef10 bitbake: hob: labelling changes in Hob adcce84 bitbake: hob/packageslist: change image size label to estimated image size 4c96451 bitbake: hob/advancedsettings: change toolchain labels to sdk labels 62c0f6c man-pages: upgrade to 3.53 d4bb182 util-linux: upgrade to 2.23.2 313b088 mc: upgrade to 4.8.10 2ff2249 list-packageconfig-flags.py: add a script to list all PACKAGECONFIG flags de17b59 base.bbclass: Fix PACKAGECONFIG usage comment 9b6fd47 kernel.bbclass: fix typo f26c09e curl: upgrade to 7.31.0 9265340 liburcu: upgrade to 0.7.7 1019742 qt4: add upstream QTBUG-32534 patch for QHttpMultiPart upload corruption 6810129 telepathy-glib: upgrade to v0.20.4 f1a0743 gstreamer1.0-plugins-ugly: upgrade to v1.0.9 c57d05e neon: upgrade to v0.30.0 bd96581 libpng: package new tools into a libpng-tools package b15101f texinfo: Fix path to perl for scripts 76f8dfe oeqa/utils/qemurunner: fix wrong var in message 3b0be88 btrfs-tools: upgrade to upstream revision. 6301717 mesa: update to 9.1.6 be13994 packagegroup-core-boot: correct runtime dependencies for non-sysvinit system 9e280a1 grub-efi-native: add flex patch to efi-native version also d5ca5d8 apt-native: fix SRC_URI Checksum for update 54437d8 gdk-pixbuf: upgrade to 2.28.2 a772e06 gstreamer1.0-plugins-bad: upgrade to v1.0.9 e471457 gstreamer1.0-libav: upgrade to v1.0.9 44a4523 gstreamer1.0-plugins-good: upgrade to v1.0.9 0fe3618 gstreamer1.0-plugins-base: upgrade to v1.0.9 b14ac15 gstreamer1.0: upgrade to v1.0.9 9fc51c3 telepathy-idle: upgrade to v0.1.16 6b0b8d8 telepathy-mission-control: upgrade to v5.15.0 6eb01bf libc-package.bbclass: Add armeb architecture to locale_arch_options 60a8903 buildhistory: add a note when committing to buildhistory 2fd2c60 buildtools-tarball: do not export OECORE_NATIVE_SYSROOT ca365c6 initramfs-framework: fix bashism ae26fa4 xtscal: fix bashism 3d6ffb7 qtdemo-init: fix bashism d55d458 scripts/contrib/mkefidisk.sh: fix bashism 4cff3de grep: Add patch for texinfo 5.1 5aff182 gcc-4.8: Fix meta-fsl-arm iperf build issue 82877a9 ofono: Enable test scripts by default 3cf0a54 ofono: Move bluetooth enabling to .inc file 973cfd8 ofono: Add systemd support 176ad0d grub: disable floating ncurses dependency for GPLv2 version ac60aa8 classes/sanity: fix some grammatical errors in messages 9aba922 classes/sanity: check for suid root command evility c56e470 mesa: inherit gettext 0224cb2 oe-find-native-sysroot: minor optimization 596a3b6 packagegroup-core-tools-testapps: isolate x11 dependent tools a326594 u-boot: state the MACHINE when skipping u-boot 900ecba xorg-cf-files: upgrade to 1.0.5 f8781d3 resolvconf: upgrade to 1.74 0f5e881 libgcrypt: upgrade to 1.5.3 bc14915 glew: upgrade to 1.10.0 2a4c430 dpkg: Drop INC_PR as it's unused c342715 dpkg: upgrade to 1.17.1 46e50e3 shadow: Fix build when DISTRO_FEATURES contains pam, libc-crypt 4813e2d alsa-utils: upgrade to 1.0.27.2 6d5d0c4 alsa-lib: upgrade to v1.0.27.2 8d68f16 apt: Upgrade from 0.9.8.2 to 0.9.9.4 338b0e7 grub_2.00: fix compilation when using flex 2.5.37 e75bbf9 flex: upgrade to 2.5.37 d4e26f9 makedepend: upgrade to 1.0.5 378d8f5 xhost: upgrade to 1.0.6 e97780c xf86-input-evdev: upgrade to 2.8.1 57033f6 xrandr: upgrade to 1.4.1 2dae94b libpciaccess: upgrade to 0.13.2 141e928 libdrm: upgrade to 2.4.46 1913659 powertop: upgrade to 2.4 e4a6815 nasm: upgrade to 2.10.09 8bebf2b git: upgrade to 1.8.3.4 4cb6c0e xf86-video-intel: upgrade to 2.21.13 175cad5 gst-plugins-gl: add explicit dependency on libpng 48763e9 opkg: Bump SRCREV as patch has been applied upstream f890c73 qemu: remove unused SDL variable a767e36 bluez5: Add obex-profiles as a PACKAGECONFIG, package obexd separately 159c1c8 avahi: Remove unnecessary runtime dependency on sysvinit-pidof 381566a opkg.inc: remove the obsolete REDIRECT_CMD 519a8ac adt_installer: allow specifying relative target sysroot paths b8962ed oeqa/runtime/xorg: use the right ps command for xorg test 26d67b9 oeqa/utils/qemurunner: tweak console bootparam and ip command fce0c99 oeqa/utils/qemurunner: add comment and header e678a45 oeqa/utils/sshcontrol: increase and log timeout in output 9de0ad4 genericx86: ship all the driver firmware by default 5efc59a genericx86: disable rootless X 4ef3385 genericx86: add fbdev, modesettings and vesa Xorg drivers e2010da local.conf.sample: add genericx86 reference 2bdb478 genericx86: add new BSP 06feb0e package_regex.inc: Add/Update REGEX and PRSPV variable 8af2565 layer.conf: make the yocto layer dependent on oe-core 8e324c7 poky-lsb: Enable GCC Security flags by default for LSB builds 888d1f3 bitbake: bitbake-worker: import needed signal module d45486e bitbake: fetch2: fix unpack of .xz files 5472bdc texinfo: Update to 5.1 c291032 matchbox-wm: correct the SRC_URI and add checksums c313d60 dbus: remove build host test in configure script 16ce101 busybox: move /bin/su to /usr/bin/su to match util-linux and shadow 9ed0a31 shadow: use u-a for su b336264 util-linux: use u-a for su 55770c0 util-linux: Update for swapoff being a separate binary 82ac6aa libpam: deny all services for the OTHER entries f02e5a6 libpng : upgrade to 1.6.3 f2b19ad csl-versions.inc: instruct user to check local.conf 683f454 distrodata.bbclass: Include PRSPV variable in upstream version checking 280b9a3 distrodata.bbclass: Remove whitespaces b099c7b pseudo: Always try to build 32-bit libpseudo when NO32LIBS is set to 0 fe378e1 busybox: Add syslog-init alternative only if SysV in enabled 3b9b8d5 systemd: Remove init.d dir if systemd unit file is present and sysvinit not a distro feature 205ec43 v86d: mark as compatible with all x86, not just qemux86 d363660 iproute2: upgrade to v3.10.0 4b49ae1 syslinux: update to 4.07 7b1fc17 docbook-sgml-dtd-4.1-native: fix recipe name 3248efe docbook-sgml-dtd-3.1-native: fix recipe name cc94000 lib/oe/terminal.py: add support for MATE desktop terminals e472443 bluez5: Only install .conf files if found 05241f9 openssl: Fix multilib header conflict - opensslconf.h d8e4a4b ccache: allow CCACHE_DIR to be overriden bd1c441 bitbake: bitbake: runqueue: add warning if invalidating invalid task 0e9049a bitbake: hob: sstatemirror is standard also for file://.* regex e28904e bitbake: hob: changed the split of SSTATE_MIRRORS variable e605ecf bitbake: providers.py: print a debug message for dynamic pacakge 4df73c7 maintainers.inc: reshuffle maintainers d1b189f external-sourcery: add missing providers 6784e26 apt: Add Upstream Status to patches 4e7d4aa openssh: Added Upstream Status to openssh-CVE-2011-4327 ec0e7f7 Revert "initrdscripts: mount / as read-only when live-booting" f629afe classes/rootfs_rpm: implement BAD_RECOMMENDATIONS for RPM face212 classes/image: ensure BAD_RECOMMENDATIONS supports pre-renamed package names c1a7436 python-smartpm: add ignore-recommends package flag e8dfbb0 python-smartpm: fix sometimes reporting no provider instead of conflict 1cbabdb util-linux: fix PACKAGECONFIG options 6911907 strace: Add ptest 2df842d mesa: add PACKAGEs and PACKAGECONFIG for xvmc 904f937 wpa-supplicant: enable required configuration options for connman ac9d373 videoproto: Update from 2.3.1 to 2.3.2 dd810b8 libuser: Updated from 0.58 to 0.59 36ef2a7 libxxf86dga: Updated from 1.1.3 to 1.1.4 007592a libxrandr: Update from 1.4.0 to 1.4.1 a0487b0 libxfont: Update from 1.4.5 to 1.4.6 7e34865 rpm: remove the obsolete rpm-postinsts.bb ab2a6a8 qemu: block to build it on mips64 arch dc03e67 gettext: disable nls when INHIBIT_DEFAULT_DEPS is set ac98301 gst-plugins-good: add PACKAGECONFIG for jpeg, wavpack, gdkpixbuf, v4l, bzip2, orc 9f734c6 gstreamer1.0-plugins-good: add PACKAGECONFIG for v4l 396d7c5 sudo: add PACKAGECONFIG for zlib 7386dba socat: add PACKAGECONFIG for tcp-wrappers 4154db3 python-imaging: add PACKAGECONFIG for lcms 6d89135 patch: add PACKAGECONFIG for attr 5fd58bb ltp: add acl, openssl dependency bfd75e4 minicom: add configure option and PACKAGECONFIG for lockdev 331e651 mailx: remove support for autodetection of krb5 f2e84ad grub: add PACKAGECONFIG for grub-mount bf37590 distcc: add PACKAGECONFIG for popt 9059398 directfb: add PACKAGECONFIG for jpeg2000 2198910 cups: add PACKAGECONFIG for acl 53efb96 ccache: add zlib dependency 9143917 xkeyboard-config: add missing dependency on util-macros ce17978 gst-plugins-bad: add few more PACKAGECONFIGs 5c4513d test-dependencies: add simple script to detect missing or autoenabled dependencies 462acd2 linux-yocto/3.8: revert .gitignore: do not ignore meta directory 3e2a680 scripts/create-lsb-image: remove 7c1cb16 LSB_Test.sh: add -f option for curl cb68f65 pulseaudio: upgrade to v4.0 4c58161 ptest: fix Upstream-status a8f3dae rt-tests: add Upstream-Status for cyclictest patch a9b98b6 weston: add pango dependency 8b7c6ef sanity.bbclass: mention version when erroring on LCONF_VERSION mismatch 63fd657 sysvinit: pidof add -m option for lsbinitscripts 5929854 lsbinitscripts: remove x permission on functions fc8cb56 cups: Update to 1.6.3 6e87a6f mklibs-native: Update to 0.1.38 577c42e consolekit: Update to 0.4.6 3e3ab8e useradd.bbclass: fix traceback when inheriting useradd but not setting USERADD_PARAM or GROUPADD_PARAM ee9bdf9 nss:fix postinst failed at rootfs time fcfee5c readline: fix importing readline in python with probably escape sequence output aa7bc3c run-postinsts: add more logging to the log file to make things clearer 49cd268 run-postinsts: fix comment 0a3d3b6 xinput-calibrator: move it from meta-oe to oe-core 054b932 package.bbclass: avoid packing debug sources from other packages 3f7e8ad bash: Add ptest d921c0a connman: upgrade to v1.16 4b5a21d elfutils: fix backends' Makefile.am a55fa3c dmidecode: add aarch64 and arm to compatible host b71aa97 cpan.bbclass: Fail unless Makefile.PL generates Makefile 6bb09da dbus: add -o option into start-stop-daemon arguments dd8865a gcc-4.8: fix compiling GCC when /usr/lib/libstdc++.so is present 67864ca systemd: Remove systemd_unitdir if systemd is not in distro features c39bd69 glew: Update GLEW version number in autotools patch 4695231 mesa: add Upstream-Status 3522607 cups: add PACKAGECONFIG for avahi 3d6f866 subversion: add PACKAGECONFIG for sasl 813bf62 pulseaudio: add PACKAGECONFIG for jack 9cfd8e5 gst-plugins-ugly: add PACKAGECONFIG for x264, cdio, dvdread 7e7680b gst-plugins-good: add PACKAGECONFIG for jack 1d5d931 boot-directdisk: use awk instead of echo -ne for dash compatibility 1b01e39 remake: fix insufficient gettext dependency f8baa35 mesa: use LLVM 3.3 by default aaca675 wget: backport fixes for documentation build errors 6d42c27 extrausers.bbclass: add a new bbclass 50d2548 useradd.bbclass: add a new base class and code refactor 18f39e5 kmod: Add ptest bbab6e7 directfb: don't patch pkg-config files de52f89 python: Add ptest 4f9c5a0 mesa: upgrade to 9.1.5 248bb31 systemd: remove unneeded modprobe.rules 784d7b7 libpam: add a new 'nullok_secure' option support to pam_unix 7af92f8 initrdscripts: mount / as read-only when live-booting e6f96e2 tremor: add a patch to build with arm thumb b23423c docbook-sgml-dtd-4.5-native.bb: Add real PV inside the recipe ba0640a lttng-modules: Append _git to recipe name and add GIT revision to PV variable 3c0300b kmod:add GIT revision to PV variable a726633 adt_installer_internal: fix spelling error 0d8ee88 pigz: Fix typo in ALTERNATIVES line 31e6eee poky-tiny.conf: blacklist core-image-weston option 142d40e local.conf.sample.extended: add example for EXTRA_USERS_PARAMS f23a47f curl: add upstream status to patch 8ebc333 pulseaudio: Removed avahi forced dependency 7156f30 scripts/contrib/*: fix arithmetic bashism 5a170bd linux-yocto/3.8: restore qemumips64 SRCREV f7f9f16 linux-yocto/3.4: mips: fix gcc 4.8 compilation d0947c9 linux-yocto/3.8: update META srcrev f1f5f7d tar: remove an erroneous patch 16b411e rpm-postinsts.bb: Fix typo 8b57730 run-postinsts: Fix typo 681b605 eglibc-2.18: Update to latest snapshot 1c0c480 eglibc-2.18: Remove unused patches 095b1ef valgrind: added perl dependency eb9b8a0 pulseaudio: Added cli-protocol-unix to pulseaudio-misc eff0b05 bluez5: new package for v5.7 a527fe2 bluez4: conflicts with bluez5 37784b9 iproute2: Fix alternative link for ip command 26207e2 uclibc: Build ldd/ldcondif/iconv for main uclibc recipe f582398 buildtools-tarball: testimage needs the mmap python-module e23d5a0 xuser-account: add xuser to disk group 565956f udev-extraconf: allow users in disk group to write vfat filesystem 8db3642 populate_sdk_base.bbclass: use new perm option for find 16e1e1f oprofile: add Upstream-Status for several patches 21937da tcl: fix typo of upstream status in patch file 9d219d8 dbus-ptest: Disable python module check fb58029 gcc-4.8: Fix on-device SDK C++ runtime issue 8f91b1c Upstream-Status: Correct capitalization 77742dd classes/insane: allow libdir QA check to be skipped using INSANE_SKIP 20d7b27 classes/insane: fix regression in libdir QA regex 314b92a wpa-supplicant: backport patch to fix dbus interface for autoscan functionality e9b5ef1 busybox: fix ip reference in simple.script 3cef129 terminal.bbclass: Fix BB_RUNFMT processing 4a6f939 sanity.bbclass: Update gcc sanity check 344cf64 gdb: add PACKAGECONFIG for Python support 1820d33 qt-mobility: tighten up config generation and use PACKAGECONFIG aef74ef dpkg: backport a patch to support mipsn32el and mips64el 3dee534 lib/oeqa: fix dependecy check 656a8b9 testimage.bbclass, lib/oeqa: add headers and comments 655da29 classes/testimage.bbclass: use a copy of rootfs for tests 2079a30 lib/oeqa/runtime: add tests for syslog and df 7f57d3c lib/oeqa/oetest.py: provide a ps command for all tests b69f91f lib/oeqa/runtime/multilib.py: use readelf instead of file 9c4a02b testimage.bbclass, lib/oeqa/utils/qemurunner.py: make boot timeout configurable and increase it 1552f33 lib/oeqa/utils/sshcontrol.py: fix passing command to subprocess 46d3bb5 lib/oeqa/runtime/dmesg.py: whitelist dmesg message for systemd net interface name 8a971ae initscripts: Update to 9.48 206c3c7 mc: upgrade to 4.8.9 84b62e2 libidn: upgrade to 1.28 a8cd0fc core-image-lsb.bb: add 'package-management' to IMAGE_FEATURES 74e4037 yocto-kernel: make BBLAYERS parsing more robust 46818e5 package_regex.inc: Changes in regexes 06ae127 distrodata.bbaclass: change in git and svn package reporting 5c9281e qemu: QEMU fix libtool usage caa4130 ncurses: add xterm-256color to terminfo-base 88ff9e0 pciutils: Add kmod dependency 6cf5b4b boost: backport glibc patch for new eglibc a6c5549 dbus: upgrade to 1.6.10 0ef252e ethtool: add ptest 334a22f xdg-utils: upgrade to 1.1.0-rc1 02d5ea6 qt4-x11-free: fix post-processing of QtWebKit.pc c540044 nss: fix incorrect shebang line of perl script 912efc0 nss: create checksum files for the nss libraries e448ef6 nss: add version 3.15.1 9781b0d packagegroup-core-lsb: add nss for LSB library check 8080558 nspr: add native version 788f176 alsa-state: Provide an empty asound.conf by default 01d9d1b powertop: fix update-alternatives link c1b0fae rxvt-unicode: Check existence of acinclude.m4 7d013f3 cogl-1.0: make building cogl-pango optional 9b6011c cogl-1.0: put each library into its own package 63645af package_rpm.bbclass: remove xx.spec before doing rpmbuild xx.src.rpm 2758fce libogg: upgrade to 1.3.1 b52d2bb boot-directdisk: allow specifying custom MBR disk signature f9625c2 packagegroup-core-tools-profile: exclude systemtap and valgrind for mips64 f8bee41 xserver-xorg: extend packageconfig and dependencies 5d17796 diffutils: Upgrade to v3.3 5f86341 iputils: Upgrade to v20121221 db9775f pango: remove pango-module-basic-x RRECOMMENDS a632299 meta-yocto-bsp: update reference board SRCREVs 723ab4a security_flags: Add addition recipes to the non pie list 1d10dc3 kconfig-frontends: Update to 3.10 73ebab2 tzcode-native: Update to 2013d 7f7fb8b cmake: Update to 2.8.11.2 c6d14c6 man-pages: Update to 3.52 b5c49e6 util-linux: Use PACKAGECONFIG to control pam and system config options b472553 glib-2.0: add -march=i486 into CFLAGS automatically when needed. 258b8a2 package_deb.bbclass: make DESCRIPTION support newline 33cd81e package_ipk.bbclass: make DESCRIPTION support newline 477b2c9 package_rpm.bbclass: make DESCRIPTION support newline 29e8106 eglibc: Update 2.18 recipes to fix ppc/e500 failures 10cdbf1 qt4: add upstream QTBUG-31579 patch to fix polyline drawing regression c44cb07 pango: drop unexplainable elfutils dependency 9190cfd gtkdoc: set the default docdir to ${S}, not ${B} 4b0ab26 libxml2: Add ptest d8cba33 populate_sdk_base.bbclass: allow $OECORE_NATIVE_SYSROOT in sdk_env_script 09fea03 cmake: fix configure error if system Qt installation is broken 89a8dcc initscripts: add dmesg file to /var/log 5b44949 initscripts: overwrite default hostname.sh 6e08d01 qemu: use PACKAGECONFIG to address libaio/attr/libcap dependencies 3f9224c eglibc-locale: add missing dependency on virtual/${TARGET_PREFIX}binutils c15d990 systemtap: inherit pkgconfig c491477 libpam: inherit pkgconfig 195e098 quota: inherit pkgconfig 38639bd taglib: add missing dependency on zlib 70c1801 gst-plugins-base: add missing dependency on glib-2.0-native 0808adb gst-plugins-bad: inherit gsettings 9cc5201 (lib)telepathy*: add missing dependency on libxslt-native 4cabd89 usbutils: Upgrade to v007 88846af apr-util: Upgrade to v1.5.2 1f917bc apr: Upgrade to v1.4.8 2f0b5c1 libdmx: Upgrade to v1.1.3 19be8b3 ed: Upgrade to v1.8 c3df564 rxvt-unicode: Upgrade to v9.18 1f5bd76 elfutils: Upgrade to v0.155 749fcaf shutdown-desktop: give entire path in Exec field ca48b14 xserver-nodm-init: remove xuser creation, RDEPEND on xuser-account 95ce63d connman: remove xuser creation, RDEPEND on xuser-account 79e948b xuser-account: create separate recipe for xuser creation f638364 sysvinit: allow users in shutdown group to perform halt/reboot 1cf75b5 packagegroup-core-basic: remove libpam da2f4a0 linux-yocto/3.4: update to v3.4.52 58002d1 ethtool: Updated from 3.9 to 3.10 22ee5af libxv: Updated from 1.0.8 to 1.0.9 eac1500 libxrender: Updated from 0.9.7 to 0.9.8 397845d libgpg-error: Updated from 1.11 to 1.12 eb5b86d libxi: Update from 1.7.1 to 1.7.2 8ec12b3 libxvmc: Update from 1.0.7 to 1.0.8 2805608 augeas: Update from 1.0.0 to 1.1.0 528bcdb libassuan: Updated from 2.1.0 to 2.1.1 5c30746 packagegroup-core-lsb: set COMPATIBLE_HOST to mips64 22ff68e webkit: set COMPATIBLE_HOST for mips64 28d8cbe e2fsprogs: upgrade to 1.42.8 2c4c06d glib-2.0: upgrade to 2.36.3 92d9ce3 populate_sdk_base: fix bashism f6538c3 scripts/runqemu: Add support for 'qemumicroblaze' machine 4156338 scripts/runqemu: Add support for 'qemuzynq' machine ce1638c systemd: Don't enable systemd services when native. 4285e85 lib/oeqa/runtime: add gcc test 06d6f9d lib/oeqa/runtime: image sanity tests 54f3848 lib/oeqa/utils/decorators.py: decorators for test methods 88a6eb8 lib/oeqa/utils/qemurunner.py: class to handle qemu instance 962c0a1 lib/oeqa/utils/oeqemuconsole.py: handle qemu serial console connection ac341af lib/oeqa/utils/sshcontrol.py: helper module for running remote commands 12bf626 lib/oeqa/oetest.py: base module for all runtime unittests 1328d49 classes/testimage.bbclass: new class for image tests dc86293 bitbake: HOB:Proper handle of SIGINT 1defbaf qt4: Take PV increase opportunity to drop PR 131e5e7 busybox: upgrade to stable 1.21.1 0463e5c qt4: upgrade to 4.8.5 262fa7e resolvconf: Update to 1.72 94eee2e remake: Update to latest 3.82_dbg-0.9 Tag d7dbb52 swabber: Update to latest head 0b50730 dtc: Update to 1.4.0 Git Tag 2193241 boost: Update to 1.54 830e890 help2man: Update to 1.43.3 c81855b util-linux: disable runuser by default since it depends on PAM 8846267 packagegroup-core-basic: Only build libpam if it's enabled 5ad6081 distro/conf: Drop libc-libm-big 10b5910 Upstream_tracking: mark package as not upgradable due to PRS issues 07af0ec busybox.bbappend: upgrade to 1.21.1 cb6ce45 poky.conf: move libdir QA check to WARN_QA f8c8c7d yocto-kernel: enforce exact match for BBLAYERS 04b36b1 yocto-bsp: filter out 'layer' from arch list 509ca80 tcmode-default: Pin eglibc to 2.18 5ad82c3 distro/conf: Drop libc-libm-big 12914a7 eglibc: Drop libc-libm-big 67c35e1 eglibc: Add 2.18 recipes 7450ff2 binutils: Backport emulation template fixes 470fe27 qt4: disable qmeegographicssystemhelper 4d326e5 sstate.bbclass: Add an extra check for sstate_mirrors 34e5f5d mesa: remove drirc file 4ec1014 mesa: bump SRCREV in git recipe, refresh patches 52892d6 mesa: fix pipe_loader_sw build without libx11 e4103bc mesa: Improve gallium PACKAGECONFIG options efaa5ab layer.conf: Bumping LAYERVERSION_core 4770cff qt-mobility: fix build in the absence of xvideo f7d5461 babeltrace: Update to 1.1.1 based release 30ff2e3 lttng-ust: Update to 2.2.0 based release a3cf4a5 lttng-modules: Update to 2.2.0 based release 2615000 lttng-tools: Update to 2.2.0 based release 64745c2 insane.bbclass: Added QA warning for shipping /usr/share/info/dir dc54356 packagegroups: Update for split mc packages f4552c8 mc: Don't remove libdir and split helpers into packages b9056fa xf86-video-modesetting: upgrade to 0.8.0 2f32ef9 classes/insane: fix libdir check regexes fc82975 mkelfimage: switch to git repository 36afee1 apr_cv_mutex_recursive=yes added to apr_1.4.6.bb to make rosnodes work 8e10031 udev-extraconf: blacklist /dev/dm-* cb53421 busybox: fix the on-target upgrade problem e695d41 init-ifupdown: set kernel parameters firstly 8a186a6 bitbake: hob: save button from settings called a nonexisting method eaa5df3 local.conf.sample.extended: Add example line for enabling security flags dae98ef sysstat: backport a patch to fix a parallel building error 61bfb25 ghostscript: fix patch failure with some versions of patch 74a1426 classes/package: print command output when commands fail 209f92b rpm: add wrapper for debugedit executable 6c290e4 security_flags: Add the compiler and linker flags that enhance security 85f0cf9 qt4e.bbclass: export OE_QMAKE_QT_CONFIG 0214dba udev: Add RRECOMMENDS for udev-cache to enable the cache 1bcc7da packagegroup-core-basic: remove hardcode udev 8518630 TmuxRunning: handle multi-word commands c9c70d6 terminal: Run command using a wrapper script fba5c25 lttng-modules: allow building without tracepoints enabled in kernel 891ee9d webkit-gtk: add aarch64 support 23e87bd python-native: add python-codecs-native to RPROVIDES 61d051c connman: Set the VPN client program paths 889b451 bison: Delete unused patch 0ab7cfc uclibc: Remove 0.9.33 recipes 0188270 uclibc: Update to latest git/master version c0d2328 linux-firmware: fix ralink license file name a5a9403 linux-firmware: be consistent with license package naming 785b49e lib/oe/lsb.py: fall back to /etc/os-release for host distro ID 2ed1c03 base-files: remove the unnecessary /media/xxx directories 28786ec udev-cache: take a read-only rootfs into consideration 6ecba81 openssh: fix initscript restart command 8fc0d26 seperatebuilddir: cogl and clutter build out of tree 5da33c5 clutter: fix out-of-tree builds 73af7e2 gpgme: Updated from 1.4.1 to 1.4.2 70a2647 apt: Updated from 0.9.8.1 to 0.9.8.2 fcea0bb libxcb: Updated from 1.9 to 1.9.1 bffebe6 libxfixes: Updated from 5.0 to 5.0.1 f2f5809 libxxf86vm: Updated from 1.1.2 to 1.1.3 9aca5ce libxtst: Updated from 1.2.1 to 1.2.2 2b91ec9 libxv: Updated from 1.0.7 to 1.0.8 986de23 libxres: Updated from 1.0.6 to 1.0.7 abe17ce libxau: Updated from 1.0.7 to 1.0.8 cef8b87 libxinerama: Updated from 1.1.2 to 1.1.3 0f8fe0e libxcursor: Update from 1.1.13 to 1.1.14 e10e7d1 libxext: Update from 1.3.1 to 1.3.2 a662fa1 packagegroup-self-hosted: add python-git bb06593 buildtools-tarball: add python-git d70439a python-git: add recipe 8146519 python-gitdb: add recipe 3756452 python-smmap: add recipe 2e58f7d python-async: add recipe 80b2634 classes/insane: remove la2 check which no longer exists from ERROR_QA c4c6e58 Disable build qt related packagegroups on mips64 with 64 bits userspace c1df518 poky.conf: fix WARN_QA and ERROR_QA settings 48cb181 poky.conf: remove la2 check which no longer exists from ERROR_QA 67f76e6 python-multiprocessing: adding runtime dependencies 524572a python-argparse: adding runtime dependency on python-codecs 29e5599 init-live.sh: try to make a union mount when possible 76ccbba initrdscripts: unionfs cleanup 44b3c8d qt4*.bbclass: disable build qt on mips64 with 64 bits userspace 624160a bitbake: cookerdata: Improve message if BBPATH is unset and bblayers.conf not found d3ce916 packagedata: Show error when trying to change PE/PV/PR from runtime/pkgdata 1cc0288 package: Ensure we iterate all the pool objects 09a4af2 tcmode-default: Set GCC 4.8 as default 3030bbd gcc-4.8: Fix ICE on ppc/spe targets 9b007f6 sanity.bbclass: Check for the known broken version of make f744edc systemd: Ensure that we mount devtmpfs b09bc24 autotools.bbclass: force copy Makefile.in.in to ${S}/po/ c62b1a3 useradd.bbclass: Add members to a group 1f7647c shadow-native: Add --root option in groupmems b50d97c adt_installer_internal:add sudo when permission deny on installation directory 321134f adt_installer_internal:fix perl lib version mismatch 8b45f23 adt_installer_internal: fix perl modules relocated failed on older distributions 3907ed5 bzip2: Add ptest d5d6114 groff: correct the install path of man.local 0450c31 image_types.bbclass: set 'filetype' ext4 feature e474fd9 lsbtest: sync test suite packages version 171302f boost: Limit PARALLEL_MAKE by -j 64 aa8eba7 linux-yocto-dev: bump version to 3.10+ 3fac79f linux-yocto/3.4: ltsi: sync to LTSI commit 5f05247ed 173a02c linux-yocto/3.8: add USB screen configuration and net sched options c48b822 linux-yocto/3.4: allow kernel feature _appends to be overriden d85a997 udev: only use devtmpfs for udev b74e632 alsa-tools: Pass ACLOCAL_FLAGS so aclocal uses the right params 5e77e09 dbus-ptest: Install missing files 9106cfb libx11: enable Xcms by default 3371255 init-live.sh: fix automount failed occasionally 0422035 sanity.bbclass: Fix COREBASE sanity tests 10e44f1 bitbake: bitbake: python funcname can not include special character @ 4852c4f bitbake: bitbake: adding a new comment should be placed on a new line 4707a74 sanity.bbclass: Add check for @ character in build directory name 8e9501f populate_sdk_base, adt_installer: abort install if path contains spaces e3e9cf0 gdk-pixbuf: add a wrapper for gdk-pixbuf-pixdata 4401123 cleanup-workdir: fix typo 81fe6e4 base-files: create /usr/lib/locale dir fb52e2f ghostscript: upgrade to 9.07 1f57651 chrpath: Fix SRC_URI to correct location 051eb15 buildtools-tarball: Add nativesdk-make 316e242 make: Fix second part of bug Savannah 30612 67d95bf busybox: Add ptest eea24c6 buildtools-tarball: Change the way the SDK is sanitized 216e4dc gcc: When cross compiling a target gcc, target flags may be used on the host 65385d4 systemtap: Systemtap can not be build w -O0 optimization 23a86b2 linux-firmware: Package some iwlwifi firmware separately b0892c9 gst-plugins-bad: element selection rationalisation 26c858a gst-plugins-base: element selection rationalisation 3a6f639 gst-plugins-bad: tremor was moved from here to -base 4a7d063 gst-plugins-bad: use correct option when enabling librsvg a0d2cde bash ptest: Sed away the Makefile dependency to remove error messages. f8c32f7 qt-mobility: remove /usr/lib from ld rpath-link option 1bbbf36 libbsd: Add recipes for libbsd - utility functions from BSD systems f9eb803 gst-ffmpeg: fix libav config error for ppc 44c5b77 systemctl: Support all unit types in the directives. 5355311 ltp: update to new release 9d68aa5 udev-cache: fix to use udev-cache correctly 763ebb6 libpam: check if PAM is enabled when building 105cbfa libpam: fix whitespace in shell function bac191a logrotate: fix for CVE-2011-1548 b8043be rt-tests: fix error check in hackbench 3d871dc libproxy_0.4.7 do_unpack failed of qemuppc_world 861db95 core-image-weston: add clutter examples 566f9c0 clutter: add Wayland support 40ce8cf cogl: add Wayland support d02b545 weston: move mtdev dependency to the DRM backend, where it belongs ee9d396 mesa: remove a redundant do_install tweak 9e28afb weston: add patches to make weston-launch work fb6f0d4 weston-init: fix a typo in a user-visible message 6d5d49e python-pygtk: fix parallel compile issue a0102b3 python-pygobject: disable parallel install 1ff6828 openjade-native: fix build failure 977fb9a tinylogin: remove recipe 8013f6e mingetty: lower the ALTERNATIVE_PRIORITY d704b03 packagegroup-core-basic: set the default login manager c31537a packagegroup-core-boot: use busybox as the default login manager 680ff55 busybox: add the ability to split the busybox binary 72d5bbe busybox: enable to list suid and non-suid app configs 3d230db busybox: add a config fragment to enable login utilities 7264837 busybox: add support for CONFIG_FEATURE_INDIVIDUAL 6984890 busybox: remove the postinst part of the recipe 87da290 sanity.bbclass: Various improvements a355f13 sanity.bbclass: Drop horrible obsolete minversion hack de6657e Sync with PRINC removal from meta-intel edcbb79 ref-manual: Added note about issues on supported distros 95c46ae Makefile: Added figure cross-development-toolchains.png 07c9405 ref-manual: New section on cross-development toolchains added. 26a9dd8 dev-manual: Updates to the "Cross-Development Toolchain" term. a4218c8 dev-manual: partial update to cross-development toolchain definition. 54884c0 psplash: Drop PRINC from bbappend 89023b7 yocto-bsp: Drop PRINC usage d54e708 psplash: Bump PR to allow removal of PRINC from meta-yocto 302a039 strace: add configure options libaio and acl 4e5ba5f strace: update to 4.8 011608a bitbake: data_smart: Fix bug with overrides and weak default values 353212a bitbake: data_smart: Ensure variable flags are accounted for in config data hash 17b1507 base.bbclass: Ensure finalised data is displayed in build banner ed4a919 qt4: add eglibc-gconv-utf-16 to QtCore RRECOMMENDS when using glibc 78bcf87 bitbake: hob: save variables in conf/ directory f324695 bitbake: hob: replace the init cooker with reset in order to keep the history 71520c5 bitbake: bitbake: call the initConfiguration when reparsing d3027b3 tcl: fix unit test boundary year issue a58a1e6 tcl: remove hardcoded library install path c5a5d23 bitbake: cooker: Ensure configuration matches variable tracking state db6bd11 bitbake: build.py: Cleanup data store references 2a4d076 qemu: fix segfault in Xorg when not using kvm 7d02de8 bitbake: bitbake: remove the function for reparse because it does nothing 3a74f25 bitbake: Correct a typo d1ad98b bitbake: Allow checksums to be used for files retrieved using SFTP 77264ca bitbake: hob: check if imageconfiguration page has the attribute 'warnings_bar' 01f9d1b bitbake: bitbake & hob: modify some commands and call them from hob 64eda3e bitbake: hob: remove the rest of the old template functionality 801fbe5 bitbake: fetch2: Enhance error message for BB_NO_NETWORK 5af68d4 bitbake: runqueue/build: Add recideptask flag de1841d utility-tasks/distrodata: Add recideptask flag for fetchall/checkuriall 827400f classes/buildhistory: fix error when no packages are installed e04e6da bdwgc-native: Add missing pkgconfig DEPENDS 8e8de62 classes/package_tar: fix file ownership within tarballs 56ff6931 wget: Add missing DEPENDS on zlib be58154 autogen-native: fix build failure on overloaded hosts cc53a1a libpam: Fix for CVE-2010-4708 3a06eb6 procps: fix that top will quit after cpu offline 590010a core-image-weston: add weston-examples to the image 5722129 systemd-udevd: fix invoking init script failed fe77047 linux-yocto/3.8: fix gcc 4.8 ARM boot issues 2bdfdfe sato-screenshot: bump SRCREV for linkage fixes e8581c4 matchbox-panel: bump SRCREV for linkage fixes 6038a40 gcc-4.8: Backport fix for ICE triggered in pixman c91deb4 pseudo: drop version 1.4.5 recipe 692b751 opkg: put libopkg header files into libopkg-dev ea42175 opkg: fix header installation for libopkg bd30668 oe-buildenv-internal: Ensure error messages got to stderr 609a367 alsa-lib: check if wordexp is supported in libc a40435e alsa-lib: Change function type to "static __inline__" c281cd1 python: Add nativesdk wrapper to handle terminfo 2631eff utils.bbclass: Tweak create_wrapper f6f5eed classes/externalsrc: enable global inherit and simplify usage 1dd643b licences: Add SGI license 6d1f9d5 atk: inherit gnomebase 37d244d libcap: do not pass CFLAGS to gcc 3870250 directfb:filter out -fno-omit-frame-pointer option on x86 arch a83d489 openssh: obey 'tcp-wrappers' PACKAGECONFIG 5825612 openssh: fix a unaligned memory access issue 7346d89 openssl: Add fix for cipher des-ede3-cfb1 f74a631 bind: backport six CVE patches e1baa0d archiver.bbclass: check if package contains a copyleft license e5615e7 webkit-gtk: Support build on mips64 d807f7a dhcp: drop noattrmode.patch cb16810 dhcp: drop fixincludes.patch 64ae544 gtk+3: fix repainting under Weston 1.1 1f0a4d7 gtk+3: clean up libtool link creation to avoid errors in configure log 7eab456 gtk+3: split into .bb/.inc b10267f gtk+3: register GSetting schemas 16bb7ed gtk+: remove spurious libgcrypt dependency cb591b2 gtk+3: add dependencies for gtk+3-demo 7e9fd6c gtk+3: respect x11 and wayland DISTRO_FEATURES 03aa2eb gtk+3: explicitly disable introspection d5abb65 gtk+3: update to 3.8.2 91c347d at-spi2: add -core and -atk, for GTK+ 3.8 7f58f4c local.conf.sample: use ?= to assign BB_ENV_EXTRAWHITE variables baff263 bitbake: bitbake: read BBSERVER environement for remote server f5cadbe bitbake: knotty, bitbake: add option to terminate a remote server 3ea9d64 bitbake: knotty, xmlrpc: add observer-only mode 194b395 distrodata.bbclass: fix syntax errors fee1032 dbus-wait: Upgrade to fix typo 7abcaf1 oe-buildenv-internal: Fix exit verses return e023620 bitbake: utils: Fix multiprocessing pool reference 1e55bc4 dev-manual: Added definition for the term "Meta-Toolchain" 6ea2dd5 dev-manual: Updates to the term "Cross-Development Toolchain" ffcb7c6 ref-manual: fixed caps problem with the word "numberS" b38ed97 ref-manual: Fixed grammar in PREFERRED_VERSION glossary item. cb427a6 dev-manual: fixed formatting of PREFERRED_PROVIDER variable. 1ff4961 ref-manual: Wayland section review draft 31c52bb ref-manual: updates to RDEPENDS and RM_WORK_EXLUDE variables. 69b36d1 ref-manual: Updates to the RDEPENDS variable entry. d67aecf dev-manual: Fixed order for variables in ptest section. 4fec8e3 ref-manual: New glossary entry for the FILESOVERRIDES variable created. 5e32769 ref-manual: edits to FILESPATH and FILESEXTRAPATHS variables. a8e62dd ref-manual: Added variable description for OVERRIDES. eacc13a dev-manual: Updated reference to where licenses are kept 441c699 bitbake: compat/server/utils: Jettison pre python 2.7.3 workarounds 6c05834 bitbake: runqueue: Improve handling of failing setscene tasks with hard dependencies f3e8982 documentation.conf: Drop variables for class that no longer exists in OE-Core 4aebdec bitbake: xmlrpc: removes the event servers controller 07ba793 qt4: set QMAKE_COMPILER to gcc in mkspec 33c762b qt4: disable gdb_dwarf_index 53841ce classes/conf: Add eventmasks for event handlers 98abb11 scripts/buildenv-internal/sanity: Update to python 2.7.3 as a minimum 2cc601c sanity: Drop pseudo test, now unneeded bd07f35 scripts/bitbake: Drop horrible double execution mess 1920ba2 sanity.conf: Update minimum bitbake version requirement to 1.19.1 for bitbake-worker ec7d935 scripts/oe-buildenv-internal bitbake: Migrate python version checks cfbd13f scripts/bitbake sanity.bbclass: Migrate tests for git and tar versions 9d18a29 bitbake.conf: Add extra fakeroot parameters 5aa5fc4 bitbake: bitbake: Add event mask flag support 542d6a8 bitbake: bitbake: Update version to 1.19.1 8408f3d bitbake: bitbake: Bump minimum python version to 2.7.3 5ebd9bf bitbake: prserv: Adapt autostart to bitbake-worker efb877b bitbake: runqueue: Spawn a separate worker for fakeroot tasks 0ee02ca bitbake: runqueue: Abstract the start and teardown worker functions 026c94b bitbake: runqueue: Move the bitbake-worker execution to a higher level d0f0e5d bitbake: runqueue: Split runqueue to use bitbake-worker cd7b7de bitbake: fetch2: Fix AUTOINC handling 534c4d0 buildtools-tarball: Add nativesdk-ncurses-terminfo-base 8d3397b python: -Wformat is needed by gcc 4.8 f6189cd mesa: introduce gallium-llvmpipe PACKAGECONFIG f7db60e mesa: use PACKAGESPLITFUNCS f98b968 mesa: introduce openvg PACKAGECONFIG bcf3875 mesa: introduce gallium PACKAGECONFIG 6d2c16d mesa: remove more .la files caf3df2 mesa: merge mesa-git.inc to mesa_git.bb 1027f98 mesa: move LIC_FILES_CHKSUM to .inc e6ca54c mesa: use PACKAGECONFIG instead of DISTRO_FEATURES to define EGL_PLATFORMS 85cdc71 mesa: introduce PACKAGECONFIG for dri 6efefdf mesa: merge mesa-common.inc to mesa.inc eba5d15 cogl: make cogl be able to build on ARM arch 23fd4d2 systemd: update install-quotaon-once.patch 04af378 classes/qmake_base: allow parallel make 9bb1ba4 qt: update qmake2 class to export qconfig.pri mkspec 4505618 gnome-doc-utils: drop the usage of create_wrapper ec0b81a createrepo: drop the usage of create_wrapper 81c3428 python-native: add nativepython symlink c88d417 dpkg: drop the usage of create_wrapper 30d3c8d scripts/contrib/build-perf-test.sh: fix passing arguments b7308e7 scripts/contrib/build-perf-test.sh: add branch name and sizes to results 9d39cdc site: add more alignment values for at-spi2-core 68ffca3 runqemu: when tunctl can't be found, say what package builds it 8d577ab nspr: Update to 4.10 941e313 libusb: Update tp 0.1.5 30b9076 libxkbcommon: Update to 0.3.1 7b88998 sysstat: Update to 10.1.6 7481749 lsbinitscripts: Update to 9.47 507cf0a libidn: Update to 1.27 680c88f cups: Update to 1.6.2 8006eb9 cracklib: Update to 2.9.0 4f661f4 help2man: Update to 1.43.2 a7d2ab7 cmake: Update to 2.8.11.1 650f30c socat: Update to 1.7.2.2 b85b611 qemu: update to 1.5.0 a6daa83 gcc: Upgrade to 4.8.1 9d9150c ofono: Add run time dependency for ofono test scripts cceb11f gzip : upgrade to 1.6 30fa8c7 libxt: upgrade to 1.1.4 7a6a993 libdrm: upgrade to 2.4.45 d514eb6 xwininfo: upgrade to 1.1.3 41eecdc xf86-video-intel: upgrade to 2.21.9 f934f38 xdpyinfo: upgrade to 1.3.1 8fef8f8 xkeyboard-config: upgrade to 2.9 ab6c91b xf86-input-synaptics: upgrade to 1.7.1 9013f81 libnewt: split python module into libnewt-python 670c651 latencytop: Deprecate tracing_enabled for tracing_on 70cf6ee util-linux: update to 2.23.1 35447ea wpa-supplicant: Enable EXTRA_CFLAGS 9458d72 maintainers: Added missing recipes with maintainers 10681b5 upstream_tracking: Update Manual recipes 13bd8ad tune-cortexa*.inc: fix tunings for cortex a5, a7, a8, a9, a15 machines. b87429f bitbake: Add missing file that went out of sync 35ea198 buildtools-tarball: add difflib and pprint python modules ad276d7 sanity.bbclass: non-zero status means that we need -march. 8c8483d packagegroup-base: s/dosfsprogs/dosfstools/ 25ac4cf systemd: don't install quotaon.service twice 126844d copyleft_compliance: set 'dirs' flag on task 00c8834 sstate.bbclass: fetch archive+siginfo in a single pstaging_fetch fbf6438 sstate.bbclass: kill MIRRORS and FILESPATH to speed up fetching 29f8701 copyleft_compliance: handle localpaths ending with '/' 9dba0eb gconf: inherit gettext b1f2f49 avahi: inherit python classes, use PACKAGECONFIG 8331d0a license.bbclass: include all licenses in the manifest e525ef9 packagegroup-core-tools-profile: don't exclude mips d4a7820 insane.bbclass: quiet package errors not in *_QA 9db09a6 packagegroup-base-vfat: include dosfsprogs 4ecc2bf connman: use PACKAGECONFIG for WISPr support f302eb4 mesa: remove unrecognized configure options 7a43480 glib-2.0: drop Makefile.in hunks from patch 1f99e74 handle two-word commands with tmux 69a6023 librsvg: configure needs a native gdk-pixbuf binary d5f593c rpm: replace rpm-postinsts dependency with run-postinsts 75070d7 package_rpm.bbclass: handle pre/post remove scriptlets e4a136a rootfs_rpm.bbclass: switch to using run-postinsts 76cd8a7 run-postinsts: make it generic 98ce0b7 core-image-minimal: do not remove packaging files in the rootfs postprocess 1ce182e image.bbclass: remove unneeded files from the image b11f818 rootfs_*.bbclass: add some helper functions fdb5c12 qt4: fix QMAKE_QT_CONFIG being overwritten with empty value 147b8dd qt4-native: update configure paths to match target 027358f classes/qmake_base: update .pro hack 1319e17 classes/qmake2: export OE_QMAKE_LCONVERT and OE_QMAKE_XMLPATTERNS 9496d9a qt4-native: build lconvert and xmlpatterns 407bce9 libxml2: added python dependency to nativesdk f5c6663 classes/buildhistory: split SDK data by IMAGE_NAME 7c1a555 sudo : upgrade to 1.8.6p8 5531635 openssh : upgrade to 6.2p2 242d5fb cracklib: fix QA warning about unsafe references in binaries eac6763 qt4-x11-free: update HOMEPAGE b48b238 qt4-native: update HOMEPAGE aca93b6 qt4-embedded: update HOMEPAGE 99d5c53 qt-mobility: update HOMEPAGE e7d63bf nativesdk-qt4-tools.inc: update HOMEPAGE 9fcf4e9 trace-cmd: backport three patches b4ad8ff PPP: add default configuration file and fix hard-coded CFLAGS e486242 chkconfig: fix QA warning about unsafe references in binaries 95e23df socat: enable termios a3bf47a ddimage: fix incompatibility with dash 6607979 init-live.sh: fix media automount failed after booting from usb-drive 9682f16 gnomebase.bbclass: add support for archive name different from BPN 706ce35 gnomebase.bbclass: implement gnome_verdir() using trim_version() c7ebd7e gstreamer: added GStreamer 1.0 recipes 96b144a tar: don't mv tar for nativesdk 74d3a1a buildtools-tarball: Add json, unittest and compression python module packages 5128f0a bitbake: bitbake-layers: fix for move of data object to cooker 8bdbb71 bitbake: tinfoil: fix for move of data attribute to cooker 7bf5c38 base/useradd/sstate: Ensure do_package setscene has correct fakeroot dependencies be78283 bitbake: lib/bb/cache.py: invalidate cache when file checksum entry no longer exists 3e94563 bitbake: cooker: Split data from configuration 2b2b3e8 python-external-tarball: Improve DESCRIPTION/SUMMARY 950b505 package_*.bbclass: Drop fakeroot from setscene calls 58feddb python-external-tarball: Modernise and rename 80d6316 git/tar/findutils: Add nativesdk versions 551a996 libxi: Add libxfixes as dependency 13b8798d self-hosted: Add libssp libraries to packagegroup/image d3e72d0 zlib: update to upstream version 1.2.8 bff43fb tune-cortexa5.inc: Add tune file for cortex-a5 cb21024 tune-cortexa.inc: create a common include for cortex-a armv7a tuning 03fdd2c libpcap: upgrade to 1.4.0 d3e982a iptables: upgrade to 1.4.19.1 dfd0985 kernel.bbclass: Fix link for modules-${MACHINE}.tgz 1b22849 image_types.bbclass: add ubifs to IMAGE_TYPES 61ded4c python: enable IPv6 based on DISTRO_FEATURES 5a0f74a multilib.bbclass: fix the PACKAGEFUNCS_append 829d6bf insane/package: refactor packaging sanity tests b4371dd defaultsetup.conf: remove INHERIT_INSANE 43713b9 insane/package: let package.bbclass inherit insane.bbclass 7a5a755 connman: update to 1.15 2a739ad weston: update to 1.1.0 7435185 wayland: update to 1.1.0 f8f1814 mesa: update git recipe to 9.1.3 release 7aa250c mesa: upgrade to 9.1.3 78e8ce4 pixman: update to upstream version 0.30.0 2e2633a icu: update to upstream version 51.2 81c3782 test_utils: import functions directly for conciseness a32d16c test-utils: handle import bb failing and skip the test 0d98083 matchbox-terminal: Update to git HEAD 452bca253492a97a587f440289b9ab27d217353e d832539 grub-0.97: fix the objcopy error in configure cf2c4b0 bdwgc: enable full version name in recipe name 2ee0717 subversion: upgraded to 1.7.10 3d2b83a libpng : upgrade to 1.6.2 c99fd8d gdk-pixbuf: upgrade to 2.28.1 271ea8b weston: clean up and add comments fcbf865 weston: add a weston-launch group 1377d9d weston: install the examples into weston-examples a9f1a78 core-image-weston: basic image that boots directly to Weston 6a27d8b weston-init: basic init script to start Weston on KMS/DRM ef2a7bc gstreamer: moved LIBV out of gst-plugins-package.inc file 32c7252 gstreamer: fixed -meta package rdepends 8ec642b libpcre: upgraded to 8.33 26133c2 diffstat: upgraded to 1.57 31073bc linuxdoc-tools-native : upgrade to 0.9.69 bccc74c zlib: update to upstream version 1.2.8 0ac7a18 bitbake: bitbake: Improve remote server handling f549cdd bitbake: xmlrpc: Allow server to remain memory resident 748e3c1 bitbake: bitbake server: create common server infrastructure a62aed4 lrzsz: check locale.h in configure 2aed898 gcc: add build directory to include directories 807476e gcc: Workaround for compiler flag mismatch cd906fa util-linux: Add support for older hosts a0219d8 udev: do not recommend pciutils/usbutils ids 697f749 bitbake: Drop bitbake-runtask (removed upstream a while ago) 158d9d8 alsa-tools: Fix configure race 1808552 autotools.bbclass: Factor out aclocal copying function 96edb20 yocto_kernel: modify the msg when adding duplicate items c252ed9 xf86-video-modesetting: backport fix for graphics corruption 59bb8e1 makedevs: Make count actually behave as a count for device blocks c81ecf9 sanity.bbclass: make sure python is a full install e85876d cogl: add missing xrandr dependency 50fae52 sstate.bbclass: fixup extra hardcoded paths 9ba5ced classes/buildhistory: record removals in buildhistory directory 6fa824e gdb: don't build with LZMA 14010b4 binutils: fix compile error of complex expressions before @l/@h 66dfd49 apt-native: Fix incorrect checksums 73dae11 rpm: remove .real hacks in argument parsing ea281d3 bitbake: Added distroy signal to information dialogs b5255bb bitbake: lib/bb/cache.py: Change debugging note to a debug message 8144e16 findutils: backport more fixes for documentation build errors aeead1f dev-manual, ref-manual, poky.ent: Fixed broken Release Note scheme 2944e07 ref-manual: Partial draft for the new Wayland support section. afc4aec ref-manual: Added new THISDIR variable and fixed some minor issues. 4f41a86 dev-manual, kernel-manual: Added links to THISDIR variable 36828be tools: Bumped version to 1.5 59e4eb0 ref-manual: Updated note for FILESEXTRAPATHS variable. e230049 dev-manual: Updated wording about Git 00c3a84 dpkg: Be deterministic about lzma dependency 7333045 linux-yocto: Drop 3.2 kernel bbappend for 3.2 kernel removal 11286b3 poky-lsb: make NFS kernel server support specific to linux-yocto 5a2e4f5 poky.conf: add qemumips64 preferred version d8358a0 linux-yocto: remove 3.2 kernel recipes 696be94 kern-tools: expand kernel features that point to a directory name eb87a30 qemu*: restrict NFSD to linux-yocto only a43e43f linux-yocto: v3.8.13 and v3.4.46 254b932 file: remove obsolete version check patch b98129c nfs-utils: obey 'tcp-wrappers' PACKAGECONFIG 291a3ad systemd: obey 'tcp-wrappers' PACKAGECONFIG 25bf08a portmap: obey 'tcp-wrappers' PACKAGECONFIG d63a32b quota: obey 'tcp-wrappers' PACKAGECONFIG eb38c40 rpcbind: obey 'tcp-wrappers' PACKAGECONFIG 647db80 hicolor-icon-theme: keep inherited dependencies and switch to gnomebase 3aaa4f7 utils.bbclass: ensure $0 is correct in wrapper scripts 29049da atk: upgrade to 2.8 ea886ed openssl: fix documentation build errors with Perl 5.18 pod2man d66ecfa cogl: remove documentation hacks 7e3eb69 clutter: remove documentation hacks 4c6939f python-smartpm: add gettext-native to DEPENDS 7285246 yocto_kernel: check current items before add a new one f929c3b upstream_tracking.inc: added no upgrade reason for python-pygobject e2a8080 portmap: /etc/init.d/portmap restart complains "command not found" 0ef93c5 libarchive: Fix build dependencies ba319bb makedevs: Avoid unnecessary timestamp calculation c8bfe84 makedevs: Make the mode number readable in debug messages 4844884 makedevs: Correct the device number calculation for blocks of devices 6804eec makedevs: Create blocks of devices with the correct uid/gid 4128b21 ncurses: Fix problems expanding ncurses-libtinfo when in IMAGE_INSTALL 8c5bbbe libnl: fix two parentheses bugs in lib/cache_mngr.c file 2a82659 grep: fix for CVE-2012-5667 3f561e9 initscripts: let status return 0 when proc is running well 35c9b6e dbus-glib: use BPN instead of PN f81b8fc acpid: modify CFLAGS 8874490 libxpm: inherit gettext d4e632a guile: added runtime dependency on glibc-gconv-iso8859-1 c7473c8 librsvg: add sstate dependencies so that the SVG loader works at staging time 2ab5dfc pixbufcache: add more documentation fcfba0d utils: add trim_version() function f5d0f6b python-scons-native: fix invoking scons failed on Fedora-17 f1b8e24 qt4: fix path to demos documentation 7fafe05 powerpc64-linux: Update cached autoconf value for apr on powerpc64 ff9573f runqemu: Replaced "stty sane" with saved stty settings e964815 pkg-config: remove obsolete AM_PROG_CC_STDC a09c5e4 patch: use PACKAGECONFIG to ensure correct dependency for xattr e69e756 systemd: add udev-utils dependency for udev-hwdb 9da8321 bitbake: prserv: Unbreak after bb.server changes eeac1e9 bitbake: cookerdata: Fix tinfoil by adding missinge extra_caches default d0861b7 bitbake: bitbake: xmlrpc remote server 0fc3a1e bitbake: bitbake: xmlrpc transport has identification token b6b3009 bitbake: bitbake: move start server code in a separate function e6a1b33 bitbake: bitbake: move extra cache collection out of cooker e09a159 bitbake: bitbake: retrieve the entire ui module in launcher 52d0512 bitbake: fetch2: Fix missing function call 3fb25ef bitbake: server/bitbake: Remove launchUI method e118ee3 bitbake: server: Remove none server 5cb59cc yocto-bsp: re-enable AutoAddDevices in xorg.conf for generated BSPs 2f06147 xserver-xf86-config: re-enable AutoAddDevices for beagleboard 9122ba8 bind: add ipv6 support 4eb49c0 util-linux: Add ability to compile with nativesdk 7dcb445 libpam: Avoid wildcards in the SRC_URI 84de4f5 cmake.bbclass: modify construction of compiler flags e4967e6 dpkg-native: Fix native perl path 1515425 guile: don't search for libreadline in host libdir c0b6f9b qmake_base.bbclass: Add linux-gnun32-oe-g++ to QMAKESPEC f543969 siteinfo.bbclass: Add mips64 common siteinfo aa6408b consolekit: remove /var/run from package 9623ccf resolvconf: remove /var/volatile/run/resolvconf/interface from package 4bdb3c5 cups: remove /var/run from package as cupsd will populate it on startup 2aa350a bind: remove empty /var/run directory cd19f76 udev: do not create symbolic link from /run to /var/run 90b4d3d udev: do not create /var/volatile/run in init script 526ca27 systemd: remove old /var/run workarounds 93107a1 systemd: do not create symbolic link from /run to /var/run 6d897ea systemd: do not create /var/volatile/run and /var/volatile/lock ea647cd base-files: add /run directory from FHS 3 draft specification beea111 findutils: backport fixes for documentation build errors 5a607c1 cracklib: Allow byte order patch to work on older Linux hosts 0d2211a gdb-cross-canadian: use correct exec-prefix path for python 40187e5 binutils: add two AArch64 related backports to 2.23.2 7ba3615 libdrm: fix packaging after last upgrade dad8709 freetype: update to upstream version 2.4.12 3426ee8 curl: update to upstream version 7.30.0 6c8dbc2 gtk+: update to upstream version 2.24.18 1b2e70c harfbuzz: update to upstream version 0.9.17 493556b autogen-native: upgraded to 5.17.4 5fa3649 python-dbus: upgraded to 1.2.0 6ff3a26 git: upgraded to 1.8.3 e1e9036 settings-daemon: Update to git HEAD 9a99528b02255450db81176abd9bbcc1dab9a4c1 c880bd0 libtasn1: Updated from 2.14 to 3.3 b752e18 apt: Updated from 0.9.7.8 to 0.9.8.1 0116e82 systemd: fix ordering for machineid and run-postinsts services 676fd3f dropbear: a fix for hang in dropbearkey, built for x32 0d32c34 linux-firmware: Split 'ar3k' in a linux-firmware-ar3k package e0d79a6 systemd: forward port uclibc patches to 204 b08958b rm_work.bbclass: ignore failure for removing pseudo folder 7bb6021 systemd: update to 204 657e464 populate-volatile.sh: remove repeated leading slashes in TNAME 45bf114 dbus: remove /var/run from package as it is created on startup 3921415 binutils: the cat should always succeed when building config.cache efbb9f8 wget: disable uuid by default 2129c5d cross: Clear do_populate_sysroot[stamp-extra-info] so that stamps are not MACHINE specific 4380876 busybox: backport sulogin empty root password fix 8f5abd2 qemu: Updated from 1.4.0 to 1.4.1 930c541 sqlite3: update to 3.7.17 e2aa060 kernel: Remove unnecessary cd and rm, fix MODULE_TARBALL_SYMLINK_NAME creation 70d4867 patch: diable xattr as default d1a682d connman: upgrade to 1.14 73b7528 perl-tests: convert to ptest ab31f43 sudo: set CFLAGS for build mksigname and mksiglist b5044c3 clutter-gst: removed no longer required configure fragment b7caa5e clutter: further improvements 32b4a4a clutter.bbclass: removed unused function 7c178fc cogl: further improvements 4462df6 runqemu: fix networking issues 40bc4ed resolvconf: Update to 1.72 24380e2 cmake: Update to 2.8.11 26147b2 mc: Update to 4.8.8 f533a38 libnl: Update to 3.2.22 1f2436e mklibs: Update to 0.1.37 54cf30d desktop-file-utils: Update to 0.21 fd0d4d7 gnupg: Update to 2.0.20 e10352e xserver-xorg: enable xvfb 52c9f66 SLiRP support in runqemu 600f4e3 kernel.bbclass: Add dependency on binutils 004439b glib-networking: update to 2.36.2 e6e29a7 glib-2.0: update to 2.36.2 fc7db05 librsvg: add sstate dependencies so that the SVG loader works at staging time b6212cf librsvg: small cleanups cf20613 librsvg: clean up native depends 30a3cfe librsvg: add more PACKAGECONFIG options db95e61 gdk-pixbuf: remove native loader cache generation, use the class 204b92c pixbufcache: update the loader cache when installing natively bd85102 util-linux: Update to 2.23 fe715c4 bitbake: cooker/cookerdata: Fix up event handling for hob 3b4b782 bitbake: build: Avoid empty promises 72accaf bitbake: bitbake-layers: fix show-appends and flatten for recent cooker changes fa4b1fa bitbake: cooker/cookerdata: Improve configuration object handling 7cf87fc bitbake: fetch2: Fix missing assignment 507d5cc bitbake: cooker/cookerdata/event: Improve class handlers management ea34691 bitbake: cooker/cookerdata/utils: Improve context management b9bd05b bitbake: event: Drop Handled/NotHandled status return values 0130b4c bitbake: cooker.py: Remove global scope class event handlers 8bef99d bitbake: methodpool: Retire it, remove global method scope 3c5b9cf bitbake: methodpool: Conflicting methodnames should be a fatal error 56a2b28 sanity.bbclass: Drop dubious print e819772 buildhistory: Sync with bitbake changes f7b639e rpm-postinsts.bb: enable postinst logging 0bf2c0a opkg: modify the run-postinst script to enable postinst logging 45c37d6 dpkg: modify the run-postinst script to enable postinst logging d837fb3 image.bbclass: add postinst_enable_logging 2108951 ref-manual: Added xmlto and dblatex packages for docs 68deb6c kernel-dev: Updates to "Creating the Append File" section. b47c993 ref-manual: Added more detail to note for FILESEXTRAPATHS use. 97c48db kernel-dev: Updated changing the configuration section. 2998ba7 ref-manual: Added Ubuntu 12.04 (LTS) to list of supported distros. 32ba3c9 documentation/poky-ent: Updated to essential packages OpenSUSE 75fa205 ref-manual: Updated supported distros list ea114c0 dev-manual: Edits to removing package management requirements 9910776 dev-manual: Applied review comments for eliminating packaging req. b637518 dev-manual: Created new section to remove packaging requirements 3fd21c7 documentation: Updated poky.ent to use 1.5 as YOCTO_DOC_VERSION. 91ec8a8 documentation: Updates to properly build the 1.5 manuals 98d2211 documentation: Set up the 1.4.1 manual set. 2e6ca2c bsp-guide: Fixed syntax error in BBLAYERS example. 514176c dev-manual, ref-manual: Minor edits suggested by Bill Traynor 818ec77 bsp-guide, ref-manual: Various fixes from Robert P. J. Day review. caa6e07 dev-manual, bsp-guide: Updates for init-ifupdown change. 06af7c1 dev-manual: Review edits applied to selecting init manager section. d95a27b scripts/bitbake: Handle the case where git isn't installed cleanly 70e5a74 task.bbclass: Drop deprecated class e0ffc1f update-alternatives: Drop deprecated code, update to show error message 3216f00 bitbake: hob: Table sorting criteria should not change after deselecting recipes/packages da34a8d bitbake: hob: apply a fade out animation when deselecting from tables 25182cd bitbake: cookerdata: rename _parse to parse_config_file a4bf490 bitbake: tinfoil: fix for changes to cooker config structure 25905ae bitbake: bitbake-layers: fix for move of calc_bbfile_priority within cooker 49f1278 bitbake: command: Fix function module reference after code rearrangement 0c0bb02 bitbake: runqueue.py: Ensure export flag is set for fakeroot environment variables ba707d0 bitbake: bitbake/cookerdata: Explicitly specify cooker configuration options 26d1999 bitbake: cooker: Split configuration parsing code into cookerdata f0930c8 bitbake: cooker: Move commandline parsing back into the UI/cookerdata f242f50 bitbake: bitbake: Create cookerdata splitting config from cooker and bin/bitbake 308ae92 bitbake: bin/bitbake: Improve exception handling 77fc40a bitbake: fetch2: Shorten long srcrevs d228f9d bitbake: fetch2/git: Clean up sortable_revision 6088213 bitbake: data: Ensure dependencies of subfunctions are accounted for 176a46b packagegroup-core-clutter: use clutter-1.0 packages 37619d9 mx: Update to improved naming scheme 59cea9c clutter-gtk: Replace with 1.4.2 version e77a014 clutter-gst: Replace with 1.6.0 version bcb0616 clutter: Replace with 1.14.4 version e847bd9 cogl: Replace with 1.14.0 version 525771c clutter.bbclass: helper class for clutter and friends 6271ac3 zlib: put shared libraries in base_libdir f6d4438 cdrtools-native : upgrade to 3.00 25e90a4 bind: use /var/run/named instead of /var/run/bind/run 5c43ee2 opkg: remove unnecessary extra leading slash in run-postinsts b86fdc0 nfs-utils : upgrade to 1.2.8 503c669 qt: fix warning -Wunused-local-typedefs introduced by gcc 4.8 0948a23 image_types.bbclass: remove the old images 995c196 image_types.bbclass: remove the old images 350c36f bitbake: test/fetch: Allow the conditional network tests to work under python 2.6 c8ab3b0 bitbake: test/fetch: Split the network tests from the rest of the fetcher tests 4d3a53f bitbake: fetch2/utils: Clean up imports 0a52bdf bitbake: tests/fetch: Allow to work on python 2.6 ad35569 python-pygobject-native: fix build dependency on python-native f371626 Revert "initramfs-live-install*: fix the "install" boot option" 6de55b6 rpm-postinst: remove un-needed RDEPENDS on base-files 7c0e7c2 libcroco: allow native builds c362bda gtk+3: disable Xinerama support a3e31a3 linux-yocto/3.8: set qemumips64 SRCREVs a5f4e5f qemuimage-testlib: change default directory for target tests c3fabef qemuimage-testlib: pass optional timeout to ssh function 2706948 qemuimage-testlib: add support for extra arguments passed to runqemu 046b0e1 tcf-agent: Use common two-digit sequence numbers for init script links ad24f27 glib-2.0: drop dependency on python-argparse e3a5e8e connman: replace hardcoded path in init script and systemd service ec89446 systemd: make udev-hwdb postinstall run on host 39537e0 busybox-mdev: Startup at level S03 instead of S06 360bfe9 toolchain-scripts.bbclass:Add CROSS_COMPILE variable to environment-setup file 9fa1590 connman: Add PPTP support 6707538 connman: Add L2TP support 951aa13 connman: Add vpnc support 48d0f52 connman: Add OpenVPN support 7c41d83 connman: Add VPN support ca64333 gpgme: Updated from 1.4.0 to 1.4.1 c066df8 pixman: Update from 0.29.2 to 0.29.4 996326c ethtool: Updated from 3.8 to 3.9 1317558 libfontenc: Updated from 1.1.1 to 1.1.2 c4b7356 json-glib: updated from 0.15.2 to 0.16.0 f070d03 libxi: updated from 1.7 to 1.7.1 51c3e9d bbclass: bb.fatal() clean up bfaf6c5 xf86-video-modesetting: upgrade to 0.7.0 9584808 machine/qemumips64: Add machine definition db66872 binutils: Add broadcom XLP support a4c4f38 linux-yocto: add qemumips64 compatibility 4520fec runqemu: Replace use of ifconfig with ip f259554 kern-tools: refresh and make dash compliant c50b1fb pkgconfig: Update to 0.28 f5b103f boot-directdisk: Scope HDDDIR and HDDIMG variables to avoid conflicts badd718 syslinux: Update to 4.06 fb89bb3 bitbake.conf: define empty EXTRA_IMAGE_FEATURES before using them 941584f cachedpath.py: global name 'error' is not defined bd27cca bitbake: bin/bitbake: Fix queue import for pyhton 2 and 3 0c8173d image.bbclass: Add package-management image feature to validitems 4f07050 bitbake: hob: fix for XMLRPC mode f0457e5 scripts/hob: enable additional arguments 5109ec9 poky.conf: Adjust DISTRO vars post 1.4 release efb8a46 package.bbclass: Fix sources contents a9f5bf0 sanity.bbclass: Attach the missing value to a format string. 96b4289 bitbake: cooker/bitbake-layers/tinfoil: Fix recipecache typo f7afeeb bitbake: bitbake-layers/tinfoil: Catch up with status -> recpiecache rename fe17af2 image-vmdk.bbclass: disable the NOISO = "1" 4cda8d7 libdrm: upgrade to 2.4.44 6491923 xproto: upgrade to 7.0.24 ea8bccc xf86-input-evdev: upgrade to 2.8.0 9265ce0 xf86-input-synaptics: upgrade to 1.7.0 92abdd5 xf86-input-mouse: upgrade to 1.9.0 06aaba7 xf86-input-keyboard: upgrade to 1.7.0 e41f95c xf86-video-intel: upgrade to 2.21.6 76a90f1 xf86-video-vmware: upgrade to 13.0.1 ea89950 Upstream-Status: Correct Capitalization 1810369 classes/core-image: drop apps-console-core IMAGE_FEATURES support d63c8a1 classes/image: show an error on invalid IMAGE_FEATURES 7b3bf9a sbc: upgrade to 1.1 00aa0b3 image-vmdk: Fix error recreating symbolic link c9e48bc gmp: updated to 5.1.1 092cc94 pciutils: updated from 3.1.10 to 3.2. 15e7b77 glib-2.0: upgrade to 2.36.1 cac01c0 tcl: upgraded to 8.6.0 02b0763 gdb-cross-canadian: set everything in gdb-cross-canadian.inc 2d912e2 gdb: add 7.6 version 01985fc mpfr: upgraded to 3.1.2 7a3ddc1 byacc: upgraded to 20130304 0d8b27b autogen: upgraded to 5.17.3 2e5617a iproute2: upgrade to 3.9.0 c11ce6d kexec-tools: upgraded to 2.0.4 f31c86e libtool-nativesdk: rename to nativesdk-libtool d67e9bc subversion: upgraded to 1.7.9 23e850c libxml2: Update to 2.9.1 c13fc38 kconfig-frontends: Update to 3.9.0 8a35037 help2man: Update to 1.41.2 94c80c8 msmtp: Update to 1.4.31 dce2f05 mklibs: Update to 0.1.35 74d5aa7 tzcode: Update to 2013c dd957f6 libcheck: Update to 0.9.10 6495b6e libgcrypt: Update to 1.5.2 c17268e libomxil (0.9.3): drop unecessary dependencies 468c6f8 neard: Split recipe to two parts ea65bb4 iptables: upgrade to 1.4.18 37c284c bison: upgraded to 2.7.1 097e35d git: upgrated to 1.8.2.2 d556ca2 python-scons: upgraded to 2.3.0 821d036 libmpc: upgraded to 1.0.1 c4c053b librsvg: update gdk-pixbuf loader cache when staging native package 97490c4 bitbake.conf: export STRINGS 6ca781b tcp-wrappers: fix indentation 7802e5c tcp-wrappers: Rename conflicting variable STRINGS in Makefile cef2446 imagetest-qemu.bbclass, qemuimage-testlib: add support for more FSTYPES 2c2dd5b runqemu-internal: support for ext2 and ext4 not only ext3 bc02e97 scripts/runqemu: add ext4 to the list of extracted extensions 5ea4d81 bitbake: cooker: Rename status variable to recipecache 9ed7cd1 bitbake: cooker: Rename confusing buildDepgraph task to handlePrefProviders 8c7a23e bitbake: cooker: Drop pointless variables c035bf9 bitbake: cooker.py: Drop confusing updateCache calls d8cf6e9 bitbake: cooker: Remove pointless repeated import 06aaf0d bitbake: cooker: Fix get_bbfiles() 51e54ed bitbake: cooker: Separate out collections handling code into its own class 6ebdeb4 bitbake: cooker: Drop unused variables from collect_bbfiles() 88a7b04 bitbake: pysh: Say what kind of token isn't implemented d98419a bitbake: hob: assure consistency for image size label 9c60292 bitbake: hob: clicking on "cancel" should reset table sorting to default 24f0608 bitbake: hob: "Brought in by" sorting should take into account the (+#) information 39d3409 bitbake: hob: sort alphabetically results in groups of recipes/packages 6dab4d0 bitbake: Updated information in tooltips b34cf7e rpm: ensure __mkdir_p matches __mkdir 2f7c588 python: remove the default optimization a86b006 bitbake.conf: update way to set default ROOT_HOME 15aec44 classes/insane: add check for PN in OVERRIDES e42f0ac classes/buildhistory: track contents of selected files in images 68f441e buildhistory-diff: improve bad command-line argument handling 843e422 boot-directdisk/bootimg/image-vmdk: remove more nostamps for image generation 642afb4 maintainers.inc: update alsa-utils-alsaconf pkg maintainer 47f121e maintainers.inc: update neard pkg maintainer 8d7d01d poky.conf: update SANITY_TESTED_DISTROS 3bae243 kernel.bbclass: make FILES package-specific e5d077d bitbake: lib: print is a function in moderm python, covert remaining users 3e86a6c bitbake: lib: Use modern expcetion syntax a823c88 bitbake: prserv: Drop StandardError usage 9b91357 bitbake: siggen: Add missing error message parameter c6c341a bitbake: providers: Remove pointless lambda sort function 5c3944c bitbake: cooker: Remove deprecated operator 4a081b5 bitbake: lib: Clean up various file access syntax 7f2bf08 eglibc/machine-sdk: Drop SDK_GLIBC_ADDONS f1a0635 imagetest-qemu: Fix indentation 566628d class/lib: Fix up various file access methods d2ef952 buildstats: Drop spurious open() call 4a9daa9 useradd: Use modern join syntax 29f6ca7 powertop: inherit gettext b54339d classes/lib: Fix getcmdstatus breakage d529c11 bitbake: git: remove symling before updating mirror tarball fd8dcd7 bitbake: bin/bitbake: add a check for /dev/shm existing a189ec4 bitbake: utils: Improve better_compile error message bc95dde bitbake: utils: Improve better_exec traceback handling f58e82b bitbake: bin/bitbake: Ensure early errors are shown to the user f81de1d bitbake.conf: Use casting to ensure valid comparision 8aa498d base.bbclass: Drop unused/obsolete import 534325f image/kernel-module-split/eglibc-ld.inc: Remove has_key() usage e16faa5 sanity/patch.py: Remove commands module usage e1b5647 insane: Open file in binary mode feeffdb meta/lib/oe: Replace StandardError with Exception 3512f79 classes/lib: Update to use print as a function call caa8b29 metadata_scm: Replace deprecated operator 9ebcb98 sanity.bbclass: Use open(), not file() c3d18af classes/recipes/lib: Fix various python whitespace issues db8217f classes: Use modern exception raising syntax e0bd393 buildstats: Update to ensure files are closed 2ac4f8b clases/lib: Use modern exception syntax 00052fe core-image-minimal-initramfs: Remove odd quote characters 814d89b xserver-xorg: Add xkbcomp to RRECOMMENDS 40fe7ad gcc-configure-cross.inc: Remove info generation 19f71dd bootimg.bbclass: add comment for NOHDD 77d00c5 gnutls: upgrade to 2.12.23 1abffd2 oprofileui(-server): upgraded to GIT revision f168b8bf b3a745c qt4: remove trailing slash from prefix 452f6b2 gdb: tabs -> spaces e125870 gdb: AArch64 lacks lttng support 94d31b0 poky-lsb: Ensure kernel nfsd module is enabled a50ffe6 craklib:fix testnum and teststr failed a28959e cracklib: fix default dictionary should be generated for target endianness 48823c6 linux-yocto/3.8: udpate to v3.8.11 0768191 linux-yocto/3.4: update to v3.4.43, ltsi-65311d8 and v3.4.42-rt56 b3dc63c kern-tools: anchor and delimit regexs 8032447 linux-yocto/3.4: iwlwifi, ext4, brtfs warning and -rt fixes b5d5b1b dmidecode: fix fetch path to use BP 1e7b9ef gcc-configure-target: Add --enable-dependency-tracking to EXTRA_OECONF 26923a4 tcmode-default.inc: Pin binutils to 2.23.2 483c900 binutils: backport whitespace fix edcae40 binutils: Upgrade 2.23.1 -> 2.23.2 4bf8253 guile: Update to 2.0.9 abb69cd qemu: Ensure kernel nfsd module is enabled d8afc32 gdb-cross: gdb-cross requires readline-native 5dde326 libgnome-keyring: remove, nothing in oe-core uses this anymore b3528c6 gnome-keyring: remove, nothing uses it in oe-core b86f89f3 libsoup: upgrade to 2.42.1 58b8401 packagegroup-core-x11-sato: Add udev-extraconf to maintain compatibility 3f55534 packagegroup-core-lsb: Add udev-extraconf for LSB compatibility a1cd3aa udev: do not recommend udev-extraconf 234e671 systemd: do not recommend udev-extraconf for udev 3e0455f qemux86: disable paravirt guest in linux 3.4, causes test failures 9895d2c maintainers.inc: update sbc pkg maintainer 538dc8d upstream_tracking.inc: minicom check update 3438927 archive-*-source.bbclass: handle dependency in anonymous function 10219f0 cronie: Convert crontab to a system user 84d45db grub-efi-native: Cleanup whitespace ec587c5 neard: Rename the recipe as we are already in 0.10 8fb24e1 buildhistory: change default BUILDHISTORY_DIR to TOPDIR 67ed18e bitbake: fetch2/svn: Do not save authentication 7709342 bitbake: bitbake: remove stack trace depth limitation 6db2025 bitbake: data_smart.py: add some internal bitbake variables to configuration hash a4cc40c bitbake: prserv/cooker: Handle PRService errors cleanly 8779ebc bitbake: goggle: fix invalid error check c88bfe2 bitbake: Update to version 1.19.0 for master 7464637 ia32-base.inc: remove inapropriate grub dependency 5874564 dmidecode: Add dmidecode to dev tools 3681c89 gcc-4.7: fix gcc ICE when building with gcc-4.8 53276bc fs-perms.txt: Don't tinker with file modes in /usr/src/debug 3dedd8f gcc-runtime: Avoid error when trying to remove nonexistent directories a8eca39 archive-*-source.bbclass: have do_dumpdata_create_diff_gz task run before do_rootfs 140ba62 mesa-demos: Use PACKAGECONFIG to enable/disable features bd35213 image_types: fix default location of kernel when generating elf images db92131 image.bbclass: Don't mark do_rootfs and do_build as nostamp 58412ca classes/image: allow complementary package globs to be extended 61823f6 path.py: Deal with race issue c09866b mkefidisk: Unmount after partitioning 8d3285f Make toolchain output name using SDK_VERSION instead of DISTRO_VERSION to be consistent [yocto #2342] 55d77f5 qt4: Fix sundry erroneous assumptions about ${prefix} 82a55f7 dpkg: Ensure target packages don't reference perlnative c6a769e adt-installer: do not dereference symlinks when relocating b899df8 netbase: upgrade to 5.1 6809549 systemd-serialgetty: change to handle SERIAL_CONSOLES 4ea0449 shadow-securetty: change to handle SERIAL_CONSOLES c58cfce sysvinit-inittab: remove specific handling of SERIAL_CONSOLE c09809f bitbake.conf: set SERIAL_CONSOLES from SERIAL_CONSOLE by default b4aa6d3 sysvinit-inittab: ensure unique label for SERIAL_CONSOLES entries 2c5dbc9 xkeyboard-config: Remove xkbcomp from RDEPENDS_${PN} c51e8b4 sstate.bbclass: make hard links for staging files 3dfbedb tune-thumb.inc: Remove, replaced by arm/feature-arm-thumb.inc c42cc8f neard: add systemd unit file 9dae6e7 sudo: disable SSP for auxiliary build tools mksiglist and mksigname 556acba kernel 3.8: routerstationpro: use KERNEL_IMAGE_MAXSIZE to test the image 3542879 neard: re-order recipe so the statement order is logical eb9e50d menu-cache: Fix segmentation fault 2346b46 distro_alias: update alias information. 17800b5 libpcap: Fix up patches ac5b5be alsa-utils: Move alsaconf to its own recipe 9a3d8c2 connman: add PACKAGECONFIG options d36cc47 matchbox-panel-2: bump srcrev to fix compile warnings 4a3d4b8 Pass the mlprefix to postinst_intercept script 1a438af scripts/postinst-intercepts: create separete hooks for multilib cf76b42 Revert "qemu.bbclass: Use the correct qemu binary in multilib cases" 8f32a0f pango: fix postinstall when using multilib fe24000 qemuwrapper: use fallback in case the ELF binary is wrong 18ea08c build-appliance: Add version info 559dd2d glib-networking: Update to 2.36 3040cfc glib-2.0: Update to 2.36 f1771b5 mesa-demos: Update to 8.1.0 d5bc211 glew: fix generation of glew.pc needed by mesa-demos 7e83fd7 libxkbcommon: Update to 0.3.0 a08dd5d pkgconfig: Move patches in prep for 0.28 update 2f3e9b3 libgcrypt: Update to 1.5.1 cf6be57 nspr: Update to 4.9.6 0440417 libffi: Update to 3.0.13 8507e78 file: Update to 5.14 b500994 dpkg: Update to 1.16.10 2b5653b resolvconf: Update to 1.71 75de611 dhcp: Update to 4.2.5-P1 791653f sqlite: Update to 3071602 2e0ed89 sysstat: Update to 10.1.5 2691ac1 lsbinitscripts: Update to 9.46 1831cbb less: Update to 458 5cb01c1 connman: update to 1.13 c67cdf5 glib: Add --disable-man to configure arguments f18ba44 libpcre: Make readline dependency conditional on PACKAGECONFIG[pcretest-readline] b48db72 gettext: Make ncurses dependency conditional on PACKAGECONFIG[msgcat-curses] c296855 gdb: Disable hard-coding of library rpaths 735656b scripts/contrib/build-perf-test.sh: change the global results format f58228f scripts/contrib/build-perf-test.sh: skip network sanity tests 04d552f scripts/contrib/build-perf-test.sh: use the same identation everywhere eff37ec bitbake.conf: Don't add ${PN} to RRECOMMENDS_${PN}-dbg c2835ac qemuimage-testlib-pythonhelper: Make the process detection more strict 213d204 dropbear: update to 2013.58 f94519c apt: update to 0.9.7.8 60589dd conf/machine: use .= instead of += in TUNE_CCARGS 46b021c eglibc: Avoid "installed but not shipped" warning for ld.so.conf 0825378 webkit-gtk: remove gnome-keyring dependency ac273d6 gdb-cross: Adjust ${datadir} to avoid file conflicts in sysroot f2f8356 rpm: change arch scoring items 3e79775 cpan.bbclass: use '|' as sed separator for entry with paths 2895bcf sstate: Set umask to 002 before packaging runs 999302e systemd-systemctl: parse unit files more correctly 499bb2c libxslt: Avoid regenerating manpage during "make install" d853d5b mkefidisk: Attempt to automatically unmount target device f9a0670 gpgme: add short SUMMARY e179480 core-image-directfb: add SUMMARY 87b6abe ptest-runner: add SUMMARY, DESCRIPTION and HOMEPAGE e53388a hwlatdetect: add SUMMARY and DESCRIPTION 07be27e gst-openmax: add SUMMARY, DESCRIPTION and HOMEPAGE fc1b844 xeyes: add SUMMARY and DESCRIPTION bb98dbd rgb: add SUMMARY and DESCRIPTION ada6dce packagegroup-core-x11-xserver: set SUMMARY instead of SUMMARY_${PN} 56ebcdf gnome-doc-utils: add SUMMARY and DESCRIPTION 612ad98 python-smartpm: fix HOMEPAGE and adjust DESCRIPTION 1ef9b25 libxml-simple-perl: add SUMMARY, DESCRIPTION and HOMEPAGE b74e927 which: use the same meta fields for both versions b880008 mtools: use same SUMMARY as newer version of mtools recipe 6b73189 icon-naming-utils: add SUMMARY and DESCRIPTION 689d2b6 external-sourcery-toolchain: add SUMMARY 0d2a740 readline: add SUMMARY 5aca0e3 libcgroup: add SUMMARY and better DESCRIPTION bce1f1b build-appliance-image: add SUMMARY, HOMEPAGE and improve DESCRIPTION 217b65e gettext-minimal-native: add SUMMARY and DESCRIPTION e43af7f eglibc: add common HOMEPAGE and SUMMARY for eglibc-locale ce726d9 connman-conf: add SUMMARY and DESCRIPTION 07ef66f routerstationpro: move board off 3.4 and onto the 3.8 kernel 5652086 kernel-arch: Always use ld.bfd to link the kernel 648c8cd icu: Remove unnecessary FULL_OPTIMIZATION_arm setting 3dd0810 openssl: Disable parallel make d553d1a common-licenses: remove HTMLisms from OFL-1.1 810e784 common-licenses: fill in AGPL-3.0 cab467d udev: create /var/volatile/tmp to avoid dead link 41c9e42 ltp: upgrade to 20130109 release 5c70423 openssh : upgrade to 6.2p1 9bc16a0 pax-utils : upgrade to 0.7 6a7aa9c udev-extraconf: Avoid mounting unknown filesystems 35483a6 linux-firmware: Look for RTL license in the right directory addcfcd glib-2.0: disable tests for native builds, and respect ptest for LSB 9d734f4 matchbox-session-sato: install GConf values directly instead of using schemas 361d686 elfutils: split libraries into separate packages 88a4fd8 gcc-4.8: Fix GCC ICE on arm fd566d2 gcc-4.8: Refactor gcc-4.8.0 patch files. c3cc4bf gcc-4.8: Add recipes 7195096 powertop: add 2.3 4178360 connman-gnome: Replace broken png files 5460086 gconf: silence some spurious errors 824962f package.bbclass: ensure license excluded files aren't packaged fd4f354 package.bbclass: add LICENSE_EXCLUSION to vardeps 4e4050d png: fix over-zealous warnings about transforms e0b4d0e cairo: drop transform patch, it's been rejected upstream 5af9ca5 u-boot: Add UBOOT_LOCALVERSION to control version string 6dc9a7e python-setuptools: Improving the runtime dependencies ba807dc gnome-icon-theme: add missing icon-cache inherit cb9987d grub-efi-native: fix build on modern distributions without gets() 26a9701 libpng: update to 1.6.1 3a4b728 lttng: updated lttng-ust to 2.1.2 433fbaf pulseaudio: install alsa mixer data files d9f153f image.bbclass: change the logic when intercepts fail 5e702ed pixbufcache.bbclass: do not exit 1 after installing intercept hook 6304ba3 gtk-icon-cache.bbclass: do not exit 1 after installing intercept hook 9e729f1 fontcache.bbclass: do not exit with 1 after installing intercept hook 3b2d8e5 build-appliance: Update to latest dylan revision for release c0f8159 dpkg: Correct paths in postinst 2464c63 systemd: depend on libgcrypt 4da0b79 udev: disable systemd support 9bdc6f0 udev: drop dependency on udev in libudev 09f0c9d xserver-xf86-config: set DefaultDepth to 16 for qemumips 87bf429 perf: Ensure license is handled correctly 412378b psplash: Fix multilib build 277cae2 package_ipk: Ensure the status file exists 8e74a97 package.bbclass: Add useradd variables to PACKAGEVARS 57fdbe9 multilib: Ensure we map the USERADD_PACKAGES variable 8280810 gst-plugins-bad: Disable neon, its not on DEPENDS c97deb1 init-ifupdown: move network interfaces file for the beagleboard 90b9876 build-appliance: Update revision to dylan release 9fde303 systemd: Fix udevd init script so sysvinit in systemd mode works 57f4f86 util-linux: fix systemd service in multilib bcd4d37 systemd: fix -dbg package with multilib 09b8918 busybox: hard-code the syslog service file fd45a2d udev: explicitly package nonarch_base_libdir 5d3df29 systemd: Effectively revert the move to /sbin 72ea776 seperatebuilddir: add systemd b06bd1d systemd: fix out of tree builds f6ae645 udev: remove explicit path to udevadm 2cb729a alsa-utils: Use pkg-config instead of hardcoded udev paths 1261ecc packagegroup: Add init-manager sanity check c71d1f4 udev: Effectively revert the move to /sbin 00aec10 pulseaudio: Set udev variables using pkg-config f4ba9ef bluez4: Set udev variables using pkg-config b24d284 pcmciautils: Use pkgconfig to set udev variables correctly 79a205b package.bbclass: Fix populate_packages for glob expansion issues ef0e1cc busybox: fix mount issue 295db71 dev-manual: Fixed directory name used in example. 969218e dev-manual: Edits to "Set Up Your Layer for the Build" section. 6a3f129 dev-manual: Edits to "Using .bbappend Files" a3d2886 kernel-dev: Edits to the "Changing the Configuration" section. 4bb60da ref-manual: Edits to SRC_URI, FILESPATH, and FILESEXTRAPATHS. eedd602 ref-manual: Updates to the FILESPATH variable. ef04b1d ref-manual: Edits to clear up the SRC_URI variable description. f418e7f kernel-dev: Fixed another occurrence of ${FILES} c159989 kernel-dev: Correction to where to place a .cfg file. 0478091 yocto-project-qs: Final edits for QS manual. 6cfbc41 adt-manual: Changed capitalization of list for consistency. bdeedab adt-manual: Fixed formatting of filenames in a list. 3015438 adt-manual: Added quotes around cross-link section title. 92243fa adt-manual: Minor edits and links. c29c155 adt-manual: minor updates. 5f08473 ref-manual: Minor edits to the supported distros list 75f85bd bsp-guide: Updated the yocto-kernel script example. ce24b05 bsp-guide: Updated the help listing for the yocto-layer command. 3b83bc9 bsp-guide: Some minor edits. 61ab619 bsp-guide: Updated the yocto-bsp script output. 07450dc bsp-guide: Fixed "ARM" term appropriately. 958f9f8 bsp-guide: Fixed "QEMU" term appropriately. 126abc0 bsp-guide: Added a link to the oe-init-build-env script. c980341 bsp-guide: Minor editing change. b681eb8 bsp-guide: Removed a redundant note. f1a29a8 bsp-guide: Added a note to reference the yocto-layer tool. 8232e1c bsp-guide: Minor edits to the yocto-bsp command description. a19e3dd bsp-guide: Fixed another broken link to the Downloads page to the website. aa56bc7 bsp-guide: Fixed a broken link to the "Downloads" page to the website. 02a5c92 bsp-guide: Changed wording due to 2 recommendations now exist. e50ef9e bsp-guide: Minor edits d9c3fef bsp-guide: Added quotes around wiki page title in a cross-link. 44293a2 bsp-guide: Better wording for VESA support. 80bfd00 bsp-guide: Added a link to the term "Metadata". 5271891 bsp-guide: Added complete list to sample structure for Crownbay 77e1079 kernel-dev: Spell checked the files and fixed appropriately. 6f2e173 kernel-dev: Removed a reference to sections that no longer exist. ec435de kernel-dev: Inserted a cross-link to the term Build Directory. 7f60e93 kernel-dev: Removed the <word>/<word> construction. c3d0974 kernel-dev: Removed another "don't" contraction. a3e4478 kernel-dev: Removed a development note that was for Bruce Ashfield. 55ae73c kernel-dev: Removed the "don't" contraction. 9bf1cde kernel-dev: Eliminated a redundant paragraph. 6668012 kernel-dev: Fixed a broken link to a cross-section. ce52a46 ref-manual: Generated and included new list of supported distros. fe7fa4e dev-manual: Edits to "Providing Compilation Scripts and Source Code Modifications" section. 3762469 dev-manual: Edits to "Providing License Text" section. 4cf8642 dev-manual: Edits to "Providing the Source Code" section. 4c00602 dev-manual: Edits to "Maintaining Open Source License Compliance During Your Product's Lifecycle" section. 13dcc78 dev-manual: Edits to "Online Mode" section. f4e04ab dev-manual: Edits to "Using OProfileUI" section. 0bef07d dev-manual: Edits to "Profiling with OProfile" section. de72fa2 dev-manual: Edits to "Create the GDB Initialization File and Point to Your Root filesystem" section. 913a9ee dev-manual: Edits to "Build the Cross-GDB Package" section. bc16410 dev-manual: Changed section title to be parallel. b24987d dev-manual: Edits to "Launch GDB on the Host Computer" section. 229ed0a dev-manual: Edits to "Launching Gdbserver on the Target" section. c566d3c dev-manual: Edits to "Set Up the Cross-Development Debugging Environment" section. d2ebf82 dev-manual: Edits to "Debugging With the Gnu Project Debugger (GDB) Remotely" section. e9d7fa3 dev-manual: Edits to "Post-Installation Scripts" section. c7e81cc dev-manual: Edits to "Creating a Read-Only Root Filesystem" section. eacedc0 dev-manual: Edits to "Excluding Recipes From the Build" section. 2cb80f2 dev-manual: Removed a couple of links to variables. 3a49e1d dev-manual: Edits to "Using systemd Exclusively" section. f43ab89 dev-manual: Edits to "Selecting an Initialization Manager" section. e04976e dev-manual: Edits to "Building Software from an External Source" section. af71514 dev-manual: Fixed a section heading capitalization issue. fa9e626 dev-manual: Edits to "Testing Packages with ptest" section. a68970e dev-manual: Edits to "Making Sure the Packaging is Done" section. 6c5bb96 dev-manual: Edits to "Handling a Package Name Alias" section. 66114e0 dev-manual: Edits to "Manually Bumping PR" section. 5222e90 dev-manual: Edits to "Working With a PR Service" section. 8692ab0 dev-manual: Edits to "Look for Other Ways to Minimize Size" section. ae53349 dev-manual: Edits to "Trim the Kernel" section. f35f12d dev-manual: Edits to "Trim the Root Filesystem" section. 049904f dev-manual: Edits to "Understand What Gives Your Image Size" section. ce8dbc8 dev-manual: Edits to "Creating Your Own Distribution" section. cedb4ce ref-manual: Changes to the migration section bf64daa dev-manual: Edits to systemd section. 1fbc3e9 dev-manual: Edits to "Boot the Image and Verify Your Changes" section. 1421c8f dev-manual: Rewrote section title. 079ec62 dev-manual: Updated section name for parallel construction. af8f6b5 dev-manual: Edits to "Build and Booting the Modified QEMU Kernel Image" section. 5b37423 dev-manual: Edits to "Set Up for the Build" section. c530f80 dev-manual, kernel-dev: Edits for changing a section head title. 0e47365 dev-manual: Edits to "Creating the Patch" section. 3781b86 dev-manual: Fixed section title capitalization issue. 67c503d dev-manual: Edits to "Fine-Tuning the Kernel Confguration File" section. d70617f dev-manual: Edits to "Creating Configuration Fragments" section. 09415f5 dev-manual: Edits to "Using menuconfig" section. edf49a5 dev-manual: Fixed section capitalization issue. 68b7bd5 dev-manual: Edits to "Preparing to use Multilib" section. c20d3d5 dev-manual: Edits to "Combining multipel Versions of Library Files into One Image" section. 334c8ee dev-manual: Edits to "Including Static Library Files" section. 3e1871b dev-manual: Edits to "Adding a Formfactor Configuration File" section. 4757ccd dev-manual: Edits to "Adding the Machine Configuration File" section. 469068b dev-manual: Edits to "Post-Installation Scripts" section. d333a90 dev-manual: Edits to "Splitting an Application into Multiple Packages" section. 94d1ab3 dev-manual: Edits to "Makefile-Based Package" section. e7076de dev-manual: Edits to "Autotooled Package" section. f79ff9b dev-manual: Edits to "Managing Layers" ffb38ba dev-manual: Edits to "Using .bbappend Files" be0bbb3 dev-manual: Edits to "Creating Your Own Layer" section. 875066f dev-manual: Edits to "Layers" section. 53ad9b2 ref-manual: Edits to teh "Archiving Sources - archive*.bbclass" section. 8226990 ref-manual: New class added for archive*.bbclass. 6720a6e dev-manual: Updates list of supported BSPs c11ea04 dev-manual: Changed "Ptest" to "ptest" 1c597ac dev-manual, bsp-guide: Scrubbed the yocto-layer usage section. b1ee347 dev-manual: Edits to the ptest section. 598089f dev-manual: Edits to the ptest section. d1f324a ref-manual: Updated "Contributions" section 9ade10c dev-manual: Added cross-reference to section for finding maintainers a5d8b9e dev-manual: Added methods to determine who a Maintainer is. d78dcf5 augeas: Fix missing files with separate build directory c1ac96d libpam: backport patches from upstream 8593ead consolekit: Fix ${S} != ${B} issues with pam enabled 595e92c systemd: Fix shell variable assignment spacing c237e54 systemd: use AC_CHECK_TOOL instead of AC_PATH_TOOL when checking objcopy, strings, gperf 4b99217 separatebuilddir.inc: disable libmusicbrainz db45a97 linux-yocto/3.8: Makefile: add -grecord-gcc-switches if using -mfentry bef8d8d qt4-embedded: bump PR to allow removal of meta-oe bbappend 527ab19 packagegroup-qte-toolchain-target: bump PR to allow removal of meta-oe bbappend bb71240 qt4-x11-free: bump PR to allow removal of meta-oe bbappend 92af7d9 wpa-supplicant: don't call DBus init script directly d1d8b9c hicolor-icon-theme: bump PR to allow removal of duplicate from meta-gnome 03aaa55 avahi: don't call DBus init script directly 716bf31 xserver-xorg: fix segfaults for ARM SoCs af9ed97 runqemu-internal: Drop distcc support 9e1753e cairo: fix builds with libpng 1.6 df2aeee README.hardware: Update mpc8315 load address 1695345 initramfs-live-install*: fix the "install" boot option 23eec72 mesa: don't fail if x11 isn't available b6343dd openssl: update range information in man-section.patch ae6d5f8 kern-tools: fix custom repository BSP generation 45c8cc1 poky.conf: add Poky 1.4 and CentOS 6.4 to SANITY_TESTED_DISTROS 0551b4a coreutils: add realpath to alternatives 1ebc904 connman: Fix wrong INC_PR reset c9ce164 initramfs-live-boot: explicitly depend on udev-extraconf 9bbf6f3 bitbake: data: fix performance regression 07e83d0 bitbake: fetch2: rename file with bad checksum instead of removing it completely 3cc69d3 bitbake: hob: Refine sorting mechanisms in Hob 612c25c bitbake: monitordisk.py: disable inode checking for btrfs f037008 systemd: fix bootup with 'ro' by re-adding util-linux-mount to RDEPENDS aa1d7fa busybox: Add inetd related files fc30d72 busybox: detects customized configs when do_install 0d9f790 allarch: Drop various problematic allarch usages ba4f19e nfs-export-root: Update to use packagegroup naming 3cf3c8d qemuwrapper-cross: Inhibit default dependencies b8f0895 encodings: Set RDEPENDS correctly 96b49a0 ttf-bitstream-vera: Use fontcache class for postinstall b45615a update-alternatives: Ensure DEPENDS is correct in multilib case b5845de kernel.bbclass: Ensure we have correct version information in deploy data d61d0a1 oe.terminal: add tmux classes 79c2485 rpm-postinsts: remove erroneous call to /etc/default/rcS 068085f ref-manual: Review comments applied for patch session 424611a bsp-guide, ref-manual: Spell checks on some chapters. 326eb45 ref-manual: Added "Target Package Management with RMP" section. ca9ca7b ref-manual: Added a link to the SANITY_TESTED_DISTROS variable. b3a49b8 ref-manual, dev-manual: Added links to the RPROVIDES variable. db4f0ea ref-manual: Added a cross-reference link to the RSUGGESTS variable. a92c8ef ref-manual: Added two cross-references. a8f1e2d ref-manual: Fixed section title capitalization. 424b041 ref-manual: Added a cross-link to the INSANE_SKIP variable. fb156da ref-manual/ref-variables: add STAMPS_DIR and update STAMP entry aee4e2d ref-manual/ref-variables: add LOG_DIR 58eaa40 ref-manual/ref-variables: clarify T definition 9e33c41 ref-manual/ref-variables: add SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS f966fda ref-manual/ref-variables: add SIGGEN_EXCLUDERECIPES_ABISAFE ba7fb31 ref-manual/ref-variables: add SANITY_TESTED_DISTROS and NATIVELSBSTRING 558d4ad ref-manual/ref-variables: add SYSROOT_PREPROCESS_FUNCS 50eb7e4 ref-manual/ref-variables: correct and extend DEFAULT_PREFERENCE entry fb098b2 ref-manual/ref-variables: add KERNEL_EXTRA_ARGS 753bda1 ref-manual/ref-variables: add MODULE_TARBALL_DEPLOY 47cb481 ref-manual/ref-classes: minor typo fixes and clarifications 727b31c ref-manual/technical-details: remove outdated statement on BB_SIGNATURE_HANDLER d1a4267 ref-manual/ref-variables: specify the value for INHIBIT_PACKAGE_STRIP eb29a18 ref-manual/ref-variables: add PROVIDES 6cb93be ref-manual/ref-variables: add RPROVIDES e90b2fb ref-manual/ref-variables: add RSUGGESTS 4fc7d04 ref-manual/ref-variables: correct and extend RREPLACES entry a3a57c4 ref-manual/ref-variables: add COMPATIBLE_HOST and touch up COMPATIBLE_MACHINE 64b4e89 ref-manual/ref-variables: add RM_WORK_EXCLUDE b9f5439 ref-manual/ref-variables: add IMAGE_LINGUAS 2cddc69 ref-manual/ref-variables: add INSANE_SKIP 411022f ref-manual/ref-classes: add note to insane.bbclass section on INSANE_SKIP 0ffd01f ref-manual/ref-classes: add missing QA checks 867abaa bsp-guide: fix reference to old netbase version a75a9fd ref-manual/ref-variables: ensure values are quoted 7139c4d ref-manual/faq: virtualisation not visualisation 0f63639 ref-manual/faq: clarify that package management is optional 35c4e15 ref-manual: add more undocumented classes c3ecfdb ref-manual: add documentation for rm_work.bbclass 52ac480 udev-extraconf: Add -o silent to auto mount for mount.util-linux ea6e797 qemu: define fdt_t types in libfdt_env.h from qemu 27bb516 initrdscripts: look for new systemd-udevd location b528fee systemd: move the binaries to /sbin/systemd 71aafc2 hello-mod: Ensure the produced package name begins with kernel-module- 27ad9ca classes/poky-sanity: fix handling of bblayers.conf updating 093dec1 package/image.bbclass: Fix multilib rprovides db61a66 classes/sanity: fix handling of bblayers.conf updating b9dde37 multilib.conf: Workaround opkg multilib issues b378cb7 udev: Update initscript to check for devtmpfs 60651c1 gdk-pixbuf: Fix libpng determinism issues cde94ff oprofile: Add Upstream-Status and description to patch 2bede7f qemu: Fix typo in patch header 9be73af dev-manual: Fixed typo for "&gt;". af06402 dev-manual: Completed first draft of the new Ptest section. b52a9cb dev-manual: First draft of new Ptest section. c2c11c6 ref-manual: Updated the FILESEXTRAPATHS variable description. c8fa22d kern-tools: fix non-local patch/config location f5c9b48 mesa-demos: fix build with non-Mesa GL stacks 06cce09 wayland: only build the scanner in wayland-native bd25074 sudo: update crypt.patch to use backport from upstream 8e5c349 xmodmap: fix compile with gcc 4.8 48f827e kernel.bbclass: Optionally create lib dir during deploy 56d53a9 util-linux: use $PN in SYSTEMD_PACKAGES 0575b79 systemd: use ${BPN} instead of ${PN} in FILES 2ef72c3 wayland: add necessary dependencies to fix build error d1ff4b6 opkg.inc: don't hardcode /var/lib/opkg f3dbf8f dpkg, opkg, rpm-postinsts: avoid repackaging when changing IMAGE_FEATURES 2d94f1b sudo: handle glibc 2.17 crypt semantics 230441f icecc: Allow to use this bbclass together with external toolchains c567366 package_rpm.bbclass: fix build multilib image failed when PR Server enabled 092beec systemd: Fix path to systemd-analyze so it end up in the right package. cea2759 dev-manual: Spell check. 1da26b7 dev-manual: Edits to "Using a Development Shell" section. ec95ebf dev-manual: Edits to "Image Development Using Hob" section. c064a96 dev-manual: Edits to "Using a Git Workflow" section. d5084b2 dev-manual: Edits to "Using a Quilt Workflow" section. 5d69e33 dev-manual: Fixed section heading capitalization. 00d534c dev-manual: Edits to "Workflow Using Stand-Alone Cross-Development Toolchains" section. fdcbc78 dev-manual: Edits to "Building and Customizing the Image Using Hob" section. 7afa648 dev-manual: Changed title - shouldn't say "Files". 12e28d7 dev-manual: Edits to "Editing the Metadata Files" section. e0346e1 dev-manual: Edits to "Creating the Yocto BitBake Commander Project" section. f351ed6 dev-manual: Edits to "Customizing an Image Using a BitBake Commander Project and Hob" section. 5d422c5 dev-manual: Fixed an occurence of "User Space" in a title. ef14eb8 dev-manual: Edits to "Running User-Space Tools" section. 7bc64bd dev-manual: Edits to "Deploying and Debugging the Application" section. a567be2 dev-manual: Edits to "Starting QEMU in User Space NFS Mode" section. 9d677a1 dev-manual: Edits to "Building the Project" section. dfe04dc dev-manual: Edits to "Configuring the Cross-Toolchains" section. f235bb4 dev-manual: Edits to "Creating the Project" section. 1befaf0 dev-manual: Configuring the Target Options" section. 4bb9b85 dev-manual: Configuring the Cross-Compiler Options" section. cd18e0e dev-manual: Edits to "Configuring the Eclipse Yocto Plug-in" section. 5c84cb1 dev-manual: Edits to "Importing the Plug-in Project into the Eclipse Environment" section. b26d8fc dev-manual: Edits to "Installing the Plug-in Using the Latest Source Code" section. 1b9df6c dev-manual: Edits to "Installing or Accessing the Eclipse Yocto Plug-in" section. e2f8f64 dev-manual: Edits from "Configuring the Eclipse IDE (Indigo)" section. c3c4665 dev-manual: Edits to "Configuring the Eclipse IDE (Juno)" section. f4b5b53 dev-manual: Edits to "Installing the Eclipse IDE" section. 096e2c5 dev-manual: Edits to "Working Within Eclipse" section. 32fdd41 dev-manual: Edits to "Workflow Using the ADT and Eclipse" section. 52c835c dev-manual: Edits to "Application Development Workflow" section. 2dbcd33 dev-manual: Edits to "Kernel Modification Workflow" section. c8c15c2 dev-manual: Edits to "Kernel Overview" section. 1ae6f9d dev-manual: Edits to remote GDB debugging section. 24eea96 dev-manual: Edits to "Developing a Board Support Package (BSP)" section. 5e81518 dev-manual: Edits to the chapter introductory section. 823ab7f dev-manual: Did a re-org on the subsections of remote DBG section. a422394 dev-manual: Updates to the debugging using GDB section. ae353c2 pulseaudio: remove spurious cd in do_compile_prepend 8b29120 dpkg, opkg, rpm-postinst: fix overwriting the run-postinstall script 44120a0 ptest bug fixes b96ad97 poky.conf: update SANITY_TESTED_DISTROS 95b71d2 routerstationpro: strip the output kernel of .comment section cd2f003 kernel.bbclass: do_strip: allow recipes to strip the kernel 4c02dd5 kern-tools: fix conditional configuration items 7c06aec linux-yocto/3.8: qemumips boot fixes and netfilter kernel features 2a3f677 linux-yocto/3.8: qemumips graphical boot 80ab72b linux-yocto/3.8: aufs, config processing, tiny, mips boot fixes 81e6b47 kern-tools: fix excluded configuration processing c6017ff linux-yocto/3.8: atom-pc: Update atom-pc-preempt-rt.scc to reuse config from common-pc 9c22995 linux-yocto/3.8: fix atom-pc config audit warnings 15fb7e2 linux/yocto: update AUTOFS configuration cb4db44 initscripts: fix read-only-rootfs-hook.sh to start earlier 1b7785c initscripts: fix read-only-rootfs-hook.sh to avoid using unionfs cf569f5 rpm-postinsts: avoid errors during boot with read-only-rootfs enabled aa22868 rpm-postinsts: don't create broken postinst script b52a4d3 dev-manual: Edits to "Using Email to Submit a Patch" section. 26bf080 dev-manual: Edits to "How to Submit a Change" section. 3267968 dev-manual: Edits to "Tracking Bugs" section. 6fedf7b dev-manual: Edits to "Workflows" section. 78ec6f7 dev-manual: Edits to "Basic Commands" section. f1c2fea dev-manual: Edits to "Repositories, Tags, and Branches" section. 47fda36 dev-manual: Edits to "Git" section. 3ac6406 dev-manual: Edits to "Licensing" section. 2477c9c dev-manual: Edits to "Yocto Project Terms" section. c218ec6 dev-manual: Edits to "Yocto Project Source Repositories" section. c589b85 dev-manual: Edits to "Summary" section. b7b64ae dev-manual: Edits to "Policies and Change Flow" section. f09cca6 dev-manual: Edits to "Autobuilders" section. 47b7e49 dev-manual: Edits to "Source Control Management (SCM)" section. f04dc51 dev-manual: Some edits early in Chapter 3. d8f9811 dev-manual: Spelling checks for Chapter 2. 29148bc dev-manual: Edits to the "Using Pre-Built Binaries and QEMU" section. 94b786b dev-manual: Updates to "Getting Set Up" section. 90170fe dev-manual: Fixed typo. 0490239 dev-manual: Updates to the "Other Information" section. 9dae23d dev-manual: Capitalization issue fixed. 00fea17 dev-manual: Edits to "What this Manual Provides" section. 772f064 dev-manual: Modified final paragraph of "Introduction". 999e4ee dev-manual: Edits to "Introduction" - better wording. 15699d3 documentation: Updated the release month to April in manual history tables. 76d4a9a dev-manual: Fixed typo for "init_manager" in VIRTUAL-RUNTIME variable. 64a5bec dev-manual: Initial draft of the new yocto-layer section 7f21c57 dev-manual: Re-wrote the intro to "Common Tasks" chapter. 482c6a7 dev-manual, ref-manual: Applied review comments for read-only-rootfs, etc. 4be429f ref-manual: Adjusted IMAGE_FEATURES and EXTRA_IMAGE_FEATURES notes 2580fcd dev-manual: Updated to customizing image through variables section. 3ccd6fd dev-manual: Changes to the read-only root filesystem section. 46a05ed ref-manual: Review comments from Paul Eggleton into the Migration section. 8acf96c ref-manual: New 1.4 Migration section added. 7b065b0 dev-manual: Applied Paul Eggleton's Build History Patch 5 of 5. eb84088 ref-manual, dev-manual, bsp-guide: Applied Paul Eggleton Build history patch 4 of 5. 2b83480 ref-manual: Minor edits to patch 3 of 5 for build history. 14f33c1 ref-manual: Applied Paul Eggleton's Build History Patch 3 of 5. e822444 ref-manual: Edits applied to buildhistory patch 2 of 5. ea8e608 ref-manual: Applied Paul Eggleton's buildhistory patch 2 of 5. 67f4fd4 ref-manual: Edits to buildhistory patch 1 of 5. 58122bf ref-manual: buildhistory patch 1 of 5 applied. ca6321f bitbake: Update to version 1.18.0 cfa2c54 tinylogin: Fix mix of tabs and spaces for SRC_URI indentation e33e0a0 systemd: use update-alternatives.bbclass 05d4f94 bitbake: data.py: Add a warning when expandKeys overwrites an existing key ac6392a README.hardware: bring up-to-date 8f64539 meta-yocto*/conf/layer.conf: tweak BBFILES comments 4b2f075 yocto-layer / yocto-bsp: tweak layer.conf comment 2a1b729 qemu script: explicitly set 32 bit depth for x86-64 ecd90bc busybox: fail on no media 2435d80 postinst-intercepts, qemu.bbclass: fix segfaults in postinstalls 8cab6d7 update-rc.d: correctly look up the initscript params with overrides 51cc49d initrdscripts: Add udev sbin based libexec path 1b93e2b bitbake: hob:Only display scrolled list of images if needed 4330e15 bitbake: bitbake:hob: use a socks proxy mechanism for git f32d580 classes/license: remove outdated comment 78babc0 meta-*/conf/layer.conf: tweak BBFILES comment a27557a meta/recipes.txt: add recipes-lsb4 307e860 udev: fix init script for the location of udevd f6ae87e systemd.bbclass: restart service in postinst, not start b49ddeb udev: Move udevd back to /sbin 9776a7e qemuimagetest/scenario: Move dmesg to end of test run 9bb5eb8 base.bbclass: Fix matching of MACHINEOVERRIDES in COMPATIBLE_MACHINE 977ea67 oe-buildenv-internal: Only add to $PATH if needed 42a72b1 libpng12: remove prefer version and add it to lsb packagegroup ce4faa0 libpng12: rename libpng_1.2.50 to libpng12 f720f8f openssl: Upgrade to v1.0.1e fb37dd6 classes/buildhistory: fix interaction with rm_work 51959f5 rpm: fix RDEPENDS 6ec99ee qemu: Add backported patch to address random segfaults d852e0a oe-buildenv-internal: Only add to $PATH if needed 2dd134a alsa-tools: Fix sys/io.h patch e57284a kernel.bbclass: do_sizecheck: update path to build image and do not delete a650208 layer.conf: add systemd-serialgetty to SIGGEN_EXCLUDERECIPES_ABISAFE 61dfb80 scripts/oe-pkgdata-util: find complementary packages for split packages 90d38ab bluez4: add readline dependency 44b4eef systemd: Set the default firmware path to enable firmware loading in udev 9dccc97 tcf-agent: Use kill instead of killproc to stop agent 02ae9b3 smart: disable CHANNELSDIR 4e46d6f gtk-update-icon-cache-native: create wrapper script 51f8dff image.bbclass: fix postinstall intercepts fallback a808efc gst-ffmpeg: fix --disable-yasm 647caeb insane.bbclass: Updated MicroBlaze machine definitions 6d4d42d qemuimage-tests/sanity/boot: Increase timeout 8131272 oe-init-build-env: Make it use the correct $OEROOT with zsh a468b0d oe-setup-builddir: Allow $OECORENOTESCONF to not exist f583587 curl: backport patch to fix segfaults 6eeb942 yocto-bsp: change qemu-based mips BSP default branch 7bff0d6 yocto-bsp: set SRCREV for arm-based qemu machines e862011 yocto-bsp: qemu machine template updates 3b56472 yocto-bsp: use specific bsp metadata for qemu machines 00e2984 yocto-bsp: pass in file object to replace_file() df1ad14 yocto-bsp: have replace_file() close file before copying fd67cfd yocto-bsp: add linux-yocto-3.8-rt to templates fd70772 yocto-bsp: add KBRANCH for existing kbranch cases 03b5c84 poky-tiny: Prefer linux-yocto-tiny_3.8 83784ee linux-yocto-tiny: Add 3.8.4 recipe caa56bf package_regex.inc: add new regexes d3ddccf local.conf.sample: Add info about -ptest package group 9fb13a3 linux-firmware: make the main package depend on all sub-packages 216d701 shadow: add patch to fix crypt: Invalid Argument 59c0735 tinylogin: fix segfault from crypt() 04b799b sanity/connman: when connman test fails, dump syslog 8f78158 qemuimage-testlib: add function to fetch the remote syslog 4b5001d qemuimage-testlib: silence some key warnings 3328d7c connman_test.sh: show all processes when dumping ps 9e9ea0a lib/oe/classextend.py: avoid extending any kernel package 1872ee3 postinst-intercepts, qemu.bbclass: fix issue on 32 bit hosts 419ef63 atom-pc: add i965 Mesa driver so GL works on i965 onwards 6ebbc07 site/common-uclibc: add predefined configure vars for coreutils 0b57f39 qemuimage-testlib-pythonhelper: Fix process mixups f846195 scripts/sstate-cache-management.sh: fix return value by adding exit 0 c4329c9 site: add endianness information for libmemcached cb4bba8 dbus: set INHIBIT_UPDATERCD_BBCLASS without sysvinit in features 5baac2d systemd: set INHIBIT_UPDATERCD_BBCLASS without sysvinit in features 0e904db utils: add helper to get all non-system packages 59e4254 oe.terminal: add tmux classes 078d3cb liberation-fonts: remove 1.06 c1a7676 libxcb: remove obsolete version 1.1.91 2e1b95d scripts/qemuimage-testlib: Dump extra info if the network doesn't come up 5444db0 ref-manual: Added preliminary migration raw text. b11f27f ref-manual: More edits to the EXTRA_IMAGE_FEATURES variable. 5e4229e ref-manual: Edits to the IMAGE_FEATURES variable. a1e8a7c ref-manual: Edits to the EXTRA_IMAGE_FEATURES variable. 3676e08 dev-manual: Edits to adding features through variables section. 56ce44a dev-manual: merged "updating images" into the "working with packages" 6f6d0a5 ref-manual, dev-manual: Applied review edits (read-only rootfs and package repo) 9a98f40 ref-manual, dev-manual: Review comments applied to package repository c683dfb ref-manual: Minor edit to x32 9e5fd1c ref-manual: Edits the x32 section. 95c36b7 ref-manual: Added read-only-fsroot feature to list. d861187 ref-manual: small corrections to the IMAGE_FEATURES variable. c0d6c17 ref-manual: Re-write of the EXTRA_IMAGE_FEATURES variable. 46c17c9 ref-manual: Re-write of the IMAGE_FEATURES variable description. 93b9efe dev-manual: First draft of new customizing images with features section. c47dfeb dev-manual: General clean-up edits to the customizing images section 0e0ee96 dev-manual, ref-manual: Changes to support runtime management 4ce46de ref-manual: Added Smart-enabled package feed info to section. 10da562 dev-manual: Updated the OE layer index link to existing layers. 1977dcf ref-manual: Added cross-reference link to term "Metadata". aab8563 dev-manual, ref-manual: Rewrote the adding a package title 2ef6168 ref-manual: Updated a link because the section title changed. b1916ac dev-manual: Updated the title for the adding a package section. 896bd5d dev-manual: Fixed punctuation. 7d78ef5 dev-manual: Added another summary bullet due to new section. 08938e6 dev-manual: fixed three grammar issues. 184a6f0 dev-manual: Applied review comments to building tiny section. e4f0cc1 ref-manual: Edits to the "Contributing" chapter. 00e9b4e ref-manual: Spell check - fixed one typo. 63267ef ref-manual: Edits to the git rid of all output question. 3450742 ref-manual: Edits to the getting source from behind firewall question. b866355 ref-manual: Edits to the using an external toolchain question. 59bc500 ref-manual: Edits to the spaces in pathnames question. c010d90 ref-manual: Edits to the create more free space question. 51a17ad ref-manual: Edits to the connected network interfaces question. eeb60d0 ref-manual: Edits to the disabling cursor question. eb26831 ref-manual: Edits to the License Compliance question. 095e48f ref-manual: Edits to the random build error question. a8093ea ref-manual: Edits to the behind the firewall proxy question. 6a01070 ref-manual: Edits to the machine-specific data in package question. 2462cfc ref-manual: Edits to 404 responses question. cf3703c ref-manual: Edits to question about building on distributions. 0ec539c ref-manual: Edits to the reflash question. bd869cf ref-manual: Edits to FAQ type of output question. 8e45b6d kernel-dev: Commented out some development notes to Darren. a6a33e5 ref-manual: Edits to FAQ entries. 6f04a4c ref-manual: Mis-spelling corrected. 35d2925 ref-manual: Various edits the "Variable Context" chapter. a189825 ref-manual: Various spellings corrected. 4b7512e ref-manual: Edits to TARGET_ARCH variable. d4a0b61 ref-manual: Edits to T variable. 32123a9 ref-manual: Edits to SSTATE_MIRRORS variable. d608b63 ref-manual: Edits to SSTATE_DIR variable. 98d10eb ref-manual: Edits to SRC_URI variable. f66e7ff ref-manual: Edits to SDKIMAGE_FEATURES variable. acae2ad ref-manual: Edits to S variable. 1f832c3 ref-manual: Edits to RREPLACES variable. e0bc128 ref-manual: Edits to RRECOMMENDS variable. 17b09ef ref-manual: Edits to RDEPENDS variable. 0c6ec3e ref-manual: Edits to RCONFLICTS variable. 8428912 ref-manual: Edits to PREFERRED_VERSION variable. f13352f ref-manual: Edits to PREFERRED_PROVIDER variable. 465f39a ref-manual: Edits to PRINC variable. f86819d ref-manual: Edits to PF variable. 9875a46 ref-manual: Edits to PACKAGES_DYNAMIC variable. bcc9239 ref-manual: Edits to PACKAGE_BEFORE_PN variable. 6818b8a ref-manual: Edits to MLPREFIX variable. 92c422d ref-manual: Edits to MACHINE_FEATURES_BACKFILL_CONSIDERED variable. 2878629 ref-manual: Edits to MACHINE_FEATURES_BACKFILL variable. 18aed29 ref-manual: Edits to MACHINE_EXTRA_RDEPENDS variable. 59c595a ref-manual: Edits to LINUX_KERNEL_TYPE variable. a84d3c0 ref-manual: Edits to LIC_FILES_CHKSUM variable. e7830e0 ref-manual: Edits to LAYERVERSION variable. 1bd8c3d ref-manual: Edits to LAYERDEPENDS variable. 96e6c35 ref-manual: Edits to KMACHINE variable. b87ee62 ref-manual: Edits to KFEATURE_DESCRIPTION variable. 2cd3cc1 ref-manual: Edits to KERNEL_FEATURES variable. 393bf72 ref-manual: Edits to KARCH variable. 983a848 ref-manual: Edits to INITSCRIPT_PARAMS variable. f98acd1 ref-manual: Edits to INITSCRIPT_NAME variable. 9bddea8 ref-manual: Edits to INITSCRIPT_PACKAGES variable. fc6fffe ref-manual: Edits to INC_PR variable. 6317dba ref-manual: Edits to IMAGE_ROOTFS_SIZE variable. a3f7e65 ref-manual: Edits to IMAGE_FEATURES variable. fe59fed ref-manual: Edits to EXTRA_IMAGEDEPENDS variable. f378dfb ref-manual: Edits to EXTRA_IMAGE_FEATURES variable. e4b801a ref-manual: Edits to ENABLE_BINARY_LOCALE_GENERATION variable. ea926b0 ref-manual: Edits to DL_DIR variable. e2bdcaf ref-manual: Edits to DISTRO_FEATURES_BACKFILL_CONSIDERED variable. 1498124 ref-manual: Edits to DISTRO_FEATURES variable. d14a0b1 ref-manual: Edits to DISTRO_EXTRA_RRECOMMENDS variable. de0b671 ref-manual: Edits to DISTRO variable. 7e059f4 ref-manual: Edits to CORE_IMAGE_EXTRA_INSTALL variable. 18c0288 ref-manual: Edits to COMPATIBLE_MACHINE variable. b3a4612 ref-manual: Edits to CFLAGS variable. b1189b9 ref-manual: Edits to BUILDDIR variable. 33cd2a1 ref-manual: Edits to BPN variable. 1288312 ref-manual: Edits to BBFILES variable. 226de92 ref-manual: Edits to BBFILES variable. 80098bb ref-manual: Edits to BBFILE_PRIORITY variable. 15d7411 ref-manual: Edits to BBMASK variable. 2eb87e9 ref-manual: Edits to BBCLASSEXTEND variable. 3cb2451 ref-manual: Edits to BB_DISKMON_DIRS variable. 003392e ref-manual: Edits to BAD_RECOMMENDATIONS variable. 8947312 ref-manual: Edits to the B variable. 5d847ed ref-manual: Edits to the AUTOREV glossary entry. c35b0e3 ref-manual: Edit to AUTHOR glossary entry. d72c0e6 ref-manual: Edits to the "Images" section. e73fc8e ref-manual: Edits to "Distro" section. 534be33 ref-manual: Edits to the introduction section. d436614 ref-manual: Updates to the "Images" chapter. a8532b0 dev-manual: Added some development notes on the systemd feature. 4a4d342 dev-manual: First draft of new init manager section. 072b38a ref-manual: Added new variable entry for BULIDDIR. 73d463c ref-manual: Some typos corrected via spell check. c209bdc ref-manual: Added a note about what the chapter covers. 2cc1a1c ref-manual: Minor edits to "Using External Source - externalsrc.bbclass". eb4d51a ref-manual: Added some links into the glossary. c7ab29d ref-manual: Grammar and punctuation fixes. cb234f5 ref-manual: Created a list as needed. 28ae8f9 ref-manual: Minor edits to "Packaging - package*.bbclass". 17bad27 ref-manual: Minor edits to "Package Groups - packagegroup.bbclass". 1b973be ref-manual: Substituted in a list as needed. 18437d1 ref-manual: Created a list where needed. b92e6c2 ref-manual: Got rid of some ugly sentences. b5792ec ref-manual: Removed non-word "subdirs". 5f480df ref-manual: Applied better wording. 658227f ref-manual: Minor edits to "Autotooled Packages - autotools.bbclass". 66e0744 ref-manual: Formatting fix for BUILDDIR variable. e55f772 ref-manual: Added cross-reference to "Metadata" term. 594794b ref-manual: Punctuation correction. 8cefd2a ref-manual: Grammar fix. ff02688 ref-manual: Grammar fix. 5f09310 ref-manual: Added cross-reference to term "Metadata" in intro. 64ce1b8 ref-manual: Corrected typo. 857a766 ref-manual: Added new "meta/recipes-lsb4/" entry. 5a626d8 ref-manual: Added "meta/lib/" directory and moved it. ac04852 ref-manual: Grammar fix in "meta/recipes-support/". 2dc1756 ref-manual: Reword in "meta/conf/distro/". 8bd7304 ref-manual: Fixed syntax in "meta/conf/machine/". 4fadd75 ref-manual: Cleared up ambiguity in "meta/conf". 619e88f ref-manual: Added a link to "meta/classes/". f06259c ref-manual: Added a link to "The Metadata - meta/" section. 87166fd ref-manual: Minor edits to "build/tmp/work/". 169d5ac ref-manual: Minor edits to "/build/tmp/deploy/images/". adfbcde ref-manual: Added link to "build/tmp/deploy/licenses/". 4546aa1 ref-manual: Minor edits to "buid/tmp/deploy/". 6f594e9 ref-manual: Minor edits to "build/tmp/cache". 13e4ba8 ref-manual: Minor edits to "build/tmp". 7b74c75 ref-manual: Minor edits to "build/sstate-chache/". f24c079 ref-manual: Minor edits to "bulid/downloads/". 355e35c ref-manual: Minor edits to "build/conf/sanity_info". dd177d7 ref-manual: Minor edits to "build/conf/bblayers.conf". 6ce2cb9 ref-manual: Minor edits to "build/conf/local.conf". dd54445 ref-manual: Added an intro to the build directory section. 47fb590 ref-manual: Changed wording for consistency. e2e5cad ref-manual: Added an intro statement to "Top-Level Components". d9b24ac ref-manual: Minor edits to "oe-init-build-env". e99437d ref-manual: Minor edits to "scripts/". 8970eb2 ref-manual: Minor edits and fixes to "meta-hob/". cd1906f ref-manual: Minor edits to "meta/" section. fe7dd1c ref-manual: Minor edits to "build/" section. dbcfb9e ref-manual: Minor edits to "bitbake/" section. 4277bc1 ref-manual: Fixed a typo "consits". 3cf9292 ref-manual: Minor edits to the "Migration" chapter. afd862a ref-manual: Fixed typo "bitake" to "bitbake". a917e79 ref-manual: Got rid of the contraction "doesn't". 88b6f72 ref-manual: Added a cross-ref to the term "Metadata" 4ca99d5 ref-manual: Fixed a typo. cf6887d ref-manual: rewrite of license flags matching section. 30cdf93 ref-manual: Edits to the license flag matching section. 4b1833f ref-manual: small edits for variables related to licenses. cebcfa2 ref-manual: Changed quotation characters for consistency. 8eee891 ref-manual: Edits to "Specifying the LIC_FILES_CHKSUM Variable Section" f403f50 ref-manual: edits to "Invalidating Shared State" section. 826d56d ref-manual: Active voice applied to "Debugging" section. 36afaaf ref-manual: Minor edits to "Shared State" section. 8ddc1e3 ref-manual: Minor edits to "Checksums (Signatures) section. 881627c ref-manual: Minor edits to "Shared State Cache" section. bd11c55 ref-manual: Restructured out the paranthetical. 0f7d5f7 ref-manual: Punctuation fix. 67c4996 ref-manual: Added a link to Metadata in the "Classes" section. fcb34d5 ref-manual: Small fixes to the "Yocto Projects Components" section. 48d8ba7 ref-manual: Added additional topics to intro paragragh. 0f0fe73 ref-manual: Fixed typo. c869fe5 ref-manual: Minor edits to "Enabling and Disabling Build History" 32d403e ref-manual: Edits to "Other Tips" section. 187ed1e ref-manual: Punctuation fix in "Logging With Bash" section. b359ed8 ref-manual: Minor fixes in "Logging With Python" section. 0c0870c ref-manual: rewrite of the "Variables" section. d9bfe5c ref-manual: Typo fixed. 4db0c32 ref-manual: Small updates to the "Running Specific Tasks" section. 8db644a ref-manual: Edits to the "Debugging Build Failures" section. ae100bf ref-manual: Removed "/" as part of a sentence. 942f915 ref-manual: Various edits to the "Build Overview" section. 8bfd984 ref-manual: Fixed a cross-reference Heading to match. c764672 ref-manual: Applied better wording. 99c6d51 ref-manual: Fixed typo. 0c30b61 ref-manual: List wording changes for brevity. 5d4e324 ref-manual: Capitalization fix. 72a3b4f ref-manual: Small edits to introduction paragraph. 02c6732 dev-manual: Cleaned up some "file system" "filesystem" terminology. 3362979 dev-manual: Edits to the Using GDB section 30a806d dev-manual: Applied review comments to poky-tiny section de4f0d1 dev-manual: New section for installing different versions of a lib d0edd46 dev-manual: Reorganization for section using libraries ef0ef86 bitbake: propertydialog adjustments for package.bbclass 4dbdcf9 Add file information to package information window 8248561 linux-dtb: fix whitespace in bash functions e16dc3d linux-dtb: Add simple DTB symlinks for devicetree c1402d6 pointercal: Move override files from 'files' to 'pointercal' directory 66bee6a gcc: add patch to disable texinfo when texinfo is 5.0 or newer dabf7a4 qemu: Add 2 patches to fix build with texinfo-5 6ad0467 qemu: Enabled SDL when compiling for target architecture 88f4466 python: adding missing runtime dependency python-io to python-pprint b5f842a libproxy: add dependency on glib-2.0 b450344 rpm-postinsts: Split out run-postinsts 4d30973 gst-ffmpeg: configure-fix patch used wrong test 4ce8a67 icon-naming-utils: import version 0.8.90 from meta-oe 12c9f9a xserver-nodm-init: Add xuser to input group 530b3b3 udev-extraconf: Add rule adding input devices to input group 0d21708 base-passwd: Add input group d040acb buildhistory: record tag names and show warning when the same tag corresponds to different revision fe336b1 poky.conf: Use weaker assignment for PREMIRROR 9cd3816 routerstationpro: swap KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE 22133e5 poky.conf: added distro codename variable 8f262bf atom-pc: Update to linux-yocto_3.8 (3.8.4) c7f5285 classes/sstate: avoid traceback when no files have been staged 6c22c59 qemu script: explicitly set 32 bit depth ee22db4 gst-plugins-bad: disable librsvg when x11 is disabled 70a599a alsa-tools: fix build when x11 and gtk+ not available 2d4f1fd runqemu-internal: use MACHINE_SUBTYPE variable for qemuarm* 8866aee package_deb.bbclass: fix 'armel' override 94041f2 qt-mobility: added list of modules to be compiled 27296bd util-linux: Use u-a for getopt 3e4655d archiver: fix srpm archiving build errors 805eede base.bbclass: Update the preferred_ml_updates fd4e5c6 meta-yocto/conf: Add conf-notes.txt c0910f2 update-rc.d, systemd: redirect also stderr from type c47b773 openssh: don't add update-rc.d to RDEPENDS 2375ff3 linux-firmware: Add missing license information for wl12xx 3ba2ad2 linux-firmware: Package vt6656, ath6k, ath9k and ar9170 19a6090 linux-firmware: Package Reaktek and Broadcom licenses acd3735 linux-firmware: Remove duplicaed license from rtlwifi subdir 0079740 linux-firmware: Remove 'Makefile' from packages 280374f tcf-agent: Don't download epl-v10.html just for LIC_FILES_CHKSUM validation 69aaafe remove gtk-update-icon-cache-native virtuals e1dbbdc gtk+: don't provide native build 23b9baa packagegroup-toolset-native: replace gtk+-native by gtk-update-icon-cache-native 13837e5 sstate.bbclass: remove reference to gtk+-native 46e1a4f seperatebuilddir.inc: remove reference to gtk+-native 3ee9d36 lsb: distro codename info added 238244c pcmciautils: fix segmentation fault of pccardctl command 510d8b5 connman: added wired setup for systemd b50626c sstate: add -f to mv when moving sstate files into place 1f48f74 linux-yocto-rt: integrate 3.8.4-rt2 5638954 kernel-yocto: use KBRANCH as default build branch 8452199 linux-yocto/3.8: update mips SA_RESTORER fix 0d47a7d bitbake: hob: giving focus to the search field loses the table sorting b5b1592 bitbake: hob: add tooltip on "clear search" button 19ebf1d bitbake: Removed popup when including a package f988ca1 remake: Fix out of tree builds f802d7f rpm: Ensure rpm depends on rpm-postinsts c62d869 build-appliance-image: fix git proxy access 92aeb31 qemuimage-testlib: Fix quoting issue cc7f542 qemuimage-testlib: Use ww option to ps to ensure command output isn't truncated de208eb qemuimage-testlib: Increase qemu startup timeouts e9866ee meta/lib/oe/lsb.py: extract only the needed info from lsb-release 851f1e3 scripts/contrib/build-perf-test.sh: add timings for bitbake -p a105bc4 scripts/contrib/build-perf-test.sh: add option to allow cherry-picking of fix revisions c6f9e4a scripts/contrib/build-perf-test.sh: add a global results file 5769b59 scripts/contrib/build-perf-test.sh: add a script for build performance tracking fd900c1 systemd: Add new package systemd-kernel-install 911dbbd bitbake: bb.tests.fetch: Opt-out for unittests that require network 2f4fe1e bitbake: hob: Search strings and results should be persistent e98716f bitbake: packageselectionpage.py : added information to hob 026914e bitbake: hoblistmodel.py : passing the package information to hob d08acf9 bitbake: propertydialog.py : added 'Package files' functionality 6d9f418 bitbake: cooker.py : added variables related to cache_extra 43a3a4b bitbake: cache_extra.py : added package information 4a5751f coreutils: Fix out of tree builds 688c4e8 elfutils: remove i386_dis.h/x86_64_dis.h compilation targets 1e82bc1 packageinfo.bbclass : extended functionality 841ec52 coreutils: update to upstream version 8.21 741b8d7 dbus: Depend on dbus-ptest-ptest 8eb1fd4 image_types.bbclass: Replace squashfs-lzma with squashfs-xz 0051c32 libpng: add version 1.2 back e0da509 init-install.sh: remove unnecessary udev rules file to avoid error messages 7698f26 dosfstools: really compile supporting large files c9643b0 boost: Add real native support a0bd02d oe-setup-builddir: Possibility to customize text. c531851 wayland: upgrade to 1.0.6 53beaa6 weston: upgrade to 1.0.6 9a3fbf9 classes/buildhistory: improve SRCREV recording 38150f1 systemd: Upgrade to 199 4b50385 rpm: split out run-postinsts bacdb99 meta/lib/oe/lsb.py: fix data extraction from /etc/lsb-release 4dc31a3 base.bbclass: When we use fakeroot, also use it for devshell cbdbc54 package_regex.inc: Added regex for elfutils 813d44e poky.conf: enable Wayland DISTRO_FEATURE 1eb5214 qemuimage-testlib: Capture stderror in the logs as well as stdout f173166 systemd: Upgrade to 198 eddba86 glib-networking: Disable libproxy and gnome-proxy since they're not in DEPENDS 9d77233 xserver-nodm: Correct initscript header 7b5f838 qemu: Add missing DEPENDS on dtc 1c7fc0a local.conf.sample.extended: remove obsolete DISTRO_FEATURES_INITMAN reference 5a1d4be classes/buildhistory: ensure SDK package lists include complementary pkgs e42db96 psplash_git.bb: fix do_compile by correcting the script path 9915f94 qemux86*.conf: replace XSERVER weak assignment with a hard one f9a92d9 sysvinit: rc: exit psplash correctly 10f40af nspr: Also update nspr.pc to 4.9.5 ff94f73 uclibc-git: Fix build on x86 and move to latest master f76d4b3 udev: move /run volatile entry to udev instead of initscripts ce10e5f busybox: order and group initscript variables logically c5b6125 dbus: explicitly disable systemd when no systemd 6f77bf0 systemd: recommend systemd-compat-units f2561f5 systemd-compat-units: disable dbus-1 aaaafaf Revert "base-files: add fstab for systemd based systems" f2165d2 packagegroup-core-boot: revert to specifying sysvinit as default init manager dd65d84 default-distrovars: remove obsolete DISTRO_FEATURES_INITMAN reference 326f8e3 bitbake.conf: explicitly backfill sysvinit, not DISTRO_FEATURES_INITMAN bb3fa3e default-distrovars: don't add INITMAN to DISTRO_FEATURES and DISTRO_FEATURES_BACKFILL d82e303 update-rc.d/systemd: change communication variable name a89520f systemd: add udev init script for hybrid sysvinit/systemd usage 7bb060e systemd: check for systemctl first, and don't force systemd to be installed. 49ae578 update-rcd: drop depends to recommends, check for update-rcd in scripts 40a15da util-linux: split uuidd into it's own package, and enable for systemd 55ba8ea update-rcd.bbclass: handle both sysvinit and systemd features being present e92dfa1 default-providers: change udev selection logic 88cea75 systemd: split out the hwdb data b597539 systemd: don't depend on the PCI/USB databases aeaee71 core-image-minimal-initramfs: don't install busybox-syslog 8502787 systemd: merge udev-systemd into udev 123e3c2 systemd: make xz support (compressed journal) optional, defaulting to on. c2aab97 busybox: add strictatime support to mount 58a6a7c busybox: enable systemd integration for syslogd bdca492 classes/rm_work: rename RM_WORK_WHITELIST to RM_WORK_EXCLUDE a8f9229 binutils: Don't generate .PPC.EMB.apuinfo sections for 64-bit output 6da3aca rpm: Fix debugedit buildid processing 21288ac grub-efi-native_2.00.bb: fix a build issue 4bf20a3 linux-yocto/meta-yocto-bsps: update h/w references to v3.4.36 566e969 Added regex for gtk-update-icon-cache-native 27bc091 linux-yocto/3.8: qemuarm boot fix 64b3a37 linux-yocto/3.8: fix perf host contamination 16c2560 linux-yocto/3.4: import v3.4.36 -stable fixes 0a81ed2 kern-tools: initialization and meta branch fixes 24bc131 linux-yocto/3.8: introduce v3.8.4-rt1 86c59b1 linux/yocto-3.4: update to v3.8.4 ec92107 linux-yocto/3.8: allow kernel feature _appends to be overriden 720492d qemuimagetest: collect and print runqemu output b45d63e qemuimagetest: fix erroneous ps errors when qemu couldn't be started 60c8b25 eglibc-locale: Ensure files have correct ownership 95990da font-alias: Add depends on font-util-native a28005a opkg-utils: Update to newer git rev for bashism fix 3a78a23 package.bbclass: Correctly handle /usr/src/debug file ownership f36926a docbook-utils-native: Unbreak the build after source and build dir split 18c888d at: Fix --with/without pam options c376f1f package.bbclass: Ensure debug source file is generated correctly 88fa952 conf/machine: Clean up MACHINEOVERRIDES handling 7a8f3f7 package.bbclass: Handle subprocess errors correctly d12980f gnupg: Add symlink for gpgv 5a9d83d rpm: Add workaround for debugedit-segv 5ec19c8 nspr: remove unnecessary files from the main package a6c6a8d bitbake: bitbake/fetch: Add git submodules fetcher 8054716 bitbake: doc/bitbake.1: Update with missing parameters 9fa7608 packagegroup-core-lsb: add nspr 78f52c7 xf86-input-evdev: add mtdev dependency d4b884d lttng: babeltrace: Update to upstream version 1.1.0 659aadb libxcb: fix repeated configures 3c5f4d5 separatebuilddir.inc: mxsldr should never have been added to this list, remove 9f438fc tcl: Fix the location of the installed headers e6dad38 valgrind: Fix out of tree builds 554e3d2 package/populate_sdk: Move functions from package_* to populate_sdk_* 3fff11a libpcre: Fix BUILD_CFLAGS for out of tree support 8805fa2 sudo: Fix out of tree builds ${B} != ${S} b27a0b7 Perl packages shouldn't be allarch 1eb2b3d packagegroup-core-tools-debug: split out Eclipse packages e95ccb7 packagegroup-core-tools-debug: split out Eclipse packages 131b668 packagegroup-core-tools-debug: remove rsync c2fd9a1 sudo: Compile mksigname and mksiglist for build host 619e1df polkit: remove e887bd9 linux-firmware: Package Broadcom firmwares 30ad607 cairo: explicity disable lzo 4626289 classes/buildhistory: trim trailing spaces in file listings 59e4815 classes/buildhistory: implement history collection for SDKs 9e366e1 poky.conf: Include separatebuilddir.inc 2143c99 libuser: Use abs_srcdir instead of srcdir 031305f ref-manual: Edits to make section heads consistent capitalization 315a315 dev-manual: Updated the "Core System Development" section 89fa4b26 dev-manual: Wording change to GDB example. 240d78e dev-manual: Updated path in cross-GDB package example. 33f2c1a dev-manual: Reword for when to use BBMASK. 9114dfc profile-manual: Updated sysprof basic usage section d6cd062 profile-manual: updated the Oprofile section e5087d5 profile-manual: Updates to LTTng section setup 9c6a8b8 poky-ent: Updates for the 1.4 release. 7058363 dev-manual: second pass of poky-tiny section. ac15c28 dev-manual: First pass at poky-tiny section. 9f1b358 dev-manual: Added more examples of non-poky distros to note. 6b4e25a adt-manual: Added note to indicate ADT is distribution neutral. 9a51d0a dev-manual: Applied review comments to creating distro section a865315 dev-manual: applied review comments to create own distro 89b6819 dev-manual: Created list for other layer mods for other distros ac18d66 dev-manual: Added notes about creating your own distro e7df816 dev-manual: fixed broken links cc79dfd dev-manual: Fixed two typos. 1996be8 dev-manual: First draft of "Creating your own distro" section. e0144f2 (distro-alias|maintainers|package-regex).inc: mesa-dri -> mesa 0a57646 atom-pc.conf: replace mesa-dri with mesa b304742 scripts/lib/bsp: replace mesa-dri with mesa in machine.conf files a45c960 vte: Fix conflict between FILES_${PN}-dbg and FILES_vte-dbg e66deb0 mesa: rename mesa-dri recipe to just mesa c2f60b6 local.conf.sample.extended: update for disk monitor 2dd911d poky-floating-revisions.inc: remove the duplicated SRCREV_pn-exmap-console 5005857 maintainers.inc: remove several duplicated lines 5b5e038 fix march sanity check issue c896db7 perl: remove the duplicated RDEPENDS cc38db4 perl-native: remove duplicated LIC_FILES_CHKSUM 4088403 pm-utils: remove duplicated RDEPENDS 83716e4 routerstationpro: use KERNEL_IMAGE_MAXSIZE to test the image dae3eec package_regex.inc: added new regexes cd4f88e bitbake: Adjust spacing on information windows 860f826 bitbake: hob: implementation of search functionality in Hob ab7d8bd bitbake: hob: Hob custom image build error acc5f0d mkefidisk: Use msdos partition tables 663c39d mkefidisk: Remove startup.nsh d20eea7 mkefidisk: Always use rootwait and document kernel parameters used 24cd3dd mkefidisk: Boot with ro kernel parameter instead of rw ca67cd9 mkefidisk: Cleanup comment length c38da26 mkefidisk: Always specify a root= kernel parameter 403d969 consolekit: don't inherit gnome b10f2a7 package_{ipk, deb, rpm}: drop the TARGET_OS conditional 331c1f1 package_deb: don't install glibc-localedata-i18n separately 99f8d02 coreutils: disable ACL as we do not depend on it cf3c96a perl: avoid splitting out .debug directories as packages 9299df1 connman-conf: Avoid appending IPv4 address e93b637 connman-conf: Move the setup script into /usr/lib/connman fdd76ea distrodata.bbclass: added some more git processing 0e72763 distro: Add separatebuilddir.inc 0b67992 apt: Fix case where ${B} != ${S} 6594412 base-passwd: Fix case where ${B} != ${S} 32dadb9 babeltrace: Fix case where ${B} != ${S} dacf40d dhcp: Fix case where ${B} != ${S} 29a1c77d2 directfb: Fix case where ${B} != ${S} dfc25eb mtdev: Fix case where ${B} != ${S} 55de04d pth: Fix case where ${B} != ${S} 224b0c3 lzop: Fix case where ${B} != ${S} 512b8d2 pm-utils: Fix case where ${B} != ${S} 902b785 rpm: Fix case where ${B} != ${S} 5306f72 python-pygtk: Fix case where ${B} != ${S} 21fd35a dpkg: Fix case where ${B} != ${S} d988fe1 xinted: Fix case where ${B} != ${S} 4dce60b texinfo: Fix case where ${B} != ${S} 55f1e47 watchdog: Fix case where ${B} != ${S} dbfb8dc pam: Fix case where ${B} != ${S} 211aecc libuser: Fix case where ${B} != ${S} 6211a2b scripts/qemu-testlib: Add more debugging information 9ffee9a scripts/runqemu-internal: Fix lock races ecb30a9 alsa-tools: add patch for mips since it does not have io.h e7f7fcb grep: Always use locale.h 998ec3b core-image-multilib-example: Location of core-image-sato.bb changed ebf4d7a runqemu: Improve error handling/exit codes 8207e3f qemuimage-testlib: Add extra debugging and sanity check a317cc9 qemuimage-testlib: Add delay to work around races in qemu startup 808967b qemuimage-testlib: Fix IP address handling 0ff4529 bitbake: runqueue: Use taskData.fn_index[depdata] instead of uninitialized dep b844a42 bitbake: hob: some settings in Hob are not remembered 8852e51 scripts/qemutestlib: Add better process debugging and fix process group issue ee416ad bitbake: utils.py: fix BB_ENV_WHITELIST af9f584 bitbake: monitordisk.py: monitor disks based on path 37bfbd6 bitbake: crumbs/recipeselectionpage: added events for the "Package Groups" "All recipes 58115af bitbake: crumbs/packageselectionpage: added event for the "All packages" tab 3c5737a bitbake: crumbs/imageconfigurationpage: added information so that it displays correctly 5b5db02 bitbake: hobwidget: added functionality for the information dialogs. a43792c bitbake: crumbs/hoblistmodel: added information columns needed for prop dialogs 0e17528 bitbake: hig/simplesettingsdialog: added entries for information dialogs a4fdfa7 bitbake: hig/propertydialog: new class added for the property windows. 5b4b817 bitbake: hig/advancedsettingsdialog: Added information for the information dialogs f4bc22c bitbake: crumbs/builder: Replaced the function that displayed tooltips f988562 bitbake: cooker: Use extra cache information e8b0e19 bitbake: cache_extra: Add extra variables 410d1e0 harfbuzz: update the license information 4b7a37e perf: Fix parsing error a785a9d layer.conf: avoid unnecessary early expansion with := 15ab960 perf: make PKGV match kernel version 05985a7 layer.conf: avoid unnecessary early expansion with := 683abbc python: fix on-target use of distutils/setuptools by removing references to buildpaths 79ec8e2 tzcode & tzdata: update to 2013b versions 6c9743d qemu-testlib: Add python helper and simplify shell 87cfde2 syslinux.bbclass: Add a default serial console option and real boot menu support 04cd51c iptables: Turn ipv6 and libnfnetlink support into PACKAGECONFIG 3c0deeb neard: upgrade to 0.10 95bb9de mkefidisk.sh: create a proper ESP 21a1040 zaurusd: Update to new git version add11fa package: Add cachedpath optimisation cec0102 tcltk: Fix for ${B} != ${S} a3409b9 image_types.bbclass: only create links if the target exists e5a2702 libuucu: Remove the COMPATIBLE_HOST check dcf4807 lttng-ust: remove the COMPATIBLE_HOST check b5017ee babeltrace: remove the COMPATIBLE_HOST check 5bbc8ef lttng-tools: remove the COMPATIBLE_HOST check a7847d9 lttng-modules: remove the COMPATIBLE_HOST check 8df3d86 distcc: Fix case where ${B} != ${S} 6ce799d xcursor-transparent-theme: Refresh patches and ${B} != ${S} fixes b1eff13 libsdl: Fix ${B} != ${S} issues 2072e82 lttng-ust: Fix case where ${B} != ${S} 748085d libnewt: Fix ${B} != ${S} (partial) 6b94c4c icu: Fix case where ${B} != ${S} 3bddba8 libfakekey: Update to new revision to fix ${B} != ${S} issues 635f498 diffstat: Fix case where ${B} != ${S} 915e133 nasm: Fix case where ${B} != ${S} (partial) 6544a91 sudo: Fix case where ${B} != ${S} 95bf5b3 e2fsprogs: Fix case where ${B} != ${S} ecee0e6 docbook-utils-native: Fix case where ${B} != ${S} 3121128 chrpath: Fix case where ${B} != ${S} b345b7c sysfsutils: Fix case where ${B} != ${S} 265320d rpm: Fix case where ${B} != ${S} 6a45230 rsync: Fix case where ${B} != ${S} b34fc1c valgrind: Fix case where ${B} != ${S} 297f6f5 psplash: Fix case where ${B} != ${S} e924d5b binconfig: Handle the case where ${B} != ${S} 64cd985 ncurses: Fix case where ${B} != ${S} de258a9 cross-localedef-native: Fix case where ${B} != ${S} 05239ff pigz: Update to 2.3 7a3d8f6 libenv-perl: Update to 1.04 1d6f4bc sysstat: Update to 10.1.4 511d3fc lsbinitscripts: Update to 9.45 460597f man-pages: Update to 3.50 188a521 kernel bbclass: return to original directory in do_deploy 5b594a3 documentation.conf: remove unused variable QA_LOG bac0040 layer.conf: Add LAYERVERSION and LAYERDEPENDS fde198b cracklib: Generate compiled dict using default dictionary 6019a36 linux-firmware: upgrade to git HEAD c530a75c1e6a472b0eb9558310b518f0dfcd8860 2468bd2 qt-mobility: Add pulseaudio dependency if DISTRO_FEATURES has pulseaudio 1b87b28 qt-mobility: Add bluez dependency if DISTRO_FEATURES has bluetooth 9c03dd6 nss-myhostname: add 0.3 version cee862f mobile-broadband-provider-info: Upgrade to v20120614 0a2eed9 apr-util: Upgrade to v1.5.1 d597dd4 babeltrace: Upgrade to v1.0.3 c6100c7 liburcu: Upgrade to v0.7.6 b03402b systemtap: Upgrade to v2.1 f8a4b4a cronie: Upgrade to v1.4.9 64e00c3 hdparm: Upgrade to v9.43 228cced u-boot: Upgrade to v2013.01.01 c28dd9b u-boot-mkimage: Upgrade to v2013.01.01 c50fdf5 u-boo-fw-utils: Upgrade to v2013.01.01 36947ae ed: Upgrade to v1.7 27dd870 gawk: Upgrade to v4.0.2 d8d263a rxvt-unicode: Upgrade to v9.17 8340991 rm_work.bbclass: inhibit rm_work per recipe 5202649 archiver: fix archive filtering behavior 6b8ed06 archive-*-source.bbclass: fix scripts_with_logs build error 354bb63 image.bbclass: Drop legacy export of IMAGE_BASENAME dbd4138 bison: Use PATH to locate m4 abaa178 mesa-common: Fix confused variable assignment/comment 9bfd922 gcc-common: Exclude AVAILTUNES from sstate checksums ffd8752 tune-xscale: Drop unneeded optimisation overrides 4fb8376 openssl: build always with -Wa,--noexecstack 6d9a3ac upstream-tracking: added dbus no-update reason 8f464c7 tremor: added no update reason 01a249f upstream-tracking: added bluez no-update reason 7e03d11 upstream-tracking: added polkit no upgrade reason 7f2bdd1 upstream-tracking: added glib-2.0 no update reason 15043fa yocto-bsp: add machine-user-features.scc to templates 8c9320c yocto-kernel: add support for destroying recipe-space kernel features 5edc7af yocto-kernel: add support for creating recipe-space kernel features 2518215 yocto-kernel: add support for printing kernel feature descriptions 934f2ed yocto-kernel: add support for listing available kernel features 0bfe83e yocto-kernel: add support for kernel feature add/rm/list 6911fd0 yocto-bsp: upgrade i386 template with emgd 1.16 04d15f5 yocto-bsp: add support for linux-yocto-dev f0f436e yocto-bsp: add support for tiny 8e47a95 yocto-bsp: update linux-yocto-rt_3.4 .bbappends 3eb5590 yocto-bsp: update machine-preempt-rt.scc 03a1091 yocto-bsp: update 3.4 .bbappends 7743ebd yocto-bsp: update machine-standard.scc 63f0834 scripts/lib/bsp/engine.py: add preempt-rt and tiny to map_standard_kbranch() ead9ada yocto-bsp: use map_standard_branch() 64bdab9 scripts/lib/bsp/engine.py: update map_standard_kbranch() 60df8b4 yocto-bsp: update default custom kernel 32a3d0d yocto-bsp: add 3.8/remove 3.2 kernel from templates b76d079 bitbake.conf: Add LICENSE_PATH to sstate whitelist 2381e46 util-linux: Update License Information (remove GPLv3 Licnese) a6e5752 populate_sdk_base: search for perl scripts after symlinks are relocated 2c20165 gcc-cross-canadian: do not create symlinks to non-existent binaries 175c5ce elfutils: fix the num passed to memset in ar.c 23acf50 gnupg: fix PN -> BPN in do_install for multilibs 72e77b8 ttf-fonts: fix PN -> BPN in do_install for multilibs ef2ce8f python-imaging: fix PN -> BPN in do_install for multilibs abf8253 libatomics-ops: fix PN -> BPN in do_install for multilibs b5e5d25 package_rpm: Ensure PV manipulations are correct 1ceb13d icecc: improve interaction with sstate 8a9a933 elfutils: Fix size passed to snprintf for invalid sh_name case d350bb8 binutils: fix ineffectual zero of cache and array bounds issue 5b2aaa3 xf86-video-*: delete references to mibstore.h 2fbe818 xf86-video-intel: upgrade to 2.21.3 55cbf61 xserver-xorg: upgrade to 1.14.0 31c134b inputproto: upgrade to 2.3 ef730a2 neard: Update reference commit sha1 and install script e609afe qemu-native:fix do_compile failed on SLED 11.2 bc7bbe9 watchdog: Upgrade 5.12 -> 5.13 64b43ac psplash : update to latest SRCREV afd4e228c606a9998feae44a3fed4474803240b7 92281f9 package.bbclass: add debug-without-src PACKAGE_DEBUG_SPLIT_STYLE 23c88bb systemd: remove libsystemd-daemon linkage in libudev af7cf95 systemd: set the location of the kill binary d8851ea systemd: remove util-linux-mount dependency 10b6264 systemd: busybox's swapon now supports -p 03e13d8 busybox: enable swapon -p (91 byte increase) 1dc26af systemd-compat-units: add missing systemd-systemctl-native dependency e9fc232 xkeyboard-config: remove long-gone build dependencies 0e0e078 avahi: explicitly disable systemd if we don't want it enabled 3ace8b4 xf86-video-intel: add explicit dependency on udev 7a80810 polkit: explicitly disable systemd if we're using consolekit 423d68e connman: explicitly disable systemd if we don't want it enabled 796fc77 build-appliance-image: fix lost net connectivity after restart 24ec421 build-appliance-image: ethernet connection type is now bridged 5086eb7 build-appliance-image: upgrade to newer poky revision. cfab6e1 libxi: upgrade to 1.7 dfc5928 libical: add recipe back in oe-core 7803f5f package_rpm: Ensure package dependencies have correct version numbers 05f231d external-python-tarball: rename output package 062a5f6 lib/oe/lsb: enable getting distro ID when lsb_release is not installed 4da406c gst-plugins-gl: allow empty packages 3ebcbd3 gst-plugins-package: return few ALLOW_EMPTY settings e1efe76 linux-yocto/3.8: update EDF configuration 5aa490b linux-yocto/3.8: bump kver to v3.8.1 62e5e3e linux-yocto/3.4: update to v3.4.34 and LTSI refresh a3116c1 libtirpc: Fix build on uclibc 29ec481 wpa-supplicant: avoid host contamination by libnl3 e4a1927 wpa-supplicant: reorder do_configure 39ae5b5 wpa-supplicant: change S to point to the top-level directory f6cc25c gcc-4.7: Fix incorrect warning with -Wcast-qual 975e259 dpkg depends on ncurses cdd1038 rootfs_xxx.bbclass: fix bitbake -S hashes mismatch error d6a06cf musicbrainz: remove 365eb9b bitbake: bitbake-layers: fix duplicated help info 0aad8de base.bbclass: don't backfill features that already exist 9b4e10a tune-cortexa*: Fix TUNE_FEATURES and PACKAGE_EXTRA_ARCHS for thf-neon b00c6f1 gconf: make polkit an option, and disable by default 8a32acf apt-native: fix checksums 9d076dc package_deb.bbclass: set DPKG_ARCH_arm to "armel" fe614b1 consolekit: make policykit an option, and disable by default fb9bd46 libsoup-2.4: make libsoup-gnome optional 1905f25 strace: fix kernel release string parsing bdd6d45 perf: rename perf_3.4 to perf b3be332 perf: rename perf.inc to perf-features.inc 4b9b66f adt-installer: remove patches and .pc directories from the shipped tarball cf30a36 dropbear: update patch upstream status 5848c5c mkefidisk.sh: Cope with translations and modelnames with 'Disk' in it. 5ecdb3e soc-family: fix SOC_FAMILY override order 0c02924 upstream_tracking: update no-upgrade reasons d823759 core-image.bbclass: support read-only rootfs 142ae3b image.bbclass: add a hook funtion to support readonly rootfs 5a58631 libgpg-error: upgrade to 1.11 0572657 sudo : upgrade to 1.8.6p7 8219b2b Resolve sysvinit and util-linux conflicting man pages. 750d475 kernel-module-split: append space to RDEPENDS 00b7714 bash: Use new _ptest functions 6819d00 glib: Use new _ptest functions 0917a24 dbus: Use new _ptest functions bb49836 ptest: Move ptest checks from recipes to ptest.bbclass 9ed59a5 rpm: save output of postinstall scripts when image first boot f9cfc9f dpkg: save output of postinstall scripts when image firstboot 0276db5 opkg: save output of postinst scripts when image first boot d5cfb00 Near Field communication recipe for neard 0.9 45452bc pulseaudio: respect the systemd DISTRO_FEATURE e0e5763 pulseaudio: rationalise existing configuration using PACKAGECONFIG 1e6d0da bitbake-whatchanged: print what is about to happen 4d5ef2a bitbake.conf: add STAMPS_DIR for constructing STAMP d4e4703 buildhistory.bbclass: add support for SRCREV logging 6159ad1 connman: Wired inteface provisioned via qemu 3ab5908 connman: upgrade to 1.12 3be1c12 sanity.bbclass:check if necessary to add march to BUILD_CFLAGS 14cd284 iproute2: Fix build failure on ppc64 f4a10bb tune-cortexa7: add tunes for ARM Cortex-A7 3e32adc tune-cortexa15: add tunes for ARM Cortex-A15 995b04a shadow: add build dependency on shadow-native 6d5019a systemd: set the location of the kill binary 653f64f systemd: remove --with-distro option, it's not used 744eade systemd: remove unused cached configure variables 1d1d8f5 systemd: make gcrypt support (for signing the journal) optional 58b1ccf populate-volatile.sh: remove trailing whitespaces 297906d populate-volatile.sh: improve the handling of link config items bf7a5b4 populate-volatile.sh: add ROOT_DIR variable to support running at rootfs time 164a4cb bitbake: Revert "cooker: parse using bb.compat.Pool" ed76a48 bitbake: Revert "cooker: now that we use a Pool, raise the exceptions" 6663b79 libpcap: fix description variable 1c2d445 qt4.inc: package keyboard drivers 9589531 avahi: move systemd support where it belongs 712b42c gmp: fix missing PR after update to 5.1.0a 0f62ff3 gtk-doc: Fix B verses S issues c8fa23f slang: Fix .debug packaging warning after debug striping was fixed 66ed85a sstate.bbclass: Enclose sstate search parameter with quotes c446bbf insane.bbclass: Add ALLOW_EMPTY to list of package specific variables 51997fe packagegroup: Set ALLOW_EMPTY on a per package basis 81ac275 package.bbclass: Ensure all .so files get stripped bfd9b03 avahi: fix installed but not shipped warning 3936a26 perf: disable PARALLEL_MAKE 1122a41 package.bbclass: Fix do_package variable dependencies 4c6cc0b alsa-utils: Remove bogus comment 44260c2 populate_sdk_base/image: Fix races for variable mappings ba3318e sysprof: upgrade to 1.2.0 87f8f30 puzzles: upgrade to 9765 0fcb688 ethtool: upgrade to 3.8 9640e44 gpgme: upgrade to 1.4.0 47de85e libpng : update to 1.60.0 10de306 git: updated to 1.8.1.4 edd418a libtimedate-perl: updated to 2.30 5bc1925 gmp: updated to 5.1.0a 641446e lttng: updated lttng-ust and lttng-modules to 2.1.1 3cbd4be qemu: Upgrade to 1.4.0 release 9199c33 apt: upgrade to 0.9.7.7 7e2e2cf sstate: Add gtk-update-icon-cache-native to postinst recipes list 39d9aca gtk-icon-cache: use virtual/gtk-update-icon-cache-native instead of gtk+-native 4d367eb gtk+: mark as provider of virtual/gtk-update-icon-cache-native f075150 default-providers: add default virtual provider for gtk-update-icon-cache f9a94af gtk-update-icon-cache-native: add b1a7b15 sstate.bbclass: consider postinstall dependencies too a2d97d5 apr: add libtool to SSTATE_SCAN_FILES da9a415 documentation: Fix P entry f35ce02 buildhistory: Allow the version backwards check to be disabled bd73fa6 recipes: Fix ALLOW_EMPTY with no package specified db1d22a kernel-arch.bbclass: don't pass extra args to KERNEL_{CC, LD, AR} e3bf3d2 oprofile: update patch for powerpc64 2d16066 libpfm4_4.3.0.bb: use compatible host to limit arches 8e10538 gcc-common.inc: handle case where tune is not defined 5084807 iproute2: Fix build failure on ppc b24ef37 package_rpm.bbclass: Optimise per file dependency handling 2b8f2e7 kernel: extract functions for kernel modules to separate bbclass 93ec7b4 xserver-xf86-config: atom-pc doesn't need a xorg.conf 7ed4523 bitbake: siggen: add quotes around variable values to see whitespace 226c438 btrfs-tools: added PV to git package recipe 96d0ef1 Python: Fix for CVE-2012-2135 82cb88e weston: recommend some reasonable fonts so the terminal works e4125ea weston: add dependency on xkeyboard-config 0a5ed73 meta-yocto/linux-yocto: update qemu BSPs to 3.8 kernel 1a467dc linux-yocto: remove 3.0 linux-yocto recipes d5267af qemuimage-tests/dmesg: Add exception for error message on qemuarm with 3.8 kernel 68e1c56 linux-yocto: introduce 3.8 kernel recipe d756b3f linux-libc-headers: update to v3.8 1f82167 kern-tools: import configuration, controls and audit updates 08385ae chkconfig-alternatives-native: just append to PROVIDES 53cdf7b eglibc: move RPROVIDES to eglibc-package 7633467 bitbake.conf: move PERSISTENT_DIR outside TMPDIR f730a3a depmodwrapper-cross: Mark as machine specific b892099 sanity.bbclass: always use oe.lsb.distro_identifier method 22b1f63 package_deb.bbclass:fix meta-toolchain-sdk fail on do_populate_sdk 8e73fb5 package_deb.bbclass:fix the arch (replace "_" with "-") in deb package control fe39685 package_rpm.bbclass: Fix translate_smart_to_oe arch comparison 2997653 dev-manual: Added note about BitBake processing brace characters. d8e26e2 adt-manual: Updates to de-emphasize opt/poky and include sysroot b7397f3 dev-manual: Added multilib example references 94153bf dev-manual: Review comments applied for "Working in team" section f7d2cea dev-manual: Review comments added to "Working in Team" section 63788f1 dev-manual: Edits to the "Working in a Team Environment" section. b3b0317 poky.conf: update SANITY_TESTED_DISTROS for openSUSE cab45ae remake: added PV to git package recipe 40f8412 qemu.inc: Non deterministic compile of qemu 52d2947 Add scratch directory for NFS upcall state storage 1242dc5 zip: explictly disable bzip2 support 84baa1a perf: add bash dependency 0661518 systemtap: add python and bash dependencies bac332a Help ncurses-native find terminfo on RHEL 6 99ff74a eglibc: fix ldd RTLDLIST f090c15 rm_work: remove package and packages-split dirs e43dfc9 cups: remove old patch files 23c2bd0 pulseaudio: add config option to ensure valgrind is excluded 8264863 Add KERNEL_EXTRA_ARGS parameter 86d6ec5 module.bbclass: Create a new depmodwrapper to assist cross-installs be248b02 poky.conf: update SANITY_TESTED_DISTROS e5f3b99 sanity: use lsb distro_identifier 8506e4f package_rpm.bbclass: add more description for pre/post scriptlets b7cb380 package_rpm.bbclass: name postinst files with package name 820a64b perl-nativesdk:fix toolchain relocation issues aeb53bd populate_sdk_base.bbclass:fix toolchain relocation issues 298dabb matchbox-session-sato: do not rdepend on initscripts cef8f6b shadow: remove grpconv argc check 54aae18 kernel.bbclass: Add missing modules.order and modules.builtins 4a00757 Update pseudo to 1.5.1 ec3d3fa v86d: compile against userspace safe kernel headers cc1c217 linux-yocto/3.4: remove cedartrail machine d9149a0 kernel-yocto: allow building from fetcher source dir 61001aa kernel-yocto: respect SRC_URI modified branch selection 2af2545 iproute2: don't use the kernel header tree dce1da3 connman: add header to define in6_addr 22a5264 insane.bbclass: Merge linux-gnu entries in machine dictionary and add sh4 machine. c2fefcd rootfs_rpm: move run-postinsts scripts to rpm recipe 0ca565d systemd.bbclass: fix bb.error 5b9b014 systemd: systemd uses libkmod instead of modprobe, remove dependencies 9d6fb02 rootfs_deb: remove run-postinsts from ROOTFS_PKGMANAGE 0bedc0b sudo : upgrade to 1.8.6p6 f83ac67 gconf: update to 3.2.6 e4b7b10 minicom: upgrade to 2.6.2 3497b29 libassuan: upgrade to 2.1.0 4d1792d kconfig-frontends: Update to 3.8 cdbe76a resolvconf: Update to 1.70 ef6e4e9 file: Update to 5.13 baa357e lsbinitscripts: Update to 9.44 ea488f8 man-pages: Update to 3.47 746c1e8 boost: Update to 1.53.0 0a435c8 socat: Update to 1.7.2.1 90a9df2 nspr: Update to 4.9.5 fdfa57a qt4-embedded: Enable Linux Input support 0d2b60e binutils: Delete recipes for 2.22 68ddf00 binutils: Fix build with newer texinfo 5.0+ f55f605 packagegroup-core-tools-testapps: connman-client added 3312a2f mini-x-session: Fix starting of x-session 16e8d79 sqlite: rename version to match upstream versioning change d1e1f19 connman: enable connman client 399ca5d parted: fix several integer overflows 9f1c471 dbus: set correct address when using --address=systemd: f436271 lsbtest: sync test suite packages version a18e02b sstate-cache-management.sh: don't hardcode available sstate_suffixes 2032301 sstate-cache-management.sh:fix the incorrect usage of option `-d' fa066de sstate-cache-management.sh: fix remove duplicate failed when multiple archs 7ae2251 distrodata: added some corner cases for svn and git repos 4926276 Add kernel arch variable in SDK environment variable list for supporting build external kernel module using SDK b7c37e4 iproute2: upgraded to 3.8.0 146bff9 dbus-glib : upgrade to 1.100.2 a810e45 e2fsprogs : upgrade to 1.42.7 98d82a5 archive-*-source.bbclass: Handle all package classes 2b1afa1 archiver class: Use tasks with sstate instead of pre/post funcs 8e849a2 util-linux: Add package for libmount d7b248e augeas: change SRC_URI db3b539 lttng-ust: cannot find -llttng-ust-tracepoint 914e324 bitbake: cooker: now that we use a Pool, raise the exceptions 2cc4fe4 upstream_tracking.inc: Coonectivity and multimedia packages updates 35ed979 bitbake: perforce.py: fix the perforce fetcher 593ee36 siteinfo/insane: More n32 fixups f2e58a1 python-argparse: add RDEPENDS on python-textutils 16bbc47 base-files: fix 'dash' expanding '\n' ace5a94 tcp-wrappers: add socklen_t.patch 7c57659 meta-skeleton: Add example multilib usages 8918247 gconf: add patch to remove '+' from invalid characters list e96d541 tiny-init: Mount devtmpfs manually 5b9f8ae atom-pc: Prefer linux-yocto_3.4 4f4d82c install: Look for grub2 files on the initramfs, not rootfs c6209c9 rootfs_rpm.bbclass: Handle multilib configures with different OS values 5fa61e3 package_regex.inc: updated regexes 3624d89 external-python-tarball: code refactoring f3fe7ef genext2fs.inc: Add nativesdk build capability 13bf43f man: Remove wildcard from SRC_URI f841c83 linux-dtc: Make KERNEL_DEVICETREE_FLAGS configurable f1f054e libtirpc: upgrade to 0.2.3 b2e4a96 rootfs_rpm.bbclass: Reorder feed priority based on multilib image setting 5e3bbb6 base-passwd.preinst:fix creating passwd and group error e723d3b xserver-xf86-config: empty generic xorg.conf 4f977ab xserver-xf86-config: don't ship empty xorg.conf f017eb3 package_deb: check CONFFILES exist before adding them to metadata b1c8872 hwclock.sh: check for the existence of /etc/default/rcS c1aef57 ptest: Add missed .debug path abfc956 gst-plugins-gl: add package recipe c071797 groff: upgrade to 1.22.2 e4d2044 shared-mime-info: upgrade to 1.1 7e6d1ab cairo: upgrade to 1.12.14 a0277dd augeas: upgrade to 1.0.0 e04afd8 pulseaudio: upgrade to 3.0 c24a12d sbc: Fix PN -> BPN for multilib f7506f1 sbc: SBC audio codec 4baf4ca gnome-common: upgrade to 3.7.4 af3c53f xvinfo: upgrade to 1.1.2 35e4e9a xrandr: upgrade to 1.4.0 2d898ad curl: update to upstream version 7.29.0 05ad246 oprofileui-server: replace obsolete automake macros with working ones 5eb6a4a gtk-sato-engine: update to git repository head d5e4f5d webkit-gtk: replace obsolete automake macros with working ones 5ba79ef matchbox-session-sato: start the keyboard applet if we have no keyboard 4cd94db matchbox-keyboard: add RRECOMMENDS to matchbox-keyboard-applet 1cdacff matchbox-keyboard: general clean up 4878b3c pakcage.bbclass:use a better way to cut -dev/-dbg suffix 406cb99 bitbake: build.py: avoid deleting taint files when writing stamps 7d22ef2 bitbake: Revert "fetch2: Adapt encode/decode url to use URI class" 6bf55c6 rootfs_ipkg: fix BAD_RECOMMENDATIONS handling db0a024 toolchain-scripts.bbclass: add PYTHONHOME variable to environment-setup c78cc05 bitbake: utils: Improve remove funciton to handle whitespace 72ebe0c bitbake: bitbake/fetch2: workaround urlparse in older python not support git 9a2a321 bitbake: wget: Improve mkdir handling 7ca6e97 distro: remove web and gtkhtml2 from distro tracking 325410e bitbake: cooker: parse using bb.compat.Pool dde7a48 libsdl: Use 'virtual/nativesdk-libx11' instead of hardcoding nativesdk-libx11 0f8d6f8 dbus: Drop x11 support from nativesdk 1dc9e9c devshell.bbclass: Allow running devshell and fakeroot together c723d1a populate_sdk_base.bbclass: fix SDKTARGETSYSROOT value d10a2f9 sanity: check_path_length: replace tab with 8 spaces ec4c1ee pseudo.inc: pseudo 1.5 uprev, support extra config flags 3b9636a meta-toolchain-qt.inc: Use CXX when linking c7b23ab maintainers.inc: update ownership of recipes 7b59a34 bitbake: fetch2: Add SFTP fetcher 96f0a39 bitbake: fetch2: Add editor modelines for bb.tests.* dc9d989 bitbake: fetch2: Adapt encode/decode url to use URI class f860059 bitbake: fetch2: unittests for bb.fetch2.URI class 7feca4e bitbake: fetch2: Add a class representing a generic URI 46bd4fd bitbake: fetch2: Remove unused code in wget fetcher e13755a package_tar: Fix so it actually works 8fb417a package_tar: Remove completely pointless code 7e629a3 package_tar: bb.mkdirhier -> bb.utils.mkdirhier 398a6dc package_tar: Fix whitespace ba110d3 package_rpm/dev/ipk/tar: Drop unused functions 74938e3 package_rpm/deb/ipk: Error if we don't find packages when creating the package index 069a332 classes: Drop none package specific packaging variable accesses 68ceb02 conf: Remove unused ROOT_FLASH_SIZE variable from the config 00bbd21 perl: Add auto/XS/Typemap in perl-doc package 55d1757 bitbake: fetch2: Ensure directory for stampfile exists before trying to create it f7836b1 bitbake: utils: Use rm -rf in remove() 5da2485 dropbear: use pidfile for daemon start/stop/restart c677b7c tzcode-native: Fix SRC_URI checksum typo 21efb53 local.conf.sample: Enhance the SSTATE_MIRRORS example 3b909b3 systemd.bbclass: Dont use libdir and base_libdir for units c4d16fc gnupg: fix CVE-2012-6085 2cbefb8 sanity.bbclass: when bblayers.conf is updated, it invokes a reparse 70b731c package_ipk: check CONFFILES exist before adding them to metadata a9608dd scripts/bitbake: Remove all instances of paths to a layer's scripts directory. a3ca3ec alsa-lib: upgrade to 1.0.26 c96768b systemd: add udev-extraconf and USB/PCI IDs to RRECOMMENDS 4eca6f4 libpng: update to upstream version 1.5.14 3a154fa harfbuzz: update to upstream version 0.9.12 822552d gtk+: update to upstream version 2.24.15 01dab75 webkit-gtk: update to upstream version 1.8.3 e9a2c04 xev: upgrade to 1.2.1 b47e7b8 xf86-video-vmware: upgrade to 13.0.0 685e9c4 xf86-input-synaptics: upgrade to 1.6.3 15da1e1 xkeyboard-config: upgrade to 2.8 3d1fb4c libdrm: upgrade to 2.4.42 5628ab1 xf86-input-vmmouse: upgrade to 13.0.0 001fce2 xf86-video-intel: upgrade to 2.21.0 b803007 qemu: upgrade to 1.3.1 07803d5 bitbake: hob: remove save/load template functionality e36994f bitbake: knotty.py: fix unknown event bb.event.DiskFull 86ac3b5 bitbake: bitbake-layers: make show-cross-depends avoid long path 2c5ad40 bitbake: hob: remove parsing warnings when machine is changed 0e2ee5b bitbake: hob: no sanity checks re-run b058707 bitbake: monitordisk.py: disable the inode checking for some fs 804d1d5 bitbake: fetch2: Improve lock/done stamp file paths for local files 95e7dae bitbake: bitbake & hob: reparse config files, when sanity check updates bblayers.conf d5ef2e5 bitbake: fetch2: Ensure expansions happen in URL parameters in uri_replace 423dd2f bitbake: ConfHandler: Use re.X to make long regexp more readable bc7c8fa bitbake: tests/codeparser: Hack around circular inclusion problem 07dcffe bitbake: wget: Only use -O option when not spidering f966c54 bitbake: codeparser: Track bb.utils.contains usage 7e6f9ba bitbake: codeparser: Track appendVar and prependVar calls as we do for getVar 5a4ea38 poky.conf: Add Ubuntu 12.04.2 to sanity tested distros a02d566 Solved package namespace errors in PRS 82f2c85 tzcode/tzdata: Update to 2012j e4ae93a tzdata: Simplify code removing not used cases 789d577 tzdata: We shouldn't override the localtime if it is valid 444b6e1 Solved package namespace errors in PRS 5dab627 insane: remove unused variable 8c8b70c remake: do not create po files 72fdc8e yocto-docs: Fixup a couple of merge issues e57f862 dev-manual: Revision of "Team Environment" section. a005cda dev-manual, ref-manual: Cross-references between PR Service and cache ee180d1 template: Changed the font color for footers and headers cd474b0 dev-manual, bsp-guide: Added some links b876146 dev-manual: Updated PR Service section with comments ba9fc8a dev-manual: First draft of the PR Service section. 717c56c ref-manual: Created "Development Host System Issues" section dc7221b dev-manual: Fixed <ulink> to be on a single line. 4e13ad9 documentation: Removed three figures from poky-ref-manual 5d5800e documentation: Part 2 of 2 for YP doc integration into Eclipse. a41a805 documentation: Part 1 of 2 updates to integrating docs to Eclipse help. 7681523 adt-manual: Added cross-reference link for Cross-dev toolchain. 0ad26c6 dev-manual: Updates to expose cross-toolchain recipes. 3c984fd kernel-dev: Added note for YP release requirements. 1263e58 ref-manual: edits to update-alternatives.bbclass description. 40fde06 ref-manual: Edits to the question on how source code is fetched. 7183fe8 ref-manual: Updated SSTATE_MIRRORS glossary entry. 846a33e yocto-project-qs: Updates to how to use local directories for source c6f133f ref-manual: added MIRRORS glossary definition. 38670f4 ref-manual: Added PREMIRRORS glossary entry. c28948d dev-manual: Various typos fixed 05e2c47 dev-manual: Updates to "Using .bbappend Files" section cf10be3 dev-manual: three typos fixed. 093b007 dev-manual, ref-manual: Updates for BBPATH. 718e3b4 ref-manual, dev-manual: Updates to BBMASK variable. 6a926df ref-manual: Updates to the FILESEXTRAPATHS variable. 58f61cf ref-manual: new BB_DANGLINGAPPENDS_WARNONLY variable added to glossary. 78f1065 documentation: Add chunk.quietly option to eclipse processing e29a40c documentation/tools/eclipse-help.sed: Fix whitespace fcb3952 documentation/Makefile: Fix copying of figures folder 6c057d0 documentation/Makefile: Clean up eclipse target and update help. 239b469 documentation/Makefile: Added conversion of links to other documentation parts. a11f23b documentation/tools/eclipse-help.sed: Processes external links for eclipse html files 108ffcf documentation/Makefile: logic to make all for yocto-project-qs and cleanup 0f49fe1 documentation/yocto-project-qs/yocto-project-qs.xml: Convert fake-title section into articleinfo 72639b4 documentation/Makefile: Support for making Eclipse HTML yocto project qs manual ea2e921 documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl: new file 941d5e2 documentation/yocto-project-qs: Added custom title page bbe7cb4 documentation: Move yocto-project-qs global parameters to customization file f4bcee6 documentation/Makefile: logic to make all for poky-ref-manual and cleanup ac3d990 documentation/poky-ref-manual/poky-ref-manual.xml: Added Title tag c6af0b9 documentation/Makefile: Support for making Eclipse HTML poky ref manual 990fb57 documentation/poky-ref-manual/poky-ref-manual-eclipse-customization.xsl: new file e3980c4 documentation: Move poky-ref-manual global parameters to customization file d90e93b documentation/Makefile: logic to make all for kernel-manual and cleanup 367d699 documentation/kernel-manual/kernel-manual.xml: Added Title tag ea7905c documentation/Makefile: Support for making Eclipse HTML kernel manual deac178 documentation/kernel-manual/kernel-manual-eclipse-customization.xsl: new file da8cdf6 documentation: Move kernel-manual global parameters to customization file 8d54920 documentation/Makefile: logic to make all for bsp guide and cleanup 6485078 documentation/bsp-guide/bsp-guide.xml: Added Title tag b73e6cb documentation/Makefile: Support for making Eclipse HTML bsp guide d37c418 documentation/bsp-guide/bsp-guide-eclipse-customization.xsl: new file 81d2bcf documentation: Move bsp-guide global parameters to customization file 42b9f2c documentation/Makefile: logic to make all for dev manual and cleanup c94fd49 documentation/dev-manual/dev-manual.xml: Added Title tag 964db71 documentation/Makefile: Support for making Eclipse HTML dev manual e90dab9 documentation/dev-manual/dev-manual-eclipse-customization.xsl: new file b3f1c60 documentation: Move dev-manual global parameters to customization file 9ab3c01 documentation/Makefile: logic to make all for adt manual and cleanup c2c3b53 documentation/adt-manual/adt-manual.xml: Added Title tag 733a44d documentation/Makefile: Support for making Eclipse HTML adt manual 2586bd8 documentation/adt-manual/adt-manual-eclipse-customization.xsl: new file 551a5ee documentation: Move adt-manual global parameters to customization file ff553c4 documentation/template/titlepage.templates.xml: Remove title info b15730c mulitilib_header: Avoid sstate checksum issues for -native recipes 77a4497 kconfig-frontends: Depend on pkgconfig-native 34571f4 bitbake: Remove whitelisted vars from non-task deps 83e1015 bitbake: ConfHandler: Improve regexp to fix mis-parsing of += and no whitespace 56b8bb7 util-linux: Remove -systemd package 0be6d35 Python: Add missing dependency "textutils" to "io" package e3f5d7d multilib: Fix an OVERRIDES expansion order issue 3ec4df5 pseudo_1.4.5.bb: Finish fixing linkat() 56dc172 busybox: add config fragments a233998 gtkhtml2: remove, nothing depends on it e9dd482 web: remove gtkhtml2 version 600dff4 pseudo_git.bb: Bump to pseudo 1.4.4. 80d0081 libtool-native_2.4.2.bb: Always use /bin/sed for SED 4c548f1 site/x32-linux: Specify double alignment 7ed7eae scripts/qemuimage-testlib: Use wide option to ps calls f3df254 gtk+: use gtk-immodules-cache class 6cec82f gtk-immodules-cache: add weak asignment for GTKIMMODULES_PACKAGES 73c1f09 gnome-keyring: compile schemas on host 6e0a057 librsvg: use the new pixbufcache class c70d167 gdk-pixbuf: use the new pixbufcache class 2b24160 Add pixbufcache class b4c89bd fontcache.bbclass: use the postinst_intercept script ceabaf6 gtk-icon-cache.bbclass: use postinst_intercept script 5bb362a rootfs_(ipk|deb|rpm).bbclass: check package installation status after ROOTFS_POSTPROCESS_COMMAND 6cca7ef image.bbclass: add fall-back functionality when running intercepts 7306dbe Add separate directory for postinstall intercepts c77e1f4 Cleanup of upstream_tracking.inc file 02d2a5e distro_check: Remove creation of empty Meego filelist. 604568c mesa: upgrade to 9.0.2 656891d pixman: upgrade to 0.29.2 7d8a50e cairo: upgrade to 1.12.12 1c5702f gamin: replace obsolete automake macros with working ones 628fc90 diffutils: replace obsolete automake macros with working ones 311924f systemtap: replace obsolete automake macros with working ones 4104207 libidn: remove help2man dependency 15b0bdc texinfo: remove help2man dependency 17541be libevent: fix build with automake-1.13 40962b8 Write DPKG_ARCH to /etc/apt/apt.conf c160a98 relocate_sdk.py: allow relocate_sdk.py to work with python 2.4.x 7d023f3 populate_sdk_base.bbclass: Improve debugging capabilities for SDK installer 3eb70c0 relocate_sdk.py: Fix corruption of sdk binaries 5472873 meta-yocto: Document new oe-git-proxy in site.conf.sample 2df83a5 oe-git-proxy*: Remove previous git proxy solutions 9902eb3 oe-git-proxy: Use socat instead of BSD nc 0c988bf oe-git-proxy: Add a new comprehensive git proxy script c7c9f6c base.bbclass: Remove generate_git_config() ebc4a61 oe-buildenv-internal: Add upper and lower case proxy vars to BB_ENV_EXTRAWHITE e1fb5a9 oe-buildenv-internal: Remove GIT variables from BB_ENV_EXTRAWHITE e6053e5 qt4: use system SQLite 5f05604 gcc-cross-canadian: enable multilib support e9aa4c2 multilib.bbclass: save multilib variables before executing the gcc-cross-canadian statements 2c87657 systemd.bbclass: use PACKAGESPLITFUNCS instead of populate_packages_prepend ce3d508 fontconfig: rename the patches directory e767a2f fontconfig: drop explicit -native recipe 556217d fontconfig: remove unexplainable and broken build tweaking 8c22531 lib/oe/path.py: support missing directory components in realpath() d518019 package.bbclass: support dangling path components 00a2411 libiconv: Remove RPATH from binaries f9b894e glib-2.0: Fix ptest to build with uclibc. 21b6ff9 lib: implemented oe.path.realpath() f2e16c6 package.bbclass: use oe.path.realpath() a09c5d6 update-alternatives.bblcass: use oe.path.realpath() 1a80329 ncurses.inc: Fix display corruption and add fallback for sstate compiled paths de160bc wpa-supplicant: Enabling with systemd 7c8160c connman: Enabling with systemd 3936cef update-rc.d: don't do anything if systemd.bbclass is inherited aaa915b avahi: Enabling with systemd 66af82e systemd.bbclass: helper class for recipes with systemd units 05ee8bc nfs-utils: Create the default statdpath f7273d1 buildhistory: record more R* variables 98755bd buildhistory_analysis: handle more R* variables 0d85fa5 python-smartpm: show friendly error if YAML output requested without PyYAML 06e2453 runqemu: add option to make the VNC server publically available 42f221f make-3.82: Add patch from git to fix parallel make race cf8d4f7 udev: Cleanup .inc file aac8870 udev: PR bump bee0b38 udev: Modify init script to use the correct path of udevadm 3085f02 distro: remove orinoco-conf 78a1de8 distro: remove clutter-box2d 13bc04a distro: remove matchbox-stroke b6d8f96 bitbake: bitbake/utils: Improve environment handling to allow UIs access to original environment 20b4dca dbus-native: Don't install dbus-launch decf46b dbus: Drop old 1.5.12 version a38e4d9 udev: Add start/stop/status/restart support to init script 2e913bc initscripts: Add status function to /etc/init.d/functions 9a7b076 libcgroup: fix failure for absolute path 20d88ff rt-tests: fix cyclictest reported 1 sec latencies 0ad5e67 coreutils: remove dependency on coreutils-native eef73b4 eglibc-nativesdk: Fix buffer overrun with a relocated SDK 981bd3a ghostscript: fix endianness detection 858646c openssl: Add mips64 configure support. b320c22 libart-lgpl: add art_config for mips64/mips64el 3fd9c56 ghostscript: add pregenerated objarch for mipsel/mips64/mips64el fa6c12d populate_sdk_base.bbclass: add execution permission for self-extracting archive 82b2679 scripts/create-recipe: Bugfixes for create-recipe easy_install handling. 9ea8828 qemu: disable smartcard support d69d193 Revert: update-rc.d: disable update-rc.d.bbclass when systemd enabled 2d35828 systemd_197.bb: Point to the place where we keep the /etc/rcN.d files 7ee0579 pseudo.inc: Fix sqlite libdir again, pseudo 1.4.3 dab4662 create-pull-request: Error message on missing -u 81117fd base.bbclass: remove redundant setting of MAKE 2e5b6a6 uclibc: turn on kernel module support b228521 uclibc: add c6x arch 736383a base.bbclass: Commentary typo fix b07759a yocto-bsp: prepend includes in machine.scc files with machine 8c26342 qemu.bbclass: fix segfaults when running through pseudo 9f5a6f8 qemu.bbclass: Use the correct qemu binary in multilib cases c920f1a image.bbclass: Add MLPREFIX to DEPENDS 14fa964 qemuwrapper: Don't use STAGING_BINDIR_CROSS directly 5db5904 sanity.bbclass: Check for DISPLAY for qemutests in BB_ORIGENV now a0ef94d directfb: Really disable mesa 8f476a7 poky: Enable pkgvarcheck warnings 1ef926c bitbake: prserv/serv.py: Fix logging in daemon mode bdfc520 bitbake: bitbake: Always use separate process for PR Service afd24fa imagetest-qemu: Adapt to bitbake environment changes fef8454 terminal.bbclass: Use BB_ORIGENV to restore user environmental variables bc2b60c bitbake.conf: Update hashconfig after BB_ORIGENV changes 43bc214 package.bbclass: Replace undefined 'src' with valid variable 7980773 package.bbclass: Ensure package_get_auto_pr is run at the correct point 3b39e53 bitbake-prserv-tool: show error when export file does not exist 2180cc3 initiscripts: Fix populate-volatiles.sh whitespace 56bc2bb insane.bbclass: Add missing R* variables to pkgvarcheck 8868530 libxscrnsaver: improve RREPLACES to add libxss only for PN 20dc0fc connman: be explicit when enabling ofono 451f2d0 package.bbclass: return list of packages created in do_split_packages ccde53b sanity.conf: Update minimum bitbake version 945cd71 bitbake: Update version to 1.17.0 fe84fe0 bitbake: fetch2: Remove broken git variables from the environment 3863dfc bitbake: fetch2: Export upper and lower case environment variables 6fecb1a bitbake: cooker/utils: Drop custom 'interactive' variables list and store environment in BB_ORIGENV instead 1f192a7 bitbake: compat/utils: Add copy of python multiprocessing pool for pre 2.7.3 issues bc8150d scripts/create-recipe: Python improvements for create-recipe. 5b7c822 package.bbclass: Pre-expand some variables to save time 78955b8 package.bbclass: Better document the different phases of operation 4cae28e package.bbclass: Add PACKAGESPLITFUNCS variable 1c906e7 package.bbclass: Simplify empty directory removal 48f8eec package.bbclass: Various minor performance tweaks ee5e443 package.bbclass: Make use of cleandirs and dirs function flags 88badcf kernel.bbclass: Improve populate_packages_prepend 85b4891 package.bbclass: Rewrite split_and_strip_files f2ee5b4 package.bbclass: Fix up bb.mkdirhier/bb.copyfile usage f0bda89 update-rc.d: Drop OVERRIDES code f8ea6a8 staging.bbclass: Drop unused/legacy function 1e593e9 staging/insane.bbclass: Move legacy do_stage check iinto insane.bbclass 9244e44 insane.bbclass: Add documentation headers for logical code blocks 61c51a1 insane.bbclass: Add pkgvarcheck to check for suboptimal usages of variables bf25dd2 package.bbclass: use the multiprocess pool from bitbake b34fd60 package: Process package stripping in parallel e45db24 package: Don't export PATH d81aa06 package.bbclass: Multithread per file dependency generation code 6c6f6b7 sstate.bbclass: Ensure build directory is cleaned to start with dd61d22 sstate/path.py: Add copyhardlinktree() function and use for performance optimisation 6c7d6d6 systemd: remove /var/cache from volatiles 2a9dcc4 rpm: remove /var/volatiles/cache/rpm from the FILEs list ebe0730 initscripts: remove /var/cache from volatiles 0bb5577 fs-perms: remove /var/cache from volatiles e380838 base-files: remove /var/cache from volatiles 4832cd2 qt4: fix CVE-2013-0254 4cb7c9a netbase: split up in netbase and init-ifupdown 7c106a3 initscripts: add read-only-rootfs-hook.sh script db5847d initscripts: let populate-volatile.sh create the /tmp link f7bb0a9 sysvinit: add ROOTFS_READ_ONLY variable to rcS-default ac2671a linux-yocto: KERNEL_FEATURES should reference full scc files c5fe8bc linux-yocto/3.4: update to v3.4.28, 3.4.28-rt40 fe4af0a linux-yocto/dev: linux-yocto development tree tracking recipe b2d06ba intltool: updated to 0.50.2 10f05d5 classextend.py: use explode_dep_versions2 in order to preserve versions too f1dc17d oprofile: fix cross compile on powerpc and add libpfm4 dep 44f5f3f libpfm4_4.3.0.bb: add libpfm4 recipe needed by oprofile for ppc 0a1fa46 quota_4.01.bb: add e2fsprogs in DEPENDS 946e856 glib: disable selinux for native builds df4f0c2 pulseaudio: do not postpone postinstall e52c8b8 package_ipk, rootfs_ipk: remove the "set -x" be82ae9 liberation-fonts: use the new fontcache.bbclass e46f336 fontconfig: add sysroot option to fc-cache and fc-cat 5479aa4 image.bbclass: add a proper error message if hook script fails f33014f qemu.bbclass: return qemuwrapper instead of qemu-allarch 49f5daf add qemuwrapper-cross recipe c31bf65 add fontcache.bbclass 8f262e8 tcp-wrappers: remove size_t.patch 7f484df rpcbind: replace obsolete automake macros with working ones 30996a1 matchbox-wm: update to git master head 5549af4 opkg: replace obsolete automake macros with working ones 52b1b6c send-pull-request: add extra CC argument 77b1409 ipk: use OPKGLIBDIR in all places 626dc8b net-tools: upgrade to v1.60-24.2 4296d65 qmmp: update to 0.6.6 and fix e2ade5e nativesdk-qt4-tools: fix DEPENDS, as nativesdk is now prefixed ee1f126 bitbake: bitbake: fetch2: Print the complete SRCREV variable name when INVALID 97b7e4f crosstap: handle hyphenated x86_64 target arch 898a809 libgcc: Disable multilib install for nativesdk 7e9cb43 dropbear: fix RPROVIDES 04361bc openssh: fix RPROVIDES 36dd58a sip.bbclass: improve RDEPENDS to add python-sip only for PN c6d843f v86d: Use BP instead of P f7ed94c blktool: fix SRC_URI typo f4b0cc5 gcc: target: fix libiberty removal bf6c100 consolekit: add arch independent unpackaged files c85c6ca run-postinsts: use BPN instead of PN 7cf289b taglib: use LIB_SUFFIX in order to determine the correct baselib 8572f07 foomatic-filters: fix CUPS directory config 70114d9 syslinux: use BPN instead of PN ece7f0b sgml-common: use ${PN} instead of sgml-common 8834ca7 console-tools: fix linking when using the multilib compiler 685da74 enchant: use BPN instead of PN 0ce97e5 cpan-base.bbclass: Improve RDEPENDS to be package specific 2f497d0 initramfsframework: Improve RDEPENDS to be package specific 8a2d97e dbus-ptest: Improve RDEPENDS to be package specific 0514ec9 hwlatdetect: Improve RDEPENDS to be package specific d5be193 libxml-sax-base-perl: Improve RDEPENDS to be package specific b6bade2 initramfs-live-boot: Set RDEPENDS on the specific package that needs it 121e928 gdb-cross-canadian: Set RDEPENDS on the specific package that needs it 3b543d6 qemu: Set RDEPENDS on the specific package that needs it 3ed0077 v86d: Update SRC_URI to point to new file location. be7cabb dpkg: Add missing pkgconfig dependency ca97682 scripts/wipe-sysroot: add script to safely wipe the sysroots 4872ba3 package.bbclass: Allow per-package SKIP_FILEDEPS aa653b9 kernel-yocto/linux-yocto-custom: support low bandwidth options de22111 kernel-yocto: allow multiple / shared kernel feature directories 167e470 kernel-yocto: fix .scc and .cfg matching 996c3f8 kernel-yocto: make configuration audit details debug only 8d4b82e guilt: remove GIT_EXEC_BASE export b624b06 polkit: Enable systemd support d43cb49 matchbox-stroke: remove da8c827 clutter-box2d: remove a233b04 packagegroup-core-tools-testapps: remove clutter-box2d 1b3aad9 pax-utils : upgrade to 0.6 8a5fc57 orinoco-conf: remove 87cd4fc packagegroup-core-x11-sato: remove matchbox-stroke 691a990 distcc: updated to version 3.1 57bbb7d initramds-framework: add shutdown hook for udev 60f9aae (distro_alias|maintainers|recipe_color).inc: remove update-modules ed523e1 Remove zypper from distro tracking files 1d376f9 pulseaudio_2.1: Remove the dependence of fftw. 3c1b131 cmake: reset B from autotools, as this class doesnt like it e3b778a gdk-pixbuf: use correct build path when installing 01bf147 libpcap: fix relative path references 43e6131 gtk+: add missing $S references in do_install 4c01786 avahi: fix relative path in do_configure 285471c update-modules: remove recipe from oe-core 75f470c qt4: Add space for _appends 7a3d352 gtk-icon-cache: Fix rdepends construction e6149ec qemux86-64: Disable paravirt guest, causes test failure on older kernels 920ddb4 e2fsprogs : upgrade to 1.42.6 20822de icu : upgrade to 50.1.2 947e95b eglibc: don't list the same path twice in RTLDLIST 703b70c gcc: enable multilib for target gcc 6228587 module-base.bbclass: Call make instead of oe_runmake in do_make_scripts 912ecff libfm: add dependency on libexif 966aa9e module.bbclass: Allow for modules to be packaged seperate from ${PN} 497ec60 gst-plugins-bad: remove musicbrainz build-dependency f63db21 git: updated to 1.8.1.2 973e85c dhcp: Fix unshipped WARNINGS da57e6b license: fix LICENSE_CREATE_PACKAGE to stay disabled by default c0f4195 multilib.conf: add TARGET_ARCH & TARGET_SYS to MULTILIB_SAVE_VARNAME 4873366 autotools.bbclass: add EXTRACONFFUNCS variable b11f1bf systemd: systemd-analyze remove python runtime dependencies 6ff6b79 systemd: systemd-analyse has moved to base_bindir 9926eb5 systemd: Drop ppc build breakage patch for test-unit-file f95bbe3 systemd: bump PE to provide upgrade path from meta-systemd recipe 9ab151a xinetd: enable tcp-wrappers support 9f2784f Sudo : upgrade to 1.8.6p4 b5392a4 systemd: honor ROOT_HOME 8b8caef oprofile: remove AX_KERNEL_VERSION from acinclude.m4 e771031 oprofile: add kernel dependency 8f63fef busybox: update test case du-k-works 9a9848d python-smartpm: multilib fixes bbc374a metacity: remove, migrated to meta-gnome f938ef0 libcanberra: remove, migrated to meta-gnome 0516e9a Flex: use proper m4 binary on target 385854d rpcbind: Dont use nss with uclibc a3525ea libevent : upgrade to 4.0.21 e71a622 blktool : upgrade to 4-6.1 1e03821 libnl: Update to 3.2.21 6ff77d2 sqlite3: Update to 3.7.15.2 26ea367 package.bbclass: Use expanded RDEPENDS in read_shlibdeps 244f107 package: Create global package file list and use throughout PACKAGEFUNCS ed931d0 package.bbclass: Improve package_fixsymlinks 398d62f package.bbclass: Tweak PACKAGEFUNCS b369a36 package.bbclass: Split out package_fixsymlinks function f955e4e package.bbclass: Move PKG handling code to emit_pkgdata 8a0b457 package.bbclass: Avoid copying the datastore for FILES handling b0a2f55 package.bbclass: Check FILES once, not once per loop iteration ae8586c package.bbclass: Add a shortcut exit from the mkdir function afb1b3f package.bbclass: Improve kernel module handling fed8dff package: Rename splitfile functions to something more descriptive 8e5d8ed multilib.conf: Use BASELIB to set baselib, not hardcode the value e984aee sqlite3: Ensure MLPREFIX is applied to AUTO_LIBNAME_PKGS 8eab3f5 QT4: use '-no-neon' if cpu does not support neon 19ac10a dpkg-native:fix dpkg-scanpackages error at deb image creation time on Fedora 17 982eefe mini-x-session: Fix runtime when using without session contents 3ca9ff7 connman-gnome: Add DEPENDS on intltool-native 9a9586c libaio: Fix MIPS system call interface 12e76e1 multilib: skip packages that provide virtual/kernel dbfa6f9 kernel: avoid copying unnecessary files during do_install 4a4049b mesa-dri: add extra dri drivers 3f1280d insane.bbclass: removing outdated comment f651a84 oprofile: avoid processing files under .pc 8d80483 bitbake: bitbake-layers: print the recipe's depends that crosses a layer boundary d82eac8 bitbake: ssh.py: add example SRC_URI 9df0588 bitbake: ssh.py: throw ParameterError when someone tries ssh://foo; protocol=git e863851 bitbake: ssh: fix fetcher c30ef88 bitbake: hob: eliminate the "by recipe" grouping in the packages table b2ab771 bitbake: hob: Use a GtkTreeView to present and configure the sstate mirrors 785e1ba bitbake: tinfoil: support other fds, enable color support 5deae14 bitbake: hob: small fixes to parsing warnings dialog f0aef99 bitbake: bitbake & hob: implement functions to assure consistency for configuration files 33c6c41 harfbuzz: fix install of version.h 9a26b9c rpm: Ensure native binaries are correctly wrapped df70804 dev-manual: Added text explaining "meta" is not required for layer name eddb817 ref-manual: Updated FILESPATH glossary entry bdc130b dev-manual: Qualified the use of meta-intel in the BSP workflow 90a183b dev-manual: clarify what source is being archived e13a2ee dev-manual: fix gpl source release example 9a7bd85 dev-manual: use path independent bblayers.conf example 2373792 ref-manual: Changed the default BB Signature Handler d70e93c mega-manual: Removed support for old kernel-manual. eddb116 Makefile: Removed bits that support kernel-manual 5174240 kernel-dev: Added "-dirty String" section. 46dcd9f kernel-dev: Added "Inspecting Changes and Commits" section d36e479 kernel-dev: Added "Maintenance" appendix. 805a36c ref-manual: Fixed broken link to "Build Directory" term. a24cb73 kernel-dev: Added "Kernel Architecture" section. 36b5f97 kernel-dev: Changed the FAQ to be an appendix. 9ba5e61 kernel-dev: Updates to support new concepts appendix d029e78 kernel-dev: Added new appendix for kernel concepts. b80e983 kernel-dev: Added an AR to the beginning for Darren c9ea3c2 package_ipk/deb/rpm: Ensure deploy staging directory is empty before rerunning task fb2de94 directfb: Explictly disable mesa 643bac1 insane.bbclass: Fix incorrect getVar call b01b1a7 sstate: Move debug comment to more logical place 53dec01 bitbake: cache.py: Drop support for BROKEN variable b4f407c alsa-tools: upgrade to 1.0.26.1 27c8af1 module.bbclass: Don't add pkg_postinst/pkg_prerm to all packages in recipe 9618095 rootfs_rpm: Escape the backtick to ensure the ls runs on the target cfb0829 bitbake: build.py: Dump out performance data of individual tasks dd335b0 bitbake: utils.py: Add function for processing profile output 469bf3c mtools : upgrade to 4.0.18 f3dfb7c openssh : upgrade to 6.1p1 3ba2ce2 migrate_localcount.bbclass: use PRAUTOINX instead of PN & PV 30ec311 libcgroup: Update to 0.38 e1b9645 resolvconf: Update to 1.69 8d81257 util-linux: Update to 2.22.2 98a5433 dhcp: Update to 4.2.5 7fed403 file: Update to 5.12 6c11a8d cracklib: Update to 2.8.22 a495cc6 libidn: Update to 1.26 fffd4d6 man-pages: Update to 3.45 0b94ce4 mc: Update to 4.8.7 5640021 sysstat: Update to 10.1.3 9f45ab7 rgb: Update to 1.0.5 a4fbcfb libnl: Update to 3.2.19 de51b42 systemd: Upgrade to 197 f366fd3 icu: Fix build on uclibc bf41d31 quota: inherit gettext af6d093 eglibc: Backport upstream 2.17 patches 482a933 eglibc_2.17: Fix Tibetian locale generation error d7b8ad5 eglibc: Upgrade recipes 2.16 -> 2.17 b71a16e package.bbclass: remove RRECOMMENDS on base packages for locale packages 52268c7 buildhistory.bbclass: track also complementary package information e6cdf99 libcgroup: fix the QA issue for pam_cgroup.so* 43c2c5b sysvinit & initscripts: use update-rc.d 77eaad8 valgrind: update to 3.8.1 a921ed0 libaio: add aarch64 support f876c13 mtd-utils: split into multiple packages 336d70c alsa-utils: upgrade to 1.0.26 98bee84 xorg-minimal-fonts: depend on font-alias instead of shipping fonts.alias 44f232f gtk-immodules-cache.bbclass:fix support postrm at image creation time 92209ae gtk-icon-cache.bbclass:fix support postrm at image creation time 15aa713 license.bbclass: package license texts to PN-lic when LICENSE_CREATE_PACKAGE is enabled 2daab0b license.bbclass: extract functionality to find license files to separate function b2869b6 ref-manual: Added a general reference and link to kernel-dev 347e994 dev-manual: Scrub for correct YP manual cross-references. 9713fdc adt-manual: Added cross-references to profile-manual. 79d192f ref-manual: Added new KFEATURE_DESCRIPTION glossary entry. 5053b65 kernel-dev: General edits and links added. dd46994 ref-manual: Added new variable KBRANCH_DEFAULT. eb576ad kernel-dev: Links and edits to the Common Tasks chapter. 6493366 ref-manual: New KERNEL_PATH variable added to the glossary. ce6ed21 ref-manual: New KERNEL_SRC variable added to glossary. e6310f6 kernel-dev: Minor edits to the overview section. a24c555 ref-manual: Set KARCH as the top "K" entry for the glossary. 8c58a9c dev-manual: Edits to "Metadata" term. 4f3fdc3 ref-manual: New variable descriptions for KTYPE and KARCH. f37037f ref-manual: Edits to a couple variables in the glossary afb26dd ref-manual: Edits to the LINUX_VERSION_EXTENSION variable. 4648e34 ref-manual: Edits to the LINUX_VERSION variable. b4b1dc1 profile-manual: Fixed the "Tying it Together" side-lights. f3cb977 profile-manual: Fixed typo in last section 7e091de profile-manual: Fixed "short" figures to remove space. 5cd5cb2 profile-manual: Added links for literall http:// strings. 34f0fc3 mega-manual: Added support to build profile-manual. 37b290f Makefile: Updated to support mega-manual build with profile-manual 0c43dbb mega-manual: Added the profile-manual figures 842e3b8 profile-manual: Added blktrace section. e4746a5 profile-manual: Added LTTng section to usage chapter. 697b9ec profile-manual: Added Sysprof section to usage chapter. acb86de profile-manual: Added oprofile usage section. fcf6155 profile-manual: Systemtap section added. 44e838c profile-manual: Substituted real title image in. 82928e2 profile-manual: Added ftrace section to the manual. 41fe459 profile-manual: Corrected bad literallayout statement. 803ccdb profile-manual: Added profile-title.png to stylesheet 86478ff profile-manual: Updated indentation and sectioning 487a76f profile-manual: Correctly named "figures" folder. 1fbdf50 profile-manual: Rename of figures folder. 43f565a poky.ent: Added new YOCTO_DOCS_PROF_URL variable. 9bd5435 Makefile: Added support for the new profile-manual. 33b7996 profile-manual: Converted root XML file for profile-manual 7f64ad2 profile-manual: Second half of perf raw text entered. 89dbdec profile-manual: Adding raw text. cdacd87 profile-manual: Copied in raw "Examples" chapter. 982637f profile-manual: Copied in this raw text. 0ac8eba profile-manual: Raw text for introduction chapter. 6b7ae32 profile-manual: Added basic XML files and updated the .gitignore bc8c416 profile-manual: Created directory structure and loaded figures. dfc8421 gettext: Fix build with uclibc remove upstreamed patches 0380c0f eglibc: fix evacuate_scripts for external toolchains 1ae72ff eglibc-scripts: don't package mtrace, RDEPEND on eglibc-mtrace instead, fix RDEPENDS 584e7ce eglibc-package: remove infodir/dir if it exists 5298d6f gcc-configure-runtime: always remove info/dir e1c56ee automake: use autotools_do_install a1ac22a valgrind: explicitly disable MPI2 support 1af44d1 gawk: Add missing dependency on readline 2a314eb libpcap: Turn canusb support into PACKAGECONFIG 5916dcc libtirpc: Disable DES functions on uclibc 16cd29b tcmode-default.inc: Switch to git version of uclibc by default 1406f08 uclibc-git/uClibc.distro: Enable UCLIBC_HAS_REENTRANT_RPC 461dc8d wpa-supplicant: upgrade to 2.0 bbd280b systemd: remove usbutils dependancy ffff37f yocto-bsp: qualify user files with machine name 2f1aba5 prservice.py: fix NameError: global name 'host' is not defined ff72823 bitbake: bitbake-diffigs: Don't pull in tinfoil unless we really need/plan to use it 34b4158 staging: Drop obsolete comments b77d567 git: remove unpackaged perl-native files 7f08315 puzzles: upgrade to r9751 929ef59 cairo: upgrade to 1.12.10 5264982 perl: update to 5.14.3 e80f02a perl-native: update to 5.14.3: 4a7a476 meta: remove all mention of PCMCIA_MANAGER 0d2a301 sstate: Add optimisation for useradd injected dependencies 3247292 Split do_packagedata task from do_package c13e458 cairo: use directfb instead of gtk-directfb d3773da gtk+: remove directfb support 4111298 core-image-gtk-directfb: rename to core-image-directfb 07ab6f1 packagegroup-core-gtk-directfb: rename to packagegroup-core-directfb f8a4a74 init-live.sh: move /media/xxx over to the real root filesystem 8aa5089 prserv: change PRSERV_HOST semantics a25f99b base.bblass : Add support for cmake to PACKAGECONFIG. 8adcafc nfs-utils: Upgrade 1.2.3 -> 1.2.8-rc3 3991c55 gcc: Enable OpenMP compiling and library dbb0083 perl-rprovides: Fix perl-module-config anf perl-module-build providers 749e67d perl: Add dyanloader build hack ad17b18 perl-native: Add errno_ver.diff patch to native perl 240c552 cpan_build: Fix cmaker Build.PL module builds a6d462b Maintainers.inc file update 9150594 prserv: change PRSERV_HOST format 4a09c91 bitbake: bitbake-layers: fix get_file_layer 3183902 bitbake: cache.py: remove the duplicated self.file_depends 03fee6c bitbake: hob: hob do not use .hob dir for variables from local.conf and bblayers.conf 1db3531 bitbake: prserv: use only PRSERV_HOST 6930251 rpm: properly disable perl file dependency checking for rpmdeps f0e02dc sample.extended: Add DISTRO_FEATURES_INITMAN 34fb092 systemd: Fix build on ppc 5ec82dd libcheck: fix HOMEPAGE f0c8897 classes/image-swab: remove zypper-related references 7b5b8d1 sat-solver: remove fcdc8d7 libzypp: remove e90fad5 zypper: remove 1f8f6fe packagedata: Add error message if multiple recipes try to write the same package 932a4cd sanity.bbclass: Ensure tmpdir exists when running the check f19bdea core-image: Add hwcodecs IMAGE_FEATURE b064818 packagegroup-core-x11-xserver: Add XSERVERCODECS variable 4db8a3d base: make feature backfilling happen earlier c983634 bitbake.conf: unbreak all builds with custom DISTRO_FEATURES 4192520 core-image-lsb-sdk/dev: Inherit the base image instead of duplicating 8d6e55b prserv: add LOCALCOUNT to AUTOINCs migration feature cb902c3 qemu.inc: Define preferred providers for libgl, libgles1 and libgles2 b1c7b57 systemd: Fix build on uclibc 74ec9ba uclibc-git: Upgrades to latest git bd10a6d rootfs_rpm.bbclass: fix the unexpected postinst error a789dc9 blktrace: add back do_install method c325623 populate_sdk_base.bbclass: Allow installation of ix86 SDK on x86_64 host cd9ff3c bitbake: crumbs: Add file lost from previous commit 0a0e039 createrepo-native: update dependency ad1af9d bind: disable nslookup man page 685cde5 bitbake: hob: combo box updated correctly 5fc3fc3 bitbake: persist_data: add get_by_pattern method to API 1e50274 bitbake: parse_py: add ~ to config_regexp 37e025f bitbake: hob: Hob should display warnings generated during parsing 4c1ebc7 bitbake: hob: progress bar changed to busy cursor when you open log file eb9d31d distro-tracking: remove e-d-s and libical 7f9bbcc systemd: remove unused SERIAL_CONSOLE variable cd9483c systemd-serialgetty: skip package when not using systemd 1377a2d systemd-serialgetty: remove redundant statements f2f0a1a perl: Fix errors if configure is reattempted d1e6809 systemd: update uclibc patch headers 087e5e3 packagegroup-sdk-gmae: remove GUPnP stack as it's no longer in oe-core dcf494f gupnp: remove, migrated to meta-multimedia d3b84e7 site: add x86-32/64 alignment values for at-spi2-core 6b5e11d systemd: add missing patch headers 064d308 systemd: use new GTKDOC_DOCDIR and clean up 779d915 gtk-doc: parameterise the documentation directory 600ea90 systemd: fix typo in FILES e07e0f8 udev: skip in systemd distros, to fix world builds 148bcc1 systemd: skip in non-systemd distros to fix world builds a535851 bitbake: BBHandler/ConfHandler: Merge fix for multiline comments 73dc22b bitbake: bitbake: BBHandler/ConfHandler: Improve multiline comment handling bac53df dbus: upgrade to 1.6.8 21d0493 boost: Upgrade 1.51 -> 1.52 3d35558 gtk+3: refresh cross.patch 4287f70 bb-matrix: Fix min and max calculations 4de6f9b oprofile: backport patches to fix ppc build issues f63f387 package.bbclass: drop unnecessary and broken packages.remove() be2a150 oprofile: set correct kernel path e9b73c0 rpm2cpio: Update to match rpm4 specs for decompression 59e15f6 update-alternatives: Add a build-time dependency 3df0d23 populate_sdk_rpm: Re-add a few system provides to the SDK 37d295c scripts/lib/bsp/engine.py: add handling for JSON strings 1ca4b36 yocto-layer: add optional layer priority param 7b0026e scripts/lib/bsp/engine.py: refactor bsp-creation code 93d37a2 yocto-layer: add 'layer' template data bd1cb7b yocto-layer: add help/usage be42505 yocto-layer: new script 792b1bf scripts/lib/bsp/engine.py: add yocto_layer_create() 3b75d85 attr: convert to generic syscall numbers c14d9d6 nspr: add aarch64 support 6404dd1 poky-bleeding: Ensure poky overrides are applied 4d37fd3 Added DISTRO var to poky-bleeding conf file be319aa gtk-directfb: rename to directfb 0dedf2d Modified meta-yocto/conf/distro/include/package_regex.inc b353c3f lttng: update references to legacy lttng recipes 208a641 maintainers.inc: updated package owners 651b168 linux-yocto/meta-yocto: update hardware reference BSPs to 3.4.26 and LTSI 8bb0353 cpan_build: Fix bashism 545b00a libtool-cross: Add missing libltdl components to install 4d8abe2 liburi-perl: Add BBCLASSEXTEND for native version eabd860 package.bbclass: Fix shlibs cross package-arch contamination 4a61ee9 dropbear: Deal with truncated host keys by removing them 63ccf62 populate_sdk_base.bbclass: Work around bugs with gnu tar < 1.24 116fb4a package.bbclass: replace AUTOINC directly in PKGV b5659b7 linux-yocto/3.4: update intel graphics features/configs 0fdb0ae linux-yocto/3.4: update to 3.4.26 and 3.4.25-rt37 e4410b5 consolekit_0.4.5.bb: Package unpackaged systemd files a3ca06c kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC e344f3e libpam: register PAM session with logind c55926c packagegroup-core-boot: only install initscripts if we're using sysvinit 20dc0a5 base-files: add fstab for systemd based systems b94227f update-rc.d: disable update-rc.d.bbclass when systemd enabled 5b2e201 packagegroup-core-boot: install systemd-compat-units on systemd images b1add7c default-providers: Add systemd option to PREFERRED_PROVIDER_udev b8744d5 systemd: add systemd recipes b18886d dbus: respect systemd distro feature 4c8b2dd default-providers: Automatically set PREFERRED_PROVIDER_udev f8fb967 default-distrovars: Add DISTRO_FEATURES_INITMAN to DISTRO_FEATURES 349e5be guilt: add git 1.8.x support 09d0bc5 linux-yocto/3.4: integrate LTSI-3.4 97fdac7 linux-yocto/routerstationpro: enable GPIO_SYSFS d6e2fff linux-yocto/meta: update include statements to explicit .scc format 486e19d kernel-yocto: add KBUILD_OUTPUT to OE_TERMINAL_EXPORTS 28fb81a linux-yocto: normalize repository naming and SRC_URI options 11bafde kernel-yocto: remove unnecessary non-bare warning 363cb2b libnss-mdns:fix support prerm at image creation time ee5333b update-rc.d:fix support postrm at image creation time fbfaefb bitbake.conf: remove update-modules from DISTRO_FEATURES 71537bb kernel.bbclass: remove references to update-modules 173a618 module.bbclass: do not use update-modules anymore fb7ea95 hostap-conf: remove dependencies of update-modules 950704e orinoco-conf: remove dependencies of update-modules 36a6430 modutils-initscripts: improve modutils.sh e7ebff0 initramfs-live-boot: handle multiple udev locations 26bddbd pango: use qemu_run_binary instead of pango-native aac0365 base.bbclass: improve the incompatible license logic a bit d597053 base.bbclass: use debug messages for INCOMPATIBLE_LICENSE 197a4d5 linux-firmware: use LICENSEs which can actually be parsed cea9f48 license.bbclass: cleanly handle invalid licenses in incompatible_license 8491c2a license: correct re.search/fnmatch indentation feca9f7 license.bbclass: check LICENSE_pkg, not LICENSE_pn-pkg 411413a classes/image: improve debug-tweaks ssh server configuration 955568d dropbear: allow configuring blank password option at runtime 8ca0d59 classes/rootfs_*: error out if postinstalls exist with read-only rootfs 5e4671b iptables: upgrade to 1.4.17 89031c2 ptest.bbclass: don't add to PACKAGES if disabled 7cdfbc6 weston: add reference Wayland compositor 1e3372b mesa-dri: enable the wayland-egl platform cca05e3 wayland: add Wayland protocol library 1e1db84 x11-common: set XDG_RUNTIME_DIR if it isn't already set 2ad1894 bitbake: hob: Fix GTK+ and PyGtk version check error message to be more clear 94284f1 bitbake: hg.py: Fixed fetch failure that occurs when SRCREV is a tag. 0e408df bitbake: fetch2: Sort file checksums by value, not path fe30cbc bitbake: bitbake: data_smart.py and friends: Track variable history 4dd6d91 bitbake: bitbake: data_smart.py and friends: Track file inclusions for bitbake -e 9753283 bitbake: BBHandler/data: Standardise some setVar access formats 3db277b update-rc.d: fix failure on target 200743b kernel.bbclass: don't depend on DATETIME 64592f7 libffi: add AArch64 support 9f263a6 oprofile: add AArch64 support d701d98 kernel-dev: Links added for new glossary variable terms. 5087131 ref-manual: New glossary entry for SRCPV variable added. 11e9265 ref-manual: New LINUX_VERSION_EXTENSION variable glossary entry. ba0524c ref-manual: New LINUX_VERSION glossary entry. 762e4f0 kernel-dev: Fixed a typo in question 4.6. b43b8ef kernel-dev: Edits to the SCC reference section. 29d5511 kernel-dev: Edits to Advanced Metadata chapter 5487eeb kernel-dev: Edits to Introduction chapter. a0ac336 kernel-dev: Edits to the "Incorporating Out-of-Tree Modules" section. b34a140 kernel-dev: Edits to the "Working with your Own Sources" section. ac5cee5 kernel-dev: transitory edits. fcfa410 kernel-dev: Updates to "Using an Iterative Development Process" 095ee0a kernel-dev: Edits to "Modifying a Recipe" section. d5e6f2a kernel-dev: Removed original text from "Applying Patches" section. 719824f kernel-dev: Created new "Creating the Append File" section. 2512cbf kernel-dev: Edits to "Modifying an Existing Recipe" e4e2c72 kernel-dev: Edits to "Creating and Preparing a Layer" c9f796d kernel-dev: Re-write of the "Organizing Your Source" section. 5b1098d kernel-dev: Intermediary edits to the "branches" section. b663741 kernel-dev: Edits in the Branch section. 7eccfa6 kernel-dev: Created super section for Branches. f42c87a kernel-dev: Removed recursive include statement from examples. b56df97 kernel-dev: Re-write of the "BSP Description" section. 03dce08 kernel-dev: Re-write of the "Kernel Types" section. 48f8d9c kernel-dev: Re-write of the "Features" section. 472d58a kernel-dev: First re-write of the "Patches" section. 76f1ffe kernel-dev: Edits to the "Configuration" section. d176d86 kernel-dev: edits to the "Kernel Metadata Syntax" section. 545f79b kernel-ref: Edits to Recipe-Space Metadata" section. b63272c kernel-dev: General edits to "Kernel Metadata Location" section. ced75ce kernel-dev: Edits to using metadata in a recipe section. e826a50 kernel-dev: removed "many" based on Darren's Feedback. f9a8256 kernel-dev: General edits during re-write. 467cb3d kernel-dev: Edits to the introduction chapter. ea114c8 kernel-dev: Fixed the COMPATIBLE_MACHINE example. 826b9f2 kernel-dev: General edits for "Working with your own Sources" 00557ab kernel-dev: General edits up to section 2.4. 9a6c5e1 kernel-dev: Updates to the introduction chapter. 8d771b3 kernel-dev: Fixed some broken links. b5337ad kernel-dev: Added support for the FAQ chapter. 28b6aab kernel-dev: Initial edits to the kernel-dev-faq.xml chapter. 3abb7da kernel-dev: Added a new file named "kernel-dev-faq.xml". 5b2ed2a kernel-dev: Formatted the "SCC Reference" section. ece3e83 kernel-dev: Formatted "Feature Branches" section. 4916626 kernel-dev: Formatting "Machine Branches" section. fe1b20f kernel-dev: Formatted the "BSP Descriptions" section. d675ef0 kernel-dev: Formatted "Kernel Types" section. caacd30 kernel-dev: Formatted "Features" section. 1fa2bef kernel-dev: Formatted the "Patches" section. cc07a5e kernel-dev: Formatted the "Configuration" section. ef4d985 kernel-dev: Formatted "Metadata Syntax" section. e8dabb0 kernel-dev: Formatting "In-Tree Metadata" section. 4158e19 kernel-dev: Format of the "Recipe-Space Metadata" section. 7f62af0 kernel-dev: Formatting of the "Metadata Location" section. ea6d5be kernel-dev: First edits to chapter 3 intro and section 3.1. 46b0fc3 kernel-dev: Updated the root file to include the metadata chapter. 7c5dfcb mega-manual: Updated the top-level XML file. c9c0029 tools: Updated SED file that processes links for mega-manual a2606d3 Makefile: Added the kernel-dev-title.png file to tarball. 7d46d48 mega-manual: Added the title figure for the new kernel-dev book. 76c2ace kernel-dev: general edits to the Introduction chapter. 142de60 kernel-dev: Added original text into "Preparing a Layer" section. 9a5376b kernel-dev: Re-write of "Incorporating Out-of-Tree Modules" section. bb715c8 kernel-dev: Re-write of "Working With Your Own Sources" section. 1b23230 kernel-dev: Re-write the "Modifying Source Code" section. 2e106f9 kernel-dev: Re-write of the "Generating Configuration Files" section. 2c0358c kernel-dev: Re-write of "Iterative Development" section. 716306a kernel-dev: Re-write of the "Changing the Configuration" section. 74d43d3 kernel-dev: Re-write of the "Applying Patches" section. 1306d5c kernel-dev: Rewrite of the "Modifying an Existing Recipe" section. 1e76c5c kernel-dev: Rewrite of "Preparing a Layer" section. 974ef52 kernel-dev: Rough text in for new chapter. Makefile edited. 494e9ef yocto-docs: updated poky.ent to have a temporary URL for kernel-dev d0858cc kernel-dev: Updates to get the new kernel-dev manual to make 6833ec8 kernel-dev: Edits to set up root .XML file for new kernel-dev manual. 5cbeb84 kernel-dev: Created file structure for new kernel-dev manual. ea50862 lttng-ust: bump PE 7bfb985 bitbake: hig.py: refactor into individual components a746719 yocto-bsp: add basic git connectivity check e02b316 update-rc.d: check also that symlinks are valid a2375f4 apmd: fix license segment md5sum boundary 06a0d4a dbus: fix license segment md5sum boundary dc47fe7 libidn: fix license segment md5sum boundary b1bd1cd gperf: fix license segment md5sum boundary 8cd639b ethtool: fix license segment md5sum boundary 5f8c1bf shadow: fix license segment md5sum boundary d23be09 iptables: fix license segment md5sum boundary 87f778f gzip: fix license segment md5sum boundary a7cbb2e libidn: add checksums to version 0.6.14 recipe be161e0 ofono: replace obsolete automake macros with working ones a8534b3 tremor: replace obsolete automake macros with working ones 452c3df alsa-utils: replace obsolete automake macros with working ones 1c5a07e bluez-hcidump: replace obsolete automake macros with working ones 83f1e69 curl: fix build with automake-1.13 0f948ba libtirpc: replace obsolete automake macros with working ones d88f051 vte: replace obsolete automake macros with working ones 25d7771 sysfsutils: replace obsolete automake macros with working ones 0e43558 rgb: replace obsolete automake macros with working ones 81c78be libxsettings-client: replace obsolete automake macros with working ones 4eccc64 pango: replace obsolete automake macros with working ones 2465f17 polkit: replace obsolete automake macros with working ones 4642033 image_types.bbclass: Add and update comments regarding image types. b1ae967 connman: upgrade to 1.10 7048fbd connman-conf: configures connman in qemu machines e9a1696 Removed undisplayed picture from connman-gnome 0c1b609 runqemu scripts: add support for booting an ISO image 14363c3 recipes-kernel/lttng-2.0: rename to recipes-kernel/lttng 44a485f lttng2-ust: rename to lttng-ust 4a5ad28 lttng: remove 'legacy' lttng c292504 quota: upgrade to 4.01 b17b87c xz: LICENSE field is wrong 1306286 iproute2: upgrade to v3.7.0 94cd6a1 distrodata: Updated checkpkg task af430df db: upgrade to 5.3.21 880372e add meta-toolchain-qt d66d8ae qemu: machine override ability added 5119330 ia32-base.inc: Add more macros for xf86 drivers 35e407d xf86-video-modesetting: new recipe for gma500 7641301 perl: fix installed but not shipped issue 9eb88ce connman: fixed init script so connman can runs over nfs c7f170b initscripts: remove finish.sh d638fee gitignore: only ignore meta- directories 583d2b8 quilt: Don't use BUILD_ROOT on darwin. 3f5a047 quilt: Remove non-gnu.patch, and added configure flags for darwin. 2c7bba5 sstate: Do not add the --no-run-if-empty arguement to xargs when on Darwin, as it is not supported. 66d0b1d gcc: add missing dependency (zlib) f1fd0a2 bluez4: replace obsolete automake macros with working ones 42d2bee gmp: replace obsolete automake macros with working ones 45b958b gtk+: replace obsolete automake macros with working ones 2326328 startup-notification: replace obsolete automake macros with working ones be2c9d3 gconf: replace obsolete automake macros with working ones 084f706 opensp: replace obsolete automake macros with working ones dafbebc libvorbis: replace obsolete automake macros with working ones 0468add libmad: replace obsolete automake macros with working ones 5b91cdd libogg: replace obsolete automake macros with working ones 7879893 python: replace obsolete automake macros with working ones f6bc657 alsa-lib: replace obsolete automake macros with working ones c28b05f makedepend: replace obsolete automake macros with working ones 675a18d tslib: replace obsolete automake macros with working ones 7b87038 dbus-glib: replace obsolete automake macros with working ones de8ec21 help2man: update to upstream version 1.40.13 3ec3216 coreutils: fix license segment md5sum boundary d4397ab libxdamage: update to upstream version 1.1.4 53cc748 linux-libc-headers: fix headers install in long path name environments 5371d96 gtk+3: add 3.4.4 2a311dd gtk+: version installed gtk-update-icon-cache and use alternatives c8e7c30 boost: Use PARALLEL_MAKE for bjam d777af8 puzzles: upgrade to r9733 4739031 alsa-utils: add bash as a dependency of the alsa-utils-alsaconf rpm. 78e5426 apt-native: fix the creation of apt.conf.sample 60de86f pango: update to upstream version 1.32.5 9826ea1 harfbuzz: add recipe, version 0.9.10 0120167 directfb: fix build against Mesa 9 909b3be mesa: bump to 9.0.1 d5ce76d udev: Fix build with eglibc 2.17 a09fbc8 ofono: Fix build with eglibc 2.17 abc9273 valgrind: update configure for eglibc 2.17 bdb52d2 matchbox-keyboard: use the gtk-immodules-cache.bbclass 9129102 gtk-immodules-cache.bbclass: allow for offline cache generation aab3c13 qemu.bbclass: add qemu_run_binary() function f1b530f kernel.bbclass: Define MODULE_IMAGE_BASE_NAME for layer convenience. ef97708 musicbrainz: handle rebuilds 6bd2fb8 pkg-config: replace obsolete automake macros with working ones b03b351 flac: replace obsolete automake macros with working ones e5cc7ad gnutls: replace obsolete automake macros with working ones e7c6e6b libgcrypt: replace obsolete automake macros with working ones 5f792a0 libid3tag: replace obsolete automake macros with working ones 78dec5d pixman: replace obsolete automake macros with working ones 1b1e1b3 libusb: replace obsolete automake macros with working ones f34fe18 libpng: replace obsolete automake macros with working ones 34a4408 libx11: disable tests 8e1ca4b glib-2.0: replace obsolete automake macros with working ones 58c76a2 popt: disable tests 2442964 file: replace obsolete automake macros with working ones 4bb6960 pkgconfig: add -native script that uses the native sysroot instead of target b5fbf48 libnl: Update to 3.2.18 de446b7 bdwgc: updated to version 7.2d 531ccc8 lttng-2.0: components updated to version 2.1.0 b06f1f3 lsof: updated to 4.87 1226f29 nasm: updated to 2.10.07 4550b20 byacc: updated to 20121003 67e056a rootfs_rpm.bbclass: export INSTALL_PLATFORM_EXTRA_RPM 09ec2a4 kernel.bbclass: kernel_do_install fails with kernel <2.6.30 608b87e bluez-hcidump: updated to upstream version 2.5 a5f9540 gmp: add patch from upstream to unbreak AArch64 54021c2 python-smartpm: add dependency on python-pprint 25e5ba1 gettext-minimal: update files from gettext 0.18.2 024405c gettext: update to upstream version 0.18.2 7a5ed19 telepathy-mission-control: upgrade to 5.14.0 ebf8c55 telepathy-idle: upgrade to 0.1.14 0624d14 libtelepathy: python-native is now used during build 876aba0 libpcre: change BUILD_CPPFLAGS and BUILD_CFLAGS values 66f4c8a guile: add explicit dependency to avoid parallel build issue be78e81 sstate.bbclass:specify function dirs to avoid race 66db852 site/common: deactivate a runtime check for ipv6-support in python >=2.7.1 that fails when cross-compiling 6f5d6e2 runqemu-internal: add 'debugshell' as a default kernel option 278a3c5 wpa-supplicant: Include wpa_supplicant.service file in package for dbus to work 036e8fc buildhistory-diff: prepend to sys.path 181e76c bash: fix mkbuiltins build failure ebe201c .gitignore: Git ignore pull requests and built manuals 7e1f8fa perl: Remove bashism from perl-tests.inc 691a830 linux-libc-headers: make 3.7 the default and remove older libc-header recipes 2078ccf linux-libc-headers: add 3.7 version 4d40740 linux-yocto/3.4: update to v3.4.24 206ce57 linux-yocto/3.4: integrate v3.4.21, v3.4.22, v3.4.23 7d0d6f0 libart-lgpl: add AArch64 support b51a877 xf86-video-intel: upgrade to 2.20.17 3cf3a95 ghostscript: add AArch64 support a06958e qt4: blacklist untrusted SSL certificates 51ce143 libnl: Fix building using flex 39eb22b bitbake: build.py: Fix traceback when there are no dependencies 1d18845 gsettings-desktop-schemas: add missing elements from meta-gnome 5b65872 libgdata: finalize recipe removal 8ec1a47 dev-manual: Updated list of mailing lists to include listinfo 4c582a8 dev-manual: Various fixes for links, typos, and grammar 30c0c9e mega-manual: Fixed to include ref-manual. a44106a tools: Updated the SED file that processes links in the mega-manual. 7aa9df2 tools: updated the .sed file that processes the links in mega-manual e8ebe60 Documentation: ref-manual - Updated LIC_FILES_CHKSUM example. 2855f7e Documentation: Removing three unwanted files. 8753c6b Documentation: ref-manual - removing old poky-ref-manual files bb8e9d0 Documentation: poky.ent - Updated the YOCTO_DOCS_REF_URL 5f69362 Documentation: Makefile - Changes to support ref-manual folder ed0a240 documentation: Rename of poky-ref-manual folder to ref-manual. af19d88 copyleft_compliance: force the symlink creation db51e36 copyleft_compliance: grab the scm mirror tarballs d05bc20 git: updated to 1.8.0.2 b94fd21 gcc: restore FILESPATH c7041c7 oprofile: updated to 0.9.8 5648fec tcl: updated to version 8.5.13 9277733 nspr: added gnu-configize for AArch64 support 99c9cf3 libtasn1: remove help2man dependency b3c980c bison: remove help2man dependency efcb4fa libtool: remove help2man dependency c12a973 libgdata: remove recipe d036724 relocate_sdk.py: new interpreter string was not '\0' terminated 1cecbac util-linux: moved 'reset' into own subpackage 9f79f44 procps: initialized environment correctly (backported from classic) 41a15a9 image.bbclass: quote TARGET_VENDOR 1a27756 xserver-xorg: add AArch64 support 8ef71c0 base-files: Remove the redundant "/" 2ee93fe scons: updated to 2.2.0 54b8096 perl-rdepends: be more strict in multiline comment dd98eea cmake: add AArch64 support c2a87e8 libxcomposite: update to upstream version 0.4.4 5df4103 polkit: update SRC_URI and HOMEPAGE ab7f34d directfb: Rename __no_instrument_function__ macro to avoid conflicting redefinitions ca40915 prelink: update to git head 6852800 scripts/sstate-sysroot-cruft.sh: add simple script to find files in sysroots not tracked by sstate 6882eb5 scripts/sstate-diff-machines.sh: add simple script to compare sstate checksums between MACHINEs 09fe48b sed: upgrade to 4.2.2 3547f3e mutter: finalize mutter removal f8e94c7 gthumb: finalize removal a48efbf distro/poky: Add "Debian GNU/Linux 7.0 (wheezy)" as know distribution 71f2296 Added regex file in meta-yocto/conf/distro/include. b03c418 icu: update to upstream version 50.1.1 faf94a9 package.bbclass: Skip testing "packages" a second time. 2d5781a vte: add missing unpackaged files fe21ffd libnl: Update to 3.2.16 e38ce33 cairo: Adds libxext in X11DEPENDS. d12bffc lib_package.bbclass: Correct comment referring to bin directories. 0f2614b mpfr: update to upstream version 3.1.1 35f0d0a chkconfig-alternatives-native-1.3.59: add recipe eb91689 chkconfig: package the update-alternatives implementation 6c7ab51 chkconfig: obey sysconfdir, base_libdir a045d23 chkconfig: don't inherit autotools 925ffcb opkg-native: obey virtual/update-alternatives-native 7f8eeda update-alternatives.bbclass: use absolute paths for link targets 14649c0 init-live.sh: avoid duplicate mount points for the same filesystem 9f5e0b8 gmp: update to upstream version 5.1.0 60284f0 gmp: update SRC_URI and HOMEPAGE 102c97b pcmanfm: upgrade to 1.1.0 f6f5382 libfm: upgrade to 1.1.0 f6da046 automake: update to upstream version 1.12.6 5ffe7a2 kernel.bbclass: include PE in KERNEL_IMAGE_BASE_NAME 296617d rpm: replace /usr/lib with ${libdir} 6870465 sysstat: fix sa_lib_dir f92d88d eglibc-locale: enable multilib 94516ce package.bbclass: don't prepend MLPREFIX to LOCALEBASEPN 785512a libpam: enable multilib 4601eb9 perl: update dependency creating script dd65b82 perl: update RPROVIDES and popuate_package script 61583fe perl: add sub-package perl-tests 52c6393 autoconf: update RDEDENDS b03f4b7 Added ability to parse python sources to create-recipe 5d8a2e8 pango: have postinstalls run at do_rootfs time 09359e6 freetype: update to 2.4.11 which includes fixes for CVE-2012-{5668, 5669, 5670} 4b5705c webkit-gtk: fix build with bison-2.6+ 5c0e660 iproute2: DEPENDS on iptables c8bc7a7 sqlite: update to upstream version 3.7.15.1 1cfb12b curl: update to upstream version 7.28.1 b7515e2 xf86-video-omap: skip package if opengl isn't in DISTRO_FEATURES 83e8148 xorg-driver: enable multilib 5be92d4 xserver-xorg: enable multilib 1674541 multilib: fix allarch/kernel/module-base multilib issues 415c4fa eglibc: run libm-err-tab.pl with specific dirs in ${S} 9a1c999 replace portmap with rpcbind. 7f221da libcroco: fix license 9fc0588 shared-mime-info: upgrade to 1.0 645ccbb metacity: upgrade to 2.34.13 996be05 menu-cache: upgrade to 0.4.1 c31a72a matchbox-panel-2: fix PV db1efda libuser: upgrade to 0.58 28dbb92 libsoup-2.4: upgrade to 2.40.2 283c7b8 libcroco: upgrade to 0.6.8 ce2414a json-glib: upgrade to 0.15.2 adaf352 gthumb: remove recipe b48d38c gsettings-desktop-schemas: add recipe 4233009 gnome-doc-utils: upgrade to 0.20.10 ee00527 ethtool: upgrade to 3.7 4a36a32 libpng: fix packaging 9dc384d gtk-icon-cache: don't call gtk-update-icon-cache on files 36f8380 subversion: updated to 1.7.8 26b486f rpm: remove declaration of "sykcparse" 26dfd24 nasm: upgraded to 2.10.06 216bcec libmusicbrainz: upgrade to git SRCREV 0749dd0a35b4a543 aa90e60 iptables: upgrade to v1.4.16.3 ae84362 runqemu: change terminal's INTR key in 'serial' mode 4491154 bison: update to 2.7 7d450fb cml1: set and export TERMINFO, to handle ncurses-native relocation 845c2c0 oprofile: use dynamic root home directory 2af073a base-passwd: use configurable root home directory 07b842f base-files: use dynamic root home directory de5b44a bitbake.conf: import var ROOT_HOME 1d55450 wireless-tools: Remove QA warning: No GNU_HASH in the elf binary 716578c blktrace: essentially rework the recipe, obey LDFLAGS 9d985e9 freetype: Update EXTRA_OECONF to use host gcc. f83ff49 Add ptest for bash. 0c7da2f Add ptest for dbus. ddce381 Add ptest for glib. daad0d8 New package: ptest-runner 1d2c683 Add a new distro feature "ptest". 627e745 python: add -crypt as a dependency on -math 5cf8c95 telepathy-glib upgrade to 0.20.1 ff877a2 ofono: upgrade to 1.12 3c77b8c Fix typo in kvm capability detection in runqemu abf0ad8 slang: added gnu-configize for AArch64 support 90c0eb2 rootfs_rpm.bbclass: remove debug code 957e090 cmake-native: add checksums 80bc9a0 icu: reduce what's needed for cross tools 6d0508a lsbinitscripts: Don't compile 4392663 initscripts/urandom: create directory before staging into it 681bfd4 neon: added --disable-gssapi da89b4c libpng: update to upstream version 1.5.13 756d84a lsbinitscripts: update to 9.43 690265b dpkg: Update to 1.16.9 771d087 cmake: Update to 2.8.10.2 02491b4 cups: Update to 1.6.1 abbb4e1 less: Update to 457 2d96820 gconf: Update to 3.2.5 32b7b30 nspr: Update to 4.9.4 d0505b7 man: Update to 1.6g 3cdf7e2 sqlite: Update to 3.7.15.0 ed5d870 init-live: default to initrd shell if image isn't found ccc394e matchbox-session-sato: use a proper schema file bb0a66c xinetd: added gnu-configize for AArch64 support 9642794 net-tools: disable Token Ring and Strip support - both got removed in 3.7 kernel e1269dd gcc-cross-canadian.inc: Add dependency on cross-gcc 9ed113a python-smartpm: improve error reporting 1874c8d package_rpm.bbclass: Refactor the attempt only install 84a5c63 classes/image: handle multilibs in complementary package lookup caaabe6 packagegroup-base: use virtual runtime instead of keymap 632fefd udev: fix failed /dev/shm mount 07ac3e1 psplash: enable multilib f144a97 polkit: fix multilib packaging issue 984d908 bluez: set correct udevdir a1a48b8 pcmciautils: set correct udevdir and add missing debug files 805bbd1 alsa-utils: Pass udev-rules-dir as parameter 2c57f28 bitbake.conf: add nonarch_base_lib variable 9e41867 packagegroup-toolset-native: don't include mesa-dri-glsl-native 9596495 ICU: upgrade to 50.1. c21f80b matchbox-theme-sato-2: remove, depends on matchbox-wm-2 7f2c15b matchbox-wm-2: remove 4bb1487 mutter: remove 6dbd1a3 xf86-video-intel: upgrade to 2.20.16 63e789a xserver-xorg: upgrade to 1.13.1 5f178fc gtk+-native: add gtk-update-icon-cache wrapper 359eb51 gconf: add gconftool-2 native wrapper 4606a8b distcc: use useradd.bbclass to add the distcc user 83242c8 avahi: use useradd.bbclass to add avahi-autoipd user 3929b60 pixman: update to upstream version 0.28.2 7dd275a gdb: update to upstream version 7.5.1 062604e gdk-pixbuf: update to upstream version 2.26.5 6065619 guile: update to upstream version 2.0.7 00dd34b patch: update to upstream version 2.7.1 b6db3f0 patch: drop global-reject-file patch 9e941bb gtk+: update to upstream version 2.24.14 7202ab6 fontconfig: update to upstream version 2.10.2 8c57766 iptables: include /usr/share/xtables/pf.os in PN if it's build 3d154ae kernel.bbclass: Allow modules*.tar.gz generation to be inhibited 79f31ad kernel.bbclass: use the same versioning schema for modules.tgz and provide link to latest e3ce473 bitbake.conf: exclude DATETIME var dependency from IMAGE_NAME 5f25156 rootfs_*.bbclass: exclude BUILDNAME var dependency from do_rootfs 2a9c574 gst-openmax: fix build with newer GLib 91b6a48 gst-meta-base: don't rdepend on ximagesink/xvimagesink d0f3520 bitbake: fetch2: remove localcount and use AUTOINC instead f39e75d bitbake: data: Ensure emit_func honours vardeps flag 1e548a7 sstate.bbclass: Improve stamp-extra-info task handling to avoid warnings 2636cb1 sstate.bbclass: Remove unused/uneeded variable d46766e sstate.bbclass: Simplify overcomplicated cleanall function e651c1a lib/oe/patch: Use force option when creating symlinks to patches 5cf293b distutils: Replacing path to native python by path to python in the image to support python packages with console-script setup 47d6d15 xserver-xorg: add libgcrypt dependency c511d0e cups CVE-2011-3170 cdb3989 cups - CVE-2011-2896 355fb13 librsvg: CVE-2011-3146 8780c5d libxml2 CVE-2012-2871 4371e8f cups: CVE-2012-5519 b2b1d86 linux-firmware: split out ralink drivers 02cb808 mesa: remove dependency on mesa-dri in mesa-dri-dev c5d7ab6 autotools: copy also remove-potcdate.sin from ${STAGING_DATADIR_NATIVE}/gettext/po 9050f30 gettext: move remove-potcdate.sin from gettext-native to gettext-minimal-native ea2a7ae ghostscript-native:fix host underlinking issues 5b3ffce squashfs: fix CVE-2012-4025 f023d05 iperf: pass in target path vars ec70f9e perf: pass CFLAGS and LDFLAGS eef3b8d perf: kill -Werror 40bb94f newt: enable python support 44c9d1f native tools set packagegroup 3fa98d1 package_rpm: Workaround for 'all' arch multilib package naming 2173ca2 package_rpm.bbclass: Add a simply way to enable RPM debugging e1345b7 rpm/smart: Fix runtime-relocation issues w/ RPM and Smart 8b67164 package_rpm.bbclass: Add additional install error detection 4a7151b package_rpm.bbclass: Add support for incremental installs f946417 package_rpm.bbclass: Add additional logging 06afdb8 package_rpm.bbclass: Fix the way the RPM platform file is generated a6aa748 package_rpm: Update the way the multilib package names are translated ba08a8c Update sanity tests to use smart instead of zypper 2997a70 classes/rootfs_rpm: install smart instead of zypper in rpm-based images 019ba25 classes/*_rpm: integrate Smart into RPM filesystem construction b05efc2 runqemu: add support for FSTYPE=vmdk b70784c mkelfimage-native:make failed if libz not in host 958162e bitbake: hob: use base image only if it was set 5ce8c7f populate_sdk_base: Add perl modules as needing to be relocated 4c299b7 libsoup: RRECOMMEND glib-networking cf0692b beagleboard: use xf86-video-omapfb 24de240 e2fsprogs: fix out-of-tree builds 27b5b06 font-util: fix out-of-tree builds d3b2edd base-passwd: fix out-of-tree builds 3639c65 libgcrypt: fix out-of-tree builds 250c4d2 gperf: fix out-of-tree builds 3f14074 ossp-uuid: fix out-of-tree builds 4fd512f pkgconfig: fix out-of-tree builds 38cac82 apr: fix out-of-tree builds 312dd2e curl: fix out-of-tree builds f3f4ac3 Update the SRC_URI in systemtap recipe f9d9cc8 bitbake: hob/bitbake: custom image is now using the base image a947b54 bitbake: knotty: use bb.error instead of print ad29d14 bitbake: git.py: A bit of tidying up regarding grammar and supported protocols. 6ec6bf4 bitbake: bitbake.vim: detect *.bbappend files in ftdetect automatically aa27238 gitignore: Add hob-image-*.bb 853d707 bitbake: data_smart/BBHandler: Fix SkipParse exception handling 5d96836 bitbake: bin/bitbake, bb/__init__: Move BBDEBUG handling to bin/bitbake dc637ae bitbake: command: Fix getCmdLineAction bugs 1572c15 bitbake: command: Add missing import traceback 1b0c0f2 Disabling audio on when running runqemu qemuarm 936c460 module.bbclass: make sure do_make_scripts() executes after do_patch() 0231336 chrpath.bbclass: Normalize rpath only of it doesn't contain ORIGIN variable 14f4cfc mesa-dri-git: remove patch that doesn't apply to 9.x da598d4 eglibc: fix checksums of fetched patches a0a265e poky-tiny.conf: blacklist inappropriate image options 0be41d6 yocto-kernel: add support for PRs of the form rN to pr_inc() 76b2ef2 yocto-bsp: remove patch-related SRC_URI processing 8a1d25c yocto-kernel: handle SRC_URIs in .bb files 6c7f426 yocto-kernel: remove assumption that kernel has a version 5fc9990 yocto-kernel: don't list comments in config and patch listings be93447 yocto-kernel: create open_user_file() wrapper function 125eb6f yocto-bsp: add replace_file() 205872b yocto-bsp: add 'edit-file' input line c08a4dc yocto-bsp: add 'edit-git-repo' input line 254bf8c yocto-bsp: update existing templates for linux-yocto-custom 4dc96e3 yocto-bsp: add 'custom' choice to kernels() 9753196 yocto-bsp: add custom kernel support 8669fec chrpath: normalize the paths dc8bdc8 libacpi: Remove QA warning: No GNU_HASH in the elf binary 70593a1 mesa: package osmesa.pc 71594f8 coreutils_6.9: Update the older coreutils to no longer provide 'su' 1f476db rootfs_rpm.bbclass: Revert to default shell logging behavior 722430a bootimg: Use FAT 32 for images larger than 512MB 2f85e62 eglibc: remove dependency of eglibc-utils on bash 5693f3e tar: apply fedora patch for fortify sources sigabort db07a94 matchbox-keyboard: fix the build with libpng15 d7bca38 libmatchbox: upgrade to 1.10, drop git ebd508d libpng: enable nativesdk variant 8251685 create-pull-request: detect trailing white space fad3986 eglibc: add AArch64 support 07dd59d gdk-pixbuf: handle postinstall errors differently 0496ba3 populate_sdk_(deb|ipk|rpm): export NATIVE_ROOT and INTERCEPT_DIR variables 4809890 telepathy-glib: remove pkgconfig dependency in pkgconfig 9820786 libpcre: Improve the recipe f615f0c libpcre: upgrade to 8.32 b81f427 libuser: enable python support 505f88f qemu: upgrade to 1.3.0 24b4976 pixman: upgrade to 0.28.0 009d19a documentation-audit.sh: Add/fix checks for skipped lines. 4591512 Documentation: poky-ref-manual - Updates to WORKDIR structure 044a8f9 Documentation: poky-ref-manual - Updated STAMPS directory information 0173d4e documentation: poky-ref-manual - Fixed typo. 0b18e1d Documentation: yocto-project-qs - Removed all trailing whitespace. 73ffb82 Documentation: poky-ref-manual - Removed all trailing whitespace. acb3f72 Documentation: kernel-manual - Removed all trailing whitespace. 72d01bf documentation: dev-manual - Removed all trailing whitespace. eb8c9e1 Documentation: bsp-guide - Removed all trailing whitespace. 3bcdba6 documentation: adt-manual - Removed all trailing whitespace. 205c796 Documentation: dev-manual - Fixed maintainer link. 3dc3fe3 bitbake: BBhandler/data: Fix __inherit_cache duplication 8ead7dc bitbake: BBHandler/ast: Simplify/fix EXPORT_FUNCTIONS usage f823f0a bitbake.conf/utils: Drop some OVERRIDES from FILESPATH a190aba x11vnc: bind vnc server to port 5900 9240695 package.bbclass: prepend MLPREFIX to LOCALEBASEPN 2437aae multilib.bbclass: fix do_package_qa_multilib ab0933e build-appliance: Updated to include bblayers.conf.sample fix d4a4d00 build-appliance: provides git proxified acces 66d92cb mesa-dri: upgrade -git version to current master a63dc47 mesa: upgrade to 8.0.5 cf94122 mesa: common packaging cleanup 74b2e40 mtd-utils:fix corrupt cleanmarker with flash_erase -j command 1386690 nativesdk-qt4-tools: fix do_configure to be reentrant 89230ea qt4: upgrade to 4.8.4 3488973 package.bbclass: make do_split_packages handle non-existent root directories ec17940 base/license.bbclass: handle multiple INCOMPATIBLE_LICENSEs 82d6ef6 populate_sdk_deb.bbclass: put back INSTALL_PACKAGES_NORMAL_DEB 52a9ae6 hob-toolchain: Update for removal of dummy classes c607095 bitbake: Revert "BBHandler: Ensure parser state engine is correctly reset for new parsing" e353249 base.bbclass: Remove implicit dependency on license.bbclass d175cf0 rt-tests: added missing dependencies in Makefile 260fd34 documentation: poky-ref-manual - Fixed grammar typo. f00ba68 Documentation: dev-manual, bsp-guide, poky-ref-manual - bblayer.conf updates ac1981e documentation: Makefile - Added tarfile to the clean target 6a6ebdb documentation: kernel-manual - removed white-space a21cf1b documentation: kernel-manual - Fixed broken link. 1793879 documentation: poky-ref-manual - PACKAGECONFIG typo corrected. 377aee7 documentation: poky-ref-manual - PACKAGECONFIG edits 2320085 bitbake: BBHandler: Ensure parser state engine is correctly reset for new parsing 25bc944 rootfs_ipk/package_ipk: Simplify opkg commandline option variables 0e486c7 image/populate_sdk: Simplify imagetest inclusion and drop dummy class file e3c2952 bootimg: Remove now unnecessary dummy inherit usage f42e0ae license.bbclass: Including locale packages 1d61099 update-alternatives.bbclass: Add missing runtime dependency d3154aa sstate: fix typo dd3ad7f sstate: fix typo 68d62ff git: fix unpackaged python files ade680a populate_sdk_base, adt_installer_internal: fix issue on older distributions 0b5772c mesa: remove atom-pc specific overrides b660a10 buildhistory_analysis: fix broken list length checks 97a91e8 sstate: fetch .siginfo files from SSTATE_MIRROR a2908e2 util-linux: Package systemd files correctly 6a86776 Added regex functionality to distrodata.bbclass ae4a896 util-linux: rebase remove-lscpu patch 99e36ac qt4-native & ghostscript: update upstream status for their patches 6847325 zip: Remove QA warnings: No GNU_HASH in the elf binary ff796ed babeltrace: upgrade to 1.0.0 2656c37 liburcu: upgrade to 0.7.4 59a7046 prs: use the PRServer to replace the BB_URI_LOCALCOUNT functionality 65049e9 nasm: upgrade to 2.10.05 0845bc2 libconvert-asn1-perl: upgrade to 0.26 6df2a60 libaio: Remove QA warning: No GNU_HASH in the elf binary 139efd1 quicky: tidy up inherit 49d58b3 python-smartpm: don't try to remove /usr/share/share twice 792fa1c at: change initscript dependency from build time to runtime 46eabf3 classes/binconfig.bbclass: Allow packages to add sed expressions 1e63822 libpcap: PR bump because of PU for libnl 052b662 wpa-supplicant: configured to work with libnl 3.2.14 f57bb21 libnl: upgrade to 3.2.14 ef05a7f qa.py: Toolchain path should not be hardcoded to execute objdump bec5c30 libassuan: add pkgconfig support 1600f72 pth: add pkgconfig support bd368cf ICU: add pkgconfig support 60fc9a9 libksba: add pkgconfig support d20c23d linux-yocto/3.4: inform the fetcher if the meta branch changes 35d630e linux-yocto/3.4: emenlow: switch from psb to emgd graphics 48e7c26 linux-yocto/3.4: merge v3.4.19, v3.4.20 2907c80 puzzles: upgrade to r9712 efedbc4 lighttpd: upgrade to 1.4.32 bce1cce libxslt: upgrade to 1.1.28 53890fb libxcb: upgrade to 1.9 d4e8f72 ethtool: upgrade to 3.6 fb29d18 gconf.bbclass: run postinstalls at rootfs time 9764897 gdk-pixbuf: generate the pixbuf loader's cache ar rootfs time dec1e7f gtk-icon-cache: run the icon generation at rootfs time fd401f2 rootfs generation: export two new variables to postinst scriptlets 6b76f04 image.bbclass: run postinst scripts once, at rootfs time dde5e64 license.bbclass: Avoid grep error message 4d4915a pkgconfig: Add a manual dependency of pkgconfig(pkg-config) ca36d34 package_deb: Dependencies with a ( or ) in them are invalid in debs 2f5da1b shadow: add runtime dependency on base-passwd 2bc0834 python-smartpm: Fix incorrect comparison arguments b3744b7 python-smartpm: allow setting arbitrary macros in smart config 8d9ee07 python-smartpm: support nolinktos and noparentdirs rpm options 4190b02 python-smartpm: don't create /var/tmp on every rpm database open 81dded6 python-smartpm: fix package metadata not being read from rpm-md feeds e60be76 python-smartpm: style fixes 69b9c6b python-smartpm: add support for recommends 5443525 createrepo: implement support for recommends a8cee41 rpm: Fix Upstream-Status fields f47fa1a rpm: Fixup platform matching code f8b2ec3 rpm: Fix rpm relocation macro usage a6c86d1 rpm: Move rpmdb_loadcvt from base to dev package 140c7c8 rpm: enable _openall_before_chroot by default 80ad2af package_rpm.bbclass: Add the runtime dependencies to the pre/post scriptlets 990a17c tar: Split RMT from tar dbadf6b cpio: Split RMT from cpio 5283be2 chkconfig: add link files install_initd and remove_initd 0f872d9 pulseaudio: explicitly set --with-database=simple a8fa49f binutils_2.23.1.bb: Correct typo in enable-targets configure option 3ae71c7 tcmode-default.inc: Use binutils 2.23.1 0333796 oprofile: Include config.h before bfd.h 74c1731 binutils-2.23.1: Add recipes 30ce005 libusb-compat: Update to 0.1.4 381c4b6 sstate.bbclass: fix detection of owners matching sstate files 306761b sstate.bbclass: fixed file-conflict check a5b720c util-linux: use u-a for eject 7fb6241 distutils: remove empty datadir/share after it's content is moved to datadir eedb667 packagegroup-core-basic: use VIRTUAL-RUNTIME_initscripts and VIRTUAL-RUNTIME_init_manager 5b027d0 gst-meta-base: pull in X11 plugins when using X11 7f78064 qmmp: remove qmake2 from inherit 166a0ca fotowall: tidy up 3e47343 meta/lib/oe/sstatesig: fix locating stamp files 40b4bb0 populate_sdk_base: fix directory creation as normal user 600fde2 libxkbcommon: make the build do something ce6199f bitbake: xmlrpc: Unbreak the transport by adding a missing logfile name 7e1e4ae bitbake: uievent: Fix an init race e77f057 bitbake: hob: modified how the existence of a variable is checked 4bec4e7 populate_sdk_base: mkdir was missing $SUDO_EXEC prefix 2fc707a libxml2: update PR to contain INC_PR to reflect the update of inc file fafc871 qa.py: Modify the env for the child process only da6c266 xserver-xorg: restore packaging for the DRI/DRI2/DBE extensions 25f3c55 latencytop: add missing signed-off-by and re-add upstream status e2e0942 kernel-yocto: checkout known branch before leaving do_validate_branches 5d8ddf4 libxml-sax-base-perl: add recipe for libxml-sax-perl 07d689a libproxy: Fix for CVE-2012-4504 bca7285 squashfs: fix for CVE-2012-4024 cab1983 libpng: fix license segment md5sum boundary 73f57eb bitbake: data_smart: Improve get_hash to account for overrides and key expansion 525cc08 bitbake: build.py: Preserve sigdata files in the stamps directory 7b0ad8e populate_sdk_base: Fix typo 40c57a4 populate_sdk_base.bbclass: make failure to find ld-linux.so a hard error 63de425 tune-cortexa*: add another TUNE which allows to enable cortexa* together with thumb and neon 584b3c4 arch-armv6: add tunes without vfp enabled 627ef2b arch-armv4.inc: add --fix-v4bx to TARGET_LD_KERNEL_ARCH only for armv4 and strongarm1100 d8bb18e arch-arm*: unify appending to TUNE_FEATURES 37af048 arch-armv[457]*: fix PACKAGE_EXTRA_ARCHS for bigendian TUNEs b0e8c6a arch-armv5: fix missing thumb TUNE_FEATURE in armv5t-vfp and following tunes 6741748 tune-*: add PACKAGE_EXTRA_ARCHS entries starting with specific ARMPKGARCH f06a11b tune-cortexa*, tune-xscale: fix ARMPKGARCH b7a7e6e libxml2: add --with-fexceptions in configure flags to support exception handling in C++ programs 7f4262a libusb: Update to 1.0.9 2f2c630 msmtp: Update to 1.4.30 7b90941 less: Update to 456 86f32f6 ocf-linux: Update to 20120127 3d392f5 util-linux: Update to 2.22.1 cc24217 rsync doesn't create hardlinks for certain files 8880840 rootfs_rpm.bbclass: fix a regression introduced by list_installed_packages change edd8d59 site/common-linux: move ac_cv_o_nonblock_inherited to site/common-linux 1b98ab7 populate_sdk_base:tarball installer:add sudo prompt d55945c grep: update to upstream version 2.14 85fb3c4 build-appliance-image: Allow SRCREV to be overriden 6df7e34 sysvinit: Update ALTERNATIVES List for utmpdump 7a697d0 cmake: Update to 2.8.10.1 b19ac46 linux-yocto/3.4: move PREEMPT_NONE to beagleboard standard kernel only c0c9688 libcgroup: fix INSANE_SKIP 59aaa92 gstreamer: Fix plugin builds 88a9f6d rootfs_ipk, package_ipk: drop --force-overwrite d65514b readline: apply upstream patches d0b157c glib-2.0: update to upstream version 2.34.3 1b99640 initramfs-framework: udev: Handle alternative binary paths 21cab67 net-tools: fix license segment md5sum boundary 2fbe17d glib-2.0: fix license segment md5sum boundary 9545e0b ltp: fix license segment md5sum boundary 91120a5 xcb: fix license segment md5sum boundary 1dbc684 libdaemon: fix license segment md5sum boundary 430d448 gmp: fix license segment md5sum boundary 108c9dd coreutils: fix license segment md5sum boundary 2c2dfe4 uclibc: fix license segment md5sum boundary f6a2c74 pong-clock: fix license segment md5sum boundary 4aa17a3 xorg-app: fix license segment md5sum boundary 202f4ea qt4-native: make qt4-native work with long building path e5f6b33 ghostscript: make ghostscript work with long building path bc33a16 maintainers: Tweak ownership of recipes 951efac documentation: poky-ref--manual - Updated PACKAGECONFIG dbab91a documentation: poky.ent - Added python-xml to OpenSUSE essentials 0f0db8a documentation: dev-manual - Updated installing YP eclipse plugin from code 7c88384 documentation: dev-manual - Updated collaboration section 518efae documentation: yocto-project-qs - Modified PREMIRRORS example 5b41087 documenation: dev-manual - Updates to dev shell section 095bdd8 documentation: poky-ref-manual - method for discovering features 5fd4f1a documentation: yocto-project-qs - Fixed two links. 429ce39 documentation: poky-ref-manual, dev-manual - deveshell handling 6e17ba9 documentation: poky-ref-manual, dev-manual - devshell behaviour 04cb323 documentationo: poky-ref-manual - Added example to MACHINE_FEATURES. e1eb798 documentation: poky-ref-manual - edits to machine and distro features 4c2b2fc documentation: poky-ref-manual - new COMBINED_FEATURES variable. 6a29362 documentation: poky-ref-manual - typo fixed. fa30b8b documentation: poky-ref-manual - edits to build history section. decd778 documentation: adt-manual - Fixed autotools command-line example. c11c2da documentation: adt-manual - Fixed configure command syntax 55530d4 documentation: adt-manual - autotools-based projects e197fca documentation: poky-ref-manual - default info for BB_DISKMON_INTERVAL ba0f4df documentation: poky-ref-manual, dev-manual - optional module packaging c2f14db documentation: several manuals - Notes and links for filename space issue dab49aa documentation: poky-ref-manual, mega-manual, Makefile - new variables 255ca14 documentation: poky-ref-manual - New Build History section added. 128b6be documentation: poky-ref-manual - Better wording for build section f184d58 documentation: adt-manual - Added information for required packages 3ebfe99 documentation: poky-ent - changed 'awk' to 'gawk' a01f335 documentation: prepare for 1.4 2e6924e guile: touch compiled modules on sstate install 48db13e guile: fix bashism in script 13180a9 pango: update to upstream version 1.30.1 3d943db initramfs-framework: init: Stop mount warnings during boot 48e657f rootfs_rpm.bbclass: normalize arch output of list_installed_packages b751ec1 populate_sdk_base: tarball installer: SDK overwrite warning 5756d9f subversion: update to 1.7.7 965f7dd ccache: update to upstream version 3.1.8 9a97101 slang: explicity disable invoking onig module 3067a91 eglibc: Move compile with optimization handling to common code 1c7aa56 libpng: update to upstream version 1.2.50 8710407 cairo: update to upstream version 1.12.8 bcfb295 gtk+: do not prelight GtkButton in touchscreen mode 247b6a3 gstreamer, gst-plugins*: fix localdata f931aeb rootfs_ipk.bbclass: add missing --force_postinstall option 9de0501 bitbake: build/siggen.py: Avoid removing too many stamps when cleaning 4493b10 bitbake: hob: when BBLAYERS_NON_REMOVABLE is not set hob shows an error b629d94 openssh: CVE-2011-4327 8d1aed5 upstream_tracking.inc: ltp and connman d0f68a3 autogen: use pkg-config directly instead of guile-config 75429c1 local.conf.sample: Enable disk space monitoring by default 82d05e2 bitbake.conf: Change build output message to list BUILD_SYS, TARGET_SYS and NATIVELSBSTRING 0060427 build-appliance-image: Updated to wget mixed-up commands fix eeaad6f bblayers.conf: Add a new variable to prevent certain layers to be removed cc1fcf7 sysprof: Fixes undefined  reference to `rmb' a0cf759 bitbake: fetch2/wget: Fix for mixed-up wget commands 408a0d8 bitbake: fetch2/local: Fix bug introduced by expression ambiguity 73b9f64 bitbake: hob: make some layers non removable c6dc0b9 bitbake: Update version to 1.17.0 6a2ce81 bitbake: fetch2: Avoid using FILESDIR in unpack 7420cf5 bitbake: fetch2/local: Improve handling of wildcard matches 13ecfdb packagegroup/allarch: Convert to use allarch class 668f7e3 allarch: Allow class to be included but overridden e8be466 base.bbclass: Drop P and PN from FILESPATH 6514590 bitbake.conf: Simplify FILESPATH 26978d8 bitbake.conf: Drop obsolete FILESDIR setting e2edcd9 sanity.conf: Increase minimum bitbake version requirement to 1.17.0 for FILESDIR updates 226e492 automake: update to upstream version 1.12.5 54ee29e tune-*: define more generic DEFAULTTUNE to share feed between machines 2c300bc arch-arm: define different ARMPKGARCH when different CCARGS are used c5b670e arm/arch-arm*: define ARMPKGARCH_tune-* for default tunes 9be83df bitbake: knotty/msg: Avoid usage of curses initscr/endwin to avoid terminal corruption 8a3dd9e bitbake: hob/builder: Don't rerun sanity checks f26d3e8 bitbake: hob: showing when build fails because out of disk space 7cbc3cf bitbake.conf: add TUNE_CCARGS[vardepvalue] 68c2a55 tune-cortexr4: fix march value 1c5fb74 tune-xscale: replace TUNE_CCARGS for webkit-gtk and cairo only with xscale in TUNE_FEATURES 99e0053 gst-plugins-base: add dep on libsm and libice 6944a3b license.bbclass: Collect LICENSE level packages bc5bf6f archiver.bbclass: DISTRO is not required variable so deal with it 70e654a eglibc: always compile with optimization. e63596e python-pygtk: add gtk-types.defs into gdk.c dependence 6f605de db: update gnu-config files in do_configure() 40c0dbc strace: backport AArch64 support d48d44e curl: eliminate forced setting of -g0 when compiling 5c1c26a unzip: pay some attention to our CFLAGS 0311826 zip: pay some attention to our CFLAGS eac24cb mingetty: replace cflags hard-coded into Makefile d241626 iproute2: pass CFLAGS to Makefile\ 10baa59 bind: make "/etc/init.d/bind stop" work 165ed25 procps: pass CFLAGS to make a68c456 meta-toolchain-qte: add --sysroot option to OE_QMAKE_(CC|CXX|LD) 5e744f5 gtk+: update to upstream version 2.24.13 e0ca1c0 xf86-video-omap: drop RPROVIDES/RREPLACES/RCONFLICTS fb403f2 xf86-video-omapfb: revive driver which actually works and is tested on real devices 957b835 xserver-xorg: disable dri2 too when building without glx PACKAGECONFIG 554bc89 xf86-video-omap: add xf86driproto dependency, drop --enable-neon and improve DESCRIPTION df1a1dc perl: use the exported LDDLFLAGS in generate_config_sh script 3ac6238 kern-tools: report missing config fragments by name 8795797 linux-yocto-3.4: gcc optimization config feature 002f483 opkg: bump SRCREV and drop applied patches 9f836a4 lsbsetup: drop it 1d8580b packagegroup-core-lsb: remove lsbsetup cffd1a9 lsb: move links from lsbsetup to here d3dbfd6 gcc: Add --enable-linker-build-id 7a7f948 insane.bbclass : Disable tests for unsafe references in binaries and scripts. f862f06 binutils-crosssdk: do not set .interp size to 0x1000 for partial linked objects e2143b3 image classes: use PN for depends, not IMAGE_BASE_NAME 5ce6418 gcc-cross: Explicitly depend on linux-libc-headers 4fbcd24 sstate: Explicitly define populate_sysroot task relationships 4b45039 sstate: Add a rule for target sysroot requirements from cross dependencies cf61ea2 build-appliance-image: Add explict dependency on do_unpack 56e3fcc scripts/sstate-cache-management.sh: Fix stamp handling after recent layout change 0c46dad scripts/cleanup-workdir: Adpat to new workdir layout 14f7c9c Revert "kern-tools: report missing config fragments by name" 7e2d4ea maintainers.inc: Update ownership of recipes 37c752a kern-tools: report missing config fragments by name 5fd5ba6 kernel-yocto: clarify KMETA branch comments 01ff700 linux-yocto/3.4: uprobes: reinstate config options for 'uprobe' feature 1e12ab7 linux-yocto/3.0: fix virtio configuration typo fe21ace python-smart-backend: Remove bogus runtime virtual/ a01737e xf86-video-omapfb: drop 8043f45 xf86-video-omap: don't use AC_CHECK_FILE 0d7d413 build-appliance-image: Update to dee77eca39f406f90e60d9c5ef7a66fcc8f57dbf commit 06124db builder: fix adduser breakage with password 76950d3 Revert "bitbake.conf: Drop obsolete FILESDIR setting" 1b4dcf1 ldconfig/cdrtools/icecc-create-env/linuxdoc-tools/python: Set FILESPATH to find -native files e917c7b classes: Drop do_package stamp-extra-info 73ef532 utils: Optimise looping in base_set_filespath e6b313d libffi: Use a more standard layout for patch files 3e0cd7c trace-cmd: Simplify SRC_URI patch entry bb748a1 matchbox-panel-2: Use a more standard layout for patch files 997ae28 bitbake.conf: Drop obsolete FILESDIR setting 05041d3 x-load: Replace FILESDIR with FILESPATH 42b9968 opkg: Drop unnecessary FILESDIR setting 9ed25ef qemu_git: Drop unnecessary FILESDIR setting 6177bfb gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify 1574352 build-appliance-image: Simplify fetch/unpack execution eaa7c3a opkg: drop PACKAGE_ARCH setting for update-alternatives-cworth 6809295 distutils-common-base: Create staticdev pacakge for static libraries bf31c85 gnutls: Update to 2.12.21 34626c4 libksba: Update to 1.3.0 3f42e20 dhcp: Update to 4.2.4-P2 c6ea431 libxml2: Update to 2.9.0 787c8a7 resolvconf: Update to 1.68 9a34da5 mc: Update to 4.8.6 5c93c69 man-pages: Update to 3.44 aae8d68 tiff: Update to 4.0.3 3881a54 rt-tests/hwlatdetect: Update to 0.85 fbb1228 libdumpvalue-perl: Update to 1.17 d1f0ef5 libproxy: set LIBEXEC_INSTALL_DIR d48eac8 libtasn1: Update to 2.14 e63c406 multilib.bbclass: Drop populate_sdk_base exclusion c206007 libcheck: Add missing rdepends on gawk and set path correctly dee77ec bitbake: server/process.py: Change timeout error handling 212397c package.bbclass: Adapt debugsrc code to workdir layout changes 6208572 mesa-dri: add correct RPROVIDES for the -dev packages 66861cc Revert "gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify" 39ab3f1 ia32-base: fix typo in XSERVER_IA32_EXT definition a859ba5 maintainers: Tweak ownership of recipes f85e0ef qt4: remove qt4-x11-free bbappend bad9765 yocto-bsp: upgdate configs after xf86-video-omapfb changed name 5cea09e yocto-bsp: update configs after xorg upgrade 9f5e0c6 qt4-x11-free: Switch to 4.8.3 cbdc814 bitbake: knotty: Colorize knotty interactive console output e3bda7f bitbake: hob: warnings during the build should be displayed in the Issues tab 328f74a bitbake: runqueue: Allow partial setscene task coverage 5de7744 bitbake: parse/cache/cooker: Preserve order in the file inclusion list e10bea3 libcheck: Update to 0.9.9 da3ac77 sqlite3: Update to 3.7.14.1 12bfb5b builder: Add password for user 9afb3fc sysstat: Update to 10.1.2 d9fe5c5 mesa: default to enabling EGL and GLES 7e0efe1 mesa: add -mesa suffix to GL packages, RPROVIDE their generic names 0ed7c53 xf86-video-omap: add new recipe to follow the maintained repo f2be956 xf86-input-synaptics: add mtdev dependency fe5256d xf86-video-vmware: Add compat API 69f1b45 xserver-xorg: upgrade to 1.13.0 cb758f9 libdrm: upgrade to 2.4.40 3491c88 xkeyboard-config: upgrade to 2.7 989bc4e guilt: change upstream tgz location e85911e kern-tools: flexibility and usability enhancements 41d09ca kern-tools: kconf_check: fix find warning 2321677 linux-yocto/3.2: update to v3.2.32 and 3.2.32-rt48 04caf88 linux-yocto/3.4: v3.4.17, v3.4.18, -rt and config changes e5d08fa linux-yocto/3.4: bump kver to v3.4.16 a7cd6e3 linux-yocto/3.4: efi/mmc fixes and fri2 updates cd838e8 linux-yocto/3.4: nfsd, pci, fishriver and rangely config changes c6c0809 license: We need to run this task before do_build, there is no dependency on do_package f93f43c bitbake.conf/sanity: Separate versions and PN stamp components into separate directories for WORKDIR and STAMP 265f69a image.bbclass: Add missing dependency on do_package data f32ef56 sstate: Implement a setscene dependency validation routine to allow skipping of some sstate installation 0772915 scripts/pybootchart: Allow minimum task length to be configured from the commandline 295f160 scripts/pybootchart: Fix missing entries bug 6e6dcbe flac: fix text relocations 264ca0f ncurses: update gnu-config files in do_configure() 9ee6b71 kmod: fix git repo URL 1f71583 qt4: remove 4.8.1 4e2de8f qt4: remove negative preference on 4.8.3 9061687 gcc: Use FILESPATH instead of FILESDIR and cleanup/simplify 9acfef9 yocto-bsp: update qemu machine.conf template a0123b0 pulseaudio: explicitly disable xen, rather than letting it detect 527735d opkg: added alternatives-ln patch 5a9b80b binutils: fixed --enable-targets option c2cb4c0 cmake.bbclass: use DEPENDS_prepend instead of += for cmake-native 2d234fb default-providers: add default provider for make 9e016c4 libcgroup/libxkbcommon: Use BPN in SRC_URI 0ef08c4 Fix the first line typo of adt-installer ad0ea7e less: Update to 451 86204fb insane.bbclass: add qa package name check 2c82669 sstate: Drop now unneeded python whitelist entries 89bc43e python: Resolve intermediate staging issues dadb3a7 packagegroup-self-hosted: add sftp server e803ac0 psmisc: Update to 22.20 bc80f0e kconfig-frontends: Update to 3.6 1138523 mx: Update to 1.4.7 374960b pulse: fix Bashism in string test 4d019c0 make-3.82: Add patch for archive expression expansion issues bd6c5ff xf86-input-synaptics: add mtdev dependency 394ba7a mdadm: upgrade to 3.2.6 657ed11 fontconfig: upgrade to 2.10.1 8b8fd8c xcb-proto: upgrade to 1.8 2ef5965 xf86-input-mouse: upgrade to 1.8.1 9e4ef9e xf86-video-intel: upgrade to 2.20.12 eed09cf xf86-video-vesa: upgrade to 2.3.2 a0d1ac7 python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK 11af6b0 rpm: Add additional RPMSENSE values to python module 3d8fd40 python-smartpm: Add smartpm recipe 4dd9d39 rpm: Slightly change the way python-rpm is constructed 9e0d3c0 sstate: Bump version number to deal with layout fixes 1fd9a16 bash: fix mkbuiltins build failure aa75269 sstate: Fix various path manipulation issues c176e5a bitbake: knotty: kill duplicated import of 'time' 68b7f18 utils.bbclass: Fix documentation of create_cmdline_wrapper 2c494b2 classes: Be consistent about sstate-inputdirs/outputdirs ending with '/' 19ecc26 sstate: Be consistent about sstate-inputdirs/outputdirs ending with '/' 78ac027 python.inc: make lsb override more concise 745b146 libc-common: Ensure sysconfdir exists before installing files to it c2ea081 boost: Activate zlib and bzip2 because they now work. 41125dd bitbake: print clear message for "bitbake -e ASSUME_PROVIDED" 4e2b5a5 bitbake: hob: hob was freezing because it doesn't receives well the log file 7e1e306 mesa-demos: fix --with-glut check fe16cbc initrdscripts: fix udevd in the live boot init scripts 9cc79b2 libunique: fix compilation with GLib 2.34 e5822cf poky.conf: Enable warning on textrel QA check 9603311 upstream_tracking.inc: update for 1.4 planning eae032a upstream_tracking.inc: update according to YP 1.4 8e0d0c5 upstream_tracking.inc: Update hdparm 5e517c8 upstream_tracking: update for 1.4 planning c476a8c upstream_tracking: Update for 1.4 Planning fd17ed4 maintainers: Update file with missing maintainers fa73df6 insane: detect and warn about relocations in .text 210839e libxslt: upgrade to 1.1.27 d69683f puzzles: upgrade to r9660 1815a99 mesa: remove python2 detection hack c04f543 populate_sdk_base.bbclass: use SDK_ARCH instead of SDKMACHINE 35d5e2f glib-2.0: upgrade to latest stable, 2.34.1. 970aa6d glib-2.0: remove zip build dependency 7ee2410 qt4: remove -lGLU from QMAKE_LIBS_OPENGL in our linux.conf e828faf xorg-driver-common: remove AC_CHECK_FILE workaround 7ea8496 meta: remove redundant _FOR_BUILD variables 85bfe3c autotools: set _FOR_BUILD variables here 78983e9 lib/oe/classextend: Ensure we don't extend expressions more than once e421e95 gnome-desktop: Now we depend on gnome-common-native, use the correct sysroot f3fc98d gnomebase: depend on gnome-common-native ce7e817 populate_sdk_base.bbclass: check installation machine before installing SDK 97469db gnome-common: Fix license 4260403 bitbake.conf: Add udev rules into ${PN} files by default e48fe4e create-recipe: update re pattern and output 7f6edde hwclock.sh: improve hwclock.sh script to use UTC variable aea2d8c recipes-devtools: replace virtclass-native(sdk) with class-native(sdk) d005b78 recipes-extended: replace virtclass-native(sdk) with class-native(sdk) cc1f50f recipes-graphics: replace virtclass-native(sdk) with class-native(sdk) 5ddf857 recipes-support: replace virtclass-native(sdk) with class-native(sdk) 60c3bd4 recipes-gnome: replace virtclass-native(sdk) with class-native(sdk) a59b113 recipes-kernel: replace virtclass-native(sdk) with class-native(sdk) 841107b recipes-connectivity: replace virtclass-native(sdk) with class-native(sdk) 51c7ad6 classes: replace virtclass-native(sdk) with class-native(sdk) ffec48a conf: replace virtclass-native(sdk) with class-native(sdk) 5d94d29 recipes-core: replace virtclass-native(sdk) with class-native(sdk) 74bb195 babeltrace: fix depends 627fd60 packagegroup-core-tools-profile: include sysprof only if x11 is distro feature 141eceb latencytop: disable GTK and remove gtk+ dependacy 662a445 mesa: Build separate GLU library ad9ad06 terminal: Ensure existing environment exports are preserved in devshell 05a1f4a terminal.bbclass: Ensure parent environment is set c1c20c0 bitbake: command: add error to return of runCommand 99fa251 bitbake: hob: providing details about process state through porgress bar e450b10 bitbake: bitbake/server: Remove dead console log code f5acdd8 bitbake: cooker.py: Don't dump the environment into the console log file 6265106 bitbake: uihelper: Set update flag when start event encountered 44c5d3d bitbake: knotty: Ensure last tasks are disaplyed correctly in the footer e9e3285 openssl: Use ${CFLAGS} not ${FULL_OPTIMIZATION} 4801ed7 udev: Ensure tmpfs are mounted and volatile/run exists 656979f udev: Use correct variable in udev.conf for run_path cecba78 polkit: remove license.html from LIC_FILES_CHKSUM 93c04c1 bitbake: hob: reordering the layers in the Hob Layers dialog 30d1943 bitbake: hob/hig: Hob doesn't save properly proxy settings 55cdbd5 bitbake: hob: during recipe parsing, progress bar text provides details about the process state a9c563b bitbake: hob: add a progress indicator when you select 'view log' e281bb3 udev-extraconf: Don't mount root filesystem under /media 2e24eb2 busybox: add /usr/bin/stat applet 4b40886 lttng-modules: remove unused lttng-syscalls patch ddd4dd8 bitbake.conf: Change systemd_unitdir definition b4e48cc distro_identifier: replace slash with hyphen 32cec32 populate_sdk_base: allow SDK path of various level 39e8e06 ltp: add perl to RDEPENDS 6ec5640 sstate: add manifest info for shared file matches 115076c gst-meta-base: include ximagesink plugin when x11 is a feature 5bef184 pulseaudio: remove libpulse-browse, removed upstream in 2011 6b2db8b pulseaudio: fix library packaging 24807c6 pulseaudio: move helper binaries into the relevant module packages 8d4b851 pulseaudio: add GConf dependency 8d98171 insane.bbclass and friends: Fix sanity checks and multlib headers for n32 4940be5 populate_sdk_base: Ensure that the multilib cross-canadian tools are used 26d966f populate_sdk_base: Update extraction script for multilibs 7e2ff7c multilib - crosssdk: Stop building multilib for crosssdk packages ea22010 multilib: Add support for cross-canadian multilib packages 511f7f9 zeroconf: remove 3f14eb3 poky.conf: Add multiarch to DISTRO_FEATURES 59943ca bitbake: bitbake: hob/builder: Hob crashes because of bad init 4d7b2d2 udev: upgrade to 182 ad39133 diffutils: fix rebuilds c65e88b perl: update dependencies c1da202 cogl/clutter: Explicitly depend on libdrm for GLX 33440ee bitbake: hob/settings: add a scroll bar for the box with mirrors 8cad1e3 bitbake: bitbake: hob/builder: Image selection is remembered while changing adv settings a975e6b bitbake: hob/builddetailspage: set "Log" page as default 62e9f76 bitbake: hob/imageconfigurationpage: progress bar shows when recipe parsing is stopped 4a3b0d7 bitbake: bitbake: hob/hobwidget: "Brought in by" column is now displayed correctly b3374db bitbake: hob: stop build without percentage shown 9cf6106 bitbake: hob: change behavior for "cancel" button from the Recipe selection page 759dadf bitbake: hob: image size displayed wrong size in edit packages screen 6cc2f06 bitbake: event/hob: Add a button for network tests in the proxy settings d93898b automake: update dependencies 3533e80 autoconf: update runtime dependencies f816625 perl: update dependencies among modules 645ba03 sato-icon-theme: merge sato-icon-theme.inc into recipe 5b1d45c sato-icon-theme: fix build c8e2f14 gnome-icon-theme: remove unused configure variable be3add2 gnome-icon-theme: fix icon mapping feaff11 opkg-utils: bump SRCREV to latest fdd6fb5 gst-plugins-good: disable taglib explicitly df9bc28 bitbake.conf: break three very long lines 662189d xorg-driver: add xserver driver ABI dependencies 553d9db rootfs_rpm.bbclass: maybe no rpm postinst script c45a7d1 terminal: Add support for running custom terminals. 6309eea shadow-securetty: add ARM AMBA serial ports 04d6b20 linux-firmare: upgrade to latest commit 54d42c1 gtk-immodules-cache: Add initial class to update gtk inputmethod module cache dfc39d7 nativesdk-ncurses 5.9: files were installed but not shipped b7e1845 lttng-2.0: fix srcrev/pv to match the recipe filenames 683d54a packagegroup-core-tools-profile: replace 'legacy' lttng with lttng 2.0 bb753ad opkg-utils: Add needed python modules as RDEPENDS 3cabe89 libxkbcommon: new window system-independent XKB library fa471ac qemugl: Remove since support for it was removed from qemu 952b879 yocto-bsp: Fix git url parsing, allowing for local mirrors a3d5e9e libical: remove 543b33d evolution-data-server: remove b39ca7e gmae: remove Evolution Data Server 616642f uClibc: Resolve conflicting options when building for mips32 72d7f8d libsdl: fix inconditional alsa disabling. 8255558 rootfs_ipk.bbclass: Some extra spaces / tabs were removed / formated e7f1ec9 rootfs_ipk.bbclass: Don't duplicate remove_packaging_data_files code dd03773 opkg: Don't print empty PROVIDES e702a1a opkg: Add patch to fix removing packages with recommends 2df8db4 insane: add a check for Xorg driver ABI dependencies bc41dfb xserver-xorg: add runtime provides for the driver ABI version e7bae18 mtdev: New recipe for mtdev 9af29d8 cpan-base: Add more debug paths to FILES c25ed82 atk: Update to 2.6.0 d59d430 package: Hardlink debug source to improve performance 60a26d2 documentation: yocto-project-qs - Final changes before the 1.3 lockdown a73fde8 documentation: poky-ref-manual - Final changes before the 1.3 lockdown. 2b51188 documentation: dev-manual - Final changes before 1.3 lockdown. f3c1226 documentation: bsp-guide - Final edits before 1.3 lockdown c26d20e documentation: adt-manual - final edits before 1.3 lockdown. 3374926 documentation: dev-manual - fixed capitalization on Source Directory. 9137117 documentation: kernel-manual - minor edits before lockdown 450f438 documentation: dev-manual - Updates to Git workflow and kernel patch 205db48 documentation: poky-ref-manual - new variable and edited variable 8ce23f5 xorg: remove XF86 BigFont extension b5591d0 kernel.bbclass: Do not chdir to /boot before running update-alternatives 394f284 eglibc-2.16: Use tar ball instead of svn SRC_URI 59e3a13 eglibc: Move perl- and bash-using scripts to separate recipes 92b44ec package.bbclass: Exclude the PKGTRIPLETS variable c4c37bc multilib/clsextend: Improve handling of regexps in PACKAGES_DYNAMIC f07be9d yocto-bsp: set branches_base for list_property_values() 7090cbe documentation: dev-manual - removed the wip.png figure 2889498 documentation: poky-ref-manual - Updates to DEPENDS and RDEPENDS 50247c8 sstate: Improve handling of machine specific manifests a68c7c7 package.bbclass: Switch shlibs to pkgdata directory and make package non-machine specific 9da9e5d lib/oe/packagedata: Use the PKGMLTRIPLETS variable 0c2c3b7 base.bbclass: Add PKGTRIPLETS and PKGMLTRIPLETS variables 072a6d3 perl: Fix perl module dependency issues caba9cb kernel.bbclass: add kernel-modules to PACKAGES fadb407 PACKAGES_DYNAMIC: use += instead of = in most cases 33b3164 PACKAGES_DYNAMIC: use regexp not glob e993851 documentation: poky-ref-manual - edits to SUMMARY and DESCRIPTION 07884bd documenation: poky-ref-manual - updates to the LICENSE variable. bff24c5 documentation: poky-ref-manual - updated the DESCRIPTION variable. c3e04b6 documentation: poky-ref-manual - Updated SUMMARY variable description. acbb915 documentation: dev-manual - Updated compliance section. 014f91c documentation: poky-ref-manual - Edits to feature backfill c6ce06b documentation: poky-ref-manual - Backfill variables updated. a048ed2 documenation: poky-ref-manual - updates to variables. bbd299d documentation: poky-ref-manual - updates to distros and machines 9ea2919 documentation: poky-ref-manual - edits to the features backfill section. 1e642b1 documentation: poky-ref-manual - edits to *_FEATURES glossary 45b98aa documentation: poky-ref-manual - updates to feature backfill section. 93ecafc documentation: poky-ref-manual - Updates to MACHINE glossary entry. f5ea427 console-tools: Fix build issues with make 3.82 4211de4 kernel.bbclass: remove explicit version.h target 51cbb5a perl: fix dependecies ee8d3fb bison: Fix gplv2 version to work with recent gettext e2dfa38 diffutils: Fix gplv2 version to work with recent gettext fac5ca9 sed: Fix gplv2 version to work with recent gettext 1096942 grep: Fix gplv2 version to work with recent gettext d497fe9 autotools: Use STAGING_DATADIR_NATIVE for config.rpath e6e2b9b documentation: poky-ref-manual - edits to MACHINE type variables. 747088a documentation: poky-ref-manual - quoted section reference fe56361 documentation: poky-ref-manual - Updated build/conf/local.conf 6339d90 documentation: poky-ref-manual - updated the STAMP glossary description. 3bf1848 sstate: when warnings about sysroot overwrites, say what the recipe was a008df2 gconf: Avoid error when trying to delete files that don't exist f0a56f6 lib/oe/qa: Trap exceptions when running objdump 0fd014e insane: Don't try to run objdump on symlinks f8c90bc insane: Rationalise phdrs-based QA checks 96b8d72 gnome-icon-theme: update mapping program location f0ec93c sato-icon-theme: update mapping program location e5f9a9f qemu: don't ignore libexecdir in configure c07e4ab perf: set the perfexecdir d92cff6 ia32-base.inc: don't depend on mesa-dri 4445ffe sysklogd: fix update-rc.d handling 789ebb5 pulseaudio: add missing switch-on-port-available dependency to the server ec0279a lttng: support more compatible hosts e7f2b63 qt4: use extra variable for more QT_CONFIG_FLAGS fragments 2be7032 gtk-doc.bbclass: Run gtkdocize in ${S} not ${B} ef9eac2 build-appliance: ensure zip file is linked locally 9fe0f62 buildhistory.bbclass: Fix hostname print for 'No changes' case 7950bdf autotools.bbclass: Fix gettext macro versions issues c0bf723 autotools: Fix race over aclocal macro directory 81be7c8 scripts/cp-noerror: Try and use hardlinks if possible e8338b7 scripts/cp-noerror: Copy the code from shutils.copytree, update not to error if the mkdir fails 25e060d texi2html: Add check for directory existence 1a731b5 diffutils: Remove rather bizzare gettext macros eabcd31 kexec-tools: Add dependency on xz 216b88f gettext: Add config.rpath and Makefile.in.in to gettext-minimal-native 9ecacde console-tools: Clean up recipe 2ddf822 qemu: Explicitly disable bluez, its not in DEPENDS 1d18224 bitbake.conf: change libexecdir to ${libdir}/${BPN} aee0f32 xorg-proto: remove evieext 9b9fad3 xorg: remove xf86rushproto a3720a5 sanity.bbclass: trigger network tests explicitly 2d89cff sstate: Use -m option to tar when unpacking sstate eb8a8fe libdrm: Add --disable-cairo-tests switch and update to upstream patch 4ebe9d1 libdrm: Bump git recipe to latest 2.4.39+ revision 214ad32 scipts/combo-layer: Fix check_rev_branch() for cases where the revision is on more than one branch 1a57708 lttng-tools: skip new libexec insane test c57b610 qemu: add libexecdir to configure call a6052d6 insane.conf: add new libexec test 7087e82 chkconfig: pass CFLAGS to Makefile ca8edd6 packagegroup-self-hosted: recommend kernel modules instead of depending on them ed79d5e Move 'tag=' to SRCREV in mtd-utils recipe 026ad49 Move 'tag=' to SRCREV in btrfs-tools recipe bfa0fcd populate_sdk_base.bbclass: Make it possible to override the create_shar method of populate_sdk_base. 7817d91 gypsy: removed gypsy from meta/recipes-connectivity 2b5acdc recipe_sanity: Don't bother checking LICENSE 36d4dcf libnss-mdns: fix mDNS resolving speed 27def85 gnu-config: update to 2012.08.14 to get support for AArch64 architecture 5ba60ce pcmanfm: mark AArch64 as compatible 59e0301 packagegroups: disable kexec, valgrind, lttng, systemtap on AArch64 c489cb6 util-linux: add AArch64 support 1523d50 openssl: add AArch64 support 72188f5 insane.bbclass: add AArch64 support 128c390 kernel-arch.bblass: add AArch64 support 2715432 siteinfo.bbclass: add AArch64 support 3f516bb xorg: remove fontcache support 546f280 libxfont: remove spurious dependency on fontcacheproto d6dc72c xorg: remove all traces of XPrint f29e000 xserver-xorg: use INC_PR in PR 1e533ae xorg: remove XTrap e7ee5be mesa: remove libegl-dbg, put all debugging into mesa-dri-dbg 9cc8a94 mesa: remove mesa-dri dependency in mesa-dri-dev 30f53b5 xf86-video-intel: bump to latest release 9d76559 xserver-xorg: upgrade to 1.11.4 fda7103 strace: Don't package strace-graph 0aad466 module.bbclass: Move do_make_scripts() to module-base c942d52 xf86-input-keyboard: upgrade to 1.6.2 8f85691 kernel.bbclass, module.bbclass: Make update-modules optional 895994a gettext: Remove spurious-looking dependencies on libxml2-native 545f680 xf86-video-fbdev: bump to 0.4.3 f1d73fd xf86-input-evdev: bump to latest release 2637809 cpan_build: Unify directory layout for native and target builds bf97b1a Add packagegroup-core-buildessential bf3b850 libtool: Ensure the paths to sed are not hardcoded bcc73d2 pkgconfig: Drop automatic pkgconfig RDEPENDS a6f6d4f package: Recommend virtual-locale-*, don't depend on it d38f055 libc-package: Drop bogus replacement operation 8b6e9b8 documentation: poky-ref-manual - small edit in wording. ac7a354 documentation: poky-ref-manual - Added and updated variables. 90b7c0c documentation: dev-manual - Edits to "Patching the Kernel" section. 0163821 documentation: dev-manual - lttng and Git workflow changes ca144a6 documentation: bsp-guide - minor edits. fc76b3e documentation: poky-ref-manual - changes to required variables for recipes 3463593 documentation: dev-manual - small edit to compliance section. b0c10ab documentation: dev-manual - edits to the compliance section. aab60fa documentation: poky-ref-manual - added note about PATH f42d97b documentation: Release date updated. f1bb3fa documentation: poky-ref-manual - edits to migration chapter. 915b01e documentation: dev-manual - Removed whitespace. eed512b documentation: poky-ref-manual - New chapter on migration added. 81a4c1d documentation: poky-ref-manual - moved SSTATE_DIR. a117b4d documentation: poky-ref-manual - New glossary entry SSTATE_MIRRORS. 83448c4 documentation: kernel-manual - Fixed typo. bd83f6a documentation: dev-manual - edits to kernel section and compliance 4c35e5a documentation: dev-manual - edits to the license compliance section. 715456a documentation: dev-manual - edits to the patching the kernel and model sections. e44de7b documentation: poky-ref-manual, yocto-project-qs - supported distros 277e463 documentation: poky-ref-manual - Updates to the BPN variable. c75c152 documentation: dev-manual - Added license compliance section. 3ec994e documentation: poky-ref-manual - Updates to the poky structure 059cfe1 documentation: poky-ref-manual - wording changes 87fb43c documentation: poky-ref-manual - change support to opkg from ipkg 9888c09 documentation: poky-ref-manual - Edits to fix default description 88924d6 documentation: poky-ref-manual - New backfill variables and section. 5abdefd documentation: poky-ref-manual - DISTRO description extended. c4659cd documentation: poky-ref-manual - New PACKAGECONFIG glossary entry. 56bdedd documentation: poky-ref-manual - MACHINE definition extended. 65159bb documentation: poky-ref-manual - Variable descriptions edited. 1b67411 documentation: poky-ref-manual - LICENSE_PATH not LICENSE_DIR. fa04150 documentation: dev-manual - Typo fixed. c134f28 documentation: Makefile, dev-manual - edits to patching kernel cf83acc local.conf.sample: add PATH to SSTATE_MIRRORS comments 0260bb5 gitignore: Fix for poky repository df127c9 distro_alias: Update for Internal BOM tracking a691562 gdbm: Resolve host contamination issue d13e633 poky.conf: Bumping DISTRO/SDK values c874b99 pkgconfig: Drop the RREPLACES for pkgconfig-dev 33aaa20 eglibc: force make to use /bin/bash c2543b7 documentation: poky-ref-manual - Formatting fixes for variable names. 3c260e5 documentation: poky-ref-manual - new glossary entry for "T". c201ab4 documentation: dev-manual - fixed typo. dc8c3c7 documentation: dev-manual - edits to patching kernel section plus others 3108942 documentation: dev-manual, mega-manual - removed figure 68431a8 documentation: mega-manual - copied in new kernel flow diagram. 0bd7301 documentation: dev-manual, bsp-guide, kernel-manual - kernel workflow 8461d4a documentation: dev-manual - Removed figures no longer needed. e3f3449 documentation: poky-ref-manual - variables defined. b31fa1b documenation: dev-manual - re-ordered chapters. 8e33774 documentation: dev-manual - removed Appendix A. e0f0335 documentation: dev-manual, bsp-guide - Removing/Moving Appendix A 274095d documentation: dev-manual - Updates to configuring Kernel section d38325c perl: add archlib_exp variable used to generate ARCHLIB_EXP in config.h c5fa8e2 sstate-cache-management: hide error message when one of possible layer location doesn't exist cf24179 bitbake: hob-toolchain: task-core-standalone-sdk-target renamed to packagegroup-core-standalone-sdk-target 5f53136 bzip license: bzip2 not bzip. 52e67c5 gcc-cross-canadian: Fix gettext dependency 2c3e828 bitbake: hob/imageconfigurationpage: a 'hob-image' appears listed in the base image combo box 8d019a7 bitbake: hob/hobeventhandler: Describe the runCommand failure exception a08139b linux-yocto-bsps/3.4: perf: parallel build and tools fixes df9800c linux-yocto/3.4: perf: parallel build and tools fixes 04232f5 poky-tiny: Update the default kernel to linux-yocto-tiny_3.4 292f79a linux-yocto-bsps: update hardware reference BSPs to v3.4.11 792ae8d sstate: Also add datadir/sgl to sstate whitelist to avoid openjade warning 18be56b qemu: When applying qemu-mips workaround, check the file exists first ae681c2 linux-yocto-tiny: Add tiny recipe for the 3.4 linux-yocto kernel 5bb773c nfs-export-root: add explict no_subtree-check to suppress warning 85ea375 linux-yocto/3.4: tiny: Add qemu KMACHINE to common-pc-tiny.scc d518061 linux-yocto/3.4: fix kconfig warnings and unnecessary options eb8ac50 documentation: dev-manual - mentioned SRC_URI in the kernel example 1efdf7e documentation: dev-manual - fixed KSRC variable in example f32ee61 documentation: dev-manual - added OE_INIT_FILE and went to 3.4 6d5e836 documentation: dev-manual - Created generic figures 416433d documentation: dev-manual - Edits to setup part of example 5627ac2 documentation: dev-manual - fixed some links to the source directory term. 4364f11 documentation: Makefile, dev-manual - Updated kernel example repo figure 502b016 documentation: dev-manual - Added a note to point to yocto-kernel 98a41af documentation: poky-ref-manual, yocto-project-qs - Packages fixed 1bb1d2f oe-buildenv-internal: Add BB_NO_NETWORK to BB_ENV_EXTRAWHITE 5e1f39e pulseaudio: ensure X11 and consolekit are disabled d3b08b4 package_rpm.bbclass: Fix an issue where complementary installs fail 415be86 sstate: Add extra entries to the sstate duplicate files whitelist ab8d981 sstate: Normalise paths before comparing with the whitelist 7f4a8dd libdrm: Explicitly disable the cairo dependency 7b98031 poky.conf: fix Poky release info to include release number 679d76e toolchain-scripts.bbclass: Export M4 7d68b95 cross-canadian.bbclass: add native chrpath dependency ee76b80 runqemu: allow multiple unfs instances to run simultaneously 746a867 runqemu-export-rootfs: improve rpcbind error detection c435e4f runqemu-export-rootfs: use consistent whitespace f60d41b common-licenses: Adding bzip 1f0a3c5 documentation: dev-manual - Removed Appendix A. 20a2dda documentation: bsp-guide, dev-manual, kernel-manual - Removed links 48d3b05 documentation: dev-manual - Updated BSP flow overview. 94cb42e documentation: poky-ref-manual, yocto-project-qs - Updates to packages 5757a25 documentation: bsp-guide - scrub edits for the BSP Tools section d75b9fd documentation: dev-manual, poky-ref-manual - updated bblayers.conf 3aadcac documentation: dev-manual - Updated Enabling Your Layer section f0db0f6 documentation: dev-manual - updated LCONF_VERSION in the example. 8db439a documentation: dev-manual - Updated bblayers.conf example 320e32e documentation: poky-ref-manual - Updated BBLAYERS variable. 81ce4a9 documentation: bsp-guide - Changed Source Directory capitalization. 1eb01b6 documentation: yocto-project-qs, yocto-project-ref - package re-org 528b0fe distro_alias: Update for 1.3 BOM Creation 8202e49 bitbake: hob/hobeventhandler: Throw an exception if runCommand fails f540449 build-appliance-image: Fix spacing in DESCRIPTION 5d27c49 shutdown-desktop: ensure the postinst script succeeds cf1f3f5 sato-icon-theme: use gtk-icon-cache helper class 09aaad1 distrodata: Update distrocheck functions 73182ed bitbake: hob/imagedetailspage: disable the deploy tool for qemu machines 9c7189d bitbake: hob/settings: alignment and spacing fixes on "Shared state" tab 93fdfaf bitbake: hob/image_details/run_image: Kernel must be set 0e6cc44 bitbake: fetch2: raise an exception if user specifies protocol=git with http:// 27c30e4 rpmresolve: fix reporting of multiple matches error 3b664d0 buildhistory_analysis: update to use explode_dep_versions2() ef5dcad qemu: Fixed running QEMU with virtio error reporting 595b119 wpa-supplicant: don't break the DBus service file 2f9328f bitbake: providers.py: Fix PREFERRED_VERSION containing epochs 423bb6b xf86-video-intel: drop libxvmc dependency 3f0591a distro-tracking: remove mesa-xlib 0d43dc7 qemu: add wrapper for qemu-mips binary 7da9f10 e2fsprogs: Don't install findfs 094c4a0 bzip2 and busybox: Incorrect LICENSE 6d1aa1d linux-yocto-custom: Clarify defconfig usage 71030c6 package.bbclass: Fix regression in -dbg packages introduced by explode_dep_versions change e6663ff qt4: Avoid circular dependencies with multilib 8609051 bitbake.conf: Add CCACHE_DISABLE to BS_HASHBASE_WHITELIST 029a744 poky.conf: Remove git proxy configuration check url 7067717 documentation: poky-ref-manual - Updates to faq entry 5a18ea1 documentation: poky-ref-manual - Wording change for faq entry. dd7db5c documentation: poky-ref-manual, dev-manual - added link to oe-core 56e07f6 documentation: poky-ref-manual - Updated faq entry 734d58c documentation: dev-manual - Wording changes for bumping PR 371a19f documentation: poky-ref-manual, bsp-guide - netbase version updated. 85e5dff documentation: poky-ref-manual - faq entry removed. 4afdff4 documentation: poky-ref-manual - Sentence corrections. 6c5691a documentation: poky-ref-manual - glossary entry for SDKIMAGE_FEATURES 99a1bf0 documentation: poky-ref-manual - Added staticdev-pkgs to list. d46ab5a documentation: poky-ref-manual - GNU terminology fixed. 6c15b34 documentation: dev-manual - Added final SRCREV statements. fd67c63 documentation: dev-manual - Changes from Crown Bay to fri2 876a87b documentation: dev-manual - branch fix and reference fix. 13d1471 documentation: dev-manual - Updated Git repo example e6ed211 documentation: dev-manual - Fixed capitalization for term. 5fd5ef7 documentation: dev-manual - Changed wording to recipe 1628d3c documentation: dev-manual - Update to package/recipe wording a32c0b2 documentation: dev-manual - updated some obsolete links. 5e1460d documentation: dev-manual - updated branch to use DISTRO_NAME 873ac6a documentation: dev-manual - minor edits. 2685ff4 documentation: dev-manual - Updated the Application Dev figure. 201bf86 documentation: dev-manual - Updates to kernel workflow summary 3388abd documentation: dev-manual - trademark added and reference updated. 9c7f3c3 documentation: dev-manual - Added reference to submit change section. 175e4bd documentation: dev-manual - Changes to "Source Directory" use. fc50139 documentation: dev-manual - updated kernel flow figure. 965f760 documentation: dev-manual - corrected punctuation. 25141d5 documentation: dev-manual - clarified what files we are using. dff62da documentation: dev-manual - Updated list of kernels 1b02ad9 documentation: dev-manual - updated list of BSPs in meta-intel. eb9682f documentation: dev-manual - minor edits. 1040961 documentation: dev-manual - Updated overview for application flow 93e7454 documentation: dev-manual - Created list of option. 70c6572 documentation: dev-manual - grammar fix and SDK caps on. 418d7d6 documentation: dev-manual - caps for SDK when used in general. f85c5a5 documentation: dev-manual - grammar correction. 050263f documentation: dev-manual - added cross-reference to PN. cc5f361 documentation: dev-manual - minor wording change. 08996b3 documentation: dev-manual - minor edits and links added to glossary. c63ff82 busybox: Add missing INITSCRIPT_NAME_${PN}-hwclock 999f7c2 bitbake: hob/hobpages: Generate the title label every time 42b3fc6 qt4: add 4.8.3 version with negative D_P 89386fd qt4: PR bumps aea363a qt4: replace all local patches with git patches with headers 425df23 qt4: drop patches not used in any recipe b0862a5 qt4: move patches from files to qt4-4.8.1 ee14710 qt-mobility: move qt-mobility patches to separate dir d4ad1b7 qt4.inc: move more options to separate variables a0a2922 qt4: rename qt-4.8.1 to qt4-4.8.1 to match other .inc and .bb 248e9f4 qt4: use releases.qt-project.org instead of get.qt.nokia.com 8ceea52 qt4-tools-nativesdk.inc: rename to nativesdk-qt4-tools.inc 9c3e605 libdrm: Remove Cairo dependency 5112da2 binutils.inc: add vardep on multiarch DISTRO_FEATURE 6e8d68d libx11.inc: fix build issues for older CentOS distros be8dd82 Revert "initrd: Spawn an emergency shell when something goes wrong" 51ad952 nativesdk.bbclass: Ensure we have chrpath >=0.14 e2519ae chrpath: We should provide chrpath-replacement-native and install into a native specific directory bf3d0ca gzip: The native version should provide gzip-replacement-native 40a3cf0 bitbake.conf: Add chrpath-native to ASSUME_PROVIDED 32cc952 scripts/oe-buildenv-internal: Ensure we detect the SDK/ADT and error out 34bd4e1 opkg: Convert select-higher-version option to prefer-arch-to-version cbddb89 poky-sanity.bbclass: bblayers.conf should be updated automatically 7c2b1d5 bitbake: hob: Improved behavior for error reporting window f18208a libart-lgpl: add art_config.h for mipsel 0ca8b62 opkg: Drop nogpg version since the main version now has nogpg too 57977d7 opkg-native: remove spurious dependency on curl-native faee028 libpcap: add dependency on libnl 7c02bb4 galago: remove 2984c87 sanity.bbclass: Fix invalid test for network error 6494c05 bitbake: Update version to 1.16.0 876ef49 bitbake: hob: Further improvements to hob dialogs a2783d2 bitbake: hob: Fix 'User selected' tag functionality 2df5a30 bitbake: hob/settings: Change the 'Delete' button behaviour in the shared state settings tab 58a99eb bitbake: hob/image_details: Remove kernel info from details d3529e2 bitbake: tests/utils: Add test for explode_dep_versions2 c4d857d bitbake: utils: Add explode_dep_versions2 to replace explode_dep_versions 9a28351 bitbake: utils.py: Allow explode_dep_versions comparisons to have arbitrary whitespace e7ba10c bitbake: utils.py: Check for duplicate dependency entries 5fdbda6 classes: Update to use corrected bb.utils.explode_dep_versions2 API 0bfb209 insane.bbclass: Remove copy and paste confusion when using OVERRIDES 35e6121 sanity.conf: Require bitbake 1.16.0 (stable series) prior to release (and for explode_dep_versions changes) ae4552a gdk-pixbuf: Ensure gdk-pixbuf-native dependencies are correct with linuxstdbase 31dec3c opkg: Don't call sync() when installing into an offline root 97160f8 opkg: fix version constraints in conflicts, depends, replaces 31fcfef package_deb/ipk: Remap < and > to << and >> 56c677a multilib: Move redefinition of STAGING_DIR_KERNEL cf7cff7 Cleanup: fix PN == BPN cases eab4995 rpm: Implement workaround for DB_BUFFER_SMALL error e602247 rpm: Add rpm patch to fix git_strerror issues a2e7ada rpm: Fix file contention issue fc3b665 rpm-native: Fix 'uuid_rc_t' undeclared error when compiling 6b76d9e libxcb: Update DEPENDS to avoid duplicate entries b616c94 gst-ffmpeg: add LICENSE_FLAGS 95c0e78 poky.conf: supported distro warning update 7cf3214 poky.conf: Clarify DISTRO_NAME to be less confusing 42ac02e yocto-bsp: remove 'test' options from user-config.cfg 7855192 yocto-bsp: use FILESEXTRAPATHS for xserver-xf86-config bbappends 02a1ed4 documentation: dev-manual - minor edits. 24da1b8 documentation: dev-manual - Fixed a term for consistency. a47106a documentation: dev-manual - more wording changes. 4b17b2d documentation: dev-manual - better wording for the .bb file 6acea58 documentation: deb-manual - updated list of layers in the repo 56ac2d9 documentation: dev-manual - fixed grammar. ebd71dd documentation: dev-manual - Better description of location of scripts 4523324 documentation: dev-manual - wording change to remove ambiguity. 8cd203a documentation: dev-manual - formatting change. 5992839 documentation: dev-manual - Buzilla components updated to six. d399b58 documentation: dev-manual - better wording. 12ba89a documentation: dev-manual - Added link to pull scripts. 332e696 documenation: dev-manual - added link to section on patching. 0792551 documentation: dev-manual - better terminology. 6bf96aa documenation: dev-manual - formatting fix. 8606f28 documenation: dev-manual - clarifies local branch. 78aedfa documentation: dev-manual - grammar fix. a1fc37e documenation: dev-manual - updated the key tags example list. 5bd37e5 documentation: dev-manual - Better wording for repo setup e25d32b documentation: dev-manual - updated string of example branches. a206035 documenation: dev-manual - Added "the" in front of YP use. 2977ae4 documentation: dev-manual - grammar fix. 52780dd documentation: dev-manual - grammar fix. ee19880 documentation: dev-manual - First re-write of "Package" term. 0101e9e documentation: dev-manual - Added QEMU for image target. 33547c2 documentation: dev-manual - grammar fix. 655264a documentation: dev-manual - Fixed buildbot target heading. 0824517 documentation: dev-manual - updated meta-intel repo example. b7eb759 documentation: dev-manual - formatting change. a8ceece documentation: dev-manual - Update poky-extras example f38b88a documentation: dev-manual - changed 3.2 to 3.4 for kernel support 25fb8ec documentation: dev-manual - corrected heading for yocto linux kernel. dce39b7 documentation: dev-manual - Added reference to supported distros. 5473c28 documentation: dev-manual - Defines QEMU acronym. 2b8d3c2 documentation: dev-manual - Fixed broken release notes link. 76dd4dd documentation: dev-manual - minor edits to manual limitations 7c39c87 documentation: adt-manual, yocto-project-qs - Added tarball installer info b99414e documentation: poky.ent - updated distro to danny 691d462 documentation: adt-manual - updates to adt_installer location choice 43f295d documentation: adt-manual - Added dev package information db70697 documentation: dev-manual - changed to directory for BSP example. ed52eec documentation: poky-ref-manual - Edits to PRINC glossary entry 8943249 documentation: Final edits to INC_PR glossary entry 35800af documentation: fixes KERNEL_FEATURES example af8a6a2 documentation: INC_PR glossary definition changes 8711ca8 documentation: PRINC variable glossary entry edits 71107aa bitbake: Fix bad merge of #2162 183ffd2 bitbake: hob: Error reports are done in a clearer way 1a85fc8 bitbake: hob/builddetailspage: fix failure_primary_action_button_clicked_cb e2ac27c bitbake: hob/builddetailspage: remove "back" button 409859e yocto-bsp: fix dmaengine feature inclusion facb5f9 yocto-bsp: make vfat feature inclusion conditional on kernel version 1ed2073 xserver-xorg: Remove RCONFLICTS against xserver-xorg 15216fc siteconfig: Clear cache before rebuilding 3d3893d perl: Fix substitution madness c4788b7 flac_1.2.1.bb: use TUNE_FEATURES to enable/disable altivec 856d579 tune-ppce6500.inc: add e6500 tune files 81de52f arch-powerpc.inc: add altivec as a valid tune feature 7bdcc26 eglibc_2.16.bb: refresh fsl-ppc-no-fsqrt.patch for Freescale targets 3129c32 eglibc_2.16.bb: refresh ppc_slow_ieee754_sqrt.patch for Freescale targets 25804ed eglibc_2.16.bb: refresh ppc-sqrt_finite.patch for Freescale targets 001297e eglibc_2.16.bb: replace patch with updated version that supports e6500 574d728 boost: Support enums in hash 7c6d679 flex,bison: Add nativesdk variants f88ee2e ltp: add dependency libcap 4964945 bitbake: knotty: Allow displaying of status when no tasks are active b85c30b bitbake: parse/ConfHandler: Add negative lookahead to spot some quoting problems 649048e bitbake: hob: set modal flag on progress dialog 1ad5343 bitbake: hob/settings: implement a new tab in settings dialog to show SSTATE_MIRRORS edb2890 sstate: Relax the duplicate file whitelist for now a42dffc tcl: Fix dangerous do_install staging references b0f4a5b xserver-xorg: Use rdepends to ensure xserver-xorg-module-exa match version ad1aa81 license.conf/bbclass: Move globals to license.conf 0f9ca5d bitbake.conf: parse license config 4f82c4e license.bbclass: Variable standardization 7d95141 sanity: Added explicit network error status in SanityCheckFailed event 39a091f initramfs: Make mkdir not fail ffb6928 initrd: Spawn an emergency shell when something goes wrong 6d3d4ba sanity.bbclass: bblayers.conf should be updated automatically f786991 runqemu-internal: don't append an empty element to PATH f31d114 oe-find-native-sysroot: show bitbake errors to user 71c0ff2 gst-plugins-good: make pulseaudio support dependent on DISTRO_FEATURES 629282e xserver-xorg: merge version-specific .inc into .bb e1913fb eglibc: Fix for dynamic linker broken offset ea5913f cogl: Add a missing depends on libxdamage a8c78aa bitbake: Add missing file from previous commit 3c58f92 Revert "autotools.bbclass: using relative paths for acpaths" f40bfd2 bitbake: hob/builder: When you stop a build, Hob should tell you stopping is happening 8160249 bitbake: lib/bb/data.py: improve output for expansion errors 31f0de4 bitbake: cooker: adjust layer dependency error messages bc90ded bitbake: hob/recipeselectionpage: recipes should not be shown brought in by themselves faaa065 bitbake: fetch2: add "-d" option to cpio 5c1345c bitbake: Multiple user interface fixes in settings 87a1f63 bitbake: hob/runningbuild: Add missing logging level argument 7414ba7 bitbake: Add sanity check progress screen 6fdff49 bitbake: hob/builddetailspage: change branch field 0e1a427 bitbake: hob: Buttons width and height are taken for host 4c22961 bitbake: hob/settings: implement a new tab in settings dialog to show SSTATE_MIRRORS d658f48 sstate-cache-management: hide error message when one of possible layer location doesn't exist dcd607e gnome-keyring: include unpackaged files with PAM enabled d93a5e1 autotools.bbclass: using relative paths for acpaths 876ec81 perl: Fix nativesdk install path 30b0c3c dbus: disable all X11 when native 8bb52d8 eglibc: Remove bogus PACKAGES_DYNAMIC setting 6d7e9d4 xserver-xorg: use EXTENDPKGV instead of PV in RCONFLICTS_${PN}-module-exa 3d25fc9 cml1.bbclass: Convert tab indentation in python functions into four-space 0b09e50 busybox: Fix misplaced quote 5a18ffd util-linux: Remove static libraries from -dev packages 7d408d37 util-linux: Don't package chkdupexe 0c7ef52 package_rpm.bbclass: change the arch's "-" to "_" for platform 5985284 package_rpm.bbclass: no initial_solution in the second build 65d2b3a layer.conf: allow other layers to depend on this version 4f68dd9 iproute2: Use configured values for ${base_sbindir} and ${libdir} 6bc5925 SDK: trap any IO errors in the relocate script 04ced3d ossp-uuid: LICENSE type corrections. 8c32bcb at: atd remove useless --make-pidfile option. 074d49d sysvinit-inittab: fix hang issue of series consoles check fd464e0 package_ipk: Remove spurious '-i' in grep command for log_check 0c34061 gcc-configure-cross: factor out --enable-threads argument into ${GCCTHREADS} 9eacffe sstate: Remove master manifest usage 42e8c80 packagedata/multilib: Fix search patch for multilib builds 8593c6c sstate: Fix SSTATE_DUPWHITELIST variable usage acd52fd poky.conf: We need to clear WARN_QA to avoid the unsafe-references a8edf79 bitbake: fetch2/git: Don't use deprecated API e8738b8 bitbake: hob/packageselectionpage:cancel button should redirect to Image conf screen a0bdb64 bitbake: hob/builddetailspage: change tooltips and remove a dialog from "Build stopped" message 0ab08f1 kexec-tools: admit mips as a COMPATIBLE_HOST 3c914fd beagleboard: update to 3.4 27874b7 linux-yocto/3.4: update beagleboard configs 3e7e0bd linux-yocto/3.4: update kver to v3.4.11 6ee9ebc Add and use 'localedir' variable d02f029 gcc-common.inc: Consider multilib when renaming libgcc for debian'ness 4d7fb79 rpm: Add base-files as RDEPENDS f32785a libcap: Fix erroneous path in last commit 8b3aa00 documentation/poky-ref-manual/ref-variables.xml: Update B variable 9bc3b44 documentation/dev-manual/dev-manual-common-tasks.xml: external SCM Update 249869e documentation/poky-ref-manual/ref-variables.xml: added BP variable glossary f46d5b7 documentation/poky-ref-manual/ref-variables.xml: New P variable glossary 3232d19 documentation/poky-ref-manual/ref-variables.xml: new PRINC glossary term 09c0ccd documentation/poky-ref-manual/ref-variables.xml: PF added 69eb239 documentation/poky-ref-manual/ref-variables.xml: Edits to PN suffix 19bd5f0 documentation/poky-ref-manual: PN scrub 35abb93 documentation/poky-ref-manual/ref-variables.xml: re-write SRC_URI b06035c documentation/poky-ref-manual/ref-variables.xml: Formatting change 451af65 documentation/poky-ref-manual/ref-variables.xml: Added new option. 11bc3ac documentation/poky-ref-manual/ref-variables.xml: SRC_URI glossary updated a357e98 documentation/README: updated to include website information. 94ba719 documentation/adt-manual/adt-prepare.xml: replaced oe-init-build-env 7bff7a0 documentation/yocto-project-qs/yocto-project-qs.xml: Minor corrections 21ce4e4 documentation: Build example in QS and poky.ent variable added 88429f0 bitbake: bitbake: Unbuffer stdout for log files 98ac5e4 bitbake: event.py, knotty.py, ncurses.py, runningbuild.py: Add support for LogExecTTY event eab93b0 bitbake: progress.py: Fix traceback when running goggle ui eed98e4 bitbake: runqueue: Add --no-setscene to skip all setscene tasks 86cf6da terminal: Send LogExecTTY event to spawn screen 6e0713a terminal: pass data store all the way through to terminal class e1c1ee1 bitbake: fetch2/git: Add missing mkdir 90b7683 bitbake: fetch2: improve error output for checksum failures 683d3b9 bitbake: fetch2: make fetch failure errors more readable 0bdde68 bitbake: lib/bb/runqueue.py: fix exceptions with -k and failed targets 1c2634c bitbake: hob: fix Gtk-WARNINGs due to invalid markup on Back button c46c560 bitbake: hob: remove confirmation dialog on close bf567b1 bitbake: hob: allow configuring default machine using HOB_MACHINE 9915572 bitbake: hob: don't show error dialog for errors during building d875d62 bitbake: hob: The title of the packages screen depends on the screen you arrive from 64ea131 Fix Upstream-Status d4384e1 binutils-2.22: Disable recent gold backports from 2.22 branch 0fb184d linux-yocto/meta-yocto/3.4: update machine SRCREVs e911731 routerstation: Disable virtual terminal by default af30de3 initscripts/sysfs.sh: mount debugfs if present e36751c rootfs_ipk: Avoid leaving run-postinsts around if online package management is disabled e46be72 runqemu: work with tap device names that end with a colon 2f0a82b qemu-native: fix build on hosts without libX11 installed 5378763 libcap: respect ${base_sbindir} 4d741c1 sqlite3: enable USE_PREAD 9ee8e2f classes/multilib: prevent multilib extension of nativesdk recipes d27d9e8 classes/multilib: ensure MLPREFIX is set for image recipes b5b0fc2 pulseaudio: Ensure openssl is disabled 82a99a4 autotools: Remove special handling for autoconf* and automake* 6f32c9c dbus: Remove hardcoded reference to /usr in System V startup script ddd5508 arch-armv7a.inc: Don't disable vectorization ae18a59 linux-yocto/3.4: Update fri2 and sys940x to emgd-1.14 8e3c10f lsbtest: update list file d3e03ab util-linux: Ensure that ${sbindir} is respected 22a4046 bash: Make it possible to run bash 3.2.48 instead of 4.2. b294e90 adt-installer: add sudo when relocating symlinks df74f8d gcc: Use 4.7.2 release tarball 3c101af bitbake.conf/gcc-common.inc: Fix STAMPCLEAN expression 30b7781 insane.bbclass: Improve ability to detect enabled tests 65d1eb7 insane.bbclass: add library dir sanity check 2c9c911 linux-yocto/3.4: use profiling and latencytop features in yocto bsps 494fe41 SDK: allow toolchain installation from another directory 04877f7 SDK: relocate symlinks too b6867e8 SDK: remove references to Poky distro from tarball installer bf94f4d adt-installer: ensure directory exists before copying/removing bd73a4b SDK: fix installation into symlinked directories b9bd372 adt-installer: fix package installation issue 621fec0 intltool: include intltool.m4 and add missing rdepends 4946185 opkg svn: respect to the arch priority 0c6aec8 gdb: Upgrade 7.4 -> 7.5 32a0d1b opkg-nogpg: drop SRCREV 15b913d opkg: add patch to fix SIGSEGV when printing status file 305993d opkg: replace local patches with git patches submitted upstream 3e774a6 opkg 0.1.8: remove it since it doesn't work 51048ac qemux86-64: Support for KVM, paravirt and virtio added ab2b2a1 qemux86: Support for KVM, paravirt and virtio added 32fdbd8 runqemu: show bitbake errors to user be174d7 librsvg: make the libcroco dependency a PACKAGECONFIG option faa2a29 mkefidisk.sh: Add script to do an EFI install on the host 5f3ae06 rpm 5.4.9: DEPENDS on bison-native df5f9a3 gtk+: enable gtk+-native 42d91a7 Replace "echo -e" with "printf" to have the same behavior in dash or bash 82a08d4 byacc: update config.{sub, guess} before running configure 3356b81 xcursor-transparent-theme: switch SRC_URI as matchbox-project is dead 936d18a bitbake: hob: Don't set busy cursor on the root window, just our window c0c04a5 bitbake: hob: add a top bar when building process is stopped f77488e bitbake: cooker: Clarify package/recipe wording 1e8b535 bitbake: hob/packageselectionpage: "Cancel" button returns to "Image configuration" screen 3d62295 bitbake.conf/gcc: Add clean masks for stamp files 14a04ab bitbake: hob: report event handler failures 8d46be8 bitbake: hob/settings: Remove stray "distro" combobox from simple settings d485d0b bitbake: build/siggen: Add support for stamp 'clean' masks a4fd77d bitbake: fetch2/cvs: Fix parameter spacing 01606f2 bitbake: fetch2/cvs: Clean up various data store references 553a5b1 bitbake: fetch2/cvs: Fix localdata variable reference 05c1d32 bitbake: hob: Fix settings dialog issues 8c82b12 bitbake: hob: rename 'View log' to 'Open log' 749f4f6 bitbake: compat, event: use OrderedDict from py2.7 for the event handlers f573925 poky.conf: Silence unsafe reference warnings 8ebed88 image_types: fix squashfs-lzma image creation 1c0f73b rootfs_rpm: Add Multilib prefix to installed_packages list 7cab823 eglibc: Do not use fsqrt in libm when building for fsl ppc with fpu c98b7e8 eglibc: Fix fcntl.h for powerpc 7999c9b nfs-utils: add x32 patch to fix nfsctl issue d72ed27 xserver-xorg: Modify RREPLACES for RCONFLICTS 807c93f util-linux: Fix bloken swapoff symlink a6d808f grub: disable lzma, device-mapper, zfs and nvpair 48c01ee libtelepathy: PR bump to rebuild after libffi5 -> libffi6 5aa1f3a recipes: few more PR bumps to rebuild after libffi5 -> libffi6 2c5079b recipes: bump PR to rebuild after libffi5 -> libffi6 913944d upstream_tracking: update lsb and ltp ea17310 local.conf.sample: change valgrind support architecture comment ada2c27 patch.bbclass: increase security c4a923b documentation: Toolchain corrections from tarball to .sh file 4c90692 documentation/dev-manual/dev-manual-model.xml: updates to project creation b1f6ce1 documentation/adt-manual/adt-prepare.xml: Notes about installing sysroot ccacc9c documentation/adt-manual/adt-prepare.xml: updated ADT Installer example ef5017d documentation/adt-manual/adt-prepare.xml: Update adt_install example 7adb367 documentation/dev-manual/dev-manual-model.xml: Updates to plug-in install fa2da88 documentation/dev-manual/dev-manual-bsp-appendix.xml: Fix repo example 2e16a75 documentation/poky-ref-manual/ref-variables.xml: Wording change PACKAGE_BEFORE_PN 1626fd5 documentation/poky-ref-manual/ref-bitbake.xml: Fix BB_ENV_EXTRAWHITE example 7a6e991 documentation/yocto-project-qs/yocto-project-qs.xml: Added glib-gettextize cc8e7cc documentation/poky-ref-manual/ref-bitbake.xml: remove refs to Dates and Contacts de8a9ba documentation/yocto-project-qs/yocto-project-qs.xml: Adjust GUI component feature listing c5d94b7 documentation/poky-ref-manual/ref-images.xml: Update list of images 971a943 documentation/poky-ref-manual/ref-classes.xml: update undocumented classes fe2ad76 documentation/poky-ref-manual/ref-classes.xml: Add packagegroup.bbclass 532aff1 documentation/poky-ref-manual/ref-variables.xml: variable edits 97fc511 documentation/poky-ref-manual/ref-variables.xml: PACKAGE_BEFORE_PN grammar edits 2f7553e documentation/poky-ref-manual: Section name change 43bbfc5 documentation/documentation/poky-ref-manual/ref-variables.xml: Update PACKAGES default 6ceecd0 documentation/poky-ref-manual/ref-variables.xml: replace reference to old files 63d3dac documentation/poky-ref-manual/ref-features.xml: edits to IMAGE_FEATURES list b39457c documentation/dev-manual/dev-manual-common-tasks.xml: package group changes 84b3daa documentation/poky-ref-manual: fix for rename of task to packagegroup a3de958 documentation: remove references to task bbappend 64b9137 documentation: Fixed links to BitBake User Manual 3fa4a6a documentation/dev-manual/dev-manual-common-tasks.xml: note on readme b3ba9eb bitbake: Implement 'settings' dialog as designed 149c121 bitbake: cooker: Fix priority for virtual recipes 293764e bitbake: hob/builddetailspage: Add tooltips to the build failed notification 5b53671 bitbake: lib/bb/event: improve handling of event queue on exit 537dd88 bitbake: hob: format error messages properly 8314868 bitbake: hob/imagedetailspage: change "FileCreated" label to "Files created" 043ab54 bitbake: Fixed hob proxy tab tooltip text per review suggestions [YOCTO #2499] 78b1414 bitbake: hob: sort base image drop-down list 34cacbf bitbake: lib/bb/command.py: ensure setVariable only sets values as strings beb6815 bitbake: hob: don't reorder layers list ffc3b5d linux-yocto/3.4: make uprobes select perf events db82b42 bitbake.conf: Assign SRCPV so that it will be tracked correcting in the sstate checksum 25af7f6 opkg: Fix package dependency issue for preinsts 0d67446 taglib: Update to v1.8 97bb9c5 binutils-2.22: Backport PR fixes from 2.22 branch 268177e linux-yocto: virtio and KVM guest configuration 3a6cebb kernel-yocto: fix kernel configuration audit for custom yocto kernels 4bb2ce4 pseudo_1.4.1.bb: update to pseudo 1.4.1, fixing 32-bit host problems a2eab6b scripts/combo-layer: ensure we validate branch/revision on init 7ddf64d scripts/combo-layer: use last_revision if specified in init 87ec752 libffi upgrade to 3.0.11 447b53b gst-fluendo-mpegdemux: add LICENSE_FLAGS f73e829 libx11: update patch to a backport from upstream git 1cc4bb4 librsvg: remove spurious popt dependency 1f6566c librsvg: --disable-gnome-vfs doesn't exist anymore, remove 56d8665 git: define NO_PYTHON=1 to stop git requiring python as a dependancy 30db398 image_types.bbclass: Round up ROOTFS_SIZE after base_size check e556188 kernelshark: add missing ${D} c9f9342 oprofileui: Add Icons to oprofileui-viewer package 5388847 valgrind_3.7.0.bb: fix missing leading space on _append 2a0d7ad patch.bbclass: Use one TMPDIR per patching process d7ef15a runqemu: Explicitly specify MACHINE when calling bitbake 0496e28 uclibc: Revert systemd regressing patch from upsteam uclibc and uprev SRCREV 8f1f81b connman: remove trailing whitespace 7401ed0 Update to upstream_tracking.inc fe0cc42 scripts: change default ARM BSP to use xserver-xorg, not -lite c46ca06 distro-tracking; remove references to xserver-xorg-lite af01997 distro-tracking: remove libx11-trim b262fcd rt: Add hwlatdetect to rt images b3155c8 rt-tests: Add hwlatdetect package 244dd76 rt-tests: Update to 0.84, use the kernel.org git repository c2383a3 quota 4.00: add DEPENDS gettext-native 17b3c88 gst-plugins-good: fix compile error with recent linux-libc-headers b7a81c5 valgrind: fix debug info reading error when do memcheck on ppc targets fdf8724 libx11-trim: remove, it's the same as libx11 now 680ffe3 mesa-dri: remove DEFAULT_PREFERENCE, this is the preferred now a6a18d4 mesa-xlib: remove, it serves no useful purpose 7ca0d77 libx11: revise keysymdef patch based on submission upstream bbe27db libx11-diet: remove un-needed chunk from stubs patch ad02e38 libx11: makekeys can be cross-compiled now, so don't hack around c258559 libx11: drop makekeys_crosscompile.patch, effectively merged upstream 003c457 default-providers: default to libx11, not -trim cc5557e libx11-diet: remove statements that are redundant 5842947 libx11: make bigfont an optional (disabled by default) packageconfig option 8427913 libx11: refresh dependencies, and centralise into libx11.inc d7a03d5 libx11: merge patches into a single directory 8e6a6ec libx11: remove redundant license data 13ca58f libx11: move keysymdefdir option to .inc c0fff56 libx11: move xcms disabling to PACKAGECONFIG in libx11.inc 85816c8 xorg-lib: move options to disable documentation to xorg-lib-common 8071888 libx11-diet: you can't disable UDC, because it's always disabled 71ba823 libx11-diet: you can't disable XCB anymore, so don't try aa1744d libx11: use INC_PR 0359330 linux-yocto/3.4: add x32 configuration fragment e3aa2e8 sysstat: upgrade to 10.1.1 39a30b8 libexif: upgrade to 0.6.21 83ba6c3 glew: upgrade to 1.9.0 5f42b9c boost: upgrade to 1.51.0 a3c257a classes/license: place all found licenses on one line 2ebe4d4 classes/license: correct license info in lisense.manifest 043df83 classes/license: account LICENSE_${pkg} values in manifest ed4836d classes/license: remove redundant nested if statements 5dce00f classes/license: check license manifest for double records dd1ee2a classes/license: define LICENSE_MANIFEST variable c460737 eglibc: Restore ${PN} to before ${PN}-dev in PACKAGES bb330fd sysvinit-inittab_2.88dsf.bb: only run serial checks at boot if we have items to check 1d3391b linux-yocto*: append to KERNEL_FEATURES instead of assigning 84f54d6 libgnome-keyring: add missing DEPENDS on intltool-native 844422d libgpg-error: Use the source file for the licence checksum 8b9b1ab autotools.bbclass: Add functionality to force a clean of ${B} when reconfiguring (and ${S} != ${B}) c8e3e01 nativesdk-qemu: fix SDK relocation issue de69c6c classes/sanity: remove obsolete code fd572e8 classes/sanity: skip tune checks if machine is invalid f20b8ff gettext: Make gettext 0.16.1 extend native and nativesdk. 925594a linux-yocto/3.4: v3.4.10 and uprobes/kprobes configuration updates 42f0f96 gcc-4.7: Backport libgcc fixes to appease the new build sequence 86ae512 gcc-4.7: Fix build for armv4/EABI and ppc/Os ed9bb94 telepathy-idle: fix parallel build 13221b2 webkit-gtk: work around Make bug by re-running make 69c4ddf shadow-native: Ensure that ${sbindir} and ${base_sbindir} are respected 02cc31e shadow: Fix various invalid assumptions about directory layout 6ccd988 perl-native: PROVIDE libmodule-build-perl-native for consistency with non-native perl 7cd1454 qt4: Update qt4.inc to remove staticdev deps in -dbg packages 9c2bb68 base-files: provide a mechanism to skip creation of the hostname file 03109ba package_rpm.bbclass: Avoid unnecessary installs in complementary pass a6359e9 image.bbclass: Enable the complementary install to be called w/ globbing params 5a71f25 sstate: Append to EXTRASSTATEMAPS and add comment 7250638 upstream_tracking: Fix format issues 0ccef3b Manual updates to upstream_tracking.inc 2cbf4e6 bitbake: hob/packageselectionpage: restore selected packages 1b1b836 bitbake: hob: rename task -> packagegroup in recipe selection 5f40b7a bitbake: hob: ensure error message text is properly escaped 4ec3d72 bitbake: hob: use correct semantics for dealing with pkgdata a4e3656 classes/packageinfo: use better method to check if package exists fb44773 bitbake: tinfoil: Add file inadvertently not committed 440fba4 packagegroup-core-x11-xserver: remove redundant PACKAGES statement ba8abac eglibc-initial-2.16: add kconfig-frontends-native to depends 2181635 bitbake: cooker: fix handling of exceptions during exception handling 4d8ba9a bitbake: fetch2: fix malformed URL causing a useless traceback e843d56 bitbake: hob/imageconfigurationpage: remove or_label reference 27f842e lib/oe/sstatesig.py: add signature data query function 950c85e poky-tiny: Enable x86-64 to build eglibc correctly 2ce0e3c yocto-bsp: remove packagegroup-core-tools-profile.bbappend 3e1d3d3 runqemu-internal: New qemu calls it qemu-system-i386 for x86 7c4878e qemu-git: Move to tip of git past 1.2 release 11432c6 qemu: Update from 0.15 to 1.2 f6cc077 Add package wget and perl modules. 098beba libi18n-collate-perl: add it 0ca6015 libfile-checktree-perl: add it 14bf0b7 libenv-perl: add it bee598c libdumpvalue-perl: add it d04b95b libpod-plainer-perl: add it 8ced78d perl: package modules Pod-Html and Tie-Hash-NamedCapture c3e066a libclass-isa-perl: add it 23a6f63 u-boot: Use fw_env.config if available. 2428874 core-image: allow root login when debug-tweaks is enabled 9b92449 xserver-xorg: make DRI/GLX options respect opengl distro feature 887a731 xserver-xorg-lite: remove 3668a2d autoconf: use --warning=cross only if supported 5cf953b machines/x86: Drop redundant glibc configure knobs f23d843 kconfig-frontends: Create symlinks for conf and mconf 3cfc70f eglibc: Enable kconfig for option management 607a3d5 eglibc-2.16: Add kconfig infrastructure 4bca664 arch-armv4.inc: On armv4 add --fix-v4bx to linker flags for kernel 6ce6e3e pixman: ignore NEON, IWMMXT, LOONGSON_MMI variables for class-native d822c8f pixman: merge meta-oe append into oe-core 092895c package_rpm.bbclass: fix incremental rpm image generation d401258 lsb: update version 7174920 ltp: update 3526308 qemuimagetest: modifying the scenario file as per new test cases 913e2e2 qemuimagetest: add basic function to check syslogd fe4dcbb qemuimagetest: add basic function to check enough disk space ea55ec9 qemuimagetest: basic function to check bash exists 208ff62 bin_package.bbclass: binary package recipe class 4a015e5 package_rpm.bbclass: fix the arch (replace "-" with "_") d011150 distrodata: replace Tab with Space cfa6817 classes/mirrors: remove bogus gnutls mirror 5343cdb bitbake: fetch2: replace double slashes in paths in encodeurl() 5728518 bitbake: hob: print message when DISPLAY is not set 95ae927 bitbake: Hob: change view of 'recipes' and 'packages' tables as ui design a32f551 mpc8315e-rdb: switch to ppce300c3 tuning e58eb8c bitbake: bitbake-diffsigs: allow specifying task & follow deps recursively d5226c9 bitbake: lib/bb/siggen.py: make signature dump/compare functions return a list 19d0abe bitbake: lib/bb/siggen.py: insert a colon between class and recipe name b7bd852 bitbake: lib/bb/siggen: replace tabs with spaces 56a66a1 bitbake: tinfoil: create simple interface for bitbake-based utilities e8d8784 bitbake: crumbs/hig: Save toolchain in settings e2b0eae bitbake: hob: The 'run image' and 'deploy image' dialogs text and alignment corrections ed17f44 bitbake: hob/imagedetailspage: "Image ready" icon appers only after the image was generated 40d55d3 bitbake: hobwidget: Button theme is taken from host, fix 7d8b49c bitbake: fetch2: unpack rpm, ipk and deb binary package 399d7f2 bitbake: hob/recipe&packageselectionpage: Change "Back" button to "Cancel" button 34c4b3a bitbake: hob/imageconfigurationpage: Set secondary action for "Edit image" button 0edb99f bitbake: hob/packageselectionpage: Add tooltips to 'Included' and 'All packages' tab and 'Search' field b2e2bad bitbake: hob/packageselectionpage: Correctly restore previously selected packages c8db2f6 bitbake: hob2: remove class hcc da98edd bitbake: hob2: remove the hard-coded images map 15abf25 image_types.bbclass: add variable for Hob 1bb35c9 rsync: Add md5sum and sha256sum for the rsync_2.6.9 72dc770 conf/tune: add tune-ppce300c3 dd3edc9 beagleboard: change to xserver-xorg, not -lite 2c9864b gst-plugins-good: disable (uninstalled) examples 0fa17a7 classes/core-image: improve comments listing IMAGE_FEATURES 6d82da2 pulseaudio: remove ConsoleKit dependency 3100a5a gssdp: build examples which require GTK+ only if we have X11 800ce0f gcc-cross-initial: Reinstate limits.h generation fix c92145c matchbox-session: Should have high ALTERNATIE_PRIORITY than mini-x-session 0f55a58 adt-installer: Allow changing YOCTOADT_REPO c4c1ef0 pulseaudio: fix pulseaudio-server RDEPENDS a4ce0e4 xserver-xorg-common: add RREPLACES on xserver-xorg to -module-exa 7e14b78 gsettings.bbclass: fix whitespace a5ee5fe python-pygtk: Upgrade to 2.24 1d48619 packagegroup-core-x11: split machine specific parts to separate recipe packagegroup-core-x11-server 6554dbf packagegroup-core-x11: add upgrade path from meta-oe task-x11* 71d3d1a build-appliance-image: fix for packagegroup-apps-console removal 38e7173 packagegroup-(base|core-basic): add RREPLACES/RCONFLICTS 5084e47 linux-yocto-rt: 3.4.9-rt17 remaining changes 2000698 meta-yocto: Split into distro and bsp components 9d6630d classes/qmake_base: support linux-gnuspe/linux-uclibcspe TARGET_OS 8d6ecfb sanity.bbclass: Move back to running at ConfigParsed time 99c85ba build-appliance-image: Update to latest poky master f0f23f1 linux-yocto/meta-yocto: update SRCREVs to 3.4.9, unionfs, perf and cfg 29c1946 packagegroup-*: add RREPLACES/RCONFLICTS 748e482 packagegroup-core-standalone-gmae-sdk-target: allow dbg package 15111f4 scripts/cleanup-workdir: change autoconf-nativesdk to nativesdk-autoconf fc1cbc1 linux-yocto-rt: update to 3.4.9-rt17 e731ff2 udev: Remove files moved to udev-extraconf c24beff linux-yocto/3.2/3.4: arm: Fix linking errors with binutils 2.23 80048ce linux-yocto/3.4: v3.4.9, unionfs, perf and configuration changes df2e432 kern-tools: fix non-inheriting branch names d7805cf linux-yocto: check for bad SRCREV before branch checks 611f16a linux-yocto: fix unapplied patch error message 1e196e6 kern-tools: fix forced branching 7bbe707 upstream_tracking.inc: Updates for upstream/check date 94c259e udev-extraconf: change LICENSE to MIT 0cc01a6 udev-extraconf: Merge with udev-extra-rules from meta-oe c5003a4 bitbake.conf: FETCHCMD_svn add --non-interactive --trust-server-cert 6b641bb busybox: Add sign-off-by and upstream-status a281963 grub: added upstream-status cc1179e pango: Add missing sign-off-by and upstream-status bb86a22 yocto-docs/.gitignore: Final fix to ignore mega-manual. d806656 documentation/yocto-project-qs/yocto-project-qs.xml: removed fakeroot 5cd31e3 documentation/poky-ref-manual/ref-variables.xml: TCMODE edits fc212a0 documentation/yocto-project-qs/yocto-project-qs.xml: added and removed packages 7913095 documentation/yocto-project-qs/yocto-project-qs.xml: added python-curses d9b2cee documentation/mega-manual: New mega-manual directory e4bb6b7 documentation/tools/mega-manual.sed: Processes external links in mega-manual 0278e3b documentation/dev-manual/dev-manual-newbie.xml: Edits to email patch section d192e6f documentation: Section change for using email to submit patch 2595a2b documentation/dev-manual/dev-manual-newbie.xml: Updates to submitting patches 6b35765 documentation: Section Heading change for pushing commits 0c69e7b documentation/dev-manual/dev-manual-kernel-appendix.xml: Fix PARALLEL_MAKE a177aad documentation/README: Updates for mega-manual e19dfd1 documentation/Makefile: Added mega-file, comments, and publish test d4a65ef documentation: Title changes 55cd232 documentation/dev-manual/dev-manual-model.xml: Fixed mis-named guide 9df4aa6 documentation: Manual reference fixes for mega-manual processing 9235634 documentation/dev-manual: Title Fixes 26409ca documentation/bsp-guide/bsp-guide.xml: Fixed title 03fd402 documentation: Fixes to note for mega-manual processing 2c6f72d documentation/dev-manual/dev-manual.xml: fixed so mega-manual works b84383a documentation: Fixed references to the YP Dev Manual b3ac19b documentation: fixed Quick Start references fcfb087 documentation/Makefile: Changes for new style sheets and mega-manual e4cb643 documentation: Style sheet naming changes a3a84b3 documentation/yocto-project-qs/yocto-project-qs.xml: File name changed 24b14e3 documentation: tag change adt and kernel manuals 5c44309 documentation/kernel-manual: Fixed minor problems 08b7044 documentation/dev-manual/dev-manual-start.xml: Updated NFS server/QEMU info 4972e8f documentation: Added install and config steps for Juno 4.2 9674b1a meta-yocto: fix for task rename ad3743d ghostscript: disable libidn support 25e35d6 msmtp: disable libidn support 80c1bbf wget: disable iri/idn support b640604 tclibc-uclibc, tclibc-eglibc: Prefer nativesdk-eglibc to provide libintl 0740f82 sstate-cache-management.sh: fix remove_duplicated when multiple archs were built 40b1402 sstate-cache-management.sh: add option to enable debug output 40d2cbe sstate-cache-management.sh: don't hardcode available machines only to qemu* 6b3f042 sstate-cache-management.sh: look in meta* above oe-core dir when looking for available tunes 0b43a85 sstate-cache-management.sh: fix regexp in AVAILTUNES grep c2a76d7 sstate-cache-management.sh: fix regexp in checksum grep f357e0e xserver-xorg: remove HAL option, nothing uses HAL anymore cbd1d86 qemu-config: turn into distcc-config and a package group c8d7394 qemu-config: split out export of root via NFS to its own recipe 54b8e84 qemu-config: split out shutdown icon to its own recipe c2e68c6 oprofileui-server: move initscript from qemu-config 1256507 qemu-config: split out anjuta-remote-run 80908c9 oprofileui: split server to separate recipe to avoid X11 dependency f6ae5d8 qemu-config: relicense as MIT 4632f9b iproute2: upgrade to 3.5.1 1bb944a puzzles: upgrade to r9594 e1de7b4 freetype: upgrade to 2.4.10 0c2986f telepathy-glib: upgrade to 0.19.8 97e6fe5 man-pages: upgrade to 3.42 6a7eafb lsof: upgrade to 4.86 b6e3b73 libdrm: upgrade to 2.4.39 0dc523b gypsy: upgrade to 0.9 e7b20fa automake: upgrade to 1.12.3 4a0bec4 packagegroup-*: add RPROVIDES for backwards compatibility 5f0c2e3 core-image-basic: tidy up 2e9f540 packagegroup-core-lsb: rework 0892284 packagegroup-core-basic: tidy up c946fc0 packagegroup-*: set reasonable SUMMARY/DESCRIPTION de03909 ofono: add runtime dependency on dbus dae1a12 connman: add runtime dependency on dbus 2a21c83 packagegroup-core-console: remove 86d4bb2 packagegroup-core-qt: rename -demos to -demoapps e5f7edf packagegroup-core-clutter: remove empty -apps/-tests tasks b9052ee packagegroup-*: drop LIC_FILES_CHKSUM 53284ed classes/packagegroup: disable superfluous tasks 9ca4f5e packagegroup-core-gtk-directfb: remove dropbear 13c5d12 packagegroup-base: remove openswan from packagegroup-base-ipsec 04c6a0f packagegroup-core-gtk-directfb: remove superfluous -base package 07db740 packagegroup-qt4e: tidy up and rename 8eba446 packagegroup-core-x11*: adjust X11 package groups d56f6af core-image-core: rename to core-image-x11 ce1f150 packagegroup-core-x11: move out Sato applications 9bb6f42 packagegroup-*: change to inherit from packagegroup.bbclass 073a12c classes/packagegroup: add ability to disable complementary packages af8c316 packagegroup-core-nfs: remove broken glibc-utils reference 14bf963 classes/packagegroup: Use package group nomenclature ca8f7ec packagegroup-base: remove some useless items 272cb74 Rename task to packagegroup f1df3f8 classes/core-image: remove erroneous nfs-server comment 153d413 classes/core-image: remove *_IMAGE_FEATURES variables 5f0e3d8 classes/core-image: remove SSHSERVER_IMAGE_FEATURES a7c71ab uclibc-0.9.33: Update to latest on 0.9.33 branch 0155211 build-appliance: add zip-native, which is needed to build the final zip bundle 37c8597 distro-tracking: remove xserver-kdrive ba46327 yocto-bsp: add new strip_base() function 7c5c1ad yocto-bsp: add a LICENSE_FLAGS_WHITELIST blurb for emgd to README f6b2e90 yocto-bsp: update the help regarding the meta-intel layer 9c94bfc yocto-bsp: include meta-intel.inc if emgd selected 30eabff mpc8315e: switch to Xorg instead of kdrive 1fd59d3 routerstationpro: switch to Xorg instead of kdrive cf7273d bsp: set default XSERVER for PowerPC and MIPS machines to Xorg e14a30b local.conf.sample.extended: update the sample for archiver.bbclass 17b9777 crosstap: new script 0f9820f ofono: Fix build on uclibc 6b8b0be pulseaudio: Always enable NLS 5a758d6 eglibc: remove duplicate rquota files 175ba20 xserver-kdrive: remove. 8cb5c02 image.bbclass: Convert runtime_mapping_rename to event handler c6fda19 connman: Don't start connmand when booting using nfsroot 60e503a kernelshark: remove duplicate trace-cmd plugins 831b204 elfutils: Fix build on uclibc 5b8e46d eglibc: Bring in the fix for glibc bug #14459, #14195 26fbe84 uclibc-git: Move to tip of master and sync mount.h 4759a71 package.bbclass: fix stripping for kernel modules 823a7f7 gettext: bump PR to avoid RPATH QA failure 02127c4 x11-common: don't prune .svn directories on install, we're in git now aa212d2 x11-common: just support Xorg now that kdrive has been removed dbc8cc4 task-core-x11: default to xserver-xorg instead of kdrive 50d5131 xserver-xorg: ship the exa module in a separate package 8e188a7 avahi: systemd postinst and postrm removed in favor of using systemd.bbclass 8dd8f56 tzdata: install /etc/localtime alongside /etc/timezone 5b1fbbe dpkg: upgrade to 1.16.8 1c64c6b sstate.bbclass: Remove hardcoded task mappings c3bf244 perl: Fix various nativesdk build issues ad23395 nativesdk: Switch to using nativesdk as a prefix, not a suffix 58a8a38 nativesdk: Convert to use classextend.py 9ba1e33 sstate: Ensure master.list exists if it doesn't already c5ce287 bitbake: taskdata: Don't add dependencies on tasks that don't exist d410ebb bitbake: bin/bitbake: Clarify wording in help output for -s 3ad2505 tzdata: this package isn't architecture specific 698f0df ltp: add dependency libaio fd2a6c1 task-self-hosted: remove e2fsprogs-fsck from task list 43a7c66 sstate-cache-management.sh: fix it for downloaded file 59260f9 sstate.bbclass: Detect overwriting files in sstate controlled directories cfb502c glib-2.0: don't disable all debugging functionality 1802da4 Update lttng-2.0 versions f022384 sysstat: Explicitly disable sensors support. bb0aab7 yocto-bsp: use KBRANCH_DEFAULT in 'newbranch' cases 6b96147 yocto-bsp: remove obsolete references 54a1665 gail: remove eb77218 intltool: Add Upstream-Status and Signed-off-by to remove-xml-check.patch 92e40ec runqemu-export-rootfs and friends: don't put pseudo db in target fs c0aa58f ethtool: package update 3.4.1 -> 3.5 36f054e perf: add bison and flex to DEPENDS 44b8c1b archiver.bbclass: fix the remove error 4396677 copyleft_compliance.bbclass: remove the duplicated code 436211f archiver.bbclass: remove the "upper()" function 3883f82 archiver.bbclass: fix the fakeroot and other issues 2ba95cc archiver.bbclass: fix the coding style c96f6ee archiver.bbclass: indent fixes a6588b8 ia32-base.inc: new include file 266d9ce staging.bbclass: Might as well drop the applications, fonts and pixmap directories from ${datadir} 8354db9 udev: Drop hid2hci, its provided by bluez4 now 93d6471 e2fsprogs: Drop fsck binary 45a6988 e2fsprogs: Fully remove/disable blkid b74d54b bitbake: compile tar-replacement firstly b4c5725 yocto-bsp: add missing xserver-xf86-config .bbappend for qemu 1139ab0 yocto-bsp: use base branches for qemu 'newbranch' case ebf7942 yocto-bsp: remove YOCTO_KERNEL_EXTERNAL_BRANCH usage 4bb2e2f yocto-bsp: use emgd 1.14 for i386 template d8b00e7 yocto-bsp: update standard branch mapping 4eb5ac8 yocto-bsp: add 3.4/remove 3.0 kernel from templates 738f77b yocto-bsp: generate default properties even if json specified e352d26 yocto-bsp: use emgd 1.10 for i386 template b8e6eb6 yocto-bsp: add i586 option for i386 10ffef3 yocto-bsp: add some standard policy 995a5ac yocto-bsp: remove 'branch' statements in .scc if reusing branch e26589e yocto-bsp: use rstrip() for assignment lines f32909a yocto-bsp: use standard branch mapping in bsp templates 859e0e7 yocto-bsp: add standard branch mapping 179109a yocto-bsp: use branches_base 7be2683 yocto-bsp: allow branch display filtering 0f34dd6 yocto-bsp: update default branch names d35a34b yocto-bsp: strip '/base' from kernel branches in templates 3405a8b terminal.py: use unique ids for screen sessions 2ec6777 bitbake.conf: add variables to exclude from hash. af7cd07 kernel-yocto: don't require meta branch for custom repos 01ce721 kernel-yocto: set master branch to a defined SRCREV 9a1705ef kernel.bbclass: fix INC directory for SLANG a807818 grub-efi: fix Nothing PROVIDES 'grub-efi-x86_64-native' 1736b1d kmod-native_git.bb: fix builds for hosts with older libc 4d8ea02 base-passwd: upgrade to 3.5.26 5183f31 gdk-pixbuf: call gtk-update-icon-cache with -t in postinstall script f699370 wget: upgrade to 1.14 6848280 npth: upgrade to 0.91 d04f754 kconfig-frontends: upgrade to 3.5 c33cfc6 dhcp : upgrade to 4.2.4-P1 a08e385 subversion: update to 1.7.6 c966945 runqemu: Move the KVM check after the MACHINE/KERNEL Checks c13ee35 build-appliance-image: Update SRCREV for beta build ef81059 task-core-lsb: Don't pull in eglibc-pic via RDEPENDS 6117379 libcap: fetch from Debian 86a6410 build-appliance-image: Add vmx* files and build zip file d13d50a build-appliance-image: Update SRCREV to Denzil 1.2.1 d36ecc3 iputils: chmod in pkg_postinst are redundant d28245d mc: upgrade to 4.8.4 dfc493e dbus-glib: upgrade to 0.100 2f958cb libnfsidmap: upgrade to 0.25 397650e foomatic-filters: upgrade to 4.0.17 ae751ab telepathy-idle: upgrade to 0.1.12 b9cf3bd telepathy-glib: update to 0.19.6 3ea34e0 distutils/steuptools: Fix files layout and unbreak builds fc2cfbf mutter: Explictly disable libcanberra 16a7a61 gcc-4.7: Add fix for libtool rpath problems deee2b2 libtool: update rpath normalization to use builtin 8592e82 ld: -rpath must search under sysroot fed844e xev: Add missing dependencies on libxrandr and xproto 054d95e poky.conf: restore Ubuntu 12.04 LTS to tested distro list 4f84363 external-python-tarball: Blacklist recipe if ipk is not in the PACKAGE_CLASSES list 8a2664b libiconv: skip recipe if using eglibc 3fe5d09 busybox: Update to upstream 1.20.2 59f3fb9 cups: disable pdftops 48634df task-base: pull in the bluez asound module when appropriate d48585c busybox: Upgrade to upstream 1.20.2 8e335f1 grub-efi-native: Update to version 2.00 1192ace grub: Update to upstream stable 2.00 eab2efc scripts/combo-layer: specify branch when getting current revision 528d5e1 grub-1.99: Add flex-native to DEPENDS 142a8d1 eglibc-2.15: Delete 93d71aa linux-yocto: Remove parens from COMPATIBLE_MACHINE regexp fcdf262 runqemu: Honor KERNEL and ROOTFS settings from environment 3b05a9b mesa: clean up PACKAGECONFIG 1e59ae0 bitbake: ast: Store anonymous python function contents in the datstore ce68232 bitbake: ast: Extract text variable in PythonMethodNode 9e8ba30 bitbake: ast: Rename PythonMethodNode define variable to modulename c8cce4e bitbake: methodpool: Clean up the parsed module list handling to be slightly less insane 43cbd5a bitbake: methodpool: Remove unused check_insert_method function ae71aa0 bitbake: cooker: Add explict handling of BBHandledException for parsing failures 4f3d486 bitbake: cooker: Ensure parsing failures stop the build 999ee04 bitbake: utils.py: Once we've printed errors messages, suppress the backtrace 64c0028 bitbake: utils.py: Try harder to extract good traceback information by querying the datastore fddc169 bitbake: cooker: fix traceback when using -b with skipped recipe 8d33395 gmp-4.2.1: Set CC_FOR_BUILD to ensure the host system compiler is used, not the target one 19ff55a routerstationpro: move board off 3.0 and onto the 3.4 kernel 25e926e libtool: normalize link paths before considering for RPATH c7cfe77 distutils.bblass: change order of args to install step d15f126 README: Clarify where to send patches a0a3a44 conf/bitbake.conf: allow cache reuse between bitbake, bitbake-layers and hob 84d8ef4 gcc: bump PR 21773a9 bitbake: event/ast: Use better_exec instead of simple_exec 1a7069e bitbake: ui: Improve error message if bitbake cannot import python curses module 1426e14 bitbake: bitbake-layers: use parsable title for show-appends 5d09fb0 bitbake: bitbake-layers: avoid full parse for show-layers subcommand a46fac7 bitbake: bitbake/cooker: minor refactor of parseConfiguration() 980d658 bitbake: data_smart: skip all interal (underscored) flags in getVarFlags 49bc007 bitbake: data-smart: rename the 'content' internal variable to '_content' 164083d bitbake: Hob wizard-like reorganization 2a6818e bitbake: bitbake: hob: create console log directory before writing bf64b6e classes/package: document do_packages_split arguments 603f6c6 atom-pc: Drop glibc --with-tls option, its now the only option for glibc fe9a576 gcc-cross-intermediate, gcc-crosssdk-intermediate: Remove ad5fe46 gcc-crosssdk-initial_4.7.bb: Add --with-native-system-header-dir to EXTRA_OECONF 99e9379 uclibc: Use gcc-cross-initial as staging compiler 9a33e7b uclibc.inc,uclibc-config.inc: Untabify python snippets 48df3fe eglibc: Fix eglibc-initial and let eglibc depend on it b0faebd gcc-cross: Make gcc-cross-initial as the only intermediate gcc stage 91746ba eglibc-2.16: Update to top of 2.16 branch 709aac9 eglibc-2.16: Remove build dependency on libgcc_s and libgcc_eh 3435ce1 coreutils: fix to build with acl support 46b3ab1 package_rpm.bbclass: fix and enhance the incremental rpm generation 40d3579 insane.bbclass: Fix RPATH warning in the face of funny path strings ec102f5 formfactor: Clean up errors on machines without framebuffers 4861995 meta/classes: Various python whitespace fixes 7c40daa qemu: Fix broken accidental path move 6163148 sstate-cache-management.sh: update for the SSTATE_MIRRORS ba8ba42 classes/sanity: remove texi2html from required host utilities 2b6268b kernel.bbclass: Preserve generated headers only if they exist 07cc3dd scripts/runqueue-internal: Drop enable-gl option 2c43608 qemu-git: Drop GL passthrough support 0b0db81 qemu-0.15: Drop GL passthrough support 91ece5d libpam: Fix missing DESTDIR for a mkdir causing build failures d7a6aaf randrproto: upgrade to 1.4.0 e2a9a88 avahi: fix packaging of avahi-autoipd c49ecc9 libxrandr: upgrade to 1.4.0 973512c libpam: Update recipes from 1.1.5 -> 1.1.6 dbda8b5 unifdef-native: Correct LICENSE d48235e core: Prefer mesa-dri as virtual/libopengles1/2 provider 2ea1268 linux-yocto/meta-yocto/3.4: BSP, uprobes, config and cleanups 2145f5b linux-yocto/3.0: update meta SRCREV b96c388 linux-yocto-tiny: set default branch 926092b pseudo: Fix pseudo-native rebuild when triggered by dep change 641f582 runqemu: work with yocto-bsp created kernel filenames d2737eb cross-localedef-native_2.16.bb: fix for CentOS 5.X 9e36b4f connman: upgrade to 1.4 488970d gst-fluendo-mpegdemux: upgrade to 0.10.71 9027ab0 gst-fluendo-mp3: upgrade to 0.10.19 570edd2 perf_3.4.bb: update to build against older kernels 05b343e mesa: enable EGL, with DRM and X11 platforms 7477153 mesa: respect x11 DISTRO_FEATURE 25db6dd mesa-demos: fix GLES2 build 3ea5c74 core: Prefer mesa-dri as virtual/libopengles1/2 provider aef0371 mesa: enable GLES v1 and v2 eb768ce mesa: Add a mesa-dri-glsl-native_git recipe c800fd8 ncurses: fix file names for update -alternatives 7209f75 kern-tools: fixes (branching,buildall) + cleanups (checkpoint,cleaner) a9f1184 linux-yocto: explicitly export KMETA to scripts d78662e linux-yocto/3.4: remove explicit KBRANCH designations 7a79f74 linux-yocto: make KBRANCH the exception and not the rule 9ede55a linux-yocto/3.4: BSP, uprobes, config and cleanups 101bdc6 linux-yocto: bump version to 3.4.7 0a0ffcf kernel.bbclass: Preserve generated headers 771f894 base.bbclass: fix PACKAGECONFIG handling code 61ed74a utility-tasks: Set T to alternate location during do_clean 96ece9a bitbake: build.py: Correct package to recipe in TaskBase events to use consistent terminology a86bd42 bitbake: fetch2/git: Work around git confusion between foo.git and foo repositories c7cadd1 libsamplerate: depends on libsdnfile 9235fc5 subversion: Inherit gettext as msgfmt is needed at compile time be14147 busybox: Package hwclock.sh initscript separately 8fd4f55 task-core-boot: Add busybox-hwclock if MACHINE_FEATURES contains rtc 0c095f2 bitbake.conf: Add rtc to MACHINE_FEATURES_BACKFILL c5dd7cf bitbake.conf: Add MACHINE_FEATURES_BACKFILL and append to MACHINE_FEATURES 0f1bbaf bitbake.conf: Use the new form of features_backfill function 6bfb0c2 utils.py: Modify and rename distro_features_backfill python function d5fc43a pulseaudio: upgrade to 2.1 969953e iptables: upgrade to 1.4.15 802849d iproute2: upgrade to 3.5.0 52ea1f8 ofono: upgrade to 1.10 9964ea3 dbus: upgrade to 1.6.4 21dcd88 rootfs_deb: move the lock from WORKDIR to DEPLOY_DIR_DEB 0348e2c apt-native 0.7.14: remove an extra line from apt.conf 54b4c50 openssh: openssh's init fails to restart if sshd is not running 79512d5 pciutils: upgrade to 3.1.10 1356f8f Add MPL version 2.0 license in common-licenses dir as well as adding a non-SPDX license name in license.bbclass fb187e7 subversion: two small fixes 4c70d7e libatomics-ops: update to the latest version 7.2 f31c96e prelink: Update to latest upstream prelink 3a51c0c distutils.bbclass: fix libdir for 64-bit python modules built with distutils 5bffd94 runqemu: support booting ramfs-based images a102793 libowl-av: patches merged upstream, bump srcrev 75bb902 owl-video: patches pushed upstream, so bump srcrev 38adf05 clutter: DOLT isn't used anymore 0baa071 wpa-supplicant: fix paths in dbus/systemd *.service files 258277a glproto: upgrade to 1.4.16 d4d1de7 dri2proto: upgrade to 2.8 0c23d2a pixman: upgrade to 0.27.2 bfa522b package_rpm.bbclass: Fix attemptonly install failures 650227e chrpath.bbclass: Account for case when ORIGIN is in RPATH b0b92d7 chrpath.bbclass: Ensure we only process tmpdir in paths which actually contain that path e31d484 poky.conf: update distro ID string for Ubuntu 12.04.1 LTS 3c0451e bitbake: really remove knotty2 62f1ccb classes/chrpath: improve chrpath failure handling bddd830 apr-util: fix the rules.mk with path to sysroot instead of the workdir of apr 9b6a3ff python: Add Upstream-Status entries for bsddb patches, no code changes 883d199 webkit-gtk: update to 1.8.2 3ba29d4 adt-installer: add support for relocatable SDK 21049ec package.bbclass: change RPATHs for cross-canadian binaries 1b60190 populate_sdk_base.bbclass: fix SDK relocation issues 35d9684 gtk+ remove 2.16.6 6e4bd68 gtk+: remove 2.12.7 e781fb6 bitbake: bin/bitbake: Remove knotty2 from the list of valid interfaces e2f7351 base.bbclass: Work even when there's no PNBLACKLIST entries af847d3 bitbake: bitbake: build.py: Add stampdir argument to cached_mtime_noerror 1fa112b bitbake: knotty: Fold knotty2 into knotty and make it the default c49a252 bitbake: knotty2: Handle long lines of text and terminal window size changes 2718537 bitbake: build.py: Only execute mkdirhier if stampdir doesn't exist e2d023f bitbake: bb/ui/uihelper.py: Ensure task current and total numbers are updated for setscene events too 4c4f714 bitbake: knotty: Chain the WINCH signal handler in progressbar so any other handler is preserved and called b95356c distro: Remove Pimlico from distro-tracking 70b8740 classes/chrpath: trigger an error if chrpath fails 0c6ac62 documentation: remove references to Pimlico 5e775b5 pimlico: Remove af8e6b6 gst-plugins-base: remove avahi from DEPENDS f8d5e2b sstate-cache-management.sh: update it for the new layout 0e6e974 classes: add gsettings.bbclass 1ce0f3f rpmresolve: improve debug output 5c23b3c libdrm: package update 2.4.35 -> 2.4.37 0547b66 man: make man actually work by installing custom man.config b6bbf40 kernel.bbclass: remove default module_autoload and module_conf values 2d1f0ca man: fix RDEPENDS and reformat recipe 311ba92 pigz: Update to upstream version 2.2.5 39e7812 sysklogd: removed tabs from syslog.conf a47864d gettext-0.18: explicitly disable acl. a8d2482 dbus: Fix pid file in dbus init script 13e2eff base.bbclass: Expand PNBLACKLIST across multilibs too 533b8b9 sysfsutils: install libs to base_libdir 69e8366 at 3.1.13: get 'at' depends on 'flex-native' explicitly 883c1e9 gdk-pixbuf: fix the postinstall script failure when no icon is installed 07faf20 gstreamer: gst-ffmpeg: fix build issues for libav 1834db1 pango: upgrade to upstream stable 1.30.0 5c96735 qemu: backport patch to fix pl031 RTC 0452d8b tcl: uncomment a line that causing TCL_SRC_DIR point to the workdir. 8472a79 layer.conf: add udev-extraconf to SIGGEN_EXCLUDERECIPES_ABISAFE 096306e base.bbclass: allow specifying an lsb distro hook via the metadata 5ec61a7 bitbake.conf: store cooker logs in subdirectory of LOG_DIR dd28dee run-postinsts: Does not run any scripts on debian rootfs 264a6e4 net-tools: cleanup update-alternatives deprecated code 22f1c95 gawk: cleanup update-alternatives deprecated code 7d9c0be sed: cleanup update-alternatives deprecated code 5230b71 wget: cleanup update-alternatives deprecated code 81a9c13 time: cleanup update-alternatives deprecated code 03c4940 procps: cleanup update-alternatives deprecated code 38cab7c gzip: cleanup update-alternatives deprecated code 335fd22 hdparm: cleanup update-alternatives deprecated code a26ab59 mingetty: cleanup update-alternatives deprecated code 9ed6b34 shadow: cleanup update-alternatives deprecated code a260a6e less: cleanup update-alternatives deprecated code 1d12056 which: cleanup update-alternatives deprecated code 484e861 mktemp: cleanup update-alternatives deprecated code f70db67 msmtp: cleanup update-alternatives deprecated code 9f64e13 pigz: cleanup update-alternatives deprecated code cb4c91b metacity: cleanup update-alternatives deprecated code 69e1609 matchbox-session: cleanup update-alternatives deprecated code 0409ee3 matchbox-wm-2: cleanup update-alternatives deprecated code 1025e4a mutter: cleanup update-alternatives deprecated code 90bb29c powertop: cleanup update-alternatives deprecated code 41ab6b5 findutils: cleanup update-alternatives deprecated code 825929c findutils: refactor common code to findutils.inc a4e13ed diffutils: cleanup update-alternatives deprecated code ff5c7e2 diffutils: refactor to add a common diffutils.inc 6bb519b bc: cleanup update-alternatives deprecated code 53a6bc5 ubootchart: cleanup update-alternatives deprecated code 197c77b patch: cleanup update-alternatives deprecated code cc0c08f tinylogin: cleanup update-alternatives deprecated code 80e764e kbd: cleanup update-alternatives deprecated code d089963 console-tools: cleanup update-alternatives deprecated code c21ce7b mini-x-session: cleanup update-alternatives deprecated code 1e3bbf7 openssh: cleanup update-alternatives deprecated code 7f515e9 rxvt-unicode: cleanup update-alternatives deprecated code 5b8a9e3 rxvt-unicode: remove setting of LD_LIBRARY_PATH efcb0a8 documentation/poky-ref-manual/ref-structure.xml: deleting images 49e8c5a documentation/dev-manual/dev-manual-common-tasks.xml: Packages dir removed eea510c documentation/dev-manual: modified SSH server discussion for QEMU Images 8b8748c rpmresolve: Ensure we call the rpm relocation code at init d45bbc5 createrepo: add wrapper script to fix paths 61addcc rpmresolve: add wrapper script to fix paths 8daf311 watchdog: fix SRC_URI _ -> - 047db04 qemu.inc: disable curl for qemu-nativesdk 2dec760 foomatic: fix perl path for target 87ffccb automake: Fix version reference in path substitutions 61a43e5 linux-yocto-3.2: Apply slang workaround fixing perf builds to 3.2 kernels too bf96b5c linux-yocto-3.0: Apply slang workaround fixing perf builds to 3.0 kernels too d32e948 binutils: Enable threaded linking with gold 7e8b65b package-index: Remove the python hack, its not needed after the pythonnative changes 0162472 gcc: Disable use of sdt.h header 99e6ed0 iputils: Break libsysfs dependency 89886d9 linux-yocto-custom: Clarify usage and clear COMPATIBLE_MACHINE d6ef548 image-mklibs: pass correct libdir to mklibs f6763e9 python: Fix RPATH QA issue on non-gplv3 builds 41fc0ae linux-yocto-3.4: Disable extra slang header search path ff6de61 linux-firmware: Ensure PR goes forward, not backwards after the revert 8c8312c Revert "linux-firware: use ${base_libdir} instead of /lib for packaging" ef98412 kernel.bbclass: Revert ${base_libdir} change e72a154 kernelshark: Inherit pythonnative 37da138 gdb-cross: Explicitly disable python c86d26c subversion: Add missing build dependency on sqlite3 4590c0b findutils-4.4.2: add bison-native to DEPENDS 8030c3f bison: updated to 2.5.1 a71dfcc buildhistory: reduce the numeric delta to 10% 36c7c64 buildhistory: correctly handle reductions of numeric fields bff36f1 libpam: disable NIS to not link with libtirpc when it is available 1b34870 gthumb: fix parallel build problems 3f8e65f babeltrace: Update to upstream stable versrion 0.12 e1868a1 atk: package update 2.2 -> 2.4 06ad59c classes/package: don't make locale pkgs depend on PN pkg if not in PACKAGES b9fa9d7 classes/buildhistory: save metadata revisions 4bf1c0a buildhistory_analysis: ignore removal of self-dependencies 507dba6 buildhistory_analysis: tidy up duplicate split_version function 81485a4 classes/buildhistory: record PKG/PKGE/PKGV/PKGR c0149ac classes/buildhistory: save preinst/postinst/prerm/postrm 78d8faf classes/buildhistory: remove unused functions d0b07eb classes/buildhistory: ensure old package info is removed 2f6ceff classes/buildhistory: remove obsolete flat package history feature 227dafd mesa: 7.11 -> 8.0.4 e78843e curl: disable ldap/ldaps explicitly 2a88d4d mesa: Use 'require' instead of 'include' c508448 mesa: Update to 8.0.4 (latest stable version) abfa907 mesa: enable the Graphic Buffer Manager library 8b4015a mesa: add --enable-shared-glapi, and package it in libglapi cf247a4 mesa: move glu.pc to libglu-dev e35d9ff mesa: format the packages list nicely efbf461 mesa: no need to depend on python-native, the class does that db50930 linux-firware: use ${base_libdir} instead of /lib for packaging 5b8a479 kernel.bbclass: use ${base_libdir} and ${sysconfdir} instead of /lib and /etc 226ec65 lsb: use ${base_bindir} and ${sysconfdir} instead of /bin and /etc 7ada514 usbinit: use ${sysconfdir} instead of /etc for packaging 250dd22 lsbinitscripts: use ${sysconfdir} instead of /etc for packaging cb8f382 rsync: use ${sysconfdir} instead of /etc for packaging ed9fc6f man: use ${sysconfdir} instead of /etc for packaging 05e00a9 chkconfig: use ${sysconfdir} instead of /etc for packaging b167ee0 qemu-config: use ${sysconfdir} instead of /etc for packaging 8353aa1 xserver-nodm-init: use ${sysconfdir} instead of /etc for packaging 8972009 builder: use ${sysconfdir} instead of /etc for packaging 7d17a8e x11-common: use ${sysconfdir} instead of /etc for packaging 4efdf2c libpam: use ${localstatedir} and ${sysconfdir} instead of /var and /etc 6c9d66b openssh: use ${localstatedir} instead of /var for packaging 23732f2 at: Use variables from the environment to override the makefile defaults 940fc19 mingetty: use ${base_sbindir} instead of /sbin for packaging 72d697e systemtap: use ${datadir} instead of /usr/share for packaging 781fe78 xkeyboard-config: use ${datadir} instead of /usr/share for packaging 0334d47 ubootchart: use variables instead of hardcoded paths 84728a1 useradd-example: use ${datadir} instead of /usr/share for packaging 344c40b cronie: use variables instead of hardcoded paths dbabc44 lsbtest: use ${bindir} instead of /usr/bin for packaging 7191f4b sudo: use ${bindir} and ${sysconfdir} instead of /usr/bin and /etc 2bb6742 lsbsetup: use ${bindir} instead of /usr/bin for packaging 9d27075 alsa-state: use ${sbindir} instead of /usr/sbin for packaging bfa808e xinetd: use ${sbindir} and ${sysconfdir} instead of /usr/sbin and /etc 77625e7 python: Fix to support the python module _bsddb built with db 5.3 941d107 psplash: Update to latest psplash version 29503fa glib-2.0-nativesdk: Add dependency on glib-2.0-native bce9306 populate_sdk_rpm.bbclass: Depend do_populate_sdk task on createrepo-native 497d871 eglibc-locale: bump PR after fc4b138948656d482603b80f8c8e86fdbb185df4 98e2ebe bitbake.conf: exclude whole MACHINEOVERRIDES from OVERRIDES vardeps 8a4220a qt4-native: fix creating /include directory in build host root 3d07ef1 tcl: Add ${bindir_crossscripts}/tclConfig.sh to sysroot stage e51d01a gdk-pixbuf: fix parallel install issue ba218e7 busybox: fix du-k-works test case c8815d2 gcc-cross-initial: Ensure it uses an isolated sysroot ed6beed gcc: Bump PR since there have been several gcc changes and various problems reported and this should flush anything stale out 9df0a20 bitbake: data_smart: Fix unanchored regexp causing strange parsing issue 71cc9de bitbake: Fix script location after mishandled merge 2b720d6 gcc-cross-initial: Fix typo causing limits.h not to be present 85c005d tzdata: Upgrade tzdata to upstream 2012d cecf2b4 bitbake: cooker: fix OVERRIDES in BB_SIGNATURE_HANDLER (to override value from DISTRO.conf from local.conf) 6ffb679 bitbake: fetch2/local: Add search paths to the debug log to improve log usefullness 43a25ff bitbake: fetch2/local.py: Provide better debug output when fetch of a local file fails 67bfb37 bitbake: runqueue.py: Clean up runqueue exception catching in the normal task failure case 5442b9a texi2html: Fix perl location on recent distros d6f2cd7 gnome-desktop: Fix python location on recent distros dee0730 runqemu-gen-tapdevs: add UID to CL options c4a7517 Complete recipe enablement 9461854 bitbake: contrib/dump_cache.py: dump recipe -> packages mapping from bb_cache.dat 94f57a1 bitbake: bitbake-layers: fix help for show-overlayed to match behaviour 8a3ae43 bitbake: Hob: change the Build failure scenario as ui design 94e2a10 bitbake: Hob: log for Hob and allow users to show logs after successful build 5d952ba bitbake: fetch2: print checksums when they are different then expected 4208917 bitbake: fetch2: handle broken symlinks in local mirror handling f1417a1 bitbake: knotty: ensure that directory for BB_CONSOLELOG exists before using it 9fb5c34 bitbake: fetch2/__init__.py: Add NoChecksumError exception 2db74c6 guile: updated to 2.0.6 a4b1e34 busybox: udhcpc shouldn't be a service 6a29398 bitbake: hob: deal event DiskFull b2a959a bitbake: monitordisk: fire event DISKFULL when terminate build 0125438 dbus: Ensure dbus-nativesdk doesn't RPROVIDE dbus-x11 01524b4 python-setuptools: Fix setuptools install libdir != /usr/lib e3a13b8 package.bbclass: change RPATHs for nativesdk packages 476ced1 relocatable.bbclass: split it up, to reuse code 44df019 populate_sdk_base.bbclass: create self-extracting archive 749b8a5 scripts: add script for relocating the SDK 77973e3 binutils: relocatable SDK: change PT_INTERP section size e81441a eglibc: relocatable SDK changes e172be5 kmod: Upgrade to upstream version 9.0 0db5532 send-pull-request: Make -a really imply -c 1b138d1 qt4: fix qt4-native build failure on SLED-11 438df0f sip.bbclass: fix sip-native dependency 516ce2f python-dbus: updated to 1.1.1 fe800ca watchdog: Upgrade to upstream v5.12 08d1621 usbutils: Upgrade usbutils to upstream v006 c1fb312 u-boot.inc: fix regexp used when ld-is-gold 62d42fe tiny-init: Setup /dev/ptmx in init acde166 gcc-configure-target: Set native-system-header-dir for target gcc 5dc490c core-image.bbclass: Fix typo in comment, "IMAGE_FEAETURES" dfd86b6 createrepo 0.4.11: create wrapper for python script 148e19e createrepo 0.4.11: add rpm-createsolvedb.py fd6251e imagetest-qemu.bbclass: Fix whitespace issues 3309cf4 package_rpm.bbclass: Accomodate dash when using arrays ad63b9b scripts/oe-pkgdata-util: exclude unpackaged in glob output 74aac73 combo-layer: ensure init works with split local config f8d40ab dbus: include dbus-launch in the main dbus package c5d8b0b glib-2.0-nativesdk: Fix build on ubuntu 11.10 5ab3a11 package.bbclass: fix TypeError in runstrip 8c7480e slang: change char type to signed char in macros 780ba46 scripts/bitbake: unbreak the git version comparison 5fe7d04 trace-cmd: Update for python-native changes 4f31d21 lib/oe/lsb.py: Map unknown distributions to 'Unknown' de3abcf combo-layer: allow splitting out local config 6bea863 combo-layer: check that last_revision is valid 8140c5b combo-layer: improve patch list handling and output 2dc0b33 combo-layer: drop to a shell when apply fails during update f558ecf combo-layer: ignore patch-* temp directories in dirty check 2ed3f63 combo-layer: allow component pull to be done separately dad01a0 combo-layer: remove &> bashism 07c93ba qt4: make font packaging specific to embedded version 7273032 qt4: allow recipes building commercial edition 581af95 classes/populate_sdk_rpm: add depends on rpmresolve-native 9c96d34 classes/populate_sdk_base: don't break existing do_populate_sdk depends b915fa4 kernel.bbclass: Copy bounds.h only if it exists, needed for 2.6.x. bd72666 libxcb: Update for python-native changes 7411158 xcb-proto: Update for python-native changes 695ab4f libdrm: add DEFAULT_PREFERENCE = -1 to git recipe edc2559 socat 1.7.2: add readline dependency 33157b1 guile:meta/Makefile change install-data-hook to install-exec-hook d67c64e qt-mobility, xserver-xorg, ofono, bluez4, gst-plugins-good: bump PR to rebuild after libudev0 soname change to libudev1 3372d96 bison: move remove-gets.patch to BASE_SRC_URI, it's needed for bison-native too if host has (e)glibc-2.16 22965c4 classes/package: ensure pkgdata is cleaned out first 3d164f7 pseudo.inc/pseudo_1.4.bb: update pseudo to 1.4 a18b397 usbutils 0.91: Fix NULL pointer crash. 2b40ca1 libpciaccess: lpci access does not depend on X 495350c libdrm: Bump libdrm_git to 2.4.37 f8b2e3f libdrm: Put the license md5sum in the common include 9e1c7a8 libdrm: libdrm does not depend on xcb any more b954613 drm: move to PR/INC_PR, starting at r1 as libdrm_git was at r1 f7750b2 ppp: bump PR to rebuild against libpcap1 instead libpcap 20ad566 buildhistory: improve performance of image info collection 98b0f95 classes/image: add staticdev-pkgs IMAGE_FEATURES feature fa5640d Rework installation of dev, dbg, doc, and locale packages a73c25d classes/rootfs_rpm: improve speed of RPM rootfs construction 656726a gconf: Clean up introspection disabling by using gobject-introspection-stub b7a528b polkit/vte/gupnp/gssdp: Replace introspection hacks with gobject-introspection-stub 8809949 gtk-doc-stub: Add PROVIDES for gobject-introspection-stub and fix unpackaged files 17a07be gobject-introspection: Drop the recipe, it has never worked and if it does cross compile, we can add it back e496e3d eds-tools: Drop this recipe, its inapproriate in OE-Core 366c7ee world-broken.inc: Remove clutter-box2d from the exclude list, it works 754d240 package.bbclass/eglibc-locale: Ensure the correct PN is used for locale packages 72ab286 sstate.bbclass: Add a string representing the lsb release to native/cross sstate 2045338 sstate: Add a two character subdirectory to the sstate directory layout 10b5ea7 base.bbclass: Set the NATIVELSBSTRING variable to represent the distro we're running on f295e29 lib/oe/lsb: Add basic LSB functions 3f05622 bzip2-native: handling native path issue 6c93f70 image.bbclass: Fix a couple innocuous typoes, should cause no functional change a5227e2 classes/package: reduce dbg package dependencies 58a7be4 gtk-doc.bbclass: unbreak dependency-chain for native recipes a35f60a u-boot.inc: update linker arguments to pass --sysroot arg 76df449 insserv: define do_install_virtclass-native() 520c5d9 Update intltool to version 0.50.0 c3bb97b bluez4: use PACKAGECONFIG to control 'pie' e95eff1 bitbake.conf: override -cpu for qemu on ppc with SPE ce6d066 cmake: Upgrade recipes to 2.8.8 82aabbd qemu: Fix illegal instruction errors on e500 emulation 6475aae pkgconfig: Fix packaging issue 456b859 eglibc: Add patch to add sys/resource.h to wait.h dc62568 tcmode-default: Bump EGLIBC Version to 2.16 fb53d69 documentation/dev-manual/dev-manual-intro.xml: typo fixed. 0565ae4 usbutils: avoid dependency on bash e957380 classes/package: do not add self-dependencies to dev/dbg packages 3a4bb81 guile: Add continuation marker to create_wrapper 5157c85 base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues f3d5e08 staging.bbclass: Add support for invalidtasks parameter (see bitbake change) 8067a78 Connectivity and multimedia manual packages e62cc51 upstream_tracking.inc: update some packages dc4e933 maintainers.inc: update some packages' maintainer info 8febf64 bitbake: fetch/local: Allow preservation of path components in relative file:// urls c74f3d4 bitbake: runqueue.py: Wipe out the stamp cache between setscene and main task execution 0984853 bitbake: runqueue.py: Allow the setsceneverify function to have a list of tasks that are invalid and need to run b22592a bitbake: runqueue.py: Ensure one setscene function doesn't mask out another which needs to run 58f0d04 bitbake: runqueue.py: Optimise the hashvalidate call to only process tasks we may actually want dfdb2eb bitbake: runqueue.py: Gracefully exit if an exception occurs in the runqueue execution code 46d8d04 bitbake: runqueue.py: Fix a stamp comparision bug 2b6114d linux-yocto/rt: update BSP preempt-rt.scc files to enable live boot 268ea55 mtools: add glibc-gconv-* to RDEPENDS/RRECOMMENDS 66009e2 meta/lib: remove test.py 04ba76b telepathy-glib: fix a build race 11c1f94 readline: add missing macros in acinclude.m4 3708813 byacc: upgrade to ver. 20120526 3ca4f17 libpcap: upgrade to ver. 1.3 8462bcc iptables: upgrade to ver. 1.4.14 fd1a306 findutils: fix sort dir on updatedb 219583d slang 2.2.4: fix the pcre existence checking 4078b7a libpcre: upgrade to ver. 8.31 bd13f7a telepathy-mission-control: upgrade to ver. 5.13 eefbd2e liburi-perl: update to 1.60 5af0be9 ltp: update to version 20120614 c0c2a3e qmmp: update 0.6.1 b2ec781 documentation/poky-ref-manual: Removed included BSP Guide a496b3a documentation/bsp-guide/bsp.xml: Fixed error in sample layer.conf file. 18de233 Add missing Upstream-Status to various patches. 2ccbf35 busybox:udhcpc: fix the root_is_nfs() function 1a4a077 xinit_1.3.2: Remove broken, superfluous 'FILES_${PN} += "${libdir}X11/xinit"' 30c618a busybox: fix the problem that mkfs.minix.tests fails on big endian platform 39c9b20 core-image: remove x11-netbook package group, it's unused accbf87 eglibc: Fix build when OPTION_POSIX_WIDE_CHAR_DEVICE_IO is not set aab76b3 gcc-cross-initial: Stage self sufficient fixed limits.h fecb956 eglibc-initial: Fix build failure due to missing limits.h d9a0e08 classes/package_deb: add PackageArch field 5334a93 package.bbclass: Create symlinks for packages with different packaged name dcadeda kernel bbclass: Recreate uImage only when KEEPUIMAGE != "yes" 51bc0e4 libcgroup_0.37.1.bb: Add recipe 32ed8db remake: Add remake-native and remake 171cb46 cups_1.4.6.bb: Fix build on ppc64 bedae28 qemu.bbclass: Map the qemu binary name for powerpc64 b882a12 webkit-gtk: Replace superfluous "+=" with "=", and add leading space 70bc9cf libxp: Change superfluous "+=" to simple "=" when using _append 349c6e7 dhcp: remove dependency of dev/staticdev packages on main package e7dd47d linux-yocto/3.4: 3.4.6 and 3.4.x-rt14 93060b6 shadow: use 'users' group by default 92cfb88 shadow-native: use 'users' group by default 9247550 kernel.bbclass: fix external module building 4113211 bash: fix warning about bashbug reference /usr/bin when installed in /bin d9ad9bc libpcap: fix pcap-config to not return -Wl,-rpath 142ac1a initscripts: don't bg mk_dirs in populate-volatile 0ffb02e documentation: Updated the h6 style to use a larger font 41c7020 documentation: Moved the Eclipse chapter to the YP Dev Manual. fad4b8f documentation: Changes to ADT Manual title b742716 documentation/dev-manual/dev-manual-model.xml: Edits for Eclipse insertion 3853dc7 documentation/kernel-manual/kernel-doc-intro.xml: Fixed typo 444ad51 bitbake: bitbake wget fetcher: add parameter: downloadfilename 8a978ee bitbake: Change bzr fetcher to use branch instead of co. Fixes: bzr: ERROR: No pull location known or specified. 897d7d1 bitbake: cooker.py: Ensure we track parser errors and only show bbappend issues on complete parse 3049f6b libgcc: Add missing dependency on libc:do_package 7642d98 grub: Use COMPATIBLE_HOST variable instead of anonymous python f4511f3 grub: Allow reautoconf with the correct parameters 315d529 Pyphon-native: Fix typo 5d9b2de python-native: Use append instead of += so the lsb override for EXTRA_OECONF works as expected 768cd7f gnome-doc-utils: Update to use python-native 655654d gtk-doc: Ensure we run gtkdocize else we could see build failures (e.g. evolution-data-server) a92bce8 libgnome-keyring: Add missing DEPENDS on glib-2.0 3080243 kmod: Add missing DEPENDS on pkgconfig-native e18ae61 sstate: Set SSTAGE_PKGARCH for allarch packages to allow reuse 7fb076a allarch: No need to make packaging machine specific 89b1dcb linux-yocto/3.4: emgd, mtd nand and kmemcheck fixes beef126 kernel-yocto.bbclass: Delete superfluous creation of ${S}/.git directory 7d93e98 kernel-yocto.bbclass: Fix some obvious typoes in comments. b2c094f openssl: upgrade to 1.0.0j 71105cc autoconf: updated to 2.69 28bc1f5 libxml2: Update for python-native changes e4de1de perf: Update for python-native changes f56064e gobject-introspection: Update for python-native changes 9e8129e mesa-common: Update for python-native changes cf45948 telepathy-python: Update for python-native changes e4551d1 mklibs-native: Update for python-native changes 8936145 python-pyrex-native: Update for python-native changes 62d2242 python-scons-native: Update for python-native changes 75b7c51 python: Update for python-native changes 093ed41 python-native: Put binaries in seperate directory 5bdd998 Remove gtk-doc 35b26fb vte: cleanup thanks to new gtk-doc.bbclass 6bc0b98 atk: cleanup thanks to new gtk-doc.bbclass 27b4cf2 webkit-gtk: cleanup thanks to new gtk-doc.bbclass a2afa69 evolution-data-server: cleanup thanks to new gtk-doc.bbclass 7f42473 kmod: inherit gtk-doc, gnome-doc-utils-native isn't the package you were looking for 4a5f8d8 pango: cleanup thanks to new gtk-doc.bbclass 9f77978 clutter: cleanup thanks to new gtk-doc.bbclass 8bd2eb6 librsvg: cleanup thanks to new gtk-doc.bbclass 959bbba libglade: cleanup thanks to new gtk-doc.bbclass 9036331 gtk+: cleanup thanks to new gtk-doc.bbclass 4b84a87 libgnome-keyring: cleanup thanks to new gtk-doc.bbclass 6121945 libart-lgpl: Does not require gtk-doc 8ad0799 libart_lgpl: cleanup thanks to new gtk-doc.bbclass cd93c56 gnome-keyring: cleanup thanks to new gtk-doc.bbclass 9cf7b01 gail: cleanup thanks to new gtk-doc.bbclass 9fef648 polkit-gnome: cleanup thanks to new gtk-doc.bbclass 4b7cab0 polkit: cleanup thanks to new gtk-doc.bbclass 85ee0a9 connman: cleanup thanks to new gtk-doc.bbclass 2e77788 gconf: cleanup thanks to new gtk-doc.bbclass ac5ff72 gypsy: inherit gtk-doc d0a8a0d cogl: cleanup thanks to new gtk-doc.bbclass a7d5d61 gobject-introspection: cleanup thanks to new gtk-doc.bbclass 39d33aa gconf: cleanup thanks to new gtk-doc.bbclass 1f9c133 glib-2.0: cleanup thanks to new gtk-doc.bbclass 8744139 change gtk-doc.bbclass to pull in depends and oeconf 3e66106 Add gtk-doc-stub 0405621 documentation: Created cross-references to new KMACHINE glossary item 3b4c933 documentation/poky-ref-manual/ref-variables.xml: New KMACHINE gloss entry 15b9676 mpc8315: build u-boot v2012.04 by default. 98a1fd1 documentation: Config fragment sections updated 24340ed grub-efi-native: remove help2man dependency d85216e sanity: display the parsed BBPATH when complaining about CWD elements 35a0c10 webkit-gtk: bump PR ceb0f25 puzzles, mkelfimage: Use svn protocol instead of http 589a7fe binutils: Add missing target package dependencies e62a5b0 createrepo 0.4.11: fix the RDEPENDS eb5522e package_rpm: DEPLOY_DIR_RPM must exist before make index a6898ff util-linux: register reset u-a to bindir like busybox does 64f7feb EFI: Make installer EFI aware d36fa9a grub: fix error stating the root device 8adc595 grub: fix grub-mkconfig_lib install dir 638cd1a Upadate upstream_tracking.inc 950ae12 documentation/poky.ent: updated YOCTO_DOCS_RELEASE variable to 1.3 23df8e0 busybox: busybox wget -P option ignored d1c9fab dbus-glib: add support for install regression tests df64377 dbus-glib: fix compile error when enable-tests 4f2da78 wpa-supplicant: upgrade to 1.0 90fbd7f libcanberra: upgrade to 0.29 e26bce1 pulseaudio: upgrade to 2.0 6ad86c1 connman: fix crashes on startup on PPC/MIPS 9d83871 connman: Add patches to fix connman on fs with no d_type support 8e0f502 connman.inc: Add missing dependencies needed by some tests 85fd613 connman: Update to version 1.3 093410f iproute2: upgrade to 3.4.0 807ff46 Add console kernel options 99ed56f Multilib build fixes 05e2aa5 eggdbus: remove, nothing uses it 6185b8a polkit: remove dbus-glib and eggdbus dependencies, polkit uses gio for DBus d7f1f1e libgnome-keyring: remove eggdbus dependency, it has an in-tree copy a9b51e7 staging.bbclass: Also don't bother staging locale files, its pointless ee2c57f avahi-ui: Remove the locale files and rely on the main avahi package for these b13c344 eglibc-package.inc: Remove duplicate locale install 1ed15fb staging.bbclass: Ensure the task starts from a clean directory 52d1f7b staging.bbclass: Don't stage doc/manpage/info files 7f28f75 opkg-utils: UPdate to version with python 2.6 fix 2665be9 buildhistory.bbclass: Fix python whitespace 09d11c2 package_ipk.bbclass: Fix python whitespace 73cf033 Remove a number of unneeded import os/bb calls 7b2c678 toolchain-scripts: Remove extra - from ar/nm command names 1063f45 Remove the - between ${TARGET_PREFIX} and ar/nm for the env script, as this will make autotools look for arm-none-linux-gnueabi--ar instead of arm-none-linux-gnueabi-ar. 26ace2c bitbake: Update version to 1.15.3 798415b bitbake: bitbake: Warn upon finding tab indentation in python functions 6ab6080 sanity.conf: Increase bitbake minimum version to 1.15.3 bfd279d Convert tab indentation in python functions into four-space 99203ed boot-directdisk: Fix kernel location after STAGING_KERNEL_DIR change 28d29b4 tcl: fix tcl INCLUDE_SPEC and LIB_SPEC 7b57354 nasm: nasm has a build dependency on groff-native 3e89b62 gcc: remove 904-flatten-switch-stmt-00.patch ac7a031 bitbake.conf: Define USRBINPATH globally instead of individually 63f545b qemu-nativesdk: fix the build failure that linux/kvm.h not found 8560197 sanity: display the parsed PATH when complaining about CWD elements 63acb55 binutils: package ld.gold symlink b68fb41 watchdog: fix ping mode failure 6178359 bitbake.conf: Add git-native to ASSUME_PROVIDED 4f20d6e eglibc: Fix build for e500 cores ecd5308 slang: add header to patch 55faaa0 fix my typos in patch headers 18d4ed7 puzzles, mkelfimage: Add protocol=http 12e68d4 webkit-gtk: remove spurious install_prepend hack e4c43e2 webkit-gtk: remove no-parallel bodge 707cd32 scripts/bitbake: Check the git-native version and build it if necessary 63bfda7 recipes: svn SRC_URI s/proto=/protocol=/g 76a16c0 terminal.py: Fix Xfce on ubuntu/debian; some cleanup 04c2ee4 meta-ide-support: Add native qemu support for meta-ide-support 9a52725 tune-ppc476.inc: Support ppc476 4343662 web-webkit: don't link using g++, it's not needed anymore 12f5b06 web-webkit: push make whitespace fix upstream e4ce4b4 web-webkit: remove unused dependencies (taken from the gecko-based recipe) f7d7ebc psplash: use default OE vga logo (from kernel bootlogo) 4bb133b task-core-tools-testapps.bb: kexec-tools does not work on e5500-64b parts e0e04c4 gcc-package-runtime.inc: Fix QA warning 14554f8 documentation/adt-manual/adt-package.xml: Edits to packaging chapter bd45627 documentation/adt-manual/adt-prepare.xml: Edits affecting rename and clarity bf1cc56 documentation/adt-manual/adt-intro.xml: Edits to introduction chapter e6d3b5c documentation/adt-manual/adt-manual.xml: Title change for link. 9e734b2 documentation/adt-manual/figures/adt-title.png: Changed ADT Manual title d5fb117 bitbake: fetch2/svn.py: Use protocol parameter to get the protocol 5ed19a4 toolchain-scripts: Sync the SDK/ADT values to the build system 0082a64 documentation/bsp-guide/bsp.xml: Updates to Kernel configuration section 4b95ba2 documentation: Changed link anchor for 'resourses' in QS c574627 connman: fix build with automake 1.12 9eea1eb udev: don't mount with -o sync 219a855 useradd.bbclass: Fix for multilib builds 36a31b0 documentation/dev-manual/dev-manual-common-tasks.xml: Fixed reference d7cf7ec documentation/poky-ref-manual: Converted resources appendix to chapter 1a39c85 documentation: Converted FAQ appendix to a chapter 0f4d220 documentation/poky-ref-manual: Converted ref-varlocality to chapter. cfc1d50 documentation: converted ref-variables-gloss to chapter. 2db4088 documentation: converted ref-images and ref-features to chapters 6954204 documentation/poky-ref-manual: Converted ref-classes to chapter 709bc59 documentation/poky-ref-manual/ref-structure.xml: wording change to chapter. 8f5af19 documentation/poky-ref-manual: Converted ref-bitbake to chapter 3eae2a0 documentation/poky-ref-manual: Re-cast structure appendix as chapter c20cdf6 documentation: Fixed the links to the BitBake Documentation page. 3a87636 documentation/poky.ent: Changed BITBAKE_DOCS_URL. d9dc29c documentation/poky-ref-manual: Removed artifacts for dev chapter e2935d3 documentation/poky-ref-manual/development.xml: Deleted development chapter 568b732 documentation/dev-manual/dev-manual-common-tasks.xml: Added external SCM 738d947 documentation/poky-ref-manual/development.xml: Removed devshell section c6c2eba documentation/dev-manual/dev-manual-model.xml: Added devshell section 4023836 documentation/poky-ref-manual: Fixed various references to YP 30f4916 documentation/poky-ref-manual/faq.xml: Updates to external toolchain 7f998da documentation/yocto-project-qs/yocto-project-qs.xml: install toolchain details 582e29e documentation/poky-ref-manual/ref-variables.xml: Added KBRANCH entry d4d4843 documentation/bsp-guide/bsp.xml: Changes to kernel config section. 4bd0338 bitbake: hob2: add elf to hcc supported image types 4b8f43a bitbake: siggen.py: Insure .siginfo files writes into shared sstate cache are atomic 05e5ec2 bitbake: runqueue.py: Improve error output to be more useful when non-existent tasks are found ac8ec3b gcc-cross-initial.inc: Use BFD ld as default always 7765ad4 webkit-gtk: remove svn recipe c9f855e webkit-gtk: add 1.8.1 recipe from tarball fac419e gnutls: Fix build with automake 1.12.1 cac24ab lame: fix build with automake 1.12.x 20a04e3 sed-4.1.2: fix build with automake 1.12.x 1f04e52 gawk-3.1.5: fix build with automake 1.12.x 0bd3e2a tar: fix build with automake 1.12.x c82ba68 gpgme: fix build with automake 1.12.x d108b8a webgit-gtk: fix build with automake 1.12.1 08131d8 libidn: fix build with automake 1.12 a41f095 telepathy-python: fix build with automake 1.12 d434cb6 libunistring: fix build with automake 1.12 95c561f pango: fix dependencies to avoid build issue 1447362 libfm: fix build with automake 1.12.x 22ea83c xf86-video-vmware: fix build with automake 1.12.x 45d9171 telepathy-glib: fix build with automake 1.12.x f91fbc6 libgcrypt: fix build with automake 1.12.x fc537f3 evolution-data-server: fix build with automake 1.12.x 2bea94d librsvg: fix build with automake 1.12.x 6dfb17b dates: fix build with automake 1.12.x 2fa4618 avahi: fix build with automake 1.12.1 33ec0e1 pcmanfm: fix build with automake 1.12.x cd3fcdd gnutls: Fix build with automake 1.12.1 e24ec0c jpeg: fix configure with automake 1.12.1 bf6786b automake: upgrade from 1.11.3 to 1.12.1 83dda47 eglibc: Add recipes for 2.16 release 85e5f2d mkelfimage: Fix cross build 0a925c9 kernel.bbclass: Dont package kxgettext.o 9302964 guile: Fix missing depends and broken arm build eb6323c gcc: Switch to git SRC_URI 4240bd6 lib/oe/sstatesig.py: Exclude git-native from sstate checksum ccaef5c qemu: Explicitly add --disable-gl-accel when gl is not enabled 3cf4c8d gcc: Refresh support for fsl E5500/E6500 656417a binutils: Backport the e5500/e6500 patches from mainline aa31bcb gcc: Convert do_headerfix into a definitive patch 804cebc strace: Fix build on eglibc 2.16 19bf330 libpam: Fix build with eglibc 2.16 19fe059 valgrind: Fix build with eglibc 2.16 a096caa boost: Upgrade recipe to 1.50.0 06f6b54 grub,guile,cpio,tar,wget: Fix gnulib for absense of gets in eglibc 674e951 bison: Fix for gets being removed from eglibc 2.16 19875a0 gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16 734e1a9 udev: Fix build with eglibc 2.16 34d1281 diffutils: Fix build with eglibc 2.16 423d316 coreutils: Fix build with eglibc 2.16 0fef0ff glib: package bash-completion files in separate package and move ${PN}-codegen to .inc a94e5d2 glib: upgrade to 2.32.4 0e53886 libx11: fix makekeys build d627534 busybox: Include sys/resource.h for rusage definition a7b443a gdb: Replace struct siginfo with proper siginfo_t a9f6df2 mirrors: Add debian archive snapshot mirrors to search list 1269eb0 lsof: define linux C library type when using eglibc f224240 base.bbclass: add GNUmakefile to the list of possible makefile names d71a35d crosssdk/nativesdk: Ensure EXTRA_OECONF_FPU is unset a09d55f python: Fix python-nativesdk variable contamination issue 72df57b sstate.bbclass: Move crosssdk before cross to ensure correct variables are set eb19ce2 gmp: upgrade to 5.0.5 5e7d4ca sysvinit-inittab_2.88dsf.bb: Allow multiple serial port consoles to be defined 9e5bce8 runqemu: Fix running qemu when build without gl e21c59e image_types.bbclass: Default XZ_COMPRESSION_LEVEL to -e -6 89dc64c image_types.bbclass: Add XZ variable to set number of threads to be used while compressing 5a281ea image_types.bbclass: Fix COMPRESS_CMD for xz to redirect compressed data to file a5bb0bd cpan.bbclass: Fix CCFLAGS. e789c1b puzzles: convert to use SVN 14c4a41 Update proto -> protocol for recipes ab0401f xz: update to 5.1.2alpha 9d38697 task-core-sdk.bb: add libgomp and libgomp-dev by RECOMMENDS c43abe1 python-dbus: upgrade to 1.1.0 4913b61 classes/rootfs_deb: use more reliable check for package existence e242388 linux-libc-headers: updated to 3.4.3 07a9e9e package.bbclass: Allow overriding of debugedit starting path 521cf20 runqemu/mips: adjust runqemu script to support mipsel machine 6c401a9 slang: change char type to signed char in macros e72157e gconf: Disable gtk support 6592209 rpm_5.4.9.bb: fix builds on systems with older libc e5d3ed3 mkelfimage: Upstream fixed packaging issue so upgrade to e1e6a91 b1c2b57 package install failure on systems without /sbin/ldconfig 1f7f925 conf/machine: replace TUNE_CONFLICTS with TUNECONFLICTS eb0cb7e perf: add perl, python to DEPENDS 8efb5fd linux-yocto: update mpc8315e-rdb linux-yocto-3.4 kernel SRCREV 89008d4 linux-yocto-3.0/meta-yocto: perf script fixes 8514aa9 linux-yocto-3.0/meta-yocto: perf script fixes b1a6061 meta-yocto: mpc8315e-rdb change preferred version to 3.4 581b967 linux-yocto/3.0: perf scripting support a3a697c bitbake: fetch2/__init__.py: Warn user if SRC_URI is using "proto" and not "protocol" c26f6b2 bitbake: fetch2/bzr.py: Use "protocol" parameter to get the protocol bd8d18f bitbake: fetch2/hg.py: Use "protocol" parameter to get the protocol cf599d1 bitbake: fetch2/osc.py: Use "protocol" parameter to get the protocol 6a210e8 bitbake: bitbake: Abort build if runtime dependency conflict 3115501 connman-gnome: remove unused patches, they were all merged upstream 6382732 libgomp: add libgomp (openmp) library, and build for powerpc targets by default b424a3a gcc: gcc-cross-canadian: use correct location for libraries for powerpc64 fd9a9a2 gcc-configure-common.inc: use --with-long-double-128 on powerpc to comply with ABI 38a0967 openjade-native_1.3.2.bb: fix typo and change the deps exclusion to correct var ef8d669 dtc.inc: fix for libdir == /usr/lib64 82bdf46 valgrind: fix default.supp missing issue 125e702 directfb: disable imlib2 explicitly 5142a1e subversion: do_install failed (parallel issue) 8af21f1 gnupg: ensure deterministic build by disabling libcurl 6a98862 perf: add perf-tui feature 2dac207 perf: add perf-scripting feature a8c3bc8 perf: add perf.inc d668ed4 linux-yocto/3.4: perf, unionfs and yaffs2 fixes 7b31ae8 linux-yocto/3.2: perf: fix mips build 06348fe opkg: fix installation of dev / dbg packages 029e3ce bitbake: fetch2/wget: Use FETCHCMD_wget to provide the commandline and options 254488f bitbake: fetch2/cvs.py: Switch to use FETCHCMD_cvs and handle parameters in the fetcher itself a5e31cb ccache: Ensure CCACHE_DIR is cleaned by do_clean task 064ef46 libxml2: Fix libzypp ansidecl related build failures 89ca570 bitbake.conf: Drop the remainder for the FETCH/CHECK/RESUMECOMMAND variables addcefa bitbake.conf: Add passive-ftp option to the default FETCHCMD_wget 449732e bitbake.conf: Drop the old svn FETCH/UPDATE/RESUMECOMMAND variables cf94f38 core-image-*.bb: Remove usage of EXTRA_IMAGE_FEATURES from some .bb files adad292 core-image-*: remove copyright notices d5f4227 core-image-minimal-dev: base on core-image-minimal 56e0835 libgsmd - remove 2e80a0b linux-yocto/3.2: perf scripting updates 90ad663 upstream_tracking: update boost 29aa1f3 maintainers: Update recipe ownership 041a0e8 bitbake: bitbake/cooker: Print which pkgs would be built in -g output c857fa9 linux-yocto/3.4: perf scripting & unionfs fixes 17fcc39 psplash - Update to latest psplash version. LIC_CHKSUM Tweak 0c9195b kernel.bbclass: add non-santized kernel provides cc646d8 connman: ship the empty plugins directory in the connman package be696b3 connman: remove some obviously wrong (circa early-GNOME 2?) directories from FILES 6e41732 ncurses: fix packaging issue in multilib build 198d300 bluez4: fix packaging issue after update 6a60512 packagedata.py: Fix get_subpkgedata_fn for multilib a294556 qemu-0.15.1: add patch to fix compilatation problems on powerpc 869d6f4 libxml-parser-perl_2.41.bb: fix MakeMaker issues with using wrong CC/LD/etc 2717309 utils.bbclass: add helper function to add all multilib variants of a specific package fe5feba pseudo: Update to 1.3.1 (fixing chroot crash) 70067f0 grub-efi: Do not use help2man 7af1525 init-install: Clean up partition alignment 6f932f8 init-install: Correct ext2->ext3 typo in logging ae18c85 init-install: Use swap_ratio in the calulation of swap_size 2fefa9c classes/license: fix manifest to work with deb 91a3a07 runqemu: fix support for ext4 rootfs images 24f02d5 runqemu: fix usage() help for MACHINE setting 2dee999 sanity.bbclass: the tmpdir can't be longer than 410 12c8d9d apt 0.7.14: runtime error: Method file has died unexpectedly f06c1c3 apt 0.7.14: runtime error: filename too long (tmpdir length) 460119a curl: upgrade to 7.26.0 d090092 gcc-common: Don't use "is" for comparing strings, use "==" e557af5 recipes.txt: Add entries for "recipes-rt" and "recipes-support" 254d225 pixman: upgrade to 0.26.2 da043d0 xinput: upgrade to 1.6.0 184959a libxi: upgrade to 1.6.1 a5180e4 libx11-diet: upgrade to 1.5.0 f013f72 libx11-trim: upgrade to 1.5.0 9d2e665 libx11: upgrade to 1.5.0 0ae1887 directfb-examples: upgrade to 1.6.0 7f906a7 directfb: upgrade to 1.6.1 e2b9acb multilib: Enable multilib remapping for SDK generation f40ce3e package_rpm: Avoid duplicate package generation failures 54a18cc populate_sdk_rpm: Sync multilib configuration with rootfs_rpm 0e832ba rpm: Fix PACKAGECONFIG dependencies e17ae2c gnutls: make sure native is patched for gettext version 7890697 lsbinitscripts: increase ALTERNATIVE_PRIORITY d617051 initscripts: use update-alternative to handle file functions fc17afa Upstream tracking partial updates a7e2b56 upstream_tracking.inc: recipe upgrades and manual check updates edeea67 upstream_tracking: Update manual checks and Header info a40d398 documentation/bsp-guide/bsp.xml: Fixed referece to source directory 59a40f5 documentation/yocto-project-qs/yocto-project-qs.xml: edits to super user cd0bc2d matchbox-panel-2: bump PR because libxcb-util soname was changed 64b20d1 startup-notification: bump PR because libxcb-util soname was changed 5051e98 bitbake: usermanual: Fix missing markup b201616 documentation/yocto-project-qs/yocto-project-qs.xml: Some link fixes 9a4191f documentation/yocto-project-qs/yocto-project-qs.xml: Scrub and edit e92e0c9 documentation/poky-ref-manual/technical-details.xml: Fixed various terms 2571a56 documentation/poky-ref-manual/faq.xml: Removed old YP Build Directory 229f7c5 documentation/poky-ref-manual/ref-structure.xml: log directory and typo 4239ff0 documentation/poky-ref-manual/ref-structure.xml: removed "/" from recipes.txt cb2e0ee documentation/poky-ref-manual/ref-structure.xml: Edits to BitBake directory ef098d5 documentation/poky-ref-manual/ref-structure.xml: Updated BitBake d930230 bootimg: Use STAGING_KERNEL_DIR b0510e5 documentation/poky-ref-manual/usingpoky.xml: added package-depends.dot b502bc2 perf: remove unconditional python-ext install 39b5d50 dpkg 1.15.8.7: bad interpreter when long tmpdir 52c6977 netbase 4.47 -> 5.0 1e6343d documentation/poky-ref-manual/ref-structure.xml: Added meta/recipes-rt. e0dc993 documentation/poky-ref-manual/ref-structure.xml: Added tmp/deploy/licenses a8d7e14 netbase: update to ver. 5.0 d27b8dd bluez4: update to ver. 4.101 11a3e61 ofono: update to ver. 1.8 ad98a89 gst-plugin-bluetooth: update to ver. 4.101 84b0cf3 telepathy-glib: update to ver. 0.19.2 9d64d83 u-boot: make FILESDIR a shared setting via FILESPATH 68cdea6 linux-firware: bump PE because git SRC_URI was changed resulting in LOCALCOUNT reset 1367511 bitbake: data_smart: Fix multiple override interaction with append and prepend operators bf9a8ec lib/oe/sstatesig.py: Exclude subversion-native from sstate checksums e3b3aaf gcc: fix collect2 host contamination problem properly 3051f36 bitbake: runqueue.py: Fix recursive task pruning to only prune self referencing tasks ee89e38 prexport.bbclass: Fix typo in warning: "AUROPR" -> "AUTOPR". d83e034 lsbinitiscripts: Add glib-2.0 to DEPENDS list fb8aaf6 qemumachines: make MACHINE_FEATURES append follow qemu.inc include c964536 perf: add libexec/perf-core and contents d4eaa2d perf: enable Perl binding 7a2cf86 perf: enable Python bindings aeca651 perl: use @STAGINGDIR@ in config.sh 2cae5a9 perl: add @STAGINGDIR@ for config.sh substitions 7ebe4ca perl: keep original libperl location 39c819b mkelfimage: Add stable git build (initial recipe) c9b01af image_types: Add elf image type 0a1d5f5 package.bbclass: enable the use of package_qa_handle_error f47c151 oprofile: Change /root to /home/root 2933dc1 speex: use lib_package bbclass 5ce2100 gnutls: use lib_package bbclass fb0b75a db: use lib_package bbclass 82b05d2 pulseaudio: use lib_package bbclass b8d37a4 libacpi: use lib_package bbclass 7a16e34 lib_package: use PACKAGE_BEFORE_PN 0add8ba bitbake.conf: Add PACKAGE_BEFORE_PN to PACKAGES 68a8caa kernel: Add kernel headers to kernel-dev package a0bbbdf linux-yocto-tiny: add KMETA specification a3d231b linux-yocto/3.4: update preempt-rt to 3.4.4-rt13 5783db4 linux-yocto/3.4: v3.4.4 + configuration updates 60ea6f4 linux-yocto/3.4: add qemumipsel machine mapping 65d637b telepathy-glib: update to ver. 0.19.1 ef6e25a pcmcia-cs: Remove references to long-deprecated pcmcia-cs. 96ebfa7 lighttpd: upgrade to 1.4.31 5384eef xcb-util-keysyms: upgrade to 0.3.9 22801c1 xcb-util-image: upgrade to 0.3.9 bab167c xcb-util-wm: upgrade to 0.3.9 2d96a93 libxft: upgrade to 2.3.1 03c0c85 ethtool: upgrade to 3.4.1 e0ed10b libdrm: upgrade to 2.4.35 0ad5637 xcb-util: upgrade to 0.3.9 2f96fd0 xf86-input-synaptics: upgrade to 1.6.2 91a744e xf86-input-vmmouse: upgrade to 12.9.0 ddafc10 documentation/dev-manual/dev-manual-newbie.xml: Edits to submitting change 75d007b documentation/dev-manual/dev-manual-newbie.xml: edits to sending patch bf753f8 documentation/dev-manual/dev-manual-newbie.xml: Fixed typo. a7cf3cd documentation/poky-ref-manual/ref-variables.xml: Added link to PR b64ad8b dev-manual: menuconfig now works properly f7cce1b shared state memory -> shared state cache 9568530 dev-manual: correct SMP_CONFIG 257e61a dev-manual: tidy up "How to Submit a Change" section dd5f6ae bitbake: fetch2/svn: Enhance to cope with subversion 1.7 upgrade 852266d bitbake: usermanual: Improve task dependency documentation to match reality 3488966 bitbake: runqueue.py: Allow recrdeptasks that have self references 5d79175 bitbake: Hob: fixed some variables not clean bug in detail page 86aeee9 bitbake: git: do not execute 'git remote prune' 5c581b2 meta/classes: Update recrdeptask fields for recursive dependency handling changes in bitbake 024d587 subversion-native: Enable subversion-native 1.7 and remove it from ASSUME_PROVIDED bc6c985 poky-ref-manual: update mailing list info in ref manual c3d6fb2 documentation/poky-ref-manual/ref-variables.xml: Fixed example. 5966b44 documentation/poky-ref-manual: Yocto Project scrub 7064538 documentation/poky-ref-manual/poky-ref-manual.xml: Removed comments e70dc3a documentation/kernel-manual: Scrubbed the Yocto Project term d779c83 documentation/dev-manual: Fixed "Linux Yocto" term 85673e5 documentation/dev-manual: Scrub for Yocto Project term 7606c30 documentation/dev-manual/dev-manual-bsp-appendix.xml: Yocto term scrub b634676 task-core-tools-debug: Added openssh-sftp-server. 286b266 image/core-image: Handle conflicting IMAGE_FEATURES. 6121186 openjade-native: fix undefined Getopts error, use std namespace 8c87f25 base.bbclass: Add cross-canadian-${TRANSLATED_TARGET_ARCH} to the license exclusion list b70c915 image.bbclass: Add support to build the SDK in parallel with the image 63c6f46 package.bbclass: Allow a package to skip per file dependency generation 6cb1387 libc-common: Allow -dbg package to append, and not just set package variables b8bd56e autotools.bbclass: When configure fails, dump the config.log files the logs b6cf8f9 u-boot: do not clobber PARALLEL_MAKE setting feb06a0 u-boot: Don't make the -Os removal part of global settings. 01e891a populate_sdk: enable basic multilib support 66d3d3b populate_sdk_base.bbclass: Change to using task specific depends 41550ca populate_sdk: Allow for attempt only packages in the SDK 1d52711 populate_sdk.bbclass: Split into two parts 9870fbc Fix manual log file paths bd2d601 core-image*sdk: Add kernel-dev to sdk images cf65e4e linux-yocto-custom: Remove linux-tools 7449260 icu 3.6: do_install failed: Segmentation fault 44fe9de kconfig-frontends: New recipe 644ad4b documentation/bsp-guide/bsp.xml: Yocto term paring 58977a9 package.bbclass: Add missing PKGR, PKGV, PKGE and ALTERNATIVE variables from PACKAGEVARS 91a0772 package_deb: When searching for E:, anchor expression 4147d2e EXTRA_IMAGEDEPENDS is used to ensure things like qemu-native are built and these are not strictly dependencies of the do_rootfs task. This patch moves them to the do_build task allowing bitbake a little more flexibility about when things need to get built by. 1d9e129 kernel-arch: Remove test for long-dead arm26 architecture. 44b1803 irda-utils: Add missing "inherit update-rc.d" for INITSCRIPT_* d53c80f site/common-linux: fix incorrect size of pid_t for apr 3a39cbc apr: add util-linux to DEPENDS for libuuid bf04836 bitbake.conf: Tidy up a few comment typoes; no functional changes. 035503b documentation.conf: Improve PRIORITY documentation 9a4b266 runqemu: fix fedora pkg names when run fails a5b2c1e bitbake: Hob: change 'run image' and 'deploy' Gui and work flow for building detail page b3edfb1 build-appliance-image: rename from self-hosted-image 602808b linux-libc-headers-yocto: Do not include linux-yocto 347424e documentation/adt-manual: Adjustments to Yocto Project term 7a4cc0e mklibs-native: Upgrade to 0.1.34 552883c qt4e-demo-image: new description d7bafd3 build-appliance-image: rename from self-hosted-image 934bb7b linux-yocto: Use INC_PR and move kernel require to linux-yocto.inc 11809e3 apr: Install apr-local libtool in build dir c4c029a bison: link in librt on uclibc 56bcc2f uclibc-0.9.33: add posix_fallocate implementation 55e369d uclibc-git: Update for building systemd e5c81d7 glib-2.0: Add missing dependency on virtual/libiconv c5274b1 uclibc: Separate the bits between uclibc and uclibc-initial cc6a65d eglibc: support mipsel little endian, filter out -march=mips32 a4d55aa eglibc-2.15: Update to latest on 2.15 branch 3916fb9 gcc-configure-sdk, gcc-configure-cross: Dont recompute USE_NLS daed800 bitbake.conf: Add weak definition for USE_NLS c27d535 libgcc: Remove unpackage unwind.h 6d96686 icu 3.6: dropp apply=yes from path 4d48398 local.conf.sample.extended: Add filtering function to archiver.bbclass 7afc6af documentation/poky-ref-manual/faq.xml: added FAQ on deleting tmp 5f36c2c documentation/poky-ref-manual/faq.xml: Clean up to ext. toolchain 060e7b4 documentation/poky-ref-manual/ref-variables.xml: Updates to TCMODE. ffb7f52 documentation/poky-ref-manual/ref-variables.xml: Added link to TCLIBC. 8bcbd30 documentation/dev-manual/dev-manual-kernel-appendix.xml: Added branch step 2282764 documentation/adt-manual/adt-prepare.xml: Inserted note 4129d5d bitbake: runqueue.py: Handle multiple rdeptask entries 18e3b50 bitbake: fetch2: Revert the regexp removal for the type field and instead anchor regexp c525c13 bitbake: test/fetch: Switch the comparision order to make test failures slightly clearer b13951f bitbake: test/fetch: Ensure cwd is valud for the git clone 5fa6036 bitbake: runqueue: Reimplement recrdepends so it works more correctly be22b92 bitbake: runqueue.py: Convert depends variable to use sets edfb2ba bitbake: taskdata: Add gettask_id_fromfnid helper function d498bd6 linux-yocto/3.0: update BSP descriptions to new kern-tools format f64d68f bitbake.conf: disable ccache explicitly if it is not enabled c3d8b10 archiver.bbclass: Add the function of filtering packages fb4a1c8 libxml: disable lzma d3343f7 gconf.bbclass: don't register schemas in the install stage 6b66a81 native.bbclass: correct PATH to have native-intercept be prepended 8c904eb linux-dtb: add multi-dtb build support 6c7fccb busybox: add correct ALTERNATIVE_TARGET for init.d/syslog b8c9a59 systemtap: update to version 1.8 d7be5de linux-yocto/3.4: -rt build fixes + configuration audit (part2) f6bc243 linux-yocto-rt/3.4: update qemuppc branch 3426c8b linux-yocto/3.4: update to v3.4.3 4f9f8c6 linux-yocto/3.4: update and categorize configuration options 641a709 kern-tools: add buildall and robustness fixes 41ed2e6 classes/image: Allow openssh empty passwords login. 2fa7732 mtd-utils: do not stage headers in sysroot ea88444 mx: Upgrade to 1.4.6 bcc04b2 tiny-init: Basic init mechanism for poky-tiny 20a426b busybox: Introduce poky-tiny defconfig override 2a29b7d yocto-bsp: update yocto-bsp xorg.conf templates cad078c yocto-bsp: update yocto-bsp machine.conf template 7c03f78 upstream_tracking: Update Upgraded and Manual Checked upstream 26e6b0a linux-libc-headers-yocto: update to v3.4 and remove unecessary code 58fcd84 linux-libc-headers-yocto: use kernel-arch to set ARCH 93d890f documentation/yocto-project-qs/yocto-project-qs.xml: Updated Fedora packages 123e4c2 documentation/poky-ref-manual/ref-images.xml: Fixed product name a9f9eb2 documentation: Re-defined "Build Appliance" to mean the file 8ce8d25 sanity.bbclass: Increase LAYER_CONF_VERSION to match bblayers change 5e3a61b bblayers.conf.sample: Fix empty BBPATH entry warnings 4d76363 tcmode-default: Update gzip PREFERRED_VERSION to 1.15 67ee108 libtiff: Upgrade to 4.0.2 cf42eb9 libidn: Upgrade to 1.25 e178642 foomatic-filters: Upgrade to 4.0.16 4982a72 gnutls: Upgrade to 2.12.20 64af36d libtasn1: Upgrade to 2.13 d515502 resolvconf: Upgrade to 1.67 2a0e30f cracklib: Upgrade to 2.8.19 f679d15 libxml-simple-perl: Upgrade to 2.20 2ba070d libxml2: Update to 2.8.0 953d7e2 util-linux: Update to 2.21.2 e86032f sysstat: Update to 10.0.5 b2a5587 psmisc: Update to 22.19 a576f1a sqlite3: Update to 3.7.13 f80dfac distrodata: Fix missed VARIABLE name change 06fe8a9 qemu.inc: Fix packageconfig options bd006a9 uclibc: Fix packaging to match the new package order 6e9606e linux-firmware: update to main repo on kernel.org a01b7ce sudo: upgrade to 1.8.5p2 529d87e gzip: upgrade to 1.5 08e15c2 gcc: Remove csl gcc recipes 92e20d1 eglibc-2.13: Retire into toolchain layer 2ef14df gcc-4.6: Retire into toochain-layer aecbfbc gpgme: updated to 1.3.2 0abfb69 runqemu-internal: qemu fails to run on ext2 image 7874440 xev: updated to 1.2.0 288dcf4 cml1.bbclass: Only delay exit if the command fails 3257a7c documentation/adt-manual/adt-eclipse.xml: Updated YP settings dialogue 13ae887 documentation/adt-manual/adt-eclipse.xml: Updated Yocto ADT Project item 9234b28 documentation/adt-manual/adt-prepare.xml: Re-worded toolchain generation 7341184 documentation/adt-manual/adt-eclipse.xml: Updated Yocto Project ADT item c45ad31 documentation/adt-manual/adt-prepare.xml: grammar fix. 2e4bd35 bitbake: Fix for Hob bug #2323 b224ed2 bitbake: hig.py: use module tempfile to create temp file 72f04e7 bitbake: fetch2: Ensure star character doesn't end up in mirror tarball names bd3fd17 bitbake: lib/bb/utils.py: remove unnecessary preserved variables 9334b0d bitbake: fetch2: Add new mirror syntax to simplify mirror specifications e63dada bitbake: fetch2: Handle errors orruring when building mirror urls a87aa7b bitbake: process: Improve _logged_communicate buffering 15a31a9 bitbake: taskdata.py: Add support for rdepends task flag be98c1f bitbake: utils.py: Add function to set nonblocking operation on a file descriptor e05b423 bitbake: git.py: Remove -l option, its not necessary df929f4 bitbake: lib/bb/siggen.py: log when tainting the signature of a task 25441f4 bitbake: bitbake: tweak help text for -C slightly eaf54b8 bitbake.conf/abi_version.conf: Update to use BasicHash signature generator 8b92304 layer.conf/bblayers.conf.sample: Fix empty BBPATH entry warnings b876f42 guile: fix compilation on MIPS/PPC 6d0b60a sato-icon-theme: inherit the GNOME icon theme (Yocto #2594) d1e5ce9 maintainers: Update for Transition fa7c2b0 bitbake: fetch2/git.py: Optimize clone fall back when it is local dee397a bitbake: ui/depexp.py: use the new progressbar in Hob df0059b bitbake: fetch2: Update replace_uri to handle uri types explicitly dd249eb bitbake: test/fetch: Add a couple of extra test cases ad8d1d3 bitbake: test/fetch: Add in unit tests for uri_replace() and git premirrors a627fe5 bitbake: fetch2: uri_replace() only consider ud.localpath where its a file 5484651 bitbake: fetch2: uri_replace() improve mirrortarball handling 83bbfa0 bitbake: fetch2: uri_replace() remove what amounts to a null operation and add some comments 196982a bitbake: fetch2: Add parameter handling to uri_replace() bf85018 bitbake: fetch2: Remove basestring test and simplify uri_replace a7d5c57 bitbake: fetch2: Simplify some looping constructs in uri_replace() 20649e9 bitbake: fetch2: Improve mirror looping to consider more cases 3f44176 bitbake: fetch2: Explicitly check for mirror tarballs in mirror handling code f3fb4dc bitbake: fetch2: Split try_mirrors into two parts 927565c bitbake: fetch2: Ensure when downloading we are consistently in the same directory 3c8a561 bitbake: fetch2: Only cache data if fn is set, its pointless caching it against a None value 4a0dc38 bitbake: fetch2: Fix error handling in uri_replace() 85dc355 bitbake: fetch2/__init__: Make it clearer when uri_replace doesn't return a match c072fa8 bitbake: bitbake: add -C option to invalidate a task and rebuild the target 5bd11a9 bitbake: bitbake: ensure -f causes dependent tasks to be re-run abc0bef documentation/adt-manual/adt-prepare.xml: Added text about host gcc f3e184a documentation/dev-manual/dev-manual-newbie.xml: Typos fixed. a291d00 documenation//dev-manual: Typos fixed. 356ac1f documentation/poky-ref-manual/development.xml: Removed dbg and profile b2f4ddd documentation/dev-manual/dev-manual-common-tasks.xml: Moved dbg and profile 6b8922d documentation/poky-ref-manual/development.xml: changed image name. 5f18bc5 evolution-data-server: updated to ver. 2.30_3 d4beac1 xinetd: Add default options. a0ad64d Simplify "SRC_URI_append +=" to "SRC_URI_append =" 086a70567 connman-gnome: upgrade to 0.7, which works with connman 1.0 6afc231 connman-gnome: clean up runtime dependencies 1747ed4 connman-gnome: fix build depends (Yocto #2556) 84e5d58 connman: upgrade to 1.0 36f08d9 connman: add compat RPROVIDES for older packaging 89eebaa connman: rationalise configure options 1d86b2c gitignore: ignore build*/ entirely 984b0dc linux-libc-headers: use kernel-arch to set ARCH c0b54eb gcc: Fix a case of sysroot with trailing / and gxx-include-dir leading slash 7fb442a gcc-4.7: Update to tip of gcc-4_7-branch since 4.7.1 has been out 50bc311 binutils: Enable plugins by default e146139 binutils: Add with-sysroot to target binutils be9756a uclibc-git: Upgrade to latest tip of master d227070 recipes-kernel: remove linux-tools.inc 6b9c191 recipes-kernel: make perf a standalone package a5b568e kernel: save $kerndir/tools and $kerndir/lib from pruning 9b8daa9 package_rpm.bbclass: fix incremental rpm generation 97dd7e1 opkg-utils: bump SRCREV 4abc933 gettext 0.16.1: Update FILES for post PACKAGE reoder d6259dc libpcre: clean up FILE after PACKAGE reorder d0c615e conf/bitbake.conf: fix reparsing after -p is used 66123b9 classes/cml1: ensure -c menuconfig forces a rebuild next time e562052 openssl: add deprecated and unmaintained find.pl from perl-5.14 to fix perlpath.pl 262e5ac kernel.bbclass: pass KERNEL_VERSION to depmod calls in postinst 9ffec01 libpcre: Clean up FILES_* after PACKAGES reoder ad130b9 libevent: disable openssl by default 948e3e4 PR bumps for PACKAGES reorder 6a5a4a1 curl: Clean up FILES_* after PACKAGES reoder 9bdb9c6 man-pages: Clean up FILES_* after PACKAGES reoder b1ca0e3 hdparam: Clean up FILES_* after PACKAGES reoder a0f804a grub: Clean up FILES_* after PACKAGES reoder 9aa4e69 libtool: add ${PN} in middle of package list to ensure .m4 get with ${PN} 30e52c5 webkit-gtk: remove /usr/libexec since it's empty d421d03 js: clean up FILE after PACKAGE reorder eed46b1 lttng-viewer: clean up FILE after PACKAGE reorder 2c11581 libidn: clean up FILE after PACKAGE reorder d02f342 gtk-sato-engine: clean up FILE after PACKAGE reorder d524486 freetype: clean up FILE after PACKAGE reorder 6d15bb2 gthumb: clean up FILE after PACKAGE reorder a86e23e slang: clean up FILE after PACKAGE reorder a07ee19 gnome-keyring: clean up FILE after PACKAGE reorder 43616aa procps: clean up FILE after PACKAGE reorder 28a1a0f cups: clean up FILE after PACKAGE reorder b33b5e3 gettext: clean up FILE after PACKAGE reorder 461d0ab icu: clean up FILE after PACKAGE reorder 5658c12 groff: clean up FILE after PACKAGE reorder 52c72df libxml2: clean up FILE after PACKAGE reorder 28b6b28 libpng: clean up FILE after PACKAGE reorder fbe245a db: Ensure the library version matches package version e4f1184 gnutls: clean up FILE after PACKAGE reorder 1e53c0b gpgme: clean up FILE after PACKAGE reorder 14fde11 libgcrypt: clean up FILE after PACKAGE reorder 16d2c6e libgpg-error: clean up FILE after PACKAGE reorder a28c118 libproxy: clean up FILE after PACKAGE reorder c96179e libusb-compat: clean up FILE after PACKAGE reorder 4d881e9 pth: clean-up FILES list due to PACKAGE reorder 7a66997 taglib: correct location of taglib-config to -dev da99f5d eglibc-package: Update PACKAGES and files based on new ordering 17d4fa0 pmutils: reorder file for correctness fd259b8 bitbake.conf: add PN-bin and cleanup lib_package.bbclass b11e5d7 lib_package: remove the -dev list a5eb4d2 binconfig: add *-config files to the -dev package f68cbf5 bitbake.conf: reorder PACKAGES list 504e373 curl: Use gnutls for target and openssl for native e0a7054 perl: Allow perl to cross build and native build in a directory named "t" 83b53d3 libzypp: Fix build with uclibc de8b25d lsbinitscripts: Add the header for functions.patch 05428da multilib.conf: Add the support of multilib for lsbinitscripts 993245d puzzles: upgrade to r9561 85c04b7 libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc c383a30 zypper: Fix build on uclibc 13136e4 rpm: pass lrt and lpthread to link step explicitly for uclibc fd3e09c sat-solver: Fix build on uclibc bdc73df rpm: Use link time check for libssp eaedf2e rpm: Fix compilation on uclibc 5276472 site/x86_64-linux-uclibc: Cache definitions of guint32/guint64 cae148a uclibc_0.9.33.bb: Upgrade to latest git 6651761 debian.bbclass: invoke target objdump 85d7c01 tzdata, matchbox-session, mini-x-session: replace RCONFLICTS with RCONFLICTS_ 79e4de8 recipes: replace CONFLICTS with RCONFLICTS_${PN} 0529f93 qt4-embedded: fix QT_ARCH usage in QT_CONFIG_FLAGS bbd25aa mdadm: Don't depend on ansidecl.h header 6b93b86 directfb: fix Upstream-status -> Upstream-Status a7f6b0a cleanup-workdir: update help text 3360a4f cleanup-workdir: only deal dirs related to current arch 21d84d2 cleanup-workdir: replace commands with subprocess 7dbc268 cleanup-workdir: update the way to check obsolete dirs 21bd455 meta-skeleton: add linux-yocto-custom reference recipe eda6a52 libzypp: Fix build with uclibc c16eddd busybox: Fix syslog configuration file 9890bf8 core-image-gtk-directfb, qt4e-demo-image: Remove module-init-tools from IMAGE_INSTALL list a41c3e4 gcc-cross: argument list too long when do_install 4f65868 linux-yocto/meta-yocto: update yaffs2 and drop rc6 8cdb883 documentation/poky-ref-manual/development.xml: removed section fef4f4e documentation/dev-manual: Moved temp source code mod into dev model 513af3c documentation/poky-ref-manual/development.xml: Removed Eclipse section fa332a5 documentation/poky-ref-manual/development.xml: Removed toolchain dev section 91911f6 documentation/poky-ref-manual/ref-images.xml: removed links to section 45f26d5 documentation/bsp-guide/bsp.xml: Review comments to recommendations 363efd4 documentation/dev-manual/dev-manual-start.xml: Updates to pre-built section 857b2d4 documentation/poky-ref-manual/development.xml: Removed pre-built section 8f67927 documentation/bsp-guide/bsp.xml: Added note to BSP recommendations 0be4910 documentation/bsp-guide/bsp.xml: Updates to requirements section 4969df1 documentation/bsp-guide/bsp.xml: BSP recommendations section added c29a721 documentation/kernel-manual/kernel-how-to.xml: Updates to showing changes 4bb7ef9 directfb: added missing Upstream-status 55a6587 pango: added upstream-status status. 4d8fa40 distrodata: cleanup after moving distro_tracking_fields 0cb6bc0 distro tracking files: Add seperated set of files c8a22b7 strace: update to 4.7 6aabd47 beecrypt: add patch for build issue on Fedora 17 b42744f gcc-target: ensure target packages have the correct virtual package names 43c84ea eglibc: added ac_cv_path_ to CACHED_CONFIGUREVARS ec07dfc quilt: added ac_cv_path_BASH to CACHED_CONFIGUREVARS 83fe2bb curl: enable ssl support e90cfbd busybox: Add check for wifi/bluetooth to enable rfkill 2fa65dd opkg 0.1.8: do_fetch failed since no checksum specified de4bd37 linux-yocto/3.4: create linux-yocto-rt recipe d51d204 linux-yocto/3.4: update yaffs2 and drop rc6 1b112fa pybootchartgui: Fix the filename and add a default format 0ad3f75 pybootchartgui: split the output chart into multiple ones bc5b86f pybootchartgui: make the build profiling in pictures 3d78bc1 pybootchartgui: add the original code bc19f8b coreutils: Fix a typo in v6.9 (bracket not braket) 0affb56 libpcre: updated to version 8.30 066ec29 distro_tracking_fields: move to meta-yocto as seperate files 3f29273 gcc-configure-target: Fix sysroot option breakage I introduced (sorry) 4ff6160 methodpool: Improve method already seen error message 1faf025 fetch2/local: Ensure quoting is handled correctly from the url d43d3b0 fetch2: Fix missing output from stderr in fetcher logs ad78e3c Hob: fixed issue about 'select a base image' combo not sensitive 2295ef1 Hob: fixed an issue about no 'set_page' function in hob failed page show 79df635 image-writer: tweak some strings d2bdfe0 ui/crumbs/hig.py: simplify subprocess call a87ce43 ui/crumbs/hig.py: tweak strings 7f017ca connman: bump PR and add some comments d8d95d1 sanity.bbclass: warn the user if BBPATH contains wrong entries 5a50eb1 webkit-gtk: Apply work around for all PowerPC targets ca6d07c connman: make useradd parameters consistent with rootless X 5518a1a systemtap: update Upstream-Status and use correct syntax e7d0a81 gcc-configure-common: Use build time sysroot for target gcc 9f47c0f lsof: Fix cross 32 -> 64bit ranlib host contamination problem 1a9ad7f poky-tiny: eliminate mtrace rdepends 6aff0d1 meta-yocto/linux-yocto: fix routerstationpro build 5ed855d openjade-native: Ensure we reautoconf the package 7e62e24 cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks cc96daa qt-x11-free.bbappend: Update to 4.8.1 dfcfe11 qt4: Drop 4.7.4 d7b7f13 rpm: Ensure pkgconfig deps don't stray from the package being built 9786663 package_rpm: Verify that the package manifests are not empty f182f53 createrepo: For compatibility w/ RPM 5.4.9 remove RPMVSF_NOSIGNATURES flag 43dd351 rootfs_rpm.bbclass: Update database configuration file 7fe15f0 rpm: Bump PR numbers on componets that require RPM 75c302c package_rpm: Add capability to directly query packageorigin b81d788 ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration bc4a29d rpm: Upgrade RPM to 5.4.9 b2381b6 rpm: Upgrade RPM to 5.4.8 (db to 5.3.15) 99822cd gnomebase: add GNOME_COMPRESS_TYPE variable 60543b9 nasm: updated to 2.10.01 107b1b0 menu-cache: upgrade to 0.3.3 7d25922 ethtool: upgrade to 3.2 b2846ba tzdata: upgrade to 2012c 287fabd freetype: upgrade to 2.4.9 35c5a8c linux-libc-headers: set default LINUXLIBCVERSION to 3.4 a166085 v86d: Fix cross link using host-cross ar 616fab3 libnewt: Fix cross link using autoconf detected AR d411e77 gitignore: add wildcard to match toplevel patch files abcc436 augeas: Fix compilation failure 2215a96 task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion 429004f cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables 4b55c92 gcc-common: Replace use of TARGET_ARCH with TRANSLATED_TARGET_ARCH 53981ad gcc-common: Enable hardfloat ABI when target is arm 1a2f20d uclibc: Move to latest tip of master 2dcb935 gnupg-2.0.19: Depend on npth for uclibc fb8fabb gpgme: Depend on npth for uclibc de04115 npth: Add recipe f6a4d74 libtool: Let -fstack-protector passed to link step 1988bc0 pth: Mark incompatible with uclibc 00330a3 binutils_2.22: Backport to fix bogus textrels 665f908 linux-yocto/3.2: fix meta SRCREV typo 0612cf3 hob2: create a standalone deploy image tool 7828e9e hob2: update DeployImageDialog for seperated tool 87ce7bd ui/crumbs/hig.py: check deploy process return value 0c99278 ui/crumbs/hig.py: remove extra spaces 0b6bb93 ui/crumbs/hig.py: fix run time error ac7b964 ui/crumbs/utils.py: import module bb 574b5ec Hob: fixed the index issue when set actived item for base image combo e91f1e2 Hob: Change 'run image' work flow and image detail screen as ui design c0b9270 Hob: Interpret some special characters for label markup 25785d8 Hob: add versions for compatibility check between Hob and templates efd9770 Hob: lower the limitation for PyGTK 9703dcb Hob: fixed a definition not match issue when click choose directflb in package page c8c8d75 Hob: fix entry of recipe page can't be edited in case after clicked clear button 6ac1545 Hob: clear the repeated function get_kernel_file_name 7f806be meta-yocto: make 3.4 the default kernel for qemu* 70d7e13 linux-yocto/meta-yocto/3.2: fri2 and chiefriver machine updates 77d30c7 linux-yocto/meta-yocto: introduce 3.4 bbappend 5010afd linux-yocto/meta-yocto: add machine aliases for yocto BSPs b6ceefc linux-yocto/meta-yocto: remove 2.6.37 bbappend 1c33c54 linux-yocto/meta-yocto: update to v3.2.18 c3d7493 linux-yocto/meta-yocto: update to v3.0.32 27c051f kern-tools: anchor KMACHINE test 7f44713 linux-yocto/3.0: add cedartrail kernel features 3290146 linux-yocto/3.2: fri2 and chiefriver machine updates d0402c6 linux-yocto: add 3.4 recipe 9cf8501 linux-yocto: add machine aliases for yocto BSPs b078910 linux-yocto: remove v2.6.37 recipe b047060 linux-yocto/3.0: update to v3.0.32 5af9811 linux-yocto/3.2: update to v3.2.18 2da9191 kern-tools: remove unused code, meta branch and directory assumptions ca0ce36 README: Correct documentation URL in top-level README file e4f0176 gettext/shared-mime-info: Add missing patch upstream status field ea2a850 rootfs_rpm.bbclass: save rpmlib rather than remove it 1e71397 apt 0.7.14: do_compile failed with gcc 4.7 9e7c915 apt-get 0.7.14: hangs at runtime 9a51999 archiver.bbclass: Reduce some duplication for function get_licenses 5be715a connman: Document the ACL-breaking sed 554afde connman: respect the 3g feature and enable/disable ofono support 1720705 insane.bbclass: Make ldd exec_prefix error reporting easier to read 570c542 gettext: install libgettextlib.a before removing it 5094da3 shared-mime-info: fix build race condition 3792f77 shadow-native: Disable nscd support d56659e groff: Fix build on Fedora 17 c9c7fe8 beecrypt: disable java 6479164 runqemu-ifup: enable arp proxying 1a749e1 gnupg: disable CCID driver 038874c gnupg: add libusb to DEPENDS 47e954e telepathy-glib: update to 0.19.0 61e06d3 task-core-basic: drop portmap f822034 rpcbind: add and use startup script, move binaries fa3b18e systemtap: Unbreak build for systems with nss headers installed df8f55a ltp: Add patch to correct failing build a192569 pulseaudio: fix typo in the patch name, pulseaudo -> pulseaudio ae6d342 lsbinitscripts: Missing popt DEPENDS 885e1f7 license.bbclass: optimize pkg runtime data f25a6c0 license.bbclass: Adding PV to package.manifest 7f713b6 dbus: update to version 1.4.20 e618834 connman: just give xuser the extra rights it needs 34f819e archiver.bbclass: Improve the usability for the archiver classes 09a7dc9 generate-manifest-2.7.py: replace os.popen with os.unlink d068a75 external-sourcery-toolchain: forcibly create usr/lib b90cc2a tcmode-external-sourcery: pass -msgxx-glibc for x86 286a490 external-sourcery: extract src and dest sysroot paths from gcc 9205cba task-core-lsb: Add another initscripts to an lsb image 6e41674 lsbinitscripts: Patch file functions for confirming to an lsb image d32f900 lsbinitscripts: Add initscripts to enhance init functions in an lsb image 718779e directfb-examples: upgrade to 1.5.3 96c65bd directfb: upgrade to 1.5.3 d0fac33 cpan.bbclass: Fix config error while patches to Makefile.PL b1f7bb9 local.conf.sample.extended: Change the usage about arhiver.bbclass 0efe773 kernel.py: replace os.popen with subprocess.Popen de4cdfd documentation/kernel-manual/kernel-how-to.xml: Updated to kernel 3.4 614308e documentation/dev-manual/dev-manual-kernel-appendix.xml: Comments removed 69536d4 documentation/dev-manual/dev-manual-kernel-appendix.xml: Updated Note a23636b documentation/yocto-project-qs/yocto-project-qs.xml: pre-built example fix 230e325 documentation/dev-manual/dev-manual-bsp-appendix.xml: .bbappend example 31bfebd documentation/dev-manual/dev-manual-bsp-appendix.xml: Added note ad93aae documentation/yocto-project-qs/yocto-project-qs.xml: Minor wording changes fcea677 documentation/poky-ref-manual/ref-images.xml: images defined 0bf437b documentation/poky-ref-manual/ref-images.xml: Updated core-image-sato-dev a13ad00 documentation/adt-manual/adt-eclipse.xml: Added not and updated version 3a062dd documentation/dev-manual/dev-manual-kernel-appendix.xml: Kernel example fixed 0957740 documentation: Added manual history for 1.3 b24d15c documentation/poky.ent: Updated for latest builds 9286a87 documentation/yocto-project-qs/yocto-project-qs.xml: Setup changes 348da93 webkit-gtk: Use glib as unicode backend to avoid browser crash 3e9f270 bitbake.conf: set an exclusion list for varflags in checksums 2f0303e bash: Update to new update-alternatives syntax 9bab122 bzip2: Update to new update-alternatives syntax 96a0135 kmod: Remove bashism from recipe 0b8d5da update-alternatives: Fix absolute symlink handling b3e76b3 package.bbclass: Add warning about FILES containing '//' 8c2e3c9 layer.conf/bitbake.conf: Tweak PATH 534f319 bitbake: include varflags in checksums 43551f5 lib/bb/fetch2: ignore remote URIs when doing file checksums bb81db6 cooker: report recipe being parsed when ExpansionError occurs f0809ed cooker: fix UnboundLocalError when exception occurs during parsing 64f88bf lib/bb/data_smart.py: don't report variable in ExpansionError if not set 5a97523 hob: handle sanity check failures as a separate event c8d78b2 Hob: add the 'build new' be as the primary action for 'Image detail' page 6609a81 Hob: Fixed a compatible issue for indicator icon view cc3da12 HOB: 'str' object has no attribute 'close' 9b6d3f4 hob2: set beginning folders for FileChooserDialog 0d9e893 Revert "meta: replace os.popen with subprocess.Popen" bc386b8 classes/sanity: fix a couple of grammatical errors in messages 0299499 ccache: Separate out into its own class a92ff3a scripts/cp-noerror: Add a special copy function to fix autotools issues b3e9a99 xz: updated to version 5.1.1alpha d63298e qemu: Add an option to remove host sdl/gl checking 7a619c2 classes/sanity: send sanity check failure as a separate event for Hob 0fd6a47 foomatic-filters: update to version 4.0.15 42dec00 mtd-utils: Update to version 1.5.0 e95e077 man-pages: update to version 3.41 a8010cd classes/sanity: remove broken TARGET_ARCH check b68e2d6 libpciaccess: upgrade to 0.13.1 7ed241c fontsproto: upgrade to 2.1.2 7bf02eb fontconfig: upgrade to 2.9.0 e8dac5a scripts/buildhistory-diff: add GitPython version check 1fe254f buildhistory_analysis: fix error when version specifier missing 5996b2b meta: replace os.popen with subprocess.Popen d760fb9 scripts: replace os.system with subprocess.call e40995e meta: replace os.system with subprocess.call e4c3579 shadow-utils-native: remove unnecessary alternatives 9a686b3 kmod: use new update-alternatives c17ae6f sysklogd: use new update-alternatives 5cbc486 psmisc: use new update-alternatives ddcf94e iputils: use new update-alternatives 0b5c423 grep: use new update-alternatives 2851d75 cpio: use new update-alternatives 8a4a7a2 opkg: use new update-alternatives 6d76d52 tar: use new update-alternatives 76c08cc binutils: use new update-alternatives cb2a93e util-linux: use new update-alternatives 18b6e5f psplash: use new update-alternatives 4ca029b ncurses: use new update-alternatives 07da870 dropbear: use new update-alternatives 3f810e2 coreutils: use new update-alternatives 92482cb busybox: use new update-alternatives 6b20156 openssh: use new update-alternatives af3fc70 lrzsz: use new update-alternatives b607fa7 sysvinit: use new update-alternatives b630ee1 tinylogin: use BPN for alternatives ad0f8b8 patch: use BPN for alternatives 4547096 less: use BPN for alternatives 7818699 mktemp: use BPN for alternatives 1a6f679 sed: use BPN for alternatives 079f2fb shadow: use BPN for alternatives ae68cb6 time: use BPN for alternatives 1fa4e05 wget: use BPN for alternatives 4966bc5 which: use BPN for alternatives e4449c9 update-alternatives.bbclass: Change from using PN to BPN 6ac7e9b update-alternatives.bbclass: Refactor the implementation f28209d cooker.py: terminate the Parser processes fcd8021 image.bbclass: Ensure ${S} is cleaned at the start of rootfs generation 0254e8d glib-2.0: Clean up OECONF flags into one variable 37cf162 libxml2/libxslt: Don't depend on ansidecl.h header 54cdbe6 ltp: Add attr to DEPENDS list fed0638 binutils: Drop old/stale/broken csl recipe de0d55c wpa-supplicant: don't let postinst fail when dbus-1 reload fails d03e29f package.bbclass: Add additional debugging for dependencies 4f3f575 Updated distro-tracking-fields.inc f887fd6 lttng-tools: updated to 2.0.1 02b91db lttng2-ust: updated to version 2.0.2 2f4eb46 avahi: fix install issue bc56c04 make-3.81: fix build with automake 1.12 e9e2542 findutils-4.2.31: fix build with automake 1.12 dfbeec6 gawk-3.1.5: fix build with automake 1.12 58954a1 grep-2.5.1a: fix build with automake 1.12 8939db4 diffutils-2.8.1: fix build with automake 1.12 c170188 grub-0.97: fix build with automake 1.12 437f92c coreutils-native-6.9: fix build with automake 1.12 04bdcbe gmp-4.2.1: fix build with automake 1.12 2c90a0a libcroco: fix build with automake 1.12 204e2d6 libfm: fix build with automake 1.12 55e24a4 lighttpd: fix build with automake 1.12 244417d minicom: fix build with automake 1.12 a23a779 lrzsz: fix build with automake 1.12 133bff2 findutils: fix build with automake 1.12 2a952c5 glew: fix build with automake 1.12 625d974 libidn: fix build with automake 1.12 8d63ffe texinfo: fix build with automake 1.12 12f465d libcheck: fix build with automake 1.12 da1f0ef libmpc: fix build with automake 1.12 c4dde06 systemtap: fix build with automake 1.12 724f9ad libtasn1: fix build with automake 1.12 0d4d9bd shadow shadow-native: fix build with automake 1.12 2e45e31 libxml2: fix build with automake 1.12 85db7e7 rpm: fix build with automake 1.12 8512519 popt: fix build with automake 1.12 05fe6c0 mpfr: fix build with automake 1.12 fca50f0 gmp: fix build with automake 1.12 cd3c060 distro_tracking_fields: update information for ltp cfc882e ltp: Upgrade LTP to version 20120401 ed14592 fontconfig-native: Be clear about FILE search path 277f18e wpa-supplicant: add wpa_supplicant.conf to CONFFILES and don't install it twice 45e6085 dropbear: fix include dependent PR generation c071fd9 oe/process.py: remove it since it is unused and duplicated 70caf1e utils.bbclass: remove the unused oe_system bbd07d1 opkg-nogpg: add file path 7f3ac86 sudo: fixed wrong `chmod` path 6b48551 bitbake.conf: add EXTERNAL_TOOLCHAIN to BB_HASHBASE_WHITELIST af16b9f bitbake.conf: Improve wget timeouts b52dfa2 lib/bb/fetch2: fix comments for verify_checksum e6d9af1 bitbake/exceptions: Handle reports from the field of exception code failures 0b14db4 bitbake/utils.py: Ensure utils.which() returns full paths 2d3ff5e bitbake/cooker: Ensure matchFile returns full pathnames f3a5ad1 Hob:fixed the issue of primary button is not an 'orange hob button' 994ce7b BBHandler: Tweak some data store access methods to the preferred syntax 6558abd qemu: disable vnc-jpeg compression 9180d38 qemu.inc: Remove mesa-xlib as PREFERRED_PROVIDER f83cdef xserver-xf86-config: Add xorg.conf for arm,mips,ppc,sh qemu machines 71a4bf3 qemumachines: Enable xserver-xorg as default xserver bdb1585 Update to distro_tracking_fields.inc 8604b4c xf86-input-synaptics: upgrade to 1.6.1 088fdc2 xf86-video-intel: upgrade to 2.19.0 43eb69b xf86-video-vesa: upgrade to 2.3.1 09928db xf86-input-mouse: upgrade to 1.7.2 3398915 xtrans: upgrade to 1.2.7 2312e14 libxt: upgrade to 1.1.3 40d230b xcb-proto: upgrade to 1.7.1 47ade55 recordproto: upgrade to 1.14.2 7a1eb3c scrnsaverproto: upgrade to 1.2.2 9dbfc17 xcmiscproto: upgrade to 1.2.2 f02e412 xextproto: upgrade to 7.2.1 0541ed4 kbproto: upgrade to 1.0.6 87ca28b xproto: upgrade to 7.0.23 27b6eaa libdrm: upgrade to 2.4.34 37cceb5 mdadm: upgrade to 3.2.5 019b9e9 valgrind: Enable valgrind for armv7 52c9511 gawk: update to 4.0.1 24038ec jpeg: update to upstream version 8d 319b6f2 glib-2.0: upgrade to 2.32.3 9ab9c52 sanity.bbclass: check sanity at BuildStarted rather than ConfigParsed 9509ed4 sanity.bbclass: catch an extra exception in check_create_long_filename 3898d08 sanity.bbclass: add extra information when SSTATE_CACHE unusable 13a86cb sanity.bbclass: add newline to check_create_long_filename failure message 2e12fcf sanity.bbclass: data.getVar(VAR, obj, exp) -> obj.getVar(VAR, exp) 1983045 sanity.bbclass: copy the data store and finalise before running checks 6a4c55d Revert "sanity.bbclass: check user can read and write to SSTATE_DIR" e6de510 python: bump PR of packages after update of distutils.bbclass dc290d1 distutils.bbclass: don't delete .pyo files 3db1525 netbase: merge init script updates from upstream b099511 wpa-supplicant: fix packaging error since last commit a397644 libnss-mdns: fix postinst scripts dd42988 ppp: avoid host contamination fce38e5 libtool: fixed parallel build related race 5022c3e ncurses: Avoid occasional builling failure when having parallel processable task 76e1d4a eglibc: package mtrace separately bb4f829 rpm 5.4.0: respect to the arch when choose the alternatives 73538f5 package_rpm.bbclass: Fix incremental rpm image generation 66b0ece classes/base: add checksum file list at parse time 86d05a4 external-sourcery-toolchain: ignore GNU_HASH issues with its packages f60b4cb Rename 'external-csl' to 'external-sourcery' 844df77 tcmode-external-csl: preferred external-csl-toolchain's gdbserver 23fd086 gcc: Grok for callconvention-hard to enable hard float 0fdd04f eglibc: Add ARM hf dynamic linker support e108db7 gcc-4.7: Add knowledge about arm hf dynamic loader 49694d6 Hob: Adjust the progress bar and set 100% only when all is done. 799e076 build.py: Add support for log and run filename changes 63aaecb build.py: Add additional debug messages d0de551 build.py: Cleanup exec_func_shell c9e38ae build.py: Add a log to capture task execution order 094742b replace os.popen with subprocess.Popen 10a0f9e replace os.system with subprocess.call 358016f bitbake: support $BITBAKE_UI environment 8b8be74 bitbake: implement checksums for local files in SRC_URI d7b818b bitbake: refactor out codeparser cache into a separate class 644b30a Hob: fixed the issue about the 'run image' page should have the primary bug 3ee1cfa Hob: fixed the line width of base image description view 0d210ff Hob: fixed the issue about bug 'running image' workflow and related view 374ad22 Hob: change the build failure scenario as ui design 39a9267 Hob: add '--select a machine--' and '--select a base image--' to GUI 532f96d fetch2: quote/unquote url paths 5c880fb Hob: Get image name internally when updating the image description 7690c45 Hob: Add filter for images listed in image combo e069e53 Hob: reimplement the proxy page 33c4bf2 fetch2: Also exclude urls containing wildcards from checksumming for now 2219caa tune-mips64.inc: Add new tune file for mips64 big-endian 0d2b369 xserver-xorg: Fix build for mips64 21d5cf8 site/sh-common: Add missing caches variables to build glib-2.32 c141f96 netbase: Add interface files for qemumips64 and qemush4 f13ef77 runqemu: Add qemush4 and qemumips64 knowledge 4cbc27c libc-package: Add sh4 and mips64 to arch options 9ecb454 eglibc-2.15: Support mips64 8bc899a kernel-arch.bbclass: Map mips64{el} to mips KARCH efcd382 binutils: Default to n64 when configured for mips64 6174900 gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler fbfa7b7 site: Add mips64 eglibc and uclibc site files 8262a67 insane.bbclass: Add mips64{el} to known machines f99ac52 bb/fetch2/__init__.py: Don't try to compute checksums for directories b4c8c74 hob: update required pygtk to 2.22.0 and gtk+ to 2.20.0 f9bffca lib/bb/ui/crumbs/[package|recipe]selectionpage: include button f9aa3da lib/bb/ui/crumbs/imageconfiguration: fix combo boxes drop-down width 9e59dea lib/bb/ui/crumbs/hobwidget: use light text in HobIndicator 44a40f7 lib/bb/ui/crumbs/: replace custom HobNotebook 881b81f Hob:add function about clicked a row to load image file for 'my images' page e80c1a3 Hob: Apply a line length to consistantly display image descriptions 05330d0 knotty2: return exit code b0b9ee2 bitbake/fetch: Spell out which fetcher backends support and recommend checksums 311c68b bitbake/fetch: If checksums are available, check them for any file, local or remote 2f009e5 bitbake/fetch2: Improve visibility of checksum warnings when fetching from mirrors d993f17 bitbake/fetch2: Improve stamp creation in mirror code 2a167cb bitbake/fetch2: Remove hardcoded file removal and use clean method f24d8df sstate.bbclass: Make sure we don't have an empty fixmepath file 6d40b65 xserver-kdrive: Fix X server on PowerPC when built with GCC 4.7.x 0312f86 linux-yocto: policy cleanups 08a917a kern-tools: update LICENSE field to GPLv2 62c5e6a linux-yocto: intel BSP config changes 3e57b1d test-reexec: Add script to address issues when task re-execution f3c07ac multilib.bbclass: Added multilib specific package QA. 0b2bbda multilib.conf: Added multilib support for kmod. 8de572f (libc-)package.bbclass: Added MLPREFIX to locale packages. b7c1ac8 Revert "kmod: Use base_libdir for installing libkmod" 64a5952 xserver-xorg-lite: disable xmlto like full xserver-xorg does c2df43b sanity.bbclass: check user can read and write to SSTATE_DIR cedfe1d xf86-video-vmware: update package to 12.0.2 a97b9cb gnupg: Update to upstream version 2.0.19 3b481cc gnutls: update to 2.12.19 9477419 archiver.bbclass: Add two default set for avoiding error when missing assignment 441c1f8 meta/classes/sstate.bbclass: ensure sstate files have group R/W 6c0c7bb kernel.bbclass: add deploy link to KERNEL_IMAGETYPE 0c77200 oe.types: give the regex type more sane semantics caee064 csl-versions: fix bb.process.CmdError reference 8da5fa8 xinetd: Update to 2.3.15 d4e2656 poky.conf: Change WARNS -> ERRORS 4910f28 fotowall: Add #include ui_wizard.h to ExportWizard.cpp 120e295 expat: update to upstream version 2.1.0 961db45 classes/mirrors.bbclass: Point snapshot.debian.org mirror to working location f3ba3cb gdk-pixbuf: Fix lsb builds where dependency may be missing 9f930c5 tcmode-external-csl.inc: specify the path you couldn't find fd4516c tcmode-external-csl.inc: Allow for overrides 75fcc7c sstate.bbclass: Optimize the generation and install path fixups d09e4df bitbake.conf: Add CCACHE_DIR to BB_HASHBASE_WHITELIST e50ecfb tcmode-external-csl: handle TUNE_PKGARCH=core2 7cf5fce tcmode-external-csl: avoid hardcoding a list of ia32 archs ee245bd tcmode-external-csl: drop unnecessary cppflags/ldflags cf0db01 gdk-pixbuf: Allow empty -xlib package 4416232 runqemu: replace bashism with working shell idiom 389de8a ofono: Add python-pygobject to ofono-tests package DEPENDS 12b4543 classes/rootfs_*: fix splitting package dependency strings 63ccc3f lib/bb/siggen.py: ensure dumped signatures have group R/W fb7fa01 lib/bb/siggen: use open() rather than the file constructor 09b231d bitbake/tests: Add test of the git fetcher 36462d5 bitbake/fetch2/git: Set a default for the GITDIR variable 279d0af bitbake/fetch2/git: Don't set the branch name to None, that makes no sense d93e43a gdk-pixbuf: Drop unneeded RPROVIDES c73779d package.bbclass: Drop dubious use of packages[0] from do_split_packages and do_split_locales 8da9bbf oe-buildenv-internal: Fix BITBAKEDIR changes to work with existing autobuilder scritpts e63b179 xserver-xorg: Fix build on powerpc 350a459 Add option to oe-buildenv-internal script to change bitbake location. c08ee52 kernel-yocto: export GUILT_BASE to devshell a246af9 package.bbclass: Drop EXPORT_FUNCTIONS use against mapping_rename_hook a50af4d .gitignore: add /bitbake to the ignore list for external distributions 7816563 e2fsprogs: fix packaging error for libext2fs b85bbc5 sstate.bbclass: Improve sstate_installpkg performance 31122b0 gdk-pixbuf: Add --with-x11 when building lsb image f755582 task-core-lsb: Add libgdk-pixbuf-xlib to core-image-lsb 95be1d6 eglibc: fix build with poky-tiny distro 49afb62 typecheck.bbclass: update per current variable typing code 539849c uclibc.inc: uclibc rtld does support GNU_HASH 2e1974d eglibc: Add patch to fix /var installation location b88a0e5 sanity.bbclass: Detect empty $PATH components too 4ba6a86 blacklist.bbclass: Refactor, use PNBLACKLIST[pn] 8664248 blacklist: fix typo in name 710f12e h264_qpel_mmx.patch: fix Upstream-Status tag 59ca57c bitbake/runqueue: Drop check_stamp_fn, it's obsolete and should not be used be4f8e3 bitbake/runqueue: Drop check_stamps function, it is obsolete and unused d48d8aa bitbake/runqueue: Fix 'full' stamp checking to be more efficient and cache results 4a2147f runqueue: drop unnecessary keys() in runqueue_process_waitpid e2c58b4 runqueue: handle task exit due to signal/stop 6841abd Hob: change the workflow about click 'Run Image' to run directly after builded a qemu image 71b277a Hob: add group number show and 'bold' visible effect for Package view a75562a Hob: add original url show function with the tooltip hyperlink for user cb9be92 Hob: change the refresh icon speed to make it view clear 54a1cf2 eglibc: Add patch to fix /var installation location 9e26382 libc-package.bbclass: Add MLPREFIX while dynamically set RDEPENDS c772981 image_types.bbclass: redefine EXTRA_IMAGECMD_jffs2 to leverage siteinfo 3c97806 zlib: upgrade to 1.2.7 3eff636 guile: upgrade from 2.0.3 to 2.0.5 1e6c116 openssl: Fix build for mips64(el) 36784da sanity.bbclass: Implement initial toolchain sanity checks 87b6197 qt4-graphics-system: set graphic system in profile instead of X11 session f92f71c libatomics-ops: Make it build for SH4 bc84461 kmod: fix upgrade path from module-init-tools 6b5dbc8 kmod: Use base_libdir for installing libkmod 7f5e732 kmod: Update to .8+ release 8880407 kern-tools: fix do_patch errors d36a73f kmod: include libkmod also from libdir b186795 meta-yocto/linux-yocto-3.0: update branch mappings for new tools bdc258e linux-yocto/3.0: mm/msync: tweak tmpfs patch for syscall msync 987c558 kern-tools: integrate minor fixes 921e67b linux-yocto: streamline support for multiple upstream repo types 6636f84 linux-yocto/3.2: configuration and pch merge 38467c4 pango: Fix modules load failure in multilib environment c4a7a24 openssl: fix incorrect INC_PR 87741fd xcb-util-image: Add missing dependency on xcb-util b0adc50 sed: Explicitly disable acl for deterministic builds dd28963 libgdbus: delete from oe-core 110511c libsoup: delete from oe-core 4a15868 xeyes/pong-clock: Update recipes 67f6baa meta-demoapps: Remove except for xeyes and pong-clock 71e56f8 evolution-data-server: delete old 2.20.0 version fb129e0 evolution-data-server: delete unused patch parallelmake.patch cf4f260 dbus-glib: bump PR to rebuild after glib upgrade 4b88d37 distro_tracking: updates for upgraded recipes cc9b58e opensp: upgrade to 1.5.2 e11c495 openssh: upgrade to 6.0p1 6497821 qt4: move functions from python to shell style 38da655 glib-2.0: Fix issues with libelf dependency creeping in 1826196 connman: Disable tist plugin on powerpc f22cf1b image.bbclass,kernel.bbclass: Use kmod-native instead of module-init-tools-cross 884c7c6 module-init-tools: Delete bc2c2fe kmod: disable man pages generation because we don't have working xsltproc b4bc0a7 kmod: Add recipes 7903a28 libsoup: Fix for glib-2.0 2.32.2 22f682b libgdbus: Fix for glib-2.0 2.32.2 9355a8e evolution-data-server: enable deprecated glib API 3ea2db0 libsoup-2.4: upgrade to 2.38.1 b072f0c gobject-introspection: upgrade to 1.32.1 825e42f glib-2.0: upgrade to 2.32.2 2dc8246 glib-2.0: upgrade to 2.32.1 feee16b site/arm-common: alignment values for guin32, guin64 and unsigned long 3cd886a site/powerpc-common: alignment values for guin32, guin64 and unsigned long 7fecfa9 site/mips-common: alignment values for guin32, guin64 and unsigned long 7a49d88 Hob: Clear the building status if command failed b478649 bitbake/tests/fetch: Add simple http fetcher tests d4d4aab bitbake/fetch2/wget: Add fallback/default wget commands c77bcfb bitbake/fetch2/wget: Remove unneeded function indirection and reindent 3d74d5e bitbake/fetch2/wget: Remove unnecessary use of OVERRIDES c9da0e3 bitbake/fetch2: When unpacking, only use PATH variable if its set 2605ca1 bitbake/fetch2: Remove WORKDIR reference, should use passed parameter 3b78ad8 yocto-bsp: clarify help with reference to meta-intel c0d92e5 yocto-kernel: use BUILDDIR to find bblayers.conf db89f18 poky.conf: use correct version string for Ubuntu 12.04 203231f initrdscripts: Update install.sh to work with mmc devices c048ff9 runqemu: be sh neutral 56f243e runqemu: minor tweaks 215a1ea runqemu: add and use error() 987bc36 runqemu: simplify process_filename() e99f652 runqemu: use modern, single-char name of test(1) 97482d6 runqemu: Use OE_TMPDIR 0ff3fa7 gcc-4.6: disable cloog, change syntax to disable ppl 722d74e uclibc: Return correct endianness for mips64 23d1498 terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variable 7b07812 conf/machine: Clean up configuration values. 7f11bbb bitbake: Fixup bitbake-selftest 12ebec4 bitbake: Add start of bitbake regression/self testing 2ee0d3f connman: enable TI shared transport plugin when wifi or bluetooth are requested f60cdd4 busybox: port improvements to simple.script from Debian (udhcpc) 84eb62d busybox: remove unused patches for simple.script (udhcpc) 97911d3 gcc-4.6: explicitly disable ppl 3fd5d4d buildhistory: fix multiple commit of images and packages at the same time dfd0116 bitbake/utils: Convert vercmp_string() to use vercmp internally 1c34d58 bitbake/fetch2: Fix spelling error in network access error message ca8e06e fetch2/git: Allow file:// URLs without checking for network access 2e9bb9d gcc-package-target: add libexec for plugin 0de1832 kernel.bbclass: move kernel-vmlinux up in PACKAGES 76551e0 runqemu: Fix TAP='TUNSETGROUP: Invalid argument' by falling back to tunctl -u e8005eb qt-4.8.1: fix creating /include directory in build host root 1cd72bd qt4: fix compilation issue c9e9d8b site/ix86-common, site/x86_64-linux: alignment values for guin32, guin64 and unsigned long 74f4223 gtk-engines: fix build with glib-2.32 d3e0f1f nfs-utils: don't try to unload nfsd module faf1a72 pulseaudio: disable tcpwrap by default 5e77a84 builder: Add Please Wait Dialog Box 188dff3 gnutls: Update to 2.12.18 68eadb4 xauth: Update to 1.0.7 a46a711 bigreqsproto: Update to 1.1.2 02a0202 xkbcomp: Update to 1.2.4 15c1c20 mc: Update to 4.8.3 034cebe util-linux: Update to 2.21.1 6362e9c cairo: Update to 1.12.2 db62a4f xhost: Update to 1.0.5 667ef5b xmodmap: Update to 1.0.7 fa7cd14 libtasn1: Update to 2.12 0d47891 resolvconf: Update to 1.65 0432cc1 distro-tracking: update as per recent recipe upgrades 7b08f6a9a1 python: upgrade from 2.7.2 to 2.7.3 4f4ab8b gdb: upgrade from 7.4 to 7.4.1 d911601 quilt: upgrade from 0.51 to 0.60 754667c makedepend: upgrade from 1.0.3 to 1.0.4 8dbb577 tcmode-external-csl: use the existing precompiled locale files 9c62f63 libc-package: rework ''precompiled' locale handling b9918a3 tclibc-eglibc: drop hardcoded locale-base-en-us/en-gb 1fbde90 external-csl-toolchain: update SUPPORTED to match toolchain fa51417 external-csl-toolchain: cleanup, simplify, use base_libdir 6b20562 external-csl-toolchain: silence .a/.debug QA warnings 6826ffe external-csl-toolchain: split out a libstdc++-staticdev package c44aca8 csl-versions.inc: capture version in signatures df91469 base.bbclass: use isinstance for base_eventhandler 5d540ca bitbake.conf: shift build config summary control to here b877b1a libsndfile1: use PACKAGECONFIG for alsa distro feature a8bd795 libpcap: use PACKAGECONFIG for bluetooth distro feature f855c3e distcc: use PACKAGECONFIG for x11 distro feature 67228ab mesa: add missing flex-native/bison-native deps 98f21d6 create-recipe: base on autospectacle.pl to create recipe file a5e76f3 autospectacle.pl: pull it from meego as a base 845bcf0 libgcc: Add MLPREFIX to sanity check skip d89f7b9 documentation/Makefile: Fixed figures publishing bug 004a1f3 documentation/yocto-project-qs/yocto-project-qs.xml: added quotes 44be9bf documentation/dev-manual/dev-manual-kernel-appendix.xml: grammar fix 96645d1 documentation/dev-manual/dev-manual-kernel-appendix.xml: Removed KMACHINE 257fd0d documentation/dev-manual/dev-manual-kernel-appendix.xml: updated KSRC a22b2a8 documentation/dev-manual/dev-manual-kernel-appendix.xml: added quotes 71f8025 documentation/dev-manual/dev-manual-kernel-appendix.xml: kernel machine update c6a0cc9 documentation/dev-manual/dev-manual-kernel-appendix.xml: 3.0 to 3.2 ec4cb41 documentation/dev-manual/dev-manual-kernel-appendix.xml: formatting fix 6a415d2 documentation/dev-manual/dev-manual-kernel-appendix.xml: altered example 505e125 documentation/dev-manual/dev-manual-kernel-appendix.xml: updated cpuinit 5a4dc0f documentation/dev-manual/dev-manual-kernel-appendix.xml: output updated 9c6e16d documentation/Makefile: Added denzil specific .PNG file logic db3de06 documentation/dev-manual: New figure just for denzil 7fd4991 documentation/dev-manual/dev-manual-bsp-appendix.xml: updated hddimg example 9770d73 documentation/dev-manual/dev-manual-bsp-appendix.xml: BBLAYER update 8596fb0 documentation/dev-manual/dev-manual-bsp-appendix.xml: wording updated fbbe63c documentation/dev-manual/dev-manual-bsp-appendix.xml: mymachine.conf d5198e6 documentation/dev-manual/dev-manual-bsp-appendix.xml: recipes-kernel update 3f9f899 documentation/dev-manual/dev-manual-bsp-appendix.xml: 3.2 for 3.0 e96c33b documentation/dev-manual/dev-manual-bsp-appendix.xml: added layerdepends c7f56de documentation/dev-manual/dev-manual-bsp-appendix.xml: changed kernel 5b1738e documentation/dev-manual/dev-manual-bsp-appendix.xml: Output updated 726c279 documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable 1abb969 documentation/dev-manual/dev-manual-bsp-appendix.xml: Added link 6f74c60 documentation/dev-manual/dev-manual-bsp-appendix.xml: typo corrected. 4d62356 documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable 23eff79 documentation/dev-manual/dev-manual-model.xml: Fixed a bad link title. 52e4e82 documentation/dev-manual/dev-manual-model.xml: Better wording. b85c4e5 documentation/dev-manual/dev-manual-model.xml: Added BitBake b374926 documentation/dev-manual/dev-manual-model.xml: Fixed poor references. 065d5e3 documentation/dev-manual/figures/kernel-overview-3.png: Removed file ab62371 documentation: release-specific figure needed for denzil in dev-manual 8cd58de documentation/dev-manual/dev-manual-model.xml: Wording change 7166e7d documentation/dev-manual/dev-manual-model.xml: Updated wording for list 2ffb797 documentation/dev-manual/dev-manual-model.xml: BSP Layer step updated 2329826 documentation/dev-manual/dev-manual-model.xml: Fixed link 8273cc0 documentation/dev-manual/dev-manual-common-tasks.xml: Font corrected. 6830a21 documentation/dev-manual/dev-manual-common-tasks.xml: Section name fixed. 6fe0548 documentation/dev-manual/dev-manual-common-tasks.xml: fixed path 6adda78 documentation/dev-manual/dev-manual-common-tasks.xml: link and output fixed 6f588de documentation/dev-manual/dev-manual-start.xml: shell output examples updated d485185 documentation/dev-manual/dev-manual-start.xml: updated output for bare clone 661acae documentation/dev-manual/dev-manual-newbie.xml: Tag example fixed 88b3ff0 documentation/dev-manual/dev-manual-newbie.xml: Fixed branch example 0bb47e8 documentation/dev-manual/dev-manual-newbie.xml: Link added for TOPDIR c8953cc documentation/dev-manual/dev-manual-intro.xml: Hob and BA added 491b291 documentation/dev-manual/dev-manual-start.xml: Misc fixes 5bcbfdb documentation/yocto-project-qs/yocto-project-qs.xml: Package requirements 0cd29aa documentation/dev-manual/dev-manual-common-tasks.xml: Fix cusomizing example 0c243d3 Update version to 1.15.2 (correspdoning to Yocto 1.2 release) ba27fd8 eglibc-package: remove /var 5ef8c0b Fix a couple of missing Upstream-Status 84fe5c0 distro_tracking_fields: Change for ofono, iptables, etc 2227c5f alsa-tools: update to 1.0.25 e3a5089 opkg-collateral: import fixes from OE-Classic 275c2f8 opkg-utils: bump SRCREV for Packages cache fix and other fixes 76546d1 xorg: add more native BBCLASSEXTENDs from meta-oe 60e2345 busybox: Pass HOST_CC_ARCH through CONFIG_EXTRA_CFLAGS cde6bce gdb: Add support for building gdb target for SH4 cc18e7c pcmanfm: Add sh3/sh4 to supported hosts b11dc75 gcc-cross.inc: Fix cross testing script 3391541 gdb: Dont need lttng-ust for SH4 551f5d1 musicbrainz: Specify libpthread on cmdline for uclibc 1797037 gettext,m4: Add -lrt to LDFLAGS for uclibc d1dfd24 glib-2.0: Dont disable iconv for uclibc 2baaea2 uclibc-0.9.33: Update to tip of 0.9.33 branch 2fc2dba uclibc-git: Update to latest git tip df13d07 tune-sh4.inc: Fix spelling of big-endian feature set 88bb7ce ofono: upgrade to 1.6 813bbb8 iptables: upgrade to version 1.4.13 2e14c61 bluez-hcidump: upgrade to version 2.4 39ead67 telepathy-glib: upgrade to version 0.18.1 0597a49 telepathy-mission-control: upgrade to version 5.12.0 3d3726a gst-fluendo-mpegdemux: upgrade to version 0.10.70 f39ba52 qt-4.8.1: Fix compile failures on qemux86 c2e4b5d tcl: fix target recipe build issue on older distros 9da5a7b tcmode-default.inc: Update to eglibc 2.15 everywhere 4a0c704 package_rpm: Only rebuild the indexes if the packages have changed 53cf1a8 xorg-app: Use ${libdir} and ${datadir} for packaging. e38bc26 avahi: not using hard coded libdir. 3ed11d6 popt: Fixing pkgconfig file installation issue. 7670afc qt4: Make 4.8.1 the default version 6723f6b qt4: Add missing patch headers 69dc3c3 Qt 4.8 GCC 4.7 fixes e3bafe8 xf86-video-vesa: Add recommendation for xserver libint10 module which this driver needs b67fccc package_rpm.bbclass: Replace shell provides/requires script with python version c1c9144 mesa: Fix mklibs patch to simply remove troublesome uname usage 36361c0 tcmode-default.inc: Default to gcc 4.7 0611c3c gcc-package-sdk: Package plugin files generated by gcc-4.7 8250ca8 gcc-4.7: Do not use --with-header option for cross-gcc 9f32853 gcc-4.7: Let cpp specs honor include searches in relocated install tree 8e6a742 gcc-4.7: Use full relative path in require directive 38e961a libgcc-4.7: Package libgcov nativesdk correctly 79a5da9 gcc-4.7: Lower the internal consistency check level to release 529173a gcc-4.7: Disable cloog and ppl 4155ed4 gcc-package-target: Add the dangling files to specific packages e6716c5 gcc-crosssdk-intermediate: Use --with-native-system-header-dir for 4.7 0e70f54 gcc-cross-canadian_4.7.bb: Override ARCH_FLAGS_FOR_TARGET e06d1f2 gcc-4.7: Define own do_configure_prepend aafa590 gcc-4.7: Add recipes 173f424 gcc-configure-common.inc: Use libc-uclibc override 1dd0545 gcc-4.6: Specify complete paths in require directive 85f8b5c gcc-4.6: Remove redundant overrides 271e4e0 libgcc_4.6: Package libgcov nativesdk correctly 9ce94ea gcc-configure: Render --with-local-prefix harmless f7337ee gcc: Stash the gcc-cross builddir to reuse in libgcc and gcc-runtime f66cc57 gcc-configure: Pass distinct target flags 49aeaa3 tcmode-default: Use SDKGCCVERSION ?= "${GCCVERSION}" 71b78f0 classes: Add recipe class to overrides c47a869 netbase: Correctly set FILESEXTRAPATHS to include the version a3d15ff poky-floating-revisions.inc: Catch up with eds-dbus rename 844149d bitbake.conf: use TUNE_PKGARCH instead of TARGET_ARCH in SDK_NAME 8809f2b xev: move from meta-demoapps e3a6524 quilt: fix perl path in target perl scripts c2b663f boost: Ensure we use our user-config.jam file 391ffb0 uclibc SDK not including libpthread_nonshared.a 4129635 evolation-data-server: Rename from eds-dbus cc34134 u-boot: update 2012.04 to 2012.04.01 release 1b6cba6 u-boot-mkimage: update 2012.04 to 2012.04.01 release 967bd67 u-boot-fw-utils: update 2012.04 to 2012.04.01 release baf99e6 distro_tracking_fields: manual checks for some recipes 0f95925 runqemu-ifup: enable ip masquerading for QEMU NAT addresses 2874efa openssl: upgrade to 1.0.0i 34e6d29 libpng: upgrade to 1.2.49 949f0ac python: Add patch to avoid warning about sunaudiodev module 27cd16f python: Add patch to avoid warning about _tkinter 3d82844 python: Add patch to avoid warning about bsddb module 1174fa7 python: Add patch to search for db.h in inc_dirs and remove warning fcb368f python: Add patch for 64bit platform 77a3de5 boost: set python-root correctly 931910c {kernel, module}.bbclass: don't run depmod for module packages during do_rootfs d7a6e09 kernel.bbclass: unify white spaces 03d978b kernel.bbclass: merge uboot_mkimage improvements from meta-oe 7ad4936 utils.bbclass: Testing via env in create_wrapper is a nice idea but breaks things 0816a3f libproxy: fix compilation with gcc 4.7 e79ecb1 distro_tracking: manual check updates fb65e5b u-boot: add 2012.04 release 8545bea u-boot-mkimage: add 2012.04 release 79591eb u-boot-fw-utils: add 2012.04 release 01d57e6 u-boot.inc: fix compilation when using 'gold' as linker 8f0517a dpkg-native: fix deb-based rootfs construction failure on Fedora 16 2b05d35 bootimg.bbclass: Tweak iso images to become hybrid images c65dc38 kernel: Fix packaging issue 8b6f915 distro_tracking: Update Manual Check 74b77be sqlite3: Upgrade to 3.7.11 6acd250 lame: Upgrade to 3.99.5 db6a6e7 sysstat: Upgrade to 10.0.3 b4d6ced quilt: move empty quiltrc to native sysconfdir 67fbab3 gcc: Add plugins package for ARM, fix /usr/incude packaging 08920d7 xserver-kdrive: Add xkb to existing docs list af7caf9 libgcc: Package additional *crt*.o files for PPC 96268a4 binutils: add embedspu for ppc builds 898e1bf bluez4: make alsa support conditional upon DISTRO_FEATURES b890955 bdwgc: Set ARM_INSTRUCTION_SET to "arm" c312cf7 qt4-x11-free: enable -accessibility and -sm 688b1ca gthumb: Disable parallel make for gthumb install 6a39076 console-tools: Use update-alternatives a253b0e kbd: Use update-alternatives 469a4b9 gzip: Use update-alternatives class 46ffeed findutils: Use update-alternatives f264a10 shadow: Use update-alternatives f517fb8 net-tools: Use update-alternatives f8d6a50 hdparm: Use update-alternatives 967442e wpa-supplicant: move wpa_passphrase to bindir 81c02e0 wpa-supplicant: remove unused files 84fce2a python: use PKGSUFFIX for libpython2 4b3edb9 connman: backport test script fixes c85de4b connman: Fix linking with gold linker 3fd422e augeas: Add libxml2 dependency 9f17530 automake: upgrade from 1.11.2 to 1.11.3 54a6f84 qt4: move from 4.8.0 to 4.8.1 343c85f libusb*: import native support from meta-oe e910451 pango: import native support and --disable-introspection from meta-oe e1d82bf tiff: import native support from meta-oe 009fa28 cairo: import native support from meta-oe 6ae4d4f pixman: add native support and perl-native to DEPENDS from meta-oe 1408f19 librsvg: import native support from meta-oe 755256c xcb-util-render: Add recipe that provides libxcb-render-util 43ed8bb xcb-util-image: Add recipe that provides libxcb-image. fdc948f xcb-util-keysyms: Add recipe that provides libxcb-keysyms. 3bf4f5b xcb-util-wm: Add recipe that provides libxcb-icccm and libxcb-ewmh 99f4b6f xcb_util.inc: Remove packaging and modify SRC_URI for multiple ${BPN} names 2a4ccf5 xf86-input-evdev: Upgrade to 2.7.0 8e1d23d xf86-input-vmmouse: Upgrade to 12.8.0 c45085e xf86-video-vmware: Upgrade to 12.0.1 492a58c self-hosted-image: Update poky revision to point at the 1.2 release branch cd591cc self-hosted-image: Update poky revision to point at the 1.2 release branch f6864c1 sanity.bbclass: Add a new case to issue sanity_check() 2a6e1b0 Hob: Issue sanity check after parse is completed 544553b Hob: Add proxy setting into setting's md5 86abb36 event.py: Add SanityCheck and SanityCheckPassed events f52d2dc self-hosted-image: Update poky revision to point at the 1.2 release branch bd4b249 pseudo: PR bump. f79aa01 documentation: Updated Manual Revision Tables again. fd7c1df documentation: Replacements for "1.1" and "edison", etc. 564e311 documentation: Manual Revision Tables updated 73a2db9 documentation/yocto-project-qs/yocto-project-qs.xml: Added Build Appliance 1450c9e documentation/dev-manual/dev-manual-common-tasks.xml: removed kernel26 6b64283 documentation/poky-ref-manual/ref-images.xml: added link 4029726 scripts/hob: disable sanity checks when launching 4a22431 sanity.bbclass: add variable to disable the sanity checks 3639c6a python: Fix various contamination issues leading to broken/missing c modules 1ee9588 bitbake.conf: Add a STAGING_BASELIBDIR variable that recipes can use to find base_libdir 7ddb8c8 hob: enable sanity checks after launch fb0d7fc self-hosted-image: Update poky revision to point at the 1.2 release branch 9018cc1 poky-tiny: Drop now unneeded DISTRO_FEATURES_LIBC_TOOLCHAIN (after gettext fix) 939e694 initramfs-live-boot: Disable unionfs until its issue with the system rootdir are resolved 604fc2a pseudo: Drop nativesdk wrapper and link against old memcpy symbol ea3db01 pseudo: Fix bashisms 6123ee0 package.bbclass: Ensure kernel modules get stripped 6e5cb40 gettext.bbclass: Ensure we don't overwrite other DEPENDS_GETTEXT values a4d913d qemu: Backport a patch to solve SSE2 instruction emulation issues 1a03b7d documentation/bsp-guide/bsp.xml: spelling corrected. 16645cc documentation/poky-ref-manual/ref-images.xml: Added self-hosted image 8da833f self-hosted-image: Update poky revision to point at the 1.2 release branch 647238f poky.conf: Update post release branching d233c90 packageinfo.bbclass: A workaround for RPM architecture renaming b765139 lsb: Fix PR bump, fix bashisms, correct dependency issue, tweak package description d220e07 classes/sanity: import regular expression module in SuSE distro check f4eed2b classes/sanity: trim trailing newline when reading /etc/redhat-release d73e41f conf/distro/poky.conf: set SANITY_TESTED_DISTROS 5b78c7d libproxy: remove dependency on gconf when x11 not in DISTRO_FEATURES abddce3 qemugl: make postinst run at first boot a8c668c self-hosted-image: remove BB_NO_NETWORK and update Poky SRCREV 9656762 task-self-hosted: Add LSB for distro info 8e53c8c lsb: Add DISTRO Info to /etc/lsb-release file also add util-linux to DEPENDS 375e950 linux-yocto/meta: remove kernel config audit warnings a230410 linux-yocto/meta: beagleboard: disable CONFIG_PREEMPT 0f8c8c8 linux-yocto: .diff is a valid patch extension bb29296 matchbox-wm-2: Fix incorrect update-alternatives fcd707e lrzsz: sz, sx and sb were linked incorrectly 20ff9db lib/bb/ui/crumbs/recipeselectionpage: fix type availabel->available 720fe9e meta-yocto: remove kernel26 machine feature usage 8e0751a yocto-bsp: remove kernel26 machine feature from templates b9553be libproxy: Allow to build in non-gplv3 configuration 80e7bb8 gst-plugins-bad: Add missing PR bump after curl change ad229f8 qemu: Disable curl explicitly, its not in DEPENDS 1e190ee sanity.bbclass: If the sanity tests fail, don't mark them as complete 8cc3b24 perl: fix re-execution of compile task 6004dc8 avahi-daemon: fix missing init script links 04d6aa1 bitbake-layers: hide deprecation warnings 993c467 hoblistmodel.py: description for selfcreated image 139a91d Hob: Set the "stop" button insensitive before hide it c50d8b7 Hob: Enlarge the upper value of image size c276557 data_smart: Improve the calculation of config hash a6820f4 documentation/dev-manual/dev-manual-common-tasks.xml: Fixed example cf05f09 poky-tiny: Separate the libc features required for meta-toolchain c936fca bitbake.conf: Add PARALLEL_MAKE to BB_HASHBASE_WHITELIST a228051 libzypp: add libproxy to DEPENDS 51f9cb0 distrodata.bbclass: fix comment typo 5612bf3 flex: backport Debian patches to fix generated code warnings a5afc58 connman-gnome: fix segfault on connect b6cbf1e automake-nativesdk: fix builds on fedora 17 5934845 autoconf-nativesdk: fix builds on fedora 17 ca14115 glib-2.0: fix builds on fedora 17 b99e2f2 perl: fix re-execution of patch/configure 8046fd4 core-image-sato-sdk: typo in DESCRIPTION d2fca3d core-image-rt-*.bb: require munges DESCRIPTION 15b1606 autogen-native: Fix sstate relocation issue when reusing libguile 5326847 Hob: fixed a little view issue about package selection page e966ae1 Hob: add the parent window to 'binb' popup window for managing it 6d7aae9 Hob: fixed the issue that the notebook overlay-scrollbar is overlapped d5a9ff4 Hob: Fix contents in imagedetailsscreen e8ab6ab meta-yocto: Move OELAYOUT_ABI definition to poky.conf e737d01 bitbake.conf: Include abi_version.conf in a early stage d1eba59 Multilib: Fix RDEPENDS in libc-package.bbclass, useradd.bbclass... f139832 opkg-config-base/poky-feed-config-opkg: Always use ALL_MULTILIB_PACKAGE_ARCHS to build arch list d431ef2 dropbear: Allow tasks to be safely re-executed 388bae1 docbook-utils-native: Fix re-execution of the unpack task 23f4288 sgml-common: Fix re-execution of the compile task 469d73a wget: Fix re-execution issue ccc2b23 python: Fix re-execution problem due to patching configure and configure.in 2ddf7d3 gcc-configure-common.inc: Stop gcc looking at build system paths f580ac6 gst-plugins-bad: add curl as build dependency 239e8b9 net-tools: Fix do_patch to be re-executable dcaea14 man-pages: Fix to allow re-execution of tasks f562e2a pseudo: Ensure the correct libraries are used at runtime 5c006a4 unfs-server: Fix do_configure so it can be re-executed safely 2e01a44 Hob: add exception handling e3e6d2a Hob: Simplify the init process 74211e0 Hob: Handle NoProvider event in runningbuild module a5210e4 guile: Fix binary relocation issue for precompiled guile objects d979ee0 connman-gnome: connman 0.79 API fixes 9ff001c Hob: reset user recipe selection and package selection after settings are changed 62c908c Hob: remember layers and settings between Hob sessions 58544de grub: Add missing dependency on autogen-native to avoid build failures 4831503 distro_tracking: add entries for several new recipes c393309 distro_tracking: add some additional DISTRO_ALIASES d91b3f7 yocto-bsp: fix x86_64 tuning for qemu arch 0258ba5 yocto-bsp: fix multi-provider error in qemu arch template 774afe8 yocto-bsp: fix qemuarch test for xserver-xf86-config.bbappend 6f527e2 yocto-bsp: enable property value display of nested properties 0a4a757 mulitlib.bbclass: Ensure correct value of ALL_MULTILIB_PACKAGE_ARCHS is preserved 6ea6fac update-alternatives: Fix for compatibility with multilib recipes dc2192c external-poky-toolchain: This is broken and confusing now, remove it e024d40 Remove stray unwanted file 276b865 Hob: Use BB_DEFAULT_TASK as build task instead of hardcoded "build" fdb2027 Hob: Build selected image if not customized 83cc0a1 Hob: Save the original image name into template ac99863 Hob: A minor fix on tooltip 45da109 systemtap: Ensure FILESPATH is set so systemtap-uprobes can find patches 71b8383 eglibc: fix builds on fedora 17 alpha fae4509 grub-1.99: fix configure error 3d23afd grub-efi-native, grub: fix build with gcc 4.7 53d6294 grub-1.99: use gcc-cross for building the target binaries 7503db6 nspr: fix package spliting ffc9073 systemtap: disable document generation by default 3e3f774 systemtap: fix docproc build error ee71422 linux-yocto: allow .cfg, .scc, .patch and defconfigs to be processed in order 25b48c6 linux-yocto/3.2: add igb support to romley bc5d68e Revert "eglibc: fix perl path in target scripts on fedora 17 alpha" 60a7403 linux-yocto/meta-yocto: update hardware reference SRCREVs 04b16f1 rpm-native: Compile python rpm module (with-python) 5d41ccd package-index: Force NATIVE python to use modules from STAGING_DIR_NATIVE 132b12b createrepo: Python scripts should use the python interpreter from env 0d7b909 eglibc: fix perl path in target scripts on fedora 17 alpha cc69136 eglibc: fix re-execution of task 396da97 boost: fix re-execution of task 60cf19a PR bump packages with gdbm in DEPENDS 996308a gdbm: Package compat libs in gdbm-compat 54c6e07 Revert "default-distrovars: remove NO32LIBS setting" f09a5e1 opkg-utils: Update to include a fix for version comparision issues 22aac28 gcc-4.6: Add fix for relocation problem and ccache 7b22df2 default-distrovars: remove NO32LIBS setting 7cf26b2 pseudo: default NO32LIBS to 1 b4acabe base.bbclass: Fix PACKAGECONFIG issues with native and nativesdk BBCLASSEXTEND recipes (and multilib) 898bee7 mklibs-native 0.1.33: include unistd.h to fix build for gcc 4.7 100e3c9 rpm: Ensure that we check both providename and filepaths 554cac7 pseudo: Tell pseudo to avoid specifying an RPATH fb918fb Hob: Added required packages for toolchain. 811f7d8 bb.utils: Modifed vercmp() to meet Debian rules. 4997801 Hob: forbid users to exit Hob directly when Hob is busy 9c1dcdc Hob: Implement Hob config parse hook 302f2cc ConfHandler.py: Add a hook for config parsing 6703173 package_rpm.bbclass: Set tmppath for rpm to somewhere which won't conflict with the rootfs d74c5aa Hob: fix the missing functions c37faea libunistring: Fix parallel make issue b2ae65f linux-dtb: Ensure dtb files are covered by sstate d6031ba documentation/yocto-project-qs/yocto-project-qs.xml: Added CentOS 853c561 documentation: Run-through changes for 1.2 17c4134 documentation/yocto-project-qs/yocto-project-qs.xml: fixed URL a9be1ac poky.ent: Updating for coming release 58d2ff3 package_rpm.bbclass: Use the correct macros file to avoid empty solvedb path issues 7e5d41a packageselectionpage: add missing method 376bf4a builder: fix missing \ for if continuation 0923ee4 package_rpm: Fix useradd preinst ordering issues 9789ed6 hig/builder: use the new which_terminal() function 4be09ee ui/crumbs/utils.py: new file for choosing terminals eaf2994 distro-tracking: Fix syslinux NO_UPDATE_REASON 75a604b insane.bbclass: Add missing variable bpn 00a6199 "The suite of statements in a function definition executes with a local namespace that is different from the global namespace. This means that all variables created within a function are local to that function. When the suite finishes, these working variables are discarded." f03d66b python: multilib header support. b23b2b4 initrdscripts: fix init-live.sh and use unionfs 88b399b tclibc-eglibc.inc: make locale packages dependency conditional 6abc4c4 linux-yocto/meta-yocto: update hardware reference boards to v3.0.24 0f21f39 beagleboard.conf: fix hardcode of virtual/xserver 8c48ab6 poky-tiny.conf: adjust eglibc options for poky-tiny 06a7ffd python: Fix host contamination issue 5fb36b0 archiver.bbclass: Amend the problem for moving tarballs in ${DL_DIR} to ${DEPLOY_DIR}/source when enable archiver acdcb3c busybox: fix options -b, -a and -P 91a7702 classes/package_deb: create .gz index instead of .bz2 0dca188 task-self-hosted: Add vte and eglibc-gconv-ibm850 394445f boot-directdisk: remove the default setting of SYSLINUXCFG and SYSLINUXMENU 73aab2c connman: add ofono dependency. 9067f7b Hob:Fixed some incorrect values of Build configuration tab 6486d39 Hob: show those appliable buttons on the image details page only ccf4f76 Hob: forget selected_recipes and selected_packages after users change the machine 793058e Hob: add tooltips into image details screen 0043ed8 Hob: tooltip change for "Build image" button 59cd6a5 Hob: clean up and reword stop_parse() 62e5a4d Hob: clean up generate_configuration() 655476f Hob: clean up cancel_build() c5964a7 Hob: clean up request_package_info_async() 2176e14 Hob: clean up and unify get_parameters() to be get_parameters_sync() f511b8c Hob: clean up to call clear_busy() in hobeventhandler.py 21901e0 Hob: clean up and unify the steps for IMAGE_GENERATING to call generate_image_async() 35317bd Hob: clean up and unify the steps for PACKAGE_GENERATING and FAST_IMAGE_GENERATING to call generate_packages_async() and fast_generate_image_async() 47caae2 Hob: clean up and unify the steps for RCPPKGINFO_POPULATING to call populate_recipe_package_info_async() 27caa6b Hob: clean up and unify the steps for CONFIG_UPDATE to call update_config_async() 8d35341 Hob: clean up and unify the steps for new build to call initiate_new_build_async() e2c1092 Hob: correct indent 4495a73 Hob: Add the tooltips for recipe view page as request e1d463e Hob: add fadeout display effection for package view include page a46aafb Hob: add fadeout display effection for recipe view include page 9fd56fa Hob: Add an extra 50M space if zypper is selected 44b08a9 Hob: Fix tooltips in Settings dialog f9d7043 Hob: Fix tooltips in image configuration page 4c72ee9 Hob: Fix the pattern patch for image name c546037 Hob: Change base image to "Create your own image" if customized 0aff9a5 selectionpage: show persistent tooltips on click df64e7f lib/bb/ui/crumbs/[recipe|package]selectionpage: fixed width Included col 4cf1aa5 lib/bb/ui/crumbs/recipeselectionpage: include 'Group' in 'Included' view 49cd60e lib/bb/ui/crumbs: only display one 'Brought in by' item in Hob trees e5a63fd hob: update required versions of (py)gtk et al 0d001e8 lib/bb/ui/crumbs/hobwidget: replace new API b2fb7dd lib/bb/ui/crumbs/persistenttooltip: replace 2.22 API 0d5e808 diskspace monitor: assign a default value when only of the interval is set c0a812c documentation/bsp-guide/bsp.xml: Added a info about meta-intel layer ec33e21 documentation/bsp-guide/bsp.xml: Edits to intro sections 273e05b documentation/bsp-guide/bsp.xml: Added new section adc13fc hello-mod: Move hello-mod from meta to meta-skeleton 13d6210 syslinux: Update distro-tracking fields 5d3d753 at: Fix origin location of install pam.conf from from ${P} -> ${BP} c397384 gdb: add --with-libexpat-prefix 547cb70 opkg: Add the condition for the content of arch.conf when enable multilib aedff44 adt-installer: Fixed ppc kernel naming. a0ccc1f meta-toolchain: runqemu falied on FC16/Opensuse12.1 x86_64 b055040 git 1.7.7: remove perl.mak before compile c13afae grub-efi: Include GPT partition EXT FS support fe0b333 qemu: Fix gl failure from 64b target on 32b host c54831f shadow-native: disable logging to syslog 73e3fd8 mesa-common: package gl.pc in libgl-dev 177171c create-pull-request: Assume remote branch from local branch 190f6d7 runqemu-internal: Add console=tty for qemuppc and NFS 07c0a12 self-hosted-image: use Clearlooks theme 0f497f3 self-hosted-image: decrease reserved space to 0.5% 9198359 self-hosted-image: use the correct location of the file sudoers a405ca2 connman: Fixed multilib support. c7283aa package_ipk.bbclass: fixing muttilib prefix extracting. df21414 u-boot: add machine name to spl image name 885485f linux-firmware: keep version string in libertas firmware aed4211 package_ipk: don't generate Packages.filelist c9173da Hob: Modify Image Descriptions f4e2750 gst-plugins-base: fix build of subparse plugin d103dae syslinux: Avoid using linux.ext2_fs.h if possible 0dacda9 gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm 98291b5 Fix typo in user manual: "incarantion" -> "incarnation" cb63e37 scripts: Clarify "help" info for yocto-bsp and yocto-kernel 1cf4440 Hob: a minor fix on pmake 3d9f67c Hob: a minor fix on image_fstypes 0d76c5b Hob: avoid the empty white space appearing on top of the gtk.ComboBox 5cad18b Hob: unify _size_to_string() and _string_to_size() b9accbb Hob: handle exceptions when loading templates 36164b9 Hob: handle exceptions in get_parameters() from the bitbake 041cc16 Hob: Check "dummy" image while update_image_combo cda92e2 Hob: Remove the recipe/task type for multilib a84e353 lib/bb/ui/hob: exit cleanly if the required pygtk version isn't available d2402f6 Hob: reset issue indication and build status before build starts on build details screen 3d594b7 Hob: remove grab_default() for deploy button 17db387 Hob: add the "info" indication icon for "information" in the dialogs. c15d4a2 Hob: fix IMAGE_INSTALL setting while save template 7b56074 Hob: Fix toolchain build f414dbb Hob: Set stop button sensitive after task started 048aa0d Hob: Remove duplication for certain bitbake variables 20ea123 Hob: Remove some calling of initiate_new_build() 9cc1e86 Hob: Update the cache when setting changed c773211 Hob: Fix MACHINE setting 5607729 self-hosted-image: Increase space for build and allow builder user sudo access af74a8f conf/machine/include: Update SH tunings to match README 449dae1 conf/machine/include: Cleanup ARM tunings to match README 78e1a7c conf/machine/include: Cleanup PowerPC tunings to match README d328ae2 conf/machine/include: Cleanup MIPS tunings to match README d6e7ebb conf/machine/include: Cleanup IA tunings to match README 62331ff conf/machine/include/README: Add readme to explain cpu tunings c87b50e archive-patched-source.bbclass: Archive patched source db7f5c4 Remove redundant reference to "task-self-hosted" from self-hosted-image.bb ca0831d qt-4.7.4: Fix build with gcc 4.7 30b2b8f qt-mobility: Fix build with gcc 4.7 6228ba6 webkit: Fix build with gcc-4.7 0aaddbc archiver.bbclass: enhance code readability 6c73e45 eglibc packaging: locale packaging configuration 834a17d gcc-cross-intermediate: fix do_install for x32 8b797c6 package_{deb,ipk,rpm}: apply umask to files generated in do_package_write_{deb,ipk,rpm} 9ce92e4 copyleft_compliance: also print the reason for including a package 029f3c6 license.py: fix behaviour of copyleft_compliance 1dc560c license.bbclass: Check if copyfile succeeded with isfile fedad51 binutils: Inform binutils that armv5e really is valid! cd4d346 documentation/yocto-project-qs/yocto-project-qs.xml: Added CentOS distro 4c35d05 documentation/bsp-guide/bsp.xml: Patch to fix small issues 46600e3 elfutils: disable lzma (and bzip2 for native) 2c20a91 gdb: build with expat, add missing RRECOMMENDS_gdbserver 4fbc283 eglibc: SDK_GLIBC_ADDONS for eglibc-nativesdk. 7819e67 documentation/dev-manual/dev-manual-common-tasks.xml: removed MULTILIB_IMAGE_INSTALL 7ebbe69 documentation/dev-manual/dev-manual-common-tasks.xml: Edit to md5sum f64aae0 documentation/dev-manual/dev-manual-common-tasks.xml: Updated makefile section 12e5386 documentation/bsp-guide/bsp.xml: Added some front-matter 3c56658 documentation/bsp-guide/bsp.xml: Removed Note 23e8590 documentation/bsp-guide/bsp.xml: Edits to the BSP Tools section 0be0e3b documentation/bsp-guide/bsp.xml: New section on using BSP tools. 723c912 gettext: Fix sysroot conflict over owner of macros 5dcac2b gst-ffmpeg: Fix build failures from sstate relocation ce69eb9 gst-ffmpeg: Fix build with gcc 4.7 9d52646 apt: Fix a latent bug exposed by gcc 4.7 38ba438 tiny: Update linux-yocto-tiny to 3.2 126c5c0 linux-yocto: update tiny meta and configuration for kernel 3.2 2cf38f0 self-hosted-image: fix indentation: 8 spaces --> Tab ac10ef7 builder: uncomment the settings for BB_NUMBER_THREADS and PARALLEL_MAKE 5b9b6a4 self-hosted-image: renew the poky src's SRCREV that's installed into the target cf6b3fb self-hosted-image: improve do_populate_poky_src 79c806c genext2fs: support large files and filesystems without using large amounts of memory 84b7541 qemugl: Fix GL apps failure on Ubuntu 11 host with nVidia GLX driver 2592a11 buildhistory: make seperate commits for every changed top level entry in the buildhistory dir bcd3db5 buildhistory: record all builds 7e7600f buildhistory: remove duplicate entries from dot graph 869dfae linux-yocto-tiny: Prefer 3.2 6a11c78 README.hardware: extend USB-ZIP instructions 501f0da README.hardware for mpc8315erdb incorrectly specified a null modem serial cable 8691a58 cross-canadian.bbclass: fix rpath for sdk executables e008fc1 tune-cortexa8/9: fix PACKAGE tunes being all armv7at even for non-Thumb ones 1482da4 scripts/bitbake: add/fix some comments 43d819c scripts/bitbake: allow switching between build directories 299f890 scripts/bitbake: try harder to check if pseudo exists 6302003 nasm: fix issue with repeat configure 15e797c pkgconfig.bbclass: corrected dependency for -nativesdk. 6333c5f autotools.bbclass: Drop -nativesdk dependency to lib-cross. 3180dd2 crosssdk.bbclass: Set TUNE_PKGARCH to SDK_PKGARCH. 404cced nativesdk.bbclass: Set PACKAGE_ARCHS to SDK_PACKAGE_ARCHS. d55db7b bitbake/cooker.py: Bring into sync with upstream bitbake (trivial difference) 06fc2d2 documentation/dev-manual/dev-manual-common-tasks.xml: Title change 60d4892 documentation/dev-manual/dev-manual-common-tasks.xml: edits to BBMASK fdf7db7 documentation/dev-manual/dev-manual-common-tasks.xml: moved BBMASK d19c8c8 documentation/dev-manual/dev-manual-common-tasks.xml: moved section 3eb0125 docbook-utils-native: fix syntax problem in jw.in 5cdb58f virtual/libgl: use mesa-xlib for qemuarm/qemumips/qemuppc 899aa3f adt-installer: Adapted environment file name for powerpc. caf3f82 arch-armv7a.inc: fix PACKAGE_EXTRA_ARCHS after armv7.inc was removed 9cb1f86 gdk-pixbuf: Fix checksum warning issue 24f5fe8 sstate-cache-management.sh: fixes and enhancement debd5d5 rootfs_ipk: don't echo opkg-cl output to log.do_rootfs 525275d Hob: In building log page, fixed the issue about 'endpath' not clear when next to start build 984c23f runqueue: wait and deal with those <defunct> sub-processes as soon as they are os.killed() when "Force stop" 35acc9e lib/bb/ui/crumbs/hoblistmodel: fix sorting of RecipeListModel b9b0ff9 lib/bb/ui/crumbs/hobpages: change title from HOB to Hob 8c55365 Hob: tweak font sizes and layout bcd4d14 libc-packgae.bbclass: Add i686 support in locale_arch_options 1fd8c6f bc: use update-alternatives to make dc play nice with busybox dd4d49b gstreamer: Provide easy way to enable runtime debugging 3af7e95 runqemu: set console=ttyS0 when running with nographic option db4c830 qemu.inc: Use '+=' for IMAGE_FSTYPES 64d9976 knotty: Add back getTasks() call to ensure we don't repeat messges b5dad0e Hob: in build details page, change error icon to denied icon 2e6ea85 Hob: fixed the 'error' icon source picture and adjusted corresponding showed icon size f717cd6 Hob: some color style changes to make HobTabBar more close to visual design ad8fe62 Hob: make ORANGE to be the same as the color on the dialog 59ca1af Hob: Change "Just bake" to "Build image" as required 407c93d Hob: Change icon to error because parsing error is an error 1ea547c Hob: clear the building state after a successful build, as a failed build does 00e262e Hob: Replace "local.conf" in error message 1c3ff86 Hob: Fix the setting hash calculation f5fd769 Hob: Change the format to store image_fstype variable a8c0323 Hob: Remember user settings when reparse config e24f10e Hob: Update configuration after parsing d30b75f Hob: Inherit image_types.bbclass in set_user_config() 72bc345 Hob: Improve for init a new build 1da5045 command.py: Move triggerEvent to command async class f73ea0e Hob: Improve the matching for runnable machine type abcb2e0 Hob: Define a variable to store the image name and toolchain 345a2dd Hob: Fix adding duplicated meta-hob layer 8b26fdc Hob: Remove un-used signal and functions 71c1de3 lib/bb/ui/crumbs/hig: fix layers_changed test 57434b4 lib/bb/ui/crumbs: hob progress bar should not be red when user stops build 7463dd8 lib/bb/ui/crumbs/builder: allow user to cancel Layer selection dialogue c489990 lib/bb/ui/crumbs/hobwidget: change text sizes in HobImageButton 25e9e16 lib/bb/ui/crumbs/imageconfigurationpage: add extra space between widgets 366bf75 lib/bb/ui/crumbs/hobwidget: add padding to HobImageButton 19a5489 Hob: change some words in settings dialog to make them consistent 96be713 Hob: change some words on recipes screen and package screen to make them consistent 3ac86ce Hob: change some words on image configuration screen to make them consistent 2aa1468 Hob: change some words for build configurations on build details screen ff43873 Hob: add Templates and Settings on image details screen 3038c0c Hob: Set one of deployable images or runnable images as the default toggled item eeb0529 ui/knotty: Add a footer to the build output for interactive terminals as knotty2 UI 5b84c90 uihelper: Keep track of pids in execution order 3774cf0 license.bbclass: remove existing license.manifest before appending new data 331f7fa ghostscript: Fix remaining CP_ prallel make races 4d16bc3 bb.build: use relative log links, not absolute 4d9f4d6 rpm: Ensure we depend on file 016cf3f eglibc-2.15: Update SRCREV 241140d documentation: Added TBD entry to 1.2 manual history table. fef7a66 clutter: clutter_git is really clutter-1.8_git, rename eeab5b2 tiff: Make builds deterministic 7fcb7c4 gcc-cross-intermediate: Ensure we move the libraries from the correct location c39e0db ghostscript: Fixes for parallel_make 8b0bc59 Hob: allow users to setup the proxies 7990d36 Hob: fixed some not compatible places for make runningbuild.py can be reused by another application 26cce34 Hob: change the implementation way about get config info for building log 0443766 Hob: use hob icon checker to check the gtk icon for make the icon constaintly 278fcca Hob: change the recipe pasing error dialog icon from 'dialog-info' to 'dialog-error' b99680f Hob: fixed visually differentiate warnings and errors icon in building log 673a8f4 Hob: add refresh icon as ui request in building log ceee95e lib/bb/ui/crumbs/imagedetails: use secondary button style for 'View files' 9df6a79 lib/bb/ui/crumbs/imageconfigurationpage: ensure widgets stay positioned 58c1981 lib/bb/ui/crumbs: tweak build status display eba155d lib/bb/ui/crumbs: apply primary/secondary dialogue button styling 265903b procps: don't print error message with kernel 3.0+ f1f7680 powerpc e500: set -mfloat-gprs=double 9192e49 external-csl: add mapping for powerpc-nf 9e9d3d4 scripts/bitbake: Update to help rebuild pseudo-native c718c10 Pseudo: Update to 1.3 0ba97b4 local.conf.sample.extended: Add documentation of archive source code configuration 2f2ea4a zypper: Fix build with gcc 4.7 6515bea linux-yocto: support externalsrc builds c73d382 tune/armv7: Delete 7b01671 nspr 4.8.9: failed to build on x86_64 board c3c5e89 contacts.inc: conditionally install shema 21a314e contacts 0.9: failed to build 401129c image_types: remove duplicate setting of -i for inode count e195338 builder: Enable auto starting of Hob a58c372 vmdk: Update for direstdisk 337fbed boot-directdisk: Fix Block Calcuation d2e7d49 image-vmdk: Add symbolic link for a short named vmdk image a490a71 self-hosted-image: pre-populate the builder user with poky source 2e4ca98 gcc-cross-canadian: Clean non shipped empty directories. d3e0bee guile: Deal with hardcoded path issues 3787338 documentation/adt-manual/adt-eclipse.xml: Added new commander section d420de6 documentation/dev-manual/dev-manual-common-tasks.xml: Fixed link 75f5576 documentation/poky-ref-manual/ref-variables.xml: added CORE_IMAGE_EXTRA_INSTALL c3aef26 documentation/poky-ref-manual: Removed some deprecated variables. 738a9f6 documentation/bsp-guide/bsp.xml: README file not optional 5c0b281 documentation/bsp-guide/bsp.xml: Readme description edits e7cc307 documentation/bsp-guide/bsp.xml: Removal of certain layers d5318a3 documentation/poky-ref-manual: Typos fixed. 5df1753 documentation/poky-ref-manual/ref-bitbake.xml: Fixed directory name 45bfc3e documentation/poky-ref-manual: changed "STAMPS" to "STAMP" df7e75f documentation/poky-ref-manual/technical-details.xml: typo fixed. c5d91b1 rootfs_ipk: replace 3 opkg-cl calls with one in get_package_filename 46f4df3 classes: scons: add EXTRA_OESCONS dd61d59 archive-configured-source.bbclass: Archive configured source 0cc11b3 archive-original-source.bbclass: Archive original source 6dd4ddf archiver.bbclass: 6a99e0f package_rpm: Add srpm function to this bbclass b711d7b src_distributelocal.bbclass: Remove src_distribute_local.bbclass 34c9323 src_distribute.bbclass: Remove src__distribute.bbclass e4e1162 sourcepkg.bbclass: Remove sourcepkg.bbclass 2e3845c linux-yocto: common-pc: Add PCNET32 to the config cafb94f kernel.bbclass: touch .scmversion also in ${S} 53f1446 Fix empty file case that caused build error at do_rootfs 62547e7 speex: fix FILES variables db529f9 documentation/poky-ref-manual/development.xml: another env var clarification 15057c2 documentation/poky-ref-manual: cleared up environment variable ambiguity 264e597 documentation/poky-ref-manual/ref-structure.xml: Clearer reference to variable ceaf19f documentation/poky-ref-manual/ref-structure.xml: Clearer variable ref 4096fb2 documentation/poky-ref-manual/development.xml: Typo fixed. 453ec12 documentation/poky-ref-manual/technical-details.xml: Nitin's review 49c911f documentation/adt-manual: Edits to fix ADT manual for 1.2 per bug 2025 c3fe9d7 documentation/poky-ref-manual/technical-details.xml: new x32 section added. 4a0720f python: fix packaging dependencies on minimal systems 5b86fb0 image_types.bbclass: Define runnable and deployable pattern 951aa5e Various typoes fixed, all comments or output strings. 1b5c52f busybox: move watch to /usr/bin for compatibility with procps aff0f01 qemu: add fedora pkg names when build failed 1c0afb8 gcc-cross-canadian: Fixed packaging warnings. fb3e59c core-image-minimal-mtdutils.bb: Simple DESCRIPTION grammar fix. b8697c3 setserial: Correct LICENSE ec0681f common-license: Add ICU generic 709d179 common-licenses: Adding GPL-2.0-with-OpenSSL-exception 7fdf6b5 license.bbclass: Style guide compliance 1fffeb0 util-linux: Example of pkg level INCOMPATIBLE_LICENSE bdf2d94 INCOMPATIBLE_LICENSE: support for spdx and pkg licenses a3da6c3 license.bbclass: Whitespace standardization 5de2b70 license.bbclass: Add spdx mapping to GPL-1.0 bc709ae PPP: Remove leftover reference to "nylon" distro from PPP recipe. a80fc63 Hob: add build status labels in the build details screen to make it more close to the visual design fb7eb75 lib/bb/ui/crumbs: use a PersistentTooltip for the Brought in by information 2206679 lib/bb/ui/crumbs/persistenttooltip: ensure a reasonable minimum size 188cf89 lib/bb/ui/crumbs/persistenttooltip: layout tweaks 61f039d lib/bb/ui/crumbs/hobwidget: convert button styling logic to static methods d0bb6d2 lib/bb/ui/crumbs/builddetailspage: fix label on 'Back' button 61006cf lib/bb/ui/crumbs/hobwidget: HobAltButton different visual when insensitive 63defc9 lib/bb/ui/crumbs/hig: sort layers in Layer Selection dialogue 822af52 Fix typo: BB_NUMBER_THREAD -> BB_NUMBER_THREADS e9a5de6 Hob: Avoid getting TMPDIR in hardcode 64cb3cd Hob: Set empty DISTRO if "defaultsetup" is selected bc73876 Hob: runqemu and deployment functionality filter 9b4e160 Hob: Add a supported image type "vmdk" f83586f Hob: Fix the workaround to get image types 5098c96 Hob: Change the Hob initialization process 9d3620f Hob: Initial an empty label in recipeselectionpage.py a18a724 Hob: Cleanup for hobeventhandler.py 09b1609 Hob: Remove unnecessary PARSE_BBFILES command 1c19181 iptables: fix build error against 3.2+ kernel headers 6c77a0f taglib: Refresh patch after recent accidental breakage ac56e2e linux-libc-headers-yocto: move to meta-yocto 0233e6b libzypp: Fix buiild with gcc 4.7 0dd02a5 kernel.bbclass: don't create /etc/modutils/* caaa570 update-modules: update script to read /etc/modules-load.d/ directory c73e50a kernel.bbclass: fix extra + in kernelrelease 39439da kernel.bbclass: use better number for KERNEL_PRIORITY 42fbace kernel.bbclass: use symlinks for modutils files c6db496 kernel.bbclass: populate /etc/modules-load.d/ with module_autoload entries too 8132ac5 procps: use update-alternatives for pwdx, pgrep and watch b2c6e1e sysvinit: use update-alternatives for mountpoint and runlevel 180d7d3 ppp: drop unneeded pkg-postinst e86605c linux-libc-headers-yocto: remove from oe-core 12cd331 linux-libc-headers: set default LINUXLIBCVERSION to 3.2 e7a5236 linux-libc-headers: add 3.2 headers and remove 3.1 ad88a47 bitbake.conf: Add XAUTHORITY into config white list ada5a02 python: remove a target dependency ad5dd7d Hob: Change the descriptions for view_recipe_button and view_package_button 98fa27c Hob: add auto scroll to rows which be new appended in hob building log page f427bfa Hob: reset the policy to forbid the horizontal scrolling for building log 63648b9 lib/bb/ui/crumbs/builder: change dialogue title to Layers ac53520 lib/bb/ui/crumbs: make use of HobButton for existing primary action buttons 78fb409 lib/bb/ui/crumbs/hobwidget: add HobButton widget for the primary action 9dd7461 lib/bb/ui/crumbs: fix 'Back to image configuration' alt button text cef911e lib/bb/ui/crumbs: add colour for HobAltButton per visual design bad0a86 lib/bb/ui/crumbs/hig: tweak 'Add Layer' button per visual design d4a087f lib/bb/ui/crumbs/builder: only show a close button on the Layer Selector f76dcdb lib/bb/ui/crumbs: replace HobXpmLabelButtonBox with HobImageButton ce914a6 lib/bb/ui/icons: add new icons for use in Hob, autocrop some existing ones 3d69d94 bitbake/fetch2: Ensure mirror tarballs have .done stamps so we don't redownload and corrupt them 67c83a8 documentation: Updated all style sheets for down-sized notes. fd5c4cf documenation/dev-manual/dev-manual-model.xml: Hob section first draft 0f2f0f9 documentation/dev-manual/dev-manual-model.xml: Updated title 7c689aa documentation/dev-manual/dev-manual-model.xml: Blank Hob section added. f98621f documenation/dev-manual/dev-manual-model.xml: Hob added to Intro 40a45af documentation/bsp-guide/bsp.xml: Edits to BSP Licensing section 2e0b901 documentation/poky-ref-manual/technical-details.xml: Review comments 9d2974a documentation/bsp-guide/bsp.xml: Patch applied for Licensing 9332e39 documentation/poky-ref-manual/technical-details.xml: Licensed recipe edits 4a6e43c documentation/yocto-project-qs/yocto-project-qs.xml: Fixed bad git command 7f102ae documentation/yocto-project-qs/yocto-project-qs.xml: two typos fixed. b3d8c48 documentation/adt-manual/style.css: Added new style for Note headings db22f39 documentation/dev-manual/dev-manual-common-tasks.xml: Spell check. cb4b0aa documentation/yocto-project-qs/yocto-project-qs.xml: new expert section 3b95307 documentation/poky-ref-manual/technical-details.xml: Fix Checksums section f99aa94 documentation/poky-ref-manual/ref-variables.xml: New ALLOW_EMPTY variable 542d163 documentation/README: Updates to explain development 0f25a65 documentation/dev-manual/dev-manual-newbie.xml: Added to append term 221d439 documentation/dev-manual/dev-manual-common-tasks.xml: added link 73aea6c documentation/dev-manual/dev-manual-bsp-appendix.xml: minor edits. 802ac5e documentation/dev-manual/dev-manual-bsp-appendix.xml: removed quotes 058b00c documentation/dev-manual/dev-manual-bsp-appendix.xml: Added .bbappend 99c1eb5 documentation/dev-manual/dev-manual-model.xml: Technical correction 83141b3 documentation/dev-manual/dev-manual-common-tasks.xml: Minor edit. 9ba2e3d documentation/dev-manual/dev-manual-common-tasks.xml: minor edits. 1ebf41e documentation/dev-manual/dev-manual-common-tasks.xml: minor edits. 1fc825e documentation/dev-manual/dev-manual-common-tasks.xml: Edits to append files 5ad47af documentation/dev-manual/dev-manual-common-tasks.xml: fixed typo b059442 documentation/dev-manual/dev-manual-common-tasks.xml: Better .bbappend definition. 1c63d72 documentation/dev-manual/dev-manual-start.xml: Defined BitBake append file 333f776 documentation: Updates for [YOCTO #1717]. 6392dff documentation/dev-manual/dev-manual-common-tasks.xml: More edits to layer f202838 documentation/dev-manual/dev-manual-common-tasks.xml: Review edits 9bdc18a documentation/poky-ref-manual: Converted to use poky.ent variables. 9602c55 documentation/poky.ent: Fixed two variables d048a99 documentation/kernel-manual: Converted to use variables from poky.ent. aa3a201 documentation/dev-manual: Converted to use poky.ent e9c32b6 documentation/poky.ent: Added a new variable. 7c12cb1 documentation/bsp-guide: Converted links to use poky.ent variables. 45bc21c gdb-cross-canadian: Fix linking issues when python support is enabled bb1d7fa Revert "bitbake.conf/sstate.bbclass: Change PATH when installing sstate files to avoid issues" d95f6d0 pigz: Add update-alternatives support since this otherwise conflicts with busybox/gzip 7bbb893 mirrors.bbclass: remove dead kernel.org mirrors 8dbbbff sstate.bbclass: Remove possibility of file corruption and make package writing atomic 8350c03 gst-plugins: remove obsolete orcc hack ab69a16 scripts/combo-layer: handle diffs in commit messages fd3f7d5 scripts/combo-layer: limit component repo dirty check 6a44fcb pixman: disable iwmmxt c9537c5 useradd.bbclass: retry useradd/groupadd commands to avoid lock race issues c65d82a package_rpm.bbclass: ensure base-passwd and shadow get installed first 74ee8de libgcc: corrected -nativesdk package namings. 552eea2 nativesdk/misc: set PKGSUFFIX for correct variable name expansion. 065a9a6 ncurses: ship clear/reset in package. 7987452 gdb-cross-canadian: not shipping libiberty. a6ec59c pseudo: package the var/pseudo directory. 8447aa2 meta-toolchain: Popluated the libc siteconfig files. 5256a6b bitbake: Fix icon paths that were mismerged cc93f3e gst-plugins-bluetooth: Don't install headers, man pages or .pc files 5a6ded1 yocto-kernel: new script 4fdaf05 yocto-bsp: new script c01dec8 yocto-bsp: add some useful constants 095c80b yocto-bsp-tools: add help/usage 1e40e8a yocto-bsp: add kernel interface cd8182e yocto-bsp: add templating engine cf80db1 yocto-bsp-tools: add bsp library f76161b yocto-bsp: add BSP template files af193ae ddimage: Add script for writing images to boot media 7710639 task-self-hosted: add pseudo 16585f5 libc-common: Apply Debian-naming to libc debug symbols too 39c2e33 arch-powerpc.inc: use default value of TUNE_PKGARCH 961b149 consolekit: use systemd_unitdir 0a57e38 alsa-utils: use systemd_unitdir 4a78130 dbus: use systemd_unitdir a4fcab8 ofono: use systemd_unitdir fc580dc bluez4: use systemd_unitdir 04fe342 avahi.inc: use systemd_unitdir 3e80fcd bitbake.conf: add systemd_unitdir 9e3c79c Fix common typoes "existant", "dependant" and variations 54d61ed insane.bbclass: maybe no log.do_compile or log.do_install 58ce512 tcf-agent: Using git repository instead of svn. 0f49983 rt-tests: add patch to support passing CFLAGS/LDFLAGS 22cb225 rt-tests: replace dependency on eglibc with virtual/libc e2e4e4a bitbake.conf: fix distro-less failure expanding FILESPATH 8dda137 Hob: Revert interfaces of callbacks for layer_button, view_recipes_button, and view_packages_button. 0ac021e lib/bb/ui/crumbs/hig: disable removal of meta-hob layer 1f3a637 ui/crumbs/hig: make the layer selection dialogue more closely match design f950176 lib/bb/ui/crumbs: add icons for use in the layer dialogue 631f978 lib/ui/icons: autocrop images 21970f4 lib/bb/ui/crumbs: Add HobAltButton and use it 457ec75 ui/crumbs/persistenttooltip: fix whitespace e587c1e ui/crumbs/persistenttooltip: fix colours on darker themes f460c2f ui/crumbs/persistenttooltip: tweak borders c9202eb ui/crumbs/hobwidget: add clear icon to search entries in HobNotebook b681798 Hob: Use inherit information to judge if a recipe is image type ef2e881 cooker: add inherit information when generating package tree c70e761 Hob: Change the titles for recipe view and package view b8cbd7e Hob: Change "View Packages" description 9e8e02c Hob: Change window title from HOB to Hob df20012 Hob: Move "Create your own image" to the bottom of image list 31124e6 Hob: Change package selection tab order 8cc7b24 Hob: Change recipe selection tab order ec62723 Hob: Change template button name from "Template" to "Templates" 5b98b26 Hob: change package classes selection GUI 8683fa2 Hob: Remove split model in GTK Hob e9a9422 Hob: Still use initcmd != None as the if judgement 047ce54 xserver-kdrive: Fix packaging warnings 621e5cd readline: Fix RPATH Warnings for GPLv2 4cc2b9a lttng-ust: Increase PE due to incompatible version changes related to lttng-ust2 70a0375 Add bitbake-dumpsig to make it more obvious how to dump a signatures file 287d018 gettext/awk/sed/grep: Backport WARNING fixes to GPLv2 versions 40f9568 gzip/pigz-native: Install into a prefix to avoid clashing with system binaries 01218e2 bitbake.conf/sstate.bbclass: Change PATH when installing sstate files to avoid issues 42c445b buildhistory_analysis: avoid printing PE/PV/PR more than once 4db604c buildhistory_analysis: report if all items removed from a list 275ef49 buildhistory_analysis: skip FILELIST changes for dbg packages 9d8e5ab buildhistory_analysis: hide version number increases in dependencies 0b8a693 buildhistory_analysis: use bb.utils.explode_dep_versions fb7eeb3 lttng-2.0/lttng-ust: Change recipe name to lttng2-ust. 5259a70 parted: update to version 3.1 e3a8486 syslinux: fix stripped file warnings 8ad75a6 libacpi: fix stripped file warning 2713908 hdparm: fix stripped file warning ddfbae1 distro_tracking: update openssl 96dde95 openssl: upgrade to 1.0.0.h ded4c8e scripts/qemuimage-testlib: fix typos ba4e37a task-self-hosted: add nfs-utils and nfs-utils-client into the target 24703f8 cleanup-workdir: add a script to clean up WORKDIR d4129c1 parted: update to version 3.1 86ff2d7 distro_tracking: updates for upgraded recipes and manual checks a731d22 e2fsprogs: upgrade to 1.42.1 35ada8f distro-tracking: Remove trailing whitespace ca0e59e distro-tracking: Update rt-tests, trace-cmd, and kernel shark 5eba491 libxxf86dga: Upgrade to 1.1.3 42cc9b7 distro_tracking: Update 562b6e8 resolvconf: Upgrade to 1.64 4cbf68c imake: Upgrade to 1.0.5 647ca07 gnutls: Update to 2.12.17 6c07b14 libxi: upgrade to 1.4.5 2a6611c libxcb: upgrade to 1.8.1 33ca082 font-util: upgrade to 1.3.0 1d4a448 inputproto: upgrade to 2.2 1e14106 libxres: upgrade to 1.0.6 253ba4c libxfont: upgrade to 1.4.5 469adf6 libXvMC: upgrade to 1.0.7 d0a99eb libxtst: upgrade to 1.2.1 796658c libxft: upgrade to 2.3.0 42c4d68 libdmx: upgrade to 1.1.2 f058ab6 libxau: upgrade to 1.0.7 f6c8b92 libxscrnsaver: upgrade to 1.2.2 ac08a35 libfontenc: upgrade to 1.1.1 96c0a7b libXmu: upgrade to 1.1.1 bef3721 libxt: upgrade to 1.1.2 04e4955 libXv: upgrade to 1.0.7 5eb8a94 libXext: upgrade to 1.3.1 5b1a362 libxpm: upgrade to 3.5.10 742e6d0 libXrender: upgrade to 0.9.7 ac1cf8e libXxf86vm: upgrade to 1.1.2 2a7e49a libxdmcp: upgrade to 1.1.1 87d4868 pixman: upgrade to 0.25.2 dc7ab6e libice: upgrade to 1.0.8 880739e libxkbfile: upgrade to 1.0.8 2781299 libsm: upgrade to 1.2.1 a440440 libxinerama: upgrade to 1.1.2 fcb6719 libxcursor: upgrade to 1.1.13 4ae214c util-macros: upgrade to 1.17 e8a238f tzdata: upgrade to 2012b fbf503a minicom: upgrade to 2.6.1 87f284f apr: upgrade to 1.4.6 5f83df6 dropbear: upgrade to 2012.55 dba0656 curl: upgrade to 7.24.0 b52bd42 busybox: upgrade to 1.19.4 e556d90 libpcap: upgrade to 1.2.1 52365cc gst-plugins-ugly: upgrade to 0.10.19 de0e3e5 gst-plugins-bad: upgrade to 0.10.23 a25a6c6 gst-plugins-good: Fix packaging fc44b2f gst-plugins-good: upgrade to 0.10.31 761b3c3 gst-plugins-base: upgrade to 0.10.36 7fffe07 gstreamer: upgrade to 0.10.36 1b083f3 gst-plugin-bluetooth: Fix package warnings 82df422 gst-plugin-bluetooth: upgrade to 4.99 24c233d bluez-hcidump: upgrade to 2.3 11897a9 bluez4: upgrade to 4.99 987d53f ofono: upgrade to 1.5 7e1c71a telepathy-mission-control: fix package warnings 44d6487 telepathy-mission-control: upgrade to 5.11.0 fc876fa telepathy-glib: upgrade to 0.17.5 9cb35be tremor: upgrade to 18221 704284e libvorbis: upgrade to 1.3.3 14df794 glproto: update its info in distro tracking 6e5446c gdk-pixbuf: upgrade to 2.24.1 9963fdb dbus-glib: upgrade to 0.98 3510a59 glib-2.0: upgrade to 2.30.3 224ff37 xserver-kdrive: compile xserver without dtrace support 17d42a4 sysvinit-inittab: Fixed license warning. 5b09f2c Hob: save CONF_VERSION and LCONF_VERSION into template d03856c Hob: Fix advanced setting reparse mechanism 34b0f7a Hob: reset the selection if switch to a new base image 8a2f86a utils: Add split_version function for splitting a version into its components d8b3caa ui/crumbs/persistenttooltip: try to reflect WM close button position 854f3a5 ui/crumbs/hobpage: no need to force a Toolbar button type 740bd44 ui/crumbs: remove unused return value from append_toolbar_button 1aa102b ui/crumbs/hig: use close rather than OK for dismis button f1c35a6 Hob: fixed the tabbar search entry retaining focus when user has clicked off it issue 89a5428 Hob: fix static variable "self.search" to parameter "search" in signal callback function 2abdbaa Hob: change HobNoteBook tab edge color from green to gray 74c0098 Hob: add auto adjust background area function for long issue text 5e0461c Hob: Fixed the hobwidget code and make it like a pythonista 4dc552a Hob: remove the invalid code in hobwidget.py 491c87d Hob: fix '!= None' and '== None' in the code 9ecdbc3 Hob: change the code style to enumerate a list in a for-loop dab638e Hob: show indicators on the tabs of the Hob notebook c4017bc Hob: use HobNotebook to implement a notebook in build details page 88bbc0c Hob: implement a self-defined notebook visual component for Hob 8b206d3 Typo: "nonexistant" -> "non-existent" 30ff27a runningbuild.py: fix goggle ui 30e35fa bitbake-layers: fix traceback in show-overlayed with nothing overlayed fd3514f blktrace: update to version 1.0.5 0e47116 qt-mobility: fix build in the absence of opengl b3311a2 alsa-utils: move ${datadir}/init files to alsactl package. 2082a20 package_rpm.bbclass: fix bashims at rpm_common_comand() method 3ced64d bitbake.conf: Exclude some variables when calculating cache hash 5b67d64 native.bbclass: make TOOLCHAIN_OPTIONS empty 5bc142a gdk-pixbuf: Disable xlib library since we don't have anything needing this as yet and no libx11 DEPENDS 78f91f0 apt: Fix parallel make race 46b7131 Simple typo in qemuarm.conf file: "versaile" -> "versatile" da07197 lttng-modules: fix compliation error with 3.2.x -stable kernels a9873f1 pigz: Ensure DEPENDS on zlib exists for native and target versions 99b1c63 default-providers: Set pigz-native as the default provider for gzip-native c17b692 distro_tracking: update the recipe info for manual check c5b4b66 distro-tracking: update status of recipes 76bd437 distro_tracking: update sudo, at, base-passwd 2a7afb6 base-passwd: upgrade to 3.5.24 35c4c79 at: upgrade to 3.1.13 c5d1960 sudo: upgrade to 1.8.4p4 b4ee8b1 lttng-modules: Fix setting of KERNEL_DIR 1104171 slang: fix typo in rpathfix.patch aa52518 ghostscript: fix typo in packaging 8b0b2d9 gnome-desktop: fix package warnings 6268c9e make 3.81: add GPLv2 version 7b6e4fe make: Add toplevel COPYING File and move BBCLASSEXTEND 02c2f51 mktemp: fix packaging warnings 4c26382 qt4: add RPROVIDES/RREPLACES for qmake2 recipe d3c6832 iproute2: fix unpackaged files warning fc4439b buildhistory: avoid reruns of do_package ee8153e buildhistory: allow disabling image and/or package history 32483f0 buildhistory_analysis: fix duplicate PE/PV/PR in related fields c569fce classes/image: avoid cp race condition when building multiple images 49f05af git: fix packaging warnings 4fa8a67 python-pycurl: fix packaging warnings 007ff7b python-pyrex: quite packaging warnings ba53417 pciutils: fix a do_compile failure acc1b66 python: fix install when libdir is not "lib" f93c98e gawk: fix packaging warnings 7161e47 qemugl: Hide some GLX extensions by default fcc7e80 linux-yocto/3.0: update to v3.0.24 81125c7 linux-yocto/3.2: update to v3.2.11 b5ed167 linux-yocto/3.2: update fri2 configuration a02751a linux-yocto/3.0: update meta SRCREV 969bdb8 upgrade logrotate: update the distro_tracking_fields.inc 7f33f59 upgrade logrotate: update the recipe a163d21 upgrade logrotate: split the old patch into 3 3f23b2f Add pigz as gzip-native alternative. 26a4693 bitbake/fetch2: Fix typo which broke use of tarballs 0676db7 tcl: Fix bad RPATH QA warning c66786e wget: Fix bad RPATH QA warning 0fb6005 foomatic-filters: Ensure cups and ppr files are packaged 5ed180e cups: Ensure cups-config has correct target paths, not sysroot ones for cups_serverbin and cups_datadir variables 1871ec8 sed: Fix unpackaged files warnings 59313f2 cpio: Fix unpackaged files warnings a7cd142 unzip: Fix unpackaged files warnings 61f50d8 tar: Fix unpackaged files warnings b6154d4 directfb: Fix RPATH warnings a6a866b grep: Fix QA warnings c739e19 xf86-input-synaptics: Fix QA warnings 69db785 chkconfig: Fix unpackaged files warnings 6f76180 mobile-broadband-provider-info: Fix license warning 0422aca make: Fix license warning 28c755f flac: Fix license warning 98ce344 qt-mobility: fix QA warnings be0f9dd python-imaging: bring in fixes from meta-oe 24d1560 util-linux: restore zlib and ncurses dependencies for native 510feb6 rt-tests: Add src/backfire to FILES_${PN} 4ca7075 runqueue.py: When checking whether stamps are valid for setscene, recurse 1d52c11 rpm: Fix FILE_ -> FILES_ packaging 9adf5c0 gtk-theme-torturer: Fix license warning 98c8b62 telepathy-glib: remove package warnings 88c9e4f texi2html: fix packages warning 79aa3f7 glib-networking: Fix packaging warnings 958e675 libnewt: fix license warnings 17895d3 watchdog: Fix License warning f56eb88 wget: Fix License warning 837e8c7 usbinit: Fix License warning b03be65 eee-acpi-scripts: Fix License warning e07686e dtc: Fix License warning 44f50c3 bitbake.conf: Modify PACKAGE list ordering to insert -staticdev file before PN 87ef82d bitbake/fetch: Fix uri_replace d3d9a37 parse/ast: Expand inherit statements before splitting them b125696 ui/uihelper: Keep track of task numbers 82b6146 qt4: package static libraries correctly to fix warnings 93453f4 gmp: upgrade from 5.0.3 to 5.0.4 ce15081 ncurses: fix install error ad81105 .gitignore: expand pyshtables.py ignoring 0be2788 mirrors.bbclass: remove dead GNU mirrors 50c0107 parted: don't pass --disable-Werror to configure 9be93e8 opensp: Fix unnecessary rpath warnings 602adb0 Hob: Change Box's padding value 7548697 Hob: improve recipe/package selection performance ea8a7a8 Hob: Add stop button for parsing progress a957dbd Hob: Emit command-failed signal even if error msg is None c1cc10d Hob: Show recipe/package editing button after base image is selected 0fa748e Hob: Remove the recipe/package populated signal 552672a Hob: Remove the indication in machine/base image combobox 1dd648e Hob: Remove the reset button in recipe/package selection page 2064312 Hob: Fix the image installation dependency 8c6ce63 cooker: add package rdepends and rrecommends info 354f458 Hob: Disable the handling of "NoProvider" event 3fe627c Hob: add "Close" button to "BinbDialog" 8bae18b slang: Fix rpath QA warnings 50466b6 ghostscript: Fix patch related build issues 1eac51a PR bump for all recipes that DEPEND on ncurses 73371e1 ncurses: fix packaging of moved libraries a17165a python: regenerate python-2.7-manifest.inc e1c7636 gpgme: fix packaging warnings 7afeaf1 distro_tracking_fields: Fix EOL Comments and missing Quotes f834d03 Revert "alsa-tools: update to 1.0.25" cb771ef Revert "gcc-cross: aviod creating invalid symlinks" f2bc4c6 alsa-utils: Add rename accidently dropped during patch merge 8a2dcd4 librsvg: really bump PR 5d5d5e1 perl-modules: Fix LICENSE fields to mention the correct license versions 3bbbfe4 xorg-cf-files: Fix unpackaged files warning a802036 package.bbclass: do not split debug pkg when no debugsources.list f65d96b chkconfig: update it from 1.3.57 to 1.3.58 c1076a0 ccache: update it from 3.1.6 to 3.1.7 7d6eb00 distro_tracking_fields: udpate package status ae2c5f2 ghostscript: update to 9.05 e42e695 alsa-tools: update to 1.0.25 f7c7430 alsa-utils: update to 1.0.25 1a467d8 alsa-lib: update to 1.0.25 3882f40 libsdl: update to 1.2.15 897cdb6 newt: update to 0.52.14 43521d7 gobject-introspection: update to 1.31.20 d6426b6 gcc-cross: aviod creating invalid symlinks 089767f linux-yocto-tiny: add dependency on xz-native d164674 ncurses: fix build when ENABLE_WIDEC is not set fc33926 mx: add dependencies cac1d9f gst-plugins-bad: disable directfb in configure 4992d99 pulseaudio: add X library dependencies 50e4d4c scripts/bitbake: ensure user is in build directory 5494bfc scripts/contrib/python/generate-manifest-2.7.py: Catch up with staticdev fixes 361d3b9 man: fix configure issue to solve warnings b145814 libgalago: Fix package warnings by not packaging autopackage 59dbdf4 man-pages: Update to 3.36 e8d1d3d avahi: Update to 0.6.31 1bdd2e0 distro_tracking: Updates for manual checks 623da05 python: package static libraries correctly in -staticdev 05a360b rpm: Package python-rpm static archive correctly 0d1ea0d autoconf: remove emacs mode files to fix warnings 8776baa quilt: Fix docs packaging warnings d467d90 ltp: Package static library in -staticdev 57cde08 owl-video: Fix unpackaged file warning 8e9f6fc dates: Fix unpackaged files warning 2a21ddf alsa-utils: Ensure state directory is packaged 29d054a ppp: Clean up PACKAGES vs. variable mismatch and drop unused RDEPENDS 0d9c60f ppp: Fix unpackaged files warnings 546032a libxslt: Fix unpackaged directory warning 0c79d71 xf86-video-vmware: Fix unpackaged driectory warning 7d8c72d matchbox-keyboard: Fix unpackaged files warning 67a51cd docbook-utils: Add check to not sed files twice 7cc0db7 gettext: Set the LICENSE field to GPLv3+ d90cfa7 initscripts: test whether /etc/init.d/hwclock.sh exists d074b8a mtd-utils: clean up old files 7e48717 xinit: Update to 1.3.2 -- Typo fix. c97557c Revert "gettext: do not set libncurses prefix explicitly" 19d4e0c linux-yocto/meta-yocto: v3.2.9, v3.0.23 + fixes and updates af6881f gettext: do not set libncurses prefix explicitly 7ab3ab9 ncurses: move only libncurses and libtinfo to base_libdir 19e92df path.py: add make_relative_symlink method 5fff3ea python, python-native: bump PR 9ff71c3 python-native: distutils: don't use libdir, remove dead code path 475ecc5 python: depend on bzip2 c7ac3f4 python: regenerate plat-linux2/*.py c8f2f58 python, python-native: always set platform to linux2 8f3aefa linux-firmware: fix permissions of installed files 7f784b6 util-linux: explicitly disable udev b9027a9 package.bbclass: sort dynamically generated packages e9fdfbb connman: update to 0.79 fd6696a image_types: ensure .rootfs.ext3 is created before vmdk is created. e867a99 udev-164: fixup "don't hardcode path to pidof" 7b6cd92 qt4: fix deps in libQtWebkit.la and QtWebKit.pc 1a61109 image-vmdk: add NOISO to disable iso image creation since it's not needed 4ca1820 trace-cmd: modifying License information 96e88c5 dpkg: rename postinst trigger script 792d79f opkg: rename postinst trigger script f473660 rootfs_rpm.bbclass: rename postinst trigger script f9bdcb2 image.bbclass: fix rootfs generation without package management tools 717f974 run-postinsts: fix opkg data path e26d3e6 glib-2.0: Add Upstream Status for nodbus.patch 0f64905 linux-yocto: respect FILESPATH directories eed3746 xserver-xorg: Remove unneeded empty directory, fixing QA warning 00d64ef python-pycairo: Fix incorrect versions in license field 0342f7e rpm: Add rpmdeps-oecore to appropriate package c5858a4 bluez4: Ensure the plugins directory is packaged to avoid warnings f7945b8 qemu-config: Clarify license as GPLv2 e25a02e license.bbclass: Add mapping for LGPLv2.0, pango uses it 4ba6ff6 perl: Clarify LICENSE with versions. Yes, its really GPLv1 0f99e6b shadow: Correct license Artistic -> Artistic-1.0 8c218dd boost: Correct license name BSL-1 -> BSL-1.0 b2d4c6f gnome-doc-utils: Clarify license as GPLv2 and LGPLv2.1 d51e812 gtk-doc: Clarify license as GPLv2 374f060 wireless-tools: Clarify LICENSE field to avoid warnings 40aef31 matchbox-session: Clarify LICENSE as GPLv2 d72637c librsvg: Fix unpackaged directory warnings a10c348 sato-screenshot: Remove unneeded .la file 7dfac86 xf86-input-vmmouse: Package unpackaged files a62300a leafpad: Package currently unpackaged files. 5206688 cmake.bbclass: add ${base_libdir} to CMAKE_LIBRARY_PATH bd2d890 xorg-xserver: Explictly disable dtrace, its not in DEPENDS 48633e5 mesa-dri-glsl-native: Avoid error when running configure a second time c27b7aa codeparser: Call intern over the set contents for better cache performance 7bf0a79 codeparser: Compute extra cache components on the fly rather than later c003a30 cooker.py: Allow parsing shutdown to be called more than once fe06599 libx11-trim/diet: Ensure libx11-locale doesn't trigger multiple provider issues 664fb27 siggen.py: Use basehash if no taskhash d599d90 bitbake/siggen: output filename on error in finalise 67b9706 ui/crumbs/hig: special case stock info icons in CrumbsMesssageDialog fce8d37 ui/crumbs/hig: use HobInfoButton in place of gtk.Image with tooltip ee0c302 ui/crumbs/imageconfigurationpage: make use of the HobInfoButton 26ff0fa ui/crumbs/hobwidget: implement HobInfoButton per Hob interaction design 9781b09 ui/icons: crop the info icons 8a8a656 crumbs/persistenttooltip: a new Gtk+ widget for use in Hob 19b38a6 package.bbclass: Drop python depends from rpmdeps 7eb3440 rpm 5.4.0: Add rpmdeps-oecore to replace rpmdeps for package.bbclass 2f4d784 package_ipk.bbclass: Ensure Source is set to something else packaging can fail 6bd23e0 adt-installer: Corrected wrong environment file names. 3f6ed2c formfactor: use full path to fbset e189a71 prservice: Added sanity check for prservice connection. 10d6c4e bzip2: split into binary and library packages c6bb463 documentation/dev-manual/dev-manual-start.xml: re-write of meta-intel 2ede6c8 documentation/adt-manual: Converted manual to use the poky.ent file eebdda7 documentation/poky.ent: added new variable. c25d7fc documentation/dev-manual/dev-manual-newbie.xml: Fixed typo. 7431a70 documentation: Updated copyright notices to 2012. b8e1fb4 documentation/kernel-manual/kernel-manual.xml: Copyright updated. ae647f6 documentation/dev-manual/dev-manual-common-tasks.xml: Review comments 1084bc5 documentation/yocto-project-qs/yocto-project-qs.xml: Misc. Edits b257acf documentation/dev-manual/dev-manual-start.xml: Wording change 2cae64b documentation/dev-manual: Re-org of topics 25f74b3 documentation/dev-manual/dev-manual-newbie.xml: Fixed link 0b17271 documentation/dev-manual/dev-manual-common-tasks.xml: new section 4db23d6 documentation/poky-ref-manual/ref-variables.xml: New glossary entries c38b2de documentation/dev-manual: New Layer section and metadata link anchor eb829f2 documentation: Section change and cross-reference fixes 99d5ff0 documentation/dev-manual/dev-manual-common-tasks.xml: Moved Layer section 7018654 documentation/poky-ref-manual: Review edits on B and externalsrc.bbclass e95d81a documentation/poky-ref-manual/ref-variables.xml: Changed examples b206901 documentation/poky-ref-manual/development.xml: Fixed cross-reference 7aa91dd documentation/README: Created a README file 72a5684 documentation/yocto-project-qs/yocto-project-qs.xml: Title fixed 05cff8a documentation/poky-ref-manual/ref-variables.xml: B and BBCLASSEXTEND 36e3daf documentation/poky-ref-manual/ref-classes.xml: New externalsrc class ad5de97 documentation/dev-manual/dev-manual-common-tasks.xml: New section 6aeeeba documentation/dev-manual: Added anchor point and edits to kernel config 758dd35 documentation/bsp-guide/bsp.xml: Edits to Misc Recipe Files b0b5224 documentation: Edits to all style.css files 372fe9f documentation/yocto-project-qs/style.css: Changed notes, tips, etc. 0e640d4 documentation/yocto-project-qs/yocto-project-qs.xml: Welcome updated 2027c96 documentation/bsp-guide/bsp.xml: Edits to Display Support Files Section cfbee01 documentation/bsp-guide/bsp.xml: Edits to Core Recipe Files section. e856eed documentation/bsp-guide/bsp.xml: Edits to HW Configuration Options Section d035bb8 documentation/bsp-guide/bsp.xml: Edits to "Layer Configuration File" section. 93ad9b5 documentation/bsp-guide/bsp.xml: Edits to pre-built user binaries section. 1764713 documentation/bsp-guide/bsp.xml: New "README.sources File" section added. 011738a documentation/bsp-guide/bsp.xml: Edits to point to files be04e17 documentation/bsp-guide/bsp.xml: changes to Crownbay example c0859cd documentation/dev-manual: Fixed YP Build Directory Term ee69fb5 documentation/dev-manual/dev-manual-common-tasks.xml: bblayer.conf edit a72bea5 documentation/dev-manual/dev-manual-common-tasks.xml: Review comments 8268a69 documentation/dev-manual/dev-manual-common-tasks.xml: review comments 9b5aedc documentation/dev-manual/dev-manual-common-tasks.xml: S variable edits 484cc84 documentation/poky-ref-manual/ref-variables.xml: Formatting changes. 87133d1 documentation/dev-manual/dev-manual-common-tasks.xml: Review comments 66ce594 documentation/dev-manual/dev-manual-newbie.xml: three small corrections 4cf3afb documentation/dev-manual/dev-manual-start.xml: Formatting correction. (From yocto-docs rev: 767ec4659e72622a08ff6d1923d14c46e6dd4331) 1b17e6a documentation/dev-manual/dev-manual-start.xml: Edits to BSP set up 7bc6ffe documentation/dev-manual/dev-manual-start.xml: Edits to poky-extras 2c52a78 documentation/dev-manual/dev-manual-start.xml: Edits to Kernel repo setup bacff88 documentation/dev-manual/dev-manual-start.xml: Edits to YP files Git method 4dd2dc9 documentation/bsp-guide/bsp.xml: Edits for BSP Layer understanding f7fb723 documentation/dev-manual/dev-manual-common-tasks.xml: review comments added 452d276 documentation/dev-manual/dev-manual-common-tasks.xml: re-write to 4.4 797fabd documentation/dev-manual/dev-manual-common-tasks.xml: Edits 70848f3 documentation/dev-manual/dev-manual-common-tasks.xml: Combined sections 7a88a29 documentation/dev-manual/dev-manual-common-tasks.xml: review comments applied ea70ac5 documentation/dev-manual/dev-manual-common-tasks.xml: new section d8b27b6 documentation/dev-manual/dev-manual-common-tasks.xml: Edits for links. 280addd documentation/poky-ref-manual/ref-variables.xml: Fixed typo. c8d0eff documentation/poky-ref-manual/ref-variables.xml: Update S variable e1b3ba8 documentation/poky-ref-manual/ref-variables.xml: Edits to WORKDIR glossary 5feff48 documentation/poky-ref-manual/ref-variables.xml: New TMPDIR glossary term. a562fa6 documentation/poky-ref-manual/ref-variables.xml: new TOPDIR glossary entry. 7b5215b documentation/dev-manual/dev-manual-newbie.xml: edits to build dir term 1e60808 documentation/dev-manual/dev-manual-common-tasks.xml: re-write 9ad6975 documentation/dev-manual/dev-manual-newbie.xml: Added text anchor 7e23cd1 documentation/dev-manual/dev-manual-common-tasks.xml: Writer notes added. eed1609 documentation/dev-manual/dev-manual-common-tasks.xml: Removed extra space. 43e6e25 documentation/dev-manual/dev-manual-newbie.xml: Edits to Git section c74f732 documentation/bsp-guide/bsp.xml: qualified the commit ID difference 70ae82a documentation/kernel-manual/kernel-concepts.xml: New kernel section 3ecda3f documentation/bsp-guide/bsp.xml: Updated reference to manual 0bc0d35 documentation/bsp-guide/bsp.xml: Updated commit IDs 9dc84b7 documentation: Cross-referencing section fixed for consistency. e8a6970 documentation/dev-manual/dev-manual-intro.xml: updated intro 6c9445e documentation/dev-manual/dev-manual-common-tasks.xml: fixed autobot link b97cdc1 documentation/dev-manual: Reference link clean-up 646bda0 documentation/dev-manual/dev-manual-common-tasks.xml: links fixed. 797758c documentation/poky-ref-manual: Link updates f908723 documentation: top-level manuals edited for new structure a8108a2 documentation: File swap 4d09a3c documentation/dev-manual/dev-manual-bsp-appendix.xml: Edits to examples deddea1 documentation/dev-manual/dev-manual-newbie.xml: Git section updated babc066 documentation/dev-manual: Updates to names of bare clone and copy 9cfbefc documentation/dev-manual: Edits to clarify YP files 11c290c documentation/dev-manual/dev-manual-bsp-appendix.xml: tags/branches edits e71d0af documentation/poky-ref-manual/ref-variables.xml: CONFFILES and FILES edits 7a5fa33 documentation/poky-ref-manual/ref-images.xml: Added three core-images 7b03d42 documentation/poky-ref-manual/ref-variables.xml: removed DISTRO_EXTRA_RDEPENDS 8769a25 documentation/poky-ref-manual/ref-variables.xml: Edits to CONFFILES and FILES 25cd1ba documentation/poky-ref-manual/ref-variables.xml: Edits to IMAGE_INSTALL 2e5e02a documentation/poky-ref-manual/ref-variables.xml: Added CONFFILES and FILES 739dad2 documentation/poky-ref-manual: Removed ROOT_FLASH_SIZE from document. 0da071e documentation/kernel-manual/kernel-concepts.xml: More intermittent edits 81629e3 documentation/dev-manual/dev-manual-bsp-appendix.xml: edits to poky repo setup 62907f7 documentation: More information about DL_DIR added. ddaf79d documentation/poky-ref-manual/ref-variables.xml: Fixed broken reference. ba0e818 documentation/poky-ref-manual: Updates to IMAGE_INSTALL 2a0a3d6 documentation/poky-ref-manual/extendpoky.xml: proposed section 57f3951 documentation/poky-ref-manual/ref-variables.xml: new BBMASK glossary entry b94e910 documentation/kernel-manual/kernel-how-to.xml: edits to tree construction 8f9dc14 documentation/kernel-manual/kernel-concepts.xml: new section starting 4baaf11 documentation/yocto-project-qs/yocto-project-qs.xml: added xsltproc package 8cebd20 documentation/kernel-manual/kernel-how-to.xml: links to manuals removed c671dde documentation/Makefile: new 'edison' variable for YP dev manual. e66c7a5 documentation/Makefile: fixes for missing tarfiles f8d248e documentation/dev-manual/dev-manual-kernel-appendix.xml: edits to example fe11d65 documentation/dev-manual/dev-manual-kernel-appendix.xml: Fixes to examples bee2988 documentation/yocto-project-qs/yocto-project-qs.xml: fop added to packages 4110fa7 documentation/poky-ref-manual/faq.xml: Fixed links to python a9195b2 documentation/adt-manual/adt-command.xml: Corrected wording for setup bc4b4a9 documentation/adt-manual/adt-eclipse.xml: Fixed yoctotools reference 855b56c documentation/adt-manual/adt-eclipse.xml: Fixed menu reference 03a69b6 documentation/adt-manual/adt-eclipse.xml: Added more info for example. f6ffa12 documentation/adt-manual/adt-eclipse.xml: Removed redundant link 3d0ad29 documentation/adt-manual/adt-eclipse.xml: Updates to plug-in install b95e549 documentation/adt-manual/adt-package.xml: Fixed reference to manual. 83e8921 documentation/poky-ref-manual/ref-variables.xml: PDF formatting fixed. 2df4570 documentation/poky-ref-manual/ref-variables.xml: updates to rootfs variables 4c6c766 documentation/adt-manual/adt-prepare.xml: added unpacking text 655f357 documentation/dev-manual/dev-manual-model.xml: Removed 1.1.1 strings d783a68 documentation/adt-manual/adt-prepare.xml: update link to get ADT inst tarball aa2df47 documentation/adt-manual/adt-intro.xml: Fixed broken perf link 01f0467 documentation/dev-manual/figures/kernel-example-repos.png: update figure e26a00d documentation/dev-manual: Updates to index of releases 4f913c6 documentation/dev-manual/figures/index-downloads.png: updated picture e1ebcbc documentation/dev-manual/dev-manual-kernel-appendix.xml: cleared up note 8d170fc documentation/dev-manual/dev-manual-start.xml: updated to clone output 40d0c8b documentation/dev-manual/dev-manual-start.xml: poky-extra output updated 226dfa1 documentation/dev-manual/dev-manual-kernel-appendix.xml: General Edits 57acbda documentation/dev-manual/dev-manual-model.xml: Fixed external link c063c23 documentation/dev-manual/dev-manual-newbie.xml: Fixed broken link to Git f6d3ca2 documentation/dev-manual/dev-manual-newbie.xml: fixed broken link a5f400c documentation/dev-manual/figures/git-workflow.png: Updated figure flow 39b508f documentation: Variables for docs and QS variablized bc911b8 bitbake.conf: use empty SRC_URI by default 20524e1 gtk+: Amend upstream status of configure-nm.patch 7172b4b gdk-pixbuf: Pick up ${NM} from the environment. 31a03ed kernel.bbclass: Remove warnings for modutils and modprobe.d 8cef3e5 external-csl-toolchain: override PKGV, not PKGV_${PN} e1803f2 xz: split out liblzma as seperate packages fef41fe polkit: Fix Upstream-Status tag a79bddd valgrind: Support compilation without X11 d4d7461 mime.bbclass: Fix bracket error. b417983 shadow-sysroot: Fix for multilib da8dfd8 multilib: extend all recipes in multilib.conf ec9d319 linux-yocto/rt: udpate SRCREVs to 3.2.9-rt16 f6bd7d3 linux-yocto/meta: fix incorrect config references 7931b64 psplash: Add mising commands module import. 8ed044e gcc: Upgrade to 4.6.3 release d7663ff logrotate 3.7.9: Allow rotate log across filesystems 2129519 linux-yocto: v3.2.9, v3.0.23 + fixes and updates a8e78d5 linux-yocto: use bareclone option cddd52a image_types: add IMAGE_ROOTFS_ALIGNMENT ce34212 libsdl: add DirectFB support 70cff1c bluez4: add dependency on libcheck to enable test modules 62a2a41 udev-164: don't hardcode path to pidof a8dc76e base.bbclass: Fix PACKAGECONFIG handling when no flags are set 9195e96 polkit: Default to shadow, not none to fix build failures 5419dc1 bitbake: Drop fetch v1, v2 provides a much better codebase to build from ff73b02 meta/classes: Convert to use appendVar and appendVarFlags 082cc60 libx11: reinstate PE=1 that got lost in the big meta-oe Xorg merge d0c5202 gtk+ 2.24.8: bump PR to force rebuild and feed update 9da18ac polkit 0.104: add 2 backports from upstream to fix crashes during auth f8c0e6e polkit 0.104: convert pam code to PACKAGECONFIG and adhere to OE recipe styleguide b1aeaa8 meta: Replace bb.data.expand(xxx, d) -> d.expand(xxx) 22f0df2 sstate: Remove unecessary bb.data.expand() 06f2f8c meta: Convert getVar/getVarFlag(xxx, 1) -> (xxx, True) d01dadf meta/classes: Convert to use appendVar and appendVarFlags a439d32 soc-family.inc: to be included in machine.conf to add SOC_FAMILY to MACHINEOVERRIDE 9a6aadb libx11-trim: Add error information from LSB Test Suite to makekeys_crosscompile.patch 03abe80 libx11-1.4.4: Add patch "makekeys_crosscompile.patch" 65c9de5 libx11-1.4.4: Add patch makekeys_crosscompile.patch d3b88ec gcc-cross.inc: Fix cross testing scripts to work with dash b6d744a eglibc-testing: Fix testing script to work well with dash 48fe5bd wpa-supplicant: fix breakage during rebuild 98bb8f7 image_types: Ensure duplicate compressed types aren't created 1f03353 image_types.bbclass: We need to preserve order in the types variable and avoid set() 93b3692 base.bbclass: If unpacking again, wipe out ${S}/patches d1168cc lib/oe/patch.py: Fix and improve PatchTree() resolver logic 01954b9 qt4: make pulseaudio support conditional upon DISTRO_FEATURES 2b918b6 stderr would previously be appended to stdout, corrupting the result when something was outputed to stderr but exit code was still 0 (non-fatal warning messages). This commit makes the code parse only stdout, but output stderr if an error happened. d868624 bitbake/bitbake-prserv: Set file mode bits "x". 348ea45 initscripts: Create the volatiles cache atomically. 6c959b1 linux-yocto: update to v3.2.8 11f8de9 linux-yocto/meta: add pvr feature description 54d1f5f linux-yocto: make kernel_checkout reentrant 60eed31 sudo: upgrade to 1.8.4 78ae634 image_types: Ensure dependencies for compression types containing multiple dots are handled correctly 8ac3b74 V2 Fix libpam's chmod 6fd4699 scripts/oe-git-proxy-socks-command: Add fallback to use nc 64bd33d scripts/oe-git-proxy-socks-command: Improve error fallback/handling 6b6aa17 busybox: Restore 'date' compatability 8b07ab0 initscripts: Properly format date when set from timestamp 1abce24 libproxy: Fix build errors due to missing prototypes 7bb36e5 site.conf.sample: Fix broken SOCKS proxy setup and configuration 18af1f5 externalsrc.bbclass: Add class for handling external source trees e682cdc toolchain-scripts: Exclude variables causing the recipe to become unecessarily machine specific a747fd4 util-linux: Fix build when NLS is disabled 4583dcc distro_tracking: Upgrade and Manual Checks 100111f util-linux: Fix removal of lscpu for non-GPLv3 Build a9101b1 pixman: updat to 0.24.4 6cdf714 glproto: Update to 1.4.15 24276c2 hdparm: update to 9.39 f0e0891 netbase: fix QA Warnings 51ab187 perl: remove empty directories to clean QA Warnings bec2e54 libx11-trim: Drop obsolete 1.3.4 version e28927d self-hosted-image: Create a VMDK image with correct SYSLINUX_* settings 0e56519 image-vmdk: Create image_vmdk class and setup image and image_types to use it 157b44c libx11-trim/diet: Add RPROVIDES for libx11-dev 60597ab image-live: Allow LABELS to be modified e175f94 linux-libc-headers-yocto: bump to v3.2.8 da5236c bitbake/build: report TaskFailedSilent events as "Failed" db4a199 bitbake/uihelper: restore line to record failed normal tasks 8078553 bitbake/runqueue: fix python error on scenequeue task failure ba8538b runqueue.py: initialize rqexe at RunQueue's init function 13cad71 Hob: Fix pressing "stop" build 7ee14c1 Hob(crumbs/builder.py): adjust the main window's position and ignore the case lower than 1024x768. d76e62f Hob: fix a bug that the image size is shown incorrectly in the image details page. 24883b4 Hob(crumbs/hoblistmodel.py): Add mapping for rprovides and pkg 61d2081 Hob(crumbs/hoblistmodel.py): Fix recipe's populate() function ca56641 cooker: fix calculating of depends and rdepends 2d23943 cooker.py: Fix a bug due to variable name 612173b command.py: remove the resolve parameter in generateTargetsTree 222ec1c Hob(crumbs/builder.py): remove the code commented out in the builder.py 1faa0c5 crumbs/hig: tweak UI and layout of LayerSelectionDialog 776e507 hig: try to avoid setting explicit dialogue sizes 1f57d6c crumbs: fix button order in several dialogues 7ccdd20 crumbs: move towards more standard dialogue spacing ec1b95f crumbs/builder: use the name Hob consistently ae9539f crumbs: Factor common dialogue configuration out 5090837 Hob: enable indicators on the "Included" tab in the recipe selection page and the package selection page 69317f7 Hob: make the image configuration page not to flash the progress bar 23efe61 Hob: fix a bug in builder.configuration.curr_mach edf3942 Hob: image configuration page doesn't need dialogs any more 53cc2c6 Hob: include hddimg and iso into image types. 73444fb Hob: cleanup those class methods in HobWidget 7f61657 Hob: fixed the issue in the brought-in-by dialog. b8582dc Hob: avoid the image selection dialog to walk through all directories and its sub-directories, when users click "My images". 030ba4b Hob: make HobViewTable more general in hob and make the image selection dialog and the image details page reuse it. 8f07bdc image_types_uboot: Update to work after recent image_types changes 40b81c7 image_types: Correctness fixes 320558f More quoting fixes 0cfceaa parse/ConfHandler: Fix enthusiatic export regexp matching 7fee190 image_types.bbclass: fix bzip2 and xz compression commands c97ebae image_types.bbclass: properly support IMAGE_LINK_NAME as empty 05c7d5d image.bbclass: do not create image manifest link if IMAGE_LINK_NAME is empty a462406 syslinux: fix packaging of ${PN} and ${PN}-staticdev 426b7fd busybox: Enable 64 bit shell tests, and disable non-standard date format interpretation. d86e308 licenses.conf: fix quotting of SRC_DISTRIBUTE_LICENSES 2474e6c tcl: Ensure native verison has correct dependencies and builds 7f67843 bootimg: Fix Quoting 2684714 syslinux: bump PR 0e39107 bitbake: implement BB_VERBOSE_LOGS 8fbdf5f tcl 8.5.11: fix packaging for native version b82a793 More quoting fixes f60a5d1 bitbake/ConfHandler: Be more strict about variable quoting 126f634 image_types: Refactor compression code into a generic compression solution 93d157b qemugl: Fix gl apps failure on qemu-x86-64 3152bae libskba: Fix for multilib aebb13e gnupg: Fix for multilib 2902bbe tcl 8.5.11: fix packaging 695a609 gettext: Get gettext use its own libunistring 991e34c mtd-utils: Don't use host 'ranlib' or 'ar'. 13949f2 qt4.inc: depend on tiff 36a0bde tune-ppc*.inc: update to use new default value for TUNE_PKGARCH 1919ba2 bitbake.conf: add default value for TUNE_PKGARCH b3f0555 multilib.bbclass: allow TARGET_VENDOR_virtclass-multilib to be overriden e42bc47 tune-ppce5500: consolidate ppce5500 and ppc64e5500 into one tune file df329ad arch-powerpc{, 64}.inc: update/add PACKAGE_EXTRA_ARCHS for powerpc/powerpc64 6beb61f linux-yocto: allow non-branched repositories to check out 84ad667 linux-yocto: update 3.2 kernel to v3.2.7 d1130b4 linux-yocto: update 3.0 kernel to v3.0.22 9fff795 bluez4: Fix build on x86/amd64 with gcc 4.7 7f27de5 distro_tracking: Account for updates and Manual Checking 6223271 bind: add DEPENDS for libcap 68f2485 tiff: Update to version 3.9.5 adc53a0 xf86-video-intel: Update to version 2.18.0 9a3d725 sqlite3: Update to version 3.7.10 d6e0cbc boost: Update to version 1.49.0 4ab5d64 mkfontscale: Update to version 1.1.0 4770a6e mkfontdir: Update to version 1.0.7 5fb90bc libdrm: Update to version 2.4.31 86d3f77 psmisc: Update to version 22.16 debd4da file: Update to version 5.11 79e8d53 util-linux: Update to 2.21 ef461c4 qemu: Add glib-2.0 as depends caea5b9 gnupg: Add missing patch for curl_typeof_fix 0733f7a qt4-tools-nativesdk: improve and tidy up qmake build afc6d1b qt4-tools-nativesdk: fix build of 4.7.4 6be627f qt4: build qmake for the target 76c1712 qt4: fix compile error in Qt 4.8.0 with gcc 4.6 cf87669 task-core-lsb: add lsbtest to RDEPENDS_task-core-misc list 835197d distro_tracking_fields: add information for lsbtest 36a2f33 lsbtest: Add recipe for LSB tests and automate test c3a23ec scripts/prserv-tool: Adepted to new bitbake cache. ce0ecf5 bitbake: fix setscene task start/failure handling e7952c1 bitbake/runqueue: make dry-run do everything except execute 959981d bitbake: Added BBINCLUDED variable. 927bec5 bitbake.conf: Create a new filter variable BB_HASHCONFIG_WHITELIST a295cdc data_smart.py: Uses BB_HASHCONFIG_WHITELIST to filter unnecessary variables f420fb3 glib-2.0: Disable fam, we don't depend on it 6cf61b3 arch-armv7.inc: fix quoting 3349b88 More quoting fixes 36e918b Quoting fixes 21f2c0b pulseaudio: Really disable orc support c02bea6 gnupg: Update checksum, fix configure and compliation issues 43d9193 syslinux: Package unpackaged files in -misc eb8ce05 automake: omit compilation of pyc files on install 6aa3a09 xorg-lib: don't build libs unless requested by DISTRO_FEATURES (fix up) 1adeb37 qt4-native: set headerdir as done in regular builds 5ecae0b local.conf.sample.extended: Add config sample for disk space monitoring 9674ea2 V5 Disk space monitoring aac4567 bitbake/runqueue: Ensure finish_now() sets the runqueue state consistently 1cb4614 gdb-cross-canadian: build gdb with python support 56bbea6 layer.conf: add keymaps to SIGGEN_EXCLUDERECIPES_ABISAFE 17fe296 sstatesig: add SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS option to exclude well defined recipe->dependency 745f5c3 bitbake.conf: remove TARGET_ARCH from in SDKPATH 7160f87 bitbake.conf: use weak assignment for BB_CONSOLELOG be1443b cross-canadian: Set STAGING_DIR_HOST correctly e17c709 glib: Drop dbus dependency, it isn't useful a54932d poky-tiny: Assume pkgconfig is provided 2ff96d6 crumbs: add back progress implementation for depexp c9e95d3 bitbake/cooker: terminate when errors found in layer configuration e894f0e initscripts: mount and unmount cifs network filesystems ee86f89 layer.conf: use += for SIGGEN_EXCLUDERECIPES_ABISAFE and split to multiple lines b6bd0f8 useradd.bbclass: override USERADDSETSCENEDEPS to empty when building cross packages d7cef16 license.bbclass: Symbolic links of generic license 5272e88 license.bbclass: Gather Pkg level licenses cde2584 less_444.bb: Adding license email from author 3be2c7d distro_check: fix the fedora URL for rleases as they seem to have moved 21ddc96 scripts/hob: Launch the new hob f496389 gst-plugin-bluetooth: upgrade to 4.98 and add checksums 3a20beb shadow-sysroot: disable package creation 656f9a0 Hob: A new implemetation (v2) 14df6d5 linux-yocto: improve checkout error handling and reporting db94ad4 sstate.bbclass: improve performance of sstate package creation c8af055 qemu: remove version 0.14.0 ef36dc8 libsdl: allow building without x11 189a854 qemu: enable building qemu-nativesdk without x11 dfd6c54 psplash: allow building multiple splash executables 5dc5153 psplash: use OpenEmbedded logo 16b715b meta-yocto: add bbappend to restore Yocto psplash image 408fd37 fetch2/git: create bareclone option 72ce5c4 conf/bitbake.conf: add DISTRO_FEATURES_BACKFILL 5ac604e glib-networking: Add intltools-native to DEPENDS ae34e43 task-self-hosted: add hicolor-icon-theme and socat c867e31 mpfr: add patch to fix build for thumb 7c46f0b package.bbclass: Add a sanity check to the debugsrcdir removal code f017b9b libfm: Fix packaging and dependency issues d02f7b4 runqueue: fire sceneQueueTaskStarted event when a setscene queue starts e6230da image.bbclass: Ensure timestamp matches format used in initscripts after recent changes 5aca6a7 update-rc.d.bbclass: do nothing for extended cross packages 826c1a1 rootfs_ipk.bbclass: fix status file location in rootfs cc2ef82 meta-hob: Add a new meta-hob layer 99c805a packageinfo.bbclass: add a new bbclass to pass package information 9531161 package.bbclass: set package size into pkgdata for hob2's use f378918 gthumb: Resolve staticdev QA warnings 95eb87b autotools.bbclass: Make builds deterministic 6ad11cb insane.bbclass: Only depend on desktop-file-utils-native when we need it 2fb9aac package.bbclass: Remove empty directories created as part of srcdebug handling e7caf3d dbus-glib: Correctly package bash completion pieces to avoid QA warning fa10f79 glib-2.0: Fix unpackaged files warning 2065d39 cracklib: Fix unpackaged files warning by disabling autodetected python 68a738e libgcrypt: Fix unpackaged file warning 050be51 readline: Add a patch to remove the redundant rpath linker option bd7f819 libusb-compat: Address unpackaged files warning b899244 libusb1: Address unpackaged files warning f409cf4 rpm: Fix LICENSE field b1d418e eglibc: Fix package warning 1d7728e distro_tracking_fields: fix typos da1b26c task-self-hosted: make the package lists alphabetical 1eec640 task-self-hosted: remove duplicate packages 6224e30 A script to clean obsolete sstate cache files ef29851 openssl: Move libcrypto to base_libdir 136d9cd boot-directdisk: Use correct SYSLINUX_TIMEOUT and SYSLINUX_ROOT instead of APPEND 5d04c6e image-live: fix SYSLINUX_TIME and add SYSLINUX_ROOT instead of APPEND 1792a02 image_types: add vmdk type to use with VMware 8ea3bf3 syslinux: add SYSLINUX_ROOT to APPEND line 4fe569e syslinux: Use SYSLINUX_TIMEOUT and SYSLINUX_PROMPT to configure syslinux dced0c1 ppp: Fix rp-pppoe plugin compilation 83d1d13 mpeg2dec: depend on libx11 conditionally c6580ce gst-plugins-base: depend on libx11 and libxv conditionally 8d26a9f e2fsprogs: Cope with ${libdir} and ${base_libdir} being the same 578b6f2 busybox: don't create /etc/default 762966e dbus: Remove empty ${lindir}dbus-1.0/test directory as we don't build tests 566ae97 e2fsprogs: e2initrd_helper was moved in libdir but not packaged correctly in FILES_libext2fs aba82ec nspr: Add patch in order to remove rpath from binaries d8a78f3 nspr: Compile nspr with tests af57b2e nspr: Integrate version 4.8.9 adbe094 dhcp: Update to 4.2.3-P2 a470400 autotools.bbclass: Don't copy into non-existant directory a6fb193 wireless-tools: remove ldconfig call from install-libs daeb5be initscripts: Make /etc/timestamp consistent again. 831e0b5 xorg-lib: don't build libs unless requested by DISTRO_FEATURES 5a4b06d e2fsprogs: remove ldconfig call from install-libs 30b709c sstate.bbclass: add *_config to SSTATE_SCAN_FILES 331540c apr: add apr_rules.mk to SSTATE_SCAN_FILES 9d6d5e3 libsdl 1.2.14: regenerate patch so it applies with 'patch' as well as 'git apply' 26882fdd sstatesig.py: Move package exclusion list to the layer config 77988c3 sstatesig.py: Add handling for machine specific module dependencies 2ede678 python: add Makefile to SSTATE_SCAN_FILES 571c9c7 lib/oe/utils.py: use bb.utils.vercmp_string 8fa3380 bitbake: change for adding progress bar in Hob2. de77b97 command.py: add resolve option for generateTargetsTree API 85fa989 command.py: Add a new API triggerEvent() cb87308 command.py: add new API to get the cpu count on the server c42f973 bitbake: Add client socket info for BitBakeServerConnection 19089ac bitbake: add -B option to bind with interface b70bcb3 event.py: Add new events RequestPackageInfo and PackageInfo 8e737db cache: Use configuration's hash value to validate cache 99d326a bitbake: add file and line number to ParseError ebc0d42 bitbake: fix parse errors not being reported 4a1c163 siggen.py: Pass the datacache to signature generator classes d8b3718 texi2html: Fix for multilib 65c1399 quicky: Fix for multilib a578fbc netbase: remove redundant assignments 729a901 base.bbclass: check all entries of FILESPATH for MACHINE overrides f409a49 external-csl-toolchain: skip parsing if CSL_VER_MAIN isn't set 8300757 sanity.bbclass: Add ABI version 8, used for transition from the OEBasic to OEBasicHash stamp layout ea2c8de meta-yocto: Add abi_version setting version 8, to match the OEBasicHash change and trigger warnings for existing build directories 3a23386 meta-yocto/conf: Change default signature handler. 30d0bbf layer.conf: We really need to be able to override files in the core so reverse BBPATH priority c8286e0 bitbake/ui/knotty: fix incorrect exit code 8e0c7b3 siggen: compare runtaskdeps dictionary even when they have the same size e228289 bitbake/knotty: ensure CommandFailed increases error count b62249f bitbake/knotty: ensure we return non-zero exit code on Ctrl+C 5210cc4 bitbake: show appropriate warnings for universe target 0aedc60 Fix parser hang at 0% with single-core machines f7c0488 persist_data: survive if sqlite3 couldn't enable the shared cache 52ebd5f knotty: shut down more cleanly cf60f95 cooker: roll our own process pool 87e32ed iputils: Add base_libdir to VPATH in order to find the crypto library d27351a consolekit: depend on libx11 92dd65f udev.inc has a bad link for udev home page; update the link 9c16786 Add sanity checks for eglibc locale b2a84e7 libsdl: add fix for new _XGetRequest symbol backported to libx11 888f9d5 eds-tools: Update it to fix the build error 5aec33b buildhistory_analysis: correctly split RDEPENDS/RRECOMMENDS 79eb4b8 buildhistory_analysis: avoid noise due to reordering e155952 classes/buildhistory: fix splitting on + in package list fields 1b7014f classes/buildhistory: use hostname instead of reading /etc/hostname 04c290a classes/buildhistory: sort FILELIST in package info 3cce319 classes/buildhistory: sort and de-dupe dependency graphs 7b3ea97 classes/buildhistory: squash spaces out of image variables 9eab860 task-self-hosted: add connman and connman-plugin-ethernet 0f00536 mini-x-session: try to use a resolution that's big enough for hob2's window ab5eed4 gcc: Excluding the DATE/SRCDATE from do_patch dependency. 2101ea6 rpcbind: add DEPENDS on quota for rpcsvc/rquota.h 63b680e u-boot-fw-utils: Add DEPEND on mtd-utils b2196ca zlib: remove ldconfig call from install-libs 0761649 recipes: bump PR to rebuild .la files without libz.la c3b3a68 scripts/combo-layer: allow updating a specific component(s) only 7f880ca conf/bitbake.conf: remove Opie definitions 362fd55 classes/sdl: remove Opie-specific desktop file/packaging 8a31618 stat: remove NATIVE_INSTALL_WORKS cf10b9b scripts/combo-layer: add branch option to example config 8e7cd32 scripts/combo-layer: avoid saving last revision if unchanged f273c04 scripts/combo-layer: avoid error when config file is outside repo 0656f57 scripts/bitbake: pass through debug options to initial pseudo build 41a83cc guile: fix cross configure failure 754847f Revert the switch to futures for now d366c18 siggen.py: Handle cases where the input to symmetric_difference() may be None d3d1101 valgrind: Fixed Added-support-for-PPC-instructions-mfatbu-mfatbl.patch Upstream-Status a2a03ba gcc: Ensure same sstate hashes for shared soruce directory c62296d gcc-4.6: Some small performance tweaks 12306d0 package.bbclass: Optimise the per file rpm handling d609129 sstate.bbclass: Optimise sstate_hardcode_path 765547e gnupg: Add missing DEPENDS on libgcrypt 84983af sat-solver: Fix build with zlib 1.2.6 a142cbd zlib: Upgrade 1.2.5 -> 1.2.6 65d296a distro-tracking-fields: update clutter, clutter_git and mx 18c3197 clutter: upgrade git recipe to reflect 1.8.4 tag 970fcc8 mx: ensure gettext and dbus are present 15ff81b mx: update to 1.4.2 51c719d clutter-1.8: update to clutter-1.8.4 0de4750 powerpc64-linux: Update cached autoconf values for libpcap on powerpc64 c56792c u-boot-fw-utils: Add for v2011.06 433f2ea distutils.bbclass: override LDSHARED so we use the linker for this build and not the one used in sstate-cache ef5bad0 cross.bbclass: add virtclass handler af85900 useradd.bbclass: skip processing on virtclass-cross extended packages d905653 external-csl-toolchain: fix mtd-user.h issue 8d41b0d bitbake-layers: add copyright notice 1e8b629 tcmode-default: add preference for gdb/gdbserver 1a35ed4 classes/buildhistory: sort list fields in package info 8653bf4 classes/buildhistory: sort image file list 4255cb8 external-csl-toolchain: split out gdbserver packages 57b7b8a external-csl-toolchain: correct binary packaging b5b4066 external-csl-toolchain: set PKG/PKGV for staticdev af1ddab task-core-tools-profile: fix valgrind for arm and systemtap for mips 8054217 poky.conf: Fix the MIRROR URI be174f3 task-core-tools-profile: change to match oe-core eb1be23 mirrors.bbclass: Add yp.org and oe.org to fallback mirrors 0c1386c uclibc: Upgrade recipes from 0.9.32 -> 0.9.33 b9ff968 dhcp: move dhcp leases files handling to postinst/postrm 54fd9ad gcc-cross-testing: Fix evaluation of user and target name d6b885b classes,recipes: Replace POKY_* with CORE_IMAGE_* 41936cd pseudo: Wrap renameat and opendir bdc50cb mtools-3.9.9: Use correct URI for the mirror a50eeb8 libx11: Backport _XGetRequest API a402167 libdrm: Fix build failure unearthed by uclibc fadd554 python: Fix build failure of python-elementtree on x86_64 7d9ac1d gconf,consolekit: Avoid polkit when compiling with uclibc fd2983e runqemu-internal: qemuarm can handle 256M a481c10 Enable options needed for ltp to compile 7215c25 task-core-tools: Divide it into 3 recipes 8df37ad linux-yocto: fri2: use emgd-1.10 5d02d8d kern-tools: remove explicit 'yocto' references from auto-bsp handling a6065e7 linux-yocto: rt compiliation fix bb1e769 linux-yocto: meta updates for sys940x and cleanup 568bdc7 linux-yocto: locate and use out of tree features specified on the SRC_URI 44f0a2c xorg-apps: Bump PR to accomodate meta-oe recipe deletion 23c4961 udev: stop providing cache support by default 98a994a systemtap: build and install uprobes.ko c2c215b systemtap: extend the recipe to build the native package 3709697 systemtap: bump SRCREV to grab version 1.7 ce0740f u-boot inc: update inc file for newer u-boot versions 5a33401 libcap: Cope with ${libdir} and ${base_libdir} being the same f2b55ac libusb-compat: Cope with ${libdir} and ${base_libdir} being the same 83dcff4 libusb1: Cope with ${libdir} and ${base_libdir} being the same e33f828 webkit-gtk: Make webgl support configurable via DISTRO_FEATURES. cc036d4 webkit-gtk: Fix error.html resource path. c54070c openssl-0.9.8: Remove in favor or 1.0.0 4825e2a gnupg-1.4.7: Update Patch Info 0e80bb7 busybox: Add flock utility to default configuration. 67cfa74 bootimg: Use the same OS files for each boot method 50a097b tune-mips32.inc: Add mips32-nf and mips32el-nf cb89d43 libzypp: add missing runtime dependences on gzip and gnupg 8fcfbae gnupg: add 2.0.18 (initial recipe) 6034d1c libksba: add 1.2.0 (initial recipe) 3301dc4 shadow-securetty: allow root logins on usb serial gadget device 3b1ad76 classes/patch: optionally return non-patch sources 4be9d82 Add EXTERNAL_TOOLCHAIN to CMAKE_FIND_ROOT_PATH a299396 external-csl-toolchain: extract version info from the toolchain 79e48d8 external-csl-toolchain: leverage eglibc's packaging for more granular output cbe0a0d external-csl-toolchain: support ia32 c0d7e9b external-csl-toolchain: support mips/ppc/arm b942a8e eglibc-package.inc: don't include debug files in -pic 34ba3b6 binutils: fixes for build with an external csl toolchain 6cafc00 LSB_Setup.sh: Add locale resources and startup script avahi-daemon bb5704a init-functions: Add two functions 14e6b02 strace: add x32 support e1be40c byacc: upgrade from 20111219 to 20120115 e87bbf1 distro_tracking: update for current upgrades 85beca9 python-dbus: upgrade from 0.84.0 to 1.0.0 f0262b7 quilt: upgrade from 0.50 to 0.51 a03c350 gdb: upgrade from 7.3.1 to 7.4 f5d505e gmp: upgrade from 5.0.2 to 5.0.3 0637f1b distro_track: Track Updates 6c988aa xf86-input-keyboard: Update to 1.6.1 e7973af xinit: Update to 1.3.2 735371d libdrm: Update to 2.4.30 6e28930 libidn: Update to 1.24 30049f0 file: Update to version 5.10 b1d4d35 gnupg: Add gplv2 version 1.4.7 954a0bf rxvt-unicode: Update to 9.15 cba606f gnutls: Update to 2.12.16 d54c972 openssl: Update to 0.9.8t (gplv2) e2d9ed9 openssl: Update to 1.0.0g 7b36125 self-hosted-image: add package management for correct installation 31f3491 task-self-hosted: add python-pkgutil since it's required 45228d3 task-self-hosted: add disk partitioning tools f7a1bd4 linux-yocto_3.2: Fix missing quote that was triggering parsing errors a402d0e meta-yocto/local.conf.sample.extended: add LICENSE_FLAGS_WHITELIST section 15f09b1 atk: add native / disable introspection / merge atk.inc->recipe / change license cd5225a gconf.bbclass: Add proper RDEPENDS to packages with gconf postinststep. 7bc766b distro_tracking_fields: take sysklogd off Saul's plate 5c3323b sysklogd: various fixes so it starts/stops cleanly f408dd1 pciutils: fix configure script for dash ac62f06 udev: improve udev-cache robustness 7923ba8 external-csl-toolchain: avoid the hardcoded version/prefix ae21dc1 external-csl-toolchain: fixes for metadata changes aa2c4e3 libc-package: fix typo in LOCALETREESRC default value 6028cd1 external-csl-toolchain: fix critical PATH manipulation bug a95445c bitbake: Add description into the cache and clean up cache duplication 8d4d9a1 package bbclass: allow per package PRIVATE_LIBS 8ac227e Fix the issue that adt-installer tar ball is not regenerated if sstate is on, and other minor bug fixes 58026ec e2fsprogs: remove unneeded patch and re-enable PARALLEL_MAKE 7664058 pkgconfig: Ensure pkgconfig RDEPENDS are tracked ef32862 opkg-utils: convert to git repo at git.yoctoproject.org 2175842 bootimg: Do not force FAT32 on all images, it violates the FAT specification 89b71a5 meta-yocto/poky.conf: set qemu* preferred linux-yocto version to 3.2 6719d3e linux-yocto/meta-yocto: create linux-yocto 3.2 bbappend 1655fd1 linux-yocto/meta-yocto: update to v3.0.18 + features 6466229 fetch2/git: Add workaround for clone using alternates problem 38daf8b cooker: add missing shutdowns to the exception handling 5552627 prserv: Do not ping PRService if not required 90e99a5 bitbake-layers: list overlayed classes in show-overlayed 86a5fcd bitbake-layers: add show-recipes subcommand 526264e bitbake-layers: improve show-overlayed output 3d2f6d5 bitbake-layers: use directory name as layer name cf425a1 bitbake-layers: use dashes in subcommands 936aca7 rootfs_ipk: remove runtime_script_required usage 22181a7 gcc-runtime: fix override from poky-lsb to linuxstdbase 0de4137 default-providers: add kbd as PREFERRED_PROVIDER for console-tools dc15367 gdb-common: Drop elfutils from DEPENDS a092311 linux-yocto: update to v3.0.18 + features e670fdc linux-yocto: add kernel 3.2.2 support 278e53c kern-tools: import config audit and branch manipulation updates 0d1dee2 tzdata_2011n: provide pkg_postinst and timezone defaults ae3184c classes: replace 'Poky' with 'OE-core' 2805ff1 alsa-utils: make alsa-utils-alsactl recommend alsa-states a26a2cb alsa-state: fix RDEPENDS assignment 37d93b9 qt4-tools-nativesdk-4.8.0: fix build 9123e9e genext2fs: fix inode computation 84e24f0 image_types.bbclass: refactor cpio images generation. 636d7e3 useradd.bbclass: Fix missing quote b719d7e useradd: Ensure dependencies are only added for target recipes, not native or nativesdk df823d5 distro_tracking_fields: fix the typos in the field of maintainer. 973f93c libtool 2.4.2: fix missing quote in FILES_libtldtl 75fcfde useradd.bbclass: Add explict setscene dependencies to ensure correct ordering of setscene tasks 3b47c53 useradd.bbclass: Ensure pseudo can load in the pseudo unloaded case 0a3a15c useradd.bbclass: Execute user addition code before do_package_setscene, not after do_populate_sysroot_setscene 9a58e31 sstate.bbclass: Add support for sstate preinst functions de7a6ab runqueue.py: Add inter setscene task dependency handling 9aeb38a runqueue.py: Fix missing setscene dependencies 2a361cd data/runqueue.py: Fix commented out test code after variable name changes 238a47d shadow-sysroot: Simplfy login.defs installation f54a443 libgcc: Add INSANE_SKIP of staticdev for libgcc-dev and libgcov-dev 7aa33db insane.bbclass: Add test for static .a libraries in non-staticdev packages cd7da08 pm-utils: Add grep to RDEPENDS to avoid command failures. 494a500 linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE 3a9e568 uclibc-git: Update to latest RC e60acb7 eglibc-2.15: Add upstream status for x86_fenv.patch 5ff048d uclibc: Dont package all .a in uclibc-dev 609f637 util-linux: Change SRC_URI to a fetchable location d8aada2 ltp: Update recipe and fix building on uclibc 8549ebb distro-tracking-fields: update entries for clutter-gst-1.8 6882a60 clutter-gst: update to 1.4.6 0d7dfed cogl: update upstream status for build_for_armv4t.patch 0287f64 gcc-cross: Don't reference machine specific variables 8f55130 bootimg: Fix a math thinko in the block count calculation 0bf6f80 lib/oe/sstatesig.py: Exclude common machine specific dependencies from task signatures 7c88996 shadow: Split securetty into a separate recipe 6b2cb82 gcc-common.inc: Fix comment ef3c1dd gcc-common.inc: Ensure WORKDIR doesn't adversly affect sstate checksums f13ee1e guile: fix a quote in description 5c6aa87 ltp: disable elf binary stripping 1956131 distro_tracking.inc: update the info for recipes upgraded recently 803850a libsoup: update its info in distro_tracking.inc 87b3c3f strace: upgrade to 4.6 27aec8b pciutils: upgrade to 3.1.9 be76d89 ed: upgrade to 1.6 07b940b ofono: upgrade to 1.3 d6dcd8d mobile-broadband-provider-info: bring a new recipe into poky d6a55ca iproute2: upgrade to 3.2.0 e96ec29 bluez4: upgrade to 4.98 a3c6899 bluez-hcidump: upgrade to 2.2 1483a6c kexec-tools: upgrade to 2.0.3 e36a3c1 tremor: upgrade to 18163 (20120122) d70f34f iptables: upgrade to 1.4.12.2 71dbcbc polkit: upgrade to 0.104 35200aa libxcb: upgrade to 1.8 ab315a3 xcb-proto: upgrade to 1.7 12e10a6 pixman: upgrade to 0.24.2 80b9d51 util-macros: upgrade to 1.16.1 eccece9 gcc: move shared .a to their own package 307fcba libgcc: Seperate out libgcov.a from libgcc-dev b227700 binutils: refactor packages for staticdev 7843f8e eglibc: refactor packages for staticdev 70b6b6b opkg: refactor packages for staticdev 930424b opkg: move common code & metadata into opkg.inc to reduce code duplication c6c3f87 tcp-wrappers: refactor packages for staticdev a64c2a9 syslinux: refactor packages for staticdev 6626660 libtool: refactor packages for staticdev 9ed7ac6 gstreamer: refactor packages for staticdev 14953b7 tiff: refactor packages for staticdev 50a073f mpeg2dec: refactor packages for staticdev ed08326 apr-util: refactor packages for staticdev a15f444 sqlite3: refactor packages for staticdev 8d54a0d libxft: refactor packages for staticdev f514242 sysfsutils: refactor packages for staticdev 3507c03 libsoup: refactor packages for staticdev 3346afe augeas: refactor packages for staticdev d74c852 avahi-ui: refactor packages for staticdev bb52d38 apmd: refactor packages for staticdev ca84860 Fix Upstream-Status entries 79af754 documentation-audit.sh: remove COMMERCIAL_LICENSE warning 7301b4c default-distrovars.inc: remove COMMERCIAL_LICENSE et al 2896b4a base.bbclass: replace COMMERCIAL_LICENSE code with LICENSE_FLAGS code 7b81ef8 Add LICENSE_FLAGS to packages mentioned in COMMERCIAL_LICENSE b68ea54 license.bbclass: add support for LICENSE_FLAGS 127d1fd core-image-foo: add description to each image bb file 6b2b5d2 initscripts: remove space from shebang, just cosmetics c6a2c30 initscripts: add shebang where it was missing completely d4a942f qemuimage-testlib: rename qemuppc image 21b3f5d linux-yocto/qemuppc: fix console and ethernet c47def3 gcc_4.6.bb: Drop duplicated SRC_URI component 4ad01bd gcc-package-cross.inc: Mark do_package* tasks as noexec a7b32bd bitbake.conf: Switch to the OEBasic signature generator 85cf3ed lib/oe: Add sstatesig, OE specific signature generator classes b454cb7 sanity.conf: Incrase bitbake minimum version requirement to 1.15.1 280e5fd gcc: Ensure that the shared source directory shared the same sstate hashes 76c16c4 Bump the version to 1.15.1 3fe81df distro_tracking: update libpng, libgdbus, opensp, nfs-utils manual check dates 3c5f108 prserv: fix import of sqlite3 7a8bae9 siggen.py: Abstract the runtime task dependency handling code in the generators c4a8fab cooker.py: Allow siggen classes to be added by the metadata 8878ee8 bitbake/fetch2: allow resuming interrupted fetch 42645b0 bitbake/runqueue: always log tasks summary f3e5186 siggen: Ensure correct runtask dependency output is shown for diffsigs 11cce80 usermanual: Correct "inherit" search to bbclass from oeclass 0779a90 cooker: use futures rather than a multiprocessing pool 299fa34 Add dependency on the backported python 3.2 concurrent.futures 7a8e1ef rspro-conf: remove usbgadget from routerstationpro 967de59 buildhistory_analysis: include related fields in output 11e5d7b classes/patch: avoid backtrace when patch does not apply adb3ed2 task-base: rename VIRTUAL-RUNTIME-alsa-state to use underscore dac8259 hdparm: remove PRIORITY 5cf2833 buildhistory_analysis: improve field handling robustness c1cebf6 buildhistory_analysis: correctly handle whitespace when splitting lists 2f4f8ef buildhistory: record additional image info ffa93f0 grub-efi-native: fix errors with automake 1.11.2 6ddf0b2 autogen-native: new recipe for grub-efi-native 34f4ab1 guile: new recipe for autogen 225a24a libunistring: new recipe for autogen 4cf1776 bdwgc: new recipe for autogen d806311 enchant: refactor packages for staticdev b44c25b boost: refactor packages for staticdev 38b0341 js: refactor packages for staticdev cb06a5a db: refactor packages for staticdev b5dee63 attr/acl: refactor packages for staticdev cdd2f4e liba52: refactor packages for staticdev 40fcaac gst-openmax: refactor packages for staticdev 522c6b3 gnutls: Fix configure issue wrt to rm 5664e3c distro-tracking: add data for newer recipes 2280404 distro-tracking-fields: claim responsibility for udev, dpkg, apt, v86d 4f108e9 xinput: add utility for configuring and testing XInput devices. c2a74cc e2fsprogs_1.42.bb: Fix build fallout for uclibc 89705ea adt-installer: install autoconf(/automake)-nativesdk ea8e63d uclibc: Upgrade to latest master 13a6225 linux-yocto: restore WORKDIR as a patch source directory 80038a0 site/ix86-common: fix an error 05f421f pkgconfig: Move pkg.m4 from -dev to package b19b276 gnutls: Fix compilation on uclibc 6455292 libsoup: Update package from v2.2.100 to v2.2.105 8a7a7fe chkconfig: Update package from v1.3.55 to v1.3.57 3ba7426 busybox: enable dropping of duplicates in syslog, off by default 35d1c68 busybox: change syslog default to log to a file 42f0d50 busybox: enable log level configuration in syslog-startup.conf and script 030bdde busybox: remove incorrect comments from syslog-startup.conf cbc784f busybox: drop MARKINT option from init script and syslog-startup.conf 703e1f0 pango.inc: fix /etc/pango -> /${sysconfdir}/pango/* 4884ccd busybox: defconfig modified in order to activate CONFIG_EXPR_MATH_SUPPORT_64 f127738 m4: A better refactoring 1fedd16 bitbake/persist_data: Reconnect when DB is locked 5724ee9 package_rpm.bbclass: Add support for filenames with spaces 39a9918 beagleboard-audio: drop in favour of alsa-state 9ea681f alsa-state: add beagleboard specific asound.state e2a3695 busybox/uglibc: remove obsolete check for "kernel24" 8773ebe gnutls.inc: set libz prefix 8ca0061 gnutls: add readline to DEPENDS and add --with-libreadline-prefix 925433d pango: create /etc/pango in module postinsts if it's missing 1ca0401 Revert "pango.inc: add directory "/etc/pango"" 8b11a2f openssl-1.0.0: Update to 1.0.0e and fix QA Warning ac27587 openssl-0.9.8: Update to 0.9.8s 7edf3dc valgrind: Update for eglibc 2.15 93d70e4 valgrind: Add mfatbu/mfatbl instructions support for pcc e1d3a32 babeltrace: Integrated from version 0.8 95386cf lttng-modules: Update to 2.0 6d769b2 lttng-tools: Update to 2.0-pre16 6f3d52e lttng-ust: Update to 2.0 a9095e5 m4: refactor .bb and .inc files f290935 classes/packagehistory: remove now obsolete class ee7fb2b classes/package: remove out-of-date notice referring to the OE bugtracker 9d6bf93 conf/bitbake.conf: allow wget to output error messages edef415 classes/base: note variable name in COMPATIBLE_* skip messages 3287e4b prelink: Update to latest version b6b909a task-base: add VIRTUAL-RUNTIME_alsa-state to task-base-alsa 432c6cf alsa-state: move state files to localstatedir c86797a alsa-state: add alsa-state from oe classic 79b6192 task-base: move default definition of VIRTUAL-RUNTIME_apm f07793d distro_tracking: recipe upgrades and manual check info 464a2d6 e2fsprogs: upgrade to 1.42 6ce82ea libpam: upgrade to 1.1.5 35759f9 bitbake.conf: search /lib for -native builds 73a7876 libtool: Put all libltdl headers in the correct libltdl-dev package 023fe87 grub-efi-native: fix errors with automake 1.11.2 866ed43 package.bbclass: quote pathname given to objdump f20d493 image_types_uboot.bbclass: Add uncompressed ext2 image option 2eb5811 image_types.bbclass: Fix generating uncompressed ext2 images e0ae57d dbus-1.4.16: use INC_PR from dbus.inc to fix PR bump after dbus-launch-helper permission change e7a31cf runqemu: Fix the wrong path of libGL.so in 64b Ubuntu 11.10 a521f9d distro_tracking_fields.inc: Modify the status of eds-tools and mingetty 5fabe90 xorg-*: disable xmlto where it was failing 1db019a alsa-utils: depend on libsamplerate0 1cabda9 bootimg: Account for FAT filesystem overhead in image size 19247e4 oe.license: avoid the need to catch SyntaxError 7ce9733 oe.license: add is_included convenience function 49a0821 copyleft_compliance: add debug message with the reason for exclusion 6d73a19 copyleft_compliance: add control of recipe types to include 7561d5b linux-yocto: consolidated fix SRCREV updates bec7def tslib: enable big endian support for qemuppc 57e78fa qemuppc: add machconfig b98851c qemuppc: add pointercal file 523f6b6 qemuppc: replace emulation of qemuppc from prep to mac99 573daf6 hdparm: upgrade to 9.37 7a20966 stat: add recipe stat with version 3.3 fb87847 distro-tracking: Update info for webkit-gtk, web-webkit d0cc840 distro_tracking: update manual_check_date fields f934088 btrfs-tools: upgrade to newer git commit ccd2a31 libpcre: upgrade from 8.20 to 8.21 8f44e90 insane.bbclass: fix elf.arch not matching error for x32 kernel dd04a42 diffstat: upgrade from 1.54 to 1.55 3754d75 locale: fix package's "provides" tag 4807e0b ncurses-native: install to libdir, not base_libdir b5ad377 ghostscript: build cups filters 254b9de wpa-supplicant: Compile without CONFIG_GNUTLS_EXTRA (PR BUMP) 7c8ebf6 pango: Use gnomebase class, not gnome b02e7d4 gconf: enable gtk+ 2.0 support to build gconf-sanity-check-2 f17c9d3 buildstats: tolerate absence of /proc/diskstats 18fe75d dhcp: package /var/lib/dhcp with dhcp-client rather than dhcp-server 16d911d cairo 1.10.2: enable tee backend 0941180 pango.inc: add directory "/etc/pango" e2948fe cairo.inc: Change configuration of directfb to gtk-directfb beb601f gtk.inc: Change configuration of directfb to gtk-directfb 684c6ef bitbake/knotty: print task failure summary 9fd17bb bitbake/cooker: avoid printing stack trace for -b match error 5f5ae14 bitbake/fetch2: reduce output for fetch failures eb6291b bitbake/knotty: avoid printing full task log when error already printed ecdfc1e bitbake/fetch2: correctly decode exit signal/status 4e8085c bitbake/runqueue: avoid "failed" in task summary if nothing did dcf6b64 bitbake/fetch2: improve error formatting for fetcher errors 98a610b bitbake/knotty: don't count errors as warnings in summary 8a98af2 patch.bbclass: Ensure the DATE and SRCDATE variable exclusions apply to the correct function 0f4d99d multilib.conf: Clean up file and add missing entries for various dependencies f1a0005 binutils-cross-canadian: Clear BBCLASSEXTEND as a native version of this recipe makes no sense 305d60f python-native: RPROVIDE python-core-native since pycurl-native depends on it 9cc67a0 libxft: Drop BBCLASSEXTEND nativesdk since dependencies freetype and fontconfig aren't class extended f43afc3 lzo: Add BBCLASSEXTEND nativesdk so lzop nativesdk works (it depends on this) 83b91fc rpm: Fix magic file name magic -> magic.mgc 18c88fc package.bbclass: per recipe PRSERV_HOST support a05e3a5 meta/PRService: Added export/import fuctions. 6bde156 Incremental rpm image generation(Add config sample) 9d1823b Incremental rpm image generation 489cde8 bitbake: Automatically start local PR service. 30a9bc6 bitbake/PRservice: Added no_hist mode and export/import. 4a8a3c5 Revert "site/common-uclibc: Cache gl_cv_func_wcwidth_works" d8b4992 distro_tracking: update manual check info 4005c3f license.bbclass base.bbclass: support for 'or' operand in LICENSE and for SPDX license names a546308 bitbake: Add BBHandledException exception class e4a3650 bitbake/knotty: Show summary of warning/error messages shown b838b89 bitbake-layers: close files in apply_append() 2a121d5 bitbake-layers: flatten: warn the user if output structure is incorrect 4137b51 bitbake-layers: flatten: allow specifying layers to flatten 89f2d11 distro_tracking_fields.inc: upgrade tcf-agent 3214f66 distro_tracking: Update Manual Checks 2bcdcce task-core-tools: adapt to kexec-tools package split 0c91196 kexec-tools: split packaging of kexec and kdump 3996288 util-linux: .pc files should go in the -dev packages for subpackages de58f3c util-linux: Enable fallocate and use CACHED_CONFIGUREVARS d11425d findutils: Use CACHED_CONFIGUREVARS to specify cached configure vars 469b134 uclibc: Configure UCLIBC_HAS_WCHAR based on libc-posix-clang-wchar distro feature c9f68fc autotools.bbclass: Introduce CACHED_CONFIGUREVARS ac7a6e7 libxml2: add shared library version info to libxml shared libraries 4b6df4f eglibc: Upgrade recipes 2.14 -> 2.15 f164a95 update-modules: don't run modutils.sh if systemd is installed 118a0af gtk-icon-cache.bbclass: add -f option to gtk-update-icon-cache in postinst 2a9e6f3 dbus: change permissions of dbus-daemon-launch-helper to 4755 d10d1e1 Remove last remnants of kernel26 MACHINE_FEATURES efc0684 libusb-compat: keep *.la in base_libdir 42d1090 libusb1: keep *.la in base_libdir f558210 libiconv_1.14.bb: Fix build failure 6f99591 site/common-uclibc: Cache gl_cv_func_wcwidth_works 783c6ef add sysroot support for meta-ide-support which is the toolchain within build env case f1e5821 libxxf86dga: fix compilation with x32 toolchain 468998c command.py: add parseConfigurationFiles API ce9e6ba bitbake: add a new option "--server-only" eb2a8fe cooker: remove command import in cooker.py 4c30a7e cooker: remove command import in cooker.py e69e5a7 xmlrpc: Change BitbakeServerInfo init function cf13bfe command.py: add initCooker API 7d7d3a0 cooker: user bb.configuration.data to inject events 1c08843 command.py: Modify needcache value for certain functions 2b8bd22 base-files: filesystems: fix mount order 5599d3a documentation/yocto-project-qs/yocto-project-qs.xml: removed disable dash text 1930230 documentation/yocto-project-qs/yocto-project-qs.xml: Added libxml-parser-perl pkg 03df4ce documentation/poky-ref-manual/ref-variables.xml: image size glossary 01d5729 documentation/poky-ref-manual: Enabling recipes with commercial license requirements 40f44ec documentation/kernel-manual/kernel-how-to.xml: general edits fbfb9b7 documentation/kernel-manual/kernel-concepts.xml: General edits. ab808a9 documentation/kernel-manual/kernel-doc-intro.xml: General clean-up 279ad0f valgrind: add powerpc to the compatible host and add ${TCLIBC}-dbg in RRECOMMENDS-powerpc 9ce6464 bblayers.conf.sample: Use ?= to set BBLAYERS 5a03cf2 image.bbclass: Use ?= to set LINGUAS_INSTALL 72fc52b x11-common: remove extraneous BSP customizations dfa7034 xorg-driver: add xf86-video-fbdev from meta-openembedded 011a495 systemtap: remove not needed fix for automake 1.11.2 801bd4b mc: remove not needed fix for automake 1.11.2 39d5655 automake-1.11.2: backport pkglibexec_SCRIPTS fix 3bdcad7 vte: update patch header f3a21d5 libevent: fix compilation for x32 f2fb10e python-pycairo: fix for x32 8178e63 udev: ensure /dev/pts and /dev/shm does exists f51ecaf initscripts: avoid mounting /sys if it is already mounted ec28705 qt4-x11-free.inc: use QT_BASE_NAME from qt4x11.bbclass 83634c3 qt4-embedded.inc: use QT_BASE_NAME from qt4e.bbclass e30de29 qt4x11.bbclass: add QT_BASE_NAME for use in recipes 6756bc0 qt4e.bbclass: add QT_BASE_NAME for use in recipes e2ccea0 qt4-graphics-system: add 6fc0bfd linux-yocto: use src_patches for out of tree kernel feature support a27ebca linux-yocto: bump kernel version to v3.0.14 b3cc230 kern-tools: import flexible branching support 9beabe3 classes/buildhistory: remove redundant package history checking stub 6542028 classes/buildhistory: make the package version backwards error non-fatal c8d4807 classes/buildhistory: add hostname to commit message fcc5f68 buildhistory: add script to check for significant changes f22c292 gnutls: remove gettext patch for non-GPLv3 815c7e8 util-linux: Update patch for non-GPLv3 1d2451a distro: Update poky-tiny distro definition 7402c8a autoconf: fix nativesdk rdepends 5797fea image-mklibs/package_ipk: Remove bashisms a10af67 distro: Add poky-tiny distro definition c226ccb matchbox-wm: Remove x-session-manager handling 198f2ac libusb-compat: move libraries to base_libdir 0540982 insane.bbclass: use bb.process.Popen instead of subprocess.check_output 7f837eb bitbake/runqueue: Improve the setscene logging 8e43f9a multilib: Abstract class extension code into classextend.py 0fa52f7 native.bbclass: Fix variable remapping coverage 5aabdba core-image-gtk-directfb: add a bb file to build an image for gtk over directfb 2f60d9a binutils-cross-canadian: Allow ld-is-gold 7b15d99 Patch Upstream-Status Update fc53fa7 udev: remove commented code from init script (no code changes) 27b45f6 udev: split utilities onto udev-utils 53efd43 udev: use 'echo' instead of 'echo -n' in init script 352b912 xserver-kdrive: work around issues with -Werror=address 28b6f1f opkg-utils: use /usr/bin/env python 6126f96 python-native: correct prefix handling for oe-core sysroot layout 29feb44 insane.bbclass: add QA tests for unsafe references to exec_prefix d34292c libusb1: move libraries to base_libdir 67b66d5 e2fsprogs: move libraries to base_libdir f5023f5 util-linux: move libraries to base_libdir d1536ee libcap: move library to base_libdir f8f5c05 ncurses: move libraries to base_libdir db0f4a9 glib-2.0: ensure dtrace is diabled for all distro options and fix packaging 8b26d11 libxp: fix cast error 4de7aaf image_types: Fix rootfs size calcuation c5996fd qt4: add Upstream-Status to recently added qt-4.8.0 patch a6e61c0 conf/local.conf.sample: fix typos/grammar/formatting 2210623 README: add short description of OE-Core 464f847 classes/update-alternatives: fix typos and grammar 021848b valgrind: Fix for automake update 51d6445 fetch2/git: change colon to dot in ud.host f540034 bitbake-layers: fix Python error during parse e47a5da bitbake.conf: remove some redundant/unnecessary variable exports c4de612 populate_sdk_ipk.bbclass: Ensure the correct environment is setup for postinstalls 3f4f440 poky-tiny: remove poky-tiny, it was added to the wrong accidentally c26554a distro-tracking-fields: update qt recipe info 670706d qt4: add version 4.8.0 99a6e1a qt4: fix incorrect architecture for qt4 tools 120ea47 busybox: rename syslog.conf to syslog-startup.conf 9385536 vte: upgrade from 0.24.3 to 0.28.2 f212c81 prelink: also look at nonstandard lib paths 381a4a2 mc: fix configure with automake 1.11.2 00f0d4a cogl: ensure we can build on armv4 87babb7 linux-tools: add binutils to perf DEPENDS 0ff1d66 distro: Add poky-tiny distro definition fdbb0d9 distro: Add POKY_DEFAULT_EXTRA_R* variables 1fcf1fa linux-yocto-rt/meta-yocto: add routerstationpro support 9e99322 linux-yocto/meta-yocto: routerstationpro/beagleboard: add 3.0.x support f3a1a88 pseudo: ensure libs are included in package 17b399a glib-2.0: disable dtrace due to host contamination 78a3b1e gnutls: more gettext version fixes 8eb45ac btrfs-tools:Fix multithreaded building 761acbb automake: upgrade from 1.11.1 to 1.11.2 99e4a9a quilt upgreade from 0.48 to 0.50 d3609d0 btrfs-tools: add attr as dependency to fix compilation d05dd52 texinfo: fix gettext patch 3923747 puzzles: fixed SRC_URI Checksums 3b798c8 elfutils: fix for dso link change in recent ld fa03a6d rpm2cpio.sh: make compression tests case-insensitive 9c6601a libassuan: Upgrade to 2.0.3 cfa0eb3 apr-util: Upgrade to 1.4.1 e3928c5 lighttpd: Upgrade to 1.4.30 8a21b1d distro_tracking_fields.inc: update the info 1e62bfc util-macros: upgrade from 1.15.0 to the latest 1.16.0 2ed0506 libpciaccess: upgrade from 0.12.1 to 0.12.902 9272288 lttng-ust: upgrade from 0.15 to the latest 0.16 de364b1 liburcu: upgrade from 0.6.4 to the latest 0.6.7 9b32919 mdadm: upgrade to the latest version 3.2.3 a57cda0 buildhistory: improve git commit robustness f724b7b distro_tracking_fields: update the info for this round of package upgrade d33139b puzzles: upgrade to r9375. 26096cf watchdog: upgrade to 5.11 8cc94ca quota: upgrade to 4.00 c67877c matchbox-wm-2: ugrade to 01fa5465743c9ee43d040350f4405d35293e4869 c59b9d7 linux-firmware: upgrade to 15888a2eab052ac3d3f49334e4f6f05f347a516e 76d37ba libomxil: upgrade to 0.9.3 5e669dd oprofileui: upgrade to 82ecf8c6b53b84f80682a8312f9defa83a95f2a3 7463ae4 distro_tracking_fields: update the info for recipe upgrade. 91d9b9c procps: raise update-alternatives priority ecad149 systemtap: fix configure with automake 1.11.2 1926297 avahi-ui: fix build with automake-1.11.2 f99917d gcc: mark upstream status for all patches ca1311b perl: mark upstream status for all patches 8939bdd misc patches: fix patch headers 5b5914f avahi: fix configure with automake 1.11.2 5365bd6 jpeg: fix configure with automake 1.11.2 b334757 autotools.bbclass: fix cp error for empty dir 07d8391 rpm: fix build with automake-1.11.2 35c2d56 byacc: upgrade from 20110908 to 20111219 701f4da distro_tracking: Updated for Upgrades and Manual Check Dates af16228 boost: Update to 1.48 and Clean ups ece80fe Add Upstream-Status to patches 70c18f2 rxvt-unicode: Update to 9.14 0203b2b util-linux: Update to 2.20.1 60a8f94 python: add md5module support aff9305 dropbear: fix CRYPTLIB patch abd108a libiconv: Update to 1.14 8f6c10e resolvconf: Update to 1.63 199a909 wpa-supplicant - pulls GPLv3 license rpm in a non-GPLv3 build (libgnutls-extra) 2d8a747 gnome-keyring: fix gsettings_data_convert seg fault a770fe0 glib-2.0: we need zlib db36190 image_types: Ensure /init exists for cpio rootfs archives b2266ed task-core-boot: Allow DISTRO to disable keymaps via VIRTUAL-RUNTIME_keymaps 95ba9b7 linux-yocto-tiny: New kernel recipe for tiny distros b5d6121 udev: skip mounting /dev on tmpfs if it is on devtmpfs d97d07c udev: use tabs for init script (no code changes) e412dbf udev: reorganize files of 164 version 005b67f udev-extraconf: move mount.blacklist to udev-extraconf dir f4e60ec udev: drop 145 version a99a639 distro_tracking_fields: update the info for recipe upgrade. 86e3dff rpm: Fix rpm database files capacity issue. 38c2f66 classes/image: implement generic locale package installation 8a77467 u-boot: improved DESCRIPTION, fixed HOMEPAGE 5b337ae patch.bbclass: abstract out logic that determines patches to apply bd36ddf libevent: upgrade to 2.0.16 e0ce1d7 chrpath: upgrade to 0.14 08beac8 distro_tracking_fields: update the info for recipe upgrade. af8002b libsamplerate0: upgrade to 0.1.8 d590255 libical: upgrade to 0.48 1fe4b74 glib-2.0: upgrade to 2.30.2 fd36143 minicom: upgrade to 2.5 31cb9db freetype: upgrade to 2.4.8 2d45549 distro_tracking_fields: update the info for recipe upgrading 1d5f989 libpcap: upgrade to 1.2.0 940c1ad ofono: upgrade to 1.0 d4182a2 telepathy-glib: upgrade to 0.17.4 2ae7ca4 valgrind: upgrade to 3.7.0 121972e mtd-utils: upgrade to 1.4.9 9fd6587 gst-ffmpeg: upgrade to 0.10.13 c57aec1 gst-fluendo-mpegdemux: upgrade to 0.10.69 47cd257 gst-fluendo-mp3: upgrade to 0.10.16 632cfd0 gst-plugins-bad: upgrade to 0.10.22 81a427d gst-plugins-ugly: upgrade to 0.10.18 ce70592 polkit: upgrade to 0.103 6e3028c distro_tracking_fields: take the ownership of Mei Lei's cee6349 distro_tracking_fields: update the info for the manual check list (2011/12/24) 00cfb14 buildhistory: avoid quoting issues with the layer list for build-id 7e66c3c base.bbclass: Allow buildstats to be optionally supplied 68ea0d5 self-hosted-image: Add builder user and mini X 4203c7b Add "builder" user for specific purpose. 192fbe7 Add mini X core tasks 4d13ca9 mini-x-session: Add this recipe as the session file for mini X dc27861 linux-yocto: use PATH to locate kconf_check 6ede5cf kern-tools: update SRCREV to pickup git operation fixes 01a169b linux-yocto: update hardware reference boards to 3.0.12 2af383c linux-yocto: add cedartrail BSP support 77d845c classes/rootfs_rpm: handle recommends in query functions 663c893 webkit-gtk svn: update to r101488 551ffe9 prelink: update to latest git version f5aa3bb coreutils: ensure --color works so DEPEND on libcap 188606b which: Disable iberty since its not listed in DEPENDS f9b683c kernel.bbclass: fix pkg_postinst and pkg_postrm 9a3a4cf which: Add missing SRC checksums 5645aeb gperf: Add missing SRC checksum f9557f3 udev: Remove linux-libc-headers dependency 4cbbf27 rpm_5.4.0: Fix configuration issue with native/nativesdk 71ed507 package_rpm.bbclass: Add RPMSPEC_PREAMBLE 77edb00 package.bbclass: Adjust RPM call to use dynamic location for magic files 79bb1cc Change -mno-thumb to -marm 1090bc4 qemu: explicitly disable kvm support for native without kvm header d350b31 opkg: Fix installation order in feeds with mutiple providers of packages 0db3aad connman-gnome: update SRC_URI to new repo 197fe3d distro_tracking_fields: Update curl info and fix other recipes' typo issues 531843b curl: Upgrade from 7.22.0 to 7.23.1 985a5e7 bash: Add SRC_URI Checksums for GPLv2 b917222 zypper: add patch from libxml2 05eabde arch-powerpc: set PACKAGE_EXTRA_ARCHS e979941 image-types: add btrfs as a supported fstype ad73b12 binutils: fix building on distros with matching binutils version b429ba9 gmp: Don't check "$CC $CFLAGS" for x32 in gmp configure bb6f2fb wget: fix a host intrusion issue introduced by adding --with-ssl=openssl. 7bde933 socat: add the latest stable version 1.7.2.0 13d2dc2 libsync: move to git.yoctoproject.org 3c247d4 distro_tracking: Mark Upgrade Info cd4beea libdrm: Upgrade to 2.4.29 4890cf6 texi2html: Upgrade to 5.0 15fcdd1 mc: Add version 4.8.1 now GPLv3 d120aa5 libidn: Upgrade to 1.23 56906d0 augeas: Upgrade to 0.10.0 99e14dc python-pycairo: Upgrade to 1.10.0 1ca8bb2 distro tracking: update man-pages, gts-plugin-bluetooth, usbutils, dee0fc1 multilib.conf: Enable shadow-sysroot and libffi 212bd37 gypsy: fix LICENSE field 7b023ba udev: tidy the LICENSE fields a23e9ee apt: clarify LICENSE as GPLv2.0 bbe1710 eds-dbus: replace o-hand example contact 633d7a7 mtools: fix SRC_URI for GPLv2 version 4260f03 libxsettings-client: fix SRC_URI db1746b libmatchbox: fix SRC_URI 2f43113 matchbox-themes-extra: fix SRC_URI 813cc8e matchbox-desktop: fix SRC_URI 4536aef xrestop: fix SRC_URI and LICENSE bd66d22 less: Correcting generic license 7a708b1 task-core-tools: add ltp to testapps list 1a260d0 distro_tracking_fields: add information for ltp 2d1a411 ltp: Add recipe from OE 2ee3156 license: Fix manifest conditional e559160 ncurses: Allow override of ENABLE_WIDEC b608f9e matchbox-session-sato: clarify LICENSE in GPLv2.0 908986e matchbox-desktop: clarify LICENSE is GPLv2.0+ 3980c48 pango: clarify LICENSE is LGPLv2.0+ c6ecaf5 matchbox-wm: clarify LICENSE as GPLv2.0 58cfa4f cogl: clarify LICENSE as LGPLv2.1 and fix metadata 5b2452c clutter: clarify LICENSE as LGPLv2.1 bdf7a0f dpkg: clarify LICENSE as GPLv2.0 4648aad ui/crumbs/hobprefs: trigger a reparse after changing IMAGE_FSTYPES 25e449a ui/crumbs/runningbuild: handle InvalidTask events 94c916d vim/syntax: Recognize ?? operator 32acdda libsdl 1.2.14: fix packaging 45987c5 eglibc: Fixes for running regression tests af9c75c gcc-4.6: Let G++ relocate gxx-include-dir when using --sysroot option 2480cc6 gcc-cross: Add cross testing driver for running regression testsuites 6082313 eglibc-testing: Clean the test before running them aa37393 connman: disable 'alg-test' building ba8f367 icecc.bbclass: also use icecc for kernel modules compilation 7c86057 libatomics-ops: move docs to correct directory 6ea9711 Add missing SUMMARY fields to various recipes 553302b mktemp: mark patch as upstreamed 1395111 opkg: Drop the offlineroot_varname patch f4c80d6 opkg: Add logic to detect and creak circular dependencies b281fd1 documentation/poky-ref-manual/technical-details.xml: edits per Richard Purdie c7d2787 documentation/poky-ref-manual/ref-bitbake.xml: Updated BitBake Running a Task 64d5176 documenation/poky-ref-manual/technical-details.xml: Shared State 2ce852a documentation/poky-ref-manual/technical-details.xml: more on YOCTO #1500 4378fd2 documenation/poky-ref-manual/technical-details.xml: Some general edits. 93a78f4 documentation/poky-ref-manual/extendpoky.xml: Fixed typo 5e1255f documentation/poky-ref-manual/extendpoky.xml: intro changed and order changed 9f31ba9 documentation/poky-ref-manual/usingpoky.xml: updated intro paragraph 7098ae1 documentation/poky-ref-manual/introduction.xml: Added reference 31ddf65 documentation/poky-ref-manual/introduction.xml: added new chapter a191e6e documentation/poky-ref-manual: New chapter introduced 9a99147 documentation/poky-ref-manual/usingpoky.xml: Removed comments d122e37 documentation/poky-ref-manual/usingpoky.xml: partial for YOCTO #1500 4ae4f1d documenation/poky-ref-manual/ref-variables.xml: added LICENSE_DIR 1623596 documentation/poky-ref-manual/ref-classes.xml: insane.bbclass updated ee2af26 license.bbclass: remove bashism cdba397 readline: drop empty dir to shut up QA warning db38fb3 libgcc: reintroduce debug package, containing symbols b46e118 bitbake.conf, core-image-minimal-initramfs: add INITRAMFS_FSTYPES 45d3f0c update-rc.d.bbclass: override UPDATERCD for nativesdk 08b7b93 ed: Fix EXTRA_OECONF to ensure right compiler is found 7769180 libical: Fix deadlock in pthread ccc84d9 xserver-nodm-init: Fix xuser creation 1855e94 opkg: Update svn 625 -> 633 and fix preinst issues c7335bd nativesdk.bbclass: Remove historical FILES artifact 4d1c00f bootimg: Use mcopy to construct the hddimg c1f3f3f bootimg: Use dosfsck to clean up the generated live image 02e01e6 grub-efi: specify prefix so it can find grub.cfg 9619f26 grub-efi: Add efi_gop module to payload for physical console support 4ea37a8 grub-efi: Use /EFI/BOOT now that mkdosfs -d works with directories 6036845 Patch Upstream Status Updates 984eb9e perl: add .pl, pm, pod, sh files to SSTATE_SCANE_FILES 228c43c libtool-cross: Add libtool & libtoolize to SSTATE_SCAN_FILES 54a0c2e gmp: Add gmp.h to SSTATE_SCAN_FILES 487adcd icu: Add Makefile.inc to SSTATE_SCAN_FILES 6b2027d sstate: Add SSTATE_SCAN_FILES da23623 qt-mobility: Fix QA error for debug files 8413a9b dosfstools: fix populated image creation with dirs 7e0c29c cross-recipes: Disable nls in gettext bbclass 91367de initscripts: fix timestamp checking at bootmisc.sh fe2d3c0 distro_tracking_fields: update cogl and clutter d29ea11 clutter_git: update to 1.8.2 tag b1ce937 cogl: update git recipe to 1.8.2 827dfe8 clutter: upgrade to 1.8.2 1409daf cogl: upgrade to latest stable cogl 1.8.2 10a0041 scripts/bitbake: add a version >= 2.6 check 44d8f38 scripts/runqemu: show an error if /dev/net/tun is unusable bc13ebe qemu: for native, do not fail if kvm is unavailable b5c9153 icecc-create-env-native_0.1.bb: drop 'PRIORITY = "optional"' as it is the default 9cd65cc grub_1.99.bb: drop 'PRIORITY = "optional"' as it is the default cb39cfa grub-efi-native_1.99.bb: drop 'PRIORITY = "optional"' as it is the default 9d136b2 gdk-pixbuf: Ensure the binaries can be relocated bf2ab7e python: bump PR due to arm OVERRIDES change 4707daf xf86-video-omapfb: bump PR due to arm OVERRIDES change 2c0c977 qt4: use armv6 override instead of armv6-vfp e0a12db directfb-examples: add package directfb-examples to OE-core 995a09e dosfstools: Add patch to disable fat32 autoselection and behave as 2.10 bade85e boost : Do not use icu when building boost. 3994ad0 u-boot: renamed dir from uboot to the more appropriate u-boot 23f1ede qt4.inc : Add uic, moc, rcc, and lrelease to tools package. cf00885 kernel.bbclass: Allow do_compile_kernelmodules to use PARALLEL_MAKE ebe66be conf/machine/include/arm add extra MACHINEOVERRIDES like x86 does 406593f connman: improve packaging d6860b2 task-core-gtk-directfb.bb: Add task list to run gtk over directfb c9b1fed gtk: add demos to the configuation of gtk+ 4bf7368 gtk.inc: add feature based on directfb 627b230 pango: Disable x11 when pango doesn't run over x11 f1a4878 cairo: add directfb DISTRO_FEATURE 6471e4c ed: remove unsupported option 779d07d bash: Add SRC_URI Checksums for GPLv2 63eebab gmp: Add SRC_URI Checksums for GPLv2 df35bf3 sed: Add SRC_URI Checksums for GPLv2 0a2ff4d gzip: Add SRC_URI Checksums for GPLv2 ced61e8 gawk: Add SRC_URI Checksums for GPLv2 8bab93a findutils: Add SRC_URI Checksums for GPLv2 4ae7e63 ed: Add SRC_URI Checksums for GPLv2 13594d6 readline: Add SRC_URI Checksums for GPLv2 5ac76dc coreutils: Add SRC_URI Checksums for GPLv2 ab31da7 eglibc: Generate cross testing script during install 9764432 task-core-nfs: Add nfs-utils-client to RDEPENDS 023368f qemu-0.15.1: Bump recipes from 0.15.0 to 0.15.1 bd75266 license: PR bump failure e38c283 scripts/send-pull-request: fix typo 5cb246d x86 tune: fix TUNE_PKGARCH definition for proper PACKAGE_ARCH 6e8e25f openssl-1.0.0e: Update x32 Configure 5af89cd libacpi: Use the cross strip instead of host strip d22f851 siteinfo: create a new siteinfo for x32-linux 800f7e4 pax: fix compilation with x32 toolchain 3424702 mesa: Properly create share library for x32 b9e3ddc findutils: Fix compilation for x32 toolchain 2e82fe1 libacpi: Fix libdir for x32 8ae6359 pulseaudio: fix compilation with x32 toolchain cd044f6 mdadm: Make custom CC definition conditional 3c96a53 gst-fluendo.inc: remove unneccessary hack 0c45ecb dosfstools: update native to 2.11 896f2ab lzop-1.03: add recipe 7ec4499 task-self-hosted: Move tools to host-tools task afbde63 task-self-hosted: Add host-tools task 623d65b task-self-hosted: Added perl-pod (slight reorder) 3d3c165 task-self-hosted: Reorder by Alpha 4f0092f texinfo: fix compile failure due target makedoc binary being used ba006ea bitbake.conf: remove texinfo-native from ASSUME_PROVIDED 1d2908d ncurses: libcurses.so should link to libncurses.so bbc8afb connman: Default to enabling ethernet interfaces faac9ed scripts/runqemu-ifup: Ensure netmask is set correctly 924b1e4 license/copyleft: exception for ast parse 45f6a21 license.bbclass: remove deb exclusion 50195e4 license.bbclass: remove bashism. 43c99c9 classes/rootfs_deb: implement query functions for buildhistory 488e8ba connman: avoid checking for linux/if_alg.h header af7fbd6 connman: disable ntp support 446d944 linux-yocto: update rt branches to 3.0.12 + rt30 241ceba linux-yocto: update META SRCREV for EFI changes 8819b15 linux-yocto: v3.0.12 + EFI fixes 1288313 connman: update to 0.78 9ebdfb0 connman: move files from connman-0.75 to connman dir 77ed881 connman: drop git version 8277ee9 scripts/send-pull-request: allow sending of patches without a cover letter ca5ad87 gtk.inc: ship gtk-demo to independent package 12aba2f gconf: Disable dbus-x11 when x11 isn't in DISTRO_FEATURES 8de191d qemu-config: Disable dbus-x11 when no x11 in DISTRO_FEATURES 3030133 package.bbclass: Adding license collection 5eeea9e OECore license fixes: meta/* cb91ef9 license: manifest and license path c41b31e gettext-minimal-native: Fix License d334527 Add copyleft compliance class 9fb67f8 oe.license: add license flattening code a57de1a license: split license parsing into oe.license 9137883 oe.test_types: move into an oe.tests package 31ac06a sysstat: don't run populate-volatile.sh update in do_rootfs, first boot or without populate-volatile.sh 567ed28 wget: enable https and openssl b41724d self-hosted-image: remove extra space since we use additional disk instead b0de4b0 initrdscripts: add sleep to avoid kernel messages before install message bd21ef9 grub: Create /etc/grub.d ed2ac23 initramfs-framework: provides a modular initramfs 1e459c8 qt4: various tidy-ups 2e50e9b qt4: fix debug symbol stripping 2e02727 bitbake.conf/image.bbclass: Ensure images use the correct passwd/group files cb5a16f distro_tracking_fields.inc: Update dropbear,iproute2,net-tools tracking information. 006e592 dropbear: Upgrade from 0.53.1 to 2011.54 87377c2 dpkg: Fix preinst execution f6d6498 image_types.bbclass: disable cleanmarkers for jffs2 images 5e6261d image_types.bbclass: implement jffs2 summary images (sum.jffs2) 64ee1e6 rootfs_ipk: implement FEED_DEPLOYDIR_BASE_URI support 272f410 matchbox-session-sato: respect VIRTUAL-RUNTIME_initscripts settings a8dd9bc subversion: update 1.7.0 to 1.7.2 and force libtool recreation f17e0ae conf/machine: Don't poke around providers which aren't machine specific/safe edc5467 conf/machine: Don't poke around providers which aren't machine specific/safe e6bbe41 populate_sdk.bbclass: remap packages when generating sdk tarball e679c35 wget: Fix wget alternative path to be /usr/bin not /bin a9c1fca distro_tracking: fix manual entries 040bac5 buildhistory bbclass: avoid absolute paths for files-in-image.txt to avoid diff churn when relocating TMPDIR a5f9706 eglibc: Update 2.14 recipes to latest SVN tip bf6be18 gcc: Backport patch from trunk to fix ICE seen on armv7 with mesa-xlib c7a91da tcmode-default: Remove pinning u-boot-mkimage-native to non-existing version 3859b14 gnutls: Fix fix-gettext-version.patch 359770f distrodata.bbclass:Fix some recipes upstream version check issue. f199156 default-distrovars: missing checksums should raise an error f9c9a62 omap3-sgx-modules: drop from oe-core, it lives in the meta-ti BSP nowadays 70b3434 clutter-gst: upgrade to 1.4.4 b83698e puzzles: set SRC_URI checksums 4bdc8b6 libsdl: Disable pulseaudio explicitly e3a3845 libatomics-ops: patch source code for x32 f5c071d libaio: patch source code for x32 a3cd4f5 xproto: fix compilation with x32 toolchain f3c0a02 liboil: patch source code for x32 b60d604 libxt: fix compilatoin with x32 toolchain 8966475 glib-2.0: fix compilatoin with x32 toolchain a41df69 mesa-dri, mesa-xlib: fix compilation with x32 toolchain 13d0112 gmp: fix the recipe for x32 target 51bfed2 openssl-1.0.0e: fix to wotk with x32 toolchain 4eaa9ff classes/buildhistory: do not save old packagehistory files by default 4c9906c libx11-trim: Fix keysymdir configure option mismatch e5b9ac3 mesa-xlib: Bump PR to resolve various package upgarde conflicts ef1834e classes/buildhistory: merge in package history functionality 6ba6f4a classes/buildhistory: add new output history collection class 45c4f0a classes/packagehistory: fix and extend 4d6f8d4 siggen.py: If both sigs have a variable in it's whitelist then don't say it's changed f6da26f bitbake.conf: add default PRINC 0 to be able to increment it 2dfe169 openjade-native_1.3.2.bb: remove CONFIGUREOPTS as vardep for do_configure 2639c37 Remove the async_cmds and sync_cmds from command.py 897d1cd fetch2: fix Exception parameters when BB_STRICT_CHECKSUM enabled dccb9b9 Remove the duplicated assignments of self.configuration.cmd 9be6d59 dpkg-native: Fix perl path 6a18c3b bootimage: Use ${S} explicitly for generated config files d428862 distro_tracking_fields.inc: update the info 94d49c2 lzo: remove the uncessary autoconf.patch 7b31027 libxfont: remove the unused no-scalable-crash.patch e5b5c3a distro-tracking: Update info after last upgrade 7bdb97b x11vnc: Upgrade to 0.9.13 dc31d37 pcmanfm: Upgrade to 0.9.10 8ba7f13 libfm: Upgrade to 0.1.17 c16cd56 linux-yocto_2.6.34: remove bbappend b5734ca kernel-yocto: fix extra CR in do_kernel_checkout 8885163 kern-tools: use Makefile provided install rules 19b4f42 kern-tools: add pre_config and merge_config.sh to the list of tools 1752107 linux-yocto: prefer in-tree tools to external ones bb93ece linux-yocto: v3.0.10 + rt27 a6bd162 linux-yocto: v3.0.9 + enhancements 70e26e6 linux-yocto: remove 2.6.34 recipes 44cf077 kernel-yocto: support allnoconfig base configuration 77b0a2d mesa-demos: Bump PR after other mesa changes bb054d5 distro tracking updates 0b90bb0 ubootchart: update to svn R12 26ce75d less: Update to 444 931295c sqlite3: Update to 3.7.9 be94a2f sysstat: Update to 10.0.3 1131efe psmisc: Update to 22.14 338f909 resolvconf: Update to 1.62 f142522 busybox: update to 1.19.3 5ff296e logrotate: Add dependency on popt lib. 9d6790c cooker.py: Allow the -e option to work with virtual classes and -b b187b27 Revert "classes/buildhistory: add new output history collection class" d8bee04 libtool: Upgrade from 2.4 -> 2.4.2 177b2e3 binutils: fix for .debug files QA warnings ceaff6e gmp: also generate the libgmpcxx library & package it properly c0e5906 metacity: bump PR for xcb-util change 208f8f9 zlib 1.2.5: install pkgconfig file, needed for e.g. modern webkit 1dcb2d8 classes/buildhistory: add new output history collection class 8e2c578 classes/base: split out metadata revision code to separate function 64f3e24 trace-cmd: Add blktrace_api compatibility for TC_BARRIER a2070fb puzzles: Ensure to link against libm for math functions bf45449 classes, conf: Exclude native and nativesdk recipes from libc specific override f9e56d0 libc-package.bbclass: Fix typo in setVar usage 520f7b5 gnu-config: Only apply path transformations in the non-native/non-nativesdk case 7cffb5b gnome-desktop: Bump PR after xcb-util changes 012b4af distro_tracking_fields: update gthumb and claim some recipes 73c0fc0 gthumb: update to 2.12.4 413619b distro_trakcing_fields: update for glib, telepathy-idle, etc 481f6a0 telepathy-mission-control: upgrade to version 5.10.1 600afa2 glib-2.0: upgrade to version 2.30.1 ea4123d telepathy-glib: upgrade to version 0.17.0 c37f651 telepathy-idle: upgrade to version 0.1.11 1f8405e coreutils: fix u-a for base64, mktemp and df d10d614 shadow: use u-a for /usr/bin/groups 1c62040 gconf: add polkit to DEPENDS only for target recipe and disable default-service for native aab6939 build.py: Be determistic about a function's cwd 4c76300 pulseaudio 1.1: add filter-apply and filter-heuristics to pulseaudio-server RDEPENDS, it won't start without 5615998 pulseaudio 1.1: convert to useradd.bbclass 80986e1 trace-cmd: Update to 1.2 (includes kernelshark) fa25490 make: expand MAKEFLAGS before we re-exec after rebuilding makefiles. 55c40d4 task-self-hosted: install sudo, tun.ko, iptables, libgl and libgl-dev into the target 9c13c3f matchbox-panel-2: add unpackaged .la files to PN-dev to fix QA warning e387fac matchbox-panel-2: bump PR, because of xcb-util was renamed to libxcb-util0 dc7d442 startup-notification: bump PR, because of xcb-util was renamed to libxcb-util0 53a59dc apr-util: bump PR for gdbm SOVERSION change cafe634 gst-plugins-good: bump PR for gdbm SOVERSION change cd7d058 libffi: Update to 3.0.10 d60d726 gnutls: Update to 2.12.14 a7ca3b4 xserver-xorg*: Update to 1.11.2 d7cd934 squashfs-tools: fix PR, those should start with 'r' a4b7188 Fix multiarch DISTRO_FEATURE f340e39 consolekit: Fix ${localstatedir} race 73861c8 grub: Use COMPATIBLE_HOST 0d6c01c grub: Drop "apply=yes" from patch 4592af4 autotools.bbclass: Report the missing configure path 37f98f5 meta-environment: Fix a typo in do_populate_sysroot[noexec] 5de3e3d xcb-util: upgrade from 0.3.6 to 0.3.8 01e1f34 libxcursor: upgrade from 1.1.11 to 1.1.12 54eb22a libxfont: upgrade from 1.4.3 to 1.4.4 352d8e8 lzo: upgrade from 2.05 to the latest version 2.06 1c9ff48 libxrandr: upgrade from 1.3.1 to the latest version 1.3.2 3123025 pixman: upgrade from 0.22.0 to the latest stable 0.24.0 e4ba78f eee-acpi-scritps: Upgrade to 1.1.12 via git tag 961ee2f x11perf: Upgrade to 1.5.4 78fa814 libcroco: Upgrade to 0.6.3 2cae197 libsoup-2.4: Upgrade to 2.36.1 67d7e8d polkit-gnome: Upgrade to 0.102 a76c9ca xz: Upgrade to 5.0.3 26b667c gtk+: Upgrade to 2.24.8 77d5a0c bootimg: Allow for EFI-only boot images eb4aa34 bootimg: Add grub-efi support bcbd57a bootimg: Pull syslinux specific bits into syslinux.bbclass 4cdd02f bootimg: Refactor build_hddimg and build_iso routines fcde2d6 grub-efi-native: New recipe to build GRUB EFI images 1098d8d mailx: Add missing openssl DEPENDS and bump PR after openssl 1.0 38be5d3 perl: bump PR for gdbm SOVERSION change b480b6d pulseaudio: bump PR for gdbm SOVERSION change 9eecd86 gdbm 1.10: use lib_package.bbclass to match packaging with 1.8.x e233887 libx11-trim: Change checksum f92b2db distro-tracking-fields: update entries for clutter recipes da1c3e3 clutter-box2d: drop unbuildable clutter-box2d-1.6_0.10.0 b231f14 clutter-box2d: fix LICENSE field - LGPL-2.1 e15ee3d clutter-box2d: Update git recipe 50e3204 clutter: move STDDEPENDS to inc 8e4e518 cogl: add missing depends on libxcomposite 1b4d7fc clutter-*-1.6: drop clutter 1.6 recipes 4f88296 mutter: switch to clutter-1.8 to satisfy dependency 1f70775 task-core-clutter: use clutter-1.8 812530c clutter: PROVIDES clutter-1.6 b8d6f36 multilib.conf: remove clutter-1.6 and add clutter-1.8 086fad7 clutter: drop unneeded bbappends 4314df7 gst-plugins-ugly: bump PR to rebuild after libid3tag fix c6f80a6 libid3tag: add gperf to DEPENDS 87a33b4 libical: drop older version 0.46 b926e58 libical: add version 0.47 bfa270b ppp-dialin: use useradd.bbclass instead of hardcoded adduser/deluser calls 9f5bc21 cronie: use useradd.bbclass instead of hardcoded groupadd calls 3a70e77 mingetty: use u-a to provide /sbin/getty (also provided by util-linux-agetty and tinylogin) 8a58832 util-linux: use u-a to provide /sbin/getty from util-linux-agetty c91fdcf tinylogin: use u-a for getty so we can provide /sbin/getty from util-linux-agetty too 4217c91 pulseaudio 1.1: replace hardcoded /etc with ${sysconfdir} 9922ac7 pulseaudio 1.1: only run volatiles script when populate-volatile.sh exists dd860e9 clutter-1.8: package examples 3fa1559 image_types.bbclass: add xz-native to deps for lzma ext2.lzma images 15dd02a consolekit: package /var/log/Consolekit 1f2b546 task-sdk-host-nativesdk: add autotools nativesdk to meta-toolchain 3648d30 autoconf: Extend to provide nativesdk recipe d8dddfa automake: Extend to provide nativesdk recipe a042f7a m4: Extend to provide nativesdk recipe d977988 gnu-config: Extend to provide nativesdk recipe d759c8b iproute2: Upgrade from 3.0.0 to 3.1.0 7712104 Distro Tracking: Update Ownership and Update Dates ebb15d2 PR Bump for OpenSSL 1.0 c2265d0 openssl: Add openssl 1.0 f73462c openssl-0.9.8: move parallel-make fix to 0.9.8 264dacf ocf-linux: Add ocf-linux to support openssl 1.0 77a02ae libtasn1: Update to 2.11 85e29a7 gdbm: Update to 1.10 58f7d5e lame: Update to 3.99.3 7c5d4de xf86-video-intel: Update to 2.17.0 c6f6b93 xf86-input-synaptics: Update to 1.5.0 2571caf xf86-input-mouse: Update to 1.7.1 bc4cfbe xwininfo: Update to 1.1.2 4e35303 xset: Update to 1.2.2 00ae5d6 xrandr: Update to 1.3.5 3d656f0 xprop: Update to 1.2.1 51a68d5 xkbcomp: Update to 1.2.3 fbb2d24 xinit: Update to 1.3.1 7fe0d35 xdpyinfo: Update to 1.3.0 e9b8a4c mkfontscale: Update to 1.0.9 8e79f83 libdrm: Update to 2.4.27 c2c5f09 json-glib: Update to 0.14.2 e5d2c20 wget: Update to 1.13.4 cf02474 qt-mobility: Add missing patch 9c8d335 libsdl: enable alsa based on PACKAGECONFIG and respect DISTRO_FEATURES 240d256 qt4: qt-mobility: fix QML video player crash 4f408de qt4: fix sed to have correct *.pc files e82ae04 libsdl: replace tabs with spaces faf8832 libsdl: enable cdrom, alsa and tslib, disable rpath and add few fixes from meta-oe ee58c9e libsdl: rename files dir to libsdl-1.2.14 for faster lookup 93ca585 libsdl: drop unused files 972b40b eglibc-initial: Ensure symlinks point to the correct location when built from sstate cache ec58c93 mesa-common: allow empty PN 31b57cb base-passwd: Fix race 0092c62 distro-tracking: update information for binutils & libtool 94cc386 binutils: upgrade from 2.21.1a to 2.22 c62bb97 distro_tracking: update tracking fields for gettext and eds-tools 1b868bb Self Hosted Image: Added Task and Images ad1f3d9 intltool: remove XML::Parser check c06eecf tzdata/tzcode: Update tzdata to 2011n 6034b5f mesa: package gl/egl/osmesa to separate packages 1bab507 distro_tracking_fields: update the status bc802a7 distro_tracking: Update manual check dates (readline, gcrypt) 3d7d510 runqemu: look for *-image* to be more flexible for image names 20291f3 xserver-xorg: only use --disable-dga in xserver-xorg-lite a791139 libx11-trim: update to 1.4.4 98e3709 rpm_5.4.0.bb: Build rpm without xz 7edf5cf Introduce multiarch DISTRO_FEATURE f479184 opkg-utils: handle 6 digit UID fields properly 31e9982 python-native: Fix gcc compiler detecting logic fbdbe8d toolchain-scripts.bbclass: Make it work when TCLIBC=uclibc d7153d6 default-distrovars: Define SDK_VERSION and DISTRO_VERSION 5369fb3 pulseaudio: update to 1.1, delete 0.9.x 100b340 libjson: add 0.9 4cd9671 bitbake: Update users of getVar/setVar to use the data store functions directly 0a434ac getVar/setVar cleanups 71fded5 ghostscript: Ensure we run reautoconf c56232f ghostscript-native: Ensure the sys/time/h fix is applied for native builds b06b1b0 ghostscript: Really fix parallel make race d7db368 documentation/adt-manual/adt-prepare.xml: Fixed bad URL for edison tarball 31c4229 documentation/dev-manual/dev-manual-newbie.xml: Updates to Bugzilla use ac174aa documentation/poky-ref-manual/ref-variables.xml: EXTRA_IMAGEDEPENDS added. affc8b9 documentation: BB_NUMBER_THREADS and PARALLEL_MAKE suggestions 4cb3862 documentation/adt-manual/adt-prepare.xml: Updated link to machines e3dd0ba documenation/adt-manual/adt-prepare.xml: Fixed toolchain tarball name ba05990 documentation/adt-manual/adt-prepare.xml: Updated link to toolchain and info 68f1fa0 documentation: Added footnote element to the stylesheets 9ef0206 documentation/yocto-project-qs/yocto-project-qs.xml: fixed broken link 39899b2 documentation/dev-manual: Edits from Tom Zanussi. 684c35b documentation: Changed all manual links to point to "latest" 8632404 documentation/yocto-project-qs/yocto-project-qs.xml: Updated packages section c8fd49a documentation/poky-ref-manual: Minor wording fixes 90aff1c documentation/poky-ref-manual/introduction.xml: Fixed broken link 8c23011 documentation: Standardized on spelling of BitBake c80e8dd ofono: Fix missing python dependency and package tests separately 4bf73cb bitbake/siggen.py: Don't backtrace if the taskhash data isn't present 37c4f37 bitbake: Update and fix bitbake-runtask 4ce5d30 Nothing uses USERNAME, remove it - can cause sstate-cache conflicts 3406571 Nothing uses USERNAME, remove it - can cause sstate-cache conflicts 1cfd618 gcc-package-target.inc: add the symbol link /lib/cpp c27a005 site/x86_64-linux: add cvs config variables 6543f13 bitbake.conf: We only care about the absolute value of baselib 29a04dc avahi-ui: Fix packaging and conflict with the avahi recipe 1ec0cc3 eglibc.inc: Remove EGLIBPARALLELISM from deps for EXTRA_OEMAKE 6c7108f patch.bbclass: Add PATCHRESOLVE to excluded vars for generating sstate-cache a87ec92 gtk+: Have gtk+ pick up ${NM} from the environment e04de73 tslib: Set open mode for ts_calibate.c 32ee632 rpm: Flush old logs by change the DB_CONFIG d24f8aa eglibc_2.13: update SRCREV 49c7815 base-passwd: add Upstream-Status to patches, remove unused patch 6979190 dosfstools: add Upstream-Status to patches 5f8b0ef bitbake.conf: Set BB_CONSOLELOG so we log console messages by default c3d9b5b base.bbclass: Use bb.plain to print the build header b62a755 data/siggen: Add vardepvalue mechanism to allow the variable dependency code to be forced to specific values 437928d fetch2: Improve uri_replace to handle paths with no trailing '/' 2d8e534 knotty: Add support for logging the console to logfile ddd3f56 runqueue.py: Fix debug message to reference the correct task 8b0a893 fetch2/local: Don't default to files in DL_DIR for file:// urls 61c51bf libtool: Avoid relinking when cross compiling, its pointless dc2d701 apt: Fix locale header and hardcoded libname issues bb9dc86 directfb: change check sum 2485a81 siggen.py: sort task hash depedencies with basepath a89443e bitbake: print out symmetric difference when comparing sigs 319ea22 runqueue.py: Ensure we fully process the covered list aa9b10d distro_tracking_fields: Update after Manual Check 1eeb899 distro_tracking: update manual checks for recipes ae0a685 distro_tracking: update manual checks for recipes b8697fc distro_tracking: update manual checks for recipes e1d2a6c at: update the upstream-status of patches 7af9b74 distro_tracking: update manual checks for various recipes 0ff799c distro_tracking: Refect Recipe Updates & Status 358ac45 gconf: Add note to header about patch filed upstream 46033c3 gconf: Ensure the correct backend directory is used 54217ee runqueue.py: Ensure setscene tasks don't break dependency order 89a5b47 gconf: Ensure that GCONF_SCHEMA_INSTALL_SOURCE uses correct paths 7e17205 matchbox-stroke: Update to latest git revision to add missing Xrender dependency 40fe645 matchbox-wm: Fix variable type in _NET_WORKAREA setting 47004df staging: Remove debug accidently left in 3ab018c staging.bbclass: Add BB_SETSCENE_VERIFY_FUNCTION function 7a2458f package.bbclass: Ensure paths to rpmmarcos and rpmpopt are set d43175e bitbake/runqueue.py: Add BB_SETSCENE_VERIFY_FUNCTION hook 17a92c4 netbase: update 4.46 -> 4.47 7022a8f gcc-4.6: Fix gcc ICE on qt4-x11-free/armv7-a 9320b76 bitbake/runqueue.py: Sort the list of skipped tasks as it makes searching the list easier when debugging 14fbf3e bitbake/runqueue.py: Fix incorrect task number reference in debug message e1c0d9b dbus: update to 1.4.16 e2d78c6 mime.bbclass: Add --disable-update-mimedb to EXTRA_OECONF a403e9b pulseaudio-0.9.23: Fix build on uclibc 4c289c2 netbase: Update recipe 4.46 -> 4.47 a75f6f7 gettext_0.18.1.1: Fix QA Issue fc744a7 package.bbclass: fix path for relative links on elf files, when moved to debugdir 85162b7 sstate.bbclass: Ensure we expand stamp-extra-info 5c64734 libtool-cross: Unbreak and actually use more of it 0b640a4 useradd: Ensure -native recipes don't depend on target recipes 6aa6584 mesa: fix calling host's commands 983ce7f shared-mime-info: fix ordering of PACKAGES e1d4f7b bootimg: Create a valid boot sector for the iso image 81b6e54 glib-2.0: fix qsort_t testing for uclibc 9d4f955 parse_py: Use absolute paths for FILE 693dddd sanitytest: remove rpm/zypper tests if PACKAGE_CLASSES does not set package_rpm c87a539 sanitytest: use different option for command ps from busybox and procps c2ce638 package_rpm: Set _tmppath to avoid races over tmp files 49513a6 bitbake.conf: add a couple explicit vardeps 78c61ed btrfs-tools: update to the latest git commit e5b6464 update distro tracking recipe information 79ec782 insane.bbclass: avoid errors for x32 kernel 13518fd python-gst: upgrade from 0.10.21 to 0.10.22 c42c487 tcl: upgrade from 8.5.10 to 8.5.11 e1f046c mpfr: upgrade from 3.0.1 to 3.1.0 f2ecc19 libpcre: upgrade from 8.12 to 8.20 28b0c29 libpcap: use binconfig class to deploy pcap-config 3148a61 siggen.py: Include list of variables in hashes cb66eba siggen.py: Fix diffsigs output for filename comparisions f2d0772 package.bbclass: Ensure we tell rpmdeps where to find its magic file 5e109fc update-alternatives: Various fixes 217a90f sanity.bbclass: No need to check for cvs any more 4fa4a4b bitbake.conf: Update ASSUME_PROVIDED d4a31b7 gobject-introspection: update frome meta-oe 0f9c304 screenshot: rename to sato-screenshot 3674753 gcc-4.6: fix toolchain build for SH4 65333d2 boost: Update to 1.47.0 & Cleanup 7fb5294 gnu-config: Create 2011111 release fc30aeb gnu-config: update to git HEAD 9a566d7 file: update to 5.09 7e2682d libgpg-error: add BBCLASSEXTEND native for libgcrypts and gnutls-native 434d53b libgcrypt: add BBCLASSEXTEND native for gnutls-native bff4b2f directfb: update to 1.4.15 be24bd3 libx11-diet: update to 1.4.4 bc9c52c apr-util: extend sed call to fix libtool patch for case without SHELL in LIBTOOL variable d6663c3 libconvert-asn1-perl/libtimedate-perl: Convert to use allarch 88f4568 base.bbclass: add subversion-native to DEPENDS if there is svn:// in SRC_URI 8daf454 bitbake.conf: Correct svn-native -> subversion-native so we use consistent names 1a16348 alsa-lib: add nativesdk BBCLASSEXTEND 3cbd20d libnss-mdns: avoid race condition in postinst fa81f8d mime.bbclass: fix typo 9b6a548 alsa-lib: use PKGSUFFIX for every package to resolve multiple runtime providers from target and nativesdk 4ec1632 webkit-gtk: force arm mode to work around binutils segfault 97ca723 aspell: force ARM mode 3356d63 pulseaudio-0.9.23: force ARM mode f33c31a libatomics-ops: force ARM mode 4cedec6 time: use u-a for time, conflicts with busybox f7388d2 time: drop default S and 2 useless comments ab2e1c1 time: rename files dir to time-1.7 for faster lookup dc80635 kbd: use u-a for chvt, deallocvt, fgconssole, openvt, conflicts with busybox d34eed9 util-linux: bump PR after u-a changes bca2c0b util-linux: add missing u-a calls for setsid chrt fa81447 util-linux: use u-a for flock and blockdev, conflicts with busybox d489592 subversion: add 1.7.0 with native support and negative D_P for now b538057 qt4-x11-free: bring back pkg-config fixups 022c358 dhcp: generate initial leases files for server 6c50812 dpkg/update-alternatives: Fix dpkg version of update-alternatives to be usable d3c950e base-passwd: Move update-passwd into a separate package d0151bc base-passwd: Fix the broken preinst/postinstall a4ff4e9 syslinux: fix the SRC_URI by using the 4.xx directory 97a40ff lib/bb/runqueue: avoid marking runtime dependencies as covered d8193f1 opkg: Ensure we use the uname/gname fields when extracting tarballs 8135963 rootfs_ipk.bbclass: Ensure bad recommendations persist in the status file acbf65b xinit: rdepends on util-linux-mcookie to avoid brining whole util-linux 9ef8cb7 util-linux: split mcookie into a package 6d0ad5c sudo: Avoid post install scripts af2a885 shadow: Generate the shadow files at rootfs construction 8c62391 wpa-supplicant: Avoid blocking the post install script at cross rootfs time. 71fd6c8 rootfs_rpm.bbclass: Turn off script debugging ef1d61d rootfs_rpm.bbclass: Enable pre and post install scripts 2982782 qt-mobility: qa_configure stage failed 78d1b44 README.hardware: declare support for BeagleBoard xM rev B 3b65c3e README.hardware: update atom-pc instructions 0b0674e populate_*.bbclass: Correct INSTALL variable name after recent multilib changes 5bcb096 populate_*.bbclass: Drop pointless fakeroot attribute (fakeroot is at the task level) ffa51f0 bitbake.conf: Unload pseudo when its not required for a given task 4a8678a xinit: Fix `startx` looking for `mcookie` in sysroot adf45e7 linux-yocto: config cleanups + romely rt support 31c7b6f task-core-x11: use VIRTUAL-RUNTIME variables for xserver_common and graphical_init_manager 61127dd keymaps: depend on kbd instead of console-tools 0676522 task-core-boot, keymaps: add another VIRTUAL-RUNTIME to allow distributions to use different set of initscripts or no initscripts at all e6c9784 kbd: add RREPLACES/RCONFLICTS/RPROVIDES for upgradeable path from console-tools 18e61c6 kbd: import from meta-oe 8b1159ef lame: update to 3.99.1 3e21bb4 python: bump PR 90c789e ncurses: refactor configure to avoid configuring widec when disabled c7dc128 libtasn1: update to 2.10 cb8607b libxml2: use Copyright in LIC_FILES_CHKSUM instead of COPYING c8dee9b Convert to use direct access to the data store (instead of bb.data.*Var*()) 5d3860f Allow use of dash as /bin/sh d9740cd qemu: Ensure an internal qemugl script uses bash as it has bashisms c96e499 classes: Remove various bashisms a3b987a scripts/qemuimage-testlib: Output a slightly better error if expect is missing b6bc04d udev-extraconf: blacklist /dev/md f48be2c Distro_tracking: Update Manual Check Date 4dbe3ac libarchive: Remove obsolete comment and empty line at the end 7dec9be Introduce new SERIAL_CONSOLES to add multiple consoles for your MACHINE 2203a31 data_smart: Add appendVar/prependVar functions 12c6bcb Add FAKEROOTNOENV variable eda0ed9 cooker.py: Ensure only one copy of bitbake executes at once d07473d utils.py: Fix lockfile retry handling ab34882 codeparser: silence non-literal warnings for vardeps 7e436a9 codeparser: drop expand tracking ae96ac1 codeparser: accept a name for better messages 48d7f52 codeparser: simplify how we compare the called node names 002451b codeparser: merge the nested python parsing classes 9e06f31 local.conf.sample.extended: Fix bug 1674 605d011 useradd: Add missing DEPEND on shadow d847aba avahi: remove USERADDPN bef492a useradd-example.bb: update example documentation comments 3b93447 useradd.bbclass: do not modify -nativesdk packages 67a2c35 useradd.bbclass: only modify packages in USERADD_PACKAGES 4fc4be6 gconf: Drop polkit dependency d4d29f7 gconf: add upstream GNOME gconf 3.2.3 and drop gconf-dbus 1ab3d1b mime.bbclass: No need to import os.path, it then breaks the os module f699875 classes/[gnome|gnomebase|mime]: enhance gnome related classes cb1bc76 shared-mime-info: package runtime data separately b81caca busybox: add grep to temporary links during uninstall 7b645ca classes/package_rpm: disable uninstall scripts for upgrades 23d2eaf python: skip setup.py 'import check' when cross-compiling a021dae libzypp: fix mishandling of hyphenated arches 590acd8 gmp_5.0.2: Set CC_FOR_BUILD to BUILD_CC c37b78d documentation/adt-manual/adt-prepare.xml: Fixed broken link 4115f94 Add new IMAGE_CLASSES variable for classes for image generation 261d611 distro_tracking_fields.inc: Modify the status of qmmp 5a9e41d qmmp: update to 0.5.2 55646b1 distro_tracking_fields.inc: update to libarchive to 2.8.5 7e75df1 libarchive: update to 2.8.5 6dfac91 dhcp: move server configuration to dhcp-server-config 27d84fa dhcp: rename dhcp4.inc to dhcp.inc 09fd35f dhcp: drop unused dhcp3.inc file 3e9cb80 files/device_table-minimal.txt: add /dev/kmsg 07222a1 libcap: fix sstate for native package e1e8910 pseudo: Uprev pseudo to version 1.2 3f854ed clutter-1.8: this should be a bbappend e5226b1 clutter-1.8: add bbappend for new clutter-1.8 recipe e1ca9aa clutter-gst: fix patch filename a756565 documentation/dev-manual/style.css: Fixed HTML output ca38e7a documentation/dev-manual: Fixed PDF Note line breaks ddb9351 documentation/dev-manual/style.css: added .footnote element 468c879 documentation/dev-manual/dev-manual-bsp-appendix.xml: Added footnote e8f5b17 documentation/dev-manual/dev-manual-bsp-appendix.xml: Tom Zanussi edits. 02e5570 documentation/bsp-guide/bsp.xml: fix link - found by Robert P. J. Day e7b5027 documentation/dev-manual/dev-manual-bsp-appendix.xml: Robert P. J. Day edits ff644c9 documentation/dev-manual/dev-manual-bsp-appendix.xml: Added text to find t-ball 6ff754f documentation/dev-manual/dev-manual-bsp-appendix.xml: BSP example scrub e64946e documentation/dev-manual/dev-manual-bsp-appendix.xml: Robert P. J. Day edits. a8a2504 documentation/dev-manual/dev-manual-model.xml: Robert P. J. Day Edits bf1e5c6 documentation/dev-manual/dev-manual-newbie.xml: Robert P. J. Edits 296fd7a documentation/dev-manual/dev-manual-newbie.xml: Robert P. J. Edits 54956b8 documentation/dev-manual/dev-manual-start.xml: Robert P. J. Edits 9f10361 Documentation/dev-manual/dev-manual-intro.xml: Edits to Intro section. d5175bb useradd.bbclass: handle nativesdk case 1ef4425 multilib: Drop MULTILIB_IMAGE_INSTALL f9735f3 contacts: fix packaging of icons 55a738e pulseaudio: make X11 dependencies optional and add gtk+ a1c15cb connman: split scripts into separate package 8b77079 gypsy: fix packaging 7a5f2fc libcanberra: add libvorbis to DEPENDS d06c35d mx: add mx toolkit 1.3.2 febb65c clutter-gtk-1.8: add clutter-gtk 0.11.4 65ce67a clutter-gst-1.8: add 1.4.2 for use with clutter 1.8 22fcc7c clutter-1.8: add 1.8.0 7ac57ba cogl: add cogl 1.8.0 recipe a9091c9 dbus: fix install for virtclass-nativesdk 27d70f9 useradd.bbclass: fix how RDEPENDS is setup 28940eb lighttpd 1.4.29: rename index.html to avoid clashes with DL_DIR 24fb621 qemugl: switch to new git repo b4f471c core-image-minimal-initramfs: force IMAGE_FSTYPES b963904 allarch.bbclass: disable shlib and debug symbol processing c4b3a97 fotowall: disable videocapture since we do not have a webcam 2f8d7a3 linux-yocto_3.0: update base to v3.0.8 + meta config changes 021b9da libnl-2.0: add PE/PR bump for upgradable patch for meta-openembedded users 5de5534 libnl-2.0: split to more packages, as meta-openembedded does 754e262 libnl-2.0: add patch from meta-openembedded to fix pkg-config file 6a390d5 libnl-2.0: move fix-pktloc_syntax_h-race.patch to libnl-2.0 subdirectory and merge with fix-makefile.patch 163f7bd iproute2: update to 3.0.0 to fix build with updated iptables 4a279e2 connman 0.75: bump PR for iptables library change 8138eaf python: improve packaging 8b63b92 distro_tracking_fields: updates for sudo, mtools, grep, and openssh 03748f3 image_types bbclass: use 4k bytes per inode so we don't run out of space immediately fc50781 libcense.bbclass: fix OpenSSL mapping d70ba51 tslib: fix the bug with loading libts-1.0.so 49f9ca5 udev-164: Update init script to do an explicit add action 8f78cf2 buildstats: Fix for buildstats on tmpfs 953b458 dtc: Add patch to correctly install shared libraries and links 3557464 dtc: update to latest git version f7196be cogl: COPYING file Updated FSF Address ba5537d scripts/combo-layer: skip empty commits c04305e scripts/combo-layer: improve some messages f829830 scripts/combo-layer: auto-commit updated config file 948d28e scripts/combo-layer: fix dirty repo check 25fc202 scripts/combo-layer: make component repo branch configurable cb21ff1 scripts/combo-layer: tidy up config example fd471a1 scripts/combo-layer: make init set up initial component data 2293aca scripts/combo-layer: ignore merge commits 426ad82 bitbake.conf: Drop remaining TERMCMD pieces and document OE_TERMINAL usage instead 9d1f10e patch: Convert to use oe_terminal 3b856e1 bash: Ensure we fully reautoconf the recipes so site data is used e48e2f2 rt-tests: update to 0.83 de0d9ae rootfs_ipk bbclass: special-case base-passwd preinst to run first 01f59c4 Increment version post release 5225328 Release 1.14.0 925184a codeparser: make var_expands actually hold useful information 53b3b40 avahi: fix useradd race condition 649ca88 machine/atom-pc: enable sound 9b76e6a meta: glib-2.0: don't apply qsort_r test removable patch for native version b090fde gettext: Switch to disabling nls and reducing -native build dependencies to a set of pre built m4 macros 9497b27 lame: add SRC_URI checksums 5537ea2 libxslt: use Copyright in LIC_FILES_CHKSUM instead of COPYING 3736ab6 distro_tracking_fields: Update the Month to 'MMM' 013198b dbus: ensure that the useradd shell is set to /bin/false 1e9c1d5 connman: Use useradd to add the xuser for DBus e8e37cf xserver-nodm-init: Use useradd to add the xuser for rootless X d9fc7ba avahi: use useradd to create avahi user for avahi-daemon 4a951e0 Fix HOMEPAGE values in libzypp and sat-solver .bb files 023fd24 util-macros: Drop unneeded dependencies 8c11cbc documentation/yocto-project-qs/yocto-project-qs.xml: Robert P. J. Day Review 1d63630 linux-libc-headers: remove older recipes eedae07 linux-libc-headers: provide 3.0.x and 3.1 headers e422bb1 udev: Split out consolekit and udev-acl 418ee5a udev: Fix the packaging of libgudev 4950afe linux-libc-headers: factor common code into linux-libc-headers.inc 18ab6c9 dbus: Ensure localstatedir is added to the package 0182b2b package.bbclass: Fix various problems ec20f0e dbus: Use $D not ${D} in the postinstall 3001a46 package_ipk: There is no longer any need to force owners/groups to root 91bc6fa gnome-doc-utils: Add missing glib-2.0 dependency e15a2d1 coreutils: Add missing PR bump 0f24f2d lib/oe/terminal: add support for XFCE's terminal emulator c3c7ff7 distro_tracking_fields.inc: standardize date format 2ddf05f connman: add xtables_version to fix xtables API change 0a4d877 iptables: upgrade to version 1.4.12.1 c8440dd bitbake.conf: drop STAGING_PYDIR 6ec0ce7 netbase.bbappend: Change to version 4.46 due to the upgrade fea04bd distro_tracking: polkit, libsndfile, etc 86c3628 telepathy-mission-control: Upgrade to version 5.9.3 9ed40d1 telepathy-glib: upgrade to version 0.16.0 2fe5e65 telepathy-idle: upgrade to version 0.1.10 11e0cde libogg: upgrade to version 1.3.0 e64074e netbase: upgrade to version 4.46 19128b4 neon: upgrade to version 0.29.6 0cff101 libsndfile1: upgrade to version 1.0.25 bbbe1c1 polkit: upgrade to latest 0.102 f490be1 documentation/yocto-project-qs/yocto-project-qs.xml: fix tarball URL 4e04f61 documentation/yocto-project-qs/yocto-project-qs.xml: dyslexic statement fixed. 57e780f documentation/dev-manual: Bruce Ashfield's dev-manual comments added. 24fd69a documentation/poky-ref-manual/extendpoky.xml: punctuation fixed. 6943f79 documentation/poky-ref-manual/resources.xml: Fixed YP term usage. 3735f03 wget: Remove pointless code 8257349 documentation-audit.sh: script for auditing documentation build status 20f0794 distro_tracking_fields: update packages tracking fields 2690ab3 e2fsprogs: move mke2fs.conf to e2fsprogs-mke2fs package a2eace2 util-linux: split out mkfs into its own package 2113fdf dbus: remove unused initscript 584a126 abiword: convert to svn ca000ba libproxy: fix QA Packaging issues 9bf2eed libatomics-ops: fix QA Packaging issues 80d0610 mdadm: fix QA Packaging issues 8993a66 man: fix QA Packaging issues 4a5e104 at: fix QA Packaging issues bc5f42a dbus-glib: fix QA Packaging issues 165f0f6 wget: Add recipe from OE 43d86cd Add new strace-graph package to avoid making perl a dependecy for all of strace 93d7624 python-dir: change PYTHON_BASEVERSION to 2.7 bc5dcd3 recipes: bump PR after python upgrade 6e16329 python-2.7.2: fix build issues when additional modules are linked against host or native libpython instead of target b1dd5dd update python 2.7 manifest 53faafc python: update generate-manifest for 2.7 version and regenerate it 01103b2 python, python-native: upgrade from 2.6.6 to 2.7.2 0d18f03 clutter-gtk: add LIC_FILES_CHKSUM to include file a47caad libcanberra: add new package for unpackaged files cbc31ba libxslt: Fix packaging of xsltConf.sh 2691727 Add readline as dependecy for gdb-cross-canadian 9641538 Give coreutils a chance to build the df utility 8eb1010 openssh: upgrade to 5.9p1 c9ec9d4 mtools: upgrade to 4.0.17 f0ff43b grep: upgrade to 2.9 51df60e sudo: upgrade to 1.8.3 c5efbb5 Add new util-linux-chkdupexe package to avoid making perl a dependecy for all of util-linux fc94f92 libxml-parser-perl, libxml-simple-perl, expat, sgmlspl-native, git: bump PR to rebuild after perl upgrade 53ee27a doc: update manual for checksum changes cd1b272 fetch2: enable checksum definition as SRC_URI parameter 64a54db fetch2: improve usability of checksums e9f66d9 hob: fix backtrace when dismissing open dialog bbb45b6 gst-plugins-good: correctly handle gconf schema ea8d1bc pulseaudio: inherit perlnative b56be05 oprofile: Update to 0.9.7 and convert cvs->git 85b54b3 texi2html: Added recipe from OE d1e278e default-providers: switch virtual/libgl from mesa-xlib to mesa-dri eee0b5a coreutils: Upgrade recipe 8.12 -> 8.14 74d1c5e gcc-4.6: Backport fix for PR32219 8e14cee xserver-xorg: Add mesa-dri to depends instead of virtual/libgl 777049a subversion-1.6.15: add native support too 66a7de0 apr-util: add native support 7f30c4a neon: add native support d6ba085 apr: add native support 4349f29 squashfs-tools: add recipe dbf48ba dbus: use useradd class to allow use in read-only filesystems b0dae14 base-passwd: move initial criation of group and passwd to preinst 5ea680a useradd.bbclass: check if a group already exists manually 29886aa bootimg.bbclass: add support to disable HDD image building 5f8f114 perl: upgrade from 5.12.3 to 5.14.2 53f7342 gcc-configure-sdk: Point sysroot to correct location 013452f binutils-cross-canadian: Point sysroot to correct location 5ea0808 tcmode-default.inc: Add TRANSLATED_TARGET_ARCH suffix to binutils-cross-canadian 5479d4b tcl: upgrade from 8.5.9 to 8.5.10 72a1e63 distro-tracking-fields: update fields for tzdata and gst-plugins-good 5b3b115 tzcode-native: update SRC_URI to new IANA location f0f69ab tzdata: updated SRC_URI and update to 2011k 943ccd3 gst-plugins-good: update to 0.10.30 5509266 module.bbclass: add lock to prevent error bulding ext modules 43f4f31 chkconfig: Update to 1.3.55 e5f5a5d ccache: update to 3.1.6 5f0a801 distro_tracking_fields: update packages tracking fields b4ac21c libsdl: update to 1.2.14 0c86421 liburi-perl: update to 1.59 2fb62c7 libxml-sax-perl: update to 0.99 8f02435 ghostscript: update to 9.04 2f21384 distro-tracking: update data for some toolchain recipes a10af58 libxml-parser-perl: upgrade from 2.40 to 2.41 4fe4ef5 python-dbus: upgrade from 0.83.2 to 0.84.0 24f5652 python-scons: upgrade from 2.0.1 to 2.1.0 acf71bb x86 tune files: set baselib for x32 tune as libx32 c37b209 insane.bbclass: print full path on invalid LICENSE_FILES_CHKSUM 8cf683b ghostscript: renamed x86_64 to x86-64 for patch to work 6c0bf21 src_distribute.bbclass, src_distribute_local.bbclass: mostly rewritten f9257c3 ghostscript: Disable parallel make due to install issues 180caee gcc-4.6: Backport PR46934 fix 6a85e28 gcc-4.6: Upgrade SRCREV to latest FSF 4.6 branch 92711d0 bluez4: Add glib-2.0 to DEPENDS bce6dde poky: fix broken ubifs link in deploy folder b475783 fontconfig: fix fix-pkgconfig.patch deb2213 gst-plugins-good: add pulseaudio to DEPENDS 5a3f9b5 gst-plugins-base: update to 0.10.35 3c517bf bind 9.8.1: fix build after recent update 13cfd5a lsb: Change link of ${baselib} to lib64 for 64bits system 601077f screen: Add patch to fix parallel make install 1c892e8 mktemp: Add patch to fix parallel make install 576c8d1 sysprof: remove duplicated patch 4e8bc57 Distro Tracking: Fix dates a21cc57 libomxil: Fix QA Package Errors 9da3cd4 glib-2.0: Add nativesdk depends for libffi 997fdc6 bluez4: disable hidd, pand & dund 07e9877 pulseaudio: make bluetooth support conditional upon DISTRO_FEATURES a3a5e4c cmake : Disable building ccmake. 1b49585 qt4: Added support for QtMobility 1.2 f60b650 default-provider: also define a default provider for gconf-native 35b821b resolvconf: Update to 1.61 add6e67 bind: update to 9.8.1 468e216 mesa-dri: use DRIDRIVERS_append_arch to promote right usage for BSP layer maintainers 9448de6 xserver-xorg: remove glx-use-tls again 2fd6598 mesa-dri: Enable swrast only by default and intel drivers only on IA platform 6879750 arch-ia32: Add a generic x86 override (instead of i{3|4|5|6}86 and so on) 9c3d2b2 bitbake.conf: Use TRANSLATED_TARGET_ARCH in OVERRIDES since any variable with _ in it isuseless there (e.g. x86_64) 0d69a179 meta-yocto: Sync with mesa/xserver changes and fix machines 66bef6b bitbake.conf Exclude MACHINE from MACHINEOVERRIDE variable dependencies ff17815 data.py: fixed message domain errors fb8483e patch.py: fixed message domain errors 10c191b nfs-utils: separate nfs-utils-client and nfs-utils-stats 44b3dc3 distro_tracking_fields.inc: update qt4 related entries 416aa7a qt4: use 4.7.4 as default preference 44385cb clutter: Update bbappend after oe-core upgrade c471b1c qemu.inc: qemu-native also needs glib-2.0 native c973a6e qt4-x11-free: Fix broken regexes in qt4-x11-free's recipe. 88f81c7 eglibc-2.14: add patch to fix libdl crash f617af4 pcmanfm: Upgrade to 0.9.9 e227eb8 libfm: Upgrade to 0.1.16 839f699 linux-yocto: config cleanup and streamlining f30c3da bash: update to 4.2 3a1d27c rsync: Update to 3.0.9 6591efa rxvt-unicode: Update to 9.12 02ea19b libgcrypt: Update to 1.5.0 9ecb4ec augeas: Update to 0.9.0 4467ef6 libtiff: Update to 3.9.5 3697fdf libaio: Update to 0.3.109 87eabec v86d: update to 0.1.10 e495303 initramfs-live-boot: make it more generic and easy to use cd898bf image-live.bbclass: allow override of initrd image a8e6971 libnl2: Fix a race on route/pktloc_syntax.h 3124512 distro_tracking_fields.inc: Add maintainer for some packages without maintainer 2a810f5 bluez4: Add ending quote of FILES_${PN}-dbg 22d8978 qemu.inc: Add glib-2.0-nativesdk to qemu-nativesdk DEPENDS f7cd813 glib-2.0: Extend to provide nativesdk recipe 677d033 qemu-0.15: Add recipe and forward port patches from 0.14 412a2dc autotools: fix multi-word arguments for EXTRA_OECONF 4eae8b3 autoconf: no need to hardcode the full path to m4 8f2f209 farsight2, ldconfig-native, gnutls: There is no GPLv2.1, correct the fields 4fad327 distro_tracking_fields: Updates 1578058 shadow-native: Bump PR for patch update d141da2 mesa-git: fix LIC_FILES_CHKSUM 303df74 mesa-git: upgrade from 7.7+git to 7.11+git d7761be mesa-git: lower D_P a bit more then all mesa-dri c76eb50 mesa-git: move shared parts from mesa-dri_git to mesa-git.inc and add mesa-xlib_git 8193126 mesa-dri: LEAD_SONAME shouldn't be needed now, when we're packaging each lib in separate package 8a46f88 mesa-dri: move shared options to mesa-dri.inc f7a51d7 mesa-xlib: move shared options to .inc 73e6612 mesa: move shared PROTO_DEPS, LIB_DEPS and DEPENDS to common .inc 33e0040 mesa-7.11: move shared DEPENDS, SRC_URI, checksums and do_configure_prepend to shared .inc file 5b7f5b5 mesa-common: MesaDemos is now separate recipes, bump PE, introduce INC_PR 183484c mesa-common: add common LIC_FILES_CHKSUM for newer mesa versions 77fa7e1 mesa: move common patches which could be used in both mesa-dri and mesa-xlib from mesa-dri to mesa 462f77a mesa-dri-glsl-native: fix LICENSE f7b4881 xorg-driver-common: bump PE for upgrade path for meta-oe users bbd2fc3 xserver-xorg: move PE to xserver-xorg-common and bump it ab4584a xserver-xorg: drop xorg-minimal-fonts from RDEPENDS 1eebf67 gtk+: upgrade to 2.24.6 da07984 glib: upgrade to 2.30.0 263852e cogl: Add git recipe (required by clutter) 8dc24da clutter-1.6: update to 1.6.18 7442223 clutter: Update git recipe to more recent version c0e04c4 gamin: Fix glib 2.30 deprecation issues 2912f89 pango: Update to work with glib-2.0 5072340 libunique: Update to work with glib-2.0 bef8010 eds: Update to work with glib-2.0 a74c33d Import python-setuptools from meta-oe (for glib-2.0) abeb5d5 atk: Upgrade 1.32.0 -> 2.2.0 394dfe4 flac: Add missing gettext dependency (requires iconv) 5405efa autotools: Enhance gettext handling to better work with SCM versions of code 667f4eb xf86-video-intel_2.16.0: fix buildfix.patch to apply 094661e documentation/adt-manual/adt-eclipse.xml: Added missing section for plug-in 82f6242 documentation/adt-manual/adt-eclipse.xml: fixed indigo typos 2923cc2 documentation: Cleaned out bad links and replaced with good 1d06f45 documentation/dev-manual: Fixed five broken links and removed note b92b776 meta-yocto: Catch up with xserver and mesa upgrades/rename c53616d xf86-video-intel: Update 2.15.0 -> 2.16.0 7a97bf7 mesa: Update 7.8.2 -> 7.11 2cf9fb4 hal/hal-info: This is unsed in OE-Core and deprecated, drop b04b8a4 qt4: Drop old version 4.7.3 77bbc22 gnome-vfs: This is now unused in OE-Core and deprecated, drop d2b4818 gcc: Drop old version 4.5.1 9167557 eglibc: Drop 2.12 7dfb9ce shared-mime-info: Fix a parallel make race 8262a89 alsa-utils 0.10.24.2: fix systemd units when there's no asound.state aaf52a5 linux-firmware: update, merge in OE classic updates, fix packaging d824f46 python-argparse: import from meta-oe, needed for newer glib 51592e4 git: update to 1.7.7 df2a7db libx11-diet: move old patches used only by libx11-diet-1.3 to separate directory 2ee903a libx11-trim: move files for libx11-trim from libx11-1.3.4 to libx11-trim-1.3.4 dc64df6 libx11: drop old 1.2.2 git version ef1fce9 libx11: remove older 1.3.4 d2aea41 libx11: add new version 1.4.4 af0a957 libx11: package xcb, merge few changes from meta-oe b093169 xorg-driver-common.inc: bump INC_PR to rebuild drivers agains new xserver-xorg ABI e382e64 xorg-driver-common.inc: use virtual/xserver instead of older virtual/xserver-xf86 e65e8ff xserver-kdrive: drop unused files (same files are in xserver-kdrive-1.7.99.2 directory 4c80e07 xserver-xorg: move patches to xserver-xf86-dri-lite-1.11.1 and use same directory from xserver-xf86-lite recipe 4981c2a xserver-xorg: drop unused files 927c922 xserver-xorg: remove COMPATIBLE_HOST 89cc588 xserver-xorg: remove old 1.10.1 version 7b826a9 xserver-xorg: add new version 1.11.1 4d0fbb1 xserver-xorg: move shared EXTRA_OECONF entries to shared .inc 8c4b9ae xserver-xorg: replace hardcoded --enable-glx-tls with glx-use-tls.inc, which doesn't enable it for uClibc 3476f15 xserver-xorg: remove FILES_${PN} += "${bindir}/Xorg ", now we have whole ${bindir} in FILES_ defined in shared .inc 73cfa3e xserver-xorg-common: move RDEPENDS_${PN} += xorg-minimal-fonts to shared .inc 7350b5b xserver-xorg-common: lower xserver-xf86-config and xkeyboard-config dependency to RRECOMMENDS and add few more recipes to RRECOMMENDS fbf9e2f xserver-xorg-common: move shared PROTO_DEPS and LIB_DEPS from xserver-xorg.inc and xserver-xorg-lite.inc to xserver-xorg-common.inc 9e34241 xserver-xorg-common: improve packaging 73b9f8f xserver-xorg-common: Split out some bigger modules and extensions from the main package 4fa7554 xserver-xorg-common: move SRC_URI closer together b0ea4f0 xserver-xorg-common: fix LIC_FILES_CHKSUM a87ee71 glx-use-tls.inc: add include file to enable glx-tls only when TARGET_OS isn't uclibc a4cbf47 xserver-xorg: remove old git recipe c09f0eb xserver-xf86(-dri)-lite: rename to xserver-xorg and xserver-xorg-lite 3590061 util-linux 2.19.1: split blkid out into its own subpackage c419e8a atk: add missing SOB line to remove.G_CONST_RETURN.patch be9ee81 Fix typos in local.conf.sample and local.conf.sample.extended 0c05d53 Fix sysprof for powerpc64 6d21863 Fix mdadm for powerpc64 3a1fa7d shared-mime-info: Upgrade recipes from 0.90 -> 0.91 4050aa4 gdk-pixbuf: upgrade to 2.24.6 d760fcc zlib: fix inverted LFS logic d90119a gstreamer: upgrade to 0.10.35 2542b2f libglade: add gdk-pixbuf dependency 3010bc0 Use useradd and update-rc.d classes in the OpenSSH recipe 73abadd Fix the --root option in shadow-native programs ae61335 Allow user mode NFS server to run without rpcbind / portmap 639f138 font-alias: Convert to use allarch including a patch to disable compiler checks 80c844f hicolor-icon-theme: Convert to allarch add6cf8 gcc/binutils: Disable NLS/gettext dependencies 8ea4349 libc-package.bbclass: Use a makefile for locale gernation to increase parallelization 24c803c connman: Drop hal dependency and udev configure option, neither is used 6c30df1 task-core-basic: Drop hal dependency, its deprecated de75097 qt-demo-init/linux-firmware/adt-installer: Convert to Use allarch class file dcf0c83 gnutls: Disable p11-kit dependency explicitly to resolve build failures 0d8c8cf mutter: update to 2.29.1 and fix SRC_URI c677676 pkgconfig: Fix logic that was accidently leaving legacy pkg-config functionality enabled 318da9f util-linux: split fsck* into its own subpackage 880a506 acl/attr: don't make symlink if base_libdir = libdir bde7d30 distro_tracking: Updates 10b4cce lsof: Update to 4.84 de511df tzdata: Update to 2011k fba22e8 gnutls: Update to 2.12.11 d98b5e1 puzzles: Update to latest version c05b45b boost-jam-native: Add SRC_URI Checksum 0dff4c2 gail: Add SRC_URI Checksum 66ddacd gconf-dbus: Add SRC_URI Checksum 0ee62a2 liburi-perl: Add SRC_URI Checksum d1d5e66 libxml-perl: Add SRC_URI Checksum 1b5a546 icon-naming-utils: Add SRC_URI Checksum 97bbce2 mutter: Add SRC_URI Checksum 7f469f0 xserver-kdrive: Add SRC_URI Checksum d3798b6 clutter-gst-1.6: Add SRC_URI Checksum 85ff328 eds-tools: Convert from BZR to GIT Repo 2c89e28 libx11-diet: Add SRC_URI Checksum 541c7c8 guilt-native: Add SRC_URI Checksums eed0114 libx11-trim: Add SRC_URI Checksum 9c92435 dosfstools: Add SRC_URI Checksum f6488ec grub: Add SRC_URI Checksum 173c35a xserver-xf86: Use PACKAGECONFIG for udev/hal choice and default to udev d7babed native.bbclass: Ensure native recipes have a deterministic baselib value 439792e sstate.bbclass: Ensure machine specific stamps are only wiped for the current task 6706c7b image.bbclass: No need to run most tasks except do_rootfs 70acc4f base.bbclass: Implement PACKAGECONFIG ac8e559 base.bbclass: Minor cleanup d918698 meta-yocto/qt4: Update bbappend to new version 195cde3 local.conf.sample: Disable interactive patch resolution for now since doesn't work well fe76b87 documentation/dev-manual/dev-manual-kernel-appendix.xml: config example 8d088b9 documentation/yocto-project-qs/yocto-project-qs.xml: release name and misc. 05f67ce documentation/dev-manual/figures/kernel-example-repos.png: updated figure a3e4b6a documentation/dev-manual/dev-manual-kernel-appendix.xml: edits to the example f54a78c documentation: Fixed links for yocto-1.1 2f4eecc webkit-gtk: Enable dependency tracking since the webkit makefiles have bugs 5ea73bd autotools.bbclass: Allow dependency tracking option to be easily overridden 0a5ae8c scripts/oe-buildenv-internal: Add SOCKS5_{USER, PASSWD} to BB_ENV_EXTRAWHITE 191e61a fetch2: Export additional variables to the fetchers 68d2796 gdb-cross-canadian: Fix source directory S 6d75e6f mtools: Disable parallel make install, its broken 53a9ffc kexec-tools: fix architecture mismatch QA error 68b9f16 documentation/dev-manual/figures/wip.png: new figure added. 109150d documentation/dev-manual/dev-manual-start.xml: console updates and tar update b9a732d documentation/dev-manual/dev-manual-kernel-appendix.xml: general updates bbd9bbe documenation/Makefile: Added a "WIP" figure dev manual for future work. 42f6bc4 documentation/dev-manual/dev-manual-bsp-appendix.xml: changes to references addab8a documenation/dev-manual/dev-manual-bsp-appendix.xml: fixed reference form 71cfe03 documentation/dev-manual/dev-manual-bsp-appendix.xml: fixed typo. e07033a runqemu-export-rootfs: Add HOW-TO for ubuntu 11.10 for rpcbind problem b6b2ca0 bootimg.bbclass: fix comment typo 9d1502b image-live.bbclass: allow images to override ROOTFS and INITRD 2884c48 image.bbclass: improve comments regarding exported functions 341eab5 linux-yocto: update live boot configuration 9a7aee0 qt4-embedded: move qt4-embedded-conf from RDEPENDS to RRECOMMENDS bad9759 qt4: packaging fixup 13e659f qt4: Fix translation support c88b991 poky.conf: Increment DISTRO_VERSION 1c1b605 documentation/adt-manual: changes for Jessica's review. 611d92f documentation/dev-manual/dev-manual-start.xml: Updates for 1.1 repos names 8c10e06 documentation/dev-manual/dev-manual-bsp-appendix.xml: scrubbed example 031930d documentation/adt-manual/adt-eclipse.xml: edits to zip section 1a0e71f documentation/adt-manual/adt-eclipse.xml: updates to zip method of plugin install. 47b82c7 documentation/poky-ref-manual/extendpoky.xml: multilib edits 00f99cc documentation/adt-manual/adt-eclipse.xml: edits to the config steps e017267 documentation/kernel-manual/kernel-how-to.xml: Updated build strategy f527e3c documentation/adt-manual/adt-prepare.xml: updates to getting images. 1b1f8e5 documentation/adt-manual/adt-prepare.xml: Updated for building tcf-agent 8d689e3 documentation/poky-ref-manual/extendpoky.xml: Multilib section added 7621dc1 documentation/adt-manual/adt-prepare.xml: changed link 14be63e documentation: Updated title pages. 11f9e74 documentation/poky-ref-manual/ref-variables.xml: updated KERNEL_FEATURES 11815ab documentation/kernel-manual: Added some references to other areas of YP docs. d546b8f documentation/kernel-manual: Scrub for 1.1 c47f8ed documentation/poky-ref-manual/ref-variables.xml: updates to KERNEL_FEATURES. c89ebd8 documentation/poky-ref-manual/ref-variables.xml: Added KERNEL_FEATURES c033447 documentation/poky-ref-manual/faq.xml: Removed wording that focues on GNOME 43eeb4f documentation/bsp-guide/bsp.xml: Added recipes-core section 4a0e09a documentation/yocto-project-qs/yocto-project-qs.xml: Supported Distros updated 8aa79d7 documentation/adt-manual/adt-eclipse.xml: Added zip method for plug-in install 1bc65c7 documentation/poky-ref-manual/ref-variables.xml: Variables updated 0fb1d6e documentation/poky-ref-manual: Updates to several variables. 5e06b9a documentation/poky-ref-manual/ref-variables.xml: update RDEPENDS and RRECOMMENDS 435e0ac documentation/poky-ref-manual/ref-variables.xml: update PREFERRED_VERSION 12b10aa documentation/poky-ref-manual/ref-variables.xml: update PREFERRED_PROVIDER f0ea446 documentation/poky-ref-manual/ref-variables.xml: update TCLIBC and POKYLIBC 225a20b documentation/poky-ref-manual/ref-variables.xml: updates TCMODE and POKYMODE 78ddcae documentation/poky-ref-manual/ref-variables.xml: edits to FILESYSTEM_PERMS_TABLES. 3790c55 documentation/dev-manual/dev-manual-newbie.xml: added information for licenses bc9951a documentation/poky-ref-manual/ref-variables.xml: updated RDEPENDS 9d66278 documentation: scrubbed out 'glibc' and replaced with 'eglibc' 8756644 documentation/poky-ref-manual/extendpoky.xml: New section on static library fe209e4 documentation/poky-ref-manual/ref-variables.xml: added FILESYSTEM_PERMS_TABLES 70e154b populate_sdk_rpm: Add missing /bin/sh from rpm ignore list for the SDK 954d2c2 libproxy: upgrade to 0.4.7 bc164dd json-glib: upgrade to 0.14.0 e005072 hal-info: drop PACKAGE_ARCH all 9bf0d88 Improve handling of 'all' architecture recipes and their interaction with sstate bcc8425 qt4: Update to latest version 4.7.4 2d05398 qt4: Fix translation support 3af27a3 qt4.inc: package qtdemo's docs in a separate package 14f65e4 qt4(embedded and x11): Disable neon for armv6-vfp 4c93866 qt4.inc: Remove the optional documentation package from the demo's RRECOMMENDS 8575c86 qt4: fix generated sdk 0ee37ea qt4e-demo-image: Improve image contents fbf50a7 package_rpm: Ensure multilib code is only called in the multilib case 2708ce6 Fix lttng-ust for powerpc64 9493ccf Update gitignore to ignore all meta-* directories 55dcda0 rgb: import from meta-oe layer c1a74b0 xserver/mesa: Bump PR after libdrm packaging changes 1c2753f libdrm: improve packaging 6697886 xf86-video-omapfb: bump SRCREV and add patch from meta-oe 7047b87 xorg-driver: rename .inc files and merge some changes from meta-oe b887e7f xorg-app-common: merge some changes from meta-oe c079b76 libxft, libxrender, renderproto: add native BBCLASSEXTEND b6b0240 gdb: upgrade from 7.3a to 7.3.1 a0cff4e byacc: upgrade from 20101229 to 20110908 4c7c6ce oprofileui: Update SRCREV to reflect recent accpeted patches by upstream 98d050d atk: add patch to replace G_CONST_RETURN with const b35a8ae distro_tracking_fields.inc: Update upgrade information ff7f503 dropbear: Upgrade from 0.52 to 0.53.1 dcd82f7 diffutils: Upgrade from 3.0 to 3.2. fa2a37d curl: Upgrade from 7.21.7 to 7.22.0 fea1749 bitbake.conf: Start using parallel make for do_install cb97f7a base.bbclass: Drop unneeded dependency 9c8b066 autotools: Disable dependency tracking 2f8d643 Remove help2man dependency ec8dd98 Fix flac build on e500mc cores dd71f67 fetch2/git: Make git fetch run with -f so rebased branches don't fail b0403ff beagleboard-audio: fix RDEPENDS on alsa-utils-amixer 9d1db6c python: fix sqlite RPATH issue 0b080c1 Add proper deps for nfs-utils, util-linux, and strace bd3ac21 Fix sysklogd build on e500v2 cores 8418fe8 Add udev patch to compile against newer kernels 742df8f Fix HAL on newer kernels without header file 73120fb Fix ghostscript on powerpc64 8836afc Add support for generating ext2.lzma{, .u-boot} images 8240072 Add support for generating ext2.bz2{, .u-boot} images 1e5ee83 Add autoconf cache for screen on powerpc64 0694273 Fixup kexec-tools compatible host for powerpc f4fcccd sysstat: update to 10.0.2 54e6a44 glew: update to 1.7.0 b5bdb6a insane: Promote most warnings into QA errors by default 72928ab util-linux: Ensure perl scripts reference the correct perl 0d3a864 mc: Ensure perl scripts reference the correct perl f30344d openssl: Ensure perl scripts reference the correct perl 11d4356 gcc-4.6: Update to tip of FSF gcc-4_6-branch f40b763 multilib: add MLPREFIX to deploy folder 0f7bf53 tune-i586: fix hardcoded TUNE_PKGARCH ccf807a apmd: use ${HOST_SYS}-libtool 7425beb apr: use ${HOST_SYS}-libtool 2c4f258 libpam: add flex-native to DEPENDS 2d59e4d cmake.bbclass: adding extendable extra variable to root path 504ebf0 scripts/oe-setup-rpmrepo: use setup_tmpdir from runqemu 7d1e101 scripts: use OE_TMPDIR instead of TMPDIR external variable 47b1ea7 tune-cortexa9.inc: add tunefile for cortexa9 socs a3bc561 bitbake.conf: Fix reversed linker hash style logic 997d9f4 Fixed a typo for setting up OECORE_ACLOCAL_OPTS for adt-installer case f977512 kernel.bbclass: remove unshipped files in do_install 9bef7e5 kernel.bbclass: handle .cis firmware b9c9225 kernel.bbclass: blacklist 'perf-dbg' as well for the modules metapackage 45f64a9 tables: remove it as obsolete recipe 0155f45 libgsf: remove dependence on gnome-vfs 1027545 oprofileui: remove dependence on gnome-vfs 0b4ef8a libc-package.bbclass: add MLPREFIX when set values to PACKAGES fae0e6c package_rpm: combine normal and multilib solution manifest together 6f6863a multilib: remove the multilib handling to allarch 9184d80 multilib.bbclass: map RDEPENDS and LINGUAS_INSTALL for image recipes ae29e8d distro_tracking: Update Manual Upgrade Checks ea8a997 ghostscript: disable check for time.h 2a8a052 rpm: fix QA Warning on installed but not shipped staticdev filesw 887993a zypper & sat-solver: needs RDEPENDS on rpm-lib a5cf5eb rpm: ensure that magic file is relocatable 3ae6040 eglibc: Add recipes for 2.14 46ad3b0 gcc-4.6: Use --with-linker-hash-style configure option 81d9b54 conf,recipes: Add new variable LINKER_HASH_STYLE 19a7e6c qt4-embedded: move qte.sh profile script into own package a459ac7 meta: qt4: fix postprocessing of pkg-config files 6527c17 pseudo: Fix QA warnings 323e291 sqlite3: Fix nativesdk packaging/QA warnings 193f5ea grub: Fix insane/QA architecture warning 2829e21 gcc: Fix two QA issues 4833772 linux-yocto/meta: eg20t and live boot config changes 324cb49 avahi: fix avahi-systemd dependencies 7f05f9b blktrace: update to version 1.0.3 f44f9f6 sysprof: update to version 1.1.8 f8dbe51 libffi: really populate -dev package 413e1a8 gconf-dbus: packaging fixup fd3a960 gcc: include libgcov.a into libgcc-dev package 9948a81 gcc: fix possible problems with nscd compilation during eglibc-nativesdk build 62ea046 icecc-create-env-native: provide the script right in the tree 8278506 bitbake.conf: change ccache path to use MULTIMACH_HOST_SYS 1451b9f gnome-doc-utils: Prepend PKG_CONFIG_SYSROOT_DIR to the path returned from PKG_CONFIG e3c5d7a libtool: Fix an issue where unnecessary rpaths were being injected 1750e90 sstate: No need to spew out a debug message per file, summarise instead cb19113 base.bbclass: Drop legacy code that is no longer useful/used 9fe66fd autotools.bbclass: Set the dynamic linker search path for libtool correctly d39c673 matchbox: Upgrade SRCREV to reflect recent accpeted patches by upstream 114ade8 tcp-wrappers: Bump PR to make meta-oe merge 49ed1ca documentation/poky-ref-manual/ref-classes.xml: documented useradd.bbclass 46bd7cb documentation/poky-ref-manual/ref-variables.xml: added BAD_RECOMMENDATIONS 315cb8e documentation/poky-ref-manual/ref-classes.xml: fixed insane.bbclass added others 5a23ec2 documenation/poky-ref-manual/ref-variables.xml: debug-tweaks qualified cd71ed5 documentation/adt-manual/adt-command.xml: Note about running configure 24eaac7 documentation/dev-manual/dev-manual-model.xml: edit pass 44963bd documentation/dev-manual/figures/app-dev-flow.png: Updated app flow image cbcdc22 documentation/dev-manual: Added TM to first Eclipse in chapters. c54fffe documentation/dev-manual/dev-manual-model.xml: Edits and start of app section. dfad4db documentation/dev-manual/dev-manual-kernel-appendix.xml: added line break 42c8028 documentation/dev-manual: model changes and updated figure 15793a8 documentation/dev-manual/dev-manual-newbie.xml: note for maintainer 5031ba1 documentation/dev-manual/dev-manual-kernel-appendix.xml: Robert Berger feedback. 7021e04 documentation/dev-manual/dev-manual-newbie.xml: addes link to commit page 2a745da documentation/dev-manual/dev-manual-newbie.xml: edits and enhancements. 13f312a documentation/poky-ref-manual/resources.xml: Updates to mailing lists. fea08c7 documentation/dev-manual/dev-manual-start.xml: formats and re-wordings. 90ed200 documentation/dev-manual/dev-manual-intro.xml: minor edits. f00ad29 documentation/dev-manual/dev-manual-intro.xml: re-wrote the intro paragraphs. 2889d7d documentation/yocto-project-qs/yocto-project-qs.xml: Fixed text for filesystem 4a0f744 documentation/yocto-project-qs/yocto-project-qs.xml: General edits a3e0cb6 documentation/adt-manual/adt-eclipse.xml: various minor clean ups. 8eb63b6 documentation/adt-manual/adt-prepare.xml: fixed broken cross-link. 468f2ff documentation/adt-manual/adt-prepare.xml: applied Jessica Zhang revisions 9960c92 documentation/adt-manual/adt-prepare.xml: Title correction ba958cb documentation/adt-manual/adt-prepare.xml: toolchain enhancements 997bcb7 documentation/adt-manual/adt-prepare.xml: removed terms d7dc960 documentation/dev-manual/dev-manual-newbie.xml: new terms 4b20f0f documentation/adt-manual/adt-eclipse.xml: Fixed the section formatting. f7cb020 documentation/adt-manual/adt-eclipse.xml: writer note and re-wording ace70b3 documentation/adt-manual/adt-prepare.xml: writer notes and section format 6d05d17 documentation/adt-manual/adt-eclipse.xml: minor edits 8995698 documentation/poky-ref-manual/resources.xml: re-wrote Contributions 524f577 documentation/dev-manual/dev-manual-newbie.xml: re-write change submit 080c6ec neon: Add libproxy to DEPENDS to ensure determinstic builds e2f1a82 libsndfile1: Disable external codec librbaries since we don't list in DEPENDS eb509c6 cairo: Disable bfd symbol loopup since we don't list it in DEPENDS b390a5a gtk+: Explicitly disable xinerama since we don't have it as a DEPENDS 46bbdc1 gnome-desktop: Ensure we're deterministic about startup-notification dependency dea2fd1 bitbake/lib/bb/msg.py: fix setting debug and verbosity levels e271de0 hob: store recipe path at load time 7b578b9 hob: fix building with current selections after reparse 98a7620 ui/crumbs/hobeventhandler: fix variable name typo f159dfb ui/crumbs/hobeventhandler: move remaining getVariable calls to init 118da17 attr/acl: add SSTATEPOSTINSTFUNC e377f2b populate_sdk_rpm: add pkgconfig(pkg-config) to the list ac97d42 populate_sdk_rpm: add items to the INSTALL_PROVIDESNAME_RPM list dbe371d intltool: add libxml-parser-perl-native dependency to -native version ea0b744 multilib.bbclass: Partially fix multlib image targets ca64b2e qemu-config: use pkg_postinst to generate the proper shutdown.desktop 60d0c57 bluez4: split gstreamer plugin into a seperate recipe 0b9bd3c diffstat: Add missing file from previous commit 824b014 diffstat: Fix a build failure when using libdir=/usr/lib64 7eb6cf4 gnome-desktop: Fix python path in scripts to use target path b1f7734 foomatic-filters: Disable filter checking 69672a4 cups: Fix recipe to use the correct cups directories cb7cab3 eglibc-2.12: Fix build on powerpc/603e 2a78707 Revert "eglibc: fix packaging of some of nativesdk packages" f4b4432 glib-2.0: Drop old 2.27.5 development version 0289683 qemugl: Use local variable rather than "push" to save register f800862 eglibc: fix packaging of some of nativesdk packages cac6eb9 gcc: include plugin-related headers into packaged SDK 96333e8 e2fsprogs: include devtools scripts 66aed14 glib-2.0: include glib-gettextize stuff e0f32aa alsa-lib: Don't use versioned symbols on uclibc builds as it causes strange hangs ff8f0ea libxml2: reinclude a -staticdev package 2da2247 gettext: shut up unshipped files warning 2179ede polkit: fixup packaging 28b0653 gtk+: packaging fixups 1e3644c libgpg-error: drop common-lisp files c1cd38c avahi: include dbus interfaces definitions into daemon package 1b449dd insane.bbclass: don't warn on .so files in -nativesdk packages 72ff0c5 icecc.bbclass: fix handling of nativesdk and cross-canadian packages 3d69181 icecc-create-env: rename to -native 3ac49c3 python: Fix cgi.py runtime issue e4c57fa task-core-lsb: Remove perl-dev 7042e14 sudo: Fix PAM dependencies 0f6ef5c perl: Fix a few perl binaries to use target interpreter paths 7f59cbc usbutils: Move the pkgconfig file(s) to the -dev package a531369 bluez4: Replace deprecated configure switch a502a18 libglade: fix the python environment settings ee6e30a glib-2.0: Fix python paths in scripts to use target paths f0b9d79 procps 3.2.8: remove initscript d9d2c9c xserver-xf86-lite.inc: use ${datadir} instead of /usr/share 4d3bac9 xserver-xf86-dri-lite.inc: use ${datadir} instead of /usr/share ad0c9a1 xserver-xf86-common.inc: use ${datadir} instead of /usr/share 093c27a linux-yocto: kernel configuration cleanups 03b8674 linux-yocto: add blktrace feature 4ea42b6 linux-yocto: simplify kernel configuration check expression e7f40dd distro tracking: Update Distro Aliases 97bded5 rootfs_rpm: two step installation bcfff45 Fix mercurial fetcher in fetch2 863f43a hob: fix opening of image output dir on image build completion 7dc4495 ui/crumbs/runningbuild: fix log messages right-click menu 6a2c85f libpng: Add RPROVIDES for backwards compatibiliy with previous libpng packaging d887bac debian.bbclass: Fix hardcoded "lib" reference 737f8bb Update python dependencies to be simply to "python" d380bb1 libpng: avoid dangling link in libpng package c81cd24 oprofileui: Change avahi to avahi-ui depends 9aa8b76 Fix alsa-utils package dependencies a0530fc multilib_global.bbclass: Fix non-multilib package provides 87849d8 busybox: Enhance to add dynamic per-file provides 2fa80ef Add a run-time dependency that eglibc support GNU_HASH 29aa617 Fix RPM dependencies 64ea342 multilib: install MULTILIB_IMAGE_INSTALL 719e1ed rpm: add multilib prefix for archs under deploy/rpm 59a0890 avahi: Refactor recipe to move UI to avahi-ui efc88ff distrodata: fix distro_check code c2db80b zypper: git repo moved to github 86d05bf sat-solver: git repo moved to github 8b96f55 libzypp: git repo moved to github 23773a8 deb packages support: switch from /var/dpkg to /var/lib/dpkg f45ef8d scripts/combo-layer: fix still overzealous regex in default hook script 6bed96c hob: enable package only builds even if an image has been built 081990b hob: fix build again when building packages only 8ebca0c ui/crumbs/hobprefs: re-enable reloading of data after prefs changes 92015c7 fetch2/git: fix subpath destination directory 28c3aa8 fetch2/git: be more carefull in _contains_ref when checking git log output 35fdd5a fetch2/git: fix logger.debug 9e4dc60 fetch2/wget: make checkstatus() quieter 1fba7be freetype: disable bzip2 compressed font support d2f34d3 libgnome-keyring: add libgcrypt to DEPENDS 934e9ba libgcrypt: add libcap to DEPENDS 2a09a93 taskdata: fix string formatting of an error message 7a0cbe6 cooker.py: Fix key expansion issues in showVersions 3a6a38e sanity.bbclass: add a sanity check for KDE 4.x konsole in TERMCMD 9b51752 lib/oe/terminal.py: declare konsole from KDE 4.x as unsupported aed5247 texinfo: several changes to build without zlib and ncurses headers on host f48f456 base.bbclass: add crosssdk items to INCOMPATIBLE_LICENSE exclude list 92518c5 git.py: Fix logging vs logger typo dfc13c9 sanity: disable mirrors for connectivity check 6be4817 bugzilla.bbclass: add a class to report build problems to bugzilla 849bf66 icecc.bbclass: replace with updated version 596a197 icecc-create-env: a tool to create icecc toolchain tarballs 99dd3c0 image/package.bbclass: Revise multilib support for DEBIAN_NAME. aab7107 Misc: Added MLPREFIX to final pkg names in case of DEBIAN_NAMES. 27f8868 debian/_ipk.bbclass: Added multilib support for package_name_hook() f5a1b3c package.bbclass: fix spurious 'installed but not shipped' warning bb0cc3c qemu: Fix reversed BGR values on ARM Versatile emulation ce2b383 Prevent IMAGE_FEATURES from contaminating initrd e4fe554 Set an explicit path for the initrd scripts 6f797c9 eglibc-2.13: Replace oewarn with bbwarn 0ecc7bb initramfs-live-install: add PN to RDEPENDS a5de479 grub_1.99: add PN to RDEPENDS 000068e ttf-bitstream-vera_1.10: add PN to RDEPENDS 66f4ceb liberation-fonts_1.06: add PN to RDEPENDS bf51268 liberation-fonts_1.04: add PN to RDEPENDS 5a489ec web: Fix SRCREV due to lost commit in web-sato 36aba35 distro-tracking: Update package alias 14666c0 liboil-0.3.17: add upstream Fix-enable-vfp-flag patch 0b9e2fa claws-mail: be carefull with # comments ending with backslash 6c4d3f5 abiword: be carefull with # comments ending with backslash e6706bf subversion: remove neon-detection.patch and --with-neon option 49a34b1 task-core-boot: allow distributions to define login and init manager 0a27b8b openssh: update init script to create ECDSA keys if needed bb4a5c4 linux-yocto: remove emenlow from meta-yocto bbappend (2.6.37 version) fb8a0ad qt4-x11-free: remove emenlow reference from meta-yocto bbappend e20ceb9 local.conf.sample: remove emenlow from example machines 04c66de cml1/kernel: Update do_menuconfig to use oe.terminal() 79e3952 distro-tracking: Update alias 4471d3d distro_tracking: update package alias dd605b1 task-core-sdk: change task-core -> task-core-console 7b6b3b8 grub2: new recipe bcd1bca initramfs-live-install: add support for grub2 978f48b linux-yocto-rt: correct 3.0.3->3.0.4 mismerge for, stop_machine.c 420a545 linux-yocto: split e100 and e1000 support 1080d52 linux-yocto: move common tasks to a common location 8c310ee task-core: split into task-core-console and task-core-x11 d1f4ceb distro_tracking_field: add distro checking field b75cf8e qt4: add blacklist-diginotar-certs patch c2bbc59 package_deb.bbclass, populate_sdk_deb.bbclass: fix meta-toolchain-gmae build 90ded12 Uprev to latest version of prelink_git, fixing TLS issues ce66e2c core-image-minimal: Add missing POKY_EXTRA_IMAGE variable a765b9a libzypp: move package-manger to it own package 7eea637 documentation/dev-manual/dev-manual-newbie.xml: Suggestions Robert Berger a45fafc documentation/dev-manual/dev-manual-start.xml: Suggestions by Robert Berger 2f1d30a documentation/dev-manual/dev-manual-newbie.xml: Updates from Robert Berger dab5ffc documentation/adt-manual/adt-prepare.xml: Added note about sato a7d58b5 documentation/adt-manual/adt-eclipse.xml: Fixed ifconfig command. 0bd5bba documentation/adt-manual: Rewrite for Indigo version of Eclipse. 826a53a hob: correctly set the selected image when loading a recipe 684a7c6 hob: correctly handle an exception 58570ec ui/crumbs/hobeventhandler: don't check BBPATH and BBFILES each build 3d09687 ui/crumbs/hobeventhandler: fix test for BBFILES a1c62ae dpkg: fix pkg_postinst_dpkg, don't supply {bindir}/update-alternatives 50e184e multilib: Remove recipe from multilib.conf that inherits allarch 3117530 base.bbclass: do not expand PREFERRED_PROVIDER for kernel recipe aa203e4 Revert "pango: use qemu to generate pango.modules during rootfs construction" cba78fe opensp: Fix hard path in native nsgmls. 20dbf00 runqueue.py: Ensure fakeroot variables are reflected in the datastore acf62d3 shadow: add patch for useradd lossage 9c740e0 runqemu: improve auto-detection of rootfs filenames c505815 bitbake.conf: Default to explicitly setting the variable to disable pseudo 5a83e50 runqemu-internal: Hide some harmless warning messages 32bb9c3 imagetest-qemu/runqueue: Since we no longer support BUILDDIR, use TMPDIR b9386c6 Revert "opensp: Fix sstate relocation issue" c6caa2e terminal.bbclass: Improve environment handling fa07162 runqueue: Ensure task environment is correct 98c2da6 python-native: add link for python2 95d3988 base.bbclass: fix substring matching in COMMERCIAL_LICENSE 52835dd avahi: only use gtk if DISTRO_FEATURES includes x11 00b4770 useradd.bbclass: use correct value for $D in postinst functions 8712dfb resolvconf: switch to 1.59 as 1.58 was removed from debian ftp 129c98c sstate: Avoid contention between sstate packages 62892b2 beagleboard: document how to enable the hard floating point abi f50a176 linux-yocto: remove emenlow from meta-yocto bbappend e5e6e76 gettext: use included libxml and libcroco 0efd5b3 gcc: add patch for ice 50099, which caused lttng-ust not to build 7283bb9 meta/recipes.txt: correct Qt capitalisation ac0b2cb sanity.bbclass: re-enable DISTRO check 0342cf8 core-image.bbclass: zap root password if debug-tweaks not enabled f0d4906 hal: Add virtual/kernel as hal's build dependency 9e48dd7 multilib: Remove the multilib extension for linux-yocto 8d5c35b multilib_global.bbclass: handle kernel-module-* for multilib 8476005 telepathy-python: avoid duplicated installation of errors.py 4669760 cpan.bbclass: fix native perl issue 939b9c8 prelink: Update to latest upstream version f048ccd glib-networking: Ensure certificates are consistently disabled f6bebe5 package_deb.bbclass: put the stderr into log.do_xxx-attemptonly.xxx 921d73b populate_sdk_deb.bbclass: add the missing parameter - for tar e691f43 busybox: update to 1.8.5 93ca6d3 site/x86_64: Add entries to fix conf error on x86_64 44fd68d xserver-nodm-init: Change hidraw mode to allow normal user access dc3a827 initramfs-live-install: Be consistent with grub. f85cb8f web: Update SRCREV to address ccs_parser_parse_stylesheet arg mismatch [YOCTO #1454] 8253571 mtd-utils: update to version to 1.4.6 b8b4a92 pango: use qemu to generate pango.modules during rootfs construction 168b89a linux-yocto: re-enable utrace 244ebdc linux-yocto: re-enable systemtap dbff562 icu-3.6: fix building with big make -j 0126118 qt-demo-init: fix init script 4376a81 image_types: Fix ubi images creation f8ba142 scripts/hob: notify the user when the GUI won't launch immediately 886440c scripts/hob: update to match recent hob changes 314131e linux-yocto: clean configuration for v3.0.4 b45e5a3 linux-yocto: update to v3.0.4 593b2e2 linux-yocto: generalize kernel config search pattern 654112e image_types.bbclass: use per-image dirs for extX.gz images generation fa45552 runqemu: standardize ability to specify custom qemu/kenel boot options 334a2ef task-core-tools: add systemtap to qemuarm 6ca3b31 systemtap: upgrade to 1.6 b6aa703 qt4e-demo-image: Ensure a shell is present 726a9d2 git: fix sstate relocation for git-native a6994f8 lib/bb/siggen.py: return a string from noop get_taskhash a9325ec hob: fix segfault on second build 88852a5 hob: clear out temporary file list after deleting 09d7874 hob: disable removal of packages 38653d6 ui/crumbs/runningbuild: mask run_buildstats failure c0cb486 ui/crumbs/hobprefs: disable 'build toolchain with headers' 9a67398 hob: add a test to ensure hob is run with the required pre and post files 7d3d3e9 hob: reflect defaultsetup being default distro cffbab5 hob: use both pre and post files for hob configuration ba91445 linux-yocto/meta-yocto: update SRCREV for v3.0.4 bb024d7 opensp: Fix sstate relocation issue 75ff724 groff: Fix sstate relocation issue 99cb233 YOCTO #1088: documentation - Added text to partially address package bug ce0456d documentation/adt-manual/adt-prepare.xml: Updates to variable and other edits e48d500 documentation/adt-manual/adt-prepare.xml: added reference to dev manual. 04ca8b2 YOCTO #1419: General edits and fix for oprofile-server rev requirements. 77d1ba4 documentation/adt-manual: General edits. b214cdc documentation/bsp-guide/bsp.xml: Edits for Crownbay example in kernel recipes 4884e38 documentation/dev-manual/dev-manual-bsp-appendix.xml: Fixed BBFILES_COLLECTIONS. 31acde6 documentation/poky-ref-manual/usingpoky.xml: Edits per Darren Hart 0d6dc5c documentation/dev-manual/dev-manual-kernel-appendix.xml: moved statement 97768b8 documentation/dev-manual/dev-manual-model.xml: minor edits 8a4282d documentation/Makefile: Updated the dev-manual to include three new pics. f3cb36b documentation/dev-manual/figures: Three figures for kernel added. 837a464 documentation/dev-manual/dev-manual-model.xml: Edits to Modifying Kernel 5da4d3e YOCTO #1426: documentation/yocto-project-qs/yocto-project-qs.xml: added xterm. f7cb20c populate_sdk: We need to ensure that the SDK sysroot reflects PACKAGE_ARCH de5d527 sanity.bbclass: fix splitting on newlines of SANITY_TESTED_DISTROS 050e43a useradd.bbclass: remove hardcoded reference to /usr/bin c04ae9b gcc: Fix multilib baselib confusion f9c3639 multilib: Only build one kernel accab54 multilib: extend multilib prefix for libsdl 6ebcc6c multilib: Using different sysroot for multilib recipes 7046e28 rootfs_rpm: setting DEFAULTTUNE for multilib archs 37285ab hal: Remove build time dependency of virtual/kernel 9ba02cc dropbear: add missing files 380f38c tzcode: Update to 2011i c4fbcc5 sato recipes: Update PR because of libowl conversion to git 99666e7 o-hand recipes: convert from svn.o-hand.org to git.yoctoproject.org 06a89cb util-linux: fix packaging of readprofile c9c76ef bitbake/event: Allow event handlers to quietly raise SkipPackage events 4baae78 fetch2/git: Allow to specify the name of the checkout directory d1a84c9 scripts: Show sensible warning messages if expected binaries don't exist c0df2ab scripts: Don't show errors from which ifconfig failing 705ec50 poky.conf: perform network sanity check by default for poky distros c1c52a8 Fix powerpc term and provide more template for different arches ec28538 Revert "Fix adt-installer for consistent naming for powerpc and add all arch template for installation" 57aa993 libcap: only enable pam if DISTRO_FEATURES requests it 7a27253 shadow: Fix rpm failed dependencies when install c9f5a4f dropbear: Change the path to find configuration file and add a configuration file for dropbear d5edc9c qt-demo-init: Fix bug 999 e2ff508 connman-gnome: Fix WiFi security display issue c9767ea gdb: Further S vs. PV fixups 8294f42 xserver-nodm: Disable dbus-wait as it causes users too much confusion a8d5225 sanity.bbclass: Clean up various MACHINE checks 0c78dbc sanity.bbclass: Fix broken whitespace 8c1c37a sanity.bbclass: Fix broken indentation leading to code being skipped unintentionally c7869b4 package.bbclass: Ensure task's variable dependencies are correctly caputred in the sstate checksum 9958a57 bitbake/fetch2/git: Ensure .gitconfig file is ignored 64327ba bitbake: Correctly handle multiline comments including whitespace 8a78ed6 intltool: Fix perl paths 9df3328 libc-package: restore correct mangling behavior for locale names ac47c1b gdb: Fix broken source directory b3922ca eglibc-locale.inc: Add eglibc-binaries, eglibc-localedatas, eglibc-gconvs and eglibc-charmps to variable PACKAGE de4f814 gdb: upgrade from 7.3 to 7.3a 1975956 libidn_1.22: add SRC_URI checksums a6b35d9 image.bbclass: use ${TARGET_PREFIX}depmod d08f3f4 image_types_uboot: fix a number of issues d15df2e image_types: add ext4 types from OE ea71186 distro_tracking_fields: update binutils to 2.21.1a 38f03e2 tcmode-default: update binutils version e853d0a ui/crumbs/tasklistmodel: don't add empty entries to COL_BINB ea33ddc ui/crumbs/tasklistmodel: loop optimisation in include_item() ed15be3 ui/crumbs/tasklistmodel: remove unnecessary check bfdc8a2 ui/crumbs/tasklistmodel: optimise find_path_for_item() 9a04776 ui/crumbs/tasklistmodel: prevent packages depending on each other e2a3f28 ui/crumbs/tasklistmodel: don't add same item to binb column more than once 76b228c YOCTO #1419: documentation/adt-manual/adt-eclipse.xml - re-word ca975f5 documentation/bsp-guide/bsp.xml: Removed directory class 748afba documentation/bsp-guide/bsp.xml: Scrubbed Crownbay items. fdbc652 documentation/poky-ref-manual: Removed "spitz" machine example. 4a39412 documentation/poky-ref-manual/ref-features.xml: typos fixed. 2b3563f documentation/Makefile: Updated comments for usage per Robert P. J. Day d67201e documentation/poky-ref-manual/usingpoky.xml: Updated logging mechanism ba3069c YOCTO #910 - documentation/poky-ref-manual/extendpoky.xml: point to dev manual. c3e8327 documentation/dev-manual/dev-manual-newbie.xml: added more to contributing 79bd1a1 documentation/dev-manual/dev-manual-intro.xml: Added other information from ref ffbed4c documentation/poky-ref-manual/resources.xml: re-write for today's world. dd92838 documentation/poky-ref-manual/faq.xml: Scrubbed for term Poky. 0e87c3e documentation/poky-ref-manual/extendpoky.xml: Changed targe link title. dfce269 data_smart.py: make use of expand cache in getVar() 5d75eb2 binutils: update to 2.21.1a 85cf4de ui/crumbs/runningbuild: add a 'Copy' item to the messages right-click menu cd51ea6 ui/crumbs/tasklistmodel: don't add same item to binb column more than once 744f58f kernel.bbclass: Find the kernel consistently. 7d8d3e6 pango: make x11 support conditional on DISTRO_FEATURES 0963d51 opkg-utils: ignore packages disapperaring filelist generation e4ebecd eglibc: fix gconv packaging after 5486cac29db6e67051fff7637a0abc9aeab661e5 7d017c3 multilib.bbclass: add renaming for INITSCRIPT related variables 0e7bcf1 multilib.bbclass: add "pkg_postinst" and "pkg_postrm" as renaming elements 45f805a multilib.bbclass: Fix renaming logic for "FILES_", "RDEPENDS_", etc ae2a894 bitbake.conf: Use BPN in FILES paths d205a16 base-passwd: Use BPN in FILES paths 73b8ac6 qt4e-demo-image: Fix bug 999 c7850dd linux-yocto-rt: qemumips: fix boot panic 8a8a3b3 scripts/runqemu: disable unfs boot mode for qemuppc 5633ac7 kernel.bbclass: support kernel image type of vmlinux.gz e70a369 cmake-nativesdk: remove gcc standard paths 4d8b2da qt4-tools-nativesdk: remove gcc standard paths 9ce2cc6 bitbake.conf: set includedir_nativesdk ae4ad20 Fix adt-installer for consistent naming for powerpc and add all arch template for installation de36669 package.bbclass: Fix recrdeptask of image type recipes 84ef84d script/runqemu: change boot command line for qemuppc 5d46305 gcc-4.5.1: Drop gcc-poison-parameters.patch, replace with bug fix patch 36cda02 gcc-4.6: Drop gcc-poison-parameters.patch as its not need 6c2b7be classes/sanity: enhance the network connectivity test c031954 linux-yocto: update meta SRCREV to sync version strings 9ca6806 docuementation/poky-ref-manual/ref-structure.xml: Changed SRCDATE reference b5fc6d7 documentation/poky-ref-manual/faq.xml: Edits to scrub for Poky 8e0ba4e documentation/poky-ref-manual/faq.xml: Edits to scrub for Poky d02e56f documentation: Changes to Paul Eggleton's edits for various manuals. 88dfc93 documentation: clarify specifying a specific package with -e 954444f documentation: update documentation for SRCREV variable 1e18d85 documentation: set titles for all documents cf65497 documentation: update BBFILE_* variable documentation 75fc384 documentation: update for directdisk/live image changes 23a7eec documentation: update TERMCMD/TERMCMDRUN documentation 547ba60 documentation: ensure all examples have LIC_FILES_CHKSUM 3906b60 documentation: improve LIC_FILES_CHKSUM documentation 88c1694 documentation: SITEINFO_ENDIANESS -> SITEINFO_ENDIANNESS e4e0d02 documentation: typo, spelling & minor grammar fixes 82fd055 documentation: manpage -> help output 6ca8903 documentation: correct QT to Qt d1b1109 hob: disable some menu entries whilst build is in progress 39e90c8 bb/ui/crumbs/tasklistmodel: fix find_reverse_depends method 8ac3cec hob: don't set PARALLEL_MAKE and BB_NUMBER_THREADS based on cpu count cd80b4f bb/fetch2/git: add checkstatus command 64c1f93 meta-toolchain/environment: Collected site config files in runtime. c6b8084 toolchain-script.bbclass: Collected cached site config in runtime. 4c2baa2 libc-package bbclass: fix binary localedata dependency code a097c26 terminal: fix issue with unset exportable env vars f5cddf9 linux-yocto/2.6.37: apmd + get time of day fixes f340011 linux-yocto: update machines and default configuration d8ac3ed linux-yocto: update meta SRCREVs for beagleboard config changes f6c1e8e meta-yocto: make qemu machines prefer linux-yocto_3.0 2ee520a linux-yocto/meta-yocto: update SRCREVs for 3.0.3 and consolidated fixes f08b8c9 meta-yocto: atom-pc/mpc8315e-rdb change preferred version to 3.0 2c8120d linux-yocto-rt: update qemuppc support and streamline variables d7b152d kern-tools: allow flexible branch points 4f4475f initrdscripts: fix init-live.sh for hddimg and livecd 6ba3b6b libpam: Setting suid bit for unix_chkpwd 45a0c38 cronie: Updates to cronie 9a623a6 mips32: add mips32el tuning ed7affc procps: Fix lib path to support multilib 16ca6dd libtasn1: update SRC_URI f8cddd7 mpc8315e-rdb: add kernel modules to rootfs 51351e3 documentation/yocto-project-qs/yocto-project-qs.xml: Fixed manual references d02f6b0 documentation/poky-ref-manual/ref-variables.xml: Fixed links 94638de documentation/poky-ref-manual/ref-varlocality.xml: Reformatted 61d65d1 documentation/poky-ref-manual/introduction.xml: Title changed. 638ffa9 documentation/poky-ref-manual/ref-variables.xml: Fixed default format 70bd76e documentation/poky-ref-manual/ref-variables.xml: Scrubbed for Poky 7a59fbd documentation/poky-ref-manual/ref-variables.xml: partial edits. 87f4bfd documentation/poky-ref-manual/ref-features.xml: Cleaned up list formatting. 5b17172 documentation/poky-ref-manual/ref-images.xml: Reformats of the Docbook code. 95ef8d7 documentation/poky-ref-manual/ref-classes.xml: Scrubbed for Poky 32a8608 documentation/poky-ref-manual/ref-bitbake.xml: scrubbed for Poky 39de08c documentation/poky-ref-manual/ref-structure.xml: Scrubbed for Poky and edits cde376c documentation/poky-ref-manual: Removed figures from file structure. 31d5948 documentation/bsp-guide/bsp.xml: General updates 8fd890a documentation/Makefile: Removed sato image from tarfile list in poky-ref-manual. ec6b307 documentation/poky-ref-manual/figures/ss-sato.png: deleted figure. 10ddfd6 documentation/poky-ref-manual/extendpoky.xml: scrubbed for Poky 776834d documentation/poky-ref-manual/development.xml: Garman's partial review comments ed4caad documentation/poky-ref-manual/development.xml: updates for YP terms 90d5834 documentation/poky-ref-manual/usingpoky.xml: small edits to list and title e384051 documentation/poky-ref-manual/introduction.xml: re-write for YP 7f9b16d documentation/poky-ref-manual/resources.xml: Changed title 8aa163b documentation/poky-ref-manual: Changed top-level titles 295b855 documentation/poky-ref-manual/usingpoky.xml: re-write for Yocto 00d483d documentation/poky-ref-manual/usingpoky.xml: YOCTO #1001 - new section added 8165eef documentation/dev-manual/figures: Figure updates 96f0c57 documentation/poky-ref-manual/development.xml: re-write of software dev section 34de499 documentation/dev-manual/dev-manual-newbie.xml: Updated term list. 266b83c documentation/poky-ref-manual/development.xml: Updated software dev intro 45aa3ff documentation/poky-ref-manual/figures/poky-title.png: Changed Title 1e789e6 documentation/dev-manual: Incorporated Joshua Lock's review comments. 0a2e82c documentation/poky-ref-manual/usingpoky.xml: Fixed double dash display. 73be798 documentation/yocto-project-qs/yocto-project-qs.xml: fixed double dash 9346231 documentation/adt-manual/adt-prepare.xml: changed 1.0 to 1.1 5b5ace9 documentation/adt-manual/adt-eclipse.xml: Fixed double dash display. cc340cd documentation/adt-manual/adt-command.xml: fixed double dash display. cc4a9d7 documentation/yocto-project-qs/yocto-project-qs.xml: changed to 1.1. 7d465d6 documentation/kernel-manual/kernel-how-to.xml: command indentation fixed. 53dcd99 documentation/adt-manual/adt-package.xml: Fixed typo and long commands 472f050 image.bbclass, kernel.bbclass: remove non-standard -n option from cp command 9471db5 scripts/combo-layer: fix overzealous regex in default hook script 5f6dcb2 base.bbclass: clarify COMMERCIAL_LICENSE skip reason ec63594 utils.bbclass: skip empty paths when handling FILESEXTRAPATHS 5c78d94 task-core-x11-sato: add libsdl into sato image 9a75040 libsdl: do not inherit nativesdk 1eb4426 scripts/combo-layer: fix configuration file handling 6f5066a scripts/runqemu: add support to pass bootparams to kernel 628d09c kernel.bbclass: save kernel image name into $kerneldir 505be75 Use OECORE_DISTRO_VERSION instead of POKY_DISTRO_VERSION b6bd713 bitbake meta-toolchain with gcc 4.5.1 failed ac77252 linux-yocto: update SRCREVs for 3.0.3 c52c2ac linux-yocto: move more default values into linux-yocto.inc 90d11a0 at: fix RDEPENDS -> RDEPENDS_${PN} 4403816 adt-installer: Removed the hard coded repo url. 67f5a95 image_types_uboot: add uboot mkimage fs types 7629ec7 rpm: be certain we don't prefix our binaries 86c9058 libpcre: the generated libtool uses HOST_SYS a0dc330 recipes: Delete patch=1, its default and replace pnum with striplevel e30a104 tune: Add hard floating point variants of cortexa8 tunes 1f26aa3 tune: add missing closing quote to arch-armv7a.inc for AVAILTUNES b2266beeb usermanual: The git fetcher defaults to the git protocol (or file) 09761c9 fetch2/git: Add rsync as a valid git protocol 5c34022 bb/ui/hob: warn and prevent image build if no IMAGE_FSTYPE is set ba63660 bb/ui/crumbs/hobprefs: fix setting IMAGE_FSYTPES 17bd3a0 bb/ui/crumbs/hobeventhandler: fix return values of *_image_output_type a17e6c4 bb/ui/hob: fix package only build 4ea4f44 bb/ui/crumbs/tasklistmodel: track the PN for each entry in the model 989ce0c hob: don't try and build if user selects Bake with no selections made b6009b2 bb/ui/crumbs/tasklistmodel: store all binb, not just the first d2f1ede bb/ui/crumbs/tasklistmodel: remove useless items from dependency list c1b31f8 bb/ui/crumbs/tasklistmodel: more robust checking for substrings 1082201 bb/ui/crumbs/runningbuild: hide the progress bar on cache load complete 38393fb bb/ui/crumbs/runningbuild: reduce number of messages after recent msg change edd8e1e documentation/adt-manual/adt-command.xml: general edits. cb8f3b1 documentation/adt-manual/adt-eclipse.xml: general edits and formatting. 7946934 documentation/adt-manual/adt-package.xml: Minor edits d5d0f08 documentation/adt-manual/adt-prepare.xml: edit pass for new termninology b29e5ba documentation/Makefile: added git-workflow.png and kernel-dev-flow-png to tarball list. 73b44c6 documentation/dev-manual/dev-manual-newbie.xml: added picture for newbie Git ca9366e documentation/dev-manual/dev-manual-bsp-appendix.xml: Corrected the SRCREV statement 1ae239f documentation/dev-manual/dev-manual-kernel-appendix.xml: Added kernel reconfigure example. 958c355 documentation: updated the note in the front matter to use a link specific to manual. 7e8ae60 documentation/dev-manual/dev-manual.xml: updated note for latest documentation. 36396b6 xcb/libpthreads: Add BBCLASSEXTEND to resolve missing providers in world builds 03211ed bluez4: drop usbpath from DEPENDS 0427c2b libgcc: Remove fetch/unpack/patch noexec stamps 8aa14b4 newt: update distro tracking fields 89034c2 alsa-tools: update license and add distro tracking fields c7016ba slang: add homepage and update distro tracking fields b8a4d10 mailx: update license and distro tracking fileds ddc01be eglibc: check dependencies among eglibc options f6206cb acl: Use BPN instead of PN for style like lib${PN} 1216f6f attr: Use BPN instead of PN for style like lib${PN} 3b387d7 ea-acl: Use BPN instead of PN for style like lib${PN} 90d20d0 curl: Use BPN instead of PN for style like lib${PN} 30ba983 initrdscripts: fix init-live.sh b174d51 bluez4: update recipe from meta-oe a6e564b task-core-boot: allow distribution to override default dev_manager provider with VIRTUAL-RUNTIME_dev_manager 02a7028 gdb: Add lttng-ust to DEPENDS only for eglibc e303a46 task-core-tools: Use LTTNGUST variable instead of hardcoding lttng-ust 357434d at: make at usable for common user db530d7 libxslt: fix packaging of static libraries 1927021 scripts/runqemu: modify search paths for libgl 85a6d0c qemu: modify search paths for libgl ce4c33e sysvinit: Change ${PN} to ${BPN} in file names be71f55 busybox: Change ${PN} to ${BPN} in file names d66c067 perl-native: Update find_perl to find the perl wrapper ce1f028 glib-2.0: explicitly disable dtrace and systemtap for native varaint 5f32d1f qt4: allow a reduction in build time e043c9d sanity.bbclass: add optional untested host distro warning 333d571 image.bbclass, kernel.bbclass: create warning file about deleting deploydir files 915f1e0 meta-yocto: add linux-yocto-rt support for all meta-yocto machines e744900 meta-yocto: allow for virtual/kernel override 978cdd5 kernel: restore crtsavres.o to enable building external modules on powerpc 5ab332a shadow: switch to a fetchable SRC_URI 354bd05 poky.conf: add flag opengl into DISTRO_FEATURES 0671cf3 buildstats.bbclass: Fixing task endtime 718e076 ofono: conditionally enable bluetooth c8294d1 create-pull-request: increase likelihood of detecting a rename 08a5e24 connman: use DISTRO_FEATURES to enable wifi and bluetooth 17f8e98 qmake_base: add uclibceabi 032f396 distro_tracking_fields.inc: update the info for the following recipes 99fbca7 dri2proto: upgrade from 2.4 to 2.6 4580761 glproto: upgrade from 1.4.13 to 1.4.14 f08d7da xproto: upgrade from 7.0.21 to 7.0.22 8c9add6 freetype: upgrade from 2.4.4 to 2.4.6 ce6a08c util-macros: upgrade from 1.14.0 to the latest version 0.15.0 7bf3c4f mdadm: upgrade mdadm from 3.2.1 to 3.2.2 87bffdb cronie: upgrade from 1.4.7 to 1.4.8 c94bc4d tcf-agent: add openssl into DEPENDS ad96bb7 bluez-hcidump: upgrade from 2.0 to 2.1 57bd62a package(_ipk).bbclass: opkg using ALL_MULTILIB_PACKAGE_ARCHS f759bde linux-yocto: meta SRCREV bump d77948e qemu: change default kernel to 3.0.x 867032e linux-yocto: bump version string to 3.0.1 8004113 gtk-icon-cache: Adding MLPREFIX when dynamically set RDEPENDS 4219deb package_rpm: Fix package rename issue in multilib case c228ffb package_rpm: enhance strip_multilib function b51e834 rootfs_rpm: Fix DEFAULTTUNE setting in multilib case 5440cb5 qemu: Make qemu buildable inside qemux86/qemuppc target 2df5472 libxcb: enable native/nativesdk builds as was done previously in meta-oe e1297d1 libproxy: remove dependency on X libs b7937a4 cmake.bbclass, perlnative.bbclass: arrange for cmake to find perl-native a21ff55 Fixup remaining bb.msg.domain users a7e4747 documentation/dev-manual: Scott Garman's review comments. 8c45abc documentation/dev-manual/dev-manual-start.xml: Note added e45f2aa documentation/dev-manual/dev-manual-model.xml: Comments from Ashfield e04e02c documentation/dev-manual: Changed 2.6.37 to 3.0 for 1.1 release. 9584cb5 documentation/dev-manual/dev-manual-model.xml: rescaled kernel figure a10057e documentation/dev-manual/dev-manual-newbie.xml: fixed git-format-email c263dbd documentation/dev-manual/dev-manual-model.xml: Added optional wording. 4cf3cd4 documentation/dev-manual/dev-manual-model.xml: wording change. fe155a1 documentation/dev-manual/dev-manual-newbie.xml: wording change. 65485af documentation/dev-manual/dev-manual-kernel-appendix.xml: structure added 3c631db documentation/dev-manual/dev-manual-kernel-appendix.xml: edit pass. fe76c38 documentation/dev-manual/dev-manual-model.xml: re-write of the kernel dev overview 53a901e documentation/dev-manual/dev-manual-kernel-appendix.xml: added note 8d95334 documentation/dev-manual/dev-manual-kernel-appendix.xml: file name change ae7a214 documentation/dev-manual/dev-manual-bsp-appendix.xml: changed file name 2647850 documentation/dev-manual: Positioned figures for PDF output 376a7e5 documentation/Makefile: Updated tarfile list d328082 documentation/dev-manual/figures/kernel-example-repos.png: new figure 04c77b9 documentation/dev-manual/dev-manual-kernel-appendix.xml: re-write d14ab10 documentation/dev-manual/dev-manual-start.xml: split out poky-extras 1cafae4 documentation/dev-manual/dev-manual-start.xml: Added to kernel source setup f12904a documentation/dev-manual/dev-manual-kernel-appendix.xml: partial edits. bfb2c2c documentation/dev-manual/dev-manual-kernel-appendix.xml: new section for image 572449b documentation/dev-manual/dev-manual-newbie.xml: Added anchor point 209158c documentation/yocto-project-qs/yocto-project-qs.xml: updated env and qemu start c9b3c34 documentation/yocto-project-qs/yocto-project-qs.xml: updated the filesystem 55f384a documentation/yocto-project-qs/yocto-project-qs.xml: updated image download b4da263 documentation/yocto-project-qs/yocto-project-qs.xml: updated toolchain section. fa1fb04 documentation/dev-manual/dev-manual-kernel-appendix.xml: partial updates 07544de documentation/dev-manual/dev-manual-bsp-appendix.xml: better link added. 97f2475 documentation/dev-manual/dev-manual-model.xml: referenced cloning kernel files. 0fb815e documentation/dev-manual/dev-manual-start.xml: Added section for kernel files. e60821b documentation/dev-manual/dev-manual-start.xml: removed "probably". 5756282 documentation/dev-manual/dev-manual-model.xml: removed image description list. 52435ce documentation/poky-ref-manual/ref-images.xml: Updated the list of images. 898e161 documentation/dev-manual/dev-manual-model.xml: Edit pass over the kernel flow. 12afc63 documentation/dev-manual/figures/bsp-dev-flow.png: Updated BSP flow diagram. 8fc3ea6 distro-tracking: Update info for gpgme, libassuan, apr... after last upgrade. b10a2ba libx11-diet: Fix bug 1050 356ae25 The Skeleton initscript doesn't work on minimal image 16bbb31 qt4.inc: expand the package name for multilib case c3a66d9 qt4.inc: revise RRECOMMENDS 92b2e94 libsdl: enable opengl for libsdl 9939c36 libsdl: add target version 8f56fc8 default-distrovars: add x11 to default DISTRO_FEATURES 98d201f dbus: only use x11 if DISTRO_FEATURES has selected it 3c1701b cairo: only use x11 if selected in DISTRO_FEATURES 0a5fe1c libx11: skip self if x11 not in DISTRO_FEATURES 254b09e pixman: remove spurious dependency on libx11 171efb2 intltool: Use nativeperl binary for PERL instead of 'perl' 5b4c0b3 qt4: delete unpackaged uic3 to avoid unpackaged file warning f9e9d8d qt4: package QML plugins and correct their install directory a7500e2 qt4-native: restore build of uic3, qdbuscpp2xml and qdbusxml2cpp 8cb51a5 qt4: replace qt4-tools-native with qt4-native fb2dfe7 eglibc: Modify ldd script according to multilib config. 375cf15 utils.bbclass/multilib.class: Added misc supporting functions. 92ad22d valgrind: supporting on Linux kernel 3.x c7dbcf8 bluez4: Added new recipe 4.96 and removed 4.82 version e7981ad build.py: Fix cut and paste error 61d83c6 Ensure only the filtered environment variables are inherited from the OS a6c4829 bitbake/msg.py: Drop manually created domain lists 09ce78c bitbake-layers: extend show_layers 6f32cb2 bitbake-layers: use logger.plain instead of info 6ba1beb bitbake-layers: show help with no command specified dc2c873 bitbake-layers: improve default command help 1c30381 bb/ui/crumbs/tasklistmodel: simplify conditional in include_item cf1cd31 bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer c82dc42 bb/ui/crumbs/tasklistmodel: optimise find_path_for_item 912a33b bb/ui/crumbs/tasklistmodel: include package level information 2bd2717 bb/crumbs/tasklistmodel: filter nativesdk packages out of views 7ee93b2 bitbake/logging: Overhaul internal logging process fce0b96 lib/bb/providers: make "checking PREFERRED_PROVIDER_%s" a debug message 3038164 rt-tests: use an explicit commit ID 7eb72b0 lib/bb/ui/crumbs/hobprefs: fix erroneous save/reparse b829654 bb/ui/crumbs/configurator: introduce writeConfFile method for all writes fdcf262 bb/ui/crumbs/hobeventhandler: adapt to reset -> reparse change 1926591 bb/command|cooker: refactor the reparseFiles logic 57fd78e tune-ppce5500: Add a set of tune files for PowerPC e5500 core 246dcc3 tune-ppc: Update to pass glibc configure option to get cpu specific support 1319890 recipes-rt: add a README documenting the contents of recipes-rt 15c2a70 Move meta-rt recipes to oe-core (meta) d9bf0a0 meta-rt: default KMACHINE and SRCREV_machine to avoid parsing errors eca7687 meta-rt: add an -rt-sdk image a197c6f meta-rt: rename minimal-rt images to -rt, drop live image cb08a02 meta-rt: remove atom-pc support from the main layer 3a68590 meta-rt: add linux-yocto-rt_3.0 recipe 8f7cb53 meta-rt: canonicalize directory structure b6c9c18 meta-rt: rt-tests v0.73 instead of AUTOREV 897f83e meta-rt: refresh linux-yocto-rt recipe 3e8a984 package_rpm: Fix attemptonly and suggest packages 86504a1 xcb-proto: update based on changes to python.m4 in automake 7449a37 automake: Update for python.m4 to respect libdir 577a914 init-install.sh: Fix make partition and make file system issues 83ada55 package_rpm.bbclass: Update the platform config and --target 9308457 rpm: Fix the canonical arch --target processing and cleanup 8bc2ebf linux-yocto: update SRCREVs for preempt-rt support + build fixes 4a99558 cross: also empty PACKAGES_DYNAMIC ce110ed package: allow setting a section for locale packages 07de9dc package: include SECTION in the pkgdata 5ddbfab sanity: shift the required utils into a variable f93ddea nativesdk: inherit relocatable f1982df insane: add linux-gnu to the platform data c45e315 busybox: don't strip the main binary b85957b local.conf.sample: Cleanup and improve d31d5e5 gnome-doc-utils: respect python-dir setting EXTRA_OECONF e79534d Magic file path should be given for rpmbuild 0350be9 scripts/runqemu: Make it run on ubuntu 11.10 e8ca7c9 chkconfig: remove link for update-alternatives to disambiguate 6cfe8c0 scripts/combo-layer: a simple way to script the combo-layer conf 6ede105 sstate: Add level 2 debug so its possible to see what sstate is doing 8f8facb gcc: Various fixups to ensure consistent gcc builds 6697ce2 bitbake/usermanual: Update to be more in sync with bitbake codebase 1dd10a5 bitbake: Fix -e when used with -b option eeaa87f bb/cache: rename confusing variable 33dc927 bb/ui/crumbs/tasklistmodel: don't include an item in its own depends af8ef31 bb/ui/crumbs/tasklistmodel: correctly uniquify dependency list 858c79c bb/ui/crumbs/tasklistmodel: fix some typos and add comments to mark() 786033f bb/cooker: only emit ConfigFilePathFound for files which were parsed 6bb2a22 fetcher2: show warning message when checksum is mismatch a43fcd1 bitbake/ui/knotty: Ensure previous failures aren't masked by a final successful command 83eacdc bitbake/ui/knotty: Ensure 'No Provider' errors set an exit code 1a3a1f1 eglibc: force GLIBC_EXTRA_OECONF to not be uset for nativesdk d0552e9 oe.terminal: improve how we spawn screen 057cc1e Rework how the devshell functions 94faa71 core-image: adjust to use the new IMAGE_FEATURES support a86252d image: add support for generally useful {dev,doc,dbg}-pkgs features 073caff image: implement IMAGE_FEATURES b076147 scripts/oe-buildenv-internal: improve the error detecting for $BDIR cf3ed82 tune-x86-64: Fix DEFAULTTUNE order so weak default to overrides the arch-ia32 version 18ec7f6 sqlite3: Ensure nativesdk package extension is handled correctly 2a0f785 base.bbclass: Add MULTI_PROVIDER_WHITELIST manipulation for multilib 7239530 default-distrovars.inc: Allow world builds to be successful 7898960 defaultsetup: Use .= to add TCLIBCAPPEND to TMPDIR e154e51 qemu: Poke more paths for presence of libgl 6503452 bb/ui/hob: Restore toolchain relevant preference settings for build d50bfaa bb/ui/hob: move some code around to avert a race 138178f bb/ui/crumbs/tasklistmodel: prevent hang when removing item ecab5d6 uclibc_0.9.32: Sync mount.h from eglibc ae213b2 base.bbclass: Ensure PREFERRED_PROVIDER and PREFERRED_VERSION values are set for multilibs ff6b14d module-init-tools-cross: Clean the RDEPENDS value b3dbcb0 gnome-doc-utils: Avoid RDEPENDS on bash in native case. 3808ff2 x86 tune inc files: add x32 abi tune parameters 153ae95 insane.bbclass: add entries for linux-gnux32 23c16e2 siteinfo.bbclass: add entries for new x86_64 ABI x32 target ca39445 eglibc: remove PACKAGES from eglibc.inc 4ae834e multilib.conf: Supported multilib extend in more recipes. 3fad1d8 lsb: Fix hard code libdir issue for multilib e27ff5a kernel-yocto: add CCACHE_DIR dependency to do_kernel_configme 098ae43 linux-yocto: merge v3.0.1 9e53f35 linux-yocto: update atom-pc preempt-rt definition 5e4a6bd linux-yocto: allow configuration of arbitrary branches b0f12a1 linux-yocto: pass KMACHINE to updateme, not MACHINE 24e9522 lttng-control: Update to 0.89 d26c9bd lttng-ust: Update to 0.15 ab1e331 liburcu: Update to 0.6.4 7ae7e7e gdb: Update to 7.3 4a5336d gtk-icon-cache bbclass: don't assing to global RDEPENDS 2a4de1e apr-util: disable pqsql support to avoid configure error 74f64be python-native: Fix a compiler finding issue 2ac54c4 gst-plugins: partially sync packaging with OE .dev 35fa8dc gcc: use ${base_lib} to match gcc default configuration 2fa1f7d bitbake.conf/powerpc64: Set baselib to 'lib64' for ppc64 8358485 bb/cooker: mark parsed conf files as potential cache invalidators 040e26a bb/ui/hob: reset event handler once build complete fe53449 task-core-boot.bb: Add PACKAGE definition to facilitate multilib 12cd07c eglibc-locale: Added ${MLPREFIX} for task dependency. 7f471e0 ghostscript: Fixed the incorrect DEPENDS. 773c555 Misc: Corrected the dependency on non-native for -native package. 2d9a3b7 qt4x11.bbclass: Using BPN instead of PN. 8c9fe92 tcp-wrappers: Using ${PN} in PACKAGES. e3bdc68 SRC_URI: Using BPN instaed of PN. 999a84b gtk-icon-cache: add hicolor-icon-theme to DEPENDS 34bdd8b machine/include/arm/feature-arm-thumb: Allow thumb to be disabled 29208d2 local.conf.sample: Comment out BBMASK by default e8f4566 kernel,module-base.bbclass: Improve KERNEL_LD & KERNEL_AR variables d6bbdcc libzypp: Increase the size of the arch compat table be030d3 linux-yocto_3.0: Fix SRC_URI to use yoctoproject.org 3a0942e dpkg: Update to use perlnative acfcc85 image-mklibs.bbclass: Utilize ${base_libdir} instead of static /lib 05f8db8 image-mklibs.bbclass: Add powerpc64 arch support 7d3c85e gcc-4.6: Add support for the e5500 PowerPC core 06aee01 tune/arch-powerpc64: include arch-powerpc.inc to keep things in sync e08ea67 prelink: Add lib64 dirs to prelink.conf dc8bd9e libproxy: utilize libdir when configured 3f18bf1 libmusicbrainz: utilize base_libdir when configured 378151b coreutils: Fix build on uclibc 281fc55 autoconf: Remove code checking for hardcoded /usr/local db6b664 autoconf: Remove patch=1 from SRC_URI b525fc1 buildstats.bbclass: Adding disk io measurement 17e8d85 toolchain-scripts & other classes: add TARGET_LD_ARCH & TARGET_AS_ARCH vars 5561aaa eglibc: Fix patch merge breakage 9e5890d documentation/dev-manual/figures/bsp-dev-flow.png: Updated picture 5ce8039 documentation/dev-manual/dev-manual-newbie.xml: edits suggested by Dave Stewart. 71dc0c6 documentation/Makefile: Added figures to tarfile list. e4448da documentation/dev-manual/dev-manual-newbie.xml: updated intro paragraph and figs e3687ca documentation/dev-manual/figures: Added three figures for sources 0c38b24 documentation/dev-manual/dev-manual-start.xml: Wording change for running image. dd2883b documentation/dev-manual/dev-manual-kernel-appendix.xml: minor edits 46af251 documentation/dev-manual/dev-manual-model.xml: first pass of kernel steps added. (From yocto-docs rev: a8354af008306f4deeae7b2167c3dbd604d8b275) 4285c3c documentation/dev-manual/dev-manual-start.xml: added anchor for reference. ce9a0c1 documentation/dev-manual/figures/bsp-dev-flow.png: Updated figure ea7d4cb documentation/dev-manual: replaced "&dash;" with "-". bb91aa6 documentation/dev-manual/dev-manual-model.xml: Increased vertical image size 406824f documentation/yocto-project-qs/yocto-project-qs.xml: Added note to title page. df815c1 documentation/poky-ref-manual/poky-ref-manual.xml: Added note to title page. 938d43d documentation/kernel-manual/kernel-manual.xml: Added note to title page. aa764ce documentation/bsp-guide/bsp-guide.xml: Added note to title page. 33f9253 documentation/adt-manual/adt-manual.xml: Added note to title page. 343fc64 documentation/dev-manual/dev-manual.xml: Repositioned note. 896c9de documentation/dev-manual/dev-manual.xml: Added note to title page. 3f7385d documentation/Makefile: Added the figure bsp-dev-flow.png to tarlist. 68ee0fa documentation/dev-manual/dev-manual-model.xml: Added spot link to kernel section. a246c30 documentation/dev-manual/dev-manual-model.xml: Minor edits. fe51c0d documentation/dev-manual/figures/bsp-dev-flow.png: Updated the figure. 0fbbadb documentation/dev-manual/figures/bsp-dev-flow.png: New illustration 7865487 documentation/dev-manual/dev-manual-model.xml: added BSP flow illustration. ebf0399 documentation/dev-manual: Added reference to example appendices 0bea49d documentation/dev-manual/dev-manual-cases.xml: Deleted this file. 93e530c documentation/dev-manual/dev-manual-kernel-appendix.xml: removed redundant id. c28a189 documentation/dev-manual/dev-manual.xml: updated files to the book eb7fe72 documentation/dev-manual/dev-manual-kernel-appendix.xml: added tags 568a15c documentation/dev-manual/dev-manual-kernel-appendix.xml: Added appendix 3a9da1c documentation/dev-manual/dev-manual-model.xml: Fixed a broken xref. 05b0b88 documentation/dev-manual/dev-manual-cases.xml: removed BSP overview. 4737719 documentation/dev-manual/dev-manual-model.xml: Added structure 3aef350 documentation/dev-manual/dev-manual-model.xml: Moved BSP dev summary here 6d7c8f6 documentation/dev-manual/dev-manual-start.xml: Added a note to reference Git. fd02be8 documentation/dev-manual/dev-manual-bsp-appendix.xml: removed redundancies 5b8301a documentation/dev-manual/dev-manual-cases.xml: generalized the BSP case b67922f documentation/dev-manual/dev-manual-bsp-appendix.xml: Added section hierarchy. 0dbc9ba documentation/dev-manual/dev-manual-bsp-appendix.xml: re-wrote the Base BSP 9709d13 documentation/dev-manual/dev-manual-start.xml: Added bsp naming scheme 49e6b1d documentation/dev-manual/dev-manual-start.xml: Added BSP file set up 60eb60c documentation/dev-manual/dev-manual-bsp-appendix.xml: Modified the setup section. 167f154 documentation/dev-manual/dev-manual-start.xml: Added note for terminology. 4281568 documentation/dev-manual/dev-manual-start.xml: Added examples for YP file setup 24cbfd4 documentation/dev-manual/dev-manual-bsp-appendix.xml: spacing fixed bed9ff3 documentation/dev-manual/dev-manual-cases.xml: partial - kernel section added 5492fa3 documentation/dev-manual/dev-manual.xml: Added the new appendix for BSP. 313f932 documentation/dev-manual/dev-manual-bsp-appendix.xml: New appendix for BSP 2c7834c documentation/dev-manual/dev-manual-cases.xml: re-write of BSP example e77f564 documentation/dev-manual/dev-manual-cases.xml: partial - edits to clean terms up. fbe93b6 documentation/dev-manual/dev-manual-model.xml: removed blank lines. 0e697a6 documentation/dev-manual/dev-manual-newbie.xml: edits to how to submit change section. 5c67537 documentation/dev-manual/dev-manual-newbie.xml: edits to tracking bugs section. 70b317e documentation/dev-manual/dev-manual-newbie.xml: edits to workflow c6a7a82 documentation/dev-manual/dev-manual-newbie.xml: new section on terms added 5c8f835 documentation/dev-manual/dev-manual-newbie.xml: edits to Git section. f91f0c7 documentation/dev-manual/dev-manual-newbie.xml: re-writes of repo and license fed0630 documentation/dev-manual/dev-manual-start.xml: Edits to clarify YP files af22a8c documentation/dev-manual/dev-manual-intro.xml: wording change. 307b04d documentation/dev-manual/dev-manual-cases.xml: partial - finished edits to BSP section. 026f146 documentation/dev-manual/dev-manual-cases.xml: partial - more edits to the BSP case. 70e006e documentation/dev-manual/dev-manual-cases.xml: partial edits to procedures 468d789 documentation/dev-manual/dev-manual-cases.xml: partial kernel case cf4ab53 bb/ui/hob: be clear that the image contents are an estimate 1c1e27a bb/ui/hob: only connect to the changed signal of image_combo once 6b95217 bb/ui/crumbs/hobeventhandler: use generic loading message once cache loaded 9610ab3 bb/ui/hob: prevent label on progress bar from changing rapidly when loading 9eb25be bb/ui/crumbs/tasklistmodel: fix regex used for loading image recipes 03ca33e bb/ui/hob: fix detection of whether GPLv3 is disabled 735e708 Various siteinfo: Drop rp-pppoe variables b72e281 siteinfo: Add posix_getpwuid_r posix_getgrgid_r posix_getpwnam_r to uclibc fbab04f site/common-linux: Add ac_cv_file__dev_zero=yes 2a5dab5 Various siteinfo files: Consolidate va_copy/__va_copy/va_val_copy c02ce80 Various siteinfo files: Drop enca section 4ac307e Various siteinfo files: Consolidate ac_cv_func_getaddrinfo c8f8ca9 Various site files: Drop monotone/mono 6f3597a tcl: Add tcl_cv_api_serial to siteinfo 92ed28c sudo: Drop sudo_cv_uid_t_len from site files 59be4fe eglibc_2.13: Add support for handling sqrt & sqrtf on powerpc f3146ae eglibc: fix build for armv4 machines d76a2ee libxt: Add depends for util-linux and libxcb 0d789a3 glibc: Remove unused version 10304e0 connman_test.sh: Rework for busybox 'ps' 5d87fb8 kernel.bbcalss: Added do_savedefconfig task. cb3de7d xserver-nodm-init: Fix X start failure on some platform 422c7a5 apr-util: Upgrade to 1.3.12 af415b4 apr: Upgrade to 1.4.5 e69dd2f parted: Upgrade to 3.0 fa5d871 gpgme: Upgrade to 1.3.1 e3f0cff libassuan: Upgrade to 2.0.2 1094f15 libsoup-2.4: Upgrade to 2.34.2 6d3c262 lighttpd: Upgrade to 1.4.29 b77f1f3 kernel,cml1.bbclass: Move menuconfig to cml1 9a78cb7 environment files: Added and unified version related variables. e57a0bd binutils: Add support for powerpc e5500 core 20ee0c7 gtk-icon-cache bbclass: only add runtime dependencies on hicolor-icon-theme when installing icons 0b4b8d8 bison: Add dependency on flex-native 79e36a3 aspell: upgrade from 0.60.6 to 0.60.6.1 a242da9 SRC_URI, S: use BPN instead of PN for multilib case 8a1114d libfm: depend on intltool-native instead of intltool bfcf50a polkit: depend on intltool-native instead of intltool dde02ad libnewt: update to 0.52.13 c5c9c53 font-util: The recipe produces binaries so don't mark as 'all' architecture 810259e eglibc-package.inc: Fixed error in referencing PKGSUFFIX 5fbac72 multilib: Use BPN instead of PN for style like lib${PN} 0a4953b openjade-native: Change RDEPENDS of sgml-common-native ddb8aa2 libxml-simple-perl: Use BBCLASSEXTEND insteand of *-native recipe 37fb8cd eglibc-locale: Specially handle FILES_eglibc-gconv for multilib 889455c tcl: Fix packaging of platform independent files 6f93e34 atom-pc.conf: Add live image type a01e312 libnss-mdns: dont use hard coded /lib path 8c21a0d bb/ui/crumbs/runningbuild: emit signal when command fails with exit signal 847d38e bb/ui/hob: disable editing in the build messages tree view fd2cbd4 ui/crumbs/runningbuild: add optional readonly mode, default off d86fdf1 bb/ui/hob: show build messages are displayed in the order they're received f353148 bb/ui/crumbs/runningbuild: optionally create list entries sequentially 647643b bb/ui/hob: save changes to bblayers.conf when using Add Layer menu item be1f70d gcc: Fix setting of GLIBC_DYNAMIC_LINKER 9a49eb7 automake: Fix issue with tar configure failing with large UID/GIDs fb98479 package_rpm: Ensure alternatives links are reflected in rpm package dependencies 2377453 autotools.bbclass: Fix m4 file race e8e06a4 bitbake.conf/qemux86-64: Automate TRANSLATED_TARGET_ARCH b65fd46 libzypp: Correctly handle - in package architecture names 8c4598a hob: remove temporary directory on program shutdown e03114b ui/crumbs/layereditor: if layer adding fails show an explanatory dialog 2da73ed ui/crumbs/configurator: tweak addLayerConf return values fdece01 ui/crumbs/hobeventhandler: emit a signal when a command fails 5f33a63 ui/hob: show error and exit if we receive the fatal-error signal 1568906 ui/crumbs/hobeventhandler: emit a signal when there's a fatal-error ade2a27 hob: unset busy cursor on exit 639e9d9 ui/crumbs/hobeventhandler: remove unused code bfb25ea local.conf.sample: Fix TUNENAME reference (should be DEFAULTTUNE) 20f2857 tune/ppc: Fix various TUNE_PKGARCH issues e5d2249 eglibc: Add missing ${PN} and ${PKGSUFFIX} usages bb5a3ff package_ipk: SDK generation workaround 06d4cf0 populate_sdk_*: Sync SDK and regular rootfs functions f9da3c2 bitbake.conf: Add SDK_PACKAGE_ARCHS 0d5dfb2 rootfs_rpm: Cleanup and minor bug fixes be2a276 oe-init-build-env, scripts/oe-buildenv-internal: add error detecting for $BDIR 68bd815 scripts/runqemu: grep for line beginning with TMPDIR 46cf540 arch-armv7a.inc: fix armv7a-vfp-neon -> armv7a compat case 990b587 hob: fix save/restore of toolchain preferences 42fe3c6 hob: more reliable disabling of GPLv3 packages a10fb4f package_rpm.bbclass: fix one typo 6243fb5 package_{deb, rpm, ipk}.bbclass: fix 'lingusa' typo d8ddc1a rootfs_rpm.bbclass: Fix multilib configurations to use DEFAULTTUNE 79e7c68 sanity.bbclass: Add sanity check that TUNE_PKGARCH appears in PACKAGE_ARCHS d774fac tune-ppce500mc: Adjust PowerPC e500mc tune file to correctly set hard fpu. f4788df tune/arch-powerpc64: Remove support for soft-float from ppc64 977ea55 tune/arch-powerpc64: Fix typo with 64-bit TUNE_CCARGS handling 180937a sgml-common-native: Read a catalog backup to repopulate sgml-docbook.cat f481486 openjade-native: Write a bak file for shared state ca6740e docbook-dsssl-stylesheets-native: Write a bak file for shared state 09b382a docbook-sgml-dtd-native: Write a bak file for shared state 43d3061 libzypp: Fix variable substitution problem in do_archgen step 7dc2732 glibc: deleted e464fb9 meta-environment: set correct *MULTIMACH_TARGET_SYS. 8685aa5 feature-arm-thumb: respect ARM_INSTRUCTION_SET f1d3a94 tune-xscale: fix xscale/xscale-be confusion 2d94347b arch-armv6, arch-armv5-dsp: correct endianness confusion 1d6333a tune-cortex{m1, m3, r4}: correct spelling of "cortex" 50f021e bitbake.conf: remove PACKAGE_EXTRA_ARCHS_tune-XXX default f94b781 poky.conf: explicitly referenced preferred linux-yocto version 4a83fb1 Update TERMCMD message to align with previous change 63bd988 rootfs_rpm: Disable debug messages 36bfaaa package_rpm.bbclass: Fix mistake reported by Mark Hatle 5d35385 bitbake/providers: list PREFERRED_VERSION candidates when unavailable 965fbe4 bitbake/taskdata: fix incorrect usage of rdependees instead of dependees daed107 bitbake: show more information for NoProvider errors 60218d1 ui/crumbs/hobprefs: trigger reparse when package format changed cd4141f cooker: populate rdepends-pkg in generatePkgDepTreeData b004d8e hob: fix loading customised image recipe 6b10986 ui/crumbs/tasklistmodel: work around overly aggressive package removal 052f04e ghostscript: fix parallel build issue 7fcb8b5 opkg svn: bump SRCREV to 625 8e864c5 base bbclass: add TUNE_FEATURES to the default banner 1ab1c8b libpam 1.1.4: fix packaging b943b05 connman: Change hard coded package name to support multilib 28543c5 package(rootfs)_ipk.bbclass: support multilib in opkg backend. af1cd61 image.bbclass: Added variables for multilib support. 44b3590 package/rootfs_rpm: Implement RPM multilib package handling fae1955 multilib: Add missing files from broken patch merge 0960f3e base.bbclass: Fix PACKAGE_ARCH typo 7a63a98 module-init-tools-cross: Drop static binaries patch as a better fix has been merged 6c936b4 gcc: Drop part of the 64bithack patch which is no longer used 6d82688 linux-yocto: revise the dependency for multilib 687efa2 eglibc: fix for multilib RPROVIDES issue 350a891 do_split_packages: revise for multilib case 9b227ae lib/oe/util.py: Add MLPREFIX support to prune_suffix() c18aa8d multilib: Add support for compiling recipes against multiple ABIs f5e9a39 linux-yocto: update SRCREVs cec3932 linux-yocto/meta-yocto: create linux-yocto 3.0 bbappend 4130931 base.bbclass: Add compatibility package name mapping handler 4a75a37 cmake.bbclass: add ${libdir} for multilib case ebfe9cd RPM: multilib file class/color 54da9dc distcc: fix makefile parameter order 9f54793 Add basic PowerPC core tune config f06bce4 Add basic Mips core tune config 6afd21b Add ARM tune file overhaul based largely on work from Mark Hatle 30ddd02 package.bbclass: fixup_perms - change symlink processing 19715da ncurses: Resolve header and man page multilib conflicts ac236b0 eglibc_2.13: Resolve multilib header conflicts e17f834 linux-libc-headers: Fix file conflict -- ..install.cmd eb7cd0c beecrypt: Fix multilib header conflict - beecrypt/gnu.h 911dc39 apr: Fix multilib header conflict - apr.h 5aef189 binutils: Fix multilib header conflict - bfd.h a447c3e multilib_header.bbclass: Add oe_multilib_header wrapper ba8a726 classes/image*: Revamp creation of live images 3913013 utils.bbclass: Don't forget to pass the cmdline options a029f81 Remove -directdisk.bb recipes 7550be2 Remove -live.bb recipes 5068a8b siteinfo: Rework the siteinfo for powerpc to fix uclibc fallout 4193d0e siteinfo: Move (getpgrp|setpgrp|setgrent|*get{pwuid,grgid}) to common-libc 85a49c9 siteinfo: Move general realloc/malloc values to common-$libc 9bb070c siteinfo: Move certain db entries to common-linux 3944034 siteinfo: Move certain mysql entries to common-linux 2abeecd x86_64-linux siteinfo: Add bash info b39491e siteinfo: Move certain bash entries to common-linux 07db8ce siteinfo: Move certain samba entries to common-linux b876708 polkit: Support pam cec1bc7 dropbear: Support pam f491a7e openssh: Support PAM a601df4 at: enable pam support 7772a88 shadow: update pam related configure files 0eac98e cronie: enable PAM support for cronie 4e489a0 sudo: add pam support 27b2d3d screen: add pam support 03bf55e cups: add pam support b1a0206 libpam: update to 1.1.4 and add subpackage xtests 066f06c libcap: Update to 2.22 with License Clarification 73387f2 machine/qemu: set preferred linux-yocto kernel version ee3304b scripts/combo-layer: keep carriage returns at the end of lines 89b30c3 eglibc: remove unnecessary FILESPATHPKG usage 70059b8 module-init-tools: do not build static utilities for -cross 6228e72 console-tools: removed wildcard from SRC_URI 0590ed1 dropbear: don't override DISTRO_TYPE if it is already set 9321db3 libxcb: Add missing DEPENDS on libxdmcp c30e58c meta/conf/local.conf.sample: improve terminal examples/comments 9545c8b meta/conf/local.conf.sample: improve comments/layout 40c887a meta/conf/local.conf.sample: remove oprofileui-native related settings 9a90556 tune-core2.inc: Drop X86ARCH32 usage 860a41b arch-ia32.inc: Fix up TUNE_ARCH variable conflicts 49c01a8 ui/crumbs/tasklistmodel: fix loading a saved recipe 30a2ac4 ui/crumbs/tasklistmodel: don't iterate whole model in find_alt_dependency() b169dad ui/crumbs/tasklistmodel: handle items added in by base image being removed c884b52 ui/hob: enable building an image with minimal contents 20101e9 ui/hob: Force the 'Base image combo' to be drawn correctly 9e6f220 ui/hob: change wording in build complete dialog 40f0e6d ui/hob: don't offer to show built output if build fails 2d608f8 ui/hob: switch from buildFile to buildTargets for custom image builds 6d76379 ui/crumbs/hobeventhandler: reparse files before running other commands 5c3f42d ui/hob: replace the ugly static command map f7233d7 classes/image_types: IMAGE_TYPES was missing some entries 7b441c2 upstream status: add for libsdl and xserver patches ac3c03b Upstream-Status: Add Upstream-Status for some missing patches be8f985 meta: Rename SITEINFO_ENDIANESS to SITEINFO_ENDIANNESS 922eaae cooker: only append files once ba3aef9 command|cooker: Add reparseFiles command 0828e6c bitbake-layers: adapt to cooker change for saved environment 5001610 data|cooker: use saved environment variables when calling inheritFromOS 3300065 lib/oe/utils: 'Fix' oe.utils.contains() behaviour b163a0b bitbake/utils: 'Fix' bb.utils.contains() behaviour 819f18f Move architecture specific TARGET_OS mangling into tune files 255719f conf/machine/include: Start to fill out architecture specific tune include files and tune features d7c67a1 sanity: Increase bitbake minium version to 1.13.3 for bb.utils.contains() function 5aa96bd bitbake.conf/classes: Variable cleanup 4cb97ca perl-dynloader.patch: Fix multilib issue for perl 05ca275 Update version to 1.13.3 3fddac4 runqemu: report error if TMPDIR cannot be determined e9e7779 docbook-dsssl-stylesheets-native: Add SYSROOT_PREPROCESS_FUNC f9fe0ae docbook-sgml-dtd-native: Add SYSROOT_PREPROCESS_FUNC afa695f openjade-native: Add SYSROOT_PREPROCESS_FUNC d434373 gcc-4.6: Fix packaging of native toolchains 9af2b2f distro_tracking_fields.inc: update the info for tcf-agent 7f576fa tcf-agent: upgrade to the latest stable revision 0.0+svnr1855 e51d542 bitbake|cooker: save a copy of the environment when BitBake is started 72e0b43 bitbake-layers: remove unneeded do_EOF d7e17ee bitbake-layers: add command help 27edc7c bitbake-layers: check for errors before parsing bc4aeff adjust comments/messages for default server change 638f8ca bitbake/cooker: show a warning when -b is specified 93cc53f add note to -b option indicating no dependency handling 9adf01d hob: rework image output type setting 1f4e6d6 ui/crumbs/hobprefs: tweak the package format tooltip bb5c7d5 ui/crumbs/hobprefs: set higher arbitrary limit on threads & parallelism 9cf5190 hob: only add new layer's to the UI 52e0be4 ui/hob: if the user clicks Stop a second time only offer 'Force Stop' 95d7895 ui/hob: clear the search entry when resetting bcd6229 ui/crumbs/tasklistmodel: don't show native and cross recipes bd1b9d6 hob: refer to tasks as Package Collections 3e0eb8a bitbake/cache: allow class names with arguments to be specified 4a7ddff bitbake/ast: include class name when arguments given in variant 04efff1 meta-yocto: Sync with TARGET_ARCH removal changes d741764 conf/machine/include: Set TUNE_CCARGS instead of TARGET_CC_ARCH 039a2d0 conf/machine/tune: Overhaul tune include file variables dffe253 bitbake.conf/cross.bbclass: Add ability to dynamically change library location eea4bd7 mpc8315e-rdb: Set TARGET_FPU correct ac70491 bitbake/utils: Add contains helper function from lib.oe.utils 14f3bab consolekit 0.4.5: fix PAM installation dir cf927d8 gnome-keyring 2.32.1: fix PAM support and make it conditional on DISTRO_FEATURES b42372a site/powerpc*-linux: refactor needed options that are common 69c0b35 site/powerpc64-linux: Start initial site config 960e1e6 site/powerpc32-linux: Update with ac_cv_sizeof_* from eglibc 5fde492 site/powerpc64: Update power64-linux to include powerpc-linux fcb865a site/powerpc: Pull all powerpc config options into powerpc32-linux 616d711 openssl: Add handling for building on linux-powerpc64 81773ae libart-lgpl: Add missing config file - allows builds on PowerPC 64 dcedeff kernel-arch: Add handling of powerpc64 f0b0179 libc: Add handling of powerpc64 ea82aba insane.bbclass: Recognise powerpc64 da07669 fix Upstream-Status line for few patches 9d4f709 python: fix security vulnerability a70c1f6 glib-2.0: fix a compilation issue due to dtrace 5151e2a tclibc-uclibc: Fix TARGET_OS for powerpc 6904f75 .gitignore: Update build ignores to have wildcard e3e32fb util-linux: Replace sigsetmask with posix compliant functions 5136320 strace: Define own sigmask macro if not defined already in signal.h 42c3974 uclibc: Add patch header for sync_file_range2.patch 48966d9 task-core-tools.bb: Exclude lttng-ust for x86_64/uclibc a9aa45c mesa-xlib, mesa-dri: Probe for newlocale() before using it. c9610a3 default-versions: Update pulseaudio as arm no longer needs a seperate backport a7d38bc kern-tools: update SRCREV 40b4ac7 dhcp: Fix libdir issue for multilib 2dd9a8f linux-yocto: kernel-3.0 support recipe d5b665b kernel: copy defconfig to {B} vs {S} f352f1b linux-yocto: update LICENSE to GPLv2 c9c14a1 Sync patches with DOS line endings that became corrupted e803c58 libiconv: Fix build failure on 1.13.1 c97f136 Remove unused target tree data for Hob 97fb1fe event: fix the event display order when exiting early e2d2377 ui/crumbs/tasklistmodel: ignore tasks and images when marking dependencies 2bdd518 ui/hob: don't crash if PARALLEL_MAKE doesn't include a space 4eeabbe ui/crumbs/configurator: write new lines after new entries accd46c ui/hob: add more guidance to the stop dialog a1e18b9 ui/crumbs/tasklistmodel: fix saving recipes a78a99d ui/crumbs/hobprefs: add missing import 1df5ab5 parse/ConfHandler: Fix multiline variable corruption 9070e74 cache: fix remnant broken 'info' reference from recent cache changes 7170fe0 documentation/dev-manual/dev-manual-start.xml: Bad links fixed. a220e42 documentation/dev-manual/dev-manual-newbie.xml: bad links corrected. (From yocto-docs rev: 77560db929ead2b4ce5cd04dd3a125b941cb4875) be0aaef documentation/dev-manual/dev-manual-cases.xml: Docbook formatting completed. 6c2a07b documentation/yocto-project-qs/yocto-project-qs.xml: Various Robert P. J. Day fixes 028a37c documentation/yocto-project-qs/yocto-project-qs.xml: fixed zypper syntax 86a63fd documentation/dev-manual/dev-manual-cases.xml: Initial content added. ca96753 documentation/dev-manual/dev-manual.xml: re-ordered the chapters for the make. 43cf166 documentation/dev-manual/dev-manual-model.xml: Added placeholder sections. (From yocto-docs rev: 65cf216b865b2ef4185aa4c7dcd292ae3cd4c5e7) 1523da3 documentation/dev-manual/dev-manual.xml: Added chapter c112670 documentation/dev-manual/dev-manual-model.xml: Initial chapter 4b6d42f documentation/dev-manual/dev-manual-newbie.xml: Initial content added. a0ff15a documentation/dev-manual/dev-manual-start.xml: Initial content added 387ed59 documentation/dev-manual/dev-manual-intro.xml: Initial content added. 55d9b84 documentation/dev-manual/dev-manual.xml: Initial file with new name. 3e4c27c documentation/dev-manual/dev-manual-start.xml: Initial file with new name. e925bb2 documenation/dev-manual/dev-manual-newbie.xml: Initial file with new name. 702eb2f documentation/dev-manual/dev-manual-intro.xml: Initial file with new name. 23fe5fe documentation/dev-manual/dev-manual-customization.xsl: Initial file with new name. 635ea7b documentation/dev-manual/dev-manual-cases.xml: initial file with new name. 46bbeee documentation/dev-manual: Deleted files with bad names 4dc92fc documentation/yocto-project-qs/yocto-project-qs.xml: gmae -> sdk 73107a7 documentation/yocto-project-qs/yocto-project-qs.xml: wording change. 7741e10 documentation/documentation/yocto-project-qs/yocto-project-qs.xml: link typo fixed. (From yocto-docs rev: a73aa8d24023fb41a061b8d1a7a1a93c6b04b5b9) 3b70616 documentation/Makefile: Added support for YP Dev Manual. eefc83b documentation/dev-manual/dev-man-cases.xml: Initial chapter creation. (From yocto-docs rev: a5c809d89eefafaf6c9f77931d5112f194eb064f) 79b846f documentation/dev-manual/dev-man-newbie.xml: Initial chapter creation. (From yocto-docs rev: f4e205816bd6805f6e45cc7b3fdf704368d83f1a) 7643666 documentation/dev-manual/dev-man-start.xml: Initial chapter creation. (From yocto-docs rev: c9dde4843a167bcb270f86baaaeef1265f3ab069) 03f6b16 documentation/dev-manual/dev-man-intro.xml: Initial chapter. 6efaa95 documentation/dev-manual/figures/dev-title.png: Initial file created. (From yocto-docs rev: dd336b3d12586661d30f6d22d709031266cf7ed2) eb7ce5b documentation/dev-manual/dev-man.xml: Initial file created. (From yocto-docs rev: 2a9c3657a4815ba61a89a59ae74ae5493bdf4d24) 6289e8d documentation/dev-manual/style.css: Added title page figure. (From yocto-docs rev: e0bf4cde88e8d4ada5908b69b31cff5b14e53860) 3b76aa4 documentation/dev-manual: Added top-level directory for Dev Manual. (From yocto-docs rev: d85283b6c1d939909c46f94750e4ff36ee42cadb) df44891 documentation/yocto-project-qs/yocto-project-qs.xml: changed build command df7b4f1 documentation/bsp-guide/bsp.xml: Added a note stating no example here. (From yocto-docs rev: 1373b315bbe875840a75a80ea688eb025b6d80a1) 0a29457 documentation/bsp-guide/bsp.xml: Changed 'GIT' to 'Git' (From yocto-docs rev: c77a003b7c5410c1a9a4e8d3437b829c5dc07391) 762c0d0 documentation/bsp-guide/bsp.xml: updated path for yocto kernels 651119a documentation/bsp-guide/bsp.xml: Scrubbed "Poky" out of the manual. (From yocto-docs rev: b5e3c58dbdc82579920de07e8c1c76cfa42596a7) 51b3a23 documentation/kernel-manual/kernel-how-to.xml: Tree Construction section further explained 0a7b3f8 documentation/kernel-manual/kernel-how-to.xml: Defined audience for chapter 11ec976 documentation/kernel-manual/kernel-concepts.xml: General rewrite of Kernel tools. 96ab5a7 documentation/kernel-manual/kernel-concepts.xml: Added references to Git Documentation. (From yocto-docs rev: 6435bc8116a586d6a027b69b1df7a6d924f48ec8) 5e6f7fb documentation/kernel-manual/kernel-concepts.xml: Fixed typo (From yocto-docs rev: 333c647c9800d980a17a23b2e96b99a27b1ea656) dc96712 documentation/kernel-manual/kernel-how-to.xml: Updated the create BSP section 72054b8 documentation/kernel-manual/kernel-how-to.xml: Added 'git' for a push example. 00d2062 documentation/kernel-manual/kernel-how-to.xml: Command line example fixes 74c120f documentation/kernel-manual/kernel-how-to.xml: changed git to Git as needed (From yocto-docs rev: 65a839ea3d8decd1dd3e95bfeeeb3f95cfa77ef4) 65d74d6 documentation/kernel-manual/kernel-doc-intro.xml: Changed git to Git as needed (From yocto-docs rev: 1ecd571c0317fc1de8408ba7fdbb25f5e24c765f) 6c70216 documentation/kernel-manual/kernel-concepts.xml: Changed git to Git as needed (From yocto-docs rev: 3e4f2e32c0b98ccbc1eaa370832c0147f1a48045) 7dbabd8 documentation/poky-ref-manual/extendpoky.xml: Changed bitbake to BitBake (From yocto-docs rev: 2b95f152d40aacc7d88e755a27154dfb3153c6ee) e179c0b documentation/adt-manual/adt-prepare.xml: Changed Bitbake to BitBake (From yocto-docs rev: 611f44a66cceafbe7593fee702d7c19951d7c751) 7c12513 documentation/adt-manual/kernel-how-to.xml: Changed Bitbake to BitBake (From yocto-docs rev: c3b3d7f7b16bc222d599bdfb5e99c86694a1c865) fb71e50 documentation/kernel-manual/kernel-how-to.xml: Partial - more general edits (From yocto-docs rev: 60d084a5b17bf78fafd8a4d13b9055093fca708a) 3120247 documentation/kernel-manual/kernel-how-to.xml: partial - more edits to BSP procedure (From yocto-docs rev: 694b00c080633be874f2842badedf1e453038f88) fe43875 documentation/kernel-manual/kernel-how-to.xml: Partial - Re-write of BSP creation 1316648 documentation/kernel-manual/kernel-how-to.xml: Edits to "Build Strategy" (From yocto-docs rev: f98e4804da9477e260e24df1586b624e386a2dba) f79f929 documentation/kernel-manual/kernel-how-to.xml: Edits to "Tree Construction" (From yocto-docs rev: 601e0fd1bb00c433716170a124b3ca32ca2cdcad) 893fa5b Make intltool use perlnative instead of perl on host a0abef4 gettext: Add depends to gettext to avoid host contamination 51ff9ba clutter-box2d: fix isfinite.patch 1e261aee python: add patch to fix cross compilation on host with linux-3.0 760139c python: save Makefile.sysroot in do_compile dda8265 eglibc-package: don't fail without localedef/gconv b6cba47 tcmode-default: set preferred version also for (e)glibc-locale 997b1fc siteinfo.bbclass: Port over oe.dev logic for site files fe7db14 icon-naming-utils-native: Fix long path to perl in icon-name-mapping 6a52bad cpan.bbclass: Perform more mangling for perl path 27ba6fb perl-native: Add a perl-native wrapper in the normal bindir 57f7711 gnome-doc-utils: Use /usr/bin/env python in xml2po, bump PR 198581f python-native: Mangle scripts to use /usr/bin/env python, bump PR 29ea036 Add endianess macros used by previous endian-ness_handling.patch 8af2868 README.hardware: update MPC8315E-RDB instructions f19e54c local.conf.sample: Add a note about ASSUME_PROVIDED for help2man 76942c0 linux-yocto: update mpc8315erdb SRCREV 5608570 insane: improve diagnostic for redundant rpath e697167 lsbsetup_1.0.bb: Change the hardcoded /usr/lib to support multilib c0192fb libiconv: Fix SRC_URI checksums for 1.13.1 version daad28c linux-yocto/meta-yocto: update SRCREVS bc48729 libgcc: correct mode on libgcc_s.so.1 to ensure it gets stripped 5fdc8ab pseudo: fix uninitialised variable in realpath_fix.patch 73bc4c2 site/x86_64-linux-uclibc: Cache lf_cv_sane_realloc 28d52d9 task-core-tools: Exclude systemtap for uclibc 1ad8852 sysprof: Define NT_GNU_BUILD_ID if undefined 07fb426 clutter-box2d: Replace use of finite macro with C99 compliant isfinite() c19d858 binutils: Fix build when compiling target binutils recipe with gcc 4.6 3eb49d2 pimlico/dates: Fix build on uclibc 59da55b powertop: Add lintl to linker commandline on uclibc 08bfdf9 oprofile: Fix build when query_module is not there 00463a3 uclibc_0.9.32: Implement sync_file_range2. e182d21 task-core-x11-sato: Add empty NETWORK_MANAGER for uclibc cbcb798 tzcode,tzdata: Update tzdata to 2011h 33467f8 libxdamage,libxft,libxrandr: Add missing dependency on virtual/libx11 b2c8f93 classes/gettext: Do not disable nls for non target recipes caf22e3 acl,attr: Fix build failures when NLS is disabled on uclibc 0de9f32 default-distrovars: Add largefile and argp to DISTRO_FEATURES 98615f6 autotools.bbclass: Add help2man-native to the main DEPENDS tree 627a2f5 help2man-native: Add 1.38.2 4e77483 bitbake.conf, sanity.bbclass: Drop mercurial-native ef2c0ef gcc_4.5.1: add pr45886.patch eb83c44 gcc_4.5.1: add pr45052.patch 30c9f6c gcc_4.5.1: add pr45094.patch b2e49a6 gcc_4.5.1: add pr44606.patch 44f59d2 gcc_4.5.1: add pr44290.patch 94a6e47 gcc_4.5.1: add pr43810.patch aa18b3c gcc_4.5.1: fix arm_bswapsi2.patch 676e3e9 tune-ppce500mc: Add a tune file for PowerPC e500mc core 2097906 flac: fix build issues with e500v2 (gnuspe) toolchain 9f952b2 openssl: Add handling for linux-gnuspe-powerpc 350431d tune-ppce500v2: Add a tune file for PowerPC e500v2 cores cc8a2a0 tclibc-*libc: Utilize TARGET_FPU for gnuspe setting e10a1d6 gcc: Add gcc configure for PowerPC e500v2/SPE embedded floating point ABI 0db8fe9 btrfs-tools: Add util-linux to DEPENDS 47245e4 iptuils: Add sgmlspl-native to DEPENDS b5d5a13 gnome-doc-utils: Package up python site packages, bump PR 0f44c18 metacity: Add gnome-doc-utils to DEPENDS 160d005 gdk-pixbuf(-native): Fix build by disabling introspection d87bedc uclibc: improve packaging granularity 78396c1 perl: revise the RRECOMMENDS_perl-modules for multilib case 9fa68e8 pciutils: Change the hardcoded /usr/lib to support multilib. 16e29ba xcb-proto: add multilib support. 3f3cd73 distro-tracking: update libpng f7b344e libpng: upgrade to v1.2.46 1dd5095 scripts/contrib: add build time regression test script 114960a alsa-tools: Fix recipe build error. 0931e85 Fixed concurrency problem for ZIP packed recipes. f1d3dae meta-yocto/conf/local.conf.sample: Update SSTATE_MIRRORS comment to remove packaged-staging references 35f20c5 eglibc: Tighten LICENSE Fields 3c9206f gcc-package-target: don't fail if the .la files we try to delete are not there to start with 34cd3f7 unfs-server: add Upstream-Status field to patches e47c1cf man: add Upstream-Status field to paches 96329f3 gdk-pixbuf: Fix QA issues and clean minor formatting 498ec50 bitbake.conf: Change TERM default fallback to XTERM instead of GNOME_TERM 2c472d3 oe-buildenv-internal: Replace POKYMODE POKYLIBC with TCMODE and TCLIBC 49b3743 ofono: fix test block syntax error a17adf1 sanity, base: remove gcc3 check since qemu doesn't need it any more 012c4a4 libcap: pass prefix to "make install" 238ea4e linux-yocto/meta: update meta SRCREV for routerstation pro ed5e3f1 send-pull-request: default to --supress-cc=all d8a3cd5 classes: remove classes that don't belong in oe-core e6cf0ba classes: remove obsolete classes e375da8 kernel.bbclass: minor whitespace fixes 5112838 gcc-4.6: update to 4.6.1 release 5ec2132 scripts/hob: wrapper script to run hob gui with a UI specific config file 97098f3 distro tracking: Updates 32ca3e0 libiconv: add version 1.13.1 fa4bcfd bb-matrix: correct BB and PM number canonicalization f7fd215 perl: Use SITEINFO variables not functions 54e8e04 scripts: Rename "adt-install" to "adt-installer" in user help. 30004ea eglibc: fix packaging of thread_db ec3209c busybox: respect ${LDFLAGS} 0fc41bd cooker: only return *Found events if something was actually found ffaf73e kernel.bbclass: remove unintended change of INITRAMFS_TASK 122ccf2 insane: make GNU_HASH check slightly more robust (avoids false negatives with gold); add check for useless rpaths 660093c openssl: pass ${mandir} explicitly to "make install" f306906 ncurses: Fix site_config f7418e2 libpcre: Add bzip2, zlib and readline to DEPENDS b85a1e0 groff: Disable x11 support f3004c7 hicolor-icon-theme: Use ${BPN}-${PV} not ${P} to unbreak nativesdk 4678e7a opkg-utils: Print out License field 653f195 package_ipk: add License field to control file 0688396 eglibc: fix runtime assertion failure c661f8e eglibc: fix installed but not packaged files ef0d0e1 binutils: package unpackaged files 1a19f82 pulseaudio: enable bluetooth support 5b1bc84 connman-gnome: run oe-stylize over recipe 1d6e661 ofono: fix packaging and clean up custom do_install 3fdd47a distro-tracking: add RECIPE_MANUAL_CHECK_DATE for various recipes 4a6109f Patches: Fix Upstream-Status info 8a3692d classes/image_types: add a variable to list available IMAGE_FSTYPE's 80441de ui/crumbs/tasklistmodel: fix automatic removal of orphaned items e5c9617 ui/crumbs/tasklistmodel: update brought in by column when possible 4a438be glibc: fix false failure e363567 kernel.bbclass: fix the broken lines d3e6228 libzypp: fix for non /usr/lib libdir case 4e01f73 sat-solver: fix for non /usr/lib libdir case c3a8e96 eglibc: ensure that NSS libs go into the right package when ${base_libdir} and ${libdir} are the same 6aa76f9 xserver-kdrive: add patch upstream status info 47fb894 python: Fix libdir usage which broke python packaging bf8735f fetcher2: retry mirror if upstream checksum mismatch d5651cb sato-sdk: add clutter for sato-sdk image 7354fc9 insane.bbclass: skip rdepends QA checks for kernel / modules 5275297 bluez-dtl1-workaround: deleted 88c6c7a kernel.bbclass, task-base: remove references to obsolete bluez-dtl1-workaround 9b36cd7 busybox: fix missing features due to lack of variable expansion b8f6c22 bb-matrix: initial scripts to record TIME(1) metrics for BB and PM combinations 0c17ea1 pulseaudio: make it work out of the box f8bf4e2 kernel.bbclass: handle embedding of initramfs images 9534a96 image_types.bbclass: add support for tar.xz, cpio.xz, cpio.lzma 1e433ee Add support for BAD_RECOMMENDATIONS to rootfs_ipk b8e12e9 rpm: fix for non /usr/lib libdir case 7cbce4b libcap: fix for non /usr/lib libdir case 668d80e perl: fix for non /usr/lib libdir case aeb29f5 python-native: fix for non /usr/lib libdir case 98d7597 python: fix for libdir=/usr/lib64 case 58ad25b openssl: fix for non /usr/lib libdir case e90b231 native.bbclass: generate libdir from libdir_native 2429773 gcc: Fix packaging correctly b36f998 webkit-gtk: update SRCREV 0155263 pulseaudio 0.9.15: delete, but keep 0.9.22 and 0.9.23 0be4b5b pulseaudio: try harder to disable HAL ecb5359 cmake: update to 2.8.5 release e8bb898 libarchive: remove undistributable copyright content from source edb2423 sstate: Improve performance by moving files rather than using copy and delete 84d4af1 update-rc.d: Switch from a tag to a sepcific revision d41f64b sysklogd: Drop ONLINE_PACKAGE_MANAGEMENT as per mailing list discussion f974868 libx11: ensure nativesdk uses correct DEPENDS and XCB flags 8f49007 tcmode-default: update binutils version 9f4eaee libx11: enable xcb support f0cd776 eglibc: add RDEPENDS for bash on eglibc-utils 171ed7f eglibc: unbash ldd (from oe.dev) 7061af3 rootfs_rpm: Add 50M to IMAGE_ROOTFS_EXTRA_SPACE for zypper /var space ab7530a eglibc: avoid copying ${libdir} twice if it's the same as ${base_libdir} 104a1c2 libc-common.bbclass: Fix typo b9ff62a combo-layer-tool: add tool to manipulate combo layers 4fadc30 bitbake cooker/ui: handle cmd line parsing result by individual UI. 18ce7e2 insane.bbclass: fix error/warning status being inverted 34ea005 insane.bbclass: allow dev-deps to be skipped via INSANE_SKIP c2e6090 site/mips-common: Cache cvs_cv_func_printf_ptr 282725a eglibc: bump PR for OLDEST_KERNEL change e0997b9 bitbake.conf: update OLDEST_KERNEL to 2.6.16 acc7563 fetch2/git: Tweak git fetcher to handling repo updates correctly 20e8208 lib/bb/ui/hob: don't error when dismissing save as dialog 9c03094 lib/bb/hob: fix changing base image b212461 ui/crumbs/tasklistmodel: fix reset method fb24f9b cmake: update to 2.8.5-rc3 4832e84 cmake: add nativesdk and target versions e5fef6b libarchive: add 2.8.4 version b626de0 usbutils: Add RDEPENDS on bash 21f1314 cmake.bbclass: use CPPFLAGS and CXXFLAGS 2c81d95 elfutils: fix compilations issue with the gcc 4.7 860d8fd gcc-runtime: fix installed but unpackaged files 434f328 distro tracking: update devel.toolchain recipes's fields ed4398e gmp: upgrade from 5.0.1 to 5.0.2 3f4f5c1 binutils: upgrade from 2.21 to 2.21.1 cd16591 cmake: refactor recipe 2a52b01 console-tools: Add RDEPENDS on bash c594b49 quilt: Add RDEPENDS on bash f7b11f2 image.bbclass: Add LINGUAS_INSTALL to dependency list 8bf7a4c gnome-doc-utils: Add RDEPENDS on bash 2c79c9e pulseaudio: add 0.9.23 760eace pulseaudio: disable HAL support and enable udev support e0c143e siteinfo: add microblaze little endian target info 0156ed6 insane: add microblaze little endian target info b358424 kernel-arch: microblaze little endian fix kernel arch e81bbc0 libxslt: Inherit from binconfig 32c3417 powertop: inherit update-alternatives and use a higher priority than busybox 04014b1 busybox: bump PR to ensure ipv4 is enabled 3a78d56 default-distrovars.inc: add ipv4 to DISTRO_FEATURES d988cfb libQtOpenGL:Add libQtOpenGL to an lsb image 9569e2b sanity: implement network connectivity test 8338c2d tinylogin: use angstrom mirror for SRC_URI 764ce20 distro_tracking_fields.inc: Update recipes upgrade and manual check information 6bd31d7 gawk: Upgrade from 3.1.8 to 4.0.0 74daaf1 gupnp: Upgrade from 0.16.0 to 0.16.1 d8f1388 module-base: remove KERNEL-SOURCE 8b9fc55 task-base: remove unconditional inclusion of kernel-module-rtc-sa1100 38bd46e task-base: remove modutils reference. 0849277 module-init-tools-cross: add SRC_URI Checksums 0d029ba uboot: Add 2011.06 Version 7fefee4 uclibc-0.9.32: Implement execvpe and refresh scheduler functions 408d5f0 uclibc_git: Implement execvpe and refresh scheduler functions 07d0673 uclibc_git: Move SRCREV past 0.9.32 release d0829ae tcmode-default: Define UCLIBCVERSION and set it to 0.9.32 db8a763 uclibc: Add recipes for 0.9.32 release d099a9e openssh/dropbear: No need for each to PROVIDE ssh/sshd 3e82f14 x-load: Drop PR from PV and fix version to 1.5.0 0e236d0 kernel-yocto: Fix case where recipe is always reparsed b5f288a chrpath: Ensure the package respects the docdir variable 48f06c0 opensp: Add unpackaged files 2cce411 kernelshark/trace-cmd: Clean up QA warnings including fising LDFLAGS issues 407c6c4 git: Package up python and gitweb files into appropriate packages dbb0d56 apt: Package unpackaged files dc9751d x11perf: Packaged unpackaged files 86704c5 gtk-engines: Package unpackaged files 65c8cb2 librsvg: Clean up unpackaged files 4b71ba4 telepathy-python: Remove unneeded and unpackaged files e8755c7 qt4: Package debug source files 2114521 systemtap: Don't set prefix to a path including so examples get placed in the correct path and packaged correctly 826a7ef eds-dbus: Package unpackaged files 3944ed8 xcb-proto: Package unshipped files, create python-xcbgen package for python xcbgen code dea71b0 btrfs-tools: Fix manpage creation directory c47c0e0 tslib: Package unpackaged .la file dcab57f connman: Package unpackaged .la file 42242d6 gcc: Fix unpackaged files warnings, broken symlink and superfluous files 7e12217 bitbake/process.py: Ensure queued UI events are queued right before we add our own handler 159aee2 cache.py: Ensure additional .bbappend files are accounted for d4132fa ui/depexp: If we're parsing zero files we need to ensure the cache progress bar gets hidden 4cc291c hob: re-designed interaction and implementation 7fc9c34 bitbake-layers: fix error on startup caused by recent cooker change c4b4e47 bitbake-layers: fix sorting by package name for cooker change 5168a50 libQtOpenGL: Install libQtOpenGL to an lsb image 93f6047 x-load: Update to 1.5.0 464ffb5 libmad: add SRC_URI Checksum cbc751b mpeg2dec: add SRC_URI Checksum e69f0f8 insane.bbclass: Fix indentation error 88ad4f3 insane.bbclass: Add warnings for packages which are not -dev packages which depend on -dev packages a7a5d5e base.bbclass: show layer's branches/revisions in the banner info 0aa90b1 libxml-parser-perl: convert to BBCLASSEXTEND, merge in OE fixes e8e6f9d package.bbclass: Make unshipped packages message more readable 7a2a24d bitbake/cooker, bitbake-layers: show the .bbappend files that matches no existing .bb recipe deb1448 bitbake-layers: fix sorting of show_appends output 1164b76 bitbake-layers: add command to flatten layers into one 3bf2d21 bitbake/cooker: implement layer dependencies, make priority optional 44db5d5 bitbake-layers: add show_overlayed action 07dbea4 bitbake: track 'overlayed' recipes 8154530 bitbake: Switch to use process as the default server 0da7db1 qt4: ensure target packages don't include host binaries cb5811b gettext: fix ERROR: QA Issue: gettext rdepends on gettext-dev 69277e4 db: Add INSANE_SKIP to avoid warning about .so file fa62058 qemu: Clean up various QA warnings, add approproate INSANE_SKIP for firmware files, ensure files aren't stripped d37e927 elfutils: Update INSANE_SKIP to new syntax 52e42f0 u-boot: Drop INSANE_SKIP since it insane no longer trips up on this recipe 463b38f gcc-package-cross: Switch to using pattern matching to detect when to stash libgcc into the sysroot 89e8be6 lttng-viewer: Fixup various QA warnings and a false positive 7e07f03 insane.bbclass: Allow INSANE_SKIP to work on a per test basis 2f22d86 gcc: Remove unneeded module .la file and .so link d420b1c gettext: Disable both git and cvs for autopoint's archive format. 21effd6 gcc: Fix removal of libiberty.a c2cb8d6 libgsmd: Fix QA warnings 056d7fb oprofile: Fix QA warnings 56e46f0 bitbake/ast: Fix ??= vs. ?= handling c6dac09 xauth: upgrade from 1.05 to 1.06 9415924 sqlite: upgrade from 3.7.6.2 to 3.7.7.1 41d0d42 distro_tracking_field: update the manually check field e2830aa libdrm: upgrade to 2.4.26 c4d062c libidn: upgrade from 1.20 to 1.22 9fc07c9 resolvconf: update to version 1.58. 6aa43ea distro_tracking_fields.inc: update recipes upgrade information 307dae6 coreutils: Upgrade from 8.9 to 8.12 e587c79 curl: Upgrade from 7.21.6 to 7.21.7 101098b poky.conf: add largefile support into DISTRO_FEATURES ad23632 uclibc: Fix compilation in thumb mode 39de5f9 distro_tracking_fields: remove modutils. 40f93ae modutils: remove modutils f370e45 kernel.bblass: remove get_kernelmajorversion bdfbb1f modutils-initscripts: move recipe prior to modutils removal c878cb8 modules-init-tools(-cross): update to 3.16 586ccf2 image|kernel.bblass|module-init-tools: do not use depmod-2.6 33ca841 Remove support for building 2.4 kernels 8511d1e Drop PRIORITY variable 31ea94b insane.bbclass: Start to rework this so specific checks can be easily made warnings/errors ca4c7c4 beecrypt: Fix up packaging QA warnings 72a569d python: Ensure libpython.so ends up in the .dev package 9ea184d libpcre: Fix QA warnings b3a4864 kernel.bbclass: Ensure kernel/* internal sysroot working directory don't get packaged a272d98 cairo: Clean up packaging and fix warnings a3afaba ppp: sync packaging with OE .dev 46c11ac perl: Fix package qa rpath warnings. ffc7ca7 consolekit: Add glib-2.0 to DEPENDS ea51884 bitbake: Add missing bracket, somehow lost by sync scripts f3be8e9 bitbake: add -R option for loading configuration files after bitbake.conf 22d8fb1 cooker: switch to new universe target rather than world 97e0beb cooker: remove code duplication in non trivial functions 6c36f4a cooker|command|event: add new command findFilesMatchingInDir 9fe29fd command|cooker|event: add findConfigFilePath command 6769269 cooker: add generic method to locate configuration files a8afb3b command|cooker: allow generating targets tree for specified pkgs cbd00b8 bitbake: Make bitbake server type configurable. 94a57fd ui/hob: Fixed the "build again" hang. 3950256 useradd-example: example recipe for using inherit useradd 14be7db useradd.bbclass: new class for managing user/group permissions a965a61 uclibc: Add default uClibc.machine files 1c1372e bitbake.conf: update PSEUDO_PASSWD variable a875886 linux-firmware: Add Realtex rt8192* firmwares c66a1d1 uclibc: Fix bug exposed by udev 168+ for mips architecture 8781c84 classes/package.bbclass: Add fixup_perms b78173f binutils: allow distro to select gold as default linker 5e480e5 uclibc: Add UCLIBC_HAS_FLOATS=y to uClibc.distro f89a21d uclibc_git.bb: Untether UCLIBC_HAS_FPU from UCLIBC_HAS_FLOATS 81fd1b9 uclibc.inc: Use ARCH_WANTS_{LITTLE|BIG}_ENDIAN to denote endian a37fd58 uclibc-config.inc: Fix regexp to determine big-endian arm 0d03195 uclibc: Remove redundant machine/arch configs 5c7d37c shadow-native: fix creation of home directories b2a047d Add OECORE_ACLOCAL_OPTS to env setup scripts for autotool project using correct libtool 2.4 c1fd6f0 consolekit 0.4.5: remove patch that forcibly disables consolekit c3acb9c consolekit 0.4.5: add pam support based on distro features fee83eb webkit-gtk: fix packaging f830c94 dbus: update to 1.4.12 771f5d0 linux-libc-headers: add 2.6.39 409ac8f ccache: Remove duplicate 'ccache.inc' from 'meta/class/' fec22b1 ccache: Add 'ccache' for SDK images 860eea2 ccache: Set CCACHE on a per recipe basis b3847df ccache: Integrate ccache-native to poky 477f685 Add umask task control b320f55 linux-firmware: Fix file permissions d591e69 scripts/runqemu: enable btrfs c9ed41a base-files: add btrfs to /etc/filesystems 55c3813 image_types.bbclass: enable btrfs as one of the image type 65c6892 image-types.bbclass: get the image size in the whole number 3e6746a sanity.bbclass: pass the data object to the less frequent test harnesses 49a9426 distro_tracking_field: update recipe maintainer 0c10be5 btrfs-tools: new recipe for tools to operate on btrfs images 6449763 kernel: move menuconfig task after configure 53dfb5f util-linux: Rebase remove-lscpu patch from non-gplv3 64be701 gcc-4.6: share work directories e4f43aa gcc-4.5.1: share work directories 3e08c1f Share gcc work directories e485b88 sanity.conf: Require bitbake version 1.13.2 at a minimum a99b6d4 glibc-2.12: Add missing PR bump a92449f eglibc-package.bbclass: Ensure localedef is only packaged in one location 35695ee eglibc-package.bbclass: Fix unintended code changes e0fc42b distro_tracking_fields.inc: update RECIPE_MANUAL_CHECK_DATE for screen and tcf-agent 1de23cb lttng-ust: change the patch's Upstream-Status to Accepted. 776da95 grub: add -fno-reorder-functions into STAGE2_COMPILE 0c1f2d7 glib-2.0,intltool,rpm,sgmlspl-native: Bump PR to resolve perl-native issue 1dd8237 task-base: add 3G into DISTRO_FEATURE 69aac1a initscript: Change some order of init scripts 35d8474 connman-gnome: Add 3G configuration support 663373c ofono: upgrade to version 0.50 3755b43 wpa-supplicant: remove the 0.6.10 version. 53de954 connman: Upgrade to version 0.75 6873c1a distro_tracking: update some manual checking fields 9074c12 web-webkit: recommends glib-networking to access https web page da62294 Upstream-Status: update the status for some patches d18aba9 prelink_git.bb: Only block the postinst script when no image-prelink dd31ff2 sstate.bbclass: Fix an issue if the config changes ff997f4 fontconfig: specify font directory in EXTRA_OECONF 8064c63 systemtap: add sqlite3 to DEPENDS 6f0e589 libc locale split: fix some remaining problems 8bdb4de glibc/eglibc: Clean up package warnings and potentially broken data in -dev package 0401f41 libc-locale: Fixup various packaging warnings 2894dfb scripts/oe-setup-builddir: Fix Yocto documentation links and add a couple of other example targets a4f3e00 u-boot-mkimage: bump version to 2011.03 eb1c557 libc-locale: Drop PN-locale packages f0c5451 Update version to 1.13.2 a2b9ef9 bitbake/ast: Add optional argument for BBCLASSEXTEND 21c5985 bitbake/ast: Call expandkeys after the RecipePreFinalise event 1b5d7b5 bitbake/data_smart: Don't track overrides in deleted variable names 5c5b004 bitbake/data_smart: Don't export deleted/empty entries in the list of keys cc2a8ff bitbake/data_smart: Optimise the data store iterator fb38001 gcc-cross-kernel: update to match new toolchain sysroot layout ff37094 Add PARALLEL_MAKE to BB_ENV_EXTRAWHITE 2bcbc9b base.bbclass: Back off the fatal error to a warning for now and try and recover 7aab545 distro-tracking: Update manual check date for puzzles, gpgme, x11vnc.. 08b6d95 glib-networking: Add 2.28.7 as new recipe d8f4a8b sanity.bbclass: only run check_pseudo_wrapper for bitbake df01b50 gconf-dbus: Fix SRC_URI to tarball 6c19697 distro_tracking: update sudo tracking info 7c6f47b sudo: upgrade to v1.8.1p2 3b97ea1 oe.classutils: add module 1414451 distro_tracking: update mtools tracking info 435b413 mtools: upgrade to v4.0.16 27c1285 lib_package.bbclass: move static libraries to ${PN}-staticdev 7414953 libxml: extend nativesdk class 4f61b3d distrodata.bbclass: Get the extend recipe's information from non bbextended recipe 53c5f8b rpm: Change config option 9bd8876 msmtp: Disable gnome keyring 5fdbef9 prelink: Uprev prelink to latest version dba9c14 dhcp: don't try to move files from ${sbindir} to ${base_sbindir} if they are the same 4c3691e libtirpc: Upgrade 0.2.1 -> 0.2.2 1ac7d1c base-passwd: remove login.defs references c82a1b1 shadow-sysroot: new recipe for useradd.bbclass support 1d640c9 gcc: Fix file ownership 0496564 base/glib-2.0: Simplify USE_NLS handling for glib-2.0 1d2f395 classes/conf: Drop MULTIMACH_ARCH variable, it adds unused complexity and serves no useful purpose 371a224 base.bbclass: Since we require python 2.6 which always contains hashlib we can drop this fallback code cc3455f base.bbclass: Drop old style SRCDATE handling, we have pn- overrides now 35e15c2 glibc/eglibc: Add missing PR bump 73a0088 eglibc: Fix version 2.12 after locale changes 9fc32c4 bitbake wrapper: exit if python v3 is detected 80beb67 libc-package.bbclass: Replace hard coded libdir. 8fa9d64 libc-locale: split locale handling from libc recipe. 671e580 bitbake: Add task specific stamp file support a1f79a7 runqueue.py: Add umask task control d08a341 qemuimagetest: update cvs and iptables to newer version for toolchain test 7b4eb14 documentation/adt-manual/adt-command.xml: Small edits for terminology (From yocto-docs rev: b32290b381a6ed2cbfe3e01b748c794ef6bc876b) 5ed6652 documentation/adt-manual/adt-eclipse.xml: General minor edits (From yocto-docs rev: c79d17e29d5690a8df9943836286232cd3aa8893) 95a3727 documentation/adt-manual/adt-eclipse.xml: misc wordings changed (From yocto-docs rev: c83d92d99bc1104169a06623c787b07a9d199039) 7adc615 documentation/adt-manual/adt-eclipse.xml: Updated new modes for tree bba2e72 documentation/adt-manual/adt-eclipse.xml: Updates to choosing target options (From yocto-docs rev: b8f314fb3dc638c85bc9f860fb591ee3a8dad614) 21ae07a documentation/adt-manual/adt-eclipse.xml: Updated configuring sysroot 05f363f documentation/adt-manual/adt-eclipse.xml: Edits to SDK and Poky tree modes 1ffbbdf documentation/adt-manual/adt-eclipse.xml: changed CDT 7.0 to 8.0 for Indigo (From yocto-docs rev: 14173522e5d6d219c336d6dafafcb7d1c734c584) 2fab1f6 documentation/adt-manual/adt-eclipse.xml: recommending Indigo Eclipse (From yocto-docs rev: 0f052154a4c7456bf10a7151bd3d4e70f51be1b3) 38213f9 documentation/adt-manual/adt-eclipse.xml: Wording Change c655092 documentation/adt-manual/adt-package.xml: Updates to configuring PMS 5a55f7f documentation/adt-manual/adt-prepare.xml: Clarified sysroot discussions 5534892 documentation/adt-manual/adt-package.xml: Updated PMS section 53f4e46 documentation/adt-manual/adt-prepare.xml: Updated kernel note bb6c10c documentation/adt-manual/adt-prepare.xml: Corrected setup command 231f6bc documentation/adt-manual/adt-prepare.xml: Updates to ADT install steps bb07dfe documentation/adt-manual/adt-intro.xml: Updated description of toolchain (From yocto-docs rev: 1ea4683eb41e4be334b053c622ed5bf08041d617) 21a4939 documentation/adt-manual/adt-intro.xml: updated QEMU overview 75f4b8c documentation/adt-manual/adt-intro.xml: Grammar correction (From yocto-docs rev: 738c4f25ba6bcc408789dda118b127d716c2f4c6) 982397c documentation/adt-manual/adt-intro.xml: changed definition of ADT 3f521ed documentation/yocto-project-qs/yocto-project-qs.xml: added libtool to packages cfa74db documentation/yocto-project-qs/yocto-project-qs.xml: OS support added (partial) eac2b4b documentation/yocto-project-qs/yocto-project-qs.xml: Updated package install ca8b3a1 documentation/yocto-project-qs/yocto-project-qs.xml: zypper for OpenSUSE 54f43b6 documentation/yocto-project-qs/yocto-project-qs.xml: multi-core update 377acfc documentation/yocto-project-qs/yocto-project-qs.xml: Updated for Python 2.7 fad2e98 documentation/poky-ref-manual/faq.xml: Updated Python FAQ entry 64bac7f documentation/poky-ref-manual/ref-structure.xml: Fixed a type (From yocto-docs rev: b2f45f73832a2289158bfb89313957a48dded1cd) 72ed33f documentation/poky-ref-manual/extendpoky.xml: YOCTO #1104 EXTRA_IMAGE_FEATURES 3b67d8a documentation/poky-ref-manual/ref-varlocality.xml: YOCTO #1104 EXTRA_IMAGE_FEATURES b46af8a documentation/poky-ref-manual/ref-features.xml: YOCTO #1104 EXTRA_IMAGE_FEATURES 4f7dd81 documentation/poky-ref-manual/ref-variables.xml: YOCTO #1104 EXTRA_IMAGE_FEATURES 497d774 documentation/poky-ref-manual/ref-variables.xml - YOCTO #1104 EXTRA_IMAGE_FEATURES 7cd2ac0 common-licenses: Additions and corrections 879a7f8 python: Add python to the dependency to pygobject f955edf db: Fix file ownership 3233f4b gnome-doc-utils: Fix the owner/group on select files ab8f202 tzdata: Ensure all files are owned by root:root 93dbe8d libtirpc: Fix owner/group of /etc/netconfig f9c2ff4 ghostscript: Fix owner/group of /etc/cups 324913c base-passwd: Fix owners/groups bee9120 resolveconf: Fix file owners 13f3607 native.bbclass: Add a simple chown intercept command 42df3f8 kernel.bbclass: Stop do_install poking directly into the sysroot and evading sstate 2fd3fc0 packagedata.py: Fix read_subpkgdata_dict() b97b3e8 classes/package_rpm.bbclass: Change the way the PV is transformed 2b8a680 kernel.bbclass: Stage System.map with KERNEL_VERSION suffix 120b409 clutter: Use new git repo bff293c kernel.bbclass: restore kernel-abiversion file 1bf6ab4 perf: Fix linux-tools to ensure perf is installed under "fakeroot" d9fc516 kernel.bbclass: Add support for perf-dbg package 2eed6de sysfsutils: Fall back to default -dbg package 3c928be classes/package_rpm.bbclass: Enhance diagnostic messages d155756 python: Switch to using the default -dbg package 35e622d python-pyobject: Remove unnecessary -dbg setting 4c8bd3e libxml-parser-perl: Fix debug package fa38716 texinfo: Change to use the standard -dbg file b14c56b psmisc: Remove custom -dbg packages, use default f1d78df modutils: Add in missing -dbg package 3444e18 liba52: Remove custom -dbg, fall back to default f011f60 python-gst: Add missing files to the -dbg package f0bff52 mc: Add missing debug files to -dbg 52c96e3 gamin: Add missing debug files to -dbg de8636c gthumb: Add missing debug files 4169431 systemtamp: Add missing debug files d6f064d trace-cmd: Add missing debug files fd63f1c gstreamer: Add missing debug files. 1569e74 gtk-sato-engine: Add missing debug files ee7fd40 libproxy: Add missing debug files 0da06f2 wireless-tools: Avoid stripping binaries 5d53024 busybox: Avoid stripping binaries d9949fb quota: Avoid stripping binaries 4bf6a73 sysstat: Avoid stripping binaries 6c27d99 db: Avoid stripping binaries d905e91 unzip: Avoid stripping binaries da7a1b4 dropbear: Don't patch in configure c425c38 nasm: Fix aclocal 9633eeb boost: Move the do_configure_prepend to a seperate task 745fffc tinylogin: Avoid stripped binaries a82642f tcmode-default.inc: use 4.6 for GCCVERSION and SDKGCCVERSION 0faa5f7 gcc-4.6: Switch to using svn SRC_URI for recipe c2007ba poky-lsb.conf: Instead of += with _append b914de5 Revert "eglibc: Upgrade recipes from 2.13 -> 2.14" 82e0e0a Revert "tcmode-default.inc: Bump EGLIBCVERSION to 2.14" ee4dd30 linux-yocto/meta-yocto: update yocto/standard and beagleboard SRCREVs 7e5af81 linux-yocto: update meta and yocto/standard SRCREVs 58db68c linux-yocto: update meta SRCREV for new config groups 2e11835 linux-yocto/meta-yocto: update SRCREVs for utrace merge 60871cc linux-yocto: update SRCREVs for utrace merge 0aad8f3 qt4-tools-nativesdk: fix compile failure in src/dbus d827764 qt4-tools-nativesdk: drop freetype include as we build with -no-freetype 4d7108f qt4-tools-nativesdk: fix unpack failure due to missing g++.conf 4cd373f beagleboard-audio: Set COMPATIBLE_MACHINE and also remove toolchain dependencies since its a config file aaa4951 beagleboard: switch to xserver-xf86-lite 489fe5d beagleboard: add basic audio mixer defaults 0363835 beagleboard: cleanup machine config commentary 3d710d2 task-core-lsb: Add absent libraries and commands to task-core-lsb.bb 0250ece tcmode-default.inc: Bump EGLIBCVERSION to 2.14 16837d4 eglibc: Upgrade recipes from 2.13 -> 2.14 77c2dd9 eglibc-package.inc: Package newly added sotruss and supporting libraries 3071ceb binutils_2.21.bb: Fix ld segfault exposed by eglibc 2.14 on x86_64 dcd3cba uclibc.inc: libsegfault is only RPROVIDED by uclibc 7c8e4f1 uclibc: Add support for $ORIGIN 42e6094 uclibc/x86_64/uClibc.machine: Enable ARCH_USE_MMU bde206b gettext-0.18.1.1: Remove unused patches a82dd36 gnome-vfs: remove gnome-vfs as it is deprecated in favour of GVFS and GIO 9cea847 alsa-utils 1.0.24.2: fix packaging 5fbb1b7 doc/usermanual.xml: Tweaks for the manual 3c1a960 glib-2.0 2.28.x: update to 2.28.8 899dcfe gnome-keyring 2.32.1: fix packaging 48cd942 fetch2/git.py: improve error reporting when an invalid protocol is used 3b79156 u-boot: set SRCREV to a git revision instead of a tag reference 2163461 systemtap: remove non-core COMPATIBLE_MACHINES dd91e6e bind: adjust hardcoded install path references d5b82a2 eglibc: bump PR for SRCREV changes f846186 eglibc_2.12.bb: Remove already upstreamed fix-for-make-3.82.diff 90dab97 process.py: Fix issue where early errors weren't making it to the console e1f6ebb meta-yocto: use FILESEXTRAPATHS_prepend := in all bbappends d96a8c9 dri2proto: Revert "dri2proto: make DRI2 swap event match GLX spec" 5192120 glproto: Revert "glxproto: make GLX swap event struct match spec" 28fff2f linux-yocto: update meta branch SRCREV 62d538f make exception handling syntax consistent 039798a codeparser: When loading the cache, ignore ValueError 7aa7673 meta-yocto/linux-yocto: update to match the renamed linux-yocto recipes 18ba9b3 bitbake: add local.conf.sample.extended 5d14238 base.bbclass: add support for SOC_FAMILY in COMPATIBLE_MACHINES 6b94fbd alsa-tools: Drop accidentally commited line b59bc82 Revert "qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them" f7c2ee9 Revert "uclibc.inc: libsegfault is only RPROVIDED by uclibc" 611aaca uclibc.inc: libsegfault is only RPROVIDED by uclibc ab1171b busybox: backport distro-features handling from oe master a205c32 qemu.inc: append to IMAGE_FSTYPES instead of weakly assigning them 1cf060e jsib-glib: Fix SRC_URI Checksum 6ab4745 alsa-tools: fix Checksums ec9b6d0 gcc-4.6.0: Bring in patches from FSF 4.6 branch fbc60cc eglibc: migrate configurability from oe 81d14f5 runqemu: take TMPDIR from bitbake 10fc86d eglibc 2.12/2.13: Upgrade SRCREV bbedf4a libx11-diet: Fixed checksum and rebase patch 684a519 update-alternatives-dpkg: Fix SRC_URI Checksum 9017f19 connman-gnome 0.5: build from git c69bbc0 rxvt-unicode: Fix SRC_URI & LIC_FILES Checksum 6e2f843 gettext_0.18.1.1.bb: Fix build on uclibc 73577ed util-macros_1.13.0.bb: Depend on virtual/gettext instead of gettext e4293c5 clutter-box2d_git: Switch SRC_URI to git.gnome.org f1a5694 json-glib: Fix up SRC_URI Checksums e0a18dd import recipe_sanity.bbclass from oe master 194c672 uclibc: fix compile error on i586 ef8144b ghostscript: update SRC_URI 218bcd5 git: restore the dependency on perl-native dcfb6e4 linux-yocto: rename recipes to explicitly indicate version 9031e7e uclibc: remove PACKAGE_ARCH f5de11c uclibc: remove redundant python code 1d3cc59 uclibc: Cleanup the machine dependent config files 8f9d5d6 perl-native: fix download url 768f3fa autoconf/automake: Bump PR to resolve perl-native issue 91b28d8 distro_tracking_fields.inc: update the info for the following recipes bfc5e54 libxi: upgrade from 1.4.2 to the latest version 1.4.3 f82e797 libxext: upgrade from 1.2.0 to the latest version 1.3.0 723f34a pixman: upgrade from 0.20.2 to the latest stable 0.22.0 d30eb74 inputproto: upgrade from 2.0.1 to the latest version 2.0.2 f2acbd9 glproto: upgrade from 1.4.12 to the latest version 1.4.13 7e4d042 dri2proto: upgrade from 2.3 to the latest version 2.4 8d26b85 resourceproto: upgrade from 1.1.1 to the latest version 1.2.0 72a9c4b util-macros: upgrade from 1.13.0 to the latest version 0.14.0 158bbf0 startup-notification: upgrade from 0.10 to the latest version 0.12 860e22a gnome-doc-utils: upgrade from 0.20.5 to the latest version 0.20.6 384c105 recipes: update Upstream-Status for multiple recipes' patches 3267279 tcmode-default: fix PREFERRED_VERSION_gcc-cross-canadian 0a641fe nativesdk.bbclass: Correct ordering of manipulations e112d46 task-sdk-host: Add nativesdk to the task name so its clearer what the contents of the task represent 05b59a6 initrdscripts: Inhibit compiler/libc dependencies as this is just a configuration file 00d7ba1 sysvinit-inittab: Inhibit compiler/libc dependencies as this is just a configuration file 2c72fd6 initscripts: makedevs is no longer used anywhere so drop dependency. Also inhibit compiler/libc dependencies as they're unused e2d72bd poky-feed-opkg: Disable default toolchain dependencies as these are just configuration files 485d30e base-files: Inherit toolchain dependencies as a compiler isn't used 942aa8e usbinit: Inherit allarch as its a generic script 6ba221b keymaps: Inhibit toolchain dependencies as its just configuration files fb23f06 formfactor: Inhibit toolchain dependencies as its just a script 189174a pointercal: Inhibit toolchain dependencies as its just a script a27fbe5 documentation/yocto-project-qs/yocto-project-qs.xml: removed 5.0 references 306e1a5 documentation: updated manual history 2adfc81 - documentation/Makefile: Cleaned up Makefile 18d42bd documentation/bsp-guide/Makefile: Fixed publish 37eedd0 documentation: [YOCTO #1025] build system for docs baf6bf4 documentation/poky-ref-manual/faq.xml: Added new FAQ entry x-toolchain 4a7bf7d documentation/yocto-project-qs/yocto-project-qs.xml: replaced runqemu with poky-qemu e5f3cc3 bitbake/fetch2: When replacing URLs in mirror handling mask out empty entries ba5db2d bitbake/cooker: Fix -b option by ensuring the empty cache structure is present b30cb58 Revert "gcc: rebase the patch to avoid patch rejection" eb50e84 gcc: rebase the patch to avoid patch rejection 1b53eef native/nativesdk: Clean up the depends ordering after bitbake override handling updates 69c87c5 conf/sanity.conf: Set the minimum bitbake version correctly, we've needed recent bitbake features for a while 92e165c image_types.bbclass: Since we apply the override, look for the standard name variable, not the override name a831dc1 Update version to 1.13.1 b8321c5 bitbake/event/ast: Add RecipePreFinalise event af93b89 bitbake/parse/ast: We always need to finalize the default data since otherwise overrides to BBCLASSEXTEND may not be applied eda2373 bitbake/data_smart: Change overrides behaviour to remove expanded variables from the datastore 73871c2 cache.py: fix bitbake -s command 4b66ce4 pseudo: Fix problem related to realpath dc15ddd bitbake-layers: handle skipped recipes 81e2f52 track skipped packages c9503d5 icon-naming-utils-native: inherit perlnative a74e428 libxml-simple-perl: fix EXTRA_PERLFLAGS due the the perlnative change f70eeea libconvert-asn1-perl: fix EXTRA_PERLFLAGS due to the perl-native change ac4fba3 libxml-parser-perl: inherit perlnative c13b10a cpan.bbclass, cpan-base.bbclas: update them for the perlnative change 38d0c60 perl: inherit perlnative d1965ba webkit-gtk: should depend on perl-native-runtime rather than perl-native f695cec dpkg: should depend on perl-native-runtime rather than perl-native 5af87ed coreutils: remove unnecessary dependency on perl 4c790ef git: should depend on perl-native-runtime rather than perl-native ac21b3d openssl: should depend on perl-native-runtime rather than perl-native a2f850d libcap: should depend on perl-native-runtime rather than perl-native c7a7c5a gnu-config-native: should depend on perl-native-runtime rather than perl-native 89b91fd perlnative.bbclass: add the file 3ba6d01 perl-native: populate into its own dir 5565b30 native.bbclass: allow a native package to be populated into its own dir 7a086ab scripts/bitbake: Only build tar-replacement-native when the build system tar version < 1.24 5de3d14 core-image-lsb-sdk: ensure testapps is part of sdk image 644cc12 core-image-sato-sdk: ensure testapps is part of sdk image 163f4df task-core-tools: add mesa-demos to testapps list b71f3e4 local.conf.sample: remove default EXTRA_IMAGE_FEATURES 43d84e6 metacity 2.30.3: fix build on GNOME-less hosts and fix packaging b0c29c2 sysvinit: split inittab into it's own recipe 67119c5 consolekit: update to 0.4.5 f28c134 librsvg 2.32.1: fix loader packaging when using gtk >2.20 37524cb kexec-tools: don't depend on virtual/kernel cd8694d iproute2: update to 2.6.38 e8b3a12 avahi: fix dbus system-service packaging and move more things to .inc 2c6ac68 distro_tracking_fields.inc: Fix a incorrect date format 4d9b298 udev: Fix udevd launch issue after system second boot c647c7a pseudo: Update pseudo to 1.1.1 version a91d498 distro_tracking_fields.inc: add pseudo f865e83 bitbake.conf: Create staticdev pacakge for static libraries 10cf515 initramfs-live-install: comment out allarch inherit to resolve no provider d2a9470 create-pull-request: Add URL documentation 1f0e242 package.bbclass: PACKAGELOCK is a shared lock file so inform sstate as such 3dc2615 sstate.bbclass: When removing files, take an exclusive lock, even for shared lockfiles e55dc39 Drop psyco support c7f76a1 bitbake/data/runqueue: Sync up with upstream to clean up environment variable handling bdab8e9 bitbake/build.py: Drop exec_shell environment as its now unneeded fe96722 runqueue.py: Wrap parsing with exception trapping 95f02a2 Shift traceback pre-formatting into LogHandler 355338c bitbake/cooker.py: Misc sync with upstream 9f33dde cooker: use BBHandler.inherit for INHERIT 88f4ba2 cooker: simplify self.configuration.data vs data usage 87dfc14 cooker: don't choke if we have nothing to parse 0f74a38 bb.exceptions: don't choke on frames without arguments 3fd3446 cooker: handle ExpansionError the same way we do ParseError 96e2ee1 Shift exception formatting into the UI a3efbb9 cooker: don't show a traceback for ParseError e121054 cooker: don't show a useless traceback for SyntaxError 97504f2 cooker: use logger.exception for config file parse errors 1749a73 cooker: pass traceback back from parsing thread 36d1dce cooker: show a useful message for ParsingFailure 2cf67a7 bb.exceptions: don't show a repr of 'self' 63d14f4 bb.exceptions: handle tb entries without context 5b4b6bc bb.exceptions: add to_string convenience function 22522d5 bb.exceptions: add code to create pickleable traceback entries 83708e4 bb.namedtuple_with_abc: add useful util from activestate a702c3d bitbake-layers: Fixup after recent server changes d276be6 bitbake/cooker.py: Fix debug message arguments ed44d29 bitbake/lib/bb/__init__.py: Sync with upstream bitbake 6c286ed bitbake/bin/bitbake: Return an error if exceptions occur 5ded108 bitbake/server/xmlrpc: Fix typo 83c3f87 bitbake/server/process: Implement getEvent() 658ba77 bitbake/server/process: Update to new server API 8aabfed bitbake: Add process server from upstream bitbake b34d662 bitbake none/xmlrpc servers: Only send pickled events to the xmlrpc server cd3c429 bitbake: Cleanup bitbake server init process to be clearer to follow e386fe4 bitbake: Sync up with upstream cosmetic changes for bin/bitbake 5af197b cache: Implement multiple extra cache fields request support b3c41b1 Introduce new param caches_array into Cache impl. 43eb7d9 Introduce extra cache class for image creator 8df3551 cache.py: Refactory Current Cache implementation 911e8bb siggen: don't choke with traceback when data is None 3eed3aa parse: pass a useful (if mangled) key to bb.data.expand for := 37d8388 linux-yocto/meta-yocto: make e1000e structure common [commit: bec3f1e8c] 5d22ea3 linux-yocto/meta-yocto: update target/meta SRCREVs 205a004 distro tracking: Manual Updates c85e75f distro tracking: fixup some bad entries 03908ad util-linux: package agetty seperately 3263183 sqlite: remove dependency on tcl-native 3bb917d linux-yocto: make e1000e structure common [commit: bec3f1e8c] ffa4177 linux-yocto: update target/meta SRCREVs e36ab32 distro tracking: update Qing -> Saul bd604d3 json-glib: Update to 0.12.4 f51576f distro-tracking: update openssh, tar, and grep a314226 tar: upgrade to v1.26 757db8a grep: upgrade to v2.8 4555c2b openssh: upgrade to v5.8p2 9c425c3 distro-tracking: updates 7f34cd1 tzcode: Update to 2011g c8bd9ff package_rpm.bbclass: make RPM use on-disk permissions e3f56c0 bitbake.conf: set PSEUDO_PASSWD within FAKEROOTENV 133691c base-passwd: populate the target sysroot with passwd/group/login.defs 20ef342 shadow: add a -native recipe with customized utilities 109aa5c shadow: recipe and patch cleanup 1b817aa gcc-package-cross: also install the symlinks in libexec with target prefix 61bca46 xf86-driver-common.inc: remove .la files to avoid unpackaged warning 58e17f2 gnutls: add p11tool into gnutls-bin 048736c gnutls: use INC_PR on 2.12.5 version recipe 6e6fa7d base.bbclass: add cleansstate task between clean and cleanall 2b41c2a util-linux_2.19.1.bb: Fix compliation on uclibc 6f5a6e8 allarch.bbclass: Define BASE_PACKAGE_ARCH = "all" 90d5d3c bison: upgrade from 2.4.3 to 2.5 d0c2307 autoconf: upgrade from 2.65 to 2.68 5d35988 m4: upgrade from 1.4.15 to 1.4.16 6b5d323 event: don't catch systemexit from handler execution 18011c1 qmake_base.bbclass: fix lrelease/lupdate binary names b0ed5af gettext: Add DEPENDS on git-native 5d9ea7d sysvinit: Mark as machine specific since there are machine specific components to this recipe 4547e5a libc-package: fix typo causing annoying diagnostic ca7fd14 eglibc: fix mispackaging of libcidn 13bc4eb ghostscript: Fix up file locations and add i686 b3ca61b dbus: avoid dependency on x11 for -native build 65616ab gnutls: add --with-libdl-prefix and --with-libpthread-prefix 77eef5e rpm: avoid dependency on perl and python for -native build 7866ae0 send-pull-request: fix a small typo that fails the script dba1a79 recipes: Upstream-status --> Upstream-Status: for multiple patches 06a03d7 libx11: fix libX11 keysyms to pass xts5 of lsb c0867a1 task-core-lsb: add cups and ghostscript into image 83158a3 gcc: Fix volatile access issue for ARM c51a6b5 avahi: enable service when using systemd e244285 rootfs_ipk: delete opkg metadata if package management not required and all packages are configured 08bac9f shadow: remove selinux entry from pam.d/login d8f8752 u-boot: package up u-boot.bin for field upgrades 10075c6 gettext-0.16.1: mark upstream status for gplv2 recipe's patches df6d696 siteinfo: replace all-linux with allarch-linux to match 5d7d4e1ed9bedf2b6510796d76ea8f94739b9de2 484c4e7 clutter-1.6: Add patch to update gettext macro version 22f3c4e puzzles: Update to 9175 01cfae0 dbus 1.4.1: disable sysv script properly when using systemd 817a98d binconfig: improve handling of empty prefixes e8ded5e create-pull-request: allow '+' in git PROTO_RE, ie for 'git+ssh://' ab65c72 busybox: sync do_install() with oe master (mostly) 505ee4b sudo.inc: Add do_install_prepend () to sudo.inc 92a878e distro tracking: updates 057512f gnutls: update to 2.12.5 f236b1e rxvt-unicode: update to 9.11 4be541c qmmp: update to 0.5.1 4e510c5 alsa-tools: update to 1.0.24.1 3b95058 gthumb: update to 2.12.3 b326fa0 msmtp: update tof 1.4.24 59ab20e mc: update to 4.7.5.2 8707a2d mailx: update to 12.5 18940c7 chkconfig: update to 1.3.52 8d74723 update-alternatives-dpkg update to 1.16.0.3 c1b6e65 dtc: Cleanup and update recipe fe96128 gobject-introspection: Update to 0.10.8 Git 39e10b5 gettext: Update to 0.18.1.1 cbaca4e glew: update to 1.6.0 a70cc53 util-linux: update to 2.19.1 2dfc95b newt: add Upstream-Status 8ddeef7 mpeg2dev: add Upstream-Status 7ab1360 libmad: add Upstream-Status a655518 tzdata: update to 2011g fb3c98c sysstat: update to 10.0.0 cb7b483 less: update to 443 5482512 poky.conf: Make qemu-config optional for non-GPLv3 802080e allarch.bbclass: A "all" TARGET_ARCH is dangerous as an OVERRIDE fdead2b data_smart: Adding overrides of zero length is pointless so lets not 58bdecb bitbake: use layer priority when applying bbappends dc65caa providers.py: Correct PREFERRED_VERSION handling 52295fa Improve handling of 'all' architecture recipes and their interaction with sstate c3a7382 prelink: remove dependency on transfig-native 8074582 sysvinit: make pidof usuable in a standalone setting 24f8f69 bitbake/runqueue.py: Move BB_WORKERCONTEXT to a place where anonymous python can see it 949c352 linux-yocto: update meta SRCREV cdc3397 bitbake.conf: make OVERRIDES match what people expect ed93e02 gcc-cross-csl-2008q1: Drop last remaining fail-fast override use and make it unconditional 5456878 site/powerpc-common: remove the incorrect dlopen default setting c412674 package.bbclass,prserv.bbclass: Compare USE_PR_SERV with "1" or "0" 8611987 uclibc: Add disabled COMPILE_IN_THUMB_MODE to uClibc.machine for all ARM configurations d43fa5f license.bbclass: Infinite recursion of or nodes 1169f1b license.bbclass: Sane Parsing of licenses deb3b03 uclibc_git.bb: Fix patch path in SRC_URI eae918c gupnp-tools: Add gupnp-av to DEPENDS 59650ea beagleboard: specify UBOOT_MACHINE in machine conf 6401cf0 machine confs: Add xserver-kdrive as PREFERRED_PROVIDER 62e3f0f License Field Cleanup: Non-standard field names 5faff78 common-licenses: Adding new licenses and renaming 183ef12 fetch2/git: ensure network check log matches actual command 5a4b8ce fetch2/git: use logging.debug() and clarify messages fd00566 bitbake/codeparser: Improve cache handling c373727 bitbake/runqueue.py: Ensure existing setscene stamp files are taken into account 5573852 bitbake/utils.py: Add option to lockfiles to return immediately rather than wait 00c7113 bitbake/cooker.py: Ensure BBFILES is processed in order 65b5553 bitbake/cooker.py: Fix -b option regexp handling a667251 fetch2/git: enhance the unpack by using "git checkout" 3466f21 fetch2/git: add document for git fetcher supported options 086479f fetch2/git: unify the nocheckout option format 8a12fad fetch2/git: change default protocol from rsync to git adbc121 meta-yocto/local.conf.sample: Added PRSERV_HOST and PRSERV_PORT. 16f06f7 classes/package_xxx.class: Use PKGE/PKGV/PKGR. 66d2743 classes/package(prserv).bbclass: Get PRAUTO and use PKGV/PKGR. f906608 conf/bitbake.conf: Added variables for PR service. ecdbd6a Add PR service deamon to bitbake 859e21a shared-mime-info_0.90.bb: Fix more parallel build issues 5b0900b uclibc.inc: Set COMPILE_IN_THUMB_MODE in .config if ARM_INSTRUCTION_SET != arm 7cab66c uclibc_git.bb: Fix compilation on arm when using thumb instruction set e94e86c utils.bbclass: make FILESEXTRAPATHS colon delimited 3a45478 u-boot: rename u-boot_git.bb to u-boot_${PV}.bb 7f75045 u-boot: remove UBOOT_MACHINE and COMPATIBLE_MACHINES 3faabbf dbus 1.4.1: create UUIDDIR in postinst b8b479e xorg.conf: update keyboard config with evdev 6015a10 rpm: fix fprint pointer issue 57684a7 libcap: add native BBCLASSEXTEND to fix gnutls-native after ffc32d6436bcd11bd9a431affb9d2508fdb3992e e944838 avahi: enable systemd support, but package systemd files seperately 9bccbc5 tcmode-default: workaround for gcc 4.6.0 failure on beagleboard 3b084de rm_work: keep all sigdata files in stamps dir ba9f2fb Revert "createrepo: Update to 0.9.9" fe91703 gnutls: Add libcap to DEPENDS 0eb4895 bitbake.conf: change IMAGE_ROOTFS_EXTRA_SPACE to soft (?=) default 6486450 console-tools: use u-a also for fgconsole otherwise it collides with busybox a57a1db dbus: Fix commit typo, I mixed the patch versions up bd97aa3 x11-common: fix dbus-launch RDEPENDS eed619c dbus: clean up dbus-x11 packaging 5168b14 dbus 1.4.1: enable systemd support, but package systemd files seperately da1a404 x11-common 0.1: add runtime dep on dbus-x11 12f5845 qemu-config: add runtime dep on dbus-x11 8dc4899 dbus: split X11 dependant dbus-launch into its own subpackage 2458da2 README.hardware: update installation instructions for beagleboard 5d56586 binutils: Add missing dependency on zlib-native 42076dc cooker.py: Don't show spurious warnings for collections of .bbappend files fe5f742 build/siggen: Ensure a task signature file is generated for each task that is executed 1607d7b IMAGE_ROOTFS_SIZE: Cleanup machine conf files 4da5ff7 python-2.6.6: py_package_preprocess should change Makefile only in PKGD not D b543da3 uclibc: rename bbappend in meta-yocto to match version in oe-core 24def0d task-poky-sdk-gmae: rename bbappends to task-core-sdk-gmae in meta-yocto 89f9d57 qt4: remove obsolete 4.6.3 bbappend from meta-yocto be9787a clutter: remove obsolete 1.4 bbappend from meta-yocto 5d1fcb1 rootfs_ipk: issue a diagnostic if rootfs is declared read-only and not all maintainer scripts could be applied offline a3d6def image_types: add IMAGE_ROOTFS_EXTRA_SPACE 470c0fe IMAGE_ROOTFS_SIZE Cleanup 5566567 eglibc.inc: Transfer PARALLEL_MAKE to PARALLELMFLAGS a49cc20 elfutils_0.148.bb: Fix compilation on uclibc c792ca0 gst-plugins-base: Add tremor to DEPENDS 9cc034b distro-tracking: update toolchain recipe fields d236f9c python-pygpbject: upgrade from 2.27 to 2.27.91 b021481 byacc: upgrade from 20101127 to 20101229 bcb1eb8 libpcre: upgrade from 8.10 to 8.12 542c93f git: upgrade from 1.7.4.3 to 1.7.5.1 567f171 create-pull-request: generalize the repository URL parsing c2d1870 ghostscript: fix run failure on mpc8315e 98e8faa pulseaudio: package udev rules 90981bb syslinux: rdepends on mtools 7fd97dd send-pull-request: drop sendemail checks 8e341a6 update-alternatives-dpkg: Update to dpkg base 1.15.8.7 2d7798a gail: update gail to 1.20.2 32a4e74 codeparser.py: fix syntax error in exception handling 3504c3a documentation/yocto-project-qs/yocto-project-qs.xml: fixed build env script b8b9667 BUGID#_1083 - documentation/yocto-project-qs/yocto-project-qs.xml: Added -k option 0eb4932 BUGID#_1083 - documentation/poky-ref-manual/usingpoky.xml: -k option added 4ea8b2f uclibc: Upgrade to 0.9.32-rc3 ed6f039 qemu machines: drop MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "qemu-config" be7020c poky.conf: Add qemu-config dependencies to qemu images at the distro level e2648e2 distcc_2.18.3.bb: Fix compilation on uclibc bd47ca4 gplv2 recipes update upstream status of patches 7772680 tcmode-default: switch to gcc 4.6.0 for ppc & mips also 86771cd tcmode-default: switch to eglibc 2.13 from 2.12 806698a opkg_svn.bb: Install rcS.d into $D instead of $IMAGE_ROOTFS 5148a49 puzzles: update to r9173 d773518 packagedata: don't choke on empty PACKAGES e3d0d98 Move packagedata code into oe.packagedata (sync from OE) 2a05bd9 oe.packagegroup: add code for package groups (sync from OE) fc55b22 base.bbclass: use oe.data for OE_IMPORTS adceb2e Shift oe import logic out of the event handler 6bdfae9 base.bbclass: switch to current OE's imports handling 4da8c86 oe.data: expand the flags e4921fd Implement variable typing (sync from OE) 4f5209c kernel.bbclass: pass KERNEL_VERSION through legitimize_package_name 2f4c803 Revert "u-boot: fix LIC_FILE_CHKSUM" 1c4a605 ed (GPLv2): remove --disable-silent-rules 2cccc12 modutils-cross: fix install issue cc46019 tcmode-default: switch to gcc 4.6.0 for x86, x86-64 & arm 6557b59 uclibc/site_config/funcs: getloadavg is unimplemented c166eb1 nfs-utils_1.2.3.bb: Fix compile failure on uclibc 7576968 opkg-utils: Synchronise with OE 9fbd9b9 package-index.bb: add support for deb and rpm. 5956184 gettext (gplv2): add virtual/gettext to PROVIDES list 2d2563a u-boot: fix LIC_FILE_CHKSUM 7706d5d linux-yocto/meta-yocto: fix gcc 4.6.0 compilation failures 624263c distro/defaultsetup.conf: Append TCLIBC to TMPDIR by default 09862c4 poky.conf: Poky doesn't support parallel builds of libc at this point f6f898a default-distrovars.inc: Do not add DISTRO_EXTRA_RDEPENDS and DISTRO_EXTRA_RRECOMMENDS 86e6d45 poky.conf: Set DISTRO_EXTRA_RDEPENDS/DISTRO_EXTRA_RRECOMMENDS 2bc011d *pull-request: add copyright, license, and descriptions 943951b send-pull-request: streamline git-send-email usage 8402e22 create-pull-request: add untested oe repository support b131ca1 create-pull-request: add GitHub remote support 5f9f218 create-pull-request: do not check certificate a13fe8e send-pull-request: verify git sendemail config 2b56f7b send-pull-request: don't send all patches to everyone even with -a ad6335a send-pull-request: fix greedy auto-cc regex 58f901b send-pull-request: remove local mta support b158757 send-pull-request: whitespace cleanup dca0c48 create-pull-request: provide an RFC mode via -c argument 5ad2eba create-pull-request: rewrite known private URLs to public URLs 65c2d1e create-pull-request: use git request-pull and arbitrary remotes e39bb8c create-pull-request: whitespace cleanup 8a64780 create-pull-request: alphabetize arguments 282b967 qt4-tools-native: Fix the patch location bc386f6 utils.bbclass: modify create_wrapper to correctly follow symlinks 30358f0 Add adt repo checking d1df751 extract bitbake config setting into data_define, use more variables replacing hardcoded values 720b5db lsbsetup: Rename this file and add a link for lsb test 0b5b26b linux-yocto: fix gcc 4.6.0 compilation failures e6d9d2c tcp-wrappers: fix libc overrides dfa5735 sysstat: fix libc overrides 55007ca lsof: fix libc overrides e9e2473 findutils: fix libc overrides 9e27763 diffutils: fix libc overrides 8b2e973 create-pull-request: switch URL from git.pokylinux.org/poky-contrib to git.openembedded.org/openembedded-core-contrib 8efa3a2 mklibs-native: Update to 0.1.33 a1120d4 usbutils: Update to 0.91 c6dde32 u-boot: update SRCREV to 2011.03 ccfd344 utils.bbclass: modify create_wrapper to correctly follow symlinks 1ef9f10 u-boot: Don't add PR in PV, its pointless 3ea694c qt4: re-enable two 4.6.x patches in 4.7.3 18b0ade qt4: add comments and Upstream-Status to all patches 0f574cc qt4: remove Qt 4.6.3 000368f gst-openmax: Add patch for GCC 4.6.0 04e3654 qemu: Fix Dependency and compatible machines e080d8e gcc: remove unused patches and move patches in proper dir 725acfa Couple minor fixes for the OECORE rename a0da8e7 recipes: add Upstream-Status to various recipe patches ffef4da Add a skeleton for init scripts 0424560 Add pidofproc to ${sysconfdir}/init.d/functions 0b175c4 Cleanup the whitespace in functions 728cec9 Add the layer meta-skeleton c21770f world-broken: remove non-existent items 21606d3 task-core-clutter: Update to 1.6 0d29487 clutter: Clean up old recipes 3fcdbf9 gcc: Move 4.3.3 and Special kernel 3.4.4 to meta-extras 7aabd71 yaffs2: Remove yaffs2 from oe-core 8fdd65f gtk+: Ensure that the default dependencies are ones that exist in OE-Core 21b0a2a sanity.bbclass: Disable the is DISTRO set check since we can now run distro-less 0f2e555 scripts/oe-buildenv-internal: Improve message when bitbake is missing 025821a update-rc.d: fix after repo move 189fa6b documentation/bsp-guide/bsp.xml: Updated Example Filesystem Layout aff8c57 documentation/poky-ref-manual/faq.xml: Added FAQ entry for filename spaces dd3cd02 documentation/bsp-guide/bsp.xml: Updated link to BSP Download site a106f41 documentation/bsp-guide/bsp.xml: Updated /binary explanation cf3d261 documentation/bsp-guide/bsp.xml: BBFILES statement corrected. 211d5a3 documentation/bsp-guide/bsp.xml: bsp exmaple name fixed b35a95f documentation/yocto-project-qs/figures/yocto-environment.png: New figure 375935d BUGID#_ 1068 - documentation/poky-ref-manual/extendpoky.xml: updated hello ex. 1947b17 documentation/yocto-project-qs/yocto-project-qs.xml: changed build command 9fe00e1 recipes: Add upstream status information for patches 7cc5910 image-prelink: remove hardcoded path assumptions, don't generate cache file 63f8d85 task-core-lsb: Add libQtOpenGL.so* library to lsb-image 1c5dd2b lsbsetup: Add a link for lsb test 9f14474 lsb: Install init-functions to rpm package df2a37a git fetcher: add support for rebaseable git repo 8bb06fd bitbake.conf: set TARGET_VENDOR to '-oe' and remove it from defaultsetup.conf f5cc1f2 backport USE_LDCONFIG and PACKAGE_SNAP_LIB_SYMLINKS from oe master f93d687 update patch upstream status ba3995d guilt-native: eliminate hardcoded "/usr" in do_install ceeb54d Upstream-Status: Update patch upstream-status for GPLv2 recipes 97868af eglibc: backport fix from oe master to stop libc.so leaking into ${PN} 5527983 task-core-nfs/image.bbclass: Fix some libc overrides 594d886 image.bbclass: use soft assignment for LDCONFIGDEPEND 8b32cd9 openssl: backport fix for empty prefix from oe master 8197f4d update-rc.d: point SRC_URI to new devel repo e62569a license bbclass: put licenses in DEPLOY_DIR/licenses to avoid sstate problems when MACHINE is part of DEPLOY_DIR_IMAGE 72931d1 linux-yocto: update meta SRCREV 5a3d24e perl-native: create_wrapper on perl${PV} too 9d42473 openssh: Don't use ${libdir}exec 339d493 base.bbclass: Fix PR increment bug when PR number is a single digit 60ab6fc Add a new task checklicense and fix some bugs in distro_check.py afe43ed linux-yocto: detect and avoid branch revision checking for AUTOREV 7a0d252 Upstream-Status: Update patch upstream-status for libfm, eggdbus, screenshot... 2ce14da Upstream-Status update for several recipes 0dbd791 recipes: Add Upstream-Status to various recipe patches 9e45491 mutter: Recipe Update for clutter 1.6 update 6b8f009 e2fsprogs_1.41.14.bb: Package libraries into separate packages 4911ad1 opkg: Bump SRCREV to 609 eb01cda task-core-nfs: fix a bitbake error 5251d9d bitbake/ui: Fix Gtk+ GUI's after recent cache changes aa721aa cmake: add support for oe qt4 tools names 4d62860 conf/distrosetup: Clean up default libc config and sync with OE-Core (artifact of merge issue) f10292a foomatic-filters: add a link to pass LSB printing test d2de82e util-linux: inherit pkgconfig 9248bf0 conf/bitbake.conf: Add MACHINEOVERRIDES variable ff15645 glib-2.0: use PN instead of glib-2.0 in PACKAGES and FILES 04b79d9 lib/oe/process.py: import from OE add4df4 qt4: split out SQL driver config flags to QT_SQL_DRIVER_FLAGS 0bd9538 distro_tracking_fields.inc: update for qt 4.7.3 upgrade 0de1bd8 qt4: update from 4.7.2 to 4.7.3 a69153b lsbsetup: recreate locale fr_FR 3bfbeff task-core-lsb: add packages into lsb image 3ceeebe libxml-sax-perl: added to create LSB olver test report 31a763d Qt4OpenGL: Enable libopengl for platform emenlow and mpc8315e-rdb 65e5ebc tcmode-default: fix a typo 42d2170 recipes: Update upstream-status of patches 9233fdc gcc 4.5.1 4.6.0: remove unused patches 9deb373 update patch upstream status f838217 qt4-tools-nativesdk: -arch is required for nativesdk build 021e792 gcc: fix target gcc runtime issue b0e6fc7 kern-tools: error if features are not found 31f4fa1 bash: enable update-alternative to use bash as default shell 79031b0 recipes: Add Upstream-Status to multiple recipes fc1859e recpies: add Upstream-Status for multiple recipes' patches 6a7b1fe recipes: Add Upstream-Status for multiple recipes 62e9c9e recipes: add Upstream-Status for multiple recipes 43607eb distcc: Update SRC_URI 477934e codeparser.py: Ignore incomplete cache files bc36752 Add files missing from previous change ad0594f procps: use u-a for pmap, otherwise conflicts with pmap from busybox 661b5fc tcmode-default: lock also versions for eglibc 2e4518b recipes: Fix the Upstream-Status format cba146c libzypp: fix compilatoin with gcc 4.6.0 9582e90 kexec-tools: fix compiler errors with gcc 4.6.0 e90cc99 systemtap: fix for compilation with gcc 4.6.0 ac3dce4 pax: fix for compiling with gcc 4.6.0 b6e4c1a mdadm: compilation fix for gcc 4.6.0 64a47c3 dtc: fix compilation with gcc 4.6.0 da4795c zaurusd: fix a typo in Makefile c4d7659 web: fix typo in Makefile 5df6f79 matchbox-wm-2: fix typo in Makefile b200501 libunique: Fix for compilation with gcc 4.6.0 e8fd633 tcmode-default: Fix defaults for libgcc recipes a2e232e qemu: Upgrade qemu git to the latest 0.14 branch 7f7de31 clutter-cairo: remove remaining files from this obsolete recipe 6941efa python-native: Add ctypes patch to native build (as in cross-compilation) ef768be lsbsetup: Add link for sendmail 1809999 init-functions: Conforming applications may install one or more initialization scripts 1320cad wq!lsb: Add init-functions to lsb-image 57d50ba xserver-xf86-lite: upgrade to from 1.7 RC2 to 1.10.1 495c109 xserver-xf86-dri-lite_git: upgrade to 1.10.2 RC1 snapshot c532f96 xserver-xf86-dri-lite: upgrade from 1.9.3 to 1.10.1 03439a3 sqlite: upgrade from 3.7.5 to 3.7.6.2 4c96cce xf86-video-intel: upgrade from 2.14.0 to 2.15.0 50e7a78 git: RDEPENDS are transitive, so remove tk so it builds with just OE-core 7badcf0 readline: Upgrade 6.1 -> 6.2 754b178 qmake_base.bbclass: add generate_qt_config_file task 9c272d9 cmake.bbclass: fix qmake and rpath issues 37f4319 siteinfo.bbclass: Add powerpc-linux-gnuspe. 0813e05 conf/distro/include: Remove old prebuilt OE toolchain support (replaced by sstate) and oabi config (obsolete) 80ebce8 distro/tclibc-uclibc: Append uclibc to key path names to allow parallel uclibc and eglibc builds bdc2e59 conf/bitbake.conf: use --no-check-certificate to avoid errors when wgetting from https 456f8f9 meta/conf/layer.conf: Remove packages/*bb from BBFILES f21b091 metadata_scm.bbclass: Use COREBASE to grok for SCM operations 0504d36 bitbake.conf: Drop unused *GUI* and MACHINE_DISPLAY variables c444341 preferred-xorg-versions.inc: Drop this, it makes no sense given we only have one version of these recipes f60f3f1 conf/distro/include/default-distrovars.inc: Create set of default 'distro' variable values 367a139 machine/qemu: Add qemu-config as an essential machine speicfic dependency and drop specific distro config e27f339 distro: Add defaultsetup.conf, a set of default configuration providing sane overrridable default for commonly used options 5a606ef matchbox-theme-sato/pseudo: Add DEFAULT_PREFERENCE = -1 for SCM recipes 0448533 bitbake.conf: Include the new default-providers.inc and default-versions.inc files 16cfbd6 poky-floating-revisions: Move to meta-yocto e92a198 linux-yocto: Fix COMPATIBLE_MACHINE so core machines aren't overwritten 622fb696 atom-pc: use linux-yocto (2.6.37) kernel ef8291f conf/machine: Drop unused *GUI* variables bc729d2 documentation: Removed hardcoded user name from publish option 93f2f1b documentation/adt-manual/Makefile: removed hardcoded name from publish c7c40a3 BUGID#_807: documentation/poky-ref-manual/ref-variables.xml: BBFILE_PRIORITY updated aa0575c documentation/poky-ref-manual: Removed the PNG files in screenshots 4ff1f64 documentation/poky-ref-manual: Added new title graphic 4100eba documentation/poky-ref-manual/figures/ss-sato.png: Added this file. fccb51c documentation/poky-ref-manual: Figures cleanup 92690ef BUGID#_956: documenation/poky-ref-manual/Makefile: Updated publish 3c59043 documentation/kernel-manual: removed a figure and updated makefile f55fec8 BUGID#_956: documentation/kernel-manual/Makefile: Updated publish option 53dfcb4 documentation/kernel-manual/figures/yocto-project-transp.png: Removed f7b1705 BUGID#_956 - documentation/bsp-guide/Makefile: Updated for publish process 35751b9 documentation/bsp-guide/figures/poky-ref-manual.png: Removed figure f5cf435 toolchain-qte: include cross-compiler and fix env script 2277c30 libxmu: Add native function 7a78b21 oe/patch.py: Remove series file during Clean() 7f92587 fuse: drop since it is not used by other recipes e646a99 insane.bbclass: skip license checksum if LICENSE is "CLOSED" dc34eff libxkbfile: disable xcb bcd7f10 busybox: add support to mdev c533f60 meta/conf/local.conf.sample: fix mklibs comment line split and typo 5aa69f2 linux-yocto: error if meta data not present b4dcf0d linux-yocto: remove non-core (qemu) machine compatibility 94c73db gtkhtml2: Update to 1161 54c422a web-sato: Update for svn -> git transtion ed18794 gnome-doc-utils: Add additional missing -nonet options to xsltproc 60c1542 syslinux: improve packaging 915f491 scripts/oe-setup-builddir: fix typo 9ebafcf package_rpm: use target vendor information 9f2d50c image-mklibs: add microblaze arch support 5bd9671 linux-libc-headers: add microblaze ARCH definition 7b01b1e siteinfo: add microblaze target info 49d21ed kernel-arch: add microblaze to valid archs 3e1f013 insane: add micrblaze target info 196f689 lttng-ust_0.12.bb: Fix compilation on uclibc 4401c94 liburcu_0.5.4.bb: Let it build on uclibc targets 3fbb7b5 libgalago_0.5.2.bb: Fix compile for uclibc 630a645 recipes: Replace gconf-dbus with gconf e2f1638 qemu-script: Fix qemu seg fault if install Nvidia proprietary driver. cd4a94d rsync (GPLv2): fix security vulnerability CVE-2007-4091 32e63c2 linux-yocto: move non-core machines to meta-yocto f285547 documentation/yocto-project-qs/Makefile: BUGID#_956 - Modified Publish 660fb42 documentation/yocto-project-qs/figures: Removed two figures 3c7c0db documentation/yocto-project-qs/yocto-project-qs.xml: fixed typo ec7059c documentation/adt-manual/Makefile: BUGID#_956 - Changes to push to website 7adc70b documentation/adt-manual/figures/yocto-project-transp.png: removed file 112adfc documentation/yocto-project-qs/Makefile: BUGID#_956 - fixed remote publish URL 1eb81c8 documentation/poky-ref-manual/Makefile: BUGID#_956 - fixed publish URL 3171f03 documentation/kernel-manual/Makefile: BUGID#_956 - fixed publish URL aaf8954 documentation/bsp-guide/Makefile: BUGID#_956 - fixing publish process 5b1f8a2 documentation/adt-manual/Makefile: Updated publish 9aa2ef7 documentation: Update publishing location 7accf4b documentation/poky-ref-manual/resources.xml: removed referenct to poky linux site 720e6e1 documentation/poky-ref-manual/extendpoky.xml: removed pokylinux.org link a838bca documentation/poky-ref-manual/ref-images.xml: [BUGID#_1004] - EXTRA_IMAGE_FEATURE 55aacbc u-boot: correct COPYING MD5SUM c08d4cf gettext.bbclass, bitbake.conf: Append nls options to EXTRA_OECONF instead of += c099dc0 bash.inc: Add bison-native to DEPENDS 6dfa294 sysstat.inc: Switch to inherit gettext 610ba36 binutils.inc: Switch to TARGET_PREFIX not TARGET_SYS 6e884c3 gcc-package-target: Switch to TARGET_PREFIX in symlinks 6e50e0c package.bbclass: convert unpackaged file message from 'info' to 'warn' so that it shows up on the console 25f4a0e conf/layer.conf: Use .= to append to BBPATH and += for BBFILES 605141a gnu-config-native: add dependency on perl-native 839de46 binutils: update upstream status of patches 73bb65d gcc-4.5.1: update upstream status of patches f73fe92 sat-solver: fix compilation issue with gcc 4.6.0 22d6a13 subversion: update upstream status for patches 4784dd8 python-imaging: update upstream status for patches a5cd66b patch: update upstream status for patches cf24b29 patch-2.6.1: update patch upstream status 134419f libpcre: update upstream status for patches ded9071 gtkhtml2, web: Sync version for API Change 2831f15 clutter-gst-1.4: Add missing patch b8124c4 git: make it work on the target 2fcf5a7 sanity.bbclass: Add cpio to list of required utilities tested for 506241c bitbake: Add missing file 0788081 Enable some DeprecationWarnings 0cc52ef bitbake: Sync fetch back with upstream d2c925f fetch.git: fix a remnant wrt persist + keyerror f1c0c97 bitbake/persist_data: Sync file with upstream bitbake 754d1c6 persist_data: implement comparison, same as dict 824acff persist_data: don't allow non-string keys/values d43e7a9 persist_data: add has_key 7fc020a persist_data: raise KeyError on missing elements fc801b9 event: improve output for syntax errors in handlers 37cb4cc event: improve output when eventhandler exec fails 8cf28d7 event: register event handler functions, not code objects 2d73cd1 build: fix dir removal traceback 8b938dc build: in exec_func, mkdirhier ${T} 88dbb05 Initial work on getting bitbake working under pypy 628bd54 cooker: fix -b with BBCLASSEXTEND 6074329 bitbake manual: fix typo 7287549 bitbake/codeparser: Correctly handle a missing/empty cache file e72210c netbase: automatically bring up usb0 on BeagleBoard xM 001a555 bitbake/cache.py: Ensure skipped recipes make it into the cache to avoid reparsing c8928e9 bitbake/cooker/codeparser: Ensure the code parser cache is saved for each parsing process 9211fd9 bitbake/ast.py: Only run finalise() for the specified variant 8b32d40 bitbake/runqueue.py: Remove old log file handling remnants a90914c boot-directdisk: fix bzImage source location 6f16bbf linux-yocto: update SRCREVs 1e54b75 linux-yocto: safely process unbranched repositories 1fc3964 linux-yocto: apply meta data to external repos f20edfe gnome-doc-utils: Add -nonet option to xsltproc 2d4513f yaffs2-utils_cvs: fix the SRCDATE typo c83d7ac web: fix SRCREV a4b61fb gypsy_0.8.bb: Fix build with gcc 4.6 f014269 eglibc-2.13: Add recipes for eglibc 2.13 a00b11b yaffs2: Update patch and checksums 3748180 clutter-gtk-1.4: Rebase patches 9bb5a68 clutter-gst-1.4: Rebase patches and update checksum ca63a01 ghostscript: added to pass LSB commands check 2ebb1fb foomatic-filters: added to pass LSB commands check 478deec gcc-4.6.0: Backport FSF 4.6 branch patches d42dccf gcc-4.6.0: Add missing recipes for gcc-cross-canadian and gcc-crosssdk 32240fd lttng-viewer: explicitly add linkage to lttvwindow c4d01fc task-core-tools.bb: properly enable lttng-ust for ARM 3a41c1e initscripts: remove -i from halt/reboot arguments and allow override e178de7 util-linux.inc: remove virtual/libintl from DEPENDS bbd6999 Remove distro-specific metadata for distros not in oe-core cdf8783 Remove machine-specific metadata for machines no longer in oe-core 5331f47 meta-yocto: add pieces removed from oe-core for beagleboard & atom-pc 61018fd poky-default-revisions: move the SRCREV to recipe file b5adb30 python: Unbreak Python third-party extensions d2e078a qemuimagetest: Add executable permission to test scripts for toolchain ea4857a qemuimagetest: Enable toolchain automation tests in qemuimagetest 49e2fcc perl: fix Configure-multilib.patch 7050587 perl-native_5.12.2.bb: Fix compliation on ubuntu 11.04-alpha 7755614 libsoup-2.4: Update to 2.34.1 c525f41 linuxdoc-tools-native: add groff-native to DEPENDS 2cfc993 puzzles: update to r9163 c09c603 alsa-utils_1.0.24.2.bb: Fix build for uclibc targets 6e0cede libx11: Use inherit gettext 499a7b9 insane.bbclass: Checking for NLS too when checking gettext dependency 5ce6cc4 git: use DESTDIR=$D instead prefixing all variables by $D 6add850 LSB_Setup.sh: Add character set to lsb-image 53907b8 task-core-lsb.bb: Add packages liberation-fonts to lsb-imag 5515f7b libcap: upgrade to version 2.20 f063ff7 lzo: upgrade to version 2.05 f61514e shared-mime-info: upgrade to version 0.90 a29b96e busybox: upgrade to version 1.18.4 b9e63d9 curl: upgrade to version 7.21.6 3ef65ef augeas: upgrade to version 0.8.1 5e9bd90 acl: upgrade to version 2.2.51 d41c3a8 attr: upgrade to version 2.4.46 f8e02f3 create-lsb-iamge:Fix bugs ea0e291 netbase: fix check for nfsroot in if-pre-up.d script 7ec1a51 logging: delete the oe(note|warn|fatal|debug) functions fc934af logging: update existing oe* logging users to the bb* interface 0e2eb05 distro_check.py: Fix some bugs in distro_check.py 8e55193 Fix matchbox-panel-2 compile error 5d73784 task-core-lsb: add xdg-utils into lsb image 5cd5efb lsbsetup: add commands install_initd and remove_initd d2c84ea groff: update to 1.20.1 288638e liberation-fonts: postinst can't be called offline f564954 core-image-directdisk: add LIC_FILES_CHECKSUM 0e89459 gettext.bbclass: Updates to better handle gettext alternatives 39e469c base.bbclass: Create a BASEDEPENDS variable other classes can use to add to the base dependencies, avoiding native/nativesdk issues 0c28d5b libnss-mdns: add $D to postinst paths a2030c8 git fetcher: make tag back to work, fix Yocto bug 972 29ea5ad Need override for TEMPLATECONF 28e7041 universe target: add a new target to collect all recipe targets 3279737 linux-yocto: create SMP config fragment fbdbdb1 perl_5.12.2.bb: Undefine features not found in uclibc 5f37ef4 qemu: Fix non-sdl/opengl build 5d92f33 world-broken: add older clutters since we don't want clutter confusion 1942549 alsa-tools: Add checksums e51bd9b tidy: move old clutter demo to meta-demoapps aa7ec17 table: move old clutter demo to meta-demoapps 777f1a3 clutter-box2d: add DEPENDS for clutter-1.6 197557b alsa-utils_1.0.23.bb: Fix compilation for uclibc targets e3e96e6 glib-2.0: Inherit gettext should provide right libintl so remove from DEPENDS b65c8e6 poky-default.inc: Weakly assign gettext to provide virtual/gettext 582dfde gettext_0.17.bb: PROVIDE virtual/gettext and RCONFLICT with proxy-libintl d31c443 gettext: Divide packaging into gettext-runtime and rest 34e8e9e autotools.bbclass: Copy gettext files only if --disable-nls is not set 01102bd insane.bbclass: Move code to add function to tasks toward the end 0bed0db libsdl: add SRC_URI Checksums 753bc3e logging: add bb* logging mechanisms for bash recipe functions 52026ef logging: remove unused BBDEBUG from local.conf.sample 4349374 logging: fix oedebug loglevel test d0382d5 distro_tracking_fields.inc: add cdrtools recipe af40ff0 cdrtools: recipe and patch cleanup 7bd1a63 python: add missing cytpes modules c9107cd linux-tools.inc: Dummify do_compile_perf and do_install_perf for uclibc 1ac90a3 attr: Fix compilation on uclibc e45f225 xorg-lib: inherit gettext class instead of adding gettext to DEPENDS directly bffd29b perl_5.12.2.bb: Undefine features not found in uclibc 78cb6b1 elfutils_0.148.bb: Fix compilation issues on uclibc dff516e libiconv: update from 1.9.2 -> 1.11.1 673c85a sstate.bbclass: Reduce SSTATE_MANIFESTS assignment to be weak cc0ae4b distro_tracking_fields: cwautomacros, valgrind, etc 68942a6 cwautomacros: upgrade to version 20110201 440aba7 alsa-utils: upgrade to version 1.0.24.2 d5ae54e libsamplerate0: upgrade to version 0.1.7 e6cf2bc gst-fluendo-mpegdemux: upgrade to version 0.10.67 1eff536 polkit: upgrade to version 0.101. 38fd4ce libfm: Remove the flag of G_DISABLE_DEPRECATED 6d3de3f glib-2.0: upgrade to version 2.28.6 60cf466 libsndfile1: upgrade to version 1.0.24 0cad3af gupnp-av: upgrade to version 0.8.0 42c940b bluez-hcidump: upgrade to version 2.0 aeee3fb valgrind: upgrade to version 3.6.1 722d95c rxvt-unicode: upgrade to version 9.10 e8a1130 cpio-2.8 (GPLv2) bug fix 1b283ce tar-1.17 (GPLv2) bugfix 335ff67 web: update svn to 131 to fix build issue 8e261fa gdb: set --without-ust for EXTRA_OEFLAGS 829b985 perl: upgrade from 5.12.2 to 5.12.3 3669de7 gcc: Add recipes for 4.6.0 07a6bec quilt: fix test for target build 181d5f5 sat-solver: fix arch=all packages 927d33c task-base: allow distribution to define apm provider 40f226e create-lsb-image:Rename creat-lsb-image and fix some bugs 91556f8 librsvg 2.32.1: fix postinst script 6da7fc5 pcmciautils: Upgrade 017 -> 018 30b44d9 lsbsetup: add some workaround for LSB tests f56f164 qemu-helper-nativesdk: Update LIC_FILE_CHKSUM for renamed helper 440f2f5 distro_tracking: recipe information update af25aea libxml-parser-perl: upgrade from 2.36 to 2.40 cd5a32e cpan.bbclass: export PERLHOSTLIB for perl modules 345de20 perl-5.12.2: use of PERLHOSTLIB var fix 4ffd8a2 python-pycairo: fix installation path of __init__.py db18200 git: upgrade from 1.7.3.4 to 1.7.4.3 5621123 python-gst: upgrade from 0.10.19 to 0.10.21 60bb07d mpfr: upgrade from 3.0.0 to 3.0.1 f12a489 ofono: add bluez4 to DEPENDS list ee2ff2a linux-tools.inc: turn off newt and dwarf for perf 8667ea0 puzzles: Upgrade to svn r9151 (from r9084) 5b661fc distro_tracking_fields.inc: update the info for the following recipes f0752b4 lttng-viewer: upgrade from 0.12.36 to the latest version 0.12.38 320a641 task-poky-tools.bb, task-sdk-gmae.inc: enable lttng-ust for ARM b4a88a5 lttng-ust: upgrade from 0.11 to the latest version 0.12 6890094 liburcu: upgrade from 0.5.2 to 0.5.4 d08d843 mdadm: upgrade from 3.1.4 to the latest version 3.2.1 e6ca7cc preferred-xorg-versions.inc: update libxfixes, util-macros, xorg-cf-files 87ad1ed util-macros: upgrade from 1.11.0 to 1.13.0 59bf813 libxfixes: upgrade from 4.0.5 to the latest version 5.0 eb0deae qemu: disable sdl for target build 8e7f1b4 Control over when package init scripts are run 46197c4 modutils-initscripts: fix wrong order of module loading happening in udev 679a4b2 jpeg: Upgrade to 8c (from 8b) fbca2e9 libgpg-error: Upgrade to 1.10 (from 1.9) d952463 consolekit: Upgrade to 0.4.4 (from 0.4.3) 7849a88 avahi: Upgrade to 0.6.30 (from 0.6.28) 9a6e635 tasks: Upgrade to 0.19 (from 0.18) b1c6f70 slang: Fix host contamination issue 37ac9a0 scripts/oe-setup-builddir: Fix up OE-Core/Poky mismatch for now (and fix permissions) 8d40582 Rename poky-image.bbclass to core-image.bbclass fa8b2c8 Rename poky-extract-sdk to runqemu-extract-sdk e9b17e3 Rename poky-image-* -> core-image-* and task-poky-* -> task-core-* b3d84fb Replace POKYBASE with COREBASE c1f79ab Rename poky-qemu to runqemu 6d49cb5 Rename poky-init-build-env to oe-init-build-env a891299 README: Update to reflect what Poky is today 215898b sanity.bbclass: Fixup Poky references d3c4fa4 lib/oe/distro_check.py: Fixup Poky references 0a9b84a rpm: Refer to the yoctoproject.org bugzilla 65f4b65 Further cleanup of various poky references 91d72e6 scripts/runqemu.README: Clean this up to accurately reflect what the runqemu command now does 6b46c2a runqemu-extra-sdk: Update function usage to clearly reflect its meaning 01f83c9 Rename ~/.poky-sdk/ temp workdir to ~/.runqemu-sdk/ b9fbc85 bitbake.conf: Only very weakly assign SRCREV to the default of INVALID 1288b8d bitbake.conf: Set MAINTAINER to a non-poky default of the OE-Core mailing list c74a688 bitbake.conf: Set SDK_VENDOR to -oesdk 7342b41 cronie 1.4.7: fix packaging aabad28 poky.conf: Set SDK_VENDOR 765d380 meta-yocto: Catch up with OE-Core renaming 949645e sanity.conf: Rename POKY_CONF_VERSION -> LOCALCONF_VERSION and make sanity versions weak assignment allowing the distro to override 6af27de adt_installer_internal: Remove hardcoded Poky references fc2cee5 Rename poky-lsb override to linuxstdbase aec20af Rename poky-image.bbclass to core-image.bbclass 972ebfe POKY_QEMU_IFUP -> RUNQEMU_IFUP 2c2e617 Rename the remaining poky-* scripts to oe-* or runqemu-* 0b70e29 Catch task-poky -> task-core renaming 5164821 Fix git.pokylinux.org urls to git.yoctoproject.org b8a0717 .gitignore: Drop stale entries d889a75 distro_tracking_fields.inc: Replace Poky with OE-Core 3ba0b82 poky-setup-builddir: Rename to oe-setup-builddir and clean up POKY variable references e7126c1 Replace POKY_KVM_WIKI -> YOCTO_KVM_WIKI 7469527 POKY_NATIVE_SYSROOT -> OECORE_NATIVE_SYSROOT 0441fe2 oe-init-build-env: Fix typo 6e95cb2 Rename poky-image-* -> core-image-* and task-poky-* -> task-core-* 4d609d5 Replace POKYBASE with COREBASE 8ceb769 Remove obsolete scripts/classes 08127d4 Rename poky-qemu to runqemu 46d0cc3 Rename poky-init-build-env to oe-init-build-env 211ae3b initscripts: Drop outdated machine specific files cd5e586 kernel-rt: use correct branch names and new git SRC_REV format c437113 bitbake/fetch2: Fix the problems introduced by the git fetcher AUTOREV fix f3ade6b clutter-1.6: update to 1.6.14 059539f clutter-1.6: drop no longer required patch 3bd2c0a json-glib: new recipe required by clutter af7f734 linux-yocto-stable: Update repository url 2d2d072 bitbake/fetch2/git: Fix a bug where AUTOREV and the git fetcher interact badly 029635e kernel: Remove debug statements ae440cd kernel: Copy over bzImage to sysroots during install 903806a psmisc: Upgrade from 22.2 to 22.13 1d3d3aa e2fsprogs: Upgrade from 1.41.12 to 1.41.14 06e3d5a libidn: upgrade from 1.19 to 1.20 203da6b distro tracking: reassign Kevin's recipe a2545c4 mesa: cleanup and remove the old version 7.5, 7.7 and 7.8.2 a0c0e89 mesa 7.10.2: add python-native dependency e3f62f3 python-dir.bbclass: define default PYTHON_BASEVERSION 0864632 x11vnc: fix SRC_URI 2ee0be8 bitbake: correct typo in ??= documentation 9fb4c74 jpeg: add link libjpeg.so.62 for LSB library test c510611 slang: Update to 2.2.4 72ff136 netbase: add /etc/network/interfaces file for qemumips & qemuppc 409544d netbase: automatically bring up eth0 f86b7c5 documentation/kernel-manual/kernel-how-to.xml: replaced 'pokylinux' with 'yoctoproject' 3b94eb0 documentation/adt-manual/adt-eclipse.xml: Fixed URL with pokylinux.org c904c99 documentation/adt-manual/adt-prepare.xml: Fixed URL for nightly builds fdf077d rsync: upgrade to version 3.0.8 47cb36d openssl: upgrade to version 0.9.8r 2f3c46d libxml2: upgrade to version 2.7.8 305fad5 libexif: upgrade to 0.6.20 feeb3a4 poky-lsb: Add "largefile" feature for LSB distro. 7b59ebe gcc: Add "--enable-clocale=gnu" option for LSB. 7a96ee0 task-poky-lsb.bb:Add locale resoures which is needed by LSB Test Suite eed3bee qemu: Fix the qemu GL application start failure. b0ac556 pango: upgrade from 1.28.3 to 1.28.4 009f88f xf86-input-mouse: upgrade from 1.6 to 1.7 c00288e mesa: upgrade to 7.10.2 d890254 libdrm: upgrade from 2.4.23 to 2.4.25 d02a174 libnewt: fix parallel-make issue 86549fa clutter-1.6: fix tarball md5sum and add json-glib to dependencies 77d2110 xkbcomp: upgrade from 1.2.0 to 1.2.1 010cef6 xf86-input-keyboard: upgrade from 1.5.0 to 1.6.0 15d2144 evieext: upgrade from 1.1.0 to 1.1.1 256c40a xf86-input-vmmouse: upgrade from 12.6.10 to 12.7.0 9145e46 xf86-input-synaptics: upgrade from 1.3.0 to 1.4.0 ce38d36 distro_tracking_fields.inc: update the info for the following recipes 3d43974 preferred-xorg-versions.inc: update libxt, libxi, fixesproto, xproto, xextproto and libpciaccess 481e3cd cronie: upgrade from 1.4.6 to the latest version 1.4.7 f4f2790 libpciaccess: upgrade from 0.12.0 to the latest version 0.12.1 9522cfb xextproto: upgrade from 7.1.2 to the latest version 7.2.0 0c61863 gnome-doc-utils: upgrade from 0.20.4 to the latest version 0.20.5 dce8dc3 xproto: upgrade from 7.0.20 to the latest version 7.0.21 ee20b38 fixesproto: upgrade from 4.1.2 to the latest version 5.0 040e23f libxi: upgrade from 1.4.0 to the latest version 1.4.2 fc1c209 libxt: update from 1.0.9 to the latest version 1.1.1 7fafbe2 oprofileui: upgrade to latest git version 351df14 polkit-gnome: Upgrade to 0.101 (from 0.99) d261874 xz: Upgrade to 5.0.2 (from 5.0.0) 73c8ac9 libcanberry: Upgrade to 0.28 (from 0.26) 8ca68f6 x11perf: Upgrade to 1.5.3 (from 1.5.2) 91ffe00 libsoup-2.4: Upgrade to 2.32.2 (from 2.32.1) 298f1ba documentation/adt-manual/adt-eclipse.xml: Fixed link to autotools. 0e5558a distro_tracking_fields: update for gstreamer, gupnp, telepathy-glib, etc 3abaef5 gupnp: upgrade to version 0.16.0 8d93f7a gssdp: upgrade to version 0.10.0 327c327 telepathy-mission-control: upgrade to version 5.7.9 77546a8 telepathy-idle: upgrade to version 0.1.8 6b788b9 telepathy-glib: upgrade to version 0.14.3 d3c2bcd alsa-lib: upgrade to version 1.0.24.1 6694c35 ofono: upgrade to version 0.45 84e6537 gst-plugins-ugly: upgrade to version 0.10.17 91006c4 gst-plugins-bad: upgrade to version 0.10.21 48b5f10 gst-plugins-good: upgrade to version 0.10.28 4983494 gst-plugins-base: upgrade to version 0.10.32 687f34c gstreamer: upgrade to vesion 0.10.32 6bf6aec gst-plugins-good: add dependency on libsoup-2.4 da2852b README.hardware: automate boot process for router station pro 31bc011 qt4-x11-free: add virtual/libgl for opengl dependency 10a52e0 clutter-1.6: fix SRC_URI[md5sum] a52663e eglibc-package.inc: Add eglibc-binaries, eglibc-localedatas, eglibc-gconvs and eglibc-charmps to variable PACKAGE a67707b Allow JFFS2 image options to be overridden c879c63 autotools: Pass --disable-silent-rules to configure 90f803d ncurses: Remove unwanted package config from previous .inc merge 55d60b1 external-python-tarball: Drop FAKEROOT usage in favour of explicit options to tar 14f4918 bitbake.conf: Drop FAKEROOT variable since its replaced with FAKEROOTENV 309e6f7 bitbake.conf: fix PACKAGE_ARCH[vardepsexclude] b0bf7ef keymaps: Fix MACHINE -> MACHINE_ARCH 2588569 ncurses: Update to 5.9 5a780eb Update trace-cmd and kernelshark distro_tracking c9028da Update distro-tracking-fields.inc for recent qt4 changes a76e81b lsb: fix lic_files_chksum 576de81 distro tracking update 7850838 liburi-perl: update to 1.58 4344df2 chkconfig: Update to 1.3.51 0f673c7 mc: update to version 4.7.5.1 17a6d70 gthumb: update to 2.12.2 f70c25c qmmp: update to version 0.5.0 67a6799 directfb: Update to 1.4.12 7576eba createrepo: Update to 0.9.9 7ddc746 sstate: ensure an ordered mapping between SSTATETASKS and SSTATETASKNAMES e5a40cd qt4: security advisory - blacklist fraudulent comodo certificates ea738ee qt4: replace 4.7.1 with version 4.7.2 21f483a documentation/yocto-project-qs/Makefile: Updated Makefile to include PDF in tar da83cea documentation/kernel-manual/Makefile: Updated Makefile so PDF is in tarball 6a0d070 documentation/poky-ref-manual/ref-bitbake.xml: style tags updated 1cd9b0c documentation/poky-ref-manual/ref-bitbake.xml: BitBake parsing section update e3618e1 documentation/poky-ref-manual/ref-variables.xml: added SSTATE_DIR variable cb2a3e3 documentation/poky-ref-manual/ref-structure.xml: Edits for Rel 1.0 72d7e27 documentation/poky-ref-manual/ref-classes.xml: tag updates bed5b96 documentation/poky-ref-manual/ref-classes.xml: re-write of autotooled packages efaf5d0 documentation/poky-ref-manual/ref-classes.xml: Fix to <filename> tag 5bbffff document/poky-ref-manual/ref-classes.xml: removed <function> tag da283ba documentation/poky-ref-manual/ref-bitbake.xml: type fixed 4ba1991 documentation/poky-ref-manual/ref-bitbake.xml: Grammar fix 3e56fd1 documentation/poky-ref-manual/ref-bitbake.xml: removed 'varname' style 2981801 documentation/poky-ref-manual/ref-structure.xml: bitbake section updated f720dea documentation/poky-ref-manual/development.xml: OProfileUI section updated 108990f documentation/poky-ref-manual/development.xml: Corrected command syntax a771ef7 documentation/adt-manual/Makefile: Added PDF file to the tarball e5e5ff3 elfutils: remove unused variables to fix compilation with GCC 4.6 537e485 desktop-file-utils: Add SRC_URI checksums 44dabb2 distrodata.bbclass: Merge the get_pkg_info.log into checkpkg.csv c5e6ef2 documentation/adt-manual/adt-eclipse.xml: Updated repo URL for Eclipse Plug-in 20c9be4 LSB_Setup.sh: Add function to install all test packages 5983fe1 gst-meta-base: Support http/https remote streams f67fe6f xdg-utils: add xdg-utils to pass the lsb test 751f42b image.bbclass: Disable ldconfig-native when using uclibc 889551a native, nativesdk, crosssdk: reset TARGET_FPU f897723 ldconfig-native-2.12.1: newer recipe with eglibc sources 1418414 libxcb: fix for broken library link in the image d0adbfd image.bbclass: make execution ldconfig verbose 76185eb xproto: Fix configure commandline option whitespace bfcd5d9 docbook-dsssl-stylesheets-native: run install-catalog only during do_populate_sysroot 733c9b9 openjade-native: run install-catalog only during do_populate_sysroot 67f3496 docbook-sgml-dtd-native.inc: run install-catalog only during do_populate_sysroot e659426 Revert "elfutils: fix builds with gcc 4.6" a0933f0 qemu-nativesdk: fix do_configure 22c7a3a qemuppc: add libqtopengl4 for ppc 6cd2074 documentation/poky-ref-manual/development.xml: Edits for Eclipse and Anjuta 5215126 documentation/poky-ref-manual/poky-ref-manual.xml: Updated rev-history table de3e3e2 bitbake.conf: fix MACHINE_ARCH b2d4c65 linux-yocto/meta: cleanup and streamline kernel meta data 0ac1c27 linux-yocto/crownbay: update configuration b77e9b6 db: Switch to patchdir rather than applying in do_configure 4febd37 patch.bbclass: allow importing patches into other dirs 9b2210c xserver-xf86: explicitly disable fop document generation 07dfc5c openjade: fix build with GCC 4.6 9a45389 libx11: disable building of specs 9487fbe xorg-[lib-common|proto-common]: disable use of fop document generation 115ffb9 libx11: add missing SRC_URI hashes 33b4076 python-native: add missing SRC_URI hashes d00a02d elfutils: fix builds with gcc 4.6 1cf0664 libexif_0.6.16.bb: inherit gettext class instead of adding gettext to DEPENDS directly 2e60e62 libcap.inc: Pass SYSTEM_HEADERS to make 182b7a2 gnutls.inc: inherit gettext class instead of adding gettext to DEPENDS directly 1f0e574 gstreamer_0.10.31.bb: inherit gettext class instead of adding gettext to DEPENDS directly 16544ab3 util-macros_1.11.0.bb: inherit gettext class instead of adding gettext to DEPENDS directly 5c494ec libxcb.inc: Replace XCBPROTO_XCBPYTHONDIR to point to staging area 5f12582 clutter.inc: inherit gettext class instead of adding gettext to DEPENDS directly 55a8009 libgpg-error: inherit gettext class instead of adding gettext to DEPENDS directly 7bb111d popt_1.16.bb: inherit gettext class instead of adding gettext to DEPENDS directly b05845f libgdata_0.7.1.bb: inherit gettext class instead of adding gettext to DEPENDS directly d73500f gdk-pixbuf_2.22.1.bb: inherit gettext class instead of adding gettext to DEPENDS directly f9625d2 xz_5.0.0.bb: inherit gettext class instead of adding gettext to DEPENDS directly a48b13c libzypp_git.bb: inherit gettext class instead of adding gettext to DEPENDS directly f8fa83c libuser_0.57.1.bb: inherit gettext class instead of adding gettext to DEPENDS directly 6bcb66d chkconfig_1.3.49.bb: inherit gettext class instead of adding gettext to DEPENDS directly 0a1b99b sed: inherit gettext class instead of adding gettext to DEPENDS directly be9d2ae xorg-proto: inherit gettext class instead of adding gettext to DEPENDS directly 1413f2b gcc-runtime_4.5.1.bb: Do not filter out -feliminate-dwarf2-dups 59565d7 flex.inc: inherit gettext class instead of adding gettext to DEPENDS directly 067d8ac e2fsprogs.inc: inherit gettext class instead of adding gettext to DEPENDS directly 438ec9c liboil_0.3.17.bb: Enable x86_64 unaligned memory access 45e0eab libpam_1.1.3.bb: Fix compilation on uclibc when innetgr is absent 6de1c9a diffstat_1.54.bb: inherit gettext class instead of adding gettext to DEPENDS directly aa0772c bison: Make compilable on uclibc 69f1a6d binutils: Use arm*-*-linux-uclibceabi instead of arm*-*-linux-uclibcgnueabi 08a6cdc gettext_0.17.bb: Use linux-uclibceabi instead of linux-uclibcgnueabi e4ccab9 coreutils_6.9.bb: Remove gettext from DEPENDS 6cbb559 console-tools_0.3.2.bb: inherit gettext cbffd7f telepathy-glib_0.13.6.bb: inherit gettext class instead of adding gettext to DEPENDS directly e172889 galago: inherit gettext class instead of adding gettext to DEPENDS directly b31f9f2 avahi.inc: Conditionalize RECOMMENDS by using overrides 3909b76 recipes: Use -uclibceabi instead of -uclibcgnueabi 434f139 conf/distro/poky.conf: Use -uclibceabi instead of -uclibgnuceabi 023637d site: Add mips-linux-uclibc site file and add to x86_64-linux-uclibc 511abe9 classes: Use linux-uclibceabi instead of linux-uclibgnuceabi for os portion of triplet c888325 sanity.bbclass: Use SSTATE_MANIFESTS instead of hard coding sstate-control 9f20f5e qemu-nativesdk: Refresh glflags patch bcc817e documentation/yocto-project-qs/yocto-project-qs.xml: Edits plus Matt Madison note regarding older host systems 4a38ab5 documentation/yocto-project-qs/yocto-project-qs.xml: cleaned out another "YP" 0e16551 documentation/bsp-guide/Makefile: Updated to include PDF in tarball cb13b57 documentation/poky-ref-manual/usingpoky.xml: [BUGID# 929] - Note added warning about switching up GPL versions 9b046f6 qemu: Add dropped glflags.patch a9441d4 qemu.inc: Add sh4,sh4eb,mips64,mips64el targets 6714db4 scripts/poky-qemu-internal: call stty sane before exit 7e6fb92 README.hardware: remove u-boot flashing instructions for mpc8315e-rdb 37f3ef2 Workaround for Global C++ Constructor problem on ARM 41efbe1 Fix integration of zypper and sat-solver 133f7e8 Fix sat-solver & RPM5 integration issue 2ac89c2 linux-yocto: update base to 2.6.37.6 cddd882 linux-yocto/qemux86-64: enable profiling and latency 0b420da qemu-config: Enable for qemumips/qemuppc db29001 gthumb: Add missing DEPENDS on gst-plugins-base as otherwise gstreamer isn't enabled 2b70d0c bitbake/runqueue.py: Ensure fakeroot env variables make it to the child process 43fe018 poky.conf: Specify QEMU_TARGETS explicitly for now c564fb0 runqueue: simplify fakeroot environment handling 31521d7 More 'is' fixups 67fac77 Fix more incorrect usages of 'is' 626b96e codeparser: use ==, not 'is' to compare strings af0163c bb.siggen: import os 8fae39c utils: fix typo in lockfile d38968c lockfile: ask for forgiveness, not permission 77513ee goggle: exit quietly on ^C 6f4fbfe clutter-box2d: add version 0.10.0 for use with clutter 1.6 71e8cc5 clutter-gtk: remove duplicate gtk+ DEPENDS entry 077f96a clutter-gst: add 1.3.6 for use with clutter 1.6 c35a59b clutter: add 1.6.8 7af9e33 documentation/yocto-project-qs/yocto-project-qs.xml: removed (YP) acronym b4268c0 bitbake/runqueue: fix clash when setscene & real tasks done in same build 68baef9 package_rpm: Ensure we take the sstate shared lockfile in the place we write files 2f0c06a sstate: Add support for taking shared lockfiles e7f52f8 image.bbclass: Remove uneeded do_populate_sysroot requirement for images 89fee17 image.bbclass: Add dependencies on native versions of update-alternatives and updated-rc.d explicitly b5e03a1 base/kernel/image.bbclass: Clean up do_deploy ordering to ensure it just happens before a build completes 4d04155 bitbake.conf: Disable -feliminate-dwarf2-dups flag until it works with prelink and other issues are resolved 9281315 linux-yocto/meta: fix SRCREV e41671e Revert "bitbake/gcc: Enable a shared common source tree" bf799e3 poky.conf: Add missing POKY_EXTRA_RDEPENDS qemu changes for mipc/ppc 5748758 qemu: Fix file rename from version upgrade 12b163d bitbake/gcc: Enable a shared common source tree afd2859 documentation/adt-manual/adt-prepare.xml: Added instruction for building ADT tarball 0cb23cb poky.conf: Bump to post 1.0 version 38dec4f documentation/yocto-project-qs/yocto-project-qs.xml: [BUGID# 931] - Removed Fedora 14 bitbake native note b187d59 documentation/yocto-project-qs/yocto-project-qs.xml: Bug reference added courtesy Colin Walters fee7f56 README.hardware: add Freescale MPC8315E-RDB; other minor tweaks 7c62b36a qemu: Upgrade 0.13.0 -> 0.14.0 fcb1b5a gnutls: add BBCLASSEXTEND = native 74e58bb linux-yocto: update to 2.6.37.5 fd42d1c image_types.bbclass: Drop IMAGE_EXTRA_OPTION in favour of the more standard EXTRA_IMAGECMD ed41be0 bitbake.conf/image.bbclass: Move image type information into image_types.bbclass f853923 base-files: Remove sysctl.conf file. This is now provided by the procpc recipe. adac5a6 image.bbclass: Move ROOTFS_SIZE into runimagecmd() function b94de9a image.bbclass: Improve readability of the image generation code 25a6e5f sstate: use only unique set of SSTATETASK c106bb6 kernel.bbclass: blacklist 'kernel-misc' from kernel-modules b6b9f7a gcc-runtime_4.5.1.bb: Fix ICE in gcc-runtime with -feliminate-dwarf2-dups 54d46cb machine/include/tune-atom.inc: Remove FULL_OPTIMIZATION_pn-gtk+ 5ea06dc bitbake.conf: Prune global OPTIMIZATION flags a93b0e7 coreutils: Switch to disabling gmp support 36f899f checksums.ini: Delete 158de41 Various: Switch to SOURCEFORGE_MIRROR d56080f Various: Update KERNELORG_MIRROR for consistency 4f85b60 Various: Switch to KERNELORG_MIRROR bc7967f Various: Switch to using GNU_MIRROR 92e8ef0 Various: Switch to GNOME_MIRROR 081adf9 net-tools: Switch to using DEBIAN_MIRROR 0af5e13 perl-native_5.12.2.bb: Fix compliation on ubuntu 11.04-alpha 112f153 scripts/poky-qemu-internal: Add rw to KERNCMDLINE for non nfs boots as well 3b0fa0f scripts/poky-qemu-internal: Pass -m <mem_size> always on commandline 7eab4ae lib/oe/patch.py: Cosmetic change to avoid bitbake warning 354d85d oe.utils: add inherits (sync from OE) c9d1e20 oe.path: sync up with current OE 21a3b6d oe.patch: add missing imports fb02ca3 oe.utils: add bb, bb.data imports dd3a1d3 Shift a few env bits into scripts/bitbake 99aaf15 scripts/bitbake: add -g/--graphviz to NO_BUILD_OPTS bfd7283 native: empty PACKAGES_DYNAMIC the way we do PACKAGES d5f96d2 poky-init-build-env: unbork for zsh 2661565 bitbake.conf: replace unused/broken E_CVS/E_URI with E_MIRROR/E_SVN used in OE a295a04 bitbake.conf/tune files: Adjust PACKAGE_EXTEA_ARCHS 3b49416 kernel/bbclass: rework kernel and module classes to allow for building out-of-tree modules ab44c22 msmtp: add link sendmail for lsb command check 38a5f61 qemu: enabling the alsa driver needs alsa in DEPENDS, add it 34c644e alsa-lib: extend to -native for qemu-native aeaa356 xserver-nodm-init: Mark as machine specific after recent rootless X changes 273cfec sstate: Ensure a clean removes setscene stamps as well as the main task stamps 6243230 - documentation/poky-ref-manual: Notes added for non-GPLv3 builds c029855 qemu: make warning messages consistent in format dd2f9f6 qemu: warn user if nVidia libGL is detected (leads to qemu segfault) 94786e1 db: Fix path of arm-thumb patch debcc6c initscripts: Make umountfs a bit more robust, bump PR 07f7dc4 nfs-utils: fix "sh: bad number" error on start/stop of nfsserver c52c66b busybox: enable unmount all feature 0a209fe documentation/yocto-project-qs/yocto-project-qs.xml: Note added about proxy a11c6b2 documentation/yocto-project-qs/yocto-project-qs.xml: Added references to FAQs 8bfcc85 documentation/yocto-project-qs/yocto-project-qs.xml: 1.0 edits applied to examples dcf0091 documentation/yocto-project-qs/style.css: Updated note text color 54060da documentation/yocto-project-qs/style.css: Updated styles d3e1e52 - documentation/yocto-project-qs/yocto-project-qs.xml: added groff package 16e1f10 sstate.bbclass: Turn absolute symbolic links into relative ones for sstate packages d2658c8 README.hardware: update for 1.0 release cb5e513 documentation/poky-ref-manual/faq.xml: Added entry about proxy and firewall a0f3430 documentation/poky-ref-manual/extendpoky.xml: Formfactor path corrected f228642 documentation/poky-ref-manual/extendpoky.xml: small edits 8e05cca documentation/poky-ref-manual/usingpoky.xml: Small edits d3491aa documentation/poky-ref-manual/faq.xml: Added three FAQ entries 2a144f8 documentation/poky-ref-manual/usingpoky.xml: More BitBake changes fa272d0 documentation/poky-ref-manual/usingpoky.xml: grammar fix and BitBake fix a415263 documentation/poky-ref-manual/introduction.xml: Wording and release update 28a9824 documentation/poky-ref-manual/introduction.xml: Removed link 58280a6 documentation/poky-ref-manual/faq.xml: Spell Check 98d2039 documentation/poky-ref-manual/poky-ref-manual.xml: Updated title page a8927a0 documentation/poky-ref-manual/style.css: Updated to match other manuals 885415f documentation/poky-ref-manual/extendpoky.xml: Spell check 5622f54 - documentation/poky-ref-manual/extendpoky.xml: Added text for choosing server 75c5760 bitbake.conf: Increase image overhead factor to account for rpm/zypper database size e235357 sanity.bbclass: check for duplicates in PACKAGE_ARCHS aa51d03 documentation/kernel-manual/kernel-how-to.xml: Spell checked b631f48 documentation/kernel-manual/kernel-manual.xml: Updated the title page eab4c5c documentation/bsp-guide/bsp.xml: Spell check 57ef2ef documentation/bsp-guide/style.css: Updated Style Sheet 609e497 documentation/bsp-guide/bsp-guide.xml: Updated Title Page f85645d documentation/bsp-guide/figures/bsp-title.png: Updated PNG file for title 4957992 util-linux: Setup for GPLv2 Recipe 21d5d3c coreutils-6.9: fix man page building for the gplv2 recipe 97d3dde toolchain-scripts.bbclass: Added --sysroot to CPPFLAGS. 34869c6 slang: specify --x-includes to pass qa sanity check 2a3ff59 bitbake.conf: add POKYBASE to BB_HASHBASE_WHITELIST 3072c24 gettext: Upgrade GPLv2 version to 0.16.1 490bbfb poky.conf: remove gnome-common from WHITELIST_GPLV3 59b059d poky.conf: add additional Libraries to the LGPLv2 Whitelist 7958e40 poky-image-basic: remove POKY_BASE_INSTALL 8c9385c extended tasks: move binutils from basic to lsb caf671e gnome-vfs: Force acl to be disabled since its not a dependency a440c63 ADT: bug fix for nameing and do_patch sequence 06c755c gnu-config: Use perl from the environment, not a hardcoded path 7e2d385 gtk+: remove per-machine gtk+ FULL_OPTIMIZATION in favor of tune-atom.inc 3526000 atom-pc: work around gcc bug for core2 e657801 m4: bring back GPLv2 version 1.4.9 of m4 recipe 9ee33a8 bison: bring back GPLv2 version 2.3 of bison recipe ac9b83e documentation/adt-manual/adt-manual.xml: Updated front matter d2c0ce4 documentation/adt-manual/adt-eclipse.xml: Re-inserted Autotools plug-in requirement. 3046a96 sanity: detect if bitbake wrapper is not being used or pseudo is broken 275241e sat-solver: Fix solution DB generation and general cleanup 129c624 openjade-native: Run make depend to ensure dependencies are correct and avoid parallel make failures 7517529 package.bbclass: Fix missing debug src files f8ba275 rpm: Disable repackage on upgrade/erasure by default 4397400 sat-solver: Add workaround for RPM 5 db construction 5485746 sat-solver: uprev to the latest version 2a852d0 libzypp: Fix release query ff03a51 rootfs_rpm.bbclass: Add additional system configuration to RPM space b26640f bitbake docs: use dblatex to build the pdf bitbake manual b65a336 oprofileui: upgrade to latest git version. 0c6a50b poky-image-basic: add ssh-server-openssh to IMAGE_FEATURES e004e51 poky-image-lsb: add ssh-server-openssh to IMAGE_FEATURES 3201ab7 poky-image.bbclass: add ssh-server-dropbear to SATO_IMAGE_FEATURES 3f1e50b poky-image.bbclass: add new IMAGE_FEATURES for ssh servers 6b088d6 task-poky-ssh-openssh: new task recipe for openssh ssh 0c62497 task-poky-ssh-dropbear: new task recipe for dropbear ssh 849c862 task-base, task-poky-basic, task-poky: Remove hard-coded references to dropbear a1f722a slang: export INST_LIB_DIR to fix compile problems 2bbeab2 formfactor: Assume HAVE_TOUCHSCREEN=0 9a9ebb0 documentation/adt-manual/adt-eclipse.xml: Specified qemu options outside of brackets. 082adfc documentation/adt-manual/adt-eclipse.xml: Removed Autotools plug-in requirement d9775d5 documentation/adt-manual/adt-command.xml: Initial draft of command line chapter f30b84c documentation/adt-manual/adt-eclipse.xml: Initial draft for Eclipse chapter. ff51a34 documentation/adt-manual/adt-package.xml: Initial file 2f45421 documentation/adt-manual/adt-prepare.xml: Initial draft of preparation chapter b9217b5 documentation/adt-manual/adt-intro.xml: Initial text 8ff09c0 documentation/adt-manual/style.css: Changed PNG file in the title page style 4a8b398 documentation/adt-manual: cleaned up labels in chapter files a875b2e documentation/adt-manual/Makefile: Initial Makefile 3bc2668 documentation/adt-manual/adt-manual.xml: Initial file 8605fee documentation/adt-manual/figures: Added title PNG file, deleted kernel title PNG file. 3258234 documentation/adt-manual: New file structure for ADT Manual a4c6bcb matchbox-desktop: add configure event handler to fix bug 658 9a1ee6d send-pull-request: Fetch TO email address from git config if specified c6d6e49 u-boot.inc: allow variable make targets bd161f7 tune-atom.inc: Remove duplicate TARGET_ARCH entry to avoid ipk rootfs issues as temp workaround for problems pending a proper fix e70f689 package-index.bb: Added missing dependencies. 6b16a5f xserver-nodm-init: add xuser to group audio ed1cbc9 sstate.bbclass: always delete stamp files in sstate_clean cbbf658 sstate.bbclass: avoid deleting unrelated stamp files cc4bf81 task-poky-lsb: Add some packages required by lsb test suite 509364e kernel bbclass: split do_compile into do_compile and do_compile_modules ae92383 util-linux: move remaining files from files directory to util-linux-2.17.2 for faster lookup c52c218 util-linux: remove unused files from util-linux-2.17.2 directory 2fd7022 util-linux: remove unused files from files directory 9d9c68e bitbake/runqueue: show correct task name for setscene task failure 4c695db bblayers.conf.sample: include meta-yocto in default layers 50bb373 qemux86-64: Enable latencytop and profiling (temporary) ff1ab05 own-mirrors.bbclass: Bring own-mirrors.bbclass from oe commit 0ef914b250df46a41348479446214575668943fb 3c54f46 netbase: Upgrade version 4.44 to 4.45 fe3cc9a cairo_1.10.2: Fix DEPENDS to include glib-2.0 de796d5 sanity.bbclass: Fix inverted mmap_min_addr logic 257a9ed Update SRC_URIs to use BPN instead of PN 4f5b57c documentation: Kernel Manual fixes 5ef65bd documentation: BSP Developer's Guide fixes f11e479 poky-qemu-internal: force oprofile into using timer interrupt mode for qemux86/qemux86-64 for now 1db41d8 adt: fix ppc/powerpcc naming bug 367db42 qemux86-64: set qemux86_64 as package arch name d578d74 zypper: add machine arch support 764f68c libzypp: add machine arch support 023c43b sat-solver: add machine arch support 7da9f27 bitbake/xmlrpc: only use BBTransport for affected Python versions e58b3a4 bitbake/bitbake-layers: fix to run with recent changes ff3e326 bitbake/hob: fix cancel button 3c113f3 bitbake/cooker: don't error in prepareTreeData for unbuildable targets 4817a48 perl: another set of parallel build fixes 43a2d09 openssh: allow the openssh meta package to be empty 84b877b gcc-runtime: Fix dbg files c180383 package_rpm: Fix rootfs generation d8a82c2 package.bbclass: Change the debug directory to avoid conflicts ea99160 linux-yocto: update to 2.6.37.3 08ae53f gst-plugins-good: remove dependency on hal b369300 autotools.bbclass: Fix automake file race issues f776bc6 Disable wget server side cache 30dbfde gst-plugins-bad: add missing dependency librsvg 70cd64a gcc/collect2: Added --sysroot support into collect2 in gcc. 10ce85a tinylogin: Fix rotate passwd check logic 2c52b65 gcc-runtime: Ensure that gcc-runtime builds a debug package 360f082 telepathy-python: Fix parallel make issue. 45a5104 distro_tracking_fields.inc: update the info for oprofileui b8da666 oprofileui: upgrade to the latest version maintained by the Yocto project 5a7466a gcc-configure-runtime.inc: Add immediate evaluation otherwise it ends in circular dependency 0c6595a distutils-base: Only RDEPEND python-core on target packages 1697ae6 debian.bbclass: call auto_libname in reverse sorted AUTO_LIBNAME_PKGS a54f4b6 python: add generate-manifest-2.6.py script and regen python-2.6-manifest.inc cbbfbfc gcc-runtime: fix LSB library checks for libstdc++.so.6 4f28cd2 bitbake/fetch2/local: Fix inverted update required logic fab742b quilt: add autotools inheritance 0a011ca util-macros: fix DEPENDS for nativesdk a778fb3 bitbake/fetch2: Allow local file:// urls to be found on mirrors fc1b893 sstate: Ensure the SRCURI fetcher cache is not used for sstate 6030fd7 sanity.bbclass: Check for /proc/sys/vm/mmap_min_addr to be >= 65536 bd32707 sanity.bbclass: some multilib systems have symlink /lib -> /lib64 6360097 poky-default.inc: Change LINUXLIBCVERSION "2.6.36" -> "2.6.37.2" 7b72bbc adt: removed unused repo source and opkg options 8828e75 cpio: Fix the SHA256 Checksum for the src tarball 61125e0 connman: add xuser to the dbus permission list 56e4179 adt: Update to svn r596 to fix symbolic link issues 4f87eef lsb-live image: add lsb-live and lsb-sdk-live image types 7c474dc attr: Added ncurses to depends f127151 gst-plugins: Added hal to DEPENDS 9ebf8f9d linuxdoc-tools-native: Fix build error with txt documentation b43e5d3 toolchain-script.bbclass: Added --sysroot to LDFLAGS. 2a285e6 util-macros: add libgpg-error to DEPENDS list 4709af7 lsbsetup: Fix LIC_FILE_CHKSUM 2fc03ae elfutils: add bzip2 to DEPENDS dc7e00d task-poky-lsb: Remove new eglibc-* packages ae2896a linux-yocto: update machine configurations abea71b task-poky-lsb: Add packges needed by LSB Test Suite f092542 creat-lsb-image: Add some functions for creating a appropriate image to make lsb test b816034 documentation/kernel-manual: Kernel manual Style changes cae622c documentation/kernel-manual/figures/kernel-title.png: Updated title graphic 87290a8 x11vnc: fix the endian issue in mips for bug 782 0bc2441 qemu-script: Remove mmap_min_addr check ed735a4 task-poky-lsb: add python-misc 2140c9d hello-mod: add a module for testing module.bbclass 5c0df11 module: build hostprogs for each module 60ce101 LSB_Setup.sh:Install LSB Test Suite and set lsb test environment 8af3868 distrodata.bbclass: Get git repo tag information 4e1ba86 distro tracking: Updates to Tracking infor for clutter and other changes 5b23b7f meta-yocto: Add layer.conf b0dec83 meta-yocto: Move files inappropriate to OE-Core from meta dabd5de Fixup merge error and apply cleanups bd9b65d rpm: Fix linking error encountered in rpm-native 18420c4 qa.py: Fix a typo when evaluating bitsize d94abab poky-env-internal: Add FETCH2 enablement a7d8613 task-poky-lsb: add chkconfig 02b49e3 recipe: add slang from OE 7eccde3 recipe: add newt from OE b9c46b3 recipe: add chkconfig for LSB command test 9e6b1ac ADT: Bug fix for Suse Linux e4ca5a0 Add libtool-nativesdk for ADT 1c48f52 gstreamer: install the sound card driver of es1370 72afe30 sato-icon-theme: Explictly use "Sato" as gtk icon theme 7e850ac x11vnc: Fix the start failure 763d783 libpcre: fix the name collision with libc 05d1ac2 bitbake-layers: drop 2.6 from #!, per Joshua Lock 54e1012 fetch, fetch2: Get rid of DeprecationWarning notice c07a153 build: add missing newline 043b704 build: switch to old cwd handling 78c2b79 insane.bbclass: Fix ELF bitsize comparison 23ecbad kernel: remove explicit bash call in do_menuconfig 4b912a5 screenshot: change the order of LDADD arguments bc009ed gcc: take out libiberty files from gcc packages 1672546 zypper: add util-linux-uuidgen to RRECOMMENDS c52f8f4 util-linux: split out uuidgen to a separate package eccbe89 documentation/bsp-guide/bsp-guide.xml: Updated revision history on title page. 5aa6e52 documentation/bsp-guide/bsp-guide.xml: Updated RP email address 86c7761 - documentation/bsp-guide/figures/bsp-title.png: Updated title graphic 7d4fd5f - documentation/bsp-guide/bsp.xml: Re-write of click-through 07b557f - documentation/poky-ref-manual/resources.xml: Fixed pokylinux URL bcef6f9 documentation/poky-ref-manual/resources.xml: Text addtions in Links section in Appendix I b9032a2 - documentation/poky-ref-manual/resources.xml: Fixed pokylinux URL fa927ab - documentation/poky-ref-manual/faq.xml: Fixed pokylinux.org reference 2206fe6 - documentation/poky-ref-manual/development.xml: Fixed pokylinux.org URL e20dbfc - documentation/poky-ref-manual/development.xml: Fixed pokylinux URLs f3818a3 - documentation/poky-ref-manual/introduction.xml: fixed pokylinux.org URL 4a1f8f6 - documentation/poky-ref-manual/introduction.xml: Fixed pokylinux.org URL 74ed1b4 documentation/poky-ref-manual/introduction.xml: [BUGID# 553] - Fixed pokylinux URL b4d564c documentation/poky-ref-manual/introduction.xml: [BUGID# 553] - Fixed pokylinux.org link in Nightly Build section 2a2e324 documentation/poky-ref-manual/ref-images.xml: Update to Images Appendix fb7955b sqlite3: Update version 3.7.3 -> 3.7.5 ea63409 qemu-0.13.0: Add patch to avoid mmap_min_addr 9a448fb linux-libc-headers_2.6.37.2.bb: Add checksums d868a6a lib/oe/path.py: Use bb.utils.mkdirhier instead of bb.mkdirhier 0f44acf u-boot: remove do_install from u-boot.inc cad40f4 ADT: Fix several bugs for adt installer f3a482b shadow: upgrade to 4.1.4.3 to fix security vulnerability 0e1f8c2 ncurses: Change ncurses patch SRC_URI location 1044dad attr: Change SRC_URI to a correct location f8ca238 base/utility-tasks.bbclass: Drop do_setscene and do_rebuild dfc6cce distro_tracking_fields.inc: add transfig and linuxdoc-tools recipes a3ce87b distro_tracking: update for newer packages added aa2aa9c populate_sdk_rpm.bbclass: Add the necessary solvedb lock 1b08a7e bitbake/cache/runqueue.py: Move workload for recipe parsing to the child process d5e12a1 task-poky-lsb: libqtopenqgl4 should be for qemux86 and atom-pc only 5659f96 linux-yocto: add crownbay BSP infrastructure 136ba6a Fixing type: license.bbclass 4e779e8 Fix to the libtool LICENSE field: libtool.inc d041ab3 Fixing my bad license parsing: license.bbclass 00dee01 libxml-parser-perl: remove FILES_${PN} 58b56fe task-poky-lsb: add necessary packages name 4a1e2b1 prelink: Add missing macro.prelink file 3c0522e [BUG:650] Fix LICENSE parsing: license.bblcass 16b8f96 linuxdoc-tools-native: disable doc builds requriing latex and dvips 7943338 file: add wrapper to file-native 9c63e3f utils.bbclass: add new wrapper script 73553e7 rpm: Fix rpm-dbg package split 6c6d4f4 rpm: Fix rpm usage of prelink on the target 08c8f7b rootfs_rpm: Fix rootfs generation using RPM packages a157aab linux-yocto: update to 2.6.37.2 7738e86 bitbake/hob: only show one progress dialog when changing machine 3edadc9 package.bbclass: Rewrite package_do_filedeps() to reduce the amount of subprocesses created and improve speed e26e8ea conf/machine: Use linux-libc-headers instead of linux-libc-headers-yocto 6ec769f linux-libc-headers: Update to 2.6.37.2 b40b193 package.bbclass: Fix debug sources directory creation to reference the target system 40ea19d package.bbclass: Refactor split and strip function 16102e1 Revise stripping and splitting of debug information 2d87d52 poky-image-lsb-sdk.bb: add image for LSB SDK Build 9166b9e bitbake/utils.py: Only try and add read access to a file if we don't have it b931aaa documentation/yocto-project-qs/yocto-project-qs.xml: Added Copyright dates f6fdcb6 documentation/kernel-manual/kernel-manual.xml: Updated copyright date efab5b1 documentation/bsp-guide/bsp-guide.xml: Updated copyright fa07928 documentation/poky-ref-manual/poky-ref-manual.xml: updated copyright date 020967e Emenlow Removal from Poky Core: meta-emenlow 0897b00 poky-qemu: handle cases where an nfs directory contains -image- 1cf7d6c libuser: enable documentation d7d53a5 linuxdoc-tools-native: new recipe v0.99.6 fa1e7d5 package.bbclass: Ensure dependency version information is preserved 2069a29 bitbake/utils.py: Allow join_deps to return a list that isn't comman separated 0d0279a package.bbclass: Use hard link for package split instead of copy aba80f5 dropbear: add SRC_URI checksums 92d5e6c bitbake/codeparser: fix raising of ShellSyntaxError 0b17cbc package.bbclass: Unbreak per file dependencies and blacklist doc packages 2f6b66b gtk+: disable build of faq and tutorial docs efce51e Suppress useless warnings during udev startup 9eb9125 perl: import parallel build fixes from upstream git tree 0023e32 poky-qemu: Update -sdk image name due to recent change to sato-sdk 2052224 poky-setup-builddir: Update references to the manual 08c7a59 bitbake/cache: bump cache version after recent changes f258ced bitbake/progress: make progress dialog modal for parent window 6dbceb0 bitbake: Add new UI hob, a prototype Gtk+ GUI for creating images c2814ca bitbake/cooker: don't drop possible_world ref count fb62c54 bitbake/progress: add method to pulse the progress bar 7f8aa69 bitbake/crumbs: update documentation header b14cda6 bitbake/event: fix some whitespace issues 9b43eaf bitbake: introduce crumbs.TaskListModel a gtk.ListStore subclass a13304e bitbake/[cooker|cache]: cache summary, license and group. Add to targets tree 3c1a3b0 bitbake/cooker: reduce code duplication dcfc5ae bitbake/cooker: add generateTargetsTree method 3939a21 bitbake: implement command to find configuration files for a config variable 1b3eb0c bitbake: implement command to get all possible targets and their dependencies 920c402 bitbake/cache: store a list of inherited files in the cache 6d261a5 Ensure Bash is used when spawning terminals edd64c7 bitbake/server/none: fix getEvent() to return events febb7f2 bitbake/server/none: remove leftover XMLRPC bits from none server c6406a0 poky-lsb.conf: remove OVERRIDES 982955e mtd-utils: Set the revision to use explicitly else failures occur with BB_NO_NETWORK 5a8ffee poky.conf: Weakly set PREMIRRORS 33fbf0f poky-lsb.conf: Add DISTROOVERRIDES variable for poky 404afff bitbake.conf: Add DISTROOVERRIDES variable e98c515 xserver-nodm-init: add rootless-x support 8d1847a xf86-video-intel: add config option to support rootless X 0697f34 documentation/poky-ref-manual/faq.xml: [BUGID# 628] - Added new question for Python 2.6 requirement. 92de0ed documentation/yocto-project-qs/yocto-project-qs.xml: [BUGID# 628] - Added note about Python 2.6 bitbake requirement adbaae2 distrodata.bbclass: Fix some issues when checking upstream version on sourceforge 6abfee7 linux-yocto: enable audio for selected qemu targets dca876b openjade-native: run install-catalog from SSTATEPOSTINSTFUNCS ceb8863 docbook-dsssl-stylesheets-native: run install-catalog from SSTATEPOSTINSTFUNCS 8cc18e6 docbook-sgml-dtd-native.inc: run install-catalog from SSTATEPOSTINSTFUNCS fa6e786 sstate.bbclass: add SSTATEPOSTINSTFUNCS 91c0b3a bitbake/build.py: Fix TaskFailed parameters 101b599 bitbake/data_smart: Improve Variable expansion error handling 6ea24f0 bitbake/data_smart: Improve the way lazyassignment works 707132c bitbake/fetch2: Ensure SRCREV_pn-PN is checked for a revision when the SRC_URI is unnamed 56a9210 bitbake/cooker: Fix parsing failure zombie problem c0f0a8e bitbake/BBHandler: Improve handling of multiline comments and warn users of the change be92622 Remove all comments from multiline expressions (as mentioned in bug #704) d26cbff qemu: enable audio support e2dbad7 mklibs-native: fix the build on Ubuntu 9.04 by defining STT_GNU_IFUNC 9a28ad6 package_deb.bbclass: Place the whole task under fakeroot context to fix build failures b43af18 gst-meta-base: add uridecodebin library support e79a8a6 linux.inc: remove the obsolete linux.inc kernel recipe include 3b16625 linux-2.6.33.2: remove linux-2.6.33.2 recipe 0fff049 linux-2.6.23: remove the linux-2.6.23 recipe 7bae946 zaurus: remove zaurus linux includes 7537f44 ADT: Fix check_result script cond comparison bug 6148562 distrodata.bbclass: Fix some bugs for rpm,icu and quicky recipe when checking upstream version 489465b libtool: avoid absolute pathnames of general utils 3c314b9 linux-yocto: update to 2.6.37.1 4b6de47 bitbake/runqueue: Drop PATH override. This was needed for the exec() change but not now we use fork() ac7aa94 tar.inc: Fix unintended damage f6ae606 tar-replacement-native: Fix install 577dd4b tar-replacement-native: Add a target to replace the default tar 05c4692 siggen: add bb.data, bb.parse imports c538800 uihelper: import bb.build, kill commented lines 5f73918 runqueue: simplify RunQueueStats.copy 0f42f6b runqueue: pass a copy of the RunQueueStats to events ec071ac rm_work.bbclass: Improve handling of noexec tasks b42273a lib/oe/path.py: Add expection class to handle the output argument 0a8f4f4 rpm: Increase the number of solvedb's allowed 9f0f7c4 documentation/kernel-manual/kernel-how-to.xml: Changes to section 3.4.4 and new 3.4.5 07c159f documentation/kernel-manual/kernel-how-to.xml: fix to step 3 and 4 of section 3.4.4 6500cef documentation/kernel-manual/kernel-how-to.xml: Fix to step 3 of section 3.4.4 7c06c4f documentation/kernel-manual/kernel-how-to.xml: Fix to step 1 of section 3.4.4 c168c52 meta/lib/oe/path: Use check_output for subprocess so we can see error info. Import code to be python 2.6 compatible. 8048b71 local.conf.sample: Handle the case the user incomments a machine entry and expects it to override the default 673abd9 conf/machine: Drop older machines with no recent updates fed61be local.conf.sample: Update MACHINE list to match our website and documented supported list 359a4d8 bitbake/runqueue.py: Move SIGCHLD handler to wrap none server sleep call 1575113 gstreamer: reenable PARALLEL_MAKE 3810796 openssl: fix parallel make c35d910 connman-gnome: Enable config menu popup even services are not available 6f286cc recipe-core/meta/meta-toolchain.bb: Set correct value for CONFIG_SITE. 6dc50b1 toolchain-script/populate_sdk/meta-toolchain: moving common code. f09f8f4 toolchain-scripts.bbclass: Added libtool sysroot support. 40ed271 gtk+: Fix build of documentation 0bc7de5 docbook-utils-native: set SGML_EXTRA_CATALOGS in jw 6547f62 openjade-native: Set datadir explicitly 561c7a8 docbook-dsssl-stylesheets-native: add missing files to install 265bd1c perl-native: fix parallel build 27894c5 libc-package.bbclass: Disable lib packaging dependenies for libc-initial versions 107f25a buildstats.bbclass: Remove unneeded debug output d5de622 gypsy: Convert SRCREV to a git revision instead of an svn one after recipe migration 7b9ae9c perl perl-native: turn on parallel make 582ec95 lttng-viewer: Fix rootfs contruction fb9dd99 iputils: enable generation of man pages f5d2b58 opensp: improve configuration and install steps 1cd61f6 docbook-utils-native: new recipe v0.6.14 1e24e9c sgml-common-native: fix license info and checksum fields e4031f8 texinfo: recipe cleanup, add native support 5df1534 eds-dbus: reenable PARALLEL_MAKE bcb5695 pango: reenable PARALLEL_MAKE 485aa3a ncurses: reenable PARALLEL_MAKE d559134 gettext: reenable PARALLEL_MAKE afd4169 linux-libc-headers-yocto: Added RPROVIDES. 10c7ca4 poky.conf: make the WHITELIST for INCOMPATIBLE_LICENSE overridable ab0e1be package_rpm: Fix solverdb generation 110f1f9 image.bbclass: Disable shell debug messages 4ac789b rpm: Avoid fsync when writing files ca649ef rpm: Add the ability to use the platform file during install 0e4aa13 Doing uname without subprocess: buildstats.bbclass 095944a mkfontdir/font-alias: Fix native RDEPENDS 5a7024e sqlite3-native: Drop dependencies on ncurses and readline plus enable in memory temporary tables 3ef2d39 bitbake/fecth2: Ensure BB_FETCH_PREMIRRORONLY being set as false is handled correctly 7e4c694 bitbake/runqueue.py: Ensure child has the default SIGCHLD handler restored 974ea1a bitbake/runqueue: When we successfully fork off a task and there are more processes we can start do so immediately 5a178b5 bitbake/runqueue: When we have successfully collected a pid value return True to ensure we don't sleep in the main loop 03d40a4 bitbake/runqueue: Add a SIGCHLD handler to ensure we wake from sleeps for SIGCHLD events 579eccc bitbake/cooker: Ensure delays are accurately transfered to the idle loops from runqueue 5c4e290 buildstats.bbclass: Fix expand call syntax 770f832 buildstats.bbclass: Save ended time in TaskFinished events 58e878c linux-yocto: add jasperforest BSP and fix lttng NMI bug f7cb823 README.hardware: update the beagleboard serial port documentation e0f49d2 linux-libc-headers-yocto: disable device tree generation a824232 buildstats: Disable uname subprocess call for now since it appears to be breaking runqueue somehow 21c112c Merge branch 'srifenbark/docs' of ssh://git.pokylinux.org/poky-contrib e5e02f3 gypsy: Change gypsy upstream repo address 4110560 Buildstats commit: buildstats.bbclass 647aaad documentation/kernel-manual/kernel-how-to.xml: More changes to the creating BSP section. 05ac368 documentation/kernel-manual/kernel-how-to.xml: Fixed type 09e2aac documentation/kernel-manual/kernel-how-to.xml: - Condense and merge example changed. 2a8c4a3 documentation/kernel-manual/kernel-how-to.xml: [BUGID# 597] Reversing common-pc-standard f8c5a63 documentation/yocto-project-qs/yocto-project-qs.xml: [BUGID# 631] - Added tip for saving disk space during a build. 721a934 documentation/kernel-manual/kernel-how-to.xml: [BUGID# 597] Fixed common_pc 6cb8fd6 process.py: Avoid deprecation warning ebe2a5d xpsb-glx: add libxfixes and libxdamages to DEPENDS c600ea7 libva: add libxfixes to DEPENDS e95ab29 kernel.bbclass: add approproate X Environment variables to allow xterm to start a26163b bitbake.conf: change revision fetching to use newer fetch2 code d050560 distro tracking: minor fix to mc lastest version f87603f dbus: change owner and mode for dbus-daemon-launch-helper in postinst 44e17ea wpa-supplicant: change dbus interface b9a97e0 bitbake/fetch2: Revert part of the unpack change until the issues with it are resolved 92a9d59 recipes: pre/post actions 6f6bffe package.bbclass: Breakout the strip from the populate_packages 9849e70 busybox: Rework busybox to fix limitations in initscripts 3faa635 fetch2: unpack revision e56f63a openjade: fix build issues 293b023 mirrors.bbclass: Ensure we don't overwrite any existing MIRRORS variable 029f19b bitbake/fetch2: Add explict network access exception and handling to give users usable error messages 4a22646 bitbake/fetch2: Fix message about md5 checksums when sha256 is incorrect 0f6efe9 lttng-control: Fix SRC_URL to point at lttng.org dc9cae2 puzzles: Update to r9084 132ec8d bitbake/fetch2: Fix patch merge error a72d494 bitbake/fetch2: Add some debug output so its clear when PREMIRRORS, upstream and MIRRORS are being used 20afb21 bitbake/fetch2: Ensure network access status is reset for each loop iteration in download() 49a18f1 sstate: Fix bugs after new fetcher 05d8b64 bitbake/fetch2/wget: Fix missing string parameter reference ea70c43 bitbake/fetch2: Ensure failed fetch attempts are logged in the debug logs 7f30131 bitbake/fetch2: Correctly handle git mirror tarball fetching 20ab1cb bitbake/fetch2: Pass over malformatted (empty) mirror url lines 96aeec4 meta: Update mirror urls to new format and update yocto project urls 8e93b53 linux-dtb.inc: Fix package name to match PACKAGES b42ba2f bitbake: Remove bad commit hunk from old cvs fetcher 14dea89 fetch2: Correct the clean() mechanism for the fetcher2 code f1bbea4 Export KRB5CCNAME variable aacbe3f Fix comparison with SRCREVINACTION constant c68c5f6 persist_data: kill unreachable break line afdbb02 bitbake-layers: fix bug with env vars leaking in 882ac1a cache: fix docstring usage 68bd406 Add initial bitbake-layers script 1385162 persist_data: loop on database lock for table creation 4af3191 xkeyboard-config: make depend on intltool-native 2501ff2 local.conf.sample: Drop some comments about things that either no longer apply or are obsoleted (now we have -dbg packages) d2cfd3c qemuimagetest: Rename test scenario file from poky-image-sdk to poky-image-sato-sdk 33df485 mesa-dri-7.10: add missing dependency makedepend 8c2f3e0 mesa-xlib-7.10: add missing dependency makedepend 59a0826 bitbake/fetch2/git: Write mirror tarballs if enabled and they don't exist, also set a default value for mirror tarball generation 5cac571 rm_work.bbclass: Fix typo for package task directory preservation 9d7aa10 task-poky-apps-x11-pimlico: Webkit is huge and the compile time means it doesn't make sense in our demo sato image 7b4150f util-linux: Correctly prepend to PACKAGES and stop corrupting linux-util-native PACKAGES variable 3323759 ncurses: Apply unifdef-native dependency to the task that uses it, not globally d1a1635 package.bbclass: Only set recrdeptask for do_build if packaging is enabled for the recipe 388a92b debian.bbclass: Only set rdeptask for do_package if packaging is enabled b1c0b3d pseudo: Add and use the 1.0 release version 0b50dc8 lttng-ust: fix ppc build by removing ppc specific time reading function 296866c image-swab: Convert to attach strace to the process to obtain the required swabber data d3d236b Misc hard link fixes 3e6d91e package.bbclass: Preserve hard links! 58ae42c lib.oe.path: Update copytree function to call shell commands since its twice as fast bb3db51 talloc: remove talloc recipe 577c893 mesa-xlib: upgrade to 7.10 97e288f mesa-7.10: set mesa 7.10 as default instead of 7.8.2 d64460a mesa-dri-7.10: replace GPLv3 talloc with MIT-x licensed ralloc 0684172 image-mklibs.bbclass: add the library optimization functionality cfc4041 makedepend: remove # from the beginning of DESCRIPTION lines b0c2d6f xserver-kdrive.inc: add openssl to DEPENDS 2fbcf14 prelink: add transfig-native to DEPENDS c7de365 transfig: new recipe v3.2.5d fbf6c30 imake: add native support to recipe and update DEPENDS 98dec6e libxpm: add native support to recipe 26e3ce2 libxext: add native support to recipe 38eaf20 xorg-cf-files: new recipe v1.0.4 27b3f08 uboot: move license data into recipe with SRC_URI 6b76cee uboot: build with -O2 on all architectures ba163a4 kernel.bbclass: use defconfig if it exists 8d1b4fe linux.inc: don't overwrite an existing uImage d0eb679 u-boot: compile with -O2 on PowerPC 8bf1bf2 u-boot: add LIC_FILES_CHKSUM 5f2cf65 linux/u-boot: Update LICENSE fields to specify GPL version 07da500 linux: add LIC_FILES_CHKSUM 082aff4 Merge branch 'jzhang/i686' of ssh://git.pokylinux.org/poky-contrib 092f132 Merge branch 'jzhang/adt-repo' of ssh://git.pokylinux.org/poky-contrib ad987ff mpc8315-rdb: add dtb generation configuration 15cce57 dtc: add LIC_FILES_CHKSUM to dtc-native 970f395 linux: factor dts/dtc/dtb handling into a specific include 1de7185 linux-yocto: streamline BSP bootstrapping 9ce72c2 linux-yocto: streamline BSP bootstrapping 3150c5a binutils-cross-canadian.inc: disable -werror like -cross does a20600d bitbake.conf: fix SDK_NAME 4ed19cf adt-installer: change to adopt the adt public repo directory layout 29ed2c6 bitbake/fetch2: Fix negated if check for BB_FETCH_PREMIRRORONLY 33b3e59 local.conf: change i586 to i686 for 32bit SDK 906285f fetch2: Add SRPM knowledge 2f3a734 insane.bbclass: Fix config.log error message 07088f7 bitbake/utils.py: add glob name matching to remove aa45760 bitbake/fetch2: Ignore UnboundLocalError in exception handler in try_mirror ee1a9c0 bitbake/fetch2: Move symlink handling into try_mirror where is belongs instead of the main download function c4e66a7 bitbake/fetch2: When using BB_FETCH_PREMIRRORONLY, set BB_NO_NETWORK after premirrors as there could be data processing needed by the real fetcher 91eeb9b bitbake/fetch2: Ensure we only remove files, not directories when fetch failures occur 0713fb6 bitbake/fetch2: Ensure original ud is preserved in try_mirror 38878db linux-yocto-stable: Fix meta branch name 65712be kernel-yocto: Ensure python code has awlays run before SRCPV is expanded bd2fd82 kernel-yocto/poky-default-revisions: Ensure SRCREV_machine is set for the kernels a235c67 bitbake/fetch2/git: Fix broken variable reference 5920e85 bitbake/fetch2/git: Ensure unresolved branches are translated into revisions 1544aa8 fetch2: add try/finally to ensure lockfile is unlocked on failure 232b6f3 fetch2: add runfetchcmd to import for fetchers 6ec0e55 init-live.sh: add 'coldplug' udev trigger 36efa89 rpm: catch up with fetcher2 500c663 bitbake/fetch2:Fetch Make using the fn based cache optional d4b4b48 bitbake/fetch2: Fix pickling issues with fetcher exceptions 94faffd bitbake/fetch2: Update mirror processing to ensure we look for mirror tarballs 37624b9 bitbake/fetch2: Update forcefetch and mirror handling to clean up, simplfy and bug fix the code 1d3fdc8 beagleboard: allow kernel provider override 76c3514 linux-yocto: uprev lttng to 2.6.37-lttng-0.242 4816a02 mesa-demos: fix build issue with gcc dso linking change d372ead util-linux: Add mount lock patch fdb6a23 sysfsutils: Merge bug fix 522d16a coreutils: Add various bug fixes 427472e busybox: Support DHCP refresh without restarting the interface 5ade6c7 pseudo: Uprev pseudo and fix a few minor bugs 7586adb bitbake/msg: Ensure lower level debug messages have DEBUG prefix and reuse log level values from formatter ded83ff bitbake/fetch2: Match Fetcher log domain to that in bb.msg d7eebbe bitbake:__init__.py: Fix debug log level handling to correct debug output fb9c5a1 bitbake: event/build: Drop stdout specific handling for python messages as this is no longer needed with newer log handling af6480b distrodata: Update to new fetcher API fbebb9a utility-tasks: Update checkuri to new fetcher API 681bcf4 bitbake/fetch2/git: use clonedir as ud.localfile too since the mirror tarball may not exist 3308868 bitbake/fetch2/git.py: Ensure that forcefetch operates in the correct directory for calling _contains_ref() 32dbc70 kernel-yocto: 'standard' isn't a valid git branch name for a SRCREV, fix 917d3e9 bitbake/fetch2/git: Fix localpath to point at the clone repo since we no longer always generate a mirror tarball and it isn't a good guide to fetcher success 8e070a9 rpm: Update extra unpack code after fetcher changes 7202a77 bitbake/fetch2: Use True instead of integer values 8f2abf4 bitbake/fetch2: Drop name/override ordering backwards compatibility code ee6f344 bitbake/fetch2/svn: The concept of using dates with svn is totally insane, drop support 984e90f meta/classes: Update classes to use new fetcher API ca7adf7 bitbake/fetch2: Define a new interface to the fetcher code though the 'Fetch' class 08a9fef bitbake/fetch2: Fix typo 806d1c2 bitbake/fetch2: Drop legacy CVSDATE support f60d9d6 bitbake/fetch2: Move getSRCDate to FetchData class where is more appropriate 831c6c1 bitbake/fetch2: Make srcrev_internal_helper a normal function, doesn't belong in the FetchMethod class ab0dd13 bitbake/fetch2: Rename Fetch class to FetchMethod 74b7186 bitbake/fetch2: Drop old md5 handling code d08397b bitbake/fetch2: Rewrite and improve exception handling, reusing core functions for common operations where possible f6eefb3 bitbake/fetch2: Have all fetcher exceptions derived from a common BBFetchException class 604037d base.bbclass: Update after fetcher changes 8daab5b bitbake/fetch2: Drop unused parameter for localpath() and update comments 7e4fbfc bitbake/fetch2: Simplfy setup_srcrevs 49a022d bitbake/fetch2: Simplify localpath variable handling FetchData init 5a52cb8 bitbake/fetch2: Define a sane localpath function and remove code duplication 972eb5f bitbake/fetch2: Move ud.localfile setup into urldata_init 0e5404c bitbake/fetch2: Drop horrible SRCREV hack which is no longer needed b93683c bitbake.conf: Force git fetches to a new location after fetcher layout changes 5038757 poky.conf: Turn off mirror tarball generation by default e4c1e99 bitbake/fetch2/git: Switch to completely use bare clones 66e6a97 prelink: Temporary workaround for documentation build 192f631 fetch2/git.py: Fix problem when fetching with no origin 96810ca bitbake/fetch2/git: Ensure we prune origin to remove stale branches 0fdcc50 Revert "iputils: enable generation of man pages" 4cac153 Revert "docbook-utils: new recipe v0.6.14" 7c64981 Revert "docbook-utils: fix build errors" 51d7e31 package.bbclass: Optimise file dependency calculations to ignore locales and kernel modules as these never have dependencies we'd detect anyway dfc5faf bitbake/fetch2/git: Ensure deleted branches upstream are removed, all branch tags are forced to the upstream revisions and all revisions and tags are always fetched 3a70078 beagleboard: set kernel provider to linux-yocto (2.6.37) 8a52fda bitbake.conf & package.bbclass: Use default SUMMARY and DESCRIPTION 282a828 bitbake/fetch2: Remove old local file acceleration code fa9fda0 bitbake/fetch2: Ensure that mirror fetches are symlinked from the download directory 7f99605 bitbake/fetch2: When encoding a file:// url, drop user and host information 9ee3c77 recipes-graphics: Add more detailed SUMMARY and DESCRIPTIONS 30f5eea bitbake.conf: Fix missing NM definition 4714d02 linux-yocto: BSP updates acfef93 gobject-introspection: fix DEPENDS dc9f4de mailx: Disable parallel make 9b2fd4b license.bbclass: Add coverage by sstate code (also use cleandirs and dirs task attribures for directory handling) 1a559cb rm_work: Retain package and package-split directories to be consistent with sstate code 4b793ff rootrs_rpm.bbclass: Disable createrepo for now due to this error: 3eef847 docbook-utils: fix build errors efbaabd wpa-supplicant 0.7.3: fix packaging of dbus service files and fix layout variables a55d86b bitbake/lib/bb/fetch2: Assign a default name in the names array as empty strings as names cause problems for python 08cd6c1 bitbake/fetch2: Add missing parameter to localcount_internal_helper 5a16cb5 libconvert-asn1-perl: upgrade from 0.21 to 0.22 3212190 subversion: upgrade from 1.6.13 to 1.6 15 adfa6c4 bitbake/fetch2/git: Ensure target directory exists when copying files 43addfd linux-yocto-stable: Update SRC_URI after fetcher changes 8b5b3cc linux-yocto/linux-libc-headers-yocto: Adjust to git fetcher improvements 0e837e6 fetch2: Allow multiple src rev to be used in one src_uri affcfe4 git.py: Remove the source tree tarball archives 05048e0 bitbake/fetch2/git: Add nocheckout option to disable checkouts and always add scm data to checkouts 3a3fc6b bb.fetch2: Add git unpack d1ed188 autotools.bbclass: Drop info directory listings as they're going to be broken if generated at this point and cause file conflicts 95f13b1 package.bbclass: Ensure SUMMARY is written to pkgdata as well as DESCRIPTION 1d3face cross-localedef-native: Fix do_move_ports since the definition of changes. Raises the question of whether we even need ports for this? c636efa scripts/poky-env-internal: We set LC_ALL in the core so no need to set LANG here now f33685f bitbake.conf: Set LC_ALL instead of requring bitbake or env scripts to do this cb8153c elfutils: Clean up old versions which are no longer required 6f6a203 distro_Tracking: update as per current devel/toolchain recipes ecac1c7 documentation/poky-ref-manual/extendpoky.xml: Fixed make problem 845d49d gnome-doc-utils.inc: inherit gettext instead of DEPENDS 95366e4 linux-yocto: export kernel configuration audit to the console e4a4d9e mpc8315e-rdb: set UBOOT_ENTRYPOINT d71f6ff rpm: Add relocation to rpm-native c224842 glib-2.0: Add stable version 2.26.1 50b9f87 libfm: remove add_missing.patch as part of glib-2.0 downgrade a196ab0 distro_tracking: update distro tracking fields 4db9831 opkg: Update to svn r596 to fix segfault when upgrading packages e1a9c8f mklibs-native: new recipe for optimizing size of library files 0322d4c distro_tracking: update latest upstream versions bbfd012 cups: add cups 1.4.6 c081167 libxml2: Enable "--with-legacy" for LSB test. 0a12a3c msmtp: add msmtp 1.4.23 2254fd9 mailx: add mailx 12.4 ab31618 at: allow normal user to use 'at' ede0009 cronie: enable multi-user crontab usage and make cron environment complete d0bf83c distro_tracking_fields.inc: update pixman cfe1327 pixman: downgrade from development release 0.21.4 to stable release 0.20.2 18acdfb mutter: Upgrade to 2.29.1 via git fd03e8a gdk-pixbuf: Fix the native png load error and remove duplicated recipe 4e8e8a7 clutter-box2d: Upgrade to 0.10.1 via git 551174c clutter-gst-1.0: Upgrade to 1.3.4 (clutter 1.4 series) 1357d22 clutter-gtk-1.0: Upgrade to one version prior to 0.90.2 (clutter 1.4 series) 3bb0b9a clutter-1.0: Upgrade to 1.4 - latest stable version ba06cc8 distrodata.bbclass: Imporve the checkpkg task more precisely and generate data for pkg-report-system d22b435 populate_sdk.bbclass/meta-toolchain: Made populate_sdk task more generic 63e220c populate_sdk_ipk.bbclass: Added ipk support in populate_sdk task. 5571753 populate_sdk_deb.bbclass: Added deb support for populate_sdk task. 8b6626a populate_sdk_rpm.bbclass: Added rpm support for populate_sdk task. 382075a rootfs_rpm/package_rpm.bbclass: Move func from rootfs_rpm to package_rpm b94f9cc rootfs_ipk/package_ipk.bbclass: Move func from rootfs_ipk to package_ipk f23e67f rootfs_deb/package_deb.bbclass: move func from rootfs_deb to package_deb cc0b8f4 gdk-pixbuf: add jpeg into DEPENDS dbcddc3 xkeyboard-config: upgrade from 2.0 to 2.1 1e48275 distro_tracking_fields.inc: added docbook-utils and dependencies 62337be iputils: enable generation of man pages 8b5e600 docbook-utils: new recipe v0.6.14 3c71831 openjade: new recipe v1.3.2 edca982 opensp: new recipe v1.5 60450eb sgmlspl: new recipe, v1.03ii 942b3b1 docbook-dsssl-stylesheets: new recipe v1.79 b2abf1c docbook-sgml-dtd: new recipes - v3.1, v4.1, v4.5 b8bb770 sgml-common: new recipe v0.6.3 05954ef bitbake/fetch2: Ensure the local revision counter takes a default value of 0, not None c7c4c66 Revert "perl-native: Update for userelocatableinc and non-shared libperl" 4c8f498 qt4: set RRECOMMENDS correctly for qt4 demos and examples packages 19e1f4f meta-toolchain-qte: Append to the toolchain env script and remove code duplication ec740ac Revert "quilt: fix patch version detection" f33d78f qt4: Add meta-toolchain-qte and dependent tasks from OpenEmbedded f0a81bb avahi: prevent unnecessary runtime dependency on gtk+ c75ad46 package.bbclass: add nodeprrecs flag to RRECOMMENDS_pkgname 7a0c927 qt4: Add qt4-tools-nativesdk based on qt4-tools-sdk from OpenEmbedded 0e6608b dbus: extend to nativesdk 7bb96b8 glib-2.0: extend to nativesdk abb87d4 qt4-tools-native: update from OpenEmbedded 51b5081 qt4: add 4.7.1 version from meta-openembedded 7263add qt4: add qt4-embedded 4.6.3 from meta-openembedded c5998e6 qt4: Bring in improvements from meta-openembedded 70ce049 Add directfb 1.4.6 from meta-openembedded bc31351 quilt: fix patch version detection d6f4d68 site/x86_x64: add entry to fix x86_64 compile errors 47f8b56 libxft: Drop explict package_do_package call and use anonymous python instead 2d9cc7e kernel.bbclass: Add fix from OE.dev for tmpnam() usage 5b7e96d image/package_xx/rootfs_xx.bbclass: move rootfs_xx_log_check(). 21f2dae libgcc: Explicitly wait for the libc packaging to occur before libgcc packages 0e70557 poky-{glibc,uclibc}.inc: Add libc-foo OVERRIDES fe59ca3 perl-native: Update for userelocatableinc and non-shared libperl a9dda28 createrepo: fix native binary eed008b package.bbclass: Disable EXPORT_FUNCTIONS for do_package eb879e2 license.bbclass: don't mark it as 'nostamp' 7e206c6 scripts/bitbake: remove bashisms 92f1b49 license.bbclass: handle | (or) in the LICENSE field 612d59f package_rpm: Fix package-split summary e676987 creating the rpmrepo metadata f6fc1f3 createrepo: add new recipe 114cee7 zypper: upgrade to newer git version 483ee17 libzypp: upgrade to newer git version 2c32f49 sat-solver: upgrade to newer git version ffd12fc sat-solver: Add db as DEPENDS and bump PR 78569af linux_2.6.33.2: Add LIC_FILES_CHKSUM 74cffe7 poky-image.bbclass: If not including package management, ensure the basics to handle postinstalls in images are present 36f8aa6 poky-image-minimal: Since we don't include package system data, we only need the package system bootstrap dependencies be4ad69 rootfs_rpm: Drop bogus inclusion of the run-postinsts package fc5b38e rpm: suggested change e7fb63b rootfs_rpm: Setup the platform configuration f6ddba2 rpm: Uprev to RPM 5.4.0 a606ad5 poky.conf: Update gdk-pixbuf provider after gtk+ upgrade 97d80dd x11-common: Fix unusable serial console a7937d7 apt-native: Added licence checksum. e8dfc44 cross-canadian.bbclass: Correct deb package arch. 673f7ab distro_tracking_fields.inc: update the info for some recipes 65a5c10 preferred-xorg-versions.inc: remove libfs, update xvinfo, pixman, dmxproto, printproto, xineramaproto, xf86driproto, xf86vidmodeproto, libxp c27622e libunique: update DESCRIPTION, HOMEPAGE, BUGTRACKER 3fbe386 libxp: upgrade from 1.0.0 to 1.0.1 e692278 xf86vidmodeproto: upgrade from 2.3 to 2.3.1 cf3106d xf86driproto: upgrade from 2.1.0 to 2.1.1 9d9edb4 xineramaproto: upgrade from 1.2 to 1.2.1 25e7822 printproto: upgrade from 1.0.4 to 1.0.5 98d5a20 dmxproto: upgrade from 2.3 to 2.3.1 903ef26 pixman: upgrade from 0.21.2 to 0.21.4 7e2f368 lttng-viewer: upgrade from 0.12.35 to 0.12.36 e8f2bfc lttng-ust: upgrade from 0.8 to 0.11 8aaa0f6 liburcu: upgrade from 0.4.8 to 0.5.2 0b60fa1 freetype: upgrade from 2.4.3 to 2.4.4 af5cdac gnome-doc-utils: upgrade from 0.20.2 to 0.20.4 0e879c2 xf86-video-omapfb: upgrade to 044617665d6737f4909aab96 4bda50f Initial commit of license reporting: c7b489c task-poky-sdk: add 'file' and 'ldd' ce9d6eb bash: use /bin/bash as default shell when bash is included abc25cb base-files: remove ending colon from default $PATH for root user 1b26bce matchbox: Convert all the matchbox components' repo from svn to git including: matchbox-wm matchbox-panel-2 matchbox-terminal matchbox-config-gtk matchbox-stroke matchbox-desktop matchbox-keyboard matchbox-themes-extra libfakekey settings-daemon 5612838 distro tracking: Add info after upgrading gtk+, libuser and leafpad 7951a7b libuser: Upgrade from 0.56.18 to 0.57.1 9eb6dbc leafpad: Upgrade from 0.8.17 to 0.8.18.1 bce90ed scripts/bitbake: If pseudo isn't in staging for some reason, force a build of it directly 7261f25 scripts/bitbake: We only need pseudo-native in the sysroot, we can ignore any other pieces of the dependency tree 8cae183 staging.bbclass: Only clean out the sysroot if we rerun configure, not at setscene time c7ad2da sstate: Ensure stale stamp files are removed as part of sstate_clean() 06c6db7 bitbake/runqueue.py: Avoid starvation of events to the server 754047b sstate.bbclass: Fix stupid typo 021cf7d sstate.bbclass: No need to dump the contents of the sstate package to stdout bb7a42e sstate.bbclass: Handle whitespace in the list of files to 'fixup' to resolve log warning e77207c BerkleyDB: Uprev db from 4.2 to 5.1.19 156405e ofono: Fix missing dependency on udev 3cc784e iputils: upgrade to s20101006 deec6fa webkit-gtk: upgrade to 1.3.7 ef6cc9a eds-dbus: Do not disable old API after upgrading gtk+ 7c9c78b gtk+: Update to 2.22.1 8a6e862 sstate.bbclass: Optimise to check if the manifest exists without taking locks a17dc8b external-python-tarball: include multiprocessing module b02a4ad perl: Remove ${MACHINE} dependency in compile and package. c34913e bitbake/build.py: When looking up extra stamp info for setscene tasks, use the real taskname e8e9f56 rm_work.bbclass: Update to convert stamps to setscene stamps 7476df3 autotools.bbclass: Drop unused autotools_stage_dir dummy function 35d44a4 autotools.bbclass: Only include aclocal directories if the exist, no point in creating them 4e23e8f send-pull-request: ensure a proper FROM header is included 8ae1f88 meta-toolchain: Fix tar command 5f866ac bitbake/unlockfile: Fix exception handling 6a0abfa crosssdk: Drop PACKAGES setting as its set in cross.bbclass already 4c55d2b sstate.bbclass: Correctly handle empty sstate packages 82745e4 cross.bbclass: Move sysroot_stage_all function to the only place that uses it now (gcc-cross-intermediate) 70301cc staging.bbclass: No need to create these directories any more, also remove invalid comment 87a258f meta-toolchain: Use --owner and --group options instead of using pseudo's overhead for a simple task d332f18 perl: Remove MACHINE reference in do_configure, it causes perl to be rebuild many times db9b8bc kern-tools: update to the new repository 74c24e0 documentation/yocto-project-qs/yocto-project-qs.xml: Added note to poky-qemu command 63e6319 documentation/yocto-project-qs/yocto-project-qs.xml: Updated <arch> value for environment setup command bcce31b documentation/yocto-project-qs/yocto-project-qs.xml: Updated list introducing pre-built section dc12430 documentation/yocto-project-qs/yocto-project-qs.xml: Added sub-sections to pre-built image section d0be418 documentation/yocto-project-qs/yocto-project-qs.xml: Corrected environment setup command c8f4bb5 linux-yocto/stable: perf: hard-code NO_LIBPERL/NO_LIBPYTHO e60cbed util-linux.inc: Fix DEPENDS on gettext for native case 567958d distro_tracking: Update for poky-image-sdk renaming 4c0448f poky-image-sdk* renamed to poky-image-sato-sdk* ad4b709 meta-toolchain-sdk: Rename meta-toolchain-sdk to meta-toolchain-gmae 630b5de util-linux: tidy up metadata 222796e sanity/sstate: Due to the sysroot layout changes, the toolchain bootstrap process changes and the recent pseudo bug, bump the tmpdir layout version number and the sstate version numbers 029f858 bitbake/fetch2: Instrument fetchers when making network access 098e8de bb.fetch2: add "BB_NO_NETWORK" option 733de75 bb.fetch2: remove the obsolate Fetch.try_mirrors referrence ef918a7 git.py: split download to download() and build_mirror_data() e2ac26e base/sstate.bbclass: Rename fetcher "go" method to "download" when using fetch v2 e059189 bb.fetch2: rename "go" with "download" to better reflect its functionality 8615b0e base.bbclass: use bb.fetch2 unpack API f12e714 bb.fetch: add fetch version to distinguish bb.fetch and bb.fetch2 84ff794 bb.fetch2: revise the Fetch.unpack API d8698b9 bb.fetch2: add unpack method in fetcher 6dc6791 emenlow: Change PACKAGE_EXTRA_ARCHS and BASE_PACKAGE_ARCH to core2 7f41f1a bitbake: machine specific sysroots implementation b0df35f base-files: Add to make some directories needed by LSB. 5627894 liburi-perl: Rename liburi-perl 3b37116 pseudo: Revert msg cache changes c0e1272 gcc/libc: Change bootstrap to use an intermediate sysroot and hence no longer overwrite files 23cb814 gcc-cross-intermediate, gcc-crosssdk-intermediate: change CROSS_TARGET_SYS_DIR and install into new locations 34729e4 gcc-cross-initial, gcc-crosssdk-initial: change CROSS_TARGET_SYS_DIR and insall into new locations 46395d4 sstate.bbclass: allow each step of toolchain bootstrap processes to do populate_sysroot independently 7109712 cross.bbclass: make MULTIMACH_TARGET_SYS adjustable for bindir, libdir, libexecdir beb9166 distro_tracking_fields: Updated sudo tracking data 9eb6df7 sudo: upgrade to 1.7.4p6 c52e13a beagleboard: Not ready for 2.6.37 kernel yet, use stable instead 5233908 linux-yocto: update SRCREVs for emenlow 97cb312 linux-yocto: allow multiple BSPs per branch e144427 update-rc.d.bbclass: Changed RDEPENDS for native 94629f2 send-pull-request: send all patches as the local user 75748b6 send-pull-request: unset $TO and $CC from environment aee1d50 linux-yocto/stable: update beagleboard SRCREV 575d8bf linux-yocto/stable: update crownbay kernel configuration e1c7800 linux-yocto/stable: update beagleboard SRCREV d47d9aa distro tracking: Add more info for qemu, gdk-pixbuf...., after last interation of upgrade 3b980c5 nfs-utils, e2fsprogs, mtd-utils, libsm: bump PR a377ce0 gst-plugins-base: add util-linux to DEPENDS a9cb5cb util-linux: fix lscpu packaging 8ee25e2 util-linux: fix dangling symlinks 036e4a9 util-linux: separately packaging blkid and uuid ff02b36 apt: revert the dso_linking_change patch as the new linker fixes it 6281264 libzypp: revert the dso_linking_change patch as the new linker fixes it 1ef7057 libmusicbrainz: revert the dso_linking_change patch as the new linker fixes it 57392af poky-extract-sdk: allow relative paths for extract-dir 74783fe bitbake/utils: Ignore OSError in unlockfile a3cb784 Drop remaining bootcdx86 references, the -live images for qemux86 and atom-pc replace this 070b7ee package_deb: Remove access to the D directory which isn't used and might not exist (same problem as the previous patch to package_ipk fixes) 9e7eb59 package_ipk: Do not depend on the existence of "D" to create ipk package f3677d6 glib-2.0: Add missing DEPENDS on dbus 6702c43 dbus: Drop now unneeded DEPENDS on glib-2.0 e40c2ca util-linux: Drop now unneeded DEPENDS on udev daabbc6 poky-image*-dev: Add -dev Images contianing headers and libraries bc9d2fb staging: Use relative path in sysroot-destdir for target recipes b1025bd distro tracking: add graphics recipes tracking data 0ca7384 README.hardware: add beagleboard documentation 5da38d2 u-boot-omap3: remove in favor of upstream u-boot f190297 overo: use the new upstream u-boot recipe fb07e93 beagleboard: add x-load and u-boot depends f2dc7fa u-boot: Add a new upstream u-boot recipe b6cbf22 x-load: us TI upstream repository, update recipes accordingly bcb1873 siggen.py: better print for task hash comparison 6299e96 bitbake.conf: add USERNAME to BB_HASHBASE_WHITELIST 1c0f01f resolvconf: upgrade to version 1.48 3900a23 zaurusd: upgrade to svn revision 426 310556e dbus: upgrade to version 1.4.1 13e92c8 libnfsidmap: upgrade to version 0.24 c0d1cca coreutils: upgrade to version 8.9 5ee3d09 distro-tracking: update some tracking fields 6d8fe5b poky-default.inc: bump binutils preferred version to 2.21 4d387c3 binutils: fix library RPATHs 68a9d3d binutils: Fix QA staging errors for target binutils ce175a9 binutils: forward-port the binutils-poison.patch c15f20a binutils: upgrade to 2.21 and add libtool sysroot support 6656381 insane.bbclass: skip checks on .la installed status 1477020 staging.bbclass, utils.bbclass: remove la mangling code 1a7509d autotools.bbclass: libtool sysroot support changes ded899b libtool: fix library RPATHs 62dc239 libtool: Changes to enable sysroot support 66988ee libtool: Move common version specific data to a common include file 4a62f3f libtool: Small cleanups of metadata 576e136 qemu: Upgrade from 0.12.4 to 0.13.0 7d9a8fc distrodata.bbclass: add .xz file type 20925a6 meta-environment: Remove the recursive dependency on do_compile 5da9423 bitbake: fix parameter order for flaglist() d4f5379 bitbake/providers.py: Fix runtime providers problems 1d1f2d3 poky.conf: Correctly set gdk-pixbuf PREFERRED_PROVIDER f3f89be opkg: Stop opkg-nativesdk providing update-alternatives-cwrorth and libopkg 60ee8b5 eglibc-package.inc: Stop eglibc-nativesdk providing eglib-thread-db and locale-base-* d1597fa poky.conf: Add PREFERRED_PROVIDERs for gdk-pixbuf-loaders after gdk-pixbuf updates 546ef7b apt: fix build issue with gcc dso linking change 746173d zypper: fix build issue with gcc dso linking change cff6729 libzypp: fix build issue with gcc dso linking change a849ef5 screenshot: fix build issue with gcc dso linking change a698372 matchbox-stroke: : fix build issue with gcc dso linking change e6d4c25 dates: fix build issue with gcc dso linking change 958fd5a fstests: fix build issue with gcc dso linking change 2560d0e blktrace: fix build issue with gcc dso linking change 52691e7 xtscal: fix build issue with gcc dso linking change 5a91224 matchbox-desktop: fix build issue with gcc dso linking change 8327a9d settings-daemon: fix build error with new gcc dso linking change d9276d4 oprofileui: fix the build failure after gcc dso change f7c5689 libmusicbrainz: fix the build failure caused by gcc dso linkcing change 59986bd sat-solver: fix the build failure caused by gcc dso linkcing change 95fc6ae gcc_4.5.1: add DSO linking change patch b46ce7c gdk-pixbuf-native: add jpeg-native as a dependency d075d14 perl: Add GDBM module for perl e261c17 python: Fix failures of LSB python-runtime tests. 426de65 poky-lsb: Add poky-lsb.conf as distro of lsb image 39e239b libxml2: Enable "--with-docbook --with-debug --with-catalog" for LSB test. df38d6c glib-2.0: Enable debug option for LSB test. 811a9f7 qt4: Enable accessibility and sm option for LSB. 9da1e13 documentation/yocto-project-qs/figures/using-a-pre-built-image.png: Updated figure 75ee154 documentation/yocto-project-qs/yocto-project-qs.xml: General edits to YP QS. 6d5adf1 documentation/poky-ref-manual: expand discussion of PR and INC_PR 321d70e documentation/bsp-guide/bsp.xml: fix typo in variable name 6f31e13 distutils(-common-base) bbclass: sync with OE 943f80f python-dir bbclass: import from OE 7cb39ad setuptools bbclass: import from OE fe9f716 sanity.bbclass: remove SDK_ARCH check a1ab102 linux-igep: Add required LIC_FILES_CHKSUM 81f1457 openssl: drop the valgrind patch that introduce a security hole 05cb09b linux-dummy: add license and LIC_FILES_CHKSUM 297f2a7 base.bbclass: fix parse error on recipes with '++' in their name 238c13f meta-rt: atom-pc support 8734754 machine/qemu: Allow for users to override the preferred kernel version 212b687 meta-rt/poky-image-*rt: Add initial PREEMPT_RT image recipes 0b17496 meta-rt/rt-tests: add the PREEMPT_RT rt-tests testsuite and recipes-tests directory 0d7d566 meta-rt: Initial PREEMPT_RT layer and kernel recipes 4de5440 sanity.bbclass: Disable TERMCMD checking with noop patching 5246c99 libtool: Adjusted content of various libtool packages. 8cd693f task-poky-tools: move systemtap to machine specific tasks 96e513f systemtap: new package 3e05291 qemuimagetest: Use same image during sanity testing instead of copying a new image for each case 50b2086 apr-util: Update to 1.3.10 aa36087 apr: Update to 1.4.2 552169e gdk-pixbuf: Add 2.22.1 as new recipe 8f23c14 linux-yocto: update validate_branches to detected invalid commit IDs 432e761 linux-yocto: streamline new BSP creation 37c4345 linux-yocto: beagleboard enablement fd88588 bitbake/utils.py: Teach unlockfile about shared mode lockfiles 542cebb sstate.bbclass: Ensure clean/setscene sstate functions run under appropriate locking ede381d package.bbclass: Take a shared lock when reading to improve do_package parallelism 7857834 bitbake/utils.py: Add option of holding shared lockfiles e5a629f psplash_svn.bb: Change poky boot logo to yocto logo 51a2afe distro-tracking: update manual checking ec3b440 puzzles: SRC_URI Checksum disabled 163581f documentation/yocto-project-qs: Updated the Packages section. a72f0aa Workaround issue with latest version of pseudo. 2639601 pseudo: Update to the latest upstream version 57bab33 xserver-xf86-dri-lite: upgrade to 1.9.3 5a93778 mesa: add mesa 7.8.2 20bdd17 mesa-glsl: add mesa glsl 7.8.2 0b62bd8 mesa: upgrade to mesa 7.10 82c8fde cairo: upgrade to 1.10.2 9ffa1a7 xf86-video-intel: upgrade to 2.14.0 1029b86 xwininfo: upgrade to 1.1.1 63fa986 libdrm: upgrade to 2.4.23 89ca547 xf86-input-synaptics: upgrade to 1.3.0 b75c4db xf86-input-evdev: upgrade to 2.6.0 75e9e0a xkbcomp: upgrade to 1.2.0 a447c32 xf86-input-keyboard: upgrade to 1.5.0 2a69187 xdpyinfo: upgrade to 1.2.0 bacfa12 mkfontscale: upgrade to 1.0.8 00ecccc xprop: upgrade to 1.2.0 70fe429 bigreqsproto: upgrade to 1.1.1 c39b3aa xinit: upgrade to 1.3.0 d7c300f mkfontdir: upgrade to 1.0.6 5f1d51e xhost: upgrade to 1.0.4 d3341e3 task-sdk-host: add libtool-nativesdk to meta-toolchain 241d553 meta-environment.bb: fix comments typos 80cf3e4 bitbake: Introduce stamp-extra-info task flag into stamp filenames 740ea68 poky-init-build-env: unset BBPATH 72b452e bitbake/build.py: Allow FuncFailed error to have an optional message 4cd1118 staging: relocate *.la paths in destination dirs dca67e0 libc-package.bbclass: should not rm scsi/*.h 0df3c48 libgcc: use the new recipe (rather than gcc-runtime) to install libgcc_s.so* and crt*.o 2ce2c1e linux-yocto: enable arch ARM config settings for KARCH based boards 2fa6f42 linux-yocto-stable: add atom-pc preempt_rt support 55ab96d linux-yocto: add systemtap config to -stable and -dev kernels 0388f07 bitbake/build.py: Rename message field to avoid DeprecationWarning: BaseException.message warning a7fa6db perl-native: Ensure the wrapper appends to any existing PERL5LIB d38ad32 linux-yocto: hard-code NO_LIBPERL/NO_LIBPYTHON 9c6b313 puzzles: Update SRC_URI Checksum 2119274 qemuimagetest: Use the same image in sanity testing to fix the timeout issue on autobuilder 8975306 external-python-tarball: add LIC_FILES_CHKSUM e427f25 image.bbclass: Use the dedicated BB_WORKERCONTEXT, not bitbake internals to detect context aa45f90 glib-2.0: Fix path problems with libtool 2.4 b939ff5 insane.bbclass: Make sure QA issues are reported as warnings d82f205 dpkg: Add dependency on perl since otherwise the module can be installed to an incorrect directory leading to build failures 34bf835 kernel.bbclass: Remove a binary generated by recent kernel versions fad5c8a perl-native: Wrap the perl binary and set the LIB directory correctly removing the need to hardcode the paths and rebuild it 17d13a5 bitbake.conf: Whitelist FILESPATH as a variable not to include in taskhashes 4988dd7 bitbake.conf: Whitelist MACHINE variable in PACKAGE_ARCHS 25b3d39 bitbake/siggen.py: Fix whitelisted variable handling 041adc9 kernel bbclass: add 'perf' to kernel-modules blacklist bff1d2b build: remove duplicate import of utils 2ef204d *: use utils.remove() some more c405a3a codeparser: fix spacing in diagnostic messages 3f08b7f bitbake/knotty.py: Ensure task note messages are only surpressed at default log levels d4731a3 Adding check for DL_DIR permissions: sanity.bbclass ac5c28a bitbake/goggle: don't drop events e21150f bitbake/depexp: closing progress dialog kills gui c9bb30b bitbake/goggle: closing the progress dialog kills the UI 749ca68 bitbake/uievent: fix queueing of events for xmlrpc before UI has loaded f5a1f1d meta-environment: Remove c++ include dir from CXXFLAGS. 060a9d0 wpa-supplicant 0.7.3: fix dbus service activation 1717cd9 wpa-supplicant 0.7: fix GNU HASH QA issue e5e3fb2 bbvars.py: add a script to look for undocumented variables 514e59c adt-intaller feature implementation, including the bitbake recipe file for creating the intaller tar file under /tmp/deploy/sdk, and the adt-installer script files and config files, set the reference to adt repo entry empty before it's setup 0307210 linux-yocto: add routerstation pro and mpc8315e-rdb support deca05d trace-cmd: Bump SRCREV and recipe PV and PR values. cebc043 libxml-simple-perl: fix build failure with perl 5.12.2 d52b9ff cpan.bbclass: add a new parameter EXTRA_PERLFLAGS 83796ed cpan.bbclass: use LIBDIR instead of DATADIR f57e9da perl, perl-native: upgrade from 5.8.8 to 5.12.2 fde91ac puzzles: update SRC_URI Checksum due to file changing upstream 4b055ed runqueue.py: Renable check_stamp_fn() for now since we still fork for task execution (as per bitbake-upstream) 0b3d443 bitbake/runqueue.py: Simplify hashdata storage since we're not using an external script for tasks anymore, in line with bitbake-upstream 4428aab msg: no need to hardcode the logging levels d967f3b vim: properly highlight python inside of ${@} cbcd8e5 vim: handle highlighting exports without assignment 55606ce vim: add an ftplugin for indentation settings 810e139 Inject taskpid into log records via our log handler 48e567b bitbake/runqueue.py: Fix del_stamp calls and -f option to bitbake with the BasicHash siggen code 2bd6e7c Merge branch 'srifenbark/docs' of ssh://git.pokylinux.org/poky-contrib 084dd95 linux-yocto: update to 2.6.37 e9e966e kern-tools: create generic variables for platform/board/kernel 3f2902c linux-yocto: update SRCREV to pickup debug/ftrace config changes a9f5fea routerstation: disable command line overrides 1759fee kernel-yocto: pass the build directory to configme 2b2dbf7 Fetcher: only set __BB_DONT_CACHE when SRCREV = "${AUTOREV}" 1589a11 Fetcher: break the "SRCREVINACTION" deadlock 550c3bd bb.fetch2.bzr: add bzr urldata_init f684ff1 bb.fetch2.hg: add hg urldata_init 7420e70 bb.fetch2.svn.py: add urldata_init 54e34f6 bb.fetch2.git.py: add git urldata_init 2892cbf bb.fetch2: add urldata_init call for Fetch class 9e3a92c BBHandler: remove bb.fetch referrence 38b25ee machines: move PACKAGE_EXTRA_ARCHS to tune files c02f89f bitbake: For poky only, force the use of fetch2 codebase af06e4a bitbake: Switch to fetch2 fetcher code based on the environment variable BBFETCH2 c64b445 bb.fetch2: replace bb.fetch with bb.fetch2 in the bb.fetch 6b212ad bitbake/fetch/git: Add backwards compatibility code for branch name handling 4dccd92 bitbake: copy bb.fetch to bb.fetch2 as initial code base for fetcher overhaul f46cdcb bitbake/poky.conf: Add TARGET_LINK_HASH_STYLE option to TARGET_LDFLAGS as per OE.dev c036d1a bitbake/codeparser: Fix import to match upstream bitbake a17d271 utils: show the actual exception in better_exec cd382f9 runqueue.py: Drop unneeded import and improve quieterrors handling as per upstream bitbake 2c2d160 bitbake: Update event queue handling to match upstream bitbake 9336ba1 bitbake/runqueue.py: Sync with changes in upstream bitbake 5cc720a bitbake/fetch: Sync up logger/whitespace improvements 8d6800b bitbake/utils.py: Drop unused function extend_deps() c186419 bitbake: Sync environment handling function names and comments with upstream alterations b127874 parse: pass filename, lineno into the ast f305e95 cache: don't expand variables for skipped recipes b22e345 bitbake/knotty.py: Don't show log messages of NOTE and below for task processes f8e7215 bitbake/__init__.py: Add taskpid to all LogRecords (subclassed to be BBLogRecords) a13352c bitbake/msg.py: Add named definitions for all logging levels b7eb324 xserver-xf86-common: Remove COMPATIBLE_HOST as it was wrong solution 26cd5c2 insane.bbclass: Enable the package_qa_hash_style check 5c69fab bitbake/runqueue.py: Remove duplicate TaskStarted event fire() 359e31c xvinfo: Fix LIC_FILES_CHKSUM 6fe79e2 libcanberra: Fix LIC_FILES_CHKSUM 5da9747 bitbake/build.py: Fix del_stamp work correctly after recent stamp function changes 0e26f53 bitbake/cooker.py: Fix merge conflict with upstream which was preventing clean bitbake shutdown 847b717 bitbake/cache.py: Expansion of variables in skipped recipes should not be attempted as they can trigger errors 6f454c1 bitbake/data.py: corrected the output for shell syntax. dc10e16 bison-native: create a wrapper script for sstate installation d835488 flex-native: create a wrapper script for sstate installation 16fa641 perl: use ${CCLD} instead of its own LD definition 97789a1 bitbake/siggen.py: Add a signature generator which adds the hash to the stamp files bcb5849 documentation/yocto-project-qs/yocto-project-qs.xml: Corrections to Using Pre-Built Binaries and QEMU section. bc127e0 documentation/bsp-guide/bsp.xml: Commented out three sections. 3f78c07 base.bbclass: Use the new stampfile function in bitbake to determine the path to the stampfile df8569b bitbake/runqueue.py: Fix a bug where do_setscene dependencies would be ignored 66c6200 bitbake build/siggen/runqueue: Fix stampfile parameters ec6e479 bitbake build.py: Stamp handling improvements 4a10a5b bitbake build.py: Use localdata for stamp handling, not d 81e29fb poky-ref-manual: Fix my email address 51a2e87 bitbake/build.py: Ditch the extract_stamp function as its just going to complicate improving the stamp handling functions 37391f6 parse.ast: drop __word__ regular expression 1204ed7 parse.ast: avoid code duplication for inherit 7465316 event: use BBLogFormatter in print_ui_queue e7febaa build: use logger.isEnabledFor, not getEffectiveLevel 9b5c770 recpies: use SRCPV instead of SRCREV for PV 601af9f qemuimagetest: Remove connman test for lsb image and fix one warning in Test_Create_Qemu d2d5456 insane.bbclass: Fix message for LIC_FILES_CHKSUM Errors b91c0f4 python-dbus: upgrade from 0.83.1 to 0.83.2 5611fe8 byacc: upgrade recipe from 20100610 to 20101127 a4976d5 git: upgrade from 1.7.3.2 to 1.7.3.4 76b5dc8 distro-tracking: update recently updated recipes 34b067e modutils: Extend gcc4 patch for obj_ppc.c 1539ecf xserver: Add COMPATIBLE_MACHINE c3a14b3 rpm: Bump PR to force rebuild due to new beecrypt 2ee6b1a distro_tracking_fields.inc: update apmd, blktool, dbus-glib, libgdbus, and pax-utils 27bdee5 dbus-glib: upgrade to version 0.92 2aa8ebb dbus-glib: delete unused patch 47a1cc9 libgdbus_git: metadata fixes and minor formatting changes 39387f3 blktool: minor formatting changes 4842fc5 apmd: added HOMEPAGE, minor formatting changes 0aa3472 apmd: delete unused patch 6f774d3 pax-utils: upgrade to version 2.2.2 73cc149 binutils: use default ${CC} instead of defining it own 3930538 kernelshark: add ftrace gui viewer 6564097 glib-2.0: fix g_once_init_enter compile failure 40be3e1 trace-cmd: license file updates b4090f2 trace-cmd: fix cross-compilation baab6f6 distro_tracking_fields.inc: update for lastest package updates 26a0877 preferred-xorg-versions.inc: updated for lastest package updates f11bcc1 librsvg: upgrade from 2.32.0 to 2.32.1 a86c5de libxxf86misc: upgrade from 1.0.2 to 1.0.3 e166d62 libdmx: upgrade from 1.1.0 to 1.1.1 e348e6e pixman: upgrade from 0.20.0 to 0.21.2 840ca22 scrnsaverproto: upgrade from 1.2.0 to 1.2.1 ca4f109 resourceproto: upgrade from 1.1.0 to 1.1.1 3512680 compositeproto: upgrade from 0.4 to 0.4.2 c7ca70e xproto: upgrade from 7.0.19 to 7.0.20 b08bfda inputproto: upgrade from 2.0 to 2.0.1 cd9ae99 renderproto: upgrade from 0.11 to the latest version 0.11.1 6f7ee84 matchbox-wm-2: Upgrade to svn r2106 1afd9d9 metacity: Upgrade to 2.30.3 fbd6f9f libcanberra: Upgrade to 0.26 c19c5b4 xvinfo: Upgrade to 1.1.1 b0783ec beecrypt: Update to 4.2.1 21fafc8 rootfs_rpm: fix rootfs generation rm error 5e38403 rootfs_rpm.bbclass: Remove temporary work files in install directory, saving the manifests as logfiles into ${T} 6ded4e0 bitbake: build.py: Logging of None was losing the logs so force this to stdout so we can see function execution failures a47c641 scripts/bitbake: Skip building pseudo if necessary. d7a6a01 usbutils: Don't install the uncompressed version of usb.ids, the compressed version will suffice a3158fa pciutils: Don't install the uncompressed version of pci.ids, the compressed version will suffice 0f70631 bitbake: Misc syncups with bitbake upstream, mostly whitespace and a missed line from the last UI commit 2e0ef25 Resurrect alternative UIs 25ac24e bitbake: build.py logging updates 0367936 bitbake: Fix process.py to accept None as the log option e9f4ed0 Update persist_data usage to the new API 478677f persist_data: resurrect the lock wait for selects 2671bb4 Rework the persist_data API 3069c0b Revert "persist_data: cache connection and use cursor" 30d2711 base.bbclass: add lock file for do_unpack task ca148f4 sstate.bbclass: fix multimachine builds when PACKAGE_ARCH = MACHINE_ARCH 641fc9b ConfHandler: commentary typo fixes c0a11db event: fix unicode handler registration aae8532 cache: defer marking fn as clean c9d4807 BBHandler: use basename directly in handler() 83f0b79 data: fewer newlines for (un)export 9ed8e9f parse: Use constants from stat instead of magic numbers 0090a79 bitbake: Sync a load of whitespace and other non-functionality changes with bitbake uptream e8c48e6 bitbake/contrib: Sync with bitbake upstream 043adbf process: fix handling of the input argument 572bf4b depexp: add sorting of all package lists 8eee422 pysh: add missing os.path import 1949d4f runqueue: fix typo in documentation of calculate_task_weights 4d4d135 runqueue: use fewer newlines in error path 4a6d4d2 logger usage cleanup e890b86 utils: fix typo in error message d951aa4 Move LAYERDIR expansion hack into DataSmart 717f13d parse: use bb.utils.which 760b82e Fix logging level names for post-server-ui-split 93e20c5 Use os.devnull, not /dev/null 4dc97cb utils: don't overwrite builtin dir() function 9bf3cf1 bzr: use utils.remove instead of os.system 240b597 utils: drop unnecessary debug msgs from mkdirhier 2735a70 Show the user progress when loading the cache 89a1b59 knotty: exit with 1 if we see a critical log message 2984877 cooker: don't swallow recipe parse errors 2f0c23d manual: document scmdata=keep for CVS, SVN and Git bd34e7d fetchers: Add parameter scmdata=keep to include .git/ and others in generated tarballs. 7bbde5b build: fix FuncFailed for the no logfile case ddf2c68 process: handle OSErrors other than file not found 3d51fd2 build: ensure LogTee has a valid name property ea91b1d Fix PWD issue with new exec_func_shell 9260c08 Ensure that the invalid UI error goes to stderr e05d6fa build: set PWD in the subprocess preexec hook 2b7c2a8 bitbake: Transfer noexec runqueue messages to the UI fcba92f Move the runq task start/failed messages to the UI 23735bb Silence python 2.7 nested context manager warning 098f63d Rename command events, adjust compareRevisions 5a92e67 event: use cPickle for events d2123cc utils: fix 'lock' variable reference 212414b bb.event: fix MsgBase ref in fire_class_handlers 3d3af81 Kill the uncaught exception handler 6f80455 build: fix -D with shell functions aaa5588 build: send logging messages to the log file for python functions 25e519a utils: fix calls to close() in the lock/unlock functions e2363f3 build: use a contextmanager for locks b4eff9f build: use bb.process instead of os.system 87b6cdf process: add subprocess-based bits c8d2dad Rename the ui 'init' method to 'main' 72c6953 cooker: use re match, not search in re_match_strings 431160c taskdata: use 'any' in re_match_strings 246bd18 cooker: add shutdown/stop methods 825e504 cooker: merge cookerState and cookerAction ac4d926 cooker: use a pool, abort on first parse error e5624a4 knotty: use enumerate for task waiting 7ffd6f8 knotty: shift non-interactive progress into a class 7ea3c96 Fix the <100 recipe progress fix 1e3b83f Error more pleasantly when trying to use python2.4 7481c11 Don't show a traceback for a python version error c4e07bc cooker: don't choke on <100 recipes to parse b8aedaa cooker: no cached in progressbar and add ETA b890c19 cache: change to more incremental format 5bff229 cooker: pass back child exceptions to the server 8faec0b vercmp: don't choke on empty first version components 6810622 Use __file__, not sys.argv[0] 8a938d5 cache: ensure 'pn' is included in the pkgvars a92caf4 knotty: drop the ETA from the progressbar for now 7a7e2f4 cooker: ensure that the cache sync completes f4a06aa cooker: get number of threads in constructor a519031 cooker: don't add info for skipped recipes 60226ff cooker: show progress bar before initializing the cache 6cd15a1 cooker: save progress chunk value (total/100) 739bb5a cooker: stop loading the cache for -b 065da89 cooker: don't fire unnecessary parse progress events 7846d8d cache: don't add info to cache if cache is disabled 7c9444e cache: sync the cache file to disk in the background 95d2f56 Simplify cache syncing 9ffbd9f Experimental usage of the 'progressbar' module 32ea766 Implement parallel parsing support 570bec3 cache: don't write out the cache unnecessarily acca344 cache: create and use a RecipeInfo class c632856 Prefer xrange over range for small performance gain. e81fc74 Revert "svn fetcher: warn people to switch to SRCREV" 66b364c cache: make loadDataFull a classmethod 81a81a1 svn fetcher: warn people to switch to SRCREV 4df0d6a fetch: be more pythonic b7d667f fetch: use os.path.join 87b6f7d fetch: add common helper _strip_leading_slashes() d0d67a9 fetch: rename suppports_srcrev to supports_srcrev 814c80f cache: Add debug msg for a nonexistant dep file 84f0283 cache: use new style classes c4d9390 cache: pyflakes/pep8/pylint cleanup 77d52cb cache: use set for clean, checked f207bb7 cache: make use of defaultdict 9c7c18d Pre-explode rundeps/runrecs in CacheData 3a2176f persist_data: handle locked db for SELECT f565258 BBHandler: use os.path in inherit() b44100e BBHandler: simplify supports() 1d8a9b8 bb.cache: only log if the respective action was taken 7e1b709 bb.pysh: add Case support to format_commands 32b4bd9 bb.pysh: fix writing pyshtables all over the place 4addbd1 Move the pysh package into the bb package 489d175 Allow mercurial fetcher to follow tip 17ea152 Fix GraphViz .dot output for rdepends and rrecs 14889f9 Make 'cache is clean' message debug 3f7000c bitbake: lib/bb/fetch/hg: fix fetching from a mercurial repository 493f0cf Resurrect display of failed files 283b0a2 Access metadata vars as locals in python snippets f3406dd Fix __getitem__ for DataSmart 6491ed9 fetchers: Use tar --exclude pattern to remove SCM files c81cd1b Fix syntax issue and don't include 'd' in ui_queue 26eda93 Queue up events before the UI is spawned 30cef6b Fix another little bug with undefined var from cache a964761 bb.cache: fix bug from last commit with loading from cache 3f40a2e Reduce bb.cache memory usage a bit 6665139 Fix FuncFailed construction 136a631 Restore FuncFailed argument compatibility 311c9f5 Only reference logfiles that exist c90bfa5 Fix bitbake -k issue introduced by build exception cleanup bfe4bec Don't show tracebacks for SystemExit or KeyboardInterrupt 7afe34e Fix exit code display for task failure 7011ae3 FIXUP: runqueue bb.debug refs 9897d56 Simplify build exception handling 1e7204a Turn Event into a new style class 39d61dc Work around issue with pickling of traceback objects 0533a84 Don't show uncaught exception message for KeyboardInterrupt a4b195f Apply fix for issue where the loggers were constructed with the wrong class 9c2bcae Fix providerlog NameError fc27334 Drop 'fn' arguments to bb.msg functions 55c0b36 Add pending deprecation warnings to the bb.msg functions ecc68fa Switch bitbake internals to use logging directly rather than bb.msg d3a45c7 Use logging in the knotty ui, and pass the log record across directly 4855548 Use the python logging module under the hood for bb.msg 3e57e63 Allow %20 in a file name in the SRC_URI 5c50d43 Ignore python warnings that come from places we don't care about 2dd8c01 Make DataSmart inherit the MutableMapping ABC ebe3850 Split out 'find next buildable task' into a separate generator function 0d1034d Let the RunQueueScheduler control the number of active tasks 384c5cc Add the ability to use runqueue schedulers from the metadata 902b5da misc: Update the email address to a working one. 3631811 Fix IndexError encountered when a 'depends' flag references a nonexistant task 151c4a7 Drop the 'ui failed to start' message, as the ui_init does more in knotty bac0c60 Make realfile optional for better_exec, using the existing fn in the code object 947577a linux-yocto/stable: update SRCREVs for 2.6.34.x -stable update abebeca dtc: add patch to remove -Os for PPC 33d91c0 xserver-kdrive: add DEPENDS for libdrm 78cb0e6 mutter: Add COMPATIBLE_MACHINE list to prevent PPC build f93fd69 lttng-ust: add COMPATIBLE_HOST to prevent ARM/MIPS world build d6c4b83 linux-yocto: update to 2.6.37-rc8 d02e19a lzo: upgrade to version 2.04 5a859fc ncurses: upgrade to version 5.7 f13cb20 gcc-4.5.1: make c++ include path relative to "--sysroot" 2e3cdcb qemuimagetest: Add basic function check for connman 62caed8 qemuimagetest: Add basic function check for gcc/g++/make command in target bcf8853 qemuimagetest: Add basic function check for rpm command f6442e6 qemuimagetest: Add basic function check for zypper command 4c6d5a6 augeas: upgrade to version 0.7.4 6db06e1 gnutls: upgrade to version 2.10.4 a3a94a9 libtasn1: upgrade to version 2.9 8dcba80 parted: upgrade to version 2.3 a2d0921 distro_tracking_fields.inc: add fields for sysprof 560591e distro_tracking_fields.inc: add fields for blktrace e5e1730 man-pages: fixup LIC_FILES_CHKSUM cb79459 base.bbclass: Add error message for base_do_unpack failures 9e912c7 unfs-server: Fix PV issues 96e7518 When shutting down, send SIGTERM, not SIGINT 5850783 python-pygobject: Fix DEPENDS and RDEPENDS for native recipe 8f7fc82 gtk+: Fix BASE_RECOMMENDS, it doesn't need a PN suffix 278aad4 base.bbclass: Correct bb.debug parameters 33f67ee classes: Drop Handled/NotHandled eventhandler keywords, they don't do anything b75330e bitbake.conf: Set a default hash policy globally, not just in the poky distro config a270c0e patch.bbclass: Move vardepsexclude flag to be along side the function using the variable 78584e1 distro_tracking: update pulseaudio, ofono, netbase, etc. 2bf07e7 connman-gnome: update service name a6faa8f connman: upgrade to version 0.65 fef3f7d tremor: upgrade to rev 17636 c7b9695 linux-firmware: upgrade to rev 40c0f950be7040614dc45df54e25e54d00e3b73b e3cdcea libogg: upgrade to version 1.2.2 5ca4069 telepathy-mission-control: upgrade to version 5.7.1 37b15d1 glib-2.0: upgrade to version 2.27.5 ea9f82f dpkg: upgrade to version 1.15.8.7 cd522f9 telepathy-python: upgrade to version 0.15.19 55643cc telepathy-idle: upgrade to version 0.1.7 69c1e98 telepathy-glib: upgrade to version 0.13.6 2ad649c gst-plugins-good: upgrade to version 0.10.26 a943bea gst-plugins-base: upgrade to version 0.10.31 494b678 gstreamer: upgrade to version 0.10.31 aba871f bluez4: upgrade to version 4.82 cf359fb netbase: upgrade to version 4.44 675541b ofono: upgrade to version 0.37 ac36c63 pulseaudio: upgrade to version 0.9.22 40806b1 distro tracking updates f1f14be man-pages: update to 3.32 4c96022 gthumb: update to 2.12.1 68fa944 libgdata: Updated to 0.7.1 5dd8644 bind: update to 8.7.2-P3 8494db7 man: updated to 1.6f, fixed patches c0e6d3e matchbox-theme-sato-2: Updated to svn rev164 and add patch 3f07975 qt: add fotowall back into qt task 16cd831 qmmp: Update qmmp to 0.4.1 a5370af mc: update to 4.7.3 1b765b3 linux-tools.inc: Userspace tools should be compiled with the userspace compiler, not the kernel one 14762f7 kernel.bbclass: Ensure TOOLCHAIN_OPTIONS is passed to KERNEL_CC and KERNEL_LD 59ad91a unfs-server: Fix PV so it obeys the version number policy acf3b8e gtk+.inc: Drop stale moblin override 8e7680b update-rc.d: Allow the primary deamon package to be specified in UPDATERCPN, update gsmd to use this 0e8f0f0 RDEPENDS, RRECOMMENDS -> RDPEPENDS_${PN}, RRECOMMENDS_${PN} 35e3443 task-poky-tools.bb: re-enable blktrace 3156e75 blktrace: Fix parallel make issue 6ee0c26 bb.utils: check if lock file is writable, to fix bug 606 93043c5 yocto/meta: update to 2.6.37-rc7 54d4b8e yocto-kernel: fix kmachine to deal with overrides 22cf272 attr: fix SRC_URI 3996510 acl: use correct Savannah download link c7718d8 cdrtools: Fix LIC_FILES_CHKSUM badecca cdrtools: add LIC_FILES_CHKSUM 3c87fa5 xserver-xf86: fix LIC_FILES_CHKSUM spelling and location e4a8d4f poky-image-live.inc: Add LIC_FILES_CHKSUM b089cf9 libsdl: Add LIC_FILES_CHKSUM e54f08d meta-toolchain Add LIC_FILES_CHKSUM a6bdae0 qemu-helper-nativesdk: Add LIC_FILES_CHKSUM and update LICENSE c6fae98 task-sdk-host: Add LIC_FILES_CHKSUM 30d01a6 task-cross-canadian: Add LIC_FILES_CHKSUM 08e3d29 xserver-kdrive: Add missing DEPENDS on pixman 9951a44 u-boot: add LIC_FILES_CHKSUM f6e8c33 xserver-kdrive: add LIC_FILES_CHKSUM f54168b ldconfig-native: Add LIC_FILES_CHKSUM a173551 poky-image.bbclass: Set LIC_FILES_CHKSUM 67d1fd9 distro_tracking: Add RECIPE_LAST_UPDATE info 8c3a7eb rootfs_ipk: The most recent opkg errors upon file overwrite. Until we fix package conflicts, disable this for now cab983b qemuimage-testlib: Improve quoting causing problems under certain circumstances 6e63f4e linux-yocto: Fix branch name on behalf of Bruce after recent renaming 11833f7 qemuimage-testlib: Fix the check for running qemu processes df74cf2 qemuimage-testlib: Ensure TOPDIR/BUILDDIR are set d210909 qmmp: fix dependencies and packaging db2389e quicky: fix Qt4 runtime dependencies ba3e466 fotowall: fix runtime Qt4 dependencies 6a3b7c6 qmake2.bbclass: add space to end of DEPENDS_prepend b3a195d binutils*.inc: Recipe format cleanup 674f999 binutils: delete unused patches 236face qemuimage-testlib: Add check for existence of image and correctness of ip address 2ed75cf apr-util: add --without-odbc to EXTRA_OECONF b0a2c6d unifdef: add LIC_FILES_CHKSUM 7ac4b54 qemu-helper: add LIC_FILES_CHKSUM 6dca143 eglibc: Only package ld.so.conf, not /etc/rpc which then conflicts with netbase 21bc438 cross-localedef: add LIC_FILES_CHKCSUM 89fc010 linux-yocto: Add LIC_FILES_CHKSUM 45e0265 xserver-xf86: Add LIC_FILES_CHKSUM 564b778 gtk: Add LIC_FILES_CHKSUM e553c79 qemu-helper: Add LIC_FILE_CHKSUMS 84c5aac gdb: Add LIC_FILE_CHKSUMS cd3708a bootst-jam: Add LIC_FILES_CHKSUM 3fbbb69 tzcode: Add LIC_FILES_CHKSUM 6af0877 unifdef Add LIC_FILES_CHKSUM 4df3466 python: Add LIC_FILES_CHKSUM 2b95a00 icon-naming-utils: Add LIC_FILES_CHKSUM 46adc1e desktop-file-utils: Add LIC_FILES_CHKSUM 4773a66 guilt: add LIC_FILES_CHKSUM 4b53a2e python-pygobject: remove older install of generate-constants and add BBCLASSEXTEND 8b08c0d perl: Add LIC_FILES_CHKSUM to native recipe 635fd19 xf86-input-vmmouse: add COMPATIBLE_HOST set to x86* 8330be8 db: add LIC_FILES_CHKSUM 3f6b329 connman: Update to 0.64 to solve build issue with .37 kernel headers 5929ead apr: add configure for NODELAY to mips-common 1c75a5d insane.bbclass: make LIC_FILES_CHKSUM failures report errors 06b7c2e linux-yocto: add dropped qemuppc configuration 983bd9a qemu: Add some checks before enabling KVM 3aa1cfc matchbox-stroke: Make as singleton 4efbda8 matchbox-keyboard: Make as singleton 9bf19c0 linux-yocto: update to 2.6.37-rc6 88d27ef qemu: match kernel headers to preferred kernel f931476 linux-yocto-stable: fix qemux86 branch name b241f63 apr: update x86_64 site config file 66fd56d apt: update use-host patch to support x86_64 585c506 send-pull-request: allow users to select git-send-email or sendmail eca21e6 meta-emenlow: update to the new BSP layout ab83f5f bitbake/depexp: fix early exit b1a2255 opkg: Update to svn r590 to fix symbolic link issues 01cb362 owl-video-widget: bump PR after recent patch 642dd32 poky.bbclass: Move mirrors/premirrors to poky.conf 3bda5b1 bitbake/fetch: Fix fetch error 9c4e63b gnome-doc-utils: use BBCLASSEXTEND for native variant 68030f4 sanity.bbclass: Add check for '.' in PATH and error if found (see bug #572) a034fad documentation/bsp-guide/bsp.xml: Spell checked the file. 94f7dd2 documentation/bsp-guide/bsp.xml: Updated Linux Kernel Configuration section. 1d671c4 documentation/bsp-guide/bsp.xml: replaced the append file line in the template 6224858 documentation/bsp-guide/bsp.xml: Updated the Linux Kernel Configuration section 885dbc7 documentation/bsp-guide/bsp.xml: Added reference to Kernel documentation. 3ad6173 documentation/bsp-guide/bsp.xml: Updated Linux Kernel Configuration section. 5b5fe28 documentation/bsp-guide/bsp.xml: Updated Display Support Files section. 6534947 documentation/bsp-guild/bsp.xml: Updated Miscellaneous Recipe Files section 8505df2 documentation/bsp-guide/bsp.xml: Updated Layer Configuration File Section 8e947f9 documentation/bsp-guide/bsp.xml: Changed numbering scheme. 27ff33f documentation/bsp-guide/bsp.xml: Commented out three sections. 7f18ffe documentation/bsp-guide/bsp.xml: Updated Linux Kernel Configuration section. 23f5c94 documentation/bsp-guide/bsp.xml: Added a Display Support Files section. 6eed8ff documentation/bsp-guide/bsp.xml: Removed the recipes-bsp/formfactor directory from the common structure. eddd579 documentation/bsp-guide/bsp.xml: Added a Miscellaneous Recipe Files section 7527f75 documentation/bsp-guide/bsp.xml: Updated the Hardware Configuration Options section 1e68ee5 documenation/bsp-guide/bsp.xml: Updated the Layer Configuration File section. b3b9476 documentation/bsp-guide/bsp.xml: Updated the Pre-built User Binaries section. e71027e documentation/bsp-guide/bsp.xml: Added the README section. 0ab1b2c documentation/bsp-guide/bsp.xml: Added new "License Files" section. cd9dc32 documentation/bsp-guide/bsp.xml: Updated the introductary paragraph to the sections. 581bf7f documentation/bsp-work/bsp.xml: Added crownbay BSP example to section 1.1. 6e82f12 documentation/bsp-guide/bsp.xml: Updated common form for file structure. 91cf263 documentation/bsp-guide/bsp.xml: Inserted text before the file structure example 49ebf6b documentation/bsp-guide/bsp.xml: Created better BSP example base names e2b180a documentation/bsp-guide/bsp.xml: Added information about /binary 775b4ae documentation/bsp-guide/bsp.xml: Fixed typo 5405b3d documentation/bsp-guide/bsp.xml: Added note qualifying BSP file structure. 7e4b55b documentation/bsp-guide/bsp.xml: Changed meta naming convention 4cd40db Revert "consolekit: Update to 0.4.3" - was a duplicate commit 127b82b task-poky-clutter: remove clutter-box2d from default build 5f50a9f libacpi: remove patch that is no longer needed by upstream 7b93c57 python-pygobject: add --disable-introspection 0077ae6 python-pygobject: Fix SRC_URI checksums e591958 puzzles: Fix SRC_URI checksums d1a225c patch: Fix SRC_URI[sha256] 5cfc36b web-webkit: Updated SVN Rev to 130 & added LIC_FILES_CHKSUM fbf360b gtk-theme-darkilouche: moved to meta-extras cb1f3e0 connman-gnome: Remove the applet and properties desktop icons eb74a05 linux-yocto: remove or adjust to _ in branch names 703148f send-pull-request: Use current date in mail headers 2d65d83 gettext: Add source and license checkums a09fbe3 gnome-doc-utils: ensure a native variant exists for document generation 3b54615 gnome-common: add native variant via BBCLASSEXTEND c914a02 gst-plugins: fix for make 3.82 6a31a2a meta-environment: Added package of meta-environment-${TARGET_ARCH} for environment files. 05963b0 runqueue.py: set BB_TASKHASH approriately after moving to fork() 67d6814 rm_work: With the recent pseudo changes, this no longer makes sense 2d1007b bitbake/fetch: Only checksum downloads when they're first downloaded and a checksum is present 52aada2 bitbake/runqueue.py: Somehow the python environment mapping is failing so do it manually 60ccdaa poky-init-build-env: Enable all POSIX shells 86b6b09 poky-init-build-env: Breakup the environment script 9975c00 perl-native: Make the sstate checksum for perl depend on the hardcoded path until this is fixed 2e94e9a kernel.bbclass: Use KERNEL_IMAGE_BASE_NAME variable instead of the expanded equivalent. Fixes sstate rebuild issue 1e40bc8 rootfs_rpm: Add --ignoresize option when performing DB operations on a rootfs 0fb111b fakeroot/fakechroot: These have been replaced by pseudo, move to meta-extras 3f814ff sstate.bbclass: delete sstate files when doing cleanall d4ba59c bitbake/fetch: Add missing return so if a checksum isn't present, it isn't checked 7abdf3e bitbake/fetch: Checksum validity fixes cf41054 shasum-native: Drop recipe since we have internal handling in python for this now edd290b base/utils.bbclass: Drop former checksum code now bitbake is handling this for us b8d69d6 FetchData: add SRC_URI checksum 670c18c sanity.bbclass: add check for creation of long filenames 1993ca1 sanity.bbclass: allow minimisation of impact of more invasive sanity checks 2ec7757 sanity.bbclass: make indenting consistent 834f0c5 siggen.py: print taskname when seeing mismatched hash in cache 63dcec9 distro_tracking: change owner of some recipe 2e73759 distro_tracking: Fix name inconsistency 995d467 ed: Change bin path eac0898 documentation/yocto-project-qs/yocto-project-qs.xml: Fixed grammar problem ba3b0db documentation/kernel-manual/figures/kernel-architecture-overview.png: updated figure 1f3e313 bitbake Revert bitbake exec() and go back to fork() for performace wins (first draft) 81f3d46 pseudo: Fixup for cache problem 3abc81b bitbake.conf/poky-env-internal: Adjust PSEUDO variables to match pseudo enabled/disabled modes f04e6a5 scripts/bitbake: Add wrapper script which ensures pseudo is built and available 38a4698 poky-default-revisions.inc: Update pseudo revision to include exec/fork improvements and speed optimisations 68ddced poky-env-internal: Search scripts before the bitbake directory so we can override bitbake's main script a86f960 bitbake/runqueue: Revert previous setscene noexec changes and ensure setscene stamp exists for setscene noexec tasks 56ef2a0 bitbake/runqueue: Clean up message log levels b7b40ed Update to the latest swabber. 84263db Calculate CCACHE_DIR by calling host's ccache config. 4c72af6 Swabber's update_distro automatically updates the blob now. b544d01 Stop using hardcoded paths, use new Ubuntu and generic filters. 8021200 lsbsetup: add missing directory install 137286b distro_tracking: update status for upgraded recipes 111146c distro_tracking_fields: Update entries with corrections 3a569bb Revert "gst-plugins: fix for make 3.82" ac43646 gst-plugins-base: add avahi to DEPENDS 06570b8 gst-plugins: fix for make 3.82 258f8ce contacts: fix for make 3.82 3f64aed dates: fix for Make 3.82 3188c6a web-webkit: fix for make 3.82 a9ce04f owl-video-widget: fix Makefile for super strict make 3.82 67622b4 libowl-av: fix for Make 3.82 8fc07ca gstreamer: fix to comply with make 3.82's stricter parser ece252c udev: Add rule to create /dev/fb to fix igep0020 platform X boot issue d9314e1 distro_tracking: update status for upgraded recipes 3df335a python-pygobject: upgrade from 2.21.1 to 2.27.0 d476a23 gcc_4.5.1: Move the license related information in the right file 3faa3c7 distrodata: fix message d436d3b eglibc: organize the recipes lic and other meta data in common file 310b6e4 README.hardware: Add Atom PC image flashing documentation 6ae9a63 world-broken.inc: Fix override values to include correct prefix 31d804f fstests: upgrade to svn revision #426 a7f3a2f patch-2.6.1: implement new patch recipe with latest upstream f528a15 patch_2.5.9: clean up the recipe e9d82df gst-ffmpeg: upgrade to version 0.10.11 e78d586 Introduce SDK_VERSION which is based on DISTRO_VERSION for fixing bug 586 fcd14a2 external-python-tarball: add chrpath to the tarball c2f93b9 chrpath: add nativesdk variant ae4f5c9 Add extra parameters options for poky-qemu scripts fded753 distrodata: add eventhandler for checkpkg task 605f8c9 distro_tracking: fix VERSION Misspellings and add missing recipe versions af3be58 recipes-multimedia: Update SUMMARY and DESCRIPTIONS 5c85064 recipes-kernel: Update SUMMARY and DESCRIPTION cda749d recipes-graphics: Add SUMMARY and update DESCRIPTION 04e811c recipes-gnome: Add Summary and Description information f992d6b recipes-extended: Add Summary information 8bcb64c recipes-devtools: Add Summary information 2e0a8af avahi: Fix typo in summary 2c37d41 Add glossary for PACKAGE_DESCRIPTION and PACKAGE_SUMMARY for binary packaging cc8ea76 kernel.bbclass: Set vardepsexclusive for KERNEL_IMAGE_BASE_NAME c9df637 kernel.bbclass: Rename do_deploy so the function can be overridden in recipes aa1a780 siggen.py: make sure stamp directory existing 15f45b3 openssl: restore -Wall flag b99fd03 sanity.bbclass: Check if DISPLAY is set when IMAGETEST is set ace52b0 bitbake/runqueue.py: We should just failoutright in scenequeue for noexec tasks, not skip them so stamps are created e497b89 scripts/poky-qemu: Improve tmp layout assumption bb783af runqueue.py: use correct task ID when checking validity of setscene tasks 5fadc9b poky.conf: adjust variable whitelisting to fix sstate checksums 80e6408 bitbake: add optional expansion to getVarFlag() a52e406 bitbake: allow excluding dependencies of variables 27c1171 documentation/bsp-guide/bsp.xml: General edits. e7f5bc2 bsp-guide: correct BBPATH example ef8e0d6 documentation/kernel-manual/kernel-how-to.xml: added newline character 22cd27d documentation/kernel-manual/kernel-how-to.xml: fixed typo bug 588 e8017dc gnome-desktop: add --disable-desktop-docs 497b759 linux-yocto/stable: add blktrace configuration to standard branch a836ac4 rpm: Fix LIC_FILES_CHKSUM to use COPYING.LIB 526da3b lsbsetup: fix install process b3b25c8 clutter-box2d: Add LIC_FILES_CHKSUM 2f845ae libsoup: Add LIC_FILES_CHKSUM 8d77988 libexif: Add LIC_FILES_CHKSUM f69986d gst-meta-base: Add LIC_FILES_CHKSUM 4f25751 libxscrnsaver: Add LIC_FILES_CHKSUM b100969 task-poky-clutter: Add LIC_FILES_CHKSUM e1e5c83 mutter: Add LIC_FILES_CHKSUM 198baaf table: Add LIC_FILES_CHKSUM c6115dc clutter: Add LIC_FILES_CHKSUM 9ad63ed gtkhtml2: Add LIC_FILES_CHKSUM 8da7be2 rpm: Add LIC_FILES_CHKSUM 153d79a patch: Add LIC_FILES_CHKSUM 984162e meta-ide-suppport: Add LIC_FILES_CHKSUM 69ad383 linux-yocto: fix machine compatibility a6e6af9 qemuppc: update 2.6.37 SRCREV 3a78838 usbinit: Fix License checksum issue a15eff0 qemu-config: Fix License checksum issues 56973ee update-modules/udev-extraconf: Fix license checksum handling 98d5b91 linux-libc-headers: Correct license checksum fd3e7d3 tcl: Correct license checksums 03ae4a6 Correct LIC_FILES_CHKSUM typos 042ba68 image-swab: Correct PARALLEL_MAKE typo d9573b4 Correct DESCRIPTION typos in various recipes 1b26331 distro_tracking_fields: added missing quote 33fccd7 task-poky-lsb: removing missing packages f39dae9 creat-lsb-image: download lsb test suite and creat a image with lsb test suite bc61818 lsbsetup: Set up lsb test environment on target platform aac5f5c qemu: update arm timer handling 48d00ad linux-libc-headers-yocto: use common linux-yocto routines 0e7d995 yocto-kernel: factor common routes, update to 2.6.37 and branch renaming 3ca38b7 update-modules: update license info a14c385 usbinit: update license info f68895d qemu-config: update license info f3fa12b udev-extraconf: add license info 937812c diffutils: upgrade to version 3.0 b341207 fakechroot: upgrade to version 2.13.1 082c4e2 fakeroot: upgrade to version 1.14.5 1901134 udev: upgrade to version 164 8d702d7 sysprof: add system-wide performance profiler for Linux. 732a117 documentation/poky-ref-manual/ref-bitbake.xml: Completed general edits. be622ae documentation/kernel-manual/kernel-concepts.xml: Re-worded a note to state best practices for organizing shared features. 579b5c2 documentation/kernel-manual: Added Bruce Ashfields review comments. 9f4c630 documentation/poky-ref-manual: changes applied from a patch submitted by Cyril Humbert. 111f067 documentation/poky-ref-manual: General edits up the Parsing section. fcbacff documentation/poky-ref-manual: Changed spelling of bitbake to "BitBake" when used in text. 252cecf3 documentation/poky-ref-manual: English scrub performed for consistency. 57d38a7 documentation/poky-ref-manual: Updated Mailing Lists and IRC sections in Appendix I 11cdfab documentation/yocto-project-qs: Added the gnome-doc-utils package to the Fedora required pacakge list. 4fe7cb5 documentation/poky-ref-manual: Fixed two typo's 2f4db31 documentation/poky-ref-manual: Fixed to mis-spellings 6d46bc3 documentation/poky-ref-manual: Updated the list of links to include a link to the Yocto Project site. 23dcc1b documentation/kernel-manual: Added an image to the authorgroup so a title would display in the HTML version of the manual. ddbd172 documentation/kernel-manual/kernel-how-to.xml: Completed scrub to the text. 5bda926 documentation/kernel-manual/kerenel-how-to.xml: Edits to clean up text. 1722898 documentation/kernel-manual/kernel-manual.xml: Changed the copyright statement to conform to sharing. 14a8edb documentation/kernel-manual/kernel-concepts.xml: Updated the text so that the conceptual figure showing the kernel is out. 15cf572 documentation/kernel-manual: Modified to call new chapter structure. 2a993a0 documentation/kernel-manual: Added these files so the book could have chapters. d2e5401 documentation/kernel-manual/yocto-project-kernel-manual.xml: Removed this file so manual could be structured into a book with chapters. c272830 documentation/poky-ref-manual/poky-ref-manual.xml: Changed the revision date to 24 November 2010 62ef8bd documentation/kernel-manual/Makefile: changed the pdf, tgz, and html output files to be named "kernel-manual" ce3f71a poky/.gitignore: updated the lines for the kernel manual 05c8e13 documentation/kernel-manual/Makefile: changed the name of the PDF output file to "kernel-manual.pdf" c479301 documentation/kernel-manual/kernel-manual.xml: added this file so that PDF could be built. fe994de poky/.git/.gitignore: added the yocto-project-kernel-manual.pdf file d468cc4 documentation/kernel-manual/yocto-project-kernel-manual.xml: removed the code that inserts the image. 5ed39a3 documentation/kernel-manual/Makefile: Added code to create a PDF version. 5d64bb0 documentation/kernel-manual/figures/kernel-title.png: Added a PNG file to display in the PDF version on the title page. b89a971 documentation/kernel-manual/yocto-project-kernel-manual.xml: Added a new section called "BSP: Creating: 7dbdd91 documentation/kernel-manual/style.css: Changed h2 through h6 styles. 5b10a72 documentation/kernel-manual/yocto-project-kernel-manual.xml: Removed sections not fit for 0.9 release. db82144 .git/.gitignore: Added files for the new kernel document. 2982e7c documentation/kernel-manual/yocto-project-kernel-manual.xml and yocto-project-kernel-manual-customization.xsl: Renamed files with correct spelling for kernel. bad46ab documentation/kernel-manual/yocto-project-kernal-manual.xml: and yocto-project-kernal-manual-customization.xsl removed from tree. 3e7a8a6 documentation/kernel-manual/Makefile: fixed mis-spelling of kernel for files 000f052 documentation/kerenl-manual: New directory and files for kernel manual. aa58345 documentation/yocto-project-qs/yocto-project-qs.xml: Corrected poky-qemu command example in the 'Using Pre-Build Binaries and QEMU' section. eccaafa documentation/poky-ref-manual/development.xml: Fixed orderedlist and itemizedlist spacing. a20a167 Poky Reference Manual: General edits to the developing chapter. 8feae13 Poky Reference Manual: Added INC_PR documentation. e7e1248 BSP Guide and BSP Chapter: Sync'ed these two files 12d1378 BSP Developers Guide: Edits to text 0e4df95 Enable '-opengl' option for qt4 in order to generate libQtOpenGL.so qt4-x11-free: Only build opengl for x86 platforms since only these have GL support at present 4806041 liburi-perl: Add perl-uri d905d18 libxml-perl: Add libxml-perl 0d5e71e libxml-parser-perl: Fix bug of empty package of libxml-parser-perl. 6e4bfac perl: Fix adding GDBM_File module for LSB test. 56c897d texinfo: Add new package 47a1f50 consolekit: Update to 0.4.3 f07b1a2 Drop variables that do nothing 05053ef cross-canadian: Update after PN changes to include TARGET_ARCH 88ee037 task-cross-canadian: Ensure it reflects TARGET_ARCH in PN 2021e2a Using TRANSLATED_TARGET_ARCH instead of TARGET_ARCH. 322d6ab cross-canadian: pkg name includes target arch c47cfc5 bitbake/bitbake-runtask: Since the parent has set the environment up cleanly we don't need to filter this ourselves anymore 47efcfd poky.conf: move the SDK install into version directories a1175b8 qemu: Enable KVM support on x86/x86-64 host 3d08b9f SRC_URI Checksums Additionals ba5e0b9 Make poky-qemu and related scripts work with arbitrary SDK locations 7581654 poky-env-internal: Allow the environment variable POKYCONF to provide the basis for the working "conf" directory. c91caee devshell: Clean up devshell code so this task doesn't polute the global namespace 0ba9a9f bitbake: Overhaul environment handling 39dd604 poky.conf: add more hash whitelist 4745ff6 hostap-conf: update LICENSE and LIC_FILES_CHKSUM info 73232c7 bluez-dtl1-workaround: update LIC_FILES_CHKSUM info 3c4ebf0 orinoco-conf: update LICENSE and LIC_FILES_CHKSUM info 409ac23 makedevs: update LIC_FILES_CHKSUM info c538ef3 bitbake/cooker: fix idle command processing in servers fdd034d world-broken: Update with Clutter items 0896127 openssl-native: disable execstack flag to prevent problems with SELinux 0f716e6 xserver-xf86-config: add license checksum a1d635b xserver-nodm-init: add license checksum c344349 x11-common: add license checksum b9694bd distro_tracking: update gupnp, gst-ffmpeg, gst-fluendo-mp3, etc. 033e430 pulseaudio: upgrade to version 0.9.21 2c05c86 gst-fluendo-mpegdemux: upgrade to version 0.10.62 71e11d6 gst-fluendo-mp3: upgrade to version 0.10.15 f84c6d2 gupnp: upgrade to version 0.14.0 2628ea7 gssdp: upgrade to version 0.9.0 b45b75b modutils-initscripts:Add license checksum to bb file 6592cdc libart-lgpl: add mips art_config.h 918ebfb telepathy-python: Make sure py files are packages correctly aa5822b gnome-icon-theme: Disable PACKAGE_ARCH='all' until we unbreak it for multiarch builds 2feaffa poky.conf: add BB_TASKHASH to BB_HASHBASE_WHITELIST 5526a64f bitbake/goggle: add a ProgressBar for parse progress 48e2757 bitbake/goggle: automatically show most recently added message b9617bf bitbake/xmlrpc: Modify xmlrpc server to work with Python 2.7 84384aa bitbake/crumbs: add optional pbar parameter to RunningBuild.handle_event() 1307d64 bitbake/depexp: Factor ProgressBar into a separate class in crumbs/ 8cbaa9f bitbake/goggle: interaction tweaks cb6eff7 bitbake/crumbs: fix the event name determination bd8ff30 bitbake/crumbs: do the test for ignored messages sooner 96da2ea bitbake/crumbs: Fix crumbs UI for bitbake event class name changes 4336d67 siggen.py: fix the wrong usage on BB_TASKHASH_WHITELIST 55859b9 imagetest-qemu: Allow the task to run after any rootfs is created and also standalone 7aacc31 bitbake/data_smart: Refactor _append/_prepend code to remove duplication c354955 bitbake/data_smart: Fix append/prepend/override ordering issue 9d0d2b0 Remove unused tunctl-src/Makefile from scripts/ 01da080 Add sanity test scenarios for -lsb images 47cb074 task-poky-tools: disable blktrace due to build failures 392b3ea gupnp: add gnome-icon-theme to DEPENDS 63b85e7 sanity.bbclass: Warn people when TERMCMD is set to a non-installed program d5f0807 local.conf.sample: Note extra variables required when disabling en_US locale 1b679bf libart-lgpl: Add config.h for x86_64 b407939 libnl: fix typo in the Makefile fix 6940c96 preferred-xorg-versions: Update to match new versions beb4b51 eee-acpi-scripts: Update to 1.1.11 5878737 distro_tracking_fields: update fields for devel/toolchain recipes bc02b53 subversion: upgrade from 1.5.5 to 1.6.13 f20cb30 gtk-engines: Update to 2.20.2 06aacf6 gnome-icon-theme: Update to 2.31.0 b8b13dc gnome-desktop: Update to 2.32.1 b651203 web: Update to svn r129 25283b9 x11vnc: Update to 0.9.12 d0c0128 x11perf: Update to 1.5.2 48ba76a puzzles: Update to svn r9023 ccdd26d ethtool: Update to 2.6.36 f49a3c4 consolekit: Update to 0.4.3 4fd6d32 acpid: update to 1.0.10 3e597cd tidy: Add license checksum 443178d pointercal: Add license checksum 88697ed bluez-hcidump: update LICENSE and LIC_FILES_CHKSUM info 4bbb8a9 task-poky-boot: update LIC_FILES_CHKSUM info cb2c6b8 task-poky-nfs: update LIC_FILES_CHKSUM info f3dc033 ppp-dialin: update LIC_FILES_CHKSUM info e24849e task-poky-qt: update LIC_FILES_CHKSUM info a26cd44 task-poky-standalone-sdk-target: update LIC_FILES_CHKSUM info 95a9d52 task-poky-apps-x11-pimlico: update LIC_FILES_CHKSUM info 4371159 telepathy-glib: update LIC_FILES_CHKSUM info 4f6cde5 task-poky-basic: update LIC_FILES_CHKSUM info 58dac9a task-poky-sdk-gmae: update LIC_FILES_CHKSUM info 90b69e9 task-poky-standalone-gmae-sdk-target: update LIC_FILES_CHKSUM info 28cd1e7 task-poky-tools: update LIC_FILES_CHKSUM info 0c7a4e0 task-base: update LIC_FILES_CHKSUM info a02edf1 task-poky-x11-sato: update LIC_FILES_CHKSUM info 7d6f03c formfactor: update LIC_FILES_CHKSUM info 2e671b5 task-poky-sdk: update LIC_FILES_CHKSUM info 3b32beb task-poky-lsb: update LIC_FILES_CHKSUM info f003c9f task-poky: update LIC_FILES_CHKSUM info 70c63bb run-postinsts: update LIC_FILES_CHKSUM info da81545 distro_tracking_fields: update fields for devel/toolchain recipes 4b79150 tcl: upgrade from 8.5.8 to 8.5.9 37b6d8b git: upgrade from 1.7.2.1 to 1.7.3.2 bd72444 makedepend: upgrade from 1.0.2 to 1.0.3 01e53ca m4: upgrade from 1.4.13 to 1.4.15 88dbadf distro_tracking_fields.inc: update insserv and libatomics-ops 3432984 libatomics-ops: recipe updates, fix build for mips 1f42782 insserv: upgrade to version 1.14.0 9aef79e keymaps:Add license checksum and update the GPL information 32662fd fstests:Add license checksum and update the GPL information d1cd2fd initramfs-live-boot:Add license checksum to bb file a12aa5a initramfs-boot:Add license checksum to bb file 7adf2aa initramfs-live-install:Add license checksum to bb file e78c789 initscripts:Add a patch of GPLv2 license and its checksum to bb file ccd590b siggen.py: set 'runtaskdeps' correctly a0033b6 bitbake/utils.py: Improve traceback to be more helpful/clear to users 1a0c39e0 bitbake/utils.py: Ensure the last lines of functions are printed in tracebacks a80a839 Drop AUTOTOOLS_STAGE_PKGCONFIG variable as its not used anywhere 1d505f2 Revert "qemugl: upgrade to git commit 33466cd83c2a9d7d3fb9fe437fb6a4d6fbd866b9" 13edb27 Revert "gssdp: Upgrade to version 0.9.0" 0284df3 Revert "gssdp: Disable gobject introspection explicitly" cdc640f libart-lgpl: Add missing config file - allows builds on PowerPC 5592bf2 librsvg: fix gdk-pixbuf-query-loaders not found in path d2de3dc libnl: fix parallel make b82ef69 opkg-config-base:Add license checksum to bb file 35c948f gssdp: Disable gobject introspection explicitly 0dc6070 table move missing patch back to correct location 0c1d76f task-poky-clutter: remove cairo packages 0dddee5 preferred-xorg-versions: updated for lastest package updates b60681e world-broken: cleanup post reorg and world cleanup 7e4e45a dhcp: fix cross build 070f173 bind: add new recipe d36f6f4 table.inc: correct version number b721e08 eds-tools: Fix SRCREV and add LIC_FILE_CHKSUM ce4d631 gobject-introspection: Fix pathfix.patch to correct glibconfig.h location 4bcba3f qemugl: upgrade to git commit 33466cd83c2a9d7d3fb9fe437fb6a4d6fbd866b9 a3a4960 mesa-dri-glsl-native: upgrade from 7.8.2 to 7.9 5358036 mesa-demo: add new recpies mesa demo 8.0.2 3562f2b glew: add new recipes glew 1.5.7 5d17116 mesa: enable glu 770cbc0 mesa-xlib: upgrade from 7.8.2 to 7.9 742f217 mesa-dri: upgrade from 7.8.2 to 7.9 2e95941 talloc: add new recipes talloc 2.0.1 0325530 libxml2-native: remove the --without-debug option af03613 sqlite: upgrade from 3.6.23 to 3.7.3 21866d7 zeroconf: Fix LICENSE and LIC_FILES_CHKSUM info ba500f0 telepathy-idle: Fix LICENSE and LIC_FILES_CHKSUM info 192c44e pulseaudio: Fix LICENSE and LIC_FILES_CHKSUM info 7bd5e70 libtelepathy: Fix LICENSE and LIC_FILES_CHKSUM info f58ff34 libsamplerate0: Fix LICENSE and LIC_FILES_CHKSUM info cebfbae libomxil: Fix LICENSE and LIC_FILES_CHKSUM info 0f95bdb gupnp: Update LICENSE and LIC_FILES_CHKSUM info a3c1bb3 gst-fluendo-mpegdemux: Fix LICENSE info 1d579ec gst-fluendo-mp3: Update LICENSE and LIC_FILES_CHKSUM info fa3f028 gst-ffmpeg: Update LICENSE and LIC_FILES_CHKSUM info efc0643 clutter-gst: Update LICENSE and LIC_FILES_CHKSUM info 9cdb0ad linux-firmware: Update LIC_FILES_CHKSUM info 57fdd84 gthumb:Add license checksum to bb file 429a526 qemu: Add license checksum aabb6ee matchbox-stroke: Add license checksum 6697812 matchbox-session-sato: Add license checksum 20c52b0 libfakekey: Add license checksum d505b06 xvinfo: Add license checksum 027c385 metacity: Add license checksum 818cb80 matchbox-wm-2: Add license checksum 5209a73 libgalago: Add license checksum d41496a libcanberra: Add license check sum 4bcce42 gtk-theme-torturer: Add license check sum a9ad725 gtk-doc: Add license checksum cab03ef distro_tracking: gupnp-av, gupnp-tools, ofono, etc. 760675e libgsmd: Upgrade to rev 5394 363fd6e gupnp-av: Upgrade to version 0.7.0 a52de6f ofono: Upgrade to version 0.33 0cd2a26 gssdp: Upgrade to version 0.9.0 91eec68 gupnp-tools: Upgrade to version 0.8 a2042b5 gst-openmax: Upgrade to version 0.10.1 c5cfd67 wpa-supplicant: Upgrade to version 0.7.3 35793fd minicom: Upgrade to version 2.4 a5de5a7 connman: Upgrade to version 0.63 8399ca4 telepathy-mission-control: Upgrade to version 5.7.0 d239fef telepathy-python: Upgrade to version 0.15.18 63aaa4e gypsy: Upgrade to version 0.8 07d5f6c cmake-native: Upgrade to version 2.8.3 36baa90 flex:Add license checksum and add the license information c942f83 base-files:Add license checksum to bb file 00c5be8 qmmp:Add license checksum to bb file e2444d6 mc:Add license checksum to bb file 6d70138 libxml-simple-perl:Add license checksum to bb file a82702d libtheora:Add license checksum to bb file dcf68c3 dtc:Add license checksum and add the GPL information c373cfc lsof:Add license checksum to bb file 85266fa make:Add license checksum and update the GPL information c4c11d9d quilt:Add license checksum and update the GPL information d5132c5 python-scons:Add license checksum and update the GPL information 5d378ef python-pyrex:Add license checksum and update the License information f48c8d8 python-pygtk:Add license checksum and update the GPL information d5e9c26 python-pygobject:Add license checksum and update the GPL information 373e5c2 python-imaging:Add license checksum to bb file 6b306bc python-dbus:Add license checksum to bb file 75f93fe python:Add license checksum to bb file 246daac prelink:Add license checksum to bb file 96a1ab0 perl:Add license checksum to bb file 7eca517 mpfr:Add license checksum and update the GPL information 7a2f8ad xf86-video-omapfb: add license checksum 499b73a xf86-video-intel: add license checksum 155b0aa xf86-input-synaptics: add license checksum 4d22fc5 xf86-video-vesa: add license checksum 05c4828 qemugl: add license checksum e8127b7 libdrm: add license checksum b6f8686 iputils: add license checksum 5f4801b fotowall: add license checksum 3c3c8d7 libgdata: Add 0.6.5 as new recipe 97f78fe gcc:Add license checksum and update the GPL information ed40911 gdb:Add license checksum and update the GPL information 8eea67c gnu-config:Add license checksum and update the GPL information 0727e29 libconvert-ans1-perl:Add license checksum and update the GPL information 9a5cf01 libtimedate-perl:Add license checksum and update the GPL information 41b9ce7 libxml-parser-perl:Add license checksum to bb file 8d23d2a console-tools:Add license checksum and update the GPL information 6230d87 gobject-introspection:Add license checksum to bb file 76ca305 consolekit:Add license checksum to bb file b4b4f02 poky-feed-config-opkg: Add license checksum to bb file 7bb3e4f opkg-collateral:Add license checksum to bb file 2de0ee1 modutils-collateral:Add license checksum to bb file 16c22c6 quicky:Add license checksum to bb file b9e4001 u-boot-mkimage: update license info 409b710 ubootchart: update license info f5c6912 yaffs2-utils: update license info b9031a6 zaurusd: update license info f03b233 v86d: update license info 713262b tinylogin: update license info 39611d3 tiff: update license info 02807a0 setserial: update license info 3fe1902 resolvconf: update license info e90278a parted: update license info f8fe648 ncurses: update license info bc1d78d hdparm: update license info 7fdffff fakechroot: update license info 11566ac diffutils: update license 97951e9 aspell: update license 611ea2f xrandr: fix License Checksum 386a1f7 xproto: disable spec generation b7ab194 libfontenc: add dependency on font-util 9e87cbd librsvg: append SRC_URI after inherit 1089257 font-alias: Drop patch already applied upstream 9a3f25d package-index: Fix after noexec changes 6e440f8 native.bbclass: Mark various package functions as noexec since they don't do any work 58396a5 bitbake/runqueue: Teach scenequeue about noexec tasks (since they don't do anything we can assume they're always successful 8044fc3 native.bbclasS: Add handing to remap RDEPENDS fields and avoid crossed target and native dependency trees 2bcbb2f font-alias: Set RDEPENDS to exclude encodings in the native case a146aa1 font-util: Set RDEPENDS for virtclass-native to exclude encodings to copy DEPENDS d4125bc bitbake: Simplfy pre and post cooker hooks c020207 utility-tasks: Switch listtasks to use bb.plain() for printing output 8a391c3 rm_work: Set BB_SCHEDULER as done in OE.dev to ensure disk space is freed sooner rather than at the end of the build 144d1b5 qemu: fix failure to find zlib header files during configure 91ef6ae curl: Fix gnutls option (append ordering was incorrect) 971fc21 scripts: Remove obsolete stage-manager scripts e1ab1e9 scripts/poky-env-internal: Further cleanups f5e142a scripts/poky-env-internal: Remove unset variables bfa6649 scripts/poky-env-internal/image-swab.bbclass: Remove OEROOT references a39f335 bitbake/runqueue.py: Fix stamp handling for noexec tasks 32d1125 distro_tracking_fields.inc: update sudo, libpam, and mtools 70be879 mtools: add version 4.0.15 698cef8 libpam: upgrade to version 1.1.3 c144f16 sudo: upgrade to version 1.7.4p4 345f777 preferred-xorg-versions: Updated to reflect recipe updates 80f592c liberation-fonts: Added version 1.06, PREFERRED_VERSION is still 1.04 b43d82d gnome-doc-utils: Update to version 0.20.2 5094074 cronie: Update to version 1.4.6 333ca67 libgnome-vfs: Update to version 2.24.4 b3934f3 libart-lgpl: Update to version 2.3.21 4127ac1 librsvg: Update to version 2.32.0 cfb06f9 freetype: Update to version 2.4.3 da7c644 libxcb: Update to version 1.7 eb0ca3f xrandr: Update to version 1.3.4 c653713 encodings: Update to version 1.0.4 96dc0e2 font-alias: Update to version 1.0.3 3b044b6 font-util: Update to version 1.2.0 46f5228 libfontenc: Update to version 1.1.0 000eb8a libice: Update to version 1.0.7 8debd91 libpciaccess: Update to version 0.12.0 ffb24af libsm: Update to version 1.2.0 3ecef76 libxau: Update to version 1.0.6 fb0bd9a libxcomposite: Update to version 0.4.3 80d2d05 libxcursor: Update to version 1.1.11 767ba22 libxdamage: Update to version 1.1.3 cd60f3d libxdmcp: Update to version 1.1.0 08f3edf libxext: Update to version 1.2.0 d65517a libxfixes: Update to version 4.0.5 9e79a55 libxfont: Update to version 1.4.3 ca1f5d4 libxft: Update to version 2.2.0 287ec4b libxi: Update to version 1.4.0 0071b8b libxinerama: Update to version 1.1.1 5f6f886 libxkbfile: Update to version 1.0.7 69cdecf libxmu: Update to version 1.1.0 0ad8d9a libxpm: Update to version 3.5.9 e966497 librandr: Update to version 1.3.1 690c9bd librender: Update to version 0.9.6 23737dc libres: Update to version 1.0.5 eb8aa75 libxt: Update to version 1.0.9 129a3a8 libxtst: Update to version 1.2.0 aea4b37 libxv: Update to version 1.0.6 5d83b77 xkeyboard-config: Update to version 2.0 56e6da4 libxxf86dga: Update to version 1.1.2 d184078 libxxf86vm: Update to version 1.1.1 ed874ed xtrans: Update to version 1.2.6 3e07bee xproto: Update to version 7.0.19 2b4650f util-macros: Update to version 1.11 df8d889 lttng-control: Update to version 0.88 af67762 lttng-ust: Update to version 0.8 5de3fbc liburcu: Update to version 0.4.8 f35839e makedepend:Add license checksum to bb file 0b43623 m4:Add license checksum to bb file 7ef481c libpcre:Add license checksum to bb file d4d2e21 libmpc:Add license checksum and update the GPL information 693e593 intltool:Add license checksum to bb file 2cad70d gmp:Add license checksum and add the GPL information 4928ad8 distcc:Add license checksum to bb file cb45aa0 diffstat:Add license checksum to bb file d68efb6 byacc:Add license checksum and add the GPL information a9489ba bison:Add license checksum to bb file c8efa81 automake:Add license checksum to bb file dae0331 autoconf:Add license checksum and add the GPL information 0b87aa1 psmisc:Add license checksum to bb file 9e4e8ce pax-utils:Add license checksum to bb file ab2596d mtools:Add license checksum to bb file 20fbe9f modutils:Add license checksum to bb file 56fa05a libpam:Add license checksum to bb file 0b35808 libgdbus:Add license checksum and update the GPL information 890e14c libffi:Add license checksum to bb file 5e1c8ff libatomics-ops:Add license checksum and update the GPL information 429d583 libacpi:Add license checksum to bb file b2ff1cd insserv:Add license checksum and update the GPL information 483ab5b gssdp:Add license checksum and update the GPL information f3a3b93 expat:Add license checksum to bb file a391494 dosfstools:Add license checksum and update the GPL information 8ca67f7 chrpath:Add license checksum and update the GPL to bb file 78801f4 beecrypt:Add license checksum and update the GPL to bb file 7592186 apt:Add license checksum to bb file 7f9cf21 apr-util:Add license checksum to bb file 0ec2c23 apr:Add license checksum to bb file 8ad0cb0 acpid: Add license checksum to bb file b2470c8 minicom: Add license file checksum and update the GPL information to bb file 69c4983 dpkg:Add license file checksum to bb file 7d3a380 lttng:Add license file checksum and update the GPL information 2d72fd5 libxtrap:Add license file checksum to bb file 91c1a0f ttf-bitstream-vera:Add license file checksum to bb file d383c46 libxprintutil:Add license checksum to bb file a347504 libxprintapputil:Add license checksum to bb file 5b38a2a libxpm: Add license file checksum to bb file 2050a72 libunique:Add license file checksum to bb file e2b9cab liberation-fonts:Add license file checksum to bb file 533a003 libart-lgpl:Add license file checksum and update the GPL information 4cf8bff gnome-doc-utils:Add LGPL file and GPL file checksum to bb file 34d0256 gccmakedep: Add license checksum to bb file 67b232f galago-daemon: Add license file checksum and update GPL information d249f41 task-poky-tools: fix up blktool 998ceae blktrace: new package 34660ef libsndfile: remove patches that are no longer required by upstream 53aff7d utility-tasks.bbclass: Move distro related tasks to distrodata.bbclass 836b290 imake: upgrade from 1.0.2 to 1.0.4 8de3400 pango: upgrade from 1.28.0 to 1.28.3 e9d144f cairo: upgrade from 1.8.10 to 1.10.0 89ab1ac curl: fix native dependency 4d6a8d2 sanity.bbclass: add wget to required utilities 94b1fda web_svn: Fixup Patching and add libowl cfe12ef Meta: Recipe Reogranization 762fd6b pimlico-tasks: remove patch f92b248 ed: fix patch and LIC_FILES_CHKSUM 869a677 libfm: rename patch directory for package update 228159f distro tracking: Updates for libgpg-error... 77bc8d2 pcmanfm: Update to 0.9.8 b2277d1 libfm: Update to 0.1.14 deb39ec gnome-keyring: Update to 2.32.1 cbd12b4 libgnome-keyring: Update to 2.32.0 ea8a7e7 matchbox-panel-2: Update to svn r2111 e0a2dfd libsoup-2.4: Update to 2.32.1 45d3350 atk: Update to 1.32.0 5b74c13 tasks: Update to 0.18 c4fe987 libowl-av: Update to svn r416 6ea9cb9 avahi: Update to 0.6.28 e101a71 ed: Update to 1.5 32860b9 xz: Update to 5.0.0 411d399 libuser: Update to 0.56.18 83586fb libassuan: Update to 2.0.1 f8e4c11 libgpg-error: Update to 1.9 5d5db6c pixman: upgrade from 0.18.2 to 0.20.0 161490f xrandr: upgrade from 1.3.2 to 1.3.4 685cfa9 xserver-xf86-dri-lite: upgrade from 1.9.0 rc4 to 1.9.2 1e2f122 xf86-video-intel: upgrade from 2.12.0 to 2.13.0 41111d4 libdrm: upgrade from 2.4.21 to 2.4.22 063dae4 distro_tracking_fields.inc: update tar and openssh f8afc36 tar: upgrade to version 1.25 aa70226 distro_tracking: Update distro tracking fields for pm-utils, netbase, etc. 433447c polkit-gnome: Upgrade to version 0.99 db3ce4f polkit: Upgrade to version 0.99 878878a msynctool: Upgrade to version 0.38 9cc3ea6 mtd-utils: Upgrade to version 1.4.1 a2ede09 netbase: Upgrade to version 4.43 d80c854 pm-utils: Upgrade to version 1.4.1 4ad2019 poky.conf: add "virtual:native:" to BB_HASHTASK_WHITELIST ad0e271 update-alternatives.bbclass: don't expand var when appending do_install bd3b631 linux-emenlow: Correct KMACHINE after kernel rename f6e0a5b libxvmc: Upgrade to 1.0.6 48a6e9c glproto: fix LIC_FILES_CHKSUM 9b9472a distro_tracking_fields.inc: remove some invalid packages information from it dfc8bf3 libfm: add missing definitions and declarations a79165c matchbox-panel: Change function name "sync" to avoid conflict 0a751b7 gst-plugins-base: Fix build error aef25de Distro Tracking: update distro tracking field for recipes of Graphics libs 3311471 xextproto: upgrade from 7.1.1 to the latest version 7.1.2 a6810e6 xcmiscproto: upgrade from 1.2.0 to the latest version 1.2.1 24c4edc videoproto: upgrade from 2.3.0 to the latest version 2.3.1 9445404 scrnsaverproto: upgrade from 1.2.0 to the latest version 1.2.1 4438620 recordproto: upgrade from 1.14 to the latest version 1.14.1 882d8e8 randrproto: upgrade from 1.3.1 to the latest version 1.3.2 ca4e362 kbproto: upgrade from 1.0.4 to the latest version 1.0.5 3500a64 glproto: upgrade from 1.4.11 to the latest version 1.4.12 480cf8c fontsproto: upgrade from 2.1.0 to the latest version 2.1.1 c081c06 fixesproto: upgrade from 4.1.1 to the latest version 4.1.2 0272e24 damageproto: upgrade from 1.2.0 to the latest version 1.2.1 5c1e52c openssl: upgrade to version 0.9.8p 9600b79 sysstat: upgrade to version 9.1.5 8afecaa dhcp: upgrade to version 4.2.0 7227aaf dbus-glib: upgrade to version 0.88 9c0cecb dbus: upgrade to version 1.4.0 aaa29ff busybox: upgrade to version 1.17.3 07b8765 syslinux: upgrade to version 4.03 a57838d libtasn1: upgrade to version 2.8 a7db6e8 libnl: upgrade to version 2.0 621f573 taglib: fix SRC_URI ba6a6da taglib: Change upstream location due to failing fetch 5958098 linux-libc-headers: upgrade from 2.6.34 to 2.6.36 563953d libtool upgrade from 2.2.10 to 2.4 aa5befa poky-default.inc: update gcc & linux-libc-headers versions b1dd356 gcc: upgrade from 4.5.0 to 4.5.1 caf8fe3 task-poky-sdk: add tcl package in the sdk image 0c02e2d clutter-gtk-1.0: Fix build issues for world build 32f0537 python-gst: Fix the configure patch & add LIC_FILE_CHKSUM 252a424 .gitignore: update for new bsp-guide location 227c1f8 web_svn: make it buildable for world build 9807ad2 subversion: Fix host contamination 1b3dab5 telepathy: Update telepathy-glib and telepathy-idle for world build 041fc75 libsndfile: Upgrade to 1.0.23 48c8100 distro_tracking_fields.inc: remove some packages information from it cd3daab distro_tracking: update distro tracking fileds for bluez4, neon, etc. d4cebfa libmusicbrainz: Upgraded to version 3.0.3 21f7117 taglib: Upgraded to version 1.6.3 494afcb glib-2.0: Upgraded to version 2.27.3 f4c8146 valgrind: Upgraded to version 3.6.0 726746f tremor: Upgraded to rev 17572 (2010/10/27) bfc2842 libproxy: Upgraded to version 0.4.6 7d0a0f9 libical: Upgraded to version 0.46 d97ea06 kexec_tools: Upgraded to version 2.0.2 3936e0a quota: Upgraded to version 4.00-pre1 28d05b7 libvorbis: Upgraded to version 1.3.2 edc7f3e libogg: Upgrade to version 1.2.1 170985e neon: Upgraded to version 0.29.5 f7b3469 bluez4: Upgraded to version 4.79. 2376935 distro tracking: update the info for upgrade recpies 20b05e5 cracklib: upgrade from 2.8.16 to 2.8.18 c70816c linux-wrs: rename to linux-yocto 771d890 eglibc: rebase a nativesdk patch to the newer code eaa188f siggen.py: fix comparison around runtaskdeps 62f93ac Poky Reference Manual: General edits up to the "Debugging with GDB Remotely" section. 175be12 Poky Reference Manual: Added a glossary definition for BBPATH. 444597f Poky Reference Manual: Task wording made consistent 8914519 Poky Reference Manual: General edits for English. c2f7ed4 Poky Reference Manual: Removed the bsp.xml file. b1f6928 BSP Guide and BSP Chapter in Poky Reference Manual: Changed wording 2cf5aaf Poky Reference Manual: Changed source location of the bsp.xml file 4e6a821 Poky Reference Manual: Fixed list tag. f30a2a7 BSP Guide: Fixed tag mis-match. 2d6441d BSP Guide and BSP Chapter: Sync'ed these two files 89e64db Poky Reference Manual: Added XSL Customization layer file c08140c Poky Reference Manual: Added XSL Customization layer use 0a23df9 Poky Reference Manual: Clean up Makefile 5dc7082 Poky Reference Manual: Fixed broken link in Ref Images appendix. b978c8e Poky Reference Manual: Added BBFILE_PRIORITY glossary term. ab92ec1 Poky Reference Manual: Added BBFILE_COLLECTIONS glossary term. 4a671e5 Poky Reference Manual: Added BBLAYERS to glossary. 731cedf Poky Reference Manual: Spell check performed. 3f9700a Poky Reference Manual: Added consistency to literallayout text. a915d01 Poky Reference Manual: Cleaned up and checked all XML tags. 00b5b4d Poky Reference Manual: XML tag clean up and command example text indentation. d16bbc0 Poky Reference Manual: A couple more minor fixes. bf3ae7f Poky Reference Manual: Clean up of the XML tags 63596cb BSP Guide: Updated xsltproc command to pass the bsp-guide-customization.xsl style sheet. 6e3576c BSP Guide: I created a new figure for the title page. d68613e BSP Guide: Created new file for XSL customization expansion. 5ca54c6 BSP guide: Updated the book id. 440894b BSP Guide Makefile: HTML generation debugging edits. 7066eff BSP Developers Guide: Edits to text d7f70e0 Added a new PNG file into the tar command. 00c2310 Added a new PNG file (bsp-title.png) as the imagedata tag. 7c2735f Added a new PNG file into the tar command. a4a8961 poky-qemu: Fix issues when running Yocto 0.9 release images c01e2a6 linux-wrs: BSP bootstrap 9aaa15c linux-wrs: implement BSP bootstrapping via fallback branches 0ec9475 image-swab: update swabber command for latest version 6e3a1cd poky-default-revisions: bump swabber version 9f0e146 gitignore: ignore the default downloads directory d77e755 image-swab: introduce a class for generating swabber reports 9545130 bitbake-runtask-strace: simple shell script to wrap tasks in a strace call b7ce757 poky-fixed-versions: update version for python recipe 20298d1 distro_tracking: update as per current state of devel/toolchain recipes c02fae6 eglibc: update svn checkout commit d94f4c6 lsof: upgrade from 4.83 to 4.84 793bb46 python, python-native upgrade from 2.6.5 to 2.6.6 a7af5c5 python-gst: upgrade from 0.10.18 to 0.10.19 e5f5090 gdb upgrade from 7.1 to 7.2 5319e5f diffstat: upgrade from 1.47 to 1.54 13c47d7 Make upgrade from 3.81 to 3.82 bebb90b bison upgrade from 2.4.2. to 2.4.3 5171c07 distro_tracking: Update distro tracking for gstreamer and gst-* recipes f96088a xauth: upgrade from 1.0.4 to 1.0.5 cf062bf xset: upgrade from 1.1.0 to 1.2.1 d67ede7 xwininfo: upgrade from 1.0.5 to 1.1.1 72ce1a2 xf86-input-vmmouse: upgrade from 12.6.9 to 12.6.10 614f946 xf86-video-vmware: upgrade from 11.0.1 to 11.0.3 cf17e43 xf86-input-mouse: upgrade from 1.5.0 to 1.6.0 7844f7a xf86-input-evdev: upgrade from 2.4.0 to 2.5.0 c3db9a6 xmodmap: upgrade from 1.0.4 to 1.0.5 7576039 gst-plugins-ugly: Upgraded to version 0.10.16 4a0bc34 gst-plugins-bad: Upgraded to version 0.10.20 c6145ce gst-plugins-good: Upgraded to version 0.10.25 0362b29 gst-plugins-base: Upgraded to version 0.10.30 cb7df0c gstreamer: Upgrade to version 0.10.30 7e7bb24 sstate.bbclass: Remove the temp sstate-build-* directories in WORKDIR 2c1792f task-poky-lsb: add new LSB Recipe 03d9a14 LSB: Add a new package 3810bdf iproute2: update LIC_FILES_CHKSUM 8e3046d git: Update recipe for git to include configure options d64c7ae imagetest-qemu: Add sanity test cases for scp/shutdown in target 2078af3 image.bbclass/initscripts: Make /etc/timestamp usage consistent. 85bd3d6 insane.bbclass: fix qa_configure and qa_staging 7f4f40f libnss-mdns: fix package removal 3155cde procps: upgrade to version 3.2.8 1a76da9 iptables: upgrade to version 1.4.9 ec7811e iproute2: upgrade to version 2.6.35 b24ca39 pciutils: upgrade to version 3.1.7 efa037b nfs-utils: upgrade to version 1.2.3 8c89891 curl: upgrade to version 7.21.2 f12f38a tzdata: upgrade to version 2010o f9c840f shared-mime-info: upgrade to version 0.80 5091132 base.bbclass/poky.conf: Fix INCOMPATIBLE_LICENSE Whitelist checking ddbf5e9 poky-init-build-env: Fix to show the error message with simple sh based shells e445fcf poky-ref-manual: Drop non-commercial clause 05ba6fc bitbake: Rewrite profiling code so its functional for both none and xmlrpc backends 89929e1 bitbake/fetch: Allow checking of a single url at a time (massive sstate speed improvement) caa7fe2 bitbake/fetch: Fix handling of mirrors when checking for url validity d6e8f7d sstate.bbclass: Only create symlinks to different localpath urls if the fetch succeeded 7333328 Revert "bitbake/fetch/local: Also check DL_DIR for files since they could already exists there" aa81dda Revert "bitbake/fetch/local: Fix os.exists reference" f8e3397 bitbake/fetch/local: Fix os.exists reference ae98f7e bitbake/fetch/local: Also check DL_DIR for files since they could already exists there 857534f procps: fix for build against make 3.82 2e0ab8c git-pull: add send-pull-request script 1f0e2cf git-pull: add the new create-pull-request script 09ee361 git pull: remove the existing create_pull_request script a5bbeee tcltk: Fix moving libtcl8.5.so into tcl-lib. 422a017 kernel: prefer the kernel produced uImage 570cf02 linux-wrs: rename force_revisions and allow override bca56bf wrs_meta: add USB options for wacom tablet support e0194e3 qemumips: re-enable wacom and standard USB UI options a8b1164 tslib: 32bit big endian support 93eae97 Added qemumips /etc/pointercal file for touchscreen calibration 32f241a quilt: Fixed configure test for patch --version. 77cb80c poky.conf: Default Locale Generation ffce440 eglibc: add en-us locale generation 5ea9313 eglibc: install the missing /etc/ld.so.conf into target ff2448a ld.so.conf: create empty file da99708 busybox: enable more options for tar to support more file formats. a0fb0c2 bzip2: upgrade to version 1.0.6 12a8613 imagetest-qemu: Add test case for dmesg check in target 53b775b poky.conf: Change default locale to POSIX d856b80 task-sdk-gmae: fix typo in SDK-EXTRAS and convert to ?= for assignment 25c00da python: Fix hardcoded python references which should refer to PN, removing duplicate providers warning 4f6d91e busybox: import upstream patch for make 3.82 6ac1365 eglibc: fix build of eglibc-initial for make 3.82 d9ff2f8 package.bbclass: make sure 'sysroots' created before lockfile 26ade54 poky.conf: add PWD to BB_HASHBASE_WHITELIST 5ae5a14 bitbake.runqueue.py: Fix no exec task handling to correct counter housekeeping 8e2150e meta/classes: Mark do_package_write and do_build as noexec tasks b80a8d2 bitbake: Add support for 'noexec' tasks a59935f bitbake/siggen: Allow siggen code to control final stampfile format 87c2b70 .gitignore: Update after documentation layout changes be132ca docmentation/poky-ref-manual: Remove unused Indexes title 4243a61 Performed general edits to this chapter. 09ef6a4 Poky Reference Manual: Completed editing pass of Chapter 3. 890a794 Created a new folder to hold the BSP Guide 4b7f1ee General edits to the using poky and Extending Poky chapters. 30e9272 General text edits through section 2.4.4 "General Bitbak Problems" ceef5c2 Changed a source command to have the correct source. f7a3a5f Changed the title and wording of the section about pre-built binaries. e534706 Editing pass through the Introduction chapter. 81d3811 Figure changed for building an image and yoctolinux removed 8e51f52 cross-canadian bbclass: replace hardcoded -pokysdk with SDK_VENDOR eb9c2b0 openssl: Use STAGING_BINDIR_NATIVE as the path to perl, not bindir which can point to incorrect places ecf2eb1 sstate: Provide a temporary mechanism to stop collisions between toolchain components in builds from scratch using sstate 88f6f3f bitbake/siggen: Provide better warnings about empty tasks 6a8fec9 external-python-tarball: Include SDKMACHINE in tarball name d45af98 external-python-tarball: Add ability to generate an externally usable standalone python tarball 30feed7 openssl/db/gdbm: Extend to provide BBCLASSEXTEND nativesdk 8238ee6 python: Remove hardcoded python references and replace with PN, allowing use of BBCLASSEXTEND=nativesdk a9c46e4 base/utils.bbclass: Sync up overlapping functions 26a4b23 utils.bbclass: Add functions from OE.dev c299112 gnome.bbclass: Remove autotools_stage reference 5599963 gnome.bbclass: Use BPN instead of PN and set SRC_URI name similar to OE.dev 01518ad meta-emenlow: Rename packages to recipes in line with main repository c90c0ce base-files: Allow a basic issue file to be extended by the code, following the method now used by OE 904ccfe base-files: Allow issue and hostname generation to be overridden f71326e src_distribute: Set EXPORT_FUNCTIONS correctly dc13a61 bitbake/siggen: Fix finalise call arguments 7240881 Poky -> Yocto name change 5dfe9b7 documentation: Update copyright to the Linux Foundation 9fbef50 documentation/yocto-qs: Fix references to a poky-qemu package and replace with the yocto toolchain tarball d9fea40 Removed text from section 5.1.2.1.1. 4ededb2 Corrected the package command for Debian-based hosts. fd832c0 Added package installation requirements. 86384c1 Re-inserted Poky Image as part of the front matter. b7ae212 documentation/poky-ref-manual: Fix image makefile to reference the image bf77ed9 Moved the Poky image file to the "Figures" folder. 2ccf2b3 Re-installed the Poky Handbook image at the top of the manual 27e2d19 Updated the yocto-environment picture and added example command edits. aea5da0 docmentation/yocto-project-qs: Fix Yocto Environment graphic e4d0ba8 Removed first link to openembedded and replaced with more general text. ca822c5 Updated the first figure in the quick start. 03c72a9 Corrected link to the yocto website. 7fba85a Updated supporting text to reflect new poky-4.0-build directory in example 5bebcef documentation-project-qs: Remove stray ] 962e548 documentation/qs-guide: Fix urls for release 7af5e26 Edits as described below: 5434a49 Review changes applied. 11686d0 Updated figure. 9692685 Updated this figure to correctly capaitalize opkg, zyper, and app-get cb9376f Removed reference to pre-build in section 5.3.2, "Using OprofileUI". 95a85f5 Added the Anjuta Plug-in information 4999f78 documentation/pokt-ref-manual: Update with Yocto branding 00e061b documentation: Add Yocto quickstart guide 74e47d4 rm_work.bbclass: Handle case where pseudo directory doesn't exist c5fab99 bitbake/fetch: When fetchers return errors, ensure any partial download is cleared ab718b3 package_deb: The packaging command itself is run under fakeroot so these lines are totally unneeded 8109db2 Fix adding new contact failure when starting contacts for the 1st time 48b42da classes: Only enable fakeroot on setscene tasks with packaging 535a77a bitbake/fetch: Make URL checking slightly less verbose (distracting with the sstate code) 3f599b3 sstate: Fix mirror handling for file:// urls eef1d81 documentation/bsp: update to reference FILESEXTRAPATHS 36f1ae4 pseudo/fakeroot: Move the pseudo directory creation into bitbake 00a96a2 package_deb: Fix a typo meaning the debian packaging was not running in the fakeroot evnironment 13f116b package_rpm: Don't check for the existence of dvar as its never used 6e277cb base.bbclass: Ensure an empty do_build tasks exists to silence a warning f806c49 sstate: Fix broken plaindirs support 08425b5 at: Fix nonstripbinaries.patch 0068e55 libtheora: add DEPENDS on libogg fd44571 base/sstate: Add cleanall task to remove downloads and sstate cached files 2a69c58 local.conf.sample: Default to not building 32 bit libs on 64 bit systems as most people don't need it and it confuses them d5504a4 metadata_scm: Ensure that if an SCM isn't present, we dont print a revision of 'fatal:' as it looks bad f1a209b busybox/sysklogd: syslog.conf files 70c7712 gst-ffmpeg: powerpc build errors 8aa0c8c mpc8315e-rdb: align PACKAGE_EXTRA_ARCHS with tuning 0e0d14e at: remove nonrootinstall patch and modify some relevant files 27d0685 gnome-icon-theme: fix build 980e0ce bash: There is no such configure option as --with-ncurses and --with-curses breaks the build 1d5567c poky-default-revisions: define SRCREV for pseudo-nativesdk 5ee6384 nfs-utils: fix nfs server initscript 9393ff8 bash: fix job control 340ff26 task-sdk: Fix lttng-ust dependency to include the -dev version so headers are included 4f7d621 sysklogd: correct the syslog link and conf file c41fe30 wrs_meta: emenlow updates 6562e7c documentation/poky-ref-manual: Update packages references to recipes and make sure bbappend files are included in example BBFILES lines 08cec50 bitbake/fetch/git: Ensure fullclone repositories are fully fetched 05c8ee6 bitbake/fetcher: Deal with a ton of different bugs 1077021 bitbake/fetch/git.py: Fix git fetcher to correctly use mirror tarballs ef67016 rpm: Change pcre to use internal library [BUGID #404] daca4c7 sed: use ALTERNATIVE_LINK 644e54f gstreamer: add support for theora plugins f8c6335 wrs_meta: update SRCREV for netfilter options 3d91a51 kernel tools: update SRCREV 64bb014 linux-wrs: pass netfilter options as an addon feature 1dc2a4c linux-wrs: allow optional features via KERNEL_FEATURES variable 77176d5 distrodata: Modify Distro tracking spreadsheet 2c40e13 distro_tracking: Update Distro Aliases 8fc871a task-poky-sdk: Add lttng-ust fd59449 libtasn1: Comment out the RREPLACES as it causes problems with rpm backend d3099f8 poky.conf: Add qemu-config dependency for qemux86-64 20b4aa3 shared-mime-info: Don't run the util for the native version of the package 80eba26 documentation/poky-ref-manual: Various tweaks to the text 0be66f0 documentation/tools: Add comments to script 879ac8f libffi: fix the uri 95cf36f documentation: Complete poky-handbook -> poky-ref-manual rename 37eb4e2 documentation/handbook: Tweak Makefiles and paths after path changes 94c2a3c handbook/poky-ref-manual: Makefile tweaks 2208328 handbook: Move into documentation directory 13a702e Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe 485839d libffi: bumpt to version 3.0.9 d036f97 make: enable make-native ce8932d handbook: Fix the Ubuntu version requirement f0500bc handbook: Fix section numbering 03ecd2a atom-pc: remove kernel video mode parameters 3a8d109 linux-wrs: update SRCREV for mpc8315e-rdb 12477ad gupnp: fix broken SRC_URIs 95fb69b emenlow: add 8250 serial options 9a2ae44 poky-qemu-internal: make the -no-reboot qemu option mandatory 7d7d35f poky-qemu: miscellaneous bugfixes af404b1 poky-qemu: add nographic option for disabling video console 65954ba atom-pc: get rid of undefined video mode prompt on bootup deba7ad sysvinit: add check for no X11 to disbale psplash cb34a14 task-poky-qt: Re-Enable MIPS Build and disable fotowall 229b663 bitbake-runtask: Ensure logging settings take effect in the worker process (and pass verbose setting) fa91404 pseudo: Update to revision 489ed5e89f040febcb605f22187968f597211205 462aef7 eglibc-nativesdk: Add patch to change the search path of the dynamic linker 9eb2de9 Revert "meta-toolchain: Update the way ld.so.cache is handled" a2337a3 linux-wrs: update SRCREVs cbeb72b atom-pc: switch to the atom-pc branch 48755c4 emenlow/linux-wrs: merge emenlow configuration 5e558a1 linux-wrs: remove external x86 config fragment d3fbeb9 emenlow: update formfactor keyboard setting 41ad946 libowl-av: Fix music player crash if adding unknown type files e1f257a tzdata: install zone.tab and iso1366.tab b2c3ce6 meta-toolchain: Update the way ld.so.cache is handled 271bd9d sanity.bbclass: ensure 32it libc is correctly detected d393edd poky-qemu-internal: enforce a 128M memory limit for qemuarm 99c0cbd rm_work: Fix interaction issues with pseudo 1958497 poky-default-revisions: fixups 27e785c swabber: new recipe c6a6eb1 strace: use BBCLASSEXTEND to enable a native package 812f883 bitbake/runqueue: make the runtask program configurable 35f36ba Update gitignore 04ace83 Add recipe for sdk directdisk target c9b6051 linux-wrs: add initial beagleboard support 5ae1e2c mpc8315e-rdb: create machine and tuning configuration 149f226 routerstationpro: create machine conf and compatibility b5f744c python: fix for host contamination issue while cross compiling 6b53fbc xpsb-glx: Fix compile issues on 64 bit machines without 32 bit headers/binaries 364aaa6 poky-qemu: fix for handling full path to rootfs cecd1bd qemugl: remove obsolate /usr/X11R6/lib lib directory 75732f5 recipes-connectivity: Cleanup package descriptions and summaries daa21c1 recipes-bsp: Cleanup package descriptions and summaries fa647b9 recipes-core: Cleanup package descriptions and summaries b2f2590 Add Summary/Description support to packaging 5783e71 Subject: [PATCH] emenlow: add kernel config options for sdk tools 86b30f7 emenlow: fix SRC_URI in linux-wrs_git.bbappend d4c8679 linux-wrs/emenlow: Fix FILESPATH so as not to corrupt other machines 56be122 linux-wrs: move config fragment to the correct location d14f9bf bitbake/build.py: Write logfiles on a per task basis, not per function ff539b1 bitbake-runtask: Ensure logging options are inherited from the parent efe55d7 linux-wrs: Change the kernel configuration to enable psplash. 771fb55 connman: Do not take over ethernet interface if target is boot by nfs ded2919 rootfs: Update ROOTFS_PKGMANAGE to include atp/zypper df41bd4 package_rpm: Disable nativesdk/canadian package indexes for now as these are being incorrectly used for target rootfs generation, breaking the images e9af61e dpkg-native: Don't install update-alternatives as it isn't cross rootfs capable b9728f6 dpkg: fix package_deb error for linux-wrs 7836c45 linux-wrs: emenlow has its own branch, use it 115514b bitbake/fetch: Ensure SRCREV is still set correctly if the pn-X override has been expanded a743e82 base.bbclass: Fix spelling mistakes and change log level b8ce8c7 poky-default-revisions.inc: Work around weak assignment operator bad interaction with SRCREV b825feb linux-wrs/emenlow: Set WRMACHINE 2f55ec4 atom-pc: Switch from linux-netbook to linux-wrs b8d75d2 emenlow: switch kernel from "linux" to "linux-wrs" 627fb75 emenlow: remove psb-kernel-source dependency from xserver-psb package ee1c802 emenlow: add linux-wrs_git.bbappend fe9c556 atom-pc: enable CONFIG_FRAMEBUFFER_CONSOLE 6f66fc1 Add default revision for linux-wrs common_pc-standard HEAD d7a1ebc atom-pc: 8250 config fragment 1bc3825 linux-wrs: Add support for atom-pc ca664ee dpkg: upgrade to version 1.15.8.5 144e7b4 udev: Don't install unused links.conf file (thanks Joe Sauer for spotting) 939e2fe gettext: Move files to the correct place 530fb7f linux-wrs: fix emenlow and wrs_meta SRCREV values 30f77f6 distro_tracking_fields: remove the duplicate line for oprofile 1d7c9a9 attr: fix the hardcoded search path in the AC_PATH_PROG c805a6e poky-qemu-internal: implement file locking in bash 7cd824a poky-qemu: fix handling of some rootfs types e72e7b2 rootfs_deb: Fix problem with pseduo and rootfs location 0ae7e9e dpkg: upgrade to version 1.15.8.5 c449c78 Rename MACHINE=netbook to MACHINE=atom-pc 5f17c07 gststream commercial: modified recipes and tasks to add commercial identifier 7d42965 base.bbclass: add support for commercial license check c47132a gettext: Add GPLv2 version 0.14.1 45e05c1 meta-toolchain: Fix symlink path ad042da meta-toolchain: Fix libGL.so not found issues 93c19ab unfs-server: Fix DEPENDS for native/nativesdk cases 2f19e2a libc-package.bbclass, eglibc, glibc: enable locales generation using cross-localedef 2e04061 cross-localedef-native: tool for cross generation of locales 7b079e1 Update meta-ide-support dependencies bda24ca poky-fixed-revisions.inc: Clean up pointless PREFERRED_VERSION statements ddb5d4c librsvg: Drop old versions 519b7c0 pulseaudio: Add back after it was lost in meta-moblin removal (and dependencies) 02445fc poky-default-revisions.inc: Move SRCREV settings into this file 0f973ed Merge runqemu features into poky-qemu e70c898 Allow running of multiple QEMU nfs instances 8532405 poky-gen-tapdevs: script to create a 'bank' of tap interfaces 62625d0 poky-qemu-internal: use lockfile-progs for network interface locking fcbd67c poky-qemu: integrate userspace nfsroot support c8a181e poky-qemu-ifup/ifdown: Require root privileges to run fb24302 kern_tools: update SRCREV for defconfig fixes bf1a37e xf86-video-intel_git: fix COMPATIBLE_HOST definition f938a41 syslinux: fix COMPATIBLE_HOST definition 50ba9c4 nasm: fix COMPATIBLE_HOST definition 8a4298c libacpi: fix COMPATIBLE_HOST definition 7160dce formfactor: mv emenlow formfactor config to machconfig bee7c21 bitbake/runqueue.py: Fix invalid variable reference fixing the -f option with setscene tasks 240b663 sstate: Fix SSTAGE_MIRRORS handling and improve example in local.conf.sample 24ad639 bitbake/fetch/__init__.py: Abstract mirror variable handling and enhance to accept \n delimitation in variables 0e0fadb rootfs_rpm: Add lock file in the rpm deploy directory to allow mutliple rootfs creation tasks to coexist without breaking each other fafb403 gcc: Fix c++ search path for target system compiler making everything consistent 11ebcec local.conf.sample: Until bug 227 is resolved, ipk packaging is needed for meta-toolchain so enable by default 0a20caf Export ALL_PROXY for bitbake commands e12c57e handbook: corrent RRECOOMENDS spelling in ref-variables 60beb39 pseudo: Update to the latest version of pseudo 5eee854 qt4-tools-native: Fix compile failures 35d095c bitbake/sstate: Implement a lookup function to speed up setscene processing 2d93cb0 Revert "classes: Disable setscene tasks for initial testing" 425435f base.bbclass: Implement PRINC, a way to increment the PR variable in .bbappend files 904ae4a Improve FILESPATH usage in .bbappend recipes 0ee7a9e bitbake/fetch: if mirror fetching fails, ensure exception is raised 8e5c084 rootfs_deb: fix parsing a shell cmd a4f2e2a kernel: update SRCREVs for emenlow and blacksand/Kconfig 12b0f49 createme/patchme: use kgit-checkpoint to restore meta data 1225cc4 kern_tools: allow patching on autocreated/empty branches 2fac07a qemumips: Add formfactor file so the mouse works correctly 546ffc5 x11-common: correct the syntax for the -mouse arg to Xfbdev ce7101b qemumips: override default UI options. 8223e50 ncurses: Fix export of LD_LIBRARY_PATH. 31bd141 gitignore: Add meta-extras and meta-m2 ce25e93 meta-openmoko: Drop as this code is very stale 0cab41a meta-gnome: Remove libgnome, libgnoneui and update gthumb adding libunique dependency 4163767 ncurses: Only set LD_LIBRARY_PATH within the do_install dd81d58 insane: Update the insane class to check for host contamination 8e429ac build.py: Add a symlink for the logging df07008 python-pygtk: Use correct paths at build time ce5e891 Python gst package needs pygtk at runtime b936974 poky-qemu-internal: only check mmap_min_addr when running arm images 8fdc5ff Fix packaging error (util-linux-sfdisk could not be built) 7cdddd1 local.conf.sample: include notes on generating fewer LIBC locales c112368 siteconfig: Fix mkdir 4a19330 binutils: Update the poison patch 23f522e gcc: Update poisoned include path checking 9a1d4d0 augeas: Add missing dependency on readline ca5fff3 sstate: Deal with a potential race when cleaning packages c0c657b Split meta-extras and meta-moblin out of the main repository e71a306 task-base: Drop wifi fw c09cae5 Move prism-firmware, spectrum-fw, python-urlgrabber, python-iniparse and yum-metadata to meta-extras a51df11 Distro Tracking: Remove private directory since it's merged to one file now e3d7890 Make invalid LICENSE fields fatal c0281fa libopensync: Fixup a couple of LICENSE fields 008c59c external-toolchain: Set LICENSE 9623589 moblin-proto: Move to meta-extras 27b68f9 qemu: introduce vmware vga FIFO rewind patch to fix qemu hang 7f17d12 linux-libc-header: Sync CONNECTOR_MAX_MSG_SIZE with wrs kernel 9c9c8eb gdb: add EXPAT to resolve gdbserver comm issues bf1747b gst-openmax: Add LICENSE field a4762f9 gobject-introspection: Add LICENSE 84a4ef2 spectrum-fw: Set LICENSE 4ec740d puzzles: Set LICENSE d4feb66 libfribidi: added LICENSE field d891515 beeycrypt: added LICENSE field c649698 libffi: added LICENSE field a00a840 tzcode-native: added LICENSE field 784f0cf polkit-gnome: added LICENSE field 8c7dfe8 diffstat: Added LICENSE field 3e5cf5f libopensync: Added LICNESE fields to plugins fe64be2 farsight: Added LICENSE field 6b1c260 elfutils: add zlib into DEPENDS 2a066e7 gcc: fix check for target libc ssp support b07cc5a initrdscripts: remove the incorrect moblin message (Bug 368) aca435f qmmp: add qmmp into image (Bug 301) 1526b9d kern-tools: add BSP bootstrap support 5848cc4 linux-wrs: pass ARCH to updateme 8d5b222 linux-wrs: validate commits when forcing branches 06c19f0 mc: add to extended, but not part of any image 4c9f98b Distro tracking: Add info for lighttpd 41f1934 rpm_5.1.10.bb: The upstream location has changed rpm_5.1.10.bb: bump PR [BUGID #357] ce373c7 rpm_5.1.10: Disable dependency loop message fad896d rootfs_rpm.bbclass: Add Dirnames configuration c9e6f53 distro_tracking_fields: Updated with distro alias information 82a42c6 pointercal: Add LICENSE field 66bb71a udev-extraconf: Fix LICENSE field 041fe17 pong-clock: Fix LICENSE field ced8cb0 signgp: Add licence info from OE.dev bb1b3cf task-poky-lsb/basic: Add LICENSE fields 69c650c run-postinsts: Add LICENSE 1d52fa5 bitbake/bitbake-sigdiff: Extend to handle dumping single state siginfo files 1c91f32 bitbake/siggen: Fix issue where excluded dependencies caused exceptions adcb01d poky.conf: Add BB_HASHBASE_WHITELIST to ignore variables which don't influence sstate packages (Initial Population) 7f7c185 Revert "Drop vm_mmap_min_addr checks from scripts and sanity class" 62fe6dc sstate: list directories in child first order in the manifest file e88a895 procps: use new batch update-alternatives feature b797a84 diffutils: use new batch update-alternatives feature 2b18117 bzip2: use new batch update-alternatives feature 22cbcd9 update-alternative.bbclass: add batch alternatives support 5f289ac e2fsprogs: Don't change ownership of the patches directory 53bfbe6 gstreamer: Ensure correct orcc version is used a598c15 handbook/bsp-guide: Fix typo 2624b61 poky-doc-tools: Remove unnecessary autotools usage and simplfy structure 1e0e6f1 sstate.bbclass: Add signature hash to sstate package names 624924b bitbake/bitbake-runtask: Signatures are needed in task context and have little overhead so enable in worker context 97dec84 sstate.bbclass: Update to use SSTATE variables everywhere and remove the now unneeded complicated paths from the sstate files dd28a9c sstate.bbclass: pstage -> sstate name changes (no global implications) 7087fb7 sstate.bbclass: Rename PSTAGE2 -> SSTATE 9747616 bitbake/siggen: Ensure full signature data is not held unless needed, reducing memory consumption 8976fa6 connman: fix the issue that connman could not disconnect from shutdown AP 65ace92 task-poky-basic.bb: fix lighttpd typo d6c4088 task-poky-basic.bb: add lighttp to basic image type for webserver 8860ef2 local.conf.sample: set RPM as default package and rootfs image creation a1d1e4e lighttpd: Add 1.4.28 as new recipe. ec4d6b9 bitbake: Pass task hash information to subprocesses 15ceaaa bitbake/fetch: fix logic to prevent fetches when the file already exists d85dc37 codeparser.py: Fix storing of hash values as object references can be corrupted cf09c7a iproute2: Disable PARALLEL_MAKE dd5ad18 eglibc: add FILESPATH to avoid failure on unpack aa8dea4 poky-default.inc: change the hardcoded glibc-initial to ${POKYLIBC}-initial 2cb33a9 distro_tracking_fields.inc: update cpio info 928e6ca cpio: add version 2.11 (GPLv3) 661e864 trace-cmd_git.bb: remove DEPENDS of glibc since there is a system default for 3b7110b distro_tracking_fields.inc: update grep info 5c46570 grep: add version 2.7 (GPLv3) 62432db task-poky-clutter.bb: removed examples 63ec0c2 distro_tracking: Update tracking info 055a720 distro_check.py: Added additional support for distro checking 7531480 QEMU: Fix the mouse shadow issue (bug 170) 5964697 qemux86-64: remove -march for 64bit common pc 998a831 task-poky-tools: add rsync in target image 0f55d28 glibc & eglibc: fix mips DT_MIPS_RLD_MAP checking 5c8fad6 poky-qemu-internal: Add userspace nfs support for mips and ppc ce45630 gcc: enable poison parameters detection b3ef7f5 xtscal: Fix the endless loop when starting X 239a368 netbook: Correct netbook build by moving netbook configuration from moblin to meta c5b9525 taglib: move from moblin to recipes-support to support qmmp 09f1f69 man-pages_3.25.bb: Fix SRC_URI to contain Archive directory 233af81 distro_tracking_fields.inc: merged fixes 460954b upgrade gcc to 4.5.0 for mips architecture b804830 meta-ide-support: Fix PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH c9e52b0 qemuarm: remove NFS_ROOT override efd2590 Add DISTRO_PN_ALIAS for 95 packages 23bfe02 [#BUG298]:Fix some bugs during compiling based on x86_64 fix a problem that compliation failed for groff on machine x86_64 Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com> 3c5984a bitbake.conf/documentation.conf: Start using SUMMARY variable and document it 4a10634 Correct js jsautocfg.h and install jsproto.tbl 1cf4566 Wrap output at 80 columns for poky-env-internal f342f3b poky.conf: use eglibc rather than glibc 8c33bfc [e]glibc-package.inc: fix multiple providers for glibc-gconv-iso8859-1 11a9205 poky-eglibc.inc: fix multiple providers for virtual/libc-nativesdk and other 73049a3 handbook: add BSP click-through licensing section c031749 Fix some typos and grammatical errors in Poky handbook 7450c1a linux-wrs: update SRCREVs 68772b9 zypper: fix runtime dependency eede720 libzypp: RDEPENDS sat-solver d8137c0 eglibc: Add in libc_cv_slibdir setting as used by glibc to fix 64 bit builds d08f922 recipes-tbd: Drop old external CSL toolchains and no obsolete staging-linkage recipe 79a4501 Complete packages -> recipes transition 03d9669 distro_track: add dpkg, m4, and cmake tracking fields 0ff070b gcc: upgrade gcc for powerpc to version 4.5.0 8e9caaf formfactor: Add machconfig in qemux86-64 to avoid HAVE_KEYBOARD unset. This prevent matchbox-kerboard starting as daemon automatically. a50dd61 perf: Add libelf to dependencies 87cac1d bblayers.conf.sample: remove meta-moblin from default layers 0be9298 poky-qemu-internal: fix locking of tap lockfile a67d9dc distro_tracking_fields.inc: Merged tracking data 089b186 Distro tracking: update mdadm, screen, oprofile; add libsdl ad972a7 Distro Tracking: Updated and add Poky Alias info 3a0b3da distro-track: zypper related packages 7c99ba8 avahi: explicit depends on libcap 6295c9a distro field: add distro fields for some graphcis recipes 83c005d distro tracking: Add info for gobject-introspection, gdk-pixbuf-csource-native and qemu-helper-native... 3197bcf distro data: Update distro data tracking data d1ff9aa toolchain-scripts: Add POKY_TARGET_SYSROOT variable for SDK usage 5b02bbc local.conf.sample: Fix commented value to match the default download directory f47ae20 toolchain-scripts: Export TARGET_PREFIX and GDB variables for SDK usage fe0f86e bitbake/runqueue: Remove now unneeded indentation 474c2a2 bitbake/runqueue.py: Optimise delay values to avoid unneeded delays e888596 sstate: Trigger generation of siggen info when building sstate packages 19d9435 bitbake/siggen: Allow generation of siggen data from task context 89c7260 bitbake/build.py: Set BB_FILENAME to represent the .bb file being built (including any virtual prefix) d94f0f7 bitbake/siggen.py: Improve debugging of checksums 4aec215 bitbake/data.py: Allow variables to suplement dependencies using the vardep flag c01e876 bitbake/fetch: ensure the go() method completes when not using premirrors dc4d33c poky-default-revisions.inc: Add missing SRCREV for dtc-native 919ae74 qemu_x86_64/conf: enable E1000 by default 6a16ff4 dtc: Drop unneeded SRCREV 6cbc2c3 dtc: device tree compiler recipes c541b59 poky-default-revisions: set default dtc srcrev 9619df0 linux: add binary devicetree generation be11510 ncurses: rename site_config that was mis-merged when ncurses moved 2e9d981 autotools: enable siteconfig by default eglibc glibc ncurses uclibc zlib: remove explicit siteconfig c3269e2 siteinfo: add SITECONFIG_SYSROOTCACHE definition in place of hard-coded path siteconfig: use SITECONFIG_SYSROOTCACHE and use sstate-interceptfuncs 27dd7f8 sstate: Add sstate-interceptfuncs called between install and package d6e8013 [e]glibc-package.inc: fix providers for libsegfault and other b273ca2 libc-package.bbclass: fix qemu issue with pseudo b4c5b95 pseudo: Update pseudo to latest revision d87034e rootfs_rpm: Fix workaround 75bffcd handbook: Drop USB Networking section, its no longer appropriate ad30f2c handbook: Various minor fixes 0a217cd handbook: review and update CH1(introduction) and CH2(using Poky) 8627258 handbook: review and modify Appendix A, D and E 8c7e1ac handbook: review and modify CH4 (BSP) and Appendix B 2beaecb handbook: Fix some errors in Appendix F/G 276abb1 handbook: review and correct CH5(development) a6e7652 handbook: update appendix C/H/I 3c6e1d7 handbook: review and correct CH3(extend poky) in handbook 7ef8658 linux-wrs/meta: fix qemuarm boot issues with 2.6.34.6 1ea9ad4 qemu: add qemu-mipsel to the list of simulators 30c2b0b connman-gnome: Add some functionality. 566de26 bitbake: Add proxy variables to standard export list 3a530fb Fix the matchbox-panel seg fault on netbook & emenlow c4fb698 netbase: Don't hardcode the qemu IP config f7f044c scripts/runqemu: Drop broken toolchain symlink code c4ff5f3 scripts/poky-qemu-ifup: Ensure the host has a route to it 8e43883 scrtips/poky-qemu: Fix network interface device numbering 3dd36ab poky-qemu-internal: Fix ifdown script to use the correct variable 3d4089c gnu-config: Fix target version to contain all the substitutions and not overwrite the first half with the second set of changes 082976c libzypp: change /usr/lib64 to /usr/lib 9402f93 linux-wrs: Update now SRCREV variable order is fixed 8fe347a linux-wrs: validate branches against known revisions be74657 poky-default-revisions.inc: Fix variable order for linux-wrs recipes f7b1c10 bitbake/__init__.py: Fix named SRCREVS variable name ordering with backwards compatibility 1e65495 trace-cmd: add to profiling recommends 5b803e6 task-poky-lsb: Remove man-pages due to build failures 102e24d task-poky-lsb: add man-pages, which will pull man and groff 1f65837 image.bbclass: change IMAGE_EXTRA_SPACE to IMAGE_OVERHEAD_FACTOR 7400ece man-pages:Add new man-pages package ef8d4dc groff:Add new groff package 3f71edc man: Add new man package e3f4926 Distro tracking: add package aliases b98154a at: Disable PARALLEL_MAKE for at and add back to task-basic cdbbc68 gcc_4.5.0: add --enable-poison-system-directories option to cross recipes 75b90f1 binutils: add binutils_poison.patch 3e7db72 bitbake: save the initial PATH for use when starting a subprocess 8be5593 kernel.bbclass/linux-wrs: move definition of perf package to kernel class fac3ca9 package.bbclass: Ensure all packages package when running a build 04b8511 bitbake/fetch/git: fix try_premirror() definition .Method takes 4 parameters. 3341e47 bitbake/fetch: fix by moving try_premirror() to the right place 3010c96 powertop: fix a typo: REPENDS ==> RDEPENDS c519aec libzypp: workaround to pass mips build 7892add sat-solver: change /usr/lib64 to /usr/lib 7117a44 bitbake/fetch: add try_premirror method and special case git fetcher 7b580b4 bitbake/bitbake-runtask: Ensure signals to the parent don't pass to the children directly 7ef6559 qemu: Apply fix for armv6 locale generation using TLS registers 51dd026 ldconfig-native: Set LICENSE e8518d4 poky-image: Set LICENSE field for the image recipes (note this doesn't apply to the image contents, just the recipe and code used fb617be poky-image: Set LICENSE field for the image recipes (note this doesn't apply to the image contents, just the recipe and code used 8ee9aff tasks: Set LICENSE field b49bfb2 QT4 mips: disable the LDFLAGS "-Bsymbolic-functions" b86a597 linux: Fix the compulab image post deploy function by making it a postfunc e8fdc98 sstate: Make sure the sstate function is the last to run, not the first 7e46fc8 pseudo: Honour the NO32LIBS variable 6477130 bitbake/codeparser: Deal with functions with trailing whitespace 1c24729 udev: Drop old versions 85cf6f3 poky-default.inc: Use standard udev version for PPC, seems to work fine 9b800fe scripts: use the exported POKY_NATIVE_SYSROOT variable c97f3a5 toolchain-scripts: export extra variables for use by scripts 13ef707 runqemu-nfs: check for required programs f57a3d9 linux-wrs: Ensure S directory exists else task can fail d17a093 gcc-crosssdk-initial: Ensure native dependencies are built, these can differ accross different gcc versions causing build failures fea28c2 kernel/wrs: update SRCREV for v2.6.34.6 + changes e359e25 task-poky-tools.bb: avoid multiple RRECOMMENDS to override each other 95b2d93 poky-default-revisions.inc: Move SRCREVs to correct locations, fix whitespace b78d536 fetch: fix setting of localpath in SRC_URI parameters aa3d81f poky-default.inc: Make sure sdk version of gcc is fixed and doesn't change e013185 tasks-poky-basic and tasks-poky-qt: bump PR and remove at 18ea4d2 task-poky-qt.bb: Exclude mips from building d970584 clutter-mozembed: move patches back into meta-moblin c849ec7 rpm: Fix autoconf/libtool usage a9b7157 rootfs_rpm: Workaround for checksum changes 7b01719 zypper: add new package 162c652 libzypp: add new package 1fb94b7 sat-solver: added new package 079b70a augeas: add new package 63f7b0a Fix broken references to libcheck 0843607 rpm: Change the way the python version is determined so its sane and works with checksumming 3e38d63 task-poky-qt: create a task and add to poky-image-sdk 41d02d40 bootmisc.h: use "date -s" to set time e5fe433 distro-tracking: update lttng-ust, lttng-viewer 02c122c lttng-viewer: upgrade to the latest version 0.12.35 ee3e622 lttng-ust: upgrade to the latest version 0.7 33e2b4a poky.conf: Set hash policy 8d764de bitbake: Add missing signature files 43595fa bitbake: Implement signatures 453d8f4 bitbake/codeparser: Ensure cached sheel entries return the correct dependencies e8ed145 bitbake/ast: Ensure function definitions are always added to the dictonary a6ce10e sstate: Handle symlink directory entries correctly 7e36135 rpm: Raise the number of potential rescans before aborting with a dep loop a211686 eglibc: Add siteconfig cache generation 1f1aac7 uclibc: Add siteconfig cache generation cd9379c ncurses: Add siteconfig cache generation 7f286e2 zlib: Add siteconfig cache generation f538926 glibc: Add siteconfig cache generation d2febcc siteconfig: generate configuration data caches for autoconf siteinfo: Use configuration caches when available d6c45f0 rootfs_rpm: Support install_all_locales 2f68de1 roots_rpm: Enable installation of recommended packages 84e1f5a package_rpm: Start packaging directories 9f60a6f glibc-package.inc: disable build-time locale generation for nativesdk 3d7431b eglibc: Set BBCLASSEXTEND to include nativesdk 7e80c6e udev: don't reference parent sysfs node directly 5c1638c kern-tools: add dependency on guilt-native 9bf90ab rpcbind: move patch to correct location 8937133 linux-libc-headers: update hayes-gone patch to remove HAYES ioctls from mips c840412 setserial: add patch to fix missing stdlib header 3be379d mingetty: Add new mingetty package 47423b5 logrotate: Add new logrotate package dea8d65 distro-tracking: update cronie c398c16 cronie: add the latest version 1.4.4 883b09f task-poky-basic: add cron, logrotate, mingetty 2eeb094 at: fix for parallel build issue & bug #180 558ef57 rpcbind: add patch to fix host include path a6c83e0 qemu: build qemu-x86-64 binary for use in locale generation 1ff9c93 updateme: detect and prepare patches 80993c4 qemuimage-testlib: kill qemu process according to its pid, instead of process name 4b611b6 package_rpm: Enable debian style tags 379ba0e rootfs_rpm: Optimize rpm database processing 84f7f70 package_rpm: Enable per file dependencies 431c975 Add qemu-ppc in qemu-native, required by eglibc 0d7bcdf libmatchbox: Fix the matchbox environment start failure on x86-64 target. 36aa00b pointercal: add config file for x86-64 target a7e1451 distro tracking field: add NO_UPDATE_REASON for cairo 7b3f400 distro-tracking: update devel/toolchain data 561d875 libc-package.bbclass: merge glibc & eglibc class files 436d590 openssh: new recipe addition a206fce task-poky-lsb: add sysklogd, libaio, mdadm, screen, watchdog a8339e5 tcl: fix from missing sys/fpu.h and undefined mipsCR d3fd98e distro_tracking: add alias for bluez4, libgsmd, and zeroconf 748b7da distro_tracking: sed, rpcbind, libtirpc 429015a rpcbind: add new recipe version 0.2.0 0bd7fc5 libtirpc: add new recipe version 0.2.1 3f7f13d which (GPLv3): inherit update-alternatives to handle install priority c4ecd35 sed: Upgraded to the latest version 4.2.1 8232e01 sed: Inherit update-altenatives to handle the install priority c56bab6 dpkg: fix powerpc and mips build failure 2c54c55 at: gplv2 recipe at version 3.1.12 e384d62 at: remove GPLv3 version ff9f102 mdadm: add patch to fix passing linker options to cc 118c364 libaio: add new recipe dd55094 valgrind: fix perl scripts 33ed325 distro-tracking: update powertop, lttng-ust, lttng-viewer, liberation-fonts 6c098eb powertop: fix segfault in dump mode f201131 powertop: upgrade from 1.11 to the latest version 1.13 df894c6 sysklogd: add sysklogd 1.5 8cbf96a runqemu: add poky-image-basic and poky-image-lsb to recognized images 45c8f61 distro-tracking: add mdadm and screen 2426f14 screen: add the latest version 4.0.3 8289cd4 mdadm: add the latest version 3.1.4 93914e1 distro tracking: Add info for libuser and xz 094d5d7 Distro tracking: Add package alias for xf86-video-intel 131d268 Distro tracking: Add package alias for puzzles, eds-dbus... 65a4905 distro-track: add ownership for 4 recipes a4141e1 xset: move DISTRO_PN_ALIAS to distro .inc file 6838545 distro_check: fix for natives, cross, and initial recipe types 444e448 distro_check: use space as the delimiter for aliases d594565 distro-track: add alias name for 89 recipes c52fcaf DistroData: add eventhandler to correctly setup log file d62ee7e packages: Separate out most of the remaining packages into recipes caab7fc Drop chroot usage as its not well used, tested and is broken 232ef84 bitbake/fetch: ensure the mirrored repository is updated as required 5c229f9 bitbake/git: define a forcefetch method b54e95f bitbake/fetch: Respect forcefetch even when pulling from a mirror 94f2946 powerpc-common: add working_getline to gettext d5bc208 which (GPLv2): inherit update-alternatives dc5f45c lttng-viewer: upgrade from 0.8.84 to 0.10.0 b36e980 task-poky-basic.bb: add at and watchdog 8a13529 at: run daemon as root user 43938f1 sqlite3: fix multiple provider warning 9c1d256 gawk: add gawk 3.1.8, GPLv3 version move to meta/recipes 1a326e9 gst-meta-base: Enable some video and audio codec be29199 cmake.bbclass: sync from openembedded a0b72c2 rpm: compatiblity and header fix adfd0e0 boost: upgrade to 1.44.0 d1f7c3f libcheck: upgrade to version 0.9.8 09bffb7 Add qemu-i386 in qemu-native, required by eglibc 1f0ba7c sed: Fix ppc build failure 4c00be1 distro_tracking_fields.inc: add distro_commands.inc c595743 toolchain-scripts.bbclass: inherit siteinfo e055544 sstate: fix dir name in manifest 03983e9 sstate: make do_cleanup really working 3aa6e46 pseudo: Update to latest version 9897b81 bitbake/codeparser: Implement persistent cache 332c33a bitbake/data.py: Add emit_func() and generate_dependencies() functions 3492bff bitbake: Add codeparser for parsing shell and python functions 13fdd4a bitbake/BBHandler: Save python functions into the dictonary f7627e4 bitbake/data_smart.py: Allow the data expand function to keep track of references (including those from python code) e656632 meta/classes: Fix whitespace mismatch and broken functions e300aa0 libproxy: disable perl bindings 4a65458 distro_tracking: connman, connman-gnome, wpa-supplicant, etc. ca4a58a connman: Use connman as default network management tool f6917ad wpa-supplicant: Add latest stable version 0.6.10 29d6678 Major layout change to the packages directory da49de6 quicky: add QT app quicky, a simple note-taking application 923f920 qmmp: add QT app qmmp, an QT audio-player 43e62c4 fotowall: add QT app fotowall, an QT photo tool 46bdf06 qt4 core lib: add qt4 core library x11 version. 51e05bb qmake2.bbclass: update for QT4 7aa5f11 qt-tools-native: add QT4 tool to build qt application dd30a64 grep: new recipe v2.5.1a 119b69d distro_commands.inc: Add maintainer information 4c86c99 readline: Split GPLv2 version from shared inc file 98bd03a coreutils (GPLv3): add latest version (8.5) cc0a703 sysstat: add sysstat 9.1.4 5bb5561 cmake.bbclass: sync from openembedded 6bfeb80 gawk: add 3.1.5 (GPLv2 version) 8927e93 cpio: new recipe v2.8 7c301b9 at.inc: remove unneeded LIBS setting e08ae7e tar_1.17: eliminate a patch by setting CFLAGS instead 9a60cbc file: reinstate 5.04 upgrades with modifications 6b039d0 libuser: add 0.56.16 as new recipe c3232ed base.bbclass: Add xz-native as depends when finding *.xz in SRCURI 63f33ef xz: add 4.999.9beta as new recipe cb73e94 bash (GPLv2): remove metadata sharing from GPLv3 recipe 37f914d findutils (GPLv2): remove metadata sharing from GPLv3 recipe 084eb5a rsync: split GPLv2 version from GPLv3 by fixing the GPLv2 recipe 9f03fdd which: add GPLv2 version 2.18 03df313 coreutils: upgrade to latest GPLv2 version (6.9) 7303807 test: Add scenario file for each target and support single case running 192d699 task-poky-basic: added new packages to basic task for LSB e76f76a ftrace: add trace-cmd for ftrace control and config 70cd1ff linux-wrs: update to 2.6.34.5 4b2a355 sstate/utility-tasks: Ensure do_clean functions correctly and removes shared state 5c7531f sstate: Run sstate_cleanall() as part of do_setscene() 4a310f2 qemu: On some older machines SDL is available 18c0da3 pseudo: Update to the latest git version of pseudo dd0fb80 meta-toolchain: fix for recent opkg change e10703a meta-toolchain: update to reflect opkg state directory move 8ea7fa6 opkg: finalize the change to var directory d46c362 sstate: fix architecture of sstate archives b66dc67 xf86-video-intel: fix COMPATIBLE_HOST entry, this was preventing building 66790ec poky-qemu: check for existence of required libraries 196f6f2 qemu.inc: ensure helper programs are built when building for qemu machines 1d0757f opkg: use var for state files, not libdir 53ff069 bitbake/runqueue.py: Ensure rqexe always exists and that empty task lists cause a graceful exit 9a8b644 package_rpm: Temporary workaround for perfile dependencies 59a3e98 rootfs_rpm: Enable multi dep solverdbs 55a046b package_rpm: Rewrite the way the spec files are generated f29f936 package.bbclass: Fix per-file dependency generation e37ee51 rpm_5.1.10.bb: Update macros f0f911a rpm: use rpm-5.1.10 from SNAPSHOT URI. 0741c3b Ensure all packages which should have x86_64 in COMPATIBLE_HOST ca95d02 package.bbclass: Fix shlibs race 203bf3f bitbake.conf: Add DESCRIPTION for -dev, -dbg and -doc packages 47f704e insane.bbclass: Update to match the packaging classes when handling OVERRIDES b9f4ff1 package.bbclass: Fix do_shlibs 5977534 devshell.bbclass: export the FAKEROOTENV so it can be accessed within the devshell task 71a46a4 utils.py: Fix bb.copyfile to change the permissions of the file back correctly 86c2b56 package.bbclass: If files are unreadable, add read access for stripping ac9e682 lib/oe/path: Use bb.utils.copyfile as shutils can't cope with copying unreadable files 87dba42 utils.py: Add a new extend_deps() to easily merge two dependency lists 54e3a82 package.bbclass: Add perfile dependency identification b4bef9a bitbake.conf: Add shared/pkgconfig files to standard -dev glob 5d2e88c rpm: Update the rpm integration to support per-file dependencies 6c12afd glibc: bring back needed patches from older recipes 179e056 base.bbclass: Initial work to add GPLv2 Only Build with Whitelist for GPLv3 Native tools e7e01e7 linux-wrs: allow packed refs to be present a33579d kernel: update branch revisions for 2.6.34.4 2cf104f guilt: import guilt for kernel patch management 1554301 distro-tracking: add info for watchdog 91818ff watchdog: add the latest version 5.9 e8231e0 poky-qemu-internal: fix the echo of KERNCMDLINE 9cb1b87 distro tracking: Add info for pax ce2e0a0 distro tracking: Updated version info for owl-video, matchbox-desktop, webkit-gtk... d7d803f poky-qemu-internal: fix broken call to poky-qemu-ifup 3a0eeb8 python-pycairo: upgrade to 1.8.10 89ae217 iputils: add iputils package 070096e runqemu-nfs: boot QEMU using nfsroot and local unfs export 313bda1 poky-export-rootfs: script for exporting userspace nfsroots c23da3d poky-extract-sdk: script for extracting sdk images using pseudo f203df8 poky-qemu-internal: fixes for userspace NFS booting 81ff1ee poky-qemu-internal: Support use of a preconfigured tap device 4df9f11 poky-qemu-internal: Support NFS boots better 6ea1ed5 poky-qemu-[ifup|ifdown]: Use native tunctl f35a8d4 poky-find-native-sysroot: helper script for locating the native sysroot path e4bc3e3 tunctl: Added an tunctl which supports TUNSETGROUP d9aa25a poky-qemu-ifup: allow multiple tap devices c791544 qemu: Use a TAP device instead of slirp for networking b5b3825 unfs-server: new userspace nfs recipe 7352105 glibc: remove all old recipes 7e8f14d valgrind: upgrade for eglibc 2.12 4cdaa17 gdb: disable installation of bfd/iberty/opcodes 75b57d5 bitbake/utils.py: Allow copyfile to copy files which aren't readable ac3452c bitbake/utils.py: Improve better_exec debug output 616e755 bitbake: Correctly route events from the worker to the server 9708f9c bitbake/knotty: Exiting as soon as a fatal is seen is not desirable as the stacktrace won't be seen ca09a6f bitbake/cooker.py: Don't init the fetcher in the worker case fac06aa bitbake/persist_data: Attempt to fix locking issues 604f127 bitbake/data.py: Handle exceptions in export_bars in the same way as emit_var() 9b8ae6b bitbake/server: Raise a shutdown event if we're seeing exceptions 4a8fe7f bitbake/runqueue.py: Ensure the flush happens as late as possible to avoid data mixups 6e3a381 bitbake/utils.py: Give useful debug information when no lineno information is available f070ee9 Rename packaged-staging2 -> sstate and remove the old empty class 657188b Revert "base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged" 084ec86 classes: Disable setscene tasks for initial testing 7a0f6ce sanity.bbclass: Don't run the handler in worker context 3c539be package_*.bbclass: Always run these tasks under fakeroot 6739a62 bitbake/runqueue.py: Fix runqueue UI issues b6bfe14 bitbake: Switch to use subprocess for forking tasks and FAKEROOTENV to run shell and python under a fakeroot environment a45e1d5 Remove packaged-staging.bbclass 3699201 deploy.bbclass: use new style staging for deploy tasks 29ca893 package.bbclass: Implement packaged-staging2 c28973c staging.bbclass: Convert to packaged-staging 0769e84 package_(deb|rpm): Update to use packaged-staging2 1480119 package_ipk.bbclass: Convert to new task based staging c7a8029 Start sstate Add pre clean hook Add sstate_installpkg sstate: Tie all pieces together with a setscene function Use pythonic functions rather than os.system() Implement sstate_clean function package_ipk: clean shared state in prestate packaged-staging2: implement fetching packages from mirror Copy add staging_fetch() from packaged-staging.bbclass packaged-staging2: make the output slightly friendlier packaged-staging2: handle directories in the shared state Add directories to the manifest when installing and remove them if empty when cleaning. Move most of the sstate code into the class itself removing the need for heavy boilderplate 787c1cf bitbake: Initial scenequeue implementation (needs major fixes) 41a364f gcc_4.5.0: fix for arm kernel failure 84d96ba elfutils: Add GNU_HASH support to elf*_xlatetof f5dcdf9 net-tools: add new recipe (1.60-23) 26f3409 pax: add 3.4 as new recipe f626b8f gzip: Add 1.3.12(GPLv2) as new recipe 6752cdf distr-tracking: add MAINTAINER and version info for rest recipes 86af749 xinetd: Drop INHIBIT_AUTO_STAGE, this does nothing in Poky 23552a4 xinetd: add xinetd 90e8bc7 autotools.bbclass: Drop a number of legacy functions that shouldn't be (and aren't) used in poky now 372f2f4 mktemp: add mktemp package ec22c62 cracklib: add new package a57add5 ed: add GPLv2 version. 8cfecea eglibc: recipe cleanup 75c781a distro_tracking: update maitanier for toolchain/devel recipes e6743f8 rsync: explicitly disable xattr and acl 30b01f9 gamin: add glib-2.0 as dependency 3ce480d bitbake/runqueue.py: Factor task skipping code into a function 65b068a bitbake/runqueue.py: Create RunQueueExecute and RunQueueExecuteTasks classes, further splitting up runqueue 96ec9f8 bitbake/cooker.py: Allow idle handlers to pass through a true value 1db9ee5 bitbake/runqueue.py: Drop duplicated class d39434b task-poky-tools: Add perf to tools-profile package efadb43 native.bbclass: Ensure EXTRA_NATIVE_PKGCONFIG_PATH has a default value 84d31b8 apmd: Add back libtool patch as the issue the patch fixed reappeared 22bf334 xserver-xf86-dri-lite: xorg-minimal-fonts is responsible for this symlink 418cce9 bitbake.conf: Set FAKEROOTENV 9ba6043 linux-wrs: Make sure kern-tools-native is built before do_patch 5d9f378 bitbake: Split Runqueue into two classes, a data processor and the execution part d7bc9b8 DistroData: Cleanup Version numbers and add DistroData Parser 26350bb aspell: moved from meta-moblin to meta to support enchant dependency 912480a distro tracking fix: cairo qemugl 72ccda6 distro-tracking: fix versions format dbus-wait shadow 54d6d75 update-rc.d.bbclass: adjust order on tweaking postinst 7025e64 pam: add missing bits from previous commit db5c145 udev: use relative path when creating dev.tar 07adcba lttng-ust: disable MIPS build since liburcu doesn't build on MIPS 94f63fa gcc_4.5.0: import a missing patch from gcc_4.3.3 514d768 poky-default: fix a warning caused by preferred libc-initial being unset 67239d4 kernel.bbclass: Fix adding module dependencies to RDEPENDS cb5d51a cross-canadian.bbclass: Set TOOLCHAIN_OPTIONS to point at the correct sysroot e624b27 build/conf: move sample conf files to meta/conf 2225e12 base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged a4aaaee tcl: fix native build 8e8316c bitbake/utils.py: Allow explode_dep_versions to handle the commas join_deps can introduce into strings bfaeda0 binutils: fix the installed location of libiberty.a file 8c498e5 testlib: Add support for qemumips/qemuppc/qemux86-64, and add support for testing with images from autobuilder 6fc5bdd task-poky-basic: enabled ethtool as part of build 03ee906 distro_x11_apps_1.inc, distro_x11_ux.inc: Add maintainer info cedd774 distro_tracking: Add maintainer information b8f64fe distro_x11_core.inc, distro_x11_apps_2.inc: add maintainer info 26db53b gmp: add GPLv2 version (4.2.1) f53504d ethtool: add new recipe 2.6.34 2d394b2 distro-tracking: update MAINTAINER info for base group 675259c sdk-task: make libc dependancies generic 512d3b7 eglibc: import eglibc_2.12 recipe from OE 2c11926 procps: Move from meta-moblin to meta-lsb e8ac5a7 Add glossary entry for SUMMARY for binary packaging a2e6b26 tcl: fix a build issue aeb73bd linux-wrs: Fix qemux86-64 1c4cc60 kernel-arch: x86-64 is no longer a valid architecture, map it to x86 2e0d6df git: update to get features required for wr-kernel-tools bdb9da4 emenlow: add support for the r8169 network card ed51940 emenlow: Add Intel sound support bb75c18 Move byacc, which, libconvert-asn1-perl and libtimedate-perl to meta-lsb 5abb132 distro-tracking: update MAINTAINER info for base group 1766b2b tasks: updated tasks and images to reflect distro lsb requirments cca5090 distro-tracking: update MAINTAINER info for x11_libs and sdk_tools. 7b6700f distro tracking: add liburcu, lttng-ust, upgrade lttng-control and lttng-viewer 295e142 task-poky-tools: fix RDEPENDS_task-poky-tools-profile and add lttng-ust into it 56c5f2a lttng-ust: add the latest version 0.5 80ec777 liburcu: add the latest version 0.4.6 5f199e8 distro-track: add maintainer info 0eb96ab gamin: put into meta-lsb 3a7c857 distro-track: tcp-wrappers 304f88f nfs-utils: enable tcp-wrappers support 22ae6b1 portmap: enable tcp-wrappers support 6ffc4f2 tcp-wrappers: add new package 199177b distro-tracking: update tracking fields for libpam and shadow f6535ea shadow: add new recipe 4.1.4.2 44d7c56 staging.bbclass: mangle *.la for ${base_libdir} too 46771a8 pam: rename to libpam and add core config files 59e30ad distro_tracking: add meta data for additional devel packages 72aa55b libconvert-asn1-perl: create new recipe 4f90c0c libtimedate-perl: create a new recipe ab902e0 byacc: added new recipe in to the tree eaf2a94 libproxy: upgrade from 0.4.2 to 0.4.3 e5052c4 minicom: Update to 2.3 (from OE) 1280503 minicom: move from meta-extras to meta-lsb 858c0d9 Distro tracking: Update tracking fields for bc and ed a1a35a3 ed: add 1.4 as new recipe a44754d distro_tracking: enchant, cwautomacros, which, and quota 806cc3d which: Add new recipe 070f8f5 distro-track: new package placeholder 4897393 distro-track: update for package upgrades 0e60d04 linux-wrs: Enable tracking of the secondary wrs_meta branch in PV 6cbd557 base: Allow unpack to handle localpath=None f3292fa bitbake/git.py: Make sure different branches can have different revisions without triggering build count increases a18e9b4 bitbake/git.py: Allow tracking of branches in SRC_URI without cloning for use with fullclone 0ea4b89 bitbake/git.py: Make sure a full clone checkout always updates 76a17c1 meta-ide-support: don't pull in unneeded nativesdk tasks 2e0e656 dbus-wait: Updated License File Checksum 07582c7 pseudo: Fix pseudo build 28d70bc pseudo: Fix segfaults 6c7bc9e package.bbclass: Document the process followed in the class from a high level 268b8cf dbus-wait: Update LICENSE after changes upstream d428c9f prelink: Enable image wide prelinking 1c9f061 pseudo: Upgrade pseudo and correct problems e101642 populate-volatile.sh: cleanup duplicated invocations and remove boot warning cf1e754 libxml2: fix python binding bb175ec bitbake.conf: Fix up OVERRIDES documentation (some bits from OE) and also add forcevariable OVERRIDE 9ef9b5e bitbake/build.py: Note when calling functions that don't exist. Should probably error 36e81a8 bitbake/cooker: Make sure no locks are held before we start forking workers e4c1c8c utility-tasks.bbclass: Use python functions for do_clean instead of os.system, remove pointless [dirs] flag 19be6b4 lib/oe/path.py: Add copytree function that works a5884df lib/oe: support wildcards in path.remove dfd7e1f bitbake/build.py: Set the current taskname in the BB_CURRENTTASK variable a525b27 relocatable.bbclass: Cover libexecdir 9e9d451 bitbake.conf: Set PKG_CONFIG_LIBDIR 889c8ed sato-icon-theme: Make sure the native icon mapping script is found and used correctly 6124ccc bitbake.conf: Always specific the sysroot in TOOLCHAIN_OPTIONS 9e2600b gcc-package-cross: Make the libexec symlinks use relative paths so they're reclocatable 53f22c9 gdb: Make sure expat is not accidentally included f05fd8d meta-ide-support: A dummy recipe to install everthing for target development 69ac39b kernel.bbclass: do_deploy should use ${B}, not ${S} (which is what ${B} defaults to) cb67b6d kern-tools-native: add scc 15bf2d5 gcc: Fix 4.5.0 patch rejects a0dd61e package.bbclass: Use --preserve-dates option when stripping kernel modules c335297 pciutils: upgrade to version 3.1.5 650319c kernel.bbclass: Exclude scripts/dtc object files 6ef17f4 poky-default.inc: Make gcc 4.5.0 the default but not for mips and powerpc yet 1842635 gcc-4.5.0: import some ppc & mips fixes from oe recipes 8fd7cc3 gcc-4.5.0: newer patch for svn revision 162697 d3630f8 kernel/package.bbclass: Handle kernel module stripping centrally 708db1e kernel.bbclass: Clean up kernel packaging output f25d26d js: fix configure 15ecd98 linux-wrs: perf needs python and perl at runtime, not buildtime a52dc8a linux-wrs: Make sure install_perf runs before do_package e710b42 linux-wrs: Make sure install_perf happens for do_package 7994c9a kern_tools: update default revision a924ea5 perf: performance analysis tools for Linux 55011c1 kern_tools: add updateme and patchme eaacd25 kernel: add dynamic configuration and patching 601464b nfsroot: allow nfsroot to survive netbase init bca2836 pseudo: Only build 32 bit lib version if 32 bit development headers are available 0025bbb acl: add new package 607709f xserver-xf86-config: add qemux86-64 xorg.conf f4cb087 module-init-tools: fix depmod caused segfault issue 45d237b quote/cwautomacros: Move to meta-lsb 8f284e4 bc: add 1.06 version as new recipe 0cc9ac7 quota: Add new recipe a9d468c cwautomacros: Add new recipe. bdcf666 enchant: Upgraded to version 1.6.0 662f136 udev: enable udev-extras 0bb1016 usbutils: upgrade to version 0.86 680f8bf attr: various improvements 28d52a2 js: upgrade to version 1.8.0~rc1 56bbb27 pcmanfm: re-update it to 0.9.7 2c2e5dc pseudo: Enable dual 32-bit and 64-bit support 4e2c84f pseudo: Change pseudo integration to better support local DBs aed7ee0 base.bbclass: Enable fakeroot (pseudo) usage during install and packaging f4322c6 package_ipk.bbclass: Fix variable name 16d299c cooker.py: Fix case of -b option with a full filepath 8105d43 *: Fix typo in documentation 9383074 gcc: Fix dynamic linker location for x86_64 1fbcd2c lib/oe: sync with OE.dev 7b74364 icu: Make sure changes apply to Makefile and Makefile.in to fix build failure 12f8876 package_ipk: Clean up initial variables 0f516fe bitbake/build.py: Add support for pre and postfuncs for tasks b83179c kernel.bbclass: Simplify shell syntax so pysh can cope with it f6ae8a4 packaged-staging: Fix architecture of nativesdk and cross-canadian packages. Also remove now unneeded path from native packages ec8f529 cross-canadian: Move binaries into a subdirectory of bin to allow multimachine installs and update users accordingly b3e41b5 packaged-staing.bbclass: Make sure python function is marked as such ad8c5b6 utils: Fix number of arguments to bb.msg functions 0e3fc6d *: cosmetic whitespace removal 191a288 Add pysh, ply, and codegen to lib/ to prepare for future work e6b6767 Let the runqueue find the user selected scheduler dynamically 29b4c29 apt: fix builds with modern GCC fa8c028 scripts: add qemux86-64 support to the qemu scripts d9b1d43 mesa-dri: fix x86-64 target compilation a235e41 hal: PR needs to be bumped for change to take effect 983b094 opkg: take out the bad patch on crack fe69012 libgcrypt: upgrade from 1.4.5 to 1.4.6 24132e4 libmad: fix for building on mips with gcc-4.5.0 4460087 enchant: fix a dependancy issue affecting the build 40f5030 emenlow: Add BASE_PACKAGE_ARCH and modification to hal.inc for emenlow 54bb4b4 site/x86_64: Add entries to allow various programs to compile ba6a07b local.conf.sample: Use ?= when setting SDKMACHINE e4d743e xserver-xf86-config: netbook - merge the two ServerFlags sections 71bf22d distro tracking field: iputils, mktemp, xinetd, cracklib 8f756a7 distro-tracking: for new packages gzip iptables ethtool net-tools shadow coreutils libuser bc ed pax quota which watchdog b8589c9 iptables: new package 1.4.8 754c548 pam: use volatile to avoid /var/run population in do_rootfs 8362a98 tcf-agent: fix the init script: remove the "-s SSL:" option cdece36 distro tracking: add distro_sdk_tools.inc, add lttng-ust 5fba534 dhcp: fix $PATH environment for dhclient-script 1acae1c libmusicbrainz: fix a build issue with gcc 4.5.0 620aece gcc-4.5.0: import an arm fix patch from OE 7325781 gcc-4.5.0: apply the lib64 path 64bithack.patch 067863d distro tracking: add tracking for libmpc 8658f47 rootfs_ipk.bbclass: add keyword "Collected errors" for log error check 16877ce avahi: fix the /var/run conflict with other package ae035f1 emenlow - boot to a GUI d9f22d4 binutils: Fixed cross-compile issue for 64b build + arm target da1332a bonono/orbit2: Move to meta-extras 7f8c1bf libjana: Drop duplicate copy from meta-openmoko 049aaa0 staging: Remove now unused legacy staging code ab37f53 xserver-xf86-config: Add a netbook xorg.conf with an extra option 9d4a429 emenlow: linux - add enough config options to boot a live image 637ad7e bitbake.conf: change inode calculation for genext2fs [BUGFIX#138] 218e441 utility-tasks.bbclass: miscellaneous fix ea3cfba cmake: only search root directory for FIND_*** 106de1f distro tracking: add tcf-agent 90e80aa tcf-agent: add the latest version 0.3.0+svnr1078 c62be53 site/x86_64: Add missing site config for glib-2.0 fb10983 qemux86-64: Add new emulation machine for 64bit x86 752435e x86-64: Fix up COMPATIBLE_HOST defintions for x86-64 4a51ea5 xspb-glx: Fix libdrm naming issues 95e40d3 libdrm-poulsbo: Fix naming to be consistent b01f7d7 libva: Add missing DEPENDS on libxext faf6b2d cross-canadian.bbclass: Tweak secondary toolchain path component to account for multimachine 2685863 rm_work.bbclasS: Don't remove the pseudo database as it causes problems with meta-toolchin 7829212 emenlow.conf: All tune-atom users need to share the same TARGET_ARCH, fix. Need to revisit this issue later 7a18558 gcc: For 64 bit targets don't use lib64 43b8e66 Revert "pcmanfm: Update to 0.9.7" 7edde59 bitbake: cache: If one virtual of a recipe is uncached, remove all versions from the cache 36cfff8 bitbake: fetch: Only mark srcrev recipes as uncached when outside of SRCREV caching mode 0babe2c cross-canadian.bbclass: Add in the target compiler paths as well as the sdk compilers 0b60744 gcc-configure-sdk.inc: Remove hardcoded util paths 42df9e9 cross-canadian: Fix toolchain path 3a52615 gcc-runtime: Fix stashed libs path for nativesdk ae28366 pseudo: Fix path length issues and resulting chdir issues ff0e858 gcc-cross: Remove obsolete hacks from 4.5 version 2e5df82 nativesdk.bbckass: Fix toolchain path 53b1161 pseudo: Make sure log/pid/lock/socket files are covered by data directory moves bcba451 binutils: Remove zlib DEPENDS as it causes circular references c28cbe7 emenlow: Change libdrm-poulsbo to libdrm_poulsbo 1732634 elfutils: add nativesdk target c7c5c34 gcc family : upgrade to 4.5.0 722e27e libmpc: bring for gcc 4.5.0 4f19548 prelink: Add prelink-native 5e3da1b elfutils: add elfutils native 33ee407 binutils: Add native version and tweak 8b3f94e binutils: Set DEPENDS correctly and remove unneeded PACKAGES setting 7069fb8 binutils: Drop FILESPATHPKG, its no longer needed 62540b2 meta/conf/bitbake.conf: Configure pseudo to not expand symlinks d668b80 meta/classes/rootfs_rpm.bbclass: re implement base on rpm5 8760cde rpm: switch to using RPM 5 60fa21d beecrypt: upgrade to version 4.1.2 9fcba30 libpcre: move from meta-moblin to meta and update to 8.10 a4fb2c9 pseudo: Enhancements 7de5081 task-poky-basic: Enable at and tar for basic image ac5a021 tar: New recipe additions 1.17 and 1.23 8098644 at: New recipe additions 3.1.10.2 and 3.1.12 d6ba72a pcmanfm: Update to 0.9.7 cbea4ae udev: upgrade to version 158 3a1c456 webkit-gtk: Update to 1.3.2 b0b3468 tar: New recipe additions 1.17 and 1.23 0d33329 at: New recipe additions 3.1.10.2 and 3.1.12 6da4a66 meta-lsb: Add basic infrastructure to create lsb image 18b33a2 distro tracking: Additional core command packages 36186e8 distro_tracking: fix tracking field for db 0ff62b0 expat: use gzip-native for unpack f23b594 gzip: new package d91b4f5 opengl: audit the bb file d007137 distro-track: update hal, udev et al 95bb97a dhcp: upgrade to 4.1.1-P1 00a42b7 util-linux: upgrade to version 2.17.2 ec6705a hal-info: upgrade to version 20091130 8bad275 hal: upgrade to version 0.5.14 63d5652 libusb-compat: upgrade to version 0.1.3 74388f7 libusb1: upgrade to version 1.0.8 6b1dae9 distro tracking: Updated version info for oh-puzzles, dates, contacts... 623017e libfm: Add 0.1.12 as new recipe e1a6b73 menu-cache: add 0.3.2 as new recipe cf3f5de startup-notification: Drop unneeded do_configure_prepend e7dc96a distro tracking: add xcb-util and startup-notification, fix xorg-minimal-fonts 4129415 startup-notification: upgrade to the latest version 0.10 e4f9809 xcb-util: add the latest version 0.3.6 39d8556 gst-meta-base: Fix vorbis plugin reference a167678 gaku: Fix plugin name c0a63c5 gst-plugins: Fix module splitting 95454d7 linux-wrs: Bump PR and fix some quoting 4c37304 webkit: Bump PR 0665356 binutils: Disable libbfd and remove unneeded copies of tools in dangerous paths. gcc now has symlinks to handle this 28f8e30 binutils.inc: This bug has since been fixed, drop the hack 66d7b58 bitbake.conf/cross.bbclass: Inject MULTIMACH_TARGET_SYS into the toolchain paths to prevent multimachine cross contamination bf80232 gcc-package-cross.inc: Setup symlinks in the libexec directory to our cross tools so the toolchain finds them correctly ab82312 gcc-cross-intermediate.inc: Make sure libgcc goes into the target sysroot 23f94ad gcc-cross-initial/intermediate: Drop now unneeded symlink hacks 989d2f7 gcc-cross: Use MULTIMACH_TARGET_SYS instead of TARGET_SYS in staging path 3f5d3d7 gcc-configure-common.inc: Disable multilib for now b98e3e9 poky-env-internal: re-add OEROOT to the whitelisted environment variables fbf2022 sanity.conf: Update layer version after the last commit 2efba78 Add meta-emenlow to the default layers list f887d02 bitbake.conf: Increase the image generation free space dbc8892 latencytop: Move from meta-moblin to meta 833390e libdrm-poulsbo: Provide libdrm-poulsbo instead of libdrm b18f121 package_deb.bbclass: Make sure the controldir is always cleaned out 7459068 scripts/poky-env-internal: preserve the git proxy env var 0d18597 rootfs_ipk: error when dependencies cannot be satisfied c017d0e eds-dbus: Add missing DEPENDS on gperf-native b4cc2b7 pkgconfig_staging.bbclass: remove it 1808105 distro tracking: fix font-alias b7be3ba font-alias: fix metadata 5eb1eec distro tracking data: fix gconf-dbus, vte, xserver-nodm-init, qemugl, spectrum-fw 671f05a distro_tracking: Fix tracking fields for networkmanager, networkmanager-applet, and glibc 23707b0 distro tracking: Updated version info for oh-puzzles, dates, contacts... 3391145 distro-tracking: fix two typos 408f124 handbook: update SDK paths 410fc8d meta-toolchain: set appropriate compiler flags in the environment script c9602c5 emenlow: Set COMPATIBLE_MACHINE where needed e35762d xpsb-glx: Add missing dependency on makedepend-native 90ac746 xserver-xf86-config: Fix emenlow append to coexist with existing users dc54b77 meta-emenlow/formfactor: Make sure the files work well with the existing recipe files 83cc549 poky-env-internal: Print some further information for the user 9832fd3 poky-env-internal: Cleanup after the recent layer improvements c2f71a8 poky-env-internal/runqemu: Move BUILD_SYS handling which is runqemu specific into runqemu 2b84008 moblin.conf: Collapse to an overlay of poky.conf 7af8cb9 poky.conf: gcc 2.95 died a long time ago, thankfully 6d3a5ac meta/layer.conf: Fix PATH to use POKYBASE ade4c8a meta-moblin: Remove now unneeded moblin POKYMODE 7219087 Move less useful xorg-app and xorg-data to meta-extras d977cb2 meta-extras: Remove obsolete android goldfish code 3073a73 mc: 4.6.0 -> 4.7.3 with significant recipe cleanups and updates c907634 meta-moblin: Remove old psb driver 897a8b5 stagemanager: Move functionality into the scripts directory dc807f5 Finally deprecate all legacy do_stage functions. This changes the existing warning into a fatal error if any legacy do_stage functions are found. 5c63f8a poky-env-internal: unbreak existing build setups d9babfe latencytop: add dependency on gtk+ and bump PR ba8fad4 opkg-utils: add do_install after NATIVE_INSTALL_WORKS b02be74 Drop old broken menlow machine (replaced by emenlow) c358150 emenlow: Make sure the provider of virtual/kernel is set 595bdde opkg-utils: Set NATIVE_INSTALL_WORKS otherwise we'd use legacy staging which is not correct bbdc798 linux-wrs: Add COMPATIBLE_MACHINE definition to stop parsing errors on unsupported machines e8e3ac9 meta-emenlow: Layer for eMenlow-based systems. 0c3b1aa scripts/runqemu: Path fixes 1df4e34 distro-tracking: correction for previous recipes d8db718 sqlite3: no need to inherit pkgconfig_stage b376a80 module-init-tools: upgrade to 3.12 8a251ac libpng: upgrade to 1.2.44 d86e127 libidn: upgrade to 0.6.14(GPLv2), and 1.19 (GPLv3) 856769b gperf: upgrade to 3.0.4 98cdb30 dbus-glib: add license checksum afdebdb dbus: add license checksum 75fff51 apmd: upgrade to 3.2.2-14 cb249ed cmake.bbclass: Make sure EXTRA_OECMAKE has a sane default 0e08301 libproxy: Disabled webkit support 314fbb1 gcc-cross-canadian/meta-toolchain: Fix C++ compiler location and path issues 1d0d3e4 distro tracking: gconf-dbus, elfutils, spectrum-fw and sqlite3 929169b sqlite3: upgrade to 3.6.23.1 12c9296 spectrum-fw.bb: Change SRC_URI to somewhere fetchable. f193588 elfutils: upgrade to version 0.148 6cb27d8 gconf-dbus: upgrade to SVN r705 9f5e302 distro_tracking: Add tracking field for db, opkg, and opkg-utils cb1a0a4 opkg-utils: Upgraded to revision 4747 36bc459 opkg: Upgraded to version 0.1.8 21fae7e distro tracking: Update fileds for gnome-vfs, avahi, libassuan, liboil... 7dcb5a2 gpgme: Update to 1.3.0 3668c10 libassuan: Update to 2.0.0 4c2bb35 libgpg-error: Update to 1.8 9618d56 liboil: Fix the meta data 2601e6d avahi: Update to 0.6.27 1763f00 gnome-vfs: Update to 2.24.3 3deb487 distro tracking: update distro tracking field for font-alias and liberation-fonts. 6b2eec3 linux: 2.6.33.2: turn on CONFIG_OPROFILE and CONFIG_LATENCYTOP for netbook and qemux86 31c0972 distro tracking: add distro tracking field for oprofileui, powertop, latencytop. fcabff2 task-poky-tools: add latencytop into RDEPENDS_task-poky-tools-profile 912a5c9 latencytop: upgrade from 0.4 to the latest version 0.5 61d808b powertop: upgrade from 1.10 to the latest version 1.11 e2fa1ec oprofile: fix metadata 47a60cc oprofileui: upgrade from r194 to the latest version r197 fb92046 task-poky-tools: fix RDEPENDS_task-poky-tools-profile_qemux86 ce8cb73 Distro tracking: Update the eds-dbus, jpeg, webkit-gtk.... b8b678f jpeg: Update to 8b 37eb359 eds-dbus: Update to 2.30.2 from git repo 2d63185 web-webkit: Update to 110 dc5bcf7 oh-puzzles: Fix the meta data 521edcf distro_tracking: valgrind, formfactor, makedevs, and bluez-dtl1-workaround. 5f3e66d valgrind_3.5.0.bb: Fix recipe metadata c7c3b48 makedevs_1.0.0.bb: Fix recipe metadata 69c907d formfactor_0.0.bb: Fix recipe metadata ad0ac0e pseudo: Uprev to the latest git version 9719075 Enable build dir outside of the poky directory 50629b3 bitbake.conf: move PSTAGE_DIR and DL_DIR with build output df563f0 linux_wrs: update SRCREVs for 2.6.34.1 f5495cf linux_wrs: remove duplicate PV 4dc54a2 layer.conf: Set BBPATH correctly d39ae18 qemu/mips: arrange for vmlinux to be bootable ae6c323 qemu: update kernel mapping to return x86 for i586 TARGET_ARCH 9ee1fbb qemu machines: Switch to use linux-wrs f0af0ba kernel: create base recipe for Wind River Linux kernel building 15624d1 kern_tools: wrs kernel manipulation tools 3e86c5e linux-libc-headers: create a libc-headers based on Wind River kernel 68974e8 vte: upgrade to 0.24.3 to fix security vulnerability 6915c7e cpan-base.bbclass: fix perl version finding function a30162b distro-track: update fields for base section 549a171 rsync: upgrade to version 3.0.7 dd05d05 pcmciautils: upgrade to version 017 e17f8f7 shared-mime-info: upgrade to version 0.71 46039a3 pkgconfig: upgrade to version 0.25 231f585 genext2fs: upgrade to version 1.4.1 aff5193 distro tracking field: fix xserver-xf86-config version b3e901c xserver-nodm-init: fix distro tracking data 5e53061 xf86-input-vmmouse: upgrade to 12.6.9 8078a30 distro tracking: add distro tracking field for qemugl, vte and web-webkit 84efdfb distro_tracking: Add/change tracking fields for glibc, tremor, libproxy e4f0d88 wpa-supplicant: Upgraded to version 0.7.2 397793a libproxy: Upgraded to version 0.4.2 d47fc7a cmake-native: Upgraded to version 2.8.2 a6ba63c Distro Tracking: update distro tracking field for recipes of Graphics libs 0ba8e6f xorg-minimal-fonts: fix metadata 2df46a3 distro_tracking: note devel upgrades so far 648d76b mpfr: upgrade from 2.3.1 to 3.0.0 41e668e gmp: upgrade from 4.2.4 to 5.0.1 227fd49 distro_tracking: add gmp & mpfr packages in the devel tracking file 4661367 python-pygobject: upgrade from 2.16.0 to 2.21.1 77dff52 python-pygtk: upgrade from 2.10.4 to 2.17.0 1d1a559 python-scons: upgrade from 0.97 to 1.3.0 1564ef9 python-pyrex: upgrade from 0.9.8.5 to 0.9.9 692065d python-iniparse: upgrade from 0.2.3 to 0.3.2 9710898 python-imaging: upgrade from 1.1.6 to 1.1.7 97e7eed python-dbus: upgrade from 0.83.0 to 0.83.1 f828c0f yum-metadata-parser : upgrade from 1.1.2 to 1.1.4 29d5edf Use pseudo rather than fakeroot for fake root privileges 1b6535d pseudo: various enhancements to integrate with Poky f23aa92 staging: fix staging of empty directories and add localstatedir 63e6ba8 bitbake: Add support for .bbappend files (see mailing lists for detais) c4fde24 *: use print() as a function 2fc283c gst-meta-base: Update ivorbis plugin name 5e34400 gaku: Fix ivorbis plugin name 6598f98 bitbake: runqueue: Allow passing of success/failure handlers to runqueue_process_waitpid() 8c23850 bitbake: runqueue: Allow taskname to be passed to check_stamp_task() 009343b bitbake: runqueue: Make child process error scary so user is less likely to ignore 2d26384 bitbake: runqueue: Fix number of running tasks accounting (include failed tasks) 3cd042f bitbake: runqueue: Remove unneeded exception catching from fork_off_task() 5c44f9a bitbake: runqueue: Separate out task forking code into a new function 8a5b508 bitbake: runqueue: Combine the waitpid result handling code into a function 90db9f3 bitbake: Remove two layers of unnecessary functions from task execution 2fa0c30 libtool: update patches 23363c9 insane.class: print the recipe name in the warning. 2295705 sysvinit - Remove sulogin dependency on /usr/lib*/libcrypt.a fd1d661 test: add automation framework and sanitytest bd19169 poky-qemu-internal: Use 128MB memory for qemumips/qemuppc 2194912 qemu-scripts: Add support for mips and powerpc machines, update qemuarm 88dd324 qemu-native/powerpc: add qemu 0.12.4 powerpc support 8686172 binutils: Drop old versions 0f19ae1 binutils-cross: fix '-fPIE' on mips platform baf69e6 binutils/gcc-crosssdk: Fix hardcoded path layout assumptions for cross toolchains c50e585 gcc-cross-canadian: Don't build target libs as we don't use them ab4ee45 cross-canadian: Fix sysroot path cc86905 bitbake.conf: Add base_libdir_nativesdk 3b154ff crosssdk.bbclass: Ensure target layout variables are set correctly 04472ec insane.bbclass: move license check to after configure 8fe2bb0 glibc: Ensure libc is built in the correct directory by setting slibdir f9262fa bitbake.conf: Update sdk build flags after layout changes f60aa08 Revert "file: upgrade to version 5.04" abf39a1 sanity.bbclass: Fix SDKMACHINE sanity check. We need to check the SDK_ARCH variable, not SDKMACHINE directly. 3b25e33 gaku: Fix gst plugins names f0ebbd2 atk: Fix the PREFERRED_VERSION d673ad0 gdk-pixbuf-csource-native: Fix multiple providers warning e1ed390 gst-plugins: fix multiple providers warning e388cb1 gcc: Add patch to fix sparseset.o rule 9522930 gst-plugins-bad: Disable apexsink since we don't have openssl in DEPENDS causing build failures 2592f1c psplash: Update to svn revision 424 8994ce3 distro-fixed.inc: create as last means for package version check bdcecea distro-tracking: use correct override format 78f2a2c python-pygobject: add glib-2.0 dependency 168bf73 distro-tracking: update tracking fields based on current progress 41acb50 dbud-glib: upgrade to 0.86 67eeb71 dbus: upgrade to 1.2.24 85d83ab Distro tracking fields: Update some info after package update be1279f libgnome-keyring: Fix the dependency to avoid compile error sometimes. 0e7e3ae gtk+: Update to 2.20.1 b64111f libgnome-keyring: Add 2.30.1 into poky 7a5eeeb libxslt: Update to 1.1.26 b4a1dc5 libsoup-2.4: Update to 2.31.2 bb2c557 pcmanfm: Update to 0.5 73914a8 hicolor-icon-theme: Update to 0.12 c66a05a gnome-keyring: Update to 2.31.4 4cbef85 matchbox-wm: Update to 1819 de590e0 matchbox-stroke: Update to 1820 718510f matchbox-keyboard: Update to 2075 7a92d32 matchbox-panel-2: Update to 2109 14e9002 matchbox-config-gtk: Update to 2081 13a8dc5 gtk-sato-engine: Update to 0.3.2 608909d libglade: Update to 2.6.4 92bc561 gnome-common: update to 2.28.0 689eecf Distro Tracking: add distro tracking field for recipes of Graphics libs da28607 libx11-trim: upgrade to the latest version 1.3.4 fb02061 libx11: upgrade to the latest version 1.3.4 40421c1 librsvg: upgrade to the latest version 2.26.3 cd890ce glibc: Upgraded to version 2.10.1 119b8bf epdfview: add epdfview recipe from OE by Manuel Teira 9b7907f libtool family: fix build failure caused by previous libtool commit. 4e80041 libtool: Only apply prefix.patch to the non-target versions of libtool b342712 python-gst: upgrade from 0.10.8 to 0.10.18 d42466e libtool family: upgrade from 2.2.6 to 2.2.10 f516cfc siteinfo.bbclass: add mips-common to mips targets e18aba5 python: upgrade from 2.6.2 to 2.6.5 936a73e gdb family: upgrade from 6.8 to 7.1 da46e7f xf86-intel-video: upgrade to 2.12.0 24ea9ad distro tracking field: add graphics core distro tracking filed c0a3d22 vte: upgrade to 0.24.2 f7a9890 xserver-xf86-dri-lite: upgrade to 1.8.99.904 (1.9 RC4) 3e9592e libxfont: upgrade libxfont to 1.4.2 d1993fa mesa: upgrade to 7.8.2 7b46397 distro-track: update for nfs-utils related pkgs 3451dc8 nfs-utils: upgrade to version 1.2.2 5bd2ba7 libnfsidmap: add new package 8f033f5 libevent: add new package bbd9ebf libcap: add new package 23dd725 attr: add new package a604cb7 distro-track: update for base section 424278c gnutls: upgrade to version 2.8.6 8a556a8 syslinux: use /usr/lib/syslinux as AUXDIR 72210f8 libnss-mdns: upgrade to version 0.10 62136a8 findutils: upgrade to version 4.2.31 and 4.4.2 90ceeff utility-tasks.bbclass: add automatic version check for GIT/SVN proto 43bd793 fakeroot: upgrade to 1.14.4 59df5a4 pam: upgrade to 1.1.1 5dcefd1 expat: upgrade to 2.0.1 cf3796f base-passwd: upgrade to 3.5.22 fae8d5e insane.bbclass: Relax fatal errors for now until we get have time to work through the backlog ee4fc42 Revert "meta/site/common: Globally disable rpath option for all gettext packages" 4e3cb2a Merge branch 'tk/master' da9f079 meta/site/common: Globally disable rpath option for all gettext packages b44d32e insane.bbclass: Portions of code were not running, fix this and sync with OE.dev. Also add tests for bad sysroot rpaths in binaries 2e04ea8 prelink: upgrade from 20061027 to 20100106 7fa2815 libtasn1: upgrade to version 2.7 69a86f9 disto-track: update fields for base groups fd8cf68 v86d: upgrade to version 0.1.9 37e6594 libpthread-stubs: upgrade to version 0.3 f481c5d zip: upgrade to version 3.0 21d586b file: upgrade to version 5.04 71466ea less: upgrade to version 436 9e8ffdc popt: upgrade to version 1.16 0976252 unzip: upgrade to version 6.0 01af31a strace: fix metadata 0f8810e dropbear: upgrade to version 5.02 47b2545 tzdata: upgrade to version 2010j b56df3f busybox: upgrade to 1.16.2 330e32d netbase: upgrade to 4.41 4d4b792 package_*.bbclass: Only set pkg in overrides. These are the only values we're interested in expanding and this makes sure we obtain the expected data 1497af0 Revert "classes/package_ipk|_deb|_rpm.bbclass: Fix setting of OVERRIDES when packaging" a644cd1 preferred-xorg-versions: fix some versions d0eabcb local.conf.sample: add igep0020 and igep0030 as supported machines. 053e64e igep0030: add new OMAP3 IGEP module. e5520e2 igep0020: add MACHINE_EXTRA_RRECOMMENDS on linux-firmware-sd8686. 34e45d5 linux-igep2: drop linux-igep2 in favour to generic linux-igep recipe. d42035d igep0020: use linux-igep for preferred kernel provider. a367934 linux-igep: Add common 2.6 Linux Kernel for all IGEP based platforms. f594a11 mtd-utils: update to 1.3.1 to allow UBI support. 1d22846 linux-firmware: add firmware files for use with Linux kernel (based on OE.dev) 912e9d2 igep0020: set default TARGET_FPU to 'hard'. d4a6c9e distro tracking field: add distro tracking filed for graphic core/app 52759ea pango: upgrade to version 1.28.0 8f88fd5 xrandr: upgrad to version 1.3.2 cd7a91e xf86-input-evdev: upgrade to version 2.4.0 4568423 xf86-video-vmware: upgrade to version 11.0.1 669491b python-pycairo: upgrade to version 1.8.8 7ccf7af cairo: upgrade cairo to 1.8.10 020022a distro-tracking: correct the latest for perl 6a5a351 qmake2-cross: update the 2.10a recipe a60863a distro_tracking: Adding tracking fields for upgraded recipes 763be1f nektworkmanager-applet.bb: Fix recipe metadata 614b28d networkmanager_svn.bb: Fix recipe metadata 9bd229b libproxy_0.2.3.bb: Fix recipe metadata 128a2f7 kexec-tools: Upgraded to version 2.0.1 15c9e54 preferred-xorg-versions: update versions after latest recipe bumps 819a34a Distro Tracking: add distro tracking field for recipes of Graphics libs 82597d3 librsvg: fix metadata 322b26a liberation-fonts: fix metadata ee97395 xorg-minimal-fonts: fix metadata 2836e04 font-alias: fix metadata e028878 freetype: upgrade to the latest version 2.3.12 efdb82b fontconfig and fontconfig-native: upgrade to the latest version 2.8.0 95bc479 util-macros: upgrade to the latest version 1.10.0 d6615c2 xkeyboard-config: upgrade to the latest version 1.9 d1b1378 libpciaccess: upgrade to the latest version 0.11.0 f76cd26 rpm: fix metadata 5d1a64a shared-mime-info: fix metadata c3a2031 tzdata: fix metadata 788ffb7 vte: fix metadata f0c6692 strace: fix metadata ffa0f79 unzip: fix metadata 471892e pcmciautils: fix metadata dfe9854 js: fix metadata 715e033 libusb-compat: fix metadata d65c827 avahi: fix metadata 4e71fc7 hal-info: fix metadata 06ecb32 hal: fix metadata 5061f7b nfs-utils: fix metadata 912f5b1 rsync: fix metadata 4d16090 file: fix metadata 64e5dd1 findutils: fix metadata 2cfe0ca genext2fs: fix metadata bbd41f4 less: fix metadata 47cc37d pkgconfig: fix metadata 1478977 gconf-dbus: fix metadata 9bb0fa9 libpthread-stubs: fix metadata b649f5c startup-notification: fix metadata 54f41e2 popt: fix metadata bd6b465 libnss-mdns: fix metadata 0f321c8 distro-track: update track info of base packages 9f2b765 distro-tracking: add overrides for previous packages bac29db libidn: fix metadata adcfc07 libpng: fix metadata dd0760a gperf: fix metadata a234ac0 apmd: fix metadata b1c7410 base-passwd: fix metadata, indention and patch parameters 5d4ab79 base-files: fix indention 22e877d libgpg-error: fix SRC_URI indention 46140e8 module-init-tools: fix SRC_URI indention c19e4d2 dbus: fix SRC_URI indention 31180a5 glib-2.0: upgrade to 2.24.1 6b81c6d sudo: upgrade to 1.7.2p7 14df571 bitbake: Fix handling of empty variables in local config files 04b2a78 Add a warning if a BBFILE_PATTERN doesn't match any bb files ecbd5ca 3.0 prep ef1de9e Apply some 2to3 refactorings 20dc452 Drop a couple usages of readlines b9f8af1 Until the interactive mode is fixed, kill it from the valid options, to avoid confusion aa538a4 Fix syntax error in shell.py fe9172e Add missing 'return False' to the SystemExit handler in runAsyncCommand 526837e Move serverConnection.terminate() back into the finally 2f0a485 Limit the traceback length in the default exception handler 56f083a Switch from our own 'dummywrite' class to StringIO 6be4fa5 Switch a fatal usage to SystemExit ("T" not set) ce42c24 Resurrect the excepthook, this time just sending the info with bb.fatal 6c33866 remove return in finally statement 39f6ec5 cooker: Kill __getitem__ usage on exception objects (python 3 prep) ef835bf Handle SystemExit and KeyboardInterrupt sanely when executing a command 562fd5f Drop unnecessarly duplicated messages wrt FuncFailed 6092312 knotty: use the future division to prep for 3.x 8a9a474 Kill the unnecessary setVarFlag debugging message dabe4a3 knotty: stop freaking out and dying when bb.build has removed the empty logfile e886ec2 Use bb.utils.mkdirhier in bb.cache to shut up the pending deprecation warning 8f9bdd6 Use PendingDeprecationWarning for functions moved from bb to bb.utils 0c5b5b2 Start ditching fatal() calls in favor of raising appropriate exceptions 77a6052 Drop the non-debug traceback suppressor, at this point I think it does more harm than good 40d7de8 Change wget fetcher to use the runfetchcmd 88a2576 Show a traceback when a task fails due to an exception c63278b parser: fix harmless typo in variable name 3beecc6 Fix the silent exit when the specified task doesn't exist 7e53a3b Move the output of no provider and multiple provider messages into the UI 75d4984 Reorganize the main exception handling so an attribute exception raised in the ui isn't misinterpreted 1b6af27 Make knotty ignore the NoProvider event 4fac507 Don't tell the user we're sending SIGINT to the remaining 0 tasks 186f857 cooker: use time.strftime() instead of spawing sh with date 0405011 Adjust the exception handling based on Cliff Brake's patch 6ab1dbb Fix a couple typos in the CVS Fetcher section. 16553b8 cache: do not chdir unnecessarily 726802b persist_data: cache connection and use cursor 30216c6 cache: use a set() for __depends cf79cf1 cache: use max() to determine newest_mtime 81d13cb cache: use os.path ops instead of stat 9d32ff0 Make the file not found error actually useable. 85ca18f fetch: commentary typo fix in fetcher_init() 6c37c32 cache: fix typo in error message of cacheValidUpdate() a7ad7cf fetch: documentation typo fix f7e6c5a fetch: Check for existence of tar file along with md5 signature 50006b4 Revert "In expand, drop the unnecessary second regular expression match" d217bed Don't emit vars starting with __, as those are internal d00b54b In expand, drop the unnecessary second regular expression match e07a5b1 Simplify _findVar a bit 66d66cb Fix major bug that slipped in when moving update_data 4802a9d Move a var definition in cooker.parse_next 8bc7ebb Enhance the expansion exception message 1e7a03c For ${@}, run str() on the result 15248f3 Allow emission of non-string objects in emit_var, instead running str() on it first 9d3f301 emit_env: clean up, iterate once 6f52061 Fix the debug level check in print_exception c3eae29 Don't try to expand non-string values 214d1f7 Move the python version check into the python package 231d3a5 Drop an unnecessary second python version check and use the less ugly sys.version_info bdbeaf4 Bump version to 1.11.0 5186405 Move the python version check before the module imports, in case the modules utilize the newer python features c04cee7 Search up the directory tree for bblayers.conf 3238125 Add a hack to avoid the req that all vars using LAYERDIR be immediately expanded dc39ebe Move the unset BBPATH sanity check after the bblayers processing 22a2179 Kill unnecessary usages of the types module 1180bab Apply some 2to3 transforms that don't cause issues in 2.6 5b216c8 Add __contains__ to COWDictMeta d5927a7 Drop unused bb.data.expandData function ba6df17 Ignore deprecation warnings for now bcd9c57 Switch some references to moved functions c770c62 Add a missing import of print_function ad543e2 Apply the 2to3 print function transform 978b5c9 Deprecate the usage of certain objects via certain modules cbc8140 Exception handling fixups cf58d41 Add some missing docstrings 0b4ad70 Drop __all__ usage 266f416 Drop some unused functions bbc565e Drop some unused classes 51f5346 Drop some unused vars 1c74fd7 Import fixups 7acc132 Formatting cleanups bbf83fd Drop doctest, as we aren't utilizing it 8306ba5 Don't run metadata event handlers for bb.msg events 6623d79 Stop using functions via 'bb' that were moved from there to other modules 1569c1a Add a function to get the debug level, without poking into debug_levels manually c8498f5 Fix invalid logging domain warning 316ab4b Bump minimum python version check to 2.6. 350c312 Make the default domain a proper domain, not a string 943ece8 Implement bb.msg.domain as a named tuple, drop the Enum class 9f2d7d8 Fix an error in the ncurses UI a91d123 Display python warnings via bb.msg 146046b Immediately display messages if no UI handlers are installed yet 21a9692 Use __import__ for the ui rather than exec 8c5108f Fix the task event handling in the ncurses UI 87f62d7 Ensure we always utilize the correct messaging domains ac170b0 bb.event: NotHandled and Handled are on the way out 0d25a51 Rename the finalise method for consistency c9c230b Move update_data into the DataSmart class as a finalize() method 00e3915 Initialize pkgs_to_build in the BBConfiguration constructor a21841f Drop doctest, as we aren't utilizing it ca9a956 Made '-b' work with BBCLASSEXTEND a7f05ea Resurrect the old bb.vercmp as bb.utils.vercmp, and its deps 2cd1611 Pass the config metadata into the Cache constructor rather than the cooker c926e87 Resurrect merged anonfunc execution 3995546 Add & utilize a simple_exec utility function 94b60d1 Consolidate the exec/eval bits, switch anonfunc to better_exec, etc eb16773 Pass an empty locals dict in expansion, since list comprehensions apparently leak their '_' helper variable d8c8612 Two minor changes to the way python snippet expansion happens f8a8ec5 linux-libc-headers: upgrade from 2.6.33 to 2.6.34 4d5ad73 dbus: fix metadata 63ca907 libgpg-error: fix metadata c927c50 module-init-tools: fix metadata 610f560 distro_tracking: Adding tracking fields for upgraded packages 2b533d0 libmusicbrainz: Upgraded to 3.0.2 b82851a neon: Upgraded to 0.29.3 057d630 ppp: Upgraded to version 2.4.5 4cf7528 distro-tracking: update tracking fields for previous recipes after fixing metadata 61326bf matchbox-wm: Fix the meta data 680f615 matchbox-stroke: Fix the metadata ea1f53d matchbox-panel-2: Fix the metadata b2a2e19 matchbox-keyboard: Fix the metadata 0768dff matchbox-config-gtk: Fix the metadata ab6fd57 libxslt: Fix the metadata 437fb07 libsoup-2.4: Fix the metadata c2ba02c libglade: Fix the metadata 6db5edd libfakekey: Fix the metadata c9e0659 jpeg: Fix the metadata 00844cd hicolor-icon-theme: Fix the metadata 8a48d66 gtk-sato-engine: Fix the metadata bc41e65 gnome-keyring: Fix the metadata 60bb010 eds-dbus: Fix the metadata ad0f645 webkit-gtk: Fix the metadata 8a2b4e2 gnome-common: Fix the metadata 5f1f17f gtk+: Fix the metadata d29f2cc pcmanfm: Fix the metadata 17b2ce5 distro_tracking: update latest release for prelink 061df5a meta-toolchain: Improve layout 4e0ee64 image.bbclass: Don't perform mapping renaming until we're running the task itself. e0a1238 siteinfo.bbclass: remove duplicated 'common' appendent e96dc90 populate-volatile.sh: add "clearcache" cmdline option 968d00d package_deb.bbclass: Fix packaging functions to use versioned dependency package functions correctly 8a02043 bitbake: providers.py: Fix typo 3abe7a0 classes/package_ipk|_deb|_rpm.bbclass: Fix setting of OVERRIDES when packaging 934bb71 preferred-xorg-versions: update versions after latest recipe bumps fc663f9 poky.conf: define PREFERRED_PROVIDER_opkg-nativesdk to silence a warning d92a3c0 libpcap: Upgraded to version 1.1.1 64b82f8 bison: upgrade from 2.3 to 2.4.2 8738175 elfutils: add a patch to fix latest prelink build 7e01b2f nasm: upgrade from 0.98.38 to 2.07 ea7fbed tcl: upgraded from 8.4.19 to 8.5.8 31c0e3d quilt: upgrade from 0.47 to 0.48 3881d4c oprofile: upgrade from 0.9.4 to 0.9.6 d590333 lttng-viewer: upgrade from 0.8.83 to 0.8.84 38bf4fc lttng-control: upgrade from 0.67 to 0.87 c2289c5 lsof: upgrade from 4.78 to 4.83 03837af intltool: upgrade from 0.40.5 to 0.40.6 5cfe04d gnu-config: upgrade from 20050701 to 20080123 d74cf86 flex: upgrade from 2.5.31 to 2.5.35 f2f0e69 diffstat: upgrade from 1.39 to 1.47 2422400 distro-tracking: add tracking fields for previous recipes 391e6d6 dbus-glib: fix metadata 81a16e5 expat: fix metadata e957ffe gpgme: fix metadata 2136f75 fakeroot: fix metadata 0093d52 pam: fix metadata 2bed076 busybox: fix metadata ed252e7 Distro Tracking: add distro tracking field for Graphics Apps 6aa746c encodings: Specify encodingsdir as the default was being detected incorrectly resulting in an empty package 9f3e0c1 distro-tracking: update tracking fields for previous upgraded recipes bb860ee speex: Upgraded to version 1.2rc1 a5b6355 distro_tracking_fields: add meta data for graphic core and app 372f7f1 Distro Tracking: add distro tracking field for recipes of Graphics libs dbfc18f libxmu: upgrade to the latest version 1.0.5 b51a4a6 xtrans: upgrade to the latest version 1.2.5 c648850 pixman: upgrade to the latest version 0.18.2 f04f7f8 libxkbfile: upgrade to the latest version 1.0.6 c4f3c3e libxft: upgrade to the latest version 2.1.14 e114928 libxfixes: upgrade to the latest version 4.0.4 84664ef libxext: upgrade to the latest version 1.1.2 903097f libxdmcp: upgrade to the latest version 1.0.3 a683a28 libxdamage: upgrade to the latest version 1.1.2 3536e99 libxcursor: upgrade to the latest version 1.1.10 743d7e1 libxxf86vm: upgrade to the latest version 1.1.0 9a77ba2 libxxf86misc: upgrade to the latest version 1.0.2 68e66b8 libxvmc: upgrade to the latest version 1.0.5 ba45b06 libxv: upgrade to the latest version 1.0.5 e3d0810 libxt: upgrade to the latest version 1.0.8 7383d31 libxres: upgrade to the latest version 1.0.4 11f2a12 libxrender: upgrade to the latest version 0.9.5 6704e49 libxrandr: upgrade to the latest version 1.3.0 e125dd0 libxcomposite: upgrade to the latest version 0.4.1 aa7c195 libxcb: upgrade to the latest version 1.6 c858c1f libxcalibrate: upgrade to the latest version 209d83af61ed38a002c8096377deac292b3e396c f902292 libxau: upgrade to the latest version 1.0.5 5c2e6fa libsm: upgrade to the latest version 1.1.1 0012b7c libice: upgrade to the latest version 1.0.6 fa9c8a0 libxfont: upgrade to the latest version 1.4.1 3cbc9de libfontenc: upgrade to the latest version 1.0.5 50dbbec xproto: upgrade to the latest version 7.0.17 6f5ebf1 xf86vidmodeproto: upgrade to the latest version 2.3 76a6828 xextproto: upgrade to the latest version 7.1.1 fa23bdf xcb-proto: upgrade to the latest version 1.6 b007125 dri2proto: upgrade to the latest version 2.3 d480304 distro-tracking: update tracking fields for previous upgraded recipes 17a0eba netbase: fix metadata 4057e1a insane.bbclass: allow reporting all md5 mismatch warnings 3b78d2e distro-track: upgrade base_{utils,libs}_2 47c3dd4 curl: upgrade to version 7.21.0 c4713d0 openssl: upgrade to version 0.9.8o 7ec15f4 lzo: upgrade to version 2.03 d6b8b66 libgcrypt: upgrade to version 1.4.5 e1cac2f sysfsutils: upgrade to version 2.1.0 10cce8e sysvinit: upgrade to version 2.88dsf 60255c8 syslinux: upgrade to versin 3.86 e7bcb12 bash: upgrade to version 4.1 6d275f7 readline: update to version 6.1 90747bc libxml2: upgrade to version 2.7.7 afe4dec zlib: upgrade to version 1.2.5 8617183 distro_tracking_fileds: Update metadata 12c692d xvideo-tests_svn.bb: Fix recipe metadata 2478c71 xvideo-tests: Change the version to 270 5304abe gaku_svn.bb: Fix recipe metadata 2848e5e gaku: Upgraded to version 399 546926a tremor_20100422.bb: Fix recipe metadata 0bcc994 tremor: Upgraded to version 20100422 6daa344 alsa-lib_1.0.23: Fix recipe metadata f7ae2c8 alsa-lib: Upgraded to version 1.0.23 258974c alsa-utils_1.0.23.bb: Fix recipe metadata 7f1d42b alsa-utils: Upgraded to version 1.0.23 74221a4 bluez4_4.66.bb: Fix recipe metadata a5af9cf bluez4: Upgraded to version 4.66 342c016 gst-plugins.inc: Fix recipe metadata 384be68 gst-plugins-bad_0.10.19.bb: Fix recipe metadata fcb88ea gst-plugins-bad: Upgraded to version 0.10.19 d7d147b gst-plugins-ugly_0.10.15.bb: Fix recipe metadata 3bd948b gst-plugins-ugly: Upgraded to version 0.10.15 833366f gst-plugins-good_0.10.23.bb: Fix recipe metadata b5077b1 gst-plugins-good: Upgraded to version 0.10.23 eb3cff6 gst-plugins-base_0.10.29.bb: Fix recipe metadata 3308780 gst-plugins-base: Upgraded to version 0.10.29 037cc59 gstreamer_0.10.29.bb: Fix recipe metadata 2c2b1e5 gstreamer: Upgraded to version 0.10.29 52f5ad8 mpeg2dec_0.4.1.bb: Fix recipe metadata 6b58719 mpeg2dec: Upgraded to version 0.4.1 1407c7d libogg_1.2.0.bb: Fix recipe metadata 408008a libogg: Upgraded to version 1.2.0 9f3641c libvorbis_1.3.1.bb: Fix recipe metadata 0411d67 libvorbis: Upgraded to version 1.3.1 6dc309f flac_1.2.1.bb: Fix recipe metadata eda72fb flac: Upgraded to version 1.2.1 923f141 lame_3.98.4.bb: Fix recipe metadata b639d30 lame: Upgraded to 3.98.4 71ba0a8 irda-utils_0.9.18.bb: Fix recipe metadata a1fb73e irda-utils: upgraded to version 0.9.18 01c5b29 atk: Update to 1.30.0 9815595 leafpad: Update to 0.8.17 db44420 libcroco: Update to 0.6.2 c25e992 dates: update to 0.4.11 75bd3e6 contacts: Update to 0.12 from git fd32855 tasks: update to 0.16 53556dd screenshot: Update to svn_r292 99d883f classes/package_ipk|_deb.bbclass: Make sure versions correctly make it into output packages 9a543b7 bitbake: Add bb.utils.join_deps to handle creation of dependency strings with versions b180d7f iproute: upgrade to 2.6.34 7510eb1 xcursor-transparent-theme: Fix meta data 3dc7be6 tslib: Fix meta data 779c58d sato-icon-theme: Fix meta data 15da3d0 matchbox-theme-sata: Fix meta data 58d1a6e matchbox-terminal: Fix meta data 0b4a869 matchbox-session-sato: Fix meta data 43cec00 matchbox-session: Fix meta data 4bf6605 matchbox-desktop-sato: Fix meta data 1f8a50f matchbox-desktop: Fix meta data eb25db6 libowl-av: Fix meta data 486d52c libowl: Fix meta data 3f7790d libmatchbox: Fix meta data 4f95e0b gnome-mime-data: Fix meta data 1633f68 xrestop: Fix meta data 2038319 xtscal: Fix meta data 8ff65f3 owl-video: Fix meta data 53afb95 distro-tracking: update tracking fields for previous upgraded recipes 15bb705 libdaemon: upgrade to 0.14 14767a3 blktool: upgrade to 4-6 3627ee3 pax-utils: upgrade to 0.2.1 f91911a xwininfo: upgrade to latest version 1.0.5 b20f725 xset: upgrade to latest 1.1.0 7189a0f xprop: upgrade to latest version 1.1.0 6abf79d xmodmap: upgrade to latest version 1.0.4 d0fcdab xkbcomp: upgrade to latest version 1.1.1 10f2beb xinit: upgrade to latest version 1.2.1 876c8df xhost: upgrade to latest version 1.0.3 1572a23 xdpyinfo: upgrade to latest version 1.1.0 ec68b8a xauth: upgrade to latest version 1.0.4 dccc9dd xorg-app-common.inc: add BUGTRACKER 34ba2c6 libxfontcache: upgrade to latest version 1.0.5 5e21620 libdrm: upgrade to latest version 2.4.21 663fddc libdrm: meta data update 2987e50 distro_tracking_field: add distro tracking field for graphic core and app receips 74c5ebf Distro Tracking: add distro tracking field for recipes of Graphics libs 5b74118 font-util: fix LICENSE to "BSD & MIT-style & Unicode" 6ca31b0 xorg-xserver: move older xserver's to meta-extras b6fcd71 linux: move some older kernels to meta-extras 5dab2c9 Move some machines which no longer build to meta-extras 6418d04 bitbake: create cooker object after cleaning the environment f9d7e9e bitbake: Move the logger initialization from cooker to utils 132122e busybox: fix unexpected "done" in /etc/udhcpc.d/50default script. 0f806df qemux86/xorg.conf: no DefaultDepth for VMware SVGA driver 9207cd4 qemu: fix VMware VGA depth calculation error bb3e4dd gcc: Add patch to allow disabling of libstdc++ linkage and hence fix gcc-runtime which was having broken configure tests due to the linker failures and assuming maths primitives were not in libm 43f0d63 bitbake: allow fakeroot functionality to be provided by an alternative program 4f14e0a pkgconfig: add patch to disable legacy scripts such as glib-config c27b951 handbook: PR should always be set, even if to 0 b8e1640 cross-canadian: ensure package dependencies are generated correctly 0d62b8d handbook: update the required dependencies list 824895f qemu: Enable ppc system emulation and fix ppc build 01e54ff gdb-cross-canadian: build with the host-triplet prefix 698dab0 kernel.bbclass: Remove additional binaries from staging c9e77c1 qemu: fix sloppy merge 8ce8508 qemu: Work around the crash seen on Ubuntu. a1d913a linux-omap: fix build failure with gcc-4.3.3 3ceb999 binutils: add newer versions for crosssdk and cross-canadian 3939b9c linux-libc-headers: delete include/scsi/scsi.h, it's not for userspace d2920a0 Distro Tracking: move to private directory and split into sections 181455c base-files: fix LICENSE from 'GPL' to 'GPLv2' 2233d2e opkg-config-base: add LICENSE as 'MIT' 14bb154 network-suspend-scripts: fix LICENSE from 'GPL' to 'GPLv2' 86568bc initscripts: fix LICENSE from 'GPL' to 'GPLv2' bb1c803 initramfs-live-install: add LICENSE as 'MIT' 2e82436 initramfs-live-boot: add LICENSE as 'MIT' f4ceddf initramfs-boot: add LICENSE as 'MIT' 4c9946b e2fsprogs: fix sub-pacakge license fields 8decbce icu: fix metadata 0ff5ca8 portmap: use NO_TCP_WRAPPER instead of local patch db74847 update-rc.d: fix metadate 1e04b2d update-modules: fix metadata eb5ed41 yum: fix metadata d0ebebd grub: fix metadata 6c6ae8d libnl: fix metadata dac5590 libusb: fix metadata 3d4e130 xf86-input-vmmouse: add license checksum 4bf8a29 xf86-input-mouse: add license checksum c848d6d xf86-input-keyboard: add new license checksum e66624a mkfontscale: add license checksum 3f12612 mkfontdir: add license check b57e551 x11-common: change license from GPL to GPLv2 50b99d9 libxxf86dga: add license checksum f419cbb evieext: add description and license checksum 630fd09 bigreqsproto: add description and license checksum 81f5a41 task-poky-x11-sato: fix metadata 139b4f2 task-poky-apps-x11-pimlico: fix metadata b9c5f24 gst-meta-base: fix metadata 5c21558 task-poky-tools: fix metadata 0db46a3 task-poky-nfs: fix metadata b82e9a3 task-poky-boot: fix metadata 6aa2818 task-base: fix metadata 3e83969 bluez-dtl1-workaround: fix metadata 239cf34 wireless-tools: fix metadata 7c45018 xineramaproto: fix metadata 7704eab xf86rushproto: fix metadata f8f89f2 xf86miscproto: fix metadata 731c4a7 xf86driproto: fix metadata 37d1122 xf86dgaproto: fix metadata 30bbb59 xf86bigfontproto: fix metadata 23a4a96 xcmiscproto: fix metadata 1173f6b videoproto: fix metadata 2f340b0 trapproto: fix metadata 12903e4 scrnsaverproto: fix metadata 0815a69 resourceproto: fix metadata ab12524 renderproto: fix metadata 94a9669 recordproto: fix metadata 65a8a57 randrproto: fix metadata d1564ab printproto: fix metadata 6ae9b35 libxtst: fix metadata 0fae559 libxp: fix metadata f5e0b36 libxinerama: fix metadata 1a1d6e6 libxi: fix metadata 8fe708e libdmx: fix metadata e4c3b7e kbproto: fix metadata f02f19d inputproto: fix metadata 2b8d375 glproto: fix metadata e7e5947 fontsproto: fix metadata 47da7e7 fontcacheproto: fix metadata 45df656 fixesproto: fix metadata aee6d6d dmxproto: fix metadata 03f5289 damageproto: fix metadata dc98b21 compositeproto: fix metadata 7132e90 calibrateproto: fix metadata 52e12bd xorg-proto-common.inc: fix metadata f0c12ae module-init-tools: fix metadata 6f80a52 psplash: fix metadata 54bf2b7 polkit: fix metadata 2fab4c6 eggdbus_0.6.bb: fix metadata ed1d07d font-util: fix metadata 5ada684 encodings: fix metadata f3bc4cb xorg-font-common.inc: fix metadata 31bc90f settings-daemon: fix metadata f879d7d libxsettings-client: fix metadata and add MIT-style-license cea3fe7 binutils: remove older versions 30e98b4 linux-libc-headers: Remove ioctls for deleted driver c87bf0c qemu: Fix linking of the native package on Fedora 13 5101076 handbook: Fix stylesheet c350927 sanity.bbclass: Fix test for i686 SDKMACHINE 5735f03 handbook: Fix typo in last commit 45a26b9 handbook: fix extraction command 85982ab handbook: fix version reference c3e0980 handbook: Fix references to the stable release 71d24f5 Merge branch 'distro/master' of ssh://git.pokylinux.org/poky-contrib d906219 handbook: Fix generation of HTML handbook da81394 Update version after Green release c7f6eab packaged-staging.bbclass: fix typo in scan_cmd 836bddc xserver-kdrive: Disable dolt to fix build failures ee13bb0 linux-moblin-2.6.33.2: Enable trackpads for netbooks 11d8097 site/powerpc: Add popt site options 2e62c64 gnome-keyring: Add missing DEPENDS on gconf d6bda45 qemuppc: Add ppc603e to PACKAGE_EXTRA_ARCHS, fixing image builds b5fc6ab poky.bbclass: Add second fall-back sources mirror 155770a task-poky-tools: Disable kexec for powerpc 482b3ef gypsy: Fix broken SRC_URI c32daf4 icu-native: LD_LIBRARY_PATH is required fc2e5e0 Fix my own type of BPV -> BPN fd49240 Add an entry for ${BPN} in the handbook 10a23e8 Fixed bzip SRC_URI with ${BPN} c18e886 Revert LICENSE fields for binutils recipe files b43fd54 scripts/create_pull_request fix a typo 1d64687 update create_pull_request for distro/master 046ed7e update distro tracking fields for libtool recipe 177a696 Add distro tracking fields for gnu-config recipe 04b3026 gnu-config recipe: fix SECTION field 31e522c Add distro tracking fields for more recipes 9a50a58 Add distro tracking fields for more recipes 172944c Add distro tracking fields for some recipes a40c5e7 Fix metadata for libmad 6f4ef9d Fix metadata for libid3tag ecfeed0 Fix metadata for liba52 e3e37fd Fix metadata for libical 1d8873d Fix metadata for hostap-utils c655e04 Fix metadata for lrzsz ab26892 Add distro tracking for previous metadata fixes f2cab62 fix metadata for portmap 68de40a fix metadata for bzip2 42881b8 fix metadata for python-pycurl 5c92b10 fix metadata for pth e24d833 fix metadata for gdbm db28428 fix metadata for time 94a06ed add distro tracking fields for more recipes df11273 lttng-viewer_0.8.83.bb: Fix SRC_URI f8acca9 Add distro tracking fields for more recipes 3d5e9f0 flex.inc : update HOMEPAGE metadata field 2dcd861 make 2.20.1 as new default version for binutils 7c9ec39 binutils: upgrade to version 2.20.1 75ea847 distro_tracking_fields.inc: new file for tracking 3421414 Add distro overrides for previous metadata fixes cf01e50 Fix metadata for e2fsprogs 50d8843 Fix metadata for dbus-wait 57c7dda js: Fix mips build and other architecture inconsistency ea45876 icu: Fix LD_LIBRARY_PATH corruption causing build failures beef002 lib/oe/patch.py: Fix patch application failure interaction handling 453ee8d poky-env-internal: fix a typo d92a12f poky-evn-internal: Add some documentation about the config file and commonly used build targets b5a3709 opkg: ensure the data directory is created eb3c93f rootfs_ipk.bbclass: ensure the package manager can create lock files 12a9dea qemu-nativesdk: Make sure the compiler prefix is set fixing cross sdk builds 6a7549f packaged-staging.bbclass: Use a differnet opkg.conf for each TARGET_ARCH 8273262 qemu-helper-nativesdk: Fix after file:// url handling changes 07b4e14 m4: Set further site entries 80878da LICENSE: Clarify the license recipe source code is under 24ace6b linux-2.6.33.2: Ensure enable QEMU network drivers for qemux86 2e0e24e scripts: Fix setting up links to cc and gcc in runqemu 61a7301 kernel.bbclass: Drop code which is duplicated later in the function, fixing older kernel builds f38160b bootcdx86: This is dropped in favour of netbook iso images 9b60f0d poky-image-sato-cd: This has been replaced by the -live image 8eea156 xserver-kdrive-xomap: Bandaid for configure issues and modern autotools 3ff7892 gcc-4.3.3: Drop unused patches c2569a7 udev: bump PR after cache fixes 1c803f3 Fix the boot process udev warning efc47a8 pciutils: Stop build breakage if HOST is set in the environment 26a6079 curl: Fix configure issue on mips 99954da linux: bump PR of linux-2.6.3243.2 after the fix for RTC 52de674 busybox: bump the PR after the syslog fix aa91353 Fix the syslog starting failure 2e54470 Fix the issue of /dev/misc/rtc missing from hwclock.sh 6f28a05 m4: Drop broken custom do_configure which stops site cache taking effect (amongst other issues) and drop duplicate PR setting 247da03 site/common-glibc: Add entries for m4 fa64e20 linux-moblin: Drop old versions (2.6.31.5 and 2.6.29.1) 3a8ee58 gcc: Drop 4.2.3 as its unused 47e5d86 metadata_scm.bbclass: Make errors quiet if we're not in a git based scm f47eedd gcc-runtime: Various bug fixes d579b7c gcc-configure-sdk.inc: local-prefix should be in SDKPATH, not a build patch e77506b gcc-configure-cross.inc: local-prefix should be the target exec_prefix a06a85a cross/cross-canadian.bbclass: Save target_exec_prefix variable fcd220b handbook: document the LAYERDIR variable 49df0b8 .gitignore: Ignore the built bsp-guide 79f330c handbook: point out required Python version 3a6948a handbook: add documentation for layers 6a9312c sanity.bbclass: Check for Python 2.6 or newer 8f34dcf handbook: Use new style patch application syntax 40b0d41 task-poky-standalone-sdk-target: Add libgcc-dev and libstdc++-dev to allow compiling in meta-toolchain to work f8c0b93 gcc-cross: Fix install path typo. 1a53b52 linux-moblin: Fix defconfig-netbook 2f7b3e3 gcc-runtime: Make sure multiple target builds work correctly 6118da2 syslinux: Fix native install to use the correct paths 2160ddd base.bbclass: Fix after bb.decodeurl was fixed c4a0b54 sanity.bbclass: version each of the files in the build/conf/ directory cab1009 Fixes for Qemu to use VGA and Touch Screen bf59d21 qemu: Update to 0.12.4 fc81ca7 insane.bbclass: Throw better error if path is bad c3682bf bitbake decodeurl: fix the file:// url handling 807e983 e2fsprogs: Remove all mention of anything associated with uuids 42e7e4f wpa-supplicant: Don't run populate-volatile.sh on the build system 8f367b6 packaged-staging: Add the correct architectures to the opkg conf 1ccbc15 handbook: use XML catalogues to make building work on all(?) distros f5d0471 busybox: Fix redirection of fd 0 in ash interactive fe4e6fc module-init-tools: Don't cross-build static binaries 3161c9b utility-tasks.bbclass: automatic upstream version check 50224b5 libtool-cross: Allow the compile to run else we can generate invalid (unpatched) libtool files 9d9b64a bitbake.conf: Remove util-linux from ASSUME_PROVIDED 17f3c54 util-linux: bump to 2.17 based on OE recipe c4476f7 e2fsprogs: add util-linux to depends 7ada79d sanity.bbclass: check for invalid characters in OEROOT 9ea69b1 utility-tasks: Remove unneeded addtask parameter 6b82b70 Handbook: Documentation for DISTRO_PN_ALIAS 682983b xset: Defining DISTRO_PN_ALIAS for distro_check 2ccd2e6 Handbook: Documentation for LIC_FILES_CHKSUM 5ae3f65 do_distro_check: Recipe exists in other distros? 8514bcf iproute2: fix an issues with DATETIME 2ddc6c4 bitbake.conf: add the LOG_DIR variable 648290d libtool: Make sure ltmain.sh is always regenerated. We can't just remove it since it has to be present to run configure 420b1d8 initscripts: Tweak checkroot to work with recent versions of busybox 5b1c702 e2fsprogs: Upgrade 1.41.5 -> 1.45.12 fe37d67 gcc-configure-runtime: Make sure the sysroot is configured 7dcf1e4 sanity.bbclass: Check for SDKMACHINE=i686 and error if found 7f01812 dropbear: don't apply no-password patch e2598fe busybox: disable mdev, we use udev 09536a7 patch.bbclass: Merge patch enhancements from OE by Chris Larson 1f26469 pm-utils: Upgrade to 1.3.0 and fix SRC_URI not to point at SCM generated tarballs 3cbbd0b eds-dbus: Disable parallel make 2700a62 qemu: add some extra ldflags to make it link succesfully 138df21 Drop vm_mmap_min_addr checks from scripts and sanity class 32a85c1 qemu: reduce duplication, use an inc file and share common patches 3d6e7e7 qemu: Update the static recipe to 0.12.0 4de4707 qemu: updated the glflags patch, which is needed by qemusdk. 1de1ac2 lib/oe/patch.py: Fix datastore references in error paths d630317 handbook: Add alpha verison of a BSP specification a49e605 qemu: Updated to 0.12.0 eb69ecd poky-default.inc: Bump linux-libc-headers to 2.6.33 f24f836 strace: bump from 4.15.18 to 4.15.20 615a98e busybox: bump to 1.15.3 from OE cd62d69 relocatable.bbclass: reduce the amount of output 9210ae6 poky-default.inc: roll-back preferred linux-libc-headers to 2.6.30 9f23e3e Update directdisk images to use common inc files 6bf1f8c kernel.bbclass: Simplify the current external module code 78988bb eggdbus: Disable PARALLEL_MAKE 4bcf9c7 xserver-kdrive-glamo: Fix broken SRC_URI ae9174e kernel.bbclass: Stop staging binaries within scripts/ 5bec733 kernel.bbclass: tidy up staging of headers d887296 linux-libc-headers: add 2.6.33 headers 2c3437d kernel-arch.bbclass: merge improved arch detection from OE.dev 769cf0b kernel.bbclass: Package Kernel firmware 3da120a linux-kernel-base.bbclass: merge version detection updates from upstream e30c5a2 kernel.bbclass: match x86 header installation to other architectures 7a4f1ad linux: Bump to 2.6.33.2 5e8c7c5 linux-moblin: add 2.6.33.2 kernel from MeeGo 1.0 5e07bc9 kernel.bbclass: fix installing of kernels 2.6.34 and above 53d98d7 Move all QEMU machines to use a common kernel recipe set and version bad2fe6 add a new scripts create-pull-request ebed561 Add recipe for X vesa driver package c74035a Add recipe for moblin-image-netbook.directdisk b2c4aee poky-qemu-internal Add -show-cursor to qemux86 f71a4b9 handbook: Add section to Poky manual about contributions and certificate of origin a722741 Merge branch 'tk/head' of ssh://git.pokylinux.org/poky-contrib dfd1472 Merge branch 'nitin/lic1' of ssh://git.pokylinux.org/poky-contrib 505c269 linux: Ensure we have buildable kernel recipes for each machine ad136dd Revert "poky-env-internal: Disable automatic adding of meta environments to BBPATH" 5a3f17e poky-env-internal: unset variables to avoid disturbing new GIT clone 8825d4d License Checking: convert an error into warning b6c6913 mtd-utils: Fix mtd-utils-native do_install task to install binaries into the correct place rather than using hardcoded paths ba804d1 poky-env-internal: Disable automatic adding of meta environments to BBPATH 2ca1f78 License Change checking: c89362c openssl: Fix build of openssl-native on x86_64 with recent binutils 229c80a xf86-input-vmmouse: bump version to 12.6.6 cd8de7b moblin: drop moblin.conf and inherit poky for mirror configuration 3b9ac3f pax-utils: Sync with OE.dev fixing native version 28ca131 Fix build problem with GCC-4.3.3 on PowerPC e150e90 Latest versions of GCC are safe on PowerPC e7fa352 Update classes to use lib/oe ac023d7 lib/oe: Import oe lib from OE.dev 14196cb base.bbclass: Sync minor layout changes with OE.dev 89497d80 xfce.bbclass: Fix SRC_URI (from OE.dev) 753b4a3 poky-default-revisions.inc: Add linux-omap3-pm revision to ensure offline builds at least parse even if the revision is invalid 37858f5 handbook: Add new FAQs d37f265 unifdef-native: Fix staging reference in do_install (noticed from OE.dev) d0f555c unifdef-native: Fix staging reference in do_install (noticed from OE.dev) d425fac sanity.bbclass: fix typo in earlier commit 70a930f Remove meta-cross-linkage recipe, we no longer have a cross directory fbe3d41 Version the build configuration directory 69d788a Fix sanity check for new abi 19a8165 Bump the ABI to alert people that cross has gone 6458da8 Fix references to CROSS_DIR now that it has been removed 29813a4 cross.bbclass: inherit relocatable to post-process cross binaries c22ab5f Install cross-packages into the native sysroot 00c5c97 gcc: Fix packaging of cross for PPC 4d1f39a autotools: deprecate autotools_stage class 95f2dd7 poky-default.inc: set PPC preferred version for gcc-runtime 5fb1069 conf/poky-default.inc: Fix PPC preferred binutils d2c6f3e scripts/pstage-scanner: new script to sanity test the contents of pstage 23ff2e0 relocatable.bbclass: Normalise the generated path d1f413f sanity.bbclass: handle lack of permission to read /proc/sys/vm/mmap_min_addr 6763d75 polkit: fix DEPENDS, requires intltool 7f01951 Move STAGING_BINDIR_CROSS into target sysroot, instead of native e866ea6 packaged-staging.bbclass: Fix architecture field 6727d5a poky-image-sato-directdisk: directdisk variant of Sato image 4c00f55 pixman: explicitly disable Gtk+ tests 36652f5 qemu_git: Ensure we have the required dependencies for a native build d3fbb56 relocatable.bbclass: Actually skip symlinks 4f1ec31 gpgme: STAGING_DIR_HOST != STAGING_DIR/HOST_SYS and this causes subtle cross contamination between certain machines. Fix. 1ac0a1a relocatable.bbclass: ignore symlinks 10b6d14 relocatable.bbclass: Handle files which don't have read/write permissions 572f86c packaged-staging.bbclass: Remove hardcoded paths in binfiles for target packages aa19314 igep0020: Rename files for IGEP v2 boards, prepare for support Hw rev. B and rev. C c45c860 linux-igep2: update to latest stable version 2.6.28-3 eb8be45 psuedo: We don't use lib64 43b5d13 psuedo: Add missing install function b43b80c relocatable: Handle directories having subdirectories of binaries cf92949 gcc-cross-initial/gcc-cross-intermediate: Add missing EXTRA_OECONF variables 18bdffa python-pycurl: Set NATIVE_INSTALL_WORKS bcdfa2a encdev-updater: Set NATIVE_INSTALL_WORKS 369f4dc liblbxutil: Fix cross compile issues 9b6287c python-pycurl: Fix building 0f4202f gcc: Don't create links in base-libdir 715b0a8 gcc-crosssdk: Remove bogus require 50022b1 poky-moblin.inc: Set provider for virtual/TARGETcompilerlibs 2fc8da5 gcc-runtime: Add 4.2.3 version eca7e8c gcc-crosssdk: Create common include files c155b71 gcc-cross.inc: Move do_compile 70abb2e gcc-cross: Use NATIVEDEPS fb5b562 gcc: Move -native dependencies into the base gcc version configuration file and create and use EXTRA_OECONF_INITIAL and EXTRA_OECONF_INTERMEDIATE variables 5b5a069 gcc-cross-kernel: Remove unneeded requires 95fd994 gcc-runtime: Move core code to the main include file ccebaa6 gcc-cross: Simplify require statements e9522df gcc: Drop 4.1.2 as its unused cc0bd4b gcc: Drop 3.4.4/3.4.6 and gcc-native as all are now unused 4821286 gcc-csl: Drop old version 9c77464 gcc-runtime: Handle libgcc headers correctly and set c++ include patch for packages correctly c75c0d6 gcc-runtime: Fix c++ include path 0cf4a98 gcc-package-cross.inc: Only stage gcc-runtime headers for gcc-cross 847324b classes/conf: Update to handle gcc-runtime cdaf6c8 gcc-runtime: Add initial recipe 7a7c234 gcc-4.3.3: Add patch for issue PR35942 to fix libstdc++ build issues with certain host cross compile combinations fcfbc7b autotools.bbclass: Allow extraction of the configure arguments for use in strange testcases 93f357d relocatable.bbclass: we need to process library files too 1ee8863 rootfs_rpm: Explicitly add runtime dependencies to depends 34a24c2 createrepo: Fix dependencies, yum at runtime and libxml2 at build ad07d79 .gitignore: Add packaged staging directory to ignore list 5eb169b python-urlgrabber: Update to 3.9.1 with extra patches from Fedora 8114971 python-native: Fix DEPENDS by adding sqlite3 678537c pyton-pycurl: Add new recipe from OE.dev a2d5806 curl: Bump to 7.20 555f60f yum: Fix installation of python modules 9b3a51f handbook: Update links to Anjuta plugin 72af5b2 fakechroot: Fix patch application d3d36d9 bitbake/event.py: Run class eventhandlers in the task context but ensure UI handlers run in the server context 871f731 bitbake/cooker.py: Finishing the command needs to happen after the BuildCompleted event else the cooker can shutdown first fb245be cache.py: Bump the cache version after the BBVERSIONS update 881caec bb.manifest: Drop, its unused and obsolete. No point in having dead code around 19d5f2b BBFILES: use a set to remove duplicates when collecting. adbfce3 bb/command was importing bb and accessing some of its own classes indirectly as bb.command.<class> 1e2f64a Why is bb/__init__.py importing bb? 964085f data_smart: be explicit about what we make available to eval'd python code 6028dae Fix 7 references to undefined variables, as spotted by pyflakes c6940a9 bb.utils: remove old portage remnants ec3f908 bb.utils: utilize string.letters and string.digits 80a52e7a bb.which: fix broken direction/reverse argument b5f8ce0 crumbs: fix hassattr typo c244243 Implement BBVERSIONS cefeeb1 usermanual.xml: Add documentation on bblayers.conf 5060280 Expand PREMIRRORS 5d90d90 utils: improve wording of error message c328f16 bootimg.bbclass: Fix dependency name 5cda1b7 parted: Add BBCLASSEXTEND native f89cd31 bootimg/boot-directdisk.bbclass: Update afer syslinux changes, fix mbr.bin location and fix dependencies 91f093a syslinux: Convert to BBCLASSEXTEND, clean up recipe and staging function 7ccc046 scm-revisions: Always use ??= operator 6797465 meta-openmoko: Add layer configuration 00d0202 meta-moblin/layer.conf: Fix layer location 4e821de meta-extras: Add layer configuration e941ff6 poky-image-minimal-directdisk: Add directdisk image example 027c167 boot-directdisk.bbclass: Add direct disk image creation class f30bf93 bootimg.bbclass: Improve documentation 589df80 bitbake: Gross hack to fix packaged-staging with BBCLASSEXTEND packages 0449c26 packaged-staging.bbclass: Revert accidental damage 9ce6198 packaged-staging.bbclass: Fix mkdir to actually create the destination directory ae04c7f encdev-native: Convert to BBCLASSEXTEND ff5e6f4 yum: Update yum and createrepo to latest version 1a13610 .gitignore: ignore bblayers.conf d02c604 linux-nokia800_2.6.21: Remove legacy staging function e78c12d u-boot: remove legacy staging e3c4237 fakechroot: Update to 2.9 and add a patch from Debian 1d05e3a pseudo: Add recipe 006510c layer.conf: Fix filename conflict d158569 Move default SCM versions into separate meta directory specific files to improve maintainability 90040ce Switch to bblayers configuration 666c753 bitbake/cooker.py: Add support for a bblayers.conf file a4008b8 utility-tasks.bbclass: Remove unneeded base_ prefix since we don't EXPORT these functions any longer 70141cb bitbake/providers: Fix merge error 04263dc cooker: bail out early if no files to build 2f9e15a Fix issues with BBCLASSEXTEND set by anonymous python, and rename some variables to improve code clarity 57044b9 Implement ??= operator ada2a84 Avoid unnecessary calls to keys() when iterating over dictionaries. 9d9b47b knotty: tweak failure phrase a7d5f73 Fix ud.basecmd error introduced by the FETCHCMD_git commit dea828c Add initial 'repo' fetcher d8b12d4 Re-getVar BBCLASSEXTEND after finalise() 73a12b9 Error early if BBPATH is unset, rather than falling back to share/bitbake 9998b45 Kill unused projectdir in bb package. 8f83be3 Fix msg usage in the moved utility functions. f8c6db9 Move most utility functions from bb into bb.utils. b7d175a Move compat imports in the bb package to avoid circular dep issues. ac392b6 Move encodeurl, decodeurl into bb.fetch. a3012e1 Move MalformedUrl, VarExpandError into appropriate modules. 9a0da38 Add FETCHCMD parameter for git e17a0bd sanity.bbclass: Add a note about using dpkg-reconfigure 9c5386c base.bbclass: Split up as per the patch in OE.dev by Chris Larson making code more readable and modularised 185cb38 base.bbclass: Really drop siteinfo by default a30f6e9 base.bbclass: Don't inherit siteinfo in base.bbclass [based on an OE patch from Chris Larson] 8d5f122 .gitignore: Add handbook generated files to the ignore list 6cd2b26 xcmsdb: Add libxdmcp to DEPENDS d296df4 claws-mail: Fix building with new automake 34e1b3e poky-fixed-revisions: Bump twitter-glib to a buildable version 8659148 poky-fixed-revisions: Align Clutter revisions with Moblin distro 6526d31 clutter: Fix building version 0.8 98d29b8 syncevolution: Fix DEPENDS 2060121 libsynthesis: Fix DEPENDS c00070d luit: add libxdmcp to DEPENDS 380346e libxscrnsaver: bump version to 1.2.0 b7783b3 liblbxutil: Bump version and fix dependencies 62cd0ea handbook: remove OpenedHand contact information 5b5f1ba handbook: Add a section on extending images using packages b3f5e55 handbook: Publishing tweaks d280581 handbook: Add missing tag de9c12b handbook/faq: Add entry about building on NTFS c21aed8 task-poky: No longer need to exclude pcmanfm on powerpc 757fd87 pcmanfm: Allow package to build on PowerPC e844f9b zoom2.conf : switch to using the TI integration tree for kernel af1488e linux-omap-zoomsync_2.6.32.bb : add kernel from TI zoom2 integration tree 61423e1 bison: 2.0 -> 2.3 1eb0939 handbook: Correction, we're building QEMU x86 not QEMU Arm image 208f6a9 handbook: update references of stable version number ffb5db2 handbook: Clean up OpenedHand references 05324ae handbook: Various tweaks for recent fop/pdf generation 4c07b33 poky-doc-tools: Update to work with fop >= 0.95 701e5bd eds-dbus: Add parallel make fixes from Pango d59a1a1 task-poky: Disable pcmanfm on powerpc (until confirmed it works) 8ddb306 Add i686 SDK machine 382a630 bitbake fetch/__init__.py: Failing urls should raise errors, not fatal exceptions 28f7dd3 packaged-staging: tweak previous fix to accomodate possible changes to CROSS_DIR 538087d packaged-staging: Fix packagaging of cross packages 211f928 packaged-staging: Fix typo, grep not qrep ... 424375b xf86-video-omapfb: Bump revision. b8637a9 xserver-xf86-config: Do not set default depth to 16 for IGEP v2. 80f1baf xserver-xf86-lite: Fix compilation break for ARM architecture. bda8282 gcc: Fix fail to compile since they can't find limits.h include. 07207b0 liboil: 0.3.14 -> 0.3.17 bb59464 eds-dbus: Disable parallel make build problem c02ea00 tasks: Bump to version 0.15 12eed15 gdb-cross: Allow to build after recent gettext changes cb8ae04 packaged-staging: post-process non-binary files to fix paths in native packages fce742a handbook: tmp/staging was renamed to tmp/sysroots - update references 3e39dac preferred-xorg-versions: Bump versions to match available recipes 28d9065 linux-omap: Build fix 185819a poky-moblin.inc: Move to meta-moblin d9d4540 glibc: Allow 2.9 to work with binutils 2.20 (patch from OE.dev) 2bbf5ce poky/moblin: Switch to binutils 2.20 8d38280 binutils: Add 2.20 (patchset from OE.dev) 2baf8bb libpcap: Update to 1.0.0 and sync with OE.dev 75fbd88 portmap: Sync with OE.dev 32a44f4 a52dec: Clean up CFLAGS e3eb128 perl: Update to work with native binary relative path locations 7a60d37 relocatable.bbclass: Clean up indentation df76efb relocatable.bbclass: Handle symlinks correctly 814c3ef cross.bbclass: Note that relocatable binaries disabled for a reason de2138b linux: Enable linux-2.6.32 for qemux86 and qemuppc ef246b4 relocatable.bbclass: Enhancements to rpath replacement algorithm b694d3c bitbake: Revert "providers.py: sort eligible providers by DEFAULT_PREFERENCE" a88950c eggdbus: Add missing dbus-glib DEPENDS ba60f7b qmake-naitve: Fix do_install defa54d bitbake: [cache] copy instead of deepcopy in sync f037692 bitbake: [parse] In ast, make StatementGroup inherit list, and add a AstNode base class. c675bfd bitbake: [parse] Use bb.which in resolve_file 7b57ad9 bitbake: [parser] Make resolve_file only resolve the path 83ec5ea bitbake: [parser] Cache parsed .inc and .bbclass files for a parse speedup c011d42 bitbake: [parser] prepare to cache some .bbcclass and .inc files 793c88d bitbake: [parser] Remove the "data" from feeder, evaluate after parsing a file 3eb2e6c bitbake: [parse] Move vars_from_file from bb.parse.BBHandler into bb.parse. 6f52a15 bitbake: [parse] Don't use relative import of parse_py. 3f1ca0a bitbake: [parse] Move the last method to the AST... baf2395 bitbake: [parser] Move more methods to the ast scheme d84b7c5 bitbake: [parser] Move one more item to the ast a5bb5d6 bitbake: [parser] Move methodflags over to the ast 7cfe3a5 bitbake: [parser] Build fix 8eaaf66 bitbake: [parser] Move more statements over the two phase AST d2bf3f0 bitbake: [parse] Change handling include through the AstNode 8072cf0 bitbake: [parser] Call eval and remove non ast code 118161f bitbake: [parser] Call eval immeditaley to test this code a201058 bitbake: [parser] Prepare to cease out getFunc 269d4d5 bitbake: [parser] Preserve include vs. require behaviour 71a1938 bitbake: [parser] Firs set of AST nodes with construction and eval df8f770 bitbake: [parser] Add documentation about usage of this code 4320386 bitbake: [parser] Move the finalise into the ast as well 4b25b51 bitbake: [parser] Cary a Statement Node through the parsing 5bac340 bitbake: [parser] Move evaluating into the ast class... e9d8dd2 bitbake: providers.py: sort eligible providers by DEFAULT_PREFERENCE de7c939 bitbake: runqueue.py: improve printing dependent tasks e39d89e bitbake: taskdata.py: fix typo in debug message da10a2a sanity.bbclass: Add chrpath to the required utilities 7b4e80b relocatable.bbclass: Tidy up class 12325e3 chrpath: Only set the chrpath binary for the native package f1a87fa relocatable.bbclass: Improve logic and style 62c103c bitbake: utils.py: Don't error if an exported environment variable is unset (i.e. None) 6e1cc7c relocatable.bbclass: remove hard-coded rpaths from native binaries a079589 xserver-nodm-init: Make sure kdrive servers have the console keyboard enabled e49fcdc xserver-kdrive: Add keyboard fix (partially from OE.dev 6054d36 preferred-xorg-versions: Update xserver-kdrive version 216f9f0 xserver-xf86: Drop old versions and update xserver-xf86-lite version 25e0acc xserver-kdrive: Add 1.7.99.2 2146902 calibrateproto: Add missing length fields to X_Replies c33fa35 sharp-flash-header: Convert from leagacy staging 633e0ff binutils: Apply cross compiling changes to libtool since we don't autoreconf 6877acc keymaps: Use RDEPENDS_${PN} 0307f80 linux-libc-headers: extend nativesdk for 2.6.29 bc1ae94 preferred-xorg-versions.inc: bump preferred util-macros 99b4b10 bitbake: BBHandler: pass lineno and fn to handleMethod d5519d4 bitbake: parse_py/ConfHandler.py: missing colon after else 7a4579e bitbake: ConfHandler: Fix require vs. include behaviour fb918a7 bitbake: [parser] Move more stuff out the feeder b045ab3 bitbake: [parse] Move inherit handling to method 7477c0d bitbake: [parsers] Move out more functions e3c9a34 bitbake: [parser] Move more stuff out to separate methods... 169e719 bitbake: [parser] Move the handling of a method to a function 913e788 bitbake: [parse] Unify opening a file... 242a036 bitbake: [parser] Kill obtain/localpath from the parser bf6a4fd bitbake: usermanual.xml: Add section for ?= var setting. 6ae3907 distros: set xserver-xf86 as default PREFERRED_PROVIDER for virtual/xserver bf422fc qemux86: fix setting of preferred provider for virtual/xserver 62ab7da moblin-fixed-revisions: bump libdrm version 0ff3de8 preferred-xorg-versions: increase various components to match Moblin distro 2c29947 libdrm: bump version to 2.4.17 as required by mesa 7.7 391fda5 poky-default: bump preferred glibc version to 2.9 for Poky distro 8a8094a ofono: bump to 0.17 f1ee04b connman: bump to 0.48 109f750 eds-dbus: Fix DEPENDS, add gnome-keyring and use libsoup-2.4 not libsoup e8241d7 libpcap: Fix PR 6895486 libpcap: fix configure with newer autofoo and fix inherit b81b391 xorg-macros: 1.5.0 -> 1.6.0 466043e moblin-panel-myzone: Add DEPENDS on libical 6d2b2b2 libical: Add from OE.dev with cleanup e93ccce eds-dbus: Pull from git, not svn 96cdddc moblin-bleeding: Don't enable a browser for now f19bbd5 task-moblin-x11-netbook: Allow browser choice to be overridden bb1427f moblin-floating-revisions: Use mx branch for moblin-web-browser 851267d mesa-dri-git: Handle cross compiling of the glsl utils 173f02f moblin-fixed-revisions.inc: Update libsocialweb revision 52cbb07 bitbake: fix invalid method and logic ec92133 bitbake: Test premirrors and mirrors in checkstatus() b596530 bognor-regis: Add missing bickley DEPENDS e5be372 mesa-dri: Use master branch for git versions 8886fa1 xserver-xf86-dri-lite: Update git recipe for latest versions 03890f3 makedepend/xorg-cf-files: Upgrade to new point releases ce6ae67 util-macros: 1.4.1 -> 1.5.0 219b89e python.inc: Disable parallel make 3a15c0e dpkg: Make sure the -native version doesn't have strange RDEPENDS f6f1066 libjana: Use gnome git, not svn 422c5f7 tracker: 0.6.95 -> 0.7.18 4dd0575 moblin-panel-git: Update DEPENDS for libsocialweb def3967 Add libsocialweb 780d218 clutter-gst: Update revision c9fd126 bitbake: Fix try_mirrors() logic, was only trying the first mirror. 72495b5 task-moblin-standalone-sdk-target: Update clutter-gst/-gtk dependencies 32f61e5 hornsey: Update DEPENDS of recent git versions 5b3397a Tweak gettext usage 5af4d6a gmime: Add from OE.dev with tweaks 893bc3e gamin: Add from OE.dev 42d7275 tracker: Add from OE.dev fa2470c clutter-gst/clutter-gtk: Add API versions to the package names and update to the latest code 99e23d6 pango-1.22.2: Fix autoconf/automake issue with double header reference 1556e81 poky-default: Upgrade binutils to 2.19 71b1add moblin-floating-revisions: Fix missing quote afe1242 bitbake: if PREMIRRORS set test for local file in FetchData.setup_localpath b571168 bitbake: Enhance the fetchers' support for local mirrors 095347f poky.bbclass: Use pokylinux.org stashes as PREMIRRORS for vcs' 8235389 conf: remove references to SRC_TARBALL_STASH 0737552 bitbake: unify mirror support and make it independant of the fetcher 0b52537 twitter-glib: Drop merged patch and update revision d19b114 moblin-fixed-revisions: Update moblin-app-installer version ef670e0 xorg-proto: Always depend on util-macros, update gettext dependencies to be inherits 4cb5879 xorg: Bulk version upgrades 5daaa63 hornsey: Add mixxing xtst DEPENDS 28a8d15 mozilla-headless: Add missing autoconf patch hunk 4d80441 mx: Disable gesture support 4f0499f autoconf: Add missing patch 29d1df5 autoconf/automake: Switch to 2.65 and 1.11.1 fa9f399 libtool: Add missing patch 3813e33 mozilla-headless: Add patch to enable builds with recent autoconf/automake 11044cb xserver-xf86-dri: Fix for recent autoconf+automake 9d22556 kexec-tools: Fix synatx error with recent autoconf+automake 18ba0bc libatomics-ops: Fix with recent autoconf/automake 625ae51 libtool: Fix a bug where trailing slash characters could break path comparisions 80c7c52 twitter-glib: Add fix for recent autoconf/automake 99643e5 taglib: 1.5 -> 1.6.1 (and apply autoconf/automake fixes) dd5269c parted: 1.88 -> 1.9.0 (works with recent autoconf/automake) 10b89e8 m4: 1.4.12 -> 1.4.13 ca51dda libsndfile1: Add infinite recursion fix for recent autotools 5cf94e1 libtelepathy: Fix double referenced file causing autoconf/automake issues 769baa1 autoconf-2.65: Ensure autoconf sees our site cache 09ab7da autoconf-2.65: Drop unneeded patches daabf19 e2fsprogs: Fix configure quoting to work with recent autoconf/automake 89bee8a Add *~ to .gitignore bb217b6 libxslt: Fix double defintion problem which breaks recent autoconf/automake da21a63 gettext: Apply upstream fix to work with recent autoconf/automake 116e25e bzip2: Fix double defintion problem which breaks recent autoconf/automake be2a5df task-poky-tools: kexec-tools don't support mips|mipsel, so make it optional 2e84247 pcmanfm: support mips|mipsel 301744d site/mipsel-linux: add eds-dbus variables 9999f0a site/mipsel-linux: add popt variables 0c4ead0 site/mipsel-linux: add glib-2.0 variables 413f235 udev: Add DEPENDS on glib-2.0 after recent changes b604fe9 networkmanager: Fix polkit dependency dfcc15e autoconf: Don't use 2.65 yet 08f4cc9 automake: Add 1.11.1 using BBCLASSEXTEND (not default) 50d9304 autoconf: 2.63 -> 2.65 (not default) 4420ddc autoconf: 2.63 -> 2.65 (not default) 1c870f0 moblin-fixed-revisions.inc: Bump clutter-1.0 revision c6afdeb xf86-video-intel: 2.7.1 -> 2.10.0 1e4ec62 pkgconfig: Add SCM version for testing purposes (not default) 2f280c1 packagekit: Use 0.5.6 and gnome-packagekit 2.28.2 7e38b6f devicekit: Add 003 release and devicekit-power (from OE.dev with fixes/improvements) c18b2b5 policykit: Rename to polkit to match upstream and upgrade ecc9880 udev: Enable gudev e5c96dd eggdbus: Add from OE.dev with dependency fixes 058b96d mutter-moblin-git: Add missing require 50ffb99 packaged-staging: basic support for pulling staging packages from a mirror 0e4111c bitbake.conf: quieten wget fetches b2c8430 packaged-staging: Move packaged staging directory outside of DEPLOY_DIR 9ff3045 packaged-staging: fix up handling of crosssdk packages 9737011 opkg: We must always include a valid arch.conf file eb6d6f3 opkg: Fix header problem 6ca0e13 packagekit: 0.4.9 -> 0.6.0 (with fixes for opkg) db39d57 mesa: Add 7.7 f020fe5 libx11-trim: Update patch aa49e73 poky-external-eabi: Rename to poky-external-default 589a797 conf/distro/poky: Rename poky-eabi to poky-default to make more sense 3ce2be9 conf/distro/include: Drop poky-eabiX files, they no longer serve a purpose e309024 poky-eabi.inc: Massive cleanup 3697f64 poky-moblin: Set gcc version correctly db99dab gcc: Drop 4.3.1 and 4.3.2 23d8841 gcc: Make sure target_* variables are set, fixing gcc search path issues 6793dca opkg: Fix native and nativesdk configuration options fdf134a bitbake/build.py: No need for this gross hack now c6868ce libdrm: Create a common include file and att virtual/libx11 to DEPENDS 4340e3e qemu.inc: Set xserver preferred provider correctly 1980555 bitbake.conf: Add virtual/xserver to MUTLI_PROVIDER_WHITELIST 39d8c0f opkg: add openssl to DEPENDS 67fbc5c opkg: Update to latest svn and apply patch to enable readable logfiles 6391725 libdrm: 2.4.7 -> 2.4.15 91066e8 site/mips-linux: Add entry for eds-dbus fd34f26 insane.bbclass: Since we have no legacy packaging, no need to repeatedly scan staging 684d263 linux-moblin: Add 2.6.31.5 3a32c2c yum: Fix DEPENDS (no python-shlex) 5790800 yum: Fix DEPENDS (no python-bzip) b623ced bitbake.conf: Add virtual/libintl-nativesdk to MULTI_PROVIDER_WHITELIST 75f682d fakeroot: Stop setting LD_LIBRARY_PATH as it breaks things (see patch description) b9d958c bitbake: Don't import xmlrpc server unless needed aedf7d3 bin/bitbake: Add import server 7e80254 bitbake/cooker: Drop unneeded import 37f8e24 bitbake: Fix UI failure exception handling with python 2.6 5ebad0d knotty: Improve task failure message handling using the uihelper code 5c62833 runqueue.py: Use fcntl to make the worker pipes non-blocking fd42ffa bitbake/event: If the server disappears, we just exit too d7c9b7d runqueue: When a task fails, make sure the server still processes events from other workers 867b01c bitbake/__init__.py: Fix bb.plain and bb.warn function, initial patch from Petri Lehtinen <petri.lehtinen+bitbake-dev@inoi.fi> c69797d bitbake/git: remove repodir usage (from bitbake master) 573f612 bitbake/runqueue: Fix typo 22c29d8 bitbake: Switch to bitbake-dev version (bitbake master upstream) 1bfd6ed bitbake-dev: Sync with bitbake upstream d6c7a44 gcc-cross-canadian: Fix include paths and hence c++ compiler issues 3139368 bitbake.conf: Add virtual/libintl-native to MUTLI_PROVIDER_WHITELIST b65e8ec bitbake-dev: Sync again with upstream after fixes from Poky bitbake 1.8 were merged 4378860 linux-2.6.32: Add defconfig for qemuppc c94707a qemuppc: Add qemuppc machine 92df15e poky-eabi: Temporarily add non-standard PREFERRED_VERSIONS for PowerPC f97e684 u-boot-mkimage: Update 2009.08 recipe b731a08 linux-2.6.32 (for mpc8313erdb) bd37507 u-boot-mkimage-2009.08 (and BBCLASSEXTEND native nativesdk) 3d3053e Add crosssdk and cross-canadian gcc 4.2.3 recipes 306756b glibc-2.6.1: add BBCLASSEXTEND nativesdk 48007a0 linux-libc-headers-2.6.20 fixed headers_install path and extend as nativesdk 8fa52fb lzo: fix building for powerpc 0bddf1c task-poky-tools: kexec-tools doesn't work on Mips so make it optional 22a271a bitbake-dev: Sync with upstream cefe87f pcmanfm: Add COMPATIBLE_HOST line for arch's with inotify/fam fd165bb tasks/task-poky: make the file manager a conditional part of the task e77bc0b kexec-tools: Set COMPATIBLE_HOST as mips is unsupported ba66481 site/mips-linux: add readline b0bda60 qemu: build mips system support in qemu dfe7231 distros: fix mistake in opkg-native PREFERRED_PROVIDER b02a125 preferred-xorg-versions: bump util-macros version e081a82 distros: Fix some warnings by setting PREFERRED_PROVIDER's 22aadfc glib-2.0-native: Fix DEPENDS 60251ac pango: Disable PARALLEL_MAKE 170e071 dpkg: Add missing -native DEPENDS f00e5cf bitbake-dev: Sync with upstream a774049 poky-eabi.inc: Use glibc 2.9 for mips feed2e2 cross.bbclass: Set BASEPKG_HOST_SYS to a sane value 2debb77 libx11-git: Disable dolt b07628b util-macros: 1.3.0 -> 1.4.1 50d9ca7 qemu: Add small fix to gl patch 24c24ec gnome-terminal: temporarily disable scrollkeeper 6816e5a empathy: append to EXTRA_OECONF, don't override 7b41d2b scripts/runqemu: Fix some typos ce687c2 package_ipk.bbclass: Tweak handling for all/any/noarch and nativesdk adede58 package_ipk.bbclass: Add handling for all/any/noarch and nativesdk 9bad537 empathy: Remove stale package and fix build 46a26dc poky-fixed-revisions: Update clutter gst/gtk/mozembed revisions 94006b8 poky-fixed-revisions: Update moblin revisions 2634976 gnome-terminal: Apply patch from upstream to fix doc build issues ed2be0f insane.bbclass: Fix typo 9604ad0 cross-canadian: Fix gettext issues 5afaf16 gdb-cross-canadian: Add missing gettext-nativesdk DEPENDS 0b724f9 gcc-cross-canadian: Add gettext-nativesdk DEPENDS 58ef914 binutils-cross-canadian: DEPEND on gettext-nativesdk 523439f gcc-crosssdk: Fix DEPENDS for gettext 07046f3 dpkg: Convert to BBCLASSEXTEND 5c0a06b openssl: Convert to BBCLASSEXTEND 441006c db: Convert to BBCLASSEXTEND 705fe2f glib-2.0: Convert to BBCLASSEXTEND a717961 opkg: Convert to use BBCLASSEXTEND 357282e freetype: Convert to BBCLASSEXTEND 88872c0 gcc-crosssdk-intermediate: Add missing gettext-native dependency f911c26 xkeyboard-config: Merge recipes (and fix DEPENDS) 89ab1a2 meta-moblin:Tweak PVs 6baeede meta-moblin: Update to Moblin 2.1 released versions 3fce6c2 libx11_git: Update PV 9a66ae0 mutter: Add 2.28.1 release 813e135 gupnp-av: 0.5 -> 0.5.2 and add 0.4 3ef9c4c nbtk: Add 1.2.3 release 4108af2 carrick: Add 1.1.13 release version and prefer over the git version for moblin cf91cfa bitbake: Apply modified version of a patch from Martin Jansa <martin.jansa@gmail.com> to allow wildcards at the end of PREFERRED_VERSION strings 5ab4428 gettext: extend nativesdk b8e0c83 claws-plugins: Add missing gettext inherits 2a30f28 gupnp-tools: Fix filename 7ae983c aspell: Add missing gettext inherit 2491731 claws-mail: Add missing gettext inherit fbf9d75 coreutils: Add missing gettext inherit a06263e make: Add missing gettext inherit 1b20976 gcc: Use DEPENDS += to preseve gettext dependency 2f78c4d xkeyboard-config: Add DEPENDS on glib-2.0 (for glib-gettext) 957863b rpm-native: Add DEPENDS on gettext-native 795e22c moblin-menus: Add DEPENDS on glib-2.0 (for glib-gettext) d702e01 blktool: Add missing DEPENDS on glib-2.0 ace4de1 bognor-regis: Add missing gupnp and gupnp-av DPENDS 1f343e2 gupnp: Update to latest releases 4863664 Merge branch 'master' of ssh://gitserver@git.pokylinux.org/poky 7111f83 diffutils: Add missing gettext dependency d273811 site/mips-linux: add popt variables 9f73ec3 libxcb: add xcb-proto-native to DEPENDS 5504082 xcb-proto: support building native packages of each version fc20223 qemumips: Use the linux-rp kernel by default e4f4259 linux-rp: Support a 2.6.29 kernel for qemumips 955c7aa qemumips: Add qemumips machine from OE.dev aef159c insane.bbclass: Fix multiline string aee835b insane.bbclass: enhance gettext error message 4dac8ed pam: fix inherit, add gettext and change autotools b1b5194 libidn: fix inherit, add gettext and change autotools 1ce4a01 gst-plugins-ogg/bad/ugly: Add missing inherit gettext a1e9d39 avahi: Add missing inherit gettext 7cbbccf parted: Add missing inherit gettext e83d48c gst-plugins-base: Inherit gettext c37037d gettext.bbclass: Set the gettext dependencies correctly for target, cross and native packages f309274 tzcode/tzdata: Drop unneeded gettext DEPENDS 8a7fd14 insane.bbclass: special case gettext as it can't depend on itself 91d2e7d gcc: add gettext to dependencies 69f7bf8 sed: add gettext to dependencies eb27ddf python: remove unneeded gettext dependancy ccf2e8c gdbm: remove unneeded gettext dependancy 5522e48 update-rc.d: remove unneeded gettext dependancy 5ad2aa2 ofono: remove unneeded gettext dependancy e3f37d6 mutter: remove unneeded gettext dependancy 2d82287 loudmouth: remove unneeded gettext dependancy a15166c libpng: remove unneeded gettext dependancy dc415f5 jpeg: remove unneeded gettext dependancy 3e12340 gnutls: add gettext to dependencies 67883ba connman: remove unneeded gettext dependancy e33839b clutter: remove unneeded gettext dependancy dc07c33 binutils: add gettext to depends 4965a74 nbtk: remove unneeded gettext dependancy 8c3f554 mx: remove unneeded gettext dependancy cf33df3 libccss: remove unneeded gettext dependancy 588e1c1 clutter-imcontext: remove unneeded gettext dependancy 9717322 check: remove unneeded gettext dependancy 2be6580 insane.bbclass: Fix gettext test 52b821a tzdata: 2008b -> 2009s a4ba37e tzcode: 2007h -> 2009r fe55fe7 base.bbclass: Fix missing argument 1ec8526 base.bbclass: Fix indentation error 70a3946 ofono: add gettext to DEPENDS 5bc6539 nbtk: add gettext to DEPENDS daae258 mx: add gettext to DEPENDS c52ad72 mx: Add Mx based on nbtk recipe e1baebd nbtk: update fixed revision to 1.2.3 git tag a1c4e3b handbook: Minor tweaks 8904028 ofono: Initial recipe for ofono 69027cd Remove use of gconnman as it's no longer maintained nor used 9f5e04a taskdata.py: Improve error message if a task dependency has an incorrect format dbd66fc bitbake/BBHandler: Only add do_ prefix to tasks if its not already present 29ae46a kernel.bbclass: Use B, not S in KERNEL_VERSION e90771c glibc-package.inc: Remove hardcoded path reference (from OE.dev) 9a2f361 devshell.bbclass: Merge tweaks from OE.dev 22429b6 base.bbclass: Partially sync branch/scm handling functions with OE.dev b28aa01 glib-2.0: add gettext to DEPENDS 26d2071 xorg-util: add gettext to DEPENDS where required 5fda6f9 xorg-proto: add gettext to DEPENDS where required b54602d xorg-libs: Add gettext to DEPENDS where required 41f43e1 python: add gettext to DEPENDS 4ae547d telepathy-glib: add gettext to DEPENDS eb12b04 telepathy-glib: Update 0.9.0 -> 0.9.2 8076573 update-rc.d: add gettext to DEPENDS f35aab2 mutter: add gettext to DEPENDS b703ee6 loudmouth: add gettext to DEPENDS 674c9e5 libpng: add gettext to DEPENDS d6cbbec jpeg: add gettext to DEPENDS 7188bb4 gdbm: add gettext to DEPENDS fc2ba9a connman: add gettext to DEPENDS 5cd6d10 connman: Updates and a recipe for the latest release 2aa6a8a poky-fixed-revisions.inc: Fix preferred version for dbus-glib 2286ffb clutter: add gettext to DEPENDS fb34cbd nbtk: add gettext to DEPENDS 508dacc libccss: add gettext to DEPENDS 29a65ec check: add gettext to DEPENDS 33e1378 clutter-imcontext: add gettext to DEPENDS 4859945 insane.bbclass: Handle native packages in the gettext test 459861b bitbake/data_smart.py: Fix error where update-rc.d would not get added to the dependency tree 71e21a7 insane.bbclass: Check whether gettext is required but not in DEPENDS aa65b67 chrpath: Add chrpath 0.13 based on recipe from OE.dev dd2a0e0 console-tools: Add missing gettext dependency ceb91f7 scripts: preserve BB_NUMBER_THREADS when sanitising environment 51497a7 kernel.bbclass: Sync with OE.dev 62ab23e insane.bbclass: Skip arch check for Cross Canadian 61d608e local.conf: Fix cross canadian variable, it's SDKMACHINE not SDK_ARCH 1183aff bitbake/git.py: Typo fix b80f6d8 bitbake/git.py: Add support for fullclone parameter a94737f bitbake/git.py: Move variable init into the localpath function 7d937f0 qemugl: Only directly install for -nativesdk version bf69b8b local.conf: mention the Canadian Cross variable; SDK_ARCH 30b6c9b local.conf: use qemux86 as default target 2c5ae3e handbook: point people at purple in the introduction cb8684f bitbake/cooker.py: Fix handling of extra configuration files c02e389 git.py: Improve command failure error messages 72327cb moblin-web-browser: Fix xpidl patch to make sure idl include files are found d5ad487 mozilla-headless: Fix xulrunner version references 1805dbd dbus-glib: 0.78 -> 0.82 12691f2 mozilla-headless: Set PKG_CONFIG_ALLOW_SYSTEM_LIBS to avoid host libraries being found ac39732 moblin-floating-revisions: Set fixed revision for bisho fd2e201 moblin-app-installer: Fix syntax error d2e8c1f moblin-app-installer: Update patch against latest git 386d564 moblin-fixed-revisions: Bump clutter revision 507dcf9 meta-moblin: Switch to gtk+ 2.18.5 db2e750 gtk+: Add 2.18.5 bd874fa poky-fixed-revisions.inc: Update glib-2.0 revision 35e8e3f gtk-doc: Update gtk-doc.m4 eee88f3 glib-2.0: 2.20 -> 2.22 e5a21c4 moblin-web-browser: Update patch 57bf2cf clutter: Fix locked down revision patch 5386327 udev: Add local.rules for the IGEP v2 to symlink the first framebuffer to /dev/fb 9bd948e bognor-regis: Add missing DEPENDS on libnotify 8caa290 rpm: Update for python 2.6 13ee301 moblin-floating-revisions: Enable floating revisions for mozilla-headless 7ab7ad8 mozilla-headless: Update to work with recent git changes 9e27801 sqlite3: Add missing DEPENDS on tcl-native f4674fa tcl: Add tcltk from OE.dev but with legacy staging function removed and converted to BBCLASSEXTEND 7b8e1ef mojito: Add RDEPENDS on connman and set configure flags to match, also disable shave 21c54dd sqlite3: 3.6.16 -> 3.6.20 c924e98 leadpad/pcmanfm/puzzles: Make libowl optional aeabb07 tasks: Fix missing quote ad51b8c poky-fixed-revisions.inc: Update dates revision 3ab04a9 pimlico: Clean up libowl handling to be consistent e584e7c libowl: Remove stale comments and enable packaging 288e62a distutils: Sync with OE.dev c7d4ad8 gdb: Make sure cross-candian version does not provide gdbserver 98192bf site/ix86-common: Add moz variables ba1c4fa python: Update 2.5 -> 2.6 (from OE.dev) 3b5336f python: Update 2.5 -> 2.6 (from OE.dev) de73c65 alsa-utils/xdg-user-dirs/diffstat: Add missing DEPENDS on gettext 73e514b rpm: Bump PR 1678395 libtool: Fix sysroot preprocess function 28fc110 nativesdk.bbclass: Disable debug 82fd3bd nativesdk.bbclass: Fix DEPENDS handling 7bb37ff gdb: Clean up recipe and don't inherit cross for cross-canadian 4248fbe cross-canadian: Set PKGHIST_DIR to a correct value 18bd183 libexif: Add gettext DEPENDS 515b0f1 util-linux: Fix DEPENDS on gettext f866f51 gstreamer: Fix DEPENDS on gettext 68518c4 popt: Fix DEPENDS on gettext a76bdfb libgpg-error: Add missing DEPENDS on gettext 8917b6e libidl: Add missing DEPENDS on flex 212dedc flex: Add missing DEPENDS on gettext ac0788e bison: Add missing DEPENDS on gettext 5bc0235 clutter-git: Update patch 6661806 rpm: Disable dwarfdebug 0ad571d clutter-git: Disable DOLT 66c952c autotools.bbclass: Make sure config.rpath is present if needed dfd32b4 base.bbclass: Stage etc directory for native packages 659d4e2 mutter: Bump PR 414f9e8 gdk-pixbuf-csource: Make sure a loaders file is generated after recent staging changes 6348b70 libtool-cross: Don't allow bad staging files break libtooL 15b5395 libtool: Only apply sysroot mangling to libtool itself (not native/cross/nativesdk) 35433ab rpm: Bump PR 7cf518c gvfs: Add missing DEPEND on gnome-keyring and disable libarchive 499c15a pycairo: Fix staging 67a8d2d ribosome: Build workarounds 20abebf xapps: Add configure sed to remove problems with the XAW_CHECK_XPRINT_SUPPORT macro 3d5a8ff clutter-gst: Bump PR 4fb92e7 clutter-gst: Disable DOLT 400f1ca libtool: Allow ltdl to stage only 8e33642 Add missing patches 6e6320b gupnp: Fix staging preprocess function 63d30e3 clutter-1.0: Disable DOLT 463f99c clutter-1.0: Disable DOLT 78ed945 syncevolution: Correct branchname 1b0fd59 moblin-floating-revisions.inc: Disable head revisions for now e1e3621 moblin-fixed-revisions.inc: Update gtk+ version ad2dfda subversion: Bump PR 8265d8d gnu-config: Add missings sed command a813f23 libtool: Don't install into staging since we need libtool-cross there c770141 e2fsprogs: Fix typo and bump appropriate PRs e8c26e1 xclipboard/xclock/xkbprint/xkbutils: Upgrade to lastest releases 3f27fda xserver-xf86-dri-lite: Add m4_pattern_allow 441446c gtk+: 2.16.4 -> 2.16.6 6834d3c xserver-xf86-dri-lite: Fix typo 0d4c056 xserver-xf86-dri-lite: Fix macro in .m4 file 011557c bitbake: Fix dict changing size problems 71b10e3 poky-init-build-env: Remove now unneeded return 2893322 distro/poky: Set EXTRAOPKGCONFIG b46f349 Add poky-feed-config-opkg (based off moblin version) 87113e4 xserver-kdrive-1.3.0.0: Add randr12 fix from OE 2c1211b scripts/poky-qemu-internal: Make sure qemuarm cursor is visible f0d2b37 libxcalibrate: Fix with xcb f721f7b pointercal: Update qemuarm calibration files after recent qemu changes to wacom code 43dd23b udev-141: Backport fix from 145 which is also needed here b6b45ca runqemu: staging -> sysroots 4ee3295 apmd/jpeg: libtool is on STAGING_BINDIR_CROSS 1b8493a qemu: Update to 0.10.6 and add fix wacom emulation issues 429837b udev: Fix touchscreen link creation with latest version 663dc36 sato: move policykit from meta-moblin to met 2163649 sato: move pam from meta-moblin to meta 5892090 external-toolchain-csl: Convert to use glibc-package 246dbec package.bbclass: Clear package directory copy before installing new files to prevent stale data 6ebcb57 glibc-package.bbclass: Fix the case PN == glibc 46fbe4c glibc-package.bbclass: Add GLIBC_INTERNAL_USE_BINARY_LOCALE precompiled mode 7379ee7 glibc: Add missing .inc file from last commit 1e549b9 glibc: Separate out core glibc packaging functionality into a class ebf6159 tune-atom.inc: Improve optmisation flags 0ad4a95 genext2fs: The makefile is broken, just do the correct thing ourselves 0037679 stagemanager-native: Set NATIVE_INSTALL_WORKS aa20954 mozilla-headless: Convert to use SYSROOT_PREPROCESS_FUNCS a6f36ae apt: Stage include headers in do_install and drop custom staging function 24f0ecb apt-native: Use do_install for staging bb9a858 stagemanager-native: Set PSTAGING_DISABLED and drop unused staging function 43bee8b Disable packaged-staging for cross-linkage/staging-linkage and external-poky-toolchain 40a88a1 poky-external-toolchain: Alter staging in do_install step b90e556 cross-linkage/staging-linkage: Convert to mangle staging in do_install step affbcf3 kernel.bbclass: Merge do_stage into do_install 3a2ad83 osc-native: Stage using do_install (and add SRCREV) 47c19bb python: Drop staging functions. If failures occur we just need to improve do_install 5716a14 package.bbclass: Fix runtime_maping_rename so version information isn't removed 0846d1f python: Drop custom staging function 0309edc python-native: Convert to use do_install for staging 5b44fa1 perl: Updates to ensure Config-heavy-target.pl is found ca5f36e perl: Update from OE.dev and convert to use do_install for staging 06685d7 libapci: Remove unneeded staging function b977fca tzcode-native: Set NATIVE_INSTALL_WORKS 0d51d80 xerces-c: Patch out local linking directories bc111fc xerces-c: Reuse do_install for staging 892ff04 libol: Drop custom staging function 659717f samba: Remove unneeded custom staging function 770af5b gettext: Convert to use BBCLASSEXTEND 5e6726d dfu-util: Remove unneeded staging functions 6e7cac9 uicmoc3-native: Set NATIVE_INSTALL_WORKS dd9e54d boost-jam-native: Use do_install for staging 84a7f89 boost: Switch to using do_install for staging 6b05a7a qmake-native: Convert to use do_install for staging 54682f2 libpcre: Drop staging function 9fe6114 uicmoc3-native: Convert to use do_install for staging 354221d moblin-feeds: Remove unneeded staging function d265968 linux-dummy: Drop do_stage 57a7346 libiconv: Convert to use autotools_stage 90a50d5 e2fsprogs: Drop unneeded custom staging function by improving do_install and convert to use BBCLASSEXTEND for -native recipe e4d0c64 gcc-native: Convert to stage using do_install 8d5f7fa binutils: Remove unneeded staging functions bf9725e dbus-native: Convert to use do_install for staging be033d2 dbus: Remove unneeded staging function 7bf17e8 alsa-oss: Drop unneeded custom staging function c5f2ff9 u-boot-mkimage-native: Convert to use do_install for staging b36dcf3 signgp-native: Convert to use do_install for staging d715026 update-alternatives-dpkg: Convert to BBCLASSEXTEND a002937 gnome-doc-utils: Convert staging function to a do_install_append dc607cf qemugl: This package is usually installed as an alternative so no need to use the package postinstall. Remove staging function f8eb8a3 insserv: Convert to BBCLASSEXTEND, mark do_install as safe for native staging e2b66cc wireless-tools: Drop custom staging function bd91009 yaffs2-utils: Convert to BBCLASSEXTEND and drop custom staging function a09fcd0 uicmoc4: Set NATIVE_INSTALL_WORKS de19e4b gtk-doc: Set NATIVE_INSTALL_WORKS 54c9e93 syslinux/syslinux-installer-native: Convert to stage with do_install fe89792 gtk-doc: Drop custom staging functions as now unneeded 6cad69b libusb/libusb0: Drop unneeded custom staging functions 6327525 libsdl-natvesdk: Drop unneeded stage_append 0d816ac uclibc: Upgrade 0.9.29 -> 0.9.30.1 (from OE.dev) and massively cleanup the recipes, using install step for staging 2ce975d automake-native: Remove unneeded staging function a1f2ed6 matchbox-desktop: Drop custom staging function 089e29b uicmoc4-native: Convert to use install step for staging 40abdea helix-libs/ribosome: Convert to use do_install for staging cb5f3a4 freetype: Drop unneeded custom staging functions 06b28b5 db: Convert to use staging from install 833152e cmake-native: Drop unneeded staging function and use do_install e9a1c2f apr: Convert staging mangling to a sysroot_preprocess function 559aa18 intltool: Use autotools_stage b3ccc4e bzip2: Use do_install for staging bf75477 libxaw: Add symlinks in do_install step and use this for staging 22569b8 ncurses: Use do_install (and add missing symlink) e82831c lirc: Drop unneeded custom staging function 89e1fb0 libassuan: Drop unneeded custom staging function 032ef48 js: Use do_install for staging dab103f liba52: Drop unneeded custom staging function aec1e12 gdbm: Drop unneeded custom staging function 4c57e93 libfribidi: Drop unneeded custom staging function 9de4ef4 tzcode-native: Convert to use do_install for staging 49abf93 genext2fs: Convert to use do_install for staging and use BBCLASSEXTEND for native recipe a7d453b udev: Convert old versions to use do_install for staging 1384179 gnome-common: Drop unneeded custom staging function 4359a22 glibc: Convert to use do_install for staging 9734c51 external-csl-toolchain: Drop uneeded staging functions (a make sure mangling happens in do_install) 45fbc1c package-index/run-postinsts: Drop staging functions ed0a52a openssl: Convert to use do_install for staging 6a54171 dosfstools: Convert to use install step for staging 551e0bb cdrtools-native: Use install for staging a04941c lame: Use autotools_stage_all b73a731 module-init-tools-cross: Use do_install for staging 040cf26 modutils-cross: Use do_install for staging a78d298 qmake2-cross: Use do_install for staging 7d9e2e5 cross.bbclass: Adjust the core class staging method as all users have been vetted and won't be affected d560f9f gdb: Clean up do_install and convert to use install for staging 5b8b6c6 libtool: Convert various varients to use do_install for staging b6a0684 linux-libc-headers: Drop unneeded custom staging functions ec22e23 gcc: Convert cross recipes to stage in do_install. Also moves stdc++ and other libs into the sysroot 977b3fe cross.bbclass: Add defitions of target_*dir variables and improve sysroot_stage_all to cope with mixed packages as found in cross recipes 94577a7 glib-2.0: Clean up staging functions and convert to do_install 6349b2b fontconfig: Update staging to use do_install 3ba6fce libmad: Drop custom staging function 7edbe81 gupnp: Convert to new staging method 0d5818e pcap: Drop custom staging function and use autotool_stage_all. Some hopefully legacy leftovers remain commented 79c0a43 elfutils: Convert to autotools_stage_all 76d9b6e native.bbclass: Make sure PACKAGES is empty in case _prepend or _append are used 6568a6d base.bbclass: Drop unused PSTAGE_BROKEN_DESTDIR variable and run sysroot_prehook at the right point 7096a54 packaged-staging.bbclass: Fix staging reference -> sysroots 9a3da23 dbus-glib-native: Convert to use do_install for staging 6341ebc unifdef-native: Convert to use do_install for staging 70fbc88 pkgconfig: Drop pointless staging function 699c0aa apmd: Convert to use do_install for staging 2f435da ldconfig-native: Convert to use do_install for staging 2b62b6e quilt: Convert to use install step for staging and cleanup the include files a bit 7d353d3 gtk+/gdk-pixbuf-csource-native: Convert to staging from do_install 81d1490 gpgme: Convert to autotools_stage_all 668ae67 update-rc.d: Add native version, add native dependency to class, convert staging function d89b641 sha-native: Update staging function 3044578 pth: Drop custom staging function 1c9d2ba ppp: Drop custom staging function 31ad2cf gnutls: Convert to autotools_stage c0a972e gpg-error: Convert to autotools_stage 7807791 tiff: Convert to autotools_stage 84c2500 libxsettings-client: Convert to autotools_stage 5c0dce8 fakeroot: Remove leagacy staging function and improve installed -dev package 7acfa94 perl: Standardise config.sh location 5c0111c lib_package.bbclass: Sync with OE.dev to remove hardcoded layout assumption 5f22458 debian/kernel/gconf/gtk-icon-cache: PKGDESK/PKG fixes 01f75c1 rootfs_rpm/icecc: Sync whitespace with OE.dev a59f67f gtk-icon-cache.bbclass: Fix hardcoded PKGDEST reference and operate on directories other than hicolor (from OE.dev) 67fa7a1 gconf.bbclass: Fix hardcoded PKGDEST reference 7da2f8c packaged-staging: Fix libdir references to use libdir_native c226b38 package_ipk.bbclass: Fix typo 30087f8 binutils-cross-canadian.inc: Convert to use sysroot staging approach 94ceada binutils-cross.inc: Convert to use sysroot staging approach 9198908 cross.bbclass: Override the sysroot_stage_all to work appropriately for cross packages e267747 base.bbclass: Add special stage keyword to override leagcy mode b772c8c bitbake.conf/base.bbclass: Rename the staging directory to sysroots and the populate_staging task to populate_sysroot 6c92cfc glibc-package.bbclass: Operate on PKG, not D after package.bbclass updates 7ad1784 gtk-icon-cache.bbclass: Drop unneeded module import c8dc392 gconf.bbclass: Drop unneeded module import d4f23b6 icu: Fix typo 7b849ae native.bbclass: Fix DEPENDS handling for BBCLASSEXTEND use e782788 gnu-config: Don't run sed substituation for perl location in native case c6f8605 base/autotools.bbclass: Make sure extra dependencies are not lost for native and nativesdk BBCLASSEXTEND. Ugly but no simpler/neater way seems possible aa08ac8 libtool: Drop unneeded include c541174 classes: Remove and sanitise import statements 80d55bb base.bbclass: Drop import bb and import os as no longer needed f1faef3 icu: Fix -native version so it doesn't use target substituions in configure step 22ddc76 gconf-dbus: Convert to BBCLASSEXTEND and drop custom staging append since its no longer needed b26b8f4 native.bbclass: Improve DEPENDS mangling code so sub matches don't break upon substitutions abe3902 bitbake.conf: Add virtual/libintl-native to ASSUME_PROVIDED d594dcf pax-utils: Convert to BBCLASSEXTEND e1ba0ea gmp: Convert to BBCLASSEXTEND 0b1aee3 nasm: Convert to BBCLASSEXTEND 5b2610a m4: Drop 1.4.9 version, convert to autotools_stage f2a5be4 libx11: Convert -native/-nativesdk versions to BBCLASSEXTEND 5308a1d sqlite3: Cleanups - use BBCLASSEXTEND, drop strange compile bugfix (now unneeded?), convert to autotools_stage class 03ed0db xcb-proto: Drop custom staging function 4523bc1 xcb-proto: Convert to BBCLASSEXTEND f9a857d libxslt: Convert to BBCLASSEXTEND f8e5205 autoconf: Convert to BBCLASSEXTEND 71b09b0 mtd-utils: Convert to BBCLASSEXTEND f74f080 libusb: Convert to BBCLASSEXTEND 837dabc Drop gcc-native 3.4.4 7541841 libxml2: Convert to BBCLASSEXTEND (and drop unneeded custom staging function b9cac51 gettext: Drop old version aee10f3 makedevs: Convert to BBCLASSEXTEND 1d82f91 jpeg: Convert to BBCLASSEXTEND (and drop unneeded custom staging function 65d097c gperf: Convert to BBCLASSEXTEND b8def21 qemu: Convert to BBCLASSEXTEND (git version only, drop 0.9.1 native/nativesdk versions) ffb2301 git: Convert to BBCLASSEXTEND 18fe7ed intltool: Convert to BBCLASSEXTEND 88de83a intltool: Drop old version 9a17752 shared-mime-info: Convert to BBCLASSEXTEND 6e642b4 readline: Convert to BBCLASSEXTEND 3baff56 beecrypt: Convert to BBCLASSEXTEND 29327b9 mtools: Convert to BBCLASSEXTEND 3d6e246 libidl: Convert to BBCLASSEXTEND 3a201d0 pkgconfig: Convert to BBCLASSEXTEND cfc57fd ncurses: Convert to BBCLASSEXTEND c304734 libpng: Convert to BBCLASSEXTEND and drop custom staging function as unneeded afc22e5 curl: Convert to BBCLASSEXTEND 039a1b4 bison: Convert to BBCLASSEXTEND 5c83405 icu: Convert to BBCLASSEXTEND 170604d gdbm: Convert to BBCLASSEXTEND 315d4ab file: Convert to BBCLASSEXTEND 2a4760d popt: Convert to use BBCLASSEXTEND 6771023 gnu-config: Convert to use BBCLASSEXTEND 20f3597 bzip-full-native: Convert to use BBCLASSEXTEND cd7f623 lzo: Convert to use BBCLASSEXTEND 91a071b unzip: Convert to use BBCLASSEXTEND bb4dfbf zip: Convert to use BBCLASSEXTEND b5a059f fetch/__init__.py: Try and make the sortable_revision code mode readable aaf9b6a base.bbclass: Add an option of forcing the new staging mechanism 08d949e base.bbclass: Fix do_populate_staging to operating on TMPDIR, not STAGING_DIR_TARGET 379bc47 classes: Various staging improvement fixups d7399bd base.bbclass: Rework staging function to use a DESTDIR style configuration based on the data from the do_install step. This falls back to any standard do_stage function if defined, see the mailing list for more info. a1d93ee packaged-staging.bbclass: Use a variable for the location of the staging lock file 3c83bae native.bbclass: If do_stage isn't overridden, allow do_install to run for native packages 7c97538 binconfig/pkgconfig.bbclass: Convert staging functions into SYSROOT_PREPROCESS_FUNCS operating on SYSROOT_DESTDIR 6ea78d6 autotools.bbclass: Separate out useful staging functions into base.bbclass and call from autotools classes 1383f0f autotools.bbclass: No need to fork sed each time cbcad72 autotools.bbclass: Convert .la file mangling to package preprocessing hook 99cdb59 binconfig.bbclass: Convert do_install_append() into a PACKAGE_PREPROCESS_FUNCS 7501b62 package.bbclass: Add the option to declare package preprocess function hooks 4b0332c package.bbclass: Change to operate on a copy of the install directory instead of directly. Also take the opportunity to rename the temp directories so their function is clear 0eee29e package.bbclass: Remove hardcoded use of PKGDEST variable 4f4a3da package.bbclass: Move variable checks to one place making the code more readable 764f73a base.bbclass: Only run do_stage if its been overwritten as the default is empty and its pointless to run it 483f858 bitbake: Sync various functions with those from bitbake-dev and bitbake upstream c2b5a61 bitbake: Sync module import cleanups back from bitbake trunk 1fd3265 build.py: Fix zero size logfile problems 58c01c1 xfce.bbclass: Sync with OE.dev 96ece54 dbus: Disable X for -native versions, also explicitly disable libaudit a338a7a dbus: Improve fix deamon install patch to use automake magic to avoid installing wrapper scripts ce3ef9f dbus-native: Apply install fix patch to ensure the version of dbus-daemon in staging is not a wrapper b5b6b22 bitbake.conf: Drop SHELLCMDS quoting fixing menuconfig task 073faab linux-igep2: Fix audio capture, the capture result is always silence 7a86606 igep0020b.conf: Fix missing u-boot entrypoint 988e4dd poky-init-build-env: Update for BASH 4 Bourne Shell semantics 117b91a m4: Apply config_links patch to non-native version as well (from Esben Haabendal <eha@doredevelopment.dk>) 23a64bc m4-native: Fix building on Ubuntu 9.10 2dddd57 meta-moblin: Drop mux as now obsolete 08cd59f poky: add support for changing bootsplash application e3c01a6 xorg: Fixup DEPENDS on util-macros 099fa67 gcc 3.4.4: fixed Ubuntu 9.10 build ae0e1ad package.bbclass: Cleanup getVar syntax to use True, not 1 as third argument 83a6400 packaged-staging: Whitelist the empty base_do_stage function as it does nothing and locks need not be held c078d4c poky.conf: Update source tarball stash url and variable name 8ceb125 gcc-4.1.2: Add missing patch (from OE.dev) eb0d2f2 bitbake-dev: Fix a couple of bugs that crept in breaking runtime a1a308c Merge branch 'marcin/trunk' of git://git.pokylinux.org/poky-contrib 699fb85 bluez4: 4.39 -> 4.56 559cb33 linux-libc-headers_2.6.20.bb : more modern glibc expose getline from stdio.h rename the function so not to cause a clash 908fa82 libsynthesis/syncevolution: Switch to 0.9 release branch 0704ef9 poky-fixed-revisions.inc: Remove stray # character f310816 bitbake: hg fetcher - sync bitbake-dev and remove debug d4fe9e7 task-moblin-x11-netbook: Bump PR 4f6fee8 mozilla-headless: Bump PV 0e22712 poky-fixed-revisions.inc: Update mozila-headless SRCREV 3c0dd2d moblin-fixed-revisions.inc: Set mozilla-headless SRCREV correctly b8f69f7 mozilla-headless: Convert to auto revisioning 717d71b bitbake: Add hg fetcher auto revisioning, patch from Carl Simonson <simonsonc@gmail.com> 96fc6f4 moblin-floating-revisions: Bump Mozilla headless revision 4d9309a poky-fixed-revisions.inc: Set SRCREV for missing packages cb62df1 xserver-xf86-lite.inc: Make sure the correct RDEPENDS variable is appended too (thanks Enric) 7465fba mutter-moblin: Add missing DEPENDS on bognor-regis (thanks Enric) ac4d25c bitbake: Fix svk fetcher 627d9b1 bitbake-dev: Sync with changes upstream f1216d2 udev: Remove broken exec_prefix which fixes file layout and stages libudev correctly 9b53d44 xserver-xf86-dri-lite: Fix RDEPENDS as RDEPENDS_PN is set and this overrides the base variable 65b24a0 xserver-xf86-config: Add version for IGEP v2 board f4ccb8f formfactor: Add version for IGEP v2 board af13264 linux-igep2: kernel recipe for IGEP v2 board 6598379 igep0020b.conf: Initial IGEP v2 board support 5a8dd65 xf86-video-omapfb: Add X.Org driver for TI OMAP framebuffers 7642529 bitbake: Anonymous funciton improvements - use methodpool to allow cached code and remove anonymous function indentation mismatch problems 4454977 bitbake: Add bb and os to __builtins__, not the exec function global 74016da bitbake: Remove unused and hence pointless internal__functions__ variable dbf6a79 mobile-broadband-provider-info: Set PV correctly 07c0fc0 moblin-floating-revisions.inc: Bump mozilla-headless revision 279afff prefferred-xorg-versions: Update util-macros 82d0344 carrick: Add missing DEPENDS on mobile-broadband-provider-info d1b315d Add mobile-broadband-probider-info 6f5fd5b pango: Add 1.26.0 424441d carrick: Add librest and libnotify to DEPENDS fec7fde connman: Add option to enable tests 9996221 xf86-video-intel: Drop patches from git version 127797d moblin-floating-revisions: Bump for mozilla-headless 2ddd5a8 packagekit: Make sure connman is used, not network manager 9c00056 telepathy-glib: 0.7.29 -> 0.9.0 f6db09f util-macros: 1.2.1 -> 1.3.0 e57be74 moblin-app-installer: Add package 220533a packagekit: 0.3.8 -> 0.4.9 (and sync with OE.dev) and add gnome-packagekit from OE.dev) b819bd9 libsexy: Add along with dependencies (aspell + enchant) from OE.dev 5ce319a gnome-menus: 2.24.0 -> 2.24.1 3aa68f1 opkg: Switch to google svn and patch to export a version comparision function (patches taken from OE.dev) 67a79c7 bitbake.conf: Fix STAGING_BINDIR_CROSS to point to the location before the layout_* changes 2c6494b policykit-gnome: Add from OE.dev with tweaks and fixed DEPENDS 1a92cb6 tasks: Update SRCREV d326382 bitbake/build.py: Remove zero sized log files bec200b bitbake/cache.py: Add warnings for leakage of SRCREVINACTION magic value 8138603 bitbake/fetch: Ensure SRCREVINACTION always resets the core flags even when parsing failes by using a try/finally 1bc5ed0 bitbake-dev: Sync exported variables with bitbake d3d2bb6 moblin-fixed-revisions.inc: Update connman revision to avoid parallel make races 1d4f93e Add SDKMACHINE to simplify SDK control and add to CACHE paths to allow environmental variable control 8aa3e16 nativesdk.bbclass: Drop ineffective dynamic linker flag 7663a6e task-sdk-host: Add gdb-cross-canadian 9943a3e gcc-crosssdk: Add code to change the deafult linker path in the case of sdk binaries a4c57e2 gdb: Add cross-canadian recipe cd93271 ncurses: Fix up BUILD_LDFLAGS variable corrupting builds 3831d44 qemu-nativesdk: Use HOST_CC to build parse_gl_h 0eb3586 gcc-configure-common.inc: Fix to use target system paths 3fbbc44 nativesdk/package_ipk.bbclass: Clean up sdk package architectures 1c1305d meta-toolchain: Don't ship libGL 43a6e66 qemu-nativesdk: Add patch to fix linkage b4def68 qemugl: Relax COMPATIBLE_MACHINE slightly for x86_64 case 0756b31 external-poky-toolchain: Don't inherit nativesdk 191b030 gcc-cross-sdk.inc: Drop no unused file 4f8e5ed qemu-nativesdk: Add qemugl-nativesdk to DEPENDS 9f5ef81 qemugl: Add staging function 1353bc0 glibc-2.6.1: Fix accidental unintended change 7a382df task-sdk-host: Use cross-canadian packages 3e33f7f qemu-nativesdk: Use a specific gcc as otherwise configure tests break 5369137 libx11-nativesdk: No need to hardcode DEPENDS/PROVIDES ffc3e23 gmp-nativesdk: Don't hardcode PV a51362c package_ipk.bbclass: Convert to use SDK_ARCH 9fba0f4 bitbake.conf: Update SPECIAL_PKGSUFFIX to include crosssdk/cross-canadian and drop -cross-sdk 9174f71 gcc-configure-sdk: Tweak compiler options for working canadian cross compiles 192709c gcc-configure-common: Allow the sysroot layout seen by the compiler to be configured (based on a patch from OE.dev but improved) 7efbf5c gcc-configure-common.inc: Allow the multilib option to be changed 835bc8f meta-toolchain: Fix --build CONFIGURE_FLAG and add a target prefix to scripts abfe859 bitbake.conf: Add SDK variable definitions 31a82c6 gcc-package-cross: Cope with lib64 binaries 00127b3 packaged-staging.bbclass Use libdir_native for opkg paths in directory creation 5912ab1 native.bbclass: Use prefix_native variable 0768f59 poky-fixed-revisions.inc: Rename -sdk to -nativesdk ca66713 nativesdk: Convert to use crosssdk toolchain and remove binutils/gcc nativesdk recipes afa02c5 cross-canadian: Add cross-canadian class with gcc and binutils recipes c906f2b crosssdk: Add crosssdk class with gcc and binutils recipes eb1e80f Extend various packages to use nativesdk using BBCLASSEXTEND f7fddc1 mpfr: Convert to use BBCLASSEXTEND bc5afa6 nativesdk: Don't use search and replace on DEPENDS field 0d7207c sdk.bbclass: Rename to nativesdk.bbclass af85ce4 Remove layout_* variables 046ae6a poky/moblin: Update SDKPATH and SDK_NAME to use SDK_ARCH and remove pointless path addition 6024456 bitbake.conf: Use BASE_PACKAGE_ARCH as the default, not HOST_ARCH 3b8b3f7 bitbake.conf: Add SDK variable definitions f1c780d glibc: Use PN instead of hardcoded package name cf9a7f9 inputproto: Add missing DEPENDS on util-macros c5fb62b gnome-settings-daemon: Fix problems with bad paths creeping into the configure paths 2161f50 sysfsutils: Drop custom staging function and broken includedir change 285cd93 moblin-floating-revisions.inc: Release nbtk/carrick versions 2756d7d carrick: Add missing DEPENDS on mutter-moblin 3ec66b0 moblin-floating-revisions: Lock down carrick to to pre nbtk API change 7b6110d moblin-floating-revisions: Lock down nbtk to pre API change 2e7e072 gcc-4.3.3: Sync patchset with OE.dev 8f96edf glibc-2.9: Sync with OE.dev and update patchset 48a278e glibc-stage.inc: Massively simplify and speedup by just copying the data generated in the do_install stage ea5d780 glibc-package.bbclass: Sync with OE.dev and remove hardcoded path references 846794c bitbake.conf: Rename SDK_PREFIX SDKPATH d671955 binutils-cross: Remove uneeded custom staging functions 1f8a1ea meta-toolchain: Exclude from world builds e4e019b carrick: Make sure the build/autotools directory exists or errors occur 16d7767 libnl: Fix compile header problems 0e842cf zeroconf: Fix compile issue a340d3c valgrind: 3.3.0 -> 3.5.0 bc0b233 bitbake cache: Add code to catch a nasty cache corruption issue to aid in tracking it down e425d3c moblin-floating-revisions.inc: Lock down clutter-gst 25d9413 tasks: Fix owl patch for latest git versions 4426c30 dates: Fix owl patch 43fa53c patch.bbclass: Merge in git resolver changes from OE.dev. Catch all exceptions rather than print horrid backtraces 0deeea4 poky.conf: Set SDK_NAME to include BUILD_ARCH, not HOST_ARCH 09ed7a4 Lock down udev versions correctly for the versions of glibc in poky vs. moblin distros 2557eb1 meta-toolchain: Set --build flag to configure in CONFIGURE_FLAGS bdbabcb clutter-gtk: Append to DEPENDS, don't overwrite 0533fa7 task-moblin-standalone-sdk-target: Add more moblin libraries 1151312 moblin: Set toolchain SDK target to a moblin specific one d418150 gcc-package-sdk.inc: Make sure include-fixed headers are included with the toolchain d8cc366 preferred-xorg-versions.inc: Fix native/sdk versions 82e4926 moblin-floating-revisions: Fix fixed clutter-ftk SRCURI 3645a17 Merge branch 'mturquette/zoom2' of git://pokylinux.org/poky-contrib bfcf816 clutter-gtk: Lock down version due to unstable gtk dependency d09e6fa hornsey: Add clutter-gtk to DEPENDS faec274 mesa-dri: Update patch against git d5341fb Add poky-trim-schemas post install script to remove unneeded schema locale translations from images (credit to Ross Burton for the initial script) 69af3cc linux-omap3-pm: remove 1 unneeded patch 1937c08 util-linux: Bump PR c33873a e2fsprogs: Don't install blkid.pc file c5983de opkg-utils: Update changing .ipk avoidence patch 670a7ee poky-fixed-revisions: Update hal version 431ebea util-linux: Stage files 45d44d3 hal: Add 0.5.13 9374840 anerley: Add missing DEPENDS on eds-dbus 27881ba dhcp: Fix to work with glibc 2.9 21c622d acpid: Fix issues with glibc 2.9 and remove old versions 0445add linux-libc-headers: Fix missing include for 2.6.30 ec1d478 udev: Add 145 c2a128e poky-moblin.inc: Use glibc 2.9, linux-libcheaders 2.6.30 b410b2e glibc: Add 2.9 from OE.dev 71e4d73 linux-libc-headers: Add 2.6.30 479d7f1 opkg-utils: Further missing files tweaks 2498dd2 Add poky-autobuilder to .gitignore 06b2913 moblin-web-browser: Make sure dbus service files are packaged b8187a1 opkg-utils: Add patch to avoid errors when packages change while rebuilding the package indexes 3f8afe4 linux-omap3-pm: refresh patches and remove some sed magic to boot zoom2 db4cd6d tune-cortexa8.inc: don't auto-vectorize, remove package overrides, some cleanup 59040b5 __init__.py: export GIT_PROXY_COMMAND for those behind draconian proxies 4eee576 linux-omap3-pm: remove 0001-OMAP3-MMC-Add-mux-for-pins.patch 5680a1d hornsey: bump fixed revision to version 0.3 ba3735e clutter-gst: Bump moblin fixed revision to 0.10.0 82013e7 nbtk: bump fixed revision to 1.0.0 b65f2d5 clutter-imcontext: bump fixed revision to 0.1.4 0f2df9e base.bbclass: Don't retrieve SRC_URI when not necessary 65bf6c9 base.bbclass: packages pulling a mercurial tree should depend on mercurial c2b4308 base.bbclass: Use subprocess rather than os.system for do_unpack 7859b4c gettext: Fix path to ncurses library 539eb28 moblin-feed-config-opkg: Bump PR 5f1a5e3 nbtk: Disable introspection 18f0cec Add moblin-feed-incremental-bleeding class 3feb78c moblin-panels: Update DEPENDS 484c2e5 connman: Update patch and bump revision 1a338f5 clutter-mozembed: Depend on clutter-1.0 fe0b8a2 clutter-gst/gtk: Depend on clutter 1.0 a9dac74 Add xbacklight 1.1 efb47fe dalston: Add missing DEPENDS on mutter-moblin 932f143 package-index: Mark as exluded from world builds 983a3af libgalego: Add patch for mkinstalldirs problems bcd55cb farsight2: Bump PR 64eaabe farsight2: Fix rpm glob failure 5a826d3 findutils: Add patch for mkdir issue and use BBCLASSEXTEND for the native version 0dc18c5 Add python-dbus, python-pyrex from OE.dev 79542c9 e2fsprogs: Fix MKINSTALL issues 32678f5 task-moblin-x11-netbook: Add empathy and gnome-terminal b64e331 Add procps from OE.dev d0d2cda telepathy: Sync recipes/versions with OE.dev 214e407 Add farsight2 and libnice from OE.dev 331cd03 gobject-introspection: Update revision e8618a1 Add gnome-terminal 714204f vte: Upgrade 0.16.9 -> 0.20.5 26b814e gstreamer, gst-plugins-base: Upgrade to 0.10.22 92da203 task-moblin-x11-netbook: Add natilus to images 2c0cee1 nautilus: Add based roughly on OE.dev recipe d398307 Add gettext 0.17 (from OE.dev) b2d1956 poky-fixed-revisions: Update matchbox-terminal SRCREV to get desktop file fixes aa50690 moblin-icon-theme: Add applications-games icon symlink a4d9c0c task-moblin-x11-netbook: Add gnome-settins-deamon, drop settings-daemon, matchbox-config-gtk and xcursos-transparent-theme 9e58848e gnome: Promote gnome-settings-daemon and dependencies into meta/. Also remove now unneeded custom staging functions c41f317 puzzles: Make the owl menu poky distro specific 6912b5d Make the owl menu poky distro specific d8869f3 pimlico: Convert recipes to gnome git 14321b4 mesa-dri: Fix patch list e96829a moblin-web-browser: Fix locked down patch bd11232 moblin-web-browser: Add DEPENDS on mutter-moblin 259498f moblin-revisions: Switch to mesa 7.5 and git versions of mesa-dri, xserver-xf96-dri-lite and xf86-video-intel 152b8d7 Various PR bumps d713443 json-glib: Disable introspection explicitly a19a75f Various PR bumps 69005b2 mutter: Depend on clutter-1.0 28e4e3b xserver-xf86-dri-lite: Update patches 7f47198 xserver-xf86-dri-lite: Update patches a0a9a2c mesa: Update mesa-dri git recipe and add recipe for 7.5 c57e2d6 x11-common: Disable mipmapped text for now until problems with mesa are resolved d57c0cb matchbox-session-netbook: Disable mipmapped text for now until problems with mesa are resolved 5959860 moblin-icon-theme: 0.3 -> 0.7 5c3a5e9 moblin-web-browser: Update patch against master 5a5fdd7 task-moblin-x11-netbook: Add droid-fonts to the image 5918fbc Add droid-fonts b8398e1 autotools.bbclass: Remove pointless inherit db549cd binconfig.bbclass: Remove pointless inherit 98c561b package_ipk.bbclass: Place configuration files in WORKDIR, not staging 3a680d2 bitbake.conf: Create the rootfs in WORKDIR, not directly in TMPDIR allowing creation of more than one rootfs at once dc6cb53 moblin-floating-revisions: Unlock clutter-1.0 version a1ff3f1 moblin-floating-revisions: Fix clutter-1.0 until fixed, free mojito 2532cdb moblin-fixed-revisions: Update anerley revision f63a149 moblin-fixed-revisions: Update mutter revision e61d88e moblin-fixed-revisions: Update clutter-gtk revision 4c94f1f moblin-fixed-revisions: Update mozilla-headless-services revision d1c6ef8 moblin-fixed-revisions: Update moblin-web-browser and clutter-mozembed 24ad1ad poky-fixed-revisions: Add SRCREV for new recipes 31d133c moblin-fixed-revisions: Update revisions f56add4 Merge branch 'mturquette/zoom2' of git://git.pokylinux.org/poky-contrib 083745a moblin: Convert to depend on clutter-1.0 3dac2aa task-moblin-x11-netbook: Add moblin-panels 775e051 moblin-panel: Add recipes for moblin-panel applications 37d2d56 moblin-floating-revisions: Add new SRCREVs and lock down mojito 2c259b0 clutter: Add recipe for 1.0 release branch f0b0502 clutter-mozembed: Update patches after source layout change 3a2a3d7 clutter-imcontext: Drop unneeded patch dccd40d moblin-web-browser: Drop unneeded patch f860c8f clutter-mozembed: Drop unneeded patch 63dffac linux-omap3-pm: OMAP3 kernel recipe to build Kevin Hilman's linux-omap-pm tree 5e88a54 zoom2.conf: initial zoom2 board support 51536c8 opensync: Remove further old code e2182c5 gmp: 4.2.2 -> 4.2.4 (parts from OE.dev) aa5cf6c moblin-web-browser: Fix pkgconfig dependency 952eb75 clutter-mozembedd: Update clutter 1.0 patch be8558d moblin-web-browser: Cope with clutter 1.0 beefb3d clutter-imcontext: Update patch ca9ae01 clutter-imcontext: Update SRC_URI revision information e9e5bf6 moblin-fixed-revisions.inc: Change clutter-imcontext revision to work around build issues b3194b9 gypsy: Fix DEPENDS on bluez 50c3af1 bluez-hcidump: Fix DEPENDS on bluez4 1aaa18b opensync: Remove old versions c45fda1 libopensync-plugin-syncml: Update to 0.38 e831c3e clutter-imcontext: Fix for clutter 1.0 de7a002 clutter-mozembed: Fix for clutter 1.0 9078d4a libsyncml: 0.4.7 -> 0.5.4 456d919 openobex: 1.2 -> 1.5 433c2d2 bitbake: Remove persist_data domain renaming code as it appears to expose sqlite bugs and data consistency issues ef9c095 bitbake: Make sure tables exist when renaming 64b0468 bitbake: Add a --revisions-changed commandline option to indicate when floating srcrevs have changed 231b5f6 bitbake: Add renameDomain and getKeyValues functions to the persistent data code 47fb695 bitbake runqueue: Add a minor speedup to the runqueue code a6d608e bitbake runqueue: Add a minor speedup to the runqueue code 9930c66 libid3tag: Improve pkgconfig file handling and use autotools_stage class 9e9663a packagehistory.bbclass: Make package history package architecture specific 10a989f pcmciautils: Make sure to use flex e1370cd connman-gnome: Convert to SRCPV 4909fcd libsynthesis: Drop patch since upstream has made similar changes now 31a29d2 pcmciautils: Bump PR after dependency changes since configure task can be influenced by this 388e267 clutter: Fix packaging of examples packages for 0.6 and 0.8 versions 52a7853 gail: Remove now unneeded custom staging function a079b4c mozilla-headless-services: Convert to SRCPV 8e73d3d web: Fix owlmenu patch ae6e0e2 pcmciautils: Add DEPENDS on flex-native 66c819f connman: Switch to SRCPV and bump PV 7369653 json-glib: Update version to 0.7.2 62d184e meta-moblin: Increase PV of SRCPV packages d7d49ad meta-moblin: Increase PV of SRCPV packages 60688d8 meta-moblin: Convert remaining git packages to SRCPV f9686c4 mozilla-headless: Allow PV to forwards 2e4fbb1 meta-moblin: Update SRCREVs 5c7facc mozilla-headless: Drop no merged patch 7370f7e connman: Update patchset dc50ffb clutter-mozembed: Update patches d776c57 poky-fixed-revisions.inc: Update and sync with meta-moblin revisions 1379a98 bitbake-dev: Remve the need for the cache for -e -b options 255f45b bitbake-dev: Improve showEnvironment functionality e912493 bitbake-dev: xmlrpcserver - disable some verbose debug eeb6556 bitbake-dev: Add taskdata infinite loop fix from upstream 60ba2a6 bitbake-dev: Fix cooker parser for cases there are no recipes 4ef8555 moblin-fixed-revisions.inc: Set revisions for libsynthesis and syncevolution 699ad05 bitbake: Make sure regexp patterns are consistent in providers.py d02379d bitbake: Add a cache around PACKAGES_DYNAMIC regexps to help performance a bit a6ca63d bitbake-dev: Note that python 2.6 is needed 94fe172 bitbake-dev: Catch up with bitbake changes fa5d458 bitbake: Factor some runqueue code into common functions making things more readable 502bd2e bitbake: Fix a bug in runqueue and optimise slightly further 8f5363d bitbake: Optimise runqueue recursive dependency calculations removing a bottleneck in world builds 133e9e6 moblin-floating-revisions.inc: Add libsynthesis and syncevoltion 9439e99 autotools.bbclass: Fix to work with configure files with leading whitespace ceb58d4 Add syncevoltion, libsynthesis d4d60b9 Add libpcre from OE.dev 43e9441 Add boost from OE.dev 4108e6f moblin-fixed-revisions.inc: Fix broken moblin-gtk-engine SRCREV 710d5b5 root_ipk.bbclass: Give EXTRAOPKGCONFIG a default value 32d5444 bognor-regis: Add missing DEPENDS on gtk+ efd0004 rootfs_ipk.bbclass: Don't generate the arch.conf file, provide this as a packaged file in future a0a195d moblin-floating-versions.inc: Allow clutter version to float again 6e58ebd Add moblin-feed-config-opkg (loosely based on angstrom recipes) 1893aa6 distro/moblin/include: Update fixed revisisons to a more recent known to work combination b4bc6f9 poky-eabi.inc: Use gcc 4.3.3 for all machines 6aa20d9 moblin-floating-revisions: Tweak to a working configuration 5d51a7e packagehistory: Make sure package is inherited beforehand to preserve the PACKAGEFUNCS variable fbee24d mutter-moblin: Add init script for plugins and populate the nbtk cache 3c47e34 libowl: Bump PR after staging changes 86e45a8 libowl: Use autotools_stage instead of broken custom staging function 915d918 libfakekey: Use autotools_stage instead of broken custom staging function 0a155f0 gnome.bbclass: Convert to autotools_stage b006d15 libart-lgpl: Use autotools_stage 966ae73 gtkhtml: Use autotools_stage ffe979a Add package_history.bbclass which checks generated package against previous package looking for problematic changes f5d0882 xserver-xf86-config: The simplified xorg.conf shouldn't use legacy drivers, it confuses the xserver with multiple keyboards 1df8cad moblin-floating-revisions.inc: Fix clutter revision to avoid breakage 433f504 bitbake-dev: Turn parsing into a server idle callback allowing the client to interrupt parsing and improving user interactvity. Also now specify whether async commands need the cache or not 67d169a bitbake-dev: Fix to work with python 2.6 by dropping the now uneeded get_request overloaded function and using timeouts instead 41ff874 matchbox-session-netbook: Fix mutter commandline 303b091 mutter-moblin: Update after metacity -> mutter rename 7649c9d moblin-floating: Revert to release xorg versions for now a2d95a6 mutter-moblin: Package plugin after metacity -> mutter rename ef41659 libmatchbox: Drop 1.7 (old version), use autotools_stage instead of broken custom staging function 2b78868 package_ipk.bbclass: Solve opkg-make-index locking problem using flock e7f1993 linux: Fix kernel.org mirror urls 1f86370 bitbake: Fix wget fetcher bug when only checking URIs and the download doesn't exist 1e63832 moblin-floating-revisions.inc: Set some revisions to make buildable config db9e25c moblin-fixed-revisions.inc: Prefer gtk 2.16.4 df5bef3 gtk+: Add 2.16.4 8aaffe7 drm/mesa: Bump PR due to pkgconfig changes f9f0753 connman: Drop now unneeded patch b8b7652 pkgconfig.bbclass: No longer default to pkgconfig_stage code (breaks libdrm) b2112e9 mutter: Update after recent upstream changes and renaming 87de4bd kexec: Update recentheader.patch to fix missing header 2133e2d moblin-floating-revisions.inc: Lock down mesa-dri for now due to upstream issues ff077bc libxext: Update SRCREV e2e8689 task-base: Remove sets usage, deprecated in python a909986 xorg: Update to a buildable configuration b3fd223 xextproto 7.0.4 -> 7.0.5 c6109ae pong-clock: Fix DEPENDS efdb254 connman-gnome: Add missing DEPENDS on gtk+ 3abe41b libx11-trim: Fix patches properly this time 3f8c6e6 inputproto 1.5.0 -> 1.9.99.12 4853c36 Drop libx11-trim patches 32cb1b0 moblin-gtk-engine: Add DEPENDS on gtk+ e2580df patch.bbclass: Fix up the environment for the patch resolution code d5a1374 bitbake: Add build_environment function for building an environment based on the data dictonary 03873c0 preferred_versions_xorg.inc: Update git revisions to newer released versions ea4be0e bitbake.conf: Sync with changes in OE.dev 41836f2 Add libext 1.0.5 and libxi 1.2.1 5377e4f libx11 1.1.5 -> 1.2.1 136fecf xorg: Convert SRCREV -> SRCPV 1661219 xserver-xf86-dri-lite: Convert to SRCPV d27a265 mesa-dri: Update to SRCPV 264534d moblin-floating-revisions.inc: Add libxcb and xcb-proto versions, let mesa-dri float 254c710 Restore libxcb 1.1.91 and xcb-proto 1.2 for now b93a3d1 patch.bbclass: Sync with OE.dev 54c44cb moblin-*-revisions.inc: Fix xf86-input-keyboard typo f79c285 moblin-menus: Only apply patch against fixed revision now after upstream changes 3c1434d clutter-gst: Update patch against upstream 409cca8 mutter: Add a note about zenity 0e64c40 mutter-moblin: Package extra theme files and add bickley to DEPENDS f0da36b moblin-web-browser: Adjust after upstream directory renaming 3f75df2 matchbox-netbook-session: Add pokyuser to the video group for access to dri e95e065 moblin-floating-revisions.inc: Add floating versions for xf86-video-intel, xserver-xf86-dri-lite, libdrm, xorg-input-keyboard, dri2proto and libx11-trim. Bump mozilla-headless source revision b05d6c2 moblin-fixed-revisions.inc: Set PREFERRED_VERSIONs for mesa-dri, xf86-video-intel, xserver-xf86-dri-lite, libdrm, dri2proto, xorg-input-keyboard 12f7cfe xserver-xf86-dri-lite_git: Drop DEFAULT_PREFERENCE a299d7b xf86-video-intel_git: Drop DEFAULT_PREFERENCE 9999c8e dri2proto_git: Update PV b523f9d scb-proto: 1.2 -> 1.5 817a58e libxcb: 1.1.91 -> 1.3 00145d9 icu: Add patch to fix issue with #elif and recent gcc versions 7cecb5b sqlite3: 3.6.10 -> 3.6.16 a36becf drm/mesa/xorg-video-inte/xorg-xserver: Update PV revisions 3cb7d38 poky-fixed-revisions.inc: Set SRCREVs for new meta-moblin packages bdc3ec1 mutter-moblin: Package extra new files 895455b xserver-xorg: Add RDEPENDS on xkeyboard-config since the world is kxb centric ebfc798 xserver-xf86-config: Clean up xorg conf file b69163a xkeyboard-config: Add sylink rule configure option to work well with xserver 48870f6 nbtk: Add DEPENDS on clutter-imcontext 579e850 moblin-web-browser: Update against latest SCM changes 03cd4f4 meta-moblin/conf: Set SRCREV for clutter-imcontext c8b8d8a clutter-imcontext: Add git version 0f05557 mozilla-headless: Add patches for revision a3e7c6626661 18b5cd7 clutter-gst: Fix to work with SRCREV 9db4a61a25677764bb927369c5c68ada958fb65c 96f56b2 patch.bbclass: Allow a patch to be applied or not applied against a specific srcrev c68dd4f moblin-bleeding: Add bleeding moblin configuration 33beaee moblin-floating-revisions.inc: Add floating SCM version definitons 72c1f1d moblin-fixed-revisions.inc: Add initial locked down versions e2dd24f task-moblin-x11-packages: Add newly added packages cd60a7e meta-moblin: Add recipes for most moblin beta components 19e1d23 bitbake: puccho: Fix glade file location ce55609 json-glib: Update gtk-doc workaround 0bf673e cdrtools-native: Add a patch from Richard to work around a glibc name conflict 7948c08 task-sdk-gmae.inc: update after bluez changes aa16a97 mozilla-headless: Add patch to remove bad rpath-link options from the linker commands 865381d lttng-control: Fix missing recipe ca2538b python-pygobject: Export STAGING_INCDIR and STAGING_LIBDIR to fix python-config failures 1c543df distutils.bbclass: Sync with OE 7901380 glibc: Add patch to avoid header issues after linux-libc-headers update 1acaab0 qemu: Fix a GL passthrough bug 1275962 lttng-control: 0.43 -> 0.67 7ea5d80 mutter: Switch to moblin repository, drop zenity requirement as its not used e595bc1 poky-autobuild-notifier.bbclass: Remove unneeded recipients 30f949e clutter-gst: Update patch against upstream changes 2300c64 mozilla-headless: Update configurefix patch e1ee329 mozilla-headless: Catch up with upstream changes 19592cf flac: Convert to autotools_stafe 826ed80 libsamplerate0: Convert to autotools_stafe 5dd9134 pkgconfig.bbclass: Fix typo b6913a2 libpng: Use pkgconfig_stage 60c4cb5 openssl: Use pkgconfig_stage 82f808f sqlite3: Use pkgconfig_stage d555a21 libgcrypt: Use pkgconfig_stage 65395e2 gtk+: Use pkgconfig_stage 3449884 dbus: Use pkgconfig_stage 1bc8523 gnutls: Use pkgconfig_stage 83e3a45 fontconfig: Stage .pc files 1247e2b pkgconfig.bbclass: Split out the staging function into its own class (pkgconfig_stage) 5d09a6b gnome-mime-data: Fix pkgconfig file path, use autotools_stage c3e0da1 libcroco: Convert to use autotools_stage 078d43d telepathy-glib: Use autotools_stage_all now (its been fixed) d950827 matchbox-panel-2: Convert to use autotools_stage c4fc9e0 libdaemon: Convert to use autotools_stage 2684b19 packaged-staging.bbclass: Fix for packages which don't stage anything 0134269 task-moblin-tools: Drop old lttng from tools package for now 7e0fe46 libsndfile1: Convert to use autotools_stage 5009d0b alsa-lib: Convert to use autotools_stage 6f8d9ed mpeg2dec: Convert to use autotools_stage c6b3f2d kexec-tools: Update after linux-libc-headers changes e7be8af hal: Use autotools_stage_all d0c00fd Redland is no longer a part of moblin so move to meta-extras 1dfc30d Remove depends on Redland as Bickley no longer uses it de8ba46 glib-2.0-native: Stage .pc files 1f9196b quilt: Mark as broken for packaged staging acceleration 3a309d2 packaged-staging.bbckass: Add option of setting PSTAGE_BROKEN_DESTDIR to disable packaged staging acceleration for packages with broken DESTDIR handling 1f4391b poky-moblin.inc/poky-eabi.inc: Update linux-libc-headers PREFERRED_VERSION d684d43 packaged-staging.bbclass: Turn off debug 5a4c688 packaged-staging.bbclass: Detect when we're using autotools_stage_all and don't hold the lock for as long when that is the case giving a significant performance boost with less lock contention and staging area file timestamp checking required 4d503cf native.bbclass: Drop INHIBIT_NATIVE_STAGE_INSTALL function and wrap logic in a do_stage_native() wrapper which packaged-staging can detect f80563c cpan_build.bbclass: Just write a do_stage function, INHIBIT_NATIVE_STAGE_INSTALL isn't particuarly useful 83d4a2b libpng-native: Just write out a do_stage function, INHIBIT_NATIVE_STAGE_INSTALL is pointless 1c549c4 linux-libc-headers: 2.6.24 -> 2.6.29 f187869 pkgconfig.bbclass: Drop strange unneeded inherit base 5234f57 preferred-xorg-versions.inc: Tweak xf86-video-intel version number e4a43a1 Add gnome-settings-daemon and libgnomekbd from OE but with fixed dependencies 4378f77 gnome-desktop: 2.26.0 -> 2.26.2 720909c libxklavier: 3.7 -> 3.9, stage correctly and fix pkgconfig file c4bc453 clutter-mozembed: Fix patch against upstream changes acc137c pulseaudio: Fix typo causing missing hal dependency a76e86b mozilla-headless: Take the revision from a SRCREVMOZILLAHEADLESS variable a70605c poky-fixed-revisions.inc: Set SRCREVMOZILLAHEADLESS dbdf1c7 bitbake: Disable sortable revision for now 12d6acb0 python-gobject: 2.12.3 -> 2.16.0 de68762 scripts: Update qemux86 to use the vmmouse driver, not wacom and find moblin images 824dce8 Add linux-rp 2.6.29 (qemux86 only for now) 2715db5 mozilla-headless-services: Add json-glib to DEPENDS 191dee9 clutter: Convert SRCREV -> SRVPV 8dae438 bickley: Depend on clutter-gst, not clutter-gst-0.8 522cffd bitbake: Add PN to SRCREV keyhash in the persistent database to avoid conflicts between pacckages (from upstream bitbake) 5f37dfd Add meta-gnome overlay information for gnome packages which aren't part of standard Poky (based on OE.dev but with additions/modifications) d10060c gtk-doc: Sync with OE but also convert to use BBCLASSEXTEND with overrides magic a1830ff libgnomecanvas: Sync with OE.dev (and remove old version) 67955bf gail: Sync with OE.dev 8643766 bitbake.conf: Add definition of SRCPV so git revisions can be incrementaly numbered. Influence for this comes from Openmoko. 1e71be8 qemux86: Add xf86-input-vmmouse, swrast dri fallback, switch back to mesa-dri as the GL provider and drop synaptics input driver be24aaa qemu: Drop a ton of old now mostly inappropriate patches and update the qemugl passthrough patch 3ac19a4 xserver-xf86-config: Set a netbook suitable resolution 9c57e46 xf86-input-vmmouse: Add RDEPENDS on xf86-input-mouse f4d34a0 qemugl: Use mesa-dri as the main gl provider and just swap libs at runtime 111ea0d xorg.conf: Use vmmouse for qemux86 34a8958 Add xf86-input-vmmouse c676e81 mojito: Drop unneeded gconf keys and remove undeeded sqlite3 dependency f1619b3 packaged-staging.bbclass: Fix accidental debug addition 7c0eb93 gettext: Fix library packaging so -dev packages aren't pulled in a25e703 mojito: Fix gconf name typo 1a21e6e packaged-staging.bbclass: Add support for mangling .la files so the staging directory path can change. Someday libtool will support sysroot but until then... 093a11c mesa-dri: Set to use the glx state tracker and don't package the EGL librbary versions in git version c680236 dri2proto: Fix strange filename 4f3f5e4 formfactor: Add verison for menlow (leave cursor visible for now) e9832b1 xf86-video-intel: Disable xvmc explicitly and don't use dolt in the git version 176fad8 xf86-input-keyboard: Upate git version PV c74b9ae Add xkeyboard-config a8427b9 xserver-xf86-dri-lite: Update git recipe (dependency on xkeyboard-config and need to enable dga for the intel 2D driver 46cbf48 xserver-xf86-common.inc: Make sure directory exists before installing 497fe49 xserver-xf86-config: Set AllowEmptyInput to no fixing chaned defaults in modern xservers ae950c8 gtk+: Fix a string referencing bug (path sent upstream) 0223f45 unifdef: rename getline function to avoid conflicts with stdio.h definitions from glibc 9bb7f47 pulseaudio: Fix packaging of core/common libraries and stop development libs from entering images 72f6458 task-moblin-apps-x11-pimlico: No need to include web-webkit in the images anymore 412d815 connman: Start after dbus and use full path for binary in initscript 4ae5537 bluez: Update bluez4 version from OE.dev and drop bluez 3.x 3051258 task-base: Switch to bluez4 6a11cf7 bitbake.conf: Set PERSISTENT_DIR for the cache location so its common to all builds of different machines b22b970 qemugl: Include headers and a pkgconfig file (from mesa) and add libxfixes to DEPENDS 87b512f connman: Start earlier in the init sequence ea26c21 xserver-xf86: Split xorg.conf from main xserver package 185d8b0 udev: Allow standard users to access shared memory c5e3def xf86-intel-video: 2.7.0 -> 2.7.1 2f6ad80 linux-moblin: Update menlow defconfig 8df390e poky-fixed-revisions: Remove duplicate (and incorrect) mutter SRCREV entry and bump psplash 421 -> 422 05cf769 dhcp: Use autotools class and remove broken configure call 7951647 xserver-kdrive: Add missing DEPENDS on bigreqsproto xcmiscproto f2a9705 sanity.bbclass: Really fix TMPDIR change warning message 05a296b scripts/poky-env-internal: Add BB_SRCREV_POLICY to BB_ENV_WHITELIST fc9d919 busybox: Add missing path in uducpc script 9b9152e bickley: Add runtime dependency on xdg-user-dirs a47ba31 Add recipe for xdg-user-dirs b63ec22 pulseaudio: Backport some patches from git trunk and add module-alsa-card to required modules list ed0dea8 pulseaudio: Add hal-detect module and package pactl binary in the server 6ed027a xserver-nodm-init: Add ability to run X as a non-root user 8f32595 x11-common: Remove unused Xinit file, remove hardcoded user assumptions 5c96414 sudo: Add from OE.dev with tweaks to SRC_URI 14f39f3 connmand: Drop patch merged upstream ba7f2cc initramfs-live-install: Update script to handle udev automounter issues and mount point name that doesn't clash 91bbdf2 xserver-xf86-dri-lite: Add missing DEPENDS on dri2proto 4e1e405 xserver-xf86-dri-lite: Add missing DEPENDS on dri2proto 5adadc3 dhcp: 3.0.2 -> 4.1.0 1dfcc21 connman: Various fixes so it starts working properly c321cda u-boot-omap3: Fix SRC_URI 4f5d44c initscripts: Check link exists in volatiles script 5638a3e poky-fixed-revisions: Bump psplash SRCREV 5381d16 json-glib: Fix SRCREV fbb79a7 poky/moblin-fixed-revisions.inc: Make sure SRCREVs are set appropriately 35bb05b task-moblin-x11-netbook: Drop missing matchbox-session-netbook for now, add bickley and mojito 79850d0 Add redland 8818107 busybox: Disable parallel make 236b0c2 packagekit: Disable browser plugin b0ced1c netbook/menlow: Don't generate jffs2 images by default 81acc39 poky-image-sdk: Drop dbg-pkgs, they're just too large to make sense all in one 2f67d40 moblin-image-sdk: Drop dbg-pkgs, they're just too large to make sense all in one e8201f5 clutter-cairo: From clutter 0.9 onwards, cairo is part of clutter itself 6a444ca gst-ffmpeg: Bump PR after configure changes 9e73dde task-poky-tools: Drop exmap for now 2ed6c62 poky-fixed-revisions: Update SRCREVs for clutter packages 342a1a5 monint: Don't try and strip bianries 14a5b7d gst-ffmpeg: Disable pic due to register issues (fixing build problems) e0839cf world-broken: Exclude exmap-console and xf86-video-psb from world builds fb26ad8 clutter-0.6: Fix symbol conflict with libc headers a844e01 rt2860: Drop since there is a better version in the kernel staging tree now 3c759ae clutter-mozembed: Add missing DEPENDS on clutter 7556381 qemu: Fix for machines without zlib headers/library installed 362d388 alsa-utils: Fix ncurses build failures 4e3afe5 qemu: Switch to git and version 0.10.5 79b7a56 opkg: Disable Werror, too many false positives with gcc 4.3.3 d874966 opkg-sdk: Bump PR after recent changes 619c133 alsa-tools: Add missing DEPENDS on ncurses ec4d79d sanity.bbclass: Fix the warning message above tmpdir moving to point to the correct path 8587862 opkg: Fix sighandler compile error (patch from upstream) 525edb3 opkg: Fix sighandler compile error (patch from upstream) 7f4d8d1 settings-daemon: Add sound theme gconf key handling 2b6bce3 speex: Make sure all libraries are packaged f06e99d as-needed.inc: Blacklist pulseaudio due to its circular librbary dependencies 98d05be moblin-fixed-revisions.inc: Fix hal-info version typo 856af3f libcanberra: Add patch to fix failures when the fallback theme is missing 7d3cc76 task-moblin: Add alsamixer and pulseaudio-server 45543f7 consolekit: Add 0.3.0 from OE but disable policykit interaction d7568d3 pulseaudio: 0.9.12 -> 0.9.15 plus several build/packaging fixes and enabling dbus/consolekit/hal/x functionality ddc0eec e2fsprogs: Don't install blkid as its now provided by util-linux e6a3149 gcc: Add 4.3.3 and switch to for Moblin f887fcd linux-moblin: Improve defconfig for netbook af4155d connman: Install test scripts 7a3ad27 udev-141: Add missing udev rules edc9a00 qemu-sdk/qemu-native: No longer need to depend on gcc 3.x 3af2755 pulseaudio: Allow empty main package for dependency chains 5b5ed4c libatomic-ops: Allow empty main package for packages dependency (library is only static) 114158d mozilla-headless: Make sure JS_THREADSAFE is always set c431f2b libgdbus: Fix SRC_URI f5cf7ef alsa: Upgrade to 1.0.20 6c5d819 mozilla-headless: Hardcode compiler options for now 25185d5 xserver-dri-lite: Drop dri2 version and enable dri2 by default 14cba80 udev: Add 141 d6cfaee util-linux: Fix compile of libblkid (from patches from OE.dev) 99f66c1 linux-moblin: Enable staging drivers in the kernel b0eb2f4 moblin-fixed-revisions.inc: Use the more recent dbus 7d2f5ce mozilla-headless: Bump revision used 40afa0a initscripts: Since ld.so.cache is in /var/run, make sure the version in /etc/ is used as a fallback 18f401d connman: Improve the configure options cda31eb clutter-mozembed: Package some missing files e7f4dd8 psplash: Bump SRCREV 412 -> 420 8534b09 dbus: Add 1.2.14 b15cfd5 ldconfig-native: Make it work for 32 bit targets from 64 bit build machines a811131 base.bbclass: Update to work with systems where install won't overwrite files 514afcb xf86-video-psb: Fix SRC_URI bc1c9bc world-broken.inc: Fix syntax e297c2f world-broken.inc: Add helix-libs and clutter-helix c5c33ef libcanberra: Pass the --disable-ltdl-install configure option and DEPEND on libtool 6c59a75 hal-info: 20080508 -> 20090414 24bd005 hal: 0.5.11 -> 0.5.12rc1 e010c6c e2fsprogs: 1.41.2 -> 1.42.5 e2eaac6 util-linux 2.12r -> util-linux-ng 2.15 02def14 mozilla-headless: Remove strange hardcoded paths 92facff poky-moblin.inc: Set gcc versions correctly a8f6bcf glibc: Add support for /etc/ld.so.conf.d/ files dd0b54d samba: Fix header file to include signal.h, fixing compile failures df0d349 poky-fixed-revisions.inc: Update glib-2.0 versions 4d4c8f5 mozilla-headless: Add an ld.so.conf.d addition to make sure its libraries are found 27aeae5 glib-2.0: 1.18.1 -> 2.20.2 81edb3c x11-common: Add support for starting xdg autostart .desktop files 5c11f31 task-moblin-x11-netbook: Drop networkmanager-applet 9356620 xdriinfo: Use virtual/libgl instead of mesa 814700d Move libsampletate and libsndfile from meta-openmoko -> meta-moblin b8abc2d libnotify: Add missing DEPENDS on dbus-glib 3593279 poky.conf: Switch from libx11-diet to libx11-trim for less headaches 17ab356 poky-fixed-revisions.inc: Set some extra SRCREVs f067655 world-broken.inc: Add gobject-introspection, drop helix as COMPATIBLE_HOST should take care of that b21b339 clutter-helix: Set COMPATIBLE_HOST e223f6a libx11: Exclude from world builds so muliple versions aren't built. When needed the correct version will be automatically built 5fcdc32 mozilla-headless: Bump SRCREV 5e986a2 bickley: Add DESCRIPTION 0808818 conf/distro: Update PREFERRED_VERSIONs 0d3b185 gnutls: Disable guile b4980e3 clutter: As standard DEPEND on virtual/libgl, not mesa 6aa642c qemugl: Fix DEPENDS on virtual/xserver to be on virtual/libx11 0f3cf65 connman: Update to point at the correct upstream 4519a40 connman-gnome: Add 8f66ea0 icon-naming-utils-native: 0.8.2 -> 0.8.7 0e96baf Add libffi 3.0.8 86984e2 e2fsprogs-native: Actually stage the useful binaries 40bb7a3 networkmanager: Update to work with recent libnl e423ead gtk+: Install the gtk-builder-convert python script somewhere where the system will find it 8cec085 libnl: 1.0-pre8 -> 1.1 ff59ace clutter-mozembed: Add missing dependency on mozilla-headless-services b7a77fa bickley: Add missing dependency on samba for libtdb and package dbus services files 57b5ef0 libnotify: Add from OE 6cce850 samba: Add from OE but split libtdb out into its own package cd5fa1e telepathy-glib: 0.7.11 -> 0.7.29 c2ac572 networkmanager: Add DEPENDS on policykit 9020811 gobject-introspection: Add an initial version, not functional yet 29fb246 netbook: Disable rt2860 for now e6d9631 mozilla-headless: Convert to hg and add mozilla-headless-services 59bb17f clutter-gtk: Disable introspection ffc7e98 clutter: Disable introspection 7af06db clutter-mozembed: Update patch against latest git f5e55e0 mojito: Add missing dependency on gnome-keyring fe45700 libccss: Use upstream for source 81ff3a9 bitbake: Update to work without warnings with python 2.6 22a4c4d gtk+: Append to PACKAGES_DYNAMIC, don't overwrite the default 542eb3b eee901: Drop eee901 as superseeded by netbook 9539b49 gnome-keyring: 2.20 -> 2.26.1 e17a3ce libtasn1: Add from OE.dev with improvements for Poky d9e6cab mutter: Disable introspection for now f6cb822 twitter-glib: Disable shave and introspection to avoid build breakage 9db2b57 python-native: Fix the _ctypes module (and remove some dead files) 06e878c sato-icon-theme: Remove recursive include. How this never errored before now, I have no idea... c009172 bitbake-dev: Sync with upstream 107a9da bitbake: Merge further fixes from upstream 1.8 branch 1ca9806 bitbake: Sync git fetcher with changes upstream 62d3720 scripts: Remove autobuilder scripts 44a8819 bitbake: Make sure existing environment variables are properly exported 6a6f5cc Merge branch 'marcin/trunk' of git://git.pokylinux.org/poky-contrib 0adc74b beagleboard: added 2.6.29 kernel from OE a8e1e02 xserver-dri-lite: Add version 1.6.0 4f83464 handbook: Add more information about extending Poky 3927e38 Merge ssh://gitserver@git.pokylinux.org/poky d65be3d initramfs-live-boot: Fix script when multiple mounts are present and the last one isn't the correct one ed419e2 tasks-netbook: Catch up with metacity-clutter -> mutter renaming 2096c31 bitbake.conf: Always add full debug information and increase the default image slack space b2a619b metacity-clutter: Rename to mutter and point at the new upstream ef5600c conf/distro/include: Update various versions after recent changes 912a522 libunique: Add 1.0.6 d880beb clutter: Refresh patch bb2ce06 clutter-mozembed: Refresh patch 622368d mojito: Package the dbus files a1b04df mozilla-headless: Use the upstream hg repository now and add missing DEPENDS on libidl 9399253 libsoup: Add missing DEPENDS on sqlite3 5c185c4 json-glib: Make sure the autotools m4 files are found, unbreaking the build 5264d4b bitbake: Fix a bug in the hg fetcher 5df6dea puslseaudio: Upgrade to 0.9.10 12856d9 sqlite: 3.6.7 -> 3.6.10 1370ba3 libdrm: Package test utils 31f3e71 xf86-video-intel: 2.6.99.903 -> 2.7.0 ad0c05d libnl: 1.0-pre6 -> 1.0-pre8 f114fd2 linux-moblin: Switch to 2.6.29.1 e23c356 libjana: revision 732 -> 749 9c4f33a mojito: Disable PARALLEL_MAKE, the autofoo is broken around the generated files 80b4dd2 xserver-xf86-dri-lite: Use the virtual mesa dependency instead of hardcoded mesa-dri d620ad6 libdrm: 2.4.4 -> 2.4.7 1b4c8ad xf86-input-evdev: 2.1.1 -> 2.2.1 52cd772 xf86-input-synaptics 0.99.3 -> 1.1.0 1106f8a xf86-input-synaptics 0.99.3 -> 1.1.0 3f438ba xf86-intel-video: Drop now unneeded dri2 version ebc082e xf86-video-intel: 2.6.0 -> 2.6.99.903 dfcd318 mesa-dri: Use master branch for git version 25dc55d mesa: Drop stale files 7d5759a mesa: Upgrade 7.2 -> 7.4 5a2365d mojito: Update FILES after recent source changes bdc077b libsoup-2.4: Add 2.25.29 (still 2.4 ABI) 01b99d5 Add libproxy f94bd6b package bbclass: add an 'allow_links' param to get symlinks packaged, usefull for splitting out libraries 58ffd5a base.bbclass: Add subdir feature to SRC_URI entries (from OE) 9b6df99 e2fsprogs-native: stage everything like it is done wuth non-native recipe 784e113 libice: added native version a102c05 libsm: added native version 3c8898c libxt: added native version 7a5b041 Merge commit '84f0e3128b1ac1d2299e0a3ebb7117c775dfe16f' 88d8974 linux-moblin: Build fix 49ca46f Merge ssh://gitserver@git.pokylinux.org/poky 00dccf4 linux-moblin: Update psb driver 84f0e31 dbus: make dbus-native do not use update-rc.d (removes harmless warning) caa983d checksums.ini: added some new entries 861933a checksums.ini: merge entries from BUG Linux 440ac10 meta-moblin: Add bickley, json-glib, libccss, librest, moblin-menus, twitter-glib a397fbc linux-moblin: Update patches ccfff6c Merge branch 'fix-opkg-build' of git://git.lespiau.name/poky 1e4f72f linux-moblin: Add 2.6.28+2.6.29-rc2 version 10f46e0 linux-moblin: Cleanup patch whitespace 53973f2 opkg: fix build with gcc 4.3.2 09bf864d libidl: 0.8.3 -> 0.8.12 be10b46 base.bbclass: Use explode_deps from bb.utils and remove the obsolete base.bbclass version c2c16bc base.bbclass: Move package metadata handling functions into their own class file 0903f6a linux-rp: Update qemuarmv6/qemuarmv7 defconfigs a6789f5 libdrm: Cleanup poulsbo patch slightly further 637183e qemu: Update 6374 -> 6477 to fix absolute position device issues 942c232 mesa: Drop 7.0.2 f06b34b libdrm: Add patch for poulsbo 5638322 menlow: Update to use the same xserver/mesa as netbook 31ab259 xf86-video-psb: Update to work with modern xservers a1b17ee linux-moblin: Update psb driver patch cc01c77 meta-moblin: Drop now uneeded libdrm-psb e5f1566 meta-moblin: Drop now uneeded xserver-xf86-lite bcf14a3 sanity.bbclass: Fix error message when not having g++ on build af90308 shell.py: stage is called populate_staging 80f0032 poky-moblin.inc: Switch to gcc 4.3.2 5a9a480 netbook/menlow: Add core2 as an architecture 6147dc3 menlow.conf: Prefer linux-moblin as the kernel 8e2451f linux-psb-modules: Drop as now uneeded c9f9486 linux-moblin: Add patch to add the psb driver directly to the kernel instead of being standalone 837119e linux-mid: Drop as linux-moblin now supports menlow 514aa59 libdrm-psb: Update to use a 2.6.27 kernel and simplify patches 4b7ef3d Add clutter-mozembed 53314a0 Add mozilla-headless 463c2d6 metacity-clutter: Add cross compile patch so compiles on x86_64 work for i386 targets d9c8f31 metacity-clutter: Fix after recent updates deadb52 mesa: Exclude mesa packages from world builds to reduce breakage e1d6280 bitbake.conf: add IMAGE_ROOTFS_SIZE (from OE) edbdbd1 exmap-console: Add missing DEPENDS on glib-2.0 (from OE) 4d7b70c base-files: Add /etc/shells file c92acf4 image.bbclass: Use IMAGE_ROOTFS_SIZE if the image will fit into it and only add extra space if the image is too small (ported from OE by hrw) 7b6ad5b Fix postinstall scripts not to use IMAGE_ROOTFS direction by use D instead. Based on a patch from Carl Simonson <simonsonc@gmail.com> 75f3ca5 networkmanager: Add a missing configure dependency b74734d poky-image/moblin-image.bbclass: Fix a typo noticed by Mike Turquette 063f2ef Add 2008q3 CSL toolchain support aa8de0e mozilla.bbclass: Fix pkgconfig usage for pkgconfig sysroot 072545b scripts/poky-qemu-internal: Add support for GL passthrough in qemux86 images b7fd2b7 qemux86: Convert to se xserver-xf86-dri-lite db3dd3a qemu: Upgrade to svn revision 6374 for working passthrough a13faf3 qemugl: Install the library in the standard location d2ebf91 Add xf86-video-vmware driver e121f9e scripts/runqemu: Factor image location code into a shell function 0e22433 qemu: Add x86_64-softmmu target 1884c24 clutter: Revert to a revision known to work for various subpackages 0d5a260 qemu-sdl: Remove i386-linux-user target for now 544361e clutter: Fix various missing DEPENDS on clutter and update clutter SRCREV b1bf5e4 poky-fixed-revisions.inc: Add SRCREV for qemugl ec39185 Add qemugl f6ea2f8 qemu: Add host gl support for qemu x86 7fc734e world-broken.inc: Add minimo, helix-libs and xlogo 2da9038 poky-floating-revisions: Disable PREFERRED_VERSION statements for now bb98685 bitbake: fetch/init: Add 'HOME' to list of variables exported when runnig fetcher commands 294a1ee libxi: Increase SRCREV 41523a7 clutter-0.8: Increase the git revision used 6b375ac libjana: Switch to gnome svn and update the revision 4614e87 Drop matchbox-session-netbook ae80a42 meta-moblin: Drop various matchbox packages from 'moblin' images f0a876b Add latencytop 0.4 0e7c836 meta-moblin: Convert from recipes to use the autotools_stage class cd9ad54 meta-extras: Convert from recipes to use the autotools_stage class 4cdb611 Drop sqlite3 from meta-extras e9ee1e5 xserver-xf86-dri-lite: Add patch to disable dolt and fix build breakage b010c24 poky-fixed-revisions.inc: Update xserver-xf86-dri and inputproto revisions 05c1fab menlow: Add xf86-input-evdev to list of drivers to load d97dbdd xf86-video-intel: 2.4.2 -> 2.6.0 de44ac8 conf/distro/include: Update PREFERRED_VERSIONS after various recent changes 2db2959 libxcb: Add xcb-proto-native to DEPENDS d290698 randrproto: 1.2.2 -> 1.2.99.3 74a6e3e dri2proto: 1.1 -> 1.99.3 b974901 libxrandr: 1.2.3 -> 1.2.99.4 e022281 xf86-input-mouse: 1.3.0 -> 1.4.0 ef24ac2 xf86-input-keyboard: 1.3.1 -> 1.3.2 8ed9449 xf86-input-synaptics: 0.15 -> 0.99.3 7c73052 xf86-input-evdev: 2.0.4 -> 2.1.1 d7c383f xcb-proto: Add 1.3 (non-default) 1ce1d4d libxcb: Add 1.1.91 and 1.1.93 versions to replace 1.0. .93 can't be default as the xserver doesn't support it yet 98fa049 sdk.bbclass: Ignore -sdk suffix warnings for gcc-cross-sdk 7e0dfa2 Drop unneeded tune-atom.inc file 5d12760 libdrm: 1.4.0 -> 1.4.4 68cc158 moblin-fixed-revisions.inc: Drop unneeded versions settings f3edcec hal: Delete old hal and hal-info versions 29fd473 util-macros: Add hack for the loss of the xaw.m4 file until xorg-apps are released which don't use it b10b195 dbus-glib: 0.76 -> 0.78 932fc6a apr: Disable checks for a system libtool, we don't need that 123b099 task-moblin-x11-netbook: Bump PR ef0b90b gupnp: Update to latest releases, add gupnp-av, stage the binding tool into native staging (its a script so thats allowed) 0acce24 Drop linux-moblin obsolete kernels f51973f apr/apr-util: Fix some other config path gremlins breaking builds a43863b apr: Remove workdir path references from installed apr files 669aeb7 dbus-glib: Use the binding tool from PATH 1daca59 subversion 1.4.5 -> 1.5.5 9602318 task-moblin-sdk: Add subversion and git eb72830 Add apr, apt-util and subversion based on recipes from OE with tweaks from Josh/me 3023816 image.bbclass: Generate the image after running the kernel modules and ldconfig commands, not before b402db4 gnome-vfs: Only apply the RRECOMMENDS to the main package, not for example the -doc package 0341841 update-rc.d.bbclass: Only change the main package RDEPENDS, not all the RDEPENDS as this affects things like the -doc packages 8101d6f gcc: Disable patches not needed for 4.3.x bd43b80 git: Add a non-native git package for moblin-sdk b040233 omap3-sgx-modules: recipe to build sgx modules using the kbuild system from the GPL'ed imgtec sources (from OE.dev with added COMPATIBLE_MACHINE) 3ec9a7d bitbake: Fix wget fetcher to better handle urls with ; followed by parameters in the url fa89b73 scripts/poky-autobuild-moblin: Add moblin-uricheck target support a65bb50 dbus-glib: Fix introspection configure option 48b487d e2fsprogs: Add darwin override for EXTRA_OECONF 7b281a3 native.bbclass: Add virtclass-native to OVERRIDES and use in fakeroot to function correctly 34fa658 dbus-native: Bump PR f0b6ce8 dbus-glib: Factor into a common .inc file and cleanup the recipe using autotools staging 0d8a8c8 dbus-native: Generate the dbus-bus-introspect.xml so dbus-glib recipes don't have to find the dbus source. Pass the location of the file to dbus-glib* with the --with-introspect and drop the now unneeded patch eae7eb5 scripts: Update qemu scripts with changes in recent qemu calling conventions and the switch to ext3 images e45a4a8 libx11-sdk: Provide the correct virtual package e247f22 sdk.bbclass: Don't special case virtual/ dependencies as this breaks things like libx11 fb9196d native.bbclass: Handling remapping of PROVIDES similar to sdk.bbclass 55be33f qemu: Upgrade to latest svn removing a ton of merged patches (yay) 5273e39 metacity-clutter: Add intltool to DEPENDS 86ee539 metacity-clutter_git: Set correct gconf keys after installation for compositing. 78f5f8d Various fixes after recent commit breakage bb2a5c9 glib-2.0: Revert glib-2.0 S variable removal f091e6c Remove unneeded S variables 467b5bc coreutils: Convert to BBCLASSEXTEND 66b6014 fakeroot: Clean up and convert to BBCLASSEXTEND 8bc4105 fakechroot: Clean up and convert to BBCLASSEXTEND d0cff01 flex: Clean up and convert to BBCLASSEXTEND a4ef0bb e2fsprogs: Drop stale unused patches, clean out unneeded metadata 1dc1601 expat: Upgrade native/sdk versions to 2.0.0, use BBCLASSEXTEND, drop 1.95.7 version, clean up recipe massively aa82010 bzip2: Drop 1.0.2 version 575235f curl: Get rid of old fashioned broken stage functions c4a39f6 zlib: Clean up recipe and use BBCLASSEXTEND for native and sdk versions 64c7fa4 xorg: Remove unneeded XORG_PN settings and replace some native/sdk recipes with BBCLASSEXTEND 772ec7d bitbake-dev: Add BBCLASSEXTEND support ee0faf1 native/sdk.bbclass: Handle DEPENDS and PROVIDES fields magically, remove a number of xorg sdk and native packages replacing with BBCLASSEXTEND ade351e bitbake: Add in code to support the BBCLASSEXTEND variable. Virtual native/sdk recipes then become possible 28fd9da bitbake/cache.py: Simplify logic 250b021 bitbake/BBHandler.py: Move handler finalisation code into a separate function bb80287 bitbake: Sync with upstream after 2.8.12 release 8fa334d dbus: Drop old 1.0.* and 1.1.* versions 23486c1 gtk+: Drop old 2.10.* and 2.13* versions cf093fa autoconf: Add 2.63 (leaving GPLv2 2.61) leaving 2.61 as default since glib-2.0 breaks with 2.63 (site files aren't being included) 2d749dc xorg-*common.inc: Use BPN instead of PN f8a2303 Drop now unneeded FILESDIR and S variables from various recipes 61d8ea7 bitbake.conf: In SPECIAL_PKGSUFFIX -cross-sdk must come before -cross and -sdk or it doesn't work as expected 62f16a6 libtool-native: Stage libltdl headers (from OE) 8ce2175 Add m4 1.4.12 but leave 1.4.9 as its GPLv2 ba2b8cb automake: 1.10.1 -> 1.10.2 4bb83f1 quilt: 0.45 -> 0.47 01e0758 libtool: Drop old version 1.5.10 01793c5 base.bbclass: Remove pointless expand call 3ab2ff7 base.bbclass: Add metadata revision handling for git (from OE) 1d89595 base.bbclass: Add unpack handling for .jar files (from OE) 6552990 bitbake.conf: Default to an IMAGE_FSTYPES of tar.gz instead of the less useful jffs2 01ceeed bitbake.conf: Rename DEBPV to EXTENDPV to sync up with OE 94c895a bitbake.conf: Create BPN variable containing the pruned version of PN with various suffixes removed and use this for S and FILESPATH. This uses naming from OE but with improved code fe0e39d pax-utils: Upgrade 0.1.13 -> 0.1.19 93df528 binutils: Drop versions 2.17 and earlier 3fc0469 bintuils: Add 2.19 (from OE) f8e4a75 poppler: 0.6 -> 0.9.2 9d88f99 resolvconf: 1.42 -> 1.43 7695704 bitbake: Add bb.utils.prune_suffix() 2c70bf4 bitbake.conf: Drop stale unused MANIFEST variable 102a842 libsm: Add missing DEPENDS on e2fsprogs for uuid 3f4a6d8 gcc: Drop unneeded patch 1fc2929 libpciaccess: Drop unneeded patch f8daac5 pciutils: Upgarde 2.2.4 -> 3.0.3 78456fa strace: Fix SRC_URI 1357f75 strace: Upgrade to 4.5.18 83494fc sqlite3: Upgrade to 3.6.7, drop old versions 141b7fc xextproto: Remove patch added upstream and now unneeded 71fc43d xorg-proto: Upgrade various packages to the latest releases 711650f poky-fixed-revisions/preferred-xorg-versions.inc: Update PREFERRED_VERSIONS to reflect changed package versions in recent updates 2a94861 xorg: Update various packages to the latest releases and remove old versions 5954823 task-moblin-boot: Fix COMPATIBLE_MACHINE issues f08f0ff cairo: Remove now unneeded do_stage function ece77e6 pixman: Drop old version fd0f817 pango: Drop old versions 82cdeb2 atk: Remove old versions fd37f94 glib-2.0: Drop old version d1b0e1e Drop unneeded mtn2git files 72a7dc3 dpkg: Drop old version 4f2bb36 cairo: Drop old versions 90f97b6 moblin-images-live: Move common code to the .inc file 323ba21 moblin-image-live: Drop since this is the same as moblin-image-netbook-live d170d89 check: Drop old version and use autotools_stage 433fca7 Set COMPATIBLE_MACHINE for menlow recipes 0f4433e task-moblin-x11-netbook: Bump PR c8a24cd meta-moblin: Add initial menlow support 459a7f4 poky-fixed-revisions.inc: Add entry for mesa-xlib ae64de5 mesa: Set PROVIDES correctly and alow building of an empty PN package for now fcb1791 classes/autotools_stage.bbclass: Add autotools_stage class to further recipes to simplify recipes using standard autotools e380b48 classes/autotools_stage.bbclass: Add autotools_stage class to simplify recipes using standard autotools f9f549d distro/poky.conf: Disable svn revision handling since svn is obsolete and no git revision handling function is present yet 428e022 image-minimal-initramfs: Add base-passwd to images to avoid udev complaints 48c50c2 hicolor-icon-theme: add size/stock directories to hicolor for compatibility with OpenMoko a42718c scripts/poky-autobuild-postprocess-moblin: Share toolchain/sdk output 01121bc clutter: Fix enable_tests patch for recent changes 0f918b4 scripts/poky-autobuild-moblin: Update to share moblin-incremental images be30e75 task-moblin-x11-netbook: Allow the user to append to the list of moblin packages c29128b poky-fixed-revisions.inc: Fix whitespace problem 81ddcf3 poky-fixed-revisions.inc: Fix tidy SRCREV 48d2165 poky-fixed-revisions.inc: Set SRCREV for tidy, aaina and table properly fc859a8 clutter: Convert from svn to git c3f6d46 scripts/poky-autobuild-moblin: Add rm_work dd34449 metacity-clutter: Fix .pc file issue bc1ce63 scripts/autobuild-moblin: Configuration fixups 1dd27ec librsvg: Set a SRCREV (and also for tasks) 1acc612 poky-fixed-revisions.inc: Update metacity-clutter SRCREV 0dd091d librsvg: Add 2.22.3 and svn versions 5486cc4 meta-moblin: Add gnome-menus 2.24.0 (from OE) 36636a9 meta-moblin: Add libjana (from meta-openmoko) 57ba4a2 meta-moblin: Add taglib 1.5 fe338b3 pimlico: Update pimlico packages to reflect the new upstream svn urls 7ffb598 intltool: 0.37.1 -> 0.40.5 ee1f065 bitbake: Make sure the git remote head viewer preserves the username f9dbbf4 gitignore: Update entries to match various meta repositories 7504867 hicolor-icon-theme: ship a custom index.theme which includes the Hildon icon sizes 9ca832b openmoko-icon-theme-standard2: add a compat package which symlinks the new icons into hicolor da743fb scripts/poky-qemu-internal: Add usb commandline to nfs mounted images ffdec42 bitbake/bitbake-dev: Sync with upstream 4be017e poky-external.inc: No need to the TARGET_*_prepend directives after the external-poky-toolchain recipe changes f1bac68 external-poky-toolchain: Add include and lib files to the staging sysroot removing the need to link against two trees at the same time 73b2200 handbook: Correct a bunch of misc typos. bcb58a0 meta-toolchain: Fix problems introduced by prefix variable value changes 1732e55 Bump matchbox-desktop srcrev c1a12b7 Adds username support to the git fetcher, and exports SSH_AGENT_PID + SSH_AUTH_SOCK a8b0e8a scripts/poky-env-internal: Add SSH_AUTH_SOCK and SSH_AGENT_PID to BB_ENV_WHITELIST 63c279e Move check, policykit and xerces-c to meta-moblin 8a7ecd5 handbook/faq.html: Fix cut and paste error f6c65b8 distro/include: Add poky-external-csl2007q3 b3e49b6 external-csl-toolchain: Add 2007q3-51 and update 2006q3-27 7cd5d53 handbook/faq.xml: Add entry about Ubuntu Intrepid 5b44f42 udev-124: Fix firmware loader script name and bump package PR d38f630 meta-moblin/xorg-app: Add missing include file 70203a0 Move pam, packagekit, monit and gnet to meta-moblin 11f0e58 libsoup: Remove strange staging hacks fixing incompatibilities with libsoup-2.4 181042f handbook: Reference git instead of svn f379d79 meta-moblin: Remove files already in meta d0e82a3 Moved gypsy from meta-extras to meta and upgraded it to 0.6 4a4eaec meta-moblin: Add extra xorg-app, xorg-data and gvfs packages from OE d7aaf31 meta-moblin: Add basic qt support (from OE) 14ecbd6 Skip useless and memory-based folder when create the initial file list. 199828c bitbake-dev: Add basics of "puccho" image builder UI 340b2b5 bitbake-dev: Refactor goggle to pull out useful components. 49e8c06 bitbake.conf: Allow TMPDIR and DEPLOY_DIR_IMAGE to be overridden f94ff99 bluez4: Bump to 4.17 fdc8250 upgrade hal to 0.5.11 and hal-info to 20080508(from OE) 1eb0272 upgrade sqlite to 3.6.4 93ae0be upgrade PR of sreadahead_0.02.bb 6f7afab sreadahead: Add a patch to set the app to io-idle running status. 0c2a3df upgrade eds-dbus to 2.20.0 0e89124 upgrade dbus to 1.2.4 d3bd1e8 upgrade pango to 1.22.2; disable pango tests d12f673 upgrade cairo to 1.8.2; add patch to fix its libtool issue ba60140 upgrade pixman to 0.12.0 57efa3c upgrade atk to 1.24.0 5698e0b Fix qemu build on 2.6.27 13ee303 image.bbclass: Fix typo 793dc94 image.bbclass: Add function to write out an image manifest e437435 bootimg: Let mkdosfs choose between fat12 and fat16 2685507 initrdscripts: Fix the init scripts to support the no fb case. cf96c4c psplash: Bump SVN revision to support the no fb case. 31aee0a image.bbclass: Add routine for disabling x startup when needed 1782861 Add missing ";" to the ROOTFS_POSTPROCESS_COMMAND string 69fb780 meta-toolchain: Make sure the opkg config files are clean to start with when rebuilding them b618bcf gstreamer: Fix a problem with configure if check has already been built 5751ea7 Poppler moved from meta-extras to meta. 2761f49 New recipe for Smart 1.1. 6f92ab0 bitbake-dev: Ignore SkipPackage and FunFailed errors when looking for python task failures 4f5bb46 bitbake-dev: Fix python function task execution failure handling 6d7f3cb qmake2-cross: Fix the driectory the qmake binaries are installed into fc50fe5 bitbake-dev: Always include logs for now 826cd19 meta/classes/rootfs_*.bbclass: Fix unset variable ab3b457 bitbake-dev: Fix knotty fatal message handling and ignore configparsed events 5ef71a4 distutils.bbclass: Remove .pyo object files before packaging. 5be6bb0 bitbake-dev: Handle fatal events correctly f3a6210 mtpfs: removing package 94fed7b conf/distro/include/poky-fixed-revisions.inc: Set revision for gnet 88cc024 gnet: Use SRCREV, not SRCDATE and use http protocol for svn 35994a0 Merge branch 'master' of git@moblin-mdi.jf.intel.com:poky f473d75 bluez: Upgrade to more recent 3.x versions and add bluez 4 from OE 5be917f libusb: Add versions required for recent bluez 1c05260 librds: Initial commit, version 0.0.1 e7e2009 bitbake-dev: Fix exit code value handling 67aaaca mtpfs: Initial commit 186d324 fuse: Initial commit, version 2.7.2 c79b332 bluez-utils: Bump to 3.30 13bbd6e gnet: Fix pkgconfig issue fffba25 Merge branch 'ivi' 690562b libexif 0.6.16 from OE 47b05da gnet from OE plus a configure fix for cross-compile environments. 436c5f4 classes: Add mechanism to install packages into images only if they've been built 1e967ea scripts/poky-env-internal: Fix PATH 1e6f214 monit 4.10.1 from OE 4a04f29 .gitignore: Add extra entries 9715260 scripts/poky-env-internal: Automatically add in additional meta- repositories if found 9e8d22a linux-moblin-2.6.27-rc6: Fix rc6 patch URL faae7d3 bootimg: As image size grows, we want to switch to FAT16 0e5bc87 moblin.conf: Use package_ipk as well as rpm, just for now fa7a4cd Merge branch 'master' of ssh://git@git.moblin.org/poky 3ae3b2b moblin-image-sdk: Should use NETBOOK_IMAGE_FEATURES not SATO_IMAGE_FEATURES. b6b37f0 bitbake: Improve error message for missing class files 4ba6a52 qemu.inc: Use ext3 images for qemu, not ext2 ones 4d24b9d Add xeyes (from OE) dd36b62 bitbake.conf: Fix CHECK_COMMAND_wget quoting bbac24b task-base: Removed RDEPEND on task-poky-boot 7e6ddbd linux-moblin: Tweak defconfig to improve kernel boot time f667a06 Merge branch 'master' of ssh://git@git.moblin.org/poky 47e825a moblin-image-netbook-install: deleted. 6e70612 initrdscripts: Add the simplest init script 97cbee6 task-moblin-tools: moving sreadahead to task-moblin-boot 610b53f bitbake: Optionally take username/password options from url parameters 33b4017 packagekit: Fix after polkit was renamed 9ffb170 xf86-input-mouse: Fix header files included d9dfbf4 xserver-x86: Fix m4 autoconf macro f8e9dcb libgtkstylus: rpm can't cope with these expressions so avoid them for now 76bf51b packagekit: fix typo in folder name d422ac1 Merge branch 'master' of ssh://git@git.moblin.org/poky 3937aef polkit: Rename polkit to policykit 51db609 packagekit: Disable gstreamer plugin (gstreamer is not in DEPENDS) 4b0098b packagekit: Fix DEPENDS and configure 76e51a8 polkit: Fix DEPENDS 94b3998 drm: Fix libpthreads-stubs name in DEPENDS 510d5d7 bitbake wget.py: Fix problem with empty proxy variables 973bba1 pam: Fix use of binary built with the native compiler 559cbf2 sreadahead: Mark as x86 only 9586e75 scripts/poky-autobuild-moblin: Update the proxy config and add rpm packages to the build list f869e70 syslinux-installer-native: Add missing DEPENDS 9d0ed30 libdrm: Add missing DEPENDS on pthread-stubs 7fdff0f base.bbclass: Improve the git proxy syntax to match the http/ftp syntax too c2ef2d4 bitbake: Improve proxy handling got wget so urls can be excluded from the proxy 2bd4344 .gitignore: Add build/conf/local.conf e0dab8b packaged-staging.bbclass: Ignore errors resulting from parallel threads clashing dc0f956 e2fsprogs: Bump version after the last commit to fix uuid librbary problems e38ae8f uuid: Drop in favour of the e2fsprogs version 4a3a35f autotools.bbclass: Handle /lib as well as /usr/lib in autotools_stage_all 74e5d02 Merge branch 'master' of ssh://git@git.moblin.org/poky fd4b88a poky-floating-revisions: Comment out SRCDATE_oprofile. 8dd388c parted: Disable use of check, even its its detected since its not in DEPENDS (and isn't needed) 777f269 scripts/poky-autobuild-moblin: Add GIT PROXY variables 4c62623 base.bbclass: Set GIT_CONFIG correctly 66481d6 base.bbclass: Fix whitepsace damage 2a0c668 base.bbclass: Create ~/.gitconfig if it doesn't already exist 51be1fa linux-simtec: Update simtec1 -> simtec3 and add COMPATIBLE_MACHINE f27cbd1 Add depicture machine with patches from SimTec 1b7873f task-moblin-tools: Add sreadahead to the package list bebb376 sreadahead: Initial commit 7b5d03d linux-moblin: Add super readahead ext3 specific patch b249501 scripts/poky-autobuild-moblin: Set GIT_PROXY_COMMAND 4f083a4 packaged-staging.bbclass: Make sure target directory exists, fixing build failures 10fd960 sdk.bbclass: Fix PKG_CONFIG_DIR value 9ebe8de .gitignore: Fix directory reference issue 582b71a moblin-fixed-revisions: Added and preferred over poky-fixed-revisions 76a7b78 roots_rpm.bbclass: Use opkg-native to get update-alternatives 25e5b72 libxml2: Fix a compilation error when using -D_FORTIFY_SOURCE=2 thanks Chenglan Huang 17bb673 package pam correctly efbd5e5 base.bbclass: Fix infinite loop af861ca base.bbclass: Fix typo 921cbb2 base.bbclass: Fix the git config file writing code b1046ef bitbake: Don't export the GIT_PROXY_COMMAND in the fetcher code since it means selective proxying isn't possible 0e9f111 wpa_supplicant: Use volatiles for managing /var/run/wpa_supplicant 03d16ab networkmanager: Remove conflicting directories (managed by volatiles) 1f833df fontconfig: Use volatiles for managing /var/cache/fontconfig 57fbc64 base.bbclass: Fix getVar call 175b45b base.bbclass: Add missing import os d487dac base.bbclass: Add missing import bb e265dbe added packages: PolicyKit and PackageKit 7705e1e New package: pam d410789 linux-moblin: 2.6.27-rc6 is not the default fa88660 scripts/poky-autobuild-moblin: Add extra variables to the whitelist 35b85e9 [task-moblin] bumps PR, so that machine mods to XSERVER get noticed 147f91a This removes xtrans 1.2.1 since we now have xtrans 1.2.2 47de743 Deletes libdrm_2.3.1 since we now have libdrm_2.4.0 bcb38a8 Bumps revisions for various X packages 156a992 [xserver-xf86-dri2-lite_git] Removes the PE=1 4b41085 Adds xf86-video-intel_git.bb b74cb8a [xserver-xf86-dri-lite_git.bb] bumps the PR 5321ad4 Adds a new xserver-xf86-dri2-lite_git.bb package for building the X server with dri2 enabled 9807c58 [xserver-xf86-dri-lite] Bumps the PV and explicitly disables dri2 5924dde [xf86-video-intel-dri2] Updates 004_reduce_driver_boottime.patch c36db8d [xf86-video-intel-dri2] comments out reduce_driver_boottime.patch 43015b4 [poky-fixed-revisions.inc] Updates Git versions for various X packages d5b1c1d [bitbake.conf] Removes the MACHINE_DRI_MODULES var since it's no longer used by mesa 8231fc1 [netbook.conf] removes MACHINE_DRI_MODULES, use xf86-video-intel (not dri2) default 5924520 [mesa dri] Adds splitting of dri drivers into seperate packages c50e010 [moblin.conf] Adds quotes for PREFERRED_PROVIDER_xf86-video-intel ?= "xf86-video-intel" 057abf0 Makes PREFERRED_PROVIDERs in machine/netbook.conf overrideable via ?= operator d514eee base.bbclass: Additional git proxy support. 4b93bb3 yum: Make the volatile configuration file available b32d59f e2fsprogs-lib: Remove unnecessary package (e2fsprogs can take it's place) 3ad92d8 parted: Depend on e2fsprogs rather than e2fsprogs-libs 0dc1dc4 poky-env-internal: Add quoting to support zsh. 524323b poky-fixed-revisions: Set a SRCREV on xf86-video-intel-dri2 8cafc7c sysvinit: Manage /sbin/poweroff with update-alternatives 6c298ce rpm: Don't create a /var/tmp directory (clashes with basefiles) b906b0c rootfs_rpm.bbclass: Disable non Poky repositories. d02483f yum: Use volatiles for the yum cache directory db5f7b9 packages: check, uuid and xerces. 410141a createrepo-native: Fix SRC_URI. e61ea24 Merge branch 'pli1/X11-rework' of git@moblin-mdi.jf.intel.com:poky-staging into master-dev 3e7b691 task-moblin-tools: bumping PR f21745f xf86-video-intel-dri2: delete 007_disable_tiling_and_enable_UXA.patch 37ea0ee xf86-video-intel-dri2: rebase X fastboot patches 6f65d5b task-moblin-tools: Removed exmap and sreadahead e76840f netbook.conf : change xf86-video-intel to xf86-video-intel-dri2 4ef8d5c xf86-video-intel-dri2: don't apply patch "007_disable_tiling_and_enable_UXA" 0e2ba7a xf86-video-intel-dri2: update PV 8fea3fa xserver-xf86-dri-lite : apply xserver-boottime.patch e16d2b9 xtrans: add xtrans_1.2.2.bb d7f6212 meta-moblin/packages/tasks/task-moblin-tools.bb: fix typo in filename. 98e6b81 Tidy up images and tasks in meta and meta-moblin. d0e6c71 local.conf.sample: Append to BBFILES instead of overwriting 1d6b543 gtk+: Add moblin override e92cc8f Add poky-image-sdk-live to meta/ 7994045 kernel.bbclass: We dont want to tar lib/ if we dont have any modules fd38c1b meta-moblin: Add moblin-image-minimal image 8d50257 conf/distro/include/world-broken.inc: Exclude clutter-helix from world builds b296ae2 bitbake: Add tryaltconfigs option to disable the alternative configuration attempts and make the 'continue' more aggresive db140d9 scripts/poky-env-internal: Add POKYMODE to BB_ENV_WHITELIST 2ff5dac conf/distro/include/world-broken.inc: Add abiword and abiword-embedded for now ea868f9 package_rpm.bbclass: Don't use the system wide RPM macros. 1045eaa matchbox-panel-applet-2: Update SRCREV to fix breakage on non-APM platforms 47c42b6 conf/distro: Create a moblin distro config file based on the Poky one 3a73995 bitbake-dev: Renamed to match the UI name 774485d image.bbclass: Add INHIBIT_DEFAULT_DEPS 526d996 bitbake-dev: Use the default task if 'None' asked for 0b6fdfb bitbake-dev: Refactor configuration file parsing 0b9da42 bitbake-dev: Save the cooker log into the working directory. 23f08fd scripts/poky-env-internal: Unset BDIR after use 4041c25 helix-libs, ribosome: Set COMPATIBLE_HOST since x86 only 262e18f drm : add libdrm_2.4.0.bb f19e435 bootimg: copy rootfs to ISO image dae95a7 tasks: apps-x11-pimlico renaming typo 0472967 tasks: fix moblin-tools task name typo f5c494b bitbake-dev: Remove use of self.configuration.cmd as state from shell 790ed68 bitbake-dev: Remove implicit task from generateDepTree/generateDotGraphFiles 22a3265 bitbake-dev: Make the "buildFile" command use the task parameter c790192 bitbake-dev: Make the task a parameter of the "tryBuild" command 2684070 bitbake-dev: Include target/command (from -c) in "buildTargets" command acdff2b images: put poky-image-live back to meta/ d5417e5 meta-moblin: rename images and tasks from poky-* to moblin-* 0f9a47a bitbake: Fix the wget fetcher so parameter portions of uris are ignored 08197d6 Merge branch 'master' of ssh://git@git.moblin.org/poky fbfc669 bitbake-dev: add a setVariable command e84e951 meta-molbin/images: Add poky-image-sdk-live.bb 07b4c06 spectrum-fw: Use the standard fetcher process b8ff2b6 base.bbclass/bitbake.conf: Fix some string quoting to handle more unusual URLs e4aa77e scripts/build: Update the git proxy setup instructions 87fe772 bitbake-dev: rename readVariable to getVariable d3bf789 poky-image-openmoko.bb: remove matchbox-applet-startup-monitor 45f4be4 poky-image-openmoko.bb: remove unused PR c26d6cf bitbake-dev: Change terminology online/offline to sync/async f0b1d56 bitbake: Preserve http_proxy and ftp_proxy in fetcher command execution 0cc119f opkg: Really fix the prototype problem (and an invalid call) 842606b opkg: Fix incomplete function prototype 4815f7b bitbake: Remove bogus test code ede20a3 bitbake: Improve proxy variable handling in fetchers 4329a29 scripts/poky-env-internal: Add proxy variables to the enviornment whitelist (and OEROOT) 2236c01 scripts: Fix variable quoting ebb74a6 scripts: Add moblin autobuilder support scripts be2ad3b * Fixing the helix-player.pc to include a -lstdc++ * Adding clutter-helix recipe d4f444a Add meta-moblin-internal to gitignore ca7fa46 * Adding initial ribosome (helix build system) and helix-libs recipes 06db259 bitbake-dev: add goggle - an experimental GTK UI. f51afdc bitbake-dev: Include the worker's PID in events e1155bc linux-moblin: We dont need the defconfig-eee901 files anymore e169b23 linux-moblin: Add 2.6.27 moblin kernel e5c53ce netbook: changed platform name from eee901 to netbook 3e04579 bitbake-dev: Dynamically load the UI module. 7ddbeb2 packaged-staging.bbclass: Avoid removing the staging.lock lock file. c9fe18a syslinux: Add COMPATIBLE_HOST c53608b bitbake utils.py: Merge prunedir symlink fix from bitbake upstream 8bb2cd7 libacpi: Add COMPATIBLE_HOST 5e97882 poky.conf: Fix world excludes typo 7a0ee99 libsyncml: Remove insane piece of strange assembler 78fd54f poky.conf: Exclude linsync from world builds a7dea06 poky.conf: Update libopensync world exclude list 83dd9c7 libopensync-plugin: Upgrade file and vformat to 0.37 f5eeae1 msynctool: Upgrade 0.36 -> 0.37 14e3c93 libopensync-plugin-evolution2: Fix to work with libopensync 0.37 22170fe syslinux: Various cleanups and add back some missing staging pieces f105cdc bitbake-dev: Remove the Pkg{Started, Failed, Succeeded} events and their handling in the UI a864492 base.bbclass: Output notes only on BB <= 1.8.x 3f93ed6 syslinux-native: Try to make syslinux cross-compile friendly. 4cb6598 Enables support for root over NFS in the linux-moblin defconfig 85e2dcb Add libopesync 0.37 0d25b9f libxslt: Fix pkgconfig patch for exslt e1720d8 bootimg: Add symbolic links to iso and hddimg 7a4b36a bitbake: Add some sanity checks to the lockfile functions 8dd58f5 meta-toolchain: Don't inherit sdk e0c1bd1 sdk.bbclass: Rewrite PACKAGE_ARCHS f838503 qemu-sdk: Pass the disable-vnc-tls option since we don't have gnutls-sdk d636d1b bitbake-dev: Don't fallback if the UI fails to start; give an error message on UI exception bd63867 bitbake-dev: Move the ncurses TTY check into the UI plugin itself. 39ad2b3 Update the ignore file so that it also includes VIM swap files 696d4f0 bitbake: Refactor the environment variable handling 9294b95 bitbake-dev: Refactor the environment variable handling. 603ae24 Add .gitignore 8c32e37 libx11: Clean up all the git recipes into a common include file da30379 libx11_git: Cleanup duplicate metadata f4b04c9 poky-image-minimal-live: Set LABELS to fix image generation 9a38dbd syslinux.bbclass: Clean up boot menu title 1a5f96a libx11-trim: Fix git version DEPENDS aadd0fd libx11-trim: Fix FILESPATH b4a4291 Add libx11-trim git 14d3569 u-boot: Set COMPATIBLE_MACHINE 0024d1a x-load: Set COMPATIBLE_MACHINE 819e489 libx11-sdk: added git version (based on libx11-diet) d0d47cb libsyncml: updated to 0.4.7 which builds with libsoup 2.4 48e3baa libxtst: bumped PR to force rebuild with newer libxi e58db30 libxtst: depend on libxi to get XInput.h 5f12963 checksums.ini: added some entries f79e825 libx11: fixed PV in git versions 4afe85d preferred-xorg-versions.inc: updated xdpyinfo version 8d3672c poky-fixed-revisions.inc: added some entries c772ed9 This documents that PE defaults to 0 not 1 as previously written 100f4af xexproto: renamed directory to make xextproto-* working 3ccabe8 libowl: delete only libowl.* instead of libowl* on clean-up. 7ec0191 xserver-kdrive: added patch for 1.3.0.0 to get it built with x11/git 7457fcc xdpyinfo: updated to 1.0.3 df8421a xextproto: added patch from upstream GIT to unbreak xdpyinfo (and others) 433f9d8 poky: use libx11-diet from GIT 8e98e1f libx11-diet: added GIT version 13a115a preferred-xorg-versions.inc: fix libxcb version 6e56c4f preferred-xorg-versions.inc: prefer GIT versions of x11 libraries 4bfd39f poky-fixed-revisions.inc: added SRCREVs for x11 libraries f57ecf3 xcb-proto-native: added to get libxcb buildable f732fed xcb-proto: added GIT version 8159255 libxcb: added GIT version c8acd24 libx11: added GIT version 780b158 libxi: added GIT version 6e046c7 libxext: added GIT version b718096 e2fsprogs: Add ext3 headers to the exported list. eacf14f Various X package updates to deal with XInput.h being removed in the latest inputproto package. cd2ce19 Drop linux-omap-2.6.25 44bc791 linux-omap-2.6.24.7: Update defconfig to fix various issues 9d70f04 Use ?= for setting IMAGE_FSTYPES in eee901.conf so it can be overriden in a local.conf 1065021 Adds support for GEM + DRI2 4c7fc91 avahi: create/remove 'avahi-autoipd' user (from OE) 5c7adfa task-base: build Bluetooth/Wifi support only for distros which feature them 2e900b0 apmd: drop obsolete zaurus 2.4 kernels hack f0676a3 automake: Fix patch b2396b6 automake: 1.10 -> 1.10.1 985681c libtool_2.2.6: Fix SRC_URI 457ae5a Add overo fe795de package_ipk.bbclass: Simplify variable expansion e360961 libtool: Upgrade to 2.2.6 3860dec gcc: Improve the build containment failure error message to be more user friendly fc46731 image.bbclass: Make the kernel depmod dependent on the presence of a kernel - some images eg an initramfs don't have this 1ef8ccb exmap-console: Bump PR for new moblin kernel a2d782b rt2860: Bump PR for new moblin kernel d89d52d linux-moblin: 2.6.27-rc6 kernel 3d40acd devicekit: Disable man page generation 2eadfa9 image.bbclass: generate modules.dep 51268c1 rootfs_ipk.bbclass: Don't error if the file doesn't exist 7daedbf package_ipk.bbclass: Fix opkg config file generation fb439d9 package_ipk/rootfs_ipk.bbclass: Update image from feed handling 3dc1ade eee-acpi: power button support 93cd991 devicekit: initial package 986e49c matchbox-panel: enable the relevant battery plugin depending on the machine features 2452ba4 gupnp: add gssdp, gupnp, gupnp-tools 52268b5 initramfs-live-install: Add COMPATIBLE_HOST eb599a9 e2fsprogs: enable dynamic libs, and package libuuid separately 4d3d6fb syslinux: We forward the LABEL through cmdline 62ece10 initrdscripts: init can now launch the installation script 460d934 poky-image-netbook: Add installation script 864a4ad initramfs-live-install: Initial commit 1ed1a58 busybox: Add the halt command 228f25b bitbake: cooker.py: Fix the point the configuration __depends is renamed 23a18eb e2fsprogs: Bump to 1.41.2 d33aedc poky-eabi.inc: No need for parted as-needed exception anymore acb3bfa parted: Now readline is fixed, no need for weird EXTRA_OECONF options 3abb779 linux-omap-2.6.24.7: Fix compile failure 0223c7c Enable 2.6.24.7 for the omap-3430sdp, even if it won't compile. 4ae7845 gdk-pixbuf-csource-native: Add libx11-native to DEPENDS and explicitly set X search paths 25e4a63 readline: Add configure fix to solve missing symbol issues 2ab7811 exmap-console: Bump PR after readline version changes e5f329f poky-eabi: as-needed breaks parted configure stage ade5e73 parted: Initial commit bfeacba grub: Initial commit ba9e4ed gdb: Bump PR after readline library changes 0a13784 e2fsprogs-libs: Initial commit 1922777 readline: bump readline-native to the latest 5.2 95857f6 readline: bump to the latest 5.2 c16dee4 scripts/pokyABConfig.py: Add poky-image-netbook-live c8a3fab rootfs_rpm.bbclass: added code to generate images from feeds ab995b8 poky.conf: added RPM feeds example 0ea7472 rootfs_rpm.bbclass: added generation of feed entries d1a327b rootfs_rpm.bbclass: remove temporary yum config - rootfs has one from yum package f9b9e31 rootfs_rpm.bbclass: fix platform so rpm will be usable on device 21cdfe2 Replaces = with ?= in preferred-xorg-version so versions can be overridden d151a7b yum: added one more python package - shlex 1a2cd2f python: package elementtree and shlex in separate packages ceb27d5 python: package bzip2 support into separate package b7aed5e yum: added all required Python modules to dependencies bc6e408 yum: fixed packaging 559a522 base.bbclass: Add automatic osc-native dependencies for osc:// recipes 9d46f76 ncurses.inc: Make sure paths start with / 61ec403 rpm: Add python module packaging ceb7254 scripts/poky-autobuild-postprocess: Add eee901 minimal image 8d90e33 scripts/poky-autobuild-postprocess: Add eee901 43a3302 poky-eabi.inc: Set gcc-cross-sdk version 7676511 Add gmp-sdk 27d572b Add mpfr-sdk 8a76c9c gcc-cross-sdl 4.3.1: Merge in two fixes from OE, DEPEND on mpfr-sdk and gmp-sdk, use LD_LIBRBARY_PATH to fine libmpfr 4d2a3b6 bitbake providers.py: Fix message typo and improve debug info f4337b9 bitbake utils.py: Fix ocassional locking glitch with a better retrying mechanism 527b337 patch to allow the moblin proto to run without shader support 690a699 package_rpm.bbclass: save value of RPMBUILDPATH as it is needed for packaging e71b701 rootfs_rpm.bbclass: remove lock files to get rpm working on device 47f77ae clutter-0.6: Bump PR 811ee11 clutter-0.6: Bump PR 789d16f clutter-cairo: Set S correctly a953836 libxt: Use STAGING_INCDIR_NATIVE, not STAGING_INCDIR. Also fix error handling. dddac8f linux-moblin: Remove the obsolete IRQ_BALANCE option 8e466ad linux-moblin2: Use a more generic name 6c807a6 powertop: Remove 1.9 1dc91f0 fetch/__init__.py: Add in hooks to make sure osc fetcher is seen 369a30a poky.conf: matchbox-wm PREFERRED_PROVIDER is not needed e373a4e matchbox-wm: Remove pointless PROVIDES 628db3a package.bbclass: Ignore virtual-locale- packages when building -dev and -dbg dependency chains a61f5b0 rootfs_rpm.bbclass: Set YUM_ARCH_FORCE 19855de package_rpm.bbclass: Fix dependency rebuilding bug aea4958 yum-native: Fix hacks.patch to handle architecture detection issues 537ff09 yum: Don't apply hacks.patch, its only needed for the native version e668b91 Some build fixes for clutter-cairo-0.6, and clutter-gtk_svn 785f33d package_rpm.bbclass: Fix package version fixing for PKG renamed packages 8a49dd2 yum: do not hardcode arm architecture - rootfs_rpm provide arch info e5e21ca rootfs_rpm: set target architecture and do not tell yum which arch we will use 3c5eae8 package_rpm.bbclass: Improve handling of '-' characters in Requires and Recommends fields 6e62524 base.bbclass: Add read_subpkgdata_dict function 5bcae48 package.bbclass: Write out extra useful data into the pkgdata files 0856501 shared-mime-info: fixed dependencies for native version 2d4b12e rootfs_rpm.bbclass: use more efficient way to copy packages aabd91e yum-metadata-parser: fixed dependencies c856d8b - This adds clutter-{gst,gtk,cairo}-0.8 recipes and clutter-{gst,gtk,cairo}-0.6 recipes. - It removes the 0.4 recipes. - It renames things so that the major.minor revision is now part of the package name. This lets us correctly specify SRCREVs for each branch, and allows parallell install. - All the SRCREVs have been updated to the heads of their corresponding branches dfffc40 python-native: Add sqlite3-native to DEPENDS 096b0cd packaged-staging.bbclass: Add rpm package coverage 66d1347 classes: Split rpm feeds by PACKAGE_ARCH 9c63c7e rootfs_rpm.bbclass: ship rpm and yum in target images 94fa2b9 yum: added 3.2.18 8626cf5 rootfs_ipk.bbclass: Fix shell commands 1d18282 task-base: bumped PR due to poky config change f467b97 poky: added pci to distro features beee0c5 rootfs_ipk.bbclass: Improve image from feed generation 39b0cfa Rename FEED_URIS -> IPK_FEED_URIS 18104e1 rootfs_ipk.bbclass: Add the hard bit of image generation from feeds, controlled by a BUILD_IMAGES_FROM_FEEDS variable d96b9e3 powertop: Add latest stable release 9b52d24 rt2860: Fix iwpriv oops f36ea09 bootimg.bbclass: Set nostamp for the bootimg task cd87211 bitbake: Fix nostamp flag handling bug 4089a43 matchbox-session-netbook: Bump PR 8f00ab4 ncurses: Really drop broken files 5999a43 libx11-diet: Enable xkb fcb3dfa libacpi: fixed packaging fb20bb3 ncurses: Bump PR to fix bogus commit fallout 3c7454c bitbake/bitbake-dev: Bump cache version after AUTOREV DONT_CACHE changes 3db5955 gconf.bbclass: depend also on gconf-native 6e5e000 clutter: added libxi to dependencies 1bc1337 gconf-dbus-native: fix dependencies ff247ac gconf-dbus-native: required by metacity/contacts and few more e33ca0e matchbox-session-netbook: Remove the --titlebar option 9a711ae poky-fixed-revisions.inc: Bump mb-panel SRCREV 0749420 Fix a typo in the COMPATIBLE_MACHINE list db1e886 linux-moblin2: Bumping PR for the new eee901 defconfig. 845d298 Revert unintended commits 979f987 bitbake cache.py: When SRCREV autorevisioning for a recipe is in use, don't cache the recipe. Based on work from Heikki Paajanen e2d3210 Add OEROOT to preserved_envvars_list. efe3d75 bitbake: Sync with upstream 419f184 Fix better_exec error message to actually report filename. f0e249f scripts/poky-env-internal: Add MACHINE, DISTRO and POKYLIBC to the environment whitelist for starters 2e18284 bitbake/bitbake-dev: Allow much better control of which variable influence bitbake from the environment 221ac2b bitbake/bitbake-dev: Sync with upstream dc98b2c bitbake: Sync with 1.8 branch upstream f393763 AUTHORS: update my email in BitBake ff56ee3 matchbox-netbook: We can safely include the brightness applet. 65722fb eee901: We now use the intel FB driver. 2c1c5db linux-moblin2: More eee901 goodies cbaab65 Merge changes from Poky bitbake 1.8 d54280d bitbake-dev: Update against bitbake trunk 4e522e0 poky.conf: Add packaged-staging by default now c30eddb Add bitbake-dev to allow ease of testing and development of bitbake trunk 5ef0510 git: depend on native perl and use it de39802 eee901: We use ACPI for battery status reading c127548 task-base: Adding libacpi to the acpi task. a2985cb libacpi: First poky commit 1d0070a xf86-video-intel: DEPEND on virtual/libgl, not mesa f8df3fc libx11.inc: Fix error handling logic for makekeys generation 287ef55 libx11-trim: Add missing xproto-native DEPENDS e4ac360 zlib: Fix autotools off64_t patch logic fixing darwin builds ce846ca libx11-diet: Fix require, drop unneeded PEs 6de25dd libx11: Update include_fix.patch 18b5ccc mesa-dri: Bump PR c1f1195 poky.conf/preferred-xorg-versions.inc: Catch up with libx11 changes 05107cf xserver-xf86-lite: Add a non-dri version of the server for use when dri/gl isn't appropriate 897f193 xserver-xf86-common: Fix PROVIDES to include PN fc06875 libxcb.inc: Fix bogus reference to STAGING_DIR/HOST_SYS 3081d60 libx11: Upgrade to 1.1.5, rename diet-x11 to libx11-diet for consistent naming. Create common .inc file for diet,trim and full-fat version versions ef3ef90 poky.conf: Remove bogus EXCLUDE_FROM_WORLD e22a186 xserver-xf86-dri-lite.inc: Add COMPATIBLE_HOST 99d447c poky.conf: Add mesa-dri to EXCLUDE_FROM_WORLD 343d7bd mess-dri: Add missing expat DEPENDS 796d014 xf86-video-common.inc: Fix typo that revmoved the xserver DEPENDS leading to build failures c569e23 libxext: Add missing DEPENDS on libxdmcp 450fcec libxt: Add missing DEPENDS on libxdmcp 07e8801 omap-3430: Generate jffs2 images 2d89305 linux-omap-3430ldp: Build jffs2 support in. 0307391 netbase: Disable networkmanager for eth0 on qemux86/qemuarm 86ab8c8 libnotify: move from meta-extras to meta-openmoko 9d8971d matchbox-desktop: update SRCREV. f9bc87b task-poky-sdk-gmae: fix sqlite-dev name f21f937 libgcrypt: add pkg-config file info dev package 56e5e1d checksums.ini: added some entries 405e761 gnutls: add 2.4.2 (latest stable) 062b2e1 gnutls: drop 2.2.5 c4e9ad6 Fixes the metacity-clutter revision; packages the plugins; and adds a post install section to use gconftool-2 to enable the "simple" plugin by default. 52734d2 task-sdk-gmae.inc: update to reflect GNOME Mobile 2.24 b0432f7 removes SubSection "Display" from xorg.conf 503cb72 fixes noPanoramiXExtension missing symbol problem when server tries to load libdri fc3d94f poky-fixed-revisions.inc: bump matchbox-wm-2 for work area fixes dd465f2 avahi: Move bshell into the avahi-ui-utils package 9b906c8 mesa-dri: mark as x86 only 297f268 libpthread-stubs: Fix -dev and -dbg dependencies 5529d5e linux-moblin2: do not compile kernel with debug infos 13c0576 clutter.inc: use eglnative on 3430sdp 536e19f xserver-kdrive: Feed xrandr calls to the framebuffer driver in case it can do better than software rotation 59754ee dialer: specify revision instead of using autorev 10b4923 eee-acpi-scripts: Set PV correctly 951142f eee-acpi-scripts: SRCREV should be in the distro config files 78abb40 Update fixed revision for the latest, greatest, metacity-clutter. d708880 xcb-proto: Fix -dev and -dbg dependencies 7970ac7 eee901: Add acpi and eee-acpi-scripts 4a91a28 eee-acpi-scripts: Initial commit d3636b1 pm-utils: Initial commit f65b9db acpid: Initial poky commit 6ae402e image.bbclass: make ext2/ext3 images autoresize 2c002e3 qemu targets: added IMAGE_ROOTFS_SIZE for ext3 filesystems 92116e3 Netbooks will use Sato too for now. 8f8fbef Initial support for netbooks with a poky-image-netbook(-live) image target. This needs much love from folk with UI and WM skills. c8ece75 libx11-trim: Add missing dep on xf86bigfontproto 2f52c8c qemu-sdk: Build i386 QEMU for inclusion in the sdk. 775eda0 gtk-engines-2.12: remove fb1907d gtk-engines_2.14.0.bb: add PACKAGES_DYNAMIC 0ed09c3 gtk-engines-2.10.2: remove old release 9f09bda matchbox-themes-gtk: fixed dependencies after clearlooks cleanup c6a6eb4 jpeg: added native version 0b751d3 metacity(-clutter): use gdk-pixbuf-csource-native b40263e gdk-pixbuf-csource: added 2.12.7 e64f44b gtk-theme-darkilouche.bb: depend on gtk-engines so that clearlooks is built, and rdepend on the engine not the theme d1bd228 gtk-engines: set PACKAGES_DYNAMIC 9221934 gtk-clearlooks-engine_0.6.2.bb: remove old version e409c10 gtk-industrial-engine: remove ancient package c55be22 added recipe for metacity-clutter 7857985 libtiff: set LICENSE 887b8de gtk+: Add gtk+ 2.14.2 57fbca3 libxklavier: add libxklavier 3.7 (XKB wrapper library) e1852a5 mesa-dri: make it non-default for targets other then EeePC 901 59e0767 mesa-xlib: added non-dri version of mesa f3c9ce9 xf86-video-intel: mark as x86 only accea02 mesa-dri: fix packaging so test apps will really land in own package 05908af iso-codes: Make PACKAGE_ARCH=all 395a25b intltool: Update to intltool 0.37.1 663e3ea iso-codes: Add iso-codes package 5d82d23 metacity: do not require gdk-pixbuf-csource b64f913 checksums.ini: added some entries 6518356 glib-2.0: Remove old bleeding version. f259954 glib-2.0: Update default revision to 2.18.1 879f6e0 glib-2.0: Add 2.18.1 (new stable release) 7426229 poky-fixed-revisions.inc: fix typo 69bcf13 poky-fixed-revisions.inc: bump matchbox-desktop srvrev to fix icon loading bug fab1928 gnome-icon-theme: add an RRECOMMENDS on librsvg-gtk e419523 Add a bzip2-full-native recipe and make the python-native recipe depend on it. Yum requires bzip2 support in Python so our native Python package needs something to provide it. 6e1a993 Makes metacity install as an alternative x-window-manager 604df9a Bumps the mesa-dri revision to 7.2 and adds a mesa-xdemos package including e.g glxinfo 9954f13 Ensures the themes get packaged with metacity 0caca44 Adds eee901 specific support into clutter.inc and adds a new virtual/libgl for clutter to depend on which all mesa build variants provide. bc88c3a increments task-poky revision, which fixed a dependency problem for me and may help with similar problems others are seeing with the new X builds. (The problem seemed to be related to the XSERVER variable which is referred to in task-poky.bb) 9e00baf libxrender: added missing dependencies a4fcdac libx11-trim: added missing dependencies 7178ed1 connman: Initial poky commit 08012fd resolvconf: Adding resolvconf as connman needs it 422985c libgdbus: Add latest git as SRCREV b5833ef libgdbus: Adding libgdbus as connman needs it 37f772f Add the Darkilouche dark theme 561f4d0 Update to gtk-engines 2.14 4353685 Some fixes for the xorg.conf for xserver-xf86-dri-lite 500a924 libsoup-2.4: add libsoup 2.4 cf69f37 gnome-icon-theme: add 1c2a783 Basic recipe for Metacity. Needs some tweaking to strip out themes into separate packages and strip some unneeded binaries. dd204d5 added missing dri2proto dependency 8321809 libx11-trim: fix location on keysymdef.h 5651807 xf86-video-intel: add missing dependencies 2297ec9 xkeyboard-config: provide 'xorg' rules which are link to 'base' ones f77a127 xkeyboard-config: add keymaps for X11 ad239c2 xkbcomp: added 1.0.5 required by xkeyboard-config af096d2 libxkbfile-native: needed by xkbcomp-native a521e64 Move libsoup to its own directory f2bbf7b libx11-native: do not provide virtual/libx11 90ebfbb libxdmcp-native: do not provide xdmcp 3de4627 Adds recipes to support building X servers based on the xfree86 DDX instead of kdrive and building mesa. It's a big commit and it's still rather rough around the edges, but there is a desire to get this in early so people can review the work and help polish the changes. 9b6a24b cdrtools-native: Don't look for headers in /usr/src/linux, that would be crazy dc2a130 tune-xscale.inc: Compile cairo for armv4 to avoid alighment trap issues with double instruction b7b2755 gcc: Add 4.3.2 recipes 571ddc9 Fetch implementation for the OpenSuse build service. 166a1ac Native pacage for the OpenSuse build service client. 5744c24 Make the eee use the correct DPI. 0576faf poky-eabi.conf: add dialer to as-needed blacklist cd937b6 ConfHandler.py: revert accidental commit 31511eb bitbake parse/__init_.py: Add missing update_mtime function fixing bitbake shell reparse failures 1048185 poky-fixed-revisions.inc: bump matchbox-desktop srvrev 57915de poky-fixed-revisions: bump libowl srvrev c3bea64 poky-fixed-revisions.inc: bump matchbox-wm-2 ce91157 ref-variables.xml: Add POKY_EXTRA_INSTALL 61af678 handbook/faq.xml: Add a QA about proxy server setup ef1315e handbook/quickstart: Improve documentation on the options available in local.conf 96a71ae local.conf.sample: Make the parallel threads documentation more visible and update with a quadcore example fc6f464 rt2860: Set COMPATIBLE_MACHINE for now to avoid builds with elderly kernels 93807d5 eds-dbus: add libedataserverui to PACKAGES, fixing the borked packaging 107efab eee901: Add wifi support 680a0e5 eds-dbus: package the glade files into libedataserverui d2c6e8a rt2860: Support for the rt2860 RaLink 802.11n chipset 93159c9 eds-dbus: Add missing DEPENDS on libglade 06b2ec9 local.conf.sample: Add comment about eee901 f03756b poky-eabi.inc/poky-fixed-revisions.inc: Bump the matchbox-wm-2 revision and remove from the asneeded blacklist 0dbd5e5 image-live: exclude from world builds 2269949 pokyABConfig.py: Add eee901 builds 5931e8a gst-plugins-good: Remove bogus RPROVIDES and add to PACKAGES instead now the package class can handle this 9a21f65 package.bbclass: Adjust to handle split packages already being present in PACKAGES 81824cd exmap-console: Bump to the latest SVN adf85c0 poky-image-live.inc: Only run the FSTYPES check when the task is run 6b2db1e Added live USB poky images 9bdc5a0 initrdscripts: Simple init files for initrd/initramfs images 71a2e0d bootimg: Adding a rootfs to the disk image 8615c21 eee901: Add video kernel options, vesa for now. 22e0395 bitbake hg fetcher: Add fix from Matt Hoosier f09c00e gaku: clean up depends/recommends 16f7d67 formfactor: Add eee901 config file db323e3 eee901: Initial support 4f82c50 linux-moblin2: Add moblin2 kernel f680c85 eds-dbus: update to current and refactor the patches that get applied. eecb3f9 poky-eabi.inc: Blacklist matchbox-wm-2 for broken as needed handling 7e3f8e5 matchbox-wm-2: Package libmatchbox2, enable the simple manager, fix other packaging issues 0785687 eds-dbus:Update the built in contact patch to reflect changed paths. 7b7d83c libsndfile1: Add missing DEPENDS on sqlite3 9836ab8 matchbox-wm: provide matchbox-wm to complete the virtual mojo 9bef0ee poky.conf: make matchbox-wm a virtual 1367165 rootfs_rpm.bbclass: Add recommends handling 7c72bf7 yum: Add yum-install-recommends.py script to handle installing Recommends da34e32 bitbake.conf: Fix typo introduced in r3774, thanks to Cyril Humbert for spotting 5b24b9c poky.bbclass: Add https mirror source 2c832c5 rpm: Add missing patches e1af8de hg fetcher: Apply fixes from Matt Hoosier 4be407b rpm: Handle PYTHONVER differently in EXTRA_OECONF to stop gettext/uclibc failures during parsing 4a2e4c7 puzzles: Bump PR after asneeded change 491cbea poky-eabi.inc: Add puzzles to asneeded blacklist d396ff1 minimo: Bump PR after ASNEEDED changes e23fe47 pciutils: Bump PR after ASNEEDED changes 21ea5a3 poky-eabi.inc: Add minimo and pciutils to asneeded blacklist bbd6158 openobex: Bump PR after ASNEEDED change 7192a61 poky-eabi.inc: Increase ASNEEDED packages blacklist 344a927 matchbox-session-sato: fix typos in session script 23c36b0 rootfs_rpm.bbclass: Fixup broken symlinks due to fakechroot and run any leftover postinstalls on real hardware at first boot 5d0f675 createrepo-native: added dependency on Python a3a3360 poky-eabi.inc: Add distcc to ASNEEDED blacklist ef1e2b9 yum-metadata-parser-native: depend on GLib 2.0 native 0fb48f7 python-native: depend on OpenSSL native to get python-urlgrabber-native buildable f46cad8 poky-eabi.inc: Start using the --as-needed flag when linking to reduce uneeded link time dependencies 9a90cab gconf.bbclass: Drop configure/install/upgarde checks since not all SCMs support these in postinstalls 15e4284 matchbox-sato: Remove empty directories 50ae58e task-poky: Add a more definite dependency on dbus in console and x11 images 8821664 rootfs_rpm.bbclass: Add basic postinstall handling during image creation a6f3e46 yum-native: Add extract-postinst.awk script for use during rootfs generation f9cefb6 rpm-native: Set varprefix to get the rpm database in a sane location 36d8198 package_rpm.bbclass: Add support for postinst and preinst scripts aae958d yum-native: Add NOPOST and NOTRIGGERS flags when installing packages 6269c57 package_rpm.bbclass: Fix problems with package version with '-' in the version (replace with '+'), improve the Requires and Recommends generation code 5d24ea8 bitbake utils.py: Add explode_dep_versions, an improved version of explode_deps 6209435 syslinux.bbclass: Update to use more modern and efficient functions 91c830c clutter.inc: revert the zoom board to eglnative, and eglx is so broken d85997f bitbake providers.py: Sync with upstream 75df743 matchbox-wm-2: stage the headers and so on a24fec2 poky-fixed-revisions: bump mbwm2 revision 629494a gst-plugins-ugly: update to 0.10.9 36e803e libxml2-native: actually fix depends to python-native 33061d6 matchbox-wm-2: enable libmatchbox and the png theme dcce679 libxml2-native: fix python packaging, thanks Matt Hoosier 0801fa7 yum-native: add depends on libxml2-native 502d161 python-native: remove libxml2-native depends b8ce2fb package_rpm.bbclass: files needs to start from / 102af61 fakechroot: fix duplicated readlink 1ec9176 Fix typo in ldp machine name 99e44d2 rpm: Add recommends support from suse rpm patches 375bf90 rootfs_rpm.bbclass: Remove the feed directory before packaging the image b7b95fa package_rpm.bbclass: Stop autogenerated dependencies for now, its not functioning correctly 8c33755 yum-native: Add some hacks to make yum work better in the cross build case 38d1870 yum-native: Add patch to fix install paths 020a00a createrepo-native: Add fix for empty data fields when creating repositories fe22fab bitbake.conf: Add to PATH bbdeccf sanity.bbclass: Provide preserving the mmap_min_addr setting over reboots a707851 python-native: Add libxml2-native to DEPENDS 82d0172 python: Fix -native package staging functions fc2e56f rpm: Tweak patches to remove popt problem 85efc57 Move libtiff to meta from meta-extras 15af82a Add rootfs_rpm.bbclass, a start at image generation from rpms. Its not expected to be entirely functional yet. 317a847 package_rpm.bbclass: Fix empty package handling, handle package dependency renaming by adding a missing function call and expand RPMBUILD before changing the dictonary so local PV/PR changes don't break the WORKDIR variable expansion bae5aaf libxml2-native: Enable python extensions 666c695 Add yum-native and createrepo 2b67142 Add python-urlgrabber, python-iniparser, yum-metadata-parser and native varients bb6a165 fakechroot: Add from OE.dev f57852e sqlite: Add 3.5.6 and sqlite-native from OE.dev 0f9c34a zlib: Upgrade from 1.2.3 to 1.2.3.3 to add 64 bit extensions and improve operation on recent 64 bit platforms 603e247 rpm: Enable python extensions and improve cross compiling patches 16e6877 python: Promote from meta-extras to meta 07eeb6a python: Remove empty directories 15c905c insserv: Fix a cross compile issue on i386 machines aa7d993 poky.conf: Exclude libxml-simple-perl from world builds af1c282 Fix up /etc/profile to source files from the right path. 083c456 glibc: Disable hwcaps for speed 8d772b1 wireless-tools: Drop scripts we don't seem to need 14f2b65 rpm: Patch out some Makefile strangeness causing build failures 210f011 networkmanager/matchbox-keyboard: Use exec to run the final programs 76b5863 psplash: Remove pointless cat calls, promote to .sh initscript 04066bd base-files: Remove fork from profile, no need to use ls here 513bf3a xserver-nodm: Remove another fork, no need to use cat here 37d9ffa dbus: Add volatiles configuration e80d0ca initscripts: Remove pointless forks from timestamp code 8821332 netbase: Drop options file and options handling code, its replaced by sysctl.conf 2bee9ce base-files: Install a sysctl.conf file a456aba base-files: Don't fork to call id in profile 9469a08 xtscal: Convert session script to an sh script so it can be sourced reducing forks 7b49a5b networkmanager-applet: Start after the desktop has loaded by using dbus-wait 4453d53 matchbox-keyboard: Change session script to start it after the desktop using dbus-wait removing the dodgy sleep call b116e40 xserver-kdrive-common: Add in support for shbg files, shell scripts to be started in the background 893b354 librsvg: update the loader database when installing the svg loader 23d43ca moblin-proto: update srcrev and fix build 9add0a8 rpm/rpm-native: Add recipe for 4.4.2.3 e8f85b3 beecrypt: Add based on OE.dev recipes with fixes ded39e2 package_rpm.bbclass: Update against recent packaging changes and start to implement dependency handling. Drop pointless rpm_core class. c87b3a8 package_ipk/package_deb.bbclass: Make sure control files are properly removed fixing problems with files leaking into packages. Use core bitbake function for directory pruning 5ca5663 bitbake/utils.py: Add prunedir function to utils collection 77c0101 udev: Drop the standard persistent rules, they're useless on embedded hardware 941aea7 psplash: Bump revision 58f3b79 busybox: Allow a builtin echo for speed a452505 poky-fixed-revisions.inc: Update psplash revision to gain fifo handling changes cc1783b sysvinit: Use echo to change the psplash progress fifo instead of forking 7e2a8eb portmap: Remove uneeded initscript forks 244474d clutter.inc: Fix typos 25c4145 poky-fixed-revisions.inc: Add moblin-proto 5bbdd31 Add moblin-proto, drop ununused clutter-box2d patch 67e520f clutter.inc: Add ipodtouch to compatible machines list f18adf3 poky.conf: Allow clutter, clutter-gst, clutter-cairo and clutter-box2d in world builds fe3d0cb poky-fixed-revisions.inc: Bump aaina and table versions so they're at least clutter 0.6 a13b006 clutter.inc: Set COMPATIBLE_MACHINE and default to mesa/glx for unknown platforms allowing qemuarm/x86 to at least build for build testing purposes. It is *NOT* expected to run well 449860b mesa: Add from OE.dev fc05d61 clutter-*: Updates to work with clutter 0.8 and later svn b1b30e6 poky-fixed-revisions.inc: Update various clutter and clutter related revisions 90ff1cb omap-3430ldp: Add extra machine specific kernel module RRECOMMENDS 43bd216 matchbox-session-sato: make the session script executable f9281be clutter: Use elgx flavour with omap3 cfb6c0d linux-omap-2.6.24.7: Tweak defconfig to display module symbol versioning bec2223 Move dialer to openmoko for now, as it depends on pulse 3478f41 matchbox-session-sato: magically munge the session script to remove applets depending on the machine features e14a39f Add dialer_git.bb, a moko-free port of openmoko-dialer2 a5be289 clutter.inc: package redhand.png 081c41a clutter_0.6: remove do_stage, clutter.inc has one too 1e69b97 openmoko-panel-gsm: add openmoko-panel-gsm, om-panel-plugin.bbclass, and srvrev 1e3ea15 gsmd2: install the system service dbus files 3cf90d1 libgsm: use GTA01 machine for the Zoom board, it's close enough 17ae3ee openmoko-dialer3: add rdepends on gsmd2 ab0297c checksums.ini: added some new entries 86555b2 gcc-cross-initial: disable decimal float in 4.3.1 to fix x86 build 75f5fd2 checksums.ini: added some new entries acb222d liberation-fonts: update to 1.04 from Fedora 5c93b2c js: fix SRC_URI 714a5e1 rsync: fix SRC_URI 12f914d libpcap: fix SRC_URI 26e4df8 x11vnc: fix SRC_URI cf6d4fa webkit: webkit.inc is no longer used 9c65649 udev: improved mount.sh 2934660 poky-nokia800-flashutil: merged offsets from Andrew script and added Diablo notes 17606f8 Added support for the "qvga" MACHINE FEATURE 387c360 Added support for the "qvga" MACHINE FEATURE 34cb63b matchbox-sato: update postinst to work with new initscript functions dae8dc2 task-sdk-gmae.inc: Add libxi-dev f643fcb matchbox-panel-hacks: remove empty directory 03d6f2a omap-3430ldp.conf: remove irda machine feature ebb3325 omap-3430ldp.conf: add phone machine feature 4f1efa2 initscripts: merge OE change of cpuinfo_id to machine_id, fixing gsmd's startup cf55538 libgsmd: add device configuration for omap3430-ldp 450c47d gst-plugins-bad: upgrade to 0.10.8 ad77fb0 gst-plugins-good: upgrade to 0.10.9 c81d0fe tslib: Disable all leagacy plugins, we don't need them 5ff2a13 formfactor: Add beagleboard config 1ada01f linux-omap2: More beagleboard updates from OE.dev 5e4da78 linux-omap2-git: Sync with OE.dev, add fixes to compile correctly with gcc 4.3.1 6dda6e3 linux-omap-2.6.22.19: Backport rootwait feature, make some further parts of the kernel modular feedc99 Add linux-omap-2.6.24.7 based on the ldp 1.4 kernel 9f55811 gsmd: add a patch to fix initialisation segfault 6f62619 qemu-config: added initscript dependencies and dropped killproc in favour of functions from initscripts fda9855 nfs-utils: added initscript dependencies 6a6090c initscripts: added initscript dependencies aa315fb irda-utils: added initscripts dependencies 429ea69 distcc: added initscript dependencies e2637a1 initscripts: functions file is not initscript 8ef4870 bluez-utils: added dependencies and restart function to init script de9da95 sysvinit: Remove cruft from rc we don't need 940cd85 opkg: remove duplicated / from postinst ba8644b initscripts: Remove empty directories 0b70a10 initscripts: Make rm nologin a .sh script a67fb6c gsmd2: install dbus system configuration file a934255 openmoko-dialer3: added libjana to deps 907a3ec bitbake.conf: added freesmartphone.org git mirror 1125bc8 Drop vincent, it doesn't work at present 2d5d1ef gcc-cross: remove not used symlinking for cross builds 5b06f27 xserver-nodm-init: make the init script depend on dbus, because the session needs it ed1b1e9 udev: add init script header so that insserv does the right thing (fixing mountall/devpts ordering issues) 6239bc4 Use the correct tty for Nokia800 machines. 49521c2 openmoko-dialer3: added 3d3fd4c poky-fixed-revisions: added openmoko-dialer3 e4643ae shared-mime-info: fix install 6a6bb07 glib-2.0-native: stage libgio 1aa265e shared-mime-info: build mime database on host instead on device 0fd3035 shared-mime-info: upgraded to 0.51 eaafef7 linux-rp: fix sound on corgi: ARM patch 5174/1 ff065ce linux-rp: disable OABI support for non-qemu targets a257966 linux-rp: refreshed sharpsl-rc patch f7ba3aa linux-rp: really use 2.6.26 5e12400 update-rc.d.bbclass: add code at start of post install scripts so it will be called on host 34d7e09 site/common-glibc: Set ac_cv_check_sjlj since system headers can otherwise break the setting in pth d21dbe2 glib-2.0: update native to 2.16.5 cc33fc0 python-native: update from OE and fix build after staging layout change c4d370a python-scons-native: fix after staging layout change 957b04b zope: fix build with new layout of staging a1c0e2c distutils.bbclass: fix build with new layout of staging dedc620 poky-floating-revisions.inc: Disable opkg/opkg-utils since upstream will break poky from this point onwards 7a5b0f0 glib-2.0: upgrade bleeding to 2.17.4 76d54d6 glib-2.0: upgrade to 2.16.5 a4c341a dbus-wait: bump to latest srvrev, using autotools fbfee20 linux-omap-2.6.22.19: Tweak kernel defconfig 1befcc0 xserver-nodm-init: rdepend on dbus-wait and wait for the desktop signal before continuing boot a228c31 matchbox-desktop: bump srcrev, and enable DBus e72a9df tslib: do not create two development packages b8a25e4 glibc: bump PR due to recent toolchain changes 2476a44 poky-eabi: use elfutils 0.131 with gcc 4.3.1 20d9950 elfutils: added 0.131 with Debian patches to build with gcc 4.3.1 41d6612 libspiff: update to 0.8.3 to get gcc 4.3.1 fixes 9b547ec icu: use -Os for arm to make it build with gcc 4.3.1 86cc4b3 linux-openmoko: fix build with gcc 4.3.1 6857ef4 avahi: disable libssp 05b0a21 uclibc/meta-toolchain: Catch up with toolchain changes 87796f6 gcc: Add toolchain build process changes from OE which adds gcc-cross-intermediate and removes glibc-intermediate based on a patch from Khem Raj as will be aplied to OE.dev making the build process much more rebust/stable/correct. f9651fa udev: Sync the rules with the versions from a more recent udev, optimise the boot process slightly by skipping boring ttys earlier ffc2de5 avahi: upgrade to 0.6.23 dba4931 scripts/poky-qemu-internal: Fix networking on qemuarm ext2 images e0fdf7f packaged-staging.bbclass: Add OELAYOUT_ABI to the package paths so staging packages become abi specific 8beb43c Move SANITY_ABI to its own file and give a more general name 09d8aa0 busybox: enable microcom c391403 meta-extras: Add minicom (from OE) a6b0bc0 linux-omap-2.6.22.19: Tweak the defconfig to unbreak the usb driver a bit and fix boot from mmc a3dd711 poky-fixed-revisions: added gsmd2 43aab47 gsmd2: taken from OE, cleaned, fixed deps/building, improved packaging 0a968ee linux-omap-2.6.22.19: Enable APM 99b8409 netbase: added qemuarmv6/7 support 1df8293 poky: ship qemu-config package for qemuarmv6/7 too da820a1 pointercal: added entries for qemuarmv6/v7 9a74694 formfactor: added qemuarmv6/7 cf9ecba poky-qemu-internal: added support for qemuarmv6/7 50e3ea7 linux-rp: added armv7a fix from linux-omap to make qemuarmv7 build 44abf32 linux-rp: added qemuarmv6/7 machines support 84d5380 opkg: qemuarmv7 also use gcc 4.3.1 dc82b9f poky-eabi: qemuarmv7 also require gcc 4.3.1 fc6fd10 openmoko-today2-folders: fix conflicts as we moved some components of Sato desktop 6867529 bitbake.conf: Default to SRCREV of INVALID 63e451e __init__.py: Error if SRCREV == INVALID dba215e gtk+: added libxrandr dependency ec1e837 native.bbclass: Also override BASE_PACKAGE_ARCH e5bc471 native.bbclass: Override BASEPKG_HOST_SYS and TARGET_SYS in the native case a16f50c poky-image.bbclass: Add POKY_EXTRA_INSTALL variable 8885ae6 linux-rp: 2.6.25+2.6.26-rc4 -> 2.6.26 and apply the i2c suspend/resume fix for zaurus devices 8b1c5c4 clutter.inc: add depends for 3430-ldp 8f6086d dbus-wait: fix build 1bcc0f7 poky-fixed-revisions.inc: Add dbus-wait 582c57c Add dbus-wait b4ddca7 clutter-box2d: Mark as machine specific 6fc273a bitbake.conf: Add nasty workaround to deal with machine specific and 'all' architecture packages. This problem needs to be revisisted 2e56dd0 loudmouth: upgraded to 1.4.0 c731df8 telepathy-glib: upgraded to 0.7.11 f4cc988 telepathy-gabble: upgraded to 0.7.6 4a32f7d libtelepathy: upgraded to 0.3.3 7062297 empathy: upgraded to 0.23.4 f02f67c telepathy-mission-control: upgraded to 4.61 5c76228 handbook: added 2008 to copyright 3eb7dc4 handbook: fixed typo 7c1f208 meta-toolchain: Fix pkgdata location 9d4dd6d sharp-flash-header: Install into machine specific staging area so do_rootfs can find it 110830d sdk.bbclass Fix after the staging layout changes fc128ab udev: Move machine specific parts into a separate extra package 78c793f bitbake.conf: Add CO_DIR and STAGING_EXECPREFIXDIR from OE df39b9e cross.bbclass: Preserve BASE_PACKAGE_ARCH variable when chaging HOST_ARCH a566074 bitbake.conf: Split STAGING and CROSS to become target specific so armv5 binaries don't mix with armv6 or v7, likewise with the cross compilers themselves. Also move pkgdata our of staging since it follows a totally different directory structure to staging. These changes break ABI so change the ABI number 7471ff9 gnome-common: PACKAGE_ARCH=all isn't appropriate since STAGING_DATADIR is target specific af361db opkg: Only add no-array-bounds option for armv7 machines e36b4c3 opkg: Bump PR after CFLAGS change 51593c2 linux-omap-2.6.25: Fix compile with gcc 4.3.1 e801147 opkg: Add Wno-array-bounds to opkg CFLAGS to avoid bogus errors with Werror and gcc 4.3.1 2708171 linux-omap_2.6.22.19: Fix patch order cc8e31c poky-floating-revisions.inc: Allow oprofile version to float in bleeding builds 17268d4 linux-omap-2.6.22.19: Apply fixes for gcc 4.3.1 and to fix the pixclock allowed values range dc1789a scripts/pokyABConfig.py: Add 3430ldp and beagleboard ac757c1 musicbrainz: Fix compile issues with gcc 4.3.1 b60a7b4 libmad: Remove bogus option which breaks gcc 4.3.1 builds 031748a machine/armv7*: Enable the cortexa8 tune file for the appropriate machines 9124b01 tune-cortexa1.inc: Rationalise options, at least until gcc support for the others improves 756a1d7 poky-eabi.inc: Use gcc 4.3.1 for armv7-a targets 4fcf8e1 poky-fixed-revisions.inc: Update oprofile versions b45b2c2 oprofile: Update to 0.9.4 making it the default and remove merged patches from cvs version e8bda85 gcc 4.3.0 -> 4.3.1 (from OE) f204c83 binutils: Add csl 2008q1 version a9da1c7 opkg-utils: Switch to svn 8b1f2c4 poky-fixed-revisions.inc: Add opkg-utils SRCREVs 2d39cfb netbase: Disable networkmanager control of eth0 on omap sdp/ldp boards ba2831f gcc-common.inc: Use STAGING_DIR_TARGET instead of a more hardcoded path 7b19ef1 linux.inc: Fix whitespace 78fc9af linux-omap2: Add from OE for beagleboard e9ebcc4 conf/machine: Add beagleboard from OE.dev aafb4d6 tune-cortexa8.inc: Remove tree vectorization option for now, it causes too many problems 94241d9 Add gcc CSL 2008q1 from OE.dev 382427b Drop ipkg-utils d12df54 Switch from ipkg-utils to opkg-utils 7332ac9 Add opkg-utils ba539ab bitbake.conf: Set MULTIMACH_ARCH to a default value 5b799cc bitbake.conf: Add PACKAGES_DYNAMIC for PN-locale packages 375f699 bitbake.conf: Add QEMU_OPTIONS for armv7a 767d9ca Merge multimachine class into bitbake.conf and create singlemachine.bbclass as a backwards compatibility option 45d0dac1 bitbake.conf/tune.conf: Set BASE_PACKAGE_ARCH and build PACKAGE_ARCH from this a906cd2 apt: stage headers/libs ab4f8bb gtk+: moved cairo dependency to common file 66ad7f3 gtk+: stage few extra headers required by libhildonfm 50fd5b1 checksums.ini: some new entries b0e21e2 poky-fixed-revisions: fixed oprofile PREF_VER 175c36c xserver-nodm-init: fixed start level to 9 as 09 was treated as octal 8df11e5 poky-revisions.inc: Drop owl-video-widget, update opkg SRCREV ebb08f0 stage-manager-ipkg: Use head -n1. not head -1 cd42b9b owl-video-widget: Split into owl-video and libowl-av 134c555 poky-revisions.inc: Add libowl-av and owl-video 6da21d0 clutter-box2d: Hack to make it work with clutter 0.8 0ef4807 netbase: Disable networkmanager on eth0 for omap-3430ldp 33d9938 networkmanager: Add a method to stop network manager controlling selected network interfaces a3d88b4 fontconfig: Disable parallel make d0ba74c hal-info: do not depend on HAL - it is circular dependency b17cdb2 udev no longer symlinks for udevcontrol, udevsettle and udevtrigger. Modify init script to use udevadm [action] b645d5c Make udev-124 the default. ba239b0 package.bbclass: Skip symlinks when searching for shlib dependencies since we can cross into the build system binaries 47780f8 Recipe for udev-124 4c78c04 oprofile: Fix patches to work with a more recent version 1166e11 poky-fixed-revisions.inc: Bump oprofile and web-webkit revisions/dates 1765792 webkit-gtk: Disable the internal 'fast-malloc' and use the perfectly adequate system malloc 39a81a4 tune-xscale.inc: Compile webkit-gtk for armv4t since there are massive alignment issues with double word instructions with webkit on armv5 29b0344 gnutls: Stop gnutls using the build system zlib 351dd33 glib-2.0: upgrade to 2.17.3 in bleeding 285ac1c Add insserv bd26751 networkmanager-applet: use a .sh session script 670fd32 networkmanager: use a proper init script with depends 56ff3a1 gdb-cross-sdk: Add missing dependency on expat-sdk b8fe224 expat: Add -sdk version a86d34a initscripts: don't check for devfs, it's gone ff5679f Bump OProfileUI revision. Bump Clutter revision. 976e3b9 nokia800: Fix machine description 02f6573 pointercal: This calibration applies to the ldp, not the sdp 2c46d61 formfactor: Add omap3430ldp based on the sdp f66e079 Add the omap-34030ldp machine d04db3c linux-omap: Differentiate between the 3430ldp and the 3430sdp kernels 0a62277 matchbox-keyboard; don't spawn a subshell 7ff4da3 portmap: remove unused patch fa001bc xrdb: use .sh session script 8fab210 xserver-kdrive-common: change 12keymap and 90XWindowManager to .sh 3c181f4 glib-2.0: upgrade to glib 2.16.4 62cf617 settings-daemon: use a .sh session script 0504f93 xserver-kdrive-common: don't use run-parts but instead exec or source scripts da7a051 portmap: add init script depends fef1266 dbus: add init script depends 24c9b5d modutils-initscripts: add init script depends 8499da7 busybox: add init script depends 8c28cb5 xserver-nodm-init: add init script depends 267f97e dropbear: add init script depends 9ae4645 netbase: add init script depends 95eb982 psplash: add init script depends 1f36523 avahi: add init script depends 26628bf apmd: add init script depends bde70a9 initscripts: add dependency headers 2a7b3ad poky-fixed-revisions.inc: bump desktop srcrev 1bb8542 initscripts: do not check for kernels <2.4 on mounting swap a243bf5 keymaps: initscript can be sourced 4322a92 modutils-initscripts: do not call depmod on boot time if not needed bca3ead dpkg: rm rcS.d/S98configure to not run it on non-first boot d44b557 dbus: start at rc5.d/S02 instead of S20 15cc35e xserver-nodm: sleep for 20s after X11 start to give time for x11 userland to boot a0094b2 xserver-nodm: do not run itself in background 457dc1c xserver-nodm: start at rc5.d/S09 not S99 faf85bc Move avahi UI tools to a separate binary package. 0a9f1a2 pcmanfm: added missing dependency 398512e udev: use init script from OLPC 5e2864a vincent: added missing dependency on x11 4fb5a5a syslog-ng: added missing dependency on glib-2.0 0c01acd matchbox-applet-volume: added missing dependency on gtk+ abba46a libtool-sdk: create directories before staging into them 254aa06 libopensync: added missing dependency on zlib 655559f moko-gtk-engine: added missing dependency on gtk+ 1b16736 libsync: added missing dependency on avahi 65950aa matchbox-wm-2: added missing dependency on gtk 9723000 openmoko-mediaplayer2: added missing dependency 5246cd0 liburiparser: added from OE (needed by openmoko-mediaplayer2) 44b8971 libspiff: added from OE (needed by openmoko-mediaplayer2) 3a7ed03 gccmakedep: added missing dependency on util-macros 08b2c3b imake: added missing dependency on util-macros 797944f networkmanager: added missing dependency on gnome-common d1c8fbb lndir: added missing dependencies 853c881 puzzles: added missing dependency on libxt 9361ec0 oh-puzzles: added missing dependency on libowl fe4bd95 matchbox-panel-2: added missing dependency on dbus-glib 59d28e0 wbxml2: added missing dependency on expat 2f19d88 libnotify: added missing dependency on dbus-glib 1a8244a libmokopanelui2: added missing dependency on dbus 5beb432 libcroco: added missing dependency on zlib a89ebcb kf: added missing dependency on libglade b43138a libgalago: added missing dependency on dbus-glib 4e7c418 gypsy: added missing dependency on dbus-glib f7f367d contacts: disable GNOME-VFS 7c2d406 dates: added missing dependency on libowl 1dfb747 clipboard-manager: added missing dependency on x11 d512da6 contacts: added missing dependency on libowl 4a38dab packaged-staging.bbclass: force symlinking as ipkg->opkg link can be present 7344690 sqlite3: stage headers in do_stage task bc0a19c vte: added missing dependency on ncurses 32b7efc fstests: added missing dependencies 7f8da38 packaged-staging: allow to set DEPLOY_DIR_PSTAGE in local.conf 8344c7b fontconfig: updated to 2.6.0 98b1bac fontconfig: drop freetype-native dependency 954f1cc Bump oprofileui revision 83ea1f3 apt-native: create var/log/apt/ dir so rootfs building will work 47885dc rootfs_deb: use dpkg-scanpackages as our apt-native does not have apt-ftparchive anymore c12a908 dpkg: ncurses were needed only for dselect bc194fe apt-native: remove db-native and curl-native dependencies 5ec2c0b apt: moved apt dependencies to apt recipe d6c1ea9 ipkg-link: Drop d5d1466 handbook: Update to reference opkg. not ipkg 8e9f535 oprofile: Add RRECOMMENDS for kernel-vmlinux a6e8538 linux-rp 2.6.26-rc4: fix c7x0 config, added patch for unbreaking CPUFreq 87905fd linux-rp: mark 2.6.26-rc4 as default for c7x0 8ce2e75 webkit-gtk: For now, don't pull in gstreamer plugins or gnome-vfs on darwin 4f471c9 site/arm-darwin: Add/fix various entries 1308e6e site/common-uclibc: Add some extra entries 8722fb9 bzip2: Add 1.0.5 and autotool it 85221a3 clutter: Add missing patch f4f936a clutter-svn: Update enable-tests patch after recent svn changes 932d0b0 Use /sbin/iptables if which iptables fails. 41d987a nokia8x0: Serial console is on ttyS1 b3fb3cc linux-nokia800: Add diablo n800/n810 kernel a954363 apt: bump PR after last change bcfd6c0 apt: unbreak host checking 1d73583 initscripts: don't exit in sysfs.sh as this is sources 6b0a796 initscripts: remove obsolete tests 6cd4260 initscripts: don't create subshells for simple tests 5da8c4a xserver-kdrive-common, xtscal: move the X session script from former to latter 31006b9 xserver-kdrive-common: remove the xrdb session script, the xrdb package has it now 01c743d xrdb: move the xrdb xsession from xserver-kdrive-common to here 9b63c68 xorg-app: remove unused patch files f6e7776 udev: save another fork in mount.sh 9f5ec59 poky-fixed-revisions.inc: bump panel version 424de08 gtk: upgrade to 2.13.3 in bleeding 43f5623 vte: ship the pty helper 7717814 udev: don't fork so much in mount.sh f25cb73 ubootchart: increase priority of ubootchartd so it replaces init bedf34b poky-fixed-revisions.inc: bump matchbox-desktop version 1f96af0 formfactor: add omap-3430sdp c8bccd9 apt: added forgotten patch d1cee61 pointercal: add omap 3430/zoom calibration 91d7c5b apt: update to 0.7.14 7e8cf4d dpkg: upgrade to 1.14.19 2bbbafb gst-plugins-base: upgrade to 0.10.20 f2797b3 liboil: update to 0.3.14 27ca3c3 opkg: S98configure script is needed only on first boot ba3f99d gstreamer: upgrade to 0.10.20, drop merged patches 0f31e7d gst-plugins-base: pass -f to rm to avoid failure if reconfiguring a9151d4 poky.conf: changed comment about opensync 9b2c23f libsync: update dependencies to OpenSync 0.36 components 16f77e2 poky.conf: re-enable OpenSync components for world builds 08e1e60 opensync: drop SVN recipes 323cb70 syncml-client: drop as it is not fetchable anymore and OpenSync has own plugin for SyncML e108246 cmake: remove non-native one as cmake cannot be cross-compiled yet d3f559d package.bbclass: changed library regexp to get dependencies for opensync plugins properly 347ed8a checksums.ini: added some new entries b032203 msynctool: added 0.36 bd9cc19 libopensync: added check to dependencies and patch to get rid of Python 42243f8 libopensync: allow to build plugins in their source dir 3a9ee10 libopensync: zlib is not required c6e9ca1 opensync: add 0.36 (latest stable) 6c0e524 libsyncml: added 0.4.6 da3040f cmake.bbclass: added version from OE + cross-compilation support d03024f cmake: added 2.6.0 (based on OE 2.4.8 recipes) a1f24d1 opensync: set SVN versions as non-default 50f13f9 opensync/syncml: Sync with changes in layout upstream 30d39ad poky-autobuild-notifier.bbclass: Make sure the message is sent to all recipients 1033722 poky-autobuild-notifier.bbclass: Fix parse error e38122a scripts/poky-autobuild: Activate poky-autobuild-notifier a833e9a classes: Add poky-autobuild-notifier class afe20e4 settings-daemon: drop the use of xrdb as its old school 51948ab lirc: 0.7.1 -> 0.8.3 ba66617 Drop empty directories 005c666 bash: update patches to 039 90bafd3 speex: Drop 1.1.12+1.2beta2 778546e Drop empty directories 99efd20 lzo: Drop 1.08 322393c linux-hotplug: Drop, we don't support 2.4 kernels 5b286d9 linux-libc-headers: Clear out old versions fa3ae72 linux-libc-headers: Clear out old versions 25c0b97 linux-libc-headers: Clear out old versions 018963d gtk-engines: Drop 2.7.1, make 2.12 default 9c0b1af db: Drop 4.1.25 59ac2af apt: Remove 0.7.2 5d4591b valgrind: Drop 3.2.1 bcbc39b syslinux-native: Drop old versions 8376756 task-poky-x11-sato: Remove matchbox-themes-gtk, its not needed 0d00736 gtk+: remove 2.6.10 0a2c4cd gnome-keyring: remove old 0.8.1 version 4f44cc1 contacts: update to 0.9 and refresh patches 5b6fb58 vala(-native): added to satisfy dependencies of openmoko-terminal2 af93369 openmoko-terminal2: fix name of Liberation fonts package in RDEPENDS c931b75 tiff: make it work after libtool upgrade 3c58460 meta-toolchain: Fix to use layout_libdir 2c74c80 meta-toolchain: Make sure lockfiles directory exists 19968fa poky-fixed-revisions.inc: upgrade e-d-s to r676 6a7b00d poky-fixed-revisions.inc: bump gconf-dbus version to 693 74df02e gnome-vfs: remove 2.18.1, unused now 9745db6 packaged-staging.bbclass: Fix indentation 168fda4 packaged-staging.bbclass: create the opkg directories as required (from Richard) f12d247 glib,atk,pango,gtk+: add unstable releases and use in poky-bleeding 4d650a7 dbus-glib: upgrade to 0.76 f37e581 initscripts: use pidof command in killproc() function 7f5b6f9 initscripts: rename simple shell scripts to *.sh so they are sourced instead of forking b357bf3 initscripts: dropped suport for mtdram style ramdisk 123cce0 initscripts: do not install 'devices' initscript - we do not support devfsd a8cda2f libtool: changed staging - will unbreak pulseaudio f3d0826 pango-1.18.3: move the SRC_URI defintion to the bb files as the patches to apply are not correct for all versions 4ffff2e pango-1.16.5: remove, it isn't used a55c18a atk_1.18.0.bb: remove as it is unused 4353e39 poky-fixed-revisions.inc: Update SRCREV for opkg 4467 -> 4488 7fc8a73 gst-plugins-good: Add RPROVIDES for gst-plugin-id3demux 7438d56 image.bbclass: Make sure DEPLOY_DIR_IMAGE exists before running image generation 75d7e7c popt: 1.13 -> 1.14 to fix uclibc issues 50d816f Add formfactor to handbook todo list 1679f80 clutter: Prefer svn version 2a8cda9 clutter.inc: Add omap-3430sdp options 1ef9efb task-poky-nfs: Fix for uclibc deb75e0 gtk+.inc: Handle uclibc case correctly f057afb local.conf.sample: Use pokylinux.org 822ea0e bitbake: apply r1075 from upstream to get postinsts working again d99418a poky.bbclass: Use pokylinux.org as the source mirror f873d55 prelink: Merge DTPOFF32 fix into main patch 5d40cb0 prelink: Add fix to correctly handle R_ARM_TLS_DTPOFF32 symbols 7f0ef9e poky-fixed-revisions.inc: Bump matchbox-desktop to get as-needed fixes 96fa4cd glibc-2.6.1: Add include-fixed,patch to fix issues with recent gcc 64a6478 gcc-cross-configure.inc: Move libssp to staging directory 3bac7a0 tune-cortexa8.inc: Disable -ftree-vectorize option for libxcursor for now 8dde4c7 linux-omap: Add 2.6.22.19 version d2ae519 conf/machine/include: Add tuning .inc files from OE.dev 343c2cf poky-external-csl2006q3.inc: Set TOOLCHAIN_OPTIONS so the sysroot is set correctly 3c2996b avahi.inc: Add missing libglade dependency 3dbb2c0 Newer versions of gcc have multiple internal header directories and when glibc builds using -nostdinc, it must also add all these internal directories via -system. dd5ed4b Adds a patch for glibc-2.5 so as to no longer reference linux's private asm/procinfo.h and instead use a glibc internal definition for HWCAP_VFP. 94d87fa avahi: enable GTK support (required by OProfileUI) f3d5c0f distcc: ship fixed desktop file to get QA happy 23603c7 mtd-utils: move tag to current HEAD - fix build error on Fedora 9 (reported by prpplague) bb3a13b vte: libvte package should not contain libvte.so ee47fe0 Add eabi7 POKYMODE for csl2007 toolchain for experimentation d03981d gcc: Add csl 2007q3 from OE.dev 76c8b40 opkg prints 'loading conf' informations so we get two lines each time 8009f0e rootfs_ipk.bbclass: do grep in install_all_locales just once 99e0700 rootfs_ipk.bbclass: reformatted install_all_locales function eedc6b9 rootfs_ipk: added ROOTFS_POSTINSTALL_COMMAND d35ae18 poky-floating-revisions.inc: Disable webkit-gtk bb0b617 stage-manager-ipkg: Fix quoting in sed expression fixing sed errors dedaeb4 packaged-staging.bbclass: Tweak package install command 65ff103 pulseaudio: add forgotten patches b6f01d3 poky-floating-revisions: Prune pointless PREFERRED_VERSIONs 7186fa2 poky-fixed-revisions: Prune pointless PREFERRED_VERSIONs efbf8bc poky.conf: Move fixed revisions to a separate file, add floating revisions file merging in older file contents. Set bleeding builds to use the floating revisions. aa6d1a3 task-poky: Split task-poky-x11-sato into a separate file 2e38d27 task-poky: Split task-poky-apps-x11-pimlico into a separate file d4e39f9 rootfs_ipk.bbclass: Fix for use with lock capable opkg f6d53bb libatomic_ops: added forgotten patch 8678ec5 rootfs_ipk.bbclass: remove opkg lists later as some rootfs postprocessing may require them 626a4ac rootfs_ipk.bbclass: added install_all_locales function 14b747c rootfs_ipk.bbclass: do not install glibc-localedata-i18n separately - language support will fetch it automatically 31a8eb3 linux-rp_2.6.25+2.6.26-rc4: Bump PR after kernel.bbclass changes 7a9da6a kernel.bbclass: Sync with OE and get recent kernel i386 -> x86 fixes e284465 v86d: Force the correct configure options since it doesn't give sane defaults when cross compiling 2b2c8ec poky.conf: Update exmap-console SRCREV 0700c75 renames CVS_TARBALL_STASH to SRC_TARBALL_STASH which does the same thing but just has a slightly nicer name. bcc0079 qemu-config: Add extra options to the default exports file 342914e poky.conf: Update opkg and derivatives from 4209 to 4467 820bfa7 bitbake.conf: Fix PARALLEL_MAKE 6316aa9 checksums.ini: added some new entries 3f2be0f linux-rp-2.6.25+2.6.26-rc4: Drop unused patch 763cea2 linux-openmoko: do not provide broken symlink to latest image - kernel.bbclass do that better 2410184 linux-rp: Add 2.6.25+2.6.26-rc4, make default for qemuarm, qemux86 and spitz 2ef11ee linux-rp: Sync recipes with OE.dev 3618a08 linux-rp-2.6.23: Add patches from OE.dev fe8d060 linux-rp-2.6.24: Add patches from OE.dev 47a464d linux-rp-2.6.24: Add patches from OE.dev ecec2e5 linux-rp-2.6.24: Sync defconfigs with OE.dev 2850555 linux-rp-2.6.23: Sync defconfigs with OE.dev 04e4de5 v86d: 0.1.3 -> 0.1.5 578d807 libpng12: 1.2.16 -> 1.2.20 e154555 qemu: Fix SRC_URI 9e6cfe2 base.bbclass: Disable do_mrproper - it doesn't do anything sane/useful 6a86b13 Add TI OMAP 3430SDP Kernel and machine file. 6bb1c61 Remove 'bogus' kernel for LogicPD Zoom. Should be provided through standard 3430SDP support. b024871 Remove 'bogus' machine file. Zoom support should be possible through standard 3430SDP. 16b22d2 Add machine file for LogicPD OMAP3430 Zoom Kit fe878ed Add kernel for LogicPD OMAP3430 Zoom Kit 391e762 libtool: do not stage - libtool-cross stage proper m4 macros f83b1de Bumps the psplash SRCREV and removes the fbdev pixel format patch that has now been applied upstream. d723f42 libtool: stage headers dee07ad poky: update revisions of openmoko components 2d2c9c5 poky-image-openmoko: use webkit version of web 56bd25c openmoko: merge with OE fb8af86 poky: sort SRCREV alphabetically f4db03f pulseaudio: merge with OE + patches for libtool 2.2 d4740e0 libsndfile: merge with OE 27e194b libsndfile: there are c++ files in sources - fix configure.ac 10f85ff task-poky: Fix variable f983d43 Actually make NETWORK_MANAGER overrideable. acd0039 Make NetworkManager overrideable for machines. bd07290 Adds support for changing the fbdev pixel format when the default (e.g. 8bpp pallet mode) isn't supported. 1db5747 openssl: Sync with OE.dev 83b46eb pokyABConfig.py: Add om-gta02 d604b45 machine/om-gta*.conf: Sync with OE.dev 887c877 poky.conf: Update libgsmd and add xserver-kdrive-glamo 39eb232 libgsmd: Sync with OE.dev 691f2eb Add xserver-kdrive-glamo from OE.dev 0ce2f38 gst-plugins-ugly: upgrade to 0.10.6 ce433ab formfactor: Rename fic-gta01 to om-gta01 as per upstream 8b243f4 poky-qemu.README: Minor updates e95249b Rename fic-gta01 to om-gta01 as per upstream c56b95f Rename fic-gta01 to om-gta01 as per upstream 2c4695a gcc-cross-initial-4.3.0: Add DEPENDS on mpfr-native and gmp-native 820845f packaged-staging.bbclass: The staging_packager function should not be installing the package, that is the job of the staging_package_installer() function which is called with the correct locks held 7b6f1b8 build.py: Fix task override handling (breaks compatibility but it didn't work at all before) 9d81637 event.py: Revert accidental but harmless commit 019392e Drop bbimage c209f85 image.bbclass: Drop bbimage command b85bc27 devshell.bbclass: Export needed variables f7dd25d image.bbclass: Fix whitespace 240f403 checksums.ini: added some entries 8ca802e gnutls: update to 2.2.5 (security updates) b3f86c3 bitbake.conf: Properly export the PATH variable fe1c075 rootfs_deb.bbclass: Use DPKG_ARCH for the architecture field, not TARGET_ARCH since it breaks x86 831cf52 poky-image-minimal: Fix IMAGE_INSTALL 37f3bba module.bbclass: Fix external module version dependencies bfe8092 poky-image.bbclass: Correctly handle inserting package-managers into images by making it an image feature 03c0969 poky-image.bbclass: Remove DISTRO_TASKS variable and replace with POKY_BASE_INSTALL 9519898 linux-mx31: disable CONFIG_LOCALVERSION_AUTO fd7396b linux-mx31: disable CONFIG_LOCALVERSION_AUTO a62a583 linux-nokia800: disable CONFIG_LOCALVERSION_AUTO c5acfef linux-rp: disable CONFIG_LOCALVERSION_AUTO 6a468ef rootfs_deb.bbclass: Use /var/dpkg for dpkg status data 76df5ab base-files/initscripts: Switch to using /var/volatile for volatiles in common with OE.dev 1cc5d12 sysvinit: Enable volatiles caching c87c8e4 initscripts: Sync populate-voltiles.sh performance improvements from OE.dev b8d979b run-postinsts: Handle dpkg based images too 8b600697 rootfs_deb: Export OPKG_OFFLINE_ROOT for update-alternatives fixing dpkg rootfs generation d35f304 gtk-icon-cache.bbclass: Using dashes in shell function names is a really bad idea f1e89b2 bitbake: Sync with upstream 4bf7ed5 gcc-package-sdk.inc: Make sure c++ headers are included 7b86677 gcc-configure-*.inc: Fix up local-prefix and gcc-include-dir options 2036836 clutter-box2d: Install the file accounting for libtool 0b891ed task-poky-clutter: Add clutter-box2d 816639f task-poky: Split out tools tasks to a separate file 33826e0 task-poky: Split out nfs tasks to a separate file dc101b0 clutter-box2d: Install blockbox example a528013 poky.conf: Bump clutter-box2d SRCREV 7d4beb2 packaged-staging.bbclass: Make the class compatible with opkg, ipkg and ipkg-sh and allow auto switching between whichever is available. Fix task dependencies in BB_STAMP_POLICY == whitelist case. Remove now unneeded basic dependencies. aa3141e image.bbclass: Fix locking so multiple image targets work 0394980 stagemanager-native: This uses no patches do don't depend on any patch tools 9909e98 patch.bbclass: Make it possibe to override the patch dependency f0e154b packaged-staging.bbclass: Execute staging_helper earlier to make sure the configuration file exists when needed. When installing the package after building make sure the control and list files are created. Use stage-manager-ipkg-build instead of needing ipkg-utils-native 0b54064 stagemanager-native: Add stage-manager-ipkg and stage-manager-build 43a9974 gcc: Sync libssp changes from OE.dev 3c35b00 gcc: Sync with OE.dev 4c664f6 packaged-staging.bbclass: Improve postamble exit code handling 1cde663 Add clutter-box2d 703394c site/arm-darwin: Add ac_cv_va_copy 9bc7b7c meta-toolchain: Fix typo 0a4ca92 clutter: Use gtk-doc.bbclass 9b6d8f4 classes: Add gtk-doc.bbclass baadb35 meta-toolchain: Fix symlink for darwin 1d4c242 meta-toolchain: Tweak CONFIGURE_FLAGS 3c819c6 meta-toolchain: Add some extra useful configuration variables and darwin specific tweaks a71df55 packaged-staging.bbclass: Add code to handle checking the stamp dependency tree properly 217b864 Use /sbin/fdisk because not all systems has /sbin in PATH 71cb5a5 mtd-utils: update to newer snapshot 167052a bitbake: build.py: Need to run expandKeys before launching tasks c7c7454 libetpan: mark cxx-is-here as a patch 9365115 libetpan: updated to 0.54, added curl/expat to dependencies 6f726d6 openssl: update to 0.9.8g (from OE) e14d7dc bitbake: Sync with 1.8 branch 152f14b gnutls: update to 2.2.3 f59c859 checksums.ini: added gmp 4.2.2 and libtool 2.2.4 7564d63 base.bbclass: Add sanity check for multiple file matches to oe_libinstall from OE.dev b6fefce7 autotools.bbclass: Switch stage_autotools_all to change la files itself and to stop using oe_libinstall 9b3ef75 initscripts: Remove mtab madness from checkroot.sh since it doesn't work with busybox mount and a symlink to proc is much easier 909ea43 poky-qemu-ifup: added NAT setup afec17a jpeg: Drop more cruft from the debian patch 63109d8 libtool-cross: Add dependency on libtool-native 33fd511 meta-toolchain: Fix status file path and hence extras tarball generation bae94f8 ipkg-utils: added quick hack to get images built under Fedora 9 1d4d53e jpeg-native: Drop, we don't need it? 4415259 jpeg: Rip out debian libtool hacks and use libtool-cross from staging. Also set tag mode to avoid issues with modern libtool 1b969af sanity.bbclass: Sync with OE, introduce TMPDIR ABI versioning, drop bitbake 1.8.6 cruft, only run the mmap_min_addr check on ARM when we need to run binary locale generation 63d1296 sanity.conf: Sync with OE, introduce ABI versioning for TMPDIR, bump minimum bitbake version f7cabaa sanity.bbclass: Add check of the /proc/sys/vm/mmap_min_addr value and warn if its potentially problematic 6c004de uclibc: Add qemuarm machine conig bad655b uclibc: Drop default uCibc.machine to make misconfigurations more obvious 09cc7bd uclibc.inc: Add note about enabling logs 8076a7b base.bbclass: don't add shasum-native dependency if we are building shasum-native 71f9395 task-poky-standalone-sdk-target: Drop uclibc-utils be886a8 autotools.bbclass: There is no need to use the strange -t option to cp anymore 699b6f9 libtool-sdk: Make sure target directories exist f6d5b98 scripts/poky-qemu-internal: Check /proc/sys/vm/mmap_min_addr value and error if its potentially problematic 584aeb5 libtool-sdk: Fix staging function 82c04d1 scripts/pokyABConfig.py: Add meta-toolchain-sdk to darwin builds too f1432a3 task-sdk-host: Add libtool-sdk to darwin8 host packages 4a0a09e libtool: Add libtool-sdk e60c8bb lame: bandaid configure 3f92181 scripts/pokyABConfig.py: Add meta-toolchain to darwin builds 2dad466 meta-toolchain: Don't remove .la files, try and fix them 12ea926 task-sdk-host: Add darwin8 override b7e4fab meta-toolchain-sdk: Allow the default task to be overridden b7c0867 site: Add arm-darwin8 3b53488 bitbake.conf/siteinfo.bbclass/package.bbclass: Add in support for 'darwin8' fee0c6a icu-native: Bandaid do_configure 1fb007d freetype: Fix configure statement ordering to work with libtool changes b15f41a portmap: do not install initscript with world-writable permissions 2e6d580 libtool: Upgrade 2.2.2 -> 2.2.4 2fdb008 poky.bbclass: Fix mirror URLs 01bb9af runqueue.py: Fix default whitelist variable value f715ee6 poky-qemu-internal: give 128M for qemux86 - otherwise generating of locales fails d6addd4 bitbake: Sync with 1.8 branch upstream for PREFERRED_PROVIDERS message improvements and BB_STAMP_WHITELIST functionality cd4e478 packaged-staging.bbclass: Set BB_STAMP_WHITELIST with packaged-staging tasks, update package location code to deal with packaged which don't exist, preserve stamp timestamps when copying them f674f81 libx11-sdk: Add xproto-native to DEPENDS be66182 zlib-sdk: Make sure STAGING_INCDIR exists 317b536 sdk.bbclass: Instead of changing HOST_VENDOR which badly affects gcc compilation, modify STAGING_DIR_HOST. a16b7a1 libtool-2.2.2: Add fix for patch from upstream eaf9aa4 libtool-2.2.2: Cleanup patches 1122b00 packaged-staging.bbclass: Fixup do_prepackaged_stage references 97c2950 clutter: Update to latest trunk 648cb99 clutter: Fix configure with trunk 3f3eaca scripts/pokyABConfig.py: Change darwin builds back to full instead of incremental d367e44 scripts/poky-autobuild: Correctly update the extra meta-darwin checkout c812124 cairo: Add 1.4.14 back for now cfa81e6 libx11: Add xproto-native to DEPENDS b4b5d07 libx11: Fix command ordering 16e8921 libx11: Fix do_compile hack to use native headers and allow do_compile to run more than once b110812 libtool-2.2.2: Add fixes for darwin, drop uclibc patch as it should no longer be needed 06fd2b6 base.bbclass: only depend on shasum-native if we don't have hashlib 6697984 sanity.bbclass: we don't use the md5sum binary any more, remove it 9fb8bc4 When checksuming tarballs use bb.utils.*_sum instead of calling commands directly 8bfb925 Use bb.utils.md5_file isntead of calling md5sum a74658d Add md5_file and sha256_file checksum methods which use the builtin Python checksum code d85e5ff scripts/pokyABConfig.py: Make darwin autobuild incremental temporarily 5e7604a gtk+: fix a warning when creating the file chooser d14f7bd scripts/poky-autobuild: Fix quoting 21d5869 scripts/poky-autobuild: Fix darwin code to append, not overwrite d9bb811 scripts: Add meta-darwin build to the autobuilder 732e3ca scripts/poky-autobuild: Really fix return value 7a0c34a gypsy: bump SRCREV to 147 14ccccf gmp-native: Fix PV 57d9d26 gmp: 4.2.1 -> 4.2.2 b4ebeec packaged-staging.bbclass: Fix variable name typo 04c650a scripts/poky-autobuild: Preserve exit code 7b717d2 pokyABConfig.py: Fix typo a010a4c scripts/pokyABConfig.py: Add checkuriall test for qemuarm world da27611 poky-autobuild: Attempt to clean up scripts slightly 5d5fab7 scripts: Allow passing multiple parameters to the autobuilder 3d7c155 uclibc-initial: Add ncurses-native to DEPENDS (from OE) 01daae9 scripts/poky-autobuild-postprocess: Ignore chmod failures 6a64dc6 scripts/poky-autobuild-postprocess: Don't clean the destination directory aab46e6 scripts/poky-autobuild-postprocess: Remove paths from script ff05951 scripts/poky-autobuild-postprocess: Fix typo 15218d4 scripts/poky-autobuild: Further path fixes f466228 scripts/poky-autobuild: Fix directory expectations of the postprocess scripts 40d86fd scripts/poky-autobuild: Fix ordering 46e8a36 scripts/poky-autobuild: Source the environmental setup script earlier 6b8df05 scripts: Update autobuilder scripts to run postprocess after each task completes e88c641 scripts: Add extra autobuilder config 9b0fe9f packaged-staging.bbclass: Fix install race, improve staging cleaning functions. 116861d handbook: s/COMPATIBLE_MACHINES/COMPATIBLE_MACHINE/ e1fcc01 base.bbclass: Remove unneeded imports a0fe51b openswan: Fix SRC_URI acc62fc bitbake: Tweak new URI checkstatus code slightly fixing two corner cases. d10b266 base.bbclass: Add checkuri/checkuriall tasks to check validity of upstream source URLs 748039c bitbake: Sync with bitbake 1.8 branch 192e4fb base.bbclass: Add setscene task to handle preparing the work area at the start of a given task, fixing the handling of the rebuild task. This task removes the need for do_prepackaged_stage in packaged-staging.bbclass. 04e667e qemu: Fix arm exception handling missing symbol 64d3fee local.conf.sample: Don't ASSUME_PROVIDED gcc3-native anymore 7a0f31b poky.conf: Upgrade qemu r4027 -> r4242 389dc8c qemu: List and refresh the revert_arm_tcg patch 10e72e4 Bump SRCREV for clutter. f3e36a1 Refresh enable_tests.patch for clutter trunk. df99aab bitbake.conf: Add quoting to the CVSROOT option for the cvs fetch command fixing proxy server issues (thanks to Mike Turquette for the patch) 0e3508c qemu: Add revert_arm_tcg patch, drop gcc3 check patch b1c880f gcc: Add 3.4.6 gcc-native 54b240e base.bbclass: Prefer gcc 3.4.6/7 over 3.4 869b97b qemu: Really use gcc 3.x 07a4980 qemu: Reenable gcc3 8d5784b qemu: Restore qemu r4027 until i686 issues are resolved c060372 openobex: fix parse error b5a8a56 qemu: Patch out gcc3 checks, limit the target list 3523d22 qemu: Move the gcc 3.4 checks to 0.9.1 only 13fccc7 qemu: drop unused insane patch 56a4a6f scripts/poky-qemu-internal: Enable n800 networking 927ad49 qemu-svn: Upgrade from r4027 -> 4242. Removes the need for gcc 3.x, adds USB networking for the n800 0e1fe20 qemu: Add two qemu usermode fixes 755df3a xserver-kdrive-common: do not load xmodmap - it breaks on 1.3.0.0 aa03bca checksums.ini: added some new entries e02398f Fix runqemu to handle clearing args 8504906 Allow user-specified options to be passed to qemu via poky-qemu 5e6ec76 task-poky-standalone-sdk-target: Fix up to work with uclibc 5fd1cfb xserver-kdrive: added missing file 073895b uclibc: Add ncurses-native to DEPENDS ea8f8be uclibc.inc: Fix HOSTCFLAGS change b37a067 qemu: added SVN recipes a2513fb xserver-kdrive: use extra-kmodes.patch for 1.4.99.901, changed status of patches fe4ec82 qemu: switched to SVN c7aafce xserver-kdrive-common: merged KDrive 1.4 support from OE b07a4ad xserver-kdrive: mark merged patches ff2e381 xserver-kdrive: added 1.4.99.901 (1.5-rc) from OE 6543b12 poky-nokia800-flashutil: Remove .16k file 8add63f scripts/poky-qemu: Add support for the nokia800-maemo machine c7005b7 packaged-staging: Make sure the task is part of the default tasks chain 1cea70a libvorbis: Remove now uneeded hack 9fac1c5 prelink: Drop no unmeeded hack c79d9c1 libtool-2.2.2: Add patch from upstream to fix -all-static flag issues 4f42e4f poky.conf: Drop QA_LOG, add QA_LOGFILE 1e53b0f insane.bbclass: Drop pointless QA_LOG variable, add QA_LOGFILE so QA errors can optionally end up logged in one place for ease of reference. Add sanity check searching for tmpdir references within built packages, not fatal at present. 9dc0c9f classes: Add packaged-staging.bbclass (from OE.dev) 90e7d08 libtool: Disable a section of the libdir-la patch since its doing more harm than good. This should fix sdk .la files at the expense of having to mangle files being installed into staging a06b6cb base.bbclass: Fix dependency_libs libtool mangling regexp bba4120 gdb-cross-sdk: Add missing ncurses-sdk dependency d1440e6 ncurses: Add sdk version and tweak common files to adapt for this 5357a94 uclibc: add STAGING_INCDIR to host C flags to make it build on systems without ncurses-dev 8bd2f38 poky.conf: prefer full version of opkg to not build opkg and opkg-nogpg in one run 82ad25c networkmanager-applet: disable libnotify if we do not depend on it a7acabe poky.conf: we use cairo 1.6.4 now so updated PREFERRED_VERSION_cairo eab49b0 cairo: Bump PR after DEPENDS changes to cleanup the autobuilder 7445d67 sanity.bbclass: Add a check for dash as /bin/sh and error if found 00bbe8d gtk+: Fix libtool issue causing dynamic module loading to be disabled a6bc7ad apmd: Improve libtool usage efba2e5 libxt: Add STAGING_INCDIR to the cflags for compiling makestrs a21dec2 cairo: added missing dependency on pixman a3d63a9 linux-openmoko: switch to 2.6.24 (from OE) e5444b0 poky.conf: generate UTF-8 locales only 2e83937 libx11: Add -I to the makekeys hack eebe267 cairo: updated to 1.6.4 58d88ce meta-toolchain: Fix up various paths and file locations to be more consistent 28f93a6 meta-toolchain: use opkg*.conf 698f1b1 poky-eabi: use gcc 4.2.3 66df6d1 gcc: upgrade 4.2.2 -> 4.2.3 abca3ca tiff: upgraded to 3.8.2 54ba5b9 vincent: added patch for libtool 2.2.2 ef9f598 vincent: switched to SRCREV 69dad36 poky.conf: set SRCREV for vincent 6b43567 libtool: Make 2.2.2 the default 7818320 libusb: Tweak libtool 2.2.2 fix 8c47575 prelink: Add hack for libtool 2.2.2 8f60c0e libsdl-sdk: Add a configure prepend to make sure the custom acinclude.m4 is used acd2ae1 pkgconfig-sdk: Fix duplicate patch application 76be5f4 libtvorbis: Fix with libtool 2.2.2 142d32e gettext: Add missing patch 46a5cd5 conf/machine/mx31*: Add armv6 to PACKAGE_EXTRA_ARCHS 05d6ea5 claws-mail: Drop uneeded custom do_configure from plugins a8ed061 gettext: Backport updated macros from gettext 0.17 to avoid conflicts with libtool fe074c7 poky.conf: Increase SRCREV for libfakekey, gaku and matchbox-desktop to gain libtool 2.2.2 fixes 6a87048 python-pygtk: unbreak e5e8dd3 freetype: Add --force option to libtoolize 52f94fa fontconfig: Tweak configure for libtool 2.2.2 993b552 libpng: Fix makefile for libtool 2.2.2 461d3b4 libusb: Revert patch for now 4c6ff89 cario: Add fixes for libtool 2.2.2 b38bc53 claws-mail: Drop strange custom do_configure, fixing libtool 2.2.2 782b9d4 gst-ffmpeg: Patch out beos bits from ffmpeg which break libtool 2.2.2 9bedb92 pkgconfig: Remove custom do_configure from pkgconfig-native, tweak autofoo.patch to fix some missing quotes apply autofoo.patch to all versions 04f6ecb libusb: Add patch to fix issues with libtool 2.2.2 8bf48df hal: Add fix for libtool 2.2.2 a905da3 tasks-0.13: Add configure fix for libtool 2.2.2 (already merged into svn) ce7bf0a freetype: Call libtoolize in custom do_configure to unbreak libtool 2.2.2 builds 4ce65a3 bluez-utils: libtool 2.2.2 puts files in different places, workaround... ca0f459 gstreamer: Remove horrible lib-link.m4 macro file which breaks libtool 2.2.2 with search path insanity 50f74c5 ncurses: Enable using libtool, fix makefiles so libtool works fd84c3e ncurses: Drop unused patches d6c7475 web-webkit: Add patch to configure for linking with g++ tweak else it breaks with libtool 2.2.2 0ba7ff1 networkmanager: Fix broken makefile for libtool 2.2.2 5255947 opkg: added version without GPG dependencies 59c131d opkg: really disable GPG in native and sdk d32078c site/arm-darwin: Add ac_cv_func_posix_getgrgid_r result 00f2aa5 glib-2.0: Update patch to work with libtool 2.2.2 d12aa66 webkit: updated to r31859 and disabled SVG fonts 0e55205 libtool-2.2.2: Update further patches 21c0f07 libtool: Add 2.2.2 (not default) 2e46a28 libtool-1.5.10: Drop unused patch 02a180a package.bbclass: unbreak 4f2380b llvm-native: Export the LDFLAGS, we do need them regardless of what the llvm devs think ef949a6 Add llvm-native 028178b package.bbclass: Add patch to try and handle dynamic librbary dependencies on darwin through libtool f09d3d9 task-poky: Add webkit back in, we have the rootfs space now cb1897b bitbake.conf: Add tar-native to ASSUME_PROVIDED, add FETCHOPTION_checkonly_wget f721fdc qemu: Add qemu-sdk cvs version 4b229ab poky.conf: Set SRCDATE for qemu-sdk and qemu d92851a libtool-cross: unbreak dolt.m4 0f331d1 libtool-cross: Enable using dolt for the cases where it works, work around broken libtool fallback handling 92e6c2c checksums.ini: added some new entries 644a8c7 qemu: Prefer cvs version 40a6551 scripts/poky-qemu: Add nokia800 support faf5513 scripts: Add support for nokia800 to runqemu 5091c0b qemu-cvs: Add nokia800 emulation 37ddd00 poky.conf: Set SRCDATE for qemu-native cvs version d1a700a qemu: Update cvs version to 20080308 fb45df8 qemu-0.9.1: Remove hacky patch and call configure correctly 26a637a mtd-utils: update to git HEAD 6c55027 external-csl-toolchain: Fix debug package creation 8f0ca1d matchbox-session-sato: fix postinst c42d54f task-poky: matchbox-sato was renamed d843068 task-poky: install matchbox-session in base X11 task c9ecfc0 matchbox-session-sato: start Sato components ac82765 matchbox-session: basic Matchbox session start script a42d7d3 matchbox-(wm/sato): moved creation of x-session-manager to matchbox-sato f0c6b03 poky: prefer xtrans 1.0.4 ee0426b xorg-headers-native: Drop, its not needed 90c8615 image.bbclass: Run runtime_mapping_rename over PACKAGE_INSTALL so debian renaming doesn't break the variable 1803f03 kernel-arch.bbclass: Sync with OE.dev 30f83b3 kernel.bbclass: Use INHIBIT_DEFAULT_DEPS to drop virtual/libc dependency since the kernel doesn't need it 63c1c2a apmd: merge recipe cleanup with OE 2c147f8 atk: merge unification from OE b796776 coreutils: cosmetic merge with OE (no changes) 06976c6 fakeroot: merge 1.9.4 from OE b3dddcd gmp: do not build with ARM Thumb 0fd6b09 gtkhtml2: added maxrev informations to all merged patches 325d3a9 initscripts: show banner when console is on serial - close #3767 (from OE) 294782d kexec-tools: merged unification from OE 3e5ee5a task-base: sync with OE 5be12a8 setserial: merge with OE (no code changes) 32cb209 xorg-lib-common.inc: Remove xorg-headers-native, we shouldn't need this... abb1097 glib-2.0: upgrade to 2.16.3 27331b1 poky.conf: Bump oh-puzzles SRCREV f73c0e4 Add site.conf.sample showing examples of proxy server configuration 67d5f04 bitbake: Improve fetcher runcmd function so error messages are visable and various variables are exported for the benefit of the git fetcher a546b63 scripts: Add git proxy script be963bf bitbake: Add proxy support to CVS fetcher (patch from Cyril Chemparathy) d9c27b9 Fix Phytec MX31 recipe 688af77 Update Phytec kernel to the latest BSP drop. ebc31ae xtrans: Remove bogus patch reference 0b0cf02 gcc: Add 4.3.0 from OE.dev (not default) 1f8b969 xtrans-native: Revert to 1.0.4 175e3be xtrans: Revert 1.1 to 1.0.4 to fix abstract socket breakage and fix the toolchain b4927ba meta-toolchain: Use layout_libdir in PKG_CONFIG_PATH cdc9910 meta-toolchain: Remove all problematic .la files fdf78e2 gst-plugins-bad: Disable cdaudio d7b04be Update the PKG_CONFIG_PATH in the environment-setup script to reflect the new path. a3b7d74 xserver-kdrive-common: check for execute bit on dbus-launch, not just presence ea0ec5a xserver-kdrive-common: always start a session bus when X starts, as X is the session f29e0ad matchbox-wm: install matchbox-session as the x-session-manager alternative feb437e xserver-kdrive-common: try running x-session-manager on startup before x-window-manager 5c3b29a qemu-helper-sdk: Add poky-qemu-ifdown (#863) 8ed65ea gdb: it is GPLv3+ now a0f23c6 gdb: upgraded to 6.8 98eb6fe python-native: added forgotten patches 2f3ca93 matchbox-theme-sato: unify recipes cdaaa55 gtk-sato-engine: unify recipes, bump PV in svn recipe 5121d33 gtk-sato-engine: make gtk-theme-sato depend on engine fcce99b matchbox-common: moved to meta-extras 3502262 matchbox-panel1 (and applets): moved to meta-extras 634eb19 vte: package minimal termcap to get mb-terminal working 4622d4d flumotion: improve packaging 69d4a92 libxosd: merge with OE (switched to SRCREV, fixed packaging) a177388 poky: added SRCREV for libxosd 27f3b8d python: upgraded to 2.5.2 (merged from OE) 4d10f01 python-imaging: added from OE (required for flumotion update) dc5aa58 libtiff: added 3.7.2 from OE (required by python-imaging) 4d6f846 flumotion: merged OE improvements (fixed packaging, more revdeps) fd652de insane.bbclass: use 'desktop-file-validate' from staging not from host system 1fb5af0 flumotion: python-pygtk2 is now python-pygtk 2c22638 python-pycairo: nasty pkg-config fix from OE 46e13ce python-pygtk: imported changes from OE 6569da9 zope: merged fixes from OE 5675f40 gstreamer: adapt po-makefile-fix patch a bit 40eb81c cpan.bbclass: remove bashisms 49f680f run-postinsts: switch to opkg 133a314 webkit: upgraded to rev 31467, enabled SVG fonts 544fa41 poky: bump WebKit to rev 31467 d4847af gstreamer:patch to fix problem with mkinstalldirs (from OE) 841b37b bitbake: Fix a bug where changed files weren't getting spotted and an invalid cache was being used ea20fb8 checksums.ini: added some new entries 0b285f9 preferred-xorg-versions: sync with updates 62c1e87 printproto: upgraded to 1.0.4 f54550a libxinerama: upgraded to 1.0.3 8e3e466 libx11: upgraded to 1.1.4 c81efe4 libxscrnsaver: upgraded to 1.1.3 3d4ffa2 libxkbfile: upgraded to 1.0.5 4276b1c libxv: upgraded to 1.0.4 ba57c48 pixman: upgraded to 0.10.0 25b0897 xinit: upgraded to 1.0.8 7543adc xrdb: upgraded to 1.0.5 9981f89 xset: upgraded to 1.0.4 6fe21f6 xrandr: upgraded to 1.2.3 d9e7625 xprop: upgraded to 1.0.4 270f331 xev: upgraded to 1.0.3 74abe03 xauth: upgraded to 1.0.3 2d3c00b x11perf: upgraded to 1.5 76beedc tzdata: upgrade to 2008b and merged few changes from OpenEmbedded: - added three unique Australian timezones which were not covered by any other cities already in the main package. - every entry in PACKAGES is by default in PROVIDES, so remove the bogus PROVIDES 129ba27 gettext: switch to autotools_stage_all cd22fcc pkgconfig: Fix problems with the sysroot implementation merged upstream, switch pkgconfig to link against an external glib-2.0 c3735c4 pkgconfig: and fix the patch, not my day... 2e5c5b9 pkgconfig.inc: Fix glib version dffb3e8 pkgconfig: Drop the right patch 5be3cd8 pkgconfig: Update to 0.23, drop merged sysroot patch d019cee diffutils: use update-alternatives for cmp (also provided with busybox 1.9.1) 069bb40 bash: fix postinst to not touch host system 513eb4b mtools: do not use X11 for non-native version too 4bca8a4 mtools: do not link with X11 678bf73 linux-mx31: bump PR due to last kernel.bbclass change e06e7e8 kernel.bbclass: use u-boot-mkimage-native for uImage kernels (from linux.inc) ecc896b linux.inc: use u-boot-mkimage-native for uImages 85e3e72 u-boot-mkimage-native: use 1.3.2 version instead of Openmoko patched version c642220 xtrans: Add patch from upstream to fix abstract socket handling a0d0bd2 gpgme: split packaging to package per library b33f6c2 pth: keep binconfig in -dev package 8f84474 neon: upgraded to 0.28.1 8d715a2 autotools.bbclass: Drop enable-maintainer-mode until such times as its been tested properly d128d6f rootfs_ipk.bbclass: new update-alternatives script use OPKG_OFFLINE_ROOT (from OE) 121b6e1 autotools.bbclass: fix typo in --enable-maintainer-mode e790b1a speex: upgrade to 1.2beta3 and disable floating point usage fa33400 automake: finish updating to 1.10, move some content between files to clean up 1e90da6 git: upgraded to 1.5.4.4 0f6cdfe curl: upgraded to 7.18.0 (latest stable) 3b6a4f9 gnutls: upgraded to 2.2.2 (latest stable) a9c49dd automake: upgraded to 1.10 e8efeb3 kernel.bbclass: Add staging hooks fece08f icon-naming-utils-native: bump PR due to staging updates 013882e autotools.bbclass: Add autotools_stage_dir to help staging directories and increase list of directories to stage (include base_sbin, base_bin and libexec) 33010a8 gcc-configure-cross.inc: Fix intertask gcc dependency 849af9b native.bbclass: fix do_stage (s/"]/" ]/) - taken from OE dd89cae neon: Add missing patch b4fd5ce neon: Work around pkgconfig issues 08e51e1 bintuils-cross.inc: Merge improvements from OE.dev e746654 gst-ffmpeg: Add missing patch ad621cb gst-ffmpeg: Run autoreconf instead of a broken custom do_configure 19f05c6 gst-fluendo: Run autoreconf to fix configure's libtool and unbreak the packages 4647fc8 tremor: Use autotools_stage_all 4e2e099 libgcrypt: Sync with OE and fix patch b431cdd telepathy-mission-control: Fix pkgconfig file 1607c8f gnutls: Fix pkgconfig patch b1d71fa libgalago: Fix pkgconfig, use autotools_stage_all 72e2faa wv: Fix DEPENDS and pkgconfig file 7377fc1 openssl: Remove uneeded library linking directory 1cdaf69 db-native: Add custom stage function ce1e2f2 libgcrypt: Upgrade to 1.2.4 and add pkgconfig support d36c1d8 autotools.bbclass: Some further tweaks to autotools_stage_all 69215b0 autotools.bbclass: Fix typos 80ec669 autotools.bbclass: Handle case where is an empty directory b26a7c4 autotools.bbclass: autotools_stage_all - improve handling of datadir 13de832 gcc-3.4.4: Add missing patch b02d95a autotools.bbclass: Add handling binary staging capability to autotools_stage_all for compatible binaries fixing various -native package issues 498b4af libxslt: Add missing patch c3a4acb libxslt: Upgrade to 1.1.22 with pkgconfig fixes ab5c2b9 xsp, xpext: Use autotools_stage_all df37962 vte.inc: Don't RDEPEND on termcap e5694cf vte: Merge from OE.dev, upgrade to 0.16.9 with fixes dc9026d curl: merged 7.16.4 from OE df498e4 poky.conf: fixed update-alternatives-native provider e292c51 gnutls: Sync with OE for enhanced configure patch, remove unused file 61d6810 Remove unused patches 1c7de99 popt: upgrade to 1.13 51fc436 base.bbclass: Sync with OE.dev 4b55118 cpan.bbclass: Fix native staging functions (sync with OE.dev) 7c097c7 package.bbclass: Sync with OE.dev 75d9692 poky.conf: Enable QA_LOG b1e715e insane.bbclass: Sync with OE.dev 44b538e update-alternatives-cworth: dropped as they are now generated with opkg recipe fe96342 opkg: provide update-alternatives(-native) 2f696d3 opkg-sdk: fixed directory for opkg informations 38854a1 autotools.bbclass/native.bbclass: Use autotools_stage_all instead of oe_runmake install for staging autotooled native packages (from OE.dev) 90552a3 gcc-cross-kernel: Add missing patches 845ac92 mtools-native: Don't build X11 components a99199d insane.bbclass: find desktop-file-validate on the path, so it can be added to ASSUME_PROVIDED aee156e gcc-package-target.inc: Add back precompiled header fix lost in the gcc changes 6068746 update-alternatives-cworth: switched to opkg 322fe39 opkg: depend on update-alternatives be6e02a gcc-cross-kernel 3.4.4-csl-2005q3: unbreak after gcc changes 3853440 xtrans: remove unneeded patch 2e9db06 dbus-native: fix builds without X11 e52c496 glibc-initial: Stage stdio_lim.h header 14d5f58 image.bbclass: s/ipkg/opkg/ - spotten by Koen Kooi c2c6f59 rootfs_deb.bbclass: s/ipkg/opkg/ - spotten by Koen Kooi 935a4d1 gcc-csl-arm-2005q3: Tweak PV for csl 2005 toolchain fc8e9ff gcc: Drop gcc 4.0.2, nothing uses it 1f909ea gcc-configure-cross.inc: Remove inter-task dependency for now b905e04 gcc: Add missing files + changes from the last commit 1255ee6 gcc: Merge in the major cleanup I made in OE.dev 402c7dc external-poky-toolchain: package-status doesn't exist any more c52bb0c external-poky-toolchain: Fix circular references eec0604 opkg-ipkg-compat: remove as we do not need it f6b3acd opkg-collateral: missing rename 25e3666 ipkg: drop empty dirs 615844a task-sdk-host: switched to opkg 7177c20 meta-toolchain: switched to opkg c006615 ipkg: dropped 2d1abf5 task-base: bump PR due to opkg switch 280f86e rootfs_ipk/image.bbclass: removing of opkg lists data to rootfs_ipk class where it should belong beb83fd opkg-collateral: moved from ipkg-collateral 346dec3 rootfs_ipk.bbclass: switched to opkg 15f1fd7 package_ipk.bbclass: switched to opkg e6746ff opkg: added forgotten file f608d3f opkg: fixed opkg-native to not create /usr/lib/opkg/opkg/ directory 23684b6 opkg: moved common stuff to opkg.inc, added S98configure 7ed9468 poky.conf: added SRCREV for opkg-sdk 2274035 opkg-sdk: added version for meta-toolchain f7be49a curl-sdk: added 7.16.2 required by opkg-sdk a619546 gcc: Drop 3.3.4 f2888e8 poky.conf: fix gnome-vfs preferred version 45bed45 zaurus-updater: Add deploy before populate_staging 2d849a9 gnome-vfs: upgrade to 2.22.0 251979e fic-gta0x: disable EXTRA_IMAGEDEPENDS 2c74957 meta-toolchain: many changes to make it expandable with ipkg 6b77c9e task-sdk-host: added ipkg-sdk 846e9b5 ipkg-sdk: added for meta-toolchain 3a2d92f ipkg: move PACKAGES mangling into ipkg itself 64c7b6e poky.conf: bump opkg SRCREV to get our fixes 0896690 db: switch sleepycat.com SRC_URIs to oracle.com ffc5880 bitbake.conf: Sync with OE.dev 853280f bitbake: Update with changes from bitbake 1.8 branch 097076d stage-manager: Sync with OE for various fixes 5f391a1 poky: bump SRCREV for opkg to 4206 3a75fb3 poky.conf: added SRCREV=4142 for opkg fe4cd71 pth: upgraded to 2.0.7 814e308 pth: added 2.0.2 (from OE) 362ccc1 site: merged ac_cv_func_posix_getgrgid_r from OE (needed by glib 2.15.6+) a2f942c site: merged common-glibc from OE 646f207 gpgme: removed libassuan dependency as it is needed only for gpgsm which we do not build 83bf46f gpgme: moved gpgme-config into gpgme-dev package 2567946 gpgme: reformatted 70483e4 glib: upgrade from 2.14.6 to 2.16.1 1fe9669 libassuan: added 0.6.9 (from OE) e210441 opkg: added from OE 3f65998 gpgme: added 1.1.4 (from OE) 11ca8a4 libgpg-error: upgraded to 1.6 d0de533 gst-ffmpeg: added gst-plugins-base dependency 329e6b5 bootimg.bbclass: removed bootsplash task support - we do not have such one 024567e cross-linkage: Add improvements from OE 95d8d6b staging-linkage: Add from OE beeeb78 poky.conf: Use += with INHERIT c80c235 gcc-package.inc: Drop libgcc-dev package since its part of the main gcc package 2f2086c task-poky-sdk: Remove libgcc-dev, its empty and now part of gcc f54f499 dbus: Add missing libsm DEPENDS 570f12e base.bbclass: Let unpack task remove S beforehand which fixes clean handling. Optimise some expand and getVar calls cd11b9e libtool-cross: Ensure staged libtool is the patched version 0e82382 qemu machines: enlarge rootfs to 280M 883cf6f base-files: added GPL-3 LGPL-3 GFDL-1.2 licenses cd0038b less: upgrade to 418 0560f38 poky.conf: we are after release so update DISTRO_VERSION 307bc14 tune-arm1136jf-s.inc: fix arm/thumb switching 68e1ac6 ohm: Fix configure problems e3c007f stage developent files for tidy 4d19e95 linux-mx31: bump PR to get mkimage problem fixed f70ffd8 u-boot-mkimage-openmoko-native: stage mkimage instead of deploying - should fix linux-mx31 build 64e621c gcc: remove precompiled c++ headers as they take lot of space and are not required 96c6976 preferred-xorg-versions.inc: bump libxfont e786d90 gcc-cross: do not generate *-dev packages as they are broken (proper ones are generated by gcc recipe) e67be26 preferred-xorg-versions.inc: updates 9872ff2 checksums.ini: added new entries b3f5ec3 util-macros: upgrade to 1.1.6 60bae70 inputproto: upgrade to 1.4.3 712e7d1 xproto: upgrade to 7.0.12 79f10c5 xtrans: upgrade to 1.1 0f8d8a8 libxfont: upgrade to 1.3.2 e4b9f10 elfutils: disable -Werror for 0.108 due to 'C99 inline functions are not supported; using GNU89' warnings 2f93fee preferred-xorg-versions.inc: renderproto 0.9.2 is preferred c347eaa strace: unbreak - patch from Debian 89fdbff renderproto: downgrade to 0.9.2 to unbreak xserver-kdrive 40f6fd6 poky.conf: bump web-webkit to version which builds with newer WebKit 75cf979 bitbake.conf: set CPU_FEATURES before it is used not after a2f0a2e coreutils: fix futimens error 56432da valgrind: added 3.3.0 bd75cbe bitbake.conf: enable VFP support for ARM machines (used by armv6 only) 25f62c4 armv6 machines: use armv6 tuning 75b40f1 xserver-nodm-init: use pidof instead of ps|grep|grep|sed to get PID of xinit 68fb848 machines: remove comment about building feeds for strongarm - OpenZaurus times are over af49a11 pixman: drop patch c9c661e preferred-xorg-versions: sync with latest changes dbd79b2 libxaw: dropped 1.0.3 01a16ee pixman: upgrade to 0.9.6 ba27083 pixman: upgraded to 0.9.6 5256c46 libx11: upgrade to 1.1.3 1ff07ca libxrender: upgraded to 0.9.4 c21d274 libxxf86dga: upgraded to 1.0.2 00ee543 libxrandr: upgraded to 1.2.2 41ba9ba libxext: upgraded to 1.0.3 fbd1592 libxtst: upgraded to 1.0.3 1850554 libxpm: upgraded to 3.5.7 aea6e62 libice: upgraded to 1.0.4 c8f42e6 libxcursor: upgraded to 1.1.9 6ebc2d7 libxmu: upgraded to 1.0.4 193deff xtrans: upgrade to 1.0.4 114011f libxi: upgraded to 1.1.3 6972a8b xproto: upgrade sdk to 7.0.11 761108c xf86dgaproto: upgraded to 2.0.3 1eea7db inputproto: upgraded to 1.4.2.1 bf15d0e renderproto: upgrade to 0.9.3 ff95a9c xproto: upgraded to 7.0.11 9b91eba glproto: upgraded to 1.4.9 80d909a xvinfo: upgrade to 1.0.2 51ceaa9 xmodmap: upgrade to 1.0.3 0d44914 xrdb: upgrade to 1.0.4 ed3c222 xset: upgrade to 1.0.3 d552879 xinit: upgrade to 1.0.7 5ab50f9 webkit: update to 30762 from OE a31ec3d Enable OProfile for MX31 ADS. bba3603 libsdl-sdk: disable svga output b991033 qemux86: use march=i586 when compiling - should unbreak glibc 3fc975f task-base:added dtl1_cs workaround for 'bluetooth' FEATURE and more modules for 'wifi' 1135efb task-base: move avahi to 'zeroconf' DISTRO_FEATURE, fix 'smbfs' DISTRO_FEATURE 952fa1e mpfr: update to 2.3.1 db497d9 poky: bump matchbox-panel-2 ae7ce77 dbus: unbreak buildbot 5b5e1a3 Spit out tidy-examples package with the tests in. 73a457e dbus: renamed 1.1.4 -> 1.1.20 and added missing patch fdb0029 poky: use dbus 1.1.20 by default 21d430e poky-eabi: switch to gcc 4.2.2, glibc 2.6.1, linux-libc-headers 2.6.24 68fe3dc linux-libc-headers: added 2.6.24 0a7e1e3 dbus: upgrade 1.1.4 to 1.1.20 (from OE) dfb52ce debian.bbclass: merge DEBIANNAME support from OE 68e4dbb glibc: added 2.6.1 from OE 4c117c1 gcc: added 4.2.2 from OE e14e1e2 desktop-file-utils-native: update to 0.15 d728063 poky.conf: exclude tidy from world builds 64f00bc linux-nokia800: added ext2/ext3/fuse/nfs/cifs into kernel - tested on device 8ef8bc7 Add Tidy. e2d6705 Update Clutter to 0.6 98555dd bitbake: Sync bbimage with upstream 1a59c52 base.bbclass: Sync with OE 39a089a bitbake: Bump cache version ab191d2 bitbake: Update to bitbake 1.8 branch head e88b475 busybox: removed not used files 624549a busybox.inc: remove dead code 198a63f busybox: update from 1.8.2 to 1.9.1 (from OE) 6314103 busybox: drop 1.01, make 1.8.2 default 9f9900b gtk+: Updated filechooser size patch from Thomas 639f382 handbook/Makefile: Add missing tarball files d0eff13 handbook/Makefile: Add tarball target dd048e6 2008-02-29 Matthew Allum <mallum@openedhand.com> 698f430 networkmanager-applet: Remove VPN connections menu 25081db gtk+-2.12: Tweak filechooser size patch 2e296ba gtk+-2.12: Add patch to tweak the filechooser sizing from Thomas 566df3c Fix broken string with weird characters. 2e73486 poky-handbook: Add screenshots, change development section order, tweak css for screenshots af790c3 poky.conf: bump gaku srcrev to fix single instance ea5b925 dbus: sneak in the security fix release 1bfa9b7 Fix patch. a721897 Bump PR for 0.8 and also add patch to the SVN version. ddb2364 Add a patch that avoids the entry getting focus and thus bringing up the keyboard. 212bd6f Switch to Dates 0.4.6. 944f5d0 eds-dbus: enable libsoup, so we have the webcal backend 82b4e38 oh-puzzles: don't ship mines, ship slant instead ed555de Remove generated file 18a758b README*: Update after addition of manual b2bdf19 README*: Update after addition of manual 882e9cd Add Poky handbook 7197110 puzzles: split into oh-puzzles and oh-puzzles-extra, so there is a reasonable number installed by default ca8c337 poky.conf: bump gaku srcrev to add single instance flag a7c0b36 Bump web-webkit's SRCREV. 81a3a66 * Update sato-icon-theme version to 0.4.1 * Remove redundant SRCREV for sato-icon-theme 445f3b4 rxvt-unicode: added fix from OE for building on systems where host ncurses != ncurses-native 36ed211 scripts: Mark qemu scripts as bash specific to avoid dash problems and error if a suitable qemu binary can't be found 2084d46 poky.conf: Prepare for release, set DISTRO_VERSION=3.1 8994c32 README.hardware: Add note about Phytec board beab252 gtk-sato-engine: update to 0.3.1 935584b meta-toolchain-sdk: Use ?= when setting TOOLCHAIN_TARGET_TASK 934183e Add em-x270 instructions. 4dccc91 glib/freetype/gtk+/pango: Use SOLIBS in FILES 7a8e799 Bump sato-icon-theme to 0.4 3df547e libsdl-sdk: Fix configure.in and use autotools do_configure, not a broken imitation 37d5e5d poky.conf: update panel srcrev for the magic icon naming f6908cf README.hardware: Document htcuniversal booting ee0fb85 Add patch to fix crashes caused by udevtrigger on startup. 21c0c98 Bump psplash SRCREV. efb6eae Bump psplash SRCREV. 6bd30d0 Drop obsolete linux-cmx270 kernels fd37b16 linux-openmoko: Break immediate suspend on resume cycle 2e7d772 linux-nokia800: Add suspend/resume button support d1a1ed1 xserver-kdrive-xomap: Really disable xkb, fixing keys 9c932b8 Update instructions for MX31ADS board including NAND details. f845355 em-x270.conf: Correct kernel name inside the updater package afc5aa3 poky.conf: update panel srcrev, to get borders on notify windows 96e1d04 local.conf.sample: Limit extra packages for mx31ads 2b29ac6 task-poky: Remove web-webkit from more machines with limited flash space 210c945 linux-openmoko: Add input subsys -> APM bridge and tweak power driver key events 7fdad72 Bump matchbox-desktop SRCREV. 1c6b369 poky.conf: bump panel srvrev to get fixed icons f39405d matchbox-sato: don't use the startup icon, use notification banners 4de2204 ipkg: Fix version comparisions 84e7b04 linux-rp-2.6.23: Keypad driver for Zylonite. This is a backport from Eric Miao's patchset. 74de793 matchbox-panel: update to latest srcrev, with new icons and new applets f1607f0 gtk-sato-engine: bump to 0.3 e7a2337 base.bbclass: align build configuration dump properly fa36fa2 gtk+: merge two related patches into a single file c7e79ab sato-icon-theme: update to latest sato-icon-theme cb7d25e meta-toolchain: Add version data to the sdk tarballs 094234f base.bbclass: Drop _FUNCTION suffix to METADATA_REVISION 35d364f base.bbclass: Show svn revision of poky being used 53e5a89 qemu: Update series file 15bdeaa README.hardware: Add mx31lite documentation 10e1e2c local.conf.sample: added list of supported machines e408f5c task-poky: do not install Web browser on c7x0 d61547a poky.conf: Update zaurusd to gain mixer fixes 6c2b6f2 formfactor: Add cm-x270 32a4e06 tslib: Check touchscreen exists before setting TSLIB_TSDEVICE 838c47c xserver-kdrive-common: Remove xserver flags for cm-x270 since its using standard Xfbdev fb40ee0 linux-2.6.23: Add 16bpp tweak to cm-x270 kernels so it uses 16bpp instead of 8bpp 1bb290a poky-uclibc.inc: Tweak deploy directory so it doesn't clash with glibc packages 0578c88 cm-x270.conf: Remove touchscreen from machine features list. Default to the W model, not L cc62bad gtk-sato-engine: fix 4488bb3 README.hardware: c700 is PXA250 092b8ee README.hardware: another docbook removed 25ce5f7 README.hardware: remove docbook tags from FIC-gta01 bf9c1e8 gtk-sato-engine: make it REALLY 0.2 84c8373 Add README.hardware 7ed1aef gcc-4.1.2: Disable thumb mode for 4.1.2 since it doesn't compile bad1fc4 poky.conf: Add POKYMODE and POKYLIBC to CACHE path eb49c16 uicmoc4-native: set library path to grab zlib-native ffa4a99 Add poky-image-minimal-mtdutils (from cm-x270) 825a03b busybox: Enable TFTP put/get 54566e6 uclibc: Sync patches with OE, fix KERNEL variables to match sysroot changes, add patch to fix alignment problems on armv5e devices b0a6e92 uclibc.distro: Disable stripping since it interferes with -dbg packages 89213d9 linux-rp-2.6.23: Add zyonite touchscreend driver forward port f090aee linux-rp: enlarge bootcdx86 ramdisk size to 80M 597d1fb bootcdx86: reduce list of MACHINE_FEATURES to the one covered by kernel f55e142 bootcdx86: remove any extra IMAGE_FEATURES (debug, testapps, profile) 7c81b11 bootcdx86: bump ext2 size to 70M b868ea1 checksums.ini: added bash patches and libxfont 1.3.1 911e176 bash: apply upstream patches 026-033 b92884d linux-rp-2.6.23: Add patch to get zylonite mtd working (forward ported 2.6.14 driver) and set display to VGA faed8fc matchbo-panel: ship the battery images 04d1879 poky: gtk-sato-engine version update 8a85235 gtk-sato-engine: upgraded to 0.2 e6a720a formfactor: rotate X11 on Neo1973 04d7d53 poky.conf: update panel2 srvrev deb4b8b diet-x11: Use the libx11 patches and fix build failures 387121d libxft: Convert to SOLIBS 47ecd7c lib_package.bbclass: Convert to use SOLIBS 0cf79cd libpng: Update libpng-native 1.2.12 -> 1.2.16, convert to use SOLIBS variables fbd561a bitbake.conf: Account for different shared library extensions on darwin in default FILES expressions, add layout_base_prefix to some extra layout variables c47528d package_tar.bbclass: Make the output slightly less verbose a6d3ffd xtscal: Bump PR to work around libxcalibrate verison issues e4c5a6d preferred-xorg-versions.inc: Update libxfont versions 37c202f libxfont-native: 1.3.0 -> 1.3.1 to match libxfont change 501663a Remove more stale X patches 0f776c5 icu: Disable PARALLEL_MAKE 162f879 Patch re-jiggle to remove unused and duplicates c490cc5 libxfont: update to 1.3.1, so we can drop a merged patch ff9db54 Remove unused patch de8dfb8 libxcalibrate: fix package versions, and update to latest git which has our patches merged d7753c6 Rename calibrateproto version from oh to poky 94eca02 calibrateproto: Switch to SRCREV, remove merged patch 6ac3680 bitbake: Sync with upstream 1.8 branch for git fetcher and --continue mode fix e6a50a8 libxcalibrate: update to latest srcrev 2b5ffbc contacts: disable schemas installation c48757b autotools.bbclass: enable maintainer mode when configuring 9832013 oh-puzzles: disable schemas installation 880e17d gnome.bbclass: disable GConf schema installation 724c7a3 task-base: bump PR for af-packet module change 31f96fa poky.conf: recommend af-packet kernel module cfa8d22 gettext: Really disable java 251ff09 Don't allow custom GConf schema paths to get into the system 0e8d904 matchbox-sato: use Sans/6 on FIC-gta01 d0e95b3 matchbox-keyboard: autostart keyboard on keyboardless devices 150b951 oprofile-cvs: Remove applied patch 219e6f4 poky.conf: Update web-webkit, oprofile and oprofileui to latest versions fixing various issues 82da29d task-base: bump PR to get usbinit on fic-gta01 and nokia n8x0 3da9f94 nokia n8x0: add usbinit 48052b1 fic-gta01: add usbinit 54d5555 qemu-helper: Fix symlinks e87e94b qemu-helper-sdk: Add raw2flash / flash2raw converter ae8fe4d site/x86_64: Add some extra entries c560178 sdk.bbclass: Set PKG_CONFIG_SYSROOT_DIR correctly 7ea9cc3 gtk+.inc: Don't hardcode paths 96c423f xorg-proto: Set some XORG_PN values explicitly 6326621 freetype: Drop old version 033c32b glib-2.0: Set FILESDIR and merge patches directories 6c117e9 checksums.ini: some new entries e85a50c eabi6: use linux-libc-headers 2.6.20 to get HAL built 3ad2c9a task-poky: Switch web -> web-webkit 9808d08 webkit-gtk: Add im hook cf6db2d cx3110x: fix version 2.0.15 d268f49 task-poky: Add networkmanager-appler to standard images 0dbb639 linux-openmoko: removed not needed deploy task 1498e12 cx3110x: Fix PR 867712c cx3110x: Enable 2.0.15 for nokia800 821d6b8 linux-nokia800: Stage extra header, enable APM 61f22b5 cx3110x: added 2.0.15 version from Chinook (marked as broken for now) 85b6649 eabi5: fixed gcc name, added sdk versions 85f1639 dhcp: Move from meta-extras to meta f3d2ad4 iproute2: Move from meta-extras to meta 7fed31d Move libnl from meta-extras to meta fd700bb networkmanager-applet: Add startup script to Xsession.d directory f2d7bf4 gcc: unbreak csl 2006q1 (fortran is fortran not f95) 095f9f6 pointercal: Drop nokia800 pointercal file since it varies between the 800 and the 810 and otherwise the same image works on both 18aa85b meta-toolchain: Install -dbg packages into standalone toolchains and sdk 8dac31d package.bbclass: Avoid double suffix depchain packages 9f9ebe2 poky.conf: Update version for matchbox-keyboard, libowl, web-webkit e600587 networkmanager: Move from meta-extras to meta fc20c6c web-webkit: Enable libowl be7c007 task-poky-standalone-sdk: Generate -dbg package counterparts ff88289 cx3110x: -dev and -dbg packages don't make sense dd954f6 gcc-cross csl 2006q1: fix build 767710d Remove matchbox-poky, its been replaced by matchbox-sato 4b5b460 libxsettings-client: add patch to fix missing linking to X11, spotted by --as-needed 11dc865 task-poky: don't build matchbox-applet-startup-monitor 4b9288b vte: Add missing intltool depends 6a40f09 gstreamer: package the debug symbols for the core elements 950e912 gconf-dbus: update srvrev and remove merged patches 7fcc995 gcc-csl 2006q1: added makeinfo patch 262d304 poky-eabi-csl2005q3-2: set proper versions of (gcc|binutils)-cross-sdk fcfb291 checksums.ini: some new entries a0c44e0 sanity.bbclass: Fix typo 51fd745 sanity.bbclass: Fix qemu check 4627103 glib: update to 2.14.6 fa42d29 binutils 2.16 csl-2005e3: added makeinfo patch e62eab8 binutils 2.16.91.0.7: added makeinfo patch e29154f binutils 2.17+csl 2006q1: add makeinfo patch 7693a4f networkmanager-applet: Remove animated icons improving functionality with sato 5d2296c netbase: Cleanup qemu network config, add for nokia800 9993c7f nokia770-init: Attempt to ifconfig up the wifi fa015a3 linux-nokia800: Enable logging on tty0 to make kernel errors user visible for now 5d4bb4b pointercal: Update nokia800 pointercal after recent kernel changes seemingly broke it 7f5b199 Drop old sato-icon-theme version 6834c40 Drop old broken linux-nokia770 ca4b408 linux-rp: disable VGA framebuffer for bootcdx86 7ecb2b2 linux-nokia800: Enable automatic screen updates, framebuffer console and make 2.6.21 the default for the nokia800 a9ccb68 bootcdx86: set ext2 images size to 60M to get it booting properly da5bdff linux-rp: enable userspace VESA framebuffer for bootcdx86 machine f571897 linux: removed deploy task - kernel.bbclass has own version now 0f2c511 linux-rp: removed deploy task - kernel.bbclass has own version now 82eaabc kernel.bbclass: added deploy task from linux.inc recipe f1d8a0f kernel.bbclass: indent sizecheck function like rest of file 1f1bd04 scripts/poky-qemu-internal: Fix no-reboot option handling for qemuarm 049c3c9 poky.conf: Update sato-icon-theme version 1d4973e qemu-config: Update to use system-shutdown icon 3f4d548 sato-icon-theme: Add 0.3.1, drop broken svn version 48f8cda Rename gcc-native3 -> gcc3-native for consistency and update sanity.bbclass to account for gcc3 changes 8f12b46 libsdl-sdk: Unset PARALLE_MAKE, sdl can't cope with it b9c9360 scripts/runqemu: Append to CROSSPATH after creating symlinks ca2c506 scripts/poky-qemu-internal: Fix PATH usage to find qemu binary 1888ad6 qemu-sdk.inc: Fix zlib DEPENDS a3f7808 zlib: Add -sdk version 5f24997 libtool: Create common .inc file d360aa0 qemu: Add missing patch 8a11c60 qemu: Add no-strip patch from OE fixing strip problems 8c42510 qemu: Fix writev syscall null value handling, fixes glibc LC_CTYPE errors during locale generation 30d7bf9 Add icon-naming-utils-native 0.8.2 891e34f libxml-simple-perl: Remove bogus EXTRA_CPANFLAGS 44c830b Add libxml-simple-perl 9de36a0 libxml-parser-perl-native: Remove expat from DEPENDS 06b097f poky-chroot-setup: Copy hosts resolv.conf into the guest system to make DNS resolution work d38751f gcc-cross-sdk: Totally rewrite packaging so it consists of a single package. Disable shlibs code causing build breakage. Add useful symlinks to gcc and cc c51985f binutils-cross-sdk: Add symlinks to the cross tools instead of shipping duplicate binaries. Also simplifies packaging. b31d310 binutils: Simplify PACKAGES in old binutils versions 5bc44c7 scripts: Fix sdk compiler location handling 23ee199 poky: bump web-webkit revision to get fixed desktop files 6f1924f web-webkit: link with g++ d0dae3b scripts: Always try to start distccd, improve distccd cleanup, add SDK directory to the search path so any cross compiler installed in /usr/local/poky is found and used, add ifdown script to avoid warning messages 4592a9b nokia machines: set maximal kernel size to 2MB 2779308 sanity.bbclass: Check TMPDIR doesn't change, error if it does d6e99e2 linux-rp: added another Prism2 card to HostAP driver (patch acked by upstream) 55386c9 checksums.ini: added some new entries 321fc54 hal: split libraries to separate packages 74fb622 wpa-supplicant: do not start at boot - it is started on wlan0 if-up 3e37cc1 irda-utils: use update-rc.d class (from OE) ca9794b flac: merge with OE (PowerPC only related) f7ee69e e2fsprogs: stage libblkid 6324a8e webkit-gtk: merge with OE 5d57d6e poky: revert part of last commit - DISTRO_FEATURES 'nfs zeroconf' will be pushed separatelly 0a95707 web-webkit: added WebKit branch of OH Web browser 3fe67b2 poky: added SRCREV for web-webkit 0e969d8 poky: bump WebKit revision to same as in OE b6bb167 Switch to using dbus.inc b24a3ca dbus.inc: somewhat merge with OE 50ef39f dbus: enable checks, disable asserts. Anything else is madness. 8cf1159 dbus: enable X support so that the session bus terminates when X does d963046 scripts/poky-chroot-run: Make sure Xephyr and chrootuid are installed 8656619 qemu-config: Fix poky-chroot-launch to stop dbus system bus correctly 17c753a libidl: switched to autotools_stage_all, removed Firefox related note 2713386 scripts: Add poky-chroot scripts (credit should mainly go to Ross) f55e6e4 Add chroot scripts to qemu-config package 66bc1c7 gst-plugins-base: updated, ABI breakage in 0.10.16 d1a924f gstreamer: update to latest upstream, fix doesn't effect us bit it doesn't hurt to be current 7b8c366 poky.conf: Simpify POKY_EXTRA_RDEPENDS for qemu 1ad9a0a qemu-config: Add rsync and bash to RDEPENDS ee9652c gtk+: update to brown-paper-bag release 2.12.7 1fd6bb1 autotools.bbclass: Ensure the current working directory is preserved in autotools_stage_all 26b3e20 libsdl-sdk: Use full paths for staging 3b79bc6 autotools.bbclass: Fix so libraries in directories are handled correctly with oe_libinstall, fixing staging QA issues. Thanks go to Ross for the basic patch. 4469013 gst-plugins-base: update to latest point release fa66e62 gstreamer: bump to latest point release 740ad70 Add newer strace package 01f7f25 gaku: update to latest srcrev 83313df gtk+: update to latest point release f1cfdb5 qemu: Drop 20070613 version, add gcc-native3 dependency d28ecd2 local.conf.sample: Add ASSUME_PROVIDED for gcc-native3 bcea3b9 gcc-native-3.4.4: Add PROVIDES gcc-native3 93240b5 fakeroot: Add .so file to the the normal package so it works c17b326 preferred-xorg-versions.inc: Fix libx11-native version 86b43e8 gst-plugins-good: enable more plugins 2c92130 poky-eabi6.inc: Remove rename-registers option from optimisations in eabi6 mode since 3.4.4-csl breaks with it 5eb1000 Add TARGET_LDFLAGS override to workaround toolchain sysroot bugs for eabi6 mode f56af60 gstreamer: Disable parallel make e9ba02e meta-toolchain: Separate out extra files to reduce base toolchain/sdk size 9993a69 checksums.ini: some new entries 68e5b6c poky-eabi.inc: Fix gcc-cross-initial version bda47c0 gcc-cross-sdk-4.1.2: Bump PR 81b3dcf linux-nokia800: use proper GCC 3a66dc9 gcc4-build-sdk.inc: Fix sysroot option ebdb14c linux-nokia800: added 2.6.21 kernel from OS2008 2722168 linux-rp: Update to 2.6.24 e994842 poky-oabi.inc: Set sdk package versions ee11c2f Add binutils-cross-sdk 2.15.94.0.1 6181925 gcc: Add missing sdk 3.4.4 and initial 4.1.2 c673a12 gcc: Remove 3.4.3 and 4.1.1, add missing sdk 3.4.4 and initial 4.1.2 dc87a5f gcc: Remove broken no-fortran package .inc files 8bc881f poky-oabi.inc: Fix gcc -mtune option for gcc 3.x bad1deb qemu: Fix build problems in paths with symlinks 379cac8 poky.conf: update matchbox-desktop srcrev 101aab0 gconf-dbus: fix watch expressions so that every client doesn't get the server messages 7d85c6b binutils-cross-sdk: Really fix debug file packaging fb8b73f gconf-dbus: don't start in the X session, gconf can be autostarted 9cf26bd Remove unused patches 1e5d025 binutils-cross-sdk.inc: Fix debug package 37d1c4c poky-eabi6.inc: Fix gcc version, set sdk versions 913adea binutils: Factor common sdk code into binutils-cross-sdk.inc 9519cc5 gcc: Remove unneeded versions, add csl 2005q3-2 sdk version e0b6b52 gcc: Clean up 2005q3-2 version 22e48d7 gcc-package.inc: Override SHLIBSDIR to TARGET_SYS until a better fix is found 69683bf package.bbclass: Abstract shlibs path to SHLIBSDIR variable 2144136 qemu-config: Autostart oprofile-server in qemu images a9a84bf poky.conf: bump gconf-dbus srvrev 8840cd2 qemu-config: Add shutdown desktop file for qemu images e06f2c7 powertop: fix crash in dump mode 551987f poky-qemu-internal: Add -no-reboot option for poky-qemu-internal since can't halt a9a2389 task-sdk-host: Add qemu-helper-sdk 718f1e5 Add qemu-helper-sdk 10390fa qemu-config: Add anjuta-remote-run script 0b465bf glibc: Fix patches (remove bogus glibc-2.5 directory) 78c5462 glibc: Support backported eabi kernels 57b10da xserver-kdrive: add a patch from git master to reduce scheduling 5bf734f Add powertop recipe, and add to profiling task 77c6b60 qemu-sdk: Limit to arm emulation, set RDEPENDS 6820673 meta-toolchain: Fix target and host file separation so sdk installed files are handled correctly 8c25ace linux-rp-2.6.23+2.6.24: Further defconfig merging c2df817 linux-rp-2.6.23+2.6.24: Try to bring defconfigs more into sync, update hx2000 patches 2d426d0 linux-rp_2.6.23+2.6.24-rc8: Further defconfig refreshes and fix the htcuni patches so they at least apply 2b72633 linux-rp-2.6.23+2.6.24-rc8: Update defconfigs, remove merged zylonite patch 53d19e1 linux-rp: Tidy up .bb file and clean up unused patches 388339b linux-rp-2.6.23+2.6.24-rc6 -> linux-rp-2.6.23+2.6.24-rc8 and some defconfig tweaks 05c49ea bitbake: Update to 1.8.10 release 079e682 bitbake: sync with upstream stable branch bugfixes and enhancements 027c071 autotools.bbclass: Make sure STAGING_INCDIR exists ac5c1a6 poky.conf: bump matchbox-desktop srcrev, fixing inotify 68eba74 glibc: remove old ld.so.conf which adds /opt/QtPalmtop to library search path 8318e9a zaurus-updater: replaced all machine ones with unified one (from OE) c09736f psmisc: upgraded to 22.2 from OE (with uClibc fix) 531ade3 matchbox-applet-volume: formatting 16d5750 nfs-utils: bump PR to same as in OE b4eb696 settings-daemon: bump PR to same as in OE babbf7e libowl: bump PR to sync with OE 997e776 ppp-dialin: make it machine independent (from OE) bed9c6e psmisc: upgraded to 22.2 from OE (with uClibc fix) 979d581 Add notifation-daemon and libnotify 38fb1d4 tinylogin: make it build against uclibc 0.9.29 (from OE) 364c193 matchbox-session: don't pass arguments the panel doesn't accept 780b44d poky.conf: bump matchbox panel srcrev 7d60357 autotools.bbclass: Really fix autostaging function to correctly handle cases where only subdirectories of files exist fcb91af wireless-tools.if-pre-up - move setting of the ESSID to the end of the script, because certain chipsets (ZD1211) use that as the "commit" operation. (from OE) 66576a0 xcursor-transparent-theme: make it machine independent (from OE) 82a4bfc xrestop 0.4: Add DESCRIPTION & SECTION (from OE) 17646c6 site: merged with OE 22e64e1 checksums.ini: added some entries from OE and local builds 8c4e516 documentation.conf: merge with OE 9dbd684 Neo1973 (gta01/02): merge configs with OE 3811d80 qemux86: added 'x86' to MACHINE_FEATURES 0e7edca hx2000: added vfat to MACHINE_FEATURES (from OE) 12b861d nokia tablets: added vfat to MACHINE_FEATURES (from OE) 8caadc8 spitz: added 'iwmmxt' to MACHINE_FEATURES (from OE) 45dc7ba cm-x270: merged support for misc NAND chips (from OE) 7bdce63 akita: added 'iwmmxt' to MACHINE_FEATURES (from OE) c85d492 tune-strongarm: rename to tune-strongarm1100 and tune to it (from OE) c46d3fb tune-armv5te.inc: removed. use tune-arm926ejs.inc instead e430837 mx31 machines: use tune-arm926ejs (which is armv5te) a43192d removed tosa-2.6.inc and poodle-2.6.inc as Poky do not support them d89855e zaurus-2.6: merge OE changes (part3: tune-xscale for PXA machines) 2151dc1 zaurus-2.6: merge OE changes (part2: installkit changes) e7fba8e zaurus-2.6: merge OE changes (part1: collie related changes) 1fa8862 autotools.bbclass: Fix autostaging function to correctly handle cases where only subdirectories of files exist 6ddbbdf dbus: upgrade -bleeding to 1.1.4 e9794a9 libxdmcp-sdk: do not provide xdmcp 623c607 libx11-sdk: do not provide virtual/libx11 69c49c7 linux-rp-2.6.23: Make sure HID is modular eaefa26 linux-rp-2.6.23: Tweak defconfigs to save a little space after a suggestion from Samuel 822779e package.bbclass: Fix shlibs and pkgconfig magic to use HOST_SYS, not TARGET_SYS 85d94a1 xorg-proto: Fix inherits of sdk versions d105213 sdk.bbclass: Set CPPFLAGS and CFLAGS correctly 9a3cb74 pkgconfig-sdk: Fix configure failure issues bb48bd4 task-sdk-host: Add qemu-sdk 5697a02 Add qemu-sdk d59f40b Add libsdl-sdk 6b21b82 util-macros: Clean up and add sdk varient 529bf51 xorg-lib: Clean up various files and add sdk varients where needed b0dd467 xorg-proto: Clean up various files and add sdk varients where needed 70dc147 sdk.bbclass: Set rpath correctly for sdk binaries and use the target prefix to ensure sdk and native staging don't mix. 551ae76 qemu: Add series file for patches for reference c072792 libx11: Fixup libx11-native (fix typos, add missing patches, cleanup -native version) ae52d01 sato-icon-theme: update to latest release 053a141 distcc: Add patch to poky since upstream keep changing it 5891567 CVS fetcher: added "fullpath" option to get full repository paths inside of checkout archive tarballs. It is very useful when used with "norecurse" option. cc1e39f CVS fetcher: add "norecurse" option to fetch directory from CVS without its subdirs ("cvs co -l" option) 2a08e55 formfactor: Allow qemuarm/qemux86 to default to the framebuffer size they boot with 531a996 dbus: upgrade poky-bleeding to dbus 1.1.3 2172d34 sato-icon-theme: bump to 0.2 9c85e50 dbus: bump -bleeding from 1.1.1 to 1.1.2 ba56fb8 Added updated patches/defconfig from Phytec. 21038ec oh-puzzles: Fix merged menus (#703) d59ce93 qemu: create common include for qemu-native versions 875c178 Add gcc-native 90d3853 cairo: upgrade from 1.4.10 to 1.4.14 66b2499 Remove unused cairo 1.2 0135bc9 local.conf.sample: Remove tools-testapps from mx31phy images 1a34b12 glib-2.0: Fix SRC_URI (#702) 3adc1f0 v86d: mark it also as compatible for bootcdx86 976d362 Drop unused glib patches dad7da8 insane.bbvlass: split checks so the warnings are precise 8269ce4 glib-2.0: remove unused 2.12.13 ea38a63 glib-2.0-native: upgrade to 2.14.5 f364836 glib-2.0-native: upgrade from 2.12.4 to 2.12.13 b2dea86 glib.inc: use autotools_stage_all instead of manually staging 46d32b9 gst-openmax: added 0.10.0.2 4fc27a3 libomxil: added 0.3.3 34492aa libmad: fix parse error 78b5898 libmad: add pkg-config support 4da5771 libid3tag: add pkg-config support (from Debian) d56b65f xserver-kdrive: Remove bogus fbdev patch, merge kmode patches, add a patch to allow the existing framebuffer mode to be reused if appropriate a30424c xserver-kdrive: Clean up unused patches and broken git recipe 3156c5a linux-mx31-2.6.22.6: Mark as only compatible with the mx31ads for now 4ec449c v86d: Add initscript to activate the framebuffer early in the boot process c54fce9 v86d: Set COMPATIBLE_MACHINE ed8770a Add EXTRA_IMAGE_FEATURES for ease of use in local.conf 5f39e9f xserver-kdrive: Make patchlist more obvious, remove uneeded machine specific patches 4d3c683 xserver-kdrive: Drop 1.1.0 b86cac1 qemux86.conf: Add essential dependency on v86d e567726 Add v86d 2f9cc6a linux-rp-2.6.23: Fixup qemu defconfigs d1a302a kernel.bbclass: Cleanup various repetition, add include/video to staged files list 568a9bb Really set jffs2 options for mx31ads. 9b81ef9 Update jffs2 options for mx31 ads. 5b21722 Add 2.6.22.6 for MX31ADS (from the rel5 BSP.) c1dd292 poky-sdk: install libglade-dev instead of libglade 6486e5e libvorbis: use autotools_stage_all (fixing .la installation) 07668fa libogg: use autotools_stage_all (fixing .la installation) e84e875 gtk: upgrade 2.15.3 to 2.15.5 305ca5dc Update JFFS options for the phyCORE mx31. 1ffa318 Add patch to allow newer NOR chip query table. 44611fd xpext: Fix -dev/-dbg package dependencies 1a89cd5 scripts: Further quoting fixes 248c66c tkas-poky-sdk: Add findutils ab3ed2f tasks: Add libglade to sdk 4a7acb6 scripts: Various tweaks/fixes for the qemu scripts 0f1ddc5 package.bbclass: Account for DEPENDS in -dev packages b1975f9 meta-toolchain: Allow output name to be overridden f7a133e meta-toolchain: Split into a plain toolchain and full SDK versions 49d3841 util-macros: Fix -dev and -dbg dependencies (since the main package is empty) 3e5646f qemu: upgrade CVS snapshot 20071230 to 0.9.1 release 03e591a local.conf.sample: Limit the features built into c7x0 and mx31phy images 7f3a170 Add support for Phytec phyCore-iMX31 board. b10aaea glib: upgrade from 2.14.4 to 2.14.5 666535e qemu.inc: increase the size of the rootfs, so there is some slack 2262128 gtk-icon-cache.bbclass: in the postinst update the pixbuf loaders to ensure that all are loaded before creating icon caches b8a6dbf linux: enable v3 process accounting (for bootchart, mainly) 4619dcb linux-rp: Drop old kernel versions 13d394b linux-rp.inc: Add bootkern task for experimentation purposes only d83e067 dbus: disable asserts, not checks. asserts are slow and very intensive, checks are entry point sanity checks and are good 144d5c7 poky.conf: update mb-desktop srcrev 8b11997 poky: removed DISTRO_FEATURES set for "cmx270" machine 5b9ecba module*.bbclass: set AR to KERNEL_AR during building of kernel modules 3a4cd6a gstreamer: fix the patch. honest, it built for me f4a6185 gstreamer: don't try and load .debug libraries 84c46a7 formfactor: Revert touchscreen mode change bea90e6 formfactor: Create suitable gtkrc file enabling gtk touchscreen mode for machines with touchscreens deff1f4 matchbox-sato: force touchscreen mode on bd837ac cooker.py: Fix -g option breakage from previous commits 611ba5d em-x270.conf: Fix kernel part of image generation d34b2f6 base.bbclass: Make sure PATH searched for applications is expanded da8e8d3 poky.conf: Remove gcalctool from world builds since its broken with recent gtk+ 7821f22 bitbake: Sync with bitbake upstream for various fixes c7fca99 poky.conf: update to latest GTK+ version now that the filesystem changes have landed (yay tf). poky-bleeding.conf: remove GTK+ versions b01d4b8 gtk+: Remove DEFAULT_PREFERENCE statements, they are incorrect and we use poky.conf instead 9ea7515 ported filechooser patcheas to gtk 2.12.3 fe7eb79 em-x270: generate ext2 image for Compulab runtime updater 7b7f440 libtelepathy: Prefer python 2.5 f156846 linux: provide symlink for em-x270 kernel image 8fe6d34 linux: em-x270 expects kernel encapsulated in jffs2 image 932b3cc telepathy-glib: Prefer python 2.5 over 2.4 over 2.3, not the other way around 66ff85a base and sanity bbclasses + qemu: move gcc3 availability checking into base.bbclass 67eaa28 poky-bleeding: Switch to dbus 1.1.1 51d4359 Add dbus 1.1.1 (leave 1.0.2 as default) fe60c6e libx11: Apply the keysymdef.h fix to libx11 as well as diet-x11 f8b1fd4 libx11/diet-x11: Fix /usr/include problem for keysymdef.h 7eed7c0 qemu: upgrade 20071121 -> 20071230 to fix problems with target mmap'd regions overlapping with the host system libraries 8ff44c1 linux-rp-2.6.23: Bump PR after hrw's patch change d850b58 linux-rp: fixed my patch a1ffa5a linux-rp-2.6.23: Make qemuarm and qemux86 use 2.6.23, sync .bb file with OE for poodle and tosa changes. f217220 checksums.ini: some new entries a28ff4a linux-rp 2.6.24-rc6: provide working config for c7x0 (ide and cpufreq in modules) fd616b6 linux-rp: update 2.6.24-rc1 to 2.6.24-rc6, add some fixes from 2.6.23 2e6c3db qemu: Expand PATH and EXTRA_OECONF when locating gcc, add check for gcc-3.4.4 603087d bitbake.conf: Make sure PATH is expanded when searching for ccache 13d7860 linux-nokia800: Use gcc 3.4.4+csl-arm-2005q3 for compiling kernels for initfs module compatibility 925823d gcc: Add gcc-cross-kernel 3.4.4+csl-arm-2005q3 397c9e4 linux-rp-2.6.23: Defconfig update dd877a7 linux-rp-2.6.23: Unbreak pxa25x suspend/resume, update defconfigs a4ad228 linux-rp-2.6.23: Add atags export patch for kexec, fix spitz suspend key problems a5b44fe kexec-tools: Add arm atags support a34ccf9 poky: exclude libxml-parser-perl from world builds due to OE bug #3403 55763d6 poky: set SRCREV and proper SRCDATE for gtk-theme-torturer 0f3fabe poky: do not fix SRCREV values for Pimlico components as we use release versions by default a59dc98 poky: set clipboard-manager version 13b2444 poky.conf: Fix xprop PREFERRED_VERSION cdde631 poky-floating-srcrev.inc: Tweak file ac9dbc9 matchbox: Set various maximum patch revisions for merged patches ac1c9c7 xwininfo: fix DEPENDS 1a30ceb conf/distro/include: Remove stale srcdates file, add poky-floating-srcrevs cinlude file 906fb37 task-poky: added xwininfo,xprop,xrestop into testapps 3226b98 xprop: added 1.0.3 ca4e02d xrestop: added 0.4 f85a9e4 xwininfo: added 1.0.3 1ba5ca1 set revisions for matchobx-wm-2 and matchbox-theme-sato-2 4f67e7c matchbox-wm-2 recipe 6b3e57c recipe for mbwm2 sato theme 1685e25 busybox: update 1.8.1 to 1.8.2 1011c2b meta-toolchain: Generate site config files and an environmental setup script 0246439 poky.conf: Fix ohm SRCREV for now fafacff xserver-kdrive: Rename .inc file to stop confusion with xserver-kdrive-common package cba0d97 ohm: Lock down git revision using SRCREV 6e6350a contacts: SVN version is not default 30f6da8 dates: refreshed patch c6b6c97 pimlico: fixed versions in SVN recipes c9703ff contacts: updated to 0.8 bb6d77b tune-arm1136jf-s: switch to use CPU_FEATURES to enable/disable VFP and Thumb support 994be9e tune-thumb: switch ARM/Thumb instruction set (from OE) 2f039d9 bitbake.conf: introduce CPU_FEATURES variable for listing features of target processor a54c23a tremor: use ARM instruction set when building for Thumb 053e6d0 liboil: use ARM instruction set when building for Thumb 1aa801a libmad: use ARM instruction set when building for Thumb 397110b gst-plugins-bad: use ARM instruction set when building for Thumb fe05a01 glibc: use ARM instruction set when building for Thumb fc53662 glib-2.0: use ARM instruction set when building for Thumb 15999b5 db: use ARM instruction set when building for Thumb bbb0b8b package.bbclass: Various cleanups and bugfixes, some form OE 6480e3a package.bbclass: Don't strip files in .debug directories 34927df Sync various tweaks from OE, change default SRCREV policy to not auto increment rather than hitting the network. ce30130 liboil: added glib-2.0 dependency (it is required to build but not end in packages cf07030 checksums.ini: added some new entries 2228b41 meta-toolchain: provide /usr/ symlink (related to sysroot usage) - requested by Rob a1a868a update-rc.d: added forgotten patch c75f6a2 update-rc.d: Be less verbose by default. (from OE) * Don't spit detailed info about links created unless passed -v. * This is to prevent initial bootup console spamming. c3fb361 libxml2: added fix for 'unable to find gzopen64()' when host is 64bit (taken from Debian) d4b9227 Add mx31ads machine a797df1 linux-mx31: Add mx31ads support c83d81e clutter.inc: Add mx31ads support 2d44843 libxcomposite: add libxext to dependencies 73b9bf2 gtk: enable XDamage, XRender, XComposite support cfd98f5 qmake: Turn native package into a cross package since it touches target staging 4db23a9 xcursor-transparent-theme: point SRC_URI to project website 89c8cb3 matchbox-applet-startup-monitor: point SRC_URI to official website 2c1a5bc task-base: bump PR to get rsync in qemu images 251e9cf poky: install rsync in qemu images (requested by Rob) 4e9ca34 rsync: added 2.6.9 from OE 66be3d9 tasks: update to 0.13 169d7d3 dates: update to 0.4.5 2938bfe web: bump PR due to curl change e079d07 curl: really disable libidn 49bcedc task-sdk-host: Add pkgconfig-sdk to SDK 7147d33 Add pkgconfig-sdk 1813fac poky: bump webkit to r28485 e6b479c webkit: fixes to get r28485 built aa521e3 poky: set fixed srcrev for webkit-gtk (same one as OE use) cad2e1b icu: use g++ for linking 2517420 Import files from OE to build WebKit (patch to link icu required) 8ccfa5c linux: add u-boot-mkimage to DEPENDS only for uImage kernels d46841a linux-rp: kernel size check is now in kernel.bbclass 048754f kernel.bbclass: added task which check size of kernel image 7256b48 zaurus: add KERNEL_IMAGE_MAXSIZE variable used to check kernel image size 9d5c2c8 qemu: make new version non-default again 4e60989 formfactor: add em-x270 formfactor e7eaaa2 bitbake.conf: armv4 and armv5 do not need CPU selector for qemu 7445724 gtk: update 2.12.2 to 2.12.3 d41df71 glibc: allow to use UTF-8 locales only (enable with LOCALE_UTF8_ONLY=1) e9f81f1 glibc: get proper value for QEMU_OPTIONS to get binary locales working for all ARM variants de38769 glibc: make ARMv6 binary locales working with recent qemu d0b4968 qemu: Make 20071121 the default version and cleanup various file locations and recipes 1fbde4b qemu: really enable NPTL for arm 11f9f24 qemu: Add 20071121 version, default preference -1 for now c3c2ee2 linux: bump PR due to changed U-Boot entry point for em-x270 c471733 em-x270: fix U-Boot entry point aa11597 em-x270: fix kernel type b25ad8c busybox: enable time applet ec63c68 eds: make eds-dbus-dev recommend libecal-dev libebook-dev 859d3ab em-x270: set kernel type to uImage 9886049 eds-dbus: reformatted recipe 345dd86 task-sdk-gmae: added libecal/libebook 92b1e9f task-sdk-*gmae*: move common stuff into include file 4758862 task-poky-standalone-gmae-sdk-target: Re-enable libtelepathy 25110f5 icecc.bbclass: Sync from OE a195950 cross.bbclass: Set TOOLCHAIN_OPTIONS to an empty value instead of duplicating compiler variables bf0ddf4 telepathy-glib: Add dbus-glib to DEPENDS 5d500e6 task-poky-standalone-gmae-sdk-target: Remove telepathy for now f53f089 task-poky-standalone-gmae-sdk-target: fix packaging e955540 meta-toolchain: Switch task-poky-standalone-gmae-sdk-target for experimental purposes 8e8b85d git-native: Sync minor tweaks from OE b6691ac task-poky-standalone-gmae-sdk-target: GMAE for standalone SDK 731cdbe xtrans: solve xtrans-dev problem in better way (same as xorg-protos are) 1731595 poky: added HOST_ARCH into name of SDK tarballs dbae4c1 xtrans: create empty xtrans package as xtrans-dev depend on it 3e8d1b6 libxml-parser-perl-native: Remove uneeded entries: (from OE) * DEPENDS on perl-native isn't needed since cpan.bbclass adds this. * DEPENDS on expat-native isn't needed since libxml-parser-perl adds this. * RDEPENDS on perl-native was only here to prevent an RDEPENDS on perl. The RDEPENDS was being added by cpan.bbclass, but that has now been fixed to not add it for native packages. This needed to be removed so that perl isn't built when you only want libxml-parser-perl-native. 2aba130 cpan-base.bbclass: Update the perl depenedencies: (from OE) * For native modules DEPEND on perl-native and for others DEPEND on perl (which in turn depends on perl-native) rather then always depending on both perl and perl-native. * Only RDEPEND for non-native modules rather then both native and non-native. 2f0918e poky.conf: Allow insane to be disabled from local.conf 412acf7 task-sdk-host: Drop packages not needed now gcc-cross-sdk has better RRECOMENDS eb864c8f x11vnc: Add fixed version from OE 867741b site: Add arm-darwin 1cab3f2 siteinfo.bbclass: Add darwin entry cc5a871 libtool: Make sure ltmain.sh gets regenerated by libtool-cross, fix nmedit paths, fix library search paths for installed=no binaries particuarly on darwin but applies to other archs too f0ff6c7 clutter.inc: Add gtk+ to DEPENDS (for now) 9eee32b base.bbclass: Fix populate_staging whitespace f7d937f stage-manager: Various fixes/ehacements c9b2304 shasum-native: Use do_stage function, not do_populate_staging d24c45c gcc-cross: attempt to unbreak fic-gta01 build - package_write_ipk waits for glibc packaging 411c393 libxml-parser-perl: added expat dependency e8c4d5f shared-mime-info: added glib-2.0 to dependencies 9da15df glib: don't disable debug, the size difference isn't much and its useful d862b57 package_{ipk|deb|tar|rpm): append depend-tasks instead of overwriting 91225da ipkg: fix "unable to create /usr/lib/ipkg/lists directory" bug 705bfa4 distcc: Fix remaining postinst issues b12795d bitbake fetcher: Make invalid url errors clearer 3431d41 mtools: Use our mirror since upstrea, is insane 1274bbe task-poky-sdk-gmae: added GMAE based SDK fc5d8af oprofile: fix arithmetic ops on dash 261c8d8 tune-arm1136jf-s.inc: optimizations for armv6 devices 697dbc9 glibc_2.3.5+cvs20050627: Fix oabi build failure due to header issues feb7d18 telepathy-gabble: improved description 8ac44b4 telepathy-glib: improved description 44e5a66 telepathy-mission-control: improved description cdb708c libtelepathy: improved description 59195b7 empathy: improved description 101b2d7 empathy: dropped 0.5 82f18b9 telepathy-idle: added 0.1.2 0ba486c telepathy-glib: upgrade to 0.7.0 2bbd6ad telepathy-gabble: upgrade to 0.7.1 5645257 libtelepathy: upgrade to 0.3.1 d0223d9 telepathy-mission-control: upgrade to 4.49 3526acd package.bbclass: Remove debug code 60b925a poky-autobuild: Increase threads to 6 956e0ac checksums.ini: added glib 2.14.4 and ltt-control 0.43-10082007 de8d00f gtk+: upgrade 2.12 to 2.12.2 0c273cb gtk+: run pixbufloader backend on target, and update the icon cache afterwards a14d61f glib-2.0: upgrade to 2.14.4 fa0eb69 exmap-console: Bump PR to pacify autobuilder 4743a3f base.bbclass: Fix PKGDATA to work properly with multimachine 251672a gcc-cross-sdk: Add RRECOMMENDS so gcc-cross-sdk pulls in all its sub packages automagically 2fd82bb gcc-cross: package libstdc++-dev 37f80dd exmap-console: Remove MYPV madness, makes my head hurt and breaks builds aa10825 package_ipk.bbclass: Make sure packages which alter PACKAGE_ARCH end up in the correct 'feed' 5d60f71 stage-manager: copy files, don't move them c0adbcb bitbake: Add support for task specific lockfiles a7ed27d nokia770-init: Cleanup postinst to allow it to work offline 7be7ded base.bbclass: Add buildall task 84e1d7c Add stage-manager-native 2f2de3f lttng-control: 0.42 -> 0.43 e6fccbb bitbake: Sync with upstream, fix some typos, add selfstamp flag f3b89a0 packages/meta: Remove pkgmaps references 48c7f7f package.bbclass: Remove PKGMAPS functionality and supersede with pkgdata. Remove duplicate unneeded PACKAGES checks. 1d01a5e package_{ipk|deb}.bbclass: Remove hardcoded install path reference 62a3ee3 bitbake: Convert fetcher code to using bb.utils locking functions c065977 classes: Use internal bitbake functions and fix packaging unlocking on error paths 701aa74 bitbake: Add bb.utils.lockfile() and bb.utils.unlockfile() 4aaa834 initscripts: No need to run ldconfig every time we boot now... d74537f glibc: Drop ldsocache-varrun patch. ldconfig is now run at image generation time. If you can install packages, the cache can update, if you don't install packages there is no need to have it writable b4e9ef8 image.bbclass: Add ldconfig-native dependency, run ldconfig at image generation time 87590b2 Add ldconfig-native 90e20ec glibc-2.3.5: Fix stale CROSS_DIR reference 4ab905d external-poky-toolchain: Add extra RPROVIDES 761dcd5 poky-external.inc: Double colons in PATH break coreutils 507a3e0 db: Fix configure so parameters can be passed in the LD variable 8ec24bc cross.bbclass: Explicitly set the compiler in the same way as native.bbclass, otherwise TOOLCHAIN_OPTIONS can interfer e502912 bitbake.conf/poky-external.inc: Clean up CFLAGS handling af489dd gdb: Add missing patch 4c5f7e3 gdb: Add patch to ignore bogus CFLAGS whitespace changes 0138501 poky-external.inc: Change the way the sysroot option is passed about to deal with libtool 066e96a distcc: Make sure the distcc user exists 675d190 poky-external.inc: Fix external toolchains to use the correct sysroot after recent toolchain changes 6f850a2 binutils-cross-sdk: Really fix debug packaging 4d5b401 runqemu: Fix path after staging layout changes 512f7a0 binutils-cross-sdk: Fix debug files packaging to avoid warnings 571492a findutils: added 4.2.29 from OE bc31acf gnome-common: set PACKAGE_ARCH to all deba6b7 qemu-config: add fakeroot, until we have a package for the poky/chroot integration 4728d87 binutils: fix 'makeinfo >= 4.10 is too old' problem (from OE) - patch is applied upstream 8ad0e35 poky.conf: update eds-dbus srcrev 1cffb71 hal: don't pass --oknodo to start-stop-daemon, busybox doesn't support it ad0051a Drop stale directory 6748cde fakeroot: Fix packaging e478fac glibc: Sync with OE 636e360 Remove broken c based parser code 688eca7 bitbake/fetchers: Sync with upstream bitbake dd45ce7 matchbox-sato: use formfactor to determine if we should show a cursor a8484db Remove stale TODO 93845cb Don't depend on the old startup monitor 05d1dc2 cross-linkage: Don't include this in world builds, it will break them bb73b0e busybox: update 1.7.2 to 1.8.1 4f10a48 Update settings-daemon srcrev 2704cfa bin/bitbake: Fix help typo 478a35d python-pygtk: upgrade to 2.10.4 from OE and add PROVIDES to keep compability f11feac python-pycairo: added 1.4.0 from OE (needed by python-pygtk 2.10) 6a5d2ce python 2.4 is removed 2100cec Add pointercal files for qemuarm and qemux86 eb7d6a6 python-pygobject: sync with OE 5928db1 python-gst: update to 0.10.8 from OE ae77523 python-scons: update to 0.97 from OE 3cfbc3b python: update to 2.5.1 from OE (without tcl/tk deps) eaafa55 valgrind: Fix debug packaging a3b590e apt: improve packaging of debug stuff 4294048 autoconf: Add patch to remove insane X header/library paths f5f0fd4 sqlite3: upgrade to 3.5.2 0c2e8ed poky.conf: Add insane QA checking to builds by default 53c67fb settings-daemon: Add missing DEPENDS 3bcc261 python-native: stage into STAGING_BINDIR_NATIVE 8813097 glibc-initial.inc: Fix bogus header directory reference 5dfe764 gettext: Disable java since it finds any native gcj and breaks cross compiled builds c717e0b checksums.ini: added few entries a74e457 keymaps: Improve HTC keymap. 9f3c3a1 htcuniversal: add task-keyboard for keymap installation. 2cd8566 matchbox-keyboard: fix expat build problem 6cbe7c8 matchbox-stroke: fix expat build problem 5258997 matchbox-wm: Fix configure issue 776d02d matchbox-wm: add expat paths into configure flags 4e19a8d gstreamer: use autotools_stage_all so libtool files will be mangled properly ded2718 owl-video-widget: fix desktop file dbd9045 pcmanfm: fix desktop file 0313421 pcmanfm: remove unused files f8484fc Fix desktop file 69248f8 Bump web srcrev c841a6b puzzles: remove the deprecated Encoding key from desktop files 5477906 insane.bbclass: use bb.error when reporting desktop file problems ab2a04d insane.bbclass: validate desktop files 9e0b8d9 Add desktop-file-utils -native 7c189ee base.bbclass: Fix regexp 20453cf libtool: Don't patch limain.sh otherwise it doesn't regenerate. Drop tag1.patch it doesn't do anything d9659da poky.conf: Lock down floating openmoko versions 59330e2 uboot-openmoko: Fix SRCREV_FORMAT and PV so source revisions work correctly e13102c bitbake: Update SRCREV fetcher code to cope better with multiple SCM packages 0fa37f2 cleanup fda2bb5 Add android-goldfish metadata to meta-extras 210caef gnutls: Remove some bad flags from configure.ac 18f2e27 Fix PE handling in version strings 320be50 base.bbclass: Improve .la file conversion from installed=yes to installed=no 206d632 bitbake.conf: Move yaffs2 image type to EXTRA_IMAGECMD 405128d bitbake.conf: Add PE to RDEPENDS and RRECOMMENDS for -dev and -dbg packages. Remove double space from CFLAGS, it confuses gdb bc2ed58 xorg-proto-common.inc: PN is empty and isn't built, fix -dev and -dbg packages accordingly 5e1159b libtool: do not add when linking libraries 8075bb5 Upgrade pango from 1.8.1 to 1.8.3 6648c13 pango: Add missing patch 61bc203 fstests: Fix DEPENDS 7046d4b pango: Fix generated .pc files b1d8355 gcc4-build-sdk.inc: Set build-sysroot option and simplify other sysroot options. The with-sysroot option is likely bogus and should be removed. 54b470e sdk.bbclass: Set directory structure correctly after staging layout changes 755bf78 meta-toolchain: Fix some paths and remove unneeded header file manipulation ef0256e linux-libc-headers: bump PR 938663c linux-libc-headers: The dev and dbg packages shouldn't depend on PN which doesnt exist 3860b24 base-files: Create -dev and -dbg packages for dependency chains purposes 7fc5d6e pkgconfig: Switch to using sysroot simplifying pkgconfig files. Requires a full rebuild. ba2e1f4 bitbake.conf: Simplify target CPPFLAGS, CFLAGS and LDFLAGS due to sysroot benefits 01d5da7 Rearrange staging to match target system layout. This is a major change and will require a full rebuild. 8c1871a gcc: Remove fail-fast host includes patch (breaks sysroot support) 4285b62 pkgconfig.bbclass: Fix hardcoded staging layout references b176b02 uclibc: Only need to install to staging, not cross as well (after cross linkage changes) 98bd2b0 rootfs_deb.bbclass: Make sure alternatives path exists 19c7b21 package_deb.bbclass: Fix hardcoded apt.conf path, add depends on run-postinsts package for deb images b176702 Remove hardcoded staging layout assumptions 0e09147 Remove hardcoded staging layout assumptions 19f1bad bitbake.conf: Set RDEPENDS and RRECOMMENDS of -dev and -dbg packages to match specific versions, not >=. Fix typo. 83930b3 vte: Add missing depends 1accf43 libmatchbox: Add missing patch 71969e2 libmatchbox: Fix so reconfiguring works (cp, not mv files). Add configure patch to generate better .pc file 63e19b2 mpfr: Clean up hardcoded staging references 61fc631 kexec: Simplify metadata 41cab40 libgsmd: update to version from OE (openmoko used one) d0415cd poky.conf: update matchbox-desktop to fix randr and workarea bugs 5741c84 poky.conf: update matchbox-desktop to fix arrow buttons 431fae1 glib-2.0: upgrade to 2.14.3 55751d2 poky.conf: update desktop srcrev d9a71e8 bitbake: fetcher init - clear data's internal expand cache since the cached SRCREV value will be wrong a936d29 em-x270: do not assume where mtd-utils are installed 4c76399 bitbake: git.py - Fix weird git checkout issues by using git-fetch, not git-pull since we don't care about the index e9b7bc6 bitbake: fetcher updates - Add BB_GENERATE_MIRROR_TARBALLS option to allow disabling tarball creation to speedup git fetches, improve srcrev handling to remove some hacks and remove the need for external workarounds e7198e4 initscripts: add inittab for fic-gta01 to not start getty on serial (from OE) bdf2abb fic-gta02: added from OE 63ed730 fic-gta01: sync with OE 5728abb fic-gta01: use linux-openmoko kernel 404bbb6 linux-openmoko: added 2.6.22.5 from OE, dropped linux-gta01 83dd625 poky.conf: update desktop (fix lots of bugs, faster) and keyboad (no more debugging spew) 73fbea8 avahi: use a priviliged access group which actually exists 622eeef networkmanager: only add postinst script to networkmanager, not all packages 9e21d7c mtd-utils-native: Stage header files for yaffs2 (from OE) 1d85cf1 yaffs2-utils-native: unbreak (again) 68f19cc poky.conf: set SRCDATE for yaffs2-utils(-native) d3c4717 local.conf.sample: Update external toolchain documentation ae66948 Add new poky-external mode toolchain stubs 90dbf75 yaffs2-utils: unbreak it 4bec704 bitbake.conf: add yaffs2 support from OE b1d86e4 yaffs2-utils: added from OE b5fda83 clutter: Fix so 0.4 versions are default (which matches distro config SRCREVs) and fix up svn trunk versions too. 7277fe1 poky.conf: Fix DISTRO_VERSION, override SDK_NAME and SDK_PREFIX 9ab1810 meta-toolchain: Fix after deploy ipk changes e0f9228 poky/conf: Lock down clutter-gst version 739895c clutter: update patch 8c6e21c clutter-gst: Fix EXTRA_DIST for Poky use 28291e7 poky.conf: update matchbox-desktop srcrev for startup speed increase 8764d5c Add poky-image-clutter image 3b6c384 Pin ubootchart srcrev, and remove integrated patch 1ab9a48 matchbox-panel-2: Fix RPROVIDES and friends to just apply to PN, else bad things happen with the -dbg and -dev packages 7ca6e91 rootfs_deb: Fix hardcoded etc references, add missing mkdir c141918 ubootchart: comment out acct dep for now 7676c2b Move ubootchart to meta/ 2188cf0 ubootchart: add a launcher to stop the profiling, alternatives to optionally replace /sbin/init, and cleanly pretend to be /sbin/init 378c8db Add acct from OE, for ubootchart 87c4228 Add run-postinsts. This runs any remaining postinstall scripts without needing ipkg/dpkg. Currently ipkg specific but this should be easy to change 139d157 dfu-util: added from OE 5853cf2 usbpath: added from OE (needed for dfu-util) 7331982 ubootchart: added proper PV 94b124a Add ubootchart e51fbab abiword: added 2.5.2 from OE (disabled spellcheck, printing, plugins) 5f02bb8 linux recipes: switch to KERNELORG_MIRROR beca813 linux: added em-x270 support (from OE em-x270 recipe) 594a2c2 em-x270: added machine config from OE (and a bit of cleaning) ae748c1 checksums.ini: new entries b47281e eventlog: added 0.2.5 from OE (needed by syslog-ng) 895ebff libol: fix SRC_URI (from OE) 8533e3c syslog-ng: update to 2.0.5 from OE 72d3eee poky.conf: update matchbox-desktop srcrev ceb2762 alsa: upgrade to 1.0.15 d6e11d1 eds-dbus: libecal recommends tzdata b193e25 Add tzdata and tzcode, for the timezone files 76df265 openmoko-dates2: update from OE to fix SRCURI 798ce7c openmoko2: update packages from OE so that openmoko-today2 builds 1c77306 gcc: Make gcc build on amd64 by having it forget target configure cache when configuring for build machine. (from OE) c1c8083 checksums.ini: added some new entries 9e99242 checksums.ini: added some new entries c7c0b34 checksums.ini: added some new entries 8814b8a gypsy: make it build by telling that we are Debian de6377f pointercal: add calibration file for HTC Universal 2ebf3f2 poky.conf: Bump network-manager revisions 0e32e50 poky.conf: Fix gaku/gypsy SRCREV f7dee23 checksums.ini: added some new entries (mainly Zaurus kernels patches) 14fb92c bitbake runqueue.py: Allow multiple options for deptask flag (from poky), fix comment typo. c9be325 bitbake: Sync with upstream 0344693 linux-rp: enable uinput for Tosa in 2.6.17 399ea0e linux-rp: sync Akita defconfig from 2.6.23 to 2.6.24-rc1 89fd711 linux-rp: enable PXA Overlay support for akita 861910a linux-rp: enable WiFi for akita b5ebbe4 libtool-cross: Remove hardcoded staging paths bf8f4d4 perl: Sync with OE, fix hardcoded staging references 1ba6bdf linux-cmx270: Add missing patch 377ad26 gcc: Remove hardcoded staging paths 849311c bitbake.conf: Remove more hardcoded staging layout 454311f base.bbclass: Fix hardcoded staging references a6314a0 glibc: Sync glibc.inc cleanup from OE 4894e13 glibc: Factor staging function into a common .inc file 6a97ee5 glibc: Convert from hardcoded staging layout 3b945ff bitbake.conf: Add dummy layout variables (describing the current staging layout for now) d49d6f6 pkgconfig.inc: We should be installing pkgconfig files into LIBDIR now f061345 fontconfig: Fix hardcoded staging layout references d12d867 shasum-native: Create directory before installing files fa9920f db: Fix hardcoded staging layout references 2f6d904 dbus-glib: Fix hardcoded staging layout references c7b0f44 linux-gta-01.inc: Fix package name in DEPENDS d00bac6 gnome-common: Fix hardcoded staging reference 82e5d0d base.bbclass: Add note from OE c107af7 base.bbclass: Clean up staging references 3255b1d autotools.bbclass: Reference STAGING_DATADIR 2718b2a bitbake.conf: Start cleaning up staging variables 70abc05 u-boot: import OpenMoko uboot from OE ce1e498 cm-x270: do not hardcode kernel version 46030a8 Upgrade GTK+ from 2.12.0 to 2.12.1 cc46157 gconf-dbus: bump PR to the same as in OE aa73bb0 gconf-dbus: added dependency on virtual/libintl, removed not used HEADERS variable (from OE) b5e57b0 gnu-config: add avr32 support (from OE) 8ff6e53 lame: always link with libm (from OE) 6174a05 libgcrypt: change staging to autotools one (from OE) 4b78036 libxml2: create staging directories before installing into them (from OE) 58df8e8 linux: upgrade cm-x270 kernel to 2.6.23 (from OE) 523603f linux-rp: make 2.6.21 default for collie (from OE) f10df9a linux-hotplug: fix bashisms (from OE) 1bdfb7b linux-libc-headers: sync with OE (mainly safer use of and blackfin support) a975511 lirc-config: sync with OE 1d168a6 lrzsz: use update-alternatives (from OE) 03b1d82 lzo: strip whitespaces 52dc897 xpext: removed not needed xextproto dependency, stripped whitespaces a137347 xsp: removed not needed xextproto dependency, stripped whitespaces 7c37de1 make: drop 3.80 98cc181 prism-firmware: sync with OE (usage of 1.7.4 firmware and other fixes) 33ebd14 module-init-tools: fic uclibc build (from OE) 2fe7cc5 packages/modutils/modutils-collateral.bb: Modprobe has changed between 2.4 and 2.6 kernels. (sync with OE) The information in /etc/modutils and /etc/modules.conf is not read under 2.6. 2.6 uses a /etc/modprobe.d directory, and it does not need a "/etc/modprobe.conf" file; it reads all the appropriate *.conf files and compiles the information at boot time. This commit closes bug #808 52e92fd modutils: sync with OE (added bison-native dependency, no package changes) ab7be97 mozilla/: dropped unused files 31eef80 mozilla-cvs.inc: drop unused file cdd1dbc site/common-glibc: Add definitions to make gcc's inbuilt zlib work 01e27b8 mpfr: remove whitespaces 2860ed5 ncurses: sync with OE 5d49646 network-suspend-scripts:remove whitespaces 6efadbc package-index: regenerate indexes for all ipk dirs (sync with OE) 2f841db checksums: added some X11 libs 242732a checksums: added fuse and ltrace cf9c168 checksums: added bash patches and alsa 1.0.15 225aa61 unzip: added 552 from OE - needed for spectrum-fw dde303c orinoco-conf: drop pcmcia-cs support ed8ea77 orinoco-conf: call update-modules to populate information from /etc/modutils 50dbd19 hostap-conf: dropped pcmcia-cs support 9846033 hostap-conf: depend on update-modules 6de1eea pcmcia-cs: drop as we use pcmciautils for all PCMCIA machines 8cd7a0e sdk.bbclass: package more debug files (from OE) 9e33229 openmoko2.bbclass: sync SVNREV with OE 2a5896f spectrum-fw: added dependency on unzip-native (from OE) fa28276 orinoco-conf: remove whitespaces ada2dbb pango: added dependency on virtual/libiconv (from OE) dc66833 pcmcia-cs: rdepend on hostap and orinoco configs (sync with OE) 748341d pkgconfig: remove whitespaces 5b83a5d pointercal: sync with OE (no package changes) fd9b783 popt: remove whitespace aaa8c63 portmap: depend on fakeroot-native (from OE) 90b30d1 strace: drop 4.5.12 7528a04 ppp: sync with OE (no package changes, PR bump) ed8ca89 psmisc: package debug versions 0756804 psmisc: generate more 'doc' packages (sync with OE) cb773ee strace: Apply patch from uclibc buildroot to fix compilation uclibc (sync with OE) Without that patch the uclibc EABI build fails. Patch was taken from the buildroot of uclibc. 706f9a3 bash: apply upstream fixes: up to 025 (was to 005) 74beec7 bash: sync with OE (no package changes) 52b64dd apmd: sync with OE (removal of /usr/src/linux include dirs) 32d6f21 alsa-lib: sync with OE (fpu settings) a652210 Remove bogus file fb61cf3 Add recipe to build linux-zylonite 2.6.14 kernels 09f4b20 checksums.ini: added some new entries from OpenMoko build 67ffdb6 checksums.ini: sort by archive name (script for it will be pushed into OE later) 1c53455 checksums.ini: sort alphabetically to make updates easier 354c543 linux-rp: upgraded from 2.6.23+git to 2.6.24-rc1 6e23136 package.bbclass: Make populate_packages copy files, not move them during do_package 26b7ef0 busybox: added 1.7.2 from OE as non-default (Angstrom defconfig used) 498b4f4 bitbake data.py: Fix unexport handling (#OE3135) c033c91 bitbake: providers.py: Fix perferred_version variable handling 6a0a9ad bison-native: Use STAGING_DATADIR bc7e9ce openobex: Fix staging function typo dd0eec8 libxml2: Stage binconfig files to STAGING_BINDIR_CROSS 5c0507f glibc: Drop unused directory ecf4068 glibc-intermediate: Factor code into common .inc file c6c94fa glibc-initial: Factor code into common .inc file 6e60bdc libusb: drop old version ae713f3 libid3tag: upgrade to 0.15.1b, use SOURCEFORGE_MIRROR (from OE) a7aee57 libmad: use SOURCEFORGE_MIRROR (from OE) 930fbfe libfakekey: reindented recipe 128f2de qemu: import gcc3 check from OE d8b7e95 quilt: depend on util-linux instead of bash to get 'getopt' command (from OE) 644eace readline: remove whitespace 028906b sato-icon-theme: unify 0.1 and svn 8d2ab41 scap: dropped bc90283 sysfsutils: split libsysfs to separate package (with dev and dbg ones) 483b058 update-modules: sync with OE (no changes for us) d64a6b7 wv: cleanup, added missing fields a105d81 libxrandr: added libxext dependency (sync with OE) 5d2aab3 libxpm: also depend on libxt b27018c libxpm: it needs libsm too 5c80bbc xtscal: sync with OE ad9ae09 zlib: cleanup and sync with OE 286da62 site: sync with OE e0833b8 wireless-tools: update to 29 (final) 09a71d0 keymaps: sync with OE 548750d ipkg-collateral: mark /etc/ipkg.conf as configuration file (sync with OE) ed93f4d hostap-conf: remove whitespaces 09a55ca gtkhtml2: fetch really anonymous (sync with OE) 096ef7a genext2fs: remove whitespace 66a5d0f gdbm: remove whitespace 3be60de file: remove whitespace 35dd9d7 console-tools: remove whitespace 7d62803 base-passwd: remove whitespaces aec382b linux-rp-2.6.23+2.6.24: Add missing patches 62c6e3e siteinfo.bbclass: add mips support from OE c67429e insane.bbclass: fix x86_64 arch name (from OE) 329e9fb Add linux-rp 2.6.23-git9 kernel for testing purposes (not default) f3b960b linux: Make kernel symlinks relative so they can be copied/moved and still work 411cbb4 checksums: sync with OE ca30d3b checksums: drop daily generated pa_snapshot 0bcdf33 checksums: fix fakechroot checksum f35d0c3 checksums: removed generated daily cumulus snapshot e575426 checksums: removed unfetchable usdir.rdm.tgz 5f5abc5 checksums: removed few not-fetchable entries 655e50d checksums: fixed shfs and FormEncode checksums 8543177 task-base: bump due to 2.6.23 and task-machine-base contents change for c7x0/akita 5721507 checksums.ini: added some more entries 734f511 base.bbclass: add checksums.ini generator 2e0dd47 checksums.ini: add some new entries 70141eb poky.conf: set proper versions of poppler and evince 26ace33 linux-rp: add no-SCR-check patch to 2.6.23 81d6b06 openssl: create libraries in staging before copying data into them 9ac4458 linux-rp: make it default for all machines except qemu ones e481e47 poky.conf: upgrade matchbox-keyboard srcrev 5c2f8dd Update glib-2.0 to 2.14.2 15080af base.bbclass: merge checksums.ini warning from OE 61d4144 linux-rp: make 2.6.23 default for spitz 3bcb616 linux-rp: makes 2.6.23 default on c7x0 (tested on device) ff9e846 linux-rp 2.6.23: c7x0/akita have pcmcia in modules to fit in kernel partition 9255186 linux-rp: autoload pcmcia modules 2b156ce zaurus: RRECOMMENDS pcmcia modules for c7x0/akita 2adc33b ipkg: Update update-alternatives reference d9e8ff1 dpkg: Fix update-alternatives dependencies and remove bogus variables 7992bb1 task-poky-boot: Switch to use VIRTUAL-RUNTIME_update-alternatives 4a5f711 poky.conf: Set VIRTUAL-RUNTIME_update-alternatives, fix some quoting 264a9ad update-alternatives: Set PROVIDES/RPROVIDES/DEPENDS correctly 38edf0a librsvg: Remove duplicate EXTRA_OECONF line c27b41f librsvg: Bump PR (missed in the last commit) 530eda4 librsvg: Explicitly disable libgsf, croco and gnome-vfs since they're not in DEPENDS (and remove old version) c69e329 linux-rp: added one cleanup patch for w100fb c419af6 bluez-utils: Add patch to allow disabling of hal in configure bbcc43d bluez-utils: Disable hal, at least until we explicitly add to DEPENDS d49a4ef mtools: Remove install-info commands to unbreak build 2ab0d93 mtools: unbreak with patch from NetBSD (DESTDIR support) beb3a1b bitbake: Fix taskdata whitespace splitting issues c09f9e8 poky-image-sato-cd: Fix dependencies 532361b mtools, cdrtools: Move from meta-extras to meta for boot CD support ffb1c7c dosfsutils: Move from meta-extras to meta 03abf8e bootimg.bbclass: Fix taskname reference 46b69ea bitbake: Sync bzr fetcher with upstream 388c2f8 bitbake: Add hg fetcher (from bitbake upstream) feb7067 syslinux, nasm: Move from meta-extras to meta 8eec392 gypsy: Add missing DEPENDS e518f7a linux-rp 2.6.23: unbreak for zylonite 7ddb194 linux-rp: update 2.6.23-rc4 to 2.6.23 (non-default as c7x0, akita, zylonite, hx2000 breaks) 5a409e5 poky.conf: bump SRCREV for clutter (approved by Rob) bd06aa1 linux-rp: remove last parts of OpenZaurus from kernel recipe 015593c clutter-gst: added (non-default) recipe for 0.4 branch f0d60ff clutter: added (non-default) recipe for 0.4 branch 9e92369 clutter: mx31litekit support added 091e94c formfactor: Add zylonite b3ecca5 liberation-fonts: grab via HTTP not HTTPS a68b431 linux 2.6.22: kernel for cm-x270 taken from OE c8587da cm-x270: merge OE machine config instead of our one 8fc7d0b htcuniversal: do not depend on acx-firmware until its license will be known ee38abe task-poky-boot: include keymaps only for machines with keyboard f65a0e7 poky-task-boot: also ship keymaps - otherwise device can be unusable dbeb513 linux-rp: re-enable w100-extmem patch also in 2.6.23-rc4 kernel (merge with OE) f40c023 linux-rp: re-enable w100-extmem patch to get XImageon working (merged from OE) d2d3f84 mx31litekit.conf: Fix typo d3685e7 mx31litekit.conf: Tune for armv5te for now 2e16b77 conf/machine/bootcdx86.conf: Fix broken require eeaeae4 poky-autobuild: overwrite instead of appending to svninfo a0ad9da scripts/poky-autobuild: Add support for a POSTPROCESS command 7f97838 poky.conf: Update oprofile and oprofileui SRCDATE/SRCREV, add gypsy af1aeba Add first pass at gypsy.bb file 887a280 linux-mx31: MX31 LiteKit support. 54d4742 glib-2.0: Remove accidental commit 7ad9dcd pango, atk, libglade, clutter: Fix gtk-doc DEPENDS ccb101a gtk+.inc: Fix DEPENDS 46da048 glib-2.0: Fix DEPENDS (gtk-doc -> gtk-doc-native) fbffeca task-poky-sdk: Add libtool d478db9 gtk-doc: Drop broke gtk-doc.bb and leave native version 4adc447 task-poky-sdk: Add cpp, gettext and libstdc++ ea12e3c Copy the fix for OE bug #2554 over to Poky from OE. (Necessary for building on at least OpenSUSE 10.3.) b76b84f HTC Universal: Including zaurusd to the htc images. 9ea931a oprofile: Add oparchive fix and patch to add --root option to oprofile d195594 Add rules for MXC UARTs. 6832376 js: Fix typo in PARALLEL_MAKE 62b67b0 package.bbclass: Remove depchains packaged() check. This broke after pkgdata was split for multimachine issues and I'm not sure we need/want it anyway, we're only dealing with Recommends, not Depends a4fde82 oprofileui.inc: Remove now unneeded FILES statement 7aca456 oprofile: Add opstart/opstop commands, fix armv6 events file 596b7b8 udev: Bumping -115 PR. 5dfdab5 udev-115: Kernel events filtering improvement. cfa5b19 linux-rp_2.6.22+2.6.23-rc4: Fix FB overlay. cdafd8b wpa-supplicant: add some patches from redhat f2287f4 package_deb.bbclass: Create DPKG_ARCH to allow mapping between debian archs and Poky ones f0dde94 hal: Tweak RDEPENDS/RRECOMMENDS 82bdad4 package.bbclass: Append to do_package[deptask], cleanup up PACKAGES checks, generate .packaged file for depchains benefit (fixing -dev and -dbg package dependencies). People should wipe do_install stamps and rebuild to fix package dependencies 8af3726 package_(ipk|deb).bbclass: Rename do_packages stamp to be clearer about what it does 5c5c084 linux-rp-2.6.22+2.6.23-rc4: Release console semaphore on an error path. 939d457 linux-rp-2.6.22+2.6.23-rc4: Fix vt_ioctl race. 407a73d poky.conf: revert accidental commit 73b608e tasks: update srcrev to use X-MB-SingleInstance 1e7fe22 kf: change SingleInstance to X-MB-SingleInstance 0bf861c puzzles: change SingleInstance to X-MB-SingleInstance 09e6115 poky.conf: upgrade mb-desktop srcrev to get X-MB-SingleInstance support 3b38469 local.conf.sample: fix typo, tools-dbg -> tools-debug b284e39 wpa-supplicant: remove 0.5.7 and unused files 4953542 linux-rp-2.6.22+2.6.23-rc4: Added the HTC wifi module to our defconfig. 55c49b8 clutter: Refresh clutter to a 0.4 version 7fc1a05 udev: Promote 115 to default 72120d2 hal_git: Remove uneeded patch 2a2b229 hal-info: DEPENDS on hal (for configure checks) 4a33e3d udev.inc: Fix staging of libvolume (autotools macros don't work) 75bcca7 networkmanager*: Switch to SRCREV 512c88f poky.conf: Bump oprofileui SRCREV, add networkmanager and networkmanger-applet 8ec9fd5 Sync patches with upstream 126d979 poky.conf: Specify preferred verson of hal-info and remove halinfo srcdate b985401 hal-info: add a versioned release, and lower the preference of the git package 23f1df5 hal: no need to force-reload, we can reload now 2b6d98f wpa-supplicant: reload dbus in postinst eb7cc8a bitbake git.py: Always use tag param from URI if specified 2c13e1b Remove dhcdbd, NM 0.7 doesn't need it 3cc1591 Remove NM 0.6 5409e91 wpa-supplicant: enable the DBus control interface (for NM) 4d76e10 iproute2: fix ordering so that the patches are applied 69a365b oprofileui.inc: Add gconf to DEPENDS 820f7c6 networkmanager: remove integrated patches, fix startup script to start NetworkManagerDispatcher, add missing depends, don't restart ncsd as we don't use it c99719d gnome-keyring: add a DBus service file so the daemon is auto-started when needed 86fa4f7 linux-zylonite: Removed as zylonite is using -rp kernels. 6c85a2a linux-rp: minimal zylonite kernel b4c4ff1 glibc: Remove hardcoded LIMIT_BUILT_LOCALES values 5a5f497 glibc.inc: Fix LIMIT_BUILT_LOCALES handling 0a0218f glibc-package.bbclass: Remove dead code 1d13fd2 poky.conf: Set LIMIT_BUILT_LOCALES bb9d5bb dbus: add reload action 4f06fd1 dbus: don't pass --reverse to run-parts, busybox doesn't support it c0be929 Add network-manager-applet c41fcd6 networkmanager: Add staging, and split packages like OE 2aaaeda Update tasks to 0.12 ed66764 networkmanager: add svn trunk packages, fix up bad packaging, and backport fixes to 0.6 0a5c898 ppp: Fix debug packaging, and stage the pppd headers 40baa24 networkmanager: Rename bb from _svn to 0.6svn cb40f22 udev: adding the latest udev release, 115. b03d999 dbus: Drop unused patches, and merge unversioned and version patch directories 9c0ecf0 zylonite: Initial poky support. 6e5b0d2 bitbake.conf: Clean up some hardcoded path/layout references 75bc310 glibc/glibc-intermediate: No need to install headers/libs to cross directory (populate_staging speedup) e32f910 glibc-initial: Install headers into staging, not cross 405a6a6 gcc-cross: Use staging for local-prefix instead of cross, undo ARCH_FLAGS_FOR_TARGET change 6d09e07 linux-libc-headers: Add DEPEND on cross-linkage to handle linking of directories 93c82d7 cross-linkage: Add dummy package to handle linking cross to staging c7c2baa linux-libc-headers: Gross hack until gccs include paths are fixed 43ad089 linux-libc-headers: Only install to staging now, not cross 308250e gcc3-build.inc: Add staging includes to ARCH_FLAGS for target meaning we don't have to have includes in both staging and cross 79bbd24 gcc-cross-initial: Move common code to gcc-cross-initial.inc 1401afe gcc-cross-initial: An install stage is totally pointless 32047c6 Upgrade gnome-doc-utils to 0.12.0 bee48cf Upgrade gnomecanvas to 2.20.0 22da738 Upgrade gtk-engines b6b7200 gnome.bbclass: change version regexp to handle x.y versions, not just x.y.z 80924d4 Upgrade gnome-vfs to 2.20 7fb9559 Upgrade gnome-keyring to 2.20 b6e6692 Upgrade gnome-common to 2.20 75ec54e Upgrade evince to 2.20 55fc4e7 Upgrade poppler to 0.6 5b5ae6b kernel.bbclass: Add menuconfig task ece4387 bitbake.conf: Allow overriding of SHELLRCCMD 70d7d50 Upgrade atk 12a9c78 Upgrade gail, and fix packaging 320e6a3 libgsmd: Update from 20070801 to 20070917. e91795a pkgconfig: Add sysroot support patch (from pkgconfig mailing list) 48d9843 linux-nokia800.inc: Ensure deploy and populate_staging don't run at the same time e1966bc busybox: Remove unused config 51d9c76 devshell.bbclass: Sync with OE since this no longer works at properly without this change 2129b59 Upgrade glib from 2.4.0 to 2.4.1 021e69f Upgrade GTK+ 2.11 to 2.12.0 33f82b3 pixman: added 0.9.5 from OE f976627 ohm_git.bb: switch to --without-xauth b55c10f eds-dbus: update srcrev, remove integrated threads.patch 3694035 poky.conf: exclude eds-tools from world builds ab5d09d Rename eds-tests to eds-tools e733d0d poky.conf: Upgrade eds-dbus srcrev 8d4fb7f eds-dbus: Add threading patch until I'm confident enough to commit it to svn e805cf6 Update eds-tests to bzr branch 3b56520 eds-dbus: fix parse errors 57348b3 linux-rp_2.6.22+2.6.23-rc4: Fix objcopy confusion with bintuils 2.18 7c5e637 linux-rp-2.6.22+2.6.23-rc4: Added ASIC3 keys to the HTC kernel build. 720b5c1 kernel.bbclass: Add kernel-vmlinux package 9998dd4 binutils-cross 2.18: unbreak x86-64 hosts - from OE #2928-c6 c9375e5 Cleanup POKYMODE files and add summary documentation c82b1a4 gconf-dbus_svn.bb: don't depend on GTK+ as we don't use it 09e8bdc poky-external-csl2006q3.inc: Add TARGETOS variables 8b1ae56 CSL external toolchain: POKYMODE file 4ad4ba7 external-csl-toolchain: added 2006q3-27 version of CSL arm toolchain fe347f7 poky.conf: Bump eds-dbus srcdate 8a0e92a bluez: dropped old versions 6b728c4 bluez-utils: upgraded to 3.18 197bfee bluez-utils: upgraded to 3.17 from OE 605afd5 bluez-libs: upgraded to 3.18 476c01a bluez-libs: upgraded to 3.17 from OE, disabled CUPS support 050902e bluez-hcidump: updated to 1.40 207a208 bluez-hcidump: updated to 1.40 54b4320 bluez-hcidump: updated to 1.38 94346b0 bluez: dropped not used files b860f81 bluez: dropped files used by other distros e60d22e bluez-utils: dropped 02dtl1_cs.sh - it is now in own package ce9b85c bluez: dropped old bluez-utils-dbus patches 2121a09 hicolor-icon-theme: upgrade to 0.10 69f9c09 shared-mime-info: upgrade to 0.22 f0842c2 package_ipk.bbclass: Improve directory existence check 027fa67 package_ipk.bbclass: Fix ipkg-sdk.conf 4eaac5b package_ipk.bbclass: Create sdk Packages files 911d2ed Update eds srcrev 4d1090e linux-rp-2.6.22: Update qemu defconfigs fixing wacom problems c547a06 openmoko-dates2: added initial recipe 10bf469 linux-rp 2.6.22: enable hostap and other 802.11 drivers for c7x0 and akita (from OE) e57146c Bump eds srcrev 451ef8b base.bbclass: Swicth to use cleandirs flag for install task 9c9fad5 build.py: Add support for cleaning directories before a task in the form: do_taskname[cleandirs] = 'dir' 763dc8a package_ipk.bbclass: Split ipk deploy directory by PACKAGE_ARCH (from OE) c518632 image.bbclass: Fix IMAGE_BASENAME and PACKAGE_INSTALL variables f2f97b7 bitbake.conf: Add bzr fetcher support, give IMAGE_BASENAME a sane default 899c451 bitbake: Sync with 1.8 upstream branch 7d4aa7f prelink: Fix R_ARM_TLS_DTPMOD32 problems 5758f9c git-native 1.5.2.3 -> 1.5.3 5338738 GTK+ 2.11: Update range patch 75fadfe Update and lock OHM down to a working revision, also remove some crack 56e0055 Bump EDS srcrev cde908c glibc: do not package /usr/include/scsi as it is in libc-linux-headers-dev 4831d5f elfutils: Fix -dev package and split binutils overlap into elfutils-binutils package f403f6e package.bbclass: Cleanup install references into a configurable variable 6fa51c2 base.bbclass: Remove and re-create when installing to ensure that it is empty 9694023 insane.bbclass: don't raise strings, but exceptions 263cce7 Inherit gtk-icon-cache to install and register the icons 31feb9d Fix debug packaging 4f69284 Ship the printbackend debug files 0cec26e Remove small-gtkfilesel patch, the widget is deprecated 1bce4f3 Remove xsettings.patch, I can't see the point of it df44bc8 Unify indentation a4a82d6 Remove patches which are not used, or should not be used d392c1c Remove more unused or useless patches, and update the range patch d4cb583 Remove bogus MAINTAINER fields e35de7e binutils-2.18: Fix patch 11e4e53 binutils 2.18: add patches d9c89ac Remove some patches we don't apply a23b153 poky-eabi: use binutils 2.18 ab62bf5 binutils: added 2.18 cross sdk 4f388ef binutils-cross-2.18: Use .inc file dbf959b binutils: added 2.18 (normal/cross, no sdk) bcf1196 binutils: Use common .inc file 903bd14 image.bbclass: Revert some changes as bitbake can't seem to cope with them :-( 3adf5ea makedevs: Fix named pipe creation and set file modes correctly c51edd3 uclibc: Sync with OE f1e0aeb conf/distro/include: Sync versions files with OE a11bbb4 hx2000.conf: Sync with OE 65f6428 conf/machine: Sync various changes with OE d20e041 site: Sync with OE 3fadcdb linux-rp: Sync with OE be34d55 base-files: Remove unsupported machine configs a2ca87c zaurus-updater: Add C3200 support from OE e223238 bitbake: Update to latest bitbake-1.8 branch 1cf731b initscripts: Sync with OE, primarily for better /etc/timestamp handling 3cb6c76 image.bbclass/poky-image.bbclass: Add a function to create /etc/timestamp during image construction to give a reasonably sane default time setting b2a2689 sip.bbclass: Sync with OE bc47503 tinderclient.bbclass: Sync with OE 47ea9ba image.bbclass: Allow partial backwards compatibility 733dc27 classes/distutils*.bbclass: Merge updates from OE 5781fe1 insane.bbclass: Merge updates from OE 63b739f classes: Sync various tweaks from OE 8d342dc makedevs: Add file and diretory creation code (from OE) bbbb9f5 device_table-minimal.txt: Sync with OE (remove dubious /bin/ entries, create /dev directory) 7a284e5 linux_modules.bbclass: Remove unneeded file 0ea0986 module.bbclass: PARALLEL_INSTALL_MODULES is dead code f19cf86 meta-toolchain: Change to be more generic and use package_ipk conf generation functions. Also rename task-poky-standalone-sdk-host to task-sdk-host and add copyright. c6938aa Factor ipkg index and conf file creation into package_ipk.bbclass a7c63ec gdb: Move 6.6 patch out of .inc file d989bca gdb: Fix typo 1e829f1 gdb: metadata cleanup dfa8101 rm_work.bbclass: Update for bitbake 1.8.8 0206afd native.bbclass: Don't use site files for native builds 62eb35c debian.bbclass: Remove stable BUILD_ALL_DEPS reference f2ddfbb classes: Sync with OE 411cd0c base.bbclass: Further tweaks from OE 19e113c base.bbclass: Remove legacy code which hides bugs 1bc8eee base.bbclass: Remove showdata task (its broken and bitbake -e is equivalent and not broken), tweak URI checksum messages 4999f1d bitbake.conf: Sync with OE.dev c8c2a9e Add new gnome-vfs to poky-bleeding a74c19f Add new gnomecanvas to poky-bleeding c3159bd Add new gnome-keyring to poky-bleeding 8f67430 Add new ATK to poky-bleeding b325ea5 Add new gtk-engines to -bleeding c654ed6 Add gail 2162aff Lock down libgnomecanvas in poky 7dfda3f Upgrade gnome-doc-utils to 0.11.2 ef56bac libgcrypt_1.2.3.bb: stage the m4 file e3962e2 Upgrade evince to 2.19.4 154f7d7 Upgrade libart-lgpl to 2.3.19 fd68c29 Upgrade intltool from 0.35.5 to 0.36.1 7d53ee2 Upgrade startup-notification to 0.9 6e81ae5 Upgrade librsvg to 2.18.2 8cc540d Upgrade pango to latest stable release, 1.18.2 3d0b9fc Remove unused glib versions 5ff88af linux-gta01: added missing logo 1c87082 added current location to filechooser dialog 5ee5800 Upgrade eds-dbus to latest svn 6406e3e Upgrade contacts svnrev to 0.7 release 7f62df1 Upgrade the contacts tarball version from 0.5 to 0.7 1bd6367 mtd-utils: Lock down git revision for now 510d995 Add bluez-dtl1-workaround from OE 81dca73 task-base: Add bluez-dtl1 workaround from OE 837f7e0 sanity.conf: Bump minimum bitbake version 2b109b7 linux-rp.inc: Remove no unneeded variables e2b7975 conf/machine: Set KERNEL_IMAGE_TYPE and kernel-base RDEPENDS for various machines 5f17d07 zaurus-2.6.inc/linux-rp: Change to machines marking themselves as not wanting kernels included in images 226a5dd kernel.bbclass: Sync with OE for packaging changes 4a319e9 modified GtkFileChooserDialog for embedded c7b5d7b linux-rp: Set 2.6.23-rc4 as the default kernel for HTC Universal. f79c41c linux-rp: Ported the HTC Universal patch to the latest -rp kernel. ff0a621 linux-gta01: update to 2.6.21.6 from OE 2fc0b59 eds-dbus_svn.bb: don't set acpath, new gnome-common doesn't need it 0e3f906 gnome.bbclass: remove unneeded -I argument to autoconf 6b1890a linux-gta: Lock down patch svn revision to a known working one c21f61e update-modules: depend on depmod 8ec4474 linux-rp 2.6.23-rc4: Fix jffs2 patch 2cc4b49 linux-rp: Correctly set default preference da85bfc Fix build failure 2ab6191 Add linux-rp 2.6.22+2.6.23-rc4 (not default) bfc657c gnome-common: Fix directory name 784976e gnome-common: upgrade from 2.4.0 to 2.18.0 35aaa6b gst-plugins-bad: upgrade from 0.10.3 to 0.10.5 3abd198 gst-plugins-ugly: upgrade from 0.10.4 to 0.10.6 99d20bd poky.conf: Bump screenshot srcrev bd949e7 Add blktool, useful for probing block devices (and add to test tools package) 8f041c7 nfs-utils: start/stop also statd so clients will be able to do locking 1039c72 openmoko-tasks2: conflict with tasks 114a799 openmoko2: sync with OE 39d90fb neod: taken from OE 81d71aa openmoko-common2: taken from OE - used by openmoko-session2 e711040 openmoko-today2-folders: taken from OE - needed by openmoko-today2 0c7e337 openmoko-icon-theme-standard2: taken from OE b8f7ee3 openmoko-tasks2: taken from OE 74ed03e libsndfile: added 1.0.17 needed by pulseaudio cf8dfa2 libsamplerate: added 0.1.2 needed by pulseaudio d9a4c58 pulseaudio: added 0.9.6 needed for openmoko-dialer2 0ab2b38 libgsmd: move to meta/ as it is needed for phone feature 0698f30 Add checksums.ini from OE.dev f590064 fic-gta01: added usbhost to features (to get bluetooth working) 8d3cf28 openmoko2.bbclass: taken from OE for updated OpenMoko 2007.2 recipes 4aa6b14 portmap: missing patches 3cd1a09 portmap: add missing file db5c504 portmap: upgraded to 6.0 08ab9f2 libxaw: upgrade to 1.0.4 732bebd poky-image.bbclass: install task-poky-standalone-sdk-target into SDK images to get usable toolchain 3e85c63 task-poky-standalone-sdk-target: it is usable not only for external toolchain e93df89 package_ipk/deb.bbclass: Add locking for package creation to stop conflicts bc8fdf0 libxpm,libxsettings-client: remove libxt build-dependency 0de0746 bash: Move from meta-extras to meta 0bc8d54 gconf-dbus: add missing depends on intltool-native 97467d7 less: update to 406 7e2f729 task-poky-sdk: Add quilt, less 968262d quilt: Won't run with ash, add bash d475a77 package.bbclass: Fix typo 170e7e1 js: Disable parallel make 0fe7e8d htcuniversal: 802.11 driver and firmware dependencies for HTC Universal. 62a6dcc linux-rp: Add 802.11 driver for HTC Universal. d1e1cc0 htcuniversal: Initial HTC Universal support. 7423ba2 linux-rp: Add HTC Universal support. f5c4efd ohm: Sync with OE.dev 4b4dca4 ohm: Set xauth-dir to make it configure ff90ae3 debian.bbclass: Fix dependencies a75b8d8 bitbake: use Psyco only on x86 (no support for other archs) f8b928e qemu: added 20070613 version (as default), made CVS floating 4ff6f39 xorg-libs: Remove more stale patches b913a0e xorg-libs: Remove stale patches e7581b5 libx11: Disable makekeys properly allowing the package to rebuild without weird failures c09b63e meta-toolchain: Adjust after pkgdata changes 9bb9178 package.bbclass: Add back package_write task in a new form 2ed6d9c base.bbclass: Make populate_staging run after install to avoid conflicts 3d29811 fakeroot: Add missing patch 222ff8e fakeroot: 1.2.13 -> 1.7.1 to fix various random rootfs creation failures 2075cb7 apt: Add db/db-native as a DEPENDS so apt-ftparchive gets built (needed by deb rootfs creation a4b8304 package.bbclass: More pkgdata fixes, (install task needs to rerun on existing builds) 4a705e9 base.bbclass: populate_staging after do_compile. Any packages staging implementation can change this 686161a gtk+: Refresh misbehaving patch f041a4d base.bbclass: Set pkgdata location to something machine specific when needed so multimachine builds don't break. NOTE: People will have to rerun the install/package tasks after this change on existing builds 48fd37f packaging: Split deb and ipk creation into separate tasks so changing the packaging type means the new type of packages are automatically generated. 005bf01 preferred-xorg-versions: fix kbproto/inputproto versions ebb71f6 libgsf: updated to 1.14.5, dropped older bd4ea1b libetpan: dropped 0.46 6a76f82 kf: recipes are not executable 43fb739 gnutls: remove hacks needed for autoconf 2.59 8ee1c79 coreutils: dropped 5.1.3 3fd04e8 pkg-config: dropped 0.15 889885f automake: dropped 1.9.3 3b13655 autoconf: dropped 2.59 9666420 sqlite3: upgrade to 3.4.2 7b40874 alsa-lib: Unbreak plugin loading in ALSA by fixing plugindir shell variable (patch from Matt Hoosier #469) 363d68a qemu.inc: Increase qemu image size d8bfa5c bitbake: Sync with 1.8.8 release e68823a makedepend(-native): fix DEPENDS 9e4f0e2 Disable gtk-doc cd68413 Add Gaku 071e9b7 Add gaku, a basic music player d0012bd rootfs_deb.bbclass: Remove spurious mkdir, I needed this because my deploy/ was hosed 35e3f24 Set bindir instead of moving files, make a valid desktop file 53710a6 Create usr/lib/ipkg in the rootfs before putting symlinks in it 4869751 Instead of exit 0, do exit 1. 0 is 0, so this doesn't work as intended 9a1a624 git.py: Fix reference to tag 7611768 bitbake: Sync with 1.8 head. Adds locking to the fetcher to prevent parallel downloads, fixes key expansion issues and occasional missing dependency graph links 11ce59b bitbake fetch/git.py: Don't use master as a tag 7064e6b openmoko-icon-theme-standard: fix SRC_URI 746fa20 Move libgsmd from meta-extras to meta-openmoko e1d82ea Disable versioning on the plugins, and ship more debug symbols 7530674 bitbake: Sync with upstream 1.8 branch d7892c2 poky-oabi.inc: Set binutils PREFERRED_PROVIDER 91b77b4 local.conf.sample: Add a note about optionally extending the PKGCONFIG_PATH for native builds 6c7c917 local.conf.sample: Add info about enabling meta-openmoko 1c53bc0 openmoko-dialer2: Fix DEPENDS/RDEPENDS da5f93a Add meta-openmoko fd81714 uboot-gta01: Lock to a known good git tag c87c693 nokia770: We don't need to add the cleanmarkers on NAND. b92c0c0 xserver-kdrive-common: Added a Nokia 770 entry. f1e75d0 linux-nokia800: Bumping PR. 74ab401 nokia770: Our preferred kernel is now the N800 one. 6bd2d7a linux-nokia800: Nokia 770 boots the 2.6.18 osso kernel. Sato images are now running properly with this kernel, on a 770. e2fe0bd sanity.bbclass: Run sanity checks before parsing for speed, sync with OE ce800d3 bitbake: Sync with upstream 1.8 branch for fixes fc136f0 base.bbclass: Improve performance with SRC_URI_OVERRIDES_PACKAGE_ARCH enabled (14% parsing speedup) c9c5d36 base.bbclass: Fix SRC_URI_OVERRIDES_PACKAGE_ARCH handling ffbadaa poky.conf: Cleanup and set some floating SRCREVs 1802616 bitbake: Sync with upstream 0197eb2 binutils.inc: No space is neeeded with CCACHE 8f4687c qemu: Work around bad system futex headers 3d50b7e linux-rp-2.6.22: Remove scsi patch for qemuarm On 2.6.22 the scsi patch prevents us from booting a qemuarm image. 6ec68c2 Use R22 of oh-puzzles and apply the owl menu patch to it d1798db qemu: fix lack of MAP_32BIT on 32bit machines 62f6622 bitbake fetch/__init__.py: Don't print double newlines 74a3de2 bitbake.conf: Add AUTOREV 9649445 libsync: fix SRC_URI 84d9d4a opensync: fix parse errors for SVN versions c7927a6 libsync: switched to SRCREV aca20b0 libmatchbox: switched to SRCREV f15d0c0 tasks: switched to SRCREV 6eb45d1 poky: another set switched to SRCREV 7c105c0 task-poky: ship pointercal data dda6b92 owl-video-widget: switched to SRCREV 6921618 libfakekey: switched to SRCREV 895e719 opensync stuff: switched to SRCREV dc5ff14 matchbox-desktop-sato: switched to SRCREV 01cdd39 clutter(-cairo/-gst): switched to SRCREV c6ad89c poky: another set switched to SRCREV cd1fa90 table: switched to SRCREV 35a61a8 sato-icon-theme: switched to SRCREV 953c041 poky: another set switched to SRCREV 646836f evince: switched to SRCREV c859407 aaina: switched to SRCREV 6fbf586 matchbox-themes-extra: switched to SRCREV 585c46b fstests: renamed to PN_svn.bb scheme b19aa96 fstests: switched to SRCREV 2a649fa matchbox-panel: switched to SRCREV 2d7891b matchbox-theme-sato: switched to SRCREV 2b88aaf poky: another set switched to SRCREV 5a1136d screenshot: switched to SRCREV 874dc49 libowl: switched to SRCREV, removed empty tasks 350dcff matchbox-applet-light: switched to SRCREV 3d410d3 poky: gtkhtml2 switched to SRCREV 47c30fd gtkhtml2: switched to SRCREV 3565486 poky: settings-daemon switched to SRCREV f595c1c settings-daemon: switched to SRCREV b3b65f3 poky: psplash switched to SRCREV c569e6e psplash: switched to SRCREV 7633048 poky: zaurusd switched to SRCREV 52a3bc8 zaurusd: switched to SRCREV 3da7d58 poky: exmap-console switched to SRCREV 2afa64e exmap-console: switched to SRCREV 7b1800e poky: xvideo-tests switched to SRCREV 516fcce xvideo-tests: switched to SRCREV, simplified d3ed582 matchbox-wm: switched to SRCREV 3d2bdf8 poky: more matchbox apps switched to SRCREV a7eeaa4 matchbox-terminal: switched to SRCREV 0617f40 matchbox-stroke: switched to SRCREV 44660d7 matchbox-panel-2: switched to SRCREV e25d230 matchbox-keyboard: switched to SRCREV 09cd28b matchbox-config-gtk: switched to SRCREV 6d52857 sanity.bbclass: Further qemu check improvements 043b801 sanity.bbclass: Factor ASSUME_PROVIDED into qemu checks b14c8cd Switch back to using our own qemu binary for locale generation by default 6e909eb bitbake runqueue.py: Improve the progress indicator by skipping tasks that have already run before starting the build rather than during it 24909e8 poky: matchbox-common/desktop moved to SRCREV 241bd83 matchbox-desktop: switch to SRCREV 758ed29 matchbox-common: switch to SRCREV a21e133 qemu-native: unbreak on amd64 - patch taken from OE 0460e71 task-poky-boot: machines need kernel to boot - even if minimal image is used b5fc26a bitbake.conf: Fix DL_DIR 029f45e providers.py: Also add pn-PN syntax to overrides when evalutating PREFERRED_VERSION 3de28a7 poky.conf: Fix SRCREV syntax 3ccd06b lsof/m4: Remove old versions 3838cc7 Add hicolor-icon-theme 0.9 (from OE) 2009324 Add shasum (from OE) 9c90076 base.bbclass: Sync with OE.dev (mainly download checksumming code) 9d3073b documentation.conf: Sync with OE.dev f751a20 bitbake.conf: Sync with OE.dev b994a55 gtk-icon-cache.bbclass: Add RDEPENDS to fix runtime warnings (from OE) 720e0b1 classes: Sync various classes with OE for various bugfixes fe553f4 conf/distro/include: Remove unused files 4e662cb kernel.bbclass: Remove broken and unused PARALLEL_INSTALL_MODULES c1c5e8b contacts: switch to SRCREV 729c7ec dates: switch to SRCREV 8ccecd3 web: switch to SRCREV a9bacaf eds-dbus: switch to SRCREV 39a43da gconf-dbus: switch to SRCREV 981a201 poky: switch gconf-dbus, eds-dbus, dates, contacts, web to SRCREV 121b39d Add lsof 0.78 from OE with build fixes 2ce9dd1 Add POKYMODE=eabi6, an NPTL version of eabi5 7ee4a41 oh-puzzles: Convert to SRCREV 0f23643 gtk-sato-engine: Convert to SRCREV f5223d9 lzo: Update to lzo 2.x mtd-utils: Remove patch to use lzo 1.x fa86980 local.conf.sample: Document PARALLEL_MAKE 16a9cff m4: Add 1.4.9 d3c18ac image.bbclass: Add MACHINE_POSTPRECESS_COMMAND hook 2f35f93 spitz.conf: Increase ext3 rootfs size 6ca61e5 zaurus-2.6.inc: Merge in installkit function from OE.dev 303cbee conf/machine/include: Rename to .conf to .inc files aad3939 Change do_install logic to clean unwanted files better f512740 Enable automatic installation of recommends fa8912f Fix rdepends for the kernel module 5eaa4fc Remove inherit module-base e785bbb exmap-console: Override PACKAGE_ARCH from module-base 7395a39 exmap: Remove bogus TARGET_ARCH references 355b128 oprofile: 0.9.2 -> 0.9.3 (and make the default) oprofileui: Switch to SRCREV 2fd3404 Don't use a bashism when creating directories fdedaf9 Fix reinstall target by not assuming the install directory is empty 9153c17 db-native: Fix inherit order (native after autotools) 4ab9c74 package_deb/rootfs_deb.bbclass: Add fix from OE, add copyright notice 3378c5d local.conf.sample: Fix extras collection comments 9b30794 binutils: 2.17.50.0.5 -> 2.17.50.0.12 7024f1a package.bbclass: Deal with write protected files correctly 1d612fc freetype: enable 2.3.5 version dd51fc0 package.bbclass: Try stripping files more enthusiastically 60b4328 package.bbclass: Convert runstrip shell into python 9933215 update-rc.d.bbclass: Tweak change e03c1d2 update-rc.d.bbclass: Stop the class corrupting the D variable b5aa22b bitbake lib/bb/runqueue.py: Make sure intertask depends get processed correctly in recursive depends a354182 gnome-vfs: Explicity disable hal until we explicity want it (rather than have it detected when its not in DEPENDS leading to builds that are not deterministic) 6883189 bitbake persist_data: Fix for python 2.4 ce4ba3c bitbake persist_data: Fix for python 2.4 e33eaf1 bitbake persist_data: Fix module reference 71068e7 bitbake persist_data: Add own retry logic 9858ddb bitbake persist_data: Use immediate connection mode 8985385 bitbake: Try to fix cache locking issue 51df840 bitbake BBHandler: Disable creation of A variable c0e5fe6 Upgrade poky to glib 2.14 7ea7a1d Upgrade glib 3ff099a Install a startup script, fix volatiles. Should now auto-start d0bcc8d Sync hal-git with 0.5.9.1, should work 1900143 Upgrade hal-info and hal to 0.5.9.1 205d909 Upgrade gstreamer and gst-plugins-base to hot new releases 113bb6c speex: updated to 1.2beta2, changed packaging d9f5fb0 Upgrade some of the GStreamer packages 029c2a1 base.bbclass: Correct git-native autodependencies 4df629a patch.bbclass: Add support for maxrev and minrev 4c75040 base.bbclass: Auto add dependency on git-native when needed 09bd117 git-native: Add 1.5.2.3 bfb0f08 Upgrade libglade to 2.6.2 1ad99ea Upgrade libgnomecanvas bfc70eb bitbake: Update along 1.8 branch 034bbb8 pcmanfm: 0.3.2-beta -> 0.3.2.2 9525f35 makedepend-native: add DEPENDS on xproto-native - spotted by Crofton d683a2f autoconf: PARALLEL_MAKE applies to non-native version too d484ba8 linux-rp-2.6.22: Fix LZO compression issues 934b01d exmap-console: Add missing DEPENDS 599eccd Fix intltool-native dependency on perl 836647c Upgrade libsoup to 2.2.100 6530523 Upgrade intltool to 0.35.5 7537de5 linux-rp: Update poodle pm patch (OE #2682) 2aaea87 Upgrade loudmouth to 1.2.3 87360b9 libxml2-native: disable Python support 8e03c28 preferred-xorg-versions.inc: bump makedepend 6a166b8 libxml2: depend on python-native-runtime cdf2c48 xserver-xorg: removed all not-needed files 807535a libxml2: update to 2.6.29 (from OE) 22c8505 Upgrade libxml/libxslt a2defd4 Upgrade gtk-engines bcfeb8f Upgrade gtk-engines 90d9600 Upgrade vte c96d400 Fix no-gnome patch for empathy a17f926 Upgrade libtelepathy and telepathy-mission-control a6ce2f8 Upgrade gnome-mime-data bba2402 pkgconfig: Add missing patch 7c5722e Upgrade gnome-keyring 315af76 Add site cache for /dev/random checks ed1acc8 Remove old files ba9de06 Use the latest librsvg e3972dd Upgrade newer librsvg to 2.18.0 3102a0f Upgrade Avahi to 0.6.20 c65df6c poky: fix SRCDATE for libgsmd at 20070801 659c2ac libgsmd: cleaned up patchset to apply for 20070801 version, bumped PR to be newer then OE one 96e455f Upgrade libdaemon to 0.12 a92c10a Upgrade atk to 1.18 719eb99 Switch from gtkterm to matchbox-terminal 42e85c0 Don't call gtkdocize, just tough gtk-doc.make 8c86252 Add depends on gtk-doc-native a0fcf8b Fix glade build on newer GTK+ by disabling the deprecation guards f6a013b site/common-glibc: Set glib_cv_long_long_format 1ee78ec linux-rp-2.6.22: Fix c7x0 compile problem 3430bf0 libmusicbrainz: 2.1.2 -> 2.1.3 and add autoconf fix 2256a51 libmusicbrainz: fix type of len variable to get it built 236595c Upgrade gnome-vfs to 2.18.1 75825af pkgconfig: Fix compile issues for non-native version 7944fb2 Add GTK+ 2.11.6 for poky-bleeding 5c53fff Add patch from svn to fix c++ builds f90f6b0 Upgrade cairo to 1.4.10 fff91ca Upgrade bleeding to pango 1.17.5 1d0a8d7 Upgrade Pango 1.16.x to 1.16.6 6f85f79 Upgrade bleeding to glib 2.13.7 32dde8e sato-icon-theme: Set PACKAGE_ARCH to all (from OE) b4fb7f1 xorg: Fix PREFERRED_VERSIONs ff9fdcc dates: Fix svn PV 4e75063 Sync with poky 83c69a5 Upgrade glib 2.12.x to 2.12.13 27a7b90 Upgrade GTK+ 2.10.x to 2.10.14 7e5766f Move some site defines from arm-common to common-glibc 1bceb4b libx11/diet-x11: upgraded to 1.1.2 2e8dd5d pokk-external.inc: Add missing GLIBTARGETOS 009d2a0 Use POKYMODE to enable the external toolchain 69f5314 Remove old gconf-dbus from cvs d5d3fa4 Upgrade gconf-dbus version 100d164 makedepend: upgraded to 1.0.1 5ba7492 xhost: upgraded to 1.0.2 e435272 libxtst: upgraded to 1.0.2 c21ca29 libxcomposite: upgraded to 0.4.0 41228de base.bbclass: Fix base_get_srcrev aa175ae libxi: updated to 1.1.2 9c2664d libxfont: updated to 1.3.0 315b113 sanity: Add check for help2man 2a26738 libxdamage: updated to 1.1.1 8e9daef inputproto: updated to 1.4.2 77fd947 compositeproto: updated to 0.4 8a766b2 freetype: added 2.3.5 a40e1ff libx11: do not remove X11/Xlib.h from staging d16d32c libsm: updated to 1.0.3 1bac843 libxi: updated to 1.1.1 53d3de8 libxi: updated to 1.1.1 29a34ac libsm: updated to 1.0.3 53df894 xrandr: updated to 1.2.2 5510cc23 xinit: updated to 1.0.4 12538fa ohm: Drop patch applied upstream 58d54c7 xinit: update to 1.0.4 d8b0c36 make: added 3.81 from OE feeffc3 pkg-config: added 0.22 from OE ae0fdfa m4: added 1.4.8 89c53ba automake: added 1.9.6 3980544 autoconf: added 2.61 b040fa6 poky.conf: Add some packages back to the world build now we meet the minimum version requirements 51afe14 poky.conf: Upgrade to poky-bleeding verisons (gtk+ 2.10, glib 2.12 and friends) 45bb45b linux-rp: Make 2.6.22 the default 2cb33bf lttng-viewer: 0.8.41 -> 0.8.83 1218268 lttng-control: 0.18 -> 0.42 ccf25ac poky.conf: Move all toolchain configuration into the POKYMODE files ef8532a image.bbclass: Ensure the system python is used, not the one in staging 09e3f98 base.bbclass: Minor performance tweak, add base_get_srcrev() 841d5dc bitbake.conf: Add variables for bitbake 1.8 fetcher changes 7c76add task-poky: Add kexec-tools 46afad2 Add matchbox-theme-sato and sato-icon-theme 0.1, update distro config to match 72aa732 gtk-sato-engine: Add 0.1 release, update distro config to match 75cac96 Potentially better scrollbar patch 6d714ad Bump srcdate for settings-daemon to get proper defaults 232f06b Fix the patch 3d94cc5 Add new empathy f82153d bump PR a9b72e4 Disable the Handed option for now aaa60bf Really fix typo in card 7d9c374 Add a bit of a hack patch to disable frantic redrawing of GtkRange when they move, so that the contents has a change on slower devices 24f13ad oprofile: Add RDEPENDS on binutils-symlinks 2c0b1aa task-poky-standalone-sdk-target: Add glibc-dbg package 4b4ccd9 Add a patch from 2.12 to size combo arrows based on the font size 3e918fc Bump sato srcdate for desktop fixes f9156f9 ld.so.conf: Remove unused file locations 828cb20 Add patch so that the size of the toggle cell renderer is based on font size f7bf74a poky-init-build-env: Don't exit from sourced scripts, return 8e4a14b poky-qemu-internal: Don't exit from sourced scripts, return 3b53e52 poky-env-internal: Return in error case 626622d Fix typos in the OH contact 3e02bc1 mtd-utils: Remove stale files 511c8d7 poky.conf: Bump gtk-sato-engine SRCDATE and add clutter 138930b Bump rootfs sizes to fit sdk images d2db6da linux-rp-2.6.22: Fix patch compile problems fdbae5e Bump sato srcdate, to get menu arrow buttons which disappear 509f999 Pull patch from svn to fix crash when deleting tasks 5e73b76 task-poky: Add gdbserver to tools-debug ecb0e87 poky-image-sdk: Add missing tools packages 7191fe6 formfactor: Set DPI for qemux86/qemuarm 8394741 owl-video-widget: add description for icon 75c9464 mtd-utils: Work with lzo 1.x for now c572384 remove local lzo patches as they have been merged into master 60548d8 switch from apt 0.7.2 to 0.7.3 d93f4d8 bump zaurusd srcdate to get its version that uses the right tslib version fb37f45 Add scrolled window placement fixing patch 450b758 added builtinreaddirectory-no-side-effect.patch to fix #394 42b4848 ipkg: bump PR efeb1ec ipkg-native: do not depend on update-alternatives (which ipkg depend on) 6f18363 linux-rp: Add basic htcuniversal support (based on hh.org patches) and fix MMC problems over suspend/resume 86ea901 gdb: Add missing quote 3194d0d task-poky-standalone-sdk: Fix gdb package name 27137aa gdb: Add gdb-cross-sdk, factor out code into .inc files 5909234 Bump config and settings srcdates to get the handedness support 5707e90 gdb: Remove old versions b676654 gdb-cross: Use cross class, not sdk cab3268 poky-autobuild: Fix to work with enivoriment changes 7d44fdb poky-env-internal: fixes b2d7cb6 linux-rp: Set CONFIG_TIMER_STATS 854a97c poky-env-internal: Allow user to overide build directory 21b7fab poky-env-internal: Fix quoting 5818410 runqemu: Fix image names 3f450bf Fake bump of panel srcdate bc57030 Bump matchbox-desktop SRCDATE. 3891f97 Bump sato-gtk-engine SRCDATE ddc43d2 Bump matchbox-panel-2 SRCDATE. 341d2bb bumped oh-puzzles srcdate 64405df Bump matchbox-theme-sato SRCDATE. ee5a89f Add matchbox-terminal 3207bca Add a nasty hack to fix the build 7f35707 Use gtkterm2 instead of rxvt so that the keyboard appears when required 0f760fb Fake-bump of libowl srcdate 1625018 Add a desktop file f73a2e7 owl menu for contacts_0.5 4b83d86 owl menu for dates 0.4.4 9f45dd9 Add a owlmenu patch b6a445c Bump libowl srcdate to get owlmenu menuitem support aeb19fa Bump desktop srcdate to get new style colours e9aba83 owl menu for contacts bf2ebd8 owl menu for dates 10bb42b Update Poky to Dates 0.4.4 34acb84 task-base: install task-base-phone on phones for all distros 2b14655 Update form-factor for neo f620ad8 pointercal: add calibration for Neo1973 2866153 removed some utter madness from speex recipe 710cd8e Disable dnd in dates. 7663957 Just add an autogenerated Comment line to the .desktop files generated for OH games. 2f24d5d Remove libart dependency, this version uses cairo 659bd05 task-poky: switch to oh-puzzles f5e5977 librsvg: disable gnome-vfs support d4a49a0 Bump sato gtk engine SRCDATE. 6eb0e0f Add a comment to .desktop b1b30ec Add comment field to .desktop file 61012de Bump sato and panel SRCDATES. f0ddf47 task-base: bump PR due to fic-gta01 change 1024ba0 fic-gta01: removed usbhost feature as it needs special cable which no one has a0c3070 uboot-gta01: bump PR after last change 133786c uboot-gta01: fix SRCDATE to 20070711, revert git tag 17d6b30 Bump Tasks version 77016cc Bump desktop version 2612cca formfactor: fix fic-gta01 settings 21f8d46 xserver-kdrive: fix build after tslib version fix d9c3c94 poky.conf: Use latest zaurusd 5e43360 task-base: make all subpackages set to MACHINE_ARCH c6ea930 fic-gta01: do not use LZO compression for jffs2 8512481 poky.conf: Its ohm that needs gtk 2.10 02b9fd9 clutter: Package examples separately 9c27940 Add task-poky-clutter 8cc0894 poky.conf: Fix up world EXCLUDES df6134d mtd-utils: Tweak LZO patches b15ec7a Add neon (from OE) for aaina e02fb94 Add clutter, clutter-cairo, clutter-gst, aaina and table, excluded from world builds for now 9e9fe20 bitbake.conf: Add new FETCHCMDs d3e0989 openmoko-libs: dropped cc9b2ec task-base: added task-base-phone 803d98a u-boot for gta01: set u-boot upstream to fixed 'known to build' version ffbba6d glib-2.0: fix packaging so libglib-2.0 package contain only libs without crap files 2cbf32b tslib: Fix library version (and bump xserver PR to unbreak people's builds) 886a6ba task-base/task-poky-boot: Use MACHINE_ESSENTIAL variables correctly f999059 nokia770-init: Fix typo 8541584 openmoko: added classes needed by openmoko-libs d2486dd openmoko-libs: added from OE 7aa012b libgsmd: added from OE 5ff8d3e libxosd: added version from OE + fixed packaging ea9a256 linux-rp: 2.6.21+2.6.22-rc7 -> 2.6.22 8b1fff0 base.bbclass: Revert quoting changes 67ccd85 poky.conf: Bump matchbox-keyboard SRCDATE 794a923 debian.bbclass: fixed typo 91bbcd4 base.bbclass: Start to fix quoting 119b1d5 build.py: Start to fix path quoting a291023 Put the startup applet on the left,not the right fc4806f Bump dates SRCDATE. 2abccca poky-env-internal: Revert accidental commit 823dcb9 runqemu: Use pda image if sdk image not available for qemu machines a5e790a runqemu: Use pda image if sdk image not available for qemu machines e537910 pong-clock: Add 1d28e03 matchbox-desktop: Bump PR 2d96af6 Bump PR cff716d Remove matchbox-common build-dependency 1af8217 Remove matchbox-common depends, the session script is now in matchbox-sato d134473 Add matchbox-common dependency 4c3f0d7 Don't depend on matchbox-common 09324bf Don't depend on matchbox-common, but matchbox-desktop-sato. Also ship /usr/bin/matchbox-session here fcbafc8 Remove dependency on matchbox-common 1bfccda Add startup applet 1086ade poky-image.bbclass: added description of newer IMAGE_FEATURES 1cba1f7 Bump sato SRCDATE. 2f8a2a5 Enable avahi in the oprofileui-server 5802291 Add matchbox-desktop-sato c9ee84b Remove the Office category from leafpad 60ea9b7 Bump eds-dbus srcdate 6be3ace Add OH contact when creating a new addressbook 5d1ff83 xserver-kdrive 1.1.0: fix S 20d6337 fix SRC_URIs 605c655 gccmakedep: fixed DESCRIPTION 6c9d93a xorg-lib: X11 cleanup part 2: added DESCRIPTION fields, fixed DEPENDS lines, fixed order of fields d48249d xorg-proto: X11 cleanup part 2: added DESCRIPTION fields, fixed DEPENDS lines, fixed order of fields abdf7d4 inputproto-native: dropped 1.3.2 366aeba xorg-util: X11 cleanup part 2: added DESCRIPTION fields, fixed DEPENDS lines, fixed order of fields b6ad88e xorg-app: X11 cleanup part 2: added DESCRIPTION fields, fixed DEPENDS lines, fixed order of fields 8f0272c fix srcdate for xvideo-tests fd46f22 sanity: if Poky is used by root user (userid 0) then raise error c090d98 xhost: X11 cleanup e451d98 xorg-lib: fixed SRC_URI 584b47a xorg-proto: fixed SRC_URI 90f7269 bigreqsproto-native: fix SRC_URI c774777 libfontenc-native: fixed SRC_URI f836b3b preferred-xorg-versions: X11 cleanup 2153cac xorg-lib: X11 cleanup c9c4ddd xserver-xorg: dropped a42d467 xorg-proto: X11 cleanup 2a96015 preferred-xorg-versions: X11 cleanup - update versions 53069e1 xorg-xserver: X11 cleanup 1811e79 xorg-util: X11 cleanup ceff6f9 xhost: X11 names cleanup 13dfd28 xorg-app: renamed xset, xvinfo, x11perf as part of X11 cleanup cf11673 Remove empty dir 55b7576 preferred-xorg-versions: Tweak libxft e4e3aa4 Remove old X11R7 versions 00dca40 Drop libxss cvs version (replaced by libxscrnsaver) d3127fe xtscal: Install to the correct place c705da4 linux-rp: 2.6.22-rc6 -> 2.6.22-rc7, fix defconfig entries, add patch to fix suspend/resume problems 0fadc1e linux-rp: remove not used patches 5d15f67 Add linux-rp-2.6.22-rc6 for testing (not default) 1e6f5d3 apt: 0.6.46 -> 0.7.2 (and fix DEPENDS/RDEPENDS) 18b9e6e curl: 7.14.0 -> 7.16.2 bc0df6e libsoup: Fix pkgconfig staging a863497 X calibration changes. Add functionality to the xcalibrate protocol (and X) to convert screen coordinates to mouse coordinates. xtscal can then be massively simplified removing a stack of bugs. Also remove stale cvs versions of xcalibrate. d5ba636 exmap-console: Fix server packaging 0b305ff poky-image.bbclass: Fix typo d47f4af xtscal: Switch to use formfactor, remove non-xcalibrate mode and error instead eabfa35 Rewrite IMAGE_FEATURES tools options (people may be to update their local.conf), split into debug and profiling and add more profiling tools. 320682b Bump sato SRCDATEs. e40e916 keymaps: Add missing files f1edd3b qemu: Resolve various segfault issues 13e87f0 Capitalise titles without using bash syntax dedb4d3 task-base: removed dropbear, hotplug, task-poky-boot from dependencies cc847ef poky: use task-base-extended by default so devices with pcmcia/cf/usb will get BT and WiFi support 5b14520 bitbake.conf: task-base stuff 025ff89 usbutils: added 0.72 f8ca66b pciutils: added 2.2.4 from OE ba9dd52 task-base: synchronize with OE version, few features removed 8788d27 base-files: Add htcuniversal rotation 6303096 formfactor: Add htcuniversal support aecfad3 keymaps: Add htcuniversal support (from OE) 8c891cb gtk: dropped 2.6.8 cc950fe nokia770-init: Minor cleanup and set COMPATIBLE_MACHINE 9453456 gtk: added shared-mime-info into RRECOMMENDS f79d85c poky-image-minimal: Correct accidentally lost change 288a0fb clipboard manager bee1199 Add depends on flex-native 09554c1 task-base: we want task-base-dev too dd90055 hostap-utils: update to 0.4.7, dropped older 4cf1c63 task-base: we want task-base-dbg and no need for task-base-dev d9ab253 poky-image.bbclass: fix task-poky-apps-x11-pimlico names d7ff069 meta-toolchain: Create task-poky-standalone-sdk-host and target tasks packages and use these in meta-toolchain to avoid package renaming problems. 40c209b Cleaned up task-poky and Poky images. d4ed273 gtk+: recommend gdk-pixbuf loaders, unified 2.6.10/2.10.12 recipes, moved common part into gtk+.inc 1343810 bitbake.conf: Move SDK_NAME and SDK_PREFIX into bitbake.conf 5692535 gst-plugins-base: added libxv to DEPENDS 7c944f7 oh-image-extras -> poky-image-extras rename a0dd489 task-oh-extras -> task-poky-extras rename 3d36dc7 poky-image.bbclass: new class used for making Poky images 0b72250 poky-image-sato-cd: fixed name of resulting image 47d937f qemu-config: use task-poky-nfs-server 36b0bb1 task-poky-boot: set value for MACHINE_ESSENTIAL_EXTRA_RDEPENDS 9cc674e task-base: dropped task-base-poky-minimal as task-poky-boot do that job in proper way 9221a6f task-poky-boot: added MACHINE_ESSENTIAL_EXTRA_RDEPENDS 189ac44 task-poky: removed task-poky-boot from PACKAGES (it is separate recipe now) 4d0a262 task-poky: removed not used task-poky-boot-min-extras ec5a543 poky-task-boot: separate recipe to lower build time for poky-image-minimal 018b623 poky-image-minimal: use task-poky-boot b580307 Rename task-oh -> task-poky 9f15140 Rename oh-image -> poky-image 14cb222 Add missing ac_cv_have_abstract_sockets, for dbus-glib e52e38e ohm: Use correct libtool 660d9d6 Upgrade to dbus-glib 0.74 a50aa84 ohm: Add preliminary .bb file e5c90d9 tasks: update to 0.9 ec0ee0b linux-rp: Sync up/cleanup with OE 8689ce9 linux-rp-2.6.17: Sync with OE d3076ac bitbake: Sync with upstream 3cb385b linux-rp: Add missing patch from 2.6.20 7fdb95e linux-rp: Add qemuarm scsi fix/workaround, set default qemu ramdisk to reasonable size, adjust qemuarm kernel commandline de5a8b7 Add top level LICENSE 534ac16 oh-image-minimal: use remove_packaging_data_files() function instead of manually remove dirs a47e493 rootfs classes: added remove_packaging_data_files() function to be used in minimal images ab15c53 task-sdk: Add glibc-gconv packages for abiword f07d835 task-oh: switch fonts from Bitstream Vera to Liberation from RedHat c44b104 liberation-fonts: RedHat replacements for Vera and Microsoft fonts cdf70f4 vera-fonts: renamed to ttf-fonts as I plan to add few more fonts b8ed58c prism3-support: dropped ecbb975 prism3-firmware: dropped 85dcf81 task-base: use prism-firmware for Prism2/3 cards 4816b77 prism-firmware: added support of loading 1.8.4 firmware for Prism2/3 CF cards on insert 3abd842 pcmciautils: upgraded to 014, synced with OE 80c6eb0 pcmciautils: added patch (from git) to not use MODALIAS in rules as it is deprecated since udev 080 38062aa nokia770: we removed tslib-maemo long time ago 80ab8d3 dropbear: updated to 0.49 315b65a xvinfo: added 1.0.1 from OE fa135ef oh-image-minimal: remove only ipkg infos (locales are not in image) c173793 oh-image-minimal: do not install locale support to get it smaller edb6660 make xvideo-tests depends on virtual/libx11, not libx11 ! because libx11 breaks the build by removing Xlib.h from stagging. whereas virtual/libx11 resolves to dietxlib that is okay. 5496f27 updated xvideo-tests to the latest svn b5ef8fa update to latest test-xvideo svn revision that fixes a couple of issues. c765a2e Update preferred dbus-glib version 0e397b5 Upgrade to dbus-glib 0.73 74cd77c Bump sato SRCDATEs. e9373c0 curl: fixed debug packaging 451f3b1 gtk-clearlooks-engine: fix debug packaging c0b4013 matchbox-panel-2: package graphics for startup-notification applet 136ee52 poky: bump matchbox-panel-2 SRCDATE to get new systray, fixed battery and new plugins 15d2750 update xvideo-tests to the latest version. 8493b27 change test-xvideo into xvideo-tests e1bc49c Change encoding packages to recommends d14962b Disable gconv packages for now, they were not build for some reason 36c5999 Move the Abiword srcdate to poky.conf c3ed93d Bump matcbox-config and sato srcdates, for the metatheme work 91c6995 meta-toolchain: Add libgcc-dev package 9f594e2 Upgrade to DBus 1.0.2 5913a07 test-xvideo: Fix SRCDATE and add numeric value to PV 29dc7ae gcc: Fix sdk packaging issues 9eb40c6 Updated test-xvideo_svn.bb. 59e5d09 binutils-sdk: Fix broken linker paths with correct sysroot option (and remove unused .inc) dd1a46a added test-xvideo package b6dc9fc js: Use gcc for linking so LDFLAGS can be used in full rather that hardcoded subsets 9dbe065 poky-eabi.inc: Fix typo e2ab941 poky-eabi.inc: Make the PREFERRED_PROVIDER more general and complete cee4b2a package.bbclass: Disable locale RDEPENDS since it currently does nothing due to broken depends, breaks meta-toolchain and is incompatible with debian 682d215 task-sdk: RRECOMMEND glibc binary locale package 79b921a glibc: Add missing PACKAGES_DYNAMIC elements c6cf8ff external_toolchain: Add i586 virtuals for qemux86 18e36b3 gcc-cross-sdk: Use --with-sysroot option to gcc to fix and simplify configuration 7e30cee meta-toolchain: Cosmetic cleanups to debug output bbce8f5 sdk.bbclass: Sync with OE b9456e9 Rename ipaq-pxa270 hx2000 1ee1441 xserver-kdrive: Drop unused patch ac63e5a sdk.bbclass: Set PACKAGE_ARCH to something suitable (update task-sdk, meta-toolchain) c866903 gcc-cross-sdk_4.1.2: Cleanup d6fcec4 e2fsprogs: Fix DEPENDS (add gettext) 8aef26e task-sdk: Fix libgcc naming bc7b31a gcc-cross: Fix PACKAGE variables 1b50877 Prefer svn snapshots of matchbox-desktop c079e75 glibc: Add locale-base to PACKAGES_DYNAMIC 8485dfb external_toolchain: Various fixes. 0f5900d bitbake/taskdata: Exit from the providers loop when the first match is found, fixing spurious output and warnings a475d1d external-toolchain.conf: prepend to CPPFLAGS b29063f external-poky-toolchain: Add PACKAGES_DYNAMIC d2ed746 glibc: Fix leaked PACKAGES_DYNAMIC 207bc1b Bump desktop srcdate 6baa768 external-poky-toolchain: Lower default preference 8045dbd poky.conf: Set PREFERRED_PROVIDER ce69ac4 meta-toolchain: Fix symlinks after moving files around (gross hack) 0a46762 gstreamer: Add DEPENDS bison-native 9e12816 Upgrade to Tasks 0.8 67307a0 Remove executable flag 5454240 Remove old PIM category 0381bc4 Move to the Office category f621bc9 Take recommends from GTK+ 2.10, should fix string conversions aba2e56 update exmap-console recipe to 0.4.1 078c177 external_toolchain.conf: Updates to use external-poky-toolchain.bb c66c397 meta-toolchain: Add ipks, pkgdata, pkgmaps and shlibs data to sdk archive. Add external-poky-toolchain to reassemble this. f932b25 ipkg-utils: Add ipkg-list-fields python script needed for sdk generation 8f9dc2c Depend on the ISO-8859-1 converter, and remove some options we don't use 303ed7c Remove unused patch, from 1.4.2 3a685ca Remove old Cairo 1c0fabc Bump Cairo version 3af9eaa Bump Contacts srcdate to hopefully fix crash on startup dcb5ef2 module.bbclass: make all modules depend on update-modules 226123f qemu: Set disable graphics check configure option c6a97a0 qemu: Update to a recent version 4b74770 Increase default GTK+ to 2.6.10 0ab5fd9 udev: make only udev RPROVIDE hotplug not all packages 70b11ba bitbake: Sync manual updates and version info with bitbake svn 5c41f1e rootfs_deb.bbclass: removed usage of /dev/null as stdin as BitBake do that now by default 25cbce3 runqueue.py: Correctly use /dev/null as stdin a9947a0 cairo: added 1.4.8 from OE dc68918 rootfs_deb.bbclass: updated to works with APT 0.6 e587664 wireless-tools: updated to pre21, fixed packaging (from OE #2458) 8512529 twisted: added 2.5.0 ead8b80 zope: added 3.3.1 ed32719 flumotion: added 0.4.1 59470e1 bootimg.bbclass: get kernel from proper directory in staging a8aaedc linux-rp: added bootcdx86 support 4f8a093 oh-cd-pda: added COMPATIBLE_MACHINE (set to bootcdx86) 06a33a9 formfactor: added bootcdx86 support fe5eb63 bootcdx86: X86 machine used for bootable CD e582fb3 oh-cd-pda: build ISO and HDD images from oh-image-pda 82a2f83 wpa-supplicant: added 0.5.8 (latest stable) d5747c5 xserver-kdrive-common: run calibration only on machines with touchscreen 750675a machine configs: drop MACHINE_TASK_PROVIDER which is set in bitbake.conf 6a48637 native.bbclass: Remove uneeded variables 332f632 Remove useless class 8e5bf72 pkgconfig.bbclass: create proper directory 95be099 bootimg.bbclass: fixed generation of ISO & HDD images 2b22125 bootimg: reformatted again 834b006 bootimg: reformatted 1cdbacb gtk+: Fix 2.6.10 patch, fix RRECOMEMMENDS b6795bd qemu machines: do not hardcode ext2 rootfs size 7fd0284 bootimg.bbclass: imported from OE, updated to recent BitBake 9ac61d2 syslinux.bbclass: imported from OE (needed to generate booting CD) 8b66792 mtools: imported from OE a07979f cdrtools: imported from OE 01f2cbe syslinux: imported from OE ff2d75b nasm: imported from OE - needed for syslinux ac6c773 dosfstools: added (from OE + patch for 2.6.20 headers) bdcf04a bumped srcdate for calibrateproto packages. 7f494f1 make xcalibrate and xcalibrateproto be based on fixed tags in git, not on master. da9419a src_distribute: fix when licenses are separated with |, renamed vars to more readable ones 5a5dec4 vte: disable Python extension c3da259 gtk-industrial-engine: fixed debug packaging 6effc76 gtk-sato-engine: fix debug packaging e840e0d libsyncml: fix build with pointing to wbxml2 headers 8f91823 claws-plugin-mailmbox: fix debug packaging 4965305 libgtkstylus: fix debug/devel packaging ec909f8 poky: fix minimo version a35ed06 libsoup: stage pkgconfig file in proper location (from OE) 7720c62 librsvg: fix debug/devel packaging c71455a libgnomecanvas: fixed packaging (debug and dev) 1604763 python-scons: added 0.96.1 needed to build SVN versions of opensync 72c0077 python-gst: fix debug packaging e6db261 python-pygtk2: fix debug packaging fd20cd1 vte: added 0.11.15 (for gtkterm2) 893cba9 python-pygtk2: use STAGING_BINDIR_NATIVE 0c2ead9 libtool: package libltdl-dbg a088b15 python-pygobject: fix packaging (from OE) da912bd gtkterm2: added 0.2.3 8226662 Bump sato engine srcdate to theme the system tray applet 4acaa35 base-files: set TERM to vt100 only if TERM is not set f69248c Bump matchbox-common srcdate for the PIM folder change d950323 src_distribute.bbclass: add distsrcall task which calls do_distribute_sources recursively f8e9384 src_distribute classes: store sources in tmp/deploy/sources/LICENSE dirs ce894a0 alsa: dropped unused patches e648ea1 alsa: update to 1.0.14 - some parts are from 1.0.13 OpenEmbedded recipes - removed dependency on alsa-conf as libasound package already depends on alsa-conf-base - fixed alsa-utils-speakertest DESCRIPTION c4607ef Upgrade Dates to 0.4.3 04ebae8 liba52: create debug packages 8dad92a Add useful but unused patch 78ecf7c Remove unused patch 16b9bee Merge interesting patches from GTK+ 2.6.8 to 2.6.10 3506033 Upgrade GTK+ 2.10.x to 2.10.12 82b28d2 Formatting changes to make merging easier 3ad2090 gnutls: update to 1.6.3 (upstream recommended stable version) 08065ff Remove unused GTK+ 2.8.20 c0a9e18 Remove unused GTK+ 2.6.7 4ade9d9 Add the keyboard applet to the standard image 98b1165 Unset PYTHONPATH otherwise Python really breaks 030f86e Bump matchbox-keyboard srcdate, build the panel applet, and hopefully make the startup script work on the N800 a5eb370 fic-gta01: added usbinit to rootfs 12212aa usbinit: updated to more generic version 1e2d2eb uboot: added U-Boot for fic-gta01 ea605d3 linux-gta01: added 2.6.21 from OE e6b7688 fic-gta01: added machine config (from OE and edited) 29abf4b formfactor: added fic-gta01 support 883c24f x11perf: added from OE c9dc5f0 classes/conf: Merge missing package epoch (PE) support (from OE), also make OE package field sane 8a5b785 conf: Add external_toolchain conf file 8cf058f local.conf.sample: Document external poky toolchain usage b1b6e6a meta-toolchain: Clean up host packages too ed75cfd Use matchbox-desktop 2add610 Clean up matchbox-desktop/matchbox-desktop-2 so that everything is called matchbox-desktop 2b6f26d Remove unneeded matchbox package 1ad7c7b bitbake: Exit if parsing errors occur 2a41ad5 Fix srcdate bump to match version c383b17 libmad: Remove duplicate from extras 4e1f5e7 libid3tag: Ramove from meta-extras as in extras now 08aabf7 perl: rest of sync with OE for uclibc 8bae652 hostap-utils: hostap-modules are history 80bab8a cpan.bbclass: sync another fix from OE - this time for uclibc mode 85d3283 meta-extras: Various cleanups ab5005a Update PR so the removal of empathy take effect c43c432 poky.conf: Remove some EXCLUDE_FROM_WORLDs since they now work, bump several SRCDATEs 3d94480 Remove empathy, it needs newer glib than we have by standard 14eebb7 Bump matchbox-desktop-2 srcdate to 2.0 release 7f6b95d Add Empathy to standard images 3d925f1 Use python-native-runtime 351a196 oprofile: Update SRCDATE, remove merged patches acb45ff libxml-parser-perl-native: Fix RDEPENDS 92363fd perl: sync with OE 6c47cd4 cpan classes: sync Perl with OE 4ed25e7 task-oh-sdk: Add intltool to sdk images 90ca4b2 linux-rp: Add patch to fix ASoC typo 27faca6 linux-rp: Add missing patch bf5471f linux-rp: Various fixes including fixing power button suspend e728a8a matchbox-sato/poky: Remove matchbox-keyboard handling (now uneeded) 25152eb matchbox-keyboard: Add session script to handle startup (linked to formfactor) 12a0998 Fix order of arguments when constructing the screen, fixing rotation on Zaurus 8ca3683 Add gnome-vfs depends, update icon cache 6c11258 ipkg-utils: Fix problems with some versions of tar (from OE) d2f5510 Upgrade Empathy, with hot no-libgnomeui patch 4df3138 Upgrade telepathy-misson-control 598f743 hal: DEPENDS intltool-native, not intltool 5fdd33f eds-dbus: Doesn't need intltool DEPENDS (just intltool-native) 01bb4a6 conf: Add POKYLIBC to poky to select libc implemention 80fbf41 site: Move common arm entries to arm-common from arm-linux 9babe4c Add uclibc (from OE) ce8bd8c xrandr: Resolve symbol clash under uclibc 85e898c alsa-utils: Fix uclibc linking a1f2457 nfs-utils: Add patch to work with uclibc e7e6a03 linux-rp.inc: Various style cleanups 5ad14b0 meta-toolchain: do not fail if there is no .la files ee16d5a Add systray applet 99d5d99 site: Sync ARM changes with OE (creation of common ARM site file) af134e3 site: Sync some site files with OE c2d22f0 Upgrade fontconfig to 2.4.2 ccbf0ed Update Tasks to 0.7 73558dc poky-eabi.inc: Switch to gcc 4.1.2 3a11c9d gcc: Sync 4.1.1, add 4.1.2 (from OE) 32275ea shared-mime-info: Fix DEPENDS 80785a1 perl: 5.8.7 -> 5.8.8 (from OE) bd4fd02 gettext: Sync with OE 0dd5fc2 db 4.2.52: really overwrite config.sub with a newer one b79fd62 db 4.2.52: overwrite config.sub with a newer one a489c95 linux-rp.inc: Create relative symlinks rather than absolute ones e010532 ipkg-utils: Merge in tweaked version of patches from OE bug #1504 (from Paul Sokolovsky) to massively speed ipkg-make-index 1fa7f83 nokia800: Add cx3110x to image 2b019e5 nokia770-init: Add some extra symlinks 21b345a linux-nokia800: Enable framebuffer console and disable framebuffer autoupdates b77dd1b oprofile: Update to new SRCDATE 765f620 linux-nokia800: Add missing 770 patch hunk 54df650 xserver-kdrive-common: Switch to use formfactor 5d1d2e6 linux-nokia800: Attempt to get this working on the nokia770 6c08ce5 oprofile: Tweak armv6_events.patch 79fb4b0 xserver-kdrive-xomap: Update to osso31 b48c1ac linux-nokia800: Add oprofile mismatch workaround, update to osso40 f9ad5a0 Clean up distros 170a669 poky.conf: Update SRCDATE for oprofile+oprofileui 8e2698e oprofile: Add armv6 patch, drop merged patches, fix xscale events 6c3d3ef Poky does not support Ångström - dropping configs 4168666 Poky does not support OpenZaurus - dropping configs 392aee7 poky: bumped Tasks srcdate (requested by Ross) 3556c74 tasks: update to 0.6 fbea271 Add formfactor package 4f39594c Indicate that this package can also be built for nokia770. 7f6761a No xserver-kdrive-omap in Poky any more. Changed to xserver-kdrive-xomap. This might be incorrect. d05bcee bitbake: Merge bugfixes from bitbake-1.8 svn 6e49fdb Upgrade Tasks 95a997f Bump tasks srcdate e8d230d libmatchbox 1.9: Apply 16bpp fixed patch 25298e4 task-oh: Drop kf 86da0a4 poky.conf: Remove akitaisms 60b8802 task-oh: Add matchbox-keyboard-im 2f2560f tslib: RRECOMMEND pointercal 5c3459c pointercal: Always create a package but empty on devices without a default e2567c4 Bump keyboard srcdate to get latest fixes 0253a49 udev: blacklist mtdblock devices - we mount them separate if needed a723b0f Remove mbinputmgr and instead start matchbox-keyboard as required e5b3d85 Update matchbox-keyboard srcdate, enable and package the GTK+ input method, and include it by default on Akita d7fca4c puzzles: r6915 -> r7593 691cc36 puzzles: Add missing patch 1a9ae24 puzzles: Capitalize program names, use svn for obtaining source rather than tarball d717268 xserver-kdrive-common: Set nokia800 dpi to 150 (should be 225 in theory) c11e9cd xserver-kdrive 1.3.0.0: Tweak patches 638a299 xserver-kdrive-xomap: Only use one type of button event b2552dc task-base: rrecommends wifi stuff 012f81a linux-rp: dropped obsolete patches 113e26a linux-rp: Add 2.6.21 e95d723 poky.conf: gcalctool: Add back to world build c56c41d gcalctool: Fix compile issues, disable docs, update to 5.8.17 4baa324 Poky images: move IMAGE_FEATURES stuff to separate file, simplify image recipes 8142b95 Update copyright 771e3d3 tasks: Add copyright header 73a06a9 images: Merge common functionality into image.bbclass, add copyright headers 9c1cf56 bitbake.conf: PKG_CONFIG_PATH is a PATH like variable and may contain multiple entries so create PKG_CONFIG_DIR as a path to install to. 4fb411c task-oh: add matchbox-desktop-2 into task-oh-base 9ddbe0c xserver-kdrive: Make VGA the default video mode eb68c6e Fix libxcursor packaging 8f83fba xserver-kdrive 1.3.0: Fix xcalibrate patch, disable w100 a560ff3 Add librsvg 2.11.1 so that poky builds, and set it as preferred version 71ff526 Upgrade Pango 91157b7 Upgrade librsvg to 2.16.1 7e1d3ac Update poppler and evince versions to those actually in poky 92018dc Add evince 0.9.0 tarball bb, and set PV in evince_svn to be 0.9+srcdate 6adf41f Remove the .so-in-main-package hack, libX11 doesn't look for libXcursor.so anymore but correctly loads libXcursor.so.1 ff85e19 Add libpng 1.2.16 375d0ae Fix insanely out of date URL ccd009b Add libcroco/librsvg (from OE) for oh-puzzles pending discussion to keep builds running 8a37e60 poky.conf: Set some SRCDATEs, bump oh-puzzles SRCDATE and add oh-puzzles back to the world build 9cc080e oh-puzzles: Set DEPENDS correctly 0bb2e38 libxml-parser-perl-native: Fix RDEPENDS 9e9c060 intltool: Fix DEPENDS e7db185 Added xineramaproto to the build dependencies of xserver-kdrive 4bde677 libxinerama: Revert change - was due to stale/incorrect tarball. 5d2fcf3 patch.bbclass: Set default patch resolver to noop 597a47c libxinerama: Fix configure 54254da poky.conf: Exclude syncml-client from world 3b7bcaf poky.conf: Fix typo 95c5952 poky.conf: Set SRCDATE for oh-puzzles, exclude gconftool, oh-puzzles from world build 732c15d poky.conf: Fix gtk-engines for world build b8db3d0 minimo: fix parse errors 2513edf poky-bleeding.conf: use gtk-engines 2.10 d23eadf poky.conf: use gtk-engines 2.6 df99c2e minimo: provide proper libIDL config a1499eb minimo: bump PR due to libidl change 5a67b33 poky.conf: temporary disable lirc-modules from world build c2d6a80 poky.conf: temporary disable lirc from world build 4e124e0 libidl: use binconfig.bbclass to mangle paths instead of trying to it hand 0e28941 xev: Correct patch to apply to 1.0.2 178f816 claws-plugin-mailmbox: 0.12.4 -> 0.13 3604e99 claws-plugin-rssyl: 0.10 -> 0.13 09a0474 minimo: updated to 0.02/20070510 5fe8d87 poky.conf: bump minimo SRCDATE to 20070510 8651fff task-boot: added modutils-initscripts and update-alternatives bbbddc1 claws-plugin-gtkhtml2-viewer: Update to 0.15 727ef5e minimo: Add libidl-native and set HOST_LIBTOOL_CONFIG as builds were breaking 321042d xserver-xorg: Remove bogus RPROVIDES 05a4f83 xserver-kdrive-common.inc: Fix DEPENDS 66e403d poky.conf: Really exclude qemu 1641c2b avahi: added pidof to dependencies 5b90ab5 preferred-xorg-versions.inc: update to X11R7.2 and newer fbf4ba6 xserver-kdrive: added 1.3.0.0 082a34f xorg-proto-common: handle X11R7.2 and newer fbf8505 inputproto-native:added 1.4.1 3a0a883 xproto-native:added 7.0.10 d939391 randrproto:added 1.2.1 7374297 damageproto:added 1.1.0 7f03a83 glproto:added 1.4.8 563273d calibrateproto:added git 355af02 inputproto:added 1.4.1 ae7af67 xproto:added 7.0.10 0a384c7 xorg-lib-common: handle X11R7.2 and newer 3bd8b94 xorg-headers-native: added 6bc9385 xtrans-native:added 1.0.3 35b04dc xtrans:added 1.0.3 e4bc9a1 libxvmc:added 1.0.4 65eb849 libxv:added 1.0.3 71a4cba libxt:added 1.0.5 5bdc4f6 libxscrnsaver:added 1.1.2 57e1690 libxres:added 1.0.3 62fd5e2 libxrender:added 0.9.2 14af4c1 libxrandr:added 1.2.1 655ac15 libxpm:added 3.5.6 9f0218d libxmu:added 1.0.3 affbc53 libxkbfile:added 1.0.4 b541aca libxinerama:added 1.0.2 79ed141 libxi:added 1.1.0 d0fe7c3 libxft:added X11R7.0-2.1.12 0778af2 libxfontcache:added 1.0.4 3fbfca7 libxfont:added 1.2.8 438f3ee libxfont-native:added 1.2.8 2a03f20 libxfixes:added 4.0.3 a3c2a8f libxext:added 1.0.3 a71a9d7 libxevie:added 1.0.2 89f7050 libxdmcp-native:added 1.0.2 2ebb226 libxdmcp:added 1.0.2 3605bd7 libxdamage:added 1.0.4 2260186 libxcursor:added 1.1.8 cde2593 libxcomposite:added 0.3.1 c208ec1 libxcalibrate:added git 4c6b3db libxaw:added 1.0.3 b8f2dcd libxau:added 1.0.3 df163a7 libxau-native:added 1.0.3 c6e25f2 libsm:added 1.0.2 97e2002 libice:added 1.0.3 de48c85 libfontenc-native:added 1.0.4 2d036e3 libfontenc:added 1.0.4 756f758 util-macros-native: added 1.1.5 1d87eb3 oprofile: Update patches c91e543 xorg-app-common.inc: handle X11R7.2 and newer releases c23dbdf xmodmap:added 1.0.2 c33d06f xev:added 1.0.2 09f07d4 xdpyinfo:added 1.0.2 7cdceb9 xrdb:added 1.0.3 8e7490e xrandr:added 1.2.0 c447690 xinit:added 1.0.3 4afba94 xauth:added 1.0.2 dad0f13 poky.conf: Fix typo ed099eb poky.conf: Mark qemu as not world buildable (gcc 4.x problems) 615dd4a xournal: Fix linking flags and add zlib as a dependency 2ee4cf3 cpan.bbclass: Add perl to DEPENDS 4c3f31e poky: set proper version for Minimo and add it into world builds a8c4f82 mozilla.bbclass: minimo does not need orbit2 or libidl-native to build ff0fe2b minimo: added 0.016 version with EABI patches - works in qemuarm 79efb6c minimo: drop CVS version 363ebd8 autotools.bbclass: Fix addition of libtool-cross 9697c0c package.bbclass: do_package[deptask] only needs to be set when PACKAGES != "" ebb5245 libtool: Fix to work with multi architecture builds 77a7221 autotools.bbclass: Add libtool-cross as a default dependency 8c0306a apt-native: added forgotten patch 559f110 oprofile: Improve xml_callgraph patch, refresh patches 7524bbe poky.conf: Exclude known broken packages from world builds fed7e39 poky.conf: Exclude known broken packages from world builds 4c5caa6 bluez: Move from meta-extras to meta since required by syncml/openobex 8154761 poky.conf: Exclude known broken packages from world builds 9005036 poky.conf: Exclude known broken packages from world builds 32f7dac poky.conf: Exclude known broken packages from world builds 87bd6e9 oprofile: Update cvs patches to match cvs 3274f4f poky.conf: Bump SRCDATEs for oprofile and oprofileui 55c761b meta-toolchain: Adjust naming 55bfe71 poky-autobuild: Add generation of auto.conf 7260b95 autotools.bbclass: Reverse r1603 until we can find a better solution 1f3573d Handle GTK_DOC_CHECK and GNOME_DOC_INIT in configure.ac d60ec07 Add evince srcdate e78294e Add evince 48c17d3 Add poppler 4951b77 Add gnome-keyring 8b9d8e6 Upgrade libxml2 version b180d84 Add gnome-doc-utils 11f5ec6 Add libxslt for gnome-doc-utils 0efc0df added updated 16bpp patch that handles 555 BRG and does bit of inlining 85d984e task-base: do not put ir-usb module 28bd4bb Bump screenshot srcdate e2f404f task-oh: dropped modutils-initscripts from task-boot as we do not have modules in minimal image e507e2f oh-image-minimal: added minimal image - contain only stuff needed to boot 45c57a3 task-oh: change task-boot contents - added udev, removed some apps 7d2c79f Bump pr 6a16208 Disable the schemas support, saving 300K e1566f4 Don't recommend gnome-mime-data ba370fe image.bbclass: Removed wildcard rm as it broke building multiple rootfs image types (from OE) bf73d1b bitbake.conf: add cpio support for images (from OE) 7f3bb9d image.bbclass: remove not-needed list of packages after populating rootfs 46d1c21 va_copy exists in poky, and we also have a working memalign 73e6c0a Bump PR to force a rebuild 38e1250 Add some missing config variables which meant glib though our printf was crippled 4167c95 Refuse to use the included printf, as we always have a good system one a0c37e9 Remove unused version 1e4eb57 Depend on mission-control, recommend gabble a654b78 Add missing file 11185b1 Add Empathy c1d676e Remove empty directory 4ae5c57 apt: unbreak 0.6.46.2 build (based on OE) 16737be gcc-cross-sdk: disable shlibs so packages will depend on libgcc1 instead of gcc-cross-sdk b466097 gcc-cross-sdk: added zecke-no-host-includes patch 4d4a376 binutils 2.16, 2.17.50.0.5: make them provide 'ar' and 'strings' via update-alternatives 0b01f1f distcc: autostart distccd on boot 64d91d2 task-oh-sdk: ship coreutils, diffutils, g++ 82f775c diffutils: added 2.8.1 for SDK (from OE) 9479bd5 telepathy-mission-control: stage headers, added required fields 622e191 libtelepathy: stage headers 4d3b29f telepathy-mission-control: added 4.21 8aa2c84 owl window menu b2b9566 add missing libowl dependency 5345253 owl menu for web 2558e91 matchbox-desktop-2: only PN has to conflict/replace mb-desktop-1 bb59ece image.bbclass: install only en-gb locales 9d0afeb linux-nokia770: added gcc4.patch needed for gcc 4.1.1 2445bb8 coreutils: add forgotten patches for 5.3.0 ad2237b libopensync plugins file/evo2: mark SVN versions as non default b6e43a2 libopensync: make SVN version buildable (disabled by default) caf3b5b scons.bbclass: sync with OE b9836e5 openssl is now in meta/, remove from here d912733 Fix library packaging 3e92796 task-base: switch to wpa-supplicant with TLS support 39ca55c wpa-supplicant: drop old versions, use 0.5.7 (latest stable) as default e0ce469 Remove the screenshot applet, whoops 2f90305 export HOME from Xsession script (see bug 292) 6221a3f README.host.sdk: start documenting toolchain usage 03825e7 claws mail recipe based on OE + owlwindowmenu and some initial UI deugglyficiation patches db07dc1 recipes for libetpan and openssl from OE (needed for Claws Mail IMAP and ssl support) 52b6fea Declare glib-2.0 as a build-dep 73129cc wireless-tools: updated to 29-pre20 (WE21 support, more WPA support) 43dace1 loudmouth: update to 1.1.1 (from OE) 71d13b7 check: added 0.9.2 for loudmouth 1.1.1 (from OE) 6af416c telepathy-gabble: update to 0.5.10 8591210 telepathy-gabble: update to 0.5.10 cfd5c04 telepathy-glib: added 0.5.10 59a3ba4 telepathy: added libtelepathy 0.0.53 and telepathy-gabble 0.5.7 (from OE) 7692158 do not install .la file for libowl 273f0d8 patched leafpad to use owl window menu d9c3ae6 bumped date for matchbox sato theme aaac177 contacts: updated to 0.5 f90913a fixed glib dependency; added empty do_package and do_package_write methods a45ca84 netbase: add WPA Supplicant support for wlan0 68d68db added a recipe for staging static libowl 4efae41 meta-toolchain: Main target for SDK - taken from OE, removed pkgconfig part (not needed now) 757e531 task-sdk: added task-sdk-bare from OE 2cd9ee8 binutils-cross-sdk: added 2.17.50.0.5 8c878be gcc-cross-sdk: added 4.1.1 (builds ok on x86_32) 67e6cc2 binutils 2.17.50.0.5: fix parse error 19e521b sdk.bbclass: store SDK in /usr/local/poky/ARCH/ 66b28fa Add screenshot to images 2ecd437 Bump screenshot srcdate to build with new panel 914fe37 poky.conf: Update dates PV d037046 poky.conf: Update some SRCDATEs aa8d1e5 matchbox-wm: Update PV for svn version ce7b2cd poky-qemu-internal: Catch up with rotation option changes 8f55119 linux-nokia800: Add LZO patches to work with patches mtd-utils 15f5842 matchbox-wm: added 1.2 d065e28 pimlico: SRC_URI point to Pimlico website d7b1f3a dates: updated to 0.4.2 26ab474 linux-nokia800: Improve do_deploy 075d2b7 Add comment 9d4deb3 oprofileui: Fix DEPENDS, add RDEPENDS 0f58193 quilt-native: make sure directory exists a1d68b8 Bump panel srcdate 0443d80 patch.bbclass: Specify a quiltrc file so users settings don't interfere with correct operation 95554ee quilt-native: Stage a dummy quiltrc file (empty) 2e818d2 libopensync-plugin-irmc-sync: add missing dependencies b1e9b60 Update the icon cache on install 98553f4 xserver-kdrive-xomap: generate only Xomap package 9ab871a * Build contacts from SVN 383979e moved nfs-server for qemu target to qemu-config 25f95c5 poky.conf: add nfs-server image_feature for qemu targets 5b2439c poky.conf: use Dates SVN/20070414 - requested by Rob c357bf7 xserver-kdrive-xomap: fix packaging 9f6c127 Bump up matchbox-common SRCDATE cd7c6e3 * Nudge gtk-sato-engine and matchbox-config-gtk SRCDATEs 5718fc4 * Correct rxvt.desktop icon, and bump PR number 5230a5a openswan: update to 2.4.7 (from OE) 7467991 autobuild script: Remove images-complete stamp before building 24d739b dates: Update to 0.4.1, enable owl 4464057 dates: drop 0.3.1 910fbc5 contacts: drop 0.3 07712f4 dates: updated to 0.4.0 59c7918 opensync: bump PV of opensync SVN to 0.22+svnSRCDATE b3d4e56 opensync: added 0.22 (last release) of library, msynctool and plugins: file/evo2/irmc/syncml) 0de4fd5 Change position of battery before clock f9936d9 bumb up various Sato SRCDATES 3b60d9a gcc: added gcc-ignore-cache patch from OE bugtracker #1951 to get gcc buildable on amd64 d5b4fc3 libidl: stage into proper dir: STAGING_BINDIR_CROSS instead of STAGING_BINDIR ad9c18f pointercal: mark it as machine related 43e1b9e liblbxutil: added mkg3states patch to fix building (from OE) 2d6eba7 gcc(-cross): move zecke-no-host-includes.patch only to cross version 15389d6 Set package arch to all (from OE) 6b06a83 task-oh: Remove inputmanager from default builds for now 185a34e Add README.commands c917bf8 util-linux: added 2.12r from OE (needed by fakeroot) 5fc01ad galago: updated to 0.5.x versions 39debb7 eds-feed: removed per discussion with Ross 23b9718 orinoco-modules: dropped as they are provided by 2.6 kernel now 6427370 hostap-modules: dropped as they are provided by 2.6 kernel now 57a0d61 cx3110x: mark as nokia770/nokia800 compatible 22062eb Add README.structure abac227 * Bump gtk-sato-engine SRCDATE 882d02e Patch tasks to make it single instance 7162fe0 * Bump sato-icon-theme SRCDATE cf5db85 Bump up matchbox-panel-2 SRCDATE 95d63b6 Add srcdate for oprofileui db4c2a6 Bump PR for owl-viedo-widget 5f73215 * Use video-player icon from icon theme 3483918 puzzles: Remove pixmaps references 7c41c5a Bump matchbox-config-gtk srcdate 4b77ee4 Make desktop icon appear at beginning of panel 5a25942 Remove leafpad icon, and use an icon from the icon theme instead e6ef13c puzzles: Fix typo c83b27f puzzles: Use application-games as the icon 76b2700 Set default font to Sans 9 7e329aa Set the icon_theme key bd8965c Remove unused interfaces aca29f1 package.bbclass/insane.bbclass: Don't set task dependencies when PACKAGES is empty 3016afc Bump srcdate for panel-2 f5562d4 gcalctool: do not use includedir as this break on cross builds 3121b79 xournal: fix SRC_URI 407ed8a Bump srcdate for matchbox-desktop-2 99fd90c Add matchbox-common as RDEPENDS 2eeb84f networkmanager: added proper PV, fixed build 03b90cc lsof: update to 4.77 (from OE) as 4.75 is not available upstream 62e66ef gnome-vfs-dbus: dropped - we use gnome-vfs 2.16.3 now 8b154d0 wv: added libgsf to DEPENDS 1477657 python-pygtk2: added EXTRA_OECONF needed for building on 64bit machines 75498ec python-gst: added dependency on python-pygobject 4390d5c Move gtkhtml2 to use gnome svn rather than gnome cvs 166b936 sato-icon-theme: do not repeat PN in PACKAGES bf093e3 poky.conf: Bump sato SRCDATEs e1fde81 libol: added 0.3.18 from OE, cleaned (for syslog-ng) 79b5e95 syslog-ng: sync 1.6.8 with OE (STAGING_BINDIR_CROSS) 81e7d64 patch: added 2.5.9 from OE (needed for quilt) 387a0ad zip: updated to 2.32 (from OE) and cleaned 014e261 diffstat: added 1.39 from OE 538d9d7 gconf: dropped 2.6.1 due to orbit2 dependency 1742551 task-oh: added task-oh-nfs-server-{dev,dbg} - thx RP 36875b2 package.bbclass: Adjust package_depchains to work for cases where multiple pre or postfix packages are specified 043d472 oprofileui: Improve packaging 0836a6c task-oh: Add oprofileui-server to devtools f02b48e Add oprofileui 0a15894 native.bbclass: Enhance to allow extra pkgconfig search paths to be injected 69fbfd5 package.bbclass: Only need file-native if packaging 409335b classes: Rework core dependencies to work properly at the task level bd0ca26 build.py: Sync with bitbake 1.8 branch c70cfab Make hal 0.5.9 build 064c7e9 Remove hal 0.5.8.1 0868170 Prefer HAL 0.5.9 f05e80b Update to hal 0.5.9 8c81aca Add missing binary 505ff52 oh-puzzles: added SVN version 7371e63 bitbake: Update to 1.8.1 (inc. various bug fixes, epoch support) 8b36dc2 less: Refresh diff ee221cd package_deb.bbclass: Make sure permissions on control directory are correct 4445685 rootfs_deb: Catch all error codes and return them 6167cc6 poky-qemu.README: added info about nfs-server in images, removed note about ifconfig as it works out-of-box now 552eb9f Fix versioning, add missing files 4f3a216 linux-rp: enable NFS server module for c7x0/spitz/akita bf7cbd5 Bump eds-dbus and mb-desktop-2 srcdates 2ee8373 linux-rp: refreshed defconfigs for spitz/akita/c7x0 4fca914 eds-dbus: Remove workaround 887b8b1 package.bbclass: Improve recommends dependency code to catch all dependencies for -dbg and -dev packages, not just some 66ec83e task-oh: Update to matchbox-desktop-2 fa887ed Add xev 2693f8d sysvinit: Various progress bar fixes, especially reboot/halt handling 4641d21 poky.conf: Bump psplash SRCDATE 48fd324 sysvinit: Fix divide by zero upon shutdown 2cf7809 poky.conf: Switch to matchbox-desktop-2 4d8f28d dbus: Drop 0.60 030fa71 README: Minor tweak 1155c57 psplash: fix typo d1cc5a3 psplash: Add handling for rotated displays bd90b8e base-files: Add rotation file to indicate rotated display on akita/spitz ffd6b85 qemu-config: this recipe replace qemu-distcc and provide NFS exports file bfb887e netbase: configure eth0 as static/auto to have them working without running ifconfig 4454dbb nfs-utils: do not check for nfsd kernel module as it can be built-in into kernel (like qemux86 do) a89a8b5 ipkg-collateral: Remove inappropriate machine specific tweaks a6f8cb8 Add missing RDEPENDS on xrdb f91a0fb shared-mime-info_0.16.bb: fixed broken postinstall script 46b2fe9 Bump mb-desktop-2 srcdate 845437b Upgrade GTK+ 1befef8 scripts: Add complete and preamble commands to autobuilder scripts 222597e python-pygtk2: fixed m4 macros to get it build on 64bit 820f881 python-gst: create m4/ directory before copying into it eab15b8 python-pygtk2: drop MAINTAINER f40f631 nfs-utils: moved from meta-extras to meta 6b86555 task-oh, poky.conf: added nfs-server feature for images 46e7144 nfs-utils: added 1.0.6 from OE with initscript changed to working one ae86a28 Bump mb-desktop-2 srcdate 4d5b411 task-base: added kernel modules needed to get WEP/WPA working 1d48528 base.bbclass: unexport DISTRO to prevent application compile failures 4ed9832 contacts: added 0.4, unified recipes, fixed PV in svn version, disabled gnome-vfs ce9fe6a tasks: added 0.4, unified recipes, fixed PV in svn version 9974233 dates: unify recipes, fix PV in svn version 421f101 Update matchbox-desktop-2 srcdate ddd34d3 Upgrade Cairo 968b14a Fix spelling 0045f8d busybox: Remove uclibc patch causing compile failures ec8e59f Allow DISTRO to be overridden from environment 42d0243 linux-libc-headers: Add a more functional procinfo.h header 2c5a437 linux-libc-headers: Fix bashisms 1b3bbba linux-libc-headers: Fix further ARCH references dca8036 linux-libc-headers: Fix ARCH references 7ada27e linux-libc-headers: Export TARGET_ARCH 800ab9a Add an attempt at linux-libc-headers_2.6.20 d078119 Add an attempt at linux-libc-headers_2.6.20 8710135 linux-libc-headers: Switch to 2.6.18+2.6.19-rc1 a6cc8ec Add tasks to the default image 4e5935f Update linux-libc-headers to 2.6.18, required for HAL to build 9a19fa7 nokia770: Add usbinit to machine rdepends 958c036 task-oh: Drop usbinit from standard image 9355a6d Fix recommends for -dbg 2813f16 Comment this out, it breaks afabbac Add recommends for eds-dbus-dbg 4e5a1f9 Fix list formatting c8cdf43 Bump tasks srcdate to 0.4 af2833a Add latest gtk-engines d2ba482 Add eds-tests 58ccf2e Remove useless fix-segfault patch that just spews to the console 4b10b50 Define eds-dbus symbols for now, see if this fixes the build f998218 Update eds-dbus and mb-desktop2 srcdate d9a61bf Fix typo, --disable-pic-ids -> pci-ids 2228192 Add gtk-theme-torturer 9daab5b Remove a chunk of the no-iconv patch, this can be fetched from the config cache ffe0e46 Add entry for the iconv check in eds-dbus 7be913b arm-linux does support abstract sockets f25c0f0 Add RRECOMENDS 7ce310c python: package not packaged files into python-misc 69a5f82 xset: Really fix DEPENDS f33d4b5 xset: Add libxmuu to DEPENDS 14a2072 Move Contacts to Pimlico 2d784b0 Move Dates to Pimlico f2a63b0 Add Pimlico directory, and move Tasks 7cca09b Upgrade to latest GTK+ and Pango 5f09ad2 task-base: Fix typo 1bb2b83 Upgrade to new GLib f39c891 Upgrade glib 2.12.x to 2.12.10 3f21c02 Add hal-info and disable more of HAL e4ff245 Upgrade to cairo 1.4.0 c54a22b Bump tasks (0.3) and mb-desktop-2 srcdates 1275d57 Fix INTLTOOL usage check (from OE) 8799e44 Move a patch to the 1.2.4 folder as its only used in 1.2 14c2aba Remove ancient cairo 01be89c Update to expat 2.0 (from OE) 3351a60 Add virtual/kernel depends af37d17 Add unidef-native (for linux-libc-headers 2.6.18) 2434ebc Add kernel.org mirror 3ed120e Add missing linux-libc-headers.inc b11c8d8 linux-libc-headers: Add 2.6.18 (from OE.dev) b64abc6 mtd-utils: Correctly set Makefile options dbfd391 python-gst: added 0.10.7 version of Python bindings to Gstreamer + patch to get it build on 64bit host 2d9ec4c python-pygobject: added version from OE + patch to get it build on 64bit machine da16804 sato-icon-theme: really package c87ecce task-oh: ship sato-icon-theme by default 9022f34 mtd-utils: Fix DEPENDS (add lzo/lzo-native) 2923f87 Add lzo-native 246389c linux-rp: Bump PR, keep buildbot happy 070517d Update tasks srcdate to version 0.2 907df9b Fix tasks packaging 3eedfbb Remove old Pango 929b71b Update to new Pango 98292d7 Update mb-panel-2 srcdate 9758099 Add Pango 1.16 (from OE) f3afa08 Remove stale Pango versions f6cfad2 Inherit gtk-icon-cache 1b7b0c2 python: sync with OE .dev and dropped Tcl/Tk support eff0c4b Use favourlzo compression mode for zaurus jffs2 images c54700b kexec-utils: Update to use offical arm syscall number a6470fb linux-rp: Sync with changes in OE.dev 500602d linux-rp: Add lzo support (inc jffs2) 26c9b6e mtd-utils: Add 1.0.0 and git versions. Patch git version with lzo support e2a7250 poky.conf: Make adding to DISTRO_EXTRA_RDEPENDS easier ca1bc37 dpkg-native: Disable selinux support since it causes problems 7b7b479 Various version cleanups b10bd12 diet-x11: X11R7.1-1.0.1 -> X11R7.1-1.1.1 6a59680 Add a patch to oparchive so that the program exits with non-zero exit code on error. 237c2a2 gcc_csl-arm-2005q3: fix SRC_URI a50f68d * Added sato-icon-theme package f8b92f2 linux-rp: Fix oprofile callgraphing on cpus without a PMU eceaf1c Add PROVIDES so that this can slip in via PREFERRED_PROVIDER c269b41 oprofile: Improve xml_callgraph patch 1b447bc oprofile: Add ability to output XML callgraph information 1a8420b Bump version e9bbc39 Package the icons 10ff7f5 Add window selector applet 21690b1 exmap-console: Use filename to set PV, remove duplication from svn version, set DEPENDS correctly 4caa95d Add tasks 7b5b56c image.bbclass: We need to make sure all do_populate_staging tasks have fun so postinsts run correcting at image generation time 23ce782 bitbake: merge upstream fixes and fix bug in recrdeptask handling 56a65b3 Fix bashisms e36aeeb Fix bashisms 9765e7c Fix bashisms 1797bec cx3110x: Add nokia770/nokia800 wifi kernel modules 1d84d82 fix install target not to run depmod 9f2a9f3 Clean up replaces from OE, fix debug packaging 1b49670 Remove executable bit 4588afb Mass re-packaging scheme. Hopefully not too broken fda3808 Update depends to match renames and source changes 822d1ec Update depends to match renames and source changes 92639ed Update eds-dbus srcdate 2275ea1 Include patch that corrects the bug in the XML generation in opreport when using --separate=lib 0ad4523 Update cairo version 9d81973 cairo: Sync 1.3.14 with OE.dev 91d6da9 added filter selector 19d0779 simplified filechooser dialog 2f9b5a8 wireless-tools: package ifrename and libiw headers 716fdb2 update volumes patch to work with utf8 filesystem c179a53 patch gtkfilesystemunix.c to provide rudimentary support for volumes 890f796 coreutils: added 5.3.0 from OE .dev 6a402ce linux-2.6.19+2.6.20-rc4 -> 2.6.20 671facb eds-dbus: Sync with OE.dev 148b7cb Use newer Glib and GTK+ 74e0426 Fix typo when reporting an error 72f8f88 Upgrade GTK+ 015c1a8 Remove glib 2.8.6 b17f190 Remove glib 2.6.4 9a667a8 glib: Add 2.12.6 from OE.dev a0394cd Upgrade Contacts to 0.3 e36b2a9 Remove executable bit 4f88a7a Remove old Dates 9a905a5 Add dates 0.3.1 f9f0c31 bump up sato engine date c62dc02 Don't put .so symlinks in library packages ef3d4d7 Add patch that adds a "--list-files/-l" to oparchive that just lists what would be copied rather than copying them. 13f8e41 linux-cmx270-rp: Set COMPATIBLE_MACHINE 96dcd77 Whoops, default to panel-2 bfba560 Add matchbox-desktop-2 6bdda67 Remove executable bit c8767a3 Mark mb-panel-2 as a replacement for matchbox-panel 6c84e2b Update panel and Dates srcdate, add desktop preferred versions 647be45 Add matchbox-desktop-2 c1d98a4 linux-nokia800: Fix typo f990b3e util-macros: Unbreak cross-compiling e26585b libx11: 1.0.1 -> 1.1.1 ba14ad5 util-macros: 1.0.2 -> 1.1.5 52c2e1a Add syslog-ng to poky-extras 81f0ee5 Add vincent to poky-extras 1a55a39 task-oh: XSERVER makes this machine specific 86f5fd6 busybox: Don't strip binaries, let poky handle it c5f676f pointercal: tweak .bb file a31efbc pointercal: Add c7x0, nokia800, spitz c99a9b4 Add linux-nokia800 90320fd Add nokia800 machine 8b8dd74 Update xproto 7.0.5 -> 7.0.8, inputproto 0.5 -> 0.7 e87ab15 inputproto: update 7.0.5 -> 7.0.8 0e937cb Add xserver-kdrive-xomap 0eefd09 xserver-kdrive-common: Add nokia800 support 3e6b435 e2fsprogs-native: Stage binaries c09b109 image.bbclass: Make relative symlinks 44856a2 STAGING_BINDIR: No longer need to rename -native binconfig binaries, set STAGING_BINDIR correctly 9bab90e wireless-tools: Fix typo causing use of incorrect source dab7dfb bitbake.conf: Fix ext3 image DEPENDS a2de855 e2fsprogs: Sync with OE, add -native version 3b75644 bitbake.conf: Add ext3 image support (and update spitz to generate ext3 images) 3cce9ba scripts: Add support to scripts for spitz images 9604533 bumped source date 86db48c scripts: Add framework for supporting akita images under qemu e41b8ef tslib: Remove some further unneeded files 38658ea tslib: Sync with changes in OE, adopt a sane default configuration and only make it machine specific where needed 81b126e Now we always build gnome-vfs 2.16, don't depend on gnome-vfs-plugin-dbus dec4a3c Update gnome-vfs partially from OE, removing the krb hack 02aa107 zaurus-clamshell.conf: Fix empty flash space messages on akita by setting eraseblock size correctly 9055091 gtk+: Add 2.6.10 from OE.dev 650a05a Bump various source dates a025ba0 Upgrade depends to panel 2 0261eb4 Don't tell psplash to quit when starting X e4143a4 Remove clearlooks and panel 1, use Sato and Panel 2 85f0cce Bump version 691e28b Fix packaging issues 192e43f Update for panel 2 and fix packaging bugs 0d74b05 Add srcdate for screenshot, and update mb-panel-2 srcdate fca10eb Add package for screenshot ff84689 Re-arrange packaging and stage the headers 4292e81 Remove exclude hack in insane.bbclass and replace it with something a little less foul. This involces adding INSANE_SKIP_package=1 statements to the relevant .bb files 539b0f8 Add exclude list for now, until insane can handle per-package exclusions 6e6fdde When checking for .so files in non-dev packages, only check for .so symlinks ae28b7f Add pax-utils for insane.bbclass 8d774c0 Don't put the .so symlink into the main package 31aca97 Fix packaging and add missing files d212d58 Add hide cursor and root ppm patch fe3e623 Don't ship .so files in the main package 98f3b8b Add a patch to stop versioning the plugin libraries 248c3ed Add insane, from OE (but with fatal warnings) f682c42 Enable bash rdepends for dhcp-client, hopefully temporarily 02ee3a2 Add bash for dhcp-client (hopefully temporarily) 7f16449 Fix dbg packaging and clean up hardcoded paths 915fab9 Fix typo in description 24dd069 Add udev to depends (from OE) 6a24673 zaurus-clamshell.conf: Clean up flash files from after building final images 42d89ee Add intltool ecf5c09 Add HAL from git, faster and uses less memory 38ae29b Update poky-bleeding to latest cairo 162c14e Upgrade to Cairo 1.3.12 35fc09e Add OpenSSL for Network Manager 776490a Add dhcp3 and dhcdbd for Network Manager 6564355 Add iproute2, for Network Manager 75340b0 Actually add volatile file e343556 Add a volatile file so /var/run/hald is created b4fcc5f Add initial and probably broken Network Manager packages 1af800c Create haldaemon user 1afa154 Add libnl, a dependency of network manager (from OE) 4fb6a9e Upgrade HAL to 0.5.8.1 6d1509b Add package to install pointercal files, and provide a pointercal for akita ac853b7 qemu: Update qemu-packaging source date for X patch fixes 85788ed Fix regexp to work with qemux86 9c4684a prelink: Fix EABI segfaults 341f8fc README: Add note about bochsbios e0c47a0 Remove newlines in echos 3408e51 Fix machine guessing sed e1140fb Add patch that fixes a bug in oparchive that resulted in the the debug data overwriting the executables themselves. The patch fixes this by always putting the debug data into a .debug subdirectory. This will then be picked up by opreport when reading the archive in. b26da61 Remove bashism 97453a1 linux-rp: Add missing vesa-tng patch for 2.6.19+2.6.20-rc4 for qemux86 99b66bb README: Mention poky-depends deb f9f8165 readme.txt: Remove duplicate readme c3e19c3 Cloned the gdb/files/sim-install.patch to sim-install-6.6.patch and removed the second half since that is no longer necessary when applying onto gdb-cross-6.6. f382d26 Added -fno-omit-frame-pointer to DEBUG_OPTIMIZATION 69861b9 zaurus-clamshell.conf: Output files with jffs2 extensions to fix symbolic link magic 9232aa3 machine/spitz: Increase default ext2 image size to fit sdk images a4da778 apt: Fix STAGING_BINDIR reference 2a13c25 qemu: Bump PR 81db74a qemu: Update qemu patches svn date. 990788b scripts: Rename scripts, update README 6531611 runqemu: Tweak scripts 2958184 runqemu: Revamp scripts, splitting into a core internal script and two helpers, one for use within poky, one outside poky 5d4e6e7 Fix file sync 92404e4 local.conf.sample: Remove reference to oesources.org. b9688d1 linux-rp.inc: Make sh compatible fixing dash issues 2eebb48 add recipes for packages needed to build AbiWord (based on OE, but tweaked for 2.5.x) 81c9ad8 Upgrade to DBus 1.0 in poky c7e1d67 linux-rp: Fix defconfigs for qemuarm/qemux86 cf7090c oprofile: bump cvs date, fix for EABI f6cbd20 fix building of syncml-client and and the syncml-client-plugin e42e254 follow up fixes from OE for libstdc++.la 4737b0e linux-rp-2.6.19+2.6.20-rc4: Fix patch SCR_URI 69177da linux-rp: Add 2.6.20-rc4 1cacbe3 machine/qemu: Set image size in common file 10b9b4a tune-arm926ejs.conf: Change default to that foc gcc4 7884add dbus-0.60: Set PROVIDERS correctly f5665d5 bitbake: Sync with upstream. aec95de Remove useless PROVIDES cdbfd60 gdb: Add version 6.6 70eeb3a native.bbclass: Override STAGING_BINDIR_CROSS 81fc653 image.bbclass: Sync minor changes with OE b30afa2 rootfs_ipk.bbclass: Fix typo, whitespace fb61dc1 kernel.bbclass: Drop KERNEL_RELEASE variable 3a86950 patch.bbclass: Fix force options for recent quilt versions 4db17d9 Poky: Switch to use EABI for arm images. Also implies a switch to gcc4, glibc 2.5 and binutils 2.17. ba22e89 Promote eabi4 to become the eabi of choice for poky 9b84bd9 Rename poky-eabi -> poky-eabi5 563bbec Patch from OE to fix libstc++.la 3206bb3 bump up version to 0.4; add missing RDEPENDS and DEPENDS and post install script 4b8a009 update package contents following change in install path 30daacb splitexmap into exmap-console, exmap-server and kernel-module-exmap packages 09b777e Add evolution2 opensync plug-in 4ffe8f6 Check in opensync/libsync/synctool bits - Mostly compiles, not tested a34d402 bitbake svn fetcher: Don't use a date when a revision is specified 94ad996 fix appearance of the calibration crosshair 7d621ff gnome-vfs: Disable samba (fix qemux86 build failures) 71dd72c Remove orbit2 2bbd9a5 Make all assignments conditional and fix a missing quote caf483a Add RPROVIDES 4e3d905 Fix typo bd00c33 distro eabi includes: Drop TARGET_VENDOR settings - handled in poky.conf now c378b7f gcc-build3.inc: Merge from OE.dev to fix EABI build failures (esp. qemux86) 61e233a udev: Fix touchscreen symlink when the touchscreen driver doesn't send EV_KEY events 0c25de7 linux-rp: Add xscale_cache_workaround patch which removes segfaults seen with glibc-2.[45], jffs2 and the kernel zlib patch under EABI until a better solution presents itself. See discussion on linux-arm-kernel. adb36b3 Define preferred provider for dbus-glib 91dc177 Add PROVIDES=dbus-glib 8953e46 Add gnome-vfs-plugin-dbus provider/provides to let the task build 43437fe Add DBus 1.0 and deps 1c7b4e3 Add depends on dbus-glib 74279dc Add depends on dbus d7c925b Very nasty hack for gnome-vfs, to force the krb5_config check to fail 95442ba Upgrade to intltool 0.35.2 74479b5 Upgrade gnome-vfs to 2.16.3, which uses DBus 1.0 81b4959 Merge avahi 0.6.15 from OE, to enable builds against DBus 1 8de8a38 Update eds-dbus srcdate for calendar fixes a29ef9d Update cairo 9286120 Add gnome-vfs 2.12.0 d01c67b Upgrade to cairo 1.3.10 37568a7 Add strace 4.5.14 (with EABI fixes) ae60cc2 README, sanity.bbclass: Add makeinfo (from texinfo) as a dependency. Also check for qemu-arm binary 8ceaa4e psmisc: Fix -dbg and -doc packages d9b82c5 Disable xft patch, and instead patch out GTK+ from GtkEntry and GtkCellRenderer fa0d16a Fix packaging 51bcdb3 Fix depends 3040eb4 poky.conf: Default to enable binary locale generation 8425978 qemu*.conf: Increase image size to 200MB to fit sdk b12882e mpeg2dec: Fix -dbg packaging 91d2ec7 alsa-lib: Fix -dbg packaging 46f18dd glibc: Fix locale generation a09dab8 libxml: Fix dbg packaging a6bd060 Remove empty directory cb3389f Drop old versions of leafpad, zlib, gnutls, libgcrypt, file c2a8c31 Drop uneeded X11R7.0 versions c9ac078 Finally commit matchbox sato theme ed9ba44 Update for new Pango and Cairo ea5a5e2 Remove GTK+ 2.10.0 32077bd Upgrade Cairo to 1.3.8 daa65f7 Upgrade to Pango 1.15.2 6dec346 Add libsm to DEPENDS of startup-notification ce18f35 Add matchbox-sato 5412e02 add Sato gtk engine bb 90fc126 gcc: Sync gcc-package-cross.inc 1a4a231 gcc4: Sync with OE.dev 1292db8 glibc: Update patches e46b247 glibc 2.5: Sync with OE.dev 82e21d5 poky-eabi4: Fix versions 43512fa binutils: Correct url for poky d7d26c7 poky-eabi4: Update versions dfd4783 binutils: Add 2.17.50.0.5 (from OE.dev) 6ae7f0b Add poky-eabi4 mode 86be563a glibc: Add 2.5 (from OE.dev) c540e7a dropbear.inc: Fix quotes f5b38f9 Remove DISTRO_TYPE, replacing with IMAGE_FEATURES. Documentation is in local.conf.sample 50bbb77 bitbake.conf: Clean up FILES, add ALLOW_EMPTY for -dbg and -dev packages eba00a9 glibc: Package libexec .debug packages correctly d4e0d81 exmap-console: Set PV correctly a8b7d09 Add elfutils, prelink 01303cc distro.confs: Set SRCDATEs for exmap-console, elfutils and bump psplash 44e5910 svn bb file 81aad85 maemo-mapper: Sync with OE ce8e068 linux-rp: Disable LEGACY_PTYS on qemux86 (to match other kernels) 89e6ea8 Add poky-bleeding note 7c46bcb Update eds-dbus to svn as of 20061215, and drop integrated patches. 8b1ea72 update to 0.3.1 6b52f40 linux-rp: qemux86 touchscreen changes to work with wacom tablet e0a8698 tslib: Add qemux86 support 228a583 orbit2/gconf: Convert to use STAGING_BINDIR_NATIVE 6c2f9c0 Various libs: Convert to use STAGING_BINDIR_CROSS 825a17e libgpg-error: Convert to use STAGING_BINDIR_CROSS ec99f44 bitbake.conf: Add STAGING_BINDIR_CROSS b21230d tslib: remove duplicate FILES statement 9ee3d34 kf: Make it work with gcc4, sync with OE.dev da317b2 Allow psplash to be disabled via kernel cmd line d557f58 poky.conf: Remove PARALLEL_INSTALL_MODULES, we don't want this 51d5820 Add time d2e7d8b lttng-viewer: Set LEADSONAME 5661cfc alsa-utils: Fix packaging 4e68432 tslib: Fix -dbg packaging 5d2f5fa Add missing patch for glib-native 2.12.4 c258b1b Optionally set cairo version so it doesn't overwrite the poky-bleeding version cb244e3 Fix glib versions 7340a6c Add glib_cv_monotonic_clock for glib 2.12 8c7ebc2 Upgrade to glib 2.12.4 46287e2 Upgrade to glib 2.12.4 66e4e27 Add missing PREFERRED_VERSION_ prefixes 4ba4391 Add poky-bleeding.conf for cutting edge config 6921fe4 gtk+ 2.10.6: Fix DEPENDS for poky, use bitstream-vera as a font for now ccd102a cairo: Add 1.3.6 from OE.dev 3321c70 pango: Add 1.5.1 from OE.dev 1ec0f85 task-oh: Add ipkg until we have an alternative means of running postinsts b142185 fetch/__init__.py: Allow srcdate to be overridden in SRC_URI aac2b8d runqueue.py: Send SIGINT upon Ctrl+C, not SIGNTERM c690f89 qemu: Switch to use debian package repository 3664b2a matchbox-poky: No need to show the cursor on qemuarm now cf66987 linux-rp: Disable mouse device for qemuarm bc2f38f gcc 3.4: Add patch to fix jar issues 2886028 local.conf.sample doc updates + add ASSUME_PROVIDED += "qemu-native" 5eadd9d Remove now uneeded gcc-3.x check 470beb5 rename readme.txt cf305b0 readme updates for qemu 23af674 Fix typo ccd69b9 Remove useless options f63e715 Remove bashism 4cf2d71 rootfs_(deb|ipk).bbclass: Fix bashism so works on dash c30cb8c bb file for dates 0.2 91001d7 gnutls: Specify libz and libreadline locations to avoid contamination from /usr/lib and /usr/include 4861e57 setserial: Fix SRC_URI (from OE) 21fb2cb bitbake runqueue.py: Set children as process group leaders and send SIGTERM to the process groups 6274709 bitbake.conf: Move DL_DIR to the end of the file 67d732d scripts/runqemu: Remove some duplication 6a83bb1 scripts/runqemu: Add distcc support ef853d0 Add qemu-distcc for qemu machines 4de307a usbinit: Fix quoting 034861c image.bbclass: Add export machine as needed by bbimage bc4de14 rootfs_deb.bbclass: Add sanity check 37669af bitbake: Fix a couple of typos in the bitbake shell d35635a scripts/runqemu improvements: * Try harder to find ifconfig * Error out if the environment isn't correct * Tell the user we're running sudo 6ee267a Update Contacts to 0.2 681d6c1 bitbake: Sync with bitbake trunk for bugfixes and improved dot file generation code adabf6c sanity.bbclass: Add umask check 2dc275c package.bbclass: Add fakeroot-native as a PACKAGE_DEPENDS 5f59db5 dpkg: 1.13.22 -> 1.13.24 081bc99 local.conf.sample: Allow external override of PACKAGE_CLASSES c7c86e2 gcc: Remove bogus PACKAGE_ARCH settings (now fixed properly in cross.bbclass) 34aa4ca cross.bbclass: Set PACKAGE_ARCH correctly under inherit cross 9ecd235 poky.conf: Set TARGET_VENDOR to -poky. This will require a rebuild of tmp directories but will identify toolchains as coming from poky etc. 661b9ca qemux86: machine config files should not set TARGET_VENDOR, its a distro option 255a927 Add valgrind 72db1be Rename linux-openzaurus to linux-rp 85e27da rootfs_deb.bbclass: Reverse sources.list file to correct repository priorities. Add Release file to sources giving a Label. Update preferences file to use source labels instead of paths b7880fa package_deb.bbclass: dpkg-deb needs to run under fakeroot to set ownership correcting in resulting packages 0d3763a zaurus-2.6.conf: Mark machines as supporting bluetooth 632d278 apt: Set preferences location in apt.conf a725186 base-files: Should be machine specific ecc68c6 linux-openzaurus-2.6.17: Update ASoC + other misc patches b8cc2cd linux-openzaurus-2.6.17: Sync defconfigs with OE bcedd69 poky-extras: Add bluez, sqlite, maemo-mapper-nohildon 23e50d4 poky-extras: Update extras task and image with recent poky changes db0b57e tslib: Fix tslib.sh for spitz e65d97d rootfs_deb.bbclass: Mark packages as installed/unpacked correctly. Add in hacks to work around /var being tmpfs and to enable ipkg to handle the postinsts on device (for now) 207db00 rootfs_deb: Set Architecture correctly in a copy of apt.conf in staging 2d56326 apt-native: Stage apt.conf.sample, not apt.conf. Anything needing apt.conf will need to adjust the file anyway and this avoids apt's default search path. edd988e data_smart.py: micro optimisation from bitbake trunk 1e95d39 Confhandler.py: Add cleanup from bitbake trunk 9f10a98 svn.py, git.py: Sync with bitbake trunk - comment changes d8f7680 fetch/__init__.py: Store url data per .bb file fixing urldata contamination between .bb files. f4ab3a1 perl: Use -f option to rm, fixing read only file problems 4f249a8 Fix STAGING_BINDIR for multimachine use by spliting into STAGING_BINDIR and STAGING_BINDIR_NATIVE and adding both to PATH 82dd732 base.bbclass: unexport MACHINE 0da3c82 bitbake/lib/bb/data.py: Add unexport flag for variables, add speedup for expandKeys eee1508 psplash: Set PV correctly bd76341 update-rc.d: Drop version 0.6, set PACKAGE_ARCH='all' for 0.7 1e1e9a3 package_deb.bbclass: Handle all architecture as a special case solving multimachine build issues ebf771b local.conf.sample: Improve PACKAGE_CLASSES documenation e4bb4ba base.bbclass: Make sure MACHINE isn't exported fixing failures in binutils when MACHINE is an envirionmental variable 436d656 puzzles: r6727 -> 6915 6a9c195 local.conf.sample: Allow environment to override MACHINE and DL_DIR 14d1d6d scripts: Move main contents of poky-init-build-env to scripts/poky-env-internal. Add poky-autobuild script for autobuilder use. 5285430 siteinfo.bbclass: Change note to a debug message eeb1bee bitbake.conf: Allow DL_DIR to be set by the environment 91509a0 poky.conf: Set some missing SRCDATEs including qemu and psplash dff9e4b qemu: Really fix arm_nptl.patch c344a7c qemu: refresh arm_nptl.patch fdeaa59 speex: Fix SRC_URI db564fe sanity.bbclass: Add sdl-config to required programs list. Remove fixme as now dealt with. 2f461db qemu: Add depends on zlib(-native) 7a80caa local.conf.sample: Add note about BB_NUMBER_THREADS 0ac664d rootfs_xxx.bbclass: Add missing checkins from the log_check updates fcbc597 xsp, xpext: Fix broken DEPENDS after merge e2f9e1a Factor common code out of rootfs_xxx.bbclass into image.bbclass. Add error detection code for roofs_deb.bbclass 01b1dba base.bbclass: Fix errors in none libtooled packages 450aea7 Add lzo, upgrade libgcrypt -> 1.2.3, add gnutls 1.4.4 2a9503f Add libxml2-native from OE.dev 634232e Site file handling update: Instead of one site file per target, allow entries to be shared. Handled through siteinfo.bbclass 4c9521d dbus: Add missing files 0405bf5 Add dbus+dbus-native 1.01, dbus-glib+dbus-glib-native 0.72 from OE.dev 902bcfa Update libx11 references. 2befc63 Various minor updates from OE.dev a936cf2 cairo: Fix libx11 reference, add some patches from OE.dev (commented out for now) 30785a5 gnutls: Improve do_stage (from OE.dev) f8c2f22 perl: Sync with OE.dev 4d0fb2b libsoup: Drop old verison, fix 2.2.96 staging 6520c12 gst-meta: Merge into a single file (maybe to become task-gst) e38a607 initscripts: Add save-rtc script and ALSA manual devices table from OE.dev ad790e9 ipkg.inc: Fix bashisms (now works with dash) (from OE.dev) 4b647cd Various minor updates from OE.dev b3b8d9e hostap: Sync with OE.dev f86905d gnu-config-naitve: Fix do_stage (from OE.dev) ca861e8 prism3-support: Fix multiple network device issues faedc55 fakeroot: Sync with OE.dev (and fix -native RDEPENDS) e423fc9 libidl: Improve staging from OE.dev eef43c9 s#libx11#virtual/libx11# b57a5d5 less: Add alternatives handling from OE.dev f73c7d9 matchbox: Quoting fixes, s#libx11#virtual/libx11# from OE.dev b6b03ef flac, lame, libiconv: Sync with minor changes in OE.dev 6f5035a libpng: 1.2.8 -> 1.2.12 d1c3475 fstests: Add packaging from OE.dev 378c5d9 base-files: Sync with OE.dev 0d35abe eds-dbus: Sync with OE style changes, add DEPENDS on zlib, add workaround -ldb from OE.dev e56649a gtk+ 2.10.6: Sync with updated patches in OE.dev (pangoxft includes a calender fix) 31fd33d netbase: Sync with OE.dev 16392b3 pcmciamutils: Drop old version, fix quoting in 013 03c40cc busybox: Sync with OE.dev dce65a1 maemo xsp/xpext: s/libx11/virtual\/libx11/ 77416dc pcmanfm: Drop old version e86819b keymaps: Sync with OE.dev c24ce90 tslib: Sync major cleanup I made in OE.dev c0d040f bitbake.conf: Add util-linux-naitve and grep-native to ASSUME_PROVIDED ede06b0 gmp: Upgrade to 4.2.1 from OE.dev c5afcd8 cairo: Drop old version (use 1.0.4 instead) e1436b2 busybox: Update defconfig after failure on qemux86 0598141 conf/machine: Remove stale unused files 4398b98 conf: Sync with OE 173b999 Drop cvs tslib c4f7ddc linux-nokia770: Update kernel to osso26 release c6eae2f linux-nokia770: Update kernel to osso26 release b1ce432 udev: Package and stage libvolume-id as required by HAL 2148aed file: Add missing files 2086881 file-native: Add 4.18 from OE.dev e09dab0 classes: Sync with OE - mainly quoting fixes or other minor updates 4015d48 binconfig.bbclass: Sync with OE to benefit from improved .la file handling 99498a1 Fix whitespace eb0d34d We patch out Xt from the X11 check, so remove libxt depends 9101515 update-rc.d.bbclass: 'Fix' whitespace 95febfd base.bbclass: Sync with OE (remove broken mirrors, fix fetchall task) 131c98c runqemu: Refactor network device commandlines and enable for qemux86 ext2 images (qemuarm ext2 images attempt dhcp and hang for some reason) 31f507e runqemu: Use different nfs paths for qemuarm and qemux86 af60f8f scripts/runqemu: Add qemux86 support fac260b glib-2.0: Clean up anonymous methods 8aee6b3 classes: Standardise whitespace in anonymous python methods and factor out functions for more efficent use by bitbake (as also patched in OE) 8174ba4 kernel.bbclass: Unset MACHINE to avoid problems ff23349 bitbake.conf: Add MACHINE to the CACHE path if set 74b6456 If building without dselect, we don't need curses 713d414 Add kexec (from OE) 941d957 dpkg: Make it a little quieter by removing extra fields warnings 177e1a1 linux-nokia770: Drop old 2.6.12 version d52270c linux-nokia770: Sync with updates in OE 4a9392f Improve the qemu scripts and documentation (qemux86 support isn't complete yet) f4a8621 poky-init-build-env: Add scripts dir to the PATH, export BUILDDIR and OEROOT, add BUILD_SYS variable e389104 linux-nokia770: Remove incorrect KERNEL_IMAGETYPE (causing problems after kernel.bbclass was fixed to allow this to be overrriden) 69aadf9 linux-nokia770: Add 2.6.16 release version from maemo 306b7c7 bitbake: Upgrade from 1.4 -> 1.7.4ish 65930a3 Modify IMAGE_ROOTFS_SIZE_ext2 for cmx270 e1dbdeb oh-image-extras: Correct inherit to match deb changes e672f3e fstests: Add correct PV c129419 alsa-lib: Add RDEPENDS on alsa-conf 883741f gcc: remove duplicate methods 62fab4d glibc: Remove duplicate methods 274ecca conf/machine: Merge task-base updates 5962332 sanity.bbclass: Merge with OE syncing improvements both ways 24d8eaa fix exmap-console version; bump srcdate 73e0032 tweaked to work with autotooled package 362a7a3 patch to disable screen-blanking from X server 0d59c10 kernel.bbclass: Sync with updates in OE to work with kernels >= 2.6.18 5d6699a Add gtk+ 2.10.6 from OE bdc1ab3 Upgrade GTK+ 2.8.x to 2.8.20 7e31da3 linux-openzaurus-2.6.17: Sync defconfigs with OE (spitz, poodle) acbaf6a linux-openzaurus-2.6.17: Sync defconfigs with OE (tosa, akita, c7x0, collie) b73d010 linux-openzaurus: Drop outdated 2.6.16 kernel ebced3a linux-openzaurus: Drop outdated 2.6.16 kernel 5660618 move noman.patch inclusion from dpkg.inc to dpkg_1.13.22.bb 15a908c enable noman.patch to avoid building man directory (results in significant speedup) a8cf764 xserver-kdrive: Fix packaging e510de5 Update apt to 0.6.46.2, as 0.6.45exp2 is no longer on the debian mirrors. 7597d5b Smaller filechooser patch for GTK+ 2db3540 Remove some leftover pre X11R7 packages c195758 Drop old x versions (pre X11R7) e3fdd33 Drop old xlib versions (pre X11R7) df12f76 Remove remaining MAINTAINERS 0fc3f6d sysvinit: Fix packaging 73808fd puzzles: Fix packaging 939f898 pango: Fix packaging 66d4d1f Add distcc to poky from OE 860b485 packages: various .debug packaging fixes 41588f1 libxml2: Drop old version 6312385 lib_package.bbclass: Fix .debug packaging (from OE) 3de4893 bitbake.conf: Fix .debug packaging a5a8311 poky.conf: Fix owl-video-widget SRCDATE cc27520 Kill some old x packages. 298a30b Add distcc to the sdk image. a67d36b base.bbclass: depchains: don't -destructively- set the pkg's RRECOMMENDS. d726bba package.bbclass: depchains: don't -destructively- set the pkg's RRECOMMENDS. 002f491 patch.bbclass: fix bug where it failed to detect that the user did not modify the patches at all, add note about pressing ctrl+d to exit the resolver shell. 77213ca fix packaging 7877023 increase srcdate c66f925 rename misnamed package 2714417 added bb file for exmap-console application 3ed8f69 meta/site/x86_64-linux: fixed value of db_cv_mutex ac46aeb gconf-dbus: dont include .debug, .so, .la in main packages. 6e8fc10 Ipkg: don't include .debug in main packages. f711a0a poky.conf: Fix oprofile verison 23158c8 gtk 2.6.8: Fix -dev/-dbg broken packaging 7759703 package.bbclass: Partially fix another dubious use of packages[0] e7d0f3d perl: Fix .debug file packaging 2af3b21 package.bbclass: Fix split_locales to remove spurious references to -dbg packages. The way it selects the principle package name needs totally reworking as the current code is flawed but apply a workaround for now (this is unrelated to other changes to package.bbclass) ec30e86 image.bbclass: Fix image task dependencies after package.bbclass updates 866ab59 package.bbclass: Sync with OE upstream e2b821a package.bbclass: Split into two tasks, one which prepares the packages and then package_write which actually generates the packages. The two stage approach allows us to avoid circular dependency issues from classes like debian.bbclass. As the data being emitted into pkgdata/ changed, you need to either wipe tmp or rerun the do_install/do_package tasks (wipe the do_xyz stamps from the stamps dir). Everything will repackage anyway due to the new task. 49d42d9 base.bbclass, package.bbclass: Clean up and document. Should be no actual code changes 95ec43a files to build gtk-industrial-engine 09f1353 gtk+: remove outdated maemo version b6959cf base.bbclass: Add fetchall task to fetch all sources for all the given task and all its dependencies (requires bitbake trunk) 2f3711f oprofile: drop old version 53592b9 Add vesafb-tng patch to linux-openzaurus. 5737767 glibc-package.bbclass: Improve localedef failure error message 1812814 gtk-engines: Fix SRC_URI 605f620 gdb: 6.3 -> 6.4 ac8a12b oprofile: Make 0.9.2 the default, bump cvs date, update the cvs .bb file for cvs changes a9d2038 Add PACAKGE_CLASSES setting, also list qemux86 as machine type f97aec2 Add PACAKGE_CLASSES var to poky.conf 5713649 Add check for gawk, needed by x86 glic build 50f3bbc oprofile: Add 0.9.2 272266f oprofile: Remove some bashisms and general breakage 6dfc07b add va_copy bits to the i586-linux site file. 6cef27a Add initial 1.14.4 2b533dd Update Pango 1.13.x to 1.13.5 16e5c3b Update udev from upstream oe (still using 092, just a newer PR, so the .debug stuff is split out of its packaging). 009c24a add psplash to task-oh-base 6553a20 Add XServer fallback settings for unknown machine 0be2426 fix broken 'require' statement dade587 Don't nest os.path.join() calls 16bcfe9 qemu: Fix patch 3b9e54a Added hopefully fine qemu touchscreen related patches 823c845 Add patch to remove include <linux/compiler.h> as it isn't in edgy, and isn't required. --This line, and those below, will be ignored-- fc2234c Remove unrequired libraries 5ec8407 Remove dependencies on libraries that are not required b73e55b Remove empty directories left from xorg conversion c6abd62 tslib: Fix qemuarm 7749576 tslib: s/cmx270/qemuarm/ ;-) a9d7c5a tslib: Bump PRs b2c589c tslib: Add cm270x support 7086fa1 Make keymaps load after psplash ae40c62 Various minor tweaks to get qemu emulating a touchscreen device eb83f4b sysvinit: Add psplash support, remove elpp support, convert rcS to use rc, speedup execution of sh scripts b462c8b add psplash f27a0ca Update sanity checking to report all missing instead of one per run. Add a check for gcc 3.x 07be49d - Fix mp3 playback (update libmad) - add mp3 decoder to gst-meta-audio - add avi demuxer to gst-meta-video 181260d Updated readme.txt with required package list for breezy dd6268d Add mb-applet-light to poky 79206e0 xextensions: Remove as they conflict with X11R7 packages and corrupt builds 80e181e tslib-maemo: die, die, die 8281963 xserver-kdrive: Prune old unneeded xservers 2ea41da rootfs_ipk: Remove extra rm command to ensure /dev is correctly created c2e7a8d lttng-control: 0.10 -> 0.18 6d8c33e tslib: Fix nokia770 support files 361473f udev: Remove old unused versions 675c8fc udev 092: Revise touchscreen detection expression to function with nokia770 4e0958e xsp/xpext: s/xextensions/xextproto/ b83c1ab gst-plugins-good: Disable libcaca to prevent build failures f54bb1f Add task-oh-sdk-base to oh-image-sdk. bc6fccc Fix bug #151 (pcmanfm warnings/launcher) 8d02222 Back out unnecessary change.. bad0d88 Fix launcher for owl-video-widget 2f98100 Add missing icons and a .desktop launcher for owl-video-widget b4a1c8f Bump up qemu date needed by wacom usb patch 88a162b Add usb wacom patch from andrzej zaborowski 36f59c2 poky.conf: Add PREFERRED_PROVIDER for update-alternatives 6b89e67 ipkg/dpkg: -native packages need to depend on virtual/-native version f790c58 update-alternatives: -native packages need to depend on virtual/-native version a45581c rootfs_ipk.bbclass: Fix function names and exports 7aceb00 glibc-package.bbclass: Merge task order fixes from OE 8d804ea Merge devgen branch to trunk. 5cacd3e Remove unneeded classes 4471ca5 libxsettings-client: remove unused path ecd5296 libxsettings-client: Use version 0.10. Remove libxsettings a48da11 Clean up and correct MAINTAINERS 650cd19 Update GStreamer packages, add missing gst-meta-debug package, add Tremor vorbis stream decoder patch (GNOME bug #357055) 2b9b768 removed uneeded per machine key setups and merge in single kbdconfig file 2341598 Correct desciption and section d9c7d67 e2fsprogs: Remove misplaced/stale file 83217c7 lttng-control: drop old version 0.6 b6c7781 lttng-control: drop old version 0.6 514ab79 clean up some unneeded references/variables 7272744 gtk+: Remove migration patch dd9ff71 Package.bbclass: sync with upstream oe legitimize_package_name. cdb9517 linux-openzaurus-2.6.17: Sync with OE. Also add rootdelay=1 to kernel commandline for spitz 4fa2d11 Sync up.. all the deb/dpkg changes which I have locally are now in svn. 04f6953 classes: Reorder tasks so staging occurs after packaging. Add do_install into the task chain with dirs fix. Changes merged from OE 1f0424a base.bbclass: Remove do_fetch[nostamp] so we don't run the fetch tasks everytime we build an image. WARNING: This will cause all do_fetch's to rerun which will in turn trigger a complete rebuild of everything. To avoid, use http://www.rpsys.net/openzaurus/temp/make_fetch_stamps baedc79 Add missing patch for liboil (whoops) e57a7d5 Fix liboil, revise GStreamer packages (still WIP) 02059b7 files for using csl2005q3-2 toolchain de35d83 files for fstest suite 0eadb89 binutils-2.15: Add update from OE to allow correct operation with gcc 4.x (requested by zecke) 3ea4918 images: Remove XSERVER references now handled by task-oh c9eb0b3 task-oh.bb Move xserver depends from image depends into the task package 163af38 bitbake.conf: Add svn commands, merging from upstream so bitbake trunk works 1d21b58 poky.conf: Correct pango version 81971a2 patch.bbclass: sync with upstream oe. 5089966 readme.txt: oh-image no longer exists - update a0ae2c8 Fix crash with gst-inspect cb21806 Change maintainer for all gstreamer packages to myself (they've diverged enough for this, I think) b015278 Fix gst-plugin-* depending on gst-plugins-*-dbg 117d625 Tweak/fix-up GStreamer stuff - gst-launch seems to work with mpegs now d1da9bf Update qemu-nfs script to work with versatile/PB kernel abfc1db Add apt & apt-native, including the generation of the apt.conf to be used for the rootfs population. 2ca2649 - Add libmusicbrainz from OE - Fix up gstreamer packages - Add gstreamer base/audio/video meta-packages - Add owl-video-widget - Add owl-video-widget, gst-meta-audio and gst-meta-video to test-apps in oh-image-pda (currently not working?) e9b7628 configuration for csl2006q1-6 compiler and binutils 8f47d85 Add dpkg, modified from upstream oe. f8b1e63 Check /proc/cmdline for 'x11=false' to disable X server startup f1f8c5a Add gstreamer 0.10 - Mostly packages from OE + updates and gstreamer binary registry patch b89a8f8 Add xset, xrandr to oh-task-base fe8b30c Add cmx270 special casing for not including wifi 5027d8f patch.bbclass: updates from upstream oe. aaab207 Update cmx270 for 2.6.16 use 287f11c Add compulab modified 2.6.16 kernel ce8c8e0 Add correct patch 1e09fe1 Add patch for -fb switch support for Xfbdev 18117c4 Add basic support for cmx270 mxfb X 99da426 base.bbclass: Add a new 'rebuild' convenience task, which simply does a clean and then runs the default task ('build'). c489311 devshell.bbclass: Run after do_patch b9f06d1 devshell: Convert to its own class and add to poky.conf by default. Export EXTRA_OEMAKE to devshell. c1ab349 base.bbclass: Add devshell task. Trigger as bitbake somepackage -c devshell which will drop you into an interactive shell within the source (S) directory. The environment is as found internally to other tasks for the package (PATH includes the toolchain etc.). 27e6638 bitbake build.py: Add interactive flag for tasks to allow i/o redirection to be disabled. Also fix NFS stamp error 874a642 Patch.bbclass: add NOOPResolver class for use in unattended builds, which does no actual patch resolution, simply passing the failure on up. Set PATCHRESOLVE='noop' to make use of it. Also pulls in the workaround for quilt's upward searching for a 'patches' dir from upstream oe. 0153064 Fix cursor hiding when running on qemu versatile board 6527a79 Add qemu-ext2 script and new notes to README b1d72c5 image.bbclass: Add symlinks to the latest images for a given machine 0426fad linux-openzaurus.inc: Add symlink to deploy/images for the latest kernel for a given machine 24164f3 Add ac_cv_sizeof_int_p, needed mysteriously suddenly by rxvt-unicode 67557e1 gcc-cross-csl: Fix typo and hence require error. Not sure how this worked and it will probably break the csl toolchain... f54e1c6 dbus-native 0.5: drop old version bc83fd8 Rename the supplied default local.conf to local.conf.sample, per mallum's request. ecb32bd Patch failure handling updates, added a 'patch' concrete class, so we can apply patches to quilt-native itself. 01056cd quilt updates from upstream oe. f927cf6 poky-init-build-env: add $HOME/.poky 72d2979 poky-init-build-env: add $HOME/.oe to BBPATH, for setting a per user conf/site.conf for settings common to all build dirs. unset TERMINFO to avoid glibc pulling in the user's terminal information files. c813d14 Change include x.inc -> require x.inc (sync with OE) 1489f00 pango: Sync with OE 92026fc chkhinge26: drop (replaced by zaurusd) 418c6e5 avahi 0.6.10 -> 0.6.13 (from OE) d717d4f Patch.bbclass: fix bug resulting in a failure to md5 the local path.. it broke when localpath() included variable references. 438c974 automake: Sync with OE (include -> requires) 566a463 autoconf: Sync with OE (include -> requires and add AC_CHECK_TARGET_TOOL backport from 2.60) 57a3f74 Add tune-iwmmxt (use to enable wireless extenion optimisations) 3fb64b4 sanity.conf: Update minimum bitbake version 6edc490 Drop familiar, sync angstrom and openzaurus after merging task-base changes 5ad6d9a bitbake.conf: Sync with upstream 504535f Sync task.base after merging upstream 2a01021 Sync conf files with OE (and add iwmmxt arch to capable machines) 06a1633 qemu: Generate ext2 images as well as bz2 tarballs 72906f5 conf/distro: Sync with OE 93a8d06 classes: Sync with OE 37d03b1 Directly make use of the OEROOT environment variable in the default local.conf, and set TMPDIR explicitly to avoid the requirement that one run bitbake from the build directory. bd1b2b2 poky: Add POKYMODE=eabi2 - Uses glibc 2.4 and gcc 4.1.1 8800d8b gcc: Add 4.1.1 1562178 linux-openzaurus: Change qemuarm to emulate the Versatile/PB with SCSI disk support and OHCI USB (via PCI) 892c3b4 linux-openzaurus: Change qemuarm to emulate the Versatile/PB with SCSI disk support and OHCI USB (via PCI) 9141b71 glibc-2.4: Extend list of broken locales 2699394 qemu: Updates to reflect new SRCDATE 4ebdad5 qemu: Update to SRCDATE = 20060723 (corresponds to 0.8.2) 6f6b931 qemu: Add nptl patch to allow EABI binary locale generation (from scratchbox) 5c2171b ship battery applet images 30532ac s/libapm/apmd 2177524 updated matchbox-panel-2 packaging 55b7650 Added faster cairo_fixed_from_double() ad1b593 Add a few more i586-linux test results for x86 builds. 6b656b2 Add util-macros to the DEPENDS of xorg-app-common.inc 0982068 Remove unneeded linux-x86 fa1dde2 qemux86: Switch to use linux-openzaurus as the kernel provider 9e2e38c linux-openzaurus: Update defconfig-qemux86 521b22d Clean up X start up scripts. Remove uneeded files. Use xinit to more safely launch Xserver and XSession scripts 2d5a5e5 Add a few more test results to i586-linux for the qemux86 build, this time for libgcrypt. 3b50962 Tweaks to work with bitbake trunk: add BB_DEFAULT_TASK, add do_rootfs[nostamp] back, remove image_ipk PR 97924c6 linux-openzaurus: Add qemux86 support a0ce0b8 Add a couple entries to the i586 site file, to fix up the avahi build for qemux86. 056b433 Fix the patch.bbclass error handling in a couple of the error paths by changing the semantics of the PatchError exception. c69404a Add xinit 7aa52d7 Clean up the way patch.bbclass's runcmd handles the directory not existing. 9649cf3 Drop outdated opensync packages for now fe7c8c2 Changes for ticket:8, with fixes for the bugs reported by Richard. 4776ce0 Add/fix libsoup 2.2.96 package 1bf87de Add pcmanfm 0.3.0.1 (latest) + patch to enable use without FAM ac73b5a gnone-vfs-dbus: disable openssl and samba explicitly 017f9db perl/perl-native: Sync with OE 4672653 perl: Add i586-linux config file 45b0482 x86: * Add qemux86 machine. * Glibc 2.4 updates from upstream OE. * Add linux-x86 kernel to satisfy the deps. 10984ec fontconfig-native: call out freetype-config-native, not freetype-config. the inadvertant inclusion of the target staging dirs in the lib search paths can break the x86 builds. 7b8d7fe xextproto: do not PROVIDES xextensions, as it does not includ xextensions.pc. 94f4377 Fix packaging for matchbox-panel-2 d8b4d9c Add matchbox-panel-2 to poky 7d9b40b bump up settings daemon date 22a7b20 Add patch to rename eaccess function in coreutils-native so it doesn't conflict with any system-provided eaccess. d58cfb0 Switch from tslib 1.0-rc1 to tslib 1.0. cefc924 Add tslib 1.0 release candidate one. ca10363 Numerous new xorg package versions from upstream OE. Pester me if any local changes got inadvertantly lost, or if any packages need upgrading. c210d01 gtk-doc: Create directory before installing the file 283e986 classes/base.bbclass: * Add stamps for do_fetch task * Remove empty NOTE messages * Add do_configure task dependecy for DEPENDS handling classes/debian.bbclass: * Add do_package task dependecy for RDEPENDS handling classes/image_ipk.bbclass: * Add do_package task dependecy for recursive RDEPENDS handling classes/package.bbclass: * Add do_package task dependecy for DEPENDS handling classes/rootfs_ipk.bbclass: * Derive image PR from DATE and TIME * Add stamps to do_rootfs task (PR changing will trigger rebuilds instead) 0f5e8d2 multimachine: HOST_OS should be TARGET_OS dec8b8b libnss-mdns: Remove unneeded RRECOMMENDS 5ea6825 Add libglade to RDEPENDS 1f20ade Remove unneeded RRECOMMENDS a26f74c Remove IMAGE_FSTYPE, allow anything to override the default IMAGE_FSTYPES e35e618 Rename rewrite.py to jhbuild2oe.py. 2459137 Bugfix in the jhbuild emitter: wasn't properly emitting for templated packages. 2992d03 task-base: Add usbhost kernel modules b161186 ipkg: Fix a problem with paths lengths triggering the use of GNU tar extensions and ipkg not understanding them ee10576 Move gconf macro into correct location 91e9938 Add gconf macro file so mb builds again with gconf dep 1c6dd82 lock down mb wm and lib version to 1.1 and 1.9 release respectively 2360bfa Add libmatchbox 1.9 bb d24a639 Add mb-wm 1.1 bb 0c8c140 First pass of the emitter for the jhbuild script. c7274f6 Add the partial rewrite of my jhbuild -> oe metadata conversion tool, along with some modulesets for use with it. Will check in the missing piece of the tool shortly. a7d6fa4 Update settings-daemon package (fix version, inherit gconf) - this may have already been done. 150c1cc linux-oz-2.6: Fix a compile failure due to a broken patch 6e6b381 Added scripts dir 5599ea7 glibc: Limit the locales that are generated under qemu. Note this patch totally trashes the other locales and would therefore need refinement for OE. c5b80f3 Add projects.o-hand.com/sources/kernel as a mirror for rpsys.net's patches 5bbdb03 avahi: Remove startup warning if dbus isn't setup yet 9ec8368 Set MAINTAINER for all poky packages to poky@openedhand.com bce1a6b poky.conf: Update zaurusd SRCDATE to benefit from mixer fixes in svn 25f4662 Update debug packages to place symbol files in a .debug directory - fixes certain packaging problems 2e2d422 nokia770.conf: Add nokia770-init to MACHINE_ESSENTIAL_EXTRA_RDEPENDS 09fa84e poky.conf: Bump settings-daemon SRCDATE da38b6e zaurusd: Add missing RDEPEND on xrandr 064c643 matchbox-poky: Remove references to chkhinge26 as zaurusd now handles this. Correct theme key and force gconftool-2 to run on device (at least until we debug other issues) 24a329f settings daemon: Set PV correctly and add inherit gconf ba9da05 and bump up matchbox wm svn date more.. 6dd8fe6 bump up libmatchbox svn date more f14be9a nokia770.conf, ipaq-pxa270.conf: Update after task-machine changes 8ea8ee8 cmx270.conf, qemuarm.conf: Update after task-machine changes 6903177 bump up settings daemon src date 7e3efeb bump up matchbox-poky PR 5921a48 Remove setting of theme on MB command line, leave up to settings daemon 04f418b Comment out gconf schema bits in settings-daemon for now, this is done in matchbox-poky script 30c97f3 Add gconf schema for settings-daemon that sets the default theme 754b301 Add exec to home panel app script so PID gets set as expected and avoid panel timeout 4952c7e Totally rework task handling for machine/distro specific features. Create task-base.bb to handle this and update machine/distro files accordingly. MACHINE_FEATURES and DISTRO_FEATURES together combine to configure the machine specific task-base and other specific tasks can easily be created (task-base-oh-minimal is an exmaple) 36a7962 base.bbclass: Add base_both_contains function for use in task files f059afd zaurus-clamshell: Add working JFFS2 summary image support 0dd5467 linux-oz-2.6: Sync collie defconfig from OE 35eef1a package-index: Make sure the Packages file exists before running ipkg-make-index 60493a3 rootfs_ipk.bbclass: Add context to reported errors 9ec06c2 linux-openzaurus-2.6.17: Fix some issues and make it the default kernel for Zaurii d8201ad udev: Fix inotify ARM syscall issue, removing boot time warning fd6ac12 readme.txt: Update to reflect setdevenv renaming (close #129) e9f80c8 Add GPL/Copyright to poky-init-build-env script e1c8064 add cmx270 macine to local.conf.sample, make qemuarm default 34154bf linux-openzaurus 2.6.17: Sync with OE .dev 031b783 poky.conf: Update versions after pango/atk upgrade 3288e5a pango: 1.10.0 -> 1.10.1 842dac1 atk: 1.10.1 -> 1.10.3 3e472bb base.bbclass: Add base_contains function - Can be used to check if a string is present in a variable. 2ca73b5 Add automatic generation of -dbg packages. These contain the debug symbols that are stripped from binaries and the symbols are linked to the original binaries via the gnu-debuglink section. If the -dbg packages are installed, oprofile and gdb will use them for symbol lookup. 23b93ce rootfs_ipk.bbclass, package-index: With the fixed ipkg-utils there is no need to remove the old Packages file when regenerating the Packages index. This gives a big speed improvement when regenerating images as it doesn't have to open every ipk for its metadata. 2153796 ipkg-utils: Fix a bug in the md5sum field handling and add some extra checks (md5sum, size) to ipkg-make-index when reusing data from the previous package file. f75754d tinderclient.bbclass: Update from .dev 9cf2871 Add missing licence files (COPYING.MIT) 46c6968 Add a check for sourcing present when running poky-init-build-env f6f9596 images: Change to new configuration ee73bdc mtd-utils: Fix PV 96f994c really rename setdevenv 5b9a5c9 rename dc0452c local.conf.sample: Update, cleanup and document a little more 440b33a Add task-oh-devtools and task-oh-testapps to oh-image, conditionally based on DISTRO_TYPE 64f45a4 poky.conf: Don't force DISTRO_TYPE to a value bae63d3 conf/machines: Set IMAGE_FSTYPE correctly for each machine c67f4bc Remove unused jornada7xx machine d95941b Move tasks into packages/tasks, images into packages/images, remove bootstrap-image b2f192f Rename /openembedded/ -> /meta/ 2cf0ead Add linux-cmx270-rp 62e2fd8 Add initial cmx270 2.6.17 kernel f1f7b60 Add initial cmx270 machine conf 37764d2 Bugfix in OEs base.bbclass: files in SRC_URI which reside in WORKDIR resulted in a failure. With this bug fixed, patches within tarballs can be successfully applied to ${S}. 1b95f50 Bitbake: add the ssh fetcher to the MANIFEST. 29427c4 Add initial SSH fetcher to bitbake. 5e32494 poky.conf: Update dates to working SRCDATE (thanks chris\!), fix cairo and glib-2.0-native versions 4e93ecd correct LIBV 2ae56af provide pregenerated gtkbuiltincache.h 2ea49a8 correct libtool patch 35fa11f Added GTK+ 2.10.0 + decairofication patches 36a71a9 added pango 1.13.3 8d90789 Added cairo 1.2.0 as needed by gtk 2.10 eefc8d5 added glib 2.12 (needed for gtk 2.10 + decairoification patches) 1c3a546 bitbake.conf: Add PN to overrides, prefixed by pn- which will allow variables to be overridden on a per package basis from central conf files c79b207 zaurus-clamshell: Disable summary image generation until we can use an mtd-utils that supports it a74991b - Updates Dates svn package - Add Dates 0.1 package - Add gtk-icon-cache bbclass to run gtk-update-icon-cache in postinst/postrm - Update gconf class to add gconf to DEPENDS 5f3d79f poky: ipkg-utils update from upstream OE. Locks down to a specific cvs version rather than floating, which seems to fix some issues with root filesystem population in the build. 9ddd9dc wireless tools: Update 28-pre6 to 29-pre10 to work with 2.6.17 kernel dd126d2 linux-oz-2.6: Make 2.6.17 the default + add a missing 2.6.16 patch f069fc7 poky.conf: Update to latest svn for contacts, dates, eds-dbus and gtk+ 2.6.8, glib-2.0 2.10.3 db9ae5b task-oh: Add less to debug images 669b994 Add less (for debug images) d7a67ba eds-dbus: Simplify staging, remove bogus RDEPENDS, enable camel 0c5090c glib 2.10: Init gatomic before gconvert, fixing crashes on ARM e1e6322 linux-oz-2.6: Sync with OE 3f812f2 Back-port calendar fix from r420, should fix Dates (which needs to be updated) 5426fb4 Add madplay to -extras and create an extras image to include apps in extras 81b93eb packages/meta: Make sdk its own target (oh-image-sdk), refine the oh-image-devel package 38a0601 Remove unneeded packages/meta files ae58f06 linux-openzaurus 2.6.17: Upgrade to latest ASoC fixing several bugs and enabling audio input on the c7x0 a50a614 poky.conf: Use only en_GB locale and set zaurusd SRCDATE bdf4309 Make linux 2.6.17 the default 31997b7 Add lttng-control 0.10 0f6afae task-oh: This has no need for the := operator and which breaks things d4bed91 Simplify zaurus-clamshell-.2.6.conf as package dependencies should handle this for us 7f2982d setdevenv: Update sed to make mutliple replacements in local.conf.sample 8c5be6e xserver-nodm: Run the script in the background so if xtscal locks, the rest of the boot process continues and you can get to a shell. 7869b57 Add linux-openzaurus 2.6.17 4132659 matchbox-poky: Fix postinst to cowkr without gconftool-2 being present on the build machine 51fecbd Remove bad translations from gnome-vfs-dbus and gconf-dbus (to build with newer glib) f3cf5ee Add glib-2.0-native 2.10.3 0d229f1 Inherit gconf in Web package to install schemas properly 8ba09ff Upgrade glib 2.10 to 2.10.3 06b20b3 Add maxdate for disable_orbit.patch 22cd912 linux-oz-2.6: Sync with OE. Includes .bb cleanup, patch classification and poky specific logo handling 7b663c1 task-oh: Move mb-desktop into oh-standard 81ccbbb task-oh: Bump PR c2cbe58 nokia770: Remove detect-stylus 35efc29 tslib: Bump PR 26e03c0 task-oh: Move leafpad to task-oh-standard 46c37c1 xserver-nodm: Fix the calibration issue by reading the system profile 27c8223 udev 092: Fix various issues b738942 die detect-stylus die d1d8277 tslib: Remove hardcoded input event devices and detect-stylus 558f9a2 Add udev 092 01db914 poky.conf: Add poky.bbclass and add to standard mirrors 2f8d4c9 lttng-control: Cleanup .bb file 74858ca base.bbclass: Add gnutls mirrors (from OE thanks to hrw) db303b7 poky.conf: Add an OH TARBALL stash. 243e32f Add linux-nokia770 kernel from OE 7708e32 Remove unneeded rdepends, and change libiconv depends to virtual/libiconv aa5bd2c xserver-omap: Force a shared library configuration (and enable xdmcp) 319e4ef puzzles: Upgrade 6505 -> 6727 e020995 Add xrdb 41abfc2 web: bump SRCDATE to 20060613 8a3e00f detect-stylus: Add for now until I teach udev how to do this instead 156c652 task-oh: Correctly set PACKAGE_ARCH d88be44 poky.conf: Bump SRCDATE for all matchbox packages to today 9077aef libmatchbox: Enable startup-notification 8425269 task-oh: Fix task-oh-standard to append zaurusd properly bc8ad1b bitbake: Update against upstream stable branch (includes srcdate='now' support) 65cef0d poky.conf: Update matchbox-keyboard SRCDATE bdd7bdd kernel.bbclass: Add a postinstall for kernel-image to make sure the corrrect /lib/modules directory exists and to run depmod. This removes modprobe errors when no kernel modules are installed. deba905 poky.conf: Allow PCMCIA_MANAGER to be overridden and bump matchbox-keyboard SRCDATE 0e376c1 matchbox-poky: Remove .svn directories from package 9681ef6 Add matchbox-applet-volume 0.1 b200c92 * openembedded/packages/gtk+: added gtklabel-center.patch 59a49d9 Remove multimachine workarounds now uneeded after the previous checkin 439db20 Change multimachine to a bbclass and update distro configurations. Add multimachine functionlity to cope with packages with machine specific sub packages. Also applied to OE c74733f Fix summary image generation 25fc12c xserver: Sync with OE a50e1d8 linux-libc-headers: Sync with OE 3097ab0 Sync conf and classes with OE - changes have been tested and don't affect poky b77fcc0 Update site files from OE 6c224ad qemu: Update to more recent CVS date and remove no uneeded docs patch 3558352 linux-openzaurus.inc: sync with OE a9a3f11 gcc: sync with OE e98e60b fakeroot: sync with OE f559aff wireless-tools: sync with OE 6b604c3 xournal: sync with OE 4de2c49 matchbox-keyboard: sync with OE f2079fd ncurses: sync with OE 4dd498d xrandr: sync with OE 2af7864 hdparm: sync with OE fba8f7a keymaps: sync with OE 170a50c base-files: sync with OE 3664700 udev: sync /dev/ram changes with OE 2feda9d Add mc to openembedded-extras 3108df8 libdaemon upgrade 0.6 -> 0.10 1cd2445 Create openembedded-extras collection. Disabled by default - see local.conf.sample about how to enable 39811ea qemuarm: No longer generate ext2 images 0a6997f poky: Add some preferred provider defines and clean up the distro file a bit. Should be no behaviour changes. 553b409 Change db-native 4.3.29 -> 4.2.52 to match the none native version 3ed0468 Remove manifest code from base.bbclass, fixing the error shown by the puzzles .bb file 88a2a44 Drop db 3.2.9 efaee39 Fix cvsroot 1cc8b97 libtool: Fix breakage if the compiler flags change ff5ff97 poky: Update to a more recent srcdate for matchbox-keyboard 3f4947c js: Set soname so the package shlibs code works properly, fixing problems with web a187ca1 Set oprofile SRCDATE cc5ca2f linux-openzaurus: Hack integrator to work in RGB mode instead of BGR 0ef1286 tune-arm926ejs: Add comments and switch the default to gcc 3.x f326127 qemu: Add patches to add RGB support and fix some mouse problems 7defc58 Add python+pyhton-pygtk2 632eaf4 lttng: Update lttng-control 0.1 -> 0.6, lttng-viewer 0.34 -> 0.41 and remove now unneeded lttng-modules d9fe26c qemuarm: Generate bzipped tarballs as well as ext2 images 1aa816c Upgrade glib 2.8.x to 2.8.6 7b6ec71 poky: Increase the size of the ext2 rootfs 36efd02 poky-oabi: Add preferred versions for gcc and binutils 4db4ee4 Add make fd320cb Add file (and file-native) fe4f9d5 Add xset a1c2556 avahi: upgrade 0.6.3 -> 0.6.10 (and fix the postinst to run on device) ad4b746 Don't run touchscreen calibration if a touchscreen isn't configured a21cef8 matchbox-poky: Allow the cursor to be shown when using qemuarm 0457b7c Add task-oh-sdk and add it to oh-image-devel e17429e task-oh: Add xset b60d5e0 linux-openzaurus: updates 1827415 gcc 4.0.2: Fix DEPENDS cd21247 Add udev 089 and add /dev/ram to udev autmount blacklist fe23e86 Add binutils 2.16 dc9a195 Work around some multimachine issues for now b9d1ce9 task-oh: Make zaurusd machine specific (its not needed for nokia770 and causes problems with tslib) c9fb913 Provide a path to pkg-config to fix a build failure 7cf612e poky.conf: Make ABI configurable with POKYMODE (oabi or eabi) b1391d0 xserver-kdrive: Add some extra configure options and LDFLAGS (from OE). I'm not sure why we suddenly need them but they make it compile. ce6cc8a Add leafpad 0.8.9 and fix leafpad depends. Also add some missing patches 14fbb7c Add pcmciautils 013 30285dd More packages merging with OE 103c851 Merge distro files from OE 65c790d Update conf file to match packages changes 8cab54b Add zeroconf from OE b4cb437 Merge packages changes from OE into poky. 3baacb4 Add libnss-mdns (for avahi) c4aeea0 busybox 1.00 -> 1.01 d097b90 Remove glibc and binutils cvs versions 62d7919 automake: Sync with OE ba7e2a0 Further site and class updates from OE 572f07a mtd-utils: Upgrade 20050801 -> 20060223 8e898fe Add EABI toolchain 8100c3d poky-oabi: Lock down some further versions d165778 Don't switch to EABI yet 6b703b1 Sync kernel module utils with OE (needed for kernel.bbclass changes) 2622e93 Sync site files with OE 189b9a9 Sync bbclass files with OE 8d41bd1 Sync conf files with OE 0d791a9 poky: Split toolchain options into new files to allow selection of EABI. Bump dates SRCDATE, lock down the xserver SRCDATE. 27dba1e Update to bitbake 1.4.2 (latest stable branch release). This includes the caching speedups ed234ac Add accidentally remove xrandr e7a22e9 xserver-kdrive-common: Remove .svn directories from final package 0be2864 Update gtkhtml2 package for Web a7bfafd Fix dates SRC_URI/S 9629885 Patch to disable G_DISABLE_DEPRECATED for libglade, to build with glib 2.10 78cf831 Patch gconf-dbus to build with glib 2.10 (don't define G_DISABLE_DEPRECATED) e1256b9 Add gtk 2.6.8, with Ross's no-deprecation patch to build with glib 2.10 ed0ece5 Ignore pyc files in lib/bb/fetch 65eed7a Ignore pyc files in lib/bb/fetch ebc8057 poky: Lock down qemu-native cvs date. Correct xcalibrate SRCDATE 19ecdfd Add ipkg to task-oh-base b876d65 xserver-kdriver-common: Fix reference to xrandr 2b24cb3 xrandr - Remove as replaced by libxrandr 09f35c3 qemu-native: Update nodocs patch against cvs changes f3d7f8c Move gdk-pixbuf loaders and pango-modules in oh-base a9f1e28 task-oh: Move ttf-bitstream-vera, xhost and xauth to be in minimal images (fixes minimal image booting issues) 6618118 remove borked 0.16 libxsetting-client 4c4b4bf Add multimachine.conf and binary locale generation by default 2da7286 Fix a linux-openzaurus issue and remove ${MACHINE} from IPKG_ARCHS (its added automatically) 992b477 oh-image metadata rearrangement to support minimal images. Minimal target is oh-image-minimal aa11773 oe/packages: Remove borzoi machine 7891376 oe/conf: Remove borzoi machine 38f54bc hostap: Sync with OE a23e7ee linux-openzaurus: Remove 2.6.15 and sync 2.6.16 with OE be7c4ce qemu: Fix nodocs patch and remove show cursor patch. 46950b4 glibc: Add binary locale generation from OE. Adding ENABLE_BINARY_LOCALE_GENERATION = "1" to local.conf will enable the locale generation to be performed at build time using qemu which avoids length first boot times and OOM errors on the device. db8ae0a qemu: use gcc-3.4 or gcc-3.3 if available, disable doc generation, show a cursor on the SDL window (from mallum, tweaked by me) dbc24a8 libxsettings: Include libxt in DEPENDS as without it, configure pulls in system directories, corrupts its .la files and breaks later packages. Also add version 0.16 from OE. 24b8210 Fix a reference to OEPATH instead of OEROOT spotted by Genesis in #oe. c597a2e Update xlibs to follow restructuring in OE (in preparation for X11R7) 05ff314 Clean up local.conf.sample and poky.conf some-what, use '?=' instead of '=' so all variables can be overriden locally. 2715d18 Add latest cairo (1.0.4) 15484b8 Update gtkhtml2 and Web packages d614461 Use FREEDESKTOP_CVS instead of a hardcoded address b14d256 Remove empty directories b783a3e Move xlibs packages to xlibs/ as per changes in OE 63e2f3e Misc changes to match OE 00f5d77 linux-openzaurus: Sync with OE e847fd9 zaurus-updater: changes from OE 7f60e4b Sync initscripts with OE 5d530ad Update hostap packages from OE 1494095 base-files: Sync with OE for spitz fix bb28692 Sync class files with OE b3f42b7 Sync conf files with OE - includes adding zaurusd to images and fixing PCMCIA_MANAGER handling f7f5460 Dropbear 0.46 -> 0.47 f72d3a8 Add 16bpp fix for libmatchbox for qemu 8742116 Unbreak accidental xserver checkin 91a5b96 Add LTTng packages 1a630d6 glib-2.0: Remove libiconv option as this breaks for everyone except chris 1858d5d Split development tools into separate task and add new oh-image-devel target a37f24f nokia770 machine fixes 168d643 Update tslib-maemo from OE b4352e5 Add 2.6.16 kernel (and include SD card SCR workaround) d843bd3 Remove unused and crack-ridden patches 9b440f7 Remove libcurl and js, web should bring those in 0eeb77b Add gcalctool 9f91026 Depend on dbus, not dbus-0.60 91a8ba4 Remove DBus 0.50 884f570 Remove dbus 0.23 3d54063 quilt, autoconf, automake: Correct native package RDEPENDS 14ed125 Add missing file b26a945 Update to latest bitbake 3cd47ad Add new sanity checking infrstructure and class 78c5069 bitbake: Fix a couple of VAR_${PN} errors reported by ross 8f696d3 Remove dead code 62d5286 Upgrade GTK+ 2.8.9 to 2.8.16 e917da2 Add Pango 1.12.x f12c6c6 Add GLib 2.10.x b58756b Remove dead comment e26a3e2 Add Xournal a33fc07 Remove invalid depends cabdbad Don't assume diet-libx11 has been used, check at build time e65bb68 Add libart-lgpl a3d76d6 Add libgnomecanvas_2.6.1.1 2134d4a Add patch for the treeview in scrollview bug in 2.8 03026fc Bitbake conf updates from OE 3ddfbc7 Bitbake classes updates from OE e6c95ae linux-oz-2.6: Add kernel patch to fix rtc on the arm integrator a03e220 Add qemuarm kernel configuration 04e0939 Add qemu cvs .bb files 7361a54 Add qemuarm machine type 10ec0bc hal: Disable docbook generation. c4ee3a1 udev: Make 084 the default c540e44 Add genext2fs bcd3612 Add zaurusd (remove devmand). 15ea96f autoconf-native: Clear invalid RDEPENDS for -native package 485477e Add multimachine changes from OE 157ff6f Add devmand .bb file e6dc152 linux-oz-2.6: Revamp headphone jack switch handler. 92129ba tslib: Make sure pkgconfig file is handled d2387e1 - Fix glib 2.8 building - Add pcmanfm to task-oh - Add .desktop and icon for pcmanfm - Add missing icons required for pcmanfm to run cb92e3d Missed one gtk_tree_row_reference_get_model in patch (somehow this still compiled...?) 2b7e731 - Add gtkhtml2 SRCDATE to poky.conf - Update to glib 2.8 in poky.conf - Add back-ported pcmanfm (this seems to segfault on the device, backtrace needed) deb4dd0 Fix libcurl RPROVIDES, update gtkhtml2 patches and add web to oh-image aaeed35 Add miissng file for perl d0bf2b3 Fix an bitbake RDEPENDS bug and add a hack to work around quilt-native issues (the alternative is to start creating a load of native packages to map the runtime depends to build time ones). a677585 add missing file for hostap-conf c66704c Various misc metadata fixes to enable poky builds again 5fb35ca Apply more chanegs from OE 42dfbb2 Sync more files with OE dd1b443 Pull conf file updates from OE ce241d7 Update to 1.3.3 release of bitbake b236090 Convert packages CVSDATE -> SRCDATE and standardise some PV fields 6be98ee zaurus-updater: Updates from OE 31116d6 Update bbclasses from OE 9df0203 packages/meta updates after pulling RDEPENDS changes from OE e068eea Update bitbake to latest bitbake svn c6a95b3 linux-oz-2.6: Update defconfigs to sync with OE 62dc8f4 Update bitbake to latest bitbake svn 9a26296 Add db 4.2.52 bb ab72fb9 Move files into trunk to prepare for tagging. 8d190ac Update contacts svn date 16da0a2 linux-oz-2.6: Reference all patches in the archive directory e745d17 chkhinge26: Improve the script so its less verbose ce6bf88 base-files: correct spitz fstab for /dev/hda3 fad9c3d Fix contacts icons once and for all? f54968c Fix SRC_URI of lsof (add OLD/) d452ba2 Add lsof 4fbba63 Add curl (new dependency of Web), fix a fontconfig-native build issue, update gtkhtml2 patches and update to a newer more functional Web snapshot ef60244 Switch back to gtk+ 2.6.7 f4881f3 udev 084: Fix the firmware_helper path 6753d5b linux-oz-2.6: Kernel updates syncing with OE to update the LED patch series and add some misc bugfixes 4a64818 Update to udev 084 from OE. This adds a coldplug script to emulate the calls necessary to load devices already inserted into the system at boot. It also adds a network interface control script. bc4e7ed Add lirc da8ed28 Add libsoup, libspidermonkey, libxml2 cvs, patched gtkhtml2 and web packages 27700c9 Fix db 4.1.25 building with eds-dbus, breaks db3/db4 co-existence 96c29fa Revert my change, gnomevfs needs gnome-mime-data to build 275e035 Fix link c73514c Update eds cvsdate, and fix build 707c6ce Remove gnome-mime-data, it's old-school 6c96daa Take patch from upstream to check Xlib instead of Xt for X presence 88565a7 glibc: Sync with OE to pull in glibc cvs workaround a4b1aab Add gtk-update-icon-cache to FILES_${PN} for gtk 2.8.9 a44b79a Add db 4.3.29 25e1fcc disable cairo usage 6b0f293 Fix xauth cvs date (all packages should be fixed by date now) e01b8f3 matchbox wm, desktop and lib: switch to svn date 20060120 c0c1bdc Add missing disable_orbit patch for eds-dbus 07b2d77 linux-openzaurus: Switch from 2.6.14+2.6.15-rc5 to 2.6.15 7953d83 Disable the need for orbit AM marcros for eds-dbus (and fix some whitespace) ccc65d0 Update poky.conf to move to dbus-0.60 along with the appropriate dbus versions of gnome-vfs and gconf. Also fix the CVSDATES of those packages to known working ones. 8fcb232 Tweak gnome dbus packages slightly. gconf-dbus_cvs is broken for parallel_make. gnome-vfs-dbus_cvs is not the preferred version and we don't want to depend on samba for gnome-vfs-dbus 6af7d32 Remove oprofile and gdb from meta-oh for now. Will add to a separate debug task when we pull the new task handling code from OE f128b1c Add dbus 0.60 00f73b9 Add avahi 0.6.3 abd renive 0.5.2 and 0.6 7c37c29 Remove pointless oh-contacts/dates.png lines eeb0244 Add gconf-vfs_svn and gnome-vfs-dbus_2.8.4.4.bb from OE and add gconf-lossage patch. 3f4950c Use the install path when generating icon caches 33bc34b Fix depends on Contacts (add gnome-vfs) 23604bc openswan: Bump PR 10c13b7 openswan: Add makefile whitespace fix from OE bd813f4 Update 5575ec3 Update patch 35af394 Disable hal usage in gnome-vfs 05b21a5 Update puzzles package (source for r6358 no longer exists, updated to r6505) 6e61ee3 Set gnome-vfs-dbus CVSDATE before dbus 0.60 update, enable contacts gnome-vfs usage again fb9fa71 Don't ignore CVSDATE with svn check-outs f0ecf5b add gtk+2.8.9 and eds-feed (galago) f2bf936 Remove gnome-vfs dependency from contacts (for now) and add oprofile a096c66 Add gtk-engines (untested, DEFAULT_PREFERENCE set to -1) 18999bf Some PACKAGE_ARCH changes to help mutlibuild and misc 6b89cc1 Some PACKAGE_ARCH changes to help mutlibuild and misc 01a805c Set version correctly on Contacts svn bb 77e1cf0 Update gnu-config from OE 569aea6 Update quilt packages from OE e752d6f Fix bitbake svn fetcher filenames 597f73e Add packages for Contacts 0.1 and svn e7cf0cc Correct osso-address book dependencies, add oprofile to poky images, switch to htk+ 2.8.9 e96e69a galago-daemon: fix packaging af9c7ea Fix gconftool call a1ece60 Add avahi 47eec0a Add Alsa support to poky b38f2a5 Merging with Openembedded 8ae1a27 Add osso-addressbook d37555f Switch to pcmciautils instead of pcmcia-cs. Remove the unneeded pcmcia-cs dependency from nokia770.conf 748927f Allow internal kernel hostap module to be used c116253 Correct spitz/borzoi fstab entries 4240633 Update hdparm, initscripts (keymap), module-init-tools 4946096 Update to latest 2.6.15-rc5 kernel 8ddcda3 Update to latest 2.6.15-rc5 kernel 8fd5843 oe/packages Updates from Openembedded 3c470b4 oe/packages Updates from Openembedded f0702a2 oe/classes updates from Openembedded 9e7c699 oe/conf updates from Openembedded cb216ac Sync args to svn f8f6ddf Make poky a distribution in its own right solving several issues. Unfortunately this means everyone needs to change DISTRO=openzaurus-3.5.4 to DISTRO=poky in their build/conf/local.conf files. e5ba6f2 Add gmp and mpfr (needed by gcc 4.0.2) 1a5f0fe Add gcc versions 4.0.2, 3.3.4 and 3.4.4 f0d9a38 gdb: remove arm mapping symbols d4f985f GCC 4 fixes for pcmcia-cs and openswan 7183f62 Update PV format for several matchbox packages 5975a43 dates: run gtk-update-icon-cache on device after install e3d7629 Update patch 64725e1 Add accidently removed module-init-tools bb file 722f400 Add postinst to run gtk-update-icon-cache fddef42 Add postinst to run gtk-update-icon-cache 59f9832 Include gtk-icon-cache in gtk package ab13c9b More merging from OE 1b7578f Add some svn:ignore properties for local.conf, *.pyc and build/tmp 925c447 Updates from OE 46b6d82 Correct the fstab file on spitz e9bd2a7 kernel updates to enable iwmmxt, update power/battery management patches and reorder patches to match mainline submission. Also, defconfig updates for unloved machines b265ed4 Update poky-additions and gpe-preferred-versions so everything should work after the bitbake fix d910c67 Update bitbake to use package name as an override when working out PREFERRED_VERSION 36223e6 Really correct poky-additions and add some further entries c747387 Correct poky-additions 93b34b7 disable howl, enable hal at least for now 2707128 add shared-mime-info for hal 5764026 Remove gnomevfs patches, finally pushed them into svn b6858e3 add libusb for hal 1b134e4 Update the kernel .bb against a good copy rather than one broken by monotone 923c1b0 Remove linux-openzaurus-2.6.14-rc4 and add hal 9a725b7 Update git3 kernel to have working alsa support for both c7x0 and cxx00 :) 5de252f udev: Upgrade to 071 - fixes /dev/input problem with -git3 kernel 3ddb212 xserver: Add apm patches for spitz, akita and borzoi (fix lockup ross saw) 8ac2aa5 Add hdparam and e2fsprogs so spitz images work a618277 Update poky-additions to lock down matchbox svn versions. Change the CVS dates in this file when svn changes to enable updates - better than rebuilding daily c0de0e6 Add linux-2.6.14-git3 kernel. This only works on cxx00 Zaurii at the moment. a521203 eds needs to rdepend on dbus-1, not dbus dbc46ce Update for svn 48eeea5 Add hack patch to totally disable the libdb configure script f7a060b Update patches for latest SVN d1dae06 Add gnome-vfs-dbus (builds correctly, but untested) 9ad36d4 linux-oz-2.6: Update to OE's dev kernel with akita updates c204a1d Add https://bugs.freedesktop.org/show_bug.cgi?id=4537 faster rotated blits patch 4efc667 Remove external_libdb.patch, its integrated into SVN 2cd1383 Fix paths to theme files 47f4e33 Add patch to remove libedataserverui, we don't need it yet 700c2d4 Fix patches for latest SVN b65b0de Fix kernel for cxx00 machine type d3e6b49 Correct the name of the hx2750 defconfig d67f910 Add akita.conf machine definition 70f1fb9 Set gconf key for theme name on install 11c91fb Add galago/libgalago from OE c54a8ad Rename to match general use 1651d41 More merging with OE. Fix settings-daemon depends. ea7da1d More merging with OE. Fix settings-daemon depends. 42974a1 Add whitespace, made this script work for me ab4b8cb Upgrade avahi to 0.5.2 bfea252 More syncing with OE, remove old dbus versions and old avahi version 757723a Sync svn version numbers with OE d153ad5 Add OE version of avahi (0.5.1) cbf3ef9 Merge changes from mainline OE to try and keep us in sync. 562d4d3 matchbox-session: Bump PR 4c10a4f matchbox-session: Make the input controls machine dependent hence adding support for the nokia770. 7469e31 Add libgtkhtml-2.0 bab7394 Fix icons again 5ab96a1 Fix typo (mine -> mime) 94a3b01 Update patch for latest svn ebd7471 - Remove /etc/gtk-2.0/gtkrc that forced Clearlooks - Make matchbox themes without a corresponding gtk theme use Clearlooks - Add settings-daemon, matchbox-config-gtk and leafpad to meta-oh - Add settings-daemon - Add matchbox-config-gtk - Change Leafpad desktop shortcut from 'Leafpad' to 'Notes' 9f6a0e0 Define FRAMES for dates so less interpolation is done between zoom transitions a5a5de3 Switch chkhinge26 to svn 63af8b0 Hack to fix apparent theme race c3acfc2 Add zile df9088c Add leafpad and chkhinge26 to meta-oh a9c1d9d Fix a path 86ac592 Remove some gtk 2.6.7 patches aimed at 240x320 screens that make things look ugly c9b9b5b Add leafpad, a simple gtk text-editor 2b873fe Add opensync file plugin, fix evolution plugin do_install/package 127e3d5 Add opensync (builds, untested) d3fcc57 Add chkhinge86 to matchbox session for now 17cab4c Hack up the handler some more so it roughly works 6a6723b chkhinge26: Correct variable c632d3e added chkhinger26 96b751e Apply e-cal-backend-file.c patch to eds-dbus svn e6e8274 Fix contacts icons (install some of gnome-icon-theme with contacts) e24bd61 Modify calendar file backend not to use gnome-vfs (Dates works now) 9556356 fix type in bb d39fbf0 fix cursor visibility with sledgehammer that is -use_cursor no 7b675ac Add .desktop patch to fix category and single instance 00308d4 Fix broken matchbox-session f852fdb Use clearlooks as the default theme (and install it in oh-image), fix rxvt .desktop category 772002e Add single instance flag to puzzle .desktop generation 0974155 Install rxvt-unicode icon into ${datadir}/pixmaps so matchbox can find it 5216f94 Remove startup-monitor from applets list (I mistakenly put it there previously) facfebe More tweaks - set bg and start startup-monitor 4f60df5 improve desktop icon layout 43749db Make home button get positioned correctly cbd26ee Add Clearlooks default theme 7d6ca97 Package the icon for dates and contacts, add svn version of matchbox-themes-extra fbf2ef9 Change db to 4.1.25, update PR's across the board c125456 Get rid of too small panel icons 5c896a6 Add puzzzles icon. b86b4ae Add minimo (+ deps: zip, libxi). Update puzzzles to include icon. Update meta packages with new programs. 06b04dc Add .desktop for rxvt ac134c0 Add 'home' button to panel hacks f33f340 Add no_gnomevfs2.patch 20c9cf2 Use the result of make dist for contacts, also remove unnecessary define 483a3a3 Remove input manager from session quickly (no PR bump) 8f39e0f Add input manager and startup monitor to poky matchbox session 4504f45 Add contacts eca9d2d Fix puzzles (CFLAGS_prepend doesn't work?) 09af20e Add dates 9243bc3 - Fix gconf staging to install into the right directory - Complete eds-dbus staging 812ddef Bump PR of matchbox-themes-gtk + other meta files 5708e94 dbus-native: Fix staging 8ae5989 Fix packaging for eds-dbus 17a9900 Fix dependencies b3be064 Correct eds to eds-dbus and puzzles-desktop is only an RDEPEND 0bba7f8 puzzles: Add desktop files as a new package puzzles-dekstop. Add this to meta-oh + bump PRs 3ed2b08 puzzles: add gtk+ dependency eca14a6 Add matchbox-applet-inputmanager and matchbox-applet-startup-monitor from OE 83055e0 Update with new package additions 6fb3b69 Add kf, a gtk jabber client 6cc949a Add puzzles 6ff6f31 Add staging for loudmouth 1544e4d Add clearlooks 16d78a9 Add gnutls and loudmouth 137a629 dbus-native: Completely stage the package c309ab8 eds: More updates to try and get it working 156e5b0 eds: Update so it manages to configure. To do this: * soup needed to be disabled * an external db was used which required hacking in * some iconv tests were removed - this now causes a compile failure - suggest copying in a rigged iconv-detect.h file for now * it couldn't find the gnome ac macros - added path to acpath * updated depends and rdepends * disable some references to libgnome * disable some references to gnome-vfs 2c5ba6f Add missing new packages to meta-oh 71c9c36 Add gnome-common for eds-dbus 3fab5dd Add libiconv for eds-dbus as its looking like it will need it df2cf2f Add libfakekey for matchbox packages fddaad5 Add libglade for eds-dbus cb47354 Add usbinit hack to get usbnet connection on 770 (will replace with udev in due course) dd2bd62 Update with extra mb stuff 138dbc6 Improve matchbox defaults f66ce7e base-files: correct nokia770 fstab ec2f15d Change to rxvt-unicode ae628e5 Add missing matchbox packages c335f42 Add xserver-nodm-init script, add udev+sysfsutils to meta-oh, fix typo in xserver-kdrive-common. The script calibrates the ts and starts the xserver but probbably does more than it should have to. 66e9ae7 Add post processing command for nokia770 to correct init problem 9c41ac0 Add post processing command for nokia770 to correct init problem 570ff4f - Bump PR in matchbox-wm - Define X_LIBS in libxsettings-client and startup-notification to stop them adding system dirs to the library path - Add do_stage to matchbox-desktop b433acd mallum is a lemon and cant name files correctly d4b04a5 Add matchbox-poky to oh-meta 13b1438 Add matchbox-poky setup 707eced bump up PR 64ce26b Add Xsession.d file for window manager. Make server DPI more truthful in Xserver 607b12a Add strace, gdb and readline. Update meta-oh.bb to match this. 4a6c9c2 sanitize mb svn bb a little 69ec021 Account for bitbake's broken dependency handling - must only RDEPEND on subpackages 4ab809c Disable pango support in libmatchbox, add gconf dep and enable gconf in matchbox-wm cce4f66 Add gdk-pixbufs and pango-modules to meta-oh 57ea7b3 - Use gtk 2.6.7 as opposed to 2.8.3 - Use dbus 0.50 as opposed to 0.36 - Use svn versions of matchbox apps - Update matchbox svn packages - Add matchbox-common svn package - Build gtk tools with gconf cf9d959 *really* disable gconf-dbus f7b6fee Disable gconf-dbus for now ac9e4d6 Add missing gnu-tar.gz file 26a96fc Updates against mainline OE to fix various issues and make builds work again as a couple of poky changes got lost d18457f Add eds-dbus package (doesn't work) 8d66edc pcmciautils and udev updates. Slowly aiming to get rid of hotplug and pcmcia-cs b4a7122 Updates against mainline OE f9e1d16 Add new version of the Zaurus kernel 0a28d7e Add gconf-dbus 72d61f6 Remove avahi from the image until ipkg can handle it correctly. Tweak spitz kernel generation. 6fa80cb libgtkstylus: correct SCR_URI 25c3c69 Update for new upstream. I am now l33t OE hax0r\! 975a1ba Add ross's libgtkstylus 3e846ba Updates against mainline openembedded + removal of some unneeded files c49400d fix 'if not set then' login in poky-additions.inc 305ac49 Add initial poky prefered versions and naming tweaks 255a4ed Remove gtk xsettings patch. Add dbus 0.36 6de1ae1 Add my comments 893d28f adjust used patches, add README with some thoughts on patches 95efeaf Add gtk+, avahi, dbus-0.34 (.36 coming soon) and dependencies. Fix x11-common breakage. 7755d9d rename x11-common to xserver-kdrive-common 962491e Add x11-common 9ed0d2a Add some extra packages to the image 047f13b Add some notes to README eb7df84 Add nokia770 documentation f32bed3 Add nokia770 machine support files a716d99 more local.conf rejigging ceb7167 also update readme 8e65c87 Make setdevenv automagically setup local.conf if it dont exist d3fa3b8 Remove some inappropriate binaries f54da73 Initial population 4b46c1f Initial population REVERT: 23f0539 kernel-fitimage: Use compressed ramdisks in FIT images if available REVERT: 4cf1170 kernel-fitimage.bbclass: Don't assume KERNEL_IMAGETYPE == fitImage REVERT: 42b1eac kernel-fitimage.bbclass: Allow unset load/entry addresses for ramdisks REVERT: 5f6a847 kernel-fitimage: add initramfs support REVERT: 0b63126 kernel: fitimage: support device tree compiler options REVERT: 545a471 kernel-fitimage.bbclass: do_assemble_fitimage(): cd to $B REVERT: 0a8f54b kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one time REVERT: cdf83a5 util-linux: Disable bfs support REVERT: 696cea9 util-linux: Disable minix support. REVERT: 7260fb8 yocto-poky: Move to import-layers subdir Change-Id: I9e01c95e348eec199c1f73ef42bad62e8772eca0 git-subtree-dir: import-layers/yocto-poky git-subtree-split: 876b0ccf06b40a98f8ff1b08ad74e695c4f8b64a Signed-off-by: Saqib Khan <khansa@us.ibm.com>
Diffstat (limited to 'import-layers')
-rw-r--r--import-layers/yocto-poky/README.hardware198
-rw-r--r--import-layers/yocto-poky/bitbake/LICENSE9
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake7
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-diffsigs16
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-dumpsig8
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-layers1073
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-prserv2
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-selftest63
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitbake-worker103
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/bitdoc2
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/image-writer122
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/toaster97
-rwxr-xr-ximport-layers/yocto-poky/bitbake/bin/toaster-eventreplay222
-rwxr-xr-ximport-layers/yocto-poky/bitbake/contrib/dump_cache.py8
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml9
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml69
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml2
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml19
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml1079
-rw-r--r--import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml70
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/COW.py44
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/__init__.py12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/build.py194
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/cache.py404
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/checksum.py15
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/codeparser.py42
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/command.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/cooker.py600
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/cookerdata.py84
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/daemonize.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/data.py10
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/data_smart.py11
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/event.py101
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/exceptions.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/__init__.py152
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/bzr.py13
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/clearcase.py6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/cvs.py17
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/git.py118
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitannex.py25
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitsm.py23
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/hg.py28
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/local.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/npm.py71
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/osc.py10
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/perforce.py269
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/repo.py15
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/sftp.py8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/ssh.py6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/svn.py15
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/fetch2/wget.py99
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/bb/main.py288
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/monitordisk.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/msg.py12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/parse/ast.py62
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/BBHandler.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py16
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/persist_data.py6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/process.py36
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/progress.py276
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/providers.py7
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/pysh/builtin.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/pysh/interp.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshlex.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshyacc.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/runqueue.py1577
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/server/process.py16
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/server/xmlrpc.py86
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/siggen.py66
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/taskdata.py414
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tests/codeparser.py12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tests/cow.py88
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tests/data.py12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tests/fetch.py58
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tests/parse.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/tinfoil.py46
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/buildinfohelper.py743
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/__init__.py17
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsdialog.py44
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsmessagedialog.py70
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/deployimagedialog.py219
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py172
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/layerselectiondialog.py298
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py437
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/settingsuihelper.py122
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobcolor.py38
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobwidget.py904
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/persistenttooltip.py186
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progress.py23
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progressbar.py59
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/puccho.glade606
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/runningbuild.py551
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/utils.py34
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/depexp.py183
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/goggle.py121
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/knotty.py207
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/ncurses.py8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/toasterui.py87
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/uievent.py6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/ui/uihelper.py17
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bb/utils.py102
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bblayers/__init__.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bblayers/action.py233
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bblayers/common.py33
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bblayers/layerindex.py270
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bblayers/query.py500
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/__init__.py112
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/builder/__init__.py7
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/builder/_html5lib.py71
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/builder/_htmlparser.py56
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/builder/_lxml.py47
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/dammit.py31
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/diagnose.py68
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/element.py346
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/testing.py129
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_builder_registry.py14
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_html5lib.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_htmlparser.py13
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_lxml.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_soup.py107
-rw-r--r--import-layers/yocto-poky/bitbake/lib/bs4/tests/test_tree.py294
-rw-r--r--import-layers/yocto-poky/bitbake/lib/codegen.py8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/ply/yacc.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar.py384
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar/LICENSE.txt52
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar/__init__.py49
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar/compat.py44
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar/progressbar.py315
-rw-r--r--import-layers/yocto-poky/bitbake/lib/progressbar/widgets.py391
-rw-r--r--import-layers/yocto-poky/bitbake/lib/prserv/db.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/prserv/serv.py24
-rw-r--r--import-layers/yocto-poky/bitbake/lib/pyinotify.py256
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcollector/admin.py22
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py49
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py100
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py183
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py84
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0004_auto_20160523_1446.py34
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0005_reorder_buildrequest_states.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0006_brlayer_local_source_dir.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0007_brlayers_optional_gitinfo.py29
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/models.py38
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/tests.py23
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/config.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/log/.create (renamed from import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/__init__.py)0
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/runner.py4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/shellutils.py2
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/run_toastertests.py4
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/toaster_automation_test.py186
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/urlcheck.py4
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/manage.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/README30
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml59
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/poky.xml111
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/settings.xml33
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py334
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0007_auto_20160523_1446.py89
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py39
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0009_target_package_manifest_path.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0010_delete_layer_source_references.py118
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py17
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py62
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0013_recipe_parse_progress_fields.py24
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0014_allow_empty_buildname.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0015_layer_local_source_dir.py19
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/models.py1019
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/orm/tests.py180
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/README28
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py176
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py218
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py104
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py13
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py178
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py222
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py66
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py65
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py215
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py211
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py3
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py113
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py231
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_page.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_sample.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_task_page.py76
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py160
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/README14
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/__init__.py (renamed from import-layers/yocto-poky/meta/lib/oeqa/__init__.py)0
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/buildtest.py134
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py396
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/db/__init__.py (renamed from import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/pointercal)0
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/db/test_db.py55
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/tests/functional/README0
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/api.py831
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/buildtables.py606
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml145
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap-responsive.min.css9
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css6760
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css.map1
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css13
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css.map1
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap3-transition.css238
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/default.css599
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.eotbin20290 -> 20127 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.svg487
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.ttfbin41236 -> 45404 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woffbin23292 -> 23424 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff2bin0 -> 18028 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/html/layer_deps_modal.html38
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings-white.pngbin8777 -> 0 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings.pngbin12799 -> 0 bytes
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.js2363
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js11
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/customrecipe.js36
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js219
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/jsrender.min.js4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js16
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js218
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/libtoaster.js282
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/mrbsection.js180
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js99
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projectpage.js232
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js11
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/table.js191
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js16
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/typeahead.jquery.js1551
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tablefilter.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tables.py253
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/base.html97
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html47
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuildpage.html283
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html44
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html26
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_top.html121
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/bpackage.html108
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builddashboard.html379
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildinfo-toastertable.html25
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html64
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builds-toastertable.html8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildtime.html4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configuration.html71
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configvars.html150
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customise_btn.html6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customrecipe.html235
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html22
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_search_header.html78
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/dirinfo.html38
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/editcustomimage_modal.html67
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/filtersnippet.html93
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/generic-toastertable-page.html2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/importlayer.html290
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing.html23
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layer_btn.html12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html549
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/machine_btn.html10
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/mrb_section.html404
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage.html15
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage_modal.html68
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newproject.html53
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html16
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_detail.html8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_detail_base.html62
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html20
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_tabs.html8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/pkg_add_rm_btn.html12
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/project.html118
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds-toastertable.html67
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds.html4
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectconf.html1965
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projects-toastertable.html58
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projecttopbar.html85
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe.html135
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_btn.html13
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_packages.html38
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html154
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipes.html113
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/gitrev_popover.html8
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_dependencies_popover.html44
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html46
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/target.html131
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/task.html175
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/tasks.html143
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-filter.html32
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-simple.html94
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable.html122
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html10
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py18
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py30
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tests.py166
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py1
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/urls.py81
-rwxr-xr-ximport-layers/yocto-poky/bitbake/lib/toaster/toastergui/views.py1519
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastergui/widgets.py312
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py2
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/get-dburl.py9
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/perf.py6
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings.py78
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings_test.py41
-rw-r--r--import-layers/yocto-poky/bitbake/lib/toaster/toastermain/urls.py4
-rw-r--r--import-layers/yocto-poky/bitbake/toaster-requirements.txt3
-rw-r--r--import-layers/yocto-poky/documentation/Makefile9
-rw-r--r--import-layers/yocto-poky/documentation/bsp-guide/bsp-guide.xml5
-rw-r--r--import-layers/yocto-poky/documentation/bsp-guide/bsp.xml23
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/dev-manual-common-tasks.xml1746
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/dev-manual-model.xml855
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/dev-manual.xml5
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/figures/devtool-add-flow.pngbin179361 -> 177945 bytes
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/figures/devtool-modify-flow.pngbin152662 -> 164192 bytes
-rw-r--r--import-layers/yocto-poky/documentation/dev-manual/figures/devtool-upgrade-flow.pngbin140597 -> 139827 bytes
-rw-r--r--import-layers/yocto-poky/documentation/kernel-dev/kernel-dev-common.xml27
-rw-r--r--import-layers/yocto-poky/documentation/kernel-dev/kernel-dev.xml5
-rw-r--r--import-layers/yocto-poky/documentation/mega-manual/figures/sdk-devtool-upgrade-flow.pngbin0 -> 139827 bytes
-rw-r--r--import-layers/yocto-poky/documentation/mega-manual/mega-manual.xml14
-rw-r--r--import-layers/yocto-poky/documentation/poky.ent16
-rw-r--r--import-layers/yocto-poky/documentation/profile-manual/profile-manual-intro.xml6
-rw-r--r--import-layers/yocto-poky/documentation/profile-manual/profile-manual-usage.xml13
-rw-r--r--import-layers/yocto-poky/documentation/profile-manual/profile-manual.xml5
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/closer-look.xml201
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/faq.xml4
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/figures/build-workspace-directory.png (renamed from import-layers/yocto-poky/documentation/dev-manual/figures/build-workspace-directory.png)bin29627 -> 29627 bytes
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/introduction.xml36
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/migration.xml686
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-classes.xml132
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-devtool-reference.xml607
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-features.xml21
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-manual.xml7
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-qa-checks.xml5
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-structure.xml30
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-tasks.xml284
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-variables.xml1630
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/ref-varlocality.xml6
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/technical-details.xml397
-rw-r--r--import-layers/yocto-poky/documentation/ref-manual/usingpoky.xml783
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-add-flow.pngbin179361 -> 177945 bytes
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-modify-flow.pngbin146467 -> 164192 bytes
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-upgrade-flow.pngbin0 -> 139827 bytes
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-customizing.xml13
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-mars.xml871
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml67
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-extensible.xml2664
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-intro.xml255
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-customization.xsl5
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl6
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-manual.xml11
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-using.xml1549
-rw-r--r--import-layers/yocto-poky/documentation/sdk-manual/sdk-working-projects.xml1460
-rw-r--r--import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-intro.xml7
-rw-r--r--import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml168
-rw-r--r--import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-start.xml71
-rw-r--r--import-layers/yocto-poky/documentation/toaster-manual/toaster-manual.xml5
-rw-r--r--import-layers/yocto-poky/documentation/tools/mega-manual.sed40
-rw-r--r--import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml638
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/distro/include/maintainers.inc319
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/distro/include/poky-floating-revisions.inc1
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/distro/poky-tiny.conf14
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/distro/poky.conf31
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/local.conf.sample3
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/local.conf.sample.extended13
-rw-r--r--import-layers/yocto-poky/meta-poky/conf/toasterconf.json34
-rw-r--r--import-layers/yocto-poky/meta-selftest/lib/devtool/test.py2
-rw-r--r--import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.json6
-rw-r--r--import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.py55
-rw-r--r--import-layers/yocto-poky/meta-selftest/recipes-test/images/wic-image-minimal.bb5
-rw-r--r--import-layers/yocto-poky/meta-skeleton/recipes-skeleton/service/service_0.1.bb2
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/beaglebone.conf9
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/edgerouter.conf8
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86-64.conf4
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86.conf2
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc6
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf3
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py56
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86-64/uClibc.machine69
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine69
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc_git.bbappend1
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.1.bbappend17
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.4.bbappend17
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.8.bbappend26
-rw-r--r--import-layers/yocto-poky/meta/classes/allarch.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/archiver.bbclass42
-rw-r--r--import-layers/yocto-poky/meta/classes/autotools.bbclass112
-rw-r--r--import-layers/yocto-poky/meta/classes/base.bbclass62
-rw-r--r--import-layers/yocto-poky/meta/classes/bash-completion.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/buildhistory.bbclass57
-rw-r--r--import-layers/yocto-poky/meta/classes/buildstats-summary.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/buildstats.bbclass9
-rw-r--r--import-layers/yocto-poky/meta/classes/ccache.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/chrpath.bbclass21
-rw-r--r--import-layers/yocto-poky/meta/classes/cmake.bbclass20
-rw-r--r--import-layers/yocto-poky/meta/classes/cml1.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/core-image.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/cross-canadian.bbclass23
-rw-r--r--import-layers/yocto-poky/meta/classes/cross.bbclass14
-rw-r--r--import-layers/yocto-poky/meta/classes/cve-check.bbclass265
-rw-r--r--import-layers/yocto-poky/meta/classes/devshell.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/distrodata.bbclass1
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils-common-base.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils-native-base.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils-tools.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils3-base.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils3-native-base.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/distutils3.bbclass24
-rw-r--r--import-layers/yocto-poky/meta/classes/externalsrc.bbclass44
-rw-r--r--import-layers/yocto-poky/meta/classes/gobject-introspection-data.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/gobject-introspection.bbclass28
-rw-r--r--import-layers/yocto-poky/meta/classes/grub-efi.bbclass17
-rw-r--r--import-layers/yocto-poky/meta/classes/gtk-doc.bbclass72
-rw-r--r--import-layers/yocto-poky/meta/classes/gtk-immodules-cache.bbclass8
-rw-r--r--import-layers/yocto-poky/meta/classes/gummiboot.bbclass8
-rw-r--r--import-layers/yocto-poky/meta/classes/icecc.bbclass14
-rw-r--r--import-layers/yocto-poky/meta/classes/image-buildinfo.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/image-live.bbclass20
-rw-r--r--import-layers/yocto-poky/meta/classes/image-swab.bbclass94
-rw-r--r--import-layers/yocto-poky/meta/classes/image-vm.bbclass34
-rw-r--r--import-layers/yocto-poky/meta/classes/image.bbclass117
-rw-r--r--import-layers/yocto-poky/meta/classes/image_types.bbclass212
-rw-r--r--import-layers/yocto-poky/meta/classes/image_types_uboot.bbclass20
-rw-r--r--import-layers/yocto-poky/meta/classes/insane.bbclass98
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel-arch.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel-fitimage.bbclass140
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel-module-split.bbclass83
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel-uimage.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel-yocto.bbclass152
-rw-r--r--import-layers/yocto-poky/meta/classes/kernel.bbclass79
-rw-r--r--import-layers/yocto-poky/meta/classes/libc-common.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/libc-package.bbclass48
-rw-r--r--import-layers/yocto-poky/meta/classes/license.bbclass84
-rw-r--r--import-layers/yocto-poky/meta/classes/linuxloader.bbclass8
-rw-r--r--import-layers/yocto-poky/meta/classes/live-vm-common.bbclass8
-rw-r--r--import-layers/yocto-poky/meta/classes/metadata_scm.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/mirrors.bbclass8
-rw-r--r--import-layers/yocto-poky/meta/classes/module.bbclass15
-rw-r--r--import-layers/yocto-poky/meta/classes/multilib_global.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/multilib_header.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/native.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/nativesdk.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/nopackages.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/npm.bbclass22
-rw-r--r--import-layers/yocto-poky/meta/classes/oelint.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/package.bbclass78
-rw-r--r--import-layers/yocto-poky/meta/classes/package_deb.bbclass49
-rw-r--r--import-layers/yocto-poky/meta/classes/package_ipk.bbclass19
-rw-r--r--import-layers/yocto-poky/meta/classes/package_rpm.bbclass12
-rw-r--r--import-layers/yocto-poky/meta/classes/package_tar.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/packagefeed-stability.bbclass252
-rw-r--r--import-layers/yocto-poky/meta/classes/packagegroup.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/patch.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/pixbufcache.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/populate_sdk_base.bbclass40
-rw-r--r--import-layers/yocto-poky/meta/classes/populate_sdk_ext.bbclass267
-rw-r--r--import-layers/yocto-poky/meta/classes/python-dir.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/python3-dir.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/python3native.bbclass14
-rw-r--r--import-layers/yocto-poky/meta/classes/pythonnative.bbclass10
-rw-r--r--import-layers/yocto-poky/meta/classes/qemu.bbclass5
-rw-r--r--import-layers/yocto-poky/meta/classes/qemuboot.bbclass82
-rw-r--r--import-layers/yocto-poky/meta/classes/recipe_sanity.bbclass22
-rw-r--r--import-layers/yocto-poky/meta/classes/report-error.bbclass11
-rw-r--r--import-layers/yocto-poky/meta/classes/rm_work.bbclass17
-rw-r--r--import-layers/yocto-poky/meta/classes/rootfs-postcommands.bbclass59
-rw-r--r--import-layers/yocto-poky/meta/classes/rootfs_rpm.bbclass9
-rw-r--r--import-layers/yocto-poky/meta/classes/sanity.bbclass70
-rw-r--r--import-layers/yocto-poky/meta/classes/scons.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/sdl.bbclass6
-rw-r--r--import-layers/yocto-poky/meta/classes/sip.bbclass61
-rw-r--r--import-layers/yocto-poky/meta/classes/siteinfo.bbclass29
-rw-r--r--import-layers/yocto-poky/meta/classes/spdx.bbclass11
-rw-r--r--import-layers/yocto-poky/meta/classes/sstate.bbclass77
-rw-r--r--import-layers/yocto-poky/meta/classes/staging.bbclass90
-rw-r--r--import-layers/yocto-poky/meta/classes/syslinux.bbclass21
-rw-r--r--import-layers/yocto-poky/meta/classes/systemd-boot.bbclass124
-rw-r--r--import-layers/yocto-poky/meta/classes/systemd.bbclass3
-rw-r--r--import-layers/yocto-poky/meta/classes/terminal.bbclass2
-rw-r--r--import-layers/yocto-poky/meta/classes/testexport.bbclass206
-rw-r--r--import-layers/yocto-poky/meta/classes/testimage.bbclass176
-rw-r--r--import-layers/yocto-poky/meta/classes/testsdk.bbclass16
-rw-r--r--import-layers/yocto-poky/meta/classes/tinderclient.bbclass26
-rw-r--r--import-layers/yocto-poky/meta/classes/toaster.bbclass113
-rw-r--r--import-layers/yocto-poky/meta/classes/toolchain-scripts-base.bbclass11
-rw-r--r--import-layers/yocto-poky/meta/classes/toolchain-scripts.bbclass28
-rw-r--r--import-layers/yocto-poky/meta/classes/uboot-config.bbclass19
-rw-r--r--import-layers/yocto-poky/meta/classes/uboot-extlinux-config.bbclass126
-rw-r--r--import-layers/yocto-poky/meta/classes/uboot-sign.bbclass95
-rw-r--r--import-layers/yocto-poky/meta/classes/update-alternatives.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/update-rc.d.bbclass18
-rw-r--r--import-layers/yocto-poky/meta/classes/useradd-staticids.bbclass75
-rw-r--r--import-layers/yocto-poky/meta/classes/useradd.bbclass88
-rw-r--r--import-layers/yocto-poky/meta/classes/useradd_base.bbclass14
-rw-r--r--import-layers/yocto-poky/meta/classes/utility-tasks.bbclass4
-rw-r--r--import-layers/yocto-poky/meta/classes/utils.bbclass69
-rw-r--r--import-layers/yocto-poky/meta/conf/bitbake.conf64
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/default-distrovars.inc2
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/default-versions.inc5
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/distro_alias.inc14
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/package_regex.inc22
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/security_flags.inc37
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/tclibc-uclibc.inc28
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/tcmode-default.inc24
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/world-broken.inc7
-rw-r--r--import-layers/yocto-poky/meta/conf/distro/include/yocto-uninative.inc6
-rw-r--r--import-layers/yocto-poky/meta/conf/documentation.conf7
-rw-r--r--import-layers/yocto-poky/meta/conf/layer.conf4
-rw-r--r--import-layers/yocto-poky/meta/conf/machine-sdk/i586.conf1
-rw-r--r--import-layers/yocto-poky/meta/conf/machine-sdk/i686.conf1
-rw-r--r--import-layers/yocto-poky/meta/conf/machine-sdk/x86_64.conf1
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/arm/arch-armv7ve.inc19
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-neon.inc2
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc2
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/mips/README19
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/mips/arch-mips.inc39
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc17
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/mips/tune-mips-24k.inc51
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc3
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/qemu.inc2
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/qemuboot-mips.inc8
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/qemuboot-x86.inc15
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r2.inc12
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r6.inc29
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r2.inc84
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r6.inc32
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-ppce500mc.inc3
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-ppce5500.inc3
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/tune-ppce6500.inc3
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/include/x86-base.inc2
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemuarm.conf8
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemuarm64.conf14
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemumips.conf1
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemumips64.conf1
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemuppc.conf8
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemux86-64.conf6
-rw-r--r--import-layers/yocto-poky/meta/conf/machine/qemux86.conf6
-rw-r--r--import-layers/yocto-poky/meta/conf/multilib.conf3
-rw-r--r--import-layers/yocto-poky/meta/conf/sanity.conf2
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/blacklist6
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/filters7
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/whitelist23
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/generic/blacklist2
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/generic/filters10
-rw-r--r--import-layers/yocto-poky/meta/conf/swabber/generic/whitelist15
-rw-r--r--import-layers/yocto-poky/meta/conf/toasterconf.json36
-rw-r--r--import-layers/yocto-poky/meta/files/ext-sdk-prepare.py117
-rw-r--r--import-layers/yocto-poky/meta/files/toolchain-shar-extract.sh29
-rw-r--r--import-layers/yocto-poky/meta/files/toolchain-shar-relocate.sh20
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/buildhistory_analysis.py42
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/classextend.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/classutils.py17
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/copy_buildsystem.py51
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/data.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/distro_check.py88
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/gpg_sign.py7
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/license.py28
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/maketype.py9
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/manifest.py7
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/package.py15
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/package_manager.py515
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/packagedata.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/packagegroup.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/patch.py193
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/path.py63
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/prservice.py6
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/qa.py56
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/recipeutils.py170
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/rootfs.py217
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/sdk.py26
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/sstatesig.py14
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/terminal.py38
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/tests/test_elf.py21
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/tests/test_path.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/types.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oe/utils.py33
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/buildperf/__init__.py19
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/buildperf/base.py551
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/buildperf/test_basic.py127
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/controllers/masterimage.py44
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/oetest.py385
-rwxr-xr-ximport-layers/yocto-poky/meta/lib/oeqa/runexported.py48
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/__init__.py3
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/_ptest.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/buildgalculator.py23
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/buildiptables.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/buildsudoku.py28
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/connman.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/files/test.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/parselogs.py47
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/ping.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/python.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/rpm.py33
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/smart.py47
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/syslog.py13
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/runtime/systemd.py8
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdk/buildgalculator.py27
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdk/buildiptables.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdk/buildsudoku.py26
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdkext/devtool.py90
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt11
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c9
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/sdkext/sdk_update.py3
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/_toaster.py4
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/base.py34
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/bbtests.py11
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/buildoptions.py91
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/devtool.py210
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/eSDK.py103
-rwxr-xr-ximport-layers/yocto-poky/meta/lib/oeqa/selftest/esdk_prepare.py75
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/imagefeatures.py27
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/liboe.py93
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/lic-checksum.py10
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/pkgdata.py56
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/recipetool.py55
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/runtime-test.py105
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/signing.py34
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/sstatetests.py75
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/selftest/wic.py25
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/targetcontrol.py28
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/commands.py71
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/decorators.py40
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/dump.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/git.py68
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/httpserver.py7
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/logparser.py2
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/package_manager.py29
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/qemurunner.py90
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/qemutinyrunner.py16
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/sshcontrol.py116
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/targetbuild.py14
-rw-r--r--import-layers/yocto-poky/meta/lib/oeqa/utils/testexport.py8
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid/0001-Fix-out-of-source-build.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.26.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.27.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/aarch64-initplat.c-fix-const-qualifier.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-Make-setjmp.S-portable-to-ARM.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.3.bb46
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.4.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/files/0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fix-enable_execute_stack-check.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fpmath-sse-387-fix.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch140
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/grub2.inc11
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/grub_2.00.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/grub/grub_git.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/libacpi_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/use_correct_strip_in_cross_environment.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.4.1.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.5.1.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pcmciautils/pcmciautils_018.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/COPYING2
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarm/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemumips/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuppc/pointercalbin36 -> 0 bytes
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86/pointercal1
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal_0.0.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/files/0001-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/systemd-boot.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2016.03.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot.inc132
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d/aarch64-host.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi-ui_0.6.32.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi.inc12
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi_0.6.32.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/0001-configure.ac-install-GtkBuilder-interface-files-for-.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/avahi-fix-resource-unavaiable.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch3
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2775.patch90
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2776.patch123
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/dont-test-on-host.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bind/bind_9.10.3-P3.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5.inc17
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/init2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch26
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb55
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.41.bb55
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome/0001-Port-to-Gtk3.patch277
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-Detect-backtrace-API-availability-before-using-it.patch55
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch118
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/includes.patch423
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/no-version-scripts.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.31.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.33.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp.inc5
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2015-8605.patch99
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2016-2774.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch115
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch78
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch55
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/tweak-to-support-external-bind.patch117
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.3.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.4.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/dhcp/files/dhcrelay.service3
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-4.3.0-musl.patch108
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-fix-building-with-musl.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.4.0.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.7.0.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.3.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.7.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/libpcap/libpcap.inc5
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.15.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.16.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.3.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono.inc9
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono/Revert-test-Convert-to-Python-3.patch1270
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.17.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.18.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_2.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_3.patch329
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_upstream_commit.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch99
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/init2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-cipher.patch118
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-pkcs11.patch70
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.1p2.bb161
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.3p1.bb164
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl.inc53
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/crypto_use_bigint_in_x86-64_perl.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/debian/ca.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh210
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/parallel.patch17
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2g.bb58
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb58
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.78.bb67
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb67
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/socat/socat_1.7.3.1.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch55
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-Reject-a-Credential-with-invalid-passphrase.patch86
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Reject-SET_CRED-commands-with-newline-characters-in-.patch66
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Remove-newlines-from-wpa_supplicant-config-network-o.patch86
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-Reject-SET-commands-with-newline-characters-in-the-s.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/base-files/base-files/profile21
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/base-files/base-files_3.0.14.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/bsd-headers/bsd-headers.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch73
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch72
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch74
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/defconfig2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch90
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-libbb-race.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/busybox_1.24.1.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/files/busybox-syslog.default2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/busybox/files/inittab14
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/busybox/files/mdev4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/0001-uname-report-processor-and-hardware-correctly.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/disable-ls-output-quoting.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_6.9.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_8.25.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus-glib.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.10.bb58
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.6.bb61
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-explicitely-check-stdint.h.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.10.bb181
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.6.bb181
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/0007-dropbear-fix-for-x32-abi.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch48
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/init4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/support-out-of-tree-builds.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2015.71.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2016.74.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/autotools.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/expat-CVE-2015-1283.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat/autotools.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat_2.1.0.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/expat/expat_2.2.0.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/fts/fts.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch (renamed from import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/add-with-bisonlocaledir.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch (renamed from import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/parallel.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/COPYING4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/Makefile.in.in465
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/aclocal.tgzbin39744 -> 0 bytes
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/config.rpath684
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch (renamed from import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in483
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgzbin0 -> 40014 bytes
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath684
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/remove-potcdate.sin (renamed from import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/remove-potcdate.sin)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.4.bb32
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.16.1.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.6.bb115
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb120
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Ignore-y2k-warnings.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch66
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.46.2.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.46.1.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.48.2.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native/fix_for_centos_5.8.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.23.bb58
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.24.bb52
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.24.bb (renamed from import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.23.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-ld.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.24.bb (renamed from import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.23.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.24.bb (renamed from import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.23.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.24.bb (renamed from import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.23.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch93
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0012-Make-ld-version-output-matching-grok-gold-s-output.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch16
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0020-eglibc-cherry-picked-from.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0021-eglibc-Clear-cache-lines-on-ppc8xx.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0023-eglibc-Install-PIC-archives.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0024-eglibc-Forward-port-cross-locale-generation-support.patch566
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-Define-DUMMY_LOCALE_T-if-not-defined.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-eglibc-Forward-port-cross-locale-generation-support.patch566
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-build_local_scope.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.23.bb133
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.24.bb140
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/ifupdown/ifupdown_0.8.2.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_14.0.0.bb120
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb117
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/images/core-image-minimal-initramfs.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install-efi.sh40
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install.sh39
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-live.sh4
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/finish33
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/init4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs62
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb17
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh2
-rwxr-xr-x[-rw-r--r--]import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh4
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh2
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/umountfs2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts_1.0.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/kbd/kbd/run-ptest4
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/kbd/kbd_2.0.3.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/libxml/libxml2/configure.ac-fix-cross-compiling-warning.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.3.bb74
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.4.bb75
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb32
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/meta-environment.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/meta-ide-support.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/signing-keys.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/testexport-tarball.bb58
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/musl/musl.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/musl/musl_git.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160213.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160625.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/netbase/netbase_5.3.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-base.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/readline/readline.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd-compat-units.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd.inc25
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch15
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0014-Make-root-s-home-directory-configurable.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0015-systemd-user-avoid-using-system-auth.patch11
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch68
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0018-make-test-dir-configurable.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch122
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd/udev-re-enable-mount-propagation-for-udevd.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd_229.bb579
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/systemd/systemd_230.bb598
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/funcs474
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/headers156
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/types21
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-config.inc143
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git.inc17
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/0001-Disable-lrount_tes-function.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/locale.cfg3
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/obstack.cfg1
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.distro195
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.machine14
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-initial_git.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-package.inc36
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc.inc168
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc_git.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.1.5.bb107
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.2.bb101
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux.inc19
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_grep_opts.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_sleep_param.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/ptest.patch16
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-native.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-ng-2.16-mount_lock_path.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.27.1.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.28.1.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.2.12.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.0.10.1.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt.inc12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch278
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch128
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt/disable-test.patch47
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.0.10.1.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.2.12.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/apt/files/no-curl.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-include.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.10.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.6.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/fix-script-err-when-processing-libguile.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/redirect-output-dir.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/automake/automake/python-libdir.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.26.inc42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.27.inc44
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.27.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.26.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.27.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.26.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.26.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.27.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0001-Generate-relocatable-SDKs.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0002-configure-widen-the-regexp-for-SH-architectures.patch16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0003-Point-scripts-location-to-libdir.patch12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0005-Explicitly-link-with-libm-on-uclibc.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch1246
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch88
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch72
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-Correct-nios2-_gp-address-computation.patch106
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch100
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch97
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-binutils-mips-gas-pic-relax-linkonce.diff65
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.26.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.27.bb45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-Fixed-Missing-default-value-for-BOOTLOG_DEST.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-collector-Allocate-space-on-heap-for-chunks.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb27
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/fix-symlink-creation-multiple-times.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.4.bb34
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.7.1.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/build-compare_git.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch117
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch361
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.4.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.5.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ccache/files/Revert-Create-man-page-in-the-make-install-from-git-.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.4.3.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.6.1.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake.inc18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/0001-Add-NIOS2-CPU-support.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.4.3.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.6.1.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch135
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.22.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.23.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.1.bb74
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.2.bb71
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.78.1.bb74
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb74
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_4.0.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg.inc17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0001-When-running-do_package_write_deb-we-have-trees-of-h.patch71
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/add_armeb_triplet_entry.patch22
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/fix-abs-redefine.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.4.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.7.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/xattr_ordering.patch219
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb111
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_git.bb111
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch1163
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch129
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Ignore-differences-between-mips-machine-identifiers.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-Ignore-differences-between-mips-machine-identifiers.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch1163
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-fix-a-stack-usage-warning.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-fix-a-stack-usage-warning.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-remove-the-unneed-checking.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-remove-the-unneed-checking.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0003-Add-mips-n64-relocation-format-hack.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0003-Add-mips-n64-relocation-format-hack.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/aarch64_uio.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/arm_backend.diff (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/arm_backend.diff)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/elfcmp-fix-self-comparision.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/fixheadercheck.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/fixheadercheck.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/hppa_backend.diff (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/hppa_backend.diff)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/kfreebsd_path.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/kfreebsd_path.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/m68k_backend.diff (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/m68k_backend.diff)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_backend.diff (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_backend.diff)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_readelf_w.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_readelf_w.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/shadow.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/testsuite-ignore-elflint.diff (renamed from import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/testsuite-ignore-elflint.diff)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/uclibc-support.patch128
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.148.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.164.bb89
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.166.bb89
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/file/file/host-file.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/file/file_5.25.bb47
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/file/file_5.28.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch64
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/flex/flex_2.6.0.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9.inc139
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0002-uclibc-conf.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0003-gcc-uclibc-locale-ctype_touplow_t.patch87
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0004-uclibc-locale.patch2862
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0005-uclibc-locale-no__x.patch257
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0006-uclibc-locale-wchar_fix.patch68
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0007-uclibc-locale-update.patch542
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0008-missing-execinfo_h.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0009-c99-snprintf.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0010-c99-complex-ugly-hack.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0011-index_macro.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0013-libstdc-namespace.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0014-sh-pr24836.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0015-arm-Use-TARGET_ENDIAN_OPTION-for-determining-MULTILI.patch47
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0016-gcc-poison-system-directories.patch190
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0017-gcc-poison-dir-extend.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0018-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch73
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0019-64-bit-multilib-hack.patch82
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0020-optional-libstdc.patch98
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0021-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0022-COLLECT_GCC_OPTIONS.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0023-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch96
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0025-fortran-cross-compile-hack.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0026-libgcc-sjlj-check.patch74
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0027-cpp-honor-sysroot.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0028-MIPS64-Default-to-N64-ABI.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0029-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch228
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0030-gcc-Fix-argument-list-too-long-error.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0031-Disable-sdt.patch113
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0032-libtool.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch102
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0040-fix-g++-sysroot.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0041-libtool-avoid-libdir.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0043-cpp.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0044-gengtypes.patch97
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0046-libatomic-deptracking.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0047-repomembug.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0050-Revert-Use-dbx_reg_number-for-spanning-registers.patch80
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0051-eabispe.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0052-Add-target-hook-to-override-DWARF2-frame-register-si.patch138
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch66
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0055-dwarf-reg-processing-helper.patch148
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0056-define-default-cfa-register-mapping.patch75
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0057-aarch64-config.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-r212171.patch113
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0059-gcc-PR-rtl-optimization-63348.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch55
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0061-target-gcc-includedir.patch81
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0063-nativesdk-gcc-support.patch198
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0064-handle-target-sysroot-multilib.patch88
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0065-gcc-483-universal-initializer-no-warning.patch107
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0066-cxxflags-for-build.patch123
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-gcc-musl-support.patch267
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0068-musl-dynamic-linker.patch205
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0069-musl-no-fixincludes.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0070-libstdc-musl.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0071-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0072-support-ffile-prefix-map.patch284
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0074-fdebug-prefix-map-support-to-remap-relative-path.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3.inc143
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch270
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4.inc146
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0002-uclibc-conf.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0002-uclibc-conf.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0003-gcc-uclibc-locale-ctype_touplow_t.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0004-uclibc-locale.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0004-uclibc-locale.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0005-uclibc-locale-no__x.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0005-uclibc-locale-no__x.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0006-uclibc-locale-wchar_fix.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0006-uclibc-locale-wchar_fix.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0007-uclibc-locale-update.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0007-uclibc-locale-update.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0008-missing-execinfo_h.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0008-missing-execinfo_h.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0009-c99-snprintf.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0009-c99-snprintf.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0010-gcc-poison-system-directories.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0010-gcc-poison-system-directories.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0011-gcc-poison-dir-extend.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0011-gcc-poison-dir-extend.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0013-64-bit-multilib-hack.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0013-64-bit-multilib-hack.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0014-optional-libstdc.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0014-optional-libstdc.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0016-COLLECT_GCC_OPTIONS.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0016-COLLECT_GCC_OPTIONS.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0018-fortran-cross-compile-hack.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0018-fortran-cross-compile-hack.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0019-libgcc-sjlj-check.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0019-libgcc-sjlj-check.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0020-cpp-honor-sysroot.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0020-cpp-honor-sysroot.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0021-MIPS64-Default-to-N64-ABI.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0021-MIPS64-Default-to-N64-ABI.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0023-gcc-Fix-argument-list-too-long-error.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0023-gcc-Fix-argument-list-too-long-error.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0024-Disable-sdt.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0024-Disable-sdt.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0025-libtool.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0025-libtool.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0029-export-CPP.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0029-export-CPP.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0032-Ensure-target-gcc-headers-can-be-included.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0032-Ensure-target-gcc-headers-can-be-included.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0037-aarch64-Add-support-for-musl-ldso.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0037-aarch64-Add-support-for-musl-ldso.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0038-fix-g-sysroot.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0038-fix-g-sysroot.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0040-handle-sysroot-support-for-nativesdk-gcc.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0040-handle-sysroot-support-for-nativesdk-gcc.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0042-Fix-various-_FOR_BUILD-and-related-variables.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0042-Fix-various-_FOR_BUILD-and-related-variables.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0043-libstdc-Support-musl.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0043-libstdc-Support-musl.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch270
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0045-Support-for-arm-linux-musl.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0045-Support-for-arm-linux-musl.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0048-ssp_nonshared.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0048-ssp_nonshared.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0050-powerpc-pass-secure-plt-to-the-linker.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0050-powerpc-pass-secure-plt-to-the-linker.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0052-nios2-use-ret-with-r31.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0052-nios2-use-ret-with-r31.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0054-support-ffile-prefix-map.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0054-support-ffile-prefix-map.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0057-unwind-fix-for-musl.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0057-unwind-fix-for-musl.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0058-fdebug-prefix-map-support-to-remap-relative-path.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0058-fdebug-prefix-map-support-to-remap-relative-path.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0059-libgcc-use-ldflags.patch16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2.inc133
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0002-uclibc-conf.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0003-gcc-uclibc-locale-ctype_touplow_t.patch87
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0004-uclibc-locale.patch2862
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0005-uclibc-locale-no__x.patch257
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0006-uclibc-locale-wchar_fix.patch68
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0007-uclibc-locale-update.patch542
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0008-missing-execinfo_h.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0009-c99-snprintf.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0010-gcc-poison-system-directories.patch192
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0011-gcc-poison-dir-extend.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch73
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0013-64-bit-multilib-hack.patch85
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0014-optional-libstdc.patch125
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0016-COLLECT_GCC_OPTIONS.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch96
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0018-fortran-cross-compile-hack.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0019-cpp-honor-sysroot.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0020-MIPS64-Default-to-N64-ABI.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0021-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch234
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0022-gcc-Fix-argument-list-too-long-error.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0023-Disable-sdt.patch113
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0024-libtool.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0025-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0026-Use-the-multilib-config-files-from-B-instead-of-usin.patch102
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0027-Avoid-using-libdir-from-.la-which-usually-points-to-.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0028-export-CPP.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0030-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0031-Ensure-target-gcc-headers-can-be-included.patch98
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0032-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0033-Don-t-search-host-directory-during-relink-if-inst_pr.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0034-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0035-aarch64-Add-support-for-musl-ldso.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0036-libcc1-fix-libcc1-s-install-path-and-rpath.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0037-handle-sysroot-support-for-nativesdk-gcc.patch213
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch102
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0039-Fix-various-_FOR_BUILD-and-related-variables.patch137
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0041-ssp_nonshared.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch292
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0045-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch125
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch85
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch92
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/CVE-2016-4490.patch290
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-common.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-configure-common.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross.inc10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime.inc61
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_4.9.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_6.2.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-target.inc24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_4.9.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_6.2.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-common.inc21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc.inc12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.4.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_4.9.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_6.2.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.3.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.11.inc (renamed from import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.10.1.inc)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-common.inc33
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.10.1.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.10.1.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.11.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-Use-exported-definitions-of-SIGRTMIN.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-use-asm-sgidefs.h.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch921
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch921
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch2601
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/force-readline-static.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.10.1.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.11.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/git/git.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/git/git_2.7.4.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/git/git_2.9.3.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-64bit.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-turn-off-gc-test.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.11.bb128
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.12.bb121
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.3.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.4.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool.inc30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-perl-check.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-xml-check.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/use-nativeperl.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool_0.51.0.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c/0001-Link-against-libm-when-needed.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c_0.12.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/make/make-4.1/0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch63
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/make/make_4.1.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/make/make_4.2.1.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage/cross-compile.patch89
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage_git.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.40.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.41.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mmc/mmc-utils_git.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_3.9.9.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.11.08.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.12.02.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-re-do-find-ls-code-to-not-fail-on-filenam.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/opkg-build-Exit-when-fail-to-list-files.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-configure.ac-use-pkg-config-for-libsolv.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-libsolv_solver_set_arch_policy-use-correct-logic-dur.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.1.bb75
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.3.bb73
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.24.bb27
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.25.bb27
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid/install-pc.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/maxsize.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.8.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.5.bb35
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.6.bb35
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch2
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch74
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch352
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch114
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch128
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch181
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-gdate-Move-warning-pragma-outside-of-function.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb95
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Don-t-send-SIGUSR1-to-init.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0002-Use-correct-file-descriptor.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch64
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch117
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-group1
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-passwd1
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/moreretries.patch12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo.inc14
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.6.7.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.7.5.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/numpyconfig.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/numpyconfig.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/fix_shebang_f2py.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/_numpyconfig.h32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/_numpyconfig.h32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/_numpyconfig.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/_numpyconfig.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/numpyconfig.h18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/remove-build-path-in-comments.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/remove-build-path-in-comments.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/_numpyconfig.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/config.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/config.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/numpyconfig.h)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python-numpy_1.11.1.bb104
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python3-numpy_1.11.0.bb105
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-3.5-manifest.inc48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-async.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-async_0.6.2.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-dbus_1.2.0.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-docutils_0.12.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-git.inc21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-git_1.0.2.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-git_2.0.7.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb.inc16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb_0.6.4.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch55
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/fix-freetype-includes.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-mako.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.3.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.4.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native/avoid_parallel_make_races_on_pgen.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native/debug.patch17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native/multilib.patch100
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native/nohostlibs.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.11.bb63
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.12.bb61
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-nose_1.3.7.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/_numpyconfig.h31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/add-glibc-check.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/_numpyconfig.h31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/_numpyconfig.h31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/numpyconfig.h17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/_numpyconfig.h31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/_numpyconfig.h31
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy_1.10.4.bb102
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.0.1.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.2.0.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-ptyprocess_0.5.1.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pycairo_1.10.0.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject_3.18.2.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch15
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex_0.9.9.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.5.0.bb (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.4.1.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.4.1.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.5.0.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools.inc12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_19.4.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_22.0.5.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-six.inc16
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-six_1.10.0.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch47
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-improve-error-reporting.patch91
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-locale.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch112
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm_git.bb44
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap.inc19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap_0.9.0.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/CVE-2016-5636.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/avoid_parallel_make_races_on_pgen.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/multilib.patch116
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python/python-fix-CVE-2016-1000110.patch162
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-async_0.6.2.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-dbus_1.2.4.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-docutils_0.12.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-git_2.0.7.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-gitdb_0.6.4.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-mako_1.0.4.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.1.bb79
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.2.bb98
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-nose_1.3.7.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.0.0.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.1.2.bb47
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-pycairo_1.10.0.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch (renamed from import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject_3.20.1.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_19.4.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_22.0.5.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-six_1.10.0.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3-smmap_0.9.0.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/000-cross-compile.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/110-enable-zlib.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/CVE-2016-5636.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch116
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/python3-fix-CVE-2016-1000110.patch148
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/unixccompiler.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3/use_packed_importlib.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.1.bb226
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.2.bb224
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.11.bb173
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.12.bb171
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu-helper/raw2flash.c370
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu.inc32
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/0001-target-mips-add-24KEc-CPU-definition.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-1568.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2197.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2198.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/add-ptest-in-makefile.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/disable-grabs.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch13
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.5.0.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.7.0.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/quilt/quilt.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch63
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch26
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb730
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4.16.bb64
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_2.6.9.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_3.1.2.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.2.bb46
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.5.bb42
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch176
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch117
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch198
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-introduce-libtests.patch306
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-scm_rights.c-use-libtests.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/Makefile-ptest.patch12
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace/update-gawk-paths.patch114
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.11.bb51
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.13.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.3.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.4.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/swabber/swabber-native_git.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/swig/swig.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_230.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb102
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.6.bb97
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/vala/vala.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.30.1.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.32.1.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind/gcc5-port.patch64
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/at/at/configure-fix-with-without-selinux.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.18.bb70
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.20.bb71
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/augeas/augeas.inc30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/add-missing-argz-conditional.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/sepbuildfix.patch22
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/augeas/augeas_1.4.0.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/build-tests.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/string-format.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash/0001-help-fix-printf-format-security-warning.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-builtins.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-intl.patch110
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash/run-ptest20
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash_3.2.48.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bash/bash_4.3.30.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/blktool/blktool_4-7.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20150711.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20160606.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cpio/cpio_v2.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch105
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch15
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb81
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.1.bb81
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cups/cups.inc5
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.3.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.4.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/0001-Unset-need_charset_alias-when-building-for-musl.patch (renamed from import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/0001-Unset-need_charset_alias-when-building-for-musl.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/run-ptest (renamed from import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/run-ptest)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_2.8.1.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.3.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.4.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.2.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.6.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch67
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gawk/gawk_3.1.5.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0001-Bug-696497-Fix-support-for-building-with-no-jbig2-de.patch81
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0002-Bug-696497-part-2-fix-support-for-building-with-a-JP.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-prevent_recompiling.patch105
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/png_mak.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.18.bb107
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.19.bb106
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.23.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.25.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.18.1.4.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.22.3.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.6/wrong-path-fix.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.8/wrong-path-fix.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gzip/gzip.inc5
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.6.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.8.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/hdparm/hdparm_9.48.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/images/core-image-kernel-dev.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libaio/libaio/libaio_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libaio/libaio_0.3.110.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/0001-Set-xattrs-after-setting-times.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2013-0211.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2015-2304.patch152
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/mkdir.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/pkgconfig.patch25
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.1.2.bb71
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.2.1.bb67
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/0001-idn-fix-printf-format-security-warnings.patch181
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.32.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.33.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch254
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-CMakeLists.txt-fix-MAN_INSTALL_DIR.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_0.6.23.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_git.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/libuser/libuser_0.62.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/pkgconfig.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.39.bb76
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.41.bb79
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch5
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list57
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/session9
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/lsof/lsof_4.89.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0001-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0002-Add-knob-to-control-whether-numa-support-should-be-c.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/ltp/ltp_20160126.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mailx/mailx_12.5-5.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.04.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.07.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.15.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.17.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-some-type-comparison-problems.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-raid6check-Fix-if-else-indentation.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.4.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.3.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.5.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch87
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch52
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/files/0001-detect-gold-as-GNU-linker-too.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/files/remove_slang_include.patch16
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.18.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.19.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.18.bb59
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.19.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pam/libpam/crypt_configure.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-no-innetgr.patch97
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch119
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.2.1.bb171
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.3.0.bb169
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pax/pax/pax-3.4_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/pigz/pigz_2.3.3.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.11.bb66
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.12.bb66
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/psmisc/psmisc.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota/0001-Use-NGROUPS_MAX-instead-of-NGROUPS.patch83
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota/0002-Allow-building-on-systems-that-do-not-have-rpc-heade.patch153
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota/0003-Don-t-build-rpc.rquotad-when-disable-rpc-was-request.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota/0004-Fix-warnings-due-to-missing-stdlib.h.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/quota/quota_4.03.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-Fix-stack-overflow-due-to-too-deep-recursion.patch58
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-fix-for-multijob-build.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.3.1.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.4.0.bb52
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch100
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/shadow/shadow-sysroot_4.2.1.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/shadow/shadow.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch218
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.2.4.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.3.0.bb51
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/stat/stat-3.3/fix-security-format.patch68
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/stat/stat_3.3.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.15.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.17p1.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sysklogd/sysklogd.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat.inc1
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.2.0.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.4.0.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tar/tar/remove-gets.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.28.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.29.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016c.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016g.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016c.bb212
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016g.bb213
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch97
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/unzip/unzip_6.0.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.conf42
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.default2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Fix-build-issues-found-with-non-glibc-C-libraries.patch99
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fix-ping-failure.patch79
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fixsepbuild.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init121
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.14.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.15.bb59
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/wget/wget.inc5
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.17.1.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.18.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.1.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/zip/zip.inc26
-rw-r--r--import-layers/yocto-poky/meta/recipes-extended/zip/zip_3.0.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb102
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb102
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.20.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc30
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch95
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.20.2.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch97
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch204
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch52
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch203
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch47
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch96
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb163
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb173
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc9
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc35
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch47
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch60
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch954
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch60
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch118
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb34
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb34
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.9.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch305
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-perl-is-not-found-or-its-version.patch40
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch139
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb52
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb55
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.2.2.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch102
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch501
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb45
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/builder/files/builder_session.sh4
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo_1.14.6.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch143
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch105
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.0.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.16.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.18.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.6.6.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.0.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/cogl/cogl-1.0.inc2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples/configure.in-Fix-string-argument-syntax.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples_1.7.0.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb.inc79
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/bashism.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/compar_fn_t.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/configurefix.patch60
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/fusion.patch36
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/union-sigval.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch116
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb_1.7.7.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.67.bb45
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.70.bb47
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch132
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb50
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.3.bb46
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.5.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/glew/glew_1.13.0.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/glew/glew_2.0.0.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.2.3.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/images/core-image-directfb.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/images/core-image-weston.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_1.5.0.bb46
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_8d+1.4.2.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch69
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.4.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch13
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/obsolete_automake_macros.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.1.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_git.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.1.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch116
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch57
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch119
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch267
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb60
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb59
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc29
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0/fix-build-dir.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/mx/mx.inc7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-directfb.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/pango/pango/0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch147
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.38.1.bb52
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.40.1.bb52
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-missing-include-of-Xutil.h.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit_git.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/ts.conf25
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/tslib.sh8
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib_1.1.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init9
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start69
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch173
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch70
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch53
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb117
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb103
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/Xserver.in12
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/13xdgbasedirs.sh6
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common_0.1.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb51
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver25
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername1
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf1
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in7
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in10
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput/qemuall/pointercal.xinput2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/add-geometry-input-when-calibrating.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xauth_1.0.9.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.4.3.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.1.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.16.0.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.19.0.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-gen8-Fix-the-YUV-RGB-shader.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-uxa-fix-the-call-to-PixmapSyncDirtyHelper-broken-by-.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/sna-Protect-against-ABI-breakage-in-recent-versions-.patch70
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/udev-fstat.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.917.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb/Fix-inconsistent-use-of-tabs-vs.-space.patch62
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.12.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.14.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_git.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.1.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.2.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfont_1.5.1.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxinerama_1.1.3.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.5.0.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.6.1.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxrender_0.9.9.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-v3-test-add-a-check-for-FE_DIVBYZERO.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/mips-export-revert.patch22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.32.8.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.16.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.18.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/dri2proto_git.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.1.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.2.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_git.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.2.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.3.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto.inc26
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Make-whitespace-use-consistent.patch215
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch75
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.11.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.12.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_git.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto/xproto_fix_for_x32.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.28.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.29.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/10-preload-modules.conf2
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc8
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/configure.ac-Use-libsystemd-in-REQUIRED_LIBS-check.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/modesetting_libdrm_requirements.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.0.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.4.bb27
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh13
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/change-cross.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/cleanup.patch621
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/cryptodev/cryptodev.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch54
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch279
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools.inc4
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump52
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump.conf6
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kexec-tools-Refine-kdump-device_tree-sort.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.11.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/kmod/kmod.inc10
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/libpfm/files/fix-misleading-indentation-error.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/libpfm/libpfm4_4.6.0.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb89
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc10
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch25
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch11
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/kernel-devsrc.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dtb.inc18
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dummy.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-dev.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.1.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.4.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.8.bb44
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-Fix-invalid-pointer-free-with-trace-collection.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-lttng-live-Include-sys-param.h-for-MAXNAMLEN-definti.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.3.1.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules_git.bb7
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-error.h-common-error.h.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/Revert-Build-look-for-python-3.0-when-building-pytho.patch30
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest7
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/runtest-2.4.0.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/stop-using-SIGUNUSED.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools_git.bb108
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-add-support-for-aarch64_be.patch17
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust_git.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch51
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/init37
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/oprofileui-server.service6
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server_git.bb34
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui.inc16
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui_git.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/perf/perf.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Avoid-building-docs.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Disable-check-for-polkit-for-UI.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Forward-port-mips-arm-memory-barrier-patches.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-callgraph-Use-U64_TO_POINTER.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-configure-Add-option-to-enable-disable-polkit.patch41
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/gui-argument.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-arm.patch21
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-mips.patch22
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/sysprof/sysprof_git.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch22
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb51
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.2.bb44
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb105
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.1.bb103
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch75
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.2.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch153
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb102
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.2.bb109
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb139
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.1.3.bb142
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/0001-gtk-play-provide-similar-behaviour-for-quit-and-clos.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop2
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch71
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.8.3.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc29
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch32
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-enable-gldeinterlace-on-OpenGL-ES.patch634
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch35
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-glcolorconvert-implement-multiple-render-targets-for.patch244
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch32
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-glshader-add-glBindFragDataLocation.patch77
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch51
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0008-gl-implement-GstGLMemoryEGL.patch495
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0009-glimagesink-Downrank-to-marginal.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.3.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc1
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch20
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch38
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch2
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch143
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch4
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.8.3.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc4
-rw-r--r--[-rwxr-xr-x]import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.8.3.bb17
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.8.3.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc17
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc18
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.8.3.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc21
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.8.3.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch70
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/automake-foreign.patch12
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.24.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8665_8683.patch137
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch195
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch73
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-3186.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5321.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5323.patch107
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb9
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/mpg123/mpg123_1.23.6.bb63
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc9
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch268
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch218
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch18
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch65
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch373
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch83
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch72
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch79
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb49
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.1.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-multimedia/x264/x264_git.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt-sdk.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Set-CC-AR-variable-only-if-it-doesn-t-have-.patch30
-rwxr-xr-ximport-layers/yocto-poky/meta/recipes-rt/rt-tests/files/rt_bmark.py28
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/run-ptest2
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_0.96.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_2.0.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests.inc6
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_0.96.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_2.0.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc25
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/l3afpad/l3afpad_git.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/leafpad/files/leafpad.desktop10
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/leafpad/files/owl-menu.patch63
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb35
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/libowl/libowl_git.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch26
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/0001-Do-nothing-on-delete-event-when-not-STANDALONE.patch60
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/All.directory5
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Applications.directory6
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Games.directory9
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Root.order4
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Settings.directory8
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.1.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb27
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb59
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb54
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-applets-systray-Allow-icons-to-be-smaller.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-showdesktop-Make-sure-active-state-is-initialized.patch50
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch64
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb39
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/index.theme7
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session9
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.1.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/pcmanfm/pcmanfm_1.2.4.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch203
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb73
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb41
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb40
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_git.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch223
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch19
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/musl-fixes.patch48
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/files/ppc-musl-fix.patch26
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-backtrace-on-linux-when-using-glibc.patch39
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-non-glibc-libraries-on-linux.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/clang.patch25
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb88
-rw-r--r--import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.12.5.bb108
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/apr/apr_1.5.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/argp-standalone/argp-standalone_1.3.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.18.1.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.20.1.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core/0001-build-Add-with-systemduserunitdir.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.18.3.bb23
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.20.2.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/atk_2.18.0.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/atk/atk_2.20.0.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/attr/acl.inc3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/attr/acl/run-ptest67
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/attr/attr.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/attr/attr_2.4.47.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.1.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.4.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0001-fix-build-with-musl.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0002-Altera-NIOS2-support.patch71
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/musl_header_fix.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.6.0.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/bmap-tools/bmap-tools_3.2.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.61.0.bb (renamed from import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.60.0.bb)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost-1.60.0.inc19
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost-1.61.0.inc19
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost.inc56
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch45
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch49
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch145
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch60
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/0004-Use-atomic-by-default-when-BOOST_NO_CXX11_HDR_ATOMIC.patch59
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch112
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost_1.60.0.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/boost/boost_1.61.0.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-remove-c-rehash.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates_20160104.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/curl/curl_7.47.1.bb68
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/curl/curl_7.50.1.bb71
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch11
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch10
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db/fix-parallel-build.patch8
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db_5.3.28.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db_6.0.30.bb124
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/db/db_6.0.35.bb122
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.7.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.8.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/enchant/enchant_1.6.0.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.11.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.12.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch (renamed from import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-confiure.ac-Believe-the-cflags-from-environment.patch52
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/amd64.patch (renamed from import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/amd64.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/use-includedir.patch (renamed from import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/use-includedir.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.0.bb33
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.1.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_1.4.7.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.11.bb45
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.14.bb46
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls.inc10
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/0001-Use-correct-include-dir-with-minitasn.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/CVE-2016-7444.patch35
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.4.9.bb8
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.5.3.bb13
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0001-configure-don-t-add-Werror-to-build-flags.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0002-ASN.y-corrected-compiler-warning.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0003-parser_aux-corrected-potential-null-pointer-derefere.patch73
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0004-tools-eliminated-compiler-warnings.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.7.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.9.bb24
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/gpgme/gpgme_1.6.0.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/icu/icu/icu-release-56-1-flagparser-fix.patch24
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/icu/icu_56.1.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/icu/icu_57.1.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.65.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.70.bb15
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.2.bb30
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.3.bb31
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.2.bb32
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.4.bb32
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.2.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.3.bb43
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.7.bb38
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.8.bb37
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch32
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.24.bb76
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.25.bb77
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.4.6.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.5.2.bb14
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libevent/libevent/run-ptest2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch177
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libffi/libffi_3.2.1.bb5
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libfm/libfm_1.2.4.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch140
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/fix-undefined-reference-to-pthread.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt.inc4
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.6.5.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.7.3.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error/0001-libgpg-error-Add-nios2-support.patch46
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.21.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.24.bb53
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch44
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libical/libical_2.0.0.bb10
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.3.bb25
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.4.bb26
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0001-lib-add-utility-function-nl_strerror_l.patch146
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0002-lib-switch-to-using-strerror_l-instead-of-strerror_r.patch403
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0003-src-switch-to-using-strerror_l-instead-of-strerror_r.patch82
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.25.bb42
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.28.bb48
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.38.bb79
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.39.bb81
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy/0001-test-Include-sys-select.h-for-select.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.11.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.13.bb36
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.52.2.bb34
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb35
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Fix-build-on-mips-musl.patch90
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch31
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch2529
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch28
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch42
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch72
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind.inc9
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-Fix-build-on-mips-musl.patch81
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-add-knobs-to-disable-enable-tests.patch69
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-backtrace-Use-only-with-glibc-and-uclibc.patch (renamed from import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-backtrace-Use-only-with-glibc-and-uclibc.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch248
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-x86-Stub-out-x86_local_resume.patch (renamed from import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch (renamed from import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_1.1.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_git.bb29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.1.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.2.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/0001-Use-pkg-config-to-find-gcrypt-and-libxml2.patch130
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/CVE-2015-7995.patch34
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/pkgconfig.patch118
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.28.bb50
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.29.bb50
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libyaml/files/libyaml-CVE-2014-9130.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.6.bb21
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.7.bb20
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/lzo/lzo/run-ptest25
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/lzop/lzop/lzop-1.03-gcc6.patch37
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/lzop/lzop_1.03.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr/long-long-thumb.patch (renamed from import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr-3.1.3/long-long-thumb.patch)0
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.3.bb19
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.4.bb18
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nettle/nettle_2.7.1.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/npth/npth_1.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nspr/nspr_4.12.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss/0001-Fix-build-failure-on-opensuse-13.1.patch27
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch33
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch11
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch23
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss_3.21.bb240
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/nss/nss_3.25.bb242
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/p11-kit/p11-kit_0.22.1.bb22
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/pinentry/pinentry_0.9.2.bb3
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/popt/popt_1.16.bb2
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/ptest-runner/ptest-runner_2.0.bb6
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/serf/serf_1.3.8.bb4
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch30
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/source-highlight/source-highlight_3.1.8.bb28
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch56
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3/fix-disable-static-shell.patch61
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.11.0.bb11
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.14.1.bb12
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/user-creation/xuser-account_0.1.bb1
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/cve-2012-2738.patch136
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/obsolete_automake_macros.patch14
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte.inc15
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch119
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch29
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte_0.28.2.bb16
-rw-r--r--import-layers/yocto-poky/meta/recipes-support/vte/vte_0.44.2.bb43
-rw-r--r--import-layers/yocto-poky/meta/site/arm-common1
-rw-r--r--import-layers/yocto-poky/meta/site/common-linux3
-rw-r--r--import-layers/yocto-poky/meta/site/ix86-common1
-rw-r--r--import-layers/yocto-poky/meta/site/mips64el-linux1
-rw-r--r--import-layers/yocto-poky/meta/site/mipsisa32r6-linux79
-rw-r--r--import-layers/yocto-poky/meta/site/mipsisa32r6el-linux79
-rw-r--r--import-layers/yocto-poky/meta/site/mipsisa64r6-linux83
-rw-r--r--import-layers/yocto-poky/meta/site/mipsisa64r6el-linux83
-rw-r--r--import-layers/yocto-poky/meta/site/nios2-linux1
-rw-r--r--import-layers/yocto-poky/meta/site/sh-common1
-rwxr-xr-ximport-layers/yocto-poky/scripts/bitbake-whatchanged41
-rwxr-xr-ximport-layers/yocto-poky/scripts/buildhistory-collect-srcrevs4
-rwxr-xr-ximport-layers/yocto-poky/scripts/buildhistory-diff4
-rwxr-xr-ximport-layers/yocto-poky/scripts/buildstats-diff564
-rwxr-xr-ximport-layers/yocto-poky/scripts/cleanup-workdir26
-rwxr-xr-ximport-layers/yocto-poky/scripts/combo-layer540
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/bbvars.py62
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/build-perf-test-wrapper.sh153
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/ddimage6
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/devtool-stress.py68
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/graph-tool15
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py55
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/mkefidisk.sh4
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/python/generate-manifest-2.7.py6
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/python/generate-manifest-3.5.py44
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/uncovered39
-rwxr-xr-ximport-layers/yocto-poky/scripts/contrib/verify-homepage.py24
-rwxr-xr-ximport-layers/yocto-poky/scripts/cp-noerror10
-rwxr-xr-ximport-layers/yocto-poky/scripts/create-pull-request87
-rwxr-xr-ximport-layers/yocto-poky/scripts/devtool37
-rwxr-xr-ximport-layers/yocto-poky/scripts/gen-lockedsig-cache25
-rw-r--r--import-layers/yocto-poky/scripts/lib/argparse_oe.py64
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/engine.py110
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/help.py18
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/kernel.py160
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/conf/machine/machine.conf12
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine-standard.scc10
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine.cfg4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend62
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto_4.8.bbappend61
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/files/machine-standard.scc2
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/kernel-list.noinstall4
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend33
-rw-r--r--import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto_4.8.bbappend32
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/__init__.py51
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/build.py2
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/build_image.py136
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/deploy.py143
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/runqemu.py15
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/sdk.py188
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/standard.py752
-rw-r--r--import-layers/yocto-poky/scripts/lib/devtool/upgrade.py127
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/append.py15
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create.py422
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys.py86
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys_python.py100
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create_kernel.py2
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create_kmod.py4
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/create_npm.py125
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/newappend.py15
-rw-r--r--import-layers/yocto-poky/scripts/lib/recipetool/setvar.py2
-rw-r--r--import-layers/yocto-poky/scripts/lib/scriptutils.py15
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks2
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-multi-rootfs.wks2
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk.wks2
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkefidisk.wks4
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkgummidisk.wks2
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/canned-wks/systemd-bootdisk.wks11
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/conf.py2
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/creator.py5
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/engine.py31
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/filemap.py561
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/help.py15
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/imager/baseimager.py5
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/imager/direct.py67
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/ksparser.py31
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/msger.py78
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/partition.py34
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugin.py12
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/pluginbase.py42
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugins/imager/direct_plugin.py3
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-efi.py19
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py6
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py61
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/plugins/source/rawcopy.py9
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/utils/fs_related.py84
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/utils/oe/misc.py22
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/utils/partitionedfs.py52
-rw-r--r--import-layers/yocto-poky/scripts/lib/wic/utils/runner.py6
-rwxr-xr-ximport-layers/yocto-poky/scripts/lnr4
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-build-perf-test211
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-buildenv-internal42
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-check-sstate121
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-git-proxy13
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-gnome-terminal-phonehome10
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-pkgdata-util72
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-publish-sdk2
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-run-native48
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-selftest110
-rwxr-xr-ximport-layers/yocto-poky/scripts/oe-trim-schemas2
-rwxr-xr-ximport-layers/yocto-poky/scripts/oepydevshell-internal.py14
-rwxr-xr-ximport-layers/yocto-poky/scripts/opkg-query-helper.py2
-rw-r--r--import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/main.py.in6
-rw-r--r--import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/parsing.py3
-rwxr-xr-ximport-layers/yocto-poky/scripts/pythondeps4
-rwxr-xr-ximport-layers/yocto-poky/scripts/recipetool66
-rwxr-xr-ximport-layers/yocto-poky/scripts/relocate_sdk.py2
-rwxr-xr-ximport-layers/yocto-poky/scripts/runqemu1519
-rwxr-xr-ximport-layers/yocto-poky/scripts/runqemu-gen-tapdevs46
-rwxr-xr-ximport-layers/yocto-poky/scripts/runqemu-internal717
-rwxr-xr-ximport-layers/yocto-poky/scripts/send-error-report30
-rwxr-xr-ximport-layers/yocto-poky/scripts/swabber-strace-attach31
-rwxr-xr-ximport-layers/yocto-poky/scripts/sysroot-relativelinks.py2
-rwxr-xr-ximport-layers/yocto-poky/scripts/test-dependencies.sh4
-rwxr-xr-ximport-layers/yocto-poky/scripts/test-remote-image12
-rwxr-xr-ximport-layers/yocto-poky/scripts/tiny/dirsize.py22
-rwxr-xr-ximport-layers/yocto-poky/scripts/tiny/ksize.py44
-rwxr-xr-ximport-layers/yocto-poky/scripts/verify-bashisms116
-rwxr-xr-ximport-layers/yocto-poky/scripts/wic50
-rwxr-xr-ximport-layers/yocto-poky/scripts/wipe-sysroot2
-rwxr-xr-ximport-layers/yocto-poky/scripts/yocto-bsp151
-rwxr-xr-ximport-layers/yocto-poky/scripts/yocto-kernel4
-rwxr-xr-ximport-layers/yocto-poky/scripts/yocto-layer4
2659 files changed, 107735 insertions, 77388 deletions
diff --git a/import-layers/yocto-poky/README.hardware b/import-layers/yocto-poky/README.hardware
index 9c74c5d3c..d7e24d228 100644
--- a/import-layers/yocto-poky/README.hardware
+++ b/import-layers/yocto-poky/README.hardware
@@ -77,31 +77,22 @@ variable value corresponding to the device is given in brackets.
===============================
-Intel x86 based PCs and devices (genericx86)
-==========================================
+Intel x86 based PCs and devices (genericx86*)
+=============================================
-The genericx86 MACHINE is tested on the following platforms:
+The genericx86 and genericx86-64 MACHINE are tested on the following platforms:
Intel Xeon/Core i-Series:
- + Intel Romley Server: Sandy Bridge Xeon processor, C600 PCH (Patsburg), (Canoe Pass CRB)
- + Intel Romley Server: Ivy Bridge Xeon processor, C600 PCH (Patsburg), (Intel SDP S2R3)
- + Intel Crystal Forest Server: Sandy Bridge Xeon processor, DH89xx PCH (Cave Creek), (Stargo CRB)
- + Intel Chief River Mobile: Ivy Bridge Mobile processor, QM77 PCH (Panther Point-M), (Emerald Lake II CRB, Sabino Canyon CRB)
- + Intel Huron River Mobile: Sandy Bridge processor, QM67 PCH (Cougar Point), (Emerald Lake CRB, EVOC EC7-1817LNAR board)
- + Intel Calpella Platform: Core i7 processor, QM57 PCH (Ibex Peak-M), (Red Fort CRB, Emerson MATXM CORE-411-B)
- + Intel Nehalem/Westmere-EP Server: Xeon 56xx/55xx processors, 5520 chipset, ICH10R IOH (82801), (Hanlan Creek CRB)
- + Intel Nehalem Workstation: Xeon 56xx/55xx processors, System SC5650SCWS (Greencity CRB)
- + Intel Picket Post Server: Xeon 56xx/55xx processors (Jasper Forest), 3420 chipset (Ibex Peak), (Osage CRB)
- + Intel Storage Platform: Sandy Bridge Xeon processor, C600 PCH (Patsburg), (Oak Creek Canyon CRB)
- + Intel Shark Bay Client Platform: Haswell processor, LynxPoint PCH, (Walnut Canyon CRB, Lava Canyon CRB, Basking Ridge CRB, Flathead Creek CRB)
- + Intel Shark Bay Ultrabook Platform: Haswell ULT processor, Lynx Point-LP PCH, (WhiteTip Mountain 1 CRB)
+ + Intel NUC5 Series - ix-52xx Series SOC (Broadwell)
+ + Intel NUC6 Series - ix-62xx Series SOC (Skylake)
+ + Intel Shumway Xeon Server
Intel Atom platforms:
- + Intel embedded Menlow: Intel Atom Z510/530 CPU, System Controller Hub US15W (Portwell NANO-8044)
- + Intel Luna Pier: Intel Atom N4xx/D5xx series CPU (aka: Pineview-D & -M), 82801HM I/O Hub (ICH8M), (Advantech AIMB-212, Moon Creek CRB)
- + Intel Queens Bay platform: Intel Atom E6xx CPU (aka: Tunnel Creek), Topcliff EG20T I/O Hub (Emerson NITX-315, Crown Bay CRB, Minnow Board)
- + Intel Fish River Island platform: Intel Atom E6xx CPU (aka: Tunnel Creek), Topcliff EG20T I/O Hub (Kontron KM2M806)
- + Intel Cedar Trail platform: Intel Atom N2000 & D2000 series CPU (aka: Cedarview), NM10 Express Chipset (Norco kit BIS-6630, Cedar Rock CRB)
+ + MinnowBoard MAX - E3825 SOC (Bay Trail)
+ + MinnowBoard MAX - Turbot (ADI Engineering) - E3826 SOC (Bay Trail)
+ - These boards can be either 32bot or 64bit modes depending on firmware
+ - See minnowboard.org for details
+ + Intel Braswell SOC
and is likely to work on many unlisted Atom/Core/Xeon based devices. The MACHINE
type supports ethernet, wifi, sound, and Intel/vesa graphics by default in
@@ -136,53 +127,14 @@ USB Device:
device, but the idea is to force BIOS to read the Cylinder/Head/Sector
geometry from the device.
- 2. Without such an option, the BIOS generally boots the device in USB-ZIP
- mode. To write an image to a USB device that will be bootable in
- USB-ZIP mode, carry out the following actions:
+ 2. Use a ".wic" image with an EFI partition
- a. Determine the geometry of your USB device using fdisk:
+ a) With a default grub-efi bootloader:
+ # dd if=core-image-minimal-genericx86-64.wic of=/dev/sdb
- # fdisk /dev/sdb
- Command (m for help): p
-
- Disk /dev/sdb: 4011 MB, 4011491328 bytes
- 124 heads, 62 sectors/track, 1019 cylinders, total 7834944 sectors
- ...
-
- Command (m for help): q
-
- b. Configure the USB device for USB-ZIP mode:
-
- # mkdiskimage -4 /dev/sdb 1019 124 62
-
- Where 1019, 124 and 62 are the cylinder, head and sectors/track counts
- as reported by fdisk (substitute the values reported for your device).
- When the operation has finished and the access LED (if any) on the
- device stops flashing, remove and reinsert the device to allow the
- kernel to detect the new partition layout.
-
- c. Copy the contents of the image to the USB-ZIP mode device:
-
- # mkdir /tmp/image
- # mkdir /tmp/usbkey
- # mount -o loop core-image-minimal-genericx86.hddimg /tmp/image
- # mount /dev/sdb4 /tmp/usbkey
- # cp -rf /tmp/image/* /tmp/usbkey
-
- d. Install the syslinux boot loader:
-
- # syslinux /dev/sdb4
-
- e. Unmount everything:
-
- # umount /tmp/image
- # umount /tmp/usbkey
-
- Install the boot device in the target board and configure the BIOS to boot
- from it.
-
- For more details on the USB-ZIP scenario, see the syslinux documentation:
- http://git.kernel.org/?p=boot/syslinux/syslinux.git;a=blob_plain;f=doc/usbkey.txt;hb=HEAD
+ b) Use systemd-boot instead
+ - Build an image with EFI_PROVIDER="systemd-boot" then use the above
+ dd command to write the image to a USB stick.
Texas Instruments Beaglebone (beaglebone)
@@ -208,59 +160,17 @@ this, issue the following commands from the u-boot prompt:
To further tailor these instructions for your board, please refer to the
documentation at http://www.beagleboard.org/bone and http://www.beagleboard.org/black
-From a Linux system with access to the image files perform the following steps
-as root, replacing mmcblk0* with the SD card device on your machine (such as sdc
-if used via a usb card reader):
-
- 1. Partition and format an SD card:
- # fdisk -lu /dev/mmcblk0
-
- Disk /dev/mmcblk0: 3951 MB, 3951034368 bytes
- 255 heads, 63 sectors/track, 480 cylinders, total 7716864 sectors
- Units = sectors of 1 * 512 = 512 bytes
-
- Device Boot Start End Blocks Id System
- /dev/mmcblk0p1 * 63 144584 72261 c Win95 FAT32 (LBA)
- /dev/mmcblk0p2 144585 465884 160650 83 Linux
-
- # mkfs.vfat -F 16 -n "boot" /dev/mmcblk0p1
- # mke2fs -j -L "root" /dev/mmcblk0p2
-
- The following assumes the SD card partitions 1 and 2 are mounted at
- /media/boot and /media/root respectively. Removing the card and reinserting
- it will do just that on most modern Linux desktop environments.
-
- The files referenced below are made available after the build in
- build/tmp/deploy/images.
-
- 2. Install the boot loaders
- # cp MLO-beaglebone /media/boot/MLO
- # cp u-boot-beaglebone.img /media/boot/u-boot.img
-
- 3. Install the root filesystem
- # tar x -C /media/root -f core-image-$IMAGE_TYPE-beaglebone.tar.bz2
+From a Linux system with access to the image files perform the following steps:
- 4. If using core-image-base or core-image-sato images, the SD card is ready
- and rootfs already contains the kernel, modules and device tree (DTB)
- files necessary to be booted with U-boot's default configuration, so
- skip directly to step 8.
- For core-image-minimal, proceed through next steps.
+ 1. Build an image. For example:
- 5. If using core-image-minimal rootfs, install the modules
- # tar x -C /media/root -f modules-beaglebone.tgz
-
- 6. If using core-image-minimal rootfs, install the kernel zImage into /boot
- directory of rootfs
- # cp zImage-beaglebone.bin /media/root/boot/zImage
+ $ bitbake core-image-minimal
- 7. If using core-image-minimal rootfs, also install device tree (DTB) files
- into /boot directory of rootfs
- # cp zImage-am335x-bone.dtb /media/root/boot/am335x-bone.dtb
- # cp zImage-am335x-boneblack.dtb /media/root/boot/am335x-boneblack.dtb
+ 2. Use the "dd" utility to write the image to the SD card. For example:
- 8. Unmount the SD partitions, insert the SD card into the Beaglebone, and
- boot the Beaglebone
+ # dd core-image-minimal-beaglebone.wic of=/dev/sdb
+ 3. Insert the SD card into the Beaglebone and boot the board.
Freescale MPC8315E-RDB (mpc8315e-rdb)
=====================================
@@ -391,75 +301,25 @@ Load the kernel, and boot the system as follows:
=> tftp tftp $loadaddr vmlinux
=> bootoctlinux $loadaddr coremask=0x3 root=/dev/nfs rw nfsroot=<nfsroot ip>:<rootfs path> ip=<board ip>:<server ip>:<gateway ip>:<netmask>:edgerouter:eth0:off mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)
---- Booting from USB root ---
+--- Booting from USB disk ---
To boot from the USB disk, you either need to remove it from the edgerouter
box and populate it from another computer, or use a previously booted NFS
image and populate from the edgerouter itself.
-Type 1: Mounted USB disk
-------------------------
-
-To boot from the USB disk there are two available partitions on the factory
-USB storage. The rest of this guide assumes that these partitions are left
-intact. If you change the partition scheme, you must update your boot method
-appropriately.
-
-The standard partitions are:
-
- - 1: vfat partition containing factory kernels
- - 2: ext3 partition for the root filesystem.
-
-You can place the kernel on either partition 1, or partition 2, but the roofs
-must go on partition 2 (due to its size).
-
-Note: If you place the kernel on the ext3 partition, you must re-create the
- ext3 filesystem, since the factory u-boot can only handle 128 byte inodes and
- cannot read the partition otherwise.
+Type 1: Use partitioned image
+-----------------------------
Steps:
1. Remove the USB disk from the edgerouter and insert it into a computer
that has access to your build artifacts.
- 2. Copy the kernel image to the USB storage (assuming discovered as 'sdb' on
- the development machine):
-
- 2a) if booting from vfat
-
- # mount /dev/sdb1 /mnt
- # cp tmp/deploy/images/edgerouter/vmlinux /mnt
- # umount /mnt
-
- 2b) if booting from ext3
-
- # mkfs.ext3 -I 128 /dev/sdb2
- # mount /dev/sdb2 /mnt
- # mkdir /mnt/boot
- # cp tmp/deploy/images/edgerouter/vmlinux /mnt/boot
- # umount /mnt
-
- 3. Extract the rootfs to the USB storage ext3 partition
-
- # mount /dev/sdb2 /mnt
- # tar -xvjpf core-image-minimal-XXX.tar.bz2 -C /mnt
- # umount /mnt
-
- 4. Reboot the board and press a key on the terminal when prompted to get to the U-Boot
- command line:
-
- 5. Load the kernel and boot:
-
- 5a) vfat boot
-
- => fatload usb 0:1 $loadaddr vmlinux
+ 2. Flash the image.
- 5b) ext3 boot
+ # dd core-image-minimal-edgerouter.wic of=/dev/sdb
- => ext2load usb 0:2 $loadaddr boot/vmlinux
-
- => bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rw rootwait mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)
-
+ 3. Insert USB disk into the edgerouter and boot it.
Type 2: NFS
-----------
diff --git a/import-layers/yocto-poky/bitbake/LICENSE b/import-layers/yocto-poky/bitbake/LICENSE
index a57f9a419..5d4a4c2a8 100644
--- a/import-layers/yocto-poky/bitbake/LICENSE
+++ b/import-layers/yocto-poky/bitbake/LICENSE
@@ -5,8 +5,13 @@ The following external components are distributed with this software:
* The Toaster Simple UI application is based upon the Django project template, the files of which are covered by the BSD license and are copyright (c) Django Software
Foundation and individual contributors.
-* Twitter Bootstrap (including Glyphicons), redistributed under the Apache License 2.0.
-
+* Twitter Bootstrap (including Glyphicons), redistributed under the MIT license
* jQuery is redistributed under the MIT license.
+* Twitter typeahead.js redistributed under the MIT license. Note that the JS source has one small modification, so the full unminified file is currently included to make it obvious where this is.
+
+* jsrender is redistributed under the MIT license.
+
* QUnit is redistributed under the MIT license.
+
+* Font Awesome fonts redistributed under the SIL Open Font License 1.1
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake b/import-layers/yocto-poky/bitbake/bin/bitbake
index b03683e12..2a4fc7203 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -35,7 +35,10 @@ except RuntimeError as exc:
from bb import cookerdata
from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
-__version__ = "1.30.0"
+if sys.getfilesystemencoding() != "utf-8":
+ sys.exit("Please use a locale setting which supports utf-8.\nPython can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.")
+
+__version__ = "1.32.0"
if __name__ == "__main__":
if __version__ != bb.__version__:
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-diffsigs b/import-layers/yocto-poky/bitbake/bin/bitbake-diffsigs
index 196f0b73e..527d2c7a9 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-diffsigs
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-diffsigs
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# bitbake-diffsigs
# BitBake task signature data comparison utility
@@ -24,6 +24,7 @@ import warnings
import fnmatch
import optparse
import logging
+import pickle
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
@@ -95,7 +96,7 @@ def find_compare_task(bbhandler, pn, taskname):
# Recurse into signature comparison
output = bb.siggen.compare_sigfiles(latestfiles[0], latestfiles[1], recursecb)
if output:
- print '\n'.join(output)
+ print('\n'.join(output))
sys.exit(0)
@@ -114,14 +115,13 @@ parser.add_option("-t", "--task",
options, args = parser.parse_args(sys.argv)
if options.taskargs:
- tinfoil = bb.tinfoil.Tinfoil()
- tinfoil.prepare(config_only = True)
- find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1])
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.prepare(config_only=True)
+ find_compare_task(tinfoil, options.taskargs[0], options.taskargs[1])
else:
if len(args) == 1:
parser.print_help()
else:
- import cPickle
try:
if len(args) == 2:
output = bb.siggen.dump_sigfile(sys.argv[1])
@@ -130,9 +130,9 @@ else:
except IOError as e:
logger.error(str(e))
sys.exit(1)
- except cPickle.UnpicklingError, EOFError:
+ except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying sigdata/siginfo files')
sys.exit(1)
if output:
- print '\n'.join(output)
+ print('\n'.join(output))
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-dumpsig b/import-layers/yocto-poky/bitbake/bin/bitbake-dumpsig
index 656d93a5a..58ba1cad0 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-dumpsig
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-dumpsig
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# bitbake-dumpsig
# BitBake task signature dump utility
@@ -23,6 +23,7 @@ import sys
import warnings
import optparse
import logging
+import pickle
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
@@ -51,15 +52,14 @@ options, args = parser.parse_args(sys.argv)
if len(args) == 1:
parser.print_help()
else:
- import cPickle
try:
output = bb.siggen.dump_sigfile(args[1])
except IOError as e:
logger.error(str(e))
sys.exit(1)
- except cPickle.UnpicklingError, EOFError:
+ except (pickle.UnpicklingError, EOFError):
logger.error('Invalid signature data - ensure you are specifying a sigdata/siginfo file')
sys.exit(1)
if output:
- print '\n'.join(output)
+ print('\n'.join(output))
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-layers b/import-layers/yocto-poky/bitbake/bin/bitbake-layers
index d47a6690e..946def220 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-layers
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-layers
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# This script has subcommands which operate against your bitbake layers, either
# displaying useful information, or acting against them.
@@ -23,1048 +23,105 @@
import logging
import os
import sys
-import fnmatch
-from collections import defaultdict
import argparse
-import re
-import httplib, urlparse, json
-import subprocess
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
sys.path[0:0] = [os.path.join(topdir, 'lib')]
-import bb.cache
-import bb.cooker
-import bb.providers
-import bb.utils
import bb.tinfoil
+def tinfoil_init(parserecipes):
+ import bb.tinfoil
+ tinfoil = bb.tinfoil.Tinfoil(tracking=True)
+ tinfoil.prepare(not parserecipes)
+ tinfoil.logger.setLevel(logger.getEffectiveLevel())
+ return tinfoil
+
+
def logger_create(name, output=sys.stderr):
logger = logging.getLogger(name)
- console = logging.StreamHandler(output)
- format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
- if output.isatty():
- format.enable_color()
- console.setFormatter(format)
- logger.addHandler(console)
+ loggerhandler = logging.StreamHandler(output)
+ loggerhandler.setFormatter(logging.Formatter("%(levelname)s: %(message)s"))
+ logger.addHandler(loggerhandler)
logger.setLevel(logging.INFO)
return logger
-logger = logger_create('bitbake-layers', sys.stdout)
-
-class UserError(Exception):
- pass
-
-class Commands():
- def __init__(self):
- self.bbhandler = None
- self.bblayers = []
-
- def init_bbhandler(self, config_only = False):
- if not self.bbhandler:
- self.bbhandler = bb.tinfoil.Tinfoil(tracking=True)
- self.bblayers = (self.bbhandler.config_data.getVar('BBLAYERS', True) or "").split()
- self.bbhandler.prepare(config_only)
- layerconfs = self.bbhandler.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS', self.bbhandler.config_data)
- self.bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.iteritems()}
-
-
- def do_show_layers(self, args):
- """show current configured layers"""
- self.init_bbhandler(config_only = True)
- logger.plain("%s %s %s" % ("layer".ljust(20), "path".ljust(40), "priority"))
- logger.plain('=' * 74)
- for layer, _, regex, pri in self.bbhandler.cooker.recipecache.bbfile_config_priorities:
- layerdir = self.bbfile_collections.get(layer, None)
- layername = self.get_layer_name(layerdir)
- logger.plain("%s %s %d" % (layername.ljust(20), layerdir.ljust(40), pri))
-
-
- def do_add_layer(self, args):
- """Add a layer to bblayers.conf
-
-Adds the specified layer to bblayers.conf
-"""
- layerdir = os.path.abspath(args.layerdir)
- if not os.path.exists(layerdir):
- sys.stderr.write("Specified layer directory doesn't exist\n")
- return 1
-
- layer_conf = os.path.join(layerdir, 'conf', 'layer.conf')
- if not os.path.exists(layer_conf):
- sys.stderr.write("Specified layer directory doesn't contain a conf/layer.conf file\n")
- return 1
-
- bblayers_conf = os.path.join('conf', 'bblayers.conf')
- if not os.path.exists(bblayers_conf):
- sys.stderr.write("Unable to find bblayers.conf\n")
- return 1
-
- (notadded, _) = bb.utils.edit_bblayers_conf(bblayers_conf, layerdir, None)
- if notadded:
- for item in notadded:
- sys.stderr.write("Specified layer %s is already in BBLAYERS\n" % item)
-
-
- def do_remove_layer(self, args):
- """Remove a layer from bblayers.conf
-
-Removes the specified layer from bblayers.conf
-"""
- bblayers_conf = os.path.join('conf', 'bblayers.conf')
- if not os.path.exists(bblayers_conf):
- sys.stderr.write("Unable to find bblayers.conf\n")
- return 1
-
- if args.layerdir.startswith('*'):
- layerdir = args.layerdir
- elif not '/' in args.layerdir:
- layerdir = '*/%s' % args.layerdir
- else:
- layerdir = os.path.abspath(args.layerdir)
- (_, notremoved) = bb.utils.edit_bblayers_conf(bblayers_conf, None, layerdir)
- if notremoved:
- for item in notremoved:
- sys.stderr.write("No layers matching %s found in BBLAYERS\n" % item)
- return 1
-
-
- def get_json_data(self, apiurl):
- proxy_settings = os.environ.get("http_proxy", None)
- conn = None
- _parsedurl = urlparse.urlparse(apiurl)
- path = _parsedurl.path
- query = _parsedurl.query
- def parse_url(url):
- parsedurl = urlparse.urlparse(url)
- if parsedurl.netloc[0] == '[':
- host, port = parsedurl.netloc[1:].split(']', 1)
- if ':' in port:
- port = port.rsplit(':', 1)[1]
- else:
- port = None
- else:
- if parsedurl.netloc.count(':') == 1:
- (host, port) = parsedurl.netloc.split(":")
- else:
- host = parsedurl.netloc
- port = None
- return (host, 80 if port is None else int(port))
-
- if proxy_settings is None:
- host, port = parse_url(apiurl)
- conn = httplib.HTTPConnection(host, port)
- conn.request("GET", path + "?" + query)
- else:
- host, port = parse_url(proxy_settings)
- conn = httplib.HTTPConnection(host, port)
- conn.request("GET", apiurl)
-
- r = conn.getresponse()
- if r.status != 200:
- raise Exception("Failed to read " + path + ": %d %s" % (r.status, r.reason))
- return json.loads(r.read())
-
-
- def get_layer_deps(self, layername, layeritems, layerbranches, layerdependencies, branchnum, selfname=False):
- def layeritems_info_id(items_name, layeritems):
- litems_id = None
- for li in layeritems:
- if li['name'] == items_name:
- litems_id = li['id']
- break
- return litems_id
-
- def layerbranches_info(items_id, layerbranches):
- lbranch = {}
- for lb in layerbranches:
- if lb['layer'] == items_id and lb['branch'] == branchnum:
- lbranch['id'] = lb['id']
- lbranch['vcs_subdir'] = lb['vcs_subdir']
- break
- return lbranch
-
- def layerdependencies_info(lb_id, layerdependencies):
- ld_deps = []
- for ld in layerdependencies:
- if ld['layerbranch'] == lb_id and not ld['dependency'] in ld_deps:
- ld_deps.append(ld['dependency'])
- if not ld_deps:
- logger.error("The dependency of layerDependencies is not found.")
- return ld_deps
-
- def layeritems_info_name_subdir(items_id, layeritems):
- litems = {}
- for li in layeritems:
- if li['id'] == items_id:
- litems['vcs_url'] = li['vcs_url']
- litems['name'] = li['name']
- break
- return litems
-
- if selfname:
- selfid = layeritems_info_id(layername, layeritems)
- lbinfo = layerbranches_info(selfid, layerbranches)
- if lbinfo:
- selfsubdir = lbinfo['vcs_subdir']
- else:
- logger.error("%s is not found in the specified branch" % layername)
- return
- selfurl = layeritems_info_name_subdir(selfid, layeritems)['vcs_url']
- if selfurl:
- return selfurl, selfsubdir
- else:
- logger.error("Cannot get layer %s git repo and subdir" % layername)
- return
- ldict = {}
- itemsid = layeritems_info_id(layername, layeritems)
- if not itemsid:
- return layername, None
- lbid = layerbranches_info(itemsid, layerbranches)
- if lbid:
- lbid = layerbranches_info(itemsid, layerbranches)['id']
- else:
- logger.error("%s is not found in the specified branch" % layername)
- return None, None
- for dependency in layerdependencies_info(lbid, layerdependencies):
- lname = layeritems_info_name_subdir(dependency, layeritems)['name']
- lurl = layeritems_info_name_subdir(dependency, layeritems)['vcs_url']
- lsubdir = layerbranches_info(dependency, layerbranches)['vcs_subdir']
- ldict[lname] = lurl, lsubdir
- return None, ldict
-
-
- def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer):
- layername = self.get_layer_name(url)
- if os.path.splitext(layername)[1] == '.git':
- layername = os.path.splitext(layername)[0]
- repodir = os.path.join(fetchdir, layername)
- layerdir = os.path.join(repodir, subdir)
- if not os.path.exists(repodir):
- if fetch_layer:
- result = subprocess.call('git clone %s %s' % (url, repodir), shell = True)
- if result:
- logger.error("Failed to download %s" % url)
- return None, None
- else:
- return layername, layerdir
- else:
- logger.plain("Repository %s needs to be fetched" % url)
- return layername, layerdir
- elif os.path.exists(layerdir):
- return layername, layerdir
- else:
- logger.error("%s is not in %s" % (url, subdir))
- return None, None
-
-
- def do_layerindex_fetch(self, args):
- """Fetches a layer from a layer index along with its dependent layers, and adds them to conf/bblayers.conf.
-"""
- self.init_bbhandler(config_only = True)
- apiurl = self.bbhandler.config_data.getVar('BBLAYERS_LAYERINDEX_URL', True)
- if not apiurl:
- logger.error("Cannot get BBLAYERS_LAYERINDEX_URL")
- return 1
- else:
- if apiurl[-1] != '/':
- apiurl += '/'
- apiurl += "api/"
- apilinks = self.get_json_data(apiurl)
- branches = self.get_json_data(apilinks['branches'])
-
- branchnum = 0
- for branch in branches:
- if branch['name'] == args.branch:
- branchnum = branch['id']
- break
- if branchnum == 0:
- validbranches = ', '.join([branch['name'] for branch in branches])
- logger.error('Invalid layer branch name "%s". Valid branches: %s' % (args.branch, validbranches))
- return 1
-
- ignore_layers = []
- for collection in self.bbhandler.config_data.getVar('BBFILE_COLLECTIONS', True).split():
- lname = self.bbhandler.config_data.getVar('BBLAYERS_LAYERINDEX_NAME_%s' % collection, True)
- if lname:
- ignore_layers.append(lname)
-
- if args.ignore:
- ignore_layers.extend(args.ignore.split(','))
-
- layeritems = self.get_json_data(apilinks['layerItems'])
- layerbranches = self.get_json_data(apilinks['layerBranches'])
- layerdependencies = self.get_json_data(apilinks['layerDependencies'])
- invaluenames = []
- repourls = {}
- printlayers = []
- def query_dependencies(layers, layeritems, layerbranches, layerdependencies, branchnum):
- depslayer = []
- for layername in layers:
- invaluename, layerdict = self.get_layer_deps(layername, layeritems, layerbranches, layerdependencies, branchnum)
- if layerdict:
- repourls[layername] = self.get_layer_deps(layername, layeritems, layerbranches, layerdependencies, branchnum, selfname=True)
- for layer in layerdict:
- if not layer in ignore_layers:
- depslayer.append(layer)
- printlayers.append((layername, layer, layerdict[layer][0], layerdict[layer][1]))
- if not layer in ignore_layers and not layer in repourls:
- repourls[layer] = (layerdict[layer][0], layerdict[layer][1])
- if invaluename and not invaluename in invaluenames:
- invaluenames.append(invaluename)
- return depslayer
-
- depslayers = query_dependencies(args.layername, layeritems, layerbranches, layerdependencies, branchnum)
- while depslayers:
- depslayer = query_dependencies(depslayers, layeritems, layerbranches, layerdependencies, branchnum)
- depslayers = depslayer
- if invaluenames:
- for invaluename in invaluenames:
- logger.error('Layer "%s" not found in layer index' % invaluename)
- return 1
- logger.plain("%s %s %s %s" % ("Layer".ljust(19), "Required by".ljust(19), "Git repository".ljust(54), "Subdirectory"))
- logger.plain('=' * 115)
- for layername in args.layername:
- layerurl = repourls[layername]
- logger.plain("%s %s %s %s" % (layername.ljust(20), '-'.ljust(20), layerurl[0].ljust(55), layerurl[1]))
- printedlayers = []
- for layer, dependency, gitrepo, subdirectory in printlayers:
- if dependency in printedlayers:
- continue
- logger.plain("%s %s %s %s" % (dependency.ljust(20), layer.ljust(20), gitrepo.ljust(55), subdirectory))
- printedlayers.append(dependency)
-
- if repourls:
- fetchdir = self.bbhandler.config_data.getVar('BBLAYERS_FETCH_DIR', True)
- if not fetchdir:
- logger.error("Cannot get BBLAYERS_FETCH_DIR")
- return 1
- if not os.path.exists(fetchdir):
- os.makedirs(fetchdir)
- addlayers = []
- for repourl, subdir in repourls.values():
- name, layerdir = self.get_fetch_layer(fetchdir, repourl, subdir, not args.show_only)
- if not name:
- # Error already shown
- return 1
- addlayers.append((subdir, name, layerdir))
- if not args.show_only:
- for subdir, name, layerdir in set(addlayers):
- if os.path.exists(layerdir):
- if subdir:
- logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % subdir)
- else:
- logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % name)
- localargs = argparse.Namespace()
- localargs.layerdir = layerdir
- self.do_add_layer(localargs)
- else:
- break
-
-
- def do_layerindex_show_depends(self, args):
- """Find layer dependencies from layer index.
-"""
- args.show_only = True
- args.ignore = []
- self.do_layerindex_fetch(args)
-
-
- def version_str(self, pe, pv, pr = None):
- verstr = "%s" % pv
- if pr:
- verstr = "%s-%s" % (verstr, pr)
- if pe:
- verstr = "%s:%s" % (pe, verstr)
- return verstr
-
-
- def do_show_overlayed(self, args):
- """list overlayed recipes (where the same recipe exists in another layer)
-
-Lists the names of overlayed recipes and the available versions in each
-layer, with the preferred version first. Note that skipped recipes that
-are overlayed will also be listed, with a " (skipped)" suffix.
-"""
- self.init_bbhandler()
-
- items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, True, None)
-
- # Check for overlayed .bbclass files
- classes = defaultdict(list)
- for layerdir in self.bblayers:
- classdir = os.path.join(layerdir, 'classes')
- if os.path.exists(classdir):
- for classfile in os.listdir(classdir):
- if os.path.splitext(classfile)[1] == '.bbclass':
- classes[classfile].append(classdir)
-
- # Locating classes and other files is a bit more complicated than recipes -
- # layer priority is not a factor; instead BitBake uses the first matching
- # file in BBPATH, which is manipulated directly by each layer's
- # conf/layer.conf in turn, thus the order of layers in bblayers.conf is a
- # factor - however, each layer.conf is free to either prepend or append to
- # BBPATH (or indeed do crazy stuff with it). Thus the order in BBPATH might
- # not be exactly the order present in bblayers.conf either.
- bbpath = str(self.bbhandler.config_data.getVar('BBPATH', True))
- overlayed_class_found = False
- for (classfile, classdirs) in classes.items():
- if len(classdirs) > 1:
- if not overlayed_class_found:
- logger.plain('=== Overlayed classes ===')
- overlayed_class_found = True
-
- mainfile = bb.utils.which(bbpath, os.path.join('classes', classfile))
- if args.filenames:
- logger.plain('%s' % mainfile)
- else:
- # We effectively have to guess the layer here
- logger.plain('%s:' % classfile)
- mainlayername = '?'
- for layerdir in self.bblayers:
- classdir = os.path.join(layerdir, 'classes')
- if mainfile.startswith(classdir):
- mainlayername = self.get_layer_name(layerdir)
- logger.plain(' %s' % mainlayername)
- for classdir in classdirs:
- fullpath = os.path.join(classdir, classfile)
- if fullpath != mainfile:
- if args.filenames:
- print(' %s' % fullpath)
- else:
- print(' %s' % self.get_layer_name(os.path.dirname(classdir)))
-
- if overlayed_class_found:
- items_listed = True;
-
- if not items_listed:
- logger.plain('No overlayed files found.')
-
-
- def do_show_recipes(self, args):
- """list available recipes, showing the layer they are provided by
-
-Lists the names of recipes and the available versions in each
-layer, with the preferred version first. Optionally you may specify
-pnspec to match a specified recipe name (supports wildcards). Note that
-skipped recipes will also be listed, with a " (skipped)" suffix.
-"""
- self.init_bbhandler()
-
- inheritlist = args.inherits.split(',') if args.inherits else []
- if inheritlist or args.pnspec or args.multiple:
- title = 'Matching recipes:'
- else:
- title = 'Available recipes:'
- self.list_recipes(title, args.pnspec, False, False, args.filenames, args.multiple, inheritlist)
-
-
- def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_multi_provider_only, inherits):
- if inherits:
- bbpath = str(self.bbhandler.config_data.getVar('BBPATH', True))
- for classname in inherits:
- classfile = 'classes/%s.bbclass' % classname
- if not bb.utils.which(bbpath, classfile, history=False):
- raise UserError('No class named %s found in BBPATH' % classfile)
-
- pkg_pn = self.bbhandler.cooker.recipecache.pkg_pn
- (latest_versions, preferred_versions) = bb.providers.findProviders(self.bbhandler.config_data, self.bbhandler.cooker.recipecache, pkg_pn)
- allproviders = bb.providers.allProviders(self.bbhandler.cooker.recipecache)
-
- # Ensure we list skipped recipes
- # We are largely guessing about PN, PV and the preferred version here,
- # but we have no choice since skipped recipes are not fully parsed
- skiplist = self.bbhandler.cooker.skiplist.keys()
- skiplist.sort( key=lambda fileitem: self.bbhandler.cooker.collection.calc_bbfile_priority(fileitem) )
- skiplist.reverse()
- for fn in skiplist:
- recipe_parts = os.path.splitext(os.path.basename(fn))[0].split('_')
- p = recipe_parts[0]
- if len(recipe_parts) > 1:
- ver = (None, recipe_parts[1], None)
- else:
- ver = (None, 'unknown', None)
- allproviders[p].append((ver, fn))
- if not p in pkg_pn:
- pkg_pn[p] = 'dummy'
- preferred_versions[p] = (ver, fn)
-
- def print_item(f, pn, ver, layer, ispref):
- if f in skiplist:
- skipped = ' (skipped)'
- else:
- skipped = ''
- if show_filenames:
- if ispref:
- logger.plain("%s%s", f, skipped)
- else:
- logger.plain(" %s%s", f, skipped)
- else:
- if ispref:
- logger.plain("%s:", pn)
- logger.plain(" %s %s%s", layer.ljust(20), ver, skipped)
-
- global_inherit = (self.bbhandler.config_data.getVar('INHERIT', True) or "").split()
- cls_re = re.compile('classes/')
-
- preffiles = []
- items_listed = False
- for p in sorted(pkg_pn):
- if pnspec:
- if not fnmatch.fnmatch(p, pnspec):
- continue
-
- if len(allproviders[p]) > 1 or not show_multi_provider_only:
- pref = preferred_versions[p]
- realfn = bb.cache.Cache.virtualfn2realfn(pref[1])
- preffile = realfn[0]
-
- # We only display once per recipe, we should prefer non extended versions of the
- # recipe if present (so e.g. in OpenEmbedded, openssl rather than nativesdk-openssl
- # which would otherwise sort first).
- if realfn[1] and realfn[0] in self.bbhandler.cooker.recipecache.pkg_fn:
- continue
-
- if inherits:
- matchcount = 0
- recipe_inherits = self.bbhandler.cooker_data.inherits.get(preffile, [])
- for cls in recipe_inherits:
- if cls_re.match(cls):
- continue
- classname = os.path.splitext(os.path.basename(cls))[0]
- if classname in global_inherit:
- continue
- elif classname in inherits:
- matchcount += 1
- if matchcount != len(inherits):
- # No match - skip this recipe
- continue
-
- if preffile not in preffiles:
- preflayer = self.get_file_layer(preffile)
- multilayer = False
- same_ver = True
- provs = []
- for prov in allproviders[p]:
- provfile = bb.cache.Cache.virtualfn2realfn(prov[1])[0]
- provlayer = self.get_file_layer(provfile)
- provs.append((provfile, provlayer, prov[0]))
- if provlayer != preflayer:
- multilayer = True
- if prov[0] != pref[0]:
- same_ver = False
-
- if (multilayer or not show_overlayed_only) and (same_ver or not show_same_ver_only):
- if not items_listed:
- logger.plain('=== %s ===' % title)
- items_listed = True
- print_item(preffile, p, self.version_str(pref[0][0], pref[0][1]), preflayer, True)
- for (provfile, provlayer, provver) in provs:
- if provfile != preffile:
- print_item(provfile, p, self.version_str(provver[0], provver[1]), provlayer, False)
- # Ensure we don't show two entries for BBCLASSEXTENDed recipes
- preffiles.append(preffile)
-
- return items_listed
-
+def logger_setup_color(logger, color='auto'):
+ from bb.msg import BBLogFormatter
+ console = logging.StreamHandler(sys.stdout)
+ formatter = BBLogFormatter("%(levelname)s: %(message)s")
+ console.setFormatter(formatter)
+ logger.handlers = [console]
+ if color == 'always' or (color == 'auto' and console.stream.isatty()):
+ formatter.enable_color()
- def do_flatten(self, args):
- """flatten layer configuration into a separate output directory.
-
-Takes the specified layers (or all layers in the current layer
-configuration if none are specified) and builds a "flattened" directory
-containing the contents of all layers, with any overlayed recipes removed
-and bbappends appended to the corresponding recipes. Note that some manual
-cleanup may still be necessary afterwards, in particular:
-
-* where non-recipe files (such as patches) are overwritten (the flatten
- command will show a warning for these)
-* where anything beyond the normal layer setup has been added to
- layer.conf (only the lowest priority number layer's layer.conf is used)
-* overridden/appended items from bbappends will need to be tidied up
-* when the flattened layers do not have the same directory structure (the
- flatten command should show a warning when this will cause a problem)
-
-Warning: if you flatten several layers where another layer is intended to
-be used "inbetween" them (in layer priority order) such that recipes /
-bbappends in the layers interact, and then attempt to use the new output
-layer together with that other layer, you may no longer get the same
-build results (as the layer priority order has effectively changed).
-"""
- if len(args.layer) == 1:
- logger.error('If you specify layers to flatten you must specify at least two')
- return 1
-
- outputdir = args.outputdir
- if os.path.exists(outputdir) and os.listdir(outputdir):
- logger.error('Directory %s exists and is non-empty, please clear it out first' % outputdir)
- return 1
-
- self.init_bbhandler()
- layers = self.bblayers
- if len(args.layer) > 2:
- layernames = args.layer
- found_layernames = []
- found_layerdirs = []
- for layerdir in layers:
- layername = self.get_layer_name(layerdir)
- if layername in layernames:
- found_layerdirs.append(layerdir)
- found_layernames.append(layername)
-
- for layername in layernames:
- if not layername in found_layernames:
- logger.error('Unable to find layer %s in current configuration, please run "%s show-layers" to list configured layers' % (layername, os.path.basename(sys.argv[0])))
- return
- layers = found_layerdirs
- else:
- layernames = []
-
- # Ensure a specified path matches our list of layers
- def layer_path_match(path):
- for layerdir in layers:
- if path.startswith(os.path.join(layerdir, '')):
- return layerdir
- return None
-
- applied_appends = []
- for layer in layers:
- overlayed = []
- for f in self.bbhandler.cooker.collection.overlayed.iterkeys():
- for of in self.bbhandler.cooker.collection.overlayed[f]:
- if of.startswith(layer):
- overlayed.append(of)
-
- logger.plain('Copying files from %s...' % layer )
- for root, dirs, files in os.walk(layer):
- for f1 in files:
- f1full = os.sep.join([root, f1])
- if f1full in overlayed:
- logger.plain(' Skipping overlayed file %s' % f1full )
- else:
- ext = os.path.splitext(f1)[1]
- if ext != '.bbappend':
- fdest = f1full[len(layer):]
- fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
- bb.utils.mkdirhier(os.path.dirname(fdest))
- if os.path.exists(fdest):
- if f1 == 'layer.conf' and root.endswith('/conf'):
- logger.plain(' Skipping layer config file %s' % f1full )
- continue
- else:
- logger.warn('Overwriting file %s', fdest)
- bb.utils.copyfile(f1full, fdest)
- if ext == '.bb':
- for append in self.bbhandler.cooker.collection.get_file_appends(f1full):
- if layer_path_match(append):
- logger.plain(' Applying append %s to %s' % (append, fdest))
- self.apply_append(append, fdest)
- applied_appends.append(append)
-
- # Take care of when some layers are excluded and yet we have included bbappends for those recipes
- for b in self.bbhandler.cooker.collection.bbappends:
- (recipename, appendname) = b
- if appendname not in applied_appends:
- first_append = None
- layer = layer_path_match(appendname)
- if layer:
- if first_append:
- self.apply_append(appendname, first_append)
- else:
- fdest = appendname[len(layer):]
- fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
- bb.utils.mkdirhier(os.path.dirname(fdest))
- bb.utils.copyfile(appendname, fdest)
- first_append = fdest
-
- # Get the regex for the first layer in our list (which is where the conf/layer.conf file will
- # have come from)
- first_regex = None
- layerdir = layers[0]
- for layername, pattern, regex, _ in self.bbhandler.cooker.recipecache.bbfile_config_priorities:
- if regex.match(os.path.join(layerdir, 'test')):
- first_regex = regex
- break
-
- if first_regex:
- # Find the BBFILES entries that match (which will have come from this conf/layer.conf file)
- bbfiles = str(self.bbhandler.config_data.getVar('BBFILES', True)).split()
- bbfiles_layer = []
- for item in bbfiles:
- if first_regex.match(item):
- newpath = os.path.join(outputdir, item[len(layerdir)+1:])
- bbfiles_layer.append(newpath)
-
- if bbfiles_layer:
- # Check that all important layer files match BBFILES
- for root, dirs, files in os.walk(outputdir):
- for f1 in files:
- ext = os.path.splitext(f1)[1]
- if ext in ['.bb', '.bbappend']:
- f1full = os.sep.join([root, f1])
- entry_found = False
- for item in bbfiles_layer:
- if fnmatch.fnmatch(f1full, item):
- entry_found = True
- break
- if not entry_found:
- logger.warning("File %s does not match the flattened layer's BBFILES setting, you may need to edit conf/layer.conf or move the file elsewhere" % f1full)
-
- def get_file_layer(self, filename):
- layerdir = self.get_file_layerdir(filename)
- if layerdir:
- return self.get_layer_name(layerdir)
- else:
- return '?'
-
- def get_file_layerdir(self, filename):
- layer = bb.utils.get_file_layer(filename, self.bbhandler.config_data)
- return self.bbfile_collections.get(layer, None)
-
- def remove_layer_prefix(self, f):
- """Remove the layer_dir prefix, e.g., f = /path/to/layer_dir/foo/blah, the
- return value will be: layer_dir/foo/blah"""
- f_layerdir = self.get_file_layerdir(f)
- if not f_layerdir:
- return f
- prefix = os.path.join(os.path.dirname(f_layerdir), '')
- return f[len(prefix):] if f.startswith(prefix) else f
-
- def get_layer_name(self, layerdir):
- return os.path.basename(layerdir.rstrip(os.sep))
-
- def apply_append(self, appendname, recipename):
- with open(appendname, 'r') as appendfile:
- with open(recipename, 'a') as recipefile:
- recipefile.write('\n')
- recipefile.write('##### bbappended from %s #####\n' % self.get_file_layer(appendname))
- recipefile.writelines(appendfile.readlines())
-
- def do_show_appends(self, args):
- """list bbappend files and recipe files they apply to
-
-Lists recipes with the bbappends that apply to them as subitems.
-"""
- self.init_bbhandler()
-
- logger.plain('=== Appended recipes ===')
-
- pnlist = list(self.bbhandler.cooker_data.pkg_pn.keys())
- pnlist.sort()
- appends = False
- for pn in pnlist:
- if self.show_appends_for_pn(pn):
- appends = True
-
- if self.show_appends_for_skipped():
- appends = True
-
- if not appends:
- logger.plain('No append files found')
-
- def show_appends_for_pn(self, pn):
- filenames = self.bbhandler.cooker_data.pkg_pn[pn]
-
- best = bb.providers.findBestProvider(pn,
- self.bbhandler.config_data,
- self.bbhandler.cooker_data,
- self.bbhandler.cooker_data.pkg_pn)
- best_filename = os.path.basename(best[3])
-
- return self.show_appends_output(filenames, best_filename)
-
- def show_appends_for_skipped(self):
- filenames = [os.path.basename(f)
- for f in self.bbhandler.cooker.skiplist.iterkeys()]
- return self.show_appends_output(filenames, None, " (skipped)")
-
- def show_appends_output(self, filenames, best_filename, name_suffix = ''):
- appended, missing = self.get_appends_for_files(filenames)
- if appended:
- for basename, appends in appended:
- logger.plain('%s%s:', basename, name_suffix)
- for append in appends:
- logger.plain(' %s', append)
-
- if best_filename:
- if best_filename in missing:
- logger.warn('%s: missing append for preferred version',
- best_filename)
- return True
- else:
- return False
-
- def get_appends_for_files(self, filenames):
- appended, notappended = [], []
- for filename in filenames:
- _, cls = bb.cache.Cache.virtualfn2realfn(filename)
- if cls:
- continue
-
- basename = os.path.basename(filename)
- appends = self.bbhandler.cooker.collection.get_file_appends(basename)
- if appends:
- appended.append((basename, list(appends)))
- else:
- notappended.append(basename)
- return appended, notappended
-
- def do_show_cross_depends(self, args):
- """Show dependencies between recipes that cross layer boundaries.
-
-Figure out the dependencies between recipes that cross layer boundaries.
-
-NOTE: .bbappend files can impact the dependencies.
-"""
- ignore_layers = (args.ignore or '').split(',')
-
- self.init_bbhandler()
-
- pkg_fn = self.bbhandler.cooker_data.pkg_fn
- bbpath = str(self.bbhandler.config_data.getVar('BBPATH', True))
- self.require_re = re.compile(r"require\s+(.+)")
- self.include_re = re.compile(r"include\s+(.+)")
- self.inherit_re = re.compile(r"inherit\s+(.+)")
-
- global_inherit = (self.bbhandler.config_data.getVar('INHERIT', True) or "").split()
-
- # The bb's DEPENDS and RDEPENDS
- for f in pkg_fn:
- f = bb.cache.Cache.virtualfn2realfn(f)[0]
- # Get the layername that the file is in
- layername = self.get_file_layer(f)
-
- # The DEPENDS
- deps = self.bbhandler.cooker_data.deps[f]
- for pn in deps:
- if pn in self.bbhandler.cooker_data.pkg_pn:
- best = bb.providers.findBestProvider(pn,
- self.bbhandler.config_data,
- self.bbhandler.cooker_data,
- self.bbhandler.cooker_data.pkg_pn)
- self.check_cross_depends("DEPENDS", layername, f, best[3], args.filenames, ignore_layers)
-
- # The RDPENDS
- all_rdeps = self.bbhandler.cooker_data.rundeps[f].values()
- # Remove the duplicated or null one.
- sorted_rdeps = {}
- # The all_rdeps is the list in list, so we need two for loops
- for k1 in all_rdeps:
- for k2 in k1:
- sorted_rdeps[k2] = 1
- all_rdeps = sorted_rdeps.keys()
- for rdep in all_rdeps:
- all_p = bb.providers.getRuntimeProviders(self.bbhandler.cooker_data, rdep)
- if all_p:
- if f in all_p:
- # The recipe provides this one itself, ignore
- continue
- best = bb.providers.filterProvidersRunTime(all_p, rdep,
- self.bbhandler.config_data,
- self.bbhandler.cooker_data)[0][0]
- self.check_cross_depends("RDEPENDS", layername, f, best, args.filenames, ignore_layers)
-
- # The RRECOMMENDS
- all_rrecs = self.bbhandler.cooker_data.runrecs[f].values()
- # Remove the duplicated or null one.
- sorted_rrecs = {}
- # The all_rrecs is the list in list, so we need two for loops
- for k1 in all_rrecs:
- for k2 in k1:
- sorted_rrecs[k2] = 1
- all_rrecs = sorted_rrecs.keys()
- for rrec in all_rrecs:
- all_p = bb.providers.getRuntimeProviders(self.bbhandler.cooker_data, rrec)
- if all_p:
- if f in all_p:
- # The recipe provides this one itself, ignore
- continue
- best = bb.providers.filterProvidersRunTime(all_p, rrec,
- self.bbhandler.config_data,
- self.bbhandler.cooker_data)[0][0]
- self.check_cross_depends("RRECOMMENDS", layername, f, best, args.filenames, ignore_layers)
-
- # The inherit class
- cls_re = re.compile('classes/')
- if f in self.bbhandler.cooker_data.inherits:
- inherits = self.bbhandler.cooker_data.inherits[f]
- for cls in inherits:
- # The inherits' format is [classes/cls, /path/to/classes/cls]
- # ignore the classes/cls.
- if not cls_re.match(cls):
- classname = os.path.splitext(os.path.basename(cls))[0]
- if classname in global_inherit:
- continue
- inherit_layername = self.get_file_layer(cls)
- if inherit_layername != layername and not inherit_layername in ignore_layers:
- if not args.filenames:
- f_short = self.remove_layer_prefix(f)
- cls = self.remove_layer_prefix(cls)
- else:
- f_short = f
- logger.plain("%s inherits %s" % (f_short, cls))
-
- # The 'require/include xxx' in the bb file
- pv_re = re.compile(r"\${PV}")
- with open(f, 'r') as fnfile:
- line = fnfile.readline()
- while line:
- m, keyword = self.match_require_include(line)
- # Found the 'require/include xxxx'
- if m:
- needed_file = m.group(1)
- # Replace the ${PV} with the real PV
- if pv_re.search(needed_file) and f in self.bbhandler.cooker_data.pkg_pepvpr:
- pv = self.bbhandler.cooker_data.pkg_pepvpr[f][1]
- needed_file = re.sub(r"\${PV}", pv, needed_file)
- self.print_cross_files(bbpath, keyword, layername, f, needed_file, args.filenames, ignore_layers)
- line = fnfile.readline()
-
- # The "require/include xxx" in conf/machine/*.conf, .inc and .bbclass
- conf_re = re.compile(".*/conf/machine/[^\/]*\.conf$")
- inc_re = re.compile(".*\.inc$")
- # The "inherit xxx" in .bbclass
- bbclass_re = re.compile(".*\.bbclass$")
- for layerdir in self.bblayers:
- layername = self.get_layer_name(layerdir)
- for dirpath, dirnames, filenames in os.walk(layerdir):
- for name in filenames:
- f = os.path.join(dirpath, name)
- s = conf_re.match(f) or inc_re.match(f) or bbclass_re.match(f)
- if s:
- with open(f, 'r') as ffile:
- line = ffile.readline()
- while line:
- m, keyword = self.match_require_include(line)
- # Only bbclass has the "inherit xxx" here.
- bbclass=""
- if not m and f.endswith(".bbclass"):
- m, keyword = self.match_inherit(line)
- bbclass=".bbclass"
- # Find a 'require/include xxxx'
- if m:
- self.print_cross_files(bbpath, keyword, layername, f, m.group(1) + bbclass, args.filenames, ignore_layers)
- line = ffile.readline()
-
- def print_cross_files(self, bbpath, keyword, layername, f, needed_filename, show_filenames, ignore_layers):
- """Print the depends that crosses a layer boundary"""
- needed_file = bb.utils.which(bbpath, needed_filename)
- if needed_file:
- # Which layer is this file from
- needed_layername = self.get_file_layer(needed_file)
- if needed_layername != layername and not needed_layername in ignore_layers:
- if not show_filenames:
- f = self.remove_layer_prefix(f)
- needed_file = self.remove_layer_prefix(needed_file)
- logger.plain("%s %s %s" %(f, keyword, needed_file))
-
- def match_inherit(self, line):
- """Match the inherit xxx line"""
- return (self.inherit_re.match(line), "inherits")
-
- def match_require_include(self, line):
- """Match the require/include xxx line"""
- m = self.require_re.match(line)
- keyword = "requires"
- if not m:
- m = self.include_re.match(line)
- keyword = "includes"
- return (m, keyword)
-
- def check_cross_depends(self, keyword, layername, f, needed_file, show_filenames, ignore_layers):
- """Print the DEPENDS/RDEPENDS file that crosses a layer boundary"""
- best_realfn = bb.cache.Cache.virtualfn2realfn(needed_file)[0]
- needed_layername = self.get_file_layer(best_realfn)
- if needed_layername != layername and not needed_layername in ignore_layers:
- if not show_filenames:
- f = self.remove_layer_prefix(f)
- best_realfn = self.remove_layer_prefix(best_realfn)
-
- logger.plain("%s %s %s" % (f, keyword, best_realfn))
+logger = logger_create('bitbake-layers', sys.stdout)
def main():
-
- cmds = Commands()
-
- def add_command(cmdname, function, *args, **kwargs):
- # Convert docstring for function to help (one-liner shown in main --help) and description (shown in subcommand --help)
- docsplit = function.__doc__.splitlines()
- help = docsplit[0]
- if len(docsplit) > 1:
- desc = '\n'.join(docsplit[1:])
- else:
- desc = help
- subparser = subparsers.add_parser(cmdname, *args, help=help, description=desc, formatter_class=argparse.RawTextHelpFormatter, **kwargs)
- subparser.set_defaults(func=function)
- return subparser
-
- parser = argparse.ArgumentParser(description="BitBake layers utility",
- epilog="Use %(prog)s <subcommand> --help to get help on a specific command")
+ parser = argparse.ArgumentParser(
+ description="BitBake layers utility",
+ epilog="Use %(prog)s <subcommand> --help to get help on a specific command",
+ add_help=False)
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true')
- subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
-
- parser_show_layers = add_command('show-layers', cmds.do_show_layers)
+ parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR')
- parser_add_layer = add_command('add-layer', cmds.do_add_layer)
- parser_add_layer.add_argument('layerdir', help='Layer directory to add')
+ global_args, unparsed_args = parser.parse_known_args()
- parser_remove_layer = add_command('remove-layer', cmds.do_remove_layer)
- parser_remove_layer.add_argument('layerdir', help='Layer directory to remove (wildcards allowed, enclose in quotes to avoid shell expansion)')
- parser_remove_layer.set_defaults(func=cmds.do_remove_layer)
-
- parser_show_overlayed = add_command('show-overlayed', cmds.do_show_overlayed)
- parser_show_overlayed.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
- parser_show_overlayed.add_argument('-s', '--same-version', help='only list overlayed recipes where the version is the same', action='store_true')
-
- parser_show_recipes = add_command('show-recipes', cmds.do_show_recipes)
- parser_show_recipes.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
- parser_show_recipes.add_argument('-m', '--multiple', help='only list where multiple recipes (in the same layer or different layers) exist for the same recipe name', action='store_true')
- parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class', metavar='CLASS', default='')
- parser_show_recipes.add_argument('pnspec', nargs='?', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
-
- parser_show_appends = add_command('show-appends', cmds.do_show_appends)
+ # Help is added here rather than via add_help=True, as we don't want it to
+ # be handled by parse_known_args()
+ parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
+ help='show this help message and exit')
+ subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
- parser_flatten = add_command('flatten', cmds.do_flatten)
- parser_flatten.add_argument('layer', nargs='*', help='Optional layer(s) to flatten (otherwise all are flattened)')
- parser_flatten.add_argument('outputdir', help='Output directory')
+ if global_args.debug:
+ logger.setLevel(logging.DEBUG)
+ elif global_args.quiet:
+ logger.setLevel(logging.ERROR)
- parser_show_cross_depends = add_command('show-cross-depends', cmds.do_show_cross_depends)
- parser_show_cross_depends.add_argument('-f', '--filenames', help='show full file path', action='store_true')
- parser_show_cross_depends.add_argument('-i', '--ignore', help='ignore dependencies on items in the specified layer(s) (split multiple layer names with commas, no spaces)', metavar='LAYERNAME')
+ logger_setup_color(logger, global_args.color)
- parser_layerindex_fetch = add_command('layerindex-fetch', cmds.do_layerindex_fetch)
- parser_layerindex_fetch.add_argument('-n', '--show-only', help='show dependencies and do nothing else', action='store_true')
- parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch (default %(default)s)', default='master')
- parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER')
- parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch')
+ plugins = []
+ tinfoil = tinfoil_init(False)
+ try:
+ for path in ([topdir] +
+ tinfoil.config_data.getVar('BBPATH', True).split(':')):
+ pluginpath = os.path.join(path, 'lib', 'bblayers')
+ bb.utils.load_plugins(logger, plugins, pluginpath)
- parser_layerindex_show_depends = add_command('layerindex-show-depends', cmds.do_layerindex_show_depends)
- parser_layerindex_show_depends.add_argument('-b', '--branch', help='branch name to fetch (default %(default)s)', default='master')
- parser_layerindex_show_depends.add_argument('layername', nargs='+', help='layer to query')
+ registered = False
+ for plugin in plugins:
+ if hasattr(plugin, 'register_commands'):
+ registered = True
+ plugin.register_commands(subparsers)
+ if hasattr(plugin, 'tinfoil_init'):
+ plugin.tinfoil_init(tinfoil)
- args = parser.parse_args()
+ if not registered:
+ logger.error("No commands registered - missing plugins?")
+ sys.exit(1)
- if args.debug:
- logger.setLevel(logging.DEBUG)
- elif args.quiet:
- logger.setLevel(logging.ERROR)
+ args = parser.parse_args(unparsed_args, namespace=global_args)
- try:
- ret = args.func(args)
- except UserError as err:
- logger.error(str(err))
- ret = 1
+ if getattr(args, 'parserecipes', False):
+ tinfoil.config_data.disableTracking()
+ tinfoil.parseRecipes()
+ tinfoil.config_data.enableTracking()
- return ret
+ return args.func(args)
+ finally:
+ tinfoil.shutdown()
if __name__ == "__main__":
try:
ret = main()
+ except bb.BBHandledException:
+ ret = 1
except Exception:
ret = 1
import traceback
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-prserv b/import-layers/yocto-poky/bitbake/bin/bitbake-prserv
index 03821446b..f38d2dd88 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-prserv
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-prserv
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import sys,logging
import optparse
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-selftest b/import-layers/yocto-poky/bitbake/bin/bitbake-selftest
index 462eb1b2b..380e00361 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-selftest
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-selftest
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (C) 2012 Richard Purdie
#
@@ -25,31 +25,48 @@ try:
except RuntimeError as exc:
sys.exit(str(exc))
-def usage():
- print('usage: [BB_SKIP_NETTESTS=yes] %s [-v] [testname1 [testname2]...]' % os.path.basename(sys.argv[0]))
-
-verbosity = 1
-
-tests = sys.argv[1:]
-if '-v' in sys.argv:
- tests.remove('-v')
- verbosity = 2
-
-if tests:
- if '--help' in sys.argv[1:]:
- usage()
- sys.exit(0)
-else:
- tests = ["bb.tests.codeparser",
- "bb.tests.cow",
- "bb.tests.data",
- "bb.tests.fetch",
- "bb.tests.parse",
- "bb.tests.utils"]
+tests = ["bb.tests.codeparser",
+ "bb.tests.cow",
+ "bb.tests.data",
+ "bb.tests.fetch",
+ "bb.tests.parse",
+ "bb.tests.utils"]
for t in tests:
t = '.'.join(t.split('.')[:3])
__import__(t)
-unittest.main(argv=["bitbake-selftest"] + tests, verbosity=verbosity)
+# Set-up logging
+class StdoutStreamHandler(logging.StreamHandler):
+ """Special handler so that unittest is able to capture stdout"""
+ def __init__(self):
+ # Override __init__() because we don't want to set self.stream here
+ logging.Handler.__init__(self)
+
+ @property
+ def stream(self):
+ # We want to dynamically write wherever sys.stdout is pointing to
+ return sys.stdout
+
+
+handler = StdoutStreamHandler()
+bb.logger.addHandler(handler)
+bb.logger.setLevel(logging.DEBUG)
+
+
+ENV_HELP = """\
+Environment variables:
+ BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network
+ connection
+ BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories
+"""
+
+class main(unittest.main):
+ def _print_help(self, *args, **kwargs):
+ super(main, self)._print_help(*args, **kwargs)
+ print(ENV_HELP)
+
+
+if __name__ == '__main__':
+ main(defaultTest=tests, buffer=True)
diff --git a/import-layers/yocto-poky/bitbake/bin/bitbake-worker b/import-layers/yocto-poky/bitbake/bin/bitbake-worker
index 767a1c033..500f2ad16 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitbake-worker
+++ b/import-layers/yocto-poky/bitbake/bin/bitbake-worker
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import sys
@@ -10,8 +10,12 @@ import bb
import select
import errno
import signal
+import pickle
from multiprocessing import Lock
+if sys.getfilesystemencoding() != "utf-8":
+ sys.exit("Please use a locale setting which supports utf-8.\nPython can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.")
+
# Users shouldn't be running this code directly
if len(sys.argv) != 2 or not sys.argv[1].startswith("decafbad"):
print("bitbake-worker is meant for internal execution by bitbake itself, please don't use it standalone.")
@@ -30,19 +34,16 @@ if sys.argv[1].startswith("decafbadbad"):
# updates to log files for use with tail
try:
if sys.stdout.name == '<stdout>':
- sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+ import fcntl
+ fl = fcntl.fcntl(sys.stdout.fileno(), fcntl.F_GETFL)
+ fl |= os.O_SYNC
+ fcntl.fcntl(sys.stdout.fileno(), fcntl.F_SETFL, fl)
+ #sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
except:
pass
logger = logging.getLogger("BitBake")
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- bb.msg.note(1, bb.msg.domain.Cache, "Importing cPickle failed. Falling back to a very slow implementation.")
-
-
worker_pipe = sys.stdout.fileno()
bb.utils.nonblockingfd(worker_pipe)
# Need to guard against multiprocessing being used in child processes
@@ -62,10 +63,10 @@ if 0:
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
-worker_queue = ""
+worker_queue = b""
def worker_fire(event, d):
- data = "<event>" + pickle.dumps(event) + "</event>"
+ data = b"<event>" + pickle.dumps(event) + b"</event>"
worker_fire_prepickled(data)
def worker_fire_prepickled(event):
@@ -91,7 +92,7 @@ def worker_child_fire(event, d):
global worker_pipe
global worker_pipe_lock
- data = "<event>" + pickle.dumps(event) + "</event>"
+ data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
worker_pipe_lock.acquire()
worker_pipe.write(data)
@@ -114,7 +115,7 @@ def sigterm_handler(signum, frame):
os.killpg(0, signal.SIGTERM)
sys.exit()
-def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdata, quieterrors=False):
+def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, appends, taskdepdata, quieterrors=False):
# We need to setup the environment BEFORE the fork, since
# a fork() or exec*() activates PSEUDO...
@@ -159,7 +160,8 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat
pipeout = os.fdopen(pipeout, 'wb', 0)
pid = os.fork()
except OSError as e:
- bb.msg.fatal("RunQueue", "fork failed: %d (%s)" % (e.errno, e.strerror))
+ logger.critical("fork failed: %d (%s)" % (e.errno, e.strerror))
+ sys.exit(1)
if pid == 0:
def child():
@@ -191,15 +193,19 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat
if umask:
os.umask(umask)
- data.setVar("BB_WORKERCONTEXT", "1")
- data.setVar("BB_TASKDEPDATA", taskdepdata)
- data.setVar("BUILDNAME", workerdata["buildname"])
- data.setVar("DATE", workerdata["date"])
- data.setVar("TIME", workerdata["time"])
- bb.parse.siggen.set_taskdata(workerdata["sigdata"])
- ret = 0
try:
- the_data = bb.cache.Cache.loadDataFull(fn, appends, data)
+ bb_cache = bb.cache.NoCache(databuilder)
+ (realfn, virtual, mc) = bb.cache.virtualfn2realfn(fn)
+ the_data = databuilder.mcdata[mc]
+ the_data.setVar("BB_WORKERCONTEXT", "1")
+ the_data.setVar("BB_TASKDEPDATA", taskdepdata)
+ the_data.setVar("BUILDNAME", workerdata["buildname"])
+ the_data.setVar("DATE", workerdata["date"])
+ the_data.setVar("TIME", workerdata["time"])
+ bb.parse.siggen.set_taskdata(workerdata["sigdata"])
+ ret = 0
+
+ the_data = bb_cache.loadDataFull(fn, appends)
the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task])
bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN", True), taskname.replace("do_", "")))
@@ -207,14 +213,24 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat
# exported_vars() returns a generator which *cannot* be passed to os.environ.update()
# successfully. We also need to unset anything from the environment which shouldn't be there
exports = bb.data.exported_vars(the_data)
+
bb.utils.empty_environment()
for e, v in exports:
os.environ[e] = v
+
for e in fakeenv:
os.environ[e] = fakeenv[e]
the_data.setVar(e, fakeenv[e])
the_data.setVarFlag(e, 'export', "1")
+ task_exports = the_data.getVarFlag(taskname, 'exports', True)
+ if task_exports:
+ for e in task_exports.split():
+ the_data.setVarFlag(e, 'export', '1')
+ v = the_data.getVar(e, True)
+ if v is not None:
+ os.environ[e] = v
+
if quieterrors:
the_data.setVarFlag(taskname, "quieterrors", "1")
@@ -240,7 +256,7 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat
bb.utils.process_profilelog(profname)
os._exit(ret)
else:
- for key, value in envbackup.iteritems():
+ for key, value in iter(envbackup.items()):
if value is None:
del os.environ[key]
else:
@@ -257,22 +273,22 @@ class runQueueWorkerPipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
- self.queue = ""
+ self.queue = b""
def read(self):
start = len(self.queue)
try:
- self.queue = self.queue + self.input.read(102400)
+ self.queue = self.queue + (self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
end = len(self.queue)
- index = self.queue.find("</event>")
+ index = self.queue.find(b"</event>")
while index != -1:
worker_fire_prepickled(self.queue[:index+8])
self.queue = self.queue[index+8:]
- index = self.queue.find("</event>")
+ index = self.queue.find(b"</event>")
return (end > start)
def close(self):
@@ -288,7 +304,7 @@ class BitbakeWorker(object):
def __init__(self, din):
self.input = din
bb.utils.nonblockingfd(self.input)
- self.queue = ""
+ self.queue = b""
self.cookercfg = None
self.databuilder = None
self.data = None
@@ -325,12 +341,12 @@ class BitbakeWorker(object):
except (OSError, IOError):
pass
if len(self.queue):
- self.handle_item("cookerconfig", self.handle_cookercfg)
- self.handle_item("workerdata", self.handle_workerdata)
- self.handle_item("runtask", self.handle_runtask)
- self.handle_item("finishnow", self.handle_finishnow)
- self.handle_item("ping", self.handle_ping)
- self.handle_item("quit", self.handle_quit)
+ self.handle_item(b"cookerconfig", self.handle_cookercfg)
+ self.handle_item(b"workerdata", self.handle_workerdata)
+ self.handle_item(b"runtask", self.handle_runtask)
+ self.handle_item(b"finishnow", self.handle_finishnow)
+ self.handle_item(b"ping", self.handle_ping)
+ self.handle_item(b"quit", self.handle_quit)
for pipe in self.build_pipes:
self.build_pipes[pipe].read()
@@ -340,12 +356,12 @@ class BitbakeWorker(object):
def handle_item(self, item, func):
- if self.queue.startswith("<" + item + ">"):
- index = self.queue.find("</" + item + ">")
+ if self.queue.startswith(b"<" + item + b">"):
+ index = self.queue.find(b"</" + item + b">")
while index != -1:
func(self.queue[(len(item) + 2):index])
self.queue = self.queue[(index + len(item) + 3):]
- index = self.queue.find("</" + item + ">")
+ index = self.queue.find(b"</" + item + b">")
def handle_cookercfg(self, data):
self.cookercfg = pickle.loads(data)
@@ -359,12 +375,13 @@ class BitbakeWorker(object):
bb.msg.loggerDefaultVerbose = self.workerdata["logdefaultverbose"]
bb.msg.loggerVerboseLogs = self.workerdata["logdefaultverboselogs"]
bb.msg.loggerDefaultDomains = self.workerdata["logdefaultdomain"]
- self.data.setVar("PRSERV_HOST", self.workerdata["prhost"])
+ for mc in self.databuilder.mcdata:
+ self.databuilder.mcdata[mc].setVar("PRSERV_HOST", self.workerdata["prhost"])
def handle_ping(self, _):
workerlog_write("Handling ping\n")
- logger.warn("Pong from bitbake-worker!")
+ logger.warning("Pong from bitbake-worker!")
def handle_quit(self, data):
workerlog_write("Handling quit\n")
@@ -377,7 +394,7 @@ class BitbakeWorker(object):
fn, task, taskname, quieterrors, appends, taskdepdata = pickle.loads(data)
workerlog_write("Handling runtask %s %s %s\n" % (task, fn, taskname))
- pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.workerdata, fn, task, taskname, appends, taskdepdata, quieterrors)
+ pid, pipein, pipeout = fork_off_task(self.cookercfg, self.data, self.databuilder, self.workerdata, fn, task, taskname, appends, taskdepdata, quieterrors)
self.build_pids[pid] = task
self.build_pipes[pid] = runQueueWorkerPipe(pipein, pipeout)
@@ -409,12 +426,12 @@ class BitbakeWorker(object):
self.build_pipes[pid].close()
del self.build_pipes[pid]
- worker_fire_prepickled("<exitcode>" + pickle.dumps((task, status)) + "</exitcode>")
+ worker_fire_prepickled(b"<exitcode>" + pickle.dumps((task, status)) + b"</exitcode>")
def handle_finishnow(self, _):
if self.build_pids:
logger.info("Sending SIGTERM to remaining %s tasks", len(self.build_pids))
- for k, v in self.build_pids.iteritems():
+ for k, v in iter(self.build_pids.items()):
try:
os.kill(-k, signal.SIGTERM)
os.waitpid(-1, 0)
@@ -424,7 +441,7 @@ class BitbakeWorker(object):
self.build_pipes[pipe].read()
try:
- worker = BitbakeWorker(sys.stdin)
+ worker = BitbakeWorker(os.fdopen(sys.stdin.fileno(), 'rb'))
if not profiling:
worker.serve()
else:
diff --git a/import-layers/yocto-poky/bitbake/bin/bitdoc b/import-layers/yocto-poky/bitbake/bin/bitdoc
index defb3dd37..274467882 100755
--- a/import-layers/yocto-poky/bitbake/bin/bitdoc
+++ b/import-layers/yocto-poky/bitbake/bin/bitdoc
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
diff --git a/import-layers/yocto-poky/bitbake/bin/image-writer b/import-layers/yocto-poky/bitbake/bin/image-writer
deleted file mode 100755
index e30ab45e3..000000000
--- a/import-layers/yocto-poky/bitbake/bin/image-writer
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2012 Wind River Systems, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-import os
-import sys
-sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname( \
- os.path.abspath(__file__))), 'lib'))
-try:
- import bb
-except RuntimeError as exc:
- sys.exit(str(exc))
-
-import gtk
-import optparse
-import pygtk
-
-from bb.ui.crumbs.hobwidget import HobAltButton, HobButton
-from bb.ui.crumbs.hig.crumbsmessagedialog import CrumbsMessageDialog
-from bb.ui.crumbs.hig.deployimagedialog import DeployImageDialog
-from bb.ui.crumbs.hig.imageselectiondialog import ImageSelectionDialog
-
-# I put all the fs bitbake supported here. Need more test.
-DEPLOYABLE_IMAGE_TYPES = ["jffs2", "cramfs", "ext2", "ext3", "ext4", "btrfs", "squashfs", "ubi", "vmdk"]
-Title = "USB Image Writer"
-
-class DeployWindow(gtk.Window):
- def __init__(self, image_path=''):
- super(DeployWindow, self).__init__()
-
- if len(image_path) > 0:
- valid = True
- if not os.path.exists(image_path):
- valid = False
- lbl = "<b>Invalid image file path: %s.</b>\nPress <b>Select Image</b> to select an image." % image_path
- else:
- image_path = os.path.abspath(image_path)
- extend_name = os.path.splitext(image_path)[1][1:]
- if extend_name not in DEPLOYABLE_IMAGE_TYPES:
- valid = False
- lbl = "<b>Undeployable imge type: %s</b>\nPress <b>Select Image</b> to select an image." % extend_name
-
- if not valid:
- image_path = ''
- crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
- button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
- HobButton.style_button(button)
- crumbs_dialog.run()
- crumbs_dialog.destroy()
-
- self.deploy_dialog = DeployImageDialog(Title, image_path, self,
- gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT
- | gtk.DIALOG_NO_SEPARATOR, None, standalone=True)
- close_button = self.deploy_dialog.add_button("Close", gtk.RESPONSE_NO)
- HobAltButton.style_button(close_button)
- close_button.connect('clicked', gtk.main_quit)
-
- write_button = self.deploy_dialog.add_button("Write USB image", gtk.RESPONSE_YES)
- HobAltButton.style_button(write_button)
-
- self.deploy_dialog.connect('select_image_clicked', self.select_image_clicked_cb)
- self.deploy_dialog.connect('destroy', gtk.main_quit)
- response = self.deploy_dialog.show()
-
- def select_image_clicked_cb(self, dialog):
- cwd = os.getcwd()
- dialog = ImageSelectionDialog(cwd, DEPLOYABLE_IMAGE_TYPES, Title, self, gtk.FILE_CHOOSER_ACTION_SAVE )
- button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
- HobAltButton.style_button(button)
- button = dialog.add_button("Open", gtk.RESPONSE_YES)
- HobAltButton.style_button(button)
- response = dialog.run()
-
- if response == gtk.RESPONSE_YES:
- if not dialog.image_names:
- lbl = "<b>No selections made</b>\nClicked the radio button to select a image."
- crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
- button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
- HobButton.style_button(button)
- crumbs_dialog.run()
- crumbs_dialog.destroy()
- dialog.destroy()
- return
-
- # get the full path of image
- image_path = os.path.join(dialog.image_folder, dialog.image_names[0])
- self.deploy_dialog.set_image_text_buffer(image_path)
- self.deploy_dialog.set_image_path(image_path)
-
- dialog.destroy()
-
-def main():
- parser = optparse.OptionParser(
- usage = """%prog [-h] [image_file]
-
-%prog writes bootable images to USB devices. You can
-provide the image file on the command line or select it using the GUI.""")
-
- options, args = parser.parse_args(sys.argv)
- image_file = args[1] if len(args) > 1 else ''
- dw = DeployWindow(image_file)
-
-if __name__ == '__main__':
- try:
- main()
- gtk.main()
- except Exception:
- import traceback
- traceback.print_exc()
diff --git a/import-layers/yocto-poky/bitbake/bin/toaster b/import-layers/yocto-poky/bitbake/bin/toaster
index 70c66d2c2..f92d38eca 100755
--- a/import-layers/yocto-poky/bitbake/bin/toaster
+++ b/import-layers/yocto-poky/bitbake/bin/toaster
@@ -17,10 +17,12 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
-# Usage: source toaster [start|stop]
-# [webport=<port>] [noui] [noweb]
-
-# Helper function to kill a background toaster development server
+HELP="
+Usage: source toaster start|stop [webport=<address:port>] [noweb]
+ Optional arguments:
+ [noweb] Setup the environment for building with toaster but don't start the development server
+ [webport] Set the development server (default: localhost:8000)
+"
webserverKillAll()
{
@@ -31,9 +33,6 @@ webserverKillAll()
while kill -0 $pid 2>/dev/null; do
kill -SIGTERM -$pid 2>/dev/null
sleep 1
- # Kill processes if they are still running - may happen
- # in interactive shells
- ps fux | grep "python.*manage.py runserver" | awk '{print $2}' | xargs kill
done
rm ${pidfile}
fi
@@ -57,7 +56,8 @@ webserverStartAll()
echo "Failed migrations, aborting system start" 1>&2
return $retval
fi
-
+ # Make sure that checksettings can pick up any value for TEMPLATECONF
+ export TEMPLATECONF
$MANAGE checksettings --traceback || retval=1
if [ $retval -eq 1 ]; then
@@ -67,7 +67,7 @@ webserverStartAll()
echo "Starting webserver..."
- $MANAGE runserver "0.0.0.0:$WEB_PORT" \
+ $MANAGE runserver "$ADDR_PORT" \
</dev/null >>${BUILDDIR}/toaster_web.log 2>&1 \
& echo $! >${BUILDDIR}/.toastermain.pid
@@ -77,7 +77,8 @@ webserverStartAll()
retval=1
rm "${BUILDDIR}/.toastermain.pid"
else
- echo "Webserver address: http://0.0.0.0:$WEB_PORT/"
+ echo "Toaster development webserver started at http://$ADDR_PORT"
+ echo -e "\nYou can now run 'bitbake <target>' on the command line and monitor your build in Toaster.\nYou can also use a Toaster project to configure and run a build.\n"
fi
return $retval
@@ -91,14 +92,8 @@ stop_system()
# prevent reentry
if [ $INSTOPSYSTEM -eq 1 ]; then return; fi
INSTOPSYSTEM=1
- if [ -f ${BUILDDIR}/.toasterui.pid ]; then
- kill `cat ${BUILDDIR}/.toasterui.pid` 2>/dev/null
- rm ${BUILDDIR}/.toasterui.pid
- fi
webserverKillAll
# unset exported variables
- unset DATABASE_URL
- unset TOASTER_CONF
unset TOASTER_DIR
unset BITBAKE_UI
unset BBBASEDIR
@@ -109,11 +104,11 @@ stop_system()
verify_prereq() {
# Verify Django version
- reqfile=$(python -c "import os; print os.path.realpath('$BBBASEDIR/toaster-requirements.txt')")
+ reqfile=$(python3 -c "import os; print(os.path.realpath('$BBBASEDIR/toaster-requirements.txt'))")
exp='s/Django\([><=]\+\)\([^,]\+\),\([><=]\+\)\(.\+\)/'
exp=$exp'import sys,django;version=django.get_version().split(".");'
exp=$exp'sys.exit(not (version \1 "\2".split(".") and version \3 "\4".split(".")))/p'
- if ! sed -n "$exp" $reqfile | python - ; then
+ if ! sed -n "$exp" $reqfile | python3 - ; then
req=`grep ^Django $reqfile`
echo "This program needs $req"
echo "Please install with pip install -r $reqfile"
@@ -133,8 +128,8 @@ else
fi
export BBBASEDIR=`dirname $TOASTER`/..
-MANAGE=$BBBASEDIR/lib/toaster/manage.py
-OEROOT=`dirname $TOASTER`/../..
+MANAGE="python3 $BBBASEDIR/lib/toaster/manage.py"
+OE_ROOT=`dirname $TOASTER`/../..
# this is the configuraton file we are using for toaster
# we are using the same logic that oe-setup-builddir uses
@@ -144,29 +139,17 @@ OEROOT=`dirname $TOASTER`/../..
# in the local layers that currently make using an arbitrary
# toasterconf.json difficult.
-. $OEROOT/.templateconf
+. $OE_ROOT/.templateconf
if [ -n "$TEMPLATECONF" ]; then
if [ ! -d "$TEMPLATECONF" ]; then
# Allow TEMPLATECONF=meta-xyz/conf as a shortcut
- if [ -d "$OEROOT/$TEMPLATECONF" ]; then
- TEMPLATECONF="$OEROOT/$TEMPLATECONF"
- fi
- if [ ! -d "$TEMPLATECONF" ]; then
- echo >&2 "Error: '$TEMPLATECONF' must be a directory containing toasterconf.json"
- return 1
+ if [ -d "$OE_ROOT/$TEMPLATECONF" ]; then
+ TEMPLATECONF="$OE_ROOT/$TEMPLATECONF"
fi
fi
fi
-if [ "$TOASTER_CONF" = "" ]; then
- TOASTER_CONF="$TEMPLATECONF/toasterconf.json"
- export TOASTER_CONF=$(python -c "import os; print os.path.realpath('$TOASTER_CONF')")
-fi
-
-if [ ! -f $TOASTER_CONF ]; then
- echo "$TOASTER_CONF configuration file not found. Set TOASTER_CONF to specify file or fix .templateconf"
- return 1
-fi
+unset OE_ROOT
# this defines the dir toaster will use for
# 1) clones of layers (in _toaster_clones )
@@ -178,7 +161,7 @@ fi
export TOASTER_DIR=`pwd`
WEBSERVER=1
-WEB_PORT="8000"
+ADDR_PORT="localhost:8000"
unset CMD
for param in $*; do
case $param in
@@ -192,7 +175,24 @@ for param in $*; do
CMD=$param
;;
webport=*)
- WEB_PORT="${param#*=}"
+ ADDR_PORT="${param#*=}"
+ # Split the addr:port string
+ ADDR=`echo $ADDR_PORT | cut -f 1 -d ':'`
+ PORT=`echo $ADDR_PORT | cut -f 2 -d ':'`
+ # If only a port has been speified then set address to localhost.
+ if [ $ADDR = $PORT ] ; then
+ ADDR_PORT="localhost:$PORT"
+ fi
+ ;;
+ --help)
+ echo "$HELP"
+ return 0
+ ;;
+ *)
+ echo "$HELP"
+ return 1
+ ;;
+
esac
done
@@ -226,11 +226,9 @@ if [ "$CMD" = "start" ] ; then
return 1
fi
elif [ "$CMD" = "" ]; then
- if [ -z "$BBSERVER" ]; then
- CMD="start"
- else
- CMD="stop"
- fi
+ echo "No command specified"
+ echo "$HELP"
+ return 1
fi
echo "The system will $CMD."
@@ -241,15 +239,9 @@ case $CMD in
start )
# check if addr:port is not in use
if [ "$CMD" == 'start' ]; then
- $MANAGE checksocket "0.0.0.0:$WEB_PORT" || return 1
- fi
-
- # kill Toaster web server if it's alive
- if [ -e $BUILDDIR/.toastermain.pid ] && kill -0 `cat $BUILDDIR/.toastermain.pid`; then
- echo "Warning: bitbake appears to be dead, but the Toaster web server is running." 1>&2
- echo " Something fishy is going on." 1>&2
- echo "Cleaning up the web server to start from a clean slate."
- webserverKillAll
+ if [ $WEBSERVER -gt 0 ]; then
+ $MANAGE checksocket "$ADDR_PORT" || return 1
+ fi
fi
# Create configuration file
@@ -262,7 +254,6 @@ case $CMD in
return 4
fi
export BITBAKE_UI='toasterui'
- export DATABASE_URL=`$MANAGE get-dburl`
$MANAGE runbuilds & echo $! >${BUILDDIR}/.runbuilds.pid
# set fail safe stop system on terminal exit
trap stop_system SIGHUP
diff --git a/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay b/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay
index 615a7aed1..80967a093 100755
--- a/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay
+++ b/import-layers/yocto-poky/bitbake/bin/toaster-eventreplay
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -21,154 +21,106 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+"""
+This command takes a filename as a single parameter. The filename is read
+as a build eventlog, and the ToasterUI is used to process events in the file
+and log data in the database
+"""
-# This command takes a filename as a single parameter. The filename is read
-# as a build eventlog, and the ToasterUI is used to process events in the file
-# and log data in the database
-
-from __future__ import print_function
import os
-import sys, logging
+import sys
+import json
+import pickle
+import codecs
-# mangle syspath to allow easy import of modules
-sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
- 'lib'))
+from collections import namedtuple
+# mangle syspath to allow easy import of modules
+from os.path import join, dirname, abspath
+sys.path.insert(0, join(dirname(dirname(abspath(__file__))), 'lib'))
import bb.cooker
from bb.ui import toasterui
-import sys
-import logging
-import json, pickle
-
-
-class FileReadEventsServerConnection():
- """ Emulates a connection to a bitbake server that feeds
- events coming actually read from a saved log file.
- """
-
- class MockConnection():
- """ fill-in for the proxy to the server. we just return generic data
+class EventPlayer:
+ """Emulate a connection to a bitbake server."""
+
+ def __init__(self, eventfile, variables):
+ self.eventfile = eventfile
+ self.variables = variables
+ self.eventmask = []
+
+ def waitEvent(self, _timeout):
+ """Read event from the file."""
+ line = self.eventfile.readline().strip()
+ if not line:
+ return
+ try:
+ event_str = json.loads(line)['vars'].encode('utf-8')
+ event = pickle.loads(codecs.decode(event_str, 'base64'))
+ event_name = "%s.%s" % (event.__module__, event.__class__.__name__)
+ if event_name not in self.eventmask:
+ return
+ return event
+ except ValueError as err:
+ print("Failed loading ", line)
+ raise err
+
+ def runCommand(self, command_line):
+ """Emulate running a command on the server."""
+ name = command_line[0]
+
+ if name == "getVariable":
+ var_name = command_line[1]
+ variable = self.variables.get(var_name)
+ if variable:
+ return variable['v'], None
+ return None, "Missing variable %s" % var_name
+
+ elif name == "getAllKeysWithFlags":
+ dump = {}
+ flaglist = command_line[1]
+ for key, val in self.variables.items():
+ try:
+ if not key.startswith("__"):
+ dump[key] = {
+ 'v': val['v'],
+ 'history' : val['history'],
+ }
+ for flag in flaglist:
+ dump[key][flag] = val[flag]
+ except Exception as err:
+ print(err)
+ return (dump, None)
+
+ elif name == 'setEventMask':
+ self.eventmask = command_line[-1]
+ return True, None
+
+ else:
+ raise Exception("Command %s not implemented" % command_line[0])
+
+ def getEventHandle(self):
"""
- def __init__(self, sc):
- self._sc = sc
-
- def runCommand(self, commandArray):
- """ emulates running a command on the server; only read-only commands are accepted """
- command_name = commandArray[0]
-
- if command_name == "getVariable":
- if commandArray[1] in self._sc._variables:
- return (self._sc._variables[commandArray[1]]['v'], None)
- return (None, "Missing variable")
-
- elif command_name == "getAllKeysWithFlags":
- dump = {}
- flaglist = commandArray[1]
- for k in self._sc._variables.keys():
- try:
- if not k.startswith("__"):
- v = self._sc._variables[k]['v']
- dump[k] = {
- 'v' : v ,
- 'history' : self._sc._variables[k]['history'],
- }
- for d in flaglist:
- dump[k][d] = self._sc._variables[k][d]
- except Exception as e:
- print(e)
- return (dump, None)
- else:
- raise Exception("Command %s not implemented" % commandArray[0])
-
- def terminateServer(self):
- """ do not do anything """
- pass
-
-
-
- class EventReader():
- def __init__(self, sc):
- self._sc = sc
- self.firstraise = 0
-
- def _create_event(self, line):
- def _import_class(name):
- assert len(name) > 0
- assert "." in name, name
-
- components = name.strip().split(".")
- modulename = ".".join(components[:-1])
- moduleklass = components[-1]
-
- module = __import__(modulename, fromlist=[str(moduleklass)])
- return getattr(module, moduleklass)
-
- # we build a toaster event out of current event log line
- try:
- event_data = json.loads(line.strip())
- event_class = _import_class(event_data['class'])
- event_object = pickle.loads(json.loads(event_data['vars']))
- except ValueError as e:
- print("Failed loading ", line)
- raise e
-
- if not isinstance(event_object, event_class):
- raise Exception("Error loading objects %s class %s ", event_object, event_class)
-
- return event_object
-
- def waitEvent(self, timeout):
-
- nextline = self._sc._eventfile.readline()
- if len(nextline) == 0:
- # the build data ended, while toasterui still waits for events.
- # this happens when the server was abruptly stopped, so we simulate this
- self.firstraise += 1
- if self.firstraise == 1:
- raise KeyboardInterrupt()
- else:
- return None
- else:
- self._sc.lineno += 1
- return self._create_event(nextline)
-
-
- def _readVariables(self, variableline):
- self._variables = json.loads(variableline.strip())['allvariables']
-
-
- def __init__(self, file_name):
- self.connection = FileReadEventsServerConnection.MockConnection(self)
- self._eventfile = open(file_name, "r")
-
- # we expect to have the variable dump at the start of the file
- self.lineno = 1
- self._readVariables(self._eventfile.readline())
-
- self.events = FileReadEventsServerConnection.EventReader(self)
-
-
-
+ This method is called by toasterui.
+ The return value is passed to self.runCommand but not used there.
+ """
+ pass
+def main(argv):
+ with open(argv[-1]) as eventfile:
+ # load variables from the first line
+ variables = json.loads(eventfile.readline().strip())['allvariables']
-class MockConfigParameters():
- """ stand-in for cookerdata.ConfigParameters; as we don't really config a cooker, this
- serves just to supply needed interfaces for the toaster ui to work """
- def __init__(self):
- self.observe_only = True # we can only read files
+ params = namedtuple('ConfigParams', ['observe_only'])(True)
+ player = EventPlayer(eventfile, variables)
+ return toasterui.main(player, player, params)
# run toaster ui on our mock bitbake class
if __name__ == "__main__":
- if len(sys.argv) < 2:
- print("Usage: %s event.log " % sys.argv[0])
+ if len(sys.argv) != 2:
+ print("Usage: %s <event file>" % os.path.basename(sys.argv[0]))
sys.exit(1)
- file_name = sys.argv[-1]
- mock_connection = FileReadEventsServerConnection(file_name)
- configParams = MockConfigParameters()
-
- # run the main program and set exit code to the returned value
- sys.exit(toasterui.main(mock_connection.connection, mock_connection.events, configParams))
+ sys.exit(main(sys.argv))
diff --git a/import-layers/yocto-poky/bitbake/contrib/dump_cache.py b/import-layers/yocto-poky/bitbake/contrib/dump_cache.py
index e1f23090b..f4d4c1b12 100755
--- a/import-layers/yocto-poky/bitbake/contrib/dump_cache.py
+++ b/import-layers/yocto-poky/bitbake/contrib/dump_cache.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -29,14 +29,14 @@ import warnings
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])), '../lib'))
from bb.cache import CoreRecipeInfo
-import cPickle as pickle
+import pickle as pickle
def main(argv=None):
"""
Get the mapping for the target recipe.
"""
if len(argv) != 1:
- print >>sys.stderr, "Error, need one argument!"
+ print("Error, need one argument!", file=sys.stderr)
return 2
cachefile = argv[0]
@@ -56,7 +56,7 @@ def main(argv=None):
continue
# 1.0 is the default version for a no PV recipe.
- if val.__dict__.has_key("pv"):
+ if "pv" in val.__dict__:
pv = val.pv
else:
pv = "1.0"
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
index b1b72e0aa..e4cc422ea 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
@@ -596,7 +596,7 @@
"<link linkend='checksums'>Checksums (Signatures)</link>"
section for information).
It is also possible to append extra metadata to the stamp using
- the "stamp-extra-info" task flag.
+ the <filename>[stamp-extra-info]</filename> task flag.
For example, OpenEmbedded uses this flag to make some tasks machine-specific.
</para>
@@ -653,7 +653,8 @@
</itemizedlist>
It is possible to have functions run before and after a task's main
function.
- This is done using the "prefuncs" and "postfuncs" flags of the task
+ This is done using the <filename>[prefuncs]</filename>
+ and <filename>[postfuncs]</filename> flags of the task
that lists the functions to run.
</para>
</section>
@@ -827,7 +828,7 @@
itself.
The simplest parameter to pass is "none", which causes a
set of signature information to be written out into
- <filename>STAMP_DIR</filename>
+ <filename>STAMPS_DIR</filename>
corresponding to the targets specified.
The other currently available parameter is "printdiff",
which causes BitBake to try to establish the closest
@@ -915,7 +916,7 @@
<para>
Finally, after all the setscene tasks have executed, BitBake calls the
function listed in
- <link linkend='var-BB_SETSCENE_VERIFY_FUNCTION'><filename>BB_SETSCENE_VERIFY_FUNCTION</filename></link>
+ <link linkend='var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></link>
with the list of tasks BitBake thinks has been "covered".
The metadata can then ensure that this list is correct and can
inform BitBake that it wants specific tasks to be run regardless
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
index f168cfa68..2a3340b39 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml
@@ -670,8 +670,8 @@
The <filename>module</filename> and <filename>vob</filename>
options are combined to create the <filename>load</filename> rule in
the view config spec.
- As an example, consider the <filename>vob</filename> and
- <filename>module</filename> values from the
+ As an example, consider the <filename>vob</filename> and
+ <filename>module</filename> values from the
<filename>SRC_URI</filename> statement at the start of this section.
Combining those values results in the following:
<literallayout class='monospaced'>
@@ -716,6 +716,68 @@
</para>
</section>
+ <section id='perforce-fetcher'>
+ <title>Perforce Fetcher (<filename>p4://</filename>)</title>
+
+ <para>
+ This fetcher submodule fetches code from the
+ <ulink url='https://www.perforce.com/'>Perforce</ulink>
+ source control system.
+ The executable used is specified by
+ <filename>FETCHCMD_p4</filename>, which defaults
+ to "p4".
+ The fetcher's temporary working directory is set by
+ <link linkend='var-P4DIR'><filename>P4DIR</filename></link>,
+ which defaults to "DL_DIR/p4".
+ </para>
+
+ <para>
+ To use this fetcher, make sure your recipe has proper
+ <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>,
+ <link linkend='var-SRCREV'><filename>SRCREV</filename></link>, and
+ <link linkend='var-PV'><filename>PV</filename></link> values.
+ The p4 executable is able to use the config file defined by your
+ system's <filename>P4CONFIG</filename> environment variable in
+ order to define the Perforce server URL and port, username, and
+ password if you do not wish to keep those values in a recipe
+ itself.
+ If you choose not to use <filename>P4CONFIG</filename>,
+ or to explicitly set variables that <filename>P4CONFIG</filename>
+ can contain, you can specify the <filename>P4PORT</filename> value,
+ which is the server's URL and port number, and you can
+ specify a username and password directly in your recipe within
+ <filename>SRC_URI</filename>.
+ </para>
+
+ <para>
+ Here is an example that relies on <filename>P4CONFIG</filename>
+ to specify the server URL and port, username, and password, and
+ fetches the Head Revision:
+ <literallayout class='monospaced'>
+ SRC_URI = "p4://example-depot/main/source/..."
+ SRCREV = "${AUTOREV}"
+ PV = "p4-${SRCPV}"
+ S = "${WORKDIR}/p4"
+ </literallayout>
+ </para>
+
+ <para>
+ Here is an example that specifies the server URL and port,
+ username, and password, and fetches a Revision based on a Label:
+ <literallayout class='monospaced'>
+ P4PORT = "tcp:p4server.example.net:1666"
+ SRC_URI = "p4://user:passwd@example-depot/main/source/..."
+ SRCREV = "release-1.0"
+ PV = "p4-${SRCPV}"
+ S = "${WORKDIR}/p4"
+ </literallayout>
+ <note>
+ You should always set <filename>S</filename>
+ to <filename>"${WORKDIR}/p4"</filename> in your recipe.
+ </note>
+ </para>
+ </section>
+
<section id='other-fetchers'>
<title>Other Fetchers</title>
@@ -726,9 +788,6 @@
Bazaar (<filename>bzr://</filename>)
</para></listitem>
<listitem><para>
- Perforce (<filename>p4://</filename>)
- </para></listitem>
- <listitem><para>
Trees using Git Annex (<filename>gitannex://</filename>)
</para></listitem>
<listitem><para>
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
index f6d82b4f3..8b7edbff5 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-hello.xml
@@ -399,7 +399,7 @@ ERROR: Unable to parse base: ParseError in configuration INHERITs: Could not inh
<link linkend='var-BBFILES'>BBFILES</link> += "${LAYERDIR}/*.bb"
<link linkend='var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</link> += "mylayer"
- <link linkend='var-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR}/"
+ <link linkend='var-BBFILE_PATTERN'>BBFILE_PATTERN_mylayer</link> := "^${LAYERDIR_RE}/"
</literallayout>
For information on these variables, click the links
to go to the definitions in the glossary.</para>
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
index 7a37edd50..4d58dc456 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-intro.xml
@@ -634,6 +634,25 @@
</para>
</section>
+ <section id='executing-a-list-of-task-and-recipe-combinations'>
+ <title>Executing a List of Task and Recipe Combinations</title>
+
+ <para>
+ The BitBake command line supports specifying different
+ tasks for individual targets when you specify multiple
+ targets.
+ For example, suppose you had two targets (or recipes)
+ <filename>myfirstrecipe</filename> and
+ <filename>mysecondrecipe</filename> and you needed
+ BitBake to run <filename>taskA</filename> for the first
+ recipe and <filename>taskB</filename> for the second
+ recipe:
+ <literallayout class='monospaced'>
+ $ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
+ </literallayout>
+ </para>
+ </section>
+
<section id='generating-dependency-graphs'>
<title>Generating Dependency Graphs</title>
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index 6329cd6e4..71bb25bf7 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -44,28 +44,73 @@
VARIABLE = " "
</literallayout>
</para>
+
+ <para>
+ You can use single quotes instead of double quotes
+ when setting a variable's value.
+ Doing so allows you to use values that contain the double
+ quote character:
+ <literallayout class='monospaced'>
+ VARIABLE = 'I have a " in my value'
+ </literallayout>
+ <note>
+ Unlike in Bourne shells, single quotes work identically
+ to double quotes in all other ways.
+ They do not suppress variable expansions.
+ </note>
+ </para>
</section>
<section id='variable-expansion'>
<title>Variable Expansion</title>
<para>
- BitBake supports variables referencing one another's
- contents using a syntax that is similar to shell scripting.
- Following is an example that results in <filename>A</filename>
- containing "aval" and <filename>B</filename> evaluating to
- "preavalpost" based on that current value of
- <filename>A</filename>.
+ Variables can reference the contents of other variables
+ using a syntax that is similar to variable expansion in
+ Bourne shells.
+ The following assignments
+ result in A containing "aval" and B evaluating to "preavalpost".
<literallayout class='monospaced'>
A = "aval"
B = "pre${A}post"
</literallayout>
- You should realize that whenever <filename>B</filename> is
- referenced, its evaluation will depend on the state of
- <filename>A</filename> at that time.
- Thus, later evaluations of <filename>B</filename> in the
- previous example could result in different values
- depending on the value of <filename>A</filename>.
+ <note>
+ Unlike in Bourne shells, the curly braces are mandatory:
+ Only <filename>${FOO}</filename> and not
+ <filename>$FOO</filename> is recognized as an expansion of
+ <filename>FOO</filename>.
+ </note>
+ The "=" operator does not immediately expand variable
+ references in the right-hand side.
+ Instead, expansion is deferred until the variable assigned to
+ is actually used.
+ The result depends on the current values of the referenced
+ variables.
+ The following example should clarify this behavior:
+ <literallayout class='monospaced'>
+ A = "${B} baz"
+ B = "${C} bar"
+ C = "foo"
+ *At this point, ${A} equals "foo bar baz"*
+ C = "qux"
+ *At this point, ${A} equals "qux bar baz"*
+ B = "norf"
+ *At this point, ${A} equals "norf baz"*
+ </literallayout>
+ Contrast this behavior with the
+ <link linkend='immediate-variable-expansion'>immediate variable expansion</link>
+ operator (i.e. ":=").
+ </para>
+
+ <para>
+ If the variable expansion syntax is used on a variable that
+ does not exist, the string is kept as is.
+ For example, given the following assignment,
+ <filename>BAR</filename> expands to the literal string
+ "${FOO}" as long as <filename>FOO</filename> does not exist.
+ <literallayout class='monospaced'>
+ BAR = "${FOO}"
+ </literallayout>
</para>
</section>
@@ -232,6 +277,15 @@
override syntax.
</note>
</para>
+
+ <para>
+ It is also possible to append and prepend to shell
+ functions and BitBake-style Python functions.
+ See the
+ "<link linkend='shell-functions'>Shell Functions</link>" and
+ "<link linkend='bitbake-style-python-functions'>BitBake-Style Python Functions</link>
+ sections for examples.
+ </para>
</section>
<section id='removing-override-style-syntax'>
@@ -259,6 +313,60 @@
"789 123456" and <filename>FOO2</filename> becomes
"ghi abcdef".
</para>
+
+ <para>
+ Like "_append" and "_prepend", "_remove"
+ is deferred until after parsing completes.
+ </para>
+ </section>
+
+ <section id='override-style-operation-advantages'>
+ <title>Override Style Operation Advantages</title>
+
+ <para>
+ An advantage of the override style operations
+ "_append", "_prepend", and "_remove" as compared to the
+ "+=" and "=+" operators is that the override style
+ operators provide guaranteed operations.
+ For example, consider a class <filename>foo.bbclass</filename>
+ that needs to add the value "val" to the variable
+ <filename>FOO</filename>, and a recipe that uses
+ <filename>foo.bbclass</filename> as follows:
+ <literallayout class='monospaced'>
+ inherit foo
+
+ FOO = "initial"
+ </literallayout>
+ If <filename>foo.bbclass</filename> uses the "+=" operator,
+ as follows, then the final value of <filename>FOO</filename>
+ will be "initial", which is not what is desired:
+ <literallayout class='monospaced'>
+ FOO += "val"
+ </literallayout>
+ If, on the other hand, <filename>foo.bbclass</filename>
+ uses the "_append" operator, then the final value of
+ <filename>FOO</filename> will be "initial val", as intended:
+ <literallayout class='monospaced'>
+ FOO_append = " val"
+ </literallayout>
+ <note>
+ It is never necessary to use "+=" together with "_append".
+ The following sequence of assignments appends "barbaz" to
+ <filename>FOO</filename>:
+ <literallayout class='monospaced'>
+ FOO_append = "bar"
+ FOO_append = "baz"
+ </literallayout>
+ The only effect of changing the second assignment in the
+ previous example to use "+=" would be to add a space before
+ "baz" in the appended value (due to how the "+=" operator
+ works).
+ </note>
+ Another advantage of the override style operations is that
+ you can combine them with other overrides as described in the
+ "<link linkend='conditional-syntax-overrides'>Conditional Syntax (Overrides)</link>"
+ section.
+ </para>
</section>
<section id='variable-flag-syntax'>
@@ -277,8 +385,7 @@
You can define, append, and prepend values to variable flags.
All the standard syntax operations previously mentioned work
for variable flags except for override style syntax
- (i.e. <filename>_prepend</filename>, <filename>_append</filename>,
- and <filename>_remove</filename>).
+ (i.e. "_prepend", "_append", and "_remove").
</para>
<para>
@@ -289,9 +396,9 @@
FOO[a] += "456"
</literallayout>
The variable <filename>FOO</filename> has two flags:
- <filename>a</filename> and <filename>b</filename>.
+ <filename>[a]</filename> and <filename>[b]</filename>.
The flags are immediately set to "abc" and "123", respectively.
- The <filename>a</filename> flag becomes "abc 456".
+ The <filename>[a]</filename> flag becomes "abc 456".
</para>
<para>
@@ -330,7 +437,43 @@
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
</literallayout>
+ <note>
+ Inline Python expressions work just like variable expansions
+ insofar as the "=" and ":=" operators are concerned.
+ Given the following assignment, <filename>foo()</filename>
+ is called each time <filename>FOO</filename> is expanded:
+ <literallayout class='monospaced'>
+ FOO = "${@foo()}"
+ </literallayout>
+ Contrast this with the following immediate assignment, where
+ <filename>foo()</filename> is only called once, while the
+ assignment is parsed:
+ <literallayout class='monospaced'>
+ FOO := "${@foo()}"
+ </literallayout>
+ </note>
+ For a different way to set variables with Python code during
+ parsing, see the
+ "<link linkend='anonymous-python-functions'>Anonymous Python Functions</link>"
+ section.
+ </para>
+ </section>
+
+ <section id='unsetting-variables'>
+ <title>Unseting variables</title>
+
+ <para>
+ It is possible to completely remove a variable or a variable flag
+ from BitBake's internal data dictionary by using the "unset" keyword.
+ Here is an example:
+ <literallayout class='monospaced'>
+ unset DATE
+ unset do_fetch[noexec]
+ </literallayout>
+ These two statements remove the <filename>DATE</filename> and the
+ <filename>do_fetch[noexec]</filename> flag.
</para>
+
</section>
<section id='providing-pathnames'>
@@ -357,6 +500,53 @@
</section>
</section>
+ <section id='exporting-variables-to-the-environment'>
+ <title>Exporting Variables to the Environment</title>
+
+ <para>
+ You can export variables to the environment of running
+ tasks by using the <filename>export</filename> keyword.
+ For example, in the following example, the
+ <filename>do_foo</filename> task prints "value from
+ the environment" when run:
+ <literallayout class='monospaced'>
+ export ENV_VARIABLE
+ ENV_VARIABLE = "value from the environment"
+
+ do_foo() {
+ bbplain "$ENV_VARIABLE"
+ }
+ </literallayout>
+ <note>
+ BitBake does not expand <filename>$ENV_VARIABLE</filename>
+ in this case because it lacks the obligatory
+ <filename>{}</filename>.
+ Rather, <filename>$ENV_VARIABLE</filename> is expanded
+ by the shell.
+ </note>
+ It does not matter whether
+ <filename>export ENV_VARIABLE</filename> appears before or
+ after assignments to <filename>ENV_VARIABLE</filename>.
+ </para>
+
+ <para>
+ It is also possible to combine <filename>export</filename>
+ with setting a value for the variable.
+ Here is an example:
+ <literallayout class='monospaced'>
+ export ENV_VARIABLE = "<replaceable>variable-value</replaceable>"
+ </literallayout>
+ In the output of <filename>bitbake -e</filename>, variables
+ that are exported to the environment are preceded by "export".
+ </para>
+
+ <para>
+ Among the variables commonly exported to the environment
+ are <filename>CC</filename> and <filename>CFLAGS</filename>,
+ which are picked up by many build systems.
+ </para>
+ </section>
+
<section id='conditional-syntax-overrides'>
<title>Conditional Syntax (Overrides)</title>
@@ -455,6 +645,34 @@
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
</literallayout>
</para></listitem>
+ <listitem><para><emphasis>Setting a Variable for a Single Task:</emphasis>
+ BitBake supports setting a variable just for the
+ duration of a single task.
+ Here is an example:
+ <literallayout class='monospaced'>
+ FOO_task-configure = "val 1"
+ FOO_task-compile = "val 2"
+ </literallayout>
+ In the previous example, <filename>FOO</filename>
+ has the value "val 1" while the
+ <filename>do_configure</filename> task is executed,
+ and the value "val 2" while the
+ <filename>do_compile</filename> task is executed.
+ </para>
+
+ <para>Internally, this is implemented by prepending
+ the task (e.g. "task-compile:") to the value of
+ <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
+ for the local datastore of the <filename>do_compile</filename>
+ task.</para>
+
+ <para>You can also use this syntax with other combinations
+ (e.g. "<filename>_prepend</filename>") as shown in the
+ following example:
+ <literallayout class='monospaced'>
+ EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
+ </literallayout>
+ </para></listitem>
</itemizedlist>
</para>
</section>
@@ -545,15 +763,15 @@
OVERRIDES = "foo"
A = "Y"
A_foo_append = "Z"
- A_foo_append += "X"
+ A_foo_append = "X"
</literallayout>
For this case, before any overrides are resolved,
<filename>A</filename> is set to "Y" using an immediate assignment.
After this immediate assignment, <filename>A_foo</filename> is set
to "Z", and then further appended with
- "X" leaving the variable set to "Z X".
+ "X" leaving the variable set to "ZX".
Finally, applying the override for "foo" results in the conditional
- variable <filename>A</filename> becoming "Z X" (i.e.
+ variable <filename>A</filename> becoming "ZX" (i.e.
<filename>A</filename> is replaced with <filename>A_foo</filename>).
</para>
@@ -572,7 +790,7 @@
Initially, <filename>A</filename> is set to "1 45" because
of the three statements that use immediate operators.
After these assignments are made, BitBake applies the
- <filename>_append</filename> operations.
+ "_append" operations.
Those operations result in <filename>A</filename> becoming "1 4523".
</para>
</section>
@@ -842,7 +1060,7 @@
directly as functions, tasks, or both.
They can also be called by other shell functions.
</para></listitem>
- <listitem><para><emphasis>BitBake Style Python Functions:</emphasis>
+ <listitem><para><emphasis>BitBake-Style Python Functions:</emphasis>
Functions written in Python and executed by BitBake or other
Python functions using <filename>bb.build.exec_func()</filename>.
</para></listitem>
@@ -881,10 +1099,60 @@
such as <filename>dash</filename>.
You should not use Bash-specific script (bashisms).
</para>
+
+ <para>
+ Overrides and override-style operators like
+ <filename>_append</filename> and
+ <filename>_prepend</filename> can also be applied to
+ shell functions.
+ Most commonly, this application would be used in a
+ <filename>.bbappend</filename> file to modify functions in
+ the main recipe.
+ It can also be used to modify functions inherited from
+ classes.
+ </para>
+
+ <para>
+ As an example, consider the following:
+ <literallayout class='monospaced'>
+ do_foo() {
+ bbplain first
+ fn
+ }
+
+ fn_prepend() {
+ bbplain second
+ }
+
+ fn() {
+ bbplain third
+ }
+
+ do_foo_append() {
+ bbplain fourth
+ }
+ </literallayout>
+ Running <filename>do_foo</filename>
+ prints the following:
+ <literallayout class='monospaced'>
+ recipename do_foo: first
+ recipename do_foo: second
+ recipename do_foo: third
+ recipename do_foo: fourth
+ </literallayout>
+ <note>
+ Overrides and override-style operators can
+ be applied to any shell function, not just
+ <link linkend='tasks'>tasks</link>.
+ </note>
+ You can use the <filename>bitbake -e</filename>&nbsp;<replaceable>recipename</replaceable>
+ command to view the final assembled function
+ after all overrides have been applied.
+ </para>
</section>
<section id='bitbake-style-python-functions'>
- <title>BitBake Style Python Functions</title>
+ <title>BitBake-Style Python Functions</title>
<para>
These functions are written in Python and executed by
@@ -905,19 +1173,51 @@
Also in these types of functions, the datastore ("d")
is a global variable and is always automatically
available.
- </para>
-
- <note>
- Variable expressions (e.g. <filename>${X}</filename>) are no
- longer expanded within Python functions.
- This behavior is intentional in order to allow you to freely
- set variable values to expandable expressions without having
- them expanded prematurely.
- If you do wish to expand a variable within a Python function,
- use <filename>d.getVar("X", True)</filename>.
- Or, for more complicated expressions, use
- <filename>d.expand()</filename>.
- </note>
+ <note>
+ Variable expressions (e.g. <filename>${X}</filename>)
+ are no longer expanded within Python functions.
+ This behavior is intentional in order to allow you
+ to freely set variable values to expandable expressions
+ without having them expanded prematurely.
+ If you do wish to expand a variable within a Python
+ function, use <filename>d.getVar("X", True)</filename>.
+ Or, for more complicated expressions, use
+ <filename>d.expand()</filename>.
+ </note>
+ </para>
+
+ <para>
+ Similar to shell functions, you can also apply overrides
+ and override-style operators to BitBake-style Python
+ functions.
+ </para>
+
+ <para>
+ As an example, consider the following:
+ <literallayout class='monospaced'>
+ python do_foo_prepend() {
+ bb.plain("first")
+ }
+
+ python do_foo() {
+ bb.plain("second")
+ }
+
+ python do_foo_append() {
+ bb.plain("third")
+ }
+ </literallayout>
+ Running <filename>do_foo</filename> prints
+ the following:
+ <literallayout class='monospaced'>
+ recipename do_foo: first
+ recipename do_foo: second
+ recipename do_foo: third
+ </literallayout>
+ You can use the <filename>bitbake -e</filename>&nbsp;<replaceable>recipename</replaceable>
+ command to view the final assembled function
+ after all overrides have been applied.
+ </para>
</section>
<section id='python-functions'>
@@ -961,36 +1261,178 @@
</para>
</section>
+ <section id='bitbake-style-python-functions-versus-python-functions'>
+ <title>Bitbake-Style Python Functions Versus Python Functions</title>
+
+ <para>
+ Following are some important differences between
+ BitBake-style Python functions and regular Python
+ functions defined with "def":
+ <itemizedlist>
+ <listitem><para>
+ Only BitBake-style Python functions can be
+ <link linkend='tasks'>tasks</link>.
+ </para></listitem>
+ <listitem><para>
+ Overrides and override-style operators can only
+ be applied to BitBake-style Python functions.
+ </para></listitem>
+ <listitem><para>
+ Only regular Python functions can take arguments
+ and return values.
+ </para></listitem>
+ <listitem><para>
+ <link linkend='variable-flags'>Variable flags</link>
+ such as <filename>[dirs]</filename>,
+ <filename>[cleandirs]</filename>, and
+ <filename>[lockfiles]</filename> can be used
+ on BitBake-style Python functions, but not on
+ regular Python functions.
+ </para></listitem>
+ <listitem><para>
+ BitBake-style Python functions generate a separate
+ <filename>${</filename><link linkend='var-T'><filename>T</filename></link><filename>}/run.</filename><replaceable>function-name</replaceable><filename>.</filename><replaceable>pid</replaceable>
+ script that is executed to run the function, and also
+ generate a log file in
+ <filename>${T}/log.</filename><replaceable>function-name</replaceable><filename>.</filename><replaceable>pid</replaceable>
+ if they are executed as tasks.</para>
+
+ <para>
+ Regular Python functions execute "inline" and do not
+ generate any files in <filename>${T}</filename>.
+ </para></listitem>
+ <listitem><para>
+ Regular Python functions are called with the usual
+ Python syntax.
+ BitBake-style Python functions are usually tasks and
+ are called directly by BitBake, but can also be called
+ manually from Python code by using the
+ <filename>bb.build.exec_func()</filename> function.
+ Here is an example:
+ <literallayout class='monospaced'>
+ bb.build.exec_func("my_bitbake_style_function", d)
+ </literallayout>
+ <note>
+ <filename>bb.build.exec_func()</filename> can also
+ be used to run shell functions from Python code.
+ If you want to run a shell function before a Python
+ function within the same task, then you can use a
+ parent helper Python function that starts by running
+ the shell function with
+ <filename>bb.build.exec_func()</filename> and then
+ runs the Python code.
+ </note></para>
+
+ <para>To detect errors from functions executed with
+ <filename>bb.build.exec_func()</filename>, you
+ can catch the <filename>bb.build.FuncFailed</filename>
+ exception.
+ <note>
+ Functions in metadata (recipes and classes) should
+ not themselves raise
+ <filename>bb.build.FuncFailed</filename>.
+ Rather, <filename>bb.build.FuncFailed</filename>
+ should be viewed as a general indicator that the
+ called function failed by raising an exception.
+ For example, an exception raised by
+ <filename>bb.fatal()</filename> will be caught inside
+ <filename>bb.build.exec_func()</filename>, and a
+ <filename>bb.build.FuncFailed</filename> will be raised
+ in response.
+ </note>
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Due to their simplicity, you should prefer regular Python functions
+ over BitBake-style Python functions unless you need a feature specific
+ to BitBake-style Python functions.
+ Regular Python functions in metadata are a more recent invention than
+ BitBake-style Python functions, and older code tends to use
+ <filename>bb.build.exec_func()</filename> more often.
+ </para>
+ </section>
+
<section id='anonymous-python-functions'>
<title>Anonymous Python Functions</title>
<para>
- Sometimes it is useful to run some code during
- parsing to set variables or to perform other operations
- programmatically.
- To do this, you can define an anonymous Python function.
- Here is an example that conditionally sets a
- variable based on the value of another variable:
+ Sometimes it is useful to set variables or perform
+ other operations programmatically during parsing.
+ To do this, you can define special Python functions,
+ called anonymous Python functions, that run at the
+ end of parsing.
+ For example, the following conditionally sets a variable
+ based on the value of another variable:
<literallayout class='monospaced'>
- python __anonymous () {
+ python () {
if d.getVar('SOMEVAR', True) == 'value':
d.setVar('ANOTHERVAR', 'value2')
}
</literallayout>
- The "__anonymous" function name is optional, so the
- following example is functionally equivalent to the above:
+ An equivalent way to mark a function as an anonymous
+ function is to give it the name "__anonymous", rather
+ than no name.
+ </para>
+
+ <para>
+ Anonymous Python functions always run at the end
+ of parsing, regardless of where they are defined.
+ If a recipe contains many anonymous functions, they
+ run in the same order as they are defined within the
+ recipe.
+ As an example, consider the following snippet:
<literallayout class='monospaced'>
python () {
- if d.getVar('SOMEVAR', True) == 'value':
- d.setVar('ANOTHERVAR', 'value2')
+ d.setVar('FOO', 'foo 2')
+ }
+
+ FOO = "foo 1"
+
+ python () {
+ d.appendVar('BAR', ' bar 2')
+ }
+
+ BAR = "bar 1"
+ </literallayout>
+ The previous example is conceptually equivalent to the
+ following snippet:
+ <literallayout class='monospaced'>
+ FOO = "foo 1"
+ BAR = "bar 1"
+ FOO = "foo 2"
+ BAR += "bar 2"
+ </literallayout>
+ <filename>FOO</filename> ends up with the value "foo 2",
+ and <filename>BAR</filename> with the value "bar 1 bar 2".
+ Just as in the second snippet, the values set for the
+ variables within the anonymous functions become available
+ to tasks, which always run after parsing.
+ </para>
+
+ <para>
+ Overrides and override-style operators such as
+ "<filename>_append</filename>" are applied before
+ anonymous functions run.
+ In the following example, <filename>FOO</filename> ends
+ up with the value "foo from anonymous":
+ <literallayout class='monospaced'>
+ FOO = "foo"
+ FOO_append = " from outside"
+
+ python () {
+ d.setVar("FOO", "foo from anonymous")
}
</literallayout>
- Because unlike other Python functions anonymous
- Python functions are executed during parsing, the
- "d" variable within an anonymous Python function represents
- the datastore for the entire recipe.
- Consequently, you can set variable values here and
- those values can be picked up by other functions.
+ For methods you can use with anonymous Python functions,
+ see the
+ "<link linkend='functions-you-can-call-from-within-python'>Functions You Can Call From Within Python</link>"
+ section.
+ For a different method to run Python code during parsing,
+ see the
+ "<link linkend='inline-python-variable-expansion'>Inline Python Variable Expansion</link>"
+ section.
</para>
</section>
@@ -1089,37 +1531,29 @@
<title>Tasks</title>
<para>
- Tasks are BitBake execution units that originate as
- functions and make up the steps that BitBake needs to run
- for given recipe.
- Tasks are only supported in recipe (<filename>.bb</filename>
- or <filename>.inc</filename>) and class
- (<filename>.bbclass</filename>) files.
- By convention, task names begin with the string "do_".
- </para>
-
- <para>
- Here is an example of a task that prints out the date:
- <literallayout class='monospaced'>
- python do_printdate () {
- import time
- print time.strftime('%Y%m%d', time.gmtime())
- }
- addtask printdate after do_fetch before do_build
- </literallayout>
+ Tasks are BitBake execution units that make up the
+ steps that BitBake can run for a given recipe.
+ Tasks are only supported in recipes and classes
+ (i.e. in <filename>.bb</filename> files and files
+ included or inherited from <filename>.bb</filename>
+ files).
+ By convention, tasks have names that start with "do_".
</para>
<section id='promoting-a-function-to-a-task'>
<title>Promoting a Function to a Task</title>
<para>
- Any function can be promoted to a task by applying the
+ Tasks are either
+ <link linkend='shell-functions'>shell functions</link> or
+ <link linkend='bitbake-style-python-functions'>BitBake-style Python functions</link>
+ that have been promoted to tasks by using the
<filename>addtask</filename> command.
- The <filename>addtask</filename> command also describes
- inter-task dependencies.
- Here is the function from the previous section but with the
- <filename>addtask</filename> command promoting it to a task
- and defining some dependencies:
+ The <filename>addtask</filename> command can also
+ optionally describe dependencies between the
+ task and other tasks.
+ Here is an example that shows how to define a task
+ and declare some dependencies:
<literallayout class='monospaced'>
python do_printdate () {
import time
@@ -1127,15 +1561,81 @@
}
addtask printdate after do_fetch before do_build
</literallayout>
- In the example, the function is defined and then promoted
- as a task.
- The <filename>do_printdate</filename> task becomes a dependency of
- the <filename>do_build</filename> task, which is the default
- task.
- And, the <filename>do_printdate</filename> task is dependent upon
- the <filename>do_fetch</filename> task.
- Execution of the <filename>do_build</filename> task results
- in the <filename>do_printdate</filename> task running first.
+ The first argument to <filename>addtask</filename>
+ is the name of the function to promote to
+ a task.
+ If the name does not start with "do_", "do_" is
+ implicitly added, which enforces the convention that
+ all task names start with "do_".
+ </para>
+
+ <para>
+ In the previous example, the
+ <filename>do_printdate</filename> task becomes a
+ dependency of the <filename>do_build</filename>
+ task, which is the default task (i.e. the task run by
+ the <filename>bitbake</filename> command unless
+ another task is specified explicitly).
+ Additionally, the <filename>do_printdate</filename>
+ task becomes dependent upon the
+ <filename>do_fetch</filename> task.
+ Running the <filename>do_build</filename> task
+ results in the <filename>do_printdate</filename>
+ task running first.
+ <note>
+ If you try out the previous example, you might see that
+ the <filename>do_printdate</filename> task is only run
+ the first time you build the recipe with
+ the <filename>bitbake</filename> command.
+ This is because BitBake considers the task "up-to-date"
+ after that initial run.
+ If you want to force the task to always be rerun for
+ experimentation purposes, you can make BitBake always
+ consider the task "out-of-date" by using the
+ <filename>[</filename><link linkend='variable-flags'><filename>nostamp</filename></link><filename>]</filename>
+ variable flag, as follows:
+ <literallayout class='monospaced'>
+ do_printdate[nostamp] = "1"
+ </literallayout>
+ You can also explicitly run the task and provide the
+ <filename>-f</filename> option as follows:
+ <literallayout class='monospaced'>
+ $ bitbake <replaceable>recipe</replaceable> -c printdate -f
+ </literallayout>
+ When manually selecting a task to run with the
+ <filename>bitbake</filename>&nbsp;<replaceable>recipe</replaceable>&nbsp;<filename>-c</filename>&nbsp;<replaceable>task</replaceable>
+ command, you can omit the "do_" prefix as part of the
+ task name.
+ </note>
+ </para>
+
+ <para>
+ You might wonder about the practical effects of using
+ <filename>addtask</filename> without specifying any
+ dependencies as is done in the following example:
+ <literallayout class='monospaced'>
+ addtask printdate
+ </literallayout>
+ In this example, assuming dependencies have not been
+ added through some other means, the only way to run
+ the task is by explicitly selecting it with
+ <filename>bitbake</filename>&nbsp;<replaceable>recipe</replaceable>&nbsp;<filename>-c printdate</filename>.
+ You can use the
+ <filename>do_listtasks</filename> task to list all tasks
+ defined in a recipe as shown in the following example:
+ <literallayout class='monospaced'>
+ $ bitbake <replaceable>recipe</replaceable> -c listtasks
+ </literallayout>
+ For more information on task dependencies, see the
+ "<link linkend='dependencies'>Dependencies</link>"
+ section.
+ </para>
+
+ <para>
+ See the
+ "<link linkend='variable-flags'>Variable Flags</link>"
+ section for information on variable flags you can use with
+ tasks.
</para>
</section>
@@ -1172,7 +1672,7 @@
<para>
If you want dependencies such as these to remain intact, use
- the <filename>noexec</filename> varflag to disable the task
+ the <filename>[noexec]</filename> varflag to disable the task
instead of using the <filename>deltask</filename> command to
delete it:
<literallayout class='monospaced'>
@@ -1295,10 +1795,13 @@
Tasks support a number of these flags which control various
functionality of the task:
<itemizedlist>
- <listitem><para><emphasis>cleandirs:</emphasis>
- Empty directories that should created before the task runs.
+ <listitem><para><emphasis><filename>[cleandirs]</filename>:</emphasis>
+ Empty directories that should be created before the
+ task runs.
+ Directories that already exist are removed and recreated
+ to empty them.
</para></listitem>
- <listitem><para><emphasis>depends:</emphasis>
+ <listitem><para><emphasis><filename>[depends]</filename>:</emphasis>
Controls inter-task dependencies.
See the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
@@ -1306,7 +1809,7 @@
"<link linkend='inter-task-dependencies'>Inter-Task Dependencies</link>"
section for more information.
</para></listitem>
- <listitem><para><emphasis>deptask:</emphasis>
+ <listitem><para><emphasis><filename>[deptask]</filename>:</emphasis>
Controls task build-time dependencies.
See the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
@@ -1314,12 +1817,13 @@
"<link linkend='build-dependencies'>Build Dependencies</link>"
section for more information.
</para></listitem>
- <listitem><para><emphasis>dirs:</emphasis>
+ <listitem><para><emphasis><filename>[dirs]</filename>:</emphasis>
Directories that should be created before the task runs.
- The last directory listed will be used as the work directory
- for the task.
+ Directories that already exist are left as is.
+ The last directory listed is used as the
+ current working directory for the task.
</para></listitem>
- <listitem><para><emphasis>lockfiles:</emphasis>
+ <listitem><para><emphasis><filename>[lockfiles]</filename>:</emphasis>
Specifies one or more lockfiles to lock while the task
executes.
Only one task may hold a lockfile, and any task that
@@ -1328,23 +1832,32 @@
You can use this variable flag to accomplish mutual
exclusion.
</para></listitem>
- <listitem><para><emphasis>noexec:</emphasis>
- Marks the tasks as being empty and no execution required.
- The <filename>noexec</filename> flag can be used to set up
+ <listitem><para><emphasis><filename>[noexec]</filename>:</emphasis>
+ When set to "1", marks the task as being empty, with
+ no execution required.
+ You can use the <filename>[noexec]</filename> flag to set up
tasks as dependency placeholders, or to disable tasks defined
elsewhere that are not needed in a particular recipe.
</para></listitem>
- <listitem><para><emphasis>nostamp:</emphasis>
- Tells BitBake to not generate a stamp file for a task,
- which implies the task should always be executed.
+ <listitem><para><emphasis><filename>[nostamp]</filename>:</emphasis>
+ When set to "1", tells BitBake to not generate a stamp
+ file for a task, which implies the task should always
+ be executed.
+ <note><title>Caution</title>
+ Any task that depends (possibly indirectly) on a
+ <filename>[nostamp]</filename> task will always be
+ executed as well.
+ This can cause unnecessary rebuilding if you are
+ not careful.
+ </note>
</para></listitem>
- <listitem><para><emphasis>postfuncs:</emphasis>
+ <listitem><para><emphasis><filename>[postfuncs]</filename>:</emphasis>
List of functions to call after the completion of the task.
</para></listitem>
- <listitem><para><emphasis>prefuncs:</emphasis>
+ <listitem><para><emphasis><filename>[prefuncs]</filename>:</emphasis>
List of functions to call before the task executes.
</para></listitem>
- <listitem><para><emphasis>rdepends:</emphasis>
+ <listitem><para><emphasis><filename>[rdepends]</filename>:</emphasis>
Controls inter-task runtime dependencies.
See the
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
@@ -1354,7 +1867,7 @@
"<link linkend='inter-task-dependencies'>Inter-Task Dependencies</link>"
section for more information.
</para></listitem>
- <listitem><para><emphasis>rdeptask:</emphasis>
+ <listitem><para><emphasis><filename>[rdeptask]</filename>:</emphasis>
Controls task runtime dependencies.
See the
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
@@ -1364,12 +1877,12 @@
"<link linkend='runtime-dependencies'>Runtime Dependencies</link>"
section for more information.
</para></listitem>
- <listitem><para><emphasis>recideptask:</emphasis>
+ <listitem><para><emphasis><filename>[recideptask]</filename>:</emphasis>
When set in conjunction with
<filename>recrdeptask</filename>, specifies a task that
should be inspected for additional dependencies.
</para></listitem>
- <listitem><para><emphasis>recrdeptask:</emphasis>
+ <listitem><para><emphasis><filename>[recrdeptask]</filename>:</emphasis>
Controls task recursive runtime dependencies.
See the
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
@@ -1379,12 +1892,12 @@
"<link linkend='recursive-dependencies'>Recursive Dependencies</link>"
section for more information.
</para></listitem>
- <listitem><para><emphasis>stamp-extra-info:</emphasis>
+ <listitem><para><emphasis><filename>[stamp-extra-info]</filename>:</emphasis>
Extra stamp information to append to the task's stamp.
As an example, OpenEmbedded uses this flag to allow
machine-specific tasks.
</para></listitem>
- <listitem><para><emphasis>umask:</emphasis>
+ <listitem><para><emphasis><filename>[umask]</filename>:</emphasis>
The umask to run the task under.
</para></listitem>
</itemizedlist>
@@ -1397,7 +1910,7 @@
"<link linkend='checksums'>Checksums (Signatures)</link>"
section.
<itemizedlist>
- <listitem><para><emphasis>vardeps:</emphasis>
+ <listitem><para><emphasis><filename>[vardeps]</filename>:</emphasis>
Specifies a space-separated list of additional
variables to add to a variable's dependencies
for the purposes of calculating its signature.
@@ -1406,17 +1919,17 @@
does not allow BitBake to automatically determine
that the variable is referred to.
</para></listitem>
- <listitem><para><emphasis>vardepsexclude:</emphasis>
+ <listitem><para><emphasis><filename>[vardepsexclude]</filename>:</emphasis>
Specifies a space-separated list of variables
that should be excluded from a variable's dependencies
for the purposes of calculating its signature.
</para></listitem>
- <listitem><para><emphasis>vardepvalue:</emphasis>
+ <listitem><para><emphasis><filename>[vardepvalue]</filename>:</emphasis>
If set, instructs BitBake to ignore the actual
value of the variable and instead use the specified
value when calculating the variable's signature.
</para></listitem>
- <listitem><para><emphasis>vardepvalueexclude:</emphasis>
+ <listitem><para><emphasis><filename>[vardepvalueexclude]</filename>:</emphasis>
Specifies a pipe-separated list of strings to exclude
from the variable's value when calculating the
variable's signature.
@@ -1624,15 +2137,32 @@
<title>Dependencies</title>
<para>
- To allow for efficient operation given multiple processes
- executing in parallel, BitBake handles dependencies at
- the task level.
- BitBake supports a robust method to handle these dependencies.
- </para>
+ To allow for efficient parallel processing, BitBake handles
+ dependencies at the task level.
+ Dependencies can exist both between tasks within a single recipe
+ and between tasks in different recipes.
+ Following are examples of each:
+ <itemizedlist>
+ <listitem><para>For tasks within a single recipe, a
+ recipe's <filename>do_configure</filename>
+ task might need to complete before its
+ <filename>do_compile</filename> task can run.
+ </para></listitem>
+ <listitem><para>For tasks in different recipes, one
+ recipe's <filename>do_configure</filename>
+ task might require another recipe's
+ <filename>do_populate_sysroot</filename>
+ task to finish first such that the libraries and headers
+ provided by the other recipe are available.
+ </para></listitem>
+ </itemizedlist>
+ </para>
- <para>
- This section describes several types of dependency mechanisms.
- </para>
+ <para>
+ This section describes several ways to declare dependencies.
+ Remember, even though dependencies are declared in different ways, they
+ are all simply dependencies between tasks.
+ </para>
<section id='dependencies-internal-to-the-bb-file'>
<title>Dependencies Internal to the <filename>.bb</filename> File</title>
@@ -1648,11 +2178,49 @@
<literallayout class='monospaced'>
addtask printdate after do_fetch before do_build
</literallayout>
- In this example, the <filename>printdate</filename> task is
- depends on the completion of the <filename>do_fetch</filename>
+ In this example, the <filename>do_printdate</filename>
+ task depends on the completion of the
+ <filename>do_fetch</filename> task, and the
+ <filename>do_build</filename> task depends on the
+ completion of the <filename>do_printdate</filename>
task.
- And, the <filename>do_build</filename> depends on the completion
- of the <filename>printdate</filename> task.
+ <note><para>
+ For a task to run, it must be a direct or indirect
+ dependency of some other task that is scheduled to
+ run.</para>
+
+ <para>For illustration, here are some examples:
+ <itemizedlist>
+ <listitem><para>
+ The directive
+ <filename>addtask mytask before do_configure</filename>
+ causes <filename>do_mytask</filename> to run before
+ <filename>do_configure</filename> runs.
+ Be aware that <filename>do_mytask</filename> still only
+ runs if its <link linkend='checksums'>input checksum</link>
+ has changed since the last time it was run.
+ Changes to the input checksum of
+ <filename>do_mytask</filename> also indirectly cause
+ <filename>do_configure</filename> to run.
+ </para></listitem>
+ <listitem><para>
+ The directive
+ <filename>addtask mytask after do_configure</filename>
+ by itself never causes <filename>do_mytask</filename>
+ to run.
+ <filename>do_mytask</filename> can still be run manually
+ as follows:
+ <literallayout class='monospaced'>
+ $ bitbake <replaceable>recipe</replaceable> -c mytask
+ </literallayout>
+ Declaring <filename>do_mytask</filename> as a dependency
+ of some other task that is scheduled to run also causes
+ it to run.
+ Regardless, the task runs after
+ <filename>do_configure</filename>.
+ </para></listitem>
+ </itemizedlist></para>
+ </note>
</para>
</section>
@@ -1663,7 +2231,8 @@
BitBake uses the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
variable to manage build time dependencies.
- The "deptask" varflag for tasks signifies the task of each
+ The <filename>[deptask]</filename> varflag for tasks
+ signifies the task of each
item listed in <filename>DEPENDS</filename> that must
complete before that task can be executed.
Here is an example:
@@ -1692,7 +2261,8 @@
packages.
Each of those packages can have <filename>RDEPENDS</filename> and
<filename>RRECOMMENDS</filename> runtime dependencies.
- The "rdeptask" flag for tasks is used to signify the task of each
+ The <filename>[rdeptask]</filename> flag for tasks is used to
+ signify the task of each
item runtime dependency which must have completed before that
task can be executed.
<literallayout class='monospaced'>
@@ -1708,7 +2278,7 @@
<title>Recursive Dependencies</title>
<para>
- BitBake uses the "recrdeptask" flag to manage
+ BitBake uses the <filename>[recrdeptask]</filename> flag to manage
recursive task dependencies.
BitBake looks through the build-time and runtime
dependencies of the current recipe, looks through
@@ -1722,6 +2292,21 @@
</para>
<para>
+ The <filename>[recrdeptask]</filename> flag is most commonly
+ used in high-level
+ recipes that need to wait for some task to finish "globally".
+ For example, <filename>image.bbclass</filename> has the following:
+ <literallayout class='monospaced'>
+ do_rootfs[recrdeptask] += "do_packagedata"
+ </literallayout>
+ This statement says that the <filename>do_packagedata</filename>
+ task of the current recipe and all recipes reachable
+ (by way of dependencies) from the
+ image recipe must run before the <filename>do_rootfs</filename>
+ task can run.
+ </para>
+
+ <para>
You might want to not only have BitBake look for
dependencies of those tasks, but also have BitBake look
for build-time and runtime dependencies of the dependent
@@ -1738,7 +2323,8 @@
<title>Inter-Task Dependencies</title>
<para>
- BitBake uses the "depends" flag in a more generic form
+ BitBake uses the <filename>[depends]</filename>
+ flag in a more generic form
to manage inter-task dependencies.
This more generic form allows for inter-dependency
checks for specific tasks rather than checks for
@@ -1754,109 +2340,158 @@
</para>
<para>
- The "rdepends" flag works in a similar way but takes targets
+ The <filename>[rdepends]</filename> flag works in a similar
+ way but takes targets
in the runtime namespace instead of the build-time dependency
namespace.
</para>
</section>
</section>
- <section id='accessing-datastore-variables-using-python'>
- <title>Accessing Datastore Variables Using Python</title>
+ <section id='functions-you-can-call-from-within-python'>
+ <title>Functions You Can Call From Within Python</title>
<para>
- It is often necessary to access variables in the
- BitBake datastore using Python functions.
- The Bitbake datastore has an API that allows you this
- access.
- Here is a list of available operations:
+ BitBake provides many functions you can call from
+ within Python functions.
+ This section lists the most commonly used functions,
+ and mentions where to find others.
</para>
- <para>
- <informaltable frame='none'>
- <tgroup cols='2' align='left' colsep='1' rowsep='1'>
- <colspec colname='c1' colwidth='1*'/>
- <colspec colname='c2' colwidth='1*'/>
- <thead>
- <row>
- <entry align="left"><emphasis>Operation</emphasis></entry>
- <entry align="left"><emphasis>Description</emphasis></entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry align="left"><filename>d.getVar("X", expand=False)</filename></entry>
- <entry align="left">Returns the value of variable "X".
- Using "expand=True" expands the value.</entry>
- </row>
- <row>
- <entry align="left"><filename>d.setVar("X", "value")</filename></entry>
- <entry align="left">Sets the variable "X" to "value".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.appendVar("X", "value")</filename></entry>
- <entry align="left">Adds "value" to the end of the variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.prependVar("X", "value")</filename></entry>
- <entry align="left">Adds "value" to the start of the variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.delVar("X")</filename></entry>
- <entry align="left">Deletes the variable "X" from the datastore.</entry>
- </row>
- <row>
- <entry align="left"><filename>d.renameVar("X", "Y")</filename></entry>
- <entry align="left">Renames the variable "X" to "Y".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.getVarFlag("X", flag, expand=False)</filename></entry>
- <entry align="left">Gets then named flag from the variable "X".
- Using "expand=True" expands the named flag.</entry>
- </row>
- <row>
- <entry align="left"><filename>d.setVarFlag("X", flag, "value")</filename></entry>
- <entry align="left">Sets the named flag for variable "X" to "value".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.appendVarFlag("X", flag, "value")</filename></entry>
- <entry align="left">Appends "value" to the named flag on the
- variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.prependVarFlag("X", flag, "value")</filename></entry>
- <entry align="left">Prepends "value" to the named flag on
- the variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.delVarFlag("X", flag)</filename></entry>
- <entry align="left">Deletes the named flag on the variable
- "X" from the datastore.</entry>
- </row>
- <row>
- <entry align="left"><filename>d.setVarFlags("X", flagsdict)</filename></entry>
- <entry align="left">Sets the flags specified in
- the <filename>flagsdict()</filename> parameter.
- <filename>setVarFlags</filename> does not clear previous flags.
- Think of this operation as <filename>addVarFlags</filename>.</entry>
- </row>
- <row>
- <entry align="left"><filename>d.getVarFlags("X")</filename></entry>
- <entry align="left">Returns a <filename>flagsdict</filename> of the flags for
- the variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.delVarFlags("X")</filename></entry>
- <entry align="left">Deletes all the flags for the variable "X".</entry>
- </row>
- <row>
- <entry align="left"><filename>d.expand(expression)</filename></entry>
- <entry align="left">Expands variable references in the specified string expression.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </para>
+ <section id='functions-for-accessing-datastore-variables'>
+ <title>Functions for Accessing Datastore Variables</title>
+
+ <para>
+ It is often necessary to access variables in the
+ BitBake datastore using Python functions.
+ The Bitbake datastore has an API that allows you this
+ access.
+ Here is a list of available operations:
+ </para>
+
+ <para>
+ <informaltable frame='none'>
+ <tgroup cols='2' align='left' colsep='1' rowsep='1'>
+ <colspec colname='c1' colwidth='1*'/>
+ <colspec colname='c2' colwidth='1*'/>
+ <thead>
+ <row>
+ <entry align="left"><emphasis>Operation</emphasis></entry>
+ <entry align="left"><emphasis>Description</emphasis></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry align="left"><filename>d.getVar("X", expand)</filename></entry>
+ <entry align="left">Returns the value of variable "X".
+ Using "expand=True" expands the value.
+ Returns "None" if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.setVar("X", "value")</filename></entry>
+ <entry align="left">Sets the variable "X" to "value".</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.appendVar("X", "value")</filename></entry>
+ <entry align="left">Adds "value" to the end of the variable "X".
+ Acts like <filename>d.setVar("X", "value")</filename>
+ if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.prependVar("X", "value")</filename></entry>
+ <entry align="left">Adds "value" to the start of the variable "X".
+ Acts like <filename>d.setVar("X", "value")</filename>
+ if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.delVar("X")</filename></entry>
+ <entry align="left">Deletes the variable "X" from the datastore.
+ Does nothing if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.renameVar("X", "Y")</filename></entry>
+ <entry align="left">Renames the variable "X" to "Y".
+ Does nothing if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.getVarFlag("X", flag, expand)</filename></entry>
+ <entry align="left">Returns the value of variable "X".
+ Using "expand=True" expands the value.
+ Returns "None" if either the variable "X" or the named flag
+ does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.setVarFlag("X", flag, "value")</filename></entry>
+ <entry align="left">Sets the named flag for variable "X" to "value".</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.appendVarFlag("X", flag, "value")</filename></entry>
+ <entry align="left">Appends "value" to the named flag on the
+ variable "X".
+ Acts like <filename>d.setVarFlag("X", flag, "value")</filename>
+ if the named flag does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.prependVarFlag("X", flag, "value")</filename></entry>
+ <entry align="left">Prepends "value" to the named flag on
+ the variable "X".
+ Acts like <filename>d.setVarFlag("X", flag, "value")</filename>
+ if the named flag does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.delVarFlag("X", flag)</filename></entry>
+ <entry align="left">Deletes the named flag on the variable
+ "X" from the datastore.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.setVarFlags("X", flagsdict)</filename></entry>
+ <entry align="left">Sets the flags specified in
+ the <filename>flagsdict()</filename> parameter.
+ <filename>setVarFlags</filename> does not clear previous flags.
+ Think of this operation as <filename>addVarFlags</filename>.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.getVarFlags("X")</filename></entry>
+ <entry align="left">Returns a <filename>flagsdict</filename>
+ of the flags for the variable "X".
+ Returns "None" if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.delVarFlags("X")</filename></entry>
+ <entry align="left">Deletes all the flags for the variable "X".
+ Does nothing if the variable "X" does not exist.</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>d.expand(expression)</filename></entry>
+ <entry align="left">Expands variable references in the specified
+ string expression.
+ References to variables that do not exist are left as is.
+ For example, <filename>d.expand("foo ${X}")</filename>
+ expands to the literal string "foo ${X}" if the
+ variable "X" does not exist.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </section>
+
+ <section id='other-functions'>
+ <title>Other Functions</title>
+
+ <para>
+ You can find many other functions that can be called
+ from Python by looking at the source code of the
+ <filename>bb</filename> module, which is in
+ <filename>bitbake/lib/bb</filename>.
+ For example,
+ <filename>bitbake/lib/bb/utils.py</filename> includes
+ the commonly used functions
+ <filename>bb.utils.contains()</filename> and
+ <filename>bb.utils.mkdirhier()</filename>, which come
+ with docstrings.
+ </para>
+ </section>
</section>
<section id='task-checksums-and-setscene'>
@@ -1897,7 +2532,7 @@
the "setscene" part of the task's execution in order
to validate the list of task hashes.
</para></listitem>
- <listitem><para><filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
+ <listitem><para><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename>
Specifies a function to call that verifies the list of
planned task execution before the main task execution
happens.
diff --git a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
index ae7e4cee8..66d8f844e 100644
--- a/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
+++ b/import-layers/yocto-poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables.xml
@@ -52,7 +52,7 @@
<link linkend='var-MIRRORS'>M</link>
<!-- <link linkend='var-glossary-n'>N</link> -->
<link linkend='var-OVERRIDES'>O</link>
- <link linkend='var-PACKAGES'>P</link>
+ <link linkend='var-P4DIR'>P</link>
<!-- <link linkend='var-QMAKE_PROFILES'>Q</link> -->
<link linkend='var-RDEPENDS'>R</link>
<link linkend='var-SECTION'>S</link>
@@ -716,7 +716,7 @@
</glossdef>
</glossentry>
- <glossentry id='var-BB_SETSCENE_VERIFY_FUNCTION'><glossterm>BB_SETSCENE_VERIFY_FUNCTION</glossterm>
+ <glossentry id='var-BB_SETSCENE_VERIFY_FUNCTION2'><glossterm>BB_SETSCENE_VERIFY_FUNCTION2</glossterm>
<glossdef>
<para>
Specifies a function to call that verifies the list of
@@ -986,6 +986,29 @@
BBCLASSEXTEND =+ "native nativesdk"
BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
</literallayout>
+ <note>
+ <para>
+ Internally, the <filename>BBCLASSEXTEND</filename>
+ mechanism generates recipe variants by rewriting
+ variable values and applying overrides such as
+ <filename>_class-native</filename>.
+ For example, to generate a native version of a recipe,
+ a
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ on "foo" is rewritten to a <filename>DEPENDS</filename>
+ on "foo-native".
+ </para>
+
+ <para>
+ Even when using <filename>BBCLASSEXTEND</filename>, the
+ recipe is only parsed once.
+ Parsing once adds some limitations.
+ For example, it is not possible to
+ include a different file depending on the variant,
+ since <filename>include</filename> statements are
+ processed when the recipe is parsed.
+ </para>
+ </note>
</para>
</glossdef>
</glossentry>
@@ -994,7 +1017,7 @@
<glossdef>
<para>
Sets the BitBake debug output level to a specific value
- as incremented by the <filename>-d</filename> command line
+ as incremented by the <filename>-D</filename> command line
option.
<note>
You must set this variable in the external environment
@@ -1636,6 +1659,17 @@
</glossdef>
</glossentry>
+ <glossentry id='var-LAYERDIR_RE'><glossterm>LAYERDIR_RE</glossterm>
+ <glossdef>
+ <para>When used inside the <filename>layer.conf</filename> configuration
+ file, this variable provides the path of the current layer,
+ escaped for use in a regular expression
+ (<link linkend='var-BBFILE_PATTERN'><filename>BBFILE_PATTERN</filename></link>).
+ This variable is not available outside of <filename>layer.conf</filename>
+ and references are expanded immediately when parsing of the file completes.</para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-LAYERVERSION'><glossterm>LAYERVERSION</glossterm>
<glossdef>
<para>Optionally specifies the version of a layer as a single number.
@@ -1737,6 +1771,15 @@
<glossdiv id='var-glossary-p'><title>P</title>
+ <glossentry id='var-P4DIR'><glossterm>P4DIR</glossterm>
+ <glossdef>
+ <para>
+ The directory in which a local copy of a Perforce depot
+ is stored when it is fetched.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-PACKAGES'><glossterm>PACKAGES</glossterm>
<glossdef>
<para>The list of packages the recipe creates.
@@ -1933,6 +1976,27 @@
The <filename>PROVIDES</filename> statement results in
the "libav" recipe also being known as "libpostproc".
</para>
+
+ <para>
+ In addition to providing recipes under alternate names,
+ the <filename>PROVIDES</filename> mechanism is also used
+ to implement virtual targets.
+ A virtual target is a name that corresponds to some
+ particular functionality (e.g. a Linux kernel).
+ Recipes that provide the functionality in question list the
+ virtual target in <filename>PROVIDES</filename>.
+ Recipes that depend on the functionality in question can
+ include the virtual target in
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ to leave the choice of provider open.
+ </para>
+
+ <para>
+ Conventionally, virtual targets have names on the form
+ "virtual/function" (e.g. "virtual/kernel").
+ The slash is simply part of the name and has no
+ syntactical significance.
+ </para>
</glossdef>
</glossentry>
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/COW.py b/import-layers/yocto-poky/bitbake/lib/bb/COW.py
index 6917ec378..77a05cfe3 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/COW.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/COW.py
@@ -23,19 +23,17 @@
# Assign a file to __warn__ to get warnings about slow operations.
#
-from __future__ import print_function
+
import copy
import types
ImmutableTypes = (
- types.NoneType,
bool,
complex,
float,
int,
- long,
tuple,
frozenset,
- basestring
+ str
)
MUTABLE = "__mutable__"
@@ -61,7 +59,7 @@ class COWDictMeta(COWMeta):
__call__ = cow
def __setitem__(cls, key, value):
- if not isinstance(value, ImmutableTypes):
+ if value is not None and not isinstance(value, ImmutableTypes):
if not isinstance(value, COWMeta):
cls.__hasmutable__ = True
key += MUTABLE
@@ -116,7 +114,7 @@ class COWDictMeta(COWMeta):
cls.__setitem__(key, cls.__marker__)
def __revertitem__(cls, key):
- if not cls.__dict__.has_key(key):
+ if key not in cls.__dict__:
key += MUTABLE
delattr(cls, key)
@@ -183,7 +181,7 @@ class COWSetMeta(COWDictMeta):
COWDictMeta.__delitem__(cls, repr(hash(value)))
def __in__(cls, value):
- return COWDictMeta.has_key(repr(hash(value)))
+ return repr(hash(value)) in COWDictMeta
def iterkeys(cls):
raise TypeError("sets don't have keys")
@@ -192,12 +190,10 @@ class COWSetMeta(COWDictMeta):
raise TypeError("sets don't have 'items'")
# These are the actual classes you use!
-class COWDictBase(object):
- __metaclass__ = COWDictMeta
+class COWDictBase(object, metaclass = COWDictMeta):
__count__ = 0
-class COWSetBase(object):
- __metaclass__ = COWSetMeta
+class COWSetBase(object, metaclass = COWSetMeta):
__count__ = 0
if __name__ == "__main__":
@@ -217,11 +213,11 @@ if __name__ == "__main__":
print()
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
- for x in b.iteritems():
+ for x in b.items():
print(x)
print()
@@ -229,11 +225,11 @@ if __name__ == "__main__":
b['a'] = 'c'
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
- for x in b.iteritems():
+ for x in b.items():
print(x)
print()
@@ -248,22 +244,22 @@ if __name__ == "__main__":
a['set'].add("o2")
print("a", a)
- for x in a['set'].itervalues():
+ for x in a['set'].values():
print(x)
print("--")
print("b", b)
- for x in b['set'].itervalues():
+ for x in b['set'].values():
print(x)
print()
b['set'].add('o3')
print("a", a)
- for x in a['set'].itervalues():
+ for x in a['set'].values():
print(x)
print("--")
print("b", b)
- for x in b['set'].itervalues():
+ for x in b['set'].values():
print(x)
print()
@@ -273,7 +269,7 @@ if __name__ == "__main__":
a['set2'].add("o2")
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
@@ -287,13 +283,13 @@ if __name__ == "__main__":
except KeyError:
print("Yay! deleted key raises error")
- if b.has_key('b'):
+ if 'b' in b:
print("Boo!")
else:
print("Yay - has_key with delete works!")
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
@@ -304,7 +300,7 @@ if __name__ == "__main__":
b.__revertitem__('b')
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
@@ -314,7 +310,7 @@ if __name__ == "__main__":
b.__revertitem__('dict')
print("a", a)
- for x in a.iteritems():
+ for x in a.items():
print(x)
print("--")
print("b", b)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/__init__.py b/import-layers/yocto-poky/bitbake/lib/bb/__init__.py
index 502ad839e..f019d4831 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/__init__.py
@@ -21,11 +21,11 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-__version__ = "1.30.0"
+__version__ = "1.32.0"
import sys
-if sys.version_info < (2, 7, 3):
- raise RuntimeError("Sorry, python 2.7.3 or later is required for this version of bitbake")
+if sys.version_info < (3, 4, 0):
+ raise RuntimeError("Sorry, python 3.4.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
@@ -84,8 +84,8 @@ def plain(*args):
mainlogger.plain(''.join(args))
def debug(lvl, *args):
- if isinstance(lvl, basestring):
- mainlogger.warn("Passed invalid debug level '%s' to bb.debug", lvl)
+ if isinstance(lvl, str):
+ mainlogger.warning("Passed invalid debug level '%s' to bb.debug", lvl)
args = (lvl,) + args
lvl = 1
mainlogger.debug(lvl, ''.join(args))
@@ -94,7 +94,7 @@ def note(*args):
mainlogger.info(''.join(args))
def warn(*args):
- mainlogger.warn(''.join(args))
+ mainlogger.warning(''.join(args))
def error(*args, **kwargs):
mainlogger.error(''.join(args), extra=kwargs)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/build.py b/import-layers/yocto-poky/bitbake/lib/bb/build.py
index db5072cb4..c4c8aeb64 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/build.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/build.py
@@ -35,8 +35,8 @@ import stat
import bb
import bb.msg
import bb.process
-from contextlib import nested
-from bb import event, utils
+import bb.progress
+from bb import data, event, utils
bblogger = logging.getLogger('BitBake')
logger = logging.getLogger('BitBake.Build')
@@ -61,8 +61,13 @@ def reset_cache():
# in all namespaces, hence we add them to __builtins__.
# If we do not do this and use the exec globals, they will
# not be available to subfunctions.
-__builtins__['bb'] = bb
-__builtins__['os'] = os
+if hasattr(__builtins__, '__setitem__'):
+ builtins = __builtins__
+else:
+ builtins = __builtins__.__dict__
+
+builtins['bb'] = bb
+builtins['os'] = os
class FuncFailed(Exception):
def __init__(self, name = None, logfile = None):
@@ -133,6 +138,25 @@ class TaskInvalid(TaskBase):
super(TaskInvalid, self).__init__(task, None, metadata)
self._message = "No such task '%s'" % task
+class TaskProgress(event.Event):
+ """
+ Task made some progress that could be reported to the user, usually in
+ the form of a progress bar or similar.
+ NOTE: this class does not inherit from TaskBase since it doesn't need
+ to - it's fired within the task context itself, so we don't have any of
+ the context information that you do in the case of the other events.
+ The event PID can be used to determine which task it came from.
+ The progress value is normally 0-100, but can also be negative
+ indicating that progress has been made but we aren't able to determine
+ how much.
+ The rate is optional, this is simply an extra string to display to the
+ user if specified.
+ """
+ def __init__(self, progress, rate=None):
+ self.progress = progress
+ self.rate = rate
+ event.Event.__init__(self)
+
class LogTee(object):
def __init__(self, logger, outfile):
@@ -164,11 +188,10 @@ class LogTee(object):
def exec_func(func, d, dirs = None, pythonexception=False):
"""Execute a BB 'function'"""
- body = d.getVar(func, False)
- if not body:
- if body is None:
- logger.warn("Function %s doesn't exist", func)
- return
+ try:
+ oldcwd = os.getcwd()
+ except:
+ oldcwd = None
flags = d.getVarFlags(func)
cleandirs = flags.get('cleandirs')
@@ -187,8 +210,13 @@ def exec_func(func, d, dirs = None, pythonexception=False):
bb.utils.mkdirhier(adir)
adir = dirs[-1]
else:
- adir = d.getVar('B', True)
- bb.utils.mkdirhier(adir)
+ adir = None
+
+ body = d.getVar(func, False)
+ if not body:
+ if body is None:
+ logger.warning("Function %s doesn't exist", func)
+ return
ispython = flags.get('python')
@@ -233,6 +261,18 @@ def exec_func(func, d, dirs = None, pythonexception=False):
else:
exec_func_shell(func, d, runfile, cwd=adir)
+ try:
+ curcwd = os.getcwd()
+ except:
+ curcwd = None
+
+ if oldcwd and curcwd != oldcwd:
+ try:
+ bb.warn("Task %s changed cwd to %s" % (func, curcwd))
+ os.chdir(oldcwd)
+ except:
+ pass
+
_functionfmt = """
{function}(d)
"""
@@ -248,7 +288,8 @@ def exec_func_python(func, d, runfile, cwd=None, pythonexception=False):
if cwd:
try:
olddir = os.getcwd()
- except OSError:
+ except OSError as e:
+ bb.warn("%s: Cannot get cwd: %s" % (func, e))
olddir = None
os.chdir(cwd)
@@ -274,8 +315,8 @@ def exec_func_python(func, d, runfile, cwd=None, pythonexception=False):
if cwd and olddir:
try:
os.chdir(olddir)
- except OSError:
- pass
+ except OSError as e:
+ bb.warn("%s: Cannot restore cwd %s: %s" % (func, olddir, e))
def shell_trap_code():
return '''#!/bin/sh\n
@@ -323,7 +364,7 @@ trap '' 0
exit $ret
''')
- os.chmod(runfile, 0775)
+ os.chmod(runfile, 0o775)
cmd = runfile
if d.getVarFlag(func, 'fakeroot', False):
@@ -336,41 +377,64 @@ exit $ret
else:
logfile = sys.stdout
+ progress = d.getVarFlag(func, 'progress', True)
+ if progress:
+ if progress == 'percent':
+ # Use default regex
+ logfile = bb.progress.BasicProgressHandler(d, outfile=logfile)
+ elif progress.startswith('percent:'):
+ # Use specified regex
+ logfile = bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
+ elif progress.startswith('outof:'):
+ # Use specified regex
+ logfile = bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile)
+ else:
+ bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress))
+
+ fifobuffer = bytearray()
def readfifo(data):
- lines = data.split('\0')
- for line in lines:
- splitval = line.split(' ', 1)
- cmd = splitval[0]
- if len(splitval) > 1:
- value = splitval[1]
+ nonlocal fifobuffer
+ fifobuffer.extend(data)
+ while fifobuffer:
+ message, token, nextmsg = fifobuffer.partition(b"\00")
+ if token:
+ splitval = message.split(b' ', 1)
+ cmd = splitval[0].decode("utf-8")
+ if len(splitval) > 1:
+ value = splitval[1].decode("utf-8")
+ else:
+ value = ''
+ if cmd == 'bbplain':
+ bb.plain(value)
+ elif cmd == 'bbnote':
+ bb.note(value)
+ elif cmd == 'bbwarn':
+ bb.warn(value)
+ elif cmd == 'bberror':
+ bb.error(value)
+ elif cmd == 'bbfatal':
+ # The caller will call exit themselves, so bb.error() is
+ # what we want here rather than bb.fatal()
+ bb.error(value)
+ elif cmd == 'bbfatal_log':
+ bb.error(value, forcelog=True)
+ elif cmd == 'bbdebug':
+ splitval = value.split(' ', 1)
+ level = int(splitval[0])
+ value = splitval[1]
+ bb.debug(level, value)
+ else:
+ bb.warn("Unrecognised command '%s' on FIFO" % cmd)
+ fifobuffer = nextmsg
else:
- value = ''
- if cmd == 'bbplain':
- bb.plain(value)
- elif cmd == 'bbnote':
- bb.note(value)
- elif cmd == 'bbwarn':
- bb.warn(value)
- elif cmd == 'bberror':
- bb.error(value)
- elif cmd == 'bbfatal':
- # The caller will call exit themselves, so bb.error() is
- # what we want here rather than bb.fatal()
- bb.error(value)
- elif cmd == 'bbfatal_log':
- bb.error(value, forcelog=True)
- elif cmd == 'bbdebug':
- splitval = value.split(' ', 1)
- level = int(splitval[0])
- value = splitval[1]
- bb.debug(level, value)
+ break
tempdir = d.getVar('T', True)
fifopath = os.path.join(tempdir, 'fifo.%s' % os.getpid())
if os.path.exists(fifopath):
os.unlink(fifopath)
os.mkfifo(fifopath)
- with open(fifopath, 'r+') as fifo:
+ with open(fifopath, 'r+b', buffering=0) as fifo:
try:
bb.debug(2, "Executing shell function %s" % func)
@@ -501,21 +565,32 @@ def _exec_task(fn, task, d, quieterr):
flags = localdata.getVarFlags(task)
- event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
try:
- for func in (prefuncs or '').split():
- exec_func(func, localdata)
- exec_func(task, localdata)
- for func in (postfuncs or '').split():
- exec_func(func, localdata)
- except FuncFailed as exc:
- if quieterr:
- event.fire(TaskFailedSilent(task, logfn, localdata), localdata)
- else:
- errprinted = errchk.triggered
+ try:
+ event.fire(TaskStarted(task, logfn, flags, localdata), localdata)
+ except (bb.BBHandledException, SystemExit):
+ return 1
+ except FuncFailed as exc:
logger.error(str(exc))
- event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata)
- return 1
+ return 1
+
+ try:
+ for func in (prefuncs or '').split():
+ exec_func(func, localdata)
+ exec_func(task, localdata)
+ for func in (postfuncs or '').split():
+ exec_func(func, localdata)
+ except FuncFailed as exc:
+ if quieterr:
+ event.fire(TaskFailedSilent(task, logfn, localdata), localdata)
+ else:
+ errprinted = errchk.triggered
+ logger.error(str(exc))
+ event.fire(TaskFailed(task, logfn, localdata, errprinted), localdata)
+ return 1
+ except bb.BBHandledException:
+ event.fire(TaskFailed(task, logfn, localdata, True), localdata)
+ return 1
finally:
sys.stdout.flush()
sys.stderr.flush()
@@ -575,7 +650,7 @@ def exec_task(fn, task, d, profile = False):
event.fire(failedevent, d)
return 1
-def stamp_internal(taskname, d, file_name, baseonly=False):
+def stamp_internal(taskname, d, file_name, baseonly=False, noextra=False):
"""
Internal stamp helper function
Makes sure the stamp directory exists
@@ -598,6 +673,8 @@ def stamp_internal(taskname, d, file_name, baseonly=False):
if baseonly:
return stamp
+ if noextra:
+ extrainfo = ""
if not stamp:
return
@@ -693,12 +770,12 @@ def write_taint(task, d, file_name = None):
with open(taintfn, 'w') as taintf:
taintf.write(str(uuid.uuid4()))
-def stampfile(taskname, d, file_name = None):
+def stampfile(taskname, d, file_name = None, noextra=False):
"""
Return the stamp for a given task
(d can be a data dict or dataCache)
"""
- return stamp_internal(taskname, d, file_name)
+ return stamp_internal(taskname, d, file_name, noextra=noextra)
def add_tasks(tasklist, d):
task_deps = d.getVar('_task_deps', False)
@@ -774,6 +851,7 @@ def deltask(task, d):
bbtasks = d.getVar('__BBTASKS', False) or []
if task in bbtasks:
bbtasks.remove(task)
+ d.delVarFlag(task, 'task')
d.setVar('__BBTASKS', bbtasks)
d.delVarFlag(task, 'deps')
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/cache.py b/import-layers/yocto-poky/bitbake/lib/bb/cache.py
index af5b9fbc6..dd9cfdfac 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/cache.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/cache.py
@@ -28,22 +28,16 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
import os
+import sys
import logging
+import pickle
from collections import defaultdict
import bb.utils
logger = logging.getLogger("BitBake.Cache")
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- logger.info("Importing cPickle failed. "
- "Falling back to a very slow implementation.")
-
-__cache_version__ = "149"
+__cache_version__ = "150"
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
@@ -80,7 +74,7 @@ class RecipeInfoCommon(object):
out_dict = dict((var, metadata.getVarFlag(var, flag, True))
for var in varlist)
if squash:
- return dict((k,v) for (k,v) in out_dict.iteritems() if v)
+ return dict((k,v) for (k,v) in out_dict.items() if v)
else:
return out_dict
@@ -240,7 +234,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.universe_target.append(self.pn)
cachedata.hashfn[fn] = self.hashfilename
- for task, taskhash in self.basetaskhashes.iteritems():
+ for task, taskhash in self.basetaskhashes.items():
identifier = '%s.%s' % (fn, task)
cachedata.basetaskhash[identifier] = taskhash
@@ -250,14 +244,136 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.fakerootdirs[fn] = self.fakerootdirs
cachedata.extradepsfunc[fn] = self.extradepsfunc
+def virtualfn2realfn(virtualfn):
+ """
+ Convert a virtual file name to a real one + the associated subclass keyword
+ """
+ mc = ""
+ if virtualfn.startswith('multiconfig:'):
+ elems = virtualfn.split(':')
+ mc = elems[1]
+ virtualfn = ":".join(elems[2:])
+
+ fn = virtualfn
+ cls = ""
+ if virtualfn.startswith('virtual:'):
+ elems = virtualfn.split(':')
+ cls = ":".join(elems[1:-1])
+ fn = elems[-1]
+
+ return (fn, cls, mc)
+
+def realfn2virtual(realfn, cls, mc):
+ """
+ Convert a real filename + the associated subclass keyword to a virtual filename
+ """
+ if cls:
+ realfn = "virtual:" + cls + ":" + realfn
+ if mc:
+ realfn = "multiconfig:" + mc + ":" + realfn
+ return realfn
+
+def variant2virtual(realfn, variant):
+ """
+ Convert a real filename + the associated subclass keyword to a virtual filename
+ """
+ if variant == "":
+ return realfn
+ if variant.startswith("multiconfig:"):
+ elems = variant.split(":")
+ if elems[2]:
+ return "multiconfig:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
+ return "multiconfig:" + elems[1] + ":" + realfn
+ return "virtual:" + variant + ":" + realfn
+
+def parse_recipe(bb_data, bbfile, appends, mc=''):
+ """
+ Parse a recipe
+ """
+
+ chdir_back = False
+
+ bb_data.setVar("__BBMULTICONFIG", mc)
+
+ # expand tmpdir to include this topdir
+ bb_data.setVar('TMPDIR', bb_data.getVar('TMPDIR', True) or "")
+ bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
+ oldpath = os.path.abspath(os.getcwd())
+ bb.parse.cached_mtime_noerror(bbfile_loc)
+
+ # The ConfHandler first looks if there is a TOPDIR and if not
+ # then it would call getcwd().
+ # Previously, we chdir()ed to bbfile_loc, called the handler
+ # and finally chdir()ed back, a couple of thousand times. We now
+ # just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet.
+ if not bb_data.getVar('TOPDIR', False):
+ chdir_back = True
+ bb_data.setVar('TOPDIR', bbfile_loc)
+ try:
+ if appends:
+ bb_data.setVar('__BBAPPEND', " ".join(appends))
+ bb_data = bb.parse.handle(bbfile, bb_data)
+ if chdir_back:
+ os.chdir(oldpath)
+ return bb_data
+ except:
+ if chdir_back:
+ os.chdir(oldpath)
+ raise
+
+
+
+class NoCache(object):
+
+ def __init__(self, databuilder):
+ self.databuilder = databuilder
+ self.data = databuilder.data
+
+ def loadDataFull(self, virtualfn, appends):
+ """
+ Return a complete set of data for fn.
+ To do this, we need to parse the file.
+ """
+ logger.debug(1, "Parsing %s (full)" % virtualfn)
+ (fn, virtual, mc) = virtualfn2realfn(virtualfn)
+ bb_data = self.load_bbfile(virtualfn, appends, virtonly=True)
+ return bb_data[virtual]
+
+ def load_bbfile(self, bbfile, appends, virtonly = False):
+ """
+ Load and parse one .bb build file
+ Return the data and whether parsing resulted in the file being skipped
+ """
+
+ if virtonly:
+ (bbfile, virtual, mc) = virtualfn2realfn(bbfile)
+ bb_data = self.databuilder.mcdata[mc].createCopy()
+ bb_data.setVar("__ONLYFINALISE", virtual or "default")
+ datastores = parse_recipe(bb_data, bbfile, appends, mc)
+ return datastores
+ bb_data = self.data.createCopy()
+ datastores = parse_recipe(bb_data, bbfile, appends)
-class Cache(object):
+ for mc in self.databuilder.mcdata:
+ if not mc:
+ continue
+ bb_data = self.databuilder.mcdata[mc].createCopy()
+ newstores = parse_recipe(bb_data, bbfile, appends, mc)
+ for ns in newstores:
+ datastores["multiconfig:%s:%s" % (mc, ns)] = newstores[ns]
+
+ return datastores
+
+class Cache(NoCache):
"""
BitBake Cache implementation
"""
- def __init__(self, data, data_hash, caches_array):
+ def __init__(self, databuilder, data_hash, caches_array):
+ super().__init__(databuilder)
+ data = databuilder.data
+
# Pass caches_array information into Cache Constructor
# It will be used later for deciding whether we
# need extra cache file dump/load support
@@ -266,7 +382,6 @@ class Cache(object):
self.clean = set()
self.checked = set()
self.depends_cache = {}
- self.data = None
self.data_fn = None
self.cacheclean = True
self.data_hash = data_hash
@@ -286,72 +401,74 @@ class Cache(object):
cache_ok = True
if self.caches_array:
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
- cache_ok = cache_ok and os.path.exists(cachefile)
- cache_class.init_cacheData(self)
+ cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
+ cache_ok = cache_ok and os.path.exists(cachefile)
+ cache_class.init_cacheData(self)
if cache_ok:
self.load_cachefile()
elif os.path.isfile(self.cachefile):
logger.info("Out of date cache found, rebuilding...")
def load_cachefile(self):
- # Firstly, using core cache file information for
- # valid checking
- with open(self.cachefile, "rb") as cachefile:
- pickled = pickle.Unpickler(cachefile)
- try:
- cache_ver = pickled.load()
- bitbake_ver = pickled.load()
- except Exception:
- logger.info('Invalid cache, rebuilding...')
- return
-
- if cache_ver != __cache_version__:
- logger.info('Cache version mismatch, rebuilding...')
- return
- elif bitbake_ver != bb.__version__:
- logger.info('Bitbake version mismatch, rebuilding...')
- return
-
-
cachesize = 0
previous_progress = 0
previous_percent = 0
# Calculate the correct cachesize of all those cache files
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
- with open(cachefile, "rb") as cachefile:
- cachesize += os.fstat(cachefile.fileno()).st_size
+ cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
+ with open(cachefile, "rb") as cachefile:
+ cachesize += os.fstat(cachefile.fileno()).st_size
bb.event.fire(bb.event.CacheLoadStarted(cachesize), self.data)
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
- with open(cachefile, "rb") as cachefile:
- pickled = pickle.Unpickler(cachefile)
- while cachefile:
- try:
- key = pickled.load()
- value = pickled.load()
- except Exception:
- break
- if self.depends_cache.has_key(key):
- self.depends_cache[key].append(value)
- else:
- self.depends_cache[key] = [value]
- # only fire events on even percentage boundaries
- current_progress = cachefile.tell() + previous_progress
- current_percent = 100 * current_progress / cachesize
- if current_percent > previous_percent:
- previous_percent = current_percent
- bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
- self.data)
-
- previous_progress += current_progress
+ cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
+ with open(cachefile, "rb") as cachefile:
+ pickled = pickle.Unpickler(cachefile)
+ # Check cache version information
+ try:
+ cache_ver = pickled.load()
+ bitbake_ver = pickled.load()
+ except Exception:
+ logger.info('Invalid cache, rebuilding...')
+ return
+
+ if cache_ver != __cache_version__:
+ logger.info('Cache version mismatch, rebuilding...')
+ return
+ elif bitbake_ver != bb.__version__:
+ logger.info('Bitbake version mismatch, rebuilding...')
+ return
+
+ # Load the rest of the cache file
+ current_progress = 0
+ while cachefile:
+ try:
+ key = pickled.load()
+ value = pickled.load()
+ except Exception:
+ break
+ if not isinstance(key, str):
+ bb.warn("%s from extras cache is not a string?" % key)
+ break
+ if not isinstance(value, RecipeInfoCommon):
+ bb.warn("%s from extras cache is not a RecipeInfoCommon class?" % value)
+ break
+
+ if key in self.depends_cache:
+ self.depends_cache[key].append(value)
+ else:
+ self.depends_cache[key] = [value]
+ # only fire events on even percentage boundaries
+ current_progress = cachefile.tell() + previous_progress
+ current_percent = 100 * current_progress / cachesize
+ if current_percent > previous_percent:
+ previous_percent = current_percent
+ bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
+ self.data)
+
+ previous_progress += current_progress
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
@@ -359,69 +476,33 @@ class Cache(object):
len(self.depends_cache)),
self.data)
-
- @staticmethod
- def virtualfn2realfn(virtualfn):
- """
- Convert a virtual file name to a real one + the associated subclass keyword
- """
-
- fn = virtualfn
- cls = ""
- if virtualfn.startswith('virtual:'):
- elems = virtualfn.split(':')
- cls = ":".join(elems[1:-1])
- fn = elems[-1]
- return (fn, cls)
-
- @staticmethod
- def realfn2virtual(realfn, cls):
- """
- Convert a real filename + the associated subclass keyword to a virtual filename
- """
- if cls == "":
- return realfn
- return "virtual:" + cls + ":" + realfn
-
- @classmethod
- def loadDataFull(cls, virtualfn, appends, cfgData):
- """
- Return a complete set of data for fn.
- To do this, we need to parse the file.
- """
-
- (fn, virtual) = cls.virtualfn2realfn(virtualfn)
-
- logger.debug(1, "Parsing %s (full)", fn)
-
- cfgData.setVar("__ONLYFINALISE", virtual or "default")
- bb_data = cls.load_bbfile(fn, appends, cfgData)
- return bb_data[virtual]
-
- @classmethod
- def parse(cls, filename, appends, configdata, caches_array):
+ def parse(self, filename, appends):
"""Parse the specified filename, returning the recipe information"""
+ logger.debug(1, "Parsing %s", filename)
infos = []
- datastores = cls.load_bbfile(filename, appends, configdata)
+ datastores = self.load_bbfile(filename, appends)
depends = []
- for variant, data in sorted(datastores.iteritems(),
+ variants = []
+ # Process the "real" fn last so we can store variants list
+ for variant, data in sorted(datastores.items(),
key=lambda i: i[0],
reverse=True):
- virtualfn = cls.realfn2virtual(filename, variant)
+ virtualfn = variant2virtual(filename, variant)
+ variants.append(variant)
depends = depends + (data.getVar("__depends", False) or [])
if depends and not variant:
data.setVar("__depends", depends)
-
+ if virtualfn == filename:
+ data.setVar("__VARIANTS", " ".join(variants))
info_array = []
- for cache_class in caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- info = cache_class(filename, data)
- info_array.append(info)
+ for cache_class in self.caches_array:
+ info = cache_class(filename, data)
+ info_array.append(info)
infos.append((virtualfn, info_array))
return infos
- def load(self, filename, appends, configdata):
+ def load(self, filename, appends):
"""Obtain the recipe information for the specified filename,
using cached values if available, otherwise parsing.
@@ -435,21 +516,20 @@ class Cache(object):
# info_array item is a list of [CoreRecipeInfo, XXXRecipeInfo]
info_array = self.depends_cache[filename]
for variant in info_array[0].variants:
- virtualfn = self.realfn2virtual(filename, variant)
+ virtualfn = variant2virtual(filename, variant)
infos.append((virtualfn, self.depends_cache[virtualfn]))
else:
- logger.debug(1, "Parsing %s", filename)
return self.parse(filename, appends, configdata, self.caches_array)
return cached, infos
- def loadData(self, fn, appends, cfgData, cacheData):
+ def loadData(self, fn, appends, cacheData):
"""Load the recipe info for the specified filename,
parsing and adding to the cache if necessary, and adding
the recipe information to the supplied CacheData instance."""
skipped, virtuals = 0, 0
- cached, infos = self.load(fn, appends, cfgData)
+ cached, infos = self.load(fn, appends)
for virtualfn, info_array in infos:
if info_array[0].skipped:
logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
@@ -557,16 +637,19 @@ class Cache(object):
invalid = False
for cls in info_array[0].variants:
- virtualfn = self.realfn2virtual(fn, cls)
+ virtualfn = variant2virtual(fn, cls)
self.clean.add(virtualfn)
if virtualfn not in self.depends_cache:
logger.debug(2, "Cache: %s is not cached", virtualfn)
invalid = True
+ elif len(self.depends_cache[virtualfn]) != len(self.caches_array):
+ logger.debug(2, "Cache: Extra caches missing for %s?" % virtualfn)
+ invalid = True
# If any one of the variants is not present, mark as invalid for all
if invalid:
for cls in info_array[0].variants:
- virtualfn = self.realfn2virtual(fn, cls)
+ virtualfn = variant2virtual(fn, cls)
if virtualfn in self.clean:
logger.debug(2, "Cache: Removing %s from cache", virtualfn)
self.clean.remove(virtualfn)
@@ -603,30 +686,19 @@ class Cache(object):
logger.debug(2, "Cache is clean, not saving.")
return
- file_dict = {}
- pickler_dict = {}
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cache_class_name = cache_class.__name__
- cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
- file_dict[cache_class_name] = open(cachefile, "wb")
- pickler_dict[cache_class_name] = pickle.Pickler(file_dict[cache_class_name], pickle.HIGHEST_PROTOCOL)
-
- pickler_dict['CoreRecipeInfo'].dump(__cache_version__)
- pickler_dict['CoreRecipeInfo'].dump(bb.__version__)
-
- try:
- for key, info_array in self.depends_cache.iteritems():
- for info in info_array:
- if isinstance(info, RecipeInfoCommon):
- cache_class_name = info.__class__.__name__
- pickler_dict[cache_class_name].dump(key)
- pickler_dict[cache_class_name].dump(info)
- finally:
- for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cache_class_name = cache_class.__name__
- file_dict[cache_class_name].close()
+ cache_class_name = cache_class.__name__
+ cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
+ with open(cachefile, "wb") as f:
+ p = pickle.Pickler(f, pickle.HIGHEST_PROTOCOL)
+ p.dump(__cache_version__)
+ p.dump(bb.__version__)
+
+ for key, info_array in self.depends_cache.items():
+ for info in info_array:
+ if isinstance(info, RecipeInfoCommon) and info.__class__.__name__ == cache_class_name:
+ p.dump(key)
+ p.dump(info)
del self.depends_cache
@@ -654,50 +726,13 @@ class Cache(object):
Save data we need into the cache
"""
- realfn = self.virtualfn2realfn(file_name)[0]
+ realfn = virtualfn2realfn(file_name)[0]
info_array = []
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- info_array.append(cache_class(realfn, data))
+ info_array.append(cache_class(realfn, data))
self.add_info(file_name, info_array, cacheData, parsed)
- @staticmethod
- def load_bbfile(bbfile, appends, config):
- """
- Load and parse one .bb build file
- Return the data and whether parsing resulted in the file being skipped
- """
- chdir_back = False
-
- from bb import parse
-
- # expand tmpdir to include this topdir
- config.setVar('TMPDIR', config.getVar('TMPDIR', True) or "")
- bbfile_loc = os.path.abspath(os.path.dirname(bbfile))
- oldpath = os.path.abspath(os.getcwd())
- parse.cached_mtime_noerror(bbfile_loc)
- bb_data = config.createCopy()
- # The ConfHandler first looks if there is a TOPDIR and if not
- # then it would call getcwd().
- # Previously, we chdir()ed to bbfile_loc, called the handler
- # and finally chdir()ed back, a couple of thousand times. We now
- # just fill in TOPDIR to point to bbfile_loc if there is no TOPDIR yet.
- if not bb_data.getVar('TOPDIR', False):
- chdir_back = True
- bb_data.setVar('TOPDIR', bbfile_loc)
- try:
- if appends:
- bb_data.setVar('__BBAPPEND', " ".join(appends))
- bb_data = parse.handle(bbfile, bb_data)
- if chdir_back:
- os.chdir(oldpath)
- return bb_data
- except:
- if chdir_back:
- os.chdir(oldpath)
- raise
-
def init(cooker):
"""
@@ -727,8 +762,9 @@ class CacheData(object):
def __init__(self, caches_array):
self.caches_array = caches_array
for cache_class in self.caches_array:
- if type(cache_class) is type and issubclass(cache_class, RecipeInfoCommon):
- cache_class.init_cacheData(self)
+ if not issubclass(cache_class, RecipeInfoCommon):
+ bb.error("Extra cache data class %s should subclass RecipeInfoCommon class" % cache_class)
+ cache_class.init_cacheData(self)
# Direct cache variables
self.task_queues = {}
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/checksum.py b/import-layers/yocto-poky/bitbake/lib/bb/checksum.py
index 2ec964d73..84289208f 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/checksum.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/checksum.py
@@ -19,20 +19,13 @@ import glob
import operator
import os
import stat
+import pickle
import bb.utils
import logging
from bb.cache import MultiProcessCache
logger = logging.getLogger("BitBake.Cache")
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- logger.info("Importing cPickle failed. "
- "Falling back to a very slow implementation.")
-
-
# mtime cache (non-persistent)
# based upon the assumption that files do not change during bitbake run
class FileMtimeCache(object):
@@ -127,13 +120,15 @@ class FileChecksumCache(MultiProcessCache):
checksums.extend(checksum_dir(f))
else:
checksum = checksum_file(f)
- checksums.append((f, checksum))
+ if checksum:
+ checksums.append((f, checksum))
elif os.path.isdir(pth):
if not os.path.islink(pth):
checksums.extend(checksum_dir(pth))
else:
checksum = checksum_file(pth)
- checksums.append((pth, checksum))
+ if checksum:
+ checksums.append((pth, checksum))
checksums.sort(key=operator.itemgetter(1))
return checksums
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/codeparser.py b/import-layers/yocto-poky/bitbake/lib/bb/codeparser.py
index 3ee4d5622..25938d658 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/codeparser.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/codeparser.py
@@ -1,21 +1,20 @@
import ast
+import sys
import codegen
import logging
+import pickle
+import bb.pysh as pysh
import os.path
import bb.utils, bb.data
+import hashlib
from itertools import chain
-from pysh import pyshyacc, pyshlex, sherrors
+from bb.pysh import pyshyacc, pyshlex, sherrors
from bb.cache import MultiProcessCache
-
logger = logging.getLogger('BitBake.CodeParser')
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- logger.info('Importing cPickle failed. Falling back to a very slow implementation.')
-
+def bbhash(s):
+ return hashlib.md5(s.encode("utf-8")).hexdigest()
def check_indent(codestr):
"""If the code is indented, add a top level piece of code to 'remove' the indentation"""
@@ -68,11 +67,12 @@ class SetCache(object):
new = []
for i in items:
- new.append(intern(i))
+ new.append(sys.intern(i))
s = frozenset(new)
- if hash(s) in self.setcache:
- return self.setcache[hash(s)]
- self.setcache[hash(s)] = s
+ h = hash(s)
+ if h in self.setcache:
+ return self.setcache[h]
+ self.setcache[h] = s
return s
codecache = SetCache()
@@ -117,7 +117,7 @@ class shellCacheLine(object):
class CodeParserCache(MultiProcessCache):
cache_file_name = "bb_codeparser.dat"
- CACHE_VERSION = 7
+ CACHE_VERSION = 8
def __init__(self):
MultiProcessCache.__init__(self)
@@ -191,6 +191,7 @@ class BufferedLogger(Logger):
class PythonParser():
getvars = (".getVar", ".appendVar", ".prependVar")
+ getvarflags = (".getVarFlag", ".appendVarFlag", ".prependVarFlag")
containsfuncs = ("bb.utils.contains", "base_contains", "bb.utils.contains_any")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
@@ -210,15 +211,20 @@ class PythonParser():
def visit_Call(self, node):
name = self.called_node_name(node.func)
- if name and name.endswith(self.getvars) or name in self.containsfuncs:
+ if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs):
if isinstance(node.args[0], ast.Str):
varname = node.args[0].s
if name in self.containsfuncs and isinstance(node.args[1], ast.Str):
if varname not in self.contains:
self.contains[varname] = set()
self.contains[varname].add(node.args[1].s)
- else:
- self.references.add(node.args[0].s)
+ elif name.endswith(self.getvarflags):
+ if isinstance(node.args[1], ast.Str):
+ self.references.add('%s[%s]' % (varname, node.args[1].s))
+ else:
+ self.warn(node.func, node.args[1])
+ else:
+ self.references.add(varname)
else:
self.warn(node.func, node.args[0])
elif name and name.endswith(".expand"):
@@ -268,7 +274,7 @@ class PythonParser():
if not node or not node.strip():
return
- h = hash(str(node))
+ h = bbhash(str(node))
if h in codeparsercache.pythoncache:
self.references = set(codeparsercache.pythoncache[h].refs)
@@ -313,7 +319,7 @@ class ShellParser():
commands it executes.
"""
- h = hash(str(value))
+ h = bbhash(str(value))
if h in codeparsercache.shellcache:
self.execs = set(codeparsercache.shellcache[h].execs)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/command.py b/import-layers/yocto-poky/bitbake/lib/bb/command.py
index 0559ffc07..caa3e4d45 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/command.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/command.py
@@ -110,7 +110,7 @@ class Command:
return False
except SystemExit as exc:
arg = exc.args[0]
- if isinstance(arg, basestring):
+ if isinstance(arg, str):
self.finishAsyncCommand(arg)
else:
self.finishAsyncCommand("Exited with %s" % arg)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/cooker.py b/import-layers/yocto-poky/bitbake/lib/bb/cooker.py
index 9b565fc37..42831e277 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/cooker.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/cooker.py
@@ -22,7 +22,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-from __future__ import print_function
+
import sys, os, glob, os.path, re, time
import atexit
import itertools
@@ -30,18 +30,21 @@ import logging
import multiprocessing
import sre_constants
import threading
-from cStringIO import StringIO
+from io import StringIO, UnsupportedOperation
from contextlib import closing
from functools import wraps
-from collections import defaultdict
+from collections import defaultdict, namedtuple
import bb, bb.exceptions, bb.command
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build
-import Queue
+import queue
import signal
import subprocess
import errno
import prserv.serv
import pyinotify
+import json
+import pickle
+import codecs
logger = logging.getLogger("BitBake")
collectlog = logging.getLogger("BitBake.Collection")
@@ -65,7 +68,7 @@ class CollectionError(bb.BBHandledException):
"""
class state:
- initial, parsing, running, shutdown, forceshutdown, stopped, error = range(7)
+ initial, parsing, running, shutdown, forceshutdown, stopped, error = list(range(7))
@classmethod
def get_name(cls, code):
@@ -93,7 +96,7 @@ class SkippedPackage:
class CookerFeatures(object):
- _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE, BASEDATASTORE_TRACKING, SEND_SANITYEVENTS] = range(4)
+ _feature_list = [HOB_EXTRA_CACHES, BASEDATASTORE_TRACKING, SEND_SANITYEVENTS] = list(range(3))
def __init__(self):
self._features=set()
@@ -110,9 +113,49 @@ class CookerFeatures(object):
def __iter__(self):
return self._features.__iter__()
- def next(self):
- return self._features.next()
+ def __next__(self):
+ return next(self._features)
+
+
+class EventWriter:
+ def __init__(self, cooker, eventfile):
+ self.file_inited = None
+ self.cooker = cooker
+ self.eventfile = eventfile
+ self.event_queue = []
+
+ def write_event(self, event):
+ with open(self.eventfile, "a") as f:
+ try:
+ str_event = codecs.encode(pickle.dumps(event), 'base64').decode('utf-8')
+ f.write("%s\n" % json.dumps({"class": event.__module__ + "." + event.__class__.__name__,
+ "vars": str_event}))
+ except Exception as err:
+ import traceback
+ print(err, traceback.format_exc())
+
+ def send(self, event):
+ if self.file_inited:
+ # we have the file, just write the event
+ self.write_event(event)
+ else:
+ # init on bb.event.BuildStarted
+ name = "%s.%s" % (event.__module__, event.__class__.__name__)
+ if name in ("bb.event.BuildStarted", "bb.cooker.CookerExit"):
+ with open(self.eventfile, "w") as f:
+ f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])}))
+ self.file_inited = True
+
+ # write pending events
+ for evt in self.event_queue:
+ self.write_event(evt)
+
+ # also write the current event
+ self.write_event(event)
+ else:
+ # queue all events until the file is inited
+ self.event_queue.append(event)
#============================================================================#
# BBCooker
@@ -123,7 +166,7 @@ class BBCooker:
"""
def __init__(self, configuration, featureSet=None):
- self.recipecache = None
+ self.recipecaches = None
self.skiplist = {}
self.featureset = CookerFeatures()
if featureSet:
@@ -151,6 +194,13 @@ class BBCooker:
self.initConfigurationData()
+ # we log all events to a file if so directed
+ if self.configuration.writeeventlog:
+ # register the log file writer as UI Handler
+ writer = EventWriter(self, self.configuration.writeeventlog)
+ EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
+ bb.event.register_UIHhandler(EventLogWriteHandler(writer))
+
self.inotify_modified_files = []
def _process_inotify_updates(server, notifier_list, abort):
@@ -180,14 +230,17 @@ class BBCooker:
pass
# TOSTOP must not be set or our children will hang when they output
- fd = sys.stdout.fileno()
- if os.isatty(fd):
- import termios
- tcattr = termios.tcgetattr(fd)
- if tcattr[3] & termios.TOSTOP:
- buildlog.info("The terminal had the TOSTOP bit set, clearing...")
- tcattr[3] = tcattr[3] & ~termios.TOSTOP
- termios.tcsetattr(fd, termios.TCSANOW, tcattr)
+ try:
+ fd = sys.stdout.fileno()
+ if os.isatty(fd):
+ import termios
+ tcattr = termios.tcgetattr(fd)
+ if tcattr[3] & termios.TOSTOP:
+ buildlog.info("The terminal had the TOSTOP bit set, clearing...")
+ tcattr[3] = tcattr[3] & ~termios.TOSTOP
+ termios.tcsetattr(fd, termios.TCSANOW, tcattr)
+ except UnsupportedOperation:
+ pass
self.command = bb.command.Command(self)
self.state = state.initial
@@ -301,74 +354,6 @@ class BBCooker:
if consolelog:
self.data.setVar("BB_CONSOLELOG", consolelog)
- # we log all events to a file if so directed
- if self.configuration.writeeventlog:
- import json, pickle
- DEFAULT_EVENTFILE = self.configuration.writeeventlog
- class EventLogWriteHandler():
-
- class EventWriter():
- def __init__(self, cooker):
- self.file_inited = None
- self.cooker = cooker
- self.event_queue = []
-
- def init_file(self):
- try:
- # delete the old log
- os.remove(DEFAULT_EVENTFILE)
- except:
- pass
-
- # write current configuration data
- with open(DEFAULT_EVENTFILE, "w") as f:
- f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])}))
-
- def write_event(self, event):
- with open(DEFAULT_EVENTFILE, "a") as f:
- try:
- f.write("%s\n" % json.dumps({"class":event.__module__ + "." + event.__class__.__name__, "vars":json.dumps(pickle.dumps(event)) }))
- except Exception as e:
- import traceback
- print(e, traceback.format_exc(e))
-
-
- def send(self, event):
- event_class = event.__module__ + "." + event.__class__.__name__
-
- # init on bb.event.BuildStarted
- if self.file_inited is None:
- if event_class == "bb.event.BuildStarted":
- self.init_file()
- self.file_inited = True
-
- # write pending events
- for e in self.event_queue:
- self.write_event(e)
-
- # also write the current event
- self.write_event(event)
-
- else:
- # queue all events until the file is inited
- self.event_queue.append(event)
-
- else:
- # we have the file, just write the event
- self.write_event(event)
-
- # set our handler's event processor
- event = EventWriter(self) # self is the cooker here
-
-
- # set up cooker features for this mock UI handler
-
- # we need to write the dependency tree in the log
- self.featureset.setFeature(CookerFeatures.SEND_DEPENDS_TREE)
- # register the log file writer as UI Handler
- bb.event.register_UIHhandler(EventLogWriteHandler())
-
-
#
# Copy of the data store which has been expanded.
# Used for firing events and accessing variables where expansion needs to be accounted for
@@ -539,11 +524,14 @@ class BBCooker:
nice = int(nice) - curnice
buildlog.verbose("Renice to %s " % os.nice(nice))
- if self.recipecache:
- del self.recipecache
- self.recipecache = bb.cache.CacheData(self.caches_array)
+ if self.recipecaches:
+ del self.recipecaches
+ self.multiconfigs = self.databuilder.mcdata.keys()
+ self.recipecaches = {}
+ for mc in self.multiconfigs:
+ self.recipecaches[mc] = bb.cache.CacheData(self.caches_array)
- self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) )
+ self.handleCollections(self.data.getVar("BBFILE_COLLECTIONS", True))
def updateConfigOpts(self, options, environment):
clean = True
@@ -587,8 +575,8 @@ class BBCooker:
def showVersions(self):
- pkg_pn = self.recipecache.pkg_pn
- (latest_versions, preferred_versions) = bb.providers.findProviders(self.data, self.recipecache, pkg_pn)
+ pkg_pn = self.recipecaches[''].pkg_pn
+ (latest_versions, preferred_versions) = bb.providers.findProviders(self.data, self.recipecaches[''], pkg_pn)
logger.plain("%-35s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version")
logger.plain("%-35s %25s %25s\n", "===========", "==============", "=================")
@@ -619,25 +607,25 @@ class BBCooker:
# this showEnvironment() code path doesn't use the cache
self.parseConfiguration()
- fn, cls = bb.cache.Cache.virtualfn2realfn(buildfile)
+ fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn)
- fn = bb.cache.Cache.realfn2virtual(fn, cls)
+ fn = bb.cache.realfn2virtual(fn, cls, mc)
elif len(pkgs_to_build) == 1:
ignore = self.expanded_data.getVar("ASSUME_PROVIDED", True) or ""
if pkgs_to_build[0] in set(ignore.split()):
bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
- taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
+ taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True)
- targetid = taskdata.getbuild_id(pkgs_to_build[0])
- fnid = taskdata.build_targets[targetid][0]
- fn = taskdata.fn_index[fnid]
+ mc = runlist[0][0]
+ fn = runlist[0][3]
else:
envdata = self.data
if fn:
try:
- envdata = bb.cache.Cache.loadDataFull(fn, self.collection.get_file_appends(fn), self.data)
+ bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
+ envdata = bb_cache.loadDataFull(fn, self.collection.get_file_appends(fn))
except Exception as e:
parselog.exception("Unable to read %s", fn)
raise
@@ -656,7 +644,7 @@ class BBCooker:
# emit the metadata which isnt valid shell
data.expandKeys(envdata)
for e in envdata.keys():
- if data.getVarFlag( e, 'python', envdata ):
+ if envdata.getVarFlag(e, 'func', False) and envdata.getVarFlag(e, 'python', False):
logger.plain("\npython %s () {\n%s}\n", e, envdata.getVar(e, False))
@@ -670,30 +658,44 @@ class BBCooker:
if task is None:
task = self.configuration.cmd
- fulltargetlist = self.checkPackages(pkgs_to_build)
+ fulltargetlist = self.checkPackages(pkgs_to_build, task)
+ taskdata = {}
+ localdata = {}
- localdata = data.createCopy(self.data)
- bb.data.update_data(localdata)
- bb.data.expandKeys(localdata)
- taskdata = bb.taskdata.TaskData(abort, skiplist=self.skiplist, allowincomplete=allowincomplete)
+ for mc in self.multiconfigs:
+ taskdata[mc] = bb.taskdata.TaskData(abort, skiplist=self.skiplist, allowincomplete=allowincomplete)
+ localdata[mc] = data.createCopy(self.databuilder.mcdata[mc])
+ bb.data.update_data(localdata[mc])
+ bb.data.expandKeys(localdata[mc])
current = 0
runlist = []
for k in fulltargetlist:
+ mc = ""
+ if k.startswith("multiconfig:"):
+ mc = k.split(":")[1]
+ k = ":".join(k.split(":")[2:])
ktask = task
if ":do_" in k:
k2 = k.split(":do_")
k = k2[0]
ktask = k2[1]
- taskdata.add_provider(localdata, self.recipecache, k)
+ taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k)
current += 1
if not ktask.startswith("do_"):
ktask = "do_%s" % ktask
- runlist.append([k, ktask])
+ if k not in taskdata[mc].build_targets or not taskdata[mc].build_targets[k]:
+ # e.g. in ASSUME_PROVIDED
+ continue
+ fn = taskdata[mc].build_targets[k][0]
+ runlist.append([mc, k, ktask, fn])
bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data)
- taskdata.add_unresolved(localdata, self.recipecache)
+
+ for mc in self.multiconfigs:
+ taskdata[mc].add_unresolved(localdata[mc], self.recipecaches[mc])
+
bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data)
- return taskdata, runlist, fulltargetlist
+ return taskdata, runlist
def prepareTreeData(self, pkgs_to_build, task):
"""
@@ -702,7 +704,7 @@ class BBCooker:
# We set abort to False here to prevent unbuildable targets raising
# an exception when we're just generating data
- taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, task, False, allowincomplete=True)
+ taskdata, runlist = self.buildTaskData(pkgs_to_build, task, False, allowincomplete=True)
return runlist, taskdata
@@ -714,13 +716,18 @@ class BBCooker:
information.
"""
runlist, taskdata = self.prepareTreeData(pkgs_to_build, task)
- rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
+ rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
rq.rqdata.prepare()
return self.buildDependTree(rq, taskdata)
+ @staticmethod
+ def add_mc_prefix(mc, pn):
+ if mc:
+ return "multiconfig:%s.%s" % (mc, pn)
+ return pn
def buildDependTree(self, rq, taskdata):
- seen_fnids = []
+ seen_fns = []
depend_tree = {}
depend_tree["depends"] = {}
depend_tree["tdepends"] = {}
@@ -730,25 +737,26 @@ class BBCooker:
depend_tree["rdepends-pkg"] = {}
depend_tree["rrecs-pkg"] = {}
depend_tree['providermap'] = {}
- depend_tree["layer-priorities"] = self.recipecache.bbfile_config_priorities
-
- for name, fn in taskdata.get_providermap().iteritems():
- pn = self.recipecache.pkg_fn[fn]
- if name != pn:
- version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
- depend_tree['providermap'][name] = (pn, version)
-
- for task in xrange(len(rq.rqdata.runq_fnid)):
- taskname = rq.rqdata.runq_task[task]
- fnid = rq.rqdata.runq_fnid[task]
- fn = taskdata.fn_index[fnid]
- pn = self.recipecache.pkg_fn[fn]
- version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
+ depend_tree["layer-priorities"] = self.bbfile_config_priorities
+
+ for mc in taskdata:
+ for name, fn in list(taskdata[mc].get_providermap().items()):
+ pn = self.recipecaches[mc].pkg_fn[fn]
+ pn = self.add_mc_prefix(mc, pn)
+ if name != pn:
+ version = "%s:%s-%s" % self.recipecaches[mc].pkg_pepvpr[fn]
+ depend_tree['providermap'][name] = (pn, version)
+
+ for tid in rq.rqdata.runtaskentries:
+ (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid)
+ pn = self.recipecaches[mc].pkg_fn[taskfn]
+ pn = self.add_mc_prefix(mc, pn)
+ version = "%s:%s-%s" % self.recipecaches[mc].pkg_pepvpr[taskfn]
if pn not in depend_tree["pn"]:
depend_tree["pn"][pn] = {}
- depend_tree["pn"][pn]["filename"] = fn
+ depend_tree["pn"][pn]["filename"] = taskfn
depend_tree["pn"][pn]["version"] = version
- depend_tree["pn"][pn]["inherits"] = self.recipecache.inherits.get(fn, None)
+ depend_tree["pn"][pn]["inherits"] = self.recipecaches[mc].inherits.get(taskfn, None)
# if we have extra caches, list all attributes they bring in
extra_info = []
@@ -759,36 +767,36 @@ class BBCooker:
# for all attributes stored, add them to the dependency tree
for ei in extra_info:
- depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
+ depend_tree["pn"][pn][ei] = vars(self.recipecaches[mc])[ei][taskfn]
- for dep in rq.rqdata.runq_depends[task]:
- depfn = taskdata.fn_index[rq.rqdata.runq_fnid[dep]]
- deppn = self.recipecache.pkg_fn[depfn]
- dotname = "%s.%s" % (pn, rq.rqdata.runq_task[task])
+ for dep in rq.rqdata.runtaskentries[tid].depends:
+ (depmc, depfn, deptaskname, deptaskfn) = bb.runqueue.split_tid_mcfn(dep)
+ deppn = self.recipecaches[mc].pkg_fn[deptaskfn]
+ dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(tid))
if not dotname in depend_tree["tdepends"]:
depend_tree["tdepends"][dotname] = []
- depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, rq.rqdata.runq_task[dep]))
- if fnid not in seen_fnids:
- seen_fnids.append(fnid)
+ depend_tree["tdepends"][dotname].append("%s.%s" % (deppn, bb.runqueue.taskname_from_tid(dep)))
+ if taskfn not in seen_fns:
+ seen_fns.append(taskfn)
packages = []
depend_tree["depends"][pn] = []
- for dep in taskdata.depids[fnid]:
- depend_tree["depends"][pn].append(taskdata.build_names_index[dep])
+ for dep in taskdata[mc].depids[taskfn]:
+ depend_tree["depends"][pn].append(dep)
depend_tree["rdepends-pn"][pn] = []
- for rdep in taskdata.rdepids[fnid]:
- depend_tree["rdepends-pn"][pn].append(taskdata.run_names_index[rdep])
+ for rdep in taskdata[mc].rdepids[taskfn]:
+ depend_tree["rdepends-pn"][pn].append(rdep)
- rdepends = self.recipecache.rundeps[fn]
+ rdepends = self.recipecaches[mc].rundeps[taskfn]
for package in rdepends:
depend_tree["rdepends-pkg"][package] = []
for rdepend in rdepends[package]:
depend_tree["rdepends-pkg"][package].append(rdepend)
packages.append(package)
- rrecs = self.recipecache.runrecs[fn]
+ rrecs = self.recipecaches[mc].runrecs[taskfn]
for package in rrecs:
depend_tree["rrecs-pkg"][package] = []
for rdepend in rrecs[package]:
@@ -800,7 +808,7 @@ class BBCooker:
if package not in depend_tree["packages"]:
depend_tree["packages"][package] = {}
depend_tree["packages"][package]["pn"] = pn
- depend_tree["packages"][package]["filename"] = fn
+ depend_tree["packages"][package]["filename"] = taskfn
depend_tree["packages"][package]["version"] = version
return depend_tree
@@ -811,12 +819,8 @@ class BBCooker:
Create a dependency tree of pkgs_to_build, returning the data.
"""
_, taskdata = self.prepareTreeData(pkgs_to_build, task)
- tasks_fnid = []
- if len(taskdata.tasks_name) != 0:
- for task in xrange(len(taskdata.tasks_name)):
- tasks_fnid.append(taskdata.tasks_fnid[task])
- seen_fnids = []
+ seen_fns = []
depend_tree = {}
depend_tree["depends"] = {}
depend_tree["pn"] = {}
@@ -831,51 +835,53 @@ class BBCooker:
cachefields = getattr(cache_class, 'cachefields', [])
extra_info = extra_info + cachefields
- for task in xrange(len(tasks_fnid)):
- fnid = tasks_fnid[task]
- fn = taskdata.fn_index[fnid]
- pn = self.recipecache.pkg_fn[fn]
+ tids = []
+ for mc in taskdata:
+ for tid in taskdata[mc].taskentries:
+ tids.append(tid)
+
+ for tid in tids:
+ (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid)
+
+ pn = self.recipecaches[mc].pkg_fn[taskfn]
+ pn = self.add_mc_prefix(mc, pn)
if pn not in depend_tree["pn"]:
depend_tree["pn"][pn] = {}
- depend_tree["pn"][pn]["filename"] = fn
- version = "%s:%s-%s" % self.recipecache.pkg_pepvpr[fn]
+ depend_tree["pn"][pn]["filename"] = taskfn
+ version = "%s:%s-%s" % self.recipecaches[mc].pkg_pepvpr[taskfn]
depend_tree["pn"][pn]["version"] = version
- rdepends = self.recipecache.rundeps[fn]
- rrecs = self.recipecache.runrecs[fn]
- depend_tree["pn"][pn]["inherits"] = self.recipecache.inherits.get(fn, None)
+ rdepends = self.recipecaches[mc].rundeps[taskfn]
+ rrecs = self.recipecaches[mc].runrecs[taskfn]
+ depend_tree["pn"][pn]["inherits"] = self.recipecaches[mc].inherits.get(taskfn, None)
# for all extra attributes stored, add them to the dependency tree
for ei in extra_info:
- depend_tree["pn"][pn][ei] = vars(self.recipecache)[ei][fn]
+ depend_tree["pn"][pn][ei] = vars(self.recipecaches[mc])[ei][taskfn]
- if fnid not in seen_fnids:
- seen_fnids.append(fnid)
+ if taskfn not in seen_fns:
+ seen_fns.append(taskfn)
depend_tree["depends"][pn] = []
- for dep in taskdata.depids[fnid]:
- item = taskdata.build_names_index[dep]
+ for item in taskdata[mc].depids[taskfn]:
pn_provider = ""
- targetid = taskdata.getbuild_id(item)
- if targetid in taskdata.build_targets and taskdata.build_targets[targetid]:
- id = taskdata.build_targets[targetid][0]
- fn_provider = taskdata.fn_index[id]
- pn_provider = self.recipecache.pkg_fn[fn_provider]
+ if dep in taskdata[mc].build_targets and taskdata[mc].build_targets[dep]:
+ fn_provider = taskdata[mc].build_targets[dep][0]
+ pn_provider = self.recipecaches[mc].pkg_fn[fn_provider]
else:
pn_provider = item
+ pn_provider = self.add_mc_prefix(mc, pn_provider)
depend_tree["depends"][pn].append(pn_provider)
depend_tree["rdepends-pn"][pn] = []
- for rdep in taskdata.rdepids[fnid]:
- item = taskdata.run_names_index[rdep]
+ for rdep in taskdata[mc].rdepids[taskfn]:
pn_rprovider = ""
- targetid = taskdata.getrun_id(item)
- if targetid in taskdata.run_targets and taskdata.run_targets[targetid]:
- id = taskdata.run_targets[targetid][0]
- fn_rprovider = taskdata.fn_index[id]
- pn_rprovider = self.recipecache.pkg_fn[fn_rprovider]
+ if rdep in taskdata[mc].run_targets and taskdata[mc].run_targets[rdep]:
+ fn_rprovider = taskdata[mc].run_targets[rdep][0]
+ pn_rprovider = self.recipecaches[mc].pkg_fn[fn_rprovider]
else:
- pn_rprovider = item
+ pn_rprovider = rdep
+ pn_rprovider = self.add_mc_prefix(mc, pn_rprovider)
depend_tree["rdepends-pn"][pn].append(pn_rprovider)
depend_tree["rdepends-pkg"].update(rdepends)
@@ -900,8 +906,8 @@ class BBCooker:
depgraph = self.generateTaskDepTreeData(pkgs_to_build, task)
# Prints a flattened form of package-depends below where subpackages of a package are merged into the main pn
- depends_file = file('pn-depends.dot', 'w' )
- buildlist_file = file('pn-buildlist', 'w' )
+ depends_file = open('pn-depends.dot', 'w' )
+ buildlist_file = open('pn-buildlist', 'w' )
print("digraph depends {", file=depends_file)
for pn in depgraph["pn"]:
fn = depgraph["pn"][pn]["filename"]
@@ -917,9 +923,10 @@ class BBCooker:
for rdepend in depgraph["rdepends-pn"][pn]:
print('"%s" -> "%s" [style=dashed]' % (pn, rdepend), file=depends_file)
print("}", file=depends_file)
+ depends_file.close()
logger.info("PN dependencies saved to 'pn-depends.dot'")
- depends_file = file('package-depends.dot', 'w' )
+ depends_file = open('package-depends.dot', 'w' )
print("digraph depends {", file=depends_file)
for package in depgraph["packages"]:
pn = depgraph["packages"][package]["pn"]
@@ -938,9 +945,10 @@ class BBCooker:
for rdepend in depgraph["rrecs-pkg"][package]:
print('"%s" -> "%s" [style=dotted]' % (package, rdepend), file=depends_file)
print("}", file=depends_file)
+ depends_file.close()
logger.info("Package dependencies saved to 'package-depends.dot'")
- tdepends_file = file('task-depends.dot', 'w' )
+ tdepends_file = open('task-depends.dot', 'w' )
print("digraph depends {", file=tdepends_file)
for task in depgraph["tdepends"]:
(pn, taskname) = task.rsplit(".", 1)
@@ -950,13 +958,14 @@ class BBCooker:
for dep in depgraph["tdepends"][task]:
print('"%s" -> "%s"' % (task, dep), file=tdepends_file)
print("}", file=tdepends_file)
+ tdepends_file.close()
logger.info("Task dependencies saved to 'task-depends.dot'")
def show_appends_with_no_recipes(self):
# Determine which bbappends haven't been applied
# First get list of recipes, including skipped
- recipefns = self.recipecache.pkg_fn.keys()
+ recipefns = list(self.recipecaches[''].pkg_fn.keys())
recipefns.extend(self.skiplist.keys())
# Work out list of bbappends that have been applied
@@ -980,20 +989,21 @@ class BBCooker:
def handlePrefProviders(self):
- localdata = data.createCopy(self.data)
- bb.data.update_data(localdata)
- bb.data.expandKeys(localdata)
+ for mc in self.multiconfigs:
+ localdata = data.createCopy(self.databuilder.mcdata[mc])
+ bb.data.update_data(localdata)
+ bb.data.expandKeys(localdata)
- # Handle PREFERRED_PROVIDERS
- for p in (localdata.getVar('PREFERRED_PROVIDERS', True) or "").split():
- try:
- (providee, provider) = p.split(':')
- except:
- providerlog.critical("Malformed option in PREFERRED_PROVIDERS variable: %s" % p)
- continue
- if providee in self.recipecache.preferred and self.recipecache.preferred[providee] != provider:
- providerlog.error("conflicting preferences for %s: both %s and %s specified", providee, provider, self.recipecache.preferred[providee])
- self.recipecache.preferred[providee] = provider
+ # Handle PREFERRED_PROVIDERS
+ for p in (localdata.getVar('PREFERRED_PROVIDERS', True) or "").split():
+ try:
+ (providee, provider) = p.split(':')
+ except:
+ providerlog.critical("Malformed option in PREFERRED_PROVIDERS variable: %s" % p)
+ continue
+ if providee in self.recipecaches[mc].preferred and self.recipecaches[mc].preferred[providee] != provider:
+ providerlog.error("conflicting preferences for %s: both %s and %s specified", providee, provider, self.recipecaches[mc].preferred[providee])
+ self.recipecaches[mc].preferred[providee] = provider
def findCoreBaseFiles(self, subdir, configfile):
corebase = self.data.getVar('COREBASE', True) or ""
@@ -1088,10 +1098,10 @@ class BBCooker:
"""
pkg_list = []
- for pfn in self.recipecache.pkg_fn:
- inherits = self.recipecache.inherits.get(pfn, None)
+ for pfn in self.recipecaches[''].pkg_fn:
+ inherits = self.recipecaches[''].inherits.get(pfn, None)
if inherits and klass in inherits:
- pkg_list.append(self.recipecache.pkg_fn[pfn])
+ pkg_list.append(self.recipecaches[''].pkg_fn[pfn])
return pkg_list
@@ -1124,16 +1134,18 @@ class BBCooker:
shell.start( self )
- def handleCollections( self, collections ):
+ def handleCollections(self, collections):
"""Handle collections"""
errors = False
- self.recipecache.bbfile_config_priorities = []
+ self.bbfile_config_priorities = []
if collections:
collection_priorities = {}
collection_depends = {}
collection_list = collections.split()
min_prio = 0
for c in collection_list:
+ bb.debug(1,'Processing %s in collection list' % (c))
+
# Get collection priority if defined explicitly
priority = self.data.getVar("BBFILE_PRIORITY_%s" % c, True)
if priority:
@@ -1152,10 +1164,10 @@ class BBCooker:
deps = self.data.getVar("LAYERDEPENDS_%s" % c, True)
if deps:
try:
- deplist = bb.utils.explode_dep_versions2(deps)
+ depDict = bb.utils.explode_dep_versions2(deps)
except bb.utils.VersionStringException as vse:
bb.fatal('Error parsing LAYERDEPENDS_%s: %s' % (c, str(vse)))
- for dep, oplist in deplist.iteritems():
+ for dep, oplist in list(depDict.items()):
if dep in collection_list:
for opstr in oplist:
layerver = self.data.getVar("LAYERVERSION_%s" % dep, True)
@@ -1174,10 +1186,39 @@ class BBCooker:
else:
parselog.error("Layer '%s' depends on layer '%s', but this layer is not enabled in your configuration", c, dep)
errors = True
- collection_depends[c] = deplist.keys()
+ collection_depends[c] = list(depDict.keys())
else:
collection_depends[c] = []
+ # Check recommends and store information for priority calculation
+ recs = self.data.getVar("LAYERRECOMMENDS_%s" % c, True)
+ if recs:
+ try:
+ recDict = bb.utils.explode_dep_versions2(recs)
+ except bb.utils.VersionStringException as vse:
+ bb.fatal('Error parsing LAYERRECOMMENDS_%s: %s' % (c, str(vse)))
+ for rec, oplist in list(recDict.items()):
+ if rec in collection_list:
+ if oplist:
+ opstr = oplist[0]
+ layerver = self.data.getVar("LAYERVERSION_%s" % rec, True)
+ if layerver:
+ (op, recver) = opstr.split()
+ try:
+ res = bb.utils.vercmp_string_op(layerver, recver, op)
+ except bb.utils.VersionStringException as vse:
+ bb.fatal('Error parsing LAYERRECOMMENDS_%s: %s' % (c, str(vse)))
+ if not res:
+ parselog.debug(3,"Layer '%s' recommends version %s of layer '%s', but version %s is currently enabled in your configuration. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec, layerver)
+ continue
+ else:
+ parselog.debug(3,"Layer '%s' recommends version %s of layer '%s', which exists in your configuration but does not specify a version. Check that you are using the correct matching versions/branches of these two layers.", c, opstr, rec)
+ continue
+ parselog.debug(3,"Layer '%s' recommends layer '%s', so we are adding it", c, rec)
+ collection_depends[c].append(rec)
+ else:
+ parselog.debug(3,"Layer '%s' recommends layer '%s', but this layer is not enabled in your configuration", c, rec)
+
# Recursively work out collection priorities based on dependencies
def calc_layer_priority(collection):
if not collection_priorities[collection]:
@@ -1205,7 +1246,7 @@ class BBCooker:
parselog.error("BBFILE_PATTERN_%s \"%s\" is not a valid regular expression", c, regex)
errors = True
continue
- self.recipecache.bbfile_config_priorities.append((c, regex, cre, collection_priorities[c]))
+ self.bbfile_config_priorities.append((c, regex, cre, collection_priorities[c]))
if errors:
# We've already printed the actual error(s)
raise CollectionError("Errors during parsing layer configuration")
@@ -1228,7 +1269,7 @@ class BBCooker:
if bf.startswith("/") or bf.startswith("../"):
bf = os.path.abspath(bf)
- self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
+ self.collection = CookerCollectFiles(self.bbfile_config_priorities)
filelist, masked = self.collection.collect_bbfiles(self.data, self.expanded_data)
try:
os.stat(bf)
@@ -1264,6 +1305,7 @@ class BBCooker:
"""
Build the file matching regexp buildfile
"""
+ bb.event.fire(bb.event.BuildInit(), self.expanded_data)
# Too many people use -b because they think it's how you normally
# specify a target to be built, so show a warning
@@ -1277,17 +1319,17 @@ class BBCooker:
if (task == None):
task = self.configuration.cmd
- fn, cls = bb.cache.Cache.virtualfn2realfn(buildfile)
+ fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn)
self.buildSetVars()
- infos = bb.cache.Cache.parse(fn, self.collection.get_file_appends(fn), \
- self.data,
- self.caches_array)
+ bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
+
+ infos = bb_cache.parse(fn, self.collection.get_file_appends(fn))
infos = dict(infos)
- fn = bb.cache.Cache.realfn2virtual(fn, cls)
+ fn = bb.cache.realfn2virtual(fn, cls, mc)
try:
info_array = infos[fn]
except KeyError:
@@ -1296,29 +1338,30 @@ class BBCooker:
if info_array[0].skipped:
bb.fatal("%s was skipped: %s" % (fn, info_array[0].skipreason))
- self.recipecache.add_from_recipeinfo(fn, info_array)
+ self.recipecaches[mc].add_from_recipeinfo(fn, info_array)
# Tweak some variables
item = info_array[0].pn
- self.recipecache.ignored_dependencies = set()
- self.recipecache.bbfile_priority[fn] = 1
+ self.recipecaches[mc].ignored_dependencies = set()
+ self.recipecaches[mc].bbfile_priority[fn] = 1
# Remove external dependencies
- self.recipecache.task_deps[fn]['depends'] = {}
- self.recipecache.deps[fn] = []
- self.recipecache.rundeps[fn] = []
- self.recipecache.runrecs[fn] = []
+ self.recipecaches[mc].task_deps[fn]['depends'] = {}
+ self.recipecaches[mc].deps[fn] = []
+ self.recipecaches[mc].rundeps[fn] = []
+ self.recipecaches[mc].runrecs[fn] = []
# Invalidate task for target if force mode active
if self.configuration.force:
logger.verbose("Invalidate task %s, %s", task, fn)
if not task.startswith("do_"):
task = "do_%s" % task
- bb.parse.siggen.invalidate_task(task, self.recipecache, fn)
+ bb.parse.siggen.invalidate_task(task, self.recipecaches[mc], fn)
# Setup taskdata structure
- taskdata = bb.taskdata.TaskData(self.configuration.abort)
- taskdata.add_provider(self.data, self.recipecache, item)
+ taskdata = {}
+ taskdata[mc] = bb.taskdata.TaskData(self.configuration.abort)
+ taskdata[mc].add_provider(self.data, self.recipecaches[mc], item)
buildname = self.data.getVar("BUILDNAME", True)
bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.expanded_data)
@@ -1326,9 +1369,9 @@ class BBCooker:
# Execute the runqueue
if not task.startswith("do_"):
task = "do_%s" % task
- runlist = [[item, task]]
+ runlist = [[mc, item, task, fn]]
- rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
+ rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
def buildFileIdle(server, rq, abort):
@@ -1353,7 +1396,7 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, item, failures, interrupted), self.expanded_data)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, item, failures, interrupted), self.expanded_data)
self.command.finishAsyncCommand(msg)
return False
if retval is True:
@@ -1389,7 +1432,7 @@ class BBCooker:
return False
if not retval:
- bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runq_fnid), buildname, targets, failures, interrupted), self.data)
+ bb.event.fire(bb.event.BuildCompleted(len(rq.rqdata.runtaskentries), buildname, targets, failures, interrupted), self.data)
self.command.finishAsyncCommand(msg)
return False
if retval is True:
@@ -1406,23 +1449,24 @@ class BBCooker:
if not task.startswith("do_"):
task = "do_%s" % task
- taskdata, runlist, fulltargetlist = self.buildTaskData(targets, task, self.configuration.abort)
+ packages = [target if ':' in target else '%s:%s' % (target, task) for target in targets]
+
+ bb.event.fire(bb.event.BuildInit(packages), self.expanded_data)
+
+ taskdata, runlist = self.buildTaskData(targets, task, self.configuration.abort)
buildname = self.data.getVar("BUILDNAME", False)
# make targets to always look as <target>:do_<task>
ntargets = []
- for target in fulltargetlist:
- if ":" in target:
- if ":do_" not in target:
- target = "%s:do_%s" % tuple(target.split(":", 1))
- else:
- target = "%s:%s" % (target, task)
- ntargets.append(target)
+ for target in runlist:
+ if target[0]:
+ ntargets.append("multiconfig:%s:%s:%s" % (target[0], target[1], target[2]))
+ ntargets.append("%s:%s" % (target[1], target[2]))
bb.event.fire(bb.event.BuildStarted(buildname, ntargets), self.data)
- rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
+ rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
if 'universe' in targets:
rq.rqdata.warn_multi_bb = True
@@ -1537,13 +1581,14 @@ class BBCooker:
if CookerFeatures.SEND_SANITYEVENTS in self.featureset:
bb.event.fire(bb.event.SanityCheck(False), self.data)
- ignore = self.expanded_data.getVar("ASSUME_PROVIDED", True) or ""
- self.recipecache.ignored_dependencies = set(ignore.split())
+ for mc in self.multiconfigs:
+ ignore = self.databuilder.mcdata[mc].getVar("ASSUME_PROVIDED", True) or ""
+ self.recipecaches[mc].ignored_dependencies = set(ignore.split())
- for dep in self.configuration.extra_assume_provided:
- self.recipecache.ignored_dependencies.add(dep)
+ for dep in self.configuration.extra_assume_provided:
+ self.recipecaches[mc].ignored_dependencies.add(dep)
- self.collection = CookerCollectFiles(self.recipecache.bbfile_config_priorities)
+ self.collection = CookerCollectFiles(self.bbfile_config_priorities)
(filelist, masked) = self.collection.collect_bbfiles(self.data, self.expanded_data)
self.parser = CookerParser(self, filelist, masked)
@@ -1557,18 +1602,20 @@ class BBCooker:
raise bb.BBHandledException()
self.show_appends_with_no_recipes()
self.handlePrefProviders()
- self.recipecache.bbfile_priority = self.collection.collection_priorities(self.recipecache.pkg_fn, self.data)
+ for mc in self.multiconfigs:
+ self.recipecaches[mc].bbfile_priority = self.collection.collection_priorities(self.recipecaches[mc].pkg_fn, self.data)
self.state = state.running
# Send an event listing all stamps reachable after parsing
# which the metadata may use to clean up stale data
- event = bb.event.ReachableStamps(self.recipecache.stamp)
- bb.event.fire(event, self.expanded_data)
+ for mc in self.multiconfigs:
+ event = bb.event.ReachableStamps(self.recipecaches[mc].stamp)
+ bb.event.fire(event, self.databuilder.mcdata[mc])
return None
return True
- def checkPackages(self, pkgs_to_build):
+ def checkPackages(self, pkgs_to_build, task=None):
# Return a copy, don't modify the original
pkgs_to_build = pkgs_to_build[:]
@@ -1579,26 +1626,29 @@ class BBCooker:
ignore = (self.expanded_data.getVar("ASSUME_PROVIDED", True) or "").split()
for pkg in pkgs_to_build:
if pkg in ignore:
- parselog.warn("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
+ parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
if 'world' in pkgs_to_build:
- bb.providers.buildWorldTargetList(self.recipecache)
pkgs_to_build.remove('world')
- for t in self.recipecache.world_target:
- pkgs_to_build.append(t)
+ for mc in self.multiconfigs:
+ bb.providers.buildWorldTargetList(self.recipecaches[mc], task)
+ for t in self.recipecaches[mc].world_target:
+ if mc:
+ t = "multiconfig:" + mc + ":" + t
+ pkgs_to_build.append(t)
if 'universe' in pkgs_to_build:
- parselog.warn("The \"universe\" target is only intended for testing and may produce errors.")
+ parselog.warning("The \"universe\" target is only intended for testing and may produce errors.")
parselog.debug(1, "collating packages for \"universe\"")
pkgs_to_build.remove('universe')
- for t in self.recipecache.universe_target:
- pkgs_to_build.append(t)
+ for mc in self.multiconfigs:
+ for t in self.recipecaches[mc].universe_target:
+ if mc:
+ t = "multiconfig:" + mc + ":" + t
+ pkgs_to_build.append(t)
return pkgs_to_build
-
-
-
def pre_serve(self):
# Empty the environment. The environment will be populated as
# necessary from the data store.
@@ -1847,7 +1897,7 @@ class CookerCollectFiles(object):
# Calculate priorities for each file
matched = set()
for p in pkgfns:
- realfn, cls = bb.cache.Cache.virtualfn2realfn(p)
+ realfn, cls, mc = bb.cache.virtualfn2realfn(p)
priorities[p] = self.calc_bbfile_priority(realfn, matched)
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
@@ -1870,7 +1920,7 @@ class CookerCollectFiles(object):
for collection, pattern, regex, _ in self.bbfile_config_priorities:
if regex in unmatched:
if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection, True) != '1':
- collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
+ collectlog.warning("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
return priorities
@@ -1891,7 +1941,7 @@ class Feeder(multiprocessing.Process):
while True:
try:
quit = self.quit.get_nowait()
- except Queue.Empty:
+ except queue.Empty:
pass
else:
if quit == 'cancel':
@@ -1905,7 +1955,7 @@ class Feeder(multiprocessing.Process):
try:
self.to_parsers.put(job, timeout=0.5)
- except Queue.Full:
+ except queue.Full:
self.jobs.insert(0, job)
continue
@@ -1945,7 +1995,7 @@ class Parser(multiprocessing.Process):
while True:
try:
self.quit.get_nowait()
- except Queue.Empty:
+ except queue.Empty:
pass
else:
self.results.cancel_join_thread()
@@ -1956,7 +2006,7 @@ class Parser(multiprocessing.Process):
else:
try:
job = self.jobs.get(timeout=0.25)
- except Queue.Empty:
+ except queue.Empty:
continue
if job is None:
@@ -1965,10 +2015,10 @@ class Parser(multiprocessing.Process):
try:
self.results.put(result, timeout=0.25)
- except Queue.Full:
+ except queue.Full:
pending.append(result)
- def parse(self, filename, appends, caches_array):
+ def parse(self, filename, appends):
try:
# Record the filename we're parsing into any events generated
def parse_filter(self, record):
@@ -1981,7 +2031,7 @@ class Parser(multiprocessing.Process):
bb.event.set_class_handlers(self.handlers.copy())
bb.event.LogHandler.filter = parse_filter
- return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array)
+ return True, self.bb_cache.parse(filename, appends)
except Exception as exc:
tb = sys.exc_info()[2]
exc.recipe = filename
@@ -1999,6 +2049,7 @@ class CookerParser(object):
self.cooker = cooker
self.cfgdata = cooker.data
self.cfghash = cooker.data_hash
+ self.cfgbuilder = cooker.databuilder
# Accounting statistics
self.parsed = 0
@@ -2013,17 +2064,17 @@ class CookerParser(object):
self.current = 0
self.process_names = []
- self.bb_cache = bb.cache.Cache(self.cfgdata, self.cfghash, cooker.caches_array)
+ self.bb_cache = bb.cache.Cache(self.cfgbuilder, self.cfghash, cooker.caches_array)
self.fromcache = []
self.willparse = []
for filename in self.filelist:
appends = self.cooker.collection.get_file_appends(filename)
if not self.bb_cache.cacheValid(filename, appends):
- self.willparse.append((filename, appends, cooker.caches_array))
+ self.willparse.append((filename, appends))
else:
self.fromcache.append((filename, appends))
self.toparse = self.total - len(self.fromcache)
- self.progress_chunk = max(self.toparse / 100, 1)
+ self.progress_chunk = int(max(self.toparse / 100, 1))
self.num_processes = min(int(self.cfgdata.getVar("BB_NUMBER_PARSE_THREADS", True) or
multiprocessing.cpu_count()), len(self.willparse))
@@ -2037,7 +2088,7 @@ class CookerParser(object):
if self.toparse:
bb.event.fire(bb.event.ParseStarted(self.toparse), self.cfgdata)
def init():
- Parser.cfg = self.cfgdata
+ Parser.bb_cache = self.bb_cache
bb.utils.set_process_name(multiprocessing.current_process().name)
multiprocessing.util.Finalize(None, bb.codeparser.parser_cache_save, exitpriority=1)
multiprocessing.util.Finalize(None, bb.fetch.fetcher_parse_save, exitpriority=1)
@@ -2108,7 +2159,7 @@ class CookerParser(object):
def load_cached(self):
for filename, appends in self.fromcache:
- cached, infos = self.bb_cache.load(filename, appends, self.cfgdata)
+ cached, infos = self.bb_cache.load(filename, appends)
yield not cached, infos
def parse_generator(self):
@@ -2118,7 +2169,7 @@ class CookerParser(object):
try:
result = self.result_queue.get(timeout=0.25)
- except Queue.Empty:
+ except queue.Empty:
pass
else:
value = result[1]
@@ -2131,7 +2182,7 @@ class CookerParser(object):
result = []
parsed = None
try:
- parsed, result = self.results.next()
+ parsed, result = next(self.results)
except StopIteration:
self.shutdown()
return False
@@ -2153,15 +2204,18 @@ class CookerParser(object):
return False
except bb.data_smart.ExpansionError as exc:
self.error += 1
- _, value, _ = sys.exc_info()
- logger.error('ExpansionError during parsing %s: %s', value.recipe, str(exc))
+ bbdir = os.path.dirname(__file__) + os.sep
+ etype, value, _ = sys.exc_info()
+ tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback))
+ logger.error('ExpansionError during parsing %s', value.recipe,
+ exc_info=(etype, value, tb))
self.shutdown(clean=False)
return False
except Exception as exc:
self.error += 1
etype, value, tb = sys.exc_info()
if hasattr(value, "recipe"):
- logger.error('Unable to parse %s', value.recipe,
+ logger.error('Unable to parse %s' % value.recipe,
exc_info=(etype, value, exc.traceback))
else:
# Most likely, an exception occurred during raising an exception
@@ -2184,13 +2238,13 @@ class CookerParser(object):
if info_array[0].skipped:
self.skipped += 1
self.cooker.skiplist[virtualfn] = SkippedPackage(info_array[0])
- self.bb_cache.add_info(virtualfn, info_array, self.cooker.recipecache,
+ (fn, cls, mc) = bb.cache.virtualfn2realfn(virtualfn)
+ self.bb_cache.add_info(virtualfn, info_array, self.cooker.recipecaches[mc],
parsed=parsed, watcher = self.cooker.add_filewatch)
return True
def reparse(self, filename):
- infos = self.bb_cache.parse(filename,
- self.cooker.collection.get_file_appends(filename),
- self.cfgdata, self.cooker.caches_array)
+ infos = self.bb_cache.parse(filename, self.cooker.collection.get_file_appends(filename))
for vfn, info_array in infos:
- self.cooker.recipecache.add_from_recipeinfo(vfn, info_array)
+ (fn, cls, mc) = bb.cache.virtualfn2realfn(vfn)
+ self.cooker.recipecaches[mc].add_from_recipeinfo(vfn, info_array)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/cookerdata.py b/import-layers/yocto-poky/bitbake/lib/bb/cookerdata.py
index 50259a9a0..b07c26643 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/cookerdata.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/cookerdata.py
@@ -22,9 +22,11 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-import os, sys
-from functools import wraps
import logging
+import os
+import re
+import sys
+from functools import wraps
import bb
from bb import data
import bb.parse
@@ -192,7 +194,8 @@ def catch_parse_error(func):
fn, _, _, _ = traceback.extract_tb(tb, 1)[0]
if not fn.startswith(bbdir):
break
- parselog.critical("Unable to parse %s", fn, exc_info=(exc_class, exc, tb))
+ parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb))
+ sys.exit(1)
except bb.parse.ParseError as exc:
parselog.critical(str(exc))
sys.exit(1)
@@ -234,9 +237,9 @@ class CookerDataBuilder(object):
bb.utils.set_context(bb.utils.clean_context())
bb.event.set_class_handlers(bb.event.clean_class_handlers())
- self.data = bb.data.init()
+ self.basedata = bb.data.init()
if self.tracking:
- self.data.enableTracking()
+ self.basedata.enableTracking()
# Keep a datastore of the initial environment variables and their
# values from when BitBake was launched to enable child processes
@@ -247,16 +250,49 @@ class CookerDataBuilder(object):
self.savedenv.setVar(k, cookercfg.env[k])
filtered_keys = bb.utils.approved_variables()
- bb.data.inheritFromOS(self.data, self.savedenv, filtered_keys)
- self.data.setVar("BB_ORIGENV", self.savedenv)
+ bb.data.inheritFromOS(self.basedata, self.savedenv, filtered_keys)
+ self.basedata.setVar("BB_ORIGENV", self.savedenv)
if worker:
- self.data.setVar("BB_WORKERCONTEXT", "1")
+ self.basedata.setVar("BB_WORKERCONTEXT", "1")
+
+ self.data = self.basedata
+ self.mcdata = {}
def parseBaseConfiguration(self):
try:
- self.parseConfigurationFiles(self.prefiles, self.postfiles)
- except SyntaxError:
+ bb.parse.init_parser(self.basedata)
+ self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
+
+ if self.data.getVar("BB_WORKERCONTEXT", False) is None:
+ bb.fetch.fetcher_init(self.data)
+ bb.codeparser.parser_cache_init(self.data)
+
+ bb.event.fire(bb.event.ConfigParsed(), self.data)
+
+ reparse_cnt = 0
+ while self.data.getVar("BB_INVALIDCONF", False) is True:
+ if reparse_cnt > 20:
+ logger.error("Configuration has been re-parsed over 20 times, "
+ "breaking out of the loop...")
+ raise Exception("Too deep config re-parse loop. Check locations where "
+ "BB_INVALIDCONF is being set (ConfigParsed event handlers)")
+ self.data.setVar("BB_INVALIDCONF", False)
+ self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
+ reparse_cnt += 1
+ bb.event.fire(bb.event.ConfigParsed(), self.data)
+
+ bb.parse.init_parser(self.data)
+ self.data_hash = self.data.get_hash()
+ self.mcdata[''] = self.data
+
+ multiconfig = (self.data.getVar("BBMULTICONFIG", True) or "").split()
+ for config in multiconfig:
+ mcdata = self.parseConfigurationFiles(['conf/multiconfig/%s.conf' % config] + self.prefiles, self.postfiles)
+ bb.event.fire(bb.event.ConfigParsed(), mcdata)
+ self.mcdata[config] = mcdata
+
+ except (SyntaxError, bb.BBHandledException):
raise bb.BBHandledException
except bb.data_smart.ExpansionError as e:
logger.error(str(e))
@@ -269,8 +305,7 @@ class CookerDataBuilder(object):
return findConfigFile("bblayers.conf", data)
def parseConfigurationFiles(self, prefiles, postfiles):
- data = self.data
- bb.parse.init_parser(data)
+ data = bb.data.createCopy(self.basedata)
# Parse files for loading *before* bitbake.conf and any includes
for f in prefiles:
@@ -289,15 +324,22 @@ class CookerDataBuilder(object):
data = bb.data.createCopy(data)
approved = bb.utils.approved_variables()
for layer in layers:
+ if not os.path.isdir(layer):
+ parselog.critical("Layer directory '%s' does not exist! "
+ "Please check BBLAYERS in %s" % (layer, layerconf))
+ sys.exit(1)
parselog.debug(2, "Adding layer %s", layer)
if 'HOME' in approved and '~' in layer:
layer = os.path.expanduser(layer)
if layer.endswith('/'):
layer = layer.rstrip('/')
data.setVar('LAYERDIR', layer)
+ data.setVar('LAYERDIR_RE', re.escape(layer))
data = parse_config_file(os.path.join(layer, "conf", "layer.conf"), data)
data.expandVarref('LAYERDIR')
+ data.expandVarref('LAYERDIR_RE')
+ data.delVar('LAYERDIR_RE')
data.delVar('LAYERDIR')
if not data.getVar("BBPATH", True):
@@ -323,23 +365,13 @@ class CookerDataBuilder(object):
# We register any handlers we've found so far here...
for var in data.getVar('__BBHANDLERS', False) or []:
handlerfn = data.getVarFlag(var, "filename", False)
+ if not handlerfn:
+ parselog.critical("Undefined event handler function '%s'" % var)
+ sys.exit(1)
handlerln = int(data.getVarFlag(var, "lineno", False))
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask", True) or "").split(), handlerfn, handlerln)
- if data.getVar("BB_WORKERCONTEXT", False) is None:
- bb.fetch.fetcher_init(data)
- bb.codeparser.parser_cache_init(data)
- bb.event.fire(bb.event.ConfigParsed(), data)
-
- if data.getVar("BB_INVALIDCONF", False) is True:
- data.setVar("BB_INVALIDCONF", False)
- self.parseConfigurationFiles(self.prefiles, self.postfiles)
- return
-
- bb.parse.init_parser(data)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))
- self.data = data
- self.data_hash = data.get_hash()
-
+ return data
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/daemonize.py b/import-layers/yocto-poky/bitbake/lib/bb/daemonize.py
index 346a61858..ab4a95462 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/daemonize.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/daemonize.py
@@ -178,8 +178,8 @@ def createDaemon(function, logfile):
# os.dup2(0, 2) # standard error (2)
- si = file('/dev/null', 'r')
- so = file(logfile, 'w')
+ si = open('/dev/null', 'r')
+ so = open(logfile, 'w')
se = so
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/data.py b/import-layers/yocto-poky/bitbake/lib/bb/data.py
index dbc6dea68..c1f27cd0c 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/data.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/data.py
@@ -182,12 +182,12 @@ def inheritFromOS(d, savedenv, permitted):
def emit_var(var, o=sys.__stdout__, d = init(), all=False):
"""Emit a variable to be sourced by a shell."""
- if d.getVarFlag(var, "python", False):
+ func = d.getVarFlag(var, "func", False)
+ if d.getVarFlag(var, 'python', False) and func:
return False
export = d.getVarFlag(var, "export", False)
unexport = d.getVarFlag(var, "unexport", False)
- func = d.getVarFlag(var, "func", False)
if not all and not export and not unexport and not func:
return False
@@ -339,7 +339,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps |= parser.references
deps = deps | (keys & parser.execs)
return deps, value
- varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude", "vardepvalueexclude", "postfuncs", "prefuncs", "lineno", "filename"]) or {}
+ varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude", "exports", "postfuncs", "prefuncs", "lineno", "filename"]) or {}
vardeps = varflags.get("vardeps")
value = d.getVar(key, False)
@@ -364,7 +364,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
if varflags.get("python"):
parser = bb.codeparser.PythonParser(key, logger)
if value and "\t" in value:
- logger.warn("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE", True)))
+ logger.warning("Variable %s contains tabs, please remove these (%s)" % (key, d.getVar("FILE", True)))
parser.parse_python(value, filename=varflags.get("filename"), lineno=varflags.get("lineno"))
deps = deps | parser.references
deps = deps | (keys & parser.execs)
@@ -383,6 +383,8 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps = deps | set(varflags["prefuncs"].split())
if "postfuncs" in varflags:
deps = deps | set(varflags["postfuncs"].split())
+ if "exports" in varflags:
+ deps = deps | set(varflags["exports"].split())
else:
parser = d.expandWithRefs(value, key)
deps |= parser.references
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/data_smart.py b/import-layers/yocto-poky/bitbake/lib/bb/data_smart.py
index fa1e79427..f100446dc 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/data_smart.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/data_smart.py
@@ -135,7 +135,7 @@ class VariableParse:
self.contains[k] = parser.contains[k].copy()
else:
self.contains[k].update(parser.contains[k])
- value = utils.better_eval(codeobj, DataContext(self.d))
+ value = utils.better_eval(codeobj, DataContext(self.d), {'d' : self.d})
return str(value)
@@ -372,7 +372,7 @@ class DataSmart(MutableMapping):
def expandWithRefs(self, s, varname):
- if not isinstance(s, basestring): # sanity check
+ if not isinstance(s, str): # sanity check
return VariableParse(varname, self, s)
if varname and varname in self.expand_cache:
@@ -397,8 +397,7 @@ class DataSmart(MutableMapping):
except bb.parse.SkipRecipe:
raise
except Exception as exc:
- exc_class, exc, tb = sys.exc_info()
- raise ExpansionError, ExpansionError(varname, s, exc), tb
+ raise ExpansionError(varname, s, exc) from exc
varparse.value = s
@@ -917,7 +916,7 @@ class DataSmart(MutableMapping):
yield k
def __len__(self):
- return len(frozenset(self))
+ return len(frozenset(iter(self)))
def __getitem__(self, item):
value = self.getVar(item, False)
@@ -966,4 +965,4 @@ class DataSmart(MutableMapping):
data.update({i:value})
data_str = str([(k, data[k]) for k in sorted(data.keys())])
- return hashlib.md5(data_str).hexdigest()
+ return hashlib.md5(data_str.encode("utf-8")).hexdigest()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/event.py b/import-layers/yocto-poky/bitbake/lib/bb/event.py
index 5ffe89eae..6f1cb101f 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/event.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/event.py
@@ -24,14 +24,13 @@ BitBake build tools.
import os, sys
import warnings
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+import pickle
import logging
import atexit
import traceback
import ast
+import threading
+
import bb.utils
import bb.compat
import bb.exceptions
@@ -71,12 +70,27 @@ _event_handler_map = {}
_catchall_handlers = {}
_eventfilter = None
_uiready = False
+_thread_lock = threading.Lock()
+_thread_lock_enabled = False
+
+if hasattr(__builtins__, '__setitem__'):
+ builtins = __builtins__
+else:
+ builtins = __builtins__.__dict__
+
+def enable_threadlock():
+ global _thread_lock_enabled
+ _thread_lock_enabled = True
+
+def disable_threadlock():
+ global _thread_lock_enabled
+ _thread_lock_enabled = False
def execute_handler(name, handler, event, d):
event.data = d
addedd = False
- if 'd' not in __builtins__:
- __builtins__['d'] = d
+ if 'd' not in builtins:
+ builtins['d'] = d
addedd = True
try:
ret = handler(event)
@@ -94,7 +108,7 @@ def execute_handler(name, handler, event, d):
finally:
del event.data
if addedd:
- del __builtins__['d']
+ del builtins['d']
def fire_class_handlers(event, d):
if isinstance(event, logging.LogRecord):
@@ -102,7 +116,7 @@ def fire_class_handlers(event, d):
eid = str(event.__class__)[8:-2]
evt_hmap = _event_handler_map.get(eid, {})
- for name, handler in _handlers.iteritems():
+ for name, handler in list(_handlers.items()):
if name in _catchall_handlers or name in evt_hmap:
if _eventfilter:
if not _eventfilter(name, handler, event, d):
@@ -117,31 +131,44 @@ def print_ui_queue():
logger = logging.getLogger("BitBake")
if not _uiready:
from bb.msg import BBLogFormatter
- console = logging.StreamHandler(sys.stdout)
- console.setFormatter(BBLogFormatter("%(levelname)s: %(message)s"))
- logger.handlers = [console]
+ stdout = logging.StreamHandler(sys.stdout)
+ stderr = logging.StreamHandler(sys.stderr)
+ formatter = BBLogFormatter("%(levelname)s: %(message)s")
+ stdout.setFormatter(formatter)
+ stderr.setFormatter(formatter)
# First check to see if we have any proper messages
msgprint = False
- for event in ui_queue:
+ for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
if event.levelno > logging.DEBUG:
+ if event.levelno >= logging.WARNING:
+ logger.addHandler(stderr)
+ else:
+ logger.addHandler(stdout)
logger.handle(event)
msgprint = True
if msgprint:
return
# Nope, so just print all of the messages we have (including debug messages)
- for event in ui_queue:
+ logger.addHandler(stdout)
+ for event in ui_queue[:]:
if isinstance(event, logging.LogRecord):
logger.handle(event)
def fire_ui_handlers(event, d):
+ global _thread_lock
+ global _thread_lock_enabled
+
if not _uiready:
# No UI handlers registered yet, queue up the messages
ui_queue.append(event)
return
+ if _thread_lock_enabled:
+ _thread_lock.acquire()
+
errors = []
for h in _ui_handlers:
#print "Sending event %s" % event
@@ -160,6 +187,9 @@ def fire_ui_handlers(event, d):
for h in errors:
del _ui_handlers[h]
+ if _thread_lock_enabled:
+ _thread_lock.release()
+
def fire(event, d):
"""Fire off an Event"""
@@ -187,7 +217,7 @@ def register(name, handler, mask=None, filename=None, lineno=None):
if handler is not None:
# handle string containing python code
- if isinstance(handler, basestring):
+ if isinstance(handler, str):
tmp = "def %s(e):\n%s" % (name, handler)
try:
code = bb.methodpool.compile_cache(tmp)
@@ -225,6 +255,13 @@ def remove(name, handler):
"""Remove an Event handler"""
_handlers.pop(name)
+def get_handlers():
+ return _handlers
+
+def set_handlers(handlers):
+ global _handlers
+ _handlers = handlers
+
def set_eventfilter(func):
global _eventfilter
_eventfilter = func
@@ -373,7 +410,11 @@ class BuildBase(Event):
-
+class BuildInit(BuildBase):
+ """buildFile or buildTargets was invoked"""
+ def __init__(self, p=[]):
+ name = None
+ BuildBase.__init__(self, name, p)
class BuildStarted(BuildBase, OperationStarted):
"""bbmake build run started"""
@@ -605,8 +646,9 @@ class LogHandler(logging.Handler):
if hasattr(tb, 'tb_next'):
tb = list(bb.exceptions.extract_traceback(tb, context=3))
# Need to turn the value into something the logging system can pickle
- value = str(value)
record.bb_exc_info = (etype, value, tb)
+ record.bb_exc_formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
+ value = str(value)
record.exc_info = None
fire(record, None)
@@ -637,6 +679,33 @@ class MetadataEvent(Event):
self.type = eventtype
self._localdata = eventdata
+class ProcessStarted(Event):
+ """
+ Generic process started event (usually part of the initial startup)
+ where further progress events will be delivered
+ """
+ def __init__(self, processname, total):
+ Event.__init__(self)
+ self.processname = processname
+ self.total = total
+
+class ProcessProgress(Event):
+ """
+ Generic process progress event (usually part of the initial startup)
+ """
+ def __init__(self, processname, progress):
+ Event.__init__(self)
+ self.processname = processname
+ self.progress = progress
+
+class ProcessFinished(Event):
+ """
+ Generic process finished event (usually part of the initial startup)
+ """
+ def __init__(self, processname):
+ Event.__init__(self)
+ self.processname = processname
+
class SanityCheck(Event):
"""
Event to run sanity checks, either raise errors or generate events as return status.
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/exceptions.py b/import-layers/yocto-poky/bitbake/lib/bb/exceptions.py
index f182c8fd6..cd713439e 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/exceptions.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/exceptions.py
@@ -1,4 +1,4 @@
-from __future__ import absolute_import
+
import inspect
import traceback
import bb.namedtuple_with_abc
@@ -86,6 +86,6 @@ def format_exception(etype, value, tb, context=1, limit=None, formatter=None):
def to_string(exc):
if isinstance(exc, SystemExit):
- if not isinstance(exc.code, basestring):
+ if not isinstance(exc.code, str):
return 'Exited with "%d"' % exc.code
return str(exc)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/__init__.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/__init__.py
index 1fa67020c..cd7362c44 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/__init__.py
@@ -25,31 +25,26 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
-from __future__ import absolute_import
-from __future__ import print_function
import os, re
import signal
import logging
-import urllib
-import urlparse
+import urllib.request, urllib.parse, urllib.error
+if 'git' not in urllib.parse.uses_netloc:
+ urllib.parse.uses_netloc.append('git')
+import operator
+import collections
+import subprocess
+import pickle
import bb.persist_data, bb.utils
import bb.checksum
from bb import data
import bb.process
-import subprocess
__version__ = "2"
_checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- logger.info("Importing cPickle failed. "
- "Falling back to a very slow implementation.")
-
class BBFetchException(Exception):
"""Class all fetch exceptions inherit from"""
def __init__(self, message):
@@ -231,14 +226,14 @@ class URI(object):
# them are not quite RFC compliant.
uri, param_str = (uri.split(";", 1) + [None])[:2]
- urlp = urlparse.urlparse(uri)
+ urlp = urllib.parse.urlparse(uri)
self.scheme = urlp.scheme
reparse = 0
# Coerce urlparse to make URI scheme use netloc
- if not self.scheme in urlparse.uses_netloc:
- urlparse.uses_params.append(self.scheme)
+ if not self.scheme in urllib.parse.uses_netloc:
+ urllib.parse.uses_params.append(self.scheme)
reparse = 1
# Make urlparse happy(/ier) by converting local resources
@@ -249,7 +244,7 @@ class URI(object):
reparse = 1
if reparse:
- urlp = urlparse.urlparse(uri)
+ urlp = urllib.parse.urlparse(uri)
# Identify if the URI is relative or not
if urlp.scheme in self._relative_schemes and \
@@ -265,7 +260,7 @@ class URI(object):
if urlp.password:
self.userinfo += ':%s' % urlp.password
- self.path = urllib.unquote(urlp.path)
+ self.path = urllib.parse.unquote(urlp.path)
if param_str:
self.params = self._param_str_split(param_str, ";")
@@ -297,7 +292,7 @@ class URI(object):
if self.query else '')
def _param_str_split(self, string, elmdelim, kvdelim="="):
- ret = {}
+ ret = collections.OrderedDict()
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim)]:
ret[k] = v
return ret
@@ -313,11 +308,11 @@ class URI(object):
@property
def path_quoted(self):
- return urllib.quote(self.path)
+ return urllib.parse.quote(self.path)
@path_quoted.setter
def path_quoted(self, path):
- self.path = urllib.unquote(path)
+ self.path = urllib.parse.unquote(path)
@property
def path(self):
@@ -390,7 +385,7 @@ def decodeurl(url):
user = ''
pswd = ''
- p = {}
+ p = collections.OrderedDict()
if parm:
for s in parm.split(';'):
if s:
@@ -399,7 +394,7 @@ def decodeurl(url):
s1, s2 = s.split('=')
p[s1] = s2
- return type, host, urllib.unquote(path), user, pswd, p
+ return type, host, urllib.parse.unquote(path), user, pswd, p
def encodeurl(decoded):
"""Encodes a URL from tokens (scheme, network location, path,
@@ -423,7 +418,7 @@ def encodeurl(decoded):
# Standardise path to ensure comparisons work
while '//' in path:
path = path.replace("//", "/")
- url += "%s" % urllib.quote(path)
+ url += "%s" % urllib.parse.quote(path)
if p:
for parm in p:
url += ";%s=%s" % (parm, p[parm])
@@ -586,12 +581,12 @@ def verify_checksum(ud, d, precomputed={}):
raise NoChecksumError('Missing SRC_URI checksum', ud.url)
# Log missing sums so user can more easily add them
- logger.warn('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
- 'SRC_URI[%s] = "%s"',
- ud.localpath, ud.md5_name, md5data)
- logger.warn('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
- 'SRC_URI[%s] = "%s"',
- ud.localpath, ud.sha256_name, sha256data)
+ logger.warning('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
+ 'SRC_URI[%s] = "%s"',
+ ud.localpath, ud.md5_name, md5data)
+ logger.warning('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
+ 'SRC_URI[%s] = "%s"',
+ ud.localpath, ud.sha256_name, sha256data)
# We want to alert the user if a checksum is defined in the recipe but
# it does not match.
@@ -659,9 +654,9 @@ def verify_donestamp(ud, d, origud=None):
# files to those containing the checksums.
if not isinstance(e, EOFError):
# Ignore errors, they aren't fatal
- logger.warn("Couldn't load checksums from donestamp %s: %s "
- "(msg: %s)" % (ud.donestamp, type(e).__name__,
- str(e)))
+ logger.warning("Couldn't load checksums from donestamp %s: %s "
+ "(msg: %s)" % (ud.donestamp, type(e).__name__,
+ str(e)))
try:
checksums = verify_checksum(ud, d, precomputed_checksums)
@@ -669,14 +664,14 @@ def verify_donestamp(ud, d, origud=None):
# as an upgrade path from the previous done stamp file format.
if checksums != precomputed_checksums:
with open(ud.donestamp, "wb") as cachefile:
- p = pickle.Pickler(cachefile, pickle.HIGHEST_PROTOCOL)
+ p = pickle.Pickler(cachefile, 2)
p.dump(checksums)
return True
except ChecksumError as e:
# Checksums failed to verify, trigger re-download and remove the
# incorrect stamp file.
- logger.warn("Checksum mismatch for local file %s\n"
- "Cleaning and trying again." % ud.localpath)
+ logger.warning("Checksum mismatch for local file %s\n"
+ "Cleaning and trying again." % ud.localpath)
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
bb.utils.remove(ud.donestamp)
@@ -703,13 +698,13 @@ def update_stamp(ud, d):
checksums = verify_checksum(ud, d)
# Store the checksums for later re-verification against the recipe
with open(ud.donestamp, "wb") as cachefile:
- p = pickle.Pickler(cachefile, pickle.HIGHEST_PROTOCOL)
+ p = pickle.Pickler(cachefile, 2)
p.dump(checksums)
except ChecksumError as e:
# Checksums failed to verify, trigger re-download and remove the
# incorrect stamp file.
- logger.warn("Checksum mismatch for local file %s\n"
- "Cleaning and trying again." % ud.localpath)
+ logger.warning("Checksum mismatch for local file %s\n"
+ "Cleaning and trying again." % ud.localpath)
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
bb.utils.remove(ud.donestamp)
@@ -766,6 +761,7 @@ def get_srcrev(d, method_name='sortable_revision'):
if not format:
raise FetchError("The SRCREV_FORMAT variable must be set when multiple SCMs are used.")
+ name_to_rev = {}
seenautoinc = False
for scm in scms:
ud = urldata[scm]
@@ -774,7 +770,16 @@ def get_srcrev(d, method_name='sortable_revision'):
seenautoinc = seenautoinc or autoinc
if len(rev) > 10:
rev = rev[:10]
- format = format.replace(name, rev)
+ name_to_rev[name] = rev
+ # Replace names by revisions in the SRCREV_FORMAT string. The approach used
+ # here can handle names being prefixes of other names and names appearing
+ # as substrings in revisions (in which case the name should not be
+ # expanded). The '|' regular expression operator tries matches from left to
+ # right, so we need to sort the names with the longest ones first.
+ names_descending_len = sorted(name_to_rev, key=len, reverse=True)
+ name_to_rev_re = "|".join(re.escape(name) for name in names_descending_len)
+ format = re.sub(name_to_rev_re, lambda match: name_to_rev[match.group(0)], format)
+
if seenautoinc:
format = "AUTOINC+" + format
@@ -784,7 +789,7 @@ def localpath(url, d):
fetcher = bb.fetch2.Fetch([url], d)
return fetcher.localpath(url)
-def runfetchcmd(cmd, d, quiet=False, cleanup=None):
+def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
"""
Run cmd returning the command output
Raise an error if interrupted or cmd fails
@@ -807,13 +812,16 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None):
'GIT_SSL_CAINFO',
'GIT_SMART_HTTP',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
- 'SOCKS5_USER', 'SOCKS5_PASSWD']
+ 'SOCKS5_USER', 'SOCKS5_PASSWD',
+ 'DBUS_SESSION_BUS_ADDRESS',
+ 'P4CONFIG']
if not cleanup:
cleanup = []
+ origenv = d.getVar("BB_ORIGENV", False)
for var in exportvars:
- val = d.getVar(var, True)
+ val = d.getVar(var, True) or (origenv and origenv.getVar(var, True))
if val:
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
@@ -823,7 +831,7 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None):
error_message = ""
try:
- (output, errors) = bb.process.run(cmd, shell=True, stderr=subprocess.PIPE)
+ (output, errors) = bb.process.run(cmd, log=log, shell=True, stderr=subprocess.PIPE, cwd=workdir)
success = True
except bb.process.NotFoundError as e:
error_message = "Fetch command %s" % (e.command)
@@ -834,7 +842,7 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None):
output = "output:\n%s" % e.stderr
else:
output = "no output"
- error_message = "Fetch command failed with exit code %s, %s" % (e.exitcode, output)
+ error_message = "Fetch command %s failed with exit code %s, %s" % (e.command, e.exitcode, output)
except bb.process.CmdError as e:
error_message = "Fetch command %s could not be run:\n%s" % (e.command, e.msg)
if not success:
@@ -937,8 +945,6 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
return found
return False
- os.chdir(ld.getVar("DL_DIR", True))
-
if not verify_donestamp(ud, ld, origud) or ud.method.need_update(ud, ld):
ud.method.download(ud, ld)
if hasattr(ud.method,"build_mirror_data"):
@@ -982,8 +988,8 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
except bb.fetch2.BBFetchException as e:
if isinstance(e, ChecksumError):
- logger.warn("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (ud.url, origud.url))
- logger.warn(str(e))
+ logger.warning("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (ud.url, origud.url))
+ logger.warning(str(e))
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
elif isinstance(e, NoChecksumError):
@@ -1198,7 +1204,7 @@ class FetchData(object):
raise NonLocalMethod()
if self.parm.get("proto", None) and "protocol" not in self.parm:
- logger.warn('Consider updating %s recipe to use "protocol" not "proto" in SRC_URI.', d.getVar('PN', True))
+ logger.warning('Consider updating %s recipe to use "protocol" not "proto" in SRC_URI.', d.getVar('PN', True))
self.parm["protocol"] = self.parm.get("proto", None)
if hasattr(self.method, "urldata_init"):
@@ -1395,7 +1401,18 @@ class FetchMethod(object):
else:
cmd = 'rpm2cpio.sh %s | cpio -id' % (file)
elif file.endswith('.deb') or file.endswith('.ipk'):
- cmd = 'ar -p %s data.tar.gz | zcat | tar --no-same-owner -xpf -' % file
+ output = subprocess.check_output('ar -t %s' % file, preexec_fn=subprocess_setup, shell=True)
+ datafile = None
+ if output:
+ for line in output.decode().splitlines():
+ if line.startswith('data.tar.'):
+ datafile = line
+ break
+ else:
+ raise UnpackError("Unable to unpack deb/ipk package - does not contain data.tar.* file", urldata.url)
+ else:
+ raise UnpackError("Unable to unpack deb/ipk package - could not list contents", urldata.url)
+ cmd = 'ar x %s %s && tar --no-same-owner -xpf %s && rm %s' % (file, datafile, datafile, datafile)
elif file.endswith('.tar.7z'):
cmd = '7z x -so %s | tar xf - ' % file
elif file.endswith('.7z'):
@@ -1403,7 +1420,13 @@ class FetchMethod(object):
# If 'subdir' param exists, create a dir and use it as destination for unpack cmd
if 'subdir' in urldata.parm:
- unpackdir = '%s/%s' % (rootdir, urldata.parm.get('subdir'))
+ subdir = urldata.parm.get('subdir')
+ if os.path.isabs(subdir):
+ if not os.path.realpath(subdir).startswith(os.path.realpath(rootdir)):
+ raise UnpackError("subdir argument isn't a subdirectory of unpack root %s" % rootdir, urldata.url)
+ unpackdir = subdir
+ else:
+ unpackdir = os.path.join(rootdir, subdir)
bb.utils.mkdirhier(unpackdir)
else:
unpackdir = rootdir
@@ -1422,22 +1445,16 @@ class FetchMethod(object):
if urlpath.find("/") != -1:
destdir = urlpath.rsplit("/", 1)[0] + '/'
bb.utils.mkdirhier("%s/%s" % (unpackdir, destdir))
- cmd = 'cp -fpPR %s %s' % (file, destdir)
+ cmd = 'cp -fpPRH %s %s' % (file, destdir)
if not cmd:
return
- # Change to unpackdir before executing command
- save_cwd = os.getcwd();
- os.chdir(unpackdir)
-
path = data.getVar('PATH', True)
if path:
cmd = "PATH=\"%s\" %s" % (path, cmd)
- bb.note("Unpacking %s to %s/" % (file, os.getcwd()))
- ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
-
- os.chdir(save_cwd)
+ bb.note("Unpacking %s to %s/" % (file, unpackdir))
+ ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True, cwd=unpackdir)
if ret != 0:
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), urldata.url)
@@ -1505,8 +1522,9 @@ class Fetch(object):
self.connection_cache = connection_cache
fn = d.getVar('FILE', True)
- if cache and fn and fn in urldata_cache:
- self.ud = urldata_cache[fn]
+ mc = d.getVar('__BBMULTICONFIG', True) or ""
+ if cache and fn and mc + fn in urldata_cache:
+ self.ud = urldata_cache[mc + fn]
for url in urls:
if url not in self.ud:
@@ -1518,7 +1536,7 @@ class Fetch(object):
pass
if fn and cache:
- urldata_cache[fn] = self.ud
+ urldata_cache[mc + fn] = self.ud
def localpath(self, url):
if url not in self.urls:
@@ -1572,8 +1590,6 @@ class Fetch(object):
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
- os.chdir(self.d.getVar("DL_DIR", True))
-
firsterr = None
verified_stamp = verify_donestamp(ud, self.d)
if not localpath and (not verified_stamp or m.need_update(ud, self.d)):
@@ -1594,14 +1610,14 @@ class Fetch(object):
except BBFetchException as e:
if isinstance(e, ChecksumError):
- logger.warn("Checksum failure encountered with download of %s - will attempt other sources if available" % u)
+ logger.warning("Checksum failure encountered with download of %s - will attempt other sources if available" % u)
logger.debug(1, str(e))
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
elif isinstance(e, NoChecksumError):
raise
else:
- logger.warn('Failed to fetch URL %s, attempting MIRRORS if available' % u)
+ logger.warning('Failed to fetch URL %s, attempting MIRRORS if available' % u)
logger.debug(1, str(e))
firsterr = e
# Remove any incomplete fetch
@@ -1734,7 +1750,7 @@ class FetchConnectionCache(object):
del self.cache[cn]
def close_connections(self):
- for cn in self.cache.keys():
+ for cn in list(self.cache.keys()):
self.cache[cn].close()
del self.cache[cn]
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/bzr.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/bzr.py
index 03e9ac461..72264afb5 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/bzr.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/bzr.py
@@ -88,28 +88,25 @@ class Bzr(FetchMethod):
bzrcmd = self._buildbzrcommand(ud, d, "update")
logger.debug(1, "BZR Update %s", ud.url)
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
- os.chdir(os.path.join (ud.pkgdir, os.path.basename(ud.path)))
- runfetchcmd(bzrcmd, d)
+ runfetchcmd(bzrcmd, d, workdir=os.path.join(ud.pkgdir, os.path.basename(ud.path)))
else:
bb.utils.remove(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir)), True)
bzrcmd = self._buildbzrcommand(ud, d, "fetch")
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
logger.debug(1, "BZR Checkout %s", ud.url)
bb.utils.mkdirhier(ud.pkgdir)
- os.chdir(ud.pkgdir)
logger.debug(1, "Running %s", bzrcmd)
- runfetchcmd(bzrcmd, d)
-
- os.chdir(ud.pkgdir)
+ runfetchcmd(bzrcmd, d, workdir=ud.pkgdir)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":
tar_flags = ""
else:
- tar_flags = "--exclude '.bzr' --exclude '.bzrtags'"
+ tar_flags = "--exclude='.bzr' --exclude='.bzrtags'"
# tar them up to a defined filename
- runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(ud.pkgdir)), d, cleanup = [ud.localpath])
+ runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(ud.pkgdir)),
+ d, cleanup=[ud.localpath], workdir=ud.pkgdir)
def supports_srcrev(self):
return True
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/clearcase.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/clearcase.py
index ba83e7cb6..70e280a8d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/clearcase.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/clearcase.py
@@ -202,11 +202,10 @@ class ClearCase(FetchMethod):
def _remove_view(self, ud, d):
if os.path.exists(ud.viewdir):
- os.chdir(ud.ccasedir)
cmd = self._build_ccase_command(ud, 'rmview');
logger.info("cleaning up [VOB=%s label=%s view=%s]", ud.vob, ud.label, ud.viewname)
bb.fetch2.check_network_access(d, cmd, ud.url)
- output = runfetchcmd(cmd, d)
+ output = runfetchcmd(cmd, d, workdir=ud.ccasedir)
logger.info("rmview output: %s", output)
def need_update(self, ud, d):
@@ -241,11 +240,10 @@ class ClearCase(FetchMethod):
raise e
# Set configspec: Setting the configspec effectively fetches the files as defined in the configspec
- os.chdir(ud.viewdir)
cmd = self._build_ccase_command(ud, 'setcs');
logger.info("fetching data [VOB=%s label=%s view=%s]", ud.vob, ud.label, ud.viewname)
bb.fetch2.check_network_access(d, cmd, ud.url)
- output = runfetchcmd(cmd, d)
+ output = runfetchcmd(cmd, d, workdir=ud.viewdir)
logger.info("%s", output)
# Copy the configspec to the viewdir so we have it in our source tarball later
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/cvs.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/cvs.py
index d27d96f68..5ff70ba92 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/cvs.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/cvs.py
@@ -123,22 +123,23 @@ class Cvs(FetchMethod):
pkg = d.getVar('PN', True)
pkgdir = os.path.join(d.getVar('CVSDIR', True), pkg)
moddir = os.path.join(pkgdir, localdir)
+ workdir = None
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
logger.info("Update " + ud.url)
bb.fetch2.check_network_access(d, cvsupdatecmd, ud.url)
# update sources there
- os.chdir(moddir)
+ workdir = moddir
cmd = cvsupdatecmd
else:
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(pkgdir)
- os.chdir(pkgdir)
+ workdir = pkgdir
logger.debug(1, "Running %s", cvscmd)
bb.fetch2.check_network_access(d, cvscmd, ud.url)
cmd = cvscmd
- runfetchcmd(cmd, d, cleanup = [moddir])
+ runfetchcmd(cmd, d, cleanup=[moddir], workdir=workdir)
if not os.access(moddir, os.R_OK):
raise FetchError("Directory %s was not readable despite sucessful fetch?!" % moddir, ud.url)
@@ -147,18 +148,18 @@ class Cvs(FetchMethod):
if scmdata == "keep":
tar_flags = ""
else:
- tar_flags = "--exclude 'CVS'"
+ tar_flags = "--exclude='CVS'"
# tar them up to a defined filename
+ workdir = None
if 'fullpath' in ud.parm:
- os.chdir(pkgdir)
+ workdir = pkgdir
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
else:
- os.chdir(moddir)
- os.chdir('..')
+ workdir = os.path.dirname(os.path.realpath(moddir))
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.basename(moddir))
- runfetchcmd(cmd, d, cleanup = [ud.localpath])
+ runfetchcmd(cmd, d, cleanup=[ud.localpath], workdir=workdir)
def clean(self, ud, d):
""" Clean CVS Files and tarballs """
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/git.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/git.py
index 526668bc2..1bec60ab7 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/git.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/git.py
@@ -49,6 +49,10 @@ Supported SRC_URI options are:
referring to commit which is valid in tag instead of branch.
The default is "0", set nobranch=1 if needed.
+- usehead
+ For local git:// urls to use the current branch HEAD as the revsion for use with
+ AUTOREV. Implies nobranch.
+
"""
#Copyright (C) 2005 Richard Purdie
@@ -71,11 +75,53 @@ import os
import re
import bb
import errno
+import bb.progress
from bb import data
from bb.fetch2 import FetchMethod
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
+
+class GitProgressHandler(bb.progress.LineFilterProgressHandler):
+ """Extract progress information from git output"""
+ def __init__(self, d):
+ self._buffer = ''
+ self._count = 0
+ super(GitProgressHandler, self).__init__(d)
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(-1)
+
+ def write(self, string):
+ self._buffer += string
+ stages = ['Counting objects', 'Compressing objects', 'Receiving objects', 'Resolving deltas']
+ stage_weights = [0.2, 0.05, 0.5, 0.25]
+ stagenum = 0
+ for i, stage in reversed(list(enumerate(stages))):
+ if stage in self._buffer:
+ stagenum = i
+ self._buffer = ''
+ break
+ self._status = stages[stagenum]
+ percs = re.findall(r'(\d+)%', string)
+ if percs:
+ progress = int(round((int(percs[-1]) * stage_weights[stagenum]) + (sum(stage_weights[:stagenum]) * 100)))
+ rates = re.findall(r'([\d.]+ [a-zA-Z]*/s+)', string)
+ if rates:
+ rate = rates[-1]
+ else:
+ rate = None
+ self.update(progress, rate)
+ else:
+ if stagenum == 0:
+ percs = re.findall(r': (\d+)', string)
+ if percs:
+ count = int(percs[-1])
+ if count > self._count:
+ self._count = count
+ self._fire_progress(-count)
+ super(GitProgressHandler, self).write(string)
+
+
class Git(FetchMethod):
"""Class to fetch a module or modules from git repositories"""
def init(self, d):
@@ -111,6 +157,13 @@ class Git(FetchMethod):
ud.nobranch = ud.parm.get("nobranch","0") == "1"
+ # usehead implies nobranch
+ ud.usehead = ud.parm.get("usehead","0") == "1"
+ if ud.usehead:
+ if ud.proto != "file":
+ raise bb.fetch2.ParameterError("The usehead option is only for use with local ('protocol=file') git repositories", ud.url)
+ ud.nobranch = 1
+
# bareclone implies nocheckout
ud.bareclone = ud.parm.get("bareclone","0") == "1"
if ud.bareclone:
@@ -126,6 +179,9 @@ class Git(FetchMethod):
ud.branches[name] = branch
ud.unresolvedrev[name] = branch
+ if ud.usehead:
+ ud.unresolvedrev['default'] = 'HEAD'
+
ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git -c core.fsyncobjectfiles=0"
ud.write_tarballs = ((data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0") or ud.rebaseable
@@ -163,9 +219,8 @@ class Git(FetchMethod):
def need_update(self, ud, d):
if not os.path.exists(ud.clonedir):
return True
- os.chdir(ud.clonedir)
for name in ud.names:
- if not self._contains_ref(ud, d, name):
+ if not self._contains_ref(ud, d, name, ud.clonedir):
return True
if ud.write_tarballs and not os.path.exists(ud.fullmirror):
return True
@@ -186,8 +241,7 @@ class Git(FetchMethod):
# If the checkout doesn't exist and the mirror tarball does, extract it
if not os.path.exists(ud.clonedir) and os.path.exists(ud.fullmirror):
bb.utils.mkdirhier(ud.clonedir)
- os.chdir(ud.clonedir)
- runfetchcmd("tar -xzf %s" % (ud.fullmirror), d)
+ runfetchcmd("tar -xzf %s" % (ud.fullmirror), d, workdir=ud.clonedir)
repourl = self._get_repo_url(ud)
@@ -196,38 +250,38 @@ class Git(FetchMethod):
# We do this since git will use a "-l" option automatically for local urls where possible
if repourl.startswith("file://"):
repourl = repourl[7:]
- clone_cmd = "%s clone --bare --mirror %s %s" % (ud.basecmd, repourl, ud.clonedir)
+ clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, repourl, ud.clonedir)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, clone_cmd)
- runfetchcmd(clone_cmd, d)
+ progresshandler = GitProgressHandler(d)
+ runfetchcmd(clone_cmd, d, log=progresshandler)
- os.chdir(ud.clonedir)
# Update the checkout if needed
needupdate = False
for name in ud.names:
- if not self._contains_ref(ud, d, name):
+ if not self._contains_ref(ud, d, name, ud.clonedir):
needupdate = True
if needupdate:
try:
- runfetchcmd("%s remote rm origin" % ud.basecmd, d)
+ runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
except bb.fetch2.FetchError:
logger.debug(1, "No Origin")
- runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d)
- fetch_cmd = "%s fetch -f --prune %s refs/*:refs/*" % (ud.basecmd, repourl)
+ runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
+ fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
- runfetchcmd(fetch_cmd, d)
- runfetchcmd("%s prune-packed" % ud.basecmd, d)
- runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
+ progresshandler = GitProgressHandler(d)
+ runfetchcmd(fetch_cmd, d, log=progresshandler, workdir=ud.clonedir)
+ runfetchcmd("%s prune-packed" % ud.basecmd, d, workdir=ud.clonedir)
+ runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d, workdir=ud.clonedir)
try:
os.unlink(ud.fullmirror)
except OSError as exc:
if exc.errno != errno.ENOENT:
raise
- os.chdir(ud.clonedir)
for name in ud.names:
- if not self._contains_ref(ud, d, name):
+ if not self._contains_ref(ud, d, name, ud.clonedir):
raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name]))
def build_mirror_data(self, ud, d):
@@ -237,10 +291,9 @@ class Git(FetchMethod):
if os.path.islink(ud.fullmirror):
os.unlink(ud.fullmirror)
- os.chdir(ud.clonedir)
logger.info("Creating tarball of git repository")
- runfetchcmd("tar -czf %s %s" % (ud.fullmirror, os.path.join(".") ), d)
- runfetchcmd("touch %s.done" % (ud.fullmirror), d)
+ runfetchcmd("tar -czf %s %s" % (ud.fullmirror, os.path.join(".") ), d, workdir=ud.clonedir)
+ runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=ud.clonedir)
def unpack(self, ud, destdir, d):
""" unpack the downloaded src to destdir"""
@@ -263,21 +316,21 @@ class Git(FetchMethod):
cloneflags += " --mirror"
runfetchcmd("%s clone %s %s/ %s" % (ud.basecmd, cloneflags, ud.clonedir, destdir), d)
- os.chdir(destdir)
repourl = self._get_repo_url(ud)
- runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d)
+ runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
if not ud.nocheckout:
if subdir != "":
- runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.revisions[ud.names[0]], readpathspec), d)
- runfetchcmd("%s checkout-index -q -f -a" % ud.basecmd, d)
+ runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.revisions[ud.names[0]], readpathspec), d,
+ workdir=destdir)
+ runfetchcmd("%s checkout-index -q -f -a" % ud.basecmd, d, workdir=destdir)
elif not ud.nobranch:
branchname = ud.branches[ud.names[0]]
runfetchcmd("%s checkout -B %s %s" % (ud.basecmd, branchname, \
- ud.revisions[ud.names[0]]), d)
+ ud.revisions[ud.names[0]]), d, workdir=destdir)
runfetchcmd("%s branch --set-upstream %s origin/%s" % (ud.basecmd, branchname, \
- branchname), d)
+ branchname), d, workdir=destdir)
else:
- runfetchcmd("%s checkout %s" % (ud.basecmd, ud.revisions[ud.names[0]]), d)
+ runfetchcmd("%s checkout %s" % (ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=destdir)
return True
@@ -291,7 +344,7 @@ class Git(FetchMethod):
def supports_srcrev(self):
return True
- def _contains_ref(self, ud, d, name):
+ def _contains_ref(self, ud, d, name, wd):
cmd = ""
if ud.nobranch:
cmd = "%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (
@@ -300,7 +353,7 @@ class Git(FetchMethod):
cmd = "%s branch --contains %s --list %s 2> /dev/null | wc -l" % (
ud.basecmd, ud.revisions[name], ud.branches[name])
try:
- output = runfetchcmd(cmd, d, quiet=True)
+ output = runfetchcmd(cmd, d, quiet=True, workdir=wd)
except bb.fetch2.FetchError:
return False
if len(output.split()) > 1:
@@ -343,16 +396,17 @@ class Git(FetchMethod):
"""
output = self._lsremote(ud, d, "")
# Tags of the form ^{} may not work, need to fallback to other form
- if ud.unresolvedrev[name][:5] == "refs/":
+ if ud.unresolvedrev[name][:5] == "refs/" or ud.usehead:
head = ud.unresolvedrev[name]
tag = ud.unresolvedrev[name]
else:
head = "refs/heads/%s" % ud.unresolvedrev[name]
tag = "refs/tags/%s" % ud.unresolvedrev[name]
for s in [head, tag + "^{}", tag]:
- for l in output.split('\n'):
- if s in l:
- return l.split()[0]
+ for l in output.strip().split('\n'):
+ sha1, ref = l.split()
+ if s == ref:
+ return sha1
raise bb.fetch2.FetchError("Unable to resolve '%s' in upstream git repository in git ls-remote output for %s" % \
(ud.unresolvedrev[name], ud.host+ud.path))
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitannex.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitannex.py
index 0f3789745..4937a1089 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitannex.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitannex.py
@@ -34,43 +34,42 @@ class GitANNEX(Git):
"""
return ud.type in ['gitannex']
- def uses_annex(self, ud, d):
+ def uses_annex(self, ud, d, wd):
for name in ud.names:
try:
- runfetchcmd("%s rev-list git-annex" % (ud.basecmd), d, quiet=True)
+ runfetchcmd("%s rev-list git-annex" % (ud.basecmd), d, quiet=True, workdir=wd)
return True
except bb.fetch.FetchError:
pass
return False
- def update_annex(self, ud, d):
+ def update_annex(self, ud, d, wd):
try:
- runfetchcmd("%s annex get --all" % (ud.basecmd), d, quiet=True)
+ runfetchcmd("%s annex get --all" % (ud.basecmd), d, quiet=True, workdir=wd)
except bb.fetch.FetchError:
return False
- runfetchcmd("chmod u+w -R %s/annex" % (ud.clonedir), d, quiet=True)
+ runfetchcmd("chmod u+w -R %s/annex" % (ud.clonedir), d, quiet=True, workdir=wd)
return True
def download(self, ud, d):
Git.download(self, ud, d)
- os.chdir(ud.clonedir)
- annex = self.uses_annex(ud, d)
+ annex = self.uses_annex(ud, d, ud.clonedir)
if annex:
- self.update_annex(ud, d)
+ self.update_annex(ud, d, ud.clonedir)
def unpack(self, ud, destdir, d):
Git.unpack(self, ud, destdir, d)
- os.chdir(ud.destdir)
try:
- runfetchcmd("%s annex sync" % (ud.basecmd), d)
+ runfetchcmd("%s annex init" % (ud.basecmd), d, workdir=ud.destdir)
except bb.fetch.FetchError:
pass
- annex = self.uses_annex(ud, d)
+ annex = self.uses_annex(ud, d, ud.destdir)
if annex:
- runfetchcmd("%s annex get" % (ud.basecmd), d)
- runfetchcmd("chmod u+w -R %s/.git/annex" % (ud.destdir), d, quiet=True)
+ runfetchcmd("%s annex get" % (ud.basecmd), d, workdir=ud.destdir)
+ runfetchcmd("chmod u+w -R %s/.git/annex" % (ud.destdir), d, quiet=True, workdir=ud.destdir)
+
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitsm.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitsm.py
index 752f1d3c1..661376204 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -43,10 +43,10 @@ class GitSM(Git):
"""
return ud.type in ['gitsm']
- def uses_submodules(self, ud, d):
+ def uses_submodules(self, ud, d, wd):
for name in ud.names:
try:
- runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True)
+ runfetchcmd("%s show %s:.gitmodules" % (ud.basecmd, ud.revisions[name]), d, quiet=True, workdir=wd)
return True
except bb.fetch.FetchError:
pass
@@ -107,28 +107,25 @@ class GitSM(Git):
os.mkdir(tmpclonedir)
os.rename(ud.clonedir, gitdir)
runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*true/bare = false/'", d)
- os.chdir(tmpclonedir)
- runfetchcmd(ud.basecmd + " reset --hard", d)
- runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d)
- runfetchcmd(ud.basecmd + " submodule update --init --recursive", d)
+ runfetchcmd(ud.basecmd + " reset --hard", d, workdir=tmpclonedir)
+ runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d, workdir=tmpclonedir)
+ runfetchcmd(ud.basecmd + " submodule update --init --recursive", d, workdir=tmpclonedir)
self._set_relative_paths(tmpclonedir)
- runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*false/bare = true/'", d)
+ runfetchcmd("sed " + gitdir + "/config -i -e 's/bare.*=.*false/bare = true/'", d, workdir=tmpclonedir)
os.rename(gitdir, ud.clonedir,)
bb.utils.remove(tmpclonedir, True)
def download(self, ud, d):
Git.download(self, ud, d)
- os.chdir(ud.clonedir)
- submodules = self.uses_submodules(ud, d)
+ submodules = self.uses_submodules(ud, d, ud.clonedir)
if submodules:
self.update_submodules(ud, d)
def unpack(self, ud, destdir, d):
Git.unpack(self, ud, destdir, d)
- os.chdir(ud.destdir)
- submodules = self.uses_submodules(ud, d)
+ submodules = self.uses_submodules(ud, d, ud.destdir)
if submodules:
- runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d)
- runfetchcmd(ud.basecmd + " submodule update --init --recursive", d)
+ runfetchcmd(ud.basecmd + " checkout " + ud.revisions[ud.names[0]], d, workdir=ud.destdir)
+ runfetchcmd(ud.basecmd + " submodule update --init --recursive", d, workdir=ud.destdir)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/hg.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/hg.py
index 3b743ff51..20df8016d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/hg.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/hg.py
@@ -169,25 +169,22 @@ class Hg(FetchMethod):
# If the checkout doesn't exist and the mirror tarball does, extract it
if not os.path.exists(ud.pkgdir) and os.path.exists(ud.fullmirror):
bb.utils.mkdirhier(ud.pkgdir)
- os.chdir(ud.pkgdir)
- runfetchcmd("tar -xzf %s" % (ud.fullmirror), d)
+ runfetchcmd("tar -xzf %s" % (ud.fullmirror), d, workdir=ud.pkgdir)
if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK):
# Found the source, check whether need pull
updatecmd = self._buildhgcommand(ud, d, "update")
- os.chdir(ud.moddir)
logger.debug(1, "Running %s", updatecmd)
try:
- runfetchcmd(updatecmd, d)
+ runfetchcmd(updatecmd, d, workdir=ud.moddir)
except bb.fetch2.FetchError:
# Runnning pull in the repo
pullcmd = self._buildhgcommand(ud, d, "pull")
logger.info("Pulling " + ud.url)
# update sources there
- os.chdir(ud.moddir)
logger.debug(1, "Running %s", pullcmd)
bb.fetch2.check_network_access(d, pullcmd, ud.url)
- runfetchcmd(pullcmd, d)
+ runfetchcmd(pullcmd, d, workdir=ud.moddir)
try:
os.unlink(ud.fullmirror)
except OSError as exc:
@@ -200,17 +197,15 @@ class Hg(FetchMethod):
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
- os.chdir(ud.pkgdir)
logger.debug(1, "Running %s", fetchcmd)
bb.fetch2.check_network_access(d, fetchcmd, ud.url)
- runfetchcmd(fetchcmd, d)
+ runfetchcmd(fetchcmd, d, workdir=ud.pkgdir)
# Even when we clone (fetch), we still need to update as hg's clone
# won't checkout the specified revision if its on a branch
updatecmd = self._buildhgcommand(ud, d, "update")
- os.chdir(ud.moddir)
logger.debug(1, "Running %s", updatecmd)
- runfetchcmd(updatecmd, d)
+ runfetchcmd(updatecmd, d, workdir=ud.moddir)
def clean(self, ud, d):
""" Clean the hg dir """
@@ -246,10 +241,9 @@ class Hg(FetchMethod):
if os.path.islink(ud.fullmirror):
os.unlink(ud.fullmirror)
- os.chdir(ud.pkgdir)
logger.info("Creating tarball of hg repository")
- runfetchcmd("tar -czf %s %s" % (ud.fullmirror, ud.module), d)
- runfetchcmd("touch %s.done" % (ud.fullmirror), d)
+ runfetchcmd("tar -czf %s %s" % (ud.fullmirror, ud.module), d, workdir=ud.pkgdir)
+ runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=ud.pkgdir)
def localpath(self, ud, d):
return ud.pkgdir
@@ -269,10 +263,8 @@ class Hg(FetchMethod):
logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'")
runfetchcmd("%s init %s" % (ud.basecmd, codir), d)
logger.debug(2, "Unpack: updating source in '" + codir + "'")
- os.chdir(codir)
- runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d)
- runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d)
+ runfetchcmd("%s pull %s" % (ud.basecmd, ud.moddir), d, workdir=codir)
+ runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir)
else:
logger.debug(2, "Unpack: extracting source to '" + codir + "'")
- os.chdir(ud.moddir)
- runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d)
+ runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d, workdir=ud.moddir)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/local.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/local.py
index 303a52b63..51ca78d12 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/local.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/local.py
@@ -26,7 +26,7 @@ BitBake build tools.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
-import urllib
+import urllib.request, urllib.parse, urllib.error
import bb
import bb.utils
from bb import data
@@ -42,7 +42,7 @@ class Local(FetchMethod):
def urldata_init(self, ud, d):
# We don't set localfile as for this fetcher the file is already local!
- ud.decodedurl = urllib.unquote(ud.url.split("://")[1].split(";")[0])
+ ud.decodedurl = urllib.parse.unquote(ud.url.split("://")[1].split(";")[0])
ud.basename = os.path.basename(ud.decodedurl)
ud.basepath = ud.decodedurl
ud.needdonestamp = False
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/npm.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/npm.py
index e8d9b1109..699ae72e0 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/npm.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/npm.py
@@ -13,14 +13,14 @@ Usage in the recipe:
- name
- version
- npm://registry.npmjs.org/${PN}/-/${PN}-${PV}.tgz would become npm://registry.npmjs.org;name=${PN};ver=${PV}
+ npm://registry.npmjs.org/${PN}/-/${PN}-${PV}.tgz would become npm://registry.npmjs.org;name=${PN};version=${PV}
The fetcher all triggers off the existence of ud.localpath. If that exists and has the ".done" stamp, its assumed the fetch is good/done
"""
import os
import sys
-import urllib
+import urllib.request, urllib.parse, urllib.error
import json
import subprocess
import signal
@@ -88,7 +88,7 @@ class Npm(FetchMethod):
ud.localpath = d.expand("${DL_DIR}/npm/%s" % ud.bbnpmmanifest)
self.basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -O -t 2 -T 30 -nv --passive-ftp --no-check-certificate "
- self.basecmd += " --directory-prefix=%s " % prefixdir
+ ud.prefixdir = prefixdir
ud.write_tarballs = ((data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0")
ud.mirrortarball = 'npm_%s-%s.tar.xz' % (ud.pkgname, ud.version)
@@ -102,7 +102,8 @@ class Npm(FetchMethod):
def _runwget(self, ud, d, command, quiet):
logger.debug(2, "Fetching %s using command '%s'" % (ud.url, command))
bb.fetch2.check_network_access(d, command)
- runfetchcmd(command, d, quiet)
+ dldir = d.getVar("DL_DIR", True)
+ runfetchcmd(command, d, quiet, workdir=dldir)
def _unpackdep(self, ud, pkg, data, destdir, dldir, d):
file = data[pkg]['tgz']
@@ -113,16 +114,13 @@ class Npm(FetchMethod):
bb.fatal("NPM package %s downloaded not a tarball!" % file)
# Change to subdir before executing command
- save_cwd = os.getcwd()
if not os.path.exists(destdir):
os.makedirs(destdir)
- os.chdir(destdir)
path = d.getVar('PATH', True)
if path:
cmd = "PATH=\"%s\" %s" % (path, cmd)
- bb.note("Unpacking %s to %s/" % (file, os.getcwd()))
- ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
- os.chdir(save_cwd)
+ bb.note("Unpacking %s to %s/" % (file, destdir))
+ ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True, cwd=destdir)
if ret != 0:
raise UnpackError("Unpack command %s failed with return value %s" % (cmd, ret), ud.url)
@@ -140,7 +138,12 @@ class Npm(FetchMethod):
workobj = json.load(datafile)
dldir = "%s/%s" % (os.path.dirname(ud.localpath), ud.pkgname)
- self._unpackdep(ud, ud.pkgname, workobj, "%s/npmpkg" % destdir, dldir, d)
+ if 'subdir' in ud.parm:
+ unpackdir = '%s/%s' % (destdir, ud.parm.get('subdir'))
+ else:
+ unpackdir = '%s/npmpkg' % destdir
+
+ self._unpackdep(ud, ud.pkgname, workobj, unpackdir, dldir, d)
def _parse_view(self, output):
'''
@@ -162,7 +165,9 @@ class Npm(FetchMethod):
pdata = json.loads('\n'.join(datalines))
return pdata
- def _getdependencies(self, pkg, data, version, d, ud, optional=False):
+ def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None):
+ if fetchedlist is None:
+ fetchedlist = []
pkgfullname = pkg
if version != '*' and not '/' in version:
pkgfullname += "@'%s'" % version
@@ -184,7 +189,9 @@ class Npm(FetchMethod):
outputurl = pdata['dist']['tarball']
data[pkg] = {}
data[pkg]['tgz'] = os.path.basename(outputurl)
- self._runwget(ud, d, "%s %s" % (self.basecmd, outputurl), False)
+ if not outputurl in fetchedlist:
+ self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
+ fetchedlist.append(outputurl)
dependencies = pdata.get('dependencies', {})
optionalDependencies = pdata.get('optionalDependencies', {})
@@ -196,13 +203,20 @@ class Npm(FetchMethod):
optdepsfound[dep] = dependencies[dep]
else:
depsfound[dep] = dependencies[dep]
- for dep, version in optdepsfound.iteritems():
- self._getdependencies(dep, data[pkg]['deps'], version, d, ud, optional=True)
- for dep, version in depsfound.iteritems():
- self._getdependencies(dep, data[pkg]['deps'], version, d, ud)
+ for dep, version in optdepsfound.items():
+ self._getdependencies(dep, data[pkg]['deps'], version, d, ud, optional=True, fetchedlist=fetchedlist)
+ for dep, version in depsfound.items():
+ self._getdependencies(dep, data[pkg]['deps'], version, d, ud, fetchedlist=fetchedlist)
- def _getshrinkeddependencies(self, pkg, data, version, d, ud, lockdown, manifest):
+ def _getshrinkeddependencies(self, pkg, data, version, d, ud, lockdown, manifest, toplevel=True):
logger.debug(2, "NPM shrinkwrap file is %s" % data)
+ if toplevel:
+ name = data.get('name', None)
+ if name and name != pkg:
+ for obj in data.get('dependencies', []):
+ if obj == pkg:
+ self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest, False)
+ return
outputurl = "invalid"
if ('resolved' not in data) or (not data['resolved'].startswith('http')):
# will be the case for ${PN}
@@ -211,7 +225,7 @@ class Npm(FetchMethod):
outputurl = runfetchcmd(fetchcmd, d, True)
else:
outputurl = data['resolved']
- self._runwget(ud, d, "%s %s" % (self.basecmd, outputurl), False)
+ self._runwget(ud, d, "%s --directory-prefix=%s %s" % (self.basecmd, ud.prefixdir, outputurl), False)
manifest[pkg] = {}
manifest[pkg]['tgz'] = os.path.basename(outputurl).rstrip()
manifest[pkg]['deps'] = {}
@@ -228,7 +242,7 @@ class Npm(FetchMethod):
if 'dependencies' in data:
for obj in data['dependencies']:
logger.debug(2, "Found dep is %s" % str(obj))
- self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest[pkg]['deps'])
+ self._getshrinkeddependencies(obj, data['dependencies'][obj], data['dependencies'][obj]['version'], d, ud, lockdown, manifest[pkg]['deps'], False)
def download(self, ud, d):
"""Fetch url"""
@@ -239,10 +253,7 @@ class Npm(FetchMethod):
if not os.listdir(ud.pkgdatadir) and os.path.exists(ud.fullmirror):
dest = d.getVar("DL_DIR", True)
bb.utils.mkdirhier(dest)
- save_cwd = os.getcwd()
- os.chdir(dest)
- runfetchcmd("tar -xJf %s" % (ud.fullmirror), d)
- os.chdir(save_cwd)
+ runfetchcmd("tar -xJf %s" % (ud.fullmirror), d, workdir=dest)
return
shwrf = d.getVar('NPM_SHRINKWRAP', True)
@@ -251,14 +262,14 @@ class Npm(FetchMethod):
with open(shwrf) as datafile:
shrinkobj = json.load(datafile)
except:
- logger.warn('Missing shrinkwrap file in NPM_SHRINKWRAP for %s, this will lead to unreliable builds!' % ud.pkgname)
+ logger.warning('Missing shrinkwrap file in NPM_SHRINKWRAP for %s, this will lead to unreliable builds!' % ud.pkgname)
lckdf = d.getVar('NPM_LOCKDOWN', True)
logger.debug(2, "NPM lockdown file is %s" % lckdf)
try:
with open(lckdf) as datafile:
lockdown = json.load(datafile)
except:
- logger.warn('Missing lockdown file in NPM_LOCKDOWN for %s, this will lead to unreproducible builds!' % ud.pkgname)
+ logger.warning('Missing lockdown file in NPM_LOCKDOWN for %s, this will lead to unreproducible builds!' % ud.pkgname)
if ('name' not in shrinkobj):
self._getdependencies(ud.pkgname, jsondepobj, ud.version, d, ud)
@@ -275,10 +286,8 @@ class Npm(FetchMethod):
if os.path.islink(ud.fullmirror):
os.unlink(ud.fullmirror)
- save_cwd = os.getcwd()
- os.chdir(d.getVar("DL_DIR", True))
+ dldir = d.getVar("DL_DIR", True)
logger.info("Creating tarball of npm data")
- runfetchcmd("tar -cJf %s npm/%s npm/%s" % (ud.fullmirror, ud.bbnpmmanifest, ud.pkgname), d)
- runfetchcmd("touch %s.done" % (ud.fullmirror), d)
- os.chdir(save_cwd)
-
+ runfetchcmd("tar -cJf %s npm/%s npm/%s" % (ud.fullmirror, ud.bbnpmmanifest, ud.pkgname), d,
+ workdir=dldir)
+ runfetchcmd("touch %s.done" % (ud.fullmirror), d, workdir=dldir)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/osc.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/osc.py
index d051dfdaf..295abf953 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/osc.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/osc.py
@@ -88,23 +88,21 @@ class Osc(FetchMethod):
oscupdatecmd = self._buildosccommand(ud, d, "update")
logger.info("Update "+ ud.url)
# update sources there
- os.chdir(ud.moddir)
logger.debug(1, "Running %s", oscupdatecmd)
bb.fetch2.check_network_access(d, oscupdatecmd, ud.url)
- runfetchcmd(oscupdatecmd, d)
+ runfetchcmd(oscupdatecmd, d, workdir=ud.moddir)
else:
oscfetchcmd = self._buildosccommand(ud, d, "fetch")
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
- os.chdir(ud.pkgdir)
logger.debug(1, "Running %s", oscfetchcmd)
bb.fetch2.check_network_access(d, oscfetchcmd, ud.url)
- runfetchcmd(oscfetchcmd, d)
+ runfetchcmd(oscfetchcmd, d, workdir=ud.pkgdir)
- os.chdir(os.path.join(ud.pkgdir + ud.path))
# tar them up to a defined filename
- runfetchcmd("tar -czf %s %s" % (ud.localpath, ud.module), d, cleanup = [ud.localpath])
+ runfetchcmd("tar -czf %s %s" % (ud.localpath, ud.module), d,
+ cleanup=[ud.localpath], workdir=os.path.join(ud.pkgdir + ud.path))
def supports_srcrev(self):
return False
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/perforce.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/perforce.py
index 3a10c7ca3..50cb47909 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/perforce.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/perforce.py
@@ -1,14 +1,12 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
-BitBake 'Fetch' implementations
-
-Classes for obtaining upstream sources for the
-BitBake build tools.
+BitBake 'Fetch' implementation for perforce
"""
# Copyright (C) 2003, 2004 Chris Larson
+# Copyright (C) 2016 Kodak Alaris, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -25,9 +23,7 @@ BitBake build tools.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
-from future_builtins import zip
import os
-import subprocess
import logging
import bb
from bb import data
@@ -37,151 +33,178 @@ from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
class Perforce(FetchMethod):
+ """ Class to fetch from perforce repositories """
def supports(self, ud, d):
+ """ Check to see if a given url can be fetched with perforce. """
return ud.type in ['p4']
- def doparse(url, d):
- parm = {}
- path = url.split("://")[1]
- delim = path.find("@");
+ def urldata_init(self, ud, d):
+ """
+ Initialize perforce specific variables within url data. If P4CONFIG is
+ provided by the env, use it. If P4PORT is specified by the recipe, use
+ its values, which may override the settings in P4CONFIG.
+ """
+ ud.basecmd = d.getVar('FETCHCMD_p4', True)
+ if not ud.basecmd:
+ ud.basecmd = "/usr/bin/env p4"
+
+ ud.dldir = d.getVar('P4DIR', True)
+ if not ud.dldir:
+ ud.dldir = '%s/%s' % (d.getVar('DL_DIR', True), 'p4')
+
+ path = ud.url.split('://')[1]
+ path = path.split(';')[0]
+ delim = path.find('@');
if delim != -1:
- (user, pswd, host, port) = path.split('@')[0].split(":")
- path = path.split('@')[1]
+ (ud.user, ud.pswd) = path.split('@')[0].split(':')
+ ud.path = path.split('@')[1]
else:
- (host, port) = d.getVar('P4PORT', False).split(':')
- user = ""
- pswd = ""
-
- if path.find(";") != -1:
- keys=[]
- values=[]
- plist = path.split(';')
- for item in plist:
- if item.count('='):
- (key, value) = item.split('=')
- keys.append(key)
- values.append(value)
-
- parm = dict(zip(keys, values))
- path = "//" + path.split(';')[0]
- host += ":%s" % (port)
- parm["cset"] = Perforce.getcset(d, path, host, user, pswd, parm)
-
- return host, path, user, pswd, parm
- doparse = staticmethod(doparse)
-
- def getcset(d, depot, host, user, pswd, parm):
- p4opt = ""
- if "cset" in parm:
- return parm["cset"];
- if user:
- p4opt += " -u %s" % (user)
- if pswd:
- p4opt += " -P %s" % (pswd)
- if host:
- p4opt += " -p %s" % (host)
-
- p4date = d.getVar("P4DATE", True)
- if "revision" in parm:
- depot += "#%s" % (parm["revision"])
- elif "label" in parm:
- depot += "@%s" % (parm["label"])
- elif p4date:
- depot += "@%s" % (p4date)
-
- p4cmd = d.getVar('FETCHCMD_p4', True) or "p4"
- logger.debug(1, "Running %s%s changes -m 1 %s", p4cmd, p4opt, depot)
- p4file, errors = bb.process.run("%s%s changes -m 1 %s" % (p4cmd, p4opt, depot))
- cset = p4file.strip()
- logger.debug(1, "READ %s", cset)
- if not cset:
- return -1
-
- return cset.split(' ')[1]
- getcset = staticmethod(getcset)
+ ud.path = path
- def urldata_init(self, ud, d):
- (host, path, user, pswd, parm) = Perforce.doparse(ud.url, d)
+ ud.usingp4config = False
+ p4port = d.getVar('P4PORT', True)
- base_path = path.replace('/...', '')
- base_path = self._strip_leading_slashes(base_path)
-
- if "label" in parm:
- version = parm["label"]
+ if p4port:
+ logger.debug(1, 'Using recipe provided P4PORT: %s' % p4port)
+ ud.host = p4port
+ else:
+ logger.debug(1, 'Trying to use P4CONFIG to automatically set P4PORT...')
+ ud.usingp4config = True
+ p4cmd = '%s info | grep "Server address"' % ud.basecmd
+ bb.fetch2.check_network_access(d, p4cmd)
+ ud.host = runfetchcmd(p4cmd, d, True)
+ ud.host = ud.host.split(': ')[1].strip()
+ logger.debug(1, 'Determined P4PORT to be: %s' % ud.host)
+ if not ud.host:
+ raise FetchError('Could not determine P4PORT from P4CONFIG')
+
+ if ud.path.find('/...') >= 0:
+ ud.pathisdir = True
else:
- version = Perforce.getcset(d, path, host, user, pswd, parm)
+ ud.pathisdir = False
- ud.localfile = data.expand('%s+%s+%s.tar.gz' % (host, base_path.replace('/', '.'), version), d)
+ cleanedpath = ud.path.replace('/...', '').replace('/', '.')
+ cleanedhost = ud.host.replace(':', '.')
+ ud.pkgdir = os.path.join(ud.dldir, cleanedhost, cleanedpath)
- def download(self, ud, d):
+ ud.setup_revisons(d)
+
+ ud.localfile = data.expand('%s_%s_%s.tar.gz' % (cleanedhost, cleanedpath, ud.revision), d)
+
+ def _buildp4command(self, ud, d, command, depot_filename=None):
"""
- Fetch urls
+ Build a p4 commandline. Valid commands are "changes", "print", and
+ "files". depot_filename is the full path to the file in the depot
+ including the trailing '#rev' value.
"""
+ p4opt = ""
+
+ if ud.user:
+ p4opt += ' -u "%s"' % (ud.user)
- (host, depot, user, pswd, parm) = Perforce.doparse(ud.url, d)
+ if ud.pswd:
+ p4opt += ' -P "%s"' % (ud.pswd)
- if depot.find('/...') != -1:
- path = depot[:depot.find('/...')]
+ if ud.host and not ud.usingp4config:
+ p4opt += ' -p %s' % (ud.host)
+
+ if hasattr(ud, 'revision') and ud.revision:
+ pathnrev = '%s@%s' % (ud.path, ud.revision)
+ else:
+ pathnrev = '%s' % (ud.path)
+
+ if depot_filename:
+ if ud.pathisdir: # Remove leading path to obtain filename
+ filename = depot_filename[len(ud.path)-1:]
+ else:
+ filename = depot_filename[depot_filename.rfind('/'):]
+ filename = filename[:filename.find('#')] # Remove trailing '#rev'
+
+ if command == 'changes':
+ p4cmd = '%s%s changes -m 1 //%s' % (ud.basecmd, p4opt, pathnrev)
+ elif command == 'print':
+ if depot_filename != None:
+ p4cmd = '%s%s print -o "p4/%s" "%s"' % (ud.basecmd, p4opt, filename, depot_filename)
+ else:
+ raise FetchError('No depot file name provided to p4 %s' % command, ud.url)
+ elif command == 'files':
+ p4cmd = '%s%s files //%s' % (ud.basecmd, p4opt, pathnrev)
else:
- path = depot[:depot.rfind('/')]
+ raise FetchError('Invalid p4 command %s' % command, ud.url)
- module = parm.get('module', os.path.basename(path))
+ return p4cmd
- # Get the p4 command
- p4opt = ""
- if user:
- p4opt += " -u %s" % (user)
+ def _p4listfiles(self, ud, d):
+ """
+ Return a list of the file names which are present in the depot using the
+ 'p4 files' command, including trailing '#rev' file revision indicator
+ """
+ p4cmd = self._buildp4command(ud, d, 'files')
+ bb.fetch2.check_network_access(d, p4cmd)
+ p4fileslist = runfetchcmd(p4cmd, d, True)
+ p4fileslist = [f.rstrip() for f in p4fileslist.splitlines()]
+
+ if not p4fileslist:
+ raise FetchError('Unable to fetch listing of p4 files from %s@%s' % (ud.host, ud.path))
+
+ count = 0
+ filelist = []
- if pswd:
- p4opt += " -P %s" % (pswd)
+ for filename in p4fileslist:
+ item = filename.split(' - ')
+ lastaction = item[1].split()
+ logger.debug(1, 'File: %s Last Action: %s' % (item[0], lastaction[0]))
+ if lastaction[0] == 'delete':
+ continue
+ filelist.append(item[0])
- if host:
- p4opt += " -p %s" % (host)
+ return filelist
- p4cmd = d.getVar('FETCHCMD_p4', True) or "p4"
+ def download(self, ud, d):
+ """ Get the list of files, fetch each one """
+ filelist = self._p4listfiles(ud, d)
+ if not filelist:
+ raise FetchError('No files found in depot %s@%s' % (ud.host, ud.path))
- # create temp directory
- logger.debug(2, "Fetch: creating temporary directory")
- bb.utils.mkdirhier(d.expand('${WORKDIR}'))
- mktemp = d.getVar("FETCHCMD_p4mktemp", True) or d.expand("mktemp -d -q '${WORKDIR}/oep4.XXXXXX'")
- tmpfile, errors = bb.process.run(mktemp)
- tmpfile = tmpfile.strip()
- if not tmpfile:
- raise FetchError("Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.", ud.url)
+ bb.utils.remove(ud.pkgdir, True)
+ bb.utils.mkdirhier(ud.pkgdir)
- if "label" in parm:
- depot = "%s@%s" % (depot, parm["label"])
- else:
- cset = Perforce.getcset(d, depot, host, user, pswd, parm)
- depot = "%s@%s" % (depot, cset)
+ for afile in filelist:
+ p4fetchcmd = self._buildp4command(ud, d, 'print', afile)
+ bb.fetch2.check_network_access(d, p4fetchcmd)
+ runfetchcmd(p4fetchcmd, d, workdir=ud.pkgdir)
- os.chdir(tmpfile)
- logger.info("Fetch " + ud.url)
- logger.info("%s%s files %s", p4cmd, p4opt, depot)
- p4file, errors = bb.process.run("%s%s files %s" % (p4cmd, p4opt, depot))
- p4file = [f.rstrip() for f in p4file.splitlines()]
+ runfetchcmd('tar -czf %s p4' % (ud.localpath), d, cleanup=[ud.localpath], workdir=ud.pkgdir)
- if not p4file:
- raise FetchError("Fetch: unable to get the P4 files from %s" % depot, ud.url)
+ def clean(self, ud, d):
+ """ Cleanup p4 specific files and dirs"""
+ bb.utils.remove(ud.localpath)
+ bb.utils.remove(ud.pkgdir, True)
- count = 0
+ def supports_srcrev(self):
+ return True
- for file in p4file:
- list = file.split()
+ def _revision_key(self, ud, d, name):
+ """ Return a unique key for the url """
+ return 'p4:%s' % ud.pkgdir
- if list[2] == "delete":
- continue
+ def _latest_revision(self, ud, d, name):
+ """ Return the latest upstream scm revision number """
+ p4cmd = self._buildp4command(ud, d, "changes")
+ bb.fetch2.check_network_access(d, p4cmd)
+ tip = runfetchcmd(p4cmd, d, True)
+
+ if not tip:
+ raise FetchError('Could not determine the latest perforce changelist')
- dest = list[0][len(path)+1:]
- where = dest.find("#")
+ tipcset = tip.split(' ')[1]
+ logger.debug(1, 'p4 tip found to be changelist %s' % tipcset)
+ return tipcset
- subprocess.call("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module, dest[:where], list[0]), shell=True)
- count = count + 1
+ def sortable_revision(self, ud, d, name):
+ """ Return a sortable revision number """
+ return False, self._build_revision(ud, d)
- if count == 0:
- logger.error()
- raise FetchError("Fetch: No files gathered from the P4 fetch", ud.url)
+ def _build_revision(self, ud, d):
+ return ud.revision
- runfetchcmd("tar -czf %s %s" % (ud.localpath, module), d, cleanup = [ud.localpath])
- # cleanup
- bb.utils.prunedir(tmpfile)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/repo.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/repo.py
index 21678eb7d..ecc6e68e9 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/repo.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/repo.py
@@ -69,24 +69,23 @@ class Repo(FetchMethod):
else:
username = ""
- bb.utils.mkdirhier(os.path.join(codir, "repo"))
- os.chdir(os.path.join(codir, "repo"))
- if not os.path.exists(os.path.join(codir, "repo", ".repo")):
+ repodir = os.path.join(codir, "repo")
+ bb.utils.mkdirhier(repodir)
+ if not os.path.exists(os.path.join(repodir, ".repo")):
bb.fetch2.check_network_access(d, "repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), ud.url)
- runfetchcmd("repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d)
+ runfetchcmd("repo init -m %s -b %s -u %s://%s%s%s" % (ud.manifest, ud.branch, ud.proto, username, ud.host, ud.path), d, workdir=repodir)
bb.fetch2.check_network_access(d, "repo sync %s" % ud.url, ud.url)
- runfetchcmd("repo sync", d)
- os.chdir(codir)
+ runfetchcmd("repo sync", d, workdir=repodir)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":
tar_flags = ""
else:
- tar_flags = "--exclude '.repo' --exclude '.git'"
+ tar_flags = "--exclude='.repo' --exclude='.git'"
# Create a cache
- runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.join(".", "*") ), d)
+ runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, os.path.join(".", "*") ), d, workdir=codir)
def supports_srcrev(self):
return False
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/sftp.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/sftp.py
index cb2f753a8..7989fccc7 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/sftp.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/sftp.py
@@ -61,8 +61,7 @@ SRC_URI = "sftp://user@host.example.com/dir/path.file.txt"
import os
import bb
-import urllib
-import commands
+import urllib.request, urllib.parse, urllib.error
from bb import data
from bb.fetch2 import URI
from bb.fetch2 import FetchMethod
@@ -93,7 +92,7 @@ class SFTP(FetchMethod):
else:
ud.basename = os.path.basename(ud.path)
- ud.localfile = data.expand(urllib.unquote(ud.basename), d)
+ ud.localfile = data.expand(urllib.parse.unquote(ud.basename), d)
def download(self, ud, d):
"""Fetch urls"""
@@ -121,8 +120,7 @@ class SFTP(FetchMethod):
remote = '%s%s:%s' % (user, urlo.hostname, path)
- cmd = '%s %s %s %s' % (basecmd, port, commands.mkarg(remote),
- commands.mkarg(lpath))
+ cmd = '%s %s %s %s' % (basecmd, port, remote, lpath)
bb.fetch2.check_network_access(d, cmd, ud.url)
runfetchcmd(cmd, d)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/ssh.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/ssh.py
index 635578a71..56f9b7eb3 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/ssh.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/ssh.py
@@ -114,12 +114,10 @@ class SSH(FetchMethod):
fr = host
fr += ':%s' % path
-
- import commands
cmd = 'scp -B -r %s %s %s/' % (
portarg,
- commands.mkarg(fr),
- commands.mkarg(dldir)
+ fr,
+ dldir
)
bb.fetch2.check_network_access(d, cmd, urldata.url)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/svn.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/svn.py
index 8a291935c..6ca79d35d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/svn.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/svn.py
@@ -126,35 +126,32 @@ class Svn(FetchMethod):
if os.access(os.path.join(ud.moddir, '.svn'), os.R_OK):
svnupdatecmd = self._buildsvncommand(ud, d, "update")
logger.info("Update " + ud.url)
- # update sources there
- os.chdir(ud.moddir)
# We need to attempt to run svn upgrade first in case its an older working format
try:
- runfetchcmd(ud.basecmd + " upgrade", d)
+ runfetchcmd(ud.basecmd + " upgrade", d, workdir=ud.moddir)
except FetchError:
pass
logger.debug(1, "Running %s", svnupdatecmd)
bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)
- runfetchcmd(svnupdatecmd, d)
+ runfetchcmd(svnupdatecmd, d, workdir=ud.moddir)
else:
svnfetchcmd = self._buildsvncommand(ud, d, "fetch")
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
- os.chdir(ud.pkgdir)
logger.debug(1, "Running %s", svnfetchcmd)
bb.fetch2.check_network_access(d, svnfetchcmd, ud.url)
- runfetchcmd(svnfetchcmd, d)
+ runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir)
scmdata = ud.parm.get("scmdata", "")
if scmdata == "keep":
tar_flags = ""
else:
- tar_flags = "--exclude '.svn'"
+ tar_flags = "--exclude='.svn'"
- os.chdir(ud.pkgdir)
# tar them up to a defined filename
- runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, ud.path_spec), d, cleanup = [ud.localpath])
+ runfetchcmd("tar %s -czf %s %s" % (tar_flags, ud.localpath, ud.path_spec), d,
+ cleanup=[ud.localpath], workdir=ud.pkgdir)
def clean(self, ud, d):
""" Clean SVN specific files and dirs """
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/wget.py b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/wget.py
index 8bc9e93ca..ecb946aa8 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/fetch2/wget.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/fetch2/wget.py
@@ -31,7 +31,8 @@ import subprocess
import os
import logging
import bb
-import urllib
+import bb.progress
+import urllib.request, urllib.parse, urllib.error
from bb import data
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
@@ -41,6 +42,27 @@ from bb.utils import export_proxies
from bs4 import BeautifulSoup
from bs4 import SoupStrainer
+class WgetProgressHandler(bb.progress.LineFilterProgressHandler):
+ """
+ Extract progress information from wget output.
+ Note: relies on --progress=dot (with -v or without -q/-nv) being
+ specified on the wget command line.
+ """
+ def __init__(self, d):
+ super(WgetProgressHandler, self).__init__(d)
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(0)
+
+ def writeline(self, line):
+ percs = re.findall(r'(\d+)%\s+([\d.]+[A-Z])', line)
+ if percs:
+ progress = int(percs[-1][0])
+ rate = percs[-1][1] + '/s'
+ self.update(progress, rate)
+ return False
+ return True
+
+
class Wget(FetchMethod):
"""Class to fetch urls via 'wget'"""
def supports(self, ud, d):
@@ -62,17 +84,19 @@ class Wget(FetchMethod):
else:
ud.basename = os.path.basename(ud.path)
- ud.localfile = data.expand(urllib.unquote(ud.basename), d)
+ ud.localfile = data.expand(urllib.parse.unquote(ud.basename), d)
if not ud.localfile:
- ud.localfile = data.expand(urllib.unquote(ud.host + ud.path).replace("/", "."), d)
+ ud.localfile = data.expand(urllib.parse.unquote(ud.host + ud.path).replace("/", "."), d)
- self.basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
+ self.basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -t 2 -T 30 --passive-ftp --no-check-certificate"
def _runwget(self, ud, d, command, quiet):
+ progresshandler = WgetProgressHandler(d)
+
logger.debug(2, "Fetching %s using command '%s'" % (ud.url, command))
bb.fetch2.check_network_access(d, command)
- runfetchcmd(command, d, quiet)
+ runfetchcmd(command + ' --progress=dot -v', d, quiet, log=progresshandler)
def download(self, ud, d):
"""Fetch urls"""
@@ -84,6 +108,10 @@ class Wget(FetchMethod):
bb.utils.mkdirhier(os.path.dirname(dldir + os.sep + ud.localfile))
fetchcmd += " -O " + dldir + os.sep + ud.localfile
+ if ud.user:
+ up = ud.user.split(":")
+ fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (up[0],up[1])
+
uri = ud.url.split(";")[0]
if os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again..
@@ -104,12 +132,12 @@ class Wget(FetchMethod):
return True
- def checkstatus(self, fetch, ud, d):
- import urllib2, socket, httplib
- from urllib import addinfourl
+ def checkstatus(self, fetch, ud, d, try_again=True):
+ import urllib.request, urllib.error, urllib.parse, socket, http.client
+ from urllib.response import addinfourl
from bb.fetch2 import FetchConnectionCache
- class HTTPConnectionCache(httplib.HTTPConnection):
+ class HTTPConnectionCache(http.client.HTTPConnection):
if fetch.connection_cache:
def connect(self):
"""Connect to the host and port specified in __init__."""
@@ -125,7 +153,7 @@ class Wget(FetchMethod):
if self._tunnel_host:
self._tunnel()
- class CacheHTTPHandler(urllib2.HTTPHandler):
+ class CacheHTTPHandler(urllib.request.HTTPHandler):
def http_open(self, req):
return self.do_open(HTTPConnectionCache, req)
@@ -139,7 +167,7 @@ class Wget(FetchMethod):
- geturl(): return the original request URL
- code: HTTP status code
"""
- host = req.get_host()
+ host = req.host
if not host:
raise urlllib2.URLError('no host given')
@@ -147,7 +175,7 @@ class Wget(FetchMethod):
h.set_debuglevel(self._debuglevel)
headers = dict(req.unredirected_hdrs)
- headers.update(dict((k, v) for k, v in req.headers.items()
+ headers.update(dict((k, v) for k, v in list(req.headers.items())
if k not in headers))
# We want to make an HTTP/1.1 request, but the addinfourl
@@ -164,7 +192,7 @@ class Wget(FetchMethod):
headers["Connection"] = "Keep-Alive" # Works for HTTP/1.0
headers = dict(
- (name.title(), val) for name, val in headers.items())
+ (name.title(), val) for name, val in list(headers.items()))
if req._tunnel_host:
tunnel_headers = {}
@@ -177,12 +205,12 @@ class Wget(FetchMethod):
h.set_tunnel(req._tunnel_host, headers=tunnel_headers)
try:
- h.request(req.get_method(), req.get_selector(), req.data, headers)
- except socket.error, err: # XXX what error?
+ h.request(req.get_method(), req.selector, req.data, headers)
+ except socket.error as err: # XXX what error?
# Don't close connection when cache is enabled.
if fetch.connection_cache is None:
h.close()
- raise urllib2.URLError(err)
+ raise urllib.error.URLError(err)
else:
try:
r = h.getresponse(buffering=True)
@@ -222,7 +250,7 @@ class Wget(FetchMethod):
return resp
- class HTTPMethodFallback(urllib2.BaseHandler):
+ class HTTPMethodFallback(urllib.request.BaseHandler):
"""
Fallback to GET if HEAD is not allowed (405 HTTP error)
"""
@@ -230,11 +258,11 @@ class Wget(FetchMethod):
fp.read()
fp.close()
- newheaders = dict((k,v) for k,v in req.headers.items()
+ newheaders = dict((k,v) for k,v in list(req.headers.items())
if k.lower() not in ("content-length", "content-type"))
- return self.parent.open(urllib2.Request(req.get_full_url(),
+ return self.parent.open(urllib.request.Request(req.get_full_url(),
headers=newheaders,
- origin_req_host=req.get_origin_req_host(),
+ origin_req_host=req.origin_req_host,
unverifiable=True))
"""
@@ -249,38 +277,49 @@ class Wget(FetchMethod):
"""
http_error_406 = http_error_405
- class FixedHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
+ class FixedHTTPRedirectHandler(urllib.request.HTTPRedirectHandler):
"""
urllib2.HTTPRedirectHandler resets the method to GET on redirect,
when we want to follow redirects using the original method.
"""
def redirect_request(self, req, fp, code, msg, headers, newurl):
- newreq = urllib2.HTTPRedirectHandler.redirect_request(self, req, fp, code, msg, headers, newurl)
+ newreq = urllib.request.HTTPRedirectHandler.redirect_request(self, req, fp, code, msg, headers, newurl)
newreq.get_method = lambda: req.get_method()
return newreq
exported_proxies = export_proxies(d)
handlers = [FixedHTTPRedirectHandler, HTTPMethodFallback]
if export_proxies:
- handlers.append(urllib2.ProxyHandler())
+ handlers.append(urllib.request.ProxyHandler())
handlers.append(CacheHTTPHandler())
# XXX: Since Python 2.7.9 ssl cert validation is enabled by default
# see PEP-0476, this causes verification errors on some https servers
# so disable by default.
import ssl
if hasattr(ssl, '_create_unverified_context'):
- handlers.append(urllib2.HTTPSHandler(context=ssl._create_unverified_context()))
- opener = urllib2.build_opener(*handlers)
+ handlers.append(urllib.request.HTTPSHandler(context=ssl._create_unverified_context()))
+ opener = urllib.request.build_opener(*handlers)
try:
uri = ud.url.split(";")[0]
- r = urllib2.Request(uri)
+ r = urllib.request.Request(uri)
r.get_method = lambda: "HEAD"
+
+ if ud.user:
+ import base64
+ encodeuser = base64.b64encode(ud.user.encode('utf-8')).decode("utf-8")
+ authheader = "Basic %s" % encodeuser
+ r.add_header("Authorization", authheader)
+
opener.open(r)
- except urllib2.URLError as e:
- # debug for now to avoid spamming the logs in e.g. remote sstate searches
- logger.debug(2, "checkstatus() urlopen failed: %s" % e)
- return False
+ except urllib.error.URLError as e:
+ if try_again:
+ logger.debug(2, "checkstatus: trying again")
+ return self.checkstatus(fetch, ud, d, False)
+ else:
+ # debug for now to avoid spamming the logs in e.g. remote sstate searches
+ logger.debug(2, "checkstatus() urlopen failed: %s" % e)
+ return False
return True
def _parse_path(self, regex, s):
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/main.py b/import-layers/yocto-poky/bitbake/lib/bb/main.py
index e30217369..f2f59f670 100755
--- a/import-layers/yocto-poky/bitbake/lib/bb/main.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/main.py
@@ -27,6 +27,7 @@ import sys
import logging
import optparse
import warnings
+import fcntl
import bb
from bb import event
@@ -100,11 +101,12 @@ def import_extension_module(pkg, modulename, checkattr):
# Dynamically load the UI based on the ui name. Although we
# suggest a fixed set this allows you to have flexibility in which
# ones are available.
- module = __import__(pkg.__name__, fromlist = [modulename])
+ module = __import__(pkg.__name__, fromlist=[modulename])
return getattr(module, modulename)
except AttributeError:
- raise BBMainException('FATAL: Unable to import extension module "%s" from %s. Valid extension modules: %s' % (modulename, pkg.__name__, present_options(list_extension_modules(pkg, checkattr))))
-
+ modules = present_options(list_extension_modules(pkg, checkattr))
+ raise BBMainException('FATAL: Unable to import extension module "%s" from %s. '
+ 'Valid extension modules: %s' % (modulename, pkg.__name__, modules))
# Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
warnlog = logging.getLogger("BitBake.Warnings")
@@ -115,7 +117,7 @@ def _showwarning(message, category, filename, lineno, file=None, line=None):
_warnings_showwarning(message, category, filename, lineno, file, line)
else:
s = warnings.formatwarning(message, category, filename, lineno)
- warnlog.warn(s)
+ warnlog.warning(s)
warnings.showwarning = _showwarning
warnings.filterwarnings("ignore")
@@ -129,136 +131,189 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
def parseCommandLine(self, argv=sys.argv):
parser = optparse.OptionParser(
- formatter = BitbakeHelpFormatter(),
- version = "BitBake Build Tool Core version %s" % bb.__version__,
- usage = """%prog [options] [recipename/target recipe:do_task ...]
+ formatter=BitbakeHelpFormatter(),
+ version="BitBake Build Tool Core version %s" % bb.__version__,
+ usage="""%prog [options] [recipename/target recipe:do_task ...]
Executes the specified task (default is 'build') for a given set of target recipes (.bb files).
It is assumed there is a conf/bblayers.conf available in cwd or in BBPATH which
will provide the layer, BBFILES and other configuration information.""")
- parser.add_option("-b", "--buildfile", help = "Execute tasks from a specific .bb recipe directly. WARNING: Does not handle any dependencies from other recipes.",
- action = "store", dest = "buildfile", default = None)
+ parser.add_option("-b", "--buildfile", action="store", dest="buildfile", default=None,
+ help="Execute tasks from a specific .bb recipe directly. WARNING: Does "
+ "not handle any dependencies from other recipes.")
+
+ parser.add_option("-k", "--continue", action="store_false", dest="abort", default=True,
+ help="Continue as much as possible after an error. While the target that "
+ "failed and anything depending on it cannot be built, as much as "
+ "possible will be built before stopping.")
- parser.add_option("-k", "--continue", help = "Continue as much as possible after an error. While the target that failed and anything depending on it cannot be built, as much as possible will be built before stopping.",
- action = "store_false", dest = "abort", default = True)
+ parser.add_option("-a", "--tryaltconfigs", action="store_true",
+ dest="tryaltconfigs", default=False,
+ help="Continue with builds by trying to use alternative providers "
+ "where possible.")
- parser.add_option("-a", "--tryaltconfigs", help = "Continue with builds by trying to use alternative providers where possible.",
- action = "store_true", dest = "tryaltconfigs", default = False)
+ parser.add_option("-f", "--force", action="store_true", dest="force", default=False,
+ help="Force the specified targets/task to run (invalidating any "
+ "existing stamp file).")
- parser.add_option("-f", "--force", help = "Force the specified targets/task to run (invalidating any existing stamp file).",
- action = "store_true", dest = "force", default = False)
+ parser.add_option("-c", "--cmd", action="store", dest="cmd",
+ help="Specify the task to execute. The exact options available "
+ "depend on the metadata. Some examples might be 'compile'"
+ " or 'populate_sysroot' or 'listtasks' may give a list of "
+ "the tasks available.")
- parser.add_option("-c", "--cmd", help = "Specify the task to execute. The exact options available depend on the metadata. Some examples might be 'compile' or 'populate_sysroot' or 'listtasks' may give a list of the tasks available.",
- action = "store", dest = "cmd")
+ parser.add_option("-C", "--clear-stamp", action="store", dest="invalidate_stamp",
+ help="Invalidate the stamp for the specified task such as 'compile' "
+ "and then run the default task for the specified target(s).")
- parser.add_option("-C", "--clear-stamp", help = "Invalidate the stamp for the specified task such as 'compile' and then run the default task for the specified target(s).",
- action = "store", dest = "invalidate_stamp")
+ parser.add_option("-r", "--read", action="append", dest="prefile", default=[],
+ help="Read the specified file before bitbake.conf.")
- parser.add_option("-r", "--read", help = "Read the specified file before bitbake.conf.",
- action = "append", dest = "prefile", default = [])
+ parser.add_option("-R", "--postread", action="append", dest="postfile", default=[],
+ help="Read the specified file after bitbake.conf.")
- parser.add_option("-R", "--postread", help = "Read the specified file after bitbake.conf.",
- action = "append", dest = "postfile", default = [])
+ parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False,
+ help="Output more log message data to the terminal.")
- parser.add_option("-v", "--verbose", help = "Output more log message data to the terminal.",
- action = "store_true", dest = "verbose", default = False)
+ parser.add_option("-D", "--debug", action="count", dest="debug", default=0,
+ help="Increase the debug level. You can specify this more than once.")
- parser.add_option("-D", "--debug", help = "Increase the debug level. You can specify this more than once.",
- action = "count", dest="debug", default = 0)
+ parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False,
+ help="Output less log message data to the terminal.")
- parser.add_option("-n", "--dry-run", help = "Don't execute, just go through the motions.",
- action = "store_true", dest = "dry_run", default = False)
+ parser.add_option("-n", "--dry-run", action="store_true", dest="dry_run", default=False,
+ help="Don't execute, just go through the motions.")
- parser.add_option("-S", "--dump-signatures", help = "Dump out the signature construction information, with no task execution. The SIGNATURE_HANDLER parameter is passed to the handler. Two common values are none and printdiff but the handler may define more/less. none means only dump the signature, printdiff means compare the dumped signature with the cached one.",
- action = "append", dest = "dump_signatures", default = [], metavar="SIGNATURE_HANDLER")
+ parser.add_option("-S", "--dump-signatures", action="append", dest="dump_signatures",
+ default=[], metavar="SIGNATURE_HANDLER",
+ help="Dump out the signature construction information, with no task "
+ "execution. The SIGNATURE_HANDLER parameter is passed to the "
+ "handler. Two common values are none and printdiff but the handler "
+ "may define more/less. none means only dump the signature, printdiff"
+ " means compare the dumped signature with the cached one.")
- parser.add_option("-p", "--parse-only", help = "Quit after parsing the BB recipes.",
- action = "store_true", dest = "parse_only", default = False)
+ parser.add_option("-p", "--parse-only", action="store_true",
+ dest="parse_only", default=False,
+ help="Quit after parsing the BB recipes.")
- parser.add_option("-s", "--show-versions", help = "Show current and preferred versions of all recipes.",
- action = "store_true", dest = "show_versions", default = False)
+ parser.add_option("-s", "--show-versions", action="store_true",
+ dest="show_versions", default=False,
+ help="Show current and preferred versions of all recipes.")
- parser.add_option("-e", "--environment", help = "Show the global or per-recipe environment complete with information about where variables were set/changed.",
- action = "store_true", dest = "show_environment", default = False)
+ parser.add_option("-e", "--environment", action="store_true",
+ dest="show_environment", default=False,
+ help="Show the global or per-recipe environment complete with information"
+ " about where variables were set/changed.")
- parser.add_option("-g", "--graphviz", help = "Save dependency tree information for the specified targets in the dot syntax.",
- action = "store_true", dest = "dot_graph", default = False)
+ parser.add_option("-g", "--graphviz", action="store_true", dest="dot_graph", default=False,
+ help="Save dependency tree information for the specified "
+ "targets in the dot syntax.")
- parser.add_option("-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",
- action = "append", dest = "extra_assume_provided", default = [])
+ parser.add_option("-I", "--ignore-deps", action="append",
+ dest="extra_assume_provided", default=[],
+ help="Assume these dependencies don't exist and are already provided "
+ "(equivalent to ASSUME_PROVIDED). Useful to make dependency "
+ "graphs more appealing")
- parser.add_option("-l", "--log-domains", help = """Show debug logging for the specified logging domains""",
- action = "append", dest = "debug_domains", default = [])
+ parser.add_option("-l", "--log-domains", action="append", dest="debug_domains", default=[],
+ help="Show debug logging for the specified logging domains")
- parser.add_option("-P", "--profile", help = "Profile the command and save reports.",
- action = "store_true", dest = "profile", default = False)
+ parser.add_option("-P", "--profile", action="store_true", dest="profile", default=False,
+ help="Profile the command and save reports.")
- env_ui = os.environ.get('BITBAKE_UI', None)
- default_ui = env_ui or 'knotty'
# @CHOICES@ is substituted out by BitbakeHelpFormatter above
- parser.add_option("-u", "--ui", help = "The user interface to use (@CHOICES@ - default %default).",
- action="store", dest="ui", default=default_ui)
+ parser.add_option("-u", "--ui", action="store", dest="ui",
+ default=os.environ.get('BITBAKE_UI', 'knotty'),
+ help="The user interface to use (@CHOICES@ - default %default).")
# @CHOICES@ is substituted out by BitbakeHelpFormatter above
- parser.add_option("-t", "--servertype", help = "Choose which server type to use (@CHOICES@ - default %default).",
- action = "store", dest = "servertype", default = "process")
+ parser.add_option("-t", "--servertype", action="store", dest="servertype",
+ default=["process", "xmlrpc"]["BBSERVER" in os.environ],
+ help="Choose which server type to use (@CHOICES@ - default %default).")
+
+ parser.add_option("", "--token", action="store", dest="xmlrpctoken",
+ default=os.environ.get("BBTOKEN"),
+ help="Specify the connection token to be used when connecting "
+ "to a remote server.")
- parser.add_option("", "--token", help = "Specify the connection token to be used when connecting to a remote server.",
- action = "store", dest = "xmlrpctoken")
+ parser.add_option("", "--revisions-changed", action="store_true",
+ dest="revisions_changed", default=False,
+ help="Set the exit code depending on whether upstream floating "
+ "revisions have changed or not.")
- parser.add_option("", "--revisions-changed", help = "Set the exit code depending on whether upstream floating revisions have changed or not.",
- action = "store_true", dest = "revisions_changed", default = False)
+ parser.add_option("", "--server-only", action="store_true",
+ dest="server_only", default=False,
+ help="Run bitbake without a UI, only starting a server "
+ "(cooker) process.")
- parser.add_option("", "--server-only", help = "Run bitbake without a UI, only starting a server (cooker) process.",
- action = "store_true", dest = "server_only", default = False)
+ parser.add_option("", "--foreground", action="store_true",
+ help="Run bitbake server in foreground.")
- parser.add_option("-B", "--bind", help = "The name/address for the bitbake server to bind to.",
- action = "store", dest = "bind", default = False)
+ parser.add_option("-B", "--bind", action="store", dest="bind", default=False,
+ help="The name/address for the bitbake server to bind to.")
- parser.add_option("", "--no-setscene", help = "Do not run any setscene tasks. sstate will be ignored and everything needed, built.",
- action = "store_true", dest = "nosetscene", default = False)
+ parser.add_option("-T", "--idle-timeout", type=int,
+ default=int(os.environ.get("BBTIMEOUT", "0")),
+ help="Set timeout to unload bitbake server due to inactivity")
- parser.add_option("", "--setscene-only", help = "Only run setscene tasks, don't run any real tasks.",
- action = "store_true", dest = "setsceneonly", default = False)
+ parser.add_option("", "--no-setscene", action="store_true",
+ dest="nosetscene", default=False,
+ help="Do not run any setscene tasks. sstate will be ignored and "
+ "everything needed, built.")
- parser.add_option("", "--remote-server", help = "Connect to the specified server.",
- action = "store", dest = "remote_server", default = False)
+ parser.add_option("", "--setscene-only", action="store_true",
+ dest="setsceneonly", default=False,
+ help="Only run setscene tasks, don't run any real tasks.")
- parser.add_option("-m", "--kill-server", help = "Terminate the remote server.",
- action = "store_true", dest = "kill_server", default = False)
+ parser.add_option("", "--remote-server", action="store", dest="remote_server",
+ default=os.environ.get("BBSERVER"),
+ help="Connect to the specified server.")
- parser.add_option("", "--observe-only", help = "Connect to a server as an observing-only client.",
- action = "store_true", dest = "observe_only", default = False)
+ parser.add_option("-m", "--kill-server", action="store_true",
+ dest="kill_server", default=False,
+ help="Terminate the remote server.")
- parser.add_option("", "--status-only", help = "Check the status of the remote bitbake server.",
- action = "store_true", dest = "status_only", default = False)
+ parser.add_option("", "--observe-only", action="store_true",
+ dest="observe_only", default=False,
+ help="Connect to a server as an observing-only client.")
- parser.add_option("-w", "--write-log", help = "Writes the event log of the build to a bitbake event json file. Use '' (empty string) to assign the name automatically.",
- action = "store", dest = "writeeventlog")
+ parser.add_option("", "--status-only", action="store_true",
+ dest="status_only", default=False,
+ help="Check the status of the remote bitbake server.")
+
+ parser.add_option("-w", "--write-log", action="store", dest="writeeventlog",
+ default=os.environ.get("BBEVENTLOG"),
+ help="Writes the event log of the build to a bitbake event json file. "
+ "Use '' (empty string) to assign the name automatically.")
options, targets = parser.parse_args(argv)
- # some environmental variables set also configuration options
- if "BBSERVER" in os.environ:
- options.servertype = "xmlrpc"
- options.remote_server = os.environ["BBSERVER"]
+ if options.quiet and options.verbose:
+ parser.error("options --quiet and --verbose are mutually exclusive")
+
+ if options.quiet and options.debug:
+ parser.error("options --quiet and --debug are mutually exclusive")
- if "BBTOKEN" in os.environ:
- options.xmlrpctoken = os.environ["BBTOKEN"]
+ # use configuration files from environment variables
+ if "BBPRECONF" in os.environ:
+ options.prefile.append(os.environ["BBPRECONF"])
- if "BBEVENTLOG" in os.environ:
- options.writeeventlog = os.environ["BBEVENTLOG"]
+ if "BBPOSTCONF" in os.environ:
+ options.postfile.append(os.environ["BBPOSTCONF"])
# fill in proper log name if not supplied
if options.writeeventlog is not None and len(options.writeeventlog) == 0:
- import datetime
- options.writeeventlog = "bitbake_eventlog_%s.json" % datetime.datetime.now().strftime("%Y%m%d%H%M%S")
+ from datetime import datetime
+ eventlog = "bitbake_eventlog_%s.json" % datetime.now().strftime("%Y%m%d%H%M%S")
+ options.writeeventlog = eventlog
# if BBSERVER says to autodetect, let's do that
if options.remote_server:
- [host, port] = options.remote_server.split(":", 2)
- port = int(port)
+ port = -1
+ if options.remote_server != 'autostart':
+ host, port = options.remote_server.split(":", 2)
+ port = int(port)
# use automatic port if port set to -1, means read it from
# the bitbake.lock file; this is a bit tricky, but we always expect
# to be in the base of the build directory if we need to have a
@@ -275,18 +330,20 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters):
lf.close()
options.remote_server = remotedef
except Exception as e:
- raise BBMainException("Failed to read bitbake.lock (%s), invalid port" % str(e))
+ if options.remote_server != 'autostart':
+ raise BBMainException("Failed to read bitbake.lock (%s), invalid port" % str(e))
return options, targets[1:]
def start_server(servermodule, configParams, configuration, features):
server = servermodule.BitBakeServer()
- single_use = not configParams.server_only
+ single_use = not configParams.server_only and os.getenv('BBSERVER') != 'autostart'
if configParams.bind:
(host, port) = configParams.bind.split(':')
- server.initServer((host, int(port)), single_use)
- configuration.interface = [ server.serverImpl.host, server.serverImpl.port ]
+ server.initServer((host, int(port)), single_use=single_use,
+ idle_timeout=configParams.idle_timeout)
+ configuration.interface = [server.serverImpl.host, server.serverImpl.port]
else:
server.initServer(single_use=single_use)
configuration.interface = []
@@ -299,20 +356,17 @@ def start_server(servermodule, configParams, configuration, features):
server.addcooker(cooker)
server.saveConnectionDetails()
except Exception as e:
- exc_info = sys.exc_info()
while hasattr(server, "event_queue"):
- try:
- import queue
- except ImportError:
- import Queue as queue
+ import queue
try:
event = server.event_queue.get(block=False)
except (queue.Empty, IOError):
break
if isinstance(event, logging.LogRecord):
logger.handle(event)
- raise exc_info[1], None, exc_info[2]
- server.detach()
+ raise
+ if not configParams.foreground:
+ server.detach()
cooker.lock.close()
return server
@@ -328,7 +382,10 @@ def bitbake_main(configParams, configuration):
# updates to log files for use with tail
try:
if sys.stdout.name == '<stdout>':
- sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+ # Reopen with O_SYNC (unbuffered)
+ fl = fcntl.fcntl(sys.stdout.fileno(), fcntl.F_GETFL)
+ fl |= os.O_SYNC
+ fcntl.fcntl(sys.stdout.fileno(), fcntl.F_SETFL, fl)
except:
pass
@@ -345,10 +402,21 @@ def bitbake_main(configParams, configuration):
if not configParams.bind:
raise BBMainException("FATAL: The '--server-only' option requires a name/address "
"to bind to with the -B option.\n")
+ else:
+ try:
+ #Checking that the port is a number
+ int(configParams.bind.split(":")[1])
+ except (ValueError,IndexError):
+ raise BBMainException(
+ "FATAL: Malformed host:port bind parameter")
if configParams.remote_server:
raise BBMainException("FATAL: The '--server-only' option conflicts with %s.\n" %
("the BBSERVER environment variable" if "BBSERVER" in os.environ \
- else "the '--remote-server' option" ))
+ else "the '--remote-server' option"))
+
+ elif configParams.foreground:
+ raise BBMainException("FATAL: The '--foreground' option can only be used "
+ "with --server-only.\n")
if configParams.bind and configParams.servertype != "xmlrpc":
raise BBMainException("FATAL: If '-B' or '--bind' is defined, we must "
@@ -363,7 +431,8 @@ def bitbake_main(configParams, configuration):
"connecting to a server.\n")
if configParams.kill_server and not configParams.remote_server:
- raise BBMainException("FATAL: '--kill-server' can only be used to terminate a remote server")
+ raise BBMainException("FATAL: '--kill-server' can only be used to "
+ "terminate a remote server")
if "BBDEBUG" in os.environ:
level = int(os.environ["BBDEBUG"])
@@ -371,7 +440,7 @@ def bitbake_main(configParams, configuration):
configuration.debug = level
bb.msg.init_msgconfig(configParams.verbose, configuration.debug,
- configuration.debug_domains)
+ configuration.debug_domains)
# Ensure logging messages get sent to the UI as events
handler = bb.event.LogHandler()
@@ -399,8 +468,17 @@ def bitbake_main(configParams, configuration):
server = start_server(servermodule, configParams, configuration, featureset)
bb.event.ui_queue = []
else:
+ if os.getenv('BBSERVER') == 'autostart':
+ if configParams.remote_server == 'autostart' or \
+ not servermodule.check_connection(configParams.remote_server, timeout=2):
+ configParams.bind = 'localhost:0'
+ srv = start_server(servermodule, configParams, configuration, featureset)
+ configParams.remote_server = '%s:%d' % tuple(configuration.interface)
+ bb.event.ui_queue = []
+
# we start a stub server that is actually a XMLRPClient that connects to a real server
- server = servermodule.BitBakeXMLRPCClient(configParams.observe_only, configParams.xmlrpctoken)
+ server = servermodule.BitBakeXMLRPCClient(configParams.observe_only,
+ configParams.xmlrpctoken)
server.saveConnectionDetails(configParams.remote_server)
@@ -429,12 +507,16 @@ def bitbake_main(configParams, configuration):
return 0
try:
- return ui_module.main(server_connection.connection, server_connection.events, configParams)
+ return ui_module.main(server_connection.connection, server_connection.events,
+ configParams)
finally:
bb.event.ui_queue = []
server_connection.terminate()
else:
- print("Bitbake server address: %s, server port: %s" % (server.serverImpl.host, server.serverImpl.port))
+ print("Bitbake server address: %s, server port: %s" % (server.serverImpl.host,
+ server.serverImpl.port))
+ if configParams.foreground:
+ server.serverImpl.serve_forever()
return 0
return 1
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/monitordisk.py b/import-layers/yocto-poky/bitbake/lib/bb/monitordisk.py
index 466523c6e..203c40504 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/monitordisk.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/monitordisk.py
@@ -220,7 +220,7 @@ class diskMonitor:
if minSpace and freeSpace < minSpace:
# Always show warning, the self.checked would always be False if the action is WARN
if self.preFreeS[k] == 0 or self.preFreeS[k] - freeSpace > self.spaceInterval and not self.checked[k]:
- logger.warn("The free space of %s (%s) is running low (%.3fGB left)" % \
+ logger.warning("The free space of %s (%s) is running low (%.3fGB left)" % \
(path, dev, freeSpace / 1024 / 1024 / 1024.0))
self.preFreeS[k] = freeSpace
@@ -246,7 +246,7 @@ class diskMonitor:
continue
# Always show warning, the self.checked would always be False if the action is WARN
if self.preFreeI[k] == 0 or self.preFreeI[k] - freeInode > self.inodeInterval and not self.checked[k]:
- logger.warn("The free inode of %s (%s) is running low (%.3fK left)" % \
+ logger.warning("The free inode of %s (%s) is running low (%.3fK left)" % \
(path, dev, freeInode / 1024.0))
self.preFreeI[k] = freeInode
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/msg.py b/import-layers/yocto-poky/bitbake/lib/bb/msg.py
index 786b5aef4..b7c39fa13 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/msg.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/msg.py
@@ -57,7 +57,7 @@ class BBLogFormatter(logging.Formatter):
}
color_enabled = False
- BASECOLOR, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(29,38)
+ BASECOLOR, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = list(range(29,38))
COLORS = {
DEBUG3 : CYAN,
@@ -90,8 +90,9 @@ class BBLogFormatter(logging.Formatter):
if self.color_enabled:
record = self.colorize(record)
msg = logging.Formatter.format(self, record)
-
- if hasattr(record, 'bb_exc_info'):
+ if hasattr(record, 'bb_exc_formatted'):
+ msg += '\n' + ''.join(record.bb_exc_formatted)
+ elif hasattr(record, 'bb_exc_info'):
etype, value, tb = record.bb_exc_info
formatted = bb.exceptions.format_exception(etype, value, tb, limit=5)
msg += '\n' + ''.join(formatted)
@@ -181,9 +182,12 @@ def constructLogOptions():
debug_domains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1
return level, debug_domains
-def addDefaultlogFilter(handler, cls = BBLogFilter):
+def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None):
level, debug_domains = constructLogOptions()
+ if forcelevel is not None:
+ level = forcelevel
+
cls(handler, level, debug_domains)
#
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/parse/ast.py b/import-layers/yocto-poky/bitbake/lib/bb/parse/ast.py
index 5f55af5ef..fa83b1898 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/parse/ast.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/parse/ast.py
@@ -21,8 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-from __future__ import absolute_import
-from future_builtins import filter
+
import re
import string
import logging
@@ -70,6 +69,33 @@ class ExportNode(AstNode):
def eval(self, data):
data.setVarFlag(self.var, "export", 1, op = 'exported')
+class UnsetNode(AstNode):
+ def __init__(self, filename, lineno, var):
+ AstNode.__init__(self, filename, lineno)
+ self.var = var
+
+ def eval(self, data):
+ loginfo = {
+ 'variable': self.var,
+ 'file': self.filename,
+ 'line': self.lineno,
+ }
+ data.delVar(self.var,**loginfo)
+
+class UnsetFlagNode(AstNode):
+ def __init__(self, filename, lineno, var, flag):
+ AstNode.__init__(self, filename, lineno)
+ self.var = var
+ self.flag = flag
+
+ def eval(self, data):
+ loginfo = {
+ 'variable': self.var,
+ 'file': self.filename,
+ 'line': self.lineno,
+ }
+ data.delVarFlag(self.var, self.flag, **loginfo)
+
class DataNode(AstNode):
"""
Various data related updates. For the sake of sanity
@@ -139,7 +165,7 @@ class DataNode(AstNode):
data.setVar(key, val, parsing=True, **loginfo)
class MethodNode(AstNode):
- tr_tbl = string.maketrans('/.+-@%&', '_______')
+ tr_tbl = str.maketrans('/.+-@%&', '_______')
def __init__(self, filename, lineno, func_name, body, python, fakeroot):
AstNode.__init__(self, filename, lineno)
@@ -271,6 +297,12 @@ def handleInclude(statements, filename, lineno, m, force):
def handleExport(statements, filename, lineno, m):
statements.append(ExportNode(filename, lineno, m.group(1)))
+def handleUnset(statements, filename, lineno, m):
+ statements.append(UnsetNode(filename, lineno, m.group(1)))
+
+def handleUnsetFlag(statements, filename, lineno, m):
+ statements.append(UnsetFlagNode(filename, lineno, m.group(1), m.group(2)))
+
def handleData(statements, filename, lineno, groupd):
statements.append(DataNode(filename, lineno, groupd))
@@ -307,10 +339,13 @@ def handleInherit(statements, filename, lineno, m):
statements.append(InheritNode(filename, lineno, classes))
def finalize(fn, d, variant = None):
- all_handlers = {}
+ saved_handlers = bb.event.get_handlers().copy()
+
for var in d.getVar('__BBHANDLERS', False) or []:
# try to add the handler
handlerfn = d.getVarFlag(var, "filename", False)
+ if not handlerfn:
+ bb.fatal("Undefined event handler function '%s'" % var)
handlerln = int(d.getVarFlag(var, "lineno", False))
bb.event.register(var, d.getVar(var, False), (d.getVarFlag(var, "eventmask", True) or "").split(), handlerfn, handlerln)
@@ -332,6 +367,7 @@ def finalize(fn, d, variant = None):
d.setVar('BBINCLUDED', bb.parse.get_file_depends(d))
bb.event.fire(bb.event.RecipeParsed(fn), d)
+ bb.event.set_handlers(saved_handlers)
def _create_variants(datastores, names, function, onlyfinalise):
def create_variant(name, orig_d, arg = None):
@@ -341,17 +377,17 @@ def _create_variants(datastores, names, function, onlyfinalise):
function(arg or name, new_d)
datastores[name] = new_d
- for variant, variant_d in datastores.items():
+ for variant in list(datastores.keys()):
for name in names:
if not variant:
# Based on main recipe
- create_variant(name, variant_d)
+ create_variant(name, datastores[""])
else:
- create_variant("%s-%s" % (variant, name), variant_d, name)
+ create_variant("%s-%s" % (variant, name), datastores[variant], name)
def _expand_versions(versions):
def expand_one(version, start, end):
- for i in xrange(start, end + 1):
+ for i in range(start, end + 1):
ver = _bbversions_re.sub(str(i), version, 1)
yield ver
@@ -460,17 +496,13 @@ def multi_finalize(fn, d):
safe_d.setVar("BBCLASSEXTEND", extended)
_create_variants(datastores, extendedmap.keys(), extendfunc, onlyfinalise)
- for variant, variant_d in datastores.iteritems():
+ for variant in datastores.keys():
if variant:
try:
if not onlyfinalise or variant in onlyfinalise:
- finalize(fn, variant_d, variant)
+ finalize(fn, datastores[variant], variant)
except bb.parse.SkipRecipe as e:
- variant_d.setVar("__SKIPPED", e.args[0])
-
- if len(datastores) > 1:
- variants = filter(None, datastores.iterkeys())
- safe_d.setVar("__VARIANTS", " ".join(variants))
+ datastores[variant].setVar("__SKIPPED", e.args[0])
datastores[""] = d
return datastores
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/BBHandler.py b/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
index ef72c3700..c54a07979 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -25,7 +25,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-from __future__ import absolute_import
+
import re, bb, os
import logging
import bb.build, bb.utils
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py b/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
index fbd75b14a..875250de4 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py
@@ -57,6 +57,8 @@ __config_regexp__ = re.compile( r"""
__include_regexp__ = re.compile( r"include\s+(.+)" )
__require_regexp__ = re.compile( r"require\s+(.+)" )
__export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/]+)$" )
+__unset_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)$" )
+__unset_flag_regexp__ = re.compile( r"unset\s+([a-zA-Z0-9\-_+.${}/]+)\[([a-zA-Z0-9\-_+.${}/]+)\]$" )
def init(data):
topdir = data.getVar('TOPDIR', False)
@@ -84,13 +86,13 @@ def include(parentfn, fn, lineno, data, error_out):
bbpath = "%s:%s" % (dname, data.getVar("BBPATH", True))
abs_fn, attempts = bb.utils.which(bbpath, fn, history=True)
if abs_fn and bb.parse.check_dependency(data, abs_fn):
- logger.warn("Duplicate inclusion for %s in %s" % (abs_fn, data.getVar('FILE', True)))
+ logger.warning("Duplicate inclusion for %s in %s" % (abs_fn, data.getVar('FILE', True)))
for af in attempts:
bb.parse.mark_dependency(data, af)
if abs_fn:
fn = abs_fn
elif bb.parse.check_dependency(data, fn):
- logger.warn("Duplicate inclusion for %s in %s" % (fn, data.getVar('FILE', True)))
+ logger.warning("Duplicate inclusion for %s in %s" % (fn, data.getVar('FILE', True)))
try:
bb.parse.handle(fn, data, True)
@@ -185,6 +187,16 @@ def feeder(lineno, s, fn, statements):
ast.handleExport(statements, fn, lineno, m)
return
+ m = __unset_regexp__.match(s)
+ if m:
+ ast.handleUnset(statements, fn, lineno, m)
+ return
+
+ m = __unset_flag_regexp__.match(s)
+ if m:
+ ast.handleUnsetFlag(statements, fn, lineno, m)
+ return
+
raise ParseError("unparsed line: '%s'" % s, fn, lineno);
# Add us to the handlers list
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/persist_data.py b/import-layers/yocto-poky/bitbake/lib/bb/persist_data.py
index e45042324..bb6deca52 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/persist_data.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/persist_data.py
@@ -92,9 +92,9 @@ class SQLTable(collections.MutableMapping):
self._execute("DELETE from %s where key=?;" % self.table, [key])
def __setitem__(self, key, value):
- if not isinstance(key, basestring):
+ if not isinstance(key, str):
raise TypeError('Only string keys are supported')
- elif not isinstance(value, basestring):
+ elif not isinstance(value, str):
raise TypeError('Only string values are supported')
data = self._execute("SELECT * from %s where key=?;" %
@@ -178,7 +178,7 @@ class PersistData(object):
"""
Return a list of key + value pairs for a domain
"""
- return self.data[domain].items()
+ return list(self.data[domain].items())
def getValue(self, domain, key):
"""
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/process.py b/import-layers/yocto-poky/bitbake/lib/bb/process.py
index 1c07f2d9b..c62d7bca4 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/process.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/process.py
@@ -17,7 +17,7 @@ class CmdError(RuntimeError):
self.msg = msg
def __str__(self):
- if not isinstance(self.command, basestring):
+ if not isinstance(self.command, str):
cmd = subprocess.list2cmdline(self.command)
else:
cmd = self.command
@@ -97,6 +97,8 @@ def _logged_communicate(pipe, log, input, extrafiles):
try:
while pipe.poll() is None:
rlist = rin
+ stdoutbuf = b""
+ stderrbuf = b""
try:
r,w,e = select.select (rlist, [], [], 1)
except OSError as e:
@@ -104,16 +106,26 @@ def _logged_communicate(pipe, log, input, extrafiles):
raise
if pipe.stdout in r:
- data = pipe.stdout.read()
- if data is not None:
- outdata.append(data)
- log.write(data)
+ data = stdoutbuf + pipe.stdout.read()
+ if data is not None and len(data) > 0:
+ try:
+ data = data.decode("utf-8")
+ outdata.append(data)
+ log.write(data)
+ stdoutbuf = b""
+ except UnicodeDecodeError:
+ stdoutbuf = data
if pipe.stderr in r:
- data = pipe.stderr.read()
- if data is not None:
- errdata.append(data)
- log.write(data)
+ data = stderrbuf + pipe.stderr.read()
+ if data is not None and len(data) > 0:
+ try:
+ data = data.decode("utf-8")
+ errdata.append(data)
+ log.write(data)
+ stderrbuf = b""
+ except UnicodeDecodeError:
+ stderrbuf = data
readextras(r)
@@ -135,7 +147,7 @@ def run(cmd, input=None, log=None, extrafiles=None, **options):
if not extrafiles:
extrafiles = []
- if isinstance(cmd, basestring) and not "shell" in options:
+ if isinstance(cmd, str) and not "shell" in options:
options["shell"] = True
try:
@@ -150,6 +162,10 @@ def run(cmd, input=None, log=None, extrafiles=None, **options):
stdout, stderr = _logged_communicate(pipe, log, input, extrafiles)
else:
stdout, stderr = pipe.communicate(input)
+ if stdout:
+ stdout = stdout.decode("utf-8")
+ if stderr:
+ stderr = stderr.decode("utf-8")
if pipe.returncode != 0:
raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/progress.py b/import-layers/yocto-poky/bitbake/lib/bb/progress.py
new file mode 100644
index 000000000..f54d1c76f
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bb/progress.py
@@ -0,0 +1,276 @@
+"""
+BitBake progress handling code
+"""
+
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import sys
+import re
+import time
+import inspect
+import bb.event
+import bb.build
+
+class ProgressHandler(object):
+ """
+ Base class that can pretend to be a file object well enough to be
+ used to build objects to intercept console output and determine the
+ progress of some operation.
+ """
+ def __init__(self, d, outfile=None):
+ self._progress = 0
+ self._data = d
+ self._lastevent = 0
+ if outfile:
+ self._outfile = outfile
+ else:
+ self._outfile = sys.stdout
+
+ def _fire_progress(self, taskprogress, rate=None):
+ """Internal function to fire the progress event"""
+ bb.event.fire(bb.build.TaskProgress(taskprogress, rate), self._data)
+
+ def write(self, string):
+ self._outfile.write(string)
+
+ def flush(self):
+ self._outfile.flush()
+
+ def update(self, progress, rate=None):
+ ts = time.time()
+ if progress > 100:
+ progress = 100
+ if progress != self._progress or self._lastevent + 1 < ts:
+ self._fire_progress(progress, rate)
+ self._lastevent = ts
+ self._progress = progress
+
+class LineFilterProgressHandler(ProgressHandler):
+ """
+ A ProgressHandler variant that provides the ability to filter out
+ the lines if they contain progress information. Additionally, it
+ filters out anything before the last line feed on a line. This can
+ be used to keep the logs clean of output that we've only enabled for
+ getting progress, assuming that that can be done on a per-line
+ basis.
+ """
+ def __init__(self, d, outfile=None):
+ self._linebuffer = ''
+ super(LineFilterProgressHandler, self).__init__(d, outfile)
+
+ def write(self, string):
+ self._linebuffer += string
+ while True:
+ breakpos = self._linebuffer.find('\n') + 1
+ if breakpos == 0:
+ break
+ line = self._linebuffer[:breakpos]
+ self._linebuffer = self._linebuffer[breakpos:]
+ # Drop any line feeds and anything that precedes them
+ lbreakpos = line.rfind('\r') + 1
+ if lbreakpos:
+ line = line[lbreakpos:]
+ if self.writeline(line):
+ super(LineFilterProgressHandler, self).write(line)
+
+ def writeline(self, line):
+ return True
+
+class BasicProgressHandler(ProgressHandler):
+ def __init__(self, d, regex=r'(\d+)%', outfile=None):
+ super(BasicProgressHandler, self).__init__(d, outfile)
+ self._regex = re.compile(regex)
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(0)
+
+ def write(self, string):
+ percs = self._regex.findall(string)
+ if percs:
+ progress = int(percs[-1])
+ self.update(progress)
+ super(BasicProgressHandler, self).write(string)
+
+class OutOfProgressHandler(ProgressHandler):
+ def __init__(self, d, regex, outfile=None):
+ super(OutOfProgressHandler, self).__init__(d, outfile)
+ self._regex = re.compile(regex)
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(0)
+
+ def write(self, string):
+ nums = self._regex.findall(string)
+ if nums:
+ progress = (float(nums[-1][0]) / float(nums[-1][1])) * 100
+ self.update(progress)
+ super(OutOfProgressHandler, self).write(string)
+
+class MultiStageProgressReporter(object):
+ """
+ Class which allows reporting progress without the caller
+ having to know where they are in the overall sequence. Useful
+ for tasks made up of python code spread across multiple
+ classes / functions - the progress reporter object can
+ be passed around or stored at the object level and calls
+ to next_stage() and update() made whereever needed.
+ """
+ def __init__(self, d, stage_weights, debug=False):
+ """
+ Initialise the progress reporter.
+
+ Parameters:
+ * d: the datastore (needed for firing the events)
+ * stage_weights: a list of weight values, one for each stage.
+ The value is scaled internally so you only need to specify
+ values relative to other values in the list, so if there
+ are two stages and the first takes 2s and the second takes
+ 10s you would specify [2, 10] (or [1, 5], it doesn't matter).
+ * debug: specify True (and ensure you call finish() at the end)
+ in order to show a printout of the calculated stage weights
+ based on timing each stage. Use this to determine what the
+ weights should be when you're not sure.
+ """
+ self._data = d
+ total = sum(stage_weights)
+ self._stage_weights = [float(x)/total for x in stage_weights]
+ self._stage = -1
+ self._base_progress = 0
+ # Send an initial progress event so the bar gets shown
+ self._fire_progress(0)
+ self._debug = debug
+ self._finished = False
+ if self._debug:
+ self._last_time = time.time()
+ self._stage_times = []
+ self._stage_total = None
+ self._callers = []
+
+ def _fire_progress(self, taskprogress):
+ bb.event.fire(bb.build.TaskProgress(taskprogress), self._data)
+
+ def next_stage(self, stage_total=None):
+ """
+ Move to the next stage.
+ Parameters:
+ * stage_total: optional total for progress within the stage,
+ see update() for details
+ NOTE: you need to call this before the first stage.
+ """
+ self._stage += 1
+ self._stage_total = stage_total
+ if self._stage == 0:
+ # First stage
+ if self._debug:
+ self._last_time = time.time()
+ else:
+ if self._stage < len(self._stage_weights):
+ self._base_progress = sum(self._stage_weights[:self._stage]) * 100
+ if self._debug:
+ currtime = time.time()
+ self._stage_times.append(currtime - self._last_time)
+ self._last_time = currtime
+ self._callers.append(inspect.getouterframes(inspect.currentframe())[1])
+ elif not self._debug:
+ bb.warn('ProgressReporter: current stage beyond declared number of stages')
+ self._base_progress = 100
+ self._fire_progress(self._base_progress)
+
+ def update(self, stage_progress):
+ """
+ Update progress within the current stage.
+ Parameters:
+ * stage_progress: progress value within the stage. If stage_total
+ was specified when next_stage() was last called, then this
+ value is considered to be out of stage_total, otherwise it should
+ be a percentage value from 0 to 100.
+ """
+ if self._stage_total:
+ stage_progress = (float(stage_progress) / self._stage_total) * 100
+ if self._stage < 0:
+ bb.warn('ProgressReporter: update called before first call to next_stage()')
+ elif self._stage < len(self._stage_weights):
+ progress = self._base_progress + (stage_progress * self._stage_weights[self._stage])
+ else:
+ progress = self._base_progress
+ if progress > 100:
+ progress = 100
+ self._fire_progress(progress)
+
+ def finish(self):
+ if self._finished:
+ return
+ self._finished = True
+ if self._debug:
+ import math
+ self._stage_times.append(time.time() - self._last_time)
+ mintime = max(min(self._stage_times), 0.01)
+ self._callers.append(None)
+ stage_weights = [int(math.ceil(x / mintime)) for x in self._stage_times]
+ bb.warn('Stage weights: %s' % stage_weights)
+ out = []
+ for stage_weight, caller in zip(stage_weights, self._callers):
+ if caller:
+ out.append('Up to %s:%d: %d' % (caller[1], caller[2], stage_weight))
+ else:
+ out.append('Up to finish: %d' % stage_weight)
+ bb.warn('Stage times:\n %s' % '\n '.join(out))
+
+class MultiStageProcessProgressReporter(MultiStageProgressReporter):
+ """
+ Version of MultiStageProgressReporter intended for use with
+ standalone processes (such as preparing the runqueue)
+ """
+ def __init__(self, d, processname, stage_weights, debug=False):
+ self._processname = processname
+ self._started = False
+ MultiStageProgressReporter.__init__(self, d, stage_weights, debug)
+
+ def start(self):
+ if not self._started:
+ bb.event.fire(bb.event.ProcessStarted(self._processname, 100), self._data)
+ self._started = True
+
+ def _fire_progress(self, taskprogress):
+ if taskprogress == 0:
+ self.start()
+ return
+ bb.event.fire(bb.event.ProcessProgress(self._processname, taskprogress), self._data)
+
+ def finish(self):
+ MultiStageProgressReporter.finish(self)
+ bb.event.fire(bb.event.ProcessFinished(self._processname), self._data)
+
+class DummyMultiStageProcessProgressReporter(MultiStageProgressReporter):
+ """
+ MultiStageProcessProgressReporter that takes the calls and does nothing
+ with them (to avoid a bunch of "if progress_reporter:" checks)
+ """
+ def __init__(self):
+ MultiStageProcessProgressReporter.__init__(self, "", None, [])
+
+ def _fire_progress(self, taskprogress, rate=None):
+ pass
+
+ def start(self):
+ pass
+
+ def next_stage(self, stage_total=None):
+ pass
+
+ def update(self, stage_progress):
+ pass
+
+ def finish(self):
+ pass
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/providers.py b/import-layers/yocto-poky/bitbake/lib/bb/providers.py
index 563a091fd..db02a0b0d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/providers.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/providers.py
@@ -245,7 +245,7 @@ def _filterProviders(providers, item, cfgData, dataCache):
pkg_pn[pn] = []
pkg_pn[pn].append(p)
- logger.debug(1, "providers for %s are: %s", item, pkg_pn.keys())
+ logger.debug(1, "providers for %s are: %s", item, list(pkg_pn.keys()))
# First add PREFERRED_VERSIONS
for pn in pkg_pn:
@@ -402,7 +402,7 @@ def getRuntimeProviders(dataCache, rdepend):
return rproviders
-def buildWorldTargetList(dataCache):
+def buildWorldTargetList(dataCache, task=None):
"""
Build package list for "bitbake world"
"""
@@ -413,6 +413,9 @@ def buildWorldTargetList(dataCache):
for f in dataCache.possible_world:
terminal = True
pn = dataCache.pkg_fn[f]
+ if task and task not in dataCache.task_deps[f]['tasks']:
+ logger.debug(2, "World build skipping %s as task %s doesn't exist", f, task)
+ terminal = False
for p in dataCache.pn_provides[pn]:
if p.startswith('virtual/'):
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/pysh/builtin.py b/import-layers/yocto-poky/bitbake/lib/bb/pysh/builtin.py
index b748e4a4f..a8814dc33 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/pysh/builtin.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/pysh/builtin.py
@@ -527,7 +527,7 @@ def utility_sed(name, args, interp, env, stdin, stdout, stderr, debugflags):
print interp.log(' '.join([name, str(args), interp['PWD']]) + '\n')
# Scan pattern arguments and append a space if necessary
- for i in xrange(len(args)):
+ for i in range(len(args)):
if not RE_SED.search(args[i]):
continue
args[i] = args[i] + ' '
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/pysh/interp.py b/import-layers/yocto-poky/bitbake/lib/bb/pysh/interp.py
index 25d8c92ec..d14ecf3c6 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/pysh/interp.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/pysh/interp.py
@@ -474,7 +474,7 @@ class Environment:
"""
# Save and remove previous arguments
prevargs = []
- for i in xrange(int(self._env['#'])):
+ for i in range(int(self._env['#'])):
i = str(i+1)
prevargs.append(self._env[i])
del self._env[i]
@@ -488,7 +488,7 @@ class Environment:
return prevargs
def get_positional_args(self):
- return [self._env[str(i+1)] for i in xrange(int(self._env['#']))]
+ return [self._env[str(i+1)] for i in range(int(self._env['#']))]
def get_variables(self):
return dict(self._env)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshlex.py b/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshlex.py
index b30123675..fbf094b7a 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshlex.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshlex.py
@@ -20,7 +20,7 @@ except NameError:
from Set import Set as set
from ply import lex
-from sherrors import *
+from bb.pysh.sherrors import *
class NeedMore(Exception):
pass
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshyacc.py b/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshyacc.py
index e8e80aac4..ba4cefdcb 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshyacc.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/pysh/pyshyacc.py
@@ -10,11 +10,11 @@
import os.path
import sys
-import pyshlex
+import bb.pysh.pyshlex as pyshlex
tokens = pyshlex.tokens
from ply import yacc
-import sherrors
+import bb.pysh.sherrors as sherrors
class IORedirect:
def __init__(self, op, filename, io_number=None):
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/runqueue.py b/import-layers/yocto-poky/bitbake/lib/bb/runqueue.py
index e1b9b2e66..84b268580 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/runqueue.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/runqueue.py
@@ -35,17 +35,44 @@ import bb
from bb import msg, data, event
from bb import monitordisk
import subprocess
-
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+import pickle
bblogger = logging.getLogger("BitBake")
logger = logging.getLogger("BitBake.RunQueue")
__find_md5__ = re.compile( r'(?i)(?<![a-z0-9])[a-f0-9]{32}(?![a-z0-9])' )
+def fn_from_tid(tid):
+ return tid.rsplit(":", 1)[0]
+
+def taskname_from_tid(tid):
+ return tid.rsplit(":", 1)[1]
+
+def split_tid(tid):
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ return (mc, fn, taskname)
+
+def split_tid_mcfn(tid):
+ if tid.startswith('multiconfig:'):
+ elems = tid.split(':')
+ mc = elems[1]
+ fn = ":".join(elems[2:-1])
+ taskname = elems[-1]
+ mcfn = "multiconfig:" + mc + ":" + fn
+ else:
+ tid = tid.rsplit(":", 1)
+ mc = ""
+ fn = tid[0]
+ taskname = tid[1]
+ mcfn = fn
+
+ return (mc, fn, taskname, mcfn)
+
+def build_tid(mc, fn, taskname):
+ if mc:
+ return "multiconfig:" + mc + ":" + fn + ":" + taskname
+ return fn + ":" + taskname
+
class RunQueueStats:
"""
Holds statistics on the tasks handled by the associated runQueue
@@ -101,19 +128,17 @@ class RunQueueScheduler(object):
"""
self.rq = runqueue
self.rqdata = rqdata
- self.numTasks = len(self.rqdata.runq_fnid)
+ self.numTasks = len(self.rqdata.runtaskentries)
- self.prio_map = []
- self.prio_map.extend(range(self.numTasks))
+ self.prio_map = [self.rqdata.runtaskentries.keys()]
self.buildable = []
self.stamps = {}
- for taskid in xrange(self.numTasks):
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[taskid]]
- taskname = self.rqdata.runq_task[taskid]
- self.stamps[taskid] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
- if self.rq.runq_buildable[taskid] == 1:
- self.buildable.append(taskid)
+ for tid in self.rqdata.runtaskentries:
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ self.stamps[tid] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True)
+ if tid in self.rq.runq_buildable:
+ self.buildable.append(tid)
self.rev_prio_map = None
@@ -121,30 +146,30 @@ class RunQueueScheduler(object):
"""
Return the id of the first task we find that is buildable
"""
- self.buildable = [x for x in self.buildable if not self.rq.runq_running[x] == 1]
+ self.buildable = [x for x in self.buildable if x not in self.rq.runq_running]
if not self.buildable:
return None
if len(self.buildable) == 1:
- taskid = self.buildable[0]
- stamp = self.stamps[taskid]
- if stamp not in self.rq.build_stamps.itervalues():
- return taskid
+ tid = self.buildable[0]
+ stamp = self.stamps[tid]
+ if stamp not in self.rq.build_stamps.values():
+ return tid
if not self.rev_prio_map:
- self.rev_prio_map = range(self.numTasks)
- for taskid in xrange(self.numTasks):
- self.rev_prio_map[self.prio_map[taskid]] = taskid
+ self.rev_prio_map = {}
+ for tid in self.rqdata.runtaskentries:
+ self.rev_prio_map[tid] = self.prio_map.index(tid)
best = None
bestprio = None
- for taskid in self.buildable:
- prio = self.rev_prio_map[taskid]
+ for tid in self.buildable:
+ prio = self.rev_prio_map[tid]
if bestprio is None or bestprio > prio:
- stamp = self.stamps[taskid]
- if stamp in self.rq.build_stamps.itervalues():
+ stamp = self.stamps[tid]
+ if stamp in self.rq.build_stamps.values():
continue
bestprio = prio
- best = taskid
+ best = tid
return best
@@ -171,14 +196,17 @@ class RunQueueSchedulerSpeed(RunQueueScheduler):
"""
RunQueueScheduler.__init__(self, runqueue, rqdata)
- sortweight = sorted(copy.deepcopy(self.rqdata.runq_weight))
- copyweight = copy.deepcopy(self.rqdata.runq_weight)
- self.prio_map = []
+ weights = {}
+ for tid in self.rqdata.runtaskentries:
+ weight = self.rqdata.runtaskentries[tid].weight
+ if not weight in weights:
+ weights[weight] = []
+ weights[weight].append(tid)
- for weight in sortweight:
- idx = copyweight.index(weight)
- self.prio_map.append(idx)
- copyweight[idx] = -1
+ self.prio_map = []
+ for weight in sorted(weights):
+ for w in weights[weight]:
+ self.prio_map.append(w)
self.prio_map.reverse()
@@ -195,32 +223,40 @@ class RunQueueSchedulerCompletion(RunQueueSchedulerSpeed):
def __init__(self, runqueue, rqdata):
RunQueueSchedulerSpeed.__init__(self, runqueue, rqdata)
- #FIXME - whilst this groups all fnids together it does not reorder the
- #fnid groups optimally.
+ #FIXME - whilst this groups all fns together it does not reorder the
+ #fn groups optimally.
basemap = copy.deepcopy(self.prio_map)
self.prio_map = []
while (len(basemap) > 0):
entry = basemap.pop(0)
self.prio_map.append(entry)
- fnid = self.rqdata.runq_fnid[entry]
+ fn = fn_from_tid(entry)
todel = []
for entry in basemap:
- entry_fnid = self.rqdata.runq_fnid[entry]
- if entry_fnid == fnid:
+ entry_fn = fn_from_tid(entry)
+ if entry_fn == fn:
todel.append(basemap.index(entry))
self.prio_map.append(entry)
todel.reverse()
for idx in todel:
del basemap[idx]
+class RunTaskEntry(object):
+ def __init__(self):
+ self.depends = set()
+ self.revdeps = set()
+ self.hash = None
+ self.task = None
+ self.weight = 1
+
class RunQueueData:
"""
BitBake Run Queue implementation
"""
- def __init__(self, rq, cooker, cfgData, dataCache, taskData, targets):
+ def __init__(self, rq, cooker, cfgData, dataCaches, taskData, targets):
self.cooker = cooker
- self.dataCache = dataCache
+ self.dataCaches = dataCaches
self.taskData = taskData
self.targets = targets
self.rq = rq
@@ -228,52 +264,36 @@ class RunQueueData:
self.stampwhitelist = cfgData.getVar("BB_STAMP_WHITELIST", True) or ""
self.multi_provider_whitelist = (cfgData.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split()
+ self.setscenewhitelist = get_setscene_enforce_whitelist(cfgData)
+ self.setscenewhitelist_checked = False
+ self.init_progress_reporter = bb.progress.DummyMultiStageProcessProgressReporter()
self.reset()
def reset(self):
- self.runq_fnid = []
- self.runq_task = []
- self.runq_depends = []
- self.runq_revdeps = []
- self.runq_hash = []
+ self.runtaskentries = {}
def runq_depends_names(self, ids):
import re
ret = []
- for id in self.runq_depends[ids]:
- nam = os.path.basename(self.get_user_idstring(id))
+ for id in ids:
+ nam = os.path.basename(id)
nam = re.sub("_[^,]*,", ",", nam)
ret.extend([nam])
return ret
- def get_task_name(self, task):
- return self.runq_task[task]
-
- def get_task_file(self, task):
- return self.taskData.fn_index[self.runq_fnid[task]]
+ def get_task_hash(self, tid):
+ return self.runtaskentries[tid].hash
- def get_task_hash(self, task):
- return self.runq_hash[task]
-
- def get_user_idstring(self, task, task_name_suffix = ""):
- fn = self.taskData.fn_index[self.runq_fnid[task]]
- taskname = self.runq_task[task] + task_name_suffix
- return "%s, %s" % (fn, taskname)
+ def get_user_idstring(self, tid, task_name_suffix = ""):
+ return tid + task_name_suffix
def get_short_user_idstring(self, task, task_name_suffix = ""):
- fn = self.taskData.fn_index[self.runq_fnid[task]]
- pn = self.dataCache.pkg_fn[fn]
- taskname = self.runq_task[task] + task_name_suffix
+ (mc, fn, taskname, _) = split_tid_mcfn(task)
+ pn = self.dataCaches[mc].pkg_fn[fn]
+ taskname = taskname_from_tid(task) + task_name_suffix
return "%s:%s" % (pn, taskname)
-
- def get_task_id(self, fnid, taskname):
- for listid in xrange(len(self.runq_fnid)):
- if self.runq_fnid[listid] == fnid and self.runq_task[listid] == taskname:
- return listid
- return None
-
def circular_depchains_handler(self, tasks):
"""
Some tasks aren't buildable, likely due to circular dependency issues.
@@ -291,7 +311,7 @@ class RunQueueData:
"""
lowest = 0
new_chain = []
- for entry in xrange(len(chain)):
+ for entry in range(len(chain)):
if chain[entry] < chain[lowest]:
lowest = entry
new_chain.extend(chain[lowest:])
@@ -304,7 +324,7 @@ class RunQueueData:
"""
if len(chain1) != len(chain2):
return False
- for index in xrange(len(chain1)):
+ for index in range(len(chain1)):
if chain1[index] != chain2[index]:
return False
return True
@@ -318,11 +338,11 @@ class RunQueueData:
return True
return False
- def find_chains(taskid, prev_chain):
- prev_chain.append(taskid)
+ def find_chains(tid, prev_chain):
+ prev_chain.append(tid)
total_deps = []
- total_deps.extend(self.runq_revdeps[taskid])
- for revdep in self.runq_revdeps[taskid]:
+ total_deps.extend(self.runtaskentries[tid].revdeps)
+ for revdep in self.runtaskentries[tid].revdeps:
if revdep in prev_chain:
idx = prev_chain.index(revdep)
# To prevent duplicates, reorder the chain to start with the lowest taskid
@@ -333,7 +353,7 @@ class RunQueueData:
valid_chains.append(new_chain)
msgs.append("Dependency loop #%d found:\n" % len(valid_chains))
for dep in new_chain:
- msgs.append(" Task %s (%s) (dependent Tasks %s)\n" % (dep, self.get_user_idstring(dep), self.runq_depends_names(dep)))
+ msgs.append(" Task %s (dependent Tasks %s)\n" % (dep, self.runq_depends_names(self.runtaskentries[dep].depends)))
msgs.append("\n")
if len(valid_chains) > 10:
msgs.append("Aborted dependency loops search after 10 matches.\n")
@@ -354,7 +374,7 @@ class RunQueueData:
if dep not in total_deps:
total_deps.append(dep)
- explored_deps[taskid] = total_deps
+ explored_deps[tid] = total_deps
for task in tasks:
find_chains(task, [])
@@ -370,25 +390,25 @@ class RunQueueData:
possible to execute due to circular dependencies.
"""
- numTasks = len(self.runq_fnid)
- weight = []
- deps_left = []
- task_done = []
+ numTasks = len(self.runtaskentries)
+ weight = {}
+ deps_left = {}
+ task_done = {}
- for listid in xrange(numTasks):
- task_done.append(False)
- weight.append(1)
- deps_left.append(len(self.runq_revdeps[listid]))
+ for tid in self.runtaskentries:
+ task_done[tid] = False
+ weight[tid] = 1
+ deps_left[tid] = len(self.runtaskentries[tid].revdeps)
- for listid in endpoints:
- weight[listid] = 10
- task_done[listid] = True
+ for tid in endpoints:
+ weight[tid] = 10
+ task_done[tid] = True
while True:
next_points = []
- for listid in endpoints:
- for revdep in self.runq_depends[listid]:
- weight[revdep] = weight[revdep] + weight[listid]
+ for tid in endpoints:
+ for revdep in self.runtaskentries[tid].depends:
+ weight[revdep] = weight[revdep] + weight[tid]
deps_left[revdep] = deps_left[revdep] - 1
if deps_left[revdep] == 0:
next_points.append(revdep)
@@ -399,14 +419,15 @@ class RunQueueData:
# Circular dependency sanity check
problem_tasks = []
- for task in xrange(numTasks):
- if task_done[task] is False or deps_left[task] != 0:
- problem_tasks.append(task)
- logger.debug(2, "Task %s (%s) is not buildable", task, self.get_user_idstring(task))
- logger.debug(2, "(Complete marker was %s and the remaining dependency count was %s)\n", task_done[task], deps_left[task])
+ for tid in self.runtaskentries:
+ if task_done[tid] is False or deps_left[tid] != 0:
+ problem_tasks.append(tid)
+ logger.debug(2, "Task %s is not buildable", tid)
+ logger.debug(2, "(Complete marker was %s and the remaining dependency count was %s)\n", task_done[tid], deps_left[tid])
+ self.runtaskentries[tid].weight = weight[tid]
if problem_tasks:
- message = "Unbuildable tasks were found.\n"
+ message = "%s unbuildable tasks were found.\n" % len(problem_tasks)
message = message + "These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.\n\n"
message = message + "Identifying dependency loops (this may take a short while)...\n"
logger.error(message)
@@ -426,18 +447,24 @@ class RunQueueData:
to optimise the execution order.
"""
- runq_build = []
+ runq_build = {}
recursivetasks = {}
recursiveitasks = {}
recursivetasksselfref = set()
taskData = self.taskData
- if len(taskData.tasks_name) == 0:
+ found = False
+ for mc in self.taskData:
+ if len(taskData[mc].taskentries) > 0:
+ found = True
+ break
+ if not found:
# Nothing to do
return 0
- logger.info("Preparing RunQueue")
+ self.init_progress_reporter.start()
+ self.init_progress_reporter.next_stage()
# Step A - Work out a list of tasks to run
#
@@ -450,161 +477,173 @@ class RunQueueData:
# process is repeated for each type of dependency (tdepends, deptask,
# rdeptast, recrdeptask, idepends).
- def add_build_dependencies(depids, tasknames, depends):
- for depid in depids:
+ def add_build_dependencies(depids, tasknames, depends, mc):
+ for depname in depids:
# Won't be in build_targets if ASSUME_PROVIDED
- if depid not in taskData.build_targets:
+ if depname not in taskData[mc].build_targets or not taskData[mc].build_targets[depname]:
continue
- depdata = taskData.build_targets[depid][0]
+ depdata = taskData[mc].build_targets[depname][0]
if depdata is None:
continue
for taskname in tasknames:
- taskid = taskData.gettask_id_fromfnid(depdata, taskname)
- if taskid is not None:
- depends.add(taskid)
+ t = depdata + ":" + taskname
+ if t in taskData[mc].taskentries:
+ depends.add(t)
- def add_runtime_dependencies(depids, tasknames, depends):
- for depid in depids:
- if depid not in taskData.run_targets:
+ def add_runtime_dependencies(depids, tasknames, depends, mc):
+ for depname in depids:
+ if depname not in taskData[mc].run_targets or not taskData[mc].run_targets[depname]:
continue
- depdata = taskData.run_targets[depid][0]
+ depdata = taskData[mc].run_targets[depname][0]
if depdata is None:
continue
for taskname in tasknames:
- taskid = taskData.gettask_id_fromfnid(depdata, taskname)
- if taskid is not None:
- depends.add(taskid)
+ t = depdata + ":" + taskname
+ if t in taskData[mc].taskentries:
+ depends.add(t)
- def add_resolved_dependencies(depids, tasknames, depends):
- for depid in depids:
- for taskname in tasknames:
- taskid = taskData.gettask_id_fromfnid(depid, taskname)
- if taskid is not None:
- depends.add(taskid)
+ def add_resolved_dependencies(mc, fn, tasknames, depends):
+ for taskname in tasknames:
+ tid = build_tid(mc, fn, taskname)
+ if tid in self.runtaskentries:
+ depends.add(tid)
- for task in xrange(len(taskData.tasks_name)):
- depends = set()
- fnid = taskData.tasks_fnid[task]
- fn = taskData.fn_index[fnid]
- task_deps = self.dataCache.task_deps[fn]
+ for mc in taskData:
+ for tid in taskData[mc].taskentries:
- #logger.debug(2, "Processing %s:%s", fn, taskData.tasks_name[task])
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ #runtid = build_tid(mc, fn, taskname)
- if fnid not in taskData.failed_fnids:
+ #logger.debug(2, "Processing %s,%s:%s", mc, fn, taskname)
+
+ depends = set()
+ task_deps = self.dataCaches[mc].task_deps[taskfn]
+
+ self.runtaskentries[tid] = RunTaskEntry()
+
+ if fn in taskData[mc].failed_fns:
+ continue
# Resolve task internal dependencies
#
# e.g. addtask before X after Y
- depends = set(taskData.tasks_tdepends[task])
+ for t in taskData[mc].taskentries[tid].tdepends:
+ (_, depfn, deptaskname, _) = split_tid_mcfn(t)
+ depends.add(build_tid(mc, depfn, deptaskname))
# Resolve 'deptask' dependencies
#
# e.g. do_sometask[deptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all DEPENDS)
- if 'deptask' in task_deps and taskData.tasks_name[task] in task_deps['deptask']:
- tasknames = task_deps['deptask'][taskData.tasks_name[task]].split()
- add_build_dependencies(taskData.depids[fnid], tasknames, depends)
+ if 'deptask' in task_deps and taskname in task_deps['deptask']:
+ tasknames = task_deps['deptask'][taskname].split()
+ add_build_dependencies(taskData[mc].depids[taskfn], tasknames, depends, mc)
# Resolve 'rdeptask' dependencies
#
# e.g. do_sometask[rdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all RDEPENDS)
- if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']:
- tasknames = task_deps['rdeptask'][taskData.tasks_name[task]].split()
- add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
+ if 'rdeptask' in task_deps and taskname in task_deps['rdeptask']:
+ tasknames = task_deps['rdeptask'][taskname].split()
+ add_runtime_dependencies(taskData[mc].rdepids[taskfn], tasknames, depends, mc)
# Resolve inter-task dependencies
#
# e.g. do_sometask[depends] = "targetname:do_someothertask"
# (makes sure sometask runs after targetname's someothertask)
- idepends = taskData.tasks_idepends[task]
- for (depid, idependtask) in idepends:
- if depid in taskData.build_targets and not depid in taskData.failed_deps:
+ idepends = taskData[mc].taskentries[tid].idepends
+ for (depname, idependtask) in idepends:
+ if depname in taskData[mc].build_targets and taskData[mc].build_targets[depname] and not depname in taskData[mc].failed_deps:
# Won't be in build_targets if ASSUME_PROVIDED
- depdata = taskData.build_targets[depid][0]
+ depdata = taskData[mc].build_targets[depname][0]
if depdata is not None:
- taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
- if taskid is None:
- bb.msg.fatal("RunQueue", "Task %s in %s depends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, taskData.fn_index[depdata]))
- depends.add(taskid)
- irdepends = taskData.tasks_irdepends[task]
- for (depid, idependtask) in irdepends:
- if depid in taskData.run_targets:
+ t = depdata + ":" + idependtask
+ depends.add(t)
+ if t not in taskData[mc].taskentries:
+ bb.msg.fatal("RunQueue", "Task %s in %s depends upon non-existent task %s in %s" % (taskname, fn, idependtask, depdata))
+ irdepends = taskData[mc].taskentries[tid].irdepends
+ for (depname, idependtask) in irdepends:
+ if depname in taskData[mc].run_targets:
# Won't be in run_targets if ASSUME_PROVIDED
- depdata = taskData.run_targets[depid][0]
+ depdata = taskData[mc].run_targets[depname][0]
if depdata is not None:
- taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
- if taskid is None:
- bb.msg.fatal("RunQueue", "Task %s in %s rdepends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, taskData.fn_index[depdata]))
- depends.add(taskid)
+ t = depdata + ":" + idependtask
+ depends.add(t)
+ if t not in taskData[mc].taskentries:
+ bb.msg.fatal("RunQueue", "Task %s in %s rdepends upon non-existent task %s in %s" % (taskname, fn, idependtask, depdata))
# Resolve recursive 'recrdeptask' dependencies (Part A)
#
# e.g. do_sometask[recrdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively)
# We cover the recursive part of the dependencies below
- if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
- tasknames = task_deps['recrdeptask'][taskData.tasks_name[task]].split()
- recursivetasks[task] = tasknames
- add_build_dependencies(taskData.depids[fnid], tasknames, depends)
- add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
- if taskData.tasks_name[task] in tasknames:
- recursivetasksselfref.add(task)
-
- if 'recideptask' in task_deps and taskData.tasks_name[task] in task_deps['recideptask']:
- recursiveitasks[task] = []
- for t in task_deps['recideptask'][taskData.tasks_name[task]].split():
- newdep = taskData.gettask_id_fromfnid(fnid, t)
- recursiveitasks[task].append(newdep)
-
- self.runq_fnid.append(taskData.tasks_fnid[task])
- self.runq_task.append(taskData.tasks_name[task])
- self.runq_depends.append(depends)
- self.runq_revdeps.append(set())
- self.runq_hash.append("")
-
- runq_build.append(0)
+ if 'recrdeptask' in task_deps and taskname in task_deps['recrdeptask']:
+ tasknames = task_deps['recrdeptask'][taskname].split()
+ recursivetasks[tid] = tasknames
+ add_build_dependencies(taskData[mc].depids[taskfn], tasknames, depends, mc)
+ add_runtime_dependencies(taskData[mc].rdepids[taskfn], tasknames, depends, mc)
+ if taskname in tasknames:
+ recursivetasksselfref.add(tid)
+
+ if 'recideptask' in task_deps and taskname in task_deps['recideptask']:
+ recursiveitasks[tid] = []
+ for t in task_deps['recideptask'][taskname].split():
+ newdep = build_tid(mc, fn, t)
+ recursiveitasks[tid].append(newdep)
+
+ self.runtaskentries[tid].depends = depends
+
+ #self.dump_data()
# Resolve recursive 'recrdeptask' dependencies (Part B)
#
# e.g. do_sometask[recrdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively)
- # We need to do this separately since we need all of self.runq_depends to be complete before this is processed
+ # We need to do this separately since we need all of runtaskentries[*].depends to be complete before this is processed
+ self.init_progress_reporter.next_stage(len(recursivetasks))
extradeps = {}
- for task in recursivetasks:
- extradeps[task] = set(self.runq_depends[task])
- tasknames = recursivetasks[task]
+ for taskcounter, tid in enumerate(recursivetasks):
+ extradeps[tid] = set(self.runtaskentries[tid].depends)
+
+ tasknames = recursivetasks[tid]
seendeps = set()
- seenfnid = []
def generate_recdeps(t):
newdeps = set()
- add_resolved_dependencies([taskData.tasks_fnid[t]], tasknames, newdeps)
- extradeps[task].update(newdeps)
+ (mc, fn, taskname, _) = split_tid_mcfn(t)
+ add_resolved_dependencies(mc, fn, tasknames, newdeps)
+ extradeps[tid].update(newdeps)
seendeps.add(t)
newdeps.add(t)
for i in newdeps:
- for n in self.runq_depends[i]:
+ task = self.runtaskentries[i].task
+ for n in self.runtaskentries[i].depends:
if n not in seendeps:
- generate_recdeps(n)
- generate_recdeps(task)
+ generate_recdeps(n)
+ generate_recdeps(tid)
- if task in recursiveitasks:
- for dep in recursiveitasks[task]:
+ if tid in recursiveitasks:
+ for dep in recursiveitasks[tid]:
generate_recdeps(dep)
+ self.init_progress_reporter.update(taskcounter)
# Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
- for task in recursivetasks:
- extradeps[task].difference_update(recursivetasksselfref)
+ for tid in recursivetasks:
+ extradeps[tid].difference_update(recursivetasksselfref)
- for task in xrange(len(taskData.tasks_name)):
+ for tid in self.runtaskentries:
+ task = self.runtaskentries[tid].task
# Add in extra dependencies
- if task in extradeps:
- self.runq_depends[task] = extradeps[task]
+ if tid in extradeps:
+ self.runtaskentries[tid].depends = extradeps[tid]
# Remove all self references
- if task in self.runq_depends[task]:
- logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], self.runq_depends[task])
- self.runq_depends[task].remove(task)
+ if tid in self.runtaskentries[tid].depends:
+ logger.debug(2, "Task %s contains self reference!", tid)
+ self.runtaskentries[tid].depends.remove(tid)
+
+ self.init_progress_reporter.next_stage()
+
+ #self.dump_data()
# Step B - Mark all active tasks
#
@@ -614,148 +653,146 @@ class RunQueueData:
logger.verbose("Marking Active Tasks")
- def mark_active(listid, depth):
+ def mark_active(tid, depth):
"""
Mark an item as active along with its depends
(calls itself recursively)
"""
- if runq_build[listid] == 1:
+ if tid in runq_build:
return
- runq_build[listid] = 1
+ runq_build[tid] = 1
- depends = self.runq_depends[listid]
+ depends = self.runtaskentries[tid].depends
for depend in depends:
mark_active(depend, depth+1)
- self.target_pairs = []
- for target in self.targets:
- targetid = taskData.getbuild_id(target[0])
+ self.target_tids = []
+ for (mc, target, task, fn) in self.targets:
- if targetid not in taskData.build_targets:
+ if target not in taskData[mc].build_targets or not taskData[mc].build_targets[target]:
continue
- if targetid in taskData.failed_deps:
+ if target in taskData[mc].failed_deps:
continue
- fnid = taskData.build_targets[targetid][0]
- fn = taskData.fn_index[fnid]
- task = target[1]
parents = False
if task.endswith('-'):
parents = True
task = task[:-1]
- self.target_pairs.append((fn, task))
-
- if fnid in taskData.failed_fnids:
+ if fn in taskData[mc].failed_fns:
continue
- if task not in taskData.tasks_lookup[fnid]:
+ # fn already has mc prefix
+ tid = fn + ":" + task
+ self.target_tids.append(tid)
+ if tid not in taskData[mc].taskentries:
import difflib
- close_matches = difflib.get_close_matches(task, taskData.tasks_lookup[fnid], cutoff=0.7)
+ tasks = []
+ for x in taskData[mc].taskentries:
+ if x.startswith(fn + ":"):
+ tasks.append(taskname_from_tid(x))
+ close_matches = difflib.get_close_matches(task, tasks, cutoff=0.7)
if close_matches:
extra = ". Close matches:\n %s" % "\n ".join(close_matches)
else:
extra = ""
- bb.msg.fatal("RunQueue", "Task %s does not exist for target %s%s" % (task, target[0], extra))
-
+ bb.msg.fatal("RunQueue", "Task %s does not exist for target %s (%s)%s" % (task, target, tid, extra))
+
# For tasks called "XXXX-", ony run their dependencies
- listid = taskData.tasks_lookup[fnid][task]
if parents:
- for i in self.runq_depends[listid]:
+ for i in self.runtaskentries[tid].depends:
mark_active(i, 1)
else:
- mark_active(listid, 1)
+ mark_active(tid, 1)
+
+ self.init_progress_reporter.next_stage()
# Step C - Prune all inactive tasks
#
# Once all active tasks are marked, prune the ones we don't need.
- maps = []
delcount = 0
- for listid in xrange(len(self.runq_fnid)):
- if runq_build[listid-delcount] == 1:
- maps.append(listid-delcount)
- else:
- del self.runq_fnid[listid-delcount]
- del self.runq_task[listid-delcount]
- del self.runq_depends[listid-delcount]
- del runq_build[listid-delcount]
- del self.runq_revdeps[listid-delcount]
- del self.runq_hash[listid-delcount]
- delcount = delcount + 1
- maps.append(-1)
+ for tid in list(self.runtaskentries.keys()):
+ if tid not in runq_build:
+ del self.runtaskentries[tid]
+ delcount += 1
+
+ self.init_progress_reporter.next_stage()
#
# Step D - Sanity checks and computation
#
# Check to make sure we still have tasks to run
- if len(self.runq_fnid) == 0:
- if not taskData.abort:
+ if len(self.runtaskentries) == 0:
+ if not taskData[''].abort:
bb.msg.fatal("RunQueue", "All buildable tasks have been run but the build is incomplete (--continue mode). Errors for the tasks that failed will have been printed above.")
else:
bb.msg.fatal("RunQueue", "No active tasks and not in --continue mode?! Please report this bug.")
- logger.verbose("Pruned %s inactive tasks, %s left", delcount, len(self.runq_fnid))
-
- # Remap the dependencies to account for the deleted tasks
- # Check we didn't delete a task we depend on
- for listid in xrange(len(self.runq_fnid)):
- newdeps = []
- origdeps = self.runq_depends[listid]
- for origdep in origdeps:
- if maps[origdep] == -1:
- bb.msg.fatal("RunQueue", "Invalid mapping - Should never happen!")
- newdeps.append(maps[origdep])
- self.runq_depends[listid] = set(newdeps)
+ logger.verbose("Pruned %s inactive tasks, %s left", delcount, len(self.runtaskentries))
logger.verbose("Assign Weightings")
+ self.init_progress_reporter.next_stage()
+
# Generate a list of reverse dependencies to ease future calculations
- for listid in xrange(len(self.runq_fnid)):
- for dep in self.runq_depends[listid]:
- self.runq_revdeps[dep].add(listid)
+ for tid in self.runtaskentries:
+ for dep in self.runtaskentries[tid].depends:
+ self.runtaskentries[dep].revdeps.add(tid)
+
+ self.init_progress_reporter.next_stage()
# Identify tasks at the end of dependency chains
# Error on circular dependency loops (length two)
endpoints = []
- for listid in xrange(len(self.runq_fnid)):
- revdeps = self.runq_revdeps[listid]
+ for tid in self.runtaskentries:
+ revdeps = self.runtaskentries[tid].revdeps
if len(revdeps) == 0:
- endpoints.append(listid)
+ endpoints.append(tid)
for dep in revdeps:
- if dep in self.runq_depends[listid]:
- #self.dump_data(taskData)
- bb.msg.fatal("RunQueue", "Task %s (%s) has circular dependency on %s (%s)" % (taskData.fn_index[self.runq_fnid[dep]], self.runq_task[dep], taskData.fn_index[self.runq_fnid[listid]], self.runq_task[listid]))
+ if dep in self.runtaskentries[tid].depends:
+ bb.msg.fatal("RunQueue", "Task %s has circular dependency on %s" % (tid, dep))
+
logger.verbose("Compute totals (have %s endpoint(s))", len(endpoints))
+ self.init_progress_reporter.next_stage()
+
# Calculate task weights
# Check of higher length circular dependencies
self.runq_weight = self.calculate_task_weights(endpoints)
+ self.init_progress_reporter.next_stage()
+
# Sanity Check - Check for multiple tasks building the same provider
- prov_list = {}
- seen_fn = []
- for task in xrange(len(self.runq_fnid)):
- fn = taskData.fn_index[self.runq_fnid[task]]
- if fn in seen_fn:
- continue
- seen_fn.append(fn)
- for prov in self.dataCache.fn_provides[fn]:
- if prov not in prov_list:
- prov_list[prov] = [fn]
- elif fn not in prov_list[prov]:
- prov_list[prov].append(fn)
- for prov in prov_list:
- if len(prov_list[prov]) > 1 and prov not in self.multi_provider_whitelist:
+ for mc in self.dataCaches:
+ prov_list = {}
+ seen_fn = []
+ for tid in self.runtaskentries:
+ (tidmc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ if taskfn in seen_fn:
+ continue
+ if mc != tidmc:
+ continue
+ seen_fn.append(taskfn)
+ for prov in self.dataCaches[mc].fn_provides[taskfn]:
+ if prov not in prov_list:
+ prov_list[prov] = [taskfn]
+ elif taskfn not in prov_list[prov]:
+ prov_list[prov].append(taskfn)
+ for prov in prov_list:
+ if len(prov_list[prov]) < 2:
+ continue
+ if prov in self.multi_provider_whitelist:
+ continue
seen_pn = []
# If two versions of the same PN are being built its fatal, we don't support it.
for fn in prov_list[prov]:
- pn = self.dataCache.pkg_fn[fn]
+ pn = self.dataCaches[mc].pkg_fn[fn]
if pn not in seen_pn:
seen_pn.append(pn)
else:
@@ -770,15 +807,15 @@ class RunQueueData:
commondeps = None
for provfn in prov_list[prov]:
deps = set()
- for task, fnid in enumerate(self.runq_fnid):
- fn = taskData.fn_index[fnid]
+ for tid in self.runtaskentries:
+ fn = fn_from_tid(tid)
if fn != provfn:
continue
- for dep in self.runq_revdeps[task]:
- fn = taskData.fn_index[self.runq_fnid[dep]]
+ for dep in self.runtaskentries[tid].revdeps:
+ fn = fn_from_tid(dep)
if fn == provfn:
continue
- deps.add(self.get_short_user_idstring(dep))
+ deps.add(dep)
if not commondeps:
commondeps = set(deps)
else:
@@ -796,16 +833,16 @@ class RunQueueData:
commonprovs = None
commonrprovs = None
for provfn in prov_list[prov]:
- provides = set(self.dataCache.fn_provides[provfn])
+ provides = set(self.dataCaches[mc].fn_provides[provfn])
rprovides = set()
- for rprovide in self.dataCache.rproviders:
- if provfn in self.dataCache.rproviders[rprovide]:
+ for rprovide in self.dataCaches[mc].rproviders:
+ if provfn in self.dataCaches[mc].rproviders[rprovide]:
rprovides.add(rprovide)
- for package in self.dataCache.packages:
- if provfn in self.dataCache.packages[package]:
+ for package in self.dataCaches[mc].packages:
+ if provfn in self.dataCaches[mc].packages[package]:
rprovides.add(package)
- for package in self.dataCache.packages_dynamic:
- if provfn in self.dataCache.packages_dynamic[package]:
+ for package in self.dataCaches[mc].packages_dynamic:
+ if provfn in self.dataCaches[mc].packages_dynamic[package]:
rprovides.add(package)
if not commonprovs:
commonprovs = set(provides)
@@ -824,35 +861,39 @@ class RunQueueData:
msg += "\n%s has unique rprovides:\n %s" % (provfn, "\n ".join(rprovide_results[provfn] - commonrprovs))
if self.warn_multi_bb:
- logger.warn(msg)
+ logger.warning(msg)
else:
logger.error(msg)
+ self.init_progress_reporter.next_stage()
+
# Create a whitelist usable by the stamp checks
- stampfnwhitelist = []
- for entry in self.stampwhitelist.split():
- entryid = self.taskData.getbuild_id(entry)
- if entryid not in self.taskData.build_targets:
- continue
- fnid = self.taskData.build_targets[entryid][0]
- fn = self.taskData.fn_index[fnid]
- stampfnwhitelist.append(fn)
- self.stampfnwhitelist = stampfnwhitelist
+ self.stampfnwhitelist = {}
+ for mc in self.taskData:
+ self.stampfnwhitelist[mc] = []
+ for entry in self.stampwhitelist.split():
+ if entry not in self.taskData[mc].build_targets:
+ continue
+ fn = self.taskData.build_targets[entry][0]
+ self.stampfnwhitelist[mc].append(fn)
+
+ self.init_progress_reporter.next_stage()
# Iterate over the task list looking for tasks with a 'setscene' function
- self.runq_setscene = []
+ self.runq_setscene_tids = []
if not self.cooker.configuration.nosetscene:
- for task in range(len(self.runq_fnid)):
- setscene = taskData.gettask_id(self.taskData.fn_index[self.runq_fnid[task]], self.runq_task[task] + "_setscene", False)
- if not setscene:
+ for tid in self.runtaskentries:
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ setscenetid = fn + ":" + taskname + "_setscene"
+ if setscenetid not in taskData[mc].taskentries:
continue
- self.runq_setscene.append(task)
+ self.runq_setscene_tids.append(tid)
- def invalidate_task(fn, taskname, error_nostamp):
- taskdep = self.dataCache.task_deps[fn]
- fnid = self.taskData.getfn_id(fn)
- if taskname not in taskData.tasks_lookup[fnid]:
- logger.warn("Task %s does not exist, invalidating this task will have no effect" % taskname)
+ def invalidate_task(tid, error_nostamp):
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ taskdep = self.dataCaches[mc].task_deps[fn]
+ if fn + ":" + taskname not in taskData[mc].taskentries:
+ logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname)
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
if error_nostamp:
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
@@ -860,80 +901,84 @@ class RunQueueData:
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
logger.verbose("Invalidate task %s, %s", taskname, fn)
- bb.parse.siggen.invalidate_task(taskname, self.dataCache, fn)
+ bb.parse.siggen.invalidate_task(taskname, self.dataCaches[mc], fn)
+
+ self.init_progress_reporter.next_stage()
# Invalidate task if force mode active
if self.cooker.configuration.force:
- for (fn, target) in self.target_pairs:
- invalidate_task(fn, target, False)
+ for tid in self.target_tids:
+ invalidate_task(tid, False)
# Invalidate task if invalidate mode active
if self.cooker.configuration.invalidate_stamp:
- for (fn, target) in self.target_pairs:
+ for tid in self.target_tids:
+ fn = fn_from_tid(tid)
for st in self.cooker.configuration.invalidate_stamp.split(','):
if not st.startswith("do_"):
st = "do_%s" % st
- invalidate_task(fn, st, True)
+ invalidate_task(fn + ":" + st, True)
+
+ self.init_progress_reporter.next_stage()
# Create and print to the logs a virtual/xxxx -> PN (fn) table
- virtmap = taskData.get_providermap(prefix="virtual/")
- virtpnmap = {}
- for v in virtmap:
- virtpnmap[v] = self.dataCache.pkg_fn[virtmap[v]]
- bb.debug(2, "%s resolved to: %s (%s)" % (v, virtpnmap[v], virtmap[v]))
- if hasattr(bb.parse.siggen, "tasks_resolved"):
- bb.parse.siggen.tasks_resolved(virtmap, virtpnmap, self.dataCache)
+ for mc in taskData:
+ virtmap = taskData[mc].get_providermap(prefix="virtual/")
+ virtpnmap = {}
+ for v in virtmap:
+ virtpnmap[v] = self.dataCaches[mc].pkg_fn[virtmap[v]]
+ bb.debug(2, "%s resolved to: %s (%s)" % (v, virtpnmap[v], virtmap[v]))
+ if hasattr(bb.parse.siggen, "tasks_resolved"):
+ bb.parse.siggen.tasks_resolved(virtmap, virtpnmap, self.dataCaches[mc])
+
+ self.init_progress_reporter.next_stage()
# Iterate over the task list and call into the siggen code
dealtwith = set()
- todeal = set(range(len(self.runq_fnid)))
+ todeal = set(self.runtaskentries)
while len(todeal) > 0:
- for task in todeal.copy():
- if len(self.runq_depends[task] - dealtwith) == 0:
- dealtwith.add(task)
- todeal.remove(task)
+ for tid in todeal.copy():
+ if len(self.runtaskentries[tid].depends - dealtwith) == 0:
+ dealtwith.add(tid)
+ todeal.remove(tid)
procdep = []
- for dep in self.runq_depends[task]:
- procdep.append(self.taskData.fn_index[self.runq_fnid[dep]] + "." + self.runq_task[dep])
- self.runq_hash[task] = bb.parse.siggen.get_taskhash(self.taskData.fn_index[self.runq_fnid[task]], self.runq_task[task], procdep, self.dataCache)
+ for dep in self.runtaskentries[tid].depends:
+ procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep))
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc])
+ task = self.runtaskentries[tid].task
bb.parse.siggen.writeout_file_checksum_cache()
- return len(self.runq_fnid)
- def dump_data(self, taskQueue):
+ #self.dump_data()
+ return len(self.runtaskentries)
+
+ def dump_data(self):
"""
Dump some debug information on the internal data structures
"""
logger.debug(3, "run_tasks:")
- for task in xrange(len(self.rqdata.runq_task)):
- logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task,
- taskQueue.fn_index[self.rqdata.runq_fnid[task]],
- self.rqdata.runq_task[task],
- self.rqdata.runq_weight[task],
- self.rqdata.runq_depends[task],
- self.rqdata.runq_revdeps[task])
-
- logger.debug(3, "sorted_tasks:")
- for task1 in xrange(len(self.rqdata.runq_task)):
- if task1 in self.prio_map:
- task = self.prio_map[task1]
- logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task,
- taskQueue.fn_index[self.rqdata.runq_fnid[task]],
- self.rqdata.runq_task[task],
- self.rqdata.runq_weight[task],
- self.rqdata.runq_depends[task],
- self.rqdata.runq_revdeps[task])
+ for tid in self.runtaskentries:
+ logger.debug(3, " %s: %s Deps %s RevDeps %s", tid,
+ self.runtaskentries[tid].weight,
+ self.runtaskentries[tid].depends,
+ self.runtaskentries[tid].revdeps)
+
+class RunQueueWorker():
+ def __init__(self, process, pipe):
+ self.process = process
+ self.pipe = pipe
class RunQueue:
- def __init__(self, cooker, cfgData, dataCache, taskData, targets):
+ def __init__(self, cooker, cfgData, dataCaches, taskData, targets):
self.cooker = cooker
self.cfgData = cfgData
- self.rqdata = RunQueueData(self, cooker, cfgData, dataCache, taskData, targets)
+ self.rqdata = RunQueueData(self, cooker, cfgData, dataCaches, taskData, targets)
self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY", True) or "perfile"
self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION", True) or None
- self.setsceneverify = cfgData.getVar("BB_SETSCENE_VERIFY_FUNCTION", True) or None
+ self.setsceneverify = cfgData.getVar("BB_SETSCENE_VERIFY_FUNCTION2", True) or None
self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID", True) or None
self.state = runQueuePrepare
@@ -942,12 +987,10 @@ class RunQueue:
self.dm = monitordisk.diskMonitor(cfgData)
self.rqexe = None
- self.worker = None
- self.workerpipe = None
- self.fakeworker = None
- self.fakeworkerpipe = None
+ self.worker = {}
+ self.fakeworker = {}
- def _start_worker(self, fakeroot = False, rqexec = None):
+ def _start_worker(self, mc, fakeroot = False, rqexec = None):
logger.debug(1, "Starting bitbake-worker")
magic = "decafbad"
if self.cooker.configuration.profile:
@@ -965,13 +1008,17 @@ class RunQueue:
bb.utils.nonblockingfd(worker.stdout)
workerpipe = runQueuePipe(worker.stdout, None, self.cfgData, self, rqexec)
+ runqhash = {}
+ for tid in self.rqdata.runtaskentries:
+ runqhash[tid] = self.rqdata.runtaskentries[tid].hash
+
workerdata = {
- "taskdeps" : self.rqdata.dataCache.task_deps,
- "fakerootenv" : self.rqdata.dataCache.fakerootenv,
- "fakerootdirs" : self.rqdata.dataCache.fakerootdirs,
- "fakerootnoenv" : self.rqdata.dataCache.fakerootnoenv,
+ "taskdeps" : self.rqdata.dataCaches[mc].task_deps,
+ "fakerootenv" : self.rqdata.dataCaches[mc].fakerootenv,
+ "fakerootdirs" : self.rqdata.dataCaches[mc].fakerootdirs,
+ "fakerootnoenv" : self.rqdata.dataCaches[mc].fakerootnoenv,
"sigdata" : bb.parse.siggen.get_taskdata(),
- "runq_hash" : self.rqdata.runq_hash,
+ "runq_hash" : runqhash,
"logdefaultdebug" : bb.msg.loggerDefaultDebugLevel,
"logdefaultverbose" : bb.msg.loggerDefaultVerbose,
"logdefaultverboselogs" : bb.msg.loggerVerboseLogs,
@@ -982,61 +1029,65 @@ class RunQueue:
"time" : self.cfgData.getVar("TIME", True),
}
- worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>")
- worker.stdin.write("<workerdata>" + pickle.dumps(workerdata) + "</workerdata>")
+ worker.stdin.write(b"<cookerconfig>" + pickle.dumps(self.cooker.configuration) + b"</cookerconfig>")
+ worker.stdin.write(b"<workerdata>" + pickle.dumps(workerdata) + b"</workerdata>")
worker.stdin.flush()
- return worker, workerpipe
+ return RunQueueWorker(worker, workerpipe)
- def _teardown_worker(self, worker, workerpipe):
+ def _teardown_worker(self, worker):
if not worker:
return
logger.debug(1, "Teardown for bitbake-worker")
try:
- worker.stdin.write("<quit></quit>")
- worker.stdin.flush()
+ worker.process.stdin.write(b"<quit></quit>")
+ worker.process.stdin.flush()
+ worker.process.stdin.close()
except IOError:
pass
- while worker.returncode is None:
- workerpipe.read()
- worker.poll()
- while workerpipe.read():
+ while worker.process.returncode is None:
+ worker.pipe.read()
+ worker.process.poll()
+ while worker.pipe.read():
continue
- workerpipe.close()
+ worker.pipe.close()
def start_worker(self):
if self.worker:
self.teardown_workers()
self.teardown = False
- self.worker, self.workerpipe = self._start_worker()
+ for mc in self.rqdata.dataCaches:
+ self.worker[mc] = self._start_worker(mc)
def start_fakeworker(self, rqexec):
if not self.fakeworker:
- self.fakeworker, self.fakeworkerpipe = self._start_worker(True, rqexec)
+ for mc in self.rqdata.dataCaches:
+ self.fakeworker[mc] = self._start_worker(mc, True, rqexec)
def teardown_workers(self):
self.teardown = True
- self._teardown_worker(self.worker, self.workerpipe)
- self.worker = None
- self.workerpipe = None
- self._teardown_worker(self.fakeworker, self.fakeworkerpipe)
- self.fakeworker = None
- self.fakeworkerpipe = None
+ for mc in self.worker:
+ self._teardown_worker(self.worker[mc])
+ self.worker = {}
+ for mc in self.fakeworker:
+ self._teardown_worker(self.fakeworker[mc])
+ self.fakeworker = {}
def read_workers(self):
- self.workerpipe.read()
- if self.fakeworkerpipe:
- self.fakeworkerpipe.read()
+ for mc in self.worker:
+ self.worker[mc].pipe.read()
+ for mc in self.fakeworker:
+ self.fakeworker[mc].pipe.read()
def active_fds(self):
fds = []
- if self.workerpipe:
- fds.append(self.workerpipe.input)
- if self.fakeworkerpipe:
- fds.append(self.fakeworkerpipe.input)
+ for mc in self.worker:
+ fds.append(self.worker[mc].pipe.input)
+ for mc in self.fakeworker:
+ fds.append(self.fakeworker[mc].pipe.input)
return fds
- def check_stamp_task(self, task, taskname = None, recurse = False, cache = None):
+ def check_stamp_task(self, tid, taskname = None, recurse = False, cache = None):
def get_timestamp(f):
try:
if not os.access(f, os.F_OK):
@@ -1045,26 +1096,26 @@ class RunQueue:
except:
return None
+ (mc, fn, tn, taskfn) = split_tid_mcfn(tid)
+ if taskname is None:
+ taskname = tn
+
if self.stamppolicy == "perfile":
fulldeptree = False
else:
fulldeptree = True
stampwhitelist = []
if self.stamppolicy == "whitelist":
- stampwhitelist = self.rqdata.stampfnwhitelist
-
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- if taskname is None:
- taskname = self.rqdata.runq_task[task]
+ stampwhitelist = self.rqdata.stampfnwhitelist[mc]
- stampfile = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
+ stampfile = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn)
# If the stamp is missing, it's not current
if not os.access(stampfile, os.F_OK):
logger.debug(2, "Stampfile %s not available", stampfile)
return False
# If it's a 'nostamp' task, it's not current
- taskdep = self.rqdata.dataCache.task_deps[fn]
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
logger.debug(2, "%s.%s is nostamp\n", fn, taskname)
return False
@@ -1077,23 +1128,26 @@ class RunQueue:
iscurrent = True
t1 = get_timestamp(stampfile)
- for dep in self.rqdata.runq_depends[task]:
+ for dep in self.rqdata.runtaskentries[tid].depends:
if iscurrent:
- fn2 = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[dep]]
- taskname2 = self.rqdata.runq_task[dep]
- stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCache, fn2)
- stampfile3 = bb.build.stampfile(taskname2 + "_setscene", self.rqdata.dataCache, fn2)
+ (mc2, fn2, taskname2, taskfn2) = split_tid_mcfn(dep)
+ stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCaches[mc2], taskfn2)
+ stampfile3 = bb.build.stampfile(taskname2 + "_setscene", self.rqdata.dataCaches[mc2], taskfn2)
t2 = get_timestamp(stampfile2)
t3 = get_timestamp(stampfile3)
+ if t3 and not t2:
+ continue
if t3 and t3 > t2:
- continue
+ continue
if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
if not t2:
logger.debug(2, 'Stampfile %s does not exist', stampfile2)
iscurrent = False
+ break
if t1 < t2:
logger.debug(2, 'Stampfile %s < %s', stampfile, stampfile2)
iscurrent = False
+ break
if recurse and iscurrent:
if dep in cache:
iscurrent = cache[dep]
@@ -1103,7 +1157,7 @@ class RunQueue:
iscurrent = self.check_stamp_task(dep, recurse=True, cache=cache)
cache[dep] = iscurrent
if recurse:
- cache[task] = iscurrent
+ cache[tid] = iscurrent
return iscurrent
def _execute_runqueue(self):
@@ -1117,19 +1171,31 @@ class RunQueue:
if self.state is runQueuePrepare:
self.rqexe = RunQueueExecuteDummy(self)
+ # NOTE: if you add, remove or significantly refactor the stages of this
+ # process then you should recalculate the weightings here. This is quite
+ # easy to do - just change the next line temporarily to pass debug=True as
+ # the last parameter and you'll get a printout of the weightings as well
+ # as a map to the lines where next_stage() was called. Of course this isn't
+ # critical, but it helps to keep the progress reporting accurate.
+ self.rqdata.init_progress_reporter = bb.progress.MultiStageProcessProgressReporter(self.cooker.data,
+ "Initialising tasks",
+ [43, 967, 4, 3, 1, 5, 3, 7, 13, 1, 2, 1, 1, 246, 35, 1, 38, 1, 35, 2, 338, 204, 142, 3, 3, 37, 244])
if self.rqdata.prepare() == 0:
self.state = runQueueComplete
else:
self.state = runQueueSceneInit
+ self.rqdata.init_progress_reporter.next_stage()
- # we are ready to run, see if any UI client needs the dependency info
- if bb.cooker.CookerFeatures.SEND_DEPENDS_TREE in self.cooker.featureset:
- depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
- bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
+ # we are ready to run, emit dependency info to any UI or class which
+ # needs it
+ depgraph = self.cooker.buildDependTree(self, self.rqdata.taskData)
+ self.rqdata.init_progress_reporter.next_stage()
+ bb.event.fire(bb.event.DepTreeGenerated(depgraph), self.cooker.data)
if self.state is runQueueSceneInit:
dump = self.cooker.configuration.dump_signatures
if dump:
+ self.rqdata.init_progress_reporter.finish()
if 'printdiff' in dump:
invalidtasks = self.print_diffscenetasks()
self.dump_signatures(dump)
@@ -1137,7 +1203,9 @@ class RunQueue:
self.write_diffscenetasks(invalidtasks)
self.state = runQueueComplete
else:
+ self.rqdata.init_progress_reporter.next_stage()
self.start_worker()
+ self.rqdata.init_progress_reporter.next_stage()
self.rqexe = RunQueueExecuteScenequeue(self)
if self.state in [runQueueSceneRun, runQueueRunning, runQueueCleanUp]:
@@ -1150,6 +1218,8 @@ class RunQueue:
if self.cooker.configuration.setsceneonly:
self.state = runQueueComplete
else:
+ # Just in case we didn't setscene
+ self.rqdata.init_progress_reporter.finish()
logger.info("Executing RunQueue Tasks")
self.rqexe = RunQueueExecuteTasks(self)
self.state = runQueueRunning
@@ -1169,10 +1239,11 @@ class RunQueue:
logger.info("Tasks Summary: Attempted %d tasks of which %d didn't need to be rerun and all succeeded.", self.rqexe.stats.completed, self.rqexe.stats.skipped)
if self.state is runQueueFailed:
- if not self.rqdata.taskData.tryaltconfigs:
- raise bb.runqueue.TaskFailure(self.rqexe.failed_fnids)
- for fnid in self.rqexe.failed_fnids:
- self.rqdata.taskData.fail_fnid(fnid)
+ if not self.rqdata.taskData[''].tryaltconfigs:
+ raise bb.runqueue.TaskFailure(self.rqexe.failed_tids)
+ for tid in self.rqexe.failed_tids:
+ (mc, fn, tn, _) = split_tid_mcfn(tid)
+ self.rqdata.taskData[mc].fail_fn(fn)
self.rqdata.reset()
if self.state is runQueueComplete:
@@ -1197,8 +1268,8 @@ class RunQueue:
pass
self.state = runQueueComplete
raise
- except:
- logger.error("An uncaught exception occured in runqueue, please see the failure below:")
+ except Exception as err:
+ logger.exception("An uncaught exception occurred in runqueue")
try:
self.teardown_workers()
except:
@@ -1219,13 +1290,14 @@ class RunQueue:
def dump_signatures(self, options):
done = set()
bb.note("Reparsing files to collect dependency data")
- for task in range(len(self.rqdata.runq_fnid)):
- if self.rqdata.runq_fnid[task] not in done:
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- the_data = bb.cache.Cache.loadDataFull(fn, self.cooker.collection.get_file_appends(fn), self.cooker.data)
- done.add(self.rqdata.runq_fnid[task])
+ bb_cache = bb.cache.NoCache(self.cooker.databuilder)
+ for tid in self.rqdata.runtaskentries:
+ fn = fn_from_tid(tid)
+ if fn not in done:
+ the_data = bb_cache.loadDataFull(fn, self.cooker.collection.get_file_appends(fn))
+ done.add(fn)
- bb.parse.siggen.dump_sigs(self.rqdata.dataCache, options)
+ bb.parse.siggen.dump_sigs(self.rqdata.dataCaches, options)
return
@@ -1241,20 +1313,19 @@ class RunQueue:
stamppresent = []
valid_new = set()
- for task in xrange(len(self.rqdata.runq_fnid)):
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- taskname = self.rqdata.runq_task[task]
- taskdep = self.rqdata.dataCache.task_deps[fn]
+ for tid in self.rqdata.runtaskentries:
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'noexec' in taskdep and taskname in taskdep['noexec']:
- noexec.append(task)
+ noexec.append(tid)
continue
sq_fn.append(fn)
- sq_hashfn.append(self.rqdata.dataCache.hashfn[fn])
- sq_hash.append(self.rqdata.runq_hash[task])
+ sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[fn])
+ sq_hash.append(self.rqdata.runtaskentries[tid].hash)
sq_taskname.append(taskname)
- sq_task.append(task)
+ sq_task.append(tid)
locs = { "sq_fn" : sq_fn, "sq_task" : sq_taskname, "sq_hash" : sq_hash, "sq_hashfn" : sq_hashfn, "d" : self.cooker.expanded_data }
try:
call = self.hashvalidate + "(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=True)"
@@ -1269,13 +1340,13 @@ class RunQueue:
# Tasks which are both setscene and noexec never care about dependencies
# We therefore find tasks which are setscene and noexec and mark their
# unique dependencies as valid.
- for task in noexec:
- if task not in self.rqdata.runq_setscene:
+ for tid in noexec:
+ if tid not in self.rqdata.runq_setscene_tids:
continue
- for dep in self.rqdata.runq_depends[task]:
+ for dep in self.rqdata.runtaskentries[tid].depends:
hasnoexecparents = True
- for dep2 in self.rqdata.runq_revdeps[dep]:
- if dep2 in self.rqdata.runq_setscene and dep2 in noexec:
+ for dep2 in self.rqdata.runtaskentries[dep].revdeps:
+ if dep2 in self.rqdata.runq_setscene_tids and dep2 in noexec:
continue
hasnoexecparents = False
break
@@ -1283,30 +1354,30 @@ class RunQueue:
valid_new.add(dep)
invalidtasks = set()
- for task in xrange(len(self.rqdata.runq_fnid)):
- if task not in valid_new and task not in noexec:
- invalidtasks.add(task)
+ for tid in self.rqdata.runtaskentries:
+ if tid not in valid_new and tid not in noexec:
+ invalidtasks.add(tid)
found = set()
processed = set()
- for task in invalidtasks:
- toprocess = set([task])
+ for tid in invalidtasks:
+ toprocess = set([tid])
while toprocess:
next = set()
for t in toprocess:
- for dep in self.rqdata.runq_depends[t]:
+ for dep in self.rqdata.runtaskentries[t].depends:
if dep in invalidtasks:
- found.add(task)
+ found.add(tid)
if dep not in processed:
processed.add(dep)
next.add(dep)
toprocess = next
- if task in found:
+ if tid in found:
toprocess = set()
tasklist = []
- for task in invalidtasks.difference(found):
- tasklist.append(self.rqdata.get_user_idstring(task))
+ for tid in invalidtasks.difference(found):
+ tasklist.append(tid)
if tasklist:
bb.plain("The differences between the current build and any cached tasks start at the following tasks:\n" + "\n".join(tasklist))
@@ -1330,11 +1401,10 @@ class RunQueue:
return recout
- for task in invalidtasks:
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- pn = self.rqdata.dataCache.pkg_fn[fn]
- taskname = self.rqdata.runq_task[task]
- h = self.rqdata.runq_hash[task]
+ for tid in invalidtasks:
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ h = self.rqdata.runtaskentries[tid].hash
matches = bb.siggen.find_siginfo(pn, taskname, [], self.cfgData)
match = None
for m in matches:
@@ -1342,7 +1412,7 @@ class RunQueue:
match = m
if match is None:
bb.fatal("Can't find a task we're supposed to have written out? (hash: %s)?" % h)
- matches = {k : v for k, v in matches.iteritems() if h not in k}
+ matches = {k : v for k, v in iter(matches.items()) if h not in k}
if matches:
latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1]
prevh = __find_md5__.search(latestmatch).group(0)
@@ -1360,19 +1430,20 @@ class RunQueueExecute:
self.number_tasks = int(self.cfgData.getVar("BB_NUMBER_THREADS", True) or 1)
self.scheduler = self.cfgData.getVar("BB_SCHEDULER", True) or "speed"
- self.runq_buildable = []
- self.runq_running = []
- self.runq_complete = []
+ self.runq_buildable = set()
+ self.runq_running = set()
+ self.runq_complete = set()
self.build_stamps = {}
self.build_stamps2 = []
- self.failed_fnids = []
+ self.failed_tids = []
self.stampcache = {}
- rq.workerpipe.setrunqueueexec(self)
- if rq.fakeworkerpipe:
- rq.fakeworkerpipe.setrunqueueexec(self)
+ for mc in rq.worker:
+ rq.worker[mc].pipe.setrunqueueexec(self)
+ for mc in rq.fakeworker:
+ rq.fakeworker[mc].pipe.setrunqueueexec(self)
if self.number_tasks <= 0:
bb.fatal("Invalid BB_NUMBER_THREADS %s" % self.number_tasks)
@@ -1391,18 +1462,22 @@ class RunQueueExecute:
return True
def finish_now(self):
-
- for worker in [self.rq.worker, self.rq.fakeworker]:
- if not worker:
- continue
+ for mc in self.rq.worker:
+ try:
+ self.rq.worker[mc].process.stdin.write(b"<finishnow></finishnow>")
+ self.rq.worker[mc].process.stdin.flush()
+ except IOError:
+ # worker must have died?
+ pass
+ for mc in self.rq.fakeworker:
try:
- worker.stdin.write("<finishnow></finishnow>")
- worker.stdin.flush()
+ self.rq.fakeworker[mc].process.stdin.write(b"<finishnow></finishnow>")
+ self.rq.fakeworker[mc].process.stdin.flush()
except IOError:
# worker must have died?
pass
- if len(self.failed_fnids) != 0:
+ if len(self.failed_tids) != 0:
self.rq.state = runQueueFailed
return
@@ -1417,7 +1492,7 @@ class RunQueueExecute:
self.rq.read_workers()
return self.rq.active_fds()
- if len(self.failed_fnids) != 0:
+ if len(self.failed_tids) != 0:
self.rq.state = runQueueFailed
return True
@@ -1431,13 +1506,8 @@ class RunQueueExecute:
taskdata = {}
taskdeps.add(task)
for dep in taskdeps:
- if setscene:
- depid = self.rqdata.runq_setscene[dep]
- else:
- depid = dep
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[depid]]
- pn = self.rqdata.dataCache.pkg_fn[fn]
- taskname = self.rqdata.runq_task[depid]
+ (mc, fn, taskname, _) = split_tid_mcfn(dep)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
taskdata[dep] = [pn, taskname, fn]
call = self.rq.depvalidate + "(task, taskdata, notneeded, d)"
locs = { "task" : task, "taskdata" : taskdata, "notneeded" : self.scenequeue_notneeded, "d" : self.cooker.expanded_data }
@@ -1457,34 +1527,32 @@ class RunQueueExecuteTasks(RunQueueExecute):
def __init__(self, rq):
RunQueueExecute.__init__(self, rq)
- self.stats = RunQueueStats(len(self.rqdata.runq_fnid))
+ self.stats = RunQueueStats(len(self.rqdata.runtaskentries))
self.stampcache = {}
initial_covered = self.rq.scenequeue_covered.copy()
# Mark initial buildable tasks
- for task in xrange(self.stats.total):
- self.runq_running.append(0)
- self.runq_complete.append(0)
- if len(self.rqdata.runq_depends[task]) == 0:
- self.runq_buildable.append(1)
- else:
- self.runq_buildable.append(0)
- if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
- self.rq.scenequeue_covered.add(task)
+ for tid in self.rqdata.runtaskentries:
+ if len(self.rqdata.runtaskentries[tid].depends) == 0:
+ self.runq_buildable.add(tid)
+ if len(self.rqdata.runtaskentries[tid].revdeps) > 0 and self.rqdata.runtaskentries[tid].revdeps.issubset(self.rq.scenequeue_covered):
+ self.rq.scenequeue_covered.add(tid)
found = True
while found:
found = False
- for task in xrange(self.stats.total):
- if task in self.rq.scenequeue_covered:
+ for tid in self.rqdata.runtaskentries:
+ if tid in self.rq.scenequeue_covered:
continue
- logger.debug(1, 'Considering %s (%s): %s' % (task, self.rqdata.get_user_idstring(task), str(self.rqdata.runq_revdeps[task])))
+ logger.debug(1, 'Considering %s: %s' % (tid, str(self.rqdata.runtaskentries[tid].revdeps)))
- if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
+ if len(self.rqdata.runtaskentries[tid].revdeps) > 0 and self.rqdata.runtaskentries[tid].revdeps.issubset(self.rq.scenequeue_covered):
+ if tid in self.rq.scenequeue_notcovered:
+ continue
found = True
- self.rq.scenequeue_covered.add(task)
+ self.rq.scenequeue_covered.add(tid)
logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered))
@@ -1492,35 +1560,32 @@ class RunQueueExecuteTasks(RunQueueExecute):
covered_remove = set()
if self.rq.setsceneverify:
invalidtasks = []
- for task in xrange(len(self.rqdata.runq_task)):
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- taskname = self.rqdata.runq_task[task]
- taskdep = self.rqdata.dataCache.task_deps[fn]
-
+ tasknames = {}
+ fns = {}
+ for tid in self.rqdata.runtaskentries:
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
+ fns[tid] = taskfn
+ tasknames[tid] = taskname
if 'noexec' in taskdep and taskname in taskdep['noexec']:
continue
- if self.rq.check_stamp_task(task, taskname + "_setscene", cache=self.stampcache):
- logger.debug(2, 'Setscene stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(task))
+ if self.rq.check_stamp_task(tid, taskname + "_setscene", cache=self.stampcache):
+ logger.debug(2, 'Setscene stamp current for task %s', tid)
continue
- if self.rq.check_stamp_task(task, taskname, recurse = True, cache=self.stampcache):
- logger.debug(2, 'Normal stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(task))
+ if self.rq.check_stamp_task(tid, taskname, recurse = True, cache=self.stampcache):
+ logger.debug(2, 'Normal stamp current for task %s', tid)
continue
- invalidtasks.append(task)
+ invalidtasks.append(tid)
- call = self.rq.setsceneverify + "(covered, tasknames, fnids, fns, d, invalidtasks=invalidtasks)"
- call2 = self.rq.setsceneverify + "(covered, tasknames, fnids, fns, d)"
- locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : self.rqdata.runq_task, "fnids" : self.rqdata.runq_fnid, "fns" : self.rqdata.taskData.fn_index, "d" : self.cooker.expanded_data, "invalidtasks" : invalidtasks }
- # Backwards compatibility with older versions without invalidtasks
- try:
- covered_remove = bb.utils.better_eval(call, locs)
- except TypeError:
- covered_remove = bb.utils.better_eval(call2, locs)
+ call = self.rq.setsceneverify + "(covered, tasknames, fns, d, invalidtasks=invalidtasks)"
+ locs = { "covered" : self.rq.scenequeue_covered, "tasknames" : tasknames, "fns" : fns, "d" : self.cooker.expanded_data, "invalidtasks" : invalidtasks }
+ covered_remove = bb.utils.better_eval(call, locs)
- def removecoveredtask(task):
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- taskname = self.rqdata.runq_task[task] + '_setscene'
- bb.build.del_stamp(taskname, self.rqdata.dataCache, fn)
- self.rq.scenequeue_covered.remove(task)
+ def removecoveredtask(tid):
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+ taskname = taskname + '_setscene'
+ bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn)
+ self.rq.scenequeue_covered.remove(tid)
toremove = covered_remove
for task in toremove:
@@ -1529,7 +1594,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
covered_remove = []
for task in toremove:
removecoveredtask(task)
- for deptask in self.rqdata.runq_depends[task]:
+ for deptask in self.rqdata.runtaskentries[task].depends:
if deptask not in self.rq.scenequeue_covered:
continue
if deptask in toremove or deptask in covered_remove or deptask in initial_covered:
@@ -1540,7 +1605,15 @@ class RunQueueExecuteTasks(RunQueueExecute):
logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
- event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData)
+
+ for mc in self.rqdata.dataCaches:
+ target_pairs = []
+ for tid in self.rqdata.target_tids:
+ (tidmc, fn, taskname, _) = split_tid_mcfn(tid)
+ if tidmc == mc:
+ target_pairs.append((fn, taskname))
+
+ event.fire(bb.event.StampUpdate(target_pairs, self.rqdata.dataCaches[mc].stamp), self.cfgData)
schedulers = self.get_schedulers()
for scheduler in schedulers:
@@ -1575,7 +1648,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
return schedulers
def setbuildable(self, task):
- self.runq_buildable[task] = 1
+ self.runq_buildable.add(task)
self.sched.newbuilable(task)
def task_completeoutright(self, task):
@@ -1584,21 +1657,21 @@ class RunQueueExecuteTasks(RunQueueExecute):
Look at the reverse dependencies and mark any task with
completed dependencies as buildable
"""
- self.runq_complete[task] = 1
- for revdep in self.rqdata.runq_revdeps[task]:
- if self.runq_running[revdep] == 1:
+ self.runq_complete.add(task)
+ for revdep in self.rqdata.runtaskentries[task].revdeps:
+ if revdep in self.runq_running:
continue
- if self.runq_buildable[revdep] == 1:
+ if revdep in self.runq_buildable:
continue
alldeps = 1
- for dep in self.rqdata.runq_depends[revdep]:
- if self.runq_complete[dep] != 1:
+ for dep in self.rqdata.runtaskentries[revdep].depends:
+ if dep not in self.runq_complete:
alldeps = 0
if alldeps == 1:
self.setbuildable(revdep)
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[revdep]]
- taskname = self.rqdata.runq_task[revdep]
- logger.debug(1, "Marking task %s (%s, %s) as buildable", revdep, fn, taskname)
+ fn = fn_from_tid(revdep)
+ taskname = taskname_from_tid(revdep)
+ logger.debug(1, "Marking task %s as buildable", revdep)
def task_complete(self, task):
self.stats.taskCompleted()
@@ -1611,14 +1684,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
Updates the state engine with the failure
"""
self.stats.taskFailed()
- fnid = self.rqdata.runq_fnid[task]
- self.failed_fnids.append(fnid)
+ self.failed_tids.append(task)
bb.event.fire(runQueueTaskFailed(task, self.stats, exitcode, self.rq), self.cfgData)
- if self.rqdata.taskData.abort:
+ if self.rqdata.taskData[''].abort:
self.rq.state = runQueueCleanUp
def task_skip(self, task, reason):
- self.runq_running[task] = 1
+ self.runq_running.add(task)
self.setbuildable(task)
bb.event.fire(runQueueTaskSkipped(task, self.stats, self.rq, reason), self.cfgData)
self.task_completeoutright(task)
@@ -1630,8 +1702,52 @@ class RunQueueExecuteTasks(RunQueueExecute):
Run the tasks in a queue prepared by rqdata.prepare()
"""
+ if self.rqdata.setscenewhitelist and not self.rqdata.setscenewhitelist_checked:
+ self.rqdata.setscenewhitelist_checked = True
+
+ # Check tasks that are going to run against the whitelist
+ def check_norun_task(tid, showerror=False):
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ # Ignore covered tasks
+ if tid in self.rq.scenequeue_covered:
+ return False
+ # Ignore stamped tasks
+ if self.rq.check_stamp_task(tid, taskname, cache=self.stampcache):
+ return False
+ # Ignore noexec tasks
+ taskdep = self.rqdata.dataCaches[mc].task_deps[fn]
+ if 'noexec' in taskdep and taskname in taskdep['noexec']:
+ return False
+
+ pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
+ if showerror:
+ if tid in self.rqdata.runq_setscene_tids:
+ logger.error('Task %s.%s attempted to execute unexpectedly and should have been setscened' % (pn, taskname))
+ else:
+ logger.error('Task %s.%s attempted to execute unexpectedly' % (pn, taskname))
+ return True
+ return False
+ # Look to see if any tasks that we think shouldn't run are going to
+ unexpected = False
+ for tid in self.rqdata.runtaskentries:
+ if check_norun_task(tid):
+ unexpected = True
+ break
+ if unexpected:
+ # Run through the tasks in the rough order they'd have executed and print errors
+ # (since the order can be useful - usually missing sstate for the last few tasks
+ # is the cause of the problem)
+ task = self.sched.next()
+ while task is not None:
+ check_norun_task(task, showerror=True)
+ self.task_skip(task, 'Setscene enforcement check')
+ task = self.sched.next()
+
+ self.rq.state = runQueueCleanUp
+ return True
+
self.rq.read_workers()
-
if self.stats.total == 0:
# nothing to do
@@ -1639,30 +1755,28 @@ class RunQueueExecuteTasks(RunQueueExecute):
task = self.sched.next()
if task is not None:
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
- taskname = self.rqdata.runq_task[task]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(task)
if task in self.rq.scenequeue_covered:
- logger.debug(2, "Setscene covered task %s (%s)", task,
- self.rqdata.get_user_idstring(task))
+ logger.debug(2, "Setscene covered task %s", task)
self.task_skip(task, "covered")
return True
if self.rq.check_stamp_task(task, taskname, cache=self.stampcache):
- logger.debug(2, "Stamp current task %s (%s)", task,
- self.rqdata.get_user_idstring(task))
+ logger.debug(2, "Stamp current task %s", task)
+
self.task_skip(task, "existing")
return True
- taskdep = self.rqdata.dataCache.task_deps[fn]
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'noexec' in taskdep and taskname in taskdep['noexec']:
startevent = runQueueTaskStarted(task, self.stats, self.rq,
noexec=True)
bb.event.fire(startevent, self.cfgData)
- self.runq_running[task] = 1
+ self.runq_running.add(task)
self.stats.taskActive()
if not self.cooker.configuration.dry_run:
- bb.build.make_stamp(taskname, self.rqdata.dataCache, fn)
+ bb.build.make_stamp(taskname, self.rqdata.dataCaches[mc], taskfn)
self.task_complete(task)
return True
else:
@@ -1671,24 +1785,25 @@ class RunQueueExecuteTasks(RunQueueExecute):
taskdepdata = self.build_taskdepdata(task)
- taskdep = self.rqdata.dataCache.task_deps[fn]
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run:
if not self.rq.fakeworker:
try:
self.rq.start_fakeworker(self)
except OSError as exc:
- logger.critical("Failed to spawn fakeroot worker to run %s:%s: %s" % (fn, taskname, str(exc)))
+ logger.critical("Failed to spawn fakeroot worker to run %s: %s" % (task, str(exc)))
self.rq.state = runQueueFailed
+ self.stats.taskFailed()
return True
- self.rq.fakeworker.stdin.write("<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + "</runtask>")
- self.rq.fakeworker.stdin.flush()
+ self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + b"</runtask>")
+ self.rq.fakeworker[mc].process.stdin.flush()
else:
- self.rq.worker.stdin.write("<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + "</runtask>")
- self.rq.worker.stdin.flush()
+ self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, False, self.cooker.collection.get_file_appends(taskfn), taskdepdata)) + b"</runtask>")
+ self.rq.worker[mc].process.stdin.flush()
- self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
- self.build_stamps2.append(self.build_stamps[task])
- self.runq_running[task] = 1
+ self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True)
+ self.build_stamps2.append(self.build_stamps[task])
+ self.runq_running.add(task)
self.stats.taskActive()
if self.stats.active < self.number_tasks:
return True
@@ -1697,17 +1812,17 @@ class RunQueueExecuteTasks(RunQueueExecute):
self.rq.read_workers()
return self.rq.active_fds()
- if len(self.failed_fnids) != 0:
+ if len(self.failed_tids) != 0:
self.rq.state = runQueueFailed
return True
# Sanity Checks
- for task in xrange(self.stats.total):
- if self.runq_buildable[task] == 0:
+ for task in self.rqdata.runtaskentries:
+ if task not in self.runq_buildable:
logger.error("Task %s never buildable!", task)
- if self.runq_running[task] == 0:
+ if task not in self.runq_running:
logger.error("Task %s never ran!", task)
- if self.runq_complete[task] == 0:
+ if task not in self.runq_complete:
logger.error("Task %s never completed!", task)
self.rq.state = runQueueComplete
@@ -1715,16 +1830,15 @@ class RunQueueExecuteTasks(RunQueueExecute):
def build_taskdepdata(self, task):
taskdepdata = {}
- next = self.rqdata.runq_depends[task]
+ next = self.rqdata.runtaskentries[task].depends
next.add(task)
while next:
additional = []
for revdep in next:
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[revdep]]
- pn = self.rqdata.dataCache.pkg_fn[fn]
- taskname = self.rqdata.runq_task[revdep]
- deps = self.rqdata.runq_depends[revdep]
- provides = self.rqdata.dataCache.fn_provides[fn]
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(revdep)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn]
+ deps = self.rqdata.runtaskentries[revdep].depends
+ provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
taskdepdata[revdep] = [pn, taskname, fn, deps, provides]
for revdep2 in deps:
if revdep2 not in taskdepdata:
@@ -1743,16 +1857,16 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
self.scenequeue_notneeded = set()
# If we don't have any setscene functions, skip this step
- if len(self.rqdata.runq_setscene) == 0:
+ if len(self.rqdata.runq_setscene_tids) == 0:
rq.scenequeue_covered = set()
rq.state = runQueueRunInit
return
- self.stats = RunQueueStats(len(self.rqdata.runq_setscene))
+ self.stats = RunQueueStats(len(self.rqdata.runq_setscene_tids))
- sq_revdeps = []
- sq_revdeps_new = []
- sq_revdeps_squash = []
+ sq_revdeps = {}
+ sq_revdeps_new = {}
+ sq_revdeps_squash = {}
self.sq_harddeps = {}
# We need to construct a dependency graph for the setscene functions. Intermediate
@@ -1760,25 +1874,29 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
# therefore aims to collapse the huge runqueue dependency tree into a smaller one
# only containing the setscene functions.
- for task in xrange(self.stats.total):
- self.runq_running.append(0)
- self.runq_complete.append(0)
- self.runq_buildable.append(0)
+ self.rqdata.init_progress_reporter.next_stage()
# First process the chains up to the first setscene task.
endpoints = {}
- for task in xrange(len(self.rqdata.runq_fnid)):
- sq_revdeps.append(copy.copy(self.rqdata.runq_revdeps[task]))
- sq_revdeps_new.append(set())
- if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene:
- endpoints[task] = set()
+ for tid in self.rqdata.runtaskentries:
+ sq_revdeps[tid] = copy.copy(self.rqdata.runtaskentries[tid].revdeps)
+ sq_revdeps_new[tid] = set()
+ if (len(sq_revdeps[tid]) == 0) and tid not in self.rqdata.runq_setscene_tids:
+ #bb.warn("Added endpoint %s" % (tid))
+ endpoints[tid] = set()
+
+ self.rqdata.init_progress_reporter.next_stage()
# Secondly process the chains between setscene tasks.
- for task in self.rqdata.runq_setscene:
- for dep in self.rqdata.runq_depends[task]:
+ for tid in self.rqdata.runq_setscene_tids:
+ #bb.warn("Added endpoint 2 %s" % (tid))
+ for dep in self.rqdata.runtaskentries[tid].depends:
if dep not in endpoints:
endpoints[dep] = set()
- endpoints[dep].add(task)
+ #bb.warn(" Added endpoint 3 %s" % (dep))
+ endpoints[dep].add(tid)
+
+ self.rqdata.init_progress_reporter.next_stage()
def process_endpoints(endpoints):
newendpoints = {}
@@ -1789,26 +1907,28 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
if sq_revdeps_new[point]:
tasks |= sq_revdeps_new[point]
sq_revdeps_new[point] = set()
- if point in self.rqdata.runq_setscene:
+ if point in self.rqdata.runq_setscene_tids:
sq_revdeps_new[point] = tasks
tasks = set()
- for dep in self.rqdata.runq_depends[point]:
+ for dep in self.rqdata.runtaskentries[point].depends:
if point in sq_revdeps[dep]:
sq_revdeps[dep].remove(point)
if tasks:
sq_revdeps_new[dep] |= tasks
- if (len(sq_revdeps[dep]) == 0 or len(sq_revdeps_new[dep]) != 0) and dep not in self.rqdata.runq_setscene:
+ if (len(sq_revdeps[dep]) == 0 or len(sq_revdeps_new[dep]) != 0) and dep not in self.rqdata.runq_setscene_tids:
newendpoints[dep] = task
if len(newendpoints) != 0:
process_endpoints(newendpoints)
process_endpoints(endpoints)
+ self.rqdata.init_progress_reporter.next_stage()
+
# Build a list of setscene tasks which are "unskippable"
# These are direct endpoints referenced by the build
endpoints2 = {}
- sq_revdeps2 = []
- sq_revdeps_new2 = []
+ sq_revdeps2 = {}
+ sq_revdeps_new2 = {}
def process_endpoints2(endpoints):
newendpoints = {}
for point, task in endpoints.items():
@@ -1818,84 +1938,99 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
if sq_revdeps_new2[point]:
tasks |= sq_revdeps_new2[point]
sq_revdeps_new2[point] = set()
- if point in self.rqdata.runq_setscene:
+ if point in self.rqdata.runq_setscene_tids:
sq_revdeps_new2[point] = tasks
- for dep in self.rqdata.runq_depends[point]:
+ for dep in self.rqdata.runtaskentries[point].depends:
if point in sq_revdeps2[dep]:
sq_revdeps2[dep].remove(point)
if tasks:
sq_revdeps_new2[dep] |= tasks
- if (len(sq_revdeps2[dep]) == 0 or len(sq_revdeps_new2[dep]) != 0) and dep not in self.rqdata.runq_setscene:
+ if (len(sq_revdeps2[dep]) == 0 or len(sq_revdeps_new2[dep]) != 0) and dep not in self.rqdata.runq_setscene_tids:
newendpoints[dep] = tasks
if len(newendpoints) != 0:
process_endpoints2(newendpoints)
- for task in xrange(len(self.rqdata.runq_fnid)):
- sq_revdeps2.append(copy.copy(self.rqdata.runq_revdeps[task]))
- sq_revdeps_new2.append(set())
- if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene:
- endpoints2[task] = set()
+ for tid in self.rqdata.runtaskentries:
+ sq_revdeps2[tid] = copy.copy(self.rqdata.runtaskentries[tid].revdeps)
+ sq_revdeps_new2[tid] = set()
+ if (len(sq_revdeps2[tid]) == 0) and tid not in self.rqdata.runq_setscene_tids:
+ endpoints2[tid] = set()
process_endpoints2(endpoints2)
self.unskippable = []
- for task in self.rqdata.runq_setscene:
- if sq_revdeps_new2[task]:
- self.unskippable.append(self.rqdata.runq_setscene.index(task))
+ for tid in self.rqdata.runq_setscene_tids:
+ if sq_revdeps_new2[tid]:
+ self.unskippable.append(tid)
- for task in xrange(len(self.rqdata.runq_fnid)):
- if task in self.rqdata.runq_setscene:
+ self.rqdata.init_progress_reporter.next_stage(len(self.rqdata.runtaskentries))
+
+ for taskcounter, tid in enumerate(self.rqdata.runtaskentries):
+ if tid in self.rqdata.runq_setscene_tids:
deps = set()
- for dep in sq_revdeps_new[task]:
- deps.add(self.rqdata.runq_setscene.index(dep))
- sq_revdeps_squash.append(deps)
- elif len(sq_revdeps_new[task]) != 0:
+ for dep in sq_revdeps_new[tid]:
+ deps.add(dep)
+ sq_revdeps_squash[tid] = deps
+ elif len(sq_revdeps_new[tid]) != 0:
bb.msg.fatal("RunQueue", "Something went badly wrong during scenequeue generation, aborting. Please report this problem.")
+ self.rqdata.init_progress_reporter.update(taskcounter)
+
+ self.rqdata.init_progress_reporter.next_stage()
# Resolve setscene inter-task dependencies
# e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene"
# Note that anything explicitly depended upon will have its reverse dependencies removed to avoid circular dependencies
- for task in self.rqdata.runq_setscene:
- realid = self.rqdata.taskData.gettask_id(self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]], self.rqdata.runq_task[task] + "_setscene", False)
- idepends = self.rqdata.taskData.tasks_idepends[realid]
- for (depid, idependtask) in idepends:
- if depid not in self.rqdata.taskData.build_targets:
+ for tid in self.rqdata.runq_setscene_tids:
+ (mc, fn, taskname, _) = split_tid_mcfn(tid)
+ realtid = fn + ":" + taskname + "_setscene"
+ idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends
+ for (depname, idependtask) in idepends:
+
+ if depname not in self.rqdata.taskData[mc].build_targets:
continue
- depdata = self.rqdata.taskData.build_targets[depid][0]
- if depdata is None:
+ depfn = self.rqdata.taskData[mc].build_targets[depname][0]
+ if depfn is None:
continue
- dep = self.rqdata.taskData.fn_index[depdata]
- taskid = self.rqdata.get_task_id(self.rqdata.taskData.getfn_id(dep), idependtask.replace("_setscene", ""))
- if taskid is None:
- bb.msg.fatal("RunQueue", "Task %s_setscene depends upon non-existent task %s:%s" % (self.rqdata.get_user_idstring(task), dep, idependtask))
+ deptid = depfn + ":" + idependtask.replace("_setscene", "")
+ if deptid not in self.rqdata.runtaskentries:
+ bb.msg.fatal("RunQueue", "Task %s depends upon non-existent task %s:%s" % (realtid, depfn, idependtask))
- if not self.rqdata.runq_setscene.index(taskid) in self.sq_harddeps:
- self.sq_harddeps[self.rqdata.runq_setscene.index(taskid)] = set()
- self.sq_harddeps[self.rqdata.runq_setscene.index(taskid)].add(self.rqdata.runq_setscene.index(task))
+ if not deptid in self.sq_harddeps:
+ self.sq_harddeps[deptid] = set()
+ self.sq_harddeps[deptid].add(tid)
- sq_revdeps_squash[self.rqdata.runq_setscene.index(task)].add(self.rqdata.runq_setscene.index(taskid))
+ sq_revdeps_squash[tid].add(deptid)
# Have to zero this to avoid circular dependencies
- sq_revdeps_squash[self.rqdata.runq_setscene.index(taskid)] = set()
+ sq_revdeps_squash[deptid] = set()
+
+ self.rqdata.init_progress_reporter.next_stage()
for task in self.sq_harddeps:
for dep in self.sq_harddeps[task]:
sq_revdeps_squash[dep].add(task)
- #for task in xrange(len(sq_revdeps_squash)):
- # realtask = self.rqdata.runq_setscene[task]
- # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task]))
+ self.rqdata.init_progress_reporter.next_stage()
+
+ #for tid in sq_revdeps_squash:
+ # for dep in sq_revdeps_squash[tid]:
+ # data = data + "\n %s" % dep
+ # bb.warn("Task %s_setscene: is %s " % (tid, data
- self.sq_deps = []
+ self.sq_deps = {}
self.sq_revdeps = sq_revdeps_squash
self.sq_revdeps2 = copy.deepcopy(self.sq_revdeps)
- for task in xrange(len(self.sq_revdeps)):
- self.sq_deps.append(set())
- for task in xrange(len(self.sq_revdeps)):
- for dep in self.sq_revdeps[task]:
- self.sq_deps[dep].add(task)
+ for tid in self.sq_revdeps:
+ self.sq_deps[tid] = set()
+ for tid in self.sq_revdeps:
+ for dep in self.sq_revdeps[tid]:
+ self.sq_deps[dep].add(tid)
+
+ self.rqdata.init_progress_reporter.next_stage()
+
+ for tid in self.sq_revdeps:
+ if len(self.sq_revdeps[tid]) == 0:
+ self.runq_buildable.add(tid)
- for task in xrange(len(self.sq_revdeps)):
- if len(self.sq_revdeps[task]) == 0:
- self.runq_buildable[task] = 1
+ self.rqdata.init_progress_reporter.finish()
self.outrightfail = []
if self.rq.hashvalidate:
@@ -1906,35 +2041,34 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
sq_task = []
noexec = []
stamppresent = []
- for task in xrange(len(self.sq_revdeps)):
- realtask = self.rqdata.runq_setscene[task]
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]]
- taskname = self.rqdata.runq_task[realtask]
- taskdep = self.rqdata.dataCache.task_deps[fn]
+ for tid in self.sq_revdeps:
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(tid)
+
+ taskdep = self.rqdata.dataCaches[mc].task_deps[fn]
if 'noexec' in taskdep and taskname in taskdep['noexec']:
- noexec.append(task)
- self.task_skip(task)
- bb.build.make_stamp(taskname + "_setscene", self.rqdata.dataCache, fn)
+ noexec.append(tid)
+ self.task_skip(tid)
+ bb.build.make_stamp(taskname + "_setscene", self.rqdata.dataCaches[mc], taskfn)
continue
- if self.rq.check_stamp_task(realtask, taskname + "_setscene", cache=self.stampcache):
- logger.debug(2, 'Setscene stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(realtask))
- stamppresent.append(task)
- self.task_skip(task)
+ if self.rq.check_stamp_task(tid, taskname + "_setscene", cache=self.stampcache):
+ logger.debug(2, 'Setscene stamp current for task %s', tid)
+ stamppresent.append(tid)
+ self.task_skip(tid)
continue
- if self.rq.check_stamp_task(realtask, taskname, recurse = True, cache=self.stampcache):
- logger.debug(2, 'Normal stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(realtask))
- stamppresent.append(task)
- self.task_skip(task)
+ if self.rq.check_stamp_task(tid, taskname, recurse = True, cache=self.stampcache):
+ logger.debug(2, 'Normal stamp current for task %s', tid)
+ stamppresent.append(tid)
+ self.task_skip(tid)
continue
sq_fn.append(fn)
- sq_hashfn.append(self.rqdata.dataCache.hashfn[fn])
- sq_hash.append(self.rqdata.runq_hash[realtask])
+ sq_hashfn.append(self.rqdata.dataCaches[mc].hashfn[fn])
+ sq_hash.append(self.rqdata.runtaskentries[tid].hash)
sq_taskname.append(taskname)
- sq_task.append(task)
+ sq_task.append(tid)
call = self.rq.hashvalidate + "(sq_fn, sq_task, sq_hash, sq_hashfn, d)"
locs = { "sq_fn" : sq_fn, "sq_task" : sq_taskname, "sq_hash" : sq_hash, "sq_hashfn" : sq_hashfn, "d" : self.cooker.expanded_data }
valid = bb.utils.better_eval(call, locs)
@@ -1943,12 +2077,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
for v in valid:
valid_new.append(sq_task[v])
- for task in xrange(len(self.sq_revdeps)):
- if task not in valid_new and task not in noexec:
- realtask = self.rqdata.runq_setscene[task]
- logger.debug(2, 'No package found, so skipping setscene task %s',
- self.rqdata.get_user_idstring(realtask))
- self.outrightfail.append(task)
+ for tid in self.sq_revdeps:
+ if tid not in valid_new and tid not in noexec:
+ logger.debug(2, 'No package found, so skipping setscene task %s', tid)
+ self.outrightfail.append(tid)
logger.info('Executing SetScene Tasks')
@@ -1957,9 +2089,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
def scenequeue_updatecounters(self, task, fail = False):
for dep in self.sq_deps[task]:
if fail and task in self.sq_harddeps and dep in self.sq_harddeps[task]:
- realtask = self.rqdata.runq_setscene[task]
- realdep = self.rqdata.runq_setscene[dep]
- logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (self.rqdata.get_user_idstring(realtask), self.rqdata.get_user_idstring(realdep)))
+ logger.debug(2, "%s was unavailable and is a hard dependency of %s so skipping" % (task, dep))
self.scenequeue_updatecounters(dep, fail)
continue
if task not in self.sq_revdeps2[dep]:
@@ -1967,7 +2097,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
continue
self.sq_revdeps2[dep].remove(task)
if len(self.sq_revdeps2[dep]) == 0:
- self.runq_buildable[dep] = 1
+ self.runq_buildable.add(dep)
def task_completeoutright(self, task):
"""
@@ -1976,13 +2106,19 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
completed dependencies as buildable
"""
- index = self.rqdata.runq_setscene[task]
- logger.debug(1, 'Found task %s which could be accelerated',
- self.rqdata.get_user_idstring(index))
-
+ logger.debug(1, 'Found task %s which could be accelerated', task)
self.scenequeue_covered.add(task)
self.scenequeue_updatecounters(task)
+ def check_taskfail(self, task):
+ if self.rqdata.setscenewhitelist:
+ realtask = task.split('_setscene')[0]
+ (mc, fn, taskname, _) = split_tid_mcfn(realtask)
+ pn = self.rqdata.dataCaches[mc].pkg_fn[fn]
+ if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist):
+ logger.error('Task %s.%s failed' % (pn, taskname + "_setscene"))
+ self.rq.state = runQueueCleanUp
+
def task_complete(self, task):
self.stats.taskCompleted()
bb.event.fire(sceneQueueTaskCompleted(task, self.stats, self.rq), self.cfgData)
@@ -1993,19 +2129,19 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
bb.event.fire(sceneQueueTaskFailed(task, self.stats, result, self), self.cfgData)
self.scenequeue_notcovered.add(task)
self.scenequeue_updatecounters(task, True)
+ self.check_taskfail(task)
def task_failoutright(self, task):
- self.runq_running[task] = 1
- self.runq_buildable[task] = 1
+ self.runq_running.add(task)
+ self.runq_buildable.add(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
- index = self.rqdata.runq_setscene[task]
self.scenequeue_notcovered.add(task)
self.scenequeue_updatecounters(task, True)
def task_skip(self, task):
- self.runq_running[task] = 1
- self.runq_buildable[task] = 1
+ self.runq_running.add(task)
+ self.runq_buildable.add(task)
self.task_completeoutright(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
@@ -2020,20 +2156,18 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
task = None
if self.stats.active < self.number_tasks:
# Find the next setscene to run
- for nexttask in xrange(self.stats.total):
- if self.runq_buildable[nexttask] == 1 and self.runq_running[nexttask] != 1:
+ for nexttask in self.rqdata.runq_setscene_tids:
+ if nexttask in self.runq_buildable and nexttask not in self.runq_running:
if nexttask in self.unskippable:
- logger.debug(2, "Setscene task %s is unskippable" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask]))
+ logger.debug(2, "Setscene task %s is unskippable" % nexttask)
if nexttask not in self.unskippable and len(self.sq_revdeps[nexttask]) > 0 and self.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sq_revdeps[nexttask], True):
- realtask = self.rqdata.runq_setscene[nexttask]
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]]
+ fn = fn_from_tid(nexttask)
foundtarget = False
- for target in self.rqdata.target_pairs:
- if target[0] == fn and target[1] == self.rqdata.runq_task[realtask]:
- foundtarget = True
- break
+
+ if nexttask in self.rqdata.target_tids:
+ foundtarget = True
if not foundtarget:
- logger.debug(2, "Skipping setscene for task %s" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask]))
+ logger.debug(2, "Skipping setscene for task %s" % nexttask)
self.task_skip(nexttask)
self.scenequeue_notneeded.add(nexttask)
return True
@@ -2043,42 +2177,37 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
task = nexttask
break
if task is not None:
- realtask = self.rqdata.runq_setscene[task]
- fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]]
-
- taskname = self.rqdata.runq_task[realtask] + "_setscene"
- if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask], recurse = True, cache=self.stampcache):
- logger.debug(2, 'Stamp for underlying task %s(%s) is current, so skipping setscene variant',
- task, self.rqdata.get_user_idstring(realtask))
+ (mc, fn, taskname, taskfn) = split_tid_mcfn(task)
+ taskname = taskname + "_setscene"
+ if self.rq.check_stamp_task(task, taskname_from_tid(task), recurse = True, cache=self.stampcache):
+ logger.debug(2, 'Stamp for underlying task %s is current, so skipping setscene variant', task)
self.task_failoutright(task)
return True
if self.cooker.configuration.force:
- for target in self.rqdata.target_pairs:
- if target[0] == fn and target[1] == self.rqdata.runq_task[realtask]:
- self.task_failoutright(task)
- return True
+ if task in self.rqdata.target_tids:
+ self.task_failoutright(task)
+ return True
- if self.rq.check_stamp_task(realtask, taskname, cache=self.stampcache):
- logger.debug(2, 'Setscene stamp current task %s(%s), so skip it and its dependencies',
- task, self.rqdata.get_user_idstring(realtask))
+ if self.rq.check_stamp_task(task, taskname, cache=self.stampcache):
+ logger.debug(2, 'Setscene stamp current task %s, so skip it and its dependencies', task)
self.task_skip(task)
return True
startevent = sceneQueueTaskStarted(task, self.stats, self.rq)
bb.event.fire(startevent, self.cfgData)
- taskdep = self.rqdata.dataCache.task_deps[fn]
- if 'fakeroot' in taskdep and taskname in taskdep['fakeroot']:
+ taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn]
+ if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run:
if not self.rq.fakeworker:
self.rq.start_fakeworker(self)
- self.rq.fakeworker.stdin.write("<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + "</runtask>")
- self.rq.fakeworker.stdin.flush()
+ self.rq.fakeworker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, True, self.cooker.collection.get_file_appends(taskfn), None)) + b"</runtask>")
+ self.rq.fakeworker[mc].process.stdin.flush()
else:
- self.rq.worker.stdin.write("<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + "</runtask>")
- self.rq.worker.stdin.flush()
+ self.rq.worker[mc].process.stdin.write(b"<runtask>" + pickle.dumps((taskfn, task, taskname, True, self.cooker.collection.get_file_appends(taskfn), None)) + b"</runtask>")
+ self.rq.worker[mc].process.stdin.flush()
- self.runq_running[task] = 1
+ self.runq_running.add(task)
self.stats.taskActive()
if self.stats.active < self.number_tasks:
return True
@@ -2087,17 +2216,14 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
self.rq.read_workers()
return self.rq.active_fds()
- #for task in xrange(self.stats.total):
- # if self.runq_running[task] != 1:
- # buildable = self.runq_buildable[task]
- # revdeps = self.sq_revdeps[task]
- # bb.warn("Found we didn't run %s %s %s %s" % (task, buildable, str(revdeps), self.rqdata.get_user_idstring(self.rqdata.runq_setscene[task])))
+ #for tid in self.sq_revdeps:
+ # if tid not in self.runq_running:
+ # buildable = tid in self.runq_buildable
+ # revdeps = self.sq_revdeps[tid]
+ # bb.warn("Found we didn't run %s %s %s" % (tid, buildable, str(revdeps)))
- # Convert scenequeue_covered task numbers into full taskgraph ids
- oldcovered = self.scenequeue_covered
- self.rq.scenequeue_covered = set()
- for task in oldcovered:
- self.rq.scenequeue_covered.add(self.rqdata.runq_setscene[task])
+ self.rq.scenequeue_covered = self.scenequeue_covered
+ self.rq.scenequeue_notcovered = self.scenequeue_notcovered
logger.debug(1, 'We can skip tasks %s', sorted(self.rq.scenequeue_covered))
@@ -2109,8 +2235,6 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
return True
def runqueue_process_waitpid(self, task, status):
- task = self.rq.rqdata.runq_setscene.index(task)
-
RunQueueExecute.runqueue_process_waitpid(self, task, status)
class TaskFailure(Exception):
@@ -2137,9 +2261,9 @@ class runQueueEvent(bb.event.Event):
"""
def __init__(self, task, stats, rq):
self.taskid = task
- self.taskstring = rq.rqdata.get_user_idstring(task)
- self.taskname = rq.rqdata.get_task_name(task)
- self.taskfile = rq.rqdata.get_task_file(task)
+ self.taskstring = task
+ self.taskname = taskname_from_tid(task)
+ self.taskfile = fn_from_tid(task)
self.taskhash = rq.rqdata.get_task_hash(task)
self.stats = stats.copy()
bb.event.Event.__init__(self)
@@ -2150,11 +2274,10 @@ class sceneQueueEvent(runQueueEvent):
"""
def __init__(self, task, stats, rq, noexec=False):
runQueueEvent.__init__(self, task, stats, rq)
- realtask = rq.rqdata.runq_setscene[task]
- self.taskstring = rq.rqdata.get_user_idstring(realtask, "_setscene")
- self.taskname = rq.rqdata.get_task_name(realtask) + "_setscene"
- self.taskfile = rq.rqdata.get_task_file(realtask)
- self.taskhash = rq.rqdata.get_task_hash(realtask)
+ self.taskstring = task + "_setscene"
+ self.taskname = taskname_from_tid(task) + "_setscene"
+ self.taskfile = fn_from_tid(task)
+ self.taskhash = rq.rqdata.get_task_hash(task)
class runQueueTaskStarted(runQueueEvent):
"""
@@ -2223,7 +2346,7 @@ class runQueuePipe():
if pipeout:
pipeout.close()
bb.utils.nonblockingfd(self.input)
- self.queue = ""
+ self.queue = b""
self.d = d
self.rq = rq
self.rqexec = rqexec
@@ -2232,22 +2355,16 @@ class runQueuePipe():
self.rqexec = rqexec
def read(self):
- for w in [self.rq.worker, self.rq.fakeworker]:
- if not w:
- continue
- w.poll()
- if w.returncode is not None and not self.rq.teardown:
- name = None
- if self.rq.worker and w.pid == self.rq.worker.pid:
- name = "Worker"
- elif self.rq.fakeworker and w.pid == self.rq.fakeworker.pid:
- name = "Fakeroot"
- bb.error("%s process (%s) exited unexpectedly (%s), shutting down..." % (name, w.pid, str(w.returncode)))
- self.rq.finish_runqueue(True)
+ for workers, name in [(self.rq.worker, "Worker"), (self.rq.fakeworker, "Fakeroot")]:
+ for worker in workers.values():
+ worker.process.poll()
+ if worker.process.returncode is not None and not self.rq.teardown:
+ bb.error("%s process (%s) exited unexpectedly (%s), shutting down..." % (name, worker.process.pid, str(worker.process.returncode)))
+ self.rq.finish_runqueue(True)
start = len(self.queue)
try:
- self.queue = self.queue + self.input.read(102400)
+ self.queue = self.queue + (self.input.read(102400) or b"")
except (OSError, IOError) as e:
if e.errno != errno.EAGAIN:
raise
@@ -2255,8 +2372,8 @@ class runQueuePipe():
found = True
while found and len(self.queue):
found = False
- index = self.queue.find("</event>")
- while index != -1 and self.queue.startswith("<event>"):
+ index = self.queue.find(b"</event>")
+ while index != -1 and self.queue.startswith(b"<event>"):
try:
event = pickle.loads(self.queue[7:index])
except ValueError as e:
@@ -2264,9 +2381,9 @@ class runQueuePipe():
bb.event.fire_from_worker(event, self.d)
found = True
self.queue = self.queue[index+8:]
- index = self.queue.find("</event>")
- index = self.queue.find("</exitcode>")
- while index != -1 and self.queue.startswith("<exitcode>"):
+ index = self.queue.find(b"</event>")
+ index = self.queue.find(b"</exitcode>")
+ while index != -1 and self.queue.startswith(b"<exitcode>"):
try:
task, status = pickle.loads(self.queue[10:index])
except ValueError as e:
@@ -2274,7 +2391,7 @@ class runQueuePipe():
self.rqexec.runqueue_process_waitpid(task, status)
found = True
self.queue = self.queue[index+11:]
- index = self.queue.find("</exitcode>")
+ index = self.queue.find(b"</exitcode>")
return (end > start)
def close(self):
@@ -2283,3 +2400,27 @@ class runQueuePipe():
if len(self.queue) > 0:
print("Warning, worker left partial message: %s" % self.queue)
self.input.close()
+
+def get_setscene_enforce_whitelist(d):
+ if d.getVar('BB_SETSCENE_ENFORCE', True) != '1':
+ return None
+ whitelist = (d.getVar("BB_SETSCENE_ENFORCE_WHITELIST", True) or "").split()
+ outlist = []
+ for item in whitelist[:]:
+ if item.startswith('%:'):
+ for target in sys.argv[1:]:
+ if not target.startswith('-'):
+ outlist.append(target.split(':')[0] + ':' + item.split(':')[1])
+ else:
+ outlist.append(item)
+ return outlist
+
+def check_setscene_enforce_whitelist(pn, taskname, whitelist):
+ import fnmatch
+ if whitelist:
+ item = '%s:%s' % (pn, taskname)
+ for whitelist_item in whitelist:
+ if fnmatch.fnmatch(item, whitelist_item):
+ return True
+ return False
+ return True
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/server/process.py b/import-layers/yocto-poky/bitbake/lib/bb/server/process.py
index a3078a873..982fcf71c 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/server/process.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/server/process.py
@@ -30,7 +30,7 @@ import signal
import sys
import time
import select
-from Queue import Empty
+from queue import Empty
from multiprocessing import Event, Process, util, Queue, Pipe, queues, Manager
from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer
@@ -137,7 +137,7 @@ class ProcessServer(Process, BaseImplServer):
if not fds:
fds = []
- for function, data in self._idlefuns.items():
+ for function, data in list(self._idlefuns.items()):
try:
retval = function(self, data, False)
if retval is False:
@@ -145,7 +145,7 @@ class ProcessServer(Process, BaseImplServer):
nextsleep = None
elif retval is True:
nextsleep = None
- elif isinstance(retval, float):
+ elif isinstance(retval, float) and nextsleep:
if (retval < nextsleep):
nextsleep = retval
elif nextsleep is None:
@@ -213,7 +213,7 @@ class BitBakeProcessServerConnection(BitBakeBaseServerConnection):
# Wrap Queue to provide API which isn't server implementation specific
class ProcessEventQueue(multiprocessing.queues.Queue):
def __init__(self, maxsize):
- multiprocessing.queues.Queue.__init__(self, maxsize)
+ multiprocessing.queues.Queue.__init__(self, maxsize, ctx=multiprocessing.get_context())
self.exit = False
bb.utils.set_process_name("ProcessEQueue")
@@ -222,11 +222,10 @@ class ProcessEventQueue(multiprocessing.queues.Queue):
def waitEvent(self, timeout):
if self.exit:
- sys.exit(1)
+ return self.getEvent()
try:
if not self.server.is_alive():
- self.setexit()
- return None
+ return self.getEvent()
return self.get(True, timeout)
except Empty:
return None
@@ -235,9 +234,10 @@ class ProcessEventQueue(multiprocessing.queues.Queue):
try:
if not self.server.is_alive():
self.setexit()
- return None
return self.get(False)
except Empty:
+ if self.exit:
+ sys.exit(1)
return None
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/server/xmlrpc.py b/import-layers/yocto-poky/bitbake/lib/bb/server/xmlrpc.py
index ace1cf646..452f14bb3 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/server/xmlrpc.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/server/xmlrpc.py
@@ -31,31 +31,33 @@
in the server's main loop.
"""
+import os
+import sys
+
+import hashlib
+import time
+import socket
+import signal
+import threading
+import pickle
+import inspect
+import select
+import http.client
+import xmlrpc.client
+from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
+
import bb
-import xmlrpclib, sys
from bb import daemonize
from bb.ui import uievent
-import hashlib, time
-import socket
-import os, signal
-import threading
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer
DEBUG = False
-from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
-import inspect, select, httplib
-
-from . import BitBakeBaseServer, BitBakeBaseServerConnection, BaseImplServer
-
-class BBTransport(xmlrpclib.Transport):
+class BBTransport(xmlrpc.client.Transport):
def __init__(self, timeout):
self.timeout = timeout
self.connection_token = None
- xmlrpclib.Transport.__init__(self)
+ xmlrpc.client.Transport.__init__(self)
# Modified from default to pass timeout to HTTPConnection
def make_connection(self, host):
@@ -67,7 +69,7 @@ class BBTransport(xmlrpclib.Transport):
# create a HTTP connection object from a host descriptor
chost, self._extra_headers, x509 = self.get_host_info(host)
#store the host argument along with the connection object
- self._connection = host, httplib.HTTPConnection(chost, timeout=self.timeout)
+ self._connection = host, http.client.HTTPConnection(chost, timeout=self.timeout)
return self._connection[1]
def set_connection_token(self, token):
@@ -76,13 +78,30 @@ class BBTransport(xmlrpclib.Transport):
def send_content(self, h, body):
if self.connection_token:
h.putheader("Bitbake-token", self.connection_token)
- xmlrpclib.Transport.send_content(self, h, body)
+ xmlrpc.client.Transport.send_content(self, h, body)
def _create_server(host, port, timeout = 60):
t = BBTransport(timeout)
- s = xmlrpclib.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True)
+ s = xmlrpc.client.ServerProxy("http://%s:%d/" % (host, port), transport=t, allow_none=True, use_builtin_types=True)
return s, t
+def check_connection(remote, timeout):
+ try:
+ host, port = remote.split(":")
+ port = int(port)
+ except Exception as e:
+ bb.warn("Failed to read remote definition (%s)" % str(e))
+ raise e
+
+ server, _transport = _create_server(host, port, timeout)
+ try:
+ ret, err = server.runCommand(['getVariable', 'TOPDIR'])
+ if err or not ret:
+ return False
+ except ConnectionError:
+ return False
+ return True
+
class BitBakeServerCommands():
def __init__(self, server):
@@ -128,7 +147,7 @@ class BitBakeServerCommands():
def addClient(self):
if self.has_client:
return None
- token = hashlib.md5(str(time.time())).hexdigest()
+ token = hashlib.md5(str(time.time()).encode("utf-8")).hexdigest()
self.server.set_connection_token(token)
self.has_client = True
return token
@@ -178,7 +197,7 @@ class XMLRPCProxyServer(BaseImplServer):
""" not a real working server, but a stub for a proxy server connection
"""
- def __init__(self, host, port):
+ def __init__(self, host, port, use_builtin_types=True):
self.host = host
self.port = port
@@ -186,7 +205,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
# remove this when you're done with debugging
# allow_reuse_address = True
- def __init__(self, interface, single_use=False):
+ def __init__(self, interface, single_use=False, idle_timeout=0):
"""
Constructor
"""
@@ -204,6 +223,10 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
self.commands = BitBakeServerCommands(self)
self.autoregister_all_functions(self.commands, "")
self.interface = interface
+ self.time = time.time()
+ self.idle_timeout = idle_timeout
+ if idle_timeout:
+ self.register_idle_function(self.handle_idle_timeout, self)
def addcooker(self, cooker):
BaseImplServer.addcooker(self, cooker)
@@ -219,6 +242,12 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
if name.startswith(prefix):
self.register_function(method, name[len(prefix):])
+ def handle_idle_timeout(self, server, data, abort):
+ if not abort:
+ if time.time() - server.time > server.idle_timeout:
+ server.quit = True
+ print("Server idle timeout expired")
+ return []
def serve_forever(self):
# Start the actual XMLRPC server
@@ -232,7 +261,7 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
while not self.quit:
fds = [self]
nextsleep = 0.1
- for function, data in self._idlefuns.items():
+ for function, data in list(self._idlefuns.items()):
retval = None
try:
retval = function(self, data, False)
@@ -261,13 +290,15 @@ class XMLRPCServer(SimpleXMLRPCServer, BaseImplServer):
try:
fd_sets = select.select(fds, [], [], socktimeout)
if fd_sets[0] and self in fd_sets[0]:
+ if self.idle_timeout:
+ self.time = time.time()
self._handle_request_noblock()
except IOError:
# we ignore interrupted calls
pass
# Tell idle functions we're exiting
- for function, data in self._idlefuns.items():
+ for function, data in list(self._idlefuns.items()):
try:
retval = function(self, data, True)
except:
@@ -332,9 +363,10 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection):
pass
class BitBakeServer(BitBakeBaseServer):
- def initServer(self, interface = ("localhost", 0), single_use = False):
+ def initServer(self, interface = ("localhost", 0),
+ single_use = False, idle_timeout=0):
self.interface = interface
- self.serverImpl = XMLRPCServer(interface, single_use)
+ self.serverImpl = XMLRPCServer(interface, single_use, idle_timeout)
def detach(self):
daemonize.createDaemon(self.serverImpl.serve_forever, "bitbake-cookerdaemon.log")
@@ -379,7 +411,7 @@ class BitBakeXMLRPCClient(BitBakeBaseServer):
bb.warn("Could not create socket for %s:%s (%s)" % (host, port, str(e)))
raise e
try:
- self.serverImpl = XMLRPCProxyServer(host, port)
+ self.serverImpl = XMLRPCProxyServer(host, port, use_builtin_types=True)
self.connection = BitBakeXMLRPCServerConnection(self.serverImpl, (ip, 0), self.observer_only, featureset)
return self.connection.connect(self.token)
except Exception as e:
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/siggen.py b/import-layers/yocto-poky/bitbake/lib/bb/siggen.py
index 88fc0f1d5..3a7dac4cb 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/siggen.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/siggen.py
@@ -3,19 +3,14 @@ import logging
import os
import re
import tempfile
+import pickle
import bb.data
from bb.checksum import FileChecksumCache
logger = logging.getLogger('BitBake.SigGen')
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
- logger.info('Importing cPickle failed. Falling back to a very slow implementation.')
-
def init(d):
- siggens = [obj for obj in globals().itervalues()
+ siggens = [obj for obj in globals().values()
if type(obj) is type and issubclass(obj, SignatureGenerator)]
desired = d.getVar("BB_SIGNATURE_HANDLER", True) or "noop"
@@ -138,7 +133,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
var = lookupcache[dep]
if var is not None:
data = data + str(var)
- self.basehash[fn + "." + task] = hashlib.md5(data).hexdigest()
+ self.basehash[fn + "." + task] = hashlib.md5(data.encode("utf-8")).hexdigest()
taskdeps[task] = alldeps
self.taskdeps[fn] = taskdeps
@@ -149,8 +144,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
def finalise(self, fn, d, variant):
- if variant:
- fn = "virtual:" + variant + ":" + fn
+ mc = d.getVar("__BBMULTICONFIG", False) or ""
+ if variant or mc:
+ fn = bb.cache.realfn2virtual(fn, variant, mc)
try:
taskdeps = self._build_data(fn, d)
@@ -221,9 +217,9 @@ class SignatureGeneratorBasic(SignatureGenerator):
if taint:
data = data + taint
self.taints[k] = taint
- logger.warn("%s is tainted from a forced run" % k)
+ logger.warning("%s is tainted from a forced run" % k)
- h = hashlib.md5(data).hexdigest()
+ h = hashlib.md5(data.encode("utf-8")).hexdigest()
self.taskhash[k] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
return h
@@ -287,7 +283,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
with os.fdopen(fd, "wb") as stream:
p = pickle.dump(data, stream, -1)
stream.flush()
- os.chmod(tmpfile, 0664)
+ os.chmod(tmpfile, 0o664)
os.rename(tmpfile, sigfile)
except (OSError, IOError) as err:
try:
@@ -298,23 +294,25 @@ class SignatureGeneratorBasic(SignatureGenerator):
computed_basehash = calc_basehash(data)
if computed_basehash != self.basehash[k]:
- bb.error("Basehash mismatch %s verses %s for %s" % (computed_basehash, self.basehash[k], k))
- if k in self.taskhash:
+ bb.error("Basehash mismatch %s versus %s for %s" % (computed_basehash, self.basehash[k], k))
+ if runtime and k in self.taskhash:
computed_taskhash = calc_taskhash(data)
if computed_taskhash != self.taskhash[k]:
- bb.error("Taskhash mismatch %s verses %s for %s" % (computed_taskhash, self.taskhash[k], k))
+ bb.error("Taskhash mismatch %s versus %s for %s" % (computed_taskhash, self.taskhash[k], k))
- def dump_sigs(self, dataCache, options):
+ def dump_sigs(self, dataCaches, options):
for fn in self.taskdeps:
for task in self.taskdeps[fn]:
+ tid = fn + ":" + task
+ (mc, _, _) = bb.runqueue.split_tid(tid)
k = fn + "." + task
if k not in self.taskhash:
continue
- if dataCache.basetaskhash[k] != self.basehash[k]:
+ if dataCaches[mc].basetaskhash[k] != self.basehash[k]:
bb.error("Bitbake's cached basehash does not match the one we just generated (%s)!" % k)
- bb.error("The mismatched hashes were %s and %s" % (dataCache.basetaskhash[k], self.basehash[k]))
- self.dump_sigtask(fn, task, dataCache.stamp[fn], True)
+ bb.error("The mismatched hashes were %s and %s" % (dataCaches[mc].basetaskhash[k], self.basehash[k]))
+ self.dump_sigtask(fn, task, dataCaches[mc].stamp[fn], True)
class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
name = "basichash"
@@ -368,10 +366,12 @@ def clean_basepaths_list(a):
def compare_sigfiles(a, b, recursecb = None):
output = []
- p1 = pickle.Unpickler(open(a, "rb"))
- a_data = p1.load()
- p2 = pickle.Unpickler(open(b, "rb"))
- b_data = p2.load()
+ with open(a, 'rb') as f:
+ p1 = pickle.Unpickler(f)
+ a_data = p1.load()
+ with open(b, 'rb') as f:
+ p2 = pickle.Unpickler(f)
+ b_data = p2.load()
def dict_diff(a, b, whitelist=set()):
sa = set(a.keys())
@@ -453,6 +453,11 @@ def compare_sigfiles(a, b, recursecb = None):
for dep in changed:
output.append("Variable %s value changed from '%s' to '%s'" % (dep, a_data['varvals'][dep], b_data['varvals'][dep]))
+ if not 'file_checksum_values' in a_data:
+ a_data['file_checksum_values'] = {}
+ if not 'file_checksum_values' in b_data:
+ b_data['file_checksum_values'] = {}
+
changed, added, removed = file_checksums_diff(a_data['file_checksum_values'], b_data['file_checksum_values'])
if changed:
for f, old, new in changed:
@@ -464,6 +469,10 @@ def compare_sigfiles(a, b, recursecb = None):
for f in removed:
output.append("Dependency on checksum of file %s was removed" % (f))
+ if not 'runtaskdeps' in a_data:
+ a_data['runtaskdeps'] = {}
+ if not 'runtaskdeps' in b_data:
+ b_data['runtaskdeps'] = {}
if len(a_data['runtaskdeps']) != len(b_data['runtaskdeps']):
changed = ["Number of task dependencies changed"]
@@ -536,7 +545,7 @@ def calc_basehash(sigdata):
if val is not None:
basedata = basedata + str(val)
- return hashlib.md5(basedata).hexdigest()
+ return hashlib.md5(basedata.encode("utf-8")).hexdigest()
def calc_taskhash(sigdata):
data = sigdata['basehash']
@@ -553,14 +562,15 @@ def calc_taskhash(sigdata):
else:
data = data + sigdata['taint']
- return hashlib.md5(data).hexdigest()
+ return hashlib.md5(data.encode("utf-8")).hexdigest()
def dump_sigfile(a):
output = []
- p1 = pickle.Unpickler(open(a, "rb"))
- a_data = p1.load()
+ with open(a, 'rb') as f:
+ p1 = pickle.Unpickler(f)
+ a_data = p1.load()
output.append("basewhitelist: %s" % (a_data['basewhitelist']))
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/taskdata.py b/import-layers/yocto-poky/bitbake/lib/bb/taskdata.py
index 9ae52d77d..d8bdbcabf 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/taskdata.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/taskdata.py
@@ -37,27 +37,24 @@ def re_match_strings(target, strings):
return any(name == target or re.match(name, target)
for name in strings)
+class TaskEntry:
+ def __init__(self):
+ self.tdepends = []
+ self.idepends = []
+ self.irdepends = []
+
class TaskData:
"""
BitBake Task Data implementation
"""
def __init__(self, abort = True, tryaltconfigs = False, skiplist = None, allowincomplete = False):
- self.build_names_index = []
- self.run_names_index = []
- self.fn_index = []
-
self.build_targets = {}
self.run_targets = {}
self.external_targets = []
- self.tasks_fnid = []
- self.tasks_name = []
- self.tasks_tdepends = []
- self.tasks_idepends = []
- self.tasks_irdepends = []
- # Cache to speed up task ID lookups
- self.tasks_lookup = {}
+ self.seenfns = []
+ self.taskentries = {}
self.depids = {}
self.rdepids = {}
@@ -66,7 +63,7 @@ class TaskData:
self.failed_deps = []
self.failed_rdeps = []
- self.failed_fnids = []
+ self.failed_fns = []
self.abort = abort
self.tryaltconfigs = tryaltconfigs
@@ -74,88 +71,6 @@ class TaskData:
self.skiplist = skiplist
- def getbuild_id(self, name):
- """
- Return an ID number for the build target name.
- If it doesn't exist, create one.
- """
- if not name in self.build_names_index:
- self.build_names_index.append(name)
- return len(self.build_names_index) - 1
-
- return self.build_names_index.index(name)
-
- def getrun_id(self, name):
- """
- Return an ID number for the run target name.
- If it doesn't exist, create one.
- """
- if not name in self.run_names_index:
- self.run_names_index.append(name)
- return len(self.run_names_index) - 1
-
- return self.run_names_index.index(name)
-
- def getfn_id(self, name):
- """
- Return an ID number for the filename.
- If it doesn't exist, create one.
- """
- if not name in self.fn_index:
- self.fn_index.append(name)
- return len(self.fn_index) - 1
-
- return self.fn_index.index(name)
-
- def gettask_ids(self, fnid):
- """
- Return an array of the ID numbers matching a given fnid.
- """
- ids = []
- if fnid in self.tasks_lookup:
- for task in self.tasks_lookup[fnid]:
- ids.append(self.tasks_lookup[fnid][task])
- return ids
-
- def gettask_id_fromfnid(self, fnid, task):
- """
- Return an ID number for the task matching fnid and task.
- """
- if fnid in self.tasks_lookup:
- if task in self.tasks_lookup[fnid]:
- return self.tasks_lookup[fnid][task]
-
- return None
-
- def gettask_id(self, fn, task, create = True):
- """
- Return an ID number for the task matching fn and task.
- If it doesn't exist, create one by default.
- Optionally return None instead.
- """
- fnid = self.getfn_id(fn)
-
- if fnid in self.tasks_lookup:
- if task in self.tasks_lookup[fnid]:
- return self.tasks_lookup[fnid][task]
-
- if not create:
- return None
-
- self.tasks_name.append(task)
- self.tasks_fnid.append(fnid)
- self.tasks_tdepends.append([])
- self.tasks_idepends.append([])
- self.tasks_irdepends.append([])
-
- listid = len(self.tasks_name) - 1
-
- if fnid not in self.tasks_lookup:
- self.tasks_lookup[fnid] = {}
- self.tasks_lookup[fnid][task] = listid
-
- return listid
-
def add_tasks(self, fn, dataCache):
"""
Add tasks for a given fn to the database
@@ -163,29 +78,31 @@ class TaskData:
task_deps = dataCache.task_deps[fn]
- fnid = self.getfn_id(fn)
-
- if fnid in self.failed_fnids:
+ if fn in self.failed_fns:
bb.msg.fatal("TaskData", "Trying to re-add a failed file? Something is broken...")
# Check if we've already seen this fn
- if fnid in self.tasks_fnid:
+ if fn in self.seenfns:
return
+ self.seenfns.append(fn)
+
self.add_extra_deps(fn, dataCache)
for task in task_deps['tasks']:
+ tid = "%s:%s" % (fn, task)
+ self.taskentries[tid] = TaskEntry()
+
# Work out task dependencies
parentids = []
for dep in task_deps['parents'][task]:
if dep not in task_deps['tasks']:
bb.debug(2, "Not adding dependeny of %s on %s since %s does not exist" % (task, dep, dep))
continue
- parentid = self.gettask_id(fn, dep)
+ parentid = "%s:%s" % (fn, dep)
parentids.append(parentid)
- taskid = self.gettask_id(fn, task)
- self.tasks_tdepends[taskid].extend(parentids)
+ self.taskentries[tid].tdepends.extend(parentids)
# Touch all intertask dependencies
if 'depends' in task_deps and task in task_deps['depends']:
@@ -194,29 +111,30 @@ class TaskData:
if dep:
if ":" not in dep:
bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'depends' should be specified in the form 'packagename:task'" % (fn, dep))
- ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1]))
- self.tasks_idepends[taskid].extend(ids)
+ ids.append(((dep.split(":")[0]), dep.split(":")[1]))
+ self.seen_build_target(dep.split(":")[0])
+ self.taskentries[tid].idepends.extend(ids)
if 'rdepends' in task_deps and task in task_deps['rdepends']:
ids = []
for dep in task_deps['rdepends'][task].split():
if dep:
if ":" not in dep:
bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'rdepends' should be specified in the form 'packagename:task'" % (fn, dep))
- ids.append(((self.getrun_id(dep.split(":")[0])), dep.split(":")[1]))
- self.tasks_irdepends[taskid].extend(ids)
-
+ ids.append(((dep.split(":")[0]), dep.split(":")[1]))
+ self.seen_run_target(dep.split(":")[0])
+ self.taskentries[tid].irdepends.extend(ids)
# Work out build dependencies
- if not fnid in self.depids:
- dependids = {}
+ if not fn in self.depids:
+ dependids = set()
for depend in dataCache.deps[fn]:
- dependids[self.getbuild_id(depend)] = None
- self.depids[fnid] = dependids.keys()
+ dependids.add(depend)
+ self.depids[fn] = list(dependids)
logger.debug(2, "Added dependencies %s for %s", str(dataCache.deps[fn]), fn)
# Work out runtime dependencies
- if not fnid in self.rdepids:
- rdependids = {}
+ if not fn in self.rdepids:
+ rdependids = set()
rdepends = dataCache.rundeps[fn]
rrecs = dataCache.runrecs[fn]
rdependlist = []
@@ -224,24 +142,26 @@ class TaskData:
for package in rdepends:
for rdepend in rdepends[package]:
rdependlist.append(rdepend)
- rdependids[self.getrun_id(rdepend)] = None
+ rdependids.add(rdepend)
for package in rrecs:
for rdepend in rrecs[package]:
rreclist.append(rdepend)
- rdependids[self.getrun_id(rdepend)] = None
+ rdependids.add(rdepend)
if rdependlist:
logger.debug(2, "Added runtime dependencies %s for %s", str(rdependlist), fn)
if rreclist:
logger.debug(2, "Added runtime recommendations %s for %s", str(rreclist), fn)
- self.rdepids[fnid] = rdependids.keys()
+ self.rdepids[fn] = list(rdependids)
- for dep in self.depids[fnid]:
+ for dep in self.depids[fn]:
+ self.seen_build_target(dep)
if dep in self.failed_deps:
- self.fail_fnid(fnid)
+ self.fail_fn(fn)
return
- for dep in self.rdepids[fnid]:
+ for dep in self.rdepids[fn]:
+ self.seen_run_target(dep)
if dep in self.failed_rdeps:
- self.fail_fnid(fnid)
+ self.fail_fn(fn)
return
def add_extra_deps(self, fn, dataCache):
@@ -263,9 +183,7 @@ class TaskData:
"""
Have we a build target matching this name?
"""
- targetid = self.getbuild_id(target)
-
- if targetid in self.build_targets:
+ if target in self.build_targets and self.build_targets[target]:
return True
return False
@@ -273,50 +191,54 @@ class TaskData:
"""
Have we a runtime target matching this name?
"""
- targetid = self.getrun_id(target)
-
- if targetid in self.run_targets:
+ if target in self.run_targets and self.run_targets[target]:
return True
return False
+ def seen_build_target(self, name):
+ """
+ Maintain a list of build targets
+ """
+ if name not in self.build_targets:
+ self.build_targets[name] = []
+
def add_build_target(self, fn, item):
"""
Add a build target.
If already present, append the provider fn to the list
"""
- targetid = self.getbuild_id(item)
- fnid = self.getfn_id(fn)
-
- if targetid in self.build_targets:
- if fnid in self.build_targets[targetid]:
+ if item in self.build_targets:
+ if fn in self.build_targets[item]:
return
- self.build_targets[targetid].append(fnid)
+ self.build_targets[item].append(fn)
return
- self.build_targets[targetid] = [fnid]
+ self.build_targets[item] = [fn]
+
+ def seen_run_target(self, name):
+ """
+ Maintain a list of runtime build targets
+ """
+ if name not in self.run_targets:
+ self.run_targets[name] = []
def add_runtime_target(self, fn, item):
"""
Add a runtime target.
If already present, append the provider fn to the list
"""
- targetid = self.getrun_id(item)
- fnid = self.getfn_id(fn)
-
- if targetid in self.run_targets:
- if fnid in self.run_targets[targetid]:
+ if item in self.run_targets:
+ if fn in self.run_targets[item]:
return
- self.run_targets[targetid].append(fnid)
+ self.run_targets[item].append(fn)
return
- self.run_targets[targetid] = [fnid]
+ self.run_targets[item] = [fn]
- def mark_external_target(self, item):
+ def mark_external_target(self, target):
"""
Mark a build target as being externally requested
"""
- targetid = self.getbuild_id(item)
-
- if targetid not in self.external_targets:
- self.external_targets.append(targetid)
+ if target not in self.external_targets:
+ self.external_targets.append(target)
def get_unresolved_build_targets(self, dataCache):
"""
@@ -324,12 +246,12 @@ class TaskData:
are unknown.
"""
unresolved = []
- for target in self.build_names_index:
+ for target in self.build_targets:
if re_match_strings(target, dataCache.ignored_dependencies):
continue
- if self.build_names_index.index(target) in self.failed_deps:
+ if target in self.failed_deps:
continue
- if not self.have_build_target(target):
+ if not self.build_targets[target]:
unresolved.append(target)
return unresolved
@@ -339,12 +261,12 @@ class TaskData:
are unknown.
"""
unresolved = []
- for target in self.run_names_index:
+ for target in self.run_targets:
if re_match_strings(target, dataCache.ignored_dependencies):
continue
- if self.run_names_index.index(target) in self.failed_rdeps:
+ if target in self.failed_rdeps:
continue
- if not self.have_runtime_target(target):
+ if not self.run_targets[target]:
unresolved.append(target)
return unresolved
@@ -352,50 +274,26 @@ class TaskData:
"""
Return a list of providers of item
"""
- targetid = self.getbuild_id(item)
+ return self.build_targets[item]
- return self.build_targets[targetid]
-
- def get_dependees(self, itemid):
+ def get_dependees(self, item):
"""
Return a list of targets which depend on item
"""
dependees = []
- for fnid in self.depids:
- if itemid in self.depids[fnid]:
- dependees.append(fnid)
- return dependees
-
- def get_dependees_str(self, item):
- """
- Return a list of targets which depend on item as a user readable string
- """
- itemid = self.getbuild_id(item)
- dependees = []
- for fnid in self.depids:
- if itemid in self.depids[fnid]:
- dependees.append(self.fn_index[fnid])
+ for fn in self.depids:
+ if item in self.depids[fn]:
+ dependees.append(fn)
return dependees
- def get_rdependees(self, itemid):
+ def get_rdependees(self, item):
"""
Return a list of targets which depend on runtime item
"""
dependees = []
- for fnid in self.rdepids:
- if itemid in self.rdepids[fnid]:
- dependees.append(fnid)
- return dependees
-
- def get_rdependees_str(self, item):
- """
- Return a list of targets which depend on runtime item as a user readable string
- """
- itemid = self.getrun_id(item)
- dependees = []
- for fnid in self.rdepids:
- if itemid in self.rdepids[fnid]:
- dependees.append(self.fn_index[fnid])
+ for fn in self.rdepids:
+ if item in self.rdepids[fn]:
+ dependees.append(fn)
return dependees
def get_reasons(self, item, runtime=False):
@@ -431,7 +329,7 @@ class TaskData:
except bb.providers.NoProvider:
if self.abort:
raise
- self.remove_buildtarget(self.getbuild_id(item))
+ self.remove_buildtarget(item)
self.mark_external_target(item)
@@ -446,14 +344,14 @@ class TaskData:
return
if not item in dataCache.providers:
- close_matches = self.get_close_matches(item, dataCache.providers.keys())
+ close_matches = self.get_close_matches(item, list(dataCache.providers.keys()))
# Is it in RuntimeProviders ?
all_p = bb.providers.getRuntimeProviders(dataCache, item)
for fn in all_p:
new = dataCache.pkg_fn[fn] + " RPROVIDES " + item
if new not in close_matches:
close_matches.append(new)
- bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item), reasons=self.get_reasons(item), close_matches=close_matches), cfgData)
+ bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees(item), reasons=self.get_reasons(item), close_matches=close_matches), cfgData)
raise bb.providers.NoProvider(item)
if self.have_build_target(item):
@@ -462,10 +360,10 @@ class TaskData:
all_p = dataCache.providers[item]
eligible, foundUnique = bb.providers.filterProviders(all_p, item, cfgData, dataCache)
- eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
+ eligible = [p for p in eligible if not p in self.failed_fns]
if not eligible:
- bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees_str(item), reasons=["No eligible PROVIDERs exist for '%s'" % item]), cfgData)
+ bb.event.fire(bb.event.NoProvider(item, dependees=self.get_dependees(item), reasons=["No eligible PROVIDERs exist for '%s'" % item]), cfgData)
raise bb.providers.NoProvider(item)
if len(eligible) > 1 and foundUnique == False:
@@ -477,8 +375,7 @@ class TaskData:
self.consider_msgs_cache.append(item)
for fn in eligible:
- fnid = self.getfn_id(fn)
- if fnid in self.failed_fnids:
+ if fn in self.failed_fns:
continue
logger.debug(2, "adding %s to satisfy %s", fn, item)
self.add_build_target(fn, item)
@@ -502,14 +399,14 @@ class TaskData:
all_p = bb.providers.getRuntimeProviders(dataCache, item)
if not all_p:
- bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item), reasons=self.get_reasons(item, True)), cfgData)
+ bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees(item), reasons=self.get_reasons(item, True)), cfgData)
raise bb.providers.NoRProvider(item)
eligible, numberPreferred = bb.providers.filterProvidersRunTime(all_p, item, cfgData, dataCache)
- eligible = [p for p in eligible if not self.getfn_id(p) in self.failed_fnids]
+ eligible = [p for p in eligible if not p in self.failed_fns]
if not eligible:
- bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees_str(item), reasons=["No eligible RPROVIDERs exist for '%s'" % item]), cfgData)
+ bb.event.fire(bb.event.NoProvider(item, runtime=True, dependees=self.get_rdependees(item), reasons=["No eligible RPROVIDERs exist for '%s'" % item]), cfgData)
raise bb.providers.NoRProvider(item)
if len(eligible) > 1 and numberPreferred == 0:
@@ -531,82 +428,80 @@ class TaskData:
# run through the list until we find one that we can build
for fn in eligible:
- fnid = self.getfn_id(fn)
- if fnid in self.failed_fnids:
+ if fn in self.failed_fns:
continue
logger.debug(2, "adding '%s' to satisfy runtime '%s'", fn, item)
self.add_runtime_target(fn, item)
self.add_tasks(fn, dataCache)
- def fail_fnid(self, fnid, missing_list=None):
+ def fail_fn(self, fn, missing_list=None):
"""
Mark a file as failed (unbuildable)
Remove any references from build and runtime provider lists
missing_list, A list of missing requirements for this target
"""
- if fnid in self.failed_fnids:
+ if fn in self.failed_fns:
return
if not missing_list:
missing_list = []
- logger.debug(1, "File '%s' is unbuildable, removing...", self.fn_index[fnid])
- self.failed_fnids.append(fnid)
+ logger.debug(1, "File '%s' is unbuildable, removing...", fn)
+ self.failed_fns.append(fn)
for target in self.build_targets:
- if fnid in self.build_targets[target]:
- self.build_targets[target].remove(fnid)
+ if fn in self.build_targets[target]:
+ self.build_targets[target].remove(fn)
if len(self.build_targets[target]) == 0:
self.remove_buildtarget(target, missing_list)
for target in self.run_targets:
- if fnid in self.run_targets[target]:
- self.run_targets[target].remove(fnid)
+ if fn in self.run_targets[target]:
+ self.run_targets[target].remove(fn)
if len(self.run_targets[target]) == 0:
self.remove_runtarget(target, missing_list)
- def remove_buildtarget(self, targetid, missing_list=None):
+ def remove_buildtarget(self, target, missing_list=None):
"""
Mark a build target as failed (unbuildable)
Trigger removal of any files that have this as a dependency
"""
if not missing_list:
- missing_list = [self.build_names_index[targetid]]
+ missing_list = [target]
else:
- missing_list = [self.build_names_index[targetid]] + missing_list
- logger.verbose("Target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s", self.build_names_index[targetid], missing_list)
- self.failed_deps.append(targetid)
- dependees = self.get_dependees(targetid)
- for fnid in dependees:
- self.fail_fnid(fnid, missing_list)
- for taskid in xrange(len(self.tasks_idepends)):
- idepends = self.tasks_idepends[taskid]
- for (idependid, idependtask) in idepends:
- if idependid == targetid:
- self.fail_fnid(self.tasks_fnid[taskid], missing_list)
-
- if self.abort and targetid in self.external_targets:
- target = self.build_names_index[targetid]
+ missing_list = [target] + missing_list
+ logger.verbose("Target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s", target, missing_list)
+ self.failed_deps.append(target)
+ dependees = self.get_dependees(target)
+ for fn in dependees:
+ self.fail_fn(fn, missing_list)
+ for tid in self.taskentries:
+ for (idepend, idependtask) in self.taskentries[tid].idepends:
+ if idepend == target:
+ fn = tid.rsplit(":",1)[0]
+ self.fail_fn(fn, missing_list)
+
+ if self.abort and target in self.external_targets:
logger.error("Required build target '%s' has no buildable providers.\nMissing or unbuildable dependency chain was: %s", target, missing_list)
raise bb.providers.NoProvider(target)
- def remove_runtarget(self, targetid, missing_list=None):
+ def remove_runtarget(self, target, missing_list=None):
"""
Mark a run target as failed (unbuildable)
Trigger removal of any files that have this as a dependency
"""
if not missing_list:
- missing_list = [self.run_names_index[targetid]]
+ missing_list = [target]
else:
- missing_list = [self.run_names_index[targetid]] + missing_list
-
- logger.info("Runtime target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s", self.run_names_index[targetid], missing_list)
- self.failed_rdeps.append(targetid)
- dependees = self.get_rdependees(targetid)
- for fnid in dependees:
- self.fail_fnid(fnid, missing_list)
- for taskid in xrange(len(self.tasks_irdepends)):
- irdepends = self.tasks_irdepends[taskid]
- for (idependid, idependtask) in irdepends:
- if idependid == targetid:
- self.fail_fnid(self.tasks_fnid[taskid], missing_list)
+ missing_list = [target] + missing_list
+
+ logger.info("Runtime target '%s' is unbuildable, removing...\nMissing or unbuildable dependency chain was: %s", target, missing_list)
+ self.failed_rdeps.append(target)
+ dependees = self.get_rdependees(target)
+ for fn in dependees:
+ self.fail_fn(fn, missing_list)
+ for tid in self.taskentries:
+ for (idepend, idependtask) in self.taskentries[tid].irdepends:
+ if idepend == target:
+ fn = tid.rsplit(":",1)[0]
+ self.fail_fn(fn, missing_list)
def add_unresolved(self, cfgData, dataCache):
"""
@@ -620,17 +515,16 @@ class TaskData:
self.add_provider_internal(cfgData, dataCache, target)
added = added + 1
except bb.providers.NoProvider:
- targetid = self.getbuild_id(target)
- if self.abort and targetid in self.external_targets and not self.allowincomplete:
+ if self.abort and target in self.external_targets and not self.allowincomplete:
raise
if not self.allowincomplete:
- self.remove_buildtarget(targetid)
+ self.remove_buildtarget(target)
for target in self.get_unresolved_run_targets(dataCache):
try:
self.add_rprovider(cfgData, dataCache, target)
added = added + 1
except (bb.providers.NoRProvider, bb.providers.MultipleRProvider):
- self.remove_runtarget(self.getrun_id(target))
+ self.remove_runtarget(target)
logger.debug(1, "Resolved " + str(added) + " extra dependencies")
if added == 0:
break
@@ -638,13 +532,13 @@ class TaskData:
def get_providermap(self, prefix=None):
provmap = {}
- for name in self.build_names_index:
+ for name in self.build_targets:
if prefix and not name.startswith(prefix):
continue
if self.have_build_target(name):
provider = self.get_provider(name)
if provider:
- provmap[name] = self.fn_index[provider[0]]
+ provmap[name] = provider[0]
return provmap
def dump_data(self):
@@ -652,39 +546,37 @@ class TaskData:
Dump some debug information on the internal data structures
"""
logger.debug(3, "build_names:")
- logger.debug(3, ", ".join(self.build_names_index))
+ logger.debug(3, ", ".join(self.build_targets))
logger.debug(3, "run_names:")
- logger.debug(3, ", ".join(self.run_names_index))
+ logger.debug(3, ", ".join(self.run_targets))
logger.debug(3, "build_targets:")
- for buildid in xrange(len(self.build_names_index)):
- target = self.build_names_index[buildid]
+ for target in self.build_targets:
targets = "None"
- if buildid in self.build_targets:
- targets = self.build_targets[buildid]
- logger.debug(3, " (%s)%s: %s", buildid, target, targets)
+ if target in self.build_targets:
+ targets = self.build_targets[target]
+ logger.debug(3, " %s: %s", target, targets)
logger.debug(3, "run_targets:")
- for runid in xrange(len(self.run_names_index)):
- target = self.run_names_index[runid]
+ for target in self.run_targets:
targets = "None"
- if runid in self.run_targets:
- targets = self.run_targets[runid]
- logger.debug(3, " (%s)%s: %s", runid, target, targets)
+ if target in self.run_targets:
+ targets = self.run_targets[target]
+ logger.debug(3, " %s: %s", target, targets)
logger.debug(3, "tasks:")
- for task in xrange(len(self.tasks_name)):
- logger.debug(3, " (%s)%s - %s: %s",
- task,
- self.fn_index[self.tasks_fnid[task]],
- self.tasks_name[task],
- self.tasks_tdepends[task])
+ for tid in self.taskentries:
+ logger.debug(3, " %s: %s %s %s",
+ tid,
+ self.taskentries[tid].idepends,
+ self.taskentries[tid].irdepends,
+ self.taskentries[tid].tdepends)
logger.debug(3, "dependency ids (per fn):")
- for fnid in self.depids:
- logger.debug(3, " %s %s: %s", fnid, self.fn_index[fnid], self.depids[fnid])
+ for fn in self.depids:
+ logger.debug(3, " %s: %s", fn, self.depids[fn])
logger.debug(3, "runtime dependency ids (per fn):")
- for fnid in self.rdepids:
- logger.debug(3, " %s %s: %s", fnid, self.fn_index[fnid], self.rdepids[fnid])
+ for fn in self.rdepids:
+ logger.debug(3, " %s: %s", fn, self.rdepids[fn])
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tests/codeparser.py b/import-layers/yocto-poky/bitbake/lib/bb/tests/codeparser.py
index bb820e403..14f0e2572 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tests/codeparser.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tests/codeparser.py
@@ -191,8 +191,8 @@ class PythonReferenceTest(ReferenceTest):
if hasattr(bb.utils, "_context"):
self.context = bb.utils._context
else:
- import __builtin__
- self.context = __builtin__.__dict__
+ import builtins
+ self.context = builtins.__dict__
def parseExpression(self, exp):
parsedvar = self.d.expandWithRefs(exp, None)
@@ -302,7 +302,7 @@ bb.data.getVar(a(), d, False)
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
- self.assertEquals(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
+ self.assertEqual(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
shelldata = """
@@ -349,7 +349,7 @@ esac
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
- self.assertEquals(deps, set(["somevar", "inverted"] + execs))
+ self.assertEqual(deps, set(["somevar", "inverted"] + execs))
def test_vardeps(self):
@@ -359,7 +359,7 @@ esac
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
- self.assertEquals(deps, set(["oe_libinstall"]))
+ self.assertEqual(deps, set(["oe_libinstall"]))
def test_vardeps_expand(self):
self.d.setVar("oe_libinstall", "echo test")
@@ -368,7 +368,7 @@ esac
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
- self.assertEquals(deps, set(["oe_libinstall"]))
+ self.assertEqual(deps, set(["oe_libinstall"]))
#Currently no wildcard support
#def test_vardeps_wildcards(self):
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tests/cow.py b/import-layers/yocto-poky/bitbake/lib/bb/tests/cow.py
index 35c5841f3..d149d84d0 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tests/cow.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tests/cow.py
@@ -34,14 +34,14 @@ class COWTestCase(unittest.TestCase):
from bb.COW import COWDictBase
a = COWDictBase.copy()
- self.assertEquals(False, a.has_key('a'))
+ self.assertEqual(False, 'a' in a)
a['a'] = 'a'
a['b'] = 'b'
- self.assertEquals(True, a.has_key('a'))
- self.assertEquals(True, a.has_key('b'))
- self.assertEquals('a', a['a'] )
- self.assertEquals('b', a['b'] )
+ self.assertEqual(True, 'a' in a)
+ self.assertEqual(True, 'b' in a)
+ self.assertEqual('a', a['a'] )
+ self.assertEqual('b', a['b'] )
def testCopyCopy(self):
"""
@@ -60,31 +60,31 @@ class COWTestCase(unittest.TestCase):
c['a'] = 30
# test separation of the two instances
- self.assertEquals(False, c.has_key('c'))
- self.assertEquals(30, c['a'])
- self.assertEquals(10, b['a'])
+ self.assertEqual(False, 'c' in c)
+ self.assertEqual(30, c['a'])
+ self.assertEqual(10, b['a'])
# test copy
b_2 = b.copy()
c_2 = c.copy()
- self.assertEquals(False, c_2.has_key('c'))
- self.assertEquals(10, b_2['a'])
+ self.assertEqual(False, 'c' in c_2)
+ self.assertEqual(10, b_2['a'])
b_2['d'] = 40
- self.assertEquals(False, c_2.has_key('d'))
- self.assertEquals(True, b_2.has_key('d'))
- self.assertEquals(40, b_2['d'])
- self.assertEquals(False, b.has_key('d'))
- self.assertEquals(False, c.has_key('d'))
+ self.assertEqual(False, 'd' in c_2)
+ self.assertEqual(True, 'd' in b_2)
+ self.assertEqual(40, b_2['d'])
+ self.assertEqual(False, 'd' in b)
+ self.assertEqual(False, 'd' in c)
c_2['d'] = 30
- self.assertEquals(True, c_2.has_key('d'))
- self.assertEquals(True, b_2.has_key('d'))
- self.assertEquals(30, c_2['d'])
- self.assertEquals(40, b_2['d'])
- self.assertEquals(False, b.has_key('d'))
- self.assertEquals(False, c.has_key('d'))
+ self.assertEqual(True, 'd' in c_2)
+ self.assertEqual(True, 'd' in b_2)
+ self.assertEqual(30, c_2['d'])
+ self.assertEqual(40, b_2['d'])
+ self.assertEqual(False, 'd' in b)
+ self.assertEqual(False, 'd' in c)
# test copy of the copy
c_3 = c_2.copy()
@@ -92,19 +92,19 @@ class COWTestCase(unittest.TestCase):
b_3_2 = b_2.copy()
c_3['e'] = 4711
- self.assertEquals(4711, c_3['e'])
- self.assertEquals(False, c_2.has_key('e'))
- self.assertEquals(False, b_3.has_key('e'))
- self.assertEquals(False, b_3_2.has_key('e'))
- self.assertEquals(False, b_2.has_key('e'))
+ self.assertEqual(4711, c_3['e'])
+ self.assertEqual(False, 'e' in c_2)
+ self.assertEqual(False, 'e' in b_3)
+ self.assertEqual(False, 'e' in b_3_2)
+ self.assertEqual(False, 'e' in b_2)
b_3['e'] = 'viel'
- self.assertEquals('viel', b_3['e'])
- self.assertEquals(4711, c_3['e'])
- self.assertEquals(False, c_2.has_key('e'))
- self.assertEquals(True, b_3.has_key('e'))
- self.assertEquals(False, b_3_2.has_key('e'))
- self.assertEquals(False, b_2.has_key('e'))
+ self.assertEqual('viel', b_3['e'])
+ self.assertEqual(4711, c_3['e'])
+ self.assertEqual(False, 'e' in c_2)
+ self.assertEqual(True, 'e' in b_3)
+ self.assertEqual(False, 'e' in b_3_2)
+ self.assertEqual(False, 'e' in b_2)
def testCow(self):
from bb.COW import COWDictBase
@@ -115,12 +115,12 @@ class COWTestCase(unittest.TestCase):
copy = c.copy()
- self.assertEquals(1027, c['123'])
- self.assertEquals(4711, c['other'])
- self.assertEquals({'abc':10, 'bcd':20}, c['d'])
- self.assertEquals(1027, copy['123'])
- self.assertEquals(4711, copy['other'])
- self.assertEquals({'abc':10, 'bcd':20}, copy['d'])
+ self.assertEqual(1027, c['123'])
+ self.assertEqual(4711, c['other'])
+ self.assertEqual({'abc':10, 'bcd':20}, c['d'])
+ self.assertEqual(1027, copy['123'])
+ self.assertEqual(4711, copy['other'])
+ self.assertEqual({'abc':10, 'bcd':20}, copy['d'])
# cow it now
copy['123'] = 1028
@@ -128,9 +128,9 @@ class COWTestCase(unittest.TestCase):
copy['d']['abc'] = 20
- self.assertEquals(1027, c['123'])
- self.assertEquals(4711, c['other'])
- self.assertEquals({'abc':10, 'bcd':20}, c['d'])
- self.assertEquals(1028, copy['123'])
- self.assertEquals(4712, copy['other'])
- self.assertEquals({'abc':20, 'bcd':20}, copy['d'])
+ self.assertEqual(1027, c['123'])
+ self.assertEqual(4711, c['other'])
+ self.assertEqual({'abc':10, 'bcd':20}, c['d'])
+ self.assertEqual(1028, copy['123'])
+ self.assertEqual(4712, copy['other'])
+ self.assertEqual({'abc':20, 'bcd':20}, copy['d'])
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tests/data.py b/import-layers/yocto-poky/bitbake/lib/bb/tests/data.py
index 12232305c..b54eb0679 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tests/data.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tests/data.py
@@ -147,14 +147,14 @@ class DataExpansions(unittest.TestCase):
self.assertEqual(self.d.getVar("foo", False), None)
def test_keys(self):
- keys = self.d.keys()
- self.assertEqual(keys, ['value_of_foo', 'foo', 'bar'])
+ keys = list(self.d.keys())
+ self.assertCountEqual(keys, ['value_of_foo', 'foo', 'bar'])
def test_keys_deletion(self):
newd = bb.data.createCopy(self.d)
newd.delVar("bar")
- keys = newd.keys()
- self.assertEqual(keys, ['value_of_foo', 'foo'])
+ keys = list(newd.keys())
+ self.assertCountEqual(keys, ['value_of_foo', 'foo'])
class TestNestedExpansions(unittest.TestCase):
def setUp(self):
@@ -334,7 +334,7 @@ class TestOverrides(unittest.TestCase):
self.d.setVar("TEST2_bar", "testvalue2")
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST2", True), "testvalue2")
- self.assertItemsEqual(self.d.keys(), ['TEST', 'TEST2', 'OVERRIDES', 'TEST2_bar'])
+ self.assertCountEqual(list(self.d.keys()), ['TEST', 'TEST2', 'OVERRIDES', 'TEST2_bar'])
def test_multiple_override(self):
self.d.setVar("TEST_bar", "testvalue2")
@@ -342,7 +342,7 @@ class TestOverrides(unittest.TestCase):
self.d.setVar("TEST_foo", "testvalue4")
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST", True), "testvalue3")
- self.assertItemsEqual(self.d.keys(), ['TEST', 'TEST_foo', 'OVERRIDES', 'TEST_bar', 'TEST_local'])
+ self.assertCountEqual(list(self.d.keys()), ['TEST', 'TEST_foo', 'OVERRIDES', 'TEST_bar', 'TEST_local'])
def test_multiple_combined_overrides(self):
self.d.setVar("TEST_local_foo_bar", "testvalue3")
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tests/fetch.py b/import-layers/yocto-poky/bitbake/lib/bb/tests/fetch.py
index 4ba688bfe..0fd2c0216 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tests/fetch.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tests/fetch.py
@@ -22,6 +22,7 @@
import unittest
import tempfile
import subprocess
+import collections
import os
from bb.fetch2 import URI
from bb.fetch2 import FetchMethod
@@ -133,10 +134,10 @@ class URITest(unittest.TestCase):
'userinfo': 'anoncvs:anonymous',
'username': 'anoncvs',
'password': 'anonymous',
- 'params': {
- 'tag': 'V0-99-81',
- 'module': 'familiar/dist/ipkg'
- },
+ 'params': collections.OrderedDict([
+ ('tag', 'V0-99-81'),
+ ('module', 'familiar/dist/ipkg')
+ ]),
'query': {},
'relative': False
},
@@ -359,7 +360,10 @@ class FetcherTest(unittest.TestCase):
def tearDown(self):
os.chdir(self.origdir)
- bb.utils.prunedir(self.tempdir)
+ if os.environ.get("BB_TMPDIR_NOCLEAN") == "yes":
+ print("Not cleaning up %s. Please remove manually." % self.tempdir)
+ else:
+ bb.utils.prunedir(self.tempdir)
class MirrorUriTest(FetcherTest):
@@ -450,7 +454,7 @@ class MirrorUriTest(FetcherTest):
class FetcherLocalTest(FetcherTest):
def setUp(self):
def touch(fn):
- with file(fn, 'a'):
+ with open(fn, 'a'):
os.utime(fn, None)
super(FetcherLocalTest, self).setUp()
@@ -504,6 +508,15 @@ class FetcherLocalTest(FetcherTest):
tree = self.fetchUnpack(['file://dir/subdir/e;subdir=bar'])
self.assertEqual(tree, ['bar/dir/subdir/e'])
+ def test_local_absolutedir(self):
+ # Unpacking to an absolute path that is a subdirectory of the root
+ # should work
+ tree = self.fetchUnpack(['file://a;subdir=%s' % os.path.join(self.unpackdir, 'bar')])
+
+ # Unpacking to an absolute path outside of the root should fail
+ with self.assertRaises(bb.fetch2.UnpackError):
+ self.fetchUnpack(['file://a;subdir=/bin/sh'])
+
class FetcherNetworkTest(FetcherTest):
if os.environ.get("BB_SKIP_NETTESTS") == "yes":
@@ -584,6 +597,36 @@ class FetcherNetworkTest(FetcherTest):
url1 = url2 = "git://git.openembedded.org/bitbake;rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5;tag=270a05b0b4ba0959fe0624d2a4885d7b70426da5"
self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2)
+ def test_gitfetch_localusehead(self):
+ # Create dummy local Git repo
+ src_dir = tempfile.mkdtemp(dir=self.tempdir,
+ prefix='gitfetch_localusehead_')
+ src_dir = os.path.abspath(src_dir)
+ bb.process.run("git init", cwd=src_dir)
+ bb.process.run("git commit --allow-empty -m'Dummy commit'",
+ cwd=src_dir)
+ # Use other branch than master
+ bb.process.run("git checkout -b my-devel", cwd=src_dir)
+ bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
+ cwd=src_dir)
+ stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
+ orig_rev = stdout[0].strip()
+
+ # Fetch and check revision
+ self.d.setVar("SRCREV", "AUTOINC")
+ url = "git://" + src_dir + ";protocol=file;usehead=1"
+ fetcher = bb.fetch.Fetch([url], self.d)
+ fetcher.download()
+ fetcher.unpack(self.unpackdir)
+ stdout = bb.process.run("git rev-parse HEAD",
+ cwd=os.path.join(self.unpackdir, 'git'))
+ unpack_rev = stdout[0].strip()
+ self.assertEqual(orig_rev, unpack_rev)
+
+ def test_gitfetch_remoteusehead(self):
+ url = "git://git.openembedded.org/bitbake;usehead=1"
+ self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
+
def test_gitfetch_premirror(self):
url1 = "git://git.openembedded.org/bitbake"
url2 = "git://someserver.org/bitbake"
@@ -660,7 +703,7 @@ class URLHandle(unittest.TestCase):
datatable = {
"http://www.google.com/index.html" : ('http', 'www.google.com', '/index.html', '', '', {}),
"cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', '', {'module': 'familiar/dist/ipkg'}),
- "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', {'tag': 'V0-99-81', 'module': 'familiar/dist/ipkg'}),
+ "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', collections.OrderedDict([('tag', 'V0-99-81'), ('module', 'familiar/dist/ipkg')])),
"git://git.openembedded.org/bitbake;branch=@foo" : ('git', 'git.openembedded.org', '/bitbake', '', '', {'branch': '@foo'}),
"file://somelocation;someparam=1": ('file', '', 'somelocation', '', '', {'someparam': '1'}),
}
@@ -767,7 +810,6 @@ class FetchLatestVersionTest(FetcherTest):
class FetchCheckStatusTest(FetcherTest):
test_wget_uris = ["http://www.cups.org/software/1.7.2/cups-1.7.2-source.tar.bz2",
- "http://www.cups.org/software/ipptool/ipptool-20130731-linux-ubuntu-i686.tar.gz",
"http://www.cups.org/",
"http://downloads.yoctoproject.org/releases/sato/sato-engine-0.1.tar.gz",
"http://downloads.yoctoproject.org/releases/sato/sato-engine-0.2.tar.gz",
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tests/parse.py b/import-layers/yocto-poky/bitbake/lib/bb/tests/parse.py
index 6beb76a48..0b2706af0 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tests/parse.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tests/parse.py
@@ -50,7 +50,7 @@ C = "3"
def parsehelper(self, content, suffix = ".bb"):
f = tempfile.NamedTemporaryFile(suffix = suffix)
- f.write(content)
+ f.write(bytes(content, "utf-8"))
f.flush()
os.chdir(os.path.dirname(f.name))
return f
@@ -68,6 +68,23 @@ C = "3"
with self.assertRaises(bb.parse.ParseError):
d = bb.parse.handle(f.name, self.d)['']
+ unsettest = """
+A = "1"
+B = "2"
+B[flag] = "3"
+
+unset A
+unset B[flag]
+"""
+
+ def test_parse_unset(self):
+ f = self.parsehelper(self.unsettest)
+ d = bb.parse.handle(f.name, self.d)['']
+ self.assertEqual(d.getVar("A", True), None)
+ self.assertEqual(d.getVarFlag("A","flag", True), None)
+ self.assertEqual(d.getVar("B", True), "2")
+
+
overridetest = """
RRECOMMENDS_${PN} = "a"
RRECOMMENDS_${PN}_libc = "b"
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/tinfoil.py b/import-layers/yocto-poky/bitbake/lib/bb/tinfoil.py
index 7aa653f1a..8899e861c 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/tinfoil.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/tinfoil.py
@@ -59,6 +59,12 @@ class Tinfoil:
def register_idle_function(self, function, data):
pass
+ def __enter__(self):
+ return self
+
+ def __exit__(self, type, value, traceback):
+ self.shutdown()
+
def parseRecipes(self):
sys.stderr.write("Parsing recipes..")
self.logger.setLevel(logging.WARNING)
@@ -74,16 +80,52 @@ class Tinfoil:
self.logger.setLevel(logging.INFO)
sys.stderr.write("done.\n")
- self.cooker_data = self.cooker.recipecache
+ self.cooker_data = self.cooker.recipecaches['']
def prepare(self, config_only = False):
if not self.cooker_data:
if config_only:
self.cooker.parseConfiguration()
- self.cooker_data = self.cooker.recipecache
+ self.cooker_data = self.cooker.recipecaches['']
else:
self.parseRecipes()
+ def parse_recipe_file(self, fn, appends=True, appendlist=None, config_data=None):
+ """
+ Parse the specified recipe file (with or without bbappends)
+ and return a datastore object representing the environment
+ for the recipe.
+ Parameters:
+ fn: recipe file to parse - can be a file path or virtual
+ specification
+ appends: True to apply bbappends, False otherwise
+ appendlist: optional list of bbappend files to apply, if you
+ want to filter them
+ config_data: custom config datastore to use. NOTE: if you
+ specify config_data then you cannot use a virtual
+ specification for fn.
+ """
+ if appends and appendlist == []:
+ appends = False
+ if appends:
+ if appendlist:
+ appendfiles = appendlist
+ else:
+ if not hasattr(self.cooker, 'collection'):
+ raise Exception('You must call tinfoil.prepare() with config_only=False in order to get bbappends')
+ appendfiles = self.cooker.collection.get_file_appends(fn)
+ else:
+ appendfiles = None
+ if config_data:
+ # We have to use a different function here if we're passing in a datastore
+ localdata = bb.data.createCopy(config_data)
+ envdata = bb.cache.parse_recipe(localdata, fn, appendfiles)['']
+ else:
+ # Use the standard path
+ parser = bb.cache.NoCache(self.cooker.databuilder)
+ envdata = parser.loadDataFull(fn, appendfiles)
+ return envdata
+
def shutdown(self):
self.cooker.shutdown(force=True)
self.cooker.post_serve()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/buildinfohelper.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/buildinfohelper.py
index 93979054d..5b69660a3 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/buildinfohelper.py
@@ -21,28 +21,29 @@ import bb
import re
import os
-os.environ["DJANGO_SETTINGS_MODULE"] = "toaster.toastermain.settings"
-
-
import django
from django.utils import timezone
+import toaster
+# Add toaster module to the search path to help django.setup() find the right
+# modules
+sys.path.insert(0, os.path.dirname(toaster.__file__))
-def _configure_toaster():
- """ Add toaster to sys path for importing modules
- """
- sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'toaster'))
-_configure_toaster()
-
+#Set the DJANGO_SETTINGS_MODULE if it's not already set
+os.environ["DJANGO_SETTINGS_MODULE"] =\
+ os.environ.get("DJANGO_SETTINGS_MODULE",
+ "toaster.toastermain.settings")
+# Setup django framework (needs to be done before importing modules)
django.setup()
from orm.models import Build, Task, Recipe, Layer_Version, Layer, Target, LogMessage, HelpText
-from orm.models import Target_Image_File, BuildArtifact
+from orm.models import Target_Image_File, TargetKernelFile, TargetSDKFile
from orm.models import Variable, VariableHistory
from orm.models import Package, Package_File, Target_Installed_Package, Target_File
from orm.models import Task_Dependency, Package_Dependency
from orm.models import Recipe_Dependency, Provides
from orm.models import Project, CustomImagePackage, CustomImageRecipe
+from orm.models import signal_runbuilds
from bldcontrol.models import BuildEnvironment, BuildRequest
@@ -54,11 +55,11 @@ from datetime import datetime, timedelta
from django.db import transaction, connection
+
# pylint: disable=invalid-name
# the logger name is standard throughout BitBake
logger = logging.getLogger("ToasterLogger")
-
class NotExisting(Exception):
pass
@@ -121,11 +122,27 @@ class ORMWrapper(object):
return vars(self)[dictname][key]
+ def get_similar_target_with_image_files(self, target):
+ """
+ Get a Target object "similar" to target; i.e. with the same target
+ name ('core-image-minimal' etc.) and machine.
+ """
+ return target.get_similar_target_with_image_files()
+
+ def get_similar_target_with_sdk_files(self, target):
+ return target.get_similar_target_with_sdk_files()
+
+ def clone_image_artifacts(self, target_from, target_to):
+ target_to.clone_image_artifacts_from(target_from)
+
+ def clone_sdk_artifacts(self, target_from, target_to):
+ target_to.clone_sdk_artifacts_from(target_from)
+
def _timestamp_to_datetime(self, secs):
"""
Convert timestamp in seconds to Python datetime
"""
- return datetime(1970, 1, 1) + timedelta(seconds=secs)
+ return timezone.make_aware(datetime(1970, 1, 1) + timedelta(seconds=secs))
# pylint: disable=no-self-use
# we disable detection of no self use in functions because the methods actually work on the object
@@ -134,55 +151,33 @@ class ORMWrapper(object):
# pylint: disable=bad-continuation
# we do not follow the python conventions for continuation indentation due to long lines here
- def create_build_object(self, build_info, brbe, project_id):
- assert 'machine' in build_info
- assert 'distro' in build_info
- assert 'distro_version' in build_info
- assert 'started_on' in build_info
- assert 'cooker_log_path' in build_info
- assert 'build_name' in build_info
- assert 'bitbake_version' in build_info
-
+ def get_or_create_build_object(self, brbe):
prj = None
buildrequest = None
- if brbe is not None: # this build was triggered by a request from a user
+ if brbe is not None:
+ # Toaster-triggered build
logger.debug(1, "buildinfohelper: brbe is %s" % brbe)
br, _ = brbe.split(":")
- buildrequest = BuildRequest.objects.get(pk = br)
+ buildrequest = BuildRequest.objects.get(pk=br)
prj = buildrequest.project
-
- elif project_id is not None: # this build was triggered by an external system for a specific project
- logger.debug(1, "buildinfohelper: project is %s" % prj)
- prj = Project.objects.get(pk = project_id)
-
- else: # this build was triggered by a legacy system, or command line interactive mode
+ else:
+ # CLI build
prj = Project.objects.get_or_create_default_project()
logger.debug(1, "buildinfohelper: project is not specified, defaulting to %s" % prj)
-
if buildrequest is not None:
+ # reuse existing Build object
build = buildrequest.build
- logger.info("Updating existing build, with %s", build_info)
build.project = prj
- build.machine=build_info['machine']
- build.distro=build_info['distro']
- build.distro_version=build_info['distro_version']
- build.cooker_log_path=build_info['cooker_log_path']
- build.build_name=build_info['build_name']
- build.bitbake_version=build_info['bitbake_version']
build.save()
-
else:
+ # create new Build object
+ now = timezone.now()
build = Build.objects.create(
- project = prj,
- machine=build_info['machine'],
- distro=build_info['distro'],
- distro_version=build_info['distro_version'],
- started_on=build_info['started_on'],
- completed_on=build_info['started_on'],
- cooker_log_path=build_info['cooker_log_path'],
- build_name=build_info['build_name'],
- bitbake_version=build_info['bitbake_version'])
+ project=prj,
+ started_on=now,
+ completed_on=now,
+ build_name='')
logger.debug(1, "buildinfohelper: build is created %s" % build)
@@ -192,8 +187,17 @@ class ORMWrapper(object):
return build
+ def update_build(self, build, data_dict):
+ for key in data_dict:
+ setattr(build, key, data_dict[key])
+ build.save()
+
@staticmethod
def get_or_create_targets(target_info):
+ """
+ NB get_or_create() is used here because for Toaster-triggered builds,
+ we already created the targets when the build was triggered.
+ """
result = []
for target in target_info['targets']:
task = ''
@@ -203,17 +207,14 @@ class ORMWrapper(object):
task = task[3:]
if task == 'build':
task = ''
- obj, created = Target.objects.get_or_create(build=target_info['build'],
- target=target)
- if created:
- obj.is_image = False
- if task:
- obj.task = task
- obj.save()
+
+ obj, _ = Target.objects.get_or_create(build=target_info['build'],
+ target=target,
+ task=task)
result.append(obj)
return result
- def update_build_object(self, build, errors, warnings, taskfailures):
+ def update_build_stats_and_outcome(self, build, errors, warnings, taskfailures):
assert isinstance(build,Build)
assert isinstance(errors, int)
assert isinstance(warnings, int)
@@ -234,11 +235,16 @@ class ORMWrapper(object):
build.completed_on = timezone.now()
build.outcome = outcome
build.save()
+ signal_runbuilds()
def update_target_set_license_manifest(self, target, license_manifest_path):
target.license_manifest_path = license_manifest_path
target.save()
+ def update_target_set_package_manifest(self, target, package_manifest_path):
+ target.package_manifest_path = package_manifest_path
+ target.save()
+
def update_task_object(self, build, task_name, recipe_name, task_stats):
"""
Find the task for build which matches the recipe and task name
@@ -372,7 +378,7 @@ class ORMWrapper(object):
layer_copy, c = Layer_Version.objects.get_or_create(
build=build_obj,
layer=layer_obj.layer,
- up_branch=layer_obj.up_branch,
+ release=layer_obj.release,
branch=layer_version_information['branch'],
commit=layer_version_information['commit'],
local_path=layer_version_information['local_path'],
@@ -415,13 +421,24 @@ class ORMWrapper(object):
assert 'name' in layer_information
assert 'layer_index_url' in layer_information
+ # From command line builds we have no brbe as the request is directly
+ # from bitbake
if brbe is None:
- layer_object, _ = Layer.objects.get_or_create(
- name=layer_information['name'],
- layer_index_url=layer_information['layer_index_url'])
+ # If we don't have git commit sha then we're using a non-git
+ # layer so set the layer_source_dir to identify it as such
+ if not layer_information['version']['commit']:
+ local_source_dir = layer_information["local_path"]
+ else:
+ local_source_dir = None
+
+ layer_object, _ = \
+ Layer.objects.get_or_create(
+ name=layer_information['name'],
+ local_source_dir=local_source_dir,
+ layer_index_url=layer_information['layer_index_url'])
+
return layer_object
else:
- # we are under managed mode; we must match the layer used in the Project Layer
br_id, be_id = brbe.split(":")
# find layer by checkout path;
@@ -434,7 +451,11 @@ class ORMWrapper(object):
# note that this is different
buildrequest = BuildRequest.objects.get(pk = br_id)
for brl in buildrequest.brlayer_set.all():
- localdirname = os.path.join(bc.getGitCloneDirectory(brl.giturl, brl.commit), brl.dirpath)
+ if brl.local_source_dir:
+ localdirname = os.path.join(brl.local_source_dir,
+ brl.dirpath)
+ else:
+ localdirname = os.path.join(bc.getGitCloneDirectory(brl.giturl, brl.commit), brl.dirpath)
# we get a relative path, unless running in HEAD mode where the path is absolute
if not localdirname.startswith("/"):
localdirname = os.path.join(bc.be.sourcedir, localdirname)
@@ -446,6 +467,11 @@ class ORMWrapper(object):
if brl.layer_version:
return brl.layer_version
+ # This might be a local layer (i.e. no git info) so try
+ # matching local_source_dir
+ if brl.local_source_dir and brl.local_source_dir == layer_information["local_path"]:
+ return brl.layer_version
+
# we matched the BRLayer, but we need the layer_version that generated this BR; reverse of the Project.schedule_build()
#logger.debug(1, "Matched %s to BRlayer %s" % (pformat(layer_information["local_path"]), localdirname))
@@ -494,7 +520,7 @@ class ORMWrapper(object):
parent_obj = self._cached_get(Target_File, target = target_obj, path = parent_path, inodetype = Target_File.ITYPE_DIRECTORY)
tf_obj = Target_File.objects.create(
target = target_obj,
- path = unicode(path, 'utf-8'),
+ path = path,
size = size,
inodetype = Target_File.ITYPE_DIRECTORY,
permission = permission,
@@ -519,7 +545,7 @@ class ORMWrapper(object):
tf_obj = Target_File.objects.create(
target = target_obj,
- path = unicode(path, 'utf-8'),
+ path = path,
size = size,
inodetype = inodetype,
permission = permission,
@@ -550,9 +576,7 @@ class ORMWrapper(object):
filetarget_path = "/".join(fcpl)
try:
- filetarget_obj = Target_File.objects.get(
- target = target_obj,
- path = unicode(filetarget_path, 'utf-8'))
+ filetarget_obj = Target_File.objects.get(target = target_obj, path = filetarget_path)
except Target_File.DoesNotExist:
# we might have an invalid link; no way to detect this. just set it to None
filetarget_obj = None
@@ -561,7 +585,7 @@ class ORMWrapper(object):
tf_obj = Target_File.objects.create(
target = target_obj,
- path = unicode(path, 'utf-8'),
+ path = path,
size = size,
inodetype = Target_File.ITYPE_SYMLINK,
permission = permission,
@@ -606,8 +630,8 @@ class ORMWrapper(object):
Recipe,
name=built_recipe.name,
layer_version__build=None,
- layer_version__up_branch=
- built_recipe.layer_version.up_branch,
+ layer_version__release=
+ built_recipe.layer_version.release,
file_path=built_recipe.file_path,
version=built_recipe.version
)
@@ -664,8 +688,8 @@ class ORMWrapper(object):
dep_type = tdeptype,
target = target_obj))
except KeyError as e:
- logger.warn("Could not add dependency to the package %s "
- "because %s is an unknown package", p, px)
+ logger.warning("Could not add dependency to the package %s "
+ "because %s is an unknown package", p, px)
if len(packagedeps_objs) > 0:
Package_Dependency.objects.bulk_create(packagedeps_objs)
@@ -673,23 +697,26 @@ class ORMWrapper(object):
logger.info("No package dependencies created")
if len(errormsg) > 0:
- logger.warn("buildinfohelper: target_package_info could not identify recipes: \n%s", errormsg)
+ logger.warning("buildinfohelper: target_package_info could not identify recipes: \n%s", errormsg)
def save_target_image_file_information(self, target_obj, file_name, file_size):
- Target_Image_File.objects.create( target = target_obj,
- file_name = file_name,
- file_size = file_size)
-
- def save_artifact_information(self, build_obj, file_name, file_size):
- # we skip the image files from other builds
- if Target_Image_File.objects.filter(file_name = file_name).count() > 0:
- return
+ Target_Image_File.objects.create(target=target_obj,
+ file_name=file_name, file_size=file_size)
- # do not update artifacts found in other builds
- if BuildArtifact.objects.filter(file_name = file_name).count() > 0:
- return
+ def save_target_kernel_file(self, target_obj, file_name, file_size):
+ """
+ Save kernel file (bzImage, modules*) information for a Target target_obj.
+ """
+ TargetKernelFile.objects.create(target=target_obj,
+ file_name=file_name, file_size=file_size)
- BuildArtifact.objects.create(build = build_obj, file_name = file_name, file_size = file_size)
+ def save_target_sdk_file(self, target_obj, file_name, file_size):
+ """
+ Save SDK artifacts to the database, associating them with a
+ Target object.
+ """
+ TargetSDKFile.objects.create(target=target_obj, file_name=file_name,
+ file_size=file_size)
def create_logmessage(self, log_information):
assert 'build' in log_information
@@ -857,6 +884,11 @@ class BuildInfoHelper(object):
Keeps in memory all data that needs matching before writing it to the database
"""
+ # tasks which produce image files; note we include '', as we set
+ # the task for a target to '' (i.e. 'build') if no target is
+ # explicitly defined
+ IMAGE_GENERATING_TASKS = ['', 'build', 'image', 'populate_sdk_ext']
+
# pylint: disable=protected-access
# the code will look into the protected variables of the event; no easy way around this
# pylint: disable=bad-continuation
@@ -888,22 +920,55 @@ class BuildInfoHelper(object):
###################
## methods to convert event/external info into objects that the ORM layer uses
+ def _ensure_build(self):
+ """
+ Ensure the current build object exists and is up to date with
+ data on the bitbake server
+ """
+ if not 'build' in self.internal_state or not self.internal_state['build']:
+ # create the Build object
+ self.internal_state['build'] = \
+ self.orm_wrapper.get_or_create_build_object(self.brbe)
+
+ build = self.internal_state['build']
- def _get_build_information(self, build_log_path):
+ # update missing fields on the Build object with found data
build_info = {}
- build_info['machine'] = self.server.runCommand(["getVariable", "MACHINE"])[0]
- build_info['distro'] = self.server.runCommand(["getVariable", "DISTRO"])[0]
- build_info['distro_version'] = self.server.runCommand(["getVariable", "DISTRO_VERSION"])[0]
- build_info['started_on'] = timezone.now()
- build_info['completed_on'] = timezone.now()
- build_info['cooker_log_path'] = build_log_path
- build_info['build_name'] = self.server.runCommand(["getVariable", "BUILDNAME"])[0]
- build_info['bitbake_version'] = self.server.runCommand(["getVariable", "BB_VERSION"])[0]
- build_info['project'] = self.project = self.server.runCommand(["getVariable", "TOASTER_PROJECT"])[0]
- return build_info
+
+ # set to True if at least one field is going to be set
+ changed = False
+
+ if not build.build_name:
+ build_name = self.server.runCommand(["getVariable", "BUILDNAME"])[0]
+
+ # only reset the build name if the one on the server is actually
+ # a valid value for the build_name field
+ if build_name != None:
+ build_info['build_name'] = build_name
+ changed = True
+
+ if not build.machine:
+ build_info['machine'] = self.server.runCommand(["getVariable", "MACHINE"])[0]
+ changed = True
+
+ if not build.distro:
+ build_info['distro'] = self.server.runCommand(["getVariable", "DISTRO"])[0]
+ changed = True
+
+ if not build.distro_version:
+ build_info['distro_version'] = self.server.runCommand(["getVariable", "DISTRO_VERSION"])[0]
+ changed = True
+
+ if not build.bitbake_version:
+ build_info['bitbake_version'] = self.server.runCommand(["getVariable", "BB_VERSION"])[0]
+ changed = True
+
+ if changed:
+ self.orm_wrapper.update_build(self.internal_state['build'], build_info)
def _get_task_information(self, event, recipe):
assert 'taskname' in vars(event)
+ self._ensure_build()
task_information = {}
task_information['build'] = self.internal_state['build']
@@ -918,8 +983,7 @@ class BuildInfoHelper(object):
return task_information
def _get_layer_version_for_path(self, path):
- assert path.startswith("/")
- assert 'build' in self.internal_state
+ self._ensure_build()
def _slkey_interactive(layer_version):
assert isinstance(layer_version, Layer_Version)
@@ -930,9 +994,12 @@ class BuildInfoHelper(object):
# we can match to the recipe file path
if path.startswith(lvo.local_path):
return lvo
+ if lvo.layer.local_source_dir and \
+ path.startswith(lvo.layer.local_source_dir):
+ return lvo
#if we get here, we didn't read layers correctly; dump whatever information we have on the error log
- logger.warn("Could not match layer version for recipe path %s : %s", path, self.orm_wrapper.layer_version_objects)
+ logger.warning("Could not match layer version for recipe path %s : %s", path, self.orm_wrapper.layer_version_objects)
#mockup the new layer
unknown_layer, _ = Layer.objects.get_or_create(name="Unidentified layer", layer_index_url="")
@@ -963,6 +1030,8 @@ class BuildInfoHelper(object):
return recipe_info
def _get_path_information(self, task_object):
+ self._ensure_build()
+
assert isinstance(task_object, Task)
build_stats_format = "{tmpdir}/buildstats/{buildname}/{package}/"
build_stats_path = []
@@ -1003,19 +1072,33 @@ class BuildInfoHelper(object):
self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)] = layerinfos[layer]['version']
self.internal_state['lvs'][self.orm_wrapper.get_update_layer_object(layerinfos[layer], self.brbe)]['local_path'] = layerinfos[layer]['local_path']
except NotExisting as nee:
- logger.warn("buildinfohelper: cannot identify layer exception:%s ", nee)
+ logger.warning("buildinfohelper: cannot identify layer exception:%s ", nee)
+
+ def store_started_build(self):
+ self._ensure_build()
+ def save_build_log_file_path(self, build_log_path):
+ self._ensure_build()
- def store_started_build(self, event, build_log_path):
+ if not self.internal_state['build'].cooker_log_path:
+ data_dict = {'cooker_log_path': build_log_path}
+ self.orm_wrapper.update_build(self.internal_state['build'], data_dict)
+
+ def save_build_targets(self, event):
+ self._ensure_build()
+
+ # create target information
assert '_pkgs' in vars(event)
- build_information = self._get_build_information(build_log_path)
+ target_information = {}
+ target_information['targets'] = event._pkgs
+ target_information['build'] = self.internal_state['build']
- # Update brbe and project as they can be changed for every build
- self.project = build_information['project']
+ self.internal_state['targets'] = self.orm_wrapper.get_or_create_targets(target_information)
- build_obj = self.orm_wrapper.create_build_object(build_information, self.brbe, self.project)
+ def save_build_layers_and_variables(self):
+ self._ensure_build()
- self.internal_state['build'] = build_obj
+ build_obj = self.internal_state['build']
# save layer version information for this build
if not 'lvs' in self.internal_state:
@@ -1026,13 +1109,6 @@ class BuildInfoHelper(object):
del self.internal_state['lvs']
- # create target information
- target_information = {}
- target_information['targets'] = event._pkgs
- target_information['build'] = build_obj
-
- self.internal_state['targets'] = self.orm_wrapper.get_or_create_targets(target_information)
-
# Save build configuration
data = self.server.runCommand(["getAllKeysWithFlags", ["doc", "func"]])[0]
@@ -1055,7 +1131,8 @@ class BuildInfoHelper(object):
abs_file_name = vh['file']
for pp in path_prefixes:
if abs_file_name.startswith(pp + "/"):
- vh['file']=abs_file_name[len(pp + "/"):]
+ # preserve layer name in relative path
+ vh['file']=abs_file_name[pp.rfind("/")+1:]
break
# save the variables
@@ -1063,35 +1140,48 @@ class BuildInfoHelper(object):
return self.brbe
+ def set_recipes_to_parse(self, num_recipes):
+ """
+ Set the number of recipes which need to be parsed for this build.
+ This is set the first time ParseStarted is received by toasterui.
+ """
+ self._ensure_build()
+ self.internal_state['build'].recipes_to_parse = num_recipes
+ self.internal_state['build'].save()
+
+ def set_recipes_parsed(self, num_recipes):
+ """
+ Set the number of recipes parsed so far for this build; this is updated
+ each time a ParseProgress or ParseCompleted event is received by
+ toasterui.
+ """
+ self._ensure_build()
+ if num_recipes <= self.internal_state['build'].recipes_to_parse:
+ self.internal_state['build'].recipes_parsed = num_recipes
+ self.internal_state['build'].save()
def update_target_image_file(self, event):
evdata = BuildInfoHelper._get_data_from_event(event)
for t in self.internal_state['targets']:
if t.is_image == True:
- output_files = list(evdata.viewkeys())
+ output_files = list(evdata.keys())
for output in output_files:
if t.target in output and 'rootfs' in output and not output.endswith(".manifest"):
self.orm_wrapper.save_target_image_file_information(t, output, evdata[output])
def update_artifact_image_file(self, event):
+ self._ensure_build()
evdata = BuildInfoHelper._get_data_from_event(event)
for artifact_path in evdata.keys():
- self.orm_wrapper.save_artifact_information(self.internal_state['build'], artifact_path, evdata[artifact_path])
+ self.orm_wrapper.save_artifact_information(
+ self.internal_state['build'], artifact_path,
+ evdata[artifact_path])
def update_build_information(self, event, errors, warnings, taskfailures):
- if 'build' in self.internal_state:
- self.orm_wrapper.update_build_object(self.internal_state['build'], errors, warnings, taskfailures)
-
-
- def store_license_manifest_path(self, event):
- deploy_dir = BuildInfoHelper._get_data_from_event(event)['deploy_dir']
- image_name = BuildInfoHelper._get_data_from_event(event)['image_name']
- path = deploy_dir + "/licenses/" + image_name + "/license.manifest"
- for target in self.internal_state['targets']:
- if target.target in image_name:
- self.orm_wrapper.update_target_set_license_manifest(target, path)
-
+ self._ensure_build()
+ self.orm_wrapper.update_build_stats_and_outcome(
+ self.internal_state['build'], errors, warnings, taskfailures)
def store_started_task(self, event):
assert isinstance(event, (bb.runqueue.sceneQueueTaskStarted, bb.runqueue.runQueueTaskStarted, bb.runqueue.runQueueTaskSkipped))
@@ -1134,6 +1224,7 @@ class BuildInfoHelper(object):
def store_tasks_stats(self, event):
+ self._ensure_build()
task_data = BuildInfoHelper._get_data_from_event(event)
for (task_file, task_name, task_stats, recipe_name) in task_data:
@@ -1229,6 +1320,8 @@ class BuildInfoHelper(object):
def store_target_package_data(self, event):
+ self._ensure_build()
+
# for all image targets
for target in self.internal_state['targets']:
if target.is_image:
@@ -1240,17 +1333,32 @@ class BuildInfoHelper(object):
self.orm_wrapper.save_target_package_information(self.internal_state['build'], target, imgdata, pkgdata, self.internal_state['recipes'], built_package=True)
self.orm_wrapper.save_target_package_information(self.internal_state['build'], target, imgdata.copy(), pkgdata, self.internal_state['recipes'], built_package=False)
except KeyError as e:
- logger.warn("KeyError in save_target_package_information"
- "%s ", e)
+ logger.warning("KeyError in save_target_package_information"
+ "%s ", e)
- try:
- self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata)
- except KeyError as e:
- logger.warn("KeyError in save_target_file_information"
- "%s ", e)
+ # only try to find files in the image if the task for this
+ # target is one which produces image files; otherwise, the old
+ # list of files in the files-in-image.txt file will be
+ # appended to the target even if it didn't produce any images
+ if target.task in BuildInfoHelper.IMAGE_GENERATING_TASKS:
+ try:
+ self.orm_wrapper.save_target_file_information(self.internal_state['build'], target, filedata)
+ except KeyError as e:
+ logger.warning("KeyError in save_target_file_information"
+ "%s ", e)
+ def cancel_cli_build(self):
+ """
+ If a build is currently underway, set its state to CANCELLED;
+ note that this only gets called for command line builds which are
+ interrupted, so it doesn't touch any BuildRequest objects
+ """
+ self._ensure_build()
+ self.internal_state['build'].outcome = Build.CANCELLED
+ self.internal_state['build'].save()
+ signal_runbuilds()
def store_dependency_information(self, event):
assert '_depgraph' in vars(event)
@@ -1392,10 +1500,12 @@ class BuildInfoHelper(object):
Task_Dependency.objects.bulk_create(taskdeps_objects)
if len(errormsg) > 0:
- logger.warn("buildinfohelper: dependency info not identify recipes: \n%s", errormsg)
+ logger.warning("buildinfohelper: dependency info not identify recipes: \n%s", errormsg)
def store_build_package_information(self, event):
+ self._ensure_build()
+
package_info = BuildInfoHelper._get_data_from_event(event)
self.orm_wrapper.save_build_package_information(
self.internal_state['build'],
@@ -1411,10 +1521,12 @@ class BuildInfoHelper(object):
def _store_build_done(self, errorcode):
logger.info("Build exited with errorcode %d", errorcode)
+
+ if not self.brbe:
+ return
+
br_id, be_id = self.brbe.split(":")
- be = BuildEnvironment.objects.get(pk = be_id)
- be.lock = BuildEnvironment.LOCK_LOCK
- be.save()
+
br = BuildRequest.objects.get(pk = br_id)
# if we're 'done' because we got cancelled update the build outcome
@@ -1432,6 +1544,10 @@ class BuildInfoHelper(object):
br.state = BuildRequest.REQ_FAILED
br.save()
+ be = BuildEnvironment.objects.get(pk = be_id)
+ be.lock = BuildEnvironment.LOCK_FREE
+ be.save()
+ signal_runbuilds()
def store_log_error(self, text):
mockevent = MockEvent()
@@ -1449,30 +1565,25 @@ class BuildInfoHelper(object):
mockevent.lineno = -1
self.store_log_event(mockevent)
-
def store_log_event(self, event):
+ self._ensure_build()
+
if event.levelno < formatter.WARNING:
return
- if 'args' in vars(event):
- event.msg = event.msg % event.args
-
- if not 'build' in self.internal_state:
- if self.brbe is None:
- if not 'backlog' in self.internal_state:
- self.internal_state['backlog'] = []
- self.internal_state['backlog'].append(event)
- return
- else: # we're under Toaster control, the build is already created
- br, _ = self.brbe.split(":")
- buildrequest = BuildRequest.objects.get(pk = br)
- self.internal_state['build'] = buildrequest.build
+ # early return for CLI builds
+ if self.brbe is None:
+ if not 'backlog' in self.internal_state:
+ self.internal_state['backlog'] = []
+ self.internal_state['backlog'].append(event)
+ return
- if 'build' in self.internal_state and 'backlog' in self.internal_state:
+ if 'backlog' in self.internal_state:
# if we have a backlog of events, do our best to save them here
if len(self.internal_state['backlog']):
tempevent = self.internal_state['backlog'].pop()
- logger.debug(1, "buildinfohelper: Saving stored event %s " % tempevent)
+ logger.debug(1, "buildinfohelper: Saving stored event %s "
+ % tempevent)
self.store_log_event(tempevent)
else:
logger.info("buildinfohelper: All events saved")
@@ -1491,26 +1602,324 @@ class BuildInfoHelper(object):
else:
log_information['level'] = LogMessage.INFO
- log_information['message'] = event.msg
+ log_information['message'] = event.getMessage()
log_information['pathname'] = event.pathname
log_information['lineno'] = event.lineno
logger.info("Logging error 2: %s", log_information)
self.orm_wrapper.create_logmessage(log_information)
+ def _get_filenames_from_image_license(self, image_license_manifest_path):
+ """
+ Find the FILES line in the image_license.manifest file,
+ which has the basenames of the bzImage and modules files
+ in this format:
+ FILES: bzImage--4.4.11+git0+3a5f494784_53e84104c5-r0-qemux86-20160603165040.bin modules--4.4.11+git0+3a5f494784_53e84104c5-r0-qemux86-20160603165040.tgz
+ """
+ files = []
+ with open(image_license_manifest_path) as image_license:
+ for line in image_license:
+ if line.startswith('FILES'):
+ files_str = line.split(':')[1].strip()
+ files_str = re.sub(r' {2,}', ' ', files_str)
+
+ # ignore lines like "FILES:" with no filenames
+ if files_str:
+ files += files_str.split(' ')
+ return files
+
+ def _endswith(self, str_to_test, endings):
+ """
+ Returns True if str ends with one of the strings in the list
+ endings, False otherwise
+ """
+ endswith = False
+ for ending in endings:
+ if str_to_test.endswith(ending):
+ endswith = True
+ break
+ return endswith
+
+ def _get_image_files(self, deploy_dir_image, image_name, image_file_extensions):
+ """
+ Find files in deploy_dir_image whose basename starts with the
+ string image_name and ends with one of the strings in
+ image_file_extensions.
+
+ Returns a list of file dictionaries like
+
+ [
+ {
+ 'path': '/path/to/image/file',
+ 'size': <file size in bytes>
+ }
+ ]
+ """
+ image_files = []
+
+ for dirpath, _, filenames in os.walk(deploy_dir_image):
+ for filename in filenames:
+ if filename.startswith(image_name) and \
+ self._endswith(filename, image_file_extensions):
+ image_file_path = os.path.join(dirpath, filename)
+ image_file_size = os.stat(image_file_path).st_size
+
+ image_files.append({
+ 'path': image_file_path,
+ 'size': image_file_size
+ })
+
+ return image_files
+
+ def scan_image_artifacts(self):
+ """
+ Scan for built image artifacts in DEPLOY_DIR_IMAGE and associate them
+ with a Target object in self.internal_state['targets'].
+
+ We have two situations to handle:
+
+ 1. This is the first time a target + machine has been built, so
+ add files from the DEPLOY_DIR_IMAGE to the target.
+
+ OR
+
+ 2. There are no new files for the target (they were already produced by
+ a previous build), so copy them from the most recent previous build with
+ the same target, task and machine.
+ """
+ deploy_dir_image = \
+ self.server.runCommand(['getVariable', 'DEPLOY_DIR_IMAGE'])[0]
+
+ # if there's no DEPLOY_DIR_IMAGE, there aren't going to be
+ # any image artifacts, so we can return immediately
+ if not deploy_dir_image:
+ return
+
+ buildname = self.server.runCommand(['getVariable', 'BUILDNAME'])[0]
+ machine = self.server.runCommand(['getVariable', 'MACHINE'])[0]
+ image_name = self.server.runCommand(['getVariable', 'IMAGE_NAME'])[0]
+
+ # location of the manifest files for this build;
+ # note that this file is only produced if an image is produced
+ license_directory = \
+ self.server.runCommand(['getVariable', 'LICENSE_DIRECTORY'])[0]
+
+ # file name extensions for image files
+ image_file_extensions_unique = {}
+ image_fstypes = self.server.runCommand(
+ ['getVariable', 'IMAGE_FSTYPES'])[0]
+ if image_fstypes != None:
+ image_types_str = image_fstypes.strip()
+ image_file_extensions = re.sub(r' {2,}', ' ', image_types_str)
+ image_file_extensions_unique = set(image_file_extensions.split(' '))
+
+ targets = self.internal_state['targets']
+
+ # filter out anything which isn't an image target
+ image_targets = [target for target in targets if target.is_image]
+
+ for image_target in image_targets:
+ # this is set to True if we find at least one file relating to
+ # this target; if this remains False after the scan, we copy the
+ # files from the most-recent Target with the same target + machine
+ # onto this Target instead
+ has_files = False
+
+ # we construct this because by the time we reach
+ # BuildCompleted, this has reset to
+ # 'defaultpkgname-<MACHINE>-<BUILDNAME>';
+ # we need to change it to
+ # <TARGET>-<MACHINE>-<BUILDNAME>
+ real_image_name = re.sub(r'^defaultpkgname', image_target.target,
+ image_name)
+
+ image_license_manifest_path = os.path.join(
+ license_directory,
+ real_image_name,
+ 'image_license.manifest')
+
+ image_package_manifest_path = os.path.join(
+ license_directory,
+ real_image_name,
+ 'image_license.manifest')
+
+ # if image_license.manifest exists, we can read the names of
+ # bzImage, modules etc. files for this build from it, then look for
+ # them in the DEPLOY_DIR_IMAGE; note that this file is only produced
+ # if an image file was produced
+ if os.path.isfile(image_license_manifest_path):
+ has_files = True
+
+ basenames = self._get_filenames_from_image_license(
+ image_license_manifest_path)
+
+ for basename in basenames:
+ artifact_path = os.path.join(deploy_dir_image, basename)
+ if not os.path.exists(artifact_path):
+ logger.warning("artifact %s doesn't exist, skipping" % artifact_path)
+ continue
+ artifact_size = os.stat(artifact_path).st_size
+
+ # note that the artifact will only be saved against this
+ # build if it hasn't been already
+ self.orm_wrapper.save_target_kernel_file(image_target,
+ artifact_path, artifact_size)
+
+ # store the license manifest path on the target
+ # (this file is also created any time an image file is created)
+ license_manifest_path = os.path.join(license_directory,
+ real_image_name, 'license.manifest')
+
+ self.orm_wrapper.update_target_set_license_manifest(
+ image_target, license_manifest_path)
+
+ # store the package manifest path on the target (this file
+ # is created any time an image file is created)
+ package_manifest_path = os.path.join(deploy_dir_image,
+ real_image_name + '.rootfs.manifest')
+
+ if os.path.exists(package_manifest_path):
+ self.orm_wrapper.update_target_set_package_manifest(
+ image_target, package_manifest_path)
+
+ # scan the directory for image files relating to this build
+ # (via real_image_name); note that we don't have to set
+ # has_files = True, as searching for the license manifest file
+ # will already have set it to true if at least one image file was
+ # produced; note that the real_image_name includes BUILDNAME, which
+ # in turn includes a timestamp; so if no files were produced for
+ # this timestamp (i.e. the build reused existing image files already
+ # in the directory), no files will be recorded against this target
+ image_files = self._get_image_files(deploy_dir_image,
+ real_image_name, image_file_extensions_unique)
+
+ for image_file in image_files:
+ self.orm_wrapper.save_target_image_file_information(
+ image_target, image_file['path'], image_file['size'])
+
+ if not has_files:
+ # copy image files and build artifacts from the
+ # most-recently-built Target with the
+ # same target + machine as this Target; also copy the license
+ # manifest path, as that is not treated as an artifact and needs
+ # to be set separately
+ similar_target = \
+ self.orm_wrapper.get_similar_target_with_image_files(
+ image_target)
+
+ if similar_target:
+ logger.info('image artifacts for target %s cloned from ' \
+ 'target %s' % (image_target.pk, similar_target.pk))
+ self.orm_wrapper.clone_image_artifacts(similar_target,
+ image_target)
+
+ def _get_sdk_targets(self):
+ """
+ Return targets which could generate SDK artifacts, i.e.
+ "do_populate_sdk" and "do_populate_sdk_ext".
+ """
+ return [target for target in self.internal_state['targets'] \
+ if target.task in ['populate_sdk', 'populate_sdk_ext']]
+
+ def scan_sdk_artifacts(self, event):
+ """
+ Note that we have to intercept an SDKArtifactInfo event from
+ toaster.bbclass (via toasterui) to get hold of the SDK variables we
+ need to be able to scan for files accurately: this is because
+ variables like TOOLCHAIN_OUTPUTNAME have reset to None by the time
+ BuildCompleted is fired by bitbake, so we have to get those values
+ while the build is still in progress.
+
+ For populate_sdk_ext, this runs twice, with two different
+ TOOLCHAIN_OUTPUTNAME settings, each of which will capture some of the
+ files in the SDK output directory.
+ """
+ sdk_vars = BuildInfoHelper._get_data_from_event(event)
+ toolchain_outputname = sdk_vars['TOOLCHAIN_OUTPUTNAME']
+
+ # targets which might have created SDK artifacts
+ sdk_targets = self._get_sdk_targets()
+
+ # location of SDK artifacts
+ tmpdir = self.server.runCommand(['getVariable', 'TMPDIR'])[0]
+ sdk_dir = os.path.join(tmpdir, 'deploy', 'sdk')
+
+ # all files in the SDK directory
+ artifacts = []
+ for dir_path, _, filenames in os.walk(sdk_dir):
+ for filename in filenames:
+ full_path = os.path.join(dir_path, filename)
+ if not os.path.islink(full_path):
+ artifacts.append(full_path)
+
+ for sdk_target in sdk_targets:
+ # find files in the SDK directory which haven't already been
+ # recorded against a Target and whose basename matches
+ # TOOLCHAIN_OUTPUTNAME
+ for artifact_path in artifacts:
+ basename = os.path.basename(artifact_path)
+
+ toolchain_match = basename.startswith(toolchain_outputname)
+
+ # files which match the name of the target which produced them;
+ # for example,
+ # poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-2.1+snapshot.sh
+ target_match = re.search(sdk_target.target, basename)
+
+ # targets which produce "*-nativesdk-*" files
+ is_ext_sdk_target = sdk_target.task in \
+ ['do_populate_sdk_ext', 'populate_sdk_ext']
+
+ # SDK files which don't match the target name, i.e.
+ # x86_64-nativesdk-libc.*
+ # poky-glibc-x86_64-buildtools-tarball-i586-buildtools-nativesdk-standalone-2.1+snapshot*
+ is_ext_sdk_file = re.search('-nativesdk-', basename)
+
+ file_from_target = (toolchain_match and target_match) or \
+ (is_ext_sdk_target and is_ext_sdk_file)
+
+ if file_from_target:
+ # don't record the file if it's already been added to this
+ # target
+ matching_files = TargetSDKFile.objects.filter(
+ target=sdk_target, file_name=artifact_path)
+
+ if matching_files.count() == 0:
+ artifact_size = os.stat(artifact_path).st_size
+
+ self.orm_wrapper.save_target_sdk_file(
+ sdk_target, artifact_path, artifact_size)
+
+ def clone_required_sdk_artifacts(self):
+ """
+ If an SDK target doesn't have any SDK artifacts, this means that
+ the postfuncs of populate_sdk or populate_sdk_ext didn't fire, which
+ in turn means that the targets of this build didn't generate any new
+ artifacts.
+
+ In this case, clone SDK artifacts for targets in the current build
+ from existing targets for this build.
+ """
+ sdk_targets = self._get_sdk_targets()
+ for sdk_target in sdk_targets:
+ # only clone for SDK targets which have no TargetSDKFiles yet
+ if sdk_target.targetsdkfile_set.all().count() == 0:
+ similar_target = \
+ self.orm_wrapper.get_similar_target_with_sdk_files(
+ sdk_target)
+ if similar_target:
+ logger.info('SDK artifacts for target %s cloned from ' \
+ 'target %s' % (sdk_target.pk, similar_target.pk))
+ self.orm_wrapper.clone_sdk_artifacts(similar_target,
+ sdk_target)
+
def close(self, errorcode):
- if self.brbe is not None:
- self._store_build_done(errorcode)
+ self._store_build_done(errorcode)
if 'backlog' in self.internal_state:
- if 'build' in self.internal_state:
- # we save missed events in the database for the current build
- tempevent = self.internal_state['backlog'].pop()
- self.store_log_event(tempevent)
- else:
- # we have no build, and we still have events; something amazingly wrong happend
- for event in self.internal_state['backlog']:
- logger.error("UNSAVED log: %s", event.msg)
+ # we save missed events in the database for the current build
+ tempevent = self.internal_state['backlog'].pop()
+ self.store_log_event(tempevent)
if not connection.features.autocommits_when_autocommit_is_off:
transaction.set_autocommit(True)
@@ -1519,3 +1928,7 @@ class BuildInfoHelper(object):
# being incorrectly attached to the previous Toaster-triggered build;
# see https://bugzilla.yoctoproject.org/show_bug.cgi?id=9021
self.brbe = None
+
+ # unset the internal Build object to prevent it being reused for the
+ # next build
+ self.internal_state['build'] = None
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/__init__.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/__init__.py
deleted file mode 100644
index b7cbe1a4f..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/__init__.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Gtk+ UI pieces for BitBake
-#
-# Copyright (C) 2006-2007 Richard Purdie
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsdialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsdialog.py
deleted file mode 100644
index c679f9a07..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsdialog.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class CrumbsDialog(gtk.Dialog):
- """
- A GNOME HIG compliant dialog widget.
- Add buttons with gtk.Dialog.add_button or gtk.Dialog.add_buttons
- """
- def __init__(self, title="", parent=None, flags=0, buttons=None):
- super(CrumbsDialog, self).__init__(title, parent, flags, buttons)
-
- self.set_property("has-separator", False) # note: deprecated in 2.22
-
- self.set_border_width(6)
- self.vbox.set_property("spacing", 12)
- self.action_area.set_property("spacing", 12)
- self.action_area.set_property("border-width", 6)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsmessagedialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsmessagedialog.py
deleted file mode 100644
index 3b998e463..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/crumbsmessagedialog.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import glib
-import gtk
-from bb.ui.crumbs.hobwidget import HobIconChecker
-from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class CrumbsMessageDialog(gtk.MessageDialog):
- """
- A GNOME HIG compliant dialog widget.
- Add buttons with gtk.Dialog.add_button or gtk.Dialog.add_buttons
- """
- def __init__(self, parent = None, label="", dialog_type = gtk.MESSAGE_QUESTION, msg=""):
- super(CrumbsMessageDialog, self).__init__(None,
- gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
- dialog_type,
- gtk.BUTTONS_NONE,
- None)
-
- self.set_skip_taskbar_hint(False)
-
- self.set_markup(label)
-
- if 0 <= len(msg) < 300:
- self.format_secondary_markup(msg)
- else:
- vbox = self.get_message_area()
- vbox.set_border_width(1)
- vbox.set_property("spacing", 12)
- self.textWindow = gtk.ScrolledWindow()
- self.textWindow.set_shadow_type(gtk.SHADOW_IN)
- self.textWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- self.msgView = gtk.TextView()
- self.msgView.set_editable(False)
- self.msgView.set_wrap_mode(gtk.WRAP_WORD)
- self.msgView.set_cursor_visible(False)
- self.msgView.set_size_request(300, 300)
- self.buf = gtk.TextBuffer()
- self.buf.set_text(msg)
- self.msgView.set_buffer(self.buf)
- self.textWindow.add(self.msgView)
- self.msgView.show()
- vbox.add(self.textWindow)
- self.textWindow.show()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/deployimagedialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/deployimagedialog.py
deleted file mode 100644
index a13fff906..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/deployimagedialog.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import glob
-import gtk
-import gobject
-import os
-import re
-import shlex
-import subprocess
-import tempfile
-from bb.ui.crumbs.hobwidget import hic, HobButton
-from bb.ui.crumbs.progressbar import HobProgressBar
-import bb.ui.crumbs.utils
-import bb.process
-from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
-from bb.ui.crumbs.hig.crumbsmessagedialog import CrumbsMessageDialog
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class DeployImageDialog (CrumbsDialog):
-
- __dummy_usb__ = "--select a usb drive--"
-
- def __init__(self, title, image_path, parent, flags, buttons=None, standalone=False):
- super(DeployImageDialog, self).__init__(title, parent, flags, buttons)
-
- self.image_path = image_path
- self.standalone = standalone
-
- self.create_visual_elements()
- self.connect("response", self.response_cb)
-
- def create_visual_elements(self):
- self.set_size_request(600, 400)
- label = gtk.Label()
- label.set_alignment(0.0, 0.5)
- markup = "<span font_desc='12'>The image to be written into usb drive:</span>"
- label.set_markup(markup)
- self.vbox.pack_start(label, expand=False, fill=False, padding=2)
-
- table = gtk.Table(2, 10, False)
- table.set_col_spacings(5)
- table.set_row_spacings(5)
- self.vbox.pack_start(table, expand=True, fill=True)
-
- scroll = gtk.ScrolledWindow()
- scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- scroll.set_shadow_type(gtk.SHADOW_IN)
- tv = gtk.TextView()
- tv.set_editable(False)
- tv.set_wrap_mode(gtk.WRAP_WORD)
- tv.set_cursor_visible(False)
- self.buf = gtk.TextBuffer()
- self.buf.set_text(self.image_path)
- tv.set_buffer(self.buf)
- scroll.add(tv)
- table.attach(scroll, 0, 10, 0, 1)
-
- # There are 2 ways to use DeployImageDialog
- # One way is that called by HOB when the 'Deploy Image' button is clicked
- # The other way is that called by a standalone script.
- # Following block of codes handles the latter way. It adds a 'Select Image' button and
- # emit a signal when the button is clicked.
- if self.standalone:
- gobject.signal_new("select_image_clicked", self, gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE, ())
- icon = gtk.Image()
- pix_buffer = gtk.gdk.pixbuf_new_from_file(hic.ICON_IMAGES_DISPLAY_FILE)
- icon.set_from_pixbuf(pix_buffer)
- button = gtk.Button("Select Image")
- button.set_image(icon)
- #button.set_size_request(140, 50)
- table.attach(button, 9, 10, 1, 2, gtk.FILL, 0, 0, 0)
- button.connect("clicked", self.select_image_button_clicked_cb)
-
- separator = gtk.HSeparator()
- self.vbox.pack_start(separator, expand=False, fill=False, padding=10)
-
- self.usb_desc = gtk.Label()
- self.usb_desc.set_alignment(0.0, 0.5)
- markup = "<span font_desc='12'>You haven't chosen any USB drive.</span>"
- self.usb_desc.set_markup(markup)
-
- self.usb_combo = gtk.combo_box_new_text()
- self.usb_combo.connect("changed", self.usb_combo_changed_cb)
- model = self.usb_combo.get_model()
- model.clear()
- self.usb_combo.append_text(self.__dummy_usb__)
- for usb in self.find_all_usb_devices():
- self.usb_combo.append_text("/dev/" + usb)
- self.usb_combo.set_active(0)
- self.vbox.pack_start(self.usb_combo, expand=False, fill=False)
- self.vbox.pack_start(self.usb_desc, expand=False, fill=False, padding=2)
-
- self.progress_bar = HobProgressBar()
- self.vbox.pack_start(self.progress_bar, expand=False, fill=False)
- separator = gtk.HSeparator()
- self.vbox.pack_start(separator, expand=False, fill=True, padding=10)
-
- self.vbox.show_all()
- self.progress_bar.hide()
-
- def set_image_text_buffer(self, image_path):
- self.buf.set_text(image_path)
-
- def set_image_path(self, image_path):
- self.image_path = image_path
-
- def popen_read(self, cmd):
- tmpout, errors = bb.process.run("%s" % cmd)
- return tmpout.strip()
-
- def find_all_usb_devices(self):
- usb_devs = [ os.readlink(u)
- for u in glob.glob('/dev/disk/by-id/usb*')
- if not re.search(r'part\d+', u) ]
- return [ '%s' % u[u.rfind('/')+1:] for u in usb_devs ]
-
- def get_usb_info(self, dev):
- return "%s %s" % \
- (self.popen_read('cat /sys/class/block/%s/device/vendor' % dev),
- self.popen_read('cat /sys/class/block/%s/device/model' % dev))
-
- def select_image_button_clicked_cb(self, button):
- self.emit('select_image_clicked')
-
- def usb_combo_changed_cb(self, usb_combo):
- combo_item = self.usb_combo.get_active_text()
- if not combo_item or combo_item == self.__dummy_usb__:
- markup = "<span font_desc='12'>You haven't chosen any USB drive.</span>"
- self.usb_desc.set_markup(markup)
- else:
- markup = "<span font_desc='12'>" + self.get_usb_info(combo_item.lstrip("/dev/")) + "</span>"
- self.usb_desc.set_markup(markup)
-
- def response_cb(self, dialog, response_id):
- if response_id == gtk.RESPONSE_YES:
- lbl = ''
- msg = ''
- combo_item = self.usb_combo.get_active_text()
- if combo_item and combo_item != self.__dummy_usb__ and self.image_path:
- cmdline = bb.ui.crumbs.utils.which_terminal()
- if cmdline:
- tmpfile = tempfile.NamedTemporaryFile()
- cmdline += "\"sudo dd if=" + self.image_path + \
- " of=" + combo_item + " && sync; echo $? > " + tmpfile.name + "\""
- subprocess.call(shlex.split(cmdline))
-
- if int(tmpfile.readline().strip()) == 0:
- lbl = "<b>Deploy image successfully.</b>"
- else:
- lbl = "<b>Failed to deploy image.</b>"
- msg = "Please check image <b>%s</b> exists and USB device <b>%s</b> is writable." % (self.image_path, combo_item)
- tmpfile.close()
- else:
- if not self.image_path:
- lbl = "<b>No selection made.</b>"
- msg = "You have not selected an image to deploy."
- else:
- lbl = "<b>No selection made.</b>"
- msg = "You have not selected a USB device."
- if len(lbl):
- crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.MESSAGE_INFO, msg)
- button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
- HobButton.style_button(button)
- crumbs_dialog.run()
- crumbs_dialog.destroy()
-
- def update_progress_bar(self, title, fraction, status=None):
- self.progress_bar.update(fraction)
- self.progress_bar.set_title(title)
- self.progress_bar.set_rcstyle(status)
-
- def write_file(self, ifile, ofile):
- self.progress_bar.reset()
- self.progress_bar.show()
-
- f_from = os.open(ifile, os.O_RDONLY)
- f_to = os.open(ofile, os.O_WRONLY)
-
- total_size = os.stat(ifile).st_size
- written_size = 0
-
- while True:
- buf = os.read(f_from, 1024*1024)
- if not buf:
- break
- os.write(f_to, buf)
- written_size += 1024*1024
- self.update_progress_bar("Writing to usb:", written_size * 1.0/total_size)
-
- self.update_progress_bar("Writing completed:", 1.0)
- os.close(f_from)
- os.close(f_to)
- self.progress_bar.hide()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py
deleted file mode 100644
index 21216adc9..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py
+++ /dev/null
@@ -1,172 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-import gobject
-import os
-from bb.ui.crumbs.hobwidget import HobViewTable, HobInfoButton, HobButton, HobAltButton
-from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
-from bb.ui.crumbs.hig.layerselectiondialog import LayerSelectionDialog
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class ImageSelectionDialog (CrumbsDialog):
-
- __columns__ = [{
- 'col_name' : 'Image name',
- 'col_id' : 0,
- 'col_style': 'text',
- 'col_min' : 400,
- 'col_max' : 400
- }, {
- 'col_name' : 'Select',
- 'col_id' : 1,
- 'col_style': 'radio toggle',
- 'col_min' : 160,
- 'col_max' : 160
- }]
-
-
- def __init__(self, image_folder, image_types, title, parent, flags, buttons=None, image_extension = {}):
- super(ImageSelectionDialog, self).__init__(title, parent, flags, buttons)
- self.connect("response", self.response_cb)
-
- self.image_folder = image_folder
- self.image_types = image_types
- self.image_list = []
- self.image_names = []
- self.image_extension = image_extension
-
- # create visual elements on the dialog
- self.create_visual_elements()
-
- self.image_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)
- self.fill_image_store()
-
- def create_visual_elements(self):
- hbox = gtk.HBox(False, 6)
-
- self.vbox.pack_start(hbox, expand=False, fill=False)
-
- entry = gtk.Entry()
- entry.set_text(self.image_folder)
- table = gtk.Table(1, 10, True)
- table.set_size_request(560, -1)
- hbox.pack_start(table, expand=False, fill=False)
- table.attach(entry, 0, 9, 0, 1)
- image = gtk.Image()
- image.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
- open_button = gtk.Button()
- open_button.set_image(image)
- open_button.connect("clicked", self.select_path_cb, self, entry)
- table.attach(open_button, 9, 10, 0, 1)
-
- self.image_table = HobViewTable(self.__columns__, "Images")
- self.image_table.set_size_request(-1, 300)
- self.image_table.connect("toggled", self.toggled_cb)
- self.image_table.connect_group_selection(self.table_selected_cb)
- self.image_table.connect("row-activated", self.row_actived_cb)
- self.vbox.pack_start(self.image_table, expand=True, fill=True)
-
- self.show_all()
-
- def change_image_cb(self, model, path, columnid):
- if not model:
- return
- iter = model.get_iter_first()
- while iter:
- rowpath = model.get_path(iter)
- model[rowpath][columnid] = False
- iter = model.iter_next(iter)
-
- model[path][columnid] = True
-
- def toggled_cb(self, table, cell, path, columnid, tree):
- model = tree.get_model()
- self.change_image_cb(model, path, columnid)
-
- def table_selected_cb(self, selection):
- model, paths = selection.get_selected_rows()
- if paths:
- self.change_image_cb(model, paths[0], 1)
-
- def row_actived_cb(self, tab, model, path):
- self.change_image_cb(model, path, 1)
- self.emit('response', gtk.RESPONSE_YES)
-
- def select_path_cb(self, action, parent, entry):
- dialog = gtk.FileChooserDialog("", parent,
- gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
- text = entry.get_text()
- dialog.set_current_folder(text if len(text) > 0 else os.getcwd())
- button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
- HobAltButton.style_button(button)
- button = dialog.add_button("Open", gtk.RESPONSE_YES)
- HobButton.style_button(button)
- response = dialog.run()
- if response == gtk.RESPONSE_YES:
- path = dialog.get_filename()
- entry.set_text(path)
- self.image_folder = path
- self.fill_image_store()
-
- dialog.destroy()
-
- def fill_image_store(self):
- self.image_list = []
- self.image_store.clear()
- imageset = set()
- for root, dirs, files in os.walk(self.image_folder):
- # ignore the sub directories
- dirs[:] = []
- for f in files:
- for image_type in self.image_types:
- if image_type in self.image_extension:
- real_types = self.image_extension[image_type]
- else:
- real_types = [image_type]
- for real_image_type in real_types:
- if f.endswith('.' + real_image_type):
- imageset.add(f.rsplit('.' + real_image_type)[0].rsplit('.rootfs')[0])
- self.image_list.append(f)
-
- for image in imageset:
- self.image_store.set(self.image_store.append(), 0, image, 1, False)
-
- self.image_table.set_model(self.image_store)
-
- def response_cb(self, dialog, response_id):
- self.image_names = []
- if response_id == gtk.RESPONSE_YES:
- iter = self.image_store.get_iter_first()
- while iter:
- path = self.image_store.get_path(iter)
- if self.image_store[path][1]:
- for f in self.image_list:
- if f.startswith(self.image_store[path][0] + '.'):
- self.image_names.append(f)
- break
- iter = self.image_store.iter_next(iter)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/layerselectiondialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/layerselectiondialog.py
deleted file mode 100644
index 52d57b673..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/layerselectiondialog.py
+++ /dev/null
@@ -1,298 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-import gobject
-import os
-import tempfile
-from bb.ui.crumbs.hobwidget import hic, HobButton, HobAltButton
-from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
-from bb.ui.crumbs.hig.crumbsmessagedialog import CrumbsMessageDialog
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class CellRendererPixbufActivatable(gtk.CellRendererPixbuf):
- """
- A custom CellRenderer implementation which is activatable
- so that we can handle user clicks
- """
- __gsignals__ = { 'clicked' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_STRING,)), }
-
- def __init__(self):
- gtk.CellRendererPixbuf.__init__(self)
- self.set_property('mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE)
- self.set_property('follow-state', True)
-
- """
- Respond to a user click on a cell
- """
- def do_activate(self, even, widget, path, background_area, cell_area, flags):
- self.emit('clicked', path)
-
-#
-# LayerSelectionDialog
-#
-class LayerSelectionDialog (CrumbsDialog):
-
- TARGETS = [
- ("MY_TREE_MODEL_ROW", gtk.TARGET_SAME_WIDGET, 0),
- ("text/plain", 0, 1),
- ("TEXT", 0, 2),
- ("STRING", 0, 3),
- ]
-
- def gen_label_widget(self, content):
- label = gtk.Label()
- label.set_alignment(0, 0)
- label.set_markup(content)
- label.show()
- return label
-
- def layer_widget_toggled_cb(self, cell, path, layer_store):
- name = layer_store[path][0]
- toggle = not layer_store[path][1]
- layer_store[path][1] = toggle
-
- def layer_widget_add_clicked_cb(self, action, layer_store, parent):
- dialog = gtk.FileChooserDialog("Add new layer", parent,
- gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
- button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
- HobAltButton.style_button(button)
- button = dialog.add_button("Open", gtk.RESPONSE_YES)
- HobButton.style_button(button)
- label = gtk.Label("Select the layer you wish to add")
- label.show()
- dialog.set_extra_widget(label)
- response = dialog.run()
- path = dialog.get_filename()
- dialog.destroy()
-
- lbl = "<b>Error</b>"
- msg = "Unable to load layer <i>%s</i> because " % path
- if response == gtk.RESPONSE_YES:
- import os
- import os.path
- layers = []
- it = layer_store.get_iter_first()
- while it:
- layers.append(layer_store.get_value(it, 0))
- it = layer_store.iter_next(it)
-
- if not path:
- msg += "it is an invalid path."
- elif not os.path.exists(path+"/conf/layer.conf"):
- msg += "there is no layer.conf inside the directory."
- elif path in layers:
- msg += "it is already in loaded layers."
- else:
- layer_store.append([path])
- return
- dialog = CrumbsMessageDialog(parent, lbl, gtk.MESSAGE_ERROR, msg)
- dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_OK)
- response = dialog.run()
- dialog.destroy()
-
- def layer_widget_del_clicked_cb(self, action, tree_selection, layer_store):
- model, iter = tree_selection.get_selected()
- if iter:
- layer_store.remove(iter)
-
-
- def gen_layer_widget(self, layers, layers_avail, window, tooltip=""):
- hbox = gtk.HBox(False, 6)
-
- layer_tv = gtk.TreeView()
- layer_tv.set_rules_hint(True)
- layer_tv.set_headers_visible(False)
- tree_selection = layer_tv.get_selection()
- tree_selection.set_mode(gtk.SELECTION_SINGLE)
-
- # Allow enable drag and drop of rows including row move
- dnd_internal_target = ''
- dnd_targets = [(dnd_internal_target, gtk.TARGET_SAME_WIDGET, 0)]
- layer_tv.enable_model_drag_source( gtk.gdk.BUTTON1_MASK,
- dnd_targets,
- gtk.gdk.ACTION_MOVE)
- layer_tv.enable_model_drag_dest(dnd_targets,
- gtk.gdk.ACTION_MOVE)
- layer_tv.connect("drag_data_get", self.drag_data_get_cb)
- layer_tv.connect("drag_data_received", self.drag_data_received_cb)
-
- col0= gtk.TreeViewColumn('Path')
- cell0 = gtk.CellRendererText()
- cell0.set_padding(5,2)
- col0.pack_start(cell0, True)
- col0.set_cell_data_func(cell0, self.draw_layer_path_cb)
- layer_tv.append_column(col0)
-
- scroll = gtk.ScrolledWindow()
- scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- scroll.set_shadow_type(gtk.SHADOW_IN)
- scroll.add(layer_tv)
-
- table_layer = gtk.Table(2, 10, False)
- hbox.pack_start(table_layer, expand=True, fill=True)
-
- table_layer.attach(scroll, 0, 10, 0, 1)
-
- layer_store = gtk.ListStore(gobject.TYPE_STRING)
- for layer in layers:
- layer_store.append([layer])
-
- col1 = gtk.TreeViewColumn('Enabled')
- layer_tv.append_column(col1)
-
- cell1 = CellRendererPixbufActivatable()
- cell1.set_fixed_size(-1,35)
- cell1.connect("clicked", self.del_cell_clicked_cb, layer_store)
- col1.pack_start(cell1, True)
- col1.set_cell_data_func(cell1, self.draw_delete_button_cb, layer_tv)
-
- add_button = gtk.Button()
- add_button.set_relief(gtk.RELIEF_NONE)
- box = gtk.HBox(False, 6)
- box.show()
- add_button.add(box)
- add_button.connect("enter-notify-event", self.add_hover_cb)
- add_button.connect("leave-notify-event", self.add_leave_cb)
- self.im = gtk.Image()
- self.im.set_from_file(hic.ICON_INDI_ADD_FILE)
- self.im.show()
- box.pack_start(self.im, expand=False, fill=False, padding=6)
- lbl = gtk.Label("Add layer")
- lbl.set_alignment(0.0, 0.5)
- lbl.show()
- box.pack_start(lbl, expand=True, fill=True, padding=6)
- add_button.connect("clicked", self.layer_widget_add_clicked_cb, layer_store, window)
- table_layer.attach(add_button, 0, 10, 1, 2, gtk.EXPAND | gtk.FILL, 0, 0, 6)
- layer_tv.set_model(layer_store)
-
- hbox.show_all()
-
- return hbox, layer_store
-
- def drag_data_get_cb(self, treeview, context, selection, target_id, etime):
- treeselection = treeview.get_selection()
- model, iter = treeselection.get_selected()
- data = model.get_value(iter, 0)
- selection.set(selection.target, 8, data)
-
- def drag_data_received_cb(self, treeview, context, x, y, selection, info, etime):
- model = treeview.get_model()
- data = selection.data
- drop_info = treeview.get_dest_row_at_pos(x, y)
- if drop_info:
- path, position = drop_info
- iter = model.get_iter(path)
- if (position == gtk.TREE_VIEW_DROP_BEFORE or position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE):
- model.insert_before(iter, [data])
- else:
- model.insert_after(iter, [data])
- else:
- model.append([data])
- if context.action == gtk.gdk.ACTION_MOVE:
- context.finish(True, True, etime)
- return
-
- def add_hover_cb(self, button, event):
- self.im.set_from_file(hic.ICON_INDI_ADD_HOVER_FILE)
-
- def add_leave_cb(self, button, event):
- self.im.set_from_file(hic.ICON_INDI_ADD_FILE)
-
- def __init__(self, title, layers, layers_non_removable, all_layers, parent, flags, buttons=None):
- super(LayerSelectionDialog, self).__init__(title, parent, flags, buttons)
-
- # class members from other objects
- self.layers = layers
- self.layers_non_removable = layers_non_removable
- self.all_layers = all_layers
- self.layers_changed = False
-
- # icon for remove button in TreeView
- im = gtk.Image()
- im.set_from_file(hic.ICON_INDI_REMOVE_FILE)
- self.rem_icon = im.get_pixbuf()
-
- # class members for internal use
- self.layer_store = None
-
- # create visual elements on the dialog
- self.create_visual_elements()
- self.connect("response", self.response_cb)
-
- def create_visual_elements(self):
- layer_widget, self.layer_store = self.gen_layer_widget(self.layers, self.all_layers, self, None)
- layer_widget.set_size_request(450, 250)
- self.vbox.pack_start(layer_widget, expand=True, fill=True)
- self.show_all()
-
- def response_cb(self, dialog, response_id):
- model = self.layer_store
- it = model.get_iter_first()
- layers = []
- while it:
- layers.append(model.get_value(it, 0))
- it = model.iter_next(it)
-
- self.layers_changed = (self.layers != layers)
- self.layers = layers
-
- """
- A custom cell_data_func to draw a delete 'button' in the TreeView for layers
- other than the meta layer. The deletion of which is prevented so that the
- user can't shoot themselves in the foot too badly.
- """
- def draw_delete_button_cb(self, col, cell, model, it, tv):
- path = model.get_value(it, 0)
- if path in self.layers_non_removable:
- cell.set_sensitive(False)
- cell.set_property('pixbuf', None)
- cell.set_property('mode', gtk.CELL_RENDERER_MODE_INERT)
- else:
- cell.set_property('pixbuf', self.rem_icon)
- cell.set_sensitive(True)
- cell.set_property('mode', gtk.CELL_RENDERER_MODE_ACTIVATABLE)
-
- return True
-
- """
- A custom cell_data_func to write an extra message into the layer path cell
- for the meta layer. We should inform the user that they can't remove it for
- their own safety.
- """
- def draw_layer_path_cb(self, col, cell, model, it):
- path = model.get_value(it, 0)
- if path in self.layers_non_removable:
- cell.set_property('markup', "<b>It cannot be removed</b>\n%s" % path)
- else:
- cell.set_property('text', path)
-
- def del_cell_clicked_cb(self, cell, path, model):
- it = model.get_iter_from_string(path)
- model.remove(it)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py
deleted file mode 100644
index 09b9ce6de..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/propertydialog.py
+++ /dev/null
@@ -1,437 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2013 Intel Corporation
-#
-# Authored by Andrei Dinu <andrei.adrianx.dinu@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import string
-import gtk
-import gobject
-import os
-import tempfile
-import glib
-from bb.ui.crumbs.hig.crumbsdialog import CrumbsDialog
-from bb.ui.crumbs.hig.settingsuihelper import SettingsUIHelper
-from bb.ui.crumbs.hig.crumbsmessagedialog import CrumbsMessageDialog
-from bb.ui.crumbs.hig.layerselectiondialog import LayerSelectionDialog
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class PropertyDialog(CrumbsDialog):
-
- def __init__(self, title, parent, information, flags, buttons=None):
-
- super(PropertyDialog, self).__init__(title, parent, flags, buttons)
-
- self.properties = information
-
- if len(self.properties) == 10:
- self.create_recipe_visual_elements()
- elif len(self.properties) == 5:
- self.create_package_visual_elements()
- else:
- self.create_information_visual_elements()
-
-
- def create_information_visual_elements(self):
-
- HOB_ICON_BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), ("icons/"))
- ICON_PACKAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png'))
-
- self.set_resizable(False)
-
- self.table = gtk.Table(1,1,False)
- self.table.set_row_spacings(0)
- self.table.set_col_spacings(0)
-
- self.image = gtk.Image()
- self.image.set_from_file(ICON_PACKAGES_DISPLAY_FILE)
- self.image.set_property("xalign",0)
- #self.vbox.add(self.image)
-
- image_info = self.properties.split("*")[0]
- info = self.properties.split("*")[1]
-
- vbox = gtk.VBox(True, spacing=30)
-
- self.label_short = gtk.Label()
- self.label_short.set_line_wrap(False)
- self.label_short.set_markup(image_info)
- self.label_short.set_property("xalign", 0)
-
- self.info_label = gtk.Label()
- self.info_label.set_line_wrap(True)
- self.info_label.set_markup(info)
- self.info_label.set_property("yalign", 0.5)
-
- self.table.attach(self.image, 0,1,0,1, xoptions=gtk.FILL|gtk.EXPAND, yoptions=gtk.FILL,xpadding=5,ypadding=5)
- self.table.attach(self.label_short, 0,1,0,1, xoptions=gtk.FILL|gtk.EXPAND, yoptions=gtk.FILL,xpadding=40,ypadding=5)
- self.table.attach(self.info_label, 0,1,1,2, xoptions=gtk.FILL|gtk.EXPAND, yoptions=gtk.FILL,xpadding=40,ypadding=10)
-
- self.vbox.add(self.table)
- self.connect('delete-event', lambda w, e: self.destroy() or True)
-
- def treeViewTooltip( self, widget, e, tooltips, cell, emptyText="" ):
- try:
- (path,col,x,y) = widget.get_path_at_pos( int(e.x), int(e.y) )
- it = widget.get_model().get_iter(path)
- value = widget.get_model().get_value(it,cell)
- if value in self.tooltip_items:
- tooltips.set_tip(widget, self.tooltip_items[value])
- tooltips.enable()
- else:
- tooltips.set_tip(widget, emptyText)
- except:
- tooltips.set_tip(widget, emptyText)
-
-
- def create_package_visual_elements(self):
-
- import json
-
- name = self.properties['name']
- binb = self.properties['binb']
- size = self.properties['size']
- recipe = self.properties['recipe']
- file_list = json.loads(self.properties['files_list'])
-
- files_temp = ''
- paths_temp = ''
- files_binb = []
- paths_binb = []
-
- self.tooltip_items = {}
-
- self.set_resizable(False)
-
- #cleaning out the recipe variable
- recipe = recipe.split("+")[0]
-
- vbox = gtk.VBox(True,spacing = 0)
-
- ###################################### NAME ROW + COL #################################
-
- self.label_short = gtk.Label()
- self.label_short.set_size_request(300,-1)
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Name: </span>" + name)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ###################################### SIZE ROW + COL ######################################
-
- self.label_short = gtk.Label()
- self.label_short.set_size_request(300,-1)
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Size: </span>" + size)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ##################################### RECIPE ROW + COL #########################################
-
- self.label_short = gtk.Label()
- self.label_short.set_size_request(300,-1)
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Recipe: </span>" + recipe)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ##################################### BINB ROW + COL #######################################
-
- if binb != '':
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Brought in by: </span>")
- self.label_short.set_property("xalign", 0)
-
- self.label_info = gtk.Label()
- self.label_info.set_size_request(300,-1)
- self.label_info.set_selectable(True)
- self.label_info.set_line_wrap(True)
- self.label_info.set_markup(binb)
- self.label_info.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
- self.vbox.add(self.label_info)
-
- #################################### FILES BROUGHT BY PACKAGES ###################################
-
- if file_list:
-
- self.textWindow = gtk.ScrolledWindow()
- self.textWindow.set_shadow_type(gtk.SHADOW_IN)
- self.textWindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- self.textWindow.set_size_request(100, 170)
-
- packagefiles_store = gtk.ListStore(str)
-
- self.packagefiles_tv = gtk.TreeView()
- self.packagefiles_tv.set_rules_hint(True)
- self.packagefiles_tv.set_headers_visible(True)
- self.textWindow.add(self.packagefiles_tv)
-
- self.cell1 = gtk.CellRendererText()
- col1 = gtk.TreeViewColumn('Package files', self.cell1)
- col1.set_cell_data_func(self.cell1, self.regex_field)
- self.packagefiles_tv.append_column(col1)
-
- items = file_list.keys()
- items.sort()
- for item in items:
- fullpath = item
- while len(item) > 35:
- item = item[:len(item)/2] + "" + item[len(item)/2+1:]
- if len(item) == 35:
- item = item[:len(item)/2] + "..." + item[len(item)/2+3:]
- self.tooltip_items[item] = fullpath
-
- packagefiles_store.append([str(item)])
-
- self.packagefiles_tv.set_model(packagefiles_store)
-
- tips = gtk.Tooltips()
- tips.set_tip(self.packagefiles_tv, "")
- self.packagefiles_tv.connect("motion-notify-event", self.treeViewTooltip, tips, 0)
- self.packagefiles_tv.set_events(gtk.gdk.POINTER_MOTION_MASK)
-
- self.vbox.add(self.textWindow)
-
- self.vbox.show_all()
-
-
- def regex_field(self, column, cell, model, iter):
- cell.set_property('text', model.get_value(iter, 0))
- return
-
-
- def create_recipe_visual_elements(self):
-
- summary = self.properties['summary']
- name = self.properties['name']
- version = self.properties['version']
- revision = self.properties['revision']
- binb = self.properties['binb']
- group = self.properties['group']
- license = self.properties['license']
- homepage = self.properties['homepage']
- bugtracker = self.properties['bugtracker']
- description = self.properties['description']
-
- self.set_resizable(False)
-
- #cleaning out the version variable and also the summary
- version = version.split(":")[1]
- if len(version) > 30:
- version = version.split("+")[0]
- else:
- version = version.split("-")[0]
- license = license.replace("&" , "and")
- if (homepage == ''):
- homepage = 'unknown'
- if (bugtracker == ''):
- bugtracker = 'unknown'
- summary = summary.split("+")[0]
-
- #calculating the rows needed for the table
- binb_items_count = len(binb.split(','))
- binb_items = binb.split(',')
-
- vbox = gtk.VBox(False,spacing = 0)
-
- ######################################## SUMMARY LABEL #########################################
-
- if summary != '':
- self.label_short = gtk.Label()
- self.label_short.set_width_chars(37)
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<b>" + summary + "</b>")
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ########################################## NAME ROW + COL #######################################
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Name: </span>" + name)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ####################################### VERSION ROW + COL ####################################
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Version: </span>" + version)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ##################################### REVISION ROW + COL #####################################
-
- self.label_short = gtk.Label()
- self.label_short.set_line_wrap(True)
- self.label_short.set_selectable(True)
- self.label_short.set_markup("<span weight=\"bold\">Revision: </span>" + revision)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ################################## GROUP ROW + COL ############################################
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Group: </span>" + group)
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
-
- ################################# HOMEPAGE ROW + COL ############################################
-
- if homepage != 'unknown':
- self.label_info = gtk.Label()
- self.label_info.set_selectable(True)
- self.label_info.set_line_wrap(True)
- if len(homepage) > 35:
- self.label_info.set_markup("<a href=\"" + homepage + "\">" + homepage[0:35] + "..." + "</a>")
- else:
- self.label_info.set_markup("<a href=\"" + homepage + "\">" + homepage[0:60] + "</a>")
-
- self.label_info.set_property("xalign", 0)
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<b>Homepage: </b>")
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
- self.vbox.add(self.label_info)
-
- ################################# BUGTRACKER ROW + COL ###########################################
-
- if bugtracker != 'unknown':
- self.label_info = gtk.Label()
- self.label_info.set_selectable(True)
- self.label_info.set_line_wrap(True)
- if len(bugtracker) > 35:
- self.label_info.set_markup("<a href=\"" + bugtracker + "\">" + bugtracker[0:35] + "..." + "</a>")
- else:
- self.label_info.set_markup("<a href=\"" + bugtracker + "\">" + bugtracker[0:60] + "</a>")
- self.label_info.set_property("xalign", 0)
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<b>Bugtracker: </b>")
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
- self.vbox.add(self.label_info)
-
- ################################# LICENSE ROW + COL ############################################
-
- self.label_info = gtk.Label()
- self.label_info.set_selectable(True)
- self.label_info.set_line_wrap(True)
- self.label_info.set_markup(license)
- self.label_info.set_property("xalign", 0)
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">License: </span>")
- self.label_short.set_property("xalign", 0)
-
- self.vbox.add(self.label_short)
- self.vbox.add(self.label_info)
-
- ################################### BINB ROW+COL #############################################
-
- if binb != '':
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Brought in by: </span>")
- self.label_short.set_property("xalign", 0)
- self.vbox.add(self.label_short)
- self.label_info = gtk.Label()
- self.label_info.set_selectable(True)
- self.label_info.set_width_chars(36)
- if len(binb) > 200:
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_NEVER,gtk.POLICY_ALWAYS)
- scrolled_window.set_size_request(100,100)
- self.label_info.set_markup(binb)
- self.label_info.set_padding(6,6)
- self.label_info.set_alignment(0,0)
- self.label_info.set_line_wrap(True)
- scrolled_window.add_with_viewport(self.label_info)
- self.vbox.add(scrolled_window)
- else:
- self.label_info.set_markup(binb)
- self.label_info.set_property("xalign", 0)
- self.label_info.set_line_wrap(True)
- self.vbox.add(self.label_info)
-
- ################################ DESCRIPTION TAG ROW #################################################
-
- self.label_short = gtk.Label()
- self.label_short.set_line_wrap(True)
- self.label_short.set_markup("<span weight=\"bold\">Description </span>")
- self.label_short.set_property("xalign", 0)
- self.vbox.add(self.label_short)
-
- ################################ DESCRIPTION INFORMATION ROW ##########################################
-
- hbox = gtk.HBox(True,spacing = 0)
-
- self.label_short = gtk.Label()
- self.label_short.set_selectable(True)
- self.label_short.set_width_chars(36)
- if len(description) > 200:
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_NEVER,gtk.POLICY_ALWAYS)
- scrolled_window.set_size_request(100,100)
- self.label_short.set_markup(description)
- self.label_short.set_padding(6,6)
- self.label_short.set_alignment(0,0)
- self.label_short.set_line_wrap(True)
- scrolled_window.add_with_viewport(self.label_short)
- self.vbox.add(scrolled_window)
- else:
- self.label_short.set_markup(description)
- self.label_short.set_property("xalign", 0)
- self.label_short.set_line_wrap(True)
- self.vbox.add(self.label_short)
-
- self.vbox.show_all()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/settingsuihelper.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/settingsuihelper.py
deleted file mode 100644
index e0285c93c..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/settingsuihelper.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-import os
-from bb.ui.crumbs.hobwidget import HobInfoButton, HobButton, HobAltButton
-
-"""
-The following are convenience classes for implementing GNOME HIG compliant
-BitBake GUI's
-In summary: spacing = 12px, border-width = 6px
-"""
-
-class SettingsUIHelper():
-
- def gen_label_widget(self, content):
- label = gtk.Label()
- label.set_alignment(0, 0)
- label.set_markup(content)
- label.show()
- return label
-
- def gen_label_info_widget(self, content, tooltip):
- table = gtk.Table(1, 10, False)
- label = self.gen_label_widget(content)
- info = HobInfoButton(tooltip, self)
- table.attach(label, 0, 1, 0, 1, xoptions=gtk.FILL)
- table.attach(info, 1, 2, 0, 1, xoptions=gtk.FILL, xpadding=10)
- return table
-
- def gen_spinner_widget(self, content, lower, upper, tooltip=""):
- hbox = gtk.HBox(False, 12)
- adjust = gtk.Adjustment(value=content, lower=lower, upper=upper, step_incr=1)
- spinner = gtk.SpinButton(adjustment=adjust, climb_rate=1, digits=0)
-
- spinner.set_value(content)
- hbox.pack_start(spinner, expand=False, fill=False)
-
- info = HobInfoButton(tooltip, self)
- hbox.pack_start(info, expand=False, fill=False)
-
- hbox.show_all()
- return hbox, spinner
-
- def gen_combo_widget(self, curr_item, all_item, tooltip=""):
- hbox = gtk.HBox(False, 12)
- combo = gtk.combo_box_new_text()
- hbox.pack_start(combo, expand=False, fill=False)
-
- index = 0
- for item in all_item or []:
- combo.append_text(item)
- if item == curr_item:
- combo.set_active(index)
- index += 1
-
- info = HobInfoButton(tooltip, self)
- hbox.pack_start(info, expand=False, fill=False)
-
- hbox.show_all()
- return hbox, combo
-
- def entry_widget_select_path_cb(self, action, parent, entry):
- dialog = gtk.FileChooserDialog("", parent,
- gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
- text = entry.get_text()
- dialog.set_current_folder(text if len(text) > 0 else os.getcwd())
- button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
- HobAltButton.style_button(button)
- button = dialog.add_button("Open", gtk.RESPONSE_YES)
- HobButton.style_button(button)
- response = dialog.run()
- if response == gtk.RESPONSE_YES:
- path = dialog.get_filename()
- entry.set_text(path)
-
- dialog.destroy()
-
- def gen_entry_widget(self, content, parent, tooltip="", need_button=True):
- hbox = gtk.HBox(False, 12)
- entry = gtk.Entry()
- entry.set_text(content)
- entry.set_size_request(350,30)
-
- if need_button:
- table = gtk.Table(1, 10, False)
- hbox.pack_start(table, expand=True, fill=True)
- table.attach(entry, 0, 9, 0, 1, xoptions=gtk.SHRINK)
- image = gtk.Image()
- image.set_from_stock(gtk.STOCK_OPEN,gtk.ICON_SIZE_BUTTON)
- open_button = gtk.Button()
- open_button.set_image(image)
- open_button.connect("clicked", self.entry_widget_select_path_cb, parent, entry)
- table.attach(open_button, 9, 10, 0, 1, xoptions=gtk.SHRINK)
- else:
- hbox.pack_start(entry, expand=True, fill=True)
-
- if tooltip != "":
- info = HobInfoButton(tooltip, self)
- hbox.pack_start(info, expand=False, fill=False)
-
- hbox.show_all()
- return hbox, entry
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobcolor.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobcolor.py
deleted file mode 100644
index 3316542a2..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobcolor.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2012 Intel Corporation
-#
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-class HobColors:
- WHITE = "#ffffff"
- PALE_GREEN = "#aaffaa"
- ORANGE = "#eb8e68"
- PALE_RED = "#ffaaaa"
- GRAY = "#aaaaaa"
- LIGHT_GRAY = "#dddddd"
- SLIGHT_DARK = "#5f5f5f"
- DARK = "#3c3b37"
- BLACK = "#000000"
- PALE_BLUE = "#53b8ff"
- DEEP_RED = "#aa3e3e"
- KHAKI = "#fff68f"
-
- OK = WHITE
- RUNNING = PALE_GREEN
- WARNING = ORANGE
- ERROR = PALE_RED
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobwidget.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobwidget.py
deleted file mode 100644
index 2b969c146..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hobwidget.py
+++ /dev/null
@@ -1,904 +0,0 @@
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011-2012 Intel Corporation
-#
-# Authored by Dongxiao Xu <dongxiao.xu@intel.com>
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-import gtk
-import gobject
-import os
-import os.path
-import sys
-import pango, pangocairo
-import cairo
-import math
-
-from bb.ui.crumbs.hobcolor import HobColors
-from bb.ui.crumbs.persistenttooltip import PersistentTooltip
-
-class hwc:
-
- MAIN_WIN_WIDTH = 1024
- MAIN_WIN_HEIGHT = 700
-
-class hic:
-
- HOB_ICON_BASE_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), ("ui/icons/"))
-
- ICON_RCIPE_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('recipe/recipe_display.png'))
- ICON_RCIPE_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('recipe/recipe_hover.png'))
- ICON_PACKAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('packages/packages_display.png'))
- ICON_PACKAGES_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('packages/packages_hover.png'))
- ICON_LAYERS_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('layers/layers_display.png'))
- ICON_LAYERS_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('layers/layers_hover.png'))
- ICON_IMAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('images/images_display.png'))
- ICON_IMAGES_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('images/images_hover.png'))
- ICON_SETTINGS_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('settings/settings_display.png'))
- ICON_SETTINGS_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('settings/settings_hover.png'))
- ICON_INFO_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png'))
- ICON_INFO_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_hover.png'))
- ICON_INDI_CONFIRM_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/confirmation.png'))
- ICON_INDI_ERROR_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/denied.png'))
- ICON_INDI_REMOVE_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/remove.png'))
- ICON_INDI_REMOVE_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/remove-hover.png'))
- ICON_INDI_ADD_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/add.png'))
- ICON_INDI_ADD_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/add-hover.png'))
- ICON_INDI_REFRESH_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/refresh.png'))
- ICON_INDI_ALERT_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/alert.png'))
- ICON_INDI_TICK_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/tick.png'))
- ICON_INDI_INFO_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/info.png'))
-
-class HobViewTable (gtk.VBox):
- """
- A VBox to contain the table for different recipe views and package view
- """
- __gsignals__ = {
- "toggled" : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_PYOBJECT,
- gobject.TYPE_STRING,
- gobject.TYPE_INT,
- gobject.TYPE_PYOBJECT,)),
- "row-activated" : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_PYOBJECT,
- gobject.TYPE_PYOBJECT,)),
- "cell-fadeinout-stopped" : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_PYOBJECT,
- gobject.TYPE_PYOBJECT,
- gobject.TYPE_PYOBJECT,)),
- }
-
- def __init__(self, columns, name):
- gtk.VBox.__init__(self, False, 6)
- self.table_tree = gtk.TreeView()
- self.table_tree.set_headers_visible(True)
- self.table_tree.set_headers_clickable(True)
- self.table_tree.set_rules_hint(True)
- self.table_tree.set_enable_tree_lines(True)
- self.table_tree.get_selection().set_mode(gtk.SELECTION_SINGLE)
- self.toggle_columns = []
- self.table_tree.connect("row-activated", self.row_activated_cb)
- self.top_bar = None
- self.tab_name = name
-
- for i, column in enumerate(columns):
- col_name = column['col_name']
- col = gtk.TreeViewColumn(col_name)
- col.set_clickable(True)
- col.set_resizable(True)
- if self.tab_name.startswith('Included'):
- if col_name!='Included':
- col.set_sort_column_id(column['col_id'])
- else:
- col.set_sort_column_id(column['col_id'])
- if 'col_min' in column.keys():
- col.set_min_width(column['col_min'])
- if 'col_max' in column.keys():
- col.set_max_width(column['col_max'])
- if 'expand' in column.keys():
- col.set_expand(True)
- self.table_tree.append_column(col)
-
- if (not 'col_style' in column.keys()) or column['col_style'] == 'text':
- cell = gtk.CellRendererText()
- col.pack_start(cell, True)
- col.set_attributes(cell, text=column['col_id'])
- if 'col_t_id' in column.keys():
- col.add_attribute(cell, 'font', column['col_t_id'])
- elif column['col_style'] == 'check toggle':
- cell = HobCellRendererToggle()
- cell.set_property('activatable', True)
- cell.connect("toggled", self.toggled_cb, i, self.table_tree)
- cell.connect_render_state_changed(self.stop_cell_fadeinout_cb, self.table_tree)
- self.toggle_id = i
- col.pack_end(cell, True)
- col.set_attributes(cell, active=column['col_id'])
- self.toggle_columns.append(col_name)
- if 'col_group' in column.keys():
- col.set_cell_data_func(cell, self.set_group_number_cb)
- elif column['col_style'] == 'radio toggle':
- cell = gtk.CellRendererToggle()
- cell.set_property('activatable', True)
- cell.set_radio(True)
- cell.connect("toggled", self.toggled_cb, i, self.table_tree)
- self.toggle_id = i
- col.pack_end(cell, True)
- col.set_attributes(cell, active=column['col_id'])
- self.toggle_columns.append(col_name)
- elif column['col_style'] == 'binb':
- cell = gtk.CellRendererText()
- col.pack_start(cell, True)
- col.set_cell_data_func(cell, self.display_binb_cb, column['col_id'])
- if 'col_t_id' in column.keys():
- col.add_attribute(cell, 'font', column['col_t_id'])
-
- self.scroll = gtk.ScrolledWindow()
- self.scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- self.scroll.add(self.table_tree)
-
- self.pack_end(self.scroll, True, True, 0)
-
- def add_no_result_bar(self, entry):
- color = HobColors.KHAKI
- self.top_bar = gtk.EventBox()
- self.top_bar.set_size_request(-1, 70)
- self.top_bar.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
- self.top_bar.set_flags(gtk.CAN_DEFAULT)
- self.top_bar.grab_default()
-
- no_result_tab = gtk.Table(5, 20, True)
- self.top_bar.add(no_result_tab)
-
- label = gtk.Label()
- label.set_alignment(0.0, 0.5)
- title = "No results matching your search"
- label.set_markup("<span size='x-large'><b>%s</b></span>" % title)
- no_result_tab.attach(label, 1, 14, 1, 4)
-
- clear_button = HobButton("Clear search")
- clear_button.set_tooltip_text("Clear search query")
- clear_button.connect('clicked', self.set_search_entry_clear_cb, entry)
- no_result_tab.attach(clear_button, 16, 19, 1, 4)
-
- self.pack_start(self.top_bar, False, True, 12)
- self.top_bar.show_all()
-
- def set_search_entry_clear_cb(self, button, search):
- if search.get_editable() == True:
- search.set_text("")
- search.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False)
- search.grab_focus()
-
- def display_binb_cb(self, col, cell, model, it, col_id):
- binb = model.get_value(it, col_id)
- # Just display the first item
- if binb:
- bin = binb.split(', ')
- total_no = len(bin)
- if total_no > 1 and bin[0] == "User Selected":
- if total_no > 2:
- present_binb = bin[1] + ' (+' + str(total_no - 1) + ')'
- else:
- present_binb = bin[1]
- else:
- if total_no > 1:
- present_binb = bin[0] + ' (+' + str(total_no - 1) + ')'
- else:
- present_binb = bin[0]
- cell.set_property('text', present_binb)
- else:
- cell.set_property('text', "")
- return True
-
- def set_model(self, tree_model):
- self.table_tree.set_model(tree_model)
-
- def toggle_default(self):
- model = self.table_tree.get_model()
- if not model:
- return
- iter = model.get_iter_first()
- if iter:
- rowpath = model.get_path(iter)
- model[rowpath][self.toggle_id] = True
-
- def toggled_cb(self, cell, path, columnid, tree):
- self.emit("toggled", cell, path, columnid, tree)
-
- def row_activated_cb(self, tree, path, view_column):
- if not view_column.get_title() in self.toggle_columns:
- self.emit("row-activated", tree.get_model(), path)
-
- def stop_cell_fadeinout_cb(self, ctrl, cell, tree):
- self.emit("cell-fadeinout-stopped", ctrl, cell, tree)
-
- def set_group_number_cb(self, col, cell, model, iter):
- if model and (model.iter_parent(iter) == None):
- cell.cell_attr["number_of_children"] = model.iter_n_children(iter)
- else:
- cell.cell_attr["number_of_children"] = 0
-
- def connect_group_selection(self, cb_func):
- self.table_tree.get_selection().connect("changed", cb_func)
-
-"""
-A method to calculate a softened value for the colour of widget when in the
-provided state.
-
-widget: the widget whose style to use
-state: the state of the widget to use the style for
-
-Returns a string value representing the softened colour
-"""
-def soften_color(widget, state=gtk.STATE_NORMAL):
- # this colour munging routine is heavily inspired bu gdu_util_get_mix_color()
- # from gnome-disk-utility:
- # http://git.gnome.org/browse/gnome-disk-utility/tree/src/gdu-gtk/gdu-gtk.c?h=gnome-3-0
- blend = 0.7
- style = widget.get_style()
- color = style.text[state]
- color.red = color.red * blend + style.base[state].red * (1.0 - blend)
- color.green = color.green * blend + style.base[state].green * (1.0 - blend)
- color.blue = color.blue * blend + style.base[state].blue * (1.0 - blend)
- return color.to_string()
-
-class BaseHobButton(gtk.Button):
- """
- A gtk.Button subclass which follows the visual design of Hob for primary
- action buttons
-
- label: the text to display as the button's label
- """
- def __init__(self, label):
- gtk.Button.__init__(self, label)
- HobButton.style_button(self)
-
- @staticmethod
- def style_button(button):
- style = button.get_style()
- style = gtk.rc_get_style_by_paths(gtk.settings_get_default(), 'gtk-button', 'gtk-button', gobject.TYPE_NONE)
-
- button.set_flags(gtk.CAN_DEFAULT)
- button.grab_default()
-
-# label = "<span size='x-large'><b>%s</b></span>" % gobject.markup_escape_text(button.get_label())
- label = button.get_label()
- button.set_label(label)
- button.child.set_use_markup(True)
-
-class HobButton(BaseHobButton):
- """
- A gtk.Button subclass which follows the visual design of Hob for primary
- action buttons
-
- label: the text to display as the button's label
- """
- def __init__(self, label):
- BaseHobButton.__init__(self, label)
- HobButton.style_button(self)
-
-class HobAltButton(BaseHobButton):
- """
- A gtk.Button subclass which has no relief, and so is more discrete
- """
- def __init__(self, label):
- BaseHobButton.__init__(self, label)
- HobAltButton.style_button(self)
-
- """
- A callback for the state-changed event to ensure the text is displayed
- differently when the widget is not sensitive
- """
- @staticmethod
- def desensitise_on_state_change_cb(button, state):
- if not button.get_property("sensitive"):
- HobAltButton.set_text(button, False)
- else:
- HobAltButton.set_text(button, True)
-
- """
- Set the button label with an appropriate colour for the current widget state
- """
- @staticmethod
- def set_text(button, sensitive=True):
- if sensitive:
- colour = HobColors.PALE_BLUE
- else:
- colour = HobColors.LIGHT_GRAY
- button.set_label("<span size='large' color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(button.text)))
- button.child.set_use_markup(True)
-
-class HobImageButton(gtk.Button):
- """
- A gtk.Button with an icon and two rows of text, the second of which is
- displayed in a blended colour.
-
- primary_text: the main button label
- secondary_text: optional second line of text
- icon_path: path to the icon file to display on the button
- """
- def __init__(self, primary_text, secondary_text="", icon_path="", hover_icon_path=""):
- gtk.Button.__init__(self)
- self.set_relief(gtk.RELIEF_NONE)
-
- self.icon_path = icon_path
- self.hover_icon_path = hover_icon_path
-
- hbox = gtk.HBox(False, 10)
- hbox.show()
- self.add(hbox)
- self.icon = gtk.Image()
- self.icon.set_from_file(self.icon_path)
- self.icon.set_alignment(0.5, 0.0)
- self.icon.show()
- if self.hover_icon_path and len(self.hover_icon_path):
- self.connect("enter-notify-event", self.set_hover_icon_cb)
- self.connect("leave-notify-event", self.set_icon_cb)
- hbox.pack_start(self.icon, False, False, 0)
- label = gtk.Label()
- label.set_alignment(0.0, 0.5)
- colour = soften_color(label)
- mark = "<span size='x-large'>%s</span>\n<span size='medium' fgcolor='%s' weight='ultralight'>%s</span>" % (primary_text, colour, secondary_text)
- label.set_markup(mark)
- label.show()
- hbox.pack_start(label, True, True, 0)
-
- def set_hover_icon_cb(self, widget, event):
- self.icon.set_from_file(self.hover_icon_path)
-
- def set_icon_cb(self, widget, event):
- self.icon.set_from_file(self.icon_path)
-
-class HobInfoButton(gtk.EventBox):
- """
- This class implements a button-like widget per the Hob visual and UX designs
- which will display a persistent tooltip, with the contents of tip_markup, when
- clicked.
-
- tip_markup: the Pango Markup to be displayed in the persistent tooltip
- """
- def __init__(self, tip_markup, parent=None):
- gtk.EventBox.__init__(self)
- self.image = gtk.Image()
- self.image.set_from_file(
- hic.ICON_INFO_DISPLAY_FILE)
- self.image.show()
- self.add(self.image)
- self.tip_markup = tip_markup
- self.my_parent = parent
-
- self.set_events(gtk.gdk.BUTTON_RELEASE |
- gtk.gdk.ENTER_NOTIFY_MASK |
- gtk.gdk.LEAVE_NOTIFY_MASK)
-
- self.connect("button-release-event", self.button_release_cb)
- self.connect("enter-notify-event", self.mouse_in_cb)
- self.connect("leave-notify-event", self.mouse_out_cb)
-
- """
- When the mouse click is released emulate a button-click and show the associated
- PersistentTooltip
- """
- def button_release_cb(self, widget, event):
- from bb.ui.crumbs.hig.propertydialog import PropertyDialog
- self.dialog = PropertyDialog(title = '',
- parent = self.my_parent,
- information = self.tip_markup,
- flags = gtk.DIALOG_DESTROY_WITH_PARENT
- | gtk.DIALOG_NO_SEPARATOR)
-
- button = self.dialog.add_button("Close", gtk.RESPONSE_CANCEL)
- HobAltButton.style_button(button)
- button.connect("clicked", lambda w: self.dialog.destroy())
- self.dialog.show_all()
- self.dialog.run()
-
- """
- Change to the prelight image when the mouse enters the widget
- """
- def mouse_in_cb(self, widget, event):
- self.image.set_from_file(hic.ICON_INFO_HOVER_FILE)
-
- """
- Change to the stock image when the mouse enters the widget
- """
- def mouse_out_cb(self, widget, event):
- self.image.set_from_file(hic.ICON_INFO_DISPLAY_FILE)
-
-class HobIndicator(gtk.DrawingArea):
- def __init__(self, count):
- gtk.DrawingArea.__init__(self)
- # Set no window for transparent background
- self.set_has_window(False)
- self.set_size_request(38,38)
- # We need to pass through button clicks
- self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
-
- self.connect('expose-event', self.expose)
-
- self.count = count
- self.color = HobColors.GRAY
-
- def expose(self, widget, event):
- if self.count and self.count > 0:
- ctx = widget.window.cairo_create()
-
- x, y, w, h = self.allocation
-
- ctx.set_operator(cairo.OPERATOR_OVER)
- ctx.set_source_color(gtk.gdk.color_parse(self.color))
- ctx.translate(w/2, h/2)
- ctx.arc(x, y, min(w,h)/2 - 2, 0, 2*math.pi)
- ctx.fill_preserve()
-
- layout = self.create_pango_layout(str(self.count))
- textw, texth = layout.get_pixel_size()
- x = (w/2)-(textw/2) + x
- y = (h/2) - (texth/2) + y
- ctx.move_to(x, y)
- self.window.draw_layout(self.style.light_gc[gtk.STATE_NORMAL], int(x), int(y), layout)
-
- def set_count(self, count):
- self.count = count
-
- def set_active(self, active):
- if active:
- self.color = HobColors.DEEP_RED
- else:
- self.color = HobColors.GRAY
-
-class HobTabLabel(gtk.HBox):
- def __init__(self, text, count=0):
- gtk.HBox.__init__(self, False, 0)
- self.indicator = HobIndicator(count)
- self.indicator.show()
- self.pack_end(self.indicator, False, False)
- self.lbl = gtk.Label(text)
- self.lbl.set_alignment(0.0, 0.5)
- self.lbl.show()
- self.pack_end(self.lbl, True, True, 6)
-
- def set_count(self, count):
- self.indicator.set_count(count)
-
- def set_active(self, active=True):
- self.indicator.set_active(active)
-
-class HobNotebook(gtk.Notebook):
- def __init__(self):
- gtk.Notebook.__init__(self)
- self.set_property('homogeneous', True)
-
- self.pages = []
-
- self.search = None
- self.search_focus = False
- self.page_changed = False
-
- self.connect("switch-page", self.page_changed_cb)
-
- self.show_all()
-
- def page_changed_cb(self, nb, page, page_num):
- for p, lbl in enumerate(self.pages):
- if p == page_num:
- lbl.set_active()
- else:
- lbl.set_active(False)
-
- if self.search:
- self.page_changed = True
- self.reset_entry(self.search, page_num)
-
- def append_page(self, child, tab_label, tab_tooltip=None):
- label = HobTabLabel(tab_label)
- if tab_tooltip:
- label.set_tooltip_text(tab_tooltip)
- label.set_active(False)
- self.pages.append(label)
- gtk.Notebook.append_page(self, child, label)
-
- def set_entry(self, names, tips):
- self.search = gtk.Entry()
- self.search_names = names
- self.search_tips = tips
- style = self.search.get_style()
- style.text[gtk.STATE_NORMAL] = self.get_colormap().alloc_color(HobColors.GRAY, False, False)
- self.search.set_style(style)
- self.search.set_text(names[0])
- self.search.set_tooltip_text(self.search_tips[0])
- self.search.props.has_tooltip = True
-
- self.search.set_editable(False)
- self.search.set_icon_from_stock(gtk.ENTRY_ICON_SECONDARY, gtk.STOCK_CLEAR)
- self.search.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False)
- self.search.connect("icon-release", self.set_search_entry_clear_cb)
- self.search.set_width_chars(30)
- self.search.show()
-
- self.search.connect("focus-in-event", self.set_search_entry_editable_cb)
- self.search.connect("focus-out-event", self.set_search_entry_reset_cb)
- self.set_action_widget(self.search, gtk.PACK_END)
-
- def show_indicator_icon(self, title, number):
- for child in self.pages:
- if child.lbl.get_label() == title:
- child.set_count(number)
-
- def hide_indicator_icon(self, title):
- for child in self.pages:
- if child.lbl.get_label() == title:
- child.set_count(0)
-
- def set_search_entry_editable_cb(self, search, event):
- self.search_focus = True
- search.set_editable(True)
- text = search.get_text()
- if text in self.search_names:
- search.set_text("")
- style = self.search.get_style()
- style.text[gtk.STATE_NORMAL] = self.get_colormap().alloc_color(HobColors.BLACK, False, False)
- search.set_style(style)
-
- def set_search_entry_reset_cb(self, search, event):
- page_num = self.get_current_page()
- text = search.get_text()
- if not text:
- self.reset_entry(search, page_num)
-
- def reset_entry(self, entry, page_num):
- style = entry.get_style()
- style.text[gtk.STATE_NORMAL] = self.get_colormap().alloc_color(HobColors.GRAY, False, False)
- entry.set_style(style)
- entry.set_text(self.search_names[page_num])
- entry.set_tooltip_text(self.search_tips[page_num])
- entry.set_editable(False)
- entry.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False)
-
- def set_search_entry_clear_cb(self, search, icon_pos, event):
- if search.get_editable() == True:
- search.set_text("")
- search.set_icon_sensitive(gtk.ENTRY_ICON_SECONDARY, False)
- search.grab_focus()
-
- def set_page(self, title):
- for child in self.pages:
- if child.lbl.get_label() == title:
- child.grab_focus()
- self.set_current_page(self.pages.index(child))
- return
-
-class HobWarpCellRendererText(gtk.CellRendererText):
- def __init__(self, col_number):
- gtk.CellRendererText.__init__(self)
- self.set_property("wrap-mode", pango.WRAP_WORD_CHAR)
- self.set_property("wrap-width", 300) # default value wrap width is 300
- self.col_n = col_number
-
- def do_render(self, window, widget, background_area, cell_area, expose_area, flags):
- if widget:
- self.props.wrap_width = self.get_resized_wrap_width(widget, widget.get_column(self.col_n))
- return gtk.CellRendererText.do_render(self, window, widget, background_area, cell_area, expose_area, flags)
-
- def get_resized_wrap_width(self, treeview, column):
- otherCols = []
- for col in treeview.get_columns():
- if col != column:
- otherCols.append(col)
- adjwidth = treeview.allocation.width - sum(c.get_width() for c in otherCols)
- adjwidth -= treeview.style_get_property("horizontal-separator") * 4
- if self.props.wrap_width == adjwidth or adjwidth <= 0:
- adjwidth = self.props.wrap_width
- return adjwidth
-
-gobject.type_register(HobWarpCellRendererText)
-
-class HobIconChecker(hic):
- def set_hob_icon_to_stock_icon(self, file_path, stock_id=""):
- try:
- pixbuf = gtk.gdk.pixbuf_new_from_file(file_path)
- except Exception, e:
- return None
-
- if stock_id and (gtk.icon_factory_lookup_default(stock_id) == None):
- icon_factory = gtk.IconFactory()
- icon_factory.add_default()
- icon_factory.add(stock_id, gtk.IconSet(pixbuf))
- gtk.stock_add([(stock_id, '_label', 0, 0, '')])
-
- return icon_factory.lookup(stock_id)
-
- return None
-
- """
- For make hob icon consistently by request, and avoid icon view diff by system or gtk version, we use some 'hob icon' to replace the 'gtk icon'.
- this function check the stock_id and make hob_id to replaced the gtk_id then return it or ""
- """
- def check_stock_icon(self, stock_name=""):
- HOB_CHECK_STOCK_NAME = {
- ('hic-dialog-info', 'gtk-dialog-info', 'dialog-info') : self.ICON_INDI_INFO_FILE,
- ('hic-ok', 'gtk-ok', 'ok') : self.ICON_INDI_TICK_FILE,
- ('hic-dialog-error', 'gtk-dialog-error', 'dialog-error') : self.ICON_INDI_ERROR_FILE,
- ('hic-dialog-warning', 'gtk-dialog-warning', 'dialog-warning') : self.ICON_INDI_ALERT_FILE,
- ('hic-task-refresh', 'gtk-execute', 'execute') : self.ICON_INDI_REFRESH_FILE,
- }
- valid_stock_id = stock_name
- if stock_name:
- for names, path in HOB_CHECK_STOCK_NAME.iteritems():
- if stock_name in names:
- valid_stock_id = names[0]
- if not gtk.icon_factory_lookup_default(valid_stock_id):
- self.set_hob_icon_to_stock_icon(path, valid_stock_id)
-
- return valid_stock_id
-
-class HobCellRendererController(gobject.GObject):
- (MODE_CYCLE_RUNNING, MODE_ONE_SHORT) = range(2)
- __gsignals__ = {
- "run-timer-stopped" : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- }
- def __init__(self, runningmode=MODE_CYCLE_RUNNING, is_draw_row=False):
- gobject.GObject.__init__(self)
- self.timeout_id = None
- self.current_angle_pos = 0.0
- self.step_angle = 0.0
- self.tree_headers_height = 0
- self.running_cell_areas = []
- self.running_mode = runningmode
- self.is_queue_draw_row_area = is_draw_row
- self.force_stop_enable = False
-
- def is_active(self):
- if self.timeout_id:
- return True
- else:
- return False
-
- def reset_run(self):
- self.force_stop()
- self.running_cell_areas = []
- self.current_angle_pos = 0.0
- self.step_angle = 0.0
-
- ''' time_iterval: (1~1000)ms, which will be as the basic interval count for timer
- init_usrdata: the current data which related the progress-bar will be at
- min_usrdata: the range of min of user data
- max_usrdata: the range of max of user data
- step: each step which you want to progress
- Note: the init_usrdata should in the range of from min to max, and max should > min
- step should < (max - min)
- '''
- def start_run(self, time_iterval, init_usrdata, min_usrdata, max_usrdata, step, tree):
- if (not time_iterval) or (not max_usrdata):
- return
- usr_range = (max_usrdata - min_usrdata) * 1.0
- self.current_angle_pos = (init_usrdata * 1.0) / usr_range
- self.step_angle = (step * 1) / usr_range
- self.timeout_id = gobject.timeout_add(int(time_iterval),
- self.make_image_on_progressing_cb, tree)
- self.tree_headers_height = self.get_treeview_headers_height(tree)
- self.force_stop_enable = False
-
- def force_stop(self):
- self.emit("run-timer-stopped")
- self.force_stop_enable = True
- if self.timeout_id:
- if gobject.source_remove(self.timeout_id):
- self.timeout_id = None
-
- def on_draw_pixbuf_cb(self, pixbuf, cr, x, y, img_width, img_height, do_refresh=True):
- if pixbuf:
- r = max(img_width/2, img_height/2)
- cr.translate(x + r, y + r)
- if do_refresh:
- cr.rotate(2 * math.pi * self.current_angle_pos)
-
- cr.set_source_pixbuf(pixbuf, -img_width/2, -img_height/2)
- cr.paint()
-
- def on_draw_fadeinout_cb(self, cr, color, x, y, width, height, do_fadeout=True):
- if do_fadeout:
- alpha = self.current_angle_pos * 0.8
- else:
- alpha = (1.0 - self.current_angle_pos) * 0.8
-
- cr.set_source_rgba(color.red, color.green, color.blue, alpha)
- cr.rectangle(x, y, width, height)
- cr.fill()
-
- def get_treeview_headers_height(self, tree):
- if tree and (tree.get_property("headers-visible") == True):
- height = tree.get_allocation().height - tree.get_bin_window().get_size()[1]
- return height
-
- return 0
-
- def make_image_on_progressing_cb(self, tree):
- self.current_angle_pos += self.step_angle
- if self.running_mode == self.MODE_CYCLE_RUNNING:
- if (self.current_angle_pos >= 1):
- self.current_angle_pos = 0
- else:
- if self.current_angle_pos > 1:
- self.force_stop()
- return False
-
- if self.is_queue_draw_row_area:
- for path in self.running_cell_areas:
- rect = tree.get_cell_area(path, tree.get_column(0))
- row_x, _, row_width, _ = tree.get_visible_rect()
- tree.queue_draw_area(row_x, rect.y + self.tree_headers_height, row_width, rect.height)
- else:
- for rect in self.running_cell_areas:
- tree.queue_draw_area(rect.x, rect.y + self.tree_headers_height, rect.width, rect.height)
-
- return (not self.force_stop_enable)
-
- def append_running_cell_area(self, cell_area):
- if cell_area and (cell_area not in self.running_cell_areas):
- self.running_cell_areas.append(cell_area)
-
- def remove_running_cell_area(self, cell_area):
- if cell_area in self.running_cell_areas:
- self.running_cell_areas.remove(cell_area)
- if not self.running_cell_areas:
- self.reset_run()
-
-gobject.type_register(HobCellRendererController)
-
-class HobCellRendererPixbuf(gtk.CellRendererPixbuf):
- def __init__(self):
- gtk.CellRendererPixbuf.__init__(self)
- self.control = HobCellRendererController()
- # add icon checker for make the gtk-icon transfer to hob-icon
- self.checker = HobIconChecker()
- self.set_property("stock-size", gtk.ICON_SIZE_DND)
-
- def get_pixbuf_from_stock_icon(self, widget, stock_id="", size=gtk.ICON_SIZE_DIALOG):
- if widget and stock_id and gtk.icon_factory_lookup_default(stock_id):
- return widget.render_icon(stock_id, size)
-
- return None
-
- def set_icon_name_to_id(self, new_name):
- if new_name and type(new_name) == str:
- # check the name is need to transfer to hob icon or not
- name = self.checker.check_stock_icon(new_name)
- if name.startswith("hic") or name.startswith("gtk"):
- stock_id = name
- else:
- stock_id = 'gtk-' + name
-
- return stock_id
-
- ''' render cell exactly, "icon-name" is priority
- if use the 'hic-task-refresh' will make the pix animation
- if 'pix' will change the pixbuf for it from the pixbuf or image.
- '''
- def do_render(self, window, tree, background_area,cell_area, expose_area, flags):
- if (not self.control) or (not tree):
- return
-
- x, y, w, h = self.on_get_size(tree, cell_area)
- x += cell_area.x
- y += cell_area.y
- w -= 2 * self.get_property("xpad")
- h -= 2 * self.get_property("ypad")
-
- stock_id = ""
- if self.props.icon_name:
- stock_id = self.set_icon_name_to_id(self.props.icon_name)
- elif self.props.stock_id:
- stock_id = self.props.stock_id
- elif self.props.pixbuf:
- pix = self.props.pixbuf
- else:
- return
-
- if stock_id:
- pix = self.get_pixbuf_from_stock_icon(tree, stock_id, self.props.stock_size)
- if stock_id == 'hic-task-refresh':
- self.control.append_running_cell_area(cell_area)
- if self.control.is_active():
- self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, True)
- else:
- self.control.start_run(200, 0, 0, 1000, 150, tree)
- else:
- self.control.remove_running_cell_area(cell_area)
- self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, False)
-
- def on_get_size(self, widget, cell_area):
- if self.props.icon_name or self.props.pixbuf or self.props.stock_id:
- w, h = gtk.icon_size_lookup(self.props.stock_size)
- calc_width = self.get_property("xpad") * 2 + w
- calc_height = self.get_property("ypad") * 2 + h
- x_offset = 0
- y_offset = 0
- if cell_area and w > 0 and h > 0:
- x_offset = self.get_property("xalign") * (cell_area.width - calc_width - self.get_property("xpad"))
- y_offset = self.get_property("yalign") * (cell_area.height - calc_height - self.get_property("ypad"))
-
- return x_offset, y_offset, w, h
-
- return 0, 0, 0, 0
-
-gobject.type_register(HobCellRendererPixbuf)
-
-class HobCellRendererToggle(gtk.CellRendererToggle):
- def __init__(self):
- gtk.CellRendererToggle.__init__(self)
- self.ctrl = HobCellRendererController(is_draw_row=True)
- self.ctrl.running_mode = self.ctrl.MODE_ONE_SHORT
- self.cell_attr = {"fadeout": False, "number_of_children": 0}
-
- def do_render(self, window, widget, background_area, cell_area, expose_area, flags):
- if (not self.ctrl) or (not widget):
- return
-
- if flags & gtk.CELL_RENDERER_SELECTED:
- state = gtk.STATE_SELECTED
- else:
- state = gtk.STATE_NORMAL
-
- if self.ctrl.is_active():
- path = widget.get_path_at_pos(cell_area.x + cell_area.width/2, cell_area.y + cell_area.height/2)
- # sometimes the parameters of cell_area will be a negative number,such as pull up down the scroll bar
- # it's over the tree container range, so the path will be bad
- if not path: return
- path = path[0]
- if path in self.ctrl.running_cell_areas:
- cr = window.cairo_create()
- color = widget.get_style().base[state]
-
- row_x, _, row_width, _ = widget.get_visible_rect()
- border_y = self.get_property("ypad")
- self.ctrl.on_draw_fadeinout_cb(cr, color, row_x, cell_area.y - border_y, row_width, \
- cell_area.height + border_y * 2, self.cell_attr["fadeout"])
- # draw number of a group
- if self.cell_attr["number_of_children"]:
- text = "%d pkg" % self.cell_attr["number_of_children"]
- pangolayout = widget.create_pango_layout(text)
- textw, texth = pangolayout.get_pixel_size()
- x = cell_area.x + (cell_area.width/2) - (textw/2)
- y = cell_area.y + (cell_area.height/2) - (texth/2)
-
- widget.style.paint_layout(window, state, True, cell_area, widget, "checkbox", x, y, pangolayout)
- else:
- return gtk.CellRendererToggle.do_render(self, window, widget, background_area, cell_area, expose_area, flags)
-
- '''delay: normally delay time is 1000ms
- cell_list: whilch cells need to be render
- '''
- def fadeout(self, tree, delay, cell_list=None):
- if (delay < 200) or (not tree):
- return
- self.cell_attr["fadeout"] = True
- self.ctrl.running_cell_areas = cell_list
- self.ctrl.start_run(200, 0, 0, delay, (delay * 200 / 1000), tree)
-
- def connect_render_state_changed(self, func, usrdata=None):
- if not func:
- return
- if usrdata:
- self.ctrl.connect("run-timer-stopped", func, self, usrdata)
- else:
- self.ctrl.connect("run-timer-stopped", func, self)
-
-gobject.type_register(HobCellRendererToggle)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/persistenttooltip.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/persistenttooltip.py
deleted file mode 100644
index 927c19429..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/persistenttooltip.py
+++ /dev/null
@@ -1,186 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2012 Intel Corporation
-#
-# Authored by Joshua Lock <josh@linux.intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gobject
-import gtk
-try:
- import gconf
-except:
- pass
-
-class PersistentTooltip(gtk.Window):
- """
- A tooltip which persists once shown until the user dismisses it with the Esc
- key or by clicking the close button.
-
- # FIXME: the PersistentTooltip should be disabled when the user clicks anywhere off
- # it. We can't do this with focus-out-event becuase modal ensures we have focus?
-
- markup: some Pango text markup to display in the tooltip
- """
- def __init__(self, markup, parent_win=None):
- gtk.Window.__init__(self, gtk.WINDOW_POPUP)
-
- # Inherit the system theme for a tooltip
- style = gtk.rc_get_style_by_paths(gtk.settings_get_default(),
- 'gtk-tooltip', 'gtk-tooltip', gobject.TYPE_NONE)
- self.set_style(style)
-
- # The placement of the close button on the tip should reflect how the
- # window manager of the users system places close buttons. Try to read
- # the metacity gconf key to determine whether the close button is on the
- # left or the right.
- # In the case that we can't determine the users configuration we default
- # to close buttons being on the right.
- __button_right = True
- try:
- client = gconf.client_get_default()
- order = client.get_string("/apps/metacity/general/button_layout")
- if order and order.endswith(":"):
- __button_right = False
- except NameError:
- pass
-
- # We need to ensure we're only shown once
- self.shown = False
-
- # We don't want any WM decorations
- self.set_decorated(False)
- # We don't want to show in the taskbar or window switcher
- self.set_skip_pager_hint(True)
- self.set_skip_taskbar_hint(True)
- # We must be modal to ensure we grab focus when presented from a gtk.Dialog
- self.set_modal(True)
-
- self.set_border_width(0)
- self.set_position(gtk.WIN_POS_MOUSE)
- self.set_opacity(0.95)
-
- # Ensure a reasonable minimum size
- self.set_geometry_hints(self, 100, 50)
-
- # Set this window as a transient window for parent(main window)
- if parent_win:
- self.set_transient_for(parent_win)
- self.set_destroy_with_parent(True)
- # Draw our label and close buttons
- hbox = gtk.HBox(False, 0)
- hbox.show()
- self.add(hbox)
-
- img = gtk.Image()
- img.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_BUTTON)
-
- self.button = gtk.Button()
- self.button.set_image(img)
- self.button.connect("clicked", self._dismiss_cb)
- self.button.set_flags(gtk.CAN_DEFAULT)
- self.button.grab_focus()
- self.button.show()
- vbox = gtk.VBox(False, 0)
- vbox.show()
- vbox.pack_start(self.button, False, False, 0)
- if __button_right:
- hbox.pack_end(vbox, True, True, 0)
- else:
- hbox.pack_start(vbox, True, True, 0)
-
- self.set_default(self.button)
-
- bin = gtk.HBox(True, 6)
- bin.set_border_width(6)
- bin.show()
- self.label = gtk.Label()
- self.label.set_line_wrap(True)
- # We want to match the colours of the normal tooltips, as dictated by
- # the users gtk+-2.0 theme, wherever possible - on some systems this
- # requires explicitly setting a fg_color for the label which matches the
- # tooltip_fg_color
- settings = gtk.settings_get_default()
- colours = settings.get_property('gtk-color-scheme').split('\n')
- # remove any empty lines, there's likely to be a trailing one after
- # calling split on a dictionary-like string
- colours = filter(None, colours)
- for col in colours:
- item, val = col.split(': ')
- if item == 'tooltip_fg_color':
- style = self.label.get_style()
- style.fg[gtk.STATE_NORMAL] = gtk.gdk.color_parse(val)
- self.label.set_style(style)
- break # we only care for the tooltip_fg_color
-
- self.label.set_markup(markup)
- self.label.show()
- bin.add(self.label)
- hbox.pack_end(bin, True, True, 6)
-
- # add the original URL display for user reference
- if 'a href' in markup:
- hbox.set_tooltip_text(self.get_markup_url(markup))
- hbox.show()
-
- self.connect("key-press-event", self._catch_esc_cb)
-
- """
- Callback when the PersistentTooltip's close button is clicked.
- Hides the PersistentTooltip.
- """
- def _dismiss_cb(self, button):
- self.hide()
- return True
-
- """
- Callback when the Esc key is detected. Hides the PersistentTooltip.
- """
- def _catch_esc_cb(self, widget, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
- if keyname == "Escape":
- self.hide()
- return True
-
- """
- Called to present the PersistentTooltip.
- Overrides the superclasses show() method to include state tracking.
- """
- def show(self):
- if not self.shown:
- self.shown = True
- gtk.Window.show(self)
-
- """
- Called to hide the PersistentTooltip.
- Overrides the superclasses hide() method to include state tracking.
- """
- def hide(self):
- self.shown = False
- gtk.Window.hide(self)
-
- """
- Called to get the hyperlink URL from markup text.
- """
- def get_markup_url(self, markup):
- url = "http:"
- if markup and type(markup) == str:
- s = markup
- if 'http:' in s:
- import re
- url = re.search('(http:[^,\\ "]+)', s).group(0)
-
- return url
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progress.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progress.py
deleted file mode 100644
index 1d28a111b..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progress.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import gtk
-
-class ProgressBar(gtk.Dialog):
- def __init__(self, parent):
-
- gtk.Dialog.__init__(self, flags=(gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT))
- self.set_title("Parsing metadata, please wait...")
- self.set_default_size(500, 0)
- self.set_transient_for(parent)
- self.progress = gtk.ProgressBar()
- self.vbox.pack_start(self.progress)
- self.show_all()
-
- def set_text(self, msg):
- self.progress.set_text(msg)
-
- def update(self, x, y):
- self.progress.set_fraction(float(x)/float(y))
- self.progress.set_text("%2d %%" % (x*100/y))
-
- def pulse(self):
- self.progress.set_text("Loading...")
- self.progress.pulse()
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progressbar.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progressbar.py
deleted file mode 100644
index 3e2c660e4..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/progressbar.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2011 Intel Corporation
-#
-# Authored by Shane Wang <shane.wang@intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-from bb.ui.crumbs.hobcolor import HobColors
-
-class HobProgressBar (gtk.ProgressBar):
- def __init__(self):
- gtk.ProgressBar.__init__(self)
- self.set_rcstyle(True)
- self.percentage = 0
-
- def set_rcstyle(self, status):
- rcstyle = gtk.RcStyle()
- rcstyle.fg[2] = gtk.gdk.Color(HobColors.BLACK)
- if status == "stop":
- rcstyle.bg[3] = gtk.gdk.Color(HobColors.WARNING)
- elif status == "fail":
- rcstyle.bg[3] = gtk.gdk.Color(HobColors.ERROR)
- else:
- rcstyle.bg[3] = gtk.gdk.Color(HobColors.RUNNING)
- self.modify_style(rcstyle)
-
- def set_title(self, text=None):
- if not text:
- text = ""
- text += " %.0f%%" % self.percentage
- self.set_text(text)
-
- def set_stop_title(self, text=None):
- if not text:
- text = ""
- self.set_text(text)
-
- def reset(self):
- self.set_fraction(0)
- self.set_text("")
- self.set_rcstyle(True)
- self.percentage = 0
-
- def update(self, fraction):
- self.percentage = int(fraction * 100)
- self.set_fraction(fraction)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/puccho.glade b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/puccho.glade
deleted file mode 100644
index d7553a6e1..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/puccho.glade
+++ /dev/null
@@ -1,606 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Mon Nov 10 12:24:12 2008 -->
-<glade-interface>
- <widget class="GtkDialog" id="build_dialog">
- <property name="title" translatable="yes">Start a build</property>
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkTable" id="build_table">
- <property name="visible">True</property>
- <property name="border_width">6</property>
- <property name="n_rows">7</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">5</property>
- <property name="row_spacing">6</property>
- <child>
- <widget class="GtkAlignment" id="status_alignment">
- <property name="visible">True</property>
- <property name="left_padding">12</property>
- <child>
- <widget class="GtkHBox" id="status_hbox">
- <property name="spacing">6</property>
- <child>
- <widget class="GtkImage" id="status_image">
- <property name="visible">True</property>
- <property name="no_show_all">True</property>
- <property name="xalign">0</property>
- <property name="stock">gtk-dialog-error</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="status_label">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">If you see this text something is wrong...</property>
- <property name="use_markup">True</property>
- <property name="use_underline">True</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Build configuration&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="image_combo">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="image_label">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Image:</property>
- </widget>
- <packing>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="distribution_combo">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="distribution_label">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Distribution:</property>
- </widget>
- <packing>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="machine_combo">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="machine_label">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Machine:</property>
- </widget>
- <packing>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="refresh_button">
- <property name="visible">True</property>
- <property name="sensitive">False</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-refresh</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="location_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="width_chars">32</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Location:</property>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Repository&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="left_attach">2</property>
- <property name="right_attach">3</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkDialog" id="dialog2">
- <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="has_separator">False</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox2">
- <property name="visible">True</property>
- <property name="spacing">2</property>
- <child>
- <widget class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="border_width">6</property>
- <property name="n_rows">7</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">6</property>
- <property name="row_spacing">6</property>
- <child>
- <widget class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Repositories&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment4">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="left_padding">12</property>
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTreeView" id="treeview1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_clickable">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="entry1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">&lt;b&gt;Additional packages&lt;/b&gt;</property>
- <property name="use_markup">True</property>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment6">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="xscale">0</property>
- <child>
- <widget class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Location: </property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment7">
- <property name="visible">True</property>
- <property name="xalign">1</property>
- <property name="xscale">0</property>
- <child>
- <widget class="GtkHButtonBox" id="hbuttonbox1">
- <property name="visible">True</property>
- <property name="spacing">5</property>
- <child>
- <widget class="GtkButton" id="button7">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
- <child>
- <widget class="GtkButton" id="button6">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-edit</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkButton" id="button5">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment5">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label10">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0</property>
- <property name="xpad">12</property>
- <property name="label" translatable="yes">Search:</property>
- </widget>
- <packing>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkEntry" id="entry2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="left_padding">12</property>
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <widget class="GtkTreeView" id="treeview2">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_clickable">True</property>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="right_attach">3</property>
- <property name="top_attach">6</property>
- <property name="bottom_attach">7</property>
- <property name="y_options"></property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area2">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
- <child>
- <widget class="GtkButton" id="button4">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- <property name="label" translatable="yes">gtk-close</property>
- <property name="use_stock">True</property>
- <property name="response_id">0</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <widget class="GtkWindow" id="main_window">
- <child>
- <widget class="GtkVBox" id="main_window_vbox">
- <property name="visible">True</property>
- <child>
- <widget class="GtkToolbar" id="main_toolbar">
- <property name="visible">True</property>
- <child>
- <widget class="GtkToolButton" id="main_toolbutton_build">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Build</property>
- <property name="stock_id">gtk-execute</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="expand">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkVPaned" id="vpaned1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="results_scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="resize">False</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- <child>
- <widget class="GtkScrolledWindow" id="progress_scrolledwindow">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="resize">True</property>
- <property name="shrink">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
-</glade-interface>
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/runningbuild.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/runningbuild.py
deleted file mode 100644
index 16a955d2b..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/runningbuild.py
+++ /dev/null
@@ -1,551 +0,0 @@
-
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2008 Intel Corporation
-#
-# Authored by Rob Bradford <rob@linux.intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gtk
-import gobject
-import logging
-import time
-import urllib
-import urllib2
-import pango
-from bb.ui.crumbs.hobcolor import HobColors
-from bb.ui.crumbs.hobwidget import HobWarpCellRendererText, HobCellRendererPixbuf
-
-class RunningBuildModel (gtk.TreeStore):
- (COL_LOG, COL_PACKAGE, COL_TASK, COL_MESSAGE, COL_ICON, COL_COLOR, COL_NUM_ACTIVE) = range(7)
-
- def __init__ (self):
- gtk.TreeStore.__init__ (self,
- gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_STRING,
- gobject.TYPE_INT)
-
- def failure_model_filter(self, model, it):
- color = model.get(it, self.COL_COLOR)[0]
- if not color:
- return False
- if color == HobColors.ERROR or color == HobColors.WARNING:
- return True
- return False
-
- def failure_model(self):
- model = self.filter_new()
- model.set_visible_func(self.failure_model_filter)
- return model
-
- def foreach_cell_func(self, model, path, iter, usr_data=None):
- if model.get_value(iter, self.COL_ICON) == "gtk-execute":
- model.set(iter, self.COL_ICON, "")
-
- def close_task_refresh(self):
- self.foreach(self.foreach_cell_func, None)
-
-class RunningBuild (gobject.GObject):
- __gsignals__ = {
- 'build-started' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'build-succeeded' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'build-failed' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'build-complete' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'build-aborted' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'task-started' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_PYOBJECT,)),
- 'log-error' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'log-warning' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'disk-full' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- ()),
- 'no-provider' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_PYOBJECT,)),
- 'log' : (gobject.SIGNAL_RUN_LAST,
- gobject.TYPE_NONE,
- (gobject.TYPE_STRING, gobject.TYPE_PYOBJECT,)),
- }
- pids_to_task = {}
- tasks_to_iter = {}
-
- def __init__ (self, sequential=False):
- gobject.GObject.__init__ (self)
- self.model = RunningBuildModel()
- self.sequential = sequential
- self.buildaborted = False
-
- def reset (self):
- self.pids_to_task.clear()
- self.tasks_to_iter.clear()
- self.model.clear()
-
- def handle_event (self, event, pbar=None):
- # Handle an event from the event queue, this may result in updating
- # the model and thus the UI. Or it may be to tell us that the build
- # has finished successfully (or not, as the case may be.)
-
- parent = None
- pid = 0
- package = None
- task = None
-
- # If we have a pid attached to this message/event try and get the
- # (package, task) pair for it. If we get that then get the parent iter
- # for the message.
- if hasattr(event, 'pid'):
- pid = event.pid
- if hasattr(event, 'process'):
- pid = event.process
-
- if pid and pid in self.pids_to_task:
- (package, task) = self.pids_to_task[pid]
- parent = self.tasks_to_iter[(package, task)]
-
- if(isinstance(event, logging.LogRecord)):
- if event.taskpid == 0 or event.levelno > logging.INFO:
- self.emit("log", "handle", event)
- # FIXME: this is a hack! More info in Yocto #1433
- # http://bugzilla.pokylinux.org/show_bug.cgi?id=1433, temporarily
- # mask the error message as it's not informative for the user.
- if event.msg.startswith("Execution of event handler 'run_buildstats' failed"):
- return
-
- if (event.levelno < logging.INFO or
- event.msg.startswith("Running task")):
- return # don't add these to the list
-
- if event.levelno >= logging.ERROR:
- icon = "dialog-error"
- color = HobColors.ERROR
- self.emit("log-error")
- elif event.levelno >= logging.WARNING:
- icon = "dialog-warning"
- color = HobColors.WARNING
- self.emit("log-warning")
- else:
- icon = None
- color = HobColors.OK
-
- # if we know which package we belong to, we'll append onto its list.
- # otherwise, we'll jump to the top of the master list
- if self.sequential or not parent:
- tree_add = self.model.append
- else:
- tree_add = self.model.prepend
- tree_add(parent,
- (None,
- package,
- task,
- event.getMessage(),
- icon,
- color,
- 0))
-
- # if there are warnings while processing a package
- # (parent), mark the task with warning color;
- # in case there are errors, the updates will be
- # handled on TaskFailed.
- if color == HobColors.WARNING and parent:
- self.model.set(parent, self.model.COL_COLOR, color)
- if task: #then we have a parent (package), and update it's color
- self.model.set(self.tasks_to_iter[(package, None)], self.model.COL_COLOR, color)
-
- elif isinstance(event, bb.build.TaskStarted):
- (package, task) = (event._package, event._task)
-
- # Save out this PID.
- self.pids_to_task[pid] = (package, task)
-
- # Check if we already have this package in our model. If so then
- # that can be the parent for the task. Otherwise we create a new
- # top level for the package.
- if ((package, None) in self.tasks_to_iter):
- parent = self.tasks_to_iter[(package, None)]
- else:
- if self.sequential:
- add = self.model.append
- else:
- add = self.model.prepend
- parent = add(None, (None,
- package,
- None,
- "Package: %s" % (package),
- None,
- HobColors.OK,
- 0))
- self.tasks_to_iter[(package, None)] = parent
-
- # Because this parent package now has an active child mark it as
- # such.
- self.model.set(parent, self.model.COL_ICON, "gtk-execute")
- parent_color = self.model.get(parent, self.model.COL_COLOR)[0]
- if parent_color != HobColors.ERROR and parent_color != HobColors.WARNING:
- self.model.set(parent, self.model.COL_COLOR, HobColors.RUNNING)
-
- # Add an entry in the model for this task
- i = self.model.append (parent, (None,
- package,
- task,
- "Task: %s" % (task),
- "gtk-execute",
- HobColors.RUNNING,
- 0))
-
- # update the parent's active task count
- num_active = self.model.get(parent, self.model.COL_NUM_ACTIVE)[0] + 1
- self.model.set(parent, self.model.COL_NUM_ACTIVE, num_active)
-
- # Save out the iter so that we can find it when we have a message
- # that we need to attach to a task.
- self.tasks_to_iter[(package, task)] = i
-
- elif isinstance(event, bb.build.TaskBase):
- self.emit("log", "info", event._message)
- current = self.tasks_to_iter[(package, task)]
- parent = self.tasks_to_iter[(package, None)]
-
- # remove this task from the parent's active count
- num_active = self.model.get(parent, self.model.COL_NUM_ACTIVE)[0] - 1
- self.model.set(parent, self.model.COL_NUM_ACTIVE, num_active)
-
- if isinstance(event, bb.build.TaskFailed):
- # Mark the task and parent as failed
- icon = "dialog-error"
- color = HobColors.ERROR
-
- logfile = event.logfile
- if logfile and os.path.exists(logfile):
- with open(logfile) as f:
- logdata = f.read()
- self.model.append(current, ('pastebin', None, None, logdata, 'gtk-error', HobColors.OK, 0))
-
- for i in (current, parent):
- self.model.set(i, self.model.COL_ICON, icon,
- self.model.COL_COLOR, color)
- else:
- # Mark the parent package and the task as inactive,
- # but make sure to preserve error, warnings and active
- # states
- parent_color = self.model.get(parent, self.model.COL_COLOR)[0]
- task_color = self.model.get(current, self.model.COL_COLOR)[0]
-
- # Mark the task as inactive
- self.model.set(current, self.model.COL_ICON, None)
- if task_color != HobColors.ERROR:
- if task_color == HobColors.WARNING:
- self.model.set(current, self.model.COL_ICON, 'dialog-warning')
- else:
- self.model.set(current, self.model.COL_COLOR, HobColors.OK)
-
- # Mark the parent as inactive
- if parent_color != HobColors.ERROR:
- if parent_color == HobColors.WARNING:
- self.model.set(parent, self.model.COL_ICON, "dialog-warning")
- else:
- self.model.set(parent, self.model.COL_ICON, None)
- if num_active == 0:
- self.model.set(parent, self.model.COL_COLOR, HobColors.OK)
-
- # Clear the iters and the pids since when the task goes away the
- # pid will no longer be used for messages
- del self.tasks_to_iter[(package, task)]
- del self.pids_to_task[pid]
-
- elif isinstance(event, bb.event.BuildStarted):
-
- self.emit("build-started")
- self.model.prepend(None, (None,
- None,
- None,
- "Build Started (%s)" % time.strftime('%m/%d/%Y %H:%M:%S'),
- None,
- HobColors.OK,
- 0))
- if pbar:
- pbar.update(0, self.progress_total)
- pbar.set_title(bb.event.getName(event))
-
- elif isinstance(event, bb.event.BuildCompleted):
- failures = int (event._failures)
- self.model.prepend(None, (None,
- None,
- None,
- "Build Completed (%s)" % time.strftime('%m/%d/%Y %H:%M:%S'),
- None,
- HobColors.OK,
- 0))
-
- # Emit the appropriate signal depending on the number of failures
- if self.buildaborted:
- self.emit ("build-aborted")
- self.buildaborted = False
- elif (failures >= 1):
- self.emit ("build-failed")
- else:
- self.emit ("build-succeeded")
- # Emit a generic "build-complete" signal for things wishing to
- # handle when the build is finished
- self.emit("build-complete")
- # reset the all cell's icon indicator
- self.model.close_task_refresh()
- if pbar:
- pbar.set_text(event.msg)
-
- elif isinstance(event, bb.event.DiskFull):
- self.buildaborted = True
- self.emit("disk-full")
-
- elif isinstance(event, bb.command.CommandFailed):
- self.emit("log", "error", "Command execution failed: %s" % (event.error))
- if event.error.startswith("Exited with"):
- # If the command fails with an exit code we're done, emit the
- # generic signal for the UI to notify the user
- self.emit("build-complete")
- # reset the all cell's icon indicator
- self.model.close_task_refresh()
-
- elif isinstance(event, bb.event.CacheLoadStarted) and pbar:
- pbar.set_title("Loading cache")
- self.progress_total = event.total
- pbar.update(0, self.progress_total)
- elif isinstance(event, bb.event.CacheLoadProgress) and pbar:
- pbar.update(event.current, self.progress_total)
- elif isinstance(event, bb.event.CacheLoadCompleted) and pbar:
- pbar.update(self.progress_total, self.progress_total)
- pbar.hide()
- elif isinstance(event, bb.event.ParseStarted) and pbar:
- if event.total == 0:
- return
- pbar.set_title("Processing recipes")
- self.progress_total = event.total
- pbar.update(0, self.progress_total)
- elif isinstance(event, bb.event.ParseProgress) and pbar:
- pbar.update(event.current, self.progress_total)
- elif isinstance(event, bb.event.ParseCompleted) and pbar:
- pbar.hide()
- #using runqueue events as many as possible to update the progress bar
- elif isinstance(event, bb.runqueue.runQueueTaskFailed):
- self.emit("log", "error", "Task %s (%s) failed with exit code '%s'" % (event.taskid, event.taskstring, event.exitcode))
- elif isinstance(event, bb.runqueue.sceneQueueTaskFailed):
- self.emit("log", "warn", "Setscene task %s (%s) failed with exit code '%s' - real task will be run instead" \
- % (event.taskid, event.taskstring, event.exitcode))
- elif isinstance(event, (bb.runqueue.runQueueTaskStarted, bb.runqueue.sceneQueueTaskStarted)):
- if isinstance(event, bb.runqueue.sceneQueueTaskStarted):
- self.emit("log", "info", "Running setscene task %d of %d (%s)" % \
- (event.stats.completed + event.stats.active + event.stats.failed + 1,
- event.stats.total, event.taskstring))
- else:
- if event.noexec:
- tasktype = 'noexec task'
- else:
- tasktype = 'task'
- self.emit("log", "info", "Running %s %s of %s (ID: %s, %s)" % \
- (tasktype, event.stats.completed + event.stats.active + event.stats.failed + 1,
- event.stats.total, event.taskid, event.taskstring))
- message = {}
- message["eventname"] = bb.event.getName(event)
- num_of_completed = event.stats.completed + event.stats.failed
- message["current"] = num_of_completed
- message["total"] = event.stats.total
- message["title"] = ""
- message["task"] = event.taskstring
- self.emit("task-started", message)
- elif isinstance(event, bb.event.MultipleProviders):
- self.emit("log", "info", "multiple providers are available for %s%s (%s)" \
- % (event._is_runtime and "runtime " or "", event._item, ", ".join(event._candidates)))
- self.emit("log", "info", "consider defining a PREFERRED_PROVIDER entry to match %s" % (event._item))
- elif isinstance(event, bb.event.NoProvider):
- msg = ""
- if event._runtime:
- r = "R"
- else:
- r = ""
-
- extra = ''
- if not event._reasons:
- if event._close_matches:
- extra = ". Close matches:\n %s" % '\n '.join(event._close_matches)
-
- if event._dependees:
- msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s\n" % (r, event._item, ", ".join(event._dependees), r, extra)
- else:
- msg = "Nothing %sPROVIDES '%s'%s\n" % (r, event._item, extra)
- if event._reasons:
- for reason in event._reasons:
- msg += ("%s\n" % reason)
- self.emit("no-provider", msg)
- self.emit("log", "error", msg)
- elif isinstance(event, bb.event.LogExecTTY):
- icon = "dialog-warning"
- color = HobColors.WARNING
- if self.sequential or not parent:
- tree_add = self.model.append
- else:
- tree_add = self.model.prepend
- tree_add(parent,
- (None,
- package,
- task,
- event.msg,
- icon,
- color,
- 0))
- else:
- if not isinstance(event, (bb.event.BuildBase,
- bb.event.StampUpdate,
- bb.event.ConfigParsed,
- bb.event.RecipeParsed,
- bb.event.RecipePreFinalise,
- bb.runqueue.runQueueEvent,
- bb.runqueue.runQueueExitWait,
- bb.event.OperationStarted,
- bb.event.OperationCompleted,
- bb.event.OperationProgress)):
- self.emit("log", "error", "Unknown event: %s" % (event.error if hasattr(event, 'error') else 'error'))
-
- return
-
-
-def do_pastebin(text):
- url = 'http://pastebin.com/api_public.php'
- params = {'paste_code': text, 'paste_format': 'text'}
-
- req = urllib2.Request(url, urllib.urlencode(params))
- response = urllib2.urlopen(req)
- paste_url = response.read()
-
- return paste_url
-
-
-class RunningBuildTreeView (gtk.TreeView):
- __gsignals__ = {
- "button_press_event" : "override"
- }
- def __init__ (self, readonly=False, hob=False):
- gtk.TreeView.__init__ (self)
- self.readonly = readonly
-
- # The icon that indicates whether we're building or failed.
- # add 'hob' flag because there has not only hob to share this code
- if hob:
- renderer = HobCellRendererPixbuf ()
- else:
- renderer = gtk.CellRendererPixbuf()
- col = gtk.TreeViewColumn ("Status", renderer)
- col.add_attribute (renderer, "icon-name", 4)
- self.append_column (col)
-
- # The message of the build.
- # add 'hob' flag because there has not only hob to share this code
- if hob:
- self.message_renderer = HobWarpCellRendererText (col_number=1)
- else:
- self.message_renderer = gtk.CellRendererText ()
- self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=3)
- self.message_column.add_attribute(self.message_renderer, 'background', 5)
- self.message_renderer.set_property('editable', (not self.readonly))
- self.append_column (self.message_column)
-
- def do_button_press_event(self, event):
- gtk.TreeView.do_button_press_event(self, event)
-
- if event.button == 3:
- selection = super(RunningBuildTreeView, self).get_selection()
- (model, it) = selection.get_selected()
- if it is not None:
- can_paste = model.get(it, model.COL_LOG)[0]
- if can_paste == 'pastebin':
- # build a simple menu with a pastebin option
- menu = gtk.Menu()
- menuitem = gtk.MenuItem("Copy")
- menu.append(menuitem)
- menuitem.connect("activate", self.clipboard_handler, (model, it))
- menuitem.show()
- menuitem = gtk.MenuItem("Send log to pastebin")
- menu.append(menuitem)
- menuitem.connect("activate", self.pastebin_handler, (model, it))
- menuitem.show()
- menu.show()
- menu.popup(None, None, None, event.button, event.time)
-
- def _add_to_clipboard(self, clipping):
- """
- Add the contents of clipping to the system clipboard.
- """
- clipboard = gtk.clipboard_get()
- clipboard.set_text(clipping)
- clipboard.store()
-
- def pastebin_handler(self, widget, data):
- """
- Send the log data to pastebin, then add the new paste url to the
- clipboard.
- """
- (model, it) = data
- paste_url = do_pastebin(model.get(it, model.COL_MESSAGE)[0])
-
- # @todo Provide visual feedback to the user that it is done and that
- # it worked.
- print paste_url
-
- self._add_to_clipboard(paste_url)
-
- def clipboard_handler(self, widget, data):
- """
- """
- (model, it) = data
- message = model.get(it, model.COL_MESSAGE)[0]
-
- self._add_to_clipboard(message)
-
-class BuildFailureTreeView(gtk.TreeView):
-
- def __init__ (self):
- gtk.TreeView.__init__(self)
- self.set_rules_hint(False)
- self.set_headers_visible(False)
- self.get_selection().set_mode(gtk.SELECTION_SINGLE)
-
- # The icon that indicates whether we're building or failed.
- renderer = HobCellRendererPixbuf ()
- col = gtk.TreeViewColumn ("Status", renderer)
- col.add_attribute (renderer, "icon-name", RunningBuildModel.COL_ICON)
- self.append_column (col)
-
- # The message of the build.
- self.message_renderer = HobWarpCellRendererText (col_number=1)
- self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=RunningBuildModel.COL_MESSAGE, background=RunningBuildModel.COL_COLOR)
- self.append_column (self.message_column)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/utils.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/utils.py
deleted file mode 100644
index 939864fa6..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/utils.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# BitBake UI Utils
-#
-# Copyright (C) 2012 Intel Corporation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-# This utility method looks for xterm or vte and return the
-# frist to exist, currently we are keeping this simple, but
-# we will likely move the oe.terminal implementation into
-# bitbake which will allow more flexibility.
-
-import os
-import bb
-
-def which_terminal():
- term = bb.utils.which(os.environ["PATH"], "xterm")
- if term:
- return term + " -e "
- term = bb.utils.which(os.environ["PATH"], "vte")
- if term:
- return term + " -c "
- return None
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/depexp.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/depexp.py
index 240aafc3e..d879e04c0 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/depexp.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/depexp.py
@@ -18,14 +18,15 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import sys
-import gobject
-import gtk
-import Queue
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk, Gdk, GObject
+from multiprocessing import Queue
import threading
-import xmlrpclib
+from xmlrpc import client
+import time
import bb
import bb.event
-from bb.ui.crumbs.progressbar import HobProgressBar
# Package Model
(COL_PKG_NAME) = (0)
@@ -35,19 +36,19 @@ from bb.ui.crumbs.progressbar import HobProgressBar
(COL_DEP_TYPE, COL_DEP_PARENT, COL_DEP_PACKAGE) = (0, 1, 2)
-class PackageDepView(gtk.TreeView):
+class PackageDepView(Gtk.TreeView):
def __init__(self, model, dep_type, label):
- gtk.TreeView.__init__(self)
+ Gtk.TreeView.__init__(self)
self.current = None
self.dep_type = dep_type
self.filter_model = model.filter_new()
- self.filter_model.set_visible_func(self._filter)
+ self.filter_model.set_visible_func(self._filter, data=None)
self.set_model(self.filter_model)
- #self.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE)
- self.append_column(gtk.TreeViewColumn(label, gtk.CellRendererText(), text=COL_DEP_PACKAGE))
+ self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PACKAGE))
- def _filter(self, model, iter):
- (this_type, package) = model.get(iter, COL_DEP_TYPE, COL_DEP_PARENT)
+ def _filter(self, model, iter, data):
+ this_type = model[iter][COL_DEP_TYPE]
+ package = model[iter][COL_DEP_PARENT]
if this_type != self.dep_type: return False
return package == self.current
@@ -56,17 +57,17 @@ class PackageDepView(gtk.TreeView):
self.filter_model.refilter()
-class PackageReverseDepView(gtk.TreeView):
+class PackageReverseDepView(Gtk.TreeView):
def __init__(self, model, label):
- gtk.TreeView.__init__(self)
+ Gtk.TreeView.__init__(self)
self.current = None
self.filter_model = model.filter_new()
self.filter_model.set_visible_func(self._filter)
self.set_model(self.filter_model)
- self.append_column(gtk.TreeViewColumn(label, gtk.CellRendererText(), text=COL_DEP_PARENT))
+ self.append_column(Gtk.TreeViewColumn(label, Gtk.CellRendererText(), text=COL_DEP_PARENT))
- def _filter(self, model, iter):
- package = model.get_value(iter, COL_DEP_PACKAGE)
+ def _filter(self, model, iter, data):
+ package = model[iter][COL_DEP_PACKAGE]
return package == self.current
def set_current_package(self, package):
@@ -74,50 +75,50 @@ class PackageReverseDepView(gtk.TreeView):
self.filter_model.refilter()
-class DepExplorer(gtk.Window):
+class DepExplorer(Gtk.Window):
def __init__(self):
- gtk.Window.__init__(self)
+ Gtk.Window.__init__(self)
self.set_title("Dependency Explorer")
self.set_default_size(500, 500)
- self.connect("delete-event", gtk.main_quit)
+ self.connect("delete-event", Gtk.main_quit)
# Create the data models
- self.pkg_model = gtk.ListStore(gobject.TYPE_STRING)
- self.pkg_model.set_sort_column_id(COL_PKG_NAME, gtk.SORT_ASCENDING)
- self.depends_model = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING, gobject.TYPE_STRING)
- self.depends_model.set_sort_column_id(COL_DEP_PACKAGE, gtk.SORT_ASCENDING)
+ self.pkg_model = Gtk.ListStore(GObject.TYPE_STRING)
+ self.pkg_model.set_sort_column_id(COL_PKG_NAME, Gtk.SortType.ASCENDING)
+ self.depends_model = Gtk.ListStore(GObject.TYPE_INT, GObject.TYPE_STRING, GObject.TYPE_STRING)
+ self.depends_model.set_sort_column_id(COL_DEP_PACKAGE, Gtk.SortType.ASCENDING)
- pane = gtk.HPaned()
+ pane = Gtk.HPaned()
pane.set_position(250)
self.add(pane)
# The master list of packages
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scrolled.set_shadow_type(gtk.SHADOW_IN)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ scrolled.set_shadow_type(Gtk.ShadowType.IN)
- self.pkg_treeview = gtk.TreeView(self.pkg_model)
+ self.pkg_treeview = Gtk.TreeView(self.pkg_model)
self.pkg_treeview.get_selection().connect("changed", self.on_cursor_changed)
- column = gtk.TreeViewColumn("Package", gtk.CellRendererText(), text=COL_PKG_NAME)
+ column = Gtk.TreeViewColumn("Package", Gtk.CellRendererText(), text=COL_PKG_NAME)
self.pkg_treeview.append_column(column)
pane.add1(scrolled)
scrolled.add(self.pkg_treeview)
- box = gtk.VBox(homogeneous=True, spacing=4)
+ box = Gtk.VBox(homogeneous=True, spacing=4)
# Runtime Depends
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scrolled.set_shadow_type(gtk.SHADOW_IN)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ scrolled.set_shadow_type(Gtk.ShadowType.IN)
self.rdep_treeview = PackageDepView(self.depends_model, TYPE_RDEP, "Runtime Depends")
self.rdep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE)
scrolled.add(self.rdep_treeview)
box.add(scrolled)
# Build Depends
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scrolled.set_shadow_type(gtk.SHADOW_IN)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ scrolled.set_shadow_type(Gtk.ShadowType.IN)
self.dep_treeview = PackageDepView(self.depends_model, TYPE_DEP, "Build Depends")
self.dep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PACKAGE)
scrolled.add(self.dep_treeview)
@@ -125,9 +126,9 @@ class DepExplorer(gtk.Window):
pane.add2(box)
# Reverse Depends
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scrolled.set_shadow_type(gtk.SHADOW_IN)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ scrolled.set_shadow_type(Gtk.ShadowType.IN)
self.revdep_treeview = PackageReverseDepView(self.depends_model, "Reverse Depends")
self.revdep_treeview.connect("row-activated", self.on_package_activated, COL_DEP_PARENT)
scrolled.add(self.revdep_treeview)
@@ -183,15 +184,23 @@ class gtkthread(threading.Thread):
threading.Thread.__init__(self)
self.setDaemon(True)
self.shutdown = shutdown
+ if not Gtk.init_check()[0]:
+ sys.stderr.write("Gtk+ init failed. Make sure DISPLAY variable is set.\n")
+ gtkthread.quit.set()
def run(self):
- gobject.threads_init()
- gtk.gdk.threads_init()
- gtk.main()
+ GObject.threads_init()
+ Gdk.threads_init()
+ Gtk.main()
gtkthread.quit.set()
def main(server, eventHandler, params):
+ shutdown = 0
+
+ gtkgui = gtkthread(shutdown)
+ gtkgui.start()
+
try:
params.updateFromServer(server)
cmdline = params.parseActions()
@@ -212,31 +221,24 @@ def main(server, eventHandler, params):
elif ret != True:
print("Error running command '%s': returned %s" % (cmdline, ret))
return 1
- except xmlrpclib.Fault as x:
+ except client.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return
- try:
- gtk.init_check()
- except RuntimeError:
- sys.stderr.write("Please set DISPLAY variable before running this command \n")
+ if gtkthread.quit.isSet():
return
- shutdown = 0
-
- gtkgui = gtkthread(shutdown)
- gtkgui.start()
-
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
dep = DepExplorer()
- bardialog = gtk.Dialog(parent=dep,
- flags=gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT)
+ bardialog = Gtk.Dialog(parent=dep,
+ flags=Gtk.DialogFlags.MODAL|Gtk.DialogFlags.DESTROY_WITH_PARENT)
bardialog.set_default_size(400, 50)
- pbar = HobProgressBar()
- bardialog.vbox.pack_start(pbar)
+ box = bardialog.get_content_area()
+ pbar = Gtk.ProgressBar()
+ box.pack_start(pbar, True, True, 0)
bardialog.show_all()
- bardialog.connect("delete-event", gtk.main_quit)
- gtk.gdk.threads_leave()
+ bardialog.connect("delete-event", Gtk.main_quit)
+ Gdk.threads_leave()
progress_total = 0
while True:
@@ -253,53 +255,76 @@ def main(server, eventHandler, params):
if isinstance(event, bb.event.CacheLoadStarted):
progress_total = event.total
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
bardialog.set_title("Loading Cache")
- pbar.update(0)
- gtk.gdk.threads_leave()
+ pbar.set_fraction(0.0)
+ Gdk.threads_leave()
if isinstance(event, bb.event.CacheLoadProgress):
x = event.current
- gtk.gdk.threads_enter()
- pbar.update(x * 1.0 / progress_total)
- pbar.set_title('')
- gtk.gdk.threads_leave()
+ Gdk.threads_enter()
+ pbar.set_fraction(x * 1.0 / progress_total)
+ Gdk.threads_leave()
continue
if isinstance(event, bb.event.CacheLoadCompleted):
- bardialog.hide()
continue
if isinstance(event, bb.event.ParseStarted):
progress_total = event.total
if progress_total == 0:
continue
- gtk.gdk.threads_enter()
- pbar.update(0)
+ Gdk.threads_enter()
+ pbar.set_fraction(0.0)
bardialog.set_title("Processing recipes")
-
- gtk.gdk.threads_leave()
+ Gdk.threads_leave()
if isinstance(event, bb.event.ParseProgress):
x = event.current
- gtk.gdk.threads_enter()
- pbar.update(x * 1.0 / progress_total)
- pbar.set_title('')
- gtk.gdk.threads_leave()
+ Gdk.threads_enter()
+ pbar.set_fraction(x * 1.0 / progress_total)
+ Gdk.threads_leave()
continue
if isinstance(event, bb.event.ParseCompleted):
- bardialog.hide()
+ Gdk.threads_enter()
+ bardialog.set_title("Generating dependency tree")
+ Gdk.threads_leave()
continue
if isinstance(event, bb.event.DepTreeGenerated):
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
+ bardialog.hide()
dep.parse(event._depgraph)
- gtk.gdk.threads_leave()
+ Gdk.threads_leave()
if isinstance(event, bb.command.CommandCompleted):
continue
+ if isinstance(event, bb.event.NoProvider):
+ if event._runtime:
+ r = "R"
+ else:
+ r = ""
+
+ extra = ''
+ if not event._reasons:
+ if event._close_matches:
+ extra = ". Close matches:\n %s" % '\n '.join(event._close_matches)
+
+ if event._dependees:
+ print("Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)%s" % r, event._item, ", ".join(event._dependees), r, extra)
+ else:
+ print("Nothing %sPROVIDES '%s'%s" % (r, event._item, extra))
+ if event._reasons:
+ for reason in event._reasons:
+ print(reason)
+
+ _, error = server.runCommand(["stateShutdown"])
+ if error:
+ print('Unable to cleanly shutdown: %s' % error)
+ break
+
if isinstance(event, bb.command.CommandFailed):
print("Command execution failed: %s" % event.error)
return event.exitcode
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/goggle.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/goggle.py
deleted file mode 100644
index f4ee7b41a..000000000
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/goggle.py
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# BitBake Graphical GTK User Interface
-#
-# Copyright (C) 2008 Intel Corporation
-#
-# Authored by Rob Bradford <rob@linux.intel.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-import gobject
-import gtk
-import xmlrpclib
-from bb.ui.crumbs.runningbuild import RunningBuildTreeView, RunningBuild
-from bb.ui.crumbs.progress import ProgressBar
-
-import Queue
-
-
-def event_handle_idle_func (eventHandler, build, pbar):
-
- # Consume as many messages as we can in the time available to us
- event = eventHandler.getEvent()
- while event:
- build.handle_event (event, pbar)
- event = eventHandler.getEvent()
-
- return True
-
-def scroll_tv_cb (model, path, iter, view):
- view.scroll_to_cell (path)
-
-
-# @todo hook these into the GUI so the user has feedback...
-def running_build_failed_cb (running_build):
- pass
-
-
-def running_build_succeeded_cb (running_build):
- pass
-
-
-class MainWindow (gtk.Window):
- def __init__ (self):
- gtk.Window.__init__ (self, gtk.WINDOW_TOPLEVEL)
-
- # Setup tree view and the scrolled window
- scrolled_window = gtk.ScrolledWindow ()
- self.add (scrolled_window)
- self.cur_build_tv = RunningBuildTreeView()
- self.connect("delete-event", gtk.main_quit)
- self.set_default_size(640, 480)
- scrolled_window.add (self.cur_build_tv)
-
-
-def main (server, eventHandler, params):
- gobject.threads_init()
- gtk.gdk.threads_init()
-
- window = MainWindow ()
- window.show_all ()
- pbar = ProgressBar(window)
- pbar.connect("delete-event", gtk.main_quit)
-
- # Create the object for the current build
- running_build = RunningBuild ()
- window.cur_build_tv.set_model (running_build.model)
- running_build.model.connect("row-inserted", scroll_tv_cb, window.cur_build_tv)
- running_build.connect ("build-succeeded", running_build_succeeded_cb)
- running_build.connect ("build-failed", running_build_failed_cb)
-
- try:
- params.updateFromServer(server)
- cmdline = params.parseActions()
- if not cmdline:
- print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
- return 1
- if 'msg' in cmdline and cmdline['msg']:
- logger.error(cmdline['msg'])
- return 1
- cmdline = cmdline['action']
- ret, error = server.runCommand(cmdline)
- if error:
- print("Error running command '%s': %s" % (cmdline, error))
- return 1
- elif ret != True:
- print("Error running command '%s': returned %s" % (cmdline, ret))
- return 1
- except xmlrpclib.Fault as x:
- print("XMLRPC Fault getting commandline:\n %s" % x)
- return 1
-
- # Use a timeout function for probing the event queue to find out if we
- # have a message waiting for us.
- gobject.timeout_add (100,
- event_handle_idle_func,
- eventHandler,
- running_build,
- pbar)
-
- try:
- gtk.main()
- except EnvironmentError as ioerror:
- # ignore interrupted io
- if ioerror.args[0] == 4:
- pass
- except KeyboardInterrupt:
- pass
- finally:
- server.runCommand(["stateForceShutdown"])
-
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/knotty.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/knotty.py
index 268562770..948f52769 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/knotty.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/knotty.py
@@ -22,7 +22,7 @@ from __future__ import division
import os
import sys
-import xmlrpclib
+import xmlrpc.client as xmlrpclib
import logging
import progressbar
import signal
@@ -32,6 +32,7 @@ import fcntl
import struct
import copy
import atexit
+
from bb.ui import uihelper
featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
@@ -40,34 +41,59 @@ logger = logging.getLogger("BitBake")
interactive = sys.stdout.isatty()
class BBProgress(progressbar.ProgressBar):
- def __init__(self, msg, maxval):
+ def __init__(self, msg, maxval, widgets=None, extrapos=-1, resize_handler=None):
self.msg = msg
- widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ',
- progressbar.ETA()]
-
- try:
+ self.extrapos = extrapos
+ if not widgets:
+ widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ',
+ progressbar.ETA()]
+ self.extrapos = 4
+
+ if resize_handler:
+ self._resize_default = resize_handler
+ else:
self._resize_default = signal.getsignal(signal.SIGWINCH)
- except:
- self._resize_default = None
progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets, fd=sys.stdout)
- def _handle_resize(self, signum, frame):
+ def _handle_resize(self, signum=None, frame=None):
progressbar.ProgressBar._handle_resize(self, signum, frame)
if self._resize_default:
self._resize_default(signum, frame)
+
def finish(self):
progressbar.ProgressBar.finish(self)
if self._resize_default:
signal.signal(signal.SIGWINCH, self._resize_default)
+ def setmessage(self, msg):
+ self.msg = msg
+ self.widgets[0] = msg
+
+ def setextra(self, extra):
+ if self.extrapos > -1:
+ if extra:
+ extrastr = str(extra)
+ if extrastr[0] != ' ':
+ extrastr = ' ' + extrastr
+ if extrastr[-1] != ' ':
+ extrastr += ' '
+ else:
+ extrastr = ' '
+ self.widgets[self.extrapos] = extrastr
+
+ def _need_update(self):
+ # We always want the bar to print when update() is called
+ return True
+
class NonInteractiveProgress(object):
fobj = sys.stdout
def __init__(self, msg, maxval):
self.msg = msg
self.maxval = maxval
+ self.finished = False
- def start(self):
+ def start(self, update=True):
self.fobj.write("%s..." % self.msg)
self.fobj.flush()
return self
@@ -76,8 +102,11 @@ class NonInteractiveProgress(object):
pass
def finish(self):
+ if self.finished:
+ return
self.fobj.write("done.\n")
self.fobj.flush()
+ self.finished = True
def new_progress(msg, maxval):
if interactive:
@@ -134,7 +163,7 @@ class TerminalFilter(object):
cr = (25, 80)
return cr
- def __init__(self, main, helper, console, errconsole, format):
+ def __init__(self, main, helper, console, errconsole, format, quiet):
self.main = main
self.helper = helper
self.cuu = None
@@ -142,6 +171,8 @@ class TerminalFilter(object):
self.interactive = sys.stdout.isatty()
self.footer_present = False
self.lastpids = []
+ self.lasttime = None
+ self.quiet = quiet
if not self.interactive:
return
@@ -181,11 +212,14 @@ class TerminalFilter(object):
console.addFilter(InteractConsoleLogFilter(self, format))
errconsole.addFilter(InteractConsoleLogFilter(self, format))
+ self.main_progress = None
+
def clearFooter(self):
if self.footer_present:
lines = self.footer_present
- sys.stdout.write(self.curses.tparm(self.cuu, lines))
- sys.stdout.write(self.curses.tparm(self.ed))
+ sys.stdout.buffer.write(self.curses.tparm(self.cuu, lines))
+ sys.stdout.buffer.write(self.curses.tparm(self.ed))
+ sys.stdout.flush()
self.footer_present = False
def updateFooter(self):
@@ -194,28 +228,81 @@ class TerminalFilter(object):
activetasks = self.helper.running_tasks
failedtasks = self.helper.failed_tasks
runningpids = self.helper.running_pids
- if self.footer_present and (self.lastcount == self.helper.tasknumber_current) and (self.lastpids == runningpids):
+ currenttime = time.time()
+ if not self.lasttime or (currenttime - self.lasttime > 5):
+ self.helper.needUpdate = True
+ self.lasttime = currenttime
+ if self.footer_present and not self.helper.needUpdate:
return
+ self.helper.needUpdate = False
if self.footer_present:
self.clearFooter()
if (not self.helper.tasknumber_total or self.helper.tasknumber_current == self.helper.tasknumber_total) and not len(activetasks):
return
tasks = []
for t in runningpids:
- tasks.append("%s (pid %s)" % (activetasks[t]["title"], t))
+ progress = activetasks[t].get("progress", None)
+ if progress is not None:
+ pbar = activetasks[t].get("progressbar", None)
+ rate = activetasks[t].get("rate", None)
+ start_time = activetasks[t].get("starttime", None)
+ if not pbar or pbar.bouncing != (progress < 0):
+ if progress < 0:
+ pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2, resize_handler=self.sigwinch_handle)
+ pbar.bouncing = True
+ else:
+ pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=4, resize_handler=self.sigwinch_handle)
+ pbar.bouncing = False
+ activetasks[t]["progressbar"] = pbar
+ tasks.append((pbar, progress, rate, start_time))
+ else:
+ start_time = activetasks[t].get("starttime", None)
+ if start_time:
+ tasks.append("%s - %ds (pid %s)" % (activetasks[t]["title"], currenttime - start_time, t))
+ else:
+ tasks.append("%s (pid %s)" % (activetasks[t]["title"], t))
if self.main.shutdown:
content = "Waiting for %s running tasks to finish:" % len(activetasks)
- elif not len(activetasks):
- content = "No currently running tasks (%s of %s)" % (self.helper.tasknumber_current, self.helper.tasknumber_total)
+ print(content)
else:
- content = "Currently %s running tasks (%s of %s):" % (len(activetasks), self.helper.tasknumber_current, self.helper.tasknumber_total)
- print(content)
+ if self.quiet:
+ content = "Running tasks (%s of %s)" % (self.helper.tasknumber_current, self.helper.tasknumber_total)
+ elif not len(activetasks):
+ content = "No currently running tasks (%s of %s)" % (self.helper.tasknumber_current, self.helper.tasknumber_total)
+ else:
+ content = "Currently %2s running tasks (%s of %s)" % (len(activetasks), self.helper.tasknumber_current, self.helper.tasknumber_total)
+ maxtask = self.helper.tasknumber_total
+ if not self.main_progress or self.main_progress.maxval != maxtask:
+ widgets = [' ', progressbar.Percentage(), ' ', progressbar.Bar()]
+ self.main_progress = BBProgress("Running tasks", maxtask, widgets=widgets, resize_handler=self.sigwinch_handle)
+ self.main_progress.start(False)
+ self.main_progress.setmessage(content)
+ progress = self.helper.tasknumber_current - 1
+ if progress < 0:
+ progress = 0
+ content = self.main_progress.update(progress)
+ print('')
lines = 1 + int(len(content) / (self.columns + 1))
- for tasknum, task in enumerate(tasks[:(self.rows - 2)]):
- content = "%s: %s" % (tasknum, task)
- print(content)
- lines = lines + 1 + int(len(content) / (self.columns + 1))
+ if not self.quiet:
+ for tasknum, task in enumerate(tasks[:(self.rows - 2)]):
+ if isinstance(task, tuple):
+ pbar, progress, rate, start_time = task
+ if not pbar.start_time:
+ pbar.start(False)
+ if start_time:
+ pbar.start_time = start_time
+ pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1]))
+ if progress > -1:
+ pbar.setextra(rate)
+ content = pbar.update(progress)
+ else:
+ content = pbar.update(1)
+ print('')
+ else:
+ content = "%s: %s" % (tasknum, task)
+ print(content)
+ lines = lines + 1 + int(len(content) / (self.columns + 1))
self.footer_present = lines
self.lastpids = runningpids[:]
self.lastcount = self.helper.tasknumber_current
@@ -248,7 +335,8 @@ _evt_list = [ "bb.runqueue.runQueueExitWait", "bb.event.LogExecTTY", "logging.Lo
"bb.command.CommandExit", "bb.command.CommandCompleted", "bb.cooker.CookerExit",
"bb.event.MultipleProviders", "bb.event.NoProvider", "bb.runqueue.sceneQueueTaskStarted",
"bb.runqueue.runQueueTaskStarted", "bb.runqueue.runQueueTaskFailed", "bb.runqueue.sceneQueueTaskFailed",
- "bb.event.BuildBase", "bb.build.TaskStarted", "bb.build.TaskSucceeded", "bb.build.TaskFailedSilent"]
+ "bb.event.BuildBase", "bb.build.TaskStarted", "bb.build.TaskSucceeded", "bb.build.TaskFailedSilent",
+ "bb.build.TaskProgress", "bb.event.ProcessStarted", "bb.event.ProcessProgress", "bb.event.ProcessFinished"]
def main(server, eventHandler, params, tf = TerminalFilter):
@@ -265,7 +353,10 @@ def main(server, eventHandler, params, tf = TerminalFilter):
errconsole = logging.StreamHandler(sys.stderr)
format_str = "%(levelname)s: %(message)s"
format = bb.msg.BBLogFormatter(format_str)
- bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut)
+ if params.options.quiet:
+ bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, bb.msg.BBLogFormatter.WARNING)
+ else:
+ bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut)
bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr)
console.setFormatter(format)
errconsole.setFormatter(format)
@@ -278,6 +369,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
server.terminateServer()
return
+ consolelog = None
if consolelogfile and not params.options.show_environment and not params.options.show_versions:
bb.utils.mkdirhier(os.path.dirname(consolelogfile))
conlogformat = bb.msg.BBLogFormatter(format_str)
@@ -285,6 +377,12 @@ def main(server, eventHandler, params, tf = TerminalFilter):
bb.msg.addDefaultlogFilter(consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler(consolelog)
+ loglink = os.path.join(os.path.dirname(consolelogfile), 'console-latest.log')
+ bb.utils.remove(loglink)
+ try:
+ os.symlink(os.path.basename(consolelogfile), loglink)
+ except OSError:
+ pass
llevel, debug_domains = bb.msg.constructLogOptions()
server.runCommand(["setEventMask", server.getEventHandle(), llevel, debug_domains, _evt_list])
@@ -321,7 +419,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
warnings = 0
taskfailures = []
- termfilter = tf(main, helper, console, errconsole, format)
+ termfilter = tf(main, helper, console, errconsole, format, params.options.quiet)
atexit.register(termfilter.finish)
while True:
@@ -350,7 +448,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
tries -= 1
if tries:
continue
- logger.warn(event.msg)
+ logger.warning(event.msg)
continue
if isinstance(event, logging.LogRecord):
@@ -377,7 +475,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
continue
if isinstance(event, bb.build.TaskFailedSilent):
- logger.warn("Logfile for failed setscene task is %s" % event.logfile)
+ logger.warning("Logfile for failed setscene task is %s" % event.logfile)
continue
if isinstance(event, bb.build.TaskFailed):
return_value = 1
@@ -413,15 +511,19 @@ def main(server, eventHandler, params, tf = TerminalFilter):
parseprogress = new_progress("Parsing recipes", event.total).start()
continue
if isinstance(event, bb.event.ParseProgress):
- parseprogress.update(event.current)
+ if parseprogress:
+ parseprogress.update(event.current)
+ else:
+ bb.warn("Got ParseProgress event for parsing that never started?")
continue
if isinstance(event, bb.event.ParseCompleted):
if not parseprogress:
continue
-
parseprogress.finish()
- print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
- % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
+ pasreprogress = None
+ if not params.options.quiet:
+ print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
+ % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
continue
if isinstance(event, bb.event.CacheLoadStarted):
@@ -432,7 +534,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
continue
if isinstance(event, bb.event.CacheLoadCompleted):
cacheprogress.finish()
- print("Loaded %d entries from dependency cache." % event.num_entries)
+ if not params.options.quiet:
+ print("Loaded %d entries from dependency cache." % event.num_entries)
continue
if isinstance(event, bb.command.CommandFailed):
@@ -494,28 +597,44 @@ def main(server, eventHandler, params, tf = TerminalFilter):
tasktype = 'noexec task'
else:
tasktype = 'task'
- logger.info("Running %s %s of %s (ID: %s, %s)",
+ logger.info("Running %s %d of %d (%s)",
tasktype,
event.stats.completed + event.stats.active +
event.stats.failed + 1,
- event.stats.total, event.taskid, event.taskstring)
+ event.stats.total, event.taskstring)
continue
if isinstance(event, bb.runqueue.runQueueTaskFailed):
return_value = 1
taskfailures.append(event.taskstring)
- logger.error("Task %s (%s) failed with exit code '%s'",
- event.taskid, event.taskstring, event.exitcode)
+ logger.error("Task (%s) failed with exit code '%s'",
+ event.taskstring, event.exitcode)
continue
if isinstance(event, bb.runqueue.sceneQueueTaskFailed):
- logger.warn("Setscene task %s (%s) failed with exit code '%s' - real task will be run instead",
- event.taskid, event.taskstring, event.exitcode)
+ logger.warning("Setscene task (%s) failed with exit code '%s' - real task will be run instead",
+ event.taskstring, event.exitcode)
continue
if isinstance(event, bb.event.DepTreeGenerated):
continue
+ if isinstance(event, bb.event.ProcessStarted):
+ parseprogress = new_progress(event.processname, event.total)
+ parseprogress.start(False)
+ continue
+ if isinstance(event, bb.event.ProcessProgress):
+ if parseprogress:
+ parseprogress.update(event.progress)
+ else:
+ bb.warn("Got ProcessProgress event for someting that never started?")
+ continue
+ if isinstance(event, bb.event.ProcessFinished):
+ if parseprogress:
+ parseprogress.finish()
+ parseprogress = None
+ continue
+
# ignore
if isinstance(event, (bb.event.BuildBase,
bb.event.MetadataEvent,
@@ -527,7 +646,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
bb.event.OperationStarted,
bb.event.OperationCompleted,
bb.event.OperationProgress,
- bb.event.DiskFull)):
+ bb.event.DiskFull,
+ bb.build.TaskProgress)):
continue
logger.error("Unknown event: %s", event)
@@ -567,6 +687,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
main.shutdown = 2
return_value = 1
try:
+ termfilter.clearFooter()
summary = ""
if taskfailures:
summary += pluralise("\nSummary: %s task failed:",
@@ -579,7 +700,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if return_value and errors:
summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.",
"\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors)
- if summary:
+ if summary and not params.options.quiet:
print(summary)
if interrupted:
@@ -591,4 +712,8 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if e.errno == errno.EPIPE:
pass
+ if consolelog:
+ logger.removeHandler(consolelog)
+ consolelog.close()
+
return return_value
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/ncurses.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/ncurses.py
index 9589a77d7..d81e4138b 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/ncurses.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/ncurses.py
@@ -45,7 +45,7 @@
"""
-from __future__ import division
+
import logging
import os, sys, itertools, time, subprocess
@@ -55,7 +55,7 @@ except ImportError:
sys.exit("FATAL: The ncurses ui could not load the required curses python module.")
import bb
-import xmlrpclib
+import xmlrpc.client
from bb import ui
from bb.ui import uihelper
@@ -252,7 +252,7 @@ class NCursesUI:
elif ret != True:
print("Couldn't get default commandlind! %s" % ret)
return
- except xmlrpclib.Fault as x:
+ except xmlrpc.client.Fault as x:
print("XMLRPC Fault getting commandline:\n %s" % x)
return
@@ -331,7 +331,7 @@ class NCursesUI:
taw.setText(0, 0, "")
if activetasks:
taw.appendText("Active Tasks:\n")
- for task in activetasks.itervalues():
+ for task in activetasks.values():
taw.appendText(task["title"] + '\n')
if failedtasks:
taw.appendText("Failed Tasks:\n")
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/toasterui.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/toasterui.py
index 6bf4c1f03..9808f6bc8 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/toasterui.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/toasterui.py
@@ -39,7 +39,7 @@ import os
# module properties for UI modules are read by bitbake and the contract should not be broken
-featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.SEND_DEPENDS_TREE, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING, bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
+featureSet = [bb.cooker.CookerFeatures.HOB_EXTRA_CACHES, bb.cooker.CookerFeatures.BASEDATASTORE_TRACKING, bb.cooker.CookerFeatures.SEND_SANITYEVENTS]
logger = logging.getLogger("ToasterLogger")
interactive = sys.stdout.isatty()
@@ -102,6 +102,7 @@ _evt_list = [
"bb.command.CommandExit",
"bb.command.CommandFailed",
"bb.cooker.CookerExit",
+ "bb.event.BuildInit",
"bb.event.BuildCompleted",
"bb.event.BuildStarted",
"bb.event.CacheLoadCompleted",
@@ -115,6 +116,7 @@ _evt_list = [
"bb.event.NoProvider",
"bb.event.ParseCompleted",
"bb.event.ParseProgress",
+ "bb.event.ParseStarted",
"bb.event.RecipeParsed",
"bb.event.SanityCheck",
"bb.event.SanityCheckPassed",
@@ -163,7 +165,7 @@ def main(server, eventHandler, params):
inheritlist, _ = server.runCommand(["getVariable", "INHERIT"])
if not "buildhistory" in inheritlist.split(" "):
- logger.warn("buildhistory is not enabled. Please enable INHERIT += \"buildhistory\" to see image details.")
+ logger.warning("buildhistory is not enabled. Please enable INHERIT += \"buildhistory\" to see image details.")
build_history_enabled = False
if not params.observe_only:
@@ -231,19 +233,35 @@ def main(server, eventHandler, params):
# pylint: disable=protected-access
# the code will look into the protected variables of the event; no easy way around this
- # we treat ParseStarted as the first event of toaster-triggered
- # builds; that way we get the Build Configuration included in the log
- # and any errors that occur before BuildStarted is fired
if isinstance(event, bb.event.ParseStarted):
if not (build_log and build_log_file_path):
build_log, build_log_file_path = _open_build_log(log_dir)
+
+ buildinfohelper.store_started_build()
+ buildinfohelper.save_build_log_file_path(build_log_file_path)
+ buildinfohelper.set_recipes_to_parse(event.total)
continue
- if isinstance(event, bb.event.BuildStarted):
+ # create a build object in buildinfohelper from either BuildInit
+ # (if available) or BuildStarted (for jethro and previous versions)
+ if isinstance(event, (bb.event.BuildStarted, bb.event.BuildInit)):
if not (build_log and build_log_file_path):
build_log, build_log_file_path = _open_build_log(log_dir)
- buildinfohelper.store_started_build(event, build_log_file_path)
+ buildinfohelper.save_build_targets(event)
+ buildinfohelper.save_build_log_file_path(build_log_file_path)
+
+ # get additional data from BuildStarted
+ if isinstance(event, bb.event.BuildStarted):
+ buildinfohelper.save_build_layers_and_variables()
+ continue
+
+ if isinstance(event, bb.event.ParseProgress):
+ buildinfohelper.set_recipes_parsed(event.current)
+ continue
+
+ if isinstance(event, bb.event.ParseCompleted):
+ buildinfohelper.set_recipes_parsed(event.total)
continue
if isinstance(event, (bb.build.TaskStarted, bb.build.TaskSucceeded, bb.build.TaskFailedSilent)):
@@ -289,10 +307,6 @@ def main(server, eventHandler, params):
# timing and error informations from the parsing phase in Toaster
if isinstance(event, (bb.event.SanityCheckPassed, bb.event.SanityCheck)):
continue
- if isinstance(event, bb.event.ParseProgress):
- continue
- if isinstance(event, bb.event.ParseCompleted):
- continue
if isinstance(event, bb.event.CacheLoadStarted):
continue
if isinstance(event, bb.event.CacheLoadProgress):
@@ -344,8 +358,8 @@ def main(server, eventHandler, params):
if isinstance(event, bb.runqueue.runQueueTaskFailed):
buildinfohelper.update_and_store_task(event)
taskfailures.append(event.taskstring)
- logger.error("Task %s (%s) failed with exit code '%s'",
- event.taskid, event.taskstring, event.exitcode)
+ logger.error("Task (%s) failed with exit code '%s'",
+ event.taskstring, event.exitcode)
continue
if isinstance(event, (bb.runqueue.sceneQueueTaskCompleted, bb.runqueue.sceneQueueTaskFailed)):
@@ -363,6 +377,9 @@ def main(server, eventHandler, params):
errors += 1
errorcode = 1
logger.error("Command execution failed: %s", event.error)
+ elif isinstance(event, bb.event.BuildCompleted):
+ buildinfohelper.scan_image_artifacts()
+ buildinfohelper.clone_required_sdk_artifacts()
# turn off logging to the current build log
_close_build_log(build_log)
@@ -410,18 +427,18 @@ def main(server, eventHandler, params):
buildinfohelper.store_target_package_data(event)
elif event.type == "MissedSstate":
buildinfohelper.store_missed_state_tasks(event)
- elif event.type == "ImageFileSize":
- buildinfohelper.update_target_image_file(event)
- elif event.type == "ArtifactFileSize":
- buildinfohelper.update_artifact_image_file(event)
- elif event.type == "LicenseManifestPath":
- buildinfohelper.store_license_manifest_path(event)
+ elif event.type == "SDKArtifactInfo":
+ buildinfohelper.scan_sdk_artifacts(event)
elif event.type == "SetBRBE":
buildinfohelper.brbe = buildinfohelper._get_data_from_event(event)
+ elif event.type == "TaskArtifacts":
+ # not implemented yet
+ # see https://bugzilla.yoctoproject.org/show_bug.cgi?id=10283 for details
+ pass
elif event.type == "OSErrorException":
logger.error(event)
else:
- logger.error("Unprocessed MetadataEvent %s ", str(event))
+ logger.error("Unprocessed MetadataEvent %s", event.type)
continue
if isinstance(event, bb.cooker.CookerExit):
@@ -433,15 +450,33 @@ def main(server, eventHandler, params):
buildinfohelper.store_dependency_information(event)
continue
- logger.warn("Unknown event: %s", event)
+ logger.warning("Unknown event: %s", event)
return_value += 1
except EnvironmentError as ioerror:
- # ignore interrupted io
- if ioerror.args[0] == 4:
- pass
+ logger.warning("EnvironmentError: %s" % ioerror)
+ # ignore interrupted io system calls
+ if ioerror.args[0] == 4: # errno 4 is EINTR
+ logger.warning("Skipped EINTR: %s" % ioerror)
+ else:
+ raise
except KeyboardInterrupt:
- main.shutdown = 1
+ if params.observe_only:
+ print("\nKeyboard Interrupt, exiting observer...")
+ main.shutdown = 2
+ if not params.observe_only and main.shutdown == 1:
+ print("\nSecond Keyboard Interrupt, stopping...\n")
+ _, error = server.runCommand(["stateForceShutdown"])
+ if error:
+ logger.error("Unable to cleanly stop: %s" % error)
+ if not params.observe_only and main.shutdown == 0:
+ print("\nKeyboard Interrupt, closing down...\n")
+ interrupted = True
+ _, error = server.runCommand(["stateShutdown"])
+ if error:
+ logger.error("Unable to cleanly shutdown: %s" % error)
+ buildinfohelper.cancel_cli_build()
+ main.shutdown = main.shutdown + 1
except Exception as e:
# print errors to log
import traceback
@@ -461,5 +496,5 @@ def main(server, eventHandler, params):
if interrupted and return_value == 0:
return_value += 1
- logger.warn("Return value is %d", return_value)
+ logger.warning("Return value is %d", return_value)
return return_value
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/uievent.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/uievent.py
index df093c53c..9542b911c 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/uievent.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/uievent.py
@@ -25,7 +25,7 @@ client/server deadlocks.
"""
import socket, threading, pickle, collections
-from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
+from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
class BBUIEventQueue:
def __init__(self, BBServer, clientinfo=("localhost, 0")):
@@ -116,7 +116,7 @@ class BBUIEventQueue:
self.server.handle_request()
except Exception as e:
import traceback
- logger.error("BBUIEventQueue.startCallbackHandler: Exception while trying to handle request: %s\n%s" % (e, traceback.format_exc(e)))
+ logger.error("BBUIEventQueue.startCallbackHandler: Exception while trying to handle request: %s\n%s" % (e, traceback.format_exc()))
self.server.server_close()
@@ -137,7 +137,7 @@ class UIXMLRPCServer (SimpleXMLRPCServer):
SimpleXMLRPCServer.__init__( self,
interface,
requestHandler=SimpleXMLRPCRequestHandler,
- logRequests=False, allow_none=True)
+ logRequests=False, allow_none=True, use_builtin_types=True)
def get_request(self):
while not self.quit:
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/uihelper.py b/import-layers/yocto-poky/bitbake/lib/bb/ui/uihelper.py
index db70b763f..fda7cc2c7 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/uihelper.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/ui/uihelper.py
@@ -18,6 +18,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import bb.build
+import time
class BBUIHelper:
def __init__(self):
@@ -31,29 +32,33 @@ class BBUIHelper:
def eventHandler(self, event):
if isinstance(event, bb.build.TaskStarted):
- self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task) }
+ self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task), 'starttime' : time.time() }
self.running_pids.append(event.pid)
self.needUpdate = True
- if isinstance(event, bb.build.TaskSucceeded):
+ elif isinstance(event, bb.build.TaskSucceeded):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
self.needUpdate = True
- if isinstance(event, bb.build.TaskFailedSilent):
+ elif isinstance(event, bb.build.TaskFailedSilent):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
# Don't add to the failed tasks list since this is e.g. a setscene task failure
self.needUpdate = True
- if isinstance(event, bb.build.TaskFailed):
+ elif isinstance(event, bb.build.TaskFailed):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)})
self.needUpdate = True
- if isinstance(event, bb.runqueue.runQueueTaskStarted) or isinstance(event, bb.runqueue.sceneQueueTaskStarted):
+ elif isinstance(event, bb.runqueue.runQueueTaskStarted) or isinstance(event, bb.runqueue.sceneQueueTaskStarted):
self.tasknumber_current = event.stats.completed + event.stats.active + event.stats.failed + 1
self.tasknumber_total = event.stats.total
self.needUpdate = True
+ elif isinstance(event, bb.build.TaskProgress):
+ if event.pid > 0:
+ self.running_tasks[event.pid]['progress'] = event.progress
+ self.running_tasks[event.pid]['rate'] = event.rate
+ self.needUpdate = True
def getTasks(self):
self.needUpdate = False
return (self.running_tasks, self.failed_tasks)
-
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/utils.py b/import-layers/yocto-poky/bitbake/lib/bb/utils.py
index 3544bbe17..729848a1c 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/utils.py
+++ b/import-layers/yocto-poky/bitbake/lib/bb/utils.py
@@ -27,6 +27,8 @@ import bb
import bb.msg
import multiprocessing
import fcntl
+import imp
+import itertools
import subprocess
import glob
import fnmatch
@@ -34,12 +36,15 @@ import traceback
import errno
import signal
import ast
-from commands import getstatusoutput
+import collections
+import copy
+from subprocess import getstatusoutput
from contextlib import contextmanager
from ctypes import cdll
-
logger = logging.getLogger("BitBake.Util")
+python_extensions = [e for e, _, _ in imp.get_suffixes()]
+
def clean_context():
return {
@@ -71,7 +76,7 @@ def explode_version(s):
r.append((0, int(m.group(1))))
s = m.group(2)
continue
- if s[0] in string.letters:
+ if s[0] in string.ascii_letters:
m = alpha_regexp.match(s)
r.append((1, m.group(1)))
s = m.group(2)
@@ -188,7 +193,7 @@ def explode_dep_versions2(s):
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
and return a dictionary of dependencies and versions.
"""
- r = {}
+ r = collections.OrderedDict()
l = s.replace(",", "").split()
lastdep = None
lastcmp = ""
@@ -245,6 +250,7 @@ def explode_dep_versions2(s):
if not (i in r and r[i]):
r[lastdep] = []
+ r = collections.OrderedDict(sorted(r.items(), key=lambda x: x[0]))
return r
def explode_dep_versions(s):
@@ -369,6 +375,12 @@ def _print_exception(t, value, tb, realfile, text, context):
level = level + 1
error.append("Exception: %s" % ''.join(exception))
+
+ # If the exception is from spwaning a task, let's be helpful and display
+ # the output (which hopefully includes stderr).
+ if isinstance(value, subprocess.CalledProcessError):
+ error.append("Subprocess output:")
+ error.append(value.output.decode("utf-8", errors="ignore"))
finally:
logger.error("\n".join(error))
@@ -403,8 +415,13 @@ def better_exec(code, context, text = None, realfile = "<code>", pythonexception
def simple_exec(code, context):
exec(code, get_context(), context)
-def better_eval(source, locals):
- return eval(source, get_context(), locals)
+def better_eval(source, locals, extraglobals = None):
+ ctx = get_context()
+ if extraglobals:
+ ctx = copy.copy(ctx)
+ for g in extraglobals:
+ ctx[g] = extraglobals[g]
+ return eval(source, ctx, locals)
@contextmanager
def fileslocked(files):
@@ -563,6 +580,8 @@ def preserved_envvars_exported():
'SHELL',
'TERM',
'USER',
+ 'LC_ALL',
+ 'BBSERVER',
]
def preserved_envvars():
@@ -582,14 +601,19 @@ def filter_environment(good_vars):
"""
removed_vars = {}
- for key in os.environ.keys():
+ for key in list(os.environ):
if key in good_vars:
continue
removed_vars[key] = os.environ[key]
- os.unsetenv(key)
del os.environ[key]
+ # If we spawn a python process, we need to have a UTF-8 locale, else python's file
+ # access methods will use ascii. You can't change that mode once the interpreter is
+ # started so we have to ensure a locale is set. Ideally we'd use C.UTF-8 but not all
+ # distros support that and we need to set something.
+ os.environ["LC_ALL"] = "en_US.UTF-8"
+
if removed_vars:
logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars.keys()))
@@ -629,7 +653,7 @@ def empty_environment():
"""
Remove all variables from the environment.
"""
- for s in os.environ.keys():
+ for s in list(os.environ.keys()):
os.unsetenv(s)
del os.environ[s]
@@ -818,7 +842,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
if not sstat:
sstat = os.lstat(src)
except Exception as e:
- logger.warn("copyfile: stat of %s failed (%s)" % (src, e))
+ logger.warning("copyfile: stat of %s failed (%s)" % (src, e))
return False
destexists = 1
@@ -845,7 +869,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
#os.lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
return os.lstat(dest)
except Exception as e:
- logger.warn("copyfile: failed to create symlink %s to %s (%s)" % (dest, target, e))
+ logger.warning("copyfile: failed to create symlink %s to %s (%s)" % (dest, target, e))
return False
if stat.S_ISREG(sstat[stat.ST_MODE]):
@@ -860,7 +884,7 @@ def copyfile(src, dest, newmtime = None, sstat = None):
shutil.copyfile(src, dest + "#new")
os.rename(dest + "#new", dest)
except Exception as e:
- logger.warn("copyfile: copy %s to %s failed (%s)" % (src, dest, e))
+ logger.warning("copyfile: copy %s to %s failed (%s)" % (src, dest, e))
return False
finally:
if srcchown:
@@ -871,13 +895,13 @@ def copyfile(src, dest, newmtime = None, sstat = None):
#we don't yet handle special, so we need to fall back to /bin/mv
a = getstatusoutput("/bin/cp -f " + "'" + src + "' '" + dest + "'")
if a[0] != 0:
- logger.warn("copyfile: failed to copy special file %s to %s (%s)" % (src, dest, a))
+ logger.warning("copyfile: failed to copy special file %s to %s (%s)" % (src, dest, a))
return False # failure
try:
os.lchown(dest, sstat[stat.ST_UID], sstat[stat.ST_GID])
os.chmod(dest, stat.S_IMODE(sstat[stat.ST_MODE])) # Sticky is reset on chown
except Exception as e:
- logger.warn("copyfile: failed to chown/chmod %s (%s)" % (dest, e))
+ logger.warning("copyfile: failed to chown/chmod %s (%s)" % (dest, e))
return False
if newmtime:
@@ -946,7 +970,7 @@ def contains(variable, checkvalues, truevalue, falsevalue, d):
if not val:
return falsevalue
val = set(val.split())
- if isinstance(checkvalues, basestring):
+ if isinstance(checkvalues, str):
checkvalues = set(checkvalues.split())
else:
checkvalues = set(checkvalues)
@@ -959,7 +983,7 @@ def contains_any(variable, checkvalues, truevalue, falsevalue, d):
if not val:
return falsevalue
val = set(val.split())
- if isinstance(checkvalues, basestring):
+ if isinstance(checkvalues, str):
checkvalues = set(checkvalues.split())
else:
checkvalues = set(checkvalues)
@@ -1028,7 +1052,7 @@ def exec_flat_python_func(func, *args, **kwargs):
aidx += 1
# Handle keyword arguments
context.update(kwargs)
- funcargs.extend(['%s=%s' % (arg, arg) for arg in kwargs.iterkeys()])
+ funcargs.extend(['%s=%s' % (arg, arg) for arg in kwargs.keys()])
code = 'retval = %s(%s)' % (func, ', '.join(funcargs))
comp = bb.utils.better_compile(code, '<string>', '<string>')
bb.utils.better_exec(comp, context, code, '<string>')
@@ -1057,7 +1081,7 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
newlines: list of lines up to this point. You can use
this to prepend lines before this variable setting
if you wish.
- and should return a three-element tuple:
+ and should return a four-element tuple:
newvalue: new value to substitute in, or None to drop
the variable setting entirely. (If the removal
results in two consecutive blank lines, one of the
@@ -1071,6 +1095,8 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
multi-line value to continue on the same line as
the assignment, False to indent before the first
element.
+ To clarify, if you wish not to change the value, then you
+ would return like this: return origvalue, None, 0, True
match_overrides: True to match items with _overrides on the end,
False otherwise
Returns a tuple:
@@ -1115,7 +1141,7 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
else:
varset_new = varset_start
- if isinstance(indent, (int, long)):
+ if isinstance(indent, int):
if indent == -1:
indentspc = ' ' * (len(varset_new) + 2)
else:
@@ -1183,7 +1209,7 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
in_var = None
else:
skip = False
- for (varname, var_re) in var_res.iteritems():
+ for (varname, var_re) in var_res.items():
res = var_re.match(line)
if res:
isfunc = varname.endswith('()')
@@ -1361,7 +1387,7 @@ def get_file_layer(filename, d):
# Use longest path so we handle nested layers
matchlen = 0
match = None
- for collection, regex in collection_res.iteritems():
+ for collection, regex in collection_res.items():
if len(regex) > matchlen and re.match(regex, path):
matchlen = len(regex)
match = collection
@@ -1427,9 +1453,8 @@ def set_process_name(name):
# This is nice to have for debugging, not essential
try:
libc = cdll.LoadLibrary('libc.so.6')
- buff = create_string_buffer(len(name)+1)
- buff.value = name
- libc.prctl(15, byref(buff), 0, 0, 0)
+ buf = create_string_buffer(bytes(name, 'utf-8'))
+ libc.prctl(15, byref(buf), 0, 0, 0)
except:
pass
@@ -1438,7 +1463,8 @@ def export_proxies(d):
import os
variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY',
- 'ftp_proxy', 'FTP_PROXY', 'no_proxy', 'NO_PROXY']
+ 'ftp_proxy', 'FTP_PROXY', 'no_proxy', 'NO_PROXY',
+ 'GIT_PROXY_COMMAND']
exported = False
for v in variables:
@@ -1451,3 +1477,29 @@ def export_proxies(d):
exported = True
return exported
+
+
+def load_plugins(logger, plugins, pluginpath):
+ def load_plugin(name):
+ logger.debug('Loading plugin %s' % name)
+ fp, pathname, description = imp.find_module(name, [pluginpath])
+ try:
+ return imp.load_module(name, fp, pathname, description)
+ finally:
+ if fp:
+ fp.close()
+
+ logger.debug('Loading plugins from %s...' % pluginpath)
+
+ expanded = (glob.glob(os.path.join(pluginpath, '*' + ext))
+ for ext in python_extensions)
+ files = itertools.chain.from_iterable(expanded)
+ names = set(os.path.splitext(os.path.basename(fn))[0] for fn in files)
+ for name in names:
+ if name != '__init__':
+ plugin = load_plugin(name)
+ if hasattr(plugin, 'plugin_init'):
+ obj = plugin.plugin_init(plugins)
+ plugins.append(obj or plugin)
+ else:
+ plugins.append(plugin)
diff --git a/import-layers/yocto-poky/bitbake/lib/bblayers/__init__.py b/import-layers/yocto-poky/bitbake/lib/bblayers/__init__.py
new file mode 100644
index 000000000..3ad9513f4
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bblayers/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git a/import-layers/yocto-poky/bitbake/lib/bblayers/action.py b/import-layers/yocto-poky/bitbake/lib/bblayers/action.py
new file mode 100644
index 000000000..739ae27b9
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bblayers/action.py
@@ -0,0 +1,233 @@
+import fnmatch
+import logging
+import os
+import sys
+
+import bb.utils
+
+from bblayers.common import LayerPlugin
+
+logger = logging.getLogger('bitbake-layers')
+
+
+def plugin_init(plugins):
+ return ActionPlugin()
+
+
+class ActionPlugin(LayerPlugin):
+ def do_add_layer(self, args):
+ """Add a layer to bblayers.conf."""
+ layerdir = os.path.abspath(args.layerdir)
+ if not os.path.exists(layerdir):
+ sys.stderr.write("Specified layer directory doesn't exist\n")
+ return 1
+
+ layer_conf = os.path.join(layerdir, 'conf', 'layer.conf')
+ if not os.path.exists(layer_conf):
+ sys.stderr.write("Specified layer directory doesn't contain a conf/layer.conf file\n")
+ return 1
+
+ bblayers_conf = os.path.join('conf', 'bblayers.conf')
+ if not os.path.exists(bblayers_conf):
+ sys.stderr.write("Unable to find bblayers.conf\n")
+ return 1
+
+ notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdir, None)
+ if notadded:
+ for item in notadded:
+ sys.stderr.write("Specified layer %s is already in BBLAYERS\n" % item)
+
+ def do_remove_layer(self, args):
+ """Remove a layer from bblayers.conf."""
+ bblayers_conf = os.path.join('conf', 'bblayers.conf')
+ if not os.path.exists(bblayers_conf):
+ sys.stderr.write("Unable to find bblayers.conf\n")
+ return 1
+
+ if args.layerdir.startswith('*'):
+ layerdir = args.layerdir
+ elif not '/' in args.layerdir:
+ layerdir = '*/%s' % args.layerdir
+ else:
+ layerdir = os.path.abspath(args.layerdir)
+ (_, notremoved) = bb.utils.edit_bblayers_conf(bblayers_conf, None, layerdir)
+ if notremoved:
+ for item in notremoved:
+ sys.stderr.write("No layers matching %s found in BBLAYERS\n" % item)
+ return 1
+
+ def do_flatten(self, args):
+ """flatten layer configuration into a separate output directory.
+
+Takes the specified layers (or all layers in the current layer
+configuration if none are specified) and builds a "flattened" directory
+containing the contents of all layers, with any overlayed recipes removed
+and bbappends appended to the corresponding recipes. Note that some manual
+cleanup may still be necessary afterwards, in particular:
+
+* where non-recipe files (such as patches) are overwritten (the flatten
+ command will show a warning for these)
+* where anything beyond the normal layer setup has been added to
+ layer.conf (only the lowest priority number layer's layer.conf is used)
+* overridden/appended items from bbappends will need to be tidied up
+* when the flattened layers do not have the same directory structure (the
+ flatten command should show a warning when this will cause a problem)
+
+Warning: if you flatten several layers where another layer is intended to
+be used "inbetween" them (in layer priority order) such that recipes /
+bbappends in the layers interact, and then attempt to use the new output
+layer together with that other layer, you may no longer get the same
+build results (as the layer priority order has effectively changed).
+"""
+ if len(args.layer) == 1:
+ logger.error('If you specify layers to flatten you must specify at least two')
+ return 1
+
+ outputdir = args.outputdir
+ if os.path.exists(outputdir) and os.listdir(outputdir):
+ logger.error('Directory %s exists and is non-empty, please clear it out first' % outputdir)
+ return 1
+
+ layers = self.bblayers
+ if len(args.layer) > 2:
+ layernames = args.layer
+ found_layernames = []
+ found_layerdirs = []
+ for layerdir in layers:
+ layername = self.get_layer_name(layerdir)
+ if layername in layernames:
+ found_layerdirs.append(layerdir)
+ found_layernames.append(layername)
+
+ for layername in layernames:
+ if not layername in found_layernames:
+ logger.error('Unable to find layer %s in current configuration, please run "%s show-layers" to list configured layers' % (layername, os.path.basename(sys.argv[0])))
+ return
+ layers = found_layerdirs
+ else:
+ layernames = []
+
+ # Ensure a specified path matches our list of layers
+ def layer_path_match(path):
+ for layerdir in layers:
+ if path.startswith(os.path.join(layerdir, '')):
+ return layerdir
+ return None
+
+ applied_appends = []
+ for layer in layers:
+ overlayed = []
+ for f in self.tinfoil.cooker.collection.overlayed.keys():
+ for of in self.tinfoil.cooker.collection.overlayed[f]:
+ if of.startswith(layer):
+ overlayed.append(of)
+
+ logger.plain('Copying files from %s...' % layer )
+ for root, dirs, files in os.walk(layer):
+ if '.git' in dirs:
+ dirs.remove('.git')
+ if '.hg' in dirs:
+ dirs.remove('.hg')
+
+ for f1 in files:
+ f1full = os.sep.join([root, f1])
+ if f1full in overlayed:
+ logger.plain(' Skipping overlayed file %s' % f1full )
+ else:
+ ext = os.path.splitext(f1)[1]
+ if ext != '.bbappend':
+ fdest = f1full[len(layer):]
+ fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
+ bb.utils.mkdirhier(os.path.dirname(fdest))
+ if os.path.exists(fdest):
+ if f1 == 'layer.conf' and root.endswith('/conf'):
+ logger.plain(' Skipping layer config file %s' % f1full )
+ continue
+ else:
+ logger.warning('Overwriting file %s', fdest)
+ bb.utils.copyfile(f1full, fdest)
+ if ext == '.bb':
+ for append in self.tinfoil.cooker.collection.get_file_appends(f1full):
+ if layer_path_match(append):
+ logger.plain(' Applying append %s to %s' % (append, fdest))
+ self.apply_append(append, fdest)
+ applied_appends.append(append)
+
+ # Take care of when some layers are excluded and yet we have included bbappends for those recipes
+ for b in self.tinfoil.cooker.collection.bbappends:
+ (recipename, appendname) = b
+ if appendname not in applied_appends:
+ first_append = None
+ layer = layer_path_match(appendname)
+ if layer:
+ if first_append:
+ self.apply_append(appendname, first_append)
+ else:
+ fdest = appendname[len(layer):]
+ fdest = os.path.normpath(os.sep.join([outputdir,fdest]))
+ bb.utils.mkdirhier(os.path.dirname(fdest))
+ bb.utils.copyfile(appendname, fdest)
+ first_append = fdest
+
+ # Get the regex for the first layer in our list (which is where the conf/layer.conf file will
+ # have come from)
+ first_regex = None
+ layerdir = layers[0]
+ for layername, pattern, regex, _ in self.tinfoil.cooker.bbfile_config_priorities:
+ if regex.match(os.path.join(layerdir, 'test')):
+ first_regex = regex
+ break
+
+ if first_regex:
+ # Find the BBFILES entries that match (which will have come from this conf/layer.conf file)
+ bbfiles = str(self.tinfoil.config_data.getVar('BBFILES', True)).split()
+ bbfiles_layer = []
+ for item in bbfiles:
+ if first_regex.match(item):
+ newpath = os.path.join(outputdir, item[len(layerdir)+1:])
+ bbfiles_layer.append(newpath)
+
+ if bbfiles_layer:
+ # Check that all important layer files match BBFILES
+ for root, dirs, files in os.walk(outputdir):
+ for f1 in files:
+ ext = os.path.splitext(f1)[1]
+ if ext in ['.bb', '.bbappend']:
+ f1full = os.sep.join([root, f1])
+ entry_found = False
+ for item in bbfiles_layer:
+ if fnmatch.fnmatch(f1full, item):
+ entry_found = True
+ break
+ if not entry_found:
+ logger.warning("File %s does not match the flattened layer's BBFILES setting, you may need to edit conf/layer.conf or move the file elsewhere" % f1full)
+
+ def get_file_layer(self, filename):
+ layerdir = self.get_file_layerdir(filename)
+ if layerdir:
+ return self.get_layer_name(layerdir)
+ else:
+ return '?'
+
+ def get_file_layerdir(self, filename):
+ layer = bb.utils.get_file_layer(filename, self.tinfoil.config_data)
+ return self.bbfile_collections.get(layer, None)
+
+ def apply_append(self, appendname, recipename):
+ with open(appendname, 'r') as appendfile:
+ with open(recipename, 'a') as recipefile:
+ recipefile.write('\n')
+ recipefile.write('##### bbappended from %s #####\n' % self.get_file_layer(appendname))
+ recipefile.writelines(appendfile.readlines())
+
+ def register_commands(self, sp):
+ parser_add_layer = self.add_command(sp, 'add-layer', self.do_add_layer, parserecipes=False)
+ parser_add_layer.add_argument('layerdir', help='Layer directory to add')
+
+ parser_remove_layer = self.add_command(sp, 'remove-layer', self.do_remove_layer, parserecipes=False)
+ parser_remove_layer.add_argument('layerdir', help='Layer directory to remove (wildcards allowed, enclose in quotes to avoid shell expansion)')
+ parser_remove_layer.set_defaults(func=self.do_remove_layer)
+
+ parser_flatten = self.add_command(sp, 'flatten', self.do_flatten)
+ parser_flatten.add_argument('layer', nargs='*', help='Optional layer(s) to flatten (otherwise all are flattened)')
+ parser_flatten.add_argument('outputdir', help='Output directory')
diff --git a/import-layers/yocto-poky/bitbake/lib/bblayers/common.py b/import-layers/yocto-poky/bitbake/lib/bblayers/common.py
new file mode 100644
index 000000000..b10fb4cea
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bblayers/common.py
@@ -0,0 +1,33 @@
+import argparse
+import logging
+import os
+
+logger = logging.getLogger('bitbake-layers')
+
+
+class LayerPlugin():
+ def __init__(self):
+ self.tinfoil = None
+ self.bblayers = []
+
+ def tinfoil_init(self, tinfoil):
+ self.tinfoil = tinfoil
+ self.bblayers = (self.tinfoil.config_data.getVar('BBLAYERS', True) or "").split()
+ layerconfs = self.tinfoil.config_data.varhistory.get_variable_items_files('BBFILE_COLLECTIONS', self.tinfoil.config_data)
+ self.bbfile_collections = {layer: os.path.dirname(os.path.dirname(path)) for layer, path in layerconfs.items()}
+
+ @staticmethod
+ def add_command(subparsers, cmdname, function, parserecipes=True, *args, **kwargs):
+ """Convert docstring for function to help."""
+ docsplit = function.__doc__.splitlines()
+ help = docsplit[0]
+ if len(docsplit) > 1:
+ desc = '\n'.join(docsplit[1:])
+ else:
+ desc = help
+ subparser = subparsers.add_parser(cmdname, *args, help=help, description=desc, formatter_class=argparse.RawTextHelpFormatter, **kwargs)
+ subparser.set_defaults(func=function, parserecipes=parserecipes)
+ return subparser
+
+ def get_layer_name(self, layerdir):
+ return os.path.basename(layerdir.rstrip(os.sep))
diff --git a/import-layers/yocto-poky/bitbake/lib/bblayers/layerindex.py b/import-layers/yocto-poky/bitbake/lib/bblayers/layerindex.py
new file mode 100644
index 000000000..10ad718eb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bblayers/layerindex.py
@@ -0,0 +1,270 @@
+import argparse
+import http.client
+import json
+import logging
+import os
+import subprocess
+import urllib.parse
+
+from bblayers.action import ActionPlugin
+
+logger = logging.getLogger('bitbake-layers')
+
+
+def plugin_init(plugins):
+ return LayerIndexPlugin()
+
+
+class LayerIndexPlugin(ActionPlugin):
+ """Subcommands for interacting with the layer index.
+
+ This class inherits ActionPlugin to get do_add_layer.
+ """
+
+ def get_json_data(self, apiurl):
+ proxy_settings = os.environ.get("http_proxy", None)
+ conn = None
+ _parsedurl = urllib.parse.urlparse(apiurl)
+ path = _parsedurl.path
+ query = _parsedurl.query
+
+ def parse_url(url):
+ parsedurl = urllib.parse.urlparse(url)
+ if parsedurl.netloc[0] == '[':
+ host, port = parsedurl.netloc[1:].split(']', 1)
+ if ':' in port:
+ port = port.rsplit(':', 1)[1]
+ else:
+ port = None
+ else:
+ if parsedurl.netloc.count(':') == 1:
+ (host, port) = parsedurl.netloc.split(":")
+ else:
+ host = parsedurl.netloc
+ port = None
+ return (host, 80 if port is None else int(port))
+
+ if proxy_settings is None:
+ host, port = parse_url(apiurl)
+ conn = http.client.HTTPConnection(host, port)
+ conn.request("GET", path + "?" + query)
+ else:
+ host, port = parse_url(proxy_settings)
+ conn = http.client.HTTPConnection(host, port)
+ conn.request("GET", apiurl)
+
+ r = conn.getresponse()
+ if r.status != 200:
+ raise Exception("Failed to read " + path + ": %d %s" % (r.status, r.reason))
+ return json.loads(r.read())
+
+ def get_layer_deps(self, layername, layeritems, layerbranches, layerdependencies, branchnum, selfname=False):
+ def layeritems_info_id(items_name, layeritems):
+ litems_id = None
+ for li in layeritems:
+ if li['name'] == items_name:
+ litems_id = li['id']
+ break
+ return litems_id
+
+ def layerbranches_info(items_id, layerbranches):
+ lbranch = {}
+ for lb in layerbranches:
+ if lb['layer'] == items_id and lb['branch'] == branchnum:
+ lbranch['id'] = lb['id']
+ lbranch['vcs_subdir'] = lb['vcs_subdir']
+ break
+ return lbranch
+
+ def layerdependencies_info(lb_id, layerdependencies):
+ ld_deps = []
+ for ld in layerdependencies:
+ if ld['layerbranch'] == lb_id and not ld['dependency'] in ld_deps:
+ ld_deps.append(ld['dependency'])
+ if not ld_deps:
+ logger.error("The dependency of layerDependencies is not found.")
+ return ld_deps
+
+ def layeritems_info_name_subdir(items_id, layeritems):
+ litems = {}
+ for li in layeritems:
+ if li['id'] == items_id:
+ litems['vcs_url'] = li['vcs_url']
+ litems['name'] = li['name']
+ break
+ return litems
+
+ if selfname:
+ selfid = layeritems_info_id(layername, layeritems)
+ lbinfo = layerbranches_info(selfid, layerbranches)
+ if lbinfo:
+ selfsubdir = lbinfo['vcs_subdir']
+ else:
+ logger.error("%s is not found in the specified branch" % layername)
+ return
+ selfurl = layeritems_info_name_subdir(selfid, layeritems)['vcs_url']
+ if selfurl:
+ return selfurl, selfsubdir
+ else:
+ logger.error("Cannot get layer %s git repo and subdir" % layername)
+ return
+ ldict = {}
+ itemsid = layeritems_info_id(layername, layeritems)
+ if not itemsid:
+ return layername, None
+ lbid = layerbranches_info(itemsid, layerbranches)
+ if lbid:
+ lbid = layerbranches_info(itemsid, layerbranches)['id']
+ else:
+ logger.error("%s is not found in the specified branch" % layername)
+ return None, None
+ for dependency in layerdependencies_info(lbid, layerdependencies):
+ lname = layeritems_info_name_subdir(dependency, layeritems)['name']
+ lurl = layeritems_info_name_subdir(dependency, layeritems)['vcs_url']
+ lsubdir = layerbranches_info(dependency, layerbranches)['vcs_subdir']
+ ldict[lname] = lurl, lsubdir
+ return None, ldict
+
+ def get_fetch_layer(self, fetchdir, url, subdir, fetch_layer):
+ layername = self.get_layer_name(url)
+ if os.path.splitext(layername)[1] == '.git':
+ layername = os.path.splitext(layername)[0]
+ repodir = os.path.join(fetchdir, layername)
+ layerdir = os.path.join(repodir, subdir)
+ if not os.path.exists(repodir):
+ if fetch_layer:
+ result = subprocess.call('git clone %s %s' % (url, repodir), shell = True)
+ if result:
+ logger.error("Failed to download %s" % url)
+ return None, None
+ else:
+ return layername, layerdir
+ else:
+ logger.plain("Repository %s needs to be fetched" % url)
+ return layername, layerdir
+ elif os.path.exists(layerdir):
+ return layername, layerdir
+ else:
+ logger.error("%s is not in %s" % (url, subdir))
+ return None, None
+
+ def do_layerindex_fetch(self, args):
+ """Fetches a layer from a layer index along with its dependent layers, and adds them to conf/bblayers.conf.
+"""
+ apiurl = self.tinfoil.config_data.getVar('BBLAYERS_LAYERINDEX_URL', True)
+ if not apiurl:
+ logger.error("Cannot get BBLAYERS_LAYERINDEX_URL")
+ return 1
+ else:
+ if apiurl[-1] != '/':
+ apiurl += '/'
+ apiurl += "api/"
+ apilinks = self.get_json_data(apiurl)
+ branches = self.get_json_data(apilinks['branches'])
+
+ branchnum = 0
+ for branch in branches:
+ if branch['name'] == args.branch:
+ branchnum = branch['id']
+ break
+ if branchnum == 0:
+ validbranches = ', '.join([branch['name'] for branch in branches])
+ logger.error('Invalid layer branch name "%s". Valid branches: %s' % (args.branch, validbranches))
+ return 1
+
+ ignore_layers = []
+ for collection in self.tinfoil.config_data.getVar('BBFILE_COLLECTIONS', True).split():
+ lname = self.tinfoil.config_data.getVar('BBLAYERS_LAYERINDEX_NAME_%s' % collection, True)
+ if lname:
+ ignore_layers.append(lname)
+
+ if args.ignore:
+ ignore_layers.extend(args.ignore.split(','))
+
+ layeritems = self.get_json_data(apilinks['layerItems'])
+ layerbranches = self.get_json_data(apilinks['layerBranches'])
+ layerdependencies = self.get_json_data(apilinks['layerDependencies'])
+ invaluenames = []
+ repourls = {}
+ printlayers = []
+
+ def query_dependencies(layers, layeritems, layerbranches, layerdependencies, branchnum):
+ depslayer = []
+ for layername in layers:
+ invaluename, layerdict = self.get_layer_deps(layername, layeritems, layerbranches, layerdependencies, branchnum)
+ if layerdict:
+ repourls[layername] = self.get_layer_deps(layername, layeritems, layerbranches, layerdependencies, branchnum, selfname=True)
+ for layer in layerdict:
+ if not layer in ignore_layers:
+ depslayer.append(layer)
+ printlayers.append((layername, layer, layerdict[layer][0], layerdict[layer][1]))
+ if not layer in ignore_layers and not layer in repourls:
+ repourls[layer] = (layerdict[layer][0], layerdict[layer][1])
+ if invaluename and not invaluename in invaluenames:
+ invaluenames.append(invaluename)
+ return depslayer
+
+ depslayers = query_dependencies(args.layername, layeritems, layerbranches, layerdependencies, branchnum)
+ while depslayers:
+ depslayer = query_dependencies(depslayers, layeritems, layerbranches, layerdependencies, branchnum)
+ depslayers = depslayer
+ if invaluenames:
+ for invaluename in invaluenames:
+ logger.error('Layer "%s" not found in layer index' % invaluename)
+ return 1
+ logger.plain("%s %s %s %s" % ("Layer".ljust(19), "Required by".ljust(19), "Git repository".ljust(54), "Subdirectory"))
+ logger.plain('=' * 115)
+ for layername in args.layername:
+ layerurl = repourls[layername]
+ logger.plain("%s %s %s %s" % (layername.ljust(20), '-'.ljust(20), layerurl[0].ljust(55), layerurl[1]))
+ printedlayers = []
+ for layer, dependency, gitrepo, subdirectory in printlayers:
+ if dependency in printedlayers:
+ continue
+ logger.plain("%s %s %s %s" % (dependency.ljust(20), layer.ljust(20), gitrepo.ljust(55), subdirectory))
+ printedlayers.append(dependency)
+
+ if repourls:
+ fetchdir = self.tinfoil.config_data.getVar('BBLAYERS_FETCH_DIR', True)
+ if not fetchdir:
+ logger.error("Cannot get BBLAYERS_FETCH_DIR")
+ return 1
+ if not os.path.exists(fetchdir):
+ os.makedirs(fetchdir)
+ addlayers = []
+ for repourl, subdir in repourls.values():
+ name, layerdir = self.get_fetch_layer(fetchdir, repourl, subdir, not args.show_only)
+ if not name:
+ # Error already shown
+ return 1
+ addlayers.append((subdir, name, layerdir))
+ if not args.show_only:
+ for subdir, name, layerdir in set(addlayers):
+ if os.path.exists(layerdir):
+ if subdir:
+ logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % subdir)
+ else:
+ logger.plain("Adding layer \"%s\" to conf/bblayers.conf" % name)
+ localargs = argparse.Namespace()
+ localargs.layerdir = layerdir
+ self.do_add_layer(localargs)
+ else:
+ break
+
+ def do_layerindex_show_depends(self, args):
+ """Find layer dependencies from layer index.
+"""
+ args.show_only = True
+ args.ignore = []
+ self.do_layerindex_fetch(args)
+
+ def register_commands(self, sp):
+ parser_layerindex_fetch = self.add_command(sp, 'layerindex-fetch', self.do_layerindex_fetch)
+ parser_layerindex_fetch.add_argument('-n', '--show-only', help='show dependencies and do nothing else', action='store_true')
+ parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch (default %(default)s)', default='master')
+ parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER')
+ parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch')
+
+ parser_layerindex_show_depends = self.add_command(sp, 'layerindex-show-depends', self.do_layerindex_show_depends)
+ parser_layerindex_show_depends.add_argument('-b', '--branch', help='branch name to fetch (default %(default)s)', default='master')
+ parser_layerindex_show_depends.add_argument('layername', nargs='+', help='layer to query')
diff --git a/import-layers/yocto-poky/bitbake/lib/bblayers/query.py b/import-layers/yocto-poky/bitbake/lib/bblayers/query.py
new file mode 100644
index 000000000..ee1e7c8a1
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/bblayers/query.py
@@ -0,0 +1,500 @@
+import collections
+import fnmatch
+import logging
+import sys
+import os
+import re
+
+import bb.cache
+import bb.providers
+import bb.utils
+
+from bblayers.common import LayerPlugin
+
+logger = logging.getLogger('bitbake-layers')
+
+
+def plugin_init(plugins):
+ return QueryPlugin()
+
+
+class QueryPlugin(LayerPlugin):
+ def do_show_layers(self, args):
+ """show current configured layers."""
+ logger.plain("%s %s %s" % ("layer".ljust(20), "path".ljust(40), "priority"))
+ logger.plain('=' * 74)
+ for layer, _, regex, pri in self.tinfoil.cooker.bbfile_config_priorities:
+ layerdir = self.bbfile_collections.get(layer, None)
+ layername = self.get_layer_name(layerdir)
+ logger.plain("%s %s %d" % (layername.ljust(20), layerdir.ljust(40), pri))
+
+ def version_str(self, pe, pv, pr = None):
+ verstr = "%s" % pv
+ if pr:
+ verstr = "%s-%s" % (verstr, pr)
+ if pe:
+ verstr = "%s:%s" % (pe, verstr)
+ return verstr
+
+ def do_show_overlayed(self, args):
+ """list overlayed recipes (where the same recipe exists in another layer)
+
+Lists the names of overlayed recipes and the available versions in each
+layer, with the preferred version first. Note that skipped recipes that
+are overlayed will also be listed, with a " (skipped)" suffix.
+"""
+
+ items_listed = self.list_recipes('Overlayed recipes', None, True, args.same_version, args.filenames, True, None)
+
+ # Check for overlayed .bbclass files
+ classes = collections.defaultdict(list)
+ for layerdir in self.bblayers:
+ classdir = os.path.join(layerdir, 'classes')
+ if os.path.exists(classdir):
+ for classfile in os.listdir(classdir):
+ if os.path.splitext(classfile)[1] == '.bbclass':
+ classes[classfile].append(classdir)
+
+ # Locating classes and other files is a bit more complicated than recipes -
+ # layer priority is not a factor; instead BitBake uses the first matching
+ # file in BBPATH, which is manipulated directly by each layer's
+ # conf/layer.conf in turn, thus the order of layers in bblayers.conf is a
+ # factor - however, each layer.conf is free to either prepend or append to
+ # BBPATH (or indeed do crazy stuff with it). Thus the order in BBPATH might
+ # not be exactly the order present in bblayers.conf either.
+ bbpath = str(self.tinfoil.config_data.getVar('BBPATH', True))
+ overlayed_class_found = False
+ for (classfile, classdirs) in classes.items():
+ if len(classdirs) > 1:
+ if not overlayed_class_found:
+ logger.plain('=== Overlayed classes ===')
+ overlayed_class_found = True
+
+ mainfile = bb.utils.which(bbpath, os.path.join('classes', classfile))
+ if args.filenames:
+ logger.plain('%s' % mainfile)
+ else:
+ # We effectively have to guess the layer here
+ logger.plain('%s:' % classfile)
+ mainlayername = '?'
+ for layerdir in self.bblayers:
+ classdir = os.path.join(layerdir, 'classes')
+ if mainfile.startswith(classdir):
+ mainlayername = self.get_layer_name(layerdir)
+ logger.plain(' %s' % mainlayername)
+ for classdir in classdirs:
+ fullpath = os.path.join(classdir, classfile)
+ if fullpath != mainfile:
+ if args.filenames:
+ print(' %s' % fullpath)
+ else:
+ print(' %s' % self.get_layer_name(os.path.dirname(classdir)))
+
+ if overlayed_class_found:
+ items_listed = True;
+
+ if not items_listed:
+ logger.plain('No overlayed files found.')
+
+ def do_show_recipes(self, args):
+ """list available recipes, showing the layer they are provided by
+
+Lists the names of recipes and the available versions in each
+layer, with the preferred version first. Optionally you may specify
+pnspec to match a specified recipe name (supports wildcards). Note that
+skipped recipes will also be listed, with a " (skipped)" suffix.
+"""
+
+ inheritlist = args.inherits.split(',') if args.inherits else []
+ if inheritlist or args.pnspec or args.multiple:
+ title = 'Matching recipes:'
+ else:
+ title = 'Available recipes:'
+ self.list_recipes(title, args.pnspec, False, False, args.filenames, args.multiple, inheritlist)
+
+ def list_recipes(self, title, pnspec, show_overlayed_only, show_same_ver_only, show_filenames, show_multi_provider_only, inherits):
+ if inherits:
+ bbpath = str(self.tinfoil.config_data.getVar('BBPATH', True))
+ for classname in inherits:
+ classfile = 'classes/%s.bbclass' % classname
+ if not bb.utils.which(bbpath, classfile, history=False):
+ logger.error('No class named %s found in BBPATH', classfile)
+ sys.exit(1)
+
+ pkg_pn = self.tinfoil.cooker.recipecaches[''].pkg_pn
+ (latest_versions, preferred_versions) = bb.providers.findProviders(self.tinfoil.config_data, self.tinfoil.cooker.recipecaches[''], pkg_pn)
+ allproviders = bb.providers.allProviders(self.tinfoil.cooker.recipecaches[''])
+
+ # Ensure we list skipped recipes
+ # We are largely guessing about PN, PV and the preferred version here,
+ # but we have no choice since skipped recipes are not fully parsed
+ skiplist = list(self.tinfoil.cooker.skiplist.keys())
+ skiplist.sort( key=lambda fileitem: self.tinfoil.cooker.collection.calc_bbfile_priority(fileitem) )
+ skiplist.reverse()
+ for fn in skiplist:
+ recipe_parts = os.path.splitext(os.path.basename(fn))[0].split('_')
+ p = recipe_parts[0]
+ if len(recipe_parts) > 1:
+ ver = (None, recipe_parts[1], None)
+ else:
+ ver = (None, 'unknown', None)
+ allproviders[p].append((ver, fn))
+ if not p in pkg_pn:
+ pkg_pn[p] = 'dummy'
+ preferred_versions[p] = (ver, fn)
+
+ def print_item(f, pn, ver, layer, ispref):
+ if f in skiplist:
+ skipped = ' (skipped)'
+ else:
+ skipped = ''
+ if show_filenames:
+ if ispref:
+ logger.plain("%s%s", f, skipped)
+ else:
+ logger.plain(" %s%s", f, skipped)
+ else:
+ if ispref:
+ logger.plain("%s:", pn)
+ logger.plain(" %s %s%s", layer.ljust(20), ver, skipped)
+
+ global_inherit = (self.tinfoil.config_data.getVar('INHERIT', True) or "").split()
+ cls_re = re.compile('classes/')
+
+ preffiles = []
+ items_listed = False
+ for p in sorted(pkg_pn):
+ if pnspec:
+ if not fnmatch.fnmatch(p, pnspec):
+ continue
+
+ if len(allproviders[p]) > 1 or not show_multi_provider_only:
+ pref = preferred_versions[p]
+ realfn = bb.cache.virtualfn2realfn(pref[1])
+ preffile = realfn[0]
+
+ # We only display once per recipe, we should prefer non extended versions of the
+ # recipe if present (so e.g. in OpenEmbedded, openssl rather than nativesdk-openssl
+ # which would otherwise sort first).
+ if realfn[1] and realfn[0] in self.tinfoil.cooker.recipecaches[''].pkg_fn:
+ continue
+
+ if inherits:
+ matchcount = 0
+ recipe_inherits = self.tinfoil.cooker_data.inherits.get(preffile, [])
+ for cls in recipe_inherits:
+ if cls_re.match(cls):
+ continue
+ classname = os.path.splitext(os.path.basename(cls))[0]
+ if classname in global_inherit:
+ continue
+ elif classname in inherits:
+ matchcount += 1
+ if matchcount != len(inherits):
+ # No match - skip this recipe
+ continue
+
+ if preffile not in preffiles:
+ preflayer = self.get_file_layer(preffile)
+ multilayer = False
+ same_ver = True
+ provs = []
+ for prov in allproviders[p]:
+ provfile = bb.cache.virtualfn2realfn(prov[1])[0]
+ provlayer = self.get_file_layer(provfile)
+ provs.append((provfile, provlayer, prov[0]))
+ if provlayer != preflayer:
+ multilayer = True
+ if prov[0] != pref[0]:
+ same_ver = False
+
+ if (multilayer or not show_overlayed_only) and (same_ver or not show_same_ver_only):
+ if not items_listed:
+ logger.plain('=== %s ===' % title)
+ items_listed = True
+ print_item(preffile, p, self.version_str(pref[0][0], pref[0][1]), preflayer, True)
+ for (provfile, provlayer, provver) in provs:
+ if provfile != preffile:
+ print_item(provfile, p, self.version_str(provver[0], provver[1]), provlayer, False)
+ # Ensure we don't show two entries for BBCLASSEXTENDed recipes
+ preffiles.append(preffile)
+
+ return items_listed
+
+ def get_file_layer(self, filename):
+ layerdir = self.get_file_layerdir(filename)
+ if layerdir:
+ return self.get_layer_name(layerdir)
+ else:
+ return '?'
+
+ def get_file_layerdir(self, filename):
+ layer = bb.utils.get_file_layer(filename, self.tinfoil.config_data)
+ return self.bbfile_collections.get(layer, None)
+
+ def remove_layer_prefix(self, f):
+ """Remove the layer_dir prefix, e.g., f = /path/to/layer_dir/foo/blah, the
+ return value will be: layer_dir/foo/blah"""
+ f_layerdir = self.get_file_layerdir(f)
+ if not f_layerdir:
+ return f
+ prefix = os.path.join(os.path.dirname(f_layerdir), '')
+ return f[len(prefix):] if f.startswith(prefix) else f
+
+ def do_show_appends(self, args):
+ """list bbappend files and recipe files they apply to
+
+Lists recipes with the bbappends that apply to them as subitems.
+"""
+
+ logger.plain('=== Appended recipes ===')
+
+ pnlist = list(self.tinfoil.cooker_data.pkg_pn.keys())
+ pnlist.sort()
+ appends = False
+ for pn in pnlist:
+ if self.show_appends_for_pn(pn):
+ appends = True
+
+ if self.show_appends_for_skipped():
+ appends = True
+
+ if not appends:
+ logger.plain('No append files found')
+
+ def show_appends_for_pn(self, pn):
+ filenames = self.tinfoil.cooker_data.pkg_pn[pn]
+
+ best = bb.providers.findBestProvider(pn,
+ self.tinfoil.config_data,
+ self.tinfoil.cooker_data,
+ self.tinfoil.cooker_data.pkg_pn)
+ best_filename = os.path.basename(best[3])
+
+ return self.show_appends_output(filenames, best_filename)
+
+ def show_appends_for_skipped(self):
+ filenames = [os.path.basename(f)
+ for f in self.tinfoil.cooker.skiplist.keys()]
+ return self.show_appends_output(filenames, None, " (skipped)")
+
+ def show_appends_output(self, filenames, best_filename, name_suffix = ''):
+ appended, missing = self.get_appends_for_files(filenames)
+ if appended:
+ for basename, appends in appended:
+ logger.plain('%s%s:', basename, name_suffix)
+ for append in appends:
+ logger.plain(' %s', append)
+
+ if best_filename:
+ if best_filename in missing:
+ logger.warning('%s: missing append for preferred version',
+ best_filename)
+ return True
+ else:
+ return False
+
+ def get_appends_for_files(self, filenames):
+ appended, notappended = [], []
+ for filename in filenames:
+ _, cls, _ = bb.cache.virtualfn2realfn(filename)
+ if cls:
+ continue
+
+ basename = os.path.basename(filename)
+ appends = self.tinfoil.cooker.collection.get_file_appends(basename)
+ if appends:
+ appended.append((basename, list(appends)))
+ else:
+ notappended.append(basename)
+ return appended, notappended
+
+ def do_show_cross_depends(self, args):
+ """Show dependencies between recipes that cross layer boundaries.
+
+Figure out the dependencies between recipes that cross layer boundaries.
+
+NOTE: .bbappend files can impact the dependencies.
+"""
+ ignore_layers = (args.ignore or '').split(',')
+
+ pkg_fn = self.tinfoil.cooker_data.pkg_fn
+ bbpath = str(self.tinfoil.config_data.getVar('BBPATH', True))
+ self.require_re = re.compile(r"require\s+(.+)")
+ self.include_re = re.compile(r"include\s+(.+)")
+ self.inherit_re = re.compile(r"inherit\s+(.+)")
+
+ global_inherit = (self.tinfoil.config_data.getVar('INHERIT', True) or "").split()
+
+ # The bb's DEPENDS and RDEPENDS
+ for f in pkg_fn:
+ f = bb.cache.virtualfn2realfn(f)[0]
+ # Get the layername that the file is in
+ layername = self.get_file_layer(f)
+
+ # The DEPENDS
+ deps = self.tinfoil.cooker_data.deps[f]
+ for pn in deps:
+ if pn in self.tinfoil.cooker_data.pkg_pn:
+ best = bb.providers.findBestProvider(pn,
+ self.tinfoil.config_data,
+ self.tinfoil.cooker_data,
+ self.tinfoil.cooker_data.pkg_pn)
+ self.check_cross_depends("DEPENDS", layername, f, best[3], args.filenames, ignore_layers)
+
+ # The RDPENDS
+ all_rdeps = self.tinfoil.cooker_data.rundeps[f].values()
+ # Remove the duplicated or null one.
+ sorted_rdeps = {}
+ # The all_rdeps is the list in list, so we need two for loops
+ for k1 in all_rdeps:
+ for k2 in k1:
+ sorted_rdeps[k2] = 1
+ all_rdeps = sorted_rdeps.keys()
+ for rdep in all_rdeps:
+ all_p = bb.providers.getRuntimeProviders(self.tinfoil.cooker_data, rdep)
+ if all_p:
+ if f in all_p:
+ # The recipe provides this one itself, ignore
+ continue
+ best = bb.providers.filterProvidersRunTime(all_p, rdep,
+ self.tinfoil.config_data,
+ self.tinfoil.cooker_data)[0][0]
+ self.check_cross_depends("RDEPENDS", layername, f, best, args.filenames, ignore_layers)
+
+ # The RRECOMMENDS
+ all_rrecs = self.tinfoil.cooker_data.runrecs[f].values()
+ # Remove the duplicated or null one.
+ sorted_rrecs = {}
+ # The all_rrecs is the list in list, so we need two for loops
+ for k1 in all_rrecs:
+ for k2 in k1:
+ sorted_rrecs[k2] = 1
+ all_rrecs = sorted_rrecs.keys()
+ for rrec in all_rrecs:
+ all_p = bb.providers.getRuntimeProviders(self.tinfoil.cooker_data, rrec)
+ if all_p:
+ if f in all_p:
+ # The recipe provides this one itself, ignore
+ continue
+ best = bb.providers.filterProvidersRunTime(all_p, rrec,
+ self.tinfoil.config_data,
+ self.tinfoil.cooker_data)[0][0]
+ self.check_cross_depends("RRECOMMENDS", layername, f, best, args.filenames, ignore_layers)
+
+ # The inherit class
+ cls_re = re.compile('classes/')
+ if f in self.tinfoil.cooker_data.inherits:
+ inherits = self.tinfoil.cooker_data.inherits[f]
+ for cls in inherits:
+ # The inherits' format is [classes/cls, /path/to/classes/cls]
+ # ignore the classes/cls.
+ if not cls_re.match(cls):
+ classname = os.path.splitext(os.path.basename(cls))[0]
+ if classname in global_inherit:
+ continue
+ inherit_layername = self.get_file_layer(cls)
+ if inherit_layername != layername and not inherit_layername in ignore_layers:
+ if not args.filenames:
+ f_short = self.remove_layer_prefix(f)
+ cls = self.remove_layer_prefix(cls)
+ else:
+ f_short = f
+ logger.plain("%s inherits %s" % (f_short, cls))
+
+ # The 'require/include xxx' in the bb file
+ pv_re = re.compile(r"\${PV}")
+ with open(f, 'r') as fnfile:
+ line = fnfile.readline()
+ while line:
+ m, keyword = self.match_require_include(line)
+ # Found the 'require/include xxxx'
+ if m:
+ needed_file = m.group(1)
+ # Replace the ${PV} with the real PV
+ if pv_re.search(needed_file) and f in self.tinfoil.cooker_data.pkg_pepvpr:
+ pv = self.tinfoil.cooker_data.pkg_pepvpr[f][1]
+ needed_file = re.sub(r"\${PV}", pv, needed_file)
+ self.print_cross_files(bbpath, keyword, layername, f, needed_file, args.filenames, ignore_layers)
+ line = fnfile.readline()
+
+ # The "require/include xxx" in conf/machine/*.conf, .inc and .bbclass
+ conf_re = re.compile(".*/conf/machine/[^\/]*\.conf$")
+ inc_re = re.compile(".*\.inc$")
+ # The "inherit xxx" in .bbclass
+ bbclass_re = re.compile(".*\.bbclass$")
+ for layerdir in self.bblayers:
+ layername = self.get_layer_name(layerdir)
+ for dirpath, dirnames, filenames in os.walk(layerdir):
+ for name in filenames:
+ f = os.path.join(dirpath, name)
+ s = conf_re.match(f) or inc_re.match(f) or bbclass_re.match(f)
+ if s:
+ with open(f, 'r') as ffile:
+ line = ffile.readline()
+ while line:
+ m, keyword = self.match_require_include(line)
+ # Only bbclass has the "inherit xxx" here.
+ bbclass=""
+ if not m and f.endswith(".bbclass"):
+ m, keyword = self.match_inherit(line)
+ bbclass=".bbclass"
+ # Find a 'require/include xxxx'
+ if m:
+ self.print_cross_files(bbpath, keyword, layername, f, m.group(1) + bbclass, args.filenames, ignore_layers)
+ line = ffile.readline()
+
+ def print_cross_files(self, bbpath, keyword, layername, f, needed_filename, show_filenames, ignore_layers):
+ """Print the depends that crosses a layer boundary"""
+ needed_file = bb.utils.which(bbpath, needed_filename)
+ if needed_file:
+ # Which layer is this file from
+ needed_layername = self.get_file_layer(needed_file)
+ if needed_layername != layername and not needed_layername in ignore_layers:
+ if not show_filenames:
+ f = self.remove_layer_prefix(f)
+ needed_file = self.remove_layer_prefix(needed_file)
+ logger.plain("%s %s %s" %(f, keyword, needed_file))
+
+ def match_inherit(self, line):
+ """Match the inherit xxx line"""
+ return (self.inherit_re.match(line), "inherits")
+
+ def match_require_include(self, line):
+ """Match the require/include xxx line"""
+ m = self.require_re.match(line)
+ keyword = "requires"
+ if not m:
+ m = self.include_re.match(line)
+ keyword = "includes"
+ return (m, keyword)
+
+ def check_cross_depends(self, keyword, layername, f, needed_file, show_filenames, ignore_layers):
+ """Print the DEPENDS/RDEPENDS file that crosses a layer boundary"""
+ best_realfn = bb.cache.virtualfn2realfn(needed_file)[0]
+ needed_layername = self.get_file_layer(best_realfn)
+ if needed_layername != layername and not needed_layername in ignore_layers:
+ if not show_filenames:
+ f = self.remove_layer_prefix(f)
+ best_realfn = self.remove_layer_prefix(best_realfn)
+
+ logger.plain("%s %s %s" % (f, keyword, best_realfn))
+
+ def register_commands(self, sp):
+ self.add_command(sp, 'show-layers', self.do_show_layers, parserecipes=False)
+
+ parser_show_overlayed = self.add_command(sp, 'show-overlayed', self.do_show_overlayed)
+ parser_show_overlayed.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
+ parser_show_overlayed.add_argument('-s', '--same-version', help='only list overlayed recipes where the version is the same', action='store_true')
+
+ parser_show_recipes = self.add_command(sp, 'show-recipes', self.do_show_recipes)
+ parser_show_recipes.add_argument('-f', '--filenames', help='instead of the default formatting, list filenames of higher priority recipes with the ones they overlay indented underneath', action='store_true')
+ parser_show_recipes.add_argument('-m', '--multiple', help='only list where multiple recipes (in the same layer or different layers) exist for the same recipe name', action='store_true')
+ parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class', metavar='CLASS', default='')
+ parser_show_recipes.add_argument('pnspec', nargs='?', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
+
+ self.add_command(sp, 'show-appends', self.do_show_appends)
+
+ parser_show_cross_depends = self.add_command(sp, 'show-cross-depends', self.do_show_cross_depends)
+ parser_show_cross_depends.add_argument('-f', '--filenames', help='show full file path', action='store_true')
+ parser_show_cross_depends.add_argument('-i', '--ignore', help='ignore dependencies on items in the specified layer(s) (split multiple layer names with commas, no spaces)', metavar='LAYERNAME')
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/__init__.py b/import-layers/yocto-poky/bitbake/lib/bs4/__init__.py
index 7ba34269a..f6fdfd50b 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/__init__.py
@@ -17,8 +17,8 @@ http://www.crummy.com/software/BeautifulSoup/bs4/doc/
"""
__author__ = "Leonard Richardson (leonardr@segfault.org)"
-__version__ = "4.3.2"
-__copyright__ = "Copyright (c) 2004-2013 Leonard Richardson"
+__version__ = "4.4.1"
+__copyright__ = "Copyright (c) 2004-2015 Leonard Richardson"
__license__ = "MIT"
__all__ = ['BeautifulSoup']
@@ -45,7 +45,7 @@ from .element import (
# The very first thing we do is give a useful error if someone is
# running this code under Python 3 without converting it.
-syntax_error = u'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work. You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
+'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'!='You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
class BeautifulSoup(Tag):
"""
@@ -69,7 +69,7 @@ class BeautifulSoup(Tag):
like HTML's <br> tag), call handle_starttag and then
handle_endtag.
"""
- ROOT_TAG_NAME = u'[document]'
+ ROOT_TAG_NAME = '[document]'
# If the end-user gives no indication which tree builder they
# want, look for one with these features.
@@ -77,8 +77,11 @@ class BeautifulSoup(Tag):
ASCII_SPACES = '\x20\x0a\x09\x0c\x0d'
+ NO_PARSER_SPECIFIED_WARNING = "No parser was explicitly specified, so I'm using the best available %(markup_type)s parser for this system (\"%(parser)s\"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.\n\nTo get rid of this warning, change this:\n\n BeautifulSoup([your markup])\n\nto this:\n\n BeautifulSoup([your markup], \"%(parser)s\")\n"
+
def __init__(self, markup="", features=None, builder=None,
- parse_only=None, from_encoding=None, **kwargs):
+ parse_only=None, from_encoding=None, exclude_encodings=None,
+ **kwargs):
"""The Soup object is initialized as the 'root tag', and the
provided markup (which can be a string or a file-like object)
is fed into the underlying parser."""
@@ -114,9 +117,9 @@ class BeautifulSoup(Tag):
del kwargs['isHTML']
warnings.warn(
"BS4 does not respect the isHTML argument to the "
- "BeautifulSoup constructor. You can pass in features='html' "
- "or features='xml' to get a builder capable of handling "
- "one or the other.")
+ "BeautifulSoup constructor. Suggest you use "
+ "features='lxml' for HTML and features='lxml-xml' for "
+ "XML.")
def deprecated_argument(old_name, new_name):
if old_name in kwargs:
@@ -135,12 +138,13 @@ class BeautifulSoup(Tag):
"fromEncoding", "from_encoding")
if len(kwargs) > 0:
- arg = kwargs.keys().pop()
+ arg = list(kwargs.keys()).pop()
raise TypeError(
"__init__() got an unexpected keyword argument '%s'" % arg)
if builder is None:
- if isinstance(features, basestring):
+ original_features = features
+ if isinstance(features, str):
features = [features]
if features is None or len(features) == 0:
features = self.DEFAULT_BUILDER_FEATURES
@@ -151,6 +155,16 @@ class BeautifulSoup(Tag):
"requested: %s. Do you need to install a parser library?"
% ",".join(features))
builder = builder_class()
+ if not (original_features == builder.NAME or
+ original_features in builder.ALTERNATE_NAMES):
+ if builder.is_xml:
+ markup_type = "XML"
+ else:
+ markup_type = "HTML"
+ warnings.warn(self.NO_PARSER_SPECIFIED_WARNING % dict(
+ parser=builder.NAME,
+ markup_type=markup_type))
+
self.builder = builder
self.is_xml = builder.is_xml
self.builder.soup = self
@@ -164,7 +178,7 @@ class BeautifulSoup(Tag):
# involving passing non-markup to Beautiful Soup.
# Beautiful Soup will still parse the input as markup,
# just in case that's what the user really wants.
- if (isinstance(markup, unicode)
+ if (isinstance(markup, str)
and not os.path.supports_unicode_filenames):
possible_filename = markup.encode("utf8")
else:
@@ -172,25 +186,30 @@ class BeautifulSoup(Tag):
is_file = False
try:
is_file = os.path.exists(possible_filename)
- except Exception, e:
+ except Exception as e:
# This is almost certainly a problem involving
# characters not valid in filenames on this
# system. Just let it go.
pass
if is_file:
+ if isinstance(markup, str):
+ markup = markup.encode("utf8")
warnings.warn(
'"%s" looks like a filename, not markup. You should probably open this file and pass the filehandle into Beautiful Soup.' % markup)
if markup[:5] == "http:" or markup[:6] == "https:":
# TODO: This is ugly but I couldn't get it to work in
# Python 3 otherwise.
if ((isinstance(markup, bytes) and not b' ' in markup)
- or (isinstance(markup, unicode) and not u' ' in markup)):
+ or (isinstance(markup, str) and not ' ' in markup)):
+ if isinstance(markup, str):
+ markup = markup.encode("utf8")
warnings.warn(
'"%s" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client to get the document behind the URL, and feed that document to Beautiful Soup.' % markup)
for (self.markup, self.original_encoding, self.declared_html_encoding,
self.contains_replacement_characters) in (
- self.builder.prepare_markup(markup, from_encoding)):
+ self.builder.prepare_markup(
+ markup, from_encoding, exclude_encodings=exclude_encodings)):
self.reset()
try:
self._feed()
@@ -203,6 +222,16 @@ class BeautifulSoup(Tag):
self.markup = None
self.builder.soup = None
+ def __copy__(self):
+ return type(self)(self.encode(), builder=self.builder)
+
+ def __getstate__(self):
+ # Frequently a tree builder can't be pickled.
+ d = dict(self.__dict__)
+ if 'builder' in d and not self.builder.picklable:
+ del d['builder']
+ return d
+
def _feed(self):
# Convert the document to Unicode.
self.builder.reset()
@@ -229,9 +258,7 @@ class BeautifulSoup(Tag):
def new_string(self, s, subclass=NavigableString):
"""Create a new NavigableString associated with this soup."""
- navigable = subclass(s)
- navigable.setup()
- return navigable
+ return subclass(s)
def insert_before(self, successor):
raise NotImplementedError("BeautifulSoup objects don't support insert_before().")
@@ -259,7 +286,7 @@ class BeautifulSoup(Tag):
def endData(self, containerClass=NavigableString):
if self.current_data:
- current_data = u''.join(self.current_data)
+ current_data = ''.join(self.current_data)
# If whitespace is not preserved, and this string contains
# nothing but ASCII spaces, replace it with a single space
# or newline.
@@ -290,14 +317,49 @@ class BeautifulSoup(Tag):
def object_was_parsed(self, o, parent=None, most_recent_element=None):
"""Add an object to the parse tree."""
parent = parent or self.currentTag
- most_recent_element = most_recent_element or self._most_recent_element
- o.setup(parent, most_recent_element)
+ previous_element = most_recent_element or self._most_recent_element
+
+ next_element = previous_sibling = next_sibling = None
+ if isinstance(o, Tag):
+ next_element = o.next_element
+ next_sibling = o.next_sibling
+ previous_sibling = o.previous_sibling
+ if not previous_element:
+ previous_element = o.previous_element
+
+ o.setup(parent, previous_element, next_element, previous_sibling, next_sibling)
- if most_recent_element is not None:
- most_recent_element.next_element = o
self._most_recent_element = o
parent.contents.append(o)
+ if parent.next_sibling:
+ # This node is being inserted into an element that has
+ # already been parsed. Deal with any dangling references.
+ index = parent.contents.index(o)
+ if index == 0:
+ previous_element = parent
+ previous_sibling = None
+ else:
+ previous_element = previous_sibling = parent.contents[index-1]
+ if index == len(parent.contents)-1:
+ next_element = parent.next_sibling
+ next_sibling = None
+ else:
+ next_element = next_sibling = parent.contents[index+1]
+
+ o.previous_element = previous_element
+ if previous_element:
+ previous_element.next_element = o
+ o.next_element = next_element
+ if next_element:
+ next_element.previous_element = o
+ o.next_sibling = next_sibling
+ if next_sibling:
+ next_sibling.previous_sibling = o
+ o.previous_sibling = previous_sibling
+ if previous_sibling:
+ previous_sibling.next_sibling = o
+
def _popToTag(self, name, nsprefix=None, inclusivePop=True):
"""Pops the tag stack up to and including the most recent
instance of the given tag. If inclusivePop is false, pops the tag
@@ -367,9 +429,9 @@ class BeautifulSoup(Tag):
encoding_part = ''
if eventual_encoding != None:
encoding_part = ' encoding="%s"' % eventual_encoding
- prefix = u'<?xml version="1.0"%s?>\n' % encoding_part
+ prefix = '<?xml version="1.0"%s?>\n' % encoding_part
else:
- prefix = u''
+ prefix = ''
if not pretty_print:
indent_level = None
else:
@@ -403,4 +465,4 @@ class FeatureNotFound(ValueError):
if __name__ == '__main__':
import sys
soup = BeautifulSoup(sys.stdin)
- print soup.prettify()
+ print(soup.prettify())
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/builder/__init__.py b/import-layers/yocto-poky/bitbake/lib/bs4/builder/__init__.py
index 740f5f29c..6ccd4d23d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/builder/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/builder/__init__.py
@@ -80,9 +80,12 @@ builder_registry = TreeBuilderRegistry()
class TreeBuilder(object):
"""Turn a document into a Beautiful Soup object tree."""
+ NAME = "[Unknown tree builder]"
+ ALTERNATE_NAMES = []
features = []
is_xml = False
+ picklable = False
preserve_whitespace_tags = set()
empty_element_tags = None # A tag will be considered an empty-element
# tag when and only when it has no contents.
@@ -153,13 +156,13 @@ class TreeBuilder(object):
universal = self.cdata_list_attributes.get('*', [])
tag_specific = self.cdata_list_attributes.get(
tag_name.lower(), None)
- for attr in attrs.keys():
+ for attr in list(attrs.keys()):
if attr in universal or (tag_specific and attr in tag_specific):
# We have a "class"-type attribute whose string
# value is a whitespace-separated list of
# values. Split it into a list.
value = attrs[attr]
- if isinstance(value, basestring):
+ if isinstance(value, str):
values = whitespace_re.split(value)
else:
# html5lib sometimes calls setAttributes twice
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_html5lib.py b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_html5lib.py
index 7de36ae75..f0e5924eb 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_html5lib.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_html5lib.py
@@ -2,6 +2,7 @@ __all__ = [
'HTML5TreeBuilder',
]
+from pdb import set_trace
import warnings
from bs4.builder import (
PERMISSIVE,
@@ -9,7 +10,10 @@ from bs4.builder import (
HTML_5,
HTMLTreeBuilder,
)
-from bs4.element import NamespacedAttribute
+from bs4.element import (
+ NamespacedAttribute,
+ whitespace_re,
+)
import html5lib
from html5lib.constants import namespaces
from bs4.element import (
@@ -22,11 +26,20 @@ from bs4.element import (
class HTML5TreeBuilder(HTMLTreeBuilder):
"""Use html5lib to build a tree."""
- features = ['html5lib', PERMISSIVE, HTML_5, HTML]
+ NAME = "html5lib"
+
+ features = [NAME, PERMISSIVE, HTML_5, HTML]
- def prepare_markup(self, markup, user_specified_encoding):
+ def prepare_markup(self, markup, user_specified_encoding,
+ document_declared_encoding=None, exclude_encodings=None):
# Store the user-specified encoding for use later on.
self.user_specified_encoding = user_specified_encoding
+
+ # document_declared_encoding and exclude_encodings aren't used
+ # ATM because the html5lib TreeBuilder doesn't use
+ # UnicodeDammit.
+ if exclude_encodings:
+ warnings.warn("You provided a value for exclude_encoding, but the html5lib tree builder doesn't support exclude_encoding.")
yield (markup, None, None, False)
# These methods are defined by Beautiful Soup.
@@ -37,7 +50,7 @@ class HTML5TreeBuilder(HTMLTreeBuilder):
doc = parser.parse(markup, encoding=self.user_specified_encoding)
# Set the character encoding detected by the tokenizer.
- if isinstance(markup, unicode):
+ if isinstance(markup, str):
# We need to special-case this because html5lib sets
# charEncoding to UTF-8 if it gets Unicode input.
doc.original_encoding = None
@@ -51,7 +64,7 @@ class HTML5TreeBuilder(HTMLTreeBuilder):
def test_fragment_to_document(self, fragment):
"""See `TreeBuilder`."""
- return u'<html><head></head><body>%s</body></html>' % fragment
+ return '<html><head></head><body>%s</body></html>' % fragment
class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
@@ -101,7 +114,16 @@ class AttrList(object):
def __iter__(self):
return list(self.attrs.items()).__iter__()
def __setitem__(self, name, value):
- "set attr", name, value
+ # If this attribute is a multi-valued attribute for this element,
+ # turn its value into a list.
+ list_attr = HTML5TreeBuilder.cdata_list_attributes
+ if (name in list_attr['*']
+ or (self.element.name in list_attr
+ and name in list_attr[self.element.name])):
+ # A node that is being cloned may have already undergone
+ # this procedure.
+ if not isinstance(value, list):
+ value = whitespace_re.split(value)
self.element[name] = value
def items(self):
return list(self.attrs.items())
@@ -124,7 +146,7 @@ class Element(html5lib.treebuilders._base.Node):
def appendChild(self, node):
string_child = child = None
- if isinstance(node, basestring):
+ if isinstance(node, str):
# Some other piece of code decided to pass in a string
# instead of creating a TextElement object to contain the
# string.
@@ -139,7 +161,7 @@ class Element(html5lib.treebuilders._base.Node):
else:
child = node.element
- if not isinstance(child, basestring) and child.parent is not None:
+ if not isinstance(child, str) and child.parent is not None:
node.element.extract()
if (string_child and self.element.contents
@@ -152,7 +174,7 @@ class Element(html5lib.treebuilders._base.Node):
old_element.replace_with(new_element)
self.soup._most_recent_element = new_element
else:
- if isinstance(node, basestring):
+ if isinstance(node, str):
# Create a brand new NavigableString from this string.
child = self.soup.new_string(node)
@@ -161,6 +183,12 @@ class Element(html5lib.treebuilders._base.Node):
# immediately after the parent, if it has no children.)
if self.element.contents:
most_recent_element = self.element._last_descendant(False)
+ elif self.element.next_element is not None:
+ # Something from further ahead in the parse tree is
+ # being inserted into this earlier element. This is
+ # very annoying because it means an expensive search
+ # for the last element in the tree.
+ most_recent_element = self.soup._last_descendant()
else:
most_recent_element = self.element
@@ -172,6 +200,7 @@ class Element(html5lib.treebuilders._base.Node):
return AttrList(self.element)
def setAttributes(self, attributes):
+
if attributes is not None and len(attributes) > 0:
converted_attributes = []
@@ -183,7 +212,7 @@ class Element(html5lib.treebuilders._base.Node):
self.soup.builder._replace_cdata_list_attribute_values(
self.name, attributes)
- for name, value in attributes.items():
+ for name, value in list(attributes.items()):
self.element[name] = value
# The attributes may contain variables that need substitution.
@@ -218,6 +247,9 @@ class Element(html5lib.treebuilders._base.Node):
def reparentChildren(self, new_parent):
"""Move all of this tag's children into another tag."""
+ # print "MOVE", self.element.contents
+ # print "FROM", self.element
+ # print "TO", new_parent.element
element = self.element
new_parent_element = new_parent.element
# Determine what this tag's next_element will be once all the children
@@ -236,17 +268,28 @@ class Element(html5lib.treebuilders._base.Node):
new_parents_last_descendant_next_element = new_parent_element.next_element
to_append = element.contents
- append_after = new_parent.element.contents
+ append_after = new_parent_element.contents
if len(to_append) > 0:
# Set the first child's previous_element and previous_sibling
# to elements within the new parent
first_child = to_append[0]
- first_child.previous_element = new_parents_last_descendant
+ if new_parents_last_descendant:
+ first_child.previous_element = new_parents_last_descendant
+ else:
+ first_child.previous_element = new_parent_element
first_child.previous_sibling = new_parents_last_child
+ if new_parents_last_descendant:
+ new_parents_last_descendant.next_element = first_child
+ else:
+ new_parent_element.next_element = first_child
+ if new_parents_last_child:
+ new_parents_last_child.next_sibling = first_child
# Fix the last child's next_element and next_sibling
last_child = to_append[-1]
last_child.next_element = new_parents_last_descendant_next_element
+ if new_parents_last_descendant_next_element:
+ new_parents_last_descendant_next_element.previous_element = last_child
last_child.next_sibling = None
for child in to_append:
@@ -257,6 +300,10 @@ class Element(html5lib.treebuilders._base.Node):
element.contents = []
element.next_element = final_next_element
+ # print "DONE WITH MOVE"
+ # print "FROM", self.element
+ # print "TO", new_parent_element
+
def cloneNode(self):
tag = self.soup.new_tag(self.element.name, self.namespace)
node = Element(tag, self.soup, self.namespace)
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_htmlparser.py b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_htmlparser.py
index ca8d8b892..bb0a63f2f 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_htmlparser.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_htmlparser.py
@@ -4,10 +4,16 @@ __all__ = [
'HTMLParserTreeBuilder',
]
-from HTMLParser import (
- HTMLParser,
- HTMLParseError,
- )
+from html.parser import HTMLParser
+
+try:
+ from html.parser import HTMLParseError
+except ImportError as e:
+ # HTMLParseError is removed in Python 3.5. Since it can never be
+ # thrown in 3.5, we can just define our own class as a placeholder.
+ class HTMLParseError(Exception):
+ pass
+
import sys
import warnings
@@ -19,10 +25,10 @@ import warnings
# At the end of this file, we monkeypatch HTMLParser so that
# strict=True works well on Python 3.2.2.
major, minor, release = sys.version_info[:3]
-CONSTRUCTOR_TAKES_STRICT = (
- major > 3
- or (major == 3 and minor > 2)
- or (major == 3 and minor == 2 and release >= 3))
+CONSTRUCTOR_TAKES_STRICT = major == 3 and minor == 2 and release >= 3
+CONSTRUCTOR_STRICT_IS_DEPRECATED = major == 3 and minor == 3
+CONSTRUCTOR_TAKES_CONVERT_CHARREFS = major == 3 and minor >= 4
+
from bs4.element import (
CData,
@@ -63,7 +69,8 @@ class BeautifulSoupHTMLParser(HTMLParser):
def handle_charref(self, name):
# XXX workaround for a bug in HTMLParser. Remove this once
- # it's fixed.
+ # it's fixed in all supported versions.
+ # http://bugs.python.org/issue13633
if name.startswith('x'):
real_name = int(name.lstrip('x'), 16)
elif name.startswith('X'):
@@ -72,9 +79,9 @@ class BeautifulSoupHTMLParser(HTMLParser):
real_name = int(name)
try:
- data = unichr(real_name)
- except (ValueError, OverflowError), e:
- data = u"\N{REPLACEMENT CHARACTER}"
+ data = chr(real_name)
+ except (ValueError, OverflowError) as e:
+ data = "\N{REPLACEMENT CHARACTER}"
self.handle_data(data)
@@ -113,14 +120,6 @@ class BeautifulSoupHTMLParser(HTMLParser):
def handle_pi(self, data):
self.soup.endData()
- if data.endswith("?") and data.lower().startswith("xml"):
- # "An XHTML processing instruction using the trailing '?'
- # will cause the '?' to be included in data." - HTMLParser
- # docs.
- #
- # Strip the question mark so we don't end up with two
- # question marks.
- data = data[:-1]
self.soup.handle_data(data)
self.soup.endData(ProcessingInstruction)
@@ -128,26 +127,31 @@ class BeautifulSoupHTMLParser(HTMLParser):
class HTMLParserTreeBuilder(HTMLTreeBuilder):
is_xml = False
- features = [HTML, STRICT, HTMLPARSER]
+ picklable = True
+ NAME = HTMLPARSER
+ features = [NAME, HTML, STRICT]
def __init__(self, *args, **kwargs):
- if CONSTRUCTOR_TAKES_STRICT:
+ if CONSTRUCTOR_TAKES_STRICT and not CONSTRUCTOR_STRICT_IS_DEPRECATED:
kwargs['strict'] = False
+ if CONSTRUCTOR_TAKES_CONVERT_CHARREFS:
+ kwargs['convert_charrefs'] = False
self.parser_args = (args, kwargs)
def prepare_markup(self, markup, user_specified_encoding=None,
- document_declared_encoding=None):
+ document_declared_encoding=None, exclude_encodings=None):
"""
:return: A 4-tuple (markup, original encoding, encoding
declared within markup, whether any characters had to be
replaced with REPLACEMENT CHARACTER).
"""
- if isinstance(markup, unicode):
+ if isinstance(markup, str):
yield (markup, None, None, False)
return
try_encodings = [user_specified_encoding, document_declared_encoding]
- dammit = UnicodeDammit(markup, try_encodings, is_html=True)
+ dammit = UnicodeDammit(markup, try_encodings, is_html=True,
+ exclude_encodings=exclude_encodings)
yield (dammit.markup, dammit.original_encoding,
dammit.declared_html_encoding,
dammit.contains_replacement_characters)
@@ -158,7 +162,7 @@ class HTMLParserTreeBuilder(HTMLTreeBuilder):
parser.soup = self.soup
try:
parser.feed(markup)
- except HTMLParseError, e:
+ except HTMLParseError as e:
warnings.warn(RuntimeWarning(
"Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help."))
raise e
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_lxml.py b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_lxml.py
index fa5d49875..9c6c14ee6 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/builder/_lxml.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/builder/_lxml.py
@@ -4,10 +4,15 @@ __all__ = [
]
from io import BytesIO
-from StringIO import StringIO
+from io import StringIO
import collections
from lxml import etree
-from bs4.element import Comment, Doctype, NamespacedAttribute
+from bs4.element import (
+ Comment,
+ Doctype,
+ NamespacedAttribute,
+ ProcessingInstruction,
+)
from bs4.builder import (
FAST,
HTML,
@@ -25,8 +30,11 @@ class LXMLTreeBuilderForXML(TreeBuilder):
is_xml = True
+ NAME = "lxml-xml"
+ ALTERNATE_NAMES = ["xml"]
+
# Well, it's permissive by XML parser standards.
- features = [LXML, XML, FAST, PERMISSIVE]
+ features = [NAME, LXML, XML, FAST, PERMISSIVE]
CHUNK_SIZE = 512
@@ -70,6 +78,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
return (None, tag)
def prepare_markup(self, markup, user_specified_encoding=None,
+ exclude_encodings=None,
document_declared_encoding=None):
"""
:yield: A series of 4-tuples.
@@ -78,12 +87,12 @@ class LXMLTreeBuilderForXML(TreeBuilder):
Each 4-tuple represents a strategy for parsing the document.
"""
- if isinstance(markup, unicode):
+ if isinstance(markup, str):
# We were given Unicode. Maybe lxml can parse Unicode on
# this system?
yield markup, None, document_declared_encoding, False
- if isinstance(markup, unicode):
+ if isinstance(markup, str):
# No, apparently not. Convert the Unicode to UTF-8 and
# tell lxml to parse it as UTF-8.
yield (markup.encode("utf8"), "utf8",
@@ -95,14 +104,15 @@ class LXMLTreeBuilderForXML(TreeBuilder):
# the document as each one in turn.
is_html = not self.is_xml
try_encodings = [user_specified_encoding, document_declared_encoding]
- detector = EncodingDetector(markup, try_encodings, is_html)
+ detector = EncodingDetector(
+ markup, try_encodings, is_html, exclude_encodings)
for encoding in detector.encodings:
yield (detector.markup, encoding, document_declared_encoding, False)
def feed(self, markup):
if isinstance(markup, bytes):
markup = BytesIO(markup)
- elif isinstance(markup, unicode):
+ elif isinstance(markup, str):
markup = StringIO(markup)
# Call feed() at least once, even if the markup is empty,
@@ -117,7 +127,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
if len(data) != 0:
self.parser.feed(data)
self.parser.close()
- except (UnicodeDecodeError, LookupError, etree.ParserError), e:
+ except (UnicodeDecodeError, LookupError, etree.ParserError) as e:
raise ParserRejectedMarkup(str(e))
def close(self):
@@ -135,12 +145,12 @@ class LXMLTreeBuilderForXML(TreeBuilder):
self.nsmaps.append(None)
elif len(nsmap) > 0:
# A new namespace mapping has come into play.
- inverted_nsmap = dict((value, key) for key, value in nsmap.items())
+ inverted_nsmap = dict((value, key) for key, value in list(nsmap.items()))
self.nsmaps.append(inverted_nsmap)
# Also treat the namespace mapping as a set of attributes on the
# tag, so we can recreate it later.
attrs = attrs.copy()
- for prefix, namespace in nsmap.items():
+ for prefix, namespace in list(nsmap.items()):
attribute = NamespacedAttribute(
"xmlns", prefix, "http://www.w3.org/2000/xmlns/")
attrs[attribute] = namespace
@@ -149,7 +159,7 @@ class LXMLTreeBuilderForXML(TreeBuilder):
# from lxml with namespaces attached to their names, and
# turn then into NamespacedAttribute objects.
new_attrs = {}
- for attr, value in attrs.items():
+ for attr, value in list(attrs.items()):
namespace, attr = self._getNsTag(attr)
if namespace is None:
new_attrs[attr] = value
@@ -189,7 +199,9 @@ class LXMLTreeBuilderForXML(TreeBuilder):
self.nsmaps.pop()
def pi(self, target, data):
- pass
+ self.soup.endData()
+ self.soup.handle_data(target + ' ' + data)
+ self.soup.endData(ProcessingInstruction)
def data(self, content):
self.soup.handle_data(content)
@@ -207,12 +219,15 @@ class LXMLTreeBuilderForXML(TreeBuilder):
def test_fragment_to_document(self, fragment):
"""See `TreeBuilder`."""
- return u'<?xml version="1.0" encoding="utf-8"?>\n%s' % fragment
+ return '<?xml version="1.0" encoding="utf-8"?>\n%s' % fragment
class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
- features = [LXML, HTML, FAST, PERMISSIVE]
+ NAME = LXML
+ ALTERNATE_NAMES = ["lxml-html"]
+
+ features = ALTERNATE_NAMES + [NAME, HTML, FAST, PERMISSIVE]
is_xml = False
def default_parser(self, encoding):
@@ -224,10 +239,10 @@ class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML):
self.parser = self.parser_for(encoding)
self.parser.feed(markup)
self.parser.close()
- except (UnicodeDecodeError, LookupError, etree.ParserError), e:
+ except (UnicodeDecodeError, LookupError, etree.ParserError) as e:
raise ParserRejectedMarkup(str(e))
def test_fragment_to_document(self, fragment):
"""See `TreeBuilder`."""
- return u'<html><body>%s</body></html>' % fragment
+ return '<html><body>%s</body></html>' % fragment
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/dammit.py b/import-layers/yocto-poky/bitbake/lib/bs4/dammit.py
index 59640b7ce..68d419feb 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/dammit.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/dammit.py
@@ -3,12 +3,14 @@
This library converts a bytestream to Unicode through any means
necessary. It is heavily based on code from Mark Pilgrim's Universal
-Feed Parser. It works best on XML and XML, but it does not rewrite the
+Feed Parser. It works best on XML and HTML, but it does not rewrite the
XML or HTML to reflect a new encoding; that's the tree builder's job.
"""
+__license__ = "MIT"
+from pdb import set_trace
import codecs
-from htmlentitydefs import codepoint2name
+from html.entities import codepoint2name
import re
import logging
import string
@@ -56,7 +58,7 @@ class EntitySubstitution(object):
reverse_lookup = {}
characters_for_re = []
for codepoint, name in list(codepoint2name.items()):
- character = unichr(codepoint)
+ character = chr(codepoint)
if codepoint != 34:
# There's no point in turning the quotation mark into
# &quot;, unless it happens within an attribute value, which
@@ -212,8 +214,11 @@ class EncodingDetector:
5. Windows-1252.
"""
- def __init__(self, markup, override_encodings=None, is_html=False):
+ def __init__(self, markup, override_encodings=None, is_html=False,
+ exclude_encodings=None):
self.override_encodings = override_encodings or []
+ exclude_encodings = exclude_encodings or []
+ self.exclude_encodings = set([x.lower() for x in exclude_encodings])
self.chardet_encoding = None
self.is_html = is_html
self.declared_encoding = None
@@ -224,6 +229,8 @@ class EncodingDetector:
def _usable(self, encoding, tried):
if encoding is not None:
encoding = encoding.lower()
+ if encoding in self.exclude_encodings:
+ return False
if encoding not in tried:
tried.add(encoding)
return True
@@ -266,6 +273,9 @@ class EncodingDetector:
def strip_byte_order_mark(cls, data):
"""If a byte-order mark is present, strip it and return the encoding it implies."""
encoding = None
+ if isinstance(data, str):
+ # Unicode data cannot have a byte-order mark.
+ return data, encoding
if (len(data) >= 4) and (data[:2] == b'\xfe\xff') \
and (data[2:4] != '\x00\x00'):
encoding = 'utf-16be'
@@ -306,7 +316,7 @@ class EncodingDetector:
declared_encoding_match = html_meta_re.search(markup, endpos=html_endpos)
if declared_encoding_match is not None:
declared_encoding = declared_encoding_match.groups()[0].decode(
- 'ascii')
+ 'ascii', 'replace')
if declared_encoding:
return declared_encoding.lower()
return None
@@ -331,18 +341,19 @@ class UnicodeDammit:
]
def __init__(self, markup, override_encodings=[],
- smart_quotes_to=None, is_html=False):
+ smart_quotes_to=None, is_html=False, exclude_encodings=[]):
self.smart_quotes_to = smart_quotes_to
self.tried_encodings = []
self.contains_replacement_characters = False
self.is_html = is_html
- self.detector = EncodingDetector(markup, override_encodings, is_html)
+ self.detector = EncodingDetector(
+ markup, override_encodings, is_html, exclude_encodings)
# Short-circuit if the data is in Unicode to begin with.
- if isinstance(markup, unicode) or markup == '':
+ if isinstance(markup, str) or markup == '':
self.markup = markup
- self.unicode_markup = unicode(markup)
+ self.unicode_markup = str(markup)
self.original_encoding = None
return
@@ -425,7 +436,7 @@ class UnicodeDammit:
def _to_unicode(self, data, encoding, errors="strict"):
'''Given a string and its encoding, decodes the string into Unicode.
%encoding is a string recognized by encodings.aliases'''
- return unicode(data, encoding, errors)
+ return str(data, encoding, errors)
@property
def declared_html_encoding(self):
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/diagnose.py b/import-layers/yocto-poky/bitbake/lib/bs4/diagnose.py
index 4d0b00afa..083395fb4 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/diagnose.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/diagnose.py
@@ -1,7 +1,10 @@
"""Diagnostic functions, mainly for use when doing tech support."""
+
+__license__ = "MIT"
+
import cProfile
-from StringIO import StringIO
-from HTMLParser import HTMLParser
+from io import StringIO
+from html.parser import HTMLParser
import bs4
from bs4 import BeautifulSoup, __version__
from bs4.builder import builder_registry
@@ -17,8 +20,8 @@ import cProfile
def diagnose(data):
"""Diagnostic suite for isolating common problems."""
- print "Diagnostic running on Beautiful Soup %s" % __version__
- print "Python version %s" % sys.version
+ print("Diagnostic running on Beautiful Soup %s" % __version__)
+ print("Python version %s" % sys.version)
basic_parsers = ["html.parser", "html5lib", "lxml"]
for name in basic_parsers:
@@ -27,44 +30,53 @@ def diagnose(data):
break
else:
basic_parsers.remove(name)
- print (
+ print((
"I noticed that %s is not installed. Installing it may help." %
- name)
+ name))
if 'lxml' in basic_parsers:
basic_parsers.append(["lxml", "xml"])
- from lxml import etree
- print "Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION))
+ try:
+ from lxml import etree
+ print("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION)))
+ except ImportError as e:
+ print (
+ "lxml is not installed or couldn't be imported.")
+
if 'html5lib' in basic_parsers:
- import html5lib
- print "Found html5lib version %s" % html5lib.__version__
+ try:
+ import html5lib
+ print("Found html5lib version %s" % html5lib.__version__)
+ except ImportError as e:
+ print (
+ "html5lib is not installed or couldn't be imported.")
if hasattr(data, 'read'):
data = data.read()
elif os.path.exists(data):
- print '"%s" looks like a filename. Reading data from the file.' % data
+ print('"%s" looks like a filename. Reading data from the file.' % data)
data = open(data).read()
elif data.startswith("http:") or data.startswith("https:"):
- print '"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data
- print "You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup."
+ print('"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data)
+ print("You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup.")
return
- print
+ print()
for parser in basic_parsers:
- print "Trying to parse your markup with %s" % parser
+ print("Trying to parse your markup with %s" % parser)
success = False
try:
soup = BeautifulSoup(data, parser)
success = True
- except Exception, e:
- print "%s could not parse the markup." % parser
+ except Exception as e:
+ print("%s could not parse the markup." % parser)
traceback.print_exc()
if success:
- print "Here's what %s did with the markup:" % parser
- print soup.prettify()
+ print("Here's what %s did with the markup:" % parser)
+ print(soup.prettify())
- print "-" * 80
+ print("-" * 80)
def lxml_trace(data, html=True, **kwargs):
"""Print out the lxml events that occur during parsing.
@@ -74,7 +86,7 @@ def lxml_trace(data, html=True, **kwargs):
"""
from lxml import etree
for event, element in etree.iterparse(StringIO(data), html=html, **kwargs):
- print("%s, %4s, %s" % (event, element.tag, element.text))
+ print(("%s, %4s, %s" % (event, element.tag, element.text)))
class AnnouncingParser(HTMLParser):
"""Announces HTMLParser parse events, without doing anything else."""
@@ -156,9 +168,9 @@ def rdoc(num_elements=1000):
def benchmark_parsers(num_elements=100000):
"""Very basic head-to-head performance benchmark."""
- print "Comparative parser benchmark on Beautiful Soup %s" % __version__
+ print("Comparative parser benchmark on Beautiful Soup %s" % __version__)
data = rdoc(num_elements)
- print "Generated a large invalid HTML document (%d bytes)." % len(data)
+ print("Generated a large invalid HTML document (%d bytes)." % len(data))
for parser in ["lxml", ["lxml", "html"], "html5lib", "html.parser"]:
success = False
@@ -167,24 +179,24 @@ def benchmark_parsers(num_elements=100000):
soup = BeautifulSoup(data, parser)
b = time.time()
success = True
- except Exception, e:
- print "%s could not parse the markup." % parser
+ except Exception as e:
+ print("%s could not parse the markup." % parser)
traceback.print_exc()
if success:
- print "BS4+%s parsed the markup in %.2fs." % (parser, b-a)
+ print("BS4+%s parsed the markup in %.2fs." % (parser, b-a))
from lxml import etree
a = time.time()
etree.HTML(data)
b = time.time()
- print "Raw lxml parsed the markup in %.2fs." % (b-a)
+ print("Raw lxml parsed the markup in %.2fs." % (b-a))
import html5lib
parser = html5lib.HTMLParser()
a = time.time()
parser.parse(data)
b = time.time()
- print "Raw html5lib parsed the markup in %.2fs." % (b-a)
+ print("Raw html5lib parsed the markup in %.2fs." % (b-a))
def profile(num_elements=100000, parser="lxml"):
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/element.py b/import-layers/yocto-poky/bitbake/lib/bs4/element.py
index da9afdf48..0e62c2e10 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/element.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/element.py
@@ -1,3 +1,6 @@
+__license__ = "MIT"
+
+from pdb import set_trace
import collections
import re
import sys
@@ -21,22 +24,22 @@ def _alias(attr):
return alias
-class NamespacedAttribute(unicode):
+class NamespacedAttribute(str):
def __new__(cls, prefix, name, namespace=None):
if name is None:
- obj = unicode.__new__(cls, prefix)
+ obj = str.__new__(cls, prefix)
elif prefix is None:
# Not really namespaced.
- obj = unicode.__new__(cls, name)
+ obj = str.__new__(cls, name)
else:
- obj = unicode.__new__(cls, prefix + ":" + name)
+ obj = str.__new__(cls, prefix + ":" + name)
obj.prefix = prefix
obj.name = name
obj.namespace = namespace
return obj
-class AttributeValueWithCharsetSubstitution(unicode):
+class AttributeValueWithCharsetSubstitution(str):
"""A stand-in object for a character encoding specified in HTML."""
class CharsetMetaAttributeValue(AttributeValueWithCharsetSubstitution):
@@ -47,7 +50,7 @@ class CharsetMetaAttributeValue(AttributeValueWithCharsetSubstitution):
"""
def __new__(cls, original_value):
- obj = unicode.__new__(cls, original_value)
+ obj = str.__new__(cls, original_value)
obj.original_value = original_value
return obj
@@ -70,9 +73,9 @@ class ContentMetaAttributeValue(AttributeValueWithCharsetSubstitution):
match = cls.CHARSET_RE.search(original_value)
if match is None:
# No substitution necessary.
- return unicode.__new__(unicode, original_value)
+ return str.__new__(str, original_value)
- obj = unicode.__new__(cls, original_value)
+ obj = str.__new__(cls, original_value)
obj.original_value = original_value
return obj
@@ -152,7 +155,7 @@ class PageElement(object):
def format_string(self, s, formatter='minimal'):
"""Format the given string using the given formatter."""
- if not callable(formatter):
+ if not isinstance(formatter, collections.Callable):
formatter = self._formatter_for_name(formatter)
if formatter is None:
output = s
@@ -185,24 +188,40 @@ class PageElement(object):
return self.HTML_FORMATTERS.get(
name, HTMLAwareEntitySubstitution.substitute_xml)
- def setup(self, parent=None, previous_element=None):
+ def setup(self, parent=None, previous_element=None, next_element=None,
+ previous_sibling=None, next_sibling=None):
"""Sets up the initial relations between this element and
other elements."""
self.parent = parent
+
self.previous_element = previous_element
if previous_element is not None:
self.previous_element.next_element = self
- self.next_element = None
- self.previous_sibling = None
- self.next_sibling = None
- if self.parent is not None and self.parent.contents:
- self.previous_sibling = self.parent.contents[-1]
+
+ self.next_element = next_element
+ if self.next_element:
+ self.next_element.previous_element = self
+
+ self.next_sibling = next_sibling
+ if self.next_sibling:
+ self.next_sibling.previous_sibling = self
+
+ if (not previous_sibling
+ and self.parent is not None and self.parent.contents):
+ previous_sibling = self.parent.contents[-1]
+
+ self.previous_sibling = previous_sibling
+ if previous_sibling:
self.previous_sibling.next_sibling = self
nextSibling = _alias("next_sibling") # BS3
previousSibling = _alias("previous_sibling") # BS3
def replace_with(self, replace_with):
+ if not self.parent:
+ raise ValueError(
+ "Cannot replace one element with another when the"
+ "element to be replaced is not part of a tree.")
if replace_with is self:
return
if replace_with is self.parent:
@@ -216,6 +235,10 @@ class PageElement(object):
def unwrap(self):
my_parent = self.parent
+ if not self.parent:
+ raise ValueError(
+ "Cannot replace an element with its contents when that"
+ "element is not part of a tree.")
my_index = self.parent.index(self)
self.extract()
for child in reversed(self.contents[:]):
@@ -240,17 +263,20 @@ class PageElement(object):
last_child = self._last_descendant()
next_element = last_child.next_element
- if self.previous_element is not None:
+ if (self.previous_element is not None and
+ self.previous_element is not next_element):
self.previous_element.next_element = next_element
- if next_element is not None:
+ if next_element is not None and next_element is not self.previous_element:
next_element.previous_element = self.previous_element
self.previous_element = None
last_child.next_element = None
self.parent = None
- if self.previous_sibling is not None:
+ if (self.previous_sibling is not None
+ and self.previous_sibling is not self.next_sibling):
self.previous_sibling.next_sibling = self.next_sibling
- if self.next_sibling is not None:
+ if (self.next_sibling is not None
+ and self.next_sibling is not self.previous_sibling):
self.next_sibling.previous_sibling = self.previous_sibling
self.previous_sibling = self.next_sibling = None
return self
@@ -263,16 +289,18 @@ class PageElement(object):
last_child = self
while isinstance(last_child, Tag) and last_child.contents:
last_child = last_child.contents[-1]
- if not accept_self and last_child == self:
+ if not accept_self and last_child is self:
last_child = None
return last_child
# BS3: Not part of the API!
_lastRecursiveChild = _last_descendant
def insert(self, position, new_child):
+ if new_child is None:
+ raise ValueError("Cannot insert None into a tag.")
if new_child is self:
raise ValueError("Cannot insert a tag into itself.")
- if (isinstance(new_child, basestring)
+ if (isinstance(new_child, str)
and not isinstance(new_child, NavigableString)):
new_child = NavigableString(new_child)
@@ -478,6 +506,10 @@ class PageElement(object):
def _find_all(self, name, attrs, text, limit, generator, **kwargs):
"Iterates over a generator looking for things that match."
+ if text is None and 'string' in kwargs:
+ text = kwargs['string']
+ del kwargs['string']
+
if isinstance(name, SoupStrainer):
strainer = name
else:
@@ -489,7 +521,7 @@ class PageElement(object):
result = (element for element in generator
if isinstance(element, Tag))
return ResultSet(strainer, result)
- elif isinstance(name, basestring):
+ elif isinstance(name, str):
# Optimization to find all tags with a given name.
result = (element for element in generator
if isinstance(element, Tag)
@@ -548,17 +580,17 @@ class PageElement(object):
# Methods for supporting CSS selectors.
- tag_name_re = re.compile('^[a-z0-9]+$')
+ tag_name_re = re.compile('^[a-zA-Z0-9][-.a-zA-Z0-9:_]*$')
- # /^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
- # \---/ \---/\-------------/ \-------/
- # | | | |
- # | | | The value
- # | | ~,|,^,$,* or =
- # | Attribute
+ # /^([a-zA-Z0-9][-.a-zA-Z0-9:_]*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/
+ # \---------------------------/ \---/\-------------/ \-------/
+ # | | | |
+ # | | | The value
+ # | | ~,|,^,$,* or =
+ # | Attribute
# Tag
attribselect_re = re.compile(
- r'^(?P<tag>\w+)?\[(?P<attribute>\w+)(?P<operator>[=~\|\^\$\*]?)' +
+ r'^(?P<tag>[a-zA-Z0-9][-.a-zA-Z0-9:_]*)?\[(?P<attribute>[\w-]+)(?P<operator>[=~\|\^\$\*]?)' +
r'=?"?(?P<value>[^\]"]*)"?\]$'
)
@@ -640,7 +672,7 @@ class PageElement(object):
return self.parents
-class NavigableString(unicode, PageElement):
+class NavigableString(str, PageElement):
PREFIX = ''
SUFFIX = ''
@@ -653,15 +685,21 @@ class NavigableString(unicode, PageElement):
passed in to the superclass's __new__ or the superclass won't know
how to handle non-ASCII characters.
"""
- if isinstance(value, unicode):
- return unicode.__new__(cls, value)
- return unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
+ if isinstance(value, str):
+ u = str.__new__(cls, value)
+ else:
+ u = str.__new__(cls, value, DEFAULT_OUTPUT_ENCODING)
+ u.setup()
+ return u
def __copy__(self):
- return self
+ """A copy of a NavigableString has the same contents and class
+ as the original, but it is not connected to the parse tree.
+ """
+ return type(self)(self)
def __getnewargs__(self):
- return (unicode(self),)
+ return (str(self),)
def __getattr__(self, attr):
"""text.string gives you text. This is for backwards
@@ -701,23 +739,23 @@ class PreformattedString(NavigableString):
class CData(PreformattedString):
- PREFIX = u'<![CDATA['
- SUFFIX = u']]>'
+ PREFIX = '<![CDATA['
+ SUFFIX = ']]>'
class ProcessingInstruction(PreformattedString):
- PREFIX = u'<?'
- SUFFIX = u'?>'
+ PREFIX = '<?'
+ SUFFIX = '>'
class Comment(PreformattedString):
- PREFIX = u'<!--'
- SUFFIX = u'-->'
+ PREFIX = '<!--'
+ SUFFIX = '-->'
class Declaration(PreformattedString):
- PREFIX = u'<!'
- SUFFIX = u'!>'
+ PREFIX = '<?'
+ SUFFIX = '?>'
class Doctype(PreformattedString):
@@ -734,8 +772,8 @@ class Doctype(PreformattedString):
return Doctype(value)
- PREFIX = u'<!DOCTYPE '
- SUFFIX = u'>\n'
+ PREFIX = '<!DOCTYPE '
+ SUFFIX = '>\n'
class Tag(PageElement):
@@ -759,9 +797,12 @@ class Tag(PageElement):
self.prefix = prefix
if attrs is None:
attrs = {}
- elif attrs and builder.cdata_list_attributes:
- attrs = builder._replace_cdata_list_attribute_values(
- self.name, attrs)
+ elif attrs:
+ if builder is not None and builder.cdata_list_attributes:
+ attrs = builder._replace_cdata_list_attribute_values(
+ self.name, attrs)
+ else:
+ attrs = dict(attrs)
else:
attrs = dict(attrs)
self.attrs = attrs
@@ -778,6 +819,18 @@ class Tag(PageElement):
parserClass = _alias("parser_class") # BS3
+ def __copy__(self):
+ """A copy of a Tag is a new Tag, unconnected to the parse tree.
+ Its contents are a copy of the old Tag's contents.
+ """
+ clone = type(self)(None, self.builder, self.name, self.namespace,
+ self.nsprefix, self.attrs)
+ for attr in ('can_be_empty_element', 'hidden'):
+ setattr(clone, attr, getattr(self, attr))
+ for child in self.contents:
+ clone.append(child.__copy__())
+ return clone
+
@property
def is_empty_element(self):
"""Is this tag an empty-element tag? (aka a self-closing tag)
@@ -843,7 +896,7 @@ class Tag(PageElement):
for string in self._all_strings(True):
yield string
- def get_text(self, separator=u"", strip=False,
+ def get_text(self, separator="", strip=False,
types=(NavigableString, CData)):
"""
Get all child strings, concatenated using the given separator.
@@ -915,7 +968,7 @@ class Tag(PageElement):
def __contains__(self, x):
return x in self.contents
- def __nonzero__(self):
+ def __bool__(self):
"A tag is non-None even if it has no contents."
return True
@@ -971,15 +1024,25 @@ class Tag(PageElement):
as defined in __eq__."""
return not self == other
- def __repr__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+ def __repr__(self, encoding="unicode-escape"):
"""Renders this tag as a string."""
- return self.encode(encoding)
+ if PY3K:
+ # "The return value must be a string object", i.e. Unicode
+ return self.decode()
+ else:
+ # "The return value must be a string object", i.e. a bytestring.
+ # By convention, the return value of __repr__ should also be
+ # an ASCII string.
+ return self.encode(encoding)
def __unicode__(self):
return self.decode()
def __str__(self):
- return self.encode()
+ if PY3K:
+ return self.decode()
+ else:
+ return self.encode()
if PY3K:
__str__ = __repr__ = __unicode__
@@ -1014,7 +1077,7 @@ class Tag(PageElement):
# First off, turn a string formatter into a function. This
# will stop the lookup from happening over and over again.
- if not callable(formatter):
+ if not isinstance(formatter, collections.Callable):
formatter = self._formatter_for_name(formatter)
attrs = []
@@ -1025,8 +1088,8 @@ class Tag(PageElement):
else:
if isinstance(val, list) or isinstance(val, tuple):
val = ' '.join(val)
- elif not isinstance(val, basestring):
- val = unicode(val)
+ elif not isinstance(val, str):
+ val = str(val)
elif (
isinstance(val, AttributeValueWithCharsetSubstitution)
and eventual_encoding is not None):
@@ -1034,7 +1097,7 @@ class Tag(PageElement):
text = self.format_string(val, formatter)
decoded = (
- unicode(key) + '='
+ str(key) + '='
+ EntitySubstitution.quoted_attribute_value(text))
attrs.append(decoded)
close = ''
@@ -1103,16 +1166,22 @@ class Tag(PageElement):
formatter="minimal"):
"""Renders the contents of this tag as a Unicode string.
+ :param indent_level: Each line of the rendering will be
+ indented this many spaces.
+
:param eventual_encoding: The tag is destined to be
encoded into this encoding. This method is _not_
responsible for performing that encoding. This information
is passed in so that it can be substituted in if the
document contains a <META> tag that mentions the document's
encoding.
+
+ :param formatter: The output formatter responsible for converting
+ entities to Unicode characters.
"""
# First off, turn a string formatter into a function. This
# will stop the lookup from happening over and over again.
- if not callable(formatter):
+ if not isinstance(formatter, collections.Callable):
formatter = self._formatter_for_name(formatter)
pretty_print = (indent_level is not None)
@@ -1137,7 +1206,17 @@ class Tag(PageElement):
def encode_contents(
self, indent_level=None, encoding=DEFAULT_OUTPUT_ENCODING,
formatter="minimal"):
- """Renders the contents of this tag as a bytestring."""
+ """Renders the contents of this tag as a bytestring.
+
+ :param indent_level: Each line of the rendering will be
+ indented this many spaces.
+
+ :param eventual_encoding: The bytestring will be in this encoding.
+
+ :param formatter: The output formatter responsible for converting
+ entities to Unicode characters.
+ """
+
contents = self.decode_contents(indent_level, encoding, formatter)
return contents.encode(encoding)
@@ -1201,26 +1280,57 @@ class Tag(PageElement):
_selector_combinators = ['>', '+', '~']
_select_debug = False
- def select(self, selector, _candidate_generator=None):
+ def select_one(self, selector):
+ """Perform a CSS selection operation on the current element."""
+ value = self.select(selector, limit=1)
+ if value:
+ return value[0]
+ return None
+
+ def select(self, selector, _candidate_generator=None, limit=None):
"""Perform a CSS selection operation on the current element."""
+
+ # Handle grouping selectors if ',' exists, ie: p,a
+ if ',' in selector:
+ context = []
+ for partial_selector in selector.split(','):
+ partial_selector = partial_selector.strip()
+ if partial_selector == '':
+ raise ValueError('Invalid group selection syntax: %s' % selector)
+ candidates = self.select(partial_selector, limit=limit)
+ for candidate in candidates:
+ if candidate not in context:
+ context.append(candidate)
+
+ if limit and len(context) >= limit:
+ break
+ return context
+
tokens = selector.split()
current_context = [self]
if tokens[-1] in self._selector_combinators:
raise ValueError(
'Final combinator "%s" is missing an argument.' % tokens[-1])
+
if self._select_debug:
- print 'Running CSS selector "%s"' % selector
+ print('Running CSS selector "%s"' % selector)
+
for index, token in enumerate(tokens):
- if self._select_debug:
- print ' Considering token "%s"' % token
- recursive_candidate_generator = None
- tag_name = None
+ new_context = []
+ new_context_ids = set([])
+
if tokens[index-1] in self._selector_combinators:
# This token was consumed by the previous combinator. Skip it.
if self._select_debug:
- print ' Token was consumed by the previous combinator.'
+ print(' Token was consumed by the previous combinator.')
continue
+
+ if self._select_debug:
+ print(' Considering token "%s"' % token)
+ recursive_candidate_generator = None
+ tag_name = None
+
# Each operation corresponds to a checker function, a rule
# for determining whether a candidate matches the
# selector. Candidates are generated by the active
@@ -1256,35 +1366,38 @@ class Tag(PageElement):
"A pseudo-class must be prefixed with a tag name.")
pseudo_attributes = re.match('([a-zA-Z\d-]+)\(([a-zA-Z\d]+)\)', pseudo)
found = []
- if pseudo_attributes is not None:
+ if pseudo_attributes is None:
+ pseudo_type = pseudo
+ pseudo_value = None
+ else:
pseudo_type, pseudo_value = pseudo_attributes.groups()
- if pseudo_type == 'nth-of-type':
- try:
- pseudo_value = int(pseudo_value)
- except:
- raise NotImplementedError(
- 'Only numeric values are currently supported for the nth-of-type pseudo-class.')
- if pseudo_value < 1:
- raise ValueError(
- 'nth-of-type pseudo-class value must be at least 1.')
- class Counter(object):
- def __init__(self, destination):
- self.count = 0
- self.destination = destination
-
- def nth_child_of_type(self, tag):
- self.count += 1
- if self.count == self.destination:
- return True
- if self.count > self.destination:
- # Stop the generator that's sending us
- # these things.
- raise StopIteration()
- return False
- checker = Counter(pseudo_value).nth_child_of_type
- else:
+ if pseudo_type == 'nth-of-type':
+ try:
+ pseudo_value = int(pseudo_value)
+ except:
raise NotImplementedError(
- 'Only the following pseudo-classes are implemented: nth-of-type.')
+ 'Only numeric values are currently supported for the nth-of-type pseudo-class.')
+ if pseudo_value < 1:
+ raise ValueError(
+ 'nth-of-type pseudo-class value must be at least 1.')
+ class Counter(object):
+ def __init__(self, destination):
+ self.count = 0
+ self.destination = destination
+
+ def nth_child_of_type(self, tag):
+ self.count += 1
+ if self.count == self.destination:
+ return True
+ if self.count > self.destination:
+ # Stop the generator that's sending us
+ # these things.
+ raise StopIteration()
+ return False
+ checker = Counter(pseudo_value).nth_child_of_type
+ else:
+ raise NotImplementedError(
+ 'Only the following pseudo-classes are implemented: nth-of-type.')
elif token == '*':
# Star selector -- matches everything
@@ -1311,7 +1424,6 @@ class Tag(PageElement):
else:
raise ValueError(
'Unsupported or invalid CSS selector: "%s"' % token)
-
if recursive_candidate_generator:
# This happens when the selector looks like "> foo".
#
@@ -1325,14 +1437,14 @@ class Tag(PageElement):
next_token = tokens[index+1]
def recursive_select(tag):
if self._select_debug:
- print ' Calling select("%s") recursively on %s %s' % (next_token, tag.name, tag.attrs)
- print '-' * 40
+ print(' Calling select("%s") recursively on %s %s' % (next_token, tag.name, tag.attrs))
+ print('-' * 40)
for i in tag.select(next_token, recursive_candidate_generator):
if self._select_debug:
- print '(Recursive select picked up candidate %s %s)' % (i.name, i.attrs)
+ print('(Recursive select picked up candidate %s %s)' % (i.name, i.attrs))
yield i
if self._select_debug:
- print '-' * 40
+ print('-' * 40)
_use_candidate_generator = recursive_select
elif _candidate_generator is None:
# By default, a tag's candidates are all of its
@@ -1343,7 +1455,7 @@ class Tag(PageElement):
check = "[any]"
else:
check = tag_name
- print ' Default candidate generator, tag name="%s"' % check
+ print(' Default candidate generator, tag name="%s"' % check)
if self._select_debug:
# This is redundant with later code, but it stops
# a bunch of bogus tags from cluttering up the
@@ -1361,12 +1473,11 @@ class Tag(PageElement):
else:
_use_candidate_generator = _candidate_generator
- new_context = []
- new_context_ids = set([])
+ count = 0
for tag in current_context:
if self._select_debug:
- print " Running candidate generator on %s %s" % (
- tag.name, repr(tag.attrs))
+ print(" Running candidate generator on %s %s" % (
+ tag.name, repr(tag.attrs)))
for candidate in _use_candidate_generator(tag):
if not isinstance(candidate, Tag):
continue
@@ -1381,21 +1492,24 @@ class Tag(PageElement):
break
if checker is None or result:
if self._select_debug:
- print " SUCCESS %s %s" % (candidate.name, repr(candidate.attrs))
+ print(" SUCCESS %s %s" % (candidate.name, repr(candidate.attrs)))
if id(candidate) not in new_context_ids:
# If a tag matches a selector more than once,
# don't include it in the context more than once.
new_context.append(candidate)
new_context_ids.add(id(candidate))
+ if limit and len(new_context) >= limit:
+ break
elif self._select_debug:
- print " FAILURE %s %s" % (candidate.name, repr(candidate.attrs))
+ print(" FAILURE %s %s" % (candidate.name, repr(candidate.attrs)))
+
current_context = new_context
if self._select_debug:
- print "Final verdict:"
+ print("Final verdict:")
for i in current_context:
- print " %s %s" % (i.name, i.attrs)
+ print(" %s %s" % (i.name, i.attrs))
return current_context
# Old names for backwards compatibility
@@ -1439,7 +1553,7 @@ class SoupStrainer(object):
else:
attrs = kwargs
normalized_attrs = {}
- for key, value in attrs.items():
+ for key, value in list(attrs.items()):
normalized_attrs[key] = self._normalize_search_value(value)
self.attrs = normalized_attrs
@@ -1448,7 +1562,7 @@ class SoupStrainer(object):
def _normalize_search_value(self, value):
# Leave it alone if it's a Unicode string, a callable, a
# regular expression, a boolean, or None.
- if (isinstance(value, unicode) or callable(value) or hasattr(value, 'match')
+ if (isinstance(value, str) or isinstance(value, collections.Callable) or hasattr(value, 'match')
or isinstance(value, bool) or value is None):
return value
@@ -1461,7 +1575,7 @@ class SoupStrainer(object):
new_value = []
for v in value:
if (hasattr(v, '__iter__') and not isinstance(v, bytes)
- and not isinstance(v, unicode)):
+ and not isinstance(v, str)):
# This is almost certainly the user's mistake. In the
# interests of avoiding infinite loops, we'll let
# it through as-is rather than doing a recursive call.
@@ -1473,7 +1587,7 @@ class SoupStrainer(object):
# Otherwise, convert it into a Unicode string.
# The unicode(str()) thing is so this will do the same thing on Python 2
# and Python 3.
- return unicode(str(value))
+ return str(str(value))
def __str__(self):
if self.text:
@@ -1527,7 +1641,7 @@ class SoupStrainer(object):
found = None
# If given a list of items, scan it for a text element that
# matches.
- if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, basestring)):
+ if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, str)):
for element in markup:
if isinstance(element, NavigableString) \
and self.search(element):
@@ -1540,7 +1654,7 @@ class SoupStrainer(object):
found = self.search_tag(markup)
# If it's text, make sure the text matches.
elif isinstance(markup, NavigableString) or \
- isinstance(markup, basestring):
+ isinstance(markup, str):
if not self.name and not self.attrs and self._matches(markup, self.text):
found = markup
else:
@@ -1554,7 +1668,7 @@ class SoupStrainer(object):
if isinstance(markup, list) or isinstance(markup, tuple):
# This should only happen when searching a multi-valued attribute
# like 'class'.
- if (isinstance(match_against, unicode)
+ if (isinstance(match_against, str)
and ' ' in match_against):
# A bit of a special case. If they try to match "foo
# bar" on a multivalue attribute's value, only accept
@@ -1589,7 +1703,7 @@ class SoupStrainer(object):
# None matches None, False, an empty string, an empty list, and so on.
return not match_against
- if isinstance(match_against, unicode):
+ if isinstance(match_against, str):
# Exact string match
return markup == match_against
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/testing.py b/import-layers/yocto-poky/bitbake/lib/bs4/testing.py
index fd4495ac5..3a2f260e2 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/testing.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/testing.py
@@ -1,5 +1,8 @@
"""Helper classes for tests."""
+__license__ = "MIT"
+
+import pickle
import copy
import functools
import unittest
@@ -43,6 +46,16 @@ class SoupTest(unittest.TestCase):
self.assertEqual(obj.decode(), self.document_for(compare_parsed_to))
+ def assertConnectedness(self, element):
+ """Ensure that next_element and previous_element are properly
+ set for all descendants of the given element.
+ """
+ earlier = None
+ for e in element.descendants:
+ if earlier:
+ self.assertEqual(e, earlier.next_element)
+ self.assertEqual(earlier, e.previous_element)
+ earlier = e
class HTMLTreeBuilderSmokeTest(object):
@@ -54,6 +67,15 @@ class HTMLTreeBuilderSmokeTest(object):
markup in these tests, there's not much room for interpretation.
"""
+ def test_pickle_and_unpickle_identity(self):
+ # Pickling a tree, then unpickling it, yields a tree identical
+ # to the original.
+ tree = self.soup("<a><b>foo</a>")
+ dumped = pickle.dumps(tree, 2)
+ loaded = pickle.loads(dumped)
+ self.assertEqual(loaded.__class__, BeautifulSoup)
+ self.assertEqual(loaded.decode(), tree.decode())
+
def assertDoctypeHandled(self, doctype_fragment):
"""Assert that a given doctype string is handled correctly."""
doctype_str, soup = self._document_with_doctype(doctype_fragment)
@@ -114,6 +136,11 @@ class HTMLTreeBuilderSmokeTest(object):
soup.encode("utf-8").replace(b"\n", b""),
markup.replace(b"\n", b""))
+ def test_processing_instruction(self):
+ markup = b"""<?PITarget PIContent?>"""
+ soup = self.soup(markup)
+ self.assertEqual(markup, soup.encode("utf8"))
+
def test_deepcopy(self):
"""Make sure you can copy the tree builder.
@@ -155,6 +182,23 @@ class HTMLTreeBuilderSmokeTest(object):
def test_nested_formatting_elements(self):
self.assertSoupEquals("<em><em></em></em>")
+ def test_double_head(self):
+ html = '''<!DOCTYPE html>
+<html>
+<head>
+<title>Ordinary HEAD element test</title>
+</head>
+<script type="text/javascript">
+alert("Help!");
+</script>
+<body>
+Hello, world!
+</body>
+</html>
+'''
+ soup = self.soup(html)
+ self.assertEqual("text/javascript", soup.find('script')['type'])
+
def test_comment(self):
# Comments are represented as Comment objects.
markup = "<p>foo<!--foobar-->baz</p>"
@@ -221,18 +265,26 @@ class HTMLTreeBuilderSmokeTest(object):
soup = self.soup(markup)
self.assertEqual(["css"], soup.div.div['class'])
+ def test_multivalued_attribute_on_html(self):
+ # html5lib uses a different API to set the attributes ot the
+ # <html> tag. This has caused problems with multivalued
+ # attributes.
+ markup = '<html class="a b"></html>'
+ soup = self.soup(markup)
+ self.assertEqual(["a", "b"], soup.html['class'])
+
def test_angle_brackets_in_attribute_values_are_escaped(self):
self.assertSoupEquals('<a b="<a>"></a>', '<a b="&lt;a&gt;"></a>')
def test_entities_in_attributes_converted_to_unicode(self):
- expect = u'<p id="pi\N{LATIN SMALL LETTER N WITH TILDE}ata"></p>'
+ expect = '<p id="pi\N{LATIN SMALL LETTER N WITH TILDE}ata"></p>'
self.assertSoupEquals('<p id="pi&#241;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&#xf1;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&#Xf1;ata"></p>', expect)
self.assertSoupEquals('<p id="pi&ntilde;ata"></p>', expect)
def test_entities_in_text_converted_to_unicode(self):
- expect = u'<p>pi\N{LATIN SMALL LETTER N WITH TILDE}ata</p>'
+ expect = '<p>pi\N{LATIN SMALL LETTER N WITH TILDE}ata</p>'
self.assertSoupEquals("<p>pi&#241;ata</p>", expect)
self.assertSoupEquals("<p>pi&#xf1;ata</p>", expect)
self.assertSoupEquals("<p>pi&#Xf1;ata</p>", expect)
@@ -243,7 +295,7 @@ class HTMLTreeBuilderSmokeTest(object):
'<p>I said "good day!"</p>')
def test_out_of_range_entity(self):
- expect = u"\N{REPLACEMENT CHARACTER}"
+ expect = "\N{REPLACEMENT CHARACTER}"
self.assertSoupEquals("&#10000000000000;", expect)
self.assertSoupEquals("&#x10000000000000;", expect)
self.assertSoupEquals("&#1000000000;", expect)
@@ -253,6 +305,35 @@ class HTMLTreeBuilderSmokeTest(object):
soup = self.soup("<html><h2>\nfoo</h2><p></p></html>")
self.assertEqual("p", soup.h2.string.next_element.name)
self.assertEqual("p", soup.p.name)
+ self.assertConnectedness(soup)
+
+ def test_head_tag_between_head_and_body(self):
+ "Prevent recurrence of a bug in the html5lib treebuilder."
+ content = """<html><head></head>
+ <link></link>
+ <body>foo</body>
+</html>
+"""
+ soup = self.soup(content)
+ self.assertNotEqual(None, soup.html.body)
+ self.assertConnectedness(soup)
+
+ def test_multiple_copies_of_a_tag(self):
+ "Prevent recurrence of a bug in the html5lib treebuilder."
+ content = """<!DOCTYPE html>
+<html>
+ <body>
+ <article id="a" >
+ <div><a href="1"></div>
+ <footer>
+ <a href="2"></a>
+ </footer>
+ </article>
+ </body>
+</html>
+"""
+ soup = self.soup(content)
+ self.assertConnectedness(soup.article)
def test_basic_namespaces(self):
"""Parsers don't need to *understand* namespaces, but at the
@@ -285,9 +366,9 @@ class HTMLTreeBuilderSmokeTest(object):
# A seemingly innocuous document... but it's in Unicode! And
# it contains characters that can't be represented in the
# encoding found in the declaration! The horror!
- markup = u'<html><head><meta encoding="euc-jp"></head><body>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</body>'
+ markup = '<html><head><meta encoding="euc-jp"></head><body>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</body>'
soup = self.soup(markup)
- self.assertEqual(u'Sacr\xe9 bleu!', soup.body.string)
+ self.assertEqual('Sacr\xe9 bleu!', soup.body.string)
def test_soupstrainer(self):
"""Parsers should be able to work with SoupStrainers."""
@@ -327,7 +408,7 @@ class HTMLTreeBuilderSmokeTest(object):
# Both XML and HTML entities are converted to Unicode characters
# during parsing.
text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
- expected = u"<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>"
+ expected = "<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>"
self.assertSoupEquals(text, expected)
def test_smart_quotes_converted_on_the_way_in(self):
@@ -337,15 +418,15 @@ class HTMLTreeBuilderSmokeTest(object):
soup = self.soup(quote)
self.assertEqual(
soup.p.string,
- u"\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}")
+ "\N{LEFT SINGLE QUOTATION MARK}Foo\N{RIGHT SINGLE QUOTATION MARK}")
def test_non_breaking_spaces_converted_on_the_way_in(self):
soup = self.soup("<a>&nbsp;&nbsp;</a>")
- self.assertEqual(soup.a.string, u"\N{NO-BREAK SPACE}" * 2)
+ self.assertEqual(soup.a.string, "\N{NO-BREAK SPACE}" * 2)
def test_entities_converted_on_the_way_out(self):
text = "<p>&lt;&lt;sacr&eacute;&#32;bleu!&gt;&gt;</p>"
- expected = u"<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>".encode("utf-8")
+ expected = "<p>&lt;&lt;sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</p>".encode("utf-8")
soup = self.soup(text)
self.assertEqual(soup.p.encode("utf-8"), expected)
@@ -354,7 +435,7 @@ class HTMLTreeBuilderSmokeTest(object):
# easy-to-understand document.
# Here it is in Unicode. Note that it claims to be in ISO-Latin-1.
- unicode_html = u'<html><head><meta content="text/html; charset=ISO-Latin-1" http-equiv="Content-type"/></head><body><p>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</p></body></html>'
+ unicode_html = '<html><head><meta content="text/html; charset=ISO-Latin-1" http-equiv="Content-type"/></head><body><p>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</p></body></html>'
# That's because we're going to encode it into ISO-Latin-1, and use
# that to test.
@@ -463,11 +544,25 @@ class HTMLTreeBuilderSmokeTest(object):
class XMLTreeBuilderSmokeTest(object):
+ def test_pickle_and_unpickle_identity(self):
+ # Pickling a tree, then unpickling it, yields a tree identical
+ # to the original.
+ tree = self.soup("<a><b>foo</a>")
+ dumped = pickle.dumps(tree, 2)
+ loaded = pickle.loads(dumped)
+ self.assertEqual(loaded.__class__, BeautifulSoup)
+ self.assertEqual(loaded.decode(), tree.decode())
+
def test_docstring_generated(self):
soup = self.soup("<root/>")
self.assertEqual(
soup.encode(), b'<?xml version="1.0" encoding="utf-8"?>\n<root/>')
+ def test_xml_declaration(self):
+ markup = b"""<?xml version="1.0" encoding="utf8"?>\n<foo/>"""
+ soup = self.soup(markup)
+ self.assertEqual(markup, soup.encode("utf8"))
+
def test_real_xhtml_document(self):
"""A real XHTML document should come out *exactly* the same as it went in."""
markup = b"""<?xml version="1.0" encoding="utf-8"?>
@@ -485,7 +580,7 @@ class XMLTreeBuilderSmokeTest(object):
<script type="text/javascript">
</script>
"""
- soup = BeautifulSoup(doc, "xml")
+ soup = BeautifulSoup(doc, "lxml-xml")
# lxml would have stripped this while parsing, but we can add
# it later.
soup.script.string = 'console.log("< < hey > > ");'
@@ -493,15 +588,15 @@ class XMLTreeBuilderSmokeTest(object):
self.assertTrue(b"&lt; &lt; hey &gt; &gt;" in encoded)
def test_can_parse_unicode_document(self):
- markup = u'<?xml version="1.0" encoding="euc-jp"><root>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</root>'
+ markup = '<?xml version="1.0" encoding="euc-jp"><root>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</root>'
soup = self.soup(markup)
- self.assertEqual(u'Sacr\xe9 bleu!', soup.root.string)
+ self.assertEqual('Sacr\xe9 bleu!', soup.root.string)
def test_popping_namespaced_tag(self):
markup = '<rss xmlns:dc="foo"><dc:creator>b</dc:creator><dc:date>2012-07-02T20:33:42Z</dc:date><dc:rights>c</dc:rights><image>d</image></rss>'
soup = self.soup(markup)
self.assertEqual(
- unicode(soup.rss), markup)
+ str(soup.rss), markup)
def test_docstring_includes_correct_encoding(self):
soup = self.soup("<root/>")
@@ -532,17 +627,17 @@ class XMLTreeBuilderSmokeTest(object):
def test_closing_namespaced_tag(self):
markup = '<p xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>20010504</dc:date></p>'
soup = self.soup(markup)
- self.assertEqual(unicode(soup.p), markup)
+ self.assertEqual(str(soup.p), markup)
def test_namespaced_attributes(self):
markup = '<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><bar xsi:schemaLocation="http://www.example.com"/></foo>'
soup = self.soup(markup)
- self.assertEqual(unicode(soup.foo), markup)
+ self.assertEqual(str(soup.foo), markup)
def test_namespaced_attributes_xml_namespace(self):
markup = '<foo xml:lang="fr">bar</foo>'
soup = self.soup(markup)
- self.assertEqual(unicode(soup.foo), markup)
+ self.assertEqual(str(soup.foo), markup)
class HTML5TreeBuilderSmokeTest(HTMLTreeBuilderSmokeTest):
"""Smoke test for a tree builder that supports HTML5."""
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_builder_registry.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_builder_registry.py
index 92ad10fb0..90cad8293 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_builder_registry.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_builder_registry.py
@@ -1,6 +1,7 @@
"""Tests of the builder registry."""
import unittest
+import warnings
from bs4 import BeautifulSoup
from bs4.builder import (
@@ -67,10 +68,15 @@ class BuiltInRegistryTest(unittest.TestCase):
HTMLParserTreeBuilder)
def test_beautifulsoup_constructor_does_lookup(self):
- # You can pass in a string.
- BeautifulSoup("", features="html")
- # Or a list of strings.
- BeautifulSoup("", features=["html", "fast"])
+
+ with warnings.catch_warnings(record=True) as w:
+ # This will create a warning about not explicitly
+ # specifying a parser, but we'll ignore it.
+
+ # You can pass in a string.
+ BeautifulSoup("", features="html")
+ # Or a list of strings.
+ BeautifulSoup("", features=["html", "fast"])
# You'll get an exception if BS can't find an appropriate
# builder.
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_html5lib.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_html5lib.py
index 594c3e1f2..a7494ca5b 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_html5lib.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_html5lib.py
@@ -5,7 +5,7 @@ import warnings
try:
from bs4.builder import HTML5TreeBuilder
HTML5LIB_PRESENT = True
-except ImportError, e:
+except ImportError as e:
HTML5LIB_PRESENT = False
from bs4.element import SoupStrainer
from bs4.testing import (
@@ -74,12 +74,25 @@ class HTML5LibBuilderSmokeTest(SoupTest, HTML5TreeBuilderSmokeTest):
def test_reparented_markup(self):
markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>'
soup = self.soup(markup)
- self.assertEqual(u"<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p></body>", soup.body.decode())
+ self.assertEqual("<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p></body>", soup.body.decode())
self.assertEqual(2, len(soup.find_all('p')))
def test_reparented_markup_ends_with_whitespace(self):
markup = '<p><em>foo</p>\n<p>bar<a></a></em></p>\n'
soup = self.soup(markup)
- self.assertEqual(u"<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p>\n</body>", soup.body.decode())
+ self.assertEqual("<body><p><em>foo</em></p><em>\n</em><p><em>bar<a></a></em></p>\n</body>", soup.body.decode())
self.assertEqual(2, len(soup.find_all('p')))
+
+ def test_processing_instruction(self):
+ """Processing instructions become comments."""
+ markup = b"""<?PITarget PIContent?>"""
+ soup = self.soup(markup)
+ assert str(soup).startswith("<!--?PITarget PIContent?-->")
+
+ def test_cloned_multivalue_node(self):
+ markup = b"""<a class="my_class"><p></a>"""
+ soup = self.soup(markup)
+ a1, a2 = soup.find_all('a')
+ self.assertEqual(a1, a2)
+ assert a1 is not a2
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_htmlparser.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_htmlparser.py
index bcb5ed232..b45e35f99 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_htmlparser.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_htmlparser.py
@@ -1,6 +1,8 @@
"""Tests to ensure that the html.parser tree builder generates good
trees."""
+from pdb import set_trace
+import pickle
from bs4.testing import SoupTest, HTMLTreeBuilderSmokeTest
from bs4.builder import HTMLParserTreeBuilder
@@ -17,3 +19,14 @@ class HTMLParserTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
def test_namespaced_public_doctype(self):
# html.parser can't handle namespaced doctypes, so skip this one.
pass
+
+ def test_builder_is_pickled(self):
+ """Unlike most tree builders, HTMLParserTreeBuilder and will
+ be restored after pickling.
+ """
+ tree = self.soup("<a><b>foo</a>")
+ dumped = pickle.dumps(tree, 2)
+ loaded = pickle.loads(dumped)
+ self.assertTrue(isinstance(loaded.builder, type(tree.builder)))
+
+
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_lxml.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_lxml.py
index 2b2e9b7e7..6c2a1d73e 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_lxml.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_lxml.py
@@ -7,7 +7,7 @@ try:
import lxml.etree
LXML_PRESENT = True
LXML_VERSION = lxml.etree.LXML_VERSION
-except ImportError, e:
+except ImportError as e:
LXML_PRESENT = False
LXML_VERSION = (0,)
@@ -62,24 +62,9 @@ class LXMLTreeBuilderSmokeTest(SoupTest, HTMLTreeBuilderSmokeTest):
# if one is installed.
with warnings.catch_warnings(record=True) as w:
soup = BeautifulStoneSoup("<b />")
- self.assertEqual(u"<b/>", unicode(soup.b))
+ self.assertEqual("<b/>", str(soup.b))
self.assertTrue("BeautifulStoneSoup class is deprecated" in str(w[0].message))
- def test_real_xhtml_document(self):
- """lxml strips the XML definition from an XHTML doc, which is fine."""
- markup = b"""<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head><title>Hello.</title></head>
-<body>Goodbye.</body>
-</html>"""
- soup = self.soup(markup)
- self.assertEqual(
- soup.encode("utf-8").replace(b"\n", b''),
- markup.replace(b'\n', b'').replace(
- b'<?xml version="1.0" encoding="utf-8"?>', b''))
-
-
@skipIf(
not LXML_PRESENT,
"lxml seems not to be present, not testing its XML tree builder.")
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_soup.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_soup.py
index 47ac245f9..f87949e3d 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_soup.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_soup.py
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
"""Tests of Beautiful Soup as a whole."""
+from pdb import set_trace
import logging
import unittest
import sys
@@ -20,6 +21,7 @@ import bs4.dammit
from bs4.dammit import (
EntitySubstitution,
UnicodeDammit,
+ EncodingDetector,
)
from bs4.testing import (
SoupTest,
@@ -30,7 +32,7 @@ import warnings
try:
from bs4.builder import LXMLTreeBuilder, LXMLTreeBuilderForXML
LXML_PRESENT = True
-except ImportError, e:
+except ImportError as e:
LXML_PRESENT = False
PYTHON_2_PRE_2_7 = (sys.version_info < (2,7))
@@ -39,17 +41,43 @@ PYTHON_3_PRE_3_2 = (sys.version_info[0] == 3 and sys.version_info < (3,2))
class TestConstructor(SoupTest):
def test_short_unicode_input(self):
- data = u"<h1>Ă©Ă©</h1>"
+ data = "<h1>Ă©Ă©</h1>"
soup = self.soup(data)
- self.assertEqual(u"Ă©Ă©", soup.h1.string)
+ self.assertEqual("Ă©Ă©", soup.h1.string)
def test_embedded_null(self):
- data = u"<h1>foo\0bar</h1>"
+ data = "<h1>foo\0bar</h1>"
soup = self.soup(data)
- self.assertEqual(u"foo\0bar", soup.h1.string)
+ self.assertEqual("foo\0bar", soup.h1.string)
+ def test_exclude_encodings(self):
+ utf8_data = "Räksmörgås".encode("utf-8")
+ soup = self.soup(utf8_data, exclude_encodings=["utf-8"])
+ self.assertEqual("windows-1252", soup.original_encoding)
-class TestDeprecatedConstructorArguments(SoupTest):
+
+class TestWarnings(SoupTest):
+
+ def _no_parser_specified(self, s, is_there=True):
+ v = s.startswith(BeautifulSoup.NO_PARSER_SPECIFIED_WARNING[:80])
+ self.assertTrue(v)
+
+ def test_warning_if_no_parser_specified(self):
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("<a><b></b></a>")
+ msg = str(w[0].message)
+ self._assert_no_parser_specified(msg)
+
+ def test_warning_if_parser_specified_too_vague(self):
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("<a><b></b></a>", "html")
+ msg = str(w[0].message)
+ self._assert_no_parser_specified(msg)
+
+ def test_no_warning_if_explicit_parser_specified(self):
+ with warnings.catch_warnings(record=True) as w:
+ soup = self.soup("<a><b></b></a>", "html.parser")
+ self.assertEqual([], w)
def test_parseOnlyThese_renamed_to_parse_only(self):
with warnings.catch_warnings(record=True) as w:
@@ -117,9 +145,9 @@ class TestEntitySubstitution(unittest.TestCase):
def test_simple_html_substitution(self):
# Unicode characters corresponding to named HTML entites
# are substituted, and no others.
- s = u"foo\u2200\N{SNOWMAN}\u00f5bar"
+ s = "foo\u2200\N{SNOWMAN}\u00f5bar"
self.assertEqual(self.sub.substitute_html(s),
- u"foo&forall;\N{SNOWMAN}&otilde;bar")
+ "foo&forall;\N{SNOWMAN}&otilde;bar")
def test_smart_quote_substitution(self):
# MS smart quotes are a common source of frustration, so we
@@ -184,7 +212,7 @@ class TestEncodingConversion(SoupTest):
def setUp(self):
super(TestEncodingConversion, self).setUp()
- self.unicode_data = u'<html><head><meta charset="utf-8"/></head><body><foo>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</foo></body></html>'
+ self.unicode_data = '<html><head><meta charset="utf-8"/></head><body><foo>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</foo></body></html>'
self.utf8_data = self.unicode_data.encode("utf-8")
# Just so you know what it looks like.
self.assertEqual(
@@ -204,7 +232,7 @@ class TestEncodingConversion(SoupTest):
ascii = b"<foo>a</foo>"
soup_from_ascii = self.soup(ascii)
unicode_output = soup_from_ascii.decode()
- self.assertTrue(isinstance(unicode_output, unicode))
+ self.assertTrue(isinstance(unicode_output, str))
self.assertEqual(unicode_output, self.document_for(ascii.decode()))
self.assertEqual(soup_from_ascii.original_encoding.lower(), "utf-8")
finally:
@@ -216,7 +244,7 @@ class TestEncodingConversion(SoupTest):
# is not set.
soup_from_unicode = self.soup(self.unicode_data)
self.assertEqual(soup_from_unicode.decode(), self.unicode_data)
- self.assertEqual(soup_from_unicode.foo.string, u'Sacr\xe9 bleu!')
+ self.assertEqual(soup_from_unicode.foo.string, 'Sacr\xe9 bleu!')
self.assertEqual(soup_from_unicode.original_encoding, None)
def test_utf8_in_unicode_out(self):
@@ -224,7 +252,7 @@ class TestEncodingConversion(SoupTest):
# attribute is set.
soup_from_utf8 = self.soup(self.utf8_data)
self.assertEqual(soup_from_utf8.decode(), self.unicode_data)
- self.assertEqual(soup_from_utf8.foo.string, u'Sacr\xe9 bleu!')
+ self.assertEqual(soup_from_utf8.foo.string, 'Sacr\xe9 bleu!')
def test_utf8_out(self):
# The internal data structures can be encoded as UTF-8.
@@ -235,14 +263,14 @@ class TestEncodingConversion(SoupTest):
PYTHON_2_PRE_2_7 or PYTHON_3_PRE_3_2,
"Bad HTMLParser detected; skipping test of non-ASCII characters in attribute name.")
def test_attribute_name_containing_unicode_characters(self):
- markup = u'<div><a \N{SNOWMAN}="snowman"></a></div>'
+ markup = '<div><a \N{SNOWMAN}="snowman"></a></div>'
self.assertEqual(self.soup(markup).div.encode("utf8"), markup.encode("utf8"))
class TestUnicodeDammit(unittest.TestCase):
"""Standalone tests of UnicodeDammit."""
def test_unicode_input(self):
- markup = u"I'm already Unicode! \N{SNOWMAN}"
+ markup = "I'm already Unicode! \N{SNOWMAN}"
dammit = UnicodeDammit(markup)
self.assertEqual(dammit.unicode_markup, markup)
@@ -250,7 +278,7 @@ class TestUnicodeDammit(unittest.TestCase):
markup = b"<foo>\x91\x92\x93\x94</foo>"
dammit = UnicodeDammit(markup)
self.assertEqual(
- dammit.unicode_markup, u"<foo>\u2018\u2019\u201c\u201d</foo>")
+ dammit.unicode_markup, "<foo>\u2018\u2019\u201c\u201d</foo>")
def test_smart_quotes_to_xml_entities(self):
markup = b"<foo>\x91\x92\x93\x94</foo>"
@@ -271,16 +299,17 @@ class TestUnicodeDammit(unittest.TestCase):
dammit.unicode_markup, """<foo>''""</foo>""")
def test_detect_utf8(self):
- utf8 = b"\xc3\xa9"
+ utf8 = b"Sacr\xc3\xa9 bleu! \xe2\x98\x83"
dammit = UnicodeDammit(utf8)
- self.assertEqual(dammit.unicode_markup, u'\xe9')
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+ self.assertEqual(dammit.unicode_markup, 'Sacr\xe9 bleu! \N{SNOWMAN}')
+
def test_convert_hebrew(self):
hebrew = b"\xed\xe5\xec\xf9"
dammit = UnicodeDammit(hebrew, ["iso-8859-8"])
self.assertEqual(dammit.original_encoding.lower(), 'iso-8859-8')
- self.assertEqual(dammit.unicode_markup, u'\u05dd\u05d5\u05dc\u05e9')
+ self.assertEqual(dammit.unicode_markup, '\u05dd\u05d5\u05dc\u05e9')
def test_dont_see_smart_quotes_where_there_are_none(self):
utf_8 = b"\343\202\261\343\203\274\343\202\277\343\202\244 Watch"
@@ -289,16 +318,36 @@ class TestUnicodeDammit(unittest.TestCase):
self.assertEqual(dammit.unicode_markup.encode("utf-8"), utf_8)
def test_ignore_inappropriate_codecs(self):
- utf8_data = u"Räksmörgås".encode("utf-8")
+ utf8_data = "Räksmörgås".encode("utf-8")
dammit = UnicodeDammit(utf8_data, ["iso-8859-8"])
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
def test_ignore_invalid_codecs(self):
- utf8_data = u"Räksmörgås".encode("utf-8")
+ utf8_data = "Räksmörgås".encode("utf-8")
for bad_encoding in ['.utf8', '...', 'utF---16.!']:
dammit = UnicodeDammit(utf8_data, [bad_encoding])
self.assertEqual(dammit.original_encoding.lower(), 'utf-8')
+ def test_exclude_encodings(self):
+ # This is UTF-8.
+ utf8_data = "Räksmörgås".encode("utf-8")
+
+ # But if we exclude UTF-8 from consideration, the guess is
+ # Windows-1252.
+ dammit = UnicodeDammit(utf8_data, exclude_encodings=["utf-8"])
+ self.assertEqual(dammit.original_encoding.lower(), 'windows-1252')
+
+ # And if we exclude that, there is no valid guess at all.
+ dammit = UnicodeDammit(
+ utf8_data, exclude_encodings=["utf-8", "windows-1252"])
+ self.assertEqual(dammit.original_encoding, None)
+
+ def test_encoding_detector_replaces_junk_in_encoding_name_with_replacement_character(self):
+ detected = EncodingDetector(
+ b'<?xml version="1.0" encoding="UTF-\xdb" ?>')
+ encodings = list(detected.encodings)
+ assert 'utf-\N{REPLACEMENT CHARACTER}' in encodings
+
def test_detect_html5_style_meta_tag(self):
for data in (
@@ -337,7 +386,7 @@ class TestUnicodeDammit(unittest.TestCase):
bs4.dammit.chardet_dammit = noop
dammit = UnicodeDammit(doc)
self.assertEqual(True, dammit.contains_replacement_characters)
- self.assertTrue(u"\ufffd" in dammit.unicode_markup)
+ self.assertTrue("\ufffd" in dammit.unicode_markup)
soup = BeautifulSoup(doc, "html.parser")
self.assertTrue(soup.contains_replacement_characters)
@@ -349,17 +398,17 @@ class TestUnicodeDammit(unittest.TestCase):
# A document written in UTF-16LE will have its byte order marker stripped.
data = b'\xff\xfe<\x00a\x00>\x00\xe1\x00\xe9\x00<\x00/\x00a\x00>\x00'
dammit = UnicodeDammit(data)
- self.assertEqual(u"<a>áé</a>", dammit.unicode_markup)
+ self.assertEqual("<a>áé</a>", dammit.unicode_markup)
self.assertEqual("utf-16le", dammit.original_encoding)
def test_detwingle(self):
# Here's a UTF8 document.
- utf8 = (u"\N{SNOWMAN}" * 3).encode("utf8")
+ utf8 = ("\N{SNOWMAN}" * 3).encode("utf8")
# Here's a Windows-1252 document.
windows_1252 = (
- u"\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!"
- u"\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252")
+ "\N{LEFT DOUBLE QUOTATION MARK}Hi, I like Windows!"
+ "\N{RIGHT DOUBLE QUOTATION MARK}").encode("windows_1252")
# Through some unholy alchemy, they've been stuck together.
doc = utf8 + windows_1252 + utf8
@@ -374,7 +423,7 @@ class TestUnicodeDammit(unittest.TestCase):
fixed = UnicodeDammit.detwingle(doc)
self.assertEqual(
- u"âââ“Hi, I like Windows!”âââ", fixed.decode("utf8"))
+ "âââ“Hi, I like Windows!”âââ", fixed.decode("utf8"))
def test_detwingle_ignores_multibyte_characters(self):
# Each of these characters has a UTF-8 representation ending
@@ -382,9 +431,9 @@ class TestUnicodeDammit(unittest.TestCase):
# Windows-1252. But our code knows to skip over multibyte
# UTF-8 characters, so they'll survive the process unscathed.
for tricky_unicode_char in (
- u"\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93'
- u"\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93'
- u"\xf0\x90\x90\x93", # This is a CJK character, not sure which one.
+ "\N{LATIN SMALL LIGATURE OE}", # 2-byte char '\xc5\x93'
+ "\N{LATIN SUBSCRIPT SMALL LETTER X}", # 3-byte char '\xe2\x82\x93'
+ "\xf0\x90\x90\x93", # This is a CJK character, not sure which one.
):
input = tricky_unicode_char.encode("utf8")
self.assertTrue(input.endswith(b'\x93'))
diff --git a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_tree.py b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_tree.py
index f8515c0ea..6d3e67f31 100644
--- a/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_tree.py
+++ b/import-layers/yocto-poky/bitbake/lib/bs4/tests/test_tree.py
@@ -9,6 +9,7 @@ same markup, but all Beautiful Soup trees can be traversed with the
methods tested here.
"""
+from pdb import set_trace
import copy
import pickle
import re
@@ -19,8 +20,10 @@ from bs4.builder import (
HTMLParserTreeBuilder,
)
from bs4.element import (
+ PY3K,
CData,
Comment,
+ Declaration,
Doctype,
NavigableString,
SoupStrainer,
@@ -67,8 +70,14 @@ class TestFind(TreeTest):
self.assertEqual(soup.find("b").string, "2")
def test_unicode_text_find(self):
- soup = self.soup(u'<h1>Räksmörgås</h1>')
- self.assertEqual(soup.find(text=u'Räksmörgås'), u'Räksmörgås')
+ soup = self.soup('<h1>Räksmörgås</h1>')
+ self.assertEqual(soup.find(string='Räksmörgås'), 'Räksmörgås')
+
+ def test_unicode_attribute_find(self):
+ soup = self.soup('<h1 id="Räksmörgås">here it is</h1>')
+ str(soup)
+ self.assertEqual("here it is", soup.find(id='Räksmörgås').text)
+
def test_find_everything(self):
"""Test an optimization that finds all tags."""
@@ -87,16 +96,17 @@ class TestFindAll(TreeTest):
"""You can search the tree for text nodes."""
soup = self.soup("<html>Foo<b>bar</b>\xbb</html>")
# Exact match.
- self.assertEqual(soup.find_all(text="bar"), [u"bar"])
+ self.assertEqual(soup.find_all(string="bar"), ["bar"])
+ self.assertEqual(soup.find_all(text="bar"), ["bar"])
# Match any of a number of strings.
self.assertEqual(
- soup.find_all(text=["Foo", "bar"]), [u"Foo", u"bar"])
+ soup.find_all(text=["Foo", "bar"]), ["Foo", "bar"])
# Match a regular expression.
self.assertEqual(soup.find_all(text=re.compile('.*')),
- [u"Foo", u"bar", u'\xbb'])
+ ["Foo", "bar", '\xbb'])
# Match anything.
self.assertEqual(soup.find_all(text=True),
- [u"Foo", u"bar", u'\xbb'])
+ ["Foo", "bar", '\xbb'])
def test_find_all_limit(self):
"""You can limit the number of items returned by find_all."""
@@ -227,8 +237,8 @@ class TestFindAllByAttribute(TreeTest):
["Matching a.", "Matching b."])
def test_find_all_by_utf8_attribute_value(self):
- peace = u"םולש".encode("utf8")
- data = u'<a title="םולש"></a>'.encode("utf8")
+ peace = "םולש".encode("utf8")
+ data = '<a title="םולש"></a>'.encode("utf8")
soup = self.soup(data)
self.assertEqual([soup.a], soup.find_all(title=peace))
self.assertEqual([soup.a], soup.find_all(title=peace.decode("utf8")))
@@ -688,7 +698,7 @@ class TestTagCreation(SoupTest):
def test_tag_inherits_self_closing_rules_from_builder(self):
if XML_BUILDER_PRESENT:
- xml_soup = BeautifulSoup("", "xml")
+ xml_soup = BeautifulSoup("", "lxml-xml")
xml_br = xml_soup.new_tag("br")
xml_p = xml_soup.new_tag("p")
@@ -697,7 +707,7 @@ class TestTagCreation(SoupTest):
self.assertEqual(b"<br/>", xml_br.encode())
self.assertEqual(b"<p/>", xml_p.encode())
- html_soup = BeautifulSoup("", "html")
+ html_soup = BeautifulSoup("", "html.parser")
html_br = html_soup.new_tag("br")
html_p = html_soup.new_tag("p")
@@ -773,6 +783,14 @@ class TestTreeModification(SoupTest):
new_a = a.unwrap()
self.assertEqual(a, new_a)
+ def test_replace_with_and_unwrap_give_useful_exception_when_tag_has_no_parent(self):
+ soup = self.soup("<a><b>Foo</b></a><c>Bar</c>")
+ a = soup.a
+ a.extract()
+ self.assertEqual(None, a.parent)
+ self.assertRaises(ValueError, a.unwrap)
+ self.assertRaises(ValueError, a.replace_with, soup.c)
+
def test_replace_tag_with_itself(self):
text = "<a><b></b><c>Foo<d></d></c></a><a><e></e></a>"
soup = self.soup(text)
@@ -1067,6 +1085,31 @@ class TestTreeModification(SoupTest):
self.assertEqual(foo_2, soup.a.string)
self.assertEqual(bar_2, soup.b.string)
+ def test_extract_multiples_of_same_tag(self):
+ soup = self.soup("""
+<html>
+<head>
+<script>foo</script>
+</head>
+<body>
+ <script>bar</script>
+ <a></a>
+</body>
+<script>baz</script>
+</html>""")
+ [soup.script.extract() for i in soup.find_all("script")]
+ self.assertEqual("<body>\n\n<a></a>\n</body>", str(soup.body))
+
+
+ def test_extract_works_when_element_is_surrounded_by_identical_strings(self):
+ soup = self.soup(
+ '<html>\n'
+ '<body>hi</body>\n'
+ '</html>')
+ soup.find('body').extract()
+ self.assertEqual(None, soup.find('body'))
+
+
def test_clear(self):
"""Tag.clear()"""
soup = self.soup("<p><a>String <em>Italicized</em></a> and another</p>")
@@ -1287,27 +1330,72 @@ class TestPersistence(SoupTest):
def test_unicode_pickle(self):
# A tree containing Unicode characters can be pickled.
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
dumped = pickle.dumps(soup, pickle.HIGHEST_PROTOCOL)
loaded = pickle.loads(dumped)
self.assertEqual(loaded.decode(), soup.decode())
+ def test_copy_navigablestring_is_not_attached_to_tree(self):
+ html = "<b>Foo<a></a></b><b>Bar</b>"
+ soup = self.soup(html)
+ s1 = soup.find(string="Foo")
+ s2 = copy.copy(s1)
+ self.assertEqual(s1, s2)
+ self.assertEqual(None, s2.parent)
+ self.assertEqual(None, s2.next_element)
+ self.assertNotEqual(None, s1.next_sibling)
+ self.assertEqual(None, s2.next_sibling)
+ self.assertEqual(None, s2.previous_element)
+
+ def test_copy_navigablestring_subclass_has_same_type(self):
+ html = "<b><!--Foo--></b>"
+ soup = self.soup(html)
+ s1 = soup.string
+ s2 = copy.copy(s1)
+ self.assertEqual(s1, s2)
+ self.assertTrue(isinstance(s2, Comment))
+
+ def test_copy_entire_soup(self):
+ html = "<div><b>Foo<a></a></b><b>Bar</b></div>end"
+ soup = self.soup(html)
+ soup_copy = copy.copy(soup)
+ self.assertEqual(soup, soup_copy)
+
+ def test_copy_tag_copies_contents(self):
+ html = "<div><b>Foo<a></a></b><b>Bar</b></div>end"
+ soup = self.soup(html)
+ div = soup.div
+ div_copy = copy.copy(div)
+
+ # The two tags look the same, and evaluate to equal.
+ self.assertEqual(str(div), str(div_copy))
+ self.assertEqual(div, div_copy)
+
+ # But they're not the same object.
+ self.assertFalse(div is div_copy)
+
+ # And they don't have the same relation to the parse tree. The
+ # copy is not associated with a parse tree at all.
+ self.assertEqual(None, div_copy.parent)
+ self.assertEqual(None, div_copy.previous_element)
+ self.assertEqual(None, div_copy.find(string='Bar').next_element)
+ self.assertNotEqual(None, div.find(string='Bar').next_element)
class TestSubstitutions(SoupTest):
def test_default_formatter_is_minimal(self):
- markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ markup = "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
soup = self.soup(markup)
decoded = soup.decode(formatter="minimal")
# The < is converted back into &lt; but the e-with-acute is left alone.
self.assertEqual(
decoded,
self.document_for(
- u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
+ "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
def test_formatter_html(self):
- markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ markup = "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
soup = self.soup(markup)
decoded = soup.decode(formatter="html")
self.assertEqual(
@@ -1315,49 +1403,49 @@ class TestSubstitutions(SoupTest):
self.document_for("<b>&lt;&lt;Sacr&eacute; bleu!&gt;&gt;</b>"))
def test_formatter_minimal(self):
- markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ markup = "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
soup = self.soup(markup)
decoded = soup.decode(formatter="minimal")
# The < is converted back into &lt; but the e-with-acute is left alone.
self.assertEqual(
decoded,
self.document_for(
- u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
+ "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"))
def test_formatter_null(self):
- markup = u"<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
+ markup = "<b>&lt;&lt;Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!&gt;&gt;</b>"
soup = self.soup(markup)
decoded = soup.decode(formatter=None)
# Neither the angle brackets nor the e-with-acute are converted.
# This is not valid HTML, but it's what the user wanted.
self.assertEqual(decoded,
- self.document_for(u"<b><<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>></b>"))
+ self.document_for("<b><<Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!>></b>"))
def test_formatter_custom(self):
- markup = u"<b>&lt;foo&gt;</b><b>bar</b>"
+ markup = "<b>&lt;foo&gt;</b><b>bar</b>"
soup = self.soup(markup)
decoded = soup.decode(formatter = lambda x: x.upper())
# Instead of normal entity conversion code, the custom
# callable is called on every string.
self.assertEqual(
decoded,
- self.document_for(u"<b><FOO></b><b>BAR</b>"))
+ self.document_for("<b><FOO></b><b>BAR</b>"))
def test_formatter_is_run_on_attribute_values(self):
- markup = u'<a href="http://a.com?a=b&c=Ă©">e</a>'
+ markup = '<a href="http://a.com?a=b&c=Ă©">e</a>'
soup = self.soup(markup)
a = soup.a
- expect_minimal = u'<a href="http://a.com?a=b&amp;c=Ă©">e</a>'
+ expect_minimal = '<a href="http://a.com?a=b&amp;c=Ă©">e</a>'
self.assertEqual(expect_minimal, a.decode())
self.assertEqual(expect_minimal, a.decode(formatter="minimal"))
- expect_html = u'<a href="http://a.com?a=b&amp;c=&eacute;">e</a>'
+ expect_html = '<a href="http://a.com?a=b&amp;c=&eacute;">e</a>'
self.assertEqual(expect_html, a.decode(formatter="html"))
self.assertEqual(markup, a.decode(formatter=None))
- expect_upper = u'<a href="HTTP://A.COM?A=B&C=É">E</a>'
+ expect_upper = '<a href="HTTP://A.COM?A=B&C=É">E</a>'
self.assertEqual(expect_upper, a.decode(formatter=lambda x: x.upper()))
def test_formatter_skips_script_tag_for_html_documents(self):
@@ -1366,7 +1454,7 @@ class TestSubstitutions(SoupTest):
console.log("< < hey > > ");
</script>
"""
- encoded = BeautifulSoup(doc).encode()
+ encoded = BeautifulSoup(doc, 'html.parser').encode()
self.assertTrue(b"< < hey > >" in encoded)
def test_formatter_skips_style_tag_for_html_documents(self):
@@ -1375,7 +1463,7 @@ class TestSubstitutions(SoupTest):
console.log("< < hey > > ");
</style>
"""
- encoded = BeautifulSoup(doc).encode()
+ encoded = BeautifulSoup(doc, 'html.parser').encode()
self.assertTrue(b"< < hey > >" in encoded)
def test_prettify_leaves_preformatted_text_alone(self):
@@ -1383,24 +1471,24 @@ class TestSubstitutions(SoupTest):
# Everything outside the <pre> tag is reformatted, but everything
# inside is left alone.
self.assertEqual(
- u'<div>\n foo\n <pre> \tbar\n \n </pre>\n baz\n</div>',
+ '<div>\n foo\n <pre> \tbar\n \n </pre>\n baz\n</div>',
soup.div.prettify())
def test_prettify_accepts_formatter(self):
- soup = BeautifulSoup("<html><body>foo</body></html>")
+ soup = BeautifulSoup("<html><body>foo</body></html>", 'html.parser')
pretty = soup.prettify(formatter = lambda x: x.upper())
self.assertTrue("FOO" in pretty)
def test_prettify_outputs_unicode_by_default(self):
soup = self.soup("<a></a>")
- self.assertEqual(unicode, type(soup.prettify()))
+ self.assertEqual(str, type(soup.prettify()))
def test_prettify_can_encode_data(self):
soup = self.soup("<a></a>")
self.assertEqual(bytes, type(soup.prettify("utf-8")))
def test_html_entity_substitution_off_by_default(self):
- markup = u"<b>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</b>"
+ markup = "<b>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</b>"
soup = self.soup(markup)
encoded = soup.b.encode("utf-8")
self.assertEqual(encoded, markup.encode('utf-8'))
@@ -1444,45 +1532,53 @@ class TestEncoding(SoupTest):
"""Test the ability to encode objects into strings."""
def test_unicode_string_can_be_encoded(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertEqual(soup.b.string.encode("utf-8"),
- u"\N{SNOWMAN}".encode("utf-8"))
+ "\N{SNOWMAN}".encode("utf-8"))
def test_tag_containing_unicode_string_can_be_encoded(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertEqual(
soup.b.encode("utf-8"), html.encode("utf-8"))
def test_encoding_substitutes_unrecognized_characters_by_default(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertEqual(soup.b.encode("ascii"), b"<b>&#9731;</b>")
def test_encoding_can_be_made_strict(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertRaises(
UnicodeEncodeError, soup.encode, "ascii", errors="strict")
def test_decode_contents(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
- self.assertEqual(u"\N{SNOWMAN}", soup.b.decode_contents())
+ self.assertEqual("\N{SNOWMAN}", soup.b.decode_contents())
def test_encode_contents(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertEqual(
- u"\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents(
+ "\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents(
encoding="utf8"))
def test_deprecated_renderContents(self):
- html = u"<b>\N{SNOWMAN}</b>"
+ html = "<b>\N{SNOWMAN}</b>"
soup = self.soup(html)
self.assertEqual(
- u"\N{SNOWMAN}".encode("utf8"), soup.b.renderContents())
+ "\N{SNOWMAN}".encode("utf8"), soup.b.renderContents())
+
+ def test_repr(self):
+ html = "<b>\N{SNOWMAN}</b>"
+ soup = self.soup(html)
+ if PY3K:
+ self.assertEqual(html, repr(soup))
+ else:
+ self.assertEqual(b'<b>\\u2603</b>', repr(soup))
class TestNavigableStringSubclasses(SoupTest):
@@ -1522,6 +1618,9 @@ class TestNavigableStringSubclasses(SoupTest):
soup.insert(1, doctype)
self.assertEqual(soup.encode(), b"<!DOCTYPE foo>\n")
+ def test_declaration(self):
+ d = Declaration("foo")
+ self.assertEqual("<?foo?>", d.output_ready())
class TestSoupSelector(TreeTest):
@@ -1534,7 +1633,7 @@ class TestSoupSelector(TreeTest):
<link rel="stylesheet" href="blah.css" type="text/css" id="l1">
</head>
<body>
-
+<custom-dashed-tag class="dashed" id="dash1">Hello there.</custom-dashed-tag>
<div id="main" class="fancy">
<div id="inner">
<h1 id="header1">An H1</h1>
@@ -1552,8 +1651,18 @@ class TestSoupSelector(TreeTest):
<a href="#" id="s2a1">span2a1</a>
</span>
<span class="span3"></span>
+<custom-dashed-tag class="dashed" id="dash2"/>
+<div data-tag="dashedvalue" id="data1"/>
</span>
</div>
+<x id="xid">
+<z id="zida"/>
+<z id="zidab"/>
+<z id="zidac"/>
+</x>
+<y id="yid">
+<z id="zidb"/>
+</y>
<p lang="en" id="lang-en">English</p>
<p lang="en-gb" id="lang-en-gb">English UK</p>
<p lang="en-us" id="lang-en-us">English US</p>
@@ -1565,7 +1674,7 @@ class TestSoupSelector(TreeTest):
"""
def setUp(self):
- self.soup = BeautifulSoup(self.HTML)
+ self.soup = BeautifulSoup(self.HTML, 'html.parser')
def assertSelects(self, selector, expected_ids):
el_ids = [el['id'] for el in self.soup.select(selector)]
@@ -1587,21 +1696,29 @@ class TestSoupSelector(TreeTest):
els = self.soup.select('title')
self.assertEqual(len(els), 1)
self.assertEqual(els[0].name, 'title')
- self.assertEqual(els[0].contents, [u'The title'])
+ self.assertEqual(els[0].contents, ['The title'])
def test_one_tag_many(self):
els = self.soup.select('div')
- self.assertEqual(len(els), 3)
+ self.assertEqual(len(els), 4)
for div in els:
self.assertEqual(div.name, 'div')
+ el = self.soup.select_one('div')
+ self.assertEqual('main', el['id'])
+
+ def test_select_one_returns_none_if_no_match(self):
+ match = self.soup.select_one('nonexistenttag')
+ self.assertEqual(None, match)
+
+
def test_tag_in_tag_one(self):
els = self.soup.select('div div')
- self.assertSelects('div div', ['inner'])
+ self.assertSelects('div div', ['inner', 'data1'])
def test_tag_in_tag_many(self):
for selector in ('html div', 'html body div', 'body div'):
- self.assertSelects(selector, ['main', 'inner', 'footer'])
+ self.assertSelects(selector, ['data1', 'main', 'inner', 'footer'])
def test_tag_no_match(self):
self.assertEqual(len(self.soup.select('del')), 0)
@@ -1609,6 +1726,20 @@ class TestSoupSelector(TreeTest):
def test_invalid_tag(self):
self.assertRaises(ValueError, self.soup.select, 'tag%t')
+ def test_select_dashed_tag_ids(self):
+ self.assertSelects('custom-dashed-tag', ['dash1', 'dash2'])
+
+ def test_select_dashed_by_id(self):
+ dashed = self.soup.select('custom-dashed-tag[id=\"dash2\"]')
+ self.assertEqual(dashed[0].name, 'custom-dashed-tag')
+ self.assertEqual(dashed[0]['id'], 'dash2')
+
+ def test_dashed_tag_text(self):
+ self.assertEqual(self.soup.select('body > custom-dashed-tag')[0].text, 'Hello there.')
+
+ def test_select_dashed_matches_find_all(self):
+ self.assertEqual(self.soup.select('custom-dashed-tag'), self.soup.find_all('custom-dashed-tag'))
+
def test_header_tags(self):
self.assertSelectMultiple(
('h1', ['header1']),
@@ -1709,6 +1840,7 @@ class TestSoupSelector(TreeTest):
('[id^="m"]', ['me', 'main']),
('div[id^="m"]', ['main']),
('a[id^="m"]', ['me']),
+ ('div[data-tag^="dashed"]', ['data1'])
)
def test_attribute_endswith(self):
@@ -1716,8 +1848,8 @@ class TestSoupSelector(TreeTest):
('[href$=".css"]', ['l1']),
('link[href$=".css"]', ['l1']),
('link[id$="1"]', ['l1']),
- ('[id$="1"]', ['l1', 'p1', 'header1', 's1a1', 's2a1', 's1a2s1']),
- ('div[id$="1"]', []),
+ ('[id$="1"]', ['data1', 'l1', 'p1', 'header1', 's1a1', 's2a1', 's1a2s1', 'dash1']),
+ ('div[id$="1"]', ['data1']),
('[id$="noending"]', []),
)
@@ -1730,7 +1862,6 @@ class TestSoupSelector(TreeTest):
('[rel*="notstyle"]', []),
('link[rel*="notstyle"]', []),
('link[href*="bla"]', ['l1']),
- ('a[href*="http://"]', ['bob', 'me']),
('[href*="http://"]', ['bob', 'me']),
('[id*="p"]', ['pmulti', 'p1']),
('div[id*="m"]', ['main']),
@@ -1739,8 +1870,8 @@ class TestSoupSelector(TreeTest):
('[href*=".css"]', ['l1']),
('link[href*=".css"]', ['l1']),
('link[id*="1"]', ['l1']),
- ('[id*="1"]', ['l1', 'p1', 'header1', 's1a1', 's1a2', 's2a1', 's1a2s1']),
- ('div[id*="1"]', []),
+ ('[id*="1"]', ['data1', 'l1', 'p1', 'header1', 's1a1', 's1a2', 's2a1', 's1a2s1', 'dash1']),
+ ('div[id*="1"]', ['data1']),
('[id*="noending"]', []),
# New for this test
('[href*="."]', ['bob', 'me', 'l1']),
@@ -1748,6 +1879,7 @@ class TestSoupSelector(TreeTest):
('link[href*="."]', ['l1']),
('div[id*="n"]', ['main', 'inner']),
('div[id*="nn"]', ['inner']),
+ ('div[data-tag*="edval"]', ['data1'])
)
def test_attribute_exact_or_hypen(self):
@@ -1767,18 +1899,27 @@ class TestSoupSelector(TreeTest):
('p[class]', ['p1', 'pmulti']),
('[blah]', []),
('p[blah]', []),
+ ('div[data-tag]', ['data1'])
)
+ def test_unsupported_pseudoclass(self):
+ self.assertRaises(
+ NotImplementedError, self.soup.select, "a:no-such-pseudoclass")
+
+ self.assertRaises(
+ NotImplementedError, self.soup.select, "a:nth-of-type(a)")
+
+
def test_nth_of_type(self):
# Try to select first paragraph
els = self.soup.select('div#inner p:nth-of-type(1)')
self.assertEqual(len(els), 1)
- self.assertEqual(els[0].string, u'Some text')
+ self.assertEqual(els[0].string, 'Some text')
# Try to select third paragraph
els = self.soup.select('div#inner p:nth-of-type(3)')
self.assertEqual(len(els), 1)
- self.assertEqual(els[0].string, u'Another')
+ self.assertEqual(els[0].string, 'Another')
# Try to select (non-existent!) fourth paragraph
els = self.soup.select('div#inner p:nth-of-type(4)')
@@ -1791,7 +1932,7 @@ class TestSoupSelector(TreeTest):
def test_nth_of_type_direct_descendant(self):
els = self.soup.select('div#inner > p:nth-of-type(1)')
self.assertEqual(len(els), 1)
- self.assertEqual(els[0].string, u'Some text')
+ self.assertEqual(els[0].string, 'Some text')
def test_id_child_selector_nth_of_type(self):
self.assertSelects('#inner > p:nth-of-type(2)', ['p1'])
@@ -1803,7 +1944,7 @@ class TestSoupSelector(TreeTest):
selected = inner.select("div")
# The <div id="inner"> tag was selected. The <div id="footer">
# tag was not.
- self.assertSelectsIDs(selected, ['inner'])
+ self.assertSelectsIDs(selected, ['inner', 'data1'])
def test_overspecified_child_id(self):
self.assertSelects(".fancy #inner", ['inner'])
@@ -1827,3 +1968,44 @@ class TestSoupSelector(TreeTest):
def test_sibling_combinator_wont_select_same_tag_twice(self):
self.assertSelects('p[lang] ~ p', ['lang-en-gb', 'lang-en-us', 'lang-fr'])
+
+ # Test the selector grouping operator (the comma)
+ def test_multiple_select(self):
+ self.assertSelects('x, y', ['xid', 'yid'])
+
+ def test_multiple_select_with_no_space(self):
+ self.assertSelects('x,y', ['xid', 'yid'])
+
+ def test_multiple_select_with_more_space(self):
+ self.assertSelects('x, y', ['xid', 'yid'])
+
+ def test_multiple_select_duplicated(self):
+ self.assertSelects('x, x', ['xid'])
+
+ def test_multiple_select_sibling(self):
+ self.assertSelects('x, y ~ p[lang=fr]', ['xid', 'lang-fr'])
+
+ def test_multiple_select_tag_and_direct_descendant(self):
+ self.assertSelects('x, y > z', ['xid', 'zidb'])
+
+ def test_multiple_select_direct_descendant_and_tags(self):
+ self.assertSelects('div > x, y, z', ['xid', 'yid', 'zida', 'zidb', 'zidab', 'zidac'])
+
+ def test_multiple_select_indirect_descendant(self):
+ self.assertSelects('div x,y, z', ['xid', 'yid', 'zida', 'zidb', 'zidab', 'zidac'])
+
+ def test_invalid_multiple_select(self):
+ self.assertRaises(ValueError, self.soup.select, ',x, y')
+ self.assertRaises(ValueError, self.soup.select, 'x,,y')
+
+ def test_multiple_select_attrs(self):
+ self.assertSelects('p[lang=en], p[lang=en-gb]', ['lang-en', 'lang-en-gb'])
+
+ def test_multiple_select_ids(self):
+ self.assertSelects('x, y > z[id=zida], z[id=zidab], z[id=zidb]', ['xid', 'zidb', 'zidab'])
+
+ def test_multiple_select_nested(self):
+ self.assertSelects('body > div > x, y > z', ['xid', 'zidb'])
+
+
+
diff --git a/import-layers/yocto-poky/bitbake/lib/codegen.py b/import-layers/yocto-poky/bitbake/lib/codegen.py
index be772d510..62a6748c4 100644
--- a/import-layers/yocto-poky/bitbake/lib/codegen.py
+++ b/import-layers/yocto-poky/bitbake/lib/codegen.py
@@ -214,11 +214,11 @@ class SourceGenerator(NodeVisitor):
paren_or_comma()
self.write(keyword.arg + '=')
self.visit(keyword.value)
- if node.starargs is not None:
+ if hasattr(node, 'starargs') and node.starargs is not None:
paren_or_comma()
self.write('*')
self.visit(node.starargs)
- if node.kwargs is not None:
+ if hasattr(node, 'kwargs') and node.kwargs is not None:
paren_or_comma()
self.write('**')
self.visit(node.kwargs)
@@ -379,11 +379,11 @@ class SourceGenerator(NodeVisitor):
write_comma()
self.write(keyword.arg + '=')
self.visit(keyword.value)
- if node.starargs is not None:
+ if hasattr(node, 'starargs') and node.starargs is not None:
write_comma()
self.write('*')
self.visit(node.starargs)
- if node.kwargs is not None:
+ if hasattr(node, 'kwargs') and node.kwargs is not None:
write_comma()
self.write('**')
self.visit(node.kwargs)
diff --git a/import-layers/yocto-poky/bitbake/lib/ply/yacc.py b/import-layers/yocto-poky/bitbake/lib/ply/yacc.py
index 6168fd9a0..d50886ed2 100644
--- a/import-layers/yocto-poky/bitbake/lib/ply/yacc.py
+++ b/import-layers/yocto-poky/bitbake/lib/ply/yacc.py
@@ -195,6 +195,8 @@ class YaccProduction:
self.lexer = None
self.parser= None
def __getitem__(self,n):
+ if isinstance(n,slice):
+ return [self[i] for i in range(*(n.indices(len(self.slice))))]
if n >= 0: return self.slice[n].value
else: return self.stack[n].value
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar.py b/import-layers/yocto-poky/bitbake/lib/progressbar.py
deleted file mode 100644
index 114cdc16b..000000000
--- a/import-layers/yocto-poky/bitbake/lib/progressbar.py
+++ /dev/null
@@ -1,384 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: iso-8859-1 -*-
-#
-# progressbar - Text progressbar library for python.
-# Copyright (c) 2005 Nilton Volpato
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-
-"""Text progressbar library for python.
-
-This library provides a text mode progressbar. This is typically used
-to display the progress of a long running operation, providing a
-visual clue that processing is underway.
-
-The ProgressBar class manages the progress, and the format of the line
-is given by a number of widgets. A widget is an object that may
-display diferently depending on the state of the progress. There are
-three types of widget:
-- a string, which always shows itself;
-- a ProgressBarWidget, which may return a diferent value every time
-it's update method is called; and
-- a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
-expands to fill the remaining width of the line.
-
-The progressbar module is very easy to use, yet very powerful. And
-automatically supports features like auto-resizing when available.
-"""
-
-from __future__ import division
-
-__author__ = "Nilton Volpato"
-__author_email__ = "first-name dot last-name @ gmail.com"
-__date__ = "2006-05-07"
-__version__ = "2.3-dev"
-
-import sys, time, os
-from array import array
-try:
- from fcntl import ioctl
- import termios
-except ImportError:
- pass
-import signal
-try:
- basestring
-except NameError:
- basestring = (str,)
-
-class ProgressBarWidget(object):
- """This is an element of ProgressBar formatting.
-
- The ProgressBar object will call it's update value when an update
- is needed. It's size may change between call, but the results will
- not be good if the size changes drastically and repeatedly.
- """
- def update(self, pbar):
- """Returns the string representing the widget.
-
- The parameter pbar is a reference to the calling ProgressBar,
- where one can access attributes of the class for knowing how
- the update must be made.
-
- At least this function must be overriden."""
- pass
-
-class ProgressBarWidgetHFill(object):
- """This is a variable width element of ProgressBar formatting.
-
- The ProgressBar object will call it's update value, informing the
- width this object must the made. This is like TeX \\hfill, it will
- expand to fill the line. You can use more than one in the same
- line, and they will all have the same width, and together will
- fill the line.
- """
- def update(self, pbar, width):
- """Returns the string representing the widget.
-
- The parameter pbar is a reference to the calling ProgressBar,
- where one can access attributes of the class for knowing how
- the update must be made. The parameter width is the total
- horizontal width the widget must have.
-
- At least this function must be overriden."""
- pass
-
-
-class ETA(ProgressBarWidget):
- "Widget for the Estimated Time of Arrival"
- def format_time(self, seconds):
- return time.strftime('%H:%M:%S', time.gmtime(seconds))
- def update(self, pbar):
- if pbar.currval == 0:
- return 'ETA: --:--:--'
- elif pbar.finished:
- return 'Time: %s' % self.format_time(pbar.seconds_elapsed)
- else:
- elapsed = pbar.seconds_elapsed
- eta = elapsed * pbar.maxval / pbar.currval - elapsed
- return 'ETA: %s' % self.format_time(eta)
-
-class FileTransferSpeed(ProgressBarWidget):
- "Widget for showing the transfer speed (useful for file transfers)."
- def __init__(self, unit='B'):
- self.unit = unit
- self.fmt = '%6.2f %s'
- self.prefixes = ['', 'K', 'M', 'G', 'T', 'P']
- def update(self, pbar):
- if pbar.seconds_elapsed < 2e-6:#== 0:
- bps = 0.0
- else:
- bps = pbar.currval / pbar.seconds_elapsed
- spd = bps
- for u in self.prefixes:
- if spd < 1000:
- break
- spd /= 1000
- return self.fmt % (spd, u + self.unit + '/s')
-
-class RotatingMarker(ProgressBarWidget):
- "A rotating marker for filling the bar of progress."
- def __init__(self, markers='|/-\\'):
- self.markers = markers
- self.curmark = -1
- def update(self, pbar):
- if pbar.finished:
- return self.markers[0]
- self.curmark = (self.curmark + 1) % len(self.markers)
- return self.markers[self.curmark]
-
-class Percentage(ProgressBarWidget):
- "Just the percentage done."
- def update(self, pbar):
- return '%3d%%' % pbar.percentage()
-
-class SimpleProgress(ProgressBarWidget):
- "Returns what is already done and the total, e.g.: '5 of 47'"
- def __init__(self, sep=' of '):
- self.sep = sep
- def update(self, pbar):
- return '%d%s%d' % (pbar.currval, self.sep, pbar.maxval)
-
-class Bar(ProgressBarWidgetHFill):
- "The bar of progress. It will stretch to fill the line."
- def __init__(self, marker='#', left='|', right='|'):
- self.marker = marker
- self.left = left
- self.right = right
- def _format_marker(self, pbar):
- if isinstance(self.marker, basestring):
- return self.marker
- else:
- return self.marker.update(pbar)
- def update(self, pbar, width):
- percent = pbar.percentage()
- cwidth = width - len(self.left) - len(self.right)
- marked_width = int(percent * cwidth // 100)
- m = self._format_marker(pbar)
- bar = (self.left + (m * marked_width).ljust(cwidth) + self.right)
- return bar
-
-class ReverseBar(Bar):
- "The reverse bar of progress, or bar of regress. :)"
- def update(self, pbar, width):
- percent = pbar.percentage()
- cwidth = width - len(self.left) - len(self.right)
- marked_width = int(percent * cwidth // 100)
- m = self._format_marker(pbar)
- bar = (self.left + (m*marked_width).rjust(cwidth) + self.right)
- return bar
-
-default_widgets = [Percentage(), ' ', Bar()]
-class ProgressBar(object):
- """This is the ProgressBar class, it updates and prints the bar.
-
- A common way of using it is like:
- >>> pbar = ProgressBar().start()
- >>> for i in xrange(100):
- ... # do something
- ... pbar.update(i+1)
- ...
- >>> pbar.finish()
-
- You can also use a progressbar as an iterator:
- >>> progress = ProgressBar()
- >>> for i in progress(some_iterable):
- ... # do something
- ...
-
- But anything you want to do is possible (well, almost anything).
- You can supply different widgets of any type in any order. And you
- can even write your own widgets! There are many widgets already
- shipped and you should experiment with them.
-
- The term_width parameter must be an integer or None. In the latter case
- it will try to guess it, if it fails it will default to 80 columns.
-
- When implementing a widget update method you may access any
- attribute or function of the ProgressBar object calling the
- widget's update method. The most important attributes you would
- like to access are:
- - currval: current value of the progress, 0 <= currval <= maxval
- - maxval: maximum (and final) value of the progress
- - finished: True if the bar has finished (reached 100%), False o/w
- - start_time: the time when start() method of ProgressBar was called
- - seconds_elapsed: seconds elapsed since start_time
- - percentage(): percentage of the progress [0..100]. This is a method.
-
- The attributes above are unlikely to change between different versions,
- the other ones may change or cease to exist without notice, so try to rely
- only on the ones documented above if you are extending the progress bar.
- """
-
- __slots__ = ('currval', 'fd', 'finished', 'last_update_time', 'maxval',
- 'next_update', 'num_intervals', 'seconds_elapsed',
- 'signal_set', 'start_time', 'term_width', 'update_interval',
- 'widgets', '_iterable')
-
- _DEFAULT_MAXVAL = 100
-
- def __init__(self, maxval=None, widgets=default_widgets, term_width=None,
- fd=sys.stderr):
- self.maxval = maxval
- self.widgets = widgets
- self.fd = fd
- self.signal_set = False
- if term_width is not None:
- self.term_width = term_width
- else:
- try:
- self._handle_resize(None, None)
- signal.signal(signal.SIGWINCH, self._handle_resize)
- self.signal_set = True
- except (SystemExit, KeyboardInterrupt):
- raise
- except:
- self.term_width = int(os.environ.get('COLUMNS', 80)) - 1
-
- self.currval = 0
- self.finished = False
- self.start_time = None
- self.last_update_time = None
- self.seconds_elapsed = 0
- self._iterable = None
-
- def __call__(self, iterable):
- try:
- self.maxval = len(iterable)
- except TypeError:
- # If the iterable has no length, then rely on the value provided
- # by the user, otherwise fail.
- if not (isinstance(self.maxval, (int, long)) and self.maxval > 0):
- raise RuntimeError('Could not determine maxval from iterable. '
- 'You must explicitly provide a maxval.')
- self._iterable = iter(iterable)
- self.start()
- return self
-
- def __iter__(self):
- return self
-
- def next(self):
- try:
- next = self._iterable.next()
- self.update(self.currval + 1)
- return next
- except StopIteration:
- self.finish()
- raise
-
- def _handle_resize(self, signum, frame):
- h, w = array('h', ioctl(self.fd, termios.TIOCGWINSZ, '\0' * 8))[:2]
- self.term_width = w
-
- def percentage(self):
- "Returns the percentage of the progress."
- return self.currval * 100.0 / self.maxval
-
- def _format_widgets(self):
- r = []
- hfill_inds = []
- num_hfill = 0
- currwidth = 0
- for i, w in enumerate(self.widgets):
- if isinstance(w, ProgressBarWidgetHFill):
- r.append(w)
- hfill_inds.append(i)
- num_hfill += 1
- elif isinstance(w, basestring):
- r.append(w)
- currwidth += len(w)
- else:
- weval = w.update(self)
- currwidth += len(weval)
- r.append(weval)
- for iw in hfill_inds:
- widget_width = int((self.term_width - currwidth) // num_hfill)
- r[iw] = r[iw].update(self, widget_width)
- return r
-
- def _format_line(self):
- return ''.join(self._format_widgets()).ljust(self.term_width)
-
- def _next_update(self):
- return int((int(self.num_intervals *
- (self.currval / self.maxval)) + 1) *
- self.update_interval)
-
- def _need_update(self):
- """Returns true when the progressbar should print an updated line.
-
- You can override this method if you want finer grained control over
- updates.
-
- The current implementation is optimized to be as fast as possible and
- as economical as possible in the number of updates. However, depending
- on your usage you may want to do more updates. For instance, if your
- progressbar stays in the same percentage for a long time, and you want
- to update other widgets, like ETA, then you could return True after
- some time has passed with no updates.
-
- Ideally you could call self._format_line() and see if it's different
- from the previous _format_line() call, but calling _format_line() takes
- around 20 times more time than calling this implementation of
- _need_update().
- """
- return self.currval >= self.next_update
-
- def update(self, value):
- "Updates the progress bar to a new value."
- assert 0 <= value <= self.maxval, '0 <= %d <= %d' % (value, self.maxval)
- self.currval = value
- if not self._need_update():
- return
- if self.start_time is None:
- raise RuntimeError('You must call start() before calling update()')
- now = time.time()
- self.seconds_elapsed = now - self.start_time
- self.next_update = self._next_update()
- self.fd.write(self._format_line() + '\r')
- self.last_update_time = now
-
- def start(self):
- """Starts measuring time, and prints the bar at 0%.
-
- It returns self so you can use it like this:
- >>> pbar = ProgressBar().start()
- >>> for i in xrange(100):
- ... # do something
- ... pbar.update(i+1)
- ...
- >>> pbar.finish()
- """
- if self.maxval is None:
- self.maxval = self._DEFAULT_MAXVAL
- assert self.maxval > 0
-
- self.num_intervals = max(100, self.term_width)
- self.update_interval = self.maxval / self.num_intervals
- self.next_update = 0
-
- self.start_time = self.last_update_time = time.time()
- self.update(0)
- return self
-
- def finish(self):
- """Used to tell the progress is finished."""
- self.finished = True
- self.update(self.maxval)
- self.fd.write('\n')
- if self.signal_set:
- signal.signal(signal.SIGWINCH, signal.SIG_DFL)
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar/LICENSE.txt b/import-layers/yocto-poky/bitbake/lib/progressbar/LICENSE.txt
new file mode 100644
index 000000000..fc8ccdc1c
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/progressbar/LICENSE.txt
@@ -0,0 +1,52 @@
+You can redistribute and/or modify this library under the terms of the
+GNU LGPL license or BSD license (or both).
+
+---
+
+progressbar - Text progress bar library for python.
+Copyright (C) 2005 Nilton Volpato
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+---
+
+progressbar - Text progress bar library for python
+Copyright (c) 2008 Nilton Volpato
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ a. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ b. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ c. Neither the name of the author nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar/__init__.py b/import-layers/yocto-poky/bitbake/lib/progressbar/__init__.py
new file mode 100644
index 000000000..fbab744ee
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/progressbar/__init__.py
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# progressbar - Text progress bar library for Python.
+# Copyright (c) 2005 Nilton Volpato
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""Text progress bar library for Python.
+
+A text progress bar is typically used to display the progress of a long
+running operation, providing a visual cue that processing is underway.
+
+The ProgressBar class manages the current progress, and the format of the line
+is given by a number of widgets. A widget is an object that may display
+differently depending on the state of the progress bar. There are three types
+of widgets:
+ - a string, which always shows itself
+
+ - a ProgressBarWidget, which may return a different value every time its
+ update method is called
+
+ - a ProgressBarWidgetHFill, which is like ProgressBarWidget, except it
+ expands to fill the remaining width of the line.
+
+The progressbar module is very easy to use, yet very powerful. It will also
+automatically enable features like auto-resizing when the system supports it.
+"""
+
+__author__ = 'Nilton Volpato'
+__author_email__ = 'first-name dot last-name @ gmail.com'
+__date__ = '2011-05-14'
+__version__ = '2.3'
+
+from .compat import *
+from .widgets import *
+from .progressbar import *
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar/compat.py b/import-layers/yocto-poky/bitbake/lib/progressbar/compat.py
new file mode 100644
index 000000000..a39f4a1f4
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/progressbar/compat.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+#
+# progressbar - Text progress bar library for Python.
+# Copyright (c) 2005 Nilton Volpato
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""Compatibility methods and classes for the progressbar module."""
+
+
+# Python 3.x (and backports) use a modified iterator syntax
+# This will allow 2.x to behave with 3.x iterators
+try:
+ next
+except NameError:
+ def next(iter):
+ try:
+ # Try new style iterators
+ return iter.__next__()
+ except AttributeError:
+ # Fallback in case of a "native" iterator
+ return iter.next()
+
+
+# Python < 2.5 does not have "any"
+try:
+ any
+except NameError:
+ def any(iterator):
+ for item in iterator:
+ if item: return True
+ return False
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar/progressbar.py b/import-layers/yocto-poky/bitbake/lib/progressbar/progressbar.py
new file mode 100644
index 000000000..2873ad6ca
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/progressbar/progressbar.py
@@ -0,0 +1,315 @@
+# -*- coding: utf-8 -*-
+#
+# progressbar - Text progress bar library for Python.
+# Copyright (c) 2005 Nilton Volpato
+#
+# (With some small changes after importing into BitBake)
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""Main ProgressBar class."""
+
+from __future__ import division
+
+import math
+import os
+import signal
+import sys
+import time
+
+try:
+ from fcntl import ioctl
+ from array import array
+ import termios
+except ImportError:
+ pass
+
+from .compat import * # for: any, next
+from . import widgets
+
+
+class UnknownLength: pass
+
+
+class ProgressBar(object):
+ """The ProgressBar class which updates and prints the bar.
+
+ A common way of using it is like:
+ >>> pbar = ProgressBar().start()
+ >>> for i in range(100):
+ ... # do something
+ ... pbar.update(i+1)
+ ...
+ >>> pbar.finish()
+
+ You can also use a ProgressBar as an iterator:
+ >>> progress = ProgressBar()
+ >>> for i in progress(some_iterable):
+ ... # do something
+ ...
+
+ Since the progress bar is incredibly customizable you can specify
+ different widgets of any type in any order. You can even write your own
+ widgets! However, since there are already a good number of widgets you
+ should probably play around with them before moving on to create your own
+ widgets.
+
+ The term_width parameter represents the current terminal width. If the
+ parameter is set to an integer then the progress bar will use that,
+ otherwise it will attempt to determine the terminal width falling back to
+ 80 columns if the width cannot be determined.
+
+ When implementing a widget's update method you are passed a reference to
+ the current progress bar. As a result, you have access to the
+ ProgressBar's methods and attributes. Although there is nothing preventing
+ you from changing the ProgressBar you should treat it as read only.
+
+ Useful methods and attributes include (Public API):
+ - currval: current progress (0 <= currval <= maxval)
+ - maxval: maximum (and final) value
+ - finished: True if the bar has finished (reached 100%)
+ - start_time: the time when start() method of ProgressBar was called
+ - seconds_elapsed: seconds elapsed since start_time and last call to
+ update
+ - percentage(): progress in percent [0..100]
+ """
+
+ __slots__ = ('currval', 'fd', 'finished', 'last_update_time',
+ 'left_justify', 'maxval', 'next_update', 'num_intervals',
+ 'poll', 'seconds_elapsed', 'signal_set', 'start_time',
+ 'term_width', 'update_interval', 'widgets', '_time_sensitive',
+ '__iterable')
+
+ _DEFAULT_MAXVAL = 100
+ _DEFAULT_TERMSIZE = 80
+ _DEFAULT_WIDGETS = [widgets.Percentage(), ' ', widgets.Bar()]
+
+ def __init__(self, maxval=None, widgets=None, term_width=None, poll=1,
+ left_justify=True, fd=sys.stderr):
+ """Initializes a progress bar with sane defaults."""
+
+ # Don't share a reference with any other progress bars
+ if widgets is None:
+ widgets = list(self._DEFAULT_WIDGETS)
+
+ self.maxval = maxval
+ self.widgets = widgets
+ self.fd = fd
+ self.left_justify = left_justify
+
+ self.signal_set = False
+ if term_width is not None:
+ self.term_width = term_width
+ else:
+ try:
+ self._handle_resize(None, None)
+ signal.signal(signal.SIGWINCH, self._handle_resize)
+ self.signal_set = True
+ except (SystemExit, KeyboardInterrupt): raise
+ except Exception as e:
+ print("DEBUG 5 %s" % e)
+ self.term_width = self._env_size()
+
+ self.__iterable = None
+ self._update_widgets()
+ self.currval = 0
+ self.finished = False
+ self.last_update_time = None
+ self.poll = poll
+ self.seconds_elapsed = 0
+ self.start_time = None
+ self.update_interval = 1
+ self.next_update = 0
+
+
+ def __call__(self, iterable):
+ """Use a ProgressBar to iterate through an iterable."""
+
+ try:
+ self.maxval = len(iterable)
+ except:
+ if self.maxval is None:
+ self.maxval = UnknownLength
+
+ self.__iterable = iter(iterable)
+ return self
+
+
+ def __iter__(self):
+ return self
+
+
+ def __next__(self):
+ try:
+ value = next(self.__iterable)
+ if self.start_time is None:
+ self.start()
+ else:
+ self.update(self.currval + 1)
+ return value
+ except StopIteration:
+ if self.start_time is None:
+ self.start()
+ self.finish()
+ raise
+
+
+ # Create an alias so that Python 2.x won't complain about not being
+ # an iterator.
+ next = __next__
+
+
+ def _env_size(self):
+ """Tries to find the term_width from the environment."""
+
+ return int(os.environ.get('COLUMNS', self._DEFAULT_TERMSIZE)) - 1
+
+
+ def _handle_resize(self, signum=None, frame=None):
+ """Tries to catch resize signals sent from the terminal."""
+
+ h, w = array('h', ioctl(self.fd, termios.TIOCGWINSZ, '\0' * 8))[:2]
+ self.term_width = w
+
+
+ def percentage(self):
+ """Returns the progress as a percentage."""
+ if self.currval >= self.maxval:
+ return 100.0
+ return (self.currval * 100.0 / self.maxval) if self.maxval else 100.00
+
+ percent = property(percentage)
+
+
+ def _format_widgets(self):
+ result = []
+ expanding = []
+ width = self.term_width
+
+ for index, widget in enumerate(self.widgets):
+ if isinstance(widget, widgets.WidgetHFill):
+ result.append(widget)
+ expanding.insert(0, index)
+ else:
+ widget = widgets.format_updatable(widget, self)
+ result.append(widget)
+ width -= len(widget)
+
+ count = len(expanding)
+ while count:
+ portion = max(int(math.ceil(width * 1. / count)), 0)
+ index = expanding.pop()
+ count -= 1
+
+ widget = result[index].update(self, portion)
+ width -= len(widget)
+ result[index] = widget
+
+ return result
+
+
+ def _format_line(self):
+ """Joins the widgets and justifies the line."""
+
+ widgets = ''.join(self._format_widgets())
+
+ if self.left_justify: return widgets.ljust(self.term_width)
+ else: return widgets.rjust(self.term_width)
+
+
+ def _need_update(self):
+ """Returns whether the ProgressBar should redraw the line."""
+ if self.currval >= self.next_update or self.finished: return True
+
+ delta = time.time() - self.last_update_time
+ return self._time_sensitive and delta > self.poll
+
+
+ def _update_widgets(self):
+ """Checks all widgets for the time sensitive bit."""
+
+ self._time_sensitive = any(getattr(w, 'TIME_SENSITIVE', False)
+ for w in self.widgets)
+
+
+ def update(self, value=None):
+ """Updates the ProgressBar to a new value."""
+
+ if value is not None and value is not UnknownLength:
+ if (self.maxval is not UnknownLength
+ and not 0 <= value <= self.maxval):
+
+ raise ValueError('Value out of range')
+
+ self.currval = value
+
+
+ if not self._need_update(): return
+ if self.start_time is None:
+ raise RuntimeError('You must call "start" before calling "update"')
+
+ now = time.time()
+ self.seconds_elapsed = now - self.start_time
+ self.next_update = self.currval + self.update_interval
+ output = self._format_line()
+ self.fd.write(output + '\r')
+ self.fd.flush()
+ self.last_update_time = now
+ return output
+
+
+ def start(self, update=True):
+ """Starts measuring time, and prints the bar at 0%.
+
+ It returns self so you can use it like this:
+ >>> pbar = ProgressBar().start()
+ >>> for i in range(100):
+ ... # do something
+ ... pbar.update(i+1)
+ ...
+ >>> pbar.finish()
+ """
+
+ if self.maxval is None:
+ self.maxval = self._DEFAULT_MAXVAL
+
+ self.num_intervals = max(100, self.term_width)
+ self.next_update = 0
+
+ if self.maxval is not UnknownLength:
+ if self.maxval < 0: raise ValueError('Value out of range')
+ self.update_interval = self.maxval / self.num_intervals
+
+
+ self.start_time = time.time()
+ if update:
+ self.last_update_time = self.start_time
+ self.update(0)
+ else:
+ self.last_update_time = 0
+
+ return self
+
+
+ def finish(self):
+ """Puts the ProgressBar bar in the finished state."""
+
+ if self.finished:
+ return
+ self.finished = True
+ self.update(self.maxval)
+ self.fd.write('\n')
+ if self.signal_set:
+ signal.signal(signal.SIGWINCH, signal.SIG_DFL)
diff --git a/import-layers/yocto-poky/bitbake/lib/progressbar/widgets.py b/import-layers/yocto-poky/bitbake/lib/progressbar/widgets.py
new file mode 100644
index 000000000..77285ca7a
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/progressbar/widgets.py
@@ -0,0 +1,391 @@
+# -*- coding: utf-8 -*-
+#
+# progressbar - Text progress bar library for Python.
+# Copyright (c) 2005 Nilton Volpato
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""Default ProgressBar widgets."""
+
+from __future__ import division
+
+import datetime
+import math
+
+try:
+ from abc import ABCMeta, abstractmethod
+except ImportError:
+ AbstractWidget = object
+ abstractmethod = lambda fn: fn
+else:
+ AbstractWidget = ABCMeta('AbstractWidget', (object,), {})
+
+
+def format_updatable(updatable, pbar):
+ if hasattr(updatable, 'update'): return updatable.update(pbar)
+ else: return updatable
+
+
+class Widget(AbstractWidget):
+ """The base class for all widgets.
+
+ The ProgressBar will call the widget's update value when the widget should
+ be updated. The widget's size may change between calls, but the widget may
+ display incorrectly if the size changes drastically and repeatedly.
+
+ The boolean TIME_SENSITIVE informs the ProgressBar that it should be
+ updated more often because it is time sensitive.
+ """
+
+ TIME_SENSITIVE = False
+ __slots__ = ()
+
+ @abstractmethod
+ def update(self, pbar):
+ """Updates the widget.
+
+ pbar - a reference to the calling ProgressBar
+ """
+
+
+class WidgetHFill(Widget):
+ """The base class for all variable width widgets.
+
+ This widget is much like the \\hfill command in TeX, it will expand to
+ fill the line. You can use more than one in the same line, and they will
+ all have the same width, and together will fill the line.
+ """
+
+ @abstractmethod
+ def update(self, pbar, width):
+ """Updates the widget providing the total width the widget must fill.
+
+ pbar - a reference to the calling ProgressBar
+ width - The total width the widget must fill
+ """
+
+
+class Timer(Widget):
+ """Widget which displays the elapsed seconds."""
+
+ __slots__ = ('format_string',)
+ TIME_SENSITIVE = True
+
+ def __init__(self, format='Elapsed Time: %s'):
+ self.format_string = format
+
+ @staticmethod
+ def format_time(seconds):
+ """Formats time as the string "HH:MM:SS"."""
+
+ return str(datetime.timedelta(seconds=int(seconds)))
+
+
+ def update(self, pbar):
+ """Updates the widget to show the elapsed time."""
+
+ return self.format_string % self.format_time(pbar.seconds_elapsed)
+
+
+class ETA(Timer):
+ """Widget which attempts to estimate the time of arrival."""
+
+ TIME_SENSITIVE = True
+
+ def update(self, pbar):
+ """Updates the widget to show the ETA or total time when finished."""
+
+ if pbar.currval == 0:
+ return 'ETA: --:--:--'
+ elif pbar.finished:
+ return 'Time: %s' % self.format_time(pbar.seconds_elapsed)
+ else:
+ elapsed = pbar.seconds_elapsed
+ eta = elapsed * pbar.maxval / pbar.currval - elapsed
+ return 'ETA: %s' % self.format_time(eta)
+
+
+class AdaptiveETA(Timer):
+ """Widget which attempts to estimate the time of arrival.
+
+ Uses a weighted average of two estimates:
+ 1) ETA based on the total progress and time elapsed so far
+ 2) ETA based on the progress as per the last 10 update reports
+
+ The weight depends on the current progress so that to begin with the
+ total progress is used and at the end only the most recent progress is
+ used.
+ """
+
+ TIME_SENSITIVE = True
+ NUM_SAMPLES = 10
+
+ def _update_samples(self, currval, elapsed):
+ sample = (currval, elapsed)
+ if not hasattr(self, 'samples'):
+ self.samples = [sample] * (self.NUM_SAMPLES + 1)
+ else:
+ self.samples.append(sample)
+ return self.samples.pop(0)
+
+ def _eta(self, maxval, currval, elapsed):
+ return elapsed * maxval / float(currval) - elapsed
+
+ def update(self, pbar):
+ """Updates the widget to show the ETA or total time when finished."""
+ if pbar.currval == 0:
+ return 'ETA: --:--:--'
+ elif pbar.finished:
+ return 'Time: %s' % self.format_time(pbar.seconds_elapsed)
+ else:
+ elapsed = pbar.seconds_elapsed
+ currval1, elapsed1 = self._update_samples(pbar.currval, elapsed)
+ eta = self._eta(pbar.maxval, pbar.currval, elapsed)
+ if pbar.currval > currval1:
+ etasamp = self._eta(pbar.maxval - currval1,
+ pbar.currval - currval1,
+ elapsed - elapsed1)
+ weight = (pbar.currval / float(pbar.maxval)) ** 0.5
+ eta = (1 - weight) * eta + weight * etasamp
+ return 'ETA: %s' % self.format_time(eta)
+
+
+class FileTransferSpeed(Widget):
+ """Widget for showing the transfer speed (useful for file transfers)."""
+
+ FORMAT = '%6.2f %s%s/s'
+ PREFIXES = ' kMGTPEZY'
+ __slots__ = ('unit',)
+
+ def __init__(self, unit='B'):
+ self.unit = unit
+
+ def update(self, pbar):
+ """Updates the widget with the current SI prefixed speed."""
+
+ if pbar.seconds_elapsed < 2e-6 or pbar.currval < 2e-6: # =~ 0
+ scaled = power = 0
+ else:
+ speed = pbar.currval / pbar.seconds_elapsed
+ power = int(math.log(speed, 1000))
+ scaled = speed / 1000.**power
+
+ return self.FORMAT % (scaled, self.PREFIXES[power], self.unit)
+
+
+class AnimatedMarker(Widget):
+ """An animated marker for the progress bar which defaults to appear as if
+ it were rotating.
+ """
+
+ __slots__ = ('markers', 'curmark')
+
+ def __init__(self, markers='|/-\\'):
+ self.markers = markers
+ self.curmark = -1
+
+ def update(self, pbar):
+ """Updates the widget to show the next marker or the first marker when
+ finished"""
+
+ if pbar.finished: return self.markers[0]
+
+ self.curmark = (self.curmark + 1) % len(self.markers)
+ return self.markers[self.curmark]
+
+# Alias for backwards compatibility
+RotatingMarker = AnimatedMarker
+
+
+class Counter(Widget):
+ """Displays the current count."""
+
+ __slots__ = ('format_string',)
+
+ def __init__(self, format='%d'):
+ self.format_string = format
+
+ def update(self, pbar):
+ return self.format_string % pbar.currval
+
+
+class Percentage(Widget):
+ """Displays the current percentage as a number with a percent sign."""
+
+ def update(self, pbar):
+ return '%3d%%' % pbar.percentage()
+
+
+class FormatLabel(Timer):
+ """Displays a formatted label."""
+
+ mapping = {
+ 'elapsed': ('seconds_elapsed', Timer.format_time),
+ 'finished': ('finished', None),
+ 'last_update': ('last_update_time', None),
+ 'max': ('maxval', None),
+ 'seconds': ('seconds_elapsed', None),
+ 'start': ('start_time', None),
+ 'value': ('currval', None)
+ }
+
+ __slots__ = ('format_string',)
+ def __init__(self, format):
+ self.format_string = format
+
+ def update(self, pbar):
+ context = {}
+ for name, (key, transform) in self.mapping.items():
+ try:
+ value = getattr(pbar, key)
+
+ if transform is None:
+ context[name] = value
+ else:
+ context[name] = transform(value)
+ except: pass
+
+ return self.format_string % context
+
+
+class SimpleProgress(Widget):
+ """Returns progress as a count of the total (e.g.: "5 of 47")."""
+
+ __slots__ = ('sep',)
+
+ def __init__(self, sep=' of '):
+ self.sep = sep
+
+ def update(self, pbar):
+ return '%d%s%d' % (pbar.currval, self.sep, pbar.maxval)
+
+
+class Bar(WidgetHFill):
+ """A progress bar which stretches to fill the line."""
+
+ __slots__ = ('marker', 'left', 'right', 'fill', 'fill_left')
+
+ def __init__(self, marker='#', left='|', right='|', fill=' ',
+ fill_left=True):
+ """Creates a customizable progress bar.
+
+ marker - string or updatable object to use as a marker
+ left - string or updatable object to use as a left border
+ right - string or updatable object to use as a right border
+ fill - character to use for the empty part of the progress bar
+ fill_left - whether to fill from the left or the right
+ """
+ self.marker = marker
+ self.left = left
+ self.right = right
+ self.fill = fill
+ self.fill_left = fill_left
+
+
+ def update(self, pbar, width):
+ """Updates the progress bar and its subcomponents."""
+
+ left, marked, right = (format_updatable(i, pbar) for i in
+ (self.left, self.marker, self.right))
+
+ width -= len(left) + len(right)
+ # Marked must *always* have length of 1
+ if pbar.maxval:
+ marked *= int(pbar.currval / pbar.maxval * width)
+ else:
+ marked = ''
+
+ if self.fill_left:
+ return '%s%s%s' % (left, marked.ljust(width, self.fill), right)
+ else:
+ return '%s%s%s' % (left, marked.rjust(width, self.fill), right)
+
+
+class ReverseBar(Bar):
+ """A bar which has a marker which bounces from side to side."""
+
+ def __init__(self, marker='#', left='|', right='|', fill=' ',
+ fill_left=False):
+ """Creates a customizable progress bar.
+
+ marker - string or updatable object to use as a marker
+ left - string or updatable object to use as a left border
+ right - string or updatable object to use as a right border
+ fill - character to use for the empty part of the progress bar
+ fill_left - whether to fill from the left or the right
+ """
+ self.marker = marker
+ self.left = left
+ self.right = right
+ self.fill = fill
+ self.fill_left = fill_left
+
+
+class BouncingBar(Bar):
+ def update(self, pbar, width):
+ """Updates the progress bar and its subcomponents."""
+
+ left, marker, right = (format_updatable(i, pbar) for i in
+ (self.left, self.marker, self.right))
+
+ width -= len(left) + len(right)
+
+ if pbar.finished: return '%s%s%s' % (left, width * marker, right)
+
+ position = int(pbar.currval % (width * 2 - 1))
+ if position > width: position = width * 2 - position
+ lpad = self.fill * (position - 1)
+ rpad = self.fill * (width - len(marker) - len(lpad))
+
+ # Swap if we want to bounce the other way
+ if not self.fill_left: rpad, lpad = lpad, rpad
+
+ return '%s%s%s%s%s' % (left, lpad, marker, rpad, right)
+
+
+class BouncingSlider(Bar):
+ """
+ A slider that bounces back and forth in response to update() calls
+ without reference to the actual value. Based on a combination of
+ BouncingBar from a newer version of this module and RotatingMarker.
+ """
+ def __init__(self, marker='<=>'):
+ self.curmark = -1
+ self.forward = True
+ Bar.__init__(self, marker=marker)
+ def update(self, pbar, width):
+ left, marker, right = (format_updatable(i, pbar) for i in
+ (self.left, self.marker, self.right))
+
+ width -= len(left) + len(right)
+ if width < 0:
+ return ''
+
+ if pbar.finished: return '%s%s%s' % (left, width * '=', right)
+
+ self.curmark = self.curmark + 1
+ position = int(self.curmark % (width * 2 - 1))
+ if position + len(marker) > width:
+ self.forward = not self.forward
+ self.curmark = 1
+ position = 1
+ lpad = ' ' * (position - 1)
+ rpad = ' ' * (width - len(marker) - len(lpad))
+
+ if not self.forward:
+ temp = lpad
+ lpad = rpad
+ rpad = temp
+ return '%s%s%s%s%s' % (left, lpad, marker, rpad, right)
diff --git a/import-layers/yocto-poky/bitbake/lib/prserv/db.py b/import-layers/yocto-poky/bitbake/lib/prserv/db.py
index 2a8618417..495d09f39 100644
--- a/import-layers/yocto-poky/bitbake/lib/prserv/db.py
+++ b/import-layers/yocto-poky/bitbake/lib/prserv/db.py
@@ -260,7 +260,7 @@ class PRData(object):
self.connection.close()
def __getitem__(self,tblname):
- if not isinstance(tblname, basestring):
+ if not isinstance(tblname, str):
raise TypeError("tblname argument must be a string, not '%s'" %
type(tblname))
if tblname in self._tables:
diff --git a/import-layers/yocto-poky/bitbake/lib/prserv/serv.py b/import-layers/yocto-poky/bitbake/lib/prserv/serv.py
index affccd9b3..cafcc820c 100644
--- a/import-layers/yocto-poky/bitbake/lib/prserv/serv.py
+++ b/import-layers/yocto-poky/bitbake/lib/prserv/serv.py
@@ -1,10 +1,10 @@
import os,sys,logging
import signal, time
-from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
+from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import threading
-import Queue
+import queue
import socket
-import StringIO
+import io
try:
import sqlite3
@@ -64,7 +64,7 @@ class PRServer(SimpleXMLRPCServer):
self.register_function(self.importone, "importone")
self.register_introspection_functions()
- self.requestqueue = Queue.Queue()
+ self.requestqueue = queue.Queue()
self.handlerthread = threading.Thread(target = self.process_request_thread)
self.handlerthread.daemon = False
@@ -83,7 +83,7 @@ class PRServer(SimpleXMLRPCServer):
while not self.quit:
try:
(request, client_address) = self.requestqueue.get(True, 30)
- except Queue.Empty:
+ except queue.Empty:
self.table.sync_if_dirty()
continue
try:
@@ -126,7 +126,7 @@ class PRServer(SimpleXMLRPCServer):
Returns None if the database engine does not support dumping to
script or if some other error is encountered in processing.
"""
- buff = StringIO.StringIO()
+ buff = io.StringIO()
try:
self.table.sync()
self.table.dump_db(buff)
@@ -242,8 +242,8 @@ class PRServer(SimpleXMLRPCServer):
sys.stdout.flush()
sys.stderr.flush()
- si = file('/dev/null', 'r')
- so = file(self.logfile, 'a+')
+ si = open('/dev/null', 'r')
+ so = open(self.logfile, 'a+')
se = so
os.dup2(si.fileno(),sys.stdin.fileno())
os.dup2(so.fileno(),sys.stdout.fileno())
@@ -263,7 +263,7 @@ class PRServer(SimpleXMLRPCServer):
# write pidfile
pid = str(os.getpid())
- pf = file(self.pidfile, 'w')
+ pf = open(self.pidfile, 'w')
pf.write("%s\n" % pid)
pf.close()
@@ -323,7 +323,7 @@ def start_daemon(dbfile, host, port, logfile):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = file(pidfile,'r')
+ pf = open(pidfile,'r')
pid = int(pf.readline().strip())
pf.close()
except IOError:
@@ -350,7 +350,7 @@ def stop_daemon(host, port):
ip = socket.gethostbyname(host)
pidfile = PIDPREFIX % (ip, port)
try:
- pf = file(pidfile,'r')
+ pf = open(pidfile,'r')
pid = int(pf.readline().strip())
pf.close()
except IOError:
@@ -420,7 +420,7 @@ class PRServiceConfigError(Exception):
def auto_start(d):
global singleton
- host_params = filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':'))
+ host_params = list(filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':')))
if not host_params:
return None
diff --git a/import-layers/yocto-poky/bitbake/lib/pyinotify.py b/import-layers/yocto-poky/bitbake/lib/pyinotify.py
index 2dae00211..4eb03b092 100644
--- a/import-layers/yocto-poky/bitbake/lib/pyinotify.py
+++ b/import-layers/yocto-poky/bitbake/lib/pyinotify.py
@@ -42,13 +42,14 @@ class UnsupportedPythonVersionError(PyinotifyError):
@param version: Current Python version
@type version: string
"""
- err = 'Python %s is unsupported, requires at least Python 2.4'
- PyinotifyError.__init__(self, err % version)
+ PyinotifyError.__init__(self,
+ ('Python %s is unsupported, requires '
+ 'at least Python 3.0') % version)
# Check Python version
import sys
-if sys.version_info < (2, 4):
+if sys.version_info < (3, 0):
raise UnsupportedPythonVersionError(sys.version)
@@ -68,6 +69,8 @@ from datetime import datetime, timedelta
import time
import re
import asyncore
+import glob
+import locale
import subprocess
try:
@@ -76,12 +79,6 @@ except ImportError:
pass # Will fail on Python 2.4 which has reduce() builtin anyway.
try:
- from glob import iglob as glob
-except ImportError:
- # Python 2.4 does not have glob.iglob().
- from glob import glob as glob
-
-try:
import ctypes
import ctypes.util
except ImportError:
@@ -95,9 +92,7 @@ except ImportError:
__author__ = "seb@dbzteam.org (Sebastien Martini)"
-__version__ = "0.9.5"
-
-__metaclass__ = type # Use new-style classes by default
+__version__ = "0.9.6"
# Compatibity mode: set to True to improve compatibility with
@@ -122,6 +117,9 @@ class INotifyWrapper:
"""
@staticmethod
def create():
+ """
+ Factory method instanciating and returning the right wrapper.
+ """
# First, try to use ctypes.
if ctypes:
inotify = _CtypesLibcINotifyWrapper()
@@ -173,7 +171,7 @@ class _INotifySyscallsWrapper(INotifyWrapper):
def _inotify_init(self):
try:
fd = inotify_syscalls.inotify_init()
- except IOError, err:
+ except IOError as err:
self._last_errno = err.errno
return -1
return fd
@@ -181,7 +179,7 @@ class _INotifySyscallsWrapper(INotifyWrapper):
def _inotify_add_watch(self, fd, pathname, mask):
try:
wd = inotify_syscalls.inotify_add_watch(fd, pathname, mask)
- except IOError, err:
+ except IOError as err:
self._last_errno = err.errno
return -1
return wd
@@ -189,7 +187,7 @@ class _INotifySyscallsWrapper(INotifyWrapper):
def _inotify_rm_watch(self, fd, wd):
try:
ret = inotify_syscalls.inotify_rm_watch(fd, wd)
- except IOError, err:
+ except IOError as err:
self._last_errno = err.errno
return -1
return ret
@@ -213,17 +211,8 @@ class _CtypesLibcINotifyWrapper(INotifyWrapper):
except (OSError, IOError):
pass # Will attemp to load it with None anyway.
- if sys.version_info >= (2, 6):
- self._libc = ctypes.CDLL(libc_name, use_errno=True)
- self._get_errno_func = ctypes.get_errno
- else:
- self._libc = ctypes.CDLL(libc_name)
- try:
- location = self._libc.__errno_location
- location.restype = ctypes.POINTER(ctypes.c_int)
- self._get_errno_func = lambda: location().contents.value
- except AttributeError:
- pass
+ self._libc = ctypes.CDLL(libc_name, use_errno=True)
+ self._get_errno_func = ctypes.get_errno
# Eventually check that libc has needed inotify bindings.
if (not hasattr(self._libc, 'inotify_init') or
@@ -241,9 +230,8 @@ class _CtypesLibcINotifyWrapper(INotifyWrapper):
return True
def _get_errno(self):
- if self._get_errno_func is not None:
- return self._get_errno_func()
- return None
+ assert self._get_errno_func
+ return self._get_errno_func()
def _inotify_init(self):
assert self._libc is not None
@@ -251,6 +239,11 @@ class _CtypesLibcINotifyWrapper(INotifyWrapper):
def _inotify_add_watch(self, fd, pathname, mask):
assert self._libc is not None
+ # Encodes path to a bytes string. This conversion seems required because
+ # ctypes.create_string_buffer seems to manipulate bytes internally.
+ # Moreover it seems that inotify_add_watch does not work very well when
+ # it receives an ctypes.create_unicode_buffer instance as argument.
+ pathname = pathname.encode(sys.getfilesystemencoding())
pathname = ctypes.create_string_buffer(pathname)
return self._libc.inotify_add_watch(fd, pathname, mask)
@@ -258,10 +251,6 @@ class _CtypesLibcINotifyWrapper(INotifyWrapper):
assert self._libc is not None
return self._libc.inotify_rm_watch(fd, wd)
- def _sysctl(self, *args):
- assert self._libc is not None
- return self._libc.sysctl(*args)
-
# Logging
def logger_init():
@@ -278,97 +267,58 @@ log = logger_init()
# inotify's variables
-class SysCtlINotify:
+class ProcINotify:
"""
- Access (read, write) inotify's variables through sysctl. Usually it
- requires administrator rights to update them.
+ Access (read, write) inotify's variables through /proc/sys/. Note that
+ usually it requires administrator rights to update them.
Examples:
- Read max_queued_events attribute: myvar = max_queued_events.value
- Update max_queued_events attribute: max_queued_events.value = 42
"""
-
- inotify_attrs = {'max_user_instances': 1,
- 'max_user_watches': 2,
- 'max_queued_events': 3}
-
- def __init__(self, attrname, inotify_wrapper):
- # FIXME: right now only supporting ctypes
- assert ctypes
- self._attrname = attrname
- self._inotify_wrapper = inotify_wrapper
- sino = ctypes.c_int * 3
- self._attr = sino(5, 20, SysCtlINotify.inotify_attrs[attrname])
-
- @staticmethod
- def create(attrname):
- """
- Factory method instanciating and returning the right wrapper.
- """
- # FIXME: right now only supporting ctypes
- if ctypes is None:
- return None
- inotify_wrapper = _CtypesLibcINotifyWrapper()
- if not inotify_wrapper.init():
- return None
- return SysCtlINotify(attrname, inotify_wrapper)
+ def __init__(self, attr):
+ self._base = "/proc/sys/fs/inotify"
+ self._attr = attr
def get_val(self):
"""
- Gets attribute's value. Raises OSError if the operation failed.
+ Gets attribute's value.
@return: stored value.
@rtype: int
+ @raise IOError: if corresponding file in /proc/sys cannot be read.
"""
- oldv = ctypes.c_int(0)
- size = ctypes.c_int(ctypes.sizeof(oldv))
- sysctl = self._inotify_wrapper._sysctl
- res = sysctl(self._attr, 3,
- ctypes.c_voidp(ctypes.addressof(oldv)),
- ctypes.addressof(size),
- None, 0)
- if res == -1:
- raise OSError(self._inotify_wrapper.get_errno(),
- self._inotify_wrapper.str_errno())
- return oldv.value
+ with open(os.path.join(self._base, self._attr), 'r') as file_obj:
+ return int(file_obj.readline())
def set_val(self, nval):
"""
- Sets new attribute's value. Raises OSError if the operation failed.
+ Sets new attribute's value.
@param nval: replaces current value by nval.
@type nval: int
+ @raise IOError: if corresponding file in /proc/sys cannot be written.
"""
- oldv = ctypes.c_int(0)
- sizeo = ctypes.c_int(ctypes.sizeof(oldv))
- newv = ctypes.c_int(nval)
- sizen = ctypes.c_int(ctypes.sizeof(newv))
- sysctl = self._inotify_wrapper._sysctl
- res = sysctl(self._attr, 3,
- ctypes.c_voidp(ctypes.addressof(oldv)),
- ctypes.addressof(sizeo),
- ctypes.c_voidp(ctypes.addressof(newv)),
- sizen)
- if res == -1:
- raise OSError(self._inotify_wrapper.get_errno(),
- self._inotify_wrapper.str_errno())
+ with open(os.path.join(self._base, self._attr), 'w') as file_obj:
+ file_obj.write(str(nval) + '\n')
value = property(get_val, set_val)
def __repr__(self):
- return '<%s=%d>' % (self._attrname, self.get_val())
+ return '<%s=%d>' % (self._attr, self.get_val())
# Inotify's variables
#
-# FIXME: currently these variables are only accessible when ctypes is used,
-# otherwise there are set to None.
+# Note: may raise IOError if the corresponding value in /proc/sys
+# cannot be accessed.
#
-# read: myvar = max_queued_events.value
-# update: max_queued_events.value = 42
+# Examples:
+# - read: myvar = max_queued_events.value
+# - update: max_queued_events.value = 42
#
for attrname in ('max_queued_events', 'max_user_instances', 'max_user_watches'):
- globals()[attrname] = SysCtlINotify.create(attrname)
+ globals()[attrname] = ProcINotify(attrname)
class EventsCodes:
@@ -536,7 +486,7 @@ class _Event:
continue
if attr == 'mask':
value = hex(getattr(self, attr))
- elif isinstance(value, basestring) and not value:
+ elif isinstance(value, str) and not value:
value = "''"
s += ' %s%s%s' % (output_format.field_name(attr),
output_format.punctuation('='),
@@ -628,7 +578,7 @@ class Event(_Event):
self.name))
else:
self.pathname = os.path.abspath(self.path)
- except AttributeError, err:
+ except AttributeError as err:
# Usually it is not an error some events are perfectly valids
# despite the lack of these attributes.
log.debug(err)
@@ -718,8 +668,8 @@ class _SysProcessEvent(_ProcessEvent):
and self._mv.
"""
date_cur_ = datetime.now()
- for seq in [self._mv_cookie, self._mv]:
- for k in seq.keys():
+ for seq in (self._mv_cookie, self._mv):
+ for k in list(seq.keys()):
if (date_cur_ - seq[k][1]) > timedelta(minutes=1):
log.debug('Cleanup: deleting entry %s', seq[k][0])
del seq[k]
@@ -767,9 +717,9 @@ class _SysProcessEvent(_ProcessEvent):
continue
rawevent = _RawEvent(created_dir_wd, flags, 0, name)
self._notifier.append_event(rawevent)
- except OSError, err:
- msg = "process_IN_CREATE, invalid directory %s: %s"
- log.debug(msg % (created_dir, str(err)))
+ except OSError as err:
+ msg = "process_IN_CREATE, invalid directory: %s"
+ log.debug(msg % str(err))
return self.process_default(raw_event)
def process_IN_MOVED_FROM(self, raw_event):
@@ -1097,8 +1047,8 @@ class Stats(ProcessEvent):
@type filename: string
"""
flags = os.O_WRONLY|os.O_CREAT|os.O_NOFOLLOW|os.O_EXCL
- fd = os.open(filename, flags, 0600)
- os.write(fd, str(self))
+ fd = os.open(filename, flags, 0o0600)
+ os.write(fd, bytes(self.__str__(), locale.getpreferredencoding()))
os.close(fd)
def __str__(self, scale=45):
@@ -1107,7 +1057,7 @@ class Stats(ProcessEvent):
return ''
m = max(stats.values())
- unity = float(scale) / m
+ unity = scale / m
fmt = '%%-26s%%-%ds%%s' % (len(output_format.field_value('@' * scale))
+ 1)
def func(x):
@@ -1149,7 +1099,7 @@ class Notifier:
@type default_proc_fun: instance of ProcessEvent
@param read_freq: if read_freq == 0, events are read asap,
if read_freq is > 0, this thread sleeps
- max(0, read_freq - timeout) seconds. But if
+ max(0, read_freq - (timeout / 1000)) seconds. But if
timeout is None it may be different because
poll is blocking waiting for something to read.
@type read_freq: int
@@ -1161,8 +1111,9 @@ class Notifier:
until the amount of events to read is >= threshold.
At least with read_freq set you might sleep.
@type threshold: int
- @param timeout:
- https://docs.python.org/3/library/select.html#polling-objects
+ @param timeout: see read_freq above. If provided, it must be set in
+ milliseconds. See
+ https://docs.python.org/3/library/select.html#select.poll.poll
@type timeout: int
"""
# Watch Manager instance
@@ -1228,7 +1179,8 @@ class Notifier:
milliseconds.
@param timeout: If specified it overrides the corresponding instance
- attribute _timeout.
+ attribute _timeout. timeout must be sepcified in
+ milliseconds.
@type timeout: int
@return: New events to read.
@@ -1240,8 +1192,8 @@ class Notifier:
if timeout is None:
timeout = self._timeout
ret = self._pollobj.poll(timeout)
- except select.error, err:
- if err[0] == errno.EINTR:
+ except select.error as err:
+ if err.args[0] == errno.EINTR:
continue # interrupted, retry
else:
raise
@@ -1271,7 +1223,7 @@ class Notifier:
try:
# Read content from file
r = os.read(self._fd, queue_size)
- except Exception, msg:
+ except Exception as msg:
raise NotifierError(msg)
log.debug('Event queue size: %d', queue_size)
rsum = 0 # counter
@@ -1281,9 +1233,11 @@ class Notifier:
wd, mask, cookie, fname_len = struct.unpack('iIII',
r[rsum:rsum+s_size])
# Retrieve name
- fname, = struct.unpack('%ds' % fname_len,
+ bname, = struct.unpack('%ds' % fname_len,
r[rsum + s_size:rsum + s_size + fname_len])
- rawevent = _RawEvent(wd, mask, cookie, fname)
+ # FIXME: should we explictly call sys.getdefaultencoding() here ??
+ uname = bname.decode()
+ rawevent = _RawEvent(wd, mask, cookie, uname)
if self._coalesce:
# Only enqueue new (unique) events.
raweventstr = str(rawevent)
@@ -1326,13 +1280,10 @@ class Notifier:
def __daemonize(self, pid_file=None, stdin=os.devnull, stdout=os.devnull,
stderr=os.devnull):
"""
- @param pid_file: file where the pid will be written. If pid_file=None
- the pid is written to
- /var/run/<sys.argv[0]|pyinotify>.pid, if pid_file=False
- no pid_file is written.
- @param stdin:
- @param stdout:
- @param stderr: files associated to common streams.
+ pid_file: file where the pid will be written. If pid_file=None the pid
+ is written to /var/run/<sys.argv[0]|pyinotify>.pid, if
+ pid_file=False no pid_file is written.
+ stdin, stdout, stderr: files associated to common streams.
"""
if pid_file is None:
dirname = '/var/run/'
@@ -1354,7 +1305,7 @@ class Notifier:
if (pid == 0):
# child
os.chdir('/')
- os.umask(022)
+ os.umask(0o022)
else:
# parent 2
os._exit(0)
@@ -1364,9 +1315,9 @@ class Notifier:
fd_inp = os.open(stdin, os.O_RDONLY)
os.dup2(fd_inp, 0)
- fd_out = os.open(stdout, os.O_WRONLY|os.O_CREAT, 0600)
+ fd_out = os.open(stdout, os.O_WRONLY|os.O_CREAT, 0o0600)
os.dup2(fd_out, 1)
- fd_err = os.open(stderr, os.O_WRONLY|os.O_CREAT, 0600)
+ fd_err = os.open(stderr, os.O_WRONLY|os.O_CREAT, 0o0600)
os.dup2(fd_err, 2)
# Detach task
@@ -1375,8 +1326,9 @@ class Notifier:
# Write pid
if pid_file != False:
flags = os.O_WRONLY|os.O_CREAT|os.O_NOFOLLOW|os.O_EXCL
- fd_pid = os.open(pid_file, flags, 0600)
- os.write(fd_pid, str(os.getpid()) + '\n')
+ fd_pid = os.open(pid_file, flags, 0o0600)
+ os.write(fd_pid, bytes(str(os.getpid()) + '\n',
+ locale.getpreferredencoding()))
os.close(fd_pid)
# Register unlink function
atexit.register(lambda : os.unlink(pid_file))
@@ -1441,9 +1393,12 @@ class Notifier:
Close inotify's instance (close its file descriptor).
It destroys all existing watches, pending events,...
This method is automatically called at the end of loop().
+ Afterward it is invalid to access this instance.
"""
- self._pollobj.unregister(self._fd)
- os.close(self._fd)
+ if self._fd is not None:
+ self._pollobj.unregister(self._fd)
+ os.close(self._fd)
+ self._fd = None
self._sys_proc_fun = None
@@ -1468,7 +1423,7 @@ class ThreadedNotifier(threading.Thread, Notifier):
@type default_proc_fun: instance of ProcessEvent
@param read_freq: if read_freq == 0, events are read asap,
if read_freq is > 0, this thread sleeps
- max(0, read_freq - timeout) seconds.
+ max(0, read_freq - (timeout / 1000)) seconds.
@type read_freq: int
@param threshold: File descriptor will be read only if the accumulated
size to read becomes >= threshold. If != 0, you likely
@@ -1478,8 +1433,9 @@ class ThreadedNotifier(threading.Thread, Notifier):
until the amount of events to read is >= threshold. At
least with read_freq you might sleep.
@type threshold: int
- @param timeout:
- https://docs.python.org/3/library/select.html#polling-objects
+ @param timeout: see read_freq above. If provided, it must be set in
+ milliseconds. See
+ https://docs.python.org/3/library/select.html#select.poll.poll
@type timeout: int
"""
# Init threading base class
@@ -1498,7 +1454,7 @@ class ThreadedNotifier(threading.Thread, Notifier):
Stop notifier's loop. Stop notification. Join the thread.
"""
self._stop_event.set()
- os.write(self._pipe[1], 'stop')
+ os.write(self._pipe[1], b'stop')
threading.Thread.join(self)
Notifier.stop(self)
self._pollobj.unregister(self._pipe[0])
@@ -1699,7 +1655,6 @@ class Watch:
class ExcludeFilter:
"""
ExcludeFilter is an exclusion filter.
-
"""
def __init__(self, arg_lst):
"""
@@ -1731,16 +1686,13 @@ class ExcludeFilter:
def _load_patterns_from_file(self, filename):
lst = []
- file_obj = file(filename, 'r')
- try:
+ with open(filename, 'r') as file_obj:
for line in file_obj.readlines():
# Trim leading an trailing whitespaces
pattern = line.strip()
if not pattern or pattern.startswith('#'):
continue
lst.append(pattern)
- finally:
- file_obj.close()
return lst
def _match(self, regex, path):
@@ -1764,7 +1716,6 @@ class WatchManagerError(Exception):
"""
WatchManager Exception. Raised on error encountered on watches
operations.
-
"""
def __init__(self, msg, wmd):
"""
@@ -1851,7 +1802,7 @@ class WatchManager:
"""
try:
del self._wmd[wd]
- except KeyError, err:
+ except KeyError as err:
log.error('Cannot delete unknown watch descriptor %s' % str(err))
@property
@@ -1868,13 +1819,7 @@ class WatchManager:
"""
Format path to its internal (stored in watch manager) representation.
"""
- # Unicode strings are converted back to strings, because it seems
- # that inotify_add_watch from ctypes does not work well when
- # it receives an ctypes.create_unicode_buffer instance as argument.
- # Therefore even wd are indexed with bytes string and not with
- # unicode paths.
- if isinstance(path, unicode):
- path = path.encode(sys.getfilesystemencoding())
+ # path must be a unicode string (str) and is just normalized.
return os.path.normpath(path)
def __add_watch(self, path, mask, proc_fun, auto_add, exclude_filter):
@@ -1890,13 +1835,14 @@ class WatchManager:
return wd
watch = Watch(wd=wd, path=path, mask=mask, proc_fun=proc_fun,
auto_add=auto_add, exclude_filter=exclude_filter)
+ # wd are _always_ indexed with their original unicode paths in wmd.
self._wmd[wd] = watch
log.debug('New %s', watch)
return wd
def __glob(self, path, do_glob):
if do_glob:
- return glob(path)
+ return glob.iglob(path)
else:
return [path]
@@ -1907,11 +1853,8 @@ class WatchManager:
Add watch(s) on the provided |path|(s) with associated |mask| flag
value and optionally with a processing |proc_fun| function and
recursive flag |rec| set to True.
- Ideally |path| components should not be unicode objects. Note that
- although unicode paths are accepted there are converted to byte
- strings before a watch is put on that path. The encoding used for
- converting the unicode object is given by sys.getfilesystemencoding().
- If |path| si already watched it is ignored, but if it is called with
+ All |path| components _must_ be str (i.e. unicode) objects.
+ If |path| is already watched it is ignored, but if it is called with
option rec=True a watch is put on each one of its not-watched
subdirectory.
@@ -1945,10 +1888,9 @@ class WatchManager:
the class' constructor.
@type exclude_filter: callable object
@return: dict of paths associated to watch descriptors. A wd value
- is positive if the watch was added sucessfully,
- otherwise the value is negative. If the path was invalid
- or was already watched it is not included into this returned
- dictionary.
+ is positive if the watch was added sucessfully, otherwise
+ the value is negative. If the path was invalid or was already
+ watched it is not included into this returned dictionary.
@rtype: dict of {str: int}
"""
ret_ = {} # return {path: wd, ...}
@@ -1958,6 +1900,11 @@ class WatchManager:
# normalize args as list elements
for npath in self.__format_param(path):
+ # Require that path be a unicode string
+ if not isinstance(npath, str):
+ ret_[path] = -3
+ continue
+
# unix pathname pattern expansion
for apath in self.__glob(npath, do_glob):
# recursively list subdirs according to rec param
@@ -2242,7 +2189,6 @@ class WatchManager:
"Make watch manager ignoring new events.")
-
class RawOutputFormat:
"""
Format string representations.
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcollector/admin.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcollector/admin.py
index c1f85d73d..1f2e07f50 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcollector/admin.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcollector/admin.py
@@ -1,33 +1,33 @@
from django.contrib import admin
-from django.contrib.admin.filters import RelatedFieldListFilter
-from orm.models import BitbakeVersion, Release, LayerSource, ToasterSetting
-from django.forms.widgets import Textarea
+from orm.models import BitbakeVersion, Release, ToasterSetting, Layer_Version
from django import forms
import django.db.models as models
-from django.contrib.admin import widgets, helpers
-
-class LayerSourceAdmin(admin.ModelAdmin):
- pass
class BitbakeVersionAdmin(admin.ModelAdmin):
- # we override the formfield for db URLField because of broken URL validation
+ # we override the formfield for db URLField
+ # because of broken URL validation
def formfield_for_dbfield(self, db_field, **kwargs):
if isinstance(db_field, models.fields.URLField):
return forms.fields.CharField()
- return super(BitbakeVersionAdmin, self).formfield_for_dbfield(db_field, **kwargs)
-
+ return super(BitbakeVersionAdmin, self).formfield_for_dbfield(
+ db_field, **kwargs)
class ReleaseAdmin(admin.ModelAdmin):
pass
+
class ToasterSettingAdmin(admin.ModelAdmin):
pass
-admin.site.register(LayerSource, LayerSourceAdmin)
+
+class LayerVersionsAdmin(admin.ModelAdmin):
+ pass
+
+admin.site.register(Layer_Version, LayerVersionsAdmin)
admin.site.register(BitbakeVersion, BitbakeVersionAdmin)
admin.site.register(Release, ReleaseAdmin)
admin.site.register(ToasterSetting, ToasterSettingAdmin)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
index d09ac1787..912f67bf8 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/bbcontroller.py
@@ -30,7 +30,6 @@ from bldcontrol.models import BuildEnvironment, BRLayer, BRVariable, BRTarget, B
# load Bitbake components
path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
sys.path.insert(0, path)
-import bb.server.xmlrpc
class BitbakeController(object):
""" This is the basic class that controlls a bitbake server.
@@ -38,6 +37,7 @@ class BitbakeController(object):
"""
def __init__(self, be):
+ import bb.server.xmlrpc
self.connection = bb.server.xmlrpc._create_server(be.bbaddress,
int(be.bbport))[0]
@@ -79,7 +79,7 @@ def getBuildEnvironmentController(**kwargs):
The return object MUST always be a BuildEnvironmentController.
"""
- from localhostbecontroller import LocalhostBEController
+ from bldcontrol.localhostbecontroller import LocalhostBEController
be = BuildEnvironment.objects.filter(Q(**kwargs))[0]
if be.betype == BuildEnvironment.TYPE_LOCAL:
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index 7def1f3a1..e5f7c988c 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -32,7 +32,7 @@ import subprocess
from toastermain import settings
-from bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, BitbakeController
+from bldcontrol.bbcontroller import BuildEnvironmentController, ShellCmdException, BuildSetupException, BitbakeController
import logging
logger = logging.getLogger("toaster")
@@ -66,16 +66,16 @@ class LocalhostBEController(BuildEnvironmentController):
err = "command: %s \n%s" % (command, out)
else:
err = "command: %s \n%s" % (command, err)
- logger.warn("localhostbecontroller: shellcmd error %s" % err)
+ logger.warning("localhostbecontroller: shellcmd error %s" % err)
raise ShellCmdException(err)
else:
logger.debug("localhostbecontroller: shellcmd success")
- return out
+ return out.decode('utf-8')
def getGitCloneDirectory(self, url, branch):
"""Construct unique clone directory name out of url and branch."""
if branch != "HEAD":
- return "_toaster_clones/_%s_%s" % (re.sub('[:/@%]', '_', url), branch)
+ return "_toaster_clones/_%s_%s" % (re.sub('[:/@+%]', '_', url), branch)
# word of attention; this is a localhost-specific issue; only on the localhost we expect to have "HEAD" releases
# which _ALWAYS_ means the current poky checkout
@@ -89,19 +89,34 @@ class LocalhostBEController(BuildEnvironmentController):
""" a word of attention: by convention, the first layer for any build will be poky! """
assert self.be.sourcedir is not None
+
+ layerlist = []
+ nongitlayerlist = []
+
# set layers in the layersource
# 1. get a list of repos with branches, and map dirpaths for each layer
gitrepos = {}
- gitrepos[(bitbake.giturl, bitbake.commit)] = []
- gitrepos[(bitbake.giturl, bitbake.commit)].append( ("bitbake", bitbake.dirpath) )
+ # if we're using a remotely fetched version of bitbake add its git
+ # details to the list of repos to clone
+ if bitbake.giturl and bitbake.commit:
+ gitrepos[(bitbake.giturl, bitbake.commit)] = []
+ gitrepos[(bitbake.giturl, bitbake.commit)].append(
+ ("bitbake", bitbake.dirpath))
for layer in layers:
# We don't need to git clone the layer for the CustomImageRecipe
# as it's generated by us layer on if needed
if CustomImageRecipe.LAYER_NAME in layer.name:
continue
+
+ # If we have local layers then we don't need clone them
+ # For local layers giturl will be empty
+ if not layer.giturl:
+ nongitlayerlist.append(layer.layer_version.layer.local_source_dir)
+ continue
+
if not (layer.giturl, layer.commit) in gitrepos:
gitrepos[(layer.giturl, layer.commit)] = []
gitrepos[(layer.giturl, layer.commit)].append( (layer.name, layer.dirpath) )
@@ -131,19 +146,22 @@ class LocalhostBEController(BuildEnvironmentController):
logger.info("Using pre-checked out source for layer %s", cached_layers)
- layerlist = []
-
-
# 3. checkout the repositories
for giturl, commit in gitrepos.keys():
localdirname = os.path.join(self.be.sourcedir, self.getGitCloneDirectory(giturl, commit))
logger.debug("localhostbecontroller: giturl %s:%s checking out in current directory %s" % (giturl, commit, localdirname))
- # make sure our directory is a git repository
+ # see if our directory is a git repository
if os.path.exists(localdirname):
- localremotes = self._shellcmd("git remote -v", localdirname)
- if not giturl in localremotes:
- raise BuildSetupException("Existing git repository at %s, but with different remotes ('%s', expected '%s'). Toaster will not continue out of fear of damaging something." % (localdirname, ", ".join(localremotes.split("\n")), giturl))
+ try:
+ localremotes = self._shellcmd("git remote -v",
+ localdirname)
+ if not giturl in localremotes and commit != 'HEAD':
+ raise BuildSetupException("Existing git repository at %s, but with different remotes ('%s', expected '%s'). Toaster will not continue out of fear of damaging something." % (localdirname, ", ".join(localremotes.split("\n")), giturl))
+ except ShellCmdException:
+ # our localdirname might not be a git repository
+ #- that's fine
+ pass
else:
if giturl in cached_layers:
logger.debug("localhostbecontroller git-copying %s to %s" % (cached_layers[giturl], localdirname))
@@ -245,6 +263,7 @@ class LocalhostBEController(BuildEnvironmentController):
layerlist.append(layerpath)
self.islayerset = True
+ layerlist.extend(nongitlayerlist)
return layerlist
def readServerLogFile(self):
@@ -287,7 +306,7 @@ class LocalhostBEController(BuildEnvironmentController):
# run bitbake server from the clone
bitbake = os.path.join(self.pokydirname, 'bitbake', 'bin', 'bitbake')
- self._shellcmd('bash -c \"source %s %s; BITBAKE_UI="" %s --read %s '
+ self._shellcmd('bash -c \"source %s %s; BITBAKE_UI="knotty" %s --read %s '
'--server-only -t xmlrpc -B 0.0.0.0:0\"' % (oe_init,
builddir, bitbake, confpath), self.be.sourcedir)
@@ -324,7 +343,7 @@ class LocalhostBEController(BuildEnvironmentController):
'bitbake')
self._shellcmd(['bash -c \"(TOASTER_BRBE="%s" BBSERVER="0.0.0.0:-1" '
'%s %s -u toasterui --token="" >>%s 2>&1;'
- 'BITBAKE_UI="" BBSERVER=0.0.0.0:-1 %s -m)&\"' \
+ 'BITBAKE_UI="knotty" BBSERVER=0.0.0.0:-1 %s -m)&\"' \
% (brbe, local_bitbake, bbtargets, log, bitbake)],
builddir, nowait=True)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
index 5e70437b2..2ed994f61 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py
@@ -1,10 +1,15 @@
from django.core.management.base import NoArgsCommand, CommandError
from django.db import transaction
+
+from django.core.management import call_command
from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException
from bldcontrol.models import BuildRequest, BuildEnvironment, BRError
-from orm.models import ToasterSetting, Build
+from orm.models import ToasterSetting, Build, Layer
+
import os
import traceback
+import warnings
+
def DN(path):
if path is None:
@@ -21,39 +26,6 @@ class Command(NoArgsCommand):
super(Command, self).__init__(*args, **kwargs)
self.guesspath = DN(DN(DN(DN(DN(DN(DN(__file__)))))))
- def _find_first_path_for_file(self, startdirectory, filename, level=0):
- if level < 0:
- return None
- dirs = []
- for i in os.listdir(startdirectory):
- j = os.path.join(startdirectory, i)
- if os.path.isfile(j):
- if i == filename:
- return startdirectory
- elif os.path.isdir(j):
- dirs.append(j)
- for j in dirs:
- ret = self._find_first_path_for_file(j, filename, level - 1)
- if ret is not None:
- return ret
- return None
-
- def _recursive_list_directories(self, startdirectory, level=0):
- if level < 0:
- return []
- dirs = []
- try:
- for i in os.listdir(startdirectory):
- j = os.path.join(startdirectory, i)
- if os.path.isdir(j):
- dirs.append(j)
- except OSError:
- pass
- for j in dirs:
- dirs = dirs + self._recursive_list_directories(j, level - 1)
- return dirs
-
-
def _verify_build_environment(self):
# provide a local build env. This will be extended later to include non local
if BuildEnvironment.objects.count() == 0:
@@ -70,11 +42,10 @@ class Command(NoArgsCommand):
return True
if len(be.sourcedir) == 0:
- print "\n -- Validation: The layers checkout directory must be set."
is_changed = _update_sourcedir()
if not be.sourcedir.startswith("/"):
- print "\n -- Validation: The layers checkout directory must be set to an absolute path."
+ print("\n -- Validation: The layers checkout directory must be set to an absolute path.")
is_changed = _update_sourcedir()
if is_changed:
@@ -87,38 +58,67 @@ class Command(NoArgsCommand):
return True
if len(be.builddir) == 0:
- print "\n -- Validation: The build directory must be set."
is_changed = _update_builddir()
if not be.builddir.startswith("/"):
- print "\n -- Validation: The build directory must to be set to an absolute path."
+ print("\n -- Validation: The build directory must to be set to an absolute path.")
is_changed = _update_builddir()
-
if is_changed:
- print "\nBuild configuration saved"
+ print("\nBuild configuration saved")
be.save()
return True
-
if be.needs_import:
try:
- config_file = os.environ.get('TOASTER_CONF')
- print "\nImporting file: %s" % config_file
- from loadconf import Command as LoadConfigCommand
+ print("Loading default settings")
+ call_command("loaddata", "settings")
+ template_conf = os.environ.get("TEMPLATECONF", "")
+
+ if "poky" in template_conf:
+ print("Loading poky configuration")
+ call_command("loaddata", "poky")
+ else:
+ print("Loading OE-Core configuration")
+ call_command("loaddata", "oe-core")
+ if template_conf:
+ oe_core_path = os.path.realpath(
+ template_conf +
+ "/../")
+ else:
+ print("TEMPLATECONF not found. You may have to"
+ " manually configure layer paths")
+ oe_core_path = input("Please enter the path of"
+ " your openembedded-core "
+ "layer: ")
+ # Update the layer instances of openemebedded-core
+ for layer in Layer.objects.filter(
+ name="openembedded-core",
+ local_source_dir="OE-CORE-LAYER-DIR"):
+ layer.local_path = oe_core_path
+ layer.save()
+
+ # Import the custom fixture if it's present
+ with warnings.catch_warnings():
+ warnings.filterwarnings(
+ action="ignore",
+ message="^.*No fixture named.*$")
+ print("Importing custom settings if present")
+ call_command("loaddata", "custom")
- LoadConfigCommand()._import_layer_config(config_file)
# we run lsupdates after config update
- print "\nLayer configuration imported. Updating information from the layer sources, please wait.\nYou can re-update any time later by running bitbake/lib/toaster/manage.py lsupdates"
- from django.core.management import call_command
+ print("\nFetching information from the layer index, "
+ "please wait.\nYou can re-update any time later "
+ "by running bitbake/lib/toaster/manage.py "
+ "lsupdates\n")
call_command("lsupdates")
# we don't look for any other config files
return is_changed
except Exception as e:
- print "Failure while trying to import the toaster config file %s: %s" %\
- (config_file, e)
- traceback.print_exc(e)
+ print("Failure while trying to setup toaster: %s"
+ % e)
+ traceback.print_exc()
return is_changed
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py
deleted file mode 100644
index 5022b5940..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/loadconf.py
+++ /dev/null
@@ -1,183 +0,0 @@
-from django.core.management.base import BaseCommand, CommandError
-from orm.models import LayerSource, ToasterSetting, Branch, Layer, Layer_Version
-from orm.models import BitbakeVersion, Release, ReleaseDefaultLayer, ReleaseLayerSourcePriority
-from django.db import IntegrityError
-import os
-
-from checksettings import DN
-
-import logging
-logger = logging.getLogger("toaster")
-
-def _reduce_canon_path(path):
- components = []
- for c in path.split("/"):
- if c == "..":
- del components[-1]
- elif c == ".":
- pass
- else:
- components.append(c)
- if len(components) < 2:
- components.append('')
- return "/".join(components)
-
-def _get_id_for_sourcetype(s):
- for i in LayerSource.SOURCE_TYPE:
- if s == i[1]:
- return i[0]
- raise Exception("Could not find definition for sourcetype '%s'. Valid source types are %s" % (str(s), ', '.join(map(lambda x: "'%s'" % x[1], LayerSource.SOURCE_TYPE ))))
-
-class Command(BaseCommand):
- help = "Loads a toasterconf.json file in the database"
- args = "filepath"
-
-
-
- def _import_layer_config(self, filepath):
- if not os.path.exists(filepath) or not os.path.isfile(filepath):
- raise Exception("Failed to find toaster config file %s ." % filepath)
-
- import json
- data = json.loads(open(filepath, "r").read())
-
- # verify config file validity before updating settings
- for i in ['bitbake', 'releases', 'defaultrelease', 'config', 'layersources']:
- assert i in data
-
- def _read_git_url_from_local_repository(address):
- url = None
- # we detect the remote name at runtime
- import subprocess
- (remote, remote_name) = address.split(":", 1)
- cmd = subprocess.Popen("git remote -v", shell=True, cwd = os.path.dirname(filepath), stdout=subprocess.PIPE, stderr = subprocess.PIPE)
- (out,err) = cmd.communicate()
- if cmd.returncode != 0:
- logging.warning("Error while importing layer vcs_url: git error: %s" % err)
- for line in out.split("\n"):
- try:
- (name, path) = line.split("\t", 1)
- if name == remote_name:
- url = path.split(" ")[0]
- break
- except ValueError:
- pass
- if url == None:
- logging.warning("Error while looking for remote \"%s\" in \"%s\"" % (remote_name, out))
- return url
-
-
- # import bitbake data
- for bvi in data['bitbake']:
- bvo, created = BitbakeVersion.objects.get_or_create(name=bvi['name'])
- if bvi['giturl'].startswith("remote:"):
- bvo.giturl = _read_git_url_from_local_repository(bvi['giturl'])
- if bvo.giturl is None:
- logger.error("The toaster config file references the local git repo, but Toaster cannot detect it.\nYour local configuration for bitbake version %s is invalid. Make sure that the toasterconf.json file is correct." % bvi['name'])
-
- if bvo.giturl is None:
- bvo.giturl = bvi['giturl']
- bvo.branch = bvi['branch']
- bvo.dirpath = bvi['dirpath']
- bvo.save()
-
- # set the layer sources
- for lsi in data['layersources']:
- assert 'sourcetype' in lsi
- assert 'apiurl' in lsi
- assert 'name' in lsi
- assert 'branches' in lsi
-
-
- if _get_id_for_sourcetype(lsi['sourcetype']) == LayerSource.TYPE_LAYERINDEX or lsi['apiurl'].startswith("/"):
- apiurl = lsi['apiurl']
- else:
- apiurl = _reduce_canon_path(os.path.join(DN(os.path.abspath(filepath)), lsi['apiurl']))
-
- assert ((_get_id_for_sourcetype(lsi['sourcetype']) == LayerSource.TYPE_LAYERINDEX) or apiurl.startswith("/")), (lsi['sourcetype'],apiurl)
-
- try:
- ls, created = LayerSource.objects.get_or_create(sourcetype = _get_id_for_sourcetype(lsi['sourcetype']), apiurl = apiurl)
- ls.name = lsi['name']
- ls.save()
- except IntegrityError as e:
- logger.warning("IntegrityError %s \nWhile setting name %s for layer source %s " % (e, lsi['name'], ls))
-
-
- layerbranches = []
- for branchname in lsi['branches']:
- bo, created = Branch.objects.get_or_create(layer_source = ls, name = branchname)
- layerbranches.append(bo)
-
- if 'layers' in lsi:
- for layerinfo in lsi['layers']:
- lo, created = Layer.objects.get_or_create(layer_source = ls, name = layerinfo['name'])
- if layerinfo['local_path'].startswith("/"):
- lo.local_path = layerinfo['local_path']
- else:
- lo.local_path = _reduce_canon_path(os.path.join(ls.apiurl, layerinfo['local_path']))
-
- if not os.path.exists(lo.local_path):
- logger.error("Local layer path %s must exists. Are you trying to import a layer that does not exist ? Check your local toasterconf.json" % lo.local_path)
-
- if layerinfo['vcs_url'].startswith("remote:"):
- lo.vcs_url = _read_git_url_from_local_repository(layerinfo['vcs_url'])
- if lo.vcs_url is None:
- logger.error("The toaster config file references the local git repo, but Toaster cannot detect it.\nYour local configuration for layer %s is invalid. Make sure that the toasterconf.json file is correct." % layerinfo['name'])
-
- if lo.vcs_url is None:
- lo.vcs_url = layerinfo['vcs_url']
-
- if 'layer_index_url' in layerinfo:
- lo.layer_index_url = layerinfo['layer_index_url']
- lo.save()
-
- for branch in layerbranches:
- lvo, created = Layer_Version.objects.get_or_create(layer_source = ls,
- up_branch = branch,
- commit = branch.name,
- layer = lo)
- lvo.dirpath = layerinfo['dirpath']
- lvo.save()
- # set releases
- for ri in data['releases']:
- bvo = BitbakeVersion.objects.get(name = ri['bitbake'])
- assert bvo is not None
-
- ro, created = Release.objects.get_or_create(name = ri['name'], bitbake_version = bvo, branch_name = ri['branch'])
- ro.description = ri['description']
- ro.helptext = ri['helptext']
- ro.save()
-
- # save layer source priority for release
- for ls_name in ri['layersourcepriority'].keys():
- rlspo, created = ReleaseLayerSourcePriority.objects.get_or_create(release = ro, layer_source = LayerSource.objects.get(name=ls_name))
- rlspo.priority = ri['layersourcepriority'][ls_name]
- rlspo.save()
-
- for dli in ri['defaultlayers']:
- # find layers with the same name
- ReleaseDefaultLayer.objects.get_or_create( release = ro, layer_name = dli)
-
- # set default release
- if ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").count() > 0:
- ToasterSetting.objects.filter(name = "DEFAULT_RELEASE").update(value = data['defaultrelease'])
- else:
- ToasterSetting.objects.create(name = "DEFAULT_RELEASE", value = data['defaultrelease'])
-
- # set default config variables
- for configname in data['config']:
- if ToasterSetting.objects.filter(name = "DEFCONF_" + configname).count() > 0:
- ToasterSetting.objects.filter(name = "DEFCONF_" + configname).update(value = data['config'][configname])
- else:
- ToasterSetting.objects.create(name = "DEFCONF_" + configname, value = data['config'][configname])
-
-
- def handle(self, *args, **options):
- if len(args) == 0:
- raise CommandError("Need a path to the toasterconf.json file")
- filepath = args[0]
- self._import_layer_config(filepath)
-
-
-
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
index 27289be5f..7f7a5a955 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
@@ -1,31 +1,27 @@
-from django.core.management.base import NoArgsCommand, CommandError
+from django.core.management.base import NoArgsCommand
from django.db import transaction
from django.db.models import Q
from bldcontrol.bbcontroller import getBuildEnvironmentController
-from bldcontrol.bbcontroller import ShellCmdException, BuildSetupException
from bldcontrol.models import BuildRequest, BuildEnvironment
from bldcontrol.models import BRError, BRVariable
-from orm.models import Build, ToasterSetting, LogMessage, Target
+from orm.models import Build, LogMessage, Target
-import os
import logging
-import time
-import sys
import traceback
+import signal
logger = logging.getLogger("toaster")
class Command(NoArgsCommand):
- args = ""
- help = "Schedules and executes build requests as possible."
- "Does not return (interrupt with Ctrl-C)"
-
+ args = ""
+ help = "Schedules and executes build requests as possible. "\
+ "Does not return (interrupt with Ctrl-C)"
@transaction.atomic
def _selectBuildEnvironment(self):
- bec = getBuildEnvironmentController(lock = BuildEnvironment.LOCK_FREE)
+ bec = getBuildEnvironmentController(lock=BuildEnvironment.LOCK_FREE)
bec.be.lock = BuildEnvironment.LOCK_LOCK
bec.be.save()
return bec
@@ -54,8 +50,8 @@ class Command(NoArgsCommand):
logger.debug("runbuilds: No build env")
return
- logger.debug("runbuilds: starting build %s, environment %s" % \
- (str(br).decode('utf-8'), bec.be))
+ logger.info("runbuilds: starting build %s, environment %s" % \
+ (br, bec.be))
# let the build request know where it is being executed
br.environment = bec.be
@@ -68,24 +64,22 @@ class Command(NoArgsCommand):
except Exception as e:
logger.error("runbuilds: Error launching build %s" % e)
- traceback.print_exc(e)
+ traceback.print_exc()
if "[Errno 111] Connection refused" in str(e):
# Connection refused, read toaster_server.out
errmsg = bec.readServerLogFile()
else:
errmsg = str(e)
- BRError.objects.create(req = br,
- errtype = str(type(e)),
- errmsg = errmsg,
- traceback = traceback.format_exc(e))
+ BRError.objects.create(req=br, errtype=str(type(e)), errmsg=errmsg,
+ traceback=traceback.format_exc())
br.state = BuildRequest.REQ_FAILED
br.save()
bec.be.lock = BuildEnvironment.LOCK_FREE
bec.be.save()
def archive(self):
- for br in BuildRequest.objects.filter(state = BuildRequest.REQ_ARCHIVE):
+ for br in BuildRequest.objects.filter(state=BuildRequest.REQ_ARCHIVE):
if br.build == None:
br.state = BuildRequest.REQ_FAILED
else:
@@ -102,14 +96,13 @@ class Command(NoArgsCommand):
BuildRequest.REQ_COMPLETED,
BuildRequest.REQ_CANCELLING]) &
Q(lock=BuildEnvironment.LOCK_LOCK) &
- Q(updated__lt=timezone.now() - timedelta(seconds = 30))
+ Q(updated__lt=timezone.now() - timedelta(seconds=30))
).update(lock=BuildEnvironment.LOCK_FREE)
# update all Builds that were in progress and failed to start
- for br in BuildRequest.objects.filter(
- state=BuildRequest.REQ_FAILED,
- build__outcome=Build.IN_PROGRESS):
+ for br in BuildRequest.objects.filter(state=BuildRequest.REQ_FAILED,
+ build__outcome=Build.IN_PROGRESS):
# transpose the launch errors in ToasterExceptions
br.build.outcome = Build.FAILED
for brerror in br.brerror_set.all():
@@ -126,7 +119,7 @@ class Command(NoArgsCommand):
# update all BuildRequests without a build created
- for br in BuildRequest.objects.filter(build = None):
+ for br in BuildRequest.objects.filter(build=None):
br.build = Build.objects.create(project=br.project,
completed_on=br.updated,
started_on=br.created)
@@ -151,29 +144,34 @@ class Command(NoArgsCommand):
# Make sure the LOCK is removed for builds which have been fully
# cancelled
- for br in BuildRequest.objects.filter(
- Q(build__outcome=Build.CANCELLED) &
- Q(state=BuildRequest.REQ_CANCELLING) &
- ~Q(environment=None)):
+ for br in BuildRequest.objects.filter(\
+ Q(build__outcome=Build.CANCELLED) &
+ Q(state=BuildRequest.REQ_CANCELLING) &
+ ~Q(environment=None)):
br.environment.lock = BuildEnvironment.LOCK_FREE
br.environment.save()
+ def runbuild(self):
+ try:
+ self.cleanup()
+ except Exception as e:
+ logger.warn("runbuilds: cleanup exception %s" % str(e))
- def handle_noargs(self, **options):
- while True:
- try:
- self.cleanup()
- except Exception as e:
- logger.warn("runbuilds: cleanup exception %s" % str(e))
+ try:
+ self.archive()
+ except Exception as e:
+ logger.warn("runbuilds: archive exception %s" % str(e))
- try:
- self.archive()
- except Exception as e:
- logger.warn("runbuilds: archive exception %s" % str(e))
+ try:
+ self.schedule()
+ except Exception as e:
+ logger.warn("runbuilds: schedule exception %s" % str(e))
- try:
- self.schedule()
- except Exception as e:
- logger.warn("runbuilds: schedule exception %s" % str(e))
+ def handle_noargs(self, **options):
+ self.runbuild()
+
+ signal.signal(signal.SIGUSR1, lambda sig, frame: None)
- time.sleep(1)
+ while True:
+ signal.pause()
+ self.runbuild()
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0004_auto_20160523_1446.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0004_auto_20160523_1446.py
new file mode 100644
index 000000000..3d9062954
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0004_auto_20160523_1446.py
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('bldcontrol', '0003_add_cancelling_state'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='buildenvironment',
+ name='bbstate',
+ field=models.IntegerField(default=0, choices=[(0, 'stopped'), (1, 'started')]),
+ ),
+ migrations.AlterField(
+ model_name='buildenvironment',
+ name='betype',
+ field=models.IntegerField(choices=[(0, 'local')]),
+ ),
+ migrations.AlterField(
+ model_name='buildenvironment',
+ name='lock',
+ field=models.IntegerField(default=0, choices=[(0, 'free'), (1, 'lock'), (2, 'running')]),
+ ),
+ migrations.AlterField(
+ model_name='buildrequest',
+ name='state',
+ field=models.IntegerField(default=0, choices=[(0, 'created'), (1, 'queued'), (2, 'in progress'), (3, 'completed'), (4, 'failed'), (5, 'deleted'), (6, 'cancelling'), (7, 'archive')]),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0005_reorder_buildrequest_states.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0005_reorder_buildrequest_states.py
new file mode 100644
index 000000000..4bb951776
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0005_reorder_buildrequest_states.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('bldcontrol', '0004_auto_20160523_1446'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='buildrequest',
+ name='state',
+ field=models.IntegerField(choices=[(0, 'created'), (1, 'queued'), (2, 'in progress'), (3, 'failed'), (4, 'deleted'), (5, 'cancelling'), (6, 'completed'), (7, 'archive')], default=0),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0006_brlayer_local_source_dir.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0006_brlayer_local_source_dir.py
new file mode 100644
index 000000000..2460002f0
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0006_brlayer_local_source_dir.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('bldcontrol', '0005_reorder_buildrequest_states'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='brlayer',
+ name='local_source_dir',
+ field=models.CharField(max_length=254, null=True),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0007_brlayers_optional_gitinfo.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0007_brlayers_optional_gitinfo.py
new file mode 100644
index 000000000..4be42a4cf
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/migrations/0007_brlayers_optional_gitinfo.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('bldcontrol', '0006_brlayer_local_source_dir'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='brlayer',
+ name='commit',
+ field=models.CharField(max_length=254, null=True),
+ ),
+ migrations.AlterField(
+ model_name='brlayer',
+ name='dirpath',
+ field=models.CharField(max_length=254, null=True),
+ ),
+ migrations.AlterField(
+ model_name='brlayer',
+ name='giturl',
+ field=models.CharField(max_length=254, null=True),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/models.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/models.py
index cb49a58c4..409614b9e 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/models.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/models.py
@@ -1,7 +1,7 @@
from __future__ import unicode_literals
from django.db import models
from django.core.validators import MaxValueValidator, MinValueValidator
-from django.utils.encoding import force_bytes
+from django.utils.encoding import force_text
from orm.models import Project, ProjectLayer, ProjectVariable, ProjectTarget, Build, Layer_Version
import logging
@@ -63,20 +63,20 @@ class BuildRequest(models.Model):
REQ_CREATED = 0
REQ_QUEUED = 1
REQ_INPROGRESS = 2
- REQ_COMPLETED = 3
- REQ_FAILED = 4
- REQ_DELETED = 5
- REQ_CANCELLING = 6
+ REQ_FAILED = 3
+ REQ_DELETED = 4
+ REQ_CANCELLING = 5
+ REQ_COMPLETED = 6
REQ_ARCHIVE = 7
REQUEST_STATE = (
(REQ_CREATED, "created"),
(REQ_QUEUED, "queued"),
(REQ_INPROGRESS, "in progress"),
- (REQ_COMPLETED, "completed"),
(REQ_FAILED, "failed"),
(REQ_DELETED, "deleted"),
(REQ_CANCELLING, "cancelling"),
+ (REQ_COMPLETED, "completed"),
(REQ_ARCHIVE, "archive"),
)
@@ -91,18 +91,18 @@ class BuildRequest(models.Model):
def __init__(self, *args, **kwargs):
super(BuildRequest, self).__init__(*args, **kwargs)
- # Save the old state incase it's about to be modified
+ # Save the old state in case it's about to be modified
self.old_state = self.state
def save(self, *args, **kwargs):
# Check that the state we're trying to set is not going backwards
# e.g. from REQ_FAILED to REQ_INPROGRESS
if self.old_state != self.state and self.old_state > self.state:
- logger.warn("Invalid state change requested: "
- "Cannot go from %s to %s - ignoring request" %
- (BuildRequest.REQUEST_STATE[self.old_state][1],
- BuildRequest.REQUEST_STATE[self.state][1])
- )
+ logger.warning("Invalid state change requested: "
+ "Cannot go from %s to %s - ignoring request" %
+ (BuildRequest.REQUEST_STATE[self.old_state][1],
+ BuildRequest.REQUEST_STATE[self.state][1])
+ )
# Set property back to the old value
self.state = self.old_state
return
@@ -121,17 +121,19 @@ class BuildRequest(models.Model):
return self.brvariable_set.get(name="MACHINE").value
def __str__(self):
- return force_bytes('%s %s' % (self.project, self.get_state_display()))
+ return force_text('%s %s' % (self.project, self.get_state_display()))
# These tables specify the settings for running an actual build.
# They MUST be kept in sync with the tables in orm.models.Project*
+
class BRLayer(models.Model):
- req = models.ForeignKey(BuildRequest)
- name = models.CharField(max_length = 100)
- giturl = models.CharField(max_length = 254)
- commit = models.CharField(max_length = 254)
- dirpath = models.CharField(max_length = 254)
+ req = models.ForeignKey(BuildRequest)
+ name = models.CharField(max_length=100)
+ giturl = models.CharField(max_length=254, null=True)
+ local_source_dir = models.CharField(max_length=254, null=True)
+ commit = models.CharField(max_length=254, null=True)
+ dirpath = models.CharField(max_length=254, null=True)
layer_version = models.ForeignKey(Layer_Version, null=True)
class BRBitbake(models.Model):
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/tests.py b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/tests.py
index f20cc7d4b..475ac0a16 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/tests.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/bldcontrol/tests.py
@@ -53,7 +53,7 @@ class BEControllerTests(object):
# setting layers, skip any layer info
bc.setLayers(BITBAKE_LAYER, POKY_LAYERS)
except NotImplementedError:
- print "Test skipped due to command not implemented yet"
+ print("Test skipped due to command not implemented yet")
return True
# We are ok with the exception as we're handling the git already exists
except BuildSetupException:
@@ -79,7 +79,7 @@ class BEControllerTests(object):
# setting layers, skip any layer info
layerSet = bc.setLayers(BITBAKE_LAYER, POKY_LAYERS)
except NotImplementedError:
- print "Test skipped due to command not implemented yet"
+ print("Test skipped due to command not implemented yet")
return True
# We are ok with the exception as we're handling the git already exists
except BuildSetupException:
@@ -139,22 +139,3 @@ class RunBuildsCommandTests(TestCase):
self.assertTrue(br.state == BuildRequest.REQ_INPROGRESS, "Request is not updated")
# no more selections possible here
self.assertRaises(IndexError, command._selectBuildRequest)
-
-
-class UtilityTests(TestCase):
- def test_reduce_path(self):
- from bldcontrol.management.commands.loadconf import _reduce_canon_path, _get_id_for_sourcetype
-
- self.assertTrue( _reduce_canon_path("/") == "/")
- self.assertTrue( _reduce_canon_path("/home/..") == "/")
- self.assertTrue( _reduce_canon_path("/home/../ana") == "/ana")
- self.assertTrue( _reduce_canon_path("/home/../ana/..") == "/")
- self.assertTrue( _reduce_canon_path("/home/ana/mihai/../maria") == "/home/ana/maria")
-
- def test_get_id_for_sorucetype(self):
- from bldcontrol.management.commands.loadconf import _reduce_canon_path, _get_id_for_sourcetype
- self.assertTrue( _get_id_for_sourcetype("layerindex") == 1)
- self.assertTrue( _get_id_for_sourcetype("local") == 0)
- self.assertTrue( _get_id_for_sourcetype("imported") == 2)
- with self.assertRaises(Exception):
- _get_id_for_sourcetype("unknown")
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/config.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/config.py
index 40d45f3b7..87b427cc3 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/config.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/config.py
@@ -74,7 +74,7 @@ BACKLOGFILE = os.path.join(os.path.dirname(__file__), "backlog.txt")
# task states
def enum(*sequential, **named):
enums = dict(zip(sequential, range(len(sequential))), **named)
- reverse = dict((value, key) for key, value in enums.iteritems())
+ reverse = dict((value, key) for key, value in enums.items())
enums['reverse_mapping'] = reverse
return type('Enum', (), enums)
diff --git a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/__init__.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/log/.create
index e69de29bb..e69de29bb 100644
--- a/import-layers/yocto-poky/bitbake/lib/bb/ui/crumbs/hig/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/log/.create
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/runner.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/runner.py
index bed665196..d01386acf 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/runner.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/runner.py
@@ -146,7 +146,7 @@ def execute_tests(dir_under_test, testname):
except Exception as exc:
import traceback
- config.logger.error("Exception while running test. Tracedump: \n%s", traceback.format_exc(exc))
+ config.logger.error("Exception while running test. Tracedump: \n%s", traceback.format_exc())
finally:
os.chdir(crt_dir)
return len(result.failures)
@@ -211,7 +211,7 @@ def main():
except ShellCmdException as exc:
import traceback
- config.logger.error("Error while setting up testing. Traceback: \n%s", traceback.format_exc(exc))
+ config.logger.error("Error while setting up testing. Traceback: \n%s", traceback.format_exc())
finally:
if need_cleanup and testdir is not None:
clean_up(testdir)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/shellutils.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/shellutils.py
index c2012edf8..ce64c0634 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/shellutils.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/shellutils.py
@@ -133,7 +133,7 @@ def run_shell_cmd(command, cwd=None):
err = "command: %s \n%s" % (command, out)
else:
err = "command: %s \n%s" % (command, err)
- config.logger.warn("_shellcmd: error \n%s\n%s", out, err)
+ config.logger.warning("_shellcmd: error \n%s\n%s", out, err)
raise ShellCmdException(err)
else:
#config.logger.debug("localhostbecontroller: shellcmd success\n%s" % out)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/run_toastertests.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/run_toastertests.py
index 754636f0f..8ca45a813 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/run_toastertests.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/run_toastertests.py
@@ -74,7 +74,7 @@ def get_tests_from_cfg(suite=None):
try:
tests_from_cfg = eval(config.get('toaster_test_' + target_suite, 'test_cases'))
except:
- print 'Failed to get test cases from cfg file. Make sure the format is correct.'
+ print('Failed to get test cases from cfg file. Make sure the format is correct.')
return None
prefix = 'toaster_automation_test.toaster_cases.test_'
@@ -100,7 +100,7 @@ def main():
testslist = get_tests_from_cfg()
if not testslist:
- print 'Failed to get test cases.'
+ print('Failed to get test cases.')
exit(1)
suite = unittest.TestSuite()
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/toaster_automation_test.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/toaster_automation_test.py
index d8f838aea..1a786fa02 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/toaster_automation_test.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/toasteruitest/toaster_automation_test.py
@@ -61,7 +61,7 @@ def get_log_root_dir():
break
if number == (max_depth - 1):
- print 'No log dir found. Please check'
+ print('No log dir found. Please check')
raise Exception
return log_root_dir
@@ -152,7 +152,7 @@ def is_list_sequenced(testlist):
return (sorted(list_number) == list_number)
else:
- print 'Unrecognized list type, please check'
+ print('Unrecognized list type, please check')
return False
@@ -201,7 +201,7 @@ def is_list_inverted(testlist):
return (sorted(list_number, reverse = True) == list_number)
else:
- print 'Unrecognized list type, please check'
+ print('Unrecognized list type, please check')
return False
def replace_file_content(filename, item, option):
@@ -361,7 +361,7 @@ class toaster_cases_base(unittest.TestCase):
def setup_browser(self, *browser_path):
self.browser = eval(self.parser.get('toaster_test_' + self.target_suite, 'test_browser'))
- print self.browser
+ print(self.browser)
if self.browser == "firefox":
driver = webdriver.Firefox()
elif self.browser == "chrome":
@@ -370,7 +370,7 @@ class toaster_cases_base(unittest.TestCase):
driver = webdriver.Ie()
else:
driver = None
- print "unrecognized browser type, please check"
+ print("unrecognized browser type, please check")
self.driver = driver
self.driver.implicitly_wait(30)
return self.driver
@@ -440,8 +440,8 @@ class toaster_cases_base(unittest.TestCase):
try:
table_element = self.get_table_element(table_id)
element = table_element.find_element_by_xpath("//*[text()='" + text_string + "']")
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
return element
@@ -454,8 +454,8 @@ class toaster_cases_base(unittest.TestCase):
try:
table_element = self.get_table_element(table_id)
element = table_element.find_element_by_link_text(link_text)
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
return element
@@ -467,8 +467,8 @@ class toaster_cases_base(unittest.TestCase):
try:
table_element = self.get_table_element(table_id)
element_list = table_element.find_elements_by_link_text(link_text)
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
return element_list
@@ -481,8 +481,8 @@ class toaster_cases_base(unittest.TestCase):
table_element = self.get_table_element(table_id)
element = table_element.find_element_by_partial_link_text(link_text)
return element
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
@@ -494,8 +494,8 @@ class toaster_cases_base(unittest.TestCase):
table_element = self.get_table_element(table_id)
element_list = table_element.find_elements_by_partial_link_text(link_text)
return element_list
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
@@ -506,8 +506,8 @@ class toaster_cases_base(unittest.TestCase):
try:
table_element = self.get_table_element(table_id)
element = table_element.find_element_by_xpath(xpath)
- except NoSuchElementException, e:
- print 'no element found'
+ except NoSuchElementException as e:
+ print('no element found')
raise
return element
@@ -519,8 +519,8 @@ class toaster_cases_base(unittest.TestCase):
try:
table_element = self.get_table_element(table_id)
element_list = table_element.find_elements_by_xpath(xpath)
- except NoSuchElementException, e:
- print 'no elements found'
+ except NoSuchElementException as e:
+ print('no elements found')
raise
return element_list
@@ -570,7 +570,7 @@ class toaster_cases_base(unittest.TestCase):
element_xpath = "//*[@id='" + table_id + "']"
try:
element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException, e:
+ except NoSuchElementException as e:
raise
return element
row = coordinate[0]
@@ -580,7 +580,7 @@ class toaster_cases_base(unittest.TestCase):
element_xpath = "//*[@id='" + table_id + "']/tbody/tr[" + str(row) + "]"
try:
element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException, e:
+ except NoSuchElementException as e:
return False
return element
#now we are looking for an element with specified X and Y
@@ -589,7 +589,7 @@ class toaster_cases_base(unittest.TestCase):
element_xpath = "//*[@id='" + table_id + "']/tbody/tr[" + str(row) + "]/td[" + str(column) + "]"
try:
element = self.driver.find_element_by_xpath(element_xpath)
- except NoSuchElementException, e:
+ except NoSuchElementException as e:
return False
return element
@@ -607,7 +607,7 @@ class toaster_cases_base(unittest.TestCase):
column = column + 1
print("row_content=",row_content)
Lists.extend(row_content)
- print Lists[row-1][0]
+ print(Lists[row-1][0])
row = row + 1
return Lists
@@ -617,7 +617,7 @@ class toaster_cases_base(unittest.TestCase):
def is_text_present (self, patterns):
for pattern in patterns:
if str(pattern) not in self.driver.page_source:
- print 'Text "'+pattern+'" is missing'
+ print('Text "'+pattern+'" is missing')
return False
return True
@@ -625,15 +625,15 @@ class toaster_cases_base(unittest.TestCase):
def is_element_present(self, how, what):
try:
self.driver.find_element(how, what)
- except NoSuchElementException, e:
- print 'Could not find element '+str(what)+' by ' + str(how)
+ except NoSuchElementException as e:
+ print('Could not find element '+str(what)+' by ' + str(how))
return False
return True
def is_alert_present(self):
try: self.driver.switch_to_alert()
- except NoAlertPresentException, e: return False
+ except NoAlertPresentException as e: return False
return True
@@ -658,7 +658,7 @@ class toaster_cases_base(unittest.TestCase):
try:
caseno = int(caseno_str)
except ValueError:
- print "get case number error! please check if func name is test_xxx"
+ print("get case number error! please check if func name is test_xxx")
return False
return caseno
@@ -706,7 +706,7 @@ class toaster_cases(toaster_cases_base):
for key in table_head_dict:
try:
self.driver.find_element_by_link_text(key).click()
- except Exception, e:
+ except Exception as e:
self.log.error("%s cannot be found on page" % key)
raise
column_list = self.get_table_column_text("class", table_head_dict[key])
@@ -736,7 +736,7 @@ class toaster_cases(toaster_cases_base):
patterns = ["minimal", "sato"]
for pattern in patterns:
ori_target_column_texts = self.get_table_column_text("class", "target")
- print ori_target_column_texts
+ print(ori_target_column_texts)
self.driver.find_element_by_id("search").clear()
self.driver.find_element_by_id("search").send_keys(pattern)
self.driver.find_element_by_id("search-button").click()
@@ -771,7 +771,7 @@ class toaster_cases(toaster_cases_base):
temp_element = self.find_element_by_text_in_table('otable', item)
# this is how we find "filter icon" in the same level as temp_element(where "a" means clickable, "i" means icon)
self.assertTrue(temp_element.find_element_by_xpath("..//*/a/i[@class='icon-filter filtered']"))
- except Exception,e:
+ except Exception as e:
self.assertFalse(True, msg=(" %s cannot be found! %s" % (item, e)))
raise
# step 5-6
@@ -812,7 +812,7 @@ class toaster_cases(toaster_cases_base):
self.table_name = 'otable'
# This is how we find the "default" rows-number!
rows_displayed = int(Select(self.driver.find_element_by_css_selector("select.pagesize")).first_selected_option.text)
- print rows_displayed
+ print(rows_displayed)
self.assertTrue(self.get_table_element(self.table_name, rows_displayed), msg=("not enough rows displayed"))
self.assertFalse(self.get_table_element(self.table_name, rows_displayed + 1), \
msg=("more rows displayed than expected"))
@@ -888,7 +888,7 @@ class toaster_cases(toaster_cases_base):
temp_element.find_element_by_xpath("..//*[@class='icon-filter filtered']").click()
avail_options = self.driver.find_elements_by_xpath("//*[@id='" + filter_dict[key] + "']//*[@name='filter'][not(@disabled)]")
except:
- print "in exception"
+ print("in exception")
self.find_element_by_text("Show all tasks").click()
# self.driver.find_element_by_xpath("//*[@id='searchform']/button[2]").click()
temp_element = self.find_element_by_link_text_in_table(self.table_name, key)
@@ -899,9 +899,9 @@ class toaster_cases(toaster_cases_base):
for item in ['order', 'task_name', 'executed', 'outcome', 'recipe_name', 'recipe_version']:
try:
self.find_element_by_xpath_in_table(self.table_name, "./tbody/tr[1]/*[@class='" + item + "']/a").click()
- except NoSuchElementException, e:
+ except NoSuchElementException as e:
# let it go...
- print 'no item in the colum' + item
+ print('no item in the colum' + item)
# insert screen shot here
self.save_screenshot(screenshot_type='selenium', append_name='step11')
self.driver.back()
@@ -992,13 +992,13 @@ class toaster_cases(toaster_cases_base):
self.table_name = 'otable'
# This is how we find the "default" rows-number!
rows_displayed = int(Select(self.driver.find_element_by_css_selector("select.pagesize")).first_selected_option.text)
- print rows_displayed
+ print(rows_displayed)
self.assertTrue(self.get_table_element(self.table_name, rows_displayed))
self.assertFalse(self.get_table_element(self.table_name, rows_displayed + 1))
# Check the default table is sorted by Recipe
tasks_column_count = len(self.driver.find_elements_by_xpath("/html/body/div[2]/div/div[2]/div[2]/table/tbody/tr/td[1]"))
- print tasks_column_count
+ print(tasks_column_count)
default_column_list = self.get_table_column_text_by_column_number(self.table_name, 1)
#print default_column_list
@@ -1095,7 +1095,7 @@ class toaster_cases(toaster_cases_base):
# Bug 5919
for key in table_head_dict:
- print key
+ print(key)
self.find_element_by_link_text_in_table(self.table_name, key).click()
self.driver.find_element_by_id("edit-columns-button").click()
self.driver.find_element_by_id(table_head_dict[key]).click()
@@ -1167,7 +1167,7 @@ class toaster_cases(toaster_cases_base):
check_list = ['Dependencies', 'Layer branch', 'Layer commit', 'Reverse dependencies']
head_list = self.get_table_head_text('otable')
time.sleep(2)
- print head_list
+ print(head_list)
for item in check_list:
self.assertTrue(item in head_list, msg=("item %s not in head row" % item))
# un-check 'em all
@@ -1226,8 +1226,8 @@ class toaster_cases(toaster_cases_base):
tasks_row_count = len(driver.find_elements_by_xpath("//*[@id='"+self.table_name+"']/table/tbody/tr/td[1]"))
tasks_column_count = len(driver.find_elements_by_xpath("//*[@id='"+self.table_name+"']/table/tbody/tr[1]/td"))
- print 'rows: '+str(tasks_row_count)
- print 'columns: '+str(tasks_column_count)
+ print('rows: '+str(tasks_row_count))
+ print('columns: '+str(tasks_column_count))
Tasks_column = self.get_table_column_text_by_column_number(self.table_name, 2)
print ("Tasks_column=", Tasks_column)
@@ -1253,9 +1253,9 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Packages (").click()
packages_name = driver.find_element_by_partial_link_text("Packages (").text
- print packages_name
+ print(packages_name)
packages_num = int(filter(str.isdigit, repr(packages_name)))
- print packages_num
+ print(packages_num)
#switch the table to show more than 10 rows at a time
self.driver.find_element_by_xpath("//*[@id='packages-built']/div[1]/div/select").click()
@@ -1263,7 +1263,7 @@ class toaster_cases(toaster_cases_base):
self.driver.find_element_by_xpath("//*[@id='packages-built']/div[1]/div/select").send_keys(Keys.ENTER)
packages_row_count = len(driver.find_elements_by_xpath("//*[@id='otable']/tbody/tr/td[1]"))
- print packages_row_count
+ print(packages_row_count)
if packages_num != packages_row_count:
print ("Error! The packages number is not correct")
@@ -1272,20 +1272,20 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Build dependencies (").click()
depends_name = driver.find_element_by_partial_link_text("Build dependencies (").text
- print depends_name
- depends_num = int(filter(str.isdigit, repr(depends_name)))
- print depends_num
+ print(depends_name)
+ depends_num = int(list(filter(str.isdigit, repr(depends_name))))
+ print(depends_num)
if depends_num == 0:
depends_message = repr(driver.find_element_by_css_selector("div.alert.alert-info").text)
- print depends_message
+ print(depends_message)
if depends_message.find("has no build dependencies.") < 0:
print ("Error! The message isn't expected.")
else:
print ("The message is expected")
else:
depends_row_count = len(driver.find_elements_by_xpath("//*[@id='dependencies']/table/tbody/tr/td[1]"))
- print depends_row_count
+ print(depends_row_count)
if depends_num != depends_row_count:
print ("Error! The dependent packages number is not correct")
else:
@@ -1293,13 +1293,13 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Reverse build dependencies (").click()
rdepends_name = driver.find_element_by_partial_link_text("Reverse build dependencies (").text
- print rdepends_name
+ print(rdepends_name)
rdepends_num = int(filter(str.isdigit, repr(rdepends_name)))
- print rdepends_num
+ print(rdepends_num)
if rdepends_num == 0:
rdepends_message = repr(driver.find_element_by_css_selector("#brought-in-by > div.alert.alert-info").text)
- print rdepends_message
+ print(rdepends_message)
if rdepends_message.find("has no reverse build dependencies.") < 0:
print ("Error! The message isn't expected.")
else:
@@ -1319,8 +1319,8 @@ class toaster_cases(toaster_cases_base):
native_tasks_row_count = len(driver.find_elements_by_xpath("//*[@id='information']/table/tbody/tr/td[1]"))
native_tasks_column_count = len(driver.find_elements_by_xpath("//*[@id='information']/table/tbody/tr[1]/td"))
- print native_tasks_row_count
- print native_tasks_column_count
+ print(native_tasks_row_count)
+ print(native_tasks_column_count)
Native_Tasks_column = self.get_table_column_text_by_column_number(self.table_name, 2)
print ("Native_Tasks_column=", Native_Tasks_column)
@@ -1346,15 +1346,15 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Packages (").click()
native_packages_name = driver.find_element_by_partial_link_text("Packages (").text
- print native_packages_name
+ print(native_packages_name)
native_packages_num = int(filter(str.isdigit, repr(native_packages_name)))
- print native_packages_num
+ print(native_packages_num)
if native_packages_num != 0:
print ("Error! Native task shouldn't have any packages.")
else:
native_package_message = repr(driver.find_element_by_css_selector("#packages-built > div.alert.alert-info").text)
- print native_package_message
+ print(native_package_message)
if native_package_message.find("does not build any packages.") < 0:
print ("Error! The message for native task isn't expected.")
else:
@@ -1362,12 +1362,12 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Build dependencies (").click()
native_depends_name = driver.find_element_by_partial_link_text("Build dependencies (").text
- print native_depends_name
+ print(native_depends_name)
native_depends_num = int(filter(str.isdigit, repr(native_depends_name)))
- print native_depends_num
+ print(native_depends_num)
native_depends_row_count = len(driver.find_elements_by_xpath("//*[@id='dependencies']/table/tbody/tr/td[1]"))
- print native_depends_row_count
+ print(native_depends_row_count)
if native_depends_num != native_depends_row_count:
print ("Error! The dependent packages number is not correct")
@@ -1376,12 +1376,12 @@ class toaster_cases(toaster_cases_base):
driver.find_element_by_partial_link_text("Reverse build dependencies (").click()
native_rdepends_name = driver.find_element_by_partial_link_text("Reverse build dependencies (").text
- print native_rdepends_name
+ print(native_rdepends_name)
native_rdepends_num = int(filter(str.isdigit, repr(native_rdepends_name)))
- print native_rdepends_num
+ print(native_rdepends_num)
native_rdepends_row_count = len(driver.find_elements_by_xpath("//*[@id='brought-in-by']/table/tbody/tr/td[1]"))
- print native_rdepends_row_count
+ print(native_rdepends_row_count)
if native_rdepends_num != native_rdepends_row_count:
print ("Error! The reverse dependent packages number is not correct")
@@ -1413,8 +1413,8 @@ class toaster_cases(toaster_cases_base):
# step 5
self.driver.find_element_by_css_selector("i.icon-remove").click()
head_list = self.get_table_head_text('otable')
- print head_list
- print len(head_list)
+ print(head_list)
+ print(len(head_list))
self.assertTrue(head_list == ['Variable', 'Value', 'Set in file', 'Description'], \
msg=("head row contents wrong"))
# step 8
@@ -1830,7 +1830,7 @@ class toaster_cases(toaster_cases_base):
try:
self.driver.find_element_by_partial_link_text("Packages included")
self.driver.find_element_by_partial_link_text("Directory structure")
- except Exception,e:
+ except Exception as e:
self.log.error(e)
self.assertFalse(True)
# step 4
@@ -2014,13 +2014,13 @@ class toaster_cases(toaster_cases_base):
for i in range(0,4):
data[i] = data[i][0]
data.sort()
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_data = []
for i in range (0,4):
json_data.append(json_parse['releases'][i]['name'])
json_data.sort()
- print json_data
+ print(json_data)
self.failUnless(data == json_data)
##############
@@ -2036,11 +2036,11 @@ class toaster_cases(toaster_cases_base):
data = cursor.fetchall()
for i in range(0,6):
data[i] = data[i][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_data=json_parse['config']
json_data = json_data.values()
- print json_data
+ print(json_data)
self.failUnless(data == json_data)
@@ -2057,12 +2057,12 @@ class toaster_cases(toaster_cases_base):
data = cursor.fetchall()
for i in range(0,3):
data[i] = data[i][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_data = []
for i in range(0,3):
json_data.append(json_parse['layersources'][i]['name'])
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
##############
@@ -2077,10 +2077,10 @@ class toaster_cases(toaster_cases_base):
cursor.execute(query)
data = cursor.fetchall()
data = data[0][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_data = json_parse['defaultrelease']
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
##############
@@ -2090,7 +2090,7 @@ class toaster_cases(toaster_cases_base):
self.case_no = self.get_case_number()
self.log.info(' CASE %s log: ' % str(self.case_no))
- print 'Checking branches for "Local Yocto Project"'
+ print('Checking branches for "Local Yocto Project"')
con=sqlite.connect('toaster.sqlite')
cursor = con.cursor()
query = "select name from orm_branch where layer_source_id=1;"
@@ -2102,15 +2102,15 @@ class toaster_cases(toaster_cases_base):
data[i] = data[i][0]
except:
pass
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_location = json_parse['layersources'][0]['name']
- print json_location
+ print(json_location)
json_data = json_parse['layersources'][0]['branches']
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
- print 'Checking branches for "OpenEmbedded"'
+ print('Checking branches for "OpenEmbedded"')
con=sqlite.connect('toaster.sqlite')
cursor = con.cursor()
query = "select name from orm_branch where layer_source_id=3;"
@@ -2119,15 +2119,15 @@ class toaster_cases(toaster_cases_base):
lenght = len(data)
for i in range(0,lenght):
data[i] = data[i][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_location = json_parse['layersources'][1]['name']
- print json_location
+ print(json_location)
json_data = json_parse['layersources'][1]['branches']
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
- print 'Checking branches for "Imported layers"'
+ print('Checking branches for "Imported layers"')
con=sqlite.connect('toaster.sqlite')
cursor = con.cursor()
query = "select name from orm_branch where layer_source_id=2;"
@@ -2136,12 +2136,12 @@ class toaster_cases(toaster_cases_base):
lenght = len(data)
for i in range(0,lenght):
data[i] = data[i][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_location = json_parse['layersources'][2]['name']
- print json_location
+ print(json_location)
json_data = json_parse['layersources'][2]['branches']
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
@@ -2158,12 +2158,12 @@ class toaster_cases(toaster_cases_base):
data = cursor.fetchall()
for i in range(0,4):
data[i] = data[i][0]
- print data
+ print(data)
json_parse = json.loads(open('toasterconf.json').read())
json_data = []
for i in range(0,4):
json_data.append(json_parse['bitbake'][i]['name'])
- print json_data
+ print(json_data)
self.failUnless(set(data) == set(json_data))
##############
@@ -2182,7 +2182,7 @@ class toaster_cases(toaster_cases_base):
query = "select count(name) from orm_project where name = 'new-test-project';"
cursor.execute(query)
data = cursor.fetchone()
- print 'data: %s' % data
+ print('data: %s' % data)
self.failUnless(data >= 1)
##############
@@ -2275,7 +2275,7 @@ class toaster_cases(toaster_cases_base):
data = data[0][0]
except:
pass
- print data
+ print(data)
self.failUnless(data == 'toaster_admin')
##############
@@ -2324,7 +2324,7 @@ class toaster_cases(toaster_cases_base):
query = "select a.name, a.value from orm_projectvariable a, orm_project b where a.project_id = b.id and b.name = 'new-default-project';"
cursor.execute(query)
data = dict(cursor.fetchall())
- print data
+ print(data)
default_values = {u'IMAGE_INSTALL_append': u'', u'PACKAGE_CLASSES': u'package_rpm', u'MACHINE': u'qemux86', u'SDKMACHINE': u'x86_64', u'DISTRO': u'poky', u'IMAGE_FSTYPES': u'ext3 jffs2 tar.bz2'}
self.failUnless(data == default_values)
@@ -2341,7 +2341,7 @@ class toaster_cases(toaster_cases_base):
query = "select layercommit_id from orm_projectlayer a, orm_project b where a.project_id=b.id and b.name='new-default-project';"
cursor.execute(query)
data_initial = cursor.fetchall()
- print data_initial
+ print(data_initial)
self.driver.maximize_window()
self.driver.get('localhost:8000')#self.base_url)
@@ -2362,7 +2362,7 @@ class toaster_cases(toaster_cases_base):
query = "select layercommit_id from orm_projectlayer a, orm_project b where a.project_id=b.id and b.name='new-default-project';"
cursor.execute(query)
data_changed = cursor.fetchall()
- print data_changed
+ print(data_changed)
#resetting release to default
self.driver.find_element_by_id('release-change-toggle').click()
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/urlcheck.py b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/urlcheck.py
index 0820f82e2..001fcee96 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/urlcheck.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/contrib/tts/urlcheck.py
@@ -26,12 +26,12 @@ def validate_html5(url):
warnings = int(resp['x-w3c-validator-warnings'])
if status == 'Invalid':
- config.logger.warn("Failed %s is %s\terrors %s warnings %s (check at %s)", url, status, errors, warnings, urlrequest)
+ config.logger.warning("Failed %s is %s\terrors %s warnings %s (check at %s)", url, status, errors, warnings, urlrequest)
else:
config.logger.debug("OK! %s", url)
except Exception as exc:
- config.logger.warn("Failed validation call: %s", exc)
+ config.logger.warning("Failed validation call: %s", exc)
return (status, errors, warnings)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/manage.py b/import-layers/yocto-poky/bitbake/lib/toaster/manage.py
index ceaa11bfc..0c7ea5088 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/manage.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/manage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import sys
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/README b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/README
new file mode 100644
index 000000000..1b1c660aa
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/README
@@ -0,0 +1,30 @@
+# Fixtures directory
+
+Fixtures are data dumps that can be loaded into Toaster's database to provide
+configuration and data.
+
+In this directory we have the fixtures which are loaded the first time you start Toaster.
+This is to provide useful default values and metadata to Toaster.
+
+ - settings.xml This Contains Toaster wide settings, such as the default values for
+ certain bitbake variables.
+
+ - poky.xml This is the default release data for supported poky based setup
+
+ - oe-core.xml This is the default release data for supported oe-core based setups
+
+# Custom data/configuration
+
+ - custom.xml
+
+To add custom initial data/configuration to Toaster place a file called
+"custom.xml" in this directory. If present it will be loaded into the database.
+We suggest that this is used to overlay any configuration already done.
+All objects loaded with the same primary keys overwrite the existing data.
+Data can be provided in XML, JSON and if installed YAML formats.
+
+# To load data at any point in time
+
+Use the django management command manage.py loaddata <your fixture file>
+For further information see the Django command documentation at:
+https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-loaddata
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
new file mode 100644
index 000000000..a6c834f44
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<django-objects version="1.0">
+ <!-- Set the project default value for DISTRO -->
+ <object model="orm.toastersetting" pk="1">
+ <field type="CharField" name="name">DEFCONF_DISTRO</field>
+ <field type="CharField" name="value">nodistro</field>
+ </object>
+
+ <!-- Bitbake versions which correspond to the metadata release -->
+ <object model="orm.bitbakeversion" pk="1">
+ <field type="CharField" name="name">morty</field>
+ <field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
+ <field type="CharField" name="branch">1.32</field>
+ </object>
+ <object model="orm.bitbakeversion" pk="2">
+ <field type="CharField" name="name">HEAD</field>
+ </object>
+
+ <!-- Releases available -->
+ <object model="orm.release" pk="1">
+ <field type="CharField" name="name">morty</field>
+ <field type="CharField" name="description">Openembedded Morty</field>
+ <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
+ <field type="CharField" name="branch_name">morty</field>
+ <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=morty\"&gt;OpenEmbedded Morty&lt;/a&gt; branch.</field>
+ </object>
+ <object model="orm.release" pk="2">
+ <field type="CharField" name="name">local</field>
+ <field type="CharField" name="description">Local Openembedded</field>
+ <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">2</field>
+ <field type="CharField" name="branch_name">HEAD</field>
+ <field type="TextField" name="helptext">Toaster will run your builds with the version of OpenEmbedded that you have cloned or downloaded to your computer.</field>
+ </object>
+
+ <!-- Default layers for each release -->
+ <object model="orm.releasedefaultlayer" pk="1">
+ <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
+ <field type="CharField" name="layer_name">openembedded-core</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="4">
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="layer_name">openembedded-core</field>
+ </object>
+
+ <!-- TYPE_LOCAL = 0 Layers for the Local release -->
+ <object model="orm.layer" pk="1">
+ <field type="CharField" name="name">openembedded-core</field>
+ <field type="CharField" name="vcs_url">git://git.openembedded.org/openembedded-core</field>
+ </object>
+ <object model="orm.layer_version" pk="1">
+ <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="local_path">OE-CORE-LAYER-DIR</field>
+ <field type="CharField" name="branch">HEAD</field>
+ <field type="CharField" name="dirpath">meta</field>
+ <field type="IntegerField" name="layer_source">0</field>
+ </object>
+
+</django-objects>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/poky.xml b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/poky.xml
new file mode 100644
index 000000000..c192baa42
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/poky.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<django-objects version="1.0">
+ <!-- Set the project default value for DISTRO -->
+ <object model="orm.toastersetting" pk="1">
+ <field type="CharField" name="name">DEFCONF_DISTRO</field>
+ <field type="CharField" name="value">poky</field>
+ </object>
+
+ <!-- Bitbake versions which correspond to the metadata release -->
+ <object model="orm.bitbakeversion" pk="1">
+ <field type="CharField" name="name">morty</field>
+ <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
+ <field type="CharField" name="branch">morty</field>
+ <field type="CharField" name="dirpath">bitbake</field>
+ </object>
+ <object model="orm.bitbakeversion" pk="2">
+ <field type="CharField" name="name">HEAD</field>
+ <field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
+ <field type="CharField" name="branch">HEAD</field>
+ <field type="CharField" name="dirpath">bitbake</field>
+ </object>
+
+ <!-- Releases available -->
+ <object model="orm.release" pk="1">
+ <field type="CharField" name="name">morty</field>
+ <field type="CharField" name="description">Yocto Project 2.2 "Morty"</field>
+ <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
+ <field type="CharField" name="branch_name">morty</field>
+ <field type="TextField" name="helptext">Toaster will run your builds using the tip of the &lt;a href="http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=morty"&gt;Yocto Project Morty branch&lt;/a&gt;.</field>
+ </object>
+ <object model="orm.release" pk="2">
+ <field type="CharField" name="name">local</field>
+ <field type="CharField" name="description">Local Yocto Project</field>
+ <field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">2</field>
+ <field type="CharField" name="branch_name">HEAD</field>
+ <field type="TextField" name="helptext">Toaster will run your builds with the version of the Yocto Project you have cloned or downloaded to your computer.</field>
+ </object>
+
+ <!-- Default layers for each release -->
+ <object model="orm.releasedefaultlayer" pk="1">
+ <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
+ <field type="CharField" name="layer_name">openembedded-core</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="2">
+ <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
+ <field type="CharField" name="layer_name">meta-poky</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="3">
+ <field rel="ManyToOneRel" to="orm.release" name="release">1</field>
+ <field type="CharField" name="layer_name">meta-yocto-bsp</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="4">
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="layer_name">openembedded-core</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="5">
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="layer_name">meta-poky</field>
+ </object>
+ <object model="orm.releasedefaultlayer" pk="6">
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="layer_name">meta-yocto-bsp</field>
+ </object>
+
+ <!-- Layers for the Local release
+ layersource TYPE_LOCAL = 0
+ -->
+ <object model="orm.layer" pk="1">
+ <field type="CharField" name="name">openembedded-core</field>
+ <field type="CharField" name="layer_index_url"></field>
+ <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
+ </object>
+ <object model="orm.layer_version" pk="1">
+ <field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
+ <field type="IntegerField" name="layer_source">0</field>
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="branch">HEAD</field>
+ <field type="CharField" name="commit">HEAD</field>
+ <field type="CharField" name="dirpath">meta</field>
+ </object>
+
+
+ <object model="orm.layer" pk="2">
+ <field type="CharField" name="name">meta-poky</field>
+ <field type="CharField" name="layer_index_url"></field>
+ <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
+ </object>
+ <object model="orm.layer_version" pk="2">
+ <field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
+ <field type="IntegerField" name="layer_source">0</field>
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="branch">HEAD</field>
+ <field type="CharField" name="commit">HEAD</field>
+ <field type="CharField" name="dirpath">meta-poky</field>
+ </object>
+
+
+ <object model="orm.layer" pk="3">
+ <field type="CharField" name="name">meta-yocto-bsp</field>
+ <field type="CharField" name="layer_index_url"></field>
+ <field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
+ </object>
+ <object model="orm.layer_version" pk="3">
+ <field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
+ <field type="IntegerField" name="layer_source">0</field>
+ <field rel="ManyToOneRel" to="orm.release" name="release">2</field>
+ <field type="CharField" name="branch">HEAD</field>
+ <field type="CharField" name="commit">HEAD</field>
+ <field type="CharField" name="dirpath">meta-yocto-bsp</field>
+ </object>
+</django-objects>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/settings.xml b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/settings.xml
new file mode 100644
index 000000000..ee6a20285
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/fixtures/settings.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<django-objects version="1.0">
+ <!-- Default project settings -->
+ <!-- pk=1 is DISTRO -->
+ <object model="orm.toastersetting" pk="2">
+ <field type="CharField" name="name">DEFAULT_RELEASE</field>
+ <field type="CharField" name="value">morty</field>
+ </object>
+ <object model="orm.toastersetting" pk="3">
+ <field type="CharField" name="name">DEFCONF_PACKAGE_CLASSES</field>
+ <field type="CharField" name="value">package_rpm</field>
+ </object>
+ <object model="orm.toastersetting" pk="4">
+ <field type="CharField" name="name">DEFCONF_MACHINE</field>
+ <field type="CharField" name="value">qemux86</field>
+ </object>
+ <object model="orm.toastersetting" pk="5">
+ <field type="CharField" name="name">DEFCONF_SSTATE_DIR</field>
+ <field type="CharField" name="value">${TOPDIR}/../sstate-cache</field>
+ </object>
+ <object model="orm.toastersetting" pk="6">
+ <field type="CharField" name="name">DEFCONF_IMAGE_INSTALL_append</field>
+ <field type="CharField" name="value"></field>
+ </object>
+ <object model="orm.toastersetting" pk="7">
+ <field type="CharField" name="name">DEFCONF_IMAGE_FSTYPES</field>
+ <field type="CharField" name="value">ext3 jffs2 tar.bz2</field>
+ </object>
+ <object model="orm.toastersetting" pk="8">
+ <field type="CharField" name="name">DEFCONF_DL_DIR</field>
+ <field type="CharField" name="value">${TOPDIR}/../downloads</field>
+ </object>
+</django-objects>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
index 75e9513fc..8ff120e0b 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/management/commands/lsupdates.py
@@ -1,12 +1,334 @@
-from django.core.management.base import NoArgsCommand, CommandError
-from orm.models import LayerSource
+#
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.management.base import NoArgsCommand
+
+from orm.models import LayerSource, Layer, Release, Layer_Version
+from orm.models import LayerVersionDependency, Machine, Recipe
+
import os
+import sys
+
+import json
+import logging
+import threading
+import time
+logger = logging.getLogger("toaster")
+
+DEFAULT_LAYERINDEX_SERVER = "http://layers.openembedded.org/layerindex/api/"
+
+
+class Spinner(threading.Thread):
+ """ A simple progress spinner to indicate download/parsing is happening"""
+ def __init__(self, *args, **kwargs):
+ super(Spinner, self).__init__(*args, **kwargs)
+ self.setDaemon(True)
+ self.signal = True
+
+ def run(self):
+ os.system('setterm -cursor off')
+ while self.signal:
+ for char in ["/", "-", "\\", "|"]:
+ sys.stdout.write("\r" + char)
+ sys.stdout.flush()
+ time.sleep(0.25)
+ os.system('setterm -cursor on')
+
+ def stop(self):
+ self.signal = False
+
class Command(NoArgsCommand):
- args = ""
- help = "Updates locally cached information from all LayerSources"
+ args = ""
+ help = "Updates locally cached information from a layerindex server"
+
+ def mini_progress(self, what, i, total):
+ i = i + 1
+ pec = (float(i)/float(total))*100
+
+ sys.stdout.write("\rUpdating %s %d%%" %
+ (what,
+ pec))
+ sys.stdout.flush()
+ if int(pec) is 100:
+ sys.stdout.write("\n")
+ sys.stdout.flush()
+
+ def update(self):
+ """
+ Fetches layer, recipe and machine information from a layerindex
+ server
+ """
+ os.system('setterm -cursor off')
+
+ self.apiurl = DEFAULT_LAYERINDEX_SERVER
+
+ assert self.apiurl is not None
+ try:
+ from urllib.request import urlopen, URLError
+ from urllib.parse import urlparse
+ except ImportError:
+ from urllib2 import urlopen, URLError
+ from urlparse import urlparse
+
+ proxy_settings = os.environ.get("http_proxy", None)
+ oe_core_layer = 'openembedded-core'
+
+ def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER):
+ http_progress = Spinner()
+ http_progress.start()
+
+ _parsedurl = urlparse(apiurl)
+ path = _parsedurl.path
+
+ # logger.debug("Fetching %s", apiurl)
+ try:
+ res = urlopen(apiurl)
+ except URLError as e:
+ raise Exception("Failed to read %s: %s" % (path, e.reason))
+
+ parsed = json.loads(res.read().decode('utf-8'))
+
+ http_progress.stop()
+ return parsed
+
+ # verify we can get the basic api
+ try:
+ apilinks = _get_json_response()
+ except Exception as e:
+ import traceback
+ if proxy_settings is not None:
+ logger.info("EE: Using proxy %s" % proxy_settings)
+ logger.warning("EE: could not connect to %s, skipping update:"
+ "%s\n%s" % (self.apiurl, e, traceback.format_exc()))
+ return
+
+ # update branches; only those that we already have names listed in the
+ # Releases table
+ whitelist_branch_names = [rel.branch_name
+ for rel in Release.objects.all()]
+ if len(whitelist_branch_names) == 0:
+ raise Exception("Failed to make list of branches to fetch")
+
+ logger.info("Fetching metadata releases for %s",
+ " ".join(whitelist_branch_names))
+
+ branches_info = _get_json_response(apilinks['branches'] +
+ "?filter=name:%s"
+ % "OR".join(whitelist_branch_names))
+
+ # Map the layer index branches to toaster releases
+ li_branch_id_to_toaster_release = {}
+
+ total = len(branches_info)
+ for i, branch in enumerate(branches_info):
+ li_branch_id_to_toaster_release[branch['id']] = \
+ Release.objects.get(name=branch['name'])
+ self.mini_progress("Releases", i, total)
+
+ # keep a track of the layerindex (li) id mappings so that
+ # layer_versions can be created for these layers later on
+ li_layer_id_to_toaster_layer_id = {}
+
+ logger.info("Fetching layers")
+
+ layers_info = _get_json_response(apilinks['layerItems'])
+
+ total = len(layers_info)
+ for i, li in enumerate(layers_info):
+ # Special case for the openembedded-core layer
+ if li['name'] == oe_core_layer:
+ try:
+ # If we have an existing openembedded-core for example
+ # from the toasterconf.json augment the info using the
+ # layerindex rather than duplicate it
+ oe_core_l = Layer.objects.get(name=oe_core_layer)
+ # Take ownership of the layer as now coming from the
+ # layerindex
+ oe_core_l.summary = li['summary']
+ oe_core_l.description = li['description']
+ oe_core_l.vcs_web_url = li['vcs_web_url']
+ oe_core_l.vcs_web_tree_base_url = \
+ li['vcs_web_tree_base_url']
+ oe_core_l.vcs_web_file_base_url = \
+ li['vcs_web_file_base_url']
+
+ oe_core_l.save()
+ li_layer_id_to_toaster_layer_id[li['id']] = oe_core_l.pk
+ self.mini_progress("layers", i, total)
+ continue
+
+ except Layer.DoesNotExist:
+ pass
+
+ try:
+ l, created = Layer.objects.get_or_create(name=li['name'],
+ vcs_url=li['vcs_url'])
+ l.up_date = li['updated']
+ l.vcs_url = li['vcs_url']
+ l.vcs_web_url = li['vcs_web_url']
+ l.vcs_web_tree_base_url = li['vcs_web_tree_base_url']
+ l.vcs_web_file_base_url = li['vcs_web_file_base_url']
+ l.summary = li['summary']
+ l.description = li['description']
+ l.save()
+ except Layer.MultipleObjectsReturned:
+ logger.info("Skipped %s as we found multiple layers and "
+ "don't know which to update" %
+ li['name'])
+
+ li_layer_id_to_toaster_layer_id[li['id']] = l.pk
+
+ self.mini_progress("layers", i, total)
+
+ # update layer_versions
+ logger.info("Fetching layer versions")
+ layerbranches_info = _get_json_response(
+ apilinks['layerBranches'] + "?filter=branch__name:%s" %
+ "OR".join(whitelist_branch_names))
+
+ # Map Layer index layer_branch object id to
+ # layer_version toaster object id
+ li_layer_branch_id_to_toaster_lv_id = {}
+
+ total = len(layerbranches_info)
+ for i, lbi in enumerate(layerbranches_info):
+
+ try:
+ lv, created = Layer_Version.objects.get_or_create(
+ layer_source=LayerSource.TYPE_LAYERINDEX,
+ layer=Layer.objects.get(
+ pk=li_layer_id_to_toaster_layer_id[lbi['layer']])
+ )
+ except KeyError:
+ logger.warning(
+ "No such layerindex layer referenced by layerbranch %d" %
+ lbi['layer'])
+ continue
+
+ lv.release = li_branch_id_to_toaster_release[lbi['branch']]
+ lv.up_date = lbi['updated']
+ lv.commit = lbi['actual_branch']
+ lv.dirpath = lbi['vcs_subdir']
+ lv.save()
+
+ li_layer_branch_id_to_toaster_lv_id[lbi['id']] =\
+ lv.pk
+ self.mini_progress("layer versions", i, total)
+
+ logger.info("Fetching layer version dependencies")
+ # update layer dependencies
+ layerdependencies_info = _get_json_response(
+ apilinks['layerDependencies'] +
+ "?filter=layerbranch__branch__name:%s" %
+ "OR".join(whitelist_branch_names))
+
+ dependlist = {}
+ for ldi in layerdependencies_info:
+ try:
+ lv = Layer_Version.objects.get(
+ pk=li_layer_branch_id_to_toaster_lv_id[ldi['layerbranch']])
+ except Layer_Version.DoesNotExist as e:
+ continue
+
+ if lv not in dependlist:
+ dependlist[lv] = []
+ try:
+ layer_id = li_layer_id_to_toaster_layer_id[ldi['dependency']]
+
+ dependlist[lv].append(
+ Layer_Version.objects.get(
+ layer_source=LayerSource.TYPE_LAYERINDEX,
+ layer__pk=layer_id))
+
+ except Layer_Version.DoesNotExist:
+ logger.warning("Cannot find layer version (ls:%s),"
+ "up_id:%s lv:%s" %
+ (self, ldi['dependency'], lv))
+
+ total = len(dependlist)
+ for i, lv in enumerate(dependlist):
+ LayerVersionDependency.objects.filter(layer_version=lv).delete()
+ for lvd in dependlist[lv]:
+ LayerVersionDependency.objects.get_or_create(layer_version=lv,
+ depends_on=lvd)
+ self.mini_progress("Layer version dependencies", i, total)
+
+ # update machines
+ logger.info("Fetching machine information")
+ machines_info = _get_json_response(
+ apilinks['machines'] + "?filter=layerbranch__branch__name:%s" %
+ "OR".join(whitelist_branch_names))
+
+ total = len(machines_info)
+ for i, mi in enumerate(machines_info):
+ mo, created = Machine.objects.get_or_create(
+ name=mi['name'],
+ layer_version=Layer_Version.objects.get(
+ pk=li_layer_branch_id_to_toaster_lv_id[mi['layerbranch']]))
+ mo.up_date = mi['updated']
+ mo.name = mi['name']
+ mo.description = mi['description']
+ mo.save()
+ self.mini_progress("machines", i, total)
+
+ # update recipes; paginate by layer version / layer branch
+ logger.info("Fetching recipe information")
+ recipes_info = _get_json_response(
+ apilinks['recipes'] + "?filter=layerbranch__branch__name:%s" %
+ "OR".join(whitelist_branch_names))
+
+ total = len(recipes_info)
+ for i, ri in enumerate(recipes_info):
+ try:
+ lv_id = li_layer_branch_id_to_toaster_lv_id[ri['layerbranch']]
+ lv = Layer_Version.objects.get(pk=lv_id)
+
+ ro, created = Recipe.objects.get_or_create(
+ layer_version=lv,
+ name=ri['pn']
+ )
+
+ ro.layer_version = lv
+ ro.up_date = ri['updated']
+ ro.name = ri['pn']
+ ro.version = ri['pv']
+ ro.summary = ri['summary']
+ ro.description = ri['description']
+ ro.section = ri['section']
+ ro.license = ri['license']
+ ro.homepage = ri['homepage']
+ ro.bugtracker = ri['bugtracker']
+ ro.file_path = ri['filepath'] + "/" + ri['filename']
+ if 'inherits' in ri:
+ ro.is_image = 'image' in ri['inherits'].split()
+ else: # workaround for old style layer index
+ ro.is_image = "-image-" in ri['pn']
+ ro.save()
+ except Exception as e:
+ logger.warning("Failed saving recipe %s", e)
+
+ self.mini_progress("recipes", i, total)
+ os.system('setterm -cursor on')
def handle_noargs(self, **options):
- for ls in LayerSource.objects.all():
- ls.update()
+ self.update()
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0007_auto_20160523_1446.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0007_auto_20160523_1446.py
new file mode 100644
index 000000000..b472e7cf0
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0007_auto_20160523_1446.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0006_add_cancelled_state'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='build',
+ name='outcome',
+ field=models.IntegerField(default=2, choices=[(0, 'Succeeded'), (1, 'Failed'), (2, 'In Progress'), (3, 'Cancelled')]),
+ ),
+ migrations.AlterField(
+ model_name='helptext',
+ name='area',
+ field=models.IntegerField(choices=[(0, 'variable')]),
+ ),
+ migrations.AlterField(
+ model_name='layer',
+ name='summary',
+ field=models.TextField(default=None, null=True, help_text='One-line description of the layer'),
+ ),
+ migrations.AlterField(
+ model_name='layer_version',
+ name='local_path',
+ field=models.FilePathField(default='/', max_length=1024),
+ ),
+ migrations.AlterField(
+ model_name='layersource',
+ name='sourcetype',
+ field=models.IntegerField(choices=[(0, 'local'), (1, 'layerindex'), (2, 'imported')]),
+ ),
+ migrations.AlterField(
+ model_name='logmessage',
+ name='level',
+ field=models.IntegerField(default=0, choices=[(0, 'info'), (1, 'warn'), (2, 'error'), (3, 'critical'), (-1, 'toaster exception')]),
+ ),
+ migrations.AlterField(
+ model_name='package',
+ name='installed_name',
+ field=models.CharField(default='', max_length=100),
+ ),
+ migrations.AlterField(
+ model_name='package_dependency',
+ name='dep_type',
+ field=models.IntegerField(choices=[(0, 'depends'), (1, 'depends'), (3, 'recommends'), (2, 'recommends'), (4, 'suggests'), (5, 'provides'), (6, 'replaces'), (7, 'conflicts')]),
+ ),
+ migrations.AlterField(
+ model_name='recipe_dependency',
+ name='dep_type',
+ field=models.IntegerField(choices=[(0, 'depends'), (1, 'rdepends')]),
+ ),
+ migrations.AlterField(
+ model_name='release',
+ name='branch_name',
+ field=models.CharField(default='', max_length=50),
+ ),
+ migrations.AlterField(
+ model_name='releasedefaultlayer',
+ name='layer_name',
+ field=models.CharField(default='', max_length=100),
+ ),
+ migrations.AlterField(
+ model_name='target_file',
+ name='inodetype',
+ field=models.IntegerField(choices=[(1, 'regular'), (2, 'directory'), (3, 'symlink'), (4, 'socket'), (5, 'fifo'), (6, 'character'), (7, 'block')]),
+ ),
+ migrations.AlterField(
+ model_name='task',
+ name='outcome',
+ field=models.IntegerField(default=-1, choices=[(-1, 'Not Available'), (0, 'Succeeded'), (1, 'Covered'), (2, 'Cached'), (3, 'Prebuilt'), (4, 'Failed'), (5, 'Empty')]),
+ ),
+ migrations.AlterField(
+ model_name='task',
+ name='script_type',
+ field=models.IntegerField(default=0, choices=[(0, 'N/A'), (2, 'Python'), (3, 'Shell')]),
+ ),
+ migrations.AlterField(
+ model_name='task',
+ name='sstate_result',
+ field=models.IntegerField(default=0, choices=[(0, 'Not Applicable'), (1, 'File not in cache'), (2, 'Failed'), (3, 'Succeeded')]),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py
new file mode 100644
index 000000000..3367582a8
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0008_refactor_artifact_models.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0007_auto_20160523_1446'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='TargetKernelFile',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
+ ('file_name', models.FilePathField()),
+ ('file_size', models.IntegerField()),
+ ('target', models.ForeignKey(to='orm.Target')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='TargetSDKFile',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
+ ('file_name', models.FilePathField()),
+ ('file_size', models.IntegerField()),
+ ('target', models.ForeignKey(to='orm.Target')),
+ ],
+ ),
+ migrations.RemoveField(
+ model_name='buildartifact',
+ name='build',
+ ),
+ migrations.DeleteModel(
+ name='BuildArtifact',
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0009_target_package_manifest_path.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0009_target_package_manifest_path.py
new file mode 100644
index 000000000..c958f3070
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0009_target_package_manifest_path.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0008_refactor_artifact_models'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='target',
+ name='package_manifest_path',
+ field=models.CharField(null=True, max_length=500),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0010_delete_layer_source_references.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0010_delete_layer_source_references.py
new file mode 100644
index 000000000..f67388e99
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0010_delete_layer_source_references.py
@@ -0,0 +1,118 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0009_target_package_manifest_path'),
+ ]
+
+ operations = [
+ migrations.AlterUniqueTogether(
+ name='releaselayersourcepriority',
+ unique_together=set([]),
+ ),
+ migrations.RemoveField(
+ model_name='releaselayersourcepriority',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='releaselayersourcepriority',
+ name='release',
+ ),
+ migrations.DeleteModel(
+ name='ImportedLayerSource',
+ ),
+ migrations.DeleteModel(
+ name='LayerIndexLayerSource',
+ ),
+ migrations.DeleteModel(
+ name='LocalLayerSource',
+ ),
+ migrations.RemoveField(
+ model_name='recipe',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='recipe',
+ name='up_id',
+ ),
+ migrations.AlterField(
+ model_name='layer',
+ name='up_date',
+ field=models.DateTimeField(default=django.utils.timezone.now, null=True),
+ ),
+ migrations.AlterField(
+ model_name='layer_version',
+ name='layer_source',
+ field=models.IntegerField(default=0, choices=[(0, 'local'), (1, 'layerindex'), (2, 'imported'), (3, 'build')]),
+ ),
+ migrations.AlterField(
+ model_name='layer_version',
+ name='up_date',
+ field=models.DateTimeField(default=django.utils.timezone.now, null=True),
+ ),
+ migrations.AlterUniqueTogether(
+ name='branch',
+ unique_together=set([]),
+ ),
+ migrations.AlterUniqueTogether(
+ name='layer',
+ unique_together=set([]),
+ ),
+ migrations.AlterUniqueTogether(
+ name='layer_version',
+ unique_together=set([]),
+ ),
+ migrations.AlterUniqueTogether(
+ name='layerversiondependency',
+ unique_together=set([]),
+ ),
+ migrations.AlterUniqueTogether(
+ name='machine',
+ unique_together=set([]),
+ ),
+ migrations.DeleteModel(
+ name='ReleaseLayerSourcePriority',
+ ),
+ migrations.RemoveField(
+ model_name='branch',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='branch',
+ name='up_id',
+ ),
+ migrations.RemoveField(
+ model_name='layer',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='layer',
+ name='up_id',
+ ),
+ migrations.RemoveField(
+ model_name='layer_version',
+ name='up_id',
+ ),
+ migrations.RemoveField(
+ model_name='layerversiondependency',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='layerversiondependency',
+ name='up_id',
+ ),
+ migrations.RemoveField(
+ model_name='machine',
+ name='layer_source',
+ ),
+ migrations.RemoveField(
+ model_name='machine',
+ name='up_id',
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py
new file mode 100644
index 000000000..75506961a
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0011_delete_layersource.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0010_delete_layer_source_references'),
+ ]
+
+ operations = [
+ migrations.DeleteModel(
+ name='LayerSource',
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py
new file mode 100644
index 000000000..0e6bb8331
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0012_use_release_instead_of_up_branch.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.db.models import Q
+
+
+def branch_to_release(apps, schema_editor):
+ Layer_Version = apps.get_model('orm', 'Layer_Version')
+ Release = apps.get_model('orm', 'Release')
+
+ print("Converting all layer version up_branches to releases")
+ # Find all the layer versions which have an upbranch and convert them to
+ # the release that they're for.
+ for layer_version in Layer_Version.objects.filter(
+ Q(release=None) & ~Q(up_branch=None)):
+ try:
+ # HEAD and local are equivalent
+ if "HEAD" in layer_version.up_branch.name:
+ release = Release.objects.get(name="local")
+ layer_version.commit = "HEAD"
+ layer_version.branch = "HEAD"
+ else:
+ release = Release.objects.get(
+ name=layer_version.up_branch.name)
+
+ layer_version.release = release
+ layer_version.save()
+ except Exception as e:
+ print("Couldn't work out an appropriate release for %s "
+ "the up_branch was %s "
+ "user the django admin interface to correct it" %
+ (layer_version.layer.name, layer_version.up_branch.name))
+ print(e)
+
+ continue
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0011_delete_layersource'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='layer_version',
+ name='release',
+ field=models.ForeignKey(to='orm.Release', default=None, null=True),
+ ),
+ migrations.RunPython(branch_to_release,
+ reverse_code=migrations.RunPython.noop),
+
+ migrations.RemoveField(
+ model_name='layer_version',
+ name='up_branch',
+ ),
+
+ migrations.DeleteModel(
+ name='Branch',
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0013_recipe_parse_progress_fields.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0013_recipe_parse_progress_fields.py
new file mode 100644
index 000000000..cc5c96d2d
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0013_recipe_parse_progress_fields.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0012_use_release_instead_of_up_branch'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='build',
+ name='recipes_parsed',
+ field=models.IntegerField(default=0),
+ ),
+ migrations.AddField(
+ model_name='build',
+ name='recipes_to_parse',
+ field=models.IntegerField(default=1),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0014_allow_empty_buildname.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0014_allow_empty_buildname.py
new file mode 100644
index 000000000..4749a14b2
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0014_allow_empty_buildname.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0013_recipe_parse_progress_fields'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='build',
+ name='build_name',
+ field=models.CharField(default='', max_length=100),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0015_layer_local_source_dir.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0015_layer_local_source_dir.py
new file mode 100644
index 000000000..9539cd72a
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/migrations/0015_layer_local_source_dir.py
@@ -0,0 +1,19 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('orm', '0014_allow_empty_buildname'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='layer',
+ name='local_source_dir',
+ field=models.TextField(null=True, default=None),
+ ),
+ ]
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/models.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/models.py
index 0b83b991b..a7de57c25 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/orm/models.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/orm/models.py
@@ -21,8 +21,8 @@
from __future__ import unicode_literals
-from django.db import models, IntegrityError
-from django.db.models import F, Q, Avg, Max, Sum
+from django.db import models, IntegrityError, DataError
+from django.db.models import F, Q, Sum, Count
from django.utils import timezone
from django.utils.encoding import force_bytes
@@ -32,9 +32,11 @@ from django.core import validators
from django.conf import settings
import django.db.models.signals
-import os.path
+import sys
+import os
import re
import itertools
+from signal import SIGUSR1
import logging
logger = logging.getLogger("toaster")
@@ -77,7 +79,7 @@ if 'sqlite' in settings.DATABASES['default']['ENGINE']:
try:
obj = self.create(**params)
return obj, True
- except IntegrityError:
+ except (IntegrityError, DataError):
exc_info = sys.exc_info()
try:
return self.get(**lookup), False
@@ -102,7 +104,7 @@ class GitURLValidator(validators.URLValidator):
def GitURLField(**kwargs):
r = models.URLField(**kwargs)
- for i in xrange(len(r.validators)):
+ for i in range(len(r.validators)):
if isinstance(r.validators[i], validators.URLValidator):
r.validators[i] = GitURLValidator()
return r
@@ -116,39 +118,48 @@ class ToasterSetting(models.Model):
def __unicode__(self):
return "Setting %s = %s" % (self.name, self.value)
+
class ProjectManager(models.Manager):
def create_project(self, name, release):
if release is not None:
- prj = self.model(name = name, bitbake_version = release.bitbake_version, release = release)
+ prj = self.model(name=name,
+ bitbake_version=release.bitbake_version,
+ release=release)
else:
- prj = self.model(name = name, bitbake_version = None, release = None)
+ prj = self.model(name=name,
+ bitbake_version=None,
+ release=None)
prj.save()
- for defaultconf in ToasterSetting.objects.filter(name__startswith="DEFCONF_"):
+ for defaultconf in ToasterSetting.objects.filter(
+ name__startswith="DEFCONF_"):
name = defaultconf.name[8:]
- ProjectVariable.objects.create( project = prj,
- name = name,
- value = defaultconf.value)
+ ProjectVariable.objects.create(project=prj,
+ name=name,
+ value=defaultconf.value)
if release is None:
return prj
for rdl in release.releasedefaultlayer_set.all():
- try:
- lv = Layer_Version.objects.filter(layer__name = rdl.layer_name, up_branch__name = release.branch_name)[0].get_equivalents_wpriority(prj)[0]
- ProjectLayer.objects.create( project = prj,
- layercommit = lv,
- optional = False )
- except IndexError:
- # we may have no valid layer version objects, and that's ok
- pass
+ lv = Layer_Version.objects.filter(
+ layer__name=rdl.layer_name,
+ release=release).first()
+
+ if lv:
+ ProjectLayer.objects.create(project=prj,
+ layercommit=lv,
+ optional=False)
+ else:
+ logger.warning("Default project layer %s not found" %
+ rdl.layer_name)
return prj
# return single object with is_default = True
def get_or_create_default_project(self):
- projects = super(ProjectManager, self).filter(is_default = True)
+ projects = super(ProjectManager, self).filter(is_default=True)
if len(projects) > 1:
raise Exception('Inconsistent project data: multiple ' +
@@ -156,7 +167,8 @@ class ProjectManager(models.Manager):
elif len(projects) < 1:
options = {
'name': 'Command line builds',
- 'short_description': 'Project for builds started outside Toaster',
+ 'short_description':
+ 'Project for builds started outside Toaster',
'is_default': True
}
project = Project.objects.create(**options)
@@ -269,7 +281,7 @@ class Project(models.Model):
# guard on release, as it can be null
if self.release:
queryset = Layer_Version.objects.filter(
- (Q(up_branch__name=self.release.branch_name) &
+ (Q(release=self.release) &
Q(build=None) &
Q(project=None)) |
Q(project=self))
@@ -335,7 +347,15 @@ class Project(models.Model):
for l in self.projectlayer_set.all().order_by("pk"):
commit = l.layercommit.get_vcs_reference()
print("ii Building layer ", l.layercommit.layer.name, " at vcs point ", commit)
- BRLayer.objects.create(req = br, name = l.layercommit.layer.name, giturl = l.layercommit.layer.vcs_url, commit = commit, dirpath = l.layercommit.dirpath, layer_version=l.layercommit)
+ BRLayer.objects.create(
+ req=br,
+ name=l.layercommit.layer.name,
+ giturl=l.layercommit.layer.vcs_url,
+ commit=commit,
+ dirpath=l.layercommit.dirpath,
+ layer_version=l.layercommit,
+ local_source_dir=l.layercommit.layer.local_source_dir
+ )
br.state = BuildRequest.REQ_QUEUED
now = timezone.now()
@@ -357,6 +377,8 @@ class Project(models.Model):
except ProjectVariable.DoesNotExist:
pass
br.save()
+ signal_runbuilds()
+
except Exception:
# revert the build request creation since we're not done cleanly
br.delete()
@@ -386,9 +408,15 @@ class Build(models.Model):
completed_on = models.DateTimeField()
outcome = models.IntegerField(choices=BUILD_OUTCOME, default=IN_PROGRESS)
cooker_log_path = models.CharField(max_length=500)
- build_name = models.CharField(max_length=100)
+ build_name = models.CharField(max_length=100, default='')
bitbake_version = models.CharField(max_length=50)
+ # number of recipes to parse for this build
+ recipes_to_parse = models.IntegerField(default=1)
+
+ # number of recipes parsed so far for this build
+ recipes_parsed = models.IntegerField(default=0)
+
@staticmethod
def get_recent(project=None):
"""
@@ -415,14 +443,30 @@ class Build(models.Model):
# to show build progress in mrb_section.html
for build in recent_builds:
build.percentDone = build.completeper()
+ build.outcomeText = build.get_outcome_text()
return recent_builds
+ def started(self):
+ """
+ As build variables are only added for a build when its BuildStarted event
+ is received, a build with no build variables is counted as
+ "in preparation" and not properly started yet. This method
+ will return False if a build has no build variables (it never properly
+ started), or True otherwise.
+
+ Note that this is a temporary workaround for the fact that we don't
+ have a fine-grained state variable on a build which would allow us
+ to record "in progress" (BuildStarted received) vs. "in preparation".
+ """
+ variables = Variable.objects.filter(build=self)
+ return len(variables) > 0
+
def completeper(self):
tf = Task.objects.filter(build = self)
tfc = tf.count()
if tfc > 0:
- completeper = tf.exclude(order__isnull=True).count()*100/tfc
+ completeper = tf.exclude(order__isnull=True).count()*100 // tfc
else:
completeper = 0
return completeper
@@ -434,58 +478,62 @@ class Build(models.Model):
eta += ((eta - self.started_on)*(100-completeper))/completeper
return eta
+ def has_images(self):
+ """
+ Returns True if at least one of the targets for this build has an
+ image file associated with it, False otherwise
+ """
+ targets = Target.objects.filter(build_id=self.id)
+ has_images = False
+ for target in targets:
+ if target.has_images():
+ has_images = True
+ break
+ return has_images
+
+ def has_image_recipes(self):
+ """
+ Returns True if a build has any targets which were built from
+ image recipes.
+ """
+ image_recipes = self.get_image_recipes()
+ return len(image_recipes) > 0
+
def get_image_file_extensions(self):
"""
- Get list of file name extensions for images produced by this build
+ Get string of file name extensions for images produced by this build;
+ note that this is the actual list of extensions stored on Target objects
+ for this build, and not the value of IMAGE_FSTYPES.
+
+ Returns comma-separated string, e.g. "vmdk, ext4"
"""
- targets = Target.objects.filter(build_id = self.id)
extensions = []
- # pattern to match against file path for building extension string
- pattern = re.compile('\.([^\.]+?)$')
-
+ targets = Target.objects.filter(build_id = self.id)
for target in targets:
- if (not target.is_image):
+ if not target.is_image:
continue
- target_image_files = Target_Image_File.objects.filter(target_id = target.id)
+ target_image_files = Target_Image_File.objects.filter(
+ target_id=target.id)
for target_image_file in target_image_files:
- file_name = os.path.basename(target_image_file.file_name)
- suffix = ''
-
- continue_matching = True
-
- # incrementally extract the suffix from the file path,
- # checking it against the list of valid suffixes at each
- # step; if the path is stripped of all potential suffix
- # parts without matching a valid suffix, this returns all
- # characters after the first '.' in the file name
- while continue_matching:
- matches = pattern.search(file_name)
-
- if None == matches:
- continue_matching = False
- suffix = re.sub('^\.', '', suffix)
- continue
- else:
- suffix = matches.group(1) + suffix
-
- if suffix in Target_Image_File.SUFFIXES:
- continue_matching = False
- continue
- else:
- # reduce the file name and try to find the next
- # segment from the path which might be part
- # of the suffix
- file_name = re.sub('.' + matches.group(1), '', file_name)
- suffix = '.' + suffix
-
- if not suffix in extensions:
- extensions.append(suffix)
+ extensions.append(target_image_file.suffix)
+
+ extensions = list(set(extensions))
+ extensions.sort()
return ', '.join(extensions)
+ def get_image_fstypes(self):
+ """
+ Get the IMAGE_FSTYPES variable value for this build as a de-duplicated
+ list of image file suffixes.
+ """
+ image_fstypes = Variable.objects.get(
+ build=self, variable_name='IMAGE_FSTYPES').variable_value
+ return list(set(re.split(r' {1,}', image_fstypes)))
+
def get_sorted_target_list(self):
tgts = Target.objects.filter(build_id = self.id).order_by( 'target' );
return( tgts );
@@ -576,49 +624,69 @@ class Build(models.Model):
return target_labels
- def get_current_status(self):
- """
- get the status string from the build request if the build
- has one, or the text for the build outcome if it doesn't
- """
-
- from bldcontrol.models import BuildRequest
-
- build_request = None
+ def get_buildrequest(self):
+ buildrequest = None
if hasattr(self, 'buildrequest'):
- build_request = self.buildrequest
+ buildrequest = self.buildrequest
+ return buildrequest
- if (build_request
- and build_request.state != BuildRequest.REQ_INPROGRESS
- and self.outcome == Build.IN_PROGRESS):
- return self.buildrequest.get_state_display()
+ def is_queued(self):
+ from bldcontrol.models import BuildRequest
+ buildrequest = self.get_buildrequest()
+ if buildrequest:
+ return buildrequest.state == BuildRequest.REQ_QUEUED
else:
- return self.get_outcome_text()
+ return False
- def __str__(self):
- return "%d %s %s" % (self.id, self.project, ",".join([t.target for t in self.target_set.all()]))
+ def is_cancelling(self):
+ from bldcontrol.models import BuildRequest
+ buildrequest = self.get_buildrequest()
+ if buildrequest:
+ return self.outcome == Build.IN_PROGRESS and \
+ buildrequest.state == BuildRequest.REQ_CANCELLING
+ else:
+ return False
+ def is_parsing(self):
+ """
+ True if the build is still parsing recipes
+ """
+ return self.outcome == Build.IN_PROGRESS and \
+ self.recipes_parsed < self.recipes_to_parse
-# an Artifact is anything that results from a Build, and may be of interest to the user, and is not stored elsewhere
-class BuildArtifact(models.Model):
- build = models.ForeignKey(Build)
- file_name = models.FilePathField()
- file_size = models.IntegerField()
+ def is_starting(self):
+ """
+ True if the build has no completed tasks yet and is still just starting
+ tasks.
- def get_local_file_name(self):
- try:
- deploydir = Variable.objects.get(build = self.build, variable_name="DEPLOY_DIR").variable_value
- return self.file_name[len(deploydir)+1:]
- except:
- raise
+ Note that the mechanism for testing whether a Task is "done" is whether
+ its order field is set, as per the completeper() method.
+ """
+ return self.outcome == Build.IN_PROGRESS and \
+ self.task_build.filter(order__isnull=False).count() == 0
- return self.file_name
+ def get_state(self):
+ """
+ Get the state of the build; one of 'Succeeded', 'Failed', 'In Progress',
+ 'Cancelled' (Build outcomes); or 'Queued', 'Cancelling' (states
+ dependent on the BuildRequest state).
- def get_basename(self):
- return os.path.basename(self.file_name)
+ This works around the fact that we have BuildRequest states as well
+ as Build states, but really we just want to know the state of the build.
+ """
+ if self.is_cancelling():
+ return 'Cancelling';
+ elif self.is_queued():
+ return 'Queued'
+ elif self.is_parsing():
+ return 'Parsing'
+ elif self.is_starting():
+ return 'Starting'
+ else:
+ return self.get_outcome_text()
- def is_available(self):
- return self.build.buildrequest.environment.has_artifact(self.file_name)
+ def __str__(self):
+ return "%d %s %s" % (self.id, self.project, ",".join([t.target for t in self.target_set.all()]))
class ProjectTarget(models.Model):
project = models.ForeignKey(Project)
@@ -633,6 +701,7 @@ class Target(models.Model):
is_image = models.BooleanField(default = False)
image_size = models.IntegerField(default=0)
license_manifest_path = models.CharField(max_length=500, null=True)
+ package_manifest_path = models.CharField(max_length=500, null=True)
def package_count(self):
return Target_Installed_Package.objects.filter(target_id__exact=self.id).count()
@@ -640,14 +709,180 @@ class Target(models.Model):
def __unicode__(self):
return self.target
+ def get_similar_targets(self):
+ """
+ Get target sfor the same machine, task and target name
+ (e.g. 'core-image-minimal') from a successful build for this project
+ (but excluding this target).
+
+ Note that we only look for targets built by this project because
+ projects can have different configurations from each other, and put
+ their artifacts in different directories.
+
+ The possibility of error when retrieving candidate targets
+ is minimised by the fact that bitbake will rebuild artifacts if MACHINE
+ (or various other variables) change. In this case, there is no need to
+ clone artifacts from another target, as those artifacts will have
+ been re-generated for this target anyway.
+ """
+ query = ~Q(pk=self.pk) & \
+ Q(target=self.target) & \
+ Q(build__machine=self.build.machine) & \
+ Q(build__outcome=Build.SUCCEEDED) & \
+ Q(build__project=self.build.project)
+
+ return Target.objects.filter(query)
+
+ def get_similar_target_with_image_files(self):
+ """
+ Get the most recent similar target with Target_Image_Files associated
+ with it, for the purpose of cloning those files onto this target.
+ """
+ similar_target = None
+
+ candidates = self.get_similar_targets()
+ if candidates.count() == 0:
+ return similar_target
+
+ task_subquery = Q(task=self.task)
+
+ # we can look for a 'build' task if this task is a 'populate_sdk_ext'
+ # task, as the latter also creates images; and vice versa; note that
+ # 'build' targets can have their task set to '';
+ # also note that 'populate_sdk' does not produce image files
+ image_tasks = [
+ '', # aka 'build'
+ 'build',
+ 'image',
+ 'populate_sdk_ext'
+ ]
+ if self.task in image_tasks:
+ task_subquery = Q(task__in=image_tasks)
+
+ # annotate with the count of files, to exclude any targets which
+ # don't have associated files
+ candidates = candidates.annotate(num_files=Count('target_image_file'))
+
+ query = task_subquery & Q(num_files__gt=0)
+
+ candidates = candidates.filter(query)
+
+ if candidates.count() > 0:
+ candidates.order_by('build__completed_on')
+ similar_target = candidates.last()
+
+ return similar_target
+
+ def get_similar_target_with_sdk_files(self):
+ """
+ Get the most recent similar target with TargetSDKFiles associated
+ with it, for the purpose of cloning those files onto this target.
+ """
+ similar_target = None
+
+ candidates = self.get_similar_targets()
+ if candidates.count() == 0:
+ return similar_target
+
+ # annotate with the count of files, to exclude any targets which
+ # don't have associated files
+ candidates = candidates.annotate(num_files=Count('targetsdkfile'))
+
+ query = Q(task=self.task) & Q(num_files__gt=0)
+
+ candidates = candidates.filter(query)
+
+ if candidates.count() > 0:
+ candidates.order_by('build__completed_on')
+ similar_target = candidates.last()
+
+ return similar_target
+
+ def clone_image_artifacts_from(self, target):
+ """
+ Make clones of the Target_Image_Files and TargetKernelFile objects
+ associated with Target target, then associate them with this target.
+
+ Note that for Target_Image_Files, we only want files from the previous
+ build whose suffix matches one of the suffixes defined in this
+ target's build's IMAGE_FSTYPES configuration variable. This prevents the
+ Target_Image_File object for an ext4 image being associated with a
+ target for a project which didn't produce an ext4 image (for example).
+
+ Also sets the license_manifest_path and package_manifest_path
+ of this target to the same path as that of target being cloned from, as
+ the manifests are also build artifacts but are treated differently.
+ """
+
+ image_fstypes = self.build.get_image_fstypes()
+
+ # filter out any image files whose suffixes aren't in the
+ # IMAGE_FSTYPES suffixes variable for this target's build
+ image_files = [target_image_file \
+ for target_image_file in target.target_image_file_set.all() \
+ if target_image_file.suffix in image_fstypes]
+
+ for image_file in image_files:
+ image_file.pk = None
+ image_file.target = self
+ image_file.save()
+
+ kernel_files = target.targetkernelfile_set.all()
+ for kernel_file in kernel_files:
+ kernel_file.pk = None
+ kernel_file.target = self
+ kernel_file.save()
+
+ self.license_manifest_path = target.license_manifest_path
+ self.package_manifest_path = target.package_manifest_path
+ self.save()
+
+ def clone_sdk_artifacts_from(self, target):
+ """
+ Clone TargetSDKFile objects from target and associate them with this
+ target.
+ """
+ sdk_files = target.targetsdkfile_set.all()
+ for sdk_file in sdk_files:
+ sdk_file.pk = None
+ sdk_file.target = self
+ sdk_file.save()
+
+ def has_images(self):
+ """
+ Returns True if this target has one or more image files attached to it.
+ """
+ return self.target_image_file_set.all().count() > 0
+
+# kernel artifacts for a target: bzImage and modules*
+class TargetKernelFile(models.Model):
+ target = models.ForeignKey(Target)
+ file_name = models.FilePathField()
+ file_size = models.IntegerField()
+
+ @property
+ def basename(self):
+ return os.path.basename(self.file_name)
+
+# SDK artifacts for a target: sh and manifest files
+class TargetSDKFile(models.Model):
+ target = models.ForeignKey(Target)
+ file_name = models.FilePathField()
+ file_size = models.IntegerField()
+
+ @property
+ def basename(self):
+ return os.path.basename(self.file_name)
+
class Target_Image_File(models.Model):
# valid suffixes for image files produced by a build
SUFFIXES = {
'btrfs', 'cpio', 'cpio.gz', 'cpio.lz4', 'cpio.lzma', 'cpio.xz',
'cramfs', 'elf', 'ext2', 'ext2.bz2', 'ext2.gz', 'ext2.lzma', 'ext4',
- 'ext4.gz', 'ext3', 'ext3.gz', 'hddimg', 'iso', 'jffs2', 'jffs2.sum',
- 'squashfs', 'squashfs-lzo', 'squashfs-xz', 'tar.bz2', 'tar.lz4',
- 'tar.xz', 'tartar.gz', 'ubi', 'ubifs', 'vmdk'
+ 'ext4.gz', 'ext3', 'ext3.gz', 'hdddirect', 'hddimg', 'iso', 'jffs2',
+ 'jffs2.sum', 'multiubi', 'qcow2', 'squashfs', 'squashfs-lzo',
+ 'squashfs-xz', 'tar', 'tar.bz2', 'tar.gz', 'tar.lz4', 'tar.xz', 'ubi',
+ 'ubifs', 'vdi', 'vmdk', 'wic', 'wic.bz2', 'wic.gz', 'wic.lzma'
}
target = models.ForeignKey(Target)
@@ -656,6 +891,13 @@ class Target_Image_File(models.Model):
@property
def suffix(self):
+ """
+ Suffix for image file, minus leading "."
+ """
+ for suffix in Target_Image_File.SUFFIXES:
+ if self.file_name.endswith(suffix):
+ return suffix
+
filename, suffix = os.path.splitext(self.file_name)
suffix = suffix.lstrip('.')
return suffix
@@ -860,31 +1102,70 @@ class CustomImagePackage(Package):
related_name='appends_set')
-
class Package_DependencyManager(models.Manager):
use_for_related_fields = True
+ TARGET_LATEST = "use-latest-target-for-target"
def get_queryset(self):
return super(Package_DependencyManager, self).get_queryset().exclude(package_id = F('depends_on__id'))
- def get_total_source_deps_size(self):
- """ Returns the total file size of all the packages that depend on
- thispackage.
- """
- return self.all().aggregate(Sum('depends_on__size'))
+ def for_target_or_none(self, target):
+ """ filter the dependencies to be displayed by the supplied target
+ if no dependences are found for the target then try None as the target
+ which will return the dependences calculated without the context of a
+ target e.g. non image recipes.
- def get_total_revdeps_size(self):
- """ Returns the total file size of all the packages that depend on
- this package.
+ returns: { size, packages }
"""
- return self.all().aggregate(Sum('package_id__size'))
+ package_dependencies = self.all_depends().order_by('depends_on__name')
+
+ if target is self.TARGET_LATEST:
+ installed_deps =\
+ package_dependencies.filter(~Q(target__target=None))
+ else:
+ installed_deps =\
+ package_dependencies.filter(Q(target__target=target))
+
+ packages_list = None
+ total_size = 0
+
+ # If we have installed depdencies for this package and target then use
+ # these to display
+ if installed_deps.count() > 0:
+ packages_list = installed_deps
+ total_size = installed_deps.aggregate(
+ Sum('depends_on__size'))['depends_on__size__sum']
+ else:
+ new_list = []
+ package_names = []
+ # Find dependencies for the package that we know about even if
+ # it's not installed on a target e.g. from a non-image recipe
+ for p in package_dependencies.filter(Q(target=None)):
+ if p.depends_on.name in package_names:
+ continue
+ else:
+ package_names.append(p.depends_on.name)
+ new_list.append(p.pk)
+ # while we're here we may as well total up the size to
+ # avoid iterating again
+ total_size += p.depends_on.size
+
+ # We want to return a queryset here for consistency so pick the
+ # deps from the new_list
+ packages_list = package_dependencies.filter(Q(pk__in=new_list))
+
+ return {'packages': packages_list,
+ 'size': total_size}
def all_depends(self):
- """ Returns just the depends packages and not any other dep_type """
+ """ Returns just the depends packages and not any other dep_type
+ Note that this is for any target
+ """
return self.filter(Q(dep_type=Package_Dependency.TYPE_RDEPENDS) |
Q(dep_type=Package_Dependency.TYPE_TRDEPENDS))
+
class Package_Dependency(models.Model):
TYPE_RDEPENDS = 0
TYPE_TRDEPENDS = 1
@@ -930,21 +1211,27 @@ class Target_Installed_Package(models.Model):
target = models.ForeignKey(Target)
package = models.ForeignKey(Package, related_name='buildtargetlist_package')
+
class Package_File(models.Model):
package = models.ForeignKey(Package, related_name='buildfilelist_package')
path = models.FilePathField(max_length=255, blank=True)
size = models.IntegerField()
+
class Recipe(models.Model):
- search_allowed_fields = ['name', 'version', 'file_path', 'section', 'summary', 'description', 'license', 'layer_version__layer__name', 'layer_version__branch', 'layer_version__commit', 'layer_version__local_path', 'layer_version__layer_source__name']
+ search_allowed_fields = ['name', 'version', 'file_path', 'section',
+ 'summary', 'description', 'license',
+ 'layer_version__layer__name',
+ 'layer_version__branch', 'layer_version__commit',
+ 'layer_version__local_path',
+ 'layer_version__layer_source']
- layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this recipe
- up_id = models.IntegerField(null = True, default = None) # id of entry in the source
- up_date = models.DateTimeField(null = True, default = None)
+ up_date = models.DateTimeField(null=True, default=None)
- name = models.CharField(max_length=100, blank=True) # pn
- version = models.CharField(max_length=100, blank=True) # pv
- layer_version = models.ForeignKey('Layer_Version', related_name='recipe_layer_version')
+ name = models.CharField(max_length=100, blank=True)
+ version = models.CharField(max_length=100, blank=True)
+ layer_version = models.ForeignKey('Layer_Version',
+ related_name='recipe_layer_version')
summary = models.TextField(blank=True)
description = models.TextField(blank=True)
section = models.CharField(max_length=100, blank=True)
@@ -955,13 +1242,6 @@ class Recipe(models.Model):
pathflags = models.CharField(max_length=200, blank=True)
is_image = models.BooleanField(default=False)
- def get_layersource_view_url(self):
- if self.layer_source is None:
- return ""
-
- url = self.layer_source.get_object_view(self.layer_version.up_branch, "recipes", self.name)
- return url
-
def __unicode__(self):
return "Recipe " + self.name + ":" + self.version
@@ -1007,8 +1287,6 @@ class Recipe_Dependency(models.Model):
class Machine(models.Model):
search_allowed_fields = ["name", "description", "layer_version__layer__name"]
- layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this machine
- up_id = models.IntegerField(null = True, default = None) # id of entry in the source
up_date = models.DateTimeField(null = True, default = None)
layer_version = models.ForeignKey('Layer_Version')
@@ -1023,285 +1301,9 @@ class Machine(models.Model):
def __unicode__(self):
return "Machine " + self.name + "(" + self.description + ")"
- class Meta:
- unique_together = ("layer_source", "up_id")
-
-
-from django.db.models.base import ModelBase
-
-class InheritanceMetaclass(ModelBase):
- def __call__(cls, *args, **kwargs):
- obj = super(InheritanceMetaclass, cls).__call__(*args, **kwargs)
- return obj.get_object()
-
-
-class LayerSource(models.Model):
- __metaclass__ = InheritanceMetaclass
-
- class Meta:
- unique_together = (('sourcetype', 'apiurl'), )
-
- TYPE_LOCAL = 0
- TYPE_LAYERINDEX = 1
- TYPE_IMPORTED = 2
- SOURCE_TYPE = (
- (TYPE_LOCAL, "local"),
- (TYPE_LAYERINDEX, "layerindex"),
- (TYPE_IMPORTED, "imported"),
- )
-
- name = models.CharField(max_length=63, unique = True)
- sourcetype = models.IntegerField(choices=SOURCE_TYPE)
- apiurl = models.CharField(max_length=255, null=True, default=None)
-
- def __init__(self, *args, **kwargs):
- super(LayerSource, self).__init__(*args, **kwargs)
- if self.sourcetype == LayerSource.TYPE_LOCAL:
- self.__class__ = LocalLayerSource
- elif self.sourcetype == LayerSource.TYPE_LAYERINDEX:
- self.__class__ = LayerIndexLayerSource
- elif self.sourcetype == LayerSource.TYPE_IMPORTED:
- self.__class__ = ImportedLayerSource
- elif self.sourcetype == None:
- raise Exception("Unknown LayerSource-derived class. If you added a new layer source type, fill out all code stubs.")
-
-
- def update(self):
- """
- Updates the local database information from the upstream layer source
- """
- raise Exception("Abstract, update() must be implemented by all LayerSource-derived classes (object is %s)" % str(vars(self)))
-
- def save(self, *args, **kwargs):
- return super(LayerSource, self).save(*args, **kwargs)
-
- def get_object(self):
- # preset an un-initilized object
- if None == self.name:
- self.name=""
- if None == self.apiurl:
- self.apiurl=""
- if None == self.sourcetype:
- self.sourcetype=LayerSource.TYPE_LOCAL
-
- if self.sourcetype == LayerSource.TYPE_LOCAL:
- self.__class__ = LocalLayerSource
- elif self.sourcetype == LayerSource.TYPE_LAYERINDEX:
- self.__class__ = LayerIndexLayerSource
- elif self.sourcetype == LayerSource.TYPE_IMPORTED:
- self.__class__ = ImportedLayerSource
- else:
- raise Exception("Unknown LayerSource type. If you added a new layer source type, fill out all code stubs.")
- return self
-
- def __unicode__(self):
- return "%s (%s)" % (self.name, self.sourcetype)
-
-
-class LocalLayerSource(LayerSource):
- class Meta(LayerSource._meta.__class__):
- proxy = True
-
- def __init__(self, *args, **kwargs):
- super(LocalLayerSource, self).__init__(args, kwargs)
- self.sourcetype = LayerSource.TYPE_LOCAL
-
- def update(self):
- """
- Fetches layer, recipe and machine information from local repository
- """
- pass
-
-class ImportedLayerSource(LayerSource):
- class Meta(LayerSource._meta.__class__):
- proxy = True
-
- def __init__(self, *args, **kwargs):
- super(ImportedLayerSource, self).__init__(args, kwargs)
- self.sourcetype = LayerSource.TYPE_IMPORTED
-
- def update(self):
- """
- Fetches layer, recipe and machine information from local repository
- """
- pass
-
-
-class LayerIndexLayerSource(LayerSource):
- class Meta(LayerSource._meta.__class__):
- proxy = True
- def __init__(self, *args, **kwargs):
- super(LayerIndexLayerSource, self).__init__(args, kwargs)
- self.sourcetype = LayerSource.TYPE_LAYERINDEX
-
- def get_object_view(self, branch, objectype, upid):
- return self.apiurl + "../branch/" + branch.name + "/" + objectype + "/?q=" + str(upid)
- def update(self):
- """
- Fetches layer, recipe and machine information from remote repository
- """
- assert self.apiurl is not None
- from django.db import transaction, connection
- import urllib2, urlparse, json
- import os
- proxy_settings = os.environ.get("http_proxy", None)
- oe_core_layer = 'openembedded-core'
-
- def _get_json_response(apiurl = self.apiurl):
- _parsedurl = urlparse.urlparse(apiurl)
- path = _parsedurl.path
-
- try:
- res = urllib2.urlopen(apiurl)
- except urllib2.URLError as e:
- raise Exception("Failed to read %s: %s" % (path, e.reason))
-
- return json.loads(res.read())
-
- # verify we can get the basic api
- try:
- apilinks = _get_json_response()
- except Exception as e:
- import traceback
- if proxy_settings is not None:
- logger.info("EE: Using proxy %s" % proxy_settings)
- logger.warning("EE: could not connect to %s, skipping update: %s\n%s" % (self.apiurl, e, traceback.format_exc(e)))
- return
-
- # update branches; only those that we already have names listed in the
- # Releases table
- whitelist_branch_names = map(lambda x: x.branch_name, Release.objects.all())
- if len(whitelist_branch_names) == 0:
- raise Exception("Failed to make list of branches to fetch")
-
- logger.debug("Fetching branches")
- branches_info = _get_json_response(apilinks['branches']
- + "?filter=name:%s" % "OR".join(whitelist_branch_names))
- for bi in branches_info:
- b, created = Branch.objects.get_or_create(layer_source = self, name = bi['name'])
- b.up_id = bi['id']
- b.up_date = bi['updated']
- b.name = bi['name']
- b.short_description = bi['short_description']
- b.save()
-
- # update layers
- layers_info = _get_json_response(apilinks['layerItems'])
-
- for li in layers_info:
- # Special case for the openembedded-core layer
- if li['name'] == oe_core_layer:
- try:
- # If we have an existing openembedded-core for example
- # from the toasterconf.json augment the info using the
- # layerindex rather than duplicate it
- oe_core_l = Layer.objects.get(name=oe_core_layer)
- # Take ownership of the layer as now coming from the
- # layerindex
- oe_core_l.layer_source = self
- oe_core_l.up_id = li['id']
- oe_core_l.summary = li['summary']
- oe_core_l.description = li['description']
- oe_core_l.save()
- continue
-
- except Layer.DoesNotExist:
- pass
-
- l, created = Layer.objects.get_or_create(layer_source = self, name = li['name'])
- l.up_id = li['id']
- l.up_date = li['updated']
- l.vcs_url = li['vcs_url']
- l.vcs_web_url = li['vcs_web_url']
- l.vcs_web_tree_base_url = li['vcs_web_tree_base_url']
- l.vcs_web_file_base_url = li['vcs_web_file_base_url']
- l.summary = li['summary']
- l.description = li['description']
- l.save()
-
- # update layerbranches/layer_versions
- logger.debug("Fetching layer information")
- layerbranches_info = _get_json_response(apilinks['layerBranches']
- + "?filter=branch:%s" % "OR".join(map(lambda x: str(x.up_id), [i for i in Branch.objects.filter(layer_source = self) if i.up_id is not None] ))
- )
-
- for lbi in layerbranches_info:
- lv, created = Layer_Version.objects.get_or_create(layer_source = self,
- up_id = lbi['id'],
- layer=Layer.objects.get(layer_source = self, up_id = lbi['layer'])
- )
-
- lv.up_date = lbi['updated']
- lv.up_branch = Branch.objects.get(layer_source = self, up_id = lbi['branch'])
- lv.branch = lbi['actual_branch']
- lv.commit = lbi['actual_branch']
- lv.dirpath = lbi['vcs_subdir']
- lv.save()
-
- # update layer dependencies
- layerdependencies_info = _get_json_response(apilinks['layerDependencies'])
- dependlist = {}
- for ldi in layerdependencies_info:
- try:
- lv = Layer_Version.objects.get(layer_source = self, up_id = ldi['layerbranch'])
- except Layer_Version.DoesNotExist as e:
- continue
-
- if lv not in dependlist:
- dependlist[lv] = []
- try:
- dependlist[lv].append(Layer_Version.objects.get(layer_source = self, layer__up_id = ldi['dependency'], up_branch = lv.up_branch))
- except Layer_Version.DoesNotExist:
- logger.warning("Cannot find layer version (ls:%s), up_id:%s lv:%s" % (self, ldi['dependency'], lv))
-
- for lv in dependlist:
- LayerVersionDependency.objects.filter(layer_version = lv).delete()
- for lvd in dependlist[lv]:
- LayerVersionDependency.objects.get_or_create(layer_version = lv, depends_on = lvd)
-
-
- # update machines
- logger.debug("Fetching machine information")
- machines_info = _get_json_response(apilinks['machines']
- + "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
- )
-
- for mi in machines_info:
- mo, created = Machine.objects.get_or_create(layer_source = self, up_id = mi['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = mi['layerbranch']))
- mo.up_date = mi['updated']
- mo.name = mi['name']
- mo.description = mi['description']
- mo.save()
-
- # update recipes; paginate by layer version / layer branch
- logger.debug("Fetching target information")
- recipes_info = _get_json_response(apilinks['recipes']
- + "?filter=layerbranch:%s" % "OR".join(map(lambda x: str(x.up_id), Layer_Version.objects.filter(layer_source = self)))
- )
- for ri in recipes_info:
- try:
- ro, created = Recipe.objects.get_or_create(layer_source = self, up_id = ri['id'], layer_version = Layer_Version.objects.get(layer_source = self, up_id = ri['layerbranch']))
- ro.up_date = ri['updated']
- ro.name = ri['pn']
- ro.version = ri['pv']
- ro.summary = ri['summary']
- ro.description = ri['description']
- ro.section = ri['section']
- ro.license = ri['license']
- ro.homepage = ri['homepage']
- ro.bugtracker = ri['bugtracker']
- ro.file_path = ri['filepath'] + "/" + ri['filename']
- if 'inherits' in ri:
- ro.is_image = 'image' in ri['inherits'].split()
- else: # workaround for old style layer index
- ro.is_image = "-image-" in ri['pn']
- ro.save()
- except IntegrityError as e:
- logger.debug("Failed saving recipe, ignoring: %s (%s:%s)" % (e, ro.layer_version, ri['filepath']+"/"+ri['filename']))
- ro.delete()
class BitbakeVersion(models.Model):
@@ -1325,87 +1327,94 @@ class Release(models.Model):
def __unicode__(self):
return "%s (%s)" % (self.name, self.branch_name)
-class ReleaseLayerSourcePriority(models.Model):
- """ Each release selects layers from the set up layer sources, ordered by priority """
- release = models.ForeignKey("Release")
- layer_source = models.ForeignKey("LayerSource")
- priority = models.IntegerField(default = 0)
-
- def __unicode__(self):
- return "%s-%s:%d" % (self.release.name, self.layer_source.name, self.priority)
- class Meta:
- unique_together = (('release', 'layer_source'),)
-
+ def __str__(self):
+ return self.name
class ReleaseDefaultLayer(models.Model):
release = models.ForeignKey(Release)
layer_name = models.CharField(max_length=100, default="")
-# Branch class is synced with layerindex.Branch, branches can only come from remote layer indexes
-class Branch(models.Model):
- layer_source = models.ForeignKey('LayerSource', null = True, default = True)
- up_id = models.IntegerField(null = True, default = None) # id of branch in the source
- up_date = models.DateTimeField(null = True, default = None)
-
- name = models.CharField(max_length=50)
- short_description = models.CharField(max_length=50, blank=True)
+class LayerSource(object):
+ """ Where the layer metadata came from """
+ TYPE_LOCAL = 0
+ TYPE_LAYERINDEX = 1
+ TYPE_IMPORTED = 2
+ TYPE_BUILD = 3
- class Meta:
- verbose_name_plural = "Branches"
- unique_together = (('layer_source', 'name'),('layer_source', 'up_id'))
+ SOURCE_TYPE = (
+ (TYPE_LOCAL, "local"),
+ (TYPE_LAYERINDEX, "layerindex"),
+ (TYPE_IMPORTED, "imported"),
+ (TYPE_BUILD, "build"),
+ )
- def __unicode__(self):
- return self.name
+ def types_dict():
+ """ Turn the TYPES enums into a simple dictionary """
+ dictionary = {}
+ for key in LayerSource.__dict__:
+ if "TYPE" in key:
+ dictionary[key] = getattr(LayerSource, key)
+ return dictionary
-# Layer class synced with layerindex.LayerItem
class Layer(models.Model):
- layer_source = models.ForeignKey(LayerSource, null = True, default = None) # from where did we got this layer
- up_id = models.IntegerField(null = True, default = None) # id of layer in the remote source
- up_date = models.DateTimeField(null = True, default = None)
+
+ up_date = models.DateTimeField(null=True, default=timezone.now)
name = models.CharField(max_length=100)
layer_index_url = models.URLField()
- vcs_url = GitURLField(default = None, null = True)
- vcs_web_url = models.URLField(null = True, default = None)
- vcs_web_tree_base_url = models.URLField(null = True, default = None)
- vcs_web_file_base_url = models.URLField(null = True, default = None)
+ vcs_url = GitURLField(default=None, null=True)
+ local_source_dir = models.TextField(null = True, default = None)
+ vcs_web_url = models.URLField(null=True, default=None)
+ vcs_web_tree_base_url = models.URLField(null=True, default=None)
+ vcs_web_file_base_url = models.URLField(null=True, default=None)
- summary = models.TextField(help_text='One-line description of the layer', null = True, default = None)
- description = models.TextField(null = True, default = None)
+ summary = models.TextField(help_text='One-line description of the layer',
+ null=True, default=None)
+ description = models.TextField(null=True, default=None)
def __unicode__(self):
- return "%s / %s " % (self.name, self.layer_source)
-
- class Meta:
- unique_together = (("layer_source", "up_id"), ("layer_source", "name"))
+ return "%s / %s " % (self.name, self.summary)
-# LayerCommit class is synced with layerindex.LayerBranch
class Layer_Version(models.Model):
"""
A Layer_Version either belongs to a single project or no project
"""
- search_allowed_fields = ["layer__name", "layer__summary", "layer__description", "layer__vcs_url", "dirpath", "up_branch__name", "commit", "branch"]
- build = models.ForeignKey(Build, related_name='layer_version_build', default = None, null = True)
+ search_allowed_fields = ["layer__name", "layer__summary",
+ "layer__description", "layer__vcs_url",
+ "dirpath", "release__name", "commit", "branch"]
+
+ build = models.ForeignKey(Build, related_name='layer_version_build',
+ default=None, null=True)
+
layer = models.ForeignKey(Layer, related_name='layer_version_layer')
- layer_source = models.ForeignKey(LayerSource, null = True, default = None) # from where did we get this Layer Version
- up_id = models.IntegerField(null = True, default = None) # id of layerbranch in the remote source
- up_date = models.DateTimeField(null = True, default = None)
- up_branch = models.ForeignKey(Branch, null = True, default = None)
+ layer_source = models.IntegerField(choices=LayerSource.SOURCE_TYPE,
+ default=0)
+
+ up_date = models.DateTimeField(null=True, default=timezone.now)
- branch = models.CharField(max_length=80) # LayerBranch.actual_branch
- commit = models.CharField(max_length=100) # LayerBranch.vcs_last_rev
- dirpath = models.CharField(max_length=255, null = True, default = None) # LayerBranch.vcs_subdir
- priority = models.IntegerField(default = 0) # if -1, this is a default layer
+ # To which metadata release does this layer version belong to
+ release = models.ForeignKey(Release, null=True, default=None)
- local_path = models.FilePathField(max_length=1024, default = "/") # where this layer was checked-out
+ branch = models.CharField(max_length=80)
+ commit = models.CharField(max_length=100)
+ # If the layer is in a subdir
+ dirpath = models.CharField(max_length=255, null=True, default=None)
- project = models.ForeignKey('Project', null = True, default = None) # Set if this layer is project-specific; always set for imported layers, and project-set branches
+ # if -1, this is a default layer
+ priority = models.IntegerField(default=0)
- # code lifted, with adaptations, from the layerindex-web application https://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/
+ # where this layer exists on the filesystem
+ local_path = models.FilePathField(max_length=1024, default="/")
+
+ # Set if this layer is restricted to a particular project
+ project = models.ForeignKey('Project', null=True, default=None)
+
+ # code lifted, with adaptations, from the layerindex-web application
+ # https://git.yoctoproject.org/cgit/cgit.cgi/layerindex-web/
def _handle_url_path(self, base_url, path):
import re, posixpath
if base_url:
@@ -1422,7 +1431,7 @@ class Layer_Version(models.Model):
extra_path = self.dirpath
else:
extra_path = path
- branchname = self.up_branch.name
+ branchname = self.release.name
url = base_url.replace('%branch%', branchname)
# If there's a % in the path (e.g. a wildcard bbappend) we need to encode it
@@ -1447,23 +1456,19 @@ class Layer_Version(models.Model):
def get_vcs_file_link_url(self, file_path=""):
if self.layer.vcs_web_file_base_url is None:
return None
- return self._handle_url_path(self.layer.vcs_web_file_base_url, file_path)
+ return self._handle_url_path(self.layer.vcs_web_file_base_url,
+ file_path)
def get_vcs_dirpath_link_url(self):
if self.layer.vcs_web_tree_base_url is None:
return None
return self._handle_url_path(self.layer.vcs_web_tree_base_url, '')
- def get_equivalents_wpriority(self, project):
- layer_versions = project.get_all_compatible_layer_versions()
- filtered = layer_versions.filter(layer__name = self.layer.name)
- return filtered.order_by("-layer_source__releaselayersourcepriority__priority")
-
def get_vcs_reference(self):
if self.branch is not None and len(self.branch) > 0:
return self.branch
- if self.up_branch is not None:
- return self.up_branch.name
+ if self.release is not None:
+ return self.release.name
if self.commit is not None and len(self.commit) > 0:
return self.commit
return 'N/A'
@@ -1491,20 +1496,23 @@ class Layer_Version(models.Model):
return sorted(result, key=lambda x: x.layer.name)
def __unicode__(self):
- return "%d %s (VCS %s, Project %s)" % (self.pk, str(self.layer), self.get_vcs_reference(), self.build.project if self.build is not None else "No project")
+ return ("id %d belongs to layer: %s" % (self.pk, self.layer.name))
- class Meta:
- unique_together = ("layer_source", "up_id")
+ def __str__(self):
+ if self.release:
+ release = self.release.name
+ else:
+ release = "No release set"
-class LayerVersionDependency(models.Model):
- layer_source = models.ForeignKey(LayerSource, null = True, default = None) # from where did we got this layer
- up_id = models.IntegerField(null = True, default = None) # id of layerbranch in the remote source
+ return "%d %s (%s)" % (self.pk, self.layer.name, release)
- layer_version = models.ForeignKey(Layer_Version, related_name="dependencies")
- depends_on = models.ForeignKey(Layer_Version, related_name="dependees")
- class Meta:
- unique_together = ("layer_source", "up_id")
+class LayerVersionDependency(models.Model):
+
+ layer_version = models.ForeignKey(Layer_Version,
+ related_name="dependencies")
+ depends_on = models.ForeignKey(Layer_Version,
+ related_name="dependees")
class ProjectLayer(models.Model):
project = models.ForeignKey(Project)
@@ -1585,6 +1593,21 @@ class CustomImageRecipe(Recipe):
Q(recipe_includes=self)) &
~Q(recipe_excludes=self))
+ def get_base_recipe_file(self):
+ """Get the base recipe file path if it exists on the file system"""
+ path_schema_one = "%s/%s" % (self.base_recipe.layer_version.dirpath,
+ self.base_recipe.file_path)
+
+ path_schema_two = self.base_recipe.file_path
+
+ if os.path.exists(path_schema_one):
+ return path_schema_one
+
+ # The path may now be the full path if the recipe has been built
+ if os.path.exists(path_schema_two):
+ return path_schema_two
+
+ return None
def generate_recipe_file_contents(self):
"""Generate the contents for the recipe file."""
@@ -1599,17 +1622,16 @@ class CustomImageRecipe(Recipe):
# We add all the known packages to be built by this recipe apart
# from locale packages which are are controlled with IMAGE_LINGUAS.
for pkg in self.get_all_packages().exclude(
- name__icontains="locale"):
+ name__icontains="locale"):
packages_conf += pkg.name+' '
packages_conf += "\""
- try:
- base_recipe = open("%s/%s" %
- (self.base_recipe.layer_version.dirpath,
- self.base_recipe.file_path), 'r').read()
- except IOError:
- # The path may now be the full path if the recipe has been built
- base_recipe = open(self.base_recipe.file_path, 'r').read()
+
+ base_recipe_path = self.get_base_recipe_file()
+ if base_recipe_path:
+ base_recipe = open(base_recipe_path, 'r').read()
+ else:
+ raise IOError("Based on recipe file not found")
# Add a special case for when the recipe we have based a custom image
# recipe on requires another recipe.
@@ -1618,8 +1640,8 @@ class CustomImageRecipe(Recipe):
# "require recipes-core/images/core-image-minimal.bb"
req_search = re.search(r'(require\s+)(.+\.bb\s*$)',
- base_recipe,
- re.MULTILINE)
+ base_recipe,
+ re.MULTILINE)
if req_search:
require_filename = req_search.group(2).strip()
@@ -1629,19 +1651,19 @@ class CustomImageRecipe(Recipe):
new_require_line = "require %s" % corrected_location
- base_recipe = \
- base_recipe.replace(req_search.group(0), new_require_line)
-
+ base_recipe = base_recipe.replace(req_search.group(0),
+ new_require_line)
- info = {"date" : timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
- "base_recipe" : base_recipe,
- "recipe_name" : self.name,
- "base_recipe_name" : self.base_recipe.name,
- "license" : self.license,
- "summary" : self.summary,
- "description" : self.description,
- "packages_conf" : packages_conf.strip(),
- }
+ info = {
+ "date": timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
+ "base_recipe": base_recipe,
+ "recipe_name": self.name,
+ "base_recipe_name": self.base_recipe.name,
+ "license": self.license,
+ "summary": self.summary,
+ "description": self.description,
+ "packages_conf": packages_conf.strip()
+ }
recipe_contents = ("# Original recipe %(base_recipe_name)s \n"
"%(base_recipe)s\n\n"
@@ -1717,6 +1739,11 @@ def invalidate_cache(**kwargs):
except Exception as e:
logger.warning("Problem with cache backend: Failed to clear cache: %s" % e)
+def signal_runbuilds():
+ """Send SIGUSR1 to runbuilds process"""
+ with open(os.path.join(os.getenv('BUILDDIR'), '.runbuilds.pid')) as pidf:
+ os.kill(int(pidf.read()), SIGUSR1)
+
django.db.models.signals.post_save.connect(invalidate_cache)
django.db.models.signals.post_delete.connect(invalidate_cache)
django.db.models.signals.m2m_changed.connect(invalidate_cache)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/orm/tests.py b/import-layers/yocto-poky/bitbake/lib/toaster/orm/tests.py
deleted file mode 100644
index 719266e6d..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/orm/tests.py
+++ /dev/null
@@ -1,180 +0,0 @@
-#! /usr/bin/env python
-# ex:ts=4:sw=4:sts=4:et
-# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
-#
-# BitBake Toaster Implementation
-#
-# Copyright (C) 2013-2015 Intel Corporation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-"""Test cases for Toaster ORM."""
-
-from django.test import TestCase, TransactionTestCase
-from orm.models import LocalLayerSource, LayerIndexLayerSource, ImportedLayerSource, LayerSource
-from orm.models import Branch, LayerVersionDependency
-
-from orm.models import Project, Layer, Layer_Version, Branch, ProjectLayer
-from orm.models import Release, ReleaseLayerSourcePriority, BitbakeVersion
-
-from django.db import IntegrityError
-
-import os
-
-# set TTS_LAYER_INDEX to the base url to use a different instance of the layer index
-
-class LayerSourceVerifyInheritanceSaveLoad(TestCase):
- """
- Tests to verify inheritance for the LayerSource proxy-inheritance classes.
- """
- def test_object_creation(self):
- """Test LayerSource object creation."""
- for name, sourcetype in [("a1", LayerSource.TYPE_LOCAL),
- ("a2", LayerSource.TYPE_LAYERINDEX),
- ("a3", LayerSource.TYPE_IMPORTED)]:
- LayerSource.objects.create(name=name, sourcetype=sourcetype)
-
- objects = LayerSource.objects.all()
- self.assertTrue(isinstance(objects[0], LocalLayerSource))
- self.assertTrue(isinstance(objects[1], LayerIndexLayerSource))
- self.assertTrue(isinstance(objects[2], ImportedLayerSource))
-
- def test_duplicate_error(self):
- """Test creation of duplicate LayerSource objects."""
- stype = LayerSource.TYPE_LOCAL
- LayerSource.objects.create(name="a1", sourcetype=stype)
- with self.assertRaises(IntegrityError):
- LayerSource.objects.create(name="a1", sourcetype=stype)
-
-
-class LILSUpdateTestCase(TransactionTestCase):
- """Test Layer Source update."""
-
- def setUp(self):
- """Create release."""
- bbv = BitbakeVersion.objects.create(\
- name="master", giturl="git://git.openembedded.org/bitbake")
- Release.objects.create(name="default-release", bitbake_version=bbv,
- branch_name="master")
-
- def test_update(self):
- """Check if LayerSource.update can fetch branches."""
- url = os.getenv("TTS_LAYER_INDEX",
- default="http://layers.openembedded.org/")
-
- lsobj = LayerSource.objects.create(\
- name="b1", sourcetype=LayerSource.TYPE_LAYERINDEX,
- apiurl=url + "layerindex/api/")
- lsobj.update()
- self.assertTrue(lsobj.branch_set.all().count() > 0,
- "no branches fetched")
-
-class LayerVersionEquivalenceTestCase(TestCase):
- """Verify Layer_Version priority selection."""
-
- def setUp(self):
- """Create required objects."""
- # create layer source
- self.lsrc = LayerSource.objects.create(name="dummy-layersource",
- sourcetype=LayerSource.TYPE_LOCAL)
- # create release
- bbv = BitbakeVersion.objects.create(\
- name="master", giturl="git://git.openembedded.org/bitbake")
- self.release = Release.objects.create(name="default-release",
- bitbake_version=bbv,
- branch_name="master")
- # attach layer source to release
- ReleaseLayerSourcePriority.objects.create(\
- release=self.release, layer_source=self.lsrc, priority=1)
-
- # create a layer version for the layer on the specified branch
- self.layer = Layer.objects.create(name="meta-testlayer",
- layer_source=self.lsrc)
- self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
- self.lver = Layer_Version.objects.create(\
- layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
-
- # create project and project layer
- self.project = Project.objects.create_project(name="test-project",
- release=self.release)
- ProjectLayer.objects.create(project=self.project,
- layercommit=self.lver)
-
- # create spoof layer that should not appear in the search results
- layer = Layer.objects.create(name="meta-notvalid",
- layer_source=self.lsrc)
- self.lver2 = Layer_Version.objects.create(layer=layer,
- layer_source=self.lsrc,
- up_branch=self.branch)
-
- def test_single_layersource(self):
- """
- When we have a single layer version,
- get_equivalents_wpriority() should return a list with
- just this layer_version.
- """
- equivqs = self.lver.get_equivalents_wpriority(self.project)
- self.assertEqual(list(equivqs), [self.lver])
-
- def test_dual_layersource(self):
- """
- If we have two layers with the same name, from different layer sources,
- we expect both layers in, in increasing priority of the layer source.
- """
- lsrc2 = LayerSource.objects.create(\
- name="dummy-layersource2",
- sourcetype=LayerSource.TYPE_LOCAL,
- apiurl="test")
-
- # assign a lower priority for the second layer source
- self.release.releaselayersourcepriority_set.create(layer_source=lsrc2,
- priority=2)
-
- # create a new layer_version for a layer with the same name
- # coming from the second layer source
- layer2 = Layer.objects.create(name="meta-testlayer",
- layer_source=lsrc2)
- lver2 = Layer_Version.objects.create(layer=layer2, layer_source=lsrc2,
- up_branch=self.branch)
-
- # expect two layer versions, in the priority order
- equivqs = self.lver.get_equivalents_wpriority(self.project)
- self.assertEqual(list(equivqs), [lver2, self.lver])
-
- def test_compatible_layer_versions(self):
- """
- When we have a 2 layer versions, get_all_compatible_layerversions()
- should return a queryset with both.
- """
- compat_lv = self.project.get_all_compatible_layer_versions()
- self.assertEqual(list(compat_lv), [self.lver, self.lver2])
-
- def test_layerversion_get_alldeps(self):
- """Test Layer_Version.get_alldeps API."""
- lvers = {}
- for i in range(10):
- name = "layer%d" % i
- lvers[name] = Layer_Version.objects.create(layer=Layer.objects.create(name=name),
- project=self.project)
- if i:
- LayerVersionDependency.objects.create(layer_version=lvers["layer%d" % (i - 1)],
- depends_on=lvers[name])
- # Check dinamically added deps
- self.assertEqual(lvers['layer0'].get_alldeps(self.project.id),
- [lvers['layer%d' % n] for n in range(1, i+1)])
-
- # Check chain of deps created in previous loop
- for i in range(10):
- self.assertEqual(lvers['layer%d' % i].get_alldeps(self.project.id),
- [lvers['layer%d' % n] for n in range(i+1, 10)])
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/README b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/README
index 63e8169c1..6b09d20d8 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/README
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/README
@@ -4,15 +4,16 @@ These tests require Selenium to be installed in your Python environment.
The simplest way to install this is via pip:
- pip install selenium
+ pip install selenium==2.53.2
-Alternatively, if you used pip to install the libraries required by Toaster,
-selenium will already be installed.
+Note that if you use other versions of Selenium, some of the tests (such as
+tests.browser.test_js_unit_tests.TestJsUnitTests) may fail, as these rely on
+a Selenium test report with a version-specific format.
To run tests against Chrome:
* Download chromedriver for your host OS from
- https://code.google.com/p/chromedriver/downloads/list
+ https://sites.google.com/a/chromium.org/chromedriver/downloads
* On *nix systems, put chromedriver on PATH
* On Windows, put chromedriver.exe in the same directory as chrome.exe
@@ -23,15 +24,30 @@ To run tests against PhantomJS (headless):
* On *nix systems, put phantomjs on PATH
* Not tested on Windows
-Firefox should work without requiring additional software to be installed.
+To run tests against Firefox, you may need to install the Marionette driver,
+depending on how new your version of Firefox is. One clue that you need to do
+this is if you see an exception like:
-The test case will instantiate a Selenium driver set by the
+ selenium.common.exceptions.WebDriverException: Message: The browser
+ appears to have exited before we could connect. If you specified
+ a log_file in the FirefoxBinary constructor, check it for details.
+
+See https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
+for installation instructions. Ensure that the Marionette executable (renamed
+as wires on Linux or wires.exe on Windows) is on your PATH; and use "marionette"
+as the browser string passed via TOASTER_TESTS_BROWSER (see below).
+
+(Note: The Toaster tests have been checked against Firefox 47 with the
+Marionette driver.)
+
+The test cases will instantiate a Selenium driver set by the
TOASTER_TESTS_BROWSER environment variable, or Chrome if this is not specified.
Available drivers:
* chrome (default)
* firefox
+* marionette (for newer Firefoxes)
* ie
* phantomjs
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py
index 56dbe2b34..08711e455 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py
@@ -27,178 +27,8 @@
Helper methods for creating Toaster Selenium tests which run within
the context of Django unit tests.
"""
-
-import os
-import time
-
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
-from selenium import webdriver
-from selenium.webdriver.support.ui import WebDriverWait
-from selenium.common.exceptions import NoSuchElementException, \
- StaleElementReferenceException, TimeoutException
-
-def create_selenium_driver(browser='chrome'):
- # set default browser string based on env (if available)
- env_browser = os.environ.get('TOASTER_TESTS_BROWSER')
- if env_browser:
- browser = env_browser
-
- if browser == 'chrome':
- return webdriver.Chrome(
- service_args=["--verbose", "--log-path=selenium.log"]
- )
- elif browser == 'firefox':
- return webdriver.Firefox()
- elif browser == 'ie':
- return webdriver.Ie()
- elif browser == 'phantomjs':
- return webdriver.PhantomJS()
- else:
- msg = 'Selenium driver for browser %s is not available' % browser
- raise RuntimeError(msg)
-
-class Wait(WebDriverWait):
- """
- Subclass of WebDriverWait with predetermined timeout and poll
- frequency. Also deals with a wider variety of exceptions.
- """
- _TIMEOUT = 10
- _POLL_FREQUENCY = 0.5
-
- def __init__(self, driver):
- super(Wait, self).__init__(driver, self._TIMEOUT, self._POLL_FREQUENCY)
-
- def until(self, method, message=''):
- """
- Calls the method provided with the driver as an argument until the
- return value is not False.
- """
-
- end_time = time.time() + self._timeout
- while True:
- try:
- value = method(self._driver)
- if value:
- return value
- except NoSuchElementException:
- pass
- except StaleElementReferenceException:
- pass
-
- time.sleep(self._poll)
- if time.time() > end_time:
- break
-
- raise TimeoutException(message)
-
- def until_not(self, method, message=''):
- """
- Calls the method provided with the driver as an argument until the
- return value is False.
- """
-
- end_time = time.time() + self._timeout
- while True:
- try:
- value = method(self._driver)
- if not value:
- return value
- except NoSuchElementException:
- return True
- except StaleElementReferenceException:
- pass
-
- time.sleep(self._poll)
- if time.time() > end_time:
- break
-
- raise TimeoutException(message)
-
-class SeleniumTestCase(StaticLiveServerTestCase):
- """
- NB StaticLiveServerTestCase is used as the base test case so that
- static files are served correctly in a Selenium test run context; see
- https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/#specialized-test-case-to-support-live-testing
- """
-
- @classmethod
- def setUpClass(cls):
- """ Create a webdriver driver at the class level """
-
- super(SeleniumTestCase, cls).setUpClass()
-
- # instantiate the Selenium webdriver once for all the test methods
- # in this test case
- cls.driver = create_selenium_driver()
-
- @classmethod
- def tearDownClass(cls):
- """ Clean up webdriver driver """
-
- cls.driver.quit()
- super(SeleniumTestCase, cls).tearDownClass()
-
- def get(self, url):
- """
- Selenium requires absolute URLs, so convert Django URLs returned
- by resolve() or similar to absolute ones and get using the
- webdriver instance.
-
- url: a relative URL
- """
- abs_url = '%s%s' % (self.live_server_url, url)
- self.driver.get(abs_url)
-
- def find(self, selector):
- """ Find single element by CSS selector """
- return self.driver.find_element_by_css_selector(selector)
-
- def find_all(self, selector):
- """ Find all elements matching CSS selector """
- return self.driver.find_elements_by_css_selector(selector)
-
- def focused_element(self):
- """ Return the element which currently has focus on the page """
- return self.driver.switch_to.active_element
-
- def wait_until_present(self, selector):
- """ Wait until element matching CSS selector is on the page """
- is_present = lambda driver: self.find(selector)
- msg = 'An element matching "%s" should be on the page' % selector
- element = Wait(self.driver).until(is_present, msg)
- return element
-
- def wait_until_visible(self, selector):
- """ Wait until element matching CSS selector is visible on the page """
- is_visible = lambda driver: self.find(selector).is_displayed()
- msg = 'An element matching "%s" should be visible' % selector
- Wait(self.driver).until(is_visible, msg)
- return self.find(selector)
-
- def wait_until_focused(self, selector):
- """ Wait until element matching CSS selector has focus """
- is_focused = \
- lambda driver: self.find(selector) == self.focused_element()
- msg = 'An element matching "%s" should be focused' % selector
- Wait(self.driver).until(is_focused, msg)
- return self.find(selector)
-
- def enter_text(self, selector, value):
- """ Insert text into element matching selector """
- # note that keyup events don't occur until the element is clicked
- # (in the case of <input type="text"...>, for example), so simulate
- # user clicking the element before inserting text into it
- field = self.click(selector)
-
- field.send_keys(value)
- return field
-
- def click(self, selector):
- """ Click on element which matches CSS selector """
- element = self.wait_until_visible(selector)
- element.click()
- return element
+from tests.browser.selenium_helpers_base import SeleniumTestCaseBase
- def get_page_source(self):
- """ Get raw HTML for the current page """
- return self.driver.page_source
+class SeleniumTestCase(SeleniumTestCaseBase, StaticLiveServerTestCase):
+ pass
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
new file mode 100644
index 000000000..14e9c1564
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
@@ -0,0 +1,218 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# The Wait class and some of SeleniumDriverHelper and SeleniumTestCase are
+# modified from Patchwork, released under the same licence terms as Toaster:
+# https://github.com/dlespiau/patchwork/blob/master/patchwork/tests.browser.py
+
+"""
+Helper methods for creating Toaster Selenium tests which run within
+the context of Django unit tests.
+"""
+
+import os
+import time
+import unittest
+
+from django.contrib.staticfiles.testing import StaticLiveServerTestCase
+from selenium import webdriver
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
+from selenium.common.exceptions import NoSuchElementException, \
+ StaleElementReferenceException, TimeoutException
+
+def create_selenium_driver(browser='chrome'):
+ # set default browser string based on env (if available)
+ env_browser = os.environ.get('TOASTER_TESTS_BROWSER')
+ if env_browser:
+ browser = env_browser
+
+ if browser == 'chrome':
+ return webdriver.Chrome(
+ service_args=["--verbose", "--log-path=selenium.log"]
+ )
+ elif browser == 'firefox':
+ return webdriver.Firefox()
+ elif browser == 'marionette':
+ capabilities = DesiredCapabilities.FIREFOX
+ capabilities['marionette'] = True
+ return webdriver.Firefox(capabilities=capabilities)
+ elif browser == 'ie':
+ return webdriver.Ie()
+ elif browser == 'phantomjs':
+ return webdriver.PhantomJS()
+ else:
+ msg = 'Selenium driver for browser %s is not available' % browser
+ raise RuntimeError(msg)
+
+class Wait(WebDriverWait):
+ """
+ Subclass of WebDriverWait with predetermined timeout and poll
+ frequency. Also deals with a wider variety of exceptions.
+ """
+ _TIMEOUT = 10
+ _POLL_FREQUENCY = 0.5
+
+ def __init__(self, driver):
+ super(Wait, self).__init__(driver, self._TIMEOUT, self._POLL_FREQUENCY)
+
+ def until(self, method, message=''):
+ """
+ Calls the method provided with the driver as an argument until the
+ return value is not False.
+ """
+
+ end_time = time.time() + self._timeout
+ while True:
+ try:
+ value = method(self._driver)
+ if value:
+ return value
+ except NoSuchElementException:
+ pass
+ except StaleElementReferenceException:
+ pass
+
+ time.sleep(self._poll)
+ if time.time() > end_time:
+ break
+
+ raise TimeoutException(message)
+
+ def until_not(self, method, message=''):
+ """
+ Calls the method provided with the driver as an argument until the
+ return value is False.
+ """
+
+ end_time = time.time() + self._timeout
+ while True:
+ try:
+ value = method(self._driver)
+ if not value:
+ return value
+ except NoSuchElementException:
+ return True
+ except StaleElementReferenceException:
+ pass
+
+ time.sleep(self._poll)
+ if time.time() > end_time:
+ break
+
+ raise TimeoutException(message)
+
+class SeleniumTestCaseBase(unittest.TestCase):
+ """
+ NB StaticLiveServerTestCase is used as the base test case so that
+ static files are served correctly in a Selenium test run context; see
+ https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/#specialized-test-case-to-support-live-testing
+ """
+
+ @classmethod
+ def setUpClass(cls):
+ """ Create a webdriver driver at the class level """
+
+ super(SeleniumTestCaseBase, cls).setUpClass()
+
+ # instantiate the Selenium webdriver once for all the test methods
+ # in this test case
+ cls.driver = create_selenium_driver()
+ cls.driver.maximize_window()
+
+ @classmethod
+ def tearDownClass(cls):
+ """ Clean up webdriver driver """
+
+ cls.driver.quit()
+ super(SeleniumTestCaseBase, cls).tearDownClass()
+
+ def get(self, url):
+ """
+ Selenium requires absolute URLs, so convert Django URLs returned
+ by resolve() or similar to absolute ones and get using the
+ webdriver instance.
+
+ url: a relative URL
+ """
+ abs_url = '%s%s' % (self.live_server_url, url)
+ self.driver.get(abs_url)
+
+ def find(self, selector):
+ """ Find single element by CSS selector """
+ return self.driver.find_element_by_css_selector(selector)
+
+ def find_all(self, selector):
+ """ Find all elements matching CSS selector """
+ return self.driver.find_elements_by_css_selector(selector)
+
+ def element_exists(self, selector):
+ """
+ Return True if one element matching selector exists,
+ False otherwise
+ """
+ return len(self.find_all(selector)) == 1
+
+ def focused_element(self):
+ """ Return the element which currently has focus on the page """
+ return self.driver.switch_to.active_element
+
+ def wait_until_present(self, selector):
+ """ Wait until element matching CSS selector is on the page """
+ is_present = lambda driver: self.find(selector)
+ msg = 'An element matching "%s" should be on the page' % selector
+ element = Wait(self.driver).until(is_present, msg)
+ return element
+
+ def wait_until_visible(self, selector):
+ """ Wait until element matching CSS selector is visible on the page """
+ is_visible = lambda driver: self.find(selector).is_displayed()
+ msg = 'An element matching "%s" should be visible' % selector
+ Wait(self.driver).until(is_visible, msg)
+ return self.find(selector)
+
+ def wait_until_focused(self, selector):
+ """ Wait until element matching CSS selector has focus """
+ is_focused = \
+ lambda driver: self.find(selector) == self.focused_element()
+ msg = 'An element matching "%s" should be focused' % selector
+ Wait(self.driver).until(is_focused, msg)
+ return self.find(selector)
+
+ def enter_text(self, selector, value):
+ """ Insert text into element matching selector """
+ # note that keyup events don't occur until the element is clicked
+ # (in the case of <input type="text"...>, for example), so simulate
+ # user clicking the element before inserting text into it
+ field = self.click(selector)
+
+ field.send_keys(value)
+ return field
+
+ def click(self, selector):
+ """ Click on element which matches CSS selector """
+ element = self.wait_until_visible(selector)
+ element.click()
+ return element
+
+ def get_page_source(self):
+ """ Get raw HTML for the current page """
+ return self.driver.page_source
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
index e4223f482..b86f29bdd 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
@@ -27,6 +27,7 @@ from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import BitbakeVersion, Release, Project, Build, Target
+
class TestAllBuildsPage(SeleniumTestCase):
""" Tests for all builds page /builds/ """
@@ -57,6 +58,13 @@ class TestAllBuildsPage(SeleniumTestCase):
'outcome': Build.SUCCEEDED
}
+ self.project1_build_failure = {
+ 'project': self.project1,
+ 'started_on': now,
+ 'completed_on': now,
+ 'outcome': Build.FAILED
+ }
+
self.default_project_build_success = {
'project': self.default_project,
'started_on': now,
@@ -64,6 +72,46 @@ class TestAllBuildsPage(SeleniumTestCase):
'outcome': Build.SUCCEEDED
}
+ def _get_build_time_element(self, build):
+ """
+ Return the HTML element containing the build time for a build
+ in the recent builds area
+ """
+ selector = 'div[data-latest-build-result="%s"] ' \
+ '[data-role="data-recent-build-buildtime-field"]' % build.id
+
+ # because this loads via Ajax, wait for it to be visible
+ self.wait_until_present(selector)
+
+ build_time_spans = self.find_all(selector)
+
+ self.assertEqual(len(build_time_spans), 1)
+
+ return build_time_spans[0]
+
+ def _get_row_for_build(self, build):
+ """ Get the table row for the build from the all builds table """
+ self.wait_until_present('#allbuildstable')
+
+ rows = self.find_all('#allbuildstable tr')
+
+ # look for the row with a download link on the recipe which matches the
+ # build ID
+ url = reverse('builddashboard', args=(build.id,))
+ selector = 'td.target a[href="%s"]' % url
+
+ found_row = None
+ for row in rows:
+
+ outcome_links = row.find_elements_by_css_selector(selector)
+ if len(outcome_links) == 1:
+ found_row = row
+ break
+
+ self.assertNotEqual(found_row, None)
+
+ return found_row
+
def test_show_tasks_with_suffix(self):
""" Task should be shown as suffix on build name """
build = Build.objects.create(**self.project1_build_success)
@@ -95,17 +143,17 @@ class TestAllBuildsPage(SeleniumTestCase):
url = reverse('all-builds')
self.get(url)
- # shouldn't see a run again button for command-line builds
- selector = 'div[data-latest-build-result="%s"] button' % default_build.id
+ # shouldn't see a rebuild button for command-line builds
+ selector = 'div[data-latest-build-result="%s"] .rebuild-btn' % default_build.id
run_again_button = self.find_all(selector)
self.assertEqual(len(run_again_button), 0,
- 'should not see a run again button for cli builds')
+ 'should not see a rebuild button for cli builds')
- # should see a run again button for non-command-line builds
- selector = 'div[data-latest-build-result="%s"] button' % build1.id
+ # should see a rebuild button for non-command-line builds
+ selector = 'div[data-latest-build-result="%s"] .rebuild-btn' % build1.id
run_again_button = self.find_all(selector)
self.assertEqual(len(run_again_button), 1,
- 'should see a run again button for non-cli builds')
+ 'should see a rebuild button for non-cli builds')
def test_tooltips_on_project_name(self):
"""
@@ -124,7 +172,7 @@ class TestAllBuildsPage(SeleniumTestCase):
# get the project name cells from the table
cells = self.find_all('#allbuildstable td[class="project"]')
- selector = 'i.get-help'
+ selector = 'span.get-help'
for cell in cells:
content = cell.get_attribute('innerHTML')
@@ -141,3 +189,45 @@ class TestAllBuildsPage(SeleniumTestCase):
else:
msg = 'found unexpected project name cell in all builds table'
self.fail(msg)
+
+ def test_builds_time_links(self):
+ """
+ Successful builds should have links on the time column and in the
+ recent builds area; failed builds should not have links on the time column,
+ or in the recent builds area
+ """
+ build1 = Build.objects.create(**self.project1_build_success)
+ build2 = Build.objects.create(**self.project1_build_failure)
+
+ # add some targets to these builds so they have recipe links
+ # (and so we can find the row in the ToasterTable corresponding to
+ # a particular build)
+ Target.objects.create(build=build1, target='foo')
+ Target.objects.create(build=build2, target='bar')
+
+ url = reverse('all-builds')
+ self.get(url)
+
+ # test recent builds area for successful build
+ element = self._get_build_time_element(build1)
+ links = element.find_elements_by_css_selector('a')
+ msg = 'should be a link on the build time for a successful recent build'
+ self.assertEquals(len(links), 1, msg)
+
+ # test recent builds area for failed build
+ element = self._get_build_time_element(build2)
+ links = element.find_elements_by_css_selector('a')
+ msg = 'should not be a link on the build time for a failed recent build'
+ self.assertEquals(len(links), 0, msg)
+
+ # test the time column for successful build
+ build1_row = self._get_row_for_build(build1)
+ links = build1_row.find_elements_by_css_selector('td.time a')
+ msg = 'should be a link on the build time for a successful build'
+ self.assertEquals(len(links), 1, msg)
+
+ # test the time column for failed build
+ build2_row = self._get_row_for_build(build2)
+ links = build2_row.find_elements_by_css_selector('td.time a')
+ msg = 'should not be a link on the build time for a failed build'
+ self.assertEquals(len(links), 0, msg)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
index ed8e620db..44da64075 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
@@ -93,7 +93,7 @@ class TestAllProjectsPage(SeleniumTestCase):
"""
url = reverse('all-projects')
self.get(url)
- self.wait_until_visible('#no-results-projectstable')
+ self.wait_until_visible('#empty-state-projectstable')
rows = self.find_all('#projectstable tbody tr')
self.assertEqual(len(rows), 0, 'should be no projects displayed')
@@ -122,12 +122,13 @@ class TestAllProjectsPage(SeleniumTestCase):
self._add_non_default_project()
self.get(reverse('all-projects'))
+ self.wait_until_visible("#projectstable tr")
# find the row for the default project
default_project_row = self._get_row_for_project(self.default_project.name)
# check the release text for the default project
- selector = 'span[data-project-field="release"] span.muted'
+ selector = 'span[data-project-field="release"] span.text-muted'
element = default_project_row.find_element_by_css_selector(selector)
text = element.text.strip()
self.assertEqual(text, 'Not applicable',
@@ -137,7 +138,7 @@ class TestAllProjectsPage(SeleniumTestCase):
other_project_row = self._get_row_for_project(self.project.name)
# check the link in the release cell for the other project
- selector = 'span[data-project-field="release"] a'
+ selector = 'span[data-project-field="release"]'
element = other_project_row.find_element_by_css_selector(selector)
text = element.text.strip()
self.assertEqual(text, self.release.name,
@@ -156,11 +157,13 @@ class TestAllProjectsPage(SeleniumTestCase):
self.get(reverse('all-projects'))
+ self.wait_until_visible("#projectstable tr")
+
# find the row for the default project
default_project_row = self._get_row_for_project(self.default_project.name)
# check the machine cell for the default project
- selector = 'span[data-project-field="machine"] span.muted'
+ selector = 'span[data-project-field="machine"] span.text-muted'
element = default_project_row.find_element_by_css_selector(selector)
text = element.text.strip()
self.assertEqual(text, 'Not applicable',
@@ -170,7 +173,7 @@ class TestAllProjectsPage(SeleniumTestCase):
other_project_row = self._get_row_for_project(self.project.name)
# check the link in the machine cell for the other project
- selector = 'span[data-project-field="machine"] a'
+ selector = 'span[data-project-field="machine"]'
element = other_project_row.find_element_by_css_selector(selector)
text = element.text.strip()
self.assertEqual(text, self.MACHINE_NAME,
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
index 5e0874947..f8ccb5452 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
@@ -22,10 +22,10 @@
from django.core.urlresolvers import reverse
from django.utils import timezone
-from selenium_helpers import SeleniumTestCase
+from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import Project, Release, BitbakeVersion, Build, LogMessage
-from orm.models import Layer, Layer_Version, Recipe, CustomImageRecipe
+from orm.models import Layer, Layer_Version, Recipe, CustomImageRecipe, Variable
class TestBuildDashboardPage(SeleniumTestCase):
""" Tests for the build dashboard /build/X """
@@ -42,11 +42,27 @@ class TestBuildDashboardPage(SeleniumTestCase):
self.build1 = Build.objects.create(project=project,
started_on=now,
- completed_on=now)
+ completed_on=now,
+ outcome=Build.SUCCEEDED)
self.build2 = Build.objects.create(project=project,
started_on=now,
- completed_on=now)
+ completed_on=now,
+ outcome=Build.SUCCEEDED)
+
+ self.build3 = Build.objects.create(project=project,
+ started_on=now,
+ completed_on=now,
+ outcome=Build.FAILED)
+
+ # add Variable objects to the successful builds, as this is the criterion
+ # used to determine whether the left-hand panel should be displayed
+ Variable.objects.create(build=self.build1,
+ variable_name='Foo',
+ variable_value='Bar')
+ Variable.objects.create(build=self.build2,
+ variable_name='Foo',
+ variable_value='Bar')
# exception
msg1 = 'an exception was thrown'
@@ -64,6 +80,22 @@ class TestBuildDashboardPage(SeleniumTestCase):
message=msg2
)
+ # error on the failed build
+ msg3 = 'an error occurred'
+ self.error_message = LogMessage.objects.create(
+ build=self.build3,
+ level=LogMessage.ERROR,
+ message=msg3
+ )
+
+ # warning on the failed build
+ msg4 = 'DANGER WILL ROBINSON'
+ self.warning_message = LogMessage.objects.create(
+ build=self.build3,
+ level=LogMessage.WARNING,
+ message=msg4
+ )
+
# recipes related to the build, for testing the edit custom image/new
# custom image buttons
layer = Layer.objects.create(name='alayer')
@@ -71,6 +103,11 @@ class TestBuildDashboardPage(SeleniumTestCase):
layer=layer, build=self.build1
)
+ # non-image recipes related to a build, for testing the new custom
+ # image button
+ layer_version2 = Layer_Version.objects.create(layer=layer,
+ build=self.build3)
+
# image recipes
self.image_recipe1 = Recipe.objects.create(
name='recipeA',
@@ -140,38 +177,47 @@ class TestBuildDashboardPage(SeleniumTestCase):
dashboard for the Build object build
"""
self._get_build_dashboard(build)
- return self.find_all('#errors div.alert-error')
+ return self.find_all('#errors div.alert-danger')
- def _check_for_log_message(self, build, log_message):
- """
- Check whether the LogMessage instance <log_message> is
- represented as an HTML error in the dashboard page for the Build object
- build
+ def _check_for_log_message(self, message_elements, log_message):
"""
- errors = self._get_build_dashboard_errors(build)
- self.assertEqual(len(errors), 2)
+ Check that the LogMessage <log_message> has a representation in
+ the HTML elements <message_elements>.
+
+ message_elements: WebElements representing the log messages shown
+ in the build dashboard; each should have a <pre> element inside
+ it with a data-log-message-id attribute
+ log_message: orm.models.LogMessage instance
+ """
expected_text = log_message.message
- expected_id = str(log_message.id)
+ expected_pk = str(log_message.pk)
found = False
- for error in errors:
- error_text = error.find_element_by_tag_name('pre').text
- text_matches = (error_text == expected_text)
+ for element in message_elements:
+ log_message_text = element.find_element_by_tag_name('pre').text.strip()
+ text_matches = (log_message_text == expected_text)
- error_id = error.get_attribute('data-error')
- id_matches = (error_id == expected_id)
+ log_message_pk = element.get_attribute('data-log-message-id')
+ id_matches = (log_message_pk == expected_pk)
if text_matches and id_matches:
found = True
break
- template_vars = (expected_text, error_text,
- expected_id, error_id)
- assertion_error_msg = 'exception not found as error: ' \
- 'expected text "%s" and got "%s"; ' \
- 'expected ID %s and got %s' % template_vars
- self.assertTrue(found, assertion_error_msg)
+ template_vars = (expected_text, expected_pk)
+ assertion_failed_msg = 'message not found: ' \
+ 'expected text "%s" and ID %s' % template_vars
+ self.assertTrue(found, assertion_failed_msg)
+
+ def _check_for_error_message(self, build, log_message):
+ """
+ Check whether the LogMessage instance <log_message> is
+ represented as an HTML error in the dashboard page for the Build object
+ build
+ """
+ errors = self._get_build_dashboard_errors(build)
+ self._check_for_log_message(errors, log_message)
def _check_labels_in_modal(self, modal, expected):
"""
@@ -179,37 +225,29 @@ class TestBuildDashboardPage(SeleniumTestCase):
the WebElement modal match the list of text values in expected
"""
# labels containing the radio buttons we're testing for
- labels = modal.find_elements_by_tag_name('label')
-
- # because the label content has the structure
- # label text
- # <input...>
- # we have to regex on its innerHTML, as we can't just retrieve the
- # "label text" on its own via the Selenium API
- labels_text = sorted(map(
- lambda label: label.get_attribute('innerHTML'), labels
- ))
-
- expected = sorted(expected)
+ labels = modal.find_elements_by_css_selector(".radio")
+ labels_text = [lab.text for lab in labels]
self.assertEqual(len(labels_text), len(expected))
- for idx, label_text in enumerate(labels_text):
- self.assertRegexpMatches(label_text, expected[idx])
+ for expected_text in expected:
+ self.assertTrue(expected_text in labels_text,
+ "Could not find %s in %s" % (expected_text,
+ labels_text))
def test_exceptions_show_as_errors(self):
"""
LogMessages with level EXCEPTION should display in the errors
section of the page
"""
- self._check_for_log_message(self.build1, self.exception_message)
+ self._check_for_error_message(self.build1, self.exception_message)
def test_criticals_show_as_errors(self):
"""
LogMessages with level CRITICAL should display in the errors
section of the page
"""
- self._check_for_log_message(self.build1, self.critical_message)
+ self._check_for_error_message(self.build1, self.critical_message)
def test_edit_custom_image_button(self):
"""
@@ -217,7 +255,13 @@ class TestBuildDashboardPage(SeleniumTestCase):
the user choose one of them to edit
"""
self._get_build_dashboard(self.build1)
+
+ # click the "edit custom image" button, which populates the modal
+ selector = '[data-role="edit-custom-image-trigger"]'
+ self.click(selector)
+
modal = self.driver.find_element_by_id('edit-custom-image-modal')
+ self.wait_until_visible("#edit-custom-image-modal")
# recipes we expect to see in the edit custom image modal
expected_recipes = [
@@ -235,10 +279,11 @@ class TestBuildDashboardPage(SeleniumTestCase):
self._get_build_dashboard(self.build1)
# click the "new custom image" button, which populates the modal
- selector = '[data-role="new-custom-image-trigger"] button'
+ selector = '[data-role="new-custom-image-trigger"]'
self.click(selector)
modal = self.driver.find_element_by_id('new-custom-image-modal')
+ self.wait_until_visible("#new-custom-image-modal")
# recipes we expect to see in the new custom image modal
expected_recipes = [
@@ -249,3 +294,54 @@ class TestBuildDashboardPage(SeleniumTestCase):
]
self._check_labels_in_modal(modal, expected_recipes)
+
+ def test_new_custom_image_button_no_image(self):
+ """
+ Check that a build which builds non-image recipes doesn't show
+ the new custom image button on the dashboard.
+ """
+ self._get_build_dashboard(self.build3)
+ selector = '[data-role="new-custom-image-trigger"]'
+ self.assertFalse(self.element_exists(selector),
+ 'new custom image button should not show for builds which ' \
+ 'don\'t have any image recipes')
+
+ def test_left_panel(self):
+ """"
+ Builds which succeed should have a left panel and a build summary
+ """
+ self._get_build_dashboard(self.build1)
+
+ left_panel = self.find_all('#nav')
+ self.assertEqual(len(left_panel), 1)
+
+ build_summary = self.find_all('[data-role="build-summary-heading"]')
+ self.assertEqual(len(build_summary), 1)
+
+ def test_failed_no_left_panel(self):
+ """
+ Builds which fail should have no left panel and no build summary
+ """
+ self._get_build_dashboard(self.build3)
+
+ left_panel = self.find_all('#nav')
+ self.assertEqual(len(left_panel), 0)
+
+ build_summary = self.find_all('[data-role="build-summary-heading"]')
+ self.assertEqual(len(build_summary), 0)
+
+ def test_failed_shows_errors_and_warnings(self):
+ """
+ Failed builds should still show error and warning messages
+ """
+ self._get_build_dashboard(self.build3)
+
+ errors = self.find_all('#errors div.alert-danger')
+ self._check_for_log_message(errors, self.error_message)
+
+ # expand the warnings area
+ self.click('#warning-toggle')
+ self.wait_until_visible('#warnings div.alert-warning')
+
+ warnings = self.find_all('#warnings div.alert-warning')
+ self._check_for_log_message(warnings, self.warning_message)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py
new file mode 100644
index 000000000..1c627ad49
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_artifacts.py
@@ -0,0 +1,222 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+
+from tests.browser.selenium_helpers import SeleniumTestCase
+
+from orm.models import Project, Release, BitbakeVersion, Build, Target, Package
+from orm.models import Target_Image_File, TargetSDKFile, TargetKernelFile
+from orm.models import Target_Installed_Package, Variable
+
+class TestBuildDashboardPageArtifacts(SeleniumTestCase):
+ """ Tests for artifacts on the build dashboard /build/X """
+
+ def setUp(self):
+ bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
+ branch='master', dirpath="")
+ release = Release.objects.create(name='release1',
+ bitbake_version=bbv)
+ self.project = Project.objects.create_project(name='test project',
+ release=release)
+
+ def _get_build_dashboard(self, build):
+ """
+ Navigate to the build dashboard for build
+ """
+ url = reverse('builddashboard', args=(build.id,))
+ self.get(url)
+
+ def _has_build_artifacts_heading(self):
+ """
+ Check whether the "Build artifacts" heading is visible (True if it
+ is, False otherwise).
+ """
+ return self.element_exists('[data-heading="build-artifacts"]')
+
+ def _has_images_menu_option(self):
+ """
+ Try to get the "Images" list element from the left-hand menu in the
+ build dashboard, and return True if it is present, False otherwise.
+ """
+ return self.element_exists('li.nav-header[data-menu-heading="images"]')
+
+ def test_no_artifacts(self):
+ """
+ If a build produced no artifacts, the artifacts heading and images
+ menu option shouldn't show.
+ """
+ now = timezone.now()
+ build = Build.objects.create(project=self.project,
+ started_on=now, completed_on=now, outcome=Build.SUCCEEDED)
+
+ Target.objects.create(is_image=False, build=build, task='',
+ target='mpfr-native')
+
+ self._get_build_dashboard(build)
+
+ # check build artifacts heading
+ msg = 'Build artifacts heading should not be displayed for non-image' \
+ 'builds'
+ self.assertFalse(self._has_build_artifacts_heading(), msg)
+
+ # check "Images" option in left-hand menu (should not be there)
+ msg = 'Images option should not be shown in left-hand menu'
+ self.assertFalse(self._has_images_menu_option(), msg)
+
+ def test_sdk_artifacts(self):
+ """
+ If a build produced SDK artifacts, they should be shown, but the section
+ for image files and the images menu option should be hidden.
+
+ The packages count and size should also be hidden.
+ """
+ now = timezone.now()
+ build = Build.objects.create(project=self.project,
+ started_on=now, completed_on=timezone.now(),
+ outcome=Build.SUCCEEDED)
+
+ target = Target.objects.create(is_image=True, build=build,
+ task='populate_sdk', target='core-image-minimal')
+
+ sdk_file1 = TargetSDKFile.objects.create(target=target,
+ file_size=100000,
+ file_name='/home/foo/core-image-minimal.toolchain.sh')
+
+ sdk_file2 = TargetSDKFile.objects.create(target=target,
+ file_size=120000,
+ file_name='/home/foo/x86_64.toolchain.sh')
+
+ self._get_build_dashboard(build)
+
+ # check build artifacts heading
+ msg = 'Build artifacts heading should be displayed for SDK ' \
+ 'builds which generate artifacts'
+ self.assertTrue(self._has_build_artifacts_heading(), msg)
+
+ # check "Images" option in left-hand menu (should not be there)
+ msg = 'Images option should not be shown in left-hand menu for ' \
+ 'builds which didn\'t generate an image file'
+ self.assertFalse(self._has_images_menu_option(), msg)
+
+ # check links to SDK artifacts
+ sdk_artifact_links = self.find_all('[data-links="sdk-artifacts"] li')
+ self.assertEqual(len(sdk_artifact_links), 2,
+ 'should be links to 2 SDK artifacts')
+
+ # package count and size should not be visible, no link on
+ # target name
+ selector = '[data-value="target-package-count"]'
+ self.assertFalse(self.element_exists(selector),
+ 'package count should not be shown for non-image builds')
+
+ selector = '[data-value="target-package-size"]'
+ self.assertFalse(self.element_exists(selector),
+ 'package size should not be shown for non-image builds')
+
+ selector = '[data-link="target-packages"]'
+ self.assertFalse(self.element_exists(selector),
+ 'link to target packages should not be on target heading')
+
+ def test_image_artifacts(self):
+ """
+ If a build produced image files, kernel artifacts, and manifests,
+ they should all be shown, as well as the image link in the left-hand
+ menu.
+
+ The packages count and size should be shown, with a link to the
+ package display page.
+ """
+ now = timezone.now()
+ build = Build.objects.create(project=self.project,
+ started_on=now, completed_on=timezone.now(),
+ outcome=Build.SUCCEEDED)
+
+ # add a variable to the build so that it counts as "started"
+ Variable.objects.create(build=build,
+ variable_name='Christopher',
+ variable_value='Lee')
+
+ target = Target.objects.create(is_image=True, build=build,
+ task='', target='core-image-minimal',
+ license_manifest_path='/home/foo/license.manifest',
+ package_manifest_path='/home/foo/package.manifest')
+
+ image_file = Target_Image_File.objects.create(target=target,
+ file_name='/home/foo/core-image-minimal.ext4', file_size=9000)
+
+ kernel_file1 = TargetKernelFile.objects.create(target=target,
+ file_name='/home/foo/bzImage', file_size=2000)
+
+ kernel_file2 = TargetKernelFile.objects.create(target=target,
+ file_name='/home/foo/bzImage', file_size=2000)
+
+ package = Package.objects.create(build=build, name='foo', size=1024,
+ installed_name='foo1')
+ installed_package = Target_Installed_Package.objects.create(
+ target=target, package=package)
+
+ self._get_build_dashboard(build)
+
+ # check build artifacts heading
+ msg = 'Build artifacts heading should be displayed for image ' \
+ 'builds'
+ self.assertTrue(self._has_build_artifacts_heading(), msg)
+
+ # check "Images" option in left-hand menu (should be there)
+ msg = 'Images option should be shown in left-hand menu for image builds'
+ self.assertTrue(self._has_images_menu_option(), msg)
+
+ # check link to image file
+ selector = '[data-links="image-artifacts"] li'
+ self.assertTrue(self.element_exists(selector),
+ 'should be a link to the image file (selector %s)' % selector)
+
+ # check links to kernel artifacts
+ kernel_artifact_links = \
+ self.find_all('[data-links="kernel-artifacts"] li')
+ self.assertEqual(len(kernel_artifact_links), 2,
+ 'should be links to 2 kernel artifacts')
+
+ # check manifest links
+ selector = 'a[data-link="license-manifest"]'
+ self.assertTrue(self.element_exists(selector),
+ 'should be a link to the license manifest (selector %s)' % selector)
+
+ selector = 'a[data-link="package-manifest"]'
+ self.assertTrue(self.element_exists(selector),
+ 'should be a link to the package manifest (selector %s)' % selector)
+
+ # check package count and size, link on target name
+ selector = '[data-value="target-package-count"]'
+ element = self.find(selector)
+ self.assertEquals(element.text, '1',
+ 'package count should be shown for image builds')
+
+ selector = '[data-value="target-package-size"]'
+ element = self.find(selector)
+ self.assertEquals(element.text, '1.0 KB',
+ 'package size should be shown for image builds')
+
+ selector = '[data-link="target-packages"]'
+ self.assertTrue(self.element_exists(selector),
+ 'link to target packages should be on target heading')
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py
new file mode 100644
index 000000000..ed18324e5
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_recipes.py
@@ -0,0 +1,66 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+from orm.models import Project, Build, Recipe, Task, Layer, Layer_Version
+from orm.models import Target
+
+class TestBuilddashboardPageRecipes(SeleniumTestCase):
+ """ Test build dashboard recipes sub-page """
+
+ def setUp(self):
+ project = Project.objects.get_or_create_default_project()
+
+ now = timezone.now()
+
+ self.build = Build.objects.create(project=project,
+ started_on=now,
+ completed_on=now)
+
+ layer = Layer.objects.create()
+
+ layer_version = Layer_Version.objects.create(layer=layer,
+ build=self.build)
+
+ recipe = Recipe.objects.create(layer_version=layer_version)
+
+ task = Task.objects.create(build=self.build, recipe=recipe, order=1)
+
+ Target.objects.create(build=self.build, task=task, target='do_build')
+
+ def test_build_recipes_columns(self):
+ """
+ Check that non-hideable columns of the table on the recipes sub-page
+ are disabled on the edit columns dropdown.
+ """
+ url = reverse('recipes', args=(self.build.id,))
+ self.get(url)
+
+ self.wait_until_visible('#edit-columns-button')
+
+ # check that options for the non-hideable columns are disabled
+ non_hideable = ['name', 'version']
+
+ for column in non_hideable:
+ selector = 'input#checkbox-%s[disabled="disabled"]' % column
+ self.wait_until_present(selector)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
new file mode 100644
index 000000000..da50f1601
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page_tasks.py
@@ -0,0 +1,65 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+from orm.models import Project, Build, Recipe, Task, Layer, Layer_Version
+from orm.models import Target
+
+class TestBuilddashboardPageTasks(SeleniumTestCase):
+ """ Test build dashboard tasks sub-page """
+
+ def setUp(self):
+ project = Project.objects.get_or_create_default_project()
+
+ now = timezone.now()
+
+ self.build = Build.objects.create(project=project,
+ started_on=now,
+ completed_on=now)
+
+ layer = Layer.objects.create()
+
+ layer_version = Layer_Version.objects.create(layer=layer)
+
+ recipe = Recipe.objects.create(layer_version=layer_version)
+
+ task = Task.objects.create(build=self.build, recipe=recipe, order=1)
+
+ Target.objects.create(build=self.build, task=task, target='do_build')
+
+ def test_build_tasks_columns(self):
+ """
+ Check that non-hideable columns of the table on the tasks sub-page
+ are disabled on the edit columns dropdown.
+ """
+ url = reverse('tasks', args=(self.build.id,))
+ self.get(url)
+
+ self.wait_until_visible('#edit-columns-button')
+
+ # check that options for the non-hideable columns are disabled
+ non_hideable = ['order', 'task_name', 'recipe__name']
+
+ for column in non_hideable:
+ selector = 'input#checkbox-%s[disabled="disabled"]' % column
+ self.wait_until_present(selector)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
index e63da8e7a..3c0b96252 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
@@ -38,11 +38,11 @@ class TestJsUnitTests(SeleniumTestCase):
def test_that_js_unit_tests_pass(self):
url = reverse('js-unit-tests')
self.get(url)
- self.wait_until_present('#tests-failed')
+ self.wait_until_present('#qunit-testresult .failed')
- failed = self.find("#tests-failed").text
- passed = self.find("#tests-passed").text
- total = self.find("#tests-total").text
+ failed = self.find("#qunit-testresult .failed").text
+ passed = self.find("#qunit-testresult .passed").text
+ total = self.find("#qunit-testresult .total").text
logger.info("Js unit tests completed %s out of %s passed, %s failed",
passed,
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
new file mode 100644
index 000000000..6392d1efb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
@@ -0,0 +1,215 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from tests.browser.selenium_helpers import SeleniumTestCase
+
+from orm.models import Layer, Layer_Version, Project, LayerSource, Release
+from orm.models import BitbakeVersion
+
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.common.by import By
+
+
+class TestLayerDetailsPage(SeleniumTestCase):
+ """ Test layerdetails page works correctly """
+
+ def __init__(self, *args, **kwargs):
+ super(TestLayerDetailsPage, self).__init__(*args, **kwargs)
+
+ self.initial_values = None
+ self.url = None
+ self.imported_layer_version = None
+
+ def setUp(self):
+ release = Release.objects.create(
+ name='baz',
+ bitbake_version=BitbakeVersion.objects.create(name='v1')
+ )
+
+ # project to add new custom images to
+ self.project = Project.objects.create(name='foo', release=release)
+
+ name = "meta-imported"
+ vcs_url = "git://example.com/meta-imported"
+ subdir = "/layer"
+ gitrev = "d33d"
+ summary = "A imported layer"
+ description = "This was imported"
+
+ imported_layer = Layer.objects.create(name=name,
+ vcs_url=vcs_url,
+ summary=summary,
+ description=description)
+
+ self.imported_layer_version = Layer_Version.objects.create(
+ layer=imported_layer,
+ layer_source=LayerSource.TYPE_IMPORTED,
+ branch=gitrev,
+ commit=gitrev,
+ dirpath=subdir,
+ project=self.project)
+
+ self.initial_values = [name, vcs_url, subdir, gitrev, summary,
+ description]
+ self.url = reverse('layerdetails',
+ args=(self.project.pk,
+ self.imported_layer_version.pk))
+
+ def test_edit_layerdetails(self):
+ """ Edit all the editable fields for the layer refresh the page and
+ check that the new values exist"""
+
+ self.get(self.url)
+
+ self.click("#add-remove-layer-btn")
+ self.click("#edit-layer-source")
+ self.click("#repo")
+
+ self.wait_until_visible("#layer-git-repo-url")
+
+ # Open every edit box
+ for btn in self.find_all("dd .glyphicon-edit"):
+ btn.click()
+
+ # Wait for the inputs to become visible
+ self.wait_until_visible("#layer-git input[type=text]")
+ self.wait_until_visible("dd textarea")
+
+ # Edit each value
+ for inputs in self.find_all("#layer-git input[type=text]") + \
+ self.find_all("dd textarea"):
+ # ignore the tt inputs (twitter typeahead input)
+ if "tt-" in inputs.get_attribute("class"):
+ continue
+
+ value = inputs.get_attribute("value")
+
+ self.assertTrue(value in self.initial_values,
+ "Expecting any of \"%s\"but got \"%s\"" %
+ (self.initial_values, value))
+
+ inputs.send_keys("-edited")
+
+ # Save the new values
+ for save_btn in self.find_all(".change-btn"):
+ save_btn.click()
+
+ self.click("#save-changes-for-switch")
+ self.wait_until_visible("#edit-layer-source")
+
+ # Refresh the page to see if the new values are returned
+ self.get(self.url)
+
+ new_values = ["%s-edited" % old_val
+ for old_val in self.initial_values]
+
+ for inputs in self.find_all('#layer-git input[type="text"]') + \
+ self.find_all('dd textarea'):
+ # ignore the tt inputs (twitter typeahead input)
+ if "tt-" in inputs.get_attribute("class"):
+ continue
+
+ value = inputs.get_attribute("value")
+
+ self.assertTrue(value in new_values,
+ "Expecting any of \"%s\" but got \"%s\"" %
+ (new_values, value))
+
+ # Now convert it to a local layer
+ self.click("#edit-layer-source")
+ self.click("#dir")
+ dir_input = self.wait_until_visible("#layer-dir-path-in-details")
+
+ new_dir = "/home/test/my-meta-dir"
+ dir_input.send_keys(new_dir)
+
+ self.click("#save-changes-for-switch")
+ self.wait_until_visible("#edit-layer-source")
+
+ # Refresh the page to see if the new values are returned
+ self.get(self.url)
+ dir_input = self.find("#layer-dir-path-in-details")
+ self.assertTrue(new_dir in dir_input.get_attribute("value"),
+ "Expected %s in the dir value for layer directory" %
+ new_dir)
+
+ def test_delete_layer(self):
+ """ Delete the layer """
+
+ self.get(self.url)
+
+ # Wait for the tables to load to avoid a race condition where the
+ # toaster tables have made an async request. If the layer is deleted
+ # before the request finishes it will cause an exception and fail this
+ # test.
+ wait = WebDriverWait(self.driver, 30)
+
+ wait.until(EC.text_to_be_present_in_element(
+ (By.CLASS_NAME,
+ "table-count-recipestable"), "0"))
+
+ wait.until(EC.text_to_be_present_in_element(
+ (By.CLASS_NAME,
+ "table-count-machinestable"), "0"))
+
+ self.click('a[data-target="#delete-layer-modal"]')
+ self.wait_until_visible("#delete-layer-modal")
+ self.click("#layer-delete-confirmed")
+
+ notification = self.wait_until_visible("#change-notification-msg")
+ expected_text = "You have deleted 1 layer from your project: %s" % \
+ self.imported_layer_version.layer.name
+
+ self.assertTrue(expected_text in notification.text,
+ "Expected notification text \"%s\" not found instead"
+ "it was \"%s\"" %
+ (expected_text, notification.text))
+
+ def test_addrm_to_project(self):
+ self.get(self.url)
+
+ # Add the layer
+ self.click("#add-remove-layer-btn")
+
+ notification = self.wait_until_visible("#change-notification-msg")
+
+ expected_text = "You have added 1 layer to your project: %s" % \
+ self.imported_layer_version.layer.name
+
+ self.assertTrue(expected_text in notification.text,
+ "Expected notification text %s not found was "
+ " \"%s\" instead" %
+ (expected_text, notification.text))
+
+ # Remove the layer
+ self.click("#add-remove-layer-btn")
+
+ notification = self.wait_until_visible("#change-notification-msg")
+
+ expected_text = "You have removed 1 layer from your project: %s" % \
+ self.imported_layer_version.layer.name
+
+ self.assertTrue(expected_text in notification.text,
+ "Expected notification text %s not found was "
+ " \"%s\" instead" %
+ (expected_text, notification.text))
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
new file mode 100644
index 000000000..abc0b0bc8
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
@@ -0,0 +1,211 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+from tests.browser.selenium_helpers_base import Wait
+from orm.models import Project, Build, Task, Recipe, Layer, Layer_Version
+from bldcontrol.models import BuildRequest
+
+class TestMostRecentBuildsStates(SeleniumTestCase):
+ """ Test states update correctly in most recent builds area """
+
+ def _create_build_request(self):
+ project = Project.objects.get_or_create_default_project()
+
+ now = timezone.now()
+
+ build = Build.objects.create(project=project, build_name='fakebuild',
+ started_on=now, completed_on=now)
+
+ return BuildRequest.objects.create(build=build, project=project,
+ state=BuildRequest.REQ_QUEUED)
+
+ def _create_recipe(self):
+ """ Add a recipe to the database and return it """
+ layer = Layer.objects.create()
+ layer_version = Layer_Version.objects.create(layer=layer)
+ return Recipe.objects.create(name='foo', layer_version=layer_version)
+
+ def _check_build_states(self, build_request):
+ recipes_to_parse = 10
+ url = reverse('all-builds')
+ self.get(url)
+
+ build = build_request.build
+ base_selector = '[data-latest-build-result="%s"] ' % build.id
+
+ # build queued; check shown as queued
+ selector = base_selector + '[data-build-state="Queued"]'
+ element = self.wait_until_visible(selector)
+ self.assertRegexpMatches(element.get_attribute('innerHTML'),
+ 'Build queued', 'build should show queued status')
+
+ # waiting for recipes to be parsed
+ build.outcome = Build.IN_PROGRESS
+ build.recipes_to_parse = recipes_to_parse
+ build.recipes_parsed = 0
+
+ build_request.state = BuildRequest.REQ_INPROGRESS
+ build_request.save()
+
+ self.get(url)
+
+ selector = base_selector + '[data-build-state="Parsing"]'
+ element = self.wait_until_visible(selector)
+
+ bar_selector = '#recipes-parsed-percentage-bar-%s' % build.id
+ bar_element = element.find_element_by_css_selector(bar_selector)
+ self.assertEqual(bar_element.value_of_css_property('width'), '0px',
+ 'recipe parse progress should be at 0')
+
+ # recipes being parsed; check parse progress
+ build.recipes_parsed = 5
+ build.save()
+
+ self.get(url)
+
+ element = self.wait_until_visible(selector)
+ bar_element = element.find_element_by_css_selector(bar_selector)
+ recipe_bar_updated = lambda driver: \
+ bar_element.get_attribute('style') == 'width: 50%;'
+ msg = 'recipe parse progress bar should update to 50%'
+ element = Wait(self.driver).until(recipe_bar_updated, msg)
+
+ # all recipes parsed, task started, waiting for first task to finish;
+ # check status is shown as "Tasks starting..."
+ build.recipes_parsed = recipes_to_parse
+ build.save()
+
+ recipe = self._create_recipe()
+ task1 = Task.objects.create(build=build, recipe=recipe,
+ task_name='Lionel')
+ task2 = Task.objects.create(build=build, recipe=recipe,
+ task_name='Jeffries')
+
+ self.get(url)
+
+ selector = base_selector + '[data-build-state="Starting"]'
+ element = self.wait_until_visible(selector)
+ self.assertRegexpMatches(element.get_attribute('innerHTML'),
+ 'Tasks starting', 'build should show "tasks starting" status')
+
+ # first task finished; check tasks progress bar
+ task1.order = 1
+ task1.save()
+
+ self.get(url)
+
+ selector = base_selector + '[data-build-state="In Progress"]'
+ element = self.wait_until_visible(selector)
+
+ bar_selector = '#build-pc-done-bar-%s' % build.id
+ bar_element = element.find_element_by_css_selector(bar_selector)
+
+ task_bar_updated = lambda driver: \
+ bar_element.get_attribute('style') == 'width: 50%;'
+ msg = 'tasks progress bar should update to 50%'
+ element = Wait(self.driver).until(task_bar_updated, msg)
+
+ # last task finished; check tasks progress bar updates
+ task2.order = 2
+ task2.save()
+
+ self.get(url)
+
+ element = self.wait_until_visible(selector)
+ bar_element = element.find_element_by_css_selector(bar_selector)
+ task_bar_updated = lambda driver: \
+ bar_element.get_attribute('style') == 'width: 100%;'
+ msg = 'tasks progress bar should update to 100%'
+ element = Wait(self.driver).until(task_bar_updated, msg)
+
+ def test_states_to_success(self):
+ """
+ Test state transitions in the recent builds area for a build which
+ completes successfully.
+ """
+ build_request = self._create_build_request()
+
+ self._check_build_states(build_request)
+
+ # all tasks complete and build succeeded; check success state shown
+ build = build_request.build
+ build.outcome = Build.SUCCEEDED
+ build.save()
+
+ selector = '[data-latest-build-result="%s"] ' \
+ '[data-build-state="Succeeded"]' % build.id
+ element = self.wait_until_visible(selector)
+
+ def test_states_to_failure(self):
+ """
+ Test state transitions in the recent builds area for a build which
+ completes in a failure.
+ """
+ build_request = self._create_build_request()
+
+ self._check_build_states(build_request)
+
+ # all tasks complete and build succeeded; check fail state shown
+ build = build_request.build
+ build.outcome = Build.FAILED
+ build.save()
+
+ selector = '[data-latest-build-result="%s"] ' \
+ '[data-build-state="Failed"]' % build.id
+ element = self.wait_until_visible(selector)
+
+ def test_states_cancelling(self):
+ """
+ Test that most recent build area updates correctly for a build
+ which is cancelled.
+ """
+ url = reverse('all-builds')
+
+ build_request = self._create_build_request()
+ build = build_request.build
+
+ # cancel the build
+ build_request.state = BuildRequest.REQ_CANCELLING
+ build_request.save()
+
+ self.get(url)
+
+ # check cancelling state
+ selector = '[data-latest-build-result="%s"] ' \
+ '[data-build-state="Cancelling"]' % build.id
+ element = self.wait_until_visible(selector)
+ self.assertRegexpMatches(element.get_attribute('innerHTML'),
+ 'Cancelling the build', 'build should show "cancelling" status')
+
+ # check cancelled state
+ build.outcome = Build.CANCELLED
+ build.save()
+
+ self.get(url)
+
+ selector = '[data-latest-build-result="%s"] ' \
+ '[data-build-state="Cancelled"]' % build.id
+ element = self.wait_until_visible(selector)
+ self.assertRegexpMatches(element.get_attribute('innerHTML'),
+ 'Build cancelled', 'build should show "cancelled" status')
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
index 8906cb27d..ab5a8e66b 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
@@ -25,6 +25,7 @@ from tests.browser.selenium_helpers import SeleniumTestCase
from orm.models import BitbakeVersion, Release, Project, ProjectLayer, Layer
from orm.models import Layer_Version, Recipe, CustomImageRecipe
+
class TestNewCustomImagePage(SeleniumTestCase):
CUSTOM_IMAGE_NAME = 'roopa-doopa'
@@ -140,7 +141,7 @@ class TestNewCustomImagePage(SeleniumTestCase):
self._create_custom_image(self.recipe.name)
element = self.wait_until_visible('#invalid-name-help')
self.assertRegexpMatches(element.text.strip(),
- 'recipe with this name already exists')
+ 'image with this name already exists')
def test_new_duplicates_project_image(self):
"""
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
new file mode 100644
index 000000000..77e5f1526
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
@@ -0,0 +1,113 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from tests.browser.selenium_helpers import SeleniumTestCase
+from selenium.webdriver.support.ui import Select
+from selenium.common.exceptions import InvalidElementStateException
+
+from orm.models import Project, Release, BitbakeVersion
+
+
+class TestNewProjectPage(SeleniumTestCase):
+ """ Test project data at /project/X/ is displayed correctly """
+
+ def setUp(self):
+ bitbake, c = BitbakeVersion.objects.get_or_create(
+ name="master",
+ giturl="git://master",
+ branch="master",
+ dirpath="master")
+
+ release, c = Release.objects.get_or_create(name="msater",
+ description="master"
+ "release",
+ branch_name="master",
+ helptext="latest",
+ bitbake_version=bitbake)
+
+ self.release, c = Release.objects.get_or_create(
+ name="msater2",
+ description="master2"
+ "release2",
+ branch_name="master2",
+ helptext="latest2",
+ bitbake_version=bitbake)
+
+ def test_create_new_project(self):
+ """ Test creating a project """
+
+ project_name = "masterproject"
+
+ url = reverse('newproject')
+ self.get(url)
+
+ self.enter_text('#new-project-name', project_name)
+
+ select = Select(self.find('#projectversion'))
+ select.select_by_value(str(self.release.pk))
+
+ self.click("#create-project-button")
+
+ # We should get redirected to the new project's page with the
+ # notification at the top
+ element = self.wait_until_visible('#project-created-notification')
+
+ self.assertTrue(project_name in element.text,
+ "New project name not in new project notification")
+
+ self.assertTrue(Project.objects.filter(name=project_name).count(),
+ "New project not found in database")
+
+ def test_new_duplicates_project_name(self):
+ """
+ Should not be able to create a new project whose name is the same
+ as an existing project
+ """
+
+ project_name = "dupproject"
+
+ Project.objects.create_project(name=project_name,
+ release=self.release)
+
+ url = reverse('newproject')
+ self.get(url)
+
+ self.enter_text('#new-project-name', project_name)
+
+ select = Select(self.find('#projectversion'))
+ select.select_by_value(str(self.release.pk))
+
+ element = self.wait_until_visible('#hint-error-project-name')
+
+ self.assertTrue(("Project names must be unique" in element.text),
+ "Did not find unique project name error message")
+
+ # Try and click it anyway, if it submits we'll have a new project in
+ # the db and assert then
+ try:
+ self.click("#create-project-button")
+ except InvalidElementStateException:
+ pass
+
+ self.assertTrue(
+ (Project.objects.filter(name=project_name).count() == 1),
+ "New project not found in database")
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py
new file mode 100644
index 000000000..071008499
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_config_page.py
@@ -0,0 +1,231 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import re
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+
+from orm.models import BitbakeVersion, Release, Project, ProjectVariable
+
+class TestProjectConfigsPage(SeleniumTestCase):
+ """ Test data at /project/X/builds is displayed correctly """
+
+ PROJECT_NAME = 'test project'
+ INVALID_PATH_START_TEXT = 'The directory path should either start with a /'
+ INVALID_PATH_CHAR_TEXT = 'The directory path cannot include spaces or ' \
+ 'any of these characters'
+
+ def setUp(self):
+ bbv = BitbakeVersion.objects.create(name='bbv1', giturl='/tmp/',
+ branch='master', dirpath='')
+ release = Release.objects.create(name='release1',
+ bitbake_version=bbv)
+ self.project1 = Project.objects.create_project(name=self.PROJECT_NAME,
+ release=release)
+ self.project1.save()
+
+
+ def test_no_underscore_iamgefs_type(self):
+ """
+ Should not accept IMAGEFS_TYPE with an underscore
+ """
+
+ imagefs_type = "foo_bar"
+
+ ProjectVariable.objects.get_or_create(project = self.project1, name = "IMAGE_FSTYPES", value = "abcd ")
+ url = reverse('projectconf', args=(self.project1.id,));
+ self.get(url);
+
+ self.click('#change-image_fstypes-icon')
+
+ self.enter_text('#new-imagefs_types', imagefs_type)
+
+ element = self.wait_until_visible('#hintError-image-fs_type')
+
+ self.assertTrue(("A valid image type cannot include underscores" in element.text),
+ "Did not find underscore error message")
+
+
+ def test_checkbox_verification(self):
+ """
+ Should automatically check the checkbox if user enters value
+ text box, if value is there in the checkbox.
+ """
+ imagefs_type = "btrfs"
+
+ ProjectVariable.objects.get_or_create(project = self.project1, name = "IMAGE_FSTYPES", value = "abcd ")
+ url = reverse('projectconf', args=(self.project1.id,));
+ self.get(url);
+
+ self.click('#change-image_fstypes-icon')
+
+ self.enter_text('#new-imagefs_types', imagefs_type)
+
+ checkboxes = self.driver.find_elements_by_xpath("//input[@class='fs-checkbox-fstypes']")
+
+ for checkbox in checkboxes:
+ if checkbox.get_attribute("value") == "btrfs":
+ self.assertEqual(checkbox.is_selected(), True)
+
+
+ def test_textbox_with_checkbox_verification(self):
+ """
+ Should automatically add or remove value in textbox, if user checks
+ or unchecks checkboxes.
+ """
+
+ ProjectVariable.objects.get_or_create(project = self.project1, name = "IMAGE_FSTYPES", value = "abcd ")
+ url = reverse('projectconf', args=(self.project1.id,));
+ self.get(url);
+
+ self.click('#change-image_fstypes-icon')
+
+ self.wait_until_visible('#new-imagefs_types')
+
+ checkboxes_selector = '.fs-checkbox-fstypes'
+
+ self.wait_until_visible(checkboxes_selector)
+ checkboxes = self.find_all(checkboxes_selector)
+
+ for checkbox in checkboxes:
+ if checkbox.get_attribute("value") == "cpio":
+ checkbox.click()
+ element = self.driver.find_element_by_id('new-imagefs_types')
+
+ self.wait_until_visible('#new-imagefs_types')
+
+ self.assertTrue(("cpio" in element.get_attribute('value'),
+ "Imagefs not added into the textbox"))
+ checkbox.click()
+ self.assertTrue(("cpio" not in element.text),
+ "Image still present in the textbox")
+
+ def test_set_download_dir(self):
+ """
+ Validate the allowed and disallowed types in the directory field for
+ DL_DIR
+ """
+
+ ProjectVariable.objects.get_or_create(project=self.project1,
+ name='DL_DIR')
+ url = reverse('projectconf', args=(self.project1.id,))
+ self.get(url)
+
+ # activate the input to edit download dir
+ self.click('#change-dl_dir-icon')
+ self.wait_until_visible('#new-dl_dir')
+
+ # downloads dir path doesn't start with / or ${...}
+ self.enter_text('#new-dl_dir', 'home/foo')
+ element = self.wait_until_visible('#hintError-initialChar-dl_dir')
+
+ msg = 'downloads directory path starts with invalid character but ' \
+ 'treated as valid'
+ self.assertTrue((self.INVALID_PATH_START_TEXT in element.text), msg)
+
+ # downloads dir path has a space
+ self.driver.find_element_by_id('new-dl_dir').clear()
+ self.enter_text('#new-dl_dir', '/foo/bar a')
+
+ element = self.wait_until_visible('#hintError-dl_dir')
+ msg = 'downloads directory path characters invalid but treated as valid'
+ self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
+
+ # downloads dir path starts with ${...} but has a space
+ self.driver.find_element_by_id('new-dl_dir').clear()
+ self.enter_text('#new-dl_dir', '${TOPDIR}/down foo')
+
+ element = self.wait_until_visible('#hintError-dl_dir')
+ msg = 'downloads directory path characters invalid but treated as valid'
+ self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
+
+ # downloads dir path starts with /
+ self.driver.find_element_by_id('new-dl_dir').clear()
+ self.enter_text('#new-dl_dir', '/bar/foo')
+
+ hidden_element = self.driver.find_element_by_id('hintError-dl_dir')
+ self.assertEqual(hidden_element.is_displayed(), False,
+ 'downloads directory path valid but treated as invalid')
+
+ # downloads dir path starts with ${...}
+ self.driver.find_element_by_id('new-dl_dir').clear()
+ self.enter_text('#new-dl_dir', '${TOPDIR}/down')
+
+ hidden_element = self.driver.find_element_by_id('hintError-dl_dir')
+ self.assertEqual(hidden_element.is_displayed(), False,
+ 'downloads directory path valid but treated as invalid')
+
+ def test_set_sstate_dir(self):
+ """
+ Validate the allowed and disallowed types in the directory field for
+ SSTATE_DIR
+ """
+
+ ProjectVariable.objects.get_or_create(project=self.project1,
+ name='SSTATE_DIR')
+ url = reverse('projectconf', args=(self.project1.id,))
+ self.get(url)
+
+ self.click('#change-sstate_dir-icon')
+
+ self.wait_until_visible('#new-sstate_dir')
+
+ # path doesn't start with / or ${...}
+ self.enter_text('#new-sstate_dir', 'home/foo')
+ element = self.wait_until_visible('#hintError-initialChar-sstate_dir')
+
+ msg = 'sstate directory path starts with invalid character but ' \
+ 'treated as valid'
+ self.assertTrue((self.INVALID_PATH_START_TEXT in element.text), msg)
+
+ # path has a space
+ self.driver.find_element_by_id('new-sstate_dir').clear()
+ self.enter_text('#new-sstate_dir', '/foo/bar a')
+
+ element = self.wait_until_visible('#hintError-sstate_dir')
+ msg = 'sstate directory path characters invalid but treated as valid'
+ self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
+
+ # path starts with ${...} but has a space
+ self.driver.find_element_by_id('new-sstate_dir').clear()
+ self.enter_text('#new-sstate_dir', '${TOPDIR}/down foo')
+
+ element = self.wait_until_visible('#hintError-sstate_dir')
+ msg = 'sstate directory path characters invalid but treated as valid'
+ self.assertTrue((self.INVALID_PATH_CHAR_TEXT in element.text), msg)
+
+ # path starts with /
+ self.driver.find_element_by_id('new-sstate_dir').clear()
+ self.enter_text('#new-sstate_dir', '/bar/foo')
+
+ hidden_element = self.driver.find_element_by_id('hintError-sstate_dir')
+ self.assertEqual(hidden_element.is_displayed(), False,
+ 'sstate directory path valid but treated as invalid')
+
+ # paths starts with ${...}
+ self.driver.find_element_by_id('new-sstate_dir').clear()
+ self.enter_text('#new-sstate_dir', '${TOPDIR}/down')
+
+ hidden_element = self.driver.find_element_by_id('hintError-sstate_dir')
+ self.assertEqual(hidden_element.is_displayed(), False,
+ 'sstate directory path valid but treated as invalid') \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_page.py
index 786bef1c6..018646332 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_page.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_project_page.py
@@ -55,5 +55,5 @@ class TestProjectPage(SeleniumTestCase):
self.get(url)
# check that we get a project page with the correct heading
- project_name = self.find('#project-name').text.strip()
+ project_name = self.find('.project-name').text.strip()
self.assertEqual(project_name, self.CLI_BUILDS_PROJECT_NAME)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_sample.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_sample.py
index 7bb8b97e8..20ec53c28 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_sample.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_sample.py
@@ -37,5 +37,5 @@ class TestSample(SeleniumTestCase):
def test_landing_page_has_brand(self):
url = reverse('landing')
self.get(url)
- brand_link = self.find('span.brand a')
+ brand_link = self.find('.toaster-navbar-brand a.brand')
self.assertEqual(brand_link.text.strip(), 'Toaster')
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_task_page.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_task_page.py
new file mode 100644
index 000000000..690d116cb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_task_page.py
@@ -0,0 +1,76 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+from orm.models import Project, Build, Layer, Layer_Version, Recipe, Target
+from orm.models import Task, Task_Dependency
+
+class TestTaskPage(SeleniumTestCase):
+ """ Test page which shows an individual task """
+ RECIPE_NAME = 'bar'
+ RECIPE_VERSION = '0.1'
+ TASK_NAME = 'do_da_doo_ron_ron'
+
+ def setUp(self):
+ now = timezone.now()
+
+ project = Project.objects.get_or_create_default_project()
+
+ self.build = Build.objects.create(project=project, started_on=now,
+ completed_on=now)
+
+ Target.objects.create(target='foo', build=self.build)
+
+ layer = Layer.objects.create()
+
+ layer_version = Layer_Version.objects.create(layer=layer)
+
+ recipe = Recipe.objects.create(name=TestTaskPage.RECIPE_NAME,
+ layer_version=layer_version, version=TestTaskPage.RECIPE_VERSION)
+
+ self.task = Task.objects.create(build=self.build, recipe=recipe,
+ order=1, outcome=Task.OUTCOME_COVERED, task_executed=False,
+ task_name=TestTaskPage.TASK_NAME)
+
+ def test_covered_task(self):
+ """
+ Check that covered tasks are displayed for tasks which have
+ dependencies on themselves
+ """
+
+ # the infinite loop which of bug 9952 was down to tasks which
+ # depend on themselves, so add self-dependent tasks to replicate the
+ # situation which caused the infinite loop (now fixed)
+ Task_Dependency.objects.create(task=self.task, depends_on=self.task)
+
+ url = reverse('task', args=(self.build.id, self.task.id,))
+ self.get(url)
+
+ # check that we see the task name
+ self.wait_until_visible('.page-header h1')
+
+ heading = self.find('.page-header h1')
+ expected_heading = '%s_%s %s' % (TestTaskPage.RECIPE_NAME,
+ TestTaskPage.RECIPE_VERSION, TestTaskPage.TASK_NAME)
+ self.assertEqual(heading.text, expected_heading,
+ 'Heading should show recipe name, version and task')
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py
new file mode 100644
index 000000000..53ddf30c3
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/browser/test_toastertable_ui.py
@@ -0,0 +1,160 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from datetime import datetime
+
+from django.core.urlresolvers import reverse
+from django.utils import timezone
+from tests.browser.selenium_helpers import SeleniumTestCase
+from orm.models import BitbakeVersion, Release, Project, Build
+
+class TestToasterTableUI(SeleniumTestCase):
+ """
+ Tests for the UI elements of ToasterTable (sorting etc.);
+ note that the tests cover generic functionality of ToasterTable which
+ manifests as UI elements in the browser, and can only be tested via
+ Selenium.
+ """
+
+ def setUp(self):
+ pass
+
+ def _get_orderby_heading(self, table):
+ """
+ Get the current order by finding the column heading in <table> with
+ the sorted class on it.
+
+ table: WebElement for a ToasterTable
+ """
+ selector = 'thead a.sorted'
+ heading = table.find_element_by_css_selector(selector)
+ return heading.get_attribute('innerHTML').strip()
+
+ def _get_datetime_from_cell(self, row, selector):
+ """
+ Return the value in the cell selected by <selector> on <row> as a
+ datetime.
+
+ row: <tr> WebElement for a row in the ToasterTable
+ selector: CSS selector to use to find the cell containing the date time
+ string
+ """
+ cell = row.find_element_by_css_selector(selector)
+ cell_text = cell.get_attribute('innerHTML').strip()
+ return datetime.strptime(cell_text, '%d/%m/%y %H:%M')
+
+ def test_revert_orderby(self):
+ """
+ Test that sort order for a table reverts to the default sort order
+ if the current sort column is hidden.
+ """
+ now = timezone.now()
+ later = now + timezone.timedelta(hours=1)
+ even_later = later + timezone.timedelta(hours=1)
+
+ bbv = BitbakeVersion.objects.create(name='test bbv', giturl='/tmp/',
+ branch='master', dirpath='')
+ release = Release.objects.create(name='test release',
+ branch_name='master',
+ bitbake_version=bbv)
+
+ project = Project.objects.create_project('project', release)
+
+ # set up two builds which will order differently when sorted by
+ # started_on or completed_on
+
+ # started first, finished last
+ build1 = Build.objects.create(project=project,
+ started_on=now,
+ completed_on=even_later,
+ outcome=Build.SUCCEEDED)
+
+ # started second, finished first
+ build2 = Build.objects.create(project=project,
+ started_on=later,
+ completed_on=later,
+ outcome=Build.SUCCEEDED)
+
+ url = reverse('all-builds')
+ self.get(url)
+ table = self.wait_until_visible('#allbuildstable')
+
+ # check ordering (default is by -completed_on); so build1 should be
+ # first as it finished last
+ active_heading = self._get_orderby_heading(table)
+ self.assertEqual(active_heading, 'Completed on',
+ 'table should be sorted by "Completed on" by default')
+
+ row_selector = '#allbuildstable tbody tr'
+ cell_selector = 'td.completed_on'
+
+ rows = self.find_all(row_selector)
+ row1_completed_on = self._get_datetime_from_cell(rows[0], cell_selector)
+ row2_completed_on = self._get_datetime_from_cell(rows[1], cell_selector)
+ self.assertTrue(row1_completed_on > row2_completed_on,
+ 'table should be sorted by -completed_on')
+
+ # turn on started_on column
+ self.click('#edit-columns-button')
+ self.click('#checkbox-started_on')
+
+ # sort by started_on column
+ links = table.find_elements_by_css_selector('th.started_on a')
+ for link in links:
+ if link.get_attribute('innerHTML').strip() == 'Started on':
+ link.click()
+ break
+
+ # wait for table data to reload in response to new sort
+ self.wait_until_visible('#allbuildstable')
+
+ # check ordering; build1 should be first
+ active_heading = self._get_orderby_heading(table)
+ self.assertEqual(active_heading, 'Started on',
+ 'table should be sorted by "Started on"')
+
+ cell_selector = 'td.started_on'
+
+ rows = self.find_all(row_selector)
+ row1_started_on = self._get_datetime_from_cell(rows[0], cell_selector)
+ row2_started_on = self._get_datetime_from_cell(rows[1], cell_selector)
+ self.assertTrue(row1_started_on < row2_started_on,
+ 'table should be sorted by started_on')
+
+ # turn off started_on column
+ self.click('#edit-columns-button')
+ self.click('#checkbox-started_on')
+
+ # wait for table data to reload in response to new sort
+ self.wait_until_visible('#allbuildstable')
+
+ # check ordering (should revert to completed_on); build2 should be first
+ active_heading = self._get_orderby_heading(table)
+ self.assertEqual(active_heading, 'Completed on',
+ 'table should be sorted by "Completed on" after hiding sort column')
+
+ cell_selector = 'td.completed_on'
+
+ rows = self.find_all(row_selector)
+ row1_completed_on = self._get_datetime_from_cell(rows[0], cell_selector)
+ row2_completed_on = self._get_datetime_from_cell(rows[1], cell_selector)
+ self.assertTrue(row1_completed_on > row2_completed_on,
+ 'table should be sorted by -completed_on')
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/README b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/README
new file mode 100644
index 000000000..4a3b5328b
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/README
@@ -0,0 +1,14 @@
+# Running build tests
+
+These tests are to test the running of builds and the data produced by the builds.
+Your oe build environment must be sourced/initialised for these tests to run.
+
+The simplest way to run the tests are the following commands:
+
+$ . oe-init-build-env
+$ cd bitbake/lib/toaster/ # path my vary but this is into toaster's directory
+$ DJANGO_SETTINGS_MODULE='toastermain.settings_test' ./manage.py test tests.builds
+
+Optional environment variables:
+ - TOASTER_DIR (where toaster keeps it's artifacts)
+ - TOASTER_CONF a path to the toasterconf.json file. This will need to be set if you don't execute the tests from toaster's own directory.
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/__init__.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/__init__.py
index e69de29bb..e69de29bb 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/__init__.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/__init__.py
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/buildtest.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/buildtest.py
new file mode 100644
index 000000000..fc7bd5b64
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/buildtest.py
@@ -0,0 +1,134 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import os
+import sys
+import time
+import unittest
+
+from orm.models import Project, Release, ProjectTarget, Build
+from bldcontrol.models import BuildEnvironment
+
+from bldcontrol.management.commands.loadconf import Command\
+ as LoadConfigCommand
+
+from bldcontrol.management.commands.runbuilds import Command\
+ as RunBuildsCommand
+
+import subprocess
+
+# We use unittest.TestCase instead of django.test.TestCase because we don't
+# want to wrap everything in a database transaction as an external process
+# (bitbake needs access to the database)
+
+
+class BuildTest(unittest.TestCase):
+
+ PROJECT_NAME = "Testbuild"
+
+ def build(self, target):
+ # So that the buildinfo helper uses the test database'
+ self.assertEqual(
+ os.environ.get('DJANGO_SETTINGS_MODULE', ''),
+ 'toastermain.settings-test',
+ "Please initialise django with the tests settings: "
+ "DJANGO_SETTINGS_MODULE='toastermain.settings-test'")
+
+ if self.target_already_built(target):
+ return
+
+ # Take a guess at the location of the toasterconf
+ poky_toaster_conf = '../../../meta-poky/conf/toasterconf.json'
+ oe_toaster_conf = '../../../meta/conf/toasterconf.json'
+ env_toaster_conf = os.environ.get('TOASTER_CONF')
+
+ config_file = None
+ if env_toaster_conf:
+ config_file = env_toaster_conf
+ else:
+ if os.path.exists(poky_toaster_conf):
+ config_file = poky_toaster_conf
+ elif os.path.exists(oe_toaster_conf):
+ config_file = oe_toaster_conf
+
+ self.assertIsNotNone(config_file,
+ "Default locations for toasterconf not found"
+ "please set $TOASTER_CONF manually")
+
+ # Setup the release information and default layers
+ print("\nImporting file: %s" % config_file)
+ os.environ['TOASTER_CONF'] = config_file
+ LoadConfigCommand()._import_layer_config(config_file)
+
+ os.environ['TOASTER_DIR'] = \
+ os.path.abspath(os.environ['BUILDDIR'] + "/../")
+
+ os.environ['BBBASEDIR'] = \
+ subprocess.check_output('which bitbake', shell=True)
+
+ BuildEnvironment.objects.get_or_create(
+ betype=BuildEnvironment.TYPE_LOCAL,
+ sourcedir=os.environ['TOASTER_DIR'],
+ builddir=os.environ['BUILDDIR']
+ )
+
+ release = Release.objects.get(name='local')
+
+ # Create a project for this build to run in
+ try:
+ project = Project.objects.get(name=BuildTest.PROJECT_NAME)
+ except Project.DoesNotExist:
+ project = Project.objects.create_project(
+ name=BuildTest.PROJECT_NAME,
+ release=release
+ )
+
+ ProjectTarget.objects.create(project=project,
+ target=target,
+ task="")
+ build_request = project.schedule_build()
+
+ # run runbuilds command to dispatch the build
+ # e.g. manage.py runubilds
+ RunBuildsCommand().runbuild()
+
+ build_pk = build_request.build.pk
+ while Build.objects.get(pk=build_pk).outcome == Build.IN_PROGRESS:
+ sys.stdout.write("\rBuilding %s %d%%" %
+ (target,
+ build_request.build.completeper()))
+ sys.stdout.flush()
+ time.sleep(1)
+
+ self.assertNotEqual(build_request.build.outcome,
+ Build.SUCCEEDED, "Build did not SUCCEEDED")
+ print("\nBuild finished")
+ return build_request.build
+
+ def target_already_built(self, target):
+ """ If the target is already built no need to build it again"""
+ for build in Build.objects.filter(
+ project__name=BuildTest.PROJECT_NAME):
+ targets = build.target_set.values_list('target', flat=True)
+ if target in targets:
+ return True
+
+ return False
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py
new file mode 100644
index 000000000..dec0bfa7f
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/builds/test_core_image_min.py
@@ -0,0 +1,396 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Tests were part of openembedded-core oe selftest Authored by: Lucian Musat
+# Ionut Chisanovici, Paul Eggleton and Cristian Iorga
+
+import os
+
+from django.db.models import Q
+
+from orm.models import Target_Image_File, Target_Installed_Package, Task
+from orm.models import Package_Dependency, Recipe_Dependency, Build
+from orm.models import Task_Dependency, Package, Target, Recipe
+from orm.models import CustomImagePackage
+
+from buildtest import BuildTest
+
+
+class BuildCoreImageMinimal(BuildTest):
+ """Build core-image-minimal and test the results"""
+
+ def setUp(self):
+ self.build("core-image-minimal")
+
+ # Check if build name is unique - tc_id=795
+ def test_Build_Unique_Name(self):
+ all_builds = Build.objects.all().count()
+ distinct_builds = Build.objects.values('id').distinct().count()
+ self.assertEqual(distinct_builds,
+ all_builds,
+ msg='Build name is not unique')
+
+ # Check if build cooker log path is unique - tc_id=819
+ def test_Build_Unique_Cooker_Log_Path(self):
+ distinct_path = Build.objects.values(
+ 'cooker_log_path').distinct().count()
+ total_builds = Build.objects.values('id').count()
+ self.assertEqual(distinct_path,
+ total_builds,
+ msg='Build cooker log path is not unique')
+
+ # Check if task order is unique for one build - tc=824
+ def test_Task_Unique_Order(self):
+ builds = Build.objects.values('id')
+ cnt_err = []
+
+ for build in builds:
+ total_task_order = Task.objects.filter(
+ build=build['id']).values('order').count()
+ distinct_task_order = Task.objects.filter(
+ build=build['id']).values('order').distinct().count()
+
+ if (total_task_order != distinct_task_order):
+ cnt_err.append(build['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for build id: %s' % cnt_err)
+
+ # Check task order sequence for one build - tc=825
+ def test_Task_Order_Sequence(self):
+ builds = builds = Build.objects.values('id')
+ cnt_err = []
+ for build in builds:
+ tasks = Task.objects.filter(
+ Q(build=build['id']),
+ ~Q(order=None),
+ ~Q(task_name__contains='_setscene')
+ ).values('id', 'order').order_by("order")
+
+ cnt_tasks = 0
+ for task in tasks:
+ cnt_tasks += 1
+ if (task['order'] != cnt_tasks):
+ cnt_err.append(task['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for task id: %s' % cnt_err)
+
+ # Check if disk_io matches the difference between EndTimeIO and
+ # StartTimeIO in build stats - tc=828
+ # def test_Task_Disk_IO_TC828(self):
+
+ # Check if outcome = 2 (SSTATE) then sstate_result must be 3 (RESTORED) -
+ # tc=832
+ def test_Task_If_Outcome_2_Sstate_Result_Must_Be_3(self):
+ tasks = Task.objects.filter(outcome=2).values('id', 'sstate_result')
+ cnt_err = []
+ for task in tasks:
+ if (task['sstate_result'] != 3):
+ cnt_err.append(task['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if outcome = 1 (COVERED) or 3 (EXISTING) then sstate_result must
+ # be 0 (SSTATE_NA) - tc=833
+ def test_Task_If_Outcome_1_3_Sstate_Result_Must_Be_0(self):
+ tasks = Task.objects.filter(
+ outcome__in=(Task.OUTCOME_COVERED,
+ Task.OUTCOME_PREBUILT)).values('id',
+ 'task_name',
+ 'sstate_result')
+ cnt_err = []
+
+ for task in tasks:
+ if (task['sstate_result'] != Task.SSTATE_NA and
+ task['sstate_result'] != Task.SSTATE_MISS):
+ cnt_err.append({'id': task['id'],
+ 'name': task['task_name'],
+ 'sstate_result': task['sstate_result'],
+ })
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if outcome is 0 (SUCCESS) or 4 (FAILED) then sstate_result must be
+ # 0 (NA), 1 (MISS) or 2 (FAILED) - tc=834
+ def test_Task_If_Outcome_0_4_Sstate_Result_Must_Be_0_1_2(self):
+ tasks = Task.objects.filter(
+ outcome__in=(0, 4)).values('id', 'sstate_result')
+ cnt_err = []
+
+ for task in tasks:
+ if (task['sstate_result'] not in [0, 1, 2]):
+ cnt_err.append(task['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if task_executed = TRUE (1), script_type must be 0 (CODING_NA), 2
+ # (CODING_PYTHON), 3 (CODING_SHELL) - tc=891
+ def test_Task_If_Task_Executed_True_Script_Type_0_2_3(self):
+ tasks = Task.objects.filter(
+ task_executed=1).values('id', 'script_type')
+ cnt_err = []
+
+ for task in tasks:
+ if (task['script_type'] not in [0, 2, 3]):
+ cnt_err.append(task['id'])
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if task_executed = TRUE (1), outcome must be 0 (SUCCESS) or 4
+ # (FAILED) - tc=836
+ def test_Task_If_Task_Executed_True_Outcome_0_4(self):
+ tasks = Task.objects.filter(task_executed=1).values('id', 'outcome')
+ cnt_err = []
+
+ for task in tasks:
+ if (task['outcome'] not in [0, 4]):
+ cnt_err.append(task['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if task_executed = FALSE (0), script_type must be 0 - tc=890
+ def test_Task_If_Task_Executed_False_Script_Type_0(self):
+ tasks = Task.objects.filter(
+ task_executed=0).values('id', 'script_type')
+ cnt_err = []
+
+ for task in tasks:
+ if (task['script_type'] != 0):
+ cnt_err.append(task['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Check if task_executed = FALSE (0) and build outcome = SUCCEEDED (0),
+ # task outcome must be 1 (COVERED), 2 (CACHED), 3 (PREBUILT), 5 (EMPTY) -
+ # tc=837
+ def test_Task_If_Task_Executed_False_Outcome_1_2_3_5(self):
+ builds = Build.objects.filter(outcome=0).values('id')
+ cnt_err = []
+ for build in builds:
+ tasks = Task.objects.filter(
+ build=build['id'], task_executed=0).values('id', 'outcome')
+ for task in tasks:
+ if (task['outcome'] not in [1, 2, 3, 5]):
+ cnt_err.append(task['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task id: %s' % cnt_err)
+
+ # Key verification - tc=888
+ def test_Target_Installed_Package(self):
+ rows = Target_Installed_Package.objects.values('id',
+ 'target_id',
+ 'package_id')
+ cnt_err = []
+
+ for row in rows:
+ target = Target.objects.filter(id=row['target_id']).values('id')
+ package = Package.objects.filter(id=row['package_id']).values('id')
+ if (not target or not package):
+ cnt_err.append(row['id'])
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for target installed package id: %s' %
+ cnt_err)
+
+ # Key verification - tc=889
+ def test_Task_Dependency(self):
+ rows = Task_Dependency.objects.values('id',
+ 'task_id',
+ 'depends_on_id')
+ cnt_err = []
+ for row in rows:
+ task_id = Task.objects.filter(id=row['task_id']).values('id')
+ depends_on_id = Task.objects.filter(
+ id=row['depends_on_id']).values('id')
+ if (not task_id or not depends_on_id):
+ cnt_err.append(row['id'])
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg='Errors for task dependency id: %s' % cnt_err)
+
+ # Check if build target file_name is populated only if is_image=true AND
+ # orm_build.outcome=0 then if the file exists and its size matches
+ # the file_size value. Need to add the tc in the test run
+ def test_Target_File_Name_Populated(self):
+ builds = Build.objects.filter(outcome=0).values('id')
+ for build in builds:
+ targets = Target.objects.filter(
+ build_id=build['id'], is_image=1).values('id')
+ for target in targets:
+ target_files = Target_Image_File.objects.filter(
+ target_id=target['id']).values('id',
+ 'file_name',
+ 'file_size')
+ cnt_err = []
+ for file_info in target_files:
+ target_id = file_info['id']
+ target_file_name = file_info['file_name']
+ target_file_size = file_info['file_size']
+ if (not target_file_name or not target_file_size):
+ cnt_err.append(target_id)
+ else:
+ if (not os.path.exists(target_file_name)):
+ cnt_err.append(target_id)
+ else:
+ if (os.path.getsize(target_file_name) !=
+ target_file_size):
+ cnt_err.append(target_id)
+ self.assertEqual(len(cnt_err), 0,
+ msg='Errors for target image file id: %s' %
+ cnt_err)
+
+ # Key verification - tc=884
+ def test_Package_Dependency(self):
+ cnt_err = []
+ deps = Package_Dependency.objects.values(
+ 'id', 'package_id', 'depends_on_id')
+ for dep in deps:
+ if (dep['package_id'] == dep['depends_on_id']):
+ cnt_err.append(dep['id'])
+ self.assertEqual(len(cnt_err), 0,
+ msg='Errors for package dependency id: %s' % cnt_err)
+
+ # Recipe key verification, recipe name does not depends on a recipe having
+ # the same name - tc=883
+ def test_Recipe_Dependency(self):
+ deps = Recipe_Dependency.objects.values(
+ 'id', 'recipe_id', 'depends_on_id')
+ cnt_err = []
+ for dep in deps:
+ if (not dep['recipe_id'] or not dep['depends_on_id']):
+ cnt_err.append(dep['id'])
+ else:
+ name = Recipe.objects.filter(
+ id=dep['recipe_id']).values('name')
+ dep_name = Recipe.objects.filter(
+ id=dep['depends_on_id']).values('name')
+ if (name == dep_name):
+ cnt_err.append(dep['id'])
+ self.assertEqual(len(cnt_err), 0,
+ msg='Errors for recipe dependency id: %s' % cnt_err)
+
+ # Check if package name does not start with a number (0-9) - tc=846
+ def test_Package_Name_For_Number(self):
+ packages = Package.objects.filter(~Q(size=-1)).values('id', 'name')
+ cnt_err = []
+ for package in packages:
+ if (package['name'][0].isdigit() is True):
+ cnt_err.append(package['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for package id: %s' % cnt_err)
+
+ # Check if package version starts with a number (0-9) - tc=847
+ def test_Package_Version_Starts_With_Number(self):
+ packages = Package.objects.filter(
+ ~Q(size=-1)).values('id', 'version')
+ cnt_err = []
+ for package in packages:
+ if (package['version'][0].isdigit() is False):
+ cnt_err.append(package['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for package id: %s' % cnt_err)
+
+ # Check if package revision starts with 'r' - tc=848
+ def test_Package_Revision_Starts_With_r(self):
+ packages = Package.objects.filter(
+ ~Q(size=-1)).values('id', 'revision')
+ cnt_err = []
+ for package in packages:
+ if (package['revision'][0].startswith("r") is False):
+ cnt_err.append(package['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for package id: %s' % cnt_err)
+
+ # Check the validity of the package build_id
+ # TC must be added in test run
+ def test_Package_Build_Id(self):
+ packages = Package.objects.filter(
+ ~Q(size=-1)).values('id', 'build_id')
+ cnt_err = []
+ for package in packages:
+ build_id = Build.objects.filter(
+ id=package['build_id']).values('id')
+ if (not build_id):
+ # They have no build_id but if they are
+ # CustomImagePackage that's expected
+ try:
+ CustomImagePackage.objects.get(pk=package['id'])
+ except CustomImagePackage.DoesNotExist:
+ cnt_err.append(package['id'])
+
+ self.assertEqual(len(cnt_err),
+ 0,
+ msg="Errors for package id: %s they have no build"
+ "associated with them" % cnt_err)
+
+ # Check the validity of package recipe_id
+ # TC must be added in test run
+ def test_Package_Recipe_Id(self):
+ packages = Package.objects.filter(
+ ~Q(size=-1)).values('id', 'recipe_id')
+ cnt_err = []
+ for package in packages:
+ recipe_id = Recipe.objects.filter(
+ id=package['recipe_id']).values('id')
+ if (not recipe_id):
+ cnt_err.append(package['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for package id: %s' % cnt_err)
+
+ # Check if package installed_size field is not null
+ # TC must be aded in test run
+ def test_Package_Installed_Size_Not_NULL(self):
+ packages = Package.objects.filter(
+ installed_size__isnull=True).values('id')
+ cnt_err = []
+ for package in packages:
+ cnt_err.append(package['id'])
+ self.assertEqual(
+ len(cnt_err), 0, msg='Errors for package id: %s' % cnt_err)
+
+ def test_custom_packages_generated(self):
+ """Test if there is a corresponding generated CustomImagePackage"""
+ """ for each of the packages generated"""
+ missing_packages = []
+
+ for package in Package.objects.all():
+ try:
+ CustomImagePackage.objects.get(name=package.name)
+ except CustomImagePackage.DoesNotExist:
+ missing_packages.append(package.name)
+
+ self.assertEqual(len(missing_packages), 0,
+ "Some package were created from the build but their"
+ " corresponding CustomImagePackage was not found")
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/pointercal b/import-layers/yocto-poky/bitbake/lib/toaster/tests/db/__init__.py
index e69de29bb..e69de29bb 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/pointercal
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/db/__init__.py
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/db/test_db.py b/import-layers/yocto-poky/bitbake/lib/toaster/tests/db/test_db.py
new file mode 100644
index 000000000..a0f5f6ec0
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/db/test_db.py
@@ -0,0 +1,55 @@
+# The MIT License (MIT)
+#
+# Copyright (c) 2016 Damien Lespiau
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+import sys
+
+try:
+ from StringIO import StringIO
+except ImportError:
+ from io import StringIO
+
+from contextlib import contextmanager
+
+from django.core import management
+from django.test import TestCase
+
+
+@contextmanager
+def capture(command, *args, **kwargs):
+ out, sys.stdout = sys.stdout, StringIO()
+ command(*args, **kwargs)
+ sys.stdout.seek(0)
+ yield sys.stdout.read()
+ sys.stdout = out
+
+
+def makemigrations():
+ management.call_command('makemigrations')
+
+
+class MigrationTest(TestCase):
+
+ def testPendingMigration(self):
+ """Make sure there's no pending migration."""
+
+ with capture(makemigrations) as output:
+ self.assertEqual(output, "No changes detected\n")
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/tests/functional/README b/import-layers/yocto-poky/bitbake/lib/toaster/tests/functional/README
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/tests/functional/README
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/api.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/api.py
index 42901f750..ae1f15077 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/api.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/api.py
@@ -16,14 +16,32 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# Please run flake8 on this file before sending patches
-# Temporary home for the UI's misc API
+import re
+import logging
+from collections import Counter
-from orm.models import Project, ProjectTarget, Build
+from orm.models import Project, ProjectTarget, Build, Layer_Version
+from orm.models import LayerVersionDependency, LayerSource, ProjectLayer
+from orm.models import Recipe, CustomImageRecipe, CustomImagePackage
+from orm.models import Layer, Target, Package, Package_Dependency
+from orm.models import ProjectVariable
from bldcontrol.models import BuildRequest
from bldcontrol import bbcontroller
+
from django.http import HttpResponse, JsonResponse
from django.views.generic import View
+from django.core.urlresolvers import reverse
+from django.db.models import Q, F
+from django.db import Error
+from toastergui.templatetags.projecttags import filtered_filesizeformat
+
+logger = logging.getLogger("toaster")
+
+
+def error_response(error):
+ return JsonResponse({"error": error})
class XhrBuildRequest(View):
@@ -31,6 +49,28 @@ class XhrBuildRequest(View):
def get(self, request, *args, **kwargs):
return HttpResponse()
+ @staticmethod
+ def cancel_build(br):
+ """Cancel a build request"""
+ try:
+ bbctrl = bbcontroller.BitbakeController(br.environment)
+ bbctrl.forceShutDown()
+ except:
+ # We catch a bunch of exceptions here because
+ # this is where the server has not had time to start up
+ # and the build request or build is in transit between
+ # processes.
+ # We can safely just set the build as cancelled
+ # already as it never got started
+ build = br.build
+ build.outcome = Build.CANCELLED
+ build.save()
+
+ # We now hand over to the buildinfohelper to update the
+ # build state once we've finished cancelling
+ br.state = BuildRequest.REQ_CANCELLING
+ br.save()
+
def post(self, request, *args, **kwargs):
"""
Build control
@@ -56,55 +96,782 @@ class XhrBuildRequest(View):
for i in request.POST['buildCancel'].strip().split(" "):
try:
br = BuildRequest.objects.get(project=project, pk=i)
-
- try:
- bbctrl = bbcontroller.BitbakeController(br.environment)
- bbctrl.forceShutDown()
- except:
- # We catch a bunch of exceptions here because
- # this is where the server has not had time to start up
- # and the build request or build is in transit between
- # processes.
- # We can safely just set the build as cancelled
- # already as it never got started
- build = br.build
- build.outcome = Build.CANCELLED
- build.save()
-
- # We now hand over to the buildinfohelper to update the
- # build state once we've finished cancelling
- br.state = BuildRequest.REQ_CANCELLING
- br.save()
-
+ self.cancel_build(br)
except BuildRequest.DoesNotExist:
- return JsonResponse({'error':'No such build id %s' % i})
+ return error_response('No such build request id %s' % i)
- return JsonResponse({'error': 'ok'})
+ return error_response('ok')
if 'buildDelete' in request.POST:
for i in request.POST['buildDelete'].strip().split(" "):
try:
- BuildRequest.objects.select_for_update().get(project = project, pk = i, state__lte = BuildRequest.REQ_DELETED).delete()
+ BuildRequest.objects.select_for_update().get(
+ project=project,
+ pk=i,
+ state__lte=BuildRequest.REQ_DELETED).delete()
+
except BuildRequest.DoesNotExist:
pass
- return JsonResponse({'error': 'ok' })
+ return error_response("ok")
if 'targets' in request.POST:
- ProjectTarget.objects.filter(project = project).delete()
+ ProjectTarget.objects.filter(project=project).delete()
s = str(request.POST['targets'])
- for t in s.translate(None, ";%|\"").split(" "):
+ for t in re.sub(r'[;%|"]', '', s).split(" "):
if ":" in t:
target, task = t.split(":")
else:
target = t
task = ""
- ProjectTarget.objects.create(project = project,
- target = target,
- task = task)
+ ProjectTarget.objects.create(project=project,
+ target=target,
+ task=task)
project.schedule_build()
- return JsonResponse({'error': 'ok' })
+ return error_response('ok')
response = HttpResponse()
response.status_code = 500
return response
+
+
+class XhrLayer(View):
+ """ Get and Update Layer information """
+
+ def post(self, request, *args, **kwargs):
+ """
+ Update a layer
+
+ Entry point: /xhr_layer/<layerversion_id>
+ Method: POST
+
+ Args:
+ vcs_url, dirpath, commit, up_branch, summary, description,
+ local_source_dir
+
+ add_dep = append a layerversion_id as a dependency
+ rm_dep = remove a layerversion_id as a depedency
+ Returns:
+ {"error": "ok"}
+ or
+ {"error": <error message>}
+ """
+
+ try:
+ # We currently only allow Imported layers to be edited
+ layer_version = Layer_Version.objects.get(
+ id=kwargs['layerversion_id'],
+ project=kwargs['pid'],
+ layer_source=LayerSource.TYPE_IMPORTED)
+
+ except Layer_Version.DoesNotExist:
+ return error_response("Cannot find imported layer to update")
+
+ if "vcs_url" in request.POST:
+ layer_version.layer.vcs_url = request.POST["vcs_url"]
+ if "dirpath" in request.POST:
+ layer_version.dirpath = request.POST["dirpath"]
+ if "commit" in request.POST:
+ layer_version.commit = request.POST["commit"]
+ layer_version.branch = request.POST["commit"]
+ if "summary" in request.POST:
+ layer_version.layer.summary = request.POST["summary"]
+ if "description" in request.POST:
+ layer_version.layer.description = request.POST["description"]
+ if "local_source_dir" in request.POST:
+ layer_version.layer.local_source_dir = \
+ request.POST["local_source_dir"]
+
+ if "add_dep" in request.POST:
+ lvd = LayerVersionDependency(
+ layer_version=layer_version,
+ depends_on_id=request.POST["add_dep"])
+ lvd.save()
+
+ if "rm_dep" in request.POST:
+ rm_dep = LayerVersionDependency.objects.get(
+ layer_version=layer_version,
+ depends_on_id=request.POST["rm_dep"])
+ rm_dep.delete()
+
+ try:
+ layer_version.layer.save()
+ layer_version.save()
+ except Exception as e:
+ return error_response("Could not update layer version entry: %s"
+ % e)
+
+ return JsonResponse({"error": "ok"})
+
+ def delete(self, request, *args, **kwargs):
+ try:
+ # We currently only allow Imported layers to be deleted
+ layer_version = Layer_Version.objects.get(
+ id=kwargs['layerversion_id'],
+ project=kwargs['pid'],
+ layer_source=LayerSource.TYPE_IMPORTED)
+ except Layer_Version.DoesNotExist:
+ return error_response("Cannot find imported layer to delete")
+
+ try:
+ ProjectLayer.objects.get(project=kwargs['pid'],
+ layercommit=layer_version).delete()
+ except ProjectLayer.DoesNotExist:
+ pass
+
+ layer_version.layer.delete()
+ layer_version.delete()
+
+ return JsonResponse({
+ "error": "ok",
+ "gotoUrl": reverse('projectlayers', args=(kwargs['pid'],))
+ })
+
+
+class XhrCustomRecipe(View):
+ """ Create a custom image recipe """
+
+ def post(self, request, *args, **kwargs):
+ """
+ Custom image recipe REST API
+
+ Entry point: /xhr_customrecipe/
+ Method: POST
+
+ Args:
+ name: name of custom recipe to create
+ project: target project id of orm.models.Project
+ base: base recipe id of orm.models.Recipe
+
+ Returns:
+ {"error": "ok",
+ "url": <url of the created recipe>}
+ or
+ {"error": <error message>}
+ """
+ # check if request has all required parameters
+ for param in ('name', 'project', 'base'):
+ if param not in request.POST:
+ return error_response("Missing parameter '%s'" % param)
+
+ # get project and baserecipe objects
+ params = {}
+ for name, model in [("project", Project),
+ ("base", Recipe)]:
+ value = request.POST[name]
+ try:
+ params[name] = model.objects.get(id=value)
+ except model.DoesNotExist:
+ return error_response("Invalid %s id %s" % (name, value))
+
+ # create custom recipe
+ try:
+
+ # Only allowed chars in name are a-z, 0-9 and -
+ if re.search(r'[^a-z|0-9|-]', request.POST["name"]):
+ return error_response("invalid-name")
+
+ custom_images = CustomImageRecipe.objects.all()
+
+ # Are there any recipes with this name already in our project?
+ existing_image_recipes_in_project = custom_images.filter(
+ name=request.POST["name"], project=params["project"])
+
+ if existing_image_recipes_in_project.count() > 0:
+ return error_response("image-already-exists")
+
+ # Are there any recipes with this name which aren't custom
+ # image recipes?
+ custom_image_ids = custom_images.values_list('id', flat=True)
+ existing_non_image_recipes = Recipe.objects.filter(
+ Q(name=request.POST["name"]) & ~Q(pk__in=custom_image_ids)
+ )
+
+ if existing_non_image_recipes.count() > 0:
+ return error_response("recipe-already-exists")
+
+ # create layer 'Custom layer' and verion if needed
+ layer = Layer.objects.get_or_create(
+ name=CustomImageRecipe.LAYER_NAME,
+ summary="Layer for custom recipes",
+ vcs_url="file:///toaster_created_layer")[0]
+
+ # Check if we have a layer version already
+ # We don't use get_or_create here because the dirpath will change
+ # and is a required field
+ lver = Layer_Version.objects.filter(Q(project=params['project']) &
+ Q(layer=layer) &
+ Q(build=None)).last()
+ if lver is None:
+ lver, created = Layer_Version.objects.get_or_create(
+ project=params['project'],
+ layer=layer,
+ dirpath="toaster_created_layer")
+
+ # Add a dependency on our layer to the base recipe's layer
+ LayerVersionDependency.objects.get_or_create(
+ layer_version=lver,
+ depends_on=params["base"].layer_version)
+
+ # Add it to our current project if needed
+ ProjectLayer.objects.get_or_create(project=params['project'],
+ layercommit=lver,
+ optional=False)
+
+ # Create the actual recipe
+ recipe, created = CustomImageRecipe.objects.get_or_create(
+ name=request.POST["name"],
+ base_recipe=params["base"],
+ project=params["project"],
+ layer_version=lver,
+ is_image=True)
+
+ # If we created the object then setup these fields. They may get
+ # overwritten later on and cause the get_or_create to create a
+ # duplicate if they've changed.
+ if created:
+ recipe.file_path = request.POST["name"]
+ recipe.license = "MIT"
+ recipe.version = "0.1"
+ recipe.save()
+
+ except Error as err:
+ return error_response("Can't create custom recipe: %s" % err)
+
+ # Find the package list from the last build of this recipe/target
+ target = Target.objects.filter(Q(build__outcome=Build.SUCCEEDED) &
+ Q(build__project=params['project']) &
+ (Q(target=params['base'].name) |
+ Q(target=recipe.name))).last()
+ if target:
+ # Copy in every package
+ # We don't want these packages to be linked to anything because
+ # that underlying data may change e.g. delete a build
+ for tpackage in target.target_installed_package_set.all():
+ try:
+ built_package = tpackage.package
+ # The package had no recipe information so is a ghost
+ # package skip it
+ if built_package.recipe is None:
+ continue
+
+ config_package = CustomImagePackage.objects.get(
+ name=built_package.name)
+
+ recipe.includes_set.add(config_package)
+ except Exception as e:
+ logger.warning("Error adding package %s %s" %
+ (tpackage.package.name, e))
+ pass
+
+ return JsonResponse(
+ {"error": "ok",
+ "packages": recipe.get_all_packages().count(),
+ "url": reverse('customrecipe', args=(params['project'].pk,
+ recipe.id))})
+
+
+class XhrCustomRecipeId(View):
+ """
+ Set of ReST API processors working with recipe id.
+
+ Entry point: /xhr_customrecipe/<recipe_id>
+
+ Methods:
+ GET - Get details of custom image recipe
+ DELETE - Delete custom image recipe
+
+ Returns:
+ GET:
+ {"error": "ok",
+ "info": dictionary of field name -> value pairs
+ of the CustomImageRecipe model}
+ DELETE:
+ {"error": "ok"}
+ or
+ {"error": <error message>}
+ """
+ @staticmethod
+ def _get_ci_recipe(recipe_id):
+ """ Get Custom Image recipe or return an error response"""
+ try:
+ custom_recipe = \
+ CustomImageRecipe.objects.get(pk=recipe_id)
+ return custom_recipe, None
+
+ except CustomImageRecipe.DoesNotExist:
+ return None, error_response("Custom recipe with id=%s "
+ "not found" % recipe_id)
+
+ def get(self, request, *args, **kwargs):
+ custom_recipe, error = self._get_ci_recipe(kwargs['recipe_id'])
+ if error:
+ return error
+
+ if request.method == 'GET':
+ info = {"id": custom_recipe.id,
+ "name": custom_recipe.name,
+ "base_recipe_id": custom_recipe.base_recipe.id,
+ "project_id": custom_recipe.project.id}
+
+ return JsonResponse({"error": "ok", "info": info})
+
+ def delete(self, request, *args, **kwargs):
+ custom_recipe, error = self._get_ci_recipe(kwargs['recipe_id'])
+ if error:
+ return error
+
+ project = custom_recipe.project
+
+ custom_recipe.delete()
+ return JsonResponse({"error": "ok",
+ "gotoUrl": reverse("projectcustomimages",
+ args=(project.pk,))})
+
+
+class XhrCustomRecipePackages(View):
+ """
+ ReST API to add/remove packages to/from custom recipe.
+
+ Entry point: /xhr_customrecipe/<recipe_id>/packages/<package_id>
+ Methods:
+ PUT - Add package to the recipe
+ DELETE - Delete package from the recipe
+ GET - Get package information
+
+ Returns:
+ {"error": "ok"}
+ or
+ {"error": <error message>}
+ """
+ @staticmethod
+ def _get_package(package_id):
+ try:
+ package = CustomImagePackage.objects.get(pk=package_id)
+ return package, None
+ except Package.DoesNotExist:
+ return None, error_response("Package with id=%s "
+ "not found" % package_id)
+
+ def _traverse_dependents(self, next_package_id,
+ rev_deps, all_current_packages, tree_level=0):
+ """
+ Recurse through reverse dependency tree for next_package_id.
+ Limit the reverse dependency search to packages not already scanned,
+ that is, not already in rev_deps.
+ Limit the scan to a depth (tree_level) not exceeding the count of
+ all packages in the custom image, and if that depth is exceeded
+ return False, pop out of the recursion, and write a warning
+ to the log, but this is unlikely, suggesting a dependency loop
+ not caught by bitbake.
+ On return, the input/output arg rev_deps is appended with queryset
+ dictionary elements, annotated for use in the customimage template.
+ The list has unsorted, but unique elements.
+ """
+ max_dependency_tree_depth = all_current_packages.count()
+ if tree_level >= max_dependency_tree_depth:
+ logger.warning(
+ "The number of reverse dependencies "
+ "for this package exceeds " + max_dependency_tree_depth +
+ " and the remaining reverse dependencies will not be removed")
+ return True
+
+ package = CustomImagePackage.objects.get(id=next_package_id)
+ dependents = \
+ package.package_dependencies_target.annotate(
+ name=F('package__name'),
+ pk=F('package__pk'),
+ size=F('package__size'),
+ ).values("name", "pk", "size").exclude(
+ ~Q(pk__in=all_current_packages)
+ )
+
+ for pkg in dependents:
+ if pkg in rev_deps:
+ # already seen, skip dependent search
+ continue
+
+ rev_deps.append(pkg)
+ if (self._traverse_dependents(pkg["pk"], rev_deps,
+ all_current_packages,
+ tree_level+1)):
+ return True
+
+ return False
+
+ def _get_all_dependents(self, package_id, all_current_packages):
+ """
+ Returns sorted list of recursive reverse dependencies for package_id,
+ as a list of dictionary items, by recursing through dependency
+ relationships.
+ """
+ rev_deps = []
+ self._traverse_dependents(package_id, rev_deps, all_current_packages)
+ rev_deps = sorted(rev_deps, key=lambda x: x["name"])
+ return rev_deps
+
+ def get(self, request, *args, **kwargs):
+ recipe, error = XhrCustomRecipeId._get_ci_recipe(
+ kwargs['recipe_id'])
+ if error:
+ return error
+
+ # If no package_id then list all the current packages
+ if not kwargs['package_id']:
+ total_size = 0
+ packages = recipe.get_all_packages().values("id",
+ "name",
+ "version",
+ "size")
+ for package in packages:
+ package['size_formatted'] = \
+ filtered_filesizeformat(package['size'])
+ total_size += package['size']
+
+ return JsonResponse({"error": "ok",
+ "packages": list(packages),
+ "total": len(packages),
+ "total_size": total_size,
+ "total_size_formatted":
+ filtered_filesizeformat(total_size)})
+ else:
+ package, error = XhrCustomRecipePackages._get_package(
+ kwargs['package_id'])
+ if error:
+ return error
+
+ all_current_packages = recipe.get_all_packages()
+
+ # Dependencies for package which aren't satisfied by the
+ # current packages in the custom image recipe
+ deps = package.package_dependencies_source.for_target_or_none(
+ recipe.name)['packages'].annotate(
+ name=F('depends_on__name'),
+ pk=F('depends_on__pk'),
+ size=F('depends_on__size'),
+ ).values("name", "pk", "size").filter(
+ # There are two depends types we don't know why
+ (Q(dep_type=Package_Dependency.TYPE_TRDEPENDS) |
+ Q(dep_type=Package_Dependency.TYPE_RDEPENDS)) &
+ ~Q(pk__in=all_current_packages)
+ )
+
+ # Reverse dependencies which are needed by packages that are
+ # in the image. Recursive search providing all dependents,
+ # not just immediate dependents.
+ reverse_deps = self._get_all_dependents(kwargs['package_id'],
+ all_current_packages)
+ total_size_deps = 0
+ total_size_reverse_deps = 0
+
+ for dep in deps:
+ dep['size_formatted'] = \
+ filtered_filesizeformat(dep['size'])
+ total_size_deps += dep['size']
+
+ for dep in reverse_deps:
+ dep['size_formatted'] = \
+ filtered_filesizeformat(dep['size'])
+ total_size_reverse_deps += dep['size']
+
+ return JsonResponse(
+ {"error": "ok",
+ "id": package.pk,
+ "name": package.name,
+ "version": package.version,
+ "unsatisfied_dependencies": list(deps),
+ "unsatisfied_dependencies_size": total_size_deps,
+ "unsatisfied_dependencies_size_formatted":
+ filtered_filesizeformat(total_size_deps),
+ "reverse_dependencies": list(reverse_deps),
+ "reverse_dependencies_size": total_size_reverse_deps,
+ "reverse_dependencies_size_formatted":
+ filtered_filesizeformat(total_size_reverse_deps)})
+
+ def put(self, request, *args, **kwargs):
+ recipe, error = XhrCustomRecipeId._get_ci_recipe(kwargs['recipe_id'])
+ package, error = self._get_package(kwargs['package_id'])
+ if error:
+ return error
+
+ included_packages = recipe.includes_set.values_list('pk',
+ flat=True)
+
+ # If we're adding back a package which used to be included in this
+ # image all we need to do is remove it from the excludes
+ if package.pk in included_packages:
+ try:
+ recipe.excludes_set.remove(package)
+ return {"error": "ok"}
+ except Package.DoesNotExist:
+ return error_response("Package %s not found in excludes"
+ " but was in included list" %
+ package.name)
+
+ else:
+ recipe.appends_set.add(package)
+ # Make sure that package is not in the excludes set
+ try:
+ recipe.excludes_set.remove(package)
+ except:
+ pass
+ # Add the dependencies we think will be added to the recipe
+ # as a result of appending this package.
+ # TODO this should recurse down the entire deps tree
+ for dep in package.package_dependencies_source.all_depends():
+ try:
+ cust_package = CustomImagePackage.objects.get(
+ name=dep.depends_on.name)
+
+ recipe.includes_set.add(cust_package)
+ try:
+ # When adding the pre-requisite package, make
+ # sure it's not in the excluded list from a
+ # prior removal.
+ recipe.excludes_set.remove(cust_package)
+ except package.DoesNotExist:
+ # Don't care if the package had never been excluded
+ pass
+ except:
+ logger.warning("Could not add package's suggested"
+ "dependencies to the list")
+ return JsonResponse({"error": "ok"})
+
+ def delete(self, request, *args, **kwargs):
+ recipe, error = XhrCustomRecipeId._get_ci_recipe(kwargs['recipe_id'])
+ package, error = self._get_package(kwargs['package_id'])
+ if error:
+ return error
+
+ try:
+ included_packages = recipe.includes_set.values_list('pk',
+ flat=True)
+ # If we're deleting a package which is included we need to
+ # Add it to the excludes list.
+ if package.pk in included_packages:
+ recipe.excludes_set.add(package)
+ else:
+ recipe.appends_set.remove(package)
+ all_current_packages = recipe.get_all_packages()
+
+ reverse_deps_dictlist = self._get_all_dependents(
+ package.pk,
+ all_current_packages)
+
+ ids = [entry['pk'] for entry in reverse_deps_dictlist]
+ reverse_deps = CustomImagePackage.objects.filter(id__in=ids)
+ for r in reverse_deps:
+ try:
+ if r.id in included_packages:
+ recipe.excludes_set.add(r)
+ else:
+ recipe.appends_set.remove(r)
+ except:
+ pass
+
+ return JsonResponse({"error": "ok"})
+ except CustomImageRecipe.DoesNotExist:
+ return error_response("Tried to remove package that wasn't"
+ " present")
+
+
+class XhrProject(View):
+ """ Create, delete or edit a project
+
+ Entry point: /xhr_project/<project_id>
+ """
+ def post(self, request, *args, **kwargs):
+ """
+ Edit project control
+
+ Args:
+ layerAdd = layer_version_id layer_version_id ...
+ layerDel = layer_version_id layer_version_id ...
+ projectName = new_project_name
+ machineName = new_machine_name
+
+ Returns:
+ {"error": "ok"}
+ or
+ {"error": <error message>}
+ """
+ try:
+ prj = Project.objects.get(pk=kwargs['project_id'])
+ except Project.DoesNotExist:
+ return error_response("No such project")
+
+ # Add layers
+ if 'layerAdd' in request.POST and len(request.POST['layerAdd']) > 0:
+ for layer_version_id in request.POST['layerAdd'].split(','):
+ try:
+ lv = Layer_Version.objects.get(pk=int(layer_version_id))
+ ProjectLayer.objects.get_or_create(project=prj,
+ layercommit=lv)
+ except Layer_Version.DoesNotExist:
+ return error_response("Layer version %s asked to add "
+ "doesn't exist" % layer_version_id)
+
+ # Remove layers
+ if 'layerDel' in request.POST and len(request.POST['layerDel']) > 0:
+ layer_version_ids = request.POST['layerDel'].split(',')
+ ProjectLayer.objects.filter(
+ project=prj,
+ layercommit_id__in=layer_version_ids).delete()
+
+ # Project name change
+ if 'projectName' in request.POST:
+ prj.name = request.POST['projectName']
+ prj.save()
+
+ # Machine name change
+ if 'machineName' in request.POST:
+ machinevar = prj.projectvariable_set.get(name="MACHINE")
+ machinevar.value = request.POST['machineName']
+ machinevar.save()
+
+ return JsonResponse({"error": "ok"})
+
+ def get(self, request, *args, **kwargs):
+ """
+ Returns:
+ json object representing the current project
+ or:
+ {"error": <error message>}
+ """
+
+ try:
+ project = Project.objects.get(pk=kwargs['project_id'])
+ except Project.DoesNotExist:
+ return error_response("Project %s does not exist" %
+ kwargs['project_id'])
+
+ # Create the frequently built targets list
+
+ freqtargets = Counter(Target.objects.filter(
+ Q(build__project=project),
+ ~Q(build__outcome=Build.IN_PROGRESS)
+ ).order_by("target").values_list("target", flat=True))
+
+ freqtargets = freqtargets.most_common(5)
+
+ # We now have the targets in order of frequency but if there are two
+ # with the same frequency then we need to make sure those are in
+ # alphabetical order without losing the frequency ordering
+
+ tmp = []
+ switch = None
+ for i, freqtartget in enumerate(freqtargets):
+ target, count = freqtartget
+ try:
+ target_next, count_next = freqtargets[i+1]
+ if count == count_next and target > target_next:
+ switch = target
+ continue
+ except IndexError:
+ pass
+
+ tmp.append(target)
+
+ if switch:
+ tmp.append(switch)
+ switch = None
+
+ freqtargets = tmp
+
+ layers = []
+ for layer in project.projectlayer_set.all():
+ layers.append({
+ "id": layer.layercommit.pk,
+ "name": layer.layercommit.layer.name,
+ "vcs_url": layer.layercommit.layer.vcs_url,
+ "local_source_dir": layer.layercommit.layer.local_source_dir,
+ "vcs_reference": layer.layercommit.get_vcs_reference(),
+ "url": layer.layercommit.layer.layer_index_url,
+ "layerdetailurl": layer.layercommit.get_detailspage_url(
+ project.pk),
+ "layersource": layer.layercommit.layer_source
+ })
+
+ data = {
+ "name": project.name,
+ "layers": layers,
+ "freqtargets": freqtargets,
+ }
+
+ if project.release is not None:
+ data['release'] = {
+ "id": project.release.pk,
+ "name": project.release.name,
+ "description": project.release.description
+ }
+
+ try:
+ data["machine"] = {"name":
+ project.projectvariable_set.get(
+ name="MACHINE").value}
+ except ProjectVariable.DoesNotExist:
+ data["machine"] = None
+ try:
+ data["distro"] = project.projectvariable_set.get(
+ name="DISTRO").value
+ except ProjectVariable.DoesNotExist:
+ data["distro"] = "-- not set yet"
+
+ data['error'] = "ok"
+
+ return JsonResponse(data)
+
+ def put(self, request, *args, **kwargs):
+ # TODO create new project api
+ return HttpResponse()
+
+ def delete(self, request, *args, **kwargs):
+ """Delete a project. Cancels any builds in progress"""
+ try:
+ project = Project.objects.get(pk=kwargs['project_id'])
+ # Cancel any builds in progress
+ for br in BuildRequest.objects.filter(
+ project=project,
+ state=BuildRequest.REQ_INPROGRESS):
+ XhrBuildRequest.cancel_build(br)
+
+ project.delete()
+
+ except Project.DoesNotExist:
+ return error_response("Project %s does not exist" %
+ kwargs['project_id'])
+
+ return JsonResponse({
+ "error": "ok",
+ "gotoUrl": reverse("all-projects", args=[])
+ })
+
+
+class XhrBuild(View):
+ """ Delete a build object
+
+ Entry point: /xhr_build/<build_id>
+ """
+ def delete(self, request, *args, **kwargs):
+ """
+ Delete build data
+
+ Args:
+ build_id = build_id
+
+ Returns:
+ {"error": "ok"}
+ or
+ {"error": <error message>}
+ """
+ try:
+ build = Build.objects.get(pk=kwargs['build_id'])
+ project = build.project
+ build.delete()
+ except Build.DoesNotExist:
+ return error_response("Build %s does not exist" %
+ kwargs['build_id'])
+ return JsonResponse({
+ "error": "ok",
+ "gotoUrl": reverse("projectbuilds", args=(project.pk,))
+ })
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/buildtables.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/buildtables.py
new file mode 100644
index 000000000..dd0a6900d
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/buildtables.py
@@ -0,0 +1,606 @@
+#
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+from orm.models import Build, Task, Target, Package
+from django.db.models import Q, Sum
+
+import toastergui.tables as tables
+from toastergui.widgets import ToasterTable
+from toastergui.tablefilter import TableFilter
+from toastergui.tablefilter import TableFilterActionToggle
+
+
+class BuildTablesMixin(ToasterTable):
+ def get_context_data(self, **kwargs):
+ # We need to be explicit about which superclass we're calling here
+ # Otherwise the MRO gets in a right mess
+ context = ToasterTable.get_context_data(self, **kwargs)
+ context['build'] = Build.objects.get(pk=kwargs['build_id'])
+ return context
+
+
+class BuiltPackagesTableBase(tables.PackagesTable):
+ """ Table to display all the packages built in a build """
+ def __init__(self, *args, **kwargs):
+ super(BuiltPackagesTableBase, self).__init__(*args, **kwargs)
+ self.title = "Packages built"
+ self.default_orderby = "name"
+
+ def setup_queryset(self, *args, **kwargs):
+ build = Build.objects.get(pk=kwargs['build_id'])
+ self.static_context_extra['build'] = build
+ self.static_context_extra['target_name'] = None
+ self.queryset = build.package_set.all().exclude(recipe=None)
+ self.queryset = self.queryset.order_by(self.default_orderby)
+
+ def setup_columns(self, *args, **kwargs):
+ super(BuiltPackagesTableBase, self).setup_columns(*args, **kwargs)
+
+ def pkg_link_template(val):
+ """ return the template used for the link with the val as the
+ element value i.e. inside the <a></a>"""
+
+ return ('''
+ <a href="
+ {%% url "package_built_detail" extra.build.pk data.pk %%}
+ ">%s</a>
+ ''' % val)
+
+ def recipe_link_template(val):
+ return ('''
+ {%% if data.recipe %%}
+ <a href="
+ {%% url "recipe" extra.build.pk data.recipe.pk %%}
+ ">%(value)s</a>
+ {%% else %%}
+ %(value)s
+ {%% endif %%}
+ ''' % {'value': val})
+
+ add_pkg_link_to = 'name'
+ add_recipe_link_to = 'recipe__name'
+
+ # Add the recipe and pkg build links to the required columns
+ for column in self.columns:
+ # Convert to template field style accessors
+ tmplv = column['field_name'].replace('__', '.')
+ tmplv = "{{data.%s}}" % tmplv
+
+ if column['field_name'] is add_pkg_link_to:
+ # Don't overwrite an existing template
+ if column['static_data_template']:
+ column['static_data_template'] =\
+ pkg_link_template(column['static_data_template'])
+ else:
+ column['static_data_template'] = pkg_link_template(tmplv)
+
+ column['static_data_name'] = column['field_name']
+
+ elif column['field_name'] is add_recipe_link_to:
+ # Don't overwrite an existing template
+ if column['static_data_template']:
+ column['static_data_template'] =\
+ recipe_link_template(column['static_data_template'])
+ else:
+ column['static_data_template'] =\
+ recipe_link_template(tmplv)
+ column['static_data_name'] = column['field_name']
+
+ self.add_column(title="Layer",
+ field_name="recipe__layer_version__layer__name",
+ hidden=True,
+ orderable=True)
+
+ layer_branch_template = '''
+ {%if not data.recipe.layer_version.layer.local_source_dir %}
+ <span class="text-muted">{{data.recipe.layer_version.branch}}</span>
+ {% else %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.recipe.layer_version.layer.name}} is not in a Git repository, so there is no branch associated with it"> </span>
+ {% endif %}
+ '''
+
+ self.add_column(title="Layer branch",
+ field_name="recipe__layer_version__branch",
+ hidden=True,
+ static_data_name="recipe__layer_version__branch",
+ static_data_template=layer_branch_template,
+ orderable=True)
+
+ git_rev_template = '''
+ {% if not data.recipe.layer_version.layer.local_source_dir %}
+ {% with vcs_ref=data.recipe.layer_version.commit %}
+ {% include 'snippets/gitrev_popover.html' %}
+ {% endwith %}
+ {% else %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.recipe.layer_version.layer.name}} is not in a Git repository, so there is no revision associated with it"> </span>
+ {% endif %}
+ '''
+
+ self.add_column(title="Layer commit",
+ static_data_name='vcs_ref',
+ static_data_template=git_rev_template,
+ hidden=True)
+
+
+class BuiltPackagesTable(BuildTablesMixin, BuiltPackagesTableBase):
+ """ Show all the packages built for the selected build """
+ def __init__(self, *args, **kwargs):
+ super(BuiltPackagesTable, self).__init__(*args, **kwargs)
+ self.title = "Packages built"
+ self.default_orderby = "name"
+
+ self.empty_state =\
+ ('<strong>No packages were built.</strong> How did this happen? '
+ 'Well, BitBake reuses as much stuff as possible. '
+ 'If all of the packages needed were already built and available '
+ 'in your build infrastructure, BitBake '
+ 'will not rebuild any of them. This might be slightly confusing, '
+ 'but it does make everything faster.')
+
+ def setup_columns(self, *args, **kwargs):
+ super(BuiltPackagesTable, self).setup_columns(*args, **kwargs)
+
+ def remove_dep_cols(columns):
+ for column in columns:
+ # We don't need these fields
+ if column['static_data_name'] in ['reverse_dependencies',
+ 'dependencies']:
+ continue
+
+ yield column
+
+ self.columns = list(remove_dep_cols(self.columns))
+
+
+class InstalledPackagesTable(BuildTablesMixin, BuiltPackagesTableBase):
+ """ Show all packages installed in an image """
+ def __init__(self, *args, **kwargs):
+ super(InstalledPackagesTable, self).__init__(*args, **kwargs)
+ self.title = "Packages Included"
+ self.default_orderby = "name"
+
+ def make_package_list(self, target):
+ # The database design means that you get the intermediate objects and
+ # not package objects like you'd really want so we get them here
+ pkgs = target.target_installed_package_set.values_list('package',
+ flat=True)
+ return Package.objects.filter(pk__in=pkgs)
+
+ def get_context_data(self, **kwargs):
+ context = super(InstalledPackagesTable,
+ self).get_context_data(**kwargs)
+
+ target = Target.objects.get(pk=kwargs['target_id'])
+ packages = self.make_package_list(target)
+
+ context['packages_sum'] = packages.aggregate(
+ Sum('installed_size'))['installed_size__sum']
+
+ context['target'] = target
+ return context
+
+ def setup_queryset(self, *args, **kwargs):
+ build = Build.objects.get(pk=kwargs['build_id'])
+ self.static_context_extra['build'] = build
+
+ target = Target.objects.get(pk=kwargs['target_id'])
+ # We send these separately because in the case of image details table
+ # we don't have a target just the recipe name as the target
+ self.static_context_extra['target_name'] = target.target
+ self.static_context_extra['target_id'] = target.pk
+
+ self.static_context_extra['add_links'] = True
+
+ self.queryset = self.make_package_list(target)
+ self.queryset = self.queryset.order_by(self.default_orderby)
+
+ def setup_columns(self, *args, **kwargs):
+ super(InstalledPackagesTable, self).setup_columns(**kwargs)
+ self.add_column(title="Installed size",
+ static_data_name="installed_size",
+ static_data_template="{% load projecttags %}"
+ "{{data.size|filtered_filesizeformat}}",
+ orderable=True,
+ hidden=True)
+
+ # Add the template to show installed name for installed packages
+ install_name_tmpl =\
+ ('<a href="{% url "package_included_detail" extra.build.pk'
+ ' extra.target_id data.pk %}">{{data.name}}</a>'
+ '{% if data.installed_name and data.installed_name !='
+ ' data.name %}'
+ '<span class="text-muted"> as {{data.installed_name}}</span>'
+ ' <span class="glyphicon glyphicon-question-sign get-help hover-help"'
+ ' title="{{data.name}} was renamed at packaging time and'
+ ' was installed in your image as {{data.installed_name}}'
+ '"></span>{% endif %} ')
+
+ for column in self.columns:
+ if column['static_data_name'] == 'name':
+ column['static_data_template'] = install_name_tmpl
+ break
+
+
+class BuiltRecipesTable(BuildTablesMixin):
+ """ Table to show the recipes that have been built in this build """
+
+ def __init__(self, *args, **kwargs):
+ super(BuiltRecipesTable, self).__init__(*args, **kwargs)
+ self.title = "Recipes built"
+ self.default_orderby = "name"
+
+ def setup_queryset(self, *args, **kwargs):
+ build = Build.objects.get(pk=kwargs['build_id'])
+ self.static_context_extra['build'] = build
+ self.queryset = build.get_recipes()
+ self.queryset = self.queryset.order_by(self.default_orderby)
+
+ def setup_columns(self, *args, **kwargs):
+ recipe_name_tmpl =\
+ '<a href="{% url "recipe" extra.build.pk data.pk %}">'\
+ '{{data.name}}'\
+ '</a>'
+
+ recipe_file_tmpl =\
+ '{{data.file_path}}'\
+ '{% if data.pathflags %}<i>({{data.pathflags}})</i>'\
+ '{% endif %}'
+
+ git_branch_template = '''
+ {% if data.layer_version.layer.local_source_dir %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.layer_version.layer.name}} is not in a Git repository, so there is no branch associated with it"> </span>
+ {% else %}
+ <span>{{data.layer_version.branch}}</span>
+ {% endif %}
+ '''
+
+ git_rev_template = '''
+ {% if data.layer_version.layer.local_source_dir %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.layer_version.layer.name}} is not in a Git repository, so there is no commit associated with it"> </span>
+ {% else %}
+ {% with vcs_ref=data.layer_version.commit %}
+ {% include 'snippets/gitrev_popover.html' %}
+ {% endwith %}
+ {% endif %}
+ '''
+
+ depends_on_tmpl = '''
+ {% with deps=data.r_dependencies_recipe.all %}
+ {% with count=deps|length %}
+ {% if count %}
+ <a class="btn btn-default" title="
+ <a href='{% url "recipe" extra.build.pk data.pk %}#dependencies'>
+ {{data.name}}</a> dependencies"
+ data-content="<ul class='list-unstyled'>
+ {% for dep in deps|dictsort:"depends_on.name"%}
+ <li><a href='{% url "recipe" extra.build.pk dep.depends_on.pk %}'>
+ {{dep.depends_on.name}}</a></li>
+ {% endfor %}
+ </ul>">
+ {{count}}
+ </a>
+ {% endif %}{% endwith %}{% endwith %}
+ '''
+
+ rev_depends_tmpl = '''
+ {% with revs=data.r_dependencies_depends.all %}
+ {% with count=revs|length %}
+ {% if count %}
+ <a class="btn btn-default"
+ title="
+ <a href='{% url "recipe" extra.build.pk data.pk %}#brought-in-by'>
+ {{data.name}}</a> reverse dependencies"
+ data-content="<ul class='list-unstyled'>
+ {% for dep in revs|dictsort:"recipe.name" %}
+ <li>
+ <a href='{% url "recipe" extra.build.pk dep.recipe.pk %}'>
+ {{dep.recipe.name}}
+ </a></li>
+ {% endfor %}
+ </ul>">
+ {{count}}
+ </a>
+ {% endif %}{% endwith %}{% endwith %}
+ '''
+
+ self.add_column(title="Recipe",
+ field_name="name",
+ static_data_name='name',
+ orderable=True,
+ hideable=False,
+ static_data_template=recipe_name_tmpl)
+
+ self.add_column(title="Version",
+ hideable=False,
+ field_name="version")
+
+ self.add_column(title="Dependencies",
+ static_data_name="dependencies",
+ static_data_template=depends_on_tmpl)
+
+ self.add_column(title="Reverse dependencies",
+ static_data_name="revdeps",
+ static_data_template=rev_depends_tmpl,
+ help_text='Recipe build-time reverse dependencies'
+ ' (i.e. the recipes that depend on this recipe)')
+
+ self.add_column(title="Recipe file",
+ field_name="file_path",
+ static_data_name="file_path",
+ static_data_template=recipe_file_tmpl,
+ hidden=True)
+
+ self.add_column(title="Section",
+ field_name="section",
+ orderable=True,
+ hidden=True)
+
+ self.add_column(title="License",
+ field_name="license",
+ help_text='Multiple license names separated by the'
+ ' pipe character indicates a choice between licenses.'
+ ' Multiple license names separated by the ampersand'
+ ' character indicates multiple licenses exist that'
+ ' cover different parts of the source',
+ orderable=True)
+
+ self.add_column(title="Layer",
+ field_name="layer_version__layer__name",
+ orderable=True)
+
+ self.add_column(title="Layer branch",
+ field_name="layer_version__branch",
+ static_data_name="layer_version__branch",
+ static_data_template=git_branch_template,
+ orderable=True,
+ hidden=True)
+
+ self.add_column(title="Layer commit",
+ static_data_name="commit",
+ static_data_template=git_rev_template,
+ hidden=True)
+
+
+class BuildTasksTable(BuildTablesMixin):
+ """ Table to show the tasks that run in this build """
+
+ def __init__(self, *args, **kwargs):
+ super(BuildTasksTable, self).__init__(*args, **kwargs)
+ self.title = "Tasks"
+ self.default_orderby = "order"
+
+ # Toggle these columns on off for Time/CPU usage/Disk I/O tables
+ self.toggle_columns = {}
+
+ def setup_queryset(self, *args, **kwargs):
+ build = Build.objects.get(pk=kwargs['build_id'])
+ self.static_context_extra['build'] = build
+ self.queryset = build.task_build.filter(~Q(order=None))
+ self.queryset = self.queryset.order_by(self.default_orderby)
+
+ def setup_filters(self, *args, **kwargs):
+ # Execution outcome types filter
+ executed_outcome = TableFilter(name="execution_outcome",
+ title="Filter Tasks by 'Executed")
+
+ exec_outcome_action_exec = TableFilterActionToggle(
+ "executed",
+ "Executed Tasks",
+ Q(task_executed=True))
+
+ exec_outcome_action_not_exec = TableFilterActionToggle(
+ "not_executed",
+ "Not Executed Tasks",
+ Q(task_executed=False))
+
+ executed_outcome.add_action(exec_outcome_action_exec)
+ executed_outcome.add_action(exec_outcome_action_not_exec)
+
+ # Task outcome types filter
+ task_outcome = TableFilter(name="task_outcome",
+ title="Filter Task by 'Outcome'")
+
+ for outcome_enum, title in Task.TASK_OUTCOME:
+ if outcome_enum is Task.OUTCOME_NA:
+ continue
+ action = TableFilterActionToggle(
+ title.replace(" ", "_").lower(),
+ "%s Tasks" % title,
+ Q(outcome=outcome_enum))
+
+ task_outcome.add_action(action)
+
+ # SSTATE outcome types filter
+ sstate_outcome = TableFilter(name="sstate_outcome",
+ title="Filter Task by 'Cache attempt'")
+
+ for sstate_result_enum, title in Task.SSTATE_RESULT:
+ action = TableFilterActionToggle(
+ title.replace(" ", "_").lower(),
+ "Tasks with '%s' attempts" % title,
+ Q(sstate_result=sstate_result_enum))
+
+ sstate_outcome.add_action(action)
+
+ self.add_filter(sstate_outcome)
+ self.add_filter(executed_outcome)
+ self.add_filter(task_outcome)
+
+ def setup_columns(self, *args, **kwargs):
+ self.toggle_columns['order'] = len(self.columns)
+
+ recipe_name_tmpl =\
+ '<a href="{% url "recipe" extra.build.pk data.recipe.pk %}">'\
+ '{{data.recipe.name}}'\
+ '</a>'
+
+ def task_link_tmpl(val):
+ return ('<a name="task-{{data.order}}"'
+ 'href="{%% url "task" extra.build.pk data.pk %%}">'
+ '%s'
+ '</a>') % str(val)
+
+ self.add_column(title="Order",
+ static_data_name="order",
+ static_data_template='{{data.order}}',
+ hideable=False,
+ orderable=True)
+
+ self.add_column(title="Task",
+ static_data_name="task_name",
+ static_data_template=task_link_tmpl(
+ "{{data.task_name}}"),
+ hideable=False,
+ orderable=True)
+
+ self.add_column(title="Recipe",
+ static_data_name='recipe__name',
+ static_data_template=recipe_name_tmpl,
+ hideable=False,
+ orderable=True)
+
+ self.add_column(title="Recipe version",
+ field_name='recipe__version',
+ hidden=True)
+
+ self.add_column(title="Executed",
+ static_data_name="task_executed",
+ static_data_template='{{data.get_executed_display}}',
+ filter_name='execution_outcome',
+ orderable=True)
+
+ self.static_context_extra['OUTCOME_FAILED'] = Task.OUTCOME_FAILED
+ outcome_tmpl = '{{data.outcome_text}}'
+ outcome_tmpl = ('%s '
+ '{%% if data.outcome = extra.OUTCOME_FAILED %%}'
+ '<a href="{%% url "build_artifact" extra.build.pk '
+ ' "tasklogfile" data.pk %%}">'
+ ' <span class="glyphicon glyphicon-download-alt'
+ ' get-help" title="Download task log file"></span>'
+ '</a> {%% endif %%}'
+ '<span class="glyphicon glyphicon-question-sign'
+ ' get-help hover-help" style="visibility: hidden;" '
+ 'title="{{data.get_outcome_help}}"></span>'
+ ) % outcome_tmpl
+
+ self.add_column(title="Outcome",
+ static_data_name="outcome",
+ static_data_template=outcome_tmpl,
+ filter_name="task_outcome",
+ orderable=True)
+
+ self.toggle_columns['sstate_result'] = len(self.columns)
+
+ self.add_column(title="Cache attempt",
+ static_data_name="sstate_result",
+ static_data_template='{{data.sstate_text}}',
+ filter_name="sstate_outcome",
+ orderable=True)
+
+ self.toggle_columns['elapsed_time'] = len(self.columns)
+
+ self.add_column(
+ title="Time (secs)",
+ static_data_name="elapsed_time",
+ static_data_template='{% load projecttags %}{% load humanize %}'
+ '{{data.elapsed_time|format_none_and_zero|floatformat:2}}',
+ orderable=True,
+ hidden=True)
+
+ self.toggle_columns['cpu_time_sys'] = len(self.columns)
+
+ self.add_column(
+ title="System CPU time (secs)",
+ static_data_name="cpu_time_system",
+ static_data_template='{% load projecttags %}{% load humanize %}'
+ '{{data.cpu_time_system|format_none_and_zero|floatformat:2}}',
+ hidden=True,
+ orderable=True)
+
+ self.toggle_columns['cpu_time_user'] = len(self.columns)
+
+ self.add_column(
+ title="User CPU time (secs)",
+ static_data_name="cpu_time_user",
+ static_data_template='{% load projecttags %}{% load humanize %}'
+ '{{data.cpu_time_user|format_none_and_zero|floatformat:2}}',
+ hidden=True,
+ orderable=True)
+
+ self.toggle_columns['disk_io'] = len(self.columns)
+
+ self.add_column(
+ title="Disk I/O (ms)",
+ static_data_name="disk_io",
+ static_data_template='{% load projecttags %}{% load humanize %}'
+ '{{data.disk_io|format_none_and_zero|filtered_filesizeformat}}',
+ hidden=True,
+ orderable=True)
+
+
+class BuildTimeTable(BuildTasksTable):
+ """ Same as tasks table but the Time column is default displayed"""
+
+ def __init__(self, *args, **kwargs):
+ super(BuildTimeTable, self).__init__(*args, **kwargs)
+ self.default_orderby = "-elapsed_time"
+
+ def setup_columns(self, *args, **kwargs):
+ super(BuildTimeTable, self).setup_columns(**kwargs)
+
+ self.columns[self.toggle_columns['order']]['hidden'] = True
+ self.columns[self.toggle_columns['sstate_result']]['hidden'] = True
+ self.columns[self.toggle_columns['elapsed_time']]['hidden'] = False
+
+
+class BuildCPUTimeTable(BuildTasksTable):
+ """ Same as tasks table but the CPU usage columns are default displayed"""
+
+ def __init__(self, *args, **kwargs):
+ super(BuildCPUTimeTable, self).__init__(*args, **kwargs)
+ self.default_orderby = "-cpu_time_system"
+
+ def setup_columns(self, *args, **kwargs):
+ super(BuildCPUTimeTable, self).setup_columns(**kwargs)
+
+ self.columns[self.toggle_columns['order']]['hidden'] = True
+ self.columns[self.toggle_columns['sstate_result']]['hidden'] = True
+ self.columns[self.toggle_columns['cpu_time_sys']]['hidden'] = False
+ self.columns[self.toggle_columns['cpu_time_user']]['hidden'] = False
+
+
+class BuildIOTable(BuildTasksTable):
+ """ Same as tasks table but the Disk IO column is default displayed"""
+
+ def __init__(self, *args, **kwargs):
+ super(BuildIOTable, self).__init__(*args, **kwargs)
+ self.default_orderby = "-disk_io"
+
+ def setup_columns(self, *args, **kwargs):
+ super(BuildIOTable, self).setup_columns(**kwargs)
+
+ self.columns[self.toggle_columns['order']]['hidden'] = True
+ self.columns[self.toggle_columns['sstate_result']]['hidden'] = True
+ self.columns[self.toggle_columns['disk_io']]['hidden'] = False
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml
index cf35be4be..4517ed176 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/fixtures/toastergui-unittest-data.xml
@@ -1,5 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
+ <object pk="1" model="orm.bitbakeversion">
+ <field type="CharField" name="name">v2.3</field>
+ <field type="GitURLField" name="giturl">git://git.openembedded.org/bitbake</field>
+ <field type="CharField" name="dirpath">b</field>
+ <field type="CharField" name="branch">a</field>
+ </object>
+ <object pk="1" model="orm.release">
+ <field type="CharField" name="name">master</field>
+ <field type="CharField" name="description">master project</field>
+ <field to="orm.bitbake_version" name="bitbake_version">1</field>
+ </object>
<object pk="1" model="orm.project">
<field type="CharField" name="name">a test project</field>
<field type="CharField" name="short_description"></field>
@@ -82,9 +93,8 @@
<field to="orm.build" name="build" rel="ManyToOneRel">1</field>
<field type="CharField" name="target">a image recipe</field>
<field type="CharField" name="task"><None></None></field>
- <field type="BooleanField" name="is_image">False</field>
- <field type="IntegerField" name="image_size">0</field>
- <field type="CharField" name="license_manifest_path"><None></None></field>
+ <field type="BooleanField" name="is_image">True</field>
+ <field type="IntegerField" name="image_size">290</field>
</object>
<object pk="2" model="orm.target">
<field to="orm.build" name="build" rel="ManyToOneRel">2</field>
@@ -118,9 +128,9 @@
</object>
<object pk="2" model="orm.package">
<field to="orm.build" name="build" rel="ManyToOneRel">1</field>
- <field to="orm.recipe" name="recipe" rel="ManyToOneRel">2</field>
+ <field to="orm.recipe" name="recipe" rel="ManyToOneRel">1</field>
<field type="CharField" name="name">f pkg</field>
- <field type="CharField" name="installed_name"></field>
+ <field type="CharField" name="installed_name">f</field>
<field type="CharField" name="version"></field>
<field type="CharField" name="revision"></field>
<field type="TextField" name="summary"></field>
@@ -196,8 +206,6 @@
<field to="orm.customimagerecipe" name="recipe_appends" rel="ManyToManyRel"><object pk="3"></object></field>
</object>
<object pk="1" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">z recipe</field>
<field type="CharField" name="version">5.2</field>
@@ -213,8 +221,6 @@
<field type="BooleanField" name="is_image">False</field>
</object>
<object pk="2" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">a recipe</field>
<field type="CharField" name="version">1.2</field>
@@ -230,8 +236,6 @@
<field type="BooleanField" name="is_image">False</field>
</object>
<object pk="3" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">a custom recipe</field>
<field type="CharField" name="version"></field>
@@ -247,8 +251,6 @@
<field type="BooleanField" name="is_image">False</field>
</object>
<object pk="4" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">a image recipe</field>
<field type="CharField" name="version">1.2</field>
@@ -264,8 +266,6 @@
<field type="BooleanField" name="is_image">True</field>
</object>
<object pk="5" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">z image recipe</field>
<field type="CharField" name="version">1.3</field>
@@ -281,8 +281,6 @@
<field type="BooleanField" name="is_image">True</field>
</object>
<object pk="6" model="orm.recipe">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">z custom recipe</field>
<field type="CharField" name="version"></field>
@@ -297,35 +295,34 @@
<field type="CharField" name="pathflags"></field>
<field type="BooleanField" name="is_image">False</field>
</object>
+ <!-- Added for an additional built recipe -->
+ <object pk="6" model="orm.recipe">
+ <field type="CharField" name="name">g recipe</field>
+ <field type="CharField" name="version">1.2.3</field>
+ <field to="orm.layer_version" name="layer_version" rel="ManyToOneRel">3</field>
+ <field type="CharField" name="license">g license</field>
+ <field type="FilePathField" name="file_path">/g</field>
+ <field type="BooleanField" name="is_image">False</field>
+ </object>
+
<object pk="1" model="orm.machine">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field to="orm.layer_version" name="layer_version" rel="ManyToOneRel">1</field>
<field type="CharField" name="name">a machine</field>
<field type="CharField" name="description">a machine</field>
</object>
<object pk="2" model="orm.machine">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field to="orm.layer_version" name="layer_version" rel="ManyToOneRel">2</field>
<field type="CharField" name="name">z machine</field>
<field type="CharField" name="description">z machine</field>
</object>
<object pk="3" model="orm.machine">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field to="orm.layer_version" name="layer_version" rel="ManyToOneRel">1</field>
<field type="CharField" name="name">g machine</field>
<field type="CharField" name="description">g machine</field>
</object>
- <object pk="1" model="orm.layersource">
- <field type="CharField" name="name">local</field>
- <field type="IntegerField" name="sourcetype">1</field>
- <field type="CharField" name="apiurl"></field>
- </object>
<object pk="1" model="orm.bitbakeversion">
<field type="CharField" name="name">test bbv</field>
<field type="CharField" name="giturl">/tmp/</field>
@@ -346,53 +343,24 @@
<field type="CharField" name="branch_name">master</field>
<field type="TextField" name="helptext"><None></None></field>
</object>
- <object pk="1" model="orm.releaselayersourcepriority">
- <field to="orm.release" name="release" rel="ManyToOneRel">1</field>
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="priority">0</field>
- </object>
- <object pk="1" model="orm.branch">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
- <field type="DateTimeField" name="up_date"><None></None></field>
- <field type="CharField" name="name">master</field>
- <field type="CharField" name="short_description"></field>
- </object>
<object pk="1" model="orm.layer">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel"><None></None></field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">a layer</field>
- <field type="CharField" name="layer_index_url"></field>
<field type="CharField" name="vcs_url">/tmp/</field>
- <field type="CharField" name="vcs_web_url"><None></None></field>
- <field type="CharField" name="vcs_web_tree_base_url"><None></None></field>
- <field type="CharField" name="vcs_web_file_base_url"><None></None></field>
- <field type="TextField" name="summary"><None></None></field>
- <field type="TextField" name="description"><None></None></field>
</object>
<object pk="2" model="orm.layer">
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
<field type="CharField" name="name">z layer</field>
<field type="CharField" name="layer_index_url"></field>
<field type="CharField" name="vcs_url">git://two/</field>
- <field type="CharField" name="vcs_web_url"><None></None></field>
- <field type="CharField" name="vcs_web_tree_base_url"><None></None></field>
- <field type="CharField" name="vcs_web_file_base_url"><None></None></field>
- <field type="TextField" name="summary"><None></None></field>
- <field type="TextField" name="description"><None></None></field>
</object>
<object pk="1" model="orm.layer_version">
- <field to="orm.build" name="build" rel="ManyToOneRel"><None></None></field>
+ <field to="orm.build" name="build" rel="ManyToOneRel">1</field>
<field to="orm.layer" name="layer" rel="ManyToOneRel">1</field>
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
- <field to="orm.branch" name="up_branch" rel="ManyToOneRel">1</field>
- <field type="CharField" name="branch"></field>
- <field type="CharField" name="commit">master</field>
+ <field to="orm.release" name="release" rel="ManyToOneRel">1</field>
+ <field type="CharField" name="branch">master</field>
+ <field type="CharField" name="commit">abcdef123</field>
<field type="CharField" name="dirpath">/tmp/</field>
<field type="IntegerField" name="priority">0</field>
<field type="FilePathField" name="local_path">/</field>
@@ -401,12 +369,22 @@
<object pk="2" model="orm.layer_version">
<field to="orm.build" name="build" rel="ManyToOneRel"><None></None></field>
<field to="orm.layer" name="layer" rel="ManyToOneRel">2</field>
- <field to="orm.layersource" name="layer_source" rel="ManyToOneRel">1</field>
- <field type="IntegerField" name="up_id"><None></None></field>
<field type="DateTimeField" name="up_date"><None></None></field>
- <field to="orm.branch" name="up_branch" rel="ManyToOneRel">1</field>
- <field type="CharField" name="branch"></field>
- <field type="CharField" name="commit">master</field>
+ <field to="orm.release" name="release" rel="ManyToOneRel">1</field>
+ <field type="CharField" name="branch">testing-branch</field>
+ <field type="CharField" name="commit">9876fedcba</field>
+ <field type="CharField" name="dirpath"><None></None></field>
+ <field type="IntegerField" name="priority">0</field>
+ <field type="FilePathField" name="local_path">/</field>
+ <field to="orm.project" name="project" rel="ManyToOneRel"><None></None></field>
+ </object>
+ <object pk="3" model="orm.layer_version">
+ <field to="orm.build" name="build" rel="ManyToOneRel">1</field>
+ <field to="orm.layer" name="layer" rel="ManyToOneRel">2</field>
+ <field type="DateTimeField" name="up_date"><None></None></field>
+ <field to="orm.release" name="release" rel="ManyToOneRel">1</field>
+ <field type="CharField" name="branch">testing-branch</field>
+ <field type="CharField" name="commit">9876fedcba</field>
<field type="CharField" name="dirpath"><None></None></field>
<field type="IntegerField" name="priority">0</field>
<field type="FilePathField" name="local_path">/</field>
@@ -443,4 +421,39 @@
<field type="FilePathField" name="pathname"></field>
<field type="IntegerField" name="lineno"><None></None></field>
</object>
+ <!-- Some tasks for build 1 to test build tables -->
+ <object pk="1" model="orm.task">
+ <field to="orm.build" name="build" rel="ManyToOneRel">1</field>
+ <field type="IntegerField" name="order">1</field>
+ <field type="BooleanField" name="task_executed">False</field>
+ <field type="IntegerField" name="outcome">-1</field>
+ <field type="CharField" name="sstate_checksum">abcdef123</field>
+ <field type="FilePathField" name="path_to_sstate_obj">34/wefw.tar</field>
+ <field to="orm.recipe" name="recipe" rel="ManyToOneRel">1</field>
+ <field type="CharField" name="task_name">a_do_compile</field>
+ <field type="DecimalField" name="elapsed_time">100</field>
+ <field type="IntegerField" name="disk_io">10</field>
+ <field type="IntegerField" name="disk_io_read">11</field>
+ <field type="IntegerField" name="disk_io_write">12</field>
+ <field type="DecimalField" name="cpu_time_user">10.1</field>
+ <field type="DecimalField" name="cpu_time_system">10.2</field>
+ <field type="IntegerField" name="sstate_result">3</field>
+ </object>
+ <object pk="2" model="orm.task">
+ <field to="orm.build" name="build" rel="ManyToOneRel">1</field>
+ <field type="IntegerField" name="order">2</field>
+ <field type="BooleanField" name="task_executed">True</field>
+ <field type="IntegerField" name="outcome">2</field>
+ <field type="CharField" name="sstate_checksum">85bccb7802fd5f48</field>
+ <field type="FilePathField" name="path_to_sstate_obj">85/sstarpm.tgz</field>
+ <field to="orm.recipe" name="recipe" rel="ManyToOneRel">2</field>
+ <field type="CharField" name="task_name">z_do_package_write_rpm</field>
+ <field type="DecimalField" name="elapsed_time">245</field>
+ <field type="IntegerField" name="disk_io">12424</field>
+ <field type="IntegerField" name="disk_io_read">23423</field>
+ <field type="IntegerField" name="disk_io_write">83943</field>
+ <field type="DecimalField" name="cpu_time_user">20394.3</field>
+ <field type="DecimalField" name="cpu_time_system">5363.3</field>
+ <field type="IntegerField" name="sstate_result">1</field>
+ </object>
</django-objects>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap-responsive.min.css b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap-responsive.min.css
deleted file mode 100755
index 059786010..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap-responsive.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Bootstrap Responsive v2.3.0
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css
new file mode 100644
index 000000000..42c79d6e4
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css
@@ -0,0 +1,6760 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background-color: transparent;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: bold;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ margin: .67em 0;
+ font-size: 2em;
+}
+mark {
+ color: #000;
+ background: #ff0;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -.5em;
+}
+sub {
+ bottom: -.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ height: 0;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ margin: 0;
+ font: inherit;
+ color: inherit;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+input {
+ line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ padding: .35em .625em .75em;
+ margin: 0 2px;
+ border: 1px solid #c0c0c0;
+}
+legend {
+ padding: 0;
+ border: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: bold;
+}
+table {
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+td,
+th {
+ padding: 0;
+}
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ color: #000 !important;
+ text-shadow: none !important;
+ background: transparent !important;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+@font-face {
+ font-family: 'Glyphicons Halflings';
+
+ src: url('../fonts/glyphicons-halflings-regular.eot');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+}
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.glyphicon-asterisk:before {
+ content: "\002a";
+}
+.glyphicon-plus:before {
+ content: "\002b";
+}
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+ content: "\20ac";
+}
+.glyphicon-minus:before {
+ content: "\2212";
+}
+.glyphicon-cloud:before {
+ content: "\2601";
+}
+.glyphicon-envelope:before {
+ content: "\2709";
+}
+.glyphicon-pencil:before {
+ content: "\270f";
+}
+.glyphicon-glass:before {
+ content: "\e001";
+}
+.glyphicon-music:before {
+ content: "\e002";
+}
+.glyphicon-search:before {
+ content: "\e003";
+}
+.glyphicon-heart:before {
+ content: "\e005";
+}
+.glyphicon-star:before {
+ content: "\e006";
+}
+.glyphicon-star-empty:before {
+ content: "\e007";
+}
+.glyphicon-user:before {
+ content: "\e008";
+}
+.glyphicon-film:before {
+ content: "\e009";
+}
+.glyphicon-th-large:before {
+ content: "\e010";
+}
+.glyphicon-th:before {
+ content: "\e011";
+}
+.glyphicon-th-list:before {
+ content: "\e012";
+}
+.glyphicon-ok:before {
+ content: "\e013";
+}
+.glyphicon-remove:before {
+ content: "\e014";
+}
+.glyphicon-zoom-in:before {
+ content: "\e015";
+}
+.glyphicon-zoom-out:before {
+ content: "\e016";
+}
+.glyphicon-off:before {
+ content: "\e017";
+}
+.glyphicon-signal:before {
+ content: "\e018";
+}
+.glyphicon-cog:before {
+ content: "\e019";
+}
+.glyphicon-trash:before {
+ content: "\e020";
+}
+.glyphicon-home:before {
+ content: "\e021";
+}
+.glyphicon-file:before {
+ content: "\e022";
+}
+.glyphicon-time:before {
+ content: "\e023";
+}
+.glyphicon-road:before {
+ content: "\e024";
+}
+.glyphicon-download-alt:before {
+ content: "\e025";
+}
+.glyphicon-download:before {
+ content: "\e026";
+}
+.glyphicon-upload:before {
+ content: "\e027";
+}
+.glyphicon-inbox:before {
+ content: "\e028";
+}
+.glyphicon-play-circle:before {
+ content: "\e029";
+}
+.glyphicon-repeat:before {
+ content: "\e030";
+}
+.glyphicon-refresh:before {
+ content: "\e031";
+}
+.glyphicon-list-alt:before {
+ content: "\e032";
+}
+.glyphicon-lock:before {
+ content: "\e033";
+}
+.glyphicon-flag:before {
+ content: "\e034";
+}
+.glyphicon-headphones:before {
+ content: "\e035";
+}
+.glyphicon-volume-off:before {
+ content: "\e036";
+}
+.glyphicon-volume-down:before {
+ content: "\e037";
+}
+.glyphicon-volume-up:before {
+ content: "\e038";
+}
+.glyphicon-qrcode:before {
+ content: "\e039";
+}
+.glyphicon-barcode:before {
+ content: "\e040";
+}
+.glyphicon-tag:before {
+ content: "\e041";
+}
+.glyphicon-tags:before {
+ content: "\e042";
+}
+.glyphicon-book:before {
+ content: "\e043";
+}
+.glyphicon-bookmark:before {
+ content: "\e044";
+}
+.glyphicon-print:before {
+ content: "\e045";
+}
+.glyphicon-camera:before {
+ content: "\e046";
+}
+.glyphicon-font:before {
+ content: "\e047";
+}
+.glyphicon-bold:before {
+ content: "\e048";
+}
+.glyphicon-italic:before {
+ content: "\e049";
+}
+.glyphicon-text-height:before {
+ content: "\e050";
+}
+.glyphicon-text-width:before {
+ content: "\e051";
+}
+.glyphicon-align-left:before {
+ content: "\e052";
+}
+.glyphicon-align-center:before {
+ content: "\e053";
+}
+.glyphicon-align-right:before {
+ content: "\e054";
+}
+.glyphicon-align-justify:before {
+ content: "\e055";
+}
+.glyphicon-list:before {
+ content: "\e056";
+}
+.glyphicon-indent-left:before {
+ content: "\e057";
+}
+.glyphicon-indent-right:before {
+ content: "\e058";
+}
+.glyphicon-facetime-video:before {
+ content: "\e059";
+}
+.glyphicon-picture:before {
+ content: "\e060";
+}
+.glyphicon-map-marker:before {
+ content: "\e062";
+}
+.glyphicon-adjust:before {
+ content: "\e063";
+}
+.glyphicon-tint:before {
+ content: "\e064";
+}
+.glyphicon-edit:before {
+ content: "\e065";
+}
+.glyphicon-share:before {
+ content: "\e066";
+}
+.glyphicon-check:before {
+ content: "\e067";
+}
+.glyphicon-move:before {
+ content: "\e068";
+}
+.glyphicon-step-backward:before {
+ content: "\e069";
+}
+.glyphicon-fast-backward:before {
+ content: "\e070";
+}
+.glyphicon-backward:before {
+ content: "\e071";
+}
+.glyphicon-play:before {
+ content: "\e072";
+}
+.glyphicon-pause:before {
+ content: "\e073";
+}
+.glyphicon-stop:before {
+ content: "\e074";
+}
+.glyphicon-forward:before {
+ content: "\e075";
+}
+.glyphicon-fast-forward:before {
+ content: "\e076";
+}
+.glyphicon-step-forward:before {
+ content: "\e077";
+}
+.glyphicon-eject:before {
+ content: "\e078";
+}
+.glyphicon-chevron-left:before {
+ content: "\e079";
+}
+.glyphicon-chevron-right:before {
+ content: "\e080";
+}
+.glyphicon-plus-sign:before {
+ content: "\e081";
+}
+.glyphicon-minus-sign:before {
+ content: "\e082";
+}
+.glyphicon-remove-sign:before {
+ content: "\e083";
+}
+.glyphicon-ok-sign:before {
+ content: "\e084";
+}
+.glyphicon-question-sign:before {
+ content: "\e085";
+}
+.glyphicon-info-sign:before {
+ content: "\e086";
+}
+.glyphicon-screenshot:before {
+ content: "\e087";
+}
+.glyphicon-remove-circle:before {
+ content: "\e088";
+}
+.glyphicon-ok-circle:before {
+ content: "\e089";
+}
+.glyphicon-ban-circle:before {
+ content: "\e090";
+}
+.glyphicon-arrow-left:before {
+ content: "\e091";
+}
+.glyphicon-arrow-right:before {
+ content: "\e092";
+}
+.glyphicon-arrow-up:before {
+ content: "\e093";
+}
+.glyphicon-arrow-down:before {
+ content: "\e094";
+}
+.glyphicon-share-alt:before {
+ content: "\e095";
+}
+.glyphicon-resize-full:before {
+ content: "\e096";
+}
+.glyphicon-resize-small:before {
+ content: "\e097";
+}
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
+}
+.glyphicon-gift:before {
+ content: "\e102";
+}
+.glyphicon-leaf:before {
+ content: "\e103";
+}
+.glyphicon-fire:before {
+ content: "\e104";
+}
+.glyphicon-eye-open:before {
+ content: "\e105";
+}
+.glyphicon-eye-close:before {
+ content: "\e106";
+}
+.glyphicon-warning-sign:before {
+ content: "\e107";
+}
+.glyphicon-plane:before {
+ content: "\e108";
+}
+.glyphicon-calendar:before {
+ content: "\e109";
+}
+.glyphicon-random:before {
+ content: "\e110";
+}
+.glyphicon-comment:before {
+ content: "\e111";
+}
+.glyphicon-magnet:before {
+ content: "\e112";
+}
+.glyphicon-chevron-up:before {
+ content: "\e113";
+}
+.glyphicon-chevron-down:before {
+ content: "\e114";
+}
+.glyphicon-retweet:before {
+ content: "\e115";
+}
+.glyphicon-shopping-cart:before {
+ content: "\e116";
+}
+.glyphicon-folder-close:before {
+ content: "\e117";
+}
+.glyphicon-folder-open:before {
+ content: "\e118";
+}
+.glyphicon-resize-vertical:before {
+ content: "\e119";
+}
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
+}
+.glyphicon-hdd:before {
+ content: "\e121";
+}
+.glyphicon-bullhorn:before {
+ content: "\e122";
+}
+.glyphicon-bell:before {
+ content: "\e123";
+}
+.glyphicon-certificate:before {
+ content: "\e124";
+}
+.glyphicon-thumbs-up:before {
+ content: "\e125";
+}
+.glyphicon-thumbs-down:before {
+ content: "\e126";
+}
+.glyphicon-hand-right:before {
+ content: "\e127";
+}
+.glyphicon-hand-left:before {
+ content: "\e128";
+}
+.glyphicon-hand-up:before {
+ content: "\e129";
+}
+.glyphicon-hand-down:before {
+ content: "\e130";
+}
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
+}
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
+}
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
+}
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
+}
+.glyphicon-globe:before {
+ content: "\e135";
+}
+.glyphicon-wrench:before {
+ content: "\e136";
+}
+.glyphicon-tasks:before {
+ content: "\e137";
+}
+.glyphicon-filter:before {
+ content: "\e138";
+}
+.glyphicon-briefcase:before {
+ content: "\e139";
+}
+.glyphicon-fullscreen:before {
+ content: "\e140";
+}
+.glyphicon-dashboard:before {
+ content: "\e141";
+}
+.glyphicon-paperclip:before {
+ content: "\e142";
+}
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.glyphicon-link:before {
+ content: "\e144";
+}
+.glyphicon-phone:before {
+ content: "\e145";
+}
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+.glyphicon-usd:before {
+ content: "\e148";
+}
+.glyphicon-gbp:before {
+ content: "\e149";
+}
+.glyphicon-sort:before {
+ content: "\e150";
+}
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+}
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+}
+.glyphicon-sort-by-order:before {
+ content: "\e153";
+}
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+}
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
+}
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+}
+.glyphicon-unchecked:before {
+ content: "\e157";
+}
+.glyphicon-expand:before {
+ content: "\e158";
+}
+.glyphicon-collapse-down:before {
+ content: "\e159";
+}
+.glyphicon-collapse-up:before {
+ content: "\e160";
+}
+.glyphicon-log-in:before {
+ content: "\e161";
+}
+.glyphicon-flash:before {
+ content: "\e162";
+}
+.glyphicon-log-out:before {
+ content: "\e163";
+}
+.glyphicon-new-window:before {
+ content: "\e164";
+}
+.glyphicon-record:before {
+ content: "\e165";
+}
+.glyphicon-save:before {
+ content: "\e166";
+}
+.glyphicon-open:before {
+ content: "\e167";
+}
+.glyphicon-saved:before {
+ content: "\e168";
+}
+.glyphicon-import:before {
+ content: "\e169";
+}
+.glyphicon-export:before {
+ content: "\e170";
+}
+.glyphicon-send:before {
+ content: "\e171";
+}
+.glyphicon-floppy-disk:before {
+ content: "\e172";
+}
+.glyphicon-floppy-saved:before {
+ content: "\e173";
+}
+.glyphicon-floppy-remove:before {
+ content: "\e174";
+}
+.glyphicon-floppy-save:before {
+ content: "\e175";
+}
+.glyphicon-floppy-open:before {
+ content: "\e176";
+}
+.glyphicon-credit-card:before {
+ content: "\e177";
+}
+.glyphicon-transfer:before {
+ content: "\e178";
+}
+.glyphicon-cutlery:before {
+ content: "\e179";
+}
+.glyphicon-header:before {
+ content: "\e180";
+}
+.glyphicon-compressed:before {
+ content: "\e181";
+}
+.glyphicon-earphone:before {
+ content: "\e182";
+}
+.glyphicon-phone-alt:before {
+ content: "\e183";
+}
+.glyphicon-tower:before {
+ content: "\e184";
+}
+.glyphicon-stats:before {
+ content: "\e185";
+}
+.glyphicon-sd-video:before {
+ content: "\e186";
+}
+.glyphicon-hd-video:before {
+ content: "\e187";
+}
+.glyphicon-subtitles:before {
+ content: "\e188";
+}
+.glyphicon-sound-stereo:before {
+ content: "\e189";
+}
+.glyphicon-sound-dolby:before {
+ content: "\e190";
+}
+.glyphicon-sound-5-1:before {
+ content: "\e191";
+}
+.glyphicon-sound-6-1:before {
+ content: "\e192";
+}
+.glyphicon-sound-7-1:before {
+ content: "\e193";
+}
+.glyphicon-copyright-mark:before {
+ content: "\e194";
+}
+.glyphicon-registration-mark:before {
+ content: "\e195";
+}
+.glyphicon-cloud-download:before {
+ content: "\e197";
+}
+.glyphicon-cloud-upload:before {
+ content: "\e198";
+}
+.glyphicon-tree-conifer:before {
+ content: "\e199";
+}
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
+}
+.glyphicon-cd:before {
+ content: "\e201";
+}
+.glyphicon-save-file:before {
+ content: "\e202";
+}
+.glyphicon-open-file:before {
+ content: "\e203";
+}
+.glyphicon-level-up:before {
+ content: "\e204";
+}
+.glyphicon-copy:before {
+ content: "\e205";
+}
+.glyphicon-paste:before {
+ content: "\e206";
+}
+.glyphicon-alert:before {
+ content: "\e209";
+}
+.glyphicon-equalizer:before {
+ content: "\e210";
+}
+.glyphicon-king:before {
+ content: "\e211";
+}
+.glyphicon-queen:before {
+ content: "\e212";
+}
+.glyphicon-pawn:before {
+ content: "\e213";
+}
+.glyphicon-bishop:before {
+ content: "\e214";
+}
+.glyphicon-knight:before {
+ content: "\e215";
+}
+.glyphicon-baby-formula:before {
+ content: "\e216";
+}
+.glyphicon-tent:before {
+ content: "\26fa";
+}
+.glyphicon-blackboard:before {
+ content: "\e218";
+}
+.glyphicon-bed:before {
+ content: "\e219";
+}
+.glyphicon-apple:before {
+ content: "\f8ff";
+}
+.glyphicon-erase:before {
+ content: "\e221";
+}
+.glyphicon-hourglass:before {
+ content: "\231b";
+}
+.glyphicon-lamp:before {
+ content: "\e223";
+}
+.glyphicon-duplicate:before {
+ content: "\e224";
+}
+.glyphicon-piggy-bank:before {
+ content: "\e225";
+}
+.glyphicon-scissors:before {
+ content: "\e226";
+}
+.glyphicon-bitcoin:before {
+ content: "\e227";
+}
+.glyphicon-btc:before {
+ content: "\e227";
+}
+.glyphicon-xbt:before {
+ content: "\e227";
+}
+.glyphicon-yen:before {
+ content: "\00a5";
+}
+.glyphicon-jpy:before {
+ content: "\00a5";
+}
+.glyphicon-ruble:before {
+ content: "\20bd";
+}
+.glyphicon-rub:before {
+ content: "\20bd";
+}
+.glyphicon-scale:before {
+ content: "\e230";
+}
+.glyphicon-ice-lolly:before {
+ content: "\e231";
+}
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232";
+}
+.glyphicon-education:before {
+ content: "\e233";
+}
+.glyphicon-option-horizontal:before {
+ content: "\e234";
+}
+.glyphicon-option-vertical:before {
+ content: "\e235";
+}
+.glyphicon-menu-hamburger:before {
+ content: "\e236";
+}
+.glyphicon-modal-window:before {
+ content: "\e237";
+}
+.glyphicon-oil:before {
+ content: "\e238";
+}
+.glyphicon-grain:before {
+ content: "\e239";
+}
+.glyphicon-sunglasses:before {
+ content: "\e240";
+}
+.glyphicon-text-size:before {
+ content: "\e241";
+}
+.glyphicon-text-color:before {
+ content: "\e242";
+}
+.glyphicon-text-background:before {
+ content: "\e243";
+}
+.glyphicon-object-align-top:before {
+ content: "\e244";
+}
+.glyphicon-object-align-bottom:before {
+ content: "\e245";
+}
+.glyphicon-object-align-horizontal:before {
+ content: "\e246";
+}
+.glyphicon-object-align-left:before {
+ content: "\e247";
+}
+.glyphicon-object-align-vertical:before {
+ content: "\e248";
+}
+.glyphicon-object-align-right:before {
+ content: "\e249";
+}
+.glyphicon-triangle-right:before {
+ content: "\e250";
+}
+.glyphicon-triangle-left:before {
+ content: "\e251";
+}
+.glyphicon-triangle-bottom:before {
+ content: "\e252";
+}
+.glyphicon-triangle-top:before {
+ content: "\e253";
+}
+.glyphicon-console:before {
+ content: "\e254";
+}
+.glyphicon-superscript:before {
+ content: "\e255";
+}
+.glyphicon-subscript:before {
+ content: "\e256";
+}
+.glyphicon-menu-left:before {
+ content: "\e257";
+}
+.glyphicon-menu-right:before {
+ content: "\e258";
+}
+.glyphicon-menu-down:before {
+ content: "\e259";
+}
+.glyphicon-menu-up:before {
+ content: "\e260";
+}
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 10px;
+
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #333;
+ background-color: #fff;
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a {
+ color: #337ab7;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: #23527c;
+ text-decoration: underline;
+}
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 6px;
+}
+.img-thumbnail {
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all .2s ease-in-out;
+ -o-transition: all .2s ease-in-out;
+ transition: all .2s ease-in-out;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+[role="button"] {
+ cursor: pointer;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
+}
+h1,
+.h1 {
+ font-size: 36px;
+}
+h2,
+.h2 {
+ font-size: 30px;
+}
+h3,
+.h3 {
+ font-size: 24px;
+}
+h4,
+.h4 {
+ font-size: 18px;
+}
+h5,
+.h5 {
+ font-size: 14px;
+}
+h6,
+.h6 {
+ font-size: 12px;
+}
+p {
+ margin: 0 0 10px;
+}
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .lead {
+ font-size: 21px;
+ }
+}
+small,
+.small {
+ font-size: 85%;
+}
+mark,
+.mark {
+ padding: .2em;
+ background-color: #fcf8e3;
+}
+.text-left {
+ text-align: left;
+}
+.text-right {
+ text-align: right;
+}
+.text-center {
+ text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-nowrap {
+ white-space: nowrap;
+}
+.text-lowercase {
+ text-transform: lowercase;
+}
+.text-uppercase {
+ text-transform: uppercase;
+}
+.text-capitalize {
+ text-transform: capitalize;
+}
+.text-muted {
+ color: #777;
+}
+.text-primary {
+ color: #337ab7;
+}
+a.text-primary:hover,
+a.text-primary:focus {
+ color: #286090;
+}
+.text-success {
+ color: #3c763d;
+}
+a.text-success:hover,
+a.text-success:focus {
+ color: #2b542c;
+}
+.text-info {
+ color: #31708f;
+}
+a.text-info:hover,
+a.text-info:focus {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover,
+a.text-danger:focus {
+ color: #843534;
+}
+.bg-primary {
+ color: #fff;
+ background-color: #337ab7;
+}
+a.bg-primary:hover,
+a.bg-primary:focus {
+ background-color: #286090;
+}
+.bg-success {
+ background-color: #dff0d8;
+}
+a.bg-success:hover,
+a.bg-success:focus {
+ background-color: #c1e2b3;
+}
+.bg-info {
+ background-color: #d9edf7;
+}
+a.bg-info:hover,
+a.bg-info:focus {
+ background-color: #afd9ee;
+}
+.bg-warning {
+ background-color: #fcf8e3;
+}
+a.bg-warning:hover,
+a.bg-warning:focus {
+ background-color: #f7ecb5;
+}
+.bg-danger {
+ background-color: #f2dede;
+}
+a.bg-danger:hover,
+a.bg-danger:focus {
+ background-color: #e4b9b9;
+}
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
+}
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
+}
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
+}
+.list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+dt,
+dd {
+ line-height: 1.42857143;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777;
+}
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857143;
+ color: #777;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
+}
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ text-align: right;
+ border-right: 5px solid #eee;
+ border-left: 0;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: '';
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
+}
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857143;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+}
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857143;
+ color: #333;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+}
+.container-fluid {
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+.row {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
+}
+.col-xs-12 {
+ width: 100%;
+}
+.col-xs-11 {
+ width: 91.66666667%;
+}
+.col-xs-10 {
+ width: 83.33333333%;
+}
+.col-xs-9 {
+ width: 75%;
+}
+.col-xs-8 {
+ width: 66.66666667%;
+}
+.col-xs-7 {
+ width: 58.33333333%;
+}
+.col-xs-6 {
+ width: 50%;
+}
+.col-xs-5 {
+ width: 41.66666667%;
+}
+.col-xs-4 {
+ width: 33.33333333%;
+}
+.col-xs-3 {
+ width: 25%;
+}
+.col-xs-2 {
+ width: 16.66666667%;
+}
+.col-xs-1 {
+ width: 8.33333333%;
+}
+.col-xs-pull-12 {
+ right: 100%;
+}
+.col-xs-pull-11 {
+ right: 91.66666667%;
+}
+.col-xs-pull-10 {
+ right: 83.33333333%;
+}
+.col-xs-pull-9 {
+ right: 75%;
+}
+.col-xs-pull-8 {
+ right: 66.66666667%;
+}
+.col-xs-pull-7 {
+ right: 58.33333333%;
+}
+.col-xs-pull-6 {
+ right: 50%;
+}
+.col-xs-pull-5 {
+ right: 41.66666667%;
+}
+.col-xs-pull-4 {
+ right: 33.33333333%;
+}
+.col-xs-pull-3 {
+ right: 25%;
+}
+.col-xs-pull-2 {
+ right: 16.66666667%;
+}
+.col-xs-pull-1 {
+ right: 8.33333333%;
+}
+.col-xs-pull-0 {
+ right: auto;
+}
+.col-xs-push-12 {
+ left: 100%;
+}
+.col-xs-push-11 {
+ left: 91.66666667%;
+}
+.col-xs-push-10 {
+ left: 83.33333333%;
+}
+.col-xs-push-9 {
+ left: 75%;
+}
+.col-xs-push-8 {
+ left: 66.66666667%;
+}
+.col-xs-push-7 {
+ left: 58.33333333%;
+}
+.col-xs-push-6 {
+ left: 50%;
+}
+.col-xs-push-5 {
+ left: 41.66666667%;
+}
+.col-xs-push-4 {
+ left: 33.33333333%;
+}
+.col-xs-push-3 {
+ left: 25%;
+}
+.col-xs-push-2 {
+ left: 16.66666667%;
+}
+.col-xs-push-1 {
+ left: 8.33333333%;
+}
+.col-xs-push-0 {
+ left: auto;
+}
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+.col-xs-offset-11 {
+ margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+ margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+.col-xs-offset-8 {
+ margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+ margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+.col-xs-offset-5 {
+ margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+ margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+.col-xs-offset-2 {
+ margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666667%;
+ }
+ .col-sm-10 {
+ width: 83.33333333%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666667%;
+ }
+ .col-sm-7 {
+ width: 58.33333333%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.66666667%;
+ }
+ .col-sm-1 {
+ width: 8.33333333%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666667%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666667%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333333%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.66666667%;
+ }
+ .col-sm-push-1 {
+ left: 8.33333333%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666667%;
+ }
+ .col-md-10 {
+ width: 83.33333333%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666667%;
+ }
+ .col-md-7 {
+ width: 58.33333333%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.66666667%;
+ }
+ .col-md-1 {
+ width: 8.33333333%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-md-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666667%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666667%;
+ }
+ .col-md-push-7 {
+ left: 58.33333333%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.66666667%;
+ }
+ .col-md-push-1 {
+ left: 8.33333333%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666667%;
+ }
+ .col-lg-10 {
+ width: 83.33333333%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666667%;
+ }
+ .col-lg-7 {
+ width: 58.33333333%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.66666667%;
+ }
+ .col-lg-1 {
+ width: 8.33333333%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666667%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666667%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333333%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66666667%;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333333%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666667%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666667%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333333%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.66666667%;
+ }
+ .col-lg-push-1 {
+ left: 8.33333333%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666667%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666667%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333333%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66666667%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333333%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
+}
+table {
+ background-color: transparent;
+}
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777;
+ text-align: left;
+}
+th {
+ text-align: left;
+}
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
+}
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857143;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+}
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+.table .table {
+ background-color: #fff;
+}
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+.table-bordered {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9;
+}
+.table-hover > tbody > tr:hover {
+ background-color: #f5f5f5;
+}
+table col[class*="col-"] {
+ position: static;
+ display: table-column;
+ float: none;
+}
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ display: table-cell;
+ float: none;
+}
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+.table-responsive {
+ min-height: .01%;
+ overflow-x: auto;
+}
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+input[type="file"] {
+ display: block;
+}
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+select[multiple],
+select[size] {
+ height: auto;
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+}
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857143;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
+ -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
+}
+.form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+ color: #999;
+}
+.form-control::-webkit-input-placeholder {
+ color: #999;
+}
+.form-control::-ms-expand {
+ background-color: transparent;
+ border: 0;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ background-color: #eee;
+ opacity: 1;
+}
+.form-control[disabled],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+}
+textarea.form-control {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: none;
+}
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
+ line-height: 34px;
+ }
+ input[type="date"].input-sm,
+ input[type="time"].input-sm,
+ input[type="datetime-local"].input-sm,
+ input[type="month"].input-sm,
+ .input-group-sm input[type="date"],
+ .input-group-sm input[type="time"],
+ .input-group-sm input[type="datetime-local"],
+ .input-group-sm input[type="month"] {
+ line-height: 30px;
+ }
+ input[type="date"].input-lg,
+ input[type="time"].input-lg,
+ input[type="datetime-local"].input-lg,
+ input[type="month"].input-lg,
+ .input-group-lg input[type="date"],
+ .input-group-lg input[type="time"],
+ .input-group-lg input[type="datetime-local"],
+ .input-group-lg input[type="month"] {
+ line-height: 46px;
+ }
+}
+.form-group {
+ margin-bottom: 15px;
+}
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.radio label,
+.checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-top: 4px \9;
+ margin-left: -20px;
+}
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ vertical-align: middle;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"].disabled,
+input[type="checkbox"].disabled,
+fieldset[disabled] input[type="radio"],
+fieldset[disabled] input[type="checkbox"] {
+ cursor: not-allowed;
+}
+.radio-inline.disabled,
+.checkbox-inline.disabled,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+ cursor: not-allowed;
+}
+.form-control-static {
+ min-height: 34px;
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+}
+.form-control-static.input-lg,
+.form-control-static.input-sm {
+ padding-right: 0;
+ padding-left: 0;
+}
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
+.form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.form-group-sm select.form-control {
+ height: 30px;
+ line-height: 30px;
+}
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto;
+}
+.form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 32px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+.input-lg {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+select.input-lg {
+ height: 46px;
+ line-height: 46px;
+}
+textarea.input-lg,
+select[multiple].input-lg {
+ height: auto;
+}
+.form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+.form-group-lg select.form-control {
+ height: 46px;
+ line-height: 46px;
+}
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto;
+}
+.form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 11px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+}
+.has-feedback {
+ position: relative;
+}
+.has-feedback .form-control {
+ padding-right: 42.5px;
+}
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ pointer-events: none;
+}
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+ width: 46px;
+ height: 46px;
+ line-height: 46px;
+}
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #3c763d;
+}
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+}
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
+}
+.has-success .input-group-addon {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #3c763d;
+}
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #8a6d3b;
+}
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+}
+.has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
+}
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #8a6d3b;
+}
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #a94442;
+}
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+}
+.has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
+}
+.has-error .input-group-addon {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #a94442;
+}
+.has-error .form-control-feedback {
+ color: #a94442;
+}
+.has-feedback label ~ .form-control-feedback {
+ top: 25px;
+}
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
+}
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ padding-top: 7px;
+ margin-top: 0;
+ margin-bottom: 0;
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 27px;
+}
+.form-horizontal .form-group {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ padding-top: 7px;
+ margin-bottom: 0;
+ text-align: right;
+ }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 15px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 11px;
+ font-size: 18px;
+ }
+}
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ font-size: 12px;
+ }
+}
+.btn {
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus,
+.btn.focus,
+.btn:active.focus,
+.btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.btn:hover,
+.btn:focus,
+.btn.focus {
+ color: #333;
+ text-decoration: none;
+}
+.btn:active,
+.btn.active {
+ background-image: none;
+ outline: 0;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+}
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+ cursor: not-allowed;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ opacity: .65;
+}
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none;
+}
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default:focus,
+.btn-default.focus {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+.btn-default:hover {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+ color: #333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+ background-image: none;
+}
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus {
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default .badge {
+ color: #fff;
+ background-color: #333;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.btn-primary:focus,
+.btn-primary.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+ background-image: none;
+}
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4;
+}
+.btn-primary .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success:focus,
+.btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #255625;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439;
+}
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #255625;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+ background-image: none;
+}
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info:focus,
+.btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #1b6d85;
+}
+.btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1b6d85;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+ background-image: none;
+}
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning:focus,
+.btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #985f0d;
+}
+.btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #985f0d;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger:focus,
+.btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #761c19;
+}
+.btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #761c19;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+.btn-link {
+ font-weight: normal;
+ color: #337ab7;
+ border-radius: 0;
+}
+.btn-link,
+.btn-link:active,
+.btn-link.active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+ border-color: transparent;
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+ color: #777;
+ text-decoration: none;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-xs,
+.btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-block {
+ display: block;
+ width: 100%;
+}
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity .15s linear;
+ -o-transition: opacity .15s linear;
+ transition: opacity .15s linear;
+}
+.fade.in {
+ opacity: 1;
+}
+.collapse {
+ display: none;
+}
+.collapse.in {
+ display: block;
+}
+tr.collapse.in {
+ display: table-row;
+}
+tbody.collapse.in {
+ display: table-row-group;
+}
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-timing-function: ease;
+ -o-transition-timing-function: ease;
+ transition-timing-function: ease;
+ -webkit-transition-duration: .35s;
+ -o-transition-duration: .35s;
+ transition-duration: .35s;
+ -webkit-transition-property: height, visibility;
+ -o-transition-property: height, visibility;
+ transition-property: height, visibility;
+}
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+.dropup,
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle:focus {
+ outline: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 14px;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, .15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
+}
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857143;
+ color: #333;
+ white-space: nowrap;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ color: #262626;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ background-color: #337ab7;
+ outline: 0;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #777;
+}
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+.open > .dropdown-menu {
+ display: block;
+}
+.open > a {
+ outline: 0;
+}
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu-left {
+ right: auto;
+ left: 0;
+}
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857143;
+ color: #777;
+ white-space: nowrap;
+}
+.dropdown-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 990;
+}
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ content: "";
+ border-top: 0;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+ .navbar-right .dropdown-menu-left {
+ right: auto;
+ left: 0;
+ }
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.btn-toolbar {
+ margin-left: -5px;
+}
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group > .btn-group {
+ float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.btn-group > .btn + .dropdown-toggle {
+ padding-right: 8px;
+ padding-left: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-right: 12px;
+ padding-left: 12px;
+}
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn .caret {
+ margin-left: 0;
+}
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ display: table-cell;
+ float: none;
+ width: 1%;
+}
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+.btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+}
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.input-group[class*="col-"] {
+ float: none;
+ padding-right: 0;
+ padding-left: 0;
+}
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+.input-group .form-control:focus {
+ z-index: 3;
+}
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ line-height: 46px;
+}
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+.input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px;
+}
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.input-group-addon:first-child {
+ border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+.input-group-btn > .btn {
+ position: relative;
+}
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+ z-index: 2;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ z-index: 2;
+ margin-left: -1px;
+}
+.nav {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.nav > li {
+ position: relative;
+ display: block;
+}
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.nav > li.disabled > a {
+ color: #777;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #777;
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eee;
+ border-color: #337ab7;
+}
+.nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.nav > li > a > img {
+ max-width: none;
+}
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555;
+ cursor: default;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+}
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+.nav-tabs.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+.nav-pills > li > a {
+ border-radius: 4px;
+}
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #337ab7;
+}
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.nav-justified {
+ width: 100%;
+}
+.nav-justified > li {
+ float: none;
+}
+.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+}
+@media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+}
+.navbar-collapse {
+ padding-right: 15px;
+ padding-left: 15px;
+ overflow-x: visible;
+ -webkit-overflow-scrolling: touch;
+ border-top: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
+}
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-right: 0;
+ padding-left: 0;
+ }
+}
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+}
+@media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+@media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+.navbar-brand {
+ float: left;
+ height: 50px;
+ padding: 15px 15px;
+ font-size: 18px;
+ line-height: 20px;
+}
+.navbar-brand:hover,
+.navbar-brand:focus {
+ text-decoration: none;
+}
+.navbar-brand > img {
+ display: block;
+}
+@media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.navbar-toggle {
+ position: relative;
+ float: right;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-right: 15px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.navbar-toggle:focus {
+ outline: 0;
+}
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+.navbar-nav {
+ margin: 7.5px -15px;
+}
+.navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px;
+}
+@media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ }
+}
+.navbar-form {
+ padding: 10px 15px;
+ margin-top: 8px;
+ margin-right: -15px;
+ margin-bottom: 8px;
+ margin-left: -15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
+}
+@media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control-static {
+ display: inline-block;
+ }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0;
+ }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ padding-top: 0;
+ padding-bottom: 0;
+ margin-right: 0;
+ margin-left: 0;
+ border: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+}
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+.navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+}
+.navbar-text {
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
+@media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-right: 15px;
+ margin-left: 15px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ margin-right: -15px;
+ }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0;
+ }
+}
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-brand {
+ color: #777;
+}
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.navbar-default .navbar-text {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+}
+.navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+@media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+}
+.navbar-default .navbar-link {
+ color: #777;
+}
+.navbar-default .navbar-link:hover {
+ color: #333;
+}
+.navbar-default .btn-link {
+ color: #777;
+}
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+ color: #333;
+}
+.navbar-default .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-default .btn-link:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc;
+}
+.navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+}
+.navbar-inverse .navbar-brand {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-text {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+}
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+@media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+}
+.navbar-inverse .navbar-link {
+ color: #9d9d9d;
+}
+.navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+.navbar-inverse .btn-link {
+ color: #9d9d9d;
+}
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+ color: #fff;
+}
+.navbar-inverse .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444;
+}
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+.breadcrumb > li {
+ display: inline-block;
+}
+.breadcrumb > li + li:before {
+ padding: 0 5px;
+ color: #ccc;
+ content: "/\00a0";
+}
+.breadcrumb > .active {
+ color: #777;
+}
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px;
+}
+.pagination > li {
+ display: inline;
+}
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ margin-left: -1px;
+ line-height: 1.42857143;
+ color: #337ab7;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-top-left-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 4px;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ z-index: 2;
+ color: #23527c;
+ background-color: #eee;
+ border-color: #ddd;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 3;
+ color: #fff;
+ cursor: default;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+ border-color: #ddd;
+}
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+}
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-top-left-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+}
+.pager {
+ padding-left: 0;
+ margin: 20px 0;
+ text-align: center;
+ list-style: none;
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #fff;
+}
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+}
+a.label:hover,
+a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.label:empty {
+ display: none;
+}
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+.label-default {
+ background-color: #777;
+}
+.label-default[href]:hover,
+.label-default[href]:focus {
+ background-color: #5e5e5e;
+}
+.label-primary {
+ background-color: #337ab7;
+}
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+ background-color: #286090;
+}
+.label-success {
+ background-color: #5cb85c;
+}
+.label-success[href]:hover,
+.label-success[href]:focus {
+ background-color: #449d44;
+}
+.label-info {
+ background-color: #5bc0de;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.label-warning {
+ background-color: #f0ad4e;
+}
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.label-danger {
+ background-color: #d9534f;
+}
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: middle;
+ background-color: #777;
+ border-radius: 10px;
+}
+.badge:empty {
+ display: none;
+}
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+a.badge:hover,
+a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+.list-group-item > .badge {
+ float: right;
+}
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.jumbotron {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+}
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
+}
+.jumbotron > hr {
+ border-top-color: #d5d5d5;
+}
+.container .jumbotron,
+.container-fluid .jumbotron {
+ padding-right: 15px;
+ padding-left: 15px;
+ border-radius: 6px;
+}
+.jumbotron .container {
+ max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-right: 60px;
+ padding-left: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px;
+ }
+}
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.42857143;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: border .2s ease-in-out;
+ -o-transition: border .2s ease-in-out;
+ transition: border .2s ease-in-out;
+}
+.thumbnail > img,
+.thumbnail a > img {
+ margin-right: auto;
+ margin-left: auto;
+}
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #337ab7;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: #333;
+}
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.alert .alert-link {
+ font-weight: bold;
+}
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+.alert > p + p {
+ margin-top: 5px;
+}
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 35px;
+}
+.alert-dismissable .close,
+.alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.alert-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.alert-success .alert-link {
+ color: #2b542c;
+}
+.alert-info {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.alert-info .alert-link {
+ color: #245269;
+}
+.alert-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+.alert-warning .alert-link {
+ color: #66512c;
+}
+.alert-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+.alert-danger .alert-link {
+ color: #843534;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@-o-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.progress {
+ height: 20px;
+ margin-bottom: 20px;
+ overflow: hidden;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
+}
+.progress-bar {
+ float: left;
+ width: 0;
+ height: 100%;
+ font-size: 12px;
+ line-height: 20px;
+ color: #fff;
+ text-align: center;
+ background-color: #337ab7;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
+ -webkit-transition: width .6s ease;
+ -o-transition: width .6s ease;
+ transition: width .6s ease;
+}
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ -webkit-background-size: 40px 40px;
+ background-size: 40px 40px;
+}
+.progress.active .progress-bar,
+.progress-bar.active {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-bar-success {
+ background-color: #5cb85c;
+}
+.progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
+.progress-bar-info {
+ background-color: #5bc0de;
+}
+.progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
+.progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
+.progress-bar-danger {
+ background-color: #d9534f;
+}
+.progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
+}
+.media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+.media,
+.media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.media-body {
+ width: 10000px;
+}
+.media-object {
+ display: block;
+}
+.media-object.img-thumbnail {
+ max-width: none;
+}
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
+}
+.media-left,
+.media > .pull-left {
+ padding-right: 10px;
+}
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+.media-middle {
+ vertical-align: middle;
+}
+.media-bottom {
+ vertical-align: bottom;
+}
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.list-group {
+ padding-left: 0;
+ margin-bottom: 20px;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.list-group-item:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+a.list-group-item,
+button.list-group-item {
+ color: #555;
+}
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+ color: #333;
+}
+a.list-group-item:hover,
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
+ color: #555;
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+button.list-group-item {
+ width: 100%;
+ text-align: left;
+}
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+ color: #777;
+ cursor: not-allowed;
+ background-color: #eee;
+}
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit;
+}
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+ color: #777;
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit;
+}
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef;
+}
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #3c763d;
+}
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-success:hover,
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+a.list-group-item-success.active,
+button.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #31708f;
+}
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-info:hover,
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+a.list-group-item-info.active,
+button.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #8a6d3b;
+}
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-warning:hover,
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+a.list-group-item-warning.active,
+button.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #a94442;
+}
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-danger:hover,
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+a.list-group-item-danger.active,
+button.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.panel {
+ margin-bottom: 20px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
+}
+.panel-body {
+ padding: 15px;
+}
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
+}
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+ color: inherit;
+}
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+ margin-bottom: 0;
+}
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+ margin-bottom: 0;
+}
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+ padding-right: 15px;
+ padding-left: 15px;
+}
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px;
+}
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px;
+}
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+ border-top: 1px solid #ddd;
+}
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+.panel > .table-responsive {
+ margin-bottom: 0;
+ border: 0;
+}
+.panel-group {
+ margin-bottom: 20px;
+}
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+}
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #ddd;
+}
+.panel-group .panel-footer {
+ border-top: 0;
+}
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+}
+.panel-default {
+ border-color: #ddd;
+}
+.panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+}
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ddd;
+}
+.panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333;
+}
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd;
+}
+.panel-primary {
+ border-color: #337ab7;
+}
+.panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+}
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7;
+}
+.panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #fff;
+}
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7;
+}
+.panel-success {
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6;
+}
+.panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d;
+}
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.panel-info {
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1;
+}
+.panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f;
+}
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.panel-warning {
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc;
+}
+.panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b;
+}
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc;
+}
+.panel-danger {
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1;
+}
+.panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442;
+}
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1;
+}
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+}
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
+}
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, .15);
+}
+.well-lg {
+ padding: 24px;
+ border-radius: 6px;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+.close {
+ float: right;
+ font-size: 21px;
+ font-weight: bold;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ filter: alpha(opacity=20);
+ opacity: .2;
+}
+.close:hover,
+.close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+button.close {
+ -webkit-appearance: none;
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+}
+.modal-open {
+ overflow: hidden;
+}
+.modal {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ display: none;
+ overflow: hidden;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+.modal.fade .modal-dialog {
+ -webkit-transition: -webkit-transform .3s ease-out;
+ -o-transition: -o-transform .3s ease-out;
+ transition: transform .3s ease-out;
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+}
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, .2);
+ border-radius: 6px;
+ outline: 0;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ filter: alpha(opacity=0);
+ opacity: 0;
+}
+.modal-backdrop.in {
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+}
+.modal-header .close {
+ margin-top: -2px;
+}
+.modal-title {
+ margin: 0;
+ line-height: 1.42857143;
+}
+.modal-body {
+ position: relative;
+ padding: 15px;
+}
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.modal-footer .btn + .btn {
+ margin-bottom: 0;
+ margin-left: 5px;
+}
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ white-space: normal;
+ filter: alpha(opacity=0);
+ opacity: 0;
+
+ line-break: auto;
+}
+.tooltip.in {
+ filter: alpha(opacity=90);
+ opacity: .9;
+}
+.tooltip.top {
+ padding: 5px 0;
+ margin-top: -3px;
+}
+.tooltip.right {
+ padding: 0 5px;
+ margin-left: 3px;
+}
+.tooltip.bottom {
+ padding: 5px 0;
+ margin-top: 3px;
+}
+.tooltip.left {
+ padding: 0 5px;
+ margin-left: -3px;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 4px;
+}
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-left .tooltip-arrow {
+ right: 5px;
+ bottom: 0;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1.42857143;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ white-space: normal;
+ background-color: #fff;
+ -webkit-background-clip: padding-box;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, .2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+
+ line-break: auto;
+}
+.popover.top {
+ margin-top: -10px;
+}
+.popover.right {
+ margin-left: 10px;
+}
+.popover.bottom {
+ margin-top: 10px;
+}
+.popover.left {
+ margin-left: -10px;
+}
+.popover-title {
+ padding: 8px 14px;
+ margin: 0;
+ font-size: 14px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+.popover-content {
+ padding: 9px 14px;
+}
+.popover > .arrow,
+.popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover > .arrow {
+ border-width: 11px;
+}
+.popover > .arrow:after {
+ content: "";
+ border-width: 10px;
+}
+.popover.top > .arrow {
+ bottom: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, .25);
+ border-bottom-width: 0;
+}
+.popover.top > .arrow:after {
+ bottom: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-color: #fff;
+ border-bottom-width: 0;
+}
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, .25);
+ border-left-width: 0;
+}
+.popover.right > .arrow:after {
+ bottom: -10px;
+ left: 1px;
+ content: " ";
+ border-right-color: #fff;
+ border-left-width: 0;
+}
+.popover.bottom > .arrow {
+ top: -11px;
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, .25);
+}
+.popover.bottom > .arrow:after {
+ top: 1px;
+ margin-left: -10px;
+ content: " ";
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, .25);
+}
+.popover.left > .arrow:after {
+ right: 1px;
+ bottom: -10px;
+ content: " ";
+ border-right-width: 0;
+ border-left-color: #fff;
+}
+.carousel {
+ position: relative;
+}
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+.carousel-inner > .item {
+ position: relative;
+ display: none;
+ -webkit-transition: .6s ease-in-out left;
+ -o-transition: .6s ease-in-out left;
+ transition: .6s ease-in-out left;
+}
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ line-height: 1;
+}
+@media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform .6s ease-in-out;
+ -o-transition: -o-transform .6s ease-in-out;
+ transition: transform .6s ease-in-out;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
+ }
+ .carousel-inner > .item.next,
+ .carousel-inner > .item.active.right {
+ left: 0;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+ .carousel-inner > .item.prev,
+ .carousel-inner > .item.active.left {
+ left: 0;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ }
+ .carousel-inner > .item.next.left,
+ .carousel-inner > .item.prev.right,
+ .carousel-inner > .item.active {
+ left: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+.carousel-inner > .active {
+ left: 0;
+}
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.carousel-inner > .next {
+ left: 100%;
+}
+.carousel-inner > .prev {
+ left: -100%;
+}
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+.carousel-inner > .active.left {
+ left: -100%;
+}
+.carousel-inner > .active.right {
+ left: 100%;
+}
+.carousel-control {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 15%;
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+ background-color: rgba(0, 0, 0, 0);
+ filter: alpha(opacity=50);
+ opacity: .5;
+}
+.carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+ background-repeat: repeat-x;
+}
+.carousel-control.right {
+ right: 0;
+ left: auto;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+ background-repeat: repeat-x;
+}
+.carousel-control:hover,
+.carousel-control:focus {
+ color: #fff;
+ text-decoration: none;
+ filter: alpha(opacity=90);
+ outline: 0;
+ opacity: .9;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+ margin-top: -10px;
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ font-family: serif;
+ line-height: 1;
+}
+.carousel-control .icon-prev:before {
+ content: '\2039';
+}
+.carousel-control .icon-next:before {
+ content: '\203a';
+}
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ padding-left: 0;
+ margin-left: -30%;
+ text-align: center;
+ list-style: none;
+}
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+ border: 1px solid #fff;
+ border-radius: 10px;
+}
+.carousel-indicators .active {
+ width: 12px;
+ height: 12px;
+ margin: 0;
+ background-color: #fff;
+}
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 20px;
+ left: 15%;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
+}
+.carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -10px;
+ font-size: 30px;
+ }
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .icon-prev {
+ margin-left: -10px;
+ }
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-next {
+ margin-right: -10px;
+ }
+ .carousel-caption {
+ right: 20%;
+ left: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.dl-horizontal dd:before,
+.dl-horizontal dd:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-header:before,
+.modal-header:after,
+.modal-footer:before,
+.modal-footer:after {
+ display: table;
+ content: " ";
+}
+.clearfix:after,
+.dl-horizontal dd:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-header:after,
+.modal-footer:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-right: auto;
+ margin-left: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+}
+.affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ display: none !important;
+}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table !important;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+}
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table !important;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table !important;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table !important;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+}
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print {
+ display: none !important;
+}
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table !important;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+.visible-print-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+}
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
+/*# sourceMappingURL=bootstrap.css.map */
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css.map b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css.map
new file mode 100644
index 000000000..09f8cda78
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EErDA,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNqkCD;AIxgCD;EACE,UAAA;CJ0gCD;AIpgCD;EACE,uBAAA;CJsgCD;AIlgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CPglCD;AItgCD;EACE,mBAAA;CJwgCD;AIlgCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CPgmCD;AIlgCD;EACE,mBAAA;CJogCD;AI9/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJggCD;AIx/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ0/BD;AIl/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJo/BH;AIz+BD;EACE,gBAAA;CJ2+BD;AQloCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR8oCD;AQnpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRoqCH;AQhqCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRqqCD;AQzqCD;;;;;;;;;;;;EAQI,eAAA;CR+qCH;AQ5qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRirCD;AQrrCD;;;;;;;;;;;;EAQI,eAAA;CR2rCH;AQvrCD;;EAAU,gBAAA;CR2rCT;AQ1rCD;;EAAU,gBAAA;CR8rCT;AQ7rCD;;EAAU,gBAAA;CRisCT;AQhsCD;;EAAU,gBAAA;CRosCT;AQnsCD;;EAAU,gBAAA;CRusCT;AQtsCD;;EAAU,gBAAA;CR0sCT;AQpsCD;EACE,iBAAA;CRssCD;AQnsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRqsCD;AQhsCD;EAwOA;IA1OI,gBAAA;GRssCD;CACF;AQ9rCD;;EAEE,eAAA;CRgsCD;AQ7rCD;;EAEE,0BAAA;EACA,cAAA;CR+rCD;AQ3rCD;EAAuB,iBAAA;CR8rCtB;AQ7rCD;EAAuB,kBAAA;CRgsCtB;AQ/rCD;EAAuB,mBAAA;CRksCtB;AQjsCD;EAAuB,oBAAA;CRosCtB;AQnsCD;EAAuB,oBAAA;CRssCtB;AQnsCD;EAAuB,0BAAA;CRssCtB;AQrsCD;EAAuB,0BAAA;CRwsCtB;AQvsCD;EAAuB,2BAAA;CR0sCtB;AQvsCD;EACE,eAAA;CRysCD;AQvsCD;ECrGE,eAAA;CT+yCD;AS9yCC;;EAEE,eAAA;CTgzCH;AQ3sCD;ECxGE,eAAA;CTszCD;ASrzCC;;EAEE,eAAA;CTuzCH;AQ/sCD;EC3GE,eAAA;CT6zCD;AS5zCC;;EAEE,eAAA;CT8zCH;AQntCD;EC9GE,eAAA;CTo0CD;ASn0CC;;EAEE,eAAA;CTq0CH;AQvtCD;ECjHE,eAAA;CT20CD;AS10CC;;EAEE,eAAA;CT40CH;AQvtCD;EAGE,YAAA;EE3HA,0BAAA;CVm1CD;AUl1CC;;EAEE,0BAAA;CVo1CH;AQztCD;EE9HE,0BAAA;CV01CD;AUz1CC;;EAEE,0BAAA;CV21CH;AQ7tCD;EEjIE,0BAAA;CVi2CD;AUh2CC;;EAEE,0BAAA;CVk2CH;AQjuCD;EEpIE,0BAAA;CVw2CD;AUv2CC;;EAEE,0BAAA;CVy2CH;AQruCD;EEvIE,0BAAA;CV+2CD;AU92CC;;EAEE,0BAAA;CVg3CH;AQpuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRsuCD;AQ9tCD;;EAEE,cAAA;EACA,oBAAA;CRguCD;AQnuCD;;;;EAMI,iBAAA;CRmuCH;AQ5tCD;EACE,gBAAA;EACA,iBAAA;CR8tCD;AQ1tCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR6tCD;AQ/tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR6tCH;AQxtCD;EACE,cAAA;EACA,oBAAA;CR0tCD;AQxtCD;;EAEE,wBAAA;CR0tCD;AQxtCD;EACE,kBAAA;CR0tCD;AQxtCD;EACE,eAAA;CR0tCD;AQjsCD;EA6EA;IAvFM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXs6CC;EQ9nCH;IAhFM,mBAAA;GRitCH;CACF;AQxsCD;;EAGE,aAAA;EACA,kCAAA;CRysCD;AQvsCD;EACE,eAAA;EA9IqB,0BAAA;CRw1CtB;AQrsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRusCD;AQlsCG;;;EACE,iBAAA;CRssCL;AQhtCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRksCH;AQhsCG;;;EACE,uBAAA;CRosCL;AQ5rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR8rCD;AQxrCG;;;;;;EAAW,YAAA;CRgsCd;AQ/rCG;;;;;;EACE,uBAAA;CRssCL;AQhsCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRksCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd+hDD;AazhDC;EAqEF;IAvEI,aAAA;Gb+hDD;CACF;Aa3hDC;EAkEF;IApEI,aAAA;GbiiDD;CACF;Aa7hDD;EA+DA;IAjEI,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdojDD;AavhDD;ECvBE,mBAAA;EACA,oBAAA;CdijDD;AejjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfijDL;AejiDG;EACE,YAAA;CfmiDL;Ae5hDC;EACE,YAAA;Cf8hDH;Ae/hDC;EACE,oBAAA;CfiiDH;AeliDC;EACE,oBAAA;CfoiDH;AeriDC;EACE,WAAA;CfuiDH;AexiDC;EACE,oBAAA;Cf0iDH;Ae3iDC;EACE,oBAAA;Cf6iDH;Ae9iDC;EACE,WAAA;CfgjDH;AejjDC;EACE,oBAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,WAAA;CfyjDH;Ae1jDC;EACE,oBAAA;Cf4jDH;Ae7jDC;EACE,mBAAA;Cf+jDH;AejjDC;EACE,YAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,oBAAA;CfyjDH;Ae1jDC;EACE,WAAA;Cf4jDH;Ae7jDC;EACE,oBAAA;Cf+jDH;AehkDC;EACE,oBAAA;CfkkDH;AenkDC;EACE,WAAA;CfqkDH;AetkDC;EACE,oBAAA;CfwkDH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBsrED;AgBzrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChBsrEP;AgBpsED;EAoBI,uBAAA;EACA,8BAAA;ChBmrEH;AgBxsED;;;;;;EA8BQ,cAAA;ChBkrEP;AgBhtED;EAoCI,2BAAA;ChB+qEH;AgBntED;EAyCI,uBAAA;ChB6qEH;AgBtqED;;;;;;EAOQ,aAAA;ChBuqEP;AgB5pED;EACE,uBAAA;ChB8pED;AgB/pED;;;;;;EAQQ,uBAAA;ChB+pEP;AgBvqED;;EAeM,yBAAA;ChB4pEL;AgBlpED;EAEI,0BAAA;ChBmpEH;AgB1oED;EAEI,0BAAA;ChB2oEH;AgBloED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBooED;AgB/nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBkoEL;AiB9wEC;;;;;;;;;;;;EAOI,0BAAA;CjBqxEL;AiB/wEC;;;;;EAMI,0BAAA;CjBgxEL;AiBnyEC;;;;;;;;;;;;EAOI,0BAAA;CjB0yEL;AiBpyEC;;;;;EAMI,0BAAA;CjBqyEL;AiBxzEC;;;;;;;;;;;;EAOI,0BAAA;CjB+zEL;AiBzzEC;;;;;EAMI,0BAAA;CjB0zEL;AiB70EC;;;;;;;;;;;;EAOI,0BAAA;CjBo1EL;AiB90EC;;;;;EAMI,0BAAA;CjB+0EL;AiBl2EC;;;;;;;;;;;;EAOI,0BAAA;CjBy2EL;AiBn2EC;;;;;EAMI,0BAAA;CjBo2EL;AgBltED;EACE,iBAAA;EACA,kBAAA;ChBotED;AgBvpED;EACA;IA3DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBqtED;EgB9pEH;IAnDM,iBAAA;GhBotEH;EgBjqEH;;;;;;IA1CY,oBAAA;GhBmtET;EgBzqEH;IAlCM,UAAA;GhB8sEH;EgB5qEH;;;;;;IAzBY,eAAA;GhB6sET;EgBprEH;;;;;;IArBY,gBAAA;GhBitET;EgB5rEH;;;;IARY,iBAAA;GhB0sET;CACF;AkBp6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBm6ED;AkBh6ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBk6ED;AkB/5ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBi6ED;AkBt5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL63ET;AkBt5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBw5ED;AkBr5ED;EACE,eAAA;ClBu5ED;AkBn5ED;EACE,eAAA;EACA,YAAA;ClBq5ED;AkBj5ED;;EAEE,aAAA;ClBm5ED;AkB/4ED;;;EZvEE,qBAAA;EAEA,2CAAA;EACA,qBAAA;CN09ED;AkB/4ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClBi5ED;AkBv3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CL0zET;AmBl8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CL27ET;AK15EC;EACE,YAAA;EACA,WAAA;CL45EH;AK15EC;EAA0B,YAAA;CL65E3B;AK55EC;EAAgC,YAAA;CL+5EjC;AkBn4EC;EACE,UAAA;EACA,8BAAA;ClBq4EH;AkB73EC;;;EAGE,0BAAA;EACA,WAAA;ClB+3EH;AkB53EC;;EAEE,oBAAA;ClB83EH;AkB13EC;EACE,aAAA;ClB43EH;AkBh3ED;EACE,yBAAA;ClBk3ED;AkB10ED;EAtBI;;;;IACE,kBAAA;GlBs2EH;EkBn2EC;;;;;;;;IAEE,kBAAA;GlB22EH;EkBx2EC;;;;;;;;IAEE,kBAAA;GlBg3EH;CACF;AkBt2ED;EACE,oBAAA;ClBw2ED;AkBh2ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBk2ED;AkBv2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBm2EH;AkBh2ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBk2ED;AkB/1ED;;EAEE,iBAAA;ClBi2ED;AkB71ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB+1ED;AkB71ED;;EAEE,cAAA;EACA,kBAAA;ClB+1ED;AkBt1EC;;;;;;EAGE,oBAAA;ClB21EH;AkBr1EC;;;;EAEE,oBAAA;ClBy1EH;AkBn1EC;;;;EAGI,oBAAA;ClBs1EL;AkB30ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClB20ED;AkBz0EC;;EAEE,gBAAA;EACA,iBAAA;ClB20EH;AkB9zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBokFD;AmBlkFC;EACE,aAAA;EACA,kBAAA;CnBokFH;AmBjkFC;;EAEE,aAAA;CnBmkFH;AkB10ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClB20EH;AkBj1ED;EASI,aAAA;EACA,kBAAA;ClB20EH;AkBr1ED;;EAcI,aAAA;ClB20EH;AkBz1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClB20EH;AkBv0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBymFD;AmBvmFC;EACE,aAAA;EACA,kBAAA;CnBymFH;AmBtmFC;;EAEE,aAAA;CnBwmFH;AkBn1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBo1EH;AkB11ED;EASI,aAAA;EACA,kBAAA;ClBo1EH;AkB91ED;;EAcI,aAAA;ClBo1EH;AkBl2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBo1EH;AkB30ED;EAEE,mBAAA;ClB40ED;AkB90ED;EAMI,sBAAA;ClB20EH;AkBv0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBr0ED;;;;;;;;;;EC1ZI,eAAA;CnB2uFH;AkBj1ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL4rFT;AmB1uFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CLisFT;AkB31ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnB0uFH;AkBh2ED;ECtYI,eAAA;CnByuFH;AkBh2ED;;;;;;;;;;EC7ZI,eAAA;CnBywFH;AkB52ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0tFT;AmBxwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+tFT;AkBt3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwwFH;AkB33ED;ECzYI,eAAA;CnBuwFH;AkB33ED;;;;;;;;;;EChaI,eAAA;CnBuyFH;AkBv4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwvFT;AmBtyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6vFT;AkBj5ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBsyFH;AkBt5ED;EC5YI,eAAA;CnBqyFH;AkBl5EC;EACE,UAAA;ClBo5EH;AkBl5EC;EACE,OAAA;ClBo5EH;AkB14ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB44ED;AkBzzED;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB23EH;EkBvvEH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBy3EH;EkB5vEH;IAxHM,sBAAA;GlBu3EH;EkB/vEH;IApHM,sBAAA;IACA,uBAAA;GlBs3EH;EkBnwEH;;;IA9GQ,YAAA;GlBs3EL;EkBxwEH;IAxGM,YAAA;GlBm3EH;EkB3wEH;IApGM,iBAAA;IACA,uBAAA;GlBk3EH;EkB/wEH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+2EH;EkBtxEH;;IAtFQ,gBAAA;GlBg3EL;EkB1xEH;;IAjFM,mBAAA;IACA,eAAA;GlB+2EH;EkB/xEH;IA3EM,OAAA;GlB62EH;CACF;AkBn2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClBg2EH;AkB32ED;;EAiBI,iBAAA;ClB81EH;AkB/2ED;EJthBE,mBAAA;EACA,oBAAA;Cdw4FD;AkB50EC;EAyBF;IAnCM,kBAAA;IACA,iBAAA;IACA,iBAAA;GlB01EH;CACF;AkB13ED;EAwCI,YAAA;ClBq1EH;AkBv0EC;EAUF;IAdQ,kBAAA;IACA,gBAAA;GlB+0EL;CACF;AkBr0EC;EAEF;IANQ,iBAAA;IACA,gBAAA;GlB60EL;CACF;AoBt6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC0CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB+JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CLiuFT;AoBz6FG;;;;;;EdrBF,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNq8FD;AoB76FC;;;EAGE,YAAA;EACA,sBAAA;CpB+6FH;AoB56FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLo5FT;AoB56FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL65FT;AoB56FG;;EAEE,qBAAA;CpB86FL;AoBr6FD;EC3DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBm+FD;AqBj+FC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBy+FT;AqBt+FC;;;EAGE,uBAAA;CrBw+FH;AqBn+FG;;;;;;;;;EAGE,uBAAA;EACI,mBAAA;CrB2+FT;AoB19FD;ECZI,YAAA;EACA,uBAAA;CrBy+FH;AoB39FD;EC9DE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB4hGD;AqB1hGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBkiGT;AqB/hGC;;;EAGE,uBAAA;CrBiiGH;AqB5hGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBoiGT;AoBhhGD;ECfI,eAAA;EACA,uBAAA;CrBkiGH;AoBhhGD;EClEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBqlGD;AqBnlGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2lGT;AqBxlGC;;;EAGE,uBAAA;CrB0lGH;AqBrlGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB6lGT;AoBrkGD;ECnBI,eAAA;EACA,uBAAA;CrB2lGH;AoBrkGD;ECtEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB8oGD;AqB5oGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBopGT;AqBjpGC;;;EAGE,uBAAA;CrBmpGH;AqB9oGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBspGT;AoB1nGD;ECvBI,eAAA;EACA,uBAAA;CrBopGH;AoB1nGD;EC1EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBusGD;AqBrsGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6sGT;AqB1sGC;;;EAGE,uBAAA;CrB4sGH;AqBvsGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB+sGT;AoB/qGD;EC3BI,eAAA;EACA,uBAAA;CrB6sGH;AoB/qGD;EC9EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBgwGD;AqB9vGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBswGT;AqBnwGC;;;EAGE,uBAAA;CrBqwGH;AqBhwGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBwwGT;AoBpuGD;EC/BI,eAAA;EACA,uBAAA;CrBswGH;AoB/tGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpBiuGD;AoB/tGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLqwGT;AoBhuGC;;;;EAIE,0BAAA;CpBkuGH;AoBhuGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpBkuGH;AoB9tGG;;;;EAEE,eAAA;EACA,sBAAA;CpBkuGL;AoBztGD;;ECxEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBqyGD;AoB5tGD;;EC5EE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrB4yGD;AoB/tGD;;EChFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBmzGD;AoB9tGD;EACE,eAAA;EACA,YAAA;CpBguGD;AoB5tGD;EACE,gBAAA;CpB8tGD;AoBvtGC;;;EACE,YAAA;CpB2tGH;AuBr3GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLosGT;AuBx3GC;EACE,WAAA;CvB03GH;AuBt3GD;EACE,cAAA;CvBw3GD;AuBt3GC;EAAY,eAAA;CvBy3Gb;AuBx3GC;EAAY,mBAAA;CvB23Gb;AuB13GC;EAAY,yBAAA;CvB63Gb;AuB13GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CL8sGT;AwBx5GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxB05GD;AwBt5GD;;EAEE,mBAAA;CxBw5GD;AwBp5GD;EACE,WAAA;CxBs5GD;AwBl5GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBq5GD;AwBh5GC;EACE,SAAA;EACA,WAAA;CxBk5GH;AwB36GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBu8GD;AwBj7GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBi5GH;AwB34GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB64GH;AwBv4GC;;;EAGE,YAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxBy4GH;AwBh4GC;;;EAGE,eAAA;CxBk4GH;AwB93GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxBg4GH;AwB33GD;EAGI,eAAA;CxB23GH;AwB93GD;EAQI,WAAA;CxBy3GH;AwBj3GD;EACE,WAAA;EACA,SAAA;CxBm3GD;AwB32GD;EACE,QAAA;EACA,YAAA;CxB62GD;AwBz2GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB22GD;AwBv2GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxBy2GD;AwBr2GD;EACE,SAAA;EACA,WAAA;CxBu2GD;AwB/1GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxB+1GH;AwBt2GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB+1GH;AwB10GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB65GC;EwB11GD;IA1DA,QAAA;IACA,YAAA;GxBu5GC;CACF;A2BviHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3ByiHD;A2B7iHD;;EAMI,mBAAA;EACA,YAAA;C3B2iHH;A2BziHG;;;;;;;;EAIE,WAAA;C3B+iHL;A2BziHD;;;;EAKI,kBAAA;C3B0iHH;A2BriHD;EACE,kBAAA;C3BuiHD;A2BxiHD;;;EAOI,YAAA;C3BsiHH;A2B7iHD;;;EAYI,iBAAA;C3BsiHH;A2BliHD;EACE,iBAAA;C3BoiHD;A2BhiHD;EACE,eAAA;C3BkiHD;A2BjiHC;EClDA,8BAAA;EACG,2BAAA;C5BslHJ;A2BhiHD;;EC/CE,6BAAA;EACG,0BAAA;C5BmlHJ;A2B/hHD;EACE,YAAA;C3BiiHD;A2B/hHD;EACE,iBAAA;C3BiiHD;A2B/hHD;;ECnEE,8BAAA;EACG,2BAAA;C5BsmHJ;A2B9hHD;ECjEE,6BAAA;EACG,0BAAA;C5BkmHJ;A2B7hHD;;EAEE,WAAA;C3B+hHD;A2B9gHD;EACE,kBAAA;EACA,mBAAA;C3BghHD;A2B9gHD;EACE,mBAAA;EACA,oBAAA;C3BghHD;A2B3gHD;EtB/CE,yDAAA;EACQ,iDAAA;CL6jHT;A2B3gHC;EtBnDA,yBAAA;EACQ,iBAAA;CLikHT;A2BxgHD;EACE,eAAA;C3B0gHD;A2BvgHD;EACE,wBAAA;EACA,uBAAA;C3BygHD;A2BtgHD;EACE,wBAAA;C3BwgHD;A2BjgHD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3BkgHH;A2BzgHD;EAcM,YAAA;C3B8/GL;A2B5gHD;;;;EAsBI,iBAAA;EACA,eAAA;C3B4/GH;A2Bv/GC;EACE,iBAAA;C3By/GH;A2Bv/GC;EC3KA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B+pHF;A2Bz/GC;EC/KA,2BAAA;EACC,0BAAA;EAOD,gCAAA;EACC,+BAAA;C5BqqHF;A2B1/GD;EACE,iBAAA;C3B4/GD;A2B1/GD;;EC/KE,8BAAA;EACC,6BAAA;C5B6qHF;A2Bz/GD;EC7LE,2BAAA;EACC,0BAAA;C5ByrHF;A2Br/GD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3Bu/GD;A2B3/GD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3Bw/GH;A2BjgHD;EAYI,YAAA;C3Bw/GH;A2BpgHD;EAgBI,WAAA;C3Bu/GH;A2Bt+GD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3Bu+GL;A6BjtHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BmtHD;A6BhtHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7BktHH;A6B3tHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7B0sHH;A6BxsHG;EACE,WAAA;C7B0sHL;A6BhsHD;;;EV0BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnB2qHD;AmBzqHC;;;EACE,aAAA;EACA,kBAAA;CnB6qHH;AmB1qHC;;;;;;EAEE,aAAA;CnBgrHH;A6BltHD;;;EVqBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBksHD;AmBhsHC;;;EACE,aAAA;EACA,kBAAA;CnBosHH;AmBjsHC;;;;;;EAEE,aAAA;CnBusHH;A6BhuHD;;;EAGE,oBAAA;C7BkuHD;A6BhuHC;;;EACE,iBAAA;C7BouHH;A6BhuHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7BkuHD;A6B7tHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7B+tHD;A6B5tHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B8tHH;A6B5tHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B8tHH;A6BlvHD;;EA0BI,cAAA;C7B4tHH;A6BvtHD;;;;;;;EDpGE,8BAAA;EACG,2BAAA;C5Bo0HJ;A6BxtHD;EACE,gBAAA;C7B0tHD;A6BxtHD;;;;;;;EDxGE,6BAAA;EACG,0BAAA;C5By0HJ;A6BztHD;EACE,eAAA;C7B2tHD;A6BttHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BstHD;A6B3tHD;EAUI,mBAAA;C7BotHH;A6B9tHD;EAYM,kBAAA;C7BqtHL;A6BltHG;;;EAGE,WAAA;C7BotHL;A6B/sHC;;EAGI,mBAAA;C7BgtHL;A6B7sHC;;EAGI,WAAA;EACA,kBAAA;C7B8sHL;A8B72HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B+2HD;A8Bl3HD;EAOI,mBAAA;EACA,eAAA;C9B82HH;A8Bt3HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B82HL;A8B72HK;;EAEE,sBAAA;EACA,0BAAA;C9B+2HP;A8B12HG;EACE,eAAA;C9B42HL;A8B12HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9B42HP;A8Br2HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bu2HL;A8Bh5HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBs5HD;A8Bt5HD;EA0DI,gBAAA;C9B+1HH;A8Bt1HD;EACE,8BAAA;C9Bw1HD;A8Bz1HD;EAGI,YAAA;EAEA,oBAAA;C9Bw1HH;A8B71HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bu1HL;A8Bt1HK;EACE,mCAAA;C9Bw1HP;A8Bl1HK;;;EAGE,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;EACA,gBAAA;C9Bo1HP;A8B/0HC;EAqDA,YAAA;EA8BA,iBAAA;C9BgwHD;A8Bn1HC;EAwDE,YAAA;C9B8xHH;A8Bt1HC;EA0DI,mBAAA;EACA,mBAAA;C9B+xHL;A8B11HC;EAgEE,UAAA;EACA,WAAA;C9B6xHH;A8BjxHD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B4xHH;E8B5tHH;IA9DQ,iBAAA;G9B6xHL;CACF;A8Bv2HC;EAuFE,gBAAA;EACA,mBAAA;C9BmxHH;A8B32HC;;;EA8FE,uBAAA;C9BkxHH;A8BpwHD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9BixHH;E8B9uHH;;;IA9BM,0BAAA;G9BixHH;CACF;A8Bl3HD;EAEI,YAAA;C9Bm3HH;A8Br3HD;EAMM,mBAAA;C9Bk3HL;A8Bx3HD;EASM,iBAAA;C9Bk3HL;A8B72HK;;;EAGE,YAAA;EACA,0BAAA;C9B+2HP;A8Bv2HD;EAEI,YAAA;C9Bw2HH;A8B12HD;EAIM,gBAAA;EACA,eAAA;C9By2HL;A8B71HD;EACE,YAAA;C9B+1HD;A8Bh2HD;EAII,YAAA;C9B+1HH;A8Bn2HD;EAMM,mBAAA;EACA,mBAAA;C9Bg2HL;A8Bv2HD;EAYI,UAAA;EACA,WAAA;C9B81HH;A8Bl1HD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B61HH;E8B7xHH;IA9DQ,iBAAA;G9B81HL;CACF;A8Bt1HD;EACE,iBAAA;C9Bw1HD;A8Bz1HD;EAKI,gBAAA;EACA,mBAAA;C9Bu1HH;A8B71HD;;;EAYI,uBAAA;C9Bs1HH;A8Bx0HD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9Bq1HH;E8BlzHH;;;IA9BM,0BAAA;G9Bq1HH;CACF;A8B50HD;EAEI,cAAA;C9B60HH;A8B/0HD;EAKI,eAAA;C9B60HH;A8Bp0HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5BijIF;A+B3iID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B6iID;A+BriID;EA8nBA;IAhoBI,mBAAA;G/B2iID;CACF;A+B5hID;EAgnBA;IAlnBI,YAAA;G/BkiID;CACF;A+BphID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BqhID;A+BnhIC;EACE,iBAAA;C/BqhIH;A+Bz/HD;EA6jBA;IArlBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BqhID;E+BnhIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BqhIH;E+BlhIC;IACE,oBAAA;G/BohIH;E+B/gIC;;;IAGE,gBAAA;IACA,iBAAA;G/BihIH;CACF;A+B7gID;;EAGI,kBAAA;C/B8gIH;A+BzgIC;EAmjBF;;IArjBM,kBAAA;G/BghIH;CACF;A+BvgID;;;;EAII,oBAAA;EACA,mBAAA;C/BygIH;A+BngIC;EAgiBF;;;;IAniBM,gBAAA;IACA,eAAA;G/B6gIH;CACF;A+BjgID;EACE,cAAA;EACA,sBAAA;C/BmgID;A+B9/HD;EA8gBA;IAhhBI,iBAAA;G/BogID;CACF;A+BhgID;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/BkgID;A+B5/HD;EAggBA;;IAlgBI,iBAAA;G/BmgID;CACF;A+BjgID;EACE,OAAA;EACA,sBAAA;C/BmgID;A+BjgID;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BmgID;A+B7/HD;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B+/HD;A+B7/HC;;EAEE,sBAAA;C/B+/HH;A+BxgID;EAaI,eAAA;C/B8/HH;A+Br/HD;EALI;;IAEE,mBAAA;G/B6/HH;CACF;A+Bn/HD;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/Bs/HD;A+Bl/HC;EACE,WAAA;C/Bo/HH;A+BlgID;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/Bk/HH;A+BxgID;EAyBI,gBAAA;C/Bk/HH;A+B5+HD;EAqbA;IAvbI,cAAA;G/Bk/HD;CACF;A+Bz+HD;EACE,oBAAA;C/B2+HD;A+B5+HD;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/B2+HH;A+B/8HC;EA2YF;IAjaM,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/By+HH;E+B9kHH;;IAxZQ,2BAAA;G/B0+HL;E+BllHH;IArZQ,kBAAA;G/B0+HL;E+Bz+HK;;IAEE,uBAAA;G/B2+HP;CACF;A+Bz9HD;EA+XA;IA1YI,YAAA;IACA,UAAA;G/Bw+HD;E+B/lHH;IAtYM,YAAA;G/Bw+HH;E+BlmHH;IApYQ,kBAAA;IACA,qBAAA;G/By+HL;CACF;A+B99HD;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC+vID;AkBzuHD;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB2yHH;EkBvqHH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlByyHH;EkB5qHH;IAxHM,sBAAA;GlBuyHH;EkB/qHH;IApHM,sBAAA;IACA,uBAAA;GlBsyHH;EkBnrHH;;;IA9GQ,YAAA;GlBsyHL;EkBxrHH;IAxGM,YAAA;GlBmyHH;EkB3rHH;IApGM,iBAAA;IACA,uBAAA;GlBkyHH;EkB/rHH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+xHH;EkBtsHH;;IAtFQ,gBAAA;GlBgyHL;EkB1sHH;;IAjFM,mBAAA;IACA,eAAA;GlB+xHH;EkB/sHH;IA3EM,OAAA;GlB6xHH;CACF;A+BvgIC;EAmWF;IAzWM,mBAAA;G/BihIH;E+B/gIG;IACE,iBAAA;G/BihIL;CACF;A+BhgID;EAoVA;IA5VI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLswIP;CACF;A+BtgID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B60IF;A+BtgID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B40IF;A+BlgID;EChVE,gBAAA;EACA,mBAAA;ChCq1ID;A+BngIC;ECnVA,iBAAA;EACA,oBAAA;ChCy1ID;A+BpgIC;ECtVA,iBAAA;EACA,oBAAA;ChC61ID;A+B9/HD;EChWE,iBAAA;EACA,oBAAA;ChCi2ID;A+B1/HD;EAsSA;IA1SI,YAAA;IACA,kBAAA;IACA,mBAAA;G/BkgID;CACF;A+Br+HD;EAhBE;IExWA,uBAAA;GjCi2IC;E+Bx/HD;IE5WA,wBAAA;IF8WE,oBAAA;G/B0/HD;E+B5/HD;IAKI,gBAAA;G/B0/HH;CACF;A+Bj/HD;EACE,0BAAA;EACA,sBAAA;C/Bm/HD;A+Br/HD;EAKI,YAAA;C/Bm/HH;A+Bl/HG;;EAEE,eAAA;EACA,8BAAA;C/Bo/HL;A+B7/HD;EAcI,YAAA;C/Bk/HH;A+BhgID;EAmBM,YAAA;C/Bg/HL;A+B9+HK;;EAEE,YAAA;EACA,8BAAA;C/Bg/HP;A+B5+HK;;;EAGE,YAAA;EACA,0BAAA;C/B8+HP;A+B1+HK;;;EAGE,YAAA;EACA,8BAAA;C/B4+HP;A+BphID;EA8CI,mBAAA;C/By+HH;A+Bx+HG;;EAEE,uBAAA;C/B0+HL;A+B3hID;EAoDM,uBAAA;C/B0+HL;A+B9hID;;EA0DI,sBAAA;C/Bw+HH;A+Bj+HK;;;EAGE,0BAAA;EACA,YAAA;C/Bm+HP;A+Bl8HC;EAoKF;IA7LU,YAAA;G/B+9HP;E+B99HO;;IAEE,YAAA;IACA,8BAAA;G/Bg+HT;E+B59HO;;;IAGE,YAAA;IACA,0BAAA;G/B89HT;E+B19HO;;;IAGE,YAAA;IACA,8BAAA;G/B49HT;CACF;A+B9jID;EA8GI,YAAA;C/Bm9HH;A+Bl9HG;EACE,YAAA;C/Bo9HL;A+BpkID;EAqHI,YAAA;C/Bk9HH;A+Bj9HG;;EAEE,YAAA;C/Bm9HL;A+B/8HK;;;;EAEE,YAAA;C/Bm9HP;A+B38HD;EACE,uBAAA;EACA,sBAAA;C/B68HD;A+B/8HD;EAKI,eAAA;C/B68HH;A+B58HG;;EAEE,YAAA;EACA,8BAAA;C/B88HL;A+Bv9HD;EAcI,eAAA;C/B48HH;A+B19HD;EAmBM,eAAA;C/B08HL;A+Bx8HK;;EAEE,YAAA;EACA,8BAAA;C/B08HP;A+Bt8HK;;;EAGE,YAAA;EACA,0BAAA;C/Bw8HP;A+Bp8HK;;;EAGE,YAAA;EACA,8BAAA;C/Bs8HP;A+B9+HD;EA+CI,mBAAA;C/Bk8HH;A+Bj8HG;;EAEE,uBAAA;C/Bm8HL;A+Br/HD;EAqDM,uBAAA;C/Bm8HL;A+Bx/HD;;EA2DI,sBAAA;C/Bi8HH;A+B37HK;;;EAGE,0BAAA;EACA,YAAA;C/B67HP;A+Bt5HC;EAwBF;IAvDU,sBAAA;G/By7HP;E+Bl4HH;IApDU,0BAAA;G/By7HP;E+Br4HH;IAjDU,eAAA;G/By7HP;E+Bx7HO;;IAEE,YAAA;IACA,8BAAA;G/B07HT;E+Bt7HO;;;IAGE,YAAA;IACA,0BAAA;G/Bw7HT;E+Bp7HO;;;IAGE,YAAA;IACA,8BAAA;G/Bs7HT;CACF;A+B9hID;EA+GI,eAAA;C/Bk7HH;A+Bj7HG;EACE,YAAA;C/Bm7HL;A+BpiID;EAsHI,eAAA;C/Bi7HH;A+Bh7HG;;EAEE,YAAA;C/Bk7HL;A+B96HK;;;;EAEE,YAAA;C/Bk7HP;AkC5jJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC8jJD;AkCnkJD;EAQI,sBAAA;ClC8jJH;AkCtkJD;EAWM,kBAAA;EACA,eAAA;EACA,YAAA;ClC8jJL;AkC3kJD;EAkBI,eAAA;ClC4jJH;AmChlJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnCklJD;AmCtlJD;EAOI,gBAAA;CnCklJH;AmCzlJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,kBAAA;CnCmlJL;AmCjlJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B8lJJ;AmChlJG;;EPvBF,gCAAA;EACG,6BAAA;C5B2mJJ;AmC3kJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC+kJL;AmCzkJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC8kJL;AmCroJD;;;;;;EAkEM,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;CnC2kJL;AmClkJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpCipJL;AoC/oJG;;ERKF,+BAAA;EACG,4BAAA;C5B8oJJ;AoC9oJG;;ERTF,gCAAA;EACG,6BAAA;C5B2pJJ;AmC7kJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpCiqJL;AoC/pJG;;ERKF,+BAAA;EACG,4BAAA;C5B8pJJ;AoC9pJG;;ERTF,gCAAA;EACG,6BAAA;C5B2qJJ;AqC9qJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrCgrJD;AqCprJD;EAOI,gBAAA;CrCgrJH;AqCvrJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrCirJL;AqC/rJD;;EAmBM,sBAAA;EACA,0BAAA;CrCgrJL;AqCpsJD;;EA2BM,aAAA;CrC6qJL;AqCxsJD;;EAkCM,YAAA;CrC0qJL;AqC5sJD;;;;EA2CM,eAAA;EACA,uBAAA;EACA,oBAAA;CrCuqJL;AsCrtJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCutJD;AsCntJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtCqtJL;AsChtJC;EACE,cAAA;CtCktJH;AsC9sJC;EACE,mBAAA;EACA,UAAA;CtCgtJH;AsCzsJD;ECtCE,0BAAA;CvCkvJD;AuC/uJG;;EAEE,0BAAA;CvCivJL;AsC5sJD;EC1CE,0BAAA;CvCyvJD;AuCtvJG;;EAEE,0BAAA;CvCwvJL;AsC/sJD;EC9CE,0BAAA;CvCgwJD;AuC7vJG;;EAEE,0BAAA;CvC+vJL;AsCltJD;EClDE,0BAAA;CvCuwJD;AuCpwJG;;EAEE,0BAAA;CvCswJL;AsCrtJD;ECtDE,0BAAA;CvC8wJD;AuC3wJG;;EAEE,0BAAA;CvC6wJL;AsCxtJD;EC1DE,0BAAA;CvCqxJD;AuClxJG;;EAEE,0BAAA;CvCoxJL;AwCtxJD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCwxJD;AwCrxJC;EACE,cAAA;CxCuxJH;AwCnxJC;EACE,mBAAA;EACA,UAAA;CxCqxJH;AwClxJC;;EAEE,OAAA;EACA,iBAAA;CxCoxJH;AwC/wJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxCixJL;AwC5wJC;;EAEE,eAAA;EACA,uBAAA;CxC8wJH;AwC3wJC;EACE,aAAA;CxC6wJH;AwC1wJC;EACE,kBAAA;CxC4wJH;AwCzwJC;EACE,iBAAA;CxC2wJH;AyCr0JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCu0JD;AyC50JD;;EASI,eAAA;CzCu0JH;AyCh1JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCs0JH;AyCr1JD;EAmBI,0BAAA;CzCq0JH;AyCl0JC;;EAEE,mBAAA;EACA,mBAAA;EACA,oBAAA;CzCo0JH;AyC91JD;EA8BI,gBAAA;CzCm0JH;AyCjzJD;EACA;IAfI,kBAAA;IACA,qBAAA;GzCm0JD;EyCj0JC;;IAEE,mBAAA;IACA,oBAAA;GzCm0JH;EyC1zJH;;IAJM,gBAAA;GzCk0JH;CACF;A0C/2JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CLisJT;A0C33JD;;EAaI,kBAAA;EACA,mBAAA;C1Ck3JH;A0C92JC;;;EAGE,sBAAA;C1Cg3JH;A0Cr4JD;EA0BI,aAAA;EACA,eAAA;C1C82JH;A2Cv4JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cy4JD;A2C74JD;EAQI,cAAA;EAEA,eAAA;C3Cu4JH;A2Cj5JD;EAeI,kBAAA;C3Cq4JH;A2Cp5JD;;EAqBI,iBAAA;C3Cm4JH;A2Cx5JD;EAyBI,gBAAA;C3Ck4JH;A2C13JD;;EAEE,oBAAA;C3C43JD;A2C93JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3C43JH;A2Cp3JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C86JD;A2Cz3JD;EClDI,0BAAA;C5C86JH;A2C53JD;EC/CI,eAAA;C5C86JH;A2C33JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cy7JD;A2Ch4JD;ECtDI,0BAAA;C5Cy7JH;A2Cn4JD;ECnDI,eAAA;C5Cy7JH;A2Cl4JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Co8JD;A2Cv4JD;EC1DI,0BAAA;C5Co8JH;A2C14JD;ECvDI,eAAA;C5Co8JH;A2Cz4JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C+8JD;A2C94JD;EC9DI,0BAAA;C5C+8JH;A2Cj5JD;EC3DI,eAAA;C5C+8JH;A6Cj9JD;EACE;IAAQ,4BAAA;G7Co9JP;E6Cn9JD;IAAQ,yBAAA;G7Cs9JP;CACF;A6Cn9JD;EACE;IAAQ,4BAAA;G7Cs9JP;E6Cr9JD;IAAQ,yBAAA;G7Cw9JP;CACF;A6C39JD;EACE;IAAQ,4BAAA;G7Cs9JP;E6Cr9JD;IAAQ,yBAAA;G7Cw9JP;CACF;A6Cj9JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL86JT;A6Ch9JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CLk0JT;A6C78JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7Ci9JD;A6C18JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CL0/JT;A6Cv8JD;EErEE,0BAAA;C/C+gKD;A+C5gKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C+9JH;A6C38JD;EEzEE,0BAAA;C/CuhKD;A+CphKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Cu+JH;A6C/8JD;EE7EE,0BAAA;C/C+hKD;A+C5hKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C++JH;A6Cn9JD;EEjFE,0BAAA;C/CuiKD;A+CpiKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Cu/JH;AgD/iKD;EAEE,iBAAA;ChDgjKD;AgD9iKC;EACE,cAAA;ChDgjKH;AgD5iKD;;EAEE,QAAA;EACA,iBAAA;ChD8iKD;AgD3iKD;EACE,eAAA;ChD6iKD;AgD1iKD;EACE,eAAA;ChD4iKD;AgDziKC;EACE,gBAAA;ChD2iKH;AgDviKD;;EAEE,mBAAA;ChDyiKD;AgDtiKD;;EAEE,oBAAA;ChDwiKD;AgDriKD;;;EAGE,oBAAA;EACA,oBAAA;ChDuiKD;AgDpiKD;EACE,uBAAA;ChDsiKD;AgDniKD;EACE,uBAAA;ChDqiKD;AgDjiKD;EACE,cAAA;EACA,mBAAA;ChDmiKD;AgD7hKD;EACE,gBAAA;EACA,iBAAA;ChD+hKD;AiDtlKD;EAEE,oBAAA;EACA,gBAAA;CjDulKD;AiD/kKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjDglKD;AiD7kKC;ErB3BA,6BAAA;EACC,4BAAA;C5B2mKF;AiD9kKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BwmKF;AiDvkKD;;EAEE,YAAA;CjDykKD;AiD3kKD;;EAKI,YAAA;CjD0kKH;AiDtkKC;;;;EAEE,sBAAA;EACA,YAAA;EACA,0BAAA;CjD0kKH;AiDtkKD;EACE,YAAA;EACA,iBAAA;CjDwkKD;AiDnkKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDqkKH;AiD1kKC;;;EASI,eAAA;CjDskKL;AiD/kKC;;;EAYI,eAAA;CjDwkKL;AiDnkKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDqkKH;AiD3kKC;;;;;;;;;EAYI,eAAA;CjD0kKL;AiDtlKC;;;EAeI,eAAA;CjD4kKL;AkD9qKC;EACE,eAAA;EACA,0BAAA;ClDgrKH;AkD9qKG;;EAEE,eAAA;ClDgrKL;AkDlrKG;;EAKI,eAAA;ClDirKP;AkD9qKK;;;;EAEE,eAAA;EACA,0BAAA;ClDkrKP;AkDhrKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDqrKP;AkD3sKC;EACE,eAAA;EACA,0BAAA;ClD6sKH;AkD3sKG;;EAEE,eAAA;ClD6sKL;AkD/sKG;;EAKI,eAAA;ClD8sKP;AkD3sKK;;;;EAEE,eAAA;EACA,0BAAA;ClD+sKP;AkD7sKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDktKP;AkDxuKC;EACE,eAAA;EACA,0BAAA;ClD0uKH;AkDxuKG;;EAEE,eAAA;ClD0uKL;AkD5uKG;;EAKI,eAAA;ClD2uKP;AkDxuKK;;;;EAEE,eAAA;EACA,0BAAA;ClD4uKP;AkD1uKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD+uKP;AkDrwKC;EACE,eAAA;EACA,0BAAA;ClDuwKH;AkDrwKG;;EAEE,eAAA;ClDuwKL;AkDzwKG;;EAKI,eAAA;ClDwwKP;AkDrwKK;;;;EAEE,eAAA;EACA,0BAAA;ClDywKP;AkDvwKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD4wKP;AiD3qKD;EACE,cAAA;EACA,mBAAA;CjD6qKD;AiD3qKD;EACE,iBAAA;EACA,iBAAA;CjD6qKD;AmDvyKD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CLgvKT;AmDtyKD;EACE,cAAA;CnDwyKD;AmDnyKD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5B0zKF;AmDzyKD;EAMI,eAAA;CnDsyKH;AmDjyKD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDmyKD;AmDvyKD;;;;;EAWI,eAAA;CnDmyKH;AmD9xKD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5By0KF;AmDxxKD;;EAGI,iBAAA;CnDyxKH;AmD5xKD;;EAMM,oBAAA;EACA,iBAAA;CnD0xKL;AmDtxKG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5Bg2KF;AmDpxKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B81KF;AmD7yKD;EvB1DE,2BAAA;EACC,0BAAA;C5B02KF;AmDhxKD;EAEI,oBAAA;CnDixKH;AmD9wKD;EACE,oBAAA;CnDgxKD;AmDxwKD;;;EAII,iBAAA;CnDywKH;AmD7wKD;;;EAOM,mBAAA;EACA,oBAAA;CnD2wKL;AmDnxKD;;EvBzGE,6BAAA;EACC,4BAAA;C5Bg4KF;AmDxxKD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnD2wKP;AmD/xKD;;;;;;;;EAwBU,4BAAA;CnDixKT;AmDzyKD;;;;;;;;EA4BU,6BAAA;CnDuxKT;AmDnzKD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bw5KF;AmDxzKD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDqxKP;AmD/zKD;;;;;;;;EA8CU,+BAAA;CnD2xKT;AmDz0KD;;;;;;;;EAkDU,gCAAA;CnDiyKT;AmDn1KD;;;;EA2DI,2BAAA;CnD8xKH;AmDz1KD;;EA+DI,cAAA;CnD8xKH;AmD71KD;;EAmEI,UAAA;CnD8xKH;AmDj2KD;;;;;;;;;;;;EA0EU,eAAA;CnDqyKT;AmD/2KD;;;;;;;;;;;;EA8EU,gBAAA;CnD+yKT;AmD73KD;;;;;;;;EAuFU,iBAAA;CnDgzKT;AmDv4KD;;;;;;;;EAgGU,iBAAA;CnDizKT;AmDj5KD;EAsGI,UAAA;EACA,iBAAA;CnD8yKH;AmDpyKD;EACE,oBAAA;CnDsyKD;AmDvyKD;EAKI,iBAAA;EACA,mBAAA;CnDqyKH;AmD3yKD;EASM,gBAAA;CnDqyKL;AmD9yKD;EAcI,iBAAA;CnDmyKH;AmDjzKD;;EAkBM,2BAAA;CnDmyKL;AmDrzKD;EAuBI,cAAA;CnDiyKH;AmDxzKD;EAyBM,8BAAA;CnDkyKL;AmD3xKD;EC1PE,mBAAA;CpDwhLD;AoDthLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDwhLH;AoD3hLC;EAMI,uBAAA;CpDwhLL;AoD9hLC;EASI,eAAA;EACA,0BAAA;CpDwhLL;AoDrhLC;EAEI,0BAAA;CpDshLL;AmD1yKD;EC7PE,sBAAA;CpD0iLD;AoDxiLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpD0iLH;AoD7iLC;EAMI,0BAAA;CpD0iLL;AoDhjLC;EASI,eAAA;EACA,uBAAA;CpD0iLL;AoDviLC;EAEI,6BAAA;CpDwiLL;AmDzzKD;EChQE,sBAAA;CpD4jLD;AoD1jLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD4jLH;AoD/jLC;EAMI,0BAAA;CpD4jLL;AoDlkLC;EASI,eAAA;EACA,0BAAA;CpD4jLL;AoDzjLC;EAEI,6BAAA;CpD0jLL;AmDx0KD;ECnQE,sBAAA;CpD8kLD;AoD5kLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD8kLH;AoDjlLC;EAMI,0BAAA;CpD8kLL;AoDplLC;EASI,eAAA;EACA,0BAAA;CpD8kLL;AoD3kLC;EAEI,6BAAA;CpD4kLL;AmDv1KD;ECtQE,sBAAA;CpDgmLD;AoD9lLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDgmLH;AoDnmLC;EAMI,0BAAA;CpDgmLL;AoDtmLC;EASI,eAAA;EACA,0BAAA;CpDgmLL;AoD7lLC;EAEI,6BAAA;CpD8lLL;AmDt2KD;ECzQE,sBAAA;CpDknLD;AoDhnLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDknLH;AoDrnLC;EAMI,0BAAA;CpDknLL;AoDxnLC;EASI,eAAA;EACA,0BAAA;CpDknLL;AoD/mLC;EAEI,6BAAA;CpDgnLL;AqDhoLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrDkoLD;AqDvoLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrDkoLH;AqD7nLD;EACE,uBAAA;CrD+nLD;AqD3nLD;EACE,oBAAA;CrD6nLD;AsDxpLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLmmLT;AsDlqLD;EASI,mBAAA;EACA,kCAAA;CtD4pLH;AsDvpLD;EACE,cAAA;EACA,mBAAA;CtDypLD;AsDvpLD;EACE,aAAA;EACA,mBAAA;CtDypLD;AuD/qLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBwrLD;AuDhrLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtBgsLD;AuD5qLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD8qLH;AwDnsLD;EACE,iBAAA;CxDqsLD;AwDjsLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxDgsLD;AwD7rLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CLghLT;AwDnsLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CL2lLT;AwDvsLD;EACE,mBAAA;EACA,iBAAA;CxDysLD;AwDrsLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDusLD;AwDnsLD;EACE,mBAAA;EACA,uBAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDqsLD;AwDjsLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxDmsLD;AwDjsLC;ElCrEA,WAAA;EAGA,yBAAA;CtBuwLD;AwDpsLC;ElCtEA,aAAA;EAGA,0BAAA;CtB2wLD;AwDnsLD;EACE,cAAA;EACA,iCAAA;CxDqsLD;AwDjsLD;EACE,iBAAA;CxDmsLD;AwD/rLD;EACE,UAAA;EACA,wBAAA;CxDisLD;AwD5rLD;EACE,mBAAA;EACA,cAAA;CxD8rLD;AwD1rLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxD4rLD;AwD/rLD;EAQI,iBAAA;EACA,iBAAA;CxD0rLH;AwDnsLD;EAaI,kBAAA;CxDyrLH;AwDtsLD;EAiBI,eAAA;CxDwrLH;AwDnrLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDqrLD;AwDnqLD;EAZE;IACE,aAAA;IACA,kBAAA;GxDkrLD;EwDhrLD;InDvEA,kDAAA;IACQ,0CAAA;GL0vLP;EwD/qLD;IAAY,aAAA;GxDkrLX;CACF;AwD7qLD;EAFE;IAAY,aAAA;GxDmrLX;CACF;AyDl0LD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBy1LD;AyD90LC;EnCdA,aAAA;EAGA,0BAAA;CtB61LD;AyDj1LC;EAAW,iBAAA;EAAmB,eAAA;CzDq1L/B;AyDp1LC;EAAW,iBAAA;EAAmB,eAAA;CzDw1L/B;AyDv1LC;EAAW,gBAAA;EAAmB,eAAA;CzD21L/B;AyD11LC;EAAW,kBAAA;EAAmB,eAAA;CzD81L/B;AyD11LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzD41LD;AyDx1LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzD01LD;AyDt1LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzDw1LH;AyDt1LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;A2Dr7LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,uBAAA;EACA,qCAAA;UAAA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLq5LT;A2Dh8LC;EAAY,kBAAA;C3Dm8Lb;A2Dl8LC;EAAY,kBAAA;C3Dq8Lb;A2Dp8LC;EAAY,iBAAA;C3Du8Lb;A2Dt8LC;EAAY,mBAAA;C3Dy8Lb;A2Dt8LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dw8LD;A2Dr8LD;EACE,kBAAA;C3Du8LD;A2D/7LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3Di8LH;A2D97LD;EACE,mBAAA;C3Dg8LD;A2D97LD;EACE,mBAAA;EACA,YAAA;C3Dg8LD;A2D57LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,uBAAA;C3D+7LL;A2D57LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;C3D+7LL;A2D57LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;C3D+7LL;A2D37LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D67LH;A2D57LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,wBAAA;EACA,cAAA;C3D87LL;A4DvjMD;EACE,mBAAA;C5DyjMD;A4DtjMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DwjMD;A4D3jMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CL44LT;A4DlkMD;;EAcM,eAAA;C5DwjML;A4D9hMC;EA4NF;IvD3DE,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GLi7LP;E4D5jMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D+jML;E4D7jMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5DgkML;E4D9jMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5DikML;CACF;A4DvmMD;;;EA6CI,eAAA;C5D+jMH;A4D5mMD;EAiDI,QAAA;C5D8jMH;A4D/mMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D6jMH;A4DrnMD;EA4DI,WAAA;C5D4jMH;A4DxnMD;EA+DI,YAAA;C5D4jMH;A4D3nMD;;EAmEI,QAAA;C5D4jMH;A4D/nMD;EAuEI,YAAA;C5D2jMH;A4DloMD;EA0EI,WAAA;C5D2jMH;A4DnjMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;C5DsjMD;A4DjjMC;EdnGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CupMH;A4DrjMC;EACE,WAAA;EACA,SAAA;EdxGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CgqMH;A4DvjMC;;EAEE,WAAA;EACA,YAAA;EACA,sBAAA;EtCvHF,aAAA;EAGA,0BAAA;CtB+qMD;A4DzlMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DwjMH;A4DnmMD;;EA+CI,UAAA;EACA,mBAAA;C5DwjMH;A4DxmMD;;EAoDI,WAAA;EACA,oBAAA;C5DwjMH;A4D7mMD;;EAyDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DwjMH;A4DnjMG;EACE,iBAAA;C5DqjML;A4DjjMG;EACE,iBAAA;C5DmjML;A4DziMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5D2iMD;A4DpjMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5DiiMH;A4DhkMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;C5DiiMH;A4D1hMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5D4hMD;A4D3hMC;EACE,kBAAA;C5D6hMH;A4Dp/LD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DshMH;E4D9hMD;;IAYI,mBAAA;G5DshMH;E4DliMD;;IAgBI,oBAAA;G5DshMH;E4DjhMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DmhMD;E4D/gMD;IACE,aAAA;G5DihMD;CACF;A6DhxMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7DgzMH;A6D9yMC;;;;;;;;;;;;;;;;EACE,YAAA;C7D+zMH;AiCv0MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9Dk1MD;AiCz0MD;EACE,wBAAA;CjC20MD;AiCz0MD;EACE,uBAAA;CjC20MD;AiCn0MD;EACE,yBAAA;CjCq0MD;AiCn0MD;EACE,0BAAA;CjCq0MD;AiCn0MD;EACE,mBAAA;CjCq0MD;AiCn0MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D+1MD;AiCj0MD;EACE,yBAAA;CjCm0MD;AiC5zMD;EACE,gBAAA;CjC8zMD;AgE/1MD;EACE,oBAAA;ChEi2MD;AgE31MD;;;;ECdE,yBAAA;CjE+2MD;AgE11MD;;;;;;;;;;;;EAYE,yBAAA;ChE41MD;AgEr1MD;EA6IA;IC7LE,0BAAA;GjEy4MC;EiEx4MD;IAAU,0BAAA;GjE24MT;EiE14MD;IAAU,8BAAA;GjE64MT;EiE54MD;;IACU,+BAAA;GjE+4MT;CACF;AgE/1MD;EAwIA;IA1II,0BAAA;GhEq2MD;CACF;AgE/1MD;EAmIA;IArII,2BAAA;GhEq2MD;CACF;AgE/1MD;EA8HA;IAhII,iCAAA;GhEq2MD;CACF;AgE91MD;EAwHA;IC7LE,0BAAA;GjEu6MC;EiEt6MD;IAAU,0BAAA;GjEy6MT;EiEx6MD;IAAU,8BAAA;GjE26MT;EiE16MD;;IACU,+BAAA;GjE66MT;CACF;AgEx2MD;EAmHA;IArHI,0BAAA;GhE82MD;CACF;AgEx2MD;EA8GA;IAhHI,2BAAA;GhE82MD;CACF;AgEx2MD;EAyGA;IA3GI,iCAAA;GhE82MD;CACF;AgEv2MD;EAmGA;IC7LE,0BAAA;GjEq8MC;EiEp8MD;IAAU,0BAAA;GjEu8MT;EiEt8MD;IAAU,8BAAA;GjEy8MT;EiEx8MD;;IACU,+BAAA;GjE28MT;CACF;AgEj3MD;EA8FA;IAhGI,0BAAA;GhEu3MD;CACF;AgEj3MD;EAyFA;IA3FI,2BAAA;GhEu3MD;CACF;AgEj3MD;EAoFA;IAtFI,iCAAA;GhEu3MD;CACF;AgEh3MD;EA8EA;IC7LE,0BAAA;GjEm+MC;EiEl+MD;IAAU,0BAAA;GjEq+MT;EiEp+MD;IAAU,8BAAA;GjEu+MT;EiEt+MD;;IACU,+BAAA;GjEy+MT;CACF;AgE13MD;EAyEA;IA3EI,0BAAA;GhEg4MD;CACF;AgE13MD;EAoEA;IAtEI,2BAAA;GhEg4MD;CACF;AgE13MD;EA+DA;IAjEI,iCAAA;GhEg4MD;CACF;AgEz3MD;EAyDA;ICrLE,yBAAA;GjEy/MC;CACF;AgEz3MD;EAoDA;ICrLE,yBAAA;GjE8/MC;CACF;AgEz3MD;EA+CA;ICrLE,yBAAA;GjEmgNC;CACF;AgEz3MD;EA0CA;ICrLE,yBAAA;GjEwgNC;CACF;AgEt3MD;ECnJE,yBAAA;CjE4gND;AgEn3MD;EA4BA;IC7LE,0BAAA;GjEwhNC;EiEvhND;IAAU,0BAAA;GjE0hNT;EiEzhND;IAAU,8BAAA;GjE4hNT;EiE3hND;;IACU,+BAAA;GjE8hNT;CACF;AgEj4MD;EACE,yBAAA;ChEm4MD;AgE93MD;EAqBA;IAvBI,0BAAA;GhEo4MD;CACF;AgEl4MD;EACE,yBAAA;ChEo4MD;AgE/3MD;EAcA;IAhBI,2BAAA;GhEq4MD;CACF;AgEn4MD;EACE,yBAAA;ChEq4MD;AgEh4MD;EAOA;IATI,iCAAA;GhEs4MD;CACF;AgE/3MD;EACA;ICrLE,yBAAA;GjEujNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n border: 0;\n background-color: transparent;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n &[disabled],\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n &.disabled,\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n &.disabled,\n fieldset[disabled] & {\n label {\n cursor: @cursor-disabled;\n }\n }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n // Size it appropriately next to real form controls\n padding-top: (@padding-base-vertical + 1);\n padding-bottom: (@padding-base-vertical + 1);\n // Remove default margin from `p`\n margin-bottom: 0;\n min-height: (@line-height-computed + @font-size-base);\n\n &.input-lg,\n &.input-sm {\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n .form-control {\n height: @input-height-small;\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n border-radius: @input-border-radius-small;\n }\n select.form-control {\n height: @input-height-small;\n line-height: @input-height-small;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-small;\n min-height: (@line-height-computed + @font-size-small);\n padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n font-size: @font-size-small;\n line-height: @line-height-small;\n }\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n .form-control {\n height: @input-height-large;\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n border-radius: @input-border-radius-large;\n }\n select.form-control {\n height: @input-height-large;\n line-height: @input-height-large;\n }\n textarea.form-control,\n select[multiple].form-control {\n height: auto;\n }\n .form-control-static {\n height: @input-height-large;\n min-height: (@line-height-computed + @font-size-large);\n padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-large;\n }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2; // Ensure icon is above input groups\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: @input-height-large;\n height: @input-height-large;\n line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: @input-height-small;\n height: @input-height-small;\n line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n & ~ .form-control-feedback {\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n }\n &.sr-only ~ .form-control-feedback {\n top: 0;\n }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-static {\n display: inline-block;\n }\n\n .input-group {\n display: inline-table;\n vertical-align: middle;\n\n .input-group-addon,\n .input-group-btn,\n .form-control {\n width: auto;\n }\n }\n\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n\n label {\n padding-left: 0;\n }\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n\n // Re-override the feedback icon.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of radios and checkboxes\n //\n // Labels also get some reset styles, but that is scoped to a media query below.\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n // Reset spacing and right align labels, but scope to media queries so that\n // labels on narrow viewports stack the same as a default form example.\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n right: floor((@grid-gutter-width / 2));\n }\n\n // Form group sizes\n //\n // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n // inputs and labels within a `.form-group`.\n .form-group-lg {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-large-vertical + 1);\n font-size: @font-size-large;\n }\n }\n }\n .form-group-sm {\n @media (min-width: @screen-sm-min) {\n .control-label {\n padding-top: (@padding-small-vertical + 1);\n font-size: @font-size-small;\n }\n }\n }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline,\n &.radio label,\n &.checkbox label,\n &.radio-inline label,\n &.checkbox-inline label {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n \n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css
index 2b927f84e..4cf729e43 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css
@@ -1,9 +1,6 @@
/*!
- * Bootstrap v2.3.0
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:200px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:220px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:400px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed}
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css.map b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css.map
new file mode 100644
index 000000000..5f49bb374
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["less/normalize.less","less/print.less","bootstrap.css","dist/css/bootstrap.css","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":";;;;4EAQA,KACE,YAAA,WACA,yBAAA,KACA,qBAAA,KAOF,KACE,OAAA,EAaF,QAAA,MAAA,QAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,KAAA,IAAA,QAAA,QAaE,QAAA,MAQF,MAAA,OAAA,SAAA,MAIE,QAAA,aACA,eAAA,SAQF,sBACE,QAAA,KACA,OAAA,EAQF,SAAA,SAEE,QAAA,KAUF,EACE,iBAAA,YAQF,SAAA,QAEE,QAAA,EAUF,YACE,cAAA,IAAA,OAOF,EAAA,OAEE,YAAA,IAOF,IACE,WAAA,OAQF,GACE,OAAA,MAAA,EACA,UAAA,IAOF,KACE,MAAA,KACA,WAAA,KAOF,MACE,UAAA,IAOF,IAAA,IAEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IACE,IAAA,MAGF,IACE,OAAA,OAUF,IACE,OAAA,EAOF,eACE,SAAA,OAUF,OACE,OAAA,IAAA,KAOF,GACE,OAAA,EAAA,mBAAA,YAAA,gBAAA,YACA,WAAA,YAOF,IACE,SAAA,KAOF,KAAA,IAAA,IAAA,KAIE,YAAA,UAAA,UACA,UAAA,IAkBF,OAAA,MAAA,SAAA,OAAA,SAKE,OAAA,EACA,KAAA,QACA,MAAA,QAOF,OACE,SAAA,QAUF,OAAA,OAEE,eAAA,KAWF,OAAA,wBAAA,kBAAA,mBAIE,mBAAA,OACA,OAAA,QAOF,iBAAA,qBAEE,OAAA,QAOF,yBAAA,wBAEE,QAAA,EACA,OAAA,EAQF,MACE,YAAA,OAWF,qBAAA,kBAEE,mBAAA,WAAA,gBAAA,WAAA,WAAA,WACA,QAAA,EASF,8CAAA,8CAEE,OAAA,KAQF,mBACE,mBAAA,YACA,gBAAA,YAAA,WAAA,YAAA,mBAAA,UASF,iDAAA,8CAEE,mBAAA,KAOF,SACE,QAAA,MAAA,OAAA,MACA,OAAA,EAAA,IACA,OAAA,IAAA,MAAA,OAQF,OACE,QAAA,EACA,OAAA,EAOF,SACE,SAAA,KAQF,SACE,YAAA,IAUF,MACE,eAAA,EACA,gBAAA,SAGF,GAAA,GAEE,QAAA,uFCjUF,aA7FI,EAAA,OAAA,QAGI,MAAA,eACA,YAAA,eACA,WAAA,cAAA,mBAAA,eACA,WAAA,eAGJ,EAAA,UAEI,gBAAA,UAGJ,cACI,QAAA,KAAA,WAAA,IAGJ,kBACI,QAAA,KAAA,YAAA,IAKJ,6BAAA,mBAEI,QAAA,GAGJ,WAAA,IAEI,OAAA,IAAA,MAAA,KC4KL,kBAAA,MDvKK,MC0KL,QAAA,mBDrKK,IE8KN,GDLC,kBAAA,MDrKK,ICwKL,UAAA,eCUD,GF5KM,GE2KN,EF1KM,QAAA,ECuKL,OAAA,ECSD,GF3KM,GCsKL,iBAAA,MD/JK,QCkKL,QAAA,KCSD,YFtKU,oBCiKT,iBAAA,eD7JK,OCgKL,OAAA,IAAA,MAAA,KD5JK,OC+JL,gBAAA,mBCSD,UFpKU,UC+JT,iBAAA,eDzJS,mBEkKV,mBDLC,OAAA,IAAA,MAAA,gBEjPD,WACA,YAAA,uBFsPD,IAAA,+CE7OC,IAAK,sDAAuD,4BAA6B,iDAAkD,gBAAiB,gDAAiD,eAAgB,+CAAgD,mBAAoB,2EAA4E,cAE7W,WACA,SAAA,SACA,IAAA,IACA,QAAA,aACA,YAAA,uBACA,WAAA,OACA,YAAA,IACA,YAAA,EAIkC,uBAAA,YAAW,wBAAA,UACX,2BAAW,QAAA,QAEX,uBDuPlC,QAAS,QCtPyB,sBFiPnC,uBEjP8C,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,qBAAW,QAAA,QACX,0BAAW,QAAA,QACX,qBAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,sBAAW,QAAA,QACX,yBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,+BAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,gCAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,gCAAW,QAAA,QACX,gCAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,0BAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,gCAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,6BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,mCAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,yBAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,gCAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,sBAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,0BAAW,QAAA,QACX,4BAAW,QAAA,QACX,qCAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,oCAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,8BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,uBAAW,QAAA,QACX,mCAAW,QAAA,QACX,uCAAW,QAAA,QACX,gCAAW,QAAA,QACX,oCAAW,QAAA,QACX,qCAAW,QAAA,QACX,yCAAW,QAAA,QACX,4BAAW,QAAA,QACX,yBAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,yBAAW,QAAA,QACX,wBAAW,QAAA,QACX,0BAAW,QAAA,QACX,6BAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,uBAAW,QAAA,QACX,8BAAW,QAAA,QACX,+BAAW,QAAA,QACX,gCAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,8BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,yBAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,2BAAW,QAAA,QACX,2BAAW,QAAA,QACX,4BAAW,QAAA,QACX,+BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,iCAAW,QAAA,QACX,oCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,+BAAW,QAAA,QACX,iCAAW,QAAA,QACX,qBAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,2BAAW,QAAA,QACX,uBAAW,QAAA,QASX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,wBAAW,QAAA,QACX,uBAAW,QAAA,QACX,yBAAW,QAAA,QACX,yBAAW,QAAA,QACX,+BAAW,QAAA,QACX,uBAAW,QAAA,QACX,6BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,uBAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,2BAAW,QAAA,QACX,0BAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,4BAAW,QAAA,QACX,mCAAW,QAAA,QACX,4BAAW,QAAA,QACX,oCAAW,QAAA,QACX,kCAAW,QAAA,QACX,iCAAW,QAAA,QACX,+BAAW,QAAA,QACX,sBAAW,QAAA,QACX,wBAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,kCAAW,QAAA,QACX,mCAAW,QAAA,QACX,sCAAW,QAAA,QACX,0CAAW,QAAA,QACX,oCAAW,QAAA,QACX,wCAAW,QAAA,QACX,qCAAW,QAAA,QACX,iCAAW,QAAA,QACX,gCAAW,QAAA,QACX,kCAAW,QAAA,QACX,+BAAW,QAAA,QACX,0BAAW,QAAA,QACX,8BAAW,QAAA,QACX,4BAAW,QAAA,QACX,4BAAW,QAAA,QACX,6BAAW,QAAA,QACX,4BAAW,QAAA,QCtS/C,0BCgEE,QAAA,QHi+BF,EDNC,mBAAA,WGxhCI,gBAAiB,WFiiCZ,WAAY,WGl+BZ,OADL,QJg+BJ,mBAAA,WGthCI,gBAAiB,WACpB,WAAA,WHyhCD,KGrhCC,UAAW,KAEX,4BAAA,cAEA,KACA,YAAA,iBAAA,UAAA,MAAA,WHuhCD,UAAA,KGnhCC,YAAa,WF4hCb,MAAO,KACP,iBAAkB,KExhClB,OADA,MAEA,OHqhCD,SG/gCC,YAAa,QACb,UAAA,QACA,YAAA,QAEA,EFwhCA,MAAO,QEthCL,gBAAA,KAIF,QH8gCD,QKnkCC,MAAA,QAEA,gBAAA,ULskCD,QGxgCC,QAAS,KAAK,OACd,QAAA,IAAA,KAAA,yBH0gCD,eAAA,KGngCC,OHsgCD,OAAA,ECSD,IACE,eAAgB,ODDjB,4BMhlCC,0BLmlCF,gBKplCE,iBADA,eH4EA,QAAS,MACT,UAAA,KHwgCD,OAAA,KGjgCC,aACA,cAAA,IAEA,eACA,QAAA,aC6FA,UAAA,KACK,OAAA,KACG,QAAA,IEvLR,YAAA,WACA,iBAAA,KACA,OAAA,IAAA,MAAA,KNgmCD,cAAA,IGlgCC,mBAAoB,IAAI,IAAI,YAC5B,cAAA,IAAA,IAAA,YHogCD,WAAA,IAAA,IAAA,YG7/BC,YACA,cAAA,IAEA,GHggCD,WAAA,KGx/BC,cAAe,KACf,OAAA,EACA,WAAA,IAAA,MAAA,KAEA,SACA,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EH0/BD,OAAA,KGl/BC,SAAA,OF2/BA,KAAM,cEz/BJ,OAAA,EAEA,0BACA,yBACA,SAAA,OACA,MAAA,KHo/BH,OAAA,KGz+BC,OAAQ,EACR,SAAA,QH2+BD,KAAA,KCSD,cACE,OAAQ,QAQV,IACA,IMnpCE,IACA,IACA,IACA,INyoCF,GACA,GACA,GACA,GACA,GACA,GDAC,YAAA,QOnpCC,YAAa,IN4pCb,YAAa,IACb,MAAO,QAoBT,WAZA,UAaA,WAZA,UM7pCI,WN8pCJ,UM7pCI,WN8pCJ,UM7pCI,WN8pCJ,UDMC,WCLD,UACA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SAaA,UAZA,SMrpCE,YAAa,INyqCb,YAAa,EACb,MAAO,KAGT,IMzqCE,IAJF,IN4qCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UM7qCA,WN+qCA,UACA,UANA,SM7qCI,UN+qCJ,SM5qCA,UN8qCA,SAQE,UAAW,IAGb,IMrrCE,IAJF,INwrCA,GAEA,GDLC,GCSC,WAAY,KACZ,cAAe,KASjB,WANA,UDCC,WCCD,UMxrCA,WN0rCA,UACA,UANA,SMzrCI,UN2rCJ,SMvrCA,UNyrCA,SMzrCU,UAAA,IACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KACV,IAAA,GAAU,UAAA,KAOR,IADF,GPusCC,UAAA,KCSD,EM1sCE,OAAA,EAAA,EAAA,KAEA,MPqsCD,cAAA,KOhsCC,UAAW,KAwOX,YAAa,IA1OX,YAAA,IPusCH,yBO9rCC,MNusCE,UAAW,MMlsCf,OAAA,MAEE,UAAA,IAKF,MP2rCC,KO3rCsB,QAAA,KP8rCtB,iBAAA,QO7rCsB,WPgsCtB,WAAA,KO/rCsB,YPksCtB,WAAA,MOjsCsB,aPosCtB,WAAA,OOnsCsB,cPssCtB,WAAA,QOnsCsB,aPssCtB,YAAA,OOrsCsB,gBPwsCtB,eAAA,UOvsCsB,gBP0sCtB,eAAA,UOtsCC,iBPysCD,eAAA,WQ5yCC,YR+yCD,MAAA,KCSD,cOrzCI,MAAA,QAHF,qBDwGF,qBP8sCC,MAAA,QCSD,cO5zCI,MAAA,QAHF,qBD2GF,qBPktCC,MAAA,QCSD,WOn0CI,MAAA,QAHF,kBD8GF,kBPstCC,MAAA,QCSD,cO10CI,MAAA,QAHF,qBDiHF,qBP0tCC,MAAA,QCSD,aOj1CI,MAAA,QDwHF,oBAHF,oBExHE,MAAA,QACA,YR21CA,MAAO,KQz1CL,iBAAA,QAHF,mBF8HF,mBP4tCC,iBAAA,QCSD,YQh2CI,iBAAA,QAHF,mBFiIF,mBPguCC,iBAAA,QCSD,SQv2CI,iBAAA,QAHF,gBFoIF,gBPouCC,iBAAA,QCSD,YQ92CI,iBAAA,QAHF,mBFuIF,mBPwuCC,iBAAA,QCSD,WQr3CI,iBAAA,QF6IF,kBADF,kBAEE,iBAAA,QPuuCD,aO9tCC,eAAgB,INuuChB,OAAQ,KAAK,EAAE,KMruCf,cAAA,IAAA,MAAA,KAFF,GPmuCC,GCSC,WAAY,EACZ,cAAe,KM/tCf,MP2tCD,MO5tCD,MAPI,MASF,cAAA,EAIF,eALE,aAAA,EACA,WAAA,KPmuCD,aO/tCC,aAAc,EAKZ,YAAA,KACA,WAAA,KP8tCH,gBOxtCC,QAAS,aACT,cAAA,IACA,aAAA,IAEF,GNiuCE,WAAY,EM/tCZ,cAAA,KAGA,GADF,GP2tCC,YAAA,WOvtCC,GP0tCD,YAAA,IOpnCD,GAvFM,YAAA,EAEA,yBACA,kBGtNJ,MAAA,KACA,MAAA,MACA,SAAA,OVs6CC,MAAA,KO9nCC,WAAY,MAhFV,cAAA,SPitCH,YAAA,OOvsCD,kBNitCE,YAAa,OM3sCjB,0BPusCC,YOtsCC,OAAA,KA9IqB,cAAA,IAAA,OAAA,KAmJvB,YACE,UAAA,IACA,eAAA,UAEA,WPusCD,QAAA,KAAA,KOlsCG,OAAA,EAAA,EAAA,KN2sCF,UAAW,OACX,YAAa,IAAI,MAAM,KMrtCzB,yBPgtCC,wBOhtCD,yBN0tCE,cAAe,EMpsCb,kBAFA,kBACA,iBPmsCH,QAAA,MOhsCG,UAAA,INysCF,YAAa,WACb,MAAO,KMjsCT,yBP4rCC,yBO5rCD,wBAEE,QAAA,cAEA,oBACA,sBACA,cAAA,KP8rCD,aAAA,EOxrCG,WAAA,MNisCF,aAAc,IAAI,MAAM,KACxB,YAAa,EMjsCX,kCNmsCJ,kCMpsCe,iCACX,oCNosCJ,oCDLC,mCCUC,QAAS,GMlsCX,iCNosCA,iCM1sCM,gCAOJ,mCNosCF,mCDLC,kCO9rCC,QAAA,cPmsCD,QWx+CC,cAAe,KVi/Cf,WAAY,OACZ,YAAa,WU9+Cb,KX0+CD,IWt+CD,IACE,KACA,YAAA,MAAA,OAAA,SAAA,cAAA,UAEA,KACA,QAAA,IAAA,IXw+CD,UAAA,IWp+CC,MAAO,QACP,iBAAA,QACA,cAAA,IAEA,IACA,QAAA,IAAA,IACA,UAAA,IV6+CA,MU7+CA,KXs+CD,iBAAA,KW5+CC,cAAe,IASb,mBAAA,MAAA,EAAA,KAAA,EAAA,gBACA,WAAA,MAAA,EAAA,KAAA,EAAA,gBAEA,QV8+CF,QU9+CE,EXs+CH,UAAA,KWj+CC,YAAa,IACb,mBAAA,KACA,WAAA,KAEA,IACA,QAAA,MACA,QAAA,MACA,OAAA,EAAA,EAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KACA,WAAA,UXm+CD,UAAA,WW9+CC,iBAAkB,QAehB,OAAA,IAAA,MAAA,KACA,cAAA,IAEA,SACA,QAAA,EACA,UAAA,QXk+CH,MAAA,QW79CC,YAAa,SACb,iBAAA,YACA,cAAA,EC1DF,gBCHE,WAAA,MACA,WAAA,OAEA,Wb+hDD,cAAA,KYzhDC,aAAA,KAqEA,aAAc,KAvEZ,YAAA,KZgiDH,yBY3hDC,WAkEE,MAAO,OZ89CV,yBY7hDC,WA+DE,MAAO,OZm+CV,0BY1hDC,WCvBA,MAAA,QAGA,iBbojDD,cAAA,KYvhDC,aAAc,KCvBd,aAAA,KACA,YAAA,KCAE,KACE,aAAA,MAEA,YAAA,MAGA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UdijDL,SAAA,ScjiDG,WAAA,IACE,cAAA,KdmiDL,aAAA,Kc3hDG,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud8hDH,MAAA,Kc9hDG,WdiiDH,MAAA,KcjiDG,WdoiDH,MAAA,acpiDG,WduiDH,MAAA,acviDG,Ud0iDH,MAAA,Ic1iDG,Ud6iDH,MAAA,ac7iDG,UdgjDH,MAAA,achjDG,UdmjDH,MAAA,IcnjDG,UdsjDH,MAAA,actjDG,UdyjDH,MAAA,aczjDG,Ud4jDH,MAAA,Ic5jDG,Ud+jDH,MAAA,achjDG,UdmjDH,MAAA,YcnjDG,gBdsjDH,MAAA,KctjDG,gBdyjDH,MAAA,aczjDG,gBd4jDH,MAAA,ac5jDG,ed+jDH,MAAA,Ic/jDG,edkkDH,MAAA,aclkDG,edqkDH,MAAA,acrkDG,edwkDH,MAAA,IcxkDG,ed2kDH,MAAA,ac3kDG,ed8kDH,MAAA,ac9kDG,edilDH,MAAA,IcjlDG,edolDH,MAAA,ac/kDG,edklDH,MAAA,YcjmDG,edomDH,MAAA,KcpmDG,gBdumDH,KAAA,KcvmDG,gBd0mDH,KAAA,ac1mDG,gBd6mDH,KAAA,ac7mDG,edgnDH,KAAA,IchnDG,edmnDH,KAAA,acnnDG,edsnDH,KAAA,actnDG,edynDH,KAAA,IcznDG,ed4nDH,KAAA,ac5nDG,ed+nDH,KAAA,ac/nDG,edkoDH,KAAA,IcloDG,edqoDH,KAAA,achoDG,edmoDH,KAAA,YcpnDG,edunDH,KAAA,KcvnDG,kBd0nDH,YAAA,Kc1nDG,kBd6nDH,YAAA,ac7nDG,kBdgoDH,YAAA,achoDG,iBdmoDH,YAAA,IcnoDG,iBdsoDH,YAAA,actoDG,iBdyoDH,YAAA,aczoDG,iBd4oDH,YAAA,Ic5oDG,iBd+oDH,YAAA,ac/oDG,iBdkpDH,YAAA,aclpDG,iBdqpDH,YAAA,IcrpDG,iBdwpDH,YAAA,acxpDG,iBd2pDH,YAAA,Yc7rDG,iBACE,YAAA,EAOJ,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Ud2rDD,MAAA,Kc3rDC,Wd8rDD,MAAA,Kc9rDC,WdisDD,MAAA,acjsDC,WdosDD,MAAA,acpsDC,UdusDD,MAAA,IcvsDC,Ud0sDD,MAAA,ac1sDC,Ud6sDD,MAAA,ac7sDC,UdgtDD,MAAA,IchtDC,UdmtDD,MAAA,acntDC,UdstDD,MAAA,acttDC,UdytDD,MAAA,IcztDC,Ud4tDD,MAAA,ac7sDC,UdgtDD,MAAA,YchtDC,gBdmtDD,MAAA,KcntDC,gBdstDD,MAAA,acttDC,gBdytDD,MAAA,acztDC,ed4tDD,MAAA,Ic5tDC,ed+tDD,MAAA,ac/tDC,edkuDD,MAAA,acluDC,edquDD,MAAA,IcruDC,edwuDD,MAAA,acxuDC,ed2uDD,MAAA,ac3uDC,ed8uDD,MAAA,Ic9uDC,edivDD,MAAA,ac5uDC,ed+uDD,MAAA,Yc9vDC,ediwDD,MAAA,KcjwDC,gBdowDD,KAAA,KcpwDC,gBduwDD,KAAA,acvwDC,gBd0wDD,KAAA,ac1wDC,ed6wDD,KAAA,Ic7wDC,edgxDD,KAAA,achxDC,edmxDD,KAAA,acnxDC,edsxDD,KAAA,IctxDC,edyxDD,KAAA,aczxDC,ed4xDD,KAAA,ac5xDC,ed+xDD,KAAA,Ic/xDC,edkyDD,KAAA,ac7xDC,edgyDD,KAAA,YcjxDC,edoxDD,KAAA,KcpxDC,kBduxDD,YAAA,KcvxDC,kBd0xDD,YAAA,ac1xDC,kBd6xDD,YAAA,ac7xDC,iBdgyDD,YAAA,IchyDC,iBdmyDD,YAAA,acnyDC,iBdsyDD,YAAA,actyDC,iBdyyDD,YAAA,IczyDC,iBd4yDD,YAAA,ac5yDC,iBd+yDD,YAAA,ac/yDC,iBdkzDD,YAAA,IclzDC,iBdqzDD,YAAA,acrzDC,iBdwzDD,YAAA,YY/yDD,iBE3CE,YAAA,GAQF,yBACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udy1DD,MAAA,Kcz1DC,Wd41DD,MAAA,Kc51DC,Wd+1DD,MAAA,ac/1DC,Wdk2DD,MAAA,acl2DC,Udq2DD,MAAA,Icr2DC,Udw2DD,MAAA,acx2DC,Ud22DD,MAAA,ac32DC,Ud82DD,MAAA,Ic92DC,Udi3DD,MAAA,acj3DC,Udo3DD,MAAA,acp3DC,Udu3DD,MAAA,Icv3DC,Ud03DD,MAAA,ac32DC,Ud82DD,MAAA,Yc92DC,gBdi3DD,MAAA,Kcj3DC,gBdo3DD,MAAA,acp3DC,gBdu3DD,MAAA,acv3DC,ed03DD,MAAA,Ic13DC,ed63DD,MAAA,ac73DC,edg4DD,MAAA,ach4DC,edm4DD,MAAA,Icn4DC,eds4DD,MAAA,act4DC,edy4DD,MAAA,acz4DC,ed44DD,MAAA,Ic54DC,ed+4DD,MAAA,ac14DC,ed64DD,MAAA,Yc55DC,ed+5DD,MAAA,Kc/5DC,gBdk6DD,KAAA,Kcl6DC,gBdq6DD,KAAA,acr6DC,gBdw6DD,KAAA,acx6DC,ed26DD,KAAA,Ic36DC,ed86DD,KAAA,ac96DC,edi7DD,KAAA,acj7DC,edo7DD,KAAA,Icp7DC,edu7DD,KAAA,acv7DC,ed07DD,KAAA,ac17DC,ed67DD,KAAA,Ic77DC,edg8DD,KAAA,ac37DC,ed87DD,KAAA,Yc/6DC,edk7DD,KAAA,Kcl7DC,kBdq7DD,YAAA,Kcr7DC,kBdw7DD,YAAA,acx7DC,kBd27DD,YAAA,ac37DC,iBd87DD,YAAA,Ic97DC,iBdi8DD,YAAA,acj8DC,iBdo8DD,YAAA,acp8DC,iBdu8DD,YAAA,Icv8DC,iBd08DD,YAAA,ac18DC,iBd68DD,YAAA,ac78DC,iBdg9DD,YAAA,Ich9DC,iBdm9DD,YAAA,acn9DC,iBds9DD,YAAA,YY18DD,iBE9CE,YAAA,GAQF,0BACE,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,Udu/DD,MAAA,Kcv/DC,Wd0/DD,MAAA,Kc1/DC,Wd6/DD,MAAA,ac7/DC,WdggED,MAAA,achgEC,UdmgED,MAAA,IcngEC,UdsgED,MAAA,actgEC,UdygED,MAAA,aczgEC,Ud4gED,MAAA,Ic5gEC,Ud+gED,MAAA,ac/gEC,UdkhED,MAAA,aclhEC,UdqhED,MAAA,IcrhEC,UdwhED,MAAA,aczgEC,Ud4gED,MAAA,Yc5gEC,gBd+gED,MAAA,Kc/gEC,gBdkhED,MAAA,aclhEC,gBdqhED,MAAA,acrhEC,edwhED,MAAA,IcxhEC,ed2hED,MAAA,ac3hEC,ed8hED,MAAA,ac9hEC,ediiED,MAAA,IcjiEC,edoiED,MAAA,acpiEC,eduiED,MAAA,acviEC,ed0iED,MAAA,Ic1iEC,ed6iED,MAAA,acxiEC,ed2iED,MAAA,Yc1jEC,ed6jED,MAAA,Kc7jEC,gBdgkED,KAAA,KchkEC,gBdmkED,KAAA,acnkEC,gBdskED,KAAA,actkEC,edykED,KAAA,IczkEC,ed4kED,KAAA,ac5kEC,ed+kED,KAAA,ac/kEC,edklED,KAAA,IcllEC,edqlED,KAAA,acrlEC,edwlED,KAAA,acxlEC,ed2lED,KAAA,Ic3lEC,ed8lED,KAAA,aczlEC,ed4lED,KAAA,Yc7kEC,edglED,KAAA,KchlEC,kBdmlED,YAAA,KcnlEC,kBdslED,YAAA,actlEC,kBdylED,YAAA,aczlEC,iBd4lED,YAAA,Ic5lEC,iBd+lED,YAAA,ac/lEC,iBdkmED,YAAA,aclmEC,iBdqmED,YAAA,IcrmEC,iBdwmED,YAAA,acxmEC,iBd2mED,YAAA,ac3mEC,iBd8mED,YAAA,Ic9mEC,iBdinED,YAAA,acjnEC,iBdonED,YAAA,YevrED,iBACA,YAAA,GAGA,MACA,iBAAA,YAEA,Qf0rED,YAAA,IexrEC,eAAgB,IAChB,MAAA,Kf0rED,WAAA,KenrEC,GACA,WAAA,KfurED,OezrEC,MAAO,KdosEP,UAAW,KACX,cAAe,KcxrET,mBd2rER,mBc1rEQ,mBAHA,mBACA,mBd2rER,mBDHC,QAAA,IepsEC,YAAa,WAoBX,eAAA,IACA,WAAA,IAAA,MAAA,KArBJ,mBdmtEE,eAAgB,OAChB,cAAe,IAAI,MAAM,KDJ1B,uCCMD,uCcttEA,wCdutEA,wCcnrEI,2CANI,2CfqrEP,WAAA,Ee1qEG,mBf6qEH,WAAA,IAAA,MAAA,KCWD,cACE,iBAAkB,KchqEpB,6BdmqEA,6BclqEE,6BAZM,6BfuqEP,6BCMD,6BDHC,QAAA,ICWD,gBACE,OAAQ,IAAI,MAAM,Kc3qEpB,4Bd8qEA,4Bc9qEA,4BAQQ,4Bf+pEP,4BCMD,4Bc9pEM,OAAA,IAAA,MAAA,KAYF,4BAFJ,4BfqpEC,oBAAA,IexoEG,yCf2oEH,iBAAA,QejoEC,4BACA,iBAAA,QfqoED,uBe/nEG,SAAA,Od0oEF,QAAS,aczoEL,MAAA,KAEA,sBfkoEL,sBgB9wEC,SAAA,OfyxEA,QAAS,WACT,MAAO,KAST,0BetxEE,0BfgxEF,0BAGA,0BezxEM,0BAMJ,0BfixEF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCgBnyEC,sCAAA,oCf0yEF,sCevxEM,sCf4xEJ,iBAAkB,QASpB,2Be3yEE,2BfqyEF,2BAGA,2Be9yEM,2BAMJ,2BfsyEF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBxzEC,uCAAA,qCf+zEF,uCe5yEM,uCfizEJ,iBAAkB,QASpB,wBeh0EE,wBf0zEF,wBAGA,wBen0EM,wBAMJ,wBf2zEF,wBAGA,wBACA,wBDNC,wBCAD,wBAGA,wBASE,iBAAkB,QDLnB,oCgB70EC,oCAAA,kCfo1EF,oCej0EM,oCfs0EJ,iBAAkB,QASpB,2Ber1EE,2Bf+0EF,2BAGA,2Bex1EM,2BAMJ,2Bfg1EF,2BAGA,2BACA,2BDNC,2BCAD,2BAGA,2BASE,iBAAkB,QDLnB,uCgBl2EC,uCAAA,qCfy2EF,uCet1EM,uCf21EJ,iBAAkB,QASpB,0Be12EE,0Bfo2EF,0BAGA,0Be72EM,0BAMJ,0Bfq2EF,0BAGA,0BACA,0BDNC,0BCAD,0BAGA,0BASE,iBAAkB,QDLnB,sCejtEC,sCADF,oCdytEA,sCe32EM,sCDoJJ,iBAAA,QA6DF,kBACE,WAAY,KA3DV,WAAA,KAEA,oCACA,kBACA,MAAA,KfqtED,cAAA,Ke9pEC,WAAY,OAnDV,mBAAA,yBfotEH,OAAA,IAAA,MAAA,KCWD,yBACE,cAAe,Ec7qEjB,qCdgrEA,qCcltEI,qCARM,qCfmtET,qCCMD,qCDHC,YAAA,OCWD,kCACE,OAAQ,EcxrEV,0Dd2rEA,0Dc3rEA,0DAzBU,0Df6sET,0DCMD,0DAME,YAAa,EchsEf,yDdmsEA,yDcnsEA,yDArBU,yDfitET,yDCMD,yDAME,aAAc,EDLjB,yDe3sEW,yDEzNV,yDjBm6EC,yDiBl6ED,cAAA,GAMA,SjBm6ED,UAAA,EiBh6EC,QAAS,EACT,OAAA,EACA,OAAA,EAEA,OACA,QAAA,MACA,MAAA,KACA,QAAA,EACA,cAAA,KACA,UAAA,KjBk6ED,YAAA,QiB/5EC,MAAO,KACP,OAAA,EACA,cAAA,IAAA,MAAA,QAEA,MjBi6ED,QAAA,aiBt5EC,UAAW,Kb4BX,cAAA,IACG,YAAA,IJ83EJ,mBiBt5EC,mBAAoB,WhBi6EjB,gBAAiB,WgB/5EpB,WAAA,WjB05ED,qBiBx5EC,kBAGA,OAAQ,IAAI,EAAE,EACd,WAAA,MjBu5ED,YAAA,OiBl5EC,iBACA,QAAA,MAIF,kBhB45EE,QAAS,MgB15ET,MAAA,KAIF,iBAAA,ahB25EE,OAAQ,KIh+ER,uBL29ED,2BK19EC,wBY2EA,QAAS,KAAK,OACd,QAAA,IAAA,KAAA,yBACA,eAAA,KAEA,OACA,QAAA,MjBi5ED,YAAA,IiBv3EC,UAAW,KACX,YAAA,WACA,MAAA,KAEA,cACA,QAAA,MACA,MAAA,KACA,OAAA,KACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,WACA,MAAA,KbxDA,iBAAA,KACQ,iBAAA,KAyHR,OAAA,IAAA,MAAA,KACK,cAAA,IACG,mBAAA,MAAA,EAAA,IAAA,IAAA,iBJ0zET,WAAA,MAAA,EAAA,IAAA,IAAA,iBkBl8EC,mBAAA,aAAA,YAAA,KAAA,mBAAA,YAAA,KACE,cAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KACA,WAAA,aAAA,YAAA,KAAA,WAAA,YAAA,KdWM,oBJ27ET,aAAA,QI15EC,QAAA,EACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,qBAEF,gCAA0B,MAAA,KJ65E3B,QAAA,EI55EiC,oCJ+5EjC,MAAA,KiBl4EG,yCACA,MAAA,KAQF,0BhBw4EA,iBAAkB,YAClB,OAAQ,EgBr4EN,wBjB+3EH,wBiB53EC,iChBu4EA,iBAAkB,KgBr4EhB,QAAA,EAIF,wBACE,iCjB43EH,OAAA,YiB/2EC,sBjBk3ED,OAAA,KiBh2EG,mBhB42EF,mBAAoB,KAEtB,qDgB72EM,8BjBs2EH,8BiBn2EC,wCAAA,+BhB+2EA,YAAa,KgB72EX,iCjB22EH,iCiBx2EC,2CAAA,kChB42EF,0BACA,0BACA,oCACA,2BAKE,YAAa,KgBl3EX,iCjBg3EH,iCACF,2CiBt2EC,kChBy2EA,0BACA,0BACA,oCACA,2BgB32EA,YAAA,MhBm3EF,YgBz2EE,cAAA,KAGA,UADA,OjBm2ED,SAAA,SiBv2EC,QAAS,MhBk3ET,WAAY,KgB12EV,cAAA,KAGA,gBADA,aAEA,WAAA,KjBm2EH,aAAA,KiBh2EC,cAAe,EhB22Ef,YAAa,IACb,OAAQ,QgBt2ER,+BjBk2ED,sCiBp2EC,yBACA,gCAIA,SAAU,ShB02EV,WAAY,MgBx2EZ,YAAA,MAIF,oBAAA,cAEE,WAAA,KAGA,iBADA,cAEA,SAAA,SACA,QAAA,aACA,aAAA,KjB+1ED,cAAA,EiB71EC,YAAa,IhBw2Eb,eAAgB,OgBt2EhB,OAAA,QAUA,kCjBs1ED,4BCWC,WAAY,EACZ,YAAa,KgBz1Eb,wCAAA,qCjBq1ED,8BCOD,+BgBl2EI,2BhBi2EJ,4BAME,OAAQ,YDNT,0BiBz1EG,uBAMF,oCAAA,iChB+1EA,OAAQ,YDNT,yBiBt1EK,sBAaJ,mCAFF,gCAGE,OAAA,YAGA,qBjB20ED,WAAA,KiBz0EC,YAAA,IhBo1EA,eAAgB,IgBl1Ed,cAAA,EjB40EH,8BiB9zED,8BCnQE,cAAA,EACA,aAAA,EAEA,UACA,OAAA,KlBokFD,QAAA,IAAA,KkBlkFC,UAAA,KACE,YAAA,IACA,cAAA,IAGF,gBjB4kFA,OAAQ,KiB1kFN,YAAA,KD2PA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjB20EH,QAAA,IAAA,KiBj1EC,UAAW,KAST,YAAA,IACA,cAAA,IAVJ,mChBg2EE,OAAQ,KgBl1EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjB20EH,WAAA,KiBv0EC,QAAS,IAAI,KC/Rb,UAAA,KACA,YAAA,IAEA,UACA,OAAA,KlBymFD,QAAA,KAAA,KkBvmFC,UAAA,KACE,YAAA,UACA,cAAA,IAGF,gBjBinFA,OAAQ,KiB/mFN,YAAA,KDuRA,0BAFJ,kBAGI,OAAA,KAEA,6BACA,OAAA,KjBo1EH,QAAA,KAAA,KiB11EC,UAAW,KAST,YAAA,UACA,cAAA,IAVJ,mChBy2EE,OAAQ,KgB31EN,YAAA,KAGA,6CAjBJ,qCAkBI,OAAA,KAEA,oCACA,OAAA,KjBo1EH,WAAA,KiB30EC,QAAS,KAAK,KAEd,UAAA,KjB40ED,YAAA,UiBx0EG,cjB20EH,SAAA,SiBt0EC,4BACA,cAAA,OAEA,uBACA,SAAA,SACA,IAAA,EACA,MAAA,EACA,QAAA,EACA,QAAA,MACA,MAAA,KjBy0ED,OAAA,KiBv0EC,YAAa,KhBk1Eb,WAAY,OACZ,eAAgB,KDLjB,oDiBz0EC,uCADA,iCAGA,MAAO,KhBk1EP,OAAQ,KACR,YAAa,KDLd,oDiBz0EC,uCADA,iCAKA,MAAO,KhBg1EP,OAAQ,KACR,YAAa,KAKf,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBvuFG,mCAJA,yBD0ZJ,gCbvWE,MAAA,QJ6rFD,2BkB1uFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJksFD,iCiB31EC,aAAc,QC5YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlB2uFH,gCiBh2EC,MAAO,QCtYL,iBAAA,QlByuFH,aAAA,QCWD,oCACE,MAAO,QAKT,uBAEA,8BAJA,4BADA,yBAEA,oBAEA,2BDNC,4BkBrwFG,mCAJA,yBD6ZJ,gCb1WE,MAAA,QJ2tFD,2BkBxwFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJguFD,iCiBt3EC,aAAc,QC/YZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBywFH,gCiB33EC,MAAO,QCzYL,iBAAA,QlBuwFH,aAAA,QCWD,oCACE,MAAO,QAKT,qBAEA,4BAJA,0BADA,uBAEA,kBAEA,yBDNC,0BkBnyFG,iCAJA,uBDgaJ,8Bb7WE,MAAA,QJyvFD,yBkBtyFG,aAAA,QACE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBd4CJ,WAAA,MAAA,EAAA,IAAA,IAAA,iBJ8vFD,+BiBj5EC,aAAc,QClZZ,mBAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QACA,WAAA,MAAA,EAAA,IAAA,IAAA,iBAAA,EAAA,EAAA,IAAA,QlBuyFH,8BiBt5EC,MAAO,QC5YL,iBAAA,QlBqyFH,aAAA,QiBj5EG,kCjBo5EH,MAAA,QiBj5EG,2CjBo5EH,IAAA,KiBz4EC,mDACA,IAAA,EAEA,YjB44ED,QAAA,MiBzzEC,WAAY,IAwEZ,cAAe,KAtIX,MAAA,QAEA,yBjB23EH,yBiBvvEC,QAAS,aA/HP,cAAA,EACA,eAAA,OjB03EH,2BiB5vEC,QAAS,aAxHP,MAAA,KjBu3EH,eAAA,OiBn3EG,kCACA,QAAA,aAmHJ,0BhB8wEE,QAAS,aACT,eAAgB,OgBv3Ed,wCjBg3EH,6CiBxwED,2CjB2wEC,MAAA,KiB/2EG,wCACA,MAAA,KAmGJ,4BhB0xEE,cAAe,EgBt3Eb,eAAA,OAGA,uBADA,oBjBg3EH,QAAA,aiBtxEC,WAAY,EhBiyEZ,cAAe,EgBv3EX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB+xEC,sCiB12EG,SAAA,SjB62EH,YAAA,EiBl2ED,kDhB82EE,IAAK,GgBp2EL,2BjBi2EH,kCiBl2EG,wBAEA,+BAXF,YAAa,IhBs3Eb,WAAY,EgBr2EV,cAAA,EJviBF,2BIshBF,wBJrhBE,WAAA,KI4jBA,6BAyBA,aAAc,MAnCV,YAAA,MAEA,yBjB01EH,gCACF,YAAA,IiB13EG,cAAe,EAwCf,WAAA,OAwBJ,sDAdQ,MAAA,KjBg1EL,yBACF,+CiBr0EC,YAAA,KAEE,UAAW,MjBw0EZ,yBACF,+CmBt6FG,YAAa,IACf,UAAA,MAGA,KACA,QAAA,aACA,QAAA,IAAA,KAAA,cAAA,EACA,UAAA,KACA,YAAA,IACA,YAAA,WACA,WAAA,OC0CA,YAAA,OACA,eAAA,OACA,iBAAA,aACA,aAAA,ahB+JA,OAAA,QACG,oBAAA,KACC,iBAAA,KACI,gBAAA,KJiuFT,YAAA,KmBz6FG,iBAAA,KlBq7FF,OAAQ,IAAI,MAAM,YAClB,cAAe,IDHhB,kBKx8FC,kBAEA,WACA,kBJ28FF,kBADA,WkBl7FE,QAAA,KAAA,OlBy7FA,QAAS,IAAI,KAAK,yBAClB,eAAgB,KkBn7FhB,WnB46FD,WmB/6FG,WlB27FF,MAAO,KkBt7FL,gBAAA,Kf6BM,YADR,YJq5FD,iBAAA,KmB56FC,QAAA,ElBw7FA,mBAAoB,MAAM,EAAE,IAAI,IAAI,iBAC5B,WAAY,MAAM,EAAE,IAAI,IAAI,iBoBn+FpC,cAGA,ejB8DA,wBACQ,OAAA,YJ65FT,OAAA,kBmB56FG,mBAAA,KlBw7FM,WAAY,KkBt7FhB,QAAA,IASN,eC3DE,yBACA,eAAA,KpBo+FD,aoBj+FC,MAAA,KnB6+FA,iBAAkB,KmB3+FhB,aAAA,KpBq+FH,mBoBn+FO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBo+FH,mBoBj+FC,MAAA,KnB6+FA,iBAAkB,QAClB,aAAc,QmBz+FR,oBADJ,oBpBo+FH,mCoBj+FG,MAAA,KnB6+FF,iBAAkB,QAClB,aAAc,QmBz+FN,0BnB++FV,0BAHA,0BmB7+FM,0BnB++FN,0BAHA,0BDFC,yCoB3+FK,yCnB++FN,yCmB1+FE,MAAA,KnBk/FA,iBAAkB,QAClB,aAAc,QmB3+FZ,oBpBm+FH,oBoBn+FG,mCnBg/FF,iBAAkB,KmB5+FV,4BnBi/FV,4BAHA,4BDHC,6BCOD,6BAHA,6BkB99FA,sCClBM,sCnBi/FN,sCmB3+FI,iBAAA,KACA,aAAA,KDcJ,oBC9DE,MAAA,KACA,iBAAA,KpB6hGD,aoB1hGC,MAAA,KnBsiGA,iBAAkB,QmBpiGhB,aAAA,QpB8hGH,mBoB5hGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB6hGH,mBoB1hGC,MAAA,KnBsiGA,iBAAkB,QAClB,aAAc,QmBliGR,oBADJ,oBpB6hGH,mCoB1hGG,MAAA,KnBsiGF,iBAAkB,QAClB,aAAc,QmBliGN,0BnBwiGV,0BAHA,0BmBtiGM,0BnBwiGN,0BAHA,0BDFC,yCoBpiGK,yCnBwiGN,yCmBniGE,MAAA,KnB2iGA,iBAAkB,QAClB,aAAc,QmBpiGZ,oBpB4hGH,oBoB5hGG,mCnByiGF,iBAAkB,KmBriGV,4BnB0iGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBphGA,sCCrBM,sCnB0iGN,sCmBpiGI,iBAAA,QACA,aAAA,QDkBJ,oBClEE,MAAA,QACA,iBAAA,KpBslGD,aoBnlGC,MAAA,KnB+lGA,iBAAkB,QmB7lGhB,aAAA,QpBulGH,mBoBrlGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBslGH,mBoBnlGC,MAAA,KnB+lGA,iBAAkB,QAClB,aAAc,QmB3lGR,oBADJ,oBpBslGH,mCoBnlGG,MAAA,KnB+lGF,iBAAkB,QAClB,aAAc,QmB3lGN,0BnBimGV,0BAHA,0BmB/lGM,0BnBimGN,0BAHA,0BDFC,yCoB7lGK,yCnBimGN,yCmB5lGE,MAAA,KnBomGA,iBAAkB,QAClB,aAAc,QmB7lGZ,oBpBqlGH,oBoBrlGG,mCnBkmGF,iBAAkB,KmB9lGV,4BnBmmGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBzkGA,sCCzBM,sCnBmmGN,sCmB7lGI,iBAAA,QACA,aAAA,QDsBJ,oBCtEE,MAAA,QACA,iBAAA,KpB+oGD,UoB5oGC,MAAA,KnBwpGA,iBAAkB,QmBtpGhB,aAAA,QpBgpGH,gBoB9oGO,gBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpB+oGH,gBoB5oGC,MAAA,KnBwpGA,iBAAkB,QAClB,aAAc,QmBppGR,iBADJ,iBpB+oGH,gCoB5oGG,MAAA,KnBwpGF,iBAAkB,QAClB,aAAc,QmBppGN,uBnB0pGV,uBAHA,uBmBxpGM,uBnB0pGN,uBAHA,uBDFC,sCoBtpGK,sCnB0pGN,sCmBrpGE,MAAA,KnB6pGA,iBAAkB,QAClB,aAAc,QmBtpGZ,iBpB8oGH,iBoB9oGG,gCnB2pGF,iBAAkB,KmBvpGV,yBnB4pGV,yBAHA,yBDHC,0BCOD,0BAHA,0BkB9nGA,mCC7BM,mCnB4pGN,mCmBtpGI,iBAAA,QACA,aAAA,QD0BJ,iBC1EE,MAAA,QACA,iBAAA,KpBwsGD,aoBrsGC,MAAA,KnBitGA,iBAAkB,QmB/sGhB,aAAA,QpBysGH,mBoBvsGO,mBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBwsGH,mBoBrsGC,MAAA,KnBitGA,iBAAkB,QAClB,aAAc,QmB7sGR,oBADJ,oBpBwsGH,mCoBrsGG,MAAA,KnBitGF,iBAAkB,QAClB,aAAc,QmB7sGN,0BnBmtGV,0BAHA,0BmBjtGM,0BnBmtGN,0BAHA,0BDFC,yCoB/sGK,yCnBmtGN,yCmB9sGE,MAAA,KnBstGA,iBAAkB,QAClB,aAAc,QmB/sGZ,oBpBusGH,oBoBvsGG,mCnBotGF,iBAAkB,KmBhtGV,4BnBqtGV,4BAHA,4BDHC,6BCOD,6BAHA,6BkBnrGA,sCCjCM,sCnBqtGN,sCmB/sGI,iBAAA,QACA,aAAA,QD8BJ,oBC9EE,MAAA,QACA,iBAAA,KpBiwGD,YoB9vGC,MAAA,KnB0wGA,iBAAkB,QmBxwGhB,aAAA,QpBkwGH,kBoBhwGO,kBAEN,MAAA,KACE,iBAAA,QACA,aAAA,QpBiwGH,kBoB9vGC,MAAA,KnB0wGA,iBAAkB,QAClB,aAAc,QmBtwGR,mBADJ,mBpBiwGH,kCoB9vGG,MAAA,KnB0wGF,iBAAkB,QAClB,aAAc,QmBtwGN,yBnB4wGV,yBAHA,yBmB1wGM,yBnB4wGN,yBAHA,yBDFC,wCoBxwGK,wCnB4wGN,wCmBvwGE,MAAA,KnB+wGA,iBAAkB,QAClB,aAAc,QmBxwGZ,mBpBgwGH,mBoBhwGG,kCnB6wGF,iBAAkB,KmBzwGV,2BnB8wGV,2BAHA,2BDHC,4BCOD,4BAHA,4BkBxuGA,qCCrCM,qCnB8wGN,qCmBxwGI,iBAAA,QACA,aAAA,QDuCJ,mBACE,MAAA,QACA,iBAAA,KnBkuGD,UmB/tGC,YAAA,IlB2uGA,MAAO,QACP,cAAe,EAEjB,UG5wGE,iBemCE,iBflCM,oBJqwGT,6BmBhuGC,iBAAA,YlB4uGA,mBAAoB,KACZ,WAAY,KkBzuGlB,UAEF,iBAAA,gBnBguGD,gBmB9tGG,aAAA,YnBouGH,gBmBluGG,gBAIA,MAAA,QlB0uGF,gBAAiB,UACjB,iBAAkB,YDNnB,0BmBnuGK,0BAUN,mCATM,mClB8uGJ,MAAO,KmB7yGP,gBAAA,KAGA,mBADA,QpBsyGD,QAAA,KAAA,KmB5tGC,UAAW,KlBwuGX,YAAa,UmBpzGb,cAAA,IAGA,mBADA,QpB6yGD,QAAA,IAAA,KmB/tGC,UAAW,KlB2uGX,YAAa,ImB3zGb,cAAA,IAGA,mBADA,QpBozGD,QAAA,IAAA,ImB9tGC,UAAW,KACX,YAAA,IACA,cAAA,IAIF,WACE,QAAA,MnB8tGD,MAAA,KCYD,sBACE,WAAY,IqB53GZ,6BADF,4BtBq3GC,6BIhsGC,MAAA,KAEQ,MJosGT,QAAA,EsBx3GC,mBAAA,QAAA,KAAA,OACE,cAAA,QAAA,KAAA,OtB03GH,WAAA,QAAA,KAAA,OsBr3GC,StBw3GD,QAAA,EsBt3Ga,UtBy3Gb,QAAA,KsBx3Ga,atB23Gb,QAAA,MsB13Ga,etB63Gb,QAAA,UsBz3GC,kBACA,QAAA,gBlBwKA,YACQ,SAAA,SAAA,OAAA,EAOR,SAAA,OACQ,mCAAA,KAAA,8BAAA,KAGR,2BAAA,KACQ,4BAAA,KAAA,uBAAA,KJ8sGT,oBAAA,KuBx5GC,4BAA6B,OAAQ,WACrC,uBAAA,OAAA,WACA,oBAAA,OAAA,WAEA,OACA,QAAA,aACA,MAAA,EACA,OAAA,EACA,YAAA,IACA,eAAA,OvB05GD,WAAA,IAAA,OuBt5GC,WAAY,IAAI,QtBq6GhB,aAAc,IAAI,MAAM,YsBn6GxB,YAAA,IAAA,MAAA,YAKA,UADF,QvBu5GC,SAAA,SuBj5GC,uBACA,QAAA,EAEA,eACA,SAAA,SACA,IAAA,KACA,KAAA,EACA,QAAA,KACA,QAAA,KACA,MAAA,KACA,UAAA,MACA,QAAA,IAAA,EACA,OAAA,IAAA,EAAA,EACA,UAAA,KACA,WAAA,KACA,WAAA,KnBsBA,iBAAA,KACQ,wBAAA,YmBrBR,gBAAA,YtBk6GA,OsBl6GA,IAAA,MAAA,KvBq5GD,OAAA,IAAA,MAAA,gBuBh5GC,cAAA,IACE,mBAAA,EAAA,IAAA,KAAA,iBACA,WAAA,EAAA,IAAA,KAAA,iBAzBJ,0BCzBE,MAAA,EACA,KAAA,KAEA,wBxBu8GD,OAAA,IuBj7GC,OAAQ,IAAI,EAmCV,SAAA,OACA,iBAAA,QAEA,oBACA,QAAA,MACA,QAAA,IAAA,KACA,MAAA,KvBi5GH,YAAA,IuB34GC,YAAA,WtB25GA,MAAO,KsBz5GL,YAAA,OvB+4GH,0BuB74GG,0BAMF,MAAA,QtBu5GA,gBAAiB,KACjB,iBAAkB,QsBp5GhB,yBAEA,+BADA,+BvB04GH,MAAA,KuBh4GC,gBAAA,KtBg5GA,iBAAkB,QAClB,QAAS,EDZV,2BuB93GC,iCAAA,iCAEE,MAAA,KEzGF,iCF2GE,iCAEA,gBAAA,KvBg4GH,OAAA,YuB33GC,iBAAkB,YAGhB,iBAAA,KvB23GH,OAAA,0DuBt3GG,qBvBy3GH,QAAA,MuBh3GC,QACA,QAAA,EAQF,qBACE,MAAA,EACA,KAAA,KAIF,oBACE,MAAA,KACA,KAAA,EAEA,iBACA,QAAA,MACA,QAAA,IAAA,KvB22GD,UAAA,KuBv2GC,YAAa,WACb,MAAA,KACA,YAAA,OAEA,mBACA,SAAA,MACA,IAAA,EvBy2GD,MAAA,EuBr2GC,OAAQ,EACR,KAAA,EACA,QAAA,IAQF,2BtB+2GE,MAAO,EsB32GL,KAAA,KAEA,eACA,sCvB+1GH,QAAA,GuBt2GC,WAAY,EtBs3GZ,cAAe,IAAI,OsB32GjB,cAAA,IAAA,QAEA,uBvB+1GH,8CuB10GC,IAAK,KAXL,OAAA,KApEA,cAAA,IvB85GC,yBuB11GD,6BA1DA,MAAA,EACA,KAAA,KvBw5GD,kC0BviHG,MAAO,KzBujHP,KAAM,GyBnjHR,W1ByiHD,oB0B7iHC,SAAU,SzB6jHV,QAAS,ayBvjHP,eAAA,OAGA,yB1ByiHH,gBCgBC,SAAU,SACV,MAAO,KyBhjHT,gC1ByiHC,gCCYD,+BAFA,+ByBnjHA,uBANM,uBzB0jHN,sBAFA,sBAQE,QAAS,EyBrjHP,qB1B0iHH,2B0BriHD,2BACE,iC1BuiHD,YAAA,KCgBD,aACE,YAAa,KDZd,kB0B7iHD,wBAAA,0BzB8jHE,MAAO,KDZR,kB0BliHD,wBACE,0B1BoiHD,YAAA,I0B/hHC,yE1BkiHD,cAAA,E2BnlHC,4BACG,YAAA,EDsDL,mEzBgjHE,wBAAyB,E0B/lHzB,2BAAA,E3BolHD,6C0B/hHD,8CACE,uBAAA,E1BiiHD,0BAAA,E0B9hHC,sB1BiiHD,MAAA,KCgBD,8D0BlnHE,cAAA,E3BumHD,mE0B9hHD,oECjEE,wBAAA,EACG,2BAAA,EDqEL,oEzB6iHE,uBAAwB,EyB3iHxB,0BAAA,EAiBF,mCACE,iCACA,QAAA,EAEF,iCACE,cAAA,IACA,aAAA,IAKF,oCtB/CE,cAAA,KACQ,aAAA,KsBkDR,iCtBnDA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBsByDV,0CACE,mBAAA,K1B0gHD,WAAA,K0BtgHC,YACA,YAAA,EAGF,eACE,aAAA,IAAA,IAAA,E1BwgHD,oBAAA,ECgBD,uBACE,aAAc,EAAE,IAAI,IyB7gHlB,yBACA,+BACA,oC1BkgHH,QAAA,M0BzgHC,MAAO,KAcH,MAAA,K1B8/GL,UAAA,KCgBD,oCACE,MAAO,KyBvgHL,8BACA,oC1B4/GH,oC0Bv/GC,0CACE,WAAA,K1By/GH,YAAA,E2BlqHC,4DACC,cAAA,EAQA,sD3B+pHF,uBAAA,I0Bz/GC,wBAAA,IC/KA,2BAAA,EACC,0BAAA,EAQA,sD3BqqHF,uBAAA,E0B1/GC,wBAAyB,EACzB,2BAAA,I1B4/GD,0BAAA,ICgBD,uE0BzrHE,cAAA,E3B8qHD,4E0Bz/GD,6EC7LE,2BAAA,EACC,0BAAA,EDoMH,6EACE,uBAAA,EACA,wBAAA,EAEA,qB1Bu/GD,QAAA,M0B3/GC,MAAO,KzB2gHP,aAAc,MyBpgHZ,gBAAA,SAEA,0B1Bw/GH,gC0BjgHC,QAAS,WAYP,MAAA,K1Bw/GH,MAAA,G0Bp/GG,qC1Bu/GH,MAAA,KCgBD,+CACE,KAAM,KyBh/GF,gDAFA,6C1By+GL,2D0Bx+GK,wDEzOJ,SAAU,SACV,KAAA,cACA,eAAA,K5BotHD,a4BhtHC,SAAA,SACE,QAAA,MACA,gBAAA,S5BmtHH,0B4B3tHC,MAAO,KAeL,cAAA,EACA,aAAA,EAOA,2BACA,SAAA,S5B0sHH,QAAA,E4BxsHG,MAAA,KACE,MAAA,K5B0sHL,cAAA,ECgBD,iCACE,QAAS,EiBtrHT,8BACA,mCACA,sCACA,OAAA,KlB2qHD,QAAA,KAAA,KkBzqHC,UAAA,KjByrHA,YAAa,UACb,cAAe,IiBxrHb,oClB6qHH,yCkB1qHC,4CjB0rHA,OAAQ,KACR,YAAa,KDTd,8C4BltHD,mDAAA,sD3B6tHA,sCACA,2CiB5rHI,8CjBisHF,OAAQ,KiB7sHR,8BACA,mCACA,sCACA,OAAA,KlBksHD,QAAA,IAAA,KkBhsHC,UAAA,KjBgtHA,YAAa,IACb,cAAe,IiB/sHb,oClBosHH,yCkBjsHC,4CjBitHA,OAAQ,KACR,YAAa,KDTd,8C4BhuHD,mDAAA,sD3B2uHA,sCACA,2CiBntHI,8CjBwtHF,OAAQ,K2B5uHR,2B5BguHD,mB4BhuHC,iB3BivHA,QAAS,W2B5uHX,8D5BguHC,sD4BhuHD,oDAEE,cAAA,EAEA,mB5BkuHD,iB4B7tHC,MAAO,GACP,YAAA,OACA,eAAA,OAEA,mBACA,QAAA,IAAA,KACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,K5B+tHD,WAAA,O4B5tHC,iBAAA,KACE,OAAA,IAAA,MAAA,KACA,cAAA,I5B+tHH,4B4B5tHC,QAAA,IAAA,KACE,UAAA,KACA,cAAA,I5B+tHH,4B4BlvHC,QAAS,KAAK,K3BkwHd,UAAW,K2BxuHT,cAAA,IAKJ,wCAAA,qC3BwuHE,WAAY,EAEd,uCACA,+BACA,kC0Bh1HE,6CACG,8CC4GL,6D5BwtHC,wE4BvtHC,wBAAA,E5B0tHD,2BAAA,ECgBD,+BACE,aAAc,EAEhB,sCACA,8B2BnuHA,+D5BytHC,oDCWD,iC0Br1HE,4CACG,6CCiHH,uBAAA,E5B2tHD,0BAAA,E4BrtHC,8BAGA,YAAA,E5ButHD,iB4B3tHC,SAAU,SAUR,UAAA,E5BotHH,YAAA,O4BltHK,sB5BqtHL,SAAA,SCgBD,2BACE,YAAa,K2B3tHb,6BAAA,4B5B+sHD,4B4B5sHK,QAAA,EAGJ,kCAAA,wCAGI,aAAA,K5B+sHL,iC6B72HD,uCACE,QAAA,EACA,YAAA,K7Bg3HD,K6Bl3HC,aAAc,EAOZ,cAAA,EACA,WAAA,KARJ,QAWM,SAAA,SACA,QAAA,M7B+2HL,U6B72HK,SAAA,S5B63HJ,QAAS,M4B33HH,QAAA,KAAA,KAMJ,gB7B02HH,gB6Bz2HK,gBAAA,K7B42HL,iBAAA,KCgBD,mB4Bx3HQ,MAAA,KAGA,yBADA,yB7B62HP,MAAA,K6Br2HG,gBAAA,K5Bq3HF,OAAQ,YACR,iBAAkB,Y4Bl3Hd,aAzCN,mB7Bg5HC,mBwBn5HC,iBAAA,KACA,aAAA,QAEA,kBxBs5HD,OAAA,I6Bt5HC,OAAQ,IAAI,EA0DV,SAAA,O7B+1HH,iBAAA,Q6Br1HC,c7Bw1HD,UAAA,K6Bt1HG,UAEA,cAAA,IAAA,MAAA,KALJ,aASM,MAAA,KACA,cAAA,KAEA,e7Bu1HL,aAAA,I6Bt1HK,YAAA,WACE,OAAA,IAAA,MAAA,Y7Bw1HP,cAAA,IAAA,IAAA,EAAA,ECgBD,qBACE,aAAc,KAAK,KAAK,K4B/1HlB,sBAEA,4BADA,4BAEA,MAAA,K7Bo1HP,OAAA,Q6B/0HC,iBAAA,KAqDA,OAAA,IAAA,MAAA,KA8BA,oBAAA,YAnFA,wBAwDE,MAAA,K7B8xHH,cAAA,E6B5xHK,2BACA,MAAA,KA3DJ,6BAgEE,cAAA,IACA,WAAA,OAYJ,iDA0DE,IAAK,KAjED,KAAA,K7B6xHH,yB6B5tHD,2BA9DM,QAAA,W7B6xHL,MAAA,G6Bt2HD,6BAuFE,cAAA,GAvFF,6B5B23HA,aAAc,EACd,cAAe,IDZhB,kC6BzuHD,wCA3BA,wCATM,OAAA,IAAA,MAAA,K7BkxHH,yB6B9uHD,6B5B8vHE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,kC6Bj3HD,wC7Bk3HD,wC6Bh3HG,oBAAA,MAIE,c7Bk3HL,MAAA,K6B/2HK,gB7Bk3HL,cAAA,ICgBD,iBACE,YAAa,I4B13HP,uBAQR,6B7Bu2HC,6B6Br2HG,MAAA,K7Bw2HH,iBAAA,Q6Bt2HK,gBACA,MAAA,KAYN,mBACE,WAAA,I7B+1HD,YAAA,E6B51HG,e7B+1HH,MAAA,K6B71HK,kBACA,MAAA,KAPN,oBAYI,cAAA,IACA,WAAA,OAYJ,wCA0DE,IAAK,KAjED,KAAA,K7B81HH,yB6B7xHD,kBA9DM,QAAA,W7B81HL,MAAA,G6Br1HD,oBACA,cAAA,GAIE,oBACA,cAAA,EANJ,yB5B62HE,aAAc,EACd,cAAe,IDZhB,8B6B7yHD,oCA3BA,oCATM,OAAA,IAAA,MAAA,K7Bs1HH,yB6BlzHD,yB5Bk0HE,cAAe,IAAI,MAAM,KACzB,cAAe,IAAI,IAAI,EAAE,EDZ1B,8B6B30HD,oC7B40HD,oC6B10HG,oBAAA,MAGA,uB7B60HH,QAAA,K6Bl0HC,qBF3OA,QAAA,M3BkjID,yB8B3iIC,WAAY,KACZ,uBAAA,EACA,wBAAA,EAEA,Q9B6iID,SAAA,S8BriIC,WAAY,KA8nBZ,cAAe,KAhoBb,OAAA,IAAA,MAAA,Y9B4iIH,yB8B5hIC,QAgnBE,cAAe,K9Bi7GlB,yB8BphIC,eACA,MAAA,MAGA,iBACA,cAAA,KAAA,aAAA,KAEA,WAAA,Q9BqhID,2BAAA,M8BnhIC,WAAA,IAAA,MAAA,YACE,mBAAA,MAAA,EAAA,IAAA,EAAA,qB9BqhIH,WAAA,MAAA,EAAA,IAAA,EAAA,qB8B57GD,oBArlBI,WAAA,KAEA,yBAAA,iB9BqhID,MAAA,K8BnhIC,WAAA,EACE,mBAAA,KACA,WAAA,KAEA,0B9BqhIH,QAAA,gB8BlhIC,OAAA,eACE,eAAA,E9BohIH,SAAA,kBCkBD,oBACE,WAAY,QDZf,sC8BlhIK,mC9BihIH,oC8B5gIC,cAAe,E7B+hIf,aAAc,G6Bp+GlB,sCAnjBE,mC7B4hIA,WAAY,MDdX,4D8BtgID,sC9BugID,mCCkBG,WAAY,O6B9gId,kCANE,gC9BygIH,4B8B1gIG,0BAuiBF,aAAc,M7Bs/Gd,YAAa,MAEf,yBDZC,kC8B9gIK,gC9B6gIH,4B8B9gIG,0BAcF,aAAc,EAChB,YAAA,GAMF,mBA8gBE,QAAS,KAhhBP,aAAA,EAAA,EAAA,I9BqgIH,yB8BhgIC,mB7BkhIE,cAAe,G6B7gIjB,qBADA,kB9BmgID,SAAA,M8B5/HC,MAAO,EAggBP,KAAM,E7B+gHN,QAAS,KDdR,yB8BhgID,qB9BigID,kB8BhgIC,cAAA,GAGF,kBACE,IAAA,EACA,aAAA,EAAA,EAAA,I9BogID,qB8B7/HC,OAAQ,EACR,cAAA,EACA,aAAA,IAAA,EAAA,EAEA,cACA,MAAA,K9B+/HD,OAAA,K8B7/HC,QAAA,KAAA,K7B+gIA,UAAW,K6B7gIT,YAAA,KAIA,oBAbJ,oB9B2gIC,gBAAA,K8B1/HG,kB7B6gIF,QAAS,MDdR,yBACF,iC8Bn/HC,uCACA,YAAA,OAGA,eC9LA,SAAA,SACA,MAAA,MD+LA,QAAA,IAAA,KACA,WAAA,IACA,aAAA,KACA,cAAA,I9Bs/HD,iBAAA,Y8Bl/HC,iBAAA,KACE,OAAA,IAAA,MAAA,Y9Bo/HH,cAAA,I8B/+HG,qBACA,QAAA,EAEA,yB9Bk/HH,QAAA,M8BxgIC,MAAO,KAyBL,OAAA,I9Bk/HH,cAAA,I8BvjHD,mCAvbI,WAAA,I9Bm/HH,yB8Bz+HC,eACA,QAAA,MAGE,YACA,OAAA,MAAA,M9B4+HH,iB8B/8HC,YAAA,KA2YA,eAAgB,KAjaZ,YAAA,KAEA,yBACA,iCACA,SAAA,OACA,MAAA,KACA,MAAA,KAAA,WAAA,E9By+HH,iBAAA,Y8B9kHC,OAAQ,E7BimHR,mBAAoB,K6Bz/HhB,WAAA,KAGA,kDAqZN,sC9BqlHC,QAAA,IAAA,KAAA,IAAA,KCmBD,sC6B1/HQ,YAAA,KAmBR,4C9By9HD,4C8B1lHG,iBAAkB,M9B+lHnB,yB8B/lHD,YAtYI,MAAA,K9Bw+HH,OAAA,E8Bt+HK,eACA,MAAA,K9B0+HP,iB8B99HG,YAAa,KACf,eAAA,MAGA,aACA,QAAA,KAAA,K1B9NA,WAAA,IACQ,aAAA,M2B/DR,cAAA,IACA,YAAA,M/B+vID,WAAA,IAAA,MAAA,YiBzuHC,cAAe,IAAI,MAAM,YAwEzB,mBAAoB,MAAM,EAAE,IAAI,EAAE,qBAAyB,EAAE,IAAI,EAAE,qBAtI/D,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,qBAEA,yBjB2yHH,yBiBvqHC,QAAS,aA/HP,cAAA,EACA,eAAA,OjB0yHH,2BiB5qHC,QAAS,aAxHP,MAAA,KjBuyHH,eAAA,OiBnyHG,kCACA,QAAA,aAmHJ,0BhBssHE,QAAS,aACT,eAAgB,OgB/yHd,wCjBgyHH,6CiBxrHD,2CjB2rHC,MAAA,KiB/xHG,wCACA,MAAA,KAmGJ,4BhBktHE,cAAe,EgB9yHb,eAAA,OAGA,uBADA,oBjBgyHH,QAAA,aiBtsHC,WAAY,EhBytHZ,cAAe,EgB/yHX,eAAA,OAsFN,6BAAA,0BAjFI,aAAA,EAiFJ,4CjB+sHC,sCiB1xHG,SAAA,SjB6xHH,YAAA,E8BtgID,kDAmWE,IAAK,GAvWH,yBACE,yB9BihIL,cAAA,I8B//HD,oCAoVE,cAAe,GA1Vf,yBACA,aACA,MAAA,KACA,YAAA,E1BzPF,eAAA,EACQ,aAAA,EJswIP,YAAA,EACF,OAAA,E8BtgIG,mBAAoB,KACtB,WAAA,M9B0gID,8B8BtgIC,WAAY,EACZ,uBAAA,EHzUA,wBAAA,EAQA,mDACC,cAAA,E3B40IF,uBAAA,I8BlgIC,wBAAyB,IChVzB,2BAAA,EACA,0BAAA,EDkVA,YCnVA,WAAA,IACA,cAAA,IDqVA,mBCtVA,WAAA,KACA,cAAA,KD+VF,mBChWE,WAAA,KACA,cAAA,KDuWF,aAsSE,WAAY,KA1SV,cAAA,KAEA,yB9BkgID,aACF,MAAA,K8Br+HG,aAAc,KAhBhB,YAAA,MACA,yBE5WA,aF8WE,MAAA,eAFF,cAKI,MAAA,gB9B0/HH,aAAA,M8Bh/HD,4BACA,aAAA,GADF,gBAKI,iBAAA,Q9Bm/HH,aAAA,QCmBD,8B6BngIM,MAAA,KARN,oC9B6/HC,oC8B/+HG,MAAA,Q9Bk/HH,iBAAA,Y8B7+HK,6B9Bg/HL,MAAA,KCmBD,iC6B//HQ,MAAA,KAKF,uC9B4+HL,uCCmBC,MAAO,KACP,iBAAkB,Y6B5/HZ,sCAIF,4C9B0+HL,4CCmBC,MAAO,KACP,iBAAkB,Q6B1/HZ,wCAxCR,8C9BohIC,8C8Bt+HG,MAAA,K9By+HH,iBAAA,YCmBD,+B6Bz/HM,aAAA,KAGA,qCApDN,qC9B8hIC,iBAAA,KCmBD,yC6Bv/HI,iBAAA,KAOE,iCAAA,6B7Bq/HJ,aAAc,Q6Bj/HR,oCAiCN,0C9Bk8HD,0C8B9xHC,MAAO,KA7LC,iBAAA,QACA,yB7Bi/HR,sD6B/+HU,MAAA,KAKF,4D9B49HP,4DCmBC,MAAO,KACP,iBAAkB,Y6B5+HV,2DAIF,iE9B09HP,iECmBC,MAAO,KACP,iBAAkB,Q6B1+HV,6D9B69HX,mEADE,mE8B7jIC,MAAO,KA8GP,iBAAA,aAEE,6B9Bo9HL,MAAA,K8B/8HG,mC9Bk9HH,MAAA,KCmBD,0B6Bl+HM,MAAA,KAIA,gCAAA,gC7Bm+HJ,MAAO,K6Bz9HT,0CARQ,0CASN,mD9B08HD,mD8Bz8HC,MAAA,KAFF,gBAKI,iBAAA,K9B68HH,aAAA,QCmBD,8B6B79HM,MAAA,QARN,oC9Bu9HC,oC8Bz8HG,MAAA,K9B48HH,iBAAA,Y8Bv8HK,6B9B08HL,MAAA,QCmBD,iC6Bz9HQ,MAAA,QAKF,uC9Bs8HL,uCCmBC,MAAO,KACP,iBAAkB,Y6Bt9HZ,sCAIF,4C9Bo8HL,4CCmBC,MAAO,KACP,iBAAkB,Q6Bp9HZ,wCAxCR,8C9B8+HC,8C8B/7HG,MAAA,K9Bk8HH,iBAAA,YCmBD,+B6Bl9HM,aAAA,KAGA,qCArDN,qC9Bw/HC,iBAAA,KCmBD,yC6Bh9HI,iBAAA,KAME,iCAAA,6B7B+8HJ,aAAc,Q6B38HR,oCAuCN,0C9Bs5HD,0C8B93HC,MAAO,KAvDC,iBAAA,QAuDV,yBApDU,kE9By7HP,aAAA,Q8Bt7HO,0D9By7HP,iBAAA,QCmBD,sD6Bz8HU,MAAA,QAKF,4D9Bs7HP,4DCmBC,MAAO,KACP,iBAAkB,Y6Bt8HV,2DAIF,iE9Bo7HP,iECmBC,MAAO,KACP,iBAAkB,Q6Bp8HV,6D9Bu7HX,mEADE,mE8B7hIC,MAAO,KA+GP,iBAAA,aAEE,6B9Bm7HL,MAAA,Q8B96HG,mC9Bi7HH,MAAA,KCmBD,0B6Bj8HM,MAAA,QAIA,gCAAA,gC7Bk8HJ,MAAO,KgC1kJT,0CH0oBQ,0CGzoBN,mDjC2jJD,mDiC1jJC,MAAA,KAEA,YACA,QAAA,IAAA,KjC8jJD,cAAA,KiCnkJC,WAAY,KAQV,iBAAA,QjC8jJH,cAAA,IiC3jJK,eACA,QAAA,ajC+jJL,yBiC3kJC,QAAS,EAAE,IAkBT,MAAA,KjC4jJH,QAAA,SkC/kJC,oBACA,MAAA,KAEA,YlCklJD,QAAA,akCtlJC,aAAc,EAOZ,OAAA,KAAA,ElCklJH,cAAA,ICmBD,eiClmJM,QAAA,OAEA,iBACA,oBACA,SAAA,SACA,MAAA,KACA,QAAA,IAAA,KACA,YAAA,KACA,YAAA,WlCmlJL,MAAA,QkCjlJG,gBAAA,KjComJF,iBAAkB,KiCjmJZ,OAAA,IAAA,MAAA,KPVH,6B3B8lJJ,gCkChlJG,YAAA,EjCmmJF,uBAAwB,I0B1nJxB,0BAAA,I3B4mJD,4BkC3kJG,+BjC8lJF,wBAAyB,IACzB,2BAA4B,IiC3lJxB,uBAFA,uBAGA,0BAFA,0BlCilJL,QAAA,EkCzkJG,MAAA,QjC4lJF,iBAAkB,KAClB,aAAc,KAEhB,sBiC1lJM,4BAFA,4BjC6lJN,yBiC1lJM,+BAFA,+BAGA,QAAA,ElC8kJL,MAAA,KkCroJC,OAAQ,QjCwpJR,iBAAkB,QAClB,aAAc,QiCtlJV,wBAEA,8BADA,8BjCulJN,2BiCzlJM,iCjC0lJN,iCDZC,MAAA,KkClkJC,OAAQ,YjCqlJR,iBAAkB,KkChqJd,aAAA,KAEA,oBnCipJL,uBmC/oJG,QAAA,KAAA,KlCkqJF,UAAW,K0B7pJX,YAAA,U3B+oJD,gCmC9oJG,mClCiqJF,uBAAwB,I0B1qJxB,0BAAA,I3B4pJD,+BkC7kJD,kCjCgmJE,wBAAyB,IkChrJrB,2BAAA,IAEA,oBnCiqJL,uBmC/pJG,QAAA,IAAA,KlCkrJF,UAAW,K0B7qJX,YAAA,I3B+pJD,gCmC9pJG,mClCirJF,uBAAwB,I0B1rJxB,0BAAA,I3B4qJD,+BoC9qJD,kCACE,wBAAA,IACA,2BAAA,IAEA,OpCgrJD,aAAA,EoCprJC,OAAQ,KAAK,EAOX,WAAA,OpCgrJH,WAAA,KCmBD,UmChsJM,QAAA,OAEA,YACA,eACA,QAAA,apCirJL,QAAA,IAAA,KoC/rJC,iBAAkB,KnCktJlB,OAAQ,IAAI,MAAM,KmC/rJd,cAAA,KAnBN,kBpCosJC,kBCmBC,gBAAiB,KmC5rJb,iBAAA,KA3BN,eAAA,kBAkCM,MAAA,MAlCN,mBAAA,sBnCguJE,MAAO,KmCrrJH,mBAEA,yBADA,yBpCwqJL,sBqCrtJC,MAAO,KACP,OAAA,YACA,iBAAA,KAEA,OACA,QAAA,OACA,QAAA,KAAA,KAAA,KACA,UAAA,IACA,YAAA,IACA,YAAA,EACA,MAAA,KrCutJD,WAAA,OqCntJG,YAAA,OpCsuJF,eAAgB,SoCpuJZ,cAAA,MrCutJL,cqCrtJK,cAKJ,MAAA,KACE,gBAAA,KrCktJH,OAAA,QqC7sJG,aACA,QAAA,KAOJ,YCtCE,SAAA,StCkvJD,IAAA,KCmBD,eqChwJM,iBAAA,KALJ,2BD0CF,2BrC+sJC,iBAAA,QCmBD,eqCvwJM,iBAAA,QALJ,2BD8CF,2BrCktJC,iBAAA,QCmBD,eqC9wJM,iBAAA,QALJ,2BDkDF,2BrCqtJC,iBAAA,QCmBD,YqCrxJM,iBAAA,QALJ,wBDsDF,wBrCwtJC,iBAAA,QCmBD,eqC5xJM,iBAAA,QALJ,2BD0DF,2BrC2tJC,iBAAA,QCmBD,cqCnyJM,iBAAA,QCDJ,0BADF,0BAEE,iBAAA,QAEA,OACA,QAAA,aACA,UAAA,KACA,QAAA,IAAA,IACA,UAAA,KACA,YAAA,IACA,YAAA,EACA,MAAA,KACA,WAAA,OvCwxJD,YAAA,OuCrxJC,eAAA,OACE,iBAAA,KvCuxJH,cAAA,KuClxJG,aACA,QAAA,KAGF,YtCqyJA,SAAU,SsCnyJR,IAAA,KAMA,0BvC+wJH,eCmBC,IAAK,EsChyJD,QAAA,IAAA,IvCmxJL,cuCjxJK,cAKJ,MAAA,KtC+xJA,gBAAiB,KsC7xJf,OAAA,QvC+wJH,+BuC3wJC,4BACE,MAAA,QvC6wJH,iBAAA,KuCzwJG,wBvC4wJH,MAAA,MuCxwJG,+BvC2wJH,aAAA,IwCp0JC,uBACA,YAAA,IAEA,WACA,YAAA,KxCu0JD,eAAA,KwC50JC,cAAe,KvC+1Jf,MAAO,QuCt1JL,iBAAA,KAIA,eAbJ,cAcI,MAAA,QxCu0JH,awCr1JC,cAAe,KAmBb,UAAA,KxCq0JH,YAAA,ICmBD,cuCn1JI,iBAAA,QAEA,sBxCo0JH,4BwC91JC,cAAe,KA8Bb,aAAA,KxCm0JH,cAAA,IwChzJD,sBAfI,UAAA,KxCo0JD,oCwCj0JC,WvCo1JA,YAAa,KuCl1JX,eAAA,KxCo0JH,sBwC1zJD,4BvC60JE,cAAe,KuCj1Jb,aAAA,KC5CJ,ezC+2JD,cyC92JC,UAAA,MAGA,WACA,QAAA,MACA,QAAA,IACA,cAAA,KrCiLA,YAAA,WACK,iBAAA,KACG,OAAA,IAAA,MAAA,KJisJT,cAAA,IyC33JC,mBAAoB,OAAO,IAAI,YxC84J1B,cAAe,OAAO,IAAI,YwCj4J7B,WAAA,OAAA,IAAA,YAKF,iBzC82JD,eCmBC,aAAc,KACd,YAAa,KwC13JX,mBA1BJ,kBzCq4JC,kByC12JG,aAAA,QCzBJ,oBACE,QAAA,IACA,MAAA,KAEA,O1Cy4JD,QAAA,K0C74JC,cAAe,KAQb,OAAA,IAAA,MAAA,YAEA,cAAA,IAVJ,UAeI,WAAA,E1Cq4JH,MAAA,QCmBD,mByCl5JI,YAAA,IArBJ,SAyBI,U1Ck4JH,cAAA,ECmBD,WyC34JE,WAAA,IAFF,mBAAA,mBAMI,cAAA,KAEA,0BACA,0B1C43JH,SAAA,S0Cp3JC,IAAK,KCvDL,MAAA,MACA,MAAA,Q3C+6JD,e0Cz3JC,MAAO,QClDL,iBAAA,Q3C86JH,aAAA,Q2C36JG,kB3C86JH,iBAAA,Q2Ct7JC,2BACA,MAAA,Q3C07JD,Y0Ch4JC,MAAO,QCtDL,iBAAA,Q3Cy7JH,aAAA,Q2Ct7JG,e3Cy7JH,iBAAA,Q2Cj8JC,wBACA,MAAA,Q3Cq8JD,e0Cv4JC,MAAO,QC1DL,iBAAA,Q3Co8JH,aAAA,Q2Cj8JG,kB3Co8JH,iBAAA,Q2C58JC,2BACA,MAAA,Q3Cg9JD,c0C94JC,MAAO,QC9DL,iBAAA,Q3C+8JH,aAAA,Q2C58JG,iB3C+8JH,iBAAA,Q4Ch9JC,0BAAQ,MAAA,QACR,wCAAQ,K5Cs9JP,oBAAA,KAAA,E4Cl9JD,GACA,oBAAA,EAAA,GACA,mCAAQ,K5Cw9JP,oBAAA,KAAA,E4C19JD,GACA,oBAAA,EAAA,GACA,gCAAQ,K5Cw9JP,oBAAA,KAAA,E4Ch9JD,GACA,oBAAA,EAAA,GAGA,UACA,OAAA,KxCsCA,cAAA,KACQ,SAAA,OJ86JT,iBAAA,Q4Ch9JC,cAAe,IACf,mBAAA,MAAA,EAAA,IAAA,IAAA,eACA,WAAA,MAAA,EAAA,IAAA,IAAA,eAEA,cACA,MAAA,KACA,MAAA,EACA,OAAA,KACA,UAAA,KxCyBA,YAAA,KACQ,MAAA,KAyHR,WAAA,OACK,iBAAA,QACG,mBAAA,MAAA,EAAA,KAAA,EAAA,gBJk0JT,WAAA,MAAA,EAAA,KAAA,EAAA,gB4C78JC,mBAAoB,MAAM,IAAI,K3Cw+JzB,cAAe,MAAM,IAAI,K4Cv+J5B,WAAA,MAAA,IAAA,KDEF,sBCAE,gCDAF,iBAAA,yK5Ci9JD,iBAAA,oK4C18JC,iBAAiB,iK3Cs+JjB,wBAAyB,KAAK,KGlhK9B,gBAAA,KAAA,KJ4/JD,qBI1/JS,+BwCmDR,kBAAmB,qBAAqB,GAAG,OAAO,SErElD,aAAA,qBAAA,GAAA,OAAA,S9C+gKD,UAAA,qBAAA,GAAA,OAAA,S6C59JG,sBACA,iBAAA,Q7Cg+JH,wC4C38JC,iBAAkB,yKEzElB,iBAAA,oK9CuhKD,iBAAA,iK6Cp+JG,mBACA,iBAAA,Q7Cw+JH,qC4C/8JC,iBAAkB,yKE7ElB,iBAAA,oK9C+hKD,iBAAA,iK6C5+JG,sBACA,iBAAA,Q7Cg/JH,wC4Cn9JC,iBAAkB,yKEjFlB,iBAAA,oK9CuiKD,iBAAA,iK6Cp/JG,qBACA,iBAAA,Q7Cw/JH,uC+C/iKC,iBAAkB,yKAElB,iBAAA,oK/CgjKD,iBAAA,iK+C7iKG,O/CgjKH,WAAA,KC4BD,mB8CtkKE,WAAA,E/C+iKD,O+C3iKD,YACE,SAAA,O/C6iKD,KAAA,E+CziKC,Y/C4iKD,MAAA,Q+CxiKG,c/C2iKH,QAAA,MC4BD,4B8CjkKE,UAAA,KAGF,aAAA,mBAEE,aAAA,KAGF,YAAA,kB9CkkKE,cAAe,K8C3jKjB,YAHE,Y/CuiKD,a+CniKC,QAAA,W/CsiKD,eAAA,I+CliKC,c/CqiKD,eAAA,O+ChiKC,cACA,eAAA,OAMF,eACE,WAAA,EACA,cAAA,ICvDF,YAEE,aAAA,EACA,WAAA,KAQF,YACE,aAAA,EACA,cAAA,KAGA,iBACA,SAAA,SACA,QAAA,MhDglKD,QAAA,KAAA,KgD7kKC,cAAA,KrB3BA,iBAAA,KACC,OAAA,IAAA,MAAA,KqB6BD,6BACE,uBAAA,IrBvBF,wBAAA,I3BymKD,4BgDvkKC,cAAe,E/CmmKf,2BAA4B,I+CjmK5B,0BAAA,IAFF,kBAAA,uBAKI,MAAA,KAIF,2CAAA,gD/CmmKA,MAAO,K+C/lKL,wBAFA,wBhD4kKH,6BgD3kKG,6BAKF,MAAO,KACP,gBAAA,KACA,iBAAA,QAKA,uB/C+lKA,MAAO,KACP,WAAY,K+C5lKV,0BhDskKH,gCgDrkKG,gCALF,MAAA,K/CsmKA,OAAQ,YACR,iBAAkB,KDxBnB,mDgD/kKC,yDAAA,yD/C4mKA,MAAO,QDxBR,gDgDnkKC,sDAAA,sD/CgmKA,MAAO,K+C5lKL,wBAEA,8BADA,8BhDskKH,QAAA,EgD3kKC,MAAA,K/CumKA,iBAAkB,QAClB,aAAc,QAEhB,iDDpBC,wDCuBD,uDADA,uD+C5mKE,8DAYI,6D/C+lKN,uD+C3mKE,8D/C8mKF,6DAKE,MAAO,QDxBR,8CiD7qKG,oDADF,oDAEE,MAAA,QAEA,yBhD0sKF,MAAO,QgDxsKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhD2sKJ,MAAO,QDtBR,gCiDnrKO,gCAGF,qCAFE,qChD8sKN,MAAO,QACP,iBAAkB,QAEpB,iCgD1sKQ,uCAFA,uChD6sKR,sCDtBC,4CiDtrKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,sBhDuuKF,MAAO,QgDruKH,iBAAA,QAFF,uBAAA,4BAKI,MAAA,QAGF,gDAAA,qDhDwuKJ,MAAO,QDtBR,6BiDhtKO,6BAGF,kCAFE,kChD2uKN,MAAO,QACP,iBAAkB,QAEpB,8BgDvuKQ,oCAFA,oChD0uKR,mCDtBC,yCiDntKO,yCArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,yBhDowKF,MAAO,QgDlwKH,iBAAA,QAFF,0BAAA,+BAKI,MAAA,QAGF,mDAAA,wDhDqwKJ,MAAO,QDtBR,gCiD7uKO,gCAGF,qCAFE,qChDwwKN,MAAO,QACP,iBAAkB,QAEpB,iCgDpwKQ,uCAFA,uChDuwKR,sCDtBC,4CiDhvKO,4CArBN,MAAA,KACE,iBAAA,QACA,aAAA,QAEA,wBhDiyKF,MAAO,QgD/xKH,iBAAA,QAFF,yBAAA,8BAKI,MAAA,QAGF,kDAAA,uDhDkyKJ,MAAO,QDtBR,+BiD1wKO,+BAGF,oCAFE,oChDqyKN,MAAO,QACP,iBAAkB,QAEpB,gCgDjyKQ,sCAFA,sChDoyKR,qCDtBC,2CiD7wKO,2CDkGN,MAAO,KACP,iBAAA,QACA,aAAA,QAEF,yBACE,WAAA,EACA,cAAA,IE1HF,sBACE,cAAA,EACA,YAAA,IAEA,O9C0DA,cAAA,KACQ,iBAAA,KJgvKT,OAAA,IAAA,MAAA,YkDtyKC,cAAe,IACf,mBAAA,EAAA,IAAA,IAAA,gBlDwyKD,WAAA,EAAA,IAAA,IAAA,gBkDlyKC,YACA,QAAA,KvBnBC,e3B0zKF,QAAA,KAAA,KkDzyKC,cAAe,IAAI,MAAM,YAMvB,uBAAA,IlDsyKH,wBAAA,IkDhyKC,0CACA,MAAA,QAEA,alDmyKD,WAAA,EkDvyKC,cAAe,EjDm0Kf,UAAW,KACX,MAAO,QDtBR,oBkD7xKC,sBjDqzKF,eiD3zKI,mBAKJ,qBAEE,MAAA,QvBvCA,cACC,QAAA,KAAA,K3By0KF,iBAAA,QkDxxKC,WAAY,IAAI,MAAM,KjDozKtB,2BAA4B,IiDjzK1B,0BAAA,IAHJ,mBAAA,mCAMM,cAAA,ElD2xKL,oCkDtxKG,oDjDkzKF,aAAc,IAAI,EiDhzKZ,cAAA,EvBtEL,4D3Bg2KF,4EkDpxKG,WAAA,EjDgzKF,uBAAwB,IiD9yKlB,wBAAA,IvBtEL,0D3B81KF,0EkD7yKC,cAAe,EvB1Df,2BAAA,IACC,0BAAA,IuB0FH,+EAEI,uBAAA,ElDixKH,wBAAA,EkD7wKC,wDlDgxKD,iBAAA,EC4BD,0BACE,iBAAkB,EiDryKpB,8BlD6wKC,ckD7wKD,gCjD0yKE,cAAe,EiD1yKjB,sCAQM,sBlD2wKL,wCC4BC,cAAe,K0Bx5Kf,aAAA,KuByGF,wDlDwxKC,0BC4BC,uBAAwB,IACxB,wBAAyB,IiDrzK3B,yFAoBQ,yFlD2wKP,2DkD5wKO,2DjDwyKN,uBAAwB,IACxB,wBAAyB,IAK3B,wGiDj0KA,wGjD+zKA,wGDtBC,wGCuBD,0EiDh0KA,0EjD8zKA,0EiDtyKU,0EjD8yKR,uBAAwB,IAK1B,uGiD30KA,uGjDy0KA,uGDtBC,uGCuBD,yEiD10KA,yEjDw0KA,yEiD5yKU,yEvB7HR,wBAAA,IuBiGF,sDlDwzKC,yBC4BC,2BAA4B,IAC5B,0BAA2B,IiD3yKrB,qFA1CR,qFAyCQ,wDlDsxKP,wDC4BC,2BAA4B,IAC5B,0BAA2B,IAG7B,oGDtBC,oGCwBD,oGiDj2KA,oGjD81KA,uEiDhzKU,uEjDkzKV,uEiDh2KA,uEjDs2KE,0BAA2B,IAG7B,mGDtBC,mGCwBD,mGiD32KA,mGjDw2KA,sEiDtzKU,sEjDwzKV,sEiD12KA,sEjDg3KE,2BAA4B,IiDrzK1B,0BlD8xKH,qCkDz1KD,0BAAA,qCA+DI,WAAA,IAAA,MAAA,KA/DJ,kDAAA,kDAmEI,WAAA,EAnEJ,uBAAA,yCjD83KE,OAAQ,EiDpzKA,+CjDwzKV,+CiDl4KA,+CjDo4KA,+CAEA,+CANA,+CDjBC,iECoBD,iEiDn4KA,iEjDq4KA,iEAEA,iEANA,iEAWE,YAAa,EiD9zKL,8CjDk0KV,8CiDh5KA,8CjDk5KA,8CAEA,8CANA,8CDjBC,gECoBD,gEiDj5KA,gEjDm5KA,gEAEA,gEANA,gEAWE,aAAc,EAIhB,+CiD95KA,+CjD45KA,+CiDr0KU,+CjDw0KV,iEiD/5KA,iEjD65KA,iEDtBC,iEC6BC,cAAe,EAEjB,8CiDt0KU,8CjDw0KV,8CiDx6KA,8CjDu6KA,gEDtBC,gECwBD,gEiDn0KI,gEACA,cAAA,EAUJ,yBACE,cAAA,ElDsyKD,OAAA,EkDlyKG,aACA,cAAA,KANJ,oBASM,cAAA,ElDqyKL,cAAA,IkDhyKG,2BlDmyKH,WAAA,IC4BD,4BiD3zKM,cAAA,EAKF,wDAvBJ,wDlDwzKC,WAAA,IAAA,MAAA,KkD/xKK,2BlDkyKL,WAAA,EmDrhLC,uDnDwhLD,cAAA,IAAA,MAAA,KmDrhLG,eACA,aAAA,KnDyhLH,8BmD3hLC,MAAA,KAMI,iBAAA,QnDwhLL,aAAA,KmDrhLK,0DACA,iBAAA,KAGJ,qCAEI,MAAA,QnDshLL,iBAAA,KmDviLC,yDnD0iLD,oBAAA,KmDviLG,eACA,aAAA,QnD2iLH,8BmD7iLC,MAAA,KAMI,iBAAA,QnD0iLL,aAAA,QmDviLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnDwiLL,iBAAA,KmDzjLC,yDnD4jLD,oBAAA,QmDzjLG,eACA,aAAA,QnD6jLH,8BmD/jLC,MAAA,QAMI,iBAAA,QnD4jLL,aAAA,QmDzjLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnD0jLL,iBAAA,QmD3kLC,yDnD8kLD,oBAAA,QmD3kLG,YACA,aAAA,QnD+kLH,2BmDjlLC,MAAA,QAMI,iBAAA,QnD8kLL,aAAA,QmD3kLK,uDACA,iBAAA,QAGJ,kCAEI,MAAA,QnD4kLL,iBAAA,QmD7lLC,sDnDgmLD,oBAAA,QmD7lLG,eACA,aAAA,QnDimLH,8BmDnmLC,MAAA,QAMI,iBAAA,QnDgmLL,aAAA,QmD7lLK,0DACA,iBAAA,QAGJ,qCAEI,MAAA,QnD8lLL,iBAAA,QmD/mLC,yDnDknLD,oBAAA,QmD/mLG,cACA,aAAA,QnDmnLH,6BmDrnLC,MAAA,QAMI,iBAAA,QnDknLL,aAAA,QmD/mLK,yDACA,iBAAA,QAGJ,oCAEI,MAAA,QnDgnLL,iBAAA,QoD/nLC,wDACA,oBAAA,QAEA,kBACA,SAAA,SpDkoLD,QAAA,MoDvoLC,OAAQ,EnDmqLR,QAAS,EACT,SAAU,OAEZ,yCmDzpLI,wBADA,yBAEA,yBACA,wBACA,SAAA,SACA,IAAA,EACA,OAAA,EpDkoLH,KAAA,EoD7nLC,MAAO,KACP,OAAA,KpD+nLD,OAAA,EoD1nLC,wBpD6nLD,eAAA,OqDvpLC,uBACA,eAAA,IAEA,MACA,WAAA,KACA,QAAA,KjDwDA,cAAA,KACQ,iBAAA,QJmmLT,OAAA,IAAA,MAAA,QqDlqLC,cAAe,IASb,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACA,WAAA,MAAA,EAAA,IAAA,IAAA,gBAKJ,iBACE,aAAA,KACA,aAAA,gBAEF,SACE,QAAA,KACA,cAAA,ICtBF,SACE,QAAA,IACA,cAAA,IAEA,OACA,MAAA,MACA,UAAA,KjCRA,YAAA,IAGA,YAAA,ErBwrLD,MAAA,KsDhrLC,YAAA,EAAA,IAAA,EAAA,KrD4sLA,OAAQ,kBqD1sLN,QAAA,GjCbF,aiCeE,ajCZF,MAAA,KrBgsLD,gBAAA,KsD5qLC,OAAA,QACE,OAAA,kBACA,QAAA,GAEA,aACA,mBAAA,KtD8qLH,QAAA,EuDnsLC,OAAQ,QACR,WAAA,IvDqsLD,OAAA,EuDhsLC,YACA,SAAA,OAEA,OACA,SAAA,MACA,IAAA,EACA,MAAA,EACA,OAAA,EACA,KAAA,EAIA,QAAA,KvDgsLD,QAAA,KuD7rLC,SAAA,OnD+GA,2BAAA,MACI,QAAA,EAEI,0BAkER,mBAAA,kBAAA,IAAA,SAEK,cAAA,aAAA,IAAA,SACG,WAAA,UAAA,IAAA,SJghLT,kBAAA,kBuDnsLC,cAAA,kBnD2GA,aAAA,kBACI,UAAA,kBAEI,wBJ2lLT,kBAAA,euDvsLK,cAAe,eACnB,aAAA,eACA,UAAA,eAIF,mBACE,WAAA,OACA,WAAA,KvDwsLD,cuDnsLC,SAAU,SACV,MAAA,KACA,OAAA,KAEA,eACA,SAAA,SnDaA,iBAAA,KACQ,wBAAA,YmDZR,gBAAA,YtD+tLA,OsD/tLA,IAAA,MAAA,KAEA,OAAA,IAAA,MAAA,evDqsLD,cAAA,IuDjsLC,QAAS,EACT,mBAAA,EAAA,IAAA,IAAA,eACA,WAAA,EAAA,IAAA,IAAA,eAEA,gBACA,SAAA,MACA,IAAA,EACA,MAAA,EvDmsLD,OAAA,EuDjsLC,KAAA,ElCrEA,QAAA,KAGA,iBAAA,KkCmEA,qBlCtEA,OAAA,iBAGA,QAAA,EkCwEF,mBACE,OAAA,kBACA,QAAA,GAIF,cACE,QAAA,KvDmsLD,cAAA,IAAA,MAAA,QuD9rLC,qBACA,WAAA,KAKF,aACE,OAAA,EACA,YAAA,WAIF,YACE,SAAA,SACA,QAAA,KvD6rLD,cuD/rLC,QAAS,KAQP,WAAA,MACA,WAAA,IAAA,MAAA,QATJ,wBAaI,cAAA,EvDyrLH,YAAA,IuDrrLG,mCvDwrLH,YAAA,KuDlrLC,oCACA,YAAA,EAEA,yBACA,SAAA,SvDqrLD,IAAA,QuDnqLC,MAAO,KAZP,OAAA,KACE,SAAA,OvDmrLD,yBuDhrLD,cnDvEA,MAAA,MACQ,OAAA,KAAA,KmD2ER,eAAY,mBAAA,EAAA,IAAA,KAAA,evDkrLX,WAAA,EAAA,IAAA,KAAA,euD5qLD,UAFA,MAAA,OvDorLD,yBwDl0LC,UACA,MAAA,OCNA,SAEA,SAAA,SACA,QAAA,KACA,QAAA,MACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KACA,eAAA,ODHA,WAAA,OnCVA,aAAA,OAGA,UAAA,OrBy1LD,YAAA,OwD90LC,OAAA,iBnCdA,QAAA,ErBg2LD,WAAA,KwDj1LY,YAAmB,OAAA,kBxDq1L/B,QAAA,GwDp1LY,aAAmB,QAAA,IAAA,ExDw1L/B,WAAA,KwDv1LY,eAAmB,QAAA,EAAA,IxD21L/B,YAAA,IwD11LY,gBAAmB,QAAA,IAAA,ExD81L/B,WAAA,IwDz1LC,cACA,QAAA,EAAA,IACA,YAAA,KAEA,eACA,UAAA,MxD41LD,QAAA,IAAA,IwDx1LC,MAAO,KACP,WAAA,OACA,iBAAA,KACA,cAAA,IAEA,exD01LD,SAAA,SwDt1LC,MAAA,EACE,OAAA,EACA,aAAA,YACA,aAAA,MAEA,4BxDw1LH,OAAA,EwDt1LC,KAAA,IACE,YAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,iCxDw1LH,MAAA,IwDt1LC,OAAA,EACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,kCxDw1LH,OAAA,EwDt1LC,KAAA,IACE,cAAA,KACA,aAAA,IAAA,IAAA,EACA,iBAAA,KAEA,8BxDw1LH,IAAA,IwDt1LC,KAAA,EACE,WAAA,KACA,aAAA,IAAA,IAAA,IAAA,EACA,mBAAA,KAEA,6BxDw1LH,IAAA,IwDt1LC,MAAA,EACE,WAAA,KACA,aAAA,IAAA,EAAA,IAAA,IACA,kBAAA,KAEA,+BxDw1LH,IAAA,EwDt1LC,KAAA,IACE,YAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,oCxDw1LH,IAAA,EwDt1LC,MAAA,IACE,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,qCxDw1LH,IAAA,E0Dr7LC,KAAM,IACN,WAAA,KACA,aAAA,EAAA,IAAA,IACA,oBAAA,KAEA,SACA,SAAA,SACA,IAAA,EDXA,KAAA,EAEA,QAAA,KACA,QAAA,KACA,UAAA,MACA,QAAA,IACA,YAAA,iBAAA,UAAA,MAAA,WACA,UAAA,KACA,WAAA,OACA,YAAA,IACA,YAAA,WACA,WAAA,KACA,WAAA,MACA,gBAAA,KACA,YAAA,KACA,eAAA,KCAA,eAAA,OAEA,WAAA,OACA,aAAA,OAAA,UAAA,OACA,YAAA,OACA,iBAAA,KACA,wBAAA,YtD8CA,gBAAA,YACQ,OAAA,IAAA,MAAA,KJq5LT,OAAA,IAAA,MAAA,e0Dh8LC,cAAA,IAAY,mBAAA,EAAA,IAAA,KAAA,e1Dm8Lb,WAAA,EAAA,IAAA,KAAA,e0Dl8La,WAAA,KACZ,aAAY,WAAA,MACZ,eAAY,YAAA,KAGd,gBACE,WAAA,KAEA,cACA,YAAA,MAEA,e1Dw8LD,QAAA,IAAA,K0Dr8LC,OAAQ,EACR,UAAA,K1Du8LD,iBAAA,Q0D/7LC,cAAA,IAAA,MAAA,QzD49LA,cAAe,IAAI,IAAI,EAAE,EyDz9LvB,iBACA,QAAA,IAAA,KAEA,gBACA,sB1Di8LH,SAAA,S0D97LC,QAAS,MACT,MAAA,E1Dg8LD,OAAA,E0D97LC,aAAc,YACd,aAAA,M1Di8LD,gB0D57LC,aAAA,KAEE,sBACA,QAAA,GACA,aAAA,KAEA,oB1D87LH,OAAA,M0D77LG,KAAA,IACE,YAAA,MACA,iBAAA,KACA,iBAAA,gBACA,oBAAA,E1Dg8LL,0B0D57LC,OAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,KACA,oBAAA,EAEA,sB1D87LH,IAAA,I0D77LG,KAAA,MACE,WAAA,MACA,mBAAA,KACA,mBAAA,gBACA,kBAAA,E1Dg8LL,4B0D57LC,OAAA,MACE,KAAA,IACA,QAAA,IACA,mBAAA,KACA,kBAAA,EAEA,uB1D87LH,IAAA,M0D77LG,KAAA,IACE,YAAA,MACA,iBAAA,EACA,oBAAA,KACA,oBAAA,gB1Dg8LL,6B0D37LC,IAAA,IACE,YAAA,MACA,QAAA,IACA,iBAAA,EACA,oBAAA,KAEA,qB1D67LH,IAAA,I0D57LG,MAAA,MACE,WAAA,MACA,mBAAA,EACA,kBAAA,KACA,kBAAA,gB1D+7LL,2B2DvjMC,MAAO,IACP,OAAA,M3DyjMD,QAAA,I2DtjMC,mBAAoB,EACpB,kBAAA,KAEA,U3DwjMD,SAAA,S2DrjMG,gBACA,SAAA,SvD6KF,MAAA,KACK,SAAA,OJ64LN,sB2DlkMC,SAAU,S1D+lMV,QAAS,K0DjlML,mBAAA,IAAA,YAAA,K3DwjML,cAAA,IAAA,YAAA,K2D9hMC,WAAA,IAAA,YAAA,KvDmKK,4BAFL,0BAGQ,YAAA,EA3JA,qDA+GR,sBAEQ,mBAAA,kBAAA,IAAA,YJi7LP,cAAA,aAAA,IAAA,Y2D5jMG,WAAA,UAAA,IAAA,YvDmHJ,4BAAA,OACQ,oBAAA,OuDjHF,oBAAA,O3D+jML,YAAA,OI/8LD,mCHy+LA,2BGx+LQ,KAAA,EuD5GF,kBAAA,sB3DgkML,UAAA,sBC2BD,kCADA,2BG/+LA,KAAA,EACQ,kBAAA,uBuDtGF,UAAA,uBArCN,6B3DumMD,gC2DvmMC,iC1DkoME,KAAM,E0DrlMN,kBAAA,mB3D+jMH,UAAA,oBAGA,wB2D/mMD,sBAAA,sBAsDI,QAAA,MAEA,wB3D6jMH,KAAA,E2DzjMG,sB3D4jMH,sB2DxnMC,SAAU,SA+DR,IAAA,E3D4jMH,MAAA,KC0BD,sB0DllMI,KAAA,KAnEJ,sBAuEI,KAAA,MAvEJ,2BA0EI,4B3D2jMH,KAAA,E2DljMC,6BACA,KAAA,MAEA,8BACA,KAAA,KtC3FA,kBsC6FA,SAAA,SACA,IAAA,EACA,OAAA,EACA,KAAA,EACA,MAAA,I3DsjMD,UAAA,K2DjjMC,MAAA,KdnGE,WAAA,OACA,YAAA,EAAA,IAAA,IAAA,eACA,iBAAA,cAAA,OAAA,kBACA,QAAA,G7CwpMH,uB2DrjMC,iBAAA,sEACE,iBAAA,iEACA,iBAAA,uFdxGA,iBAAA,kEACA,OAAA,+GACA,kBAAA,SACA,wBACA,MAAA,E7CgqMH,KAAA,K2DvjMC,iBAAA,sE1DmlMA,iBAAiB,iE0DjlMf,iBAAA,uFACA,iBAAA,kEACA,OAAA,+GtCvHF,kBAAA,SsCyFF,wB3DylMC,wBC4BC,MAAO,KACP,gBAAiB,KACjB,OAAQ,kB0DhlMN,QAAA,EACA,QAAA,G3D2jMH,0C2DnmMD,2CA2CI,6BADA,6B1DqlMF,SAAU,S0DhlMR,IAAA,IACA,QAAA,E3DwjMH,QAAA,a2DxmMC,WAAY,MAqDV,0CADA,6B3DyjMH,KAAA,I2D7mMC,YAAa,MA0DX,2CADA,6BAEA,MAAA,IACA,aAAA,MAME,6BADF,6B3DsjMH,MAAA,K2DjjMG,OAAA,KACE,YAAA,M3DmjML,YAAA,E2DxiMC,oCACA,QAAA,QAEA,oCACA,QAAA,QAEA,qBACA,SAAA,SACA,OAAA,K3D2iMD,KAAA,I2DpjMC,QAAS,GAYP,MAAA,IACA,aAAA,EACA,YAAA,KACA,WAAA,OACA,WAAA,KAEA,wBACA,QAAA,aAWA,MAAA,KACA,OAAA,K3DiiMH,OAAA,I2DhkMC,YAAa,OAkCX,OAAA,QACA,iBAAA,OACA,iBAAA,cACA,OAAA,IAAA,MAAA,K3DiiMH,cAAA,K2DzhMC,6BACA,MAAA,KACA,OAAA,KACA,OAAA,EACA,iBAAA,KAEA,kBACA,SAAA,SACA,MAAA,IACA,OAAA,K3D4hMD,KAAA,I2D3hMC,QAAA,GACE,YAAA,K3D6hMH,eAAA,K2Dp/LC,MAAO,KAhCP,WAAA,O1DijMA,YAAa,EAAE,IAAI,IAAI,eAEzB,uB0D9iMM,YAAA,KAEA,oCACA,0C3DshMH,2C2D9hMD,6BAAA,6BAYI,MAAA,K3DshMH,OAAA,K2DliMD,WAAA,M1D8jME,UAAW,KDxBZ,0C2DjhMD,6BACE,YAAA,MAEA,2C3DmhMD,6B2D/gMD,aAAA,M3DkhMC,kBACF,MAAA,I4DhxMC,KAAA,I3D4yME,eAAgB,KAElB,qBACE,OAAQ,MAkBZ,qCADA,sCADA,mBADA,oBAXA,gBADA,iBAOA,uBADA,wBADA,iBADA,kBADA,wBADA,yBASA,mCADA,oC2DvzME,oBAAA,qBAAA,oBAAA,qB3D8zMF,WADA,YAOA,uBADA,wBADA,qBADA,sBADA,cADA,e2Dl0MI,a3Dw0MJ,cDvBC,kB4DhzMG,mB3DwzMJ,WADA,YAwBE,QAAS,MACT,QAAS,IASX,qCADA,mBANA,gBAGA,uBADA,iBADA,wBAIA,mCDhBC,oB6Dl1MC,oB5Dq2MF,W+B/1MA,uBhCu0MC,qB4D/zMG,cChBF,aACA,kB5Dk2MF,W+Bx1ME,MAAO,KhC40MR,cgCz0MC,QAAS,MACT,aAAA,KhC20MD,YAAA,KgCl0MC,YhCq0MD,MAAA,gBgCl0MC,WhCq0MD,MAAA,egCl0MC,MhCq0MD,QAAA,e8D51MC,MACA,QAAA,gBAEA,WACA,WAAA,O9B8BF,WACE,KAAA,EAAA,EAAA,EhCm0MD,MAAA,YgC5zMC,YAAa,KACb,iBAAA,YhC8zMD,OAAA,E+D91MC,Q/Di2MD,QAAA,eC4BD,OACE,SAAU,M+Dt4MV,chE+2MD,MAAA,aC+BD,YADA,YADA,YADA,YAIE,QAAS,e+Dv5MT,kBhEy4MC,mBgEx4MD,yBhEo4MD,kB+Dr1MD,mBA6IA,yB9D+tMA,kBACA,mB8Dp3ME,yB9Dg3MF,kBACA,mBACA,yB+D15MY,QAAA,eACV,yBAAU,YhE64MT,QAAA,gBC4BD,iB+Dv6MU,QAAA,gBhEg5MX,c+D/1MG,QAAS,oB/Dm2MV,c+Dr2MC,c/Ds2MH,QAAA,sB+Dj2MG,yB/Dq2MD,kBACF,QAAA,iB+Dj2MG,yB/Dq2MD,mBACF,QAAA,kBgEn6MC,yBhEu6MC,yBgEt6MD,QAAA,wBACA,+CAAU,YhE26MT,QAAA,gBC4BD,iB+Dr8MU,QAAA,gBhE86MX,c+Dx2MG,QAAS,oB/D42MV,c+D92MC,c/D+2MH,QAAA,sB+D12MG,+C/D82MD,kBACF,QAAA,iB+D12MG,+C/D82MD,mBACF,QAAA,kBgEj8MC,+ChEq8MC,yBgEp8MD,QAAA,wBACA,gDAAU,YhEy8MT,QAAA,gBC4BD,iB+Dn+MU,QAAA,gBhE48MX,c+Dj3MG,QAAS,oB/Dq3MV,c+Dv3MC,c/Dw3MH,QAAA,sB+Dn3MG,gD/Du3MD,kBACF,QAAA,iB+Dn3MG,gD/Du3MD,mBACF,QAAA,kBgE/9MC,gDhEm+MC,yBgEl+MD,QAAA,wBACA,0BAAU,YhEu+MT,QAAA,gBC4BD,iB+DjgNU,QAAA,gBhE0+MX,c+D13MG,QAAS,oB/D83MV,c+Dh4MC,c/Di4MH,QAAA,sB+D53MG,0B/Dg4MD,kBACF,QAAA,iB+D53MG,0B/Dg4MD,mBACF,QAAA,kBgEr/MC,0BhEy/MC,yBACF,QAAA,wBgE1/MC,yBhE8/MC,WACF,QAAA,gBgE//MC,+ChEmgNC,WACF,QAAA,gBgEpgNC,gDhEwgNC,WACF,QAAA,gBAGA,0B+Dn3MC,WA4BE,QAAS,gBC5LX,eAAU,QAAA,eACV,aAAU,ehE4hNT,QAAA,gBC4BD,oB+DtjNU,QAAA,gBhE+hNX,iB+Dj4MG,QAAS,oBAMX,iB/D83MD,iB+Dz2MG,QAAS,sB/D82MZ,qB+Dl4MC,QAAS,e/Dq4MV,a+D/3MC,qBAcE,QAAS,iB/Ds3MZ,sB+Dn4MC,QAAS,e/Ds4MV,a+Dh4MC,sBAOE,QAAS,kB/D83MZ,4B+D/3MC,QAAS,eCpLT,ahEujNC,4BACF,QAAA,wBC6BD,aACE,cACE,QAAS"} \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap3-transition.css b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap3-transition.css
new file mode 100644
index 000000000..9644485ca
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/bootstrap3-transition.css
@@ -0,0 +1,238 @@
+/* Changes to the top bar. Template: base.html */
+
+.navbar .brand {
+ padding: 5px 20px;
+}
+
+.logo {
+ padding-top: 2px !important;
+}
+
+/* Changes to the tables pagination */
+
+.pagination {
+ margin: 0 0 40px 0;
+}
+
+select[class^="pagesize"] {
+ margin-bottom: 0;
+}
+
+/* Project configuration page */
+
+ul.configuration-list {
+ margin-left: 0px;
+}
+
+.configuration-list .checkbox {
+ margin-top: 0;
+}
+
+/* Breadcrumbs */
+
+.breadcrumb {
+ padding: 8px 0;
+}
+
+.breadcrumb > li + li::before {
+ content: none;
+}
+
+.breadcrumb .divider {
+ color: #999;
+ padding: 0 5px;
+}
+
+/* Remove the hovering from the .btn-primary buttons when they are disabled */
+
+.btn-primary.disabled.focus,
+.btn-primary.disabled:focus,
+.btn-primary.disabled:hover,
+.btn-primary.focus[disabled],
+.btn-primary[disabled]:focus,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary.focus,
+fieldset[disabled] .btn-primary:focus,
+fieldset[disabled] .btn-primary:hover {
+ background-color: #04c;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+}
+
+/* Table search input field */
+
+.navbar-search {
+ width: 60%;
+}
+
+.navbar-search .input-append {
+ width: 90%;
+}
+
+.navbar-search .input-append input[type="text"] {
+ width: 80%;
+}
+
+#search {
+ width: 60%;
+}
+
+/* Definition lists */
+
+.dl-horizontal dd {
+ margin-left: 220px;
+}
+
+.dl-horizontal dt {
+ width: 200px;
+}
+
+/* Table controls */
+
+.navbar-inner > .navbar-search .input-append {
+ margin-bottom: 5px;
+}
+
+.navbar-search.input-append {
+ margin-bottom: 20px;
+}
+
+/* Modal dialogs */
+
+.modal-dialog {
+ width: 700px;
+}
+
+.modal-body {
+ overflow-y: scroll;
+ max-height: 350px;
+}
+
+.modal-body ul.list-unstyled {
+ margin-left: 0;
+}
+
+.modal-footer {
+ background-color: #f5f5f5;
+}
+
+.modal-content form {
+ margin-bottom: 0;
+}
+
+.modal-dialog .checkbox label,
+.modal-dialog .radio label {
+ padding-left: 0;
+}
+
+/* Typeahead */
+
+.tt-menu {
+ width: 120%;
+ padding: 10px 8px;
+}
+
+.tt-suggestion {
+ padding: 3px 8px;
+ cursor: pointer;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+.tt-suggestion.active,
+.tt-suggestion:hover {
+ background-color: #0081c2;
+ color: white;
+}
+
+/* Build form */
+
+#build-input {
+ width: 20em;
+}
+
+/* Clear filter tooltips in toastertables */
+
+.tooltip .btn-small {
+ margin: 10px;
+}
+
+/* Table cell notifications */
+
+.inline-notification,
+#temp-inline-notify {
+ padding: 10px;
+}
+
+/* Table buttons */
+
+td .btn {
+ white-space: normal;
+}
+
+th.add-del-layers {
+ width: 18%;
+}
+
+th.add_rm_pkg_btn {
+ width: 20%;
+}
+
+/* Edit columsn menu */
+
+.dropdown-menu {
+ min-width: 200px;
+}
+
+/* Popover content */
+
+.popover-content > ul {
+ margin-left: 0;
+}
+
+h3.popover-title {
+ line-height: 20px;
+}
+
+.popover {
+ max-width: 400px;
+}
+
+/* Errors and warnings accordions */
+
+#errors .panel-heading,
+#warnings .panel-heading {
+ background-color: transparent;
+}
+
+a.toggle-errors:hover,
+a.toggle-warnings:hover,
+a.warning:focus {
+ text-decoration: none;
+}
+
+a.toggle-errors:focus,
+a.toggle-warnings:focus {
+ outline: none;
+}
+
+/* Landing page */
+
+.jumbotron p {
+ margin-top: 20px;
+ margin-bottom: 30px;
+}
+
+.jumbotron ul {
+ margin-left: 10px;
+ font-size: 21px;
+ font-weight: 200;
+}
+
+.jumbotron ul > li {
+ line-height: 30px;
+}
+
+.jumbotron .img-thumbnail {
+ padding: 0;
+}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/default.css b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/default.css
index b024d962a..ff24e8c1a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/default.css
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/css/default.css
@@ -1,298 +1,336 @@
+/* New Toaster custom css file for Bootstrap 3 */
+
+/* Set required top body padding for the fixed top navbard */
+body { padding-top: 50px; }
+
/* Style the Yocto Project logo */
-.logo img { height: 30px; width: auto !important; }
-.logo { padding-top: 4px !important; padding-bottom:0px !important; }
+img.logo { height: 30px; vertical-align: bottom; }
+
+/* Style the Yocto Project logo and the Toaster name in the top navbar */
+.toaster-navbar-brand { float: left; margin: 7px 25px 0 0; }
+.toaster-navbar-brand a.brand { color: #777; height: 50px; padding: 15px 5px 15px 15px; font-size: 20px; line-height: 25px; display: inline; }
+.toaster-navbar-brand > a { text-decoration: none; }
+.toaster-navbar-brand > a.brand:hover { color: #5e5e5e; }
+
+/* Style the debugging information in the top navbar */
+.glyphicon-info-sign { color: #777; font-size: 16px; }
+.glyphicon-info-sign:hover { color: #999; cursor: pointer; }
+
+/* Override the negative right margin for the navbar-right class */
+#new-project-button { margin-right: 0; }
+
+/* Increase popovers width to fit commit SHAs */
+.popover { max-width: 350px; }
+
+/* Set a limit to popover height to handle long dependency lists */
+.popover-content { max-height: 350px; overflow: scroll; }
+
+/* Set a limit to modal dialogs height to handle long variable history */
+[id^="variable-"] .modal-content { max-height: 550px; overflow-y: scroll; }
+
+/* Make sure long values in variable history do not make the modal dialogs
+ * scroll horizontally */
+[id^="variable-"] .modal-content p { word-break: break-all; }
-/* style the version information */
-.brand > a { color: #777; }
-.brand > a:hover { color: #999; text-decoration: none; }
-.icon-info-sign { color: #777; font-size: 16px; margin-left: 5px;}
-.icon-info-sign:hover { color: #999; cursor: pointer; }
+/* Increase bottom margin of definition lists inside popovers for the Toaster version information in the top navbar, and also inside the right hand columns of our details pages */
+.popover-content dd,
+.item-info dd { margin-bottom: 15px; }
-/* Style the breadcrumb */
-.breadcrumb { display: inline-block; background-color: transparent; }
+/* Style the horizontal definition lists */
+.dl-horizontal dt { width: 200px; line-height: 25px; }
+.dl-horizontal dd { margin-left: 220px; line-height: 25px; }
+
+/* Style our build results */
+.build-result .progress { margin-bottom: 0; }
+.alert-link.build-warnings,
+.glyphicon-warning-sign.build-warnings { color: #8a6d3b; }
+.build-result .project-name { margin-top: -10px; margin-bottom: 5px; }
+.rebuild-btn, .cancel-build-btn { cursor: pointer; }
/* Styles for the help information */
.get-help { color: #CCCCCC; }
-.get-help:hover, .icon-plus-sign:hover { color: #999999; cursor: pointer; }
-.get-help-green { color: #468847; }
-.get-help-green:hover { color: #347132; cursor: pointer; }
+.get-help:hover { color: #999999; cursor: pointer; }
+.get-help-green { color: #3c763d; }
+.get-help-green:hover { color: #2b542c; cursor: pointer; }
.get-help-blue { color: #3A87AD; }
.get-help-blue:hover { color: #005580; cursor: pointer; }
-.get-help-yellow { color: #C09853; }
-.get-help-yellow:hover { color: #B38942; cursor: pointer; }
-.get-help-red { color: #B94A48; font-size: 16px; padding-left: 2px; }
-.get-help-red:hover { color: #943A38; cursor: pointer; }
-.build-form>i:first-of-type { margin-left: 5px; }
-.manual { margin: 11px 15px 0 11px;}
+.get-help-red { color: #a94442; }
+.get-help-red:hover { color: #843534; cursor: pointer; }
+
+/* Styles for our table controls */
+.form-control[id^="search-input-"],
+.form-control[id^="new-search-input-"],
+#search{ width: 30em; }
+#search-input-selectpackagestable,
+#search-input-packagestable,
+.form-control[id^="no-results-search-input-"] { width: 20em; }
+#edit-columns-button { margin-right: 30px; }
+.navbar-default[id^="table-chrome-"],
+#variables .navbar-default { background-color: transparent; }
+[id^="table-chrome-collapse-"] .navbar-form { margin-left: -15px; }
+.dropdown-menu.editcol { padding-left: 10px; min-width: 200px; }
+span[class^="remove-search-btn-"] { position: absolute; right: 5px; top: 0; bottom: 0; height: 14px; margin: auto; font-size: 14px; cursor: pointer; color: #777;}
+span[class^="remove-search-btn-"]:hover { color: #333; }
+#no-results-special-selectpackagestable .form-inline { margin-top: 20px; }
+[id^="pagination-"] .pagination,
+[id^="pagination-"] .navbar-form { margin-top: 0; }
+[id^="table-chrome-"] .navbar-form { margin-left: -15px; margin-right: -15px; }
+[id^="table-chrome-"] .detail-page-contols,
+#packages-built .detail-page-controls { padding-left: 0; padding-right: 0; }
+
+/* Override the default font-weight for labels: it's a bit too much */
+label { font-weight: normal; }
+
+/* Firefox workaround for awkward fieldset styling. See http://getbootstrap.com/css/#tables-responsive */
+@-moz-document url-prefix() { fieldset { display: table-cell; } }
+
+/* Table heading sortable / not sortable states */
+thead > tr > th > a { font-weight: normal; }
+thead > tr > th > a.sorted { font-weight: bold; color: #333; }
+
+/* Give some extra space to the 'clear filter' buttons */
+.tooltip .btn { margin: 5px; }
+
+/* In table headings, separate the help bubble from the column heading */
+thead > tr > th > .glyphicon-question-sign { margin-right: 5px; }
+
+/* Style build outcome in tables, download, remove and change icons */
+tbody > tr > td > .glyphicon-ok-circle,
+dd > .glyphicon-ok-circle { color: #3c763d; }
+tbody > tr > td > .glyphicon-minus-sign { color: #a94442; }
+.glyphicon-download-alt,
+.glyphicon-edit { color: #337ab7; }
+.failed_tasks .glyphicon-download-alt { margin-left: 5px; }
+.glyphicon-download-alt:hover,
+.glyphicon-edit:hover { color: #23527c; cursor: pointer; text-decoration: none; }
+.glyphicon-trash { color: #a94442; }
+.btn-danger > .glyphicon-trash,
+.btn-danger > .glyphicon-trash:hover { color: #fff; }
+.glyphicon-trash:hover { color: #843534; cursor: pointer; }
+
+/* Set the font size for icons inside headings, lead paragraphs and definition lists */
+h1 > .glyphicon-edit,
+p.lead .glyphicon { font-size: 16px; }
+h2 > .glyphicon-question-sign,
+h3 > .glyphicon-question-sign,
.heading-help { font-size: 14px; }
-/* Styles for the external link */
-.get-info { color: #0088CC; }
-.get-info:hover { color: #005580; cursor: pointer; text-decoration: none; }
-
-/* Styles for code and pre tags */
-code { background-color: transparent; border: none; color: #333333; }
-dd code, .alert code { white-space: pre-wrap; word-break: break-all; word-wrap: break-word; }
-.alert-warning code, .alert-warning pre { background-color: transparent; border: none; color: #C09853; margin-bottom: 0px; }
-.alert-error code { background-color: transparent; border: none; color: #B94A48; margin-bottom:0px; }
-.alert-error pre { background-color: transparent; border: none; color: #B94A48; word-break: normal; margin-bottom: 0px; }
-.alert-warning pre { word-break: normal; }
-.alert-info a { font-weight: 300; }
-.alert-info code { color: #3A87AD; }
-.tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; }
-
-/* Style for definition lists */
-dd ul { list-style-type: none; margin: 0px; }
-dt, dd {line-height: 25px; }
-dd li { line-height: 25px; }
-.item-info dd { line-height: 20px; margin-bottom: 10px; }
-
-/* Style the filter modal dialogs */
-.modal { width: 800px; margin-left: -400px; }
-.modal-footer .btn { float: left; }
-.modal-body { max-height: 300px; }
-
-/* Hover style for the clear search icon */
-.icon-remove-sign:hover { color: #999999; cursor: pointer; }
-
-/* Some extra space before headings when needed */
-.details { margin-top: 30px; }
-.air { margin-top: 30px; }
-
-/* Required classes for the highlight behaviour in tables */
-.highlight { -webkit-animation: target-fade 10s 1; -moz-animation: target-fade 10s 1; animation: target-fade 10s 1; }
-@-webkit-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
-@-moz-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
-@keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
-
-/* This makes tooltips work inside modal dialogs */
-.tooltip { z-index: 2000 !important; }
-
-/* Override default Twitter Boostrap styles for anchor tags inside tables */
-td a, td a > code { color: #333333; }
-td code { white-space: normal; }
-td a:hover, td a > code:hover { color: #000000; text-decoration: underline; }
-
-/* Override default Twitter Bootstrap styles for tr.error */
-.table tbody tr.error > td { background-color: transparent; } /* override default Bootstrap behaviour */
-.table-hover tbody tr.error:hover > td { background-color: #F5F5F5;} /* override default Bootstrap behaviour */
-
-/* Right justify Bootstrap table columns for size fields */
-.table .sizecol { text-align: right; }
-
-/* Set error, warning, success and muted styles */
-.error, .red, td.error a, tr.error a { color: #b94a48; }
-a.error:hover, a.error:focus, tr.error a:hover { color: #943A38; text-decoration: underline; }
-.warning, .yellow { color: #c09853;}
-a.warning { background-color: transparent; }
-a.warning:hover, a.warning:focus { color: #B38942; text-decoration: underline; }
-.success, .green { color: #468847;}
-.success:hover { color: #347132; text-decoration: underline; }
-td > .success:hover { text-decoration: underline; }
-.muted a { color:#999999; }
-.muted a:hover { color:#999999; }
-
-/* Sorting functionality styles for table headings */
-.sorted { color: #333333; font-weight: bold; }
-.sorted:hover { color: #000000; text-decoration: underline; }
-th > a, th > span { font-weight: normal; }
-
-/* Force long strings like commit hashes to wrap */
-.iscommit { white-space: pre-wrap; word-break: break-all; word-wrap: break-word;}
-
-/* Make the popovers scrollable if they are too long */
-.popover-content { max-height: 30em; overflow-y: scroll; }
-
-/* Styles for the directory structure table. We'll probably won't use those in production */
-.one { padding-left: 18px !important; }
-.two { padding-left: 36px !important; }
-.three { padding-left: 54px !important; }
-.content-directory a { color: #0088CC; }
-.content-directory a:hover { color: #005580; text-decoration: underline; }
-.symlink { color: #CCCCCC; }
-
-/* Styles for the navbar actions */
-.btn-group + .btn-group { margin-right: 10px; }
-.navbar-inner > .btn-group { margin-top: 6px; }
-[id^="search-input-"], #search { width: 80%; }
-
-/* Styles for the parent item in the left navigation */
-
-.nav > li > a.nav-parent { font-size: 18px; line-height: 25px; }
-
-/* Other styles */
-.dropdown-menu { padding: 10px; }
-select { width: auto; }
-.page-header { color: #5A5A5A; }
-.top-air { margin-top: 40px;}
-.progress { margin-bottom: 0px; }
-.lead .badge { font-size: 18px; font-weight: normal; border-radius: 15px; padding: 9px; }
-.lead ol, .lead ul { padding: 10px 0 0 20px; }
-.lead ol > li, .lead ul > li {
- line-height: 35px;
-}
-.well > .lead, .alert .lead { margin-bottom: 0px; }
+/* Create a class for wells without background colour */
.well-transparent { background-color: transparent; }
-.no-results { margin: 10px 0; }
-.task-name { margin-left: 7px; }
-.icon-hand-right {color: #CCCCCC; }
-.help-inline { margin: 5px; }
-.dashboard-section { background-color: transparent; }
-
-/* styles for landing page - analysis mode */
-.hero-unit { margin: 20px 0 30px; }
-.hero-unit > .close { font-size:40px; }
-.hero-actions { margin-top: 30px; }
-
-/* styles for landing page - build mode */
-.hero-unit p { line-height: 25px; }
-.hero-unit p, .hero-unit .btn-large { margin-top: 15px; }
-.hero-unit ul { margin-top: 20px; }
-.hero-unit li { line-height: 30px; }
-.hero-unit img { background-color: #eee; margin-top: 15px; }
-
-/* make tables Chrome-happy (me, not so much) */
-table { table-layout: fixed; word-wrap: break-word; }
-
-table p { margin-bottom: 0 }
-.table td { vertical-align: middle; }
-
-/* styles for the new build button */
-.new-build .btn-primary { padding: 4px 30px; }
-.new-build .alert { margin-top: 10px; }
-.new-build .alert p { margin-top: 10px; }
-
-/* styles for showing the project name in build mode */
-.project-name { padding-top: 0; }
-.project-name .label { font-weight: normal; margin-bottom: 5px; margin-left: -15px; padding: 5px; }
-.project-name .label > a { color: #fff; font-weight: normal; }
-
-/* styles for showing help icons next to command-line builds */
-.build-result .get-help-green, .build-result .get-help-red, .build-result .get-help-blue { margin-right: 35px; margin-top: 8px; font-size: 16px; }
-
-/* Remove bottom margin for forms inside modal dialogs */
-#dependencies-modal-form { margin-bottom: 0px; }
-
-/* Custom column widths */
-.narrow-col { width: 8%; }
-.medium-col { width: 12%; }
-
-/* Configuration styles */
-.icon-trash { color: #B94A48; font-size: 16px; padding-left: 5px; }
-.icon-trash:hover { color: #943A38; text-decoration: none; cursor: pointer; }
-.icon-pencil, .icon-download-alt, .icon-refresh, .icon-star-empty, .icon-star { font-size: 16px; color: #0088CC; padding-left: 2px; }
-.icon-pencil:hover, .icon-download-alt:hover, .icon-refresh:hover, .icon-star-empty:hover, .icon-star:hover, .icon-tasks:hover { color: #005580; text-decoration: none; cursor: pointer; }
-.icon-share { padding-left: 2px; }
-.alert-success .icon-refresh, .alert-success .icon-tasks { color: #468847; }
-.alert-success .icon-refresh:hover, .alert-success .icon-tasks:hover { color: #347132; }
-.alert-error .icon-refresh, .alert-error .icon-tasks { color: #b94a48; }
-.alert-error .icon-refresh:hover, .alert-error .icon-tasks:hover { color: #943A38; }
-.configuration-list li, .configuration-list label { line-height: 35px; font-size: 21px; font-weight: 200; margin-bottom: 0px;}
-.configuration-list { font-size: 16px; margin-bottom: 1.5em; }
-.configuration-list i { font-size: 16px; }
-/*.configuration-layers { height: 135px; overflow: scroll; }*/
-.counter { font-weight: normal; }
-.well-alert { background-color: #FCF8E3; border: 1px solid #FBEED5; border-radius: 4px; }
-.well-alert > .lead { color: #C09853; padding-bottom: .75em; }
-.configuration-alert { margin-bottom: 0px; padding: 8px 14px; }
-.configuration-alert p { margin-bottom: 0px; }
-.project-form { margin-top: 10px; }
-.add-layers .btn-block + .btn-block, .build .btn-block + .btn-block { margin-top: 0px; }
-input.huge { font-size: 17.5px; padding: 11px; min-width: 60%; }
-.build-form { margin-bottom: 0px; }
-.build-form .input-append { margin-bottom: 0px; }
-.build-form .btn-large { padding: 11px 35px; }
-.build-form p { font-size:17.5px ;margin:12px 0 0 10px;}
-#layer-container form, #target-container form { margin-bottom: 0px; }
-.btn-primary .icon-question-sign, .btn-danger .icon-question-sign { color: #fff; }
-.btn-primary .icon-question-sign:hover, .btn-danger .icon-question-sign:hover { color: #999; }
-a code { color: #0088CC; }
-a code:hover { color: #005580; }
-.localconf { font-size: 17.5px; margin-top: 40px; }
-.localconf code { font-size: 17.5px; }
-#add-layer-dependencies { margin-top: 5px; }
-.link-action { font-size: 17.5px; margin-top: 40px; }
-.link-action code { font-size: 17.5px; }
-.artifact { width: 9em; }
-.control-group { margin-bottom: 0px; }
-#project-details form { margin: 0px; }
-dd form { margin: 10px 0 0 0; }
-dl textarea { resize: vertical; }
-.navbar-fixed-top { z-index: 1; }
-.popover { z-index: 2; }
-.btn-danger .icon-trash { color: #fff; }
-.bbappends { list-style-type: none; margin-left: 0; }
-.bbappends li { line-height: 25px; }
-.configuration-list input[type="checkbox"] { margin-top:13px;margin-right:10px; }
-.alert input[type="checkbox"] { margin-top: 0px; margin-right: 3px; }
-.alert ol { padding: 10px 0px 0px 20px; }
-.alert ol > li { line-height: 35px; }
-.dl-vertical form { margin-top: 10px; }
-.scrolling { border: 1px solid #dddddd; height: 154px; overflow: auto; padding: 8px; width: 27.5%; margin-bottom: 10px; }
-.lead .help-block { font-size: 14px; line-height: 20px; font-weight: normal; }
-.button-place .btn { margin: 0 0 20px 0; }
-.tooltip-inner { max-width: 250px; }
-.new-build { padding: 20px; }
-.new-build li { line-height: 30px; }
-.new-build li .alert { line-height: 20px; width: 200px; white-space: normal; }
-.new-build h6 { margin: 10px 0 0 0; color: #5a5a5a; }
-.new-build h3 { margin: 0; color: #5a5a5a; }
-.new-build form { margin: 5px 0 0; }
-.new-build .input-append { margin-bottom: 0; }
-#build-selected { margin-top: 15px; }
-div.add-deps { margin-top: 15px; }
-.btn.log { margin-left: 20px; }
-
-
-.animate-repeat {
- list-style:none;
- box-sizing:border-box;
-}
-.animate-repeat.ng-move,
-.animate-repeat.ng-enter,
-.animate-repeat.ng-leave {
- -webkit-transition:all linear 0.5s;
- transition:all linear 0.5s;
+/* Create a class for the left navigation headers */
+.nav-header { display: block; font-size: 12px; font-weight: bold; line-height: 20px; color: #999; text-transform: uppercase; margin-top: 20px !important; margin-bottom: 15px; padding-left: 15px; }
+
+/* Increase the tabs padding and margin in the project pages to fit the build form and the main content */
+#project-topbar .nav-tabs > li > a { padding: 15px; }
+#project-topbar { margin-bottom: 20px; }
+
+/* Style the project name change form in the project pages */
+#project-name-change-input { width: 20em; }
+
+/* Style the build form in the project pages */
+#project-topbar .input-lg { width: 18em; }
+#project-topbar form .glyphicon { top: 15px; right: 4px; }
+#build-button { padding: 10px 30px; }
+
+/* Style the form links in the project page (all machines, all layers, etc) */
+.form-link { margin-top: 10px; }
+
+/* Style the most built recipes list in the project page */
+#freq-build-list .checkbox input[type="checkbox"] { position: relative; margin: 0 10px 0 0; vertical-align: middle; }
+#freq-build-list.lead > li { line-height: 25px; }
+#freq-build-list { margin-top: 20px; }
+#freq-build-list label { padding-left: 0; }
+#freq-build-btn { margin-top: 10px; }
+#no-most-built { margin-top: 20px; }
+
+/* Style the layers section in the project page and the layer dependencies in the import layer form */
+#layer-container .form-inline { margin-top: 20px; }
+#layer-add-input { width: 17em; }
+ul.lead { margin-top: 20px; }
+ul.lead > li { line-height: 38px; }
+ul.lead .glyphicon-trash,
+ul.lead .glyphicon-trash { font-size: 16px; margin-left: 7px; }
+#layers-in-project-list .tooltip-inner { max-width: 600px; }
+#no-layers-in-project { margin-top: 20px; }
+#no-layers-in-project ul { margin-top: 10px; }
+
+/* Style the layer information icons in the layer details pages */
+dd .glyphicon-trash,
+dd .glyphicon-edit { margin-left: 5px; }
+
+/* Style the forms and definition lists in the layer details pages */
+#change-repo-form .form-control { width: 17em; }
+#information { margin-bottom: 5em; }
+#information dd > form { margin-bottom: 5px; margin-top: 5px; }
+#edit-layer-source-form fieldset { margin-top: 20px; }
+#directory-info,
+#git-repo-info { margin-top: 20px; }
+#layer-dir-path-in-details { width: 55%; }
+.add-deps .form-control { width: 15em; }
+
+/* Style the forms and definition lists in the BitBake variables page */
+.variable-list { margin-bottom: 20px; }
+dd.variable-list form { margin-top: 10px; }
+#new-dl_dir,
+#filter-image_fstypes,
+#new-image_install,
+#new-sstate_dir,
+#new-imagefs_types { width: 20em; }
+#package_classes-select { width: 10em; }
+.scrolling { border: 1px solid #dddddd; height: 154px; overflow: auto; padding: 0 10px; width: 27.5%; margin-bottom: 10px; margin-top: 10px; }
+.scrolling.has-error { border-color: #a94442; }
+.help-block.text-danger { color: #a94442; }
+.tooltip-inner code { color: #fff; }
+.text-danger > code { color: #a94442; }
+dd.variable-list .glyphicon-question-sign { font-size: 14px; }
+dd.variable-list .glyphicon-edit { font-size: 16px; }
+dt .glyphicon-trash { margin-left: 5px; font-size: 16px; }
+#change-package_classes-form .checkbox { margin-top: 5px; }
+#variable-form h5 { margin-top: 0; }
+#variable-form .col-md-5 { padding-left: 45px; }
+
+/* Create a class for additional top margin that we can use in headings */
+.top-air { margin-top: 40px; }
+
+/* Add some bottom margin to our h2's */
+h2 { margin-bottom: 25px; }
+
+/* Style the typeahead */
+.tt-menu { min-width: 400px; padding-bottom: 10px; }
+.tt-suggestion { padding: 5px 10px; }
+.tt-suggestion:hover,
+.tt-suggestion:active { background-color: #f5f5f5; cursor: pointer; }
+
+/* Style the import layer form controls*/
+legend { border: none; }
+fieldset.fields-apart-from-layer-name { margin-top: 20px; }
+.radioLegend { margin-bottom: 0; }
+#layer-name-ctrl { margin-top: 20px; }
+#import-layer-name,
+#layer-subdir { width: 20%; }
+#layer-git-repo-url { width: 40%; }
+#layer-git-ref { width: 32%; }
+#local-dir-path { width: 45%; }
+#layer-dependency { width: 16em; }
+#layer-deps-list { margin-top: 0; }
+#form-actions { margin-bottom: 30px; }
+#duplicate-layer-info dl { margin-top: 10px; }
+#duplicate-layer-info dd { margin-bottom: 10px; }
+.help-inline { color: #737373; margin-left: 10px; }
+.radio-help { width: 50%; margin-left: 20px; }
+#repo-select div:nth-of-type(2) { margin-top: 15px; }
+
+/* Give some padding to the in-cell tooltips we use for notifications in tables */
+td > .tooltip-inner,
+.inline-notification { padding: 10px; }
+
+/* Set sane widths for table columns */
+#newcustomimagestable .get_description_or_summary,
+#imagerecipestable .get_description_or_summary,
+#softwarerecipestable .get_description_or_summary,
+#layerstable .layer__summary { width: 30%; }
+#recipestable .get_description_or_summary { width: 40%; }
+#machinestable .name { white-space: nowrap; }
+#machinestable .description { width: 45%; }
+#otable .variable_value,
+#otable .file { word-break: break-all; width: 25%; }
+[id^="variable-"] .file { word-break: break-all; }
+
+/* For the tables still not ported to ToasterTables, style the table headings
+ * that are not sortable */
+th > span.text-muted { font-weight: normal; }
+
+/* Override the rather ugly default code styles */
+code { color: #333; background-color: transparent; }
+
+/* Style our breadcrumbs */
+.breadcrumb > li + li::before { content: none; }
+.breadcrumb { background-color: transparent; padding-left: 0; padding-top: 15px; }
+.breadcrumb .divider { color: #777; margin: 0 5px; }
+
+/* Reduce top margin for the page-header class */
+.page-header { margin-top: 30px; }
+
+/* Set some space around the layer button in the layer details pages */
+.tab-content { margin-top: 20px; }
+.tab-pane { margin-top: 20px; }
+
+/* Style the new window icons */
+.glyphicon-new-window:hover { text-decoration: none; }
+.dl-horizontal > dd > .glyphicon-new-window { margin-left: 5px; }
+
+/* Style the special no results message in the custom image details page */
+[id^="no-results-special-"] > .alert-warning > ol { margin-top: 10px; }
+
+/* style the loading spinner in the new custom image dialog */
+#create-new-custom-image-btn [data-role="loading-state"] {
+ padding-left: 16px;
}
-.animate-repeat.ng-leave.ng-leave-active,
-.animate-repeat.ng-move,
-.animate-repeat.ng-enter {
- opacity:0;
+/* icon has to be absolutely positioned, otherwise the spin animation doesn't work */
+#create-new-custom-image-btn [data-role="loading-state"] .icon-spinner {
+ position: absolute;
+ left: 26px;
+ bottom: 26px;
}
-.animate-repeat.ng-leave,
-.animate-repeat.ng-enter.ng-enter-active {
- opacity:1;
-}
+/* Style the content of modal dialogs */
+.modal-footer { text-align: left; }
+.date-filter-controls { margin-top: 10px; }
+.date-filter-controls span { margin: 0 10px; }
-.tab-pane table { margin-top: 10px; }
+/* Style the fixed positioned notifications */
+#loading-notification { position: fixed; z-index: 1101; top: 3%; left: 40%; right: 40%; -webkit-box-shadow: 0 0 10px #c09853; -moz-box-shadow: 0 0 10px #c09853; box-shadow: 0 0 10px #c09853; }
-thead .description, .get_description_or_summary { width: 364px; }
-thead .add-del-layers { width: 124px; }
+.change-notification { position: fixed; z-index: 1101; top: 4%; left: 30%; right: 30%; -webkit-box-shadow: 0 0 10px #3a87ad; -moz-box-shadow: 0 0 10px #3a87ad; box-shadow: 0 0 10px #3a87ad; }
-#loading-notification {
- position: fixed;
- z-index: 101;
- top: 3%;
- left: 40%;
- right: 40%;
- -webkit-box-shadow: 0 0 10px #c09853;
- -moz-box-shadow: 0 0 10px #c09853;
- box-shadow: 0 0 10px #c09853;
-}
+.alert-success.change-notification { -webkit-box-shadow: 0 0 10px #3c763d; -moz-box-shadow: 0 0 10px #3c763d; box-shadow: 0 0 10px #3c763d; }
-#change-notification {
- position: fixed;
- z-index: 101;
- top: 3%;
- left: 20%;
- right: 20%;
- -webkit-box-shadow: 0 0 10px #3a87ad;
- -moz-box-shadow: 0 0 10px #3a87ad;
- box-shadow: 0 0 10px #3a87ad;
-}
+/* Style the new project form */
+#new-project-name { width: 33%; }
+#projectversion { width: 20%; margin-bottom: 10px; }
+
+/* Style the Toaster screenshot in the landing page */
+.img-thumbnail { padding: 0; }
+
+/* Set the layout for the build information pages */
+
+#nav { margin-top: 10px; }
+.page-header.build-data { margin-top: 0px; }
+.build-data > h1 { margin-top: 8px; }
+
+/* Style the build outcome information in the build dashboard */
+.log { margin-left: 30px; }
+.show-warnings { font-weight: 700; color: #8a6d3b; }
+.show-warnings:hover { color: #66512c; }
+
+/* Style the errors and warnings information in the build dashboard */
+#errors .panel-heading { background-color: transparent; color: #843534; }
+#warnings .panel-heading { background-color: transparent; color: #8a6d3b; }
+#warnings .panel-heading a:hover { color: #66512c; }
+h2.panel-title { font-size: 30px; }
+.alert-danger pre,
+.alert-warning pre { background-color: transparent; border: none; }
+.alert-danger pre { color: #a94442; }
+#error-info pre,
+#warning-info pre { white-space: pre-wrap; }
+.alert-warning pre { color: #8a6d3b; }
+
+/* Style the wells in the build dashboard */
+.dashboard-section h3 { margin-top: 10px; margin-bottom: 20px; }
+.col-md-4.dashboard-section dd { margin-bottom: 10px; }
+
+/* Make the help in tables insivisble until you hover over the right cell */
+.hover-help { visibility: hidden; }
+
+#add-remove-layer-btn { margin-bottom: 20px; }
+
+/* Blue hightlight animation for tasks and directory structure tables */
+.highlight { -webkit-animation: target-fade 15s 1; -moz-animation: target-fade 15s 1; animation: target-fade 15s 1; }
+@-webkit-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
+@-moz-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
+@keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
/* Copied in from newer version of Font-Awesome 4.3.0 */
.fa-spin {
@@ -330,14 +368,3 @@ thead .add-del-layers { width: 124px; }
}
}
/* End copied in from newer version of Font-Awesome 4.3.0 */
-
-.top-padded {
- padding-top: 60px;
-}
-
-input.input-lg {
- font-size: 18px;
- height: 22px;
- line-height: 1.33333;
- padding: 10px 16px;
-}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.eot b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.eot
index 423bd5d3a..b93a4953f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.eot
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.svg b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.svg
index 446948874..94fb5490a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.svg
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.svg
@@ -6,224 +6,283 @@
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
<font-face units-per-em="1200" ascent="960" descent="-240" />
<missing-glyph horiz-adv-x="500" />
-<glyph />
-<glyph />
-<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
<glyph unicode=" " />
-<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
-<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
<glyph unicode="&#xa0;" />
-<glyph unicode="&#x2000;" horiz-adv-x="652" />
-<glyph unicode="&#x2001;" horiz-adv-x="1304" />
-<glyph unicode="&#x2002;" horiz-adv-x="652" />
-<glyph unicode="&#x2003;" horiz-adv-x="1304" />
-<glyph unicode="&#x2004;" horiz-adv-x="434" />
-<glyph unicode="&#x2005;" horiz-adv-x="326" />
-<glyph unicode="&#x2006;" horiz-adv-x="217" />
-<glyph unicode="&#x2007;" horiz-adv-x="217" />
-<glyph unicode="&#x2008;" horiz-adv-x="163" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
<glyph unicode="&#x2009;" horiz-adv-x="260" />
<glyph unicode="&#x200a;" horiz-adv-x="72" />
<glyph unicode="&#x202f;" horiz-adv-x="260" />
-<glyph unicode="&#x205f;" horiz-adv-x="326" />
-<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
-<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
-<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
-<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
-<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
-<glyph unicode="&#xe000;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
-<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q17 -55 85.5 -75.5t147.5 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
-<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
-<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
-<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
-<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
-<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
-<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
-<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
-<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
-<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
-<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 299q-120 -77 -261 -77q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
-<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
-<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
-<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
-<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
-<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
-<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
-<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
-<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
-<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
-<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
-<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
-<glyph unicode="&#xe028;" d="M0 25v475l200 700h800q199 -700 200 -700v-475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
-<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
-<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
-<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
-<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
-<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
-<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
-<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
-<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
-<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
-<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
-<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
-<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
-<glyph unicode="&#xe041;" d="M1 700v475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
-<glyph unicode="&#xe042;" d="M2 700v475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
-<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
-<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
-<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
-<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
-<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
-<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v70h471q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
-<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
-<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
-<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
-<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
-<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
-<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
-<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
-<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
-<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 138.5t-64 210.5zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
-<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
-<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
-<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l566 567l-136 137l-430 -431l-147 147z" />
-<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
-<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
-<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
-<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
-<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
-<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
-<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
-<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
-<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
-<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
-<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM300 500h600v200h-600v-200z" />
-<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141z" />
-<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
-<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM363 700h144q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5q19 0 30 -10t11 -26 q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-105 0 -172 -56t-67 -183zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -300t-217.5 -218t-299.5 -80t-299.5 80t-217.5 218t-80 300zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
-<glyph unicode="&#xe087;" d="M0 500v200h194q15 60 36 104.5t55.5 86t88 69t126.5 40.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200 v-206q149 48 201 206h-201v200h200q-25 74 -76 127.5t-124 76.5v-204h-200v203q-75 -24 -130 -77.5t-79 -125.5h209v-200h-210z" />
-<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
-<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
-<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
-<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
-<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
-<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
-<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
-<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
-<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
-<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
-<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-33 14.5h-207q-20 0 -32 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111v6t-1 15t-3 18l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6h-111v-100z M100 0h400v400h-400v-400zM200 900q-3 0 14 48t35 96l18 47l214 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
-<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
-<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
-<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
-<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
-<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 33 -48 36t-48 -29l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
-<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -21 -13 -29t-32 1l-94 78h-222l-94 -78q-19 -9 -32 -1t-13 29v64 q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
-<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
-<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
-<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
-<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
-<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
-<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
-<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
-<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
-<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
-<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
-<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
-<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
-<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
-<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM99 500v250v5q0 13 0.5 18.5t2.5 13t8 10.5t15 3h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35q-56 337 -56 351z M1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-22 -9 -63 -23t-167.5 -37 t-251.5 -23t-245.5 20.5t-178.5 41.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
-<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
-<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q123 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 212l100 213h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
-<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q123 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
-<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
-<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 37h302l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 16.5 -10.5t26 -26t16.5 -36.5v-526q0 -13 -85.5 -93.5t-93.5 -80.5h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l106 89v502l-342 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM999 201v600h200v-600h-200z" />
-<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6v7.5v7v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
-<glyph unicode="&#xe130;" d="M1 585q-15 -31 7 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85l-1 -302q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM76 565l237 339h503l89 -100v-294l-340 -130 q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
-<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 500h300l-2 -194l402 294l-402 298v-197h-298v-201z" />
-<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l400 -294v194h302v201h-300v197z" />
-<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
-<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
-<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -34 5.5 -93t7.5 -87q0 -9 17 -44t16 -60q12 0 23 -5.5 t23 -15t20 -13.5q20 -10 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55.5t-20 -57.5q12 -21 22.5 -34.5t28 -27t36.5 -17.5q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q101 -2 221 111q31 30 47 48t34 49t21 62q-14 9 -37.5 9.5t-35.5 7.5q-14 7 -49 15t-52 19 q-9 0 -39.5 -0.5t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q8 16 22 22q6 -1 26 -1.5t33.5 -4.5t19.5 -13q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5 t5.5 57.5q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 41 1 44q31 -13 58.5 -14.5t39.5 3.5l11 4q6 36 -17 53.5t-64 28.5t-56 23 q-19 -3 -37 0q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -46 0t-45 -3q-20 -6 -51.5 -25.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79zM518 915q3 12 16 30.5t16 25.5q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -18 8 -42.5t16.5 -44 t9.5 -23.5q-6 1 -39 5t-53.5 10t-36.5 16z" />
-<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
-<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
-<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
-<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
-<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
-<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM513 609q0 32 21 56.5t52 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-16 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5q-37 0 -62.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
-<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -79.5 -17t-67.5 -51l-388 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23q38 0 53 -36 q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60l517 511 q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
-<glyph unicode="&#xe143;" d="M79 784q0 131 99 229.5t230 98.5q144 0 242 -129q103 129 245 129q130 0 227 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100l-84.5 84.5t-68 74t-60 78t-33.5 70.5t-15 78z M250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-106 48.5q-73 0 -131 -83l-118 -171l-114 174q-51 80 -124 80q-59 0 -108.5 -49.5t-49.5 -118.5z" />
-<glyph unicode="&#xe144;" d="M57 353q0 -94 66 -160l141 -141q66 -66 159 -66q95 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-12 12 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141l19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -18q46 -46 77 -99l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
-<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
-<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
-<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335l-27 7q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5v-307l64 -14 q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5zM700 237 q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
-<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -11 2.5 -24.5t5.5 -24t9.5 -26.5t10.5 -25t14 -27.5t14 -25.5 t15.5 -27t13.5 -24h242v-100h-197q8 -50 -2.5 -115t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q32 1 102 -16t104 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10 t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5t-30 142.5h-221z" />
-<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
-<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
-<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
-<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
-<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
-<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
-<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
-<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
-<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
-<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
-<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
-<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
-<glyph unicode="&#xe162;" d="M216 519q10 -19 32 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8l9 -1q13 0 26 16l538 630q15 19 6 36q-8 18 -32 16h-300q1 4 78 219.5t79 227.5q2 17 -6 27l-8 8h-9q-16 0 -25 -15q-4 -5 -98.5 -111.5t-228 -257t-209.5 -238.5q-17 -19 -7 -40z" />
-<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
-<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
-<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
-<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 401h700v699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l248 -237v700h-699zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
-<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
-<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
-<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
-<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -117q-25 -16 -43.5 -50.5t-18.5 -65.5v-359z" />
-<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
-<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
-<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q16 17 13 40.5t-22 37.5l-192 136q-19 14 -45 12t-42 -19l-119 -118q-143 103 -267 227q-126 126 -227 268l118 118q17 17 20 41.5 t-11 44.5l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
-<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -15 -35.5t-35 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
-<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
-<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
-<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
-<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
-<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
-<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
-<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
-<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
-<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86t85 208q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300 h200l-300 -300z" />
-<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104t60.5 178q0 121 -85 207.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
-<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
-<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -12t1 -11q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
</font>
</defs></svg> \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.ttf b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.ttf
index a498ef4e7..1413fc609 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.ttf
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff
index d83c539b8..9e612858f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff2 b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 000000000..64539b54c
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/fonts/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/html/layer_deps_modal.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/html/layer_deps_modal.html
index e1dba4358..e843d8d85 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/html/layer_deps_modal.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/html/layer_deps_modal.html
@@ -1,17 +1,21 @@
-<div id="dependencies-modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="false">
- <form id="dependencies-modal-form">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3><span id="title"></span> dependencies</h3>
- </div>
- <div class="modal-body">
- <p id="body-text"> <strong id="layer-name"></strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
- <ul class="unstyled" id="dependencies-list">
- </ul>
- </div>
- <div class="modal-footer">
- <button class="btn btn-primary" type="submit">Add layers</button>
- <button class="btn" type="reset" data-dismiss="modal">Cancel</button>
- </div>
- </form>
-</div>
+<div id="dependencies-modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form id="dependencies-modal-form">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3><span id="title"></span> dependencies</h3>
+ </div>
+ <div class="modal-body">
+ <p id="body-text"> <strong id="layer-name"></strong> depends on some layers that are not added to your project. Select the ones you want to add:</p>
+ <ul class="list-unstyled" id="dependencies-list">
+ </ul>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-primary" type="submit">Add layers</button>
+ <button class="btn btn-link" type="reset" data-dismiss="modal">Cancel</button>
+ </div>
+ </form>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings-white.png b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings-white.png
deleted file mode 100644
index 3bf6484a2..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings-white.png
+++ /dev/null
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings.png b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings.png
deleted file mode 100644
index a99699932..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/img/glyphicons-halflings.png
+++ /dev/null
Binary files differ
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.js
new file mode 100644
index 000000000..d47d640fe
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.js
@@ -0,0 +1,2363 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+
+if (typeof jQuery === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
+
++function ($) {
+ 'use strict';
+ var version = $.fn.jquery.split(' ')[0].split('.')
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')
+ }
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: transition.js v3.3.6
+ * http://getbootstrap.com/javascript/#transitions
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+ // ============================================================
+
+ function transitionEnd() {
+ var el = document.createElement('bootstrap')
+
+ var transEndEventNames = {
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
+ }
+
+ for (var name in transEndEventNames) {
+ if (el.style[name] !== undefined) {
+ return { end: transEndEventNames[name] }
+ }
+ }
+
+ return false // explicit for ie8 ( ._.)
+ }
+
+ // http://blog.alexmaccaw.com/css-transitions
+ $.fn.emulateTransitionEnd = function (duration) {
+ var called = false
+ var $el = this
+ $(this).one('bsTransitionEnd', function () { called = true })
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+ setTimeout(callback, duration)
+ return this
+ }
+
+ $(function () {
+ $.support.transition = transitionEnd()
+
+ if (!$.support.transition) return
+
+ $.event.special.bsTransitionEnd = {
+ bindType: $.support.transition.end,
+ delegateType: $.support.transition.end,
+ handle: function (e) {
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
+ }
+ }
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: alert.js v3.3.6
+ * http://getbootstrap.com/javascript/#alerts
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // ALERT CLASS DEFINITION
+ // ======================
+
+ var dismiss = '[data-dismiss="alert"]'
+ var Alert = function (el) {
+ $(el).on('click', dismiss, this.close)
+ }
+
+ Alert.VERSION = '3.3.6'
+
+ Alert.TRANSITION_DURATION = 150
+
+ Alert.prototype.close = function (e) {
+ var $this = $(this)
+ var selector = $this.attr('data-target')
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+ }
+
+ var $parent = $(selector)
+
+ if (e) e.preventDefault()
+
+ if (!$parent.length) {
+ $parent = $this.closest('.alert')
+ }
+
+ $parent.trigger(e = $.Event('close.bs.alert'))
+
+ if (e.isDefaultPrevented()) return
+
+ $parent.removeClass('in')
+
+ function removeElement() {
+ // detach from parent, fire event then clean up data
+ $parent.detach().trigger('closed.bs.alert').remove()
+ }
+
+ $.support.transition && $parent.hasClass('fade') ?
+ $parent
+ .one('bsTransitionEnd', removeElement)
+ .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
+ removeElement()
+ }
+
+
+ // ALERT PLUGIN DEFINITION
+ // =======================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.alert')
+
+ if (!data) $this.data('bs.alert', (data = new Alert(this)))
+ if (typeof option == 'string') data[option].call($this)
+ })
+ }
+
+ var old = $.fn.alert
+
+ $.fn.alert = Plugin
+ $.fn.alert.Constructor = Alert
+
+
+ // ALERT NO CONFLICT
+ // =================
+
+ $.fn.alert.noConflict = function () {
+ $.fn.alert = old
+ return this
+ }
+
+
+ // ALERT DATA-API
+ // ==============
+
+ $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: button.js v3.3.6
+ * http://getbootstrap.com/javascript/#buttons
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // BUTTON PUBLIC CLASS DEFINITION
+ // ==============================
+
+ var Button = function (element, options) {
+ this.$element = $(element)
+ this.options = $.extend({}, Button.DEFAULTS, options)
+ this.isLoading = false
+ }
+
+ Button.VERSION = '3.3.6'
+
+ Button.DEFAULTS = {
+ loadingText: 'loading...'
+ }
+
+ Button.prototype.setState = function (state) {
+ var d = 'disabled'
+ var $el = this.$element
+ var val = $el.is('input') ? 'val' : 'html'
+ var data = $el.data()
+
+ state += 'Text'
+
+ if (data.resetText == null) $el.data('resetText', $el[val]())
+
+ // push to event loop to allow forms to submit
+ setTimeout($.proxy(function () {
+ $el[val](data[state] == null ? this.options[state] : data[state])
+
+ if (state == 'loadingText') {
+ this.isLoading = true
+ $el.addClass(d).attr(d, d)
+ } else if (this.isLoading) {
+ this.isLoading = false
+ $el.removeClass(d).removeAttr(d)
+ }
+ }, this), 0)
+ }
+
+ Button.prototype.toggle = function () {
+ var changed = true
+ var $parent = this.$element.closest('[data-toggle="buttons"]')
+
+ if ($parent.length) {
+ var $input = this.$element.find('input')
+ if ($input.prop('type') == 'radio') {
+ if ($input.prop('checked')) changed = false
+ $parent.find('.active').removeClass('active')
+ this.$element.addClass('active')
+ } else if ($input.prop('type') == 'checkbox') {
+ if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
+ this.$element.toggleClass('active')
+ }
+ $input.prop('checked', this.$element.hasClass('active'))
+ if (changed) $input.trigger('change')
+ } else {
+ this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
+ this.$element.toggleClass('active')
+ }
+ }
+
+
+ // BUTTON PLUGIN DEFINITION
+ // ========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.button')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.button', (data = new Button(this, options)))
+
+ if (option == 'toggle') data.toggle()
+ else if (option) data.setState(option)
+ })
+ }
+
+ var old = $.fn.button
+
+ $.fn.button = Plugin
+ $.fn.button.Constructor = Button
+
+
+ // BUTTON NO CONFLICT
+ // ==================
+
+ $.fn.button.noConflict = function () {
+ $.fn.button = old
+ return this
+ }
+
+
+ // BUTTON DATA-API
+ // ===============
+
+ $(document)
+ .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+ var $btn = $(e.target)
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
+ Plugin.call($btn, 'toggle')
+ if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
+ })
+ .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
+ $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: carousel.js v3.3.6
+ * http://getbootstrap.com/javascript/#carousel
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // CAROUSEL CLASS DEFINITION
+ // =========================
+
+ var Carousel = function (element, options) {
+ this.$element = $(element)
+ this.$indicators = this.$element.find('.carousel-indicators')
+ this.options = options
+ this.paused = null
+ this.sliding = null
+ this.interval = null
+ this.$active = null
+ this.$items = null
+
+ this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
+
+ this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
+ }
+
+ Carousel.VERSION = '3.3.6'
+
+ Carousel.TRANSITION_DURATION = 600
+
+ Carousel.DEFAULTS = {
+ interval: 5000,
+ pause: 'hover',
+ wrap: true,
+ keyboard: true
+ }
+
+ Carousel.prototype.keydown = function (e) {
+ if (/input|textarea/i.test(e.target.tagName)) return
+ switch (e.which) {
+ case 37: this.prev(); break
+ case 39: this.next(); break
+ default: return
+ }
+
+ e.preventDefault()
+ }
+
+ Carousel.prototype.cycle = function (e) {
+ e || (this.paused = false)
+
+ this.interval && clearInterval(this.interval)
+
+ this.options.interval
+ && !this.paused
+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
+
+ return this
+ }
+
+ Carousel.prototype.getItemIndex = function (item) {
+ this.$items = item.parent().children('.item')
+ return this.$items.index(item || this.$active)
+ }
+
+ Carousel.prototype.getItemForDirection = function (direction, active) {
+ var activeIndex = this.getItemIndex(active)
+ var willWrap = (direction == 'prev' && activeIndex === 0)
+ || (direction == 'next' && activeIndex == (this.$items.length - 1))
+ if (willWrap && !this.options.wrap) return active
+ var delta = direction == 'prev' ? -1 : 1
+ var itemIndex = (activeIndex + delta) % this.$items.length
+ return this.$items.eq(itemIndex)
+ }
+
+ Carousel.prototype.to = function (pos) {
+ var that = this
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
+
+ if (pos > (this.$items.length - 1) || pos < 0) return
+
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
+ if (activeIndex == pos) return this.pause().cycle()
+
+ return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
+ }
+
+ Carousel.prototype.pause = function (e) {
+ e || (this.paused = true)
+
+ if (this.$element.find('.next, .prev').length && $.support.transition) {
+ this.$element.trigger($.support.transition.end)
+ this.cycle(true)
+ }
+
+ this.interval = clearInterval(this.interval)
+
+ return this
+ }
+
+ Carousel.prototype.next = function () {
+ if (this.sliding) return
+ return this.slide('next')
+ }
+
+ Carousel.prototype.prev = function () {
+ if (this.sliding) return
+ return this.slide('prev')
+ }
+
+ Carousel.prototype.slide = function (type, next) {
+ var $active = this.$element.find('.item.active')
+ var $next = next || this.getItemForDirection(type, $active)
+ var isCycling = this.interval
+ var direction = type == 'next' ? 'left' : 'right'
+ var that = this
+
+ if ($next.hasClass('active')) return (this.sliding = false)
+
+ var relatedTarget = $next[0]
+ var slideEvent = $.Event('slide.bs.carousel', {
+ relatedTarget: relatedTarget,
+ direction: direction
+ })
+ this.$element.trigger(slideEvent)
+ if (slideEvent.isDefaultPrevented()) return
+
+ this.sliding = true
+
+ isCycling && this.pause()
+
+ if (this.$indicators.length) {
+ this.$indicators.find('.active').removeClass('active')
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
+ $nextIndicator && $nextIndicator.addClass('active')
+ }
+
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
+ if ($.support.transition && this.$element.hasClass('slide')) {
+ $next.addClass(type)
+ $next[0].offsetWidth // force reflow
+ $active.addClass(direction)
+ $next.addClass(direction)
+ $active
+ .one('bsTransitionEnd', function () {
+ $next.removeClass([type, direction].join(' ')).addClass('active')
+ $active.removeClass(['active', direction].join(' '))
+ that.sliding = false
+ setTimeout(function () {
+ that.$element.trigger(slidEvent)
+ }, 0)
+ })
+ .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
+ } else {
+ $active.removeClass('active')
+ $next.addClass('active')
+ this.sliding = false
+ this.$element.trigger(slidEvent)
+ }
+
+ isCycling && this.cycle()
+
+ return this
+ }
+
+
+ // CAROUSEL PLUGIN DEFINITION
+ // ==========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.carousel')
+ var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
+ var action = typeof option == 'string' ? option : options.slide
+
+ if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
+ if (typeof option == 'number') data.to(option)
+ else if (action) data[action]()
+ else if (options.interval) data.pause().cycle()
+ })
+ }
+
+ var old = $.fn.carousel
+
+ $.fn.carousel = Plugin
+ $.fn.carousel.Constructor = Carousel
+
+
+ // CAROUSEL NO CONFLICT
+ // ====================
+
+ $.fn.carousel.noConflict = function () {
+ $.fn.carousel = old
+ return this
+ }
+
+
+ // CAROUSEL DATA-API
+ // =================
+
+ var clickHandler = function (e) {
+ var href
+ var $this = $(this)
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
+ if (!$target.hasClass('carousel')) return
+ var options = $.extend({}, $target.data(), $this.data())
+ var slideIndex = $this.attr('data-slide-to')
+ if (slideIndex) options.interval = false
+
+ Plugin.call($target, options)
+
+ if (slideIndex) {
+ $target.data('bs.carousel').to(slideIndex)
+ }
+
+ e.preventDefault()
+ }
+
+ $(document)
+ .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
+ .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
+
+ $(window).on('load', function () {
+ $('[data-ride="carousel"]').each(function () {
+ var $carousel = $(this)
+ Plugin.call($carousel, $carousel.data())
+ })
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: collapse.js v3.3.6
+ * http://getbootstrap.com/javascript/#collapse
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // COLLAPSE PUBLIC CLASS DEFINITION
+ // ================================
+
+ var Collapse = function (element, options) {
+ this.$element = $(element)
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
+ this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
+ '[data-toggle="collapse"][data-target="#' + element.id + '"]')
+ this.transitioning = null
+
+ if (this.options.parent) {
+ this.$parent = this.getParent()
+ } else {
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger)
+ }
+
+ if (this.options.toggle) this.toggle()
+ }
+
+ Collapse.VERSION = '3.3.6'
+
+ Collapse.TRANSITION_DURATION = 350
+
+ Collapse.DEFAULTS = {
+ toggle: true
+ }
+
+ Collapse.prototype.dimension = function () {
+ var hasWidth = this.$element.hasClass('width')
+ return hasWidth ? 'width' : 'height'
+ }
+
+ Collapse.prototype.show = function () {
+ if (this.transitioning || this.$element.hasClass('in')) return
+
+ var activesData
+ var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
+
+ if (actives && actives.length) {
+ activesData = actives.data('bs.collapse')
+ if (activesData && activesData.transitioning) return
+ }
+
+ var startEvent = $.Event('show.bs.collapse')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ if (actives && actives.length) {
+ Plugin.call(actives, 'hide')
+ activesData || actives.data('bs.collapse', null)
+ }
+
+ var dimension = this.dimension()
+
+ this.$element
+ .removeClass('collapse')
+ .addClass('collapsing')[dimension](0)
+ .attr('aria-expanded', true)
+
+ this.$trigger
+ .removeClass('collapsed')
+ .attr('aria-expanded', true)
+
+ this.transitioning = 1
+
+ var complete = function () {
+ this.$element
+ .removeClass('collapsing')
+ .addClass('collapse in')[dimension]('')
+ this.transitioning = 0
+ this.$element
+ .trigger('shown.bs.collapse')
+ }
+
+ if (!$.support.transition) return complete.call(this)
+
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
+
+ this.$element
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
+ }
+
+ Collapse.prototype.hide = function () {
+ if (this.transitioning || !this.$element.hasClass('in')) return
+
+ var startEvent = $.Event('hide.bs.collapse')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ var dimension = this.dimension()
+
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
+
+ this.$element
+ .addClass('collapsing')
+ .removeClass('collapse in')
+ .attr('aria-expanded', false)
+
+ this.$trigger
+ .addClass('collapsed')
+ .attr('aria-expanded', false)
+
+ this.transitioning = 1
+
+ var complete = function () {
+ this.transitioning = 0
+ this.$element
+ .removeClass('collapsing')
+ .addClass('collapse')
+ .trigger('hidden.bs.collapse')
+ }
+
+ if (!$.support.transition) return complete.call(this)
+
+ this.$element
+ [dimension](0)
+ .one('bsTransitionEnd', $.proxy(complete, this))
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
+ }
+
+ Collapse.prototype.toggle = function () {
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
+ }
+
+ Collapse.prototype.getParent = function () {
+ return $(this.options.parent)
+ .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
+ .each($.proxy(function (i, element) {
+ var $element = $(element)
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
+ }, this))
+ .end()
+ }
+
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
+ var isOpen = $element.hasClass('in')
+
+ $element.attr('aria-expanded', isOpen)
+ $trigger
+ .toggleClass('collapsed', !isOpen)
+ .attr('aria-expanded', isOpen)
+ }
+
+ function getTargetFromTrigger($trigger) {
+ var href
+ var target = $trigger.attr('data-target')
+ || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
+
+ return $(target)
+ }
+
+
+ // COLLAPSE PLUGIN DEFINITION
+ // ==========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.collapse')
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+ if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.collapse
+
+ $.fn.collapse = Plugin
+ $.fn.collapse.Constructor = Collapse
+
+
+ // COLLAPSE NO CONFLICT
+ // ====================
+
+ $.fn.collapse.noConflict = function () {
+ $.fn.collapse = old
+ return this
+ }
+
+
+ // COLLAPSE DATA-API
+ // =================
+
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
+ var $this = $(this)
+
+ if (!$this.attr('data-target')) e.preventDefault()
+
+ var $target = getTargetFromTrigger($this)
+ var data = $target.data('bs.collapse')
+ var option = data ? 'toggle' : $this.data()
+
+ Plugin.call($target, option)
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: dropdown.js v3.3.6
+ * http://getbootstrap.com/javascript/#dropdowns
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // DROPDOWN CLASS DEFINITION
+ // =========================
+
+ var backdrop = '.dropdown-backdrop'
+ var toggle = '[data-toggle="dropdown"]'
+ var Dropdown = function (element) {
+ $(element).on('click.bs.dropdown', this.toggle)
+ }
+
+ Dropdown.VERSION = '3.3.6'
+
+ function getParent($this) {
+ var selector = $this.attr('data-target')
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+ }
+
+ var $parent = selector && $(selector)
+
+ return $parent && $parent.length ? $parent : $this.parent()
+ }
+
+ function clearMenus(e) {
+ if (e && e.which === 3) return
+ $(backdrop).remove()
+ $(toggle).each(function () {
+ var $this = $(this)
+ var $parent = getParent($this)
+ var relatedTarget = { relatedTarget: this }
+
+ if (!$parent.hasClass('open')) return
+
+ if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
+
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
+ if (e.isDefaultPrevented()) return
+
+ $this.attr('aria-expanded', 'false')
+ $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
+ })
+ }
+
+ Dropdown.prototype.toggle = function (e) {
+ var $this = $(this)
+
+ if ($this.is('.disabled, :disabled')) return
+
+ var $parent = getParent($this)
+ var isActive = $parent.hasClass('open')
+
+ clearMenus()
+
+ if (!isActive) {
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
+ // if mobile we use a backdrop because click events don't delegate
+ $(document.createElement('div'))
+ .addClass('dropdown-backdrop')
+ .insertAfter($(this))
+ .on('click', clearMenus)
+ }
+
+ var relatedTarget = { relatedTarget: this }
+ $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
+
+ if (e.isDefaultPrevented()) return
+
+ $this
+ .trigger('focus')
+ .attr('aria-expanded', 'true')
+
+ $parent
+ .toggleClass('open')
+ .trigger($.Event('shown.bs.dropdown', relatedTarget))
+ }
+
+ return false
+ }
+
+ Dropdown.prototype.keydown = function (e) {
+ if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
+
+ var $this = $(this)
+
+ e.preventDefault()
+ e.stopPropagation()
+
+ if ($this.is('.disabled, :disabled')) return
+
+ var $parent = getParent($this)
+ var isActive = $parent.hasClass('open')
+
+ if (!isActive && e.which != 27 || isActive && e.which == 27) {
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
+ return $this.trigger('click')
+ }
+
+ var desc = ' li:not(.disabled):visible a'
+ var $items = $parent.find('.dropdown-menu' + desc)
+
+ if (!$items.length) return
+
+ var index = $items.index(e.target)
+
+ if (e.which == 38 && index > 0) index-- // up
+ if (e.which == 40 && index < $items.length - 1) index++ // down
+ if (!~index) index = 0
+
+ $items.eq(index).trigger('focus')
+ }
+
+
+ // DROPDOWN PLUGIN DEFINITION
+ // ==========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.dropdown')
+
+ if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
+ if (typeof option == 'string') data[option].call($this)
+ })
+ }
+
+ var old = $.fn.dropdown
+
+ $.fn.dropdown = Plugin
+ $.fn.dropdown.Constructor = Dropdown
+
+
+ // DROPDOWN NO CONFLICT
+ // ====================
+
+ $.fn.dropdown.noConflict = function () {
+ $.fn.dropdown = old
+ return this
+ }
+
+
+ // APPLY TO STANDARD DROPDOWN ELEMENTS
+ // ===================================
+
+ $(document)
+ .on('click.bs.dropdown.data-api', clearMenus)
+ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
+ .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
+ .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: modal.js v3.3.6
+ * http://getbootstrap.com/javascript/#modals
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // MODAL CLASS DEFINITION
+ // ======================
+
+ var Modal = function (element, options) {
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$dialog = this.$element.find('.modal-dialog')
+ this.$backdrop = null
+ this.isShown = null
+ this.originalBodyPad = null
+ this.scrollbarWidth = 0
+ this.ignoreBackdropClick = false
+
+ if (this.options.remote) {
+ this.$element
+ .find('.modal-content')
+ .load(this.options.remote, $.proxy(function () {
+ this.$element.trigger('loaded.bs.modal')
+ }, this))
+ }
+ }
+
+ Modal.VERSION = '3.3.6'
+
+ Modal.TRANSITION_DURATION = 300
+ Modal.BACKDROP_TRANSITION_DURATION = 150
+
+ Modal.DEFAULTS = {
+ backdrop: true,
+ keyboard: true,
+ show: true
+ }
+
+ Modal.prototype.toggle = function (_relatedTarget) {
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
+ }
+
+ Modal.prototype.show = function (_relatedTarget) {
+ var that = this
+ var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
+
+ this.$element.trigger(e)
+
+ if (this.isShown || e.isDefaultPrevented()) return
+
+ this.isShown = true
+
+ this.checkScrollbar()
+ this.setScrollbar()
+ this.$body.addClass('modal-open')
+
+ this.escape()
+ this.resize()
+
+ this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+
+ this.$dialog.on('mousedown.dismiss.bs.modal', function () {
+ that.$element.one('mouseup.dismiss.bs.modal', function (e) {
+ if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
+ })
+ })
+
+ this.backdrop(function () {
+ var transition = $.support.transition && that.$element.hasClass('fade')
+
+ if (!that.$element.parent().length) {
+ that.$element.appendTo(that.$body) // don't move modals dom position
+ }
+
+ that.$element
+ .show()
+ .scrollTop(0)
+
+ that.adjustDialog()
+
+ if (transition) {
+ that.$element[0].offsetWidth // force reflow
+ }
+
+ that.$element.addClass('in')
+
+ that.enforceFocus()
+
+ var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
+
+ transition ?
+ that.$dialog // wait for modal to slide in
+ .one('bsTransitionEnd', function () {
+ that.$element.trigger('focus').trigger(e)
+ })
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+ that.$element.trigger('focus').trigger(e)
+ })
+ }
+
+ Modal.prototype.hide = function (e) {
+ if (e) e.preventDefault()
+
+ e = $.Event('hide.bs.modal')
+
+ this.$element.trigger(e)
+
+ if (!this.isShown || e.isDefaultPrevented()) return
+
+ this.isShown = false
+
+ this.escape()
+ this.resize()
+
+ $(document).off('focusin.bs.modal')
+
+ this.$element
+ .removeClass('in')
+ .off('click.dismiss.bs.modal')
+ .off('mouseup.dismiss.bs.modal')
+
+ this.$dialog.off('mousedown.dismiss.bs.modal')
+
+ $.support.transition && this.$element.hasClass('fade') ?
+ this.$element
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
+ this.hideModal()
+ }
+
+ Modal.prototype.enforceFocus = function () {
+ $(document)
+ .off('focusin.bs.modal') // guard against infinite focus loop
+ .on('focusin.bs.modal', $.proxy(function (e) {
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
+ this.$element.trigger('focus')
+ }
+ }, this))
+ }
+
+ Modal.prototype.escape = function () {
+ if (this.isShown && this.options.keyboard) {
+ this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
+ e.which == 27 && this.hide()
+ }, this))
+ } else if (!this.isShown) {
+ this.$element.off('keydown.dismiss.bs.modal')
+ }
+ }
+
+ Modal.prototype.resize = function () {
+ if (this.isShown) {
+ $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
+ } else {
+ $(window).off('resize.bs.modal')
+ }
+ }
+
+ Modal.prototype.hideModal = function () {
+ var that = this
+ this.$element.hide()
+ this.backdrop(function () {
+ that.$body.removeClass('modal-open')
+ that.resetAdjustments()
+ that.resetScrollbar()
+ that.$element.trigger('hidden.bs.modal')
+ })
+ }
+
+ Modal.prototype.removeBackdrop = function () {
+ this.$backdrop && this.$backdrop.remove()
+ this.$backdrop = null
+ }
+
+ Modal.prototype.backdrop = function (callback) {
+ var that = this
+ var animate = this.$element.hasClass('fade') ? 'fade' : ''
+
+ if (this.isShown && this.options.backdrop) {
+ var doAnimate = $.support.transition && animate
+
+ this.$backdrop = $(document.createElement('div'))
+ .addClass('modal-backdrop ' + animate)
+ .appendTo(this.$body)
+
+ this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
+ if (this.ignoreBackdropClick) {
+ this.ignoreBackdropClick = false
+ return
+ }
+ if (e.target !== e.currentTarget) return
+ this.options.backdrop == 'static'
+ ? this.$element[0].focus()
+ : this.hide()
+ }, this))
+
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
+
+ this.$backdrop.addClass('in')
+
+ if (!callback) return
+
+ doAnimate ?
+ this.$backdrop
+ .one('bsTransitionEnd', callback)
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+ callback()
+
+ } else if (!this.isShown && this.$backdrop) {
+ this.$backdrop.removeClass('in')
+
+ var callbackRemove = function () {
+ that.removeBackdrop()
+ callback && callback()
+ }
+ $.support.transition && this.$element.hasClass('fade') ?
+ this.$backdrop
+ .one('bsTransitionEnd', callbackRemove)
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
+ callbackRemove()
+
+ } else if (callback) {
+ callback()
+ }
+ }
+
+ // these following methods are used to handle overflowing modals
+
+ Modal.prototype.handleUpdate = function () {
+ this.adjustDialog()
+ }
+
+ Modal.prototype.adjustDialog = function () {
+ var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
+
+ this.$element.css({
+ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
+ paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
+ })
+ }
+
+ Modal.prototype.resetAdjustments = function () {
+ this.$element.css({
+ paddingLeft: '',
+ paddingRight: ''
+ })
+ }
+
+ Modal.prototype.checkScrollbar = function () {
+ var fullWindowWidth = window.innerWidth
+ if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
+ var documentElementRect = document.documentElement.getBoundingClientRect()
+ fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
+ }
+ this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
+ this.scrollbarWidth = this.measureScrollbar()
+ }
+
+ Modal.prototype.setScrollbar = function () {
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ this.originalBodyPad = document.body.style.paddingRight || ''
+ if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
+ }
+
+ Modal.prototype.resetScrollbar = function () {
+ this.$body.css('padding-right', this.originalBodyPad)
+ }
+
+ Modal.prototype.measureScrollbar = function () { // thx walsh
+ var scrollDiv = document.createElement('div')
+ scrollDiv.className = 'modal-scrollbar-measure'
+ this.$body.append(scrollDiv)
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
+ this.$body[0].removeChild(scrollDiv)
+ return scrollbarWidth
+ }
+
+
+ // MODAL PLUGIN DEFINITION
+ // =======================
+
+ function Plugin(option, _relatedTarget) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.modal')
+ var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
+
+ if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
+ if (typeof option == 'string') data[option](_relatedTarget)
+ else if (options.show) data.show(_relatedTarget)
+ })
+ }
+
+ var old = $.fn.modal
+
+ $.fn.modal = Plugin
+ $.fn.modal.Constructor = Modal
+
+
+ // MODAL NO CONFLICT
+ // =================
+
+ $.fn.modal.noConflict = function () {
+ $.fn.modal = old
+ return this
+ }
+
+
+ // MODAL DATA-API
+ // ==============
+
+ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
+ var $this = $(this)
+ var href = $this.attr('href')
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
+ var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
+
+ if ($this.is('a')) e.preventDefault()
+
+ $target.one('show.bs.modal', function (showEvent) {
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
+ $target.one('hidden.bs.modal', function () {
+ $this.is(':visible') && $this.trigger('focus')
+ })
+ })
+ Plugin.call($target, option, this)
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tooltip.js v3.3.6
+ * http://getbootstrap.com/javascript/#tooltip
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // TOOLTIP PUBLIC CLASS DEFINITION
+ // ===============================
+
+ var Tooltip = function (element, options) {
+ this.type = null
+ this.options = null
+ this.enabled = null
+ this.timeout = null
+ this.hoverState = null
+ this.$element = null
+ this.inState = null
+
+ this.init('tooltip', element, options)
+ }
+
+ Tooltip.VERSION = '3.3.6'
+
+ Tooltip.TRANSITION_DURATION = 150
+
+ Tooltip.DEFAULTS = {
+ animation: true,
+ placement: 'top',
+ selector: false,
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ container: false,
+ viewport: {
+ selector: 'body',
+ padding: 0
+ }
+ }
+
+ Tooltip.prototype.init = function (type, element, options) {
+ this.enabled = true
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
+ this.inState = { click: false, hover: false, focus: false }
+
+ if (this.$element[0] instanceof document.constructor && !this.options.selector) {
+ throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
+ }
+
+ var triggers = this.options.trigger.split(' ')
+
+ for (var i = triggers.length; i--;) {
+ var trigger = triggers[i]
+
+ if (trigger == 'click') {
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+ } else if (trigger != 'manual') {
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
+
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+ }
+ }
+
+ this.options.selector ?
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+ this.fixTitle()
+ }
+
+ Tooltip.prototype.getDefaults = function () {
+ return Tooltip.DEFAULTS
+ }
+
+ Tooltip.prototype.getOptions = function (options) {
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
+
+ if (options.delay && typeof options.delay == 'number') {
+ options.delay = {
+ show: options.delay,
+ hide: options.delay
+ }
+ }
+
+ return options
+ }
+
+ Tooltip.prototype.getDelegateOptions = function () {
+ var options = {}
+ var defaults = this.getDefaults()
+
+ this._options && $.each(this._options, function (key, value) {
+ if (defaults[key] != value) options[key] = value
+ })
+
+ return options
+ }
+
+ Tooltip.prototype.enter = function (obj) {
+ var self = obj instanceof this.constructor ?
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
+
+ if (obj instanceof $.Event) {
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
+ }
+
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
+ self.hoverState = 'in'
+ return
+ }
+
+ clearTimeout(self.timeout)
+
+ self.hoverState = 'in'
+
+ if (!self.options.delay || !self.options.delay.show) return self.show()
+
+ self.timeout = setTimeout(function () {
+ if (self.hoverState == 'in') self.show()
+ }, self.options.delay.show)
+ }
+
+ Tooltip.prototype.isInStateTrue = function () {
+ for (var key in this.inState) {
+ if (this.inState[key]) return true
+ }
+
+ return false
+ }
+
+ Tooltip.prototype.leave = function (obj) {
+ var self = obj instanceof this.constructor ?
+ obj : $(obj.currentTarget).data('bs.' + this.type)
+
+ if (!self) {
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
+ $(obj.currentTarget).data('bs.' + this.type, self)
+ }
+
+ if (obj instanceof $.Event) {
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
+ }
+
+ if (self.isInStateTrue()) return
+
+ clearTimeout(self.timeout)
+
+ self.hoverState = 'out'
+
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+ self.timeout = setTimeout(function () {
+ if (self.hoverState == 'out') self.hide()
+ }, self.options.delay.hide)
+ }
+
+ Tooltip.prototype.show = function () {
+ var e = $.Event('show.bs.' + this.type)
+
+ if (this.hasContent() && this.enabled) {
+ this.$element.trigger(e)
+
+ var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
+ if (e.isDefaultPrevented() || !inDom) return
+ var that = this
+
+ var $tip = this.tip()
+
+ var tipId = this.getUID(this.type)
+
+ this.setContent()
+ $tip.attr('id', tipId)
+ this.$element.attr('aria-describedby', tipId)
+
+ if (this.options.animation) $tip.addClass('fade')
+
+ var placement = typeof this.options.placement == 'function' ?
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
+ this.options.placement
+
+ var autoToken = /\s?auto?\s?/i
+ var autoPlace = autoToken.test(placement)
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
+
+ $tip
+ .detach()
+ .css({ top: 0, left: 0, display: 'block' })
+ .addClass(placement)
+ .data('bs.' + this.type, this)
+
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+ this.$element.trigger('inserted.bs.' + this.type)
+
+ var pos = this.getPosition()
+ var actualWidth = $tip[0].offsetWidth
+ var actualHeight = $tip[0].offsetHeight
+
+ if (autoPlace) {
+ var orgPlacement = placement
+ var viewportDim = this.getPosition(this.$viewport)
+
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
+ placement
+
+ $tip
+ .removeClass(orgPlacement)
+ .addClass(placement)
+ }
+
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
+
+ this.applyPlacement(calculatedOffset, placement)
+
+ var complete = function () {
+ var prevHoverState = that.hoverState
+ that.$element.trigger('shown.bs.' + that.type)
+ that.hoverState = null
+
+ if (prevHoverState == 'out') that.leave(that)
+ }
+
+ $.support.transition && this.$tip.hasClass('fade') ?
+ $tip
+ .one('bsTransitionEnd', complete)
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+ complete()
+ }
+ }
+
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
+ var $tip = this.tip()
+ var width = $tip[0].offsetWidth
+ var height = $tip[0].offsetHeight
+
+ // manually read margins because getBoundingClientRect includes difference
+ var marginTop = parseInt($tip.css('margin-top'), 10)
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
+
+ // we must check for NaN for ie 8/9
+ if (isNaN(marginTop)) marginTop = 0
+ if (isNaN(marginLeft)) marginLeft = 0
+
+ offset.top += marginTop
+ offset.left += marginLeft
+
+ // $.fn.offset doesn't round pixel values
+ // so we use setOffset directly with our own function B-0
+ $.offset.setOffset($tip[0], $.extend({
+ using: function (props) {
+ $tip.css({
+ top: Math.round(props.top),
+ left: Math.round(props.left)
+ })
+ }
+ }, offset), 0)
+
+ $tip.addClass('in')
+
+ // check to see if placing tip in new offset caused the tip to resize itself
+ var actualWidth = $tip[0].offsetWidth
+ var actualHeight = $tip[0].offsetHeight
+
+ if (placement == 'top' && actualHeight != height) {
+ offset.top = offset.top + height - actualHeight
+ }
+
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
+
+ if (delta.left) offset.left += delta.left
+ else offset.top += delta.top
+
+ var isVertical = /top|bottom/.test(placement)
+ var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
+ var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
+
+ $tip.offset(offset)
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
+ }
+
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
+ this.arrow()
+ .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
+ .css(isVertical ? 'top' : 'left', '')
+ }
+
+ Tooltip.prototype.setContent = function () {
+ var $tip = this.tip()
+ var title = this.getTitle()
+
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+ $tip.removeClass('fade in top bottom left right')
+ }
+
+ Tooltip.prototype.hide = function (callback) {
+ var that = this
+ var $tip = $(this.$tip)
+ var e = $.Event('hide.bs.' + this.type)
+
+ function complete() {
+ if (that.hoverState != 'in') $tip.detach()
+ that.$element
+ .removeAttr('aria-describedby')
+ .trigger('hidden.bs.' + that.type)
+ callback && callback()
+ }
+
+ this.$element.trigger(e)
+
+ if (e.isDefaultPrevented()) return
+
+ $tip.removeClass('in')
+
+ $.support.transition && $tip.hasClass('fade') ?
+ $tip
+ .one('bsTransitionEnd', complete)
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
+ complete()
+
+ this.hoverState = null
+
+ return this
+ }
+
+ Tooltip.prototype.fixTitle = function () {
+ var $e = this.$element
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
+ }
+ }
+
+ Tooltip.prototype.hasContent = function () {
+ return this.getTitle()
+ }
+
+ Tooltip.prototype.getPosition = function ($element) {
+ $element = $element || this.$element
+
+ var el = $element[0]
+ var isBody = el.tagName == 'BODY'
+
+ var elRect = el.getBoundingClientRect()
+ if (elRect.width == null) {
+ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
+ elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
+ }
+ var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
+ var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
+
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
+ }
+
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+
+ }
+
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
+ var delta = { top: 0, left: 0 }
+ if (!this.$viewport) return delta
+
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
+ var viewportDimensions = this.getPosition(this.$viewport)
+
+ if (/right|left/.test(placement)) {
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
+ delta.top = viewportDimensions.top - topEdgeOffset
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
+ }
+ } else {
+ var leftEdgeOffset = pos.left - viewportPadding
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
+ delta.left = viewportDimensions.left - leftEdgeOffset
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
+ }
+ }
+
+ return delta
+ }
+
+ Tooltip.prototype.getTitle = function () {
+ var title
+ var $e = this.$element
+ var o = this.options
+
+ title = $e.attr('data-original-title')
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
+
+ return title
+ }
+
+ Tooltip.prototype.getUID = function (prefix) {
+ do prefix += ~~(Math.random() * 1000000)
+ while (document.getElementById(prefix))
+ return prefix
+ }
+
+ Tooltip.prototype.tip = function () {
+ if (!this.$tip) {
+ this.$tip = $(this.options.template)
+ if (this.$tip.length != 1) {
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
+ }
+ }
+ return this.$tip
+ }
+
+ Tooltip.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
+ }
+
+ Tooltip.prototype.enable = function () {
+ this.enabled = true
+ }
+
+ Tooltip.prototype.disable = function () {
+ this.enabled = false
+ }
+
+ Tooltip.prototype.toggleEnabled = function () {
+ this.enabled = !this.enabled
+ }
+
+ Tooltip.prototype.toggle = function (e) {
+ var self = this
+ if (e) {
+ self = $(e.currentTarget).data('bs.' + this.type)
+ if (!self) {
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
+ $(e.currentTarget).data('bs.' + this.type, self)
+ }
+ }
+
+ if (e) {
+ self.inState.click = !self.inState.click
+ if (self.isInStateTrue()) self.enter(self)
+ else self.leave(self)
+ } else {
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+ }
+ }
+
+ Tooltip.prototype.destroy = function () {
+ var that = this
+ clearTimeout(this.timeout)
+ this.hide(function () {
+ that.$element.off('.' + that.type).removeData('bs.' + that.type)
+ if (that.$tip) {
+ that.$tip.detach()
+ }
+ that.$tip = null
+ that.$arrow = null
+ that.$viewport = null
+ })
+ }
+
+
+ // TOOLTIP PLUGIN DEFINITION
+ // =========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.tooltip')
+ var options = typeof option == 'object' && option
+
+ if (!data && /destroy|hide/.test(option)) return
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.tooltip
+
+ $.fn.tooltip = Plugin
+ $.fn.tooltip.Constructor = Tooltip
+
+
+ // TOOLTIP NO CONFLICT
+ // ===================
+
+ $.fn.tooltip.noConflict = function () {
+ $.fn.tooltip = old
+ return this
+ }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: popover.js v3.3.6
+ * http://getbootstrap.com/javascript/#popovers
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // POPOVER PUBLIC CLASS DEFINITION
+ // ===============================
+
+ var Popover = function (element, options) {
+ this.init('popover', element, options)
+ }
+
+ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
+
+ Popover.VERSION = '3.3.6'
+
+ Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
+ })
+
+
+ // NOTE: POPOVER EXTENDS tooltip.js
+ // ================================
+
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
+
+ Popover.prototype.constructor = Popover
+
+ Popover.prototype.getDefaults = function () {
+ return Popover.DEFAULTS
+ }
+
+ Popover.prototype.setContent = function () {
+ var $tip = this.tip()
+ var title = this.getTitle()
+ var content = this.getContent()
+
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
+ $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
+ this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
+ ](content)
+
+ $tip.removeClass('fade top bottom left right in')
+
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
+ // this manually by checking the contents.
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
+ }
+
+ Popover.prototype.hasContent = function () {
+ return this.getTitle() || this.getContent()
+ }
+
+ Popover.prototype.getContent = function () {
+ var $e = this.$element
+ var o = this.options
+
+ return $e.attr('data-content')
+ || (typeof o.content == 'function' ?
+ o.content.call($e[0]) :
+ o.content)
+ }
+
+ Popover.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
+ }
+
+
+ // POPOVER PLUGIN DEFINITION
+ // =========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.popover')
+ var options = typeof option == 'object' && option
+
+ if (!data && /destroy|hide/.test(option)) return
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.popover
+
+ $.fn.popover = Plugin
+ $.fn.popover.Constructor = Popover
+
+
+ // POPOVER NO CONFLICT
+ // ===================
+
+ $.fn.popover.noConflict = function () {
+ $.fn.popover = old
+ return this
+ }
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: scrollspy.js v3.3.6
+ * http://getbootstrap.com/javascript/#scrollspy
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // SCROLLSPY CLASS DEFINITION
+ // ==========================
+
+ function ScrollSpy(element, options) {
+ this.$body = $(document.body)
+ this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
+ this.activeTarget = null
+ this.scrollHeight = 0
+
+ this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
+ this.refresh()
+ this.process()
+ }
+
+ ScrollSpy.VERSION = '3.3.6'
+
+ ScrollSpy.DEFAULTS = {
+ offset: 10
+ }
+
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
+ ScrollSpy.prototype.refresh = function () {
+ var that = this
+ var offsetMethod = 'offset'
+ var offsetBase = 0
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
+
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.$body
+ .find(this.selector)
+ .map(function () {
+ var $el = $(this)
+ var href = $el.data('target') || $el.attr('href')
+ var $href = /^#./.test(href) && $(href)
+
+ return ($href
+ && $href.length
+ && $href.is(':visible')
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ that.offsets.push(this[0])
+ that.targets.push(this[1])
+ })
+ }
+
+ ScrollSpy.prototype.process = function () {
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
+ var offsets = this.offsets
+ var targets = this.targets
+ var activeTarget = this.activeTarget
+ var i
+
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
+ if (scrollTop >= maxScroll) {
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
+ }
+
+ if (activeTarget && scrollTop < offsets[0]) {
+ this.activeTarget = null
+ return this.clear()
+ }
+
+ for (i = offsets.length; i--;) {
+ activeTarget != targets[i]
+ && scrollTop >= offsets[i]
+ && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
+ && this.activate(targets[i])
+ }
+ }
+
+ ScrollSpy.prototype.activate = function (target) {
+ this.activeTarget = target
+
+ this.clear()
+
+ var selector = this.selector +
+ '[data-target="' + target + '"],' +
+ this.selector + '[href="' + target + '"]'
+
+ var active = $(selector)
+ .parents('li')
+ .addClass('active')
+
+ if (active.parent('.dropdown-menu').length) {
+ active = active
+ .closest('li.dropdown')
+ .addClass('active')
+ }
+
+ active.trigger('activate.bs.scrollspy')
+ }
+
+ ScrollSpy.prototype.clear = function () {
+ $(this.selector)
+ .parentsUntil(this.options.target, '.active')
+ .removeClass('active')
+ }
+
+
+ // SCROLLSPY PLUGIN DEFINITION
+ // ===========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.scrollspy')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
+ $.fn.scrollspy.Constructor = ScrollSpy
+
+
+ // SCROLLSPY NO CONFLICT
+ // =====================
+
+ $.fn.scrollspy.noConflict = function () {
+ $.fn.scrollspy = old
+ return this
+ }
+
+
+ // SCROLLSPY DATA-API
+ // ==================
+
+ $(window).on('load.bs.scrollspy.data-api', function () {
+ $('[data-spy="scroll"]').each(function () {
+ var $spy = $(this)
+ Plugin.call($spy, $spy.data())
+ })
+ })
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tab.js v3.3.6
+ * http://getbootstrap.com/javascript/#tabs
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // TAB CLASS DEFINITION
+ // ====================
+
+ var Tab = function (element) {
+ // jscs:disable requireDollarBeforejQueryAssignment
+ this.element = $(element)
+ // jscs:enable requireDollarBeforejQueryAssignment
+ }
+
+ Tab.VERSION = '3.3.6'
+
+ Tab.TRANSITION_DURATION = 150
+
+ Tab.prototype.show = function () {
+ var $this = this.element
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
+ var selector = $this.data('target')
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+ }
+
+ if ($this.parent('li').hasClass('active')) return
+
+ var $previous = $ul.find('.active:last a')
+ var hideEvent = $.Event('hide.bs.tab', {
+ relatedTarget: $this[0]
+ })
+ var showEvent = $.Event('show.bs.tab', {
+ relatedTarget: $previous[0]
+ })
+
+ $previous.trigger(hideEvent)
+ $this.trigger(showEvent)
+
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
+
+ var $target = $(selector)
+
+ this.activate($this.closest('li'), $ul)
+ this.activate($target, $target.parent(), function () {
+ $previous.trigger({
+ type: 'hidden.bs.tab',
+ relatedTarget: $this[0]
+ })
+ $this.trigger({
+ type: 'shown.bs.tab',
+ relatedTarget: $previous[0]
+ })
+ })
+ }
+
+ Tab.prototype.activate = function (element, container, callback) {
+ var $active = container.find('> .active')
+ var transition = callback
+ && $.support.transition
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
+
+ function next() {
+ $active
+ .removeClass('active')
+ .find('> .dropdown-menu > .active')
+ .removeClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', false)
+
+ element
+ .addClass('active')
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
+
+ if (transition) {
+ element[0].offsetWidth // reflow for transition
+ element.addClass('in')
+ } else {
+ element.removeClass('fade')
+ }
+
+ if (element.parent('.dropdown-menu').length) {
+ element
+ .closest('li.dropdown')
+ .addClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
+ }
+
+ callback && callback()
+ }
+
+ $active.length && transition ?
+ $active
+ .one('bsTransitionEnd', next)
+ .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
+ next()
+
+ $active.removeClass('in')
+ }
+
+
+ // TAB PLUGIN DEFINITION
+ // =====================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.tab')
+
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
+ $.fn.tab.Constructor = Tab
+
+
+ // TAB NO CONFLICT
+ // ===============
+
+ $.fn.tab.noConflict = function () {
+ $.fn.tab = old
+ return this
+ }
+
+
+ // TAB DATA-API
+ // ============
+
+ var clickHandler = function (e) {
+ e.preventDefault()
+ Plugin.call($(this), 'show')
+ }
+
+ $(document)
+ .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
+ .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: affix.js v3.3.6
+ * http://getbootstrap.com/javascript/#affix
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // AFFIX CLASS DEFINITION
+ // ======================
+
+ var Affix = function (element, options) {
+ this.options = $.extend({}, Affix.DEFAULTS, options)
+
+ this.$target = $(this.options.target)
+ .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
+ .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
+
+ this.$element = $(element)
+ this.affixed = null
+ this.unpin = null
+ this.pinnedOffset = null
+
+ this.checkPosition()
+ }
+
+ Affix.VERSION = '3.3.6'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
+
+ Affix.DEFAULTS = {
+ offset: 0,
+ target: window
+ }
+
+ Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
+ var scrollTop = this.$target.scrollTop()
+ var position = this.$element.offset()
+ var targetHeight = this.$target.height()
+
+ if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
+
+ if (this.affixed == 'bottom') {
+ if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
+ return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
+ }
+
+ var initializing = this.affixed == null
+ var colliderTop = initializing ? scrollTop : position.top
+ var colliderHeight = initializing ? targetHeight : height
+
+ if (offsetTop != null && scrollTop <= offsetTop) return 'top'
+ if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
+
+ return false
+ }
+
+ Affix.prototype.getPinnedOffset = function () {
+ if (this.pinnedOffset) return this.pinnedOffset
+ this.$element.removeClass(Affix.RESET).addClass('affix')
+ var scrollTop = this.$target.scrollTop()
+ var position = this.$element.offset()
+ return (this.pinnedOffset = position.top - scrollTop)
+ }
+
+ Affix.prototype.checkPositionWithEventLoop = function () {
+ setTimeout($.proxy(this.checkPosition, this), 1)
+ }
+
+ Affix.prototype.checkPosition = function () {
+ if (!this.$element.is(':visible')) return
+
+ var height = this.$element.height()
+ var offset = this.options.offset
+ var offsetTop = offset.top
+ var offsetBottom = offset.bottom
+ var scrollHeight = Math.max($(document).height(), $(document.body).height())
+
+ if (typeof offset != 'object') offsetBottom = offsetTop = offset
+ if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
+
+ var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
+
+ if (this.affixed != affix) {
+ if (this.unpin != null) this.$element.css('top', '')
+
+ var affixType = 'affix' + (affix ? '-' + affix : '')
+ var e = $.Event(affixType + '.bs.affix')
+
+ this.$element.trigger(e)
+
+ if (e.isDefaultPrevented()) return
+
+ this.affixed = affix
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
+
+ this.$element
+ .removeClass(Affix.RESET)
+ .addClass(affixType)
+ .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
+ }
+
+ if (affix == 'bottom') {
+ this.$element.offset({
+ top: scrollHeight - height - offsetBottom
+ })
+ }
+ }
+
+
+ // AFFIX PLUGIN DEFINITION
+ // =======================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.affix')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
+ $.fn.affix.Constructor = Affix
+
+
+ // AFFIX NO CONFLICT
+ // =================
+
+ $.fn.affix.noConflict = function () {
+ $.fn.affix = old
+ return this
+ }
+
+
+ // AFFIX DATA-API
+ // ==============
+
+ $(window).on('load', function () {
+ $('[data-spy="affix"]').each(function () {
+ var $spy = $(this)
+ var data = $spy.data()
+
+ data.offset = data.offset || {}
+
+ if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
+ if (data.offsetTop != null) data.offset.top = data.offsetTop
+
+ Plugin.call($spy, data)
+ })
+ })
+
+}(jQuery);
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
index 848258d38..c4a924160 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/bootstrap.min.js
@@ -1,6 +1,7 @@
/*!
-* Bootstrap.js by @fat & @mdo
-* Copyright 2013 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery); \ No newline at end of file
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),
+d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/customrecipe.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
index 1c0ef9e37..9ea960288 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/customrecipe.js
@@ -158,7 +158,7 @@ function customRecipePageInit(ctx) {
msg += " <strong>" + dep.name + "</strong>";
/* Add any cells currently in view to the list of cells which get
- * an inline notification inside them and which change add/rm state
+ * an list-inline notification inside them and which change add/rm state
*/
depBtnCell = $("#package-btn-cell-" + dep.pk);
btnCell = btnCell.add(depBtnCell);
@@ -208,7 +208,7 @@ function customRecipePageInit(ctx) {
}
/* Add any cells currently in view to the list of cells which get
- * an inline notification inside them and which change add/rm state
+ * an list-inline notification inside them and which change add/rm state
*/
depBtnCell = $("#package-btn-cell-" + dep.pk);
btnCell = btnCell.add(depBtnCell);
@@ -281,4 +281,36 @@ function customRecipePageInit(ctx) {
window.location.replace(libtoaster.ctx.projectBuildsUrl);
});
});
+
+ $("#delete-custom-recipe-confirmed").click(function(e){
+ e.preventDefault();
+ libtoaster.disableAjaxLoadingTimer();
+ $(this).find('[data-role="submit-state"]').hide();
+ $(this).find('[data-role="loading-state"]').show();
+ $(this).attr("disabled", "disabled");
+
+ $.ajax({
+ type: 'DELETE',
+ url: ctx.recipe.xhrCustomRecipeUrl,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error !== "ok") {
+ console.warn(data.error);
+ } else {
+ var msg = $('<span>You have deleted <strong>1</strong> custom image: <strong id="deleted-custom-image-name"></strong></span>');
+ msg.find("#deleted-custom-image-name").text(ctx.recipe.name);
+
+ libtoaster.setNotification("custom-image-recipe-deleted",
+ msg.html());
+
+ window.location.replace(data.gotoUrl);
+ }
+ },
+ error: function (data) {
+ console.warn(data);
+ }
+ });
+ });
+
+
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js
index 5a59799bc..30dc28280 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/importlayer.js
@@ -10,45 +10,31 @@ function importLayerPageInit (ctx) {
var layerDepInput = $("#layer-dependency");
var layerNameCtrl = $("#layer-name-ctrl");
var duplicatedLayerName = $("#duplicated-layer-name-hint");
+ var localDirPath = $("#local-dir-path");
var layerDeps = {};
var layerDepsDeps = {};
var currentLayerDepSelection;
var validLayerName = /^(\w|-)+$/;
- libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){
+ libtoaster.makeTypeahead(layerDepInput,
+ libtoaster.ctx.layersTypeAheadUrl,
+ { include_added: "true" }, function(item){
currentLayerDepSelection = item;
+ layerDepBtn.removeAttr("disabled");
});
- // choices available in the typeahead
- var layerDepsChoices = {};
-
- // when the typeahead choices change, store an array of the available layer
- // choices locally, to use for enabling/disabling the "Add layer" button
- layerDepInput.on("typeahead-choices-change", function (event, data) {
- layerDepsChoices = {};
-
- if (data.choices) {
- data.choices.forEach(function (item) {
- layerDepsChoices[item.name] = item;
- });
- }
+ layerDepInput.on("typeahead:select", function(event, data){
+ currentLayerDepSelection = data;
});
+ // Disable local dir repo when page is loaded.
+ $('#local-dir').hide();
+
// disable the "Add layer" button when the layer input typeahead is empty
// or not in the typeahead choices
- layerDepInput.on("input change", function () {
- // get the choices from the typeahead
- var choice = layerDepsChoices[$(this).val()];
-
- if (choice) {
- layerDepBtn.removeAttr("disabled");
- currentLayerDepSelection = choice;
- }
- else {
- layerDepBtn.attr("disabled", "disabled");
- currentLayerDepSelection = undefined;
- }
+ layerDepInput.on("input change", function(){
+ layerDepBtn.attr("disabled","disabled");
});
/* We automatically add "openembedded-core" layer for convenience as a
@@ -70,7 +56,7 @@ function importLayerPageInit (ctx) {
layerDeps[currentLayerDepSelection.id] = currentLayerDepSelection;
/* Make a list item for the new layer dependency */
- var newLayerDep = $("<li><a></a><span class=\"icon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>");
+ var newLayerDep = $("<li><a></a><span class=\"glyphicon glyphicon-trash\" data-toggle=\"tooltip\" title=\"Remove\"></span></li>");
newLayerDep.data('layer-id', currentLayerDepSelection.id);
newLayerDep.children("span").tooltip();
@@ -91,7 +77,8 @@ function importLayerPageInit (ctx) {
$("#layer-deps-list").append(newLayerDep);
- libtoaster.getLayerDepsForProject(currentLayerDepSelection.layerdetailurl, function (data){
+ libtoaster.getLayerDepsForProject(currentLayerDepSelection.layerdetailurl,
+ function (data){
/* These are the dependencies of the layer added as a dependency */
if (data.list.length > 0) {
currentLayerDepSelection.url = currentLayerDepSelection.layerdetailurl;
@@ -105,7 +92,8 @@ function importLayerPageInit (ctx) {
}, null);
});
- importAndAddBtn.click(function(){
+ importAndAddBtn.click(function(e){
+ e.preventDefault();
/* This is a list of the names from layerDeps for the layer deps
* modal dialog body
*/
@@ -145,7 +133,9 @@ function importLayerPageInit (ctx) {
var body = "<strong>"+layer.name+"</strong>'s dependencies ("+
depNames.join(", ")+"</span>) require some layers that are not added to your project. Select the ones you want to add:</p>";
- showLayerDepsModal(layer, depDepsArray, title, body, false, function(layerObsList){
+ showLayerDepsModal(layer,
+ depDepsArray,
+ title, body, false, function(layerObsList){
/* Add the accepted layer dependencies' ids to the allDeps array */
for (var key in layerObsList){
allDeps.push(layerObsList[key].id);
@@ -167,8 +157,16 @@ function importLayerPageInit (ctx) {
dir_path: $("#layer-subdir").val(),
project_id: libtoaster.ctx.projectId,
layer_deps: layerDepsCsv,
+ local_source_dir: $('#local-dir-path').val(),
};
+ if ($('input[name=repo]:checked').val() == "git") {
+ layerData.local_source_dir = "";
+ } else {
+ layerData.vcs_url = "";
+ layerData.git_ref = "";
+ }
+
$.ajax({
type: "POST",
url: ctx.xhrImportLayerUrl,
@@ -178,9 +176,8 @@ function importLayerPageInit (ctx) {
if (data.error != "ok") {
console.log(data.error);
} else {
- /* Success layer import now go to the project page */
- $.cookie('layer-imported-alert', JSON.stringify(data), { path: '/'});
- window.location.replace(libtoaster.ctx.projectPageUrl+'?notify=layer-imported');
+ createImportedNotification(data);
+ window.location.replace(libtoaster.ctx.projectPageUrl);
}
},
error: function (data) {
@@ -191,6 +188,30 @@ function importLayerPageInit (ctx) {
}
});
+ /* Layer imported notification */
+ function createImportedNotification(imported){
+ var message = "Layer imported";
+
+ if (imported.deps_added.length === 0) {
+ message = "You have imported <strong><a class=\"alert-link\" href=\""+imported.imported_layer.layerdetailurl+"\">"+imported.imported_layer.name+"</a></strong> and added it to your project.";
+ } else {
+
+ var links = "<a href=\""+imported.imported_layer.layerdetailurl+"\">"+imported.imported_layer.name+"</a>, ";
+
+ imported.deps_added.map (function(item, index){
+ links +='<a href="'+item.layerdetailurl+'">'+item.name+'</a>';
+ /*If we're at the last element we don't want the trailing comma */
+ if (imported.deps_added[index+1] !== undefined)
+ links += ', ';
+ });
+
+ /* Length + 1 here to do deps + the imported layer */
+ message = 'You have imported <strong><a href="'+imported.imported_layer.layerdetailurl+'">'+imported.imported_layer.name+'</a></strong> and added <strong>'+(imported.deps_added.length+1)+'</strong> layers to your project: <strong>'+links+'</strong>';
+ }
+
+ libtoaster.setNotification("layer-imported", message);
+ }
+
function enable_import_btn(enabled) {
var importAndAddHint = $("#import-and-add-hint");
@@ -207,25 +228,48 @@ function importLayerPageInit (ctx) {
function check_form() {
var valid = false;
var inputs = $("input:required");
+ var inputStr = inputs.val().split("");
- for (var i=0; i<inputs.length; i++){
- if (!(valid = inputs[i].value)){
+ for (var i=0; i<inputs.val().length; i++){
+ if (!(valid = inputStr[i])){
enable_import_btn(false);
break;
}
}
- if (valid)
- enable_import_btn(true);
+ if (valid) {
+ if ($("#local-dir-radio").prop("checked") &&
+ localDirPath.val().length > 0) {
+ enable_import_btn(true);
+ }
+
+ if ($("#git-repo-radio").prop("checked") &&
+ vcsURLInput.val().length > 0 && gitRefInput.val().length > 0) {
+ enable_import_btn(true);
+ }
+ }
+
+ if (inputs.val().length == 0)
+ enable_import_btn(false);
}
function layerExistsError(layer){
var dupLayerInfo = $("#duplicate-layer-info");
- dupLayerInfo.find(".dup-layer-name").text(layer.name);
- dupLayerInfo.find(".dup-layer-link").attr("href", layer.layerdetailurl);
- dupLayerInfo.find("#dup-layer-vcs-url").text(layer.vcs_url);
- dupLayerInfo.find("#dup-layer-revision").text(layer.vcs_reference);
+ if (layer.local_source_dir) {
+ $("#git-layer-dup").hide();
+ $("#local-layer-dup").fadeIn();
+ dupLayerInfo.find(".dup-layer-name").text(layer.name);
+ dupLayerInfo.find(".dup-layer-link").attr("href", layer.layerdetailurl);
+ dupLayerInfo.find("#dup-local-source-dir-name").text(layer.local_source_dir);
+ } else {
+ $("#git-layer-dup").fadeIn();
+ $("#local-layer-dup").hide();
+ dupLayerInfo.find(".dup-layer-name").text(layer.name);
+ dupLayerInfo.find(".dup-layer-link").attr("href", layer.layerdetailurl);
+ dupLayerInfo.find("#dup-layer-vcs-url").text(layer.vcs_url);
+ dupLayerInfo.find("#dup-layer-revision").text(layer.vcs_reference);
+ }
$(".fields-apart-from-layer-name").fadeOut(function(){
dupLayerInfo.fadeIn();
@@ -233,13 +277,13 @@ function importLayerPageInit (ctx) {
}
layerNameInput.on('blur', function() {
- if (!$(this).val()){
- return;
- }
- var name = $(this).val();
+ if (!$(this).val()){
+ return;
+ }
+ var name = $(this).val();
- /* Check if the layer name exists */
- $.getJSON(libtoaster.ctx.layersTypeAheadUrl,
+ /* Check if the layer name exists */
+ $.getJSON(libtoaster.ctx.layersTypeAheadUrl,
{ include_added: "true" , search: name, format: "json" },
function(layer) {
if (layer.results.length > 0) {
@@ -262,7 +306,7 @@ function importLayerPageInit (ctx) {
layerNameInput.on('input', function() {
if ($(this).val() && !validLayerName.test($(this).val())){
- layerNameCtrl.addClass("error")
+ layerNameCtrl.addClass("has-error")
$("#invalid-layer-name-hint").show();
enable_import_btn(false);
return;
@@ -270,16 +314,19 @@ function importLayerPageInit (ctx) {
if ($("#duplicate-layer-info").css("display") != "None"){
$("#duplicate-layer-info").fadeOut(function(){
- $(".fields-apart-from-layer-name").show();
- });
+ $(".fields-apart-from-layer-name").show();
+ radioDisplay();
+ });
- }
+ }
+
+ radioDisplay();
/* Don't remove the error class if we're displaying the error for another
* reason.
*/
if (!duplicatedLayerName.is(":visible"))
- layerNameCtrl.removeClass("error")
+ layerNameCtrl.removeClass("has-error")
$("#invalid-layer-name-hint").hide();
check_form();
@@ -300,4 +347,72 @@ function importLayerPageInit (ctx) {
}
});
+ function radioDisplay() {
+ if ($('input[name=repo]:checked').val() == "local") {
+ $('#git-repo').hide();
+ $('#import-git-layer-and-add-hint').hide();
+ $('#local-dir').fadeIn();
+ $('#import-local-dir-and-add-hint').fadeIn();
+ } else {
+ $('#local-dir').hide();
+ $('#import-local-dir-and-add-hint').hide();
+ $('#git-repo').fadeIn();
+ $('#import-git-layer-and-add-hint').fadeIn();
+ }
+ }
+
+ $('input:radio[name="repo"]').change(function() {
+ radioDisplay();
+ if ($("#local-dir-radio").prop("checked")) {
+ if (localDirPath.val().length > 0) {
+ enable_import_btn(true);
+ } else {
+ enable_import_btn(false);
+ }
+ }
+ if ($("#git-repo-radio").prop("checked")) {
+ if (vcsURLInput.val().length > 0 && gitRefInput.val().length > 0) {
+ enable_import_btn(true);
+ } else {
+ enable_import_btn(false);
+ }
+ }
+ });
+
+ localDirPath.on('input', function(){
+ if ($(this).val().trim().length == 0) {
+ $('#import-and-add-btn').attr("disabled","disabled");
+ $('#local-dir').addClass('has-error');
+ $('#hintError-dir-abs-path').show();
+ $('#hintError-dir-path-starts-with-slash').show();
+ } else {
+ var input = $(this);
+ var reBeginWithSlash = /^\//;
+ var reCheckVariable = /^\$/;
+ var re = /([ <>\\|":\.%\?\*]+)/;
+
+ var invalidDir = re.test(input.val());
+ var invalidSlash = reBeginWithSlash.test(input.val());
+ var invalidVar = reCheckVariable.test(input.val());
+
+ if (!invalidSlash && !invalidVar) {
+ $('#local-dir').addClass('has-error');
+ $('#import-and-add-btn').attr("disabled","disabled");
+ $('#hintError-dir-abs-path').show();
+ $('#hintError-dir-path-starts-with-slash').show();
+ } else if (invalidDir) {
+ $('#local-dir').addClass('has-error');
+ $('#import-and-add-btn').attr("disabled","disabled");
+ $('#hintError-dir-path').show();
+ } else {
+ $('#local-dir').removeClass('has-error');
+ if (layerNameInput.val().length > 0) {
+ $('#import-and-add-btn').removeAttr("disabled");
+ }
+ $('#hintError-dir-abs-path').hide();
+ $('#hintError-dir-path-starts-with-slash').hide();
+ $('#hintError-dir-path').hide();
+ }
+ }
+ });
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/jsrender.min.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/jsrender.min.js
new file mode 100644
index 000000000..87cac4eb3
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/jsrender.min.js
@@ -0,0 +1,4 @@
+/*! JsRender v0.9.78 (Beta): http://jsviews.com/#jsrender */
+/*! **VERSION FOR WEB** (For NODE.JS see http://jsviews.com/download/jsrender-node.js) */
+!function(e,t){var n=t.jQuery;"object"==typeof exports?module.exports=n?e(t,n):function(n){if(n&&!n.fn)throw"Provide jQuery or null";return e(t,n)}:"function"==typeof define&&define.amd?define(function(){return e(t)}):e(t,!1)}(function(e,t){"use strict";function n(e,t){return function(){var n,r=this,i=r.base;return r.base=e,n=t.apply(r,arguments),r.base=i,n}}function r(e,t){return te(t)&&(t=n(e?e._d?e:n(s,e):s,t),t._d=1),t}function i(e,t){for(var n in t.props)Re.test(n)&&(e[n]=r(e[n],t.props[n]))}function o(e){return e}function s(){return""}function a(e){try{throw console.log("JsRender dbg breakpoint: "+e),"dbg breakpoint"}catch(t){}return this.base?this.baseApply(arguments):e}function d(e){this.name=(t.link?"JsViews":"JsRender")+" Error",this.message=e||this.name}function u(e,t){for(var n in t)e[n]=t[n];return e}function l(e,t,n){return e?(de.delimiters=[e,t,ve=n?n.charAt(0):ve],pe=e.charAt(0),ce=e.charAt(1),fe=t.charAt(0),ge=t.charAt(1),e="\\"+pe+"(\\"+ve+")?\\"+ce,t="\\"+fe+"\\"+ge,G="(?:(\\w+(?=[\\/\\s\\"+fe+"]))|(\\w+)?(:)|(>)|(\\*))\\s*((?:[^\\"+fe+"]|\\"+fe+"(?!\\"+ge+"))*?)",ae.rTag="(?:"+G+")",G=new RegExp("(?:"+e+G+"(\\/)?|\\"+pe+"(\\"+ve+")?\\"+ce+"(?:(?:\\/(\\w+))\\s*|!--[\\s\\S]*?--))"+t,"g"),W=new RegExp("<.*>|([^\\\\]|^)[{}]|"+e+".*"+t),le):de.delimiters}function p(e,t){t||e===!0||(t=e,e=void 0);var n,r,i,o,s=this,a=!t||"root"===t;if(e){if(o=t&&s.type===t&&s,!o)if(n=s.views,s._.useKey){for(r in n)if(o=t?n[r].get(e,t):n[r])break}else for(r=0,i=n.length;!o&&i>r;r++)o=t?n[r].get(e,t):n[r]}else if(a)for(;s.parent;)o=s,s=s.parent;else for(;s&&!o;)o=s.type===t?s:void 0,s=s.parent;return o}function c(){var e=this.get("item");return e?e.index:void 0}function f(){return this.index}function g(t){var n,r=this,i=r.linkCtx,o=(r.ctx||{})[t];return void 0===o&&i&&i.ctx&&(o=i.ctx[t]),void 0===o&&(o=oe[t]),o&&te(o)&&!o._wrp&&(n=function(){return o.apply(this&&this!==e?this:r,arguments)},n._wrp=r,u(n,o)),n||o}function v(e){return e&&(e.fn?e:this.getRsc("templates",e)||re(e))}function h(e,t,n,r){var o,s,a="number"==typeof n&&t.tmpl.bnds[n-1],d=t.linkCtx;return void 0!==r?n=r={props:{},args:[r]}:a&&(n=a(t.data,t,ae)),s=n.args[0],(e||a)&&(o=d&&d.tag,o||(o=u(new ae._tg,{_:{inline:!d,bnd:a,unlinked:!0},tagName:":",cvt:e,flow:!0,tagCtx:n}),d&&(d.tag=o,o.linkCtx=d),n.ctx=L(n.ctx,(d?d.view:t).ctx)),o._er=r&&s,i(o,n),n.view=t,o.ctx=n.ctx||o.ctx||{},n.ctx=void 0,s=o.cvtArgs("true"!==e&&e)[0],s=a&&t._.onRender?t._.onRender(s,t,o):s),void 0!=s?s:""}function m(e){var t=this,n=t.tagCtx,r=n.view,i=n.args;return e=e||t.convert,e=e&&(""+e===e?r.getRsc("converters",e)||S("Unknown converter: '"+e+"'"):e),i=i.length||n.index?e?i.slice():i:[r.data],e&&(e.depends&&(t.depends=ae.getDeps(t.depends,t,e.depends,e)),i[0]=e.apply(t,i)),i}function w(e,t){for(var n,r,i=this;void 0===n&&i;)r=i.tmpl&&i.tmpl[e],n=r&&r[t],i=i.parent;return n||Y[e][t]}function x(e,t,n,r,o,s){t=t||X;var a,d,u,l,p,c,f,g,v,h,m,w,x,b,_,y,k,j,C,A="",T=t.linkCtx||0,V=t.ctx,R=n||t.tmpl,M="number"==typeof r&&t.tmpl.bnds[r-1];for("tag"===e._is?(a=e,e=a.tagName,r=a.tagCtxs,u=a.template):(d=t.getRsc("tags",e)||S("Unknown tag: {{"+e+"}} "),u=d.template),void 0!==s?(A+=s,r=s=[{props:{},args:[]}]):M&&(r=M(t.data,t,ae)),g=r.length,f=0;g>f;f++)h=r[f],(!T||!T.tag||f&&!T.tag._.inline||a._er)&&((w=R.tmpls&&h.tmpl)&&(w=h.content=R.tmpls[w-1]),h.index=f,h.tmpl=w,h.render=N,h.view=t,h.ctx=L(h.ctx,V)),(n=h.props.tmpl)&&(h.tmpl=t.getTmpl(n)),a||(a=new d._ctr,x=!!a.init,a.parent=c=V&&V.tag,a.tagCtxs=r,C=a.dataMap,T&&(a._.inline=!1,T.tag=a,a.linkCtx=T),(a._.bnd=M||T.fn)?a._.arrVws={}:a.dataBoundOnly&&S("{^{"+e+"}} tag must be data-bound")),r=a.tagCtxs,C=a.dataMap,h.tag=a,C&&r&&(h.map=r[f].map),a.flow||(m=h.ctx=h.ctx||{},l=a.parents=m.parentTags=V&&L(m.parentTags,V.parentTags)||{},c&&(l[c.tagName]=c),l[a.tagName]=m.tag=a);if(!(a._er=s)){for(i(a,r[0]),a.rendering={},f=0;g>f;f++)h=a.tagCtx=r[f],k=h.props,y=a.cvtArgs(),(b=k.dataMap||C)&&(y.length||k.dataMap)&&(_=h.map,_&&_.src===y[0]&&!o||(_&&_.src&&_.unmap(),_=h.map=b.map(y[0],k,void 0,!a._.bnd)),y=[_.tgt]),a.ctx=h.ctx,f||(x&&(j=a.template,a.init(h,T,a.ctx),x=void 0),T&&(T.attr=a.attr=T.attr||a.attr),p=a.attr,a._.noVws=p&&p!==Ee),v=void 0,a.render&&(v=a.render.apply(a,y)),y.length||(y=[t]),void 0===v&&(v=h.render(y[0],!0)||(o?void 0:"")),A=A?A+(v||""):v;a.rendering=void 0}return a.tagCtx=r[0],a.ctx=a.tagCtx.ctx,a._.noVws&&a._.inline&&(A="text"===p?ie.html(A):""),M&&t._.onRender?t._.onRender(A,t,a):A}function b(e,t,n,r,i,o,s,a){var d,u,l,p=this,f="array"===t;p.content=a,p.views=f?[]:{},p.parent=n,p.type=t||"top",p.data=r,p.tmpl=i,l=p._={key:0,useKey:f?0:1,id:""+$e++,onRender:s,bnds:{}},p.linked=!!s,n?(d=n.views,u=n._,u.useKey?(d[l.key="_"+u.useKey++]=p,p.index=Ue,p.getIndex=c):d.length===(l.key=p.index=o)?d.push(p):d.splice(o,0,p),p.ctx=e||n.ctx):p.ctx=e}function _(e){var t,n,r,i,o,s,a;for(t in Oe)if(o=Oe[t],(s=o.compile)&&(n=e[t+"s"]))for(r in n)i=n[r]=s(r,n[r],e,0),i._is=t,i&&(a=ae.onStore[t])&&a(r,i,s)}function y(e,t,n){function i(){var t=this;t._={inline:!0,unlinked:!0},t.tagName=e}var o,s,a,d=new ae._tg;if(te(t)?t={depends:t.depends,render:t}:""+t===t&&(t={template:t}),s=t.baseTag){t.flow=!!t.flow,t.baseTag=s=""+s===s?n&&n.tags[s]||se[s]:s,d=u(d,s);for(a in t)d[a]=r(s[a],t[a])}else d=u(d,t);return void 0!==(o=d.template)&&(d.template=""+o===o?re[o]||re(o):o),d.init!==!1&&((i.prototype=d).constructor=d._ctr=i),n&&(d._parentTmpl=n),d}function k(e){return this.base.apply(this,e)}function j(e,n,r,i){function o(n){var o,a;if(""+n===n||n.nodeType>0&&(s=n)){if(!s)if(/^\.\/[^\\:*?"<>]*$/.test(n))(a=re[e=e||n])?n=a:s=document.getElementById(n);else if(t.fn&&!W.test(n))try{s=t(document).find(n)[0]}catch(d){}s&&(i?n=s.innerHTML:(o=s.getAttribute(Se),o?o!==Ie?(n=re[o],delete re[o]):t.fn&&(n=t.data(s)[Ie]):(e=e||(t.fn?Ie:n),n=j(e,s.innerHTML,r,i)),n.tmplName=e=e||o,e!==Ie&&(re[e]=n),s.setAttribute(Se,e),t.fn&&t.data(s,Ie,n))),s=void 0}else n.fn||(n=void 0);return n}var s,a,d=n=n||"";return 0===i&&(i=void 0,d=o(d)),i=i||(n.markup?n:{}),i.tmplName=e,r&&(i._parentTmpl=r),!d&&n.markup&&(d=o(n.markup))&&d.fn&&(d=d.markup),void 0!==d?(d.fn||n.fn?d.fn&&(a=d):(n=V(d,i),U(d.replace(ke,"\\$&"),n)),a||(_(i),a=u(function(){return n.render.apply(n,arguments)},n)),e&&!r&&e!==Ie&&(qe[e]=a),a):void 0}function C(e,n){return t.isFunction(e)?e.call(n):e}function A(e){var t,n=[],r=e.length;for(t=0;r>t;t++)n.push(e[t].unmap());return n}function T(e,n){function r(e){l.apply(this,e)}function i(){return new r(arguments)}function o(e,t){var n,r,i,o,s,a=c.length;for(n=0;a>n;n++)o=c[n],r=void 0,o+""!==o&&(r=o,o=r.getter),void 0===(s=e[o])&&r&&void 0!==(i=r.defaultVal)&&(s=C(i,e)),t(s,r&&p[r.type],o)}function s(n){n=n+""===n?JSON.parse(n):n;var r,i,s,u=n,l=[];if(t.isArray(n)){for(n=n||[],i=n.length,r=0;i>r;r++)l.push(this.map(n[r]));return l._is=e,l.unmap=d,l.merge=a,l}if(n){o(n,function(e,t){t&&(e=t.map(e)),l.push(e)}),u=this.apply(this,l);for(s in n)s===ee||b[s]||(u[s]=n[s])}return u}function a(e){e=e+""===e?JSON.parse(e):e;var n,r,s,a,d,u,l,p,c,f,v=this;if(t.isArray(v)){for(p={},f=[],s=e.length,a=v.length,n=0;s>n;n++){for(c=e[n],l=!1,r=0;a>r&&!l;r++)p[r]||(u=v[r],g&&(p[r]=l=g+""===g?c[g]&&(b[g]?u[g]():u[g])===c[g]:g(u,c)));l?(u.merge(c),f.push(u)):f.push(i.map(c))}return void(x?x(v).refresh(f,!0):v.splice.apply(v,[0,v.length].concat(f)))}o(e,function(e,t,n){t?v[n]().merge(e):v[n](e)});for(d in e)d===ee||b[d]||(v[d]=e[d])}function d(){var e,n,r,i,o,s,a=this;if(t.isArray(a))return A(a);for(e={},i=c.length,r=0;i>r;r++)n=c[r],o=void 0,n+""!==n&&(o=n,n=o.getter),s=a[n](),e[n]=o&&s&&p[o.type]?t.isArray(s)?A(s):s.unmap():s;for(n in a)"_is"===n||b[n]||n===ee||"_"===n.charAt(0)&&b[n.slice(1)]||t.isFunction(a[n])||(e[n]=a[n]);return e}var u,l,p=this,c=n.getters,f=n.extend,g=n.id,v=t.extend({_is:e||"unnamed",unmap:d,merge:a},f),h="",m="",w=c?c.length:0,x=t.observable,b={};for(r.prototype=v,u=0;w>u;u++)!function(e){e=e.getter||e,b[e]=u+1;var t="_"+e;h+=(h?",":"")+e,m+="this."+t+" = "+e+";\n",v[e]=v[e]||function(n){return arguments.length?void(x?x(this).setProperty(e,n):this[t]=n):this[t]},x&&(v[e].set=v[e].set||function(e){this[t]=e})}(c[u]);return l=new Function(h,m.slice(0,-1)),l.prototype=v,v.constructor=l,i.map=s,i.getters=c,i.extend=f,i.id=g,i}function V(e,n){var r,i=ue._wm||{},o=u({tmpls:[],links:{},bnds:[],_is:"template",render:N},n);return o.markup=e,n.htmlTag||(r=Ae.exec(e),o.htmlTag=r?r[1].toLowerCase():""),r=i[o.htmlTag],r&&r!==i.div&&(o.markup=t.trim(o.markup)),o}function R(e,t){function n(i,o,s){var a,d,u,l;if(i&&typeof i===Fe&&!i.nodeType&&!i.markup&&!i.getTgt&&!("viewModel"===e&&i.getters||i.extend)){for(u in i)n(u,i[u],o);return o||Y}return void 0===o&&(o=i,i=void 0),i&&""+i!==i&&(s=o,o=i,i=void 0),l=s?"viewModel"===e?s:s[r]=s[r]||{}:n,d=t.compile,null===o?i&&delete l[i]:(o=d?d.call(l,i,o,s,0):o,i&&(l[i]=o)),d&&o&&(o._is=e),o&&(a=ae.onStore[e])&&a(i,o,d),o}var r=e+"s";Y[r]=n}function M(e){le[e]=function(t){return arguments.length?(de[e]=t,le):de[e]}}function $(e){function t(t,n){this.tgt=e.getTgt(t,n)}return te(e)&&(e={getTgt:e}),e.baseMap&&(e=u(u({},e.baseMap),e)),e.map=function(e,n){return new t(e,n)},e}function N(e,t,n,r,i,o){var s,a,d,u,l,p,c,f,g=r,v="";if(t===!0?(n=t,t=void 0):typeof t!==Fe&&(t=void 0),(d=this.tag)?(l=this,g=g||l.view,u=g.getTmpl(d.template||l.tmpl),arguments.length||(e=g)):u=this,u){if(!g&&e&&"view"===e._is&&(g=e),g&&e===g&&(e=g.data),p=!g,me=me||p,g||((t=t||{}).root=e),!me||ue.useViews||u.useViews||g&&g!==X)v=E(u,e,t,n,g,i,o,d);else{if(g?(c=g.data,f=g.index,g.index=Ue):(g=X,g.data=e,g.ctx=t),ne(e)&&!n)for(s=0,a=e.length;a>s;s++)g.index=s,g.data=e[s],v+=u.fn(e[s],g,ae);else g.data=e,v+=u.fn(e,g,ae);g.data=c,g.index=f}p&&(me=void 0)}return v}function E(e,t,n,r,i,o,s,a){function d(e){_=u({},n),_[x]=e}var l,p,c,f,g,v,h,m,w,x,_,y,k="";if(a&&(w=a.tagName,y=a.tagCtx,n=n?L(n,a.ctx):a.ctx,e===i.content?h=e!==i.ctx._wrp?i.ctx._wrp:void 0:e!==y.content?e===a.template?(h=y.tmpl,n._wrp=y.content):h=y.content||i.content:h=i.content,y.props.link===!1&&(n=n||{},n.link=!1),(x=y.props.itemVar)&&("~"!==x.charAt(0)&&I("Use itemVar='~myItem'"),x=x.slice(1))),i&&(s=s||i._.onRender,n=L(n,i.ctx)),o===!0&&(v=!0,o=0),s&&(n&&n.link===!1||a&&a._.noVws)&&(s=void 0),m=s,s===!0&&(m=void 0,s=i._.onRender),n=e.helpers?L(e.helpers,n):n,_=n,ne(t)&&!r)for(c=v?i:void 0!==o&&i||new b(n,"array",i,t,e,o,s),i&&i._.useKey&&(c._.bnd=!a||a._.bnd&&a),x&&(c.it=x),x=c.it,l=0,p=t.length;p>l;l++)x&&d(t[l]),f=new b(_,"item",c,t[l],e,(o||0)+l,s,h),g=e.fn(t[l],f,ae),k+=c._.onRender?c._.onRender(g,f):g;else x&&d(t),c=v?i:new b(_,w||"data",i,t,e,o,s,h),a&&!a.flow&&(c.tag=a),k+=e.fn(t,c,ae);return m?m(k,c):k}function F(e,t,n){var r=void 0!==n?te(n)?n.call(t.data,e,t):n||"":"{Error: "+e.message+"}";return de.onError&&void 0!==(n=de.onError.call(t.data,e,n&&r,t))&&(r=n),t&&!t.linkCtx?ie.html(r):r}function S(e){throw new ae.Err(e)}function I(e){S("Syntax error\n"+e)}function U(e,t,n,r,i){function o(t){t-=v,t&&m.push(e.substr(v,t).replace(_e,"\\n"))}function s(t,n){t&&(t+="}}",I((n?"{{"+n+"}} block has {{/"+t+" without {{"+t:"Unmatched or missing {{/"+t)+", in template:\n"+e))}function a(a,d,u,c,g,x,b,_,y,k,j,C){(b&&d||y&&!u||_&&":"===_.slice(-1)||k)&&I(a),x&&(g=":",c=Ee),y=y||n&&!i;var A=(d||n)&&[[]],T="",V="",R="",M="",$="",N="",E="",F="",S=!y&&!g;u=u||(_=_||"#data",g),o(C),v=C+a.length,b?f&&m.push(["*","\n"+_.replace(/^:/,"ret+= ").replace(ye,"$1")+";\n"]):u?("else"===u&&(Ce.test(_)&&I('for "{{else if expr}}" use "{{else expr}}"'),A=w[7]&&[[]],w[8]=e.substring(w[8],C),w=h.pop(),m=w[2],S=!0),_&&O(_.replace(_e," "),A,t).replace(je,function(e,t,n,r,i,o,s,a){return r="'"+i+"':",s?(V+=o+",",M+="'"+a+"',"):n?(R+=r+o+",",N+=r+"'"+a+"',"):t?E+=o:("trigger"===i&&(F+=o),T+=r+o+",",$+=r+"'"+a+"',",p=p||Re.test(i)),""}).slice(0,-1),A&&A[0]&&A.pop(),l=[u,c||!!r||p||"",S&&[],J(M||(":"===u?"'#data',":""),$,N),J(V||(":"===u?"data,":""),T,R),E,F,A||0],m.push(l),S&&(h.push(w),w=l,w[8]=v)):j&&(s(j!==w[0]&&"else"!==w[0]&&j,w[0]),w[8]=e.substring(w[8],C),w=h.pop()),s(!w&&j),m=w[2]}var d,u,l,p,c,f=de.allowCode||t&&t.allowCode||le.allowCode===!0,g=[],v=0,h=[],m=g,w=[,,g];if(f&&(t.allowCode=f),n&&(void 0!==r&&(e=e.slice(0,-r.length-2)+ge),e=pe+e+ge),s(h[0]&&h[0][2].pop()[0]),e.replace(G,a),o(e.length),(v=g[g.length-1])&&s(""+v!==v&&+v[8]===v[8]&&v[0]),n){for(u=B(g,e,n),c=[],d=g.length;d--;)c.unshift(g[d][7]);q(u,c)}else u=B(g,t);return u}function q(e,t){var n,r,i=0,o=t.length;for(e.deps=[];o>i;i++){r=t[i];for(n in r)"_jsvto"!==n&&r[n].length&&(e.deps=e.deps.concat(r[n]))}e.paths=r}function J(e,t,n){return[e.slice(0,-1),t.slice(0,-1),n.slice(0,-1)]}function K(e,t){return"\n "+(t?t+":{":"")+"args:["+e[0]+"]"+(e[1]||!t?",\n props:{"+e[1]+"}":"")+(e[2]?",\n ctx:{"+e[2]+"}":"")}function O(e,t,n){function r(r,m,w,x,b,_,y,k,j,C,A,T,V,R,M,$,N,E,F,S){function q(e,n,r,s,a,d,p,c){var f="."===r;if(r&&(b=b.slice(n.length),/^\.?constructor$/.test(c||b)&&I(e),f||(e=(s?'view.hlp("'+s+'")':a?"view":"data")+(c?(d?"."+d:s?"":a?"":"."+r)+(p||""):(c=s?"":a?d||"":r,"")),e+=c?"."+c:"",e=n+("view.data"===e.slice(0,9)?e.slice(5):e)),u)){if(O="linkTo"===i?o=t._jsvto=t._jsvto||[]:l.bd,B=f&&O[O.length-1]){if(B._jsv){for(;B.sb;)B=B.sb;B.bnd&&(b="^"+b.slice(1)),B.sb=b,B.bnd=B.bnd||"^"===b.charAt(0)}}else O.push(b);h[g]=F+(f?1:0)}return e}x=u&&x,x&&!k&&(b=x+b),_=_||"",w=w||m||T,b=b||j,C=C||N||"";var J,K,O,B,L,Q=")";if("["===C&&(C="[j._sq(",Q=")]"),!y||d||a){if(u&&$&&!d&&!a&&(!i||s||o)&&(J=h[g-1],S.length-1>F-(J||0))){if(J=S.slice(J,F+r.length),K!==!0)if(O=o||p[g-1].bd,B=O[O.length-1],B&&B.prm){for(;B.sb&&B.sb.prm;)B=B.sb;L=B.sb={path:B.sb,bnd:B.bnd}}else O.push(L={path:O.pop()});$=ce+":"+J+" onerror=''"+fe,K=f[$],K||(f[$]=!0,f[$]=K=U($,n,!0)),K!==!0&&L&&(L._jsv=K,L.prm=l.bd,L.bnd=L.bnd||L.path&&L.path.indexOf("^")>=0)}return d?(d=!V,d?r:T+'"'):a?(a=!R,a?r:T+'"'):(w?(h[g]=F++,l=p[++g]={bd:[]},w):"")+(E?g?"":(c=S.slice(c,F),(i?(i=s=o=!1,"\b"):"\b,")+c+(c=F+r.length,u&&t.push(l.bd=[]),"\b")):k?(g&&I(e),u&&t.pop(),i=b,s=x,c=F+r.length,x&&(u=l.bd=t[i]=[]),b+":"):b?b.split("^").join(".").replace(xe,q)+(C?(l=p[++g]={bd:[]},v[g]=Q,C):_):_?_:M?(M=v[g]||M,v[g]=!1,l=p[--g],M+(C?(l=p[++g],v[g]=Q,C):"")):A?(v[g]||I(e),","):m?"":(d=V,a=R,'"'))}I(e)}var i,o,s,a,d,u=t&&t[0],l={bd:u},p={0:l},c=0,f=n?n.links:u&&(u.links=u.links||{}),g=0,v={},h={},m=(e+(n?" ":"")).replace(be,r);return!g&&m||I(e)}function B(e,t,n){var r,i,o,s,a,d,u,l,p,c,f,g,v,h,m,w,x,b,_,y,k,j,C,A,T,R,M,$,N,E,F=0,S=ue.useViews||t.useViews||t.tags||t.templates||t.helpers||t.converters,U="",J={},O=e.length;for(""+t===t?(b=n?'data-link="'+t.replace(_e," ").slice(1,-1)+'"':t,t=0):(b=t.tmplName||"unnamed",t.allowCode&&(J.allowCode=!0),t.debug&&(J.debug=!0),f=t.bnds,x=t.tmpls),r=0;O>r;r++)if(i=e[r],""+i===i)U+='\n+"'+i+'"';else if(o=i[0],"*"===o)U+=";\n"+i[1]+"\nret=ret";else{if(s=i[1],k=!n&&i[2],a=K(i[3],"params")+"},"+K(v=i[4]),$=i[5],E=i[6],j=i[8]&&i[8].replace(ye,"$1"),(T="else"===o)?g&&g.push(i[7]):(F=0,f&&(g=i[7])&&(g=[g],F=f.push(1))),S=S||v[1]||v[2]||g||/view.(?!index)/.test(v[0]),(R=":"===o)?s&&(o=s===Ee?">":s+o):(k&&(_=V(j,J),_.tmplName=b+"/"+o,_.useViews=_.useViews||S,B(k,_),S=_.useViews,x.push(_)),T||(y=o,S=S||o&&(!se[o]||!se[o].flow),A=U,U=""),C=e[r+1],C=C&&"else"===C[0]),N=$?";\ntry{\nret+=":"\n+",h="",m="",R&&(g||E||s&&s!==Ee)){if(M=new Function("data,view,j,u"," // "+b+" "+F+" "+o+"\nreturn {"+a+"};"),M._er=$,M._tag=o,n)return M;q(M,g),w='c("'+s+'",view,',c=!0,h=w+F+",",m=")"}if(U+=R?(n?($?"try{\n":"")+"return ":N)+(c?(c=void 0,S=p=!0,w+(g?(f[F-1]=M,F):"{"+a+"}")+")"):">"===o?(u=!0,"h("+v[0]+")"):(l=!0,"((v="+v[0]+")!=null?v:"+(n?"null)":'"")'))):(d=!0,"\n{view:view,tmpl:"+(k?x.length:"0")+","+a+"},"),y&&!C){if(U="["+U.slice(0,-1)+"]",w='t("'+y+'",view,this,',n||g){if(U=new Function("data,view,j,u"," // "+b+" "+F+" "+y+"\nreturn "+U+";"),U._er=$,U._tag=y,g&&q(f[F-1]=U,g),n)return U;h=w+F+",undefined,",m=")"}U=A+N+w+(F||U)+")",g=0,y=0}$&&(S=!0,U+=";\n}catch(e){ret"+(n?"urn ":"+=")+h+"j._err(e,view,"+$+")"+m+";}"+(n?"":"ret=ret"))}U="// "+b+"\nvar v"+(d?",t=j._tag":"")+(p?",c=j._cnvt":"")+(u?",h=j._html":"")+(n?";\n":',ret=""\n')+(J.debug?"debugger;":"")+U+(n?"\n":";\nreturn ret;"),de.debugMode!==!1&&(U="try {\n"+U+"\n}catch(e){\nreturn j._err(e, view);\n}");try{U=new Function("data,view,j,u",U)}catch(L){I("Compiled template code:\n\n"+U+'\n: "'+L.message+'"')}return t&&(t.fn=U,t.useViews=!!S),U}function L(e,t){return e&&e!==t?t?u(u({},t),e):e:t&&u({},t)}function Q(e){return Ne[e]||(Ne[e]="&#"+e.charCodeAt(0)+";")}function H(e){var t,n,r=[];if(typeof e===Fe)for(t in e)n=e[t],t===ee||te(n)||r.push({key:t,prop:n});return r}function P(e,n,r){var i=this.jquery&&(this[0]||S('Unknown template: "'+this.selector+'"')),o=i.getAttribute(Se);return N.call(o?t.data(i)[Ie]:re(i),e,n,r)}function D(e){return void 0!=e?Ve.test(e)&&(""+e).replace(Me,Q)||e:""}var Z=t===!1;t=t&&t.fn?t:e.jQuery;var z,G,W,X,Y,ee,te,ne,re,ie,oe,se,ae,de,ue,le,pe,ce,fe,ge,ve,he,me,we="v0.9.78",xe=/^(!*?)(?:null|true|false|\d[\d.]*|([\w$]+|\.|~([\w$]+)|#(view|([\w$]+))?)([\w$.^]*?)(?:[.[^]([\w$]+)\]?)?)$/g,be=/(\()(?=\s*\()|(?:([([])\s*)?(?:(\^?)(!*?[#~]?[\w$.^]+)?\s*((\+\+|--)|\+|-|&&|\|\||===|!==|==|!=|<=|>=|[<>%*:?\/]|(=))\s*|(!*?[#~]?[\w$.^]+)([([])?)|(,\s*)|(\(?)\\?(?:(')|("))|(?:\s*(([)\]])(?=\s*[.^]|\s*$|[^([])|[)\]])([([]?))|(\s+)/g,_e=/[ \t]*(\r\n|\n|\r)/g,ye=/\\(['"])/g,ke=/['"\\]/g,je=/(?:\x08|^)(onerror:)?(?:(~?)(([\w$_\.]+):)?([^\x08]+))\x08(,)?([^\x08]+)/gi,Ce=/^if\s/,Ae=/<(\w+)[>\s]/,Te=/[\x00`><"'&=]/g,Ve=/[\x00`><\"'&=]/,Re=/^on[A-Z]|^convert(Back)?$/,Me=Te,$e=0,Ne={"&":"&amp;","<":"&lt;",">":"&gt;","\x00":"&#0;","'":"&#39;",'"':"&#34;","`":"&#96;","=":"&#61;"},Ee="html",Fe="object",Se="data-jsv-tmpl",Ie="jsvTmpl",Ue="For #index in nested block use #getIndex().",qe={},Je=e.jsrender,Ke=Je&&t&&!t.render,Oe={template:{compile:j},tag:{compile:y},viewModel:{compile:T},helper:{},converter:{}};if(Y={jsviews:we,sub:{View:b,Err:d,tmplFn:U,parse:O,extend:u,extendCtx:L,syntaxErr:I,onStore:{},addSetting:M,settings:{allowCode:!1},advSet:s,_ths:i,_tg:function(){},_cnvt:h,_tag:x,_er:S,_err:F,_html:D,_sq:function(e){return"constructor"===e&&I(""),e}},settings:{delimiters:l,advanced:function(e){return e?(u(ue,e),ae.advSet(),le):ue}},map:$},(d.prototype=new Error).constructor=d,c.depends=function(){return[this.get("item"),"index"]},f.depends="index",b.prototype={get:p,getIndex:f,getRsc:w,getTmpl:v,hlp:g,_is:"view"},ae=Y.sub,le=Y.settings,!(Je||t&&t.render)){for(z in Oe)R(z,Oe[z]);ie=Y.converters,oe=Y.helpers,se=Y.tags,ae._tg.prototype={baseApply:k,cvtArgs:m},X=ae.topView=new b,t?(t.fn.render=P,ee=t.expando,t.observable&&(u(ae,t.views.sub),Y.map=t.views.map)):(t={},Z&&(e.jsrender=t),t.renderFile=t.__express=t.compile=function(){throw"Node.js: use npm jsrender, or jsrender-node.js"},t.isFunction=function(e){return"function"==typeof e},t.isArray=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},ae._jq=function(e){e!==t&&(u(e,t),t=e,t.fn.render=P,delete t.jsrender,ee=t.expando)},t.jsrender=we),de=ae.settings,de.allowCode=!1,te=t.isFunction,ne=t.isArray,t.render=qe,t.views=Y,t.templates=re=Y.templates;for(he in de)M(he);(le.debugMode=function(e){return void 0===e?de.debugMode:(de.debugMode=e,de.onError=e+""===e?new Function("","return '"+e+"';"):te(e)?e:void 0,le)})(!1),ue=de.advanced={useViews:!1,_jsv:!1},se({"if":{render:function(e){var t=this,n=t.tagCtx,r=t.rendering.done||!e&&(arguments.length||!n.index)?"":(t.rendering.done=!0,t.selected=n.index,n.render(n.view,!0));return r},flow:!0},"for":{render:function(e){var t,n=!arguments.length,r=this,i=r.tagCtx,o="",s=0;return r.rendering.done||(t=n?i.view.data:e,void 0!==t&&(o+=i.render(t,n),s+=ne(t)?t.length:1),(r.rendering.done=s)&&(r.selected=i.index)),o},flow:!0},props:{baseTag:"for",dataMap:$(H),flow:!0},include:{flow:!0},"*":{render:o,flow:!0},":*":{render:o,flow:!0},dbg:oe.dbg=ie.dbg=a}),ie({html:D,attr:D,url:function(e){return void 0!=e?encodeURI(""+e):null===e?e:""}})}return de=ae.settings,le.delimiters("{{","}}","^"),Ke&&Je.views.sub._jq(t),t||Je},window);
+//# sourceMappingURL=jsrender.min.js.map
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js
index 259271df3..9f9eda1e1 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerBtn.js
@@ -55,8 +55,8 @@ function layerBtnsInit() {
});
});
- $(".build-recipe-btn").unbind('click');
- $(".build-recipe-btn").click(function(e){
+ $("td .build-recipe-btn").unbind('click');
+ $("td .build-recipe-btn").click(function(e){
e.preventDefault();
var recipe = $(this).data('recipe-name');
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js
index 825f9dccd..e9622243a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerDepsModal.js
@@ -6,7 +6,12 @@
* addToProject: Whether to add layers to project on accept
* successAdd: function to run on success
*/
-function showLayerDepsModal(layer, dependencies, title, body, addToProject, successAdd) {
+function showLayerDepsModal(layer,
+ dependencies,
+ title,
+ body,
+ addToProject,
+ successAdd) {
if ($("#dependencies-modal").length === 0) {
$.get(libtoaster.ctx.htmlUrl + "/layer_deps_modal.html", function(html){
@@ -33,17 +38,20 @@ function showLayerDepsModal(layer, dependencies, title, body, addToProject, succ
var deplistHtml = "";
for (var i = 0; i < dependencies.length; i++) {
- deplistHtml += "<li><label class=\"checkbox\"><input name=\"dependencies\" value=\"";
+ deplistHtml += "<li><div class=\"checkbox\"><label><input name=\"dependencies\" value=\"";
deplistHtml += dependencies[i].id;
deplistHtml +="\" type=\"checkbox\" checked=\"checked\"/>";
deplistHtml += dependencies[i].name;
- deplistHtml += "</label></li>";
+ deplistHtml += "</label></div></li>";
}
$('#dependencies-list').html(deplistHtml);
$("#dependencies-modal").data("deps", dependencies);
- $('#dependencies-modal').modal('show');
+ /* Clear any alert notifications before showing the modal */
+ $(".alert").fadeOut(function(){
+ $('#dependencies-modal').modal('show');
+ });
/* Discard the old submission function */
$("#dependencies-modal-form").unbind('submit');
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
index d54540626..9ead393cb 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js
@@ -10,25 +10,27 @@ function layerDetailsPageInit (ctx) {
var targetTab = $("#targets-tab");
var machineTab = $("#machines-tab");
var detailsTab = $("#details-tab");
+ var editLayerSource = $("#edit-layer-source");
+ var saveSourceChangesBtn = $("#save-changes-for-switch");
+ var layerGitRefInput = $("#layer-git-ref");
+ var layerSubDirInput = $('#layer-subdir');
+
+ targetTab.on('show.bs.tab', targetsTabShow);
+ detailsTab.on('show.bs.tab', detailsTabShow);
+ machineTab.on('show.bs.tab', machinesTabShow);
/* setup the dependencies typeahead */
- libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){
+ libtoaster.makeTypeahead(layerDepInput,
+ libtoaster.ctx.layersTypeAheadUrl,
+ { include_added: "true" }, function(item){
currentLayerDepSelection = item;
-
layerDepBtn.removeAttr("disabled");
});
- $(window).on('hashchange', function(e){
- switch(window.location.hash){
- case '#machines':
- machineTab.tab('show');
- break;
- case '#recipes':
- targetTab.tab('show');
- break;
- default:
- detailsTab.tab('show');
- break;
+ /* disable the add layer button if its input field is empty */
+ layerDepInput.on("keyup",function(){
+ if ($(this).val().length === 0) {
+ layerDepBtn.attr("disabled", "disabled");
}
});
@@ -76,7 +78,7 @@ function layerDetailsPageInit (ctx) {
addRemoveDep(currentLayerDepSelection.id, true, function(){
/* Make a list item for the new layer dependency */
- var newLayerDep = $("<li><a></a><span class=\"icon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>");
+ var newLayerDep = $("<li><a></a><span class=\"glyphicon glyphicon-trash\" data-toggle=\"tooltip\" title=\"Delete\"></span></li>");
newLayerDep.data('layer-id', currentLayerDepSelection.id);
newLayerDep.children("span").tooltip();
@@ -94,11 +96,11 @@ function layerDetailsPageInit (ctx) {
/* Clear the current selection */
layerDepInput.val("");
currentLayerDepSelection = undefined;
- layerDepBtn.attr("disabled","disabled");
+ layerDepBtn.attr("disabled", "disabled");
});
});
- $(".icon-pencil").click(function (){
+ $(".glyphicon-edit").click(function (){
var mParent = $(this).parent("dd");
mParent.prev().css("margin-top", "10px");
mParent.children("form").slideDown();
@@ -106,8 +108,12 @@ function layerDetailsPageInit (ctx) {
currentVal.hide();
/* Set the current value to the input field */
mParent.find("textarea,input").val(currentVal.text());
+ /* If the input field is empty, disable the submit button */
+ if ( mParent.find("textarea,input").val().length == 0 ) {
+ mParent.find(".change-btn").attr("disabled", "disabled");
+ }
/* Hides the "Not set" text */
- mParent.children(".muted").hide();
+ mParent.children(".text-muted").hide();
/* We're editing so hide the delete icon */
mParent.children(".delete-current-value").hide();
mParent.find(".cancel").show();
@@ -128,30 +134,31 @@ function layerDetailsPageInit (ctx) {
mParent.children(".current-value").show();
/* Show the "Not set" text if we ended up with no value */
if (!mParent.children(".current-value").html()){
- mParent.children(".muted").fadeIn();
+ mParent.children(".text-muted").fadeIn();
mParent.children(".delete-current-value").hide();
} else {
mParent.children(".delete-current-value").show();
}
- mParent.children(".icon-pencil").show();
- mParent.prev().css("margin-top", "0px");
+ mParent.children(".glyphicon-edit").show();
+ mParent.prev().css("margin-top", "0");
});
});
+
function defaultAddBtnText(){
var text = " Add the "+ctx.layerVersion.name+" layer to your project";
addRmLayerBtn.text(text);
- addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>");
addRmLayerBtn.removeClass("btn-danger");
}
- detailsTab.on('show', function(){
+ function detailsTabShow(){
if (!ctx.layerVersion.inCurrentPrj)
defaultAddBtnText();
- window.location.hash = "details";
- });
+ window.location.hash = "information";
+ }
function targetsTabShow(){
if (!ctx.layerVersion.inCurrentPrj){
@@ -159,7 +166,7 @@ function layerDetailsPageInit (ctx) {
var text = " Add the "+ctx.layerVersion.name+" layer to your project "+
"to enable these recipes";
addRmLayerBtn.text(text);
- addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>");
} else {
defaultAddBtnText();
}
@@ -177,7 +184,7 @@ function layerDetailsPageInit (ctx) {
$("#no-recipes-yet").hide();
}
- targetTab.removeClass("muted");
+ targetTab.removeClass("text-muted");
if (window.location.hash === "#recipes"){
/* re run the machinesTabShow to update the text */
targetsTabShow();
@@ -192,20 +199,19 @@ function layerDetailsPageInit (ctx) {
else
$("#no-machines-yet").hide();
- machineTab.removeClass("muted");
+ machineTab.removeClass("text-muted");
if (window.location.hash === "#machines"){
/* re run the machinesTabShow to update the text */
machinesTabShow();
}
$(".select-machine-btn").click(function(e){
- if ($(this).attr("disabled") === "disabled")
+ if ($(this).hasClass("disabled"))
e.preventDefault();
});
});
- targetTab.on('show', targetsTabShow);
function machinesTabShow(){
if (!ctx.layerVersion.inCurrentPrj) {
@@ -213,7 +219,7 @@ function layerDetailsPageInit (ctx) {
var text = " Add the "+ctx.layerVersion.name+" layer to your project " +
"to enable these machines";
addRmLayerBtn.text(text);
- addRmLayerBtn.prepend("<span class=\"icon-plus\"></span>");
+ addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-plus\"></span>");
} else {
defaultAddBtnText();
}
@@ -222,8 +228,6 @@ function layerDetailsPageInit (ctx) {
window.location.hash = "machines";
}
- machineTab.on('show', machinesTabShow);
-
$(".pagesize").change(function(){
var search = libtoaster.parseUrlParams();
search.limit = this.value;
@@ -239,17 +243,17 @@ function layerDetailsPageInit (ctx) {
if (added){
/* enable and switch all the button states */
- $(".build-recipe-btn").removeAttr("disabled");
- $(".select-machine-btn").removeAttr("disabled");
+ $(".build-recipe-btn").removeClass("disabled");
+ $(".select-machine-btn").removeClass("disabled");
addRmLayerBtn.addClass("btn-danger");
addRmLayerBtn.data('directive', "remove");
addRmLayerBtn.text(" Remove the "+ctx.layerVersion.name+" layer from your project");
- addRmLayerBtn.prepend("<span class=\"icon-trash\"></span>");
+ addRmLayerBtn.prepend("<span class=\"glyphicon glyphicon-trash\"></span>");
} else {
/* disable and switch all the button states */
- $(".build-recipe-btn").attr("disabled","disabled");
- $(".select-machine-btn").attr("disabled", "disabled");
+ $(".build-recipe-btn").addClass("disabled");
+ $(".select-machine-btn").addClass("disabled");
addRmLayerBtn.removeClass("btn-danger");
addRmLayerBtn.data('directive', "add");
@@ -257,7 +261,7 @@ function layerDetailsPageInit (ctx) {
* on which tab is currently visible. Unfortunately we can't just call
* tab('show') as if it's already visible it doesn't run the event.
*/
- switch ($(".nav-pills .active a").prop('id')){
+ switch ($(".nav-tabs .active a").prop('id')){
case 'machines-tab':
machinesTabShow();
break;
@@ -286,7 +290,7 @@ function layerDetailsPageInit (ctx) {
setLayerInCurrentPrj(add);
- $("#alert-area").show();
+ libtoaster.showChangeNotification(alertMsg);
});
});
@@ -325,7 +329,7 @@ function layerDetailsPageInit (ctx) {
text = entryElement.val();
/* Hide the "Not set" text if it's visible */
- inputArea.find(".muted").hide();
+ inputArea.find(".text-muted").hide();
inputArea.find(".current-value").text(text);
/* Same behaviour as cancel in that we hide the form/show current
* value.
@@ -343,9 +347,9 @@ function layerDetailsPageInit (ctx) {
/* Disable the change button when we have no data in the input */
$("dl input, dl textarea").on("input",function() {
if ($(this).val().length === 0)
- $(this).parent().children(".change-btn").attr("disabled", "disabled");
+ $(this).parent().next(".change-btn").attr("disabled", "disabled");
else
- $(this).parent().children(".change-btn").removeAttr("disabled");
+ $(this).parent().next(".change-btn").removeAttr("disabled");
});
/* This checks to see if the dt's dd has data in it or if the change data
@@ -355,11 +359,11 @@ function layerDetailsPageInit (ctx) {
if ($(this).is("dt")) {
var dd = $(this).next("dd");
if (!dd.children("form:visible")|| !dd.find(".current-value").html()){
- if (ctx.layerVersion.sourceId == 3){
+ if (ctx.layerVersion.layer_source == ctx.layerSourceTypes.TYPE_IMPORTED){
/* There's no current value and the layer is editable
* so show the "Not set" and hide the delete icon
*/
- dd.find(".muted").show();
+ dd.find(".text-muted").show();
dd.find(".delete-current-value").hide();
} else {
/* We're not viewing an editable layer so hide the empty dd/dl pair */
@@ -386,10 +390,132 @@ function layerDetailsPageInit (ctx) {
$(this).parents("form").submit();
});
+ $("#layer-delete-confirmed").click(function(){
+
+ $("#delete-layer-modal button[data-dismiss='modal']").hide();
+
+ var message = $('<span>You have deleted <strong>1</strong> layer from your project: <strong id="deleted-layer-name"></strong>');
+ message.find("#deleted-layer-name").text(ctx.layerVersion.name);
- layerDepsList.find(".icon-trash").click(layerDepRemoveClick);
+ $.ajax({
+ type: "DELETE",
+ url: ctx.xhrUpdateLayerUrl,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function(data) {
+ if (data.error != "ok") {
+ console.warn(data.error);
+ } else {
+ libtoaster.setNotification("layer-deleted", message.html());
+ window.location.replace(data.gotoUrl);
+ }
+ },
+ error: function(data) {
+ console.warn("Call failed");
+ console.warn(data);
+ }
+ });
+ });
+
+ layerDepsList.find(".glyphicon-trash").click(layerDepRemoveClick);
layerDepsList.find("a").tooltip();
- $(".icon-trash").tooltip();
+ $(".glyphicon-trash").tooltip();
$(".commit").tooltip();
+ editLayerSource.click(function() {
+ /* Kindly bring the git layers imported from layerindex to normal page
+ * and not this new page :(
+ */
+ $(this).hide();
+ saveSourceChangesBtn.attr("disabled", "disabled");
+
+ $("#git-repo-info, #directory-info").hide();
+ $("#edit-layer-source-form").fadeIn();
+ if ($("#layer-dir-path-in-details").val() == "") {
+ //Local dir path is empty...
+ $("#repo").prop("checked", true);
+ $("#layer-git").fadeIn();
+ $("#layer-dir").hide();
+ } else {
+ $("#layer-git").hide();
+ $("#layer-dir").fadeIn();
+ }
+ });
+
+ $('input:radio[name="source-location"]').change(function() {
+ if ($('input[name=source-location]:checked').val() == "repo") {
+ $("#layer-git").fadeIn();
+ $("#layer-dir").hide();
+ if ($("#layer-git-repo-url").val().length === 0 && layerGitRefInput.val().length === 0) {
+ saveSourceChangesBtn.attr("disabled", "disabled");
+ }
+ } else {
+ $("#layer-dir").fadeIn();
+ $("#layer-git").hide();
+ }
+ });
+
+ $("#layer-dir-path-in-details").keyup(function() {
+ saveSourceChangesBtn.removeAttr("disabled");
+ });
+
+ $("#layer-git-repo-url").keyup(function() {
+ if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) {
+ saveSourceChangesBtn.removeAttr("disabled");
+ }
+ });
+
+ layerGitRefInput.keyup(function() {
+ if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) {
+ saveSourceChangesBtn.removeAttr("disabled");
+ }
+ });
+
+
+ layerSubDirInput.keyup(function(){
+ if ($(this).val().length > 0){
+ saveSourceChangesBtn.removeAttr("disabled");
+ }
+ });
+
+ $('#cancel-changes-for-switch').click(function() {
+ $("#edit-layer-source-form").hide();
+ $("#directory-info, #git-repo-info").fadeIn();
+ editLayerSource.show();
+ });
+
+ saveSourceChangesBtn.click(function() {
+
+ var layerData = {
+ vcs_url: $('#layer-git-repo-url').val(),
+ commit: layerGitRefInput.val(),
+ dirpath: layerSubDirInput.val(),
+ local_source_dir: $('#layer-dir-path-in-details').val(),
+ };
+
+ if ($('input[name=source-location]:checked').val() == "repo") {
+ layerData.local_source_dir = "";
+ } else {
+ layerData.vcs_url = "";
+ layerData.git_ref = "";
+ }
+
+ $.ajax({
+ type: "POST",
+ url: ctx.xhrUpdateLayerUrl,
+ data: layerData,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error != "ok") {
+ console.warn(data.error);
+ } else {
+ /* success layer property changed */
+ window.location.reload();
+ }
+ },
+ error: function (data) {
+ console.warn("Call failed");
+ console.warn(data);
+ }
+ });
+ });
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/libtoaster.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
index 43930a2c3..86662b7a6 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/libtoaster.js
@@ -3,96 +3,82 @@
* This object really just helps readability since we can then have
* a traceable namespace.
*/
-var libtoaster = (function (){
-
- /* makeTypeahead parameters
- * elementSelector: JQuery elementSelector string
- * xhrUrl: the url to get the JSON from expects JSON in the form:
- * { "list": [ { "name": "test", "detail" : "a test thing" }, .... ] }
+var libtoaster = (function () {
+ // prevent conflicts with Bootstrap 2's typeahead (required during
+ // transition from v2 to v3)
+ var typeahead = jQuery.fn.typeahead.noConflict();
+ jQuery.fn._typeahead = typeahead;
+
+ /* Make a typeahead from an input element
+ *
+ * _makeTypeahead parameters
+ * jQElement: input element as selected by $('selector')
+ * xhrUrl: the url to get the JSON from; this URL should return JSON in the
+ * format:
+ * { "results": [ { "name": "test", "detail" : "a test thing" }, ... ] }
* xhrParams: the data/parameters to pass to the getJSON url e.g.
- * { 'type' : 'projects' } the text typed will be passed as 'search'.
- * selectedCB: function to call once an item has been selected one
- * arg of the item.
+ * { 'type' : 'projects' }; the text typed will be passed as 'search'.
+ * selectedCB: function to call once an item has been selected; has
+ * signature selectedCB(item), where item is an item in the format shown
+ * in the JSON list above, i.e.
+ * { "name": "name", "detail": "detail" }.
*/
- function _makeTypeahead (jQElement, xhrUrl, xhrParams, selectedCB) {
- if (!xhrUrl || xhrUrl.length === 0)
- throw("No url to typeahead supplied");
+ function _makeTypeahead(jQElement, xhrUrl, xhrParams, selectedCB) {
+ if (!xhrUrl || xhrUrl.length === 0) {
+ throw("No url supplied for typeahead");
+ }
var xhrReq;
- jQElement.typeahead({
- // each time the typeahead's choices change, a
- // "typeahead-choices-change" event is fired with an object
- // containing the available choices in a "choices" property
- source: function(query, process){
+ jQElement._typeahead(
+ {
+ highlight: true,
+ classNames: {
+ open: "dropdown-menu",
+ cursor: "active"
+ }
+ },
+ {
+ source: function (query, syncResults, asyncResults) {
xhrParams.search = query;
- /* If we have a request in progress don't fire off another one*/
- if (xhrReq)
+ // if we have a request in progress, cancel it and start another
+ if (xhrReq) {
xhrReq.abort();
+ }
- xhrReq = $.getJSON(xhrUrl, this.options.xhrParams, function(data){
+ xhrReq = $.getJSON(xhrUrl, xhrParams, function (data) {
if (data.error !== "ok") {
- console.log("Error getting data from server "+data.error);
+ console.error("Error getting data from server: " + data.error);
return;
}
xhrReq = null;
- jQElement.trigger("typeahead-choices-change", {choices: data.results});
-
- return process(data.results);
+ asyncResults(data.results);
});
},
- updater: function(item) {
- var itemObj = this.$menu.find('.active').data('itemObject');
- selectedCB(itemObj);
- return item;
- },
- matcher: function(item) {
- if (!item.hasOwnProperty('name')) {
- console.log("Name property missing in data");
- return 0;
- }
-
- if (this.$element.val().length === 0)
- return 0;
- return 1;
- },
- highlighter: function (item) {
- /* Use jquery to escape the item name and detail */
- var current = $("<span></span>").text(item.name + ' '+item.detail);
- current = current.html();
-
- var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
- return current.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
- return '<strong>' + match + '</strong>'
- })
+ // how the selected item is shown in the input
+ display: function (item) {
+ return item.name;
},
- sorter: function (items) { return items; },
- xhrUrl: xhrUrl,
- xhrParams: xhrParams,
- xhrReq: xhrReq,
- });
-
-
- /* Copy of bootstrap's render func but sets selectedObject value */
- function customRenderFunc (items) {
- var that = this;
- items = $(items).map(function (i, item) {
- i = $(that.options.item).attr('data-value', item.name).data('itemObject', item);
- i.find('a').html(that.highlighter(item));
- return i[0];
- });
-
- items.first().addClass('active');
- this.$menu.html(items);
- return this;
- }
+ templates: {
+ // how the item is displayed in the dropdown
+ suggestion: function (item) {
+ var elt = document.createElement("div");
+ elt.innerHTML = item.name + " " + item.detail;
+ return elt;
+ }
+ }
+ }
+ );
- jQElement.data('typeahead').render = customRenderFunc;
+ // when an item is selected using the typeahead, invoke the callback
+ jQElement.on("typeahead:select", function (event, item) {
+ selectedCB(item);
+ });
}
/* startABuild:
@@ -162,11 +148,25 @@ var libtoaster = (function (){
});
}
+ function _getMostRecentBuilds(url, onsuccess, onfail) {
+ $.ajax({
+ url: url,
+ type: 'GET',
+ data : {format: 'json'},
+ headers: {'X-CSRFToken': $.cookie('csrftoken')},
+ success: function (data) {
+ onsuccess ? onsuccess(data) : console.log(data);
+ },
+ error: function (data) {
+ onfail ? onfail(data) : console.error(data);
+ }
+ });
+ }
+
/* Get a project's configuration info */
function _getProjectInfo(url, onsuccess, onfail){
$.ajax({
type: "GET",
- data : { format: "json" },
url: url,
headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
success: function (_data) {
@@ -193,7 +193,7 @@ var libtoaster = (function (){
function _editCurrentProject(data, onSuccess, onFail){
$.ajax({
type: "POST",
- url: libtoaster.ctx.projectPageUrl + "?format=json",
+ url: libtoaster.ctx.xhrProjectUrl,
data: data,
headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
success: function (data) {
@@ -314,11 +314,11 @@ var libtoaster = (function (){
var alertMsg;
if (layerDepsList.length > 0 && add === true) {
- alertMsg = $("<span>You have added <strong>"+(layerDepsList.length+1)+"</strong> layers to your project: <a id=\"layer-affected-name\"></a> and its dependencies </span>");
+ alertMsg = $("<span>You have added <strong>"+(layerDepsList.length+1)+"</strong> layers to your project: <a class=\"alert-link\" id=\"layer-affected-name\"></a> and its dependencies </span>");
/* Build the layer deps list */
layerDepsList.map(function(layer, i){
- var link = $("<a></a>");
+ var link = $("<a class=\"alert-link\"></a>");
link.attr("href", layer.layerdetailurl);
link.text(layer.name);
@@ -330,9 +330,9 @@ var libtoaster = (function (){
alertMsg.append(link);
});
} else if (layerDepsList.length === 0 && add === true) {
- alertMsg = $("<span>You have added <strong>1</strong> layer to your project: <a id=\"layer-affected-name\"></a></span></span>");
+ alertMsg = $("<span>You have added <strong>1</strong> layer to your project: <a class=\"alert-link\" id=\"layer-affected-name\"></a></span></span>");
} else if (add === false) {
- alertMsg = $("<span>You have removed <strong>1</strong> layer from your project: <a id=\"layer-affected-name\"></a></span>");
+ alertMsg = $("<span>You have removed <strong>1</strong> layer from your project: <a class=\"alert-link\" id=\"layer-affected-name\"></a></span>");
}
alertMsg.children("#layer-affected-name").text(layer.name);
@@ -342,10 +342,12 @@ var libtoaster = (function (){
}
function _showChangeNotification(message){
- var alertMsg = $("#change-notification-msg");
+ $(".alert-dismissible").fadeOut().promise().done(function(){
+ var alertMsg = $("#change-notification-msg");
- alertMsg.html(message);
- $("#change-notification, #change-notification *").fadeIn();
+ alertMsg.html(message);
+ $("#change-notification, #change-notification *").fadeIn();
+ });
}
function _createCustomRecipe(name, baseRecipeId, doneCb){
@@ -374,11 +376,98 @@ var libtoaster = (function (){
});
}
+ /* Validate project names. Use unique project names
+
+ All arguments accepted by this function are JQeury objects.
+
+ For example if the HTML element has "hint-error-project-name", then
+ it is passed to this function as $("#hint-error-project-name").
+
+ Arg1 - projectName : This is a string object. In the HTML, project name will be entered here.
+ Arg2 - hintEerror : This is a jquery object which will accept span which throws error for
+ duplicate project
+ Arg3 - ctrlGrpValidateProjectName : This object holds the div with class "control-group"
+ Arg4 - enableOrDisableBtn : This object will help the API to enable or disable the form.
+ For example in the new project the create project button will be hidden if the
+ duplicate project exist. Similarly in the projecttopbar the save button will be
+ disabled if the project name already exist.
+
+ Return - This function doesn't return anything. It sets/unsets the behavior of the elements.
+ */
+
+ function _makeProjectNameValidation(projectName, hintError,
+ ctrlGrpValidateProjectName, enableOrDisableBtn ) {
+
+ function checkProjectName(projectName){
+ $.ajax({
+ type: "GET",
+ url: libtoaster.ctx.projectsTypeAheadUrl,
+ data: { 'search' : projectName },
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function(data){
+ if (data.results.length > 0 &&
+ data.results[0].name === projectName) {
+ // This project name exists hence show the error and disable
+ // the save button
+ ctrlGrpValidateProjectName.addClass('has-error');
+ hintError.show();
+ enableOrDisableBtn.attr('disabled', 'disabled');
+ } else {
+ ctrlGrpValidateProjectName.removeClass('has-error');
+ hintError.hide();
+ enableOrDisableBtn.removeAttr('disabled');
+ }
+ },
+ error: function (data) {
+ console.log(data);
+ },
+ });
+ }
+
+ /* The moment user types project name remove the error */
+ projectName.on("input", function() {
+ var projectName = $(this).val();
+ checkProjectName(projectName)
+ });
+
+ /* Validate new project name */
+ projectName.on("blur", function(){
+ var projectName = $(this).val();
+ checkProjectName(projectName)
+ });
+ }
+
+ // if true, the loading spinner for Ajax requests will be displayed
+ // if requests take more than 1200ms
+ var ajaxLoadingTimerEnabled = true;
+
+ // turn on the page-level loading spinner for Ajax requests
+ function _enableAjaxLoadingTimer() {
+ ajaxLoadingTimerEnabled = true;
+ }
+
+ // turn off the page-level loading spinner for Ajax requests
+ function _disableAjaxLoadingTimer() {
+ ajaxLoadingTimerEnabled = false;
+ }
+
+ /* Utility function to set a notification for the next page load */
+ function _setNotification(name, message){
+ var data = {
+ name: name,
+ message: message
+ };
+
+ $.cookie('toaster-notification', JSON.stringify(data), { path: '/'});
+ }
return {
+ enableAjaxLoadingTimer: _enableAjaxLoadingTimer,
+ disableAjaxLoadingTimer: _disableAjaxLoadingTimer,
reload_params : reload_params,
startABuild : _startABuild,
cancelABuild : _cancelABuild,
+ getMostRecentBuilds: _getMostRecentBuilds,
makeTypeahead : _makeTypeahead,
getProjectInfo: _getProjectInfo,
getLayerDepsForProject : _getLayerDepsForProject,
@@ -390,6 +479,8 @@ var libtoaster = (function (){
makeLayerAddRmAlertMsg : _makeLayerAddRmAlertMsg,
showChangeNotification : _showChangeNotification,
createCustomRecipe: _createCustomRecipe,
+ makeProjectNameValidation: _makeProjectNameValidation,
+ setNotification: _setNotification,
};
})();
@@ -421,10 +512,24 @@ function reload_params(params) {
window.location.href = url+"?"+callparams.join('&');
}
-
/* Things that happen for all pages */
$(document).ready(function() {
+ (function showNotificationRequest(){
+ var cookie = $.cookie('toaster-notification');
+
+ if (!cookie)
+ return;
+
+ var notificationData = JSON.parse(cookie);
+
+ libtoaster.showChangeNotification(notificationData.message);
+
+ $.removeCookie('toaster-notification', { path: "/"});
+ })();
+
+
+
var ajaxLoadingTimer;
/* If we don't have a console object which might be the case in some
@@ -493,9 +598,7 @@ $(document).ready(function() {
delay: { show : 300 }
});
- // show help bubble only on hover inside tables
- $(".hover-help").css("visibility","hidden");
-
+ // show help bubble on hover inside tables
$("table").on("mouseover", "th, td", function () {
$(this).find(".hover-help").css("visibility","visible");
});
@@ -509,14 +612,14 @@ $(document).ready(function() {
// show task type and outcome in task details pages
$(".task-info").tooltip({ container: 'body', html: true, delay: {show: 200}, placement: 'right' });
- // initialise the tooltips for the icon-pencil icons
- $(".icon-pencil").tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
+ // initialise the tooltips for the edit icons
+ $(".glyphicon-edit").tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
// initialise the tooltips for the download icons
$(".icon-download-alt").tooltip({ container: 'body', html: true, delay: { show: 200 } });
// initialise popover for debug information
- $(".icon-info-sign").popover( { placement: 'bottom', html: true, container: 'body' });
+ $(".glyphicon-info-sign").popover( { placement: 'bottom', html: true, container: 'body' });
// linking directly to tabs
$(function(){
@@ -582,7 +685,9 @@ $(document).ready(function() {
window.clearTimeout(ajaxLoadingTimer);
ajaxLoadingTimer = window.setTimeout(function() {
- $("#loading-notification").fadeIn();
+ if (libtoaster.ajaxLoadingTimerEnabled) {
+ $("#loading-notification").fadeIn();
+ }
}, 1200);
});
@@ -613,6 +718,11 @@ $(document).ready(function() {
});
}
+ /* Make sure we don't have a notification overlay a modal */
+ $(".modal").on('show.bs.modal', function(){
+ $(".alert-dismissible").fadeOut();
+ });
+
if (libtoaster.debug) {
check_for_duplicate_ids();
} else {
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/mrbsection.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/mrbsection.js
index 09117e1da..73d0935fa 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/mrbsection.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/mrbsection.js
@@ -1,33 +1,19 @@
function mrbSectionInit(ctx){
-
- var projectBuilds;
-
- if (ctx.mrbType === 'project')
- projectBuilds = true;
-
- $(".cancel-build-btn").click(function(e){
+ $('#latest-builds').on('click', '.cancel-build-btn', function(e){
+ e.stopImmediatePropagation();
e.preventDefault();
var url = $(this).data('request-url');
var buildReqIds = $(this).data('buildrequest-id');
- var banner = $(this).parents(".alert");
-
- banner.find(".progress-info").fadeOut().promise().done(function(){
- $("#cancelling-msg-" + buildReqIds).show();
- console.log("cancel build");
- libtoaster.cancelABuild(url, buildReqIds, function(){
- if (projectBuilds == false){
- /* the all builds page is not 'self updating' like thei
- * project Builds
- */
- window.location.reload();
- }
- }, null);
- });
+
+ libtoaster.cancelABuild(url, buildReqIds, function () {
+ window.location.reload();
+ }, null);
});
- $(".run-again-btn").click(function(e){
+ $('#latest-builds').on('click', '.rebuild-btn', function(e){
+ e.stopImmediatePropagation();
e.preventDefault();
var url = $(this).data('request-url');
@@ -38,58 +24,112 @@ function mrbSectionInit(ctx){
}, null);
});
+ // cached version of buildData, so we can determine whether a build has
+ // changed since it was last fetched, and update the DOM appropriately
+ var buildData = {};
- var progressTimer;
-
- if (projectBuilds === true){
- progressTimer = window.setInterval(function() {
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl,
- function(prjInfo){
- /* These two are needed because a build can be 100% and still
- * in progress due to the fact that the % done is updated at the
- * start of a task so it can be doing the last task at 100%
- */
- var inProgress = 0;
- var allPercentDone = 0;
- if (prjInfo.builds.length === 0)
- return
-
- for (var i in prjInfo.builds){
- var build = prjInfo.builds[i];
-
- if (build.outcome === "In Progress" ||
- $(".progress .bar").length > 0){
- /* Update the build progress */
- var percentDone;
-
- if (build.outcome !== "In Progress"){
- /* We have to ignore the value when it's Succeeded because it
- * goes back to 0
- */
- percentDone = 100;
- } else {
- percentDone = build.percentDone;
- inProgress++;
- }
-
- $("#build-pc-done-" + build.id).text(percentDone);
- $("#build-pc-done-title-" + build.id).attr("title", percentDone);
- $("#build-pc-done-bar-" + build.id).css("width",
- String(percentDone) + "%");
-
- allPercentDone += percentDone;
- }
- }
+ // returns the cached version of this build, or {} is there isn't a cached one
+ function getCached(build) {
+ return buildData[build.id] || {};
+ }
+
+ // returns true if a build's state changed to "Succeeded", "Failed"
+ // or "Cancelled" from some other value
+ function buildFinished(build) {
+ var cached = getCached(build);
+ return cached.state &&
+ cached.state !== build.state &&
+ (build.state == 'Succeeded' || build.state == 'Failed' ||
+ build.state == 'Cancelled');
+ }
+
+ // returns true if the state changed
+ function stateChanged(build) {
+ var cached = getCached(build);
+ return (cached.state !== build.state);
+ }
+
+ // returns true if the tasks_complete_percentage changed
+ function tasksProgressChanged(build) {
+ var cached = getCached(build);
+ return (cached.tasks_complete_percentage !== build.tasks_complete_percentage);
+ }
- if (allPercentDone === (100 * prjInfo.builds.length) && !inProgress)
+ // returns true if the number of recipes parsed/to parse changed
+ function recipeProgressChanged(build) {
+ var cached = getCached(build);
+ return (cached.recipes_parsed_percentage !== build.recipes_parsed_percentage);
+ }
+
+ function refreshMostRecentBuilds(){
+ libtoaster.getMostRecentBuilds(
+ libtoaster.ctx.mostRecentBuildsUrl,
+
+ // success callback
+ function (data) {
+ var build;
+ var tmpl;
+ var container;
+ var selector;
+ var colourClass;
+ var elements;
+
+ for (var i = 0; i < data.length; i++) {
+ build = data[i];
+
+ if (buildFinished(build)) {
+ // a build finished: reload the whole page so that the build
+ // shows up in the builds table
window.location.reload();
+ }
+ else if (stateChanged(build)) {
+ // update the whole template
+ build.warnings_pluralise = (build.warnings !== 1 ? 's' : '');
+ build.errors_pluralise = (build.errors !== 1 ? 's' : '');
+
+ tmpl = $.templates("#build-template");
+
+ html = $(tmpl.render(build));
+
+ selector = '[data-latest-build-result="' + build.id + '"] ' +
+ '[data-role="build-status-container"]';
+ container = $(selector);
+
+ // initialize bootstrap tooltips in the new HTML
+ html.find('span.glyphicon-question-sign').tooltip();
- /* Our progress bar is not still showing so shutdown the polling. */
- if ($(".progress .bar").length === 0)
- window.clearInterval(progressTimer);
+ container.html(html);
+ }
+ else if (tasksProgressChanged(build)) {
+ // update the task progress text
+ selector = '#build-pc-done-' + build.id;
+ $(selector).html(build.tasks_complete_percentage);
+
+ // update the task progress bar
+ selector = '#build-pc-done-bar-' + build.id;
+ $(selector).width(build.tasks_complete_percentage + '%');
+ }
+ else if (recipeProgressChanged(build)) {
+ // update the recipe progress text
+ selector = '#recipes-parsed-percentage-' + build.id;
+ $(selector).html(build.recipes_parsed_percentage);
+
+ // update the recipe progress bar
+ selector = '#recipes-parsed-percentage-bar-' + build.id;
+ $(selector).width(build.recipes_parsed_percentage + '%');
+ }
- });
- }, 1500);
+ buildData[build.id] = build;
+ }
+ },
+
+ // fail callback
+ function (data) {
+ console.error(data);
+ }
+ );
}
-}
+ window.setInterval(refreshMostRecentBuilds, 1500);
+ refreshMostRecentBuilds();
+}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js
index cb9ed4da0..dace8e325 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/newcustomimage_modal.js
@@ -22,26 +22,40 @@ function newCustomImageModalInit(){
var nameInput = imgCustomModal.find('input');
var invalidNameMsg = "Image names cannot contain spaces or capital letters. The only allowed special character is dash (-).";
- var duplicateNameMsg = "A recipe with this name already exists. Image names must be unique.";
+ var duplicateNameMsg = "An image with this name already exists. Image names must be unique.";
var duplicateImageInProjectMsg = "An image with this name already exists in this project."
var invalidBaseRecipeIdMsg = "Please select an image to customise.";
- // capture clicks on radio buttons inside the modal; when one is selected,
- // set the recipe on the modal
- imgCustomModal.on("click", "[name='select-image']", function (e) {
+ // set button to "submit" state and enable text entry so user can
+ // enter the custom recipe name
+ showSubmitState();
+
+ /* capture clicks on radio buttons inside the modal; when one is selected,
+ * set the recipe on the modal
+ */
+ imgCustomModal.on("click", "[name='select-image']", function(e) {
clearRecipeError();
+ $(".radio").each(function(){
+ $(this).removeClass("has-error");
+ });
var recipeId = $(e.target).attr('data-recipe');
imgCustomModal.data('recipe', recipeId);
});
newCustomImgBtn.click(function(e){
+ // disable the button and text entry
+ showLoadingState();
+
e.preventDefault();
var baseRecipeId = imgCustomModal.data('recipe');
if (!baseRecipeId) {
showRecipeError(invalidBaseRecipeIdMsg);
+ $(".radio").each(function(){
+ $(this).addClass("has-error");
+ });
return;
}
@@ -62,16 +76,37 @@ function newCustomImageModalInit(){
}
} else {
imgCustomModal.modal('hide');
+ imgCustomModal.one('hidden.bs.modal', showSubmitState);
window.location.replace(ret.url + '?notify=new');
}
});
}
});
+ // enable text entry, show "Create image" button text
+ function showSubmitState() {
+ libtoaster.enableAjaxLoadingTimer();
+ newCustomImgBtn.find('[data-role="loading-state"]').hide();
+ newCustomImgBtn.find('[data-role="submit-state"]').show();
+ newCustomImgBtn.removeAttr('disabled');
+ nameInput.removeAttr('disabled');
+ }
+
+ // disable text entry, show "Creating image..." button text;
+ // we also disabled the page-level ajax loading spinner while this spinner
+ // is active
+ function showLoadingState() {
+ libtoaster.disableAjaxLoadingTimer();
+ newCustomImgBtn.find('[data-role="submit-state"]').hide();
+ newCustomImgBtn.find('[data-role="loading-state"]').show();
+ newCustomImgBtn.attr('disabled', 'disabled');
+ nameInput.attr('disabled', 'disabled');
+ }
+
function showNameError(text){
invalidNameHelp.text(text);
invalidNameHelp.show();
- nameInput.parent().addClass('error');
+ nameInput.parent().addClass('has-error');
}
function showRecipeError(text){
@@ -92,26 +127,26 @@ function newCustomImageModalInit(){
if (nameInput.val().search(/[^a-z|0-9|-]/) != -1){
showNameError(invalidNameMsg);
newCustomImgBtn.prop("disabled", true);
- nameInput.parent().addClass('error');
+ nameInput.parent().addClass('has-error');
} else {
invalidNameHelp.hide();
newCustomImgBtn.prop("disabled", false);
- nameInput.parent().removeClass('error');
+ nameInput.parent().removeClass('has-error');
}
});
}
-// Set the image recipes which can used as the basis for the custom
-// image recipe the user is creating
-//
-// baseRecipes: a list of one or more recipes which can be
-// used as the base for the new custom image recipe in the format:
-// [{'id': <recipe ID>, 'name': <recipe name>'}, ...]
-//
-// if recipes is a single recipe, just show the text box to set the
-// name for the new custom image; if recipes contains multiple recipe objects,
-// show a set of radio buttons so the user can decide which to use as the
-// basis for the new custom image
+/* Set the image recipes which can used as the basis for the custom
+ * image recipe the user is creating
+ * baseRecipes: a list of one or more recipes which can be
+ * used as the base for the new custom image recipe in the format:
+ * [{'id': <recipe ID>, 'name': <recipe name>'}, ...]
+ *
+ * if recipes is a single recipe, just show the text box to set the
+ * name for the new custom image; if recipes contains multiple recipe objects,
+ * show a set of radio buttons so the user can decide which to use as the
+ * basis for the new custom image
+ */
function newCustomImageModalSetRecipes(baseRecipes) {
var imgCustomModal = $("#new-custom-image-modal");
var imageSelector = $('#new-custom-image-modal [data-role="image-selector"]');
@@ -124,8 +159,9 @@ function newCustomImageModalSetRecipes(baseRecipes) {
// hide the radio button container
imageSelector.hide();
- // set the single recipe ID on the modal as it's the only one
- // we can build from
+ /* set the single recipe ID on the modal as it's the only one
+ * we can build from.
+ */
imgCustomModal.data('recipe', baseRecipes[0].id);
}
else {
@@ -134,14 +170,29 @@ function newCustomImageModalSetRecipes(baseRecipes) {
for (var i = 0; i < baseRecipes.length; i++) {
var recipe = baseRecipes[i];
imageSelectRadiosContainer.append(
- '<label class="radio" data-role="image-radio">' +
- recipe.name +
- '<input type="radio" class="form-control" name="select-image" ' +
+ '<div class="radio"><label data-role="image-radio">' +
+ '<input type="radio" name="select-image" ' +
'data-recipe="' + recipe.id + '">' +
- '</label>'
+ recipe.name +
+ '</label></div>'
);
}
+ /* select the first radio button as default selection. Radio button
+ * groups should always display with an option checked
+ */
+ imageSelectRadiosContainer.find("input:radio:first").attr("checked", "checked");
+
+ /* check which radio button is selected by default inside the modal,
+ * and set the recipe on the modal accordingly
+ */
+ imageSelectRadiosContainer.find("input:radio").each(function(){
+ if ( $(this).is(":checked") ) {
+ var recipeId = $(this).attr("data-recipe");
+ imgCustomModal.data("recipe", recipeId);
+ }
+ });
+
// show the radio button container
imageSelector.show();
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projectpage.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projectpage.js
index 3013416dd..453670364 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projectpage.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projectpage.js
@@ -27,11 +27,10 @@ function projectPageInit(ctx) {
var urlParams = libtoaster.parseUrlParams();
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
+ libtoaster.getProjectInfo(libtoaster.ctx.xhrProjectUrl, function(prjInfo){
updateProjectLayers(prjInfo.layers);
updateFreqBuildRecipes(prjInfo.freqtargets);
updateProjectRelease(prjInfo.release);
- updateProjectReleases(prjInfo.releases, prjInfo.release);
/* If we're receiving a machine set from the url and it's different from
* our current machine then activate set machine sequence.
@@ -46,54 +45,13 @@ function projectPageInit(ctx) {
/* Now we're really ready show the page */
$("#project-page").show();
- });
-
- (function notificationRequest(){
-
- if (urlParams.hasOwnProperty('notify')){
- switch (urlParams.notify){
- case 'new-project':
- $("#project-created-notification").show();
- break;
- case 'layer-imported':
- layerImportedNotification();
- break;
- default:
- break;
- }
- }
- })();
-
- /* Layer imported notification */
- function layerImportedNotification(){
- var imported = $.cookie("layer-imported-alert");
- var message = "Layer imported";
-
- if (!imported)
- return;
- else
- imported = JSON.parse(imported);
-
- if (imported.deps_added.length === 0) {
- message = "You have imported <strong><a href=\""+imported.imported_layer.layerdetailurl+"\">"+imported.imported_layer.name+"</a></strong> and added it to your project.";
- } else {
- var links = "<a href=\""+imported.imported_layer.layerdetailurl+"\">"+imported.imported_layer.name+"</a>, ";
-
- imported.deps_added.map (function(item, index){
- links +='<a href="'+item.layerdetailurl+'">'+item.name+'</a>';
- /*If we're at the last element we don't want the trailing comma */
- if (imported.deps_added[index+1] !== undefined)
- links += ', ';
- });
-
- /* Length + 1 here to do deps + the imported layer */
- message = 'You have imported <strong><a href="'+imported.imported_layer.layerdetailurl+'">'+imported.imported_layer.name+'</a></strong> and added <strong>'+(imported.deps_added.length+1)+'</strong> layers to your project: <strong>'+links+'</strong>';
- }
-
- libtoaster.showChangeNotification(message);
+ /* Set the project name in the delete modal */
+ $("#delete-project-modal .project-name").text(prjInfo.name);
+ });
- $.removeCookie("layer-imported-alert", { path: "/"});
+ if (urlParams.hasOwnProperty('notify') && urlParams.notify === 'new-project'){
+ $("#project-created-notification").show();
}
/* Add/Rm layer functionality */
@@ -145,7 +103,7 @@ function projectPageInit(ctx) {
for (var i in layers){
var layerObj = layers[i];
- var projectLayer = $("<li><a></a><span class=\"icon-trash\" data-toggle=\"tooltip\" title=\"Remove\"></span></li>");
+ var projectLayer = $("<li><a></a><span class=\"glyphicon glyphicon-trash\" data-toggle=\"tooltip\" title=\"Remove\"></span></li>");
projectLayer.data('layer', layerObj);
projectLayer.children("span").tooltip();
@@ -154,7 +112,12 @@ function projectPageInit(ctx) {
link.attr("href", layerObj.layerdetailurl);
link.text(layerObj.name);
- link.tooltip({title: layerObj.vcs_url + " | "+ layerObj.vcs_reference, placement: "right"});
+
+ if (layerObj.local_source_dir) {
+ link.tooltip({title: layerObj.local_source_dir, placement: "right"});
+ } else {
+ link.tooltip({title: layerObj.vcs_url + " | "+ layerObj.vcs_reference, placement: "right"});
+ }
var trashItem = projectLayer.children("span");
trashItem.click(function (e) {
@@ -208,7 +171,7 @@ function projectPageInit(ctx) {
}
for (var i in recipes){
- var freqTargetCheck = $('<li><label class="checkbox"><input type="checkbox" /><span class="freq-target-name"></span></label></li>');
+ var freqTargetCheck = $('<li><div class="checkbox"><label><input type="checkbox" /><span class="freq-target-name"></span></label></li>');
freqTargetCheck.find(".freq-target-name").text(recipes[i]);
freqTargetCheck.find("input").val(recipes[i]);
freqTargetCheck.click(function(){
@@ -264,7 +227,9 @@ function projectPageInit(ctx) {
machineNameTitle.text(machineName);
}
- libtoaster.makeTypeahead(machineChangeInput, libtoaster.ctx.machinesTypeAheadUrl, { }, function(item){
+ libtoaster.makeTypeahead(machineChangeInput,
+ libtoaster.ctx.machinesTypeAheadUrl,
+ { }, function(item){
currentMachineAddSelection = item.name;
machineChangeBtn.removeAttr("disabled");
});
@@ -285,7 +250,7 @@ function projectPageInit(ctx) {
machineChangeCancel.click();
/* Show the alert message */
- var message = $('<span class="lead">You have changed the machine to: <strong><span id="notify-machine-name"></span></strong></span>');
+ var message = $('<span>You have changed the machine to: <strong><span id="notify-machine-name"></span></strong></span>');
message.find("#notify-machine-name").text(currentMachineAddSelection);
libtoaster.showChangeNotification(message);
},
@@ -301,146 +266,35 @@ function projectPageInit(ctx) {
releaseTitle.text(release.description);
}
- function updateProjectReleases(releases, current){
- for (var i in releases){
- var releaseOption = $("<option></option>");
- releaseOption.val(releases[i].id);
- releaseOption.text(releases[i].description);
- releaseOption.data('release', releases[i]);
-
- if (releases[i].id == current.id)
- releaseOption.attr("selected", "selected");
-
- releaseForm.children("select").append(releaseOption);
- }
- }
-
- releaseChangeFormToggle.click(function(){
- releaseForm.slideDown();
- releaseTitle.hide();
- $(this).hide();
- });
-
- cancelReleaseChange.click(function(e){
+ $("#delete-project-confirmed").click(function(e){
e.preventDefault();
- releaseForm.slideUp(function(){
- releaseTitle.show();
- releaseChangeFormToggle.show();
- });
- });
-
- function changeProjectRelease(release, layersToRm){
- libtoaster.editCurrentProject({ projectVersion : release.id },
- function(){
- /* Success */
- /* Update layers list with new layers */
- layersInPrjList.addClass('muted');
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl,
- function(prjInfo){
- layersInPrjList.children().remove();
- updateProjectLayers(prjInfo.layers);
- layersInPrjList.removeClass('muted');
- releaseChangedNotification(release, prjInfo.layers, layersToRm);
- });
- updateProjectRelease(release);
- cancelReleaseChange.click();
- });
- }
-
- /* Create a notification to show the changes to the layer configuration
- * caused by changing a release.
- */
-
- function releaseChangedNotification(release, layers, layersToRm){
-
- var message;
-
- if (layers.length === 0 && layersToRm.length === 0){
- message = $('<span><span class="lead">You have changed the project release to: <strong><span id="notify-release-name"></span></strong>.');
- message.find("#notify-release-name").text(release.description);
- libtoaster.showChangeNotification(message);
- return;
- }
-
- /* Create the whitespace separated list of layers removed */
- var layersDelList = "";
-
- layersToRm.map(function(layer, i){
- layersDelList += layer.name;
- if (layersToRm[i+1] !== undefined)
- layersDelList += ', ';
- });
-
- message = $('<span><span class="lead">You have changed the project release to: <strong><span id="notify-release-name"></span></strong>. This has caused the following changes in your project layers:</span><ul id="notify-layers-changed-list"></ul></span>');
-
- var changedList = message.find("#notify-layers-changed-list");
-
- message.find("#notify-release-name").text(release.description);
-
- /* Manually construct the list item for changed layers */
- var li = '<li><strong>'+layers.length+'</strong> layers changed to the <strong>'+release.name+'</strong> release: ';
- for (var i in layers){
- li += '<a href='+layers[i].layerdetailurl+'>'+layers[i].name+'</a>';
- if (i !== 0)
- li += ', ';
- }
-
- changedList.append($(li));
-
- /* Layers removed */
- if (layersToRm && layersToRm.length > 0){
- if (layersToRm.length == 1)
- li = '<li><strong>1</strong> layer removed: '+layersToRm[0].name+'</li>';
- else
- li = '<li><strong>'+layersToRm.length+'</strong> layers deleted: '+layersDelList+'</li>';
-
- changedList.append($(li));
- }
-
- libtoaster.showChangeNotification(message);
- }
-
- /* Show the modal dialog which gives the option to remove layers which
- * aren't compatible with the proposed release
- */
- function showReleaseLayerChangeModal(release, layers){
- var layersToRmList = releaseModal.find("#layers-to-remove-list");
- layersToRmList.text("");
-
- releaseModal.find(".proposed-release-change-name").text(release.description);
- releaseModal.data("layers", layers);
- releaseModal.data("release", release);
-
- for (var i in layers){
- layersToRmList.append($("<li></li>").text(layers[i].name));
- }
- releaseModal.modal('show');
- }
-
- $("#change-release-btn").click(function(e){
- e.preventDefault();
-
- var newRelease = releaseForm.find("option:selected").data('release');
-
- $.getJSON(ctx.testReleaseChangeUrl,
- { new_release_id: newRelease.id },
- function(layers) {
- if (layers.rows.length === 0){
- /* No layers to change for this release */
- changeProjectRelease(newRelease, []);
- } else {
- showReleaseLayerChangeModal(newRelease, layers.rows);
+ libtoaster.disableAjaxLoadingTimer();
+ $(this).find('[data-role="submit-state"]').hide();
+ $(this).find('[data-role="loading-state"]').show();
+ $(this).attr("disabled", "disabled");
+ $('#delete-project-modal [data-dismiss="modal"]').hide();
+
+ $.ajax({
+ type: 'DELETE',
+ url: libtoaster.ctx.xhrProjectUrl,
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error !== "ok") {
+ console.warn(data.error);
+ } else {
+ var msg = $('<span>You have deleted <strong>1</strong> project: <strong id="project-deleted"></strong></span>');
+
+ msg.find("#project-deleted").text(libtoaster.ctx.projectName);
+ libtoaster.setNotification("project-deleted", msg.html());
+
+ window.location.replace(data.gotoUrl);
+ }
+ },
+ error: function (data) {
+ console.warn(data);
}
});
});
- /* Release change modal accept */
- $("#change-release-and-rm-layers").click(function(){
- var layers = releaseModal.data("layers");
- var release = releaseModal.data("release");
-
- changeProjectRelease(release, layers);
- });
-
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js
index b09f974e4..92ab2d67f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/projecttopbar.js
@@ -4,7 +4,7 @@ function projectTopBarInit(ctx) {
var projectNameForm = $("#project-name-change-form");
var projectNameContainer = $("#project-name-container");
- var projectName = $("#project-name");
+ var projectName = $(".project-name");
var projectNameFormToggle = $("#project-change-form-toggle");
var projectNameChangeCancel = $("#project-name-change-cancel");
@@ -25,13 +25,14 @@ function projectTopBarInit(ctx) {
e.preventDefault();
projectNameForm.hide();
projectNameContainer.fadeIn();
+ $("#project-name-change-input").val(projectName.first().text());
});
$("#project-name-change-btn").click(function(){
var newProjectName = $("#project-name-change-input").val();
libtoaster.editCurrentProject({ projectName: newProjectName }, function (){
- projectName.html(newProjectName);
+ projectName.text(newProjectName);
libtoaster.ctx.projectName = newProjectName;
projectNameChangeCancel.click();
});
@@ -87,4 +88,10 @@ function projectTopBarInit(ctx) {
window.location.replace(libtoaster.ctx.projectBuildsUrl);
}, null);
});
+
+ /* Call makeProjectNameValidation function */
+ libtoaster.makeProjectNameValidation($("#project-name-change-input"),
+ $("#hint-error-project-name"), $("#validate-project-name"),
+ $("#project-name-change-btn"));
+
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/table.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/table.js
index f738144ae..176ce579f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/table.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/table.js
@@ -15,6 +15,7 @@ function tableInit(ctx){
orderby : null,
filter : null,
search : null,
+ default_orderby: null,
};
var defaultHiddenCols = [];
@@ -75,14 +76,21 @@ function tableInit(ctx){
if (tableData.total === 0){
tableContainer.hide();
- if ($("#no-results-special-"+ctx.tableName).length > 0) {
- /* use this page's special no-results form instead of the default */
- $("#no-results-search-input-"+ctx.tableName).val(tableParams.search);
- $("#no-results-special-"+ctx.tableName).show();
- $("#results-found-"+ctx.tableName).hide();
- } else {
- $("#new-search-input-"+ctx.tableName).val(tableParams.search);
- $("#no-results-"+ctx.tableName).show();
+ /* No results caused by a search returning nothing */
+ if (tableParams.search) {
+ if ($("#no-results-special-"+ctx.tableName).length > 0) {
+ /* use this page's special no-results form instead of the default */
+ $("#no-results-search-input-"+ctx.tableName).val(tableParams.search);
+ $("#no-results-special-"+ctx.tableName).show();
+ $("#results-found-"+ctx.tableName).hide();
+ } else {
+ $("#new-search-input-"+ctx.tableName).val(tableParams.search);
+ $("#no-results-"+ctx.tableName).show();
+ }
+ }
+ else {
+ /* No results caused by there being no data */
+ $("#empty-state-"+ctx.tableName).show();
}
table.trigger("table-done", [tableData.total, tableParams]);
@@ -90,6 +98,7 @@ function tableInit(ctx){
} else {
tableContainer.show();
$("#no-results-"+ctx.tableName).hide();
+ $("#empty-state-"+ctx.tableName).hide();
}
setupTableChrome(tableData);
@@ -101,27 +110,8 @@ function tableInit(ctx){
var row = $("<tr></tr>");
column_index = -1;
for (var key_j in tableData.rows[i]){
-
- /* if we have a static: version of a key, prefer the static: version for rendering */
- var orig_key_j = key_j;
-
- if (key_j.indexOf("static:") === 0) {
- if (key_j.substr("static:".length) in tableData.rows[i]) {
- continue;
- }
- orig_key_j = key_j.substr("static:".length)
- } else if (("static:" + key_j) in tableData.rows[i]) {
- key_j = "static:" + key_j;
- }
-
- /* we skip over un-displayable column entries */
- column_index += 1;
- if (! tableData.columns[column_index].displayable) {
- continue;
- }
-
var td = $("<td></td>");
- td.prop("class", orig_key_j);
+ td.prop("class", key_j);
if (tableData.rows[i][key_j]){
td.html(tableData.rows[i][key_j]);
}
@@ -181,6 +171,15 @@ function tableInit(ctx){
table.css("padding-bottom", 0);
tableContainer.css("visibility", "visible");
+ /* If we have a hash in the url try and highlight that item in the table */
+ if (window.location.hash){
+ var highlight = $("table a[name="+window.location.hash.replace('#',''));
+ if (highlight.length > 0){
+ highlight.parents("tr").addClass('highlight');
+ window.scroll(0, highlight.position().top - 50);
+ }
+ }
+
table.trigger("table-done", [tableData.total, tableParams]);
}
@@ -188,12 +187,14 @@ function tableInit(ctx){
if (tableChromeDone === true)
return;
- var tableHeadRow = table.find("thead");
+ var tableHeadRow = table.find("thead > tr");
var editColMenu = $("#table-chrome-"+ctx.tableName).find(".editcol");
tableHeadRow.html("");
editColMenu.html("");
+ tableParams.default_orderby = tableData.default_orderby;
+
if (!tableParams.orderby && tableData.default_orderby){
tableParams.orderby = tableData.default_orderby;
}
@@ -209,7 +210,7 @@ function tableInit(ctx){
/* Setup the help text */
if (col.help_text.length > 0) {
- var help_text = $('<i class="icon-question-sign get-help"> </i>');
+ var help_text = $('<span class="glyphicon glyphicon-question-sign get-help"> </span>');
help_text.tooltip({title: col.help_text});
header.append(help_text);
}
@@ -219,6 +220,7 @@ function tableInit(ctx){
var title = $('<a href=\"#\" ></a>');
title.data('field-name', col.field_name);
+ title.attr('data-sort-field', col.field_name);
title.text(col.title);
title.click(sortColumnClicked);
@@ -246,12 +248,12 @@ function tableInit(ctx){
} else {
/* Not orderable */
header.css("font-weight", "normal");
- header.append('<span class="muted">' + col.title + '</span> ');
+ header.append('<span class="text-muted">' + col.title + '</span> ');
}
/* Setup the filter button */
if (col.filter_name){
- var filterBtn = $('<a href="#" role="button" data-filter-on="' + col.filter_name + '" class="pull-right btn btn-mini" data-toggle="modal"><i class="icon-filter filtered"></i></a>');
+ var filterBtn = $('<a href="#" role="button" data-filter-on="' + col.filter_name + '" class="pull-right btn btn-link btn-xs" data-toggle="modal"><i class="glyphicon glyphicon-filter filtered"></i></a>');
filterBtn.data('filter-name', col.filter_name);
filterBtn.prop('id', col.filter_name);
@@ -270,7 +272,7 @@ function tableInit(ctx){
tableHeadRow.append(header);
/* Now setup the checkbox state and click handler */
- var toggler = $('<li><label class="checkbox">'+col.title+'<input type="checkbox" id="checkbox-'+ col.field_name +'" class="col-toggle" value="'+col.field_name+'" /></label></li>');
+ var toggler = $('<li><div class="checkbox"><label><input type="checkbox" id="checkbox-'+ col.field_name +'" class="col-toggle" value="'+col.field_name+'" />'+col.title+'</label></div></li>');
var togglerInput = toggler.find("input");
@@ -280,7 +282,8 @@ function tableInit(ctx){
if (col.hideable){
togglerInput.click(colToggleClicked);
} else {
- toggler.find("label").addClass("muted");
+ toggler.find("label").addClass("text-muted");
+ toggler.find("label").parent().addClass("disabled");
togglerInput.attr("disabled", "disabled");
}
@@ -297,11 +300,12 @@ function tableInit(ctx){
/* Toggles the active state of the filter button */
function filterBtnActive(filterBtn, active){
if (active) {
+ filterBtn.removeClass("btn-link");
filterBtn.addClass("btn-primary");
filterBtn.tooltip({
html: true,
- title: '<button class="btn btn-small btn-primary" onClick=\'$("#clear-filter-btn-'+ ctx.tableName +'").click();\'>Clear filter</button>',
+ title: '<button class="btn btn-sm btn-primary" onClick=\'$("#clear-filter-btn-'+ ctx.tableName +'").click();\'>Clear filter</button>',
placement: 'bottom',
delay: {
hide: 1500,
@@ -310,6 +314,7 @@ function tableInit(ctx){
});
} else {
filterBtn.removeClass("btn-primary");
+ filterBtn.addClass("btn-link");
filterBtn.tooltip('destroy');
}
}
@@ -343,29 +348,65 @@ function tableInit(ctx){
}
}
- function sortColumnClicked(e){
- e.preventDefault();
+ /* Apply an ordering to the current table.
+ *
+ * 1. Find the column heading matching the sortSpecifier
+ * 2. Set its up/down arrow and add .sorted
+ *
+ * orderby: e.g. "-started_on", "completed_on"
+ * colHeading: column heading element to activate (by showing the caret
+ * up/down, depending on sort order); if not set, the correct column
+ * heading is selected from the DOM using orderby as a key
+ */
+ function applyOrderby(orderby, colHeading) {
+ if (!orderby) {
+ return;
+ }
+
+ // We only have one sort at a time so remove existing sort indicators
+ $("#" + ctx.tableName + " th .icon-caret-down").hide();
+ $("#" + ctx.tableName + " th .icon-caret-up").hide();
+ $("#" + ctx.tableName + " th a").removeClass("sorted");
- /* We only have one sort at a time so remove any existing sort indicators */
- $("#"+ctx.tableName+" th .icon-caret-down").hide();
- $("#"+ctx.tableName+" th .icon-caret-up").hide();
- $("#"+ctx.tableName+" th a").removeClass("sorted");
+ // normalise the orderby so we can use it to find the link we want
+ // to style
+ var fieldName = orderby;
+ if (fieldName.indexOf('-') === 0) {
+ fieldName = fieldName.slice(1);
+ }
+
+ // find the table header element which corresponds to the sort field
+ // (if we don't already have it)
+ if (!colHeading) {
+ colHeading = $('[data-sort-field="' + fieldName + '"]');
+ }
+
+ colHeading.addClass("sorted");
+
+ var parent = colHeading.parent();
+
+ if (orderby.indexOf('-') === 0) {
+ parent.children('.icon-caret-up').show();
+ }
+ else {
+ parent.children('.icon-caret-down').show();
+ }
+
+ tableParams.orderby = orderby;
+ loadData(tableParams);
+ }
- var fieldName = $(this).data('field-name');
+ function sortColumnClicked(e){
+ e.preventDefault();
/* if we're already sorted sort the other way */
- if (tableParams.orderby === fieldName &&
+ var orderby = $(this).data('field-name');
+ if (tableParams.orderby === orderby &&
tableParams.orderby.indexOf('-') === -1) {
- tableParams.orderby = '-' + $(this).data('field-name');
- $(this).parent().children('.icon-caret-up').show();
- } else {
- tableParams.orderby = $(this).data('field-name');
- $(this).parent().children('.icon-caret-down').show();
+ orderby = '-' + orderby;
}
- $(this).addClass("sorted");
-
- loadData(tableParams);
+ applyOrderby(orderby, $(this));
}
function pageButtonClicked(e) {
@@ -384,11 +425,13 @@ function tableInit(ctx){
table.find("."+col).show();
} else {
table.find("."+col).hide();
- /* If we're ordered by the column we're hiding remove the order by */
+ // If we're ordered by the column we're hiding remove the order by
+ // and apply the default one instead
if (col === tableParams.orderby ||
'-' + col === tableParams.orderby){
tableParams.orderby = null;
- $("#"+ctx.tableName +" .default-orderby").click();
+
+ applyOrderby(tableParams.default_orderby);
}
}
@@ -415,23 +458,23 @@ function tableInit(ctx){
var hasNoRecords = (Number(filterActionData.count) == 0);
var actionStr = '<div class="radio">' +
- '<input type="radio" name="filter"' +
- ' value="' + filterName + '"';
+ '<label class="filter-title' +
+ (hasNoRecords ? ' text-muted' : '') + '"' +
+ ' for="' + filterName + '">' +
+ '<input type="radio" name="filter"' +
+ ' value="' + filterName + '"';
if (hasNoRecords) {
actionStr += ' disabled="disabled"';
}
actionStr += ' id="' + filterName + '">' +
- '<input type="hidden" name="filter_value" value="on"' +
- ' data-value-for="' + filterName + '">' +
- '<label class="filter-title' +
- (hasNoRecords ? ' muted' : '') + '"' +
- ' for="' + filterName + '">' +
- filterActionData.title +
- ' (' + filterActionData.count + ')' +
- '</label>' +
- '</div>';
+ '<input type="hidden" name="filter_value" value="on"' +
+ ' data-value-for="' + filterName + '">' +
+ filterActionData.title +
+ ' (' + filterActionData.count + ')' +
+ '</label>' +
+ '</div>';
var action = $(actionStr);
@@ -465,22 +508,23 @@ function tableInit(ctx){
*/
function createActionDateRange(filterName, filterValue, filterActionData) {
var action = $('<div class="radio">' +
+ '<label class="filter-title"' +
+ ' for="' + filterName + '">' +
'<input type="radio" name="filter"' +
' value="' + filterName + '" ' +
' id="' + filterName + '">' +
'<input type="hidden" name="filter_value" value=""' +
' data-value-for="' + filterName + '">' +
- '<label class="filter-title"' +
- ' for="' + filterName + '">' +
filterActionData.title +
'</label>' +
- '<input type="text" maxlength="10" class="input-small"' +
+ '<div class="form-inline form-group date-filter-controls">' +
+ '<input type="text" maxlength="10" class="form-control"' +
' data-date-from-for="' + filterName + '">' +
- '<span class="help-inline">to</span>' +
- '<input type="text" maxlength="10" class="input-small"' +
+ '<span>to</span>' +
+ '<input type="text" maxlength="10" class="form-control"' +
' data-date-to-for="' + filterName + '">' +
'<span class="help-inline get-help">(yyyy-mm-dd)</span>' +
- '</div>');
+ '</div></div>');
var radio = action.find('[type="radio"]');
var value = action.find('[data-value-for]');
@@ -621,7 +665,7 @@ function tableInit(ctx){
queryset on the table
*/
var filterActionRadios = $('#filter-actions-' + ctx.tableName);
- var filterApplyBtn = $('[data-role="filter-apply"]');
+ var filterApplyBtn = $('[data-cat="filter-apply"]');
var setApplyButtonState = function (e, filterActionValue) {
if (filterActionValue !== undefined) {
@@ -662,7 +706,7 @@ function tableInit(ctx){
if (action) {
// Setup the current selected filter; default to 'all' if
// no current filter selected
- var radioInput = action.children('input[name="filter"]');
+ var radioInput = action.find('input[name="filter"]');
if ((tableParams.filter &&
tableParams.filter === radioInput.val()) ||
filterActionData.action_name == 'all') {
@@ -788,6 +832,7 @@ function tableInit(ctx){
loadData(tableParams);
- $(this).parent().modal('hide');
+
+ $('#filter-modal-'+ctx.tableName).modal('hide');
});
}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js
index aac0ba60a..d7953de44 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/tests/test.js
@@ -2,7 +2,6 @@
/* Unit tests for Toaster's JS */
/* libtoaster tests */
-
QUnit.test("Layer alert notification", function(assert) {
var layer = {
"layerdetailurl":"/toastergui/project/1/layer/22",
@@ -43,9 +42,8 @@ QUnit.test("Layer alert notification", function(assert) {
QUnit.test("Project info", function(assert){
var done = assert.async();
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
+ libtoaster.getProjectInfo(libtoaster.ctx.xhrProjectUrl, function(prjInfo){
assert.ok(prjInfo.machine.name);
- assert.ok(prjInfo.releases.length > 0);
assert.ok(prjInfo.layers.length > 0);
assert.ok(prjInfo.freqtargets);
assert.ok(prjInfo.release);
@@ -83,11 +81,11 @@ QUnit.test("Add layer", function(assert){
}, 200);
/* Compare the number of layers before and after the add in the project */
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl, function(prjInfo){
+ libtoaster.getProjectInfo(libtoaster.ctx.xhrProjectUrl, function(prjInfo){
var origNumLayers = prjInfo.layers.length;
libtoaster.addRmLayer(layer, true, function(deps){
- libtoaster.getProjectInfo(libtoaster.ctx.projectPageUrl,
+ libtoaster.getProjectInfo(libtoaster.ctx.xhrProjectUrl,
function(prjInfo){
assert.ok(prjInfo.layers.length > origNumLayers,
"Layer not added to project");
@@ -135,10 +133,10 @@ QUnit.test("Make typeaheads", function(assert){
libtoaster.makeTypeahead(recipesT,
libtoaster.ctx.recipesTypeAheadUrl, {}, function(){});
- assert.ok(recipesT.data('typeahead'));
- assert.ok(layersT.data('typeahead'));
- assert.ok(projectsT.data('typeahead'));
- assert.ok(recipesT.data('typeahead'));
+ assert.ok(recipesT.data('ttTypeahead'));
+ assert.ok(layersT.data('ttTypeahead'));
+ assert.ok(projectsT.data('ttTypeahead'));
+ assert.ok(recipesT.data('ttTypeahead'));
});
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/typeahead.jquery.js b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/typeahead.jquery.js
new file mode 100644
index 000000000..f3efd80cb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/static/js/typeahead.jquery.js
@@ -0,0 +1,1551 @@
+/*!
+ * typeahead.js 0.11.1
+ * https://github.com/twitter/typeahead.js
+ * Copyright 2013-2015 Twitter, Inc. and other contributors; Licensed MIT
+ */
+
+(function(root, factory) {
+ if (typeof define === "function" && define.amd) {
+ define("typeahead.js", [ "jquery" ], function(a0) {
+ return factory(a0);
+ });
+ } else if (typeof exports === "object") {
+ module.exports = factory(require("jquery"));
+ } else {
+ factory(jQuery);
+ }
+})(this, function($) {
+ var _ = function() {
+ "use strict";
+ return {
+ isMsie: function() {
+ return /(msie|trident)/i.test(navigator.userAgent) ? navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2] : false;
+ },
+ isBlankString: function(str) {
+ return !str || /^\s*$/.test(str);
+ },
+ escapeRegExChars: function(str) {
+ return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+ },
+ isString: function(obj) {
+ return typeof obj === "string";
+ },
+ isNumber: function(obj) {
+ return typeof obj === "number";
+ },
+ isArray: $.isArray,
+ isFunction: $.isFunction,
+ isObject: $.isPlainObject,
+ isUndefined: function(obj) {
+ return typeof obj === "undefined";
+ },
+ isElement: function(obj) {
+ return !!(obj && obj.nodeType === 1);
+ },
+ isJQuery: function(obj) {
+ return obj instanceof $;
+ },
+ toStr: function toStr(s) {
+ return _.isUndefined(s) || s === null ? "" : s + "";
+ },
+ bind: $.proxy,
+ each: function(collection, cb) {
+ $.each(collection, reverseArgs);
+ function reverseArgs(index, value) {
+ return cb(value, index);
+ }
+ },
+ map: $.map,
+ filter: $.grep,
+ every: function(obj, test) {
+ var result = true;
+ if (!obj) {
+ return result;
+ }
+ $.each(obj, function(key, val) {
+ if (!(result = test.call(null, val, key, obj))) {
+ return false;
+ }
+ });
+ return !!result;
+ },
+ some: function(obj, test) {
+ var result = false;
+ if (!obj) {
+ return result;
+ }
+ $.each(obj, function(key, val) {
+ if (result = test.call(null, val, key, obj)) {
+ return false;
+ }
+ });
+ return !!result;
+ },
+ mixin: $.extend,
+ identity: function(x) {
+ return x;
+ },
+ clone: function(obj) {
+ return $.extend(true, {}, obj);
+ },
+ getIdGenerator: function() {
+ var counter = 0;
+ return function() {
+ return counter++;
+ };
+ },
+ templatify: function templatify(obj) {
+ return $.isFunction(obj) ? obj : template;
+ function template() {
+ return String(obj);
+ }
+ },
+ defer: function(fn) {
+ setTimeout(fn, 0);
+ },
+ debounce: function(func, wait, immediate) {
+ var timeout, result;
+ return function() {
+ var context = this, args = arguments, later, callNow;
+ later = function() {
+ timeout = null;
+ if (!immediate) {
+ result = func.apply(context, args);
+ }
+ };
+ callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow) {
+ result = func.apply(context, args);
+ }
+ return result;
+ };
+ },
+ throttle: function(func, wait) {
+ var context, args, timeout, result, previous, later;
+ previous = 0;
+ later = function() {
+ previous = new Date();
+ timeout = null;
+ result = func.apply(context, args);
+ };
+ return function() {
+ var now = new Date(), remaining = wait - (now - previous);
+ context = this;
+ args = arguments;
+ if (remaining <= 0) {
+ clearTimeout(timeout);
+ timeout = null;
+ previous = now;
+ result = func.apply(context, args);
+ } else if (!timeout) {
+ timeout = setTimeout(later, remaining);
+ }
+ return result;
+ };
+ },
+ stringify: function(val) {
+ return _.isString(val) ? val : JSON.stringify(val);
+ },
+ noop: function() {}
+ };
+ }();
+ var WWW = function() {
+ "use strict";
+ var defaultClassNames = {
+ wrapper: "twitter-typeahead",
+ input: "tt-input",
+ hint: "tt-hint",
+ menu: "tt-menu",
+ dataset: "tt-dataset",
+ suggestion: "tt-suggestion",
+ selectable: "tt-selectable",
+ empty: "tt-empty",
+ open: "tt-open",
+ cursor: "tt-cursor",
+ highlight: "tt-highlight"
+ };
+ return build;
+ function build(o) {
+ var www, classes;
+ classes = _.mixin({}, defaultClassNames, o);
+ www = {
+ css: buildCss(),
+ classes: classes,
+ html: buildHtml(classes),
+ selectors: buildSelectors(classes)
+ };
+ return {
+ css: www.css,
+ html: www.html,
+ classes: www.classes,
+ selectors: www.selectors,
+ mixin: function(o) {
+ _.mixin(o, www);
+ }
+ };
+ }
+ function buildHtml(c) {
+ return {
+ wrapper: '<span class="' + c.wrapper + '"></span>',
+ menu: '<div class="' + c.menu + '"></div>'
+ };
+ }
+ function buildSelectors(classes) {
+ var selectors = {};
+ _.each(classes, function(v, k) {
+ selectors[k] = "." + v;
+ });
+ return selectors;
+ }
+ function buildCss() {
+ var css = {
+ wrapper: {
+ position: "relative",
+ display: "inline-block"
+ },
+ hint: {
+ position: "absolute",
+ top: "0",
+ left: "0",
+ borderColor: "transparent",
+ boxShadow: "none",
+ opacity: "1"
+ },
+ input: {
+ position: "relative",
+ verticalAlign: "top",
+ backgroundColor: "transparent"
+ },
+ inputWithNoHint: {
+ position: "relative",
+ verticalAlign: "top"
+ },
+ menu: {
+ position: "absolute",
+ top: "100%",
+ left: "0",
+ zIndex: "100",
+ display: "none"
+ },
+ ltr: {
+ left: "0",
+ right: "auto"
+ },
+ rtl: {
+ left: "auto",
+ right: " 0"
+ }
+ };
+ if (_.isMsie()) {
+ _.mixin(css.input, {
+ backgroundImage: "url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"
+ });
+ }
+ return css;
+ }
+ }();
+ var EventBus = function() {
+ "use strict";
+ var namespace, deprecationMap;
+ namespace = "typeahead:";
+ deprecationMap = {
+ render: "rendered",
+ cursorchange: "cursorchanged",
+ select: "selected",
+ autocomplete: "autocompleted"
+ };
+ function EventBus(o) {
+ if (!o || !o.el) {
+ $.error("EventBus initialized without el");
+ }
+ this.$el = $(o.el);
+ }
+ _.mixin(EventBus.prototype, {
+ _trigger: function(type, args) {
+ var $e;
+ $e = $.Event(namespace + type);
+ (args = args || []).unshift($e);
+ this.$el.trigger.apply(this.$el, args);
+ return $e;
+ },
+ before: function(type) {
+ var args, $e;
+ args = [].slice.call(arguments, 1);
+ $e = this._trigger("before" + type, args);
+ return $e.isDefaultPrevented();
+ },
+ trigger: function(type) {
+ var deprecatedType;
+ this._trigger(type, [].slice.call(arguments, 1));
+ if (deprecatedType = deprecationMap[type]) {
+ this._trigger(deprecatedType, [].slice.call(arguments, 1));
+ }
+ }
+ });
+ return EventBus;
+ }();
+ var EventEmitter = function() {
+ "use strict";
+ var splitter = /\s+/, nextTick = getNextTick();
+ return {
+ onSync: onSync,
+ onAsync: onAsync,
+ off: off,
+ trigger: trigger
+ };
+ function on(method, types, cb, context) {
+ var type;
+ if (!cb) {
+ return this;
+ }
+ types = types.split(splitter);
+ cb = context ? bindContext(cb, context) : cb;
+ this._callbacks = this._callbacks || {};
+ while (type = types.shift()) {
+ this._callbacks[type] = this._callbacks[type] || {
+ sync: [],
+ async: []
+ };
+ this._callbacks[type][method].push(cb);
+ }
+ return this;
+ }
+ function onAsync(types, cb, context) {
+ return on.call(this, "async", types, cb, context);
+ }
+ function onSync(types, cb, context) {
+ return on.call(this, "sync", types, cb, context);
+ }
+ function off(types) {
+ var type;
+ if (!this._callbacks) {
+ return this;
+ }
+ types = types.split(splitter);
+ while (type = types.shift()) {
+ delete this._callbacks[type];
+ }
+ return this;
+ }
+ function trigger(types) {
+ var type, callbacks, args, syncFlush, asyncFlush;
+ if (!this._callbacks) {
+ return this;
+ }
+ types = types.split(splitter);
+ args = [].slice.call(arguments, 1);
+ while ((type = types.shift()) && (callbacks = this._callbacks[type])) {
+ syncFlush = getFlush(callbacks.sync, this, [ type ].concat(args));
+ asyncFlush = getFlush(callbacks.async, this, [ type ].concat(args));
+ syncFlush() && nextTick(asyncFlush);
+ }
+ return this;
+ }
+ function getFlush(callbacks, context, args) {
+ return flush;
+ function flush() {
+ var cancelled;
+ for (var i = 0, len = callbacks.length; !cancelled && i < len; i += 1) {
+ cancelled = callbacks[i].apply(context, args) === false;
+ }
+ return !cancelled;
+ }
+ }
+ function getNextTick() {
+ var nextTickFn;
+ if (window.setImmediate) {
+ nextTickFn = function nextTickSetImmediate(fn) {
+ setImmediate(function() {
+ fn();
+ });
+ };
+ } else {
+ nextTickFn = function nextTickSetTimeout(fn) {
+ setTimeout(function() {
+ fn();
+ }, 0);
+ };
+ }
+ return nextTickFn;
+ }
+ function bindContext(fn, context) {
+ return fn.bind ? fn.bind(context) : function() {
+ fn.apply(context, [].slice.call(arguments, 0));
+ };
+ }
+ }();
+ var highlight = function(doc) {
+ "use strict";
+ var defaults = {
+ node: null,
+ pattern: null,
+ tagName: "strong",
+ className: null,
+ wordsOnly: false,
+ caseSensitive: false
+ };
+ return function hightlight(o) {
+ var regex;
+ o = _.mixin({}, defaults, o);
+ if (!o.node || !o.pattern) {
+ return;
+ }
+ o.pattern = _.isArray(o.pattern) ? o.pattern : [ o.pattern ];
+ regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly);
+ traverse(o.node, hightlightTextNode);
+ function hightlightTextNode(textNode) {
+ var match, patternNode, wrapperNode;
+ if (match = regex.exec(textNode.data)) {
+ wrapperNode = doc.createElement(o.tagName);
+ o.className && (wrapperNode.className = o.className);
+ patternNode = textNode.splitText(match.index);
+ patternNode.splitText(match[0].length);
+ wrapperNode.appendChild(patternNode.cloneNode(true));
+ textNode.parentNode.replaceChild(wrapperNode, patternNode);
+ }
+ return !!match;
+ }
+ function traverse(el, hightlightTextNode) {
+ var childNode, TEXT_NODE_TYPE = 3;
+ for (var i = 0; i < el.childNodes.length; i++) {
+ childNode = el.childNodes[i];
+ if (childNode.nodeType === TEXT_NODE_TYPE) {
+ i += hightlightTextNode(childNode) ? 1 : 0;
+ } else {
+ traverse(childNode, hightlightTextNode);
+ }
+ }
+ }
+ };
+ function getRegex(patterns, caseSensitive, wordsOnly) {
+ var escapedPatterns = [], regexStr;
+ for (var i = 0, len = patterns.length; i < len; i++) {
+ escapedPatterns.push(_.escapeRegExChars(patterns[i]));
+ }
+ regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")";
+ return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i");
+ }
+ }(window.document);
+ var Input = function() {
+ "use strict";
+ var specialKeyCodeMap;
+ specialKeyCodeMap = {
+ 9: "tab",
+ 27: "esc",
+ 37: "left",
+ 39: "right",
+ 13: "enter",
+ 38: "up",
+ 40: "down"
+ };
+ function Input(o, www) {
+ o = o || {};
+ if (!o.input) {
+ $.error("input is missing");
+ }
+ www.mixin(this);
+ this.$hint = $(o.hint);
+ this.$input = $(o.input);
+ this.query = this.$input.val();
+ this.queryWhenFocused = this.hasFocus() ? this.query : null;
+ this.$overflowHelper = buildOverflowHelper(this.$input);
+ this._checkLanguageDirection();
+ if (this.$hint.length === 0) {
+ this.setHint = this.getHint = this.clearHint = this.clearHintIfInvalid = _.noop;
+ }
+ }
+ Input.normalizeQuery = function(str) {
+ return _.toStr(str).replace(/^\s*/g, "").replace(/\s{2,}/g, " ");
+ };
+ _.mixin(Input.prototype, EventEmitter, {
+ _onBlur: function onBlur() {
+ this.resetInputValue();
+ this.trigger("blurred");
+ },
+ _onFocus: function onFocus() {
+ this.queryWhenFocused = this.query;
+ this.trigger("focused");
+ },
+ _onKeydown: function onKeydown($e) {
+ var keyName = specialKeyCodeMap[$e.which || $e.keyCode];
+ this._managePreventDefault(keyName, $e);
+ if (keyName && this._shouldTrigger(keyName, $e)) {
+ this.trigger(keyName + "Keyed", $e);
+ }
+ },
+ _onInput: function onInput() {
+ this._setQuery(this.getInputValue());
+ this.clearHintIfInvalid();
+ this._checkLanguageDirection();
+ },
+ _managePreventDefault: function managePreventDefault(keyName, $e) {
+ var preventDefault;
+ switch (keyName) {
+ case "up":
+ case "down":
+ preventDefault = !withModifier($e);
+ break;
+
+ default:
+ preventDefault = false;
+ }
+ preventDefault && $e.preventDefault();
+ },
+ _shouldTrigger: function shouldTrigger(keyName, $e) {
+ var trigger;
+ switch (keyName) {
+ case "tab":
+ trigger = !withModifier($e);
+ break;
+
+ default:
+ trigger = true;
+ }
+ return trigger;
+ },
+ _checkLanguageDirection: function checkLanguageDirection() {
+ var dir = (this.$input.css("direction") || "ltr").toLowerCase();
+ if (this.dir !== dir) {
+ this.dir = dir;
+ this.$hint.attr("dir", dir);
+ this.trigger("langDirChanged", dir);
+ }
+ },
+ _setQuery: function setQuery(val, silent) {
+ var areEquivalent, hasDifferentWhitespace;
+ areEquivalent = areQueriesEquivalent(val, this.query);
+ hasDifferentWhitespace = areEquivalent ? this.query.length !== val.length : false;
+ this.query = val;
+ if (!silent && !areEquivalent) {
+ this.trigger("queryChanged", this.query);
+ } else if (!silent && hasDifferentWhitespace) {
+ this.trigger("whitespaceChanged", this.query);
+ }
+ },
+ bind: function() {
+ var that = this, onBlur, onFocus, onKeydown, onInput;
+ onBlur = _.bind(this._onBlur, this);
+ onFocus = _.bind(this._onFocus, this);
+ onKeydown = _.bind(this._onKeydown, this);
+ onInput = _.bind(this._onInput, this);
+ this.$input.on("blur.tt", onBlur).on("focus.tt", onFocus).on("keydown.tt", onKeydown);
+ if (!_.isMsie() || _.isMsie() > 9) {
+ this.$input.on("input.tt", onInput);
+ } else {
+ this.$input.on("keydown.tt keypress.tt cut.tt paste.tt", function($e) {
+ if (specialKeyCodeMap[$e.which || $e.keyCode]) {
+ return;
+ }
+ _.defer(_.bind(that._onInput, that, $e));
+ });
+ }
+ return this;
+ },
+ focus: function focus() {
+ this.$input.focus();
+ },
+ blur: function blur() {
+ this.$input.blur();
+ },
+ getLangDir: function getLangDir() {
+ return this.dir;
+ },
+ getQuery: function getQuery() {
+ return this.query || "";
+ },
+ setQuery: function setQuery(val, silent) {
+ this.setInputValue(val);
+ this._setQuery(val, silent);
+ },
+ hasQueryChangedSinceLastFocus: function hasQueryChangedSinceLastFocus() {
+ return this.query !== this.queryWhenFocused;
+ },
+ getInputValue: function getInputValue() {
+ return this.$input.val();
+ },
+ setInputValue: function setInputValue(value) {
+ this.$input.val(value);
+ this.clearHintIfInvalid();
+ this._checkLanguageDirection();
+ },
+ resetInputValue: function resetInputValue() {
+ this.setInputValue(this.query);
+ },
+ getHint: function getHint() {
+ return this.$hint.val();
+ },
+ setHint: function setHint(value) {
+ this.$hint.val(value);
+ },
+ clearHint: function clearHint() {
+ this.setHint("");
+ },
+ clearHintIfInvalid: function clearHintIfInvalid() {
+ var val, hint, valIsPrefixOfHint, isValid;
+ val = this.getInputValue();
+ hint = this.getHint();
+ valIsPrefixOfHint = val !== hint && hint.indexOf(val) === 0;
+ isValid = val !== "" && valIsPrefixOfHint && !this.hasOverflow();
+ !isValid && this.clearHint();
+ },
+ hasFocus: function hasFocus() {
+ return this.$input.is(":focus");
+ },
+ hasOverflow: function hasOverflow() {
+ var constraint = this.$input.width() - 2;
+ this.$overflowHelper.text(this.getInputValue());
+ return this.$overflowHelper.width() >= constraint;
+ },
+ isCursorAtEnd: function() {
+ var valueLength, selectionStart, range;
+ valueLength = this.$input.val().length;
+ selectionStart = this.$input[0].selectionStart;
+ if (_.isNumber(selectionStart)) {
+ return selectionStart === valueLength;
+ } else if (document.selection) {
+ range = document.selection.createRange();
+ range.moveStart("character", -valueLength);
+ return valueLength === range.text.length;
+ }
+ return true;
+ },
+ destroy: function destroy() {
+ this.$hint.off(".tt");
+ this.$input.off(".tt");
+ this.$overflowHelper.remove();
+ this.$hint = this.$input = this.$overflowHelper = $("<div>");
+ }
+ });
+ return Input;
+ function buildOverflowHelper($input) {
+ return $('<pre aria-hidden="true"></pre>').css({
+ position: "absolute",
+ visibility: "hidden",
+ whiteSpace: "pre",
+ fontFamily: $input.css("font-family"),
+ fontSize: $input.css("font-size"),
+ fontStyle: $input.css("font-style"),
+ fontVariant: $input.css("font-variant"),
+ fontWeight: $input.css("font-weight"),
+ wordSpacing: $input.css("word-spacing"),
+ letterSpacing: $input.css("letter-spacing"),
+ textIndent: $input.css("text-indent"),
+ textRendering: $input.css("text-rendering"),
+ textTransform: $input.css("text-transform")
+ }).insertAfter($input);
+ }
+ function areQueriesEquivalent(a, b) {
+ return Input.normalizeQuery(a) === Input.normalizeQuery(b);
+ }
+ function withModifier($e) {
+ return $e.altKey || $e.ctrlKey || $e.metaKey || $e.shiftKey;
+ }
+ }();
+ var Dataset = function() {
+ "use strict";
+ var keys, nameGenerator;
+ keys = {
+ val: "tt-selectable-display",
+ obj: "tt-selectable-object"
+ };
+ nameGenerator = _.getIdGenerator();
+ function Dataset(o, www) {
+ o = o || {};
+ o.templates = o.templates || {};
+ o.templates.notFound = o.templates.notFound || o.templates.empty;
+ if (!o.source) {
+ $.error("missing source");
+ }
+ if (!o.node) {
+ $.error("missing node");
+ }
+ if (o.name && !isValidName(o.name)) {
+ $.error("invalid dataset name: " + o.name);
+ }
+ www.mixin(this);
+ this.highlight = !!o.highlight;
+ this.name = o.name || nameGenerator();
+ this.limit = o.limit || 5;
+ this.displayFn = getDisplayFn(o.display || o.displayKey);
+ this.templates = getTemplates(o.templates, this.displayFn);
+ this.source = o.source.__ttAdapter ? o.source.__ttAdapter() : o.source;
+ this.async = _.isUndefined(o.async) ? this.source.length > 2 : !!o.async;
+ this._resetLastSuggestion();
+ this.$el = $(o.node).addClass(this.classes.dataset).addClass(this.classes.dataset + "-" + this.name);
+ }
+ Dataset.extractData = function extractData(el) {
+ var $el = $(el);
+ if ($el.data(keys.obj)) {
+ return {
+ val: $el.data(keys.val) || "",
+ obj: $el.data(keys.obj) || null
+ };
+ }
+ return null;
+ };
+ _.mixin(Dataset.prototype, EventEmitter, {
+ _overwrite: function overwrite(query, suggestions) {
+ suggestions = suggestions || [];
+ if (suggestions.length) {
+ this._renderSuggestions(query, suggestions);
+ } else if (this.async && this.templates.pending) {
+ this._renderPending(query);
+ } else if (!this.async && this.templates.notFound) {
+ this._renderNotFound(query);
+ } else {
+ this._empty();
+ }
+ this.trigger("rendered", this.name, suggestions, false);
+ },
+ _append: function append(query, suggestions) {
+ suggestions = suggestions || [];
+ if (suggestions.length && this.$lastSuggestion.length) {
+ this._appendSuggestions(query, suggestions);
+ } else if (suggestions.length) {
+ this._renderSuggestions(query, suggestions);
+ } else if (!this.$lastSuggestion.length && this.templates.notFound) {
+ this._renderNotFound(query);
+ }
+ this.trigger("rendered", this.name, suggestions, true);
+ },
+ _renderSuggestions: function renderSuggestions(query, suggestions) {
+ var $fragment;
+ $fragment = this._getSuggestionsFragment(query, suggestions);
+ this.$lastSuggestion = $fragment.children().last();
+ this.$el.html($fragment).prepend(this._getHeader(query, suggestions)).append(this._getFooter(query, suggestions));
+ },
+ _appendSuggestions: function appendSuggestions(query, suggestions) {
+ var $fragment, $lastSuggestion;
+ $fragment = this._getSuggestionsFragment(query, suggestions);
+ $lastSuggestion = $fragment.children().last();
+ this.$lastSuggestion.after($fragment);
+ this.$lastSuggestion = $lastSuggestion;
+ },
+ _renderPending: function renderPending(query) {
+ var template = this.templates.pending;
+ this._resetLastSuggestion();
+ template && this.$el.html(template({
+ query: query,
+ dataset: this.name
+ }));
+ },
+ _renderNotFound: function renderNotFound(query) {
+ var template = this.templates.notFound;
+ this._resetLastSuggestion();
+ template && this.$el.html(template({
+ query: query,
+ dataset: this.name
+ }));
+ },
+ _empty: function empty() {
+ this.$el.empty();
+ this._resetLastSuggestion();
+ },
+ _getSuggestionsFragment: function getSuggestionsFragment(query, suggestions) {
+ var that = this, fragment;
+ fragment = document.createDocumentFragment();
+ _.each(suggestions, function getSuggestionNode(suggestion) {
+ var $el, context;
+ context = that._injectQuery(query, suggestion);
+ $el = $(that.templates.suggestion(context)).data(keys.obj, suggestion).data(keys.val, that.displayFn(suggestion)).addClass(that.classes.suggestion + " " + that.classes.selectable);
+ fragment.appendChild($el[0]);
+ });
+ this.highlight && highlight({
+ className: this.classes.highlight,
+ node: fragment,
+ pattern: query
+ });
+ return $(fragment);
+ },
+ _getFooter: function getFooter(query, suggestions) {
+ return this.templates.footer ? this.templates.footer({
+ query: query,
+ suggestions: suggestions,
+ dataset: this.name
+ }) : null;
+ },
+ _getHeader: function getHeader(query, suggestions) {
+ return this.templates.header ? this.templates.header({
+ query: query,
+ suggestions: suggestions,
+ dataset: this.name
+ }) : null;
+ },
+ _resetLastSuggestion: function resetLastSuggestion() {
+ this.$lastSuggestion = $();
+ },
+ _injectQuery: function injectQuery(query, obj) {
+ return _.isObject(obj) ? _.mixin({
+ _query: query
+ }, obj) : obj;
+ },
+ update: function update(query) {
+ var that = this, canceled = false, syncCalled = false, rendered = 0;
+ this.cancel();
+ this.cancel = function cancel() {
+ canceled = true;
+ that.cancel = $.noop;
+ that.async && that.trigger("asyncCanceled", query);
+ };
+ this.source(query, sync, async);
+ !syncCalled && sync([]);
+ function sync(suggestions) {
+ if (syncCalled) {
+ return;
+ }
+ syncCalled = true;
+ suggestions = (suggestions || []).slice(0, that.limit);
+ rendered = suggestions.length;
+ that._overwrite(query, suggestions);
+ if (rendered < that.limit && that.async) {
+ that.trigger("asyncRequested", query);
+ }
+ }
+ function async(suggestions) {
+ suggestions = suggestions || [];
+ if (!canceled && rendered < that.limit) {
+ that.cancel = $.noop;
+ rendered += suggestions.length;
+
+ // HACK: because we don't have a synchronous way of
+ // retrieving results, we use the async function every
+ // time we update the drop-down; however, the typeahead
+ // does some internal book-keeping which means that we
+ // only get the additional items in the drop-down when
+ // the next set of results is fetched, instead of all
+ // of them (it appears to implicitly track which
+ // results have already been shown in the drop-down); by
+ // forcing an overwrite, we see all of the new results
+ // every time we fetch a set of suggestions
+ //that._append(query, suggestions.slice(0, that.limit - rendered));
+ that._overwrite(query, suggestions);
+
+ that.async && that.trigger("asyncReceived", query);
+ }
+ }
+ },
+ cancel: $.noop,
+ clear: function clear() {
+ this._empty();
+ this.cancel();
+ this.trigger("cleared");
+ },
+ isEmpty: function isEmpty() {
+ return this.$el.is(":empty");
+ },
+ destroy: function destroy() {
+ this.$el = $("<div>");
+ }
+ });
+ return Dataset;
+ function getDisplayFn(display) {
+ display = display || _.stringify;
+ return _.isFunction(display) ? display : displayFn;
+ function displayFn(obj) {
+ return obj[display];
+ }
+ }
+ function getTemplates(templates, displayFn) {
+ return {
+ notFound: templates.notFound && _.templatify(templates.notFound),
+ pending: templates.pending && _.templatify(templates.pending),
+ header: templates.header && _.templatify(templates.header),
+ footer: templates.footer && _.templatify(templates.footer),
+ suggestion: templates.suggestion || suggestionTemplate
+ };
+ function suggestionTemplate(context) {
+ return $("<div>").text(displayFn(context));
+ }
+ }
+ function isValidName(str) {
+ return /^[_a-zA-Z0-9-]+$/.test(str);
+ }
+ }();
+ var Menu = function() {
+ "use strict";
+ function Menu(o, www) {
+ var that = this;
+ o = o || {};
+ if (!o.node) {
+ $.error("node is required");
+ }
+ www.mixin(this);
+ this.$node = $(o.node);
+ this.query = null;
+ this.datasets = _.map(o.datasets, initializeDataset);
+ function initializeDataset(oDataset) {
+ var node = that.$node.find(oDataset.node).first();
+ oDataset.node = node.length ? node : $("<div>").appendTo(that.$node);
+ return new Dataset(oDataset, www);
+ }
+ }
+ _.mixin(Menu.prototype, EventEmitter, {
+ _onSelectableClick: function onSelectableClick($e) {
+ this.trigger("selectableClicked", $($e.currentTarget));
+ },
+ _onRendered: function onRendered(type, dataset, suggestions, async) {
+ this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());
+ this.trigger("datasetRendered", dataset, suggestions, async);
+ },
+ _onCleared: function onCleared() {
+ this.$node.toggleClass(this.classes.empty, this._allDatasetsEmpty());
+ this.trigger("datasetCleared");
+ },
+ _propagate: function propagate() {
+ this.trigger.apply(this, arguments);
+ },
+ _allDatasetsEmpty: function allDatasetsEmpty() {
+ return _.every(this.datasets, isDatasetEmpty);
+ function isDatasetEmpty(dataset) {
+ return dataset.isEmpty();
+ }
+ },
+ _getSelectables: function getSelectables() {
+ return this.$node.find(this.selectors.selectable);
+ },
+ _removeCursor: function _removeCursor() {
+ var $selectable = this.getActiveSelectable();
+ $selectable && $selectable.removeClass(this.classes.cursor);
+ },
+ _ensureVisible: function ensureVisible($el) {
+ var elTop, elBottom, nodeScrollTop, nodeHeight;
+ elTop = $el.position().top;
+ elBottom = elTop + $el.outerHeight(true);
+ nodeScrollTop = this.$node.scrollTop();
+ nodeHeight = this.$node.height() + parseInt(this.$node.css("paddingTop"), 10) + parseInt(this.$node.css("paddingBottom"), 10);
+ if (elTop < 0) {
+ this.$node.scrollTop(nodeScrollTop + elTop);
+ } else if (nodeHeight < elBottom) {
+ this.$node.scrollTop(nodeScrollTop + (elBottom - nodeHeight));
+ }
+ },
+ bind: function() {
+ var that = this, onSelectableClick;
+ onSelectableClick = _.bind(this._onSelectableClick, this);
+ this.$node.on("click.tt", this.selectors.selectable, onSelectableClick);
+ _.each(this.datasets, function(dataset) {
+ dataset.onSync("asyncRequested", that._propagate, that).onSync("asyncCanceled", that._propagate, that).onSync("asyncReceived", that._propagate, that).onSync("rendered", that._onRendered, that).onSync("cleared", that._onCleared, that);
+ });
+ return this;
+ },
+ isOpen: function isOpen() {
+ return this.$node.hasClass(this.classes.open);
+ },
+ open: function open() {
+ this.$node.addClass(this.classes.open);
+ },
+ close: function close() {
+ this.$node.removeClass(this.classes.open);
+ this._removeCursor();
+ },
+ setLanguageDirection: function setLanguageDirection(dir) {
+ this.$node.attr("dir", dir);
+ },
+ selectableRelativeToCursor: function selectableRelativeToCursor(delta) {
+ var $selectables, $oldCursor, oldIndex, newIndex;
+ $oldCursor = this.getActiveSelectable();
+ $selectables = this._getSelectables();
+ oldIndex = $oldCursor ? $selectables.index($oldCursor) : -1;
+ newIndex = oldIndex + delta;
+ newIndex = (newIndex + 1) % ($selectables.length + 1) - 1;
+ newIndex = newIndex < -1 ? $selectables.length - 1 : newIndex;
+ return newIndex === -1 ? null : $selectables.eq(newIndex);
+ },
+ setCursor: function setCursor($selectable) {
+ this._removeCursor();
+ if ($selectable = $selectable && $selectable.first()) {
+ $selectable.addClass(this.classes.cursor);
+ this._ensureVisible($selectable);
+ }
+ },
+ getSelectableData: function getSelectableData($el) {
+ return $el && $el.length ? Dataset.extractData($el) : null;
+ },
+ getActiveSelectable: function getActiveSelectable() {
+ var $selectable = this._getSelectables().filter(this.selectors.cursor).first();
+ return $selectable.length ? $selectable : null;
+ },
+ getTopSelectable: function getTopSelectable() {
+ var $selectable = this._getSelectables().first();
+ return $selectable.length ? $selectable : null;
+ },
+ update: function update(query) {
+ var isValidUpdate = query !== this.query;
+ if (isValidUpdate) {
+ this.query = query;
+ _.each(this.datasets, updateDataset);
+ }
+ return isValidUpdate;
+ function updateDataset(dataset) {
+ dataset.update(query);
+ }
+ },
+ empty: function empty() {
+ _.each(this.datasets, clearDataset);
+ this.query = null;
+ this.$node.addClass(this.classes.empty);
+ function clearDataset(dataset) {
+ dataset.clear();
+ }
+ },
+ destroy: function destroy() {
+ this.$node.off(".tt");
+ this.$node = $("<div>");
+ _.each(this.datasets, destroyDataset);
+ function destroyDataset(dataset) {
+ dataset.destroy();
+ }
+ }
+ });
+ return Menu;
+ }();
+ var DefaultMenu = function() {
+ "use strict";
+ var s = Menu.prototype;
+ function DefaultMenu() {
+ Menu.apply(this, [].slice.call(arguments, 0));
+ }
+ _.mixin(DefaultMenu.prototype, Menu.prototype, {
+ open: function open() {
+ !this._allDatasetsEmpty() && this._show();
+ return s.open.apply(this, [].slice.call(arguments, 0));
+ },
+ close: function close() {
+ this._hide();
+ return s.close.apply(this, [].slice.call(arguments, 0));
+ },
+ _onRendered: function onRendered() {
+ if (this._allDatasetsEmpty()) {
+ this._hide();
+ } else {
+ this.isOpen() && this._show();
+ }
+ return s._onRendered.apply(this, [].slice.call(arguments, 0));
+ },
+ _onCleared: function onCleared() {
+ if (this._allDatasetsEmpty()) {
+ this._hide();
+ } else {
+ this.isOpen() && this._show();
+ }
+ return s._onCleared.apply(this, [].slice.call(arguments, 0));
+ },
+ setLanguageDirection: function setLanguageDirection(dir) {
+ this.$node.css(dir === "ltr" ? this.css.ltr : this.css.rtl);
+ return s.setLanguageDirection.apply(this, [].slice.call(arguments, 0));
+ },
+ _hide: function hide() {
+ this.$node.hide();
+ },
+ _show: function show() {
+ this.$node.css("display", "block");
+ }
+ });
+ return DefaultMenu;
+ }();
+ var Typeahead = function() {
+ "use strict";
+ function Typeahead(o, www) {
+ var onFocused, onBlurred, onEnterKeyed, onTabKeyed, onEscKeyed, onUpKeyed, onDownKeyed, onLeftKeyed, onRightKeyed, onQueryChanged, onWhitespaceChanged;
+ o = o || {};
+ if (!o.input) {
+ $.error("missing input");
+ }
+ if (!o.menu) {
+ $.error("missing menu");
+ }
+ if (!o.eventBus) {
+ $.error("missing event bus");
+ }
+ www.mixin(this);
+ this.eventBus = o.eventBus;
+ this.minLength = _.isNumber(o.minLength) ? o.minLength : 1;
+ this.input = o.input;
+ this.menu = o.menu;
+ this.enabled = true;
+ this.active = false;
+ this.input.hasFocus() && this.activate();
+ this.dir = this.input.getLangDir();
+ this._hacks();
+ this.menu.bind().onSync("selectableClicked", this._onSelectableClicked, this).onSync("asyncRequested", this._onAsyncRequested, this).onSync("asyncCanceled", this._onAsyncCanceled, this).onSync("asyncReceived", this._onAsyncReceived, this).onSync("datasetRendered", this._onDatasetRendered, this).onSync("datasetCleared", this._onDatasetCleared, this);
+ onFocused = c(this, "activate", "open", "_onFocused");
+ onBlurred = c(this, "deactivate", "_onBlurred");
+ onEnterKeyed = c(this, "isActive", "isOpen", "_onEnterKeyed");
+ onTabKeyed = c(this, "isActive", "isOpen", "_onTabKeyed");
+ onEscKeyed = c(this, "isActive", "_onEscKeyed");
+ onUpKeyed = c(this, "isActive", "open", "_onUpKeyed");
+ onDownKeyed = c(this, "isActive", "open", "_onDownKeyed");
+ onLeftKeyed = c(this, "isActive", "isOpen", "_onLeftKeyed");
+ onRightKeyed = c(this, "isActive", "isOpen", "_onRightKeyed");
+ onQueryChanged = c(this, "_openIfActive", "_onQueryChanged");
+ onWhitespaceChanged = c(this, "_openIfActive", "_onWhitespaceChanged");
+ this.input.bind().onSync("focused", onFocused, this).onSync("blurred", onBlurred, this).onSync("enterKeyed", onEnterKeyed, this).onSync("tabKeyed", onTabKeyed, this).onSync("escKeyed", onEscKeyed, this).onSync("upKeyed", onUpKeyed, this).onSync("downKeyed", onDownKeyed, this).onSync("leftKeyed", onLeftKeyed, this).onSync("rightKeyed", onRightKeyed, this).onSync("queryChanged", onQueryChanged, this).onSync("whitespaceChanged", onWhitespaceChanged, this).onSync("langDirChanged", this._onLangDirChanged, this);
+ }
+ _.mixin(Typeahead.prototype, {
+ _hacks: function hacks() {
+ var $input, $menu;
+ $input = this.input.$input || $("<div>");
+ $menu = this.menu.$node || $("<div>");
+ $input.on("blur.tt", function($e) {
+ var active, isActive, hasActive;
+ active = document.activeElement;
+ isActive = $menu.is(active);
+ hasActive = $menu.has(active).length > 0;
+ if (_.isMsie() && (isActive || hasActive)) {
+ $e.preventDefault();
+ $e.stopImmediatePropagation();
+ _.defer(function() {
+ $input.focus();
+ });
+ }
+ });
+ $menu.on("mousedown.tt", function($e) {
+ $e.preventDefault();
+ });
+ },
+ _onSelectableClicked: function onSelectableClicked(type, $el) {
+ this.select($el);
+ },
+ _onDatasetCleared: function onDatasetCleared() {
+ this._updateHint();
+ },
+ _onDatasetRendered: function onDatasetRendered(type, dataset, suggestions, async) {
+ this._updateHint();
+ this.eventBus.trigger("render", suggestions, async, dataset);
+ },
+ _onAsyncRequested: function onAsyncRequested(type, dataset, query) {
+ this.eventBus.trigger("asyncrequest", query, dataset);
+ },
+ _onAsyncCanceled: function onAsyncCanceled(type, dataset, query) {
+ this.eventBus.trigger("asynccancel", query, dataset);
+ },
+ _onAsyncReceived: function onAsyncReceived(type, dataset, query) {
+ this.eventBus.trigger("asyncreceive", query, dataset);
+ },
+ _onFocused: function onFocused() {
+ this._minLengthMet() && this.menu.update(this.input.getQuery());
+ },
+ _onBlurred: function onBlurred() {
+ if (this.input.hasQueryChangedSinceLastFocus()) {
+ this.eventBus.trigger("change", this.input.getQuery());
+ }
+ },
+ _onEnterKeyed: function onEnterKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ this.select($selectable) && $e.preventDefault();
+ }
+ },
+ _onTabKeyed: function onTabKeyed(type, $e) {
+ var $selectable;
+ if ($selectable = this.menu.getActiveSelectable()) {
+ this.select($selectable) && $e.preventDefault();
+ } else if ($selectable = this.menu.getTopSelectable()) {
+ this.autocomplete($selectable) && $e.preventDefault();
+ }
+ },
+ _onEscKeyed: function onEscKeyed() {
+ this.close();
+ },
+ _onUpKeyed: function onUpKeyed() {
+ this.moveCursor(-1);
+ },
+ _onDownKeyed: function onDownKeyed() {
+ this.moveCursor(+1);
+ },
+ _onLeftKeyed: function onLeftKeyed() {
+ if (this.dir === "rtl" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getTopSelectable());
+ }
+ },
+ _onRightKeyed: function onRightKeyed() {
+ if (this.dir === "ltr" && this.input.isCursorAtEnd()) {
+ this.autocomplete(this.menu.getTopSelectable());
+ }
+ },
+ _onQueryChanged: function onQueryChanged(e, query) {
+ this._minLengthMet(query) ? this.menu.update(query) : this.menu.empty();
+ },
+ _onWhitespaceChanged: function onWhitespaceChanged() {
+ this._updateHint();
+ },
+ _onLangDirChanged: function onLangDirChanged(e, dir) {
+ if (this.dir !== dir) {
+ this.dir = dir;
+ this.menu.setLanguageDirection(dir);
+ }
+ },
+ _openIfActive: function openIfActive() {
+ this.isActive() && this.open();
+ },
+ _minLengthMet: function minLengthMet(query) {
+ query = _.isString(query) ? query : this.input.getQuery() || "";
+ return query.length >= this.minLength;
+ },
+ _updateHint: function updateHint() {
+ var $selectable, data, val, query, escapedQuery, frontMatchRegEx, match;
+ $selectable = this.menu.getTopSelectable();
+ data = this.menu.getSelectableData($selectable);
+ val = this.input.getInputValue();
+ if (data && !_.isBlankString(val) && !this.input.hasOverflow()) {
+ query = Input.normalizeQuery(val);
+ escapedQuery = _.escapeRegExChars(query);
+ frontMatchRegEx = new RegExp("^(?:" + escapedQuery + ")(.+$)", "i");
+ match = frontMatchRegEx.exec(data.val);
+ match && this.input.setHint(val + match[1]);
+ } else {
+ this.input.clearHint();
+ }
+ },
+ isEnabled: function isEnabled() {
+ return this.enabled;
+ },
+ enable: function enable() {
+ this.enabled = true;
+ },
+ disable: function disable() {
+ this.enabled = false;
+ },
+ isActive: function isActive() {
+ return this.active;
+ },
+ activate: function activate() {
+ if (this.isActive()) {
+ return true;
+ } else if (!this.isEnabled() || this.eventBus.before("active")) {
+ return false;
+ } else {
+ this.active = true;
+ this.eventBus.trigger("active");
+ return true;
+ }
+ },
+ deactivate: function deactivate() {
+ if (!this.isActive()) {
+ return true;
+ } else if (this.eventBus.before("idle")) {
+ return false;
+ } else {
+ this.active = false;
+ this.close();
+ this.eventBus.trigger("idle");
+ return true;
+ }
+ },
+ isOpen: function isOpen() {
+ return this.menu.isOpen();
+ },
+ open: function open() {
+ if (!this.isOpen() && !this.eventBus.before("open")) {
+ this.menu.open();
+ this._updateHint();
+ this.eventBus.trigger("open");
+ }
+ return this.isOpen();
+ },
+ close: function close() {
+ if (this.isOpen() && !this.eventBus.before("close")) {
+ this.menu.close();
+ this.input.clearHint();
+ this.input.resetInputValue();
+ this.eventBus.trigger("close");
+ }
+ return !this.isOpen();
+ },
+ setVal: function setVal(val) {
+ this.input.setQuery(_.toStr(val));
+ },
+ getVal: function getVal() {
+ return this.input.getQuery();
+ },
+ select: function select($selectable) {
+ var data = this.menu.getSelectableData($selectable);
+ if (data && !this.eventBus.before("select", data.obj)) {
+ this.input.setQuery(data.val, true);
+ this.eventBus.trigger("select", data.obj);
+ this.close();
+ return true;
+ }
+ return false;
+ },
+ autocomplete: function autocomplete($selectable) {
+ var query, data, isValid;
+ query = this.input.getQuery();
+ data = this.menu.getSelectableData($selectable);
+ isValid = data && query !== data.val;
+ if (isValid && !this.eventBus.before("autocomplete", data.obj)) {
+ this.input.setQuery(data.val);
+ this.eventBus.trigger("autocomplete", data.obj);
+ return true;
+ }
+ return false;
+ },
+ moveCursor: function moveCursor(delta) {
+ var query, $candidate, data, payload, cancelMove;
+ query = this.input.getQuery();
+ $candidate = this.menu.selectableRelativeToCursor(delta);
+ data = this.menu.getSelectableData($candidate);
+ payload = data ? data.obj : null;
+ cancelMove = this._minLengthMet() && this.menu.update(query);
+ if (!cancelMove && !this.eventBus.before("cursorchange", payload)) {
+ this.menu.setCursor($candidate);
+ if (data) {
+ this.input.setInputValue(data.val);
+ } else {
+ this.input.resetInputValue();
+ this._updateHint();
+ }
+ this.eventBus.trigger("cursorchange", payload);
+ return true;
+ }
+ return false;
+ },
+ destroy: function destroy() {
+ this.input.destroy();
+ this.menu.destroy();
+ }
+ });
+ return Typeahead;
+ function c(ctx) {
+ var methods = [].slice.call(arguments, 1);
+ return function() {
+ var args = [].slice.call(arguments);
+ _.each(methods, function(method) {
+ return ctx[method].apply(ctx, args);
+ });
+ };
+ }
+ }();
+ (function() {
+ "use strict";
+ var old, keys, methods;
+ old = $.fn.typeahead;
+ keys = {
+ www: "tt-www",
+ attrs: "tt-attrs",
+ typeahead: "tt-typeahead"
+ };
+ methods = {
+ initialize: function initialize(o, datasets) {
+ var www;
+ datasets = _.isArray(datasets) ? datasets : [].slice.call(arguments, 1);
+ o = o || {};
+ www = WWW(o.classNames);
+ return this.each(attach);
+ function attach() {
+ var $input, $wrapper, $hint, $menu, defaultHint, defaultMenu, eventBus, input, menu, typeahead, MenuConstructor;
+ _.each(datasets, function(d) {
+ d.highlight = !!o.highlight;
+ });
+ $input = $(this);
+ $wrapper = $(www.html.wrapper);
+ $hint = $elOrNull(o.hint);
+ $menu = $elOrNull(o.menu);
+ defaultHint = o.hint !== false && !$hint;
+ defaultMenu = o.menu !== false && !$menu;
+ defaultHint && ($hint = buildHintFromInput($input, www));
+ defaultMenu && ($menu = $(www.html.menu).css(www.css.menu));
+ $hint && $hint.val("");
+ $input = prepInput($input, www);
+ if (defaultHint || defaultMenu) {
+ $wrapper.css(www.css.wrapper);
+ $input.css(defaultHint ? www.css.input : www.css.inputWithNoHint);
+ $input.wrap($wrapper).parent().prepend(defaultHint ? $hint : null).append(defaultMenu ? $menu : null);
+ }
+ MenuConstructor = defaultMenu ? DefaultMenu : Menu;
+ eventBus = new EventBus({
+ el: $input
+ });
+ input = new Input({
+ hint: $hint,
+ input: $input
+ }, www);
+ menu = new MenuConstructor({
+ node: $menu,
+ datasets: datasets
+ }, www);
+ typeahead = new Typeahead({
+ input: input,
+ menu: menu,
+ eventBus: eventBus,
+ minLength: o.minLength
+ }, www);
+ $input.data(keys.www, www);
+ $input.data(keys.typeahead, typeahead);
+ }
+ },
+ isEnabled: function isEnabled() {
+ var enabled;
+ ttEach(this.first(), function(t) {
+ enabled = t.isEnabled();
+ });
+ return enabled;
+ },
+ enable: function enable() {
+ ttEach(this, function(t) {
+ t.enable();
+ });
+ return this;
+ },
+ disable: function disable() {
+ ttEach(this, function(t) {
+ t.disable();
+ });
+ return this;
+ },
+ isActive: function isActive() {
+ var active;
+ ttEach(this.first(), function(t) {
+ active = t.isActive();
+ });
+ return active;
+ },
+ activate: function activate() {
+ ttEach(this, function(t) {
+ t.activate();
+ });
+ return this;
+ },
+ deactivate: function deactivate() {
+ ttEach(this, function(t) {
+ t.deactivate();
+ });
+ return this;
+ },
+ isOpen: function isOpen() {
+ var open;
+ ttEach(this.first(), function(t) {
+ open = t.isOpen();
+ });
+ return open;
+ },
+ open: function open() {
+ ttEach(this, function(t) {
+ t.open();
+ });
+ return this;
+ },
+ close: function close() {
+ ttEach(this, function(t) {
+ t.close();
+ });
+ return this;
+ },
+ select: function select(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.select($el);
+ });
+ return success;
+ },
+ autocomplete: function autocomplete(el) {
+ var success = false, $el = $(el);
+ ttEach(this.first(), function(t) {
+ success = t.autocomplete($el);
+ });
+ return success;
+ },
+ moveCursor: function moveCursoe(delta) {
+ var success = false;
+ ttEach(this.first(), function(t) {
+ success = t.moveCursor(delta);
+ });
+ return success;
+ },
+ val: function val(newVal) {
+ var query;
+ if (!arguments.length) {
+ ttEach(this.first(), function(t) {
+ query = t.getVal();
+ });
+ return query;
+ } else {
+ ttEach(this, function(t) {
+ t.setVal(newVal);
+ });
+ return this;
+ }
+ },
+ destroy: function destroy() {
+ ttEach(this, function(typeahead, $input) {
+ revert($input);
+ typeahead.destroy();
+ });
+ return this;
+ }
+ };
+ $.fn.typeahead = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, [].slice.call(arguments, 1));
+ } else {
+ return methods.initialize.apply(this, arguments);
+ }
+ };
+ $.fn.typeahead.noConflict = function noConflict() {
+ $.fn.typeahead = old;
+ return this;
+ };
+ function ttEach($els, fn) {
+ $els.each(function() {
+ var $input = $(this), typeahead;
+ (typeahead = $input.data(keys.typeahead)) && fn(typeahead, $input);
+ });
+ }
+ function buildHintFromInput($input, www) {
+ return $input.clone().addClass(www.classes.hint).removeData().css(www.css.hint).css(getBackgroundStyles($input)).prop("readonly", true).removeAttr("id name placeholder required").attr({
+ autocomplete: "off",
+ spellcheck: "false",
+ tabindex: -1
+ });
+ }
+ function prepInput($input, www) {
+ $input.data(keys.attrs, {
+ dir: $input.attr("dir"),
+ autocomplete: $input.attr("autocomplete"),
+ spellcheck: $input.attr("spellcheck"),
+ style: $input.attr("style")
+ });
+ $input.addClass(www.classes.input).attr({
+ autocomplete: "off",
+ spellcheck: false
+ });
+ try {
+ !$input.attr("dir") && $input.attr("dir", "auto");
+ } catch (e) {}
+ return $input;
+ }
+ function getBackgroundStyles($el) {
+ return {
+ backgroundAttachment: $el.css("background-attachment"),
+ backgroundClip: $el.css("background-clip"),
+ backgroundColor: $el.css("background-color"),
+ backgroundImage: $el.css("background-image"),
+ backgroundOrigin: $el.css("background-origin"),
+ backgroundPosition: $el.css("background-position"),
+ backgroundRepeat: $el.css("background-repeat"),
+ backgroundSize: $el.css("background-size")
+ };
+ }
+ function revert($input) {
+ var www, $wrapper;
+ www = $input.data(keys.www);
+ $wrapper = $input.parent().filter(www.selectors.wrapper);
+ _.each($input.data(keys.attrs), function(val, key) {
+ _.isUndefined(val) ? $input.removeAttr(key) : $input.attr(key, val);
+ });
+ $input.removeData(keys.typeahead).removeData(keys.www).removeData(keys.attr).removeClass(www.classes.input);
+ if ($wrapper.length) {
+ $input.detach().insertAfter($wrapper);
+ $wrapper.remove();
+ }
+ }
+ function $elOrNull(obj) {
+ var isValid, $el;
+ isValid = _.isJQuery(obj) || _.isElement(obj);
+ $el = isValid ? $(obj).first() : [];
+ return $el.length ? $el : null;
+ }
+ })();
+}); \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tablefilter.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tablefilter.py
index 9d15bcff0..65454e140 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tablefilter.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tablefilter.py
@@ -286,7 +286,7 @@ class TableFilterMap(object):
def to_json(self, queryset):
data = {}
- for filter_name, table_filter in self.__filters.iteritems():
+ for filter_name, table_filter in self.__filters.items():
data[filter_name] = table_filter.to_json()
return data
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tables.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tables.py
index 2cc2f4eb7..e2d23c1e8 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tables.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tables.py
@@ -22,7 +22,7 @@
from toastergui.widgets import ToasterTable
from orm.models import Recipe, ProjectLayer, Layer_Version, Machine, Project
from orm.models import CustomImageRecipe, Package, Target, Build, LogMessage, Task
-from orm.models import CustomImagePackage
+from orm.models import CustomImagePackage, Package_DependencyManager
from django.db.models import Q, Max, Sum, Count, When, Case, Value, IntegerField
from django.conf.urls import url
from django.core.urlresolvers import reverse, resolve
@@ -114,28 +114,37 @@ class LayersTable(ToasterTable):
git_url_template = '''
<a href="{% url 'layerdetails' extra.pid data.id %}">
+ {% if data.layer.local_source_dir %}
+ <code>{{data.layer.local_source_dir}}</code>
+ {% else %}
<code>{{data.layer.vcs_url}}</code>
</a>
+ {% endif %}
{% if data.get_vcs_link_url %}
<a target="_blank" href="{{ data.get_vcs_link_url }}">
- <i class="icon-share get-info"></i>
+ <span class="glyphicon glyphicon-new-window"></span>
</a>
{% endif %}
'''
- self.add_column(title="Git repository URL",
- help_text="The Git repository for the layer source code",
+ self.add_column(title="Layer source code location",
+ help_text="A Git repository or an absolute path to a directory",
hidden=True,
static_data_name="layer__vcs_url",
static_data_template=git_url_template)
git_dir_template = '''
+ {% if data.layer.local_source_dir %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.layer.name}} is not in a Git repository, so there is no subdirectory associated with it"> </span>
+ {% else %}
<a href="{% url 'layerdetails' extra.pid data.id %}">
<code>{{data.dirpath}}</code>
</a>
+ {% endif %}
{% if data.dirpath and data.get_vcs_dirpath_link_url %}
<a target="_blank" href="{{ data.get_vcs_dirpath_link_url }}">
- <i class="icon-share get-info"></i>
+ <span class="glyphicon glyphicon-new-window"></span>
</a>
{% endif %}'''
@@ -146,16 +155,14 @@ class LayersTable(ToasterTable):
static_data_template=git_dir_template)
revision_template = '''
- {% load projecttags %}
- {% with vcs_ref=data.get_vcs_reference %}
- {% if vcs_ref|is_shaid %}
- <a class="btn" data-content="<ul class='unstyled'> <li>{{vcs_ref}}</li> </ul>">
- {{vcs_ref|truncatechars:10}}
- </a>
+ {% if data.layer.local_source_dir %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.layer.name}} is not in a Git repository, so there is no revision associated with it"> </span>
{% else %}
- {{vcs_ref}}
- {% endif %}
+ {% with vcs_ref=data.get_vcs_reference %}
+ {% include 'snippets/gitrev_popover.html' %}
{% endwith %}
+ {% endif %}
'''
self.add_column(title="Git revision",
@@ -166,8 +173,8 @@ class LayersTable(ToasterTable):
deps_template = '''
{% with ods=data.dependencies.all%}
{% if ods.count %}
- <a class="btn" title="<a href='{% url "layerdetails" extra.pid data.id %}'>{{data.layer.name}}</a> dependencies"
- data-content="<ul class='unstyled'>
+ <a class="btn btn-default" title="<a href='{% url "layerdetails" extra.pid data.id %}'>{{data.layer.name}}</a> dependencies"
+ data-content="<ul class='list-unstyled'>
{% for i in ods%}
<li><a href='{% url "layerdetails" extra.pid i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li>
{% endfor %}
@@ -190,24 +197,13 @@ class LayersTable(ToasterTable):
static_data_name="add-del-layers",
static_data_template='{% include "layer_btn.html" %}')
- project = Project.objects.get(pk=kwargs['pid'])
- self.add_column(title="LayerDetailsUrl",
- displayable = False,
- field_name="layerdetailurl",
- computation = lambda x: reverse('layerdetails', args=(project.id, x.id)))
-
- self.add_column(title="name",
- displayable = False,
- field_name="name",
- computation = lambda x: x.layer.name)
-
class MachinesTable(ToasterTable):
"""Table of Machines in Toaster"""
def __init__(self, *args, **kwargs):
super(MachinesTable, self).__init__(*args, **kwargs)
- self.empty_state = "No machines maybe you need to do a build?"
+ self.empty_state = "Toaster has no machine information for this project. Sadly, machine information cannot be obtained from builds, so this page will remain empty."
self.title = "Compatible machines"
self.default_orderby = "name"
@@ -275,7 +271,7 @@ class MachinesTable(ToasterTable):
field_name="layer_version__get_vcs_reference")
machine_file_template = '''<code>conf/machine/{{data.name}}.conf</code>
- <a href="{{data.get_vcs_machine_file_link_url}}" target="_blank"><i class="icon-share get-info"></i></a>'''
+ <a href="{{data.get_vcs_machine_file_link_url}}" target="_blank"><span class="glyphicon glyphicon-new-window"></i></a>'''
self.add_column(title="Machine file",
hidden=True,
@@ -318,7 +314,11 @@ class LayerMachinesTable(MachinesTable):
self.add_column(title="Description",
field_name="description")
- select_btn_template = '<a href="{% url "project" extra.pid %}?setMachine={{data.name}}" class="btn btn-block select-machine-btn" {% if extra.in_prj == 0%}disabled="disabled"{%endif%}>Select machine</a>'
+ select_btn_template = '''
+ <a href="{% url "project" extra.pid %}?setMachine={{data.name}}"
+ class="btn btn-default btn-block select-machine-btn
+ {% if extra.in_prj == 0%}disabled{%endif%}">Select machine</a>
+ '''
self.add_column(title="Select machine",
static_data_name="add-del-layers",
@@ -330,10 +330,10 @@ class RecipesTable(ToasterTable):
def __init__(self, *args, **kwargs):
super(RecipesTable, self).__init__(*args, **kwargs)
- self.empty_state = "Toaster has no recipe information. To generate recipe information you can configure a layer source then run a build."
+ self.empty_state = "Toaster has no recipe information. To generate recipe information you need to run a build."
build_col = { 'title' : "Build",
- 'help_text' : "Add or delete recipes to and from your project",
+ 'help_text' : "Before building a recipe, you might need to add the corresponding layer to your project",
'hideable' : False,
'filter_name' : "in_current_project",
'static_data_name' : "add-del-layers",
@@ -344,8 +344,7 @@ class RecipesTable(ToasterTable):
context = super(RecipesTable, self).get_context_data(**kwargs)
context['project'] = project
-
- context['projectlayers'] = map(lambda prjlayer: prjlayer.layercommit.id, ProjectLayer.objects.filter(project=context['project']))
+ context['projectlayers'] = [player.layercommit.id for player in ProjectLayer.objects.filter(project=context['project'])]
return context
@@ -395,7 +394,7 @@ class RecipesTable(ToasterTable):
recipe_file_template = '''
<code>{{data.file_path}}</code>
<a href="{{data.get_vcs_recipe_file_link_url}}" target="_blank">
- <i class="icon-share get-info"></i>
+ <span class="glyphicon glyphicon-new-window"></i>
</a>
'''
@@ -428,9 +427,19 @@ class RecipesTable(ToasterTable):
orderable=True,
field_name="license")
+ revision_link_template = '''
+ {% if data.layer_version.layer.local_source_dir %}
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{data.layer_version.layer.name}} is not in a Git repository, so there is no revision associated with it"> </span>
+ {% else %}
+ {{data.layer_version.get_vcs_reference}}
+ {% endif %}
+ '''
+
self.add_column(title="Git revision",
hidden=True,
- field_name="layer_version__get_vcs_reference")
+ static_data_name="layer_version__get_vcs_reference",
+ static_data_template=revision_link_template)
class LayerRecipesTable(RecipesTable):
@@ -466,7 +475,11 @@ class LayerRecipesTable(RecipesTable):
self.add_column(title="Description",
field_name="get_description_or_summary")
- build_recipe_template ='<button class="btn btn-block build-recipe-btn" data-recipe-name="{{data.name}}" {%if extra.in_prj == 0 %}disabled="disabled"{%endif%}>Build recipe</button>'
+ build_recipe_template = '''
+ <a class="btn btn-default btn-block build-recipe-btn
+ {% if extra.in_prj == 0 %}disabled{% endif %}"
+ data-recipe-name="{{data.name}}">Build recipe</a>
+ '''
self.add_column(title="Build recipe",
static_data_name="add-del-layers",
@@ -481,7 +494,16 @@ class CustomImagesTable(ToasterTable):
def get_context_data(self, **kwargs):
context = super(CustomImagesTable, self).get_context_data(**kwargs)
+
+ empty_state_template = '''
+ You have not created any custom images yet.
+ <a href="{% url 'newcustomimage' data.pid %}">
+ Create your first custom image</a>
+ '''
+ context['empty_state'] = self.render_static_data(empty_state_template,
+ kwargs)
project = Project.objects.get(pk=kwargs['pid'])
+
# TODO put project into the ToasterTable base class
context['project'] = project
return context
@@ -507,29 +529,31 @@ class CustomImagesTable(ToasterTable):
static_data_template=name_link_template)
recipe_file_template = '''
+ {% if data.get_base_recipe_file %}
<code>{{data.name}}_{{data.version}}.bb</code>
- <a href="{% url 'customrecipedownload' extra.pid data.pk %}">
- <i class="icon-download-alt" data-original-title="Download recipe
- file"></i>
- </a>'''
+ <a href="{% url 'customrecipedownload' extra.pid data.pk %}"
+ class="glyphicon glyphicon-download-alt get-help" title="Download recipe file"></a>
+ {% endif %}'''
self.add_column(title="Recipe file",
static_data_name='recipe_file_download',
static_data_template=recipe_file_template)
approx_packages_template = '''
+ {% if data.get_all_packages.count > 0 %}
<a href="{% url 'customrecipe' extra.pid data.id %}">
{{data.get_all_packages.count}}
- </a>'''
+ </a>
+ {% endif %}'''
- self.add_column(title="Approx packages",
+ self.add_column(title="Packages",
static_data_name='approx_packages',
static_data_template=approx_packages_template)
build_btn_template = '''
<button data-recipe-name="{{data.name}}"
- class="btn btn-block build-recipe-btn" style="margin-top: 5px;" >
+ class="btn btn-default btn-block build-recipe-btn">
Build
</button>'''
@@ -695,6 +719,7 @@ class PackagesTable(ToasterTable):
def setup_queryset(self, *args, **kwargs):
recipe = Recipe.objects.get(pk=kwargs['recipe_id'])
+ self.static_context_extra['target_name'] = recipe.name
self.queryset = self.create_package_list(recipe, kwargs['pid'])
self.queryset = self.queryset.order_by('name')
@@ -711,13 +736,15 @@ class PackagesTable(ToasterTable):
self.add_column(title="Approx Size",
orderable=True,
+ field_name="size",
static_data_name="size",
static_data_template="{% load projecttags %} \
{{data.size|filtered_filesizeformat}}")
self.add_column(title="License",
field_name="license",
- orderable=True)
+ orderable=True,
+ hidden=True)
self.add_column(title="Dependencies",
@@ -764,7 +791,19 @@ class SelectPackagesTable(PackagesTable):
self.queryset = self.queryset.order_by('name')
+ # This target is the target used to work out which group of dependences
+ # to display, if we've built the custom image we use it otherwise we
+ # can use the based recipe instead
+ if prj.build_set.filter(target__target=self.cust_recipe.name).count()\
+ > 0:
+ self.static_context_extra['target_name'] = self.cust_recipe.name
+ else:
+ self.static_context_extra['target_name'] =\
+ Package_DependencyManager.TARGET_LATEST
+
self.static_context_extra['recipe_id'] = kwargs['custrecipeid']
+
+
self.static_context_extra['current_packages'] = \
current_packages.values_list('pk', flat=True)
@@ -860,26 +899,22 @@ class ProjectsTable(ToasterTable):
last_activity_on_template = '''
{% load project_url_tag %}
<span data-project-field="updated">
- <a href="{% project_url data %}">
{{data.updated | date:"d/m/y H:i"}}
- </a>
</span>
'''
release_template = '''
<span data-project-field="release">
{% if data.release %}
- <a href="{% url 'project' data.id %}#project-details">
- {{data.release.name}}
- </a>
+ {{data.release.name}}
{% elif data.is_default %}
- <span class="muted">Not applicable</span>
- <i class="icon-question-sign get-help hover-help"
- data-original-title="This project does not have a release set.
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help"
+ title="This project does not have a release set.
It simply collects information about the builds you start from
the command line while Toaster is running"
style="visibility: hidden;">
- </i>
+ </span>
{% else %}
No release available
{% endif %}
@@ -889,16 +924,14 @@ class ProjectsTable(ToasterTable):
machine_template = '''
<span data-project-field="machine">
{% if data.is_default %}
- <span class="muted">Not applicable</span>
- <i class="icon-question-sign get-help hover-help"
- data-original-title="This project does not have a machine
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help"
+ title="This project does not have a machine
set. It simply collects information about the builds you
start from the command line while Toaster is running"
- style="visibility: hidden;"></i>
+ style="visibility: hidden;"></span>
{% else %}
- <a href="{% url 'project' data.id %}#machine-distro">
- {{data.get_current_machine_name}}
- </a>
+ {{data.get_current_machine_name}}
{% endif %}
</span>
'''
@@ -908,20 +941,16 @@ class ProjectsTable(ToasterTable):
<a href="{% url 'projectbuilds' data.id %}">
{{data.get_number_of_builds}}
</a>
- {% else %}
- <span class="muted">0</span>
{% endif %}
'''
last_build_outcome_template = '''
{% if data.get_number_of_builds > 0 %}
- <a href="{% url 'builddashboard' data.get_last_build_id %}">
- {% if data.get_last_outcome == extra.Build.SUCCEEDED %}
- <i class="icon-ok-sign success"></i>
- {% elif data.get_last_outcome == extra.Build.FAILED %}
- <i class="icon-minus-sign error"></i>
- {% endif %}
- </a>
+ {% if data.get_last_outcome == extra.Build.SUCCEEDED %}
+ <span class="glyphicon glyphicon-ok-circle"></span>
+ {% elif data.get_last_outcome == extra.Build.FAILED %}
+ <span class="glyphicon glyphicon-minus-sign"></span>
+ {% endif %}
{% endif %}
'''
@@ -935,7 +964,7 @@ class ProjectsTable(ToasterTable):
errors_template = '''
{% if data.get_number_of_builds > 0 and data.get_last_errors > 0 %}
- <a class="errors.count error"
+ <a class="errors.count text-danger"
href="{% url "builddashboard" data.get_last_build_id %}#errors">
{{data.get_last_errors}} error{{data.get_last_errors | pluralize}}
</a>
@@ -944,7 +973,7 @@ class ProjectsTable(ToasterTable):
warnings_template = '''
{% if data.get_number_of_builds > 0 and data.get_last_warnings > 0 %}
- <a class="warnings.count warning"
+ <a class="warnings.count text-warning"
href="{% url "builddashboard" data.get_last_build_id %}#warnings">
{{data.get_last_warnings}} warning{{data.get_last_warnings | pluralize}}
</a>
@@ -953,9 +982,7 @@ class ProjectsTable(ToasterTable):
image_files_template = '''
{% if data.get_number_of_builds > 0 and data.get_last_outcome == extra.Build.SUCCEEDED %}
- <a href="{% url "builddashboard" data.get_last_build_id %}#images">
- {{data.get_last_build_extensions}}
- </a>
+ {{data.get_last_build_extensions}}
{% endif %}
'''
@@ -991,7 +1018,7 @@ class ProjectsTable(ToasterTable):
static_data_name='machine',
static_data_template=machine_template)
- self.add_column(title='Number of builds',
+ self.add_column(title='Builds',
help_text='The number of builds which have been run \
for the project',
hideable=False,
@@ -1121,19 +1148,17 @@ class BuildsTable(ToasterTable):
def setup_columns(self, *args, **kwargs):
outcome_template = '''
- <a href="{% url "builddashboard" data.id %}">
- {% if data.outcome == data.SUCCEEDED %}
- <i class="icon-ok-sign success"></i>
- {% elif data.outcome == data.FAILED %}
- <i class="icon-minus-sign error"></i>
- {% endif %}
- </a>
+ {% if data.outcome == data.SUCCEEDED %}
+ <span class="glyphicon glyphicon-ok-circle"></span>
+ {% elif data.outcome == data.FAILED %}
+ <span class="glyphicon glyphicon-minus-sign"></span>
+ {% endif %}
{% if data.cooker_log_path %}
&nbsp;
<a href="{% url "build_artifact" data.id "cookerlog" data.id %}">
- <i class="icon-download-alt get-help"
- data-original-title="Download build log"></i>
+ <span class="glyphicon glyphicon-download-alt get-help"
+ data-original-title="Download build log"></span>
</a>
{% endif %}
'''
@@ -1148,45 +1173,39 @@ class BuildsTable(ToasterTable):
'''
machine_template = '''
- <a href="{% url "builddashboard" data.id %}">
- {{data.machine}}
- </a>
+ {{data.machine}}
'''
started_on_template = '''
- <a href="{% url "builddashboard" data.id %}">
- {{data.started_on | date:"d/m/y H:i"}}
- </a>
+ {{data.started_on | date:"d/m/y H:i"}}
'''
completed_on_template = '''
- <a href="{% url "builddashboard" data.id %}">
- {{data.completed_on | date:"d/m/y H:i"}}
- </a>
+ {{data.completed_on | date:"d/m/y H:i"}}
'''
failed_tasks_template = '''
{% if data.failed_tasks.count == 1 %}
- <a href="{% url "task" data.id data.failed_tasks.0.id %}">
- <span class="error">
- {{data.failed_tasks.0.recipe.name}}.{{data.failed_tasks.0.task_name}}
+ <a class="text-danger" href="{% url "task" data.id data.failed_tasks.0.id %}">
+ <span>
+ {{data.failed_tasks.0.recipe.name}} {{data.failed_tasks.0.task_name}}
</span>
</a>
<a href="{% url "build_artifact" data.id "tasklogfile" data.failed_tasks.0.id %}">
- <i class="icon-download-alt"
- data-original-title="Download task log file">
- </i>
+ <span class="glyphicon glyphicon-download-alt get-help"
+ title="Download task log file">
+ </span>
</a>
{% elif data.failed_tasks.count > 1 %}
<a href="{% url "tasks" data.id %}?filter=outcome%3A{{extra.Task.OUTCOME_FAILED}}">
- <span class="error">{{data.failed_tasks.count}} tasks</span>
+ <span class="text-danger">{{data.failed_tasks.count}} tasks</span>
</a>
{% endif %}
'''
errors_template = '''
{% if data.errors_no %}
- <a class="errors.count error" href="{% url "builddashboard" data.id %}#errors">
+ <a class="errors.count text-danger" href="{% url "builddashboard" data.id %}#errors">
{{data.errors_no}} error{{data.errors_no|pluralize}}
</a>
{% endif %}
@@ -1194,7 +1213,7 @@ class BuildsTable(ToasterTable):
warnings_template = '''
{% if data.warnings_no %}
- <a class="warnings.count warning" href="{% url "builddashboard" data.id %}#warnings">
+ <a class="warnings.count text-warning" href="{% url "builddashboard" data.id %}#warnings">
{{data.warnings_no}} warning{{data.warnings_no|pluralize}}
</a>
{% endif %}
@@ -1202,16 +1221,18 @@ class BuildsTable(ToasterTable):
time_template = '''
{% load projecttags %}
- <a href="{% url "buildtime" data.id %}">
+ {% if data.outcome == extra.Build.SUCCEEDED %}
+ <a href="{% url "buildtime" data.id %}">
+ {{data.timespent_seconds | sectohms}}
+ </a>
+ {% else %}
{{data.timespent_seconds | sectohms}}
- </a>
+ {% endif %}
'''
image_files_template = '''
{% if data.outcome == extra.Build.SUCCEEDED %}
- <a href="{% url "builddashboard" data.id %}#images">
{{data.get_image_file_extensions}}
- </a>
{% endif %}
'''
@@ -1429,10 +1450,10 @@ class AllBuildsTable(BuildsTable):
{{data.project.name}}
</a>
{% if data.project.is_default %}
- <i class="icon-question-sign get-help hover-help" title=""
+ <span class="glyphicon glyphicon-question-sign get-help hover-help" title=""
data-original-title="This project shows information about
the builds you start from the command line while Toaster is
- running" style="visibility: hidden;"></i>
+ running" style="visibility: hidden;"></span>
{% endif %}
'''
@@ -1482,7 +1503,6 @@ class ProjectBuildsTable(BuildsTable):
"""
self.project_id = kwargs['pid']
super(ProjectBuildsTable, self).setup_queryset(*args, **kwargs)
-
project = Project.objects.get(pk=self.project_id)
self.queryset = self.queryset.filter(project=project)
@@ -1496,8 +1516,23 @@ class ProjectBuildsTable(BuildsTable):
self.project_id = kwargs['pid']
context = super(ProjectBuildsTable, self).get_context_data(**kwargs)
+ empty_state_template = '''
+ This project has no builds.
+ <a href="{% url 'projectimagerecipes' data.pid %}">
+ Choose a recipe to build</a>
+ '''
+ context['empty_state'] = self.render_static_data(empty_state_template,
+ kwargs)
+
project = Project.objects.get(pk=self.project_id)
context['mru'] = Build.get_recent(project)
context['project'] = project
+ self.setup_queryset(**kwargs)
+ if self.queryset.count() == 0 and \
+ project.build_set.filter(outcome=Build.IN_PROGRESS).count() > 0:
+ context['build_in_progress_none_completed'] = True
+ else:
+ context['build_in_progress_none_completed'] = False
+
return context
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/base.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/base.html
index 210cf3360..496dd6eab 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/base.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/base.html
@@ -8,9 +8,8 @@
{% block title %} Toaster {% endblock %}
</title>
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}" type="text/css"/>
- <link rel="stylesheet" href="{% static 'css/bootstrap-responsive.min.css' %}" type='text/css'/>
+ <!--link rel="stylesheet" href="{% static 'css/bootstrap-theme.css' %}" type="text/css"/-->
<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}" type='text/css'/>
- <link rel="stylesheet" href="{% static 'css/prettify.css' %}" type='text/css'/>
<link rel="stylesheet" href="{% static 'css/default.css' %}" type='text/css'/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -21,6 +20,10 @@
</script>
<script src="{% static 'js/bootstrap.min.js' %}">
</script>
+ <script src="{% static 'js/typeahead.jquery.js' %}">
+ </script>
+ <script src="{% static 'js/jsrender.min.js' %}">
+ </script>
<script src="{% static 'js/prettify.js' %}">
</script>
<script src="{% static 'js/libtoaster.js' %}">
@@ -31,6 +34,8 @@
</script>
{% endif %}
<script>
+ $.views.settings.delimiters("<%", "%>");
+
libtoaster.ctx = {
jsUrl : "{% static 'js/' %}",
htmlUrl : "{% static 'html/' %}",
@@ -39,6 +44,7 @@
{% if project.id %}
projectId : {{project.id}},
projectPageUrl : {% url 'project' project.id as purl %}{{purl|json}},
+ xhrProjectUrl : {% url 'xhr_project' project.id as pxurl %}{{pxurl|json}},
projectName : {{project.name|json}},
recipesTypeAheadUrl: {% url 'xhr_recipestypeahead' project.id as paturl%}{{paturl|json}},
layersTypeAheadUrl: {% url 'xhr_layerstypeahead' project.id as paturl%}{{paturl|json}},
@@ -47,7 +53,9 @@
xhrCustomRecipeUrl : "{% url 'xhr_customrecipe' %}",
projectId : {{project.id}},
xhrBuildRequestUrl: "{% url 'xhr_buildrequest' project.id %}",
+ mostRecentBuildsUrl: "{% url 'most_recent_builds' %}?project_id={{project.id}}",
{% else %}
+ mostRecentBuildsUrl: "{% url 'most_recent_builds' %}",
projectId : undefined,
projectPageUrl : undefined,
projectName : undefined,
@@ -58,69 +66,72 @@
{% endblock %}
</head>
- <body style="height: 100%">
+ <body>
{% csrf_token %}
- <div id="loading-notification" class="alert lead text-center" style="display:none">
+ <div id="loading-notification" class="alert alert-warning lead text-center" style="display:none">
Loading <i class="fa-pulse icon-spinner"></i>
</div>
- <div id="change-notification" class="alert lead alert-info" style="display:none">
- <button type="button" class="close" id="hide-alert">&times;</button>
+ <div id="change-notification" class="alert alert-info alert-dismissible change-notification" style="display:none">
+ <button type="button" class="close" id="hide-alert" data-toggle="alert">&times;</button>
<span id="change-notification-msg"></span>
</div>
- <div class="navbar navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container-fluid">
- <a class="brand logo" href="#"><img src="{% static 'img/logo.png' %}" class="" alt="Yocto logo project"/></a>
- <span class="brand">
- <a href="/">Toaster</a>
+ <nav class="navbar navbar-default navbar-fixed-top">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#global-nav" aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <div class="toaster-navbar-brand">
+ <a href="/">
+ <img class="logo" src="{% static 'img/logo.png' %}" class="" alt="Yocto logo project"/>
+ </a>
+ <a class="brand" href="/">Toaster</a>
{% if DEBUG %}
- <i class="icon-info-sign" title="<strong>Toaster version information</strong>" data-content="<dl><dt>Git branch</dt><dd>{{TOASTER_BRANCH}}</dd><dt>Git revision</dt><dd>{{TOASTER_REVISION}}</dd></dl>"></i>
+ <span class="glyphicon glyphicon-info-sign" title="<strong>Toaster version information</strong>" data-content="<dl><dt>Git branch</dt><dd>{{TOASTER_BRANCH}}</dd><dt>Git revision</dt><dd>{{TOASTER_REVISION}}</dd></dl>"></i>
{% endif %}
- </span>
- {% if request.resolver_match.url_name != 'landing' and request.resolver_match.url_name != 'newproject' %}
- <ul class="nav">
- <li {% if request.resolver_match.url_name == 'all-builds' %}
- class="active"
- {% endif %}>
+ </div>
+ </div>
+ <div class="collapse navbar-collapse" id="global-nav">
+ <ul class="nav navbar-nav">
+ {% if request.resolver_match.url_name != 'landing' and request.resolver_match.url_name != 'newproject' %}
+ <li {% if request.resolver_match.url_name == 'all-builds' %}
+ class="active"
+ {% endif %}>
<a href="{% url 'all-builds' %}">
- <i class="icon-tasks"></i>
+ <i class="glyphicon glyphicon-tasks"></i>
All builds
</a>
- </li>
- <li {% if request.resolver_match.url_name == 'all-projects' %}
- class="active"
- {% endif %}>
+ </li>
+ <li {% if request.resolver_match.url_name == 'all-projects' %}
+ class="active"
+ {% endif %}>
<a href="{% url 'all-projects' %}">
<i class="icon-folder-open"></i>
All projects
</a>
- </li>
- </ul>
- {% endif %}
- <ul class="nav pull-right">
- <li>
+ </li>
+ {% endif %}
+ <li>
<a target="_blank" href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html">
- <i class="icon-book"></i>
- Manual
+ <i class="glyphicon glyphicon-book"></i>
+ Documentation
</a>
- </li>
- </ul>
- <span class="pull-right divider-vertical"></span>
- <div class="btn-group pull-right">
- <a class="btn" id="new-project-button" href="{% url 'newproject' %}">New project</a>
+ </li>
+ </ul>
+ <a class="btn btn-default navbar-btn navbar-right" id="new-project-button" href="{% url 'newproject' %}">New project</a>
</div>
- </div>
</div>
- </div>
+ </nav>
- <div class="container-fluid top-padded">
- <div class="row-fluid">
- {% block pagecontent %}
- {% endblock %}
- </div>
+ <div class="container-fluid">
+ {% block pagecontent %}
+ {% endblock %}
</div>
</body>
</html>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
index a62e0b1cb..4d5066732 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuilddetailpage.html
@@ -3,30 +3,29 @@
{% load humanize %}
{% block pagecontent %}
-<div class="row-fluid">
-<!-- Breadcrumbs -->
- <div class="section">
- <ul class="breadcrumb" id="breadcrumb">
- <li><a href="{% project_url build.project %}">{{build.project.name}}</a></li>
- {% if not build.project.is_default %}
- <li><a href="{% url 'projectbuilds' build.project.id %}">Builds</a></li>
- {% endif %}
- <li><a href="{%url 'builddashboard' build.pk%}">{{build.get_sorted_target_list.0.target}} {%if build.target_set.all.count > 1%}(+{{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|date:"d/m/y H:i"}})</a></li>
- {% block localbreadcrumb %}{% endblock %}
- </ul>
- <script>
- $( function () {
- $('#breadcrumb > li').append('<span class="divider">&rarr;</span>');
- $('#breadcrumb > li:last').addClass("active");
- $('#breadcrumb > li:last > span').remove();
- });
- </script>
- </div> <!--section-->
-
- <!-- Begin container -->
- {% block pagedetailinfomain %}{% endblock %}
- <!-- End container -->
-
+<div class="row">
+ <!-- Breadcrumbs -->
+ <div class="col-md-12">
+ <ul class="breadcrumb" id="breadcrumb">
+ <li><a href="{% project_url build.project %}">{{build.project.name}}</a></li>
+ {% if not build.project.is_default %}
+ <li><a href="{% url 'projectbuilds' build.project.id %}">Builds</a></li>
+ {% endif %}
+ <li><a href="{%url 'builddashboard' build.pk%}">{{build.get_sorted_target_list.0.target}} {%if build.target_set.all.count > 1%}(+{{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|date:"d/m/y H:i"}})</a></li>
+ {% block localbreadcrumb %}{% endblock %}
+ </ul>
+ <script>
+$( function () {
+ $('#breadcrumb > li').append('<span class="divider">&rarr;</span>');
+ $('#breadcrumb > li:last').addClass("active");
+ $('#breadcrumb > li:last > span').remove();
+ });
+ </script>
+ </div>
</div>
+<!-- Begin container -->
+{% block pagedetailinfomain %}{% endblock %}
+<!-- End container -->
+
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuildpage.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
index 0d8c8820d..f5eee9651 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basebuildpage.html
@@ -3,9 +3,95 @@
{% load project_url_tag %}
{% load objects_to_dictionaries_filter %}
{% load humanize %}
+{% load field_values_filter %}
{% block pagecontent %}
+
+ <script>
+ var configVarUrl = "{% url 'configvars' build.id %}";
+
+ $(document).ready(function(){
+
+ $("#delete-build-confirm").click(function(){
+ libtoaster.disableAjaxLoadingTimer();
+ $(this).find('[data-role="submit-state"]').hide();
+ $(this).find('[data-role="loading-state"]').show();
+ $(this).attr("disabled", "disabled");
+
+ /* Make the modal non cancelable while delete is in progress */
+ $('#delete-build-modal button[data-dismiss="modal"]').hide();
+
+ $.ajax({
+ type: 'DELETE',
+ url: "{% url 'xhr_build' build.id %}",
+ headers: { 'X-CSRFToken' : $.cookie('csrftoken')},
+ success: function (data) {
+ if (data.error !== "ok") {
+ console.warn(data.error);
+ } else {
+ libtoaster.setNotification("build-deleted",
+ $("#deleted-build-message").html());
+ window.location.replace(data.gotoUrl);
+ }
+ },
+ error: function (data) {
+ console.warn(data);
+ }
+ });
+ });
+
+
+ $('#breadcrumb > li').append('<span class="divider">&rarr;</span>');
+ $('#breadcrumb > li:last').addClass("active");
+ $('#breadcrumb > li:last > span').remove();
+
+ $("#build-menu li a").each(function(){
+ /* Set the page active state in the Build menu */
+ var currentUrl = window.location.href.split('?')[0];
+ if (currentUrl === $(this).prop("href")){
+ $(this).parent().addClass("active");
+ } else {
+ /* Special case the configvar as this is part of configuration
+ * page but is a separate url
+ */
+ if (window.location.pathname === configVarUrl){
+ $("#menu-configuration").addClass("active");
+ } else {
+ $(this).parent().removeClass("active");
+ }
+ }
+ });
+ });
+ </script>
+
+<span style="display:none" id="deleted-build-message">
+ You have deleted 1 build: <strong>{{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}}</strong> completed on <strong>{{build.completed_on|date:"d/m/y H:i"}}</strong>
+</span>
+
+<div class="modal fade" tabindex="-1" role="dialog" id="delete-build-modal" style="display: none;" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-body">
+ <p>Are you sure you want to delete the build <strong>{{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}}</strong> completed on <strong>{{build.completed_on|date:"d/m/y H:i"}}</strong>?</p>
+ </div>
+ <div class="modal-footer">
+ <button id="delete-build-confirm" class="btn btn-primary btn-large">
+ <span data-role="submit-state">Delete build</span>
+ <span data-role="loading-state" style="display:none">
+ <span class="fa-pulse">
+ <i class="icon-spinner"></i>
+ </span>
+ &nbsp;Deleting build...
+ </span>
+ </button>
+ <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div> <!-- / modal -->
+
+<div class="row">
<!-- breadcrumbs -->
- <div class="section">
+ <div class="col-md-12">
<ul class="breadcrumb" id="breadcrumb">
<li><a href="{% project_url build.project %}">{{build.project.name}}</a></li>
{% if not build.project.is_default %}
@@ -20,73 +106,56 @@
</li>
{% block localbreadcrumb %}{% endblock %}
</ul>
- <script>
- $( function () {
- $('#breadcrumb > li').append('<span class="divider">&rarr;</span>');
- $('#breadcrumb > li:last').addClass("active");
- $('#breadcrumb > li:last > span').remove();
- });
- </script>
</div>
+</div>
- <div class="row-fluid">
- <!-- begin left sidebar container -->
- <div id="nav" class="span2">
- <ul class="nav nav-list well">
- <li
- {% if request.resolver_match.url_name == 'builddashboard' %}
- class="active"
- {% endif %} >
- <a class="nav-parent" href="{% url 'builddashboard' build.pk %}">Build summary</a>
- </li>
- {% if build.target_set.all.0.is_image and build.outcome == 0 %}
- <li class="nav-header">Images</li>
- {% block nav-target %}
- {% for t in build.get_sorted_target_list %}
- <li><a href="{% url 'target' build.pk t.pk %}">{{t.target}}</a><li>
- {% endfor %}
- {% endblock %}
- {% endif %}
- <li class="nav-header">Build</li>
- {% block nav-configuration %}
- <li><a href="{% url 'configuration' build.pk %}">Configuration</a></li>
- {% endblock %}
- {% block nav-tasks %}
- <li><a href="{% url 'tasks' build.pk %}">Tasks</a></li>
- {% endblock %}
- {% block nav-recipes %}
- <li><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
- {% endblock %}
- {% block nav-packages %}
- <li><a href="{% url 'packages' build.pk %}">Packages</a></li>
- {% endblock %}
- <li class="nav-header">Performance</li>
- {% block nav-buildtime %}
- <li><a href="{% url 'buildtime' build.pk %}">Time</a></li>
- {% endblock %}
- {% block nav-cputime %}
- <li><a href="{% url 'cputime' build.pk %}">CPU usage</a></li>
- {% endblock %}
- {% block nav-diskio %}
- <li><a href="{% url 'diskio' build.pk %}">Disk I/O</a></li>
- {% endblock %}
-
- <li class="divider"></li>
+ <!-- begin left sidebar container for builds which started properly -->
+ {% if build.started %}
+ <div class="row">
+ <div id="nav" class="col-md-2">
+ <ul class="nav nav-pills nav-stacked" id="build-menu">
+ <li id="menu-dashboard"
+ {% if request.resolver_match.url_name == 'builddashboard' %}
+ class="active"
+ {% endif %} >
+ <a href="{% url 'builddashboard' build.pk %}">Build summary</a>
+ </li>
+ {% if build.has_images and build.outcome == build.SUCCEEDED %}
+ <li class="nav-header" data-menu-heading="images">Images</li>
+ {% block nav-target %}
+ {% for t in build.get_sorted_target_list %}
+ {% if t.has_images %}
+ <li id="menu-{{t.target}}"><a href="{% url 'target' build.pk t.pk %}">{{t.target}}</a><li>
+ {% endif %}
+ {% endfor %}
+ {% endblock %}
+ {% endif %}
+ <li class="nav-header">Build</li>
+ <li id="menu-configuration"><a href="{% url 'configuration' build.pk %}">Configuration</a></li>
+ <li><a href="{% url 'tasks' build.pk %}">Tasks</a></li>
+ <li><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
+ <li><a href="{% url 'packages' build.pk %}">Packages</a></li>
+ <li class="nav-header">Performance</li>
+ <li><a href="{% url 'buildtime' build.pk %}">Time</a></li>
+ <li><a href="{% url 'cputime' build.pk %}">CPU usage</a></li>
+ <li><a href="{% url 'diskio' build.pk %}">Disk I/O</a></li>
- <li>
- <p class="navbar-btn">
- <a class="btn btn-block" href="{% url 'build_artifact' build.id 'cookerlog' build.id %}">
- Download build log
+ <li class="nav-header">Actions</li>
+ <li>
+ <a href="{% url 'build_artifact' build.id 'cookerlog' build.id %}">
+ <span class="glyphicon glyphicon-download-alt"></span>
+ Download build log
</a>
- </p>
- </li>
+ </li>
- {% with build.get_custom_image_recipes as custom_image_recipes %}
- {% if custom_image_recipes.count > 0 %}
- <!-- edit custom image built during this build -->
- <li>
- <p class="navbar-btn" data-role="edit-custom-image-trigger">
- <button class="btn btn-block">Edit custom image</button>
+ {% with build.get_custom_image_recipes as custom_image_recipes %}
+ {% if custom_image_recipes.count > 0 %}
+ <!-- edit custom image built during this build -->
+ <li>
+ <a href="#" data-role="edit-custom-image-trigger">
+ <span class="glyphicon glyphicon-edit"></span>
+ Edit custom image
+ </a>
{% include 'editcustomimage_modal.html' %}
<script>
var editableCustomImageRecipes = {{ custom_image_recipes | objects_to_dictionaries:"id,name" | json }};
@@ -111,47 +180,55 @@
});
});
</script>
- </p>
- </li>
- {% endif %}
- {% endwith %}
-
- <li>
- <!-- new custom image from image recipe in this build -->
- <p class="navbar-btn" data-role="new-custom-image-trigger">
- <button class="btn btn-block">New custom image</button>
- </p>
- {% include 'newcustomimage_modal.html' %}
- <script>
- // imageRecipes includes both custom image recipes and built-in
- // image recipes, any of which can be used as the basis for a
- // new custom image
- var imageRecipes = {{ build.get_image_recipes | objects_to_dictionaries:"id,name" | json }};
-
- $(document).ready(function () {
- var newCustomImageModal = $('#new-custom-image-modal');
- var newCustomImageTrigger = $('[data-role="new-custom-image-trigger"]');
-
- // show create new custom image modal to select an image built
- // during this build as the basis for the custom recipe
- newCustomImageTrigger.click(function () {
- if (!imageRecipes.length) {
- return;
- }
-
- newCustomImageModalSetRecipes(imageRecipes);
- newCustomImageModal.modal('show');
- });
- });
- </script>
- </li>
- </ul>
+ </li>
+ {% endif %}
+ {% endwith %}
- </div>
- <!-- end left sidebar container -->
+ <!-- new custom image from image recipe in this build -->
+ {% if build.has_image_recipes %}
+ <li>
+ <a href="#" data-role="new-custom-image-trigger">
+ <span class="glyphicon glyphicon-plus"></span>
+ New custom image
+ </a>
+ {% include 'newcustomimage_modal.html' %}
+ <script>
+ // imageRecipes includes both custom image recipes and built-in
+ // image recipes, any of which can be used as the basis for a
+ // new custom image
+ var imageRecipes = {{ build.get_image_recipes | objects_to_dictionaries:"id,name" | json }};
- <!-- begin right container -->
- {% block buildinfomain %}{% endblock %}
- <!-- end right container -->
+ $(document).ready(function () {
+ var newCustomImageModal = $('#new-custom-image-modal');
+ var newCustomImageTrigger = $('[data-role="new-custom-image-trigger"]');
+
+ // show create new custom image modal to select an image built
+ // during this build as the basis for the custom recipe
+ newCustomImageTrigger.click(function () {
+ if (!imageRecipes.length) {
+ return;
+ }
+
+ newCustomImageModalSetRecipes(imageRecipes);
+ newCustomImageModal.modal('show');
+ });
+ });
+ </script>
+ {% endif %}
+
+ <li>
+ <a href="#delete-build-modal" id="delete-build" data-toggle="modal" data-target="#delete-build-modal" class="text-danger">
+ <span class="glyphicon glyphicon-trash"></span>
+ Delete build
+ </a>
+ </ul>
+ </div>
+ <!-- end left sidebar container -->
+ {% endif %}
+
+ <!-- right container; need class="row" for builds without left-hand menu -->
+ <div{% if not build.started %} class="row"{% endif %}>
+ {% block buildinfomain %}{% endblock %}
+ </div>
</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
index 8778305f3..8427d2521 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/baseprojectpage.html
@@ -7,24 +7,24 @@
{% block pagecontent %}
-{% include "projecttopbar.html" %}
-<script type="text/javascript">
- $(document).ready(function(){
- $("#config-nav .nav li a").each(function(){
- if (window.location.pathname === $(this).attr('href'))
- $(this).parent().addClass('active');
- else
- $(this).parent().removeClass('active');
- });
-
- $("#topbar-configuration-tab").addClass("active")
- });
-</script>
-
-<div class="row-fluid">
+<div class="row">
+ {% include "projecttopbar.html" %}
+ <script type="text/javascript">
+$(document).ready(function(){
+ $("#config-nav .nav li a").each(function(){
+ if (window.location.pathname === $(this).attr('href'))
+ $(this).parent().addClass('active');
+ else
+ $(this).parent().removeClass('active');
+ });
+
+ $("#topbar-configuration-tab").addClass("active")
+ });
+ </script>
+
<!-- only on config pages -->
- <div id="config-nav" class="span2">
- <ul class="nav nav-list well">
+ <div id="config-nav" class="col-md-2">
+ <ul class="nav nav-pills nav-stacked">
<li><a class="nav-parent" href="{% url 'project' project.id %}">Configuration</a></li>
<li class="nav-header">Compatible metadata</li>
<li><a href="{% url 'projectcustomimages' project.id %}">Custom images</a></li>
@@ -34,12 +34,18 @@
<li><a href="{% url 'projectlayers' project.id %}">Layers</a></li>
<li class="nav-header">Extra configuration</li>
<li><a href="{% url 'projectconf' project.id %}">BitBake variables</a></li>
+
+ <li class="nav-header">Actions</li>
+ <li>
+ <a href="#delete-project-modal" role="button" class="text-danger" data-toggle="modal" data-target="#delete-project-modal">
+ <i class="icon-trash text-danger"></i> Delete project</a>
+ </li>
</ul>
</div>
- <div class="span10">
+ <div class="col-md-10">
{% block projectinfomain %}{% endblock %}
</div>
-</div>
+</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
index ce023f51a..a2011fa90 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
@@ -2,12 +2,10 @@
</table>
<!-- Show pagination controls -->
-<div class="pagination pagination-centered">
- <div class="pull-left">
- Showing {{objects.start_index}} to {{objects.end_index}} out of {{objects.paginator.count}} entries.
- </div>
+<div id="pagination-basetable_bottom">
+ <!--span class="help-inline">Showing {{objects.start_index}} to {{objects.end_index}} out of {{objects.paginator.count}} entries.</span-->
- <ul class="pagination" style="display: block-inline">
+ <ul class="pagination">
{%if objects.has_previous %}
<li><a href="javascript:reload_params({'page':{{objects.previous_page_number}}})">&laquo;</a></li>
{%else%}
@@ -22,16 +20,18 @@
<li class="disabled"><a href="#">&raquo;</a></li>
{%endif%}
</ul>
- <div class="pull-right">
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
- {% with "10 25 50 100 150" as list%}
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="form-control pagesize">
+ {% with "10 25 50 100 150" as list%}
{% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
+ <option value="{{i}}">{{i}}</option>
{% endfor %}
- {% endwith %}
- </select>
- </div>
+ {% endwith %}
+ </select>
+ </div>
+ </form>
</div>
<!-- Update page display settings -->
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_top.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_top.html
index 0ddd74904..5a9076d2a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_top.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/basetable_top.html
@@ -159,66 +159,83 @@
</script>
<!-- control header -->
-<div class="navbar">
- <div class="navbar-inner">
- <form class="navbar-search input-append pull-left span6" id="searchform">
- <input id="search" name="search" type="text" placeholder="Search {%if object_search_display %}{{object_search_display}}{%else%}{{objectname}}{%endif%}" value="{%if request.GET.search %}{{request.GET.search}}{% endif %}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{%endif%}
- <input type="hidden" name="orderby" value="{{request.GET.orderby}}">
- <input type="hidden" name="page" value="1">
- <button class="btn" id="search-button" type="submit" value="Search">Search</button>
- </form>
- <div class="pull-right">
-{% if tablecols %}
- <div class="btn-group">
- <button id="edit-columns-button" class="btn dropdown-toggle" data-toggle="dropdown">Edit columns
- <span class="caret"></span>
- </button>
+<div class="navbar navbar-default">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#table-chrome-collapse-variablehistory" aria-expanded="false">
+ <span class="sr-only">Toggle table options</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ </div>
+ <div class="collapse navbar-collapse" id="table-chrome-collapse-variablehistory">
+ <form class="navbar-form navbar-left" id="searchform">
+ <div class="form-group">
+ <div class="btn-group">
+ <input class="form-control" id="search" name="search" type="text" placeholder="Search {%if object_search_display %}{{object_search_display}}{%else%}{{objectname}}{%endif%}" value="{%if request.GET.search %}{{request.GET.search}}{% endif %}"/>
+ {% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" tabindex="-1"><span class="remove-search-btn-variables glyphicon glyphicon-remove-circle"></span></a>{%endif%}
+ </div>
+ </div>
+ <input type="hidden" name="orderby" value="{{request.GET.orderby}}">
+ <input type="hidden" name="page" value="1">
+ <button class="btn btn-default" id="search-button" type="submit" value="Search">Search</button>
+ </form>
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="pagesize form-control">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ <option value="{{i}}">{{i}}</option>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </form>
+
+ <div class="btn-group navbar-right">
+ {% if tablecols %}
+ <button id="edit-columns-button" class="btn btn-default navbar-btn dropdown-toggle" data-toggle="dropdown">Edit columns
+ <span class="caret"></span>
+ </button>
<!--
{{tablecols|sortcols}}
-->
- <ul id='editcol' class="dropdown-menu">
- {% for i in tablecols|sortcols %}
- <li>
- <label {% if not i.clclass %} class="checkbox muted" {%else%} class="checkbox" {%endif%}>
- <input type="checkbox" class="chbxtoggle"
- {% if i.clclass %}
+ <ul id="editcol" class="dropdown-menu editcol">
+ {% for i in tablecols|sortcols %}
+ <li>
+ <div class="checkbox">
+ <label {% if not i.clclass %} class="muted" {%endif%}>
+ <input type="checkbox" class="chbxtoggle"
+ {% if i.clclass %}
id="{{i.clclass}}"
value="ct{{i.name}}"
{% if not i.hidden %}
- checked="checked"
+ checked="checked"
{%endif%}
onclick="showhideTableColumn(
- $(this).attr('id'),
- $(this).is(':checked'),
- {% if i.ordericon %}
- '{{i.orderkey}}'
- {% else %}
- undefined
- {% endif %}
+ $(this).attr('id'),
+ $(this).is(':checked'),
+ {% if i.ordericon %}
+ '{{i.orderkey}}'
+ {% else %}
+ undefined
+ {% endif %}
)"
- {%else%}
+ {%else%}
checked disabled
- {% endif %}/> {{i.name}}
- </label>
- </li>
- {% endfor %}
- </ul>
+ {% endif %}/>{{i.name}}
+ </label>
</div>
-{% endif %}
- <div style="display:inline">
- <span class="divider-vertical"></span>
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
- {% with "10 25 50 100 150" as list%}
- {% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
- {% endfor %}
- {% endwith %}
- </select>
- </div>
- </div>
- </div> <!-- navbar-inner -->
-</div>
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+ </div>
+ </div> <!-- navbar-collapse -->
+ </div> <!-- container-fluid -->
+</div> <!-- navbar-default -->
<!-- the actual rows of the table -->
<table class="table table-bordered table-hover tablesorter" id="otable">
@@ -226,11 +243,11 @@
<!-- Table header row; generated from "tablecols" entry in the context dict -->
<tr>
{% for tc in tablecols %}<th class="{%if tc.dclass%}{{tc.dclass}}{%endif%} {% if tc.clclass %}{{tc.clclass}}{% endif %}">
- {%if tc.qhelp%}<i class="icon-question-sign get-help" title="{{tc.qhelp}}"></i>{%endif%}
- {%if tc.orderfield%}<a {%if tc.ordericon%} class="sorted" {%endif%}href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })">{{tc.name}}</a>{%else%}<span class="muted">{{tc.name}}</span>{%endif%}
+ {%if tc.qhelp%}<span class="glyphicon glyphicon-question-sign get-help" title="{{tc.qhelp}}"></span>{%endif%}
+ {%if tc.orderfield%}<a {%if tc.ordericon%} class="sorted" {%endif%}href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })">{{tc.name}}</a>{%else%}<span class="text-muted">{{tc.name}}</span>{%endif%}
{%if tc.ordericon%} <i class="icon-caret-{{tc.ordericon}}"></i>{%endif%}
{%if tc.filter%}<div class="btn-group pull-right">
- <a href="#filter_{{tc.filter.class}}" role="button" class="btn btn-mini {%if request.GET.filter%}{{tc.filter.options|filtered_icon:request.GET.filter}} {%endif%}" {%if request.GET.filter and tc.filter.options|filtered_tooltip:request.GET.filter %} title="<p>{{tc.filter.options|filtered_tooltip:request.GET.filter}}</p><p><a class='btn btn-small btn-primary' href=javascript:reload_params({'filter':''})>Show all {% if filter_search_display %}{{filter_search_display}}{% else %}{{objectname}}{% endif %}</a></p>" {%endif%} data-toggle="modal"> <i class="icon-filter filtered"></i> </a>
+ <a href="#filter_{{tc.filter.class}}" role="button" class="btn btn-xs {%if request.GET.filter%}{{tc.filter.options|filtered_icon:request.GET.filter}} {%endif%}" {%if request.GET.filter and tc.filter.options|filtered_tooltip:request.GET.filter %} title="<p>{{tc.filter.options|filtered_tooltip:request.GET.filter}}</p><p><a class='btn btn-sm btn-primary' href=javascript:reload_params({'filter':''})>Show all {% if filter_search_display %}{{filter_search_display}}{% else %}{{objectname}}{% endif %}</a></p>" {%endif%} data-toggle="modal"> <span class="glyphicon glyphicon-filter filtered"></span> </a>
</div>{%endif%}
</th>{% endfor %}
</tr>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/bpackage.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/bpackage.html
deleted file mode 100644
index 81973cbc6..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/bpackage.html
+++ /dev/null
@@ -1,108 +0,0 @@
-{% extends "basebuildpage.html" %}
-
-{% load projecttags %}
-
-{% block title %} Packages built - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
-{% block localbreadcrumb %}
-<li>Packages</li>
-{% endblock %}
-
-{% block nav-packages %}
- <li class="active"><a href="{% url 'packages' build.pk %}">Packages</a></li>
-{% endblock %}
-
-{% block buildinfomain %}
-<div class="span10">
-
-{% if not request.GET.filter and not request.GET.search and not objects.paginator.count %}
-
-<!-- Empty - no data in database -->
-<div class="page-header">
- <h1>
- Packages
- </h1>
-</div>
-<div class="alert alert-info lead">
- <strong>No packages were built.</strong> How did this happen? Well, BitBake reuses as much stuff as possible.
- If all of the packages needed were already built and available in your build infrastructure, BitBake
- will not rebuild any of them. This might be slightly confusing, but it does make everything faster.
-</div>
-
-{% else %}
-
-<div class="page-header">
- <h1>
- {% if request.GET.search and objects.paginator.count > 0 %}
- {{objects.paginator.count}} package{{objects.paginator.count|pluralize}} found
- {%elif request.GET.search and objects.paginator.count == 0%}
- No packages found
- {%else%}
- Packages
- {%endif%}
- </h1>
-</div>
-
- {% if objects.paginator.count == 0 %}
- <div class="row-fluid">
- <div class="alert">
- <form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
- <button class="btn" type="submit" value="Search">Search</button>
- <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all packages</button>
- </form>
- </div>
- </div>
-
- {% else %}
- {% include "basetable_top.html" %}
-
- {% for package in objects %}
-
- <tr class="data">
-
- <!-- Package -->
- <td class="package_name"><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td>
- <!-- Package Version -->
- <td class="package_version">{%if package.version%}<a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}-{{package.revision}}</a>{%endif%}</td>
- <!-- Package Size -->
- <td class="size sizecol">{{package.size|filtered_filesizeformat}}</td>
- <!-- License -->
- <td class="license">{{package.license}}</td>
-
- {%if package.recipe%}
- <!-- Recipe -->
- <td class="recipe__name"><a href="{% url "recipe" build.pk package.recipe.pk %}">{{package.recipe.name}}</a></td>
- <!-- Recipe Version -->
- <td class="recipe__version"><a href="{% url "recipe" build.pk package.recipe.pk %}">{{package.recipe.version}}</a></td>
-
- <!-- Layer -->
- <td class="recipe__layer_version__layer__name">{{package.recipe.layer_version.layer.name}}</td>
- <!-- Layer branch -->
- <td class="recipe__layer_version__branch">{{package.recipe.layer_version.branch}}</td>
- <!-- Layer commit -->
- <td class="recipe__layer_version__layer__commit">
- <a class="btn"
- data-content="<ul class='unstyled'>
- <li>{{package.recipe.layer_version.commit}}</li>
- </ul>">
- {{package.recipe.layer_version.commit|truncatechars:13}}
- </a>
- </td>
- <!-- Layer directory -->
- {%else%}
- <td class="recipe__name"></td>
- <td class="recipe__version"></td>
- <td class="recipe__layer_version__layer__name"></td>
- <td class="recipe__layer_version__branch"></td>
- <td class="recipe__layer_version__layer__commit"></td>
- <td class="recipe__layer_version__local_path"></td>
- {%endif%}
-
- </tr>
- {% endfor %}
-
- {% include "basetable_bottom.html" %}
- {% endif %} {# objects.paginator.count #}
-{% endif %} {# Empty #}
-</div>
-{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builddashboard.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builddashboard.html
index a0da71ea4..02a29816a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builddashboard.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builddashboard.html
@@ -1,8 +1,9 @@
{% extends "basebuildpage.html" %}
{% load humanize %}
{% load projecttags %}
+{% load field_values_filter %}
-{% block title %} {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
+{% block title %} {{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
{% block parentbreadcrumb %}
{% if build.get_sorted_target_list.count > 0 %}
{{build.get_sorted_target_list.0.target}}
@@ -13,61 +14,57 @@
{% block buildinfomain %}
<!-- page title -->
-<div class="row-fluid span10">
- <div class="page-header">
- <h1>{{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}}</h1>
+<div class="{% if build.started %}col-md-10{% else %}col-md-12{% endif %}">
+ <div class="page-header build-data">
+ <h1>{{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}}</h1>
</div>
-</div>
<!-- build result bar -->
-<div class="row-fluid span10 pull-right">
- <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}">
- <div class="row-fluid lead">
- <span class="pull-left"><strong>
- {%if build.outcome == build.SUCCEEDED%}Completed{%elif build.outcome == build.FAILED%}Failed{%else%}{%endif%}
- </strong> on
- {{build.completed_on|date:"d/m/y H:i"}}
-</span>
-{% if build.warnings.count or build.errors.count %}
-&nbsp;with
-{% endif %}
-{%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
-{% if build.errors.count %}
- <span > <i class="icon-minus-sign red"></i><strong><a href="#errors" class="error show-errors"> {{build.errors.count}} error{{build.errors.count|pluralize}}</a></strong></span>
-{% endif %}
-{% if build.warnings.count %}
-{% if build.errors.count %}
- and
-{% endif %}
- <span > <i class="icon-warning-sign yellow"></i><strong><a href="#warnings" class="warning show-warnings"> {{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a></strong></span>
-{% endif %}
- <span class="pull-right">Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}</a>
- {% if build.cooker_log_path %}
- <a class="btn {%if build.outcome == build.SUCCEEDED%}btn-success{%else%}btn-danger{%endif%} pull-right log" href="{% url 'build_artifact' build.id "cookerlog" build.id %}">Download build log</a>
- {% endif %}
- </span>
+ <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-danger{%else%}alert-info{%endif%}">
+ <span><strong>{%if build.outcome == build.SUCCEEDED%}Completed{%elif build.outcome == build.FAILED%}Failed{%else%}{%endif%}</strong> on {{build.completed_on|date:"d/m/y H:i"}}</span>
+ {% if build.warnings.count or build.errors.count %}
+ <span>with</span>
+ {% endif %}
+ {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ {% if build.errors.count %}
+ <a href="#errors" class="alert-link show-errors"> {{build.errors.count}} error{{build.errors.count|pluralize}}</a>
+ {% endif %}
+ {% if build.warnings.count %}
+ {% if build.errors.count %}and{% endif %}
+ <a href="#warnings" class="show-warnings"> {{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>
+ {% endif %}
+ {% if build.cooker_log_path %}
+ <a class="pull-right log" href="{% url 'build_artifact' build.id "cookerlog" build.id %}">Download build log</a>
+ {% endif %}
+ <span class="pull-right">
+ Build time:
+ <span data-build-field="buildtime">
+ {% if build.outcome == build.SUCCEEDED %}
+ <a href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}</a>
+ {% else %}
+ {{ build.timespent_seconds|sectohms }}
+ {% endif %}
+ </span>
+ </span>
-{%endif%}
- </div>
- </div>
+ {%endif%}
</div>
{% if build.errors.count %}
-<div class="accordion span10 pull-right" id="errors">
- <div class="accordion-group">
- <div class="accordion-heading">
- <a class="accordion-toggle error toggle-errors">
- <h2 id="error-toggle">
- <i class="icon-minus-sign"></i>
+ <div class="panel panel-default" id="errors">
+ <div class="panel-heading">
+ <h2 class="panel-title">
+ <span class="glyphicon glyphicon-minus-sign"></span>
+ <a data-toggle="collapse" href="#error-info" id="error-toggle">
{{build.errors.count}} error{{build.errors.count|pluralize}}
- </h2>
- </a>
+ </a>
+ </h2>
</div>
- <div class="accordion-body collapse in" id="collapse-errors">
- <div class="accordion-inner">
- <div class="span10">
+ <div class="panel-collapse collapse in" id="error-info">
+ <div class="panel-body">
+ <div class="{% if build.started %}col-md-10{% else %}col-md-12{% endif %}">
{% for error in build.errors %}
- <div class="alert alert-error" data-error="{{ error.id }}">
+ <div class="alert alert-danger" data-log-message-id="{{error.pk}}">
<pre>{{error.message}}</pre>
</div>
{% endfor %}
@@ -75,57 +72,62 @@
</div>
</div>
</div>
-</div>
{% endif %}
{%if build.outcome == build.SUCCEEDED%}
<!-- built images -->
-{% if hasImages %}
-<div class="row-fluid span10 pull-right">
- <h2>Images</h2>
+ {% if hasArtifacts %}
+ <h2 data-heading="build-artifacts">Build artifacts</h2>
{% for target in targets %}
{% if target.target.is_image %}
- <div class="well dashboard-section">
- <h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target}}</a>
- </h3>
- <dl class="dl-horizontal">
- <dt>Packages included</dt>
- <dd><a href="{% url 'target' build.pk target.target.pk %}">{{target.npkg}}</a></dd>
- <dt>Total package size</dt>
- <dd>{{target.pkgsz|filtered_filesizeformat}}</dd>
- {% if target.targetHasNoImages %}
- </dl>
- <div class="row-fluid">
- <div class="alert alert-info span7">
- <p>
- <b>This build did not create any image files</b>
- </p>
- <p>
- This is probably because valid image and license manifest
- files from a previous build already exist in your
- <code>.../poky/build/tmp/deploy</code>
- directory. You can
- also <a href="{% url 'targetpkg' build.pk target.target.pk %}">view the
- license manifest information</a> in Toaster.
- </p>
- </div>
- </div>
+ <div class="well well-transparent dashboard-section" data-artifacts-for-target="{{target.target.pk}}">
+ {% if target.npkg > 0 %}
+ <h3>
+ <a href="{% url 'target' build.pk target.target.pk %}" data-link="target-packages">
+ {{target.target.target}}
+ </a>
+ </h3>
+ <dl class="dl-horizontal">
+ <dt>Packages included</dt>
+ <dd>
+ <a href="{% url 'target' build.pk target.target.pk %}">
+ <span data-value="target-package-count">{{target.npkg}}</span>
+ </a>
+ </dd>
+ <dt>Total package size</dt>
+ <dd>
+ <span data-value="target-package-size">{{target.pkgsz|filtered_filesizeformat}}</span>
+ </dd>
+ </dl>
{% else %}
- <dt>
- <i class="icon-question-sign get-help" title="The location in disk of the license manifest, a document listing all packages installed in your image and their licenses"></i>
+ <h3>{{target.target.target}}</h3>
+ {% endif %}
- License manifest
+ {% if target.targetHasImages %}
+ <dl class="dl-horizontal">
+ <dt>
+ Manifests
</dt>
+
<dd>
- <a href="{% url 'targetpkg' build.pk target.target.pk %}">View in Toaster</a> |
- <a href="{% url 'build_artifact' build.pk 'licensemanifest' target.target.pk %}">Download</a></dd>
+ <a data-link="license-manifest" href="{% url 'build_artifact' build.pk 'licensemanifest' target.target.pk %}">License manifest</a>
+ </dd>
+
+ {% if target.target.package_manifest_path %}
+ <dd>
+ <a data-link="package-manifest" href="{% url 'build_artifact' build.pk 'packagemanifest' target.target.pk %}">Package manifest</a>
+ </dd>
+ {% endif %}
+ </dl>
+
+ <dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="Image files are stored in <code>/build/tmp/deploy/images/</code>"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Image files are stored in <code>build/tmp/deploy/images/</code>"></span>
Image files
</dt>
<dd>
- <ul>
- {% for i in target.imageFiles %}
+ <ul class="list-unstyled" data-links="image-artifacts">
+ {% for i in target.imageFiles|dictsort:"suffix" %}
<li>
<a href="{% url 'build_artifact' build.pk 'imagefile' i.id %}">
{{i.suffix}}
@@ -135,13 +137,42 @@
{% endfor %}
</ul>
</dd>
- </dl>
+ <dt>
+ Kernel artifacts
+ </dt>
+ <dd>
+ <ul class="list-unstyled" data-links="kernel-artifacts">
+ {% for artifact in target.target_kernel_artifacts|dictsort:"basename" %}
+ <li>
+ <a href="{% url 'build_artifact' build.id 'targetkernelartifact' artifact.id %}">{{artifact.basename}}</a>
+ ({{artifact.file_size|filtered_filesizeformat}})
+ </li>
+ {% endfor %}
+ </ul>
+ </dd>
+ </dl>
+ {% endif %}
+ {% if target.target_sdk_artifacts_count > 0 %}
+ <dl class="dl-horizontal">
+ <dt>
+ SDK artifacts
+ </dt>
+ <dd>
+ <ul class="list-unstyled" data-links="sdk-artifacts">
+ {% for artifact in target.target_sdk_artifacts|dictsort:"basename" %}
+ <li>
+ <a href="{% url 'build_artifact' build.id 'targetsdkartifact' artifact.id %}">{{artifact.basename}}</a>
+ ({{artifact.file_size|filtered_filesizeformat}})
+ </li>
+ {% endfor %}
+ </ul>
+ </dd>
+ </dl>
{% endif %}
</div>
{% endif %}
{% endfor %}
-</div>
-{% endif %}
+ {% endif %}
{%else%}
<!-- error dump -->
@@ -149,13 +180,12 @@
<!-- other artifacts -->
{% if build.buildartifact_set.all.count > 0 %}
-<div class="row-fluid span10 pull-right">
<h2>Other artifacts</h2>
- <div class="well dashboard-section">
+ <div class="well well-transparent dashboard-section">
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="Build artifacts discovered in <i>tmp/deploy/images</i>. Usually kernel images and kernel modules."></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Build artifacts discovered in <i>tmp/deploy/images</i>. Usually kernel images and kernel modules."></span>
Other artifacts</dt>
<dd><div>
{% for ba in build.buildartifact_set.all|dictsort:"file_name" %}
@@ -170,92 +200,97 @@
</dl>
</div>
-</div>
{% endif %}
-<!-- build summary -->
-<div class="row-fluid span10 pull-right">
-<h2>Build summary</h2>
- <div class="well span4 dashboard-section" style="margin-left:0px;">
- <h4><a href="{%url 'configuration' build.pk%}">Configuration</a></h4>
- <dl>
- <dt>Machine</dt><dd>{{build.machine}}</dd>
- <dt>Distro</dt><dd>{{build.distro}}</dd>
- <dt>Layers</dt>{% for i in build.layer_version_build.all|dictsort:"layer.name" %}<dd>{{i.layer.name}}</dd>{%endfor%}
- </dl>
- </div>
- <div class="well span4 dashboard-section">
- <h4><a href="{%url 'tasks' build.pk%}">Tasks</a></h4>
- <dl>
- {% query build.task_build outcome=4 order__gt=0 as exectask%}
- {% if exectask.count > 0 %}
- <dt>Failed tasks</dt>
- <dd>
- {% if exectask.count == 1 %}
- <a class="error" href="{% url "task" build.id exectask.0.id %}">
- {{exectask.0.recipe.name}}
- <span class="task-name">{{exectask.0.task_name}}</span>
- </a>
- <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
- <i class="icon-download-alt" title="" data-original-title="Download task log file"></i>
- </a>
+{% if build.started %}
+ <!-- build summary -->
+ <h2 data-role="build-summary-heading">Build summary</h2>
+ <div class="row">
+ <div class="col-md-4 dashboard-section">
+ <div class="well well-transparent">
+ <h3><a href="{%url 'configuration' build.pk%}">Configuration</a></h3>
+ <dl>
+ <dt>Machine</dt><dd>{{build.machine}}</dd>
+ <dt>Distro</dt><dd>{{build.distro}}</dd>
+ <dt>Layers</dt><dd><ul class="list-unstyled">{% for i in build.layer_version_build.all|dictsort:"layer.name" %}<li>{{i.layer.name}}</li>{%endfor%}</ul></dd>
+ </dl>
+ </div>
+ </div>
+ <div class="col-md-4 dashboard-section">
+ <div class="well well-transparent">
+ <h3><a href="{%url 'tasks' build.pk%}">Tasks</a></h3>
+ <dl>
+ {% query build.task_build outcome=4 order__gt=0 as exectask%}
+ {% if exectask.count > 0 %}
+ <dt>Failed tasks</dt>
+ <dd>
+ {% if exectask.count == 1 %}
+ <a class="text-danger" href="{% url "task" build.id exectask.0.id %}">
+ {{exectask.0.recipe.name}}
+ <span class="task-name">{{exectask.0.task_name}}</span>
+ </a>
- {% elif exectask.count > 1%}
- <a class="error" href="{% url "tasks" build.id %}?filter=outcome%3A4">{{exectask.count}}</a>
- {% endif %}
- </dd>
- {% endif %}
- <dt>Total number of tasks</dt><dd><a href="{% url 'tasks' build.pk %}">{% query build.task_build order__gt=0 as alltasks %}{{alltasks.count}}</a></dd>
- <dt>
- Tasks executed
- <i class="icon-question-sign get-help" title="'Executed' tasks are those that need to be run in order to generate the task output"></i>
- </dt>
- <dd><a href="{% url 'tasks' build.pk %}?filter=task_executed%3A1&amp;count=25&amp;search=&amp;page=1&amp;orderby=order%3A%2B">{% query build.task_build task_executed=1 order__gt=0 as exectask%}{{exectask.count}}</a></dd>
- <dt>
- Tasks not executed
- <i class="icon-question-sign get-help" title="'Not executed' tasks don't need to run because their outcome is provided by another task"></i>
- </dt>
- <dd><a href="{% url 'tasks' build.pk %}?filter=task_executed%3A0&amp;count=25&amp;search=&amp;page=1&amp;orderby=order%3A%2B">{% query build.task_build task_executed=0 order__gt=0 as noexectask%}{{noexectask.count}}</a></dd>
- <dt>
- Reuse
- <i class="icon-question-sign get-help" title="The percentage of 'not executed' tasks over the total number of tasks, which is a measure of the efficiency of your build"></i>
- </dt>
- <dd>
-{% query build.task_build order__gt=0 as texec %}
-{% if noexectask.count|multiply:100|divide:texec.count < 0 %}
-0
-{% else %}
-{{noexectask.count|multiply:100|divide:texec.count}}
-{% endif %}
-%
- </dd>
- </dl>
- </div>
- <div class="well span4 dashboard-section">
- <h4><a href="{% url 'recipes' build.pk %}">Recipes</a> & <a href="{% url 'packages' build.pk %}">Packages</a></h4>
- <dl>
- <dt>Recipes built</dt><dd><a href="{% url 'recipes' build.pk %}">{{recipecount}}</a></dd>
- <dt>Packages built</dt><dd><a href="{% url 'packages' build.pk %}">{{packagecount}}</a></dd>
- </dl>
+ <a href="{% url 'build_artifact' build.id "tasklogfile" exectask.0.id %}">
+ <span class="glyphicon glyphicon-download-alt get-help" title="Download task log file"></i>
+ </a>
+
+ {% elif exectask.count > 1%}
+ <a class="text-danger" href="{% url "tasks" build.id %}?limit=25&amp;page=1&amp;orderby=order&amp;filter=task_outcome:failed&amp;default_orderby=order&amp;filter_value=on&amp;">{{exectask.count}}</a>
+ {% endif %}
+ </dd>
+ {% endif %}
+ <dt>Total number of tasks</dt><dd><a href="{% url 'tasks' build.pk %}">{% query build.task_build order__gt=0 as alltasks %}{{alltasks.count}}</a></dd>
+ <dt>
+ Tasks executed
+ <span class="glyphicon glyphicon-question-sign get-help" title="'Executed' tasks are those that need to be run in order to generate the task output"></span>
+ </dt>
+ <dd><a href="{% url 'tasks' build.pk %}?limit=25&amp;page=1&amp;orderby=order&amp;filter=execution_outcome:executed&amp;default_orderby=order&amp;filter_value=on&amp;">{% query build.task_build task_executed=1 order__gt=0 as exectask%}{{exectask.count}}</a></dd>
+ <dt>
+ Tasks not executed
+ <span class="glyphicon glyphicon-question-sign get-help" title="'Not executed' tasks don't need to run because their outcome is provided by another task"></span>
+ </dt>
+ <dd><a href="{% url 'tasks' build.pk %}?limit=25&amp;page=1&amp;orderby=order&amp;filter=execution_outcome:not_executed&amp;default_orderby=order&amp;filter_value=on&amp;">{% query build.task_build task_executed=0 order__gt=0 as noexectask%}{{noexectask.count}}</a></dd>
+ <dt>
+ Reuse
+ <span class="glyphicon glyphicon-question-sign get-help" title="The percentage of 'not executed' tasks over the total number of tasks, which is a measure of the efficiency of your build"></span>
+ </dt>
+ <dd>
+ {% query build.task_build order__gt=0 as texec %}
+ {% if noexectask.count|multiply:100|divide:texec.count < 0 %}
+ 0
+ {% else %}
+ {{noexectask.count|multiply:100|divide:texec.count}}
+ {% endif %}
+ %
+ </dd>
+ </dl>
+ </div>
+ </div>
+ <div class="col-md-4 dashboard-section">
+ <div class="well well-transparent">
+ <h3><a href="{% url 'recipes' build.pk %}">Recipes</a> & <a href="{% url 'packages' build.pk %}">Packages</a></h3>
+ <dl>
+ <dt>Recipes built</dt><dd><a href="{% url 'recipes' build.pk %}">{{recipecount}}</a></dd>
+ <dt>Packages built</dt><dd><a href="{% url 'packages' build.pk %}">{{packagecount}}</a></dd>
+ </dl>
+ </div>
</div>
-</div>
+ </div>
+{% endif %} <!-- end build summary -->
{% if build.warnings.count %}
-<div class="accordion span10 pull-right" id="warnings">
- <div class="accordion-group">
- <div class="accordion-heading">
- <a class="accordion-toggle warning toggle-warnings">
- <h2 id="warning-toggle">
- <i class="icon-warning-sign"></i>
- {{build.warnings.count}} warning{{build.warnings.count|pluralize}}
- </h2>
- </a>
+ <div class="panel panel-default" id="warnings">
+ <div class="panel-heading">
+ <h2 class="panel-title">
+ <span class="glyphicon glyphicon-warning-sign"></span>
+ <a id="warning-toggle" href="#warning-info" data-toggle="collapse">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>
+ </h2>
</div>
- <div class="accordion-body collapse" id="collapse-warnings">
- <div class="accordion-inner">
- <div class="span10">
+ <div class="panel-collapse collapse" id="warning-info">
+ <div class="panel-body">
+ <div class="{% if build.started %}col-md-10{% else %}col-md-12{% endif %}">
{% for warning in logmessages %}{% if warning.level == 1 %}
- <div class="alert alert-warning">
+ <div class="alert alert-warning" data-log-message-id="{{warning.pk}}">
<pre>{{warning.message}}</pre>
</div>
{% endif %}{% endfor %}
@@ -263,15 +298,21 @@
</div>
</div>
</div>
-</div>
{% endif %}
+</div> <!-- end 10 column row -->
+
<script type="text/javascript">
$(document).ready(function() {
//show warnings section when requested from the previous page
if (location.href.search('#warnings') > -1) {
- $('#collapse-warnings').addClass('in');
+ $('#warning-info').addClass('in');
}
+
+ //show warnings section when requested from the build outcome
+ $(".show-warnings").click(function() {
+ $('#warning-info').addClass('in');
+ });
});
</script>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildinfo-toastertable.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildinfo-toastertable.html
new file mode 100644
index 000000000..eb4c65690
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildinfo-toastertable.html
@@ -0,0 +1,25 @@
+{% extends "basebuildpage.html" %}
+
+{% load projecttags %}
+
+{% block title %} {{title}} - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
+{% block localbreadcrumb %}
+<li>{{title}}</li>
+{% endblock %}
+
+{% block nav-packages %}
+{% endblock %}
+
+{% block buildinfomain %}
+<div class="col-md-10">
+{# xhr_table_url is just the current url so leave it blank #}
+{% with xhr_table_url='' %}
+ <div class="page-header build-data">
+ <h1>
+ {{title}} (<span class="table-count-{{table_name}}">0</span>) </h2>
+ </h1>
+ </div>
+ {% include "toastertable.html" %}
+{% endwith %}
+</div>
+{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html
deleted file mode 100644
index 70fa1fb9a..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html
+++ /dev/null
@@ -1,64 +0,0 @@
-{% extends "baseprojectpage.html" %}
-
-{% load static %}
-{% load projecttags %}
-{% load humanize %}
-
-
-{% block projectinfomain %}
- <!-- begin content -->
-
- <div class="row-fluid">
-
- <!-- end left sidebar container -->
- <!-- Begin right container -->
- <div class="span10">
- <div class="page-header">
- <h1>
- <span data-toggle="tooltip" {%if buildrequest.brtarget_set.all.count > 1%}title="Targets: {%for target in buildrequest.brtarget_set.all%}{{target.target}} {%endfor%}"{%endif%}>{{buildrequest.brtarget_set.all.0.target}} {%if buildrequest.brtarget_set.all.count > 1%}(+ {{buildrequest.brtarget_set.all.count|add:"-1"}}){%endif%} {{buildrequest.get_machine}} </span>
-
- </h1>
- </div>
- <div class="alert alert-error">
- <p class="lead">
- <strong>Failed</strong>
- on {{ buildrequest.updated|date:'d/m/y H:i' }}
- with
-
- <i class="icon-minus-sign error" style="margin-left:6px;"></i>
- <strong><a class="error accordion-toggle toggle-errors" href="#errors">
- {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
- </a></strong>
- <span class="pull-right">Build time: {{buildrequest.get_duration|sectohms}}</span>
- </p>
- </div>
-
- <div class="accordion" id="errors">
- <div class="accordion-group">
- <div class="accordion-heading">
- <a class="accordion-toggle error toggle-errors">
- <h2>
- <i class="icon-minus-sign"></i>
- {{buildrequest.brerror_set.all.count}} error{{buildrequest.brerror_set.all.count|pluralize}}
- </h2>
- </a>
- </div>
- <div class="accordion-body collapse in" id="collapse-errors">
- <div class="accordion-inner">
- <div class="span10">
- {% for error in buildrequest.brerror_set.all %}
- <div class="alert alert-error">
- ERROR: <div class="air well"><pre>{{error.errmsg}}</pre></div>
- </div>
- {% endfor %}
- </div>
- </div>
- </div>
-
- </div>
- </div>
- </div>
- </div> <!-- end of row-fluid -->
-
-
-{%endblock%}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builds-toastertable.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builds-toastertable.html
index bf13a66bd..0afe0a311 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builds-toastertable.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/builds-toastertable.html
@@ -13,16 +13,20 @@
{% block pagecontent %}
- <div class="row-fluid">
+<div class="row">
+ <div class="col-md-12">
{% with mru=mru mrb_type=mrb_type %}
{% include 'mrb_section.html' %}
{% endwith %}
- <h1 class="page-header top-air" data-role="page-title"></h1>
+ <div class="page-header">
+ <h1 class="top-air" data-role="page-title"></h1>
+ </div>
{% url 'builds' as xhr_table_url %}
{% include 'toastertable.html' %}
</div>
+</div>
<script>
$(document).ready(function () {
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildtime.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildtime.html
deleted file mode 100644
index ea84ae797..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/buildtime.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% extends "basebuildpage.html" %}
-{% block localbreadcrumb %}
-<li>Build Time</li>
-{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configuration.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configuration.html
index 85d6a622a..58989f865 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configuration.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configuration.html
@@ -6,21 +6,17 @@
<li>Configuration</li>
{% endblock %}
-{% block nav-configuration %}
- <li class="active"><a href="{% url 'configuration' build.pk %}">Configuration</a></li>
-{% endblock %}
-
{% block buildinfomain %}
<!-- page title -->
-<div class="row-fluid span10">
- <div class="page-header">
+<div class="col-md-10">
+
+ <div class="page-header build-data">
<h1>Configuration</h1>
</div>
-</div>
<!-- configuration table -->
-<div class="row-fluid pull-right span10" id="navTab">
-<ul class="nav nav-pills">
+<div id="navTab">
+<ul class="nav nav-tabs">
<li class="active"><a href="#">Summary</a></li>
<li class=""><a href="{% url 'configvars' build.id %}">BitBake variables</a></li>
</ul>
@@ -39,34 +35,51 @@
{%if TUNE_FEATURES %}<dt>Tune features</dt><dd>{{TUNE_FEATURES}}</dd> {% endif %}
{%if TARGET_FPU %}<dt>Target FPU</dt><dd>{{TARGET_FPU}}</dd> {% endif %}
{%if targets.all %}<dt>Target(s)</dt>
- <dd> <ul> {% for target in targets.all %}
+ <dd> <ul class="list-unstyled"> {% for target in targets.all %}
<li>{{target.target}}{%if forloop.counter > 1 %}<br>{% endif %}</li>
{% endfor %} </ul> </dd> {% endif %}
</dl>
<h3>Layers</h3>
- <div class="span9" style="margin-left:0px;">
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <th>Layer</th>
- <th>Layer branch</th>
- <th>Layer commit</th>
- </tr>
- </thead>
- <tbody>{% for lv in build.layer_version_build.all|dictsort:"layer.name" %}
- <tr>
+ <div class="row">
+ <div class="col-md-9 table-responsive">
+ <table class="table table-bordered table-hover">
+ <thead>
+ <tr>
+ <th>Layer</th>
+ <th>Layer branch</th>
+ <th>Layer commit</th>
+ </tr>
+ </thead>
+ <tbody>{% for lv in build.layer_version_build.all|dictsort:"layer.name" %}
+ <tr>
<td>{{lv.layer.name}}</td>
+ {% if lv.layer.local_source_dir %}
+ <td>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{lv.layer.name}} is not in a Git repository, so there is no branch associated with it"> </span>
+ </td>
+ {% else %}
<td>{{lv.branch}}</td>
- <td> <a class="btn" data-content="<ul class='unstyled'>
- <li>{{lv.commit}}</li> </ul>">
- {{lv.commit|truncatechars:13}}
- </a></td>
- </tr>{% endfor %}
- </tbody>
- </table>
+ {% endif %}
+ {% if lv.layer.local_source_dir %}
+ <td>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" data-original-title="" title="The source code of {{lv.layer.name}} is not in a Git repository, so there is no commit associated with it"> </span>
+ </td>
+ {% else %}
+ <td> <a class="btn btn-default" data-content="<ul class='list-unstyled'>
+ <li>{{lv.commit}}</li> </ul>">
+ {{lv.commit|truncatechars:13}}
+ </a></td>
+ {% endif %}
+ </tr>{% endfor %}
+ </tbody>
+ </table>
+ </div>
</div>
</div>
-
</div>
+
+</div> <!-- end of 10-column section -->
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configvars.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configvars.html
index e40c225a3..ca2e1eab3 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configvars.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/configvars.html
@@ -6,14 +6,10 @@
<li>Configuration</li>
{% endblock %}
-{% block nav-configuration %}
- <li class="active"><a href="{% url 'configuration' build.pk %}">Configuration</a></li>
-{% endblock %}
-
{% block buildinfomain %}
<!-- page title -->
-<div class="row-fluid span10">
- <div class="page-header">
+<div class="col-md-10">
+ <div class="page-header build-data">
<h1>
{% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
{{objects.paginator.count}} variable{{objects.paginator.count|pluralize}} found
@@ -24,11 +20,10 @@
{%endif%}
</h1>
</div>
-</div>
<!-- configuration table -->
-<div class="row-fluid pull-right span10" id="navTab">
- <ul class="nav nav-pills">
+<div id="navTab">
+ <ul class="nav nav-tabs">
<li class=""><a href="{% url 'configuration' build.id %}">Summary</a></li>
<li class="active"><a href="#" >BitBake variables</a></li>
</ul>
@@ -37,14 +32,21 @@
<div id="variables" class="tab-pane">
{% if objects.paginator.count == 0 %}
- <div class="row-fluid">
- <div class="alert">
- <form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
- <button class="btn" type="submit" value="Search">Search</button>
- <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all variables</button>
- </form>
+ <div class="alert alert-warning">
+ <form class="no-results form-inline" id="searchform">
+ <div class="form-group">
+ <div class="btn-group">
+ <input class="form-control" id="search" name="search" type="text" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>
+ {% if request.GET.search %}
+ <a href="javascript:$('#search').val('');searchform.submit()" tabindex="-1">
+ <span class="remove-search-btn-variables glyphicon glyphicon-remove-circle"></span>
+ </a>
+ {% endif %}
+ </div>
</div>
+ <button class="btn btn-default" type="submit" value="Search">Search</button>
+ <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all variables</button>
+ </form>
</div>
{% else %}
@@ -53,81 +55,91 @@
{% for variable in objects %}
<tr class="data">
<td class="variable_name"><a data-toggle="modal" href="#variable-{{variable.pk}}">{{variable.variable_name}}</a></td>
- <td class="variable_value"><a data-toggle="modal" href="#variable-{{variable.pk}}">{{variable.variable_value|truncatechars:153}}</a></td>
- <td class="file"><a data-toggle="modal" href="#variable-{{variable.pk}}">
+ <td class="variable_value">{{variable.variable_value|truncatechars:153}}</td>
+ <td class="file">
{% if variable.vhistory.all %}
{% for path in variable.vhistory.all|filter_setin_files:file_filter %}
{{path}}<br/>
{% endfor %}
{% endif %}
- </a></td>
+ </td>
<td class="description">
{% if variable.description %}
{{variable.description}}
<a href="http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-{{variable.variable_name|variable_parent_name}}" target="_blank">
- <i class="icon-share get-info"></i></a>
+ <span class="glyphicon glyphicon-new-window get-info"></span></a>
{% endif %}
</td>
</tr>
{% endfor %}
-
+</tbody>
+</table>
+</div> <!-- table-responsive -->
{% include "basetable_bottom.html" %}
{% endif %}
</div> <!-- endvariables -->
<!-- file list popups -->
{% for variable in objects %}
- {% if variable.vhistory.count %}
- <div id="variable-{{variable.pk}}" class="modal hide fade" tabindex="-1" role="dialog">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3>History of {{variable.variable_name}}</h3>
- </div>
- <div class="modal-body">
- {% if variable.variable_value %}
- {% if variable.variable_value|length < 570 %}
- <h4>{{variable.variable_name}} value is:</h4>
- <p>
- {{variable.variable_value}}
- </p>
- {% else %}
- <h4>{{variable.variable_name}} value is:</h4>
- <p>
- <span>{{variable.variable_value|string_slice:':570'}}
- <span class="full"> {{variable.variable_value|string_slice:'570:'}}
- </span>
- <a class="btn btn-mini full-show">...</a>
- </span>
- </p>
- <a class="btn btn-mini full-hide">Collapse variable value <i class="icon-caret-up"></i>
- </a>
- {% endif %}
- {% else %}
- <div class="alert alert-info">The value of <strong>{{variable.variable_name}}</strong> is an empty string</div>
- {% endif %}
- <h4>The value was set in the following configuration files:</h4>
- <table class="table table-bordered table-hover">
- <thead>
- <tr>
- <th>Order</th>
- <th>Configuration file</th>
- <th>Operation</th>
- <th>Line number</th>
- </tr>
- </thead>
- <tbody>
- {% for vh in variable.vhistory.all %}
- <tr>
- <td>{{forloop.counter}}</td><td>{{vh.file_name}}</td><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
- </tr>
- {%endfor%}
- </tbody>
- </table>
+{% if variable.vhistory.count %}
+<div id="variable-{{variable.pk}}" class="modal fade" tabindex="-1" role="dialog">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3>History of {{variable.variable_name}}</h3>
+ </div>
+ <div class="modal-body">
+ {% if variable.variable_value %}
+ {% if variable.variable_value|length < 570 %}
+ <h4>{{variable.variable_name}} value is:</h4>
+ <p>
+ {{variable.variable_value}}
+ </p>
+ {% else %}
+ <h4>{{variable.variable_name}} value is:</h4>
+ <p>
+ <span>{{variable.variable_value|string_slice:':570'}}
+ <span class="full"> {{variable.variable_value|string_slice:'570:'}}
+ </span>
+ <a href="#" class="full-show">...</a>
+ </span>
+ </p>
+ <a href="#" class="full-hide">Collapse variable value <i class="icon-caret-up"></i>
+ </a>
+ {% endif %}
+ {% else %}
+ <div class="alert alert-info">The value of <strong>{{variable.variable_name}}</strong> is an empty string</div>
+ {% endif %}
+ <h4>The value was set in the following configuration files:</h4>
+ <div class="table-responsive">
+ <table class="table table-bordered table-hover">
+ <thead>
+ <tr>
+ <th>Order</th>
+ <th>Configuration file</th>
+ <th>Operation</th>
+ <th>Line</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for vh in variable.vhistory.all %}
+ <tr>
+ <td>{{forloop.counter}}</td><td class="file">{{vh.file_name}}</td><td>{{vh.operation}}</td><td>{{vh.line_number}}</td>
+ </tr>
+ {%endfor%}
+ </tbody>
+ </table>
</div>
- </div>
- {% endif %}
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
+{% endif %}
{% endfor %}
</div> <!-- buildinfomain -->
+</div> <!-- end 10-column section -->
+
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customise_btn.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customise_btn.html
index 2e54a9d90..38c258ac3 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customise_btn.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customise_btn.html
@@ -1,15 +1,15 @@
-<button class="btn btn-block layer-exists-{{data.layer_version.pk}} customise-btn" data-recipe="{{data.pk}}"
+<button class="btn btn-default btn-block layer-exists-{{data.layer_version.pk}} customise-btn" data-recipe="{{data.pk}}"
{% if data.layer_version.pk not in extra.current_layers %}
style="display:none;"
{% endif %}
>
Customise
</button>
-<button class="btn btn-block layer-add-{{data.layer_version.pk}} layerbtn" data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}"}' data-directive="add"
+<button class="btn btn-default btn-block layer-add-{{data.layer_version.pk}} layerbtn" data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}"}' data-directive="add"
{% if data.layer_version.pk in extra.current_layers %}
style="display:none;"
{% endif %}
>
- <i class="icon-plus"></i>
+ <i class="glyphicon glyphicon-plus"></i>
Add layer
</button>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customrecipe.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customrecipe.html
index ea3c9c732..945fc9797 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customrecipe.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/customrecipe.html
@@ -4,7 +4,7 @@
{% load static %}
{% block pagecontent %}
-<div class="section">
+{% with recipe.get_base_recipe_file as base_recipe_file %}
<ul class="breadcrumb">
<li>
<a href="{% url 'project' project.id %}">{{project.name}}</a>
@@ -17,7 +17,6 @@
{{recipe.name}} ({{recipe.layer_version.layer.name}})
</li>
</ul>
-</div>
<script src="{% static 'js/customrecipe.js' %}"></script>
<script>
@@ -29,6 +28,7 @@
includedPackagesCount: {{recipe.includes_set.count}},
baseRecipeId: {{recipe.base_recipe.pk}},
xhrPackageListUrl: "{% url 'xhr_customrecipe_packages' recipe.pk %}",
+ xhrCustomRecipeUrl: "{% url 'xhr_customrecipe_id' recipe.pk %}",
}
};
@@ -40,95 +40,137 @@
}
});
</script>
+
+<!-- Delete recipe modal -->
+<div id="delete-recipe-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-body">
+ <p>Are you sure you want to delete the <strong>{{recipe.name}}</strong>
+ custom image?</p>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" id="delete-custom-recipe-confirmed">
+ <span data-role="submit-state">Delete custom image</span>
+ <span data-role="loading-state" style="display:none">
+ <span class="fa-pulse">
+ <i class="fa-pulse icon-spinner"></i>
+ </span>
+ &nbsp;Deleting custom image...
+ </span>
+ </button>
+ <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
+<!-- end delete recipe modal -->
+
<!-- package dependencies modal -->
-<div style="display:none" id="package-deps-modal" class="modal hide fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3><span class="package-to-add-name"></span> dependencies</h3>
- </div>
- <div class="modal-body">
- <p>Based on information from a previous build it is likely that adding <strong class="package-to-add-name"></strong> will also add the following packages to your custom image:</p>
- <ul id="package-add-dep-list">
- </ul>
- </div>
- <div class="modal-footer">
- <p class="help-block text-left">Total package size: <strong id="package-deps-total-size"></strong></p>
- <button id="add-package-deps-modal-btn" type="submit" class="btn btn-primary" data-dismiss="modal">Add package</button>
- <button class="btn" data-dismiss="modal">Cancel</button>
- </div>
-</div>
+<div id="package-deps-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3><span class="package-to-add-name"></span> dependencies</h3>
+ </div>
+ <div class="modal-body">
+ <p>Based on information from a previous build it is likely that adding <strong class="package-to-add-name"></strong> will also add the following packages to your custom image:
+ </p>
+ <ul id="package-add-dep-list">
+ </ul>
+ </div>
+ <div class="modal-footer">
+ <p class="help-block text-left">Total package size: <strong id="package-deps-total-size"></strong></p>
+ <button id="add-package-deps-modal-btn" type="submit" class="btn btn-primary" data-dismiss="modal">Add packages</button>
+ <button class="btn btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
<!-- end package dependencies modal -->
<!-- package reverse dependencies modal -->
-<div style="display:none" id="package-reverse-deps-modal" class="modal hide fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3><span class="package-to-rm-name"></span> reverse dependencies</h3>
- </div>
- <div class="modal-body">
- <p> <strong class="reverse-deps-count"></strong> <span class="reverse-deps-package"></span> in your image <span class="reverse-deps-depends"></span> on <strong class="package-to-rm-name"></strong>:</p>
- <ul id="package-reverse-dep-list">
- </ul>
- <p>In order to remove <strong class="package-to-rm-name"></strong>, you must remove <span class="reverse-deps-this"></span> <strong class="reverse-deps-count"></strong> <span class="reverse-deps-package"></span> as well.</p>
- </div>
- <div class="modal-footer">
- <p class="help-block text-left">Total package size: <strong id="package-reverse-deps-total-size"></strong></p>
- <button id="rm-package-reverse-deps-modal-btn" type="submit" class="btn btn-primary" data-dismiss="modal">Remove all <span class="reverse-deps-count-plus1"></button>
- <button class="btn" data-dismiss="modal">Cancel</button>
- </div>
-</div>
+<div style="display:none" id="package-reverse-deps-modal" class="modal fade in" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3><span class="package-to-rm-name"></span> reverse dependencies</h3>
+ </div>
+ <div class="modal-body">
+ <p> <strong class="reverse-deps-count"></strong> <span class="reverse-deps-package"></span> in your image <span class="reverse-deps-depends"></span> on <strong class="package-to-rm-name"></strong>:</p>
+ <ul id="package-reverse-dep-list">
+ </ul>
+ <p>In order to remove <strong class="package-to-rm-name"></strong>, you must remove <span class="reverse-deps-this"></span> <strong class="reverse-deps-count"></strong> <span class="reverse-deps-package"></span> as well.</p>
+ </div>
+ <div class="modal-footer">
+ <p class="help-block text-left">Total package size: <strong id="package-reverse-deps-total-size"></strong></p>
+ <button id="rm-package-reverse-deps-modal-btn" type="submit" class="btn btn-primary" data-dismiss="modal">Remove all <span class="reverse-deps-count-plus1"></button>
+ <button class="btn btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div><!-- /.modal -->
<!-- end package dependencies modal -->
-
-<div class="row-fluid span11">
- <div class="alert alert-success lead" id="image-created-notification" style="margin-top: 15px; display: none">
- <button type="button" data-dismiss="alert" class="close">x</button>
- Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.
- </div>
- <div class="page-header air">
- <h1>
- {{recipe.name}}
- <small>({{recipe.layer_version.layer.name}})</small>
- </h1>
- </div>
+<div class="alert alert-success alert-dismissible change-notification" id="image-created-notification" style="display: none">
+ <button type="button" data-dismiss="alert" class="close">&times;</button>
+ <p>Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.</p>
+</div>
+<div class="page-header">
+ <h1>
+ {{recipe.name}}
+ <small>({{recipe.layer_version.layer.name}})</small>
+ </h1>
</div>
-<div class="row-fluid span11">
- <div class="span8">
+<div class="row">
+ <div class="col-md-8">
<div class="button-place btn-group" style="width: 100%">
- <a class="btn btn-large span6 build-custom-image" href="#" style="width: 50%">
+ <a class="btn btn-default btn-lg build-custom-image" href="#" style="width: 50%">
Build {{recipe.name}}
</a>
- <a href="{% url 'customrecipedownload' project.id recipe.id %}" class="btn btn-large span6" style="width: 50%">
+ <a href="{% url 'customrecipedownload' project.id recipe.id %}" class="btn btn-default btn-lg" style="width: 50%"
+ {% if not base_recipe_file %}
+ disabled="disabled"
+ {% endif %}>
Download recipe file
+ {% if not base_recipe_file %}
+ <i class="icon-question-sign get-help"
+ data-original-title="The recipe file doesn't exist yet, so you cannot download it. You need to build your custom image first"></i>
+ {% endif %}
</a>
</div>
- <div id="no-results-special-{{table_name}}" class="air" style="display:none;">
- <div class="alert">
+ <div id="no-results-special-{{table_name}}" class="top-air" style="display:none;">
+ <div class="alert alert-warning">
<h3>No packages found</h3>
- <p>You might consider <a href={% url 'projectsoftwarerecipes' project.id %}>searching the list of recipes</a> instead. If you find a recipe that matches the name of the package you want:</p>
+ <p>You might consider <a href={% url 'projectsoftwarerecipes' project.id %}>searching the list of recipes</a> instead.</p>
+ <p>If you find a recipe that matches the name of the package you want:</p>
<ol>
<li>Add the layer providing the recipe to your project</li>
<li>Build the recipe</li>
<li>Once the build completes, come back to this page and search for the package</li>
</ol>
- <form class="input-append no-results">
- <input type="text" class="input-xlarge no-results-search-input" id="no-results-search-input-{{table_name}}" name="search" placeholder="Search {{title|lower}}" />
- <a href="#" class="add-on btn" id="no-results-remove-search-btn" tabindex="-1">
- <i class="icon-remove"></i>
- </a>
- <button class="btn search-submit-{{table_name}}">Search</button>
+ <form class="form-inline no-results">
+ <div class="form-group">
+ <div class="btn-group">
+ <input type="text" class="form-control no-results-search-input" id="no-results-search-input-{{table_name}}" name="search" placeholder="Search {{title|lower}}" />
+ <span class="remove-search-btn-{{table_name}} glyphicon glyphicon-remove-circle" id="no-results-remove-search-btn" tabindex="-1"></span>
+ </div>
+ </div>
+ <button class="btn btn-default search-submit-{{table_name}}">Search</button>
<button class="btn btn-link" id="no-results-show-all-packages">Show all packages</button>
</form>
</div>
- </div>
- <div id="results-found-{{table_name}}">
+ </div>
+ <div id="results-found-{{table_name}}">
<div id="packages-table">
{% if recipe.get_all_packages.count == 0 and last_build == None %}
<h2> Add | Remove packages </h2>
- <div class="alert alert-info air">
+ <div class="alert alert-info">
<p class="lead">Toaster has no package information for {{recipe.name}}. To generate package information, build {{recipe.name}}</p>
- <button class="btn btn-info btn-large build-custom-image" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
+ <button class="btn btn-info btn-lg build-custom-image" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
</div>
{% else %}
{# ToasterTable for Adding remove packages #}
@@ -137,87 +179,90 @@
{% include "toastertable.html" %}
{% endif %}
</div>
- </div>
</div>
- <div class="span4 well">
- <h2 style="margin-bottom:20px;">About {{recipe.name}}</h2>
+ </div>
+ <div class="col-md-4">
+ <div class="well">
+ <h2>About {{recipe.name}}</h2>
- <dl>
+ <dl class="item-info">
<dt>
- Approx. packages included
- <i class="icon-question-sign get-help" title="" data-original-title="The number of packages included is based on information from previous builds and from parsing layers, so we can never be sure it is 100% accurate"></i>
+ Approx. packages included
+ <span class="glyphicon glyphicon-question-sign get-help" title="" data-original-title="The number of packages included is based on information from previous builds and from parsing layers, so we can never be sure it is 100% accurate"></span>
</dt>
<dd id="total-num-packages">{{recipe.get_all_packages.count}}</dd>
<dt>
- Approx. package size
- <i class="icon-question-sign get-help" title="" data-original-title="Package size is based on information from previous builds, so we can never be sure it is 100% accurate"></i>
+ Approx. package size
+ <span class="glyphicon glyphicon-question-sign get-help" title="Package size is based on information from previous builds, so we can never be sure it is 100% accurate"></span>
</dt>
<dd id="total-size-packages">{{approx_pkg_size.size__sum|filtered_filesizeformat}}</dd>
{% if last_build %}
<dt>Last build</dt>
<dd>
- <i class="icon-ok-sign success"></i>
- <a href="{% url 'projectbuilds' project.id%}">{{last_build.completed_on|date:"d/m/y H:i"}}</a>
+ <span class="glyphicon glyphicon-ok-circle"></span>
+ <a href="{% url 'projectbuilds' project.id%}">{{last_build.completed_on|date:"d/m/y H:i"}}</a>
</dd>
{% endif %}
- <dt>Layer</dt>
- <dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
<dt>Based on</dt>
<dd><a href="{% url 'recipedetails' project.id recipe.base_recipe.pk %}">{{recipe.base_recipe.name}}</a></dd>
{% if recipe.get_last_successful_built_target %}
{% with recipe.get_last_successful_built_target as last_build_target %}
<dt>Last build</dt>
<dd>
- <i class="icon-ok-sign success"></i>
- <a href="{% url 'builddashboard' last_build_target.build.pk %}">
- {{last_build_target.build.completed_on|date:"d/m/y H:i"}}</a>
+ <span class="glyphicon glyphicon-ok-circle"></span>
+ <a href="{% url 'builddashboard' last_build_target.build.pk %}">
+ {{last_build_target.build.completed_on|date:"d/m/y H:i"}}</a>
</dd>
{% endwith %}
{% endif %}
+ {% if base_recipe_file %}
<dt>Recipe file</dt>
<dd>
- <code>{{recipe.name}}_{{recipe.version}}.bb</code>
- <a href="{% url 'customrecipedownload' project.pk recipe.pk %}"><i class="icon-share" title="" data-original-title="View recipe file"></i></a>
+ <code>{{recipe.name}}_{{recipe.version}}.bb</code>
+ <a href="{% url 'customrecipedownload' project.pk recipe.pk %}"><span class="glyphicon glyphicon-download-alt" data-toggle="tooltip" title="Download recipe file"></span></a>
</dd>
+ {% endif %}
<dt>Layer</dt>
<dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
{% if recipe.summary %}
<dt>
- Summary
+ Summary
</dt>
<dd>
- {{recipe.summary}}
+ {{recipe.summary}}
</dd>
{% endif %}
{% if recipe.description %}
<dt>
- Description
+ Description
</dt>
<dd>
- {{recipe.description}}
+ {{recipe.description}}
</dd>
{% endif %}
<dt>Version</dt>
<dd>
- {{recipe.version}}
+ {{recipe.version}}
</dd>
{% if recipe.section %}
<dt>Section</dt>
<dd>
- {{recipe.section}}
+ {{recipe.section}}
</dd>
{% endif %}
<dt>License</dt>
<dd>
- {{recipe.license}}
- <i class="icon-question-sign get-help" title="" data-original-title="All custom images have their license set to MIT. This is because the license applies only to the recipe (.bb) file, and not to the image itself. To see which licenses apply to the image you must check the license manifest generated with each build"></i>
- </dd>
+ {{recipe.license}}
+ <span class="glyphicon glyphicon-question-sign get-help" title="All custom images have their license set to MIT. This is because the license applies only to the recipe (.bb) file, and not to the image itself. To see which licenses apply to the image you must check the license manifest generated with each build"></i>
+ </dd>
</dl>
- <!--
- <i class="icon-trash no-tooltip"></i>
- <a href="#" class="error" id="delete">Delete custom image</a>
- -->
+ <i class="icon-trash text-danger"></i>
+ <a href="#delete-recipe-modal" data-target="#delete-recipe-modal" data-toggle="modal" class="text-danger" id="delete-recipe">
+ Delete custom image
+ </a>
</div>
</div>
+</div>
- {% endblock %}
+{% endwith %}{# end base_recipe_file #}
+{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html
index f40c21d99..15adfbc91 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_pagination_bottom.html
@@ -6,8 +6,8 @@
{# only paginate if 10 or more rows unfiltered, all pages #}
{% if object_count >= 10 %}
-<div class="pagination">
- <ul>
+<div id="pagination-detail">
+ <ul class="pagination">
{%if objects.has_previous %}
<li><a href="javascript:reload_params({'page':{{objects.previous_page_number}}})">&laquo;</a></li>
{%else%}
@@ -23,16 +23,18 @@
{%endif%}
</ul>
- <div class="pull-right">
- <span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
- <select class="pagesize">
- {% with "10 25 50 100 150" as list%}
+ <form class="navbar-form navbar-right">
+ <div class=form-group">
+ <label>Show rows:</label>
+ <select class="pagesize form-control">
+ {% with "10 25 50 100 150" as list%}
{% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
+ <option value="{{i}}">{{i}}</option>
{% endfor %}
- {% endwith %}
- </select>
- </div>
+ {% endwith %}
+ </select>
+ </div>
+ </form>
</div>
<!-- Update page display settings -->
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_search_header.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_search_header.html
index 7bea3f47f..7a9865908 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_search_header.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_search_header.html
@@ -18,51 +18,55 @@ $(document).ready(function() {
});
});
</script>
-<div class="row-fluid">
+
{% if objects.paginator.count > 10 or request.GET.search %}
{% if objects.paginator.count == 0 %}
- <div class="alert">
- <h3>No {{search_what}} found</h3>
- <form id="searchform" class="input-append">
- {% else %}
- <form id="searchform" class="navbar-search input-append pull-left">
- {% endif %}
+ <div class="alert alert-warning">
+ <h4>No {{search_what}} found</h4>
+ <form id="searchform" class="form-inline">
+ {% else %}
+ <form id="searchform" class="navbar-form navbar-left detail-page-controls">
+ {% endif %}
- <input id="search" class="input-xlarge" type="text" placeholder="Search {{search_what}}" name="search" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}">
- <input type="hidden" value="name:+" name="orderby">
- <input type="hidden" value="l" name="page">
- {% if request.GET.search %}
- <a class="add-on btn search-clear">
- <i class="icon-remove"></i>
- </a>
- {% endif %}
- <button type="submit" class="btn">Search</button>
- {% if objects.paginator.count == 0 %}
- <button type="submit" class="btn btn-link search-clear">
- Show all {{search_what}}
- </button>
- {% endif %}
- </form>
-{% endif %}
+ <div class="form-group">
+ <div class="btn-group">
+ <input id="search" class="form-control" type="text" placeholder="Search {{search_what}}" name="search" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}">
+ <input type="hidden" value="name:+" name="orderby">
+ <input type="hidden" value="l" name="page">
+ {% if request.GET.search %}
+ <span class="remove-search-btn-detail-search search-clear glyphicon glyphicon-remove-circle"></span>
+ {% endif %}
+ </div>
+ </div>
+ <button type="submit" class="btn btn-default">Search</button>
+ {% if objects.paginator.count == 0 %}
+ <button type="submit" class="btn btn-link search-clear">
+ Show all {{search_what}}
+ </button>
+ {% endif %}
+ </form>
+ {% endif %}
-{% if objects.paginator.count == 0 %}
+ {% if objects.paginator.count == 0 %}
</div> {# end alert #}
-{% else %}
+ {% else %}
{% if object_count > 10 %}
- <div class="pull-right">
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
- {% with "10 25 50 100 150" as list%}
- {% for i in list.split %}
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="pagesize form-control">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
{% if request.session.limit == i %}
- <option value="{{i}}" selected>{{i}}</option>
+ <option value="{{i}}" selected>{{i}}</option>
{% else %}
- <option value="{{i}}">{{i}}</option>
+ <option value="{{i}}">{{i}}</option>
{% endif %}
- {% endfor %}
- {% endwith %}
- </select>
- </div>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </form>
{% endif %}
{% endif %}
-</div> {# row-fluid #}
+
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html
index 6ce292e5a..4434df439 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/detail_sorted_header.html
@@ -10,14 +10,14 @@
<!-- Table header row; generated from "tablecols" entry in the context dict -->
<tr>
{% for tc in tablecols %}<th class="{%if tc.dclass%}{{tc.dclass}}{% endif %} {%if tc.class %}{{tc.clclass}}{% endif %}">
- {%if tc.qhelp%}<i class="icon-question-sign get-help" title="{{tc.qhelp}}"></i>{%endif%}
- {%if tc.orderfield%}<a {%if tc.ordericon%} class="sorted" {%endif%}href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })">{{tc.name}}</a>{%else%}<span class="muted">{{tc.name}}</span>{%endif%}
- {%if tc.ordericon%} <i class="icon-caret-{{tc.ordericon}}"></i>{%endif%}
+ {%if tc.qhelp%}<span class="glyphicon glyphicon-question-sign get-help" title="{{tc.qhelp}}"></span>{%endif%}
+ {%if tc.orderfield%}<a {%if tc.ordericon%} class="sorted" {%endif%}href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })">{{tc.name}}</a>{%else%}<span class="text-muted">{{tc.name}}</span>{%endif%}
+ {%if tc.ordericon%} <span class="icon-caret-{{tc.ordericon}}"></span>{%endif%}
{% if request.GET.search and forloop.first %}
<span class="badge badge-info">{{objects.paginator.count}}</span>
{% endif %}
{%if tc.filter%}<div class="btn-group pull-right">
- <a href="#filter_{{tc.filter.class}}" role="button" class="btn btn-mini {%if request.GET.filter%}{{tc.filter.options|filtered_icon:request.GET.filter}} {%endif%}" {%if request.GET.filter and tc.filter.options|filtered_tooltip:request.GET.filter %} title="<p>{{tc.filter.options|filtered_tooltip:request.GET.filter}}</p><p><a class='btn btn-small btn-primary' href=javascript:reload_params({'filter':''})>Show all {% if filter_search_display %}{{filter_search_display}}{% else %}{{objectname}}{% endif %}</a></p>" {%endif%} data-toggle="modal"> <i class="icon-filter filtered"></i> </a>
+ <a href="#filter_{{tc.filter.class}}" role="button" class="btn btn-mini {%if request.GET.filter%}{{tc.filter.options|filtered_icon:request.GET.filter}} {%endif%}" {%if request.GET.filter and tc.filter.options|filtered_tooltip:request.GET.filter %} title="<p>{{tc.filter.options|filtered_tooltip:request.GET.filter}}</p><p><a class='btn btn-sm btn-primary' href=javascript:reload_params({'filter':''})>Show all {% if filter_search_display %}{{filter_search_display}}{% else %}{{objectname}}{% endif %}</a></p>" {%endif%} data-toggle="modal"> <i class="glyphicon glyphicon-filter filtered"></i> </a>
</div>{%endif%}
</th>{% endfor %}
</tr>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/dirinfo.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/dirinfo.html
index ecb46bf7a..ab89e279f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/dirinfo.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/dirinfo.html
@@ -18,6 +18,13 @@
{% load projecttags %}
<script type='text/javascript'>
+ var ctx = {};
+ ctx.target = "{{target.target}}";
+
+ $(document).ready(function(){
+ $("#menu-"+ctx.target).addClass("active");
+ });
+
function setupTreetable() {
$("#dirtable").treetable({
expandable: true,
@@ -59,9 +66,6 @@
function formatRow(o) {
/* setup tr-wide formatting */
var tr = '<tr class="';
- if (o.link_to != null) {
- tr += 'muted ';
- }
if (o.isdir && o.childcount) {
tr += 'branch" data-tt-branch="true" ';
}
@@ -75,7 +79,7 @@
tr += '>';
/* setup td specific formatting */
- var link_to = td(o.link_to);
+ var link_to = '<td class="text-muted">' + o.link_to + '</td>';
var size = '<td class = "sizecol">' + o.size + '</td>'
var permission = td(o.permission);
var owner = td(o.owner);
@@ -96,7 +100,7 @@
if (o.childcount) {
name += '<a href="">';
}
- name += '<i class="icon-folder-close"></i>';
+ name += '<span class="glyphicon glyphicon-folder-close"></span>';
name += '&nbsp;' + o.name;
if (o.childcount) {
name += '</a>';
@@ -110,10 +114,10 @@
namespan = 3;
}
var colspan = 'colspan="' + namespan + '"';
- name = '<td ' + colspan + '><i class="icon-file"></i>';
+ name = '<td ' + colspan + '><span class="glyphicon glyphicon-file"></span>';
}
else {
- name = '<td><i class="icon-hand-right"></i>';
+ name = '<td class="text-muted"><span class="glyphicon glyphicon-hand-right"></span>';
}
name += '&nbsp;' + o.name;
name += '</td>';
@@ -134,10 +138,10 @@
package += '</a>';
if (o.installed_package != o.package) {
/* make class muted and add hover help */
- package += '<span class="muted"> as ' + o.installed_package + ' </span>';
- package += '<i class="icon-question-sign get-help hover-help" ';
+ package += '<span class="text-muted"> as ' + o.installed_package + ' </span>';
+ package += '<span class="glyphicon glyphicon-question-sign get-help hover-help" ';
package += 'title="' + o.package + ' was renamed at packaging time and was installed in your image as ' + o.installed_package + '">';
- package += '</i>';
+ package += '</span>';
}
}
package = td(package);
@@ -184,22 +188,22 @@
}
</script>
-<div class="span10">
+<div class="col-md-10">
- <div class="page-header">
+ <div class="page-header build-data">
<h1> {{target.target}} </h1>
</div>
- <ul class="nav nav-pills">
- <li class="">
+ <ul class="nav nav-tabs">
+ <li>
<a href="{% url 'target' build.id target.id %}">
- <i class="icon-question-sign get-help" title="Of all the packages built, the subset installed in the root file system of this image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Of all the packages built, the subset installed in the root file system of this image"></span>
Packages included ({{target.package_count}} - {{packages_sum|filtered_filesizeformat}})
</a>
</li>
<li class="active">
<a href="{% url 'dirinfo' build.id target.id %}">
- <i class="icon-question-sign get-help" title="The directories and files in the root file system of this image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The directories and files in the root file system of this image"></span>
Directory structure
</a>
</li>
@@ -235,7 +239,7 @@
</tbody>
</table>
</div> <!-- directory-structure -->
-</div> <!-- span10 -->
+</div> <!-- col-md-10 -->
{% endblock buildinfomain %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/editcustomimage_modal.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/editcustomimage_modal.html
index 8046c08fb..baa36c0e1 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/editcustomimage_modal.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/editcustomimage_modal.html
@@ -6,32 +6,36 @@ choose which one to edit
required context:
build - a Build object
-->
-<div class="modal hide fade in" aria-hidden="false" id="edit-custom-image-modal">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">Ă—</button>
- <h3>Which image do you want to edit?</h3>
- </div>
+<div class="modal fade" aria-hidden="false" id="edit-custom-image-modal">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">Ă—</button>
+ <h3>Which image do you want to edit?</h3>
+ </div>
- <div class="modal-body">
- <div class="row-fluid">
- {% for recipe in build.get_custom_image_recipes %}
- <label class="radio">
- {{recipe.name}}
- <input type="radio" class="form-control" name="select-custom-image"
- data-url="{% url 'customrecipe' build.project.id recipe.id %}">
- </label>
- {% endfor %}
- </div>
- <span class="help-block error" id="invalid-custom-image-help" style="display:none">
- Please select a custom image to edit.
- </span>
- </div>
+ <div class="modal-body">
+ {% for recipe in build.get_custom_image_recipes %}
+ <div class="radio">
+ <label>
+ <input type="radio" name="select-custom-image"
+ data-url="{% url 'customrecipe' build.project.id recipe.id %}">
+ {{recipe.name}}
+ </label>
+ </div>
+ {% endfor %}
+ <span class="help-block text-danger" id="invalid-custom-image-help" style="display:none">
+ Please select a custom image to edit.
+ </span>
+ </div>
- <div class="modal-footer">
- <button class="btn btn-primary btn-large" data-url="#"
- data-action="edit-custom-image" disabled>
- Edit custom image
- </button>
+ <div class="modal-footer">
+ <button class="btn btn-primary btn-lg" data-url="#"
+ data-action="edit-custom-image" disabled>
+ Edit custom image
+ </button>
+ </div>
+ </div>
</div>
</div>
@@ -46,7 +50,7 @@ $(document).ready(function () {
return $('[name="select-custom-image"]:checked');
};
- radios.change(function () {
+ function enableSubmit() {
if (getSelectedRadios().length === 1) {
editCustomImageButton.removeAttr('disabled');
error.hide();
@@ -55,6 +59,14 @@ $(document).ready(function () {
editCustomImageButton.attr('disabled', 'disabled');
error.show();
}
+ };
+
+ $("#edit-custom-image-modal").on("shown.bs.modal", function() {
+ enableSubmit();
+ });
+
+ radios.change(function () {
+ enableSubmit();
});
editCustomImageButton.click(function () {
@@ -67,5 +79,10 @@ $(document).ready(function () {
error.show();
}
});
+
+ // Select the first custom image listed. Radio button groups
+ // should always have an option selected by default
+ $("input:radio:first").attr("checked", "checked");
+
});
</script>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/filtersnippet.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
index 1101aa810..1286ca315 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/filtersnippet.html
@@ -1,57 +1,72 @@
{% load projecttags %}
<!-- '{{f.class}}' filter -->
{% with f.class as key %}
-<form id="filter_{{f.class}}" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
+
+<div id="filter_{{f.class}}" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <form>
<input type="hidden" name="search" value="{%if request.GET.search %}{{request.GET.search}}{%endif%}"/>
<div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- {% if search_term %}
- <h3>Filter {{total_count}} {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%} matching '{{search_term}}' by '{{tc.name}}'</h3>
- {% else %}
- <h3>Filter {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%} by '{{tc.name}}'</h3>
- {% endif %}
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ {% if search_term %}
+ <h3>Filter {{total_count}} {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%} matching '{{search_term}}' by '{{tc.name}}'</h3>
+ {% else %}
+ <h3>Filter {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%} by '{{tc.name}}'</h3>
+ {% endif %}
</div>
<div class="modal-body">
- <p>{{f.label}}</p>
- <label class="radio">
- <input type="radio" name="filter" {%if request.GET.filter%}{{f.options|check_filter_status:request.GET.filter}} {%else%} checked {%endif%} value="" data-key="{{key}}"> All {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%}
+ <p>{{f.label}}</p>
+ <div class="radio">
+ <label>
+ <input type="radio" name="filter" {%if request.GET.filter%}{{f.options|check_filter_status:request.GET.filter}} {%else%} checked {%endif%} value="" data-key="{{key}}"> All {%if filter_search_display%}{{filter_search_display|title}}{%else%}{{objectname|title}}{%endif%}
</label>
- {% for option in f.options %}
- {% if option.1 == 'daterange' %}
- <div class="form-inline">
- <label class="radio">
- <input type="radio" name="filter" id="filter_value_{{key}}" {%if key == daterange_selected %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
- {% else %}
- {% if 1 %}
- <label class="radio">
- <input type="radio" name="filter" {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
- {% comment "do not disable radio selections by count for now" %}{% else %}
- <label class="radio muted">
- <input type="radio" name="filter" disabled {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
+ </div>
+ {% for option in f.options %}
+ <div class="radio">
+ {% if option.1 == 'daterange' %}
+ <label>
+ <input type="radio" name="filter" id="filter_value_{{key}}" {%if key == daterange_selected %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
+ {% else %}
+ {% if 1 %}
+ <label>
+ <input type="radio" name="filter" {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
+ {% comment "do not disable radio selections by count for now" %}{% else %}
+ <label class="text-muted">
+ <input type="radio" name="filter" disabled {%if request.GET.filter == option.1 %}checked{%endif%} value="{{option.1}}" data-key="{{key}}"> {{option.0}}
{% endcomment %}{% endif %}
- {% endif %}
- {% if option.3 %}<i class="icon-question-sign get-help" data-placement="right" title="{{option.3}}"></i>{% endif %}
- </label>
+ {% endif %}
+ {% if option.3 %}<i class="icon-question-sign get-help" data-placement="right" title="{{option.3}}"></i>{% endif %}
+ </label></div>
{% if option.1 == 'daterange' %}
- <input type="text" id="date_from_{{key}}" name="date_from_{{key}}" disabled class="input-small" /><label class="help-inline">to</label>
- <input type="text" id="date_to_{{key}}" name="date_to_{{key}}" disabled class="input-small" />
- <label class="help-inline get-help" >(dd/mm/yyyy)</label>
- </div>
- {% endif %}
- {% endfor %}
+ <input type="text" id="date_from_{{key}}" name="date_from_{{key}}" disabled class="input-sm" /><label class="help-inline">to</label>
+ <input type="text" id="date_to_{{key}}" name="date_to_{{key}}" disabled class="input-sm" />
+ <label class="help-inline get-help" >(dd/mm/yyyy)</label>
+ </div>
+ {% endif %}
+ {% endfor %}
<!-- daterange persistence -->
{% if last_date_from and last_date_to %}
<input type="hidden" id="last_date_from_{{key}}" name="last_date_from" value="{{last_date_from}}"/>
<input type="hidden" id="last_date_to_{{key}}" name="last_date_to" value="{{last_date_to}}"/>
{% endif %}
+ </div>
+ <div class="modal-footer">
+ <div class="row">
+ <div class="col-md-6">
+ <button type="submit" class="btn btn-primary" data-key="{{key}}">Apply</button>
</div>
- <div class="modal-footer">
- <button type="submit" class="btn btn-primary" data-key="{{key}}">Apply</button>
- {% if request.GET.filter %}
- {% if request.GET.filter|string_remove_regex:':.*' != f.options.0.1|string_remove_regex:':.*' %}
- <span class="help-inline pull-left">You can only apply one filter to the table. This filter will override the current filter.</span>
- {% endif %}
- {% endif %}
+ <div class="col-md-6">
+ {% if request.GET.filter %}
+ {% if request.GET.filter|string_remove_regex:':.*' != f.options.0.1|string_remove_regex:':.*' %}
+ <p class="text-right text-muted">You can only apply one filter to the table. This filter will override the current filter.</p>
+ {% endif %}
+ {% endif %}
</div>
-</form>
+ </div>
+ </div>
+ </form>
+ </div><!-- /.modal-content -->
+</div><!-- /.modal-dialog -->
+</div> <!--/.modal -->
{% endwith %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/generic-toastertable-page.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/generic-toastertable-page.html
index 33aa8ce0d..b3eabe1a2 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/generic-toastertable-page.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/generic-toastertable-page.html
@@ -7,7 +7,7 @@
<h2>{{title}} (<span class="table-count-{{table_name}}"></span>)
{% if project.release %}
- <i class="icon-question-sign get-help heading-help" title="This page lists {{title}} compatible with the release selected for this project, which is {{project.release.description}}"></i>
+ <i class="glyphicon glyphicon-question-sign get-help" title="This page lists {{title|lower}} compatible with the release selected for this project, which is {{project.release.description}}"></i>
{% endif %}
</h2>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/importlayer.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/importlayer.html
index 1848f410e..1f426969a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/importlayer.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/importlayer.html
@@ -5,135 +5,163 @@
{% block title %} Import layer - {{project.name}} - Toaster {% endblock %}
{% block pagecontent %}
-{% include "projecttopbar.html" %}
-
-
- {% if project and project.release %}
- <script src="{% static 'js/layerDepsModal.js' %}"></script>
- <script src="{% static 'js/importlayer.js' %}"></script>
- <script>
- $(document).ready(function (){
- var ctx = {
- xhrImportLayerUrl : "{% url 'xhr_importlayer' %}",
- };
-
- try {
- importLayerPageInit(ctx);
- } catch (e) {
- document.write("Sorry, An error has occurred loading this page");
- console.warn(e);
- }
- });
- </script>
-
- <form class="span11">
- <fieldset>
- <legend>Layer repository information</legend>
- <span class="help-block">The layer you are importing must be compatible with <strong>{{project.release.description}}</strong>, which is the release you are using in this project.</span>
- <div class="alert alert-error" id="import-error" style="display:none">
- <button type="button" class="close" data-dismiss="alert">&times;</button>
- <h3>&nbsp;</h3>
- <p></p>
- <ul></ul>
- </div>
-
- <div class="control-group" id="layer-name-ctrl">
- <label class="control-label air" for="import-layer-name">
- Layer name
- <span class="icon-question-sign get-help" title="Something like 'meta-mylayer'. Your layer name must be unique and can only include letters, numbers and dashes"></span>
- </label>
- <div class="controls">
- <input id="import-layer-name" type="text" required autofocus data-autocomplete="off" data-provide="typeahead">
- <span class="help-inline" style="display: none;" id="invalid-layer-name-hint">A valid layer name can only include letters, numbers and dashes</span>
- <span class="help-inline" style="display: none;" id="duplicated-layer-name-hint"></span>
- </div>
-
- </div>
- <div id="duplicate-layer-info" style="display:none">
- <div class="alert warning">
- <h3>A layer called <a href="" class="dup-layer-link"><span class="dup-layer-name"></span></a> already exists</h3>
- <p>Layer names must be unqiue. Please use a different layer name.</p>
- </div>
- <dl>
- <dt>
- The <span class="dup-layer-name"></span> repository url is
- </dt>
- <dd>
- <span id="dup-layer-vcs-url"></span>
- </dd>
-
- <dt>
- The <span class="dup-layer-name"></span> revision is
- </dt>
- <dd>
- <span id="dup-layer-revision"></span>
- </dd>
- </dl>
-
- <p><a href="" class="dup-layer-link">View the <span class="dup-layer-name"></span> layer information</a></p>
-
- </div>
-
- <div class="fields-apart-from-layer-name">
- <label for="layer-git-repo-url" class="project-form">
- Git repository URL
- <span class="icon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span>
- </label>
-
- <input type="text" id="layer-git-repo-url" class="input-xxlarge" required>
- <label class="project-form" for="layer-subdir">
- Repository subdirectory
- <span class="muted">(optional)</span>
- <span class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
- </label>
- <input type="text" id="layer-subdir">
-
- <div class="control-group" id="layer-revision-ctrl">
- <label class="control-label project-form" for="layer-git-ref">Git revision
- <span class="icon-question-sign get-help" title="You can provide a Git branch, a tag or a commit SHA as the revision"></span>
- </label>
- <div class="controls">
- <input type="text" class="span3" id="layer-git-ref" required>
- <span class="help-inline" style="diaply:none;" id="invalid-layer-revision-hint"></span>
- </div>
- </div>
- </div>
-
- </fieldset>
-
- <div class="fields-apart-from-layer-name">
- <fieldset class="air">
- <legend>
- Layer dependencies
- <span class="muted">(optional)</span>
- <span class="icon-question-sign get-help heading-help" title="Other layers this layer depends upon"></span>
- </legend>
- <ul class="unstyled configuration-list" id="layer-deps-list">
- </ul>
- <div class="input-append">
- <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" placeholder="Type a layer name" id="layer-dependency" class="input-xlarge">
- <a class="btn" id="add-layer-dependency-btn">
- Add layer
- </a>
- </div>
- <span class="help-inline">You can only add layers Toaster knows about</span>
- </fieldset>
- <div class="air" id="form-actions">
- <button class="btn btn-primary btn-large" data-toggle="modal" id="import-and-add-btn" data-target="#dependencies-message" disabled>Import and add to project</button>
- <span class="help-inline" id="import-and-add-hint" style="vertical-align: middle;">To import a layer you need to enter a layer name, a Git repository URL and a revision (branch, tag or commit)</span>
- </div>
- </div>
- </form>
-
- {% else %} {#project and project release#}
- <div class="page-header">
- <h1>Import layer</h1>
- </div>
- <div class="alert alert-info" id="import-error" >
- <h3>Unsupported project type</h3>
- <p>This project does not support importing layers.</p>
- <ul></ul>
- </div>
-
- {% endif %}
+<div class="row">
+ {% include "projecttopbar.html" %}
+ {% if project and project.release %}
+ <script src="{% static 'js/layerDepsModal.js' %}"></script>
+ <script src="{% static 'js/importlayer.js' %}"></script>
+ <script>
+ $(document).ready(function (){
+ var ctx = {
+ xhrImportLayerUrl : "{% url 'xhr_importlayer' %}",
+ };
+
+ try {
+ importLayerPageInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+ </script>
+
+ <form class="col-md-11">
+ <span class="help-block">The layer you are importing must be compatible with <strong>{{project.release.description}}</strong>, which is the release you are using in this project.</span>
+ <div class="alert alert-error" id="import-error" style="display:none">
+ <button type="button" class="close" data-dismiss="alert">&times;</button>
+ <h3>&nbsp;</h3>
+ <p></p>
+ <ul></ul>
+ </div>
+ <fieldset>
+ <div class="form-group" id="layer-name-ctrl">
+ <label class="control-label" for="import-layer-name">
+ Layer name
+ <span class="glyphicon glyphicon-question-sign get-help" title="Something like 'meta-mylayer'. Your layer name must be unique and can only include letters, numbers and dashes"></span>
+ </label>
+ <input class="form-control" id="import-layer-name" type="text" required autofocus data-autocomplete="off" data-provide="typeahead">
+ <span class="help-block" style="display: none;" id="invalid-layer-name-hint">A valid layer name can only include letters, numbers and dashes</span>
+ <span class="help-inline" style="display: none;" id="duplicated-layer-name-hint"></span>
+ </div>
+ </fieldset>
+ <div id="duplicate-layer-info" style="display:none">
+ <div class="alert alert-warning">
+ <h3>A layer called <a href="" class="dup-layer-link"><span class="dup-layer-name"></span></a> already exists</h3>
+ <p>Layer names must be unqiue. Please use a different layer name.</p>
+ <dl id="git-layer-dup" style="display:none;">
+ <dt>
+ The <span class="dup-layer-name"></span> repository url is
+ </dt>
+ <dd>
+ <span id="dup-layer-vcs-url"></span>
+ </dd>
+ <dt>
+ The <span class="dup-layer-name"></span> revision is
+ </dt>
+ <dd>
+ <span id="dup-layer-revision"></span>
+ </dd>
+ </dl>
+ <dl id="local-layer-dup" style="display:none;">
+ <dt>
+ The <span class="dup-layer-name"></span> directory is
+ </dt>
+ <dd>
+ <span id="dup-local-source-dir-name"></span>
+ </dd>
+ </dl>
+ <p><a href="" class="dup-layer-link">View the <span class="dup-layer-name"></span> layer information</a></p>
+ </div>
+ </div>
+ <fieldset class="fields-apart-from-layer-name" id="repo-select">
+ <legend class="radioLegend">Where is the layer source code?</legend>
+ <div class="radio">
+ <label>
+ <input type="radio" id="git-repo-radio" name="repo" value="git" checked="checked">
+ In a <strong>Git repository</strong>
+ </label>
+ <p class="help-block radio-help">To build the layer Toaster must be able to access the Git repository, otherwise builds will fail. Toaster will fetch and checkout your chosen Git revision every time you start a build.</p>
+ </div>
+ <div class="radio">
+ <label>
+ <input type="radio" id="local-dir-radio" name="repo" value="local">
+ In a <strong>directory</strong>
+ </label>
+ <p class="help-block radio-help">Use this option for quick layer development, by simply providing the path to the layer source code.</p>
+ </div>
+ </fieldset>
+ <fieldset class="fields-apart-from-layer-name" id="git-repo">
+ <legend>Git repository information</legend>
+ <div class="form-group">
+ <label for="layer-git-repo-url">
+ Git repository URL
+ <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span>
+ </label>
+ <input type="text" id="layer-git-repo-url" class="form-control" required>
+ </div>
+ <div class="form-group">
+ <label for="layer-subdir">
+ Repository subdirectory
+ <span class="text-muted">(optional)</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
+ </label>
+ <input type="text" class="form-control" id="layer-subdir">
+ </div>
+ <div class="form-group" id="layer-revision-ctrl">
+ <label for="layer-git-ref">
+ Git revision
+ <span class="glyphicon glyphicon-question-sign get-help" title="You can provide a Git branch, a tag or a commit SHA as the revision"></span>
+ </label>
+ <input type="text" class="form-control" id="layer-git-ref" required>
+ <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span>
+ </div>
+ </fieldset>
+
+ <fieldset class="fields-apart-from-layer-name" id="local-dir" style="display:none;">
+ <legend>Layer directory information</legend>
+ <div class="form-group">
+ <label for="local-dir-path" class="control-label">Enter the absolute path to the layer directory</label>
+ <input type="text" class="form-control" id="local-dir-path" required/>
+ <p class="help-block" id="hintError-dir-path-starts-with-slash" style="display:none;">The absolute path must start with "/".</p>
+ <p class="help-block" id="hintError-dir-path" style="display:none;">The directory path cannot include spaces or any of these characters: . \ ? % * : | " " &lt; &gt;</p>
+ </div>
+ </fieldset>
+
+ <fieldset class="fields-apart-from-layer-name">
+ <legend>
+ Layer dependencies
+ <small class="text-muted">(optional)</small>
+ <span class="glyphicon glyphicon-question-sign get-help heading-help" title="Other layers this layer depends upon"></span>
+ </legend>
+ <ul class="list-unstyled lead" id="layer-deps-list">
+ </ul>
+ <div class="form-inline">
+ <div class="form-group">
+ <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" data-provide="typeahead" placeholder="Type a layer name" id="layer-dependency" class="form-control">
+ </div>
+ <button class="btn btn-default" id="add-layer-dependency-btn">
+ Add layer
+ </button>
+ <span class="help-inline">You can only add layers Toaster knows about</span>
+ </fieldset>
+ <div class="top-air fields-apart-from-layer-name" id="form-actions">
+ <button class="btn btn-primary btn-lg" data-toggle="modal" id="import-and-add-btn" data-target="#dependencies-message" disabled>Import and add to project</button>
+ <span class="help-inline" id="import-git-layer-and-add-hint" style="vertical-align: middle;">To import a layer you need to enter a layer name, a Git repository URL and a Git revision (branch, tag or commit)</span>
+ <span class="help-inline" id="import-local-dir-and-add-hint" style="vertical-align: middle;display:none;">To import a layer you need to enter a layer name and the absolute path to the layer directory</span>
+ </div>
+ </div>
+</form>
+
+ {% else %} {#project and project release#}
+ <div class="page-header">
+ <h1>Import layer</h1>
+ </div>
+ <div class="alert alert-info" id="import-error" >
+ <h3>Unsupported project type</h3>
+ <p>This project does not support importing layers.</p>
+ <ul></ul>
+ </div>
+
+ {% endif %}
+</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing.html
index a1b5cdce7..498663294 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing.html
@@ -6,24 +6,22 @@
{% block title %} Welcome to Toaster {% endblock %}
{% block pagecontent %}
- <div class="container-fluid">
- <div class="row-fluid">
- <div class="hero-unit span12 well-transparent">
- <div class="row-fluid">
+ <div class="row">
+ <div class="jumbotron well-transparent">
- <div class="span6">
+ <div class="col-md-6">
<h1>This is Toaster</h1>
<p>A web interface to <a href="http://www.openembedded.org">OpenEmbedded</a> and <a href="http://www.yoctoproject.org/tools-resources/projects/bitbake">BitBake</a>, the <a href="http://www.yoctoproject.org">Yocto Project</a> build system.</p>
{% if lvs_nos %}
- <p class="hero-actions">
- <a class="btn btn-primary btn-large" href="{% url 'newproject' %}">
+ <p class="top-air">
+ <a class="btn btn-primary btn-lg" href="{% url 'newproject' %}">
To start building, create your first Toaster project
</a>
</p>
{% else %}
- <div class="alert alert-info lead air">
+ <div class="alert alert-info lead top-air">
Toaster has no layer information. Without layer information, you cannot run builds. To generate layer information you can:
<ul>
<li>
@@ -36,7 +34,7 @@
</div>
{% endif %}
- <ul class="unstyled">
+ <ul class="list-unstyled lead">
<li>
<a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html">
Read the Toaster manual
@@ -51,12 +49,11 @@
</ul>
</div>
- <div class="span6">
- <img alt="Yocto Project" class="thumbnail" src="{% static 'img/toaster_bw.png' %}"/>
+ <div class="col-md-6">
+ <img alt="Yocto Project Toaster" class="img-thumbnail" src="{% static 'img/toaster_bw.png' %}"/>
</div>
- </div>
</div>
</div>
- </div>
+
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html
index 9b37f5530..baa4b72c1 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/landing_not_managed.html
@@ -8,8 +8,8 @@
{% block pagecontent %}
- <div class="container-fluid">
- <div class="row-fluid">
+ <div class="container">
+ <div class="row">
<!-- Empty - no build module -->
<div class="page-header top-air">
<h1>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layer_btn.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layer_btn.html
index 10de37d4b..b2f73eba7 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layer_btn.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layer_btn.html
@@ -1,17 +1,17 @@
-<button class="btn btn-danger btn-block layer-exists-{{data.pk}} layerbtn" data-layer='{ "id": {{data.pk}}, "name": "{{data.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.pk%}"}' data-directive="remove"
+<a class="btn btn-danger btn-block layer-exists-{{data.pk}} layerbtn" data-layer='{ "id": {{data.pk}}, "name": "{{data.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.pk%}"}' data-directive="remove"
{% if data.pk not in extra.current_layers %}
style="display:none;"
{% endif %}
>
- <i class="icon-trash"></i>
+ <span class="glyphicon glyphicon-trash"></span>
Remove layer
-</button>
-<button class="btn btn-block layer-add-{{data.pk}} layerbtn" data-layer='{ "id": {{data.pk}}, "name": "{{data.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.pk%}"}' data-directive="add"
+</a>
+<a class="btn btn-default btn-block layer-add-{{data.pk}} layerbtn" data-layer='{ "id": {{data.pk}}, "name": "{{data.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.pk%}"}' data-directive="add"
{% if data.pk in extra.current_layers %}
style="display:none;"
{% endif %}
>
- <i class="icon-plus"></i>
+ <span class="glyphicon glyphicon-plus"></span>
Add layer
-</button>
+</a>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html
index 82be3703b..f1569bd63 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html
@@ -6,270 +6,367 @@
{% block title %} {{layerversion.layer.name}} - {{project.name}} - Toaster {% endblock %}
{% block pagecontent %}
-<div class="section">
- <ul class="breadcrumb">
- <li>
- <a href="{% url 'project' project.id %}">{{project.name}}</a>
- <span class="divider">&rarr;</span>
- </li>
- <li><a href="{% url 'projectlayers' project.id %}">Compatible layers</a>
- <span class="divider">&rarr;</span>
- </li>
- <li class="active">
- {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}})
- </li>
- </ul>
+<div id="delete-layer-modal" class="modal fade" tabindex="-1" role="dialog"
+ data-keyboard="false" data-backdrop="static">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-body">
+ Are you sure you want to delete the <strong>{{layerversion.layer.name}}</strong> layer?
+ </div>
+ <div class="modal-footer">
+ <button type="button" id="layer-delete-confirmed" class="btn
+ btn-primary">Delete layer</button>
+ <button type="button" class="btn btn-default btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div>
+ </div>
</div>
-{# If this is not an imported layer then hide the edit ui #}
-{% if not layerversion.layer_source_id or layerversion.layer_source.sourcetype != layerversion.layer_source.TYPE_IMPORTED %}
-<style scoped>
- .icon-pencil {
- display:none;
- }
-.delete-current-value{
- display: none;
-}
- li .icon-trash {
- display:none;
- }
- .add-deps {
- display:none;
- }
-</style>
-{% endif %}
-
+<div class="row">
+ <div class="col-md-12">
+ <ul class="breadcrumb">
+ <li>
+ <a href="{% url 'project' project.id %}">{{project.name}}</a>
+ <span class="divider">&rarr;</span>
+ </li>
+ <li><a href="{% url 'projectlayers' project.id %}">Compatible layers</a>
+ <span class="divider">&rarr;</span>
+ </li>
+ <li class="active">
+ {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}})
+ </li>
+ </ul>
-<script src="{% static 'js/layerdetails.js' %}"></script>
-<script>
+ {# If this is not an imported layer then hide the edit ui #}
+ {% if layerversion.layer_source != layer_source.TYPE_IMPORTED %}
+ <style scoped>
+ .glyphicon-edit {
+ display:none;
+ }
+ .delete-current-value{
+ display: none;
+ }
+ li .glyphicon-trash {
+ display:none;
+ }
+ .add-deps {
+ display:none;
+ }
+ </style>
+ {% endif %}
- $(document).ready(function (){
- var ctx = {
- xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}",
- layerVersion : {
- name : "{{layerversion.layer.name}}",
- id : {{layerversion.id}},
- commit: "{{layerversion.get_vcs_reference}}",
- {%if layerversion.id in projectlayers %}
- inCurrentPrj : true,
- {% else %}
- inCurrentPrj : false,
- {% endif %}
- layerdetailurl : "{% url 'layerdetails' project.id layerversion.id %}",
- sourceId: {{layerversion.layer_source_id|json}},
- }
- };
+ <script src="{% static 'js/layerdetails.js' %}"></script>
+ <script>
- try {
- layerDetailsPageInit(ctx);
- } catch (e) {
- document.write("Sorry, An error has occurred loading this page");
- console.warn(e);
- }
- });
-</script>
+ $(document).ready(function(){
+ var ctx = {
+ xhrUpdateLayerUrl : "{% url 'xhr_layer' project.id layerversion.pk %}",
+ layerVersion : {
+ name : "{{layerversion.layer.name}}",
+ id : {{layerversion.id}},
+ commit: "{{layerversion.get_vcs_reference}}",
+ {%if layerversion.id in projectlayers %}
+ inCurrentPrj : true,
+ {% else %}
+ inCurrentPrj : false,
+ {% endif %}
+ layerdetailurl : "{% url 'layerdetails' project.id layerversion.id %}",
+ layer_source: {{layerversion.layer_source|json}},
+ },
+ layerSourceTypes: {{layer_source|json}},
+ };
-<div class="row-fluid span11">
- <div class="page-header">
- <h1>{{layerversion.layer.name}} <small class="commit"
- {% if layerversion.get_vcs_reference|length > 13 %}
- data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}"
- {% endif %}>
- ({{layerversion.get_vcs_reference|truncatechars:13}})</small></h1>
- </div>
-</div>
+ try {
+ layerDetailsPageInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+ </script>
-<!-- container for tabs -->
-<div class="row-fluid span7 tabbable">
- <div class="alert alert-info lead" id="alert-area" style="display:none">
- <button type="button" class="close" id="dismiss-alert">&times;</button>
- <span id="alert-msg"></span>
- </div>
- <ul class="nav nav-pills">
- <li class="active">
- <a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
- </li>
- <li>
- <a data-toggle="tab" href="#recipes" class="muted" id="targets-tab">Recipes (<span class="table-count-recipestable"></span>)</a>
- </li>
- <li>
- <a data-toggle="tab" href="#machines" class="muted" id="machines-tab">Machines (<span class="table-count-machinestable"></span>)</a>
- </li>
- </ul>
- <div class="tab-content">
- <span class="button-place">
- {% if layerversion.id not in projectlayers %}
- <button id="add-remove-layer-btn" data-directive="add" class="btn btn-large btn-block">
- <span class="icon-plus"></span>
- Add the {{layerversion.layer.name}} layer to your project
- </button>
+ <div class="page-header">
+ {% if layerversion.layer.local_source_dir %}
+ <h1>{{layerversion.layer.name}} <small class="commit" style="display:none;"></small>
+ </h1>
{% else %}
- <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-block btn-large btn-danger">
- <span class="icon-trash"></span>
- Remove the {{layerversion.layer.name}} layer from your project
- </button>
+ <h1>{{layerversion.layer.name}} <small class="commit"
+ {% if layerversion.get_vcs_reference|length > 13 %}
+ data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}"
+ {% endif %}>({{layerversion.get_vcs_reference|truncatechars:13}})</small>
+ </h1>
{% endif %}
- </span>
+ </div>
+ <div class="row">
+ <!-- container for tabs -->
+ <div class="col-md-8 tabbable">
+ <div class="alert alert-info lead" id="alert-area" style="display:none">
+ <button type="button" class="close" id="dismiss-alert">&times;</button>
+ <span id="alert-msg"></span>
+ </div>
- <!-- layer details pane -->
- <div id="information" class="tab-pane active">
- <dl class="dl-horizontal">
- <dt class="">
- <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i>
- Repository URL
- </dt>
- <dd>
- <span class="current-value">{{layerversion.layer.vcs_url}}</span>
- {% if layerversion.get_vcs_link_url %}
- <a href="{{layerversion.get_vcs_link_url}}/" class="icon-share get-info" target="_blank"></a>
- {% endif %}
- <form id="change-repo-form" class="control-group" style="display:none">
- <div class="input-append">
- <input type="text" class="input-xlarge" value="{{layerversion.layer.vcs_url}}">
- <button data-layer-prop="vcs_url" class="btn change-btn" type="button">Save</button>
- <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
- </div>
- </form>
- <i class="icon-pencil" ></i>
- </dd>
- <dt>
- <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i>
- Repository subdirectory
- </dt>
- <dd>
- <span class="muted" style="display:none">Not set</span>
- <span class="current-value">{{layerversion.dirpath}}</span>
- {% if layerversion.get_vcs_dirpath_link_url %}
- <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="icon-share get-info" target="_blank"></a>
- {% endif %}
- <form id="change-subdir-form" style="display:none;">
- <div class="input-append">
- <input type="text" value="{{layerversion.dirpath}}">
- <button data-layer-prop="dirpath" class="btn change-btn" type="button">Save</button>
- <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
+ {% if layerversion.id not in projectlayers %}
+ <button id="add-remove-layer-btn" data-directive="add" class="btn btn-default btn-lg btn-block">
+ <span class="glyphicon glyphicon-plus"></span>
+ Add the {{layerversion.layer.name}} layer to your project
+ </button>
+ {% else %}
+ <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-default btn-block btn-lg btn-danger">
+ <span class="glyphicon glyphicon-trash"></span>
+ Remove the {{layerversion.layer.name}} layer from your project
+ </button>
+ {% endif %}
+
+ <ul class="nav nav-tabs">
+ <li class="active">
+ <a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
+ </li>
+ <li>
+ <a data-toggle="tab" href="#recipes" class="text-muted" id="targets-tab">Recipes (<span class="table-count-recipestable"></span>)</a>
+ </li>
+ <li>
+ <a data-toggle="tab" href="#machines" class="text-muted" id="machines-tab">Machines (<span class="table-count-machinestable"></span>)</a>
+ </li>
+ </ul>
+ <div class="tab-content">
+
+ <!-- layer details pane -->
+ <div id="information" class="tab-pane active">
+ <h3>Layer source code location</h3>
+ {% if layerversion.layer.local_source_dir %}
+ <dl class="dl-horizontal" id="directory-info">
+ <dt>
+ Path to the layer directory
+ </dt>
+ <dd>
+ <code>{{layerversion.layer.local_source_dir}}</code>
+ </dd>
+ </dl>
+ {% else %}
+ <dl class="dl-horizontal" id="git-repo-info">
+ <dt class="">
+ <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository"></span>
+ Repository URL
+ </dt>
+ <dd>
+ <span class="current-value">{{layerversion.layer.vcs_url}}</span>
+ {% if layerversion.get_vcs_link_url %}
+ <a href="{{layerversion.get_vcs_link_url}}/" class="glyphicon glyphicon-new-window" target="_blank"></a>
+ {% endif %}
+ <form id="change-repo-form" class="form-inline" style="display:none">
+ <div class="form-group">
+ <input type="text" class="form-control" value="{{layerversion.layer.vcs_url}}">
</div>
</form>
- <i id="change-subdir" class="icon-pencil"></i>
- <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
- </dd>
- <dt>
- <i class="icon-question-sign get-help" title="The Git branch, tag or commit"></i>
- Git revision
- </dt>
- <dd>
- <span class="current-value">{{layerversion.get_vcs_reference}}</span>
- <form style="display:none;">
- <div class="input-append">
- <input type="text" value="{{layerversion.get_vcs_reference}}">
- <button data-layer-prop="commit" class="btn change-btn" type="button">Save</button>
- <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
- </div>
- </form>
- <i class="icon-pencil"></i>
</dd>
+ {% if layerversion.dirpath %}
<dt>
- <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i>
- Layer dependencies
+ <span class="glyphicon glyphicon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
+ Repository subdirectory
</dt>
<dd>
- <ul class="unstyled current-value" id="layer-deps-list">
- {% for ld in layerversion.dependencies.all %}
- <li data-layer-id="{{ld.depends_on.id}}">
- <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' project.id ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a>
- <span class="icon-trash " data-toggle="tooltip" title="Delete"></span>
- </li>
- {% endfor %}
- </ul>
- <div class="input-append add-deps">
- <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input">
- <a class="btn" id="add-layer-dependency-btn" >
- Add layer
- </a>
- </div>
- <span class="help-block add-deps">You can only add layers Toaster knows about</span>
- </dd>
- </dl>
- </div>
- <!-- end layerdetails tab -->
- <!-- targets tab -->
- <div id="recipes" class="tab-pane">
- <!-- Recipe table -->
- <div id="no-recipes-yet" class="alert alert-info" style="display:none">
- <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
- <p>Toaster learns about layers when you build them. If this layer provides any recipes, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
- </div>
+ <span class="text-muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.dirpath}}</span>
+ {% if layerversion.get_vcs_dirpath_link_url %}
+ <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="glyphicon glyphicon-new-window" target="_blank"></a>
+ {% endif %}
+ <form id="change-subdir-form" class="form-inline" style="display:none;">
+ <div class="form-group">
+ <input type="text" class="form-control" value="{{layerversion.dirpath}}">
+ </div>
+ </form>
+ </dd>
+ {% endif %}
+ <dt>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The Git branch, tag or commit"></span>
+ Git revision
+ </dt>
+ <dd>
+ <span class="current-value">{{layerversion.get_vcs_reference}}</span>
+ <form style="display:none;" class="form-inline">
+ <div class="form-group">
+ <input type="text" class="form-control" value="{{layerversion.get_vcs_reference}}">
+ </div>
+ </form>
+ </dd>
+ </dl>
+ {% endif %}
+ {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %}
+ <button class="btn btn-default btn-lg" id="edit-layer-source" style="margin-left:220px;">Edit layer source code location</button>
+ {% endif %}
+ <form id="edit-layer-source-form" style="display:none;">
+ <fieldset>
+ <legend class="radioLegend">Where is the layer source code?</legend>
+ <div class="radio">
+ <label>
+ <input type="radio" name="source-location" id="repo" value="repo">
+ In a <strong>Git repository</strong>
+ </label>
+ <p class="help-block" style="margin-left:20px;width:70%;">To build the layer Toaster must be able to access the Git repository, otherwise builds will fail. Toaster will fetch and checkout your chosen Git revision every time you start a build.</p>
+ </div>
+ <div class="radio" style="margin-top:15px;">
+ <label>
+ <input type="radio" name="source-location" id="dir" value="dir" checked>
+ In a <strong>directory</strong>
+ </label>
+ <p class="help-block" style="margin-left:20px;width:70%;">Use this option for quick layer development, by simply providing the path to the layer source code.</p>
+ </div>
+ </fieldset>
+ <fieldset id="layer-git">
+ <legend>Git repository information</legend>
+ <div class="form-group">
+ <label for="layer-git-repo-url">
+ Git repository URL
+ <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span>
+ </label>
+ <input type="text" id="layer-git-repo-url" class="form-control" value="{{layerversion.layer.vcs_url|default_if_none:''}}">
+ </div>
+ <div class="form-group">
+ <label for="layer-subdir">
+ Repository subdirectory
+ <span class="text-muted">(optional)</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
+ </label>
+ <input type="text" class="form-control" id="layer-subdir" value="{{layerversion.dirpath|default_if_none:''}}">
+ </div>
+ <div class="form-group" id="layer-revision-ctrl">
+ <label for="layer-git-ref">Git revision
+ <span class="glyphicon glyphicon-question-sign get-help" title="You can provide a Git branch, a tag or a commit SHA as the revision"></span>
+ </label>
+ <input type="text" class="form-control" id="layer-git-ref" value="{{layerversion.get_vcs_reference|default_if_none:''}}">
+ <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span>
+ </div>
+ </fieldset>
+ <fieldset id="layer-dir">
+ <legend>Layer directory information</legend>
+ <div class="form-group">
+ <label for="layer-dir-path">
+ Enter the absolute path to the layer directory
+ </label>
+ <input type="text" id="layer-dir-path-in-details" class="form-control" value="{{layerversion.layer.local_source_dir}}" required>
+ </div>
+ </fieldset>
- {% url 'layerrecipestable' project.id layerversion.id as xhr_table_url %}
- {% with "recipestable" as table_name %}
- {% with "Recipes" as title %}
- {% include 'toastertable-simple.html' %}
- {% endwith %}
- {% endwith %}
- </div>
+ <div style="margin-top:25px;">
+ <a href="#" class="btn btn-primary btn-lg" id="save-changes-for-switch">Save changes</a>
+ <a href="#" class="btn btn-link btn-lg" id="cancel-changes-for-switch">Cancel</a>
+ </div>
+ </form>
- <div id="machines" class="tab-pane">
+ <h3 class="top-air">Layer dependencies
+ <span class="glyphicon glyphicon-question-sign get-help" title="Other layers this layer depends upon"></span>
+ </h3>
- <div id="no-machines-yet" class="alert alert-info" style="display:none">
- <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
- <p>Toaster learns about layers when you build them. If this layer provides any machines, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
- </div>
+ <ul class="list-unstyled current-value lead" id="layer-deps-list">
+ {% for ld in layerversion.dependencies.all %}
+ <li data-layer-id="{{ld.depends_on.id}}">
+ <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' project.id ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a>
+ <span class="glyphicon glyphicon-trash " data-toggle="tooltip" title="Delete"></span>
+ </li>
+ {% endfor %}
+ </ul>
+ <form class="form-inline add-deps">
+ <div class="form-group">
+ <input class="form-control" type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input">
+ </div>
+ <a class="btn btn-default" id="add-layer-dependency-btn" disabled="disabled">
+ Add layer
+ </a>
+ <span class="help-block add-deps">You can only add layers Toaster knows about</span>
+ </form>
+ </div>
+ <!-- end layerdetails tab -->
+ <!-- targets tab -->
+ <div id="recipes" class="tab-pane">
+ <!-- Recipe table -->
+ <div id="no-recipes-yet" class="alert alert-info" style="display:none">
+ <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ <p>Toaster learns about layers when you build them. If this layer provides any recipes, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ </div>
+ {% url 'layerrecipestable' project.id layerversion.id as xhr_table_url %}
+ {% with "recipestable" as table_name %}
+ {% with "Recipes" as title %}
+ {% include 'toastertable-simple.html' %}
+ {% endwith %}
+ {% endwith %}
+ </div>
+ <div id="machines" class="tab-pane">
- <!-- Machines table -->
- {% url 'layermachinestable' project.id layerversion.id as xhr_table_url %}
- {% with "machinestable" as table_name %}
- {% with "Machines" as title %}
- {% include 'toastertable-simple.html' %}
- {% endwith %}
- {% endwith %}
+ <div id="no-machines-yet" class="alert alert-info" style="display:none">
+ <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
+ <p>Sadly, machine information cannot be obtained from builds, so this page will remain empty.</p>
</div>
- </div> <!-- end tab content -->
- </div> <!-- end tabable -->
- <div class="row-fluid span4 well"> <!-- info side panel -->
+
+ <!-- Machines table -->
+ {% url 'layermachinestable' project.id layerversion.id as xhr_table_url %}
+ {% with "machinestable" as table_name %}
+ {% with "Machines" as title %}
+ {% include 'toastertable-simple.html' %}
+ {% endwith %}
+ {% endwith %}
+ </div>
+ </div> <!-- end tab content -->
+ </div> <!-- end tabable -->
+
+ <div class="col-md-4"> <!-- info side panel -->
+ <div class="well">
<h2>About {{layerversion.layer.name}}</h2>
<dl class="item-info">
<dt>
- Summary
- <i class="icon-question-sign get-help" title="One-line description of the layer"></i>
+ Summary
+ <span class="glyphicon glyphicon-question-sign get-help" title="One-line description of the layer"></span>
</dt>
<dd>
- <span class="muted" style="display:none">Not set</span>
- <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span>
- <form style="display:none; margin-bottom:20px">
- <textarea class="span12" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea>
- <button class="btn change-btn" data-layer-prop="summary" type="button">Save</button>
- <a href="#" class="btn btn-link cancel">Cancel</a>
- </form>
- <i class="icon-pencil"></i>
- <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
+ <span class="text-muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span>
+ <form style="display:none; margin-bottom:20px; margin-top:5px;">
+ <div class="form-group">
+ <textarea class="form-control" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea>
+ </div>
+ <button class="btn btn-default change-btn" data-layer-prop="summary" type="button">Save</button>
+ <a href="#" class="btn btn-link cancel">Cancel</a>
+ </form>
+ <span class="glyphicon glyphicon-edit"></span>
+ <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
</dd>
<dt>
- Description
+ Description
</dt>
<dd>
- <span class="muted" style="display:none">Not set</span>
- <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span>
- <form style="display:none; margin-bottom:20px">
- <textarea class="span12" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea>
- <button class="btn change-btn" data-layer-prop="description" type="button" >Save</button>
- <a href="#" class="btn btn-link cancel">Cancel</a>
- </form>
- <i class="icon-pencil"></i>
- <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
+ <span class="text-muted" style="display:none">Not set</span>
+ <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span>
+ <form style="display:none; margin-bottom:20px; margin-top:5px;">
+ <div class="form-group">
+ <textarea class="form-control" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea>
+ </div>
+ <button class="btn btn-default change-btn" data-layer-prop="description" type="button" >Save</button>
+ <a href="#" class="btn btn-link cancel">Cancel</a>
+ </form>
+ <span class="glyphicon glyphicon-edit"></span>
+ <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
</dd>
- {% if layerversion.layer.up_id %}
+ {% if layerversion.layer_source == layer_source.TYPE_LAYERINDEX %}
<dt>Layer index</dt>
<dd>
- <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.up_branch.name}}/layer/{{layerversion.layer.name}}">layer index link</a>
-
- </dd>
+ <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.release.name}}/layer/{{layerversion.layer.name}}">Layer index {{layerversion.layer.name}}</a>
+ </dd>
+ {% endif %}
+ </dl>
+ {# Only show delete link for imported layers #}
+ {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %}
+ <i class="icon-trash text-danger"></i>
+ <a href="#delete-layer-modal" role="button" class="text-danger"
+ data-toggle="modal" data-target="#delete-layer-modal">Delete layer</a>
{% endif %}
-
- </dl>
+ </div>
</div>
+ </div>
+ </div> <!-- close column 12 div -->
+</div> <!-- close top row div -->
- {% endblock %}
+{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/machine_btn.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/machine_btn.html
index 7b08f6a9a..5d93d7aa9 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/machine_btn.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/machine_btn.html
@@ -1,16 +1,16 @@
-<a href="{% url 'project' extra.pid %}?setMachine={{data.name}}" class="btn btn-block layer-exists-{{data.layer_version.id}}"
+<a href="{% url 'project' extra.pid %}?setMachine={{data.name}}" class="btn btn-default btn-block layer-exists-{{data.layer_version.id}}"
{% if data.layer_version.pk not in extra.current_layers %}
style="display:none;"
{% endif %}
>
Select machine</a>
-<button class="btn btn-block layerbtn layer-add-{{data.layer_version.id}}" data-layer='{ "id": {{data.layer_version.id}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.id %}"}' data-directive="add"
+<a class="btn btn-default btn-block layerbtn layer-add-{{data.layer_version.id}}" data-layer='{ "id": {{data.layer_version.id}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.id %}"}' data-directive="add"
{% if data.layer_version.pk in extra.current_layers %}
style="display:none;"
{% endif %}
>
- <i class="icon-plus"></i>
+ <span class="glyphicon glyphicon-plus"></span>
Add layer
- <i title="" class="icon-question-sign get-help" data-original-title="To enable this machine, you must first add the {{data.layer_version.layer.name}} layer to your project"></i>
-</button>
+ <span class="glyphicon glyphicon-question-sign get-help" title="To select this machine, you must first add the {{data.layer_version.layer.name}} layer to your project"></i>
+</a>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/mrb_section.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/mrb_section.html
index b5e798d7c..b761ffe1d 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/mrb_section.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/mrb_section.html
@@ -1,178 +1,274 @@
{% load static %}
-{% load projecttags %}
-{% load project_url_tag %}
{% load humanize %}
+{% load project_url_tag %}
<script src="{% static 'js/mrbsection.js' %}"></script>
-<script>
- $(document).ready(function () {
- var ctx = {
- mrbType : "{{mrb_type}}",
- }
- try {
- mrbSectionInit(ctx);
- } catch (e) {
- document.write("Sorry, An error has occurred loading this page");
- console.warn(e);
- }
- });
-</script>
-
-{%if mru and mru.count > 0%}
-
- {%if mrb_type == 'project' %}
- <h2 class="page-header">
+{% if mru %}
+ {% if mrb_type == 'project' %}
+ <h2>
Latest project builds
{% if project.is_default %}
- <i class="icon-question-sign get-help heading-help" title="" data-original-title="Builds in this project cannot be started from Toaster: they are started from the command line"></i>
- {% endif %}
- </h2>
+ <span class="glyphicon glyphicon-question-sign get-help heading-help" data-original-title="Builds in this project cannot be started from Toaster: they are started from the command line"></span>
+ {% endif %}
+ </h2>
{% else %}
- <div class="page-header top-air">
- <h1>
- Latest builds
- </h1>
+ <div class="page-header">
+ <h1>Latest builds</h1>
</div>
{% endif %}
+
<div id="latest-builds">
- {% for build in mru %}
- <div data-latest-build-result="{{ build.id }}" class="alert build-result {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}{% if mrb_type != 'project' %} project-name{% endif %}">
- {% if mrb_type != 'project' %}
- <span class="label {%if build.outcome == build.SUCCEEDED%}label-success{%elif build.outcome == build.FAILED%}label-important{%else%}label-info{%endif%}">
- <a href={% project_url build.project %}>
- {{build.project.name}}
- </a>
- </span>
- {% endif %}
- <div class="row-fluid">
- <div class="span3 lead">
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <a href="{%url 'builddashboard' build.pk%}" class="{%if build.outcome == build.SUCCEEDED %}success{%else%}error{%endif%}">
- {% endif %}
- {% if build.target_set.all.count > 0 %}
- <span data-toggle="tooltip"
- {% if build.target_set.all.count > 1 %}
- {{build.get_sorted_target_list.0.target}}
- title="Recipes:
- {% for target in build.get_sorted_target_list %}
- {% if target.task %}
- {{target.target}}:{{target.task}}
- {% else %}
- {{target.target}}
- {% endif %}
- {% endfor %}"
- {% endif %}
- >
- {% if build.target_set.all.0.task %}
- {{build.get_sorted_target_list.0.target}}:{{build.target_set.all.0.task}}
- {% else %}
- {{build.get_sorted_target_list.0.target}}
- {% endif %}
- {% if build.target_set.all.count > 1 %}
- (+{{build.target_set.all.count|add:"-1"}})
- {% endif %}
- </span>
- {% endif %}
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
+ {% for build in mru %}
+ <div data-latest-build-result="{{build.id}}" class="alert build-result {% if build.outcome == build.SUCCEEDED %}alert-success{% elif build.outcome == build.FAILED %}alert-danger{% else %}alert-info{% endif %}">
+ <!-- project title -->
+ {% if mrb_type != 'project' %}
+ <div class="row project-name">
+ <div class="col-md-12">
+ <small>
+ <a class="alert-link text-uppercase" href="{% project_url build.project %}">
+ {{build.project.name}}
</a>
- {% endif %}
- </div>
- {% if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <div class="span2 lead">
- {% if build.completed_on|format_build_date %}
- {{ build.completed_on|date:'d/m/y H:i' }}
- {% else %}
- {{ build.completed_on|date:'H:i' }}
- {% endif %}
- </div>
- {% endif %}
- {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}
- <div class="span2 lead">
- {% if build.errors.count %}
- <i class="icon-minus-sign red"></i> <a href="{%url 'builddashboard' build.pk%}#errors" class="error">{{build.errors.count}} error{{build.errors.count|pluralize}}</a>
- {% endif %}
- </div>
- <div class="span2 lead">
- {% if build.warnings.count %}
- <i class="icon-warning-sign yellow"></i> <a href="{%url 'builddashboard' build.pk%}#warnings" class="warning">{{build.warnings.count}} warning{{build.warnings.count|pluralize}}</a>
- {% endif %}
- </div>
- <div class="lead ">
- <span class="lead">
- Build time: <a href="{% url 'buildtime' build.pk %}">{{ build.timespent_seconds|sectohms }}</a>
- </span>
- {% if build.project.is_default %}
- <i class="pull-right icon-question-sign get-help
- {% if build.outcome == build.SUCCEEDED %}
- get-help-green
- {% elif build.outcome == build.FAILED %}
- get-help-red
- {% else %}
- get-help-blue
- {% endif %}
- " title="Builds in this project cannot be started from Toaster: they are started from the command line">
- </i>
- {% else %}
- <button class="run-again-btn btn
- {% if build.outcome == build.SUCCEEDED %}
- btn-success
- {% elif build.outcome == build.FAILED %}
- btn-danger
- {% else %}
- btn-info
- {%endif%}
- pull-right"
- data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
- data-target='{{build.target_set.all|get_tasks|json}}'>
-
-
- Rebuild
- </button>
- {% endif %}
+ </small>
</div>
- {%endif%}
- {%if build.outcome == build.IN_PROGRESS %}
- <div class="span4" style="display:none" id="cancelling-msg-{{build.buildrequest.pk}}">
- <p class="lead">Cancelling the build ...</p>
- </div>
- <div class="span4 offset1 progress-info">
- <div class="progress" id="build-pc-done-title-{{build.pk}}" style="margin-top:5px;" data-toggle="tooltip" title="{{build.completeper}}% of tasks complete">
- <div id="build-pc-done-bar-{{build.pk}}" style="width: {{build.completeper}}%;" class="bar"></div>
+ </div>
+ {% endif %}
+
+ <div class="row" data-role="build-status-container">
+ <div class="col-md-12">
+ Loading...
+ </div>
+ </div>
+ </div>
+ {% endfor %}
+ </div>
+{% endif %}
+
+<!-- build main template -->
+<script id="build-template" type="text/x-jsrender">
+ <div class="col-md-3">
+ <!-- only show link for completed builds -->
+ <%if state == 'Succeeded' || state == 'Failed'%>
+ <a class="alert-link" href="<%:dashboard_url%>">
+ <span data-toggle="tooltip" data-role="targets-text" title="Recipes: <%:targets%>">
+ <%:targets_abbreviated%>
+ </span>
+ </a>
+ <%else targets_abbreviated !== ''%>
+ <span data-toggle="tooltip" data-role="targets-text" title="Recipes: <%:targets%>">
+ <%:targets_abbreviated%>
+ </span>
+ <%else%>
+ Fetching recipe names...
+ <%/if%>
+ </div>
+
+ <div data-build-state="<%:state%>">
+ <%if state == 'Parsing'%>
+ <%include tmpl='#parsing-recipes-build-template'/%>
+ <%else state == 'Queued'%>
+ <%include tmpl='#queued-build-template'/%>
+ <%else state == 'Succeeded' || state == 'Failed'%>
+ <%include tmpl='#succeeded-or-failed-build-template'/%>
+ <%else state == 'Cancelling'%>
+ <%include tmpl='#cancelling-build-template'/%>
+ <%else state == 'Starting'%>
+ <%include tmpl='#starting-template'/%>
+ <%else state == 'In Progress'%>
+ <%include tmpl='#in-progress-build-template'/%>
+ <%else state == 'Cancelled'%>
+ <%include tmpl='#cancelled-build-template'/%>
+ <%/if%>
+ </div>
+</script>
+
+<!-- queued build -->
+<script id="queued-build-template" type="text/x-jsrender">
+ <div class="col-md-5">
+ <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
+ title="This build is waiting for the build directory to become available">
+ </span>
+
+ Build queued
+ </div>
+
+ <div class="col-md-4">
+ <!-- cancel button -->
+ <%include tmpl='#cancel-template'/%>
+ </div>
+</script>
+
+<!-- parsing recipes build -->
+<script id="parsing-recipes-build-template" type="text/x-jsrender">
+ <!-- progress bar and parse completion percentage -->
+ <div data-role="build-status" class="col-md-4 col-md-offset-1 progress-info">
+ <!-- progress bar -->
+ <div class="progress">
+ <div id="recipes-parsed-percentage-bar-<%:id%>"
+ style="width: <%:recipes_parsed_percentage%>%;"
+ class="progress-bar">
</div>
</div>
- <div class="lead span3 progress-info"><span id="build-pc-done-{{build.pk}}">{{build.completeper}}</span>% of tasks complete</div>
- {# No build cancel for command line builds project #}
- {% if build.project.is_default %}
- <i class="icon-question-sign get-help get-help-blue pull-right" title="" data-original-title="Builds in this project cannot be cancelled from Toaster: they can only be cancalled from the command line"></i>
- {% else %}
- <div class="lead pull-right progress-info">
- <button class="cancel-build-btn btn btn-info pull-right"
- data-buildrequest-id={{build.buildrequest.pk}}
- data-request-url="{% url 'xhr_buildrequest' build.project.pk %}" >
- Cancel
- </button>
- </div>
- {% endif %}
+ </div>
+
+ <div class="col-md-4 progress-info">
+ <!-- parse completion percentage -->
+ <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
+ title="BitBake is parsing the layers required for your build">
+ </span>
+
+ Parsing <span id="recipes-parsed-percentage-<%:id%>"><%:recipes_parsed_percentage%></span>% complete
+
+ <%include tmpl='#cancel-template'/%>
+ </div>
+</script>
+
+<!-- in progress build; tasks still starting -->
+<script id="starting-template" type="text/x-jsrender">
+ <div class="col-md-5">
+ <span class="glyphicon glyphicon-question-sign get-help get-help-blue"
+ title="This build is waiting for tasks to start">
+ </span>
+
+ Tasks starting...
+ </div>
- {%endif%} {# end if in progress #}
+ <div class="col-md-4">
+ <!-- cancel button -->
+ <%include tmpl='#cancel-template'/%>
+ </div>
+</script>
- {% if build.outcome == build.CANCELLED %}
- <div class="span4">
- <p class="lead">Build cancelled</p>
+<!-- in progress build; at least one task finished -->
+<script id="in-progress-build-template" type="text/x-jsrender">
+ <!-- progress bar and task completion percentage -->
+ <div data-role="build-status" class="col-md-4 col-md-offset-1 progress-info">
+ <!-- progress bar -->
+ <div class="progress" id="build-pc-done-title-<%:id%>">
+ <div id="build-pc-done-bar-<%:id%>"
+ style="width: <%:tasks_complete_percentage%>%;"
+ class="progress-bar">
+ </div>
</div>
- <button class="btn btn-info pull-right run-again-btn"
- data-request-url="{% url 'xhr_buildrequest' build.project.pk %}"
- data-target='{{build.target_set.all|get_tasks|json}}'>
- Rebuild
+ </div>
+
+ <div class="col-md-4 progress-info">
+ <!-- task completion percentage -->
+ <span id="build-pc-done-<%:id%>"><%:tasks_complete_percentage%></span>% of
+ tasks complete
+
+ <!-- cancel button -->
+ <%include tmpl='#cancel-template'/%>
+ </div>
+</script>
+
+<!-- cancelling build -->
+<script id="cancelling-build-template" type="text/x-jsrender">
+ <div class="col-md-9">
+ Cancelling the build ...
+ </div>
+</script>
+
+<!-- succeeded or failed build -->
+<script id="succeeded-or-failed-build-template" type="text/x-jsrender">
+ <!-- completed_on -->
+ <div class="col-md-2">
+ <%:completed_on%>
+ </div>
+
+ <!-- errors -->
+ <div class="col-md-2">
+ <%if errors%>
+ <span class="glyphicon glyphicon-minus-sign"></span>
+ <a href="<%:dashboard_errors_url%>" class="alert-link">
+ <%:errors%> error<%:errors_pluralise%>
+ </a>
+ <%/if%>
+ </div>
+
+ <!-- warnings -->
+ <div class="col-md-2">
+ <%if warnings%>
+ <span class="glyphicon glyphicon-warning-sign build-warnings"></span>
+ <a href="<%:dashboard_warnings_url%>" class="alert-link build-warnings">
+ <%:warnings%> warning<%:warnings_pluralise%>
+ </a>
+ <%/if%>
+ </div>
+
+ <!-- build time -->
+ <div class="col-md-3">
+ Build time:
- </button>
- {% endif %}
+ <span data-role="data-recent-build-buildtime-field">
+ <%if state == 'Succeeded'%>
+ <a class="alert-link" href="<%:buildtime_url%>"><%:buildtime%></a>
+ <%else%>
+ <%:buildtime%>
+ <%/if%>
+ </span>
+
+ <!-- rebuild button -->
+ <%include tmpl='#rebuild-template'/%>
+ </div>
+</script>
+
+<!-- cancelled build -->
+<script id="cancelled-build-template" type="text/x-jsrender">
+ <!-- build cancelled message -->
+ <div class="col-md-6">
+ Build cancelled
</div>
-</div>
- {% endfor %}
+ <!-- rebuild button -->
+ <div class="col-md-3">
+ <%include tmpl='#rebuild-template'/%>
</div>
+</script>
+
+<!-- rebuild button or no rebuild icon -->
+<script id="rebuild-template" type="text/x-jsrender">
+ <%if is_default_project_build%>
+ <!-- no rebuild info icon -->
+ <span class="pull-right glyphicon glyphicon-question-sign get-help <%if state == 'Succeeded'%>get-help-green<%else state == 'Failed'%>get-help-red<%else%>get-help-blue<%/if%>"
+ title="Builds in this project cannot be started from Toaster: they are started from the command line">
+ </span>
+ <%else%>
+ <!-- rebuild button -->
+ <span class="rebuild-btn alert-link <%if state == 'Success'%>success<%else state == 'Failed'%>danger<%else%>info<%/if%> pull-right"
+ data-request-url="<%:rebuild_url%>" data-target='<%:build_targets_json%>'>
+ <span class="glyphicon glyphicon-repeat"></span>
+ Rebuild
+ </span>
+ <%/if%>
+</script>
-{%endif%}
+<!-- cancel button or no cancel icon -->
+<script id="cancel-template" type="text/x-jsrender">
+ <%if is_default_project_build%>
+ <!-- no cancel icon -->
+ <span class="glyphicon glyphicon-question-sign get-help get-help-blue pull-right" title="Builds in this project cannot be cancelled from Toaster: they can only be cancelled from the command line"></span>
+ <%else%>
+ <!-- cancel button -->
+ <span class="cancel-build-btn pull-right alert-link"
+ data-buildrequest-id="<%:buildrequest_id%>" data-request-url="<%:cancel_url%>">
+ <span class="glyphicon glyphicon-remove-circle"></span>
+ Cancel
+ </span>
+ <%/if%>
+</script>
+<script>
+ $(document).ready(function () {
+ var ctx = {
+ mrbType : "{{mrb_type}}",
+ }
+
+ try {
+ mrbSectionInit(ctx);
+ } catch (e) {
+ document.write("Sorry, An error has occurred loading this page");
+ console.warn(e);
+ }
+ });
+</script>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage.html
index 46aed901f..980179a40 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage.html
@@ -5,10 +5,17 @@
{% block pagecontent %}
{% include "newcustomimage_modal.html" %}
-{% include "projecttopbar.html" %}
-{% url table_name project.id as xhr_table_url %}
-<h2>{{title}} (<span class="table-count-{{table_name}}">0</span>)</h2>
-{% include "toastertable.html" %}
+<div class="row">
+
+ {% include "projecttopbar.html" %}
+
+ <div class="col-md-12">
+ {% url table_name project.id as xhr_table_url %}
+ <h2>{{title}} (<span class="table-count-{{table_name}}">0</span>)</h2>
+ {% include "toastertable.html" %}
+ </div>
+
+</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage_modal.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage_modal.html
index caeb30235..d448d3afc 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage_modal.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newcustomimage_modal.html
@@ -12,37 +12,49 @@
});
</script>
-<div class="modal hide fade in" id="new-custom-image-modal" aria-hidden="false">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">Ă—</button>
- <h3>New custom image</h3>
- </div>
+<div class="modal fade" id="new-custom-image-modal" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">Ă—</button>
+ <h3>New custom image</h3>
+ </div>
- <div class="modal-body">
- <!--
- this container is visible if there are multiple image recipes which could
- be used as a basis for the new custom image; radio buttons are added to it
- via newCustomImageModalSetRecipes() as required
- -->
- <div data-role="image-selector" style="display:none;">
- <h4>Which image do you want to customise?</h4>
- <div data-role="image-selector-radios"></div>
- <span class="help-block error" id="invalid-recipe-help" style="display:none"></span>
- <div class="air"></div>
- </div>
+ <div class="modal-body">
+ <!--
+ this container is visible if there are multiple image recipes which could
+ be used as a basis for the new custom image; radio buttons are added to it
+ via newCustomImageModalSetRecipes() as required
+ -->
+ <div data-role="image-selector" style="display:none;">
+ <h4>Which image do you want to customise?</h4>
+ <span class="help-block text-danger" id="invalid-recipe-help" style="display:none"></span>
+ <div data-role="image-selector-radios"></div>
+ <div class="air"></div>
+ </div>
- <h4>Name your custom image</h4>
+ <h4>Name your custom image</h4>
- <div class="row-fluid">
- <span class="help-block span8">Image names must be unique. They should not contain spaces or capital letters, and the only allowed special character is dash (-).<p></p>
- </span></div>
- <div class="control-group controls">
- <input type="text" class="huge" placeholder="Type the custom image name" required>
- <span class="help-block error" id="invalid-name-help" style="display:none"></span>
- </div>
- </div>
+ <div class="row">
+ <div class="col-md-10">
+ <p class="help-block">Image names must be unique. They should not contain spaces or capital letters, and the only allowed special character is dash (-).
+ </p>
+ <div class="form-group">
+ <input type="text" class="form-control input-lg" placeholder="Type the custom image name" required>
+ </div>
+ <span class="help-block text-danger" id="invalid-name-help" style="display:none"></span>
+ </div>
+ </div>
+ </div>
- <div class="modal-footer">
- <button id="create-new-custom-image-btn" class="btn btn-primary btn-large" data-original-title="" title="" disabled>Create custom image</button>
+ <div class="modal-footer">
+ <button id="create-new-custom-image-btn" class="btn btn-primary btn-large" disabled>
+ <span data-role="submit-state">Create custom image</span>
+ <span data-role="loading-state" style="display:none">
+ <i class="fa-pulse icon-spinner"></i>&nbsp;Creating custom image...
+ </span>
+ </button>
+ </div>
+ </div>
</div>
</div>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newproject.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newproject.html
index e83b2bea6..acb614e9d 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newproject.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/newproject.html
@@ -5,24 +5,21 @@
{% block title %} Create a new project - Toaster {% endblock %}
{% block pagecontent %}
-<div class="row-fluid">
+<div class="row">
+ <div class="col-md-12">
<div class="page-header">
<h1>Create a new project</h1>
</div>
- <div class="container-fluid">
{% if alert %}
- <div class="alert alert-error row-fluid" role="alert">{{alert}}</div>
+ <div class="alert alert-danger" role="alert">{{alert}}</div>
{% endif %}
- </div>
- <div class="row-fluid">
- <div class="span6">
<form method="POST">{% csrf_token %}
-
- <fieldset>
- <label>Project name <span class="muted">(required)</span></label>
- <input type="text" class="input-xlarge" required id="new-project-name" name="projectname">
- </fieldset>
+ <div class="form-group" id="validate-project-name">
+ <label class="control-label">Project name <span class="text-muted">(required)</span></label>
+ <input type="text" class="form-control" required id="new-project-name" name="projectname">
+ </div>
+ <p class="help-block text-danger" style="display: none;" id="hint-error-project-name">A project with this name exists. Project names must be unique.</p>
<!--
<fieldset>
<label class="project-form">Project type</label>
@@ -35,13 +32,13 @@
<input type="hidden" name="ptype" value="build" />
{% if releases.count > 0 %}
- <fieldset class="release">
+ <div class="release form-group">
{% if releases.count > 1 %}
- <label class="project-form">
+ <label class="control-label">
Release
- <i class="icon-question-sign get-help" title="The version of the build system you want to use"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The version of the build system you want to use"></span>
</label>
- <select name="projectversion" id="projectversion">
+ <select name="projectversion" id="projectversion" class="form-control">
{% for release in releases %}
<option value="{{release.id}}"
{%if defaultbranch == release.name %}
@@ -50,25 +47,28 @@
>{{release.description}}</option>
{% endfor %}
</select>
+ <div class="row">
+ <div class="col-md-4">
{% for release in releases %}
- <div class="row-fluid helptext" id="description-{{release.id}}" style="display: none">
- <span class="help-block span5">{{release.helptext|safe}}</span>
- </div>
+ <div class="helptext" id="description-{{release.id}}" style="display: none">
+ <span class="help-block">{{release.helptext|safe}}</span>
+ </div>
{% endfor %}
{% else %}
<input type="hidden" name="projectversion" value="{{releases.0.id}}"/>
{% endif %}
+ </div>
+ </div>
</fieldset>
{% endif %}
-
- <div class="form-actions">
- <input type="submit" id="create-project-button" class="btn btn-primary btn-large" value="Create project"/>
+ <div class="top-air">
+ <input type="submit" id="create-project-button" class="btn btn-primary btn-lg" value="Create project"/>
<span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span>
</div>
+
</form>
- </div>
<!--
- <div class="span5 well">
+ <div class="col-md-5 well">
<span class="help-block">
<h4>Toaster project types</h4>
<p>With a <strong>build project</strong> you configure and run your builds from Toaster.</p>
@@ -81,7 +81,7 @@
<p>If you create a <strong>build project</strong>, you will need to select a <strong>release</strong>,
which is the version of the build system you want to use to run your builds.</p>
</div> -->
- </div>
+ </div>
</div>
<script type="text/javascript">
@@ -113,6 +113,11 @@
$('#description-' + new_release).fadeIn();
});
+ libtoaster.makeProjectNameValidation($("#new-project-name"),
+ $("#hint-error-project-name"), $("#validate-project-name"),
+ $(".btn-primary"));
+
+
/* // Hide the project release when you select an analysis project
function projectType() {
if ($("input[type='radio']:checked").val() == 'build') {
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html
index e6f20c330..a5d589357 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html
@@ -2,16 +2,16 @@
{% load projecttags %}
{% block tabcontent %}
- <ul class="nav nav-pills">
+ <ul class="nav nav-tabs">
<li class="">
<a href="{% url 'package_built_detail' build.id package.id %}">
- <i class="icon-question-sign get-help" title="Shows the files produced by this package."></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Shows the files produced by this package."></span>
Generated files ({{package.buildfilelist_package.count}})
</a>
</li>
<li class="active">
<a href="{% url 'package_built_dependencies' build.id package.id %}">
- <i class="icon-question-sign get-help" title="Shows the runtime packages required by this package."></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Shows the runtime packages required by this package."></span>
Runtime dependencies ({{dependency_count}})
</a>
</li>
@@ -24,14 +24,14 @@
</div>
{% else %}
<div class="alert alert-info">
- <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the projected runtime dependencies if you include <strong>{{package.fullpackagespec}}</strong> in future builds.
+ <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the projected runtime dependencies if you were to include <strong>{{package.fullpackagespec}}</strong> in an image.
</div>
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Package</th>
<th>Version</th>
- <th class="sizecol span2">Size</th>
+ <th class="sizecol col-md-2">Size</th>
</tr>
</thead>
<tbody>
@@ -62,9 +62,9 @@
<tr>
<th>Package</th>
<th>Version</th>
- <th class="sizecol span2">Size</th>
+ <th class="sizecol col-md-2">Size</th>
<th>
- <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></span>
Relationship type
</th>
</tr>
@@ -87,7 +87,7 @@
<td class="sizecol">{{other_dep.size|filtered_filesizeformat}}</td>
<td>
{{other_dep.dep_type_display}}
- <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></span>
</td>
</tr>
{% endfor %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_detail.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_detail.html
index 9be8ccb85..0bdbc2a41 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_detail.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_built_detail.html
@@ -6,13 +6,13 @@
<!-- Generated Files -->
{% if package.buildtargetlist_package.count == 0 %}
{# Not included case #}
- <ul class="nav nav-pills">
+ <ul class="nav nav-tabs">
<li class="active"> <a href="#">
- <i class="icon-question-sign get-help" title="Files added to a root file system when you include {{package.name}} in an image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Files added to a root file system when you include {{package.name}} in an image"></span>
Generated files ({{packageFileCount}})
</a></li>
<li class=""><a href="{% url 'package_built_dependencies' build.id package.id %}">
- <i class="icon-question-sign get-help" title="Projected runtime dependencies when you include {{package.name}} in an image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Projected runtime dependencies when you include {{package.name}} in an image"></span>
Runtime dependencies ({{dependency_count}})
</a></li>
</ul>
@@ -21,7 +21,7 @@
<!-- Package file list or if empty, alert pane -->
{% if packageFileCount > 0 %}
<div class="alert alert-info">
- <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the files added to an image root file system if you include <strong>{{package.fullpackagespec}}</strong> in future builds.
+ <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the files that would be added to an image root file system with <strong>{{package.fullpackagespec}}</strong> included in it.
</div>
{% include "tablesort.html" %}
<tbody>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_detail_base.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
index 9fa28a8f8..66f8e7f06 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_detail_base.html
@@ -14,8 +14,8 @@
function fmtAliasHelp(package_name, alias, hover) {
var r = null;
if (alias != null && alias != '') {
- r = '<span class="muted"> as ' + alias + '&nbsp';
- r += '<i class="icon-question-sign get-help';
+ r = '<span class="text-muted"> as ' + alias + '&nbsp';
+ r += '<span class="glyphicon glyphicon-question-sign get-help';
if (hover) {
r+= ' hover-help';
}
@@ -23,9 +23,9 @@
r+= ' heading-help';
}
r += '"';
- title = package_name + ' was renamed at packaging time and was installed on your system as ' + alias;
+ title = '<code>' + package_name + '</code> was renamed at packaging time and was installed on your system as <code>' + alias + '</code>';
r += ' title="' + title + '">';
- r += '</i>';
+ r += '</span>';
r += '</span>';
document.write(r);
}
@@ -43,28 +43,32 @@
{% endblock localbreadcrumb %}
{% block pagedetailinfomain %}
- <div class="row span11">
- <div class="page-header">
+ <div class="row">
+ <div class="col-md-12">
+ <div class="page-header build-data">
{% block mainheading %}
<h1>{{package.fullpackagespec}}</h1>
{% endblock %}
</div> <!-- page-header -->
- </div> <!-- row span11 page-header -->
+ </div> <!-- col-md-12 page-header -->
+ </div> <!-- end row -->
{% block twocolumns %}
- <div class="row span7 tabbable">
+ <div class="row">
+ <div class="col-md-8 tabbable">
{% block tabcontent %}
{% endblock tabcontent %}
- </div> <!-- row span7 -->
+ </div> <!-- row col-md-8 -->
- <div class="row span4 well">
+ <div class="col-md-4">
+ <div class="well">
<h2>Package information</h2>
<!-- info presented as definition list -->
<dl class="item-info">
<dt>
Size
- <i class="icon-question-sign get-help" title="The size of the package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The size of the package"></span>
</dt>
<dd>
{% comment %}
@@ -81,7 +85,7 @@
<dt>
License
- <i class="icon-question-sign get-help" title="The license under which this package is distributed"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The license under which this package is distributed"></span>
</dt>
<dd>{{package.license}}</dd>
@@ -97,7 +101,7 @@
<dt>
Recipe
- <i class="icon-question-sign get-help" title="The name of the recipe building this package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name of the recipe building this package"></span>
</dt>
<dd>
{% if package.recipe_id > 0 %}
@@ -109,13 +113,13 @@
<dt>
Recipe version
- <i class="icon-question-sign get-help" title="The version of the recipe building this package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The version of the recipe building this package"></span>
</dt>
<dd>{{package.recipe.version}}</dd>
<dt>
Layer
- <i class="icon-question-sign get-help" title="The name of the layer providing the recipe that builds this package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name of the layer providing the recipe that builds this package"></span>
</dt>
<dd>
{{package.recipe.layer_version.layer.name}}
@@ -124,26 +128,42 @@
# Removed per team meeting of 1/29/2014 until
# decision on index search algorithm
<a href="http://layers.openembedded.org" target="_blank">
- <i class="icon-share get-info"></i>
+ <i class="glyphicon glyphicon-share get-info"></i>
</a>
{% endcomment %}
{% endif %}
</dd>
- {% if package.recipe.layer_version.branch %}
<dt>
Layer branch
- <i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe that builds this package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The Git branch of the layer providing the recipe that builds this package"></span>
+ {%if package.recipe.layer_version.layer.local_source_dir %}
+ <dd>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The source code of {{package.recipe.layer_version.layer.name}} is not in a Git repository, so there is no branch associated with it"></span>
+ </dd>
+ {% endif %}
</dt>
+ {% if not package.recipe.layer_version.layer.local_source_dir %}
<dd>{{package.recipe.layer_version.branch}}</dd>
- {% endif %}
+ {% endif %}
<dt>
Layer commit
- <i class="icon-question-sign get-help" title="The Git commit of the layer providing the recipe that builds this package"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The Git commit of the layer providing the recipe that builds this package"></span>
+ {%if package.recipe.layer_version.layer.local_source_dir %}
+ <dd>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The source code of {{package.recipe.layer_version.layer.name}} is not in a Git repository, so there is no commit associated with it"></span>
+ </dd>
+ {% endif %}
</dt>
+ {% if not package.recipe.layer_version.layer.local_source_dir %}
<dd class="iscommit">{{package.recipe.layer_version.commit}}</dd>
+ {% endif %}
</dl>
- </div> <!-- row4 well -->
+ <div> <!-- end well -->
+ </div> <!-- end 4-column section -->
{% endblock twocolumns %}
+ </div> <!-- end row -->
{% endblock pagedetailinfomain %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html
index 8a0508e70..95e56ded2 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html
@@ -20,11 +20,11 @@
<tr>
<th>Package</th>
<th>Version</th>
- <th class='sizecol span2'>Size</th>
+ <th class='sizecol col-md-2'>Size</th>
</tr>
</thead>
<tbody>
- {% for runtime_dep in runtime_deps %}
+ {% for runtime_dep in runtime_deps %}
<tr {{runtime_dep.size|format_vpackage_rowclass}} >
{% if runtime_dep.size != -1 %}
<td>
@@ -41,7 +41,7 @@
<td>{{runtime_dep.version}}&nbsp;</td>
<td class='sizecol'>{{runtime_dep.size|filtered_filesizeformat}}&nbsp;</td>
</tr>
- {% endfor %}
+ {% endfor %}
</tbody>
</table>
{% else %}
@@ -57,15 +57,15 @@
<tr>
<th>Package</th>
<th>Version</th>
- <th class='sizecol span2'>Size</th>
+ <th class='sizecol col-md-2'>Size</th>
<th>
- <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></span>
Relationship type
</th>
</tr>
</thead>
<tbody>
- {% for other_dep in other_deps %}
+ {% for other_dep in other_deps %}
{% if other_dep.installed %}
<tr {{other_dep.size|format_vpackage_rowclass}}>
{% if other_dep.size != -1 %}
@@ -86,21 +86,21 @@
<td class='sizecol'>{{other_dep.size|filtered_filesizeformat}}&nbsp;</td>
<td>
{{other_dep.dep_type_display}}
- <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></span>
</td>
</tr>
{% else %}
- <tr class="muted">
+ <tr class="text-muted">
<td>{{other_dep.name}}</td>
<td>{{other_dep.version}}</td>
<td></td>
<td>
{{other_dep.dep_type_display}}
- <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></span>
</td>
</tr>
{% endif %}
- {% endfor %}
+ {% endfor %}
</tbody>
</table>
{% endifnotequal %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_tabs.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_tabs.html
index 958aa8827..e89fa211c 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_tabs.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/package_included_tabs.html
@@ -1,12 +1,12 @@
- <ul class="nav nav-pills">
+ <ul class="nav nav-tabs">
{% if active_tab == "detail" %}
<li class="active">
{% else %}
<li class="">
{% endif %}
<a href="{% url 'package_included_detail' build.id target.id package.id %}">
- <i class="icon-question-sign get-help" title="The files this package adds to the image root file system"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The files this package adds to the image root file system"></span>
Files in root file system ({{packageFileCount}})
</a>
</li>
@@ -16,7 +16,7 @@
<li class="">
{% endif %}
<a href="{% url 'package_included_dependencies' build.id target.id package.id %}">
- <i class="icon-question-sign get-help" title="Package runtime dependencies"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Package runtime dependencies"></span>
Runtime dependencies ({{dependency_count}})
</a>
</li>
@@ -26,7 +26,7 @@
<li class="">
{% endif %}
<a href="{% url 'package_included_reverse_dependencies' build.id target.id package.id %}">
- <i class="icon-question-sign get-help" title="The package runtime reverse dependencies (i.e. the packages in this image that depend on this package). Reverse dependencies reflect only the 'depends' dependency type"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The package runtime reverse dependencies (i.e. the packages in this image that depend on this package). Reverse dependencies reflect only the 'depends' dependency type"></span>
Reverse runtime dependencies ({{reverse_count}})
</a>
</li>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/pkg_add_rm_btn.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/pkg_add_rm_btn.html
index 0aefc5625..303faecbd 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/pkg_add_rm_btn.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/pkg_add_rm_btn.html
@@ -1,12 +1,12 @@
{# TODO move to snippets dir #}
{% if data.is_locale_package %}
<p class="text-center">
- <span class="muted">Locale package</span>
- <i class="icon-question-sign get-help hover-help" title=""
- data-original-title="This package is included in your image
+ <span class="text-muted">Locale package</span>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help"
+ title="This package is included in your image
based on the locale specified in the IMAGE_LINGUAS variable"
style="visibility: hidden;">
- </i>
+ </span>
</p>
{% else %}
@@ -21,12 +21,12 @@
<i class="icon-trash no-tooltip"></i>
Remove package
</button>
- <button class="btn btn-block add-rm-package-btn" data-directive="add" data-id="{{data.pk}}" data-package-url="{% url 'xhr_customrecipe_packages' extra.recipe_id data.pk %}" data-name="{{data.name}}" style="
+ <button class="btn btn-default btn-block add-rm-package-btn" data-directive="add" data-id="{{data.pk}}" data-package-url="{% url 'xhr_customrecipe_packages' extra.recipe_id data.pk %}" data-name="{{data.name}}" style="
{% if data.pk in extra.current_packages %}
display:none
{% endif %}
">
- <i class="icon-plus"></i>
+ <i class="glyphicon glyphicon-plus"></i>
Add package
</button>
</div>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/project.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/project.html
index 125676881..5abe24130 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/project.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/project.html
@@ -24,44 +24,55 @@
});
</script>
-<!-- Comment out the ability to change the project release, until we decide what to do this functionality -->
-
-<!--div id="change-release-modal" class="modal hide fade in" tabindex="-1" role="dialog" aria-labelledby="change-release-modal" aria-hidden="false">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3>Changing Yocto Project release to <span class="proposed-release-change-name"></span></h3>
- </div>
- <div class="modal-body">
- <p>The following added layers do not exist for <span class="proposed-release-change-name"></span>: </p>
- <ul id="layers-to-remove-list">
- </ul>
- <p>If you change the Yocto Project release to <span class="proposed-release-change-name"></span>, the above layers will be deleted from your added layers.</p>
- </div>
- <div class="modal-footer">
- <button id="change-release-and-rm-layers" data-dismiss="modal" type="submit" class="btn btn-primary">Change release and delete layers</button>
- <button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
- </div>
-</div-->
+<div id="delete-project-modal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h4>Are you sure you want to delete this project?</h4>
+ </div>
+ <div class="modal-body">
+ <p>Deleting the <strong class="project-name"></strong> project
+ will:</p>
+ <ul>
+ <li>Cancel its builds currently in progress</li>
+ <li>Remove its configuration information</li>
+ <li>Remove its imported layers</li>
+ <li>Remove its custom images</li>
+ <li>Remove all its build information</li>
+ </ul>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary" id="delete-project-confirmed">
+ <span data-role="submit-state">Delete project</span>
+ <span data-role="loading-state" style="display:none">
+ <span class="fa-pulse">
+ <i class="fa-pulse icon-spinner"></i>
+ </span>
+ &nbsp;Deleting project...
+ </span>
+ </button>
+ <button type="button" class="btn btn-link" data-dismiss="modal">Cancel</button>
+ </div>
+ </div><!-- /.modal-content -->
+ </div><!-- /.modal-dialog -->
+</div>
-<div class="row-fluid" id="project-page" style="display:none">
- <div class="span6">
+<div class="row" id="project-page" style="display:none">
+ <div class="col-md-6">
<div class="well well-transparent" id="machine-section">
<h3>Machine</h3>
- <p class="lead"><span id="project-machine-name"></span> <i title="" data-original-title="" id="change-machine-toggle" class="icon-pencil"></i></p>
-
- <form id="select-machine-form" style="display:none;">
- <div class="alert alert-info">
- <strong>Machine changes have a big impact on build outcome.</strong> You cannot really compare the builds for the new machine with the previous ones.
- </div>
+ <p class="lead"><span id="project-machine-name"></span> <span class="glyphicon glyphicon-edit" id="change-machine-toggle"></span></p>
- <div class="input-append">
- <input id="machine-change-input" autocomplete="off" value="" data-provide="typeahead" data-minlength="1" data-autocomplete="off" type="text">
- <button id="machine-change-btn" class="btn" type="button">Save</button> <a href="#" id="cancel-machine-change" class="btn btn-link">Cancel</a>
+ <form id="select-machine-form" style="display:none;" class="form-inline">
+ <span class="help-block">Machine suggestions come from the list of layers added to your project. If you don't see the machine you are looking for, <a href="{% url 'projectmachines' project.id %}">check the full list of machines</a></span>
+ <div class="form-group">
+ <input class="form-control" id="machine-change-input" autocomplete="off" value="" data-provide="typeahead" data-minlength="1" data-autocomplete="off" type="text">
</div>
-
- <p><a href="{% url 'projectmachines' project.id %}" class="link">View compatible machines</a></p>
+ <button id="machine-change-btn" class="btn btn-default" type="button">Save</button>
+ <a href="#" id="cancel-machine-change" class="btn btn-link">Cancel</a>
+ <p class="form-link"><a href="{% url 'projectmachines' project.id %}">View compatible machines</a></p>
</form>
</div>
@@ -69,11 +80,11 @@
<h3>Most built recipes</h3>
<div class="alert alert-info" style="display:none" id="no-most-built">
- <span class="lead">You haven't built any recipes yet</span>
- <p style="margin-top: 10px;"><a href="{% url 'projectimagerecipes' project.id %}">Choose a recipe to build</a></p>
+ <h4>You haven't built any recipes yet</h4>
+ <p class="form-link"><a href="{% url 'projectimagerecipes' project.id %}">Choose a recipe to build</a></p>
</div>
- <ul class="unstyled configuration-list" id="freq-build-list">
+ <ul class="list-unstyled lead" id="freq-build-list">
</ul>
<button class="btn btn-primary" id="freq-build-btn" disabled="disabled">Build selected recipes</button>
</div>
@@ -97,44 +108,37 @@
</div>
</div>
- <div class="span6">
+ <div class="col-md-6">
<div class="well well-transparent" id="layer-container">
- <h3>Layers <span class="muted counter">(<span id="project-layers-count"></span>)</span>
- <i data-original-title="OpenEmbedded organises metadata into modules called 'layers'. Layers allow you to isolate different types of customizations from each other. <a href='http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#understanding-and-creating-layers' target='_blank'>More on layers</a>" class="icon-question-sign get-help heading-help" title=""></i>
+ <h3>Layers <span class="counter">(<span id="project-layers-count"></span>)</span>
+ <span title="OpenEmbedded organises recipes and machines into thematic groups called <strong>layers</strong>. Click on a layer name to see the recipes and machines it includes." class="glyphicon glyphicon-question-sign get-help"></span>
</h3>
- <div class="alert lead" id="no-layers-in-project" style="display:none">
- You need to add some layers. For that you can:
+ <div class="alert alert-warning" id="no-layers-in-project" style="display:none">
+ <h4>This project has no layers</h4>
+ In order to build this project you need to add some layers first. For that you can:
<ul>
- <li><a href="{% url 'projectlayers' project.id %}">View all layers compatible with this project</a></li>
+ <li><a href="{% url 'projectlayers' project.id %}">Choose from the layers compatible with this project</a></li>
<li><a href="{% url 'importlayer' project.id %}">Import a layer</a></li>
<li><a href="http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#understanding-and-creating-layers" target="_blank">Read about layers in the documentation</a></li>
+ <li>Or type a layer name below</li>
</ul>
- <p>Or type a layer name below.</p>
</div>
- <form style="margin-top:20px">
- <!--div class="control-group error"-->
-
- <div class="input-append">
- <input id="layer-add-input" autocomplete="off" placeholder="Type a layer name" data-minlength="1" data-autocomplete="off" data-provide="typeahead" data-source="" type="text">
- <button id="add-layer-btn" class="btn" disabled>Add</button>
+ <form class="form-inline">
+ <div class="form-group">
+ <input id="layer-add-input" class="form-control" autocomplete="off" placeholder="Type a layer name" data-minlength="1" data-autocomplete="off" data-provide="typeahead" data-source="" type="text">
</div>
-
- <div id="import-alert" class="alert alert-info" style="display:none;">
- Toaster does not know about this layer. Please <a href="#">import it</a>
- </div>
-
- <p>
+ <button id="add-layer-btn" class="btn btn-default" disabled>Add layer</button>
+ <p class="form-link">
<a href="{% url 'projectlayers' project.id %}" id="view-compatible-layers">View compatible layers</a>
- <i data-original-title="View all the layers you can build with the release selected for this project, which is Yocto Project master" class="icon-question-sign get-help" title=""></i>
- | <a href="{% url 'importlayer' project.id %}">Import layer</a>
+ <span class="text-muted">|</span>
+ <a href="{% url 'importlayer' project.id %}">Import layer</a>
</p>
</form>
- <ul class="unstyled configuration-list" id="layers-in-project-list">
+ <ul class="list-unstyled lead" id="layers-in-project-list">
</ul>
- </div>
</div>
</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds-toastertable.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds-toastertable.html
index 6d7e10bac..a5fed2dd4 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds-toastertable.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds-toastertable.html
@@ -3,54 +3,63 @@
{% load static %}
{% block extraheadcontent %}
- <link rel="stylesheet" href="{% static 'css/jquery-ui.min.css' %}" type='text/css'>
- <link rel="stylesheet" href="{% static 'css/jquery-ui.structure.min.css' %}" type='text/css'>
- <link rel="stylesheet" href="{% static 'css/jquery-ui.theme.min.css' %}" type='text/css'>
- <script src="{% static 'js/jquery-ui.min.js' %}">
- </script>
+<link rel="stylesheet" href="{% static 'css/jquery-ui.min.css' %}" type='text/css'>
+<link rel="stylesheet" href="{% static 'css/jquery-ui.structure.min.css' %}" type='text/css'>
+<link rel="stylesheet" href="{% static 'css/jquery-ui.theme.min.css' %}" type='text/css'>
+<script src="{% static 'js/jquery-ui.min.js' %}">
+</script>
{% endblock %}
{% block title %} {{title}} - {{project.name}} - Toaster {% endblock %}
{% block pagecontent %}
+<div class="row">
{% include "projecttopbar.html" %}
- <div class="row-fluid">
+ <div class="col-md-12">
{% with mru=mru mrb_type=mrb_type %}
- {% include 'mrb_section.html' %}
+ {% include 'mrb_section.html' %}
{% endwith %}
- <h2 class="page-header top-air" data-role="page-title"></h2>
+ <h2 class="top-air" data-role="page-title"></h2>
+ {% if not build_in_progress_none_completed %}
{% url 'projectbuilds' project.id as xhr_table_url %}
{% include 'toastertable.html' %}
+ {% endif %}
</div>
- <script>
- $(document).ready(function () {
- // title
- var tableElt = $("#{{table_name}}");
- var titleElt = $("[data-role='page-title']");
+ <script>
+ $(document).ready(function () {
+ // title
+ var tableElt = $("#{{table_name}}");
+ var titleElt = $("[data-role='page-title']");
- tableElt.on("table-done", function (e, total, tableParams) {
- var title = "All project builds";
+ tableElt.on("table-done", function (e, total, tableParams) {
+ var title = "All project builds";
- if (tableParams.search || tableParams.filter) {
- if (total === 0) {
- title = "No project builds found";
- }
- else if (total > 0) {
- title = total + " project build" + (total > 1 ? 's' : '') + " found";
- }
- }
+ if (tableParams.search || tableParams.filter) {
+ if (total === 0) {
+ title = "No project builds found";
+ }
+ else if (total > 0) {
+ title = total + " project build" + (total > 1 ? 's' : '') + " found";
+ }
+ }
- titleElt.text(title);
- });
+ if (total === 0) {
+ titleElt.hide();
+ } else {
+ titleElt.show();
+ titleElt.text(title);
+ }
+ });
- // highlight builds tab
- $("#topbar-builds-tab").addClass("active")
- });
- </script>
+ // highlight builds tab
+ $("#topbar-builds-tab").addClass("active")
+ });
+ </script>
+</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
index 3402fc4fe..50697a159 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectbuilds.html
@@ -39,10 +39,10 @@
{% if objects.paginator.count == 0 %}
{% if request.GET.filter or request.GET.search %}
- <div class="row-fluid">
+ <div class="row">
<div class="alert">
<form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
+ <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="input-append-addon btn" tabindex="-1"><i class="glyphicon glyphicon-remove"></i></a>{% endif %}
<button class="btn" type="submit" value="Search">Search</button>
<button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all builds</button>
</form>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectconf.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
index 27a898b65..fcf6df2bf 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projectconf.html
@@ -6,945 +6,1034 @@
{% block projectinfomain %}
<h2>Bitbake variables</h2>
-
- <div style="padding-left:19px;">
-
- <dl class="dl-vertical">
- {% if distro_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">DISTRO</span>
- <i class="icon-question-sign get-help" title="The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used. <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-DISTRO' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="distro">{{distro}}</span>
- <i class="icon-pencil" id="change-distro-icon"></i>
- <form id="change-distro-form" style="display:none;">
- <div class="input-append">
- <span id="edit-distro-name-div" class="control-group">
- <input type="text" id="new-distro" value="{{distro}}">
- <button id="apply-change-distro" class="btn" type="button">Save</button>
- <button id="cancel-change-distro" type="button" class="btn btn-link">Cancel</button>
- </span>
- <span class="help-block error" id="distro-error-message"></span>
- </div>
- </form>
- </dd>
- {% endif %}
-
- {% if dl_dir_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">DL_DIR</span>
- <i class="icon-question-sign get-help" title="Absolute path to the directory used to store downloads required for your builds. By default, Toaster projects share the same downloads directory.<br /><a href='http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-DL_DIR' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="dl_dir"{% if dl_dir %}{%else%} class="muted"{%endif%}>{% if dl_dir %}{{dl_dir}}{%else%}Not set{%endif%}</span>
- <i class="icon-pencil" id="change-dl_dir-icon"></i>
- <form id="change-dl_dir-form" style="display:none;">
- <div class="row-fluid">
- <span class="help-block span4">To set DL_DIR type the absolute path of the download folder.</span>
- </div>
- <div class="input-append" id="validate-dl_dir">
- <input type="text" class="input-xlarge" id="new-dl_dir" placeholder="Type absolute path of the DL_DIR folder">
- <button id="apply-change-dl_dir" class="btn" type="button">Save</button>
- <button id="cancel-change-dl_dir" type="button" class="btn btn-link">Cancel</button>
- </br><span class="help-block error" id="hintError-dl_dir">A valid directory cannot include spaces or any of these characters: . \ ? % * : | " " < ></span>
- </div>
- </form>
- </dd>
- {% endif %}
-
- {% if fstypes_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">IMAGE_FSTYPES</span>
- <i class="icon-question-sign get-help" title="Formats of root file system images that you want to have created <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-IMAGE_FSTYPES' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="image_fstypes">{{fstypes}}</span>
- <i class="icon-pencil" id="change-image_fstypes-icon"></i>
- <form id="change-image_fstypes-form" style="display:none;">
- <input id="filter-image_fstypes" type="text" placeholder="Search image types" class="span4">
- <div id="all-image_fstypes" class="scrolling">
- </div>
- <span class="help-block" id="fstypes-error-message">You must select at least one image type</span>
- <button id="apply-change-image_fstypes" type="button" class="btn">Save</button>
- <button id="cancel-change-image_fstypes" type="button" class="btn btn-link">Cancel</button>
- </form>
- </dd>
- {% endif %}
-
- {% if image_install_append_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">IMAGE_INSTALL_append</span>
- <i class="icon-question-sign get-help" title="Specifies additional packages to install into an image. If your build creates more than one image, the packages will be installed in <strong>all of them</strong> <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-IMAGE_INSTALL' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="image_install"{% if image_install_append %}{%else%} class="muted"{%endif%}>{% if image_install_append %}{{image_install_append}}{%else%}Not set{%endif%}</span>
- <i class="icon-pencil" id="change-image_install-icon"></i>
- <i class="icon-trash" id="delete-image_install-icon" {% if image_install_append %}{%else%}style="display:none;"{%endif%}></i>
- <form id="change-image_install-form" style="display:none;">
- <div class="row-fluid">
- <span class="help-block span4">To set IMAGE_INSTALL_append to more than one package, type the package names separated by a space.</span>
- </div>
- <div class="input-append">
- <input type="text" class="input-xlarge" id="new-image_install" placeholder="Type one or more package names">
- <button id="apply-change-image_install" class="btn" type="button">Save</button>
- <button id="cancel-change-image_install" type="button" class="btn btn-link">Cancel</button>
- </div>
- </form>
- </dd>
- {% endif %}
-
- {% if package_classes_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">PACKAGE_CLASSES</span>
- <i class="icon-question-sign get-help" title="Specifies the package manager to use when packaging data <br /><a href='http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-PACKAGE_CLASSES' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="package_classes">{{package_classes}}</span>
- <i id="change-package_classes-icon" class="icon-pencil"></i>
- <form id="change-package_classes-form" style="display:none;">
- <label>
- Root file system package format
- <i class="icon-question-sign get-help" title="The package format used to generate the root file system. Options are <code>dev</code>, <code>ipk</code> and <code>rpm</code>"></i>
- </label>
- <select id="package_classes-select">
- <option>package_deb</option>
- <option>package_ipk</option>
- <option>package_rpm</option>
- </select>
- <label>
- Additional package formats
- <i class="icon-question-sign get-help" title="Extra package formats to build"></i>
- </label>
- <label class="checkbox" id="package_class_1">
- <input type="checkbox" id="package_class_1_input"> package_deb
- </label>
- <label class="checkbox" id="package_class_2">
- <input type="checkbox" id="package_class_2_input"> package_ipk
- </label>
- <div style="padding-top:10px;">
- <button id="apply-change-package_classes" type="button" class="btn">Save</button>
- <button id="cancel-change-package_classes" type="button" class="btn btn-link">Cancel</button>
- </div>
- </form>
- </dd>
- {% endif %}
-
- {% if sstate_dir_defined %}
- <dt>
- <span class="js-config-var-name js-config-var-managed-name">SSTATE_DIR</span>
- <i class="icon-question-sign get-help" title="Absolute path to the directory used to store shared state cache files. These files are reused across the builds, which makes the builds faster. By default, Toaster projects share the same cache directory.<br /><a href='http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#var-SSTATE_DIR' target='_blank'>Read more in the manual</a>"></i>
- </dt>
- <dd class="lead">
- <span id="sstate_dir"{% if sstate_dir %}{%else%} class="muted"{%endif%}>{% if sstate_dir %}{{sstate_dir}}{%else%}Not set{%endif%}</span>
- <i class="icon-pencil" id="change-sstate_dir-icon"></i>
- <form id="change-sstate_dir-form" style="display:none;">
- <div class="row-fluid">
- <span class="help-block span4">To set SSTATE_DIR type the absolute path of the download folder.</span>
- </div>
- <div class="input-append" id="validate-sstate_dir">
- <input type="text" class="input-xlarge" id="new-sstate_dir" placeholder="Type absolute path of the SSTATE_DIR folder">
- <span class="error">A valid directory name required</span>
- <button id="apply-change-sstate_dir" class="btn" type="button">Save</button>
- <button id="cancel-change-sstate_dir" type="button" class="btn btn-link">Cancel</button>
- </br><p class="help-block error" id="hintError-sstate_dir">A valid directory cannot include spaces or any of these characters: . \ ? % * : | " " < ></span>
- </div>
- </form>
- </dd>
- {% endif %}
- </dl>
-
- <!-- <ul class="unstyled configuration-list" id="configvar-list"> -->
- <dl id="configvar-list">
- <!-- the added configuration variables are inserted here -->
- </dl>
-
- <!-- pass the fstypes list, black list, and externally managed variables here -->
- {% for fstype in vars_fstypes %}
- <input type="hidden" class="js-checkbox-fstypes-list" value="{{fstype}}">
- {% endfor %}
- {% for b in vars_blacklist %}
- <input type="hidden" class="js-config-blacklist-name" value="{{b}}">
- {% endfor %}
- {% for b in vars_managed %}
- <input type="hidden" class="js-config-managed-name" value="{{b}}">
- {% endfor %}
-
- <div class="row-fluid">
- <form id="variable-form">
- <fieldset style="padding-left:0px;">
- <legend>Add variable</legend>
- <div class="span3" style="margin-left:0px;">
- <span id="add-configvar-name-div" class="control-group">
- <label>
- Variable
- <i title="" class="icon-question-sign get-help"
- data-original-title="Variable names are case sensitive,
- cannot have spaces, and can only include letters, numbers, underscores
- and dashes"></i>
- </label>
- <input type="text" placeholder="Type variable name" id="variable">
- <span class="help-block error" id="new-variable-error-message"></span>
- </span>
- <label>Value</label>
- <input id="value" type="text" placeholder="Type variable value"><p>
- <div>
- <button id="add-configvar-button" class="btn save" type="button" disabled>Add variable</button>
- </div>
- </div>
- <div class="span5 help-block">
- <h5>Some variables are reserved from Toaster</h5>
- <p>Toaster cannot set any variables that impact 1) the configuration of the build servers,
- or 2) where artifacts produced by the build are stored. Such variables include: </p>
- <p>
- <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_DISKMON_DIRS" target="_blank">BB_DISKMON_DIRS</a></code>
- <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_NUMBER_THREADS" target="_blank">BB_NUMBER_THREADS</a></code>
- <code>CVS_PROXY_HOST</code>
- <code>CVS_PROXY_PORT</code>
- <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-PARALLEL_MAKE" target="_blank">PARALLEL_MAKE</a></code>
- <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-SSTATE_MIRRORS" target="_blank">SSTATE_MIRRORS</a></code>
- <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-TMPDIR" target="_blank">TMPDIR</a></code></p>
- <p>Plus the following standard shell environment variables:</p>
- <p><code>http_proxy</code> <code>ftp_proxy</code> <code>https_proxy</code> <code>all_proxy</code></p>
- </div>
- </fieldset>
- </form>
+<div>
+ <dl>
+ {% if distro_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">DISTRO</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used"></span>
+ </dt>
+ <dd class="variable-list">
+ <span class="lead" id="distro">{{distro}}</span>
+ <span class="glyphicon glyphicon-edit" id="change-distro-icon"></span>
+ <form id="change-distro-form" class="form-inline" style="display:none;">
+ <div id="edit-distro-name-div" class="form-group">
+ <input type="text" class="form-control" id="new-distro" value="{{distro}}">
+ </div>
+ <button id="apply-change-distro" class="btn btn-default" type="button">Save</button>
+ <button id="cancel-change-distro" type="button" class="btn btn-link">Cancel</button>
+ <span class="help-block" id="distro-error-message"></span>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if dl_dir_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">DL_DIR</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Absolute path to the directory used to store downloads required for your builds. By default, Toaster projects share the same downloads directory"></span>
+ </dt>
+ <dd class="variable-list">
+ <span id="dl_dir" class="lead {% if not dl_dir %} text-muted {% endif %}">{% if dl_dir %}{{dl_dir}}{%else%}Not set{%endif%}</span>
+ <span class="glyphicon glyphicon-edit" id="change-dl_dir-icon"></span>
+ <form id="change-dl_dir-form" class="form-inline" style="display:none;">
+ <div class="form-group" id="validate-dl_dir">
+ <input type="text" class="form-control" id="new-dl_dir" placeholder="Type an absolute path">
+ </div>
+ <button id="apply-change-dl_dir" class="btn btn-default" type="button">Save</button>
+ <button id="cancel-change-dl_dir" type="button" class="btn btn-link">Cancel</button>
+ <p class="help-block" id="hintError-dl_dir" style="display:none;">The directory path cannot include spaces or any of these characters: . \ ? % * : | " " &lt; &gt;</p>
+ <p class="help-block" id="hintError-initialChar-dl_dir" style="display:none;">The directory path should either start with a /, e.g. /home/toaster/downloads; or with a variable, e.g. ${TOPDIR}/downloads.</p>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if fstypes_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">IMAGE_FSTYPES</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Formats of root file system images that you want to create"></span>
+ </dt>
+ <dd class="variable-list">
+ <span class="lead" id="image_fstypes">{{fstypes}}</span>
+ <span class="glyphicon glyphicon-edit" id="change-image_fstypes-icon"></span>
+ <form id="change-image_fstypes-form" style="display:none;">
+ <label>Type the image types you want to build:</label>
+ <div class="form-group form-inline" id="validate-image_fstypes">
+ <input type="text" class="form-control "id="new-imagefs_types">
+ <button id="apply-change-image_fstypes" type="button" class="btn btn-default">Save</button>
+ <button id="cancel-change-image_fstypes" type="button" class="btn btn-link">Cancel</button>
+ </div>
+ <p class="help-block text-danger" style="display:none;" id="hintError-image-fs_type">A valid image type cannot include underscores</p>
+ <label>Or choose from known image types:</label>
+ <input id="filter-image_fstypes" type="text" placeholder="Search image types" class="form-control">
+ <div id="all-image_fstypes" class="scrolling"></div>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if image_install_append_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">IMAGE_INSTALL_append</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Specifies additional packages to install into an image. If your build creates more than one image, the packages will be installed in all of them"></span>
+ </dt>
+ <dd class="variable-list">
+ <span id="image_install" class="lead {% if not image_install_append %} text-muted {%endif%}">{% if image_install_append %}{{image_install_append}}{%else%}Not set{%endif%}</span>
+ <span class="glyphicon glyphicon-edit" id="change-image_install-icon"></span>
+ <span class="glyphicon glyphicon-trash" id="delete-image_install-icon" {% if image_install_append %}{%else%}style="display:none;"{%endif%}></span>
+ <form id="change-image_install-form" class="form-inline" style="display:none;">
+ <div class="row">
+ <div class="col-md-4">
+ <span class="help-block">To set IMAGE_INSTALL_append to more than one package, type the package names separated by a space.</span>
</div>
-
- </div>
-
- <script>
-
- // global variables
- var do_reload=false;
-
- // validate new variable name
- function validate_new_variable() {
- var variable = $("input#variable").val();
- var value = $("input#value").val();
-
- // presumed innocence
- $('#new-variable-error-message').text("");
- var error_msg = "";
-
- var existing_configvars = document.getElementsByClassName('js-config-var-name');
- for (var i = 0, length = existing_configvars.length; i < length; i++) {
- if (existing_configvars[i].innerHTML.toUpperCase() == variable.toUpperCase()) {
- error_msg = "This variable is already set in this page, edit its value instead";
- }
- }
-
- var blacklist_configvars = document.getElementsByClassName('js-config-blacklist-name');
- for (var i = 0, length = blacklist_configvars.length; i < length; i++) {
- if (blacklist_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
- error_msg = "You cannot edit this variable in Toaster because it is set by the build servers";
- }
- }
-
- var managed_configvars = document.getElementsByClassName('js-config-managed-name');
- for (var i = 0, length = managed_configvars.length; i < length; i++) {
- if (managed_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
- error_msg = "You cannot set this variable here. Please set it in the <a href=\"{% url 'project' project.id %}\">project main page</a>";
- }
- }
-
- var bad_chars = /[^a-zA-Z0-9\-_]/.test(variable);
- var has_spaces = (0 <= variable.indexOf(" "));
- var only_spaces = (0 < variable.length) && (0 == variable.trim().length);
-
- if (only_spaces) {
- error_msg = "A valid variable name cannot include spaces";
- } else if (bad_chars && has_spaces) {
- error_msg = "A valid variable name can only include letters, numbers, underscores, dashes, and cannot include spaces";
- } else if (bad_chars) {
- error_msg = "A valid variable name can only include letters, numbers, underscores, and dashes";
- }
-
- if ("" != error_msg) {
- $('#new-variable-error-message').html(error_msg);
- $(".save").attr("disabled","disabled");
-
- // add one (and only one) error class append
- var d = document.getElementById("add-configvar-name-div");
- d.className = d.className.replace(" error","");
- d.className = d.className + " error";
-
- return false;
- } else if (0 == variable.length) {
- $(".save").attr("disabled","disabled");
- return false;
- }
-
- var d = document.getElementById("add-configvar-name-div");
- d.className = d.className.replace(" error","");
-
- // now set the "Save" enablement if 'value' also passes
- if (value.trim().length > 0) {
- $(".save").removeAttr("disabled");
- } else {
- $(".save").attr("disabled","disabled");
- }
-
- return true;
- }
-
- // validate distro name
- function validate_distro_name() {
- var value = $("input#new-distro").val();
-
- // presumed innocence
- $('#distro-error-message').text("");
- var error_msg = "";
-
- var has_spaces = (0 <= value.indexOf(" "));
-
- if (has_spaces) {
- error_msg = "A valid distro name cannot include spaces";
- } else if (0 == value.length) {
- error_msg = " ";
- }
-
- if ("" != error_msg) {
- $('#distro-error-message').text(error_msg);
- $("#apply-change-distro").attr("disabled","disabled");
-
- // add one (and only one) error class append
- var d = document.getElementById("edit-distro-name-div");
- d.className = d.className.replace(" error","");
- d.className = d.className + " error";
-
- return false;
- }
-
- var d = document.getElementById("edit-distro-name-div");
- d.className = d.className.replace(" error","");
- $("#apply-change-distro").removeAttr("disabled");
- return true;
- }
-
- // Test to insure at least one FS Type is checked
- function enableFsTypesSave() {
- var any_checked = 0;
- $(".fs-checkbox-fstypes:checked").each(function(){
- any_checked = 1;
- });
- if ( 0 == any_checked ) {
- $("#apply-change-image_fstypes").attr("disabled","disabled");
- $('#fstypes-error-message').show();
- }
- else {
- $("#apply-change-image_fstypes").removeAttr("disabled");
- $('#fstypes-error-message').hide();
- }
- }
-
- // Preset or reset the Package Class checkbox labels
- function updatePackageClassCheckboxes() {
- $('#package_class_1, #package_class_2').hide();
- if ($('select').val() == 'package_deb') {
- $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_ipk');
- $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
- }
- if ($('select').val() == 'package_ipk') {
- $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
- $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
- }
- if ($('select').val() == 'package_rpm') {
- $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
- $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_ipk');
- }
- $('#package_class_1, #package_class_2').fadeIn(1500);
- }
-
- // Re-assert handlers when the page is served and/or refreshed via Ajax
- function setEventHandlersForDynamicElements() {
-
- // change variable value
- $('.js-icon-pencil-config_var').click(function (evt) {
- var pk = evt.target.attributes["x-data"].value;
- var current_val = $("span#config_var_value_"+pk).text();
- $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).hide();
- $("#change-config_var-form_"+pk).slideDown();
- $("input#new-config_var_"+pk).val(current_val);
- });
-
- $('.js-cancel-change-config_var').click(function (evt) {
- var pk = evt.target.attributes["x-data"].value;
- $("#change-config_var-form_"+pk).slideUp(function() {
- $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).show();
- });
- });
-
- $(".js-new-config_var").on('input', function(){
- if ($(this).val().length == 0) {
- $(".js-apply-change-config_var").attr("disabled","disabled");
- }
- else {
- $(".js-apply-change-config_var").removeAttr("disabled");
- }
- });
-
- $('.js-apply-change-config_var').click(function (evt) {
- var xdata = evt.target.attributes["x-data"].value.split(":");
- var pk = xdata[0];
- var variable = xdata[1];
- var val = $('#new-config_var_'+pk).val();
- postEditAjaxRequest({"configvarChange" : variable+':'+val});
- $('#config_var_value_'+pk).parent().removeClass('muted');
- $("#change-config_var-form_"+pk).slideUp(function() {
- $('.js-icon-pencil-config_var, .js-icon-trash-config_var, #config_var_value_'+pk).show();
- });
- });
-
- // delete variable
- $(".js-icon-trash-config_var").click(function (evt) {
- var xdata = evt.target.attributes["x-data"].value.split(":");
- var pk = xdata[0];
-
- // hide the dangling trash tooltip
- $('#config_var_trash_'+pk).hide();
-
- // fade out the variable+value div, then refresh the variable list
- $('#config_var_entry_'+pk).parent().parent().fadeOut(1000, function(){
- postEditAjaxRequest({"configvarDel": evt.target.attributes["x-data"].value});
- });
-
- });
-
- }
-
- function onEditPageUpdate(data) {
- // update targets
- var i; var orightml = "";
-
- var configvars_sorted = data.configvars.sort(function(a, b){return a[0] > b[0]});
-
- var managed_configvars = document.getElementsByClassName('js-config-var-managed-name');
-
- for (i = 0; i < configvars_sorted.length; i++) {
- // skip if the variable name has a special context (not user defined)
- var var_context=undefined;
- for (var j = 0, length = managed_configvars.length; j < length; j++) {
- if ((managed_configvars[j].innerHTML == configvars_sorted[i][0]) ||
- (managed_configvars[j].value == configvars_sorted[i][0]) ) {
- var_context='m';
- }
- }
- if (var_context == undefined) {
- orightml += '<div> <dt><span id="config_var_entry_'+configvars_sorted[i][2]+'" class="js-config-var-name"></span><i class="icon-trash js-icon-trash-config_var" id="config_var_trash_'+configvars_sorted[i][2]+'" x-data="'+configvars_sorted[i][2]+'"></i> </dt>'
- orightml += '<dd class="lead">'
- orightml += ' <span id="config_var_value_'+configvars_sorted[i][2]+'"></span>'
- orightml += ' <i class="icon-pencil js-icon-pencil-config_var" x-data="'+configvars_sorted[i][2]+'"></i>'
- orightml += ' <form id="change-config_var-form_'+configvars_sorted[i][2]+'" style="display:none;">'
- orightml += ' <div class="input-append">'
- orightml += ' <input type="text" class="input-xlarge js-new-config_var" id="new-config_var_'+configvars_sorted[i][2]+'" value="">'
- orightml += ' <button class="btn js-apply-change-config_var" type="button" x-data="'+configvars_sorted[i][2]+':'+configvars_sorted[i][0]+'" disabled>Save</button>'
- orightml += ' <button type="button" class="btn btn-link js-cancel-change-config_var" x-data="'+configvars_sorted[i][2]+'">Cancel</button>'
- orightml += ' </div>'
- orightml += ' </form>'
- orightml += '</dd> </div>'
- }
- }
-
- // update configvars list HTML framework
- $("dl#configvar-list").html(orightml);
-
- // insert the name/value pairs safely as non-HTML
- for (i = 0; i < configvars_sorted.length; i++) {
- $('#config_var_entry_'+configvars_sorted[i][2]).text(configvars_sorted[i][0]);
- $('#config_var_value_'+configvars_sorted[i][2]).text(configvars_sorted[i][1]);
- }
-
- // Add the tooltips
- $(".js-icon-trash-config_var").each( function(){ setDeleteTooltip($(this)); });
- $(".js-icon-pencil-config_var").each(function(){ setChangeTooltip($(this)); });
-
- // re-assert these event handlers
- setEventHandlersForDynamicElements();
- }
-
- function onEditAjaxSuccess(data, textstatus) {
- // console.log("XHR returned:", data, "(" + textstatus + ")");
- if (data.error != "ok") {
- alert("error on request:\n" + data.error);
- return;
- }
-
- // delayed page reload?
- if (do_reload) {
- do_reload=false;
- location.reload(true);
- } else {
- onEditPageUpdate(data);
- }
- }
-
- function onEditAjaxError(jqXHR, textstatus, error) {
- alert("XHR errored:\n" + error + "\n(" + textstatus + ")");
- // re-assert the event handlers
- }
-
- /* ensure cookie exists {% csrf_token %} */
- function postEditAjaxRequest(reqdata) {
- var ajax = $.ajax({
- type:"POST",
- data: $.param(reqdata),
- url:"{% url 'xhr_configvaredit' project.id%}",
- headers: { 'X-CSRFToken': $.cookie("csrftoken")},
- success: onEditAjaxSuccess,
- error: onEditAjaxError,
- })
- }
-
- function setDeleteTooltip(object) {
- object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Delete" });
- }
- function setChangeTooltip(object) {
- object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
+ </div>
+ <div class="form-group">
+ <input type="text" class="form-control" id="new-image_install" placeholder="Type one or more package names">
+ </div>
+ <button id="apply-change-image_install" class="btn btn-default" type="button">Save</button>
+ <button id="cancel-change-image_install" type="button" class="btn btn-link">Cancel</button>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if package_classes_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">PACKAGE_CLASSES</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Specifies the package manager to use when packaging data"></span>
+ </dt>
+ <dd class="variable-list">
+ <span class="lead" id="package_classes">{{package_classes}}</span>
+ <span id="change-package_classes-icon" class="glyphicon glyphicon-edit"></span>
+ <form id="change-package_classes-form" style="display:none;">
+ <div class="form-group">
+ <label class="control-label">
+ Root file system package format
+ <span class="glyphicon glyphicon-question-sign get-help" title="The package format used to generate the root file system. Options are <code>deb</code>, <code>ipk</code> and <code>rpm</code>"></i>
+ </label>
+ <select id="package_classes-select" class="form-control">
+ <option>package_deb</option>
+ <option>package_ipk</option>
+ <option>package_rpm</option>
+ </select>
+ </div>
+ <div class="form-group">
+ <label class="control-label">
+ Additional package formats
+ <span class="glyphicon glyphicon-question-sign get-help" title="Extra package formats to build"></span>
+ </label>
+ <div class="checkbox">
+ <label id="package_class_1">
+ <input type="checkbox" id="package_class_1_input"> package_deb
+ </label>
+ </div>
+ <div class="checkbox">
+ <label id="package_class_2">
+ <input type="checkbox" id="package_class_2_input"> package_ipk
+ </label>
+ </div>
+ </div>
+ <button id="apply-change-package_classes" type="button" class="btn btn-default">Save</button>
+ <button id="cancel-change-package_classes" type="button" class="btn btn-link">Cancel</button>
+ </form>
+ </dd>
+ {% endif %}
+
+ {% if sstate_dir_defined %}
+ <dt>
+ <span class="js-config-var-name js-config-var-managed-name">SSTATE_DIR</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Absolute path to the directory used to store shared state cache files. These files are reused across the builds, which makes the builds faster. By default, Toaster projects share the same cache directory"></span>
+ </dt>
+ <dd class="variable-list">
+ <span id="sstate_dir" class="lead {% if not sstate_dir %} text-muted {% endif %}">{% if sstate_dir %}{{sstate_dir}}{%else%}Not set{%endif%}</span>
+ <span class="glyphicon glyphicon-edit" id="change-sstate_dir-icon"></span>
+ <form class="form-inline" id="change-sstate_dir-form" style="display:none;">
+ <div class="form-group" id="validate-sstate_dir">
+ <input type="text" class="form-control" id="new-sstate_dir" placeholder="Type an absolute path">
+ </div>
+ <button id="apply-change-sstate_dir" class="btn btn-default" type="button">Save</button>
+ <button id="cancel-change-sstate_dir" type="button" class="btn btn-link">Cancel</button>
+ <p class="help-block" id="hintError-sstate_dir" style="display:none;">The directory path cannot include spaces or any of these characters: . \ ? % * : | " " &lt; &gt;</p>
+ <p class="help-block" id="hintError-initialChar-sstate_dir" style="display:none;">The directory path should either start with a /, e.g. /home/toaster/sstate-cache; or with a variable, e.g. ${TOPDIR}/sstate-cache.</p>
+ </form>
+ </dd>
+ {% endif %}
+ </dl>
+
+ <!-- <ul class="list-unstyled configuration-list" id="configvar-list"> -->
+ <dl id="configvar-list">
+ <!-- the added configuration variables are inserted here -->
+ </dl>
+
+ <!-- pass the fstypes list, black list, and externally managed variables here -->
+ {% for fstype in vars_fstypes %}
+ <input type="hidden" class="js-checkbox-fstypes-list" value="{{fstype}}">
+ {% endfor %}
+ {% for b in vars_blacklist %}
+ <input type="hidden" class="js-config-blacklist-name" value="{{b}}">
+ {% endfor %}
+ {% for b in vars_managed %}
+ <input type="hidden" class="js-config-managed-name" value="{{b}}">
+ {% endfor %}
+
+ <form id="variable-form">
+ <fieldset>
+ <legend>Add variable</legend>
+ <div class="row">
+ <div class="col-md-3">
+ <div id="add-configvar-name-div" class="form-group">
+ <label class="control-label">
+ Variable
+ <span class="glyphicon glyphicon-question-sign get-help"
+ title="Variable names are case sensitive,
+ cannot have spaces, and can only include letters, numbers, underscores
+ and dashes"></span>
+ </label>
+ <input type="text" class="form-control" placeholder="Type the variable name" id="variable">
+ </div>
+ <p class="help-block" id="new-variable-error-message"></p>
+ <div class="form-group">
+ <label clas="control-label">Value</label>
+ <input id="value" type="text" class="form-control" placeholder="Type the variable value">
+ </div>
+ <button id="add-configvar-button" class="btn btn-default save" type="button" disabled>Add variable</button>
+ </div>
+ <div class="col-md-5 help-block">
+ <h5>Some variables cannot be set from Toaster</h5>
+ <p>Toaster cannot set any variables that impact 1) the configuration of the build servers,
+ or 2) where artifacts produced by the build are stored. Such variables include: </p>
+ <p>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_DISKMON_DIRS" target="_blank">BB_DISKMON_DIRS</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-BB_NUMBER_THREADS" target="_blank">BB_NUMBER_THREADS</a></code>
+ <code>CVS_PROXY_HOST</code>
+ <code>CVS_PROXY_PORT</code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-PARALLEL_MAKE" target="_blank">PARALLEL_MAKE</a></code>
+ <code><a href="http://www.yoctoproject.org/docs/1.6.1/ref-manual/ref-manual.html#var-TMPDIR" target="_blank">TMPDIR</a></code></p>
+ <p>Plus the following standard shell environment variables:</p>
+ <p><code>http_proxy</code> <code>ftp_proxy</code> <code>https_proxy</code> <code>all_proxy</code></p>
+ </div>
+ </div>
+ </fieldset>
+ </form>
+</div>
+
+</div>
+
+<script>
+
+// global variables
+var do_reload=false;
+
+// validate new variable name
+function validate_new_variable() {
+ var variable = $("input#variable").val();
+ var value = $("input#value").val();
+
+ // presumed innocence
+ $('#new-variable-error-message').text("");
+ var error_msg = "";
+
+ var existing_configvars = document.getElementsByClassName('js-config-var-name');
+ for (var i = 0, length = existing_configvars.length; i < length; i++) {
+ if (existing_configvars[i].innerHTML.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "This variable is already set in this page. Edit its value instead";
+ }
+ }
+
+ var blacklist_configvars = document.getElementsByClassName('js-config-blacklist-name');
+ for (var i = 0, length = blacklist_configvars.length; i < length; i++) {
+ if (blacklist_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "You cannot edit this variable in Toaster because it is set by the build servers";
+ }
+ }
+
+ var managed_configvars = document.getElementsByClassName('js-config-managed-name');
+ for (var i = 0, length = managed_configvars.length; i < length; i++) {
+ if (managed_configvars[i].value.toUpperCase() == variable.toUpperCase()) {
+ error_msg = "You cannot set this variable here. Please set it in the <a href=\"{% url 'project' project.id %}\">project main page</a>";
+ }
+ }
+
+ var bad_chars = /[^a-zA-Z0-9\-_/]/.test(variable);
+ var has_spaces = (0 <= variable.indexOf(" "));
+ var only_spaces = (0 < variable.length) && (0 == variable.trim().length);
+
+ if (only_spaces) {
+ error_msg = "A valid variable name cannot include spaces";
+ } else if (bad_chars && has_spaces) {
+ error_msg = "A valid variable name can only include letters, numbers and the special characters <code> _ - /</code>. Variable names cannot include spaces";
+ } else if (bad_chars) {
+ error_msg = "A valid variable name can only include letters, numbers and the special characters <code>_ - /</code>";
+ }
+
+ if ("" != error_msg) {
+ $('#new-variable-error-message').html(error_msg);
+ $(".save").attr("disabled","disabled");
+
+ // add one (and only one) error class append
+ $("#add-configvar-name-div").addClass("has-error");
+ $("#new-variable-error-message").addClass("text-danger");
+
+ return false;
+ } else if (0 == variable.length) {
+ $(".save").attr("disabled","disabled");
+ return false;
+ }
+
+ $("#add-configvar-name-div").removeClass("has-error");
+
+ // now set the "Save" enablement if 'value' also passes
+ if (value.trim().length > 0) {
+ $(".save").removeAttr("disabled");
+ } else {
+ $(".save").attr("disabled","disabled");
+ }
+
+ return true;
+}
+
+// validate distro name
+function validate_distro_name() {
+ var value = $("input#new-distro").val();
+
+ // presumed innocence
+ $('#distro-error-message').text("");
+ var error_msg = "";
+
+ var has_spaces = (0 <= value.indexOf(" "));
+
+ if (has_spaces) {
+ error_msg = "A valid distro name cannot include spaces";
+ } else if (0 == value.length) {
+ error_msg = " ";
+ }
+
+ if ("" != error_msg) {
+ $('#distro-error-message').text(error_msg);
+ $("#apply-change-distro").attr("disabled","disabled");
+
+ // add one (and only one) error class append
+ $("#change-distro-form").addClass("has-error");
+
+ return false;
+ }
+
+ $("#change-distro-form").removeClass("has-error");
+ $("#apply-change-distro").removeAttr("disabled");
+ return true;
+}
+
+// Test to insure at least one FS Type is checked
+function enableFsTypesSave() {
+ var any_checked = 0;
+ $(".fs-checkbox-fstypes:checked").each(function(){
+ any_checked = 1;
+ });
+ if ( 0 == any_checked ) {
+ $("#apply-change-image_fstypes").attr("disabled","disabled");
+ $('.scrolling').addClass('has-error');
+ $('#fstypes-error-message').show();
+ }
+ else {
+ $("#apply-change-image_fstypes").removeAttr("disabled");
+ $('.scrolling').removeClass('has-error');
+ $('#fstypes-error-message').hide();
+ }
+}
+
+// Preset or reset the Package Class checkbox labels
+function updatePackageClassCheckboxes() {
+ $('#package_class_1, #package_class_2').hide();
+ if ($('select').val() == 'package_deb') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_ipk');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
+ }
+ if ($('select').val() == 'package_ipk') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_rpm');
+ }
+ if ($('select').val() == 'package_rpm') {
+ $('#package_class_1').html('<input type="checkbox" id="package_class_1_input"> package_deb');
+ $('#package_class_2').html('<input type="checkbox" id="package_class_2_input"> package_ipk');
+ }
+ $('#package_class_1, #package_class_2').fadeIn(1500);
+}
+
+// Re-assert handlers when the page is served and/or refreshed via Ajax
+function setEventHandlersForDynamicElements() {
+
+ // change variable value
+ $('.js-icon-pencil-config_var').click(function (evt) {
+ var pk = $(this).attr("x-data");
+ var current_val = $("#config_var_value_"+pk).text();
+ $("#config_var_value_"+pk).hide();
+ $("#config_var_trash_"+pk).hide();
+ $(".js-icon-pencil-config_var[x-data="+pk+"]").hide();
+ $("#change-config_var-form_"+pk).slideDown();
+ $("#new-config_var_"+pk).val(current_val);
+ if ( $("#new-config_var_"+pk).val().length ) {
+ $("#apply-change-config_var_"+pk).removeAttr("disabled");
+ }
+ else {
+ $("#apply-change-config_var_"+pk).attr("disabled");
+ }
+ });
+
+ $('.js-cancel-change-config_var').click(function (evt) {
+ var pk = evt.target.attributes["x-data"].value;
+ $("#change-config_var-form_"+pk).slideUp(function() {
+ $("#config_var_trash_"+pk).show();
+ $('#config_var_value_'+pk).show();
+ $(".js-icon-pencil-config_var[x-data="+pk+"]").show();
+ });
+ });
+
+ $(".js-new-config_var").on('input', function(){
+ if ($(this).val().length == 0) {
+ $(this).parent("div").next(".btn-default").attr("disabled","disabled");
+ }
+ else {
+ $(this).parent("div").next(".btn-default").removeAttr("disabled");
+ }
+ });
+
+ $('.js-apply-change-config_var').click(function (evt) {
+ var xdata = evt.target.attributes["x-data"].value.split(":");
+ var pk = xdata[0];
+ var variable = xdata[1];
+ var val = $('#new-config_var_'+pk).val();
+ postEditAjaxRequest({"configvarChange" : variable+':'+val});
+ $("#change-config_var-form_"+pk).slideUp();
+ $("#config_var_trash_"+pk).fadeIn();
+ $('#config_var_value_'+pk).fadeIn();
+ $(".js-icon-pencil-config_var[x-data="+pk+"]").fadeIn();
+ });
+
+ // delete variable
+ $(".js-icon-trash-config_var").click(function (evt) {
+ var pk = $(this).attr("x-data");
+
+ // fade out the variable+value div, then refresh the variable list
+ $(this).fadeOut();
+ $(this).tooltip("hide");
+ $("config_var_entry_"+pk).fadeOut();
+ $('#config_var_value_'+pk).parent("dd").fadeOut();
+ postEditAjaxRequest({"configvarDel": evt.target.attributes["x-data"].value});
+ });
+
+}
+
+function onEditPageUpdate(data) {
+ // update targets
+ var i; var orightml = "";
+
+ var configvars_sorted = data.configvars.sort(function(a, b){return a[0] > b[0]});
+
+ var managed_configvars = document.getElementsByClassName('js-config-var-managed-name');
+
+ for (i = 0; i < configvars_sorted.length; i++) {
+ // skip if the variable name has a special context (not user defined)
+ var var_context=undefined;
+ for (var j = 0, length = managed_configvars.length; j < length; j++) {
+ if ((managed_configvars[j].innerHTML == configvars_sorted[i][0]) ||
+ (managed_configvars[j].value == configvars_sorted[i][0]) ) {
+ var_context='m';
+ }
+ }
+ if (var_context == undefined) {
+ orightml += '<dt><span id="config_var_entry_'+configvars_sorted[i][2]+'" class="js-config-var-name"></span><span class="glyphicon glyphicon-trash js-icon-trash-config_var" id="config_var_trash_'+configvars_sorted[i][2]+'" x-data="'+configvars_sorted[i][2]+'"></span> </dt>'
+ orightml += '<dd class="variable-list">'
+ orightml += ' <span class="lead" id="config_var_value_'+configvars_sorted[i][2]+'"></span>'
+ orightml += ' <span class="glyphicon glyphicon-edit js-icon-pencil-config_var" x-data="'+configvars_sorted[i][2]+'"></span>'
+ orightml += ' <form class="form-inline" id="change-config_var-form_'+configvars_sorted[i][2]+'" style="display:none;">'
+ orightml += ' <div class="form-group">'
+ orightml += ' <input type="text" class="form-control js-new-config_var" id="new-config_var_'+configvars_sorted[i][2]+'" value=""></div>'
+ orightml += ' <button id="apply-change-config_var_'+configvars_sorted[i][2]+'" class="btn btn-default js-apply-change-config_var" type="button" x-data="'+configvars_sorted[i][2]+':'+configvars_sorted[i][0]+'" disabled>Save</button>'
+ orightml += ' <button type="button" class="btn btn-link js-cancel-change-config_var" x-data="'+configvars_sorted[i][2]+'">Cancel</button>'
+ orightml += ' </form>'
+ orightml += '</dd>'
+ }
+ }
+
+ // update configvars list HTML framework
+ $("dl#configvar-list").html(orightml);
+
+ // insert the name/value pairs safely as non-HTML
+ for (i = 0; i < configvars_sorted.length; i++) {
+ $('#config_var_entry_'+configvars_sorted[i][2]).text(configvars_sorted[i][0]);
+ $('#config_var_value_'+configvars_sorted[i][2]).text(configvars_sorted[i][1]);
+ }
+
+ // Add the tooltips
+ $(".js-icon-trash-config_var").each( function(){ setDeleteTooltip($(this)); });
+ $(".js-icon-pencil-config_var").each(function(){ setChangeTooltip($(this)); });
+
+ // re-assert these event handlers
+ setEventHandlersForDynamicElements();
+}
+
+function onEditAjaxSuccess(data, textstatus) {
+ console.log("XHR returned:", data, "(" + textstatus + ")");
+ if (data.error != "ok") {
+ alert("error on request:\n" + data.error);
+ return;
+ }
+
+ // delayed page reload?
+ if (do_reload) {
+ do_reload=false;
+ location.reload(true);
+ } else {
+ onEditPageUpdate(data);
+ }
+}
+
+function onEditAjaxError(jqXHR, textstatus, error) {
+ alert("XHR errored:\n" + error + "\n(" + textstatus + ")");
+ // re-assert the event handlers
+}
+
+/* ensure cookie exists {% csrf_token %} */
+function postEditAjaxRequest(reqdata) {
+ var ajax = $.ajax({
+ type:"POST",
+ data: $.param(reqdata),
+ url:"{% url 'xhr_configvaredit' project.id%}",
+ headers: { 'X-CSRFToken': $.cookie("csrftoken")},
+ success: onEditAjaxSuccess,
+ error: onEditAjaxError,
+ })
+}
+
+function setDeleteTooltip(object) {
+ object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Delete" });
+}
+function setChangeTooltip(object) {
+ object.tooltip({ container: 'body', html: true, delay: {show: 400}, title: "Change" });
+}
+
+$(document).ready(function() {
+
+ //
+ // Register handlers for static elements
+ //
+
+ {% if distro_defined %}
+ // change distro variable
+ $('#change-distro-icon').click(function() {
+ $('#change-distro-icon, #distro').hide();
+ $("#change-distro-form").slideDown();
+ $("#new-distro").val( $('#distro').text() );
+ $("#apply-change-distro").removeAttr("disabled");
+ });
+
+ $('#cancel-change-distro').click(function(){
+ $("#change-distro-form").slideUp(function() {
+ $('#distro, #change-distro-icon').show();
+
+ // reset any dangling error state
+ $('#distro-error-message').text("");
+ $("#change-distro-form").removeClass("has-error");
+ });
+ });
+
+ // validate new distro name
+ $("input#new-distro").on('input', function (evt) {
+ validate_distro_name();
+ });
+
+ $('#apply-change-distro').click(function(){
+ //$('#repo').parent().removeClass('highlight-go');
+ var name = $('#new-distro').val();
+ postEditAjaxRequest({"configvarChange" : 'DISTRO:'+name});
+ $('#distro').text(name);
+ $("#change-distro-form").slideUp(function () {
+ $('#distro, #change-distro-icon').show();
+ });
+ });
+ {% endif %}
+
+ {% if dl_dir_defined %}
+
+ // change DL_DIR variable
+ $('#change-dl_dir-icon').click(function() {
+ $('#change-dl_dir-form').removeClass('has-error');
+ // preset the edit value
+ var current_val = $("#dl_dir").text().trim();
+ if (current_val == "Not set") {
+ current_val="";
+ $("#apply-change-dl_dir").attr("disabled","disabled");
+ }
+ $("input#new-dl_dir").val(current_val);
+ // enable / disable the save button based on the input value
+ if ( current_val.length ) {
+ $("#apply-change-dl_dir").removeAttr("disabled");
+ }
+ else {
+ $("#apply-change-dl_dir").attr("disabled","disabled");
+ }
+
+ $('#change-dl_dir-icon, #dl_dir').hide();
+ $("#change-dl_dir-form").slideDown();
+ });
+
+ $('#cancel-change-dl_dir').click(function(){
+ $("#hintError-dl_dir").hide();
+ $("#hintError-initialChar-dl_dir").hide();
+ $("#change-dl_dir-form").slideUp(function() {
+ $('#dl_dir, #change-dl_dir-icon').show();
+ });
+ });
+
+ $("#new-dl_dir").on('input', function(){
+ if ($(this).val().trim().length == 0) {
+ $("#apply-change-dl_dir").attr("disabled","disabled");
+ $('#change-dl_dir-form').addClass('has-error');
+ $('#hintError-dl_dir').hide();
+ $('#hintError-initialChar-dl_dir').hide();
+ }
+ else {
+ var input = $(this);
+ var reBeginWithSlash = /^\//;
+ var reCheckVariable = /^\$/;
+ var re = /([ <>\\|":\.%\?\*]+)/;
+ var invalidDir = re.test(input.val());
+ var invalidSlash = reBeginWithSlash.test(input.val());
+ var invalidVar = reCheckVariable.test(input.val());
+ if (!invalidSlash && !invalidVar) {
+ $('#change-dl_dir-form').addClass('has-error');
+ $("#apply-change-dl_dir").attr("disabled","disabled");
+ $('#hintError-initialChar-dl_dir').show();
+ } else if (invalidDir) {
+ $('#change-dl_dir-form').addClass('has-error');
+ $("#apply-change-dl_dir").attr("disabled","disabled");
+ $('#hintError-dl_dir').show();
+ } else {
+ $('#change-dl_dir-form').removeClass('has-error');
+ $("#apply-change-dl_dir").removeAttr("disabled");
+ $('#hintError-dl_dir').hide();
+ $('#hintError-initialChar-dl_dir').hide();
+ }
+ }
+ });
+
+ $('#apply-change-dl_dir').click(function(){
+ var value = $('#new-dl_dir').val().trim();
+ postEditAjaxRequest({"configvarChange" : 'DL_DIR:'+value});
+ $('#dl_dir').text(value);
+ $('#dl_dir').removeClass('muted');
+ $("#change-dl_dir-form").slideUp(function () {
+ $('#dl_dir, #change-dl_dir-icon').show();
+ });
+ });
+
+ {% endif %}
+
+ {% if fstypes_defined %}
+ // change IMAGE_FSTYPES variable
+
+ // get value of fstypes and add to the textbox
+ $("#new-imagefs_types").val("{{fstypes}}");
+
+ // If value of new-imagefs_types is empty disable save button
+ $("#new-imagefs_types").on("input", function() {
+ $(this).val($(this).val().replace(/\s+/g,' '));
+ if ($(this).val().length === 0) {
+ //$('#apply-change-image_fstypes').prop('disabled', true);
+ $('#apply-change-image_fstypes').attr("disabled", "disabled");
+ } else {
+ //$('#apply-change-image_fstypes').prop('disabled', false);
+ $('#apply-change-image_fstypes').removeAttr("disabled");
+ }
+
+ /*If user types imagefs do the action on checkboxes.
+ Lets say if an imagefstype typed by user and the same
+ imagefs is unchecked in the checkbox, then checkbox needs
+ to get checked. Similarly when user deletes imagefs from
+ textbox the checkbox which is checked gets unchecked.
+ */
+ $('#all-image_fstypes input').each(function(){
+ var imagefs_userval = $('#new-imagefs_types').val();
+ if( imagefs_userval.indexOf($(this).val()) > -1) {
+ $(this).prop('checked', true);
+ } else {
+ $(this).prop('checked', false);
+ }
+ });
+
+ // Validate underscore in image fs types
+ if ($(this).val().indexOf('_') > -1) {
+ $('#validate-image_fstypes').addClass('has-error');
+ $('#hintError-image-fs_type').show();
+ $("#apply-change-image_fstypes").prop("disabled", true);
+ } else {
+ $('#validate-image_fstypes').removeClass('has-error');
+ $('#hintError-image-fs_type').hide();
+ }
+ });
+
+ $('#change-image_fstypes-icon').click(function() {
+ $('#change-image_fstypes-icon, #image_fstypes').hide();
+ $("#change-image_fstypes-form").slideDown();
+ // avoid false substring matches by including space separators
+ var html = "";
+ var fstypes = " " + document.getElementById("image_fstypes").innerHTML + " ";
+ var fstypes_list = document.getElementsByClassName('js-checkbox-fstypes-list');
+ // Add the checked boxes first
+ if (" " != fstypes) {
+ for (var i = 0, length = fstypes_list.length; i < length; i++) {
+ if (0 <= fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
+ html += '<div class="checkbox"><label><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'" checked="checked">'+fstypes_list[i].value+'</label></div>';
}
-
- $(document).ready(function() {
-
- //
- // Register handlers for static elements
- //
-
- {% if distro_defined %}
- // change distro variable
- $('#change-distro-icon').click(function() {
- $('#change-distro-icon, #distro').hide();
- $("#change-distro-form").slideDown();
- $("#new-distro").val( $('#distro').text() );
- });
-
- $('#cancel-change-distro').click(function(){
- $("#change-distro-form").slideUp(function() {
- $('#distro, #change-distro-icon').show();
-
- // reset any dangling error state
- $('#distro-error-message').text("");
- var d = document.getElementById("edit-distro-name-div");
- d.className = d.className.replace(" error","");
- });
- });
-
- // validate new distro name
- $("input#new-distro").on('input', function (evt) {
- validate_distro_name();
- });
-
- $('#apply-change-distro').click(function(){
- //$('#repo').parent().removeClass('highlight-go');
- var name = $('#new-distro').val();
- postEditAjaxRequest({"configvarChange" : 'DISTRO:'+name});
- $('#distro').text(name);
- $("#change-distro-form").slideUp(function () {
- $('#distro, #change-distro-icon').show();
- });
- });
- {% endif %}
-
- {% if dl_dir_defined %}
-
- // change DL_DIR variable
- $('#change-dl_dir-icon').click(function() {
- $('#hintError-dl_dir').hide();
- // preset the edit value
- var current_val = $("span#dl_dir").text().trim();
- if (current_val == "Not set") {
- current_val="";
- $("#apply-change-dl_dir").attr("disabled","disabled");
- }
- $("input#new-dl_dir").val(current_val);
-
- $('#change-dl_dir-icon, #dl_dir').hide();
- $("#change-dl_dir-form").slideDown();
- });
-
- $('#cancel-change-dl_dir').click(function(){
- $("#change-dl_dir-form").slideUp(function() {
- $('#dl_dir, #change-dl_dir-icon').show();
- });
- });
-
- $("#new-dl_dir").on('input', function(){
- if ($(this).val().trim().length == 0) {
- $("#apply-change-dl_dir").attr("disabled","disabled");
- }
- else {
- var input = $(this);
- var re = /^\/([^ <>\\|":\.%\?\*]+)$/;
- var invalidDir = re.test(input.val());
- console.log(invalidDir);
- if ( invalidDir ) {
- $('#validate-dl_dir').removeClass('control-group error');
- $("#apply-change-dl_dir").removeAttr("disabled");
- $('#hintError-dl_dir').hide();
- } else {
- $('#validate-dl_dir').addClass('control-group error');
- $("#apply-change-dl_dir").attr("disabled","disabled");
- $('#hintError-dl_dir').show();
- }
- }
- });
-
- $('#apply-change-dl_dir').click(function(){
- var value = $('#new-dl_dir').val().trim();
- postEditAjaxRequest({"configvarChange" : 'DL_DIR:'+value});
- $('#dl_dir').text(value);
- $('#dl_dir').removeClass('muted');
- $("#change-dl_dir-form").slideUp(function () {
- $('#dl_dir, #change-dl_dir-icon').show();
- });
- });
-
- {% endif %}
-
- {% if fstypes_defined %}
- // change IMAGE_FSTYPES variable
-
- $('#change-image_fstypes-icon').click(function() {
- $('#change-image_fstypes-icon, #image_fstypes').hide();
- $("#change-image_fstypes-form").slideDown();
- // avoid false substring matches by including space separators
- var html = "";
- var fstypes = " " + document.getElementById("image_fstypes").innerHTML + " ";
- var fstypes_list = document.getElementsByClassName('js-checkbox-fstypes-list');
- // Add the checked boxes first
- if (" " != fstypes) {
- for (var i = 0, length = fstypes_list.length; i < length; i++) {
- if (0 <= fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
- html += '<label class="checkbox"><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'" checked="checked">'+fstypes_list[i].value+'</label>\n';
- }
- }
- }
- // Add the un-checked boxes second
- for (var i = 0, length = fstypes_list.length; i < length; i++) {
- if (0 > fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
- html += '<label class="checkbox"><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'">'+fstypes_list[i].value+'</label>\n';
- }
- }
- // Add the 'no search matches' line last
- html += '<label id="no-match-fstypes">No image types found</label>\n';
- // Display the list
- document.getElementById("all-image_fstypes").innerHTML = html;
- $('#no-match-fstypes').hide();
-
- // Watch elements to disable Save when none are checked
- $(".fs-checkbox-fstypes").each(function(){
- $(this).click(function() {
- enableFsTypesSave();
- });
- });
-
- // clear the previous filter values and warning messages
- $("input#filter-image_fstypes").val("");
- $('#fstypes-error-message').hide();
- });
-
- $('#cancel-change-image_fstypes').click(function(){
- $("#change-image_fstypes-form").slideUp(function() {
- $('#image_fstypes, #change-image_fstypes-icon').show();
- });
- });
-
- $('#filter-image_fstypes').on('input', function(){
- var valThis = $(this).val().toLowerCase();
- var matchCount=0;
- $('#all-image_fstypes label').each(function(){
- var text = $(this).text().toLowerCase();
- var match = text.indexOf(valThis);
- if (match >= 0) {
- $(this).show();
- matchCount += 1;
- }
- else {
- $(this).hide();
- }
- });
- if (matchCount === 0) {
- $('#no-match-fstypes').show();
- } else {
- $('#no-match-fstypes').hide();
- }
- });
-
- $('#apply-change-image_fstypes').click(function(){
- // extract the selected fstypes and sort them
- var fstypes_array = [];
- var checkboxes = document.getElementsByClassName('fs-checkbox-fstypes');
- $(".fs-checkbox-fstypes:checked").each(function(){
- fstypes_array.push($(this).val());
- });
- fstypes_array.sort();
-
- // now make a string of them
- var fstypes = '';
- for (var i = 0, length = fstypes_array.length; i < length; i++) {
- fstypes += fstypes_array[i] + ' ';
- }
- fstypes = fstypes.trim();
-
- postEditAjaxRequest({"configvarChange" : 'IMAGE_FSTYPES:'+fstypes});
- $('#image_fstypes').text(fstypes);
- $('#image_fstypes').parent().removeClass('muted');
-
- $("#change-image_fstypes-form").slideUp(function() {
- $('#image_fstypes, #change-image_fstypes-icon').show();
- });
- });
- {% endif %}
-
-
- {% if image_install_append_defined %}
-
- // init IMAGE_INSTALL_append trash icon
- setDeleteTooltip($('#delete-image_install-icon'));
-
- // change IMAGE_INSTALL_append variable
- $('#change-image_install-icon').click(function() {
- // preset the edit value
- var current_val = $("span#image_install").text().trim();
- if (current_val == "Not set") {
- current_val="";
- $("#apply-change-image_install").attr("disabled","disabled");
- } else {
- // insure these non-empty values have single space prefix
- current_val=" " + current_val;
- }
- $("input#new-image_install").val(current_val);
-
- $('#change-image_install-icon, #delete-image_install-icon, #image_install').hide();
- $("#change-image_install-form").slideDown();
- });
-
- $('#cancel-change-image_install').click(function(){
- $("#change-image_install-form").slideUp(function() {
- $('#image_install, #change-image_install-icon').show();
- if ($("span#image_install").text() != "Not set") {
- $('#delete-image_install-icon').show();
- setDeleteTooltip($('#delete-image_install-icon'));
- }
- });
- });
-
- $("#new-image_install").on('input', function(){
- if ($(this).val().trim().length == 0) {
- $("#apply-change-image_install").attr("disabled","disabled");
- }
- else {
- $("#apply-change-image_install").removeAttr("disabled");
- }
- });
-
- $('#apply-change-image_install').click(function(){
- // insure these non-empty values have single space prefix
- var value = " " + $('#new-image_install').val().trim();
- postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+value});
- $('#image_install').text(value);
- $('#image_install').removeClass('muted');
- $("#change-image_install-form").slideUp(function () {
- $('#image_install, #change-image_install-icon').show();
- if (value.length > -1) {
- $('#delete-image_install-icon').show();
- setDeleteTooltip($('#delete-image_install-icon'));
- }
- });
- });
-
- // delete IMAGE_INSTALL_append variable value
- $('#delete-image_install-icon').click(function(){
- $(this).tooltip('hide');
- postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+''});
- $('#image_install').parent().fadeOut(1000, function(){
- $('#image_install').addClass('muted');
- $('#image_install').text('Not set');
- $('#delete-image_install-icon').hide();
- $('#image_install').parent().fadeIn(1000);
- });
- });
- {% endif %}
-
-
- {% if package_classes_defined %}
- // change PACKAGE_CLASSES variable
- $('#change-package_classes-icon').click(function() {
- $('#change-package_classes-icon, #package_classes').hide();
- $("#change-package_classes-form").slideDown();
-
- // initialize the pulldown and checkboxes
- var value = $("#package_classes").text();
- if ( value.indexOf("package_deb") == 0 ) {
- $("#package_classes-select").prop('selectedIndex', 0);
- updatePackageClassCheckboxes();
- if ( value.indexOf("_ipk") > 0 ) {
- $("#package_class_1_input").attr("checked",true);
- }
- if ( value.indexOf("_rpm") > 0 ) {
- $("#package_class_2_input").attr("checked",true);
- }
- }
-
- if ( value.indexOf("package_ipk") == 0 ) {
- $("#package_classes-select").prop('selectedIndex', 1);
- updatePackageClassCheckboxes();
- if ( value.indexOf("_deb") > 0 ) {
- $("#package_class_1_input").attr("checked",true);
- }
- if ( value.indexOf("_rpm") > 0 ) {
- $("#package_class_2_input").attr("checked",true);
- }
- }
-
- if ( value.indexOf("package_rpm") == 0 ) {
- $("#package_classes-select").prop('selectedIndex', 2);
- updatePackageClassCheckboxes();
- if ( value.indexOf("_deb") > 0 ) {
- $("#package_class_1_input").attr("checked",true);
- }
- if ( value.indexOf("_ipk") > 0 ) {
- $("#package_class_2_input").attr("checked",true);
- }
- }
- });
-
- $('#cancel-change-package_classes').click(function(){
- $("#change-package_classes-form").slideUp(function() {
- $('#package_classes, #change-package_classes-icon').show();
- });
- });
-
- $('select').change(function() {
- updatePackageClassCheckboxes();
- });
-
- $('#apply-change-package_classes').click(function(){
- var e = document.getElementById("package_classes-select");
- var val = e.options[e.selectedIndex].text;
-
- pc1_checked = document.getElementById("package_class_1_input").checked;
- pc2_checked = document.getElementById("package_class_2_input").checked;
- if (val == "package_deb") {
- if (pc1_checked) val = val + " package_ipk";
- if (pc2_checked) val = val + " package_rpm";
- }
- if (val == "package_ipk") {
- if (pc1_checked) val = val + " package_deb";
- if (pc2_checked) val = val + " package_rpm";
- }
- if (val == "package_rpm") {
- if (pc1_checked) val = val + " package_deb";
- if (pc2_checked) val = val + " package_ipk";
- }
-
- $('#package_classes').text(val);
- //$('#package_classes').parent().removeClass('muted');
- postEditAjaxRequest({"configvarChange" : 'PACKAGE_CLASSES:'+val});
- $("#change-package_classes-form").slideUp(function() {
- $('#package_classes, #change-package_classes-icon').show();
- });
- });
- {% endif %}
-
- {% if sstate_dir_defined %}
-
- // change SSTATE_DIR variable
- $('#change-sstate_dir-icon').click(function() {
- $('#hintError-sstate_dir').hide();
- // preset the edit value
- var current_val = $("span#sstate_dir").text().trim();
- if (current_val == "Not set") {
- current_val="";
- $("#apply-change-sstate_dir").attr("disabled","disabled");
- }
- $("input#new-sstate_dir").val(current_val);
-
- $('#change-sstate_dir-icon, #sstate_dir').hide();
- $("#change-sstate_dir-form").slideDown();
- });
-
- $('#cancel-change-sstate_dir').click(function(){
- $("#change-sstate_dir-form").slideUp(function() {
- $('#sstate_dir, #change-sstate_dir-icon').show();
- });
- });
-
- $("#new-sstate_dir").on('input', function(){
- if ($(this).val().trim().length == 0) {
- $("#apply-change-sstate_dir").attr("disabled","disabled");
- }
- else {
- var input = $(this);
- var re = /^\/([^ <>\\|":\.%\?\*]+)$/;
- var invalidDir = re.test(input.val());
- console.log(invalidDir);
- if ( invalidDir ) {
- $('#validate-sstate_dir').removeClass('control-group error');
- $("#apply-change-sstate_dir").removeAttr("disabled");
- $('#hintError-sstate_dir').hide();
- } else {
- $('#validate-sstate_dir').addClass('control-group error');
- $("#apply-change-sstate_dir").attr("disabled","disabled");
- $('#hintError-sstate_dir').show();
- }
- }
- });
-
- $('#apply-change-sstate_dir').click(function(){
- var value = $('#new-sstate_dir').val().trim();
- postEditAjaxRequest({"configvarChange" : 'SSTATE_DIR:'+value});
- $('#sstate_dir').text(value);
- $('#sstate_dir').removeClass('muted');
- $("#change-sstate_dir-form").slideUp(function () {
- $('#sstate_dir, #change-sstate_dir-icon').show();
- });
- });
-
- {% endif %}
-
- // add new variable
- $("button#add-configvar-button").click( function (evt) {
- var variable = $("input#variable").val();
- var value = $("input#value").val();
-
- postEditAjaxRequest({"configvarAdd" : variable+':'+value});
-
- // clear the previous values
- $("input#variable").val("");
- $("input#value").val("");
- // Disable add button
- $(".save").attr("disabled","disabled");
-
- // Reload page if admin-removed core managed value is manually added back in
- if (0 <= " DISTRO DL_DIR IMAGE_FSTYPES IMAGE_INSTALL_append PACKAGE_CLASSES SSTATE_DIR ".indexOf( " "+variable+" " )) {
- // delayed reload to avoid race condition with postEditAjaxRequest
- do_reload=true;
- }
- });
-
- // validate new variable name and value
- $("#variable, #value").on('input', function() {
- validate_new_variable();
- });
-
- //
- // draw and register the dynamic configuration variables and handlers
- //
-
- var data = {
- configvars : []
- };
- {% for c in configvars %}
- data.configvars.push([ "{{c.name}}","{{c.value}}","{{c.pk}}" ]);
- {% if '' != vars_context|get_dict_value:c.name %}
- data.vars_context[ "{{c.name}}" ] = "{{vars_context|get_dict_value:c.name }}";
- {% endif %}
- {% endfor %}
-
- // draw these elements and assert their event handlers
- onEditPageUpdate(data);
- });
-
- </script>
+ }
+ }
+ // Add the un-checked boxes second
+ for (var i = 0, length = fstypes_list.length; i < length; i++) {
+ if (0 > fstypes.indexOf(" "+fstypes_list[i].value+" ")) {
+ html += '<div class="checkbox"><label><input type="checkbox" class="fs-checkbox-fstypes" value="'+fstypes_list[i].value+'">'+fstypes_list[i].value+'</label></div>';
+ }
+ }
+ // Add the 'no search matches' line last
+ html += '<label id="no-match-fstypes" class="text-muted">No image types found</label>\n';
+ // Display the list
+ document.getElementById("all-image_fstypes").innerHTML = html;
+ $('#no-match-fstypes').hide();
+
+ // clear the previous filter values and warning messages
+ $("input#filter-image_fstypes").val("");
+ });
+
+ // When checkbox is checked/unchecked kindly update the text
+ $(document).on("change", "#all-image_fstypes :checkbox", function() {
+ var imagefs = $(this);
+ var imagefs_obj = $('#new-imagefs_types');
+ var imagefs_userval = imagefs_obj.val();
+ if ($(this).is(':checked')) {
+ if (imagefs_userval.indexOf($(imagefs).val()) === -1) {
+ imagefs_obj.val(imagefs_userval + " " + $(imagefs).val());
+ }
+ } else {
+ if (imagefs_userval.indexOf($(imagefs).val()) > -1) {
+ imagefs_obj.val(imagefs_userval.replace($(imagefs).val(), '').trim());
+ }
+ }
+ if ($('#new-imagefs_types').val().length === 0) {
+ $("#apply-change-image_fstypes").prop("disabled", true);
+ } else {
+ $("#apply-change-image_fstypes").prop("disabled", false);
+ }
+ });
+
+ $('#cancel-change-image_fstypes').click(function(){
+ $("#new-imagefs_types").val("{{fstypes}}");
+ $("#change-image_fstypes-form").slideUp(function() {
+ $('#image_fstypes, #change-image_fstypes-icon').show();
+ });
+ });
+
+ $('#filter-image_fstypes').on('input', function(){
+ var valThis = $(this).val().toLowerCase();
+ var matchCount=0;
+ $('#all-image_fstypes label').each(function(){
+ var text = $(this).text().toLowerCase();
+ var match = text.indexOf(valThis);
+ if (match >= 0) {
+ $(this).show();
+ matchCount += 1;
+ }
+ else {
+ $(this).hide();
+ }
+ });
+ if (matchCount === 0) {
+ $('#no-match-fstypes').show();
+ } else {
+ $('#no-match-fstypes').hide();
+ }
+ });
+
+ $('#apply-change-image_fstypes').click(function(){
+ var fstypes = $('#new-imagefs_types').val();
+
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_FSTYPES:'+fstypes});
+ $('#image_fstypes').text(fstypes);
+ $('#image_fstypes').parent().removeClass('muted');
+
+ $("#change-image_fstypes-form").slideUp(function() {
+ $('#image_fstypes, #change-image_fstypes-icon').show();
+ });
+ });
+ {% endif %}
+
+
+ {% if image_install_append_defined %}
+
+ // init IMAGE_INSTALL_append trash icon
+ setDeleteTooltip($('#delete-image_install-icon'));
+
+ // change IMAGE_INSTALL_append variable
+ $('#change-image_install-icon').click(function() {
+ // preset the edit value
+ var current_val = $("span#image_install").text().trim();
+ if (current_val == "Not set") {
+ current_val="";
+ $("#apply-change-image_install").attr("disabled","disabled");
+ } else {
+ // insure these non-empty values have single space prefix
+ current_val=" " + current_val;
+ $("#apply-change-image_install").removeAttr("disabled");
+ }
+ $("input#new-image_install").val(current_val);
+
+ $('#change-image_install-icon, #delete-image_install-icon, #image_install').hide();
+ $("#change-image_install-form").slideDown();
+ });
+
+ $('#cancel-change-image_install').click(function(){
+ $("#change-image_install-form").slideUp(function() {
+ $('#image_install, #change-image_install-icon').show();
+ if ($("span#image_install").text() != "Not set") {
+ $('#delete-image_install-icon').show();
+ setDeleteTooltip($('#delete-image_install-icon'));
+ }
+ });
+ });
+
+ $("#new-image_install").on('input', function(){
+ if ($(this).val().trim().length == 0) {
+ $("#apply-change-image_install").attr("disabled","disabled");
+ }
+ else {
+ $("#apply-change-image_install").removeAttr("disabled");
+ }
+ });
+
+ $('#apply-change-image_install').click(function(){
+ // insure these non-empty values have single space prefix
+ var value = " " + $('#new-image_install').val().trim();
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+value});
+ $('#image_install').text(value);
+ $('#image_install').removeClass('text-muted');
+ $("#change-image_install-form").slideUp(function () {
+ $('#image_install, #change-image_install-icon').show();
+ if (value.length > -1) {
+ $('#delete-image_install-icon').show();
+ setDeleteTooltip($('#delete-image_install-icon'));
+ }
+ });
+ });
+
+ // delete IMAGE_INSTALL_append variable value
+ $('#delete-image_install-icon').click(function(){
+ $(this).tooltip('hide');
+ postEditAjaxRequest({"configvarChange" : 'IMAGE_INSTALL_append:'+''});
+ $('#image_install').parent().fadeOut(1000, function(){
+ $('#image_install').addClass('text-muted');
+ $('#image_install').text('Not set');
+ $('#delete-image_install-icon').hide();
+ $('#image_install').parent().fadeIn(1000);
+ });
+ });
+ {% endif %}
+
+
+ {% if package_classes_defined %}
+ // change PACKAGE_CLASSES variable
+ $('#change-package_classes-icon').click(function() {
+ $('#change-package_classes-icon, #package_classes').hide();
+ $("#change-package_classes-form").slideDown();
+
+ // initialize the pulldown and checkboxes
+ var value = $("#package_classes").text();
+ if ( value.indexOf("package_deb") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 0);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_ipk") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_rpm") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+
+ if ( value.indexOf("package_ipk") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 1);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_deb") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_rpm") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+
+ if ( value.indexOf("package_rpm") == 0 ) {
+ $("#package_classes-select").prop('selectedIndex', 2);
+ updatePackageClassCheckboxes();
+ if ( value.indexOf("_deb") > 0 ) {
+ $("#package_class_1_input").attr("checked",true);
+ }
+ if ( value.indexOf("_ipk") > 0 ) {
+ $("#package_class_2_input").attr("checked",true);
+ }
+ }
+ });
+
+ $('#cancel-change-package_classes').click(function(){
+ $("#change-package_classes-form").slideUp(function() {
+ $('#package_classes, #change-package_classes-icon').show();
+ });
+ });
+
+ $('select').change(function() {
+ updatePackageClassCheckboxes();
+ });
+
+ $('#apply-change-package_classes').click(function(){
+ var e = document.getElementById("package_classes-select");
+ var val = e.options[e.selectedIndex].text;
+
+ pc1_checked = document.getElementById("package_class_1_input").checked;
+ pc2_checked = document.getElementById("package_class_2_input").checked;
+ if (val == "package_deb") {
+ if (pc1_checked) val = val + " package_ipk";
+ if (pc2_checked) val = val + " package_rpm";
+ }
+ if (val == "package_ipk") {
+ if (pc1_checked) val = val + " package_deb";
+ if (pc2_checked) val = val + " package_rpm";
+ }
+ if (val == "package_rpm") {
+ if (pc1_checked) val = val + " package_deb";
+ if (pc2_checked) val = val + " package_ipk";
+ }
+
+ $('#package_classes').text(val);
+ //$('#package_classes').parent().removeClass('muted');
+ postEditAjaxRequest({"configvarChange" : 'PACKAGE_CLASSES:'+val});
+ $("#change-package_classes-form").slideUp(function() {
+ $('#package_classes, #change-package_classes-icon').show();
+ });
+ });
+ {% endif %}
+
+ {% if sstate_dir_defined %}
+
+ // change SSTATE_DIR variable
+ $('#change-sstate_dir-icon').click(function() {
+ $('#change-sstate_dir-form').removeClass('has-error');
+ // preset the edit value
+ var current_val = $("span#sstate_dir").text().trim();
+ if (current_val == "Not set") {
+ current_val="";
+ $("#apply-change-sstate_dir").attr("disabled","disabled");
+ }
+ $("input#new-sstate_dir").val(current_val);
+
+ // enable / disable the save button based on the input value
+ if ( current_val.length ) {
+ $("#apply-change-sstate_dir").removeAttr("disabled");
+ }
+ else {
+ $("#apply-change-sstate_dir").attr("disabled","disabled");
+ }
+
+ $('#change-sstate_dir-icon, #sstate_dir').hide();
+ $("#change-sstate_dir-form").slideDown();
+ });
+
+ $('#cancel-change-sstate_dir').click(function(){
+ $("#hintError-sstate_dir").hide();
+ $("#hintError-initialChar-sstate_dir").hide();
+ $("#change-sstate_dir-form").slideUp(function() {
+ $('#sstate_dir, #change-sstate_dir-icon').show();
+ });
+ });
+
+ $("#new-sstate_dir").on('input', function(){
+ if ($(this).val().trim().length == 0) {
+ $("#apply-change-sstate_dir").attr("disabled","disabled");
+ $('#change-sstate_dir-form').addClass('has-error');
+ $('#hintError-sstate_dir').hide();
+ $('#hintError-initialChar-sstate_dir').hide();
+ }
+ else {
+ var input = $(this);
+ var reBeginWithSlash = /^\//;
+ var reCheckVariable = /^\$/;
+ var re = /([ <>\\|":\.%\?\*]+)/;
+ var invalidDir = re.test(input.val());
+ var invalidSlash = reBeginWithSlash.test(input.val());
+ var invalidVar = reCheckVariable.test(input.val());
+ if (!invalidSlash && !invalidVar) {
+ $('#change-sstate_dir-form').addClass('has-error');
+ $("#apply-change-sstate_dir").attr("disabled","disabled");
+ $('#hintError-initialChar-sstate_dir').show();
+ } else if (invalidDir) {
+ $('#change-sstate_dir-form').addClass('has-error');
+ $("#apply-change-sstate_dir").attr("disabled","disabled");
+ $('#hintError-sstate_dir').show();
+ } else {
+ $('#change-sstate_dir-form').removeClass('has-error');
+ $("#apply-change-sstate_dir").removeAttr("disabled");
+ $('#hintError-sstate_dir').hide();
+ $('#hintError-initialChar-sstate_dir').hide();
+ }
+ }
+ });
+
+ $('#apply-change-sstate_dir').click(function(){
+ var value = $('#new-sstate_dir').val().trim();
+ postEditAjaxRequest({"configvarChange" : 'SSTATE_DIR:'+value});
+ $('#sstate_dir').text(value);
+ $('#sstate_dir').removeClass('text-muted');
+ $("#change-sstate_dir-form").slideUp(function () {
+ $('#sstate_dir, #change-sstate_dir-icon').show();
+ });
+ });
+
+ {% endif %}
+
+ // add new variable
+ $("button#add-configvar-button").click( function (evt) {
+ var variable = $("input#variable").val();
+ var value = $("input#value").val();
+
+ postEditAjaxRequest({"configvarAdd" : variable+':'+value});
+
+ // clear the previous values
+ $("input#variable").val("");
+ $("input#value").val("");
+ // Disable add button
+ $(".save").attr("disabled","disabled");
+
+ // Reload page if admin-removed core managed value is manually added back in
+ if (0 <= " DISTRO DL_DIR IMAGE_FSTYPES IMAGE_INSTALL_append PACKAGE_CLASSES SSTATE_DIR ".indexOf( " "+variable+" " )) {
+ // delayed reload to avoid race condition with postEditAjaxRequest
+ do_reload=true;
+ }
+ });
+
+ // validate new variable name and value
+ $("#variable, #value").on('input', function() {
+ validate_new_variable();
+ });
+
+ //
+ // draw and register the dynamic configuration variables and handlers
+ //
+
+ var data = {
+ configvars : []
+ };
+ {% for c in configvars %}
+ data.configvars.push([ "{{c.name}}","{{c.value}}","{{c.pk}}" ]);
+ {% if '' != vars_context|get_dict_value:c.name %}
+ data.vars_context[ "{{c.name}}" ] = "{{vars_context|get_dict_value:c.name }}";
+ {% endif %}
+ {% endfor %}
+
+ // draw these elements and assert their event handlers
+ onEditPageUpdate(data);
+});
+
+</script>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projects-toastertable.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projects-toastertable.html
index 5814f32d0..d8020a97f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projects-toastertable.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projects-toastertable.html
@@ -4,33 +4,39 @@
{% block pagecontent %}
- <div class="page-header top-air">
- <h1 data-role="page-title"></h1>
- </div>
-
- {% url 'projects' as xhr_table_url %}
- {% include 'toastertable.html' %}
-
- <script>
- $(document).ready(function () {
- var tableElt = $("#{{table_name}}");
- var titleElt = $("[data-role='page-title']");
-
- tableElt.on("table-done", function (e, total, tableParams) {
- var title = "All projects";
-
- if (tableParams.search || tableParams.filter) {
- if (total === 0) {
- title = "No projects found";
- }
- else if (total > 0) {
- title = total + " project" + (total > 1 ? 's' : '') + " found";
- }
- }
-
- titleElt.text(title);
+<div class="row">
+ <div class="col-md-12">
+
+ <div class="page-header">
+ <h1 data-role="page-title"></h1>
+ </div>
+
+ {% url 'projects' as xhr_table_url %}
+ {% include 'toastertable.html' %}
+
+ <script>
+$(document).ready(function () {
+ var tableElt = $("#{{table_name}}");
+ var titleElt = $("[data-role='page-title']");
+
+ tableElt.on("table-done", function (e, total, tableParams) {
+ var title = "All projects";
+
+ if (tableParams.search || tableParams.filter) {
+ if (total === 0) {
+ title = "No projects found";
+ }
+ else if (total > 0) {
+ title = total + " project" + (total > 1 ? 's' : '') + " found";
+ }
+ }
+
+ titleElt.text(title);
});
});
- </script>
+ </script>
+
+ </div>
+</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projecttopbar.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projecttopbar.html
index 007de06ff..768ca9455 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projecttopbar.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/projecttopbar.html
@@ -16,63 +16,64 @@
});
</script>
-<div class="alert alert-success lead" id="project-created-notification" style="margin-top:15px; display:none">
- <button type="button" class="close" data-dismiss="alert">Ă—</button>
- Your project <strong>{{project.name}}</strong> has been created. You can now <a href="{% url 'projectmachines' project.id %}">select your target machine</a> and <a href="{% url 'projectimagerecipes' project.id %}">choose image recipes</a> to build.
-</div>
-
-<!-- project name -->
-<div class="page-header">
- <h1 id="project-name-container">
- <span id="project-name">{{project.name}}</span>
+<div class="col-md-12">
+ <div class="alert alert-success alert-dismissible change-notification" id="project-created-notification" style="display:none">
+ <button type="button" class="close" data-dismiss="alert">&times;</button>
+ <p>Your project <strong>{{project.name}}</strong> has been created. You can now <a class="alert-link" href="{% url 'projectmachines' project.id %}">select your target machine</a> and <a class="alert-link" href="{% url 'projectimagerecipes' project.id %}">choose image recipes</a> to build.</p>
+ </div>
+ <!-- project name -->
+ <div class="page-header">
+ <h1 id="project-name-container">
+ <span class="project-name">{{project.name}}</span>
- <i class="icon-pencil" data-original-title="" id="project-change-form-toggle" title=""></i>
+ <span class="glyphicon glyphicon-edit" id="project-change-form-toggle"></i>
- {% if project.is_default %}
- <i class="icon-question-sign get-help heading-help" title="" data-original-title="This project shows information about the builds you start from the command line while Toaster is running"></i>
- {% endif %}
- </h1>
- <form id="project-name-change-form" style="margin-bottom: 0px; display: none;">
- <div class="input-append">
- <input class="huge input-xxlarge" type="text" id="project-name-change-input" autocomplete="off" value="{{project.name}}">
- <button id="project-name-change-btn" class="btn btn-large" type="button">Save</button>
- <a href="#" id="project-name-change-cancel" class="btn btn-large btn-link">Cancel</a>
- </div>
- </form>
-</div>
+ {% if project.is_default %}
+ <span class="glyphicon glyphicon-question-sign get-help" title="This project shows information about the builds you start from the command line while Toaster is running"></span>
+ {% endif %}
+ </h1>
+ <form id="project-name-change-form" class="form-inline" style="display: none;">
+ <div class="form-group">
+ <input class="form-control input-lg" type="text" id="project-name-change-input" autocomplete="off" value="{{project.name}}">
+ </div>
+ <button id="project-name-change-btn" class="btn btn-default btn-lg" type="button">Save</button>
+ <a href="#" id="project-name-change-cancel" class="btn btn-lg btn-link">Cancel</a>
+ </form>
+ </div>
-{% if not project.is_default %}
+ {% if not project.is_default %}
<div id="project-topbar">
- <ul class="nav nav-pills">
+ <ul class="nav nav-tabs">
<li id="topbar-configuration-tab">
- <a href="{% url 'project' project.id %}">
- Configuration
- </a>
+ <a href="{% url 'project' project.id %}">
+ Configuration
+ </a>
</li>
<li>
- <a href="{% url 'projectbuilds' project.id %}">
- Builds ({{project.get_number_of_builds}})
- </a>
+ <a href="{% url 'projectbuilds' project.id %}">
+ Builds ({{project.get_number_of_builds}})
+ </a>
</li>
<li>
- <a href="{% url 'importlayer' project.id %}">
- Import layer
- </a>
+ <a href="{% url 'importlayer' project.id %}">
+ Import layer
+ </a>
</li>
<li>
- <a href="{% url 'newcustomimage' project.id %}">
- New custom image
- </a>
+ <a href="{% url 'newcustomimage' project.id %}">
+ New custom image
+ </a>
</li>
<li class="pull-right">
- <form class="form-inline" style="margin-bottom:0px;">
- <i class="icon-question-sign get-help heading-help" data-placement="left" title="" data-original-title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a colon and a task name to the recipe name, like so: <code>busybox:clean</code>"></i>
- <div class="input-append">
- <input id="build-input" type="text" class="input-xlarge input-lg build-target-input" placeholder="Type the recipe you want to build" autocomplete="off" disabled>
- <button id="build-button" class="btn btn-primary btn-large build-button" data-project-id="{{project.id}}" disabled>Build</button>
+ <form class="form-inline">
+ <div class="form-group">
+ <span class="glyphicon glyphicon-question-sign get-help" data-placement="left" title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a colon and a task name to the recipe name, like so: <code>busybox:clean</code>"></span>
+ <input id="build-input" type="text" class="form-control input-lg" placeholder="Type the recipe you want to build" autocomplete="off" disabled>
</div>
+ <button id="build-button" class="btn btn-primary btn-lg" data-project-id="{{project.id}}" disabled>Build</button>
</form>
</li>
</ul>
</div>
-{% endif %}
+ {% endif %}
+</div>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe.html
index 1d6d64e3c..bf2cd7169 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe.html
@@ -12,35 +12,43 @@
<!-- Begin container -->
-<div class="row span11">
- <div class="page-header">
+<div class="row">
+ <div class="col-md-12">
+ <div class="page-header build-data">
<h1>{{object.name}}_{{object.version}}</h1>
</div>
+ </div>
</div>
-<div class="row span7 tabbable">
- <ul class="nav nav-pills">
+<div class="row">
+ <div class="col-md-8 tabbable">
+ <ul class="nav nav-tabs">
<li class="{{tab_states.1}}">
<a href="#information" data-toggle="tab">
- <i class="icon-question-sign get-help" title="Build-related information about the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Build-related
+ information about the recipe"></span>
Recipe details
</a>
</li>
<li>
<a href="{% url "recipe_packages" build.pk object.id %}">
- <i class="icon-question-sign get-help" title="The packaged output resulting from building the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The packaged
+ output resulting from building the recipe"></span>
Packages ({{package_count}})
</a>
</li>
<li class="{{tab_states.3}}">
<a href="#dependencies" data-toggle="tab">
- <i class="icon-question-sign get-help" title="The recipe build-time dependencies (i.e. other recipes)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The recipe
+ build-time dependencies (i.e. other recipes)"></span>
Build dependencies ({{object.r_dependencies_recipe.all.count}})
</a>
</li>
<li class="{{tab_states.4}}">
<a href="#brought-in-by" data-toggle="tab">
- <i class="icon-question-sign get-help" title="The recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The recipe
+ build-time reverse dependencies (i.e. the recipes that
+ depend on this recipe)"></span>
Reverse build dependencies ({{object.r_dependencies_depends.all.count}})
</a>
</li>
@@ -49,34 +57,55 @@
<div class="tab-pane {{tab_states.1}}" id="information">
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="The name of the layer providing the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name of
+ the layer providing the recipe"></span>
Layer
</dt>
<dd>{{layer.name}}</dd>
<dt>
- <i class="icon-question-sign get-help" title="Path to the recipe .bb file"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Path to the
+ recipe .bb file"></span>
Recipe file
</dt>
<dd><code>{{object.file_path}} {% if object.pathflags %}<i>({{object.pathflags}})</i>{% endif %}</code></dd>
- {% if layer_version.branch %}
<dt>
- <i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help"
+ title="The Git branch of the layer providing the
+ recipe"></span>
Layer branch
</dt>
+ {% if layer_version.layer.local_source_dir %}
+ <dd>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The source
+ code of {{layer_version.layer.name}} is not in a git repository
+ so there is no branch associated with it"></span>
+ </dd>
+ {% else %}
<dd>{{layer_version.branch}}</dd>
- {% endif %}
+ {% endif %}
<dt>
- <i class="icon-question-sign get-help" title="The Git commit of the layer providing the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The Git
+ commit of the layer providing the recipe"></span>
Layer commit
</dt>
+ {% if layer_version.layer.local_source_dir %}
+ <dd>
+ <span class="text-muted">Not applicable</span>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The source
+ code of {{layer_version.layer.name}} is not in a git repository
+ so there is no commit associated with it"></span>
+ </dd>
+ {% else %}
<dd class="iscommit">{{layer_version.commit}}</dd>
+ {% endif %}
{% if object.provides_set.all %}
<dt>
- <i class="icon-question-sign get-help"
+ <span class="glyphicon glyphicon-question-sign get-help"
title="A list of aliases by which a particular recipe can be known. The additional aliases are
synonyms for the recipe and can be useful satisfying dependencies of other recipes during
- the build"></i>
+ the build"></span>
PROVIDES
</dt>
<dd><code>{% for provider in object.provides_set.all %}{{ provider.name }}&nbsp;{% endfor %}</code></dd>
@@ -89,30 +118,45 @@
<strong>{{object.name}}_{{object.version}}</strong> does not have any tasks in this build.
</div>
{% else %}
+ <div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
- <tr>
+ <tr>
<th>
- <i class="icon-question-sign get-help" title="The running sequence of each task in the build"></i>
+ <span class="glyphicon glyphicon-question-sign
+ get-help" title="The running sequence of each task
+ in the build"></span>
Order
</th>
<th>
- <i class="icon-question-sign get-help" title="The name of the task"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name
+ of the task"></span>
Task
</th>
<th>
- <i class="icon-question-sign get-help" title="This value tells you if a task had to run (executed) in order to generate the task output, or if the output was provided by another task and therefore the task didn't need to run (not executed)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="This
+ value tells you if a task had to run (executed) in
+ order to generate the task output, or if the output was
+ provided by another task and therefore the task didn't need
+ to run (not executed)"></span>
Executed
</th>
<th>
- <i class="icon-question-sign get-help" title="This column tells you if 'executed' tasks succeeded or failed. The column also tells you why 'not executed' tasks did not need to run"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="This
+ column tells you if 'executed' tasks succeeded or
+ failed. The column also tells you why 'not executed'
+ tasks did not need to run"></span>
Outcome
</th>
<th>
- <i class="icon-question-sign get-help" title="This column tells you if a task tried to restore output from the <code>sstate-cache</code> directory or mirrors, and reports the result: Succeeded, Failed or File not in cache"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="This
+ column tells you if a task tried to restore output
+ from the <code>sstate-cache</code> directory or
+ mirrors, and reports the result: Succeeded, Failed or File
+ not in cache"></span>
Cache attempt
</th>
- </tr>
+ </tr>
</thead>
<tbody>
@@ -120,26 +164,30 @@
<tr {{ task|task_color }} >
- <td><a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.order}}</a></td>
+ <td>{{task.order}}</td>
<td>
- <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.task_name}}</a>
- {% if task.get_description %}<i class="icon-question-sign get-help hover-help" title="" data-original-title="{{task.get_description}}"></i> {% endif %}
+ <a href="{% url "task" build.pk task.pk %}">{{task.task_name}}</a>
+ {% if task.get_description %}<span class="glyphicon
+ glyphicon-question-sign get-help hover-help"
+ title="{{task.get_description}}"></span>
+ {% endif %}
</td>
- <td><a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_executed_display}}</a></td>
+ <td>{{task.get_executed_display}}</td>
- <td>
- <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_outcome_display}} </a>
+ <td>{{task.get_outcome_display}}
{% if task.outcome = task.OUTCOME_FAILED %}
<a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
- <i class="icon-download-alt" title="Download task log file"></i>
+ <span class="glyphicon glyphicon-download-alt
+ get-help" title="Download task log
+ file"></span>
</a>
{% endif %}
<i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
</td>
<td>
{% ifnotequal task.sstate_result task.SSTATE_NA %}
- <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_sstate_result_display}}</a>
+ {{task.get_sstate_result_display}}
{% endifnotequal %}
</td>
@@ -148,6 +196,7 @@
{% endfor %}
</tbody>
</table>
+ </div>
{% endif %}
</div>
<div class="tab-pane {{tab_states.3}}" id="dependencies">
@@ -174,13 +223,13 @@
<tr>
<td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.name}}</a>
{% if rr.via %}
- <span class="muted">satisfied via {{rr.via.name}}</span>
- <i class="icon-question-sign get-help hover-help"
+ <span class="text-muted">satisfied via <code class="text-muted">{{rr.via.name}}</code></span>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help"
title="This dependency is satisfied by the PROVIDES value
- {{rr.via.name}} in the {{rr.depends_on.name}} recipe"></i>
+ <code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></span>
{% endif %}
</td>
- <td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.version}}</a></td>
+ <td>{{rr.depends_on.version}}</td>
</tr>
{% endfor %}
@@ -213,13 +262,13 @@
<tr>
<td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.name}}</a>
{% if rr.via %}
- <span class="muted"> satisfied via {{rr.via.name}}</span>
- <i class="icon-question-sign get-help hover-help"
+ <span class="text-muted"> satisfied via <code class="text-muted">{{rr.via.name}}</code></span>
+ <span class="glyphicon glyphicon-question-sign get-help hover-help"
title="This dependency is satisfied by the PROVIDES value
- {{rr.via.name}} in the {{rr.depends_on.name}} recipe"></i>
+ <code>{{rr.via.name}}</code> in the <code>{{rr.depends_on.name}}</code> recipe"></i>
{% endif %}
</td>
- <td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.version}}</a></td>
+ <td>{{rr.recipe.version}}</td>
</tr>
{% endfor %}
@@ -231,7 +280,8 @@
</div>
</div>
-<div class="row span4 well">
+<div class="col-md-4">
+ <div class="well">
<h2>About {{object.name}}</h2>
<dl class="item-info">
{% if object.summary %}
@@ -253,7 +303,7 @@
{% if object.section %}
<dt>
Section
- <i class="icon-question-sign get-help" title="The section in which recipes should be categorized"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The section in which recipes should be categorized"></span>
</dt>
<dd>{{object.section}}</dd>
{% endif %}
@@ -262,6 +312,9 @@
<dd>{{object.license}}</dd>
{% endif %}
</dl>
+ </div>
</div>
+</div> <!-- end row -->
+
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_btn.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_btn.html
index baab06eb5..e3729643a 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_btn.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_btn.html
@@ -1,16 +1,17 @@
-<button data-recipe-name="{{data.name}}" class="btn btn-block layer-exists-{{data.layer_version.pk}} build-recipe-btn" style="margin-top: 5px;
+<a data-recipe-name="{{data.name}}" class="btn btn-default btn-block layer-exists-{{data.layer_version.pk}} build-recipe-btn" style="margin-top: 5px;
{% if data.layer_version.pk not in extra.current_layers %}
display:none;
{% endif %}"
>
Build recipe
-</button>
-<button class="btn btn-block layerbtn layer-add-{{data.layer_version.pk}}" data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}"}' data-directive="add"
+</a>
+<a class="btn btn-default btn-block layerbtn layer-add-{{data.layer_version.pk}}" data-layer='{ "id": {{data.layer_version.pk}}, "name": "{{data.layer_version.layer.name}}", "layerdetailurl": "{%url 'layerdetails' extra.pid data.layer_version.pk%}"}' data-directive="add"
{% if data.layer_version.pk in extra.current_layers %}
style="display:none;"
{% endif %}
>
- <i class="icon-plus"></i>
+ <span class="glyphicon glyphicon-plus"></span>
Add layer
- <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{data.layer_version.layer.name}} layer to your project"></i>
-</button>
+ <span class="glyphicon glyphicon-question-sign get-help" title="To build this
+ recipe you must first add the {{data.layer_version.layer.name}} layer to your project"></i>
+</a>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_packages.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_packages.html
index d25847bc0..37a586f38 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_packages.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipe_packages.html
@@ -11,35 +11,43 @@
<!-- Begin container -->
-<div class="row-fluid span11">
- <div class="page-header">
+<div class="row">
+ <div class="col-md-12">
+ <div class="page-header build-data">
<h1>{{recipe.name}}_{{recipe.version}}</h1>
</div>
+ </div>
</div>
-<div class="row-fluid span7 tabbable">
- <ul class="nav nav-pills">
+<div class="row">
+ <div class="col-md-8 tabbable">
+ <ul class="nav nav-tabs">
<li>
<a href="{% url "recipe" build.pk recipe.id "1" %}">
- <i class="icon-question-sign get-help" title="Build-related information about the recipe"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Build-related
+ information about the recipe"></span>
Recipe details
</a>
</li>
<li class="active">
- <a href="#packages-built" data-toggle="tab">
- <i class="icon-question-sign get-help" title="The packaged output resulting from building the recipe"></i>
+ <a href="#packages-built" data-toggle="tab">
+ <span class="glyphicon glyphicon-question-sign get-help" title="The packaged
+ output resulting from building the recipe"></span>
Packages ({{object_count}})
</a>
</li>
<li>
<a href="{% url "recipe" build.pk recipe.id "3" %}">
- <i class="icon-question-sign get-help" title="The recipe build-time dependencies (i.e. other recipes)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The recipe
+ build-time dependencies (i.e. other recipes)"></span>
Build dependencies ({{recipe.r_dependencies_recipe.all.count}})
</a>
</li>
<li>
<a href="{% url "recipe" build.pk recipe.id "4" %}">
- <i class="icon-question-sign get-help" title="The recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The recipe
+ build-time reverse dependencies (i.e. the recipes that
+ depend on this recipe)"></span>
Reverse build dependencies ({{recipe.r_dependencies_depends.all.count}})
</a>
</li>
@@ -72,8 +80,8 @@
<tr>
<td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td>
- <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}_{{package.revision}}</a></td>
- <td class="sizecol"><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.size|filtered_filesizeformat}}</a></td>
+ <td>{{package.version}}_{{package.revision}}</td>
+ <td class="sizecol">{{package.size|filtered_filesizeformat}}</td>
</tr>
{% endfor %}
@@ -86,9 +94,10 @@
{% endif %}
</div> {# tab-pane #}
</div> {# tab-content #}
-</div> {# span7 #}
+</div> {# col-md-8 #}
-<div class="row span4 well">
+<div class="col-md-4">
+ <div class="well">
<h2>About {{recipe.name}}</h2>
<dl class="item-info">
{% if recipe.summary %}
@@ -119,5 +128,8 @@
<dd>{{recipe.license}}</dd>
{% endif %}
</dl>
+ </div>
</div>
+
+</div> <!-- end row -->
{% endblock pagedetailinfomain %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html
index 23aa171ce..66c1f7bcd 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html
@@ -4,25 +4,23 @@
{% load static %}
{% block pagecontent %}
-<div class="section">
- <ul class="breadcrumb">
- <li>
- <a href="{% url 'project' project.id %}">{{project.name}}</a>
- <span class="divider">&rarr;</span>
- </li>
- <li>
- {% if recipe.is_image %}
- <a href="{% url 'projectimagerecipes' project.id %}">Image recipes</a>
- {% else %}
- <a href="{% url 'projectsoftwarerecipes' project.id %}">Software recipes</a>
- {% endif %}
- <span class="divider">&rarr;</span>
- </li>
- <li class="active">
- {{recipe.name}} ({{recipe.layer_version.layer.name}})
- </li>
- </ul>
-</div>
+<ul class="breadcrumb">
+ <li>
+ <a href="{% url 'project' project.id %}">{{project.name}}</a>
+ <span class="divider">&rarr;</span>
+ </li>
+ <li>
+ {% if recipe.is_image %}
+ <a href="{% url 'projectimagerecipes' project.id %}">Image recipes</a>
+ {% else %}
+ <a href="{% url 'projectsoftwarerecipes' project.id %}">Software recipes</a>
+ {% endif %}
+ <span class="divider">&rarr;</span>
+ </li>
+ <li class="active">
+ {{recipe.name}} ({{recipe.layer_version.layer.name}})
+ </li>
+</ul>
<script src="{% static 'js/recipedetails.js' %}"></script>
<script>
@@ -51,42 +49,40 @@
{% include 'newcustomimage_modal.html' %}
-<div class="row-fluid span11">
- <div class="alert alert-success lead" id="image-created-notification" style="margin-top: 15px; display: none">
- <button type="button" data-dismiss="alert" class="close">x</button>
- Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.
- </div>
- <div class="page-header air">
- <h1>
- {{recipe.name}}
- <small>({{recipe.layer_version.layer.name}})</small>
- </h1>
- </div>
+<div class="alert alert-success lead" id="image-created-notification" style="margin-top: 15px; display: none">
+ <button type="button" data-dismiss="alert" class="close">x</button>
+ Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.
+</div>
+<div class="page-header">
+ <h1>
+ {{recipe.name}}
+ <small>({{recipe.layer_version.layer.name}})</small>
+ </h1>
</div>
-<div class="row-fluid span11">
- <div class="span8">
+<div class="row">
+ <div class="col-md-8">
<div class="button-place btn-group" id="customise-build-btns"
style="width: 100%;
{% if not in_project %}
display:none;
{% endif %}">
- <button class="btn btn-large span6 build-recipe-btn" style="width: 50%">
+ <button class="btn btn-default btn-lg build-recipe-btn" style="width: 50%">
Build {{recipe.name}}
</button>
{% if recipe.is_image %}
- <button class="btn btn-large span6 customise-btn" data-recipe="{{recipe.pk}}" style="width: 50%">
+ <button class="btn btn-default btn-lg customise-btn" data-recipe="{{recipe.pk}}" style="width: 50%">
Customise {{recipe.name}}
</button>
{% endif %}
</div>
<div class="button-place">
- <button class="btn btn-block btn-large" id="add-layer-btn"
+ <button class="btn btn-default btn-block btn-lg" id="add-layer-btn"
style="width:100%;
{% if in_project %}
display:none;
{% endif %}">
- <i class="icon-plus"></i>
+ <i class="glyphicon glyphicon-plus"></i>
Add the {{recipe.layer_version.layer.name}} layer to your project to build or customise this image recipe
</button>
</div>
@@ -106,7 +102,7 @@
style="display:none"
{% endif %} >
<p class="lead">Toaster has no package information for {{recipe.name}}. To generate package information, build {{recipe.name}}</p>
- <button class="btn btn-info btn-large build-recipe-btn" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
+ <button class="btn btn-info btn-lg build-recipe-btn" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
</div>
<div class="alert alert-info air" id="packages-alert"
@@ -119,58 +115,60 @@
</div>
</div>
</div>
- <div class="span4 well">
- <h2 style="margin-bottom:20px;">About {{recipe.name}}</h2>
- <dl>
- <dt>
+ <div class="col-md-4">
+ <div class="well">
+ <h2>About {{recipe.name}}</h2>
+ <dl class="item-info">
+ <dt>
Approx. packages included
- <i class="icon-question-sign get-help" title="" data-original-title="The number of packages included is based on information from previous builds and from parsing layers, so we can never be sure it is 100% accurate"></i>
- </dt>
- <dd class="no-packages">{{packages.count}}</dd>
- <dt>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The number of packages included is based on information from previous builds and from parsing layers, so we can never be sure it is 100% accurate"></span>
+ </dt>
+ <dd class="no-packages">{{packages.count}}</dd>
+ <dt>
Approx. package size
- <i class="icon-question-sign get-help" title="" data-original-title="Package size is based on information from previous builds, so we can never be sure it is 100% accurate"></i>
- </dt>
- <dd>{{approx_pkg_size.size__sum|filtered_filesizeformat}}</dd>
- {% if last_build %}
- <dt>Last build</dt>
- <dd>
- <i class="icon-ok-sign success"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Package size is based on information from previous builds, so we can never be sure it is 100% accurate"></span>
+ </dt>
+ <dd>{{approx_pkg_size.size__sum|filtered_filesizeformat}}</dd>
+ {% if last_build %}
+ <dt>Last build</dt>
+ <dd>
+ <span class="glyphicon glyphicon-ok-circle"></span>
<a href="{% url 'projectbuilds' project.id%}">{{last_build.completed_on|date:"d/m/y H:i"}}</a>
- </dd>
- {% endif %}
- <dt>Recipe file</dt>
- <dd>
+ </dd>
+ {% endif %}
+ <dt>Recipe file</dt>
+ <dd>
<code>{{recipe.file_path|cut_path_prefix:recipe.layer_version.local_path}}</code>
- <a href="{{recipe.get_vcs_recipe_file_link_url}}"><i class="icon-share" title="" data-original-title="View recipe file"></i></a>
- </dd>
- <dt>Layer</dt>
- <dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
- <dt>
+ <a href="{{recipe.get_vcs_recipe_file_link_url}}"><span class="glyphicon glyphicon-new-window" title="View recipe file" data-toggle="tooltip"></span></a>
+ </dd>
+ <dt>Layer</dt>
+ <dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
+ <dt>
Summary
- </dt>
- <dd>
+ </dt>
+ <dd>
{{recipe.summary}}
- </dd>
- <dt>
+ </dd>
+ <dt>
Description
- </dt>
- <dd>
+ </dt>
+ <dd>
{{recipe.description}}
- </dd>
- <dt>Version</dt>
- <dd>
+ </dd>
+ <dt>Version</dt>
+ <dd>
{{recipe.version}}
- </dd>
- <dt>Section</dt>
- <dd>
+ </dd>
+ <dt>Section</dt>
+ <dd>
{{recipe.section}}
- </dd>
- <dt>License</dt>
- <dd>
+ </dd>
+ <dt>License</dt>
+ <dd>
{{recipe.license}}
- </dd>
- </dl>
+ </dd>
+ </dl>
+ </div>
</div>
</div>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipes.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipes.html
deleted file mode 100644
index d14489346..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/recipes.html
+++ /dev/null
@@ -1,113 +0,0 @@
-{% extends "basebuildpage.html" %}
-
-{% load projecttags %}
-
-{% block title %} Recipes - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
-{% block localbreadcrumb %}
-<li>Recipes</li>
-{% endblock %}
-
-{% block nav-recipes %}
- <li class="active"><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
-{% endblock %}
-
-{% block buildinfomain %}
-<div class="span10">
-<div class="page-header">
-<h1>
- {% if request.GET.search and objects.paginator.count > 0 %}
- {{objects.paginator.count}} recipe{{objects.paginator.count|pluralize}} found
- {%elif request.GET.search and objects.paginator.count == 0%}
- No recipes found
- {%else%}
- Recipes
- {%endif%}
- </h1>
-</div>
-
-{% if objects.paginator.count == 0 %}
- <div class="row-fluid">
- <div class="alert">
- <form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{%if request.GET.search%}{{request.GET.search}}{%endif%}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
- <button class="btn" type="submit" value="Search">Search</button>
- <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all recipes</button>
- </form>
- </div>
- </div>
-
-{% else %}
-{% include "basetable_top.html" %}
-
- {% for recipe in objects %}
-
- <tr class="data">
- <td class="recipe__name">
- <a href="{% url "recipe" build.pk recipe.pk %}">{{recipe.name}}</a>
- </td>
- <td class="recipe__version">
- <a href="{% url "recipe" build.pk recipe.pk %}">{{recipe.version}}</a>
- </td>
- <!-- Depends -->
- <td class="depends_on">
- {% with deps=recipe_deps|get_dict_value:recipe.pk %}
- {% with count=deps|length %}
- {% if count %}
- <a class="btn"
- title="<a href='{% url "recipe" build.pk recipe.pk %}#dependencies'>{{recipe.name}}</a> dependencies"
- data-content="<ul class='unstyled'>
- {% for i in deps|dictsort:"depends_on.name"%}
- <li><a href='{% url "recipe" build.pk i.depends_on.pk %}'>{{i.depends_on.name}}</a></li>
- {% endfor %}
- </ul>">
- {{count}}
- </a>
- {% endif %}
- {% endwith %}
- {% endwith %}
- </td>
- <!-- Brought in by -->
- <td class="depends_by">
- {% with revs=recipe_revs|get_dict_value:recipe.pk %}
- {% with count=revs|length %}
- {% if count %}
- <a class="btn"
- title="<a href='{% url "recipe" build.pk recipe.pk %}#brought-in-by'>{{recipe.name}}</a> reverse dependencies"
- data-content="<ul class='unstyled'>
- {% for i in revs|dictsort:"recipe.name" %}
- <li><a href='{% url "recipe" build.pk i.recipe.pk %}'>{{i.recipe.name}}</a></li>
- {% endfor %}
- </ul>">
- {{count}}
- </a>
- {% endif %}
- {% endwith %}
- {% endwith %}
- </td>
- <!-- Recipe file -->
- <td class="recipe_file">{{recipe.file_path}} {% if recipe.pathflags %}<i>({{recipe.pathflags}})</i>{% endif %}</td>
- <!-- Section -->
- <td class="recipe_section">{{recipe.section}}</td>
- <!-- License -->
- <td class="recipe_license">{{recipe.license}}</td>
- <!-- Layer -->
- <td class="layer_version__layer__name">{{recipe.layer_version.layer.name}}</td>
- <!-- Layer branch -->
- <td class="layer_version__branch">{{recipe.layer_version.branch}}</td>
- <!-- Layer commit -->
- <td class="layer_version__layer__commit">
- <a class="btn"
- data-content="<ul class='unstyled'>
- <li>{{recipe.layer_version.commit}}</li>
- </ul>">
- {{recipe.layer_version.commit|truncatechars:13}}
- </a>
- </td>
- </tr>
-
- {% endfor %}
-
-{% include "basetable_bottom.html" %}
-{% endif %}
-</div>
-{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/gitrev_popover.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/gitrev_popover.html
new file mode 100644
index 000000000..c1e3dabfb
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/gitrev_popover.html
@@ -0,0 +1,8 @@
+{% load projecttags %}
+{% if vcs_ref|is_shaid %}
+<a class="btn btn-default" data-content="{{vcs_ref}}">
+ {{vcs_ref|truncatechars:10}}
+</a>
+{% else %}
+{{vcs_ref}}
+{% endif %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_dependencies_popover.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_dependencies_popover.html
index a3fcdb09e..273437e38 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_dependencies_popover.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_dependencies_popover.html
@@ -1,14 +1,38 @@
{# Popover that displays the dependences and sizes of a package 'data' used in the Packages table #}
-{% with data.package_dependencies_source.all_depends.count as dep_count %}
{% load projecttags %}
-{% if dep_count %}
- <a data-content="<ul class='unstyled'>
- {% for dep in data.package_dependencies_source.all_depends %}
- <li>{{dep.depends_on.name}} {% if dep.depends_on.size > 0 %}({{dep.depends_on.size|filtered_filesizeformat}}){% endif %}</li>
- {% endfor %}
- </ul>" title="" class="btn" data-original-title="
- <strong>{{data.name}}</strong> dependencies - <strong>{{data.package_dependencies_source.get_total_source_deps_size.depends_on__size__sum|filtered_filesizeformat}}</strong>">
- {{dep_count}}
-</a>
+
+{% with package_deps=data.package_dependencies_source|for_target:extra.target_name %}
+{% with count_package=package_deps.packages|length %}
+
+{% if count_package > 0 %}
+ <a data-content='<ul class="list-unstyled">
+ {% for dep in package_deps.packages %}
+ <li>
+ {% if extra.add_links %}
+ <a href="{% url 'package_included_detail' extra.build.pk extra.target_id dep.depends_on.pk %}">
+ {{dep.depends_on.name}}</a>
+ {% else %}
+ {{dep.depends_on.name}}
+ {% endif %}
+ {% if dep.depends_on.size > 0 %}
+ ({{dep.depends_on.size|filtered_filesizeformat}})
+ {% endif %}
+ </li>
+ {% endfor %}
+ </ul>' class="btn btn-default" title='
+ <strong>
+ {% if extra.add_links %}
+ <a href="{% url 'package_included_dependencies' extra.build.pk extra.target_id data.pk %}">
+ {{data.name}}</a>
+ {% else %}
+ {{data.name}}
+ {% endif %}
+ </strong>
+ dependencies -
+ <strong>{{package_deps.size|filtered_filesizeformat}}</strong>'>
+ {{count_package}}
+ </a>
{% endif %}
+
+{% endwith %}
{% endwith %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
index 453a9d013..e6ef816e7 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/snippets/pkg_revdependencies_popover.html
@@ -1,14 +1,38 @@
-{# Popover that displays the reverse dependencies and sizes of a package 'data' used in the Packages table #}
-{% with data.package_dependencies_target.all_depends.count as dep_count %}
+{# Popover that displays the reverse dependences and sizes of a package 'data' used in the Packages table #}
{% load projecttags %}
-{% if dep_count %}
- <a data-content="<ul class='unstyled'>
- {% for dep in data.package_dependencies_target.all_depends|dictsort:'package.name' %}
- <li>{{dep.package.name}} {% if dep.package.size > 0 %}({{dep.package.size|filtered_filesizeformat}}){% endif %}</li>
- {% endfor %}
- </ul>" title="" class="btn" data-original-title="
- <strong>{{data.name}}</strong> reverse dependencies - <strong>{{data.package_dependencies_target.get_total_revdeps_size.package_id__size__sum|filtered_filesizeformat}}</strong>">
- {{dep_count}}
-</a>
+
+{% with package_deps=data.package_dependencies_target|for_target:extra.target_name %}
+{% with count_package=package_deps.packages|length %}
+
+{% if count_package > 0 %}
+ <a data-content='<ul class="list-unstyled">
+ {% for dep in package_deps.packages|dictsort:"package.name" %}
+ <li>
+ {% if extra.add_links %}
+ <a href="{% url 'package_included_detail' extra.build.pk extra.target_id dep.package.pk %}">
+ {{dep.package.name}}</a>
+ {% else %}
+ {{dep.package.name}}
+ {% endif %}
+ {% if dep.package.size > 0 %}
+ ({{dep.package.size|filtered_filesizeformat}})
+ {% endif %}
+ </li>
+ {% endfor %}
+ </ul>' class="btn btn-default" title='
+ <strong>
+ {% if extra.add_links %}
+ <a href="{% url 'package_included_reverse_dependencies' extra.build.pk extra.target_id data.pk %}">
+ {{data.name}}</a>
+ {% else %}
+ {{data.name}}
+ {% endif %}
+ </strong>
+ dependencies -
+ <strong>{{package_deps.size|filtered_filesizeformat}}</strong>'>
+ {{count_package}}
+ </a>
{% endif %}
+
+{% endwith %}
{% endwith %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/target.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/target.html
index 4c33eaa84..1924a0dad 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/target.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/target.html
@@ -17,9 +17,8 @@
{% endblock %}
{% block buildinfomain %}
-
-<div class="row-fluid span10">
- <div class="page-header">
+<div class="col-md-10">
+ <div class="page-header build-data">
<h1>
{% if request.GET.search and objects.paginator.count > 0 %}
{{objects.paginator.count}} package{{objects.paginator.count|pluralize}} found
@@ -30,134 +29,28 @@
{% endif %}
</h1>
</div>
-</div>
-
-<div class="row-fluid pull-right span10" id="navTab">
- <ul class="nav nav-pills">
+<div id="navTab">
+ <ul class="nav nav-tabs">
<li class="active">
<a href="#target">
- <i class="icon-question-sign get-help" title="Of all the packages built, the subset installed in the root file system of this image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Of all the packages built, the subset installed in the root file system of this image"></span>
Packages included ({{target.package_count}} - {{packages_sum|filtered_filesizeformat}})
</a>
</li>
<li>
<a href="{% url 'dirinfo' build.id target.id %}">
- <i class="icon-question-sign get-help" title="The directories and files in the root file system of this image"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The directories and files in the root file system of this image"></span>
Directory structure
</a>
</li>
</ul>
<div id="image-packages" class="tab-pane">
-
- {% if objects.paginator.count == 0 %}
- <div class="row-fluid">
- <div class="alert">
- <form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
- <button class="btn" type="submit" value="Search">Search</button>
- <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all packages</button>
- </form>
- </div>
- </div>
-
-
- {% else %}
- {% include "basetable_top.html" %}
- {% for package in objects %}
- <tr>
- {# order of the table data must match the columns defined in template's context tablecols #}
- <td class="package_name">
- <a href="{% url 'package_included_detail' build.id target.id package.id %}">
- {{package.name}}
- </a>
- {% if package.installed_name and package.name != package.installed_name %}
- <span class="muted"> as {{package.installed_name}}</span>
- <i class="icon-question-sign get-help hover-help" title='{{package.name|add:" was renamed at packaging time and was installed in your image as "|add:package.installed_name}}'></i>
- {% endif %}
- </td>
- <td class="package_version">
- <a href="{% url 'package_included_detail' build.id target.id package.id %}">
- {{package.version|filtered_packageversion:package.revision}}
- </a>
- </td>
- <td class="license">
- {{package.license}}
- </td>
- <td class="size sizecol">
- {{package.size|filtered_installedsize:package.installed_size|filtered_filesizeformat}}
- </td>
-
- <td class="size_over_total sizecol">
- {{package|filter_sizeovertotal:packages_sum}}
- </td>
- <td class="depends">
- {% with deps=package.runtime_dependencies %}
- {% with deps_count=deps|length %}
- {% if deps_count > 0 %}
- <a class="btn"
- title="<a href='{% url "package_included_dependencies" build.id target.id package.id %}'>{{package.name}}</a> dependencies"
- data-content="<ul class='unstyled'>
- {% for i in deps|dictsort:'depends_on.name' %}
- <li><a href='{% url "package_included_detail" build.pk target.id i.depends_on.pk %}'>{{i.depends_on.name}}</a></li>
- {% endfor %}
- </ul>">
- {{deps_count}}
- </a>
- {% endif %}
- {% endwith %}
- {% endwith %}
- </td>
- <td class="brought_in_by">
- {% with rdeps=package.reverse_runtime_dependencies %}
- {% with rdeps_count=rdeps|length %}
- {% if rdeps_count > 0 %}
- <a class="btn"
- title="<a href='{% url "package_included_reverse_dependencies" build.id target.id package.id %}'>{{package.name}}</a> reverse dependencies"
- data-content="<ul class='unstyled'>
- {% for i in rdeps|dictsort:'package.name' %}
- <li><a href='{% url "package_included_detail" build.id target.id i.package.id %}'>{{i.package.name}}</a></li>
- {% endfor %}
- </ul>">
- {{rdeps_count}}
- </a>
- {% endif %}
- {% endwith %}
- {% endwith %}
- </td>
- <td class="recipe_name">
- {% if package.recipe.version %}
- <a href="{% url 'recipe' build.id package.recipe_id %}">
- {{ package.recipe.name }}
- </a>
- {% endif %}
- </td>
- <td class="recipe_version">
- {% if package.recipe.version %}
- <a href="{% url 'recipe' build.id package.recipe_id %}">
- {{ package.recipe.version }}
- </a>
- {% endif %}
- </td>
- <td class="layer_name">
- {{ package.recipe.layer_version.layer.name }}
- </td>
- <td class="layer_branch">
- {{ package.recipe.layer_version.branch}}
- </td>
- <td class="layer_commit">
- <a class="btn"
- data-content="<ul class='unstyled'>
- <li>{{package.recipe.layer_version.commit}}</li>
- </ul>">
- {{package.recipe.layer_version.commit|truncatechars:13}}
- </a>
- </td>
- </tr>
- {% endfor %}
-
- {% include "basetable_bottom.html" %}
- {% endif %}
+ {# xhr_table_url is just the current url so leave it blank #}
+ {% with xhr_table_url='' %}
+ {% include "toastertable.html" %}
+ {% endwith %}
</div> <!-- tabpane -->
-</div> <!--span 10-->
+ </div> <!--navTab -->
+<!-- col-md-10 -->
{% endblock buildinfomain %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/task.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/task.html
index 576826243..214c77783 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/task.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/task.html
@@ -11,60 +11,88 @@
{% block pagedetailinfomain %}
-<div class="row span11">
- <div class="page-header">
+<div class="row">
+ <div class="col-md-12">
+ <div class="page-header build-data">
<h1><a href="{%url 'recipe' build.pk task.recipe.pk %}">{{task.recipe.name}}_{{task.recipe.version}}</a> {{task.task_name}}</h1>
</div>
{# Outcome section #}
<h2 {{ task|task_color:True }}>
{{task.get_outcome_display}}
- <i class="icon-question-sign get-help heading-help" title="{{task.get_outcome_help}}"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="{{task.get_outcome_help}}"></i>
</h2>
{%if task.task_executed %}
{# executed tasks outcome #}
{% if task.logfile %}
- <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" task.pk %}" style="margin:15px;">Download task log</a>
+ <a class="btn btn-default btn-lg"
+ href="{% url 'build_artifact' build.id 'tasklogfile' task.pk %}">
+ Download task log
+ </a>
{% endif %}
{# show stack trace for failed task #}
{% if task.outcome == task.OUTCOME_FAILED and log_head %}
<h3>Python stack trace</h3>
<div>
<pre style="min-height:160px;">
- <code>{{log_head}}</code><a id="full-trace-show" data-target="#fulltrace" data-toggle="collapse" class="btn btn-mini">...</a>
+ <code>{{log_head}}</code><a id="full-trace-show" data-target="#fulltrace" data-toggle="collapse" class="btn btn-xs">...</a>
<div id="fulltrace" class="collapse" style="margin-top: -20px; height: 0px;">
- <code>{{log_body}}</code><br><a id="full-trace-hide" class="btn btn-mini collapsed" style="font-family:Helvetica Neue" data-target="#fulltrace" data-toggle="collapse">Collapse stack trace<i class="icon-caret-up"></i></a></div></pre>
+ <code>{{log_body}}</code><br><a id="full-trace-hide" class="btn btn-xs collapsed" style="font-family:Helvetica Neue" data-target="#fulltrace" data-toggle="collapse">Collapse stack trace<i class="icon-caret-up"></i></a></div></pre>
</div>
{% endif %}
{% else %}
{# not executed tasks outcome #}
{% if task.outcome == task.OUTCOME_PREBUILT %}
{% if not showing_matches %}
- <a class="btn" href="javascript:reload_params({'show_matches' : 'true' })">Match to tasks in previous builds <i class="icon-question-sign get-help" style="margin-top:20px;" title="This shows you a list of tasks from previous builds with the same signature generated from the same inputs as used in the prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i></a>
+ <a class="btn btn-default"
+ href="javascript:reload_params({'show_matches' : 'true'
+ })">Match to tasks in previous builds <span class="glyphicon
+glyphicon-question-sign get-help" title="This shows you a list of tasks from
+previous builds with the same signature generated from the same inputs as used
+in the prebuilt task. Any of them could be the task that generated the output
+this prebuilt task is reusing"></span></a>
{% elif matching_tasks %}
<h3 class="details">Prebuilt task could be based on
- <i class="icon-question-sign get-help heading-help" title="This table shows a list of tasks from previous builds with the same signature generated from the same inputs as used in the prebuilt task. Any of them could be the task that generated the output this prebuilt task is reusing"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="This
+ table shows a list of tasks from previous builds with the
+ same signature generated from the same inputs as used in the
+ prebuilt task. Any of them could be the task that generated the
+ output this prebuilt task is reusing"></span>
</h3>
+ <div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<th>
- <i class="icon-question-sign get-help" title="The name of the recipe to which each task applies"></i>
+ <span class="glyphicon glyphicon-question-sign
+ get-help" title="The name of the recipe to which
+ each task applies"></span>
Recipe
</th>
<th>
- <i class="icon-question-sign get-help" title="The name of the task"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name
+ of the task"></span>
Task
</th>
<th>
- <i class="icon-question-sign get-help" title="This value tells you if a task had to run (executed) in order to generate the task output, or if the output was provided by another task and therefore the task didn't need to run (not executed)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="This
+ value tells you if a task had to run (executed) in
+ order to generate the task output, or if the output was
+ provided by another task and therefore the task didn't need
+ to run (not executed)"></span>
Executed
</th>
<th>
- <i class="icon-question-sign get-help" title="This column tells you if 'executed' tasks succeeded or failed. The column also tells you why 'not executed' tasks did not need to run"></i>
+ <span class="glyphicon glyphicon-question-sign
+ get-help" title="This column tells you if
+ 'executed' tasks succeeded or failed. The column also
+ tells you why 'not executed' tasks did not need to
+ run"></span>
Outcome
</th>
<th>
- <i class="icon-question-sign get-help" title="The date and time the build finished"></i>
+ <span class="glyphicon glyphicon-question-sign
+ get-help" title="The date and time the build
+ finished"></span>
Build completed on
</th>
</thead>
@@ -72,27 +100,34 @@
{% for match in matching_tasks %}
<tr {{ match|task_color }}>
<td>
- <a href="{%url "task" match.build.pk match.pk%}">{{match.recipe.name}}</a>
+ {{match.recipe.name}}
</td>
<td>
<a href="{%url "task" match.build.pk match.pk%}">{{match.task_name}}</a>
{% if task.get_description %}
- <i class="icon-question-sign get-help hover-help" title="{{task.get_description}}"></i>
+ <span class="glyphicon
+ glyphicon-question-sign get-help
+ hover-help"
+ title="{{task.get_description}}"></span>
{% endif %}
</td>
<td>
- <a href="{%url "task" match.build.pk match.pk%}">{{match.get_executed_display}}</a>
+ {{match.get_executed_display}}
</td>
<td>
- <a href="{%url "task" match.build.pk match.pk%}">{{match.get_outcome_display}} </a><i class="icon-question-sign get-help hover-help" title="{{match.get_outcome_help}}"></i>
+ {{match.get_outcome_display}}
+ <span class="glyphicon glyphicon-question-sign
+ get-help hover-help"
+ title="{{match.get_outcome_help}}"></span>
</td>
<td>
- <a href="{%url "task" match.build.pk match.pk%}">{{match.build.completed_on|date:"d/m/y H:i"}}</a>
+ {{match.build.completed_on|date:"d/m/y H:i"}}
</td>
</tr>
{% endfor %}
</tbody>
</table>
+ </div>
{% else %}
<p class="alert">
<strong> We have found no tasks matching this prebuilt task</strong><br/>
@@ -102,10 +137,11 @@
{% elif task.outcome == task.OUTCOME_COVERED %}
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="The task(s) providing the outcome of this task"></i> Task covered by
+ <span class="glyphicon glyphicon-question-sign get-help" title="The task(s)
+ providing the outcome of this task"></span> Task covered by
</dt>
<dd>
- <ul>
+ <ul class="list-unstyled">
{% for t in covered_by %}
<li>
<a href="{%url 'task' t.build.pk t.pk%}"
@@ -122,7 +158,10 @@
{%elif task.outcome == task.OUTCOME_CACHED%}
{% for t in task.get_related_setscene %}
{% if forloop.last %}
- <a class="btn btn-large" href="{% url 'build_artifact' build.id "tasklogfile" t.pk %}" style="margin:15px;">Download task log</a>
+ <a class="btn btn-default btn-lg"
+ href="{% url 'build_artifact' build.id "tasklogfile" t.pk %}">
+ Download task log
+ </a>
{% endif %}
{% endfor %}
@@ -137,38 +176,56 @@
{% if task.task_executed %}
<h2>
Executed
- <i class="icon-question-sign get-help heading-help" title="'Executed' tasks are those that need to run in order to generate the task output"></i>
+ <span class="glyphicon glyphicon-question-sign get-help"
+ title="'Executed' tasks are those that need to run in order to
+ generate the task output"></span>
{% else %}
- <h2 class="muted">
+ <h2>
Not Executed
- <i class="icon-question-sign get-help heading-help" title="'Not executed' tasks don't need to run because their outcome is provided by another task"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="'Not
+ executed' tasks don't need to run because their outcome is provided
+ by another task"></span>
{% endif %}
</h2>
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="To make builds more efficient, the build system detects changes in the 'inputs' to a given task by creating a 'task signature'. If the signature changes, the build system assumes the inputs have changed and the task needs to be rerun"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="To make builds more
+ efficient, the build system detects changes in the 'inputs' to a
+ given task by creating a 'task signature'. If the signature changes,
+ the build system assumes the inputs have changed and the task needs to be
+rerun"></span>
Task inputs signature
</dt>
<dd>
{{task.sstate_checksum}}
</dd>
-</dl>
{% if task.sstate_result != task.SSTATE_NA %}
+ </dl>
<div class="alert alert-info">Attempting to restore output from sstate cache
- <i class="icon-question-sign get-help get-help-blue" title="The build system is searching for the task output in your <code>sstate-cache</code> directory and mirrors. If the build system finds the task output, it will reuse it instead of building it from scratch by running the real task. Reusing the task output makes the build faster"></i>
+ <span class="glyphicon glyphicon-question-sign get-help
+ get-help-blue" title="The build system is searching for the
+ task output in your <code>sstate-cache</code> directory and
+ mirrors. If the build system finds the task output, it will reuse it
+ instead of building it from scratch by running the real task. Reusing the
+ task output makes the build faster"></span>
</div>
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="The name of the file searched for in your <code>sstate-cache</code> directory and mirrors"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The name of the
+ file searched for in your <code>sstate-cache</code>
+ directory and mirrors"></span>
File searched for
</dt>
<dd><code>{{task.path_to_sstate_obj}}</code></dd>
<dt>
- <i class="icon-question-sign get-help" title="The locations searched for the above file (i.e. your <code>sstate-cache</code> directory and any mirrors you have set up)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The locations
+ searched for the above file (i.e. your
+ <code>sstate-cache</code> directory and any mirrors you have
+ set up)"></span>
URI(s) searched
</dt>
- <dd><ul>{% for uri in uri_list %}<li><code>{{uri}}</code></li>{% endfor %}</ul></dd>
+ <dd><ul class="list-unstyled">{% for uri in uri_list %}<li><code>{{uri}}</code></li>{% endfor %}</ul></dd>
</dl>
{% endif %}
{% if task.sstate_result == task.SSTATE_MISS %}
@@ -176,7 +233,7 @@
<strong>File not in sstate cache.</strong> Running the real task instead.
</div>
{% elif task.sstate_result == task.SSTATE_FAILED%}
- <div class="alert">
+ <div class="alert alert-warning">
<strong>Failed</strong> to restore output from sstate cache. The file was found but could not be unpacked.
</div>
<dl class="dl-horizontal">
@@ -192,13 +249,16 @@
{% endif %}
<dl class="dl-horizontal">
<dt>
- <i class="icon-question-sign get-help" title="The running sequence of each task in the build"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="The
+ running sequence of each task in the build"></span>
Task order
</dt>
- <dd><a href="{%url "tasks_task" build.pk task.order %}#{{task.order}}">{{task.order}}</a></dd>
+ <dd><a href="{%url "tasks" build.pk %}?page={{task_in_tasks_table_pg}}&limit=25#task-{{task.order}}">{{task.order}}</a></dd>
{% if task.task_executed %}
<dt>
- <i class="icon-question-sign get-help" title="Indicates if this task executes a Python or Shell function(s)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help"
+ title="Indicates if this task executes a Python or Shell
+ function(s)"></span>
Task script type
</dt>
<dd>{{task.get_script_type_display}}</dd>
@@ -211,29 +271,31 @@
<dd><code>{{task.source_url}}</code></dd>
-->
<dt>
- <i class="icon-question-sign get-help" title="Task dependency chain (i.e. other tasks)"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Task dependency chain
+ (i.e. other tasks)"></span>
Dependencies
</dt>
<dd>
- <ul>
- {% for dep in deps %}
- <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
- {% empty %}
- <li class="muted">This task has no dependencies</li>
- {% endfor %}
+ <ul class="list-unstyled">
+ {% for dep in deps %}
+ <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
+ {% empty %}
+ <li class="text-muted" style="margin-bottom: -10px;">This task has no dependencies</li>
+ {% endfor %}
</ul>
</dd>
<dt>
- <i class="icon-question-sign get-help" title="Tasks that depend on this task"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Tasks that depend on this
+ task"></span>
Reverse dependencies
</dt>
<dd>
- <ul>
- {% for dep in rdeps %}
- <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
- {% empty %}
- <li class="muted">This task has no reverse dependencies</li>
- {% endfor %}
+ <ul class="list-unstyled">
+ {% for dep in rdeps %}
+ <li><a href="{%url 'task' dep.build.pk dep.pk%}" class="task-info" title="{{dep.get_executed_display}} | {{dep.get_outcome_display}}">{{dep.recipe.name}}_{{dep.recipe.version}} <span class="task-name">{{dep.task_name}}</span></a></li>
+ {% empty %}
+ <li class="text-muted">This task has no reverse dependencies</li>
+ {% endfor %}
</ul>
</dl>
@@ -244,28 +306,36 @@
<dl class="dl-horizontal">
{% if task.elapsed_time %}
<dt>
- <i class="icon-question-sign get-help" title="How long it took the task to finish in seconds"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="How
+ long it took the task to finish in seconds"></span>
Time (secs)
</dt>
<dd>{{task.elapsed_time|format_none_and_zero|floatformat:2}}</dd>
{% endif %}
{% if task.cpu_time_user > 0 %}
<dt>
- <i class="icon-question-sign get-help" title="Total amount of time spent executing in user mode, in seconds. Note that this time can be greater than the task time due to parallel execution."></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Total amount of time
+ spent executing in user mode, in seconds. Note that this time
+ can be greater than the task time due to parallel
+ execution."></span>
User CPU time (secs)
</dt>
<dd>{{task.cpu_time_user|format_none_and_zero|floatformat:2}}</dd>
{% endif %}
{% if task.cpu_time_system > 0 %}
<dt>
- <i class="icon-question-sign get-help" title="Total amount of time spent executing in kernel mode, in seconds. Note that this time can be greater than the task time due to parallel execution."></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Total amount of time
+ spent executing in kernel mode, in seconds. Note that this time
+ can be greater than the task time due to parallel
+ execution."></span>
System CPU time (secs)
</dt>
<dd>{{task.cpu_time_system|format_none_and_zero|floatformat:2}}</dd>
{% endif %}
{% if task.disk_io > 0 %}
<dt>
- <i class="icon-question-sign get-help" title="Number of bytes written to and read from the disk during the task"></i>
+ <span class="glyphicon glyphicon-question-sign get-help" title="Number of bytes
+ written to and read from the disk during the task"></span>
Disk I/O (bytes)
</dt>
<dd>{{task.disk_io|format_none_and_zero|intcomma}}</dd>
@@ -273,5 +343,6 @@
</dl>
</div>
+
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/tasks.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/tasks.html
deleted file mode 100644
index 84bc10386..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/tasks.html
+++ /dev/null
@@ -1,143 +0,0 @@
-{% extends "basebuildpage.html" %}
-{% load humanize %}
-{% load projecttags %}
-
-{% block title %} {{mainheading}} - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster{% endblock %}
-{% block localbreadcrumb %}
-<li>{{mainheading}}</li>
-{% endblock %}
-
-{% block nav-tasks %}
- {% if 'Tasks' == mainheading %}
- <li class="active"><a href="{% url 'tasks' build.pk %}">Tasks</a></li>
- {% else %}
- <li><a href="{% url 'tasks' build.pk %}">Tasks</a></li>
- {% endif %}
-{% endblock %}
-{% block nav-buildtime %}
- {% if 'Time' == mainheading %}
- <li class="active"><a href="{% url 'buildtime' build.pk %}">Time</a></li>
- {% else %}
- <li><a href="{% url 'buildtime' build.pk %}">Time</a></li>
- {% endif %}
-{% endblock %}
-
-{% block nav-cputime %}
- {% if 'CPU time' == mainheading %}
- <li class="active"><a href="{% url 'cputime' build.pk %}">CPU time</a></li>
- {% else %}
- <li><a href="{% url 'cputime' build.pk %}">CPU time</a></li>
- {% endif %}
-{% endblock %}
-
-{% block nav-diskio %}
- {% if 'Disk I/O' == mainheading %}
- <li class="active"><a href="{% url 'diskio' build.pk %}">Disk I/O</a></li>
- {% else %}
- <li><a href="{% url 'diskio' build.pk %}">Disk I/O</a></li>
- {% endif %}
-{% endblock %}
-
-{% block buildinfomain %}
-<div class="span10">
-{% if not request.GET.filter and not request.GET.search and not objects.paginator.count %}
- <!-- Empty - no data in database -->
- <div class="page-header">
- <h1>{{mainheading}}</h1>
- </div>
- <div class="alert alert-info lead">
- No data was recorded for this build.
- </div>
-
-{% else %}
-
- <div class="page-header">
- <h1>
- {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
- {{objects.paginator.count}} task{{objects.paginator.count|pluralize}} found
- {%elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
- No tasks found
- {%else%}
- {{mainheading}}
- {%endif%}
- </h1>
- </div>
-
- {% if objects.paginator.count == 0 %}
- <div class="row-fluid">
- <div class="alert">
- <form class="no-results input-append" id="searchform">
- <input id="search" name="search" class="input-xxlarge" type="text" value="{{request.GET.search}}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
- <button class="btn" type="submit" value="Search">Search</button>
- <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all tasks</button>
- </form>
- </div>
- </div>
-
-
- {% else %}
- {% include "basetable_top.html" %}
-
- {% for task in objects %}
- <tr {{ task|task_color }} id="{{task.order}}">
- <td class="order">
- <a href="{%url "task" build.pk task.pk%}">{{task.order}}</a>
- </td>
- <td class="recipe_name" >
- <a href="{% url "recipe" build.pk task.recipe.pk %}">{{task.recipe.name}}</a>
- </td>
- <td class="recipe_version">
- <a href="{% url "recipe" build.pk task.recipe.pk %}">{{task.recipe.version}}</a>
- </td>
- <td class="task_name">
- <a href="{%url "task" build.pk task.pk%}">{{task.task_name}}</a> {% if task.get_description %}<i class="icon-question-sign get-help hover-help" title="{{task.get_description}}"></i> {% endif %}
- </td>
- <td class="executed">
- <a href="{%url "task" build.pk task.pk%}">{{task.get_executed_display}}</a>
- </td>
- <td class="outcome">
- <a href="{%url "task" build.pk task.pk%}">{{task.get_outcome_display}} </a>
- {% if task.outcome = task.OUTCOME_FAILED %}
- <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
- <i class="icon-download-alt" title="Download task log file"></i>
- </a>
- {% endif %}
- <i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
- </td>
- <td class="cache_attempt">
- <a href="{%url "task" build.pk task.pk%}">{{task.get_sstate_result_display|format_none_and_zero}}</a>
- </td>
- <td class="time_taken">
- {{task.elapsed_time|format_none_and_zero|floatformat:2}}
- </td>
- <td class="cpu_time_system">
- {{task.cpu_time_system|format_none_and_zero|floatformat:2}}
- </td>
- <td class="cpu_time_user">
- {{task.cpu_time_user|format_none_and_zero|floatformat:2}}
- </td>
- <td class="disk_io">
- {{task.disk_io|format_none_and_zero|intcomma}}
- </td>
-
- </tr>
- {% endfor %}
-
- {% include "basetable_bottom.html" %}
- {% endif %} {# objects.paginator.count #}
-{% endif %} {# empty #}
-</div>
-
-<script type="text/javascript">
-
- $(document).ready(function() {
- // highlight heading on the column for the field used for ordering
- if (location.href.search('#') > -1) {
- var task_order = location.href.split('#')[1];
- $("#" + task_order).addClass("highlight");
- }
- });
-
-</script>
-
-{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-filter.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-filter.html
index 4d28793bf..25eef52a3 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-filter.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-filter.html
@@ -1,20 +1,24 @@
<!-- filter modal -->
-<div id="filter-modal-{{table_name}}" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="false">
- <form id="filter-modal-form-{{table_name}}" style="margin-bottom: 0px">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
- <h3 id="filter-modal-title-{{table_name}}">&nbsp;</h3>
- </div>
- <div class="modal-body">
- <p>Show:</p>
- <span id="filter-actions-{{table_name}}"></span>
- </div>
- <div class="modal-footer">
- <button class="btn btn-primary" type="submit" data-role="filter-apply">
+<div id="filter-modal-{{table_name}}" class="modal fade" tabindex="-1" role="dialog" aria-hidden="false">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
+ <h3 id="filter-modal-title-{{table_name}}">&nbsp;</h3>
+ </div>
+ <div class="modal-body">
+ <form id="filter-modal-form-{{table_name}}" style="margin-bottom: 0px">
+ <p>Show:</p>
+ <span id="filter-actions-{{table_name}}"></span>
+ </div>
+ <div class="modal-footer">
+ <button class="btn btn-primary" type="submit" data-role="filter-apply">
Apply
- </button>
+ </button>
+ </div>
+ </form>
</div>
- </form>
+ </div>
</div>
<button id="clear-filter-btn-{{table_name}}" style="display:none"></button>
<!-- end filter modal -->
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-simple.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-simple.html
index 212318bc5..56cd2ce37 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-simple.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable-simple.html
@@ -26,37 +26,38 @@
{% include 'toastertable-filter.html' %}
-<div class="row-fluid" id="no-results-{{table_name}}" style="display:none">
- <div class="alert">
- <form class="no-results input-append">
- <input class="input-xlarge" id="new-search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>
- <a href="#" class="add-on btn remove-search-btn-{{table_name}}" tabindex="-1">
- <i class="icon-remove"></i>
- </a>
- <button class="btn search-submit-{{table_name}}" >Search</button>
- <button class="btn btn-link remove-search-btn-{{table_name}}">Show {{title|lower}}
- </button>
+<div id="no-results-{{table_name}}" style="display:none">
+ <div class="alert alert-warning">
+ <form class="no-results form-inline">
+ <div class="form-group">
+ <div class="btn-group">
+ <input class="form-control" id="new-search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>
+ <span class="remove-search-btn-{{table_name}} glyphicon glyphicon-remove-circle" tabindex="-1"></span>
+ </div>
+ </div>
+ <button class="btn btn-default search-submit-{{table_name}}">Search</button>
+ <button class="btn btn-link remove-search-btn-{{table_name}}">Show all {{title|lower}}</button>
</form>
</div>
</div>
<div id="table-container-{{table_name}}" style="visibility: hidden">
<!-- control header -->
- <div class="row-fluid" id="table-chrome-{{table_name}}">
- <div class="navbar-search input-append pull-left">
-
- <input class="input-xlarge" id="search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>
- <a href="#" style="display:none" class="add-on btn remove-search-btn-{{table_name}}" tabindex="-1">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" id="search-submit-{{table_name}}" >Search</button>
- </div>
-
- <div class="pull-right">
+ <div id="table-chrome-{{table_name}}">
+ <div class="container-fluid detail-page-contols">
+ <form class="navbar-form navbar-left">
+ <div class="form-group">
+ <div class="btn-group">
+ <input class="form-control" id="search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>
+ <span href="#" style="display:none" class="remove-search-btn-{{table_name}} glyphicon glyphicon-remove-circle" tabindex="-1"></span>
+ </div>
+ </div>
+ <button class="btn btn-default" id="search-submit-{{table_name}}" >Search</button>
+ </form>
- <div style="display:inline">
- <span class="divider-vertical"></span>
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize-{{table_name}}">
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="form-control pagesize-{{table_name}}">
{% with "10 25 50 100 150" as list%}
{% for i in list.split %}
<option value="{{i}}">{{i}}</option>
@@ -64,31 +65,36 @@
{% endwith %}
</select>
</div>
- </div>
+ </form>
+ </div>
</div>
<!-- The actual table -->
- <table class="table table-bordered table-hover tablesorter" id="{{table_name}}">
- <thead>
- <tr><th></th></tr>
- </thead>
- <tbody></tbody>
- </table>
+ <div class="table-responsive">
+ <table class="table table-bordered table-hover" id="{{table_name}}">
+ <thead>
+ <tr><th></th></tr>
+ </thead>
+ <tbody></tbody>
+ </table>
+ </div>
<!-- Pagination controls -->
- <div class="pagination pagination-centered" id="pagination-{{table_name}}">
- <ul class="pagination" style="display: block-inline">
+ <div id="pagination-{{table_name}}">
+ <ul class="pagination">
</ul>
- <div class="pull-right">
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize-{{table_name}}">
- {% with "10 25 50 100 150" as list%}
- {% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
- {% endfor %}
- {% endwith %}
- </select>
- </div>
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="form-control pagesize-{{table_name}}">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ <option value="{{i}}">{{i}}</option>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </form>
</div>
</div>
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable.html
index 21c3d36c7..aa148955e 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/toastertable.html
@@ -25,14 +25,20 @@
{% include 'toastertable-filter.html' %}
-<div class="row-fluid" id="no-results-{{table_name}}" style="display:none">
- <div class="alert">
- <form class="no-results input-append">
- <input class="input-xxlarge" id="new-search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{%if request.GET.search %}{{request.GET.search}}{%endif%}"/>
- <a href="#" class="add-on btn remove-search-btn-{{table_name}}" tabindex="-1">
- <i class="icon-remove"></i>
- </a>
- <button class="btn search-submit-{{table_name}}">
+<div class="row-fluid" id="empty-state-{{table_name}}" style="display:none">
+ <div class="alert alert-info">{{empty_state|safe}}</div>
+</div>
+
+<div id="no-results-{{table_name}}" style="display:none">
+ <div class="alert alert-warning">
+ <form class="form-inline">
+ <div class="form-group">
+ <div class="btn-group">
+ <input class="form-control" id="new-search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{%if request.GET.search %}{{request.GET.search}}{%endif%}"/>
+ <span class="remove-search-btn-{{table_name}} glyphicon glyphicon-remove-circle" tabindex="-1"></a>
+ </div>
+ </div>
+ <button class="btn btn-default search-submit-{{table_name}}">
Search
</button>
<button class="btn btn-link show-all-{{table_name}} remove-search-btn-{{table_name}}">
@@ -44,62 +50,76 @@
<div id="table-container-{{table_name}}" style="visibility: hidden">
<!-- control header -->
- <div class="navbar" id="table-chrome-{{table_name}}">
- <div class="navbar-inner">
- <div class="navbar-search input-append pull-left span6">
-
- <input id="search-input-{{table_name}}" name="search" type="text" placeholder="Search {{title|lower}}" value="{%if request.GET.search%}{{request.GET.search}}{%endif%}"/>
- <a href="#" style="display:none" class="add-on btn remove-search-btn-{{table_name}}" tabindex="-1">
- <i class="icon-remove"></i>
- </a>
- <button class="btn" id="search-submit-{{table_name}}" >Search</button>
+ <div class="navbar navbar-default" id="table-chrome-{{table_name}}">
+ <div class="container-fluid">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#table-chrome-collapse-{{table_name}}" aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
</div>
-
- <div class="pull-right">
- <div class="btn-group">
- <button id="edit-columns-button" class="btn dropdown-toggle" data-toggle="dropdown">Edit columns
+ <div class="collapse navbar-collapse" id="table-chrome-collapse-{{table_name}}">
+ <form class="navbar-form navbar-left">
+ <div class="form-group">
+ <div class="btn-group">
+ <input id="search-input-{{table_name}}" class="form-control" name="search" type="text" placeholder="Search {{title|lower}}" value="{%if request.GET.search%}{{request.GET.search}}{%endif%}"/>
+ <span class="remove-search-btn-{{table_name}} glyphicon glyphicon-remove-circle" tabindex="-1" style="display:none;">
+ </div>
+ </div>
+ <button class="btn btn-default" id="search-submit-{{table_name}}" >Search</button>
+ </form>
+ <form class="navbar-form navbar-right">
+ <div clas="form-group">
+ <label>Show rows:</label>
+ <select class="form-control pagesize-{{table_name}}">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ <option value="{{i}}">{{i}}</option>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </form>
+ <div class="btn-group navbar-right">
+ <button id="edit-columns-button" class="btn btn-default navbar-btn dropdown-toggle" data-toggle="dropdown">Edit columns
<span class="caret"></span>
</button>
<ul class="dropdown-menu editcol">
</ul>
</div>
- <div style="display:inline">
- <span class="divider-vertical"></span>
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize-{{table_name}}">
- {% with "10 25 50 100 150" as list%}
- {% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
- {% endfor %}
- {% endwith %}
- </select>
- </div>
</div>
</div>
</div>
<!-- The actual table -->
- <table class="table table-bordered table-hover tablesorter" id="{{table_name}}">
- <thead>
- <tr><th></th></tr>
- </thead>
- <tbody></tbody>
- </table>
+ <div class="table-responsive">
+ <table class="table table-bordered table-hover" id="{{table_name}}">
+ <thead>
+ <tr><th></th></tr>
+ </thead>
+ <tbody></tbody>
+ </table>
+ </div>
<!-- Pagination controls -->
- <div class="pagination pagination-centered" id="pagination-{{table_name}}">
- <ul class="pagination" style="display: block-inline">
+ <div id="pagination-{{table_name}}">
+ <ul class="pagination">
</ul>
- <div class="pull-right">
- <span class="help-inline" style="padding-top:5px;">Show rows:</span>
- <select style="margin-top:5px;margin-bottom:0px;" class="pagesize-{{table_name}}">
- {% with "10 25 50 100 150" as list%}
- {% for i in list.split %}
- <option value="{{i}}">{{i}}</option>
- {% endfor %}
- {% endwith %}
- </select>
- </div>
+ <form class="navbar-form navbar-right">
+ <div class="form-group">
+ <label>Show rows:</label>
+ <select class="form-control pagesize-{{table_name}}">
+ {% with "10 25 50 100 150" as list%}
+ {% for i in list.split %}
+ <option value="{{i}}">{{i}}</option>
+ {% endfor %}
+ {% endwith %}
+ </select>
+ </div>
+ </form>
</div>
-</div>
+
+</div> <!--end table container -->
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html
index 2d3d02c2e..fc77e405f 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/unavailable_artifact.html
@@ -6,10 +6,12 @@
{% block title %} Build artifact does not exist - Toaster {% endblock %}
{% block pagecontent %}
- <div class="row-fluid air">
- <div class="alert alert-info span8 lead">
- <p>The build artifact you are trying to download does not exist.</p>
- <p><a href="javascript:window.history.back()">Back to previous page</a></p>
+ <div class="row">
+ <div class="col-md-8">
+ <div class="alert alert-info lead top-air">
+ <p>The build artifact you are trying to download does not exist.</p>
+ <p><a href="javascript:window.history.back()">Back to previous page</a></p>
+ </div>
</div>
</div>
{% endblock %}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py
new file mode 100644
index 000000000..5a73af797
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/field_values_filter.py
@@ -0,0 +1,18 @@
+from django import template
+
+register = template.Library()
+
+def field_values(iterable, field):
+ """
+ Convert an iterable of models into a list of strings, one for each model,
+ where the string for each model is the value of the field "field".
+ """
+ objects = []
+
+ if field:
+ for item in iterable:
+ objects.append(getattr(item, field))
+
+ return objects
+
+register.filter('field_values', field_values) \ No newline at end of file
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
index 75f2261be..b170a1616 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templatetags/projecttags.py
@@ -90,7 +90,7 @@ def whitespace_space_filter(value, arg):
def divide(value, arg):
if int(arg) == 0:
return -1
- return int(value) / int(arg)
+ return int(value) // int(arg)
@register.filter
def multiply(value, arg):
@@ -112,11 +112,11 @@ def task_color(task_object, show_green=False):
show_green argument should be True to get green color.
"""
if not task_object.task_executed:
- return 'class=muted'
+ return 'class=text-muted'
elif task_object.outcome == task_object.OUTCOME_FAILED:
- return 'class=error'
+ return 'class=text-danger'
elif task_object.outcome == task_object.OUTCOME_SUCCESS and show_green:
- return 'class=green'
+ return 'class=text-success'
else:
return ''
@@ -250,15 +250,15 @@ from django.utils.safestring import mark_safe
@register.filter
def format_vpackage_rowclass(size):
if size == -1:
- return mark_safe('class="muted"')
+ return mark_safe('class="text-muted"')
return ''
@register.filter
def format_vpackage_namehelp(name):
r = name + '&nbsp;'
- r += '<i class="icon-question-sign get-help hover-help"'
+ r += '<span class="glyphicon glyphicon-question-sign get-help hover-help"'
r += ' title = "' + name + ' has not been built">'
- r += '</i>'
+ r += '</span>'
return mark_safe(r)
@register.filter
@@ -271,14 +271,6 @@ def get_dict_value(dictionary, key):
return ''
@register.filter
-def format_build_date(completed_on):
- now = timezone.now()
- delta = now - completed_on
-
- if delta.days >= 1:
- return True
-
-@register.filter
def is_shaid(text):
""" return True if text length is 40 characters and all hex-digits
"""
@@ -297,3 +289,11 @@ def cut_path_prefix(fullpath, prefixes):
if fullpath.startswith(prefix):
return relpath(fullpath, prefix)
return fullpath
+
+
+@register.filter
+def for_target(package_dependencies, target):
+ """ filter the dependencies to be displayed by the supplied target
+ if no dependences are found for the target then return the predicted
+ dependences"""
+ return package_dependencies.for_target_or_none(target)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tests.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tests.py
index a4cab5848..2b5894f74 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tests.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/tests.py
@@ -25,12 +25,13 @@ from django.test import TestCase
from django.test.client import RequestFactory
from django.core.urlresolvers import reverse
from django.utils import timezone
+from django.db.models import Q
from orm.models import Project, Release, BitbakeVersion, Package, LogMessage
-from orm.models import ReleaseLayerSourcePriority, LayerSource, Layer, Build
+from orm.models import LayerSource, Layer, Build
from orm.models import Layer_Version, Recipe, Machine, ProjectLayer, Target
from orm.models import CustomImageRecipe, ProjectVariable
-from orm.models import Branch, CustomImagePackage
+from orm.models import CustomImagePackage
import toastermain
import inspect
@@ -57,7 +58,6 @@ class ViewTests(TestCase):
self.project = Project.objects.first()
self.recipe1 = Recipe.objects.get(pk=2)
- self.recipe2 = Recipe.objects.last()
self.customr = CustomImageRecipe.objects.first()
self.cust_package = CustomImagePackage.objects.first()
self.package = Package.objects.first()
@@ -77,14 +77,18 @@ class ViewTests(TestCase):
self.assertEqual(response.status_code, 200)
self.assertTrue(response['Content-Type'].startswith('application/json'))
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertTrue("error" in data)
self.assertEqual(data["error"], "ok")
self.assertTrue("rows" in data)
- self.assertTrue(self.project.name in [x["name"] for x in data["rows"]])
- self.assertTrue("id" in data["rows"][0])
+ name_found = False
+ for row in data["rows"]:
+ name_found = row['name'].find(self.project.name)
+
+ self.assertTrue(name_found,
+ "project name not found in projects table")
def test_typeaheads(self):
"""Test typeahead ReST API"""
@@ -102,7 +106,7 @@ class ViewTests(TestCase):
self.assertEqual(response.status_code, 200)
self.assertTrue(response['Content-Type'].startswith('application/json'))
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertTrue("error" in data)
self.assertEqual(data["error"], "ok")
@@ -145,34 +149,34 @@ class ViewTests(TestCase):
def test_xhr_import_layer(self):
"""Test xhr_importlayer API"""
- LayerSource.objects.create(sourcetype=LayerSource.TYPE_IMPORTED)
#Test for importing an already existing layer
args = {'vcs_url' : "git://git.example.com/test",
'name' : "base-layer",
'git_ref': "c12b9596afd236116b25ce26dbe0d793de9dc7ce",
'project_id': self.project.id,
+ 'local_source_dir': "",
'dir_path' : "/path/in/repository"}
response = self.client.post(reverse('xhr_importlayer'), args)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertEqual(response.status_code, 200)
self.assertEqual(data["error"], "ok")
#Test to verify import of a layer successful
args['name'] = "meta-oe"
response = self.client.post(reverse('xhr_importlayer'), args)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertTrue(data["error"], "ok")
#Test for html tag in the data
args['<'] = "testing html tag"
response = self.client.post(reverse('xhr_importlayer'), args)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertNotEqual(data["error"], "ok")
#Empty data passed
args = {}
response = self.client.post(reverse('xhr_importlayer'), args)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertNotEqual(data["error"], "ok")
def test_custom_ok(self):
@@ -182,7 +186,7 @@ class ViewTests(TestCase):
'base': self.recipe1.id}
response = self.client.post(url, params)
self.assertEqual(response.status_code, 200)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertEqual(data['error'], 'ok')
self.assertTrue('url' in data)
# get recipe from the database
@@ -198,7 +202,7 @@ class ViewTests(TestCase):
{'name': 'custom', 'project': self.project.id}]:
response = self.client.post(url, params)
self.assertEqual(response.status_code, 200)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertNotEqual(data["error"], "ok")
def test_xhr_custom_wrong_project(self):
@@ -207,7 +211,7 @@ class ViewTests(TestCase):
params = {'name': 'custom', 'project': 0, "base": self.recipe1.id}
response = self.client.post(url, params)
self.assertEqual(response.status_code, 200)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertNotEqual(data["error"], "ok")
def test_xhr_custom_wrong_base(self):
@@ -216,7 +220,7 @@ class ViewTests(TestCase):
params = {'name': 'custom', 'project': self.project.id, "base": 0}
response = self.client.post(url, params)
self.assertEqual(response.status_code, 200)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
self.assertNotEqual(data["error"], "ok")
def test_xhr_custom_details(self):
@@ -231,7 +235,7 @@ class ViewTests(TestCase):
'project_id': self.project.id,
}
}
- self.assertEqual(json.loads(response.content), expected)
+ self.assertEqual(json.loads(response.content.decode('utf-8')), expected)
def test_xhr_custom_del(self):
"""Test deleting custom recipe"""
@@ -244,12 +248,18 @@ class ViewTests(TestCase):
url = reverse('xhr_customrecipe_id', args=(recipe.id,))
response = self.client.delete(url)
self.assertEqual(response.status_code, 200)
- self.assertEqual(json.loads(response.content), {"error": "ok"})
+
+ gotoUrl = reverse('projectcustomimages', args=(self.project.pk,))
+
+ self.assertEqual(json.loads(response.content.decode('utf-8')),
+ {"error": "ok",
+ "gotoUrl": gotoUrl})
+
# try to delete not-existent recipe
url = reverse('xhr_customrecipe_id', args=(recipe.id,))
response = self.client.delete(url)
self.assertEqual(response.status_code, 200)
- self.assertNotEqual(json.loads(response.content)["error"], "ok")
+ self.assertNotEqual(json.loads(response.content.decode('utf-8'))["error"], "ok")
def test_xhr_custom_packages(self):
"""Test adding and deleting package to a custom recipe"""
@@ -259,7 +269,7 @@ class ViewTests(TestCase):
self.cust_package.id)))
self.assertEqual(response.status_code, 200)
- self.assertEqual(json.loads(response.content),
+ self.assertEqual(json.loads(response.content.decode('utf-8')),
{"error": "ok"})
self.assertEqual(self.customr.appends_set.first().name,
self.cust_package.name)
@@ -270,7 +280,7 @@ class ViewTests(TestCase):
response = self.client.delete(del_url)
self.assertEqual(response.status_code, 200)
- self.assertEqual(json.loads(response.content), {"error": "ok"})
+ self.assertEqual(json.loads(response.content.decode('utf-8')), {"error": "ok"})
all_packages = self.customr.get_all_packages().values_list('pk',
flat=True)
@@ -282,7 +292,7 @@ class ViewTests(TestCase):
response = self.client.delete(del_url)
self.assertEqual(response.status_code, 200)
- self.assertNotEqual(json.loads(response.content)["error"], "ok")
+ self.assertNotEqual(json.loads(response.content.decode('utf-8'))["error"], "ok")
def test_xhr_custom_packages_err(self):
"""Test error conditions of xhr_customrecipe_packages"""
@@ -293,51 +303,60 @@ class ViewTests(TestCase):
for method in (self.client.put, self.client.delete):
response = method(url)
self.assertEqual(response.status_code, 200)
- self.assertNotEqual(json.loads(response.content),
+ self.assertNotEqual(json.loads(response.content.decode('utf-8')),
{"error": "ok"})
def test_download_custom_recipe(self):
"""Download the recipe file generated for the custom image"""
# Create a dummy recipe file for the custom image generation to read
- open("/tmp/a_recipe.bb", 'wa').close()
+ open("/tmp/a_recipe.bb", 'a').close()
response = self.client.get(reverse('customrecipedownload',
args=(self.project.id,
self.customr.id)))
self.assertEqual(response.status_code, 200)
-
def test_software_recipes_table(self):
"""Test structure returned for Software RecipesTable"""
table = SoftwareRecipesTable()
request = RequestFactory().get('/foo/', {'format': 'json'})
response = table.get(request, pid=self.project.id)
- data = json.loads(response.content)
+ data = json.loads(response.content.decode('utf-8'))
+
+ recipes = Recipe.objects.filter(Q(is_image=False))
+ self.assertTrue(len(recipes) > 1,
+ "Need more than one software recipe to test "
+ "SoftwareRecipesTable")
+
+ recipe1 = recipes[0]
+ recipe2 = recipes[1]
rows = data['rows']
- row1 = next(x for x in rows if x['name'] == self.recipe1.name)
- row2 = next(x for x in rows if x['name'] == self.recipe2.name)
+ row1 = next(x for x in rows if x['name'] == recipe1.name)
+ row2 = next(x for x in rows if x['name'] == recipe2.name)
self.assertEqual(response.status_code, 200, 'should be 200 OK status')
# check other columns have been populated correctly
- self.assertEqual(row1['name'], self.recipe1.name)
- self.assertEqual(row1['version'], self.recipe1.version)
- self.assertEqual(row1['get_description_or_summary'],
- self.recipe1.description)
- self.assertEqual(row1['layer_version__layer__name'],
- self.recipe1.layer_version.layer.name)
- self.assertEqual(row2['name'], self.recipe2.name)
- self.assertEqual(row2['version'], self.recipe2.version)
- self.assertEqual(row2['get_description_or_summary'],
- self.recipe2.description)
- self.assertEqual(row2['layer_version__layer__name'],
- self.recipe2.layer_version.layer.name)
+ self.assertTrue(recipe1.name in row1['name'])
+ self.assertTrue(recipe1.version in row1['version'])
+ self.assertTrue(recipe1.description in
+ row1['get_description_or_summary'])
+
+ self.assertTrue(recipe1.layer_version.layer.name in
+ row1['layer_version__layer__name'])
+
+ self.assertTrue(recipe2.name in row2['name'])
+ self.assertTrue(recipe2.version in row2['version'])
+ self.assertTrue(recipe2.description in
+ row2['get_description_or_summary'])
+
+ self.assertTrue(recipe2.layer_version.layer.name in
+ row2['layer_version__layer__name'])
def test_toaster_tables(self):
"""Test all ToasterTables instances"""
- current_recipes = self.project.get_available_recipes()
def get_data(table, options={}):
"""Send a request and parse the json response"""
@@ -354,19 +373,36 @@ class ViewTests(TestCase):
'layerid': self.lver.pk,
'recipeid': self.recipe1.pk,
'recipe_id': image_recipe.pk,
- 'custrecipeid': self.customr.pk
- }
+ 'custrecipeid': self.customr.pk,
+ 'build_id': 1,
+ 'target_id': 1}
response = table.get(request, **args)
- return json.loads(response.content)
+ return json.loads(response.content.decode('utf-8'))
+
+ def get_text_from_td(td):
+ """If we have html in the td then extract the text portion"""
+ # just so we don't waste time parsing non html
+ if "<" not in td:
+ ret = td
+ else:
+ ret = BeautifulSoup(td, "html.parser").text
+
+ if len(ret):
+ return "0"
+ else:
+ return ret
# Get a list of classes in tables module
tables = inspect.getmembers(toastergui.tables, inspect.isclass)
+ tables.extend(inspect.getmembers(toastergui.buildtables,
+ inspect.isclass))
for name, table_cls in tables:
# Filter out the non ToasterTables from the tables module
if not issubclass(table_cls, toastergui.widgets.ToasterTable) or \
- table_cls == toastergui.widgets.ToasterTable:
+ table_cls == toastergui.widgets.ToasterTable or \
+ 'Mixin' in name:
continue
# Get the table data without any options, this also does the
@@ -379,8 +415,10 @@ class ViewTests(TestCase):
"Cannot test on a %s table with < 1 row" % name)
if table.default_orderby:
- row_one = all_data['rows'][0][table.default_orderby.strip("-")]
- row_two = all_data['rows'][1][table.default_orderby.strip("-")]
+ row_one = get_text_from_td(
+ all_data['rows'][0][table.default_orderby.strip("-")])
+ row_two = get_text_from_td(
+ all_data['rows'][1][table.default_orderby.strip("-")])
if '-' in table.default_orderby:
self.assertTrue(row_one >= row_two,
@@ -399,28 +437,36 @@ class ViewTests(TestCase):
# If a column is orderable test it in both order
# directions ordering on the columns field_name
ascending = get_data(table_cls(),
- {"orderby" : column['field_name']})
+ {"orderby": column['field_name']})
- row_one = ascending['rows'][0][column['field_name']]
- row_two = ascending['rows'][1][column['field_name']]
+ row_one = get_text_from_td(
+ ascending['rows'][0][column['field_name']])
+ row_two = get_text_from_td(
+ ascending['rows'][1][column['field_name']])
self.assertTrue(row_one <= row_two,
- "Ascending sort applied but row 0 is less "
- "than row 1 %s %s " %
- (column['field_name'], name))
-
+ "Ascending sort applied but row 0: \"%s\""
+ " is less than row 1: \"%s\" "
+ "%s %s " %
+ (row_one, row_two,
+ column['field_name'], name))
descending = get_data(table_cls(),
- {"orderby" :
+ {"orderby":
'-'+column['field_name']})
- row_one = descending['rows'][0][column['field_name']]
- row_two = descending['rows'][1][column['field_name']]
+ row_one = get_text_from_td(
+ descending['rows'][0][column['field_name']])
+ row_two = get_text_from_td(
+ descending['rows'][1][column['field_name']])
self.assertTrue(row_one >= row_two,
- "Descending sort applied but row 0 is "
- "greater than row 1 %s %s" %
- (column['field_name'], name))
+ "Descending sort applied but row 0: %s"
+ "is greater than row 1: %s"
+ "field %s table %s" %
+ (row_one,
+ row_two,
+ column['field_name'], name))
# If the two start rows are the same we haven't actually
# changed the order
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py
index dd4b7f505..4ded9ac2e 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/typeaheads.py
@@ -55,6 +55,7 @@ class LayersTypeAhead(ToasterTypeAhead):
'vcs_url' : layer_version.layer.vcs_url,
'vcs_reference' : vcs_reference,
'detail' : detail,
+ 'local_source_dir' : layer_version.layer.local_source_dir,
}
results.append(needed_fields)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/urls.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/urls.py
index 27b0baabf..ece9ac169 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/urls.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/urls.py
@@ -21,8 +21,10 @@ from django.views.generic import RedirectView, TemplateView
from django.http import HttpResponseBadRequest
from toastergui import tables
+from toastergui import buildtables
from toastergui import typeaheads
from toastergui import api
+from toastergui import widgets
urlpatterns = patterns('toastergui.views',
# landing page
@@ -34,17 +36,28 @@ urlpatterns = patterns('toastergui.views',
# build info navigation
url(r'^build/(?P<build_id>\d+)$', 'builddashboard', name="builddashboard"),
+ url(r'^build/(?P<build_id>\d+)/tasks/$',
+ buildtables.BuildTasksTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='tasks'),
- url(r'^build/(?P<build_id>\d+)/tasks/$', 'tasks', name='tasks'),
- url(r'^build/(?P<build_id>\d+)/tasks/(?P<task_id>\d+)/$', 'tasks_task', name='tasks_task'),
url(r'^build/(?P<build_id>\d+)/task/(?P<task_id>\d+)$', 'task', name='task'),
- url(r'^build/(?P<build_id>\d+)/recipes/$', 'recipes', name='recipes'),
+ url(r'^build/(?P<build_id>\d+)/recipes/$',
+ buildtables.BuiltRecipesTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='recipes'),
+
url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)/active_tab/(?P<active_tab>\d{1})$', 'recipe', name='recipe'),
+
url(r'^build/(?P<build_id>\d+)/recipe/(?P<recipe_id>\d+)$', 'recipe', name='recipe'),
url(r'^build/(?P<build_id>\d+)/recipe_packages/(?P<recipe_id>\d+)$', 'recipe_packages', name='recipe_packages'),
- url(r'^build/(?P<build_id>\d+)/packages/$', 'bpackage', name='packages'),
+ url(r'^build/(?P<build_id>\d+)/packages/$',
+ buildtables.BuiltPackagesTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='packages'),
+
url(r'^build/(?P<build_id>\d+)/package/(?P<package_id>\d+)$', 'package_built_detail',
name='package_built_detail'),
url(r'^build/(?P<build_id>\d+)/package_built_dependencies/(?P<package_id>\d+)$',
@@ -56,17 +69,31 @@ urlpatterns = patterns('toastergui.views',
url(r'^build/(?P<build_id>\d+)/package_included_reverse_dependencies/(?P<target_id>\d+)/(?P<package_id>\d+)$',
'package_included_reverse_dependencies', name='package_included_reverse_dependencies'),
- # images are known as targets in the internal model
- url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', 'target', name='target'),
- url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/targetpkg$', 'targetpkg', name='targetpkg'),
+ url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$',
+ buildtables.InstalledPackagesTable.as_view(
+ template_name="target.html"),
+ name='target'),
+
+
url(r'^dentries/build/(?P<build_id>\d+)/target/(?P<target_id>\d+)$', 'xhr_dirinfo', name='dirinfo_ajax'),
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo$', 'dirinfo', name='dirinfo'),
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/dirinfo_filepath/_(?P<file_path>(?:/[^/\n]+)*)$', 'dirinfo', name='dirinfo_filepath'),
url(r'^build/(?P<build_id>\d+)/configuration$', 'configuration', name='configuration'),
url(r'^build/(?P<build_id>\d+)/configvars$', 'configvars', name='configvars'),
- url(r'^build/(?P<build_id>\d+)/buildtime$', 'buildtime', name='buildtime'),
- url(r'^build/(?P<build_id>\d+)/cputime$', 'cputime', name='cputime'),
- url(r'^build/(?P<build_id>\d+)/diskio$', 'diskio', name='diskio'),
+ url(r'^build/(?P<build_id>\d+)/buildtime$',
+ buildtables.BuildTimeTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='buildtime'),
+
+ url(r'^build/(?P<build_id>\d+)/cputime$',
+ buildtables.BuildCPUTimeTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='cputime'),
+
+ url(r'^build/(?P<build_id>\d+)/diskio$',
+ buildtables.BuildIOTable.as_view(
+ template_name="buildinfo-toastertable.html"),
+ name='diskio'),
# image information dir
url(r'^build/(?P<build_id>\d+)/target/(?P<target_id>\d+)/packagefile/(?P<packagefile_id>\d+)$',
@@ -164,27 +191,47 @@ urlpatterns = patterns('toastergui.views',
name='xhr_configvaredit'),
url(r'^xhr_importlayer/$', 'xhr_importlayer', name='xhr_importlayer'),
- url(r'^xhr_updatelayer/$', 'xhr_updatelayer', name='xhr_updatelayer'),
+
+ url(r'^xhr_layer/(?P<pid>\d+)/(?P<layerversion_id>\d+)$',
+ api.XhrLayer.as_view(),
+ name='xhr_layer'),
# JS Unit tests
url(r'^js-unit-tests/$', 'jsunittests', name='js-unit-tests'),
# image customisation functionality
- url(r'^xhr_customrecipe/(?P<recipe_id>\d+)/packages/(?P<package_id>\d+|)$',
- 'xhr_customrecipe_packages', name='xhr_customrecipe_packages'),
+ url(r'^xhr_customrecipe/(?P<recipe_id>\d+)'
+ '/packages/(?P<package_id>\d+|)$',
+ api.XhrCustomRecipePackages.as_view(),
+ name='xhr_customrecipe_packages'),
url(r'^xhr_customrecipe/(?P<recipe_id>\d+)/packages/$',
- 'xhr_customrecipe_packages', name='xhr_customrecipe_packages'),
+ api.XhrCustomRecipePackages.as_view(),
+ name='xhr_customrecipe_packages'),
- url(r'^xhr_customrecipe/(?P<recipe_id>\d+)$', 'xhr_customrecipe_id',
+ url(r'^xhr_customrecipe/(?P<recipe_id>\d+)$',
+ api.XhrCustomRecipeId.as_view(),
name='xhr_customrecipe_id'),
- url(r'^xhr_customrecipe/', 'xhr_customrecipe',
+
+ url(r'^xhr_customrecipe/',
+ api.XhrCustomRecipe.as_view(),
name='xhr_customrecipe'),
url(r'^xhr_buildrequest/project/(?P<pid>\d+)$',
- api.XhrBuildRequest.as_view(),
+ api.XhrBuildRequest.as_view(),
name='xhr_buildrequest'),
+ url(r'xhr_project/(?P<project_id>\d+)$',
+ api.XhrProject.as_view(),
+ name='xhr_project'),
+
+ url(r'xhr_build/(?P<build_id>\d+)$',
+ api.XhrBuild.as_view(),
+ name='xhr_build'),
+
+ url(r'^mostrecentbuilds$', widgets.MostRecentBuildsView.as_view(),
+ name='most_recent_builds'),
+
# default redirection
url(r'^$', RedirectView.as_view(url='landing', permanent=True)),
)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/views.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/views.py
index bd5bf6334..2efb0fd56 100755
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/views.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/views.py
@@ -19,42 +19,37 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-# pylint: disable=method-hidden
-# Gives E:848, 4: An attribute defined in json.encoder line 162 hides this method (method-hidden)
-# which is an invalid warning
-import operator,re
+import re
-from django.db.models import F, Q, Sum, Count, Max
-from django.db import IntegrityError, Error
+from django.db.models import F, Q, Sum
+from django.db import IntegrityError
from django.shortcuts import render, redirect, get_object_or_404
-from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe, LogMessage, Variable
-from orm.models import Task_Dependency, Recipe_Dependency, Package, Package_File, Package_Dependency
-from orm.models import Target_Installed_Package, Target_File, Target_Image_File, BuildArtifact, CustomImagePackage
+from orm.models import Build, Target, Task, Layer, Layer_Version, Recipe
+from orm.models import LogMessage, Variable, Package_Dependency, Package
+from orm.models import Task_Dependency, Package_File
+from orm.models import Target_Installed_Package, Target_File
+from orm.models import TargetKernelFile, TargetSDKFile, Target_Image_File
from orm.models import BitbakeVersion, CustomImageRecipe
-from bldcontrol import bbcontroller
-from django.views.decorators.cache import cache_control
+
from django.core.urlresolvers import reverse, resolve
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
-from django.http import HttpResponseBadRequest, HttpResponseNotFound
+from django.http import HttpResponseNotFound
from django.utils import timezone
-from django.utils.html import escape
from datetime import timedelta, datetime
-from django.utils import formats
from toastergui.templatetags.projecttags import json as jsonfilter
from decimal import Decimal
import json
import os
from os.path import dirname
-from functools import wraps
-import itertools
import mimetypes
import logging
logger = logging.getLogger("toaster")
+
class MimeTypeFinder(object):
# setting this to False enables additional non-standard mimetypes
# to be included in the guess
@@ -160,7 +155,7 @@ def _lv_to_dict(prj, x = None):
return {"id": x.pk,
"name": x.layer.name,
"tooltip": "%s | %s" % (x.layer.vcs_url,x.get_vcs_reference()),
- "detail": "(%s" % x.layer.vcs_url + (")" if x.up_branch == None else " | "+x.get_vcs_reference()+")"),
+ "detail": "(%s" % x.layer.vcs_url + (")" if x.release == None else " | "+x.get_vcs_reference()+")"),
"giturl": x.layer.vcs_url,
"layerdetailurl" : reverse('layerdetails', args=(prj.id,x.pk)),
"revision" : x.get_vcs_reference(),
@@ -200,16 +195,19 @@ def _verify_parameters(g, mandatory_parameters):
return None
def _redirect_parameters(view, g, mandatory_parameters, *args, **kwargs):
- import urllib
+ try:
+ from urllib import unquote, urlencode
+ except ImportError:
+ from urllib.parse import unquote, urlencode
url = reverse(view, kwargs=kwargs)
params = {}
for i in g:
params[i] = g[i]
for i in mandatory_parameters:
if not i in params:
- params[i] = urllib.unquote(str(mandatory_parameters[i]))
+ params[i] = unquote(str(mandatory_parameters[i]))
- return redirect(url + "?%s" % urllib.urlencode(params), permanent = False, **kwargs)
+ return redirect(url + "?%s" % urlencode(params), permanent = False, **kwargs)
class RedirectException(Exception):
def __init__(self, view, g, mandatory_parameters, *args, **kwargs):
@@ -229,10 +227,18 @@ OR_VALUE_SEPARATOR = "|"
DESCENDING = "-"
def __get_q_for_val(name, value):
- if "OR" in value:
- return reduce(operator.or_, map(lambda x: __get_q_for_val(name, x), [ x for x in value.split("OR") ]))
+ if "OR" in value or "AND" in value:
+ result = None
+ for x in value.split("OR"):
+ x = __get_q_for_val(name, x)
+ result = result | x if result else x
+ return result
if "AND" in value:
- return reduce(operator.and_, map(lambda x: __get_q_for_val(name, x), [ x for x in value.split("AND") ]))
+ result = None
+ for x in value.split("AND"):
+ x = __get_q_for_val(name, x)
+ result = result & x if result else x
+ return result
if value.startswith("NOT"):
value = value[3:]
if value == 'None':
@@ -251,14 +257,18 @@ def _get_filtering_query(filter_string):
and_keys = search_terms[0].split(AND_VALUE_SEPARATOR)
and_values = search_terms[1].split(AND_VALUE_SEPARATOR)
- and_query = []
+ and_query = None
for kv in zip(and_keys, and_values):
or_keys = kv[0].split(OR_VALUE_SEPARATOR)
or_values = kv[1].split(OR_VALUE_SEPARATOR)
- querydict = dict(zip(or_keys, or_values))
- and_query.append(reduce(operator.or_, map(lambda x: __get_q_for_val(x, querydict[x]), [k for k in querydict])))
+ query = None
+ for key, val in zip(or_keys, or_values):
+ x = __get_q_for_val(key, val)
+ query = query | x if query else x
+
+ and_query = and_query & query if and_query else query
- return reduce(operator.and_, [k for k in and_query])
+ return and_query
def _get_toggle_order(request, orderkey, toggle_reverse = False):
if toggle_reverse:
@@ -295,21 +305,24 @@ def _validate_input(field_input, model):
# Check we are looking for a valid field
valid_fields = model._meta.get_all_field_names()
for field in field_input_list[0].split(AND_VALUE_SEPARATOR):
- if not reduce(lambda x, y: x or y, [ field.startswith(x) for x in valid_fields ]):
- return None, (field, [ x for x in valid_fields ])
+ if True in [field.startswith(x) for x in valid_fields]:
+ break
+ else:
+ return None, (field, valid_fields)
return field_input, invalid
# uses search_allowed_fields in orm/models.py to create a search query
# for these fields with the supplied input text
def _get_search_results(search_term, queryset, model):
- search_objects = []
+ search_object = None
for st in search_term.split(" "):
- q_map = map(lambda x: Q(**{x+'__icontains': st}),
- model.search_allowed_fields)
+ queries = None
+ for field in model.search_allowed_fields:
+ query = Q(**{field + '__icontains': st})
+ queries = queries | query if queries else query
- search_objects.append(reduce(operator.or_, q_map))
- search_object = reduce(operator.and_, search_objects)
+ search_object = search_object & queries if search_object else queries
queryset = queryset.filter(search_object)
return queryset
@@ -452,46 +465,58 @@ def builddashboard( request, build_id ):
recipeCount = Recipe.objects.filter( layer_version__id__in = layerVersionId ).count( );
tgts = Target.objects.filter( build_id = build_id ).order_by( 'target' );
- ##
# set up custom target list with computed package and image data
- #
-
- targets = [ ]
+ targets = []
ntargets = 0
- hasImages = False
- targetHasNoImages = False
+
+ # True if at least one target for this build has an SDK artifact
+ # or image file
+ has_artifacts = False
+
for t in tgts:
- elem = { }
- elem[ 'target' ] = t
- if t.is_image:
- hasImages = True
+ elem = {}
+ elem['target'] = t
+
+ target_has_images = False
+ image_files = []
+
npkg = 0
pkgsz = 0
package = None
for package in Package.objects.filter(id__in = [x.package_id for x in t.target_installed_package_set.all()]):
pkgsz = pkgsz + package.size
- if ( package.installed_name ):
+ if package.installed_name:
npkg = npkg + 1
- elem[ 'npkg' ] = npkg
- elem[ 'pkgsz' ] = pkgsz
- ti = Target_Image_File.objects.filter( target_id = t.id )
- imageFiles = [ ]
+ elem['npkg'] = npkg
+ elem['pkgsz'] = pkgsz
+ ti = Target_Image_File.objects.filter(target_id = t.id)
for i in ti:
- ndx = i.file_name.rfind( '/' )
- if ( ndx < 0 ):
+ ndx = i.file_name.rfind('/')
+ if ndx < 0:
ndx = 0;
- f = i.file_name[ ndx + 1: ]
- imageFiles.append({
+ f = i.file_name[ndx + 1:]
+ image_files.append({
'id': i.id,
'path': f,
'size': i.file_size,
'suffix': i.suffix
})
- if t.is_image and (len(imageFiles) <= 0 or len(t.license_manifest_path) <= 0):
- targetHasNoImages = True
- elem[ 'imageFiles' ] = imageFiles
- elem[ 'targetHasNoImages' ] = targetHasNoImages
- targets.append( elem )
+ if len(image_files) > 0:
+ target_has_images = True
+ elem['targetHasImages'] = target_has_images
+
+ elem['imageFiles'] = image_files
+ elem['target_kernel_artifacts'] = t.targetkernelfile_set.all()
+
+ target_sdk_files = t.targetsdkfile_set.all()
+ target_sdk_artifacts_count = target_sdk_files.count()
+ elem['target_sdk_artifacts_count'] = target_sdk_artifacts_count
+ elem['target_sdk_artifacts'] = target_sdk_files
+
+ if target_has_images or target_sdk_artifacts_count > 0:
+ has_artifacts = True
+
+ targets.append(elem)
##
# how many packages in this build - ignore anonymous ones
@@ -508,7 +533,7 @@ def builddashboard( request, build_id ):
context = {
'build' : build,
'project' : build.project,
- 'hasImages' : hasImages,
+ 'hasArtifacts' : has_artifacts,
'ntargets' : ntargets,
'targets' : targets,
'recipecount' : recipeCount,
@@ -578,6 +603,7 @@ def task( request, build_id, task_id ):
'log_body' : log_body,
'showing_matches' : False,
'uri_list' : uri_list,
+ 'task_in_tasks_table_pg': int(task_object.order / 25) + 1
}
if request.GET.get( 'show_matches', "" ):
context[ 'showing_matches' ] = True
@@ -662,175 +688,6 @@ def recipe_packages(request, build_id, recipe_id):
_set_parameters_values(pagesize, orderby, request)
return response
-def target_common( request, build_id, target_id, variant ):
- template = "target.html"
- default_orderby = 'name:+'
-
- (pagesize, orderby) = _get_parameters_values(request, 25, default_orderby)
- mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby': orderby }
- retval = _verify_parameters( request.GET, mandatory_parameters )
- if retval:
- return _redirect_parameters(
- variant, request.GET, mandatory_parameters,
- build_id = build_id, target_id = target_id )
- ( filter_string, search_term, ordering_string ) = _search_tuple( request, Package )
-
- # FUTURE: get rid of nested sub-queries replacing with ManyToMany field
- queryset = Package.objects.filter(
- size__gte = 0,
- id__in = Target_Installed_Package.objects.filter(
- target_id=target_id ).values( 'package_id' ))
- packages_sum = queryset.aggregate( Sum( 'installed_size' ))
- queryset = _get_queryset(
- Package, queryset, filter_string, search_term, ordering_string, 'name' )
- queryset = queryset.select_related("recipe", "recipe__layer_version", "recipe__layer_version__layer")
- packages = _build_page_range( Paginator(queryset, pagesize), request.GET.get( 'page', 1 ))
-
- build = Build.objects.get( pk = build_id )
-
- # bring in package dependencies
- for p in packages.object_list:
- p.runtime_dependencies = p.package_dependencies_source.filter(
- target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("depends_on")
- p.reverse_runtime_dependencies = p.package_dependencies_target.filter(
- target_id = target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS ).select_related("package")
- tc_package = {
- 'name' : 'Package',
- 'qhelp' : 'Packaged output resulting from building a recipe included in this image',
- 'orderfield' : _get_toggle_order( request, "name" ),
- 'ordericon' : _get_toggle_order_icon( request, "name" ),
- }
- tc_packageVersion = {
- 'name' : 'Package version',
- 'qhelp' : 'The package version and revision',
- }
- tc_size = {
- 'name' : 'Size',
- 'qhelp' : 'The size of the package',
- 'orderfield' : _get_toggle_order( request, "size", True ),
- 'ordericon' : _get_toggle_order_icon( request, "size" ),
- 'orderkey' : 'size',
- 'clclass' : 'size',
- 'dclass' : 'span2',
- }
- if ( variant == 'target' ):
- tc_size[ "hidden" ] = 0
- else:
- tc_size[ "hidden" ] = 1
- tc_sizePercentage = {
- 'name' : 'Size over total (%)',
- 'qhelp' : 'Proportion of the overall size represented by this package',
- 'clclass' : 'size_over_total',
- 'hidden' : 1,
- }
- tc_license = {
- 'name' : 'License',
- 'qhelp' : 'The license under which the package is distributed. Separate license names u\
-sing | (pipe) means there is a choice between licenses. Separate license names using & (ampersand) m\
-eans multiple licenses exist that cover different parts of the source',
- 'orderfield' : _get_toggle_order( request, "license" ),
- 'ordericon' : _get_toggle_order_icon( request, "license" ),
- 'orderkey' : 'license',
- 'clclass' : 'license',
- }
- if ( variant == 'target' ):
- tc_license[ "hidden" ] = 1
- else:
- tc_license[ "hidden" ] = 0
- tc_dependencies = {
- 'name' : 'Dependencies',
- 'qhelp' : "Package runtime dependencies (other packages)",
- 'clclass' : 'depends',
- }
- if ( variant == 'target' ):
- tc_dependencies[ "hidden" ] = 0
- else:
- tc_dependencies[ "hidden" ] = 1
- tc_rdependencies = {
- 'name' : 'Reverse dependencies',
- 'qhelp' : 'Package run-time reverse dependencies (i.e. which other packages depend on this package',
- 'clclass' : 'brought_in_by',
- }
- if ( variant == 'target' ):
- tc_rdependencies[ "hidden" ] = 0
- else:
- tc_rdependencies[ "hidden" ] = 1
- tc_recipe = {
- 'name' : 'Recipe',
- 'qhelp' : 'The name of the recipe building the package',
- 'orderfield' : _get_toggle_order( request, "recipe__name" ),
- 'ordericon' : _get_toggle_order_icon( request, "recipe__name" ),
- 'orderkey' : "recipe__name",
- 'clclass' : 'recipe_name',
- 'hidden' : 0,
- }
- tc_recipeVersion = {
- 'name' : 'Recipe version',
- 'qhelp' : 'Version and revision of the recipe building the package',
- 'clclass' : 'recipe_version',
- 'hidden' : 1,
- }
- tc_layer = {
- 'name' : 'Layer',
- 'qhelp' : 'The name of the layer providing the recipe that builds the package',
- 'orderfield' : _get_toggle_order( request, "recipe__layer_version__layer__name" ),
- 'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__layer__name" ),
- 'orderkey' : "recipe__layer_version__layer__name",
- 'clclass' : 'layer_name',
- 'hidden' : 1,
- }
- tc_layerBranch = {
- 'name' : 'Layer branch',
- 'qhelp' : 'The Git branch of the layer providing the recipe that builds the package',
- 'orderfield' : _get_toggle_order( request, "recipe__layer_version__branch" ),
- 'ordericon' : _get_toggle_order_icon( request, "recipe__layer_version__branch" ),
- 'orderkey' : "recipe__layer_version__branch",
- 'clclass' : 'layer_branch',
- 'hidden' : 1,
- }
- tc_layerCommit = {
- 'name' : 'Layer commit',
- 'qhelp' : 'The Git commit of the layer providing the recipe that builds the package',
- 'clclass' : 'layer_commit',
- 'hidden' : 1,
- }
-
- context = {
- 'objectname': variant,
- 'build' : build,
- 'project' : build.project,
- 'target' : Target.objects.filter( pk = target_id )[ 0 ],
- 'objects' : packages,
- 'packages_sum' : packages_sum[ 'installed_size__sum' ],
- 'object_search_display': "packages included",
- 'default_orderby' : default_orderby,
- 'tablecols' : [
- tc_package,
- tc_packageVersion,
- tc_license,
- tc_size,
- tc_sizePercentage,
- tc_dependencies,
- tc_rdependencies,
- tc_recipe,
- tc_recipeVersion,
- tc_layer,
- tc_layerBranch,
- tc_layerCommit,
- ]
- }
-
-
- response = render(request, template, context)
- _set_parameters_values(pagesize, orderby, request)
- return response
-
-def target( request, build_id, target_id ):
- return( target_common( request, build_id, target_id, "target" ))
-
-def targetpkg( request, build_id, target_id ):
- return( target_common( request, build_id, target_id, "targetpkg" ))
-
from django.core.serializers.json import DjangoJSONEncoder
from django.http import HttpResponse
def xhr_dirinfo(request, build_id, target_id):
@@ -910,8 +767,8 @@ def _get_dir_entries(build_id, target_id, start):
response.append(entry)
except Exception as e:
- print "Exception ", e
- traceback.print_exc(e)
+ print("Exception ", e)
+ traceback.print_exc()
# sort by directories first, then by name
rsorted = sorted(response, key=lambda entry : entry['name'])
@@ -952,18 +809,29 @@ def dirinfo(request, build_id, target_id, file_path=None):
return render(request, template, context)
def _find_task_dep(task_object):
- return map(lambda x: x.depends_on, Task_Dependency.objects.filter(task=task_object).filter(depends_on__order__gt = 0).exclude(depends_on__outcome = Task.OUTCOME_NA).select_related("depends_on"))
-
+ tdeps = Task_Dependency.objects.filter(task=task_object).filter(depends_on__order__gt=0)
+ tdeps = tdeps.exclude(depends_on__outcome=Task.OUTCOME_NA).select_related("depends_on")
+ return [x.depends_on for x in tdeps]
def _find_task_revdep(task_object):
- tp = []
- tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on=task_object).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build"))
- return tp
+ tdeps = Task_Dependency.objects.filter(depends_on=task_object).filter(task__order__gt=0)
+ tdeps = tdeps.exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build")
+
+ # exclude self-dependencies to prevent infinite dependency loop
+ # in generateCoveredList2()
+ tdeps = tdeps.exclude(task=task_object)
+
+ return [tdep.task for tdep in tdeps]
def _find_task_revdep_list(tasklist):
- tp = []
- tp = map(lambda t: t.task, Task_Dependency.objects.filter(depends_on__in=tasklist).filter(task__order__gt=0).exclude(task__outcome = Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build"))
- return tp
+ tdeps = Task_Dependency.objects.filter(depends_on__in=tasklist).filter(task__order__gt=0)
+ tdeps = tdeps.exclude(task__outcome=Task.OUTCOME_NA).select_related("task", "task__recipe", "task__build")
+
+ # exclude self-dependencies to prevent infinite dependency loop
+ # in generateCoveredList2()
+ tdeps = tdeps.exclude(task=F('depends_on'))
+
+ return [tdep.task for tdep in tdeps]
def _find_task_provider(task_object):
task_revdeps = _find_task_revdep(task_object)
@@ -976,396 +844,6 @@ def _find_task_provider(task_object):
return trc
return None
-def tasks_common(request, build_id, variant, task_anchor):
-# This class is shared between these pages
-#
-# Column tasks buildtime diskio cpuusage
-# --------- ------ ---------- ------- ---------
-# Cache def
-# CPU min -
-# Disk min -
-# Executed def def def def
-# Log
-# Order def +
-# Outcome def def def def
-# Recipe min min min min
-# Version
-# Task min min min min
-# Time min -
-#
-# 'min':on always, 'def':on by default, else hidden
-# '+' default column sort up, '-' default column sort down
-
- anchor = request.GET.get('anchor', '')
- if not anchor:
- anchor=task_anchor
-
- # default ordering depends on variant
- default_orderby = None
- filter_search_display = 'tasks'
-
- if 'buildtime' == variant:
- default_orderby = 'elapsed_time:-'
- title_variant = 'Time'
- object_search_display = 'time data'
- elif 'diskio' == variant:
- default_orderby = 'disk_io:-'
- title_variant = 'Disk I/O'
- object_search_display = 'disk I/O data'
- elif 'cputime' == variant:
- default_orderby = 'cpu_time_system:-'
- title_variant='CPU time'
- object_search_display = 'CPU time data'
- else:
- default_orderby = 'order:+'
- title_variant = 'Tasks'
- object_search_display = 'tasks'
-
- (pagesize, orderby) = _get_parameters_values(request, 25, default_orderby)
-
- mandatory_parameters = {'count': pagesize, 'page' : 1, 'orderby': orderby}
-
- template = 'tasks.html'
- retval = _verify_parameters( request.GET, mandatory_parameters )
- if retval:
- if task_anchor:
- mandatory_parameters['anchor']=task_anchor
- return _redirect_parameters( variant, request.GET, mandatory_parameters, build_id = build_id)
- (filter_string, search_term, ordering_string) = _search_tuple(request, Task)
- queryset_all = Task.objects.filter(build=build_id).exclude(order__isnull=True).exclude(outcome=Task.OUTCOME_NA)
- queryset_all = queryset_all.select_related("recipe", "build")
-
- queryset_with_search = _get_queryset(Task, queryset_all, None , search_term, ordering_string, 'order')
-
- if ordering_string.startswith('outcome'):
- queryset = _get_queryset(Task, queryset_all, filter_string, search_term, 'order:+', 'order')
- queryset = sorted(queryset, key=lambda ur: (ur.outcome_text), reverse=ordering_string.endswith('-'))
- elif ordering_string.startswith('sstate_result'):
- queryset = _get_queryset(Task, queryset_all, filter_string, search_term, 'order:+', 'order')
- queryset = sorted(queryset, key=lambda ur: (ur.sstate_text), reverse=ordering_string.endswith('-'))
- else:
- queryset = _get_queryset(Task, queryset_all, filter_string, search_term, ordering_string, 'order')
-
-
- # compute the anchor's page
- if anchor:
- request.GET = request.GET.copy()
- del request.GET['anchor']
- i=0
- a=int(anchor)
- count_per_page=int(pagesize)
- for task_object in queryset.iterator():
- if a == task_object.order:
- new_page= (i / count_per_page ) + 1
- request.GET.__setitem__('page', new_page)
- mandatory_parameters['page']=new_page
- return _redirect_parameters( variant, request.GET, mandatory_parameters, build_id = build_id)
- i += 1
-
- task_objects = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
-
- # define (and modify by variants) the 'tablecols' members
- tc_order={
- 'name':'Order',
- 'qhelp':'The running sequence of each task in the build',
- 'clclass': 'order', 'hidden' : 1,
- 'orderkey' : 'order',
- 'orderfield':_get_toggle_order(request, "order"),
- 'ordericon':_get_toggle_order_icon(request, "order")}
- if 'tasks' == variant:
- tc_order['hidden']='0'
- del tc_order['clclass']
-
- tc_recipe={
- 'name':'Recipe',
- 'qhelp':'The name of the recipe to which each task applies',
- 'orderkey' : 'recipe__name',
- 'orderfield': _get_toggle_order(request, "recipe__name"),
- 'ordericon':_get_toggle_order_icon(request, "recipe__name"),
- }
- tc_recipe_version={
- 'name':'Recipe version',
- 'qhelp':'The version of the recipe to which each task applies',
- 'clclass': 'recipe_version', 'hidden' : 1,
- }
- tc_task={
- 'name':'Task',
- 'qhelp':'The name of the task',
- 'orderfield': _get_toggle_order(request, "task_name"),
- 'ordericon':_get_toggle_order_icon(request, "task_name"),
- 'orderkey' : 'task_name',
- }
- tc_executed={
- 'name':'Executed',
- 'qhelp':"This value tells you if a task had to run (executed) in order to generate the task output, or if the output was provided by another task and therefore the task didn't need to run (not executed)",
- 'clclass': 'executed', 'hidden' : 0,
- 'orderfield': _get_toggle_order(request, "task_executed"),
- 'ordericon':_get_toggle_order_icon(request, "task_executed"),
- 'orderkey' : 'task_executed',
- 'filter' : {
- 'class' : 'executed',
- 'label': 'Show:',
- 'options' : [
- ('Executed Tasks', 'task_executed:1', queryset_with_search.filter(task_executed=1).count()),
- ('Not Executed Tasks', 'task_executed:0', queryset_with_search.filter(task_executed=0).count()),
- ]
- }
-
- }
- tc_outcome={
- 'name':'Outcome',
- 'qhelp':"This column tells you if 'executed' tasks succeeded or failed. The column also tells you why 'not executed' tasks did not need to run",
- 'clclass': 'outcome', 'hidden' : 0,
- 'orderfield': _get_toggle_order(request, "outcome"),
- 'ordericon':_get_toggle_order_icon(request, "outcome"),
- 'orderkey' : 'outcome',
- 'filter' : {
- 'class' : 'outcome',
- 'label': 'Show:',
- 'options' : [
- ('Succeeded Tasks', 'outcome:%d'%Task.OUTCOME_SUCCESS, queryset_with_search.filter(outcome=Task.OUTCOME_SUCCESS).count(), "'Succeeded' tasks are those that ran and completed during the build" ),
- ('Failed Tasks', 'outcome:%d'%Task.OUTCOME_FAILED, queryset_with_search.filter(outcome=Task.OUTCOME_FAILED).count(), "'Failed' tasks are those that ran but did not complete during the build"),
- ('Cached Tasks', 'outcome:%d'%Task.OUTCOME_CACHED, queryset_with_search.filter(outcome=Task.OUTCOME_CACHED).count(), 'Cached tasks restore output from the <code>sstate-cache</code> directory or mirrors'),
- ('Prebuilt Tasks', 'outcome:%d'%Task.OUTCOME_PREBUILT, queryset_with_search.filter(outcome=Task.OUTCOME_PREBUILT).count(),'Prebuilt tasks didn\'t need to run because their output was reused from a previous build'),
- ('Covered Tasks', 'outcome:%d'%Task.OUTCOME_COVERED, queryset_with_search.filter(outcome=Task.OUTCOME_COVERED).count(), 'Covered tasks didn\'t need to run because their output is provided by another task in this build'),
- ('Empty Tasks', 'outcome:%d'%Task.OUTCOME_EMPTY, queryset_with_search.filter(outcome=Task.OUTCOME_EMPTY).count(), 'Empty tasks have no executable content'),
- ]
- }
-
- }
-
- tc_cache={
- 'name':'Cache attempt',
- 'qhelp':'This column tells you if a task tried to restore output from the <code>sstate-cache</code> directory or mirrors, and reports the result: Succeeded, Failed or File not in cache',
- 'clclass': 'cache_attempt', 'hidden' : 0,
- 'orderfield': _get_toggle_order(request, "sstate_result"),
- 'ordericon':_get_toggle_order_icon(request, "sstate_result"),
- 'orderkey' : 'sstate_result',
- 'filter' : {
- 'class' : 'cache_attempt',
- 'label': 'Show:',
- 'options' : [
- ('Tasks with cache attempts', 'sstate_result__gt:%d'%Task.SSTATE_NA, queryset_with_search.filter(sstate_result__gt=Task.SSTATE_NA).count(), 'Show all tasks that tried to restore ouput from the <code>sstate-cache</code> directory or mirrors'),
- ("Tasks with 'File not in cache' attempts", 'sstate_result:%d'%Task.SSTATE_MISS, queryset_with_search.filter(sstate_result=Task.SSTATE_MISS).count(), 'Show tasks that tried to restore output, but did not find it in the <code>sstate-cache</code> directory or mirrors'),
- ("Tasks with 'Failed' cache attempts", 'sstate_result:%d'%Task.SSTATE_FAILED, queryset_with_search.filter(sstate_result=Task.SSTATE_FAILED).count(), 'Show tasks that found the required output in the <code>sstate-cache</code> directory or mirrors, but could not restore it'),
- ("Tasks with 'Succeeded' cache attempts", 'sstate_result:%d'%Task.SSTATE_RESTORED, queryset_with_search.filter(sstate_result=Task.SSTATE_RESTORED).count(), 'Show tasks that successfully restored the required output from the <code>sstate-cache</code> directory or mirrors'),
- ]
- }
-
- }
- #if 'tasks' == variant: tc_cache['hidden']='0';
- tc_time={
- 'name':'Time (secs)',
- 'qhelp':'How long it took the task to finish in seconds',
- 'orderfield': _get_toggle_order(request, "elapsed_time", True),
- 'ordericon':_get_toggle_order_icon(request, "elapsed_time"),
- 'orderkey' : 'elapsed_time',
- 'clclass': 'time_taken', 'hidden' : 1,
- }
- if 'buildtime' == variant:
- tc_time['hidden']='0'
- del tc_time['clclass']
- tc_cache['hidden']='1'
-
- tc_cpu_time_system={
- 'name':'System CPU time (secs)',
- 'qhelp':'Total amount of time spent executing in kernel mode, in ' +
- 'seconds. Note that this time can be greater than the task ' +
- 'time due to parallel execution.',
- 'orderfield': _get_toggle_order(request, "cpu_time_system", True),
- 'ordericon':_get_toggle_order_icon(request, "cpu_time_system"),
- 'orderkey' : 'cpu_time_system',
- 'clclass': 'cpu_time_system', 'hidden' : 1,
- }
-
- tc_cpu_time_user={
- 'name':'User CPU time (secs)',
- 'qhelp':'Total amount of time spent executing in user mode, in seconds. ' +
- 'Note that this time can be greater than the task time due to ' +
- 'parallel execution.',
- 'orderfield': _get_toggle_order(request, "cpu_time_user", True),
- 'ordericon':_get_toggle_order_icon(request, "cpu_time_user"),
- 'orderkey' : 'cpu_time_user',
- 'clclass': 'cpu_time_user', 'hidden' : 1,
- }
-
- if 'cputime' == variant:
- tc_cpu_time_system['hidden']='0'
- tc_cpu_time_user['hidden']='0'
- del tc_cpu_time_system['clclass']
- del tc_cpu_time_user['clclass']
- tc_cache['hidden']='1'
-
- tc_diskio={
- 'name':'Disk I/O (bytes)',
- 'qhelp':'Number of bytes written to and read from the disk during the task',
- 'orderfield': _get_toggle_order(request, "disk_io", True),
- 'ordericon':_get_toggle_order_icon(request, "disk_io"),
- 'orderkey' : 'disk_io',
- 'clclass': 'disk_io', 'hidden' : 1,
- }
- if 'diskio' == variant:
- tc_diskio['hidden']='0'
- del tc_diskio['clclass']
- tc_cache['hidden']='1'
-
- build = Build.objects.get(pk=build_id)
-
- context = { 'objectname': variant,
- 'object_search_display': object_search_display,
- 'filter_search_display': filter_search_display,
- 'mainheading': title_variant,
- 'build': build,
- 'project': build.project,
- 'objects': task_objects,
- 'default_orderby' : default_orderby,
- 'search_term': search_term,
- 'total_count': queryset_with_search.count(),
- 'tablecols':[
- tc_order,
- tc_recipe,
- tc_recipe_version,
- tc_task,
- tc_executed,
- tc_outcome,
- tc_cache,
- tc_time,
- tc_cpu_time_system,
- tc_cpu_time_user,
- tc_diskio,
- ]}
-
-
- response = render(request, template, context)
- _set_parameters_values(pagesize, orderby, request)
- return response
-
-def tasks(request, build_id):
- return tasks_common(request, build_id, 'tasks', '')
-
-def tasks_task(request, build_id, task_id):
- return tasks_common(request, build_id, 'tasks', task_id)
-
-def buildtime(request, build_id):
- return tasks_common(request, build_id, 'buildtime', '')
-
-def diskio(request, build_id):
- return tasks_common(request, build_id, 'diskio', '')
-
-def cputime(request, build_id):
- return tasks_common(request, build_id, 'cputime', '')
-
-def recipes(request, build_id):
- template = 'recipes.html'
- (pagesize, orderby) = _get_parameters_values(request, 100, 'name:+')
- mandatory_parameters = { 'count': pagesize, 'page' : 1, 'orderby' : orderby }
- retval = _verify_parameters( request.GET, mandatory_parameters )
- if retval:
- return _redirect_parameters( 'recipes', request.GET, mandatory_parameters, build_id = build_id)
- (filter_string, search_term, ordering_string) = _search_tuple(request, Recipe)
-
- build = Build.objects.get(pk=build_id)
-
- queryset = build.get_recipes()
- queryset = _get_queryset(Recipe, queryset, filter_string, search_term, ordering_string, 'name')
-
- recipes = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
-
- # prefetch the forward and reverse recipe dependencies
- deps = { }
- revs = { }
- queryset_dependency=Recipe_Dependency.objects.filter(recipe__layer_version__build_id = build_id).select_related("depends_on", "recipe")
- for recipe in recipes:
- deplist = [ ]
- for recipe_dep in [x for x in queryset_dependency if x.recipe_id == recipe.id]:
- deplist.append(recipe_dep)
- deps[recipe.id] = deplist
- revlist = [ ]
- for recipe_dep in [x for x in queryset_dependency if x.depends_on_id == recipe.id]:
- revlist.append(recipe_dep)
- revs[recipe.id] = revlist
-
- context = {
- 'objectname': 'recipes',
- 'build': build,
- 'project': build.project,
- 'objects': recipes,
- 'default_orderby' : 'name:+',
- 'recipe_deps' : deps,
- 'recipe_revs' : revs,
- 'tablecols':[
- {
- 'name':'Recipe',
- 'qhelp':'Information about a single piece of software, including where to download the source, configuration options, how to compile the source files and how to package the compiled output',
- 'orderfield': _get_toggle_order(request, "name"),
- 'ordericon':_get_toggle_order_icon(request, "name"),
- },
- {
- 'name':'Recipe version',
- 'qhelp':'The recipe version and revision',
- },
- {
- 'name':'Dependencies',
- 'qhelp':'Recipe build-time dependencies (i.e. other recipes)',
- 'clclass': 'depends_on', 'hidden': 1,
- },
- {
- 'name':'Reverse dependencies',
- 'qhelp':'Recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)',
- 'clclass': 'depends_by', 'hidden': 1,
- },
- {
- 'name':'Recipe file',
- 'qhelp':'Path to the recipe .bb file',
- 'orderfield': _get_toggle_order(request, "file_path"),
- 'ordericon':_get_toggle_order_icon(request, "file_path"),
- 'orderkey' : 'file_path',
- 'clclass': 'recipe_file', 'hidden': 0,
- },
- {
- 'name':'Section',
- 'qhelp':'The section in which recipes should be categorized',
- 'orderfield': _get_toggle_order(request, "section"),
- 'ordericon':_get_toggle_order_icon(request, "section"),
- 'orderkey' : 'section',
- 'clclass': 'recipe_section', 'hidden': 0,
- },
- {
- 'name':'License',
- 'qhelp':'The list of source licenses for the recipe. Multiple license names separated by the pipe character indicates a choice between licenses. Multiple license names separated by the ampersand character indicates multiple licenses exist that cover different parts of the source',
- 'orderfield': _get_toggle_order(request, "license"),
- 'ordericon':_get_toggle_order_icon(request, "license"),
- 'orderkey' : 'license',
- 'clclass': 'recipe_license', 'hidden': 0,
- },
- {
- 'name':'Layer',
- 'qhelp':'The name of the layer providing the recipe',
- 'orderfield': _get_toggle_order(request, "layer_version__layer__name"),
- 'ordericon':_get_toggle_order_icon(request, "layer_version__layer__name"),
- 'orderkey' : 'layer_version__layer__name',
- 'clclass': 'layer_version__layer__name', 'hidden': 0,
- },
- {
- 'name':'Layer branch',
- 'qhelp':'The Git branch of the layer providing the recipe',
- 'orderfield': _get_toggle_order(request, "layer_version__branch"),
- 'ordericon':_get_toggle_order_icon(request, "layer_version__branch"),
- 'orderkey' : 'layer_version__branch',
- 'clclass': 'layer_version__branch', 'hidden': 1,
- },
- {
- 'name':'Layer commit',
- 'qhelp':'The Git commit of the layer providing the recipe',
- 'clclass': 'layer_version__layer__commit', 'hidden': 1,
- },
- ]
- }
-
- response = render(request, template, context)
- _set_parameters_values(pagesize, orderby, request)
- return response
-
def configuration(request, build_id):
template = 'configuration.html'
@@ -1437,7 +915,6 @@ def configvars(request, build_id):
},
{'name': 'Value',
'qhelp': "The value assigned to the variable",
- 'dclass': "span4",
},
{'name': 'Set in file',
'qhelp': "The last configuration file that touched the variable value",
@@ -1474,96 +951,6 @@ def configvars(request, build_id):
_set_parameters_values(pagesize, orderby, request)
return response
-def bpackage(request, build_id):
- template = 'bpackage.html'
- (pagesize, orderby) = _get_parameters_values(request, 100, 'name:+')
- mandatory_parameters = { 'count' : pagesize, 'page' : 1, 'orderby' : orderby }
- retval = _verify_parameters( request.GET, mandatory_parameters )
- if retval:
- return _redirect_parameters( 'packages', request.GET, mandatory_parameters, build_id = build_id)
- (filter_string, search_term, ordering_string) = _search_tuple(request, Package)
- queryset = Package.objects.filter(build = build_id).filter(size__gte=0)
- queryset = _get_queryset(Package, queryset, filter_string, search_term, ordering_string, 'name')
-
- packages = _build_page_range(Paginator(queryset, pagesize),request.GET.get('page', 1))
-
- build = Build.objects.get( pk = build_id )
-
- context = {
- 'objectname': 'packages built',
- 'build': build,
- 'project': build.project,
- 'objects' : packages,
- 'default_orderby' : 'name:+',
- 'tablecols':[
- {
- 'name':'Package',
- 'qhelp':'Packaged output resulting from building a recipe',
- 'orderfield': _get_toggle_order(request, "name"),
- 'ordericon':_get_toggle_order_icon(request, "name"),
- },
- {
- 'name':'Package version',
- 'qhelp':'The package version and revision',
- },
- {
- 'name':'Size',
- 'qhelp':'The size of the package',
- 'orderfield': _get_toggle_order(request, "size", True),
- 'ordericon':_get_toggle_order_icon(request, "size"),
- 'orderkey' : 'size',
- 'clclass': 'size', 'hidden': 0,
- 'dclass' : 'span2',
- },
- {
- 'name':'License',
- 'qhelp':'The license under which the package is distributed. Multiple license names separated by the pipe character indicates a choice between licenses. Multiple license names separated by the ampersand character indicates multiple licenses exist that cover different parts of the source',
- 'orderfield': _get_toggle_order(request, "license"),
- 'ordericon':_get_toggle_order_icon(request, "license"),
- 'orderkey' : 'license',
- 'clclass': 'license', 'hidden': 1,
- },
- {
- 'name':'Recipe',
- 'qhelp':'The name of the recipe building the package',
- 'orderfield': _get_toggle_order(request, "recipe__name"),
- 'ordericon':_get_toggle_order_icon(request, "recipe__name"),
- 'orderkey' : 'recipe__name',
- 'clclass': 'recipe__name', 'hidden': 0,
- },
- {
- 'name':'Recipe version',
- 'qhelp':'Version and revision of the recipe building the package',
- 'clclass': 'recipe__version', 'hidden': 1,
- },
- {
- 'name':'Layer',
- 'qhelp':'The name of the layer providing the recipe that builds the package',
- 'orderfield': _get_toggle_order(request, "recipe__layer_version__layer__name"),
- 'ordericon':_get_toggle_order_icon(request, "recipe__layer_version__layer__name"),
- 'orderkey' : 'recipe__layer_version__layer__name',
- 'clclass': 'recipe__layer_version__layer__name', 'hidden': 1,
- },
- {
- 'name':'Layer branch',
- 'qhelp':'The Git branch of the layer providing the recipe that builds the package',
- 'orderfield': _get_toggle_order(request, "recipe__layer_version__branch"),
- 'ordericon':_get_toggle_order_icon(request, "recipe__layer_version__branch"),
- 'orderkey' : 'recipe__layer_version__branch',
- 'clclass': 'recipe__layer_version__branch', 'hidden': 1,
- },
- {
- 'name':'Layer commit',
- 'qhelp':'The Git commit of the layer providing the recipe that builds the package',
- 'clclass': 'recipe__layer_version__layer__commit', 'hidden': 1,
- },
- ]
- }
-
- response = render(request, template, context)
- _set_parameters_values(pagesize, orderby, request)
- return response
-
def bfile(request, build_id, package_id):
template = 'bfile.html'
files = Package_File.objects.filter(package = package_id)
@@ -1905,7 +1292,7 @@ if True:
from django.contrib.auth import authenticate, login
from django.contrib.auth.decorators import login_required
- from orm.models import Branch, LayerSource, ToasterSetting, Release, Machine, LayerVersionDependency
+ from orm.models import LayerSource, ToasterSetting, Release, Machine, LayerVersionDependency
from bldcontrol.models import BuildRequest
import traceback
@@ -1938,10 +1325,10 @@ if True:
if ptype == "build":
mandatory_fields.append('projectversion')
# make sure we have values for all mandatory_fields
- if reduce( lambda x, y: x or y, map(lambda x: len(request.POST.get(x, '')) == 0, mandatory_fields)):
- # set alert for missing fields
- raise BadParameterException("Fields missing: " +
- ", ".join([x for x in mandatory_fields if len(request.POST.get(x, '')) == 0 ]))
+ missing = [field for field in mandatory_fields if len(request.POST.get(field, '')) == 0]
+ if missing:
+ # set alert for missing fields
+ raise BadParameterException("Fields missing: %s" % ", ".join(missing))
if not request.user.is_authenticated():
user = authenticate(username = request.POST.get('username', '_anonuser'), password = 'nopass')
@@ -1964,7 +1351,8 @@ if True:
except (IntegrityError, BadParameterException) as e:
# fill in page with previously submitted values
- map(lambda x: context.__setitem__(x, request.POST.get(x, "-- missing")), mandatory_fields)
+ for field in mandatory_fields:
+ context.__setitem__(field, request.POST.get(field, "-- missing"))
if isinstance(e, IntegrityError) and "username" in str(e):
context['alert'] = "Your chosen username is already used"
else:
@@ -1973,128 +1361,11 @@ if True:
raise Exception("Invalid HTTP method for this page")
-
-
# Shows the edit project page
- @_template_renderer('project.html')
def project(request, pid):
- prj = Project.objects.get(id = pid)
-
- try:
- puser = User.objects.get(id = prj.user_id)
- except User.DoesNotExist:
- puser = None
-
- # execute POST requests
- if request.method == "POST":
- # add layers
- if 'layerAdd' in request.POST and len(request.POST['layerAdd']) > 0:
- for lc in Layer_Version.objects.filter(pk__in=[i for i in request.POST['layerAdd'].split(",") if len(i) > 0]):
- ProjectLayer.objects.get_or_create(project = prj, layercommit = lc)
-
- # remove layers
- if 'layerDel' in request.POST and len(request.POST['layerDel']) > 0:
- for t in request.POST['layerDel'].strip().split(" "):
- pt = ProjectLayer.objects.filter(project = prj, layercommit_id = int(t)).delete()
-
- if 'projectName' in request.POST:
- prj.name = request.POST['projectName']
- prj.save();
-
- if 'projectVersion' in request.POST:
- # If the release is the current project then return now
- if prj.release.pk == int(request.POST.get('projectVersion',-1)):
- return {}
-
- prj.release = Release.objects.get(pk = request.POST['projectVersion'])
- # we need to change the bitbake version
- prj.bitbake_version = prj.release.bitbake_version
- prj.save()
- # we need to change the layers
- for project in prj.projectlayer_set.all():
- # find and add a similarly-named layer on the new branch
- try:
- layer_versions = prj.get_all_compatible_layer_versions()
- layer_versions = layer_versions.filter(layer__name = project.layercommit.layer.name)
- ProjectLayer.objects.get_or_create(project = prj, layercommit = layer_versions.first())
- except IndexError:
- pass
- finally:
- # get rid of the old entry
- project.delete()
-
- if 'machineName' in request.POST:
- machinevar = prj.projectvariable_set.get(name="MACHINE")
- machinevar.value=request.POST['machineName']
- machinevar.save()
-
-
- # we use implicit knowledge of the current user's project to filter layer information, e.g.
- pid = prj.id
-
- from collections import Counter
- freqtargets = []
- try:
- freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.target_set.all()), Build.objects.filter(project = prj, outcome__lt = Build.IN_PROGRESS))))
- freqtargets += map(lambda x: x.target, reduce(lambda x, y: x + y, map(lambda x: list(x.brtarget_set.all()), BuildRequest.objects.filter(project = prj, state = BuildRequest.REQ_FAILED))))
- except TypeError:
- pass
- freqtargets = Counter(freqtargets)
- freqtargets = sorted(freqtargets, key = lambda x: freqtargets[x], reverse=True)
-
- context = {
- "project" : prj,
- "lvs_nos" : Layer_Version.objects.all().count(),
- "completedbuilds": Build.objects.exclude(outcome = Build.IN_PROGRESS).filter(project_id = pid),
- "prj" : {"name": prj.name, },
- "buildrequests" : prj.build_set.filter(outcome=Build.IN_PROGRESS),
- "builds" : Build.get_recent(prj),
- "layers" : map(lambda x: {
- "id": x.layercommit.pk,
- "orderid": x.pk,
- "name" : x.layercommit.layer.name,
- "vcs_url": x.layercommit.layer.vcs_url,
- "vcs_reference" : x.layercommit.get_vcs_reference(),
- "url": x.layercommit.layer.layer_index_url,
- "layerdetailurl": x.layercommit.get_detailspage_url(prj.pk),
- # This branch name is actually the release
- "branch" : { "name" : x.layercommit.get_vcs_reference(), "layersource" : x.layercommit.up_branch.layer_source.name if x.layercommit.up_branch != None else None}},
- prj.projectlayer_set.all().order_by("id")),
- "targets" : map(lambda x: {"target" : x.target, "task" : x.task, "pk": x.pk}, prj.projecttarget_set.all()),
- "variables": map(lambda x: (x.name, x.value), prj.projectvariable_set.all()),
- "freqtargets": freqtargets[:5],
- "releases": map(lambda x: {"id": x.pk, "name": x.name, "description":x.description}, Release.objects.all()),
- "project_html": 1,
- "recipesTypeAheadUrl": reverse('xhr_recipestypeahead', args=(prj.pk,)),
- "projectBuildsUrl": reverse('projectbuilds', args=(prj.pk,)),
- }
-
- if prj.release is not None:
- context['release'] = { "id": prj.release.pk, "name": prj.release.name, "description": prj.release.description}
-
-
- try:
- context["machine"] = {"name": prj.projectvariable_set.get(name="MACHINE").value}
- except ProjectVariable.DoesNotExist:
- context["machine"] = None
- try:
- context["distro"] = prj.projectvariable_set.get(name="DISTRO").value
- except ProjectVariable.DoesNotExist:
- context["distro"] = "-- not set yet"
-
- return context
-
- def xhr_response(fun):
- """
- Decorator for REST methods.
- calls jsonfilter on the returned dictionary and returns result
- as HttpResponse object of content_type application/json
- """
- @wraps(fun)
- def wrapper(*args, **kwds):
- return HttpResponse(jsonfilter(fun(*args, **kwds)),
- content_type="application/json")
- return wrapper
+ project = Project.objects.get(pk=pid)
+ context = {"project": project}
+ return render(request, "project.html", context)
def jsunittests(request):
""" Provides a page for the js unit tests """
@@ -2154,8 +1425,7 @@ if True:
retval.append(project)
return response({"error":"ok",
- "rows" : map( _lv_to_dict(prj),
- map(lambda x: x.layercommit, retval ))
+ "rows": [_lv_to_dict(prj) for y in [x.layercommit for x in retval]]
})
except Exception as e:
@@ -2164,11 +1434,16 @@ if True:
def xhr_configvaredit(request, pid):
try:
prj = Project.objects.get(id = pid)
+ # There are cases where user can add variables which hold values
+ # like http://, file:/// etc. In such case a simple split(":")
+ # would fail. One example is SSTATE_MIRRORS variable. So we use
+ # max_split var to handle them.
+ max_split = 1
# add conf variables
if 'configvarAdd' in request.POST:
t=request.POST['configvarAdd'].strip()
if ":" in t:
- variable, value = t.split(":")
+ variable, value = t.split(":", max_split)
else:
variable = t
value = ""
@@ -2178,7 +1453,7 @@ if True:
if 'configvarChange' in request.POST:
t=request.POST['configvarChange'].strip()
if ":" in t:
- variable, value = t.split(":")
+ variable, value = t.split(":", max_split)
else:
variable = t
value = ""
@@ -2201,7 +1476,7 @@ if True:
return_data = {
"error": "ok",
- 'configvars' : map(lambda x: (x.name, x.value, x.pk), configvars_query),
+ 'configvars': [(x.name, x.value, x.pk) for x in configvars_query]
}
try:
return_data['distro'] = ProjectVariable.objects.get(project = prj, name = "DISTRO").value,
@@ -2235,10 +1510,10 @@ if True:
def xhr_importlayer(request):
- if (not request.POST.has_key('vcs_url') or
- not request.POST.has_key('name') or
- not request.POST.has_key('git_ref') or
- not request.POST.has_key('project_id')):
+ if ('vcs_url' not in request.POST or
+ 'name' not in request.POST or
+ 'git_ref' not in request.POST or
+ 'project_id' not in request.POST):
return HttpResponse(jsonfilter({"error": "Missing parameters; requires vcs_url, name, git_ref and project_id"}), content_type = "application/json")
layers_added = [];
@@ -2253,18 +1528,12 @@ if True:
prj = Project.objects.get(pk=request.POST['project_id'])
# Strip trailing/leading whitespace from all values
- # put into a new dict because POST one is immutable
+ # put into a new dict because POST one is immutable.
post_data = dict()
- for key,val in request.POST.iteritems():
+ for key,val in request.POST.items():
post_data[key] = val.strip()
- # We need to know what release the current project is so that we
- # can set the imported layer's up_branch_id
- prj_branch_name = Release.objects.get(pk=prj.release_id).branch_name
- up_branch, branch_created = Branch.objects.get_or_create(name=prj_branch_name, layer_source_id=LayerSource.TYPE_IMPORTED)
-
- layer_source = LayerSource.objects.get(sourcetype=LayerSource.TYPE_IMPORTED)
try:
layer, layer_created = Layer.objects.get_or_create(name=post_data['name'])
except MultipleObjectsReturned:
@@ -2272,8 +1541,8 @@ if True:
if layer:
if layer_created:
- layer.layer_source = layer_source
- layer.vcs_url = post_data['vcs_url']
+ layer.vcs_url = post_data.get('vcs_url')
+ layer.local_source_dir = post_data.get('local_source_dir')
layer.up_date = timezone.now()
layer.save()
else:
@@ -2283,18 +1552,30 @@ if True:
if layer.vcs_url != post_data['vcs_url']:
return HttpResponse(jsonfilter({"error": "hint-layer-exists-with-different-url" , "current_url" : layer.vcs_url, "current_id": layer.id }), content_type = "application/json")
-
- layer_version, version_created = Layer_Version.objects.get_or_create(layer_source=layer_source, layer=layer, project=prj, up_branch_id=up_branch.id,branch=post_data['git_ref'], commit=post_data['git_ref'], dirpath=post_data['dir_path'])
+ layer_version, version_created = \
+ Layer_Version.objects.get_or_create(
+ layer_source=LayerSource.TYPE_IMPORTED,
+ layer=layer, project=prj,
+ release=prj.release,
+ branch=post_data['git_ref'],
+ commit=post_data['git_ref'],
+ dirpath=post_data['dir_path'])
if layer_version:
if not version_created:
- return HttpResponse(jsonfilter({"error": "hint-layer-version-exists", "existing_layer_version": layer_version.id }), content_type = "application/json")
+ return HttpResponse(jsonfilter({"error":
+ "hint-layer-version-exists",
+ "existing_layer_version":
+ layer_version.id }),
+ content_type = "application/json")
+
+ layer_version.layer_source = LayerSource.TYPE_IMPORTED
layer_version.up_date = timezone.now()
layer_version.save()
# Add the dependencies specified for this new layer
- if (post_data.has_key("layer_deps") and
+ if ('layer_deps' in post_data and
version_created and
len(post_data["layer_deps"]) > 0):
for layer_dep_id in post_data["layer_deps"].split(","):
@@ -2343,231 +1624,6 @@ if True:
return HttpResponse(jsonfilter(json_response), content_type = "application/json")
- def xhr_updatelayer(request):
-
- def error_response(error):
- return HttpResponse(jsonfilter({"error": error}), content_type = "application/json")
-
- if not request.POST.has_key("layer_version_id"):
- return error_response("Please specify a layer version id")
- try:
- layer_version_id = request.POST["layer_version_id"]
- layer_version = Layer_Version.objects.get(id=layer_version_id)
- except Layer_Version.DoesNotExist:
- return error_response("Cannot find layer to update")
-
-
- if request.POST.has_key("vcs_url"):
- layer_version.layer.vcs_url = request.POST["vcs_url"]
- if request.POST.has_key("dirpath"):
- layer_version.dirpath = request.POST["dirpath"]
- if request.POST.has_key("commit"):
- layer_version.commit = request.POST["commit"]
- if request.POST.has_key("up_branch"):
- layer_version.up_branch_id = int(request.POST["up_branch"])
-
- if request.POST.has_key("add_dep"):
- lvd = LayerVersionDependency(layer_version=layer_version, depends_on_id=request.POST["add_dep"])
- lvd.save()
-
- if request.POST.has_key("rm_dep"):
- rm_dep = LayerVersionDependency.objects.get(layer_version=layer_version, depends_on_id=request.POST["rm_dep"])
- rm_dep.delete()
-
- if request.POST.has_key("summary"):
- layer_version.layer.summary = request.POST["summary"]
- if request.POST.has_key("description"):
- layer_version.layer.description = request.POST["description"]
-
- try:
- layer_version.layer.save()
- layer_version.save()
- except Exception as e:
- return error_response("Could not update layer version entry: %s" % e)
-
- return HttpResponse(jsonfilter({"error": "ok",}), content_type = "application/json")
-
- @xhr_response
- def xhr_customrecipe(request):
- """
- Custom image recipe REST API
-
- Entry point: /xhr_customrecipe/
- Method: POST
-
- Args:
- name: name of custom recipe to create
- project: target project id of orm.models.Project
- base: base recipe id of orm.models.Recipe
-
- Returns:
- {"error": "ok",
- "url": <url of the created recipe>}
- or
- {"error": <error message>}
- """
- # check if request has all required parameters
- for param in ('name', 'project', 'base'):
- if param not in request.POST:
- return {"error": "Missing parameter '%s'" % param}
-
- # get project and baserecipe objects
- params = {}
- for name, model in [("project", Project),
- ("base", Recipe)]:
- value = request.POST[name]
- try:
- params[name] = model.objects.get(id=value)
- except model.DoesNotExist:
- return {"error": "Invalid %s id %s" % (name, value)}
-
- # create custom recipe
- try:
-
- # Only allowed chars in name are a-z, 0-9 and -
- if re.search(r'[^a-z|0-9|-]', request.POST["name"]):
- return {"error": "invalid-name"}
-
- custom_images = CustomImageRecipe.objects.all()
-
- # Are there any recipes with this name already in our project?
- existing_image_recipes_in_project = custom_images.filter(
- name=request.POST["name"], project=params["project"])
-
- if existing_image_recipes_in_project.count() > 0:
- return {"error": "image-already-exists"}
-
- # Are there any recipes with this name which aren't custom
- # image recipes?
- custom_image_ids = custom_images.values_list('id', flat=True)
- existing_non_image_recipes = Recipe.objects.filter(
- Q(name=request.POST["name"]) & ~Q(pk__in=custom_image_ids)
- )
-
- if existing_non_image_recipes.count() > 0:
- return {"error": "recipe-already-exists"}
-
- # create layer 'Custom layer' and verion if needed
- layer = Layer.objects.get_or_create(
- name=CustomImageRecipe.LAYER_NAME,
- summary="Layer for custom recipes",
- vcs_url="file:///toaster_created_layer")[0]
-
- # Check if we have a layer version already
- # We don't use get_or_create here because the dirpath will change
- # and is a required field
- lver = Layer_Version.objects.filter(Q(project=params['project']) &
- Q(layer=layer) &
- Q(build=None)).last()
- if lver == None:
- lver, created = Layer_Version.objects.get_or_create(
- project=params['project'],
- layer=layer,
- dirpath="toaster_created_layer")
-
- # Add a dependency on our layer to the base recipe's layer
- LayerVersionDependency.objects.get_or_create(
- layer_version=lver,
- depends_on=params["base"].layer_version)
-
- # Add it to our current project if needed
- ProjectLayer.objects.get_or_create(project=params['project'],
- layercommit=lver,
- optional=False)
-
- # Create the actual recipe
- recipe, created = CustomImageRecipe.objects.get_or_create(
- name=request.POST["name"],
- base_recipe=params["base"],
- project=params["project"],
- layer_version=lver,
- is_image=True)
-
- # If we created the object then setup these fields. They may get
- # overwritten later on and cause the get_or_create to create a
- # duplicate if they've changed.
- if created:
- recipe.file_path = request.POST["name"]
- recipe.license = "MIT"
- recipe.version = "0.1"
- recipe.save()
-
- except Error as err:
- return {"error": "Can't create custom recipe: %s" % err}
-
- # Find the package list from the last build of this recipe/target
- target = Target.objects.filter(Q(build__outcome=Build.SUCCEEDED) &
- Q(build__project=params['project']) &
- (Q(target=params['base'].name) |
- Q(target=recipe.name))).last()
- if target:
- # Copy in every package
- # We don't want these packages to be linked to anything because
- # that underlying data may change e.g. delete a build
- for tpackage in target.target_installed_package_set.all():
- try:
- built_package = tpackage.package
- # The package had no recipe information so is a ghost
- # package skip it
- if built_package.recipe == None:
- continue;
-
- config_package = CustomImagePackage.objects.get(
- name=built_package.name)
-
- recipe.includes_set.add(config_package)
- except Exception as e:
- logger.warning("Error adding package %s %s" %
- (tpackage.package.name, e))
- pass
-
- return {"error": "ok",
- "packages" : recipe.get_all_packages().count(),
- "url": reverse('customrecipe', args=(params['project'].pk,
- recipe.id))}
-
- @xhr_response
- def xhr_customrecipe_id(request, recipe_id):
- """
- Set of ReST API processors working with recipe id.
-
- Entry point: /xhr_customrecipe/<recipe_id>
-
- Methods:
- GET - Get details of custom image recipe
- DELETE - Delete custom image recipe
-
- Returns:
- GET:
- {"error": "ok",
- "info": dictionary of field name -> value pairs
- of the CustomImageRecipe model}
- DELETE:
- {"error": "ok"}
- or
- {"error": <error message>}
- """
- try:
- custom_recipe = CustomImageRecipe.objects.get(id=recipe_id)
- except CustomImageRecipe.DoesNotExist:
- return {"error": "Custom recipe with id=%s "
- "not found" % recipe_id}
-
- if request.method == 'GET':
- info = {"id" : custom_recipe.id,
- "name" : custom_recipe.name,
- "base_recipe_id": custom_recipe.base_recipe.id,
- "project_id": custom_recipe.project.id,
- }
-
- return {"error": "ok", "info": info}
-
- elif request.method == 'DELETE':
- custom_recipe.delete()
- return {"error": "ok"}
- else:
- return {"error": "Method %s is not supported" % request.method}
-
def customrecipe_download(request, pid, recipe_id):
recipe = get_object_or_404(CustomImageRecipe, pk=recipe_id)
@@ -2580,230 +1636,6 @@ if True:
return response
- def _traverse_dependents(next_package_id, rev_deps, all_current_packages, tree_level=0):
- """
- Recurse through reverse dependency tree for next_package_id.
- Limit the reverse dependency search to packages not already scanned,
- that is, not already in rev_deps.
- Limit the scan to a depth (tree_level) not exceeding the count of
- all packages in the custom image, and if that depth is exceeded
- return False, pop out of the recursion, and write a warning
- to the log, but this is unlikely, suggesting a dependency loop
- not caught by bitbake.
- On return, the input/output arg rev_deps is appended with queryset
- dictionary elements, annotated for use in the customimage template.
- The list has unsorted, but unique elements.
- """
- max_dependency_tree_depth = all_current_packages.count()
- if tree_level >= max_dependency_tree_depth:
- logger.warning(
- "The number of reverse dependencies "
- "for this package exceeds " + max_dependency_tree_depth +
- " and the remaining reverse dependencies will not be removed")
- return True
-
- package = CustomImagePackage.objects.get(id=next_package_id)
- dependents = \
- package.package_dependencies_target.annotate(
- name=F('package__name'),
- pk=F('package__pk'),
- size=F('package__size'),
- ).values("name", "pk", "size").exclude(
- ~Q(pk__in=all_current_packages)
- )
-
- for pkg in dependents:
- if pkg in rev_deps:
- # already seen, skip dependent search
- continue
-
- rev_deps.append(pkg)
- if (_traverse_dependents(
- pkg["pk"], rev_deps, all_current_packages, tree_level+1)):
- return True
-
- return False
-
- def _get_all_dependents(package_id, all_current_packages):
- """
- Returns sorted list of recursive reverse dependencies for package_id,
- as a list of dictionary items, by recursing through dependency
- relationships.
- """
- rev_deps = []
- _traverse_dependents(package_id, rev_deps, all_current_packages)
- rev_deps = sorted(rev_deps, key=lambda x: x["name"])
- return rev_deps
-
- @xhr_response
- def xhr_customrecipe_packages(request, recipe_id, package_id):
- """
- ReST API to add/remove packages to/from custom recipe.
-
- Entry point: /xhr_customrecipe/<recipe_id>/packages/<package_id>
-
- Methods:
- PUT - Add package to the recipe
- DELETE - Delete package from the recipe
- GET - Get package information
-
- Returns:
- {"error": "ok"}
- or
- {"error": <error message>}
- """
- try:
- recipe = CustomImageRecipe.objects.get(id=recipe_id)
- except CustomImageRecipe.DoesNotExist:
- return {"error": "Custom recipe with id=%s "
- "not found" % recipe_id}
-
- if package_id:
- try:
- package = CustomImagePackage.objects.get(id=package_id)
- except Package.DoesNotExist:
- return {"error": "Package with id=%s "
- "not found" % package_id}
-
- if request.method == 'GET':
- # If no package_id then list the current packages
- if not package_id:
- total_size = 0
- packages = recipe.get_all_packages().values("id",
- "name",
- "version",
- "size")
- for package in packages:
- package['size_formatted'] = \
- filtered_filesizeformat(package['size'])
- total_size += package['size']
-
- return {"error": "ok",
- "packages" : list(packages),
- "total" : len(packages),
- "total_size" : total_size,
- "total_size_formatted" :
- filtered_filesizeformat(total_size)
- }
- else:
- all_current_packages = recipe.get_all_packages()
-
- # Dependencies for package which aren't satisfied by the
- # current packages in the custom image recipe
- deps = package.package_dependencies_source.annotate(
- name=F('depends_on__name'),
- pk=F('depends_on__pk'),
- size=F('depends_on__size'),
- ).values("name", "pk", "size").filter(
- # There are two depends types we don't know why
- (Q(dep_type=Package_Dependency.TYPE_TRDEPENDS) |
- Q(dep_type=Package_Dependency.TYPE_RDEPENDS)) &
- ~Q(pk__in=all_current_packages)
- )
-
- # Reverse dependencies which are needed by packages that are
- # in the image. Recursive search providing all dependents,
- # not just immediate dependents.
- reverse_deps = _get_all_dependents(package_id, all_current_packages)
- total_size_deps = 0
- total_size_reverse_deps = 0
-
- for dep in deps:
- dep['size_formatted'] = \
- filtered_filesizeformat(dep['size'])
- total_size_deps += dep['size']
-
- for dep in reverse_deps:
- dep['size_formatted'] = \
- filtered_filesizeformat(dep['size'])
- total_size_reverse_deps += dep['size']
-
-
- return {"error": "ok",
- "id": package.pk,
- "name": package.name,
- "version": package.version,
- "unsatisfied_dependencies": list(deps),
- "unsatisfied_dependencies_size": total_size_deps,
- "unsatisfied_dependencies_size_formatted":
- filtered_filesizeformat(total_size_deps),
- "reverse_dependencies": list(reverse_deps),
- "reverse_dependencies_size": total_size_reverse_deps,
- "reverse_dependencies_size_formatted":
- filtered_filesizeformat(total_size_reverse_deps)}
-
- included_packages = recipe.includes_set.values_list('pk', flat=True)
-
- if request.method == 'PUT':
- # If we're adding back a package which used to be included in this
- # image all we need to do is remove it from the excludes
- if package.pk in included_packages:
- try:
- recipe.excludes_set.remove(package)
- return {"error": "ok"}
- except Package.DoesNotExist:
- return {"error":
- "Package %s not found in excludes but was in "
- "included list" % package.name}
-
- else:
- recipe.appends_set.add(package)
- # Make sure that package is not in the excludes set
- try:
- recipe.excludes_set.remove(package)
- except:
- pass
- # Add the dependencies we think will be added to the recipe
- # as a result of appending this package.
- # TODO this should recurse down the entire deps tree
- for dep in package.package_dependencies_source.all_depends():
- try:
- cust_package = CustomImagePackage.objects.get(
- name=dep.depends_on.name)
-
- recipe.includes_set.add(cust_package)
- try:
- # When adding the pre-requisite package, make
- # sure it's not in the excluded list from a
- # prior removal.
- recipe.excludes_set.remove(cust_package)
- except Package.DoesNotExist:
- # Don't care if the package had never been excluded
- pass
- except:
- logger.warning("Could not add package's suggested"
- "dependencies to the list")
-
- return {"error": "ok"}
-
- elif request.method == 'DELETE':
- try:
- # If we're deleting a package which is included we need to
- # Add it to the excludes list.
- if package.pk in included_packages:
- recipe.excludes_set.add(package)
- else:
- recipe.appends_set.remove(package)
- all_current_packages = recipe.get_all_packages()
- reverse_deps_dictlist = _get_all_dependents(package.pk, all_current_packages)
- ids = [entry['pk'] for entry in reverse_deps_dictlist]
- reverse_deps = CustomImagePackage.objects.filter(id__in=ids)
- for r in reverse_deps:
- try:
- if r.id in included_packages:
- recipe.excludes_set.add(r)
- else:
- recipe.appends_set.remove(r)
- except:
- pass
-
- return {"error": "ok"}
- except CustomImageRecipe.DoesNotExist:
- return {"error": "Tried to remove package that wasn't present"}
-
- else:
- return {"error": "Method %s is not supported" % request.method}
-
def importlayer(request, pid):
template = "importlayer.html"
context = {
@@ -2811,20 +1643,33 @@ if True:
}
return render(request, template, context)
+ # TODO merge with api pseudo api here is used for deps modal
@_template_renderer('layerdetails.html')
def layerdetails(request, pid, layerid):
project = Project.objects.get(pk=pid)
layer_version = Layer_Version.objects.get(pk=layerid)
- context = {'project' : project,
- 'layerversion' : layer_version,
- 'layerdeps' : {"list": [{"id": dep.id,
- "name": dep.layer.name,
- "layerdetailurl": reverse('layerdetails', args=(pid, dep.pk)),
- "vcs_url": dep.layer.vcs_url,
- "vcs_reference": dep.get_vcs_reference()} \
- for dep in layer_version.get_alldeps(project.id)]},
- 'projectlayers': map(lambda prjlayer: prjlayer.layercommit.id, ProjectLayer.objects.filter(project=project))
+ project_layers = ProjectLayer.objects.filter(
+ project=project).values_list("layercommit_id",
+ flat=True)
+
+ context = {
+ 'project': project,
+ 'layer_source': LayerSource.types_dict(),
+ 'layerversion': layer_version,
+ 'layerdeps': {
+ "list": [
+ {
+ "id": dep.id,
+ "name": dep.layer.name,
+ "layerdetailurl": reverse('layerdetails',
+ args=(pid, dep.pk)),
+ "vcs_url": dep.layer.vcs_url,
+ "vcs_reference": dep.get_vcs_reference()
+ }
+ for dep in layer_version.get_alldeps(project.id)]
+ },
+ 'projectlayers': list(project_layers)
}
return context
@@ -2839,7 +1684,7 @@ if True:
vars_blacklist = {
'PARALLEL_MAKE','BB_NUMBER_THREADS',
'BB_DISKMON_DIRS','BB_NUMBER_THREADS','CVS_PROXY_HOST','CVS_PROXY_PORT',
- 'PARALLEL_MAKE','SSTATE_MIRRORS','TMPDIR',
+ 'PARALLEL_MAKE','TMPDIR',
'all_proxy','ftp_proxy','http_proxy ','https_proxy'
}
@@ -2887,7 +1732,7 @@ if True:
else:
context['dl_dir'] = ProjectVariable.objects.get(project = prj, name = "DL_DIR").value
context['dl_dir_defined'] = "1"
- except ProjectVariable.DoesNotExist,BuildEnvironment.DoesNotExist:
+ except (ProjectVariable.DoesNotExist, BuildEnvironment.DoesNotExist):
pass
try:
context['fstypes'] = ProjectVariable.objects.get(project = prj, name = "IMAGE_FSTYPES").value
@@ -2915,7 +1760,7 @@ if True:
else:
context['sstate_dir'] = ProjectVariable.objects.get(project = prj, name = "SSTATE_DIR").value
context['sstate_dir_defined'] = "1"
- except ProjectVariable.DoesNotExist, BuildEnvironment.DoesNotExist:
+ except (ProjectVariable.DoesNotExist, BuildEnvironment.DoesNotExist):
pass
return context
@@ -2936,12 +1781,20 @@ if True:
elif artifact_type == "imagefile":
file_name = Target_Image_File.objects.get(target__build = build, pk = artifact_id).file_name
- elif artifact_type == "buildartifact":
- file_name = BuildArtifact.objects.get(build = build, pk = artifact_id).file_name
+ elif artifact_type == "targetkernelartifact":
+ target = TargetKernelFile.objects.get(pk=artifact_id)
+ file_name = target.file_name
+
+ elif artifact_type == "targetsdkartifact":
+ target = TargetSDKFile.objects.get(pk=artifact_id)
+ file_name = target.file_name
elif artifact_type == "licensemanifest":
file_name = Target.objects.get(build = build, pk = artifact_id).license_manifest_path
+ elif artifact_type == "packagemanifest":
+ file_name = Target.objects.get(build = build, pk = artifact_id).package_manifest_path
+
elif artifact_type == "tasklogfile":
file_name = Task.objects.get(build = build, pk = artifact_id).logfile
@@ -2967,7 +1820,7 @@ if True:
)
if file_name and response_file_name:
- fsock = open(file_name, "r")
+ fsock = open(file_name, "rb")
content_type = MimeTypeFinder.get_mimetype(file_name)
response = HttpResponse(fsock, content_type = content_type)
@@ -2978,5 +1831,5 @@ if True:
return response
else:
return render(request, "unavailable_artifact.html")
- except ObjectDoesNotExist, IOError:
+ except (ObjectDoesNotExist, IOError):
return render(request, "unavailable_artifact.html")
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/widgets.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/widgets.py
index d2ef5d3db..026903d35 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/widgets.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/widgets.py
@@ -22,30 +22,41 @@
from django.views.generic import View, TemplateView
from django.views.decorators.cache import cache_control
from django.shortcuts import HttpResponse
-from django.http import HttpResponseBadRequest
-from django.core import serializers
from django.core.cache import cache
from django.core.paginator import Paginator, EmptyPage
from django.db.models import Q
-from orm.models import Project, ProjectLayer, Layer_Version
+from orm.models import Project, Build
from django.template import Context, Template
+from django.template import VariableDoesNotExist
+from django.template import TemplateSyntaxError
from django.core.serializers.json import DjangoJSONEncoder
from django.core.exceptions import FieldError
-from django.conf.urls import url, patterns
+from django.utils import timezone
+from toastergui.templatetags.projecttags import sectohms, get_tasks
+from toastergui.templatetags.projecttags import json as template_json
+from django.http import JsonResponse
+from django.core.urlresolvers import reverse
import types
import json
import collections
-import operator
import re
-import urllib
+
+try:
+ from urllib import unquote_plus
+except ImportError:
+ from urllib.parse import unquote_plus
import logging
logger = logging.getLogger("toaster")
-from toastergui.views import objtojson
from toastergui.tablefilter import TableFilterMap
+
+class NoFieldOrDataName(Exception):
+ pass
+
+
class ToasterTable(TemplateView):
def __init__(self, *args, **kwargs):
super(ToasterTable, self).__init__()
@@ -63,25 +74,20 @@ class ToasterTable(TemplateView):
self.empty_state = "Sorry - no data found"
self.default_orderby = ""
- # add the "id" column, undisplayable, by default
- self.add_column(title="Id",
- displayable=False,
- orderable=True,
- field_name="id")
-
# prevent HTTP caching of table data
- @cache_control(must_revalidate=True, max_age=0, no_store=True, no_cache=True)
+ @cache_control(must_revalidate=True,
+ max_age=0, no_store=True, no_cache=True)
def dispatch(self, *args, **kwargs):
return super(ToasterTable, self).dispatch(*args, **kwargs)
def get_context_data(self, **kwargs):
context = super(ToasterTable, self).get_context_data(**kwargs)
context['title'] = self.title
- context['table_name'] = type(self).__name__.lower()
+ context['table_name'] = type(self).__name__.lower()
+ context['empty_state'] = self.empty_state
return context
-
def get(self, request, *args, **kwargs):
if request.GET.get('format', None) == 'json':
@@ -102,8 +108,6 @@ class ToasterTable(TemplateView):
return super(ToasterTable, self).get(request, *args, **kwargs)
def get_filter_info(self, request, **kwargs):
- data = None
-
self.setup_filters(**kwargs)
search = request.GET.get("search", None)
@@ -117,13 +121,18 @@ class ToasterTable(TemplateView):
cls=DjangoJSONEncoder)
def setup_columns(self, *args, **kwargs):
- """ function to implement in the subclass which sets up the columns """
+ """ function to implement in the subclass which sets up
+ the columns """
pass
+
def setup_filters(self, *args, **kwargs):
- """ function to implement in the subclass which sets up the filters """
+ """ function to implement in the subclass which sets up the
+ filters """
pass
+
def setup_queryset(self, *args, **kwargs):
- """ function to implement in the subclass which sets up the queryset"""
+ """ function to implement in the subclass which sets up the
+ queryset"""
pass
def add_filter(self, table_filter):
@@ -137,7 +146,6 @@ class ToasterTable(TemplateView):
def add_column(self, title="", help_text="",
orderable=False, hideable=True, hidden=False,
field_name="", filter_name=None, static_data_name=None,
- displayable=True, computation=None,
static_data_template=None):
"""Add a column to the table.
@@ -155,18 +163,15 @@ class ToasterTable(TemplateView):
as data
"""
- self.columns.append({'title' : title,
- 'help_text' : help_text,
- 'orderable' : orderable,
- 'hideable' : hideable,
- 'hidden' : hidden,
- 'field_name' : field_name,
- 'filter_name' : filter_name,
+ self.columns.append({'title': title,
+ 'help_text': help_text,
+ 'orderable': orderable,
+ 'hideable': hideable,
+ 'hidden': hidden,
+ 'field_name': field_name,
+ 'filter_name': filter_name,
'static_data_name': static_data_name,
- 'static_data_template': static_data_template,
- 'displayable': displayable,
- 'computation': computation,
- })
+ 'static_data_template': static_data_template})
def set_column_hidden(self, title, hidden):
"""
@@ -190,8 +195,8 @@ class ToasterTable(TemplateView):
"""Utility function to render the static data template"""
context = {
- 'extra' : self.static_context_extra,
- 'data' : row,
+ 'extra': self.static_context_extra,
+ 'data': row,
}
context = Context(context)
@@ -216,7 +221,7 @@ class ToasterTable(TemplateView):
try:
filter_name, action_name = filters.split(':')
- action_params = urllib.unquote_plus(filter_value)
+ action_params = unquote_plus(filter_value)
except ValueError:
return
@@ -241,20 +246,25 @@ class ToasterTable(TemplateView):
if not hasattr(self.queryset.model, 'search_allowed_fields'):
raise Exception("Search fields aren't defined in the model %s"
- % self.queryset.model)
+ % self.queryset.model)
- search_queries = []
+ search_queries = None
for st in search_term.split(" "):
- q_map = [Q(**{field + '__icontains': st})
- for field in self.queryset.model.search_allowed_fields]
-
- search_queries.append(reduce(operator.or_, q_map))
-
- search_queries = reduce(operator.and_, search_queries)
+ queries = None
+ for field in self.queryset.model.search_allowed_fields:
+ query = Q(**{field + '__icontains': st})
+ if queries:
+ queries |= query
+ else:
+ queries = query
+
+ if search_queries:
+ search_queries &= queries
+ else:
+ search_queries = queries
self.queryset = self.queryset.filter(search_queries)
-
def get_data(self, request, **kwargs):
"""
Returns the data for the page requested with the specified
@@ -262,7 +272,8 @@ class ToasterTable(TemplateView):
filters: filter and action name, e.g. "outcome:build_succeeded"
filter_value: value to pass to the named filter+action, e.g. "on"
- (for a toggle filter) or "2015-12-11,2015-12-12" (for a date range filter)
+ (for a toggle filter) or "2015-12-11,2015-12-12"
+ (for a date range filter)
"""
page_num = request.GET.get("page", 1)
@@ -276,12 +287,12 @@ class ToasterTable(TemplateView):
# Make a unique cache name
cache_name = self.__class__.__name__
- for key, val in request.GET.iteritems():
+ for key, val in request.GET.items():
if key == 'nocache':
continue
cache_name = cache_name + str(key) + str(val)
- for key, val in kwargs.iteritems():
+ for key, val in kwargs.items():
cache_name = cache_name + str(key) + str(val)
# No special chars allowed in the cache name apart from dash
@@ -313,16 +324,16 @@ class ToasterTable(TemplateView):
page = paginator.page(1)
data = {
- 'total' : self.queryset.count(),
- 'default_orderby' : self.default_orderby,
- 'columns' : self.columns,
- 'rows' : [],
- 'error' : "ok",
+ 'total': self.queryset.count(),
+ 'default_orderby': self.default_orderby,
+ 'columns': self.columns,
+ 'rows': [],
+ 'error': "ok",
}
try:
- for row in page.object_list:
- #Use collection to maintain the order
+ for model_obj in page.object_list:
+ # Use collection to maintain the order
required_data = collections.OrderedDict()
for col in self.columns:
@@ -330,44 +341,73 @@ class ToasterTable(TemplateView):
if not field:
field = col['static_data_name']
if not field:
- raise Exception("Must supply a field_name or static_data_name for column %s.%s" % (self.__class__.__name__,col))
+ raise NoFieldOrDataName("Must supply a field_name or"
+ "static_data_name for column"
+ "%s.%s" %
+ (self.__class__.__name__, col)
+ )
+
# Check if we need to process some static data
if "static_data_name" in col and col['static_data_name']:
- required_data["static:%s" % col['static_data_name']] = self.render_static_data(col['static_data_template'], row)
-
# Overwrite the field_name with static_data_name
# so that this can be used as the html class name
-
col['field_name'] = col['static_data_name']
- # compute the computation on the raw data if needed
- model_data = row
- if col['computation']:
- model_data = col['computation'](row)
+ try:
+ # Render the template given
+ required_data[col['static_data_name']] = \
+ self.render_static_data(
+ col['static_data_template'], model_obj)
+ except (TemplateSyntaxError,
+ VariableDoesNotExist) as e:
+ logger.error("could not render template code"
+ "%s %s %s",
+ col['static_data_template'],
+ e, self.__class__.__name__)
+ required_data[col['static_data_name']] =\
+ '<!--error-->'
+
else:
- # Traverse to any foriegn key in the object hierachy
- for subfield in field.split("__"):
- if hasattr(model_data, subfield):
- model_data = getattr(model_data, subfield)
- # The field could be a function on the model so check
- # If it is then call it
+ # Traverse to any foriegn key in the field
+ # e.g. recipe__layer_version__name
+ model_data = None
+
+ if "__" in field:
+ for subfield in field.split("__"):
+ if not model_data:
+ # The first iteration is always going to
+ # be on the actual model object instance.
+ # Subsequent ones are on the result of
+ # that. e.g. forieng key objects
+ model_data = getattr(model_obj,
+ subfield)
+ else:
+ model_data = getattr(model_data,
+ subfield)
+
+ else:
+ model_data = getattr(model_obj,
+ col['field_name'])
+
+ # We might have a model function as the field so
+ # call it to return the data needed
if isinstance(model_data, types.MethodType):
- model_data = model_data()
+ model_data = model_data()
- required_data[col['field_name']] = model_data
+ required_data[col['field_name']] = model_data
data['rows'].append(required_data)
except FieldError:
# pass it to the user - programming-error here
raise
- data = json.dumps(data, indent=2, default=objtojson)
+
+ data = json.dumps(data, indent=2, cls=DjangoJSONEncoder)
cache.set(cache_name, data, 60*30)
return data
-
class ToasterTypeAhead(View):
""" A typeahead mechanism to support the front end typeahead widgets """
MAX_RESULTS = 6
@@ -388,34 +428,142 @@ class ToasterTypeAhead(View):
error = "ok"
search_term = request.GET.get("search", None)
- if search_term == None:
+ if search_term is None:
# We got no search value so return empty reponse
- return response({'error' : error , 'results': []})
+ return response({'error': error, 'results': []})
try:
prj = Project.objects.get(pk=kwargs['pid'])
except KeyError:
prj = None
- results = self.apply_search(search_term, prj, request)[:ToasterTypeAhead.MAX_RESULTS]
+ results = self.apply_search(search_term,
+ prj,
+ request)[:ToasterTypeAhead.MAX_RESULTS]
if len(results) > 0:
try:
self.validate_fields(results[0])
- except MissingFieldsException as e:
+ except self.MissingFieldsException as e:
error = e
- data = { 'results' : results,
- 'error' : error,
- }
+ data = {'results': results,
+ 'error': error}
return response(data)
def validate_fields(self, result):
- if 'name' in result == False or 'detail' in result == False:
- raise MissingFieldsException("name and detail are required fields")
+ if 'name' in result is False or 'detail' in result is False:
+ raise self.MissingFieldsException(
+ "name and detail are required fields")
def apply_search(self, search_term, prj):
""" Override this function to implement search. Return an array of
dictionaries with a minium of a name and detail field"""
pass
+
+
+class MostRecentBuildsView(View):
+ def _was_yesterday_or_earlier(self, completed_on):
+ now = timezone.now()
+ delta = now - completed_on
+
+ if delta.days >= 1:
+ return True
+
+ return False
+
+ def get(self, request, *args, **kwargs):
+ """
+ Returns a list of builds in JSON format.
+ """
+ project = None
+
+ project_id = request.GET.get('project_id', None)
+ if project_id:
+ try:
+ project = Project.objects.get(pk=project_id)
+ except:
+ # if project lookup fails, assume no project
+ pass
+
+ recent_build_objs = Build.get_recent(project)
+ recent_builds = []
+
+ for build_obj in recent_build_objs:
+ dashboard_url = reverse('builddashboard', args=(build_obj.pk,))
+ buildtime_url = reverse('buildtime', args=(build_obj.pk,))
+ rebuild_url = \
+ reverse('xhr_buildrequest', args=(build_obj.project.pk,))
+ cancel_url = \
+ reverse('xhr_buildrequest', args=(build_obj.project.pk,))
+
+ build = {}
+ build['id'] = build_obj.pk
+ build['dashboard_url'] = dashboard_url
+
+ buildrequest_id = None
+ if hasattr(build_obj, 'buildrequest'):
+ buildrequest_id = build_obj.buildrequest.pk
+ build['buildrequest_id'] = buildrequest_id
+
+ build['recipes_parsed_percentage'] = \
+ int((build_obj.recipes_parsed /
+ build_obj.recipes_to_parse) * 100)
+
+ tasks_complete_percentage = 0
+ if build_obj.outcome in (Build.SUCCEEDED, Build.FAILED):
+ tasks_complete_percentage = 100
+ elif build_obj.outcome == Build.IN_PROGRESS:
+ tasks_complete_percentage = build_obj.completeper()
+ build['tasks_complete_percentage'] = tasks_complete_percentage
+
+ build['state'] = build_obj.get_state()
+
+ build['errors'] = build_obj.errors.count()
+ build['dashboard_errors_url'] = dashboard_url + '#errors'
+
+ build['warnings'] = build_obj.warnings.count()
+ build['dashboard_warnings_url'] = dashboard_url + '#warnings'
+
+ build['buildtime'] = sectohms(build_obj.timespent_seconds)
+ build['buildtime_url'] = buildtime_url
+
+ build['rebuild_url'] = rebuild_url
+ build['cancel_url'] = cancel_url
+
+ build['is_default_project_build'] = build_obj.project.is_default
+
+ build['build_targets_json'] = \
+ template_json(get_tasks(build_obj.target_set.all()))
+
+ # convert completed_on time to user's timezone
+ completed_on = timezone.localtime(build_obj.completed_on)
+
+ completed_on_template = '%H:%M'
+ if self._was_yesterday_or_earlier(completed_on):
+ completed_on_template = '%d/%m/%Y ' + completed_on_template
+ build['completed_on'] = completed_on.strftime(
+ completed_on_template)
+
+ targets = []
+ target_objs = build_obj.get_sorted_target_list()
+ for target_obj in target_objs:
+ if target_obj.task:
+ targets.append(target_obj.target + ':' + target_obj.task)
+ else:
+ targets.append(target_obj.target)
+ build['targets'] = ' '.join(targets)
+
+ # abbreviated form of the full target list
+ abbreviated_targets = ''
+ num_targets = len(targets)
+ if num_targets > 0:
+ abbreviated_targets = targets[0]
+ if num_targets > 1:
+ abbreviated_targets += (' +%s' % (num_targets - 1))
+ build['targets_abbreviated'] = abbreviated_targets
+
+ recent_builds.append(build)
+
+ return JsonResponse(recent_builds, safe=False)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
index ff93e549d..0bef8d410 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/builddelete.py
@@ -15,7 +15,7 @@ class Command(BaseCommand):
try:
b = Build.objects.get(pk = bid)
except ObjectDoesNotExist:
- print 'build %s does not exist, skipping...' %(bid)
+ print('build %s does not exist, skipping...' %(bid))
continue
# theoretically, just b.delete() would suffice
# however SQLite runs into problems when you try to
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
index cad987fd9..8dfef0aa0 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/buildslist.py
@@ -10,4 +10,4 @@ class Command(NoArgsCommand):
def handle_noargs(self,**options):
for b in Build.objects.all():
- print "%d: %s %s %s" % (b.pk, b.machine, b.distro, ",".join([x.target for x in b.target_set.all()]))
+ print("%d: %s %s %s" % (b.pk, b.machine, b.distro, ",".join([x.target for x in b.target_set.all()])))
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/get-dburl.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/get-dburl.py
deleted file mode 100644
index 22b3eb79e..000000000
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/get-dburl.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from toastermain.settings import getDATABASE_URL
-from django.core.management.base import NoArgsCommand
-
-class Command(NoArgsCommand):
- args = ""
- help = "get database url"
-
- def handle_noargs(self,**options):
- print getDATABASE_URL()
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/perf.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/perf.py
index 71a48e95d..6b450bbdf 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/perf.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/management/commands/perf.py
@@ -25,7 +25,7 @@ class Command(BaseCommand):
info = self.url_info(full_url)
status_code = info[0]
load_time = info[1]
- print 'Trying \'' + full_url + '\', ' + str(status_code) + ', ' + str(load_time)
+ print('Trying \'' + full_url + '\', ' + str(status_code) + ', ' + str(load_time))
def get_full_url(self, url_patt, url_root_res):
full_url = str(url_patt).split('^')[1].replace('$>', '').replace('(?P<file_path>(?:/[', '/bin/busybox').replace('.*', '')
@@ -54,5 +54,5 @@ class Command(BaseCommand):
def error(self, *args):
for arg in args:
- print >>sys.stderr, arg,
- print >>sys.stderr
+ print(arg, end=' ', file=sys.stderr)
+ print(file=sys.stderr)
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings.py
index 74ab60462..3dfa2b223 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings.py
@@ -21,7 +21,7 @@
# Django settings for Toaster project.
-import os, re
+import os
DEBUG = True
TEMPLATE_DEBUG = DEBUG
@@ -38,14 +38,19 @@ ADMINS = (
MANAGERS = ADMINS
+TOASTER_SQLITE_DEFAULT_DIR = os.path.join(os.environ.get('TOASTER_DIR', ''),
+ 'build')
+
DATABASES = {
'default': {
- 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'toaster.sqlite', # Or path to database file if using sqlite3.
+ # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+ 'ENGINE': 'django.db.backends.sqlite3',
+ # DB name or full path to database file if using sqlite3.
+ 'NAME': "%s/toaster.sqlite" % TOASTER_SQLITE_DEFAULT_DIR,
'USER': '',
'PASSWORD': '',
- 'HOST': '127.0.0.1', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
- 'PORT': '3306', # Set to empty string for default.
+ #'HOST': '127.0.0.1', # e.g. mysql server
+ #'PORT': '3306', # e.g. mysql port
}
}
@@ -55,58 +60,6 @@ DATABASES = {
if 'sqlite' in DATABASES['default']['ENGINE']:
DATABASES['default']['OPTIONS'] = { 'timeout': 20 }
-# Reinterpret database settings if we have DATABASE_URL environment variable defined
-
-if 'DATABASE_URL' in os.environ:
- dburl = os.environ['DATABASE_URL']
-
- if dburl.startswith('sqlite3://'):
- result = re.match('sqlite3://(.*)', dburl)
- if result is None:
- raise Exception("ERROR: Could not read sqlite database url: %s" % dburl)
- DATABASES['default'] = {
- 'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': result.group(1),
- 'USER': '',
- 'PASSWORD': '',
- 'HOST': '',
- 'PORT': '',
- }
- elif dburl.startswith('mysql://'):
- # URL must be in this form: mysql://user:pass@host:port/name
- result = re.match(r"mysql://([^:]*):([^@]*)@([^:]*):(\d*)/([^/]*)", dburl)
- if result is None:
- raise Exception("ERROR: Could not read mysql database url: %s" % dburl)
- DATABASES['default'] = {
- 'ENGINE': 'django.db.backends.mysql',
- 'NAME': result.group(5),
- 'USER': result.group(1),
- 'PASSWORD': result.group(2),
- 'HOST': result.group(3),
- 'PORT': result.group(4),
- }
- else:
- raise Exception("FIXME: Please implement missing database url schema for url: %s" % dburl)
-
-
-# Allows current database settings to be exported as a DATABASE_URL environment variable value
-
-def getDATABASE_URL():
- d = DATABASES['default']
- if d['ENGINE'] == 'django.db.backends.sqlite3':
- if d['NAME'] == ':memory:':
- return 'sqlite3://:memory:'
- elif d['NAME'].startswith("/"):
- return 'sqlite3://' + d['NAME']
- return "sqlite3://" + os.path.join(os.getcwd(), d['NAME'])
-
- elif d['ENGINE'] == 'django.db.backends.mysql':
- return "mysql://" + d['USER'] + ":" + d['PASSWORD'] + "@" + d['HOST'] + ":" + d['PORT'] + "/" + d['NAME']
-
- raise Exception("FIXME: Please implement missing database url schema for engine: %s" % d['ENGINE'])
-
-
-
# Hosts/domain names that are valid for this site; required if DEBUG is False
# See https://docs.djangoproject.com/en/1.5/ref/settings/#allowed-hosts
ALLOWED_HOSTS = []
@@ -134,17 +87,16 @@ else:
try:
import pytz
from pytz.exceptions import UnknownTimeZoneError
- pass
try:
if pytz.timezone(zonename) is not None:
- zonefilelist[hashlib.md5(open(filepath).read()).hexdigest()] = zonename
- except UnknownTimeZoneError, ValueError:
+ zonefilelist[hashlib.md5(open(filepath, 'rb').read()).hexdigest()] = zonename
+ except UnknownTimeZoneError as ValueError:
# we expect timezone failures here, just move over
pass
except ImportError:
- zonefilelist[hashlib.md5(open(filepath).read()).hexdigest()] = zonename
+ zonefilelist[hashlib.md5(open(filepath, 'rb').read()).hexdigest()] = zonename
- TIME_ZONE = zonefilelist[hashlib.md5(open('/etc/localtime').read()).hexdigest()]
+ TIME_ZONE = zonefilelist[hashlib.md5(open('/etc/localtime', 'rb').read()).hexdigest()]
# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
@@ -321,7 +273,7 @@ currentdir = os.path.dirname(__file__)
for t in os.walk(os.path.dirname(currentdir)):
modulename = os.path.basename(t[0])
#if we have a virtualenv skip it to avoid incorrect imports
- if os.environ.has_key('VIRTUAL_ENV') and os.environ['VIRTUAL_ENV'] in t[0]:
+ if 'VIRTUAL_ENV' in os.environ and os.environ['VIRTUAL_ENV'] in t[0]:
continue
if ("views.py" in t[2] or "models.py" in t[2]) and not modulename in INSTALLED_APPS:
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings_test.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings_test.py
new file mode 100644
index 000000000..a32271157
--- /dev/null
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/settings_test.py
@@ -0,0 +1,41 @@
+#
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# Django settings for Toaster project.
+
+# Settings overlay to use for running tests
+# DJANGO_SETTINGS_MODULE=toastermain.settings-test
+
+from toastermain.settings import *
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': '/tmp/toaster-test-db.sqlite',
+ 'TEST': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': '/tmp/toaster-test-db.sqlite',
+ }
+ }
+}
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/urls.py b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/urls.py
index 534679dc5..1f8599edc 100644
--- a/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/urls.py
+++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastermain/urls.py
@@ -71,7 +71,7 @@ import os
currentdir = os.path.dirname(__file__)
for t in os.walk(os.path.dirname(currentdir)):
#if we have a virtualenv skip it to avoid incorrect imports
- if os.environ.has_key('VIRTUAL_ENV') and os.environ['VIRTUAL_ENV'] in t[0]:
+ if 'VIRTUAL_ENV' in os.environ and os.environ['VIRTUAL_ENV'] in t[0]:
continue
if "urls.py" in t[2] and t[0] != currentdir:
@@ -84,7 +84,7 @@ for t in os.walk(os.path.dirname(currentdir)):
if not conflict:
urlpatterns.insert(0, url(r'^' + modulename + '/', include ( modulename + '.urls')))
else:
- logger.warn("Module \'%s\' has a regexp conflict, was not added to the urlpatterns" % modulename)
+ logger.warning("Module \'%s\' has a regexp conflict, was not added to the urlpatterns" % modulename)
from pprint import pformat
#logger.debug("urlpatterns list %s", pformat(urlpatterns))
diff --git a/import-layers/yocto-poky/bitbake/toaster-requirements.txt b/import-layers/yocto-poky/bitbake/toaster-requirements.txt
index 0e8c742cb..e61c8e2aa 100644
--- a/import-layers/yocto-poky/bitbake/toaster-requirements.txt
+++ b/import-layers/yocto-poky/bitbake/toaster-requirements.txt
@@ -1,4 +1,3 @@
Django>1.8,<1.9
-argparse==1.2.1
-wsgiref==0.1.2
beautifulsoup4>=4.4.0
+pytz
diff --git a/import-layers/yocto-poky/documentation/Makefile b/import-layers/yocto-poky/documentation/Makefile
index 418d3ca8c..9077c8121 100644
--- a/import-layers/yocto-poky/documentation/Makefile
+++ b/import-layers/yocto-poky/documentation/Makefile
@@ -133,7 +133,7 @@ TARFILES = dev-style.css dev-manual.html \
figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-overview-1.png figures/kernel-overview-2-generic.png \
figures/source-repos.png figures/yp-download.png \
- figures/recipe-workflow.png figures/build-workspace-directory.png \
+ figures/recipe-workflow.png \
figures/devtool-add-flow.png figures/devtool-modify-flow.png \
figures/devtool-upgrade-flow.png \
eclipse
@@ -249,7 +249,8 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png \
figures/compatible-layers.png figures/import-layer.png figures/new-project.png \
figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
figures/sdk-devtool-add-flow.png figures/sdk-installed-extensible-sdk-directory.png \
- figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png
+ figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
+ figures/sdk-devtool-upgrade-flow.png
endif
MANUALS = $(DOC)/$(DOC).html
@@ -269,7 +270,8 @@ TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
figures/images.png figures/sdk.png figures/source-fetching.png \
figures/patching.png figures/configuration-compile-autoreconf.png \
figures/analysis-for-package-splitting.png figures/image-generation.png \
- figures/sdk-generation.png figures/building-an-image.png
+ figures/sdk-generation.png figures/building-an-image.png \
+ figures/build-workspace-directory.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
@@ -282,6 +284,7 @@ TARFILES = sdk-manual.html sdk-style.css figures/sdk-title.png \
figures/sdk-environment.png figures/sdk-installed-standard-sdk-directory.png \
figures/sdk-installed-extensible-sdk-directory.png figures/sdk-devtool-add-flow.png \
figures/sdk-devtool-modify-flow.png figures/sdk-eclipse-dev-flow.png \
+ figures/sdk-devtool-upgrade-flow.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
diff --git a/import-layers/yocto-poky/documentation/bsp-guide/bsp-guide.xml b/import-layers/yocto-poky/documentation/bsp-guide/bsp-guide.xml
index c00b3458c..1bbdb70fe 100644
--- a/import-layers/yocto-poky/documentation/bsp-guide/bsp-guide.xml
+++ b/import-layers/yocto-poky/documentation/bsp-guide/bsp-guide.xml
@@ -108,6 +108,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
diff --git a/import-layers/yocto-poky/documentation/bsp-guide/bsp.xml b/import-layers/yocto-poky/documentation/bsp-guide/bsp.xml
index b0562c7d4..4d0ace048 100644
--- a/import-layers/yocto-poky/documentation/bsp-guide/bsp.xml
+++ b/import-layers/yocto-poky/documentation/bsp-guide/bsp.xml
@@ -1467,20 +1467,19 @@
5) MIPS (32-bit)
6) MIPS64 (64-bit)
3
- Would you like to use the default (4.1) kernel? (y/n) [default: y]
+ Would you like to use the default (4.8) kernel? (y/n) [default: y]
Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n] [default: y]
- Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-4.1.git...
- Please choose a machine branch to base your new BSP branch on: [default: standard/base]
+ Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-4.8.git...
+ Please choose a machine branch to base this BSP on: [default: standard/base]
1) standard/arm-versatile-926ejs
2) standard/base
- 3) standard/beagleboard
- 4) standard/beaglebone
- 5) standard/edgerouter
- 6) standard/fsl-mpc8315e-rdb
- 7) standard/mti-malta32
- 8) standard/mti-malta64
- 9) standard/qemuarm64
- 10) standard/qemuppc
+ 3) standard/beaglebone
+ 4) standard/edgerouter
+ 5) standard/fsl-mpc8315e-rdb
+ 6) standard/mti-malta32
+ 7) standard/mti-malta64
+ 8) standard/qemuarm64
+ 9) standard/qemuppc
1
Would you like SMP support? (y/n) [default: y]
Does your BSP have a touchscreen? (y/n) [default: n]
@@ -1495,7 +1494,7 @@
In the example, we use the ARM architecture.
</para></listitem>
<listitem><para>The script then prompts you for the kernel.
- The default 4.4 kernel is acceptable.
+ The default 4.8 kernel is acceptable.
So, the example accepts the default.
If you enter 'n', the script prompts you to further enter the kernel
you do want to use.</para></listitem>
diff --git a/import-layers/yocto-poky/documentation/dev-manual/dev-manual-common-tasks.xml b/import-layers/yocto-poky/documentation/dev-manual/dev-manual-common-tasks.xml
index f926f1d47..086d0bad9 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/import-layers/yocto-poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -1254,27 +1254,57 @@
<para>
You can always write a recipe from scratch.
- However, two choices exist that can help you quickly get a
+ However, three choices exist that can help you quickly get a
start on a new recipe:
<itemizedlist>
- <listitem><para><emphasis><filename>recipetool</filename>:</emphasis>
- A tool provided by the Yocto Project that automates
+ <listitem><para>
+ <emphasis><filename>devtool add</filename>:</emphasis>
+ A command that assists in creating a recipe and
+ an environment conducive to development.
+ </para></listitem>
+ <listitem><para>
+ <emphasis><filename>recipetool create</filename>:</emphasis>
+ A command provided by the Yocto Project that automates
creation of a base recipe based on the source
files.
</para></listitem>
- <listitem><para><emphasis>Existing Recipes:</emphasis>
+ <listitem><para>
+ <emphasis>Existing Recipes:</emphasis>
Location and modification of an existing recipe that is
similar in function to the recipe you need.
</para></listitem>
</itemizedlist>
</para>
+ <section id='new-recipe-creating-the-base-recipe-using-devtool'>
+ <title>Creating the Base Recipe Using <filename>devtool add</filename></title>
+
+ <para>
+ The <filename>devtool add</filename> command uses the same
+ logic for auto-creating the recipe as
+ <filename>recipetool create</filename>, which is listed
+ below.
+ Additionally, however, <filename>devtool add</filename>
+ sets up an environment that makes it easy for you to
+ patch the source and to make changes to the recipe as
+ is often necessary when adding a recipe to build a new
+ piece of software to be included in a build.
+ </para>
+
+ <para>
+ You can find a complete description of the
+ <filename>devtool add</filename> command in the
+ "<link linkend='use-devtool-to-integrate-new-code'>Use <filename>devtool add</filename> to Add an Application</link>"
+ section.
+ </para>
+ </section>
+
<section id='new-recipe-creating-the-base-recipe-using-recipetool'>
- <title>Creating the Base Recipe Using <filename>recipetool</filename></title>
+ <title>Creating the Base Recipe Using <filename>recipetool create</filename></title>
<para>
- <filename>recipetool</filename> automates creation of
- a base recipe given a set of source code files.
+ <filename>recipetool create</filename> automates creation
+ of a base recipe given a set of source code files.
As long as you can extract or point to the source files,
the tool will construct a recipe and automatically
configure all pre-build information into the recipe.
@@ -1566,12 +1596,29 @@
or tabs after the slash character.
</note>
</para></listitem>
- <listitem><para><emphasis>Using Variables: <filename>${...}</filename></emphasis> -
- Use the <filename>${<replaceable>varname</replaceable>}</filename> syntax to
+ <listitem><para>
+ <emphasis>Using Variables: <filename>${...}</filename></emphasis> -
+ Use the <filename>${<replaceable>VARNAME</replaceable>}</filename> syntax to
access the contents of a variable:
<literallayout class='monospaced'>
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/zlib-${PV}.tar.gz"
</literallayout>
+ <note>
+ It is important to understand that the value of a
+ variable expressed in this form does not get
+ substituted automatically.
+ The expansion of these expressions happens
+ on-demand later (e.g. usually when a function that
+ makes reference to the variable executes).
+ This behavior ensures that the values are most
+ appropriate for the context in which they are
+ finally used.
+ On the rare occasion that you do need the variable
+ expression to be expanded immediately, you can use
+ the <filename>:=</filename> operator instead of
+ <filename>=</filename> when you make the
+ assignment, but this is not generally needed.
+ </note>
</para></listitem>
<listitem><para><emphasis>Quote All Assignments: <filename>"<replaceable>value</replaceable>"</filename></emphasis> -
Use double quotes around the value in all variable
@@ -1779,11 +1826,12 @@
</para>
<para>
- The per-recipe temporary work directory is constructed as follows and
- depends on several factors:
+ The path to the per-recipe temporary work directory depends
+ on the context in which it is being built.
+ The quickest way to find this path is to have BitBake return it
+ by running the following:
<literallayout class='monospaced'>
- BASE_WORKDIR ?= "${TMPDIR}/work"
- WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
+ $ bitbake -e <replaceable>basename</replaceable> | grep ^WORKDIR=
</literallayout>
As an example, assume a Source Directory top-level folder named
<filename>poky</filename>, a default Build Directory at
@@ -1817,28 +1865,6 @@
"<ulink url='&YOCTO_DOCS_REF_URL;#closer-look'>A Closer Look at the Yocto Project Development Environment</ulink>"
chapter of the Yocto Project Reference Manual.
</para>
-
- <para>
- You can also reference the following variables in the
- Yocto Project Reference Manual's glossary for more information:
- <itemizedlist>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>:
- The top-level build output directory</listitem>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></ulink>:
- The target system identifier</listitem>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink>:
- The recipe name</listitem>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTENDPE'><filename>EXTENDPE</filename></ulink>:
- The epoch - (if
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PE'><filename>PE</filename></ulink>
- is not specified, which is usually the case for most
- recipes, then <filename>EXTENDPE</filename> is blank)</listitem>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink>:
- The recipe version</listitem>
- <listitem><ulink url='&YOCTO_DOCS_REF_URL;#var-PR'><filename>PR</filename></ulink>:
- The recipe revision</listitem>
- </itemizedlist>
- </para>
</section>
<section id='new-recipe-fetching-code'>
@@ -1959,7 +1985,7 @@
Here is an example:
<literallayout class='monospaced'>
SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz;name=tarball \
- ${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.diff.gz;name=patch
+ ${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.diff.gz;name=patch"
SRC_URI[tarball.md5sum] = "b1e6309e8331e0f4e6efd311c2d97fa8"
SRC_URI[tarball.sha256sum] = "7f7d9f60b7766b852881d40b8ff91d8e39fccb0d1d913102a5c75a2dbb52332d"
@@ -2241,6 +2267,83 @@
</section>
+ <section id='new-dependencies'>
+ <title>Dependencies</title>
+
+ <para>
+ Most software packages have a short list of other packages
+ that they require, which are called dependencies.
+ These dependencies fall into two main categories: build-time
+ dependencies, which are required when the software is built;
+ and runtime dependencies, which are required to be installed
+ on the target in order for the software to run.
+ </para>
+
+ <para>
+ Within a recipe, you specify build-time dependencies using the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
+ variable.
+ Although nuances exist, items specified in
+ <filename>DEPENDS</filename> should be names of other recipes.
+ It is important that you specify all build-time dependencies
+ explicitly.
+ If you do not, due to the parallel nature of BitBake's
+ execution, you can end up with a race condition where the
+ dependency is present for one task of a recipe (e.g.
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-configure'><filename>do_configure</filename></ulink>)
+ and then gone when the next task runs (e.g.
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-compile'><filename>do_compile</filename></ulink>).
+ </para>
+
+ <para>
+ Another consideration is that configure scripts might
+ automatically check for optional dependencies and enable
+ corresponding functionality if those dependencies are found.
+ This behavior means that to ensure deterministic results and
+ thus avoid more race conditions, you need to either explicitly
+ specify these dependencies as well, or tell the configure
+ script explicitly to disable the functionality.
+ If you wish to make a recipe that is more generally useful
+ (e.g. publish the recipe in a layer for others to use),
+ instead of hard-disabling the functionality, you can use the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></ulink>
+ variable to allow functionality and the corresponding
+ dependencies to be enabled and disabled easily by other
+ users of the recipe.
+ </para>
+
+ <para>
+ Similar to build-time dependencies, you specify runtime
+ dependencies through a variable -
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-RDEPENDS'><filename>RDEPENDS</filename></ulink>,
+ which is package-specific.
+ All variables that are package-specific need to have the name
+ of the package added to the end as an override.
+ Since the main package for a recipe has the same name as the
+ recipe, and the recipe's name can be found through the
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>
+ variable, then you specify the dependencies for the main
+ package by setting <filename>RDEPENDS_${PN}</filename>.
+ If the package were named <filename>${PN}-tools</filename>,
+ then you would set <filename>RDEPENDS_${PN}-tools</filename>,
+ and so forth.
+ </para>
+
+ <para>
+ Some runtime dependencies will be set automatically at
+ packaging time.
+ These dependencies include any shared library dependencies
+ (i.e. if a package "example" contains "libexample" and
+ another package "mypackage" contains a binary that links to
+ "libexample" then the OpenEmbedded build system will
+ automatically add a runtime dependency to "mypackage" on
+ "example").
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
+ in the Yocto Project Reference Manual for further details.
+ </para>
+ </section>
+
<section id='new-recipe-configuring-the-recipe'>
<title>Configuring the Recipe</title>
@@ -2251,7 +2354,7 @@
configure script with some options, or by modifying a build
configuration file.
<note>
- As of Yocto Project Release 7.1, some of the core recipes
+ As of Yocto Project Release 1.7, some of the core recipes
that package binary configuration scripts now disable the
scripts due to the scripts previously requiring error-prone
path substitution.
@@ -2297,6 +2400,8 @@
However, you might still want to make some adjustments.
For example, you can set
<ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></ulink>
+ or
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
to pass any needed configure options that are specific
to the recipe.</para></listitem>
<listitem><para><emphasis>CMake:</emphasis>
@@ -2770,6 +2875,56 @@
</para>
</section>
+ <section id='new-sharing-files-between-recipes'>
+ <title>Sharing Files Between Recipes</title>
+
+ <para>
+ Recipes often need to use files provided by other recipes on
+ the build host.
+ For example, an application linking to a common library needs
+ access to the library itself and its associated headers.
+ The way this access is accomplished is by populating sysroot
+ with files.
+ One sysroot exists per "machine" for which the image is
+ being built.
+ In practical terms, this means a sysroot exists for the target
+ machine, and a sysroot exists for the build host.
+ <note>
+ You could find the term "staging" used within the Yocto
+ project regarding files populating sysroot.
+ The term "staging" was used for previous releases of
+ the Yocto Project.
+ </note>
+ </para>
+
+ <para>
+ Recipes should never populate the sysroot directly (i.e. write
+ files into sysroot).
+ Instead, files should be installed into standard locations
+ during the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
+ task within the
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>
+ directory.
+ A subset of these files automatically populates the sysroot.
+ The reason for this limitation is that almost all files that
+ populate the sysroot are cataloged in manifests in order to
+ ensure the files can be removed later when a recipe is either
+ modified or removed.
+ Thus, the sysroot is able to remain free from stale files.
+ </para>
+
+ <para>
+ For information on variables you can use to help control how
+ files sysroot is populated, see the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SYSROOT_DIRS_NATIVE'><filename>SYSROOT_DIRS_NATIVE</filename></ulink>,
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SYSROOT_DIRS_BLACKLIST'><filename>SYSROOT_DIRS_BLACKLIST</filename></ulink>
+ variables.
+ </para>
+ </section>
+
<section id='properly-versioning-pre-release-recipes'>
<title>Properly Versioning Pre-Release Recipes</title>
@@ -3011,8 +3166,10 @@
You do not need to add a <filename>do_compile</filename> step since by default BitBake
starts the <filename>make</filename> command to compile the application.
If you need additional <filename>make</filename> options, you should store them in the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'>EXTRA_OEMAKE</ulink></filename>
- variable.
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></ulink>
+ or
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
+ variables.
BitBake passes these options into the GNU <filename>make</filename> invocation.
Note that a <filename>do_install</filename> task is still required.
Otherwise, BitBake runs an empty <filename>do_install</filename> task by default.
@@ -3048,7 +3205,7 @@
PV = "1.5.1+git${SRCPV}"
- S = "${WORKDIR}/git/"
+ S = "${WORKDIR}/git"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
@@ -3179,38 +3336,114 @@
<ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink>
variables in the Yocto Project Reference Manual's variable
glossary.
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ Using
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
+ is a good idea even for components distributed
+ in binary form, and is often necessary for
+ shared libraries.
+ For a shared library, listing the library
+ dependencies in
+ <filename>DEPENDS</filename> makes sure that
+ the libraries are available in the staging
+ sysroot when other recipes link against the
+ library, which might be necessary for
+ successful linking.
+ </para></listitem>
+ <listitem><para>
+ Using <filename>DEPENDS</filename> also
+ allows runtime dependencies between packages
+ to be added automatically.
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</ulink>"
+ section in the Yocto Project Reference Manual
+ for more information.
+ </para></listitem>
+ </itemizedlist>
+ </note>
</para>
<para>
- If you can't use the <filename>bin_package</filename>
+ If you cannot use the <filename>bin_package</filename>
class, you need to be sure you are doing the following:
<itemizedlist>
- <listitem><para>Create a recipe where the
+ <listitem><para>
+ Create a recipe where the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-configure'><filename>do_configure</filename></ulink>
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-compile'><filename>do_compile</filename></ulink>
+ tasks do nothing:
+ It is usually sufficient to just not define these
+ tasks in the recipe, because the default
+ implementations do nothing unless a Makefile is
+ found in
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'><filename>S</filename></ulink><filename>}</filename>.
+ </para>
+
+ <para>If
+ <filename>${S}</filename> might contain a Makefile,
+ or if you inherit some class that replaces
<filename>do_configure</filename> and
- <filename>do_compile</filename> tasks do nothing:
+ <filename>do_compile</filename> with custom
+ versions, then you can use the
+ <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>noexec</filename></ulink><filename>]</filename>
+ flag to turn the tasks into no-ops, as follows:
<literallayout class='monospaced'>
do_configure[noexec] = "1"
do_compile[noexec] = "1"
</literallayout>
- Alternatively, you can make these tasks an empty
- function.
+ Unlike
+ <ulink url='&YOCTO_DOCS_BB_URL;#deleting-a-task'><filename>deleting the tasks</filename></ulink>,
+ using the flag preserves the dependency chain from
+ the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-fetch'><filename>do_fetch</filename></ulink>, <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-unpack'><filename>do_unpack</filename></ulink>,
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-patch'><filename>do_patch</filename></ulink>
+ tasks to the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
+ task.
</para></listitem>
<listitem><para>Make sure your
<filename>do_install</filename> task installs the
binaries appropriately.
</para></listitem>
<listitem><para>Ensure that you set up
- <filename>FILES</filename> (usually
- <filename>FILES_${PN}</filename>) to point to the
- files you have installed, which of course depends
- on where you have installed them and whether
- those files are in different locations than the
- defaults.
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-FILES'><filename>FILES</filename></ulink>
+ (usually
+ <filename>FILES_${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>)
+ to point to the files you have installed, which of
+ course depends on where you have installed them
+ and whether those files are in different locations
+ than the defaults.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
+
+ <section id="following-recipe-style-guidelines">
+ <title>Following Recipe Style Guidelines</title>
+
+ <para>
+ When writing recipes, it is good to conform to existing
+ style guidelines.
+ The
+ <ulink url='http://www.openembedded.org/wiki/Styleguide'>OpenEmbedded Styleguide</ulink>
+ wiki page provides rough guidelines for preferred recipe style.
+ </para>
+
+ <para>
+ It is common for existing recipes to deviate a bit from this
+ style.
+ However, aiming for at least a consistent style is a good idea.
+ Some practices, such as omitting spaces around
+ <filename>=</filename> operators in assignments or ordering
+ recipe components in an erratic way, are widely seen as poor
+ style.
+ </para>
+ </section>
</section>
<section id="platdev-newmachine">
@@ -3388,6 +3621,106 @@
</section>
</section>
+ <section id='platdev-building-targets-with-multiple-configurations'>
+ <title>Building Targets with Multiple Configurations</title>
+
+ <para>
+ Bitbake also has functionality that allows you to build
+ multiple targets at the same time, where each target uses
+ a different configuration.
+ </para>
+
+ <para>
+ In order to accomplish this, you setup each of the configurations
+ you need to use in parallel by placing the configuration files in
+ your current build directory alongside the usual
+ <filename>local.conf</filename> file.
+ </para>
+
+ <para>
+ Follow these guidelines to create an environment that supports
+ multiple configurations:
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>Create Configuration Files</emphasis>:
+ You need to create a single configuration file for each
+ configuration for which you want to add support.
+ These files would contain lines such as the following:
+ <literallayout class='monospaced'>
+ MACHINE = "A"
+ </literallayout>
+ The files would contain any other variables that can
+ be set and built in the same directory.
+ <note>
+ You can change the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>
+ to not conflict.
+ </note></para>
+
+ <para>
+ Furthermore, the configuration file must be located in the
+ current build directory in a directory named
+ <filename>multiconfig</filename> under the build's
+ <filename>conf</filename> directory where
+ <filename>local.conf</filename> resides.
+ The reason for this restriction is because the
+ <filename>BBPATH</filename> variable is not constructed
+ until the layers are parsed.
+ Consequently, using the configuration file as a
+ pre-configuration file is not possible unless it is
+ located in the current working directory.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Add the BitBake Multi-Config Variable to you Local Configuration File</emphasis>:
+ Use the
+ <filename>BBMULTICONFIG</filename>
+ variable in your <filename>conf/local.conf</filename>
+ configuration file to specify each separate configuration.
+ For example, the following line tells BitBake it should load
+ <filename>conf/multiconfig/configA.conf</filename>,
+ <filename>conf/multiconfig/configB.conf</filename>, and
+ <filename>conf/multiconfig/configC.conf</filename>.
+ <literallayout class='monospaced'>
+ BBMULTICONFIG = "configA configB configC"
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Launch BitBake</emphasis>:
+ Use the following BitBake command form to launch the
+ build:
+ <literallayout class='monospaced'>
+ $ bitbake [multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[multiconfig:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
+ </literallayout>
+ Following is an example that supports building a minimal
+ image for configuration A alongside a standard
+ <filename>core-image-sato</filename>, which takes its
+ configuration from <filename>local.conf</filename>:
+ <literallayout class='monospaced'>
+ $ bitbake multiconfig:configA:core-image-minimal core-image-sato
+ </literallayout>
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Support for multiple configurations in this current release of
+ the Yocto Project (&DISTRO_NAME; &DISTRO;) has some known issues:
+ <itemizedlist>
+ <listitem><para>
+ No inter-multi-configuration dependencies exist.
+ </para></listitem>
+ <listitem><para>
+ Shared State (sstate) optimizations do not exist.
+ Consequently, if the build uses the same object twice
+ in, for example, two different
+ <filename>TMPDIR</filename> directories, the build
+ will either load from an existing sstate cache at the
+ start or build the object twice.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
<section id="platdev-working-with-libraries">
<title>Working With Libraries</title>
@@ -3726,6 +4059,236 @@
</section>
</section>
+ <section id='enabling-gobject-introspection-support'>
+ <title>Enabling GObject Introspection Support</title>
+
+ <para>
+ <ulink url='https://wiki.gnome.org/Projects/GObjectIntrospection'>GObject introspection</ulink>
+ is the standard mechanism for accessing GObject-based software
+ from runtime environments.
+ GObject is a feature of the GLib library that provides an object
+ framework for the GNOME desktop and related software.
+ GObject Introspection adds information to GObject that allows
+ objects created within it to be represented across different
+ programming languages.
+ If you want to construct GStreamer pipelines using Python, or
+ control UPnP infrastructure using Javascript and GUPnP,
+ GObject introspection is the only way to do it.
+ </para>
+
+ <para>
+ This section describes the Yocto Project support for generating
+ and packaging GObject introspection data.
+ GObject introspection data is a description of the
+ API provided by libraries built on top of GLib framework,
+ and, in particular, that framework's GObject mechanism.
+ GObject Introspection Repository (GIR) files go to
+ <filename>-dev</filename> packages,
+ <filename>typelib</filename> files go to main packages as they
+ are packaged together with libraries that are introspected.
+ </para>
+
+ <para>
+ The data is generated when building such a library, by linking
+ the library with a small executable binary that asks the library
+ to describe itself, and then executing the binary and
+ processing its output.
+ </para>
+
+ <para>
+ Generating this data in a cross-compilation environment
+ is difficult because the library is produced for the target
+ architecture, but its code needs to be executed on the build host.
+ This problem is solved with the OpenEmbedded build system by
+ running the code through QEMU, which allows precisely that.
+ Unfortunately, QEMU does not always work perfectly as mentioned
+ in the xxx section.
+ </para>
+
+ <section id='enabling-the-generation-of-introspection-data'>
+ <title>Enabling the Generation of Introspection Data</title>
+
+ <para>
+ Enabling the generation of introspection data (GIR files)
+ in your library package involves the following:
+ <orderedlist>
+ <listitem><para>
+ Inherit the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-gobject-introspection'><filename>gobject-introspection</filename></ulink>
+ class.
+ </para></listitem>
+ <listitem><para>
+ Make sure introspection is not disabled anywhere in
+ the recipe or from anything the recipe includes.
+ Also, make sure that "gobject-introspection-data" is
+ not in
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></ulink>
+ and that "qemu-usermode" is not in
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><filename>MACHINE_FEATURES_BACKFILL_CONSIDERED</filename></ulink>.
+ If either of these conditions exist, nothing will
+ happen.
+ </para></listitem>
+ <listitem><para>
+ Try to build the recipe.
+ If you encounter build errors that look like
+ something is unable to find
+ <filename>.so</filename> libraries, check where these
+ libraries are located in the source tree and add
+ the following to the recipe:
+ <literallayout class='monospaced'>
+ GIR_EXTRA_LIBS_PATH = "${B}/<replaceable>something</replaceable>/.libs"
+ </literallayout>
+ <note>
+ See recipes in the <filename>oe-core</filename>
+ repository that use that
+ <filename>GIR_EXTRA_LIBS_PATH</filename> variable
+ as an example.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ Look for any other errors, which probably mean that
+ introspection support in a package is not entirely
+ standard, and thus breaks down in a cross-compilation
+ environment.
+ For such cases, custom-made fixes are needed.
+ A good place to ask and receive help in these cases
+ is the
+ <ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Yocto Project mailing lists</ulink>.
+ </para></listitem>
+ </orderedlist>
+ <note>
+ Using a library that no longer builds against the latest
+ Yocto Project release and prints introspection related
+ errors is a good candidate for the previous procedure.
+ </note>
+ </para>
+ </section>
+
+ <section id='disabling-the-generation-of-introspection-data'>
+ <title>Disabling the Generation of Introspection Data</title>
+
+ <para>
+ You might find that you do not want to generate
+ introspection data.
+ Or, perhaps QEMU does not work on your build host and
+ target architecture combination.
+ If so, you can use either of the following methods to
+ disable GIR file generations:
+ <itemizedlist>
+ <listitem><para>
+ Add the following to your distro configuration:
+ <literallayout class='monospaced'>
+ DISTRO_FEATURES_BACKFILL_CONSIDERED = "gobject-introspection-data"
+ </literallayout>
+ Adding this statement disables generating
+ introspection data using QEMU but will still enable
+ building introspection tools and libraries
+ (i.e. building them does not require the use of QEMU).
+ </para></listitem>
+ <listitem><para>
+ Add the following to your machine configuration:
+ <literallayout class='monospaced'>
+ MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"
+ </literallayout>
+ Adding this statement disables the use of QEMU
+ when building packages for your machine.
+ Currently, this feature is used only by introspection
+ recipes and has the same effect as the previously
+ described option.
+ <note>
+ Future releases of the Yocto Project might have
+ other features affected by this option.
+ </note>
+ </para></listitem>
+ </itemizedlist>
+ If you disable introspection data, you can still
+ obtain it through other means such as copying the data
+ from a suitable sysroot, or by generating it on the
+ target hardware.
+ The OpenEmbedded build system does not currently
+ provide specific support for these techniques.
+ </para>
+ </section>
+
+ <section id='testing-that-introspection-works-in-an-image'>
+ <title>Testing that Introspection Works in an Image</title>
+
+ <para>
+ Use the following procedure to test if generating
+ introspection data is working in an image:
+ <orderedlist>
+ <listitem><para>
+ Make sure that "gobject-introspection-data" is not in
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></ulink>
+ and that "qemu-usermode" is not in
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED'><filename>MACHINE_FEATURES_BACKFILL_CONSIDERED</filename></ulink>.
+ </para></listitem>
+ <listitem><para>
+ Build <filename>core-image-sato</filename>.
+ </para></listitem>
+ <listitem><para>
+ Launch a Terminal and then start Python in the
+ terminal.
+ </para></listitem>
+ <listitem><para>
+ Enter the following in the terminal:
+ <literallayout class='monospaced'>
+ >>> from gi.repository import GLib
+ >>> GLib.get_host_name()
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ For something a little more advanced, enter the
+ following:
+ <literallayout class='monospaced'>
+ http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html
+ </literallayout>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='known-issues'>
+ <title>Known Issues</title>
+
+ <para>
+ The following know issues exist for
+ GObject Introspection Support:
+ <itemizedlist>
+ <listitem><para>
+ <filename>qemu-ppc64</filename> immediately crashes.
+ Consequently, you cannot build introspection data on
+ that architecture.
+ </para></listitem>
+ <listitem><para>
+ x32 is not supported by QEMU.
+ Consequently, introspection data is disabled.
+ </para></listitem>
+ <listitem><para>
+ musl causes transient GLib binaries to crash on
+ assertion failures.
+ Consequently, generating introspection data is
+ disabled.
+ </para></listitem>
+ <listitem><para>
+ Because QEMU is not able to run the binaries correctly,
+ introspection is disabled for some specific packages
+ under specific architectures (e.g.
+ <filename>gcr</filename>,
+ <filename>libsecret</filename>, and
+ <filename>webkit</filename>).
+ </para></listitem>
+ <listitem><para>
+ QEMU usermode might not work properly when running
+ 64-bit binaries under 32-bit host machines.
+ In particular, "qemumips64" is known to not work under
+ i686.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ </section>
+
<section id='dev-optionally-using-an-external-toolchain'>
<title>Optionally Using an External Toolchain</title>
@@ -3802,10 +4365,10 @@
it is based on is by definition incomplete.
Its purpose is to allow the generation of customized images,
and as such was designed to be completely extensible through a
- plugin interface.
+ plug-in interface.
See the
- "<link linkend='openembedded-kickstart-plugins'>Plugins</link>"
- section for information on these plugins.
+ "<link linkend='openembedded-kickstart-plugins'>Plug-ins</link>"
+ section for information on these plug-ins.
</para>
<para>
@@ -4367,21 +4930,21 @@
</section>
<section id='openembedded-kickstart-plugins'>
- <title>Plugins</title>
+ <title>Plug-ins</title>
<para>
- Plugins allow <filename>wic</filename> functionality to
+ Plug-ins allow <filename>wic</filename> functionality to
be extended and specialized by users.
This section documents the plugin interface, which is
- currently restricted to source plugins.
+ currently restricted to source plug ins.
</para>
<para>
- Source plugins provide a mechanism to customize
+ Source plug ins provide a mechanism to customize
various aspects of the image generation process in
<filename>wic</filename>, mainly the contents of
partitions.
- The plugins provide a mechanism for mapping values
+ The plug ins provide a mechanism for mapping values
specified in <filename>.wks</filename> files using the
<filename>--source</filename> keyword to a
particular plugin implementation that populates a
@@ -7304,27 +7867,48 @@
<title>Build Considerations</title>
<para>
- This section describes build considerations that you need
- to be aware of in order to provide support for runtime
+ This section describes build considerations of which you
+ need to be aware in order to provide support for runtime
package management.
</para>
<para>
- When BitBake generates packages it needs to know
+ When BitBake generates packages, it needs to know
what format or formats to use.
In your configuration, you use the
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>
- variable to specify the format.
- <note>
- You can choose to have more than one format but you must
- provide at least one.
- </note>
+ variable to specify the format:
+ <orderedlist>
+ <listitem><para>
+ Open the <filename>local.conf</filename> file
+ inside your
+ <link linkend='build-directory'>Build Directory</link>
+ (e.g. <filename>~/poky/build/conf/local.conf</filename>).
+ </para></listitem>
+ <listitem><para>
+ Select the desired package format as follows:
+ <literallayout class='monospaced'>
+ PACKAGE_CLASSES ?= “package_<replaceable>packageformat</replaceable>”
+ </literallayout>
+ where <replaceable>packageformat</replaceable>
+ can be "ipk", "rpm", and "deb", which are the
+ supported package formats.
+ <note>
+ Because the Yocto Project supports three
+ different package formats, you can set the
+ variable with more than one argument.
+ However, the OpenEmbedded build system only
+ uses the first argument when creating an image
+ or Software Development Kit (SDK).
+ </note>
+ </para></listitem>
+ </orderedlist>
</para>
<para>
If you would like your image to start off with a basic
- package database of the packages in your current build
- as well as have the relevant tools available on the
+ package database containing the packages in your current
+ build as well as to have the relevant tools available on the
target for runtime package management, you can include
"package-management" in the
<ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink>
@@ -7359,27 +7943,33 @@
<literallayout class='monospaced'>
$ bitbake <replaceable>some-package</replaceable> package-index
</literallayout>
- This is because BitBake does not properly schedule the
- <filename>package-index</filename> target fully after any
- other target has completed.
+ The reason for this restriction is because BitBake does not
+ properly schedule the <filename>package-index</filename>
+ target fully after any other target has completed.
Thus, be sure to run the package update step separately.
</para>
<para>
- As described below in the
- "<link linkend='runtime-package-management-target-ipk'>Using IPK</link>"
- section, if you are using IPK as your package format, you
- can make use of the
- <filename>distro-feed-configs</filename> recipe provided
- by <filename>meta-oe</filename> in order to configure your
- target to use your IPK databases.
+ You can use the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></ulink>,
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></ulink>
+ variables to pre-configure target images to use a package
+ feed.
+ If you do not define these variables, then manual steps
+ as described in the subsequent sections are necessary to
+ configure the target.
+ You should set these variables before building the image
+ in order to produce a correctly configured image.
</para>
<para>
When your build is complete, your packages reside in the
- <filename>${TMPDIR}/deploy/<replaceable>package-format</replaceable></filename>
+ <filename>${TMPDIR}/deploy/<replaceable>packageformat</replaceable></filename>
directory.
- For example, if <filename>${TMPDIR}</filename>
+ For example, if
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink><filename>}</filename>
is <filename>tmp</filename> and your selected package type
is IPK, then your IPK packages are available in
<filename>tmp/deploy/ipk</filename>.
@@ -7390,121 +7980,38 @@
<title>Host or Server Machine Setup</title>
<para>
- Typically, packages are served from a server using
- HTTP.
- However, other protocols are possible.
- If you want to use HTTP, then setup and configure a
- web server, such as Apache 2 or lighttpd, on the machine
- serving the packages.
+ Although other protocols are possible, a server using HTTP
+ typically serves packages.
+ If you want to use HTTP, then set up and configure a
+ web server such as Apache 2, lighttpd, or
+ SimpleHTTPServer on the machine serving the packages.
</para>
<para>
- As previously mentioned, the build machine can act as the
- package server.
- In the following sections that describe server machine
- setups, the build machine is assumed to also be the server.
+ To keep things simple, this section describes how to set
+ up a SimpleHTTPServer web server to share package feeds
+ from the developer's machine.
+ Although this server might not be the best for a production
+ environment, the setup is simple and straight forward.
+ Should you want to use a different server more suited for
+ production (e.g. Apache 2, Lighttpd, or Nginx), take the
+ appropriate steps to do so.
</para>
- <section id='package-server-apache'>
- <title>Serving Packages via Apache 2</title>
-
- <para>
- This example assumes you are using the Apache 2
- server:
- <orderedlist>
- <listitem><para>
- Add the directory to your Apache
- configuration, which you can find at
- <filename>/etc/httpd/conf/httpd.conf</filename>.
- Use commands similar to these on the
- development system.
- These example commands assume a top-level
- <link linkend='source-directory'>Source Directory</link>
- named <filename>poky</filename> in your home
- directory.
- The example also assumes an RPM package type.
- If you are using a different package type, such
- as IPK, use "ipk" in the pathnames:
- <literallayout class='monospaced'>
- &lt;VirtualHost *:80&gt;
- ....
- Alias /rpm ~/poky/build/tmp/deploy/rpm
- &lt;Directory "~/poky/build/tmp/deploy/rpm"&gt;
- Options +Indexes
- &lt;/Directory&gt;
- &lt;/VirtualHost&gt;
- </literallayout></para></listitem>
- <listitem><para>
- Reload the Apache configuration as described
- in this step.
- For all commands, be sure you have root
- privileges.
- </para>
-
- <para>
- If your development system is using Fedora or
- CentOS, use the following:
- <literallayout class='monospaced'>
- # service httpd reload
- </literallayout>
- For Ubuntu and Debian, use the following:
- <literallayout class='monospaced'>
- # /etc/init.d/apache2 reload
- </literallayout>
- For OpenSUSE, use the following:
- <literallayout class='monospaced'>
- # /etc/init.d/apache2 reload
- </literallayout></para></listitem>
- <listitem><para>
- If you are using Security-Enhanced Linux
- (SELinux), you need to label the files as
- being accessible through Apache.
- Use the following command from the development
- host.
- This example assumes RPM package types:
- <literallayout class='monospaced'>
- # chcon -R -h -t httpd_sys_content_t tmp/deploy/rpm
- </literallayout></para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='package-server-lighttpd'>
- <title>Serving Packages via lighttpd</title>
-
- <para>
- If you are using lighttpd, all you need
- to do is to provide a link from your
- <filename>${TMPDIR}/deploy/<replaceable>package-format</replaceable></filename>
- directory to lighttpd's document-root.
- You can determine the specifics of your lighttpd
- installation by looking through its configuration file,
- which is usually found at:
- <filename>/etc/lighttpd/lighttpd.conf</filename>.
- </para>
-
- <para>
- For example, if you are using IPK, lighttpd's
- document-root is set to
- <filename>/var/www/lighttpd</filename>, and you had
- packages for a target named "BOARD",
- then you might create a link from your build location
- to lighttpd's document-root as follows:
- <literallayout class='monospaced'>
- # ln -s $(PWD)/tmp/deploy/ipk /var/www/lighttpd/BOARD-dir
- </literallayout>
- </para>
-
- <para>
- At this point, you need to start the lighttpd server.
- The method used to start the server varies by
- distribution.
- However, one basic method that starts it by hand is:
- <literallayout class='monospaced'>
- # lighttpd -f /etc/lighttpd/lighttpd.conf
- </literallayout>
- </para>
- </section>
+ <para>
+ From within the build directory where you have built an
+ image based on your packaging choice (i.e. the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink>
+ setting), simply start the server.
+ The following example assumes a build directory of
+ <filename>~/poky/build/tmp/deploy/rpm</filename> and a
+ <filename>PACKAGE_CLASSES</filename> setting of
+ "package_rpm":
+ <literallayout class='monospaced'>
+ $ cd ~/poky/build/tmp/deploy/rpm
+ $ python -m SimpleHTTPServer
+ </literallayout>
+ </para>
</section>
<section id='runtime-package-management-target'>
@@ -7513,42 +8020,46 @@
<para>
Setting up the target differs depending on the
package management system.
- This section provides information for RPM and IPK.
+ This section provides information for RPM, IPK, and DEB.
</para>
<section id='runtime-package-management-target-rpm'>
<title>Using RPM</title>
<para>
- The application for performing runtime package
- management of RPM packages on the target is called
- <filename>smart</filename>.
+ The <filename>smart</filename> application performs
+ runtime package management of RPM packages.
+ You must perform an initial setup for
+ <filename>smart</filename> on the target machine
+ if the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></ulink>, and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></ulink>
+ variables have not been set or the target image was
+ built before the variables were set.
</para>
<para>
- On the target machine, you need to inform
- <filename>smart</filename> of every package database
- you want to use.
- As an example, suppose your target device can use the
- following three package databases from a server named
- <filename>server.name</filename>:
+ As an example, assume the target is able to use the
+ following package databases:
<filename>all</filename>, <filename>i586</filename>,
- and <filename>qemux86</filename>.
- Given this example, issue the following commands on the
- target:
+ and <filename>qemux86</filename> from a server named
+ <filename>my.server</filename>.
+ You must inform <filename>smart</filename> of the
+ availability of these databases by issuing the
+ following commands on the target:
<literallayout class='monospaced'>
- # smart channel --add all type=rpm-md baseurl=http://server.name/rpm/all
- # smart channel --add i585 type=rpm-md baseurl=http://server.name/rpm/i586
- # smart channel --add qemux86 type=rpm-md baseurl=http://server.name/rpm/qemux86
+ # smart channel --add i585 type=rpm-md baseurl=http://my.server/rpm/i586
+ # smart channel --add qemux86 type=rpm-md baseurl=http://my.server/rpm/qemux86
+ # smart channel --add all type=rpm-md baseurl=http://my.server/rpm/all
</literallayout>
- Also from the target machine, fetch the repository
- information using this command:
+ From the target machine, fetch the repository:
<literallayout class='monospaced'>
# smart update
</literallayout>
- You can now use the <filename>smart query</filename>
- and <filename>smart install</filename> commands to
- find and install packages from the repositories.
+ After everything is set up, <filename>smart</filename>
+ is able to find, install, and upgrade packages from
+ the specified repository.
</para>
</section>
@@ -7556,61 +8067,99 @@
<title>Using IPK</title>
<para>
- The application for performing runtime package
- management of IPK packages on the target is called
- <filename>opkg</filename>.
+ The <filename>opkg</filename> application performs
+ runtime package management of IPK packages.
+ You must perform an initial setup for
+ <filename>opkg</filename> on the target machine
+ if the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></ulink>, and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></ulink>
+ variables have not been set or the target image was
+ built before the variables were set.
+ </para>
+
+ <para>
+ The <filename>opkg</filename> application uses
+ configuration files to find available package
+ databases.
+ Thus, you need to create a configuration file inside
+ the <filename>/etc/opkg/</filename> direction, which
+ informs <filename>opkg</filename> of any repository
+ you want to use.
</para>
<para>
- In order to inform <filename>opkg</filename> of the
- package databases you want to use, simply create one
- or more <filename>*.conf</filename> files in the
- <filename>/etc/opkg</filename> directory on the target.
- The <filename>opkg</filename> application uses them
- to find its available package databases.
- As an example, suppose you configured your HTTP server
- on your machine named
- <filename>www.mysite.com</filename> to serve files
- from a <filename>BOARD-dir</filename> directory under
- its document-root.
- In this case, you might create a configuration
- file on the target called
- <filename>/etc/opkg/base-feeds.conf</filename> that
- contains:
+ As an example, suppose you are serving packages from a
+ <filename>ipk/</filename> directory containing the
+ <filename>i586</filename>,
+ <filename>all</filename>, and
+ <filename>qemux86</filename> databases through an
+ HTTP server named <filename>my.server</filename>.
+ On the target, create a configuration file
+ (e.g. <filename>my_repo.conf</filename>) inside the
+ <filename>/etc/opkg/</filename> directory containing
+ the following:
+ <literallayout class='monospaced'>
+ src/gz all http://my.server/ipk/all
+ src/gz i586 http://my.server/ipk/i586
+ src/gz qemux86 http://my.server/ipk/qemux86
+ </literallayout>
+ Next, instruct <filename>opkg</filename> to fetch
+ the repository information:
<literallayout class='monospaced'>
- src/gz all http://www.mysite.com/BOARD-dir/all
- src/gz armv7a http://www.mysite.com/BOARD-dir/armv7a
- src/gz beaglebone http://www.mysite.com/BOARD-dir/beaglebone
+ # opkg update
</literallayout>
+ The <filename>opkg</filename> application is now able
+ to find, install, and upgrade packages from the
+ specified repository.
</para>
+ </section>
+
+ <section id='runtime-package-management-target-deb'>
+ <title>Using DEB</title>
<para>
- As a way of making it easier to generate and make
- these IPK configuration files available on your
- target, simply define
- <ulink url='&YOCTO_DOCS_REF_URL;#var-FEED_DEPLOYDIR_BASE_URI'><filename>FEED_DEPLOYDIR_BASE_URI</filename></ulink>
- to point to your server and the location within the
- document-root which contains the databases.
- For example: if you are serving your packages over
- HTTP, your server's IP address is 192.168.7.1, and
- your databases are located in a directory called
- <filename>BOARD-dir</filename> underneath your HTTP
- server's document-root, you need to set
- <filename>FEED_DEPLOYDIR_BASE_URI</filename> to
- <filename>http://192.168.7.1/BOARD-dir</filename> and
- a set of configuration files will be generated for you
- in your target to work with this feed.
+ The <filename>apt</filename> application performs
+ runtime package management of DEB packages.
+ This application uses a source list file to find
+ available package databases.
+ You must perform an initial setup for
+ <filename>apt</filename> on the target machine
+ if the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS'><filename>PACKAGE_FEED_ARCHS</filename></ulink>,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS'><filename>PACKAGE_FEED_BASE_PATHS</filename></ulink>, and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS'><filename>PACKAGE_FEED_URIS</filename></ulink>
+ variables have not been set or the target image was
+ built before the variables were set.
</para>
<para>
- On the target machine, fetch (or refresh) the
- repository information using this command:
+ To inform <filename>apt</filename> of the repository
+ you want to use, you might create a list file (e.g.
+ <filename>my_repo.list</filename>) inside the
+ <filename>/etc/apt/sources.list.d/</filename>
+ directory.
+ As an example, suppose you are serving packages from a
+ <filename>deb/</filename> directory containing the
+ <filename>i586</filename>,
+ <filename>all</filename>, and
+ <filename>qemux86</filename> databases through an
+ HTTP server named <filename>my.server</filename>.
+ The list file should contain:
<literallayout class='monospaced'>
- # opkg update
+ deb http://my.server/deb/all ./
+ deb http://my.server/deb/i586 ./
+ deb http://my.server/deb/qemux86 ./
</literallayout>
- You can now use the <filename>opkg list</filename> and
- <filename>opkg install</filename> commands to find and
- install packages from the repositories.
+ Next, instruct the <filename>apt</filename>
+ application to fetch the repository information:
+ <literallayout class='monospaced'>
+ # apt-get update
+ </literallayout>
+ After this step, <filename>apt</filename> is able
+ to find, install, and upgrade packages from the
+ specified repository.
</para>
</section>
</section>
@@ -8561,19 +9110,19 @@
within a separately started QEMU or any
other virtual machine manager.
</para></listitem>
- <listitem><para><emphasis>"GummibootTarget":</emphasis>
- Choose "GummibootTarget" if your hardware is
+ <listitem><para><emphasis>"Systemd-bootTarget":</emphasis>
+ Choose "Systemd-bootTarget" if your hardware is
an EFI-based machine with
- <filename>gummiboot</filename> as bootloader and
+ <filename>systemd-boot</filename> as bootloader and
<filename>core-image-testmaster</filename>
(or something similar) is installed.
Also, your hardware under test must be in a
DHCP-enabled network that gives it the same IP
address for each reboot.</para>
- <para>If you choose "GummibootTarget", there are
+ <para>If you choose "Systemd-bootTarget", there are
additional requirements and considerations.
See the
- "<link linkend='selecting-gummiboottarget'>Selecting GummibootTarget</link>"
+ "<link linkend='selecting-systemd-boottarget'>Selecting Systemd-bootTarget</link>"
section, which follows, for more information.
</para></listitem>
<listitem><para><emphasis>"BeagleBoneTarget":</emphasis>
@@ -8619,12 +9168,12 @@
</para>
</section>
- <section id='selecting-gummiboottarget'>
- <title>Selecting GummibootTarget</title>
+ <section id='selecting-systemd-boottarget'>
+ <title>Selecting Systemd-bootTarget</title>
<para>
If you did not set <filename>TEST_TARGET</filename> to
- "GummibootTarget", then you do not need any information
+ "Systemd-bootTarget", then you do not need any information
in this section.
You can skip down to the
"<link linkend='qemu-image-running-tests'>Running Tests</link>"
@@ -8633,14 +9182,14 @@
<para>
If you did set <filename>TEST_TARGET</filename> to
- "GummibootTarget", you also need to perform a one-time
+ "Systemd-bootTarget", you also need to perform a one-time
setup of your master image by doing the following:
<orderedlist>
<listitem><para><emphasis>Set <filename>EFI_PROVIDER</filename>:</emphasis>
Be sure that <filename>EFI_PROVIDER</filename>
is as follows:
<literallayout class='monospaced'>
- EFI_PROVIDER = "gummiboot"
+ EFI_PROVIDER = "systemd-boot"
</literallayout>
</para></listitem>
<listitem><para><emphasis>Build the master image:</emphasis>
@@ -8704,7 +9253,7 @@
<para>
The final thing you need to do when setting
- <filename>TEST_TARGET</filename> to "GummibootTarget" is
+ <filename>TEST_TARGET</filename> to "Systemd-bootTarget" is
to set up the test image:
<orderedlist>
<listitem><para><emphasis>Set up your <filename>local.conf</filename> file:</emphasis>
@@ -8713,7 +9262,7 @@
<literallayout class='monospaced'>
IMAGE_FSTYPES += "tar.gz"
INHERIT += "testimage"
- TEST_TARGET = "GummibootTarget"
+ TEST_TARGET = "Systemd-bootTarget"
TEST_TARGET_IP = "192.168.2.3"
</literallayout>
</para></listitem>
@@ -8974,18 +9523,17 @@
in your <filename>local.conf</filename> file.
Be sure to provide the IP address you need:
<literallayout class='monospaced'>
- TEST_EXPORT_ONLY = "1"
- TEST_TARGET = "simpleremote"
+ INHERIT +="testexport"
TEST_TARGET_IP = "192.168.7.2"
TEST_SERVER_IP = "192.168.7.1"
</literallayout>
You can then export the tests with the following:
<literallayout class='monospaced'>
- $ bitbake core-image-sato -c testimage
+ $ bitbake core-image-sato -c testexport
</literallayout>
Exporting the tests places them in the
<link linkend='build-directory'>Build Directory</link> in
- <filename>tmp/testimage/core-image-sato</filename>, which
+ <filename>tmp/testexport/core-image-sato</filename>, which
is controlled by the
<filename>TEST_EXPORT_DIR</filename> variable.
</para>
@@ -8993,37 +9541,9 @@
<para>
You can now run the tests outside of the build environment:
<literallayout class='monospaced'>
- $ cd tmp/testimage/core-image-sato
+ $ cd tmp/testexport/core-image-sato
$ ./runexported.py testdata.json
</literallayout>
- <note>
- This "export" feature does not deploy or boot the target
- image.
- Your target (be it a Qemu or hardware one)
- has to already be up and running when you call
- <filename>runexported.py</filename>
- </note>
- </para>
-
- <para>
- The exported data (i.e. <filename>testdata.json</filename>)
- contains paths to the Build Directory.
- Thus, the contents of the directory can be moved
- to another machine as long as you update some paths in the
- JSON.
- Usually, you only care about the
- <filename>${DEPLOY_DIR}/rpm</filename> directory
- (assuming the RPM and Smart tests are enabled).
- Consequently, running the tests on other machine
- means that you have to move the contents and call
- <filename>runexported.py</filename> with
- "--deploy-dir <replaceable>path</replaceable>" as
- follows:
- <literallayout class='monospaced'>
- ./runexported.py --deploy-dir /new/path/on/this/machine testdata.json
- </literallayout>
- <filename>runexported.py</filename> accepts other arguments
- as well as described using <filename>--help</filename>.
</para>
</section>
@@ -9138,7 +9658,7 @@
The target controller object used to deploy
and start an image on a particular target
(e.g. QemuTarget, SimpleRemote, and
- GummibootTarget).
+ Systemd-bootTarget).
Tests usually use the following:
<itemizedlist>
<listitem><para><emphasis><filename>ip</filename>:</emphasis>
@@ -9198,6 +9718,78 @@
</para>
</section>
</section>
+
+ <section id='installing-packages-in-the-dut-without-the-package-manager'>
+ <title>Installing Packages in the DUT Without the Package Manager</title>
+
+ <para>
+ When a test requires a package built by BitBake, it is possible
+ to install that package.
+ Installing the package does not require a package manager be
+ installed in the device under test (DUT).
+ It does, however, require an SSH connection and the target must
+ be using the <filename>sshcontrol</filename> class.
+ <note>
+ This method uses <filename>scp</filename> to copy files
+ from the host to the target, which causes permissions and
+ special attributes to be lost.
+ </note>
+ </para>
+
+ <para>
+ A JSON file is used to define the packages needed by a test.
+ This file must be in the same path as the file used to define
+ the tests.
+ Furthermore, the filename must map directly to the test
+ module name with a <filename>.json</filename> extension.
+ </para>
+
+ <para>
+ The JSON file must include an object with the test name as
+ keys of an object or an array.
+ This object (or array of objects) uses the following data:
+ <itemizedlist>
+ <listitem><para>"pkg" - A mandatory string that is the
+ name of the package to be installed.
+ </para></listitem>
+ <listitem><para>"rm" - An optional boolean, which defaults
+ to "false", that specifies to remove the package after
+ the test.
+ </para></listitem>
+ <listitem><para>"extract" - An optional boolean, which
+ defaults to "false", that specifies if the package must
+ be extracted from the package format.
+ When set to "true", the package is not automatically
+ installed into the DUT.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Following is an example JSON file that handles test "foo"
+ installing package "bar" and test "foobar" installing
+ packages "foo" and "bar".
+ Once the test is complete, the packages are removed from the
+ DUT.
+ <literallayout class='monospaced'>
+ {
+ "foo": {
+ "pkg": "bar"
+ },
+ "foobar": [
+ {
+ "pkg": "foo",
+ "rm": true
+ },
+ {
+ "pkg": "bar",
+ "rm": true
+ }
+ ]
+ }
+ </literallayout>
+ </para>
+ </section>
</section>
<section id="platdev-gdb-remotedebug">
@@ -9244,15 +9836,6 @@
as all the heavy debugging is done by the host GDB.
Offloading these processes gives the Gdbserver running on the target a chance to remain
small and fast.
- <note>
- By default, source files are part of the
- <filename>*-dbg</filename> packages in order to enable GDB
- to show source lines in its output.
- You can save further space on the target by setting the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_DEBUG_SPLIT_STYLE'><filename>PACKAGE_DEBUG_SPLIT_STYLE</filename></ulink>
- variable to "debug-without-src" so that these packages do not
- include the source files.
- </note>
</para>
<para>
@@ -9276,10 +9859,200 @@
</para>
<para>
- The remainder of this section describes the steps you need to take
- to debug using the GNU project debugger.
+ The following steps show you how to debug using the GNU project
+ debugger.
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Configure your build system to construct the
+ companion debug filesystem:</emphasis></para>
+
+ <para>In your <filename>local.conf</filename> file, set
+ the following:
+ <literallayout class='monospaced'>
+ IMAGE_GEN_DEBUGFS = "1"
+ IMAGE_FSTYPES_DEBUGFS = "tar.bz2"
+ </literallayout>
+ These options cause the OpenEmbedded build system
+ to generate a special companion filesystem fragment,
+ which contains the matching source and debug symbols to
+ your deployable filesystem.
+ The build system does this by looking at what is in the
+ deployed filesystem, and pulling the corresponding
+ <filename>-dbg</filename> packages.</para>
+
+ <para>The companion debug filesystem is not a complete
+ filesystem, but only contains the debug fragments.
+ This filesystem must be combined with the full filesystem
+ for debugging.
+ Subsequent steps in this procedure show how to combine
+ the partial filesystem with the full filesystem.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Configure the system to include Gdbserver in
+ the target filesystem:</emphasis></para>
+
+ <para>Make the following addition in either your
+ <filename>local.conf</filename> file or in an image
+ recipe:
+ <literallayout class='monospaced'>
+ IMAGE_INSTALL_append = “ gdbserver"
+ </literallayout>
+ The change makes sure the <filename>gdbserver</filename>
+ package is included.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Build the environment:</emphasis></para>
+
+ <para>Use the following command to construct the image and
+ the companion Debug Filesystem:
+ <literallayout class='monospaced'>
+ $ bitbake <replaceable>image</replaceable>
+ </literallayout>
+ Build the cross GDB component and make it available
+ for debugging.
+ Build the SDK that matches the image.
+ Building the SDK is best for a production build
+ that can be used later for debugging, especially
+ during long term maintenance:
+ <literallayout class='monospaced'>
+ $ bitbake -c populate_sdk <replaceable>image</replaceable>
+ </literallayout></para>
+
+ <para>Alternatively, you can build the minimal
+ toolchain components that match the target.
+ Doing so creates a smaller than typical SDK and only
+ contains a minimal set of components with which to
+ build simple test applications, as well as run the
+ debugger:
+ <literallayout class='monospaced'>
+ $ bitbake meta-toolchain
+ </literallayout></para>
+
+ <para>A final method is to build Gdb itself within
+ the build system:
+ <literallayout class='monospaced'>
+ $ bitbake gdb-cross-<replaceable>architecture</replaceable>
+ </literallayout>
+ Doing so produces a temporary copy of
+ <filename>cross-gdb</filename> you can use for
+ debugging during development.
+ While this is the quickest approach, the two previous
+ methods in this step are better when considering
+ long-term maintenance strategies.
+ <note>
+ If you run
+ <filename>bitbake gdb-cross</filename>, the
+ OpenEmbedded build system suggests the actual
+ image (e.g. <filename>gdb-cross-i586</filename>).
+ The suggestion is usually the actual name you want
+ to use.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Set up the</emphasis>&nbsp;<filename>debugfs</filename></para>
+
+ <para>Run the following commands to set up the
+ <filename>debugfs</filename>:
+ <literallayout class='monospaced'>
+ $ mkdir debugfs
+ $ cd debugfs
+ $ tar xvfj <replaceable>build-dir</replaceable>/tmp-glibc/deploy/images/<replaceable>machine</replaceable>/<replaceable>image</replaceable>.rootfs.tar.bz2
+ $ tar xvfj <replaceable>build-dir</replaceable>/tmp-glibc/deploy/images/<replaceable>machine</replaceable>/<replaceable>image</replaceable>-dbg.rootfs.tar.bz2
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Set up GDB</emphasis></para>
+
+ <para>Install the SDK (if you built one) and then
+ source the correct environment file.
+ Sourcing the environment file puts the SDK in your
+ <filename>PATH</filename> environment variable.</para>
+
+ <para>If you are using the build system, Gdb is
+ located in
+ <replaceable>build-dir</replaceable>/tmp/sysroots/<replaceable>host</replaceable>/usr/bin/<replaceable>architecture</replaceable>/<replaceable>architecture</replaceable>-gdb
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Boot the target:</emphasis></para>
+
+ <para>For information on how to run QEMU, see the
+ <ulink url='http://wiki.qemu.org/Documentation/GettingStartedDevelopers'>QEMU Documentation</ulink>.
+ <note>
+ Be sure to verify that your host can access the
+ target via TCP.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Debug a program:</emphasis></para>
+
+ <para>Debugging a program involves running Gdbserver
+ on the target and then running Gdb on the host.
+ The example in this step debugs
+ <filename>gzip</filename>:
+ <literallayout class='monospaced'>
+ root@qemux86:~# gdbserver localhost:1234 /bin/gzip —help
+ </literallayout>
+ For additional Gdbserver options, see the
+ <ulink url='https://www.gnu.org/software/gdb/documentation/'>Gdb Server Documentation</ulink>.
+ </para>
+
+ <para>After running Gdbserver on the target, you need
+ to run Gdb on the host and configure it and connect to
+ the target.
+ Use these commands:
+ <literallayout class='monospaced'>
+ $ cd <replaceable>directory-holding-the-debugfs-directory</replaceable>
+ $ <replaceable>arch</replaceable>-gdb
+
+ (gdb) set sysroot debugfs
+ (gdb) set substitute-path /usr/src/debug debugfs/usr/src/debug
+ (gdb) target remote <replaceable>IP-of-target</replaceable>:1234
+ </literallayout>
+ At this point, everything should automatically load
+ (i.e. matching binaries, symbols and headers).
+ <note>
+ The Gdb <filename>set</filename> commands in the
+ previous example can be placed into the users
+ <filename>~/.gdbinit</filename> file.
+ Upon starting, Gdb automatically runs whatever
+ commands are in that file.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Deploying without a full image
+ rebuild:</emphasis></para>
+
+ <para>In many cases, during development you want a
+ quick method to deploy a new binary to the target and
+ debug it, without waiting for a full image build.
+ </para>
+
+ <para>One approach to solving this situation is to
+ just build the component you want to debug.
+ Once you have built the component, copy the
+ executable directly to both the target and the
+ host <filename>debugfs</filename>.</para>
+
+ <para>If the binary is processed through the debug
+ splitting in OpenEmbedded, you should also
+ copy the debug items (i.e. <filename>.debug</filename>
+ contents and corresponding
+ <filename>/usr/src/debug</filename> files)
+ from the work directory.
+ Here is an example:
+ <literallayout class='monospaced'>
+ $ bitbake bash
+ $ bitbake -c devshell bash
+ $ cd ..
+ $ scp packages-split/bash/bin/bash <replaceable>target</replaceable>:/bin/bash
+ $ cp -a packages-split/bash-dbg/* <replaceable>path</replaceable>/debugfs
+ </literallayout>
+ </para></listitem>
+ </orderedlist>
</para>
+ </section>
+<!--
<section id='platdev-gdb-remotedebug-setup'>
<title>Set Up the Cross-Development Debugging Environment</title>
@@ -9453,6 +10226,69 @@
</para>
</section>
</section>
+-->
+
+ <section id='debugging-with-the-gnu-project-debugger-gdb-on-the-target'>
+ <title>Debugging with the GNU Project Debugger (GDB) on the Target</title>
+
+ <para>
+ The previous section addressed using GDB remotely for debugging
+ purposes, which is the most usual case due to the inherent
+ hardware limitations on many embedded devices.
+ However, debugging in the target hardware itself is also possible
+ with more powerful devices.
+ This section describes what you need to do in order to support
+ using GDB to debug on the target hardware.
+ </para>
+
+ <para>
+ To support this kind of debugging, you need do the following:
+ <itemizedlist>
+ <listitem><para>
+ Ensure that GDB is on the target.
+ You can do this by adding "gdb" to
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>:
+ <literallayout class='monospaced'>
+ IMAGE_INSTALL_append = " gdb"
+ </literallayout>
+ Alternatively, you can add "tools-debug" to
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></ulink>:
+ <literallayout class='monospaced'>
+ IMAGE_FEATURES_append = " tools-debug"
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Ensure that debug symbols are present.
+ You can make sure these symbols are present by installing
+ <filename>-dbg</filename>:
+ <literallayout class='monospaced'>
+ IMAGE_INSTALL_append = " <replaceable>packagename</replaceable>-dbg"
+ </literallayout>
+ Alternatively, you can do the following to include all the
+ debug symbols:
+ <literallayout class='monospaced'>
+ IMAGE_FEATURES_append = " dbg-pkgs"
+ </literallayout>
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ To improve the debug information accuracy, you can reduce the
+ level of optimization used by the compiler.
+ For example, when adding the following line to your
+ <filename>local.conf</filename> file, you will reduce
+ optimization from
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-FULL_OPTIMIZATION'><filename>FULL_OPTIMIZATION</filename></ulink>
+ of "-O2" to
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DEBUG_OPTIMIZATION'><filename>DEBUG_OPTIMIZATION</filename></ulink>
+ of "-O -fno-omit-frame-pointer":
+ <literallayout class='monospaced'>
+ DEBUG_BUILD = "1"
+ </literallayout>
+ Consider that this will reduce the application's performance
+ and is recommended only for debugging purposes.
+ </note>
+ </para>
+ </section>
<section id='debugging-parallel-make-races'>
<title>Debugging Parallel Make Races</title>
@@ -9736,265 +10572,6 @@
</section>
</section>
-<!--
- <section id="platdev-oprofile">
- <title>Profiling with OProfile</title>
-
- <para>
- <ulink url="http://oprofile.sourceforge.net/">OProfile</ulink> is a
- statistical profiler well suited for finding performance
- bottlenecks in both user-space software and in the kernel.
- This profiler provides answers to questions like "Which functions does my application spend
- the most time in when doing X?"
- Because the OpenEmbedded build system is well integrated with OProfile, it makes profiling
- applications on target hardware straight forward.
- <note>
- For more information on how to set up and run OProfile, see the
- "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>oprofile</ulink>"
- section in the Yocto Project Profiling and Tracing Manual.
- </note>
- </para>
-
- <para>
- To use OProfile, you need an image that has OProfile installed.
- The easiest way to do this is with "tools-profile" in the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename> variable.
- You also need debugging symbols to be available on the system where the analysis
- takes place.
- You can gain access to the symbols by using "dbg-pkgs" in the
- <filename>IMAGE_FEATURES</filename> variable or by
- installing the appropriate debug (<filename>-dbg</filename>)
- packages.
- </para>
-
- <para>
- For successful call graph analysis, the binaries must preserve the frame
- pointer register and should also be compiled with the
- <filename>-fno-omit-framepointer</filename> flag.
- You can achieve this by setting the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</ulink></filename>
- variable with the following options:
- <literallayout class='monospaced'>
- -fexpensive-optimizations
- -fno-omit-framepointer
- -frename-registers
- -O2
- </literallayout>
- You can also achieve it by setting the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-DEBUG_BUILD'>DEBUG_BUILD</ulink></filename>
- variable to "1" in the <filename>local.conf</filename> configuration file.
- If you use the <filename>DEBUG_BUILD</filename> variable,
- you also add extra debugging information that can make the debug
- packages large.
- </para>
-
- <section id="platdev-oprofile-target">
- <title>Profiling on the Target</title>
-
- <para>
- Using OProfile, you can perform all the profiling work on the target device.
- A simple OProfile session might look like the following:
- </para>
-
- <para>
- <literallayout class='monospaced'>
- # opcontrol &dash;&dash;reset
- # opcontrol &dash;&dash;start &dash;&dash;separate=lib &dash;&dash;no-vmlinux -c 5
- .
- .
- [do whatever is being profiled]
- .
- .
- # opcontrol &dash;&dash;stop
- $ opreport -cl
- </literallayout>
- </para>
-
- <para>
- In this example, the <filename>reset</filename> command clears any previously profiled data.
- The next command starts OProfile.
- The options used when starting the profiler separate dynamic library data
- within applications, disable kernel profiling, and enable callgraphing up to
- five levels deep.
- <note>
- To profile the kernel, you would specify the
- <filename>&dash;&dash;vmlinux=/path/to/vmlinux</filename> option.
- The <filename>vmlinux</filename> file is usually in the source directory in the
- <filename>/boot/</filename> directory and must match the running kernel.
- </note>
- </para>
-
- <para>
- After you perform your profiling tasks, the next command stops the profiler.
- After that, you can view results with the <filename>opreport</filename> command with options
- to see the separate library symbols and callgraph information.
- </para>
-
- <para>
- Callgraphing logs information about time spent in functions and about a function's
- calling function (parent) and called functions (children).
- The higher the callgraphing depth, the more accurate the results.
- However, higher depths also increase the logging overhead.
- Consequently, you should take care when setting the callgraphing depth.
- <note>
- On ARM, binaries need to have the frame pointer enabled for callgraphing to work.
- To accomplish this use the <filename>-fno-omit-framepointer</filename> option
- with <filename>gcc</filename>.
- </note>
- </para>
-
- <para>
- For more information on using OProfile, see the OProfile
- online documentation at
- <ulink url="http://oprofile.sourceforge.net/docs/"/>.
- </para>
- </section>
-
- <section id="platdev-oprofile-oprofileui">
- <title>Using OProfileUI</title>
-
- <para>
- A graphical user interface for OProfile is also available.
- You can download and build this interface from the Yocto Project at
- <ulink url="&YOCTO_GIT_URL;/cgit.cgi/oprofileui/"></ulink>.
- If the "tools-profile" image feature is selected, all necessary binaries
- are installed onto the target device for OProfileUI interaction.
- For a list of image features that ship with the Yocto Project,
- see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-features-image'>Image Features</ulink>"
- section in the Yocto Project Reference Manual.
- </para>
-
- <para>
- Even though the source directory usually includes all needed patches on the target device, you
- might find you need other OProfile patches for recent OProfileUI features.
- If so, see the <ulink url='&YOCTO_GIT_URL;/cgit.cgi/oprofileui/tree/README'>
- OProfileUI README</ulink> for the most recent information.
- </para>
-
- <section id="platdev-oprofile-oprofileui-online">
- <title>Online Mode</title>
-
- <para>
- Using OProfile in online mode assumes a working network connection with the target
- hardware.
- With this connection, you just need to run "oprofile-server" on the device.
- By default, OProfile listens on port 4224.
- <note>
- You can change the port using the <filename>&dash;&dash;port</filename> command-line
- option.
- </note>
- </para>
-
- <para>
- The client program is called <filename>oprofile-viewer</filename> and its UI is relatively
- straight forward.
- You access key functionality through the buttons on the toolbar, which
- are duplicated in the menus.
- Here are the buttons:
- <itemizedlist>
- <listitem><para><emphasis>Connect:</emphasis> Connects to the remote host.
- You can also supply the IP address or hostname.</para></listitem>
- <listitem><para><emphasis>Disconnect:</emphasis> Disconnects from the target.
- </para></listitem>
- <listitem><para><emphasis>Start:</emphasis> Starts profiling on the device.
- </para></listitem>
- <listitem><para><emphasis>Stop:</emphasis> Stops profiling on the device and
- downloads the data to the local host.
- Stopping the profiler generates the profile and displays it in the viewer.
- </para></listitem>
- <listitem><para><emphasis>Download:</emphasis> Downloads the data from the
- target and generates the profile, which appears in the viewer.</para></listitem>
- <listitem><para><emphasis>Reset:</emphasis> Resets the sample data on the device.
- Resetting the data removes sample information collected from previous
- sampling runs.
- Be sure you reset the data if you do not want to include old sample information.
- </para></listitem>
- <listitem><para><emphasis>Save:</emphasis> Saves the data downloaded from the
- target to another directory for later examination.</para></listitem>
- <listitem><para><emphasis>Open:</emphasis> Loads previously saved data.
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>
- The client downloads the complete profile archive from
- the target to the host for processing.
- This archive is a directory that contains the sample data, the object files,
- and the debug information for the object files.
- The archive is then converted using the <filename>oparchconv</filename> script, which is
- included in this distribution.
- The script uses <filename>opimport</filename> to convert the archive from
- the target to something that can be processed on the host.
- </para>
-
- <para>
- Downloaded archives reside in the
- <link linkend='build-directory'>Build Directory</link> in
- <filename>tmp</filename> and are cleared up when they are no longer in use.
- </para>
-
- <para>
- If you wish to perform kernel profiling, you need to be sure
- a <filename>vmlinux</filename> file that matches the running kernel is available.
- In the source directory, that file is usually located in
- <filename>/boot/vmlinux-<replaceable>kernelversion</replaceable></filename>, where
- <filename><replaceable>kernelversion</replaceable></filename> is the version of the kernel.
- The OpenEmbedded build system generates separate <filename>vmlinux</filename>
- packages for each kernel it builds.
- Thus, it should just be a question of making sure a matching package is
- installed (e.g. <filename>opkg install kernel-vmlinux</filename>).
- The files are automatically installed into development and profiling images
- alongside OProfile.
- A configuration option exists within the OProfileUI settings page that you can use to
- enter the location of the <filename>vmlinux</filename> file.
- </para>
-
- <para>
- Waiting for debug symbols to transfer from the device can be slow, and it
- is not always necessary to actually have them on the device for OProfile use.
- All that is needed is a copy of the filesystem with the debug symbols present
- on the viewer system.
- The "<link linkend='platdev-gdb-remotedebug-launch-gdb'>Launch GDB on the Host Computer</link>"
- section covers how to create such a directory within
- the source directory and how to use the OProfileUI Settings
- Dialog to specify the location.
- If you specify the directory, it will be used when the file checksums
- match those on the system you are profiling.
- </para>
- </section>
-
- <section id="platdev-oprofile-oprofileui-offline">
- <title>Offline Mode</title>
-
- <para>
- If network access to the target is unavailable, you can generate
- an archive for processing in <filename>oprofile-viewer</filename> as follows:
- <literallayout class='monospaced'>
- # opcontrol &dash;&dash;reset
- # opcontrol &dash;&dash;start &dash;&dash;separate=lib &dash;&dash;no-vmlinux -c 5
- .
- .
- [do whatever is being profiled]
- .
- .
- # opcontrol &dash;&dash;stop
- # oparchive -o my_archive
- </literallayout>
- </para>
-
- <para>
- In the above example, <filename>my_archive</filename> is the name of the
- archive directory where you would like the profile archive to be kept.
- After the directory is created, you can copy it to another host and load it
- using <filename>oprofile-viewer</filename> open functionality.
- If necessary, the archive is converted.
- </para>
- </section>
- </section>
- </section>
--->
-
<section id='maintaining-open-source-license-compliance-during-your-products-lifecycle'>
<title>Maintaining Open Source License Compliance During Your Product's Lifecycle</title>
@@ -10113,12 +10690,31 @@
tarballs for licenses that require the release of
source.
Let us assume you are only concerned with GPL code as
- identified with the following:
+ identified by running the following script:
<literallayout class='monospaced'>
- $ cd poky/build/tmp/deploy/sources
- $ mkdir ~/gpl_source_release
- $ for dir in */*GPL*; do cp -r $dir ~/gpl_source_release; done
- </literallayout>
+ # Script to archive a subset of packages matching specific license(s)
+ # Source and license files are copied into sub folders of package folder
+ # Must be run from build folder
+ #!/bin/bash
+ src_release_dir="source-release"
+ mkdir -p $src_release_dir
+ for a in tmp/deploy/sources/*; do
+ for d in $a/*; do
+ # Get package name from path
+ p=`basename $d`
+ p=${p%-*}
+ p=${p%-*}
+ # Only archive GPL packages (update *GPL* regex for your license check)
+ numfiles=`ls tmp/deploy/licenses/$p/*GPL* 2> /dev/null | wc -l`
+ if [ $numfiles -gt 1 ]; then
+ echo Archiving $p
+ mkdir -p $src_release_dir/$p/source
+ cp $d/* $src_release_dir/$p/source 2> /dev/null
+ mkdir -p $src_release_dir/$p/license
+ cp tmp/deploy/licenses/$p/* $src_release_dir/$p/license 2> /dev/null
+ fi
+ done
+ done </literallayout>
At this point, you could create a tarball from the
<filename>gpl_source_release</filename> directory and
provide that to the end user.
diff --git a/import-layers/yocto-poky/documentation/dev-manual/dev-manual-model.xml b/import-layers/yocto-poky/documentation/dev-manual/dev-manual-model.xml
index ff44a3f68..1008e1169 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/dev-manual-model.xml
+++ b/import-layers/yocto-poky/documentation/dev-manual/dev-manual-model.xml
@@ -646,16 +646,20 @@
<para>
The remainder of this section presents these workflows.
+ See the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-devtool-reference'><filename>devtool</filename>&nbsp;Quick Reference</ulink>"
+ in the Yocto Project Reference Manual for a
+ <filename>devtool</filename> quick reference.
</para>
<section id='use-devtool-to-integrate-new-code'>
- <title>Use <filename>devtool add</filename> to Integrate New Code</title>
+ <title>Use <filename>devtool add</filename> to Add an Application</title>
<para>
The <filename>devtool add</filename> command generates
a new recipe based on existing source code.
This command takes advantage of the
- <link linkend='devtool-the-workspace-layer-structure'>workspace</link>
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-the-workspace-layer-structure'>workspace</ulink>
layer that many <filename>devtool</filename> commands
use.
The command is flexible enough to allow you to extract source
@@ -721,7 +725,8 @@
and needs to be extracted to some
local area - this time outside of the default
workspace.
- As always, if required <filename>devtool</filename> creates
+ If required, <filename>devtool</filename>
+ always creates
a Git repository locally during the extraction.
Furthermore, the first positional argument
<replaceable>srctree</replaceable> in this case
@@ -788,10 +793,6 @@
<para>If you need to take the build output and eventually
move it to the target hardware, you would use
<filename>devtool build</filename>:
- <note>
- You could use <filename>bitbake</filename> to build
- the recipe as well.
- </note>
<literallayout class='monospaced'>
$ devtool build <replaceable>recipe</replaceable>
</literallayout></para>
@@ -831,49 +832,44 @@
However, <filename>devtool</filename> does not provide a
specific command that allows you to do this.
</para></listitem>
- <listitem><para><emphasis>Optionally Update the Recipe With Patch Files</emphasis>:
- Once you are satisfied with the recipe, if you have made
- any changes to the source tree that you want to have
- applied by the recipe, you need to generate patches
- from those changes.
- You do this before moving the recipe
- to its final layer and cleaning up the workspace area
- <filename>devtool</filename> uses.
- This optional step is especially relevant if you are
- using or adding third-party software.</para>
- <para>To convert commits created using Git to patch files,
- use the <filename>devtool update-recipe</filename> command.
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ <literallayout class='monospaced'>
+ $ devtool finish <replaceable>recipe layer</replaceable>
+ </literallayout>
<note>
Any changes you want to turn into patches must be
committed to the Git repository in the source tree.
+ </note></para>
+
+ <para>As mentioned, the <filename>devtool finish</filename>
+ command moves the final recipe to its permanent layer.
+ </para>
+
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
</note>
- <literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Move the Recipe to its Permanent Layer</emphasis>:
- Before cleaning up the workspace, you need to move the
- final recipe to its permanent layer.
- You must do this before using the
- <filename>devtool reset</filename> command if you want to
- retain the recipe.
- </para></listitem>
- <listitem><para><emphasis>Reset the Recipe</emphasis>:
- As a final step, you can restore the state such that
- standard layers and the upstream source is used to build
- the recipe rather than data in the workspace.
- To reset the recipe, use the <filename>devtool reset</filename>
- command:
- <literallayout class='monospaced'>
- $ devtool reset <replaceable>recipe</replaceable>
- </literallayout>
</para></listitem>
</orderedlist>
</para>
</section>
<section id='devtool-use-devtool-modify-to-enable-work-on-code-associated-with-an-existing-recipe'>
- <title>Use <filename>devtool modify</filename> to Enable Work on Code Associated with an Existing Recipe</title>
+ <title>Use <filename>devtool modify</filename> to Modify the Source of an Existing Component</title>
<para>
The <filename>devtool modify</filename> command prepares the
@@ -1028,17 +1024,12 @@
<listitem><para><emphasis>Build the Recipe</emphasis>:
Once you have updated the source files, you can build
the recipe.
- You can either use <filename>devtool build</filename> or
- <filename>bitbake</filename>.
- Either method produces build output that is stored
- in
- <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>.
</para></listitem>
<listitem><para><emphasis>Deploy the Build Output</emphasis>:
When you use the <filename>devtool build</filename>
- command or <filename>bitbake</filename> to build out your
- recipe, you probably want to see if the resulting build
- output works as expected on target hardware.
+ command to build out your recipe, you probably want to see
+ if the resulting build output works as expected on target
+ hardware.
<note>
This step assumes you have a previously built
image that is already either running in QEMU or
@@ -1062,42 +1053,43 @@
However, <filename>devtool</filename> does not provide a
specific command that allows you to do this.
</para></listitem>
- <listitem><para><emphasis>Optionally Create Patch Files for Your Changes</emphasis>:
- After you have debugged your changes, you can
- use <filename>devtool update-recipe</filename> to
- generate patch files for all the commits you have
- made.
- <note>
- Patch files are generated only for changes
- you have committed.
- </note>
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, updates the recipe to point to them
+ (or creates a <filename>.bbappend</filename> file to do
+ so, depending on the specified destination layer), and
+ then resets the recipe so that the recipe is built normally
+ rather than from the workspace.
<literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
+ $ devtool finish <replaceable>recipe layer</replaceable>
</literallayout>
- By default, the
- <filename>devtool update-recipe</filename> command
- creates the patch files in a folder named the same
- as the recipe beneath the folder in which the recipe
- resides, and updates the recipe's
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
- statement to point to the generated patch files.
<note>
- You can use the
- "--append <replaceable>LAYERDIR</replaceable>"
- option to cause the command to create append files
- in a specific layer rather than the default
- recipe layer.
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+ </note></para>
+
+ <para>Because there is no need to move the recipe,
+ <filename>devtool finish</filename> either updates the
+ original recipe in the original layer or the command
+ creates a <filename>.bbappend</filename> in a different
+ layer as provided by <replaceable>layer</replaceable>.
+ </para>
+
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
</note>
</para></listitem>
- <listitem><para><emphasis>Restore the Workspace</emphasis>:
- The <filename>devtool reset</filename> restores the
- state so that standard layers and upstream sources are
- used to build the recipe rather than what is in the
- workspace.
- <literallayout class='monospaced'>
- $ devtool reset <replaceable>recipe</replaceable>
- </literallayout>
- </para></listitem>
</orderedlist>
</para>
</section>
@@ -1229,633 +1221,42 @@
However, <filename>devtool</filename> does not provide a
specific command that allows you to do this.
</para></listitem>
- <listitem><para><emphasis>Optionally Create Patch Files for Your Changes</emphasis>:
- After you have debugged your changes, you can
- use <filename>devtool update-recipe</filename> to
- generate patch files for all the commits you have
- made.
- <note>
- Patch files are generated only for changes
- you have committed.
- </note>
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ If you specify a destination layer that is the same as
+ the original source, then the old version of the
+ recipe and associated files will be removed prior to
+ adding the new version.
<literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
- </literallayout>
- By default, the
- <filename>devtool update-recipe</filename> command
- creates the patch files in a folder named the same
- as the recipe beneath the folder in which the recipe
- resides, and updates the recipe's
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
- statement to point to the generated patch files.
- </para></listitem>
- <listitem><para><emphasis>Move the Recipe to its Permanent Layer</emphasis>:
- Before cleaning up the workspace, you need to move the
- final recipe to its permanent layer.
- You can either overwrite the original recipe or you can
- overlay the upgraded recipe into a separate layer.
- You must do this before using the
- <filename>devtool reset</filename> command if you want to
- retain the upgraded recipe.
- </para></listitem>
- <listitem><para><emphasis>Restore the Workspace</emphasis>:
- The <filename>devtool reset</filename> restores the
- state so that standard layers and upstream sources are
- used to build the recipe rather than what is in the
- workspace.
- <literallayout class='monospaced'>
- $ devtool reset <replaceable>recipe</replaceable>
+ $ devtool finish <replaceable>recipe layer</replaceable>
</literallayout>
+ <note>
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+ </note></para>
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
+ </note>
</para></listitem>
</orderedlist>
</para>
</section>
</section>
- <section id='devtool-quick-reference'>
- <title><filename>devtool</filename> Quick Reference</title>
-
- <para>
- <filename>devtool</filename> has more functionality than simply
- adding a new recipe and the supporting Metadata to a temporary
- workspace layer.
- This section provides a short reference on
- <filename>devtool</filename> and its commands.
- </para>
-
- <section id='devtool-getting-help'>
- <title>Getting Help</title>
-
- <para>
- The easiest way to get help with the
- <filename>devtool</filename> command is using the
- <filename>--help</filename> option:
- <literallayout class='monospaced'>
- usage: devtool [--basepath BASEPATH] [--bbpath BBPATH] [-d] [-q]
- [--color COLOR] [-h]
- &lt;subcommand&gt; ...
-
- OpenEmbedded development tool
-
- optional arguments:
- --basepath BASEPATH Base directory of SDK / build directory
- --bbpath BBPATH Explicitly specify the BBPATH, rather than getting it
- from the metadata
- -d, --debug Enable debug output
- -q, --quiet Print only errors
- --color COLOR Colorize output (where COLOR is auto, always, never)
- -h, --help show this help message and exit
-
- subcommands:
- Beginning work on a recipe:
- add Add a new recipe
- modify Modify the source for an existing recipe
- upgrade Upgrade an existing recipe
- Getting information:
- status Show workspace status
- search Search available recipes
- Working on a recipe in the workspace:
- build Build a recipe
- edit-recipe Edit a recipe file in your workspace
- configure-help Get help on configure script options
- update-recipe Apply changes from external source tree to recipe
- reset Remove a recipe from your workspace
- Testing changes on target:
- deploy-target Deploy recipe output files to live target machine
- undeploy-target Undeploy recipe output files in live target machine
- build-image Build image including workspace recipe packages
- Advanced:
- create-workspace Set up workspace in an alternative location
- extract Extract the source for an existing recipe
- sync Synchronize the source tree for an existing recipe
- Use devtool &lt;subcommand&gt; --help to get help on a specific command
- </literallayout>
- </para>
-
- <para>
- As directed in the general help output, you can get more
- syntax on a specific command by providing the command
- name and using <filename>--help</filename>:
- <literallayout class='monospaced'>
- $ devtool add --help
- usage: devtool add [-h] [--same-dir | --no-same-dir] [--fetch URI]
- [--version VERSION] [--no-git] [--binary] [--also-native]
- [--src-subdir SUBDIR]
- [recipename] [srctree] [fetchuri]
-
- Adds a new recipe to the workspace to build a specified source tree. Can
- optionally fetch a remote URI and unpack it to create the source tree.
-
- positional arguments:
- recipename Name for new recipe to add (just name - no version,
- path or extension). If not specified, will attempt to
- auto-detect it.
- srctree Path to external source tree. If not specified, a
- subdirectory of
- /home/scottrif/poky/build/workspace/sources will be
- used.
- fetchuri Fetch the specified URI and extract it to create the
- source tree
-
- optional arguments:
- -h, --help show this help message and exit
- --same-dir, -s Build in same directory as source
- --no-same-dir Force build in a separate build directory
- --fetch URI, -f URI Fetch the specified URI and extract it to create the
- source tree (deprecated - pass as positional argument
- instead)
- --version VERSION, -V VERSION
- Version to use within recipe (PV)
- --no-git, -g If fetching source, do not set up source tree as a git
- repository
- --binary, -b Treat the source tree as something that should be
- installed verbatim (no compilation, same directory
- structure). Useful with binary packages e.g. RPMs.
- --also-native Also add native variant (i.e. support building recipe
- for the build host as well as the target machine)
- --src-subdir SUBDIR Specify subdirectory within source tree to use
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-the-workspace-layer-structure'>
- <title>The Workspace Layer Structure</title>
-
- <para>
- <filename>devtool</filename> uses a "Workspace" layer
- in which to accomplish builds.
- This layer is not specific to any single
- <filename>devtool</filename> command but is rather a common
- working area used across the tool.
- </para>
-
- <para>
- The following figure shows the workspace structure:
- </para>
-
- <para>
- <imagedata fileref="figures/build-workspace-directory.png"
- width="6in" depth="5in" align="left" scale="70" />
- </para>
-
- <para>
- <literallayout class='monospaced'>
- attic - A directory created if devtool believes it preserve
- anything when you run "devtool reset". For example, if you
- run "devtool add", make changes to the recipe, and then
- run "devtool reset", devtool takes notice that the file has
- been changed and moves it into the attic should you still
- want the recipe.
-
- README - Provides information on what is in workspace layer and how to
- manage it.
-
- .devtool_md5 - A checksum file used by devtool.
-
- appends - A directory that contains *.bbappend files, which point to
- external source.
-
- conf - A configuration directory that contains the layer.conf file.
-
- recipes - A directory containing recipes. This directory contains a
- folder for each directory added whose name matches that of the
- added recipe. devtool places the <replaceable>recipe</replaceable>.bb file
- within that sub-directory.
-
- sources - A directory containing a working copy of the source files used
- when building the recipe. This is the default directory used
- as the location of the source tree when you do not provide a
- source tree path. This directory contains a folder for each
- set of source files matched to a corresponding recipe.
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-adding-a-new-recipe-to-the-workspace'>
- <title>Adding a New Recipe to the Workspace Layer</title>
-
- <para>
- Use the <filename>devtool add</filename> command to add a new recipe
- to the workspace layer.
- The recipe you add should not exist -
- <filename>devtool</filename> creates it for you.
- The source files the recipe uses should exist in an external
- area.
- </para>
-
- <para>
- The following example creates and adds a new recipe named
- <filename>jackson</filename> to a workspace layer the tool creates.
- The source code built by the recipes resides in
- <filename>/home/scottrif/sources/jackson</filename>:
- <literallayout class='monospaced'>
- $ devtool add jackson /home/scottrif/sources/jackson
- </literallayout>
- </para>
-
- <para>
- If you add a recipe and the workspace layer does not exist,
- the command creates the layer and populates it as
- described in
- "<link linkend='devtool-the-workspace-layer-structure'>The Workspace Layer Structure</link>"
- section.
- </para>
-
- <para>
- Running <filename>devtool add</filename> when the
- workspace layer exists causes the tool to add the recipe,
- append files, and source files into the existing workspace layer.
- The <filename>.bbappend</filename> file is created to point
- to the external source tree.
- </para>
- </section>
-
- <section id='devtool-extracting-the-source-for-an-existing-recipe'>
- <title>Extracting the Source for an Existing Recipe</title>
-
- <para>
- Use the <filename>devtool extract</filename> command to
- extract the source for an existing recipe.
- When you use this command, you must supply the root name
- of the recipe (i.e. no version, paths, or extensions), and
- you must supply the directory to which you want the source
- extracted.
- </para>
-
- <para>
- Additional command options let you control the name of a
- development branch into which you can checkout the source
- and whether or not to keep a temporary directory, which is
- useful for debugging.
- </para>
- </section>
-
- <section id='devtool-synchronizing-a-recipes-extracted-source-tree'>
- <title>Synchronizing a Recipe's Extracted Source Tree</title>
-
- <para>
- Use the <filename>devtool sync</filename> command to
- synchronize a previously extracted source tree for an
- existing recipe.
- When you use this command, you must supply the root name
- of the recipe (i.e. no version, paths, or extensions), and
- you must supply the directory to which you want the source
- extracted.
- </para>
-
- <para>
- Additional command options let you control the name of a
- development branch into which you can checkout the source
- and whether or not to keep a temporary directory, which is
- useful for debugging.
- </para>
- </section>
-
- <section id='devtool-modifying-a-recipe'>
- <title>Modifying an Existing Recipe</title>
-
- <para>
- Use the <filename>devtool modify</filename> command to begin
- modifying the source of an existing recipe.
- This command is very similar to the
- <link linkend='devtool-adding-a-new-recipe-to-the-workspace'><filename>add</filename></link>
- command except that it does not physically create the
- recipe in the workspace layer because the recipe already
- exists in an another layer.
- </para>
-
- <para>
- The <filename>devtool modify</filename> command extracts the
- source for a recipe, sets it up as a Git repository if the
- source had not already been fetched from Git, checks out a
- branch for development, and applies any patches from the recipe
- as commits on top.
- You can use the following command to checkout the source
- files:
- <literallayout class='monospaced'>
- $ devtool modify <replaceable>recipe</replaceable>
- </literallayout>
- Using the above command form, <filename>devtool</filename> uses
- the existing recipe's
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
- statement to locate the upstream source, extracts the source
- into the default sources location in the workspace.
- The default development branch used is "devtool".
- </para>
- </section>
-
- <section id='devtool-edit-an-existing-recipe'>
- <title>Edit an Existing Recipe</title>
-
- <para>
- Use the <filename>devtool edit-recipe</filename> command
- to run the default editor, which is identified using the
- <filename>EDITOR</filename> variable, on the specified recipe.
- </para>
-
- <para>
- When you use the <filename>devtool edit-recipe</filename>
- command, you must supply the root name of the recipe
- (i.e. no version, paths, or extensions).
- Also, the recipe file itself must reside in the workspace
- as a result of the <filename>devtool add</filename> or
- <filename>devtool upgrade</filename> commands.
- However, you can override that requirement by using the
- "-a" or "--any-recipe" option.
- Using either of these options allows you to edit any recipe
- regardless of its location.
- </para>
- </section>
-
- <section id='devtool-updating-a-recipe'>
- <title>Updating a Recipe</title>
-
- <para>
- Use the <filename>devtool update-recipe</filename> command to
- update your recipe with patches that reflect changes you make
- to the source files.
- For example, if you know you are going to work on some
- code, you could first use the
- <link linkend='devtool-modifying-a-recipe'><filename>devtool modify</filename></link>
- command to extract the code and set up the workspace.
- After which, you could modify, compile, and test the code.
- </para>
-
- <para>
- When you are satisfied with the results and you have committed
- your changes to the Git repository, you can then
- run the <filename>devtool update-recipe</filename> to create the
- patches and update the recipe:
- <literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
- </literallayout>
- If you run the <filename>devtool update-recipe</filename>
- without committing your changes, the command ignores the
- changes.
- </para>
-
- <para>
- Often, you might want to apply customizations made to your
- software in your own layer rather than apply them to the
- original recipe.
- If so, you can use the
- <filename>-a</filename> or <filename>--append</filename>
- option with the <filename>devtool update-recipe</filename>
- command.
- These options allow you to specify the layer into which to
- write an append file:
- <literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable> -a <replaceable>base-layer-directory</replaceable>
- </literallayout>
- The <filename>*.bbappend</filename> file is created at the
- appropriate path within the specified layer directory, which
- may or may not be in your <filename>bblayers.conf</filename>
- file.
- If an append file already exists, the command updates it
- appropriately.
- </para>
- </section>
-
- <section id='devtool-upgrading-a-recipe'>
- <title>Upgrading a Recipe</title>
-
- <para>
- Use the <filename>devtool upgrade</filename> command
- to upgrade an existing recipe to a new upstream version.
- The command puts the upgraded recipe file into the
- workspace along with any associated files, and extracts
- the source tree to a specified location should patches
- need rebased or added to as a result of the upgrade.
- </para>
-
- <para>
- When you use the <filename>devtool upgrade</filename> command,
- you must supply the root name of the recipe (i.e. no version,
- paths, or extensions), and you must supply the directory
- to which you want the source extracted.
- Additional command options let you control things such as
- the version number to which you want to upgrade (i.e. the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink>),
- the source revision to which you want to upgrade (i.e. the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRCREV'><filename>SRCREV</filename></ulink>,
- whether or not to apply patches, and so forth.
- </para>
- </section>
-
- <section id='devtool-resetting-a-recipe'>
- <title>Resetting a Recipe</title>
-
- <para>
- Use the <filename>devtool reset</filename> command to remove a
- recipe and its configuration (e.g. the corresponding
- <filename>.bbappend</filename> file) from the workspace layer.
- Realize that this command deletes the recipe and the
- append file.
- The command does not physically move them for you.
- Consequently, you must be sure to physically relocate your
- updated recipe and the append file outside of the workspace
- layer before running the <filename>devtool reset</filename>
- command.
- </para>
-
- <para>
- If the <filename>devtool reset</filename> command detects that
- the recipe or the append files have been modified, the
- command preserves the modified files in a separate "attic"
- subdirectory under the workspace layer.
- </para>
-
- <para>
- Here is an example that resets the workspace directory that
- contains the <filename>mtr</filename> recipe:
- <literallayout class='monospaced'>
- $ devtool reset mtr
- NOTE: Cleaning sysroot for recipe mtr...
- NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/mtr as-is; if you no
- longer need it then please delete it manually
- $
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-building-your-recipe'>
- <title>Building Your Recipe</title>
-
- <para>
- Use the <filename>devtool build</filename> command to cause the
- OpenEmbedded build system to build your recipe.
- The <filename>devtool build</filename> command is equivalent to
- <filename>bitbake -c populate_sysroot</filename>.
- </para>
-
- <para>
- When you use the <filename>devtool build</filename> command,
- you must supply the root name of the recipe (i.e. no version,
- paths, or extensions).
- You can use either the "-s" or the "--disable-parallel-make"
- option to disable parallel makes during the build.
- Here is an example:
- <literallayout class='monospaced'>
- $ devtool build <replaceable>recipe</replaceable>
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-building-your-image'>
- <title>Building Your Image</title>
-
- <para>
- Use the <filename>devtool build-image</filename> command
- to build an image, extending it to include packages from
- recipes in the workspace.
- Using this command is useful when you want an image that
- ready for immediate deployment onto a device for testing.
- For proper integration into a final image, you need to
- edit your custom image recipe appropriately.
- </para>
-
- <para>
- When you use the <filename>devtool build-image</filename>
- command, you must supply the name of the image.
- This command has no command line options:
- <literallayout class='monospaced'>
- $ devtool build-image <replaceable>image</replaceable>
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-deploying-your-software-on-the-target-machine'>
- <title>Deploying Your Software on the Target Machine</title>
-
- <para>
- Use the <filename>devtool deploy-target</filename> command to
- deploy the recipe's build output to the live target machine:
- <literallayout class='monospaced'>
- $ devtool deploy-target <replaceable>recipe</replaceable>&nbsp;<replaceable>target</replaceable>
- </literallayout>
- The <replaceable>target</replaceable> is the address of the
- target machine, which must be running an SSH server (i.e.
- <filename>user@hostname[:destdir]</filename>).
- </para>
-
- <para>
- This command deploys all files installed during the
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
- task.
- Furthermore, you do not need to have package management enabled
- within the target machine.
- If you do, the package manager is bypassed.
- <note><title>Notes</title>
- <para>
- The <filename>deploy-target</filename>
- functionality is for development only.
- You should never use it to update an image that will be
- used in production.
- </para>
- </note>
- </para>
- </section>
-
- <section id='devtool-removing-your-software-from-the-target-machine'>
- <title>Removing Your Software from the Target Machine</title>
-
- <para>
- Use the <filename>devtool undeploy-target</filename> command to
- remove deployed build output from the target machine.
- For the <filename>devtool undeploy-target</filename> command to
- work, you must have previously used the
- <link linkend='devtool-deploying-your-software-on-the-target-machine'><filename>devtool deploy-target</filename></link>
- command.
- <literallayout class='monospaced'>
- $ devtool undeploy-target <replaceable>recipe</replaceable>&nbsp;<replaceable>target</replaceable>
- </literallayout>
- The <replaceable>target</replaceable> is the address of the
- target machine, which must be running an SSH server (i.e.
- <filename>user@hostname</filename>).
- </para>
- </section>
-
- <section id='devtool-creating-the-workspace'>
- <title>Creating the Workspace Layer in an Alternative Location</title>
-
- <para>
- Use the <filename>devtool create-workspace</filename> command to
- create a new workspace layer in your
- <link linkend='build-directory'>Build Directory</link>.
- When you create a new workspace layer, it is populated with the
- <filename>README</filename> file and the
- <filename>conf</filename> directory only.
- </para>
-
- <para>
- The following example creates a new workspace layer in your
- current working and by default names the workspace layer
- "workspace":
- <literallayout class='monospaced'>
- $ devtool create-workspace
- </literallayout>
- </para>
-
- <para>
- You can create a workspace layer anywhere by supplying
- a pathname with the command.
- The following command creates a new workspace layer named
- "new-workspace":
- <literallayout class='monospaced'>
- $ devtool create-workspace /home/scottrif/new-workspace
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-get-the-status-of-the-recipes-in-your-workspace'>
- <title>Get the Status of the Recipes in Your Workspace</title>
-
- <para>
- Use the <filename>devtool status</filename> command to
- list the recipes currently in your workspace.
- Information includes the paths to their respective
- external source trees.
- </para>
-
- <para>
- The <filename>devtool status</filename> command has no
- command-line options:
- <literallayout class='monospaced'>
- devtool status
- </literallayout>
- Following is sample output after using
- <link linkend='devtool-adding-a-new-recipe-to-the-workspace'><filename>devtool add</filename></link>
- to create and add the <filename>mtr_0.86.bb</filename> recipe
- to the <filename>workspace</filename> directory:
- <literallayout class='monospaced'>
- $ devtool status
- mtr: /home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)
- $
- </literallayout>
- </para>
- </section>
-
- <section id='devtool-search-for-available-target-recipes'>
- <title>Search for Available Target Recipes</title>
-
- <para>
- Use the <filename>devtool search</filename> command to
- search for available target recipes.
- The command matches the recipe name, package name,
- description, and installed files.
- The command displays the recipe name as a result of a
- match.
- </para>
-
- <para>
- When you use the <filename>devtool search</filename> command,
- you must supply a <replaceable>keyword</replaceable>.
- The command uses the <replaceable>keyword</replaceable> when
- searching for a match.
- </para>
- </section>
- </section>
-
<section id="using-a-quilt-workflow">
<title>Using Quilt in Your Workflow</title>
@@ -2192,4 +1593,62 @@
</note>
</section>
+<section id="platdev-appdev-devpyshell">
+ <title>Using a Development Python Shell</title>
+
+ <para>
+ Similar to working within a development shell as described in
+ the previous section, you can also spawn and work within an
+ interactive Python development shell.
+ When debugging certain commands or even when just editing packages,
+ <filename>devpyshell</filename> can be a useful tool.
+ When you invoke <filename>devpyshell</filename>, all tasks up to and
+ including
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-patch'><filename>do_patch</filename></ulink>
+ are run for the specified target.
+ Then a new terminal is opened.
+ Additionally, key Python objects and code are available in the same
+ way they are to BitBake tasks, in particular, the data store 'd'.
+ So, commands such as the following are useful when exploring the data
+ store and running functions:
+ <literallayout class='monospaced'>
+ pydevshell> d.getVar("STAGING_DIR", True)
+ '/media/build1/poky/build/tmp/sysroots'
+ pydevshell> d.getVar("STAGING_DIR", False)
+ '${TMPDIR}/sysroots'
+ pydevshell> d.setVar("FOO", "bar")
+ pydevshell> d.getVar("FOO", True)
+ 'bar'
+ pydevshell> d.delVar("FOO")
+ pydevshell> d.getVar("FOO", True)
+ pydevshell> bb.build.exec_func("do_unpack", d)
+ pydevshell>
+ </literallayout>
+ The commands execute just as if the OpenEmbedded build system were executing them.
+ Consequently, working this way can be helpful when debugging a build or preparing
+ software to be used with the OpenEmbedded build system.
+ </para>
+
+ <para>
+ Following is an example that uses <filename>devpyshell</filename> on a target named
+ <filename>matchbox-desktop</filename>:
+ <literallayout class='monospaced'>
+ $ bitbake matchbox-desktop -c devpyshell
+ </literallayout>
+ </para>
+
+ <para>
+ This command spawns a terminal and places you in an interactive
+ Python interpreter within the OpenEmbedded build environment.
+ The <ulink url='&YOCTO_DOCS_REF_URL;#var-OE_TERMINAL'><filename>OE_TERMINAL</filename></ulink>
+ variable controls what type of shell is opened.
+ </para>
+
+ <para>
+ When you are finished using <filename>devpyshell</filename>, you
+ can exit the shell either by using Ctrl+d or closing the terminal
+ window.
+ </para>
+</section>
+
</chapter>
diff --git a/import-layers/yocto-poky/documentation/dev-manual/dev-manual.xml b/import-layers/yocto-poky/documentation/dev-manual/dev-manual.xml
index 791a8cb6a..0012aaa3b 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/dev-manual.xml
+++ b/import-layers/yocto-poky/documentation/dev-manual/dev-manual.xml
@@ -86,6 +86,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
diff --git a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-add-flow.png b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-add-flow.png
index c09e60e35..985ac331f 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-add-flow.png
+++ b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-add-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-modify-flow.png b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-modify-flow.png
index cd7f4d05b..fd684ffbe 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-modify-flow.png
+++ b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-modify-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-upgrade-flow.png b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-upgrade-flow.png
index d25168c84..65474dad0 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-upgrade-flow.png
+++ b/import-layers/yocto-poky/documentation/dev-manual/figures/devtool-upgrade-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev-common.xml b/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev-common.xml
index 261471c46..a9aafd3c2 100644
--- a/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev-common.xml
+++ b/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev-common.xml
@@ -384,9 +384,10 @@
<para>
The resulting <filename>.config</filename> file is
- located in
- <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename> under the
- <filename>linux-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></ulink><filename>}-${<ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink>}-build</filename> directory.
+ located in the build directory,
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-B'><filename>B</filename></ulink><filename>}</filename>,
+ which expands to
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename><filename>/linux-</filename><filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></ulink><filename>}-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink><filename>}-build</filename>.
You can use the entire <filename>.config</filename> file as the
<filename>defconfig</filename> file as described in the
"<link linkend='changing-the-configuration'>Changing the Configuration</link>" section.
@@ -394,6 +395,16 @@
see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-menuconfig'>Using <filename>menuconfig</filename></ulink>"
section in the Yocto Project Development Manual.
+ <note>
+ You can determine what a variable expands to by looking
+ at the output of the <filename>bitbake -e</filename>
+ command:
+ <literallayout class='monospaced'>
+ $ bitbake -e virtual/kernel
+ </literallayout>
+ Search the output for the variable in which you are
+ interested to see exactly how it is expanded and used.
+ </note>
</para>
<para>
@@ -512,8 +523,14 @@
</literallayout>
Taking this step ensures you have the sources prepared
and the configuration completed.
- You can find the sources in the
- <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}/linux</filename> directory.
+ You can find the sources in the build directory within the
+ <filename>source/</filename> directory, which is a symlink
+ (i.e. <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-B'><filename>B</filename></ulink><filename>}/source</filename>).
+ The <filename>source/</filename> directory expands to
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename><filename>/linux-</filename><filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></ulink><filename>}-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink><filename>}-build/source</filename>.
+ The directory pointed to by the
+ <filename>source/</filename> symlink is also known as
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></ulink><filename>}</filename>.
</para>
<para>
diff --git a/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev.xml b/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev.xml
index fb11dd15c..12828d26c 100644
--- a/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev.xml
+++ b/import-layers/yocto-poky/documentation/kernel-dev/kernel-dev.xml
@@ -71,6 +71,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
diff --git a/import-layers/yocto-poky/documentation/mega-manual/figures/sdk-devtool-upgrade-flow.png b/import-layers/yocto-poky/documentation/mega-manual/figures/sdk-devtool-upgrade-flow.png
new file mode 100644
index 000000000..65474dad0
--- /dev/null
+++ b/import-layers/yocto-poky/documentation/mega-manual/figures/sdk-devtool-upgrade-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/mega-manual/mega-manual.xml b/import-layers/yocto-poky/documentation/mega-manual/mega-manual.xml
index 154e369ab..c16e92861 100644
--- a/import-layers/yocto-poky/documentation/mega-manual/mega-manual.xml
+++ b/import-layers/yocto-poky/documentation/mega-manual/mega-manual.xml
@@ -55,6 +55,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
@@ -111,13 +116,17 @@
<xi:include
xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-intro.xml"/>
<xi:include
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-extensible.xml"/>
+ <xi:include
xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-using.xml"/>
<xi:include
- xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-extensible.xml"/>
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-working-projects.xml"/>
<xi:include
xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-appendix-obtain.xml"/>
<xi:include
xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-appendix-customizing.xml"/>
+ <xi:include
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../sdk-manual/sdk-appendix-mars.xml"/>
<!-- Includes bsp-guide title image and then bsp-guide chapters -->
@@ -191,6 +200,9 @@
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-tasks.xml"/>
<xi:include
+ xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-devtool-reference.xml"/>
+
+ <xi:include
xmlns:xi="http://www.w3.org/2003/XInclude" href="../ref-manual/ref-qa-checks.xml"/>
<xi:include
diff --git a/import-layers/yocto-poky/documentation/poky.ent b/import-layers/yocto-poky/documentation/poky.ent
index 673ab23c9..b36c234b1 100644
--- a/import-layers/yocto-poky/documentation/poky.ent
+++ b/import-layers/yocto-poky/documentation/poky.ent
@@ -1,10 +1,10 @@
-<!ENTITY DISTRO "2.1">
-<!ENTITY DISTRO_COMPRESSED "21">
-<!ENTITY DISTRO_NAME_NO_CAP "krogoth">
-<!ENTITY DISTRO_NAME "Krogoth">
-<!ENTITY YOCTO_DOC_VERSION "2.1">
-<!ENTITY POKYVERSION "15.0.0">
-<!ENTITY POKYVERSION_COMPRESSED "1500">
+<!ENTITY DISTRO "2.2">
+<!ENTITY DISTRO_COMPRESSED "22">
+<!ENTITY DISTRO_NAME_NO_CAP "morty">
+<!ENTITY DISTRO_NAME "Morty">
+<!ENTITY YOCTO_DOC_VERSION "2.2">
+<!ENTITY POKYVERSION "17.0.0">
+<!ENTITY POKYVERSION_COMPRESSED "1700">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2016">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">
@@ -62,7 +62,7 @@
<!ENTITY OE_INIT_FILE "oe-init-build-env">
<!ENTITY UBUNTU_HOST_PACKAGES_ESSENTIAL "gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat">
-<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python unzip perl patch \
+<!ENTITY FEDORA_HOST_PACKAGES_ESSENTIAL "gawk make wget tar bzip2 gzip python3 unzip perl patch \
diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue perl-bignum socat \
findutils which">
diff --git a/import-layers/yocto-poky/documentation/profile-manual/profile-manual-intro.xml b/import-layers/yocto-poky/documentation/profile-manual/profile-manual-intro.xml
index cc47f5267..d38d61a82 100644
--- a/import-layers/yocto-poky/documentation/profile-manual/profile-manual-intro.xml
+++ b/import-layers/yocto-poky/documentation/profile-manual/profile-manual-intro.xml
@@ -67,8 +67,10 @@
By default, the Yocto build system strips symbols from the
binaries it packages, which makes it difficult to use some
of the tools.
- </para><para>You can prevent that by putting the following
- in your local.conf when you build the image:
+ </para><para>You can prevent that by setting the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_STRIP'><filename>INHIBIT_PACKAGE_STRIP</filename></ulink>
+ variable to "1" in your
+ <filename>local.conf</filename> when you build the image:
</para>
</note>
<literallayout class='monospaced'>
diff --git a/import-layers/yocto-poky/documentation/profile-manual/profile-manual-usage.xml b/import-layers/yocto-poky/documentation/profile-manual/profile-manual-usage.xml
index 310e8f01c..c0873e13a 100644
--- a/import-layers/yocto-poky/documentation/profile-manual/profile-manual-usage.xml
+++ b/import-layers/yocto-poky/documentation/profile-manual/profile-manual-usage.xml
@@ -60,8 +60,11 @@
<para>
In particular, you'll get the most mileage out of perf if you
- profile an image built with INHIBIT_PACKAGE_STRIP = "1" in your
- local.conf.
+ profile an image built with the following in your
+ <filename>local.conf</filename> file:
+ <literallayout class='monospaced'>
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_STRIP'>INHIBIT_PACKAGE_STRIP</ulink> = "1"
+ </literallayout>
</para>
<para>
@@ -355,10 +358,10 @@
</para>
<para>
- One way around that is to put the following in your local.conf
- when you build the image:
+ One way around that is to put the following in your
+ <filename>local.conf</filename> file when you build the image:
<literallayout class='monospaced'>
- INHIBIT_PACKAGE_STRIP = "1"
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_STRIP'>INHIBIT_PACKAGE_STRIP</ulink> = "1"
</literallayout>
However, we already have an image with the binaries stripped,
so what can we do to get perf to resolve the symbols? Basically
diff --git a/import-layers/yocto-poky/documentation/profile-manual/profile-manual.xml b/import-layers/yocto-poky/documentation/profile-manual/profile-manual.xml
index 1e0ccc1aa..4717906ca 100644
--- a/import-layers/yocto-poky/documentation/profile-manual/profile-manual.xml
+++ b/import-layers/yocto-poky/documentation/profile-manual/profile-manual.xml
@@ -71,6 +71,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/closer-look.xml b/import-layers/yocto-poky/documentation/ref-manual/closer-look.xml
index 84ff584ba..b73e59ca7 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/closer-look.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/closer-look.xml
@@ -888,7 +888,9 @@
class,
you can add additional configuration options by using
the <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
- variable.
+ or
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
+ variables.
For information on how this variable works within
that class, see the
<filename>meta/classes/autotools.bbclass</filename> file.
@@ -1209,6 +1211,199 @@
which includes the environment setup script.
</para>
</section>
+
+ <section id='stamp-files-and-the-rerunning-of-tasks'>
+ <title>Stamp Files and the Rerunning of Tasks</title>
+
+ <para>
+ For each task that completes successfully, BitBake writes a
+ stamp file into the
+ <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>
+ directory.
+ The beginning of the stamp file's filename is determined by the
+ <link linkend='var-STAMP'><filename>STAMP</filename></link>
+ variable, and the end of the name consists of the task's name
+ and current
+ <ulink url='&YOCTO_DOCS_BB_URL;#checksums'>input checksum</ulink>.
+ <note>
+ This naming scheme assumes that
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SIGNATURE_HANDLER'><filename>BB_SIGNATURE_HANDLER</filename></ulink>
+ is "OEBasicHash", which is almost always the case in
+ current OpenEmbedded.
+ </note>
+ To determine if a task needs to be rerun, BitBake checks if a
+ stamp file with a matching input checksum exists for the task.
+ If such a stamp file exists, the task's output is assumed to
+ exist and still be valid.
+ If the file does not exist, the task is rerun.
+ <note>
+ <para>The stamp mechanism is more general than the shared
+ state (sstate) cache mechanism described in the
+ "<link linkend='setscene-tasks-and-shared-state'>Setscene Tasks and Shared State</link>"
+ section.
+ BitBake avoids rerunning any task that has a valid
+ stamp file, not just tasks that can be accelerated through
+ the sstate cache.</para>
+ <para>However, you should realize that stamp files only
+ serve as a marker that some work has been done and that
+ these files do not record task output.
+ The actual task output would usually be somewhere in
+ <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
+ (e.g. in some recipe's
+ <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>.)
+ What the sstate cache mechanism adds is a way to cache task
+ output that can then be shared between build machines.
+ </para>
+ </note>
+ Since <filename>STAMPS_DIR</filename> is usually a subdirectory
+ of <filename>TMPDIR</filename>, removing
+ <filename>TMPDIR</filename> will also remove
+ <filename>STAMPS_DIR</filename>, which means tasks will
+ properly be rerun to repopulate <filename>TMPDIR</filename>.
+ </para>
+
+ <para>
+ If you want some task to always be considered "out of date",
+ you can mark it with the
+ <ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>nostamp</filename></ulink>
+ varflag.
+ If some other task depends on such a task, then that task will
+ also always be considered out of date, which might not be what
+ you want.
+ </para>
+
+ <para>
+ For details on how to view information about a task's
+ signature, see the
+ "<link linkend='usingpoky-viewing-task-variable-dependencies'>Viewing Task Variable Dependencies</link>"
+ section.
+ </para>
+ </section>
+
+ <section id='setscene-tasks-and-shared-state'>
+ <title>Setscene Tasks and Shared State</title>
+
+ <para>
+ The description of tasks so far assumes that BitBake needs to
+ build everything and there are no prebuilt objects available.
+ BitBake does support skipping tasks if prebuilt objects are
+ available.
+ These objects are usually made available in the form of a
+ shared state (sstate) cache.
+ <note>
+ For information on variables affecting sstate, see the
+ <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>
+ and
+ <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
+ variables.
+ </note>
+ </para>
+
+ <para>
+ The idea of a setscene task (i.e
+ <filename>do_</filename><replaceable>taskname</replaceable><filename>_setscene</filename>)
+ is a version of the task where
+ instead of building something, BitBake can skip to the end
+ result and simply place a set of files into specific locations
+ as needed.
+ In some cases, it makes sense to have a setscene task variant
+ (e.g. generating package files in the
+ <filename>do_package_write_*</filename> task).
+ In other cases, it does not make sense, (e.g. a
+ <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
+ task or
+ <link linkend='ref-tasks-unpack'><filename>do_unpack</filename></link>
+ task) since the work involved would be equal to or greater than
+ the underlying task.
+ </para>
+
+ <para>
+ In the OpenEmbedded build system, the common tasks that have
+ setscene variants are <link linkend='ref-tasks-package'><filename>do_package</filename></link>,
+ <filename>do_package_write_*</filename>,
+ <link linkend='ref-tasks-deploy'><filename>do_deploy</filename></link>,
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>,
+ and
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>.
+ Notice that these are most of the tasks whose output is an
+ end result.
+ </para>
+
+ <para>
+ The OpenEmbedded build system has knowledge of the relationship
+ between these tasks and other tasks that precede them.
+ For example, if BitBake runs
+ <filename>do_populate_sysroot_setscene</filename> for
+ something, there is little point in running any of the
+ <filename>do_fetch</filename>, <filename>do_unpack</filename>,
+ <filename>do_patch</filename>,
+ <filename>do_configure</filename>,
+ <filename>do_compile</filename>, and
+ <filename>do_install</filename> tasks.
+ However, if <filename>do_package</filename> needs to be run,
+ BitBake would need to run those other tasks.
+ </para>
+
+ <para>
+ It becomes more complicated if everything can come from an
+ sstate cache because some objects are simply not required at
+ all.
+ For example, you do not need a compiler or native tools, such
+ as quilt, if there is nothing to compile or patch.
+ If the <filename>do_package_write_*</filename> packages are
+ available from sstate, BitBake does not need the
+ <filename>do_package</filename> task data.
+ </para>
+
+ <para>
+ To handle all these complexities, BitBake runs in two phases.
+ The first is the "setscene" stage.
+ During this stage, BitBake first checks the sstate cache for
+ any targets it is planning to build.
+ BitBake does a fast check to see if the object exists rather
+ than a complete download.
+ If nothing exists, the second phase, which is the setscene
+ stage, completes and the main build proceeds.
+ </para>
+
+ <para>
+ If objects are found in the sstate cache, the OpenEmbedded
+ build system works backwards from the end targets specified
+ by the user.
+ For example, if an image is being built, the OpenEmbedded build
+ system first looks for the packages needed for that image and
+ the tools needed to construct an image.
+ If those are available, the compiler is not needed.
+ Thus, the compiler is not even downloaded.
+ If something was found to be unavailable, or the download or
+ setscene task fails, the OpenEmbedded build system then tries
+ to install dependencies, such as the compiler, from the cache.
+ </para>
+
+ <para>
+ The availability of objects in the sstate cache is handled by
+ the function specified by the
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHCHECK_FUNCTION'><filename>BB_HASHCHECK_FUNCTION</filename></ulink>
+ variable and returns a list of the objects that are available.
+ The function specified by the
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SETSCENE_DEPVALID'><filename>BB_SETSCENE_DEPVALID</filename></ulink>
+ variable is the function that determines whether a given
+ dependency needs to be followed, and whether for any given
+ relationship the function needs to be passed.
+ The function returns a True or False value.
+ </para>
+
+ <para>
+ Once the setscene process completes, the OpenEmbedded build
+ system has a list of tasks that it believes it can "accelerate"
+ and therefore does not need to run.
+ There is a final function call to the function specified by the
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></ulink>
+ variable that is able to require the tasks to be run that
+ that the OpenEmbedded build system initially was going to
+ skip.
+ </para>
+ </section>
</section>
<section id='images-dev-environment'>
@@ -1403,6 +1598,10 @@
Specifies whether or not packagedata will be included in
the extensible SDK for all recipes in the "world" target.
</para></listitem>
+ <listitem><para><link linkend='var-SDK_INCLUDE_TOOLCHAIN'><filename>SDK_INCLUDE_TOOLCHAIN</filename></link>:
+ Specifies whether or not the toolchain will be included
+ when building the extensible SDK.
+ </para></listitem>
<listitem><para><link linkend='var-SDK_LOCAL_CONF_WHITELIST'><filename>SDK_LOCAL_CONF_WHITELIST</filename></link>:
A list of variables allowed through from the build system
configuration into the extensible SDK configuration.
diff --git a/import-layers/yocto-poky/documentation/ref-manual/faq.xml b/import-layers/yocto-poky/documentation/ref-manual/faq.xml
index d2e4e8eb1..5f3f17349 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/faq.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/faq.xml
@@ -33,9 +33,7 @@
<para id='faq-not-meeting-requirements'>
My development system does not meet the
required Git, tar, and Python versions.
- In particular, I do not have Python 2.7.3 or greater, or
- I do have Python 3.x, which is specifically not supported by
- the Yocto Project.
+ In particular, I do not have Python 3.4.0 or greater.
Can I still use the Yocto Project?
</para>
</question>
diff --git a/import-layers/yocto-poky/documentation/dev-manual/figures/build-workspace-directory.png b/import-layers/yocto-poky/documentation/ref-manual/figures/build-workspace-directory.png
index 5387d33f0..5387d33f0 100644
--- a/import-layers/yocto-poky/documentation/dev-manual/figures/build-workspace-directory.png
+++ b/import-layers/yocto-poky/documentation/ref-manual/figures/build-workspace-directory.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/ref-manual/introduction.xml b/import-layers/yocto-poky/documentation/ref-manual/introduction.xml
index ce8fa5c65..90d965f6d 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/introduction.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/introduction.xml
@@ -47,7 +47,7 @@
<listitem><para><emphasis>
<link linkend='usingpoky'>Using the Yocto Project</link>:</emphasis>
Provides an overview of the components that make up the Yocto Project
- followed by information about debugng images created in the Yocto Project.
+ followed by information about debugging images created in the Yocto Project.
</para></listitem>
<listitem><para><emphasis>
<link linkend='closer-look'>A Closer Look at the Yocto Project Development Environment</link>:</emphasis>
@@ -80,6 +80,11 @@
Describes the tasks defined by the OpenEmbedded build system.
</para></listitem>
<listitem><para><emphasis>
+ <link linkend='ref-devtool-reference'><filename>devtool</filename> Quick Reference</link>:</emphasis>
+ Provides a quick reference for the <filename>devtool</filename>
+ command.
+ </para></listitem>
+ <listitem><para><emphasis>
<link linkend='ref-qa-checks'>QA Error and Warning Messages</link>:</emphasis>
Lists and describes QA warning and error messages.
</para></listitem>
@@ -252,12 +257,6 @@
<literallayout class='monospaced'>
$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
</literallayout></para></listitem>
- <listitem><para><emphasis>SDK Installer Extras:</emphasis>
- Packages needed if you are going to be using the
- the standard or extensible SDK:
- <literallayout class='monospaced'>
- $ sudo apt-get install autoconf automake libtool libglib2.0-dev libarchive-dev
- </literallayout></para></listitem>
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
Packages needed if you are going to run
<filename>oe-selftest</filename>:
@@ -296,17 +295,11 @@
$ sudo dnf install make docbook-style-dsssl docbook-style-xsl \
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
</literallayout></para></listitem>
- <listitem><para><emphasis>SDK Installer Extras:</emphasis>
- Packages needed if you are going to be using the
- standard or extensible SDK:
- <literallayout class='monospaced'>
- $ sudo dnf install autoconf automake libtool glib2-devel libarchive-devel
- </literallayout></para></listitem>
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
Packages needed if you are going to run
<filename>oe-selftest</filename>:
<literallayout class='monospaced'>
- $ sudo dnf install GitPython
+ $ sudo dnf install python3-GitPython
</literallayout>
</para></listitem>
</itemizedlist>
@@ -339,12 +332,6 @@
<literallayout class='monospaced'>
$ sudo zypper install make fop xsltproc dblatex xmlto
</literallayout></para></listitem>
- <listitem><para><emphasis>SDK Installer Extras:</emphasis>
- Packages needed if you are going to be using the
- standard or extensible SDK:
- <literallayout class='monospaced'>
- $ sudo zypper install autoconf automake libtool glib2-devel libarchive-devel
- </literallayout></para></listitem>
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
Packages needed if you are going to run
<filename>oe-selftest</filename>:
@@ -394,12 +381,6 @@
$ sudo yum install make docbook-style-dsssl docbook-style-xsl \
docbook-dtds docbook-utils fop libxslt dblatex xmlto xsltproc
</literallayout></para></listitem>
- <listitem><para><emphasis>SDK Installer Extras:</emphasis>
- Packages needed if you are going to be using the
- standard or extensible SDK:
- <literallayout class='monospaced'>
- $ sudo yum install autoconf automake libtool glib2-devel libarchive-devel
- </literallayout></para></listitem>
<listitem><para><emphasis>OpenEmbedded Self-Test (<filename>oe-selftest</filename>):</emphasis>
Packages needed if you are going to run
<filename>oe-selftest</filename>:
@@ -422,8 +403,7 @@
<itemizedlist>
<listitem><para>Git 1.8.3.1 or greater</para></listitem>
<listitem><para>tar 1.24 or greater</para></listitem>
- <listitem><para>Python 2.7.3 or greater not including
- Python 3.x, which is not supported.</para></listitem>
+ <listitem><para>Python 3.4.0 or greater</para></listitem>
</itemizedlist>
</para>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/migration.xml b/import-layers/yocto-poky/documentation/ref-manual/migration.xml
index e6c0aa36b..3e7e6b084 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/migration.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/migration.xml
@@ -2447,8 +2447,8 @@
</literallayout>
</para></listitem>
<listitem><para>
- <filename>d.delVar('</filename><replaceable>varname</replaceable><filename>')</filename> and
- <filename>d.setVar('</filename><replaceable>varname</replaceable><filename>', None)</filename>
+ <filename>d.delVar('</filename><replaceable>VARNAME</replaceable><filename>')</filename> and
+ <filename>d.setVar('</filename><replaceable>VARNAME</replaceable><filename>', None)</filename>
result in the variable and all of its overrides being
cleared out.
Before the change, only the non-overridden values
@@ -2740,13 +2740,13 @@
<para>
Variable expressions, such as
- <filename>${</filename><replaceable>varname</replaceable><filename>}</filename>
+ <filename>${</filename><replaceable>VARNAME</replaceable><filename>}</filename>
no longer expand automatically within Python functions.
Suppressing expansion was done to allow Python functions to
construct shell scripts or other code for situations in which you
do not want such expressions expanded.
For any existing code that relies on these expansions, you need to
- change the expansions to either expand the value of individual
+ change the expansions to expand the value of individual
variables through <filename>d.getVar()</filename>.
To alternatively expand more complex expressions,
use <filename>d.expand()</filename>.
@@ -2880,7 +2880,7 @@
to allow the default implementation from the
<filename>autotools</filename> class to work such that
<filename>autoreconf</filename> succeeds and produces a working
- configure script), and to remove the
+ configure script, and to remove the
overridden <filename>do_configure</filename> task such that the
default implementation does get used.
</para>
@@ -2910,7 +2910,8 @@
<filename>do_rootfs</filename>, you should make edits so that
those tasks are after the
<link linkend='ref-tasks-image-complete'><filename>do_image_complete</filename></link>
- task rather than before the task so that the your added tasks
+ task rather than after <filename>do_rootfs</filename>
+ so that the your added tasks
run at the correct time.
</para>
@@ -3057,6 +3058,10 @@
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>extensible SDK</ulink>.
For information on these SDKs and how to build and use them, see the
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-intro'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
+ <note>
+ The Yocto Project Eclipse IDE Plug-in is still supported and
+ is not affected by this change.
+ </note>
</para>
</section>
@@ -3128,7 +3133,7 @@
The separate <filename>poky-tiny</filename> distribution
now uses the musl C library instead of a heavily pared
down <filename>glibc</filename>.
- Using <filename>glibc</filename> results in a smaller
+ Using musl results in a smaller
distribution and facilitates much greater maintainability
because musl is designed to have a small footprint.</para>
@@ -3194,6 +3199,21 @@
</para>
</section>
+ <section id='migration-2.1-supporting-gobject-introspection'>
+ <title>Supporting GObject Introspection</title>
+
+ <para>
+ This release supports generation of GLib Introspective
+ Repository (GIR) files through GObject introspection, which is
+ the standard mechanism for accessing GObject-based software from
+ runtime environments.
+ You can enable, disable, and test the generation of this data.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#enabling-gobject-introspection-support'>Enabling GObject Introspection Support</ulink>"
+ section for more information.
+ </para>
+ </section>
+
<section id='migration-2.1-miscellaneous-changes'>
<title>Miscellaneous Changes</title>
@@ -3205,6 +3225,9 @@
If your host distribution does not provide a sufficiently
recent version, you can install the buildtools, which
will provide it.
+ See the
+ "<link linkend='required-git-tar-and-python-versions'>Required Git, tar, and Python Versions</link>"
+ section for more information on the buildtools tarball.
</para></listitem>
<listitem><para>
The buggy and incomplete support for the RPM version 4
@@ -3213,6 +3236,25 @@
remains.
</para></listitem>
<listitem><para>
+ Previously, the following list of packages were removed
+ if package-management was not in
+ <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>,
+ regardless of any dependencies:
+ <literallayout class='monospaced'>
+ update-rc.d
+ base-passwd
+ shadow
+ update-alternatives
+ run-postinsts
+ </literallayout>
+ With the Yocto Project 2.1 release, these packages are only
+ removed if "read-only-rootfs" is in
+ <filename>IMAGE_FEATURES</filename>, since they might
+ still be needed for a read-write image even in the absence
+ of a package manager (e.g. if users need to be added,
+ modified, or removed at runtime).
+ </para></listitem>
+ <listitem><para>
The
<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'><filename>devtool modify</filename></ulink>
command now defaults to extracting the source since that
@@ -3220,7 +3262,7 @@
The "-x" or "--extract" options are now no-ops.
If you wish to provide your own existing source tree, you
will now need to specify either the "-n" or
- "--no-extract" option when running
+ "--no-extract" options when running
<filename>devtool modify</filename>.
</para></listitem>
<listitem><para>
@@ -3228,10 +3270,8 @@
or does not specify whether a keyboard is attached, then
the default is to assume a keyboard is attached rather
than assume no keyboard.
- <note>
- This change primarily affects the Sato UI.
- </note>
- </para></listitem>
+ This change primarily affects the Sato UI.
+ </para></listitem>
<listitem><para>
The <filename>.debug</filename> directory packaging is
now automatic.
@@ -3248,8 +3288,8 @@
This data has been replaced with
<filename>getrusage()</filename> data and corrected IO
statistics.
- You will probably need to update code that reads the
- <filename>buildstats</filename> data.
+ You will probably need to update any custom code that reads
+ the <filename>buildstats</filename> data.
</para></listitem>
<listitem><para>
The
@@ -3272,8 +3312,622 @@
<filename>meta-yocto-bsp</filename> layer.
Most modern x86 boards do not rely on this file and it only
adds kernel error messages during startup.
- If you do still need the file, you can simply add
- <filename>v86d</filename> to your image.
+ If you do still need to support
+ <filename>uvesafb</filename>, you can
+ simply add <filename>v86d</filename> to your image.
+ </para></listitem>
+ <listitem><para>
+ Build sysroot paths are now removed from debug symbol
+ files.
+ Removing these paths means that remote GDB using an
+ unstripped build system sysroot will no longer work
+ (although this was never documented to work).
+ The supported method to accomplish something similar is
+ to set <filename>IMAGE_GEN_DEBUGFS</filename> to "1",
+ which will generate a companion debug image
+ containing unstripped binaries and associated debug
+ sources alongside the image.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+</section>
+
+<section id='moving-to-the-yocto-project-2.2-release'>
+ <title>Moving to the Yocto Project 2.2 Release</title>
+
+ <para>
+ This section provides migration information for moving to the
+ Yocto Project 2.2 Release from the prior release.
+ </para>
+
+ <section id='migration-2.2-minimum-kernel-version'>
+ <title>Minimum Kernel Version</title>
+
+ <para>
+ The minimum kernel version for the target system and for SDK
+ is now 3.2.0, due to the upgrade
+ to <filename>glibc 2.24</filename>.
+ Specifically, for AArch64-based targets the version is
+ 3.14.
+ For Nios II-based targets, the minimum kernel version is 3.19.
+ <note>
+ For x86 and x86_64, you can reset
+ <link linkend='var-OLDEST_KERNEL'><filename>OLDEST_KERNEL</filename></link>
+ to anything down to 2.6.32 if desired.
+ </note>
+ </para>
+ </section>
+
+ <section id='migration-2.2-staging-directories-in-sysroot-simplified'>
+ <title>Staging Directories in Sysroot Has Been Simplified</title>
+
+ <para>
+ The way directories are staged in sysroot has been simplified and
+ introduces the new
+ <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>,
+ <link linkend='var-SYSROOT_DIRS_NATIVE'><filename>SYSROOT_DIRS_NATIVE</filename></link>,
+ and
+ <link linkend='var-SYSROOT_DIRS_BLACKLIST'><filename>SYSROOT_DIRS_BLACKLIST</filename></link>.
+ See the
+ <ulink url='http://lists.openembedded.org/pipermail/openembedded-core/2016-May/121365.html'>v2 patch series on the OE-Core Mailing List</ulink>
+ for additional information.
+ </para>
+ </section>
+
+ <section id='migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled'>
+ <title>Removal of Old Images and Other Files in <filename>tmp/deploy</filename> Now Enabled</title>
+
+ <para>
+ Removal of old images and other files in
+ <filename>tmp/deploy/</filename> is now enabled by default due
+ to a new staging method used for those files.
+ As a result of this change, the
+ <filename>RM_OLD_IMAGE</filename> variable is now redundant.
+ </para>
+ </section>
+
+ <section id='migration-2.2-python-changes'>
+ <title>Python Changes</title>
+
+ <para>
+ The following changes for Python occurred:
+ </para>
+
+ <section id='migration-2.2-bitbake-now-requires-python-3.4'>
+ <title>BitBake Now Requires Python 3.4+</title>
+
+ <para>
+ BitBake requires Python 3.4 or greater.
+ </para>
+ </section>
+
+ <section id='migration-2.2-utf-8-locale-required-on-build-host'>
+ <title>UTF-8 Locale Required on Build Host</title>
+
+ <para>
+ A UTF-8 locale is required on the build host due to Python 3.
+ Since C.UTF-8 is not a standard, the default is en_US.UTF-8.
+ </para>
+ </section>
+
+ <section id='migration-2.2-metadata-now-must-use-python-3-syntax'>
+ <title>Metadata Must Now Use Python 3 Syntax</title>
+
+ <para>
+ The metadata is now required to use Python 3 syntax.
+ For help preparing metadata, see any of the many Python 3 porting
+ guides available.
+ Alternatively, you can reference the conversion commits for Bitbake
+ and you can use OE-Core as a guide for changes.
+ Following are particular areas of interest:
+ <literallayout class='monospaced'>
+ * subprocess command-line pipes needing locale decoding
+ * the syntax for octal values changed
+ * the <filename>iter*()</filename> functions changed name
+ * iterators now return views, not lists
+ * changed names for Python modules
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='migration-2.2-target-python-recipes-switched-to-python-3'>
+ <title>Target Python Recipes Switched to Python 3</title>
+
+ <para>
+ Most target Python recipes have now been switched to Python 3.
+ Unfortunately, systems using RPM as a package manager and
+ providing online package-manager support through SMART still
+ require Python 2.
+ <note>
+ Python 2 and recipes that use it can still be built for the
+ target as with previous versions.
+ </note>
+ </para>
+ </section>
+
+ <section id='migration-2.2-buildtools-tarball-includes-python-3'>
+ <title><filename>buildtools-tarball</filename> Includes Python 3</title>
+
+ <para>
+ <filename>buildtools-tarball</filename> now includes Python 3.
+ </para>
+ </section>
+ </section>
+
+ <section id='migration-2.2-uclibc-replaced-by-musl'>
+ <title>uClibc Replaced by musl</title>
+
+ <para>
+ uClibc has been removed in favor of musl.
+ Musl has matured, is better maintained, and is compatible with a
+ wider range of applications as compared to uClibc.
+ </para>
+ </section>
+
+ <section id='migration-2.2-B-no-longer-default-working-directory-for-tasks'>
+ <title><filename>${B}</filename> No Longer Default Working Directory for Tasks</title>
+
+ <para>
+ <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>
+ is no longer the default working directory for tasks.
+ Consequently, any custom tasks you define now need to either
+ have the
+ <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>dirs</filename></ulink><filename>]</filename> flag set, or the task needs to change into the
+ appropriate working directory manually (e.g using
+ <filename>cd</filename> for a shell task).
+ <note>
+ The preferred method is to use the
+ <filename>[dirs]</filename> flag.
+ </note>
+ </para>
+ </section>
+
+ <section id='migration-2.2-runqemu-ported-to-python'>
+ <title><filename>runqemu</filename> Ported to Python</title>
+
+ <para>
+ <filename>runqemu</filename> has been ported to Python and has
+ changed behavior in some cases.
+ Previous usage patterns continued to be supported.
+ </para>
+
+ <para>
+ The new <filename>runqemu</filename> is a Python script.
+ Machine knowledge is no longer hardcoded into
+ <filename>runqemu</filename>.
+ You can choose to use the <filename>qemuboot</filename>
+ configuration file to define the BSP's own arguments and to make
+ it bootable with <filename>runqemu</filename>.
+ If you use a configuration file, use the following form:
+ <literallayout class='monospaced'>
+ <replaceable>image-name</replaceable>-<replaceable>machine</replaceable>.qemuboot.conf
+ </literallayout>
+ The configuration file enables fine-grained tuning of options
+ passed to QEMU without the <filename>runqemu</filename> script
+ hard-coding any knowledge about different machines.
+ Using a configuration file is particularly convenient when trying
+ to use QEMU with machines other than the
+ <filename>qemu*</filename> machines in OE-Core.
+ The <filename>qemuboot.conf</filename> file is generated by the
+ <filename>qemuboot</filename>
+ class when the root filesystem is being build (i.e.
+ build rootfs).
+ QEMU boot arguments can be set in BSP's configuration file and
+ the <filename>qemuboot</filename> class will save them to
+ <filename>qemuboot.conf</filename>.
+ </para>
+
+
+ <para>
+ If you want to use <filename>runqemu</filename> without a
+ configuration file, use the following command form:
+ <literallayout class='monospaced'>
+ $ runqemu <replaceable>machine</replaceable> <replaceable>rootfs</replaceable> <replaceable>kernel</replaceable> [<replaceable>options</replaceable>]
+ </literallayout>
+ Supported <replaceable>machines</replaceable> are as follows:
+ <literallayout class='monospaced'>
+ qemuarm
+ qemuarm64
+ qemux86
+ qemux86-64
+ qemuppc
+ qemumips
+ qemumips64
+ qemumipsel
+ qemumips64el
+ </literallayout>
+ Consider the following example, which uses the
+ <filename>qemux86-64</filename> machine,
+ provides a root filesystem, provides an image, and uses
+ the <filename>nographic</filename> option:
+ <literallayout class='monospaced'>
+$ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic
+ </literallayout>
+ </para>
+
+ <para>
+ Following is a list of variables that can be set in configuration
+ files such as <filename>bsp.conf</filename> to enable the BSP
+ to be booted by <filename>runqemu</filename>:
+ <note>
+ "QB" means "QEMU Boot".
+ </note>
+ <literallayout class='monospaced'>
+ QB_SYSTEM_NAME: QEMU name (e.g. "qemu-system-i386")
+ QB_OPT_APPEND: Options to append to QEMU (e.g. "-show-cursor")
+ QB_DEFAULT_KERNEL: Default kernel to boot (e.g. "bzImage")
+ QB_DEFAULT_FSTYPE: Default FSTYPE to boot (e.g. "ext4")
+ QB_MEM: Memory (e.g. "-m 512")
+ QB_MACHINE: QEMU machine (e.g. "-machine virt")
+ QB_CPU: QEMU cpu (e.g. "-cpu qemu32")
+ QB_CPU_KVM: Similar to QB_CPU except used for kvm support (e.g. "-cpu kvm64")
+ QB_KERNEL_CMDLINE_APPEND: Options to append to the kernel's -append
+ option (e.g. "console=ttyS0 console=tty")
+ QB_DTB: QEMU dtb name
+ QB_AUDIO_DRV: QEMU audio driver (e.g. "alsa", set it when support audio)
+ QB_AUDIO_OPT: QEMU audio option (e.g. "-soundhw ac97,es1370"), which is used
+ when QB_AUDIO_DRV is set.
+ QB_KERNEL_ROOT: Kernel's root (e.g. /dev/vda)
+ QB_TAP_OPT: Network option for 'tap' mode (e.g.
+ "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0").
+ runqemu will replace "@TAP@" with the one that is used, such as tap0, tap1 ...
+ QB_SLIRP_OPT: Network option for SLIRP mode (e.g. "-netdev user,id=net0 -device virtio-net-device,netdev=net0")
+ QB_ROOTFS_OPT: Used as rootfs (e.g.
+ "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0").
+ runqemu will replace "@ROOTFS@" with the one which is used, such as
+ core-image-minimal-qemuarm64.ext4.
+ QB_SERIAL_OPT: Serial port (e.g. "-serial mon:stdio")
+ QB_TCPSERIAL_OPT: tcp serial port option (e.g.
+ " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
+ runqemu will replace "@PORT@" with the port number which is used.
+ </literallayout>
+ </para>
+
+ <para>
+ To use <filename>runqemu</filename>, set
+ <link linkend='var-IMAGE_CLASSES'><filename>IMAGE_CLASSES</filename></link>
+ as follows and run <filename>runqemu</filename>:
+ <note>
+ For command-line syntax, use
+ <filename>runqemu help</filename>.
+ </note>
+ <literallayout class='monospaced'>
+ IMAGE_CLASSES += "qemuboot"
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='migration-2.2-default-linker-hash-style-changed'>
+ <title>Default Linker Hash Style Changed</title>
+
+ <para>
+ The default linker hash style for <filename>gcc-cross</filename>
+ is now "sysv" in order to catch recipes that are building software
+ without using the OpenEmbedded
+ <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>.
+ This change could result in seeing some "No GNU_HASH in the elf
+ binary" QA issues when building such recipes.
+ You need to fix these recipes so that they use the expected
+ <filename>LDFLAGS</filename>.
+ Depending on how the software is built, the build system used by
+ the software (e.g. a Makefile) might need to be patched.
+ However, sometimes making this fix is as simple as adding the
+ following to the recipe:
+ <literallayout class='monospaced'>
+ TARGET_CC_ARCH += "${LDFLAGS}"
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='migration-2.2-bitbake-changes'>
+ <title>BitBake Changes</title>
+
+ <para>
+ The following changes took place for BitBake:
+ <itemizedlist>
+ <listitem><para>
+ The "goggle" UI and standalone image-writer tool have
+ been removed as they both require GTK+ 2.0 and
+ were not being maintained.
+ </para></listitem>
+ <listitem><para>
+ The Perforce fetcher now supports
+ <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
+ for specifying the source revision to use, be it
+ <filename>${</filename><link linkend='var-AUTOREV'><filename>AUTOREV</filename></link><filename>}</filename>,
+ changelist number, p4date, or label, in preference to
+ separate
+ <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
+ parameters to specify these.
+ This change is more in-line with how the other fetchers
+ work for source control systems.
+ Recipes that fetch from Perforce will need to be updated
+ to use <filename>SRCREV</filename> in place of specifying
+ the source revision within
+ <filename>SRC_URI</filename>.
+ </para></listitem>
+ <listitem><para>
+ Some of BitBake's internal code structures for accessing
+ the recipe cache needed to be changed to support the new
+ multi-configuration functionality.
+ These changes will affect external tools that use BitBake's
+ tinfoil module.
+ For information on these changes, see the changes made to
+ the scripts supplied with OpenEmbedded-Core:
+ <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=189371f8393971d00bca0fceffd67cc07784f6ee'>1</ulink>
+ and
+ <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=4a5aa7ea4d07c2c90a1654b174873abb018acc67'>2</ulink>.
+ </para></listitem>
+ <listitem><para>
+ The task management code has been rewritten to avoid using
+ ID indirection in order to improve performance.
+ This change is unlikely to cause any problems for most
+ users.
+ However, the setscene verification function as pointed to
+ by <filename>BB_SETSCENE_VERIFY_FUNCTION</filename>
+ needed to change signature.
+ Consequently, a new variable named
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SETSCENE_VERIFY_FUNCTION2'><filename>BB_SETSCENE_VERIFY_FUNCTION2</filename></ulink>
+ has been added allowing multiple versions of BitBake
+ to work with suitably written metadata, which includes
+ OpenEmbedded-Core and Poky.
+ Anyone with custom BitBake task scheduler code might also
+ need to update the code to handle the new structure.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-2.2-swabber-has-been-removed'>
+ <title>Swabber has Been Removed</title>
+
+ <para>
+ Swabber, a tool that was intended to detect host contamination in
+ the build process, has been removed, as it has been unmaintained
+ and unused for some time and was never particularly effective.
+ The OpenEmbedded build system has since incorporated a number of
+ mechanisms including enhanced QA checks that mean that there is
+ less of a need for such a tool.
+ </para>
+ </section>
+
+ <section id='migration-2.2-removed-recipes'>
+ <title>Removed Recipes</title>
+
+ <para>
+ The following recipes have been removed:
+ <itemizedlist>
+ <listitem><para>
+ <filename>augeas</filename>:
+ No longer needed and has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>directfb</filename>:
+ Unmaintained and has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>gcc</filename>:
+ Removed 4.9 version.
+ Versions 5.4 and 6.2 are still present.
+ </para></listitem>
+ <listitem><para>
+ <filename>gnome-doc-utils</filename>:
+ No longer needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>gtk-doc-stub</filename>:
+ Replaced by <filename>gtk-doc</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>gtk-engines</filename>:
+ No longer needed and has been moved to
+ <filename>meta-gnome</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>gtk-sato-engine</filename>:
+ Became obsolete.
+ </para></listitem>
+ <listitem><para>
+ <filename>libglade</filename>:
+ No longer needed and has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>libmad</filename>:
+ Unmaintained and functionally replaced by
+ <filename>libmpg123</filename>.
+ <filename>libmad</filename> has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>libowl</filename>:
+ Became obsolete.
+ </para></listitem>
+ <listitem><para>
+ <filename>libxsettings-client</filename>:
+ No longer needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>oh-puzzles</filename>:
+ Functionally replaced by
+ <filename>puzzles</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>oprofileui</filename>:
+ Became obsolete.
+ OProfile has been largely supplanted by perf.
+ </para></listitem>
+ <listitem><para>
+ <filename>packagegroup-core-directfb.bb</filename>:
+ Removed.
+ </para></listitem>
+ <listitem><para>
+ <filename>core-image-directfb.bb</filename>:
+ Removed.
+ </para></listitem>
+ <listitem><para>
+ <filename>pointercal</filename>:
+ No longer needed and has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>python-imaging</filename>:
+ No longer needed and moved to
+ <filename>meta-python</filename>
+ </para></listitem>
+ <listitem><para>
+ <filename>python-pyrex</filename>:
+ No longer needed and moved to
+ <filename>meta-python</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>sato-icon-theme</filename>:
+ Became obsolete.
+ </para></listitem>
+ <listitem><para>
+ <filename>swabber-native</filename>:
+ Swabber has been removed.
+ See the
+ <link linkend='migration-2.2-swabber-has-been-removed'>entry on Swabber</link>.
+ </para></listitem>
+ <listitem><para>
+ <filename>tslib</filename>:
+ No longer needed and has been moved to
+ <filename>meta-oe</filename>.
+ </para></listitem>
+ <listitem><para>
+ <filename>uclibc</filename>:
+ Removed in favor of musl.
+ </para></listitem>
+ <listitem><para>
+ <filename>xtscal</filename>:
+ No longer needed and moved to
+ <filename>meta-oe</filename>
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-2.2-removed-classes'>
+ <title>Removed Classes</title>
+
+ <para>
+ The following classes have been removed:
+ <itemizedlist>
+ <listitem><para>
+ <filename>distutils-native-base</filename>:
+ No longer needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>distutils3-native-base</filename>:
+ No longer needed.
+ </para></listitem>
+ <listitem><para>
+ <filename>sdl</filename>:
+ Only set
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ and
+ <link linkend='var-SECTION'><filename>SECTION</filename></link>,
+ which are better set within the recipe instead.
+ </para></listitem>
+ <listitem><para>
+ <filename>sip</filename>:
+ Mostly unused.
+ </para></listitem>
+ <listitem><para>
+ <filename>swabber</filename>:
+ See the
+ <link linkend='migration-2.2-swabber-has-been-removed'>entry on Swabber</link>.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-2.2-minor-packaging-changes'>
+ <title>Minor Packaging Changes</title>
+
+ <para>
+ The following minor packaging changes have occurred:
+ <itemizedlist>
+ <listitem><para>
+ <filename>grub</filename>:
+ Split <filename>grub-editenv</filename> into its own
+ package.
+ </para></listitem>
+ <listitem><para>
+ <filename>systemd</filename>:
+ Split container and vm related units into a new package,
+ systemd-container.
+ </para></listitem>
+ <listitem><para>
+ <filename>util-linux</filename>:
+ Moved <filename>prlimit</filename> to a separate
+ <filename>util-linux-prlimit</filename> package.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='migration-2.2-miscellaneous-changes'>
+ <title>Miscellaneous Changes</title>
+
+ <para>
+ The following miscellaneous changes have occurred:
+ <itemizedlist>
+ <listitem><para>
+ <filename>package_regex.inc</filename>:
+ Removed because the definitions
+ <filename>package_regex.inc</filename> previously contained
+ have been moved to their respective recipes.
+ </para></listitem>
+ <listitem><para>
+ Both <filename>devtool add</filename> and
+ <filename>recipetool create</filename> now use a fixed
+ <link linkend='var-SRCREV'><filename>SRCREV</filename></link>
+ by default when fetching from a Git repository.
+ You can override this in either case to use
+ <filename>${</filename><link linkend='var-AUTOREV'><filename>AUTOREV</filename></link><filename>}</filename>
+ instead by using the <filename>-a</filename> or
+ <filename>&dash;&dash;autorev</filename> command-line
+ option
+ </para></listitem>
+ <listitem><para>
+ <filename>distcc</filename>:
+ GTK+ UI is now disabled by default.
+ </para></listitem>
+ <listitem><para>
+ <filename>packagegroup-core-tools-testapps</filename>:
+ Removed Piglit.
+ </para></listitem>
+ <listitem><para>
+ <filename>image.bbclass</filename>:
+ Renamed COMPRESS(ION) to CONVERSION.
+ This change means that
+ <filename>COMPRESSIONTYPES</filename>,
+ <filename>COMPRESS_DEPENDS</filename> and
+ <filename>COMPRESS_CMD</filename> are deprecated in favor
+ of <filename>CONVERSIONTYPES</filename>,
+ <filename>CONVERSION_DEPENDS</filename> and
+ <filename>CONVERSION_CMD</filename>.
+ The <filename>COMPRESS*</filename> variable names will
+ still work in the 2.2 release but metadata that does not
+ need to be backwards-compatible should be changed to
+ use the new names as the <filename>COMPRESS*</filename>
+ ones will be removed in a future release.
+ </para></listitem>
+ <listitem><para>
+ <filename>gtk-doc</filename>:
+ A full version of <filename>gtk-doc</filename> is now
+ made available.
+ However, some old software might not be capable of using
+ the current version of <filename>gtk-doc</filename>
+ to build documentation.
+ You need to change recipes that build such software so that
+ they explicitly disable building documentation with
+ <filename>gtk-doc</filename>.
</para></listitem>
</itemizedlist>
</para>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-classes.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-classes.xml
index e919bd7eb..2344a0406 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-classes.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-classes.xml
@@ -161,13 +161,17 @@
cross-compilation.
You can pass additional parameters to
<filename>configure</filename> through the
- <filename><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link></filename> variable.
+ <filename><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link></filename>
+ or
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
+ variables.
</para></listitem>
<listitem><para><link linkend='ref-tasks-compile'><filename>do_compile</filename></link> -
Runs <filename>make</filename> with arguments that specify the
compiler and linker.
You can pass additional arguments through
- the <filename><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link></filename> variable.
+ the <filename><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link></filename>
+ variable.
</para></listitem>
<listitem><para><link linkend='ref-tasks-install'><filename>do_install</filename></link> -
Runs <filename>make install</filename> and passes in
@@ -194,7 +198,14 @@
class or the
<link linkend='ref-classes-package'><filename>package</filename></link>
class.
+ </para>
+
+ <para>
The class also contains some commonly used functions such as
+ <filename>oe_runmake</filename>, which runs
+ <filename>make</filename> with the arguments specified in
+ <link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link>
+ variable as well as the arguments passed directly to
<filename>oe_runmake</filename>.
</para>
</section>
@@ -1092,36 +1103,6 @@
</para>
</section>
-<section id='ref-classes-gummiboot'>
- <title><filename>gummiboot.bbclass</filename></title>
-
- <para>
- The <filename>gummiboot</filename> class provides functions specific
- to the gummiboot bootloader for building bootable images.
- This is an internal class and is not intended to be
- used directly.
- Set the
- <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
- variable to "gummiboot" to use this class.
- </para>
-
- <para>
- For information on more variables used and supported in this class,
- see the
- <link linkend='var-GUMMIBOOT_CFG'><filename>GUMMIBOOT_CFG</filename></link>,
- <link linkend='var-GUMMIBOOT_ENTRIES'><filename>GUMMIBOOT_ENTRIES</filename></link>,
- and
- <link linkend='var-GUMMIBOOT_TIMEOUT'><filename>GUMMIBOOT_TIMEOUT</filename></link>
- variables.
- </para>
-
- <para>
- You can also see the
- <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>
- for more information.
- </para>
-</section>
-
<section id='ref-classes-gzipnative'>
<title><filename>gzipnative.bbclass</filename></title>
@@ -1381,22 +1362,6 @@
</para>
</section>
-<section id='ref-classes-image-swab'>
- <title><filename>image-swab.bbclass</filename></title>
-
- <para>
- The <filename>image-swab</filename> class enables the
- <ulink url='&YOCTO_HOME_URL;/tools-resources/projects/swabber'>Swabber</ulink>
- tool in order to detect and log accesses to the host system during
- the OpenEmbedded build process.
- <note>
- This class is currently unmaintained.
- The <filename>strace</filename> package needs to be installed
- in the build host as a dependency for this tool.
- </note>
- </para>
-</section>
-
<section id='ref-classes-image-vm'>
<title><filename>image-vm.bbclass</filename></title>
@@ -1599,6 +1564,17 @@
<link linkend='var-FILES'><filename>FILES</filename></link>
variable values that contain "//", which is invalid.
</para></listitem>
+ <listitem><para><emphasis><filename>host-user-contaminated:</filename></emphasis>
+ Checks that no package produced by the recipe contains any
+ files outside of <filename>/home</filename> with a user or
+ group ID that matches the user running BitBake.
+ A match usually indicates that the files are being installed
+ with an incorrect UID/GID, since target IDs are independent
+ from host IDs.
+ For additional information, see the section describing the
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>
+ task.
+ </para></listitem>
<listitem><para><emphasis><filename>incompatible-license:</filename></emphasis>
Report when packages are excluded from being created due to
being marked with a license that is in
@@ -1626,6 +1602,25 @@
<filename>do_install</filename> if the files are not
needed in any package.
</para></listitem>
+ <listitem><para><emphasis><filename>invalid-chars:</filename></emphasis>
+ Checks that the recipe metadata variables
+ <link linkend='var-DESCRIPTION'><filename>DESCRIPTION</filename></link>,
+ <link linkend='var-SUMMARY'><filename>SUMMARY</filename></link>,
+ <link linkend='var-LICENSE'><filename>LICENSE</filename></link>,
+ and
+ <link linkend='var-SECTION'><filename>SECTION</filename></link>
+ do not contain non-UTF-8 characters.
+ Some package managers do not support such characters.
+ </para></listitem>
+ <listitem><para><emphasis><filename>invalid-packageconfig:</filename></emphasis>
+ Checks that no undefined features are being added to
+ <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>.
+ For example, any name "foo" for which the following form
+ does not exist:
+ <literallayout class='monospaced'>
+ PACKAGECONFIG[foo] = "..."
+ </literallayout>
+ </para></listitem>
<listitem><para><emphasis><filename>la:</filename></emphasis>
Checks <filename>.la</filename> files for any <filename>TMPDIR</filename>
paths.
@@ -3294,6 +3289,43 @@
</para>
</section>
+<section id='ref-classes-systemd-boot'>
+ <title><filename>systemd-boot.bbclass</filename></title>
+
+ <para>
+ The <filename>systemd-boot</filename> class provides functions specific
+ to the systemd-boot bootloader for building bootable images.
+ This is an internal class and is not intended to be used directly.
+ <note>
+ The <filename>systemd-boot</filename> class is a result from
+ merging the <filename>gummiboot</filename> class used in previous
+ Yocto Project releases with the <filename>systemd</filename>
+ project.
+ </note>
+ Set the
+ <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
+ variable to "systemd-boot" to use this class.
+ Doing so creates a standalone EFI bootloader that is not dependent
+ on systemd.
+ </para>
+
+ <para>
+ For information on more variables used and supported in this class,
+ see the
+ <link linkend='var-SYSTEMD_BOOT_CFG'><filename>SYSTEMD_BOOT_CFG</filename></link>,
+ <link linkend='var-SYSTEMD_BOOT_ENTRIES'><filename>SYSTEMD_BOOT_ENTRIES</filename></link>,
+ and
+ <link linkend='var-SYSTEMD_BOOT_TIMEOUT'><filename>SYSTEMD_BOOT_TIMEOUT</filename></link>
+ variables.
+ </para>
+
+ <para>
+ You can also see the
+ <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>
+ for more information.
+ </para>
+</section>
+
<section id='ref-classes-terminal'>
<title><filename>terminal.bbclass</filename></title>
@@ -3698,7 +3730,9 @@
software that uses the Waf build system.
You can use the
<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
- variable to specify additional configuration options to be passed on
+ or
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
+ variables to specify additional configuration options to be passed on
the Waf command line.
</para>
</section>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-devtool-reference.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-devtool-reference.xml
new file mode 100644
index 000000000..1764f0196
--- /dev/null
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-devtool-reference.xml
@@ -0,0 +1,607 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
+
+<chapter id='ref-devtool-reference'>
+ <title><filename>devtool</filename> Quick Reference</title>
+
+ <para>
+ The <filename>devtool</filename> command-line tool provides a number
+ of features that help you build, test, and package software.
+ This command is available alongside the <filename>bitbake</filename>
+ command.
+ Additionally, the <filename>devtool</filename> command is a key
+ part of the extensible SDK.
+ </para>
+
+ <para>
+ This chapter provides a Quick Reference for the
+ <filename>devtool</filename> command.
+ For more information on how to apply the command when using the
+ extensible SDK, see the
+ "<ulink url='&YOCTO_DOCS_SDK_URL;#sdk-extensible'>Using the Extensible SDK</ulink>"
+ section in the Yocto Project Software Development Kit (SDK) Developer's
+ Guide.
+ </para>
+
+ <section id='devtool-getting-help'>
+ <title>Getting Help</title>
+
+ <para>
+ The <filename>devtool</filename> command line is organized
+ similarly to Git in that it has a number of sub-commands for
+ each function.
+ You can run <filename>devtool --help</filename> to see all
+ the commands:
+ <literallayout class='monospaced'>
+ $ devtool --help
+ usage: devtool [--basepath BASEPATH] [--bbpath BBPATH] [-d] [-q]
+ [--color COLOR] [-h]
+ &lt;subcommand&gt; ...
+
+ OpenEmbedded development tool
+
+ options:
+ --basepath BASEPATH Base directory of SDK / build directory
+ --bbpath BBPATH Explicitly specify the BBPATH, rather than getting it
+ from the metadata
+ -d, --debug Enable debug output
+ -q, --quiet Print only errors
+ --color COLOR Colorize output (where COLOR is auto, always, never)
+ -h, --help show this help message and exit
+
+ subcommands:
+ Beginning work on a recipe:
+ add Add a new recipe
+ modify Modify the source for an existing recipe
+ upgrade Upgrade an existing recipe
+ Getting information:
+ status Show workspace status
+ search Search available recipes
+ Working on a recipe in the workspace:
+ edit-recipe Edit a recipe file in your workspace
+ configure-help Get help on configure script options
+ build Build a recipe
+ update-recipe Apply changes from external source tree to recipe
+ reset Remove a recipe from your workspace
+ finish Finish working on a recipe in your workspace
+ Testing changes on target:
+ deploy-target Deploy recipe output files to live target machine
+ undeploy-target Undeploy recipe output files in live target machine
+ build-image Build image including workspace recipe packages
+ Advanced:
+ create-workspace Set up workspace in an alternative location
+ extract Extract the source for an existing recipe
+ sync Synchronize the source tree for an existing recipe
+ Use devtool &lt;subcommand&gt; --help to get help on a specific command
+ </literallayout>
+ </para>
+
+ <para>
+ As directed in the general help output, you can get more
+ syntax on a specific command by providing the command
+ name and using <filename>--help</filename>:
+ <literallayout class='monospaced'>
+ $ devtool add --help
+ usage: devtool add [-h] [--same-dir | --no-same-dir] [--fetch URI]
+ [--version VERSION] [--no-git] [--autorev] [--binary]
+ [--also-native] [--src-subdir SUBDIR]
+ [recipename] [srctree] [fetchuri]
+
+ Adds a new recipe to the workspace to build a specified source tree. Can
+ optionally fetch a remote URI and unpack it to create the source tree.
+
+ arguments:
+ recipename Name for new recipe to add (just name - no version,
+ path or extension). If not specified, will attempt to
+ auto-detect it.
+ srctree Path to external source tree. If not specified, a
+ subdirectory of
+ /home/scottrif/poky/build/workspace/sources will be
+ used.
+ fetchuri Fetch the specified URI and extract it to create the
+ source tree
+
+ options:
+ -h, --help show this help message and exit
+ --same-dir, -s Build in same directory as source
+ --no-same-dir Force build in a separate build directory
+ --fetch URI, -f URI Fetch the specified URI and extract it to create the
+ source tree (deprecated - pass as positional argument
+ instead)
+ --version VERSION, -V VERSION
+ Version to use within recipe (PV)
+ --no-git, -g If fetching source, do not set up source tree as a git
+ repository
+ --autorev, -a When fetching from a git repository, set SRCREV in the
+ recipe to a floating revision instead of fixed
+ --binary, -b Treat the source tree as something that should be
+ installed verbatim (no compilation, same directory
+ structure). Useful with binary packages e.g. RPMs.
+ --also-native Also add native variant (i.e. support building recipe
+ for the build host as well as the target machine)
+ --src-subdir SUBDIR Specify subdirectory within source tree to use
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-the-workspace-layer-structure'>
+ <title>The Workspace Layer Structure</title>
+
+ <para>
+ <filename>devtool</filename> uses a "Workspace" layer
+ in which to accomplish builds.
+ This layer is not specific to any single
+ <filename>devtool</filename> command but is rather a common
+ working area used across the tool.
+ </para>
+
+ <para>
+ The following figure shows the workspace structure:
+ </para>
+
+ <para>
+ <imagedata fileref="figures/build-workspace-directory.png"
+ width="6in" depth="5in" align="left" scale="70" />
+ </para>
+
+ <para>
+ <literallayout class='monospaced'>
+ attic - A directory created if devtool believes it preserve
+ anything when you run "devtool reset". For example, if you
+ run "devtool add", make changes to the recipe, and then
+ run "devtool reset", devtool takes notice that the file has
+ been changed and moves it into the attic should you still
+ want the recipe.
+
+ README - Provides information on what is in workspace layer and how to
+ manage it.
+
+ .devtool_md5 - A checksum file used by devtool.
+
+ appends - A directory that contains *.bbappend files, which point to
+ external source.
+
+ conf - A configuration directory that contains the layer.conf file.
+
+ recipes - A directory containing recipes. This directory contains a
+ folder for each directory added whose name matches that of the
+ added recipe. devtool places the <replaceable>recipe</replaceable>.bb file
+ within that sub-directory.
+
+ sources - A directory containing a working copy of the source files used
+ when building the recipe. This is the default directory used
+ as the location of the source tree when you do not provide a
+ source tree path. This directory contains a folder for each
+ set of source files matched to a corresponding recipe.
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-adding-a-new-recipe-to-the-workspace'>
+ <title>Adding a New Recipe to the Workspace Layer</title>
+
+ <para>
+ Use the <filename>devtool add</filename> command to add a new recipe
+ to the workspace layer.
+ The recipe you add should not exist -
+ <filename>devtool</filename> creates it for you.
+ The source files the recipe uses should exist in an external
+ area.
+ </para>
+
+ <para>
+ The following example creates and adds a new recipe named
+ <filename>jackson</filename> to a workspace layer the tool creates.
+ The source code built by the recipes resides in
+ <filename>/home/scottrif/sources/jackson</filename>:
+ <literallayout class='monospaced'>
+ $ devtool add jackson /home/scottrif/sources/jackson
+ </literallayout>
+ </para>
+
+ <para>
+ If you add a recipe and the workspace layer does not exist,
+ the command creates the layer and populates it as
+ described in
+ "<link linkend='devtool-the-workspace-layer-structure'>The Workspace Layer Structure</link>"
+ section.
+ </para>
+
+ <para>
+ Running <filename>devtool add</filename> when the
+ workspace layer exists causes the tool to add the recipe,
+ append files, and source files into the existing workspace layer.
+ The <filename>.bbappend</filename> file is created to point
+ to the external source tree.
+ </para>
+ </section>
+
+ <section id='devtool-extracting-the-source-for-an-existing-recipe'>
+ <title>Extracting the Source for an Existing Recipe</title>
+
+ <para>
+ Use the <filename>devtool extract</filename> command to
+ extract the source for an existing recipe.
+ When you use this command, you must supply the root name
+ of the recipe (i.e. no version, paths, or extensions), and
+ you must supply the directory to which you want the source
+ extracted.
+ </para>
+
+ <para>
+ Additional command options let you control the name of a
+ development branch into which you can checkout the source
+ and whether or not to keep a temporary directory, which is
+ useful for debugging.
+ </para>
+ </section>
+
+ <section id='devtool-synchronizing-a-recipes-extracted-source-tree'>
+ <title>Synchronizing a Recipe's Extracted Source Tree</title>
+
+ <para>
+ Use the <filename>devtool sync</filename> command to
+ synchronize a previously extracted source tree for an
+ existing recipe.
+ When you use this command, you must supply the root name
+ of the recipe (i.e. no version, paths, or extensions), and
+ you must supply the directory to which you want the source
+ extracted.
+ </para>
+
+ <para>
+ Additional command options let you control the name of a
+ development branch into which you can checkout the source
+ and whether or not to keep a temporary directory, which is
+ useful for debugging.
+ </para>
+ </section>
+
+ <section id='devtool-modifying-a-recipe'>
+ <title>Modifying an Existing Recipe</title>
+
+ <para>
+ Use the <filename>devtool modify</filename> command to begin
+ modifying the source of an existing recipe.
+ This command is very similar to the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-adding-a-new-recipe-to-the-workspace'><filename>add</filename></ulink>
+ command except that it does not physically create the
+ recipe in the workspace layer because the recipe already
+ exists in an another layer.
+ </para>
+
+ <para>
+ The <filename>devtool modify</filename> command extracts the
+ source for a recipe, sets it up as a Git repository if the
+ source had not already been fetched from Git, checks out a
+ branch for development, and applies any patches from the recipe
+ as commits on top.
+ You can use the following command to checkout the source
+ files:
+ <literallayout class='monospaced'>
+ $ devtool modify <replaceable>recipe</replaceable>
+ </literallayout>
+ Using the above command form, <filename>devtool</filename> uses
+ the existing recipe's
+ <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link>
+ statement to locate the upstream source, extracts the source
+ into the default sources location in the workspace.
+ The default development branch used is "devtool".
+ </para>
+ </section>
+
+ <section id='devtool-edit-an-existing-recipe'>
+ <title>Edit an Existing Recipe</title>
+
+ <para>
+ Use the <filename>devtool edit-recipe</filename> command
+ to run the default editor, which is identified using the
+ <filename>EDITOR</filename> variable, on the specified recipe.
+ </para>
+
+ <para>
+ When you use the <filename>devtool edit-recipe</filename>
+ command, you must supply the root name of the recipe
+ (i.e. no version, paths, or extensions).
+ Also, the recipe file itself must reside in the workspace
+ as a result of the <filename>devtool add</filename> or
+ <filename>devtool upgrade</filename> commands.
+ However, you can override that requirement by using the
+ "-a" or "--any-recipe" option.
+ Using either of these options allows you to edit any recipe
+ regardless of its location.
+ </para>
+ </section>
+
+ <section id='devtool-updating-a-recipe'>
+ <title>Updating a Recipe</title>
+
+ <para>
+ Use the <filename>devtool update-recipe</filename> command to
+ update your recipe with patches that reflect changes you make
+ to the source files.
+ For example, if you know you are going to work on some
+ code, you could first use the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-modifying-a-recipe'><filename>devtool modify</filename></ulink>
+ command to extract the code and set up the workspace.
+ After which, you could modify, compile, and test the code.
+ </para>
+
+ <para>
+ When you are satisfied with the results and you have committed
+ your changes to the Git repository, you can then
+ run the <filename>devtool update-recipe</filename> to create the
+ patches and update the recipe:
+ <literallayout class='monospaced'>
+ $ devtool update-recipe <replaceable>recipe</replaceable>
+ </literallayout>
+ If you run the <filename>devtool update-recipe</filename>
+ without committing your changes, the command ignores the
+ changes.
+ </para>
+
+ <para>
+ Often, you might want to apply customizations made to your
+ software in your own layer rather than apply them to the
+ original recipe.
+ If so, you can use the
+ <filename>-a</filename> or <filename>--append</filename>
+ option with the <filename>devtool update-recipe</filename>
+ command.
+ These options allow you to specify the layer into which to
+ write an append file:
+ <literallayout class='monospaced'>
+ $ devtool update-recipe <replaceable>recipe</replaceable> -a <replaceable>base-layer-directory</replaceable>
+ </literallayout>
+ The <filename>*.bbappend</filename> file is created at the
+ appropriate path within the specified layer directory, which
+ may or may not be in your <filename>bblayers.conf</filename>
+ file.
+ If an append file already exists, the command updates it
+ appropriately.
+ </para>
+ </section>
+
+ <section id='devtool-upgrading-a-recipe'>
+ <title>Upgrading a Recipe</title>
+
+ <para>
+ Use the <filename>devtool upgrade</filename> command
+ to upgrade an existing recipe to a new upstream version.
+ The command puts the upgraded recipe file into the
+ workspace along with any associated files, and extracts
+ the source tree to a specified location should patches
+ need rebased or added to as a result of the upgrade.
+ </para>
+
+ <para>
+ When you use the <filename>devtool upgrade</filename> command,
+ you must supply the root name of the recipe (i.e. no version,
+ paths, or extensions), and you must supply the directory
+ to which you want the source extracted.
+ Additional command options let you control things such as
+ the version number to which you want to upgrade (i.e. the
+ <link linkend='var-PV'><filename>PV</filename></link>),
+ the source revision to which you want to upgrade (i.e. the
+ <link linkend='var-SRCREV'><filename>SRCREV</filename></link>,
+ whether or not to apply patches, and so forth.
+ </para>
+ </section>
+
+ <section id='devtool-resetting-a-recipe'>
+ <title>Resetting a Recipe</title>
+
+ <para>
+ Use the <filename>devtool reset</filename> command to remove a
+ recipe and its configuration (e.g. the corresponding
+ <filename>.bbappend</filename> file) from the workspace layer.
+ Realize that this command deletes the recipe and the
+ append file.
+ The command does not physically move them for you.
+ Consequently, you must be sure to physically relocate your
+ updated recipe and the append file outside of the workspace
+ layer before running the <filename>devtool reset</filename>
+ command.
+ </para>
+
+ <para>
+ If the <filename>devtool reset</filename> command detects that
+ the recipe or the append files have been modified, the
+ command preserves the modified files in a separate "attic"
+ subdirectory under the workspace layer.
+ </para>
+
+ <para>
+ Here is an example that resets the workspace directory that
+ contains the <filename>mtr</filename> recipe:
+ <literallayout class='monospaced'>
+ $ devtool reset mtr
+ NOTE: Cleaning sysroot for recipe mtr...
+ NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/mtr as-is; if you no
+ longer need it then please delete it manually
+ $
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-building-your-recipe'>
+ <title>Building Your Recipe</title>
+
+ <para>
+ Use the <filename>devtool build</filename> command to cause the
+ OpenEmbedded build system to build your recipe.
+ The <filename>devtool build</filename> command is equivalent to
+ <filename>bitbake -c populate_sysroot</filename>.
+ </para>
+
+ <para>
+ When you use the <filename>devtool build</filename> command,
+ you must supply the root name of the recipe (i.e. no version,
+ paths, or extensions).
+ You can use either the "-s" or the "--disable-parallel-make"
+ option to disable parallel makes during the build.
+ Here is an example:
+ <literallayout class='monospaced'>
+ $ devtool build <replaceable>recipe</replaceable>
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-building-your-image'>
+ <title>Building Your Image</title>
+
+ <para>
+ Use the <filename>devtool build-image</filename> command
+ to build an image, extending it to include packages from
+ recipes in the workspace.
+ Using this command is useful when you want an image that
+ ready for immediate deployment onto a device for testing.
+ For proper integration into a final image, you need to
+ edit your custom image recipe appropriately.
+ </para>
+
+ <para>
+ When you use the <filename>devtool build-image</filename>
+ command, you must supply the name of the image.
+ This command has no command line options:
+ <literallayout class='monospaced'>
+ $ devtool build-image <replaceable>image</replaceable>
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-deploying-your-software-on-the-target-machine'>
+ <title>Deploying Your Software on the Target Machine</title>
+
+ <para>
+ Use the <filename>devtool deploy-target</filename> command to
+ deploy the recipe's build output to the live target machine:
+ <literallayout class='monospaced'>
+ $ devtool deploy-target <replaceable>recipe</replaceable>&nbsp;<replaceable>target</replaceable>
+ </literallayout>
+ The <replaceable>target</replaceable> is the address of the
+ target machine, which must be running an SSH server (i.e.
+ <filename>user@hostname[:destdir]</filename>).
+ </para>
+
+ <para>
+ This command deploys all files installed during the
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>
+ task.
+ Furthermore, you do not need to have package management enabled
+ within the target machine.
+ If you do, the package manager is bypassed.
+ <note><title>Notes</title>
+ <para>
+ The <filename>deploy-target</filename>
+ functionality is for development only.
+ You should never use it to update an image that will be
+ used in production.
+ </para>
+ </note>
+ </para>
+ </section>
+
+ <section id='devtool-removing-your-software-from-the-target-machine'>
+ <title>Removing Your Software from the Target Machine</title>
+
+ <para>
+ Use the <filename>devtool undeploy-target</filename> command to
+ remove deployed build output from the target machine.
+ For the <filename>devtool undeploy-target</filename> command to
+ work, you must have previously used the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-deploying-your-software-on-the-target-machine'><filename>devtool deploy-target</filename></ulink>
+ command.
+ <literallayout class='monospaced'>
+ $ devtool undeploy-target <replaceable>recipe</replaceable>&nbsp;<replaceable>target</replaceable>
+ </literallayout>
+ The <replaceable>target</replaceable> is the address of the
+ target machine, which must be running an SSH server (i.e.
+ <filename>user@hostname</filename>).
+ </para>
+ </section>
+
+ <section id='devtool-creating-the-workspace'>
+ <title>Creating the Workspace Layer in an Alternative Location</title>
+
+ <para>
+ Use the <filename>devtool create-workspace</filename> command to
+ create a new workspace layer in your
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
+ When you create a new workspace layer, it is populated with the
+ <filename>README</filename> file and the
+ <filename>conf</filename> directory only.
+ </para>
+
+ <para>
+ The following example creates a new workspace layer in your
+ current working and by default names the workspace layer
+ "workspace":
+ <literallayout class='monospaced'>
+ $ devtool create-workspace
+ </literallayout>
+ </para>
+
+ <para>
+ You can create a workspace layer anywhere by supplying
+ a pathname with the command.
+ The following command creates a new workspace layer named
+ "new-workspace":
+ <literallayout class='monospaced'>
+ $ devtool create-workspace /home/scottrif/new-workspace
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-get-the-status-of-the-recipes-in-your-workspace'>
+ <title>Get the Status of the Recipes in Your Workspace</title>
+
+ <para>
+ Use the <filename>devtool status</filename> command to
+ list the recipes currently in your workspace.
+ Information includes the paths to their respective
+ external source trees.
+ </para>
+
+ <para>
+ The <filename>devtool status</filename> command has no
+ command-line options:
+ <literallayout class='monospaced'>
+ $ devtool status
+ </literallayout>
+ Following is sample output after using
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-adding-a-new-recipe-to-the-workspace'><filename>devtool add</filename></ulink>
+ to create and add the <filename>mtr_0.86.bb</filename> recipe
+ to the <filename>workspace</filename> directory:
+ <literallayout class='monospaced'>
+ $ devtool status
+ mtr: /home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)
+ $
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='devtool-search-for-available-target-recipes'>
+ <title>Search for Available Target Recipes</title>
+
+ <para>
+ Use the <filename>devtool search</filename> command to
+ search for available target recipes.
+ The command matches the recipe name, package name,
+ description, and installed files.
+ The command displays the recipe name as a result of a
+ match.
+ </para>
+
+ <para>
+ When you use the <filename>devtool search</filename> command,
+ you must supply a <replaceable>keyword</replaceable>.
+ The command uses the <replaceable>keyword</replaceable> when
+ searching for a match.
+ </para>
+ </section>
+</chapter>
+<!--
+vim: expandtab tw=80 ts=4
+-->
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-features.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-features.xml
index fd7693500..cd1bcb024 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-features.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-features.xml
@@ -144,6 +144,27 @@
</para></listitem>
<listitem><para><emphasis>bluetooth:</emphasis> Include
bluetooth support (integrated BT only).</para></listitem>
+ <listitem><para><emphasis>bluez5:</emphasis> Include
+ BlueZ Version 5, which provides core Bluetooth layers and
+ protocols support.
+ <note>
+ The default value for the
+ <link linkend='var-DISTRO_FEATURES'><filename>DISTRO FEATURES</filename></link>
+ variable includes "bluetooth", which causes bluez5
+ to be backfilled in for bluetooth support.
+ If you do not want bluez5 backfilled and would rather
+ use bluez4, you need to use the
+ <link linkend='var-DISTRO_FEATURES_BACKFILL_CONSIDERED'><filename>DISTRO_FEATURES_BACKFILL_CONSIDERED</filename></link>
+ variable as follows:
+ <literallayout class='monospaced'>
+ DISTRO_FEATURES_BACKFILL_CONSIDERED = "bluez5"
+ </literallayout>
+ Setting this variable tells the OpenEmbedded build
+ system that you have considered but ruled
+ out using the bluez5 feature and that bluez4 will be
+ used.
+ </note>
+ </para></listitem>
<listitem><para><emphasis>cramfs:</emphasis> Include CramFS
support.</para></listitem>
<listitem><para><emphasis>directfb:</emphasis>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-manual.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-manual.xml
index 6834d5f0a..09f34fb52 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-manual.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-manual.xml
@@ -102,6 +102,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
@@ -140,6 +145,8 @@
<xi:include href="ref-tasks.xml"/>
+ <xi:include href="ref-devtool-reference.xml"/>
+
<xi:include href="ref-qa-checks.xml"/>
<xi:include href="ref-images.xml"/>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-qa-checks.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-qa-checks.xml
index 4fcf1db61..86456bd42 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-qa-checks.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-qa-checks.xml
@@ -918,7 +918,8 @@ can be found then it should be implemented. I can't find one at the moment.
and the upstream change log or release notes.
Once you have worked out what the appropriate
change is, you can update
- <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
+ <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>,
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>,
or the individual
<link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
option values accordingly.
@@ -1107,7 +1108,7 @@ can be found then it should be implemented. I can't find one at the moment.
<listitem>
<para id='qa-issue-installed-vs-shipped'>
<code>
- &lt;recipename&gt;: Files/directories were installed but not shipped [installed-vs-shipped]
+ &lt;recipename&gt;: Files/directories were installed but not shipped in any package [installed-vs-shipped]
</code>
</para>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-structure.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-structure.xml
index e51ceb1bf..541a47e55 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-structure.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-structure.xml
@@ -660,9 +660,21 @@
<title><filename>build/tmp/cache/</filename></title>
<para>
- When BitBake parses the metadata, it creates a cache file of the result that can
- be used when subsequently running commands.
- BitBake stores these results here on a per-machine basis.
+ When BitBake parses the metadata (recipes and configuration files),
+ it caches the results in <filename>build/tmp/cache/</filename>
+ to speed up future builds.
+ The results are stored on a per-machine basis.
+ </para>
+
+ <para>
+ During subsequent builds, BitBake checks each recipe (together
+ with, for example, any files included or appended to it) to see
+ if they have been modified.
+ Changes can be detected, for example, through file modification
+ time (mtime) changes and hashing of file contents.
+ If no changes to the file are detected, then the parsed result
+ stored in the cache is reused.
+ If the file has changed, it is reparsed.
</para>
</section>
@@ -801,8 +813,9 @@
<title><filename>build/tmp/stamps/</filename></title>
<para>
- This directory holds information that BitBake uses for accounting purposes
- to track what tasks have run and when they have run.
+ This directory holds information that BitBake uses for
+ accounting purposes to track what tasks have run and when they
+ have run.
The directory is sub-divided by architecture, package name, and
version.
Following is an example:
@@ -812,6 +825,13 @@
Although the files in the directory are empty of data,
BitBake uses the filenames and timestamps for tracking purposes.
</para>
+
+ <para>
+ For information on how BitBake uses stamp files to determine if
+ a task should be rerun, see the
+ "<link linkend='stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</link>"
+ section.
+ </para>
</section>
<section id='structure-build-tmp-log'>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-tasks.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-tasks.xml
index c46debb55..e9859c1fa 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-tasks.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-tasks.xml
@@ -19,6 +19,10 @@
<para>
The following sections describe normal tasks associated with building
a recipe.
+ For more information on tasks and dependencies, see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
+ "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
+ sections in the BitBake User Manual.
</para>
<section id='ref-tasks-build'>
@@ -31,43 +35,23 @@
</para>
</section>
- <section id='ref-tasks-checkpkg'>
- <title><filename>do_checkpkg</filename></title>
-
- <para>
- Provides information about the recipe including its upstream
- version and status.
- The upstream version and status reveals whether or not a version
- of the recipe exists upstream and a status of not updated, updated,
- or unknown.
- </para>
+ <section id='ref-tasks-compile'>
+ <title><filename>do_compile</filename></title>
<para>
- The <filename>checkpkg</filename> task is included as part of the
- <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
- class.
+ Compiles the source code.
+ This task runs with the current working directory set
+ to
+ <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>.
</para>
<para>
- To build the <filename>checkpkg</filename> task, use the
- <filename>bitbake</filename> command with the "-c" option and
- task name:
- <literallayout class='monospaced'>
- $ bitbake core-image-minimal -c checkpkg
- </literallayout>
- By default, the results are stored in
- <link linkend='var-LOG_DIR'><filename>$LOG_DIR</filename></link>
- (e.g. <filename>$BUILD_DIR/tmp/log</filename>).
- </para>
- </section>
-
- <section id='ref-tasks-compile'>
- <title><filename>do_compile</filename></title>
-
- <para>
- Compiles the source in the compilation directory, which is pointed
- to by the
- <link linkend='var-B'><filename>B</filename></link> variable.
+ The default behavior of this task is to run the
+ <filename>oe_runmake</filename> function if a makefile
+ (<filename>Makefile</filename>, <filename>makefile</filename>,
+ or <filename>GNUmakefile</filename>) is found.
+ If no such file is found, the <filename>do_compile</filename>
+ task does nothing.
</para>
</section>
@@ -86,6 +70,20 @@
<para>
Configures the source by enabling and disabling any build-time and
configuration options for the software being built.
+ The task runs with the current working directory set to
+ <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>.
+ </para>
+
+ <para>
+ The default behavior of this task is to run
+ <filename>oe_runmake clean</filename> if a makefile
+ (<filename>Makefile</filename>, <filename>makefile</filename>,
+ or <filename>GNUmakefile</filename>) is found and
+ <link linkend='var-CLEANBROKEN'><filename>CLEANBROKEN</filename></link>
+ is not set to "1".
+ If no such file is found or the <filename>CLEANBROKEN</filename>
+ variable is set to "1", the <filename>do_configure</filename>
+ task does nothing.
</para>
</section>
@@ -102,18 +100,62 @@
<title><filename>do_deploy</filename></title>
<para>
- Writes output files that are to be deployed to the deploy
- directory, which is defined by the
- <link linkend='var-DEPLOYDIR'><filename>DEPLOYDIR</filename></link>
- variable.
+ Writes output files that are to be deployed to
+ <filename>${</filename><link linkend='var-DEPLOY_DIR_IMAGE'><filename>DEPLOY_DIR_IMAGE</filename></link><filename>}</filename>.
+ The task runs with the current working directory set to
+ <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>.
</para>
<para>
- The <filename>do_deploy</filename> task is a
- shared state (sstate) task, which means that the task can
- be accelerated through sstate use.
- Realize also that if the task is re-executed, any previous output
- is removed (i.e. "cleaned").
+ Recipes implementing this task should inherit the
+ <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
+ class and should write the output to
+ <filename>${</filename><link linkend='var-DEPLOYDIR'><filename>DEPLOYDIR</filename></link><filename>}</filename>,
+ which is not to be confused with
+ <filename>${</filename><link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link><filename>}</filename>.
+ The <filename>deploy</filename> class sets up
+ <filename>do_deploy</filename> as a shared state (sstate) task that
+ can be accelerated through sstate use.
+ The sstate mechanism takes care of copying the output from
+ <filename>${DEPLOYDIR}</filename> to
+ <filename>${DEPLOY_DIR_IMAGE}</filename>.
+ <note>
+ <title>Caution</title>
+ Do not write the output directly to
+ <filename>${DEPLOY_DIR_IMAGE}</filename>, as this causes
+ the sstate mechanism to malfunction.
+ </note>
+ </para>
+
+ <para>
+ The <filename>do_deploy</filename> task is not added as a task
+ by default and consequently needs to be added manually.
+ If you want the task to run after
+ <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
+ you can add it by doing the following:
+ <literallayout class='monospaced'>
+ addtask deploy after do_compile
+ </literallayout>
+ Adding <filename>do_deploy</filename> after other tasks works the
+ same way.
+ <note>
+ You do not need to add <filename>before do_build</filename>
+ to the <filename>addtask</filename> command (though it is
+ harmless), because the
+ <link linkend='ref-classes-base'><filename>base</filename></link>
+ class contains the following:
+ <literallayout class='monospaced'>
+ do_build[recrdeptask] += "do_deploy"
+ </literallayout>
+ See the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
+ section in the BitBake User Manual for more information.
+ </note>
+ </para>
+
+ <para>
+ If the <filename>do_deploy</filename> task re-executes, any
+ previous output is removed (i.e. "cleaned").
</para>
</section>
@@ -213,11 +255,59 @@
<title><filename>do_install</filename></title>
<para>
- Copies files from the compilation directory, which is defined by
- the
- <link linkend='var-B'><filename>B</filename></link> variable,
- to a holding area defined by the
- <link linkend='var-D'><filename>D</filename></link> variable.
+ Copies files that are to be packaged into the holding area
+ <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>.
+ This task runs with the current working directory set to
+ <filename>${</filename><link linkend='var-B'><filename>B</filename></link><filename>}</filename>,
+ which is the compilation directory.
+ The <filename>do_install</filename> task, as well as other tasks
+ that either directly or indirectly depend on the installed files
+ (e.g.
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>,
+ <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>,
+ and
+ <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>),
+ run under
+ <link linkend='fakeroot-and-pseudo'>fakeroot</link>.
+ <note>
+ <title>Caution</title>
+
+ <para>
+ When installing files, be careful not to set the owner and
+ group IDs of the installed files to unintended values.
+ Some methods of copying files, notably when using the
+ recursive <filename>cp</filename> command, can preserve the
+ UID and/or GID of the original file, which is usually not
+ what you want.
+ The
+ <link linkend='ref-classes-insane'><filename>host-user-contaminated</filename></link>
+ QA check checks for files that probably have the wrong
+ ownership.
+ </para>
+
+ <para>
+ Safe methods for installing files include the following:
+ <itemizedlist>
+ <listitem><para>
+ The <filename>install</filename> utility.
+ This utility is the preferred method.
+ </para></listitem>
+ <listitem><para>
+ The <filename>cp</filename> command with the
+ "--no-preserve=ownership" option.
+ </para></listitem>
+ <listitem><para>
+ The <filename>tar</filename> command with the
+ "--no-same-owner" option.
+ See the <filename>bin_package.bbclass</filename>
+ file in the <filename>meta/classes</filename>
+ directory of the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
+ for an example.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </note>
</para>
</section>
@@ -234,8 +324,26 @@
<title><filename>do_package</filename></title>
<para>
- Analyzes the content of the holding area and splits it into subsets
- based on available packages and files.
+ Analyzes the content of the holding area
+ <filename>${</filename><link linkend='var-D'><filename>D</filename></link><filename>}</filename>
+ and splits the content into subsets based on available packages
+ and files.
+ This task makes use of the
+ <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
+ and
+ <link linkend='var-FILES'><filename>FILES</filename></link>
+ variables.
+ </para>
+
+ <para>
+ The <filename>do_package</filename> task, in conjunction with the
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
+ task, also saves some important package metadata.
+ For additional information, see the
+ <link linkend='var-PKGDESTWORK'><filename>PKGDESTWORK</filename></link>
+ variable and the
+ "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
+ section.
</para>
</section>
@@ -309,8 +417,11 @@
<title><filename>do_packagedata</filename></title>
<para>
- Creates package metadata used by the build system to generate the
- final packages.
+ Saves package metadata generated by the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task in
+ <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
+ to make it available globally.
</para>
</section>
@@ -349,16 +460,25 @@
<title><filename>do_populate_sysroot</filename></title>
<para>
- Copies a subset of the files installed by the
+ Stages (copies) a subset of the files installed by the
<link linkend='ref-tasks-install'><filename>do_install</filename></link>
- task into the sysroot to make them available to other recipes.
- Files that would typically not be needed by other recipes at build
- time are skipped.
- Skipped files include files installed into
- <filename>/etc.</filename>
- For information on what files are copied, see the
- <link linkend='ref-classes-staging'><filename>staging</filename></link>
- class.
+ task into the appropriate sysroot.
+ For information on how to access these files from other recipes,
+ see the
+ <link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR*</filename></link>
+ variables.
+ Directories that would typically not be needed by other recipes at
+ build time (e.g. <filename>/etc</filename>) are not copied by
+ default.
+ </para>
+
+ <para>
+ For information on what directories are copied by default, see the
+ <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS*</filename></link>
+ variables.
+ You can change these variables inside your recipe if you need
+ to make additional (or fewer) directories available to other
+ recipes at build time.
</para>
<para>
@@ -417,6 +537,36 @@
<filename>bitbake -c</filename> command-line option):
</para>
+ <section id='ref-tasks-checkpkg'>
+ <title><filename>do_checkpkg</filename></title>
+
+ <para>
+ Provides information about the recipe including its upstream
+ version and status.
+ The upstream version and status reveals whether or not a version
+ of the recipe exists upstream and a status of not updated, updated,
+ or unknown.
+ </para>
+
+ <para>
+ The <filename>checkpkg</filename> task is included as part of the
+ <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
+ class.
+ </para>
+
+ <para>
+ To build the <filename>checkpkg</filename> task, use the
+ <filename>bitbake</filename> command with the "-c" option and
+ task name:
+ <literallayout class='monospaced'>
+ $ bitbake core-image-minimal -c checkpkg
+ </literallayout>
+ By default, the results are stored in
+ <link linkend='var-LOG_DIR'><filename>$LOG_DIR</filename></link>
+ (e.g. <filename>$BUILD_DIR/tmp/log</filename>).
+ </para>
+ </section>
+
<section id='ref-tasks-checkuri'>
<title><filename>do_checkuri</filename></title>
@@ -541,6 +691,22 @@
</para>
</section>
+ <section id='ref-tasks-devpyshell'>
+ <title><filename>do_devpyshell</filename></title>
+
+ <para>
+ Starts a shell in which an interactive Python interpreter allows
+ you to interact with the BitBake build environment.
+ From within this shell, you can directly examine and set
+ bits from the data store and execute functions as if within
+ the BitBake environment.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-appdev-devpyshell'>Using a Development Python Shell</ulink>"
+ section in the Yocto Project Development Manual for more
+ information about using <filename>devpyshell</filename>.
+ </para>
+ </section>
+
<section id='ref-tasks-devshell'>
<title><filename>do_devshell</filename></title>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-variables.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-variables.xml
index d55bccdc6..ce331d85b 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-variables.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-variables.xml
@@ -536,7 +536,7 @@
By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
directory, which is defined as:
<literallayout class='monospaced'>
- S = "${WORKDIR}/${BP}/"
+ S = "${WORKDIR}/${BP}"
</literallayout>
</para>
@@ -995,6 +995,29 @@
BBCLASSEXTEND =+ "native nativesdk"
BBCLASSEXTEND =+ "multilib:<replaceable>multilib_name</replaceable>"
</literallayout>
+ <note>
+ <para>
+ Internally, the <filename>BBCLASSEXTEND</filename>
+ mechanism generates recipe variants by rewriting
+ variable values and applying overrides such as
+ <filename>_class-native</filename>.
+ For example, to generate a native version of a recipe,
+ a
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ on "foo" is rewritten to a <filename>DEPENDS</filename>
+ on "foo-native".
+ </para>
+
+ <para>
+ Even when using <filename>BBCLASSEXTEND</filename>, the
+ recipe is only parsed once.
+ Parsing once adds some limitations.
+ For example, it is not possible to
+ include a different file depending on the variant,
+ since <filename>include</filename> statements are
+ processed when the recipe is parsed.
+ </para>
+ </note>
</para>
</glossdef>
</glossentry>
@@ -1202,6 +1225,42 @@
</glossdef>
</glossentry>
+ <glossentry id='var-BBMULTICONFIG'><glossterm>BBMULTICONFIG</glossterm>
+ <info>
+ BBMULTICONFIG[doc] = "Specifies each separate configuration when you are building targets with multiple configurations."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Specifies each separate configuration when you are
+ building targets with multiple configurations.
+ Use this variable in your
+ <filename>conf/local.conf</filename> configuration file.
+ Specify a <replaceable>multiconfigname</replaceable> for
+ each configuration file you are using.
+ For example, the following line specifies three
+ configuration files:
+ <literallayout class='monospaced'>
+ BBMULTIFONFIG = "configA configB configC"
+ </literallayout>
+ Each configuration file you use must reside in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory's</ulink>
+ <filename>conf/multiconfig</filename> directory
+ (e.g.
+ <replaceable>build_directory</replaceable><filename>/conf/multiconfig/configA.conf</filename>).
+ </para>
+
+ <para>
+ For information on how to use
+ <filename>BBMULTICONFIG</filename> in an environment that
+ supports building targets with multiple configurations,
+ see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#platdev-building-targets-with-multiple-configurations'>Building Targets with Multiple Configurations</ulink>"
+ section in the Yocto Project Development Manual.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
<info>
BBPATH[doc] = "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
@@ -1336,28 +1395,25 @@
<glossentry id='var-BPN'><glossterm>BPN</glossterm>
<info>
- BPN[doc] = "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes."
+ BPN[doc] = "This variable is a version of the PN variable but removes common suffixes and prefixes."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The bare name of the recipe.
This variable is a version of the
<link linkend='var-PN'><filename>PN</filename></link>
- variable but removes common suffixes such as
- <filename>-native</filename> and
- <filename>-cross</filename> as well
- as removes common prefixes such as multilib's
+ variable with common prefixes and suffixes
+ removed, such as <filename>nativesdk-</filename>,
+ <filename>-cross</filename>,
+ <filename>-native</filename>, and multilib's
<filename>lib64-</filename> and
<filename>lib32-</filename>.
- The exact list of suffixes removed is specified by the
- <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
- variable.
- The exact list of prefixes removed is specified by the
+ The exact lists of prefixes and suffixes removed are
+ specified by the
<link linkend='var-MLPREFIX'><filename>MLPREFIX</filename></link>
- variable.
- Prefixes are removed for <filename>multilib</filename>
- and <filename>nativesdk-</filename> cases.
+ and
+ <link linkend='var-SPECIAL_PKGSUFFIX'><filename>SPECIAL_PKGSUFFIX</filename></link>
+ variables, respectively.
</para>
</glossdef>
</glossentry>
@@ -1972,22 +2028,36 @@
An internal variable specifying the special class override
that should currently apply (e.g. "class-target",
"class-native", and so forth).
- The classes that use this variable set it to
- appropriate values.
+ The classes that use this variable (e.g.
+ <link linkend='ref-classes-native'><filename>native</filename></link>,
+ <link linkend='ref-classes-nativesdk'><filename>nativesdk</filename></link>,
+ and so forth) set the variable to appropriate values.
+ <note>
+ <filename>CLASSOVERRIDE</filename> gets its default
+ "class-target" value from the
+ <filename>bitbake.conf</filename> file.
+ </note>
</para>
<para>
- You do not normally directly interact with this variable.
- The value for the <filename>CLASSOVERRIDE</filename>
- variable goes into
- <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
- and then can be used as an override.
- Here is an example where "python-native" is added to
- <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
- only when building for the <filename>-native</filename> case:
+ As an example, the following override allows you to install
+ extra files, but only when building for the target:
+ <literallayout class='monospaced'>
+ do_install_append_class-target() {
+ install my-extra-file ${D}${sysconfdir}
+ }
+ </literallayout>
+ Here is an example where <filename>FOO</filename>
+ is set to "native" when building for the build host, and
+ to "other" when not building for the build host:
<literallayout class='monospaced'>
- DEPENDS_append_class-native = " python-native"
+ FOO_class-native = "native"
+ FOO = "other"
</literallayout>
+ The underlying mechanism behind
+ <filename>CLASSOVERRIDE</filename> is simply that it is
+ included in the default value of
+ <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
</para>
</glossdef>
</glossentry>
@@ -2574,8 +2644,13 @@
task.
This location defaults to:
<literallayout class='monospaced'>
- ${WORKDIR}/image
+ ${<link linkend='var-WORKDIR'>WORKDIR</link>}/image
</literallayout>
+ <note><title>Caution</title>
+ Tasks that read from or write to this directory should
+ run under
+ <link linkend='fakeroot-and-pseudo'>fakeroot</link>.
+ </note>
</para>
</glossdef>
</glossentry>
@@ -2748,34 +2823,117 @@
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Lists a recipe's build-time dependencies
- (i.e. other recipe files).
- The system ensures that all the dependencies listed
- have been built and have their contents in the appropriate
- sysroots before the recipe's configure task is executed.
+ Lists a recipe's build-time dependencies.
+ These are dependencies on other recipes whose
+ contents (e.g. headers and shared libraries) are needed
+ by the recipe at build time.
</para>
<para>
- Consider this simple example for two recipes named "a" and
- "b" that produce similarly named packages.
- In this example, the <filename>DEPENDS</filename>
- statement appears in the "a" recipe:
+ As an example, consider a recipe <filename>foo</filename>
+ that contains the following assignment:
<literallayout class='monospaced'>
- DEPENDS = "b"
+ DEPENDS = "bar"
</literallayout>
- Here, the dependency is such that the
+ The practical effect of the previous assignment is that
+ all files installed by bar will be available in the
+ appropriate staging sysroot, given by the
+ <link linkend='var-STAGING_DIR'><filename>STAGING_DIR*</filename></link>
+ variables, by the time the
<link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
- task for recipe "a" depends on the
+ task for <filename>foo</filename> runs.
+ This mechanism is implemented by having
+ <filename>do_configure</filename> depend on the
<link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
- task of recipe "b".
- This means anything that recipe "b" puts into sysroot
- is available when recipe "a" is configuring itself.
+ task of each recipe listed in <filename>DEPENDS</filename>,
+ through a
+ <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
+ declaration in the
+ <link linkend='ref-classes-base'><filename>base</filename></link>
+ class.
+ <note>
+ It seldom is necessary to reference, for example,
+ <filename>STAGING_DIR_HOST</filename> explicitly.
+ The standard classes and build-related variables are
+ configured to automatically use the appropriate staging
+ sysroots.
+ </note>
+ As another example, <filename>DEPENDS</filename> can also
+ be used to add utilities that run on the build machine
+ during the build.
+ For example, a recipe that makes use of a code generator
+ built by the recipe <filename>codegen</filename> might have
+ the following:
+ <literallayout class='monospaced'>
+ DEPENDS = "codegen-native"
+ </literallayout>
+ For more information, see the
+ <link linkend='ref-classes-native'><filename>native</filename></link>
+ class and the
+ <link linkend='var-EXTRANATIVEPATH'><filename>EXTRANATIVEPATH</filename></link>
+ variable.
+ <note>
+ <title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ <filename>DEPENDS</filename> is a list of
+ recipe names.
+ Or, to be more precise, it is a list of
+ <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
+ names, which usually match recipe names.
+ Putting a package name such as "foo-dev" in
+ <filename>DEPENDS</filename> does not make
+ sense.
+ Use "foo" instead, as this will put files
+ from all the packages that make up
+ <filename>foo</filename>, which includes
+ those from <filename>foo-dev</filename>, into
+ the sysroot.
+ </para></listitem>
+ <listitem><para>
+ One recipe having another recipe in
+ <filename>DEPENDS</filename> does not by itself
+ add any runtime dependencies between the
+ packages produced by the two recipes.
+ However, as explained in the
+ "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
+ section, runtime dependencies will often be
+ added automatically, meaning
+ <filename>DEPENDS</filename> alone is
+ sufficient for most recipes.
+ </para></listitem>
+ <listitem><para>
+ Counterintuitively,
+ <filename>DEPENDS</filename> is often necessary
+ even for recipes that install precompiled
+ components.
+ For example, if <filename>libfoo</filename>
+ is a precompiled library that links against
+ <filename>libbar</filename>, then
+ linking against <filename>libfoo</filename>
+ requires both <filename>libfoo</filename>
+ and <filename>libbar</filename> to be available
+ in the sysroot.
+ Without a <filename>DEPENDS</filename> from the
+ recipe that installs <filename>libfoo</filename>
+ to the recipe that installs
+ <filename>libbar</filename>, other recipes might
+ fail to link against
+ <filename>libfoo</filename>.
+ </para></listitem>
+ </itemizedlist>
+ </note>
</para>
<para>
For information on runtime dependencies, see the
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
variable.
+ You can also see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
+ "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
+ sections in the BitBake User Manual for additional
+ information on tasks and dependencies.
</para>
</glossdef>
</glossentry>
@@ -3072,15 +3230,15 @@
by UUID to allow the kernel to locate the root device
even if the device name changes due to differences in
hardware configuration.
- By default, <filename>SYSLINUX_ROOT</filename> is set
+ By default, <filename>ROOT_VM</filename> is set
as follows:
<literallayout class='monospaced'>
- SYSLINUX_ROOT = "root=/dev/sda2"
+ ROOT_VM ?= "root=/dev/sda2"
</literallayout>
However, you can change this to locate the root device
using the disk signature instead:
<literallayout class='monospaced'>
- SYSLINUX_ROOT = "root=PARTUUID=${DISK_SIGNATURE}-02"
+ ROOT_VM = "root=PARTUUID=${DISK_SIGNATURE}-02"
</literallayout>
</para>
@@ -3341,20 +3499,28 @@
<glossentry id='var-DISTROOVERRIDES'><glossterm>DISTROOVERRIDES</glossterm>
<info>
- DISTROOVERRIDES[doc] = "Lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable."
+ DISTROOVERRIDES[doc] = "A colon-separated list of overrides specific to the current distribution."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- This variable lists overrides specific to the current
- distribution.
- By default, the variable list includes the value of the
- <filename><link linkend='var-DISTRO'>DISTRO</link></filename>
- variable.
- You can extend the variable to apply any variable overrides
- you want as part of the distribution and are not
- already in <filename>OVERRIDES</filename> through
- some other means.
+ A colon-separated list of overrides specific to the
+ current distribution.
+ By default, this list includes the value of
+ <link linkend='var-DISTRO'><filename>DISTRO</filename></link>.
+ </para>
+
+ <para>
+ You can extend <filename>DISTROOVERRIDES</filename>
+ to add extra overrides that should apply to
+ the distribution.
+ </para>
+
+ <para>
+ The underlying mechanism behind
+ <filename>DISTROOVERRIDES</filename> is simply that it
+ is included in the default value of
+ <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
</para>
</glossdef>
</glossentry>
@@ -3463,13 +3629,13 @@
<link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>),
the <filename>EFI_PROVIDER</filename> variable specifies
the EFI bootloader to use.
- The default is "grub-efi", but "gummiboot" can be used
+ The default is "grub-efi", but "systemd-boot" can be used
instead.
</para>
<para>
See the
- <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
+ <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
class for more information.
</para>
</glossdef>
@@ -3893,6 +4059,27 @@
</glossdef>
</glossentry>
+ <glossentry id='var-EXTRANATIVEPATH'><glossterm>EXTRANATIVEPATH</glossterm>
+ <info>
+ EXTRANATIVEPATH[doc] = "A list of subdirectories of ${STAGING_BINDIR_NATIVE} added to the beginning of the environment variable PATH."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ A list of subdirectories of
+ <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
+ added to the beginning of the environment variable
+ <filename>PATH</filename>.
+ As an example, the following prepends
+ "${STAGING_BINDIR_NATIVE}/foo:${STAGING_BINDIR_NATIVE}/bar:"
+ to <filename>PATH</filename>:
+ <literallayout class='monospaced'>
+ EXTRANATIVEPATH = "foo bar"
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-EXTRA_OECMAKE'><glossterm>EXTRA_OECMAKE</glossterm>
<info>
EXTRA_OECMAKE[doc] = "Additional cmake options."
@@ -3913,6 +4100,10 @@
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Additional <filename>configure</filename> script options.
+ See
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
+ for additional information on passing configure script
+ options.
</para>
</glossdef>
</glossentry>
@@ -3932,6 +4123,15 @@
"", you need to set the variable to specify any required
GNU options.
</para>
+
+ <para>
+ <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
+ and
+ <link linkend='var-PARALLEL_MAKEINST'><filename>PARALLEL_MAKEINST</filename></link>
+ also make use of
+ <filename>EXTRA_OEMAKE</filename> to pass the required
+ flags.
+ </para>
</glossdef>
</glossentry>
@@ -4061,12 +4261,16 @@
<glossentry id='var-FILES'><glossterm>FILES</glossterm>
<info>
- FILES[doc] = "The list of directories or files that are placed in packages."
+ FILES[doc] = "The list of directories or files that are placed in a package."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The list of directories or files that are placed in packages.
+ The list of files and directories that are placed in a
+ package.
+ The
+ <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
+ variable lists the packages generated by a recipe.
</para>
<para>
@@ -4077,7 +4281,7 @@
resulting package.
Here is an example:
<literallayout class='monospaced'>
- FILES_${PN} += "${bindir}/mydir1/ ${bindir}/mydir2/myfile"
+ FILES_${PN} += "${bindir}/mydir1 ${bindir}/mydir2/myfile"
</literallayout>
</para>
@@ -4092,6 +4296,8 @@
You can find a list of these variables at the top of the
<filename>meta/conf/bitbake.conf</filename> file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
+ You will also find the default values of the various
+ <filename>FILES_*</filename> variables in this file.
</note>
<para>
@@ -4106,7 +4312,6 @@
variable for information on how to identify these files to
the PMS.
</para>
-
</glossdef>
</glossentry>
@@ -4361,6 +4566,25 @@
</glossdef>
</glossentry>
+ <glossentry id='var-FORCE_RO_REMOVE'><glossterm>FORCE_RO_REMOVE</glossterm>
+ <info>
+ FORCE_RO_REMOVE[doc] = "Forces the removal of the packages listed in ROOTFS_RO_UNNEEDED during the generation of the root filesystem."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Forces the removal of the packages listed in
+ <filename>ROOTFS_RO_UNNEEDED</filename> during the
+ generation of the root filesystem.
+ </para>
+
+ <para>
+ Set the variable to "1" to force the removal of these
+ packages.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-FULL_OPTIMIZATION'><glossterm>FULL_OPTIMIZATION</glossterm>
<info>
FULL_OPTIMIZATION[doc]= "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2'."
@@ -4570,92 +4794,6 @@
</glossdef>
</glossentry>
- <glossentry id='var-GUMMIBOOT_CFG'><glossterm>GUMMIBOOT_CFG</glossterm>
- <info>
- GUMMIBOOT_CFG[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_CFG variable specifies the configuration file that should be used."
- </info>
- <glossdef>
- <para role="glossdeffirst">
-<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- When
- <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
- is set to "gummiboot", the
- <filename>GUMMIBOOT_CFG</filename> variable specifies the
- configuration file that should be used.
- By default, the
- <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
- class sets the <filename>GUMMIBOOT_CFG</filename> as
- follows:
- <literallayout class='monospaced'>
- GUMMIBOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
- </literallayout>
- </para>
-
- <para>
- For information on Gummiboot, see the
- <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
- </para>
- </glossdef>
- </glossentry>
-
- <glossentry id='var-GUMMIBOOT_ENTRIES'><glossterm>GUMMIBOOT_ENTRIES</glossterm>
- <info>
- GUMMIBOOT_ENTRIES[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_ENTRIES variable specifies a list of entry files (*.conf) to be installed containing one boot entry per file."
- </info>
- <glossdef>
- <para role="glossdeffirst">
-<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- When
- <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
- is set to "gummiboot", the
- <filename>GUMMIBOOT_ENTRIES</filename> variable specifies
- a list of entry files
- (<filename>*.conf</filename>) to be installed
- containing one boot entry per file.
- By default, the
- <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
- class sets the <filename>GUMMIBOOT_ENTRIES</filename> as
- follows:
- <literallayout class='monospaced'>
- GUMMIBOOT_ENTRIES ?= ""
- </literallayout>
- </para>
-
- <para>
- For information on Gummiboot, see the
- <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
- </para>
- </glossdef>
- </glossentry>
-
- <glossentry id='var-GUMMIBOOT_TIMEOUT'><glossterm>GUMMIBOOT_TIMEOUT</glossterm>
- <info>
- GUMMIBOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "gummiboot", the GUMMIBOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
- </info>
- <glossdef>
- <para role="glossdeffirst">
-<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- When
- <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
- is set to "gummiboot", the
- <filename>GUMMIBOOT_TIMEOUT</filename> variable specifies
- the boot menu timeout in seconds.
- By default, the
- <link linkend='ref-classes-gummiboot'><filename>gummiboot</filename></link>
- class sets the <filename>GUMMIBOOT_TIMEOUT</filename> as
- follows:
- <literallayout class='monospaced'>
- GUMMIBOOT_TIMEOUT ?= "10"
- </literallayout>
- </para>
-
- <para>
- For information on Gummiboot, see the
- <ulink url='http://freedesktop.org/wiki/Software/gummiboot/'>Gummiboot documentation</ulink>.
- </para>
- </glossdef>
- </glossentry>
-
</glossdiv>
<glossdiv id='var-glossary-h'><title>H</title>
@@ -5940,7 +6078,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-INHIBIT_PACKAGE_DEBUG_SPLIT'><glossterm>INHIBIT_PACKAGE_DEBUG_SPLIT</glossterm>
<info>
- INHIBIT_PACKAGE_STRIP[doc] = "If set to "1", causes the build to not strip binaries in resulting packages."
+ INHIBIT_PACKAGE_DEBUG_SPLIT[doc] = "If set to "1", prevents the OpenEmbedded build system from splitting out debug information during packaging"
</info>
<glossdef>
<para role="glossdeffirst">
@@ -5976,7 +6114,19 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- If set to "1", causes the build to not strip binaries in resulting packages.
+ If set to "1", causes the build to not strip binaries in
+ resulting packages and prevents the
+ <filename>-dbg</filename> package from containing the
+ source files.
+ </para>
+
+ <para>
+ By default, the OpenEmbedded build system strips
+ binaries and puts the debugging symbols into
+ <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}-dbg</filename>.
+ Consequently, you should not set
+ <filename>INHIBIT_PACKAGE_STRIP</filename> when you plan
+ to debug in general.
</para>
</glossdef>
</glossentry>
@@ -5994,72 +6144,108 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
variable.
</para>
+
+ <para>
+ The default value of this variable, which is set in the
+ <filename>meta/conf/bitbake.conf</filename> configuration
+ file in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
+ is "cpio.gz".
+ The Linux kernel's initramfs mechanism, as opposed to the
+ initial RAM disk
+ <ulink url='https://en.wikipedia.org/wiki/Initrd'>initrd</ulink>
+ mechanism, expects an optionally compressed cpio
+ archive.
+ </para>
</glossdef>
</glossentry>
<glossentry id='var-INITRAMFS_IMAGE'><glossterm>INITRAMFS_IMAGE</glossterm>
<info>
- INITRAMFS_IMAGE[doc] = "Causes the OpenEmbedded build system to build an additional recipe as a dependency to your root filesystem recipe (e.g. core-image-sato)."
+ INITRAMFS_IMAGE[doc] = "Specifies the PROVIDES name of an image recipe that is used to build an initial RAM disk (initramfs) image."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Causes the OpenEmbedded build system to build an additional
- recipe as a dependency to your root filesystem recipe
- (e.g. <filename>core-image-sato</filename>).
- The additional recipe is used to create an initial RAM disk
- (initramfs) that might be needed during the initial boot of
- the target system to accomplish such things as loading
- kernel modules prior to mounting the root file system.
+ Specifies the
+ <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
+ name of an image recipe that is used to build an initial
+ RAM disk (initramfs) image.
+ An initramfs provides a temporary root filesystem used for
+ early system initialization (e.g. loading of modules
+ needed to locate and mount the "real" root filesystem).
+ The specified recipe is added as a dependency of the root
+ filesystem recipe (e.g.
+ <filename>core-image-sato</filename>).
+ See the <filename>meta/recipes-core/images/core-image-minimal-initramfs.bb</filename>
+ recipe in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
+ for an example initramfs recipe.
+ To select this recipe to provide the initramfs,
+ set <filename>INITRAMFS_IMAGE</filename> to
+ "core-image-minimal-initramfs".
+ <note>
+ The initramfs image recipe should set
+ <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
+ to
+ <link linkend='var-INITRAMFS_FSTYPES'><filename>INITRAMFS_FSTYPES</filename></link>.
+ </note>
</para>
<para>
- When you set the variable, specify the name of the
- initramfs you want created.
- The following example, which is set in the
- <filename>local.conf</filename> configuration file, causes
- a separate recipe to be created that results in an
- initramfs image named
- <filename>core-image-sato-initramfs.bb</filename> to be
- created:
- <literallayout class='monospaced'>
- INITRAMFS_IMAGE = "core-image-minimal-initramfs"
- </literallayout>
- By default, the
+ You can also find more information by referencing the
+ <filename>meta/poky/conf/local.conf.sample.extended</filename>
+ configuration file in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
+ the
+ <link linkend='ref-classes-image'><filename>image</filename></link>
+ class, and the
<link linkend='ref-classes-kernel'><filename>kernel</filename></link>
- class sets this variable to a null string as follows:
- <literallayout class='monospaced'>
- INITRAMFS_IMAGE = ""
- </literallayout>
+ class to see how to use the
+ <filename>INITRAMFS_IMAGE</filename> variable.
</para>
<para>
- See the
- <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta-poky/conf/local.conf.sample.extended'><filename>local.conf.sample.extended</filename></ulink>
- file for additional information.
- You can also reference the
- <ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/poky/tree/meta/classes/kernel.bbclass'><filename>kernel.bbclass</filename></ulink>
- file to see how the variable is used.
+ If <filename>INITRAMFS_IMAGE</filename> is empty, which is
+ the default, then no initramfs is built.
+ </para>
+
+ <para>
+ Finally, for more information you can also see the
+ <link linkend='var-INITRAMFS_IMAGE_BUNDLE'><filename>INITRAMFS_IMAGE_BUNDLE</filename></link>
+ variable, which allows the generated image to be bundled
+ inside the kernel image.
</para>
</glossdef>
</glossentry>
<glossentry id='var-INITRAMFS_IMAGE_BUNDLE'><glossterm>INITRAMFS_IMAGE_BUNDLE</glossterm>
<info>
- INITRAMFS_IMAGE_BUNDLE[doc] = "Controls whether or not the image recipe specified by INITRAMFS_IMAGE is run through an extra pass during kernel compilation in order to build a single binary that contains both the kernel image and the initial RAM disk (initramfs)."
+ INITRAMFS_IMAGE_BUNDLE[doc] = "Controls whether or not the image recipe specified by INITRAMFS_IMAGE is run through an extra pass (do_bundle_initramfs) during kernel compilation in order to build a single binary that contains both the kernel image and the initial RAM disk (initramfs)."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
Controls whether or not the image recipe specified by
<link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
- is run through an extra pass during kernel compilation
- in order to build a single binary that contains both the
- kernel image and the initial RAM disk (initramfs).
- Using an extra compilation pass ensures that when a kernel
- attempts to use an initramfs, it does not encounter
- circular dependencies should the initramfs include kernel
- modules.
+ is run through an extra pass
+ (<link linkend='ref-tasks-bundle_initramfs'><filename>do_bundle_initramfs</filename></link>)
+ during kernel compilation in order to build a single binary
+ that contains both the kernel image and the initial RAM disk
+ (initramfs).
+ This makes use of the
+ <link linkend='var-CONFIG_INITRAMFS_SOURCE'><filename>CONFIG_INITRAMFS_SOURCE</filename></link>
+ kernel feature.
+ <note>
+ Using an extra compilation pass to bundle the initramfs
+ avoids a circular dependency between the kernel recipe and
+ the initramfs recipe should the initramfs include kernel
+ modules.
+ Should that be the case, the initramfs recipe depends on
+ the kernel for the kernel modules, and the kernel depends
+ on the initramfs recipe since the initramfs is bundled
+ inside the kernel image.
+ </note>
</para>
<para>
@@ -6070,9 +6256,11 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</para>
<para>
- Setting the variable to "1" in a configuration file causes
- the OpenEmbedded build system to make the extra pass during
- kernel compilation:
+ Setting the variable to "1" in a configuration file causes the
+ OpenEmbedded build system to generate a kernel image with the
+ initramfs specified in
+ <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
+ bundled within:
<literallayout class='monospaced'>
INITRAMFS_IMAGE_BUNDLE = "1"
</literallayout>
@@ -6080,7 +6268,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<link linkend='ref-classes-kernel'><filename>kernel</filename></link>
class sets this variable to a null string as follows:
<literallayout class='monospaced'>
- INITRAMFS_IMAGE_BUNDLE = ""
+ INITRAMFS_IMAGE_BUNDLE ?= ""
</literallayout>
<note>
You must set the
@@ -7727,36 +7915,41 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-MACHINEOVERRIDES'><glossterm>MACHINEOVERRIDES</glossterm>
<info>
- MACHINEOVERRIDES[doc] = "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
+ MACHINEOVERRIDES[doc] = "A colon-separated list of overrides that apply to the current machine."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Lists overrides specific to the current machine.
- By default, this list includes the value
- of <filename><link linkend='var-MACHINE'>MACHINE</link></filename>.
- You can extend the list to apply variable overrides for
- classes of machines.
- For example, all QEMU emulated machines (e.g. qemuarm,
- qemux86, and so forth) include a common file named
- <filename>meta/conf/machine/include/qemu.inc</filename>
- that prepends <filename>MACHINEOVERRIDES</filename> with
- the following variable override:
- <literallayout class='monospaced'>
- MACHINEOVERRIDES =. "qemuall:"
- </literallayout>
+ A colon-separated list of overrides that apply to the
+ current machine.
+ By default, this list includes the value of
+ <link linkend='var-MACHINE'><filename>MACHINE</filename></link>.
</para>
<para>
- Applying an override like <filename>qemuall</filename>
- affects all QEMU emulated machines elsewhere.
- Here is an example from the
- <filename>connman-conf</filename> recipe:
+ You can extend <filename>MACHINEOVERRIDES</filename>
+ to add extra overrides that should apply to a machine.
+ For example, all machines emulated in QEMU (e.g.
+ <filename>qemuarm</filename>, <filename>qemux86</filename>,
+ and so forth) include a file named
+ <filename>meta/conf/machine/include/qemu.inc</filename>
+ that prepends the following override to
+ <filename>MACHINEOVERRIDES</filename>:
+ <literallayout class='monospaced'>
+ MACHINEOVERRIDES =. "qemuall:"
+ </literallayout>
+ This override allows variables to be overriden for all
+ machines emulated in QEMU, like in the following example
+ from the <filename>connman-conf</filename> recipe:
<literallayout class='monospaced'>
- SRC_URI_append_qemuall = "file://wired.config \
- file://wired-setup \
- "
+ SRC_URI_append_qemuall = "file://wired.config \
+ file://wired-setup \
+ "
</literallayout>
+ The underlying mechanism behind
+ <filename>MACHINEOVERRIDES</filename> is simply that it is
+ included in the default value of
+ <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
</para>
</glossdef>
</glossentry>
@@ -7817,6 +8010,39 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<link linkend='var-BPN'><filename>BPN</filename></link> variable).
<filename>MLPREFIX</filename> gets set when a prefix has been
added to <filename>PN</filename>.
+ <note>
+ The "ML" in <filename>MLPREFIX</filename> stands for
+ "MultiLib".
+ This representation is historical and comes from
+ a time when <filename>nativesdk</filename> was a suffix
+ rather than a prefix on the recipe name.
+ When <filename>nativesdk</filename> was turned into a
+ prefix, it made sense to set
+ <filename>MLPREFIX</filename> for it as well.
+ </note>
+ </para>
+
+ <para>
+ To help understand when <filename>MLPREFIX</filename>
+ might be needed, consider when
+ <link linkend='var-BBCLASSEXTEND'><filename>BBCLASSEXTEND</filename></link>
+ is used to provide a <filename>nativesdk</filename> version
+ of a recipe in addition to the target version.
+ If that recipe declares build-time dependencies on tasks in
+ other recipes by using
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>,
+ then a dependency on "foo" will automatically get rewritten
+ to a dependency on "nativesdk-foo".
+ However, dependencies like the following will not get
+ rewritten automatically:
+ <literallayout class='monospaced'>
+ do_foo[depends] += "<replaceable>recipe</replaceable>:do_foo"
+ </literallayout>
+ If you want such a dependency to also get transformed,
+ you can do the following:
+ <literallayout class='monospaced'>
+ do_foo[depends] += "${MLPREFIX}<replaceable>recipe</replaceable>:do_foo"
+ </literallayout>
</para>
</glossdef>
</glossentry>
@@ -7956,6 +8182,31 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-MULTIMACH_HOST_SYS'><glossterm>MULTIMACH_HOST_SYS</glossterm>
+ <info>
+ MULTIMACH_HOST_SYS[doc] = "Separates files for different machines such that you can build for multiple host machines using the same output directories."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Serves the same purpose as
+ <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
+ but for the "HOST" system, in situations that involve a
+ "HOST" and a "TARGET" system.
+ See the
+ <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
+ variable for more information.
+ </para>
+
+ <para>
+ The default value of this variable is:
+ <literallayout class='monospaced'>
+ ${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-MULTIMACH_TARGET_SYS'><glossterm>MULTIMACH_TARGET_SYS</glossterm>
<info>
MULTIMACH_TARGET_SYS[doc] = "Separates files for different machines such that you can build for multiple target machines using the same output directories."
@@ -7963,10 +8214,33 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Separates files for different machines such that you can build
- for multiple target machines using the same output directories.
- See the <link linkend='var-STAMP'><filename>STAMP</filename></link> variable
- for an example.
+ Uniquely identifies the type of the target system for
+ which packages are being built.
+ This variable allows output for different types of target
+ systems to be put into different subdirectories of the same
+ output directory.
+ </para>
+
+ <para>
+ The default value of this variable is:
+ <literallayout class='monospaced'>
+ ${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
+ </literallayout>
+ Some classes (e.g.
+ <link linkend='ref-classes-cross-canadian'><filename>cross-canadian</filename></link>)
+ modify the <filename>MULTIMACH_TARGET_SYS</filename> value.
+ </para>
+
+ <para>
+ See the
+ <link linkend='var-STAMP'><filename>STAMP</filename></link>
+ variable for an example.
+ <link linkend='var-MULTIMACH_HOST_SYS'><filename>MULTIMACH_HOST_SYS</filename></link>
+ is the corresponding variable for the host system in
+ situations that involve a "HOST" and a "TARGET" system.
+ See the
+ <link linkend='var-STAGING_DIR_TARGET'><filename>STAGING_DIR_TARGET</filename></link>
+ variable for more information.
</para>
</glossdef>
</glossentry>
@@ -8304,18 +8578,60 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-OVERRIDES'><glossterm>OVERRIDES</glossterm>
<info>
- OVERRIDES[doc] = "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
+ OVERRIDES[doc] = "A colon-separated list of overrides that currently apply."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- BitBake uses <filename>OVERRIDES</filename> to control
- what variables are overridden after BitBake parses
- recipes and configuration files.
- You can find more information on how overrides are handled
- in the
+ A colon-separated list of overrides that currently apply.
+ Overrides are a BitBake mechanism that allows variables to
+ be selectively overridden at the end of parsing.
+ The set of overrides in <filename>OVERRIDES</filename>
+ represents the "state" during building, which includes
+ the current recipe being built, the machine for which
+ it is being built, and so forth.
+ </para>
+
+ <para>
+ As an example, if the string "an-override" appears as an
+ element in the colon-separated list in
+ <filename>OVERRIDES</filename>, then the following
+ assignment will override <filename>FOO</filename> with the
+ value "overridden" at the end of parsing:
+ <literallayout class='monospaced'>
+ FOO_an-override = "overridden"
+ </literallayout>
+ See the
"<ulink url='&YOCTO_DOCS_BB_URL;#conditional-syntax-overrides'>Conditional Syntax (Overrides)</ulink>"
- section of the BitBake User Manual.
+ section in the BitBake User Manual for more information on
+ the overrides mechanism.
+ </para>
+
+ <para>
+ The default value of <filename>OVERRIDES</filename>
+ includes the values of the
+ <link linkend='var-CLASSOVERRIDE'><filename>CLASSOVERRIDE</filename></link>,
+ <link linkend='var-MACHINEOVERRIDES'><filename>MACHINEOVERRIDES</filename></link>,
+ and
+ <link linkend='var-DISTROOVERRIDES'><filename>DISTROOVERRIDES</filename></link>
+ variables.
+ Another important override included by default is
+ <filename>pn-${PN}</filename>.
+ This override allows variables to be set for a single
+ recipe within configuration (<filename>.conf</filename>)
+ files.
+ Here is an example:
+ <literallayout class='monospaced'>
+ FOO_pn-myrecipe = "myrecipe-specific value"
+ </literallayout>
+ <note><title>Tip</title>
+ An easy way to see what overrides apply is to search for
+ <filename>OVERRIDES</filename> in the output of the
+ <filename>bitbake -e</filename> command.
+ See the
+ "<link linkend='usingpoky-debugging-viewing-variable-values'>Viewing Variable Values</link>"
+ section for more information.
+ </note>
</para>
</glossdef>
</glossentry>
@@ -8863,10 +9179,13 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<listitem><para>Extra arguments
that should be added to the configure script
argument list
- (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>)
+ (<link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
+ or
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>)
if the feature is enabled.</para></listitem>
<listitem><para>Extra arguments
that should be added to <filename>EXTRA_OECONF</filename>
+ or <filename>PACKAGECONFIG_CONFARGS</filename>
if the feature is disabled.
</para></listitem>
<listitem><para>Additional build dependencies
@@ -8950,6 +9269,50 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-PACKAGECONFIG_CONFARGS'><glossterm>PACKAGECONFIG_CONFARGS</glossterm>
+ <info>
+ PACKAGECONFIG_CONFARGS[doc] = "A space-separated list of configuration options generated from PACKAGECONFIG."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ A space-separated list of configuration options generated
+ from the
+ <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
+ setting.
+ This list of options helps other classes and
+ recipes take advantage of the
+ <filename>PACKAGECONFIG</filename> mechanism without
+ having to include options from
+ <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>.
+ </para>
+
+ <para>
+ To illustrate how to use
+ <filename>PACKAGECONFIG_CONFARGS</filename>, consider the
+ following example:
+ <literallayout class='monospaced'>
+ PACKAGECONFIG_CONFARGS = " \
+ -prefix ${prefix} \
+ -sysroot ${STAGING_DIR_NATIVE} \
+ -no-gcc-sysroot
+ "
+ </literallayout>
+ In the previous example,
+ <filename>PACKAGECONFIG_CONFARGS</filename> is set with
+ three configuration options that can be passed using the
+ <filename>PACKAGECONFIG</filename> mechanism, thus
+ avoiding having to use <filename>EXTRA_OECONF</filename>.
+ </para>
+
+ <para>
+ For additional information, see the
+ <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
+ variable.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-PACKAGEGROUP_DISABLE_COMPLEMENTARY'><glossterm>PACKAGEGROUP_DISABLE_COMPLEMENTARY</glossterm>
<info>
PACKAGEGROUP_DISABLE_COMPLEMENTARY[doc] = "Prevents automatic creation of the normal complementary packages such as -dev and -dbg in a packagegroup recipe."
@@ -8984,6 +9347,31 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}
</literallayout>
</para>
+
+ <para>
+ During packaging, the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task goes through <filename>PACKAGES</filename> and uses
+ the
+ <link linkend='var-FILES'><filename>FILES</filename></link>
+ variable corresponding to each package to assign files to
+ the package.
+ If a file matches the <filename>FILES</filename> variable
+ for more than one package in <filename>PACKAGES</filename>,
+ it will be assigned to the earliest (leftmost) package.
+ </para>
+
+ <para>
+ Packages in the variable's list that are empty (i.e. where
+ none of the patterns in
+ <filename>FILES_</filename><replaceable>pkg</replaceable>
+ match any files installed by the
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>
+ task) are not generated, unless generation is forced through
+ the
+ <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
+ variable.
+ </para>
</glossdef>
</glossentry>
@@ -9068,6 +9456,14 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
where <replaceable>x</replaceable> represents the maximum
number of parallel threads <filename>make</filename> can
run.
+ <note><title>Caution</title>
+ In order for <filename>PARALLEL_MAKE</filename> to be
+ effective, <filename>make</filename> must be called
+ with
+ <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
+ An easy way to ensure this is to use the
+ <filename>oe_runmake</filename> function.
+ </note>
</para>
<para>
@@ -9114,16 +9510,24 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
task in order to specify parallel installation.
This variable defaults to the value of
<link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>.
- <note>
- If the software being built experiences dependency
- issues during the
+ <note><title>Notes and Cautions</title>
+ <para>In order for <filename>PARALLEL_MAKEINST</filename>
+ to be
+ effective, <filename>make</filename> must be called
+ with
+ <filename>${</filename><link linkend='var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></link><filename>}</filename>.
+ An easy way to ensure this is to use the
+ <filename>oe_runmake</filename> function.</para>
+
+ <para>If the software being built experiences
+ dependency issues during the
<filename>do_install</filename> task that result in
race conditions, you can clear the
<filename>PARALLEL_MAKEINST</filename> variable within
the recipe as a workaround.
For information on addressing race conditions, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#debugging-parallel-make-races'>Debugging Parallel Make Races</ulink>"
- section in the Yocto Project Development Manual.
+ section in the Yocto Project Development Manual.</para>
</note>
</para>
</glossdef>
@@ -9201,6 +9605,12 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
versioning scheme changes in some backwards incompatible
way.
</para>
+
+ <para>
+ <filename>PE</filename> is the default value of the
+ <link linkend='var-PKGE'><filename>PKGE</filename></link>
+ variable.
+ </para>
</glossdef>
</glossentry>
@@ -9316,14 +9726,16 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
task packages data for each recipe and installs it into
this temporary, shared area.
- This directory defaults to the following:
+ This directory defaults to the following, which you should
+ not change:
<literallayout class='monospaced'>
${STAGING_DIR_HOST}/pkgdata
</literallayout>
- </para>
-
- <para>
- Do not change this default.
+ For examples of how this data is used, see the
+ "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
+ section and the
+ "<link linkend='viewing-package-information-with-oe-pkgdata-util'>Viewing Package Information with <filename>oe-pkgdata-util</filename></link>"
+ section.
</para>
</glossdef>
</glossentry>
@@ -9354,45 +9766,41 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-PKGDESTWORK'><glossterm>PKGDESTWORK</glossterm>
<info>
- PKGDESTWORK[doc] = "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
+ PKGDESTWORK[doc] = "Points to a temporary work area where the do_package task saves package metadata."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Points to a temporary work area used by the
+ Points to a temporary work area where the
<link linkend='ref-tasks-package'><filename>do_package</filename></link>
- task to write output from the
- <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
- task.
+ task saves package metadata.
The <filename>PKGDESTWORK</filename> location defaults to
the following:
<literallayout class='monospaced'>
${WORKDIR}/pkgdata
</literallayout>
+ Do not change this default.
</para>
<para>
- The <filename>do_packagedata</filename> task then packages
- the data in the temporary work area and installs it into a
- shared directory pointed to by
- <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>.
- </para>
-
- <para>
- Do not change this default.
+ The
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
+ task copies the package metadata from
+ <filename>PKGDESTWORK</filename> to
+ <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
+ to make it available globally.
</para>
</glossdef>
</glossentry>
<glossentry id='var-PKGE'><glossterm>PKGE</glossterm>
<info>
- PKGE[doc] = "The epoch of the output package built by the OpenEmbedded build system."
+ PKGE[doc] = "The epoch of the package(s) built by the recipe."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The epoch of the output package built by the
- OpenEmbedded build system.
+ The epoch of the package(s) built by the recipe.
By default, <filename>PKGE</filename> is set to
<link linkend='var-PE'><filename>PE</filename></link>.
</para>
@@ -9401,13 +9809,12 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-PKGR'><glossterm>PKGR</glossterm>
<info>
- PKGR[doc] = "The revision of the output package built by the OpenEmbedded build system."
+ PKGR[doc] = "The revision of the package(s) built by the recipe."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The revision of the output package built by the
- OpenEmbedded build system.
+ The revision of the package(s) built by the recipe.
By default, <filename>PKGR</filename> is set to
<link linkend='var-PR'><filename>PR</filename></link>.
</para>
@@ -9416,13 +9823,13 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-PKGV'><glossterm>PKGV</glossterm>
<info>
- PKGV[doc] = "The version of the output package built by the OpenEmbedded build system."
+ PKGV[doc] = "The version of the package(s) built by the recipe."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The version of the output package built by the
- OpenEmbedded build system.
+ The version of the package(s) built by the
+ recipe.
By default, <filename>PKGV</filename> is set to
<link linkend='var-PV'><filename>PV</filename></link>.
</para>
@@ -9559,8 +9966,50 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- The revision of the recipe.
- The default value for this variable is "r0".
+ The revision of the recipe. The default value for this
+ variable is "r0".
+ Subsequent revisions of the recipe conventionally have the
+ values "r1", "r2", and so forth.
+ When
+ <link linkend='var-PV'><filename>PV</filename></link>
+ increases, <filename>PR</filename> is conventionally reset
+ to "r0".
+ <note>
+ The OpenEmbedded build system does not need the aid of
+ <filename>PR</filename> to know when to rebuild a
+ recipe.
+ The build system uses the task
+ <ulink url='&YOCTO_DOCS_BB_URL;#checksums'>input checksums</ulink>
+ along with the
+ <link linkend='structure-build-tmp-stamps'>stamp</link>
+ and
+ <link linkend='shared-state-cache'>shared state cache</link>
+ mechanisms.
+ </note>
+ The <filename>PR</filename> variable primarily becomes
+ significant when a package manager dynamically installs
+ packages on an already built image.
+ In this case, <filename>PR</filename>, which is the default
+ value of
+ <link linkend='var-PKGR'><filename>PKGR</filename></link>,
+ helps the package manager distinguish which package is the
+ most recent one in cases where many packages have the same
+ <filename>PV</filename> (i.e. <filename>PKGV</filename>).
+ A component having many packages with the same
+ <filename>PV</filename> usually means that the packages all
+ install the same upstream version, but with later
+ (<filename>PR</filename>) version packages including
+ packaging fixes.
+ <note>
+ <filename>PR</filename> does not need to be increased
+ for changes that do not change the package contents or
+ metadata.
+ </note>
+ Because manually managing <filename>PR</filename> can be
+ cumbersome and error-prone, an automated solution exists.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service'>Working With a PR Service</ulink>"
+ section for more information.
</para>
</glossdef>
</glossentry>
@@ -9619,9 +10068,34 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
numbers that could potentially change.
Here are two examples:
<literallayout class='monospaced'>
- PREFERRED_VERSION_python = "2.7.3"
+ PREFERRED_VERSION_python = "3.4.0"
PREFERRED_VERSION_linux-yocto = "3.19%"
</literallayout>
+ <note>
+ The specified version is matched against
+ <link linkend='var-PV'><filename>PV</filename></link>,
+ which does not necessarily match the version part of
+ the recipe's filename.
+ For example, consider two recipes
+ <filename>foo_1.2.bb</filename> and
+ <filename>foo_git.bb</filename> where
+ <filename>foo_git.bb</filename> contains the following
+ assignment:
+ <literallayout class='monospaced'>
+ PV = "1.1+git${SRCPV}"
+ </literallayout>
+ In this case, the correct way to select
+ <filename>foo_git.bb</filename> is by using an
+ assignment such as the following:
+ <literallayout class='monospaced'>
+ PREFERRED_VERSION_foo = "1.1+git%"
+ </literallayout>
+ Compare that previous example against the following
+ incorrect example, which does not work:
+ <literallayout class='monospaced'>
+ PREFERRED_VERSION_foo = "git"
+ </literallayout>
+ </note>
Sometimes the <filename>PREFERRED_VERSION</filename>
variable can be set by configuration files in a way that
is hard to change.
@@ -9639,6 +10113,13 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<literallayout class='monospaced'>
PREFERRED_VERSION_linux-yocto_forcevariable = "3.4%"
</literallayout>
+ <note>
+ The <filename>_forcevariable</filename> override is
+ not handled specially.
+ This override only works because the default value of
+ <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
+ includes "forcevariable".
+ </note>
</para>
</glossdef>
</glossentry>
@@ -9751,6 +10232,12 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
libplds4.so"
</literallayout>
</para>
+
+ <para>
+ For more information, see the
+ "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
+ section.
+ </para>
</glossdef>
</glossentry>
@@ -9784,6 +10271,51 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
The <filename>PROVIDES</filename> statement results in
the "libav" recipe also being known as "libpostproc".
</para>
+
+ <para>
+ In addition to providing recipes under alternate names,
+ the <filename>PROVIDES</filename> mechanism is also used
+ to implement virtual targets.
+ A virtual target is a name that corresponds to some
+ particular functionality (e.g. a Linux kernel).
+ Recipes that provide the functionality in question list the
+ virtual target in <filename>PROVIDES</filename>.
+ Recipes that depend on the functionality in question can
+ include the virtual target in
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ to leave the choice of provider open.
+ </para>
+
+ <para>
+ Conventionally, virtual targets have names on the form
+ "virtual/function" (e.g. "virtual/kernel").
+ The slash is simply part of the name and has no
+ syntactical significance.
+ </para>
+
+ <para>
+ The
+ <link linkend='var-PREFERRED_PROVIDER'><filename>PREFERRED_PROVIDER</filename></link>
+ variable is used to select which particular recipe
+ provides a virtual target.
+ <note>
+ <para>A corresponding mechanism for virtual runtime
+ dependencies (packages) exists.
+ However, the mechanism does not depend on any special
+ functionality beyond ordinary variable assignments.
+ For example,
+ <filename>VIRTUAL-RUNTIME_dev_manager</filename>
+ refers to the package of the component that manages
+ the <filename>/dev</filename> directory.</para>
+
+ <para>Setting the "preferred provider" for runtime
+ dependencies is as simple as using the following
+ assignment in a configuration file:</para>
+ <literallayout class='monospaced'>
+ VIRTUAL-RUNTIME_dev_manager = "udev"
+ </literallayout>
+ </note>
+ </para>
</glossdef>
</glossentry>
@@ -9846,12 +10378,19 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
The version of the recipe.
The version is normally extracted from the recipe filename.
For example, if the recipe is named
- <filename>expat_2.0.1.bb</filename>, then the default value of <filename>PV</filename>
- will be "2.0.1".
+ <filename>expat_2.0.1.bb</filename>, then the default value
+ of <filename>PV</filename> will be "2.0.1".
<filename>PV</filename> is generally not overridden within
- a recipe unless it is building an unstable (i.e. development) version from a source code repository
+ a recipe unless it is building an unstable (i.e.
+ development) version from a source code repository
(e.g. Git or Subversion).
</para>
+
+ <para>
+ <filename>PV</filename> is the default value of the
+ <link linkend='var-PKGV'><filename>PKGV</filename></link>
+ variable.
+ </para>
</glossdef>
</glossentry>
@@ -9993,40 +10532,59 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
<info>
- RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
+ RDEPENDS[doc] = "Lists runtime dependencies of a package."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Lists a package's runtime dependencies (i.e. other packages)
- that must be installed in order for the built package to run
- correctly.
- If a package in this list cannot be found during the build,
- you will get a build error.
+ Lists runtime dependencies of a package.
+ These dependencies are other packages that must be
+ installed in order for the package to function correctly.
+ As an example, the following assignment declares that the
+ package <filename>foo</filename> needs the packages
+ <filename>bar</filename> and <filename>baz</filename> to
+ be installed:
+ <literallayout class='monospaced'>
+ RDEPENDS_foo = "bar baz"
+ </literallayout>
+ The most common types of package runtime dependencies are
+ automatically detected and added.
+ Therefore, most recipes do not need to set
+ <filename>RDEPENDS</filename>.
+ For more information, see the
+ "<link linkend='automatically-added-runtime-dependencies'>Automatically Added Runtime Dependencies</link>"
+ section.
</para>
<para>
- When you use the <filename>RDEPENDS</filename> variable
- in a recipe, you are essentially stating that the recipe's
+ The practical effect of the above
+ <filename>RDEPENDS</filename> assignment is that
+ <filename>bar</filename> and <filename>baz</filename>
+ will be declared as dependencies inside the package
+ <filename>foo</filename> when it is written out by one of
+ the
+ <link linkend='ref-tasks-package_write_deb'><filename>do_package_write_*</filename></link>
+ tasks.
+ Exactly how this is done depends on which package format
+ is used, which is determined by
+ <link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>.
+ When the corresponding package manager installs the
+ package, it will know to also install the packages on
+ which it depends.
+ </para>
+
+ <para>
+ To ensure that the packages <filename>bar</filename> and
+ <filename>baz</filename> get built, the previous
+ <filename>RDEPENDS</filename> assignment also causes a task
+ dependency to be added.
+ This dependency is from the recipe's
<link linkend='ref-tasks-build'><filename>do_build</filename></link>
- task depends on the existence of a specific package.
- Consider this simple example for two recipes named "a" and
- "b" that produce similarly named IPK packages.
- In this example, the <filename>RDEPENDS</filename>
- statement appears in the "a" recipe:
- <literallayout class='monospaced'>
- RDEPENDS_${PN} = "b"
- </literallayout>
- Here, the dependency is such that the
- <filename>do_build</filename> task for recipe "a" depends
- on the
- <link linkend='ref-tasks-package_write_ipk'><filename>do_package_write_ipk</filename></link>
- task of recipe "b".
- This means the package file for "b" must be available when
- the output for recipe "a" has been completely built.
- More importantly, package "a" will be marked as depending
- on package "b" in a manner that is understood by the
- package manager.
+ (not to be confused with
+ <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>)
+ task to the <filename>do_package_write_*</filename>
+ task of the recipes that build <filename>bar</filename> and
+ <filename>baz</filename>.
</para>
<para>
@@ -10046,7 +10604,8 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<para>
Because the <filename>RDEPENDS</filename> variable applies
to packages being built, you should always use the variable
- in a form with an attached package name.
+ in a form with an attached package name (remember that a
+ single recipe can build multiple packages).
For example, suppose you are building a development package
that depends on the <filename>perl</filename> package.
In this case, you would use the following
@@ -10059,38 +10618,33 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Thus, the <filename>RDEPENDS</filename> variable has the
<filename>${PN}-dev</filename> package name as part of the
variable.
+ <note>
+ <title>Caution</title>
+ <filename>RDEPENDS_${PN}-dev</filename> includes
+ <filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>
+ by default.
+ This default is set in the BitBake configuration file
+ (<filename>meta/conf/bitbake.conf</filename>).
+ Be careful not to accidentally remove
+ <filename>${PN}</filename> when modifying
+ <filename>RDEPENDS_${PN}-dev</filename>.
+ Use the "+=" operator rather than the "=" operator.
+ </note>
</para>
<para>
- The package name you attach to the
- <filename>RDEPENDS</filename> variable must appear
- as it would in the <filename>PACKAGES</filename>
- namespace before any renaming of the output package by
- classes like
- <link linkend='ref-classes-debian'><filename>debian</filename></link>.
- </para>
-
- <para>
- In many cases you do not need to explicitly add
- runtime dependencies using
- <filename>RDEPENDS</filename> since some automatic
- handling occurs:
- <itemizedlist>
- <listitem><para><emphasis><filename>shlibdeps</filename></emphasis>: If
- a runtime package contains a shared library
- (<filename>.so</filename>), the build
- processes the library in order to determine other
- libraries to which it is dynamically linked.
- The build process adds these libraries to
- <filename>RDEPENDS</filename> when creating the runtime
- package.</para></listitem>
- <listitem><para><emphasis><filename>pcdeps</filename></emphasis>: If
- the package ships a <filename>pkg-config</filename>
- information file, the build process uses this file
- to add items to the <filename>RDEPENDS</filename>
- variable to create the runtime packages.
- </para></listitem>
- </itemizedlist>
+ The package names you use with
+ <filename>RDEPENDS</filename> must appear as they would in
+ the <filename>PACKAGES</filename> variable.
+ The
+ <link linkend='var-PKG'><filename>PKG</filename></link>
+ variable allows a different name to be used for
+ the final package (e.g. the
+ <link linkend='ref-classes-debian'><filename>debian</filename></link>
+ class uses this to rename packages), but this final package
+ name cannot be used with <filename>RDEPENDS</filename>,
+ which makes sense as <filename>RDEPENDS</filename> is meant
+ to be independent of the package format used.
</para>
<para>
@@ -10123,6 +10677,11 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
For information on build-time dependencies, see the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
variable.
+ You can also see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#tasks'>Tasks</ulink>" and
+ "<ulink url='&YOCTO_DOCS_BB_URL;#dependencies'>Dependencies</ulink>"
+ sections in the BitBake User Manual for additional
+ information on tasks and dependencies.
</para>
</glossdef>
</glossentry>
@@ -10150,28 +10709,6 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
- <glossentry id='var-RM_OLD_IMAGE'><glossterm>RM_OLD_IMAGE</glossterm>
- <info>
- RM_OLD_IMAGE[doc] = "Reclaims disk space by removing previously built versions of the same image from the images directory pointed to by the DEPLOY_DIR variable."
- </info>
- <glossdef>
- <para role="glossdeffirst">
-<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Reclaims disk space by removing previously built
- versions of the same image from the
- <filename>images</filename> directory pointed to by the
- <link linkend='var-DEPLOY_DIR'><filename>DEPLOY_DIR</filename></link>
- variable.
- </para>
-
- <para>
- Set this variable to "1" in your
- <filename>local.conf</filename> file to remove these
- images.
- </para>
- </glossdef>
- </glossentry>
-
<glossentry id='var-RM_WORK_EXCLUDE'><glossterm>RM_WORK_EXCLUDE</glossterm>
<info>
RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
@@ -10802,6 +11339,33 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-SDK_INCLUDE_TOOLCHAIN'><glossterm>SDK_INCLUDE_TOOLCHAIN</glossterm>
+ <info>
+ SDK_INCLUDE_TOOLCHAIN[doc] = "When set to "1", specifies to include the toolchain in the extensible SDK."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When set to "1", specifies to include the toolchain in the
+ extensible SDK.
+ Including the toolchain is useful particularly when
+ <link linkend='var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></link>
+ is set to "minimal" to keep the SDK reasonably small
+ but you still want to provide a usable toolchain.
+ For example, suppose you want to use the toolchain from an
+ IDE (e.g. Eclipse) or from other tools and you do not
+ want to perform additional steps to install the toolchain.
+ </para>
+
+ <para>
+ The <filename>SDK_INCLUDE_TOOLCHAIN</filename> variable
+ defaults to "0" if <filename>SDK_EXT_TYPE</filename>
+ is set to "minimal", and defaults to "1" if
+ <filename>SDK_EXT_TYPE</filename> is set to "full".
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-SDK_INHERIT_BLACKLIST'><glossterm>SDK_INHERIT_BLACKLIST</glossterm>
<info>
SDK_INHERIT_BLACKLIST[doc] = "A list of classes to remove from the INHERIT value globally within the extensible SDK configuration."
@@ -11336,15 +11900,24 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-SERIAL_CONSOLES_CHECK'><glossterm>SERIAL_CONSOLES_CHECK</glossterm>
<info>
- SERIAL_CONSOLES_CHECK[doc] = "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
+ SERIAL_CONSOLES_CHECK[doc] = "Selected SERIAL_CONSOLES to check against /proc/console before enabling using getty. Supported only by SysVinit."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Similar to
- <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>
- except the device is checked for existence before attempting
- to enable it.
+ Specifies serial consoles, which must be listed in
+ <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
+ to check against <filename>/proc/console</filename>
+ before enabling them using getty.
+ This variable allows aliasing in the format:
+ &lt;device&gt;:&lt;alias&gt;.
+ If a device was listed as "sclp_line0"
+ in <filename>/dev/</filename> and "ttyS0" was listed
+ in <filename>/proc/console</filename>, you would do the
+ following:
+ <literallayout class='monospaced'>
+ SERIAL_CONSOLES_CHECK = "slcp_line0:ttyS0"
+ </literallayout>
This variable is currently only supported with SysVinit
(i.e. not with systemd).
</para>
@@ -11982,7 +12555,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
directory structure.
<literallayout class='monospaced'>
SSTATE_MIRRORS ?= "\
- file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH \n \
+ file://.* http://<replaceable>someserver</replaceable>.tld/share/sstate/PATH;downloadfilename=PATH \n \
file://.* file:///<replaceable>some-local-dir</replaceable>/sstate/PATH"
</literallayout>
</para>
@@ -12129,28 +12702,71 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-STAGING_DIR_HOST'><glossterm>STAGING_DIR_HOST</glossterm>
<info>
- STAGING_DIR_HOST[doc] = "Specifies the path to the primary sysroot directory for which the target is being built."
+ STAGING_DIR_HOST[doc] = "Specifies the path to the sysroot directory for the system that the component is built to run on."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Specifies the path to the primary sysroot directory for
- which the target is being built.
- Depending on the type of recipe and the build target, the
- recipe's value is as follows:
+ Specifies the path to the sysroot directory for the system
+ that the component is built to run on (the system that hosts
+ the component).
+ For most recipes, this sysroot is the one that the recipe's
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
+ task copies files into.
+ Exceptions include <filename>-native</filename> recipes,
+ where the <filename>do_populate_sysroot</filename> task
+ instead uses
+ <link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>.
+ Depending on the type of recipe and the build target,
+ <filename>STAGING_DIR_HOST</filename> can have the
+ following values:
<itemizedlist>
<listitem><para>For recipes building for the target
- machine, the value is "${STAGING_DIR}/${MACHINE}".
- </para></listitem>
+ machine, the value is
+ "${<link linkend='var-STAGING_DIR'>STAGING_DIR</link>}/${<link linkend='var-MACHINE'>MACHINE</link>}".
+ </para></listitem>
<listitem><para>For native recipes building
- for the build host, the value is empty given the
- assumption that when building for the build host,
- the build host's own directories should be used.
+ for the build host, the value is empty given the
+ assumption that when building for the build host,
+ the build host's own directories should be used.
+ <note><para>
+ <filename>-native</filename> recipes are not
+ installed into host paths like such as
+ <filename>/usr</filename>.
+ Rather, these recipes are installed into
+ <filename>STAGING_DIR_NATIVE</filename>.
+ When compiling <filename>-native</filename>
+ recipes, standard build environment variables
+ such as
+ <link linkend='var-CPPFLAGS'><filename>CPPFLAGS</filename></link>
+ and
+ <link linkend='var-CFLAGS'><filename>CFLAGS</filename></link>
+ are set up so that both host paths and
+ <filename>STAGING_DIR_NATIVE</filename> are
+ searched for libraries and headers using, for
+ example, GCC's <filename>-isystem</filename>
+ option.</para>
+
+ <para>This emphasizes that the
+ <filename>STAGING_DIR*</filename> variables
+ should be viewed as input variables by tasks
+ such as
+ <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>,
+ <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>,
+ and
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>.
+ Having the real system root correspond to
+ <filename>STAGING_DIR_HOST</filename> makes
+ conceptual sense for
+ <filename>-native</filename> recipes, as
+ they make use of host headers and libraries.
+ </para>
+ </note>
</para></listitem>
<listitem><para>For native SDK
recipes that build for the SDK
(<filename>nativesdk</filename>), the value is
- "${STAGING_DIR}/${MULTIMACH_HOST_SYS}".
+ "${STAGING_DIR}/${<link linkend='var-MULTIMACH_HOST_SYS'>MULTIMACH_HOST_SYS</link>}".
</para></listitem>
</itemizedlist>
</para>
@@ -12159,27 +12775,29 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-STAGING_DIR_NATIVE'><glossterm>STAGING_DIR_NATIVE</glossterm>
<info>
- STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory for the build host."
+ STAGING_DIR_NATIVE[doc] = "Specifies the path to the sysroot directory used when building components that run on the build host itself."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Specifies the path to the sysroot directory for the
- build host.
+ Specifies the path to the sysroot directory used when
+ building components that run on the build host itself.
</para>
</glossdef>
</glossentry>
<glossentry id='var-STAGING_DIR_TARGET'><glossterm>STAGING_DIR_TARGET</glossterm>
<info>
- STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot directory for the target for which the current recipe is being built."
+ STAGING_DIR_TARGET[doc] = "Specifies the path to the sysroot used for the system for which the component generates code."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Specifies the path to the sysroot directory for the
- target for which the current recipe is being built.
- In most cases, this path is the
+ Specifies the path to the sysroot used for the system for
+ which the component generates code.
+ For components that do not generate code, which is the
+ majority, <filename>STAGING_DIR_TARGET</filename> is set
+ to match
<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>.
</para>
@@ -12190,10 +12808,12 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
Using terminology from GNU, the primary system is referred
to as the "HOST" and the secondary, or different, system is
referred to as the "TARGET".
- Thus, the binaries run on the "HOST" system and
+ Thus, the binaries run on the "HOST" system
and generate binaries for the "TARGET" system.
- <filename>STAGING_DIR_TARGET</filename> points to the
- sysroot used for the "TARGET" system.
+ The <filename>STAGING_DIR_HOST</filename> variable points
+ to the sysroot used for the "HOST" system, while
+ <filename>STAGING_DIR_TARGET</filename>
+ points to the sysroot used for the "TARGET" system.
</para>
</glossdef>
</glossentry>
@@ -12335,6 +12955,13 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</para>
<para>
+ For information on how BitBake uses stamp files to determine
+ if a task should be rerun, see the
+ "<link linkend='stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</link>"
+ section.
+ </para>
+
+ <para>
See <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>,
<link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
<link linkend='var-PN'><filename>PN</filename></link>,
@@ -12519,6 +13146,95 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-SYSROOT_DIRS'><glossterm>SYSROOT_DIRS</glossterm>
+ <info>
+ SYSROOT_DIRS[doc] = "Directories that are staged into the sysroot by the do_populate_sysroot task."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Directories that are staged into the sysroot by the
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
+ task.
+ By default, the following directories are staged:
+ <literallayout class='monospaced'>
+ SYSROOT_DIRS = " \
+ ${includedir} \
+ ${libdir} \
+ ${base_libdir} \
+ ${nonarch_base_libdir} \
+ ${datadir} \
+ "
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-SYSROOT_DIRS_BLACKLIST'><glossterm>SYSROOT_DIRS_BLACKLIST</glossterm>
+ <info>
+ SYSROOT_DIRS_BLACKLIST[doc] = "Directories that are not staged into the sysroot by the do_populate_sysroot task."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Directories that are not staged into the sysroot by the
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
+ task.
+ You can use this variable to exclude certain subdirectories
+ of directories listed in
+ <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>
+ from staging.
+ By default, the following directories are not staged:
+ <literallayout class='monospaced'>
+ SYSROOT_DIRS_BLACKLIST = " \
+ ${mandir} \
+ ${docdir} \
+ ${infodir} \
+ ${datadir}/locale \
+ ${datadir}/applications \
+ ${datadir}/fonts \
+ ${datadir}/pixmaps \
+ "
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-SYSROOT_DIRS_NATIVE'><glossterm>SYSROOT_DIRS_NATIVE</glossterm>
+ <info>
+ SYSROOT_DIRS_NATIVE[doc] = "Extra directories staged into the sysroot by the do_populate_sysroot task for -native recipes, in addition to those specified in SYSROOT_DIRS."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ Extra directories staged into the sysroot by the
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
+ task for <filename>-native</filename> recipes, in addition
+ to those specified in
+ <link linkend='var-SYSROOT_DIRS'><filename>SYSROOT_DIRS</filename></link>.
+ By default, the following extra directories are staged:
+ <literallayout class='monospaced'>
+ SYSROOT_DIRS_NATIVE = " \
+ ${bindir} \
+ ${sbindir} \
+ ${base_bindir} \
+ ${base_sbindir} \
+ ${libexecdir} \
+ ${sysconfdir} \
+ ${localstatedir} \
+ "
+ </literallayout>
+ <note>
+ Programs built by <filename>-native</filename> recipes
+ run directly from the sysroot
+ (<link linkend='var-STAGING_DIR_NATIVE'><filename>STAGING_DIR_NATIVE</filename></link>),
+ which is why additional directories containing program
+ executables and supporting files need to be staged.
+ </note>
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-SYSROOT_PREPROCESS_FUNCS'><glossterm>SYSROOT_PREPROCESS_FUNCS</glossterm>
<info>
SYSROOT_PREPROCESS_FUNCS[doc] = "A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional processing on the staged files, or to stage additional files."
@@ -12565,6 +13281,92 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-SYSTEMD_BOOT_CFG'><glossterm>SYSTEMD_BOOT_CFG</glossterm>
+ <info>
+ SYSTEMD_BOOT_CFG[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_CFG variable specifies the configuration file that should be used."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When
+ <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
+ is set to "systemd-boot", the
+ <filename>SYSTEMD_BOOT_CFG</filename> variable specifies the
+ configuration file that should be used.
+ By default, the
+ <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
+ class sets the <filename>SYSTEMD_BOOT_CFG</filename> as
+ follows:
+ <literallayout class='monospaced'>
+ SYSTEMD_BOOT_CFG ?= "${<link linkend='var-S'>S</link>}/loader.conf"
+ </literallayout>
+ </para>
+
+ <para>
+ For information on Systemd-boot, see the
+ <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-SYSTEMD_BOOT_ENTRIES'><glossterm>SYSTEMD_BOOT_ENTRIES</glossterm>
+ <info>
+ SYSTEMD_BOOT_ENTRIES[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_ENTRIES variable specifies a list of entry files (*.conf) to be installed containing one boot entry per file."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When
+ <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
+ is set to "systemd-boot", the
+ <filename>SYSTEMD_BOOT_ENTRIES</filename> variable specifies
+ a list of entry files
+ (<filename>*.conf</filename>) to be installed
+ containing one boot entry per file.
+ By default, the
+ <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
+ class sets the <filename>SYSTEMD_BOOT_ENTRIES</filename> as
+ follows:
+ <literallayout class='monospaced'>
+ SYSTEMD_BOOT_ENTRIES ?= ""
+ </literallayout>
+ </para>
+
+ <para>
+ For information on Systemd-boot, see the
+ <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-SYSTEMD_BOOT_TIMEOUT'><glossterm>SYSTEMD_BOOT_TIMEOUT</glossterm>
+ <info>
+ SYSTEMD_BOOT_TIMEOUT[doc] = "When EFI_PROVIDER is set to "systemd-boot", the SYSTEMD_BOOT_TIMEOUT variable specifies the boot menu timeout in seconds."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When
+ <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
+ is set to "systemd-boot", the
+ <filename>SYSTEMD_BOOT_TIMEOUT</filename> variable specifies
+ the boot menu timeout in seconds.
+ By default, the
+ <link linkend='ref-classes-systemd-boot'><filename>systemd-boot</filename></link>
+ class sets the <filename>SYSTEMD_BOOT_TIMEOUT</filename> as
+ follows:
+ <literallayout class='monospaced'>
+ SYSTEMD_BOOT_TIMEOUT ?= "10"
+ </literallayout>
+ </para>
+
+ <para>
+ For information on Systemd-boot, see the
+ <ulink url='http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/'>Systemd-boot documentation</ulink>.
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-SYSTEMD_PACKAGES'><glossterm>SYSTEMD_PACKAGES</glossterm>
<info>
SYSTEMD_PACKAGES[doc] = "For recipes that inherit the systemd class, this variable locates the systemd unit files when they are not found in the main recipe's package."
@@ -14255,7 +15057,9 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
task.
Normally, invalid configure options are simply not passed
to the configure script (e.g. should be removed from
- <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>).
+ <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
+ or
+ <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>).
However, common options, for example, exist that are passed
to all configure scripts at a class level that might not
be valid for some configure scripts.
@@ -14300,6 +15104,84 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
+ <glossentry id='var-UPSTREAM_CHECK_GITTAGREGEX'><glossterm>UPSTREAM_CHECK_GITTAGREGEX</glossterm>
+ <info>
+ UPSTREAM_CHECK_GITTAGREGEX[doc] = "Filters relevant Git tags when fetching source from an upstream Git repository."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When the
+ <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
+ class is enabled globally, you can perform a per-recipe
+ check for what the latest upstream source code version is
+ by calling
+ <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
+ If the recipe source code is provided from Git
+ repositories, the OpenEmbedded build system determines the
+ latest upstream version by picking the latest tag from the
+ list of all repository tags.
+ You can use the
+ <filename>UPSTREAM_CHECK_GITTAGREGEX</filename>
+ variable to provide a regular expression to filter only the
+ relevant tags should the default filter not work
+ correctly.
+ <literallayout class='monospaced'>
+ UPSTREAM_CHECK_GITTAGREGEX = "git_tag_regex"
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-UPSTREAM_CHECK_REGEX'><glossterm>UPSTREAM_CHECK_REGEX</glossterm>
+ <info>
+ UPSTREAM_CHECK_REGEX[doc] = "The regular expression the package checking system uses to parse the page pointed to by UPSTREAM_CHECK_URI."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When the
+ <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
+ class is enabled globally, use the
+ <filename>UPSTREAM_CHECK_REGEX</filename> variable to
+ specify a different regular expression instead of the
+ default one when the package checking system is parsing
+ the page found using
+ <link linkend='var-UPSTREAM_CHECK_URI'><filename>UPSTREAM_CHECK_URI</filename></link>.
+ <literallayout class='monospaced'>
+ UPSTREAM_CHECK_REGEX = "package_regex"
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
+ <glossentry id='var-UPSTREAM_CHECK_URI'><glossterm>UPSTREAM_CHECK_URI</glossterm>
+ <info>
+ UPSTREAM_CHECK_URI[doc] = "The URL used by the package checking system to get the latest version of the package when source files are fetched from an upstream Git repository."
+ </info>
+ <glossdef>
+ <para role="glossdeffirst">
+<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+ When the
+ <link linkend='ref-classes-distrodata'><filename>distrodata</filename></link>
+ class is enabled globally, you can perform a per-recipe
+ check for what the latest upstream source code version is
+ by calling <filename>bitbake -c checkpkg</filename>
+ <replaceable>recipe</replaceable>.
+ If the source code is provided from tarballs, the latest
+ version is determined by fetching the directory listing
+ where the tarball is and attempting to find a later tarball.
+ When this approach does not work, you can use
+ <filename>UPSTREAM_CHECK_URI</filename> to
+ provide a different URI that contains the link to the
+ latest tarball.
+ <literallayout class='monospaced'>
+ UPSTREAM_CHECK_URI = "recipe_url"
+ </literallayout>
+ </para>
+ </glossdef>
+ </glossentry>
+
<glossentry id='var-USE_DEVFS'><glossterm>USE_DEVFS</glossterm>
<info>
USE_DEVFS[doc] = "Determines if devtmpfs is used for /dev population."
@@ -14381,16 +15263,18 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-USERADD_ERROR_DYNAMIC'><glossterm>USERADD_ERROR_DYNAMIC</glossterm>
<info>
- USERADD_ERROR_DYNAMIC[doc] = "Forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in files/passwd and files/group files."
+ USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in files/passwd and files/group files. If set to 'warn', a warning will be issued instead."
</info>
<glossdef>
<para role="glossdeffirst">
<!-- <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
- Forces the OpenEmbedded build system to produce an error
- if the user identification (<filename>uid</filename>) and
- group identification (<filename>gid</filename>) values
- are not defined in <filename>files/passwd</filename>
+ If set to "error", forces the OpenEmbedded build system to
+ produce an error if the user identification
+ (<filename>uid</filename>) and group identification
+ (<filename>gid</filename>) values are not defined
+ in <filename>files/passwd</filename>
and <filename>files/group</filename> files.
+ If set to "warn", a warning will be issued instead.
</para>
<para>
@@ -14406,7 +15290,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
your <filename>local.conf</filename> file as
follows:
<literallayout class='monospaced'>
- USERADD_ERROR_DYNAMIC = "1"
+ USERADD_ERROR_DYNAMIC = "error"
</literallayout>
Overriding the default behavior implies you are going to
also take steps to set static <filename>uid</filename> and
@@ -14562,7 +15446,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-USERADDEXTENSION'><glossterm>USERADDEXTENSION</glossterm>
<info>
- USERADDEXTENSION[doc] = "When set to "useradd-staticids", causes the OpenEmbedded build system to base all user and group additions on a static passwd and group files found in BBPATH."
+ USERADDEXTENSION[doc] = "When set to 'useradd-staticids', causes the OpenEmbedded build system to base all user and group additions on a static passwd and group files found in BBPATH."
</info>
<glossdef>
<para role="glossdeffirst">
diff --git a/import-layers/yocto-poky/documentation/ref-manual/ref-varlocality.xml b/import-layers/yocto-poky/documentation/ref-manual/ref-varlocality.xml
index d3f873298..54524d5b6 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/ref-varlocality.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/ref-varlocality.xml
@@ -176,16 +176,18 @@
<para>
This section lists variables that define extra build information for recipes.
<itemizedlist>
+ <listitem><para><filename><link linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE
+ </link></filename></para></listitem>
<listitem><para><filename><link linkend='var-EXTRA_OECMAKE'>EXTRA_OECMAKE</link>
</filename></para></listitem>
<listitem><para><filename><link linkend='var-EXTRA_OECONF'>EXTRA_OECONF</link>
</filename></para></listitem>
<listitem><para><filename><link linkend='var-EXTRA_OEMAKE'>EXTRA_OEMAKE</link>
</filename></para></listitem>
+ <listitem><para><filename><link linkend='var-PACKAGECONFIG_CONFARGS'>PACKAGECONFIG_CONFARGS</link>
+ </filename></para></listitem>
<listitem><para><filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
</para></listitem>
- <listitem><para><filename><link linkend='var-DEFAULT_PREFERENCE'>DEFAULT_PREFERENCE
- </link></filename></para></listitem>
</itemizedlist>
</para>
</section>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/technical-details.xml b/import-layers/yocto-poky/documentation/ref-manual/technical-details.xml
index f06382ab5..9bb09fb94 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/technical-details.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/technical-details.xml
@@ -690,6 +690,125 @@
addtask do_deploy_setscene
do_deploy[dirs] = "${DEPLOYDIR} ${B}"
</literallayout>
+ The following list explains the previous example:
+ <itemizedlist>
+ <listitem><para>
+ Adding "do_deploy" to <filename>SSTATETASKS</filename>
+ adds some required sstate-related processing, which is
+ implemented in the
+ <link linkend='ref-classes-sstate'><filename>sstate</filename></link>
+ class, to before and after the
+ <link linkend='ref-tasks-deploy'><filename>do_deploy</filename></link>
+ task.
+ </para></listitem>
+ <listitem><para>
+ The
+ <filename>do_deploy[sstate-inputdirs] = "${DEPLOYDIR}"</filename>
+ declares that <filename>do_deploy</filename> places its
+ output in <filename>${DEPLOYDIR}</filename> when run
+ normally (i.e. when not using the sstate cache).
+ This output becomes the input to the shared state cache.
+ </para></listitem>
+ <listitem><para>
+ The
+ <filename>do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"</filename>
+ line causes the contents of the shared state cache to be
+ copied to <filename>${DEPLOY_DIR_IMAGE}</filename>.
+ <note>
+ If <filename>do_deploy</filename> is not already in
+ the shared state cache or if its input checksum
+ (signature) has changed from when the output was
+ cached, the task will be run to populate the shared
+ state cache, after which the contents of the shared
+ state cache is copied to
+ <filename>${DEPLOY_DIR_IMAGE}</filename>.
+ If <filename>do_deploy</filename> is in the shared
+ state cache and its signature indicates that the
+ cached output is still valid (i.e. if no
+ relevant task inputs have changed), then the contents
+ of the shared state cache will be copied directly to
+ <filename>${DEPLOY_DIR_IMAGE}</filename> by the
+ <filename>do_deploy_setscene</filename> task instead,
+ skipping the <filename>do_deploy</filename> task.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ The following task definition is glue logic needed to make
+ the previous settings effective:
+ <literallayout class='monospaced'>
+ python do_deploy_setscene () {
+ sstate_setscene(d)
+ }
+ addtask do_deploy_setscene
+ </literallayout>
+ <filename>sstate_setscene()</filename> takes the flags
+ above as input and accelerates the
+ <filename>do_deploy</filename> task through the
+ shared state cache if possible.
+ If the task was accelerated,
+ <filename>sstate_setscene()</filename> returns True.
+ Otherwise, it returns False, and the normal
+ <filename>do_deploy</filename> task runs.
+ For more information, see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#setscene'>setscene</ulink>"
+ section in the BitBake User Manual.
+ </para></listitem>
+ <listitem><para>
+ The <filename>do_deploy[dirs] = "${DEPLOYDIR} ${B}"</filename>
+ line creates <filename>${DEPLOYDIR}</filename> and
+ <filename>${B}</filename> before the
+ <filename>do_deploy</filename> task runs, and also sets
+ the current working directory of
+ <filename>do_deploy</filename> to
+ <filename>${B}</filename>.
+ For more information, see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'>Variable Flags</ulink>"
+ section in the BitBake User Manual.
+ <note>
+ In cases where
+ <filename>sstate-inputdirs</filename> and
+ <filename>sstate-outputdirs</filename> would be the
+ same, you can use
+ <filename>sstate-plaindirs</filename>.
+ For example, to preserve the
+ <filename>${PKGD}</filename> and
+ <filename>${PKGDEST}</filename> output from the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task, use the following:
+ <literallayout class='monospaced'>
+ do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
+ </literallayout>
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <filename>sstate-inputdirs</filename> and
+ <filename>sstate-outputdirs</filename> can also be used
+ with multiple directories.
+ For example, the following declares
+ <filename>PKGDESTWORK</filename> and
+ <filename>SHLIBWORK</filename> as shared state
+ input directories, which populates the shared state
+ cache, and <filename>PKGDATA_DIR</filename> and
+ <filename>SHLIBSDIR</filename> as the corresponding
+ shared state output directories:
+ <literallayout class='monospaced'>
+ do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
+ do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ These methods also include the ability to take a lockfile
+ when manipulating shared state directory structures,
+ for cases where file additions or removals are sensitive:
+ <literallayout class='monospaced'>
+ do_package[sstate-lockfile] = "${PACKAGELOCK}"
+ </literallayout>
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+<!--
+ <para>
In this example, we add some extra flags to the task, a name field ("deploy"), an
input directory where the task sends data, and the output
directory where the data from the task should eventually be copied.
@@ -713,6 +832,7 @@
shared state directory structures since some cases are sensitive to file
additions or removals.
</para>
+-->
<para>
Behind the scenes, the shared state code works by looking in
@@ -722,7 +842,7 @@
Here is an example:
<literallayout class='monospaced'>
SSTATE_MIRRORS ?= "\
- file://.* http://someserver.tld/share/sstate/PATH \n \
+ file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
file://.* file:///some/local/dir/sstate/PATH"
</literallayout>
<note>
@@ -781,56 +901,15 @@
<title>Debugging</title>
<para>
- When things go wrong, debugging needs to be straightforward.
- Because of this, the Yocto Project includes strong debugging
- tools:
- <itemizedlist>
- <listitem><para>Whenever a shared state package is written
- out into the
- <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>,
- a corresponding <filename>.siginfo</filename> file is
- also written.
- This file contains a pickled Python database of all
- the Metadata that went into creating the hash for a
- given shared state package.
- Whenever a stamp is written into the stamp directory
- <link linkend='var-STAMP'><filename>STAMP</filename></link>,
- a corresponding <filename>.sigdata</filename> file
- is created that contains the same hash data that
- represented the executed task.
- </para></listitem>
- <listitem><para>You can use BitBake to dump out the
- signature construction information without executing
- tasks by using either of the following BitBake
- command-line options:
- <literallayout class='monospaced'>
- &dash;&dash;dump-signatures=<replaceable>SIGNATURE_HANDLER</replaceable>
- -S <replaceable>SIGNATURE_HANDLER</replaceable>
- </literallayout>
- <note>
- Two common values for
- <replaceable>SIGNATURE_HANDLER</replaceable> are
- "none" and "printdiff" to only dump the signature
- or to compare the dumped signature with the
- cached one, respectively.
- </note>
- Using BitBake with either of these options causes
- BitBake to dump out <filename>.sigdata</filename> files
- in the stamp directory for every task it would have
- executed instead of building the specified target
- package.
- </para></listitem>
- <listitem><para>There is a
- <filename>bitbake-diffsigs</filename> command that
- can process <filename>.sigdata</filename> and
- <filename>.siginfo</filename> files.
- If you specify one of these files, BitBake dumps out
- the dependency information in the file.
- If you specify two files, BitBake compares the two
- files and dumps out the differences between the two.
- This more easily helps answer the question of "What
- changed between X and Y?"</para></listitem>
- </itemizedlist>
+ Seeing what metadata went into creating the input signature
+ of a shared state (sstate) task can be a useful debugging aid.
+ This information is available in signature information
+ (<filename>siginfo</filename>) files in
+ <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>.
+ For information on how to view and interpret information in
+ <filename>siginfo</filename> files, see the
+ "<link linkend='usingpoky-viewing-task-variable-dependencies'>Viewing Task Variable Dependencies</link>"
+ section.
</para>
</section>
@@ -900,6 +979,222 @@
</section>
</section>
+<section id='automatically-added-runtime-dependencies'>
+ <title>Automatically Added Runtime Dependencies</title>
+
+ <para>
+ The OpenEmbedded build system automatically adds common types of
+ runtime dependencies between packages, which means that you do not
+ need to explicitly declare the packages using
+ <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>.
+ Three automatic mechanisms exist (<filename>shlibdeps</filename>,
+ <filename>pcdeps</filename>, and <filename>depchains</filename>) that
+ handle shared libraries, package configuration (pkg-config) modules,
+ and <filename>-dev</filename> and <filename>-dbg</filename> packages,
+ respectively.
+ For other types of runtime dependencies, you must manually declare
+ the dependencies.
+ <itemizedlist>
+ <listitem><para>
+ <filename>shlibdeps</filename>:
+ During the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task of each recipe, all shared libraries installed by the
+ recipe are located.
+ For each shared library, the package that contains the shared
+ library is registered as providing the shared library.
+ More specifically, the package is registered as providing the
+ <ulink url='https://en.wikipedia.org/wiki/Soname'>soname</ulink>
+ of the library.
+ The resulting shared-library-to-package mapping
+ is saved globally in
+ <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
+ by the
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
+ task.</para>
+
+ <para>Simultaneously, all executables and shared libraries
+ installed by the recipe are inspected to see what shared
+ libraries they link against.
+ For each shared library dependency that is found,
+ <filename>PKGDATA_DIR</filename> is queried to
+ see if some package (likely from a different recipe) contains
+ the shared library.
+ If such a package is found, a runtime dependency is added from
+ the package that depends on the shared library to the package
+ that contains the library.</para>
+
+ <para>The automatically added runtime dependency also includes
+ a version restriction.
+ This version restriction specifies that at least the current
+ version of the package that provides the shared library must be
+ used, as if
+ "<replaceable>package</replaceable> (>= <replaceable>version</replaceable>)"
+ had been added to
+ <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>.
+ This forces an upgrade of the package containing the shared
+ library when installing the package that depends on the
+ library, if needed.</para>
+
+ <para>If you want to avoid a package being registered as
+ providing a particular shared library (e.g. because the library
+ is for internal use only), then add the library to
+ <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
+ inside the package's recipe.
+ </para></listitem>
+ <listitem><para>
+ <filename>pcdeps</filename>:
+ During the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task of each recipe, all pkg-config modules
+ (<filename>*.pc</filename> files) installed by the recipe are
+ located.
+ For each module, the package that contains the module is
+ registered as providing the module.
+ The resulting module-to-package mapping is saved globally in
+ <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
+ by the
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
+ task.</para>
+
+ <para>Simultaneously, all pkg-config modules installed by the
+ recipe are inspected to see what other pkg-config modules they
+ depend on.
+ A module is seen as depending on another module if it contains
+ a "Requires:" line that specifies the other module.
+ For each module dependency,
+ <filename>PKGDATA_DIR</filename> is queried to see if some
+ package contains the module.
+ If such a package is found, a runtime dependency is added from
+ the package that depends on the module to the package that
+ contains the module.
+ <note>
+ The <filename>pcdeps</filename> mechanism most often infers
+ dependencies between <filename>-dev</filename> packages.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <filename>depchains</filename>:
+ If a package <filename>foo</filename> depends on a package
+ <filename>bar</filename>, then <filename>foo-dev</filename>
+ and <filename>foo-dbg</filename> are also made to depend on
+ <filename>bar-dev</filename> and <filename>bar-dbg</filename>,
+ respectively.
+ Taking the <filename>-dev</filename> packages as an example,
+ the <filename>bar-dev</filename> package might provide
+ headers and shared library symlinks needed by
+ <filename>foo-dev</filename>, which shows the need
+ for a dependency between the packages.</para>
+
+ <para>The dependencies added by <filename>depchains</filename>
+ are in the form of
+ <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>.
+ <note>
+ By default, <filename>foo-dev</filename> also has an
+ <filename>RDEPENDS</filename>-style dependency on
+ <filename>foo</filename>, because the default value of
+ <filename>RDEPENDS_${PN}-dev</filename> (set in
+ <filename>bitbake.conf</filename>) includes
+ "${PN}".
+ </note></para>
+
+ <para>To ensure that the dependency chain is never broken,
+ <filename>-dev</filename> and <filename>-dbg</filename>
+ packages are always generated by default, even if the packages
+ turn out to be empty.
+ See the
+ <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>
+ variable for more information.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ The <filename>do_package</filename> task depends on the
+ <link linkend='ref-tasks-packagedata'><filename>do_packagedata</filename></link>
+ task of each recipe in
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ through use of a
+ <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>deptask</filename></ulink><filename>]</filename>
+ declaration, which guarantees that the required
+ shared-library/module-to-package mapping information will be available
+ when needed as long as <filename>DEPENDS</filename> has been
+ correctly set.
+ </para>
+</section>
+
+<section id='fakeroot-and-pseudo'>
+ <title>Fakeroot and Pseudo</title>
+
+ <para>
+ Some tasks are easier to implement when allowed to perform certain
+ operations that are normally reserved for the root user.
+ For example, the
+ <link linkend='ref-tasks-install'><filename>do_install</filename></link>
+ task benefits from being able to set the UID and GID of installed files
+ to arbitrary values.
+ </para>
+
+ <para>
+ One approach to allowing tasks to perform root-only operations
+ would be to require BitBake to run as root.
+ However, this method is cumbersome and has security issues.
+ The approach that is actually used is to run tasks that benefit from
+ root privileges in a "fake" root environment.
+ Within this environment, the task and its child processes believe that
+ they are running as the root user, and see an internally consistent
+ view of the filesystem.
+ As long as generating the final output (e.g. a package or an image)
+ does not require root privileges, the fact that some earlier steps ran
+ in a fake root environment does not cause problems.
+ </para>
+
+ <para>
+ The capability to run tasks in a fake root environment is known as
+ "fakeroot", which is derived from the BitBake keyword/variable
+ flag that requests a fake root environment for a task.
+ In current versions of the OpenEmbedded build system,
+ the program that implements fakeroot is known as Pseudo.
+ </para>
+
+ <para>
+ Pseudo overrides system calls through the
+ <filename>LD_PRELOAD</filename> mechanism to give the
+ illusion of running as root.
+ To keep track of "fake" file ownership and permissions resulting from
+ operations that require root permissions, an sqlite3
+ database is used.
+ This database is stored in
+ <filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/pseudo/files.db</filename>
+ for individual recipes.
+ Storing the database in a file as opposed to in memory
+ gives persistence between tasks, and even between builds.
+ <note><title>Caution</title>
+ If you add your own task that manipulates the same files or
+ directories as a fakeroot task, then that task should also run
+ under fakeroot.
+ Otherwise, the task will not be able to run root-only operations,
+ and will not see the fake file ownership and permissions set by the
+ other task.
+ You should also add a dependency on
+ <filename>virtual/fakeroot-native:do_populate_sysroot</filename>,
+ giving the following:
+ <literallayout class='monospaced'>
+ fakeroot do_mytask () {
+ ...
+ }
+ do_mytask[depends] += "virtual/fakeroot-native:do_populate_sysroot"
+ </literallayout>
+ </note>
+ For more information, see the
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-FAKEROOT'><filename>FAKEROOT*</filename></ulink>
+ variables in the BitBake User Manual.
+ You can also reference this
+ <ulink url='http://www.ibm.com/developerworks/opensource/library/os-aapseudo1/index.html'>Pseudo</ulink>
+ article.
+ </para>
+</section>
+
<section id='x32'>
<title>x32</title>
diff --git a/import-layers/yocto-poky/documentation/ref-manual/usingpoky.xml b/import-layers/yocto-poky/documentation/ref-manual/usingpoky.xml
index a7bf32d45..f7345547c 100644
--- a/import-layers/yocto-poky/documentation/ref-manual/usingpoky.xml
+++ b/import-layers/yocto-poky/documentation/ref-manual/usingpoky.xml
@@ -119,8 +119,8 @@
</para>
</section>
-<section id='usingpoky-debugging'>
- <title>Debugging Build Failures</title>
+<section id='usingpoky-debugging-tools-and-techniques'>
+ <title>Debugging Tools and Techniques</title>
<para>
The exact method for debugging build failures depends on the nature of
@@ -163,23 +163,420 @@
<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual'>BitBake User Manual</ulink>.
</note>
+ <section id='usingpoky-debugging-viewing-logs-from-failed-tasks'>
+ <title>Viewing Logs from Failed Tasks</title>
- <section id='usingpoky-debugging-taskfailures'>
- <title>Task Failures</title>
+ <para>
+ You can find the log for a task in the file
+ <filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/temp/log.do_</filename><replaceable>taskname</replaceable>.
+ For example, the log for the
+ <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
+ task of the QEMU minimal image for the x86 machine
+ (<filename>qemux86</filename>) might be in
+ <filename>tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_compile</filename>.
+ To see the commands
+ <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink> ran
+ to generate a log, look at the corresponding
+ <filename>run.do_</filename><replaceable>taskname</replaceable>
+ file in the same directory.
+ </para>
+
+ <para>
+ <filename>log.do_</filename><replaceable>taskname</replaceable> and
+ <filename>run.do_</filename><replaceable>taskname</replaceable>
+ are actually symbolic links to
+ <filename>log.do_</filename><replaceable>taskname</replaceable><filename>.</filename><replaceable>pid</replaceable>
+ and
+ <filename>log.run_</filename><replaceable>taskname</replaceable><filename>.</filename><replaceable>pid</replaceable>,
+ where <replaceable>pid</replaceable> is the PID the task had when
+ it ran.
+ The symlinks always point to the files corresponding to the most
+ recent run.
+ </para>
+ </section>
+
+ <section id='usingpoky-debugging-viewing-variable-values'>
+ <title>Viewing Variable Values</title>
+ <para>
+ BitBake's <filename>-e</filename> option is used to display
+ variable values after parsing.
+ The following command displays the variable values after the
+ configuration files (i.e. <filename>local.conf</filename>,
+ <filename>bblayers.conf</filename>,
+ <filename>bitbake.conf</filename> and so forth) have been
+ parsed:
+ <literallayout class='monospaced'>
+ $ bitbake -e
+ </literallayout>
+ The following command displays variable values after a specific
+ recipe has been parsed.
+ The variables include those from the configuration as well:
+ <literallayout class='monospaced'>
+ $ bitbake -e recipename
+ </literallayout>
+ <note><para>
+ Each recipe has its own private set of variables (datastore).
+ Internally, after parsing the configuration, a copy of the
+ resulting datastore is made prior to parsing each recipe.
+ This copying implies that variables set in one recipe will
+ not be visible to other recipes.</para>
+
+ <para>Likewise, each task within a recipe gets a private
+ datastore based on the recipe datastore, which means that
+ variables set within one task will not be visible to
+ other tasks.</para>
+ </note>
+ </para>
+
+ <para>
+ In the output of <filename>bitbake -e</filename>, each variable is
+ preceded by a description of how the variable got its value,
+ including temporary values that were later overriden.
+ This description also includes variable flags (varflags) set on
+ the variable.
+ The output can be very helpful during debugging.
+ </para>
+
+ <para>
+ Variables that are exported to the environment are preceded by
+ <filename>export</filename> in the output of
+ <filename>bitbake -e</filename>.
+ See the following example:
+ <literallayout class='monospaced'>
+ export CC="i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/ulf/poky/build/tmp/sysroots/qemux86"
+ </literallayout>
+ </para>
+
+ <para>
+ In addition to variable values, the output of the
+ <filename>bitbake -e</filename> and
+ <filename>bitbake -e</filename>&nbsp;<replaceable>recipe</replaceable>
+ commands includes the following information:
+ <itemizedlist>
+ <listitem><para>
+ The output starts with a tree listing all configuration
+ files and classes included globally, recursively listing
+ the files they include or inherit in turn.
+ Much of the behavior of the OpenEmbedded build system
+ (including the behavior of the
+ <link linkend='normal-recipe-build-tasks'>normal recipe build tasks</link>)
+ is implemented in the
+ <link linkend='ref-classes-base'><filename>base</filename></link>
+ class and the classes it inherits, rather than being built
+ into BitBake itself.
+ </para></listitem>
+ <listitem><para>
+ After the variable values, all functions appear in the
+ output.
+ For shell functions, variables referenced within the
+ function body are expanded.
+ If a function has been modified using overrides or
+ using override-style operators like
+ <filename>_append</filename> and
+ <filename>_prepend</filename>, then the final assembled
+ function body appears in the output.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='viewing-package-information-with-oe-pkgdata-util'>
+ <title>Viewing Package Information with <filename>oe-pkgdata-util</filename></title>
+
+ <para>
+ You can use the <filename>oe-pkgdata-util</filename> command-line
+ utility to query
+ <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
+ and display various package-related information.
+ When you use the utility, you must use it to view information
+ on packages that have already been built.
+ </para>
+
+ <para>
+ Following are a few of the available
+ <filename>oe-pkgdata-util</filename> subcommands.
+ <note>
+ You can use the standard * and ? globbing wildcards as part of
+ package names and paths.
+ </note>
+ <itemizedlist>
+ <listitem><para>
+ <filename>oe-pkgdata-util list-pkgs [</filename><replaceable>pattern</replaceable><filename>]</filename>:
+ Lists all packages that have been built, optionally
+ limiting the match to packages that match
+ <replaceable>pattern</replaceable>.
+ </para></listitem>
+ <listitem><para>
+ <filename>oe-pkgdata-util list-pkg-files&nbsp;</filename><replaceable>package</replaceable><filename>&nbsp;...</filename>:
+ Lists the files and directories contained in the given
+ packages.
+ <note>
+ <para>
+ A different way to view the contents of a package is
+ to look at the
+ <filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/packages-split</filename>
+ directory of the recipe that generates the
+ package.
+ This directory is created by the
+ <link linkend='ref-tasks-package'><filename>do_package</filename></link>
+ task and has one subdirectory for each package the
+ recipe generates, which contains the files stored in
+ that package.</para>
+ <para>
+ If you want to inspect the
+ <filename>${WORKDIR}/packages-split</filename>
+ directory, make sure that
+ <link linkend='ref-classes-rm-work'><filename>rm_work</filename></link>
+ is not enabled when you build the recipe.
+ </para>
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <filename>oe-pkgdata-util find-path&nbsp;</filename><replaceable>path</replaceable><filename>&nbsp;...</filename>:
+ Lists the names of the packages that contain the given
+ paths.
+ For example, the following tells us that
+ <filename>/usr/share/man/man1/make.1</filename>
+ is contained in the <filename>make-doc</filename>
+ package:
+ <literallayout class='monospaced'>
+ $ oe-pkgdata-util find-path /usr/share/man/man1/make.1
+ make-doc: /usr/share/man/man1/make.1
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <filename>oe-pkgdata-util lookup-recipe&nbsp;</filename><replaceable>package</replaceable><filename>&nbsp;...</filename>:
+ Lists the name of the recipes that
+ produce the given packages.
+ </para></listitem>
+ </itemizedlist>
+ </para>
- <para>The log file for shell tasks is available in
- <filename>${WORKDIR}/temp/log.do_<replaceable>taskname</replaceable>.pid</filename>.
- For example, the <filename>do_compile</filename> task for the QEMU minimal image for the x86
- machine (<filename>qemux86</filename>) might be
- <filename>tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_compile.20830</filename>.
- To see what
- <ulink url='&YOCTO_DOCS_DEV_URL;#bitbake-term'>BitBake</ulink>
- runs to generate that log, look at the corresponding
- <filename>run.do_<replaceable>taskname</replaceable>.pid</filename> file located in the same directory.
+ <para>
+ For more information on the <filename>oe-pkgdata-util</filename>
+ command, use the help facility:
+ <literallayout class='monospaced'>
+ $ oe-pkgdata-util &dash;&dash;help
+ $ oe-pkgdata-util <replaceable>subcommand</replaceable> --help
+ </literallayout>
</para>
+ </section>
+
+ <section id='usingpoky-viewing-dependencies-between-recipes-and-tasks'>
+ <title>Viewing Dependencies Between Recipes and Tasks</title>
<para>
- Presently, the output from Python tasks is sent directly to the console.
+ Sometimes it can be hard to see why BitBake wants to build other
+ recipes before the one you have specified.
+ Dependency information can help you understand why a recipe is
+ built.
+ </para>
+
+ <para>
+ To generate dependency information for a recipe, run the following
+ command:
+ <literallayout class='monospaced'>
+ $ bitbake -g <replaceable>recipename</replaceable>
+ </literallayout>
+ This command writes the following files in the current directory:
+ <itemizedlist>
+ <listitem><para>
+ <filename>pn-buildlist</filename>: A list of
+ recipes/targets involved in building
+ <replaceable>recipename</replaceable>.
+ "Involved" here means that at least one task from the
+ recipe needs to run when building
+ <replaceable>recipename</replaceable> from scratch.
+ Targets that are in
+ <link linkend='var-ASSUME_PROVIDED'><filename>ASSUME_PROVIDED</filename></link>
+ are not listed.
+ </para></listitem>
+ <listitem><para>
+ <filename>pn-depends.dot</filename>: A graph showing
+ dependencies between build-time targets (recipes).
+ </para></listitem>
+ <listitem><para>
+ <filename>package-depends.dot</filename>: A graph showing
+ known dependencies between runtime targets.
+ </para></listitem>
+ <listitem><para>
+ <filename>task-depends.dot</filename>: A graph showing
+ dependencies between tasks.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ The graphs are in
+ <ulink url='https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29'>DOT</ulink>
+ format and can be converted to images (e.g. using the
+ <filename>dot</filename> tool from
+ <ulink url='http://www.graphviz.org/'>Graphviz</ulink>).
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ DOT files use a plain text format.
+ The graphs generated using the
+ <filename>bitbake -g</filename> command are often so
+ large as to be difficult to read without special
+ pruning (e.g. with Bitbake's
+ <filename>-I</filename> option) and processing.
+ Despite the form and size of the graphs, the
+ corresponding <filename>.dot</filename> files can still
+ be possible to read and provide useful information.
+ </para>
+
+ <para>As an example, the
+ <filename>task-depends.dot</filename> file contains
+ lines such as the following:
+ <literallayout class='monospaced'>
+ "libxslt.do_configure" -> "libxml2.do_populate_sysroot"
+ </literallayout>
+ The above example line reveals that the
+ <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
+ task in <filename>libxslt</filename> depends on the
+ <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
+ task in <filename>libxml2</filename>, which is a normal
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
+ dependency between the two recipes.
+ </para></listitem>
+ <listitem><para>
+ For an example of how <filename>.dot</filename> files
+ can be processed, see the
+ <filename>scripts/contrib/graph-tool</filename> Python
+ script, which finds and displays paths between graph
+ nodes.
+ </para></listitem>
+ </itemizedlist>
+ </note>
+ </para>
+
+ <para>
+ You can use a different method to view dependency information
+ by using the following command:
+ <literallayout class='monospaced'>
+ $ bitbake -g -u depexp <replaceable>recipename</replaceable>
+ </literallayout>
+ This command displays a GUI window from which you can view
+ build-time and runtime dependencies for the recipes involved in
+ building <replaceable>recipename</replaceable>.
+ </para>
+ </section>
+
+ <section id='usingpoky-viewing-task-variable-dependencies'>
+ <title>Viewing Task Variable Dependencies</title>
+
+ <para>
+ As mentioned in the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#checksums'>Checksums (Signatures)</ulink>"
+ section of the BitBake User Manual, BitBake tries to automatically
+ determine what variables a task depends on so that it can rerun
+ the task if any values of the variables change.
+ This determination is usually reliable.
+ However, if you do things like construct variable names at runtime,
+ then you might have to manually declare dependencies on those
+ variables using <filename>vardeps</filename> as described in the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'>Variable Flags</ulink>"
+ section of the BitBake User Manual.
+ </para>
+
+ <para>
+ If you are unsure whether a variable dependency is being picked up
+ automatically for a given task, you can list the variable
+ dependencies BitBake has determined by doing the following:
+ <orderedlist>
+ <listitem><para>
+ Build the recipe containing the task:
+ <literallayout class='monospaced'>
+ $ bitbake <replaceable>recipename</replaceable>
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Inside the
+ <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>
+ directory, find the signature data
+ (<filename>sigdata</filename>) file that corresponds to the
+ task.
+ The <filename>sigdata</filename> files contain a pickled
+ Python database of all the metadata that went into creating
+ the input checksum for the task.
+ As an example, for the
+ <link linkend='ref-tasks-fetch'><filename>do_fetch</filename></link>
+ task of the <filename>db</filename> recipe, the
+ <filename>sigdata</filename> file might be found in the
+ following location:
+ <literallayout class='monospaced'>
+ ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
+ </literallayout>
+ For tasks that are accelerated through the shared state
+ (<link linkend='shared-state-cache'>sstate</link>)
+ cache, an additional <filename>siginfo</filename> file is
+ written into
+ <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>
+ along with the cached task output.
+ The <filename>siginfo</filename> files contain exactly the
+ same information as <filename>sigdata</filename> files.
+ </para></listitem>
+ <listitem><para>
+ Run <filename>bitbake-dumpsig</filename> on the
+ <filename>sigdata</filename> or
+ <filename>siginfo</filename> file.
+ Here is an example:
+ <literallayout class='monospaced'>
+ $ bitbake-dumpsig ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
+ </literallayout>
+ In the output of the above command, you will find a line
+ like the following, which lists all the (inferred) variable
+ dependencies for the task.
+ This list also includes indirect dependencies from
+ variables depending on other variables, recursively.
+ <literallayout class='monospaced'>
+ Task dependencies: ['PV', 'SRCREV', 'SRC_URI', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]', 'base_do_fetch']
+ </literallayout>
+ <note>
+ Functions (e.g. <filename>base_do_fetch</filename>)
+ also count as variable dependencies.
+ These functions in turn depend on the variables they
+ reference.
+ </note>
+ The output of <filename>bitbake-dumpsig</filename> also includes
+ the value each variable had, a list of dependencies for each
+ variable, and
+ <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_HASHBASE_WHITELIST'><filename>BB_HASHBASE_WHITELIST</filename></ulink>
+ information.
+ </para></listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ There is also a <filename>bitbake-diffsigs</filename> command for
+ comparing two <filename>siginfo</filename> or
+ <filename>sigdata</filename> files.
+ This command can be helpful when trying to figure out what changed
+ between two versions of a task.
+ If you call <filename>bitbake-diffsigs</filename> with just one
+ file, the command behaves like
+ <filename>bitbake-dumpsig</filename>.
+ </para>
+
+ <para>
+ You can also use BitBake to dump out the signature construction
+ information without executing tasks by using either of the
+ following BitBake command-line options:
+ <literallayout class='monospaced'>
+ &dash;&dash;dump-signatures=<replaceable>SIGNATURE_HANDLER</replaceable>
+ -S <replaceable>SIGNATURE_HANDLER</replaceable>
+ </literallayout>
+ <note>
+ Two common values for
+ <replaceable>SIGNATURE_HANDLER</replaceable> are "none" and
+ "printdiff", which dump only the signature or compare the
+ dumped signature with the cached one, respectively.
+ </note>
+ Using BitBake with either of these options causes BitBake to dump
+ out <filename>sigdata</filename> files in the
+ <filename>stamps</filename> directory for every task it would have
+ executed instead of building the specified target package.
</para>
</section>
@@ -187,7 +584,7 @@
<title>Running Specific Tasks</title>
<para>
- Any given package consists of a set of tasks.
+ Any given recipe consists of a set of tasks.
The standard BitBake behavior in most cases is:
<filename>do_fetch</filename>,
<filename>do_unpack</filename>,
@@ -209,15 +606,39 @@
</para>
<para>
- If you wish to rerun a task, use the <filename>-f</filename> force
- option.
- For example, the following sequence forces recompilation after
- changing files in the work directory.
+ The <filename>-c</filename> option respects task dependencies,
+ which means that all other tasks (including tasks from other
+ recipes) that the specified task depends on will be run before the
+ task.
+ Even when you manually specify a task to run with
+ <filename>-c</filename>, BitBake will only run the task if it
+ considers it "out of date".
+ See the
+ "<link linkend='stamp-files-and-the-rerunning-of-tasks'>Stamp Files and the Rerunning of Tasks</link>"
+ section for how BitBake determines whether a task is "out of date".
+ </para>
+
+ <para>
+ If you want to force an up-to-date task to be rerun (e.g.
+ because you made manual modifications to the recipe's
+ <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
+ that you want to try out), then you can use the
+ <filename>-f</filename> option.
+ <note>
+ The reason <filename>-f</filename> is never required when
+ running the
+ <link linkend='ref-tasks-devshell'><filename>do_devshell</filename></link>
+ task is because the
+ <filename>[</filename><ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>nostamp</filename></ulink><filename>]</filename>
+ variable flag is already set for the task.
+ </note>
+ The following example shows one way you can use the
+ <filename>-f</filename> option:
<literallayout class='monospaced'>
$ bitbake matchbox-desktop
.
.
- <replaceable>make some changes to the source code in the work directory</replaceable>
+ make some changes to the source code in the work directory
.
.
$ bitbake matchbox-desktop -c compile -f
@@ -236,6 +657,50 @@
</para>
<para>
+ Another, shorter way to rerun a task and all
+ <link linkend='normal-recipe-build-tasks'>normal recipe build tasks</link>
+ that depend on it is to use the <filename>-C</filename>
+ option.
+ <note>
+ This option is upper-cased and is separate from the
+ <filename>-c</filename> option, which is lower-cased.
+ </note>
+ Using this option invalidates the given task and then runs the
+ <link linkend='ref-tasks-build'><filename>do_build</filename></link>
+ task, which is the default task if no task is given, and the
+ tasks on which it depends.
+ You could replace the final two commands in the previous example
+ with the following single command:
+ <literallayout class='monospaced'>
+ $ bitbake matchbox-desktop -C compile
+ </literallayout>
+ Internally, the <filename>-f</filename> and
+ <filename>-C</filename> options work by tainting (modifying) the
+ input checksum of the specified task.
+ This tainting indirectly causes the task and its
+ dependent tasks to be rerun through the normal task dependency
+ mechanisms.
+ <note>
+ BitBake explicitly keeps track of which tasks have been
+ tainted in this fashion, and will print warnings such as the
+ following for builds involving such tasks:
+ <literallayout class='monospaced'>
+ WARNING: /home/ulf/poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.1.bb.do_compile is tainted from a forced run
+ </literallayout>
+ The purpose of the warning is to let you know that the work
+ directory and build output might not be in the clean state they
+ would be in for a "normal" build, depending on what actions
+ you took.
+ To get rid of such warnings, you can remove the work directory
+ and rebuild the recipe, as follows:
+ <literallayout class='monospaced'>
+ $ bitbake matchbox-desktop -c clean
+ $ bitbake matchbox-desktop
+ </literallayout>
+ </note>
+ </para>
+
+ <para>
You can view a list of tasks in a given package by running the
<filename>do_listtasks</filename> task as follows:
<literallayout class='monospaced'>
@@ -246,24 +711,77 @@
</para>
</section>
- <section id='usingpoky-debugging-dependencies'>
- <title>Dependency Graphs</title>
+ <section id='checking-for-missing-build-time-dependencies'>
+ <title>Checking for Missing Build-Time Dependencies</title>
+
+ <para>
+ A recipe might build successfully even though some of its
+ build-time dependencies are missing from
+ <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
+ Following are the two most common ways in which that can happen:
+ <itemizedlist>
+ <listitem><para>
+ The build-time dependency just happens to already exist in
+ the staging sysroot
+ (<link linkend='var-STAGING_DIR_HOST'><filename>STAGING_DIR_HOST</filename></link>)
+ by the time the recipe is built.
+ This situation occurs when the build-time dependency is
+ built earlier during recipe processing.
+ </para></listitem>
+ <listitem><para>
+ The component built by the recipe conditionally enables
+ functionality depending on whether it can find the
+ build-time dependency in the staging sysroot.
+ If the build-time dependency is missing, the corresponding
+ functionality is disabled.
+ This condition is known as a "floating dependency".
+ </para></listitem>
+ </itemizedlist>
+ </para>
<para>
- Sometimes it can be hard to see why BitBake wants to build
- other packages before building a given package you have specified.
- The <filename>bitbake -g <replaceable>targetname</replaceable></filename> command
- creates the <filename>pn-buildlist</filename>,
- <filename>pn-depends.dot</filename>,
- <filename>package-depends.dot</filename>, and
- <filename>task-depends.dot</filename> files in the current
- directory.
- These files show what will be built and the package and task
- dependencies, which are useful for debugging problems.
- You can use the
- <filename>bitbake -g -u depexp <replaceable>targetname</replaceable></filename>
- command to display the results in a more human-readable form.
+ Because dealing with the second case is more complex, focus will
+ be on the first case.
+ The
+ <link linkend='ref-classes-insane'><filename>build-deps</filename></link>
+ QA check checks that every library the component linked against is
+ declared as a build-time dependency.
+ If that is not the case, then the first situation described in the
+ previous list exists, and <filename>build-deps</filename> reports
+ a missing build-time dependency.
</para>
+
+ <para>
+ Another, more manual, way to check a recipe for missing build-time
+ dependencies of the first type is to build with an empty staging
+ sysroot.
+ This method can also find missing build-time dependencies
+ that are not in the form of libraries, which the
+ <filename>build-deps</filename> QA check is unable to find.
+ </para>
+
+ <para>
+ An easy way to empty the staging sysroots is to simply remove
+ <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>,
+ which is usually
+ <filename>${</filename><link linkend='var-BUILDDIR'><filename>BUILDDIR</filename></link><filename>}/tmp</filename>,
+ as it includes the staging sysroots.
+ Another, faster method to empty the staging sysroots is to use the
+ <filename>scripts/wipe-sysroot</filename> script,
+ which removes just the staging sysroots and keeps everything else
+ in <filename>TMPDIR</filename>.
+ <note>
+ The <filename>scripts/</filename> directory appears in
+ <filename>PATH</filename> after running the build environment
+ initialization script (i.e.
+ <link linkend='structure-core-script'><filename>oe-init-build-env</filename></link>
+ or
+ <link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>),
+ which results in the ability to to run
+ <filename>wipe-sysroot</filename> immediately.
+ </note>
+ </para>
+
</section>
<section id='usingpoky-debugging-bitbake'>
@@ -336,48 +854,76 @@
</para>
</section>
- <section id='usingpoky-debugging-variables'>
- <title>Variables</title>
- <para>
- You can use the <filename>-e</filename> BitBake option to
- display the parsing environment for a configuration.
- The following displays the general parsing environment:
- <literallayout class='monospaced'>
- $ bitbake -e
- </literallayout>
- This next example shows the parsing environment for a specific
- recipe:
- <literallayout class='monospaced'>
- $ bitbake -e <replaceable>recipename</replaceable>
- </literallayout>
- </para>
- </section>
-
<section id='recipe-logging-mechanisms'>
<title>Recipe Logging Mechanisms</title>
<para>
- Best practices exist while writing recipes that both log build progress and
- act on build conditions such as warnings and errors.
- Both Python and Bash language bindings exist for the logging mechanism:
+ The Yocto Project provides several logging functions for producing
+ debugging output and reporting errors and warnings.
+ For Python functions, the following logging functions exist.
+ All of these functions log to
+ <filename>${T}/log.do_</filename><replaceable>task</replaceable>,
+ and can also log to standard output (stdout) with the right
+ settings:
<itemizedlist>
- <listitem><para><emphasis>Python:</emphasis> For Python functions, BitBake
- supports several loglevels: <filename>bb.fatal</filename>,
- <filename>bb.error</filename>, <filename>bb.warn</filename>,
- <filename>bb.note</filename>, <filename>bb.plain</filename>,
- and <filename>bb.debug</filename>.</para></listitem>
- <listitem><para><emphasis>Bash:</emphasis> For Bash functions, the same set
- of loglevels exist and are accessed with a similar syntax:
- <filename>bbfatal</filename>, <filename>bberror</filename>,
- <filename>bbwarn</filename>, <filename>bbnote</filename>,
- <filename>bbplain</filename>, and <filename>bbdebug</filename>.</para></listitem>
+ <listitem><para>
+ <filename>bb.plain(</filename><replaceable>msg</replaceable><filename>)</filename>:
+ Writes <replaceable>msg</replaceable> as is to the log while
+ also logging to stdout.
+ </para></listitem>
+ <listitem><para>
+ <filename>bb.note(</filename><replaceable>msg</replaceable><filename>)</filename>:
+ Writes "NOTE: <replaceable>msg</replaceable>" to the log.
+ Also logs to stdout if BitBake is called with "-v".
+ </para></listitem>
+ <listitem><para>
+ <filename>bb.debug(</filename><replaceable>level</replaceable><filename>,&nbsp;</filename><replaceable>msg</replaceable><filename>)</filename>:
+ Writes "DEBUG: <replaceable>msg</replaceable>" to the log.
+ Also logs to stdout if the log level is greater than or
+ equal to <replaceable>level</replaceable>.
+ See the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#usage-and-syntax'>-D</ulink>"
+ option in the BitBake User Manual for more information.
+ </para></listitem>
+ <listitem><para>
+ <filename>bb.warn(</filename><replaceable>msg</replaceable><filename>)</filename>:
+ Writes "WARNING: <replaceable>msg</replaceable>" to the log
+ while also logging to stdout.
+ </para></listitem>
+ <listitem><para>
+ <filename>bb.error(</filename><replaceable>msg</replaceable><filename>)</filename>:
+ Writes "ERROR: <replaceable>msg</replaceable>" to the log
+ while also logging to stdout.
+ <note>
+ Calling this function does not cause the task to fail.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <filename>bb.fatal(</filename><replaceable>msg</replaceable><filename>)</filename>:
+ This logging function is similar to
+ <filename>bb.error(</filename><replaceable>msg</replaceable><filename>)</filename>
+ but also causes the calling task to fail.
+ <note>
+ <filename>bb.fatal()</filename> raises an exception,
+ which means you do not need to put a "return"
+ statement after the function.
+ </note>
+ </para></listitem>
</itemizedlist>
</para>
<para>
- For guidance on how logging is handled in both Python and Bash recipes, see the
- <filename>logging.bbclass</filename> file in the
+ The same logging functions are also available in shell functions,
+ under the names
+ <filename>bbplain</filename>, <filename>bbnote</filename>,
+ <filename>bbdebug</filename>, <filename>bbwarn</filename>,
+ <filename>bberror</filename>, and <filename>bbfatal</filename>.
+ The
+ <link linkend='ref-classes-logging'><filename>logging</filename></link>
+ class implements these functions.
+ See that class in the
<filename>meta/classes</filename> folder of the
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
+ for information.
</para>
<section id='logging-with-python'>
@@ -456,18 +1002,92 @@
<para>
Here are some other tips that you might find useful:
<itemizedlist>
- <listitem><para>When adding new packages, it is worth watching for
- undesirable items making their way into compiler command lines.
- For example, you do not want references to local system files like
- <filename>/usr/lib/</filename> or <filename>/usr/include/</filename>.
+ <listitem><para>
+ When adding new packages, it is worth watching for
+ undesirable items making their way into compiler command
+ lines.
+ For example, you do not want references to local system
+ files like
+ <filename>/usr/lib/</filename> or
+ <filename>/usr/include/</filename>.
</para></listitem>
- <listitem><para>If you want to remove the <filename>psplash</filename>
+ <listitem><para>
+ If you want to remove the <filename>psplash</filename>
boot splashscreen,
- add <filename>psplash=false</filename> to the kernel command line.
+ add <filename>psplash=false</filename> to the kernel
+ command line.
Doing so prevents <filename>psplash</filename> from loading
and thus allows you to see the console.
It is also possible to switch out of the splashscreen by
- switching the virtual console (e.g. Fn+Left or Fn+Right on a Zaurus).
+ switching the virtual console (e.g. Fn+Left or Fn+Right
+ on a Zaurus).
+ </para></listitem>
+ <listitem><para>
+ Removing
+ <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
+ (usually <filename>tmp/</filename>, within the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>)
+ can often fix temporary build issues.
+ Removing <filename>TMPDIR</filename> is usually a
+ relatively cheap operation, because task output will be
+ cached in
+ <link linkend='var-SSTATE_DIR'><filename>SSTATE_DIR</filename></link>
+ (usually <filename>sstate-cache/</filename>, which is
+ also in the Build Directory).
+ <note>
+ Removing <filename>TMPDIR</filename> might be a
+ workaround rather than a fix.
+ Consequently, trying to determine the underlying cause
+ of an issue before removing the directory is a good
+ idea.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ Understanding how a feature is used in practice within
+ existing recipes can be very helpful.
+ It is recommended that you configure some method that
+ allows you to quickly search through files.</para>
+
+ <para>Using GNU Grep, you can use the following shell
+ function to recursively search through common
+ recipe-related files, skipping binary files,
+ <filename>.git</filename> directories, and the
+ Build Directory (assuming its name starts with
+ "build"):
+ <literallayout class='monospaced'>
+ g() {
+ grep -Ir \
+ --exclude-dir=.git \
+ --exclude-dir='build*' \
+ --include='*.bb*' \
+ --include='*.inc*' \
+ --include='*.conf*' \
+ --include='*.py*' \
+ "$@"
+ }
+ </literallayout>
+ Following are some usage examples:
+ <literallayout class='monospaced'>
+ $ g FOO # Search recursively for "FOO"
+ $ g -i foo # Search recursively for "foo", ignoring case
+ $ g -w FOO # Search recursively for "FOO" as a word, ignoring e.g. "FOOBAR"
+ </literallayout>
+ If figuring out how some feature works requires a lot of
+ searching, it might indicate that the documentation should
+ be extended or improved.
+ In such cases, consider filing a documentation bug using
+ the Yocto Project implementation of
+ <ulink url='https://bugzilla.yoctoproject.org/'>Bugzilla</ulink>.
+ For general information on how to submit a bug against
+ the Yocto Project, see the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#tracking-bugs'>Tracking Bugs</ulink>"
+ section in the Yocto Project Development Manual.
+ <note>
+ The manuals might not be the right place to document
+ variables that are purely internal and have a limited
+ scope (e.g. internal variables used to implement a
+ single <filename>.bbclass</filename> file).
+ </note>
</para></listitem>
</itemizedlist>
</para>
@@ -951,6 +1571,19 @@
* PR changed from "r0" to "r1"
* PV changed from "0.1.10" to "0.1.12"
</literallayout>
+ <note>
+ The <filename>buildhistory-diff</filename> tool requires
+ the <filename>GitPython</filename> package.
+ Be sure to install it using Pip3 as follows:
+ <literallayout class='monospaced'>
+ $ pip3 install GitPython --user
+ </literallayout>
+ Alternatively, you can install
+ <filename>python3-git</filename> using the appropriate
+ distribution package manager (e.g.
+ <filename>apt-get</filename>, <filename>dnf</filename>, or
+ <filename>zipper</filename>).
+ </note>
</para>
<para>
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-add-flow.png b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-add-flow.png
index c09e60e35..985ac331f 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-add-flow.png
+++ b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-add-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-modify-flow.png b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-modify-flow.png
index cd06c0181..fd684ffbe 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-modify-flow.png
+++ b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-modify-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-upgrade-flow.png b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-upgrade-flow.png
new file mode 100644
index 000000000..65474dad0
--- /dev/null
+++ b/import-layers/yocto-poky/documentation/sdk-manual/figures/sdk-devtool-upgrade-flow.png
Binary files differ
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-customizing.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-customizing.xml
index 79326077f..e8a8b8cc9 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-customizing.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-customizing.xml
@@ -381,6 +381,19 @@
section for more information.
</note>
</para>
+
+ <para>
+ You can explicitly control whether or not to include the toolchain
+ when you build an SDK by setting the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_INCLUDE_TOOLCHAIN'><filename>SDK_INCLUDE_TOOLCHAIN</filename></ulink>
+ variable to "1".
+ In particular, it is useful to include the toolchain when you
+ have set <filename>SDK_EXT_TYPE</filename> to
+ "minimal", which by default, excludes the toolchain.
+ Also, it is helpful if you are building a small SDK for use with
+ an IDE, such as Eclipse, or some other tool where you do not want
+ to take extra steps to install a toolchain.
+ </para>
</section>
</appendix>
<!--
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-mars.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-mars.xml
new file mode 100644
index 000000000..144e0720a
--- /dev/null
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-mars.xml
@@ -0,0 +1,871 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
+
+<appendix id='sdk-appendix-mars'>
+ <title>Using Eclipse Mars</title>
+
+ <para>
+ This release of the Yocto Project supports both the Neon and Mars
+ versions of the Eclipse IDE.
+ This appendix presents information that describes how to obtain and
+ configure the Mars version of Eclipse.
+ It also provides a basic project example that you can work through
+ from start to finish.
+ For general information on using the Eclipse IDE and the Yocto
+ Project Eclipse Plug-In, see the
+ "<link linkend='sdk-developing-applications-using-eclipse'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
+ section.
+ </para>
+
+ <section id='mars-setting-up-the-eclipse-ide'>
+ <title>Setting Up the Mars Version of the Eclipse IDE</title>
+
+ <para>
+ To develop within the Eclipse IDE, you need to do the following:
+ <orderedlist>
+ <listitem><para>Install the Mars version of the Eclipse
+ IDE.</para></listitem>
+ <listitem><para>Configure the Eclipse IDE.
+ </para></listitem>
+ <listitem><para>Install the Eclipse Yocto Plug-in.
+ </para></listitem>
+ <listitem><para>Configure the Eclipse Yocto Plug-in.
+ </para></listitem>
+ </orderedlist>
+ <note>
+ Do not install Eclipse from your distribution's package
+ repository.
+ Be sure to install Eclipse from the official Eclipse
+ download site as directed in the next section.
+ </note>
+ </para>
+
+ <section id='mars-installing-eclipse-ide'>
+ <title>Installing the Mars Eclipse IDE</title>
+
+ <para>
+ Follow these steps to locate, install, and configure
+ Mars Eclipse:
+ <orderedlist>
+ <listitem><para><emphasis>Locate the Mars Download:</emphasis>
+ Open a browser and go to
+ <ulink url='http://www.eclipse.org/mars/'>http://www.eclipse.org/mars/</ulink>.
+ </para></listitem>
+ <listitem><para><emphasis>Download the Tarball:</emphasis>
+ Click the "Download" button and then use the "Linux
+ for Eclipse IDE for C++ Developers"
+ appropriate for your development system
+ (e.g.
+ <ulink url='http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/mars/2/eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz'>64-bit under Linux for Eclipse IDE for C++ Developers</ulink>
+ if your development system is a Linux 64-bit machine.
+ </para></listitem>
+ <listitem><para><emphasis>Unpack the Tarball:</emphasis>
+ Move to a clean directory and unpack the tarball.
+ Here is an example:
+ <literallayout class='monospaced'>
+ $ cd ~
+ $ tar -xzvf ~/Downloads/eclipse-cpp-mars-2-linux-gtk-x86_64.tar.gz
+ </literallayout>
+ Everything unpacks into a folder named "Eclipse".
+ </para></listitem>
+ <listitem><para><emphasis>Launch Eclipse:</emphasis>
+ Double click the "Eclipse" file in the folder to
+ launch Eclipse.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-configuring-the-mars-eclipse-ide'>
+ <title>Configuring the Mars Eclipse IDE</title>
+
+ <para>
+ Follow these steps to configure the Mars Eclipse IDE.
+ <note>
+ Depending on how you installed Eclipse and what you have
+ already done, some of the options will not appear.
+ If you cannot find an option as directed by the manual,
+ it has already been installed.
+ </note>
+ <orderedlist>
+ <listitem><para>Be sure Eclipse is running and
+ you are in your workbench.
+ </para></listitem>
+ <listitem><para>Select "Install New Software" from
+ the "Help" pull-down menu.
+ </para></listitem>
+ <listitem><para>Select
+ "Mars - http://download.eclipse.org/releases/mars"
+ from the "Work with:" pull-down menu.
+ </para></listitem>
+ <listitem><para>Expand the box next to
+ "Linux Tools" and select "C/C++ Remote
+ (Over TCF/TE) Run/Debug Launcher" and
+ "TM Terminal".
+ </para></listitem>
+ <listitem><para>Expand the box next to "Mobile and
+ Device Development" and select the following
+ boxes:
+ <literallayout class='monospaced'>
+ C/C++ Remote (Over TCF/TE) Run/Debug Launcher
+ Remote System Explorer User Actions
+ TM Terminal
+ TCF Remote System Explorer add-in
+ TCF Target Explorer
+ </literallayout>
+ </para></listitem>
+ <listitem><para>Expand the box next to
+ "Programming Languages" and select the
+ following boxes:
+ <literallayout class='monospaced'>
+ C/C++ Autotools Support
+ C/C++ Development Tools SDK
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Complete the installation by clicking through
+ appropriate "Next" and "Finish" buttons.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-installing-the-eclipse-yocto-plug-in'>
+ <title>Installing or Accessing the Mars Eclipse Yocto Plug-in</title>
+
+ <para>
+ You can install the Eclipse Yocto Plug-in into the Eclipse
+ IDE one of two ways: use the Yocto Project's Eclipse
+ Update site to install the pre-built plug-in or build and
+ install the plug-in from the latest source code.
+ </para>
+
+ <section id='mars-new-software'>
+ <title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
+
+ <para>
+ To install the Mars Eclipse Yocto Plug-in from the update
+ site, follow these steps:
+ <orderedlist>
+ <listitem><para>Start up the Eclipse IDE.
+ </para></listitem>
+ <listitem><para>In Eclipse, select "Install New
+ Software" from the "Help" menu.
+ </para></listitem>
+ <listitem><para>Click "Add..." in the "Work with:"
+ area.
+ </para></listitem>
+ <listitem><para>Enter
+ <filename>&ECLIPSE_DL_PLUGIN_URL;/mars</filename>
+ in the URL field and provide a meaningful name
+ in the "Name" field.
+ </para></listitem>
+ <listitem><para>Click "OK" to have the entry added
+ to the "Work with:" drop-down list.
+ </para></listitem>
+ <listitem><para>Select the entry for the plug-in
+ from the "Work with:" drop-down list.
+ </para></listitem>
+ <listitem><para>Check the boxes next to the following:
+ <literallayout class='monospaced'>
+ Yocto Project SDK Plug-in
+ Yocto Project Documentation plug-in
+ </literallayout>
+ </para></listitem>
+ <listitem><para>Complete the remaining software
+ installation steps and then restart the Eclipse
+ IDE to finish the installation of the plug-in.
+ <note>
+ You can click "OK" when prompted about
+ installing software that contains unsigned
+ content.
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-zip-file-method'>
+ <title>Installing the Plug-in Using the Latest Source Code</title>
+
+ <para>
+ To install the Mars Eclipse Yocto Plug-in from the latest
+ source code, follow these steps:
+ <orderedlist>
+ <listitem><para>Be sure your development system
+ has JDK 1.7+
+ </para></listitem>
+ <listitem><para>install X11-related packages:
+ <literallayout class='monospaced'>
+ $ sudo apt-get install xauth
+ </literallayout>
+ </para></listitem>
+ <listitem><para>In a new terminal shell, create a Git
+ repository with:
+ <literallayout class='monospaced'>
+ $ cd ~
+ $ git clone git://git.yoctoproject.org/eclipse-poky
+ </literallayout>
+ </para></listitem>
+ <listitem><para>Use Git to checkout the correct
+ tag:
+ <literallayout class='monospaced'>
+ $ cd ~/eclipse-poky
+ $ git checkout mars/yocto-&DISTRO;
+ </literallayout>
+ This puts you in a detached HEAD state, which
+ is fine since you are only going to be building
+ and not developing.
+ </para></listitem>
+ <listitem><para>Change to the
+ <filename>scripts</filename>
+ directory within the Git repository:
+ <literallayout class='monospaced'>
+ $ cd scripts
+ </literallayout>
+ </para></listitem>
+ <listitem><para>Set up the local build environment
+ by running the setup script:
+ <literallayout class='monospaced'>
+ $ ./setup.sh
+ </literallayout>
+ When the script finishes execution,
+ it prompts you with instructions on how to run
+ the <filename>build.sh</filename> script, which
+ is also in the <filename>scripts</filename>
+ directory of the Git repository created
+ earlier.
+ </para></listitem>
+ <listitem><para>Run the <filename>build.sh</filename>
+ script as directed.
+ Be sure to provide the tag name, documentation
+ branch, and a release name.</para>
+ <para>
+ Following is an example:
+ <literallayout class='monospaced'>
+ $ ECLIPSE_HOME=/home/scottrif/eclipse-poky/scripts/eclipse ./build.sh -l mars/yocto-&DISTRO; master yocto-&DISTRO; 2>&amp;1 | tee build.log
+ </literallayout>
+ The previous example command adds the tag you
+ need for <filename>mars/yocto-&DISTRO;</filename>
+ to <filename>HEAD</filename>, then tells the
+ build script to use the local (-l) Git checkout
+ for the build.
+ After running the script, the file
+ <filename>org.yocto.sdk-</filename><replaceable>release</replaceable><filename>-</filename><replaceable>date</replaceable><filename>-archive.zip</filename>
+ is in the current directory.
+ </para></listitem>
+ <listitem><para>If necessary, start the Eclipse IDE
+ and be sure you are in the Workbench.
+ </para></listitem>
+ <listitem><para>Select "Install New Software" from
+ the "Help" pull-down menu.
+ </para></listitem>
+ <listitem><para>Click "Add".
+ </para></listitem>
+ <listitem><para>Provide anything you want in the
+ "Name" field.
+ </para></listitem>
+ <listitem><para>Click "Archive" and browse to the
+ ZIP file you built earlier.
+ This ZIP file should not be "unzipped", and must
+ be the <filename>*archive.zip</filename> file
+ created by running the
+ <filename>build.sh</filename> script.
+ </para></listitem>
+ <listitem><para>Click the "OK" button.
+ </para></listitem>
+ <listitem><para>Check the boxes that appear in
+ the installation window to install the
+ following:
+ <literallayout class='monospaced'>
+ Yocto Project SDK Plug-in
+ Yocto Project Documentation plug-in
+ </literallayout>
+ </para></listitem>
+ <listitem><para>Finish the installation by clicking
+ through the appropriate buttons.
+ You can click "OK" when prompted about
+ installing software that contains unsigned
+ content.
+ </para></listitem>
+ <listitem><para>Restart the Eclipse IDE if
+ necessary.
+ </para></listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ At this point you should be able to configure the
+ Eclipse Yocto Plug-in as described in the
+ "<link linkend='mars-configuring-the-eclipse-yocto-plug-in'>Configuring the Mars Eclipse Yocto Plug-in</link>"
+ section.</para>
+ </section>
+ </section>
+
+ <section id='mars-configuring-the-eclipse-yocto-plug-in'>
+ <title>Configuring the Mars Eclipse Yocto Plug-in</title>
+
+ <para>
+ Configuring the Mars Eclipse Yocto Plug-in involves setting the
+ Cross Compiler options and the Target options.
+ The configurations you choose become the default settings
+ for all projects.
+ You do have opportunities to change them later when
+ you configure the project (see the following section).
+ </para>
+
+ <para>
+ To start, you need to do the following from within the
+ Eclipse IDE:
+ <itemizedlist>
+ <listitem><para>Choose "Preferences" from the
+ "Window" menu to display the Preferences Dialog.
+ </para></listitem>
+ <listitem><para>Click "Yocto Project SDK" to display
+ the configuration screen.
+ </para></listitem>
+ </itemizedlist>
+ The following sub-sections describe how to configure the
+ the plug-in.
+ <note>
+ Throughout the descriptions, a start-to-finish example for
+ preparing a QEMU image for use with Eclipse is referenced
+ as the "wiki" and is linked to the example on the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'> Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ </note>
+ </para>
+
+ <section id='mars-configuring-the-cross-compiler-options'>
+ <title>Configuring the Cross-Compiler Options</title>
+
+ <para>
+ Cross Compiler options enable Eclipse to use your specific
+ cross compiler toolchain.
+ To configure these options, you must select
+ the type of toolchain, point to the toolchain, specify
+ the sysroot location, and select the target
+ architecture.
+ <itemizedlist>
+ <listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
+ Choose between
+ <filename>Standalone pre-built toolchain</filename>
+ and
+ <filename>Build system derived toolchain</filename>
+ for Cross Compiler Options.
+ <itemizedlist>
+ <listitem><para><emphasis>
+ <filename>Standalone Pre-built Toolchain:</filename></emphasis>
+ Select this type when you are using
+ a stand-alone cross-toolchain.
+ For example, suppose you are an
+ application developer and do not
+ need to build a target image.
+ Instead, you just want to use an
+ architecture-specific toolchain on
+ an existing kernel and target root
+ filesystem.
+ In other words, you have downloaded
+ and installed a pre-built toolchain
+ for an existing image.
+ </para></listitem>
+ <listitem><para><emphasis>
+ <filename>Build System Derived Toolchain:</filename></emphasis>
+ Select this type if you built the
+ toolchain as part of the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
+ When you select
+ <filename>Build system derived toolchain</filename>,
+ you are using the toolchain built and
+ bundled inside the Build Directory.
+ For example, suppose you created a
+ suitable image using the steps in the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ In this situation, you would select the
+ <filename>Build system derived toolchain</filename>.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para><emphasis>Specify the Toolchain Root Location:</emphasis>
+ If you are using a stand-alone pre-built
+ toolchain, you should be pointing to where it is
+ installed (e.g.
+ <filename>/opt/poky/&DISTRO;</filename>).
+ See the
+ "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
+ section for information about how the SDK is
+ installed.</para>
+ <para>If you are using a build system derived
+ toolchain, the path you provide for the
+ <filename>Toolchain Root Location</filename>
+ field is the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ from which you run the
+ <filename>bitbake</filename> command (e.g
+ <filename>/home/scottrif/poky/build</filename>).</para>
+ <para>For more information, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ </para></listitem>
+ <listitem><para><emphasis>Specify Sysroot Location:</emphasis>
+ This location is where the root filesystem for
+ the target hardware resides.
+ </para>
+ <para>This location depends on where you
+ separately extracted and installed the target
+ filesystem.
+ As an example, suppose you prepared an image
+ using the steps in the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ If so, the <filename>MY_QEMU_ROOTFS</filename>
+ directory is found in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ and you would browse to and select that directory
+ (e.g. <filename>/home/scottrif/build/MY_QEMU_ROOTFS</filename>).
+ </para>
+ <para>For more information on how to install the
+ toolchain and on how to extract and install the
+ sysroot filesystem, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ </para></listitem>
+ <listitem><para><emphasis>Select the Target Architecture:</emphasis>
+ The target architecture is the type of hardware
+ you are going to use or emulate.
+ Use the pull-down
+ <filename>Target Architecture</filename> menu
+ to make your selection.
+ The pull-down menu should have the supported
+ architectures.
+ If the architecture you need is not listed in
+ the menu, you will need to build the image.
+ See the
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
+ section of the Yocto Project Quick Start for
+ more information.
+ You can also see the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='mars-configuring-the-target-options'>
+ <title>Configuring the Target Options</title>
+
+ <para>
+ You can choose to emulate hardware using the QEMU
+ emulator, or you can choose to run your image on actual
+ hardware.
+ <itemizedlist>
+ <listitem><para><emphasis>QEMU:</emphasis>
+ Select this option if you will be using the
+ QEMU emulator.
+ If you are using the emulator, you also need to
+ locate the kernel and specify any custom
+ options.</para>
+ <para>If you selected the
+ <filename>Build system derived toolchain</filename>,
+ the target kernel you built will be located in
+ the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ in
+ <filename>tmp/deploy/images/<replaceable>machine</replaceable></filename>
+ directory.
+ As an example, suppose you performed the steps in
+ the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ In this case, you specify your Build Directory path
+ followed by the image (e.g.
+ <filename>/home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin</filename>).
+ </para>
+ <para>If you selected the standalone pre-built
+ toolchain, the pre-built image you downloaded is
+ located in the directory you specified when you
+ downloaded the image.</para>
+ <para>Most custom options are for advanced QEMU
+ users to further customize their QEMU instance.
+ These options are specified between paired
+ angled brackets.
+ Some options must be specified outside the
+ brackets.
+ In particular, the options
+ <filename>serial</filename>,
+ <filename>nographic</filename>, and
+ <filename>kvm</filename> must all be outside the
+ brackets.
+ Use the <filename>man qemu</filename> command
+ to get help on all the options and their use.
+ The following is an example:
+ <literallayout class='monospaced'>
+ serial â€&lt;-m 256 -full-screen&gt;’
+ </literallayout></para>
+ <para>
+ Regardless of the mode, Sysroot is already
+ defined as part of the Cross-Compiler Options
+ configuration in the
+ <filename>Sysroot Location:</filename> field.
+ </para></listitem>
+ <listitem><para><emphasis>External HW:</emphasis>
+ Select this option if you will be using actual
+ hardware.</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Click the "Apply" and "OK" to save your plug-in
+ configurations.
+ </para>
+ </section>
+ </section>
+ </section>
+
+ <section id='mars-creating-the-project'>
+ <title>Creating the Project</title>
+
+ <para>
+ You can create two types of projects: Autotools-based, or
+ Makefile-based.
+ This section describes how to create Autotools-based projects
+ from within the Eclipse IDE.
+ For information on creating Makefile-based projects in a
+ terminal window, see the
+ "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>"
+ section.
+ <note>
+ Do not use special characters in project names
+ (e.g. spaces, underscores, etc.). Doing so can
+ cause configuration to fail.
+ </note>
+ </para>
+
+ <para>
+ To create a project based on a Yocto template and then display
+ the source code, follow these steps:
+ <orderedlist>
+ <listitem><para>Select "C Project" from the "File -> New" menu.
+ </para></listitem>
+ <listitem><para>Expand <filename>Yocto Project SDK Autotools Project</filename>.
+ </para></listitem>
+ <listitem><para>Select <filename>Hello World ANSI C Autotools Projects</filename>.
+ This is an Autotools-based project based on a Yocto
+ template.
+ </para></listitem>
+ <listitem><para>Put a name in the <filename>Project name:</filename>
+ field.
+ Do not use hyphens as part of the name
+ (e.g. <filename>hello</filename>).
+ </para></listitem>
+ <listitem><para>Click "Next".
+ </para></listitem>
+ <listitem><para>Add appropriate information in the various
+ fields.
+ </para></listitem>
+ <listitem><para>Click "Finish".
+ </para></listitem>
+ <listitem><para>If the "open perspective" prompt appears,
+ click "Yes" so that you in the C/C++ perspective.
+ </para></listitem>
+ <listitem><para>The left-hand navigation pane shows your
+ project.
+ You can display your source by double clicking the
+ project's source file.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-configuring-the-cross-toolchains'>
+ <title>Configuring the Cross-Toolchains</title>
+
+ <para>
+ The earlier section,
+ "<link linkend='mars-configuring-the-eclipse-yocto-plug-in'>Configuring the Mars Eclipse Yocto Plug-in</link>",
+ sets up the default project configurations.
+ You can override these settings for a given project by following
+ these steps:
+ <orderedlist>
+ <listitem><para>Select "Yocto Project Settings" from
+ the "Project -> Properties" menu.
+ This selection brings up the Yocto Project Settings
+ Dialog and allows you to make changes specific to an
+ individual project.</para>
+ <para>By default, the Cross Compiler Options and Target
+ Options for a project are inherited from settings you
+ provided using the Preferences Dialog as described
+ earlier in the
+ "<link linkend='mars-configuring-the-eclipse-yocto-plug-in'>Configuring the Mars Eclipse Yocto Plug-in</link>" section.
+ The Yocto Project Settings Dialog allows you to override
+ those default settings for a given project.
+ </para></listitem>
+ <listitem><para>Make or verify your configurations for the
+ project and click "OK".
+ </para></listitem>
+ <listitem><para>Right-click in the navigation pane and
+ select "Reconfigure Project" from the pop-up menu.
+ This selection reconfigures the project by running
+ <filename>autogen.sh</filename> in the workspace for
+ your project.
+ The script also runs <filename>libtoolize</filename>,
+ <filename>aclocal</filename>,
+ <filename>autoconf</filename>,
+ <filename>autoheader</filename>,
+ <filename>automake --a</filename>, and
+ <filename>./configure</filename>.
+ Click on the "Console" tab beneath your source code to
+ see the results of reconfiguring your project.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-building-the-project'>
+ <title>Building the Project</title>
+
+ <para>
+ To build the project select "Build All" from the
+ "Project" menu.
+ The console should update and you can note the cross-compiler
+ you are using.
+ <note>
+ When building "Yocto Project SDK Autotools" projects, the
+ Eclipse IDE might display error messages for
+ Functions/Symbols/Types that cannot be "resolved", even when
+ the related include file is listed at the project navigator and
+ when the project is able to build.
+ For these cases only, it is recommended to add a new linked
+ folder to the appropriate sysroot.
+ Use these steps to add the linked folder:
+ <orderedlist>
+ <listitem><para>
+ Select the project.
+ </para></listitem>
+ <listitem><para>
+ Select "Folder" from the
+ <filename>File > New</filename> menu.
+ </para></listitem>
+ <listitem><para>
+ In the "New Folder" Dialog, select "Link to alternate
+ location (linked folder)".
+ </para></listitem>
+ <listitem><para>
+ Click "Browse" to navigate to the include folder inside
+ the same sysroot location selected in the Yocto Project
+ configuration preferences.
+ </para></listitem>
+ <listitem><para>
+ Click "OK".
+ </para></listitem>
+ <listitem><para>
+ Click "Finish" to save the linked folder.
+ </para></listitem>
+ </orderedlist>
+ </note>
+ </para>
+ </section>
+
+ <section id='mars-starting-qemu-in-user-space-nfs-mode'>
+ <title>Starting QEMU in User-Space NFS Mode</title>
+
+ <para>
+ To start the QEMU emulator from within Eclipse, follow these
+ steps:
+ <note>
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
+ chapter in the Yocto Project Development Manual
+ for more information on using QEMU.
+ </note>
+ <orderedlist>
+ <listitem><para>Expose and select "External Tools
+ Configurations ..." from the "Run -> External Tools" menu.
+ </para></listitem>
+ <listitem><para>
+ Locate and select your image in the navigation panel to
+ the left (e.g. <filename>qemu_i586-poky-linux</filename>).
+ </para></listitem>
+ <listitem><para>
+ Click "Run" to launch QEMU.
+ <note>
+ The host on which you are running QEMU must have
+ the <filename>rpcbind</filename> utility running to be
+ able to make RPC calls on a server on that machine.
+ If QEMU does not invoke and you receive error messages
+ involving <filename>rpcbind</filename>, follow the
+ suggestions to get the service running.
+ As an example, on a new Ubuntu 16.04 LTS installation,
+ you must do the following in order to get QEMU to
+ launch:
+ <literallayout class='monospaced'>
+ $ sudo apt-get install rpcbind
+ </literallayout>
+ After installing <filename>rpcbind</filename>, you
+ need to edit the
+ <filename>/etc/init.d/rpcbind</filename> file to
+ include the following line:
+ <literallayout class='monospaced'>
+ OPTIONS="-i -w"
+ </literallayout>
+ After modifying the file, you need to start the
+ service:
+ <literallayout class='monospaced'>
+ $ sudo service portmap restart
+ </literallayout>
+ </note>
+ </para></listitem>
+ <listitem><para>If needed, enter your host root password in
+ the shell window at the prompt.
+ This sets up a <filename>Tap 0</filename> connection
+ needed for running in user-space NFS mode.
+ </para></listitem>
+ <listitem><para>Wait for QEMU to launch.
+ </para></listitem>
+ <listitem><para>Once QEMU launches, you can begin operating
+ within that environment.
+ One useful task at this point would be to determine the
+ IP Address for the user-space NFS by using the
+ <filename>ifconfig</filename> command.
+ The IP address of the QEMU machine appears in the
+ xterm window.
+ You can use this address to help you see which particular
+ IP address the instance of QEMU is using.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-deploying-and-debugging-the-application'>
+ <title>Deploying and Debugging the Application</title>
+
+ <para>
+ Once the QEMU emulator is running the image, you can deploy
+ your application using the Eclipse IDE and then use
+ the emulator to perform debugging.
+ Follow these steps to deploy the application.
+ <note>
+ Currently, Eclipse does not support SSH port forwarding.
+ Consequently, if you need to run or debug a remote
+ application using the host display, you must create a
+ tunneling connection from outside Eclipse and keep
+ that connection alive during your work.
+ For example, in a new terminal, run the following:
+ <literallayout class='monospaced'>
+ $ ssh -XY <replaceable>user_name</replaceable>@<replaceable>remote_host_ip</replaceable>
+ </literallayout>
+ Using the above form, here is an example:
+ <literallayout class='monospaced'>
+ $ ssh -XY root@192.168.7.2
+ </literallayout>
+ After running the command, add the command to be executed
+ in Eclipse's run configuration before the application
+ as follows:
+ <literallayout class='monospaced'>
+ export DISPLAY=:10.0
+ </literallayout>
+ Be sure to not destroy the connection during your QEMU
+ session (i.e. do not
+ exit out of or close that shell).
+ </note>
+ <orderedlist>
+ <listitem><para>Select "Debug Configurations..." from the
+ "Run" menu.</para></listitem>
+ <listitem><para>In the left area, expand
+ <filename>C/C++Remote Application</filename>.
+ </para></listitem>
+ <listitem><para>Locate your project and select it to bring
+ up a new tabbed view in the Debug Configurations Dialog.
+ </para></listitem>
+ <listitem><para>Click on the "Debugger" tab to see the
+ cross-tool debugger you are using.
+ Be sure to change to the debugger perspective in Eclipse.
+ </para></listitem>
+ <listitem><para>Click on the "Main" tab.
+ </para></listitem>
+ <listitem><para>Create a new connection to the QEMU instance
+ by clicking on "new".</para></listitem>
+ <listitem><para>Select <filename>SSH</filename>, which means
+ Secure Socket Shell.
+ Optionally, you can select an TCF connection instead.
+ </para></listitem>
+ <listitem><para>Click "Next".
+ </para></listitem>
+ <listitem><para>Clear out the "Connection name" field and
+ enter any name you want for the connection.
+ </para></listitem>
+ <listitem><para>Put the IP address for the connection in
+ the "Host" field.
+ For QEMU, the default is <filename>192.168.7.2</filename>.
+ However, if a previous QEMU session did not exit
+ cleanly, the IP address increments (e.g.
+ <filename>192.168.7.3</filename>).
+ <note>
+ You can find the IP address for the current QEMU
+ session by looking in the xterm that opens when
+ you launch QEMU.
+ </note>
+ </para></listitem>
+ <listitem><para>Enter <filename>root</filename>, which
+ is the default for QEMU, for the "User" field.
+ Be sure to leave the password field empty.
+ </para></listitem>
+ <listitem><para>Click "Finish" to close the
+ New Connections Dialog.
+ </para></listitem>
+ <listitem><para>If necessary, use the drop-down menu now in the
+ "Connection" field and pick the IP Address you entered.
+ </para></listitem>
+ <listitem><para>Assuming you are connecting as the root user,
+ which is the default for QEMU x86-64 SDK images provided by
+ the Yocto Project, in the "Remote Absolute File Path for
+ C/C++ Application" field, browse to
+ <filename>/home/root</filename>.
+ You could also browse to any other path you have write
+ access to on the target such as
+ <filename>/usr/bin</filename>.
+ This location is where your application will be located on
+ the QEMU system.
+ If you fail to browse to and specify an appropriate
+ location, QEMU will not understand what to remotely
+ launch.
+ Eclipse is helpful in that it auto fills your application
+ name for you assuming you browsed to a directory.
+ <note>
+ If you are prompted to provide a username and to
+ optionally set a password, be sure you provide
+ "root" as the username and you leave the password
+ field blank.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ Be sure you change to the "Debug" perspective in Eclipse.
+ </para></listitem>
+ <listitem><para>Click "Debug"
+ </para></listitem>
+ <listitem><para>Accept the debug perspective.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='mars-using-Linuxtools'>
+ <title>Using Linuxtools</title>
+
+ <para>
+ As mentioned earlier in the manual, performance tools exist
+ (Linuxtools) that enhance your development experience.
+ These tools are aids in developing and debugging applications and
+ images.
+ You can run these tools from within the Eclipse IDE through the
+ "Linuxtools" menu.
+ </para>
+
+ <para>
+ For information on how to configure and use these tools, see
+ <ulink url='http://www.eclipse.org/linuxtools/'>http://www.eclipse.org/linuxtools/</ulink>.
+ </para>
+ </section>
+</appendix>
+<!--
+vim: expandtab tw=80 ts=4
+-->
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
index 3d4e364bf..3156f7725 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-appendix-obtain.xml
@@ -13,20 +13,20 @@
You can use existing, pre-built toolchains by locating and running
an SDK installer script that ships with the Yocto Project.
Using this method, you select and download an architecture-specific
- toolchain installer and then run the script to hand-install the
+ SDK installer and then run the script to hand-install the
toolchain.
</para>
<para>
You can find SDK installers here:
<itemizedlist>
- <listitem><para><emphasis>Standard SDK Installers</emphasis>
+ <listitem><para><emphasis>Standard SDK Installers:</emphasis>
Go to <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>
and find the folder that matches your host development system
(i.e. <filename>i686</filename> for 32-bit machines or
<filename>x86_64</filename> for 64-bit machines).</para>
- <para>Go into that folder and download the toolchain installer
+ <para>Go into that folder and download the SDK installer
whose name includes the appropriate target architecture.
The toolchains provided by the Yocto Project are based off of
the <filename>core-image-sato</filename> image and contain
@@ -39,9 +39,14 @@
poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
</literallayout>
</para></listitem>
- <listitem><para><emphasis>Extensible SDK Installers</emphasis>
- Installers for the extensible SDK are in
+ <listitem><para><emphasis>Extensible SDK Installers:</emphasis>
+ Installers for the extensible SDK are also located in
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
+ These installers have the string
+ <filename>ext</filename> as part of their names:
+ <literallayout class='monospaced'>
+ poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
+ </literallayout>
</para></listitem>
</itemizedlist>
</para>
@@ -51,8 +56,8 @@
<title>Building an SDK Installer</title>
<para>
- As an alternative to locating and downloading a toolchain installer,
- you can build the toolchain installer assuming you have first sourced
+ As an alternative to locating and downloading a SDK installer,
+ you can build the SDK installer assuming you have first sourced
the environment setup script.
See the
"<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
@@ -69,7 +74,7 @@
</para>
<para>
- To build the toolchain installer for a standard SDK and populate
+ To build the SDK installer for a standard SDK and populate
the SDK image, use the following command:
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk
@@ -78,28 +83,38 @@
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk_ext
</literallayout>
- These commands result in a toolchain installer that contains the sysroot
+ These commands result in a SDK installer that contains the sysroot
that matches your target root filesystem.
</para>
<para>
- When the <filename>bitbake</filename> command completes, the toolchain
+ When the <filename>bitbake</filename> command completes, the SDK
installer will be in
<filename>tmp/deploy/sdk</filename> in the Build Directory.
- <note>
- By default, this toolchain does not build static binaries.
- If you want to use the toolchain to build these types of libraries,
- you need to be sure your image has the appropriate static
- development libraries.
- Use the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>
- variable inside your <filename>local.conf</filename> file to
- install the appropriate library packages.
- Following is an example using <filename>glibc</filename> static
- development libraries:
- <literallayout class='monospaced'>
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ By default, this toolchain does not build static binaries.
+ If you want to use the toolchain to build these types of
+ libraries, you need to be sure your image has the
+ appropriate static development libraries.
+ Use the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></ulink>
+ variable inside your <filename>local.conf</filename> file
+ to install the appropriate library packages.
+ Following is an example using <filename>glibc</filename>
+ static development libraries:
+ <literallayout class='monospaced'>
IMAGE_INSTALL_append = " glibc-staticdev"
- </literallayout>
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ For additional information on building the installer,
+ see the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ </para></listitem>
+ </itemizedlist>
</note>
</para>
</section>
@@ -168,7 +183,7 @@
<para>
The following figure shows the resulting directory structure after
- you install the Standard SDK by running the <filename>.sh</filename>
+ you install the Standard SDK by running the <filename>*.sh</filename>
SDK installation script:
</para>
@@ -191,7 +206,7 @@
is the directory where the SDK is installed.
By default, this directory is <filename>/opt/poky/</filename>.
And, <replaceable>version</replaceable> represents the specific
- snapshot of the SDK (e.g. <filename>&DISTRO;+snapshot</filename>).
+ snapshot of the SDK (e.g. <filename>&DISTRO;</filename>).
Furthermore, <replaceable>target</replaceable> represents the target
architecture (e.g. <filename>i586</filename>) and
<replaceable>host</replaceable> represents the development system's
@@ -209,7 +224,7 @@
<para>
The following figure shows the resulting directory structure after
- you install the Extensible SDK by running the <filename>.sh</filename>
+ you install the Extensible SDK by running the <filename>*.sh</filename>
SDK installation script:
</para>
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-extensible.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-extensible.xml
index 3e11fc97d..1496476be 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-extensible.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-extensible.xml
@@ -4,1300 +4,1628 @@
<chapter id='sdk-extensible'>
-<title>Using the Extensible SDK</title>
-
-<para>
- This chapter describes the extensible SDK and how to use it.
- The extensible SDK makes it easy to add new applications and libraries
- to an image, modify the source for an existing component, test
- changes on the target hardware, and ease integration into the rest of the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
-</para>
-
-<para>
- Information in this chapter covers features that are not part of the
- standard SDK.
- In other words, the chapter presents information unique to the
- extensible SDK only.
- For information on how to use the standard SDK, see the
- "<link linkend='sdk-using-the-standard-sdk'>Using the Standard SDK</link>"
- chapter.
-</para>
-
-<section id='sdk-setting-up-to-use-the-extensible-sdk'>
- <title>Setting Up to Use the Extensible SDK</title>
+ <title>Using the Extensible SDK</title>
<para>
- Getting set up to use the extensible SDK is identical to getting set
- up to use the standard SDK.
- You still need to locate and run the installer and then run the
- environment setup script.
- See the
- "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
- and the
- "<link linkend='sdk-running-the-sdk-environment-setup-script'>Running the SDK Environment Setup Script</link>"
- sections for general information.
- The following items highlight the only differences between getting
- set up to use the extensible SDK as compared to the standard SDK:
- <itemizedlist>
- <listitem><para><emphasis>Default Installation Directory:</emphasis>
- By default, the extensible SDK installs into the
- <filename>poky_sdk</filename> folder of your home directory.
- As with the standard SDK, you can choose to install the
- extensible SDK in any location when you run the installer.
- However, unlike the standard SDK, the location you choose needs
- to be writable for whichever users need to use the SDK,
- since files will need to be written under that directory during
- the normal course of operation.
- </para></listitem>
- <listitem><para><emphasis>Build Tools and Build System:</emphasis>
- The extensible SDK installer performs additional tasks as
- compared to the standard SDK installer.
- The extensible SDK installer extracts build tools specific
- to the SDK and the installer also prepares the internal build
- system within the SDK.
- Here is example output for running the extensible SDK
- installer:
- <literallayout class='monospaced'>
- $ ./poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-ext-2.1+snapshot.sh
- Poky (Yocto Project Reference Distro) Extensible SDK installer version 2.1+snapshot
- ===================================================================================
- Enter target directory for SDK (default: ~/poky_sdk):
- You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed[Y/n]? Y
- Extracting SDK......................................................................done
- Setting it up...
- Extracting buildtools...
- Preparing build system...
- done
- SDK has been successfully set up and is ready to be used.
- Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
- $ . /home/scottrif/poky_sdk/environment-setup-core2-64-poky-linux
- </literallayout>
- </para></listitem>
- </itemizedlist>
- </para>
-
- <para>
- After installing the SDK, you need to run the SDK environment setup
- script.
- Here is the output:
- <literallayout class='monospaced'>
- $ source environment-setup-core2-64-poky-linux
- SDK environment now set up; additionally you may now run devtool to perform development tasks.
- Run devtool --help for further details.
- </literallayout>
- Once you run the environment setup script, you have
- <filename>devtool</filename> available.
- </para>
-</section>
-
-<section id='using-devtool-in-your-sdk-workflow'>
- <title>Using <filename>devtool</filename> in Your SDK Workflow</title>
-
- <para>
- The cornerstone of the extensible SDK is a command-line tool
- called <filename>devtool</filename>.
- This tool provides a number of features that help
- you build, test and package software within the extensible SDK, and
- optionally integrate it into an image built by the OpenEmbedded build
- system.
- </para>
-
- <para>
- The <filename>devtool</filename> command line is organized similarly
- to
- <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> in that it has a
- number of sub-commands for each function.
- You can run <filename>devtool --help</filename> to see all the
- commands.
- </para>
-
- <para>
- Two <filename>devtool</filename> subcommands that provide
- entry-points into development are:
- <itemizedlist>
- <listitem><para><emphasis><filename>devtool add</filename></emphasis>:
- Assists in adding new software to be built.
- </para></listitem>
- <listitem><para><emphasis><filename>devtool modify</filename></emphasis>:
- Sets up an environment to enable you to modify the source of
- an existing component.
- </para></listitem>
- </itemizedlist>
- As with the OpenEmbedded build system, "recipes" represent software
- packages within <filename>devtool</filename>.
- When you use <filename>devtool add</filename>, a recipe is
- automatically created.
- When you use <filename>devtool modify</filename>, the specified
- existing recipe is used in order to determine where to get the source
- code and how to patch it.
- In both cases, an environment is set up so that when you build the
- recipe a source tree that is under your control is used in order to
- allow you to make changes to the source as desired.
- By default, both new recipes and the source go into a "workspace"
- directory under the SDK.
+ This chapter describes the extensible SDK and how to install it.
+ Information covers the pieces of the SDK, how to install it, and
+ presents a look at using the <filename>devtool</filename>
+ functionality.
+ The extensible SDK makes it easy to add new applications and libraries
+ to an image, modify the source for an existing component, test
+ changes on the target hardware, and ease integration into the rest of
+ the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
+ <note>
+ For a side-by-side comparison of main features supported for an
+ extensible SDK as compared to a standard SDK, see the
+ "<link linkend='sdk-manual-intro'>Introduction</link>"
+ section.
+ </note>
</para>
<para>
- The remainder of this section presents the
- <filename>devtool add</filename> and
- <filename>devtool modify</filename> workflows.
+ In addition to the functionality available through
+ <filename>devtool</filename>, you can alternatively make use of the
+ toolchain directly, for example from Makefile, Autotools, and
+ Eclipse-based projects.
+ See the
+ "<link linkend='sdk-working-projects'>Using the SDK Toolchain Directly</link>"
+ chapter for more information.
</para>
- <section id='sdk-use-devtool-to-add-an-application'>
- <title>Use <filename>devtool add</filename> to Add an Application</title>
-
- <para>
- The <filename>devtool add</filename> command generates
- a new recipe based on existing source code.
- This command takes advantage of the
- <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-the-workspace-layer-structure'>workspace</ulink>
- layer that many <filename>devtool</filename> commands
- use.
- The command is flexible enough to allow you to extract source
- code into both the workspace or a separate local Git repository
- and to use existing code that does not need to be extracted.
- </para>
-
- <para>
- Depending on your particular scenario, the arguments and options
- you use with <filename>devtool add</filename> form different
- combinations.
- The following diagram shows common development flows
- you would use with the <filename>devtool add</filename>
- command:
- </para>
+ <section id='sdk-extensible-sdk-intro'>
+ <title>Why use the Extensible SDK and What is in It?</title>
<para>
- <imagedata fileref="figures/sdk-devtool-add-flow.png" align="center" />
+ The extensible SDK provides a cross-development toolchain and
+ libraries tailored to the contents of a specific image.
+ You would use the Extensible SDK if you want a toolchain experience
+ supplemented with the powerful set of <filename>devtool</filename>
+ commands tailored for the Yocto Project environment.
</para>
<para>
- <orderedlist>
- <listitem><para><emphasis>Generating the New Recipe</emphasis>:
- The top part of the flow shows three scenarios by which
- you could use <filename>devtool add</filename> to
- generate a recipe based on existing source code.</para>
-
- <para>In a shared development environment, it is
- typical where other developers are responsible for
- various areas of source code.
- As a developer, you are probably interested in using
- that source code as part of your development using
- the Yocto Project.
- All you need is access to the code, a recipe, and a
- controlled area in which to do your work.</para>
-
- <para>Within the diagram, three possible scenarios
- feed into the <filename>devtool add</filename> workflow:
- <itemizedlist>
- <listitem><para><emphasis>Left</emphasis>:
- The left scenario represents a common situation
- where the source code does not exist locally
- and needs to be extracted.
- In this situation, you just let it get
- extracted to the default workspace - you do not
- want it in some specific location outside of the
- workspace.
- Thus, everything you need will be located in the
- workspace:
- <literallayout class='monospaced'>
- $ devtool add <replaceable>recipe fetchuri</replaceable>
- </literallayout>
- With this command, <filename>devtool</filename>
- creates a recipe and an append file in the
- workspace as well as extracts the upstream
- source files into a local Git repository also
- within the <filename>sources</filename> folder.
- </para></listitem>
- <listitem><para><emphasis>Middle</emphasis>:
- The middle scenario also represents a situation where
- the source code does not exist locally.
- In this case, the code is again upstream
- and needs to be extracted to some
- local area - this time outside of the default
- workspace.
- As always, if required <filename>devtool</filename> creates
- a Git repository locally during the extraction.
- Furthermore, the first positional argument
- <replaceable>srctree</replaceable> in this case
- identifies where the
- <filename>devtool add</filename> command
- will locate the extracted code outside of the
- workspace:
- <literallayout class='monospaced'>
- $ devtool add <replaceable>recipe srctree fetchuri</replaceable>
- </literallayout>
- In summary, the source code is pulled from
- <replaceable>fetchuri</replaceable> and extracted
- into the location defined by
- <replaceable>srctree</replaceable> as a local
- Git repository.</para>
-
- <para>Within workspace, <filename>devtool</filename>
- creates both the recipe and an append file
- for the recipe.
- </para></listitem>
- <listitem><para><emphasis>Right</emphasis>:
- The right scenario represents a situation
- where the source tree (srctree) has been
- previously prepared outside of the
- <filename>devtool</filename> workspace.
- </para>
-
- <para>The following command names the recipe
- and identifies where the existing source tree
- is located:
- <literallayout class='monospaced'>
- $ devtool add <replaceable>recipe srctree</replaceable>
- </literallayout>
- The command examines the source code and creates
- a recipe for it placing the recipe into the
- workspace.</para>
-
- <para>Because the extracted source code already exists,
- <filename>devtool</filename> does not try to
- relocate it into the workspace - just the new
- the recipe is placed in the workspace.</para>
-
- <para>Aside from a recipe folder, the command
- also creates an append folder and places an initial
- <filename>*.bbappend</filename> within.
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para><emphasis>Edit the Recipe</emphasis>:
- At this point, you can use <filename>devtool edit-recipe</filename>
- to open up the editor as defined by the
- <filename>$EDITOR</filename> environment variable
- and modify the file:
- <literallayout class='monospaced'>
- $ devtool edit-recipe <replaceable>recipe</replaceable>
- </literallayout>
- From within the editor, you can make modifications to the
- recipe that take affect when you build it later.
- </para></listitem>
- <listitem><para><emphasis>Build the Recipe or Rebuild the Image</emphasis>:
- At this point in the flow, the next step you
- take depends on what you are going to do with
- the new code.</para>
- <para>If you need to take the build output and eventually
- move it to the target hardware, you would use
- <filename>devtool build</filename>:
- <literallayout class='monospaced'>
- $ devtool build <replaceable>recipe</replaceable>
- </literallayout></para>
- <para>On the other hand, if you want an image to
- contain the recipe's packages for immediate deployment
- onto a device (e.g. for testing purposes), you can use
- the <filename>devtool build-image</filename> command:
- <literallayout class='monospaced'>
- $ devtool build-image <replaceable>image</replaceable>
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Deploy the Build Output</emphasis>:
- When you use the <filename>devtool build</filename>
- command to build out your recipe, you probably want to
- see if the resulting build output works as expected on target
- hardware.
- <note>
- This step assumes you have a previously built
- image that is already either running in QEMU or
- running on actual hardware.
- Also, it is assumed that for deployment of the image
- to the target, SSH is installed in the image and if
- the image is running on real hardware that you have
- network access to and from your development machine.
- </note>
- You can deploy your build output to that target hardware by
- using the <filename>devtool deploy-target</filename> command:
- <literallayout class='monospaced'>
- $ devtool deploy-target <replaceable>recipe target</replaceable>
- </literallayout>
- The <replaceable>target</replaceable> is a live target machine
- running as an SSH server.</para>
-
- <para>You can, of course, also deploy the image you build
- using the <filename>devtool build-image</filename> command
- to actual hardware.
- However, <filename>devtool</filename> does not provide a
- specific command that allows you to do this.
- </para></listitem>
- <listitem><para><emphasis>Optionally Update the Recipe With Patch Files</emphasis>:
- Once you are satisfied with the recipe, if you have made
- any changes to the source tree that you want to have
- applied by the recipe, you need to generate patches
- from those changes.
- You do this before moving the recipe
- to its final layer and cleaning up the workspace area
- <filename>devtool</filename> uses.
- This optional step is especially relevant if you are
- using or adding third-party software.</para>
- <para>To convert commits created using Git to patch files,
- use the <filename>devtool update-recipe</filename> command.
- <note>
- Any changes you want to turn into patches must be
- committed to the Git repository in the source tree.
- </note>
- <literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Move the Recipe to its Permanent Layer</emphasis>:
- Before cleaning up the workspace, you need to move the
- final recipe to its permanent layer.
- You must do this before using the
- <filename>devtool reset</filename> command if you want to
- retain the recipe.
- </para></listitem>
- <listitem><para><emphasis>Reset the Recipe</emphasis>:
- As a final step, you can restore the state such that
- standard layers and the upstream source is used to build
- the recipe rather than data in the workspace.
- To reset the recipe, use the <filename>devtool reset</filename>
- command:
- <literallayout class='monospaced'>
- $ devtool reset <replaceable>recipe</replaceable>
- </literallayout>
- </para></listitem>
- </orderedlist>
+ The installed extensible SDK consists of several files and
+ directories.
+ Basically, it contains an SDK environment setup script, some
+ configuration files, an internal build system, and the
+ <filename>devtool</filename> functionality.
</para>
</section>
- <section id='sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'>
- <title>Use <filename>devtool modify</filename> to Modify the Source of an Existing Component</title>
+ <section id='sdk-setting-up-to-use-the-extensible-sdk'>
+ <title>Setting Up to Use the Extensible SDK</title>
<para>
- The <filename>devtool modify</filename> command prepares the
- way to work on existing code that already has a recipe in
- place.
- The command is flexible enough to allow you to extract code,
- specify the existing recipe, and keep track of and gather any
- patch files from other developers that are
- associated with the code.
+ The first thing you need to do is install the SDK on your host
+ development machine by running the <filename>*.sh</filename>
+ installation script.
</para>
<para>
- Depending on your particular scenario, the arguments and options
- you use with <filename>devtool modify</filename> form different
- combinations.
- The following diagram shows common development flows
- you would use with the <filename>devtool modify</filename>
- command:
+ You can download a tarball installer, which includes the
+ pre-built toolchain, the <filename>runqemu</filename>
+ script, the internal build system, <filename>devtool</filename>,
+ and support files from the appropriate directory under
+ <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
+ Toolchains are available for 32-bit and 64-bit x86 development
+ systems from the <filename>i686</filename> and
+ <filename>x86_64</filename> directories, respectively.
+ The toolchains the Yocto Project provides are based off the
+ <filename>core-image-sato</filename> image and contain
+ libraries appropriate for developing against that image.
+ Each type of development system supports five or more target
+ architectures.
</para>
<para>
- <imagedata fileref="figures/sdk-devtool-modify-flow.png" align="center" />
- </para>
+ The names of the tarball installer scripts are such that a
+ string representing the host system appears first in the
+ filename and then is immediately followed by a string
+ representing the target architecture.
+ An extensible SDK has the string "-ext" as part of the name.
+ <literallayout class='monospaced'>
+ poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-ext-<replaceable>release_version</replaceable>.sh
- <para>
- <orderedlist>
- <listitem><para><emphasis>Preparing to Modify the Code</emphasis>:
- The top part of the flow shows three scenarios by which
- you could use <filename>devtool modify</filename> to
- prepare to work on source files.
- Each scenario assumes the following:
- <itemizedlist>
- <listitem><para>The recipe exists in some layer external
- to the <filename>devtool</filename> workspace.
- </para></listitem>
- <listitem><para>The source files exist upstream in an
- un-extracted state or locally in a previously
- extracted state.
- </para></listitem>
- </itemizedlist>
- The typical situation is where another developer has
- created some layer for use with the Yocto Project and
- their recipe already resides in that layer.
- Furthermore, their source code is readily available
- either upstream or locally.
- <itemizedlist>
- <listitem><para><emphasis>Left</emphasis>:
- The left scenario represents a common situation
- where the source code does not exist locally
- and needs to be extracted.
- In this situation, the source is extracted
- into the default workspace location.
- The recipe, in this scenario, is in its own
- layer outside the workspace
- (i.e.
- <filename>meta-</filename><replaceable>layername</replaceable>).
- </para>
-
- <para>The following command identifies the recipe
- and by default extracts the source files:
- <literallayout class='monospaced'>
- $ devtool modify <replaceable>recipe</replaceable>
- </literallayout>
- Once <filename>devtool</filename>locates the recipe,
- it uses the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
- variable to locate the source code and
- any local patch files from other developers are
- located.
- <note>
- You cannot provide an URL for
- <replaceable>srctree</replaceable> when using the
- <filename>devtool modify</filename> command.
- </note>
- With this scenario, however, since no
- <replaceable>srctree</replaceable> argument exists, the
- <filename>devtool modify</filename> command by default
- extracts the source files to a Git structure.
- Furthermore, the location for the extracted source is the
- default area within the workspace.
- The result is that the command sets up both the source
- code and an append file within the workspace with the
- recipe remaining in its original location.
- </para></listitem>
- <listitem><para><emphasis>Middle</emphasis>:
- The middle scenario represents a situation where
- the source code also does not exist locally.
- In this case, the code is again upstream
- and needs to be extracted to some
- local area as a Git repository.
- The recipe, in this scenario, is again in its own
- layer outside the workspace.</para>
-
- <para>The following command tells
- <filename>devtool</filename> what recipe with
- which to work and, in this case, identifies a local
- area for the extracted source files that is outside
- of the default workspace:
- <literallayout class='monospaced'>
- $ devtool modify <replaceable>recipe srctree</replaceable>
- </literallayout>
- As with all extractions, the command uses
- the recipe's <filename>SRC_URI</filename> to locate the
- source files.
- Once the files are located, the command by default
- extracts them.
- Providing the <replaceable>srctree</replaceable>
- argument instructs <filename>devtool</filename> where
- place the extracted source.</para>
-
- <para>Within workspace, <filename>devtool</filename>
- creates an append file for the recipe.
- The recipe remains in its original location but
- the source files are extracted to the location you
- provided with <replaceable>srctree</replaceable>.
- </para></listitem>
- <listitem><para><emphasis>Right</emphasis>:
- The right scenario represents a situation
- where the source tree
- (<replaceable>srctree</replaceable>) exists as a
- previously extracted Git structure outside of
- the <filename>devtool</filename> workspace.
- In this example, the recipe also exists
- elsewhere in its own layer.
- </para>
-
- <para>The following command tells
- <filename>devtool</filename> the recipe
- with which to work, uses the "-n" option to indicate
- source does not need to be extracted, and uses
- <replaceable>srctree</replaceable> to point to the
- previously extracted source files:
- <literallayout class='monospaced'>
- $ devtool modify -n <replaceable>recipe srctree</replaceable>
- </literallayout>
- </para>
+ Where:
+ <replaceable>host_system</replaceable> is a string representing your development system:
- <para>Once the command finishes, it creates only
- an append file for the recipe in the workspace.
- The recipe and the source code remain in their
- original locations.
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para><emphasis>Edit the Source</emphasis>:
- Once you have used the <filename>devtool modify</filename>
- command, you are free to make changes to the source
- files.
- You can use any editor you like to make and save
- your source code modifications.
- </para></listitem>
- <listitem><para><emphasis>Build the Recipe</emphasis>:
- Once you have updated the source files, you can build
- the recipe.
- </para></listitem>
- <listitem><para><emphasis>Deploy the Build Output</emphasis>:
- When you use the <filename>devtool build</filename>
- command to build out your recipe, you probably want to see
- if the resulting build output works as expected on target
- hardware.
- <note>
- This step assumes you have a previously built
- image that is already either running in QEMU or
- running on actual hardware.
- Also, it is assumed that for deployment of the image
- to the target, SSH is installed in the image and if
- the image is running on real hardware that you have
- network access to and from your development machine.
- </note>
- You can deploy your build output to that target hardware by
- using the <filename>devtool deploy-target</filename> command:
- <literallayout class='monospaced'>
- $ devtool deploy-target <replaceable>recipe target</replaceable>
- </literallayout>
- The <replaceable>target</replaceable> is a live target machine
- running as an SSH server.</para>
-
- <para>You can, of course, also deploy the image you build
- using the <filename>devtool build-image</filename> command
- to actual hardware.
- However, <filename>devtool</filename> does not provide a
- specific command that allows you to do this.
- </para></listitem>
- <listitem><para><emphasis>Optionally Create Patch Files for Your Changes</emphasis>:
- After you have debugged your changes, you can
- use <filename>devtool update-recipe</filename> to
- generate patch files for all the commits you have
- made.
- <note>
- Patch files are generated only for changes
- you have committed.
- </note>
- <literallayout class='monospaced'>
- $ devtool update-recipe <replaceable>recipe</replaceable>
- </literallayout>
- By default, the
- <filename>devtool update-recipe</filename> command
- creates the patch files in a folder named the same
- as the recipe beneath the folder in which the recipe
- resides, and updates the recipe's
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
- statement to point to the generated patch files.
- <note>
- You can use the
- "--append <replaceable>LAYERDIR</replaceable>"
- option to cause the command to create append files
- in a specific layer rather than the default
- recipe layer.
- </note>
- </para></listitem>
- <listitem><para><emphasis>Restore the Workspace</emphasis>:
- The <filename>devtool reset</filename> restores the
- state so that standard layers and upstream sources are
- used to build the recipe rather than what is in the
- workspace.
- <literallayout class='monospaced'>
- $ devtool reset <replaceable>recipe</replaceable>
- </literallayout>
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-</section>
+ i686 or x86_64.
-<section id='sdk-a-closer-look-at-devtool-add'>
- <title>A Closer Look at <filename>devtool add</filename></title>
+ <replaceable>image_type</replaceable> is the image for which the SDK was built.
- <para>
- The <filename>devtool add</filename> command automatically creates a
- recipe based on the source tree with which you provide it.
- Currently, the command has support for the following:
- <itemizedlist>
- <listitem><para>
- Autotools (<filename>autoconf</filename> and
- <filename>automake</filename>)
- </para></listitem>
- <listitem><para>
- CMake
- </para></listitem>
- <listitem><para>
- Scons
- </para></listitem>
- <listitem><para>
- <filename>qmake</filename>
- </para></listitem>
- <listitem><para>
- Plain <filename>Makefile</filename>
- </para></listitem>
- <listitem><para>
- Out-of-tree kernel module
- </para></listitem>
- <listitem><para>
- Binary package (i.e. "-b" option)
- </para></listitem>
- <listitem><para>
- Node.js module through
- <filename>npm</filename>
- </para></listitem>
- <listitem><para>
- Python modules that use <filename>setuptools</filename>
- or <filename>distutils</filename>
- </para></listitem>
- </itemizedlist>
- </para>
+ <replaceable>arch</replaceable> is a string representing the tuned target architecture:
- <para>
- Apart from binary packages, the determination of how a source tree
- should be treated is automatic based on the files present within
- that source tree.
- For example, if a <filename>CMakeLists.txt</filename> file is found,
- then the source tree is assumed to be using
- CMake and is treated accordingly.
- <note>
- In most cases, you need to edit the automatically generated
- recipe in order to make it build properly.
- Typically, you would go through several edit and build cycles
- until you can build the recipe.
- Once the recipe can be built, you could use possible further
- iterations to test the recipe on the target device.
- </note>
- </para>
+ i586, x86_64, powerpc, mips, armv7a or armv5te
- <para>
- The remainder of this section covers specifics regarding how parts
- of the recipe are generated.
- </para>
+ <replaceable>release_version</replaceable> is a string representing the release number of the
+ Yocto Project:
- <section id='sdk-name-and-version'>
- <title>Name and Version</title>
+ &DISTRO;, &DISTRO;+snapshot
+ </literallayout>
+ For example, the following SDK installer is for a 64-bit
+ development host system and a i586-tuned target architecture
+ based off the SDK for <filename>core-image-sato</filename> and
+ using the current &DISTRO; snapshot:
+ <literallayout class='monospaced'>
+ poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh
+ </literallayout>
+ <note>
+ As an alternative to downloading an SDK, you can build the
+ SDK installer.
+ For information on building the installer, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ Another helpful resource for building an installer is the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ This wiki page focuses on development when using the Eclipse
+ IDE.
+ </note>
+ </para>
<para>
- If you do not specify a name and version on the command
- line, <filename>devtool add</filename> attempts to determine
- the name and version of the software being built from
- various metadata within the source tree.
- Furthermore, the command sets the name of the created recipe
- file accordingly.
- If the name or version cannot be determined, the
- <filename>devtool add</filename> command prints an error and
- you must re-run the command with both the name and version
- or just the name or version specified.
+ The SDK and toolchains are self-contained and by default are
+ installed into the <filename>poky_sdk</filename> folder in your
+ home directory.
+ You can choose to install the extensible SDK in any location when
+ you run the installer.
+ However, the location you choose needs to be writable for whichever
+ users need to use the SDK, since files will need to be written
+ under that directory during the normal course of operation.
</para>
<para>
- Sometimes the name or version determined from the source tree
- might be incorrect.
- For such a case, you must reset the recipe:
+ The following command shows how to run the installer given a
+ toolchain tarball for a 64-bit x86 development host system and
+ a 64-bit x86 target architecture.
+ The example assumes the SDK installer is located in
+ <filename>~/Downloads/</filename>.
+ <note>
+ If you do not have write permissions for the directory
+ into which you are installing the SDK, the installer
+ notifies you and exits.
+ Be sure you have write permissions in the directory and
+ run the installer again.
+ </note>
<literallayout class='monospaced'>
- $ devtool reset -n <replaceable>recipename</replaceable>
+ $ ./poky-glibc-x86_64-core-image-minimal-core2-64-toolchain-ext-&DISTRO;.sh
+ Poky (Yocto Project Reference Distro) Extensible SDK installer version &DISTRO;
+ ===================================================================================
+ Enter target directory for SDK (default: ~/poky_sdk):
+ You are about to install the SDK to "/home/scottrif/poky_sdk". Proceed[Y/n]? Y
+ Extracting SDK......................................................................done
+ Setting it up...
+ Extracting buildtools...
+ Preparing build system...
+ done
+ SDK has been successfully set up and is ready to be used.
+ Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
+ $ . /home/scottrif/poky_sdk/environment-setup-core2-64-poky-linux
</literallayout>
- After running the <filename>devtool reset</filename> command,
- you need to run <filename>devtool add</filename> again and
- provide the name or the version.
</para>
</section>
- <section id='sdk-dependency-detection-and-mapping'>
- <title>Dependency Detection and Mapping</title>
+ <section id='sdk-running-the-extensible-sdk-environment-setup-script'>
+ <title>Running the Extensible SDK Environment Setup Script</title>
<para>
- The <filename>devtool add</filename> command attempts to
- detect build-time dependencies and map them to other recipes
- in the system.
- During this mapping, the command fills in the names of those
- recipes in the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
- value within the recipe.
- If a dependency cannot be mapped, then a comment is placed in
- the recipe indicating such.
- The inability to map a dependency might be caused because the
- naming is not recognized or because the dependency simply is
- not available.
- For cases where the dependency is not available, you must use
- the <filename>devtool add</filename> command to add an
- additional recipe to satisfy the dependency and then come
- back to the first recipe and add its name to
- <filename>DEPENDS</filename>.
+ Once you have the SDK installed, you must run the SDK environment
+ setup script before you can actually use it.
+ This setup script resides in the directory you chose when you
+ installed the SDK, which is either the default
+ <filename>poky_sdk</filename> directory or the directory you
+ chose during installation.
</para>
<para>
- If you need to add runtime dependencies, you can do so by
- adding the following to your recipe:
+ Before running the script, be sure it is the one that matches the
+ architecture for which you are developing.
+ Environment setup scripts begin with the string
+ "<filename>environment-setup</filename>" and include as part of
+ their name the tuned target architecture.
+ As an example, the following commands set the working directory
+ to where the SDK was installed and then source the environment
+ setup script.
+ In this example, the setup script is for an IA-based
+ target machine using i586 tuning:
<literallayout class='monospaced'>
- RDEPENDS_${PN} += "dependency1 dependency2 ..."
+ $ cd /home/scottrif/poky_sdk
+ $ source environment-setup-core2-64-poky-linux
+ SDK environment now set up; additionally you may now run devtool to perform development tasks.
+ Run devtool --help for further details.
+ </literallayout>
+ When you run the setup script, many environment variables are
+ defined:
+ <literallayout class='monospaced'>
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKTARGETSYSROOT'><filename>SDKTARGETSYSROOT</filename></ulink> - The path to the sysroot used for cross-compilation
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PKG_CONFIG_PATH'><filename>PKG_CONFIG_PATH</filename></ulink> - The path to the target pkg-config files
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIG_SITE'><filename>CONFIG_SITE</filename></ulink> - A GNU autoconf site file preconfigured for the target
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink> - The minimal command and arguments to run the C compiler
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CXX'><filename>CXX</filename></ulink> - The minimal command and arguments to run the C++ compiler
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CPP'><filename>CPP</filename></ulink> - The minimal command and arguments to run the C preprocessor
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-AS'><filename>AS</filename></ulink> - The minimal command and arguments to run the assembler
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink> - The minimal command and arguments to run the linker
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-GDB'><filename>GDB</filename></ulink> - The minimal command and arguments to run the GNU Debugger
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-STRIP'><filename>STRIP</filename></ulink> - The minimal command and arguments to run 'strip', which strips symbols
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-RANLIB'><filename>RANLIB</filename></ulink> - The minimal command and arguments to run 'ranlib'
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJCOPY'><filename>OBJCOPY</filename></ulink> - The minimal command and arguments to run 'objcopy'
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJDUMP'><filename>OBJDUMP</filename></ulink> - The minimal command and arguments to run 'objdump'
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-AR'><filename>AR</filename></ulink> - The minimal command and arguments to run 'ar'
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-NM'><filename>NM</filename></ulink> - The minimal command and arguments to run 'nm'
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></ulink> - The toolchain binary prefix for the target tools
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CROSS_COMPILE'><filename>CROSS_COMPILE</filename></ulink> - The toolchain binary prefix for the target tools
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink> - The minimal arguments for GNU configure
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'><filename>CFLAGS</filename></ulink> - Suggested C flags
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'><filename>CXXFLAGS</filename></ulink> - Suggested C++ flags
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-LDFLAGS'><filename>LDFLAGS</filename></ulink> - Suggested linker flags when you use CC to link
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CPPFLAGS'><filename>CPPFLAGS</filename></ulink> - Suggested preprocessor flags
</literallayout>
- <note>
- The <filename>devtool add</filename> command often cannot
- distinguish between mandatory and optional dependencies.
- Consequently, some of the detected dependencies might
- in fact be optional.
- When in doubt, consult the documentation or the configure
- script for the software the recipe is building for further
- details.
- In some cases, you might find you can substitute the
- dependency for an option to disable the associated
- functionality passed to the configure script.
- </note>
</para>
</section>
- <section id='sdk-license-detection'>
- <title>License Detection</title>
+ <section id='using-devtool-in-your-sdk-workflow'>
+ <title>Using <filename>devtool</filename> in Your SDK Workflow</title>
<para>
- The <filename>devtool add</filename> command attempts to
- determine if the software you are adding is able to be
- distributed under a common open-source license and sets the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink>
- value accordingly.
- You should double-check this value against the documentation
- or source files for the software you are building and update
- that <filename>LICENSE</filename> value if necessary.
+ The cornerstone of the extensible SDK is a command-line tool
+ called <filename>devtool</filename>.
+ This tool provides a number of features that help
+ you build, test and package software within the extensible SDK, and
+ optionally integrate it into an image built by the OpenEmbedded
+ build system.
</para>
<para>
- The <filename>devtool add</filename> command also sets the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></ulink>
- value to point to all files that appear to be license-related.
- However, license statements often appear in comments at the top
- of source files or within documentation.
- Consequently, you might need to amend the
- <filename>LIC_FILES_CHKSUM</filename> variable to point to one
- or more of those comments if present.
- Setting <filename>LIC_FILES_CHKSUM</filename> is particularly
- important for third-party software.
- The mechanism attempts to ensure correct licensing should you
- upgrade the recipe to a newer upstream version in future.
- Any change in licensing is detected and you receive an error
- prompting you to check the license text again.
+ The <filename>devtool</filename> command line is organized
+ similarly to
+ <ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink> in that it has a
+ number of sub-commands for each function.
+ You can run <filename>devtool --help</filename> to see all the
+ commands.
</para>
<para>
- If the <filename>devtool add</filename> command cannot
- determine licensing information, the
- <filename>LICENSE</filename> value is set to "CLOSED" and the
- <filename>LIC_FILES_CHKSUM</filename> vaule remains unset.
- This behavior allows you to continue with development but is
- unlikely to be correct in all cases.
- Consequently, you should check the documentation or source
- files for the software you are building to determine the actual
- license.
+ Three <filename>devtool</filename> subcommands that provide
+ entry-points into development are:
+ <itemizedlist>
+ <listitem><para>
+ <emphasis><filename>devtool add</filename></emphasis>:
+ Assists in adding new software to be built.
+ </para></listitem>
+ <listitem><para>
+ <emphasis><filename>devtool modify</filename></emphasis>:
+ Sets up an environment to enable you to modify the source of
+ an existing component.
+ </para></listitem>
+ <listitem><para>
+ <emphasis><filename>devtool upgrade</filename></emphasis>:
+ Updates an existing recipe so that you can build it for
+ an updated set of source files.
+ </para></listitem>
+ </itemizedlist>
+ As with the OpenEmbedded build system, "recipes" represent software
+ packages within <filename>devtool</filename>.
+ When you use <filename>devtool add</filename>, a recipe is
+ automatically created.
+ When you use <filename>devtool modify</filename>, the specified
+ existing recipe is used in order to determine where to get the source
+ code and how to patch it.
+ In both cases, an environment is set up so that when you build the
+ recipe a source tree that is under your control is used in order to
+ allow you to make changes to the source as desired.
+ By default, both new recipes and the source go into a "workspace"
+ directory under the SDK.
</para>
- </section>
-
- <section id='sdk-adding-makefile-only-software'>
- <title>Adding Makefile-Only Software</title>
<para>
- The use of <filename>make</filename> by itself is very common
- in both proprietary and open source software.
- Unfortunately, Makefiles are often not written with
- cross-compilation in mind.
- Thus, <filename>devtool add</filename> often cannot do very
- much to ensure that these Makefiles build correctly.
- It is very common, for example, to explicitly call
- <filename>gcc</filename> instead of using the
- <filename>CC</filename> variable.
- Usually, in a cross-compilation environment,
- <filename>gcc</filename> is the compiler for the build host
- and the cross-compiler is named something similar to
- <filename>arm-poky-linux-gnueabi-gcc</filename> and might
- require some arguments (e.g. to point to the associated sysroot
- for the target machine).
+ The remainder of this section presents the
+ <filename>devtool add</filename>,
+ <filename>devtool modify</filename>, and
+ <filename>devtool upgrade</filename> workflows.
</para>
+ <section id='sdk-use-devtool-to-add-an-application'>
+ <title>Use <filename>devtool add</filename> to Add an Application</title>
+
+ <para>
+ The <filename>devtool add</filename> command generates
+ a new recipe based on existing source code.
+ This command takes advantage of the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#devtool-the-workspace-layer-structure'>workspace</ulink>
+ layer that many <filename>devtool</filename> commands
+ use.
+ The command is flexible enough to allow you to extract source
+ code into both the workspace or a separate local Git repository
+ and to use existing code that does not need to be extracted.
+ </para>
+
+ <para>
+ Depending on your particular scenario, the arguments and options
+ you use with <filename>devtool add</filename> form different
+ combinations.
+ The following diagram shows common development flows
+ you would use with the <filename>devtool add</filename>
+ command:
+ </para>
+
+ <para>
+ <imagedata fileref="figures/sdk-devtool-add-flow.png" align="center" />
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Generating the New Recipe</emphasis>:
+ The top part of the flow shows three scenarios by which
+ you could use <filename>devtool add</filename> to
+ generate a recipe based on existing source code.</para>
+
+ <para>In a shared development environment, it is
+ typical where other developers are responsible for
+ various areas of source code.
+ As a developer, you are probably interested in using
+ that source code as part of your development using
+ the Yocto Project.
+ All you need is access to the code, a recipe, and a
+ controlled area in which to do your work.</para>
+
+ <para>Within the diagram, three possible scenarios
+ feed into the <filename>devtool add</filename> workflow:
+ <itemizedlist>
+ <listitem><para><emphasis>Left</emphasis>:
+ The left scenario represents a common situation
+ where the source code does not exist locally
+ and needs to be extracted.
+ In this situation, you just let it get
+ extracted to the default workspace - you do not
+ want it in some specific location outside of the
+ workspace.
+ Thus, everything you need will be located in the
+ workspace:
+ <literallayout class='monospaced'>
+ $ devtool add <replaceable>recipe fetchuri</replaceable>
+ </literallayout>
+ With this command, <filename>devtool</filename>
+ creates a recipe and an append file in the
+ workspace as well as extracts the upstream
+ source files into a local Git repository also
+ within the <filename>sources</filename> folder.
+ </para></listitem>
+ <listitem><para><emphasis>Middle</emphasis>:
+ The middle scenario also represents a situation where
+ the source code does not exist locally.
+ In this case, the code is again upstream
+ and needs to be extracted to some
+ local area - this time outside of the default
+ workspace.
+ If required, <filename>devtool</filename>
+ always creates
+ a Git repository locally during the extraction.
+ Furthermore, the first positional argument
+ <replaceable>srctree</replaceable> in this case
+ identifies where the
+ <filename>devtool add</filename> command
+ will locate the extracted code outside of the
+ workspace:
+ <literallayout class='monospaced'>
+ $ devtool add <replaceable>recipe srctree fetchuri</replaceable>
+ </literallayout>
+ In summary, the source code is pulled from
+ <replaceable>fetchuri</replaceable> and extracted
+ into the location defined by
+ <replaceable>srctree</replaceable> as a local
+ Git repository.</para>
+
+ <para>Within workspace, <filename>devtool</filename>
+ creates both the recipe and an append file
+ for the recipe.
+ </para></listitem>
+ <listitem><para><emphasis>Right</emphasis>:
+ The right scenario represents a situation
+ where the source tree (srctree) has been
+ previously prepared outside of the
+ <filename>devtool</filename> workspace.
+ </para>
+
+ <para>The following command names the recipe
+ and identifies where the existing source tree
+ is located:
+ <literallayout class='monospaced'>
+ $ devtool add <replaceable>recipe srctree</replaceable>
+ </literallayout>
+ The command examines the source code and creates
+ a recipe for it placing the recipe into the
+ workspace.</para>
+
+ <para>Because the extracted source code already exists,
+ <filename>devtool</filename> does not try to
+ relocate it into the workspace - just the new
+ the recipe is placed in the workspace.</para>
+
+ <para>Aside from a recipe folder, the command
+ also creates an append folder and places an initial
+ <filename>*.bbappend</filename> within.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para><emphasis>Edit the Recipe</emphasis>:
+ At this point, you can use <filename>devtool edit-recipe</filename>
+ to open up the editor as defined by the
+ <filename>$EDITOR</filename> environment variable
+ and modify the file:
+ <literallayout class='monospaced'>
+ $ devtool edit-recipe <replaceable>recipe</replaceable>
+ </literallayout>
+ From within the editor, you can make modifications to the
+ recipe that take affect when you build it later.
+ </para></listitem>
+ <listitem><para><emphasis>Build the Recipe or Rebuild the Image</emphasis>:
+ At this point in the flow, the next step you
+ take depends on what you are going to do with
+ the new code.</para>
+ <para>If you need to take the build output and eventually
+ move it to the target hardware, you would use
+ <filename>devtool build</filename>:
+ <literallayout class='monospaced'>
+ $ devtool build <replaceable>recipe</replaceable>
+ </literallayout></para>
+ <para>On the other hand, if you want an image to
+ contain the recipe's packages for immediate deployment
+ onto a device (e.g. for testing purposes), you can use
+ the <filename>devtool build-image</filename> command:
+ <literallayout class='monospaced'>
+ $ devtool build-image <replaceable>image</replaceable>
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Deploy the Build Output</emphasis>:
+ When you use the <filename>devtool build</filename>
+ command to build out your recipe, you probably want to
+ see if the resulting build output works as expected on target
+ hardware.
+ <note>
+ This step assumes you have a previously built
+ image that is already either running in QEMU or
+ running on actual hardware.
+ Also, it is assumed that for deployment of the image
+ to the target, SSH is installed in the image and if
+ the image is running on real hardware that you have
+ network access to and from your development machine.
+ </note>
+ You can deploy your build output to that target hardware by
+ using the <filename>devtool deploy-target</filename> command:
+ <literallayout class='monospaced'>
+ $ devtool deploy-target <replaceable>recipe target</replaceable>
+ </literallayout>
+ The <replaceable>target</replaceable> is a live target machine
+ running as an SSH server.</para>
+
+ <para>You can, of course, also deploy the image you build
+ using the <filename>devtool build-image</filename> command
+ to actual hardware.
+ However, <filename>devtool</filename> does not provide a
+ specific command that allows you to do this.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ <literallayout class='monospaced'>
+ $ devtool finish <replaceable>recipe layer</replaceable>
+ </literallayout>
+ <note>
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+ </note></para>
+
+ <para>As mentioned, the <filename>devtool finish</filename>
+ command moves the final recipe to its permanent layer.
+ </para>
+
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component'>
+ <title>Use <filename>devtool modify</filename> to Modify the Source of an Existing Component</title>
+
+ <para>
+ The <filename>devtool modify</filename> command prepares the
+ way to work on existing code that already has a recipe in
+ place.
+ The command is flexible enough to allow you to extract code,
+ specify the existing recipe, and keep track of and gather any
+ patch files from other developers that are
+ associated with the code.
+ </para>
+
+ <para>
+ Depending on your particular scenario, the arguments and options
+ you use with <filename>devtool modify</filename> form different
+ combinations.
+ The following diagram shows common development flows
+ you would use with the <filename>devtool modify</filename>
+ command:
+ </para>
+
+ <para>
+ <imagedata fileref="figures/sdk-devtool-modify-flow.png" align="center" />
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Preparing to Modify the Code</emphasis>:
+ The top part of the flow shows three scenarios by which
+ you could use <filename>devtool modify</filename> to
+ prepare to work on source files.
+ Each scenario assumes the following:
+ <itemizedlist>
+ <listitem><para>The recipe exists in some layer external
+ to the <filename>devtool</filename> workspace.
+ </para></listitem>
+ <listitem><para>The source files exist upstream in an
+ un-extracted state or locally in a previously
+ extracted state.
+ </para></listitem>
+ </itemizedlist>
+ The typical situation is where another developer has
+ created some layer for use with the Yocto Project and
+ their recipe already resides in that layer.
+ Furthermore, their source code is readily available
+ either upstream or locally.
+ <itemizedlist>
+ <listitem><para><emphasis>Left</emphasis>:
+ The left scenario represents a common situation
+ where the source code does not exist locally
+ and needs to be extracted.
+ In this situation, the source is extracted
+ into the default workspace location.
+ The recipe, in this scenario, is in its own
+ layer outside the workspace
+ (i.e.
+ <filename>meta-</filename><replaceable>layername</replaceable>).
+ </para>
+
+ <para>The following command identifies the recipe
+ and by default extracts the source files:
+ <literallayout class='monospaced'>
+ $ devtool modify <replaceable>recipe</replaceable>
+ </literallayout>
+ Once <filename>devtool</filename>locates the recipe,
+ it uses the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
+ variable to locate the source code and
+ any local patch files from other developers are
+ located.
+ <note>
+ You cannot provide an URL for
+ <replaceable>srctree</replaceable> when using the
+ <filename>devtool modify</filename> command.
+ </note>
+ With this scenario, however, since no
+ <replaceable>srctree</replaceable> argument exists, the
+ <filename>devtool modify</filename> command by default
+ extracts the source files to a Git structure.
+ Furthermore, the location for the extracted source is the
+ default area within the workspace.
+ The result is that the command sets up both the source
+ code and an append file within the workspace with the
+ recipe remaining in its original location.
+ </para></listitem>
+ <listitem><para><emphasis>Middle</emphasis>:
+ The middle scenario represents a situation where
+ the source code also does not exist locally.
+ In this case, the code is again upstream
+ and needs to be extracted to some
+ local area as a Git repository.
+ The recipe, in this scenario, is again in its own
+ layer outside the workspace.</para>
+
+ <para>The following command tells
+ <filename>devtool</filename> what recipe with
+ which to work and, in this case, identifies a local
+ area for the extracted source files that is outside
+ of the default workspace:
+ <literallayout class='monospaced'>
+ $ devtool modify <replaceable>recipe srctree</replaceable>
+ </literallayout>
+ As with all extractions, the command uses
+ the recipe's <filename>SRC_URI</filename> to locate the
+ source files.
+ Once the files are located, the command by default
+ extracts them.
+ Providing the <replaceable>srctree</replaceable>
+ argument instructs <filename>devtool</filename> where
+ place the extracted source.</para>
+
+ <para>Within workspace, <filename>devtool</filename>
+ creates an append file for the recipe.
+ The recipe remains in its original location but
+ the source files are extracted to the location you
+ provided with <replaceable>srctree</replaceable>.
+ </para></listitem>
+ <listitem><para><emphasis>Right</emphasis>:
+ The right scenario represents a situation
+ where the source tree
+ (<replaceable>srctree</replaceable>) exists as a
+ previously extracted Git structure outside of
+ the <filename>devtool</filename> workspace.
+ In this example, the recipe also exists
+ elsewhere in its own layer.
+ </para>
+
+ <para>The following command tells
+ <filename>devtool</filename> the recipe
+ with which to work, uses the "-n" option to indicate
+ source does not need to be extracted, and uses
+ <replaceable>srctree</replaceable> to point to the
+ previously extracted source files:
+ <literallayout class='monospaced'>
+ $ devtool modify -n <replaceable>recipe srctree</replaceable>
+ </literallayout>
+ </para>
+
+ <para>Once the command finishes, it creates only
+ an append file for the recipe in the workspace.
+ The recipe and the source code remain in their
+ original locations.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para><emphasis>Edit the Source</emphasis>:
+ Once you have used the <filename>devtool modify</filename>
+ command, you are free to make changes to the source
+ files.
+ You can use any editor you like to make and save
+ your source code modifications.
+ </para></listitem>
+ <listitem><para><emphasis>Build the Recipe</emphasis>:
+ Once you have updated the source files, you can build
+ the recipe.
+ </para></listitem>
+ <listitem><para><emphasis>Deploy the Build Output</emphasis>:
+ When you use the <filename>devtool build</filename>
+ command to build out your recipe, you probably want to see
+ if the resulting build output works as expected on target
+ hardware.
+ <note>
+ This step assumes you have a previously built
+ image that is already either running in QEMU or
+ running on actual hardware.
+ Also, it is assumed that for deployment of the image
+ to the target, SSH is installed in the image and if
+ the image is running on real hardware that you have
+ network access to and from your development machine.
+ </note>
+ You can deploy your build output to that target hardware by
+ using the <filename>devtool deploy-target</filename> command:
+ <literallayout class='monospaced'>
+ $ devtool deploy-target <replaceable>recipe target</replaceable>
+ </literallayout>
+ The <replaceable>target</replaceable> is a live target machine
+ running as an SSH server.</para>
+
+ <para>You can, of course, also deploy the image you build
+ using the <filename>devtool build-image</filename> command
+ to actual hardware.
+ However, <filename>devtool</filename> does not provide a
+ specific command that allows you to do this.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, updates the recipe to point to them
+ (or creates a <filename>.bbappend</filename> file to do
+ so, depending on the specified destination layer), and
+ then resets the recipe so that the recipe is built normally
+ rather than from the workspace.
+ <literallayout class='monospaced'>
+ $ devtool finish <replaceable>recipe layer</replaceable>
+ </literallayout>
+ <note>
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+ </note></para>
+
+ <para>Because there is no need to move the recipe,
+ <filename>devtool finish</filename> either updates the
+ original recipe in the original layer or the command
+ creates a <filename>.bbappend</filename> in a different
+ layer as provided by <replaceable>layer</replaceable>.
+ </para>
+
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='sdk-devtool-use-devtool-upgrade-to-create-a-version-of-the-recipe-that-supports-a-newer-version-of-the-software'>
+ <title>Use <filename>devtool upgrade</filename> to Create a Version of the Recipe that Supports a Newer Version of the Software</title>
+
+ <para>
+ The <filename>devtool upgrade</filename> command updates
+ an existing recipe so that you can build it for an updated
+ set of source files.
+ The command is flexible enough to allow you to specify
+ source code revision and versioning schemes, extract code into
+ or out of the <filename>devtool</filename> workspace, and
+ work with any source file forms that the fetchers support.
+ </para>
+
+ <para>
+ Depending on your particular scenario, the arguments and options
+ you use with <filename>devtool upgrade</filename> form different
+ combinations.
+ The following diagram shows a common development flow
+ you would use with the <filename>devtool modify</filename>
+ command:
+ </para>
+
+ <para>
+ <imagedata fileref="figures/sdk-devtool-upgrade-flow.png" align="center" />
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Initiate the Upgrade</emphasis>:
+ The top part of the flow shows a typical scenario by which
+ you could use <filename>devtool upgrade</filename>.
+ The following conditions exist:
+ <itemizedlist>
+ <listitem><para>The recipe exists in some layer external
+ to the <filename>devtool</filename> workspace.
+ </para></listitem>
+ <listitem><para>The source files for the new release
+ exist adjacent to the same location pointed to by
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
+ in the recipe (e.g. a tarball with the new version
+ number in the name, or as a different revision in
+ the upstream Git repository).
+ </para></listitem>
+ </itemizedlist>
+ A common situation is where third-party software has
+ undergone a revision so that it has been upgraded.
+ The recipe you have access to is likely in your own layer.
+ Thus, you need to upgrade the recipe to use the
+ newer version of the software:
+ <literallayout class='monospaced'>
+ $ devtool upgrade -V <replaceable>version recipe</replaceable>
+ </literallayout>
+ By default, the <filename>devtool upgrade</filename> command
+ extracts source code into the <filename>sources</filename>
+ directory in the workspace.
+ If you want the code extracted to any other location, you
+ need to provide the <replaceable>srctree</replaceable>
+ positional argument with the command as follows:
+ <literallayout class='monospaced'>
+ $ devtool upgrade -V <replaceable>version recipe srctree</replaceable>
+ </literallayout>
+ Also, in this example, the "-V" option is used to specify
+ the new version.
+ If the source files pointed to by the
+ <filename>SRC_URI</filename> statement in the recipe are
+ in a Git repository, you must provide the "-S" option and
+ specify a revision for the software.</para>
+
+ <para>Once <filename>devtool</filename> locates the recipe,
+ it uses the <filename>SRC_URI</filename> variable to locate
+ the source code and any local patch files from other
+ developers are located.
+ The result is that the command sets up the source
+ code, the new version of the recipe, and an append file
+ all within the workspace.
+ </para></listitem>
+ <listitem><para><emphasis>Resolve any Conflicts created by the Upgrade</emphasis>:
+ At this point, there could be some conflicts due to the
+ software being upgraded to a new version.
+ This would occur if your recipe specifies some patch files in
+ <filename>SRC_URI</filename> that conflict with changes
+ made in the new version of the software.
+ If this is the case, you need to resolve the conflicts
+ by editing the source and following the normal
+ <filename>git rebase</filename> conflict resolution
+ process.</para>
+ <para>Before moving onto the next step, be sure to resolve any
+ such conflicts created through use of a newer or different
+ version of the software.
+ </para></listitem>
+ <listitem><para><emphasis>Build the Recipe</emphasis>:
+ Once you have your recipe in order, you can build it.
+ You can either use <filename>devtool build</filename> or
+ <filename>bitbake</filename>.
+ Either method produces build output that is stored
+ in
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>.
+ </para></listitem>
+ <listitem><para><emphasis>Deploy the Build Output</emphasis>:
+ When you use the <filename>devtool build</filename>
+ command or <filename>bitbake</filename> to build out your
+ recipe, you probably want to see if the resulting build
+ output works as expected on target hardware.
+ <note>
+ This step assumes you have a previously built
+ image that is already either running in QEMU or
+ running on actual hardware.
+ Also, it is assumed that for deployment of the image
+ to the target, SSH is installed in the image and if
+ the image is running on real hardware that you have
+ network access to and from your development machine.
+ </note>
+ You can deploy your build output to that target hardware by
+ using the <filename>devtool deploy-target</filename> command:
+ <literallayout class='monospaced'>
+ $ devtool deploy-target <replaceable>recipe target</replaceable>
+ </literallayout>
+ The <replaceable>target</replaceable> is a live target machine
+ running as an SSH server.</para>
+ <para>You can, of course, also deploy the image you build
+ using the <filename>devtool build-image</filename> command
+ to actual hardware.
+ However, <filename>devtool</filename> does not provide a
+ specific command that allows you to do this.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Finish Your Work With the Recipe</emphasis>:
+ The <filename>devtool finish</filename> command creates
+ any patches corresponding to commits in the local
+ Git repository, moves the new recipe to a more permanent
+ layer, and then resets the recipe so that the recipe is
+ built normally rather than from the workspace.
+ If you specify a destination layer that is the same as
+ the original source, then the old version of the
+ recipe and associated files will be removed prior to
+ adding the new version.
+ <literallayout class='monospaced'>
+ $ devtool finish <replaceable>recipe layer</replaceable>
+ </literallayout>
+ <note>
+ Any changes you want to turn into patches must be
+ committed to the Git repository in the source tree.
+ </note></para>
+ <para>As a final process of the
+ <filename>devtool finish</filename> command, the state
+ of the standard layers and the upstream source is
+ restored so that you can build the recipe from those
+ areas rather than the workspace.
+ <note>
+ You can use the <filename>devtool reset</filename>
+ command to put things back should you decide you
+ do not want to proceed with your work.
+ If you do use this command, realize that the source
+ tree is preserved.
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+ </section>
+
+ <section id='sdk-a-closer-look-at-devtool-add'>
+ <title>A Closer Look at <filename>devtool add</filename></title>
+
<para>
- When writing a recipe for Makefile-only software, keep the
- following in mind:
+ The <filename>devtool add</filename> command automatically creates a
+ recipe based on the source tree with which you provide it.
+ Currently, the command has support for the following:
<itemizedlist>
<listitem><para>
- You probably need to patch the Makefile to use
- variables instead of hardcoding tools within the
- toolchain such as <filename>gcc</filename> and
- <filename>g++</filename>.
+ Autotools (<filename>autoconf</filename> and
+ <filename>automake</filename>)
</para></listitem>
<listitem><para>
- The environment in which <filename>make</filename> runs
- is set up with various standard variables for
- compilation (e.g. <filename>CC</filename>,
- <filename>CXX</filename>, and so forth) in a similar
- manner to the environment set up by the SDK's
- environment setup script.
- One easy way to see these variables is to run the
- <filename>devtool build</filename> command on the
- recipe and then look in
- <filename>oe-logs/run.do_compile</filename>.
- Towards the top of this file you will see a list of
- environment variables that are being set.
- You can take advantage of these variables within the
- Makefile.
+ CMake
</para></listitem>
<listitem><para>
- If the Makefile sets a default for a variable using "=",
- that default overrides the value set in the environment,
- which is usually not desirable.
- In this situation, you can either patch the Makefile
- so it sets the default using the "?=" operator, or
- you can alternatively force the value on the
- <filename>make</filename> command line.
- To force the value on the command line, add the
- variable setting to
- <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></ulink>
- within the recipe as follows:
- <literallayout class='monospaced'>
- EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'"
- </literallayout>
- In the above example, single quotes are used around the
- variable settings as the values are likely to contain
- spaces because required default options are passed to
- the compiler.
+ Scons
</para></listitem>
<listitem><para>
- Hardcoding paths inside Makefiles is often problematic
- in a cross-compilation environment.
- This is particularly true because those hardcoded paths
- often point to locations on the build host and thus
- will either be read-only or will introduce
- contamination into the cross-compilation by virtue of
- being specific to the build host rather than the target.
- Patching the Makefile to use prefix variables or other
- path variables is usually the way to handle this.
+ <filename>qmake</filename>
</para></listitem>
<listitem><para>
- Sometimes a Makefile runs target-specific commands such
- as <filename>ldconfig</filename>.
- For such cases, you might be able to simply apply
- patches that remove these commands from the Makefile.
+ Plain <filename>Makefile</filename>
+ </para></listitem>
+ <listitem><para>
+ Out-of-tree kernel module
+ </para></listitem>
+ <listitem><para>
+ Binary package (i.e. "-b" option)
</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='sdk-adding-native-tools'>
- <title>Adding Native Tools</title>
-
- <para>
- Often, you need to build additional tools that run on the
- build host system as opposed to the target.
- You should indicate this using one of the following methods
- when you run <filename>devtool add</filename>:
- <itemizedlist>
<listitem><para>
- Specify the name of the recipe such that it ends
- with "-native".
- Specifying the name like this produces a recipe that
- only builds for the build host.
+ Node.js module
</para></listitem>
<listitem><para>
- Specify the "&dash;&dash;also-native" option with the
- <filename>devtool add</filename> command.
- Specifying this option creates a recipe file that still
- builds for the target but also creates a variant with
- a "-native" suffix that builds for the build host.
+ Python modules that use <filename>setuptools</filename>
+ or <filename>distutils</filename>
</para></listitem>
</itemizedlist>
+ </para>
+
+ <para>
+ Apart from binary packages, the determination of how a source tree
+ should be treated is automatic based on the files present within
+ that source tree.
+ For example, if a <filename>CMakeLists.txt</filename> file is found,
+ then the source tree is assumed to be using
+ CMake and is treated accordingly.
<note>
- If you need to add a tool that is shipped as part of a
- source tree that builds code for the target, you can
- typically accomplish this by building the native and target
- parts separately rather than within the same compilation
- process.
- Realize though that with the "&dash;&dash;also-native" option, you
- can add the tool using just one recipe file.
+ In most cases, you need to edit the automatically generated
+ recipe in order to make it build properly.
+ Typically, you would go through several edit and build cycles
+ until you can build the recipe.
+ Once the recipe can be built, you could use possible further
+ iterations to test the recipe on the target device.
</note>
</para>
- </section>
-
- <section id='sdk-adding-node-js-modules'>
- <title>Adding Node.js Modules</title>
<para>
- You can use the <filename>devtool add</filename> command in the
- following form to add Node.js modules:
- <literallayout class='monospaced'>
- $ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1"
- </literallayout>
- The name and version parameters are mandatory.
- Lockdown and shrinkwrap files are generated and pointed to by
- the recipe in order to freeze the version that is fetched for
- the dependencies according to the first time.
- This also saves checksums that are verified on future fetches.
- Together, these behaviors ensure the reproducibility and
- integrity of the build.
- <note><title>Notes</title>
+ The remainder of this section covers specifics regarding how parts
+ of the recipe are generated.
+ </para>
+
+ <section id='sdk-name-and-version'>
+ <title>Name and Version</title>
+
+ <para>
+ If you do not specify a name and version on the command
+ line, <filename>devtool add</filename> attempts to determine
+ the name and version of the software being built from
+ various metadata within the source tree.
+ Furthermore, the command sets the name of the created recipe
+ file accordingly.
+ If the name or version cannot be determined, the
+ <filename>devtool add</filename> command prints an error and
+ you must re-run the command with both the name and version
+ or just the name or version specified.
+ </para>
+
+ <para>
+ Sometimes the name or version determined from the source tree
+ might be incorrect.
+ For such a case, you must reset the recipe:
+ <literallayout class='monospaced'>
+ $ devtool reset -n <replaceable>recipename</replaceable>
+ </literallayout>
+ After running the <filename>devtool reset</filename> command,
+ you need to run <filename>devtool add</filename> again and
+ provide the name or the version.
+ </para>
+ </section>
+
+ <section id='sdk-dependency-detection-and-mapping'>
+ <title>Dependency Detection and Mapping</title>
+
+ <para>
+ The <filename>devtool add</filename> command attempts to
+ detect build-time dependencies and map them to other recipes
+ in the system.
+ During this mapping, the command fills in the names of those
+ recipes in the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-DEPENDS'><filename>DEPENDS</filename></ulink>
+ value within the recipe.
+ If a dependency cannot be mapped, then a comment is placed in
+ the recipe indicating such.
+ The inability to map a dependency might be caused because the
+ naming is not recognized or because the dependency simply is
+ not available.
+ For cases where the dependency is not available, you must use
+ the <filename>devtool add</filename> command to add an
+ additional recipe to satisfy the dependency and then come
+ back to the first recipe and add its name to
+ <filename>DEPENDS</filename>.
+ </para>
+
+ <para>
+ If you need to add runtime dependencies, you can do so by
+ adding the following to your recipe:
+ <literallayout class='monospaced'>
+ RDEPENDS_${PN} += "dependency1 dependency2 ..."
+ </literallayout>
+ <note>
+ The <filename>devtool add</filename> command often cannot
+ distinguish between mandatory and optional dependencies.
+ Consequently, some of the detected dependencies might
+ in fact be optional.
+ When in doubt, consult the documentation or the configure
+ script for the software the recipe is building for further
+ details.
+ In some cases, you might find you can substitute the
+ dependency for an option to disable the associated
+ functionality passed to the configure script.
+ </note>
+ </para>
+ </section>
+
+ <section id='sdk-license-detection'>
+ <title>License Detection</title>
+
+ <para>
+ The <filename>devtool add</filename> command attempts to
+ determine if the software you are adding is able to be
+ distributed under a common open-source license and sets the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink>
+ value accordingly.
+ You should double-check this value against the documentation
+ or source files for the software you are building and update
+ that <filename>LICENSE</filename> value if necessary.
+ </para>
+
+ <para>
+ The <filename>devtool add</filename> command also sets the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM'><filename>LIC_FILES_CHKSUM</filename></ulink>
+ value to point to all files that appear to be license-related.
+ However, license statements often appear in comments at the top
+ of source files or within documentation.
+ Consequently, you might need to amend the
+ <filename>LIC_FILES_CHKSUM</filename> variable to point to one
+ or more of those comments if present.
+ Setting <filename>LIC_FILES_CHKSUM</filename> is particularly
+ important for third-party software.
+ The mechanism attempts to ensure correct licensing should you
+ upgrade the recipe to a newer upstream version in future.
+ Any change in licensing is detected and you receive an error
+ prompting you to check the license text again.
+ </para>
+
+ <para>
+ If the <filename>devtool add</filename> command cannot
+ determine licensing information, the
+ <filename>LICENSE</filename> value is set to "CLOSED" and the
+ <filename>LIC_FILES_CHKSUM</filename> value remains unset.
+ This behavior allows you to continue with development but is
+ unlikely to be correct in all cases.
+ Consequently, you should check the documentation or source
+ files for the software you are building to determine the actual
+ license.
+ </para>
+ </section>
+
+ <section id='sdk-adding-makefile-only-software'>
+ <title>Adding Makefile-Only Software</title>
+
+ <para>
+ The use of <filename>make</filename> by itself is very common
+ in both proprietary and open source software.
+ Unfortunately, Makefiles are often not written with
+ cross-compilation in mind.
+ Thus, <filename>devtool add</filename> often cannot do very
+ much to ensure that these Makefiles build correctly.
+ It is very common, for example, to explicitly call
+ <filename>gcc</filename> instead of using the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink>
+ variable.
+ Usually, in a cross-compilation environment,
+ <filename>gcc</filename> is the compiler for the build host
+ and the cross-compiler is named something similar to
+ <filename>arm-poky-linux-gnueabi-gcc</filename> and might
+ require some arguments (e.g. to point to the associated sysroot
+ for the target machine).
+ </para>
+
+ <para>
+ When writing a recipe for Makefile-only software, keep the
+ following in mind:
<itemizedlist>
<listitem><para>
- You must use quotes around the URL.
- The <filename>devtool add</filename> does not require
- the quotes, but the shell considers ";" as a splitter
- between multiple commands.
- Thus, without the quotes,
- <filename>devtool add</filename> does not receive the
- other parts, which results in several "command not
- found" errors.
+ You probably need to patch the Makefile to use
+ variables instead of hardcoding tools within the
+ toolchain such as <filename>gcc</filename> and
+ <filename>g++</filename>.
</para></listitem>
<listitem><para>
- In order to support adding
- Node.js modules, a
- <filename>nodejs</filename> recipe must be part of your
- SDK in order to provide Node.js
- itself.
+ The environment in which <filename>make</filename> runs
+ is set up with various standard variables for
+ compilation (e.g. <filename>CC</filename>,
+ <filename>CXX</filename>, and so forth) in a similar
+ manner to the environment set up by the SDK's
+ environment setup script.
+ One easy way to see these variables is to run the
+ <filename>devtool build</filename> command on the
+ recipe and then look in
+ <filename>oe-logs/run.do_compile</filename>.
+ Towards the top of this file you will see a list of
+ environment variables that are being set.
+ You can take advantage of these variables within the
+ Makefile.
+ </para></listitem>
+ <listitem><para>
+ If the Makefile sets a default for a variable using "=",
+ that default overrides the value set in the environment,
+ which is usually not desirable.
+ In this situation, you can either patch the Makefile
+ so it sets the default using the "?=" operator, or
+ you can alternatively force the value on the
+ <filename>make</filename> command line.
+ To force the value on the command line, add the
+ variable setting to
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE'><filename>EXTRA_OEMAKE</filename></ulink>
+ or
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
+ within the recipe.
+ Here is an example using <filename>EXTRA_OEMAKE</filename>:
+ <literallayout class='monospaced'>
+ EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'"
+ </literallayout>
+ In the above example, single quotes are used around the
+ variable settings as the values are likely to contain
+ spaces because required default options are passed to
+ the compiler.
+ </para></listitem>
+ <listitem><para>
+ Hardcoding paths inside Makefiles is often problematic
+ in a cross-compilation environment.
+ This is particularly true because those hardcoded paths
+ often point to locations on the build host and thus
+ will either be read-only or will introduce
+ contamination into the cross-compilation by virtue of
+ being specific to the build host rather than the target.
+ Patching the Makefile to use prefix variables or other
+ path variables is usually the way to handle this.
+ </para></listitem>
+ <listitem><para>
+ Sometimes a Makefile runs target-specific commands such
+ as <filename>ldconfig</filename>.
+ For such cases, you might be able to simply apply
+ patches that remove these commands from the Makefile.
</para></listitem>
</itemizedlist>
- </note>
- </para>
- </section>
-</section>
-
-<section id='sdk-working-with-recipes'>
- <title>Working With Recipes</title>
-
- <para>
- When building a recipe with <filename>devtool build</filename> the
- typical build progression is as follows:
- <orderedlist>
- <listitem><para>
- Fetch the source
- </para></listitem>
- <listitem><para>
- Unpack the source
- </para></listitem>
- <listitem><para>
- Configure the source
- </para></listitem>
- <listitem><para>
- Compiling the source
- </para></listitem>
- <listitem><para>
- Install the build output
- </para></listitem>
- <listitem><para>
- Package the installed output
- </para></listitem>
- </orderedlist>
- For recipes in the workspace, fetching and unpacking is disabled
- as the source tree has already been prepared and is persistent.
- Each of these build steps is defined as a function, usually with a
- "do_" prefix.
- These functions are typically shell scripts but can instead be written
- in Python.
- </para>
+ </para>
+ </section>
- <para>
- If you look at the contents of a recipe, you will see that the
- recipe does not include complete instructions for building the
- software.
- Instead, common functionality is encapsulated in classes inherited
- with the <filename>inherit</filename> directive, leaving the recipe
- to describe just the things that are specific to the software to be
- built.
- A <ulink url='ref-classes-base'><filename>base</filename></ulink>
- class exists that is implicitly inherited by all recipes and provides
- the functionality that most typical recipes need.
- </para>
-
- <para>
- The remainder of this section presents information useful when
- working with recipes.
- </para>
+ <section id='sdk-adding-native-tools'>
+ <title>Adding Native Tools</title>
- <section id='sdk-finding-logs-and-work-files'>
- <title>Finding Logs and Work Files</title>
+ <para>
+ Often, you need to build additional tools that run on the
+ build host system as opposed to the target.
+ You should indicate this using one of the following methods
+ when you run <filename>devtool add</filename>:
+ <itemizedlist>
+ <listitem><para>
+ Specify the name of the recipe such that it ends
+ with "-native".
+ Specifying the name like this produces a recipe that
+ only builds for the build host.
+ </para></listitem>
+ <listitem><para>
+ Specify the "&dash;&dash;also-native" option with the
+ <filename>devtool add</filename> command.
+ Specifying this option creates a recipe file that still
+ builds for the target but also creates a variant with
+ a "-native" suffix that builds for the build host.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ If you need to add a tool that is shipped as part of a
+ source tree that builds code for the target, you can
+ typically accomplish this by building the native and target
+ parts separately rather than within the same compilation
+ process.
+ Realize though that with the "&dash;&dash;also-native" option, you
+ can add the tool using just one recipe file.
+ </note>
+ </para>
+ </section>
+
+ <section id='sdk-adding-node-js-modules'>
+ <title>Adding Node.js Modules</title>
+
+ <para>
+ You can use the <filename>devtool add</filename> command two
+ different ways to add Node.js modules: 1) Through
+ <filename>npm</filename> and, 2) from a repository or local
+ source.
+ </para>
+
+ <para>
+ Use the following form to add Node.js modules through
+ <filename>npm</filename>:
+ <literallayout class='monospaced'>
+ $ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1"
+ </literallayout>
+ The name and version parameters are mandatory.
+ Lockdown and shrinkwrap files are generated and pointed to by
+ the recipe in order to freeze the version that is fetched for
+ the dependencies according to the first time.
+ This also saves checksums that are verified on future fetches.
+ Together, these behaviors ensure the reproducibility and
+ integrity of the build.
+ <note><title>Notes</title>
+ <itemizedlist>
+ <listitem><para>
+ You must use quotes around the URL.
+ The <filename>devtool add</filename> does not require
+ the quotes, but the shell considers ";" as a splitter
+ between multiple commands.
+ Thus, without the quotes,
+ <filename>devtool add</filename> does not receive the
+ other parts, which results in several "command not
+ found" errors.
+ </para></listitem>
+ <listitem><para>
+ In order to support adding
+ Node.js modules, a
+ <filename>nodejs</filename> recipe must be part of your
+ SDK in order to provide Node.js
+ itself.
+ </para></listitem>
+ </itemizedlist>
+ </note>
+ </para>
+
+ <para>
+ As mentioned earlier, you can also add Node.js modules
+ directly from a repository or local source tree.
+ To add modules this way, use <filename>devtool add</filename> in
+ the following form:
+ <literallayout class='monospaced'>
+ $ devtool add https://github.com/diversario/node-ssdp
+ </literallayout>
+ In this example, <filename>devtool</filename> fetches the specified
+ Git repository, detects that the code is Node.js code, fetches
+ dependencies using <filename>npm</filename>, and sets
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
+ accordingly.
+ </para>
+ </section>
+ </section>
- <para>
- When you are debugging a recipe that you previously created using
- <filename>devtool add</filename> or whose source you are modifying
- by using the <filename>devtool modify</filename> command, after
- the first run of <filename>devtool build</filename>, you will
- find some symbolic links created within the source tree:
- <filename>oe-logs</filename>, which points to the directory in
- which log files and run scripts for each build step are created
- and <filename>oe-workdir</filename>, which points to the temporary
- work area for the recipe.
- You can use these links to get more information on what is
- happening at each build step.
- </para>
+ <section id='sdk-working-with-recipes'>
+ <title>Working With Recipes</title>
<para>
- These locations under <filename>oe-workdir</filename> are
- particularly useful:
- <itemizedlist>
- <listitem><para><filename>image/</filename>:
- Contains all of the files installed at the
- <ulink url='&YOCTO_DOCS_REF_URL;ref-tasks-install'><filename>do_install</filename></ulink>
- stage.
- Within a recipe, this directory is referred to by the
- expression
- <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>.
+ When building a recipe with <filename>devtool build</filename> the
+ typical build progression is as follows:
+ <orderedlist>
+ <listitem><para>
+ Fetch the source
+ </para></listitem>
+ <listitem><para>
+ Unpack the source
</para></listitem>
- <listitem><para><filename>sysroot-destdir/</filename>:
- Contains a subset of files installed within
- <filename>do_install</filename> that have been put into the
- shared sysroot.
- For more information, see the
- "<link linkend='sdk-sharing-files-between-recipes'>Sharing Files Between Recipes</link>"
- section.
+ <listitem><para>
+ Configure the source
</para></listitem>
- <listitem><para><filename>packages-split/</filename>:
- Contains subdirectories for each package produced by the
- recipe.
- For more information, see the
- "<link linkend='sdk-packaging'>Packaging</link>" section.
+ <listitem><para>
+ Compiling the source
</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='sdk-setting-configure-arguments'>
- <title>Setting Configure Arguments</title>
-
- <para>
- If the software your recipe is building uses GNU autoconf,
- then a fixed set of arguments is passed to it to enable
- cross-compilation plus any extras specified by
- <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></ulink>
- set within the recipe.
- If you wish to pass additional options, add them to
- <filename>EXTRA_OECONF</filename>.
- Other supported build tools have similar variables
- (e.g.
- <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECMAKE'><filename>EXTRA_OECMAKE</filename></ulink>
- for CMake,
- <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OESCONS'><filename>EXTRA_OESCONS</filename></ulink>
- for Scons, and so forth).
- If you need to pass anything on the <filename>make</filename>
- command line, you can use <filename>EXTRA_OEMAKE</filename> to do
- so.
+ <listitem><para>
+ Install the build output
+ </para></listitem>
+ <listitem><para>
+ Package the installed output
+ </para></listitem>
+ </orderedlist>
+ For recipes in the workspace, fetching and unpacking is disabled
+ as the source tree has already been prepared and is persistent.
+ Each of these build steps is defined as a function, usually with a
+ "do_" prefix.
+ These functions are typically shell scripts but can instead be written
+ in Python.
</para>
<para>
- You can use the <filename>devtool configure-help</filename> command
- to help you set the arguments listed in the previous paragraph.
- The command determines the exact options being passed, and shows
- them to you along with any custom arguments specified through
- <filename>EXTRA_OECONF</filename>.
- If applicable, the command also shows you the output of the
- configure script's "&dash;&dash;help" option as a reference.
+ If you look at the contents of a recipe, you will see that the
+ recipe does not include complete instructions for building the
+ software.
+ Instead, common functionality is encapsulated in classes inherited
+ with the <filename>inherit</filename> directive, leaving the recipe
+ to describe just the things that are specific to the software to be
+ built.
+ A <ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-base'><filename>base</filename></ulink>
+ class exists that is implicitly inherited by all recipes and provides
+ the functionality that most typical recipes need.
</para>
- </section>
-
- <section id='sdk-sharing-files-between-recipes'>
- <title>Sharing Files Between Recipes</title>
<para>
- Recipes often need to use files provided by other recipes on
- the build host.
- For example, an application linking to a common library needs
- access to the library itself and its associated headers.
- The way this access is accomplished within the extensible SDK is
- through the sysroot.
- One sysroot exists per "machine" for which the SDK is being built.
- In practical terms, this means a sysroot exists for the target
- machine, and a sysroot exists for the build host.
+ The remainder of this section presents information useful when
+ working with recipes.
</para>
- <para>
- Recipes should never write files directly into the sysroot.
- Instead, files should be installed into standard locations
- during the
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
- task within the
- <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>
- directory.
- A subset of these files automatically go into the sysroot.
- The reason for this limitation is that almost all files that go
- into the sysroot are cataloged in manifests in order to ensure
- they can be removed later when a recipe is modified or removed.
- Thus, the sysroot is able to remain free from stale files.
- </para>
+ <section id='sdk-finding-logs-and-work-files'>
+ <title>Finding Logs and Work Files</title>
+
+ <para>
+ When you are debugging a recipe that you previously created using
+ <filename>devtool add</filename> or whose source you are modifying
+ by using the <filename>devtool modify</filename> command, after
+ the first run of <filename>devtool build</filename>, you will
+ find some symbolic links created within the source tree:
+ <filename>oe-logs</filename>, which points to the directory in
+ which log files and run scripts for each build step are created
+ and <filename>oe-workdir</filename>, which points to the temporary
+ work area for the recipe.
+ You can use these links to get more information on what is
+ happening at each build step.
+ </para>
+
+ <para>
+ These locations under <filename>oe-workdir</filename> are
+ particularly useful:
+ <itemizedlist>
+ <listitem><para><filename>image/</filename>:
+ Contains all of the files installed at the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
+ stage.
+ Within a recipe, this directory is referred to by the
+ expression
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>.
+ </para></listitem>
+ <listitem><para><filename>sysroot-destdir/</filename>:
+ Contains a subset of files installed within
+ <filename>do_install</filename> that have been put into the
+ shared sysroot.
+ For more information, see the
+ "<link linkend='sdk-sharing-files-between-recipes'>Sharing Files Between Recipes</link>"
+ section.
+ </para></listitem>
+ <listitem><para><filename>packages-split/</filename>:
+ Contains subdirectories for each package produced by the
+ recipe.
+ For more information, see the
+ "<link linkend='sdk-packaging'>Packaging</link>" section.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='sdk-setting-configure-arguments'>
+ <title>Setting Configure Arguments</title>
+
+ <para>
+ If the software your recipe is building uses GNU autoconf,
+ then a fixed set of arguments is passed to it to enable
+ cross-compilation plus any extras specified by
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></ulink>
+ or
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
+ set within the recipe.
+ If you wish to pass additional options, add them to
+ <filename>EXTRA_OECONF</filename> or
+ <filename>PACKAGECONFIG_CONFARGS</filename>.
+ Other supported build tools have similar variables
+ (e.g.
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OECMAKE'><filename>EXTRA_OECMAKE</filename></ulink>
+ for CMake,
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_OESCONS'><filename>EXTRA_OESCONS</filename></ulink>
+ for Scons, and so forth).
+ If you need to pass anything on the <filename>make</filename>
+ command line, you can use <filename>EXTRA_OEMAKE</filename> or the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></ulink>
+ variables to do so.
+ </para>
+
+ <para>
+ You can use the <filename>devtool configure-help</filename> command
+ to help you set the arguments listed in the previous paragraph.
+ The command determines the exact options being passed, and shows
+ them to you along with any custom arguments specified through
+ <filename>EXTRA_OECONF</filename> or
+ <filename>PACKAGECONFIG_CONFARGS</filename>.
+ If applicable, the command also shows you the output of the
+ configure script's "&dash;&dash;help" option as a reference.
+ </para>
+ </section>
+
+ <section id='sdk-sharing-files-between-recipes'>
+ <title>Sharing Files Between Recipes</title>
+
+ <para>
+ Recipes often need to use files provided by other recipes on
+ the build host.
+ For example, an application linking to a common library needs
+ access to the library itself and its associated headers.
+ The way this access is accomplished within the extensible SDK is
+ through the sysroot.
+ One sysroot exists per "machine" for which the SDK is being built.
+ In practical terms, this means a sysroot exists for the target
+ machine, and a sysroot exists for the build host.
+ </para>
+
+ <para>
+ Recipes should never write files directly into the sysroot.
+ Instead, files should be installed into standard locations
+ during the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
+ task within the
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-D'><filename>D</filename></ulink><filename>}</filename>
+ directory.
+ A subset of these files automatically go into the sysroot.
+ The reason for this limitation is that almost all files that go
+ into the sysroot are cataloged in manifests in order to ensure
+ they can be removed later when a recipe is modified or removed.
+ Thus, the sysroot is able to remain free from stale files.
+ </para>
+ </section>
+
+ <section id='sdk-packaging'>
+ <title>Packaging</title>
+
+ <para>
+ Packaging is not always particularly relevant within the
+ extensible SDK.
+ However, if you examine how build output gets into the final image
+ on the target device, it is important to understand packaging
+ because the contents of the image are expressed in terms of
+ packages and not recipes.
+ </para>
+
+ <para>
+ During the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-package'><filename>do_package</filename></ulink>
+ task, files installed during the
+ <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
+ task are split into one main package, which is almost always named
+ the same as the recipe, and several other packages.
+ This separation is done because not all of those installed files
+ are always useful in every image.
+ For example, you probably do not need any of the documentation
+ installed in a production image.
+ Consequently, for each recipe the documentation files are separated
+ into a <filename>-doc</filename> package.
+ Recipes that package software that has optional modules or
+ plugins might do additional package splitting as well.
+ </para>
+
+ <para>
+ After building a recipe you can see where files have gone by
+ looking in the <filename>oe-workdir/packages-split</filename>
+ directory, which contains a subdirectory for each package.
+ Apart from some advanced cases, the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGES'><filename>PACKAGES</filename></ulink>
+ and
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-FILES'><filename>FILES</filename></ulink>
+ variables controls splitting.
+ The <filename>PACKAGES</filename> variable lists all of the
+ packages to be produced, while the <filename>FILES</filename>
+ variable specifies which files to include in each package,
+ using an override to specify the package.
+ For example, <filename>FILES_${PN}</filename> specifies the files
+ to go into the main package (i.e. the main package is named the
+ same as the recipe and
+ <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>
+ evaluates to the recipe name).
+ The order of the <filename>PACKAGES</filename> value is significant.
+ For each installed file, the first package whose
+ <filename>FILES</filename> value matches the file is the package
+ into which the file goes.
+ Defaults exist for both the <filename>PACKAGES</filename> and
+ <filename>FILES</filename> variables.
+ Consequently, you might find you do not even need to set these
+ variables in your recipe unless the software the recipe is
+ building installs files into non-standard locations.
+ </para>
+ </section>
</section>
- <section id='sdk-packaging'>
- <title>Packaging</title>
-
- <para>
- Packaging is not always particularly relevant within the
- extensible SDK.
- However, if you examine how build output gets into the final image
- on the target device, it is important to understand packaging
- because the contents of the image are expressed in terms of
- packages and not recipes.
- </para>
-
- <para>
- During the
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-package'><filename>do_package</filename></ulink>
- task, files installed during the
- <ulink url='&YOCTO_DOCS_REF_URL;#ref-tasks-install'><filename>do_install</filename></ulink>
- task are split into one main package, which is almost always named
- the same as the recipe, and several other packages.
- This separation is done because not all of those installed files
- are always useful in every image.
- For example, you probably do not need any of the documentation
- installed in a production image.
- Consequently, for each recipe the documentation files are separated
- into a <filename>-doc</filename> package.
- Recipes that package software that has optional modules or
- plugins might do additional package splitting as well.
- </para>
+ <section id='sdk-restoring-the-target-device-to-its-original-state'>
+ <title>Restoring the Target Device to its Original State</title>
<para>
- After building a recipe you can see where files have gone by
- looking in the <filename>oe-workdir/packages-split</filename>
- directory, which contains a subdirectory for each package.
- Apart from some advanced cases, the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGES'><filename>PACKAGES</filename></ulink>
- and
- <ulink url='&YOCTO_DOCS_REF_URL;#var-FILES'><filename>FILES</filename></ulink>
- variables controls splitting.
- The <filename>PACKAGES</filename> variable lists all of the
- packages to be produced, while the <filename>FILES</filename>
- variable specifies which files to include in each package,
- using an override to specify the package.
- For example, <filename>FILES_${PN}</filename> specifies the files
- to go into the main package (i.e. the main package is named the
- same as the recipe and
- <filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink><filename>}</filename>
- evaluates to the recipe name).
- The order of the <filename>PACKAGES</filename> value is significant.
- For each installed file, the first package whose
- <filename>FILES</filename> value matches the file is the package
- into which the file goes.
- Defaults exist for both the <filename>PACKAGES</filename> and
- <filename>FILES</filename> variables.
- Consequently, you might find you do not even need to set these
- variables in your recipe unless the software the recipe is
- building installs files into non-standard locations.
- </para>
- </section>
-</section>
-
-<section id='sdk-restoring-the-target-device-to-its-original-state'>
- <title>Restoring the Target Device to its Original State</title>
-
- <para>
- If you use the <filename>devtool deploy-target</filename>
- command to write a recipe's build output to the target, and
- you are working on an existing component of the system, then you
- might find yourself in a situation where you need to restore the
- original files that existed prior to running the
- <filename>devtool deploy-target</filename> command.
- Because the <filename>devtool deploy-target</filename> command
- backs up any files it overwrites, you can use the
- <filename>devtool undeploy-target</filename> to restore those files
- and remove any other files the recipe deployed.
- Consider the following example:
- <literallayout class='monospaced'>
+ If you use the <filename>devtool deploy-target</filename>
+ command to write a recipe's build output to the target, and
+ you are working on an existing component of the system, then you
+ might find yourself in a situation where you need to restore the
+ original files that existed prior to running the
+ <filename>devtool deploy-target</filename> command.
+ Because the <filename>devtool deploy-target</filename> command
+ backs up any files it overwrites, you can use the
+ <filename>devtool undeploy-target</filename> to restore those files
+ and remove any other files the recipe deployed.
+ Consider the following example:
+ <literallayout class='monospaced'>
$ devtool undeploy-target lighttpd root@192.168.7.2
- </literallayout>
- If you have deployed multiple applications, you can remove them
- all at once thus restoring the target device back to its
- original state:
- <literallayout class='monospaced'>
+ </literallayout>
+ If you have deployed multiple applications, you can remove them
+ all at once thus restoring the target device back to its
+ original state:
+ <literallayout class='monospaced'>
$ devtool undeploy-target -a root@192.168.7.2
- </literallayout>
- Information about files deployed to the target as well as any
- backed up files are stored on the target itself.
- This storage of course requires some additional space
- on the target machine.
- <note>
- The <filename>devtool deploy-target</filename> and
- <filename>devtool undeploy-target</filename> command do not
- currently interact with any package management system on the
- target device (e.g. RPM or OPKG).
- Consequently, you should not intermingle operations
- <filename>devtool deploy-target</filename> and the package
- manager operations on the target device.
- Doing so could result in a conflicting set of files.
- </note>
- </para>
-</section>
+ </literallayout>
+ Information about files deployed to the target as well as any
+ backed up files are stored on the target itself.
+ This storage of course requires some additional space
+ on the target machine.
+ <note>
+ The <filename>devtool deploy-target</filename> and
+ <filename>devtool undeploy-target</filename> command do not
+ currently interact with any package management system on the
+ target device (e.g. RPM or OPKG).
+ Consequently, you should not intermingle operations
+ <filename>devtool deploy-target</filename> and the package
+ manager operations on the target device.
+ Doing so could result in a conflicting set of files.
+ </note>
+ </para>
+ </section>
-<section id='sdk-installing-additional-items-into-the-extensible-sdk'>
- <title>Installing Additional Items Into the Extensible SDK</title>
+ <section id='sdk-installing-additional-items-into-the-extensible-sdk'>
+ <title>Installing Additional Items Into the Extensible SDK</title>
- <para>
- The extensible SDK typically only comes with a small number of tools
- and libraries out of the box.
- If you have a minimal SDK, then it starts mostly empty and is
- populated on-demand.
- However, sometimes you will need to explicitly install extra items
- into the SDK.
- If you need these extra items, you can first search for the items
- using the <filename>devtool search</filename> command.
- For example, suppose you need to link to libGL but you are not sure
- which recipe provides it.
- You can use the following command to find out:
- <literallayout class='monospaced'>
+ <para>
+ The extensible SDK typically only comes with a small number of tools
+ and libraries out of the box.
+ If you have a minimal SDK, then it starts mostly empty and is
+ populated on-demand.
+ However, sometimes you will need to explicitly install extra items
+ into the SDK.
+ If you need these extra items, you can first search for the items
+ using the <filename>devtool search</filename> command.
+ For example, suppose you need to link to libGL but you are not sure
+ which recipe provides it.
+ You can use the following command to find out:
+ <literallayout class='monospaced'>
$ devtool search libGL
mesa A free implementation of the OpenGL API
- </literallayout>
- Once you know the recipe (i.e. <filename>mesa</filename> in this
- example), you can install it:
- <literallayout class='monospaced'>
+ </literallayout>
+ Once you know the recipe (i.e. <filename>mesa</filename> in this
+ example), you can install it:
+ <literallayout class='monospaced'>
$ devtool sdk-install mesa
- </literallayout>
- By default, the <filename>devtool sdk-install</filename> assumes the
- item is available in pre-built form from your SDK provider.
- If the item is not available and it is acceptable to build the item
- from source, you can add the "-s" option as follows:
- <literallayout class='monospaced'>
+ </literallayout>
+ By default, the <filename>devtool sdk-install</filename> assumes the
+ item is available in pre-built form from your SDK provider.
+ If the item is not available and it is acceptable to build the item
+ from source, you can add the "-s" option as follows:
+ <literallayout class='monospaced'>
$ devtool sdk-install -s mesa
- </literallayout>
- It is important to remember that building the item from source takes
- significantly longer than installing the pre-built artifact.
- Also, if no recipe exists for the item you want to add to the SDK, you
- must instead add it using the <filename>devtool add</filename> command.
- </para>
-</section>
+ </literallayout>
+ It is important to remember that building the item from source takes
+ significantly longer than installing the pre-built artifact.
+ Also, if no recipe exists for the item you want to add to the SDK, you
+ must instead add it using the <filename>devtool add</filename> command.
+ </para>
+ </section>
-<section id='sdk-updating-the-extensible-sdk'>
- <title>Updating the Extensible SDK</title>
+ <section id='sdk-updating-the-extensible-sdk'>
+ <title>Updating the Extensible SDK</title>
- <para>
- If you are working with an extensible SDK that gets occasionally
- updated (e.g. typically when that SDK has been provided to you by
- another party), then you will need to manually pull down those
- updates to your installed SDK.
- </para>
+ <para>
+ If you are working with an extensible SDK that gets occasionally
+ updated (e.g. typically when that SDK has been provided to you by
+ another party), then you will need to manually pull down those
+ updates to your installed SDK.
+ </para>
- <para>
- To update your installed SDK, run the following:
- <literallayout class='monospaced'>
+ <para>
+ To update your installed SDK, run the following:
+ <literallayout class='monospaced'>
$ devtool sdk-update
- </literallayout>
- The previous command assumes your SDK provider has set the default
- update URL for you.
- If that URL has not been set, you need to specify it yourself as
- follows:
- <literallayout class='monospaced'>
+ </literallayout>
+ The previous command assumes your SDK provider has set the default
+ update URL for you.
+ If that URL has not been set, you need to specify it yourself as
+ follows:
+ <literallayout class='monospaced'>
$ devtool sdk-update <replaceable>path_to_update_directory</replaceable>
- </literallayout>
- <note>
- The URL needs to point specifically to a published SDK and not an
- SDK installer that you would download and install.
- </note>
- </para>
-</section>
-
-<section id='sdk-creating-a-derivative-sdk-with-additional-components'>
- <title>Creating a Derivative SDK With Additional Components</title>
+ </literallayout>
+ <note>
+ The URL needs to point specifically to a published SDK and not an
+ SDK installer that you would download and install.
+ </note>
+ </para>
+ </section>
- <para>
- You might need to produce an SDK that contains your own custom
- libraries for sending to a third party (e.g., if you are a vendor with
- customers needing to build their own software for the target platform).
- If that is the case, then you can produce a derivative SDK based on
- the currently installed SDK fairly easily.
- Use these steps:
- <orderedlist>
- <listitem><para>If necessary, install an extensible SDK that
- you want to use as a base for your derivative SDK.
- </para></listitem>
- <listitem><para>Source the environment script for the SDK.
- </para></listitem>
- <listitem><para>Add the extra libraries or other components
- you want by using the <filename>devtool add</filename>
- command.
- </para></listitem>
- <listitem><para>Run the <filename>devtool build-sdk</filename>
- command.
- </para></listitem>
- </orderedlist>
- The above procedure takes the recipes added to the workspace and
- constructs a new SDK installer containing those recipes and the
- resulting binary artifacts.
- The recipes go into their own separate layer in the constructed
- derivative SDK, leaving the workspace clean and ready for users
- to add their own recipes.
- </para>
-</section>
+ <section id='sdk-creating-a-derivative-sdk-with-additional-components'>
+ <title>Creating a Derivative SDK With Additional Components</title>
+ <para>
+ You might need to produce an SDK that contains your own custom
+ libraries for sending to a third party (e.g., if you are a vendor with
+ customers needing to build their own software for the target platform).
+ If that is the case, then you can produce a derivative SDK based on
+ the currently installed SDK fairly easily.
+ Use these steps:
+ <orderedlist>
+ <listitem><para>If necessary, install an extensible SDK that
+ you want to use as a base for your derivative SDK.
+ </para></listitem>
+ <listitem><para>Source the environment script for the SDK.
+ </para></listitem>
+ <listitem><para>Add the extra libraries or other components
+ you want by using the <filename>devtool add</filename>
+ command.
+ </para></listitem>
+ <listitem><para>Run the <filename>devtool build-sdk</filename>
+ command.
+ </para></listitem>
+ </orderedlist>
+ The above procedure takes the recipes added to the workspace and
+ constructs a new SDK installer containing those recipes and the
+ resulting binary artifacts.
+ The recipes go into their own separate layer in the constructed
+ derivative SDK, leaving the workspace clean and ready for users
+ to add their own recipes.
+ </para>
+ </section>
</chapter>
<!--
vim: expandtab tw=80 ts=4
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-intro.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-intro.xml
index 88ae77831..68401690d 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-intro.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-intro.xml
@@ -11,41 +11,53 @@
<para>
Welcome to the Yocto Project Software Development Kit (SDK)
Developer's Guide.
- This manual provides information that lets you use both the standard
- Yocto Project SDK and an extensible SDK to develop applications and
- images using the Yocto Project.
+ This manual provides information that explains how to use both the
+ Yocto Project extensible and standard SDKs to develop
+ applications and images.
Additionally, the manual also provides information on how to use
the popular <trademark class='trade'>Eclipse</trademark> IDE as part
- of your application development workflow.
+ of your application development workflow within the SDK environment.
+ <note>
+ Prior to the 2.0 Release of the Yocto Project, application
+ development was primarily accomplished through the use of the
+ Application Development Toolkit (ADT) and the availability
+ of stand-alone cross-development toolchains and other tools.
+ With the 2.1 Release of the Yocto Project, application development
+ has transitioned to within a tool-rich extensible SDK and the more
+ traditional standard SDK.
+ </note>
</para>
<para>
- Prior to the 2.0 Release of the Yocto Project, application
- development was primarily accomplished through the use of the
- Application Development Toolkit (ADT) and the availability
- of stand-alone cross-development toolchains and other tools.
- With the 2.1 Release of the Yocto Project, application development
- has transitioned to within a more traditional SDK and extensible
- SDK.
- </para>
-
- <para>
- A standard SDK consists of a cross-development toolchain that contains
- a compiler, debugger, and various miscellaneous tools; libraries,
- headers, and symbols to match an image; and environment setup script.
- You can use this SDK to independently develop and test code that is
- destined to run on some target machine.
+ All SDKs consist of the following:
+ <itemizedlist>
+ <listitem><para><emphasis>Cross-Development Toolchain</emphasis>:
+ This toolchain contains a compiler, debugger, and various
+ miscellaneous tools.
+ </para></listitem>
+ <listitem><para><emphasis>Libraries, Headers, and Symbols</emphasis>:
+ The libraries, headers, and symbols are specific to the image
+ (i.e. they match the image).
+ </para></listitem>
+ <listitem><para><emphasis>Environment Setup Script</emphasis>:
+ This <filename>*.sh</filename> file, once run, sets up the
+ cross-development environment by defining variables and
+ preparing for SDK use.
+ </para></listitem>
+ </itemizedlist>
</para>
<para>
- An extensible SDK consists of everything that the standard SDK has plus
- tools that allow you to easily add new applications and libraries to
- an image, modify the source of an existing component, test changes on
- the target hardware, and easily integrate an application into the
+ Additionally an extensible SDK has tools that allow you to easily add
+ new applications and libraries to an image, modify the source of an
+ existing component, test changes on the target hardware, and easily
+ integrate an application into the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-system-term'>OpenEmbedded build system</ulink>.
</para>
<para>
+ You can use an SDK to independently develop and test code
+ that is destined to run on some target machine.
SDKs are completely self-contained.
The binaries are linked against their own copy of
<filename>libc</filename>, which results in no dependencies
@@ -59,8 +71,8 @@
</para>
<para>
- Another feature for the SDKs is that only one set of cross-canadian
- toolchain binaries are produced per architecture.
+ Another feature for the SDKs is that only one set of cross-compiler
+ toolchain binaries are produced for any given architecture.
This feature takes advantage of the fact that the target hardware can
be passed to <filename>gcc</filename> as a set of compiler options.
Those options are set up by the environment script and contained in
@@ -74,40 +86,122 @@
</para>
<para>
- Going beyond the actual SDK, the SDK development environment consists
- of the following:
+ The SDK development environment consists of the following:
<itemizedlist>
- <listitem><para>An architecture-specific cross-toolchain and
+ <listitem><para>The self-contained SDK, which is an
+ architecture-specific cross-toolchain and
matching sysroots (target and native) all built by the
- OpenEmbedded build system.
+ OpenEmbedded build system (e.g. the SDK).
The toolchain and sysroots are based on a
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
configuration and extensions,
which allows you to cross-develop on the host machine for the
target hardware.
+ Additionally, the extensible SDK contains the
+ <filename>devtool</filename> functionality.
</para></listitem>
<listitem><para>The Quick EMUlator (QEMU), which lets you simulate
target hardware.
QEMU is not literally part of the SDK.
You must build and include this emulator separately.
However, QEMU plays an important role in the development
- process that revolves around use of and SDK.
+ process that revolves around use of the SDK.
</para></listitem>
<listitem><para>The Eclipse IDE Yocto Plug-in.
- This plug-in is also available for you if you are an Eclipse
+ This plug-in is available for you if you are an Eclipse
user.
In the same manner as QEMU, the plug-in is not literally part
of the SDK but is rather available for use as part of the
development process.
</para></listitem>
- <listitem><para>Various user-space tools that greatly enhance
- your application development experience.
+ <listitem><para>Various performance-related
+ <ulink url='http://www.eclipse.org/linuxtools/index.php'>tools</ulink>
+ that can enhance your development experience.
These tools are also separate from the actual SDK but can be
independently obtained and used in the development process.
</para></listitem>
</itemizedlist>
</para>
+ <para>
+ In summary, the extensible and standard SDK share many features.
+ However, the extensible SDK has powerful development tools to help you
+ more quickly develop applications.
+ Following is a table that summarizes the primary differences between
+ the standard and extensible SDK types when considering which to
+ build:
+ <informaltable frame='none'>
+ <tgroup cols='3' align='left' colsep='1' rowsep='1'>
+ <colspec colname='c1' colwidth='1*'/>
+ <colspec colname='c2' colwidth='1*'/>
+ <colspec colname='c3' colwidth='1*'/>
+ <thead>
+ <row>
+ <entry align="left"><emphasis>Feature</emphasis></entry>
+ <entry align="left"><emphasis>Standard SDK</emphasis></entry>
+ <entry align="left"><emphasis>Extensible SDK</emphasis></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry align="left">Toolchain</entry>
+ <entry align="left">Yes</entry>
+ <entry align="left">Yes*</entry>
+ </row>
+ <row>
+ <entry align="left">Debugger</entry>
+ <entry align="left">Yes</entry>
+ <entry align="left">Yes*</entry>
+ </row>
+ <row>
+ <entry align="left">Size</entry>
+ <entry align="left">100+ MBytes</entry>
+ <entry align="left">1+ GBytes (or 300+ MBytes for minimal w/toolchain)</entry>
+ </row>
+ <row>
+ <entry align="left"><filename>devtool</filename></entry>
+ <entry align="left">No</entry>
+ <entry align="left">Yes</entry>
+ </row>
+ <row>
+ <entry align="left">Build Images</entry>
+ <entry align="left">No</entry>
+ <entry align="left">Yes</entry>
+ </row>
+ <row>
+ <entry align="left">Updateable</entry>
+ <entry align="left">No</entry>
+ <entry align="left">Yes</entry>
+ </row>
+ <row>
+ <entry align="left">Managed Sysroot**</entry>
+ <entry align="left">No</entry>
+ <entry align="left">Yes</entry>
+ </row>
+ <row>
+ <entry align="left">Installed Packages</entry>
+ <entry align="left">No***</entry>
+ <entry align="left">Yes****</entry>
+ </row>
+ <row>
+ <entry align="left">Construction</entry>
+ <entry align="left">Packages</entry>
+ <entry align="left">Shared State</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <literallayout class='monospaced'>
+ * Extensible SDK will contain the toolchain and debugger if <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_EXT_TYPE'><filename>SDK_EXT_TYPE</filename></ulink> is "full" or <ulink url='&YOCTO_DOCS_REF_URL;#var-SDK_INCLUDE_TOOLCHAIN'><filename>SDK_INCLUDE_TOOLCHAIN</filename></ulink> is "1", which is the default.
+
+ ** Sysroot is managed through use of <filename>devtool</filename>. Thus, it is less likely that you will corrupt your SDK sysroot when you try to add additional libraries.
+
+ *** Runtime package management can be added to the standard SDK but it is not supported by default.
+
+ **** You must build and make the shared state available to extensible SDK users for "packages" you want to enable users to install.
+ </literallayout>
+ </para>
+
<section id='the-cross-development-toolchain'>
<title>The Cross-Development Toolchain</title>
@@ -117,7 +211,9 @@
consists of a cross-compiler, cross-linker, and cross-debugger
that are used to develop user-space applications for targeted
hardware.
- This toolchain is created by running a toolchain installer script
+ Additionally, for an extensible SDK, the toolchain also has
+ built-in <filename>devtool</filename> functionality.
+ This toolchain is created by running a SDK installer script
or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
that is based on your Metadata configuration or extension for
@@ -183,68 +279,36 @@
These extensions allow for cross-compilation, deployment, and
execution of your output into a QEMU emulation session.
You can also perform cross-debugging and profiling.
- The environment also supports a suite of tools that allows you to
- perform remote profiling, tracing, collection of power data,
- collection of latency data, and collection of performance data.
+ The environment also supports many performance-related
+ <ulink url='http://www.eclipse.org/linuxtools/index.php'>tools</ulink>
+ that enhance your development experience.
+ <note>
+ Previous releases of the Eclipse Yocto Plug-in supported
+ "user-space tools" (i.e. LatencyTOP, PowerTOP, Perf, SystemTap,
+ and Lttng-ust) that also added to the development experience.
+ These tools have been deprecated beginning with this release
+ of the plug-in.
+ </note>
</para>
<para>
For information about the application development workflow that
uses the Eclipse IDE and for a detailed example of how to install
and configure the Eclipse Yocto Project Plug-in, see the
- "<link link='sdk-developing-applications-using-eclipse'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
+ "<link linkend='sdk-developing-applications-using-eclipse'>Developing Applications Using <trademark class='trade'>Eclipse</trademark></link>"
section.
</para>
</section>
- <section id='user-space-tools'>
- <title>User-Space Tools</title>
+ <section id='performance-enhancing-tools'>
+ <title>Performance Enhancing Tools</title>
<para>
- User-space tools are available as part of the SDK development
- process and can be helpful.
- The tools include LatencyTOP, PowerTOP, Perf, SystemTap,
- and Lttng-ust.
- These tools are common development tools for the Linux platform.
- <itemizedlist>
- <listitem><para><emphasis>LatencyTOP:</emphasis> LatencyTOP
- focuses on latency that causes skips in audio, stutters in
- your desktop experience, or situations that overload your
- server even when you have plenty of CPU power left.
- </para></listitem>
- <listitem><para><emphasis>PowerTOP:</emphasis> Helps you
- determine what software is using the most power.
- You can find out more about PowerTOP at
- <ulink url='https://01.org/powertop/'></ulink>.</para></listitem>
- <listitem><para><emphasis>Perf:</emphasis> Performance counters
- for Linux used to keep track of certain types of hardware
- and software events.
- For more information on these types of counters see
- <ulink url='https://perf.wiki.kernel.org/'></ulink>.
- For examples on how to setup and use this tool, see the
- "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
- section in the Yocto Project Profiling and Tracing Manual.
- </para></listitem>
- <listitem><para><emphasis>SystemTap:</emphasis> A free software
- infrastructure that simplifies information gathering about
- a running Linux system.
- This information helps you diagnose performance or
- functional problems.
- SystemTap is not available as a user-space tool through
- the Eclipse IDE Yocto Plug-in.
- See <ulink url='http://sourceware.org/systemtap'></ulink>
- for more information on SystemTap.
- For examples on how to setup and use this tool, see the
- "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
- section in the Yocto Project Profiling and Tracing Manual.
- </para></listitem>
- <listitem><para><emphasis>Lttng-ust:</emphasis> A User-space
- Tracer designed to provide detailed information on
- user-space activity.
- See <ulink url='http://lttng.org/ust'></ulink> for more
- information on Lttng-ust.
- </para></listitem>
- </itemizedlist>
+ Supported performance enhancing tools are available that let you
+ profile, debug, and perform tracing on your projects developed
+ using Eclipse.
+ For information on these tools see
+ <ulink url='http://www.eclipse.org/linuxtools/'>http://www.eclipse.org/linuxtools/</ulink>.
</para>
</section>
</section>
@@ -264,7 +328,7 @@
A developer can independently compile and test an object on their
machine and then, when the object is ready for integration into an
image, they can simply make it available to the machine that has the
- the Yocto Project.
+ Yocto Project.
Once the object is available, the image can be rebuilt using the
Yocto Project to produce the modified image.
</para>
@@ -274,9 +338,9 @@
<orderedlist>
<listitem><para><emphasis>Install the SDK for your target hardware:</emphasis>
For information on how to install the SDK, see the
- "<link url='sdk-installing-the-sdk'>Installing the SDK</link>"
+ "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
section.</para></listitem>
- <listitem><para><emphasis>Download the Target Image:</emphasis>
+ <listitem><para><emphasis>Download or Build the Target Image:</emphasis>
The Yocto Project supports several target architectures
and has many pre-built kernel images and root filesystem
images.</para>
@@ -303,12 +367,15 @@
64-bit architecture).
Download kernel, root filesystem, and any other files you
need for your process.
- <note>In order to use the root filesystem in QEMU, you
- need to extract it.
- See the
- "<link url='sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
- section for information on how to extract the root
- filesystem.</note></para></listitem>
+ <note>
+ To use the root filesystem in QEMU, you
+ need to extract it.
+ See the
+ "<link linkend='sdk-extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
+ section for information on how to extract the root
+ filesystem.
+ </note>
+ </para></listitem>
<listitem><para><emphasis>Develop and Test your
Application:</emphasis> At this point, you have the tools
to develop your application.
@@ -316,7 +383,7 @@
emulator, you can go to
<ulink url='http://wiki.qemu.org/Main_Page'>QEMU Home Page</ulink>
to download and learn about the emulator.
- You can see the
+ See the
"<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
chapter in the Yocto Project Development Manual
for information on using QEMU within the Yocto
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-customization.xsl b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-customization.xsl
index dae992c07..efa8a84bb 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-customization.xsl
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-customization.xsl
@@ -1,12 +1,11 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
-<!-- <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
--->
+ <xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
+<!--
<xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/xhtml/docbook.xsl" />
-<!--
<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.76.1/xhtml/docbook.xsl" />
-->
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl
index 03555d6ca..77ba5f571 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual-eclipse-customization.xsl
@@ -5,14 +5,12 @@
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
-<!--
<xsl:import href="http://downloads.yoctoproject.org/mirror/docbook-mirror/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
--->
-
- <xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
<!--
+ <xsl:import href="../template/1.76.1/docbook-xsl-1.76.1/eclipse/eclipse3.xsl" />
+
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/1.76.1/eclipse/eclipse3.xsl" />
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual.xml
index c860782fb..6c72a0346 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-manual.xml
@@ -36,6 +36,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
@@ -61,14 +66,18 @@
<xi:include href="sdk-intro.xml"/>
+ <xi:include href="sdk-extensible.xml"/>
+
<xi:include href="sdk-using.xml"/>
- <xi:include href="sdk-extensible.xml"/>
+ <xi:include href="sdk-working-projects.xml"/>
<xi:include href="sdk-appendix-obtain.xml"/>
<xi:include href="sdk-appendix-customizing.xml"/>
+ <xi:include href="sdk-appendix-mars.xml"/>
+
<!-- <index id='index'>
<title>Index</title>
</index>
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-using.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-using.xml
index 1ea47d3bb..7281e83ef 100644
--- a/import-layers/yocto-poky/documentation/sdk-manual/sdk-using.xml
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-using.xml
@@ -3,74 +3,82 @@
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<chapter id='sdk-using-the-standard-sdk'>
-
-<title>Using the Standard SDK</title>
-
-<para>
- This chapter describes the standard SDK and how to use it.
- Information covers the pieces of the SDK, how to install it, and presents
- several task-based procedures common for developing with a standard SDK.
- <note>
- The tasks you can perform using a standard SDK are also applicable
- when you are using an extensible SDK.
- For information on the differences when using an extensible SDK as
- compared to an extensible SDK, see the
- "<link linkend='sdk-extensible'>Using the Extensible SDK</link>"
- chapter.
- </note>
-</para>
-
-<section id='sdk-standard-sdk-intro'>
- <title>Why use the Standard SDK and What is in It?</title>
+ <title>Using the Standard SDK</title>
<para>
- The Standard SDK provides a cross-development toolchain and libraries
- tailored to the contents of a specific image.
- You would use the Standard SDK if you want a more traditional toolchain
- experience.
+ This chapter describes the standard SDK and how to install it.
+ Information includes unique installation and setup aspects for the
+ standard SDK.
+ <note>
+ For a side-by-side comparison of main features supported for a
+ standard SDK as compared to an extensible SDK, see the
+ "<link linkend='sdk-manual-intro'>Introduction</link>"
+ section.
+ </note>
</para>
<para>
- The installed Standard SDK consists of several files and directories.
- Basically, it contains an SDK environment setup script, some
- configuration files, and host and target root filesystems to support
- usage.
- You can see the directory structure in the
- "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
- section.
+ You can use a standard SDK to work on Makefile, Autotools, and
+ Eclipse-based projects.
+ See the
+ "<link linkend='sdk-working-projects'>Working with Different Types of Projects</link>"
+ chapter for more information.
</para>
-</section>
-<section id='sdk-installing-the-sdk'>
- <title>Installing the SDK</title>
+ <section id='sdk-standard-sdk-intro'>
+ <title>Why use the Standard SDK and What is in It?</title>
- <para>
- The first thing you need to do is install the SDK on your host
- development machine by running the <filename>.sh</filename>
- installation script.
- </para>
+ <para>
+ The Standard SDK provides a cross-development toolchain and
+ libraries tailored to the contents of a specific image.
+ You would use the Standard SDK if you want a more traditional
+ toolchain experience as compared to the extensible SDK, which
+ provides an internal build system and the
+ <filename>devtool</filename> functionality.
+ </para>
- <para>
- You can download a tarball installer, which includes the
- pre-built toolchain, the <filename>runqemu</filename>
- script, and support files from the appropriate directory under
- <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
- Toolchains are available for 32-bit and 64-bit x86 development
- systems from the <filename>i686</filename> and
- <filename>x86_64</filename> directories, respectively.
- The toolchains the Yocto Project provides are based off the
- <filename>core-image-sato</filename> image and contain
- libraries appropriate for developing against that image.
- Each type of development system supports five or more target
- architectures.
- </para>
+ <para>
+ The installed Standard SDK consists of several files and
+ directories.
+ Basically, it contains an SDK environment setup script, some
+ configuration files, and host and target root filesystems to
+ support usage.
+ You can see the directory structure in the
+ "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
+ section.
+ </para>
+ </section>
- <para>
- The names of the tarball installer scripts are such that a
- string representing the host system appears first in the
- filename and then is immediately followed by a string
- representing the target architecture.
- <literallayout class='monospaced'>
+ <section id='sdk-installing-the-sdk'>
+ <title>Installing the SDK</title>
+
+ <para>
+ The first thing you need to do is install the SDK on your host
+ development machine by running the <filename>*.sh</filename>
+ installation script.
+ </para>
+
+ <para>
+ You can download a tarball installer, which includes the
+ pre-built toolchain, the <filename>runqemu</filename>
+ script, and support files from the appropriate directory under
+ <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'></ulink>.
+ Toolchains are available for 32-bit and 64-bit x86 development
+ systems from the <filename>i686</filename> and
+ <filename>x86_64</filename> directories, respectively.
+ The toolchains the Yocto Project provides are based off the
+ <filename>core-image-sato</filename> image and contain
+ libraries appropriate for developing against that image.
+ Each type of development system supports five or more target
+ architectures.
+ </para>
+
+ <para>
+ The names of the tarball installer scripts are such that a
+ string representing the host system appears first in the
+ filename and then is immediately followed by a string
+ representing the target architecture.
+ <literallayout class='monospaced'>
poky-glibc-<replaceable>host_system</replaceable>-<replaceable>image_type</replaceable>-<replaceable>arch</replaceable>-toolchain-<replaceable>release_version</replaceable>.sh
Where:
@@ -88,1378 +96,109 @@
Yocto Project:
&DISTRO;, &DISTRO;+snapshot
- </literallayout>
- For example, the following toolchain installer is for a 64-bit
- development host system and a i586-tuned target architecture
- based off the SDK for <filename>core-image-sato</filename> and
- using the current &DISTRO; snapshot:
- <literallayout class='monospaced'>
- poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
- </literallayout>
- </para>
-
- <para>
- The SDK and toolchains are self-contained and by default are installed
- into <filename>/opt/poky</filename>.
- However, when you run the SDK installer, you can choose an
- installation directory.
- <note>
- You must change the permissions on the toolchain
- installer script so that it is executable:
- <literallayout class='monospaced'>
- $ chmod +x poky-glibc-x86_64-core-image-sato-i586-toolchain-2.1.sh
</literallayout>
- </note>
- </para>
-
- <para>
- The following command shows how to run the installer given a
- toolchain tarball for a 64-bit x86 development host system and
- a 32-bit x86 target architecture.
- The example assumes the toolchain installer is located in
- <filename>~/Downloads/</filename>.
- <note>
- If you do not have write permissions for the directory
- into which you are installing the SDK, the installer
- notifies you and exits.
- Be sure you have write permissions in the directory and
- run the installer again.
- </note>
- <literallayout class='monospaced'>
- $ ./poky-glibc-x86_64-core-image-sato-i586-toolchain-2.1.sh
- Poky (Yocto Project Reference Distro) SDK installer version 2.0
- ===============================================================
- Enter target directory for SDK (default: /opt/poky/2.1):
- You are about to install the SDK to "/opt/poky/2.1". Proceed[Y/n]? Y
- Extracting SDK.......................................................................done
- Setting it up...done
- SDK has been successfully set up and is ready to be used.
- Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
- $ . /opt/poky/2.1/environment-setup-i586-poky-linux
- </literallayout>
- </para>
-
- <para>
- Again, reference the
- "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
- section for more details on the resulting directory structure of
- the installed SDK.
- </para>
-</section>
-
-<section id='sdk-running-the-sdk-environment-setup-script'>
- <title>Running the SDK Environment Setup Script</title>
-
- <para>
- Once you have the SDK installed, you must run the SDK environment
- setup script before you can actually use it.
- This setup script resides in the directory you chose when you installed
- the SDK.
- For information on where this setup script can reside, see the
- "<link linkend='sdk-appendix-obtain'>Obtaining the SDK</link>"
- Appendix.
- </para>
-
- <para>
- Before running the script, be sure it is the one that matches the
- architecture for which you are developing.
- Environment setup scripts begin with the string
- "<filename>environment-setup</filename>" and include as part of their
- name the tuned target architecture.
- For example, the command to source a setup script for an IA-based
- target machine using i586 tuning and located in the default SDK
- installation directory is as follows:
- <literallayout class='monospaced'>
- $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
- </literallayout>
- When you run the setup script, many environment variables are
- defined:
- <literallayout class='monospaced'>
- <ulink url='&YOCTO_DOCS_REF_URL;#var-SDKTARGETSYSROOT'><filename>SDKTARGETSYSROOT</filename></ulink> - The path to the sysroot used for cross-compilation
- <ulink url='&YOCTO_DOCS_REF_URL;#var-PKG_CONFIG_PATH'><filename>PKG_CONFIG_PATH</filename></ulink> - The path to the target pkg-config files
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIG_SITE'><filename>CONFIG_SITE</filename></ulink> - A GNU autoconf site file preconfigured for the target
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink> - The minimal command and arguments to run the C compiler
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CXX'><filename>CXX</filename></ulink> - The minimal command and arguments to run the C++ compiler
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CPP'><filename>CPP</filename></ulink> - The minimal command and arguments to run the C preprocessor
- <ulink url='&YOCTO_DOCS_REF_URL;#var-AS'><filename>AS</filename></ulink> - The minimal command and arguments to run the assembler
- <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink> - The minimal command and arguments to run the linker
- <ulink url='&YOCTO_DOCS_REF_URL;#var-GDB'><filename>GDB</filename></ulink> - The minimal command and arguments to run the GNU Debugger
- <ulink url='&YOCTO_DOCS_REF_URL;#var-STRIP'><filename>STRIP</filename></ulink> - The minimal command and arguments to run 'strip', which strips symbols
- <ulink url='&YOCTO_DOCS_REF_URL;#var-RANLIB'><filename>RANLIB</filename></ulink> - The minimal command and arguments to run 'ranlib'
- <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJCOPY'><filename>OBJCOPY</filename></ulink> - The minimal command and arguments to run 'objcopy'
- <ulink url='&YOCTO_DOCS_REF_URL;#var-OBJDUMP'><filename>OBJDUMP</filename></ulink> - The minimal command and arguments to run 'objdump'
- <ulink url='&YOCTO_DOCS_REF_URL;#var-AR'><filename>AR</filename></ulink> - The minimal command and arguments to run 'ar'
- <ulink url='&YOCTO_DOCS_REF_URL;#var-NM'><filename>NM</filename></ulink> - The minimal command and arguments to run 'nm'
- <ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></ulink> - The toolchain binary prefix for the target tools
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CROSS_COMPILE'><filename>CROSS_COMPILE</filename></ulink> - The toolchain binary prefix for the target tools
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink> - The minimal arguments for GNU configure
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'><filename>CFLAGS</filename></ulink> - Suggested C flags
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'><filename>CXXFLAGS</filename></ulink> - Suggested C++ flags
- <ulink url='&YOCTO_DOCS_REF_URL;#var-LDFLAGS'><filename>LDFLAGS</filename></ulink> - Suggested linker flags when you use CC to link
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CPPFLAGS'><filename>CPPFLAGS</filename></ulink> - Suggested preprocessor flags
- </literallayout>
- </para>
-</section>
-
-<section id='autotools-based-projects'>
- <title>Autotools-Based Projects</title>
-
- <para>
- Once you have a suitable cross-toolchain installed, it is very easy to
- develop a project outside of the OpenEmbedded build system.
- This section presents a simple "Helloworld" example that shows how
- to set up, compile, and run the project.
- </para>
-
- <section id='creating-and-running-a-project-based-on-gnu-autotools'>
- <title>Creating and Running a Project Based on GNU Autotools</title>
-
- <para>
- Follow these steps to create a simple Autotools-based project:
- <orderedlist>
- <listitem><para><emphasis>Create your directory:</emphasis>
- Create a clean directory for your project and then make
- that directory your working location:
- <literallayout class='monospaced'>
- $ mkdir $HOME/helloworld
- $ cd $HOME/helloworld
- </literallayout></para></listitem>
- <listitem><para><emphasis>Populate the directory:</emphasis>
- Create <filename>hello.c</filename>, <filename>Makefile.am</filename>,
- and <filename>configure.in</filename> files as follows:
- <itemizedlist>
- <listitem><para>For <filename>hello.c</filename>, include
- these lines:
- <literallayout class='monospaced'>
- #include &lt;stdio.h&gt;
-
- main()
- {
- printf("Hello World!\n");
- }
- </literallayout></para></listitem>
- <listitem><para>For <filename>Makefile.am</filename>,
- include these lines:
- <literallayout class='monospaced'>
- bin_PROGRAMS = hello
- hello_SOURCES = hello.c
- </literallayout></para></listitem>
- <listitem><para>For <filename>configure.in</filename>,
- include these lines:
- <literallayout class='monospaced'>
- AC_INIT(hello.c)
- AM_INIT_AUTOMAKE(hello,0.1)
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_OUTPUT(Makefile)
- </literallayout></para></listitem>
- </itemizedlist></para></listitem>
- <listitem><para><emphasis>Source the cross-toolchain
- environment setup file:</emphasis>
- Installation of the cross-toolchain creates a cross-toolchain
- environment setup script in the directory that the SDK
- was installed.
- Before you can use the tools to develop your project, you must
- source this setup script.
- The script begins with the string "environment-setup" and contains
- the machine architecture, which is followed by the string
- "poky-linux".
- Here is an example that sources a script from the
- default SDK installation directory that uses the
- 32-bit Intel x86 Architecture and the
- &DISTRO_NAME; Yocto Project release:
- <literallayout class='monospaced'>
- $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
- </literallayout></para></listitem>
- <listitem><para><emphasis>Generate the local aclocal.m4
- files and create the configure script:</emphasis>
- The following GNU Autotools generate the local
- <filename>aclocal.m4</filename> files and create the
- configure script:
- <literallayout class='monospaced'>
- $ aclocal
- $ autoconf
- </literallayout></para></listitem>
- <listitem><para><emphasis>Generate files needed by GNU
- coding standards:</emphasis>
- GNU coding standards require certain files in order for the
- project to be compliant.
- This command creates those files:
- <literallayout class='monospaced'>
- $ touch NEWS README AUTHORS ChangeLog
- </literallayout></para></listitem>
- <listitem><para><emphasis>Generate the configure
- file:</emphasis>
- This command generates the <filename>configure</filename>:
- <literallayout class='monospaced'>
- $ automake -a
- </literallayout></para></listitem>
- <listitem><para><emphasis>Cross-compile the project:</emphasis>
- This command compiles the project using the cross-compiler.
- The
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink>
- environment variable provides the minimal arguments for
- GNU configure:
- <literallayout class='monospaced'>
- $ ./configure ${CONFIGURE_FLAGS}
- </literallayout></para></listitem>
- <listitem><para><emphasis>Make and install the project:</emphasis>
- These two commands generate and install the project into the
- destination directory:
- <literallayout class='monospaced'>
- $ make
- $ make install DESTDIR=./tmp
- </literallayout></para></listitem>
- <listitem><para><emphasis>Verify the installation:</emphasis>
- This command is a simple way to verify the installation
- of your project.
- Running the command prints the architecture on which
- the binary file can run.
- This architecture should be the same architecture that
- the installed cross-toolchain supports.
- <literallayout class='monospaced'>
- $ file ./tmp/usr/local/bin/hello
- </literallayout></para></listitem>
- <listitem><para><emphasis>Execute your project:</emphasis>
- To execute the project in the shell, simply enter the name.
- You could also copy the binary to the actual target hardware
- and run the project there as well:
- <literallayout class='monospaced'>
- $ ./hello
- </literallayout>
- As expected, the project displays the "Hello World!" message.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='passing-host-options'>
- <title>Passing Host Options</title>
-
- <para>
- For an Autotools-based project, you can use the cross-toolchain by just
- passing the appropriate host option to <filename>configure.sh</filename>.
- The host option you use is derived from the name of the environment setup
- script found in the directory in which you installed the cross-toolchain.
- For example, the host option for an ARM-based target that uses the GNU EABI
- is <filename>armv5te-poky-linux-gnueabi</filename>.
- You will notice that the name of the script is
- <filename>environment-setup-armv5te-poky-linux-gnueabi</filename>.
- Thus, the following command works to update your project and
- rebuild it using the appropriate cross-toolchain tools:
+ For example, the following SDK installer is for a 64-bit
+ development host system and a i586-tuned target architecture
+ based off the SDK for <filename>core-image-sato</filename> and
+ using the current &DISTRO; snapshot:
<literallayout class='monospaced'>
- $ ./configure --host=armv5te-poky-linux-gnueabi \
- --with-libtool-sysroot=<replaceable>sysroot_dir</replaceable>
+ poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
</literallayout>
<note>
- If the <filename>configure</filename> script results in problems recognizing the
- <filename>--with-libtool-sysroot=</filename><replaceable>sysroot-dir</replaceable> option,
- regenerate the script to enable the support by doing the following and then
- run the script again:
- <literallayout class='monospaced'>
- $ libtoolize --automake
- $ aclocal -I ${OECORE_NATIVE_SYSROOT}/usr/share/aclocal \
- [-I <replaceable>dir_containing_your_project-specific_m4_macros</replaceable>]
- $ autoconf
- $ autoheader
- $ automake -a
- </literallayout>
+ As an alternative to downloading an SDK, you can build the
+ SDK installer.
+ For information on building the installer, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ Another helpful resource for building an installer is the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ This wiki page focuses on development when using the Eclipse
+ IDE.
</note>
</para>
- </section>
-</section>
-
-<section id='makefile-based-projects'>
- <title>Makefile-Based Projects</title>
-
- <para>
- For Makefile-based projects, the cross-toolchain environment variables
- established by running the cross-toolchain environment setup script
- are subject to general <filename>make</filename> rules.
- </para>
- <para>
- To illustrate this, consider the following four cross-toolchain
- environment variables:
- <literallayout class='monospaced'>
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
- <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/1.8/sysroots/i586-poky-linux
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
- <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
- </literallayout>
- Now, consider the following three cases:
- <itemizedlist>
- <listitem><para><emphasis>Case 1 - No Variables Set in the <filename>Makefile</filename>:</emphasis>
- Because these variables are not specifically set in the
- <filename>Makefile</filename>, the variables retain their
- values based on the environment.
- </para></listitem>
- <listitem><para><emphasis>Case 2 - Variables Set in the <filename>Makefile</filename>:</emphasis>
- Specifically setting variables in the
- <filename>Makefile</filename> during the build results in the
- environment settings of the variables being overwritten.
- </para></listitem>
- <listitem><para><emphasis>Case 3 - Variables Set when the <filename>Makefile</filename> is Executed from the Command Line:</emphasis>
- Executing the <filename>Makefile</filename> from the command
- line results in the variables being overwritten with
- command-line content regardless of what is being set in the
- <filename>Makefile</filename>.
- In this case, environment variables are not considered unless
- you use the "-e" flag during the build:
+ <para>
+ The SDK and toolchains are self-contained and by default are
+ installed into <filename>/opt/poky</filename>.
+ However, when you run the SDK installer, you can choose an
+ installation directory.
+ <note>
+ You must change the permissions on the SDK
+ installer script so that it is executable:
<literallayout class='monospaced'>
- $ make -e <replaceable>file</replaceable>
+ $ chmod +x poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
</literallayout>
- If you use this flag, then the environment values of the
- variables override any variables specifically set in the
- <filename>Makefile</filename>.
- </para></listitem>
- </itemizedlist>
- <note>
- For the list of variables set up by the cross-toolchain environment
- setup script, see the
- "<link linkend='sdk-running-the-sdk-environment-setup-script'>Running the SDK Environment Setup Script</link>"
- section.
- </note>
- </para>
-</section>
-
-<section id='sdk-developing-applications-using-eclipse'>
- <title>Developing Applications Using <trademark class='trade'>Eclipse</trademark></title>
-
- <para>
- If you are familiar with the popular Eclipse IDE, you can use an
- Eclipse Yocto Plug-in to allow you to develop, deploy, and test your
- application all from within Eclipse.
- This section describes general workflow using the SDK and Eclipse
- and how to configure and set up Eclipse.
- </para>
-
- <section id='workflow-using-eclipse'>
-
- <title>Workflow Using <trademark class='trade'>Eclipse</trademark></title>
-
- <para>
- The following figure and supporting list summarize the application
- development general workflow that employs both the SDK Eclipse.
+ </note>
</para>
<para>
- <imagedata fileref="figures/sdk-eclipse-dev-flow.png"
- width="7in" depth="7in" align="center" scale="100" />
+ The following command shows how to run the installer given a
+ toolchain tarball for a 64-bit x86 development host system and
+ a 32-bit x86 target architecture.
+ The example assumes the SDK installer is located in
+ <filename>~/Downloads/</filename>.
+ <note>
+ If you do not have write permissions for the directory
+ into which you are installing the SDK, the installer
+ notifies you and exits.
+ Be sure you have write permissions in the directory and
+ run the installer again.
+ </note>
+ <literallayout class='monospaced'>
+ $ ./poky-glibc-x86_64-core-image-sato-i586-toolchain-&DISTRO;.sh
+ Poky (Yocto Project Reference Distro) SDK installer version &DISTRO;
+ ===============================================================
+ Enter target directory for SDK (default: /opt/poky/&DISTRO;):
+ You are about to install the SDK to "/opt/poky/&DISTRO;". Proceed[Y/n]? Y
+ Extracting SDK.......................................................................done
+ Setting it up...done
+ SDK has been successfully set up and is ready to be used.
+ Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
+ $ . /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
+ </literallayout>
</para>
<para>
- <orderedlist>
- <listitem><para><emphasis>Prepare the host system for the Yocto Project</emphasis>:
- See
- "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
- and
- "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>" sections both
- in the Yocto Project Reference Manual for requirements.
- In particular, be sure your host system has the
- <filename>xterm</filename> package installed.
- </para></listitem>
- <listitem><para><emphasis>Secure the Yocto Project kernel target image</emphasis>:
- You must have a target kernel image that has been built using the OpenEmbedded
- build system.</para>
- <para>Depending on whether the Yocto Project has a pre-built image that matches your target
- architecture and where you are going to run the image while you develop your application
- (QEMU or real hardware), the area from which you get the image differs.
- <itemizedlist>
- <listitem><para>Download the image from
- <ulink url='&YOCTO_MACHINES_DL_URL;'><filename>machines</filename></ulink>
- if your target architecture is supported and you are going to develop
- and test your application on actual hardware.</para></listitem>
- <listitem><para>Download the image from
- <ulink url='&YOCTO_QEMU_DL_URL;'>
- <filename>machines/qemu</filename></ulink> if your target architecture is supported
- and you are going to develop and test your application using the QEMU
- emulator.</para></listitem>
- <listitem><para>Build your image if you cannot find a pre-built image that matches
- your target architecture.
- If your target architecture is similar to a supported architecture, you can
- modify the kernel image before you build it.
- See the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#patching-the-kernel'>Patching the Kernel</ulink>"
- section in the Yocto Project Development
- manual for an example.</para></listitem>
- </itemizedlist></para>
- <para>For information on pre-built kernel image naming schemes for images
- that can run on the QEMU emulator, see the
- <ulink url='&YOCTO_DOCS_SDK_URL;#sdk-manual'>Yocto Project Software Development Kit (SDK) Developer's Guide</ulink>.
- </para></listitem>
- <listitem><para><emphasis>Install the SDK</emphasis>:
- The SDK provides a target-specific cross-development toolchain, the root filesystem,
- the QEMU emulator, and other tools that can help you develop your application.
- For information on how to install the SDK, see the
- "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
- section.
- </para></listitem>
- <listitem><para><emphasis>Secure the target root filesystem
- and the Cross-development toolchain</emphasis>:
- You need to find and download the appropriate root filesystem and
- the cross-development toolchain.</para>
- <para>You can find the tarballs for the root filesystem in the same area used
- for the kernel image.
- Depending on the type of image you are running, the root filesystem you need differs.
- For example, if you are developing an application that runs on an image that
- supports Sato, you need to get a root filesystem that supports Sato.</para>
- <para>You can find the cross-development toolchains at
- <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'><filename>toolchains</filename></ulink>.
- Be sure to get the correct toolchain for your development host and your
- target architecture.
- See the "<link linkend='sdk-locating-pre-built-sdk-installers'>Locating Pre-Built SDK Installers</link>"
- section for information and the
- "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
- section for installation information.
- </para></listitem>
- <listitem><para><emphasis>Create and build your application</emphasis>:
- At this point, you need to have source files for your application.
- Once you have the files, you can use the Eclipse IDE to import them and build the
- project.
- If you are not using Eclipse, you need to use the cross-development tools you have
- installed to create the image.</para></listitem>
- <listitem><para><emphasis>Deploy the image with the application</emphasis>:
- If you are using the Eclipse IDE, you can deploy your image to the hardware or to
- QEMU through the project's preferences.
- If you are not using the Eclipse IDE, then you need to deploy the application
- to the hardware using other methods.
- Or, if you are using QEMU, you need to use that tool and
- load your image in for testing.
- See the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
- chapter in the Yocto Project Development Manual
- for information on using QEMU.
- </para></listitem>
- <listitem><para><emphasis>Test and debug the application</emphasis>:
- Once your application is deployed, you need to test it.
- Within the Eclipse IDE, you can use the debugging environment along with the
- set of installed user-space tools to debug your application.
- Of course, the same user-space tools are available separately if you choose
- not to use the Eclipse IDE.</para></listitem>
- </orderedlist>
+ Again, reference the
+ "<link linkend='sdk-installed-standard-sdk-directory-structure'>Installed Standard SDK Directory Structure</link>"
+ section for more details on the resulting directory structure of
+ the installed SDK.
</para>
</section>
- <section id='adt-eclipse'>
- <title>Working Within Eclipse</title>
+ <section id='sdk-running-the-sdk-environment-setup-script'>
+ <title>Running the SDK Environment Setup Script</title>
<para>
- The Eclipse IDE is a popular development environment and it fully
- supports development using the Yocto Project.
- <note>
- This release of the Yocto Project supports both the Luna
- and Kepler versions of the Eclipse IDE.
- Thus, the following information provides setup information for
- both versions.
- </note>
+ Once you have the SDK installed, you must run the SDK environment
+ setup script before you can actually use it.
+ This setup script resides in the directory you chose when you
+ installed the SDK.
+ For information on where this setup script can reside, see the
+ "<link linkend='sdk-appendix-obtain'>Obtaining the SDK</link>"
+ Appendix.
</para>
<para>
- When you install and configure the Eclipse Yocto Project Plug-in
- into the Eclipse IDE, you maximize your Yocto Project experience.
- Installing and configuring the Plug-in results in an environment
- that has extensions specifically designed to let you more easily
- develop software.
- These extensions allow for cross-compilation, deployment, and
- execution of your output into a QEMU emulation session as well as
- actual target hardware.
- You can also perform cross-debugging and profiling.
- The environment also supports a suite of tools that allows you
- to perform remote profiling, tracing, collection of power data,
- collection of latency data, and collection of performance data.
- </para>
-
- <para>
- This section describes how to install and configure the Eclipse IDE
- Yocto Plug-in and how to use it to develop your application.
+ Before running the script, be sure it is the one that matches the
+ architecture for which you are developing.
+ Environment setup scripts begin with the string
+ "<filename>environment-setup</filename>" and include as part of
+ their name the tuned target architecture.
+ For example, the command to source a setup script for an IA-based
+ target machine using i586 tuning and located in the default SDK
+ installation directory is as follows:
+ <literallayout class='monospaced'>
+ $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
+ </literallayout>
+ When you run the setup script, the same environment variables are
+ defined as are when you run the setup script for an extensible SDK.
+ See the
+ "<link linkend='sdk-running-the-extensible-sdk-environment-setup-script'>Running the Extensible SDK Environment Setup Script</link>"
+ section for more information.
</para>
-
- <section id='setting-up-the-eclipse-ide'>
- <title>Setting Up the Eclipse IDE</title>
-
- <para>
- To develop within the Eclipse IDE, you need to do the following:
- <orderedlist>
- <listitem><para>Install the optimal version of the Eclipse
- IDE.</para></listitem>
- <listitem><para>Configure the Eclipse IDE.
- </para></listitem>
- <listitem><para>Install the Eclipse Yocto Plug-in.
- </para></listitem>
- <listitem><para>Configure the Eclipse Yocto Plug-in.
- </para></listitem>
- </orderedlist>
- <note>
- Do not install Eclipse from your distribution's package
- repository.
- Be sure to install Eclipse from the official Eclipse
- download site as directed in the next section.
- </note>
- </para>
-
- <section id='installing-eclipse-ide'>
- <title>Installing the Eclipse IDE</title>
-
- <para>
- It is recommended that you have the Luna SR2 (4.4.2)
- version of the Eclipse IDE installed on your development
- system.
- However, if you currently have the Kepler 4.3.2 version
- installed and you do not want to upgrade the IDE, you can
- configure Kepler to work with the Yocto Project.
- </para>
-
- <para>
- If you do not have the Luna SR2 (4.4.2) Eclipse IDE
- installed, you can find the tarball at
- <ulink url='&ECLIPSE_MAIN_URL;'></ulink>.
- From that site, choose the appropriate download from the
- "Eclipse IDE for C/C++ Developers".
- This version contains the Eclipse Platform, the Java
- Development Tools (JDT), and the Plug-in Development
- Environment.
- </para>
-
- <para>
- Once you have downloaded the tarball, extract it into a
- clean directory.
- For example, the following commands unpack and install the
- downloaded Eclipse IDE tarball into a clean directory
- using the default name <filename>eclipse</filename>:
- <literallayout class='monospaced'>
- $ cd ~
- $ tar -xzvf ~/Downloads/eclipse-cpp-luna-SR2-linux-gtk-x86_64.tar.gz
- </literallayout>
- </para>
- </section>
-
- <section id='configuring-the-eclipse-ide'>
- <title>Configuring the Eclipse IDE</title>
-
- <para>
- This section presents the steps needed to configure the
- Eclipse IDE.
- </para>
-
- <para>
- Before installing and configuring the Eclipse Yocto Plug-in,
- you need to configure the Eclipse IDE.
- Follow these general steps:
- <orderedlist>
- <listitem><para>Start the Eclipse IDE.</para></listitem>
- <listitem><para>Make sure you are in your Workbench and
- select "Install New Software" from the "Help"
- pull-down menu.</para></listitem>
- <listitem><para>Select
- <filename>Luna - &ECLIPSE_LUNA_URL;</filename>
- from the "Work with:" pull-down menu.
- <note>
- For Kepler, select
- <filename>Kepler - &ECLIPSE_KEPLER_URL;</filename>
- </note>
- </para></listitem>
- <listitem><para>Expand the box next to "Linux Tools"
- and select the
- <filename>Linux Tools LTTng Tracer Control</filename>,
- <filename>Linux Tools LTTng Userspace Analysis</filename>,
- and
- <filename>LTTng Kernel Analysis</filename> boxes.
- If these selections do not appear in the list,
- that means the items are already installed.
- <note>
- For Kepler, select
- <filename>LTTng - Linux Tracing Toolkit</filename>
- box.
- </note>
- </para></listitem>
- <listitem><para>Expand the box next to "Mobile and
- Device Development" and select the following boxes.
- Again, if any of the following items are not
- available for selection, that means the items are
- already installed:
- <itemizedlist>
- <listitem><para><filename>C/C++ Remote Launch (Requires RSE Remote System Explorer)</filename></para></listitem>
- <listitem><para><filename>Remote System Explorer End-user Runtime</filename></para></listitem>
- <listitem><para><filename>Remote System Explorer User Actions</filename></para></listitem>
- <listitem><para><filename>Target Management Terminal (Core SDK)</filename></para></listitem>
- <listitem><para><filename>TCF Remote System Explorer add-in</filename></para></listitem>
- <listitem><para><filename>TCF Target Explorer</filename></para></listitem>
- </itemizedlist></para></listitem>
- <listitem><para>Expand the box next to "Programming
- Languages" and select the
- <filename>C/C++ Autotools Support</filename>
- and <filename>C/C++ Development Tools</filename>
- boxes.
- For Luna, these items do not appear on the list
- as they are already installed.
- </para></listitem>
- <listitem><para>Complete the installation and restart
- the Eclipse IDE.</para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='installing-the-eclipse-yocto-plug-in'>
- <title>Installing or Accessing the Eclipse Yocto Plug-in</title>
-
- <para>
- You can install the Eclipse Yocto Plug-in into the Eclipse
- IDE one of two ways: use the Yocto Project's Eclipse
- Update site to install the pre-built plug-in or build and
- install the plug-in from the latest source code.
- </para>
-
- <section id='new-software'>
- <title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
-
- <para>
- To install the Eclipse Yocto Plug-in from the update
- site, follow these steps:
- <orderedlist>
- <listitem><para>Start up the Eclipse IDE.
- </para></listitem>
- <listitem><para>In Eclipse, select "Install New
- Software" from the "Help" menu.
- </para></listitem>
- <listitem><para>Click "Add..." in the "Work with:"
- area.</para></listitem>
- <listitem><para>Enter
- <filename>&ECLIPSE_DL_PLUGIN_URL;/luna</filename>
- in the URL field and provide a meaningful name
- in the "Name" field.
- <note>
- If you are using Kepler, use
- <filename>&ECLIPSE_DL_PLUGIN_URL;/kepler</filename>
- in the URL field.
- </note></para></listitem>
- <listitem><para>Click "OK" to have the entry added
- to the "Work with:" drop-down list.
- </para></listitem>
- <listitem><para>Select the entry for the plug-in
- from the "Work with:" drop-down list.
- </para></listitem>
- <listitem><para>Check the boxes next to
- <filename>Yocto Project ADT Plug-in</filename>,
- <filename>Yocto Project Bitbake Commander Plug-in</filename>,
- and
- <filename>Yocto Project Documentation plug-in</filename>.
- </para></listitem>
- <listitem><para>Complete the remaining software
- installation steps and then restart the Eclipse
- IDE to finish the installation of the plug-in.
- <note>
- You can click "OK" when prompted about
- installing software that contains unsigned
- content.
- </note>
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='zip-file-method'>
- <title>Installing the Plug-in Using the Latest Source Code</title>
-
- <para>
- To install the Eclipse Yocto Plug-in from the latest
- source code, follow these steps:
- <orderedlist>
- <listitem><para>Be sure your development system
- is not using OpenJDK to build the plug-in
- by doing the following:
- <orderedlist>
- <listitem><para>Use the Oracle JDK.
- If you don't have that, go to
- <ulink url='http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html'></ulink>
- and download the latest appropriate
- Java SE Development Kit tarball for
- your development system and
- extract it into your home directory.
- </para></listitem>
- <listitem><para>In the shell you are going
- to do your work, export the location of
- the Oracle Java.
- The previous step creates a new folder
- for the extracted software.
- You need to use the following
- <filename>export</filename> command
- and provide the specific location:
- <literallayout class='monospaced'>
- export PATH=~/<replaceable>extracted_jdk_location</replaceable>/bin:$PATH
- </literallayout>
- </para></listitem>
- </orderedlist>
- </para></listitem>
- <listitem><para>In the same shell, create a Git
- repository with:
- <literallayout class='monospaced'>
- $ cd ~
- $ git clone git://git.yoctoproject.org/eclipse-poky
- </literallayout>
- </para></listitem>
- <listitem><para>Be sure to checkout the correct
- tag.
- For example, if you are using Luna, do the
- following:
- <literallayout class='monospaced'>
- $ git checkout luna/yocto-&DISTRO;
- </literallayout>
- This puts you in a detached HEAD state, which
- is fine since you are only going to be building
- and not developing.
- <note>
- If you are building kepler, checkout the
- <filename>kepler/yocto-&DISTRO;</filename>
- branch.
- </note>
- </para></listitem>
- <listitem><para>Change to the
- <filename>scripts</filename>
- directory within the Git repository:
- <literallayout class='monospaced'>
- $ cd scripts
- </literallayout>
- </para></listitem>
- <listitem><para>Set up the local build environment
- by running the setup script:
- <literallayout class='monospaced'>
- $ ./setup.sh
- </literallayout>
- </para></listitem>
- <listitem><para>When the script finishes execution,
- it prompts you with instructions on how to run
- the <filename>build.sh</filename> script, which
- is also in the <filename>scripts</filename>
- directory of the Git repository created
- earlier.
- </para></listitem>
- <listitem><para>Run the <filename>build.sh</filename>
- script as directed.
- Be sure to provide the tag name, documentation
- branch, and a release name.
- Here is an example that uses the
- <filename>luna/yocto-&DISTRO;</filename> tag, the
- <filename>master</filename> documentation
- branch, and
- <filename>&DISTRO_NAME_NO_CAP;</filename> for the
- release name:
- <literallayout class='monospaced'>
- $ ECLIPSE_HOME=/home/scottrif/eclipse-poky/scripts/eclipse ./build.sh luna/yocto-&DISTRO; master &DISTRO_NAME_NO_CAP; 2>&amp;1 | tee -a build.log
- </literallayout>
- After running the script, the file
- <filename>org.yocto.sdk-</filename><replaceable>release</replaceable><filename>-</filename><replaceable>date</replaceable><filename>-archive.zip</filename>
- is in the current directory.
- </para></listitem>
- <listitem><para>If necessary, start the Eclipse IDE
- and be sure you are in the Workbench.
- </para></listitem>
- <listitem><para>Select "Install New Software" from
- the "Help" pull-down menu.
- </para></listitem>
- <listitem><para>Click "Add".</para></listitem>
- <listitem><para>Provide anything you want in the
- "Name" field.
- </para></listitem>
- <listitem><para>Click "Archive" and browse to the
- ZIP file you built in step eight.
- This ZIP file should not be "unzipped", and must
- be the <filename>*archive.zip</filename> file
- created by running the
- <filename>build.sh</filename> script.
- </para></listitem>
- <listitem><para>Click the "OK" button.
- </para></listitem>
- <listitem><para>Check the boxes that appear in
- the installation window to install the
- <filename>Yocto Project ADT Plug-in</filename>,
- <filename>Yocto Project Bitbake Commander Plug-in</filename>,
- and the
- <filename>Yocto Project Documentation plug-in</filename>.
- </para></listitem>
- <listitem><para>Finish the installation by clicking
- through the appropriate buttons.
- You can click "OK" when prompted about
- installing software that contains unsigned
- content.
- </para></listitem>
- <listitem><para>Restart the Eclipse IDE if
- necessary.
- </para></listitem>
- </orderedlist>
- </para>
-
- <para>
- At this point you should be able to configure the
- Eclipse Yocto Plug-in as described in the
- "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>"
- section.</para>
- </section>
- </section>
-
- <section id='configuring-the-eclipse-yocto-plug-in'>
- <title>Configuring the Eclipse Yocto Plug-in</title>
-
- <para>
- Configuring the Eclipse Yocto Plug-in involves setting the
- Cross Compiler options and the Target options.
- The configurations you choose become the default settings
- for all projects.
- You do have opportunities to change them later when
- you configure the project (see the following section).
- </para>
-
- <para>
- To start, you need to do the following from within the
- Eclipse IDE:
- <itemizedlist>
- <listitem><para>Choose "Preferences" from the
- "Window" menu to display the Preferences Dialog.
- </para></listitem>
- <listitem><para>Click "Yocto Project ADT" to display
- the configuration screen.
- </para></listitem>
- </itemizedlist>
- </para>
-
- <section id='configuring-the-cross-compiler-options'>
- <title>Configuring the Cross-Compiler Options</title>
-
- <para>
- To configure the Cross Compiler Options, you must select
- the type of toolchain, point to the toolchain, specify
- the sysroot location, and select the target
- architecture.
- <itemizedlist>
- <listitem><para><emphasis>Selecting the Toolchain Type:</emphasis>
- Choose between
- <filename>Standalone pre-built toolchain</filename>
- and
- <filename>Build system derived toolchain</filename>
- for Cross Compiler Options.
- <itemizedlist>
- <listitem><para><emphasis>
- <filename>Standalone Pre-built Toolchain:</filename></emphasis>
- Select this mode when you are using
- a stand-alone cross-toolchain.
- For example, suppose you are an
- application developer and do not
- need to build a target image.
- Instead, you just want to use an
- architecture-specific toolchain on
- an existing kernel and target root
- filesystem.</para></listitem>
- <listitem><para><emphasis>
- <filename>Build System Derived Toolchain:</filename></emphasis>
- Select this mode if the
- cross-toolchain has been installed
- and built as part of the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
- When you select
- <filename>Build system derived toolchain</filename>,
- you are using the toolchain bundled
- inside the Build Directory.
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para><emphasis>Point to the Toolchain:</emphasis>
- If you are using a stand-alone pre-built
- toolchain, you should be pointing to where it is
- installed.
- See the
- "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
- section for information about how the SDK is
- installed.</para>
- <para>If you are using a system-derived
- toolchain, the path you provide for the
- <filename>Toolchain Root Location</filename>
- field is the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
- See the
- "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
- section.</para></listitem>
- <listitem><para><emphasis>Specify the Sysroot Location:</emphasis>
- This location is where the root filesystem for
- the target hardware resides.
- </para>
- <para>The location of
- the sysroot filesystem depends on where you
- separately extracted and installed the
- filesystem.</para>
- <para>For information on how to install the
- toolchain and on how to extract and install the
- sysroot filesystem, see the
- "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
- section.
- </para></listitem>
- <listitem><para><emphasis>Select the Target Architecture:</emphasis>
- The target architecture is the type of hardware
- you are going to use or emulate.
- Use the pull-down
- <filename>Target Architecture</filename> menu
- to make your selection.
- The pull-down menu should have the supported
- architectures.
- If the architecture you need is not listed in
- the menu, you will need to build the image.
- See the
- "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
- section of the Yocto Project Quick Start for
- more information.</para></listitem>
- </itemizedlist>
- </para>
- </section>
-
- <section id='configuring-the-target-options'>
- <title>Configuring the Target Options</title>
-
- <para>
- You can choose to emulate hardware using the QEMU
- emulator, or you can choose to run your image on actual
- hardware.
- <itemizedlist>
- <listitem><para><emphasis>QEMU:</emphasis>
- Select this option if you will be using the
- QEMU emulator.
- If you are using the emulator, you also need to
- locate the kernel and specify any custom
- options.</para>
- <para>If you selected
- <filename>Build system derived toolchain</filename>,
- the target kernel you built will be located in
- the Build Directory in
- <filename>tmp/deploy/images/<replaceable>machine</replaceable></filename>
- directory.
- If you selected
- <filename>Standalone pre-built toolchain</filename>,
- the pre-built image you downloaded is located
- in the directory you specified when you
- downloaded the image.</para>
- <para>Most custom options are for advanced QEMU
- users to further customize their QEMU instance.
- These options are specified between paired
- angled brackets.
- Some options must be specified outside the
- brackets.
- In particular, the options
- <filename>serial</filename>,
- <filename>nographic</filename>, and
- <filename>kvm</filename> must all be outside the
- brackets.
- Use the <filename>man qemu</filename> command
- to get help on all the options and their use.
- The following is an example:
- <literallayout class='monospaced'>
- serial â€&lt;-m 256 -full-screen&gt;’
- </literallayout></para>
- <para>
- Regardless of the mode, Sysroot is already
- defined as part of the Cross-Compiler Options
- configuration in the
- <filename>Sysroot Location:</filename> field.
- </para></listitem>
- <listitem><para><emphasis>External HW:</emphasis>
- Select this option if you will be using actual
- hardware.</para></listitem>
- </itemizedlist>
- </para>
-
- <para>
- Click the "OK" to save your plug-in configurations.
- </para>
- </section>
- </section>
- </section>
-
- <section id='creating-the-project'>
- <title>Creating the Project</title>
-
- <para>
- You can create two types of projects: Autotools-based, or
- Makefile-based.
- This section describes how to create Autotools-based projects
- from within the Eclipse IDE.
- For information on creating Makefile-based projects in a
- terminal window, see the
- "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>"
- section.
- <note>
- Do not use special characters in project names
- (e.g. spaces, underscores, etc.). Doing so can
- cause configuration to fail.
- </note>
- </para>
-
- <para>
- To create a project based on a Yocto template and then display
- the source code, follow these steps:
- <orderedlist>
- <listitem><para>Select "Project" from the "File -> New" menu.
- </para></listitem>
- <listitem><para>Double click <filename>CC++</filename>.
- </para></listitem>
- <listitem><para>Double click <filename>C Project</filename>
- to create the project.</para></listitem>
- <listitem><para>Expand <filename>Yocto Project ADT Autotools Project</filename>.
- </para></listitem>
- <listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
- This is an Autotools-based project based on a Yocto
- template.</para></listitem>
- <listitem><para>Put a name in the <filename>Project name:</filename>
- field.
- Do not use hyphens as part of the name.
- </para></listitem>
- <listitem><para>Click "Next".</para></listitem>
- <listitem><para>Add information in the
- <filename>Author</filename> and
- <filename>Copyright notice</filename> fields.
- </para></listitem>
- <listitem><para>Be sure the <filename>License</filename>
- field is correct.</para></listitem>
- <listitem><para>Click "Finish".</para></listitem>
- <listitem><para>If the "open perspective" prompt appears,
- click "Yes" so that you in the C/C++ perspective.
- </para></listitem>
- <listitem><para>The left-hand navigation pane shows your
- project.
- You can display your source by double clicking the
- project's source file.</para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='configuring-the-cross-toolchains'>
- <title>Configuring the Cross-Toolchains</title>
-
- <para>
- The earlier section,
- "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>",
- sets up the default project configurations.
- You can override these settings for a given project by following
- these steps:
- <orderedlist>
- <listitem><para>Select "Change Yocto Project Settings" from
- the "Project" menu.
- This selection brings up the Yocto Project Settings
- Dialog and allows you to make changes specific to an
- individual project.</para>
- <para>By default, the Cross Compiler Options and Target
- Options for a project are inherited from settings you
- provided using the Preferences Dialog as described
- earlier in the
- "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>" section.
- The Yocto Project Settings Dialog allows you to override
- those default settings for a given project.
- </para></listitem>
- <listitem><para>Make your configurations for the project
- and click "OK".
- </para></listitem>
- <listitem><para>Right-click in the navigation pane and
- select "Reconfigure Project" from the pop-up menu.
- This selection reconfigures the project by running
- <filename>autogen.sh</filename> in the workspace for
- your project.
- The script also runs <filename>libtoolize</filename>,
- <filename>aclocal</filename>,
- <filename>autoconf</filename>,
- <filename>autoheader</filename>,
- <filename>automake --a</filename>, and
- <filename>./configure</filename>.
- Click on the "Console" tab beneath your source code to
- see the results of reconfiguring your project.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='building-the-project'>
- <title>Building the Project</title>
-
- <para>
- To build the project select "Build Project" from the
- "Project" menu.
- The console should update and you can note the cross-compiler
- you are using.
- <note>
- When building "Yocto Project ADT Autotools" projects, the Eclipse
- IDE might display error messages for Functions/Symbols/Types
- that cannot be "resolved", even when the related include file
- is listed at the project navigator and when the project is
- able to build.
- For these cases only, it is recommended to add a new linked
- folder to the appropriate sysroot.
- Use these steps to add the linked folder:
- <orderedlist>
- <listitem><para>
- Select the project.
- </para></listitem>
- <listitem><para>
- Select "Folder" from the
- <filename>File > New</filename> menu.
- </para></listitem>
- <listitem><para>
- In the "New Folder" Dialog, select "Link to alternate
- location (linked folder)".
- </para></listitem>
- <listitem><para>
- Click "Browse" to navigate to the include folder inside
- the same sysroot location selected in the Yocto Project
- configuration preferences.
- </para></listitem>
- <listitem><para>
- Click "OK".
- </para></listitem>
- <listitem><para>
- Click "Finish" to save the linked folder.
- </para></listitem>
- </orderedlist>
- </note>
- </para>
- </section>
-
- <section id='starting-qemu-in-user-space-nfs-mode'>
- <title>Starting QEMU in User-Space NFS Mode</title>
-
- <para>
- To start the QEMU emulator from within Eclipse, follow these
- steps:
- <note>
- See the
- "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
- chapter in the Yocto Project Development Manual
- for more information on using QEMU.
- </note>
- <orderedlist>
- <listitem><para>Expose and select "External Tools" from
- the "Run" menu.
- Your image should appear as a selectable menu item.
- </para></listitem>
- <listitem><para>Select your image from the menu to launch
- the emulator in a new window.
- </para></listitem>
- <listitem><para>If needed, enter your host root password in
- the shell window at the prompt.
- This sets up a <filename>Tap 0</filename> connection
- needed for running in user-space NFS mode.
- </para></listitem>
- <listitem><para>Wait for QEMU to launch.</para></listitem>
- <listitem><para>Once QEMU launches, you can begin operating
- within that environment.
- One useful task at this point would be to determine the
- IP Address for the user-space NFS by using the
- <filename>ifconfig</filename> command.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='deploying-and-debugging-the-application'>
- <title>Deploying and Debugging the Application</title>
-
- <para>
- Once the QEMU emulator is running the image, you can deploy
- your application using the Eclipse IDE and then use
- the emulator to perform debugging.
- Follow these steps to deploy the application.
- <note>
- Currently, Eclipse does not support SSH port forwarding.
- Consequently, if you need to run or debug a remote
- application using the host display, you must create a
- tunneling connection from outside Eclipse and keep
- that connection alive during your work.
- For example, in a new terminal, run the following:
- <literallayout class='monospaced'>
- ssh -XY user_name@remote_host_ip
- </literallayout>
- After running the command, add the command to be executed
- in Eclipse's run configuration before the application
- as follows:
- <literallayout class='monospaced'>
- export DISPLAY=:10.0
- </literallayout>
- </note>
- <orderedlist>
- <listitem><para>Select "Debug Configurations..." from the
- "Run" menu.</para></listitem>
- <listitem><para>In the left area, expand
- <filename>C/C++Remote Application</filename>.
- </para></listitem>
- <listitem><para>Locate your project and select it to bring
- up a new tabbed view in the Debug Configurations Dialog.
- </para></listitem>
- <listitem><para>Enter the absolute path into which you want
- to deploy the application.
- Use the "Remote Absolute File Path for
- C/C++Application:" field.
- For example, enter
- <filename>/usr/bin/<replaceable>programname</replaceable></filename>.
- </para></listitem>
- <listitem><para>Click on the "Debugger" tab to see the
- cross-tool debugger you are using.</para></listitem>
- <listitem><para>Click on the "Main" tab.</para></listitem>
- <listitem><para>Create a new connection to the QEMU instance
- by clicking on "new".</para></listitem>
- <listitem><para>Select <filename>TCF</filename>, which means
- Target Communication Framework.</para></listitem>
- <listitem><para>Click "Next".</para></listitem>
- <listitem><para>Clear out the "host name" field and enter
- the IP Address determined earlier.</para></listitem>
- <listitem><para>Click "Finish" to close the
- New Connections Dialog.</para></listitem>
- <listitem><para>Use the drop-down menu now in the
- "Connection" field and pick the IP Address you entered.
- </para></listitem>
- <listitem><para>Click "Debug" to bring up a login screen
- and login.</para></listitem>
- <listitem><para>Accept the debug perspective.
- </para></listitem>
- </orderedlist>
- </para>
- </section>
-
- <section id='running-user-space-tools'>
- <title>Running User-Space Tools</title>
-
- <para>
- As mentioned earlier in the manual, several tools exist that
- enhance your development experience.
- These tools are aids in developing and debugging applications
- and images.
- You can run these user-space tools from within the Eclipse
- IDE through the "YoctoProjectTools" menu.
- </para>
-
- <para>
- Once you pick a tool, you need to configure it for the remote
- target.
- Every tool needs to have the connection configured.
- You must select an existing TCF-based RSE connection to the
- remote target.
- If one does not exist, click "New" to create one.
- </para>
-
- <para>
- Here are some specifics about the remote tools:
- <itemizedlist>
- <listitem><para><emphasis><filename>Lttng2.0 trace import</filename>:</emphasis>
- Selecting this tool transfers the remote target's
- <filename>Lttng</filename> tracing data back to the
- local host machine and uses the Lttng Eclipse plug-in
- to graphically display the output.
- For information on how to use Lttng to trace an
- application,
- see <ulink url='http://lttng.org/documentation'></ulink>
- and the
- "<ulink url='&YOCTO_DOCS_PROF_URL;#lttng-linux-trace-toolkit-next-generation'>LTTng (Linux Trace Toolkit, next generation)</ulink>"
- section, which is in the Yocto Project Profiling and
- Tracing Manual.
- <note>Do not use
- <filename>Lttng-user space (legacy)</filename> tool.
- This tool no longer has any upstream support.</note>
- </para>
- <para>Before you use the
- <filename>Lttng2.0 trace import</filename> tool,
- you need to setup the Lttng Eclipse plug-in and create a
- Tracing project.
- Do the following:
- <orderedlist>
- <listitem><para>Select "Open Perspective" from the
- "Window" menu and then select "Other..." to
- bring up a menu of other perspectives.
- Choose "Tracing".
- </para></listitem>
- <listitem><para>Click "OK" to change the Eclipse
- perspective into the Tracing perspective.
- </para></listitem>
- <listitem><para>Create a new Tracing project by
- selecting "Project" from the "File -> New" menu.
- </para></listitem>
- <listitem><para>Choose "Tracing Project" from the
- "Tracing" menu and click "Next".
- </para></listitem>
- <listitem><para>Provide a name for your tracing
- project and click "Finish".
- </para></listitem>
- <listitem><para>Generate your tracing data on the
- remote target.</para></listitem>
- <listitem><para>Select "Lttng2.0 trace import"
- from the "Yocto Project Tools" menu to
- start the data import process.</para></listitem>
- <listitem><para>Specify your remote connection name.
- </para></listitem>
- <listitem><para>For the Ust directory path, specify
- the location of your remote tracing data.
- Make sure the location ends with
- <filename>ust</filename> (e.g.
- <filename>/usr/mysession/ust</filename>).
- </para></listitem>
- <listitem><para>Click "OK" to complete the import
- process.
- The data is now in the local tracing project
- you created.</para></listitem>
- <listitem><para>Right click on the data and then use
- the menu to Select "Generic CTF Trace" from the
- "Trace Type... -> Common Trace Format" menu to
- map the tracing type.</para></listitem>
- <listitem><para>Right click the mouse and select
- "Open" to bring up the Eclipse Lttng Trace
- Viewer so you view the tracing data.
- </para></listitem>
- </orderedlist></para></listitem>
- <listitem><para><emphasis><filename>PowerTOP</filename>:</emphasis>
- Selecting this tool runs PowerTOP on the remote target
- machine and displays the results in a new view called
- PowerTOP.</para>
- <para>The "Time to gather data(sec):" field is the time
- passed in seconds before data is gathered from the
- remote target for analysis.</para>
- <para>The "show pids in wakeups list:" field corresponds
- to the <filename>-p</filename> argument passed to
- <filename>PowerTOP</filename>.</para></listitem>
- <listitem><para><emphasis><filename>LatencyTOP and Perf</filename>:</emphasis>
- LatencyTOP identifies system latency, while
- Perf monitors the system's performance counter
- registers.
- Selecting either of these tools causes an RSE terminal
- view to appear from which you can run the tools.
- Both tools refresh the entire screen to display results
- while they run.
- For more information on setting up and using
- <filename>perf</filename>, see the
- "<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
- section in the Yocto Project Profiling and Tracing
- Manual.
- </para></listitem>
- <listitem><para><emphasis><filename>SystemTap</filename>:</emphasis>
- Systemtap is a tool that lets you create and reuse
- scripts to examine the activities of a live Linux
- system.
- You can easily extract, filter, and summarize data
- that helps you diagnose complex performance or
- functional problems.
- For more information on setting up and using
- <filename>SystemTap</filename>, see the
- <ulink url='https://sourceware.org/systemtap/documentation.html'>SystemTap Documentation</ulink>.
- </para></listitem>
- <listitem><para><emphasis><filename>yocto-bsp</filename>:</emphasis>
- The <filename>yocto-bsp</filename> tool lets you
- quickly set up a Board Support Package (BSP) layer.
- The tool requires a Metadata location, build location,
- BSP name, BSP output location, and a kernel
- architecture.
- For more information on the
- <filename>yocto-bsp</filename> tool outside of Eclipse,
- see the
- "<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a new BSP Layer Using the yocto-bsp Script</ulink>"
- section in the Yocto Project Board Support Package
- (BSP) Developer's Guide.
- </para></listitem>
- </itemizedlist>
- </para>
- </section>
</section>
-</section>
-
</chapter>
<!--
vim: expandtab tw=80 ts=4
diff --git a/import-layers/yocto-poky/documentation/sdk-manual/sdk-working-projects.xml b/import-layers/yocto-poky/documentation/sdk-manual/sdk-working-projects.xml
new file mode 100644
index 000000000..df24aef0f
--- /dev/null
+++ b/import-layers/yocto-poky/documentation/sdk-manual/sdk-working-projects.xml
@@ -0,0 +1,1460 @@
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
+
+<chapter id='sdk-working-projects'>
+
+ <title>Using the SDK Toolchain Directly</title>
+
+ <para>
+ You can use the SDK toolchain directly with Makefile,
+ Autotools, and <trademark class='trade'>Eclipse</trademark> based
+ projects.
+ This chapter covers information specific to each of these types of
+ projects.
+ </para>
+
+ <section id='autotools-based-projects'>
+ <title>Autotools-Based Projects</title>
+
+ <para>
+ Once you have a suitable cross-toolchain installed, it is very easy
+ to develop a project outside of the OpenEmbedded build system.
+ This section presents a simple "Helloworld" example that shows how
+ to set up, compile, and run the project.
+ </para>
+
+ <section id='creating-and-running-a-project-based-on-gnu-autotools'>
+ <title>Creating and Running a Project Based on GNU Autotools</title>
+
+ <para>
+ Follow these steps to create a simple Autotools-based project:
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Create your directory:</emphasis>
+ Create a clean directory for your project and then make
+ that directory your working location:
+ <literallayout class='monospaced'>
+ $ mkdir $HOME/helloworld
+ $ cd $HOME/helloworld
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Populate the directory:</emphasis>
+ Create <filename>hello.c</filename>,
+ <filename>Makefile.am</filename>,
+ and <filename>configure.ac</filename> files as follows:
+ <itemizedlist>
+ <listitem><para>
+ For <filename>hello.c</filename>, include
+ these lines:
+ <literallayout class='monospaced'>
+ #include &lt;stdio.h&gt;
+
+ main()
+ {
+ printf("Hello World!\n");
+ }
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ For <filename>Makefile.am</filename>,
+ include these lines:
+ <literallayout class='monospaced'>
+ bin_PROGRAMS = hello
+ hello_SOURCES = hello.c
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ For <filename>configure.in</filename>,
+ include these lines:
+ <literallayout class='monospaced'>
+ AC_INIT(hello,0.1)
+ AM_INIT_AUTOMAKE([foreign])
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_OUTPUT(Makefile)
+ </literallayout>
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Source the cross-toolchain
+ environment setup file:</emphasis>
+ As described earlier in the manual, installing the
+ cross-toolchain creates a cross-toolchain
+ environment setup script in the directory that the SDK
+ was installed.
+ Before you can use the tools to develop your project,
+ you must source this setup script.
+ The script begins with the string "environment-setup"
+ and contains the machine architecture, which is
+ followed by the string "poky-linux".
+ Here is an example that sources a script from the
+ default SDK installation directory that uses the
+ 32-bit Intel x86 Architecture and the
+ &DISTRO_NAME; Yocto Project release:
+ <literallayout class='monospaced'>
+ $ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Generate the local aclocal.m4
+ files and create the configure script:</emphasis>
+ The following GNU Autotools generate the local
+ <filename>aclocal.m4</filename> files and create the
+ configure script:
+ <literallayout class='monospaced'>
+ $ aclocal
+ $ autoconf
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Generate files needed by GNU coding
+ standards:</emphasis>
+ GNU coding standards require certain files in order
+ for the project to be compliant.
+ This command creates those files:
+ <literallayout class='monospaced'>
+ $ touch NEWS README AUTHORS ChangeLog
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Generate the configure file:</emphasis>
+ This command generates the
+ <filename>configure</filename>:
+ <literallayout class='monospaced'>
+ $ automake -a
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Cross-compile the project:</emphasis>
+ This command compiles the project using the
+ cross-compiler.
+ The
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CONFIGURE_FLAGS'><filename>CONFIGURE_FLAGS</filename></ulink>
+ environment variable provides the minimal arguments for
+ GNU configure:
+ <literallayout class='monospaced'>
+ $ ./configure ${CONFIGURE_FLAGS}
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Make and install the project:</emphasis>
+ These two commands generate and install the project
+ into the destination directory:
+ <literallayout class='monospaced'>
+ $ make
+ $ make install DESTDIR=./tmp
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Verify the installation:</emphasis>
+ This command is a simple way to verify the installation
+ of your project.
+ Running the command prints the architecture on which
+ the binary file can run.
+ This architecture should be the same architecture that
+ the installed cross-toolchain supports.
+ <literallayout class='monospaced'>
+ $ file ./tmp/usr/local/bin/hello
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Execute your project:</emphasis>
+ To execute the project in the shell, simply enter
+ the name.
+ You could also copy the binary to the actual target
+ hardware and run the project there as well:
+ <literallayout class='monospaced'>
+ $ ./hello
+ </literallayout>
+ As expected, the project displays the "Hello World!"
+ message.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='passing-host-options'>
+ <title>Passing Host Options</title>
+
+ <para>
+ For an Autotools-based project, you can use the cross-toolchain
+ by just passing the appropriate host option to
+ <filename>configure.sh</filename>.
+ The host option you use is derived from the name of the
+ environment setup script found in the directory in which you
+ installed the cross-toolchain.
+ For example, the host option for an ARM-based target that uses
+ the GNU EABI is <filename>armv5te-poky-linux-gnueabi</filename>.
+ You will notice that the name of the script is
+ <filename>environment-setup-armv5te-poky-linux-gnueabi</filename>.
+ Thus, the following command works to update your project and
+ rebuild it using the appropriate cross-toolchain tools:
+ <literallayout class='monospaced'>
+ $ ./configure --host=armv5te-poky-linux-gnueabi \
+ --with-libtool-sysroot=<replaceable>sysroot_dir</replaceable>
+ </literallayout>
+ <note>
+ If the <filename>configure</filename> script results in
+ problems recognizing the
+ <filename>--with-libtool-sysroot=</filename><replaceable>sysroot-dir</replaceable>
+ option, regenerate the script to enable the support by
+ doing the following and then run the script again:
+ <literallayout class='monospaced'>
+ $ libtoolize --automake
+ $ aclocal -I ${OECORE_TARGET_SYSROOT}/usr/share/aclocal [-I <replaceable>dir_containing_your_project-specific_m4_macros</replaceable>]
+ $ autoconf
+ $ autoheader
+ $ automake -a
+ </literallayout>
+ </note>
+ </para>
+ </section>
+ </section>
+
+ <section id='makefile-based-projects'>
+ <title>Makefile-Based Projects</title>
+
+ <para>
+ For Makefile-based projects, the cross-toolchain environment
+ variables established by running the cross-toolchain environment
+ setup script are subject to general <filename>make</filename>
+ rules.
+ </para>
+
+ <para>
+ To illustrate this, consider the following four cross-toolchain
+ environment variables:
+ <literallayout class='monospaced'>
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CC'>CC</ulink>=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-LD'>LD</ulink>=i586-poky-linux-ld --sysroot=/opt/poky/&DISTRO;/sysroots/i586-poky-linux
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CFLAGS'>CFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-CXXFLAGS'>CXXFLAGS</ulink>=-O2 -pipe -g -feliminate-unused-debug-types
+ </literallayout>
+ Now, consider the following three cases:
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>Case 1 - No Variables Set in the
+ <filename>Makefile</filename>:</emphasis>
+ Because these variables are not specifically set in the
+ <filename>Makefile</filename>, the variables retain their
+ values based on the environment.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Case 2 - Variables Set in the
+ <filename>Makefile</filename>:</emphasis>
+ Specifically setting variables in the
+ <filename>Makefile</filename> during the build results in
+ the environment settings of the variables being
+ overwritten.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Case 3 - Variables Set when the
+ <filename>Makefile</filename> is Executed from the
+ Command Line:</emphasis>
+ Executing the <filename>Makefile</filename> from the
+ command-line results in the variables being overwritten
+ with command-line content regardless of what is being set
+ in the <filename>Makefile</filename>.
+ In this case, environment variables are not considered
+ unless you use the "-e" flag during the build:
+ <literallayout class='monospaced'>
+ $ make -e <replaceable>file</replaceable>
+ </literallayout>
+ If you use this flag, then the environment values of the
+ variables override any variables specifically set in the
+ <filename>Makefile</filename>.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ For the list of variables set up by the cross-toolchain
+ environment setup script, see the
+ "<link linkend='sdk-running-the-sdk-environment-setup-script'>Running the SDK Environment Setup Script</link>"
+ section.
+ </note>
+ </para>
+ </section>
+
+ <section id='sdk-developing-applications-using-eclipse'>
+ <title>Developing Applications Using <trademark class='trade'>Eclipse</trademark></title>
+
+ <para>
+ If you are familiar with the popular Eclipse IDE, you can use an
+ Eclipse Yocto Plug-in to allow you to develop, deploy, and test your
+ application all from within Eclipse.
+ This section describes general workflow using the SDK and Eclipse
+ and how to configure and set up Eclipse.
+ </para>
+
+ <section id='workflow-using-eclipse'>
+ <title>Workflow Using <trademark class='trade'>Eclipse</trademark></title>
+
+ <para>
+ The following figure and supporting list summarize the
+ application development general workflow that employs both the
+ SDK Eclipse.
+ </para>
+
+ <para>
+ <imagedata fileref="figures/sdk-eclipse-dev-flow.png"
+ width="7in" depth="7in" align="center" scale="100" />
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Prepare the host system for the Yocto
+ Project</emphasis>:
+ See
+ "<ulink url='&YOCTO_DOCS_REF_URL;#detailed-supported-distros'>Supported Linux Distributions</ulink>"
+ and
+ "<ulink url='&YOCTO_DOCS_REF_URL;#required-packages-for-the-host-development-system'>Required Packages for the Host Development System</ulink>"
+ sections both in the Yocto Project Reference Manual for
+ requirements.
+ In particular, be sure your host system has the
+ <filename>xterm</filename> package installed.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Secure the Yocto Project kernel target
+ image</emphasis>:
+ You must have a target kernel image that has been built
+ using the OpenEmbedded build system.</para>
+ <para>Depending on whether the Yocto Project has a
+ pre-built image that matches your target architecture
+ and where you are going to run the image while you
+ develop your application (QEMU or real hardware), the
+ area from which you get the image differs.
+ <itemizedlist>
+ <listitem><para>
+ Download the image from
+ <ulink url='&YOCTO_MACHINES_DL_URL;'><filename>machines</filename></ulink>
+ if your target architecture is supported and
+ you are going to develop and test your
+ application on actual hardware.
+ </para></listitem>
+ <listitem><para>
+ Download the image from
+ <ulink url='&YOCTO_QEMU_DL_URL;'>
+ <filename>machines/qemu</filename></ulink> if
+ your target architecture is supported and you
+ are going to develop and test your application
+ using the QEMU emulator.
+ </para></listitem>
+ <listitem><para>
+ Build your image if you cannot find a pre-built
+ image that matches your target architecture.
+ If your target architecture is similar to a
+ supported architecture, you can modify the
+ kernel image before you build it.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#patching-the-kernel'>Patching the Kernel</ulink>"
+ section in the Yocto Project Development
+ manual for an example.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem>
+ <para><emphasis>Install the SDK</emphasis>:
+ The SDK provides a target-specific cross-development
+ toolchain, the root filesystem, the QEMU emulator, and
+ other tools that can help you develop your application.
+ For information on how to install the SDK, see the
+ "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
+ section.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Secure the target root filesystem
+ and the Cross-development toolchain</emphasis>:
+ You need to find and download the appropriate root
+ filesystem and the cross-development toolchain.</para>
+ <para>You can find the tarballs for the root filesystem
+ in the same area used for the kernel image.
+ Depending on the type of image you are running, the
+ root filesystem you need differs.
+ For example, if you are developing an application that
+ runs on an image that supports Sato, you need to get a
+ root filesystem that supports Sato.</para>
+ <para>You can find the cross-development toolchains at
+ <ulink url='&YOCTO_TOOLCHAIN_DL_URL;'><filename>toolchains</filename></ulink>.
+ Be sure to get the correct toolchain for your
+ development host and your target architecture.
+ See the "<link linkend='sdk-locating-pre-built-sdk-installers'>Locating Pre-Built SDK Installers</link>"
+ section for information and the
+ "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
+ section for installation information.
+ <note>
+ As an alternative to downloading an SDK, you can
+ build the SDK installer.
+ For information on building the installer, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ Another helpful resource for building an installer
+ is the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Create and build your application</emphasis>:
+ At this point, you need to have source files for your
+ application.
+ Once you have the files, you can use the Eclipse IDE
+ to import them and build the project.
+ If you are not using Eclipse, you need to use the
+ cross-development tools you have installed to create
+ the image.</para></listitem>
+ <listitem><para>
+ <emphasis>Deploy the image with the
+ application</emphasis>:
+ Using the Eclipse IDE, you can deploy your image to the
+ hardware or to QEMU through the project's preferences.
+ You can also use Eclipse to load and test your image
+ under QEMU.
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
+ chapter in the Yocto Project Development Manual
+ for information on using QEMU.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Test and debug the application</emphasis>:
+ Once your application is deployed, you need to test it.
+ Within the Eclipse IDE, you can use the debugging
+ environment along with supported performance enhancing
+ <ulink url='http://www.eclipse.org/linuxtools/'>Linux Tools</ulink>.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='adt-eclipse'>
+ <title>Working Within Eclipse</title>
+
+ <para>
+ The Eclipse IDE is a popular development environment and it
+ fully supports development using the Yocto Project.
+ </para>
+
+ <para>
+ When you install and configure the Eclipse Yocto Project
+ Plug-in into the Eclipse IDE, you maximize your Yocto
+ Project experience.
+ Installing and configuring the Plug-in results in an
+ environment that has extensions specifically designed to let
+ you more easily develop software.
+ These extensions allow for cross-compilation, deployment, and
+ execution of your output into a QEMU emulation session as well
+ as actual target hardware.
+ You can also perform cross-debugging and profiling.
+ The environment also supports performance enhancing
+ <ulink url='http://www.eclipse.org/linuxtools/'>tools</ulink>
+ that allow you to perform remote profiling, tracing,
+ collection of power data, collection of latency data, and
+ collection of performance data.
+ <note>
+ This release of the Yocto Project supports both the Neon
+ and Mars versions of the Eclipse IDE.
+ This section provides information on how to use the Neon
+ release with the Yocto Project.
+ For information on how to use the Mars version of Eclipse
+ with the Yocto Project, see
+ "<link linkend='sdk-appendix-mars'>Appendix C</link>.
+ </note>
+ </para>
+
+ <section id='neon-setting-up-the-eclipse-ide'>
+ <title>Setting Up the Neon Version of the Eclipse IDE</title>
+
+ <para>
+ To develop within the Eclipse IDE, you need to do the
+ following:
+ <orderedlist>
+ <listitem><para>
+ Install the Neon version of the Eclipse IDE.
+ </para></listitem>
+ <listitem><para>
+ Configure the Eclipse IDE.
+ </para></listitem>
+ <listitem><para>
+ Install the Eclipse Yocto Plug-in.
+ </para></listitem>
+ <listitem><para>
+ Configure the Eclipse Yocto Plug-in.
+ </para></listitem>
+ </orderedlist>
+ <note>
+ Do not install Eclipse from your distribution's package
+ repository.
+ Be sure to install Eclipse from the official Eclipse
+ download site as directed in the next section.
+ </note>
+ </para>
+
+ <section id='neon-installing-eclipse-ide'>
+ <title>Installing the Neon Eclipse IDE</title>
+
+ <para>
+ Follow these steps to locate, install, and configure
+ Neon Eclipse:
+ <orderedlist>
+ <listitem><para>
+ <emphasis>Locate the Neon Download:</emphasis>
+ Open a browser and go to
+ <ulink url='http://www.eclipse.org/mars/'>http://www.eclipse.org/neon/</ulink>.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Download the Tarball:</emphasis>
+ Click through the "Download" buttons to
+ download the file.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Unpack the Tarball:</emphasis>
+ Move to a clean directory and unpack the
+ tarball.
+ Here is an example:
+ <literallayout class='monospaced'>
+ $ cd ~
+ $ tar -xzvf ~/Downloads/eclipse-inst-linux64.tar.gz
+ </literallayout>
+ Everything unpacks into a folder named
+ "eclipse-installer".
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Launch the Installer:</emphasis>
+ Use the following commands to launch the
+ installer:
+ <literallayout class='monospaced'>
+ $ cd ~/eclipse-installer
+ $ ./eclipse-inst
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Select Your IDE:</emphasis>
+ From the list, select the "Eclipse IDE for
+ C/C++ Developers".
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Install the Software:</emphasis>
+ Accept the default "cpp-neon" directory and
+ click "Install".
+ Accept any license agreements and approve any
+ certificates.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Launch Neon:</emphasis>
+ Click the "Launch" button and accept the
+ default "workspace".
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-configuring-the-mars-eclipse-ide'>
+ <title>Configuring the Neon Eclipse IDE</title>
+
+ <para>
+ Follow these steps to configure the Neon Eclipse IDE.
+ <note>
+ Depending on how you installed Eclipse and what
+ you have already done, some of the options will
+ not appear.
+ If you cannot find an option as directed by the
+ manual, it has already been installed.
+ </note>
+ <orderedlist>
+ <listitem><para>
+ Be sure Eclipse is running and you are in your
+ workbench.
+ </para></listitem>
+ <listitem><para>
+ Select "Install New Software" from the "Help"
+ pull-down menu.
+ </para></listitem>
+ <listitem><para>
+ Select
+ "Neon - http://download.eclipse.org/releases/neon"
+ from the "Work with:" pull-down menu.
+ </para></listitem>
+ <listitem><para>
+ Expand the box next to "Linux Tools" and select
+ the following:
+ <literallayout class='monospaced'>
+ C/C++ Remote (Over TCF/TE) Run/Debug Launcher
+ TM Terminal
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Expand the box next to "Mobile and Device
+ Development" and select the following
+ boxes:
+ <literallayout class='monospaced'>
+ C/C++ Remote (Over TCF/TE) Run/Debug Launcher
+ Remote System Explorer User Actions
+ TM Terminal
+ TCF Remote System Explorer add-in
+ TCF Target Explorer
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Expand the box next to "Programming Languages"
+ and select the following box:
+ <literallayout class='monospaced'>
+ C/C++ Development Tools SDK
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Complete the installation by clicking through
+ appropriate "Next" and "Finish" buttons.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-installing-the-eclipse-yocto-plug-in'>
+ <title>Installing or Accessing the Neon Eclipse Yocto Plug-in</title>
+
+ <para>
+ You can install the Eclipse Yocto Plug-in into the
+ Eclipse IDE one of two ways: use the Yocto Project's
+ Eclipse Update site to install the pre-built plug-in
+ or build and install the plug-in from the latest
+ source code.
+ </para>
+
+ <section id='neon-new-software'>
+ <title>Installing the Pre-built Plug-in from the Yocto Project Eclipse Update Site</title>
+
+ <para>
+ To install the Neon Eclipse Yocto Plug-in from the
+ update site, follow these steps:
+ <orderedlist>
+ <listitem><para>
+ Start up the Eclipse IDE.
+ </para></listitem>
+ <listitem><para>
+ In Eclipse, select "Install New
+ Software" from the "Help" menu.
+ </para></listitem>
+ <listitem><para>
+ Click "Add..." in the "Work with:" area.
+ </para></listitem>
+ <listitem><para>
+ Enter
+ <filename>&ECLIPSE_DL_PLUGIN_URL;/neon</filename>
+ in the URL field and provide a meaningful
+ name in the "Name" field.
+ </para></listitem>
+ <listitem><para>
+ Click "OK" to have the entry added
+ to the "Work with:" drop-down list.
+ </para></listitem>
+ <listitem><para>
+ Select the entry for the plug-in
+ from the "Work with:" drop-down list.
+ </para></listitem>
+ <listitem><para>
+ Check the boxes next to the following:
+ <literallayout class='monospaced'>
+ Yocto Project SDK Plug-in
+ Yocto Project Documentation plug-in
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Complete the remaining software
+ installation steps and then restart the
+ Eclipse IDE to finish the installation of
+ the plug-in.
+ <note>
+ You can click "OK" when prompted about
+ installing software that contains
+ unsigned content.
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-zip-file-method'>
+ <title>Installing the Plug-in Using the Latest Source Code</title>
+
+ <para>
+ To install the Neon Eclipse Yocto Plug-in from the
+ latest source code, follow these steps:
+ <orderedlist>
+ <listitem><para>
+ Be sure your development system
+ has JDK 1.8+
+ </para></listitem>
+ <listitem><para>
+ Install X11-related packages:
+ <literallayout class='monospaced'>
+ $ sudo apt-get install xauth
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ In a new terminal shell, create a
+ Git repository with:
+ <literallayout class='monospaced'>
+ $ cd ~
+ $ git clone git://git.yoctoproject.org/eclipse-poky
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Use Git to create the correct tag:
+ <literallayout class='monospaced'>
+ $ cd ~/eclipse-poky
+ $ git checkout neon/yocto-&DISTRO;
+ </literallayout>
+ This creates a local tag named
+ <filename>neon/yocto-&DISTRO;</filename>
+ based on the branch
+ <filename>origin/neon-master</filename>.
+ You are put into a detached HEAD state,
+ which is fine since you are only going to
+ be building and not developing.
+ </para></listitem>
+ <listitem><para>
+ Change to the <filename>scripts</filename>
+ directory within the Git repository:
+ <literallayout class='monospaced'>
+ $ cd scripts
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Set up the local build environment
+ by running the setup script:
+ <literallayout class='monospaced'>
+ $ ./setup.sh
+ </literallayout>
+ When the script finishes execution,
+ it prompts you with instructions on how to
+ run the <filename>build.sh</filename>
+ script, which is also in the
+ <filename>scripts</filename> directory of
+ the Git repository created earlier.
+ </para></listitem>
+ <listitem><para>
+ Run the <filename>build.sh</filename>
+ script as directed.
+ Be sure to provide the tag name,
+ documentation branch, and a release name.
+ </para>
+ <para>
+ Following is an example:
+ <literallayout class='monospaced'>
+ $ ECLIPSE_HOME=/home/scottrif/eclipse-poky/scripts/eclipse ./build.sh -l neon/yocto-&DISTRO; master yocto-&DISTRO; 2>&amp;1 | tee build.log
+ </literallayout>
+ The previous example command adds the tag
+ you need for
+ <filename>mars/yocto-&DISTRO;</filename>
+ to <filename>HEAD</filename>, then tells
+ the build script to use the local (-l) Git
+ checkout for the build.
+ After running the script, the file
+ <filename>org.yocto.sdk-</filename><replaceable>release</replaceable><filename>-</filename><replaceable>date</replaceable><filename>-archive.zip</filename>
+ is in the current directory.
+ </para></listitem>
+ <listitem><para>
+ If necessary, start the Eclipse IDE
+ and be sure you are in the Workbench.
+ </para></listitem>
+ <listitem><para>
+ Select "Install New Software" from
+ the "Help" pull-down menu.
+ </para></listitem>
+ <listitem><para>
+ Click "Add".
+ </para></listitem>
+ <listitem><para>
+ Provide anything you want in the
+ "Name" field.
+ </para></listitem>
+ <listitem><para>
+ Click "Archive" and browse to the
+ ZIP file you built earlier.
+ This ZIP file should not be "unzipped", and
+ must be the
+ <filename>*archive.zip</filename> file
+ created by running the
+ <filename>build.sh</filename> script.
+ </para></listitem>
+ <listitem><para>
+ Click the "OK" button.
+ </para></listitem>
+ <listitem><para>
+ Check the boxes that appear in
+ the installation window to install the
+ following:
+ <literallayout class='monospaced'>
+ Yocto Project SDK Plug-in
+ Yocto Project Documentation plug-in
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Finish the installation by clicking
+ through the appropriate buttons.
+ You can click "OK" when prompted about
+ installing software that contains unsigned
+ content.
+ </para></listitem>
+ <listitem><para>
+ Restart the Eclipse IDE if necessary.
+ </para></listitem>
+ </orderedlist>
+ </para>
+
+ <para>
+ At this point you should be able to configure the
+ Eclipse Yocto Plug-in as described in the
+ "<link linkend='mars-configuring-the-eclipse-yocto-plug-in'>Configuring the Neon Eclipse Yocto Plug-in</link>"
+ section.
+ </para>
+ </section>
+ </section>
+
+ <section id='neon-configuring-the-eclipse-yocto-plug-in'>
+ <title>Configuring the Neon Eclipse Yocto Plug-in</title>
+
+ <para>
+ Configuring the Neon Eclipse Yocto Plug-in involves
+ setting the Cross Compiler options and the Target
+ options.
+ The configurations you choose become the default
+ settings for all projects.
+ You do have opportunities to change them later when
+ you configure the project (see the following section).
+ </para>
+
+ <para>
+ To start, you need to do the following from within the
+ Eclipse IDE:
+ <itemizedlist>
+ <listitem><para>
+ Choose "Preferences" from the "Window" menu to
+ display the Preferences Dialog.
+ </para></listitem>
+ <listitem><para>
+ Click "Yocto Project SDK" to display
+ the configuration screen.
+ </para></listitem>
+ </itemizedlist>
+ The following sub-sections describe how to configure
+ the plug-in.
+ <note>
+ Throughout the descriptions, a start-to-finish
+ example for preparing a QEMU image for use with
+ Eclipse is referenced as the "wiki" and is linked
+ to the example on the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'> Cookbook guide to Making an Eclipse Debug Capable Image</ulink>
+ wiki page.
+ </note>
+ </para>
+
+ <section id='neon-configuring-the-cross-compiler-options'>
+ <title>Configuring the Cross-Compiler Options</title>
+
+ <para>
+ Cross Compiler options enable Eclipse to use your
+ specific cross compiler toolchain.
+ To configure these options, you must select
+ the type of toolchain, point to the toolchain,
+ specify the sysroot location, and select the target
+ architecture.
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>Selecting the Toolchain
+ Type:</emphasis>
+ Choose between
+ <filename>Standalone pre-built toolchain</filename>
+ and
+ <filename>Build system derived toolchain</filename>
+ for Cross Compiler Options.
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>
+ <filename>Standalone Pre-built Toolchain:</filename>
+ </emphasis>
+ Select this type when you are using
+ a stand-alone cross-toolchain.
+ For example, suppose you are an
+ application developer and do not
+ need to build a target image.
+ Instead, you just want to use an
+ architecture-specific toolchain on
+ an existing kernel and target root
+ filesystem.
+ In other words, you have downloaded
+ and installed a pre-built toolchain
+ for an existing image.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>
+ <filename>Build System Derived Toolchain:</filename>
+ </emphasis>
+ Select this type if you built the
+ toolchain as part of the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
+ When you select
+ <filename>Build system derived toolchain</filename>,
+ you are using the toolchain built
+ and bundled inside the Build
+ Directory.
+ For example, suppose you created a
+ suitable image using the steps in the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ In this situation, you would select
+ the
+ <filename>Build system derived toolchain</filename>.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Specify the Toolchain Root
+ Location:</emphasis>
+ If you are using a stand-alone pre-built
+ toolchain, you should be pointing to where
+ it is installed (e.g.
+ <filename>/opt/poky/&DISTRO;</filename>).
+ See the
+ "<link linkend='sdk-installing-the-sdk'>Installing the SDK</link>"
+ section for information about how the SDK is
+ installed.</para>
+ <para>If you are using a build system
+ derived toolchain, the path you provide for
+ the
+ <filename>Toolchain Root Location</filename>
+ field is the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ from which you run the
+ <filename>bitbake</filename> command (e.g
+ <filename>/home/scottrif/poky/build</filename>).
+ </para>
+ <para>For more information, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Specify Sysroot Location:
+ </emphasis>
+ This location is where the root filesystem
+ for the target hardware resides.
+ </para>
+ <para>This location depends on where you
+ separately extracted and installed the
+ target filesystem.
+ As an example, suppose you prepared an
+ image using the steps in the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ If so, the
+ <filename>MY_QEMU_ROOTFS</filename>
+ directory is found in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ and you would browse to and select that
+ directory (e.g.
+ <filename>/home/scottrif/poky/build/MY_QEMU_ROOTFS</filename>).
+ </para>
+ <para>For more information on how to
+ install the toolchain and on how to extract
+ and install the sysroot filesystem, see the
+ "<link linkend='sdk-building-an-sdk-installer'>Building an SDK Installer</link>"
+ section.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>Select the Target Architecture:
+ </emphasis>
+ The target architecture is the type of
+ hardware you are going to use or emulate.
+ Use the pull-down
+ <filename>Target Architecture</filename>
+ menu to make your selection.
+ The pull-down menu should have the
+ supported architectures.
+ If the architecture you need is not listed
+ in the menu, you will need to build the
+ image.
+ See the
+ "<ulink url='&YOCTO_DOCS_QS_URL;#qs-building-images'>Building Images</ulink>"
+ section of the Yocto Project Quick Start
+ for more information.
+ You can also see the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section id='neon-configuring-the-target-options'>
+ <title>Configuring the Target Options</title>
+
+ <para>
+ You can choose to emulate hardware using the QEMU
+ emulator, or you can choose to run your image on
+ actual hardware.
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>QEMU:</emphasis>
+ Select this option if you will be using the
+ QEMU emulator.
+ If you are using the emulator, you also
+ need to locate the kernel and specify any
+ custom options.</para>
+ <para>If you selected the
+ <filename>Build system derived toolchain</filename>,
+ the target kernel you built will be located
+ in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
+ in
+ <filename>tmp/deploy/images/<replaceable>machine</replaceable></filename>
+ directory.
+ As an example, suppose you performed the
+ steps in the
+ <ulink url='https://wiki.yoctoproject.org/wiki/TipsAndTricks/RunningEclipseAgainstBuiltImage'>wiki</ulink>.
+ In this case, you specify your Build
+ Directory path followed by the image (e.g.
+ <filename>/home/scottrif/poky/build/tmp/deploy/images/qemux86/bzImage-qemux86.bin</filename>).
+ </para>
+ <para>If you selected the standalone
+ pre-built toolchain, the pre-built image
+ you downloaded is located in the directory
+ you specified when you downloaded the
+ image.</para>
+ <para>Most custom options are for advanced
+ QEMU users to further customize their QEMU
+ instance.
+ These options are specified between paired
+ angled brackets.
+ Some options must be specified outside the
+ brackets.
+ In particular, the options
+ <filename>serial</filename>,
+ <filename>nographic</filename>, and
+ <filename>kvm</filename> must all be
+ outside the brackets.
+ Use the <filename>man qemu</filename>
+ command to get help on all the options and
+ their use.
+ The following is an example:
+ <literallayout class='monospaced'>
+ serial â€&lt;-m 256 -full-screen&gt;’
+ </literallayout></para>
+ <para>
+ Regardless of the mode, Sysroot is already
+ defined as part of the Cross-Compiler
+ Options configuration in the
+ <filename>Sysroot Location:</filename>
+ field.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>External HW:</emphasis>
+ Select this option if you will be using
+ actual hardware.</para></listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Click the "Apply" and "OK" to save your plug-in
+ configurations.
+ </para>
+ </section>
+ </section>
+ </section>
+
+ <section id='neon-creating-the-project'>
+ <title>Creating the Project</title>
+
+ <para>
+ You can create two types of projects: Autotools-based, or
+ Makefile-based.
+ This section describes how to create Autotools-based
+ projects from within the Eclipse IDE.
+ For information on creating Makefile-based projects in a
+ terminal window, see the
+ "<link linkend='makefile-based-projects'>Makefile-Based Projects</link>"
+ section.
+ <note>
+ Do not use special characters in project names
+ (e.g. spaces, underscores, etc.). Doing so can
+ cause configuration to fail.
+ </note>
+ </para>
+
+ <para>
+ To create a project based on a Yocto template and then
+ display the source code, follow these steps:
+ <orderedlist>
+ <listitem><para>
+ Select "C Project" from the "File -> New" menu.
+ </para></listitem>
+ <listitem><para>
+ Expand
+ <filename>Yocto Project SDK Autotools Project</filename>.
+ </para></listitem>
+ <listitem><para>
+ Select <filename>Hello World ANSI C Autotools Projects</filename>.
+ This is an Autotools-based project based on a Yocto
+ template.
+ </para></listitem>
+ <listitem><para>
+ Put a name in the
+ <filename>Project name:</filename> field.
+ Do not use hyphens as part of the name
+ (e.g. <filename>hello</filename>).
+ </para></listitem>
+ <listitem><para>
+ Click "Next".
+ </para></listitem>
+ <listitem><para>
+ Add appropriate information in the various fields.
+ </para></listitem>
+ <listitem><para>
+ Click "Finish".
+ </para></listitem>
+ <listitem><para>
+ If the "open perspective" prompt appears,
+ click "Yes" so that you in the C/C++ perspective.
+ </para></listitem>
+ <listitem><para>The left-hand navigation pane shows
+ your project.
+ You can display your source by double clicking the
+ project's source file.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-configuring-the-cross-toolchains'>
+ <title>Configuring the Cross-Toolchains</title>
+
+ <para>
+ The earlier section,
+ "<link linkend='neon-configuring-the-eclipse-yocto-plug-in'>Configuring the Neon Eclipse Yocto Plug-in</link>",
+ sets up the default project configurations.
+ You can override these settings for a given project by
+ following these steps:
+ <orderedlist>
+ <listitem><para>
+ Select "Yocto Project Settings" from
+ the "Project -> Properties" menu.
+ This selection brings up the Yocto Project Settings
+ Dialog and allows you to make changes specific to
+ an individual project.</para>
+ <para>By default, the Cross Compiler Options and
+ Target Options for a project are inherited from
+ settings you provided using the Preferences Dialog
+ as described earlier in the
+ "<link linkend='neon-configuring-the-eclipse-yocto-plug-in'>Configuring the Neon Eclipse Yocto Plug-in</link>"
+ section.
+ The Yocto Project Settings Dialog allows you to
+ override those default settings for a given
+ project.
+ </para></listitem>
+ <listitem><para>
+ Make or verify your configurations for the
+ project and click "OK".
+ </para></listitem>
+ <listitem><para>
+ Right-click in the navigation pane and
+ select "Reconfigure Project" from the pop-up menu.
+ This selection reconfigures the project by running
+ <filename>autogen.sh</filename> in the workspace
+ for your project.
+ The script also runs
+ <filename>libtoolize</filename>,
+ <filename>aclocal</filename>,
+ <filename>autoconf</filename>,
+ <filename>autoheader</filename>,
+ <filename>automake --a</filename>, and
+ <filename>./configure</filename>.
+ Click on the "Console" tab beneath your source code
+ to see the results of reconfiguring your project.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-building-the-project'>
+ <title>Building the Project</title>
+
+ <para>
+ To build the project select "Build All" from the
+ "Project" menu.
+ The console should update and you can note the
+ cross-compiler you are using.
+ <note>
+ When building "Yocto Project SDK Autotools" projects,
+ the Eclipse IDE might display error messages for
+ Functions/Symbols/Types that cannot be "resolved",
+ even when the related include file is listed at the
+ project navigator and when the project is able to
+ build.
+ For these cases only, it is recommended to add a new
+ linked folder to the appropriate sysroot.
+ Use these steps to add the linked folder:
+ <orderedlist>
+ <listitem><para>
+ Select the project.
+ </para></listitem>
+ <listitem><para>
+ Select "Folder" from the
+ <filename>File > New</filename> menu.
+ </para></listitem>
+ <listitem><para>
+ In the "New Folder" Dialog, select "Link to
+ alternate location (linked folder)".
+ </para></listitem>
+ <listitem><para>
+ Click "Browse" to navigate to the include
+ folder inside the same sysroot location
+ selected in the Yocto Project
+ configuration preferences.
+ </para></listitem>
+ <listitem><para>
+ Click "OK".
+ </para></listitem>
+ <listitem><para>
+ Click "Finish" to save the linked folder.
+ </para></listitem>
+ </orderedlist>
+ </note>
+ </para>
+ </section>
+
+ <section id='neon-starting-qemu-in-user-space-nfs-mode'>
+ <title>Starting QEMU in User-Space NFS Mode</title>
+
+ <para>
+ To start the QEMU emulator from within Eclipse, follow
+ these steps:
+ <note>
+ See the
+ "<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-qemu'>Using the Quick EMUlator (QEMU)</ulink>"
+ chapter in the Yocto Project Development Manual
+ for more information on using QEMU.
+ </note>
+ <orderedlist>
+ <listitem><para>Expose and select "External Tools
+ Configurations ..." from the "Run -> External
+ Tools" menu.
+ </para></listitem>
+ <listitem><para>
+ Locate and select your image in the navigation
+ panel to the left
+ (e.g. <filename>qemu_i586-poky-linux</filename>).
+ </para></listitem>
+ <listitem><para>
+ Click "Run" to launch QEMU.
+ <note>
+ The host on which you are running QEMU must
+ have the <filename>rpcbind</filename> utility
+ running to be able to make RPC calls on a
+ server on that machine.
+ If QEMU does not invoke and you receive error
+ messages involving
+ <filename>rpcbind</filename>, follow the
+ suggestions to get the service running.
+ As an example, on a new Ubuntu 16.04 LTS
+ installation, you must do the following in
+ order to get QEMU to launch:
+ <literallayout class='monospaced'>
+ $ sudo apt-get install rpcbind
+ </literallayout>
+ After installing <filename>rpcbind</filename>,
+ you need to edit the
+ <filename>/etc/init.d/rpcbind</filename> file
+ to include the following line:
+ <literallayout class='monospaced'>
+ OPTIONS="-i -w"
+ </literallayout>
+ After modifying the file, you need to start the
+ service:
+ <literallayout class='monospaced'>
+ $ sudo service portmap restart
+ </literallayout>
+ </note>
+ </para></listitem>
+ <listitem><para>
+ If needed, enter your host root password in
+ the shell window at the prompt.
+ This sets up a <filename>Tap 0</filename>
+ connection needed for running in user-space NFS
+ mode.
+ </para></listitem>
+ <listitem><para>
+ Wait for QEMU to launch.
+ </para></listitem>
+ <listitem><para>
+ Once QEMU launches, you can begin operating
+ within that environment.
+ One useful task at this point would be to determine
+ the IP Address for the user-space NFS by using the
+ <filename>ifconfig</filename> command.
+ The IP address of the QEMU machine appears in the
+ xterm window.
+ You can use this address to help you see which
+ particular
+ IP address the instance of QEMU is using.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-deploying-and-debugging-the-application'>
+ <title>Deploying and Debugging the Application</title>
+
+ <para>
+ Once the QEMU emulator is running the image, you can deploy
+ your application using the Eclipse IDE and then use
+ the emulator to perform debugging.
+ Follow these steps to deploy the application.
+ <note>
+ Currently, Eclipse does not support SSH port
+ forwarding.
+ Consequently, if you need to run or debug a remote
+ application using the host display, you must create a
+ tunneling connection from outside Eclipse and keep
+ that connection alive during your work.
+ For example, in a new terminal, run the following:
+ <literallayout class='monospaced'>
+ $ ssh -XY <replaceable>user_name</replaceable>@<replaceable>remote_host_ip</replaceable>
+ </literallayout>
+ Using the above form, here is an example:
+ <literallayout class='monospaced'>
+ $ ssh -XY root@192.168.7.2
+ </literallayout>
+ After running the command, add the command to be
+ executed in Eclipse's run configuration before the
+ application as follows:
+ <literallayout class='monospaced'>
+ export DISPLAY=:10.0
+ </literallayout>
+ Be sure to not destroy the connection during your QEMU
+ session (i.e. do not
+ exit out of or close that shell).
+ </note>
+ <orderedlist>
+ <listitem><para>
+ Select "Debug Configurations..." from the
+ "Run" menu.
+ </para></listitem>
+ <listitem><para>
+ In the left area, expand
+ <filename>C/C++Remote Application</filename>.
+ </para></listitem>
+ <listitem><para>
+ Locate your project and select it to bring
+ up a new tabbed view in the Debug Configurations
+ Dialog.
+ </para></listitem>
+ <listitem><para>
+ Click on the "Debugger" tab to see the
+ cross-tool debugger you are using.
+ Be sure to change to the debugger perspective in
+ Eclipse.
+ </para></listitem>
+ <listitem><para>
+ Click on the "Main" tab.
+ </para></listitem>
+ <listitem><para>
+ Create a new connection to the QEMU instance
+ by clicking on "new".</para></listitem>
+ <listitem><para>Select <filename>SSH</filename>, which
+ means Secure Socket Shell and then click "OK".
+ Optionally, you can select an TCF connection
+ instead.
+ </para></listitem>
+ <listitem><para>
+ Clear out the "Connection name" field and
+ enter any name you want for the connection.
+ </para></listitem>
+ <listitem><para>
+ Put the IP address for the connection in
+ the "Host" field.
+ For QEMU, the default is
+ <filename>192.168.7.2</filename>.
+ However, if a previous QEMU session did not exit
+ cleanly, the IP address increments (e.g.
+ <filename>192.168.7.3</filename>).
+ <note>
+ You can find the IP address for the current
+ QEMU session by looking in the xterm that
+ opens when you launch QEMU.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ Enter <filename>root</filename>, which
+ is the default for QEMU, for the "User" field.
+ Be sure to leave the password field empty.
+ </para></listitem>
+ <listitem><para>
+ Click "Finish" to close the New Connections Dialog.
+ </para></listitem>
+ <listitem><para>
+ If necessary, use the drop-down menu now in the
+ "Connection" field and pick the IP Address you
+ entered.
+ </para></listitem>
+ <listitem><para>
+ Assuming you are connecting as the root
+ user, which is the default for QEMU x86-64 SDK
+ images provided by the Yocto Project, in the
+ "Remote Absolute File Path for C/C++ Application"
+ field, browse to
+ <filename>/home/root/</filename><replaceable>ProjectName</replaceable>
+ (e.g. <filename>/home/root/hello</filename>).
+ You could also browse to any other path you have
+ write access to on the target such as
+ <filename>/usr/bin</filename>.
+ This location is where your application will be
+ located on the QEMU system.
+ If you fail to browse to and specify an appropriate
+ location, QEMU will not understand what to remotely
+ launch.
+ Eclipse is helpful in that it auto fills your
+ application name for you assuming you browsed to a
+ directory.
+ <note>
+ If you are prompted to provide a username and
+ to optionally set a password, be sure you
+ provide "root" as the username and you leave
+ the password field blank.
+ </note>
+ </para></listitem>
+ <listitem><para>
+ Be sure you change to the "Debug" perspective in
+ Eclipse.
+ </para></listitem>
+ <listitem><para>
+ Click "Debug"
+ </para></listitem>
+ <listitem><para>
+ Accept the debug perspective.
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section id='neon-using-Linuxtools'>
+ <title>Using Linuxtools</title>
+
+ <para>
+ As mentioned earlier in the manual, performance tools exist
+ (Linuxtools) that enhance your development experience.
+ These tools are aids in developing and debugging
+ applications and images.
+ You can run these tools from within the Eclipse IDE through
+ the "Linuxtools" menu.
+ </para>
+
+ <para>
+ For information on how to configure and use these tools,
+ see
+ <ulink url='http://www.eclipse.org/linuxtools/'>http://www.eclipse.org/linuxtools/</ulink>.
+ </para>
+ </section>
+ </section>
+ </section>
+</chapter>
+<!--
+vim: expandtab tw=80 ts=4
+-->
diff --git a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-intro.xml b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-intro.xml
index ee1dcbaba..a408024d8 100644
--- a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-intro.xml
+++ b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-intro.xml
@@ -111,6 +111,13 @@
</para></listitem>
</itemizedlist>
</para>
+
+ <para>
+ For an overview of Toaster shipped with the Yocto Project &DISTRO;
+ Release, see the
+ "<ulink url='https://youtu.be/BlXdOYLgPxA'>Toaster - Yocto Project 2.2</ulink>"
+ video.
+ </para>
</section>
<section id='toaster-installation-options'>
diff --git a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml
index 963b21122..966c35d4d 100644
--- a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml
+++ b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-setup-and-use.xml
@@ -31,7 +31,7 @@
<filename>poky/build</filename>), start Toaster using this
command:
<literallayout class='monospaced'>
- $ source ../bitbake/bin/toaster
+ $ source toaster start
</literallayout>
You can now run your builds from the command line, or with
Toaster as explained in section
@@ -56,7 +56,23 @@
set a different port.
For example, the following command sets the port to "8400":
<literallayout class='monospaced'>
- $ source ../bitbake/bin/toaster webport=8400
+ $ source toaster start webport=8400
+ </literallayout>
+ </para>
+ </section>
+
+ <section id='setting-a-different-address'>
+ <title>Setting a Different Address</title>
+
+ <para>
+ By default, Toaster binds to the loop back address
+ (i.e. localhost).
+ You can use the <filename>WEBPORT</filename> parameter to
+ set a different host.
+ For example, the following command sets the host and port
+ to "0.0.0.0:8400":
+ <literallayout class='monospaced'>
+ $ source toaster start webport=0.0.0.0:8400
</literallayout>
</para>
</section>
@@ -116,12 +132,14 @@
create a superuser by following these steps:
<orderedlist>
<listitem><para>
- If you used <filename>virtualenv</filename>, which is
+ If you used <filename>pip3</filename>, which is
recommended, to set up the Toaster system dependencies,
- you need be sure the virtual environment is activated.
- To activate this environment, use the following command:
+ you need be sure the local user path is in your
+ <filename>PATH</filename> list.
+ To append the pip3 local user path, use the following
+ command:
<literallayout class='monospaced'>
- $ source venv/bin/activate
+ $ export PATH=$PATH:$HOME/.local/bin
</literallayout>
</para></listitem>
<listitem><para>
@@ -211,16 +229,23 @@
Use the Mysql database server.
</para></listitem>
<listitem><para>
- If you are using Ubuntu 14.04.3, run the following:
+ If you are using Ubuntu 16.04, run the following:
<literallayout class='monospaced'>
- $ sudo apt-get install apache2 libapache2-mod-wsgi mysql-server virtualenv libmysqlclient-dev
+ $ sudo apt-get install apache2 libapache2-mod-wsgi-py3 mysql-server python3-pip libmysqlclient-dev
</literallayout>
</para></listitem>
<listitem><para>
- If you are using Fedora 22 or a RedHat distribution, run
+ If you are using Fedora 24 or a RedHat distribution, run
the following:
<literallayout class='monospaced'>
- $ sudo dnf install httpd mod_wsgi python-virtualenv gcc mysql-devel
+ $ sudo dnf install httpd python3-mod_wsgi python3-pip mariadb-server mariadb-devel python3-devel
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ If you are using openSUSE Leap 42.1, run
+ the following:
+ <literallayout class='monospaced'>
+ $ sudo zypper install apache2 apache2-mod_wsgi-python3 python3-pip mariadb mariadb-client python3-devel
</literallayout>
</para></listitem>
</itemizedlist>
@@ -234,28 +259,31 @@
Perform the following steps to install Toaster:
<orderedlist>
<listitem><para>
+ Create toaster user and set its home directory to
+ <filename>/var/www/toaster</filename>:
+ <literallayout class='monospaced'>
+ $ sudo /usr/sbin/useradd toaster -md /var/www/toaster -s /bin/false
+ $ sudo su - toaster -s /bin/bash
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
Checkout a copy of <filename>poky</filename>
into the web server directory.
You will be using <filename>/var/www/toaster</filename>:
<literallayout class='monospaced'>
- $ mkdir -p /var/www/toaster
- $ cd /var/www/toaster/
$ git clone git://git.yoctoproject.org/poky
$ git checkout &DISTRO_NAME_NO_CAP;
</literallayout>
</para></listitem>
<listitem><para>
- Initialize a virtual environment and install Toaster
- dependencies.
- Using a virtual environment keeps the Python packages
+ Install Toaster
+ dependencies using the --user flag which
+ keeps the Python packages
isolated from your system-provided packages:
<literallayout class='monospaced'>
$ cd /var/www/toaster/
- $ virtualenv venv
- $ source ./venv/bin/activate
- $ pip install -r ./poky/bitbake/toaster-requirements.txt
- $ pip install mysql
- $ pip install MySQL-python
+ $ pip3 install --user -r ./poky/bitbake/toaster-requirements.txt
+ $ pip3 install --user mysqlclient
</literallayout>
<note>
Isolating these packages is not required but is
@@ -270,7 +298,9 @@
as follows:
<itemizedlist>
<listitem><para>
- Edit the <filename>DATABASE</filename> settings:
+ Edit the
+ <ulink url='http://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-SECRET_KEY'>DATABASE</ulink>
+ settings:
<literallayout class='monospaced'>
DATABASES = {
'default': {
@@ -285,13 +315,15 @@
</literallayout>
</para></listitem>
<listitem><para>
- Edit the <filename>SECRET_KEY</filename>:
+ Edit the
+ <ulink url='http://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-SECRET_KEY'>SECRET_KEY</ulink>:
<literallayout class='monospaced'>
SECRET_KEY = '<replaceable>your_secret_key</replaceable>'
</literallayout>
</para></listitem>
<listitem><para>
- Edit the <filename>STATIC_ROOT</filename>:
+ Edit the
+ <ulink url='http://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-SECRET_KEY'>STATIC_ROOT</ulink>:
<literallayout class='monospaced'>
STATIC_ROOT = '/var/www/toaster/static_files/'
</literallayout>
@@ -314,9 +346,9 @@
default data, and gather the statically-served files:
<literallayout class='monospaced'>
$ cd /var/www/toaster/poky/
- $ ./bitbake/lib/toaster/manage.py syncdb
$ ./bitbake/lib/toaster/manage.py migrate
- $ TOASTER_DIR=`pwd` TOASTER_CONF=./meta-poky/conf/toasterconf.json ./bitbake/lib/toaster/manage.py checksettings
+ $ TOASTER_DIR=`pwd` TOASTER_CONF=./meta-poky/conf/toasterconf.json \
+ ./bitbake/lib/toaster/manage.py checksettings
$ ./bitbake/lib/toaster/manage.py collectstatic
</literallayout>
</para>
@@ -324,8 +356,8 @@
<para>
For the above set of commands, after moving to the
<filename>poky</filename> directory,
- the <filename>syncdb</filename> and <filename>migrate</filename>
- commands ensure the database
+ the <filename>migrate</filename>
+ command ensures the database
schema has had changes propagated correctly (i.e.
migrations).
</para>
@@ -365,7 +397,8 @@
Finally, the <filename>collectstatic</filename> command
is a Django framework command that collects all the
statically served files into a designated directory to
- be served up by the Apache web server.
+ be served up by the Apache web server as defined by
+ <filename>STATIC_ROOT</filename>.
</para></listitem>
<listitem><para>
Add an Apache configuration file for Toaster to your Apache web
@@ -378,21 +411,35 @@
<literallayout class='monospaced'>
/etc/httpd/conf.d/toaster.conf
</literallayout>
+ If you are using OpenSUSE, put it here:
+ <literallayout class='monospaced'>
+ /etc/apache2/conf.d/toaster.conf
+ </literallayout>
Following is a sample Apache configuration for Toaster
you can follow:
<literallayout class='monospaced'>
Alias /static /var/www/toaster/static_files
&lt;Directory /var/www/toaster/static_files&gt;
- Order allow,deny
- Allow from all
- Require all granted
+ &lt;IfModule mod_access_compat.c&gt;
+ Order allow,deny
+ Allow from all
+ &lt;/IfModule&gt;
+ &lt;IfModule !mod_access_compat.c&gt;
+ Require all granted
+ &lt;/IfModule&gt;
+ &lt;/Directory&gt;
+
+ &lt;Directory /var/www/toaster/poky/bitbake/lib/toaster/toastermain&gt;
+ &lt;Files "wsgi.py"&gt;
+ Require all granted
+ &lt;/Files&gt;
&lt;/Directory&gt;
- WSGIDaemonProcess toaster_wsgi python-path=/var/www/toaster/poky/bitbake/lib/toaster:/var/www/toaster/venv/lib/python2.7/site-packages
+ WSGIDaemonProcess toaster_wsgi python-path=/var/www/toaster/poky/bitbake/lib/toaster:/var/www/toaster/.local/lib/python3.4/site-packages
WSGIScriptAlias / "/var/www/toaster/poky/bitbake/lib/toaster/toastermain/wsgi.py"
&lt;Location /&gt;
- WSGIProcessGroup toastern_wsgi
+ WSGIProcessGroup toaster_wsgi
&lt;/Location&gt;
</literallayout>
If you are using Ubuntu or Debian,
@@ -404,7 +451,7 @@
</literallayout>
Finally, restart Apache to make sure all new configuration
is loaded.
- For Ubuntu and Debian use:
+ For Ubuntu, Debian, and OpenSUSE use:
<literallayout class='monospaced'>
$ sudo service apache2 restart
</literallayout>
@@ -414,21 +461,52 @@
</literallayout>
</para></listitem>
<listitem><para>
- Install the build runner service.
- This service needs to be running in order to dispatch
- builds.
- Use this command:
+ Prepare the systemd service to run Toaster builds.
+ Here is a sample configuration file for the service:
+ <literallayout class='monospaced'>
+ [Unit]
+ Description=Toaster runbuilds
+
+ [Service]
+ Type=forking
+ User=toaster
+ ExecStart=/usr/bin/screen -d -m -S runbuilds /var/www/toaster/poky/bitbake/lib/toaster/runbuilds-service.sh start
+ ExecStop=/usr/bin/screen -S runbuilds -X quit
+ WorkingDirectory=/var/www/toaster/poky
+
+ [Install]
+ WantedBy=multi-user.target
+ </literallayout>
+ Prepare the <filename>runbuilds-service.sh</filename>
+ script that you need to place in the
+ <filename>/var/www/toaster/poky/bitbake/lib/toaster/</filename>
+ directory by setting up executable permissions:
+ <literallayout class='monospaced'>
+ #!/bin/bash
+
+ #export http_proxy=http://proxy.host.com:8080
+ #export https_proxy=http://proxy.host.com:8080
+ #export GIT_PROXY_COMMAND=$HOME/bin/gitproxy
+
+ cd ~/poky/
+ source ./oe-init-build-env build
+ source ../bitbake/bin/toaster $1 noweb
+ [ "$1" == 'start' ] &amp;&amp; /bin/bash
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ Run the service:
<literallayout class='monospaced'>
- /var/www/toaster/poky/bitbake/lib/toaster/manage.py runbuilds
+ # service runbuilds start
</literallayout>
- Here is an example:
+ Since the service is running in a detached screen
+ session, you can attach to it using this command:
<literallayout class='monospaced'>
- #!/bin/sh
- # toaster run builds dispatcher
- cd /var/www/toaster/
- source ./venv/bin/activate
- ./bitbake/lib/toaster/manage.py runbuilds
+ $ sudo su - toaster
+ $ screen -rS runbuilds
</literallayout>
+ You can detach from the service again using "Ctrl-a"
+ followed by "d" key combination.
</para></listitem>
</orderedlist>
You can now open up a browser and start using Toaster.
diff --git a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-start.xml b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-start.xml
index daefa7909..c5c6795f6 100644
--- a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-start.xml
+++ b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual-start.xml
@@ -22,6 +22,11 @@
and
"<ulink url='&YOCTO_DOCS_QS_URL;#releases'>Yocto Project Release</ulink>"
sections in the Yocto Project Quick Start.
+ For Ubuntu/Debian, you might also need to do an additional install
+ of pip3.
+ <literallayout class='monospaced'>
+ $ sudo apt-get install python3-pip
+ </literallayout>
</para>
</section>
@@ -42,56 +47,6 @@
install-compatible format.
</para>
- <section id='toaster-virtual-environment'>
- <title>Set Up a Python Virtual Environment</title>
-
- <para>
- Set up a Python virtual environment that allows you
- to maintain a dedicated Python executable and its own
- set of installed modules.
- Doing so separates the executable from Python and the
- modules provided by the operating system.
- This separation avoids any version conflicts.
- <note>
- Creating a virtual environment is not absolutely
- necessary.
- However, doing so is highly recommended.
- </note>
- </para>
-
- <para>
- Follow these steps to set up your virtual environment.
- These steps assume a Ubuntu distribution:
- <orderedlist>
- <listitem><para><emphasis>Install <filename>virtualenv</filename>:</emphasis>
- Install the supported
- <filename>python-virtualenv</filename> package from your
- distribution rather than using <filename>pip</filename>.
- <literallayout class='monospaced'>
- $ sudo apt-get install python-virtualenv
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Create and Activate a Virtual Environment:</emphasis>
- <literallayout class='monospaced'>
- $ virtualenv venv
- $ source venv/bin/activate
- </literallayout>
- </para></listitem>
- </orderedlist>
- <note>
- After setting up a virtual environment in
- which to run Toaster, you must initialize that
- virtual environment each time you want to start
- Toaster.
- Use the following to initialize the environment just
- before you start Toaster:
- <literallayout class='monospaced'>
- $ source venv/bin/activate
- </literallayout>
- </note>
- </para>
- </section>
-
<section id='toaster-load-packages'>
<title>Install Toaster Packages</title>
@@ -99,7 +54,21 @@
You need to install the packages that Toaster requires.
Use this command:
<literallayout class='monospaced'>
- $ pip install -r bitbake/toaster-requirements.txt
+ $ $ pip3 install --user -r bitbake/toaster-requirements.txt
+ </literallayout>
+ The previous command installs the necessary Toaster modules
+ into a local python 3 cache in your
+ <filename>$HOME</filename> directory.
+ The caches is actually located in
+ <filename>$HOME/.local</filename>.
+ To see what packages have been installed into your
+ <filename>$HOME</filename> directory, do the following:
+ <literallayout class='monospaced'>
+ $ pip3 list installed --local
+ </literallayout>
+ If you need to remove something, the following works:
+ <literallayout class='monospaced'>
+ $ pip3 uninstall PackageNameToUninstall
</literallayout>
</para>
</section>
diff --git a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual.xml b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual.xml
index 7a8912a6e..386c51b32 100644
--- a/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual.xml
+++ b/import-layers/yocto-poky/documentation/toaster-manual/toaster-manual.xml
@@ -46,6 +46,11 @@
<date>April 2016</date>
<revremark>Released with the Yocto Project 2.1 Release.</revremark>
</revision>
+ <revision>
+ <revnumber>2.2</revnumber>
+ <date>October 2016</date>
+ <revremark>Released with the Yocto Project 2.2 Release.</revremark>
+ </revision>
</revhistory>
<copyright>
diff --git a/import-layers/yocto-poky/documentation/tools/mega-manual.sed b/import-layers/yocto-poky/documentation/tools/mega-manual.sed
index 5a3bdf9fb..b6d265f44 100644
--- a/import-layers/yocto-poky/documentation/tools/mega-manual.sed
+++ b/import-layers/yocto-poky/documentation/tools/mega-manual.sed
@@ -2,32 +2,32 @@
# This style is for manual folders like "yocto-project-qs" and "poky-ref-manual".
# This is the old way that did it. Can't do that now that we have "bitbake-user-manual" strings
# in the mega-manual.
-# s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/[a-z]*-[a-z]*-[a-z]*\/[a-z]*-[a-z]*-[a-z]*.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/yocto-project-qs\/yocto-project-qs.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/poky-ref-manual\/poky-ref-manual.html#/\"link\" href=\"#/g
+# s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/[a-z]*-[a-z]*-[a-z]*\/[a-z]*-[a-z]*-[a-z]*.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/yocto-project-qs\/yocto-project-qs.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/poky-ref-manual\/poky-ref-manual.html#/\"link\" href=\"#/g
# Processes all other manuals (<word>-<word> style) except for the BitBake User Manual because
# it is not included in the mega-manual.
# This style is for manual folders that use two word, which is the standard now (e.g. "ref-manual").
# This was the one-liner that worked before we introduced the BitBake User Manual, which is
# not in the mega-manual.
-# s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/[a-z]*-[a-z]*\/[a-z]*-[a-z]*.html#/\"link\" href=\"#/g
+# s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/[a-z]*-[a-z]*\/[a-z]*-[a-z]*.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/sdk-manual\/sdk-manual.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/bsp-guide\/bsp-guide.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/dev-manual\/dev-manual.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/kernel-dev\/kernel-dev.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/profile-manual\/profile-manual.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/ref-manual\/ref-manual.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/toaster-manual\/toaster-manual.html#/\"link\" href=\"#/g
-s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/yocto-project-qs\/yocto-project-qs.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/sdk-manual\/sdk-manual.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/bsp-guide\/bsp-guide.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/dev-manual\/dev-manual.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/kernel-dev\/kernel-dev.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/profile-manual\/profile-manual.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/ref-manual\/ref-manual.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/toaster-manual\/toaster-manual.html#/\"link\" href=\"#/g
+s/\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/yocto-project-qs\/yocto-project-qs.html#/\"link\" href=\"#/g
# Process cases where just an external manual is referenced without an id anchor
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/yocto-project-qs\/yocto-project-qs.html\" target=\"_top\">Yocto Project Quick Start<\/a>/Yocto Project Quick Start/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/dev-manual\/dev-manual.html\" target=\"_top\">Yocto Project Development Manual<\/a>/Yocto Project Development Manual/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/sdk-manual\/sdk-manual.html\" target=\"_top\">Yocto Project Software Development Kit (SDK) Developer's Guide<\/a>/Yocto Project Software Development Kit (SDK) Developer's Guide/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/bsp-guide\/bsp-guide.html\" target=\"_top\">Yocto Project Board Support Package (BSP) Developer's Guide<\/a>/Yocto Project Board Support Package (BSP) Developer's Guide/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/profile-manual\/profile-manual.html\" target=\"_top\">Yocto Project Profiling and Tracing Manual<\/a>/Yocto Project Profiling and Tracing Manual/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/kernel-dev\/kernel-dev.html\" target=\"_top\">Yocto Project Linux Kernel Development Manual<\/a>/Yocto Project Linux Kernel Development Manual/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/ref-manual\/ref-manual.html\" target=\"_top\">Yocto Project Reference Manual<\/a>/Yocto Project Reference Manual/g
-s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.1\/toaster-manual\/toaster-manual.html\" target=\"_top\">Toaster User Manual<\/a>/Toaster User Manual/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/yocto-project-qs\/yocto-project-qs.html\" target=\"_top\">Yocto Project Quick Start<\/a>/Yocto Project Quick Start/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/dev-manual\/dev-manual.html\" target=\"_top\">Yocto Project Development Manual<\/a>/Yocto Project Development Manual/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/sdk-manual\/sdk-manual.html\" target=\"_top\">Yocto Project Software Development Kit (SDK) Developer's Guide<\/a>/Yocto Project Software Development Kit (SDK) Developer's Guide/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/bsp-guide\/bsp-guide.html\" target=\"_top\">Yocto Project Board Support Package (BSP) Developer's Guide<\/a>/Yocto Project Board Support Package (BSP) Developer's Guide/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/profile-manual\/profile-manual.html\" target=\"_top\">Yocto Project Profiling and Tracing Manual<\/a>/Yocto Project Profiling and Tracing Manual/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/kernel-dev\/kernel-dev.html\" target=\"_top\">Yocto Project Linux Kernel Development Manual<\/a>/Yocto Project Linux Kernel Development Manual/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/ref-manual\/ref-manual.html\" target=\"_top\">Yocto Project Reference Manual<\/a>/Yocto Project Reference Manual/g
+s/<a class=\"ulink\" href=\"http:\/\/www.yoctoproject.org\/docs\/2.2\/toaster-manual\/toaster-manual.html\" target=\"_top\">Toaster User Manual<\/a>/Toaster User Manual/g
diff --git a/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml b/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
index c09e971d6..d18f0aecd 100644
--- a/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
+++ b/import-layers/yocto-poky/documentation/yocto-project-qs/yocto-project-qs.xml
@@ -255,8 +255,7 @@
tar 1.24 or greater
</para></listitem>
<listitem><para>
- Python 2.7.3 or greater excluding Python
- 3.x, which is not supported.
+ Python 3.4.0 or greater.
</para></listitem>
</itemizedlist>
If your build host does not meet any of these three listed
@@ -391,8 +390,8 @@
</para>
<para>
- You can try out the Yocto Project using the command-line interface
- by finishing this quick start, which presents steps that let you
+ To use the Yocto Project through the command-line interface,
+ finish this quick start, which presents steps that let you
do the following:
<itemizedlist>
<listitem><para>
@@ -401,230 +400,239 @@
</para></listitem>
<listitem><para>
Easily change configurations so that you can quickly
- create a second image, which would be for MinnowBoard
+ create a second image that you can load onto bootable
+ media and actually boot target hardware.
+ This example uses the MinnowBoard
MAX-compatible boards.
</para></listitem>
</itemizedlist>
<note>
- The steps in this section do not provide detail, but rather
- provide minimal, working commands and examples designed to
- just get you started.
+ The steps in the following two sections do not provide detail,
+ but rather provide minimal, working commands and examples
+ designed to just get you started.
For more details, see the appropriate manuals in the
<ulink url='&YOCTO_HOME_URL;/documentation'>Yocto Project manual set</ulink>.
</note>
</para>
- <para>
- Use the following commands to build your image.
- The OpenEmbedded build system creates an entire Linux
- distribution, including the toolchain, from source.
- <note><title>Note about Network Proxies</title>
- <para>
- By default, the build process searches for source code
- using a pre-determined order through a set of
- locations.
- If you are working behind a firewall and your build
- host is not set up for proxies, you could encounter
- problems with the build process when fetching source
- code (e.g. fetcher failures or Git failures).
- </para>
-
- <para>
- If you do not know your proxy settings, consult your
- local network infrastructure resources and get that
- information.
- A good starting point could also be to check your web
- browser settings.
- Finally, you can find more information on using the
- Yocto Project behind a firewall in the Yocto Project
- Reference Manual
- <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
- and on the
- "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
- wiki page.
- </para>
- </note>
- </para>
+ <section id='building-an-image-for-emulation'>
+ <title>Building an Image for Emulation</title>
- <para>
- <orderedlist>
- <listitem><para><emphasis>Be Sure Your Build Host is Set Up:</emphasis>
- The steps to build an image in this section depend on
- your build host being properly set up.
- Be sure you have worked through the requirements
- described in the
- "<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
- section.
- </para></listitem>
- <listitem><para><emphasis>Check Out Your Branch:</emphasis>
- Be sure you are in the
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
- (e.g. <filename>poky</filename>) and then check out
- the branch associated with the latest Yocto Project
- Release:
- <literallayout class='monospaced'>
+ <para>
+ Use the following commands to build your image.
+ The OpenEmbedded build system creates an entire Linux
+ distribution, including the toolchain, from source.
+ <note><title>Note about Network Proxies</title>
+ <para>
+ By default, the build process searches for source code
+ using a pre-determined order through a set of
+ locations.
+ If you are working behind a firewall and your build
+ host is not set up for proxies, you could encounter
+ problems with the build process when fetching source
+ code (e.g. fetcher failures or Git failures).
+ </para>
+
+ <para>
+ If you do not know your proxy settings, consult your
+ local network infrastructure resources and get that
+ information.
+ A good starting point could also be to check your web
+ browser settings.
+ Finally, you can find more information on using the
+ Yocto Project behind a firewall in the Yocto Project
+ Reference Manual
+ <ulink url='&YOCTO_DOCS_REF_URL;#how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>FAQ</ulink>
+ and on the
+ "<ulink url='https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy'>Working Behind a Network Proxy</ulink>"
+ wiki page.
+ </para>
+ </note>
+ </para>
+
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Be Sure Your Build Host is Set Up:</emphasis>
+ The steps to build an image in this section depend on
+ your build host being properly set up.
+ Be sure you have worked through the requirements
+ described in the
+ "<link linkend='yp-resources'>Setting Up to Use the Yocto Project</link>"
+ section.
+ </para></listitem>
+ <listitem><para><emphasis>Check Out Your Branch:</emphasis>
+ Be sure you are in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>
+ (e.g. <filename>poky</filename>) and then check out
+ the branch associated with the latest Yocto Project
+ Release:
+ <literallayout class='monospaced'>
$ cd ~/poky
$ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
- </literallayout>
- Git's <filename>checkout</filename> command checks out
- the current Yocto Project release into a local branch
- whose name matches the release (i.e.
- <filename>&DISTRO_NAME_NO_CAP;</filename>).
- The local branch tracks the upstream branch of the
- same name.
- Creating your own branch based on the released
- branch ensures you are using the latest files for
- that release.
- </para></listitem>
- <listitem><para><emphasis>Initialize the Build Environment:</emphasis>
- Run the
- <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
- environment setup script to define the OpenEmbedded
- build environment on your build host.
- <literallayout class='monospaced'>
+ </literallayout>
+ Git's <filename>checkout</filename> command checks out
+ the current Yocto Project release into a local branch
+ whose name matches the release (i.e.
+ <filename>&DISTRO_NAME_NO_CAP;</filename>).
+ The local branch tracks the upstream branch of the
+ same name.
+ Creating your own branch based on the released
+ branch ensures you are using the latest files for
+ that release.
+ </para></listitem>
+ <listitem><para><emphasis>Initialize the Build Environment:</emphasis>
+ Run the
+ <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
+ environment setup script to define the OpenEmbedded
+ build environment on your build host.
+ <literallayout class='monospaced'>
$ source &OE_INIT_FILE;
- </literallayout>
- Among other things, the script creates the
- <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
- which is <filename>build</filename> in this case
- and is located in the
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
- After the script runs, your current working directory
- is set to the Build Directory.
- Later, when the build completes, the Build Directory
- contains all the files created during the build.
- <note>
- For information on running a memory-resident
- <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>,
- see the
- <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
- setup script.
- </note>
- </para></listitem>
- <listitem><para><emphasis>Examine Your Local Configuration File:</emphasis>
- When you set up the build environment, a local
- configuration file named
- <filename>local.conf</filename> becomes available in
- a <filename>conf</filename> subdirectory of the
- Build Directory.
- Before using BitBake to start the build, you can
- look at this file and be sure your general
- configurations are how you want them:
- <itemizedlist>
- <listitem><para>
- To help conserve disk space during builds,
- you can add the following statement to your
- project's configuration file, which for this
- example is
- <filename>poky/build/conf/local.conf</filename>.
- Adding this statement deletes the work
- directory used for building a recipe once the
- recipe is built.
- <literallayout class='monospaced'>
+ </literallayout>
+ Among other things, the script creates the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>,
+ which is <filename>build</filename> in this case
+ and is located in the
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
+ After the script runs, your current working directory
+ is set to the Build Directory.
+ Later, when the build completes, the Build Directory
+ contains all the files created during the build.
+ <note>
+ For information on running a memory-resident
+ <ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>,
+ see the
+ <ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
+ setup script.
+ </note>
+ </para></listitem>
+ <listitem><para><emphasis>Examine Your Local Configuration File:</emphasis>
+ When you set up the build environment, a local
+ configuration file named
+ <filename>local.conf</filename> becomes available in
+ a <filename>conf</filename> subdirectory of the
+ Build Directory.
+ Before using BitBake to start the build, you can
+ look at this file and be sure your general
+ configurations are how you want them:
+ <itemizedlist>
+ <listitem><para>
+ To help conserve disk space during builds,
+ you can add the following statement to your
+ project's configuration file, which for this
+ example is
+ <filename>poky/build/conf/local.conf</filename>.
+ Adding this statement deletes the work
+ directory used for building a recipe once the
+ recipe is built.
+ <literallayout class='monospaced'>
INHERIT += "rm_work"
- </literallayout>
- </para></listitem>
- <listitem><para>
- By default, the target machine for the build is
- <filename>qemux86</filename>,
- which produces an image that can be used in
- the QEMU emulator and is targeted at an
- <trademark class='registered'>Intel</trademark>
- 32-bit based architecture.
- Further on in this example, this default is
- easily changed through the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
- variable so that you can quickly
- build an image for a different machine.
- </para></listitem>
- <listitem><para>
- Another consideration before you build is the
- package manager used when creating the image.
- The default <filename>local.conf</filename>
- file selects the RPM package manager.
- You can control this configuration by using the
- <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename>
- variable.</para>
- <para>Selection of the package manager is separate
- from whether package management is used at runtime
- in the target image.</para>
- <para>For additional package manager selection
- information, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package.bbclass</filename></ulink>"
- section in the Yocto Project Reference Manual.
- </para></listitem>
- </itemizedlist>
- </para></listitem>
- <listitem><para><emphasis>Start the Build:</emphasis>
- Continue with the following command to build an OS image
- for the target, which is
- <filename>core-image-sato</filename> in this example:
- <note>
- Depending on the number of processors and cores, the
- amount of RAM, the speed of your Internet connection
- and other factors, the build process could take several
- hours the first time you run it.
- Subsequent builds run much faster since parts of the
- build are cached.
- </note>
- <literallayout class='monospaced'>
+ </literallayout>
+ </para></listitem>
+ <listitem><para>
+ By default, the target machine for the build is
+ <filename>qemux86</filename>,
+ which produces an image that can be used in
+ the QEMU emulator and is targeted at an
+ <trademark class='registered'>Intel</trademark>
+ 32-bit based architecture.
+ Further on in this example, this default is
+ easily changed through the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
+ variable so that you can quickly
+ build an image for a different machine.
+ </para></listitem>
+ <listitem><para>
+ Another consideration before you build is the
+ package manager used when creating the image.
+ The default <filename>local.conf</filename>
+ file selects the RPM package manager.
+ You can control this configuration by using the
+ <filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename>
+ variable.</para>
+ <para>Selection of the package manager is separate
+ from whether package management is used at runtime
+ in the target image.</para>
+ <para>For additional package manager selection
+ information, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'><filename>package.bbclass</filename></ulink>"
+ section in the Yocto Project Reference Manual.
+ </para></listitem>
+ </itemizedlist>
+ </para></listitem>
+ <listitem><para><emphasis>Start the Build:</emphasis>
+ Continue with the following command to build an OS image
+ for the target, which is
+ <filename>core-image-sato</filename> in this example:
+ <note>
+ Depending on the number of processors and cores, the
+ amount of RAM, the speed of your Internet connection
+ and other factors, the build process could take several
+ hours the first time you run it.
+ Subsequent builds run much faster since parts of the
+ build are cached.
+ </note>
+ <literallayout class='monospaced'>
$ bitbake core-image-sato
- </literallayout>
- For information on using the
- <filename>bitbake</filename> command, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
- section in the Yocto Project Reference Manual, or see the
- "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
- section in the BitBake User Manual.
- For information on other targets, see the
- "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
- chapter in the Yocto Project Reference Manual.
- </para></listitem>
- <listitem><para><emphasis>Simulate Your Image Using QEMU:</emphasis>
- Once this particular image is built, you can start QEMU
- and run the image:
- <literallayout class='monospaced'>
+ </literallayout>
+ For information on using the
+ <filename>bitbake</filename> command, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>"
+ section in the Yocto Project Reference Manual, or see the
+ "<ulink url='&YOCTO_DOCS_BB_URL;#bitbake-user-manual-command'>BitBake Command</ulink>"
+ section in the BitBake User Manual.
+ For information on other targets, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
+ chapter in the Yocto Project Reference Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Simulate Your Image Using QEMU:</emphasis>
+ Once this particular image is built, you can start QEMU
+ and run the image:
+ <literallayout class='monospaced'>
$ runqemu qemux86
- </literallayout>
- If you want to learn more about running QEMU, see the
- "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
- chapter in the Yocto Project Development Manual.
- </para></listitem>
- <listitem><para><emphasis>Exit QEMU:</emphasis>
- Exit QEMU by either clicking on the shutdown icon or by
- opening a terminal, typing
- <filename>poweroff</filename>, and then pressing "Enter".
- </para></listitem>
- </orderedlist>
- </para>
+ </literallayout>
+ If you want to learn more about running QEMU, see the
+ "<ulink url="&YOCTO_DOCS_DEV_URL;#dev-manual-qemu">Using the Quick EMUlator (QEMU)</ulink>"
+ chapter in the Yocto Project Development Manual.
+ </para></listitem>
+ <listitem><para><emphasis>Exit QEMU:</emphasis>
+ Exit QEMU by either clicking on the shutdown icon or by
+ opening a terminal, typing
+ <filename>poweroff</filename>, and then pressing "Enter".
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
- <para id='qs-minnowboard-example'>
- The following steps show how easy it is to set up to build an
- image for a new machine.
- These steps build an image for the MinnowBoard MAX, which is
- supported by the Yocto Project and the
- <filename>meta-intel</filename> <filename>intel-corei7-64</filename>
- and <filename>intel-core2-32</filename> Board Support Packages
- (BSPs).
- <note>
- The MinnowBoard MAX ships with 64-bit firmware.
- If you want to use the board in 32-bit mode, you must
- download the
- <ulink url='http://firmware.intel.com/projects/minnowboard-max'>32-bit firmware</ulink>.
- </note>
- </para>
+ <section id='building-an-image-for-hardware'>
+ <title>Building an Image for Hardware</title>
+
+ <para id='qs-minnowboard-example'>
+ The following steps show how easy it is to set up to build an
+ image for a new machine.
+ These steps build an image for the MinnowBoard MAX, which is
+ supported by the Yocto Project and the
+ <filename>meta-intel</filename> <filename>intel-corei7-64</filename>
+ and <filename>intel-core2-32</filename> Board Support Packages
+ (BSPs).
+ <note>
+ The MinnowBoard MAX ships with 64-bit firmware.
+ If you want to use the board in 32-bit mode, you must
+ download the
+ <ulink url='http://firmware.intel.com/projects/minnowboard-max'>32-bit firmware</ulink>.
+ </note>
+ </para>
- <para>
- <orderedlist>
- <listitem><para><emphasis>Create a Local Copy of the
- <filename>meta-intel</filename> Repository:</emphasis>
- Building an image for the MinnowBoard MAX requires the
- <filename>meta-intel</filename> layer.
- Use the <filename>git clone</filename> command to create
- a local copy of the repository inside your
- <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
- which is <filename>poky</filename> in this example:
- <literallayout class='monospaced'>
+ <para>
+ <orderedlist>
+ <listitem><para><emphasis>Create a Local Copy of the
+ <filename>meta-intel</filename> Repository:</emphasis>
+ Building an image for the MinnowBoard MAX requires the
+ <filename>meta-intel</filename> layer.
+ Use the <filename>git clone</filename> command to create
+ a local copy of the repository inside your
+ <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>,
+ which is <filename>poky</filename> in this example:
+ <literallayout class='monospaced'>
$ cd $HOME/poky
$ git clone git://git.yoctoproject.org/meta-intel
Cloning into 'meta-intel'...
@@ -634,121 +642,133 @@
remote: Total 11988 (delta 6881), reused 11752 (delta 6645)
Resolving deltas: 100% (6881/6881), done.
Checking connectivity... done.
- </literallayout>
- By default when you clone a Git repository, the
- "master" branch is checked out.
- Before you build your image that uses the
- <filename>meta-intel</filename> layer, you must be
- sure that both repositories
- (<filename>meta-intel</filename> and
- <filename>poky</filename>) are using the same releases.
- Consequently, you need to checkout out the
- "<filename>&DISTRO_NAME_NO_CAP;</filename>" release after
- cloning <filename>meta-intel</filename>:
- <literallayout class='monospaced'>
+ </literallayout>
+ By default when you clone a Git repository, the
+ "master" branch is checked out.
+ Before you build your image that uses the
+ <filename>meta-intel</filename> layer, you must be
+ sure that both repositories
+ (<filename>meta-intel</filename> and
+ <filename>poky</filename>) are using the same releases.
+ Consequently, you need to checkout out the
+ "<filename>&DISTRO_NAME_NO_CAP;</filename>" release after
+ cloning <filename>meta-intel</filename>:
+ <literallayout class='monospaced'>
$ cd $HOME/poky/meta-intel
$ git checkout &DISTRO_NAME_NO_CAP;
Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin.
Switched to a new branch '&DISTRO_NAME_NO_CAP;'
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Configure the Build:</emphasis>
- To configure the build, you edit the
- <filename>bblayers.conf</filename> and
- <filename>local.conf</filename> files, both of which are
- located in the <filename>build/conf</filename> directory.
- </para>
-
- <para>Here is a quick way to make the edits.
- The first command uses the
- <filename>bitbake-layers add-layer</filename> command
- to add the <filename>meta-intel</filename>
- layer, which contains the <filename>intel-core*</filename>
- BSPs to the build.
- The second command selects the BSP by setting the
- <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
- variable.
- <literallayout class='monospaced'>
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Configure the Build:</emphasis>
+ To configure the build, you edit the
+ <filename>bblayers.conf</filename> and
+ <filename>local.conf</filename> files, both of which are
+ located in the <filename>build/conf</filename> directory.
+ </para>
+
+ <para>Here is a quick way to make the edits.
+ The first command uses the
+ <filename>bitbake-layers add-layer</filename> command
+ to add the <filename>meta-intel</filename>
+ layer, which contains the <filename>intel-core*</filename>
+ BSPs to the build.
+ The second command selects the BSP by setting the
+ <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
+ variable.
+ <literallayout class='monospaced'>
$ cd $HOME/poky/build
$ bitbake-layers add-layer "$HOME/poky/meta-intel"
$ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
- </literallayout>
- <note><title>Notes</title>
- <para>
- If you want a 64-bit build, use the following:
- <literallayout class='monospaced'>
- $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
</literallayout>
- </para>
+ <note><title>Notes</title>
+ <para>
+ If you want a 64-bit build, use the following:
+ <literallayout class='monospaced'>
+ $ echo 'MACHINE = "intel-corei7-64"' >> conf/local.conf
+ </literallayout>
+ </para>
- <para>
- If you want 32-bit images, use the following:
- <literallayout class='monospaced'>
+ <para>
+ If you want 32-bit images, use the following:
+ <literallayout class='monospaced'>
$ echo 'MACHINE = "intel-core2-32"' >> conf/local.conf
+ </literallayout>
+ </para>
+ </note>
+ </para></listitem>
+ <listitem><para><emphasis>Build an Image for MinnowBoard MAX:</emphasis>
+ The type of image you build depends on your goals.
+ For example, the previous build created a
+ <filename>core-image-sato</filename> image, which is an
+ image with Sato support.
+ It is possible to build many image types for the
+ MinnowBoard MAX.
+ Some possibilities are <filename>core-image-base</filename>,
+ which is a console-only image.
+ Another choice could be a
+ <filename>core-image-full-cmdline</filename>, which is
+ another console-only image but has more full-features
+ Linux system functionality installed.
+ For types of images you can build using the Yocto
+ Project, see the
+ "<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Images</ulink>"
+ chapter in the Yocto Project Reference Manual.</para>
+ <para>Because configuration changes are minimal to set up
+ for this second build, the OpenEmbedded build system can
+ re-use files from previous builds as much as possible.
+ Re-using files means this second build will be much faster
+ than an initial build.
+ For this example, the <filename>core-image-base</filename>
+ image is built:
+ <literallayout class='monospaced'>
+ $ bitbake core-image-base
</literallayout>
- </para>
- </note>
- </para></listitem>
- <listitem><para><emphasis>Build a Minimal Image for MinnowBoard MAX:</emphasis>
- Use the following command to build the minimal image for
- MinnowBoard MAX.
- Because configuration changes are minimal to set up for
- this second build, the OpenEmbedded build system can
- re-use files from previous builds as much as possible.
- Re-using files means this second build will be much faster
- than an initial build.
- <literallayout class='monospaced'>
- $ bitbake core-image-minimal
- </literallayout>
- Once the build completes, the resulting basic console image
- is located in the Build Directory here:
- <literallayout class='monospaced'>
- tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg
- </literallayout>
- </para></listitem>
- <listitem><para><emphasis>Write the Image:</emphasis>
- You can write the image to a USB key, SATA drive, or SD
- card by using the <filename>mkefidisk.sh</filename> script,
- which is included in the <filename>poky</filename>
- repository at
- <filename>scripts/contrib/mkefidisk.sh</filename>:
- <literallayout class='monospaced'>
- $ sudo $HOME/source/poky/scripts/contrib/mkefidisk.sh <replaceable>HOST_DEVICE</replaceable> \
- tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.hddimg <replaceable>TARGET_DEVICE</replaceable>
- </literallayout>
- In the previous command,
- <replaceable>HOST_DEVICE</replaceable> is the device node
- on the build host (e.g. <filename>/dev/sdc</filename> or
- <filename>/dev/mmcblk0</filename>).
- <replaceable>TARGET_DEVICE</replaceable> is the name of the
- device as the MinnowBoard MAX sees it (e.g.
- <filename>/dev/sda</filename> or
- <filename>/dev/mmcblk0</filename>).
- </para></listitem>
- <listitem><para><emphasis>Boot the Hardware:</emphasis>
- With the boot device provisioned, you can insert the
- media into the MinnowBoard MAX and boot the hardware.
- The board should automatically detect the media and boot to
- the bootloader and subsequently the operating system.
- </para>
-
- <para>If the board does not boot automatically, you can
- boot it manually from the EFI shell as follows:
- <literallayout class='monospaced'>
+ Once the build completes, the resulting console-only image
+ is located in the Build Directory here:
+ <literallayout class='monospaced'>
+ tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.hddimg
+ </literallayout>
+ </para></listitem>
+ <listitem><para><emphasis>Write the Image:</emphasis>
+ You can write the image just built to a bootable media
+ (e.g. a USB key, SATA drive, SD card, etc.) using the
+ <filename>dd</filename> utility:
+ <literallayout class='monospaced'>
+ $ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-minimal-intel-corei7-64.wic of=TARGET_DEVICE
+ </literallayout>
+ In the previous command, the
+ <filename>TARGET_DEVICE</filename> is the device node in
+ the host machine (e.g. <filename>/dev/sdc</filename>, which
+ is most likely a USB stick, or
+ <filename>/dev/mmcblk0</filename>, which is most likely an
+ SD card.
+ </para></listitem>
+ <listitem><para><emphasis>Boot the Hardware:</emphasis>
+ With the boot device provisioned, you can insert the
+ media into the MinnowBoard MAX and boot the hardware.
+ The board should automatically detect the media and boot to
+ the bootloader and subsequently the operating system.
+ </para>
+
+ <para>If the board does not boot automatically, you can
+ boot it manually from the EFI shell as follows:
+ <literallayout class='monospaced'>
Shell> connect -r
Shell> map -r
Shell> fs0:
Shell> bootx64
- </literallayout>
- <note>
- For a 32-bit image use the following:
- <literallayout class='monospaced'>
- Shell> bootia32
</literallayout>
- </note>
- </para></listitem>
- </orderedlist>
- </para>
+ <note>
+ For a 32-bit image use the following:
+ <literallayout class='monospaced'>
+ Shell> bootia32
+ </literallayout>
+ </note>
+ </para></listitem>
+ </orderedlist>
+ </para>
+ </section>
</section>
<section id='qs-next-steps'>
diff --git a/import-layers/yocto-poky/meta-poky/conf/distro/include/maintainers.inc b/import-layers/yocto-poky/meta-poky/conf/distro/include/maintainers.inc
index dbc33fc9e..db9511140 100644
--- a/import-layers/yocto-poky/meta-poky/conf/distro/include/maintainers.inc
+++ b/import-layers/yocto-poky/meta-poky/conf/distro/include/maintainers.inc
@@ -40,34 +40,43 @@ RECIPE_MAINTAINER_pn-apmd = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-apr = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-apr-util = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-apt = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
-RECIPE_MAINTAINER_pn-aspell = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-apt-native = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-argp-standalone = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-asciidoc = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-aspell = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-at = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-at-spi2-atk = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-at-spi2-core = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-atk = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-attr = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-augeas = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-autoconf = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-autogen-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-automake = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-avahi = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-avahi-ui = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-avahi = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-avahi-ui = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-babeltrace = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-base-files = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-base-passwd = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-bash = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-bc = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-bash-completion = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-bc = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-bdwgc = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-beecrypt = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-bigreqsproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-bind = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-bind = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-binutils = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-binutils-cross = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-binutils-cross-canadian = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-binutils-crosssdk = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-bison = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-bjam-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-blktool = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-blktool = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-blktrace = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-bluez5 = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-bmap-tools = "Ed Bartosh <ed.bartosh@linux.intel.com>"
RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-btrfs-tools = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-build-compare = "Randy Witt <randy.e.witt@linux.intel.com>"
@@ -79,15 +88,17 @@ RECIPE_MAINTAINER_pn-bzip2 = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-ca-certificates = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-cairo = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-calibrateproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-ccache = "Wenzong Fan <wenzong.fan@windriver.com>"
-RECIPE_MAINTAINER_pn-cdrtools-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-chkconfig = "Wenzong Fan <wenzong.fan@windriver.com>"
-RECIPE_MAINTAINER_pn-chkconfig-alternatives-native = "Wenzong Fan <wenzong.fan@windriver.com>"
-RECIPE_MAINTAINER_pn-chrpath = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-cantarell-fonts = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-ccache = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-cdrtools-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-chkconfig = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-chkconfig-alternatives-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-chrpath = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-clutter-1.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-clutter-gst-3.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-clutter-gtk-1.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-cmake = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-cmake = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-cmake-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-cogl-1.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-compositeproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-connman = "Maxin B. John <maxin.john@intel.com>"
@@ -112,22 +123,31 @@ RECIPE_MAINTAINER_pn-core-image-rt-sdk = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-core-image-sato = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-core-image-sato-dev = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-core-image-sato-sdk = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-core-image-sato-sdk-ptest = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-core-image-testmaster = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-core-image-weston = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-core-image-x11 = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-coreutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-cpio = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-cracklib = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-createrepo = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-cronie = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-cronie = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-cross-localedef-native = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-cryptodev-linux = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-cryptodev-module = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-cryptodev-tests = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-cups = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-curl = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-cwautomacros = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-damageproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-db = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-db = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-dbus = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-glib = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-test = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-dbus-wait = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-debianutils = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-depmodwrapper-cross = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-desktop-file-utils-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-dhcp = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-diffstat = "Chen Qi <Qi.Chen@windriver.com>"
@@ -135,32 +155,38 @@ RECIPE_MAINTAINER_pn-diffutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-directfb = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-directfb-examples = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-distcc = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-distcc-config = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-distcc-config = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-dmidecode = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-dmxproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-dsssl-stylesheets-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-sgml-dtd-3.1-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-sgml-dtd-4.1-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-sgml-dtd-4.5-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-utils-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-xml-dtd4 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-docbook-xsl-stylesheets = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-dosfstools = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-docbook-dsssl-stylesheets-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-sgml-dtd-3.1-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-sgml-dtd-4.1-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-sgml-dtd-4.5-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-utils-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-xml-dtd4 = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-docbook-xsl-stylesheets = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-dosfstools = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-dpkg = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-dri2proto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-dri3proto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-dropbear = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-dropbear = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-dtc = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-eee-acpi-scripts = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-efilinux = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-eglinfo-fb = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-eglinfo-x11 = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-efilinux = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-elfutils = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-enchant = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-encodings = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-ethtool = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-eudev = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-expat = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-expat = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-expect = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-ffmpeg = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-file = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-findutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-fixesproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -174,8 +200,14 @@ RECIPE_MAINTAINER_pn-foomatic-filters = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-formfactor = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-freetype = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-fstests = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-fts = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gawk = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-gcc = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gcc-cross = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gcc-cross-canadian = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gcc-cross-initial = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gcc-crosssdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gcc-crosssdk-initial = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-gcc-runtime = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-gcc-sanitizers = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-gcc-source = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -183,10 +215,12 @@ RECIPE_MAINTAINER_pn-gccmakedep = "Richard Purdie <richard.purdie@linuxfoundatio
RECIPE_MAINTAINER_pn-gconf = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gdb = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gdb-cross = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-gdb-cross-canadian = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-gdbm = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gdk-pixbuf = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-gettext = "Wenzong Fan <wenzong.fan@windriver.com>"
-RECIPE_MAINTAINER_pn-gettext-minimal-native = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-gettext = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-gettext-minimal-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ghostscript = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-git = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-glew = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -194,21 +228,28 @@ RECIPE_MAINTAINER_pn-glib-2.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-glib-networking = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-glibc = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-glibc-initial = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-glibc-locale = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-glibc-mtrace = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-glibc-scripts = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-glproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gmp = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnome-common = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gnome-desktop-testing = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gnome-desktop3 = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gnome-doc-utils = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-gnome-themes-standard = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gnu-config = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnu-efi = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-gnupg = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-gnutls = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-gobject-introspection = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gperf = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-gpgme = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-gpgme = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-gptfdisk = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-grep = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-groff = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-grub = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-grub = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-grub-efi = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gsettings-desktop-schemas = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gst-player = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gstreamer1.0 = "Maxin B. John <maxin.john@intel.com>"
@@ -222,7 +263,7 @@ RECIPE_MAINTAINER_pn-gstreamer1.0-plugins-ugly = "Maxin B. John <maxin.john@inte
RECIPE_MAINTAINER_pn-gstreamer1.0-rtsp-server = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-gtk+ = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gtk+3 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-gtk-doc-stub = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-gtk-doc = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-gtk-engines = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gtk-icon-utils-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-gtk-sato-engine = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -237,13 +278,19 @@ RECIPE_MAINTAINER_pn-hicolor-icon-theme = "Jussi Kukkonen <jussi.kukkonen@intel.
RECIPE_MAINTAINER_pn-hostap-conf = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-hostap-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-hwlatdetect = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-i2c-tools = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-icecc-create-env-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-icon-naming-utils = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-icu = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-ifupdown = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-init-ifupdown = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-boot = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-framework = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-boot = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initramfs-live-install-efi = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-initramfs-live-install-efi-testfs = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-initramfs-live-install-testfs = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-initscripts = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-inputproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -254,8 +301,8 @@ RECIPE_MAINTAINER_pn-irda-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-iso-codes = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-iw = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libjpeg-turbo = "Maxin B. John <maxin.john@intel.com>"
-RECIPE_MAINTAINER_pn-json-c = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-json-glib = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-json-c = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-json-glib = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-kbd = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-kbproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-kconfig-frontends = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -265,10 +312,11 @@ RECIPE_MAINTAINER_pn-kernel-devsrc = "Bruce Ashfield <bruce.ashfield@windriver.c
RECIPE_MAINTAINER_pn-kexec-tools = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-keymaps = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-kmod = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-kmod-native = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-l3afpad = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-lame = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-latencytop = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-ldconfig-native = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-leafpad = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-less = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-liba52 = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libacpi = "Maxin B. John <maxin.john@intel.com>"
@@ -280,34 +328,38 @@ RECIPE_MAINTAINER_pn-libatomic-ops = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libav = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libbsd = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libcap = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-libcap-ng = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libcgroup = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libcheck = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-libclass-isa-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libclass-isa-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libconvert-asn1-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libcroco = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libdaemon = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libdmx = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libdrm = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-libdumpvalue-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libenv-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libdumpvalue-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libenv-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libepoxy = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-liberation-fonts = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-liberror-perl = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libevdev = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libevent = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libexif = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libfakekey = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libffi = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-libfile-checktree-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libfile-checktree-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libfm = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libfm-extra = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libfontenc = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libgcc = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-libgcc-initial = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-libgcrypt = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libgfortran = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-libglade = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libglu = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-libgpg-error = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-libi18n-collate-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libgpg-error = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-libgudev = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-libi18n-collate-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libical = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libice = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libiconv = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -316,7 +368,6 @@ RECIPE_MAINTAINER_pn-libidn = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libinput = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libjson = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-libmad = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libmatchbox = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libmpc = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -335,33 +386,37 @@ RECIPE_MAINTAINER_pn-libpcre = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libpfm4 = "Matthew McClintock <msm@freescale.com>"
RECIPE_MAINTAINER_pn-libpng = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpng12 = "Maxin B. John <maxin.john@intel.com>"
-RECIPE_MAINTAINER_pn-libpod-plainer-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libpod-plainer-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libproxy = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-librsvg = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-libsdl = "Kai Kang <kai.kang@windriver.com>"
-RECIPE_MAINTAINER_pn-libsdl2 = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-libsdl = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-libsdl2 = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libsm = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libsndfile1 = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-libsolv = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libsoup-2.4 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libtasn1 = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libtheora = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-libtimedate-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libtimedate-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libtirpc = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-libtool = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-libtool-cross = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-libtool-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libunistring = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-liburcu = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-liburi-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libusb-compat = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libusb1 = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-liburi-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libusb-compat = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libusb1 = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
RECIPE_MAINTAINER_pn-libuser = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libvorbis = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libwnck3 = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-libx11 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-libx11-diet = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-libx11-diet = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxau = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxcalibrate = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxcb = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -377,11 +432,12 @@ RECIPE_MAINTAINER_pn-libxi = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxinerama = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxkbcommon = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxkbfile = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-libxml-namespacesupport-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libxml-parser-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libxml-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libxml-sax-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-libxml-simple-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-namespacesupport-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-parser-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-sax-base-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-sax-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-libxml-simple-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-libxml2 = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-libxmu = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-libxpm = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -408,14 +464,14 @@ RECIPE_MAINTAINER_pn-linux-yocto = "Bruce Ashfield <bruce.ashfield@windriver.com
RECIPE_MAINTAINER_pn-linux-yocto-dev = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-linux-yocto-rt = "Bruce Ashfield <bruce.ashfield@windriver.com>"
RECIPE_MAINTAINER_pn-linux-yocto-tiny = "Bruce Ashfield <bruce.ashfield@windriver.com>"
-RECIPE_MAINTAINER_pn-linuxdoc-tools-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-linuxdoc-tools-native = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-logrotate = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-lrzsz = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-lsb = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-lsbinitscripts = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-lsbtest = "Yi Zhao <yi.zhao@windriver.com>"
+RECIPE_MAINTAINER_pn-lsbtest = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-lsof = "Maxin B. John <maxin.john@intel.com>"
-RECIPE_MAINTAINER_pn-ltp = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-ltp = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-lttng-modules = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-lttng-tools = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-lttng-ust = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -423,7 +479,8 @@ RECIPE_MAINTAINER_pn-lz4 = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-lzo = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-lzop = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-m4 = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-mailx = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-m4-native = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-mailx = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-make = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-makedepend = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-makedevs = "Chen Qi <Qi.Chen@windriver.com>"
@@ -445,9 +502,13 @@ RECIPE_MAINTAINER_pn-menu-cache = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mesa = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mesa-demos = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mesa-gl = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-meta-environment = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-meta-environment-extsdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-meta-extsdk-toolchain = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-meta-ide-support = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-meta-toolchain = "Cristian Iorga <cristian.iorga@intel.com>"
-RECIPE_MAINTAINER_pn-mingetty = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-meta-world-pkgdata = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-mingetty = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mini-x-session = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-minicom = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-mkelfimage = "Alexander Kanavin <alexander.kanavin@intel.com>"
@@ -455,17 +516,24 @@ RECIPE_MAINTAINER_pn-mkfontdir = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mkfontscale = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mklibs-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mktemp = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-mmc-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-mobile-broadband-provider-info = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-modutils-initscripts = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-mpeg2dec = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-mpfr = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-mpg123 = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-msmtp = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-mtd-utils = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-mtdev = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-mtools = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-musl = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-mx-1.0 = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-nasm = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-nativesdk-buildtools-perl-dummy = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-nativesdk-libtool = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-nativesdk-packagegroup-sdk-host = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-nativesdk-qemu-helper = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-nativesdk-postinst-intercept = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-ncurses = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-neard = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-neon = "Maxin B. John <maxin.john@intel.com>"
@@ -473,24 +541,24 @@ RECIPE_MAINTAINER_pn-net-tools = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-netbase = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-nettle = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-nfs-export-root = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-nfs-utils = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-nfs-utils = "Mariano Lopez <mariano.lopez@linux.intel.com>"
RECIPE_MAINTAINER_pn-npth = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-nspr = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-nss = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-nss-myhostname = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-ofono = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-oh-puzzles = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-openjade-native = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-opensp = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-openssh = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-openjade-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-opensp = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-openssh = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-opkg = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-arch-config = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-keyrings = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-opkg-utils = "Alejandro del Castillo <alejandro.delcastillo@ni.com>"
RECIPE_MAINTAINER_pn-oprofile = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-oprofileui = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-oprofileui-server = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-orc = "Maxin B. John <maxin.john@intel.com>"
+RECIPE_MAINTAINER_pn-os-release = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-ossp-uuid = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-p11-kit = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-package-index = "Ross Burton <ross.burton@intel.com>"
@@ -500,6 +568,7 @@ RECIPE_MAINTAINER_pn-packagegroup-core-buildessential = "Ross Burton <ross.burto
RECIPE_MAINTAINER_pn-packagegroup-core-clutter = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-device-devel = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-directfb = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-packagegroup-core-eclipse-debug = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-full-cmdline = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-lsb = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-nfs = "Ross Burton <ross.burton@intel.com>"
@@ -514,27 +583,32 @@ RECIPE_MAINTAINER_pn-packagegroup-core-x11 = "Ross Burton <ross.burton@intel.com
RECIPE_MAINTAINER_pn-packagegroup-core-x11-base = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-x11-sato = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-core-x11-xserver = "Ross Burton <ross.burton@intel.com>"
+RECIPE_MAINTAINER_pn-packagegroup-cross-canadian = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-packagegroup-self-hosted = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-pango = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-parted = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-patch = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-patchelf = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-pax = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-pax-utils = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-pbzip2 = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-pciutils = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-pcmanfm = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-pcmanfm = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-pcmciautils = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-perf = "Bruce Ashfield <bruce.ashfield@windriver.com>"
-RECIPE_MAINTAINER_pn-perl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-perl-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-piglit = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-perl = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-perl-native = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-piglit = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-pigz = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-pinentry = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-pixman = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-pixz = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-pkgconfig = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-pm-utils = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-pointercal = "Alexander Kanavin <alexander.kanavin@intel.com>"
+RECIPE_MAINTAINER_pn-pointercal-xinput = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-pong-clock = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-popt = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-popt = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-portmap = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-powertop = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-ppp = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -544,42 +618,55 @@ RECIPE_MAINTAINER_pn-presentproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-procps = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-pseudo = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-psmisc = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-psplash = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-psplash = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-ptest-runner = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-pulseaudio = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-puzzles = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-python = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
RECIPE_MAINTAINER_pn-python-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-async = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-dbus = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-distribute = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-docutils = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-git = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-gitdb = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-imaging = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-mako = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-async = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-distribute = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-git = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-gitdb = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-imaging = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-mako = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-nose = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-numpy = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pexpect = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pycairo = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pycurl = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pygobject = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pygtk = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-pyrex = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-scons = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-scons-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-setuptools = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-smartpm = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python-smmap = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-nose = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-numpy = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-pexpect = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-ptyprocess = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-pycairo = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-pycurl = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-pygtk = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-pyrex = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-scons = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-scons-native = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-setuptools = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-six = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-smartpm = "Jose Lamego <jose.a.lamego@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python-smmap = "Jose Lamego <jose.a.lamego@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3 = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-distribute = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-async = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-dbus = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-distribute = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-docutils = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-git = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-gitdb = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-mako = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-native = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-pip = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
-RECIPE_MAINTAINER_pn-python3-setuptools = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-nose = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-numpy = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-pip = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-pygobject = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-setuptools = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-six = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-smmap = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-qemu = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-qemu-helper-native = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
+RECIPE_MAINTAINER_pn-qemuwrapper-cross = "AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>"
RECIPE_MAINTAINER_pn-quilt = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-quilt-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-quota = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-randrproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-readline = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -590,11 +677,12 @@ RECIPE_MAINTAINER_pn-resolvconf = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-resourceproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-rgb = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-rpcbind = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-rng-tools = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-rpm = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-rpmresolve = "Mark Hatle <mark.hatle@windriver.com>"
RECIPE_MAINTAINER_pn-rsync = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-rt-tests = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-ruby = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-ruby = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
RECIPE_MAINTAINER_pn-run-postinsts = "Cristian Iorga <cristian.iorga@intel.com>"
RECIPE_MAINTAINER_pn-rxvt-unicode = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-sato-icon-theme = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
@@ -603,16 +691,20 @@ RECIPE_MAINTAINER_pn-sbc = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-screen = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-scrnsaverproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-sed = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-serf = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-setserial = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-settings-daemon = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-sgml-common = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-sgmlspl = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-sgml-common = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-sgml-common-native = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-sgmlspl = "Dengke Du <dengke.du@windriver.com>"
+RECIPE_MAINTAINER_pn-sgmlspl-native = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-shadow = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-shadow-securetty = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-shadow-sysroot = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-shared-mime-info = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-shutdown-desktop = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-slang = "Kai Kang <kai.kang@windriver.com>"
+RECIPE_MAINTAINER_pn-signing-keys = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-slang = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-socat = "Hongxu Jia <hongxu.jia@windriver.com>"
RECIPE_MAINTAINER_pn-speex = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-speexdsp = "Tanu Kaskinen <tanuk@iki.fi>"
@@ -621,16 +713,19 @@ RECIPE_MAINTAINER_pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-startup-notification = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-stat = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-strace = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-stress = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-subversion = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-sudo = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-swabber-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-swig = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-swig = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-sysfsutils = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-sysklogd = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-syslinux = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-sysprof = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-sysstat = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-systemd-boot = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-systemd-bootchart = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-compat-units = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-serialgetty = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-systemd-systemctl-native = "Chen Qi <Qi.Chen@windriver.com>"
@@ -643,15 +738,17 @@ RECIPE_MAINTAINER_pn-tar = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-tcf-agent = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-tcl = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-tcp-wrappers = "Robert Yang <liezhi.yang@windriver.com>"
+RECIPE_MAINTAINER_pn-testexport-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-texi2html = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-texinfo = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-texinfo = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-texinfo-dummy-native = "Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>"
RECIPE_MAINTAINER_pn-tiff = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-time = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-tiny-init = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-trace-cmd = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-tremor = "Tanu Kaskinen <tanuk@iki.fi>"
RECIPE_MAINTAINER_pn-tslib = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
-RECIPE_MAINTAINER_pn-ttf-bitstream-vera = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-ttf-bitstream-vera = "Mariano Lopez <mariano.lopez@linux.intel.com>"
RECIPE_MAINTAINER_pn-tzcode-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-tzdata = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-u-boot = "Denys Dmytriyenko <denis@denix.org>"
@@ -659,28 +756,32 @@ RECIPE_MAINTAINER_pn-u-boot-fw-utils = "Denys Dmytriyenko <denis@denix.org>"
RECIPE_MAINTAINER_pn-u-boot-mkimage = "Denys Dmytriyenko <denis@denix.org>"
RECIPE_MAINTAINER_pn-ubootchart = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-uclibc = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-uclibc-initial = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-udev-extraconf = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-unfs3 = "Randy Witt <randy.e.witt@linux.intel.com>"
RECIPE_MAINTAINER_pn-unifdef = "Ross Burton <ross.burton@intel.com>"
-RECIPE_MAINTAINER_pn-unzip = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-uninative-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-unzip = "Edwin Plauchu <edwin.plauchu.camacho@linux.intel.com>"
RECIPE_MAINTAINER_pn-update-rc.d = "Ross Burton <ross.burton@intel.com>"
RECIPE_MAINTAINER_pn-usbinit = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-usbutils = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-util-linux = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-util-macros = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-v86d = "Alexander Kanavin <alexander.kanavin@intel.com>"
-RECIPE_MAINTAINER_pn-vala = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-vala = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-valgrind = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-videoproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
RECIPE_MAINTAINER_pn-vte = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-waffle = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-watchdog = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-wayland = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-wayland-protocols = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-webkitgtk = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-weston = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-weston-init = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-wget = "Robert Yang <liezhi.yang@windriver.com>"
-RECIPE_MAINTAINER_pn-which = "Alejandro Hernandez <alejandro.hernandez@linux.intel.com>"
+RECIPE_MAINTAINER_pn-which = "Mariano Lopez <mariano.lopez@linux.intel.com>"
RECIPE_MAINTAINER_pn-wireless-tools = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-wpa-supplicant = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-x11-common = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -702,6 +803,7 @@ RECIPE_MAINTAINER_pn-xextproto = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xeyes = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xf86-input-evdev = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xf86-input-keyboard = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-xf86-input-libinput = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xf86-input-mouse = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xf86-input-synaptics = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xf86-input-vmmouse = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
@@ -742,8 +844,7 @@ RECIPE_MAINTAINER_pn-xvideo-tests = "Maxin B. John <maxin.john@intel.com>"
RECIPE_MAINTAINER_pn-xvinfo = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xwininfo = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
RECIPE_MAINTAINER_pn-xz = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-yasm = "Jussi Kukkonen <jussi.kukkonen@intel.com>"
+RECIPE_MAINTAINER_pn-yasm = "Dengke Du <dengke.du@windriver.com>"
RECIPE_MAINTAINER_pn-zip = "Chen Qi <Qi.Chen@windriver.com>"
+RECIPE_MAINTAINER_pn-zisofs-tools-native = "Alexander Kanavin <alexander.kanavin@intel.com>"
RECIPE_MAINTAINER_pn-zlib = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-stress = "Maxin B. John <maxin.john@intel.com>"
-RECIPE_MAINTAINER_pn-mmc-utils = "Maxin B. John <maxin.john@intel.com>"
diff --git a/import-layers/yocto-poky/meta-poky/conf/distro/include/poky-floating-revisions.inc b/import-layers/yocto-poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
index e1abd3a1a..a3da043d9 100644
--- a/import-layers/yocto-poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
+++ b/import-layers/yocto-poky/meta-poky/conf/distro/include/poky-floating-revisions.inc
@@ -19,7 +19,6 @@ SRCREV_pn-matchbox-wm ?= "${AUTOREV}"
SRCREV_pn-settings-daemon ?= "${AUTOREV}"
SRCREV_pn-screenshot ?= "${AUTOREV}"
SRCREV_pn-libfakekey ?= "${AUTOREV}"
-SRCREV_pn-oprofileui ?= "${AUTOREV}"
SRCREV_pn-psplash ?= "${AUTOREV}"
SRCREV_pn-gtk-sato-engine ?= "${AUTOREV}"
SRCREV_pn-matchbox-theme-sato ?= "${AUTOREV}"
diff --git a/import-layers/yocto-poky/meta-poky/conf/distro/poky-tiny.conf b/import-layers/yocto-poky/meta-poky/conf/distro/poky-tiny.conf
index ac054201d..08bd49720 100644
--- a/import-layers/yocto-poky/meta-poky/conf/distro/poky-tiny.conf
+++ b/import-layers/yocto-poky/meta-poky/conf/distro/poky-tiny.conf
@@ -80,11 +80,13 @@ DISTRO_FEATURES_append_libc-musl = " largefile"
DISTRO_FEATURES_class-native = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"
DISTRO_FEATURES_class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"
-# Use tmpdevfs and the busybox runtime services
-VIRTUAL-RUNTIME_dev_manager = ""
-VIRTUAL-RUNTIME_login_manager = ""
-VIRTUAL-RUNTIME_init_manager = "tiny-init"
-VIRTUAL-RUNTIME_keymaps = ""
+# enable mdev/busybox for init
+VIRTUAL-RUNTIME_dev_manager = "busybox-mdev"
+VIRTUAL-RUNTIME_login_manager = "busybox"
+VIRTUAL-RUNTIME_init_manager = "busybox"
+VIRTUAL-RUNTIME_initscripts = "initscripts"
+VIRTUAL-RUNTIME_keymaps = "keymaps"
+DISTRO_FEATURES_BACKFILL_CONSIDERED += "sysvinit"
# FIXME: Consider adding "modules" to MACHINE_FEATURES and using that in
# packagegroup-core-base to select modutils-initscripts or not. Similar with "net" and
@@ -96,6 +98,8 @@ VIRTUAL-RUNTIME_keymaps = ""
# character support.
IMAGE_FSTYPES = "cpio.gz"
+QB_DEFAULT_FSTYPE = "${IMAGE_FSTYPES}"
+
# Drop v86d from qemu dependency list (we support serial)
# Drop grub from meta-intel BSPs
# FIXME: A different mechanism is needed here. We could define -tiny
diff --git a/import-layers/yocto-poky/meta-poky/conf/distro/poky.conf b/import-layers/yocto-poky/meta-poky/conf/distro/poky.conf
index 722bbf1c3..ddf030a86 100644
--- a/import-layers/yocto-poky/meta-poky/conf/distro/poky.conf
+++ b/import-layers/yocto-poky/meta-poky/conf/distro/poky.conf
@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
-DISTRO_VERSION = "2.1"
-DISTRO_CODENAME = "krogoth"
+DISTRO_VERSION = "2.2"
+DISTRO_CODENAME = "morty"
SDK_VENDOR = "-pokysdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
@@ -21,13 +21,13 @@ POKY_DEFAULT_EXTRA_RRECOMMENDS = "kernel-module-af-packet"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC} ${POKY_DEFAULT_DISTRO_FEATURES}"
-PREFERRED_VERSION_linux-yocto ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemux86 ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemuarm ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemumips ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemumips64 ?= "4.4%"
-PREFERRED_VERSION_linux-yocto_qemuppc ?= "4.4%"
+PREFERRED_VERSION_linux-yocto ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemux86 ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemuarm ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemumips ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemumips64 ?= "4.8%"
+PREFERRED_VERSION_linux-yocto_qemuppc ?= "4.8%"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
@@ -70,21 +70,22 @@ https://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n"
CONNECTIVITY_CHECK_URIS ?= "https://www.example.com/"
SANITY_TESTED_DISTROS ?= " \
- poky-1.7 \n \
poky-1.8 \n \
poky-2.0 \n \
+ poky-2.1 \n \
+ poky-2.2 \n \
Ubuntu-14.04 \n \
Ubuntu-14.10 \n \
Ubuntu-15.04 \n \
Ubuntu-15.10 \n \
- Fedora-21 \n \
+ Ubuntu-16.04 \n \
Fedora-22 \n \
Fedora-23 \n \
- CentOS-6.* \n \
- CentOS-7.* \n \
- Debian-7.* \n \
+ Fedora-24 \n \
+ CentOSLinux-7.* \n \
Debian-8.* \n \
- openSUSE-project-13.2 \n \
+ openSUSE-13.2 \n \
+ SUSELINUX-42.1 \n \
"
#
# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
diff --git a/import-layers/yocto-poky/meta-poky/conf/local.conf.sample b/import-layers/yocto-poky/meta-poky/conf/local.conf.sample
index a7b2d8065..365b6eb20 100644
--- a/import-layers/yocto-poky/meta-poky/conf/local.conf.sample
+++ b/import-layers/yocto-poky/meta-poky/conf/local.conf.sample
@@ -152,8 +152,7 @@ EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
# - 'image-swab' to perform host system intrusion detection
# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
-# image-prelink disabled for now due to issues with IFUNC symbol relocation
-USER_CLASSES ?= "buildstats image-mklibs"
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
#
# Runtime testing of images
diff --git a/import-layers/yocto-poky/meta-poky/conf/local.conf.sample.extended b/import-layers/yocto-poky/meta-poky/conf/local.conf.sample.extended
index aa7b42f82..d407ffb49 100644
--- a/import-layers/yocto-poky/meta-poky/conf/local.conf.sample.extended
+++ b/import-layers/yocto-poky/meta-poky/conf/local.conf.sample.extended
@@ -265,9 +265,6 @@
#COPYLEFT_RECIPE_TYPES = 'target'
#
-# Remove the old image before the new one generated to save disk space
-#RM_OLD_IMAGE = "1"
-
#
# GCC/LD FLAGS to enable more secure code generation
#
@@ -371,16 +368,6 @@
#IPK_HIERARCHICAL_FEED = "1"
#
-# Using RPM4
-#
-# Currently the rootfs_rpm code has a hard depends on rpmresolve:do_populate_sysroot,
-# when using rpm4 the rpmresolve code will not compile due to a missing header file.
-# That dependency needs to be removed when using RPM4, also the PREFERRED_VERSION needs
-# to be set. This example shows how to enable rpm4
-# PREFERRED_VERSION_rpm = "4.11.2"
-# PREFERRED_VERSION_rpm-native = "4.11.2"
-# RPMROOTFSDEPENDS_remove = "rpmresolve-native:do_populate_sysroot"
-
#
# Use busybox/mdev for system initialization
#
diff --git a/import-layers/yocto-poky/meta-poky/conf/toasterconf.json b/import-layers/yocto-poky/meta-poky/conf/toasterconf.json
index 606aac776..93fb9291f 100644
--- a/import-layers/yocto-poky/meta-poky/conf/toasterconf.json
+++ b/import-layers/yocto-poky/meta-poky/conf/toasterconf.json
@@ -40,13 +40,13 @@
"name": "OpenEmbedded",
"sourcetype": "layerindex",
"apiurl": "http://layers.openembedded.org/layerindex/api/",
- "branches": ["master", "jethro", "krogoth"]
+ "branches": ["master"]
},
{
"name": "Imported layers",
"sourcetype": "imported",
"apiurl": "",
- "branches": ["master", "jethro", "krogoth", "HEAD"]
+ "branches": ["master", "HEAD"]
}
],
@@ -58,18 +58,6 @@
"dirpath": "bitbake"
},
{
- "name": "jethro",
- "giturl": "remote:origin",
- "branch": "jethro",
- "dirpath": "bitbake"
- },
- {
- "name": "krogoth",
- "giturl": "remote:origin",
- "branch": "krogoth",
- "dirpath": "bitbake"
- },
- {
"name": "HEAD",
"giturl": "remote:origin",
"branch": "HEAD",
@@ -90,24 +78,6 @@
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/\">Yocto Project master branch</a>, where active development takes place. This is not a stable branch, so your builds might not work as expected."
},
{
- "name": "jethro",
- "description": "Yocto Project 2.0 Jethro",
- "bitbake": "jethro",
- "branch": "jethro",
- "defaultlayers": [ "openembedded-core", "meta-yocto", "meta-yocto-bsp"],
- "layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
- "helptext": "Toaster will run your builds with the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=jethro\">Yocto Project 2.0 \"Jethro\"</a> branch."
- },
- {
- "name": "krogoth",
- "description": "Yocto Project 2.1 Krogoth",
- "bitbake": "krogoth",
- "branch": "krogoth",
- "defaultlayers": [ "openembedded-core", "meta-poky", "meta-yocto-bsp"],
- "layersourcepriority": { "Imported layers": 99, "Local Yocto Project" : 10, "OpenEmbedded" : 0 },
- "helptext": "Toaster will run your builds with the tip of the <a href=\"http://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=krogoth\">Yocto Project 2.1 \"Krogoth\"</a> branch."
- },
- {
"name": "local",
"description": "Local Yocto Project",
"bitbake": "HEAD",
diff --git a/import-layers/yocto-poky/meta-selftest/lib/devtool/test.py b/import-layers/yocto-poky/meta-selftest/lib/devtool/test.py
index b7474b5ee..31190f58e 100644
--- a/import-layers/yocto-poky/meta-selftest/lib/devtool/test.py
+++ b/import-layers/yocto-poky/meta-selftest/lib/devtool/test.py
@@ -2,7 +2,7 @@ import argparse
def selftest_reverse(args, config, basepath, workspace):
"""Reverse the value passed to verify the plugin is executing."""
- print args.value[::-1]
+ print(args.value[::-1])
def register_commands(subparsers, context):
parser_build = subparsers.add_parser('selftest-reverse', help='Reverse value (for selftest)',
diff --git a/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.json b/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.json
new file mode 100644
index 000000000..e5ae46ecd
--- /dev/null
+++ b/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.json
@@ -0,0 +1,6 @@
+{
+ "test_install_package": {
+ "pkg": "socat",
+ "rm": true
+ }
+}
diff --git a/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.py b/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.py
new file mode 100644
index 000000000..a7e58ab3d
--- /dev/null
+++ b/import-layers/yocto-poky/meta-selftest/lib/oeqa/runtime/selftest.py
@@ -0,0 +1,55 @@
+import os
+
+from oeqa.oetest import oeRuntimeTest, skipModule
+from oeqa.utils.commands import runCmd
+from oeqa.utils.decorators import *
+
+class Selftest(oeRuntimeTest):
+
+ @skipUnlessPassed("test_ssh")
+ @tag("selftest_package_install")
+ def test_install_package(self):
+ """
+ Summary: Check basic package installation functionality.
+ Expected: 1. Before the test socat must be installed using scp.
+ 2. After the test socat must be unistalled using ssh.
+ This can't be checked in this test.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ (status, output) = self.target.run("socat -V")
+ self.assertEqual(status, 0, msg="socat is not installed")
+
+ @skipUnlessPassed("test_install_package")
+ @tag("selftest_package_install")
+ def test_verify_unistall(self):
+ """
+ Summary: Check basic package installation functionality.
+ Expected: 1. test_install_package must unistall socat.
+ This test is just to verify that.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ (status, output) = self.target.run("socat -V")
+ self.assertNotEqual(status, 0, msg="socat is still installed")
+
+ @tag("selftest_sdk")
+ def test_sdk(self):
+
+ result = runCmd("env -0")
+ sdk_path = search_sdk_path(result.output)
+ self.assertTrue(sdk_path, msg="Can't find SDK path")
+
+ tar_cmd = os.path.join(sdk_path, "tar")
+ result = runCmd("%s --help" % tar_cmd)
+
+def search_sdk_path(env):
+ for line in env.split("\0"):
+ (key, _, value) = line.partition("=")
+ if key == "PATH":
+ for path in value.split(":"):
+ if "pokysdk" in path:
+ return path
+ return ""
diff --git a/import-layers/yocto-poky/meta-selftest/recipes-test/images/wic-image-minimal.bb b/import-layers/yocto-poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
index a294ba7af..9e93b8e1a 100644
--- a/import-layers/yocto-poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
+++ b/import-layers/yocto-poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
@@ -5,9 +5,10 @@ SRC_URI = "file://${FILE_DIRNAME}/${BPN}.wks"
IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}"
IMAGE_FSTYPES = "wic"
-RM_OLD_IMAGE = "1"
-DEPENDS = "syslinux syslinux-native parted-native dosfstools-native mtools-native gptfdisk-native"
+DEPENDS = "syslinux syslinux-native dosfstools-native mtools-native gptfdisk-native"
+
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
# core-image-minimal is referenced in .wks, so we need its rootfs
# to be ready before our rootfs
diff --git a/import-layers/yocto-poky/meta-skeleton/recipes-skeleton/service/service_0.1.bb b/import-layers/yocto-poky/meta-skeleton/recipes-skeleton/service/service_0.1.bb
index c5cd7a97b..6416618dc 100644
--- a/import-layers/yocto-poky/meta-skeleton/recipes-skeleton/service/service_0.1.bb
+++ b/import-layers/yocto-poky/meta-skeleton/recipes-skeleton/service/service_0.1.bb
@@ -9,7 +9,7 @@ SRC_URI = "file://skeleton \
"
do_compile () {
- ${CC} ${WORKDIR}/skeleton_test.c -o ${WORKDIR}/skeleton-test
+ ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/skeleton_test.c -o ${WORKDIR}/skeleton-test
}
do_install () {
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/beaglebone.conf b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/beaglebone.conf
index 179d135a5..c487bd861 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/beaglebone.conf
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/beaglebone.conf
@@ -6,7 +6,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
XSERVER ?= "xserver-xorg \
xf86-input-evdev \
xf86-input-mouse \
- xf86-video-fbdev \
+ xf86-video-modesetting \
xf86-input-keyboard"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules kernel-devicetree"
@@ -16,13 +16,16 @@ EXTRA_IMAGEDEPENDS += "u-boot"
DEFAULTTUNE ?= "cortexa8hf-neon"
include conf/machine/include/tune-cortexa8.inc
-IMAGE_FSTYPES += "tar.bz2 jffs2"
+IMAGE_FSTYPES += "tar.bz2 jffs2 wic"
EXTRA_IMAGECMD_jffs2 = "-lnp "
+WKS_FILE = "sdimage-bootpart.wks"
+IMAGE_INSTALL_append = " kernel-devicetree kernel-image-zimage"
+do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
SERIAL_CONSOLE = "115200 ttyO0"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ?= "4.4%"
+PREFERRED_VERSION_linux-yocto ?= "4.8%"
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblack.dtb"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/edgerouter.conf b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/edgerouter.conf
index 6343dfc38..720a94708 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/edgerouter.conf
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/edgerouter.conf
@@ -11,12 +11,16 @@ KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
KERNEL_IMAGE_STRIP_EXTRA_SECTIONS = ".comment"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ?= "4.4%"
+PREFERRED_VERSION_linux-yocto ?= "4.8%"
SERIAL_CONSOLE = "115200 ttyS0"
USE_VT ?= "0"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
-IMAGE_FSTYPES ?= "jffs2 tar.bz2"
+IMAGE_FSTYPES ?= "jffs2 tar.bz2 wic"
JFFS2_ERASEBLOCK = "0x10000"
+
+WKS_FILE ?= "sdimage-bootpart.wks"
+IMAGE_BOOT_FILES ?= "vmlinux;vmlinux.64"
+do_image_wic[depends] += "mtools-native:do_populate_sysroot dosfstools-native:do_populate_sysroot"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86-64.conf b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86-64.conf
index f76e35af6..d843fd215 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86-64.conf
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86-64.conf
@@ -6,3 +6,7 @@
DEFAULTTUNE ?= "core2-64"
require conf/machine/include/tune-core2.inc
require conf/machine/include/genericx86-common.inc
+
+PREFERRED_VERSION_linux-yocto_genericx86-64 ?= "4.8%"
+
+SERIAL_CONSOLES_CHECK = "ttyS0"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86.conf b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86.conf
index 798b62ec2..04a7e0b6a 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -8,3 +8,5 @@ require conf/machine/include/tune-core2.inc
require conf/machine/include/genericx86-common.inc
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "gma500-gfx-check"
+
+PREFERRED_VERSION_linux-yocto_genericx86 ?= "4.8%"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
index 16b689de0..2e59a95b5 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/include/genericx86-common.inc
@@ -1,4 +1,5 @@
include conf/machine/include/x86-base.inc
+require conf/machine/include/qemuboot-x86.inc
MACHINE_FEATURES += "wifi efi pcbios"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
@@ -18,3 +19,8 @@ MACHINE_EXTRA_RRECOMMENDS += "linux-firmware eee-acpi-scripts"
GLIBC_ADDONS = "nptl"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"
+
+IMAGE_FSTYPES += "wic"
+WKS_FILE ?= "mkefidisk.wks"
+do_image_wic[depends] += "gptfdisk-native:do_populate_sysroot"
+do_image_wic[recrdeptask] += "do_bootimg"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf
index f3ad12d98..a2ff07c55 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf
+++ b/import-layers/yocto-poky/meta-yocto-bsp/conf/machine/mpc8315e-rdb.conf
@@ -14,7 +14,7 @@ SERIAL_CONSOLE = "115200 ttyS0"
MACHINE_FEATURES = "keyboard pci ext2 ext3 serial"
-PREFERRED_VERSION_linux-yocto ?= "4.4%"
+PREFERRED_VERSION_linux-yocto ?= "4.8%"
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
@@ -22,7 +22,6 @@ XSERVER ?= "xserver-xorg \
xf86-input-evdev \
xf86-video-fbdev"
-PREFERRED_VERSION_u-boot ?= "v2013.07%"
UBOOT_ENTRYPOINT = "0x00000000"
KERNEL_DEVICETREE = "mpc8315erdb.dtb"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py b/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
new file mode 100644
index 000000000..f7f74db7e
--- /dev/null
+++ b/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
@@ -0,0 +1,56 @@
+from oeqa.selftest.base import oeSelfTest
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
+from oeqa.utils.decorators import testcase
+import re
+import os
+import sys
+import logging
+
+
+class Systemdboot(oeSelfTest):
+
+ def _common_setup(self):
+ """
+ Common setup for test cases: 1445, XXXX
+ """
+
+ # Set EFI_PROVIDER = "gummiboot" and MACHINE = "genericx86-64" in conf/local.conf
+ features = 'EFI_PROVIDER = "systemd-boot"\n'
+ features += 'MACHINE = "genericx86-64"'
+ self.append_config(features)
+
+ def _common_build(self):
+ """
+ Common build for test cases: 1445 , XXXX
+ """
+
+ # Build a genericx86-64/efi gummiboot image
+ bitbake('mtools-native core-image-minimal')
+
+
+ @testcase(1445)
+ def test_efi_systemdboot_images_can_be_built(self):
+ """
+ Summary: Check if systemd-boot images can be built correctly
+ Expected: 1. File systemd-boot.efi should be available in $poky/build/tmp/deploy/images/genericx86-64
+ 2. 'systemd-boot" can be built correctly
+ Product: oe-core
+ Author: Jose Perez Carranza <jose.perez.carranza@intel.com>
+ AutomatedBy: Jose Perez Carranza <jose.perez.carranza@intel.com>
+ """
+
+ # We'd use DEPLOY_DIR_IMAGE here, except that we need its value for
+ # MACHINE="genericx86-64 which is probably not the one configured
+ systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', 'systemd-bootx64.efi')
+
+ self._common_setup()
+
+ # Ensure we're actually testing that this gets built and not that
+ # it was around from an earlier build
+ bitbake('-c cleansstate systemd-boot')
+ runCmd('rm -f %s' % systemdbootfile)
+
+ self._common_build()
+
+ found = os.path.isfile(systemdbootfile)
+ self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile)
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86-64/uClibc.machine b/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86-64/uClibc.machine
deleted file mode 100644
index 305dc64de..000000000
--- a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86-64/uClibc.machine
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Fri Nov 23 15:49:33 2007
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_ia64 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_vax is not set
-TARGET_x86_64=y
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="x86_64"
-FORCE_OPTIONS_FOR_ARCH=y
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-TARGET_SUBARCH=""
-
-#
-# Using ELF file format
-#
-ARCH_LITTLE_ENDIAN=y
-
-#
-# Using Little Endian
-#
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_HEADERS="/usr/include"
-HAVE_DOT_CONFIG=y
-
-UCLIBC_HAS_FENV=y
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine b/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine
deleted file mode 100644
index 5df15f94c..000000000
--- a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Fri Nov 23 15:49:33 2007
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_ia64 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_vax is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="i386"
-FORCE_OPTIONS_FOR_ARCH=y
-CONFIG_GENERIC_386=y
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-TARGET_SUBARCH=""
-
-#
-# Using ELF file format
-#
-ARCH_LITTLE_ENDIAN=y
-
-#
-# Using Little Endian
-#
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_HEADERS="/usr/include"
-HAVE_DOT_CONFIG=y
-
-UCLIBC_HAS_FENV=y
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc_git.bbappend b/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc_git.bbappend
deleted file mode 100644
index 72d991c7e..000000000
--- a/import-layers/yocto-poky/meta-yocto-bsp/recipes-core/uclibc/uclibc_git.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.1.bbappend b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.1.bbappend
index b20a18bfe..74b9c7c16 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.1.bbappend
+++ b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.1.bbappend
@@ -7,11 +7,11 @@ KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
-SRCREV_machine_genericx86 ?= "304caa9480f19875e717faf3cad8cb7ecd758733"
-SRCREV_machine_genericx86-64 ?= "304caa9480f19875e717faf3cad8cb7ecd758733"
-SRCREV_machine_edgerouter ?= "79a31b9d23db126f8a6be3eb88fd683056a213f1"
-SRCREV_machine_beaglebone ?= "efb6ffb2ca96a364f916c9890ad023fc595e0e6e"
-SRCREV_machine_mpc8315e-rdb ?= "79a31b9d23db126f8a6be3eb88fd683056a213f1"
+SRCREV_machine_genericx86 ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_genericx86-64 ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_edgerouter ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_beaglebone ?= "12532e753b50997690923e03edb3ac3368817a26"
+SRCREV_machine_mpc8315e-rdb ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
@@ -19,5 +19,8 @@ COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone = "beaglebone"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
-LINUX_VERSION_genericx86 = "4.1.18"
-LINUX_VERSION_genericx86-64 = "4.1.18"
+LINUX_VERSION_genericx86 = "4.1.33"
+LINUX_VERSION_genericx86-64 = "4.1.33"
+LINUX_VERSION_edgerouter = "4.1.33"
+LINUX_VERSION_beaglebone = "4.1.33"
+LINUX_VERSION_mpc8315e-rdb = "4.1.33"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.4.bbappend b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.4.bbappend
index e31b0c8f2..3f0c4dac1 100644
--- a/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.4.bbappend
+++ b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.4.bbappend
@@ -7,11 +7,11 @@ KBRANCH_edgerouter = "standard/edgerouter"
KBRANCH_beaglebone = "standard/beaglebone"
KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
-SRCREV_machine_genericx86 ?= "3d2455f9da30f923c6bd69014fad4cc4ea738be6"
-SRCREV_machine_genericx86-64 ?= "3d2455f9da30f923c6bd69014fad4cc4ea738be6"
-SRCREV_machine_edgerouter ?= "ff4c4ef15b51f45b9106d71bf1f62fe7c02e63c2"
-SRCREV_machine_beaglebone ?= "ff4c4ef15b51f45b9106d71bf1f62fe7c02e63c2"
-SRCREV_machine_mpc8315e-rdb ?= "df00877ef9387b38b9601c82db57de2a1b23ce53"
+SRCREV_machine_genericx86 ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_genericx86-64 ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_edgerouter ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_beaglebone ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_mpc8315e-rdb ?= "7fa42ad9a43ca4bb1e578e208ffeddae2d6150e2"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
@@ -19,5 +19,8 @@ COMPATIBLE_MACHINE_edgerouter = "edgerouter"
COMPATIBLE_MACHINE_beaglebone = "beaglebone"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
-LINUX_VERSION_genericx86 = "4.4.3"
-LINUX_VERSION_genericx86-64 = "4.4.3"
+LINUX_VERSION_genericx86 = "4.4.26"
+LINUX_VERSION_genericx86-64 = "4.4.26"
+LINUX_VERSION_edgerouter = "4.4.26"
+LINUX_VERSION_beaglebone = "4.4.26"
+LINUX_VERSION_mpc8315e-rdb = "4.4.26"
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..14fa38ba1
--- /dev/null
+++ b/import-layers/yocto-poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,26 @@
+KBRANCH_genericx86 = "standard/base"
+KBRANCH_genericx86-64 = "standard/base"
+
+KMACHINE_genericx86 ?= "common-pc"
+KMACHINE_genericx86-64 ?= "common-pc-64"
+KBRANCH_edgerouter = "standard/edgerouter"
+KBRANCH_beaglebone = "standard/beaglebone"
+KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
+
+SRCREV_machine_genericx86 ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_genericx86-64 ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_edgerouter ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_beaglebone ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_mpc8315e-rdb ?= "4be88b03f6648004e74b68044fa2b05e81cf9a1b"
+
+COMPATIBLE_MACHINE_genericx86 = "genericx86"
+COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"
+COMPATIBLE_MACHINE_edgerouter = "edgerouter"
+COMPATIBLE_MACHINE_beaglebone = "beaglebone"
+COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
+
+LINUX_VERSION_genericx86 = "4.8.3"
+LINUX_VERSION_genericx86-64 = "4.8.3"
+LINUX_VERSION_edgerouter = "4.8.3"
+LINUX_VERSION_beaglebone = "4.8.3"
+LINUX_VERSION_mpc8315e-rdb = "4.8.3"
diff --git a/import-layers/yocto-poky/meta/classes/allarch.bbclass b/import-layers/yocto-poky/meta/classes/allarch.bbclass
index 208cde6e5..ddc2a8505 100644
--- a/import-layers/yocto-poky/meta/classes/allarch.bbclass
+++ b/import-layers/yocto-poky/meta/classes/allarch.bbclass
@@ -17,6 +17,7 @@ python () {
# Set these to a common set of values, we shouldn't be using them other that for WORKDIR directory
# naming anyway
+ d.setVar("baselib", "lib")
d.setVar("TARGET_ARCH", "allarch")
d.setVar("TARGET_OS", "linux")
d.setVar("TARGET_CC_ARCH", "none")
@@ -41,6 +42,10 @@ python () {
d.setVar("EXCLUDE_FROM_SHLIBS", "1")
d.setVar("INHIBIT_PACKAGE_DEBUG_SPLIT", "1")
d.setVar("INHIBIT_PACKAGE_STRIP", "1")
+
+ # These multilib values shouldn't change allarch packages so exclude them
+ d.setVarFlag("emit_pkgdata", "vardepsexclude", "MULTILIB_VARIANTS")
+ d.setVarFlag("write_specfile", "vardepsexclude", "MULTILIBS")
elif bb.data.inherits_class('packagegroup', d) and not bb.data.inherits_class('nativesdk', d):
bb.error("Please ensure recipe %s sets PACKAGE_ARCH before inherit packagegroup" % d.getVar("FILE", True))
}
diff --git a/import-layers/yocto-poky/meta/classes/archiver.bbclass b/import-layers/yocto-poky/meta/classes/archiver.bbclass
index 2f3b278fb..9239983e8 100644
--- a/import-layers/yocto-poky/meta/classes/archiver.bbclass
+++ b/import-layers/yocto-poky/meta/classes/archiver.bbclass
@@ -132,7 +132,26 @@ python do_ar_original() {
ar_outdir = d.getVar('ARCHIVER_OUTDIR', True)
bb.note('Archiving the original source...')
- fetch = bb.fetch2.Fetch([], d)
+ urls = d.getVar("SRC_URI", True).split()
+ # destsuffix (git fetcher) and subdir (everything else) are allowed to be
+ # absolute paths (for example, destsuffix=${S}/foobar).
+ # That messes with unpacking inside our tmpdir below, because the fetchers
+ # will then unpack in that directory and completely ignore the tmpdir.
+ # That breaks parallel tasks relying on ${S}, like do_compile.
+ #
+ # To solve this, we remove these parameters from all URLs.
+ # We do this even for relative paths because it makes the content of the
+ # archives more useful (no extra paths that are only used during
+ # compilation).
+ for i, url in enumerate(urls):
+ decoded = bb.fetch2.decodeurl(url)
+ for param in ('destsuffix', 'subdir'):
+ if param in decoded[5]:
+ del decoded[5][param]
+ encoded = bb.fetch2.encodeurl(decoded)
+ urls[i] = encoded
+ fetch = bb.fetch2.Fetch(urls, d)
+ tarball_suffix = {}
for url in fetch.urls:
local = fetch.localpath(url).rstrip("/");
if os.path.isfile(local):
@@ -140,7 +159,21 @@ python do_ar_original() {
elif os.path.isdir(local):
tmpdir = tempfile.mkdtemp(dir=d.getVar('ARCHIVER_WORKDIR', True))
fetch.unpack(tmpdir, (url,))
- create_tarball(d, tmpdir + '/.', '', ar_outdir)
+ # To handle recipes with more than one source, we add the "name"
+ # URL parameter as suffix. We treat it as an error when
+ # there's more than one URL without a name, or a name gets reused.
+ # This is an additional safety net, in practice the name has
+ # to be set when using the git fetcher, otherwise SRCREV cannot
+ # be set separately for each URL.
+ params = bb.fetch2.decodeurl(url)[5]
+ name = params.get('name', '')
+ if name in tarball_suffix:
+ if not name:
+ bb.fatal("Cannot determine archive names for original source because 'name' URL parameter is unset in more than one URL. Add it to at least one of these: %s %s" % (tarball_suffix[name], url))
+ else:
+ bb.fatal("Cannot determine archive names for original source because 'name=' URL parameter '%s' is used twice. Make it unique in: %s %s" % (tarball_suffix[name], url))
+ tarball_suffix[name] = url
+ create_tarball(d, tmpdir + '/.', name, ar_outdir)
# Emit patch series files for 'original'
bb.note('Writing patch series files...')
@@ -270,9 +303,10 @@ python do_unpack_and_patch() {
return
ar_outdir = d.getVar('ARCHIVER_OUTDIR', True)
ar_workdir = d.getVar('ARCHIVER_WORKDIR', True)
+ pn = d.getVar('PN', True)
# The kernel class functions require it to be on work-shared, so we dont change WORKDIR
- if not bb.data.inherits_class('kernel-yocto', d):
+ if not (bb.data.inherits_class('kernel-yocto', d) or pn.startswith('gcc-source')):
# Change the WORKDIR to make do_unpack do_patch run in another dir.
d.setVar('WORKDIR', ar_workdir)
@@ -290,7 +324,7 @@ python do_unpack_and_patch() {
oe.path.copytree(src, src_orig)
# Make sure gcc and kernel sources are patched only once
- if not ((d.getVar('SRC_URI', True) == "" or bb.data.inherits_class('kernel-yocto', d))):
+ if not (d.getVar('SRC_URI', True) == "" or (bb.data.inherits_class('kernel-yocto', d) or pn.startswith('gcc-source'))):
bb.build.exec_func('do_patch', d)
# Create the patches
diff --git a/import-layers/yocto-poky/meta/classes/autotools.bbclass b/import-layers/yocto-poky/meta/classes/autotools.bbclass
index 6649f5df7..c43ea9a7e 100644
--- a/import-layers/yocto-poky/meta/classes/autotools.bbclass
+++ b/import-layers/yocto-poky/meta/classes/autotools.bbclass
@@ -19,15 +19,13 @@ def autotools_dep_prepend(d):
return deps + 'gnu-config-native '
-EXTRA_OEMAKE = ""
-
DEPENDS_prepend = "${@autotools_dep_prepend(d)} "
inherit siteinfo
# Space separated list of shell scripts with variables defined to supply test
# results for autoconf tests we cannot run at build time.
-export CONFIG_SITE = "${@siteinfo_get_files(d, False)}"
+export CONFIG_SITE = "${@siteinfo_get_files(d)}"
acpaths = "default"
EXTRA_AUTORECONF = "--exclude=autopoint"
@@ -77,6 +75,8 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \
${@append_libtool_sysroot(d)}"
CONFIGUREOPT_DEPTRACK ?= "--disable-dependency-tracking"
+CACHED_CONFIGUREVARS ?= ""
+
AUTOTOOLS_SCRIPT_PATH ?= "${S}"
CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure"
@@ -85,7 +85,7 @@ AUTOTOOLS_AUXDIR ?= "${AUTOTOOLS_SCRIPT_PATH}"
oe_runconf () {
# Use relative path to avoid buildpaths in files
cfgscript_name="`basename ${CONFIGURE_SCRIPT}`"
- cfgscript=`python -c "import os; print os.path.relpath(os.path.dirname('${CONFIGURE_SCRIPT}'), '.')"`/$cfgscript_name
+ cfgscript=`python3 -c "import os; print(os.path.relpath(os.path.dirname('${CONFIGURE_SCRIPT}'), '.'))"`/$cfgscript_name
if [ -x "$cfgscript" ] ; then
bbnote "Running $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
if ! ${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"; then
@@ -129,12 +129,16 @@ autotools_postconfigure(){
EXTRACONFFUNCS ??= ""
+EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}"
+
do_configure[prefuncs] += "autotools_preconfigure autotools_copy_aclocals ${EXTRACONFFUNCS}"
do_configure[postfuncs] += "autotools_postconfigure"
-ACLOCALDIR = "${B}/aclocal-copy"
+ACLOCALDIR = "${WORKDIR}/aclocal-copy"
python autotools_copy_aclocals () {
+ import copy
+
s = d.getVar("AUTOTOOLS_SCRIPT_PATH", True)
if not os.path.exists(s + "/configure.in") and not os.path.exists(s + "/configure.ac"):
if not d.getVar("AUTOTOOLS_COPYACLOCAL", False):
@@ -163,36 +167,63 @@ python autotools_copy_aclocals () {
if start is None:
bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")
- # We need to find configure tasks which are either from <target> -> <target>
- # or <native> -> <native> but not <target> -> <native> unless they're direct
- # dependencies. This mirrors what would get restored from sstate.
- done = [start]
- next = [start]
+ # We need to figure out which m4 files we need to expose to this do_configure task.
+ # This needs to match what would get restored from sstate, which is controlled
+ # ultimately by calls from bitbake to setscene_depvalid().
+ # That function expects a setscene dependency tree. We build a dependency tree
+ # condensed to do_populate_sysroot -> do_populate_sysroot dependencies, similar to
+ # that used by setscene tasks. We can then call into setscene_depvalid() and decide
+ # which dependencies we can "see" and should expose the m4 files for.
+ setscenedeps = copy.deepcopy(taskdepdata)
+
+ start = set([start])
+
+ # Create collapsed do_populate_sysroot -> do_populate_sysroot tree
+ for dep in taskdepdata:
+ data = setscenedeps[dep]
+ if data[1] != "do_populate_sysroot":
+ for dep2 in setscenedeps:
+ data2 = setscenedeps[dep2]
+ if dep in data2[3]:
+ data2[3].update(setscenedeps[dep][3])
+ data2[3].remove(dep)
+ if dep in start:
+ start.update(setscenedeps[dep][3])
+ start.remove(dep)
+ del setscenedeps[dep]
+
+ # Remove circular references
+ for dep in setscenedeps:
+ if dep in setscenedeps[dep][3]:
+ setscenedeps[dep][3].remove(dep)
+
+ # Direct dependencies should be present and can be depended upon
+ for dep in start:
+ configuredeps.append(setscenedeps[dep][0])
+
+ # Call into setscene_depvalid for each sub-dependency and only copy m4 files
+ # for ones that would be restored from sstate.
+ done = list(start)
+ next = list(start)
while next:
new = []
for dep in next:
- data = taskdepdata[dep]
+ data = setscenedeps[dep]
for datadep in data[3]:
if datadep in done:
continue
- if (not data[0].endswith("-native")) and taskdepdata[datadep][0].endswith("-native") and dep != start:
+ taskdeps = {}
+ taskdeps[dep] = setscenedeps[dep][:2]
+ taskdeps[datadep] = setscenedeps[datadep][:2]
+ retval = setscene_depvalid(datadep, taskdeps, [], d)
+ if retval:
+ bb.note("Skipping setscene dependency %s for m4 macro copying" % datadep)
continue
done.append(datadep)
new.append(datadep)
- if taskdepdata[datadep][1] == "do_configure":
- configuredeps.append(taskdepdata[datadep][0])
+ configuredeps.append(setscenedeps[datadep][0])
next = new
- #configuredeps2 = []
- #for dep in taskdepdata:
- # data = taskdepdata[dep]
- # if data[1] == "do_configure" and data[0] != pn:
- # configuredeps2.append(data[0])
- #configuredeps.sort()
- #configuredeps2.sort()
- #bb.warn(str(configuredeps))
- #bb.warn(str(configuredeps2))
-
cp = []
if nodeps:
bb.warn("autotools: Unable to find task dependencies, -b being used? Pulling in all m4 files")
@@ -222,11 +253,14 @@ python autotools_copy_aclocals () {
t = os.path.join(aclocaldir, os.path.basename(c))
if not os.path.exists(t):
os.symlink(c, t)
-
- d.setVar("CONFIG_SITE", siteinfo_get_files(d, False))
+
+ # Refresh variable with cache files
+ d.setVar("CONFIG_SITE", siteinfo_get_files(d, aclocalcache=True))
}
autotools_copy_aclocals[vardepsexclude] += "MACHINE SDK_ARCH BUILD_ARCH SDK_OS BB_TASKDEPDATA"
+CONFIGURE_FILES = "${S}/configure.in ${S}/configure.ac ${S}/config.h.in ${S}/acinclude.m4 Makefile.am"
+
autotools_do_configure() {
# WARNING: gross hack follows:
# An autotools built package generally needs these scripts, however only
@@ -236,6 +270,9 @@ autotools_do_configure() {
# for a package whose autotools are old, on an x86_64 machine, which the old
# config.sub does not support. Work around this by installing them manually
# regardless.
+
+ PRUNE_M4=""
+
for ac in `find ${S} -ignore_readdir_race -name configure.in -o -name configure.ac`; do
rm -f `dirname $ac`/configure
done
@@ -246,7 +283,7 @@ autotools_do_configure() {
if [ x"${acpaths}" = xdefault ]; then
acpaths=
for i in `find ${AUTOTOOLS_SCRIPT_PATH} -ignore_readdir_race -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
- grep -v 'acinclude.m4' | grep -v 'aclocal-copy' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
+ grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
acpaths="$acpaths -I $i"
done
else
@@ -285,17 +322,22 @@ autotools_do_configure() {
cp ${STAGING_DATADIR_NATIVE}/gettext/po/remove-potcdate.sin ${S}/po/
fi
fi
- for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do
- for j in `find ${S} -ignore_readdir_race -name $i | grep -v aclocal-copy`; do
- rm $j
- done
- done
+ PRUNE_M4="$PRUNE_M4 gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4"
fi
mkdir -p m4
if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+ if ! echo "${DEPENDS}" | grep -q intltool-native; then
+ bbwarn "Missing DEPENDS on intltool-native"
+ fi
+ PRUNE_M4="$PRUNE_M4 intltool.m4"
bbnote Executing intltoolize --copy --force --automake
intltoolize --copy --force --automake
fi
+
+ for i in $PRUNE_M4; do
+ find ${S} -ignore_readdir_race -name $i -delete
+ done
+
bbnote Executing ACLOCAL=\"$ACLOCAL\" autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || die "autoreconf execution failed."
cd $olddir
@@ -307,6 +349,10 @@ autotools_do_configure() {
fi
}
+autotools_do_compile() {
+ oe_runmake
+}
+
autotools_do_install() {
oe_runmake 'DESTDIR=${D}' install
# Info dir listing isn't interesting at this point so remove it if it exists.
@@ -317,6 +363,6 @@ autotools_do_install() {
inherit siteconfig
-EXPORT_FUNCTIONS do_configure do_install
+EXPORT_FUNCTIONS do_configure do_compile do_install
B = "${WORKDIR}/build"
diff --git a/import-layers/yocto-poky/meta/classes/base.bbclass b/import-layers/yocto-poky/meta/classes/base.bbclass
index a7ca3a667..024fe4331 100644
--- a/import-layers/yocto-poky/meta/classes/base.bbclass
+++ b/import-layers/yocto-poky/meta/classes/base.bbclass
@@ -10,7 +10,7 @@ inherit utility-tasks
inherit metadata_scm
inherit logging
-OE_IMPORTS += "os sys time oe.path oe.utils oe.data oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath"
+OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath"
OE_IMPORTS[type] = "list"
def oe_import(d):
@@ -105,12 +105,15 @@ def get_lic_checksum_file_list(d):
# any others should be covered by SRC_URI.
try:
path = bb.fetch.decodeurl(url)[2]
+ if not path:
+ raise bb.fetch.MalformedUrl(url)
+
if path[0] == '/':
if path.startswith(tmpdir):
continue
filelist.append(path + ":" + str(os.path.exists(path)))
except bb.fetch.MalformedUrl:
- raise bb.build.FuncFailed(d.getVar('PN', True) + ": LIC_FILES_CHKSUM contains an invalid URL: " + url)
+ bb.fatal(d.getVar('PN', True) + ": LIC_FILES_CHKSUM contains an invalid URL: " + url)
return " ".join(filelist)
addtask fetch
@@ -128,30 +131,28 @@ python base_do_fetch() {
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.download()
except bb.fetch2.BBFetchException as e:
- raise bb.build.FuncFailed(e)
+ bb.fatal(str(e))
}
addtask unpack after do_fetch
do_unpack[dirs] = "${WORKDIR}"
+
+python () {
+ if d.getVar('S', True) != d.getVar('WORKDIR', True):
+ d.setVarFlag('do_unpack', 'cleandirs', '${S}')
+ else:
+ d.setVarFlag('do_unpack', 'cleandirs', os.path.join('${S}', 'patches'))
+}
python base_do_unpack() {
src_uri = (d.getVar('SRC_URI', True) or "").split()
if len(src_uri) == 0:
return
- rootdir = d.getVar('WORKDIR', True)
-
- # Ensure that we cleanup ${S}/patches
- # TODO: Investigate if we can remove
- # the entire ${S} in this case.
- s_dir = d.getVar('S', True)
- p_dir = os.path.join(s_dir, 'patches')
- bb.utils.remove(p_dir, True)
-
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
- fetcher.unpack(rootdir)
+ fetcher.unpack(d.getVar('WORKDIR', True))
except bb.fetch2.BBFetchException as e:
- raise bb.build.FuncFailed(e)
+ bb.fatal(str(e))
}
def pkgarch_mapping(d):
@@ -308,7 +309,7 @@ base_do_compile() {
}
addtask install after do_compile
-do_install[dirs] = "${D} ${B}"
+do_install[dirs] = "${B}"
# Remove and re-create ${D} so that is it guaranteed to be empty
do_install[cleandirs] = "${D}"
@@ -430,12 +431,6 @@ python () {
appendVar('RDEPENDS_${PN}', extrardeps)
appendVar('PACKAGECONFIG_CONFARGS', extraconf)
- # TODO: once all recipes/classes abusing EXTRA_OECONF
- # to get PACKAGECONFIG options are fixed to use PACKAGECONFIG_CONFARGS
- # move this appendVar to autotools.bbclass.
- if not bb.data.inherits_class('cmake', d):
- appendVar('EXTRA_OECONF', extraconf)
-
pn = d.getVar('PN', True)
license = d.getVar('LICENSE', True)
if license == "INVALID":
@@ -477,7 +472,7 @@ python () {
else:
raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE', True))
- source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', 0)
+ source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False)
if not source_mirror_fetch:
need_host = d.getVar('COMPATIBLE_HOST', True)
if need_host:
@@ -490,7 +485,7 @@ python () {
check_license = False if pn.startswith("nativesdk-") else True
for t in ["-native", "-cross-${TARGET_ARCH}", "-cross-initial-${TARGET_ARCH}",
- "-crosssdk-${SDK_ARCH}", "-crosssdk-initial-${SDK_ARCH}",
+ "-crosssdk-${SDK_SYS}", "-crosssdk-initial-${SDK_SYS}",
"-cross-canadian-${TRANSLATED_TARGET_ARCH}"]:
if pn.endswith(d.expand(t)):
check_license = False
@@ -542,6 +537,19 @@ python () {
if pn in incompatwl:
bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted")
+ # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a
+ # superset of all per-package licenses. We do not do advanced (pattern)
+ # matching of license expressions - just check that all license strings
+ # in LICENSE_<pkg> are found in LICENSE.
+ license_set = oe.license.list_licenses(license)
+ for pkg in d.getVar('PACKAGES', True).split():
+ pkg_license = d.getVar('LICENSE_' + pkg, True)
+ if pkg_license:
+ unlisted = oe.license.list_licenses(pkg_license) - license_set
+ if unlisted:
+ bb.warn("LICENSE_%s includes licenses (%s) that are not "
+ "listed in LICENSE" % (pkg, ' '.join(unlisted)))
+
needsrcrev = False
srcuri = d.getVar('SRC_URI', True)
for uri in srcuri.split():
@@ -566,6 +574,10 @@ python () {
needsrcrev = True
d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot')
+ # Perforce packages support SRCREV = "${AUTOREV}"
+ elif scheme == "p4":
+ needsrcrev = True
+
# OSC packages should DEPEND on osc-native
elif scheme == "osc":
d.appendVarFlag('do_fetch', 'depends', ' osc-native:do_populate_sysroot')
@@ -658,8 +670,8 @@ python do_cleanall() {
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.clean()
- except bb.fetch2.BBFetchException, e:
- raise bb.build.FuncFailed(e)
+ except bb.fetch2.BBFetchException as e:
+ bb.fatal(str(e))
}
do_cleanall[nostamp] = "1"
diff --git a/import-layers/yocto-poky/meta/classes/bash-completion.bbclass b/import-layers/yocto-poky/meta/classes/bash-completion.bbclass
index 74a878edf..80ee9b487 100644
--- a/import-layers/yocto-poky/meta/classes/bash-completion.bbclass
+++ b/import-layers/yocto-poky/meta/classes/bash-completion.bbclass
@@ -1,3 +1,5 @@
+DEPENDS_append_class-target = " bash-completion"
+
PACKAGES += "${PN}-bash-completion"
FILES_${PN}-bash-completion = "${datadir}/bash-completion ${sysconfdir}/bash_completion.d"
diff --git a/import-layers/yocto-poky/meta/classes/buildhistory.bbclass b/import-layers/yocto-poky/meta/classes/buildhistory.bbclass
index 581d53269..3a5bc2c3e 100644
--- a/import-layers/yocto-poky/meta/classes/buildhistory.bbclass
+++ b/import-layers/yocto-poky/meta/classes/buildhistory.bbclass
@@ -57,6 +57,9 @@ SSTATEPOSTINSTFUNCS[vardepvalueexclude] .= "| buildhistory_emit_pkghistory"
# class.
BUILDHISTORY_PRESERVE = "latest latest_srcrev"
+PATCH_GIT_USER_EMAIL ?= "buildhistory@oe"
+PATCH_GIT_USER_NAME ?= "OpenEmbedded"
+
#
# Write out metadata about this package for comparison when writing future packages
#
@@ -145,7 +148,7 @@ python buildhistory_emit_pkghistory() {
elif name == "RCONFLICTS":
pkginfo.rconflicts = value
elif name == "PKGSIZE":
- pkginfo.size = long(value)
+ pkginfo.size = int(value)
elif name == "FILES":
pkginfo.files = value
elif name == "FILELIST":
@@ -233,7 +236,7 @@ python buildhistory_emit_pkghistory() {
key = item[0]
if key.endswith('_' + pkg):
key = key[:-len(pkg)-1]
- pkgdata[key] = item[1].decode('utf-8').decode('string_escape')
+ pkgdata[key] = item[1]
pkge = pkgdata.get('PKGE', '0')
pkgv = pkgdata['PKGV']
@@ -274,7 +277,7 @@ python buildhistory_emit_pkghistory() {
# Gather information about packaged files
val = pkgdata.get('FILES_INFO', '')
dictval = json.loads(val)
- filelist = dictval.keys()
+ filelist = list(dictval.keys())
filelist.sort()
pkginfo.filelist = " ".join(filelist)
@@ -288,14 +291,12 @@ python buildhistory_emit_pkghistory() {
def write_recipehistory(rcpinfo, d):
- import codecs
-
bb.debug(2, "Writing recipe history")
pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE', True)
infofile = os.path.join(pkghistdir, "latest")
- with codecs.open(infofile, "w", encoding='utf8') as f:
+ with open(infofile, "w") as f:
if rcpinfo.pe != "0":
f.write(u"PE = %s\n" % rcpinfo.pe)
f.write(u"PV = %s\n" % rcpinfo.pv)
@@ -305,8 +306,6 @@ def write_recipehistory(rcpinfo, d):
def write_pkghistory(pkginfo, d):
- import codecs
-
bb.debug(2, "Writing package history for package %s" % pkginfo.name)
pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE', True)
@@ -316,22 +315,20 @@ def write_pkghistory(pkginfo, d):
bb.utils.mkdirhier(pkgpath)
infofile = os.path.join(pkgpath, "latest")
- with codecs.open(infofile, "w", encoding='utf8') as f:
+ with open(infofile, "w") as f:
if pkginfo.pe != "0":
f.write(u"PE = %s\n" % pkginfo.pe)
f.write(u"PV = %s\n" % pkginfo.pv)
f.write(u"PR = %s\n" % pkginfo.pr)
- pkgvars = {}
- pkgvars['PKG'] = pkginfo.pkg if pkginfo.pkg != pkginfo.name else ''
- pkgvars['PKGE'] = pkginfo.pkge if pkginfo.pkge != pkginfo.pe else ''
- pkgvars['PKGV'] = pkginfo.pkgv if pkginfo.pkgv != pkginfo.pv else ''
- pkgvars['PKGR'] = pkginfo.pkgr if pkginfo.pkgr != pkginfo.pr else ''
- for pkgvar in pkgvars:
- val = pkgvars[pkgvar]
- if val:
- f.write(u"%s = %s\n" % (pkgvar, val))
-
+ if pkginfo.pkg != pkginfo.name:
+ f.write(u"PKG = %s\n" % pkginfo.pkg)
+ if pkginfo.pkge != pkginfo.pe:
+ f.write(u"PKGE = %s\n" % pkginfo.pkge)
+ if pkginfo.pkgv != pkginfo.pv:
+ f.write(u"PKGV = %s\n" % pkginfo.pkgv)
+ if pkginfo.pkgr != pkginfo.pr:
+ f.write(u"PKGR = %s\n" % pkginfo.pkgr)
f.write(u"RPROVIDES = %s\n" % pkginfo.rprovides)
f.write(u"RDEPENDS = %s\n" % pkginfo.rdepends)
f.write(u"RRECOMMENDS = %s\n" % pkginfo.rrecommends)
@@ -349,7 +346,7 @@ def write_pkghistory(pkginfo, d):
filevarpath = os.path.join(pkgpath, "latest.%s" % filevar)
val = pkginfo.filevars[filevar]
if val:
- with codecs.open(filevarpath, "w", encoding='utf8') as f:
+ with open(filevarpath, "w") as f:
f.write(val)
else:
if os.path.exists(filevarpath):
@@ -565,11 +562,11 @@ python buildhistory_get_extra_sdkinfo() {
tasksizes[task] = origtotal + fsize
filesizes[fn] = fsize
with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt'), 'w') as f:
- filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1), reverse=True)
+ filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1, 0), reverse=True)
for fn, size in filesizes_sorted:
f.write('%10d KiB %s\n' % (size, fn))
with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt'), 'w') as f:
- tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1), reverse=True)
+ tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1, 0), reverse=True)
for task, size in tasksizes_sorted:
f.write('%10d KiB %s\n' % (size, task))
}
@@ -645,7 +642,7 @@ def buildhistory_get_sdkvars(d):
sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE"
if d.getVar('BB_CURRENTTASK', True) == 'populate_sdk_ext':
# Extensible SDK uses some additional variables
- sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL SDK_EXT_TYPE SDK_RECRDEP_TASKS"
+ sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL SDK_EXT_TYPE SDK_RECRDEP_TASKS SDK_INCLUDE_PKGDATA SDK_INCLUDE_TOOLCHAIN"
listvars = "SDKIMAGE_FEATURES BAD_RECOMMENDATIONS PACKAGE_EXCLUDE SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST"
return outputvars(sdkvars, listvars, d)
@@ -714,15 +711,9 @@ END
git tag -f build-minus-2 build-minus-1 > /dev/null 2>&1 || true
git tag -f build-minus-1 > /dev/null 2>&1 || true
fi
- # If the user hasn't set up their name/email, set some defaults
- # just for this repo (otherwise the commit will fail with older
- # versions of git)
- if ! git config user.email > /dev/null ; then
- git config --local user.email "buildhistory@${DISTRO}"
- fi
- if ! git config user.name > /dev/null ; then
- git config --local user.name "buildhistory"
- fi
+
+ check_git_config
+
# Check if there are new/changed files to commit (other than metadata-revs)
repostatus=`git status --porcelain | grep -v " metadata-revs$"`
HOSTNAME=`hostname 2>/dev/null || echo unknown`
@@ -842,7 +833,7 @@ python write_srcrev() {
f.write('# SRCREV_%s = "%s"\n' % (name, orig_srcrev))
f.write('SRCREV_%s = "%s"\n' % (name, srcrev))
else:
- f.write('SRCREV = "%s"\n' % srcrevs.itervalues().next())
+ f.write('SRCREV = "%s"\n' % srcrevs.values())
if len(tag_srcrevs) > 0:
for name, srcrev in tag_srcrevs.items():
f.write('# tag_%s = "%s"\n' % (name, srcrev))
diff --git a/import-layers/yocto-poky/meta/classes/buildstats-summary.bbclass b/import-layers/yocto-poky/meta/classes/buildstats-summary.bbclass
index d73350b94..b86abcc3f 100644
--- a/import-layers/yocto-poky/meta/classes/buildstats-summary.bbclass
+++ b/import-layers/yocto-poky/meta/classes/buildstats-summary.bbclass
@@ -30,7 +30,11 @@ python buildstats_summary () {
header_printed = True
bb.note("Build completion summary:")
- bb.note(" {0}: {1}% sstate reuse ({2} setscene, {3} scratch)".format(t, 100*len(sstate)/(len(sstate)+len(no_sstate)), len(sstate), len(no_sstate)))
+ sstate_count = len(sstate)
+ no_sstate_count = len(no_sstate)
+ total_count = sstate_count + no_sstate_count
+ bb.note(" {0}: {1:.1f}% sstate reuse({2} setscene, {3} scratch)".format(
+ t, round(100 * sstate_count / total_count, 1), sstate_count, no_sstate_count))
}
addhandler buildstats_summary
buildstats_summary[eventmask] = "bb.event.BuildCompleted"
diff --git a/import-layers/yocto-poky/meta/classes/buildstats.bbclass b/import-layers/yocto-poky/meta/classes/buildstats.bbclass
index 34ecb0386..599a21998 100644
--- a/import-layers/yocto-poky/meta/classes/buildstats.bbclass
+++ b/import-layers/yocto-poky/meta/classes/buildstats.bbclass
@@ -163,8 +163,13 @@ python run_buildstats () {
bs = os.path.join(bsdir, "build_stats")
with open(bs, "a") as f:
rootfs = d.getVar('IMAGE_ROOTFS', True)
- rootfs_size = subprocess.Popen(["du", "-sh", rootfs], stdout=subprocess.PIPE).stdout.read()
- f.write("Uncompressed Rootfs size: %s" % rootfs_size)
+ if os.path.isdir(rootfs):
+ try:
+ rootfs_size = subprocess.check_output(["du", "-sh", rootfs],
+ stderr=subprocess.STDOUT).decode('utf-8')
+ f.write("Uncompressed Rootfs size: %s" % rootfs_size)
+ except subprocess.CalledProcessError as err:
+ bb.warn("Failed to get rootfs size: %s" % err.output.decode('utf-8'))
elif isinstance(e, bb.build.TaskFailed):
# Can have a failure before TaskStarted so need to mkdir here too
diff --git a/import-layers/yocto-poky/meta/classes/ccache.bbclass b/import-layers/yocto-poky/meta/classes/ccache.bbclass
index 2cdce4693..2e9837cf0 100644
--- a/import-layers/yocto-poky/meta/classes/ccache.bbclass
+++ b/import-layers/yocto-poky/meta/classes/ccache.bbclass
@@ -4,5 +4,3 @@ CCACHE_DISABLE[unexport] = "1"
do_configure[dirs] =+ "${CCACHE_DIR}"
do_kernel_configme[dirs] =+ "${CCACHE_DIR}"
-
-do_clean[cleandirs] += "${CCACHE_DIR}"
diff --git a/import-layers/yocto-poky/meta/classes/chrpath.bbclass b/import-layers/yocto-poky/meta/classes/chrpath.bbclass
index 9c68855ab..3b5cd37f7 100644
--- a/import-layers/yocto-poky/meta/classes/chrpath.bbclass
+++ b/import-layers/yocto-poky/meta/classes/chrpath.bbclass
@@ -5,15 +5,17 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
import subprocess as sub
p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
- err, out = p.communicate()
- # If returned successfully, process stderr for results
+ out, err = p.communicate()
+ # If returned successfully, process stdout for results
if p.returncode != 0:
return
+ out = out.decode('utf-8')
+
# Handle RUNPATH as well as RPATH
- err = err.replace("RUNPATH=","RPATH=")
+ out = out.replace("RUNPATH=","RPATH=")
# Throw away everything other than the rpath list
- curr_rpath = err.partition("RPATH=")[2]
+ curr_rpath = out.partition("RPATH=")[2]
#bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip()))
rpaths = curr_rpath.split(":")
new_rpaths = []
@@ -37,18 +39,17 @@ def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
out, err = p.communicate()
if p.returncode != 0:
- bb.error("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err))
- raise bb.build.FuncFailed
+ bb.fatal("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err))
def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d):
import subprocess as sub
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
- err, out = p.communicate()
- # If returned successfully, process stderr for results
+ out, err = p.communicate()
+ # If returned successfully, process stdout for results
if p.returncode != 0:
return
- for l in err.split("\n"):
+ for l in out.split("\n"):
if "(compatibility" not in l:
continue
rpath = l.partition("(compatibility")[0].strip()
@@ -57,7 +58,7 @@ def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d):
newpath = "@loader_path/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/")))
p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, newpath, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
- err, out = p.communicate()
+ out, err = p.communicate()
def process_dir (rootdir, directory, d):
import stat
diff --git a/import-layers/yocto-poky/meta/classes/cmake.bbclass b/import-layers/yocto-poky/meta/classes/cmake.bbclass
index 02f313a86..3e762de6a 100644
--- a/import-layers/yocto-poky/meta/classes/cmake.bbclass
+++ b/import-layers/yocto-poky/meta/classes/cmake.bbclass
@@ -84,6 +84,8 @@ EOF
addtask generate_toolchain_file after do_patch before do_configure
+CONFIGURE_FILES = "CMakeLists.txt"
+
cmake_do_configure() {
if [ "${OECMAKE_BUILDPATH}" ]; then
bbnote "cmake.bbclass no longer uses OECMAKE_BUILDPATH. The default behaviour is now out-of-tree builds with B=WORKDIR/build."
@@ -108,25 +110,27 @@ cmake_do_configure() {
${OECMAKE_SITEFILE} \
${OECMAKE_SOURCEPATH} \
-DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
- -DCMAKE_INSTALL_BINDIR:PATH=${bindir} \
- -DCMAKE_INSTALL_SBINDIR:PATH=${sbindir} \
- -DCMAKE_INSTALL_LIBEXECDIR:PATH=${libexecdir} \
+ -DCMAKE_INSTALL_BINDIR:PATH=${@os.path.relpath(d.getVar('bindir', True), d.getVar('prefix', True))} \
+ -DCMAKE_INSTALL_SBINDIR:PATH=${@os.path.relpath(d.getVar('sbindir', True), d.getVar('prefix', True))} \
+ -DCMAKE_INSTALL_LIBEXECDIR:PATH=${@os.path.relpath(d.getVar('libexecdir', True), d.getVar('prefix', True))} \
-DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \
- -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${sharedstatedir} \
+ -DCMAKE_INSTALL_SHAREDSTATEDIR:PATH=${@os.path.relpath(d.getVar('sharedstatedir', True), d. getVar('prefix', True))} \
-DCMAKE_INSTALL_LOCALSTATEDIR:PATH=${localstatedir} \
- -DCMAKE_INSTALL_LIBDIR:PATH=${libdir} \
- -DCMAKE_INSTALL_INCLUDEDIR:PATH=${includedir} \
- -DCMAKE_INSTALL_DATAROOTDIR:PATH=${datadir} \
+ -DCMAKE_INSTALL_LIBDIR:PATH=${@os.path.relpath(d.getVar('libdir', True), d.getVar('prefix', True))} \
+ -DCMAKE_INSTALL_INCLUDEDIR:PATH=${@os.path.relpath(d.getVar('includedir', True), d.getVar('prefix', True))} \
+ -DCMAKE_INSTALL_DATAROOTDIR:PATH=${@os.path.relpath(d.getVar('datadir', True), d.getVar('prefix', True))} \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
-DCMAKE_VERBOSE_MAKEFILE=1 \
+ -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
${EXTRA_OECMAKE} \
-Wno-dev
}
+do_compile[progress] = "percent"
cmake_do_compile() {
cd ${B}
- base_do_compile
+ base_do_compile VERBOSE=1
}
cmake_do_install() {
diff --git a/import-layers/yocto-poky/meta/classes/cml1.bbclass b/import-layers/yocto-poky/meta/classes/cml1.bbclass
index b5dc028a2..583480626 100644
--- a/import-layers/yocto-poky/meta/classes/cml1.bbclass
+++ b/import-layers/yocto-poky/meta/classes/cml1.bbclass
@@ -42,6 +42,7 @@ python do_menuconfig() {
}
do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
do_menuconfig[nostamp] = "1"
+do_menuconfig[dirs] = "${B}"
addtask menuconfig after do_configure
python do_diffconfig() {
@@ -73,4 +74,5 @@ python do_diffconfig() {
}
do_diffconfig[nostamp] = "1"
+do_diffconfig[dirs] = "${B}"
addtask diffconfig
diff --git a/import-layers/yocto-poky/meta/classes/core-image.bbclass b/import-layers/yocto-poky/meta/classes/core-image.bbclass
index 705cad8d9..8431440db 100644
--- a/import-layers/yocto-poky/meta/classes/core-image.bbclass
+++ b/import-layers/yocto-poky/meta/classes/core-image.bbclass
@@ -2,9 +2,6 @@
#
# Copyright (C) 2007-2011 Linux Foundation
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
- file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
# IMAGE_FEATURES control content of the core reference images
#
# By default we install packagegroup-core-boot and packagegroup-base-extended packages;
diff --git a/import-layers/yocto-poky/meta/classes/cross-canadian.bbclass b/import-layers/yocto-poky/meta/classes/cross-canadian.bbclass
index e07b1bdb6..21921b3dd 100644
--- a/import-layers/yocto-poky/meta/classes/cross-canadian.bbclass
+++ b/import-layers/yocto-poky/meta/classes/cross-canadian.bbclass
@@ -15,7 +15,8 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S
# Update BASE_PACKAGE_ARCH and PACKAGE_ARCHS
#
PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}"
-CANADIANEXTRAOS = "linux-uclibc linux-musl"
+BASECANADIANEXTRAOS ?= "linux-uclibc linux-musl"
+CANADIANEXTRAOS = "${BASECANADIANEXTRAOS}"
CANADIANEXTRAVENDOR = ""
MODIFYTOS ??= "1"
python () {
@@ -34,8 +35,13 @@ python () {
tos = d.getVar("TARGET_OS", True)
whitelist = []
+ extralibcs = [""]
+ if "uclibc" in d.getVar("BASECANADIANEXTRAOS", True):
+ extralibcs.append("uclibc")
+ if "musl" in d.getVar("BASECANADIANEXTRAOS", True):
+ extralibcs.append("musl")
for variant in ["", "spe", "x32", "eabi", "n32"]:
- for libc in ["", "uclibc", "musl"]:
+ for libc in extralibcs:
entry = "linux"
if variant and libc:
entry = entry + "-" + libc + variant
@@ -59,15 +65,22 @@ python () {
if tarch == "x86_64":
d.setVar("LIBCEXTENSION", "")
d.setVar("ABIEXTENSION", "")
- d.appendVar("CANADIANEXTRAOS", " linux-gnux32 linux-uclibcx32 linux-muslx32")
+ d.appendVar("CANADIANEXTRAOS", " linux-gnux32")
+ for extraos in d.getVar("BASECANADIANEXTRAOS", True).split():
+ d.appendVar("CANADIANEXTRAOS", " " + extraos + "x32")
elif tarch == "powerpc":
# PowerPC can build "linux" and "linux-gnuspe"
d.setVar("LIBCEXTENSION", "")
d.setVar("ABIEXTENSION", "")
- d.appendVar("CANADIANEXTRAOS", " linux-gnuspe linux-uclibcspe linux-muslspe")
+ d.appendVar("CANADIANEXTRAOS", " linux-gnuspe")
+ for extraos in d.getVar("BASECANADIANEXTRAOS", True).split():
+ d.appendVar("CANADIANEXTRAOS", " " + extraos + "spe")
elif tarch == "mips64":
- d.appendVar("CANADIANEXTRAOS", " linux-gnun32 linux-uclibcn32 linux-musln32")
+ d.appendVar("CANADIANEXTRAOS", " linux-gnun32")
+ for extraos in d.getVar("BASECANADIANEXTRAOS", True).split():
+ d.appendVar("CANADIANEXTRAOS", " " + extraos + "n32")
if tarch == "arm" or tarch == "armeb":
+ d.appendVar("CANADIANEXTRAOS", " linux-gnueabi linux-musleabi linux-uclibceabi")
d.setVar("TARGET_OS", "linux-gnueabi")
else:
d.setVar("TARGET_OS", "linux")
diff --git a/import-layers/yocto-poky/meta/classes/cross.bbclass b/import-layers/yocto-poky/meta/classes/cross.bbclass
index 81d1c9d85..01b09337a 100644
--- a/import-layers/yocto-poky/meta/classes/cross.bbclass
+++ b/import-layers/yocto-poky/meta/classes/cross.bbclass
@@ -17,6 +17,8 @@ HOST_CC_ARCH = "${BUILD_CC_ARCH}"
HOST_LD_ARCH = "${BUILD_LD_ARCH}"
HOST_AS_ARCH = "${BUILD_AS_ARCH}"
+export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir} /lib /lib64 /usr/lib /usr/lib64"
+
STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
PACKAGE_ARCH = "${BUILD_ARCH}"
@@ -68,4 +70,16 @@ do_install () {
USE_NLS = "no"
+export CC = "${BUILD_CC}"
+export CXX = "${BUILD_CXX}"
+export FC = "${BUILD_FC}"
+export CPP = "${BUILD_CPP}"
+export LD = "${BUILD_LD}"
+export CCLD = "${BUILD_CCLD}"
+export AR = "${BUILD_AR}"
+export AS = "${BUILD_AS}"
+export RANLIB = "${BUILD_RANLIB}"
+export STRIP = "${BUILD_STRIP}"
+export NM = "${BUILD_NM}"
+
inherit nopackages
diff --git a/import-layers/yocto-poky/meta/classes/cve-check.bbclass b/import-layers/yocto-poky/meta/classes/cve-check.bbclass
new file mode 100644
index 000000000..1425a4055
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/cve-check.bbclass
@@ -0,0 +1,265 @@
+# This class is used to check recipes against public CVEs.
+#
+# In order to use this class just inherit the class in the
+# local.conf file and it will add the cve_check task for
+# every recipe. The task can be used per recipe, per image,
+# or using the special cases "world" and "universe". The
+# cve_check task will print a warning for every unpatched
+# CVE found and generate a file in the recipe WORKDIR/cve
+# directory. If an image is build it will generate a report
+# in DEPLOY_DIR_IMAGE for all the packages used.
+#
+# Example:
+# bitbake -c cve_check openssl
+# bitbake core-image-sato
+# bitbake -k -c cve_check universe
+#
+# DISCLAIMER
+#
+# This class/tool is meant to be used as support and not
+# the only method to check against CVEs. Running this tool
+# doesn't guarantee your packages are free of CVEs.
+
+CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK"
+CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd.db"
+
+CVE_CHECK_LOCAL_DIR ?= "${WORKDIR}/cve"
+CVE_CHECK_LOCAL_FILE ?= "${CVE_CHECK_LOCAL_DIR}/cve.log"
+CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check"
+
+CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve"
+CVE_CHECK_MANIFEST ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve"
+CVE_CHECK_COPY_FILES ??= "1"
+CVE_CHECK_CREATE_MANIFEST ??= "1"
+
+# Whitelist for packages (PN)
+CVE_CHECK_PN_WHITELIST = "\
+ glibc-locale \
+"
+
+# Whitelist for CVE and version of package
+CVE_CHECK_CVE_WHITELIST = "{\
+ 'CVE-2014-2524': ('6.3',), \
+}"
+
+python do_cve_check () {
+ """
+ Check recipe for patched and unpatched CVEs
+ """
+
+ if os.path.exists(d.getVar("CVE_CHECK_TMP_FILE", True)):
+ patched_cves = get_patches_cves(d)
+ patched, unpatched = check_cves(d, patched_cves)
+ if patched or unpatched:
+ cve_data = get_cve_info(d, patched + unpatched)
+ cve_write_data(d, patched, unpatched, cve_data)
+ else:
+ bb.note("Failed to update CVE database, skipping CVE check")
+}
+
+addtask cve_check after do_unpack before do_build
+do_cve_check[depends] = "cve-check-tool-native:do_populate_cve_db"
+do_cve_check[nostamp] = "1"
+
+python cve_check_cleanup () {
+ """
+ Delete the file used to gather all the CVE information.
+ """
+
+ bb.utils.remove(e.data.getVar("CVE_CHECK_TMP_FILE", True))
+}
+
+addhandler cve_check_cleanup
+cve_check_cleanup[eventmask] = "bb.cooker.CookerExit"
+
+python cve_check_write_rootfs_manifest () {
+ """
+ Create CVE manifest when building an image
+ """
+
+ import shutil
+
+ if os.path.exists(d.getVar("CVE_CHECK_TMP_FILE", True)):
+ bb.note("Writing rootfs CVE manifest")
+ deploy_dir = d.getVar("DEPLOY_DIR_IMAGE", True)
+ link_name = d.getVar("IMAGE_LINK_NAME", True)
+ manifest_name = d.getVar("CVE_CHECK_MANIFEST", True)
+ cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE", True)
+
+ shutil.copyfile(cve_tmp_file, manifest_name)
+
+ if manifest_name and os.path.exists(manifest_name):
+ manifest_link = os.path.join(deploy_dir, "%s.cve" % link_name)
+ # If we already have another manifest, update symlinks
+ if os.path.exists(os.path.realpath(manifest_link)):
+ os.remove(manifest_link)
+ os.symlink(os.path.basename(manifest_name), manifest_link)
+ bb.plain("Image CVE report stored in: %s" % manifest_name)
+}
+
+ROOTFS_POSTPROCESS_COMMAND_prepend = "${@'cve_check_write_rootfs_manifest; ' if d.getVar('CVE_CHECK_CREATE_MANIFEST', True) == '1' else ''}"
+
+def get_patches_cves(d):
+ """
+ Get patches that solve CVEs using the "CVE: " tag.
+ """
+
+ import re
+
+ pn = d.getVar("PN", True)
+ cve_match = re.compile("CVE:( CVE\-\d{4}\-\d+)+")
+ patched_cves = set()
+ bb.debug(2, "Looking for patches that solves CVEs for %s" % pn)
+ for url in src_patches(d):
+ patch_file = bb.fetch.decodeurl(url)[2]
+ with open(patch_file, "r", encoding="utf-8") as f:
+ try:
+ patch_text = f.read()
+ except UnicodeDecodeError:
+ bb.debug(1, "Failed to read patch %s using UTF-8 encoding"
+ " trying with iso8859-1" % patch_file)
+ f.close()
+ with open(patch_file, "r", encoding="iso8859-1") as f:
+ patch_text = f.read()
+
+ # Search for the "CVE: " line
+ match = cve_match.search(patch_text)
+ if match:
+ # Get only the CVEs without the "CVE: " tag
+ cves = patch_text[match.start()+5:match.end()]
+ for cve in cves.split():
+ bb.debug(2, "Patch %s solves %s" % (patch_file, cve))
+ patched_cves.add(cve)
+ else:
+ bb.debug(2, "Patch %s doesn't solve CVEs" % patch_file)
+
+ return patched_cves
+
+def check_cves(d, patched_cves):
+ """
+ Run cve-check-tool looking for patched and unpatched CVEs.
+ """
+
+ import ast, csv, tempfile, subprocess, io
+
+ cves_patched = []
+ cves_unpatched = []
+ bpn = d.getVar("BPN", True)
+ pv = d.getVar("PV", True).split("git+")[0]
+ cves = " ".join(patched_cves)
+ cve_db_dir = d.getVar("CVE_CHECK_DB_DIR", True)
+ cve_whitelist = ast.literal_eval(d.getVar("CVE_CHECK_CVE_WHITELIST", True))
+ cve_cmd = "cve-check-tool"
+ cmd = [cve_cmd, "--no-html", "--csv", "--not-affected", "-t", "faux", "-d", cve_db_dir]
+
+ # If the recipe has been whitlisted we return empty lists
+ if d.getVar("PN", True) in d.getVar("CVE_CHECK_PN_WHITELIST", True).split():
+ bb.note("Recipe has been whitelisted, skipping check")
+ return ([], [])
+
+ # It is needed to export the proxies to download the database using HTTP
+ bb.utils.export_proxies(d)
+
+ try:
+ # Write the faux CSV file to be used with cve-check-tool
+ fd, faux = tempfile.mkstemp(prefix="cve-faux-")
+ with os.fdopen(fd, "w") as f:
+ f.write("%s,%s,%s," % (bpn, pv, cves))
+ cmd.append(faux)
+
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
+ bb.debug(2, "Output of command %s:\n%s" % ("\n".join(cmd), output))
+ except subprocess.CalledProcessError as e:
+ bb.warn("Couldn't check for CVEs: %s (output %s)" % (e, e.output))
+ finally:
+ os.remove(faux)
+
+ for row in csv.reader(io.StringIO(output)):
+ # Third row has the unpatched CVEs
+ if row[2]:
+ for cve in row[2].split():
+ # Skip if the CVE has been whitlisted for the current version
+ if pv in cve_whitelist.get(cve,[]):
+ bb.note("%s-%s has been whitelisted for %s" % (bpn, pv, cve))
+ else:
+ cves_unpatched.append(cve)
+ bb.debug(2, "%s-%s is not patched for %s" % (bpn, pv, cve))
+ # Fourth row has patched CVEs
+ if row[3]:
+ for cve in row[3].split():
+ cves_patched.append(cve)
+ bb.debug(2, "%s-%s is patched for %s" % (bpn, pv, cve))
+
+ return (cves_patched, cves_unpatched)
+
+def get_cve_info(d, cves):
+ """
+ Get CVE information from the database used by cve-check-tool.
+
+ Unfortunately the only way to get CVE info is set the output to
+ html (hard to parse) or query directly the database.
+ """
+
+ try:
+ import sqlite3
+ except ImportError:
+ from pysqlite2 import dbapi2 as sqlite3
+
+ cve_data = {}
+ db_file = d.getVar("CVE_CHECK_DB_FILE", True)
+ placeholder = ",".join("?" * len(cves))
+ query = "SELECT * FROM NVD WHERE id IN (%s)" % placeholder
+ conn = sqlite3.connect(db_file)
+ cur = conn.cursor()
+ for row in cur.execute(query, tuple(cves)):
+ cve_data[row[0]] = {}
+ cve_data[row[0]]["summary"] = row[1]
+ cve_data[row[0]]["score"] = row[2]
+ cve_data[row[0]]["modified"] = row[3]
+ cve_data[row[0]]["vector"] = row[4]
+ conn.close()
+
+ return cve_data
+
+def cve_write_data(d, patched, unpatched, cve_data):
+ """
+ Write CVE information in WORKDIR; and to CVE_CHECK_DIR, and
+ CVE manifest if enabled.
+ """
+
+ cve_file = d.getVar("CVE_CHECK_LOCAL_FILE", True)
+ nvd_link = "https://web.nvd.nist.gov/view/vuln/detail?vulnId="
+ write_string = ""
+ first_alert = True
+ bb.utils.mkdirhier(d.getVar("CVE_CHECK_LOCAL_DIR", True))
+
+ for cve in sorted(cve_data):
+ write_string += "PACKAGE NAME: %s\n" % d.getVar("PN", True)
+ write_string += "PACKAGE VERSION: %s\n" % d.getVar("PV", True)
+ write_string += "CVE: %s\n" % cve
+ if cve in patched:
+ write_string += "CVE STATUS: Patched\n"
+ else:
+ write_string += "CVE STATUS: Unpatched\n"
+ if first_alert:
+ bb.warn("Found unpatched CVE, for more information check %s" % cve_file)
+ first_alert = False
+ write_string += "CVE SUMMARY: %s\n" % cve_data[cve]["summary"]
+ write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["score"]
+ write_string += "VECTOR: %s\n" % cve_data[cve]["vector"]
+ write_string += "MORE INFORMATION: %s%s\n\n" % (nvd_link, cve)
+
+ with open(cve_file, "w") as f:
+ bb.note("Writing file %s with CVE information" % cve_file)
+ f.write(write_string)
+
+ if d.getVar("CVE_CHECK_COPY_FILES", True) == "1":
+ cve_dir = d.getVar("CVE_CHECK_DIR", True)
+ bb.utils.mkdirhier(cve_dir)
+ deploy_file = os.path.join(cve_dir, d.getVar("PN", True))
+ with open(deploy_file, "w") as f:
+ f.write(write_string)
+
+ if d.getVar("CVE_CHECK_CREATE_MANIFEST", True) == "1":
+ with open(d.getVar("CVE_CHECK_TMP_FILE", True), "a") as f:
+ f.write("%s" % write_string)
diff --git a/import-layers/yocto-poky/meta/classes/devshell.bbclass b/import-layers/yocto-poky/meta/classes/devshell.bbclass
index 341d9c000..be71aff35 100644
--- a/import-layers/yocto-poky/meta/classes/devshell.bbclass
+++ b/import-layers/yocto-poky/meta/classes/devshell.bbclass
@@ -65,9 +65,6 @@ def devpyshell(d):
os.dup2(m, sys.stdout.fileno())
os.dup2(m, sys.stderr.fileno())
- sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
- sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
-
bb.utils.nonblockingfd(sys.stdout)
bb.utils.nonblockingfd(sys.stderr)
bb.utils.nonblockingfd(sys.stdin)
@@ -93,6 +90,7 @@ def devpyshell(d):
else:
prompt = ps1
sys.stdout.write(prompt)
+ sys.stdout.flush()
# Restore Ctrl+C since bitbake masks this
def signal_handler(signal, frame):
@@ -114,6 +112,7 @@ def devpyshell(d):
continue
except EOFError as e:
sys.stdout.write("\n")
+ sys.stdout.flush()
except (OSError, IOError) as e:
if e.errno == 11:
continue
diff --git a/import-layers/yocto-poky/meta/classes/distrodata.bbclass b/import-layers/yocto-poky/meta/classes/distrodata.bbclass
index 51bfc1e54..fbb7402e0 100644
--- a/import-layers/yocto-poky/meta/classes/distrodata.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distrodata.bbclass
@@ -1,4 +1,3 @@
-include conf/distro/include/package_regex.inc
include conf/distro/include/upstream_tracking.inc
include conf/distro/include/distro_alias.inc
include conf/distro/include/maintainers.inc
diff --git a/import-layers/yocto-poky/meta/classes/distutils-common-base.bbclass b/import-layers/yocto-poky/meta/classes/distutils-common-base.bbclass
index 08511f59c..824a1b68b 100644
--- a/import-layers/yocto-poky/meta/classes/distutils-common-base.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distutils-common-base.bbclass
@@ -1,7 +1,3 @@
-inherit python-dir
-
-EXTRA_OEMAKE = ""
-
export STAGING_INCDIR
export STAGING_LIBDIR
diff --git a/import-layers/yocto-poky/meta/classes/distutils-native-base.bbclass b/import-layers/yocto-poky/meta/classes/distutils-native-base.bbclass
deleted file mode 100644
index 509cb9551..000000000
--- a/import-layers/yocto-poky/meta/classes/distutils-native-base.bbclass
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit distutils-common-base
-
-DEPENDS += "${@["${PYTHON_PN}-native", ""][(d.getVar('PACKAGES', True) == '')]}"
diff --git a/import-layers/yocto-poky/meta/classes/distutils-tools.bbclass b/import-layers/yocto-poky/meta/classes/distutils-tools.bbclass
index 8d9b3f78f..3ef9cc5a7 100644
--- a/import-layers/yocto-poky/meta/classes/distutils-tools.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distutils-tools.bbclass
@@ -8,14 +8,12 @@ DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
distutils_do_compile() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py build_ext execution failed."
}
distutils_stage_headers() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install_headers execution failed."
}
@@ -25,7 +23,6 @@ distutils_stage_all() {
STAGING_LIBDIR=${STAGING_LIBDIR} \
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install (stage) execution failed."
}
@@ -37,7 +34,6 @@ distutils_do_install() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${DISTUTILS_INSTALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install execution failed."
diff --git a/import-layers/yocto-poky/meta/classes/distutils.bbclass b/import-layers/yocto-poky/meta/classes/distutils.bbclass
index da48a2ed5..857572d75 100644
--- a/import-layers/yocto-poky/meta/classes/distutils.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distutils.bbclass
@@ -10,14 +10,12 @@ DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
distutils_do_compile() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py build execution failed."
}
distutils_stage_headers() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install_headers execution failed."
}
@@ -27,7 +25,6 @@ distutils_stage_all() {
STAGING_LIBDIR=${STAGING_LIBDIR} \
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install (stage) execution failed."
}
@@ -37,7 +34,6 @@ distutils_do_install() {
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${DISTUTILS_INSTALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install execution failed."
diff --git a/import-layers/yocto-poky/meta/classes/distutils3-base.bbclass b/import-layers/yocto-poky/meta/classes/distutils3-base.bbclass
index 2a093d3a8..82ab6a3d1 100644
--- a/import-layers/yocto-poky/meta/classes/distutils3-base.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distutils3-base.bbclass
@@ -1,8 +1,5 @@
DEPENDS += "${@["${PYTHON_PN}-native ${PYTHON_PN}", ""][(d.getVar('PACKAGES', True) == '')]}"
RDEPENDS_${PN} += "${@['', '${PYTHON_PN}-core']['${CLASSOVERRIDE}' == 'class-target']}"
-PYTHON_BASEVERSION = "3.5"
-PYTHON_ABI = "m"
-
inherit distutils-common-base python3native
diff --git a/import-layers/yocto-poky/meta/classes/distutils3-native-base.bbclass b/import-layers/yocto-poky/meta/classes/distutils3-native-base.bbclass
deleted file mode 100644
index db9a1a73c..000000000
--- a/import-layers/yocto-poky/meta/classes/distutils3-native-base.bbclass
+++ /dev/null
@@ -1,4 +0,0 @@
-PYTHON_BASEVERSION = "3.5"
-PYTHON_ABI = "m"
-
-inherit distutils-native-base
diff --git a/import-layers/yocto-poky/meta/classes/distutils3.bbclass b/import-layers/yocto-poky/meta/classes/distutils3.bbclass
index 4f6ca4482..a6720c5b6 100644
--- a/import-layers/yocto-poky/meta/classes/distutils3.bbclass
+++ b/import-layers/yocto-poky/meta/classes/distutils3.bbclass
@@ -9,14 +9,8 @@ DISTUTILS_INSTALL_ARGS ?= "--prefix=${D}/${prefix} \
--install-data=${D}/${datadir}"
distutils3_do_compile() {
- if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
- SYS=${MACHINE}
- else
- SYS=${HOST_SYS}
- fi
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
build ${DISTUTILS_BUILD_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py build_ext execution failed."
@@ -25,28 +19,16 @@ distutils3_do_compile[vardepsexclude] = "MACHINE"
distutils3_stage_headers() {
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
- if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
- SYS=${MACHINE}
- else
- SYS=${HOST_SYS}
- fi
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install_headers ${DISTUTILS_STAGE_HEADERS_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install_headers execution failed."
}
distutils3_stage_headers[vardepsexclude] = "MACHINE"
distutils3_stage_all() {
- if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
- SYS=${MACHINE}
- else
- SYS=${HOST_SYS}
- fi
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
install -d ${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR}
PYTHONPATH=${STAGING_DIR_HOST}${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install ${DISTUTILS_STAGE_ALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install (stage) execution failed."
}
@@ -54,15 +36,9 @@ distutils3_stage_all[vardepsexclude] = "MACHINE"
distutils3_do_install() {
install -d ${D}${PYTHON_SITEPACKAGES_DIR}
- if [ ${BUILD_SYS} != ${HOST_SYS} ]; then
- SYS=${MACHINE}
- else
- SYS=${HOST_SYS}
- fi
STAGING_INCDIR=${STAGING_INCDIR} \
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${SYS} \
${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${DISTUTILS_INSTALL_ARGS} || \
bbfatal_log "${PYTHON_PN} setup.py install execution failed."
diff --git a/import-layers/yocto-poky/meta/classes/externalsrc.bbclass b/import-layers/yocto-poky/meta/classes/externalsrc.bbclass
index da7eb4781..31908c3ca 100644
--- a/import-layers/yocto-poky/meta/classes/externalsrc.bbclass
+++ b/import-layers/yocto-poky/meta/classes/externalsrc.bbclass
@@ -29,6 +29,23 @@ EXTERNALSRC_SYMLINKS ?= "oe-workdir:${WORKDIR} oe-logs:${T}"
python () {
externalsrc = d.getVar('EXTERNALSRC', True)
+
+ # If this is the base recipe and EXTERNALSRC is set for it or any of its
+ # derivatives, then enable BB_DONT_CACHE to force the recipe to always be
+ # re-parsed so that the file-checksums function for do_compile is run every
+ # time.
+ bpn = d.getVar('BPN', True)
+ if bpn == d.getVar('PN', True):
+ classextend = (d.getVar('BBCLASSEXTEND', True) or '').split()
+ if (externalsrc or
+ ('native' in classextend and
+ d.getVar('EXTERNALSRC_pn-%s-native' % bpn, True)) or
+ ('nativesdk' in classextend and
+ d.getVar('EXTERNALSRC_pn-nativesdk-%s' % bpn, True)) or
+ ('cross' in classextend and
+ d.getVar('EXTERNALSRC_pn-%s-cross' % bpn, True))):
+ d.setVar('BB_DONT_CACHE', '1')
+
if externalsrc:
d.setVar('S', externalsrc)
externalsrcbuild = d.getVar('EXTERNALSRC_BUILD', True)
@@ -85,10 +102,8 @@ python () {
d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ")
d.prependVarFlag('do_configure', 'prefuncs', "externalsrc_configure_prefunc ")
- # Force the recipe to be always re-parsed so that the file_checksums
- # function is run every time
- d.setVar('BB_DONT_CACHE', '1')
d.setVarFlag('do_compile', 'file-checksums', '${@srctree_hash_files(d)}')
+ d.setVarFlag('do_configure', 'file-checksums', '${@srctree_configure_hash_files(d)}')
# We don't want the workdir to go away
d.appendVar('RM_WORK_EXCLUDE', ' ' + d.getVar('PN', True))
@@ -145,10 +160,31 @@ def srctree_hash_files(d):
env = os.environ.copy()
env['GIT_INDEX_FILE'] = tmp_index.name
subprocess.check_output(['git', 'add', '.'], cwd=s_dir, env=env)
- sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env)
+ sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
with open(oe_hash_file, 'w') as fobj:
fobj.write(sha1)
ret = oe_hash_file + ':True'
else:
ret = d.getVar('EXTERNALSRC', True) + '/*:True'
return ret
+
+def srctree_configure_hash_files(d):
+ """
+ Get the list of files that should trigger do_configure to re-execute,
+ based on the value of CONFIGURE_FILES
+ """
+ in_files = (d.getVar('CONFIGURE_FILES', True) or '').split()
+ out_items = []
+ search_files = []
+ for entry in in_files:
+ if entry.startswith('/'):
+ out_items.append('%s:%s' % (entry, os.path.exists(entry)))
+ else:
+ search_files.append(entry)
+ if search_files:
+ s_dir = d.getVar('EXTERNALSRC', True)
+ for root, _, files in os.walk(s_dir):
+ for f in files:
+ if f in search_files:
+ out_items.append('%s:True' % os.path.join(root, f))
+ return ' '.join(out_items)
diff --git a/import-layers/yocto-poky/meta/classes/gobject-introspection-data.bbclass b/import-layers/yocto-poky/meta/classes/gobject-introspection-data.bbclass
index b1bdd268e..2ef684626 100644
--- a/import-layers/yocto-poky/meta/classes/gobject-introspection-data.bbclass
+++ b/import-layers/yocto-poky/meta/classes/gobject-introspection-data.bbclass
@@ -3,7 +3,5 @@
#
# It should be used in recipes to determine whether introspection data should be built,
# so that qemu use can be avoided when necessary.
-GI_DATA_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', \
+GI_DATA_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'gobject-introspection-data', \
bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}"
-
-
diff --git a/import-layers/yocto-poky/meta/classes/gobject-introspection.bbclass b/import-layers/yocto-poky/meta/classes/gobject-introspection.bbclass
index 2d73e402c..37389cbc8 100644
--- a/import-layers/yocto-poky/meta/classes/gobject-introspection.bbclass
+++ b/import-layers/yocto-poky/meta/classes/gobject-introspection.bbclass
@@ -1,22 +1,28 @@
# Inherit this class in recipes to enable building their introspection files
-# This sets up autoconf-based recipes to build introspection data (or not),
+# python3native is inherited to prevent introspection tools being run with
+# host's python 3 (they need to be run with native python 3)
+#
+# This also sets up autoconf-based recipes to build introspection data (or not),
# depending on distro and machine features (see gobject-introspection-data class).
-inherit gobject-introspection-data
-EXTRA_OECONF_prepend = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection', '--disable-introspection', d)} "
+inherit python3native gobject-introspection-data
+EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection', '--disable-introspection', d)} "
+
+# When building native recipes, disable introspection, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+EXTRA_OECONF_prepend_class-native = "--disable-introspection "
+EXTRA_OECONF_prepend_class-nativesdk = "--disable-introspection "
UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection --disable-introspection"
# Generating introspection data depends on a combination of native and target
# introspection tools, and qemu to run the target tools.
-DEPENDS_append = " gobject-introspection gobject-introspection-native qemu-native"
-
-# This is necessary for python scripts to succeed - distutils fails if these
-# are not set
-export BUILD_SYS
-export HOST_SYS
-export STAGING_INCDIR
-export STAGING_LIBDIR
+DEPENDS_append_class-target = " gobject-introspection gobject-introspection-native qemu-native"
+
+# Even though introspection is disabled on -native, gobject-introspection package is still
+# needed for m4 macros.
+DEPENDS_append_class-native = " gobject-introspection-native"
+DEPENDS_append_class-nativesdk = " gobject-introspection-native"
# This is used by introspection tools to find .gir includes
export XDG_DATA_DIRS = "${STAGING_DATADIR}"
diff --git a/import-layers/yocto-poky/meta/classes/grub-efi.bbclass b/import-layers/yocto-poky/meta/classes/grub-efi.bbclass
index 4ce3d2844..17417ba5d 100644
--- a/import-layers/yocto-poky/meta/classes/grub-efi.bbclass
+++ b/import-layers/yocto-poky/meta/classes/grub-efi.bbclass
@@ -45,6 +45,8 @@ efi_populate() {
GRUB_IMAGE="bootx64.efi"
fi
install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} ${DEST}${EFIDIR}
+ EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
+ printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" >${DEST}/startup.nsh
install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg
}
@@ -57,7 +59,7 @@ efi_iso_populate() {
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
cp $iso_dir/vmlinuz ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- echo "fs0:${EFIPATH}\\${GRUB_IMAGE}" > ${EFIIMGDIR}/startup.nsh
+ printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" > ${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
@@ -88,12 +90,12 @@ python build_efi_cfg() {
cfile = d.getVar('GRUB_CFG', True)
if not cfile:
- raise bb.build.FuncFailed('Unable to read GRUB_CFG')
+ bb.fatal('Unable to read GRUB_CFG')
try:
- cfgfile = file(cfile, 'w')
+ cfgfile = open(cfile, 'w')
except OSError:
- raise bb.build.funcFailed('Unable to open %s' % (cfile))
+ bb.fatal('Unable to open %s' % cfile)
cfgfile.write('# Automatically created by OE\n')
@@ -112,7 +114,7 @@ python build_efi_cfg() {
root = d.getVar('GRUB_ROOT', True)
if not root:
- raise bb.build.FuncFailed('GRUB_ROOT not defined')
+ bb.fatal('GRUB_ROOT not defined')
if gfxserial == "1":
btypes = [ [ " graphics console", "" ],
@@ -125,7 +127,7 @@ python build_efi_cfg() {
overrides = localdata.getVar('OVERRIDES', True)
if not overrides:
- raise bb.build.FuncFailed('OVERRIDES not defined')
+ bb.fatal('OVERRIDES not defined')
for btype in btypes:
localdata.setVar('OVERRIDES', label + ':' + overrides)
@@ -144,7 +146,8 @@ python build_efi_cfg() {
if append:
append = replace_rootfs_uuid(d, append)
- cfgfile.write('%s' % (append))
+ cfgfile.write(' %s' % (append))
+
cfgfile.write(' %s' % btype[1])
cfgfile.write('\n')
diff --git a/import-layers/yocto-poky/meta/classes/gtk-doc.bbclass b/import-layers/yocto-poky/meta/classes/gtk-doc.bbclass
index e32f98dcf..297eac63b 100644
--- a/import-layers/yocto-poky/meta/classes/gtk-doc.bbclass
+++ b/import-layers/yocto-poky/meta/classes/gtk-doc.bbclass
@@ -1,25 +1,69 @@
-# Helper class to pull in the right gtk-doc dependencies and disable
-# gtk-doc.
+# Helper class to pull in the right gtk-doc dependencies and configure
+# gtk-doc to enable or disable documentation building (which requries the
+# use of usermode qemu).
+
+# This variable is set to True if api-documentation is in
+# DISTRO_FEATURES and qemu-usermode is in MACHINE_FEATURES, and False otherwise.
#
-# Long-term it would be great if this class could be toggled between
-# gtk-doc-stub-native and the real gtk-doc-native, which would enable
-# re-generation of documentation. For now, we'll make do with this which
-# packages up any existing documentation (so from tarball builds).
+# It should be used in recipes to determine whether gtk-doc based documentation should be built,
+# so that qemu use can be avoided when necessary.
+GTKDOC_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', \
+ bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}"
+
+EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-gtk-doc --enable-gtk-doc-html --disable-gtk-doc-pdf', \
+ '--disable-gtk-doc', d)} "
+
+# When building native recipes, disable gtkdoc, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+EXTRA_OECONF_prepend_class-native = "--disable-gtk-doc "
+EXTRA_OECONF_prepend_class-nativesdk = "--disable-gtk-doc "
+
+DEPENDS_append_class-target = " gtk-doc-native qemu-native"
+
+# Even though gtkdoc is disabled on -native, gtk-doc package is still
+# needed for m4 macros.
+DEPENDS_append_class-native = " gtk-doc-native"
+DEPENDS_append_class-nativesdk = " gtk-doc-native"
# The documentation directory, where the infrastructure will be copied.
# gtkdocize has a default of "." so to handle out-of-tree builds set this to $S.
GTKDOC_DOCDIR ?= "${S}"
-DEPENDS_append = " gtk-doc-stub-native"
+do_configure_prepend () {
+ ( cd ${S}; gtkdocize --docdir ${GTKDOC_DOCDIR} || true )
+}
+
+inherit qemu
-EXTRA_OECONF_append = "\
- --disable-gtk-doc \
- --disable-gtk-doc-html \
- --disable-gtk-doc-pdf \
-"
+export STAGING_DIR_HOST
-do_configure_prepend () {
- ( cd ${S}; gtkdocize --docdir ${GTKDOC_DOCDIR} )
+do_compile_prepend_class-target () {
+
+ # Write out a qemu wrapper that will be given to gtkdoc-scangobj so that it
+ # can run target helper binaries through that.
+ qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
+ cat > ${B}/gtkdoc-qemuwrapper << EOF
+#!/bin/sh
+# Use a modules directory which doesn't exist so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
+
+GIR_EXTRA_LIBS_PATH=\`find ${B} -name .libs| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH
+
+if test -d ".libs"; then
+ $qemu_binary ".libs/\$@"
+else
+ $qemu_binary "\$@"
+fi
+
+if [ \$? -ne 0 ]; then
+ echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
+ echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
+ exit 1
+fi
+EOF
+ chmod +x ${B}/gtkdoc-qemuwrapper
}
+
inherit pkgconfig
diff --git a/import-layers/yocto-poky/meta/classes/gtk-immodules-cache.bbclass b/import-layers/yocto-poky/meta/classes/gtk-immodules-cache.bbclass
index c099cd38e..ebbc9dea8 100644
--- a/import-layers/yocto-poky/meta/classes/gtk-immodules-cache.bbclass
+++ b/import-layers/yocto-poky/meta/classes/gtk-immodules-cache.bbclass
@@ -15,7 +15,8 @@ if [ "x$D" != "x" ]; then
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-2.0')} \
$IMFILES > $D${libdir}/gtk-2.0/2.10.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-2.0/2.10.0/immodules.cache
- elif [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
+ fi
+ if [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-3.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-3.0')} \
$IMFILES > $D${libdir}/gtk-3.0/3.0.0/immodules.cache 2>/dev/null &&
@@ -40,7 +41,8 @@ if [ "x$D" != "x" ]; then
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-2.0')} \
$IMFILES > $D${libdir}/gtk-2.0/2.10.0/immodules.cache 2>/dev/null &&
sed -i -e "s:$D::" $D${libdir}/gtk-2.0/2.10.0/immodules.cache
- elif [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
+ fi
+ if [ -x $D${bindir}/gtk-query-immodules-3.0 ]; then
IMFILES=$(ls $D${libdir}/gtk-3.0/*/immodules/*.so)
${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-3.0')} \
$IMFILES > $D${libdir}/gtk-3.0/3.0.0/immodules.cache 2>/dev/null &&
@@ -82,6 +84,6 @@ python __anonymous() {
gtkimmodules_check = d.getVar('GTKIMMODULES_PACKAGES', False)
if not gtkimmodules_check:
bb_filename = d.getVar('FILE', False)
- raise bb.build.FuncFailed("ERROR: %s inherits gtk-immodules-cache but doesn't set GTKIMMODULES_PACKAGES" % bb_filename)
+ bb.fatal("ERROR: %s inherits gtk-immodules-cache but doesn't set GTKIMMODULES_PACKAGES" % bb_filename)
}
diff --git a/import-layers/yocto-poky/meta/classes/gummiboot.bbclass b/import-layers/yocto-poky/meta/classes/gummiboot.bbclass
index 1ebb9462d..4f2dea6c3 100644
--- a/import-layers/yocto-poky/meta/classes/gummiboot.bbclass
+++ b/import-layers/yocto-poky/meta/classes/gummiboot.bbclass
@@ -34,6 +34,8 @@ efi_populate() {
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
@@ -72,7 +74,7 @@ python build_efi_cfg() {
try:
cfgfile = open(cfile, 'w')
except OSError:
- raise bb.build.funcFailed('Unable to open %s' % (cfile))
+ bb.fatal('Unable to open %s' % cfile)
cfgfile.write('# Automatically created by OE\n')
cfgfile.write('default %s\n' % (labels.split()[0]))
@@ -88,14 +90,14 @@ python build_efi_cfg() {
overrides = localdata.getVar('OVERRIDES', True)
if not overrides:
- raise bb.build.FuncFailed('OVERRIDES not defined')
+ bb.fatal('OVERRIDES not defined')
entryfile = "%s/%s.conf" % (s, label)
d.appendVar("GUMMIBOOT_ENTRIES", " " + entryfile)
try:
entrycfg = open(entryfile, "w")
except OSError:
- raise bb.build.funcFailed('Unable to open %s' % (entryfile))
+ bb.fatal('Unable to open %s' % entryfile)
localdata.setVar('OVERRIDES', label + ':' + overrides)
bb.data.update_data(localdata)
diff --git a/import-layers/yocto-poky/meta/classes/icecc.bbclass b/import-layers/yocto-poky/meta/classes/icecc.bbclass
index e1c06c49c..a83789415 100644
--- a/import-layers/yocto-poky/meta/classes/icecc.bbclass
+++ b/import-layers/yocto-poky/meta/classes/icecc.bbclass
@@ -47,7 +47,8 @@ def get_cross_kernel_cc(bb,d):
# evaluate the expression by the shell if necessary
if '`' in kernel_cc or '$(' in kernel_cc:
- kernel_cc = os.popen("echo %s" % kernel_cc).read()[:-1]
+ import subprocess
+ kernel_cc = subprocess.check_output("echo %s" % kernel_cc, shell=True).decode("utf-8")[:-1]
kernel_cc = d.expand(kernel_cc)
kernel_cc = kernel_cc.replace('ccache', '').strip()
@@ -220,9 +221,14 @@ def icecc_get_and_check_tool(bb, d, tool):
# PATH or icecc-create-env script will silently create an invalid
# compiler environment package.
t = icecc_get_tool(bb, d, tool)
- if t and os.popen("readlink -f %s" % t).read()[:-1] == get_icecc(d):
- bb.error("%s is a symlink to %s in PATH and this prevents icecc from working" % (t, get_icecc(d)))
- return ""
+ if t:
+ import subprocess
+ link_path = subprocess.check_output("readlink -f %s" % t, shell=True).decode("utf-8")[:-1]
+ if link_path == get_icecc(d):
+ bb.error("%s is a symlink to %s in PATH and this prevents icecc from working" % (t, get_icecc(d)))
+ return ""
+ else:
+ return t
else:
return t
diff --git a/import-layers/yocto-poky/meta/classes/image-buildinfo.bbclass b/import-layers/yocto-poky/meta/classes/image-buildinfo.bbclass
index 197b24235..3003f5d25 100644
--- a/import-layers/yocto-poky/meta/classes/image-buildinfo.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image-buildinfo.bbclass
@@ -32,7 +32,7 @@ def get_layer_git_status(path):
shell=True,
stderr=subprocess.STDOUT)
return ""
- except subprocess.CalledProcessError, ex:
+ except subprocess.CalledProcessError as ex:
# Silently treat errors as "modified", without checking for the
# (expected) return code 1 in a modified git repo. For example, we get
# output and a 129 return code when a layer isn't a git repo at all.
@@ -71,7 +71,9 @@ Build Configuration: |
Layer Revisions: |
-----------------------
''',
- get_layer_revs(d)
+ get_layer_revs(d),
+ '''
+'''
))
}
diff --git a/import-layers/yocto-poky/meta/classes/image-live.bbclass b/import-layers/yocto-poky/meta/classes/image-live.bbclass
index c8a861060..4a634dca9 100644
--- a/import-layers/yocto-poky/meta/classes/image-live.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image-live.bbclass
@@ -43,7 +43,7 @@ ROOT_LIVE ?= "root=/dev/ram0"
INITRD_IMAGE_LIVE ?= "core-image-minimal-initramfs"
INITRD_LIVE ?= "${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_LIVE}-${MACHINE}.cpio.gz"
-ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.ext4"
+ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.ext4"
IMAGE_TYPEDEP_live = "ext4"
IMAGE_TYPEDEP_iso = "ext4"
@@ -56,7 +56,7 @@ python() {
if image_b == initrd_i:
bb.error('INITRD_IMAGE_LIVE %s cannot use image live, hddimg or iso.' % initrd_i)
bb.fatal('Check IMAGE_FSTYPES and INITRAMFS_FSTYPES settings.')
- else:
+ elif initrd_i:
d.appendVarFlag('do_bootimg', 'depends', ' %s:do_image_complete' % initrd_i)
}
@@ -144,14 +144,14 @@ build_iso() {
if [ "${PCBIOS}" = "1" ] && [ "${EFI}" != "1" ] ; then
# PCBIOS only media
mkisofs -V ${BOOTIMG_VOLUME_ID} \
- -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
+ -o ${IMGDEPLOYDIR}/${IMAGE_NAME}.iso \
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
$mkisofs_compress_opts \
${MKISOFS_OPTIONS} $mkisofs_iso_level ${ISODIR}
else
# EFI only OR EFI+PCBIOS
mkisofs -A ${BOOTIMG_VOLUME_ID} -V ${BOOTIMG_VOLUME_ID} \
- -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso \
+ -o ${IMGDEPLOYDIR}/${IMAGE_NAME}.iso \
-b ${ISO_BOOTIMG} -c ${ISO_BOOTCAT} \
$mkisofs_compress_opts ${MKISOFS_OPTIONS} $mkisofs_iso_level \
-eltorito-alt-boot -eltorito-platform efi \
@@ -160,7 +160,7 @@ build_iso() {
isohybrid_args="-u"
fi
- isohybrid $isohybrid_args ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.iso
+ isohybrid $isohybrid_args ${IMGDEPLOYDIR}/${IMAGE_NAME}.iso
}
build_fat_img() {
@@ -202,12 +202,6 @@ build_fat_img() {
# Determine the final size in blocks accounting for some padding
BLOCKS=$(expr $(expr $SECTORS / 2) + ${BOOTIMG_EXTRA_SPACE})
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation is
- # done in blocks, thus the mod by 16 instead of 32.
- BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16)))
-
# mkdosfs will sometimes use FAT16 when it is not appropriate,
# resulting in a boot failure from SYSLINUX. Use FAT32 for
# images larger than 512MB, otherwise let mkdosfs decide.
@@ -258,13 +252,13 @@ build_hddimg() {
fi
fi
- build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
+ build_fat_img ${HDDDIR} ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg
if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_install
fi
- chmod 644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
+ chmod 644 ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg
fi
}
diff --git a/import-layers/yocto-poky/meta/classes/image-swab.bbclass b/import-layers/yocto-poky/meta/classes/image-swab.bbclass
deleted file mode 100644
index 6b02cadaf..000000000
--- a/import-layers/yocto-poky/meta/classes/image-swab.bbclass
+++ /dev/null
@@ -1,94 +0,0 @@
-HOST_DATA ?= "${TMPDIR}/host-contamination-data/"
-SWABBER_REPORT ?= "${LOG_DIR}/swabber/"
-SWABBER_LOGS ?= "${LOG_DIR}/contamination-logs"
-TRACE_LOGDIR ?= "${SWABBER_LOGS}/${PACKAGE_ARCH}"
-TRACE_LOGFILE = "${TRACE_LOGDIR}/${PN}-${PV}"
-
-SWAB_ORIG_TASK := "${BB_DEFAULT_TASK}"
-BB_DEFAULT_TASK = "generate_swabber_report"
-
-# Several recipes don't build with parallel make when run under strace
-# Ideally these should be fixed but as a temporary measure disable parallel
-# builds for troublesome recipes
-PARALLEL_MAKE_pn-openssl = ""
-PARALLEL_MAKE_pn-glibc = ""
-PARALLEL_MAKE_pn-glib-2.0 = ""
-PARALLEL_MAKE_pn-libxml2 = ""
-PARALLEL_MAKE_pn-readline = ""
-PARALLEL_MAKE_pn-util-linux = ""
-PARALLEL_MAKE_pn-binutils = ""
-PARALLEL_MAKE_pn-bison = ""
-PARALLEL_MAKE_pn-cmake = ""
-PARALLEL_MAKE_pn-elfutils = ""
-PARALLEL_MAKE_pn-gcc = ""
-PARALLEL_MAKE_pn-gcc-runtime = ""
-PARALLEL_MAKE_pn-m4 = ""
-PARALLEL_MAKE_pn-opkg = ""
-PARALLEL_MAKE_pn-pkgconfig = ""
-PARALLEL_MAKE_pn-prelink = ""
-PARALLEL_MAKE_pn-rpm = ""
-PARALLEL_MAKE_pn-tcl = ""
-PARALLEL_MAKE_pn-beecrypt = ""
-PARALLEL_MAKE_pn-curl = ""
-PARALLEL_MAKE_pn-gmp = ""
-PARALLEL_MAKE_pn-libmpc = ""
-PARALLEL_MAKE_pn-libxslt = ""
-PARALLEL_MAKE_pn-lzo = ""
-PARALLEL_MAKE_pn-popt = ""
-PARALLEL_MAKE_pn-linux-wrs = ""
-PARALLEL_MAKE_pn-libgcrypt = ""
-PARALLEL_MAKE_pn-gpgme = ""
-PARALLEL_MAKE_pn-udev = ""
-PARALLEL_MAKE_pn-gnutls = ""
-
-python() {
- # NOTE: It might be useful to detect host infection on native and cross
- # packages but as it turns out to be pretty hard to do this for all native
- # and cross packages which aren't swabber-native or one of its dependencies
- # I have ignored them for now...
- if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('nativesdk', d) and not bb.data.inherits_class('cross', d):
- deps = (d.getVarFlag('do_setscene', 'depends', True) or "").split()
- deps.append('strace-native:do_populate_sysroot')
- d.setVarFlag('do_setscene', 'depends', " ".join(deps))
- logdir = d.expand("${TRACE_LOGDIR}")
- bb.utils.mkdirhier(logdir)
- else:
- d.setVar('STRACEFUNC', '')
-}
-
-STRACEPID = "${@os.getpid()}"
-STRACEFUNC = "imageswab_attachstrace"
-
-do_configure[prefuncs] += "${STRACEFUNC}"
-do_compile[prefuncs] += "${STRACEFUNC}"
-
-imageswab_attachstrace () {
- STRACE=`which strace`
-
- if [ -x "$STRACE" ]; then
- swabber-strace-attach "$STRACE -f -o ${TRACE_LOGFILE}-${BB_CURRENTTASK}.log -e trace=open,execve -p ${STRACEPID}" "${TRACE_LOGFILE}-traceattach-${BB_CURRENTTASK}.log"
- fi
-}
-
-do_generate_swabber_report () {
-
- update_distro ${HOST_DATA}
-
- # Swabber can't create the directory for us
- mkdir -p ${SWABBER_REPORT}
-
- REPORTSTAMP=${SWAB_ORIG_TASK}-`date +%2m%2d%2H%2M%Y`
-
- if [ `which ccache` ] ; then
- CCACHE_DIR=`( ccache -s | grep "cache directory" | grep -o '[^ ]*$' 2> /dev/null )`
- fi
-
- if [ "$(ls -A ${HOST_DATA})" ]; then
- echo "Generating swabber report"
- swabber -d ${HOST_DATA} -l ${SWABBER_LOGS} -o ${SWABBER_REPORT}/report-${REPORTSTAMP}.txt -r ${SWABBER_REPORT}/extra_report-${REPORTSTAMP}.txt -c all -p ${TOPDIR} -f ${OEROOT}/meta/conf/swabber ${TOPDIR} ${OEROOT} ${CCACHE_DIR}
- else
- echo "No host data, cannot generate swabber report."
- fi
-}
-addtask generate_swabber_report after do_${SWAB_ORIG_TASK}
-do_generate_swabber_report[depends] = "swabber-native:do_populate_sysroot"
diff --git a/import-layers/yocto-poky/meta/classes/image-vm.bbclass b/import-layers/yocto-poky/meta/classes/image-vm.bbclass
index 47f73261f..2f35d6b4d 100644
--- a/import-layers/yocto-poky/meta/classes/image-vm.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image-vm.bbclass
@@ -23,23 +23,24 @@ do_bootdirectdisk[depends] += "dosfstools-native:do_populate_sysroot \
syslinux-native:do_populate_sysroot \
parted-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
- ${PN}:do_image_ext4 \
+ ${PN}:do_image_${VM_ROOTFS_TYPE} \
"
-IMAGE_TYPEDEP_vmdk = "ext4"
-IMAGE_TYPEDEP_vdi = "ext4"
-IMAGE_TYPEDEP_qcow2 = "ext4"
-IMAGE_TYPEDEP_hdddirect = "ext4"
+IMAGE_TYPEDEP_vmdk = "${VM_ROOTFS_TYPE}"
+IMAGE_TYPEDEP_vdi = "${VM_ROOTFS_TYPE}"
+IMAGE_TYPEDEP_qcow2 = "${VM_ROOTFS_TYPE}"
+IMAGE_TYPEDEP_hdddirect = "${VM_ROOTFS_TYPE}"
IMAGE_TYPES_MASKED += "vmdk vdi qcow2 hdddirect"
-ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.ext4"
+VM_ROOTFS_TYPE ?= "ext4"
+ROOTFS ?= "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${VM_ROOTFS_TYPE}"
# Used by bootloader
LABELS_VM ?= "boot"
ROOT_VM ?= "root=/dev/sda2"
# Using an initramfs is optional. Enable it by setting INITRD_IMAGE_VM.
INITRD_IMAGE_VM ?= ""
-INITRD_VM ?= "${@'${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE_VM}-${MACHINE}.cpio.gz' if '${INITRD_IMAGE_VM}' else ''}"
+INITRD_VM ?= "${@'${IMGDEPLOYDIR}/${INITRD_IMAGE_VM}-${MACHINE}.cpio.gz' if '${INITRD_IMAGE_VM}' else ''}"
do_bootdirectdisk[depends] += "${@'${INITRD_IMAGE_VM}:do_image_complete' if '${INITRD_IMAGE_VM}' else ''}"
BOOTDD_VOLUME_ID ?= "boot"
@@ -51,7 +52,7 @@ DISK_SIGNATURE[vardepsexclude] = "DISK_SIGNATURE_GENERATED"
build_boot_dd() {
HDDDIR="${S}/hdd/boot"
HDDIMG="${S}/hdd.image"
- IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect
+ IMAGE=${IMGDEPLOYDIR}/${IMAGE_NAME}.hdddirect
populate_kernel $HDDDIR
@@ -65,12 +66,6 @@ build_boot_dd() {
BLOCKS=`du -bks $HDDDIR | cut -f 1`
BLOCKS=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}`
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation is
- # done in blocks, thus the mod by 16 instead of 32.
- BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16)))
-
# Remove it since mkdosfs would fail when it exists
rm -f $HDDIMG
mkdosfs -n ${BOOTDD_VOLUME_ID} -S 512 -C $HDDIMG $BLOCKS
@@ -109,9 +104,9 @@ build_boot_dd() {
dd if=$HDDIMG of=$IMAGE conv=notrunc seek=1 bs=512
dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512
- cd ${DEPLOY_DIR_IMAGE}
- rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect
- ln -s ${IMAGE_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect
+ cd ${IMGDEPLOYDIR}
+
+ ln -sf ${IMAGE_NAME}.hdddirect ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.hdddirect
}
python do_bootdirectdisk() {
@@ -146,8 +141,9 @@ DISK_SIGNATURE_GENERATED := "${@generate_disk_signature()}"
run_qemu_img (){
type="$1"
- qemu-img convert -O $type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.$type
- ln -sf ${IMAGE_NAME}.$type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.$type
+ qemu-img convert -O $type ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.hdddirect ${IMGDEPLOYDIR}/${IMAGE_NAME}.$type
+
+ ln -sf ${IMAGE_NAME}.$type ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type
}
create_vmdk_image () {
run_qemu_img vmdk
diff --git a/import-layers/yocto-poky/meta/classes/image.bbclass b/import-layers/yocto-poky/meta/classes/image.bbclass
index 8bfd24193..6111f6d26 100644
--- a/import-layers/yocto-poky/meta/classes/image.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image.bbclass
@@ -74,6 +74,8 @@ IMAGE_INSTALL[type] = "list"
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL}"
PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}"
+IMGDEPLOYDIR = "${WORKDIR}/deploy-${PN}-image-complete"
+
# Images are generally built explicitly, do not need to be part of world.
EXCLUDE_FROM_WORLD = "1"
@@ -114,11 +116,11 @@ python () {
def rootfs_variables(d):
from oe.rootfs import variable_depends
- variables = ['IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE',
- 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','RM_OLD_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
+ variables = ['IMAGE_DEVICE_TABLE','IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE',
+ 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
- 'COMPRESSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED']
+ 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
variables.extend(rootfs_command_variables(d))
variables.extend(variable_depends(d))
return " ".join(variables)
@@ -166,7 +168,7 @@ python () {
if temp:
bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN', True), feature, ' '.join(list(temp))))
- d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
+ d.setVar('IMAGE_FEATURES', ' '.join(sorted(list(remain_features))))
check_image_features(d)
initramfs_image = d.getVar('INITRAMFS_IMAGE', True) or ""
@@ -198,6 +200,17 @@ fakeroot python do_rootfs () {
from oe.rootfs import create_rootfs
from oe.manifest import create_manifest
+ # NOTE: if you add, remove or significantly refactor the stages of this
+ # process then you should recalculate the weightings here. This is quite
+ # easy to do - just change the MultiStageProgressReporter line temporarily
+ # to pass debug=True as the last parameter and you'll get a printout of
+ # the weightings as well as a map to the lines where next_stage() was
+ # called. Of course this isn't critical, but it helps to keep the progress
+ # reporting accurate.
+ stage_weights = [1, 203, 354, 186, 65, 4228, 1, 353, 49, 330, 382, 23, 1]
+ progress_reporter = bb.progress.MultiStageProgressReporter(d, stage_weights)
+ progress_reporter.next_stage()
+
# Handle package exclusions
excl_pkgs = d.getVar("PACKAGE_EXCLUDE", True).split()
inst_pkgs = d.getVar("PACKAGE_INSTALL", True).split()
@@ -230,11 +243,15 @@ fakeroot python do_rootfs () {
# Generate the initial manifest
create_manifest(d)
- # Generate rootfs
- create_rootfs(d)
+ progress_reporter.next_stage()
+
+ # generate rootfs
+ create_rootfs(d, progress_reporter=progress_reporter)
+
+ progress_reporter.finish()
}
do_rootfs[dirs] = "${TOPDIR}"
-do_rootfs[cleandirs] += "${S}"
+do_rootfs[cleandirs] += "${S} ${IMGDEPLOYDIR}"
do_rootfs[umask] = "022"
addtask rootfs before do_build
@@ -258,8 +275,43 @@ fakeroot python do_image_complete () {
}
do_image_complete[dirs] = "${TOPDIR}"
do_image_complete[umask] = "022"
+SSTATETASKS += "do_image_complete"
+SSTATE_SKIP_CREATION_task-image-complete = '1'
+do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}"
+do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
+do_image_complete[stamp-extra-info] = "${MACHINE}"
addtask do_image_complete after do_image before do_build
+# Add image-level QA/sanity checks to IMAGE_QA_COMMANDS
+#
+# IMAGE_QA_COMMANDS += " \
+# image_check_everything_ok \
+# "
+# This task runs all functions in IMAGE_QA_COMMANDS after the image
+# construction has completed in order to validate the resulting image.
+fakeroot python do_image_qa () {
+ from oe.utils import ImageQAFailed
+
+ qa_cmds = (d.getVar('IMAGE_QA_COMMANDS', True) or '').split()
+ qamsg = ""
+
+ for cmd in qa_cmds:
+ try:
+ bb.build.exec_func(cmd, d)
+ except oe.utils.ImageQAFailed as e:
+ qamsg = qamsg + '\tImage QA function %s failed: %s\n' % (e.name, e.description)
+ except bb.build.FuncFailed as e:
+ qamsg = qamsg + '\tImage QA function %s failed' % e.name
+ if e.logfile:
+ qamsg = qamsg + ' (log file is located at %s)' % e.logfile
+ qamsg = qamsg + '\n'
+
+ if qamsg:
+ imgname = d.getVar('IMAGE_NAME', True)
+ bb.fatal("QA errors found whilst validating image: %s\n%s" % (imgname, qamsg))
+}
+addtask do_image_qa after do_image_complete before do_build
+
#
# Write environment variables used by wic
# to tmp/sysroots/<machine>/imgdata/<image>.env
@@ -287,6 +339,7 @@ def setup_debugfs_variables(d):
d.appendVar('IMAGE_ROOTFS', '-dbg')
d.appendVar('IMAGE_LINK_NAME', '-dbg')
d.appendVar('IMAGE_NAME','-dbg')
+ d.setVar('IMAGE_BUILDING_DEBUGFS', 'true')
debugfs_image_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS', True)
if debugfs_image_fstypes:
d.setVar('IMAGE_FSTYPES', debugfs_image_fstypes)
@@ -297,8 +350,16 @@ python setup_debugfs () {
python () {
vardeps = set()
- ctypes = d.getVar('COMPRESSIONTYPES', True).split()
- old_overrides = d.getVar('OVERRIDES', 0)
+ # We allow CONVERSIONTYPES to have duplicates. That avoids breaking
+ # derived distros when OE-core or some other layer independently adds
+ # the same type. There is still only one command for each type, but
+ # presumably the commands will do the same when the type is the same,
+ # even when added in different places.
+ #
+ # Without de-duplication, gen_conversion_cmds() below
+ # would create the same compression command multiple times.
+ ctypes = set(d.getVar('CONVERSIONTYPES', True).split())
+ old_overrides = d.getVar('OVERRIDES', False)
def _image_base_type(type):
basetype = type
@@ -354,6 +415,7 @@ python () {
d.appendVarFlag('do_image', 'vardeps', ' '.join(vardeps))
maskedtypes = (d.getVar('IMAGE_TYPES_MASKED', True) or "").split()
+ maskedtypes = [dbg + t for t in maskedtypes for dbg in ("", "debugfs_")]
for t in basetypes:
vardeps = set()
@@ -386,21 +448,30 @@ python () {
cmds.append("\t" + image_cmd)
else:
bb.fatal("No IMAGE_CMD defined for IMAGE_FSTYPES entry '%s' - possibly invalid type name or missing support class" % t)
- cmds.append(localdata.expand("\tcd ${DEPLOY_DIR_IMAGE}"))
+ cmds.append(localdata.expand("\tcd ${IMGDEPLOYDIR}"))
+
+ # Since a copy of IMAGE_CMD_xxx will be inlined within do_image_xxx,
+ # prevent a redundant copy of IMAGE_CMD_xxx being emitted as a function.
+ d.delVarFlag('IMAGE_CMD_' + realt, 'func')
rm_tmp_images = set()
def gen_conversion_cmds(bt):
for ctype in ctypes:
- if bt.endswith("." + ctype):
+ if bt[bt.find('.') + 1:] == ctype:
type = bt[0:-len(ctype) - 1]
if type.startswith("debugfs_"):
type = type[8:]
# Create input image first.
gen_conversion_cmds(type)
localdata.setVar('type', type)
- cmds.append("\t" + localdata.getVar("COMPRESS_CMD_" + ctype, True))
+ cmd = "\t" + (localdata.getVar("CONVERSION_CMD_" + ctype, True) or localdata.getVar("COMPRESS_CMD_" + ctype, True))
+ if cmd not in cmds:
+ cmds.append(cmd)
+ vardeps.add('CONVERSION_CMD_' + ctype)
vardeps.add('COMPRESS_CMD_' + ctype)
- subimages.append(type + "." + ctype)
+ subimage = type + "." + ctype
+ if subimage not in subimages:
+ subimages.append(subimage)
if type not in alltypes:
rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
@@ -467,6 +538,12 @@ def get_rootfs_size(d):
base_size += rootfs_alignment - 1
base_size -= base_size % rootfs_alignment
+ # Do not check image size of the debugfs image. This is not supposed
+ # to be deployed, etc. so it doesn't make sense to limit the size
+ # of the debug.
+ if (d.getVar('IMAGE_BUILDING_DEBUGFS', True) or "") == "true":
+ return base_size
+
# Check the rootfs size against IMAGE_ROOTFS_MAXSIZE (if set)
if rootfs_maxsize:
rootfs_maxsize_int = int(rootfs_maxsize)
@@ -495,28 +572,26 @@ python set_image_size () {
#
python create_symlinks() {
- deploy_dir = d.getVar('DEPLOY_DIR_IMAGE', True)
+ deploy_dir = d.getVar('IMGDEPLOYDIR', True)
img_name = d.getVar('IMAGE_NAME', True)
link_name = d.getVar('IMAGE_LINK_NAME', True)
manifest_name = d.getVar('IMAGE_MANIFEST', True)
taskname = d.getVar("BB_CURRENTTASK", True)
subimages = (d.getVarFlag("do_" + taskname, 'subimages', False) or "").split()
imgsuffix = d.getVarFlag("do_" + taskname, 'imgsuffix', True) or d.expand("${IMAGE_NAME_SUFFIX}.")
- os.chdir(deploy_dir)
if not link_name:
return
for type in subimages:
- if os.path.exists(img_name + imgsuffix + type):
- dst = deploy_dir + "/" + link_name + "." + type
- src = img_name + imgsuffix + type
+ dst = os.path.join(deploy_dir, link_name + "." + type)
+ src = img_name + imgsuffix + type
+ if os.path.exists(os.path.join(deploy_dir, src)):
bb.note("Creating symlink: %s -> %s" % (dst, src))
if os.path.islink(dst):
- if d.getVar('RM_OLD_IMAGE', True) == "1" and \
- os.path.exists(os.path.realpath(dst)):
- os.remove(os.path.realpath(dst))
os.remove(dst)
os.symlink(src, dst)
+ else:
+ bb.note("Skipping symlink, source does not exist: %s -> %s" % (dst, src))
}
MULTILIBRE_ALLOW_REP =. "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|${sysconfdir}|${nonarch_base_libdir}/udev|/lib/modules/[^/]*/modules.*|"
diff --git a/import-layers/yocto-poky/meta/classes/image_types.bbclass b/import-layers/yocto-poky/meta/classes/image_types.bbclass
index 53af7ca8d..1ce8334e3 100644
--- a/import-layers/yocto-poky/meta/classes/image_types.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image_types.bbclass
@@ -11,41 +11,40 @@ IMAGE_ROOTFS_ALIGNMENT ?= "1"
def imagetypes_getdepends(d):
def adddep(depstr, deps):
- for i in (depstr or "").split():
- if i not in deps:
- deps.append(i)
+ for d in (depstr or "").split():
+ # Add task dependency if not already present
+ if ":" not in d:
+ d += ":do_populate_sysroot"
+ deps.add(d)
- deps = []
- ctypes = d.getVar('COMPRESSIONTYPES', True).split()
fstypes = set((d.getVar('IMAGE_FSTYPES', True) or "").split())
fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS', True) or "").split())
- for type in fstypes:
- if type in ["vmdk", "vdi", "qcow2", "hdddirect", "live", "iso", "hddimg"]:
- type = "ext4"
- basetype = type
- for ctype in ctypes:
- if type.endswith("." + ctype):
- basetype = type[:-len("." + ctype)]
- adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
- break
+
+ deps = set()
+ for typestring in fstypes:
+ types = typestring.split(".")
+ basetype, resttypes = types[0], types[1:]
+
+ adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype, True) or "").split():
adddep(d.getVar('IMAGE_DEPENDS_%s' % typedepends, True) , deps)
- adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype, True) , deps)
-
- depstr = ""
- for dep in deps:
- depstr += " " + dep + ":do_populate_sysroot"
- return depstr
+ for ctype in resttypes:
+ adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype, True), deps)
+ adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype, True), deps)
+ # Sort the set so that ordering is consistant
+ return " ".join(sorted(deps))
-XZ_COMPRESSION_LEVEL ?= "-e -6"
+XZ_COMPRESSION_LEVEL ?= "-3"
XZ_INTEGRITY_CHECK ?= "crc32"
XZ_THREADS ?= "-T 0"
+ZIP_COMPRESSION_LEVEL ?= "-9"
+
JFFS2_SUM_EXTRA_ARGS ?= ""
-IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 ${EXTRA_IMAGECMD}"
+IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 ${EXTRA_IMAGECMD}"
-IMAGE_CMD_cramfs = "mkfs.cramfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cramfs ${EXTRA_IMAGECMD}"
+IMAGE_CMD_cramfs = "mkfs.cramfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cramfs ${EXTRA_IMAGECMD}"
oe_mkext234fs () {
fstype=$1
@@ -65,8 +64,8 @@ oe_mkext234fs () {
eval COUNT=\"$MIN_COUNT\"
fi
# Create a sparse image block
- dd if=/dev/zero of=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
- mkfs.$fstype -F $extra_imagecmd ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}
+ dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
+ mkfs.$fstype -F $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -d ${IMAGE_ROOTFS}
}
IMAGE_CMD_ext2 = "oe_mkext234fs ext2 ${EXTRA_IMAGECMD}"
@@ -76,16 +75,16 @@ IMAGE_CMD_ext4 = "oe_mkext234fs ext4 ${EXTRA_IMAGECMD}"
MIN_BTRFS_SIZE ?= "16384"
IMAGE_CMD_btrfs () {
if [ ${ROOTFS_SIZE} -gt ${MIN_BTRFS_SIZE} ]; then
- dd if=/dev/zero of=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs count=${ROOTFS_SIZE} bs=1024
- mkfs.btrfs ${EXTRA_IMAGECMD} -r ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs
+ dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs count=${ROOTFS_SIZE} bs=1024
+ mkfs.btrfs ${EXTRA_IMAGECMD} -r ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.btrfs
else
bbfatal "Rootfs is too small for BTRFS (Rootfs Actual Size: ${ROOTFS_SIZE}, BTRFS Minimum Size: ${MIN_BTRFS_SIZE})"
fi
}
-IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs ${EXTRA_IMAGECMD} -noappend"
-IMAGE_CMD_squashfs-xz = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-xz ${EXTRA_IMAGECMD} -noappend -comp xz"
-IMAGE_CMD_squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lzo ${EXTRA_IMAGECMD} -noappend -comp lzo"
+IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs ${EXTRA_IMAGECMD} -noappend"
+IMAGE_CMD_squashfs-xz = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-xz ${EXTRA_IMAGECMD} -noappend -comp xz"
+IMAGE_CMD_squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lzo ${EXTRA_IMAGECMD} -noappend -comp lzo"
# By default, tar from the host is used, which can be quite old. If
# you need special parameters (like --xattrs) which are only supported
@@ -98,18 +97,25 @@ IMAGE_CMD_squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE
# In practice, it turned out to be not needed when creating archives and
# required when extracting, but it seems prudent to use it in both cases.
IMAGE_CMD_TAR ?= "tar"
-IMAGE_CMD_tar = "${IMAGE_CMD_TAR} -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} ."
+IMAGE_CMD_tar = "${IMAGE_CMD_TAR} -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} ."
do_image_cpio[cleandirs] += "${WORKDIR}/cpio_append"
IMAGE_CMD_cpio () {
- (cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
- if [ ! -L ${IMAGE_ROOTFS}/init -a ! -e ${IMAGE_ROOTFS}/init ]; then
- if [ -L ${IMAGE_ROOTFS}/sbin/init -o -e ${IMAGE_ROOTFS}/sbin/init ]; then
- ln -sf /sbin/init ${WORKDIR}/cpio_append/init
- else
- touch ${WORKDIR}/cpio_append/init
+ (cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
+ # We only need the /init symlink if we're building the real
+ # image. The -dbg image doesn't need it! By being clever
+ # about this we also avoid 'touch' below failing, as it
+ # might be trying to touch /sbin/init on the host since both
+ # the normal and the -dbg image share the same WORKDIR
+ if [ "${IMAGE_BUILDING_DEBUGFS}" != "true" ]; then
+ if [ ! -L ${IMAGE_ROOTFS}/init ] && [ ! -e ${IMAGE_ROOTFS}/init ]; then
+ if [ -L ${IMAGE_ROOTFS}/sbin/init ] || [ -e ${IMAGE_ROOTFS}/sbin/init ]; then
+ ln -sf /sbin/init ${WORKDIR}/cpio_append/init
+ else
+ touch ${WORKDIR}/cpio_append/init
+ fi
+ (cd ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
fi
- (cd ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
fi
}
@@ -117,8 +123,8 @@ ELF_KERNEL ?= "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
ELF_APPEND ?= "ramdisk_size=32768 root=/dev/ram0 rw console="
IMAGE_CMD_elf () {
- test -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf && rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf
- mkelfImage --kernel=${ELF_KERNEL} --initrd=${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.cpio.gz --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf --append='${ELF_APPEND}' ${EXTRA_IMAGECMD}
+ test -f ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf && rm -f ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf
+ mkelfImage --kernel=${ELF_KERNEL} --initrd=${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.cpio.gz --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.elf --append='${ELF_APPEND}' ${EXTRA_IMAGECMD}
}
IMAGE_TYPEDEP_elf = "cpio.gz"
@@ -136,20 +142,20 @@ multiubi_mkfs() {
echo \[ubifs\] > ubinize${vname}-${IMAGE_NAME}.cfg
echo mode=ubi >> ubinize${vname}-${IMAGE_NAME}.cfg
- echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs >> ubinize${vname}-${IMAGE_NAME}.cfg
+ echo image=${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_id=0 >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_type=dynamic >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_name=${UBI_VOLNAME} >> ubinize${vname}-${IMAGE_NAME}.cfg
echo vol_flags=autoresize >> ubinize${vname}-${IMAGE_NAME}.cfg
- mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
- ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi ${ubinize_args} ubinize${vname}-${IMAGE_NAME}.cfg
+ mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ${mkubifs_args}
+ ubinize -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubi ${ubinize_args} ubinize${vname}-${IMAGE_NAME}.cfg
# Cleanup cfg file
- mv ubinize${vname}-${IMAGE_NAME}.cfg ${DEPLOY_DIR_IMAGE}/
+ mv ubinize${vname}-${IMAGE_NAME}.cfg ${IMGDEPLOYDIR}/
# Create own symlinks for 'named' volumes
if [ -n "$vname" ]; then
- cd ${DEPLOY_DIR_IMAGE}
+ cd ${IMGDEPLOYDIR}
if [ -e ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs ]; then
ln -sf ${IMAGE_NAME}${vname}${IMAGE_NAME_SUFFIX}.ubifs \
${IMAGE_LINK_NAME}${vname}.ubifs
@@ -176,9 +182,9 @@ IMAGE_CMD_ubi () {
multiubi_mkfs "${MKUBIFS_ARGS}" "${UBINIZE_ARGS}"
}
-IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}"
+IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}"
-WKS_FILE ?= "${IMAGE_BASENAME}.${MACHINE}.wks"
+WKS_FILE ??= "${IMAGE_BASENAME}.${MACHINE}.wks"
WKS_FILES ?= "${WKS_FILE} ${IMAGE_BASENAME}.wks"
WKS_SEARCH_PATH ?= "${THISDIR}:${@':'.join('%s/scripts/lib/wic/canned-wks' % l for l in '${BBPATH}:${COREBASE}'.split(':'))}"
WKS_FULL_PATH = "${@wks_search('${WKS_FILES}'.split(), '${WKS_SEARCH_PATH}') or ''}"
@@ -193,22 +199,76 @@ def wks_search(files, search_path):
if searched:
return searched
+WIC_CREATE_EXTRA_ARGS ?= ""
+
IMAGE_CMD_wic () {
- out="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}"
+ out="${IMGDEPLOYDIR}/${IMAGE_NAME}"
wks="${WKS_FULL_PATH}"
if [ -z "$wks" ]; then
bbfatal "No kickstart files from WKS_FILES were found: ${WKS_FILES}. Please set WKS_FILE or WKS_FILES appropriately."
fi
- BUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR_TARGET}/imgdata/" -e "${IMAGE_BASENAME}" -o "$out/"
+ BUILDDIR="${TOPDIR}" wic create "$wks" --vars "${STAGING_DIR_TARGET}/imgdata/" -e "${IMAGE_BASENAME}" -o "$out/" ${WIC_CREATE_EXTRA_ARGS}
mv "$out/build/$(basename "${wks%.wks}")"*.direct "$out${IMAGE_NAME_SUFFIX}.wic"
rm -rf "$out/"
}
IMAGE_CMD_wic[vardepsexclude] = "WKS_FULL_PATH WKS_FILES"
# Rebuild when the wks file or vars in WICVARS change
-USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${COMPRESSIONTYPES}'.split()), '1', '', d)}"
-do_image_wic[file-checksums] += "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
+USING_WIC = "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
+WKS_FILE_CHECKSUM = "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
+do_image_wic[file-checksums] += "${WKS_FILE_CHECKSUM}"
+
+python () {
+ if d.getVar('USING_WIC', True) and 'do_bootimg' in d:
+ bb.build.addtask('do_image_wic', '', 'do_bootimg', d)
+}
+
+python do_write_wks_template () {
+ """Write out expanded template contents to WKS_FULL_PATH."""
+ import re
+
+ template_body = d.getVar('_WKS_TEMPLATE', True)
+
+ # Remove any remnant variable references left behind by the expansion
+ # due to undefined variables
+ expand_var_regexp = re.compile(r"\${[^{}@\n\t :]+}")
+ while True:
+ new_body = re.sub(expand_var_regexp, '', template_body)
+ if new_body == template_body:
+ break
+ else:
+ template_body = new_body
+
+ wks_file = d.getVar('WKS_FULL_PATH', True)
+ with open(wks_file, 'w') as f:
+ f.write(template_body)
+}
+
+python () {
+ if d.getVar('USING_WIC', True):
+ wks_file_u = d.getVar('WKS_FULL_PATH', False)
+ wks_file = d.expand(wks_file_u)
+ base, ext = os.path.splitext(wks_file)
+ if ext == '.in' and os.path.exists(wks_file):
+ wks_out_file = os.path.join(d.getVar('WORKDIR', True), os.path.basename(base))
+ d.setVar('WKS_FULL_PATH', wks_out_file)
+ d.setVar('WKS_TEMPLATE_PATH', wks_file_u)
+ d.setVar('WKS_FILE_CHECKSUM', '${WKS_TEMPLATE_PATH}:True')
+
+ try:
+ with open(wks_file, 'r') as f:
+ body = f.read()
+ except (IOError, OSError) as exc:
+ pass
+ else:
+ # Previously, I used expandWithRefs to get the dependency list
+ # and add it to WICVARS, but there's no point re-parsing the
+ # file in process_wks_template as well, so just put it in
+ # a variable and let the metadata deal with the deps.
+ d.setVar('_WKS_TEMPLATE', body)
+ bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d)
+}
EXTRA_IMAGECMD = ""
@@ -262,25 +322,35 @@ IMAGE_TYPES = " \
wic wic.gz wic.bz2 wic.lzma \
"
-COMPRESSIONTYPES = "gz bz2 lzma xz lz4 sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum"
-COMPRESS_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-COMPRESS_CMD_gz = "gzip -f -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
-COMPRESS_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-COMPRESS_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_THREADS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
-COMPRESS_CMD_lz4 = "lz4c -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
-COMPRESS_CMD_sum = "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
-COMPRESS_CMD_md5sum = "md5sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.md5sum"
-COMPRESS_CMD_sha1sum = "sha1sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha1sum"
-COMPRESS_CMD_sha224sum = "sha224sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha224sum"
-COMPRESS_CMD_sha256sum = "sha256sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha256sum"
-COMPRESS_CMD_sha384sum = "sha384sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha384sum"
-COMPRESS_CMD_sha512sum = "sha512sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha512sum"
-COMPRESS_DEPENDS_lzma = "xz-native"
-COMPRESS_DEPENDS_gz = ""
-COMPRESS_DEPENDS_bz2 = "pbzip2-native"
-COMPRESS_DEPENDS_xz = "xz-native"
-COMPRESS_DEPENDS_lz4 = "lz4-native"
-COMPRESS_DEPENDS_sum = "mtd-utils-native"
+# Compression is a special case of conversion. The old variable
+# names are still supported for backward-compatibility. When defining
+# new compression or conversion commands, use CONVERSIONTYPES and
+# CONVERSION_CMD/DEPENDS.
+COMPRESSIONTYPES ?= ""
+
+CONVERSIONTYPES = "gz bz2 lzma xz lz4 zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap ${COMPRESSIONTYPES}"
+CONVERSION_CMD_lzma = "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
+CONVERSION_CMD_gz = "gzip -f -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
+CONVERSION_CMD_bz2 = "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
+CONVERSION_CMD_xz = "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_THREADS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
+CONVERSION_CMD_lz4 = "lz4c -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
+CONVERSION_CMD_zip = "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zip ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
+CONVERSION_CMD_sum = "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
+CONVERSION_CMD_md5sum = "md5sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.md5sum"
+CONVERSION_CMD_sha1sum = "sha1sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha1sum"
+CONVERSION_CMD_sha224sum = "sha224sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha224sum"
+CONVERSION_CMD_sha256sum = "sha256sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha256sum"
+CONVERSION_CMD_sha384sum = "sha384sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha384sum"
+CONVERSION_CMD_sha512sum = "sha512sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha512sum"
+CONVERSION_CMD_bmap = "bmaptool create ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.bmap"
+CONVERSION_DEPENDS_lzma = "xz-native"
+CONVERSION_DEPENDS_gz = ""
+CONVERSION_DEPENDS_bz2 = "pbzip2-native"
+CONVERSION_DEPENDS_xz = "xz-native"
+CONVERSION_DEPENDS_lz4 = "lz4-native"
+CONVERSION_DEPENDS_zip = "zip-native"
+CONVERSION_DEPENDS_sum = "mtd-utils-native"
+CONVERSION_DEPENDS_bmap = "bmap-tools-native"
RUNNABLE_IMAGE_TYPES ?= "ext2 ext3 ext4"
RUNNABLE_MACHINE_PATTERNS ?= "qemu"
@@ -296,4 +366,4 @@ IMAGE_TYPES_MASKED ?= ""
# The WICVARS variable is used to define list of bitbake variables used in wic code
# variables from this list is written to <image>.env file
-WICVARS ?= "BBLAYERS DEPLOY_DIR_IMAGE HDDDIR IMAGE_BASENAME IMAGE_BOOT_FILES IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD ISODIR MACHINE_ARCH ROOTFS_SIZE STAGING_DATADIR STAGING_DIR_NATIVE STAGING_LIBDIR TARGET_SYS"
+WICVARS ?= "BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE HDDDIR IMAGE_BASENAME IMAGE_BOOT_FILES IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD ISODIR MACHINE_ARCH ROOTFS_SIZE STAGING_DATADIR STAGING_DIR_NATIVE STAGING_LIBDIR TARGET_SYS"
diff --git a/import-layers/yocto-poky/meta/classes/image_types_uboot.bbclass b/import-layers/yocto-poky/meta/classes/image_types_uboot.bbclass
index 19e4aa2e4..6c8c1ff60 100644
--- a/import-layers/yocto-poky/meta/classes/image_types_uboot.bbclass
+++ b/import-layers/yocto-poky/meta/classes/image_types_uboot.bbclass
@@ -2,25 +2,25 @@ inherit image_types kernel-arch
oe_mkimage () {
mkimage -A ${UBOOT_ARCH} -O linux -T ramdisk -C $2 -n ${IMAGE_NAME} \
- -d ${DEPLOY_DIR_IMAGE}/$1 ${DEPLOY_DIR_IMAGE}/$1.u-boot
+ -d ${IMGDEPLOYDIR}/$1 ${IMGDEPLOYDIR}/$1.u-boot
if [ x$3 = x"clean" ]; then
rm $1
fi
}
-COMPRESSIONTYPES += "gz.u-boot bz2.u-boot lzma.u-boot u-boot"
+CONVERSIONTYPES += "gz.u-boot bz2.u-boot lzma.u-boot u-boot"
-COMPRESS_DEPENDS_u-boot = "u-boot-mkimage-native"
-COMPRESS_CMD_u-boot = "oe_mkimage ${IMAGE_NAME}.rootfs.${type} none"
+CONVERSION_DEPENDS_u-boot = "u-boot-mkimage-native"
+CONVERSION_CMD_u-boot = "oe_mkimage ${IMAGE_NAME}.rootfs.${type} none"
-COMPRESS_DEPENDS_gz.u-boot = "u-boot-mkimage-native"
-COMPRESS_CMD_gz.u-boot = "${COMPRESS_CMD_gz}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.gz gzip clean"
+CONVERSION_DEPENDS_gz.u-boot = "u-boot-mkimage-native"
+CONVERSION_CMD_gz.u-boot = "${CONVERSION_CMD_gz}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.gz gzip clean"
-COMPRESS_DEPENDS_bz2.u-boot = "u-boot-mkimage-native"
-COMPRESS_CMD_bz2.u-boot = "${COMPRESS_CMD_bz2}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.bz2 bzip2 clean"
+CONVERSION_DEPENDS_bz2.u-boot = "u-boot-mkimage-native"
+CONVERSION_CMD_bz2.u-boot = "${CONVERSION_CMD_bz2}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.bz2 bzip2 clean"
-COMPRESS_DEPENDS_lzma.u-boot = "u-boot-mkimage-native"
-COMPRESS_CMD_lzma.u-boot = "${COMPRESS_CMD_lzma}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.lzma lzma clean"
+CONVERSION_DEPENDS_lzma.u-boot = "u-boot-mkimage-native"
+CONVERSION_CMD_lzma.u-boot = "${CONVERSION_CMD_lzma}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.lzma lzma clean"
IMAGE_TYPES += "ext2.u-boot ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot ext3.gz.u-boot ext4.gz.u-boot cpio.gz.u-boot"
diff --git a/import-layers/yocto-poky/meta/classes/insane.bbclass b/import-layers/yocto-poky/meta/classes/insane.bbclass
index c57b21735..1d7377825 100644
--- a/import-layers/yocto-poky/meta/classes/insane.bbclass
+++ b/import-layers/yocto-poky/meta/classes/insane.bbclass
@@ -54,8 +54,8 @@ UNKNOWN_CONFIGURE_WHITELIST ?= "--enable-nls --disable-nls --disable-silent-rule
# feel free to add and correct.
#
# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian, 32bit?
-def package_qa_get_machine_dict():
- return {
+def package_qa_get_machine_dict(d):
+ machdata = {
"darwin9" : {
"arm" : (40, 0, 0, True, 32),
},
@@ -66,6 +66,8 @@ def package_qa_get_machine_dict():
"i586" : (3, 0, 0, True, 32),
"x86_64": (62, 0, 0, True, 64),
"epiphany": (4643, 0, 0, True, 32),
+ "mips": ( 8, 0, 0, False, 32),
+ "mipsel": ( 8, 0, 0, True, 32),
},
"linux" : {
"aarch64" : (183, 0, 0, True, 64),
@@ -87,6 +89,10 @@ def package_qa_get_machine_dict():
"mipsel": ( 8, 0, 0, True, 32),
"mips64": ( 8, 0, 0, False, 64),
"mips64el": ( 8, 0, 0, True, 64),
+ "mipsisa32r6": ( 8, 0, 0, False, 32),
+ "mipsisa32r6el": ( 8, 0, 0, True, 32),
+ "mipsisa64r6": ( 8, 0, 0, False, 64),
+ "mipsisa64r6el": ( 8, 0, 0, True, 64),
"nios2": (113, 0, 0, True, 32),
"s390": (22, 0, 0, False, 32),
"sh4": (42, 0, 0, True, 32),
@@ -168,18 +174,32 @@ def package_qa_get_machine_dict():
},
}
+ # Add in any extra user supplied data which may come from a BSP layer, removing the
+ # need to always change this class directly
+ extra_machdata = (d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS", True) or "").split()
+ for m in extra_machdata:
+ call = m + "(machdata, d)"
+ locs = { "machdata" : machdata, "d" : d}
+ machdata = bb.utils.better_eval(call, locs)
+
+ return machdata
-def package_qa_clean_path(path,d):
- """ Remove the common prefix from the path. In this case it is the TMPDIR"""
- return path.replace(d.getVar("TMPDIR", True) + "/", "")
+
+def package_qa_clean_path(path, d, pkg=None):
+ """
+ Remove redundant paths from the path for display. If pkg isn't set then
+ TMPDIR is stripped, otherwise PKGDEST/pkg is stripped.
+ """
+ if pkg:
+ path = path.replace(os.path.join(d.getVar("PKGDEST", True), pkg), "/")
+ return path.replace(d.getVar("TMPDIR", True), "/").replace("//", "/")
def package_qa_write_error(type, error, d):
logfile = d.getVar('QA_LOGFILE', True)
if logfile:
p = d.getVar('P', True)
- f = file( logfile, "a+")
- print >> f, "%s: %s [%s]" % (p, error, type)
- f.close()
+ with open(logfile, "a+") as f:
+ f.write("%s: %s [%s]\n" % (p, error, type))
def package_qa_handle_error(error_class, error_msg, d):
package_qa_write_error(error_class, error_msg, d)
@@ -400,7 +420,7 @@ def package_qa_check_unsafe_references_in_binaries(path, name, d, elf, messages)
sysroot_path_usr = sysroot_path + exec_prefix
try:
- ldd_output = bb.process.Popen(["prelink-rtld", "--root", sysroot_path, path], stdout=sub.PIPE).stdout.read()
+ ldd_output = bb.process.Popen(["prelink-rtld", "--root", sysroot_path, path], stdout=sub.PIPE).stdout.read().decode("utf-8")
except bb.process.CmdError:
error_msg = pn + ": prelink-rtld aborted when processing %s" % path
package_qa_handle_error("unsafe-references-in-binaries", error_msg, d)
@@ -495,6 +515,8 @@ def package_qa_check_arch(path,name,d, elf, messages):
"""
Check if archs are compatible
"""
+ import re
+
if not elf:
return
@@ -520,15 +542,15 @@ def package_qa_check_arch(path,name,d, elf, messages):
#if this will throw an exception, then fix the dict above
(machine, osabi, abiversion, littleendian, bits) \
- = package_qa_get_machine_dict()[target_os][target_arch]
+ = package_qa_get_machine_dict(d)[target_os][target_arch]
# Check the architecture and endiannes of the binary
- if not ((machine == elf.machine()) or \
- ((("virtual/kernel" in provides) or bb.data.inherits_class("module", d) ) and (target_os == "linux-gnux32" or target_os == "linux-gnun32"))):
- package_qa_add_message(messages, "arch", "Architecture did not match (%d to %d) on %s" % \
- (machine, elf.machine(), package_qa_clean_path(path,d)))
- elif not ((bits == elf.abiSize()) or \
- ((("virtual/kernel" in provides) or bb.data.inherits_class("module", d) ) and (target_os == "linux-gnux32" or target_os == "linux-gnun32"))):
+ is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \
+ (target_os == "linux-gnux32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE', True)))
+ if not ((machine == elf.machine()) or is_32):
+ package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \
+ (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d)))
+ elif not ((bits == elf.abiSize()) or is_32):
package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \
(bits, elf.abiSize(), bpn, package_qa_clean_path(path,d)))
elif not littleendian == elf.isLittleEndian():
@@ -672,23 +694,24 @@ def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
trimmed = path.replace(os.path.join (d.getVar("PKGDEST", True), name), "")
package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name))
-def package_qa_check_license(workdir, d):
+# Check license variables
+do_populate_lic[postfuncs] += "populate_lic_qa_checksum"
+python populate_lic_qa_checksum() {
"""
- Check for changes in the license files
+ Check for changes in the license files.
"""
import tempfile
sane = True
- lic_files = d.getVar('LIC_FILES_CHKSUM', True)
+ lic_files = d.getVar('LIC_FILES_CHKSUM', True) or ''
lic = d.getVar('LICENSE', True)
pn = d.getVar('PN', True)
if lic == "CLOSED":
return
- if not lic_files:
- package_qa_handle_error("license-checksum", pn + ": Recipe file does not have license file information (LIC_FILES_CHKSUM)", d)
- return
+ if not lic_files and d.getVar('SRC_URI', True):
+ sane = package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d)
srcdir = d.getVar('S', True)
@@ -696,7 +719,7 @@ def package_qa_check_license(workdir, d):
try:
(type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
except bb.fetch.MalformedUrl:
- package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
+ sane = package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
continue
srclicfile = os.path.join(srcdir, path)
if not os.path.isfile(srclicfile):
@@ -720,7 +743,7 @@ def package_qa_check_license(workdir, d):
linesout = 0
for line in fi:
lineno += 1
- if (lineno >= beginline):
+ if (lineno >= beginline):
if ((lineno <= endline) or not endline):
fo.write(line)
linesout += 1
@@ -752,7 +775,11 @@ def package_qa_check_license(workdir, d):
else:
msg = pn + ": LIC_FILES_CHKSUM is not specified for " + url
msg = msg + "\n" + pn + ": The md5 checksum is " + md5chksum
- package_qa_handle_error("license-checksum", msg, d)
+ sane = package_qa_handle_error("license-checksum", msg, d)
+
+ if not sane:
+ bb.fatal("Fatal QA errors found, failing task.")
+}
def package_qa_check_staged(path,d):
"""
@@ -984,12 +1011,12 @@ def package_qa_check_expanded_d(path,name,d,elf,messages):
return sane
def package_qa_check_encoding(keys, encode, d):
- def check_encoding(key,enc):
+ def check_encoding(key, enc):
sane = True
value = d.getVar(key, True)
if value:
try:
- s = unicode(value, enc)
+ s = value.encode(enc)
except UnicodeDecodeError as e:
error_msg = "%s has non %s characters" % (key,enc)
sane = False
@@ -1208,12 +1235,6 @@ Rerun configure task after fixing this.""")
Missing inherit gettext?""" % (gt, config))
###########################################################################
- # Check license variables
- ###########################################################################
-
- package_qa_check_license(workdir, d)
-
- ###########################################################################
# Check unrecognised configure options (with a white list)
###########################################################################
if bb.data.inherits_class("autotools", d):
@@ -1221,7 +1242,7 @@ Missing inherit gettext?""" % (gt, config))
try:
flag = "WARNING: unrecognized options:"
log = os.path.join(d.getVar('B', True), 'config.log')
- output = subprocess.check_output(['grep', '-F', flag, log]).replace(', ', ' ')
+ output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ')
options = set()
for line in output.splitlines():
options |= set(line.partition(flag)[2].split())
@@ -1250,10 +1271,9 @@ Missing inherit gettext?""" % (gt, config))
}
python do_qa_unpack() {
- bb.note("Checking has ${S} been created")
-
+ src_uri = d.getVar('SRC_URI', True)
s_dir = d.getVar('S', True)
- if not os.path.exists(s_dir):
+ if src_uri and not os.path.exists(s_dir):
bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN', True), d.getVar('S', False), s_dir))
}
@@ -1261,8 +1281,8 @@ python do_qa_unpack() {
#addtask qa_staging after do_populate_sysroot before do_build
do_populate_sysroot[postfuncs] += "do_qa_staging "
-# Check broken config.log files, for packages requiring Gettext which don't
-# have it in DEPENDS and for correct LIC_FILES_CHKSUM
+# Check broken config.log files, for packages requiring Gettext which
+# don't have it in DEPENDS.
#addtask qa_configure after do_configure before do_compile
do_configure[postfuncs] += "do_qa_configure "
diff --git a/import-layers/yocto-poky/meta/classes/kernel-arch.bbclass b/import-layers/yocto-poky/meta/classes/kernel-arch.bbclass
index 3ed5986a5..ea976c66b 100644
--- a/import-layers/yocto-poky/meta/classes/kernel-arch.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel-arch.bbclass
@@ -14,7 +14,7 @@ valid_archs = "alpha cris ia64 \
parisc s390 v850 \
avr32 blackfin \
microblaze \
- nios2"
+ nios2 arc xtensa"
def map_kernel_arch(a, d):
import re
@@ -25,7 +25,7 @@ def map_kernel_arch(a, d):
elif re.match('armeb$', a): return 'arm'
elif re.match('aarch64$', a): return 'arm64'
elif re.match('aarch64_be$', a): return 'arm64'
- elif re.match('mips(el|64|64el)$', a): return 'mips'
+ elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a): return 'mips'
elif re.match('p(pc|owerpc)(|64)', a): return 'powerpc'
elif re.match('sh(3|4)$', a): return 'sh'
elif re.match('bfin', a): return 'blackfin'
diff --git a/import-layers/yocto-poky/meta/classes/kernel-fitimage.bbclass b/import-layers/yocto-poky/meta/classes/kernel-fitimage.bbclass
index 332384de3..05be1f070 100644
--- a/import-layers/yocto-poky/meta/classes/kernel-fitimage.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel-fitimage.bbclass
@@ -1,4 +1,4 @@
-inherit kernel-uboot
+inherit kernel-uboot uboot-sign
python __anonymous () {
kerneltypes = d.getVar('KERNEL_IMAGETYPES', True) or ""
@@ -7,17 +7,28 @@ python __anonymous () {
depends = "%s u-boot-mkimage-native dtc-native" % depends
d.setVar("DEPENDS", depends)
+ if d.getVar("UBOOT_ARCH", True) == "x86":
+ replacementtype = "bzImage"
+ else:
+ replacementtype = "zImage"
+
# Override KERNEL_IMAGETYPE_FOR_MAKE variable, which is internal
# to kernel.bbclass . We have to override it, since we pack zImage
# (at least for now) into the fitImage .
typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE", True) or ""
if 'fitImage' in typeformake.split():
- d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', 'zImage'))
+ d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('fitImage', replacementtype))
image = d.getVar('INITRAMFS_IMAGE', True)
if image:
d.appendVarFlag('do_assemble_fitimage_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete')
+ # Verified boot will sign the fitImage and append the public key to
+ # U-boot dtb. We ensure the U-Boot dtb is deployed before assembling
+ # the fitImage:
+ if d.getVar('UBOOT_SIGN_ENABLE', True):
+ uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot', True) or 'u-boot'
+ d.appendVarFlag('do_assemble_fitimage', 'depends', ' %s:do_deploy' % uboot_pn)
}
# Options for the device tree compiler passed to mkimage '-D' feature:
@@ -132,6 +143,33 @@ EOF
}
#
+# Emit the fitImage ITS setup section
+#
+# $1 ... .its filename
+# $2 ... Image counter
+# $3 ... Path to setup image
+fitimage_emit_section_setup() {
+
+ setup_csum="sha1"
+
+ cat << EOF >> ${1}
+ setup@${2} {
+ description = "Linux setup.bin";
+ data = /incbin/("${3}");
+ type = "x86_setup";
+ arch = "${UBOOT_ARCH}";
+ os = "linux";
+ compression = "none";
+ load = <0x00090000>;
+ entry = <0x00090000>;
+ hash@1 {
+ algo = "${setup_csum}";
+ };
+ };
+EOF
+}
+
+#
# Emit the fitImage ITS ramdisk section
#
# $1 ... .its filename
@@ -193,29 +231,34 @@ EOF
# $2 ... Linux kernel ID
# $3 ... DTB image ID
# $4 ... ramdisk ID
+# $5 ... config ID
fitimage_emit_section_config() {
conf_csum="sha1"
+ if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
+ conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
+ fi
# Test if we have any DTBs at all
- if [ -z "${3}" -a -z "${4}" ] ; then
- conf_desc="Boot Linux kernel"
- fdt_line=""
- ramdisk_line=""
- elif [ -z "${4}" ]; then
- conf_desc="Boot Linux kernel with FDT blob"
- fdt_line="fdt = \"fdt@${3}\";"
- ramdisk_line=""
- elif [ -z "${3}" ]; then
- conf_desc="Boot Linux kernel with ramdisk"
- fdt_line=""
- ramdisk_line="ramdisk = \"ramdisk@${4}\";"
- else
- conf_desc="Boot Linux kernel with FDT blob, ramdisk"
+ conf_desc="Linux kernel"
+ kernel_line="kernel = \"kernel@${2}\";"
+ fdt_line=""
+ ramdisk_line=""
+
+ if [ -n "${3}" ]; then
+ conf_desc="${conf_desc}, FDT blob"
fdt_line="fdt = \"fdt@${3}\";"
+ fi
+
+ if [ -n "${4}" ]; then
+ conf_desc="${conf_desc}, ramdisk"
ramdisk_line="ramdisk = \"ramdisk@${4}\";"
fi
- kernel_line="kernel = \"kernel@${2}\";"
+
+ if [ -n "${5}" ]; then
+ conf_desc="${conf_desc}, setup"
+ setup_line="setup = \"setup@${5}\";"
+ fi
cat << EOF >> ${1}
default = "conf@1";
@@ -224,9 +267,40 @@ fitimage_emit_section_config() {
${kernel_line}
${fdt_line}
${ramdisk_line}
+ ${setup_line}
hash@1 {
algo = "${conf_csum}";
};
+EOF
+
+ if [ ! -z "${conf_sign_keyname}" ] ; then
+
+ sign_line="sign-images = \"kernel\""
+
+ if [ -n "${3}" ]; then
+ sign_line="${sign_line}, \"fdt\""
+ fi
+
+ if [ -n "${4}" ]; then
+ sign_line="${sign_line}, \"ramdisk\""
+ fi
+
+ if [ -n "${5}" ]; then
+ sign_line="${sign_line}, \"setup\""
+ fi
+
+ sign_line="${sign_line};"
+
+ cat << EOF >> ${1}
+ signature@1 {
+ algo = "${conf_csum},rsa2048";
+ key-name-hint = "${conf_sign_keyname}";
+ ${sign_line}
+ };
+EOF
+ fi
+
+ cat << EOF >> ${1}
};
EOF
}
@@ -241,6 +315,7 @@ fitimage_assemble() {
kernelcount=1
dtbcount=""
ramdiskcount=${3}
+ setupcount=""
rm -f ${1} arch/${ARCH}/boot/${2}
fitimage_emit_fit_header ${1}
@@ -274,7 +349,15 @@ fitimage_assemble() {
fi
#
- # Step 3: Prepare a ramdisk section.
+ # Step 3: Prepare a setup section. (For x86)
+ #
+ if test -e arch/${ARCH}/boot/setup.bin ; then
+ setupcount=1
+ fitimage_emit_section_setup ${1} "${setupcount}" arch/${ARCH}/boot/setup.bin
+ fi
+
+ #
+ # Step 4: Prepare a ramdisk section.
#
if [ "x${ramdiskcount}" = "x1" ] ; then
# Find and use the first initramfs image archive type we find
@@ -292,26 +375,39 @@ fitimage_assemble() {
# Force the first Kernel and DTB in the default config
kernelcount=1
- dtbcount=1
+ if test -n "${dtbcount}"; then
+ dtbcount=1
+ fi
#
- # Step 4: Prepare a configurations section
+ # Step 5: Prepare a configurations section
#
fitimage_emit_section_maint ${1} confstart
- fitimage_emit_section_config ${1} ${kernelcount} ${dtbcount} ${ramdiskcount}
+ fitimage_emit_section_config ${1} "${kernelcount}" "${dtbcount}" "${ramdiskcount}" "${setupcount}"
fitimage_emit_section_maint ${1} sectend
fitimage_emit_section_maint ${1} fitend
#
- # Step 5: Assemble the image
+ # Step 6: Assemble the image
#
uboot-mkimage \
${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
-f ${1} \
arch/${ARCH}/boot/${2}
+
+ #
+ # Step 7: Sign the image and add public key to U-Boot dtb
+ #
+ if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ] ; then
+ uboot-mkimage \
+ ${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
+ -F -k "${UBOOT_SIGN_KEYDIR}" \
+ -K "${DEPLOY_DIR_IMAGE}/${UBOOT_DTB_BINARY}" \
+ -r arch/${ARCH}/boot/${2}
+ fi
}
do_assemble_fitimage() {
diff --git a/import-layers/yocto-poky/meta/classes/kernel-module-split.bbclass b/import-layers/yocto-poky/meta/classes/kernel-module-split.bbclass
index e1a70e621..08d226276 100644
--- a/import-layers/yocto-poky/meta/classes/kernel-module-split.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel-module-split.bbclass
@@ -30,16 +30,12 @@ PACKAGESPLITFUNCS_prepend = "split_kernel_module_packages "
KERNEL_MODULES_META_PACKAGE ?= "kernel-modules"
+KERNEL_MODULE_PACKAGE_PREFIX ?= ""
+
python split_kernel_module_packages () {
import re
modinfoexp = re.compile("([^=]+)=(.*)")
- kerverrexp = re.compile('^(.*-hh.*)[\.\+].*$')
- depmodpat0 = re.compile("^(.*\.k?o):..*$")
- depmodpat1 = re.compile("^(.*\.k?o):\s*(.*\.k?o)\s*$")
- depmodpat2 = re.compile("^(.*\.k?o):\s*(.*\.k?o)\s*\\\$")
- depmodpat3 = re.compile("^\t(.*\.k?o)\s*\\\$")
- depmodpat4 = re.compile("^\t(.*\.k?o)\s*$")
def extract_modinfo(file):
import tempfile, subprocess
@@ -61,68 +57,6 @@ python split_kernel_module_packages () {
vals[m.group(1)] = m.group(2)
return vals
- def parse_depmod():
-
- dvar = d.getVar('PKGD', True)
-
- kernelver = d.getVar('KERNEL_VERSION', True)
- kernelver_stripped = kernelver
- m = kerverrexp.match(kernelver)
- if m:
- kernelver_stripped = m.group(1)
- staging_kernel_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
- system_map_file = "%s/boot/System.map-%s" % (dvar, kernelver)
- if not os.path.exists(system_map_file):
- system_map_file = "%s/System.map-%s" % (staging_kernel_dir, kernelver)
- if not os.path.exists(system_map_file):
- bb.fatal("System.map-%s does not exist in '%s/boot' nor STAGING_KERNEL_BUILDDIR '%s'" % (kernelver, dvar, staging_kernel_dir))
-
- cmd = "depmod -n -a -b %s -F %s %s" % (dvar, system_map_file, kernelver_stripped)
- f = os.popen(cmd, 'r')
-
- deps = {}
- line = f.readline()
- while line:
- if not depmodpat0.match(line):
- line = f.readline()
- continue
- m1 = depmodpat1.match(line)
- if m1:
- deps[m1.group(1)] = m1.group(2).split()
- else:
- m2 = depmodpat2.match(line)
- if m2:
- deps[m2.group(1)] = m2.group(2).split()
- line = f.readline()
- m3 = depmodpat3.match(line)
- while m3:
- deps[m2.group(1)].extend(m3.group(1).split())
- line = f.readline()
- m3 = depmodpat3.match(line)
- m4 = depmodpat4.match(line)
- deps[m2.group(1)].extend(m4.group(1).split())
- line = f.readline()
- f.close()
- return deps
-
- def get_dependencies(file, pattern, format):
- # file no longer includes PKGD
- file = file.replace(d.getVar('PKGD', True) or '', '', 1)
- # instead is prefixed with /lib/modules/${KERNEL_VERSION}
- file = file.replace("/lib/modules/%s/" % d.getVar('KERNEL_VERSION', True) or '', '', 1)
-
- if file in module_deps:
- dependencies = []
- for i in module_deps[file]:
- m = re.match(pattern, os.path.basename(i))
- if not m:
- continue
- on = legitimize_package_name(m.group(1))
- dependency_pkg = format % on
- dependencies.append(dependency_pkg)
- return dependencies
- return []
-
def frob_metadata(file, pkg, pattern, format, basename):
vals = extract_modinfo(file)
@@ -171,7 +105,13 @@ python split_kernel_module_packages () {
d.setVar('DESCRIPTION_' + pkg, old_desc + "; " + vals["description"])
rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg, True) or "")
- for dep in get_dependencies(file, pattern, format):
+ modinfo_deps = []
+ if "depends" in vals and vals["depends"] != "":
+ for dep in vals["depends"].split(","):
+ on = legitimize_package_name(dep)
+ dependency_pkg = format % on
+ modinfo_deps.append(dependency_pkg)
+ for dep in modinfo_deps:
if not dep in rdepends:
rdepends[dep] = []
d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
@@ -179,9 +119,10 @@ python split_kernel_module_packages () {
# Avoid automatic -dev recommendations for modules ending with -dev.
d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1)
- module_deps = parse_depmod()
module_regex = '^(.*)\.k?o$'
- module_pattern = 'kernel-module-%s'
+
+ module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX', True)
+ module_pattern = module_pattern_prefix + 'kernel-module-%s'
postinst = d.getVar('pkg_postinst_modules', True)
postrm = d.getVar('pkg_postrm_modules', True)
diff --git a/import-layers/yocto-poky/meta/classes/kernel-uimage.bbclass b/import-layers/yocto-poky/meta/classes/kernel-uimage.bbclass
index 2a187f549..340503a2d 100644
--- a/import-layers/yocto-poky/meta/classes/kernel-uimage.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel-uimage.bbclass
@@ -14,8 +14,7 @@ python __anonymous () {
if d.getVar("KEEPUIMAGE", True) != 'yes':
typeformake = d.getVar("KERNEL_IMAGETYPE_FOR_MAKE", True) or ""
if "uImage" in typeformake.split():
- typeformake.replace('uImage', 'vmlinux')
- d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake)
+ d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake.replace('uImage', 'vmlinux'))
}
do_uboot_mkimage() {
diff --git a/import-layers/yocto-poky/meta/classes/kernel-yocto.bbclass b/import-layers/yocto-poky/meta/classes/kernel-yocto.bbclass
index f86b3ef01..6160a29ec 100644
--- a/import-layers/yocto-poky/meta/classes/kernel-yocto.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel-yocto.bbclass
@@ -1,5 +1,7 @@
# remove tasks that modify the source tree in case externalsrc is inherited
-SRCTREECOVEREDTASKS += "do_kernel_configme do_validate_branches do_kernel_configcheck do_kernel_checkout do_shared_workdir do_fetch do_unpack do_patch"
+SRCTREECOVEREDTASKS += "do_kernel_configme do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
+PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
+PATCH_GIT_USER_NAME ?= "OpenEmbedded"
# returns local (absolute) path names for all valid patches in the
# src_uri
@@ -119,72 +121,54 @@ do_kernel_metadata() {
patches="${@" ".join(find_patches(d))}"
feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
- # add any explicitly referenced features onto the end of the feature
- # list that is passed to the kernel build scripts.
- if [ -n "${KERNEL_FEATURES}" ]; then
- for feat in ${KERNEL_FEATURES}; do
- addon_features="$addon_features --feature $feat"
- done
- fi
-
# check for feature directories/repos/branches that were part of the
# SRC_URI. If they were supplied, we convert them into include directives
# for the update part of the process
- if [ -n "${feat_dirs}" ]; then
- for f in ${feat_dirs}; do
+ for f in ${feat_dirs}; do
if [ -d "${WORKDIR}/$f/meta" ]; then
- includes="$includes -I${WORKDIR}/$f/meta"
- elif [ -d "${WORKDIR}/$f" ]; then
- includes="$includes -I${WORKDIR}/$f"
+ includes="$includes -I${WORKDIR}/$f/kernel-meta"
+ elif [ -d "${WORKDIR}/$f" ]; then
+ includes="$includes -I${WORKDIR}/$f"
fi
- done
+ done
+ for s in ${sccs} ${patches}; do
+ sdir=$(dirname $s)
+ includes="$includes -I${sdir}"
+ # if a SRC_URI passed patch or .scc has a subdir of "kernel-meta",
+ # then we add it to the search path
+ if [ -d "${sdir}/kernel-meta" ]; then
+ includes="$includes -I${sdir}/kernel-meta"
+ fi
+ done
+
+ # expand kernel features into their full path equivalents
+ bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE})
+ meta_dir=$(kgit --meta)
+
+ # run1: pull all the configuration fragments, no matter where they come from
+ elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`"
+ if [ -n "${elements}" ]; then
+ scc --force -o ${S}/${meta_dir}:cfg,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}
fi
- # updates or generates the target description
- updateme ${updateme_flags} -DKDESC=${KMACHINE}:${LINUX_KERNEL_TYPE} \
- ${includes} ${addon_features} ${ARCH} ${KMACHINE} ${sccs} ${patches}
- if [ $? -ne 0 ]; then
- bbfatal_log "Could not update ${machine_branch}"
+ # run2: only generate patches for elements that have been passed on the SRC_URI
+ elements="`echo -n ${sccs} ${patches} ${KERNEL_FEATURES}`"
+ if [ -n "${elements}" ]; then
+ scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES}
fi
}
do_patch() {
cd ${S}
- # executes and modifies the source tree as required
- patchme ${KMACHINE}
- if [ $? -ne 0 ]; then
- bberror "Could not apply patches for ${KMACHINE}."
- bbfatal_log "Patch failures can be resolved in the linux source directory ${S})"
- fi
-
- # check to see if the specified SRCREV is reachable from the final branch.
- # if it wasn't something wrong has happened, and we should error.
- machine_srcrev="${SRCREV_machine}"
- if [ -z "${machine_srcrev}" ]; then
- # fallback to SRCREV if a non machine_meta tree is being built
- machine_srcrev="${SRCREV}"
- # if SRCREV cannot be reached something is wrong.
- if [ -z "${machine_srcrev}" ]; then
- bbfatal "Neither SRCREV_machine or SRCREV was specified!"
- fi
- fi
-
- current_branch=`git rev-parse --abbrev-ref HEAD`
- machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}"
- if [ "${current_branch}" != "${machine_branch}" ]; then
- bbwarn "After meta data application, the kernel tree branch is ${current_branch}. The"
- bbwarn "SRC_URI specified branch ${machine_branch}. The branch will be forced to ${machine_branch},"
- bbwarn "but this means the board meta data (.scc files) do not match the SRC_URI specification."
- bbwarn "The meta data and branch ${machine_branch} should be inspected to ensure the proper"
- bbwarn "kernel is being built."
- git checkout -f ${machine_branch}
- fi
-
- if [ "${machine_srcrev}" != "AUTOINC" ]; then
- if ! [ "$(git rev-parse --verify ${machine_srcrev}~0)" = "$(git merge-base ${machine_srcrev} HEAD)" ]; then
- bberror "SRCREV ${machine_srcrev} was specified, but is not reachable"
- bbfatal "Check the BSP description for incorrect branch selection, or other errors."
+ check_git_config
+ meta_dir=$(kgit --meta)
+ (cd ${meta_dir}; ln -sf patch.queue series)
+ if [ -f "${meta_dir}/series" ]; then
+ kgit-s2q --gen -v --patches .kernel-meta/
+ if [ $? -ne 0 ]; then
+ bberror "Could not apply patches for ${KMACHINE}."
+ bbfatal_log "Patch failures can be resolved in the linux source directory ${S})"
fi
fi
}
@@ -253,26 +237,37 @@ do_kernel_metadata[depends] = "kern-tools-native:do_populate_sysroot"
do_kernel_configme[dirs] += "${S} ${B}"
do_kernel_configme() {
- bbnote "kernel configme"
- export KMETA=${KMETA}
+ set +e
- if [ -n "${KCONFIG_MODE}" ]; then
- configmeflags=${KCONFIG_MODE}
- else
- # If a defconfig was passed, use =n as the baseline, which is achieved
- # via --allnoconfig
+ # translate the kconfig_mode into something that merge_config.sh
+ # understands
+ case ${KCONFIG_MODE} in
+ *allnoconfig)
+ config_flags="-n"
+ ;;
+ *alldefconfig)
+ config_flags=""
+ ;;
+ *)
if [ -f ${WORKDIR}/defconfig ]; then
- configmeflags="--allnoconfig"
+ config_flags="-n"
fi
- fi
+ ;;
+ esac
cd ${S}
- PATH=${PATH}:${S}/scripts/util
- configme ${configmeflags} --reconfig --output ${B} ${LINUX_KERNEL_TYPE} ${KMACHINE}
+
+ meta_dir=$(kgit --meta)
+ configs="$(scc --configs -o ${meta_dir})"
+ if [ -z "${configs}" ]; then
+ bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)"
+ fi
+
+ CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1
if [ $? -ne 0 ]; then
bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}"
fi
-
+
echo "# Global settings from linux recipe" >> ${B}/.config
echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
}
@@ -290,36 +285,23 @@ python do_kernel_configcheck() {
kmeta = "." + kmeta
pathprefix = "export PATH=%s:%s; " % (d.getVar('PATH', True), "${S}/scripts/util/")
- cmd = d.expand("cd ${S}; kconf_check -config %s/meta-series ${S} ${B}" % kmeta)
+
+ cmd = d.expand("scc --configs -o ${S}/.kernel-meta")
+ ret, configs = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd))
+
+ cmd = d.expand("cd ${S}; kconf_check --report -o ${S}/%s/cfg/ ${B}/.config ${S} %s" % (kmeta,configs))
ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd))
config_check_visibility = int(d.getVar( "KCONF_AUDIT_LEVEL", True ) or 0)
bsp_check_visibility = int(d.getVar( "KCONF_BSP_AUDIT_LEVEL", True ) or 0)
# if config check visibility is non-zero, report dropped configuration values
- mismatch_file = "${S}/" + kmeta + "/" + "mismatch.cfg"
+ mismatch_file = d.expand("${S}/%s/cfg/mismatch.txt" % kmeta)
if os.path.exists(mismatch_file):
if config_check_visibility:
with open (mismatch_file, "r") as myfile:
results = myfile.read()
bb.warn( "[kernel config]: specified values did not make it into the kernel's final configuration:\n\n%s" % results)
-
- # if config check visibility is level 2 or higher, report non-hardware options
- nonhw_file = "${S}/" + kmeta + "/" + "nonhw_report.cfg"
- if os.path.exists(nonhw_file):
- if config_check_visibility > 1:
- with open (nonhw_file, "r") as myfile:
- results = myfile.read()
- bb.warn( "[kernel config]: BSP specified non-hw configuration:\n\n%s" % results)
-
- bsp_desc = "${S}/" + kmeta + "/" + "top_tgt"
- if os.path.exists(bsp_desc) and bsp_check_visibility > 1:
- with open (bsp_desc, "r") as myfile:
- bsp_tgt = myfile.read()
- m = re.match("^(.*)scratch.obj(.*)$", bsp_tgt)
- if not m is None:
- bb.warn( "[kernel]: An auto generated BSP description was used, this normally indicates a misconfiguration.\n" +
- "Check that your machine (%s) has an associated kernel description." % "${MACHINE}" )
}
# Ensure that the branches (BSP and meta) are on the locations specified by
diff --git a/import-layers/yocto-poky/meta/classes/kernel.bbclass b/import-layers/yocto-poky/meta/classes/kernel.bbclass
index e7e2cb396..25a153cd2 100644
--- a/import-layers/yocto-poky/meta/classes/kernel.bbclass
+++ b/import-layers/yocto-poky/meta/classes/kernel.bbclass
@@ -1,7 +1,7 @@
inherit linux-kernel-base kernel-module-split
PROVIDES += "virtual/kernel"
-DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native depmodwrapper-cross bc-native"
+DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native depmodwrapper-cross bc-native lzop-native"
S = "${STAGING_KERNEL_DIR}"
B = "${WORKDIR}/build"
@@ -127,9 +127,9 @@ PACKAGES_DYNAMIC += "^kernel-firmware-.*"
export OS = "${TARGET_OS}"
export CROSS_COMPILE = "${TARGET_PREFIX}"
-KERNEL_PRIORITY ?= "${@int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[0]) * 10000 + \
- int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[1]) * 100 + \
- int(d.getVar('PV',1).split('-')[0].split('+')[0].split('.')[-1])}"
+KERNEL_PRIORITY ?= "${@int(d.getVar('PV', True).split('-')[0].split('+')[0].split('.')[0]) * 10000 + \
+ int(d.getVar('PV', True).split('-')[0].split('+')[0].split('.')[1]) * 100 + \
+ int(d.getVar('PV', True).split('-')[0].split('+')[0].split('.')[-1])}"
KERNEL_RELEASE ?= "${KERNEL_VERSION}"
@@ -140,7 +140,7 @@ KERNEL_IMAGEDEST = "boot"
#
# configuration
#
-export CMDLINE_CONSOLE = "console=${@d.getVar("KERNEL_CONSOLE",1) or "ttyS0"}"
+export CMDLINE_CONSOLE = "console=${@d.getVar("KERNEL_CONSOLE", True) or "ttyS0"}"
KERNEL_VERSION = "${@get_kernelversion_headers('${B}')}"
@@ -156,10 +156,7 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
# Some Linux kernel configurations need additional parameters on the command line
KERNEL_EXTRA_ARGS ?= ""
-# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE.
-# We don't want to override kernel Makefile variables from the environment
-EXTRA_OEMAKE = ""
-
+EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}""
KERNEL_ALT_IMAGETYPE ??= ""
copy_initramfs() {
@@ -203,7 +200,7 @@ copy_initramfs() {
echo "Finished copy of initramfs into ./usr"
}
-INITRAMFS_BASE_NAME = "initramfs-${PV}-${PR}-${MACHINE}-${DATETIME}"
+INITRAMFS_BASE_NAME ?= "initramfs-${PV}-${PR}-${MACHINE}-${DATETIME}"
INITRAMFS_BASE_NAME[vardepsexclude] = "DATETIME"
do_bundle_initramfs () {
if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
@@ -232,8 +229,7 @@ do_bundle_initramfs () {
if [ -n "$realpath" ]; then
mv -f $realpath $realpath.initramfs
mv -f $realpath.bak $realpath
- cd ${B}/${KERNEL_OUTPUT_DIR}
- ln -sf $linkpath.initramfs
+ ln -sf $linkpath.initramfs ${B}/${KERNEL_OUTPUT_DIR}/$type.initramfs
else
mv -f ${KERNEL_OUTPUT_DIR}/$type ${KERNEL_OUTPUT_DIR}/$type.initramfs
mv -f ${KERNEL_OUTPUT_DIR}/$type.bak ${KERNEL_OUTPUT_DIR}/$type
@@ -247,6 +243,7 @@ do_bundle_initramfs () {
done
fi
}
+do_bundle_initramfs[dirs] = "${B}"
python do_devshell_prepend () {
os.environ["LDFLAGS"] = ''
@@ -291,7 +288,7 @@ do_compile_kernelmodules() {
# external kernel modules has a dependency on
# other kernel modules and will look at this
# file to do symbol lookups
- cp Module.symvers ${STAGING_KERNEL_BUILDDIR}/
+ cp ${B}/Module.symvers ${STAGING_KERNEL_BUILDDIR}/
else
bbnote "no modules to compile"
fi
@@ -330,6 +327,36 @@ kernel_do_install() {
}
do_install[prefuncs] += "package_get_auto_pr"
+# Must be ran no earlier than after do_kernel_checkout or else Makefile won't be in ${S}/Makefile
+do_kernel_version_sanity_check() {
+ # The Makefile determines the kernel version shown at runtime
+ # Don't use KERNEL_VERSION because the headers it grabs the version from aren't generated until do_compile
+ VERSION=$(grep "^VERSION =" ${S}/Makefile | sed s/.*=\ *//)
+ PATCHLEVEL=$(grep "^PATCHLEVEL =" ${S}/Makefile | sed s/.*=\ *//)
+ SUBLEVEL=$(grep "^SUBLEVEL =" ${S}/Makefile | sed s/.*=\ *//)
+ EXTRAVERSION=$(grep "^EXTRAVERSION =" ${S}/Makefile | sed s/.*=\ *//)
+
+ # Build a string for regex and a plain version string
+ reg="^${VERSION}\.${PATCHLEVEL}"
+ vers="${VERSION}.${PATCHLEVEL}"
+ if [ -n "${SUBLEVEL}" ]; then
+ # Ignoring a SUBLEVEL of zero is fine
+ if [ "${SUBLEVEL}" = "0" ]; then
+ reg="${reg}(\.${SUBLEVEL})?"
+ else
+ reg="${reg}\.${SUBLEVEL}"
+ vers="${vers}.${SUBLEVEL}"
+ fi
+ fi
+ vers="${vers}${EXTRAVERSION}"
+ reg="${reg}${EXTRAVERSION}"
+
+ if [ -z `echo ${PV} | grep -E "${reg}"` ]; then
+ bbfatal "Package Version (${PV}) does not match of kernel being built (${vers}). Please update the PV variable to match the kernel source."
+ fi
+ exit 0
+}
+
addtask shared_workdir after do_compile before do_compile_kernelmodules
addtask shared_workdir_setscene
@@ -364,6 +391,14 @@ do_shared_workdir () {
cp .config $kerneldir/
mkdir -p $kerneldir/include/config
cp include/config/kernel.release $kerneldir/include/config/kernel.release
+ if [ -e certs/signing_key.pem ]; then
+ # The signing_key.* files are stored in the certs/ dir in
+ # newer Linux kernels
+ mkdir -p $kerneldir/certs
+ cp certs/signing_key.* $kerneldir/certs/
+ elif [ -e signing_key.priv ]; then
+ cp signing_key.* $kerneldir/
+ fi
# We can also copy over all the generated files and avoid special cases
# like version.h, but we've opted to keep this small until file creep starts
@@ -434,6 +469,7 @@ kernel_do_configure() {
}
do_savedefconfig() {
+ bbplain "Saving defconfig to:\n${B}/defconfig"
oe_runmake -C ${B} savedefconfig
}
do_savedefconfig[nostamp] = "1"
@@ -484,15 +520,18 @@ python split_kernel_packages () {
}
# Many scripts want to look in arch/$arch/boot for the bootable
-# image. This poses a problem for vmlinux based booting. This
-# task arranges to have vmlinux appear in the normalized directory
-# location.
-do_kernel_link_vmlinux() {
+# image. This poses a problem for vmlinux and vmlinuz based
+# booting. This task arranges to have vmlinux and vmlinuz appear
+# in the normalized directory location.
+do_kernel_link_images() {
if [ ! -d "${B}/arch/${ARCH}/boot" ]; then
mkdir ${B}/arch/${ARCH}/boot
fi
cd ${B}/arch/${ARCH}/boot
ln -sf ../../../vmlinux
+ if [ -f ../../../vmlinuz ]; then
+ ln -sf ../../../vmlinuz
+ fi
}
do_strip() {
@@ -522,7 +561,7 @@ do_strip() {
}
do_strip[dirs] = "${B}"
-addtask do_strip before do_sizecheck after do_kernel_link_vmlinux
+addtask do_strip before do_sizecheck after do_kernel_link_images
# Support checking the kernel size since some kernels need to reside in partitions
# with a fixed length or there is a limit in transferring the kernel to memory
@@ -583,8 +622,7 @@ kernel_do_deploy() {
initramfs_base_name=${type}-${INITRAMFS_BASE_NAME}
initramfs_symlink_name=${type}-initramfs-${MACHINE}
install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}.initramfs ${DEPLOYDIR}/${initramfs_base_name}.bin
- cd ${DEPLOYDIR}
- ln -sf ${initramfs_base_name}.bin ${initramfs_symlink_name}.bin
+ ln -sf ${initramfs_base_name}.bin ${DEPLOYDIR}/${initramfs_symlink_name}.bin
fi
done
}
@@ -595,4 +633,3 @@ do_deploy[prefuncs] += "package_get_auto_pr"
addtask deploy after do_populate_sysroot
EXPORT_FUNCTIONS do_deploy
-
diff --git a/import-layers/yocto-poky/meta/classes/libc-common.bbclass b/import-layers/yocto-poky/meta/classes/libc-common.bbclass
index bbc80167d..11b0065a6 100644
--- a/import-layers/yocto-poky/meta/classes/libc-common.bbclass
+++ b/import-layers/yocto-poky/meta/classes/libc-common.bbclass
@@ -4,14 +4,12 @@ do_install() {
h=`echo $r|sed -e's,\.x$,.h,'`
install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
done
- install -d ${D}/${sysconfdir}/
- install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
+ install -Dm 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ld.so.conf
install -d ${D}${localedir}
make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
# get rid of some broken files...
for i in ${GLIBC_BROKEN_LOCALES}; do
- grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
- mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
+ sed -i "/$i/d" ${WORKDIR}/SUPPORTED
done
rm -f ${D}${sysconfdir}/rpc
rm -rf ${D}${datadir}/zoneinfo
diff --git a/import-layers/yocto-poky/meta/classes/libc-package.bbclass b/import-layers/yocto-poky/meta/classes/libc-package.bbclass
index 467d56792..2dc90c44d 100644
--- a/import-layers/yocto-poky/meta/classes/libc-package.bbclass
+++ b/import-layers/yocto-poky/meta/classes/libc-package.bbclass
@@ -47,15 +47,6 @@ python __anonymous () {
OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
-do_configure_prepend() {
- if [ -e ${S}/elf/ldd.bash.in ]; then
- sed -e "s#@BASH@#/bin/sh#" -i ${S}/elf/ldd.bash.in
- fi
-}
-
-
-
-# indentation removed on purpose
locale_base_postinst() {
#!/bin/sh
@@ -63,33 +54,14 @@ if [ "x$D" != "x" ]; then
exit 1
fi
-rm -rf ${TMP_LOCALE}
-mkdir -p ${TMP_LOCALE}
-if [ -f ${localedir}/locale-archive ]; then
- cp ${localedir}/locale-archive ${TMP_LOCALE}/
-fi
-localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
-mkdir -p ${localedir}/
-mv ${TMP_LOCALE}/locale-archive ${localedir}/
-rm -rf ${TMP_LOCALE}
+localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s %s
}
-# indentation removed on purpose
locale_base_postrm() {
#!/bin/sh
-
-rm -rf ${TMP_LOCALE}
-mkdir -p ${TMP_LOCALE}
-if [ -f ${localedir}/locale-archive ]; then
- cp ${localedir}/locale-archive ${TMP_LOCALE}/
-fi
-localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s --prefix=/tmp/locale %s
-mv ${TMP_LOCALE}/locale-archive ${localedir}/
-rm -rf ${TMP_LOCALE}
+localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=%s %s
}
-
-TMP_LOCALE="/tmp/locale${localedir}"
LOCALETREESRC ?= "${PKGD}"
do_prep_locale_tree() {
@@ -150,6 +122,7 @@ python package_do_split_gconvs () {
c_re = re.compile('^copy "(.*)"')
i_re = re.compile('^include "(\w+)".*')
for l in f.readlines():
+ l = l.decode("latin-1")
m = c_re.match(l) or i_re.match(l)
if m:
dp = legitimize_package_name('%s%s-gconv-%s' % (mlprefix, bpn, m.group(1)))
@@ -171,6 +144,7 @@ python package_do_split_gconvs () {
c_re = re.compile('^copy "(.*)"')
i_re = re.compile('^include "(\w+)".*')
for l in f.readlines():
+ l = l.decode("latin-1")
m = c_re.match(l) or i_re.match(l)
if m:
dp = legitimize_package_name('%s%s-charmap-%s' % (mlprefix, bpn, m.group(1)))
@@ -191,6 +165,7 @@ python package_do_split_gconvs () {
c_re = re.compile('^copy "(.*)"')
i_re = re.compile('^include "(\w+)".*')
for l in f.readlines():
+ l = l.decode("latin-1")
m = c_re.match(l) or i_re.match(l)
if m:
dp = legitimize_package_name(mlprefix+bpn+'-localedata-%s' % m.group(1))
@@ -223,7 +198,7 @@ python package_do_split_gconvs () {
# GLIBC_GENERATE_LOCALES var specifies which locales to be generated. empty or "all" means all locales
to_generate = d.getVar('GLIBC_GENERATE_LOCALES', True)
if not to_generate or to_generate == 'all':
- to_generate = supported.keys()
+ to_generate = sorted(supported.keys())
else:
to_generate = to_generate.split()
for locale in to_generate:
@@ -274,9 +249,13 @@ python package_do_split_gconvs () {
"powerpc": " --uint32-align=4 --big-endian ", \
"powerpc64": " --uint32-align=4 --big-endian ", \
"mips": " --uint32-align=4 --big-endian ", \
+ "mipsisa32r6": " --uint32-align=4 --big-endian ", \
"mips64": " --uint32-align=4 --big-endian ", \
+ "mipsisa64r6": " --uint32-align=4 --big-endian ", \
"mipsel": " --uint32-align=4 --little-endian ", \
+ "mipsisa32r6el": " --uint32-align=4 --little-endian ", \
"mips64el":" --uint32-align=4 --little-endian ", \
+ "mipsisa64r6el":" --uint32-align=4 --little-endian ", \
"i586": " --uint32-align=4 --little-endian ", \
"i686": " --uint32-align=4 --little-endian ", \
"x86_64": " --uint32-align=4 --little-endian " }
@@ -285,9 +264,9 @@ python package_do_split_gconvs () {
localedef_opts = locale_arch_options[target_arch]
else:
bb.error("locale_arch_options not found for target_arch=" + target_arch)
- raise bb.build.FuncFailed("unknown arch:" + target_arch + " for locale_arch_options")
+ bb.fatal("unknown arch:" + target_arch + " for locale_arch_options")
- localedef_opts += " --force --old-style --no-archive --prefix=%s \
+ localedef_opts += " --force --no-archive --prefix=%s \
--inputfile=%s/%s/i18n/locales/%s --charmap=%s %s/%s" \
% (treedir, treedir, datadir, locale, encoding, outputpath, name)
@@ -295,7 +274,7 @@ python package_do_split_gconvs () {
(path, i18npath, gconvpath, localedef_opts)
else: # earlier slower qemu way
qemu = qemu_target_binary(d)
- localedef_opts = "--force --old-style --no-archive --prefix=%s \
+ localedef_opts = "--force --no-archive --prefix=%s \
--inputfile=%s/i18n/locales/%s --charmap=%s %s" \
% (treedir, datadir, locale, encoding, name)
@@ -388,4 +367,3 @@ python package_do_split_gconvs () {
python populate_packages_prepend () {
bb.build.exec_func('package_do_split_gconvs', d)
}
-
diff --git a/import-layers/yocto-poky/meta/classes/license.bbclass b/import-layers/yocto-poky/meta/classes/license.bbclass
index 43944e6ee..da4fc3e1d 100644
--- a/import-layers/yocto-poky/meta/classes/license.bbclass
+++ b/import-layers/yocto-poky/meta/classes/license.bbclass
@@ -181,8 +181,10 @@ def license_deployed_manifest(d):
key,val = line.split(": ", 1)
man_dic[dep][key] = val[:-1]
- image_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY', True),
- d.getVar('IMAGE_NAME', True), 'image_license.manifest')
+ lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY', True),
+ d.getVar('IMAGE_NAME', True))
+ bb.utils.mkdirhier(lic_manifest_dir)
+ image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
write_license_files(d, image_license_manifest, man_dic)
def get_deployed_dependencies(d):
@@ -198,7 +200,7 @@ def get_deployed_dependencies(d):
# it might contain the bootloader.
taskdata = d.getVar("BB_TASKDEPDATA", False)
depends = list(set([dep[0] for dep
- in taskdata.itervalues()
+ in list(taskdata.values())
if not dep[0].endswith("-native")]))
extra_depends = d.getVar("EXTRA_IMAGEDEPENDS", True)
boot_depends = get_boot_dependencies(d)
@@ -259,7 +261,7 @@ def get_boot_dependencies(d):
depends.append(dep)
# We need to search for the provider of the dependency
else:
- for taskdep in taskdepdata.itervalues():
+ for taskdep in taskdepdata.values():
# The fifth field contains what the task provides
if dep in taskdep[4]:
info_file = os.path.join(
@@ -340,6 +342,7 @@ def add_package_and_files(d):
def copy_license_files(lic_files_paths, destdir):
import shutil
+ import errno
bb.utils.mkdirhier(destdir)
for (basename, path) in lic_files_paths:
@@ -348,12 +351,21 @@ def copy_license_files(lic_files_paths, destdir):
dst = os.path.join(destdir, basename)
if os.path.exists(dst):
os.remove(dst)
- if os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev):
- os.link(src, dst)
+ canlink = os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev)
+ if canlink:
try:
- os.chown(dst,0,0)
+ os.link(src, dst)
+ except OSError as err:
+ if err.errno == errno.EXDEV:
+ # Copy license files if hard-link is not possible even if st_dev is the
+ # same on source and destination (docker container with device-mapper?)
+ canlink = False
+ else:
+ raise
+ try:
+ if canlink:
+ os.chown(dst,0,0)
except OSError as err:
- import errno
if err.errno in (errno.EPERM, errno.EINVAL):
# Suppress "Operation not permitted" error, as
# sometimes this function is not executed under pseudo.
@@ -362,7 +374,7 @@ def copy_license_files(lic_files_paths, destdir):
pass
else:
raise
- else:
+ if not canlink:
shutil.copyfile(src, dst)
except Exception as e:
bb.warn("Could not copy license file %s to %s: %s" % (src, dst, e))
@@ -373,21 +385,8 @@ def find_license_files(d):
"""
import shutil
import oe.license
+ from collections import defaultdict, OrderedDict
- pn = d.getVar('PN', True)
- for package in d.getVar('PACKAGES', True):
- if d.getVar('LICENSE_' + package, True):
- license_types = license_types + ' & ' + \
- d.getVar('LICENSE_' + package, True)
-
- #If we get here with no license types, then that means we have a recipe
- #level license. If so, we grab only those.
- try:
- license_types
- except NameError:
- # All the license types at the recipe level
- license_types = d.getVar('LICENSE', True)
-
# All the license files for the package
lic_files = d.getVar('LIC_FILES_CHKSUM', True)
pn = d.getVar('PN', True)
@@ -397,6 +396,8 @@ def find_license_files(d):
generic_directory = d.getVar('COMMON_LICENSE_DIR', True)
# List of basename, path tuples
lic_files_paths = []
+ # Entries from LIC_FILES_CHKSUM
+ lic_chksums = {}
license_source_dirs = []
license_source_dirs.append(generic_directory)
try:
@@ -426,7 +427,6 @@ def find_license_files(d):
license_source = None
# If the generic does not exist we need to check to see if there is an SPDX mapping to it,
# unless NO_GENERIC_LICENSE is set.
-
for lic_dir in license_source_dirs:
if not os.path.isfile(os.path.join(lic_dir, license_type)):
if d.getVarFlag('SPDXLICENSEMAP', license_type, True) != None:
@@ -440,6 +440,7 @@ def find_license_files(d):
license_source = lic_dir
break
+ non_generic_lic = d.getVarFlag('NO_GENERIC_LICENSE', license_type, True)
if spdx_generic and license_source:
# we really should copy to generic_ + spdx_generic, however, that ends up messing the manifest
# audit up. This should be fixed in emit_pkgdata (or, we actually got and fix all the recipes)
@@ -451,13 +452,11 @@ def find_license_files(d):
if d.getVarFlag('NO_GENERIC_LICENSE', license_type, True):
bb.warn("%s: %s is a generic license, please don't use NO_GENERIC_LICENSE for it." % (pn, license_type))
- elif d.getVarFlag('NO_GENERIC_LICENSE', license_type, True):
+ elif non_generic_lic and non_generic_lic in lic_chksums:
# if NO_GENERIC_LICENSE is set, we copy the license files from the fetched source
# of the package rather than the license_source_dirs.
- for (basename, path) in lic_files_paths:
- if d.getVarFlag('NO_GENERIC_LICENSE', license_type, True) == basename:
- lic_files_paths.append(("generic_" + license_type, path))
- break
+ lic_files_paths.append(("generic_" + license_type,
+ os.path.join(srcdir, non_generic_lic)))
else:
# Add explicity avoid of CLOSED license because this isn't generic
if license_type != 'CLOSED':
@@ -466,7 +465,7 @@ def find_license_files(d):
pass
if not generic_directory:
- raise bb.build.FuncFailed("COMMON_LICENSE_DIR is unset. Please set this in your distro config")
+ bb.fatal("COMMON_LICENSE_DIR is unset. Please set this in your distro config")
if not lic_files:
# No recipe should have an invalid license file. This is checked else
@@ -478,19 +477,32 @@ def find_license_files(d):
try:
(type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
except bb.fetch.MalformedUrl:
- raise bb.build.FuncFailed("%s: LIC_FILES_CHKSUM contains an invalid URL: %s" % (d.getVar('PF', True), url))
+ bb.fatal("%s: LIC_FILES_CHKSUM contains an invalid URL: %s" % (d.getVar('PF', True), url))
# We want the license filename and path
- srclicfile = os.path.join(srcdir, path)
- lic_files_paths.append((os.path.basename(path), srclicfile))
+ chksum = parm['md5'] if 'md5' in parm else parm['sha256']
+ lic_chksums[path] = chksum
v = FindVisitor()
try:
- v.visit_string(license_types)
+ v.visit_string(d.getVar('LICENSE', True))
except oe.license.InvalidLicense as exc:
bb.fatal('%s: %s' % (d.getVar('PF', True), exc))
except SyntaxError:
bb.warn("%s: Failed to parse it's LICENSE field." % (d.getVar('PF', True)))
+ # Add files from LIC_FILES_CHKSUM to list of license files
+ lic_chksum_paths = defaultdict(OrderedDict)
+ for path, chksum in lic_chksums.items():
+ lic_chksum_paths[os.path.basename(path)][chksum] = os.path.join(srcdir, path)
+ for basename, files in lic_chksum_paths.items():
+ if len(files) == 1:
+ lic_files_paths.append((basename, list(files.values())[0]))
+ else:
+ # If there are multiple different license files with identical
+ # basenames we rename them to <file>.0, <file>.1, ...
+ for i, path in enumerate(files.values()):
+ lic_files_paths.append(("%s.%d" % (basename, i), path))
+
return lic_files_paths
def return_spdx(d, license):
@@ -633,7 +645,7 @@ def check_license_format(d):
licenses = d.getVar('LICENSE', True)
from oe.license import license_operator, license_operator_chars, license_pattern
- elements = filter(lambda x: x.strip(), license_operator.split(licenses))
+ elements = list(filter(lambda x: x.strip(), license_operator.split(licenses)))
for pos, element in enumerate(elements):
if license_pattern.match(element):
if pos > 0 and license_pattern.match(elements[pos - 1]):
@@ -656,8 +668,6 @@ do_rootfs[recrdeptask] += "do_populate_lic"
IMAGE_POSTPROCESS_COMMAND_prepend = "write_deploy_manifest; "
do_image[recrdeptask] += "do_populate_lic"
-do_populate_lic_setscene[dirs] = "${LICSSTATEDIR}/${PN}"
-do_populate_lic_setscene[cleandirs] = "${LICSSTATEDIR}"
python do_populate_lic_setscene () {
sstate_setscene(d)
}
diff --git a/import-layers/yocto-poky/meta/classes/linuxloader.bbclass b/import-layers/yocto-poky/meta/classes/linuxloader.bbclass
index 5c4dc5c51..117b03074 100644
--- a/import-layers/yocto-poky/meta/classes/linuxloader.bbclass
+++ b/import-layers/yocto-poky/meta/classes/linuxloader.bbclass
@@ -1,7 +1,13 @@
linuxloader () {
case ${TARGET_ARCH} in
- powerpc | mips | mipsel | microblaze )
+ powerpc | microblaze )
+ dynamic_loader="${base_libdir}/ld.so.1"
+ ;;
+ mipsisa32r6el | mipsisa32r6 | mipsisa64r6el | mipsisa64r6)
+ dynamic_loader="${base_libdir}/ld-linux-mipsn8.so.1"
+ ;;
+ mips* )
dynamic_loader="${base_libdir}/ld.so.1"
;;
powerpc64)
diff --git a/import-layers/yocto-poky/meta/classes/live-vm-common.bbclass b/import-layers/yocto-poky/meta/classes/live-vm-common.bbclass
index c751385e7..734697f9e 100644
--- a/import-layers/yocto-poky/meta/classes/live-vm-common.bbclass
+++ b/import-layers/yocto-poky/meta/classes/live-vm-common.bbclass
@@ -31,14 +31,18 @@ inherit ${EFI_CLASS}
inherit ${PCBIOS_CLASS}
KERNEL_IMAGETYPE ??= "bzImage"
+VM_DEFAULT_KERNEL ??= "${KERNEL_IMAGETYPE}"
populate_kernel() {
dest=$1
install -d $dest
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
- if [ -e ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ]; then
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} $dest/vmlinuz
+ bbnote "Trying to install ${DEPLOY_DIR_IMAGE}/${VM_DEFAULT_KERNEL} as $dest/vmlinuz"
+ if [ -e ${DEPLOY_DIR_IMAGE}/${VM_DEFAULT_KERNEL} ]; then
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${VM_DEFAULT_KERNEL} $dest/vmlinuz
+ else
+ bbwarn "${DEPLOY_DIR_IMAGE}/${VM_DEFAULT_KERNEL} doesn't exist"
fi
# initrd is made of concatenation of multiple filesystem images
diff --git a/import-layers/yocto-poky/meta/classes/metadata_scm.bbclass b/import-layers/yocto-poky/meta/classes/metadata_scm.bbclass
index 0f7f4235a..2e6fac209 100644
--- a/import-layers/yocto-poky/meta/classes/metadata_scm.bbclass
+++ b/import-layers/yocto-poky/meta/classes/metadata_scm.bbclass
@@ -4,8 +4,7 @@ METADATA_REVISION ?= "${@base_detect_revision(d)}"
def base_detect_revision(d):
path = base_get_scmbasepath(d)
- scms = [base_get_metadata_git_revision, \
- base_get_metadata_svn_revision]
+ scms = [base_get_metadata_git_revision]
for scm in scms:
rev = scm(path, d)
@@ -27,7 +26,7 @@ def base_detect_branch(d):
return "<unknown>"
def base_get_scmbasepath(d):
- return d.getVar( 'COREBASE', True)
+ return os.path.join(d.getVar('COREBASE', True), 'meta')
def base_get_metadata_monotone_branch(path, d):
monotone_branch = "<unknown>"
diff --git a/import-layers/yocto-poky/meta/classes/mirrors.bbclass b/import-layers/yocto-poky/meta/classes/mirrors.bbclass
index 9e6d4836d..11847085b 100644
--- a/import-layers/yocto-poky/meta/classes/mirrors.bbclass
+++ b/import-layers/yocto-poky/meta/classes/mirrors.bbclass
@@ -21,13 +21,13 @@ ${DEBIAN_MIRROR} ftp://ftp.se.debian.org/debian/pool \n \
${DEBIAN_MIRROR} ftp://ftp.tr.debian.org/debian/pool \n \
${GNU_MIRROR} ftp://mirrors.kernel.org/gnu \n \
${KERNELORG_MIRROR} http://www.kernel.org/pub \n \
-ftp://ftp.gnupg.org/gcrypt/ ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/ \n \
-ftp://ftp.gnupg.org/gcrypt/ ftp://ftp.surfnet.nl/pub/security/gnupg/ \n \
-ftp://ftp.gnupg.org/gcrypt/ http://gulus.USherbrooke.ca/pub/appl/GnuPG/ \n \
+${GNUPG_MIRROR} ftp://ftp.gnupg.org/gcrypt \n \
+${GNUPG_MIRROR} ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \n \
+${GNUPG_MIRROR} ftp://mirrors.dotsrc.org/gcrypt \n \
ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n \
ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n \
ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n \
-ftp://ftp.gnutls.org/gcrypt/gnutls ftp://ftp.gnupg.org/gcrypt/gnutls/ \n \
+ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR} \n \
http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \n \
http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n \
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/ ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/ \n \
diff --git a/import-layers/yocto-poky/meta/classes/module.bbclass b/import-layers/yocto-poky/meta/classes/module.bbclass
index 01c9309eb..68e3d341a 100644
--- a/import-layers/yocto-poky/meta/classes/module.bbclass
+++ b/import-layers/yocto-poky/meta/classes/module.bbclass
@@ -8,6 +8,15 @@ EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}"
MODULES_INSTALL_TARGET ?= "modules_install"
+python __anonymous () {
+ depends = d.getVar('DEPENDS', True)
+ extra_symbols = []
+ for dep in depends.split():
+ if dep.startswith("kernel-module-"):
+ extra_symbols.append("${STAGING_INCDIR}/" + dep + "/Module.symvers")
+ d.setVar('KBUILD_EXTRA_SYMBOLS', " ".join(extra_symbols))
+}
+
module_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
@@ -15,6 +24,7 @@ module_do_compile() {
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
AR="${KERNEL_AR}" \
O=${STAGING_KERNEL_BUILDDIR} \
+ KBUILD_EXTRA_SYMBOLS="${KBUILD_EXTRA_SYMBOLS}" \
${MAKE_TARGETS}
}
@@ -24,6 +34,11 @@ module_do_install() {
CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
O=${STAGING_KERNEL_BUILDDIR} \
${MODULES_INSTALL_TARGET}
+
+ install -d -m0755 ${D}${includedir}/${BPN}
+ cp -a --no-preserve=ownership ${B}/Module.symvers ${D}${includedir}/${BPN}
+ # it doesn't actually seem to matter which path is specified here
+ sed -e 's:${B}/::g' -i ${D}${includedir}/${BPN}/Module.symvers
}
EXPORT_FUNCTIONS do_compile do_install
diff --git a/import-layers/yocto-poky/meta/classes/multilib_global.bbclass b/import-layers/yocto-poky/meta/classes/multilib_global.bbclass
index 67dc72b76..11ae2681f 100644
--- a/import-layers/yocto-poky/meta/classes/multilib_global.bbclass
+++ b/import-layers/yocto-poky/meta/classes/multilib_global.bbclass
@@ -72,6 +72,7 @@ def preferred_ml_updates(d):
pkg = pkg.replace("virtual/", "")
virt = "virtual/"
for p in prefixes:
+ newval = None
if pkg != "kernel":
newval = p + "-" + val
@@ -86,7 +87,7 @@ def preferred_ml_updates(d):
# implement alternative multilib name
newname = localdata.expand("PREFERRED_PROVIDER_" + virt + p + "-" + pkg)
- if not d.getVar(newname, False):
+ if not d.getVar(newname, False) and newval != None:
d.setVar(newname, localdata.expand(newval))
# Avoid future variable key expansion
provexp = d.expand(prov)
diff --git a/import-layers/yocto-poky/meta/classes/multilib_header.bbclass b/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
index 5ee0a2d56..304c28e77 100644
--- a/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
+++ b/import-layers/yocto-poky/meta/classes/multilib_header.bbclass
@@ -52,3 +52,8 @@ oe_multilib_header() {
oe_multilib_header_class-native () {
return
}
+
+# Nor do we need multilib headers for nativesdk builds.
+oe_multilib_header_class-nativesdk () {
+ return
+}
diff --git a/import-layers/yocto-poky/meta/classes/native.bbclass b/import-layers/yocto-poky/meta/classes/native.bbclass
index f67ef0014..143f8a914 100644
--- a/import-layers/yocto-poky/meta/classes/native.bbclass
+++ b/import-layers/yocto-poky/meta/classes/native.bbclass
@@ -87,8 +87,7 @@ datadir = "${STAGING_DATADIR_NATIVE}"
baselib = "lib"
-# Libtool's default paths are correct for the native machine
-lt_cv_sys_lib_dlsearch_path_spec[unexport] = "1"
+export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir} /lib /lib64 /usr/lib /usr/lib64"
NATIVE_PACKAGE_PATH_SUFFIX ?= ""
bindir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"
diff --git a/import-layers/yocto-poky/meta/classes/nativesdk.bbclass b/import-layers/yocto-poky/meta/classes/nativesdk.bbclass
index f74da6267..a78257c19 100644
--- a/import-layers/yocto-poky/meta/classes/nativesdk.bbclass
+++ b/import-layers/yocto-poky/meta/classes/nativesdk.bbclass
@@ -10,6 +10,8 @@ LIBCOVERRIDE = ":${NATIVESDKLIBC}"
CLASSOVERRIDE = "class-nativesdk"
MACHINEOVERRIDES = ""
+MULTILIBS = ""
+
#
# Update PACKAGE_ARCH and PACKAGE_ARCHS
#
diff --git a/import-layers/yocto-poky/meta/classes/nopackages.bbclass b/import-layers/yocto-poky/meta/classes/nopackages.bbclass
index 0c2761bef..559f5078b 100644
--- a/import-layers/yocto-poky/meta/classes/nopackages.bbclass
+++ b/import-layers/yocto-poky/meta/classes/nopackages.bbclass
@@ -4,3 +4,9 @@ deltask do_package_write_ipk
deltask do_package_write_deb
deltask do_package_qa
deltask do_packagedata
+deltask do_package_setscene
+deltask do_package_write_rpm_setscene
+deltask do_package_write_ipk_setscene
+deltask do_package_write_deb_setscene
+deltask do_package_qa_setscene
+deltask do_packagedata_setscene
diff --git a/import-layers/yocto-poky/meta/classes/npm.bbclass b/import-layers/yocto-poky/meta/classes/npm.bbclass
index 9843e8735..fce4c1146 100644
--- a/import-layers/yocto-poky/meta/classes/npm.bbclass
+++ b/import-layers/yocto-poky/meta/classes/npm.bbclass
@@ -1,9 +1,25 @@
DEPENDS_prepend = "nodejs-native "
+RDEPENDS_${PN}_prepend = "nodejs "
S = "${WORKDIR}/npmpkg"
NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}"
+# function maps arch names to npm arch names
+def npm_oe_arch_map(target_arch, d):
+ import re
+ if re.match('p(pc|owerpc)(|64)', target_arch): return 'ppc'
+ elif re.match('i.86$', target_arch): return 'ia32'
+ elif re.match('x86_64$', target_arch): return 'x64'
+ elif re.match('arm64$', target_arch): return 'arm'
+ return target_arch
+
+NPM_ARCH ?= "${@npm_oe_arch_map(d.getVar('TARGET_ARCH', True), d)}"
+
npm_do_compile() {
+ # Copy in any additionally fetched modules
+ if [ -d ${WORKDIR}/node_modules ] ; then
+ cp -a ${WORKDIR}/node_modules ${S}/
+ fi
# changing the home directory to the working directory, the .npmrc will
# be created in this directory
export HOME=${WORKDIR}
@@ -12,7 +28,7 @@ npm_do_compile() {
# clear cache before every build
npm cache clear
# Install pkg into ${S} without going to the registry
- npm --arch=${TARGET_ARCH} --production --no-registry install
+ npm --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry install
}
npm_do_install() {
@@ -35,10 +51,10 @@ python populate_packages_prepend () {
if pdata:
version = pdata.get('version', None)
if version:
- d.setVar('PKGV_%s' % expanded_pkgname, version.encode("utf8"))
+ d.setVar('PKGV_%s' % expanded_pkgname, version)
description = pdata.get('description', None)
if description:
- d.setVar('SUMMARY_%s' % expanded_pkgname, description.replace(u"\u2018", "'").replace(u"\u2019", "'").encode("utf8"))
+ d.setVar('SUMMARY_%s' % expanded_pkgname, description.replace(u"\u2018", "'").replace(u"\u2019", "'"))
d.appendVar('RDEPENDS_%s' % d.getVar('PN', True), ' %s' % ' '.join(pkgnames).replace('_', '-'))
}
diff --git a/import-layers/yocto-poky/meta/classes/oelint.bbclass b/import-layers/yocto-poky/meta/classes/oelint.bbclass
index 1b051ca22..c4febc2cf 100644
--- a/import-layers/yocto-poky/meta/classes/oelint.bbclass
+++ b/import-layers/yocto-poky/meta/classes/oelint.bbclass
@@ -45,7 +45,7 @@ python do_lint() {
def findKey(path, key):
ret = True
- f = file('%s' % path, mode = 'r')
+ f = open('%s' % path, mode = 'r')
line = f.readline()
while line:
if line.find(key) != -1:
diff --git a/import-layers/yocto-poky/meta/classes/package.bbclass b/import-layers/yocto-poky/meta/classes/package.bbclass
index 76b9f8649..a6f0a7a63 100644
--- a/import-layers/yocto-poky/meta/classes/package.bbclass
+++ b/import-layers/yocto-poky/meta/classes/package.bbclass
@@ -63,7 +63,7 @@ def legitimize_package_name(s):
def fixutf(m):
cp = m.group(1)
if cp:
- return ('\u%s' % cp).decode('unicode_escape').encode('utf-8')
+ return ('\\u%s' % cp).encode('latin-1').decode('unicode_escape')
# Handle unicode codepoints encoded as <U0123>, as in glibc locale files.
s = re.sub('<U([0-9A-Fa-f]{1,4})>', fixutf, s)
@@ -146,7 +146,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
packages = d.getVar('PACKAGES', True).split()
- split_packages = []
+ split_packages = set()
if postinst:
postinst = '#!/bin/sh\n' + postinst + '\n'
@@ -183,7 +183,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
continue
on = legitimize_package_name(m.group(1))
pkg = output_pattern % on
- split_packages.append(pkg)
+ split_packages.add(pkg)
if not pkg in packages:
if prepend:
packages = [pkg] + packages
@@ -226,7 +226,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
hook(f, pkg, file_regex, output_pattern, m.group(1))
d.setVar('PACKAGES', ' '.join(packages))
- return split_packages
+ return list(split_packages)
PACKAGE_DEPENDS += "file-native"
@@ -259,14 +259,30 @@ def files_from_filevars(filevars):
continue
files.append(f)
- for f in files:
+ symlink_paths = []
+ for ind, f in enumerate(files):
+ # Handle directory symlinks. Truncate path to the lowest level symlink
+ parent = ''
+ for dirname in f.split('/')[:-1]:
+ parent = os.path.join(parent, dirname)
+ if dirname == '.':
+ continue
+ if cpath.islink(parent):
+ bb.warn("FILES contains file '%s' which resides under a "
+ "directory symlink. Please fix the recipe and use the "
+ "real path for the file." % f[1:])
+ symlink_paths.append(f)
+ files[ind] = parent
+ f = parent
+ break
+
if not cpath.islink(f):
if cpath.isdir(f):
newfiles = [ os.path.join(f,x) for x in os.listdir(f) ]
if newfiles:
files += newfiles
- return files
+ return files, symlink_paths
# Called in package_<rpm,ipk,deb>.bbclass to get the correct list of configuration files
def get_conffiles(pkg, d):
@@ -281,7 +297,7 @@ def get_conffiles(pkg, d):
if conffiles == None:
conffiles = ""
conffiles = conffiles.split()
- conf_orig_list = files_from_filevars(conffiles)
+ conf_orig_list = files_from_filevars(conffiles)[0]
# Remove links and directories from conf_orig_list to get conf_list which only contains normal files
conf_list = []
@@ -841,6 +857,9 @@ python split_and_strip_files () {
dvar = d.getVar('PKGD', True)
pn = d.getVar('PN', True)
+ oldcwd = os.getcwd()
+ os.chdir(dvar)
+
# We default to '.debug' style
if d.getVar('PACKAGE_DEBUG_SPLIT_STYLE', True) == 'debug-file-directory':
# Single debug-file-directory style debug info
@@ -864,8 +883,6 @@ python split_and_strip_files () {
sourcefile = d.expand("${WORKDIR}/debugsources.list")
bb.utils.remove(sourcefile)
- os.chdir(dvar)
-
# Return type (bits):
# 0 - not elf
# 1 - ELF
@@ -903,7 +920,8 @@ python split_and_strip_files () {
inodes = {}
libdir = os.path.abspath(dvar + os.sep + d.getVar("libdir", True))
baselibdir = os.path.abspath(dvar + os.sep + d.getVar("base_libdir", True))
- if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1'):
+ if (d.getVar('INHIBIT_PACKAGE_STRIP', True) != '1' or \
+ d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT', True) != '1'):
for root, dirs, files in cpath.walk(dvar):
for f in files:
file = os.path.join(root, f)
@@ -1051,6 +1069,7 @@ python split_and_strip_files () {
#
# End of strip
#
+ os.chdir(oldcwd)
}
python populate_packages () {
@@ -1108,7 +1127,7 @@ python populate_packages () {
filesvar.replace("//", "/")
origfiles = filesvar.split()
- files = files_from_filevars(origfiles)
+ files, symlink_paths = files_from_filevars(origfiles)
if autodebug and pkg.endswith("-dbg"):
files.extend(debug)
@@ -1149,13 +1168,19 @@ python populate_packages () {
fpath = os.path.join(root,file)
if not cpath.islink(file):
os.link(file, fpath)
- fstat = cpath.stat(file)
- os.chmod(fpath, fstat.st_mode)
- os.chown(fpath, fstat.st_uid, fstat.st_gid)
continue
ret = bb.utils.copyfile(file, fpath)
if ret is False or ret == 0:
- raise bb.build.FuncFailed("File population failed")
+ bb.fatal("File population failed")
+
+ # Check if symlink paths exist
+ for file in symlink_paths:
+ if not os.path.exists(os.path.join(root,file)):
+ bb.fatal("File '%s' cannot be packaged into '%s' because its "
+ "parent directory structure does not exist. One of "
+ "its parent directories is a symlink whose target "
+ "directory is not included in the package." %
+ (file, pkg))
os.umask(oldumask)
os.chdir(workdir)
@@ -1258,8 +1283,8 @@ python emit_pkgdata() {
def write_if_exists(f, pkg, var):
def encode(str):
import codecs
- c = codecs.getencoder("string_escape")
- return c(str)[0]
+ c = codecs.getencoder("unicode_escape")
+ return c(str)[0].decode("latin1")
val = d.getVar('%s_%s' % (var, pkg), True)
if val:
@@ -1465,7 +1490,7 @@ python package_do_shlibs() {
import re, pipes
import subprocess as sub
- exclude_shlibs = d.getVar('EXCLUDE_FROM_SHLIBS', 0)
+ exclude_shlibs = d.getVar('EXCLUDE_FROM_SHLIBS', False)
if exclude_shlibs:
bb.note("not generating shlibs")
return
@@ -1503,7 +1528,7 @@ python package_do_shlibs() {
m = re.match("\s+RPATH\s+([^\s]*)", l)
if m:
rpaths = m.group(1).replace("$ORIGIN", ldir).split(":")
- rpath = map(os.path.normpath, rpaths)
+ rpath = list(map(os.path.normpath, rpaths))
for l in lines:
m = re.match("\s+NEEDED\s+([^\s]*)", l)
if m:
@@ -1554,19 +1579,19 @@ python package_do_shlibs() {
if file.endswith('.dylib') or file.endswith('.so'):
rpath = []
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file],stdout=sub.PIPE,stderr=sub.PIPE)
- err, out = p.communicate()
- # If returned successfully, process stderr for results
+ out, err = p.communicate()
+ # If returned successfully, process stdout for results
if p.returncode == 0:
- for l in err.split("\n"):
+ for l in out.split("\n"):
l = l.strip()
if l.startswith('path '):
rpath.append(l.split()[1])
p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
- err, out = p.communicate()
- # If returned successfully, process stderr for results
+ out, err = p.communicate()
+ # If returned successfully, process stdout for results
if p.returncode == 0:
- for l in err.split("\n"):
+ for l in out.split("\n"):
l = l.strip()
if not l or l.endswith(":"):
continue
@@ -1673,7 +1698,7 @@ python package_do_shlibs() {
bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0]))
continue
if n[0] in shlib_provider.keys():
- shlib_provider_path = list()
+ shlib_provider_path = []
for k in shlib_provider[n[0]].keys():
shlib_provider_path.append(k)
match = None
@@ -2128,4 +2153,3 @@ def mapping_rename_hook(d):
runtime_mapping_rename("RDEPENDS", pkg, d)
runtime_mapping_rename("RRECOMMENDS", pkg, d)
runtime_mapping_rename("RSUGGESTS", pkg, d)
-
diff --git a/import-layers/yocto-poky/meta/classes/package_deb.bbclass b/import-layers/yocto-poky/meta/classes/package_deb.bbclass
index e1d05a74c..fb6034cab 100644
--- a/import-layers/yocto-poky/meta/classes/package_deb.bbclass
+++ b/import-layers/yocto-poky/meta/classes/package_deb.bbclass
@@ -52,6 +52,9 @@ python do_package_deb () {
import re, copy
import textwrap
import subprocess
+ import collections
+
+ oldcwd = os.getcwd()
workdir = d.getVar('WORKDIR', True)
if not workdir:
@@ -117,13 +120,13 @@ python do_package_deb () {
controldir = os.path.join(root, 'DEBIAN')
bb.utils.mkdirhier(controldir)
- os.chmod(controldir, 0755)
+ os.chmod(controldir, 0o755)
try:
import codecs
ctrlfile = codecs.open(os.path.join(controldir, 'control'), 'w', 'utf-8')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open control file for writing.")
+ bb.fatal("unable to open control file for writing")
fields = []
pe = d.getVar('PKGE', True)
@@ -173,7 +176,7 @@ python do_package_deb () {
# Special behavior for description...
if 'DESCRIPTION' in fs:
summary = localdata.getVar('SUMMARY', True) or localdata.getVar('DESCRIPTION', True) or "."
- ctrlfile.write('Description: %s\n' % unicode(summary,'utf-8'))
+ ctrlfile.write('Description: %s\n' % summary)
description = localdata.getVar('DESCRIPTION', True) or "."
description = textwrap.dedent(description).strip()
if '\\n' in description:
@@ -182,29 +185,25 @@ python do_package_deb () {
# We don't limit the width when manually indent, but we do
# need the textwrap.fill() to set the initial_indent and
# subsequent_indent, so set a large width
- ctrlfile.write('%s\n' % unicode(textwrap.fill(t, width=100000, initial_indent=' ', subsequent_indent=' '),'utf-8'))
+ ctrlfile.write('%s\n' % textwrap.fill(t, width=100000, initial_indent=' ', subsequent_indent=' '))
else:
# Auto indent
- ctrlfile.write('%s\n' % unicode(textwrap.fill(description.strip(), width=74, initial_indent=' ', subsequent_indent=' '),'utf-8'))
+ ctrlfile.write('%s\n' % textwrap.fill(description.strip(), width=74, initial_indent=' ', subsequent_indent=' '))
else:
- ctrlfile.write(unicode(c % tuple(pullData(fs, localdata)),'utf-8'))
+ ctrlfile.write(c % tuple(pullData(fs, localdata)))
except KeyError:
import sys
(type, value, traceback) = sys.exc_info()
bb.utils.unlockfile(lf)
ctrlfile.close()
- raise bb.build.FuncFailed("Missing field for deb generation: %s" % value)
- except UnicodeDecodeError:
- bb.utils.unlockfile(lf)
- ctrlfile.close()
- raise bb.build.FuncFailed("Non UTF-8 characters found in one of the fields")
+ bb.fatal("Missing field for deb generation: %s" % value)
# more fields
custom_fields_chunk = get_package_additional_metadata("deb", localdata)
if custom_fields_chunk is not None:
- ctrlfile.write(unicode(custom_fields_chunk))
+ ctrlfile.write(custom_fields_chunk)
ctrlfile.write("\n")
mapping_rename_hook(localdata)
@@ -234,7 +233,7 @@ python do_package_deb () {
rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS", True) or "")
debian_cmp_remap(rdepends)
- for dep in rdepends.keys():
+ for dep in list(rdepends.keys()):
if dep == pkg:
del rdepends[dep]
continue
@@ -242,30 +241,31 @@ python do_package_deb () {
del rdepends[dep]
rrecommends = bb.utils.explode_dep_versions2(localdata.getVar("RRECOMMENDS", True) or "")
debian_cmp_remap(rrecommends)
- for dep in rrecommends.keys():
+ for dep in list(rrecommends.keys()):
if '*' in dep:
del rrecommends[dep]
rsuggests = bb.utils.explode_dep_versions2(localdata.getVar("RSUGGESTS", True) or "")
debian_cmp_remap(rsuggests)
# Deliberately drop version information here, not wanted/supported by deb
rprovides = dict.fromkeys(bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES", True) or ""), [])
+ rprovides = collections.OrderedDict(sorted(rprovides.items(), key=lambda x: x[0]))
debian_cmp_remap(rprovides)
rreplaces = bb.utils.explode_dep_versions2(localdata.getVar("RREPLACES", True) or "")
debian_cmp_remap(rreplaces)
rconflicts = bb.utils.explode_dep_versions2(localdata.getVar("RCONFLICTS", True) or "")
debian_cmp_remap(rconflicts)
if rdepends:
- ctrlfile.write("Depends: %s\n" % unicode(bb.utils.join_deps(rdepends)))
+ ctrlfile.write("Depends: %s\n" % bb.utils.join_deps(rdepends))
if rsuggests:
- ctrlfile.write("Suggests: %s\n" % unicode(bb.utils.join_deps(rsuggests)))
+ ctrlfile.write("Suggests: %s\n" % bb.utils.join_deps(rsuggests))
if rrecommends:
- ctrlfile.write("Recommends: %s\n" % unicode(bb.utils.join_deps(rrecommends)))
+ ctrlfile.write("Recommends: %s\n" % bb.utils.join_deps(rrecommends))
if rprovides:
- ctrlfile.write("Provides: %s\n" % unicode(bb.utils.join_deps(rprovides)))
+ ctrlfile.write("Provides: %s\n" % bb.utils.join_deps(rprovides))
if rreplaces:
- ctrlfile.write("Replaces: %s\n" % unicode(bb.utils.join_deps(rreplaces)))
+ ctrlfile.write("Replaces: %s\n" % bb.utils.join_deps(rreplaces))
if rconflicts:
- ctrlfile.write("Conflicts: %s\n" % unicode(bb.utils.join_deps(rconflicts)))
+ ctrlfile.write("Conflicts: %s\n" % bb.utils.join_deps(rconflicts))
ctrlfile.close()
for script in ["preinst", "postinst", "prerm", "postrm"]:
@@ -277,7 +277,7 @@ python do_package_deb () {
scriptfile = open(os.path.join(controldir, script), 'w')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open %s script file for writing." % script)
+ bb.fatal("unable to open %s script file for writing" % script)
if scriptvar.startswith("#!"):
pos = scriptvar.find("\n") + 1
@@ -293,7 +293,7 @@ python do_package_deb () {
scriptfile.write(scriptvar[pos:])
scriptfile.write('\n')
scriptfile.close()
- os.chmod(os.path.join(controldir, script), 0755)
+ os.chmod(os.path.join(controldir, script), 0o755)
conffiles_str = ' '.join(get_conffiles(pkg, d))
if conffiles_str:
@@ -301,7 +301,7 @@ python do_package_deb () {
conffiles = open(os.path.join(controldir, 'conffiles'), 'w')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open conffiles for writing.")
+ bb.fatal("unable to open conffiles for writing")
for f in conffiles_str.split():
if os.path.exists(oe.path.join(root, f)):
conffiles.write('%s\n' % f)
@@ -311,10 +311,11 @@ python do_package_deb () {
ret = subprocess.call("PATH=\"%s\" dpkg-deb -b %s %s" % (localdata.getVar("PATH", True), root, pkgoutdir), shell=True)
if ret != 0:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("dpkg-deb execution failed")
+ bb.fatal("dpkg-deb execution failed")
cleanupcontrol(root)
bb.utils.unlockfile(lf)
+ os.chdir(oldcwd)
}
# Indirect references to these vars
do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE"
diff --git a/import-layers/yocto-poky/meta/classes/package_ipk.bbclass b/import-layers/yocto-poky/meta/classes/package_ipk.bbclass
index f1ad1d5c1..eb0093233 100644
--- a/import-layers/yocto-poky/meta/classes/package_ipk.bbclass
+++ b/import-layers/yocto-poky/meta/classes/package_ipk.bbclass
@@ -20,6 +20,9 @@ python do_package_ipk () {
import re, copy
import textwrap
import subprocess
+ import collections
+
+ oldcwd = os.getcwd()
workdir = d.getVar('WORKDIR', True)
outdir = d.getVar('PKGWRITEDIRIPK', True)
@@ -105,7 +108,7 @@ python do_package_ipk () {
ctrlfile = open(os.path.join(controldir, 'control'), 'w')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open control file for writing.")
+ bb.fatal("unable to open control file for writing")
fields = []
pe = d.getVar('PKGE', True)
@@ -159,7 +162,7 @@ python do_package_ipk () {
(type, value, traceback) = sys.exc_info()
ctrlfile.close()
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("Missing field for ipk generation: %s" % value)
+ bb.fatal("Missing field for ipk generation: %s" % value)
# more fields
custom_fields_chunk = get_package_additional_metadata("ipk", localdata)
@@ -190,6 +193,7 @@ python do_package_ipk () {
debian_cmp_remap(rsuggests)
# Deliberately drop version information here, not wanted/supported by ipk
rprovides = dict.fromkeys(bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES", True) or ""), [])
+ rprovides = collections.OrderedDict(sorted(rprovides.items(), key=lambda x: x[0]))
debian_cmp_remap(rprovides)
rreplaces = bb.utils.explode_dep_versions2(localdata.getVar("RREPLACES", True) or "")
debian_cmp_remap(rreplaces)
@@ -222,10 +226,10 @@ python do_package_ipk () {
scriptfile = open(os.path.join(controldir, script), 'w')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open %s script file for writing." % script)
+ bb.fatal("unable to open %s script file for writing" % script)
scriptfile.write(scriptvar)
scriptfile.close()
- os.chmod(os.path.join(controldir, script), 0755)
+ os.chmod(os.path.join(controldir, script), 0o755)
conffiles_str = ' '.join(get_conffiles(pkg, d))
if conffiles_str:
@@ -233,7 +237,7 @@ python do_package_ipk () {
conffiles = open(os.path.join(controldir, 'conffiles'), 'w')
except OSError:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("unable to open conffiles for writing.")
+ bb.fatal("unable to open conffiles for writing")
for f in conffiles_str.split():
if os.path.exists(oe.path.join(root, f)):
conffiles.write('%s\n' % f)
@@ -241,10 +245,10 @@ python do_package_ipk () {
os.chdir(basedir)
ret = subprocess.call("PATH=\"%s\" %s %s %s" % (localdata.getVar("PATH", True),
- d.getVar("OPKGBUILDCMD",1), pkg, pkgoutdir), shell=True)
+ d.getVar("OPKGBUILDCMD", True), pkg, pkgoutdir), shell=True)
if ret != 0:
bb.utils.unlockfile(lf)
- raise bb.build.FuncFailed("opkg-build execution failed")
+ bb.fatal("opkg-build execution failed")
if d.getVar('IPK_SIGN_PACKAGES', True) == '1':
ipkver = "%s-%s" % (d.getVar('PKGV', True), d.getVar('PKGR', True))
@@ -254,6 +258,7 @@ python do_package_ipk () {
cleanupcontrol(root)
bb.utils.unlockfile(lf)
+ os.chdir(oldcwd)
}
# Otherwise allarch packages may change depending on override configuration
do_package_ipk[vardepsexclude] = "OVERRIDES"
diff --git a/import-layers/yocto-poky/meta/classes/package_rpm.bbclass b/import-layers/yocto-poky/meta/classes/package_rpm.bbclass
index 7d523a16f..c431545f7 100644
--- a/import-layers/yocto-poky/meta/classes/package_rpm.bbclass
+++ b/import-layers/yocto-poky/meta/classes/package_rpm.bbclass
@@ -58,12 +58,12 @@ def write_rpm_perfiledata(srcname, d):
try:
dependsfile = open(outdepends, 'w')
except OSError:
- raise bb.build.FuncFailed("unable to open spec file for writing.")
+ bb.fatal("unable to open spec file for writing")
dump_filerdeps('RDEPENDS', dependsfile, d)
dependsfile.close()
- os.chmod(outdepends, 0755)
+ os.chmod(outdepends, 0o755)
# OE-core / RPM Provides
outprovides = workdir + "/" + srcname + ".provides"
@@ -71,12 +71,12 @@ def write_rpm_perfiledata(srcname, d):
try:
providesfile = open(outprovides, 'w')
except OSError:
- raise bb.build.FuncFailed("unable to open spec file for writing.")
+ bb.fatal("unable to open spec file for writing")
dump_filerdeps('RPROVIDES', providesfile, d)
providesfile.close()
- os.chmod(outprovides, 0755)
+ os.chmod(outprovides, 0o755)
return (outdepends, outprovides)
@@ -617,7 +617,7 @@ python write_specfile () {
try:
specfile = open(outspecfile, 'w')
except OSError:
- raise bb.build.FuncFailed("unable to open spec file for writing.")
+ bb.fatal("unable to open spec file for writing")
# RPMSPEC_PREAMBLE is a way to add arbitrary text to the top
# of the generated spec file
@@ -702,7 +702,7 @@ python do_package_rpm () {
pkgarch = d.expand('${PACKAGE_ARCH_EXTEND}${HOST_VENDOR}-${HOST_OS}')
magicfile = d.expand('${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc')
bb.utils.mkdirhier(pkgwritedir)
- os.chmod(pkgwritedir, 0755)
+ os.chmod(pkgwritedir, 0o755)
cmd = rpmbuild
cmd = cmd + " --nodeps --short-circuit --target " + pkgarch + " --buildroot " + pkgd
diff --git a/import-layers/yocto-poky/meta/classes/package_tar.bbclass b/import-layers/yocto-poky/meta/classes/package_tar.bbclass
index 854e64528..e217814af 100644
--- a/import-layers/yocto-poky/meta/classes/package_tar.bbclass
+++ b/import-layers/yocto-poky/meta/classes/package_tar.bbclass
@@ -4,6 +4,9 @@ IMAGE_PKGTYPE ?= "tar"
python do_package_tar () {
import subprocess
+
+ oldcwd = os.getcwd()
+
workdir = d.getVar('WORKDIR', True)
if not workdir:
bb.error("WORKDIR not defined, unable to package")
@@ -49,6 +52,8 @@ python do_package_tar () {
ret = subprocess.call(args + [tarfn] + dlist)
if ret != 0:
bb.error("Creation of tar %s failed." % tarfn)
+
+ os.chdir(oldcwd)
}
python () {
diff --git a/import-layers/yocto-poky/meta/classes/packagefeed-stability.bbclass b/import-layers/yocto-poky/meta/classes/packagefeed-stability.bbclass
new file mode 100644
index 000000000..aa01def74
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/packagefeed-stability.bbclass
@@ -0,0 +1,252 @@
+# Class to avoid copying packages into the feed if they haven't materially changed
+#
+# Copyright (C) 2015 Intel Corporation
+# Released under the MIT license (see COPYING.MIT for details)
+#
+# This class effectively intercepts packages as they are written out by
+# do_package_write_*, causing them to be written into a different
+# directory where we can compare them to whatever older packages might
+# be in the "real" package feed directory, and avoid copying the new
+# package to the feed if it has not materially changed. The idea is to
+# avoid unnecessary churn in the packages when dependencies trigger task
+# reexecution (and thus repackaging). Enabling the class is simple:
+#
+# INHERIT += "packagefeed-stability"
+#
+# Caveats:
+# 1) Latest PR values in the build system may not match those in packages
+# seen on the target (naturally)
+# 2) If you rebuild from sstate without the existing package feed present,
+# you will lose the "state" of the package feed i.e. the preserved old
+# package versions. Not the end of the world, but would negate the
+# entire purpose of this class.
+#
+# Note that running -c cleanall on a recipe will purposely delete the old
+# package files so they will definitely be copied the next time.
+
+python() {
+ if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d):
+ return
+ # Package backend agnostic intercept
+ # This assumes that the package_write task is called package_write_<pkgtype>
+ # and that the directory in which packages should be written is
+ # pointed to by the variable DEPLOY_DIR_<PKGTYPE>
+ for pkgclass in (d.getVar('PACKAGE_CLASSES', True) or '').split():
+ if pkgclass.startswith('package_'):
+ pkgtype = pkgclass.split('_', 1)[1]
+ pkgwritefunc = 'do_package_write_%s' % pkgtype
+ sstate_outputdirs = d.getVarFlag(pkgwritefunc, 'sstate-outputdirs', False)
+ deploydirvar = 'DEPLOY_DIR_%s' % pkgtype.upper()
+ deploydirvarref = '${' + deploydirvar + '}'
+ pkgcomparefunc = 'do_package_compare_%s' % pkgtype
+
+ if bb.data.inherits_class('image', d):
+ d.appendVarFlag('do_rootfs', 'recrdeptask', ' ' + pkgcomparefunc)
+
+ if bb.data.inherits_class('populate_sdk_base', d):
+ d.appendVarFlag('do_populate_sdk', 'recrdeptask', ' ' + pkgcomparefunc)
+
+ if bb.data.inherits_class('populate_sdk_ext', d):
+ d.appendVarFlag('do_populate_sdk_ext', 'recrdeptask', ' ' + pkgcomparefunc)
+
+ d.appendVarFlag('do_build', 'recrdeptask', ' ' + pkgcomparefunc)
+
+ if d.getVarFlag(pkgwritefunc, 'noexec', True) or not d.getVarFlag(pkgwritefunc, 'task', True):
+ # Packaging is disabled for this recipe, we shouldn't do anything
+ continue
+
+ if deploydirvarref in sstate_outputdirs:
+ deplor_dir_pkgtype = d.expand(deploydirvarref + '-prediff')
+ # Set intermediate output directory
+ d.setVarFlag(pkgwritefunc, 'sstate-outputdirs', sstate_outputdirs.replace(deploydirvarref, deplor_dir_pkgtype))
+ # Update SSTATE_DUPWHITELIST to avoid shared location conflicted error
+ d.appendVar('SSTATE_DUPWHITELIST', ' %s' % deplor_dir_pkgtype)
+
+ d.setVar(pkgcomparefunc, d.getVar('do_package_compare', False))
+ d.setVarFlags(pkgcomparefunc, d.getVarFlags('do_package_compare', False))
+ d.appendVarFlag(pkgcomparefunc, 'depends', ' build-compare-native:do_populate_sysroot')
+ bb.build.addtask(pkgcomparefunc, 'do_build', 'do_packagedata ' + pkgwritefunc, d)
+}
+
+# This isn't the real task function - it's a template that we use in the
+# anonymous python code above
+fakeroot python do_package_compare () {
+ currenttask = d.getVar('BB_CURRENTTASK', True)
+ pkgtype = currenttask.rsplit('_', 1)[1]
+ package_compare_impl(pkgtype, d)
+}
+
+def package_compare_impl(pkgtype, d):
+ import errno
+ import fnmatch
+ import glob
+ import subprocess
+ import oe.sstatesig
+
+ pn = d.getVar('PN', True)
+ deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper(), True)
+ prepath = deploydir + '-prediff/'
+
+ # Find out PKGR values are
+ pkgdatadir = d.getVar('PKGDATA_DIR', True)
+ packages = []
+ try:
+ with open(os.path.join(pkgdatadir, pn), 'r') as f:
+ for line in f:
+ if line.startswith('PACKAGES:'):
+ packages = line.split(':', 1)[1].split()
+ break
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ pass
+
+ if not packages:
+ bb.debug(2, '%s: no packages, nothing to do' % pn)
+ return
+
+ pkgrvalues = {}
+ rpkgnames = {}
+ rdepends = {}
+ pkgvvalues = {}
+ for pkg in packages:
+ with open(os.path.join(pkgdatadir, 'runtime', pkg), 'r') as f:
+ for line in f:
+ if line.startswith('PKGR:'):
+ pkgrvalues[pkg] = line.split(':', 1)[1].strip()
+ if line.startswith('PKGV:'):
+ pkgvvalues[pkg] = line.split(':', 1)[1].strip()
+ elif line.startswith('PKG_%s:' % pkg):
+ rpkgnames[pkg] = line.split(':', 1)[1].strip()
+ elif line.startswith('RDEPENDS_%s:' % pkg):
+ rdepends[pkg] = line.split(':', 1)[1].strip()
+
+ # Prepare a list of the runtime package names for packages that were
+ # actually produced
+ rpkglist = []
+ for pkg, rpkg in rpkgnames.items():
+ if os.path.exists(os.path.join(pkgdatadir, 'runtime', pkg + '.packaged')):
+ rpkglist.append((rpkg, pkg))
+ rpkglist.sort(key=lambda x: len(x[0]), reverse=True)
+
+ pvu = d.getVar('PV', False)
+ if '$' + '{SRCPV}' in pvu:
+ pvprefix = pvu.split('$' + '{SRCPV}', 1)[0]
+ else:
+ pvprefix = None
+
+ pkgwritetask = 'package_write_%s' % pkgtype
+ files = []
+ docopy = False
+ manifest, _ = oe.sstatesig.sstate_get_manifest_filename(pkgwritetask, d)
+ mlprefix = d.getVar('MLPREFIX', True)
+ # Copy recipe's all packages if one of the packages are different to make
+ # they have the same PR.
+ with open(manifest, 'r') as f:
+ for line in f:
+ if line.startswith(prepath):
+ srcpath = line.rstrip()
+ if os.path.isfile(srcpath):
+ destpath = os.path.join(deploydir, os.path.relpath(srcpath, prepath))
+
+ # This is crude but should work assuming the output
+ # package file name starts with the package name
+ # and rpkglist is sorted by length (descending)
+ pkgbasename = os.path.basename(destpath)
+ pkgname = None
+ for rpkg, pkg in rpkglist:
+ if mlprefix and pkgtype == 'rpm' and rpkg.startswith(mlprefix):
+ rpkg = rpkg[len(mlprefix):]
+ if pkgbasename.startswith(rpkg):
+ pkgr = pkgrvalues[pkg]
+ destpathspec = destpath.replace(pkgr, '*')
+ if pvprefix:
+ pkgv = pkgvvalues[pkg]
+ if pkgv.startswith(pvprefix):
+ pkgvsuffix = pkgv[len(pvprefix):]
+ if '+' in pkgvsuffix:
+ newpkgv = pvprefix + '*+' + pkgvsuffix.split('+', 1)[1]
+ destpathspec = destpathspec.replace(pkgv, newpkgv)
+ pkgname = pkg
+ break
+ else:
+ bb.warn('Unable to map %s back to package' % pkgbasename)
+ destpathspec = destpath
+
+ oldfile = None
+ if not docopy:
+ oldfiles = glob.glob(destpathspec)
+ if oldfiles:
+ oldfile = oldfiles[-1]
+ result = subprocess.call(['pkg-diff.sh', oldfile, srcpath])
+ if result != 0:
+ docopy = True
+ bb.note("%s and %s are different, will copy packages" % (oldfile, srcpath))
+ else:
+ docopy = True
+ bb.note("No old packages found for %s, will copy packages" % pkgname)
+
+ files.append((pkgname, pkgbasename, srcpath, destpath))
+
+ # Remove all the old files and copy again if docopy
+ if docopy:
+ bb.plain('Copying packages for recipe %s' % pn)
+ pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}'))
+ try:
+ with open(pcmanifest, 'r') as f:
+ for line in f:
+ fn = line.rstrip()
+ if fn:
+ try:
+ os.remove(fn)
+ bb.note('Removed old package %s' % fn)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ pass
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ pass
+
+ # Create new manifest
+ with open(pcmanifest, 'w') as f:
+ for pkgname, pkgbasename, srcpath, destpath in files:
+ destdir = os.path.dirname(destpath)
+ bb.utils.mkdirhier(destdir)
+ # Remove allarch rpm pkg if it is already existed (for
+ # multilib), they're identical in theory, but sstate.bbclass
+ # copies it again, so keep align with that.
+ if os.path.exists(destpath) and pkgtype == 'rpm' \
+ and d.getVar('PACKAGE_ARCH', True) == 'all':
+ os.unlink(destpath)
+ if (os.stat(srcpath).st_dev == os.stat(destdir).st_dev):
+ # Use a hard link to save space
+ os.link(srcpath, destpath)
+ else:
+ shutil.copyfile(srcpath, destpath)
+ f.write('%s\n' % destpath)
+ else:
+ bb.plain('Not copying packages for recipe %s' % pn)
+
+do_cleansstate[postfuncs] += "pfs_cleanpkgs"
+python pfs_cleanpkgs () {
+ import errno
+ for pkgclass in (d.getVar('PACKAGE_CLASSES', True) or '').split():
+ if pkgclass.startswith('package_'):
+ pkgtype = pkgclass.split('_', 1)[1]
+ deploydir = d.getVar('DEPLOY_DIR_%s' % pkgtype.upper(), True)
+ prepath = deploydir + '-prediff'
+ pcmanifest = os.path.join(prepath, d.expand('pkg-compare-manifest-${MULTIMACH_TARGET_SYS}-${PN}'))
+ try:
+ with open(pcmanifest, 'r') as f:
+ for line in f:
+ fn = line.rstrip()
+ if fn:
+ try:
+ os.remove(fn)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ pass
+ os.remove(pcmanifest)
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ pass
+}
diff --git a/import-layers/yocto-poky/meta/classes/packagegroup.bbclass b/import-layers/yocto-poky/meta/classes/packagegroup.bbclass
index 38bdbd382..3928c8a4a 100644
--- a/import-layers/yocto-poky/meta/classes/packagegroup.bbclass
+++ b/import-layers/yocto-poky/meta/classes/packagegroup.bbclass
@@ -14,6 +14,8 @@ PACKAGE_ARCH ?= "all"
# Fully expanded - so it applies the overrides as well
PACKAGE_ARCH_EXPANDED := "${PACKAGE_ARCH}"
+LICENSE ?= "MIT"
+
inherit ${@oe.utils.ifelse(d.getVar('PACKAGE_ARCH_EXPANDED', True) == 'all', 'allarch', '')}
# This automatically adds -dbg and -dev flavours of all PACKAGES
diff --git a/import-layers/yocto-poky/meta/classes/patch.bbclass b/import-layers/yocto-poky/meta/classes/patch.bbclass
index 3d22ad838..1f6927be0 100644
--- a/import-layers/yocto-poky/meta/classes/patch.bbclass
+++ b/import-layers/yocto-poky/meta/classes/patch.bbclass
@@ -5,6 +5,9 @@ QUILTRCFILE ?= "${STAGING_ETCDIR_NATIVE}/quiltrc"
PATCHDEPENDENCY = "${PATCHTOOL}-native:do_populate_sysroot"
+PATCH_GIT_USER_NAME ?= "OpenEmbedded"
+PATCH_GIT_USER_EMAIL ?= "oe.patch@oe"
+
inherit terminal
def src_patches(d, all = False ):
diff --git a/import-layers/yocto-poky/meta/classes/pixbufcache.bbclass b/import-layers/yocto-poky/meta/classes/pixbufcache.bbclass
index dbe11e12d..3f48a0f34 100644
--- a/import-layers/yocto-poky/meta/classes/pixbufcache.bbclass
+++ b/import-layers/yocto-poky/meta/classes/pixbufcache.bbclass
@@ -54,6 +54,7 @@ gdkpixbuf_complete() {
# An error exit during populate_sysroot_setscene allows bitbake to
# try to recover by re-building the package.
#
+DEPENDS_append_class-native = " gdk-pixbuf-native"
SSTATEPOSTINSTFUNCS_append_class-native = " pixbufcache_sstate_postinst"
# See base.bbclass for the other half of this
@@ -61,7 +62,8 @@ pixbufcache_sstate_postinst() {
if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then
${gdkpixbuf_complete}
elif [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]; then
- echo "${gdkpixbuf_complete}" >> ${STAGING_DIR}/sstatecompletions
+ if [ -x ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders ]; then
+ echo "${gdkpixbuf_complete}" >> ${STAGING_DIR}/sstatecompletions
+ fi
fi
}
-
diff --git a/import-layers/yocto-poky/meta/classes/populate_sdk_base.bbclass b/import-layers/yocto-poky/meta/classes/populate_sdk_base.bbclass
index 008bb577c..4462b52cb 100644
--- a/import-layers/yocto-poky/meta/classes/populate_sdk_base.bbclass
+++ b/import-layers/yocto-poky/meta/classes/populate_sdk_base.bbclass
@@ -26,6 +26,8 @@ SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
SDK_DEPLOY = "${DEPLOY_DIR}/sdk"
+SDKDEPLOYDIR = "${WORKDIR}/${SDKMACHINE}-deploy-${PN}-populate-sdk"
+
B_task-populate-sdk = "${SDK_DIR}"
SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
@@ -58,8 +60,8 @@ SDK_RELOCATE_AFTER_INSTALL ?= "1"
SDKEXTPATH ?= "~/${@d.getVar('DISTRO', True)}_sdk"
SDK_TITLE ?= "${@d.getVar('DISTRO_NAME', True) or d.getVar('DISTRO', True)} SDK"
-SDK_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
-SDK_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
+SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
+SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
python write_target_sdk_manifest () {
from oe.sdk import sdk_list_installed_packages
from oe.utils import format_pkg_list
@@ -90,9 +92,9 @@ SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK
# Some archs override this, we need the nativesdk version
# turns out this is hard to get from the datastore due to TRANSLATED_TARGET_ARCH
# manipulation.
-SDK_OLDEST_KERNEL = "2.6.32"
+SDK_OLDEST_KERNEL = "3.2.0"
-fakeroot python do_populate_sdk() {
+def populate_sdk_common(d):
from oe.sdk import populate_sdk
from oe.manifest import create_manifest, Manifest
@@ -114,7 +116,16 @@ fakeroot python do_populate_sdk() {
manifest_type=Manifest.MANIFEST_TYPE_SDK_TARGET)
populate_sdk(d)
+
+fakeroot python do_populate_sdk() {
+ populate_sdk_common(d)
}
+SSTATETASKS += "do_populate_sdk"
+SSTATE_SKIP_CREATION_task-populate-sdk = '1'
+do_populate_sdk[cleandirs] = "${SDKDEPLOYDIR}"
+do_populate_sdk[sstate-inputdirs] = "${SDKDEPLOYDIR}"
+do_populate_sdk[sstate-outputdirs] = "${SDK_DEPLOY}"
+do_populate_sdk[stamp-extra-info] = "${MACHINE}${SDKMACHINE}"
fakeroot create_sdk_files() {
cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
@@ -136,7 +147,8 @@ python check_sdk_sysroots() {
return os.path.abspath(path)
# Get scan root
- SCAN_ROOT = norm_path("${SDK_OUTPUT}/${SDKPATH}/sysroots/")
+ SCAN_ROOT = norm_path("%s/%s/sysroots/" % (d.getVar('SDK_OUTPUT', True),
+ d.getVar('SDKPATH', True)))
bb.note('Checking SDK sysroots at ' + SCAN_ROOT)
@@ -180,14 +192,14 @@ SDKTAROPTS = "--owner=root --group=root"
fakeroot tar_sdk() {
# Package it up
- mkdir -p ${SDK_DEPLOY}
+ mkdir -p ${SDKDEPLOYDIR}
cd ${SDK_OUTPUT}/${SDKPATH}
- tar ${SDKTAROPTS} -cf - . | pixz > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
+ tar ${SDKTAROPTS} -cf - . | pixz > ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
}
fakeroot create_shar() {
# copy in the template shar extractor script
- cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+ cp ${COREBASE}/meta/files/toolchain-shar-extract.sh ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
rm -f ${T}/pre_install_command ${T}/post_install_command
@@ -203,7 +215,7 @@ ${SDK_POST_INSTALL_COMMAND}
EOF
sed -i -e '/@SDK_PRE_INSTALL_COMMAND@/r ${T}/pre_install_command' \
-e '/@SDK_POST_INSTALL_COMMAND@/r ${T}/post_install_command' \
- ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+ ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
# substitute variables
sed -i -e 's#@SDK_ARCH@#${SDK_ARCH}#g' \
@@ -215,16 +227,16 @@ EOF
-e 's#@SDK_VERSION@#${SDK_VERSION}#g' \
-e '/@SDK_PRE_INSTALL_COMMAND@/d' \
-e '/@SDK_POST_INSTALL_COMMAND@/d' \
- ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+ ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
# add execution permission
- chmod +x ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+ chmod +x ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
# append the SDK tarball
- cat ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.xz >> ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
+ cat ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz >> ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.sh
# delete the old tarball, we don't need it anymore
- rm ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
+ rm ${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.xz
}
populate_sdk_log_check() {
@@ -251,7 +263,7 @@ def sdk_command_variables(d):
def sdk_variables(d):
variables = ['BUILD_IMAGES_FROM_FEEDS','SDK_OS','SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT',
'SDKTARGETSYSROOT','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
- 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI']
+ 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
variables.extend(sdk_command_variables(d))
return " ".join(variables)
diff --git a/import-layers/yocto-poky/meta/classes/populate_sdk_ext.bbclass b/import-layers/yocto-poky/meta/classes/populate_sdk_ext.bbclass
index 87518d176..0f0525d76 100644
--- a/import-layers/yocto-poky/meta/classes/populate_sdk_ext.bbclass
+++ b/import-layers/yocto-poky/meta/classes/populate_sdk_ext.bbclass
@@ -20,34 +20,43 @@ SDK_EXT_task-populate-sdk-ext = "-ext"
# Options are full or minimal
SDK_EXT_TYPE ?= "full"
+SDK_INCLUDE_PKGDATA ?= "0"
+SDK_INCLUDE_TOOLCHAIN ?= "${@'1' if d.getVar('SDK_EXT_TYPE', True) == 'full' else '0'}"
SDK_RECRDEP_TASKS ?= ""
SDK_LOCAL_CONF_WHITELIST ?= ""
SDK_LOCAL_CONF_BLACKLIST ?= "CONF_VERSION \
BB_NUMBER_THREADS \
+ BB_NUMBER_PARSE_THREADS \
PARALLEL_MAKE \
PRSERV_HOST \
SSTATE_MIRRORS \
+ DL_DIR \
+ SSTATE_DIR \
+ TMPDIR \
"
SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
SDK_UPDATE_URL ?= ""
SDK_TARGETS ?= "${PN}"
-def get_sdk_install_targets(d):
+def get_sdk_install_targets(d, images_only=False):
sdk_install_targets = ''
- if d.getVar('SDK_EXT_TYPE', True) != 'minimal':
+ if images_only or d.getVar('SDK_EXT_TYPE', True) != 'minimal':
sdk_install_targets = d.getVar('SDK_TARGETS', True)
depd = d.getVar('BB_TASKDEPDATA', False)
- for v in depd.itervalues():
+ for v in depd.values():
if v[1] == 'do_image_complete':
if v[0] not in sdk_install_targets:
sdk_install_targets += ' {}'.format(v[0])
- if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1':
- sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata'
+ if not images_only:
+ if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1':
+ sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata'
+ if d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1':
+ sdk_install_targets += ' meta-extsdk-toolchain:do_populate_sysroot'
return sdk_install_targets
@@ -76,6 +85,67 @@ SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
SDK_TITLE_task-populate-sdk-ext = "${@d.getVar('DISTRO_NAME', True) or d.getVar('DISTRO', True)} Extensible SDK"
+def clean_esdk_builddir(d, sdkbasepath):
+ """Clean up traces of the fake build for create_filtered_tasklist()"""
+ import shutil
+ cleanpaths = 'cache conf/sanity_info conf/templateconf.cfg tmp'.split()
+ for pth in cleanpaths:
+ fullpth = os.path.join(sdkbasepath, pth)
+ if os.path.isdir(fullpth):
+ shutil.rmtree(fullpth)
+ elif os.path.isfile(fullpth):
+ os.remove(fullpth)
+
+def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath):
+ """
+ Create a filtered list of tasks. Also double-checks that the build system
+ within the SDK basically works and required sstate artifacts are available.
+ """
+ import tempfile
+ import shutil
+ import oe.copy_buildsystem
+
+ # Create a temporary build directory that we can pass to the env setup script
+ shutil.copyfile(sdkbasepath + '/conf/local.conf', sdkbasepath + '/conf/local.conf.bak')
+ try:
+ with open(sdkbasepath + '/conf/local.conf', 'a') as f:
+ # Force the use of sstate from the build system
+ f.write('\nSSTATE_DIR_forcevariable = "%s"\n' % d.getVar('SSTATE_DIR', True))
+ f.write('SSTATE_MIRRORS_forcevariable = ""\n')
+ # Ensure TMPDIR is the default so that clean_esdk_builddir() can delete it
+ f.write('TMPDIR_forcevariable = "${TOPDIR}/tmp"\n')
+ # Drop uninative if the build isn't using it (or else NATIVELSBSTRING will
+ # be different and we won't be able to find our native sstate)
+ if not bb.data.inherits_class('uninative', d):
+ f.write('INHERIT_remove = "uninative"\n')
+
+ # Unfortunately the default SDKPATH (or even a custom value) may contain characters that bitbake
+ # will not allow in its COREBASE path, so we need to rename the directory temporarily
+ temp_sdkbasepath = d.getVar('SDK_OUTPUT', True) + '/tmp-renamed-sdk'
+ # Delete any existing temp dir
+ try:
+ shutil.rmtree(temp_sdkbasepath)
+ except FileNotFoundError:
+ pass
+ os.rename(sdkbasepath, temp_sdkbasepath)
+ try:
+ cmdprefix = '. %s .; ' % conf_initpath
+ logfile = d.getVar('WORKDIR', True) + '/tasklist_bb_log.txt'
+ try:
+ oe.copy_buildsystem.check_sstate_task_list(d, get_sdk_install_targets(d), tasklistfile, cmdprefix=cmdprefix, cwd=temp_sdkbasepath, logfile=logfile)
+ except bb.process.ExecutionError as e:
+ msg = 'Failed to generate filtered task list for extensible SDK:\n%s' % e.stdout.rstrip()
+ if 'attempted to execute unexpectedly and should have been setscened' in e.stdout:
+ msg += '\n----------\n\nNOTE: "attempted to execute unexpectedly and should have been setscened" errors indicate this may be caused by missing sstate artifacts that were likely produced in earlier builds, but have been subsequently deleted for some reason.\n'
+ bb.fatal(msg)
+ finally:
+ os.rename(temp_sdkbasepath, sdkbasepath)
+ # Clean out residue of running bitbake, which check_sstate_task_list()
+ # will effectively do
+ clean_esdk_builddir(d, sdkbasepath)
+ finally:
+ os.replace(sdkbasepath + '/conf/local.conf.bak', sdkbasepath + '/conf/local.conf')
+
python copy_buildsystem () {
import re
import shutil
@@ -125,8 +195,8 @@ python copy_buildsystem () {
d.setVar('scriptrelpath', scriptrelpath)
# Write out config file for devtool
- import ConfigParser
- config = ConfigParser.SafeConfigParser()
+ import configparser
+ config = configparser.SafeConfigParser()
config.add_section('General')
config.set('General', 'bitbake_subdir', conf_bbpath)
config.set('General', 'init_path', conf_initpath)
@@ -170,6 +240,14 @@ python copy_buildsystem () {
f.write(' $' + '{SDKBASEMETAPATH}/workspace \\\n')
f.write(' "\n')
+ # Copy uninative tarball
+ # For now this is where uninative.bbclass expects the tarball
+ uninative_file = d.expand('${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2')
+ uninative_checksum = bb.utils.sha256_file(uninative_file)
+ uninative_outdir = '%s/downloads/uninative/%s' % (baseoutpath, uninative_checksum)
+ bb.utils.mkdirhier(uninative_outdir)
+ shutil.copy(uninative_file, uninative_outdir)
+
env_whitelist = (d.getVar('BB_ENV_EXTRAWHITE', True) or '').split()
env_whitelist_values = {}
@@ -204,7 +282,10 @@ python copy_buildsystem () {
# Write a newline just in case there's none at the end of the original
f.write('\n')
- f.write('INHERIT += "%s"\n\n' % 'uninative')
+ f.write('DL_DIR = "${TOPDIR}/downloads"\n')
+
+ f.write('INHERIT += "%s"\n' % 'uninative')
+ f.write('UNINATIVE_CHECKSUM[%s] = "%s"\n\n' % (d.getVar('BUILD_ARCH', True), uninative_checksum))
f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION', False))
# Some classes are not suitable for SDK, remove them from INHERIT
@@ -219,9 +300,12 @@ python copy_buildsystem () {
# warning.
f.write('SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK = "none"\n\n')
- # Error if the sigs in the locked-signature file don't match
+ # Warn if the sigs in the locked-signature file don't match
# the sig computed from the metadata.
- f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "error"\n\n')
+ f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"\n\n')
+
+ # Set up whitelist for run on install
+ f.write('BB_SETSCENE_ENFORCE_WHITELIST = "%:* *:do_shared_workdir *:do_rm_work"\n\n')
# Hide the config information from bitbake output (since it's fixed within the SDK)
f.write('BUILDCFG_HEADER = ""\n')
@@ -263,7 +347,7 @@ python copy_buildsystem () {
# Ensure any variables set from the external environment (by way of
# BB_ENV_EXTRAWHITE) are set in the SDK's configuration
extralines = []
- for name, value in env_whitelist_values.iteritems():
+ for name, value in env_whitelist_values.items():
actualvalue = d.getVar(name, True) or ''
if value != actualvalue:
extralines.append('%s = "%s"\n' % (name, actualvalue))
@@ -276,7 +360,7 @@ python copy_buildsystem () {
f.write('\n')
# Filter the locked signatures file to just the sstate tasks we are interested in
- excluded_targets = d.getVar('SDK_TARGETS', True)
+ excluded_targets = get_sdk_install_targets(d, images_only=True)
sigfile = d.getVar('WORKDIR', True) + '/locked-sigs.inc'
lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc'
oe.copy_buildsystem.prune_lockedsigs([],
@@ -289,6 +373,15 @@ python copy_buildsystem () {
# uninative.bbclass sets NATIVELSBSTRING to 'universal'
fixedlsbstring = 'universal'
+ sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1')
+ sdk_ext_type = d.getVar('SDK_EXT_TYPE', True)
+ if sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative:
+ # Create the filtered task list used to generate the sstate cache shipped with the SDK
+ tasklistfn = d.getVar('WORKDIR', True) + '/tasklist.txt'
+ create_filtered_tasklist(d, baseoutpath, tasklistfn, conf_initpath)
+ else:
+ tasklistfn = None
+
# Add packagedata if enabled
if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1':
lockedsigs_base = d.getVar('WORKDIR', True) + '/locked-sigs-base.inc'
@@ -300,7 +393,21 @@ python copy_buildsystem () {
lockedsigs_pruned,
lockedsigs_copy)
- if d.getVar('SDK_EXT_TYPE', True) == 'minimal':
+ if sdk_include_toolchain:
+ lockedsigs_base = d.getVar('WORKDIR', True) + '/locked-sigs-base2.inc'
+ lockedsigs_toolchain = d.getVar('STAGING_DIR_HOST', True) + '/locked-sigs/locked-sigs-extsdk-toolchain.inc'
+ shutil.move(lockedsigs_pruned, lockedsigs_base)
+ oe.copy_buildsystem.merge_lockedsigs([],
+ lockedsigs_base,
+ lockedsigs_toolchain,
+ lockedsigs_pruned)
+ oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_toolchain,
+ d.getVar('SSTATE_DIR', True),
+ sstate_out, d,
+ fixedlsbstring,
+ filterfile=tasklistfn)
+
+ if sdk_ext_type == 'minimal':
if derivative:
# Assume the user is not going to set up an additional sstate
# mirror, thus we need to copy the additional artifacts (from
@@ -316,12 +423,14 @@ python copy_buildsystem () {
oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_extra,
d.getVar('SSTATE_DIR', True),
sstate_out, d,
- fixedlsbstring)
+ fixedlsbstring,
+ filterfile=tasklistfn)
else:
oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_pruned,
d.getVar('SSTATE_DIR', True),
sstate_out, d,
- fixedlsbstring)
+ fixedlsbstring,
+ filterfile=tasklistfn)
# We don't need sstate do_package files
for root, dirs, files in os.walk(sstate_out):
@@ -346,38 +455,98 @@ python copy_buildsystem () {
f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
}
-def extsdk_get_buildtools_filename(d):
- return '*-buildtools-nativesdk-standalone-*.sh'
+def get_current_buildtools(d):
+ """Get the file name of the current buildtools installer"""
+ import glob
+ btfiles = glob.glob(os.path.join(d.getVar('SDK_DEPLOY', True), '*-buildtools-nativesdk-standalone-*.sh'))
+ btfiles.sort(key=os.path.getctime)
+ return os.path.basename(btfiles[-1])
+
+def get_sdk_required_utilities(buildtools_fn, d):
+ """Find required utilities that aren't provided by the buildtools"""
+ sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES', True) or '').split()
+ sanity_required_utilities.append(d.expand('${BUILD_PREFIX}gcc'))
+ sanity_required_utilities.append(d.expand('${BUILD_PREFIX}g++'))
+ buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY', True), buildtools_fn)
+ filelist, _ = bb.process.run('%s -l' % buildtools_installer)
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('SDKPATH', '.')
+ sdkpathnative = localdata.getVar('SDKPATHNATIVE', True)
+ sdkbindirs = [localdata.getVar('bindir_nativesdk', True),
+ localdata.getVar('sbindir_nativesdk', True),
+ localdata.getVar('base_bindir_nativesdk', True),
+ localdata.getVar('base_sbindir_nativesdk', True)]
+ for line in filelist.splitlines():
+ splitline = line.split()
+ if len(splitline) > 5:
+ fn = splitline[5]
+ if not fn.startswith('./'):
+ fn = './%s' % fn
+ if fn.startswith(sdkpathnative):
+ relpth = '/' + os.path.relpath(fn, sdkpathnative)
+ for bindir in sdkbindirs:
+ if relpth.startswith(bindir):
+ relpth = os.path.relpath(relpth, bindir)
+ if relpth in sanity_required_utilities:
+ sanity_required_utilities.remove(relpth)
+ break
+ return ' '.join(sanity_required_utilities)
install_tools() {
install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}
- lnr ${SDK_OUTPUT}/${SDKPATH}/${scriptrelpath}/devtool ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/devtool
- lnr ${SDK_OUTPUT}/${SDKPATH}/${scriptrelpath}/recipetool ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/recipetool
+ scripts="devtool recipetool oe-find-native-sysroot runqemu*"
+ for script in $scripts; do
+ for scriptfn in `find ${SDK_OUTPUT}/${SDKPATH}/${scriptrelpath} -maxdepth 1 -executable -name "$script"`; do
+ lnr ${scriptfn} ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/`basename $scriptfn`
+ done
+ done
+ # We can't use the same method as above because files in the sysroot won't exist at this point
+ # (they get populated from sstate on installation)
+ if [ "${SDK_INCLUDE_TOOLCHAIN}" == "1" ] ; then
+ binrelpath=${@os.path.relpath(d.getVar('STAGING_BINDIR_NATIVE',True), d.getVar('TOPDIR', True))}
+ lnr ${SDK_OUTPUT}/${SDKPATH}/$binrelpath/unfsd ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/unfsd
+ fi
touch ${SDK_OUTPUT}/${SDKPATH}/.devtoolbase
- localconf=${SDK_OUTPUT}/${SDKPATH}/conf/local.conf
-
# find latest buildtools-tarball and install it
- buildtools_path=`ls -t1 ${SDK_DEPLOY}/${@extsdk_get_buildtools_filename(d)} | head -n1`
- install $buildtools_path ${SDK_OUTPUT}/${SDKPATH}
-
- # For now this is where uninative.bbclass expects the tarball
- chksum=`sha256sum ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 | cut -f 1 -d ' '`
- install -d ${SDK_OUTPUT}/${SDKPATH}/downloads/uninative/$chksum/
- install ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 ${SDK_OUTPUT}/${SDKPATH}/downloads/uninative/$chksum/
- echo "UNINATIVE_CHECKSUM[${BUILD_ARCH}] = '$chksum'" >> ${SDK_OUTPUT}/${SDKPATH}/conf/local.conf
+ install ${SDK_DEPLOY}/${SDK_BUILDTOOLS_INSTALLER} ${SDK_OUTPUT}/${SDKPATH}
install -m 0644 ${COREBASE}/meta/files/ext-sdk-prepare.py ${SDK_OUTPUT}/${SDKPATH}
}
do_populate_sdk_ext[file-checksums] += "${COREBASE}/meta/files/ext-sdk-prepare.py:True"
-# Since bitbake won't run as root it doesn't make sense to try and install
-# the extensible sdk as root.
sdk_ext_preinst() {
+ # Since bitbake won't run as root it doesn't make sense to try and install
+ # the extensible sdk as root.
if [ "`id -u`" = "0" ]; then
echo "ERROR: The extensible sdk cannot be installed as root."
exit 1
fi
+ if ! command -v locale > /dev/null; then
+ echo "ERROR: The installer requires the locale command, please install it first"
+ exit 1
+ fi
+ # Check setting of LC_ALL set above
+ canonicalised_locale=`echo $LC_ALL | sed 's/UTF-8/utf8/'`
+ if ! locale -a | grep -q $canonicalised_locale ; then
+ echo "ERROR: the installer requires the $LC_ALL locale to be installed (but not selected), please install it first"
+ exit 1
+ fi
+ # The relocation script used by buildtools installer requires python
+ if ! command -v python > /dev/null; then
+ echo "ERROR: The installer requires python, please install it first"
+ exit 1
+ fi
+ missing_utils=""
+ for util in ${SDK_REQUIRED_UTILITIES}; do
+ if ! command -v $util > /dev/null; then
+ missing_utils="$missing_utils $util"
+ fi
+ done
+ if [ -n "$missing_utils" ] ; then
+ echo "ERROR: the SDK requires the following missing utilities, please install them: $missing_utils"
+ exit 1
+ fi
SDK_EXTENSIBLE="1"
if [ "$publish" = "1" ] ; then
EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py"
@@ -392,14 +561,16 @@ SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_preinst}"
sdk_ext_postinst() {
printf "\nExtracting buildtools...\n"
cd $target_sdk_dir
- printf "buildtools\ny" | ./*buildtools-nativesdk-standalone* > /dev/null || ( printf 'ERROR: buildtools installation failed\n' ; exit 1 )
+ env_setup_script="$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}"
+ printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
# Delete the buildtools tar file since it won't be used again
- rm ./*buildtools-nativesdk-standalone*.sh -f
+ rm -f ./${SDK_BUILDTOOLS_INSTALLER}
+ # We don't need the log either since it succeeded
+ rm -f buildtools.log
# Make sure when the user sets up the environment, they also get
# the buildtools-tarball tools in their path.
- env_setup_script="$target_sdk_dir/environment-setup-${REAL_MULTIMACH_TARGET_SYS}"
echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script
# Allow bitbake environment setup to be ran as part of this sdk.
@@ -420,7 +591,7 @@ sdk_ext_postinst() {
# current working directory when first ran, nor will it set $1 when
# sourcing a script. That is why this has to look so ugly.
LOGFILE="$target_sdk_dir/preparing_build_system.log"
- sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py '${SDK_INSTALL_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
+ sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
rm $target_sdk_dir/ext-sdk-prepare.py
fi
echo done
@@ -438,12 +609,22 @@ fakeroot python do_populate_sdk_ext() {
bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH', True), d.getVar('BUILD_ARCH', True)))
d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
+ buildtools_fn = get_current_buildtools(d)
+ d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
+ d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
+ d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}')
- bb.build.exec_func("do_populate_sdk", d)
+ populate_sdk_common(d)
}
def get_ext_sdk_depends(d):
- return d.getVarFlag('do_rootfs', 'depends', True) + ' ' + d.getVarFlag('do_build', 'depends', True)
+ # Note: the deps varflag is a list not a string, so we need to specify expand=False
+ deps = d.getVarFlag('do_image_complete', 'deps', False)
+ pn = d.getVar('PN', True)
+ deplist = ['%s:%s' % (pn, dep) for dep in deps]
+ for task in ['do_image_complete', 'do_rootfs', 'do_build']:
+ deplist.extend((d.getVarFlag(task, 'depends', True) or '').split())
+ return ' '.join(deplist)
python do_sdk_depends() {
# We have to do this separately in its own task so we avoid recursing into
@@ -471,7 +652,8 @@ do_populate_sdk_ext[dirs] = "${@d.getVarFlag('do_populate_sdk', 'dirs', False)}"
do_populate_sdk_ext[depends] = "${@d.getVarFlag('do_populate_sdk', 'depends', False)} \
buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk \
- ${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1' else ''}"
+ ${@'meta-world-pkgdata:do_collect_packagedata' if d.getVar('SDK_INCLUDE_PKGDATA', True) == '1' else ''} \
+ ${@'meta-extsdk-toolchain:do_locked_sigs' if d.getVar('SDK_INCLUDE_TOOLCHAIN', True) == '1' else ''}"
do_populate_sdk_ext[rdepends] += "${@' '.join([x + ':do_build' for x in d.getVar('SDK_TARGETS', True).split()])}"
@@ -484,4 +666,13 @@ do_populate_sdk_ext[vardeps] += "copy_buildsystem \
# always runs.
do_populate_sdk_ext[nostamp] = "1"
+SDKEXTDEPLOYDIR = "${WORKDIR}/deploy-${PN}-populate-sdk-ext"
+
+SSTATETASKS += "do_populate_sdk_ext"
+SSTATE_SKIP_CREATION_task-populate-sdk-ext = '1'
+do_populate_sdk_ext[cleandirs] = "${SDKDEPLOYDIR}"
+do_populate_sdk_ext[sstate-inputdirs] = "${SDKEXTDEPLOYDIR}"
+do_populate_sdk_ext[sstate-outputdirs] = "${SDK_DEPLOY}"
+do_populate_sdk_ext[stamp-extra-info] = "${MACHINE}"
+
addtask populate_sdk_ext after do_sdk_depends
diff --git a/import-layers/yocto-poky/meta/classes/python-dir.bbclass b/import-layers/yocto-poky/meta/classes/python-dir.bbclass
index ebfa4b30f..a11dc350b 100644
--- a/import-layers/yocto-poky/meta/classes/python-dir.bbclass
+++ b/import-layers/yocto-poky/meta/classes/python-dir.bbclass
@@ -1,5 +1,5 @@
-PYTHON_BASEVERSION ?= "2.7"
-PYTHON_ABI ?= ""
+PYTHON_BASEVERSION = "2.7"
+PYTHON_ABI = ""
PYTHON_DIR = "python${PYTHON_BASEVERSION}"
-PYTHON_PN = "python${@'' if '${PYTHON_BASEVERSION}'.startswith('2') else '3'}"
+PYTHON_PN = "python"
PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/import-layers/yocto-poky/meta/classes/python3-dir.bbclass b/import-layers/yocto-poky/meta/classes/python3-dir.bbclass
new file mode 100644
index 000000000..06bb046d9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/python3-dir.bbclass
@@ -0,0 +1,5 @@
+PYTHON_BASEVERSION = "3.5"
+PYTHON_ABI = "m"
+PYTHON_DIR = "python${PYTHON_BASEVERSION}"
+PYTHON_PN = "python3"
+PYTHON_SITEPACKAGES_DIR = "${libdir}/${PYTHON_DIR}/site-packages"
diff --git a/import-layers/yocto-poky/meta/classes/python3native.bbclass b/import-layers/yocto-poky/meta/classes/python3native.bbclass
index 8ec6b769d..ef468b3fd 100644
--- a/import-layers/yocto-poky/meta/classes/python3native.bbclass
+++ b/import-layers/yocto-poky/meta/classes/python3native.bbclass
@@ -1,7 +1,13 @@
-PYTHON_BASEVERSION = "3.5"
-
-inherit python-dir
+inherit python3-dir
PYTHON="${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}"
EXTRANATIVEPATH += "${PYTHON_PN}-native"
-DEPENDS += " ${PYTHON_PN}-native "
+DEPENDS_append = " ${PYTHON_PN}-native "
+
+# python-config and other scripts are using distutils modules
+# which we patch to access these variables
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# autoconf macros will use their internal default preference otherwise
+export PYTHON
diff --git a/import-layers/yocto-poky/meta/classes/pythonnative.bbclass b/import-layers/yocto-poky/meta/classes/pythonnative.bbclass
index 97029dc52..4e0381b56 100644
--- a/import-layers/yocto-poky/meta/classes/pythonnative.bbclass
+++ b/import-layers/yocto-poky/meta/classes/pythonnative.bbclass
@@ -5,4 +5,12 @@ PYTHON="${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}"
# PYTHON_EXECUTABLE is used by cmake
PYTHON_EXECUTABLE="${PYTHON}"
EXTRANATIVEPATH += "${PYTHON_PN}-native"
-DEPENDS += " ${PYTHON_PN}-native "
+DEPENDS_append = " ${PYTHON_PN}-native "
+
+# python-config and other scripts are using distutils modules
+# which we patch to access these variables
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# autoconf macros will use their internal default preference otherwise
+export PYTHON
diff --git a/import-layers/yocto-poky/meta/classes/qemu.bbclass b/import-layers/yocto-poky/meta/classes/qemu.bbclass
index 75739dbbf..f2d4d1c9e 100644
--- a/import-layers/yocto-poky/meta/classes/qemu.bbclass
+++ b/import-layers/yocto-poky/meta/classes/qemu.bbclass
@@ -4,6 +4,11 @@
#
def qemu_target_binary(data):
+ package_arch = data.getVar("PACKAGE_ARCH", True)
+ qemu_target_binary = (data.getVar("QEMU_TARGET_BINARY_%s" % package_arch, True) or "")
+ if qemu_target_binary:
+ return qemu_target_binary
+
target_arch = data.getVar("TARGET_ARCH", True)
if target_arch in ("i486", "i586", "i686"):
target_arch = "i386"
diff --git a/import-layers/yocto-poky/meta/classes/qemuboot.bbclass b/import-layers/yocto-poky/meta/classes/qemuboot.bbclass
new file mode 100644
index 000000000..b5cc93dc9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/qemuboot.bbclass
@@ -0,0 +1,82 @@
+# Help runqemu boot target board, "QB" means Qemu Boot, the following
+# vars can be set in conf files, such as <bsp.conf> to make it can be
+# boot by runqemu:
+#
+# QB_SYSTEM_NAME: qemu name, e.g., "qemu-system-i386"
+# QB_OPT_APPEND: options to append to qemu, e.g., "-show-cursor"
+# QB_DEFAULT_KERNEL: default kernel to boot, e.g., "bzImage"
+# QB_DEFAULT_FSTYPE: default FSTYPE to boot, e.g., "ext4"
+# QB_MEM: memory, e.g., "-m 512"
+# QB_MACHINE: qemu machine, e.g., "-machine virt"
+# QB_CPU: qemu cpu, e.g., "-cpu qemu32"
+# QB_CPU_KVM: the similar to QB_CPU, but used when kvm, e.g., '-cpu kvm64',
+# set it when support kvm.
+# QB_KERNEL_CMDLINE_APPEND: options to append to kernel's -append
+# option, e.g., "console=ttyS0 console=tty"
+# QB_DTB: qemu dtb name
+# QB_AUDIO_DRV: qemu audio driver, e.g., "alsa", set it when support audio
+# QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used
+# when QB_AUDIO_DRV is set.
+# QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda
+# QB_TAP_OPT: netowrk option for 'tap' mode, e.g.,
+# "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0"
+# Note, runqemu will replace "@TAP@" with the one which is used, such as tap0, tap1 ...
+# QB_SLIRP_OPT: network option for SLIRP mode, e.g.,
+# "-netdev user,id=net0 -device virtio-net-device,netdev=net0"
+# QB_ROOTFS_OPT: used as rootfs, e.g.,
+# "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
+# Note, runqemu will replace "@ROOTFS@" with the one which is used, such as core-image-minimal-qemuarm64.ext4.
+# QB_SERIAL_OPT: serial port, e.g., "-serial mon:stdio"
+# QB_TCPSERIAL_OPT: tcp serial port option, e.g.,
+# " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
+# Note, runqemu will replace "@PORT@" with the port number which is used.
+#
+# Usage:
+# IMAGE_CLASSES += "qemuboot"
+# See "runqemu help" for more info
+
+QB_MEM ?= "-m 256"
+QB_SERIAL_OPT ?= "-serial mon:stdio -serial null"
+QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}"
+QB_DEFAULT_FSTYPE ?= "ext4"
+QB_OPT_APPEND ?= "-show-cursor"
+
+# Create qemuboot.conf
+ROOTFS_POSTPROCESS_COMMAND += "write_qemuboot_conf; "
+
+python write_qemuboot_conf() {
+ import configparser
+
+ build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE', \
+ 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME', \
+ 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE', \
+ 'STAGING_DIR_HOST']
+
+ # Vars from bsp
+ qb_vars = []
+ for k in d.keys():
+ if k.startswith('QB_'):
+ qb_vars.append(k)
+
+ qemuboot = "%s/%s.qemuboot.conf" % (d.getVar('DEPLOY_DIR_IMAGE', True), d.getVar('IMAGE_NAME', True))
+ qemuboot_link = "%s/%s.qemuboot.conf" % (d.getVar('DEPLOY_DIR_IMAGE', True), d.getVar('IMAGE_LINK_NAME', True))
+ cf = configparser.ConfigParser()
+ cf.add_section('config_bsp')
+ for k in build_vars + qb_vars:
+ cf.set('config_bsp', k, '%s' % d.getVar(k, True))
+
+ # QB_DEFAULT_KERNEL's value of KERNEL_IMAGETYPE is the name of a symlink
+ # to the kernel file, which hinders relocatability of the qb conf.
+ # Read the link and replace it with the full filename of the target.
+ kernel_link = os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True), d.getVar('QB_DEFAULT_KERNEL', True))
+ kernel = os.path.realpath(kernel_link)
+ cf.set('config_bsp', 'QB_DEFAULT_KERNEL', kernel)
+
+ bb.utils.mkdirhier(os.path.dirname(qemuboot))
+ with open(qemuboot, 'w') as f:
+ cf.write(f)
+
+ if os.path.lexists(qemuboot_link):
+ os.remove(qemuboot_link)
+ os.symlink(os.path.basename(qemuboot), qemuboot_link)
+}
diff --git a/import-layers/yocto-poky/meta/classes/recipe_sanity.bbclass b/import-layers/yocto-poky/meta/classes/recipe_sanity.bbclass
index 295611f0f..add34df9d 100644
--- a/import-layers/yocto-poky/meta/classes/recipe_sanity.bbclass
+++ b/import-layers/yocto-poky/meta/classes/recipe_sanity.bbclass
@@ -8,7 +8,7 @@ def bad_runtime_vars(cfgdata, d):
return
for var in d.getVar("__recipe_sanity_badruntimevars", True).split():
- val = d.getVar(var, 0)
+ val = d.getVar(var, False)
if val and val != cfgdata.get(var):
__note("%s should be %s_${PN}" % (var, var), d)
@@ -16,11 +16,11 @@ __recipe_sanity_reqvars = "DESCRIPTION"
__recipe_sanity_reqdiffvars = ""
def req_vars(cfgdata, d):
for var in d.getVar("__recipe_sanity_reqvars", True).split():
- if not d.getVar(var, 0):
+ if not d.getVar(var, False):
__note("%s should be set" % var, d)
for var in d.getVar("__recipe_sanity_reqdiffvars", True).split():
- val = d.getVar(var, 0)
+ val = d.getVar(var, False)
cfgval = cfgdata.get(var)
if not val:
@@ -29,7 +29,7 @@ def req_vars(cfgdata, d):
__note("%s should be defined to something other than default (%s)" % (var, cfgval), d)
def var_renames_overwrite(cfgdata, d):
- renames = d.getVar("__recipe_sanity_renames", 0)
+ renames = d.getVar("__recipe_sanity_renames", False)
if renames:
for (key, newkey, oldvalue, newvalue) in renames:
if oldvalue != newvalue and oldvalue != cfgdata.get(newkey):
@@ -50,7 +50,7 @@ def can_use_autotools_base(cfgdata, d):
if cfg.find(i) != -1:
return False
- for clsfile in d.getVar("__inherit_cache", 0):
+ for clsfile in d.getVar("__inherit_cache", False):
(base, _) = os.path.splitext(os.path.basename(clsfile))
if cfg.find("%s_do_configure" % base) != -1:
__note("autotools_base usage needs verification, spotted %s_do_configure" % base, d)
@@ -60,7 +60,7 @@ def can_use_autotools_base(cfgdata, d):
def can_delete_FILESPATH(cfgdata, d):
expected = cfgdata.get("FILESPATH")
expectedpaths = d.expand(expected)
- unexpanded = d.getVar("FILESPATH", 0)
+ unexpanded = d.getVar("FILESPATH", False)
filespath = d.getVar("FILESPATH", True).split(":")
filespath = [os.path.normpath(f) for f in filespath if os.path.exists(f)]
for fp in filespath:
@@ -73,7 +73,7 @@ def can_delete_FILESPATH(cfgdata, d):
def can_delete_FILESDIR(cfgdata, d):
expected = cfgdata.get("FILESDIR")
#expected = "${@bb.utils.which(d.getVar('FILESPATH', True), '.')}"
- unexpanded = d.getVar("FILESDIR", 0)
+ unexpanded = d.getVar("FILESDIR", False)
if unexpanded is None:
return False
@@ -90,7 +90,7 @@ def can_delete_others(p, cfgdata, d):
for k in ["S", "PV", "PN", "DESCRIPTION", "DEPENDS",
"SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]:
#for k in cfgdata:
- unexpanded = d.getVar(k, 0)
+ unexpanded = d.getVar(k, False)
cfgunexpanded = cfgdata.get(k)
if not cfgunexpanded:
continue
@@ -117,7 +117,7 @@ python do_recipe_sanity () {
#(can_use_autotools_base, "candidate for use of autotools_base"),
(incorrect_nonempty_PACKAGES, "native or cross recipe with non-empty PACKAGES"),
]
- cfgdata = d.getVar("__recipe_sanity_cfgdata", 0)
+ cfgdata = d.getVar("__recipe_sanity_cfgdata", False)
for (func, msg) in sanitychecks:
if func(cfgdata, d):
@@ -143,8 +143,8 @@ python recipe_sanity_eh () {
cfgdata = {}
for k in d.keys():
- if not isinstance(d.getVar(k, 0), bb.data_smart.DataSmart):
- cfgdata[k] = d.getVar(k, 0)
+ if not isinstance(d.getVar(k, False), bb.data_smart.DataSmart):
+ cfgdata[k] = d.getVar(k, False)
d.setVar("__recipe_sanity_cfgdata", cfgdata)
#d.setVar("__recipe_sanity_cfgdata", d)
diff --git a/import-layers/yocto-poky/meta/classes/report-error.bbclass b/import-layers/yocto-poky/meta/classes/report-error.bbclass
index 82b5bcd69..5bb231efc 100644
--- a/import-layers/yocto-poky/meta/classes/report-error.bbclass
+++ b/import-layers/yocto-poky/meta/classes/report-error.bbclass
@@ -42,8 +42,8 @@ python errorreport_handler () {
data['distro'] = e.data.getVar("DISTRO", True)
data['target_sys'] = e.data.getVar("TARGET_SYS", True)
data['failures'] = []
- data['component'] = e.getPkgs()[0]
- data['branch_commit'] = base_detect_branch(e.data) + ": " + base_detect_revision(e.data)
+ data['component'] = " ".join(e.getPkgs())
+ data['branch_commit'] = str(base_detect_branch(e.data)) + ": " + str(base_detect_revision(e.data))
lock = bb.utils.lockfile(datafile + '.lock')
errorreport_savedata(e, data, "error-report.txt")
bb.utils.unlockfile(lock)
@@ -58,6 +58,13 @@ python errorreport_handler () {
try:
logFile = codecs.open(log, 'r', 'utf-8')
logdata = logFile.read()
+
+ # Replace host-specific paths so the logs are cleaner
+ for d in ("TOPDIR", "TMPDIR"):
+ s = e.data.getVar(d, True)
+ if s:
+ logdata = logdata.replace(s, d)
+
logFile.close()
except:
logdata = "Unable to read log file"
diff --git a/import-layers/yocto-poky/meta/classes/rm_work.bbclass b/import-layers/yocto-poky/meta/classes/rm_work.bbclass
index c647d88d2..b71a9d1cf 100644
--- a/import-layers/yocto-poky/meta/classes/rm_work.bbclass
+++ b/import-layers/yocto-poky/meta/classes/rm_work.bbclass
@@ -15,6 +15,9 @@
# to try and reduce disk usage
BB_SCHEDULER ?= "completion"
+# Run the rm_work task in the idle scheduling class
+BB_TASK_IONICE_LEVEL_task-rm_work = "3.0"
+
RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
BB_DEFAULT_TASK = "rm_work_all"
@@ -63,14 +66,10 @@ do_rm_work () {
i=dummy
break
;;
- *do_rootfs*)
- i=dummy
- break
- ;;
- *do_image*)
- i=dummy
- break
- ;;
+ *do_rootfs*|*do_image*|*do_bootimg*|*do_bootdirectdisk*|*do_vmimg*)
+ i=dummy
+ break
+ ;;
*do_build*)
i=dummy
break
@@ -119,6 +118,8 @@ rm_work_rootfs () {
rm_work_rootfs[cleandirs] = "${WORKDIR}/rootfs"
python () {
+ if bb.data.inherits_class('kernel', d):
+ d.appendVar("RM_WORK_EXCLUDE", ' ' + d.getVar("PN", True))
# If the recipe name is in the RM_WORK_EXCLUDE, skip the recipe.
excludes = (d.getVar("RM_WORK_EXCLUDE", True) or "").split()
pn = d.getVar("PN", True)
diff --git a/import-layers/yocto-poky/meta/classes/rootfs-postcommands.bbclass b/import-layers/yocto-poky/meta/classes/rootfs-postcommands.bbclass
index 95d28afa3..0c7ceea54 100644
--- a/import-layers/yocto-poky/meta/classes/rootfs-postcommands.bbclass
+++ b/import-layers/yocto-poky/meta/classes/rootfs-postcommands.bbclass
@@ -15,13 +15,13 @@ ROOTFS_POSTPROCESS_COMMAND += "rootfs_update_timestamp ; "
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", "read_only_rootfs_hook; ", "",d)}'
# Write manifest
-IMAGE_MANIFEST = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest"
+IMAGE_MANIFEST = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.manifest"
ROOTFS_POSTUNINSTALL_COMMAND =+ "write_image_manifest ; "
# Set default postinst log file
POSTINST_LOGFILE ?= "${localstatedir}/log/postinstall.log"
# Set default target for systemd images
SYSTEMD_DEFAULT_TARGET ?= '${@bb.utils.contains("IMAGE_FEATURES", "x11-base", "graphical.target", "multi-user.target", d)}'
-ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd", "set_systemd_default_target; ", "", d)}'
+ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd", "set_systemd_default_target; systemd_create_users;", "", d)}'
ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
@@ -30,7 +30,34 @@ ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
SSH_DISABLE_DNS_LOOKUP ?= " ssh_disable_dns_lookup ; "
ROOTFS_POSTPROCESS_COMMAND_append_qemuall = "${SSH_DISABLE_DNS_LOOKUP}"
-
+systemd_create_users () {
+ for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd.conf ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd-remote.conf; do
+ [ -e $conffile ] || continue
+ grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do
+ if [ "$type" = "u" ]; then
+ useradd_params="--shell /sbin/nologin"
+ [ "$id" != "-" ] && useradd_params="$useradd_params --uid $id"
+ [ "$comment" != "-" ] && useradd_params="$useradd_params --comment $comment"
+ useradd_params="$useradd_params --system $name"
+ eval useradd --root ${IMAGE_ROOTFS} $useradd_params || true
+ elif [ "$type" = "g" ]; then
+ groupadd_params=""
+ [ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id"
+ groupadd_params="$groupadd_params --system $name"
+ eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true
+ elif [ "$type" = "m" ]; then
+ group=$id
+ if [ ! `grep -q "^${group}:" ${IMAGE_ROOTFS}${sysconfdir}/group` ]; then
+ eval groupadd --root ${IMAGE_ROOTFS} --system $group
+ fi
+ if [ ! `grep -q "^${name}:" ${IMAGE_ROOTFS}${sysconfdir}/passwd` ]; then
+ eval useradd --root ${IMAGE_ROOTFS} --shell /sbin/nologin --system $name
+ fi
+ eval usermod --root ${IMAGE_ROOTFS} -a -G $group $name
+ fi
+ done
+ done
+}
#
# A hook function to support read-only-rootfs IMAGE_FEATURES
@@ -73,27 +100,6 @@ read_only_rootfs_hook () {
${IMAGE_ROOTFS}/etc/init.d/populate-volatile.sh
fi
fi
-
- if ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "true", "false", d)}; then
- # Update user database files so that services don't fail for a read-only systemd system
- for conffile in ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd.conf ${IMAGE_ROOTFS}/usr/lib/sysusers.d/systemd-remote.conf; do
- [ -e $conffile ] || continue
- grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do
- if [ "$type" = "u" ]; then
- useradd_params=""
- [ "$id" != "-" ] && useradd_params="$useradd_params --uid $id"
- [ "$comment" != "-" ] && useradd_params="$useradd_params --comment $comment"
- useradd_params="$useradd_params --system $name"
- eval useradd --root ${IMAGE_ROOTFS} $useradd_params || true
- elif [ "$type" = "g" ]; then
- groupadd_params=""
- [ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id"
- groupadd_params="$groupadd_params --system $name"
- eval groupadd --root ${IMAGE_ROOTFS} $groupadd_params || true
- fi
- done
- done
- fi
}
#
@@ -211,7 +217,7 @@ python write_image_manifest () {
from oe.rootfs import image_list_installed_packages
from oe.utils import format_pkg_list
- deploy_dir = d.getVar('DEPLOY_DIR_IMAGE', True)
+ deploy_dir = d.getVar('IMGDEPLOYDIR', True)
link_name = d.getVar('IMAGE_LINK_NAME', True)
manifest_name = d.getVar('IMAGE_MANIFEST', True)
@@ -226,9 +232,6 @@ python write_image_manifest () {
if os.path.exists(manifest_name):
manifest_link = deploy_dir + "/" + link_name + ".manifest"
if os.path.lexists(manifest_link):
- if d.getVar('RM_OLD_IMAGE', True) == "1" and \
- os.path.exists(os.path.realpath(manifest_link)):
- os.remove(os.path.realpath(manifest_link))
os.remove(manifest_link)
os.symlink(os.path.basename(manifest_name), manifest_link)
}
diff --git a/import-layers/yocto-poky/meta/classes/rootfs_rpm.bbclass b/import-layers/yocto-poky/meta/classes/rootfs_rpm.bbclass
index 0d2e897c2..37730a710 100644
--- a/import-layers/yocto-poky/meta/classes/rootfs_rpm.bbclass
+++ b/import-layers/yocto-poky/meta/classes/rootfs_rpm.bbclass
@@ -5,8 +5,8 @@
ROOTFS_PKGMANAGE = "rpm smartpm"
ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
-# Add 50Meg of extra space for Smart
-IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "smartpm", " + 51200", "" ,d)}"
+# Add 100Meg of extra space for Smart
+IMAGE_ROOTFS_EXTRA_SPACE_append = "${@bb.utils.contains("PACKAGE_INSTALL", "smartpm", " + 102400", "" ,d)}"
# Smart is python based, so be sure python-native is available to us.
EXTRANATIVEPATH += "python-native"
@@ -24,11 +24,6 @@ do_populate_sdk[depends] += "${RPMROOTFSDEPENDS}"
do_rootfs[recrdeptask] += "do_package_write_rpm"
do_rootfs[vardeps] += "PACKAGE_FEED_URIS"
-# RPM doesn't work with multiple rootfs generation at once due to collisions in the use of files
-# in ${DEPLOY_DIR_RPM}. This can be removed if package_update_index_rpm can be called concurrently
-do_rootfs[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"
-do_populate_sdk[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"
-
python () {
if d.getVar('BUILD_IMAGES_FROM_FEEDS', True):
flags = d.getVarFlag('do_rootfs', 'recrdeptask', True)
diff --git a/import-layers/yocto-poky/meta/classes/sanity.bbclass b/import-layers/yocto-poky/meta/classes/sanity.bbclass
index 77813e41b..7682ffbb8 100644
--- a/import-layers/yocto-poky/meta/classes/sanity.bbclass
+++ b/import-layers/yocto-poky/meta/classes/sanity.bbclass
@@ -135,8 +135,7 @@ is a good way to visualise the changes."""
bb.note("Your conf/bblayers.conf has been automatically updated.")
return
- if not status.reparse:
- status.addresult()
+ status.addresult()
elif current_lconf == 6 and lconf_version > 6:
# Handle rename of meta-yocto -> meta-poky
@@ -459,19 +458,19 @@ def check_gcc_march(sanity_data):
# Check if GCC could work without march
if not result:
- status,res = oe.utils.getstatusoutput("${BUILD_PREFIX}gcc gcc_test.c -o gcc_test")
+ status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} gcc_test.c -o gcc_test"))
if status == 0:
result = True;
if not result:
- status,res = oe.utils.getstatusoutput("${BUILD_PREFIX}gcc -march=native gcc_test.c -o gcc_test")
+ status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} -march=native gcc_test.c -o gcc_test"))
if status == 0:
message = "BUILD_CFLAGS_append = \" -march=native\""
result = True;
if not result:
build_arch = sanity_data.getVar('BUILD_ARCH', True)
- status,res = oe.utils.getstatusoutput("${BUILD_PREFIX}gcc -march=%s gcc_test.c -o gcc_test" % build_arch)
+ status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} -march=%s gcc_test.c -o gcc_test" % build_arch))
if status == 0:
message = "BUILD_CFLAGS_append = \" -march=%s\"" % build_arch
result = True;
@@ -557,20 +556,17 @@ def check_perl_modules(sanity_data):
return "Required perl module(s) not found: %s\n\n%s\n" % (ret, errresult)
return None
-def sanity_check_conffiles(status, d):
+def sanity_check_conffiles(d):
funcs = d.getVar('BBLAYERS_CONF_UPDATE_FUNCS', True).split()
for func in funcs:
conffile, current_version, required_version, func = func.split(":")
if check_conf_exists(conffile, d) and d.getVar(current_version, True) is not None and \
d.getVar(current_version, True) != d.getVar(required_version, True):
- success = True
try:
bb.build.exec_func(func, d, pythonexception=True)
except NotImplementedError as e:
- success = False
- status.addresult(str(e))
- if success:
- status.reparse = True
+ bb.fatal(e)
+ d.setVar("BB_INVALIDCONF", True)
def sanity_handle_abichanges(status, d):
#
@@ -673,11 +669,11 @@ def check_sanity_version_change(status, d):
if not check_app_exists("${MAKE}", d):
missing = missing + "GNU make,"
- if not check_app_exists('${BUILD_PREFIX}gcc', d):
- missing = missing + "C Compiler (%sgcc)," % d.getVar("BUILD_PREFIX", True)
+ if not check_app_exists('${BUILD_CC}', d):
+ missing = missing + "C Compiler (%s)," % d.getVar("BUILD_CC", True)
- if not check_app_exists('${BUILD_PREFIX}g++', d):
- missing = missing + "C++ Compiler (%sg++)," % d.getVar("BUILD_PREFIX", True)
+ if not check_app_exists('${BUILD_CXX}', d):
+ missing = missing + "C++ Compiler (%s)," % d.getVar("BUILD_CXX", True)
required_utilities = d.getVar('SANITY_REQUIRED_UTILITIES', True)
@@ -746,7 +742,7 @@ def check_sanity_version_change(status, d):
status.addresult("You have a 32-bit libc, but no 32-bit headers. You must install the 32-bit libc headers.\n")
bbpaths = d.getVar('BBPATH', True).split(":")
- if ("." in bbpaths or "./" in bbpaths or "" in bbpaths) and not status.reparse:
+ if ("." in bbpaths or "./" in bbpaths or "" in bbpaths):
status.addresult("BBPATH references the current directory, either through " \
"an empty entry, a './' or a '.'.\n\t This is unsafe and means your "\
"layer configuration is adding empty elements to BBPATH.\n\t "\
@@ -765,6 +761,16 @@ def check_sanity_version_change(status, d):
# Check that TMPDIR isn't located on nfs
status.addresult(check_not_nfs(tmpdir, "TMPDIR"))
+def sanity_check_locale(d):
+ """
+ Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists.
+ """
+ import locale
+ try:
+ locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
+ except locale.Error:
+ raise_sanity_error("You system needs to support the en_US.UTF-8 locale.", d)
+
def check_sanity_everybuild(status, d):
import os, stat
# Sanity tests which test the users environment so need to run at each build (or are so cheap
@@ -784,7 +790,7 @@ def check_sanity_everybuild(status, d):
if (LooseVersion(bb.__version__) < LooseVersion(minversion)):
status.addresult('Bitbake version %s is required and version %s was found\n' % (minversion, bb.__version__))
- sanity_check_conffiles(status, d)
+ sanity_check_locale(d)
paths = d.getVar('PATH', True).split(":")
if "." in paths or "./" in paths or "" in paths:
@@ -829,8 +835,8 @@ def check_sanity_everybuild(status, d):
check_supported_distro(d)
- omask = os.umask(022)
- if omask & 0755:
+ omask = os.umask(0o022)
+ if omask & 0o755:
status.addresult("Please use a umask which allows a+rx and u+rwx\n")
os.umask(omask)
@@ -891,13 +897,13 @@ def check_sanity_everybuild(status, d):
continue
if mirror.startswith('file://'):
- import urlparse
- check_symlink(urlparse.urlparse(mirror).path, d)
+ import urllib
+ check_symlink(urllib.parse.urlparse(mirror).path, d)
# SSTATE_MIRROR ends with a /PATH string
if mirror.endswith('/PATH'):
# remove /PATH$ from SSTATE_MIRROR to get a working
# base directory path
- mirror_base = urlparse.urlparse(mirror[:-1*len('/PATH')]).path
+ mirror_base = urllib.parse.urlparse(mirror[:-1*len('/PATH')]).path
check_symlink(mirror_base, d)
# Check that TMPDIR hasn't changed location since the last time we were run
@@ -920,17 +926,17 @@ def check_sanity_everybuild(status, d):
with open(checkfile, "w") as f:
f.write(tmpdir)
- # Check /bin/sh links to dash or bash
- real_sh = os.path.realpath('/bin/sh')
- if not real_sh.endswith('/dash') and not real_sh.endswith('/bash'):
- status.addresult("Error, /bin/sh links to %s, must be dash or bash\n" % real_sh)
+ # If /bin/sh is a symlink, check that it points to dash or bash
+ if os.path.islink('/bin/sh'):
+ real_sh = os.path.realpath('/bin/sh')
+ if not real_sh.endswith('/dash') and not real_sh.endswith('/bash'):
+ status.addresult("Error, /bin/sh links to %s, must be dash or bash\n" % real_sh)
def check_sanity(sanity_data):
class SanityStatus(object):
def __init__(self):
self.messages = ""
self.network_error = False
- self.reparse = False
def addresult(self, message):
if message:
@@ -986,7 +992,6 @@ def check_sanity(sanity_data):
if status.messages != "":
raise_sanity_error(sanity_data.expand(status.messages), sanity_data, status.network_error)
- return status.reparse
# Create a copy of the datastore and finalise it to ensure appends and
# overrides are set - the datastore has yet to be finalised at ConfigParsed
@@ -995,15 +1000,20 @@ def copy_data(e):
sanity_data.finalize()
return sanity_data
+addhandler config_reparse_eventhandler
+config_reparse_eventhandler[eventmask] = "bb.event.ConfigParsed"
+python config_reparse_eventhandler() {
+ sanity_check_conffiles(e.data)
+}
+
addhandler check_sanity_eventhandler
check_sanity_eventhandler[eventmask] = "bb.event.SanityCheck bb.event.NetworkTest"
python check_sanity_eventhandler() {
if bb.event.getName(e) == "SanityCheck":
sanity_data = copy_data(e)
+ check_sanity(sanity_data)
if e.generateevents:
sanity_data.setVar("SANITY_USE_EVENTS", "1")
- reparse = check_sanity(sanity_data)
- e.data.setVar("BB_INVALIDCONF", reparse)
bb.event.fire(bb.event.SanityCheckPassed(), e.data)
elif bb.event.getName(e) == "NetworkTest":
sanity_data = copy_data(e)
diff --git a/import-layers/yocto-poky/meta/classes/scons.bbclass b/import-layers/yocto-poky/meta/classes/scons.bbclass
index 1579b05c6..b9ae19d58 100644
--- a/import-layers/yocto-poky/meta/classes/scons.bbclass
+++ b/import-layers/yocto-poky/meta/classes/scons.bbclass
@@ -10,7 +10,7 @@ scons_do_compile() {
}
scons_do_install() {
- ${STAGING_BINDIR_NATIVE}/scons PREFIX=${D}${prefix} prefix=${D}${prefix} install ${EXTRA_OESCONS}|| \
+ ${STAGING_BINDIR_NATIVE}/scons install_root=${D}${prefix} PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} install || \
die "scons install execution failed."
}
diff --git a/import-layers/yocto-poky/meta/classes/sdl.bbclass b/import-layers/yocto-poky/meta/classes/sdl.bbclass
deleted file mode 100644
index cc31288f6..000000000
--- a/import-layers/yocto-poky/meta/classes/sdl.bbclass
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
-#
-
-DEPENDS += "virtual/libsdl libsdl-mixer libsdl-image"
-SECTION = "x11/games"
diff --git a/import-layers/yocto-poky/meta/classes/sip.bbclass b/import-layers/yocto-poky/meta/classes/sip.bbclass
deleted file mode 100644
index 6ed2a13bd..000000000
--- a/import-layers/yocto-poky/meta/classes/sip.bbclass
+++ /dev/null
@@ -1,61 +0,0 @@
-# Build Class for Sip based Python Bindings
-# (C) Michael 'Mickey' Lauer <mickey@Vanille.de>
-#
-STAGING_SIPDIR ?= "${STAGING_DATADIR_NATIVE}/sip"
-
-DEPENDS =+ "sip-native"
-RDEPENDS_${PN} += "python-sip"
-
-# default stuff, do not uncomment
-# EXTRA_SIPTAGS = "-tWS_X11 -tQt_4_3_0"
-
-# do_generate is before do_configure so ensure that sip_native is populated in sysroot before executing it
-do_generate[depends] += "sip-native:do_populate_sysroot"
-
-sip_do_generate() {
- if [ -z "${SIP_MODULES}" ]; then
- MODULES="`ls sip/*mod.sip`"
- else
- MODULES="${SIP_MODULES}"
- fi
-
- if [ -z "$MODULES" ]; then
- die "SIP_MODULES not set and no modules found in $PWD"
- else
- bbnote "using modules '${SIP_MODULES}' and tags '${EXTRA_SIPTAGS}'"
- fi
-
- if [ -z "${EXTRA_SIPTAGS}" ]; then
- die "EXTRA_SIPTAGS needs to be set!"
- else
- SIPTAGS="${EXTRA_SIPTAGS}"
- fi
-
- if [ ! -z "${SIP_FEATURES}" ]; then
- FEATURES="-z ${SIP_FEATURES}"
- bbnote "sip feature file: ${SIP_FEATURES}"
- fi
-
- for module in $MODULES
- do
- install -d ${module}/
- echo "calling 'sip4 -I sip -I ${STAGING_SIPDIR} ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.pro.in sip/${module}/${module}mod.sip'"
- sip4 -I ${STAGING_SIPDIR} -I sip ${SIPTAGS} ${FEATURES} -c ${module} -b ${module}/${module}.sbf \
- sip/${module}/${module}mod.sip || die "Error calling sip on ${module}"
- sed -e 's,target,TARGET,' -e 's,sources,SOURCES,' -e 's,headers,HEADERS,' \
- ${module}/${module}.sbf | sed s,"moc_HEADERS =","HEADERS +=", \
- >${module}/${module}.pro
- echo "TEMPLATE=lib" >>${module}/${module}.pro
- [ "${module}" = "qt" ] && echo "" >>${module}/${module}.pro
- [ "${module}" = "qtcanvas" ] && echo "" >>${module}/${module}.pro
- [ "${module}" = "qttable" ] && echo "" >>${module}/${module}.pro
- [ "${module}" = "qwt" ] && echo "" >>${module}/${module}.pro
- [ "${module}" = "qtpe" ] && echo "" >>${module}/${module}.pro
- [ "${module}" = "qtpe" ] && echo "LIBS+=-lqpe" >>${module}/${module}.pro
- true
- done
-}
-
-EXPORT_FUNCTIONS do_generate
-
-addtask generate after do_unpack do_patch before do_configure
diff --git a/import-layers/yocto-poky/meta/classes/siteinfo.bbclass b/import-layers/yocto-poky/meta/classes/siteinfo.bbclass
index 50141a353..6eca004c5 100644
--- a/import-layers/yocto-poky/meta/classes/siteinfo.bbclass
+++ b/import-layers/yocto-poky/meta/classes/siteinfo.bbclass
@@ -36,7 +36,11 @@ def siteinfo_data(d):
"mips": "endian-big bit-32 mips-common",
"mips64": "endian-big bit-64 mips-common",
"mips64el": "endian-little bit-64 mips-common",
+ "mipsisa64r6": "endian-big bit-64 mips-common",
+ "mipsisa64r6el": "endian-little bit-64 mips-common",
"mipsel": "endian-little bit-32 mips-common",
+ "mipsisa32r6": "endian-big bit-32 mips-common",
+ "mipsisa32r6el": "endian-little bit-32 mips-common",
"powerpc": "endian-big bit-32 powerpc-common",
"nios2": "endian-little bit-32 nios2-common",
"powerpc64": "endian-big bit-64 powerpc-common",
@@ -107,6 +111,14 @@ def siteinfo_data(d):
"x86_64-mingw32": "bit-64",
}
+ # Add in any extra user supplied data which may come from a BSP layer, removing the
+ # need to always change this class directly
+ extra_siteinfo = (d.getVar("SITEINFO_EXTRA_DATAFUNCS", True) or "").split()
+ for m in extra_siteinfo:
+ call = m + "(archinfo, osinfo, targetinfo, d)"
+ locs = { "archinfo" : archinfo, "osinfo" : osinfo, "targetinfo" : targetinfo, "d" : d}
+ archinfo, osinfo, targetinfo = bb.utils.better_eval(call, locs)
+
hostarch = d.getVar("HOST_ARCH", True)
hostos = d.getVar("HOST_OS", True)
target = "%s-%s" % (hostarch, hostos)
@@ -145,7 +157,7 @@ python () {
bb.fatal("Please add your architecture to siteinfo.bbclass")
}
-def siteinfo_get_files(d, no_cache = False):
+def siteinfo_get_files(d, aclocalcache = False):
sitedata = siteinfo_data(d)
sitefiles = ""
for path in d.getVar("BBPATH", True).split(":"):
@@ -154,11 +166,17 @@ def siteinfo_get_files(d, no_cache = False):
if os.path.exists(filename):
sitefiles += filename + " "
- if no_cache: return sitefiles
+ if not aclocalcache:
+ return sitefiles
- # Now check for siteconfig cache files
- # Use the files copied to the aclocal cache generated by autotools.bbclass
- # to avoid races
+ # Now check for siteconfig cache files in the directory setup by autotools.bbclass to
+ # avoid races.
+ #
+ # ACLOCALDIR may or may not exist so cache should only be set to True from autotools.bbclass
+ # after files have been copied into this location. To do otherwise risks parsing/signature
+ # issues and the directory being created/removed whilst this code executes. This can happen
+ # when a multilib recipe is parsed along with its base variant which may be running at the time
+ # causing rare but nasty failures
path_siteconfig = d.getVar('ACLOCALDIR', True)
if path_siteconfig and os.path.isdir(path_siteconfig):
for i in os.listdir(path_siteconfig):
@@ -166,7 +184,6 @@ def siteinfo_get_files(d, no_cache = False):
continue
filename = os.path.join(path_siteconfig, i)
sitefiles += filename + " "
-
return sitefiles
#
diff --git a/import-layers/yocto-poky/meta/classes/spdx.bbclass b/import-layers/yocto-poky/meta/classes/spdx.bbclass
index 0c9276584..89394d3a9 100644
--- a/import-layers/yocto-poky/meta/classes/spdx.bbclass
+++ b/import-layers/yocto-poky/meta/classes/spdx.bbclass
@@ -219,14 +219,13 @@ def hash_string(data):
def run_fossology(foss_command, full_spdx):
import string, re
import subprocess
-
- p = subprocess.Popen(foss_command.split(),
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- foss_output, foss_error = p.communicate()
- if p.returncode != 0:
+
+ try:
+ foss_output = subprocess.check_output(foss_command.split(),
+ stderr=subprocess.STDOUT).decode('utf-8')
+ except subprocess.CalledProcessError as e:
return None
- foss_output = unicode(foss_output, "utf-8")
foss_output = string.replace(foss_output, '\r', '')
# Package info
diff --git a/import-layers/yocto-poky/meta/classes/sstate.bbclass b/import-layers/yocto-poky/meta/classes/sstate.bbclass
index 8c623271a..172384b37 100644
--- a/import-layers/yocto-poky/meta/classes/sstate.bbclass
+++ b/import-layers/yocto-poky/meta/classes/sstate.bbclass
@@ -17,6 +17,9 @@ SSTATE_EXTRAPATH = ""
SSTATE_EXTRAPATHWILDCARD = ""
SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC}"
+# explicitly make PV to depend on evaluated value of PV variable
+PV[vardepvalue] = "${PV}"
+
# We don't want the sstate to depend on things like the distro string
# of the system, we let the sstate paths take care of this.
SSTATE_EXTRAPATH[vardepvalue] = ""
@@ -27,6 +30,8 @@ SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR
SSTATE_DUPWHITELIST += "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml"
# Archive the sources for many architectures in one deploy folder
SSTATE_DUPWHITELIST += "${DEPLOY_DIR_SRC}"
+# Ignore overlapping README
+SSTATE_DUPWHITELIST += "${DEPLOY_DIR}/sdk/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt"
SSTATE_SCAN_FILES ?= "*.la *-config *_config"
SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES", True).split())}" \) -type f'
@@ -95,7 +100,7 @@ python () {
scan_cmd = "grep -Irl ${STAGING_DIR} ${SSTATE_BUILDDIR}"
d.setVar('SSTATE_SCAN_CMD', scan_cmd)
- unique_tasks = set((d.getVar('SSTATETASKS', True) or "").split())
+ unique_tasks = sorted(set((d.getVar('SSTATETASKS', True) or "").split()))
d.setVar('SSTATETASKS', " ".join(unique_tasks))
for task in unique_tasks:
d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ")
@@ -170,6 +175,8 @@ def sstate_install(ss, d):
if os.access(manifest, os.R_OK):
bb.fatal("Package already staged (%s)?!" % manifest)
+ d.setVar("SSTATE_INST_POSTRM", manifest + ".postrm")
+
locks = []
for lock in ss['lockfiles-shared']:
locks.append(bb.utils.lockfile(lock, True))
@@ -200,6 +207,7 @@ def sstate_install(ss, d):
f = os.path.normpath(f)
realmatch = True
for w in whitelist:
+ w = os.path.normpath(w)
if f.startswith(w):
realmatch = False
break
@@ -402,6 +410,13 @@ def sstate_clean_manifest(manifest, d):
except OSError:
pass
+ postrm = manifest + ".postrm"
+ if os.path.exists(manifest + ".postrm"):
+ import subprocess
+ os.chmod(postrm, 0o755)
+ subprocess.call(postrm, shell=True)
+ oe.path.remove(postrm)
+
oe.path.remove(manifest)
def sstate_clean(ss, d):
@@ -563,6 +578,8 @@ def sstate_package(ss, d):
for state in ss['dirs']:
if not os.path.exists(state[1]):
continue
+ if d.getVar('SSTATE_SKIP_CREATION', True) == '1':
+ continue
srcbase = state[0].rstrip("/").rsplit('/', 1)[0]
for walkroot, dirs, files in os.walk(state[1]):
for file in files:
@@ -623,10 +640,10 @@ def pstaging_fetch(sstatefetch, sstatepkg, d):
# Try a fetch from the sstate mirror, if it fails just return and
# we will build the package
- uris = ['file://{0}'.format(sstatefetch),
- 'file://{0}.siginfo'.format(sstatefetch)]
+ uris = ['file://{0};downloadfilename={0}'.format(sstatefetch),
+ 'file://{0}.siginfo;downloadfilename={0}.siginfo'.format(sstatefetch)]
if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG", True), False):
- uris += ['file://{0}.sig'.format(sstatefetch)]
+ uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)]
for srcuri in uris:
localdata.setVar('SRC_URI', srcuri)
@@ -634,12 +651,6 @@ def pstaging_fetch(sstatefetch, sstatepkg, d):
fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
fetcher.download()
- # Need to optimise this, if using file:// urls, the fetcher just changes the local path
- # For now work around by symlinking
- localpath = bb.data.expand(fetcher.localpath(srcuri), localdata)
- if localpath != sstatepkg and os.path.exists(localpath) and not os.path.exists(sstatepkg):
- os.symlink(localpath, sstatepkg)
-
except bb.fetch2.BBFetchException:
break
@@ -647,7 +658,7 @@ def sstate_setscene(d):
shared_state = sstate_state_fromvars(d)
accelerate = sstate_installpkg(shared_state, d)
if not accelerate:
- raise bb.build.FuncFailed("No suitable staging package found")
+ bb.fatal("No suitable staging package found")
python sstate_task_prefunc () {
shared_state = sstate_state_fromvars(d)
@@ -661,9 +672,9 @@ python sstate_task_postfunc () {
sstate_install(shared_state, d)
for intercept in shared_state['interceptfuncs']:
bb.build.exec_func(intercept, d, (d.getVar("WORKDIR", True),))
- omask = os.umask(002)
- if omask != 002:
- bb.note("Using umask 002 (not %0o) for sstate packaging" % omask)
+ omask = os.umask(0o002)
+ if omask != 0o002:
+ bb.note("Using umask 0o002 (not %0o) for sstate packaging" % omask)
sstate_package(shared_state, d)
os.umask(omask)
}
@@ -725,6 +736,7 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
ret = []
missed = []
+ missing = []
extension = ".tgz"
if siginfo:
extension = extension + ".siginfo"
@@ -746,6 +758,18 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
return spec, extrapath, tname
+ def sstate_pkg_to_pn(pkg, d):
+ """
+ Translate an sstate filename to a PN value by way of SSTATE_PKGSPEC. This is slightly hacky but
+ we don't have access to everything in this context.
+ """
+ pkgspec = d.getVar('SSTATE_PKGSPEC', False)
+ try:
+ idx = pkgspec.split(':').index('${PN}')
+ except ValueError:
+ bb.fatal('Unable to find ${PN} in SSTATE_PKGSPEC')
+ return pkg.split(':')[idx]
+
for task in range(len(sq_fn)):
@@ -780,6 +804,8 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
if localdata.getVar('BB_NO_NETWORK', True) == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK', True) == "1":
localdata.delVar('BB_NO_NETWORK')
+ whitelist = bb.runqueue.get_setscene_enforce_whitelist(d)
+
from bb.fetch2 import FetchConnectionCache
def checkstatus_init(thread_worker):
thread_worker.connection_cache = FetchConnectionCache()
@@ -806,7 +832,14 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
except:
missed.append(task)
bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri)
- pass
+ if whitelist:
+ pn = sstate_pkg_to_pn(sstatefile, d)
+ taskname = sq_task[task]
+ if not bb.runqueue.check_setscene_enforce_whitelist(pn, taskname, whitelist):
+ missing.append(task)
+ bb.error('Sstate artifact unavailable for %s.%s' % (pn, taskname))
+ pass
+ bb.event.fire(bb.event.ProcessProgress("Checking sstate mirror object availability", len(tasklist) - thread_worker.tasks.qsize()), d)
tasklist = []
for task in range(len(sq_fn)):
@@ -817,16 +850,23 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):
tasklist.append((task, sstatefile))
if tasklist:
- bb.note("Checking sstate mirror object availability (for %s objects)" % len(tasklist))
+ bb.event.fire(bb.event.ProcessStarted("Checking sstate mirror object availability", len(tasklist)), d)
+
import multiprocessing
nproc = min(multiprocessing.cpu_count(), len(tasklist))
+ bb.event.enable_threadlock()
pool = oe.utils.ThreadedPool(nproc, len(tasklist),
worker_init=checkstatus_init, worker_end=checkstatus_end)
for t in tasklist:
pool.add_task(checkstatus, t)
pool.start()
pool.wait_completion()
+ bb.event.disable_threadlock()
+
+ bb.event.fire(bb.event.ProcessFinished("Checking sstate mirror object availability"), d)
+ if whitelist and missing:
+ bb.fatal('Required artifacts were unavailable - exiting')
inheritlist = d.getVar("INHERIT", True)
if "toaster" in inheritlist:
@@ -905,6 +945,9 @@ def setscene_depvalid(task, taskdependees, notneeded, d):
# Nothing need depend on libc-initial/gcc-cross-initial
if "-initial" in taskdependees[task][0]:
continue
+ # For meta-extsdk-toolchain we want all sysroot dependencies
+ if taskdependees[dep][0] == 'meta-extsdk-toolchain':
+ return False
# Native/Cross populate_sysroot need their dependencies
if isNativeCross(taskdependees[task][0]) and isNativeCross(taskdependees[dep][0]):
return False
@@ -982,6 +1025,8 @@ python sstate_eventhandler2() {
for r in toremove:
(stamp, manifest, workdir) = r.split()
for m in glob.glob(manifest + ".*"):
+ if m.endswith(".postrm"):
+ continue
sstate_clean_manifest(m, d)
bb.utils.remove(stamp + "*")
if removeworkdir:
diff --git a/import-layers/yocto-poky/meta/classes/staging.bbclass b/import-layers/yocto-poky/meta/classes/staging.bbclass
index bc5dfa81a..a0b09a00b 100644
--- a/import-layers/yocto-poky/meta/classes/staging.bbclass
+++ b/import-layers/yocto-poky/meta/classes/staging.bbclass
@@ -1,3 +1,37 @@
+# These directories will be staged in the sysroot
+SYSROOT_DIRS = " \
+ ${includedir} \
+ ${libdir} \
+ ${base_libdir} \
+ ${nonarch_base_libdir} \
+ ${datadir} \
+"
+
+# These directories are also staged in the sysroot when they contain files that
+# are usable on the build system
+SYSROOT_DIRS_NATIVE = " \
+ ${bindir} \
+ ${sbindir} \
+ ${base_bindir} \
+ ${base_sbindir} \
+ ${libexecdir} \
+ ${sysconfdir} \
+ ${localstatedir} \
+"
+SYSROOT_DIRS_append_class-native = " ${SYSROOT_DIRS_NATIVE}"
+SYSROOT_DIRS_append_class-cross = " ${SYSROOT_DIRS_NATIVE}"
+SYSROOT_DIRS_append_class-crosssdk = " ${SYSROOT_DIRS_NATIVE}"
+
+# These directories will not be staged in the sysroot
+SYSROOT_DIRS_BLACKLIST = " \
+ ${mandir} \
+ ${docdir} \
+ ${infodir} \
+ ${datadir}/locale \
+ ${datadir}/applications \
+ ${datadir}/fonts \
+ ${datadir}/pixmaps \
+"
sysroot_stage_dir() {
src="$1"
@@ -14,43 +48,18 @@ sysroot_stage_dir() {
)
}
-sysroot_stage_libdir() {
- src="$1"
- dest="$2"
-
- sysroot_stage_dir $src $dest
-}
-
sysroot_stage_dirs() {
from="$1"
to="$2"
- sysroot_stage_dir $from${includedir} $to${includedir}
- if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
- sysroot_stage_dir $from${bindir} $to${bindir}
- sysroot_stage_dir $from${sbindir} $to${sbindir}
- sysroot_stage_dir $from${base_bindir} $to${base_bindir}
- sysroot_stage_dir $from${base_sbindir} $to${base_sbindir}
- sysroot_stage_dir $from${libexecdir} $to${libexecdir}
- sysroot_stage_dir $from${sysconfdir} $to${sysconfdir}
- sysroot_stage_dir $from${localstatedir} $to${localstatedir}
- fi
- if [ -d $from${libdir} ]
- then
- sysroot_stage_libdir $from${libdir} $to${libdir}
- fi
- if [ -d $from${base_libdir} ]
- then
- sysroot_stage_libdir $from${base_libdir} $to${base_libdir}
- fi
- if [ -d $from${nonarch_base_libdir} ]
- then
- sysroot_stage_libdir $from${nonarch_base_libdir} $to${nonarch_base_libdir}
- fi
- sysroot_stage_dir $from${datadir} $to${datadir}
- # We don't care about docs/info/manpages/locales
- rm -rf $to${mandir}/ $to${docdir}/ $to${infodir}/ ${to}${datadir}/locale/
- rm -rf $to${datadir}/applications/ $to${datadir}/fonts/ $to${datadir}/pixmaps/
+ for dir in ${SYSROOT_DIRS}; do
+ sysroot_stage_dir "$from$dir" "$to$dir"
+ done
+
+ # Remove directories we do not care about
+ for dir in ${SYSROOT_DIRS_BLACKLIST}; do
+ rm -rf "$to$dir"
+ done
}
sysroot_stage_all() {
@@ -172,13 +181,26 @@ python sysroot_cleansstate () {
do_configure[prefuncs] += "sysroot_cleansstate"
+BB_SETSCENE_VERIFY_FUNCTION2 = "sysroot_checkhashes2"
+
+def sysroot_checkhashes2(covered, tasknames, fns, d, invalidtasks):
+ problems = set()
+ configurefns = set()
+ for tid in invalidtasks:
+ if tasknames[tid] == "do_configure" and tid not in covered:
+ configurefns.add(fns[tid])
+ for tid in covered:
+ if tasknames[tid] == "do_populate_sysroot" and fns[tid] in configurefns:
+ problems.add(tid)
+ return problems
+
BB_SETSCENE_VERIFY_FUNCTION = "sysroot_checkhashes"
def sysroot_checkhashes(covered, tasknames, fnids, fns, d, invalidtasks = None):
problems = set()
configurefnids = set()
if not invalidtasks:
- invalidtasks = xrange(len(tasknames))
+ invalidtasks = range(len(tasknames))
for task in invalidtasks:
if tasknames[task] == "do_configure" and task not in covered:
configurefnids.add(fnids[task])
diff --git a/import-layers/yocto-poky/meta/classes/syslinux.bbclass b/import-layers/yocto-poky/meta/classes/syslinux.bbclass
index 4fcb0c5e7..7778fd708 100644
--- a/import-layers/yocto-poky/meta/classes/syslinux.bbclass
+++ b/import-layers/yocto-poky/meta/classes/syslinux.bbclass
@@ -30,6 +30,7 @@ SYSLINUX_SERIAL_TTY ?= "console=ttyS0,115200"
SYSLINUX_PROMPT ?= "0"
SYSLINUX_TIMEOUT ?= "50"
AUTO_SYSLINUXMENU ?= "1"
+SYSLINUX_ALLOWOPTIONS ?= "1"
SYSLINUX_ROOT ?= "${ROOT}"
SYSLINUX_CFG_VM ?= "${S}/syslinux_vm.cfg"
SYSLINUX_CFG_LIVE ?= "${S}/syslinux_live.cfg"
@@ -71,7 +72,7 @@ syslinux_hddimg_populate() {
}
syslinux_hddimg_install() {
- syslinux ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
+ syslinux ${IMGDEPLOYDIR}/${IMAGE_NAME}.hddimg
}
syslinux_hdddirect_install() {
@@ -99,12 +100,12 @@ python build_syslinux_cfg () {
cfile = d.getVar('SYSLINUX_CFG', True)
if not cfile:
- raise bb.build.FuncFailed('Unable to read SYSLINUX_CFG')
+ bb.fatal('Unable to read SYSLINUX_CFG')
try:
- cfgfile = file(cfile, 'w')
+ cfgfile = open(cfile, 'w')
except OSError:
- raise bb.build.funcFailed('Unable to open %s' % (cfile))
+ bb.fatal('Unable to open %s' % cfile)
cfgfile.write('# Automatically created by OE\n')
@@ -114,7 +115,12 @@ python build_syslinux_cfg () {
for opt in opts.split(';'):
cfgfile.write('%s\n' % opt)
- cfgfile.write('ALLOWOPTIONS 1\n');
+ allowoptions = d.getVar('SYSLINUX_ALLOWOPTIONS', True)
+ if allowoptions:
+ cfgfile.write('ALLOWOPTIONS %s\n' % allowoptions)
+ else:
+ cfgfile.write('ALLOWOPTIONS 1\n')
+
syslinux_default_console = d.getVar('SYSLINUX_DEFAULT_CONSOLE', True)
syslinux_serial_tty = d.getVar('SYSLINUX_SERIAL_TTY', True)
syslinux_serial = d.getVar('SYSLINUX_SERIAL', True)
@@ -154,7 +160,7 @@ python build_syslinux_cfg () {
overrides = localdata.getVar('OVERRIDES', True)
if not overrides:
- raise bb.build.FuncFailed('OVERRIDES not defined')
+ bb.fatal('OVERRIDES not defined')
localdata.setVar('OVERRIDES', label + ':' + overrides)
bb.data.update_data(localdata)
@@ -166,7 +172,7 @@ python build_syslinux_cfg () {
root= d.getVar('SYSLINUX_ROOT', True)
if not root:
- raise bb.build.FuncFailed('SYSLINUX_ROOT not defined')
+ bb.fatal('SYSLINUX_ROOT not defined')
for btype in btypes:
cfgfile.write('LABEL %s%s\nKERNEL /vmlinuz\n' % (btype[0], label))
@@ -190,3 +196,4 @@ python build_syslinux_cfg () {
cfgfile.close()
}
+build_syslinux_cfg[dirs] = "${S}"
diff --git a/import-layers/yocto-poky/meta/classes/systemd-boot.bbclass b/import-layers/yocto-poky/meta/classes/systemd-boot.bbclass
new file mode 100644
index 000000000..05244c7e5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/systemd-boot.bbclass
@@ -0,0 +1,124 @@
+# Copyright (C) 2016 Intel Corporation
+#
+# Released under the MIT license (see COPYING.MIT)
+
+# 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.
+#
+# 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)
+
+do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy"
+do_bootdirectdisk[depends] += "${MLPREFIX}systemd-boot:do_deploy"
+
+EFIDIR = "/EFI/BOOT"
+
+SYSTEMD_BOOT_CFG ?= "${S}/loader.conf"
+SYSTEMD_BOOT_ENTRIES ?= ""
+SYSTEMD_BOOT_TIMEOUT ?= "10"
+
+# Need UUID utility code.
+inherit fs-uuid
+
+efi_populate() {
+ DEST=$1
+
+ EFI_IMAGE="systemd-bootia32.efi"
+ DEST_EFI_IMAGE="bootia32.efi"
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ EFI_IMAGE="systemd-bootx64.efi"
+ DEST_EFI_IMAGE="bootx64.efi"
+ fi
+
+ install -d ${DEST}${EFIDIR}
+ # systemd-boot 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}
+ install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf
+ for i in ${SYSTEMD_BOOT_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('SYSTEMD_BOOT_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('SYSTEMD_BOOT_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("SYSTEMD_BOOT_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)
+ entrycfg.write('%s' % append)
+ entrycfg.write('\n')
+ entrycfg.close()
+}
diff --git a/import-layers/yocto-poky/meta/classes/systemd.bbclass b/import-layers/yocto-poky/meta/classes/systemd.bbclass
index db7873fbe..d56c760a1 100644
--- a/import-layers/yocto-poky/meta/classes/systemd.bbclass
+++ b/import-layers/yocto-poky/meta/classes/systemd.bbclass
@@ -165,8 +165,7 @@ python systemd_populate_packages() {
if path_found != '':
systemd_add_files_and_parse(pkg_systemd, path_found, service, keys)
else:
- raise bb.build.FuncFailed("SYSTEMD_SERVICE_%s value %s does not exist" % \
- (pkg_systemd, service))
+ bb.fatal("SYSTEMD_SERVICE_%s value %s does not exist" % (pkg_systemd, service))
# Run all modifications once when creating package
if os.path.exists(d.getVar("D", True)):
diff --git a/import-layers/yocto-poky/meta/classes/terminal.bbclass b/import-layers/yocto-poky/meta/classes/terminal.bbclass
index 9f4c24e90..a94f755a4 100644
--- a/import-layers/yocto-poky/meta/classes/terminal.bbclass
+++ b/import-layers/yocto-poky/meta/classes/terminal.bbclass
@@ -29,7 +29,7 @@ def emit_terminal_func(command, envdata, d):
bb.data.emit_func(cmd_func, script, envdata)
script.write(cmd_func)
script.write("\n")
- os.chmod(runfile, 0755)
+ os.chmod(runfile, 0o755)
return runfile
diff --git a/import-layers/yocto-poky/meta/classes/testexport.bbclass b/import-layers/yocto-poky/meta/classes/testexport.bbclass
new file mode 100644
index 000000000..514702082
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/testexport.bbclass
@@ -0,0 +1,206 @@
+# Copyright (C) 2016 Intel Corporation
+#
+# Released under the MIT license (see COPYING.MIT)
+#
+#
+# testexport.bbclass allows to execute runtime test outside OE environment.
+# Most of the tests are commands run on target image over ssh.
+# To use it add testexport to global inherit and call your target image with -c testexport
+# You can try it out like this:
+# - First build an image. i.e. core-image-sato
+# - Add INHERIT += "testexport" in local.conf
+# - Then bitbake core-image-sato -c testexport. That will generate the directory structure
+# to execute the runtime tests using runexported.py.
+#
+# For more information on TEST_SUITES check testimage class.
+
+TEST_LOG_DIR ?= "${WORKDIR}/testexport"
+TEST_EXPORT_DIR ?= "${TMPDIR}/testexport/${PN}"
+TEST_EXPORT_PACKAGED_DIR ?= "packages/packaged"
+TEST_EXPORT_EXTRACTED_DIR ?= "packages/extracted"
+
+TEST_TARGET ?= "simpleremote"
+TEST_TARGET_IP ?= ""
+TEST_SERVER_IP ?= ""
+
+TEST_EXPORT_SDK_PACKAGES ?= ""
+TEST_EXPORT_SDK_ENABLED ?= "0"
+TEST_EXPORT_SDK_NAME ?= "testexport-tools-nativesdk"
+TEST_EXPORT_SDK_DIR ?= "sdk"
+
+TEST_EXPORT_DEPENDS = ""
+TEST_EXPORT_DEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
+TEST_EXPORT_DEPENDS += "${@bb.utils.contains('TEST_EXPORT_SDK_ENABLED', '1', 'testexport-tarball:do_populate_sdk', '', d)}"
+TEST_EXPORT_LOCK = "${TMPDIR}/testimage.lock"
+
+python do_testexport() {
+ testexport_main(d)
+}
+
+addtask testexport
+do_testexport[nostamp] = "1"
+do_testexport[depends] += "${TEST_EXPORT_DEPENDS} ${TESTIMAGEDEPENDS}"
+do_testexport[lockfiles] += "${TEST_EXPORT_LOCK}"
+
+def exportTests(d,tc):
+ import json
+ import shutil
+ import pkgutil
+ import re
+ import oe.path
+
+ exportpath = d.getVar("TEST_EXPORT_DIR", True)
+
+ savedata = {}
+ savedata["d"] = {}
+ savedata["target"] = {}
+ savedata["target"]["ip"] = tc.target.ip or d.getVar("TEST_TARGET_IP", True)
+ savedata["target"]["server_ip"] = tc.target.server_ip or d.getVar("TEST_SERVER_IP", True)
+
+ keys = [ key for key in d.keys() if not key.startswith("_") and not key.startswith("BB") \
+ and not key.startswith("B_pn") and not key.startswith("do_") and not d.getVarFlag(key, "func", True)]
+ for key in keys:
+ try:
+ savedata["d"][key] = d.getVar(key, True)
+ except bb.data_smart.ExpansionError:
+ # we don't care about those anyway
+ pass
+
+ json_file = os.path.join(exportpath, "testdata.json")
+ with open(json_file, "w") as f:
+ json.dump(savedata, f, skipkeys=True, indent=4, sort_keys=True)
+
+ # Replace absolute path with relative in the file
+ exclude_path = os.path.join(d.getVar("COREBASE", True),'meta','lib','oeqa')
+ f1 = open(json_file,'r').read()
+ f2 = open(json_file,'w')
+ m = f1.replace(exclude_path,'oeqa')
+ f2.write(m)
+ f2.close()
+
+ # now start copying files
+ # we'll basically copy everything under meta/lib/oeqa, with these exceptions
+ # - oeqa/targetcontrol.py - not needed
+ # - oeqa/selftest - something else
+ # That means:
+ # - all tests from oeqa/runtime defined in TEST_SUITES (including from other layers)
+ # - the contents of oeqa/utils and oeqa/runtime/files
+ # - oeqa/oetest.py and oeqa/runexport.py (this will get copied to exportpath not exportpath/oeqa)
+ # - __init__.py files
+ bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/runtime/files"))
+ bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/utils"))
+ # copy test modules, this should cover tests in other layers too
+ bbpath = d.getVar("BBPATH", True).split(':')
+ for t in tc.testslist:
+ isfolder = False
+ if re.search("\w+\.\w+\.test_\S+", t):
+ t = '.'.join(t.split('.')[:3])
+ mod = pkgutil.get_loader(t)
+ # More depth than usual?
+ if (t.count('.') > 2):
+ for p in bbpath:
+ foldername = os.path.join(p, 'lib', os.sep.join(t.split('.')).rsplit(os.sep, 1)[0])
+ if os.path.isdir(foldername):
+ isfolder = True
+ target_folder = os.path.join(exportpath, "oeqa", "runtime", os.path.basename(foldername))
+ if not os.path.exists(target_folder):
+ oe.path.copytree(foldername, target_folder)
+ if not isfolder:
+ shutil.copy2(mod.path, os.path.join(exportpath, "oeqa/runtime"))
+ json_file = "%s.json" % mod.path.rsplit(".", 1)[0]
+ if os.path.isfile(json_file):
+ shutil.copy2(json_file, os.path.join(exportpath, "oeqa/runtime"))
+ # Get meta layer
+ for layer in d.getVar("BBLAYERS", True).split():
+ if os.path.basename(layer) == "meta":
+ meta_layer = layer
+ break
+ # copy oeqa/oetest.py and oeqa/runexported.py
+ oeqadir = os.path.join(meta_layer, "lib/oeqa")
+ shutil.copy2(os.path.join(oeqadir, "oetest.py"), os.path.join(exportpath, "oeqa"))
+ shutil.copy2(os.path.join(oeqadir, "runexported.py"), exportpath)
+ # copy oeqa/utils/*.py
+ for root, dirs, files in os.walk(os.path.join(oeqadir, "utils")):
+ for f in files:
+ if f.endswith(".py"):
+ shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/utils"))
+ # copy oeqa/runtime/files/*
+ for root, dirs, files in os.walk(os.path.join(oeqadir, "runtime/files")):
+ for f in files:
+ shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/runtime/files"))
+
+ # Create tar file for common parts of testexport
+ create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR", True))
+
+ # Copy packages needed for runtime testing
+ test_pkg_dir = d.getVar("TEST_NEEDED_PACKAGES_DIR", True)
+ if os.listdir(test_pkg_dir):
+ export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR", True), "packages")
+ oe.path.copytree(test_pkg_dir, export_pkg_dir)
+ # Create tar file for packages needed by the DUT
+ create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE", True), export_pkg_dir)
+
+ # Copy SDK
+ if d.getVar("TEST_EXPORT_SDK_ENABLED", True) == "1":
+ sdk_deploy = d.getVar("SDK_DEPLOY", True)
+ tarball_name = "%s.sh" % d.getVar("TEST_EXPORT_SDK_NAME", True)
+ tarball_path = os.path.join(sdk_deploy, tarball_name)
+ export_sdk_dir = os.path.join(d.getVar("TEST_EXPORT_DIR", True),
+ d.getVar("TEST_EXPORT_SDK_DIR", True))
+ bb.utils.mkdirhier(export_sdk_dir)
+ shutil.copy2(tarball_path, export_sdk_dir)
+
+ # Create tar file for the sdk
+ create_tarball(d, "testexport_sdk_%s.tar.gz" % d.getVar("SDK_ARCH", True), export_sdk_dir)
+
+ bb.plain("Exported tests to: %s" % exportpath)
+
+def testexport_main(d):
+ from oeqa.oetest import ExportTestContext
+ from oeqa.targetcontrol import get_target_controller
+ from oeqa.utils.dump import get_host_dumper
+
+ test_create_extract_dirs(d)
+ export_dir = d.getVar("TEST_EXPORT_DIR", True)
+ bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True))
+ bb.utils.remove(export_dir, recurse=True)
+ bb.utils.mkdirhier(export_dir)
+
+ # the robot dance
+ target = get_target_controller(d)
+
+ # test context
+ tc = ExportTestContext(d, target)
+
+ # this is a dummy load of tests
+ # we are doing that to find compile errors in the tests themselves
+ # before booting the image
+ try:
+ tc.loadTests()
+ except Exception as e:
+ import traceback
+ bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
+
+ tc.extract_packages()
+ exportTests(d,tc)
+
+def create_tarball(d, tar_name, src_dir):
+
+ import tarfile
+
+ tar_path = os.path.join(d.getVar("TEST_EXPORT_DIR", True), tar_name)
+ current_dir = os.getcwd()
+ src_dir = src_dir.rstrip('/')
+ dir_name = os.path.dirname(src_dir)
+ base_name = os.path.basename(src_dir)
+
+ os.chdir(dir_name)
+ tar = tarfile.open(tar_path, "w:gz")
+ tar.add(base_name)
+ tar.close()
+ os.chdir(current_dir)
+
+
+testexport_main[vardepsexclude] =+ "BB_ORIGENV"
+
+inherit testimage
diff --git a/import-layers/yocto-poky/meta/classes/testimage.bbclass b/import-layers/yocto-poky/meta/classes/testimage.bbclass
index e77bb1192..6b6781d86 100644
--- a/import-layers/yocto-poky/meta/classes/testimage.bbclass
+++ b/import-layers/yocto-poky/meta/classes/testimage.bbclass
@@ -8,7 +8,7 @@
# To use it add testimage to global inherit and call your target image with -c testimage
# You can try it out like this:
# - first build a qemu core-image-sato
-# - add INHERIT += "testimage" in local.conf
+# - add IMAGE_CLASSES += "testimage" in local.conf
# - then bitbake core-image-sato -c testimage. That will run a standard suite of tests.
# You can set (or append to) TEST_SUITES in local.conf to select the tests
@@ -30,7 +30,10 @@
TEST_LOG_DIR ?= "${WORKDIR}/testimage"
TEST_EXPORT_DIR ?= "${TMPDIR}/testimage/${PN}"
-TEST_EXPORT_ONLY ?= "0"
+TEST_INSTALL_TMP_DIR ?= "${WORKDIR}/testimage/install_tmp"
+TEST_NEEDED_PACKAGES_DIR ?= "${WORKDIR}/testimage/packages"
+TEST_EXTRACTED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/extracted"
+TEST_PACKAGED_DIR ?= "${TEST_NEEDED_PACKAGES_DIR}/packaged"
RPMTESTSUITE = "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'smart rpm', '', d)}"
MINTESTSUITE = "ping"
@@ -48,25 +51,33 @@ DEFAULT_TEST_SUITES_pn-core-image-sato = "${NETTESTSUITE} connman xorg parselogs
DEFAULT_TEST_SUITES_pn-core-image-sato-sdk = "${NETTESTSUITE} connman xorg perl python \
${DEVTESTSUITE} parselogs ${RPMTESTSUITE}"
DEFAULT_TEST_SUITES_pn-core-image-lsb-dev = "${NETTESTSUITE} pam perl python parselogs ${RPMTESTSUITE}"
-DEFAULT_TEST_SUITES_pn-core-image-lsb-sdk = "${NETTESTSUITE} buildcvs buildiptables buildsudoku \
+DEFAULT_TEST_SUITES_pn-core-image-lsb-sdk = "${NETTESTSUITE} buildcvs buildiptables buildgalculator \
connman ${DEVTESTSUITE} pam perl python parselogs ${RPMTESTSUITE}"
DEFAULT_TEST_SUITES_pn-meta-toolchain = "auto"
# aarch64 has no graphics
DEFAULT_TEST_SUITES_remove_aarch64 = "xorg"
-#qemumips is too slow for buildsudoku
-DEFAULT_TEST_SUITES_remove_qemumips = "buildsudoku"
+# qemumips is quite slow and has reached the timeout limit several times on the YP build cluster,
+# mitigate this by removing build tests for qemumips machines.
+MIPSREMOVE ??= "buildcvs buildiptables buildgalculator"
+DEFAULT_TEST_SUITES_remove_qemumips = "${MIPSREMOVE}"
+DEFAULT_TEST_SUITES_remove_qemumips64 = "${MIPSREMOVE}"
TEST_SUITES ?= "${DEFAULT_TEST_SUITES}"
TEST_QEMUBOOT_TIMEOUT ?= "1000"
TEST_TARGET ?= "qemu"
-TEST_TARGET_IP ?= ""
-TEST_SERVER_IP ?= ""
TESTIMAGEDEPENDS = ""
TESTIMAGEDEPENDS_qemuall = "qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot"
+TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
+TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
+TESTIMAGEDEPENDS_qemuall += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-native:do_populate_sysroot', '', d)}"
+TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'python-smartpm-native:do_populate_sysroot', '', d)}"
+TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot', '', d)}"
+TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'deb', 'apt-native:do_populate_sysroot', '', d)}"
+
TESTIMAGELOCK = "${TMPDIR}/testimage.lock"
TESTIMAGELOCK_qemuall = ""
@@ -103,102 +114,12 @@ testimage_dump_host () {
python do_testimage() {
testimage_main(d)
}
+
addtask testimage
do_testimage[nostamp] = "1"
do_testimage[depends] += "${TESTIMAGEDEPENDS}"
do_testimage[lockfiles] += "${TESTIMAGELOCK}"
-def exportTests(d,tc):
- import json
- import shutil
- import pkgutil
- import re
-
- exportpath = d.getVar("TEST_EXPORT_DIR", True)
-
- savedata = {}
- savedata["d"] = {}
- savedata["target"] = {}
- savedata["host_dumper"] = {}
- for key in tc.__dict__:
- # special cases
- if key not in ['d', 'target', 'host_dumper', 'suite']:
- savedata[key] = getattr(tc, key)
- savedata["target"]["ip"] = tc.target.ip or d.getVar("TEST_TARGET_IP", True)
- savedata["target"]["server_ip"] = tc.target.server_ip or d.getVar("TEST_SERVER_IP", True)
-
- keys = [ key for key in d.keys() if not key.startswith("_") and not key.startswith("BB") \
- and not key.startswith("B_pn") and not key.startswith("do_") and not d.getVarFlag(key, "func", True)]
- for key in keys:
- try:
- savedata["d"][key] = d.getVar(key, True)
- except bb.data_smart.ExpansionError:
- # we don't care about those anyway
- pass
-
- savedata["host_dumper"]["parent_dir"] = tc.host_dumper.parent_dir
- savedata["host_dumper"]["cmds"] = tc.host_dumper.cmds
-
- json_file = os.path.join(exportpath, "testdata.json")
- with open(json_file, "w") as f:
- json.dump(savedata, f, skipkeys=True, indent=4, sort_keys=True)
-
- # Replace absolute path with relative in the file
- exclude_path = os.path.join(d.getVar("COREBASE", True),'meta','lib','oeqa')
- f1 = open(json_file,'r').read()
- f2 = open(json_file,'w')
- m = f1.replace(exclude_path,'oeqa')
- f2.write(m)
- f2.close()
-
- # now start copying files
- # we'll basically copy everything under meta/lib/oeqa, with these exceptions
- # - oeqa/targetcontrol.py - not needed
- # - oeqa/selftest - something else
- # That means:
- # - all tests from oeqa/runtime defined in TEST_SUITES (including from other layers)
- # - the contents of oeqa/utils and oeqa/runtime/files
- # - oeqa/oetest.py and oeqa/runexport.py (this will get copied to exportpath not exportpath/oeqa)
- # - __init__.py files
- bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/runtime/files"))
- bb.utils.mkdirhier(os.path.join(exportpath, "oeqa/utils"))
- # copy test modules, this should cover tests in other layers too
- bbpath = d.getVar("BBPATH", True).split(':')
- for t in tc.testslist:
- isfolder = False
- if re.search("\w+\.\w+\.test_\S+", t):
- t = '.'.join(t.split('.')[:3])
- mod = pkgutil.get_loader(t)
- # More depth than usual?
- if (t.count('.') > 2):
- for p in bbpath:
- foldername = os.path.join(p, 'lib', os.sep.join(t.split('.')).rsplit(os.sep, 1)[0])
- if os.path.isdir(foldername):
- isfolder = True
- target_folder = os.path.join(exportpath, "oeqa", "runtime", os.path.basename(foldername))
- if not os.path.exists(target_folder):
- shutil.copytree(foldername, target_folder)
- if not isfolder:
- shutil.copy2(mod.filename, os.path.join(exportpath, "oeqa/runtime"))
- # copy __init__.py files
- oeqadir = pkgutil.get_loader("oeqa").filename
- shutil.copy2(os.path.join(oeqadir, "__init__.py"), os.path.join(exportpath, "oeqa"))
- shutil.copy2(os.path.join(oeqadir, "runtime/__init__.py"), os.path.join(exportpath, "oeqa/runtime"))
- # copy oeqa/oetest.py and oeqa/runexported.py
- shutil.copy2(os.path.join(oeqadir, "oetest.py"), os.path.join(exportpath, "oeqa"))
- shutil.copy2(os.path.join(oeqadir, "runexported.py"), exportpath)
- # copy oeqa/utils/*.py
- for root, dirs, files in os.walk(os.path.join(oeqadir, "utils")):
- for f in files:
- if f.endswith(".py"):
- shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/utils"))
- # copy oeqa/runtime/files/*
- for root, dirs, files in os.walk(os.path.join(oeqadir, "runtime/files")):
- for f in files:
- shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/runtime/files"))
-
- bb.plain("Exported tests to: %s" % exportpath)
-
def testimage_main(d):
import unittest
import os
@@ -210,11 +131,8 @@ def testimage_main(d):
from oeqa.utils.dump import get_host_dumper
pn = d.getVar("PN", True)
- export = oe.utils.conditional("TEST_EXPORT_ONLY", "1", True, False, d)
bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True))
- if export:
- bb.utils.remove(d.getVar("TEST_EXPORT_DIR", True), recurse=True)
- bb.utils.mkdirhier(d.getVar("TEST_EXPORT_DIR", True))
+ test_create_extract_dirs(d)
# we need the host dumper in test context
host_dumper = get_host_dumper(d)
@@ -234,29 +152,39 @@ def testimage_main(d):
import traceback
bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
- if export:
+ tc.extract_packages()
+ target.deploy()
+ try:
+ bootparams = None
+ if d.getVar('VIRTUAL-RUNTIME_init_manager', '') == 'systemd':
+ bootparams = 'systemd.log_level=debug systemd.log_target=console'
+ target.start(extra_bootparams=bootparams)
+ starttime = time.time()
+ result = tc.runTests()
+ stoptime = time.time()
+ if result.wasSuccessful():
+ bb.plain("%s - Ran %d test%s in %.3fs" % (pn, result.testsRun, result.testsRun != 1 and "s" or "", stoptime - starttime))
+ msg = "%s - OK - All required tests passed" % pn
+ skipped = len(result.skipped)
+ if skipped:
+ msg += " (skipped=%d)" % skipped
+ bb.plain(msg)
+ else:
+ bb.fatal("%s - FAILED - check the task log and the ssh log" % pn)
+ finally:
signal.signal(signal.SIGTERM, tc.origsigtermhandler)
- tc.origsigtermhandler = None
- exportTests(d,tc)
- else:
- target.deploy()
- try:
- target.start()
- starttime = time.time()
- result = tc.runTests()
- stoptime = time.time()
- if result.wasSuccessful():
- bb.plain("%s - Ran %d test%s in %.3fs" % (pn, result.testsRun, result.testsRun != 1 and "s" or "", stoptime - starttime))
- msg = "%s - OK - All required tests passed" % pn
- skipped = len(result.skipped)
- if skipped:
- msg += " (skipped=%d)" % skipped
- bb.plain(msg)
- else:
- raise bb.build.FuncFailed("%s - FAILED - check the task log and the ssh log" % pn )
- finally:
- signal.signal(signal.SIGTERM, tc.origsigtermhandler)
- target.stop()
+ target.stop()
+
+def test_create_extract_dirs(d):
+ install_path = d.getVar("TEST_INSTALL_TMP_DIR", True)
+ package_path = d.getVar("TEST_PACKAGED_DIR", True)
+ extracted_path = d.getVar("TEST_EXTRACTED_DIR", True)
+ bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True))
+ bb.utils.remove(package_path, recurse=True)
+ bb.utils.mkdirhier(install_path)
+ bb.utils.mkdirhier(package_path)
+ bb.utils.mkdirhier(extracted_path)
+
testimage_main[vardepsexclude] =+ "BB_ORIGENV"
diff --git a/import-layers/yocto-poky/meta/classes/testsdk.bbclass b/import-layers/yocto-poky/meta/classes/testsdk.bbclass
index f4dc2c36d..77c9203cf 100644
--- a/import-layers/yocto-poky/meta/classes/testsdk.bbclass
+++ b/import-layers/yocto-poky/meta/classes/testsdk.bbclass
@@ -44,7 +44,7 @@ def run_test_context(CTestContext, d, testdir, tcname, pn, *args):
msg += " (skipped=%d)" % skipped
bb.plain(msg)
else:
- raise bb.build.FuncFailed("%s - FAILED - check the task log and the commands log" % pn )
+ bb.fatal("%s - FAILED - check the task log and the commands log" % pn)
def testsdk_main(d):
import os
@@ -65,7 +65,7 @@ def testsdk_main(d):
try:
subprocess.check_output("cd %s; %s <<EOF\n./tc\nY\nEOF" % (sdktestdir, tcname), shell=True)
except subprocess.CalledProcessError as e:
- bb.fatal("Couldn't install the SDK:\n%s" % e.output)
+ bb.fatal("Couldn't install the SDK:\n%s" % e.output.decode("utf-8"))
try:
run_test_context(SDKTestContext, d, sdktestdir, tcname, pn)
@@ -113,10 +113,18 @@ def testsdkext_main(d):
testdir = d.expand("${WORKDIR}/testsdkext/")
bb.utils.remove(testdir, True)
bb.utils.mkdirhier(testdir)
+ sdkdir = os.path.join(testdir, 'tc')
try:
- subprocess.check_output("%s -y -d %s/tc" % (tcname, testdir), shell=True)
+ subprocess.check_output("%s -y -d %s" % (tcname, sdkdir), shell=True)
except subprocess.CalledProcessError as e:
- bb.fatal("Couldn't install the SDK EXT:\n%s" % e.output)
+ msg = "Couldn't install the extensible SDK:\n%s" % e.output.decode("utf-8")
+ logfn = os.path.join(sdkdir, 'preparing_build_system.log')
+ if os.path.exists(logfn):
+ msg += '\n\nContents of preparing_build_system.log:\n'
+ with open(logfn, 'r') as f:
+ for line in f:
+ msg += line
+ bb.fatal(msg)
try:
bb.plain("Running SDK Compatibility tests ...")
diff --git a/import-layers/yocto-poky/meta/classes/tinderclient.bbclass b/import-layers/yocto-poky/meta/classes/tinderclient.bbclass
index 2bc75fc65..917b74d88 100644
--- a/import-layers/yocto-poky/meta/classes/tinderclient.bbclass
+++ b/import-layers/yocto-poky/meta/classes/tinderclient.bbclass
@@ -10,10 +10,10 @@ def tinder_http_post(server, selector, content_type, body):
h.endheaders()
h.send(body)
errcode, errmsg, headers = h.getreply()
- #print errcode, errmsg, headers
+ #print(errcode, errmsg, headers)
return (errcode,errmsg, headers, h.file)
except:
- print "Error sending the report!"
+ print("Error sending the report!")
# try again
pass
@@ -82,7 +82,7 @@ def tinder_format_http_post(d,status,log):
# we only need on build_status.pl but sending it
# always does not hurt
try:
- f = file(d.getVar('TMPDIR',True)+'/tinder-machine.id', 'r')
+ f = open(d.getVar('TMPDIR',True)+'/tinder-machine.id', 'r')
id = f.read()
variables['machine_id'] = id
except:
@@ -111,11 +111,11 @@ def tinder_build_start(d):
selector = url + "/xml/build_start.pl"
- #print "selector %s and url %s" % (selector, url)
+ #print("selector %s and url %s" % (selector, url))
# now post it
errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print errcode, errmsg, headers
+ #print(errcode, errmsg, headers)
report = h_file.read()
# now let us find the machine id that was assigned to us
@@ -127,7 +127,7 @@ def tinder_build_start(d):
# now we will need to save the machine number
# we will override any previous numbers
- f = file(d.getVar('TMPDIR', True)+"/tinder-machine.id", 'w')
+ f = open(d.getVar('TMPDIR', True)+"/tinder-machine.id", 'w')
f.write(report)
@@ -147,8 +147,8 @@ def tinder_send_http(d, status, _log):
while len(new_log) > 0:
content_type, body = tinder_format_http_post(d,status,new_log[0:18000])
errcode, errmsg, headers, h_file = tinder_http_post(server,selector,content_type, body)
- #print errcode, errmsg, headers
- #print h.file.read()
+ #print(errcode, errmsg, headers)
+ #print(h.file.read())
new_log = new_log[18000:]
@@ -278,7 +278,7 @@ def tinder_do_tinder_report(event):
try:
# truncate the tinder log file
- f = file(event.data.getVar('TINDER_LOG', True), 'w')
+ f = open(event.data.getVar('TINDER_LOG', True), 'w')
f.write("")
f.close()
except:
@@ -287,7 +287,7 @@ def tinder_do_tinder_report(event):
try:
# write a status to the file. This is needed for the -k option
# of BitBake
- g = file(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
+ g = open(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
g.write("")
g.close()
except IOError:
@@ -319,14 +319,14 @@ def tinder_do_tinder_report(event):
log += "<--- TINDERBOX Package %s failed (FAILURE)\n" % event.data.getVar('PF', True)
status = 200
# remember the failure for the -k case
- h = file(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
+ h = open(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
h.write("200")
elif name == "BuildCompleted":
log += "Build Completed\n"
status = 100
# Check if we have a old status...
try:
- h = file(event.data.getVar('TMPDIR',True)+'/tinder-status', 'r')
+ h = open(event.data.getVar('TMPDIR',True)+'/tinder-status', 'r')
status = int(h.read())
except:
pass
@@ -342,7 +342,7 @@ def tinder_do_tinder_report(event):
log += "Error:Was Runtime: %d\n" % event.isRuntime()
status = 200
# remember the failure for the -k case
- h = file(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
+ h = open(event.data.getVar('TMPDIR', True)+"/tinder-status", 'w')
h.write("200")
# now post the log
diff --git a/import-layers/yocto-poky/meta/classes/toaster.bbclass b/import-layers/yocto-poky/meta/classes/toaster.bbclass
index 1a70f14a9..4bddf34e9 100644
--- a/import-layers/yocto-poky/meta/classes/toaster.bbclass
+++ b/import-layers/yocto-poky/meta/classes/toaster.bbclass
@@ -33,6 +33,7 @@ python toaster_layerinfo_dumpdata() {
def _get_git_branch(layer_path):
branch = subprocess.Popen("git symbolic-ref HEAD 2>/dev/null ", cwd=layer_path, shell=True, stdout=subprocess.PIPE).communicate()[0]
+ branch = branch.decode('utf-8')
branch = branch.replace('refs/heads/', '').rstrip()
return branch
@@ -135,60 +136,16 @@ python toaster_package_dumpdata() {
# 2. Dump output image files information
-python toaster_image_dumpdata() {
- """
- Image filename for output images is not standardized.
- image_types.bbclass will spell out IMAGE_CMD_xxx variables that actually
- have hardcoded ways to create image file names in them.
- So we look for files starting with the set name.
-
- We also look for other files in the images/ directory which don't
- match IMAGE_NAME, such as the kernel bzImage, modules tarball etc.
- """
-
- dir_to_walk = d.getVar('DEPLOY_DIR_IMAGE', True);
- image_name = d.getVar('IMAGE_NAME', True);
- image_info_data = {}
- artifact_info_data = {}
-
- # collect all images and artifacts in the images directory
- for dirpath, dirnames, filenames in os.walk(dir_to_walk):
- for filename in filenames:
- full_path = os.path.join(dirpath, filename)
- try:
- if filename.startswith(image_name):
- # image
- image_info_data[full_path] = os.stat(full_path).st_size
- else:
- # other non-image artifact
- if not os.path.islink(full_path):
- artifact_info_data[full_path] = os.stat(full_path).st_size
- except OSError as e:
- bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
-
- bb.event.fire(bb.event.MetadataEvent("ImageFileSize", image_info_data), d)
- bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize", artifact_info_data), d)
-}
-
python toaster_artifact_dumpdata() {
"""
- Dump data about artifacts in the SDK_DEPLOY directory
+ Dump data about SDK variables
"""
- dir_to_walk = d.getVar("SDK_DEPLOY", True)
- artifact_info_data = {}
-
- # collect all artifacts in the sdk directory
- for dirpath, dirnames, filenames in os.walk(dir_to_walk):
- for filename in filenames:
- full_path = os.path.join(dirpath, filename)
- try:
- if not os.path.islink(full_path):
- artifact_info_data[full_path] = os.stat(full_path).st_size
- except OSError as e:
- bb.event.fire(bb.event.MetadataEvent("OSErrorException", e), d)
+ event_data = {
+ "TOOLCHAIN_OUTPUTNAME": d.getVar("TOOLCHAIN_OUTPUTNAME", True)
+ }
- bb.event.fire(bb.event.MetadataEvent("ArtifactFileSize", artifact_info_data), d)
+ bb.event.fire(bb.event.MetadataEvent("SDKArtifactInfo", event_data), d)
}
# collect list of buildstats files based on fired events; when the build completes, collect all stats and fire an event with collected data
@@ -331,15 +288,22 @@ python toaster_buildhistory_dump() {
images[target][dependsname] = {'size': 0, 'depends' : []}
images[target][pname]['depends'].append((dependsname, deptype))
- with open("%s/files-in-image.txt" % installed_img_path, "r") as fin:
- for line in fin:
- lc = [ x for x in line.strip().split(" ") if len(x) > 0 ]
- if lc[0].startswith("l"):
- files[target]['syms'].append(lc)
- elif lc[0].startswith("d"):
- files[target]['dirs'].append(lc)
- else:
- files[target]['files'].append(lc)
+ # files-in-image.txt is only generated if an image file is created,
+ # so the file entries ('syms', 'dirs', 'files') for a target will be
+ # empty for rootfs builds and other "image" tasks which don't
+ # produce image files
+ # (e.g. "bitbake core-image-minimal -c populate_sdk")
+ files_in_image_path = "%s/files-in-image.txt" % installed_img_path
+ if os.path.exists(files_in_image_path):
+ with open(files_in_image_path, "r") as fin:
+ for line in fin:
+ lc = [ x for x in line.strip().split(" ") if len(x) > 0 ]
+ if lc[0].startswith("l"):
+ files[target]['syms'].append(lc)
+ elif lc[0].startswith("d"):
+ files[target]['dirs'].append(lc)
+ else:
+ files[target]['files'].append(lc)
for pname in images[target]:
if not pname in allpkgs:
@@ -360,15 +324,18 @@ python toaster_buildhistory_dump() {
}
-# dump information related to license manifest path
-
-python toaster_licensemanifest_dump() {
- deploy_dir = d.getVar('DEPLOY_DIR', True);
- image_name = d.getVar('IMAGE_NAME', True);
-
- data = { 'deploy_dir' : deploy_dir, 'image_name' : image_name }
-
- bb.event.fire(bb.event.MetadataEvent("LicenseManifestPath", data), d)
+# get list of artifacts from sstate manifest
+python toaster_artifacts() {
+ if e.taskname in ["do_deploy", "do_image_complete", "do_populate_sdk", "do_populate_sdk_ext"]:
+ d2 = d.createCopy()
+ d2.setVar('FILE', e.taskfile)
+ d2.setVar('SSTATE_MANMACH', d2.expand("${MACHINE}"))
+ manifest = oe.sstatesig.sstate_get_manifest_filename(e.taskname[3:], d2)[0]
+ if os.access(manifest, os.R_OK):
+ with open(manifest) as fmanifest:
+ artifacts = [fname.strip() for fname in fmanifest]
+ data = {"task": e.taskid, "artifacts": artifacts}
+ bb.event.fire(bb.event.MetadataEvent("TaskArtifacts", data), d2)
}
# set event handlers
@@ -381,17 +348,17 @@ toaster_collect_task_stats[eventmask] = "bb.event.BuildCompleted bb.build.TaskSu
addhandler toaster_buildhistory_dump
toaster_buildhistory_dump[eventmask] = "bb.event.BuildCompleted"
+addhandler toaster_artifacts
+toaster_artifacts[eventmask] = "bb.runqueue.runQueueTaskSkipped bb.runqueue.runQueueTaskCompleted"
+
do_packagedata_setscene[postfuncs] += "toaster_package_dumpdata "
do_packagedata_setscene[vardepsexclude] += "toaster_package_dumpdata "
do_package[postfuncs] += "toaster_package_dumpdata "
do_package[vardepsexclude] += "toaster_package_dumpdata "
-do_image_complete[postfuncs] += "toaster_image_dumpdata "
-do_image_complete[vardepsexclude] += "toaster_image_dumpdata "
-
-do_rootfs[postfuncs] += "toaster_licensemanifest_dump "
-do_rootfs[vardepsexclude] += "toaster_licensemanifest_dump "
-
do_populate_sdk[postfuncs] += "toaster_artifact_dumpdata "
do_populate_sdk[vardepsexclude] += "toaster_artifact_dumpdata "
+
+do_populate_sdk_ext[postfuncs] += "toaster_artifact_dumpdata "
+do_populate_sdk_ext[vardepsexclude] += "toaster_artifact_dumpdata " \ No newline at end of file
diff --git a/import-layers/yocto-poky/meta/classes/toolchain-scripts-base.bbclass b/import-layers/yocto-poky/meta/classes/toolchain-scripts-base.bbclass
new file mode 100644
index 000000000..2489b9dbe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/toolchain-scripts-base.bbclass
@@ -0,0 +1,11 @@
+#This function create a version information file
+toolchain_create_sdk_version () {
+ local versionfile=$1
+ rm -f $versionfile
+ touch $versionfile
+ echo 'Distro: ${DISTRO}' >> $versionfile
+ echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
+ echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
+ echo 'Timestamp: ${DATETIME}' >> $versionfile
+}
+toolchain_create_sdk_version[vardepsexclude] = "DATETIME"
diff --git a/import-layers/yocto-poky/meta/classes/toolchain-scripts.bbclass b/import-layers/yocto-poky/meta/classes/toolchain-scripts.bbclass
index 2e2c93af4..0e11f2d7a 100644
--- a/import-layers/yocto-poky/meta/classes/toolchain-scripts.bbclass
+++ b/import-layers/yocto-poky/meta/classes/toolchain-scripts.bbclass
@@ -1,4 +1,4 @@
-inherit siteinfo kernel-arch
+inherit toolchain-scripts-base siteinfo kernel-arch
# We want to be able to change the value of MULTIMACH_TARGET_SYS, because it
# doesn't always match our expectations... but we default to the stock value
@@ -6,9 +6,13 @@ REAL_MULTIMACH_TARGET_SYS ?= "${MULTIMACH_TARGET_SYS}"
TARGET_CC_ARCH_append_libc-uclibc = " -muclibc"
TARGET_CC_ARCH_append_libc-musl = " -mmusl"
+# default debug prefix map isn't valid in the SDK
+DEBUG_PREFIX_MAP = ""
+
# This function creates an environment-setup-script for use in a deployable SDK
toolchain_create_sdk_env_script () {
- # Create environment setup script
+ # Create environment setup script. Remember that $SDKTARGETSYSROOT should
+ # only be expanded on the target at runtime.
base_sbindir=${10:-${base_sbindir_nativesdk}}
base_bindir=${9:-${base_bindir_nativesdk}}
sbindir=${8:-${sbindir_nativesdk}}
@@ -29,7 +33,7 @@ toolchain_create_sdk_env_script () {
echo "export PATH=$sdkpathnative$bindir:$sdkpathnative$sbindir:$sdkpathnative$base_bindir:$sdkpathnative$base_sbindir:$sdkpathnative$bindir/../${HOST_SYS}/bin:$sdkpathnative$bindir/${TARGET_SYS}"$EXTRAPATH':$PATH' >> $script
echo "export CCACHE_PATH=$sdkpathnative$bindir:$sdkpathnative$bindir/../${HOST_SYS}/bin:$sdkpathnative$bindir/${TARGET_SYS}"$EXTRAPATH':$CCACHE_PATH' >> $script
echo 'export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT' >> $script
- echo 'export PKG_CONFIG_PATH=$SDKTARGETSYSROOT'"$libdir"'/pkgconfig' >> $script
+ echo 'export PKG_CONFIG_PATH=$SDKTARGETSYSROOT'"$libdir"'/pkgconfig:$SDKTARGETSYSROOT'"$prefix"'/share/pkgconfig' >> $script
echo 'export CONFIG_SITE=${SDKPATH}/site-config-'"${multimach_target_sys}" >> $script
echo "export OECORE_NATIVE_SYSROOT=\"$sdkpathnative\"" >> $script
echo 'export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT"' >> $script
@@ -89,19 +93,19 @@ toolchain_shared_env_script () {
# Append environment subscripts
if [ -d "\$OECORE_TARGET_SYSROOT/environment-setup.d" ]; then
for envfile in \$OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do
- source \$envfile
+ . \$envfile
done
fi
if [ -d "\$OECORE_NATIVE_SYSROOT/environment-setup.d" ]; then
for envfile in \$OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do
- source \$envfile
+ . \$envfile
done
fi
EOF
}
#we get the cached site config in the runtime
-TOOLCHAIN_CONFIGSITE_NOCACHE = "${@siteinfo_get_files(d, True)}"
+TOOLCHAIN_CONFIGSITE_NOCACHE = "${@siteinfo_get_files(d)}"
TOOLCHAIN_CONFIGSITE_SYSROOTCACHE = "${STAGING_DIR}/${MLPREFIX}${MACHINE}/${target_datadir}/${TARGET_SYS}_config_site.d"
TOOLCHAIN_NEED_CONFIGSITE_CACHE ??= "virtual/${MLPREFIX}libc ncurses"
@@ -132,18 +136,6 @@ toolchain_create_sdk_siteconfig () {
# The immediate expansion above can result in unwanted path dependencies here
toolchain_create_sdk_siteconfig[vardepsexclude] = "TOOLCHAIN_CONFIGSITE_SYSROOTCACHE"
-#This function create a version information file
-toolchain_create_sdk_version () {
- local versionfile=$1
- rm -f $versionfile
- touch $versionfile
- echo 'Distro: ${DISTRO}' >> $versionfile
- echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
- echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
- echo 'Timestamp: ${DATETIME}' >> $versionfile
-}
-toolchain_create_sdk_version[vardepsexclude] = "DATETIME"
-
python __anonymous () {
import oe.classextend
deps = ""
diff --git a/import-layers/yocto-poky/meta/classes/uboot-config.bbclass b/import-layers/yocto-poky/meta/classes/uboot-config.bbclass
index cb061af34..3f760f2fb 100644
--- a/import-layers/yocto-poky/meta/classes/uboot-config.bbclass
+++ b/import-layers/yocto-poky/meta/classes/uboot-config.bbclass
@@ -3,7 +3,7 @@
# The format to specify it, in the machine, is:
#
# UBOOT_CONFIG ??= <default>
-# UBOOT_CONFIG[foo] = "config,images"
+# UBOOT_CONFIG[foo] = "config,images,binary"
#
# or
#
@@ -11,9 +11,13 @@
#
# Copyright 2013, 2014 (C) O.S. Systems Software LTDA.
+UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
+
python () {
ubootmachine = d.getVar("UBOOT_MACHINE", True)
ubootconfigflags = d.getVarFlags('UBOOT_CONFIG')
+ ubootbinary = d.getVar('UBOOT_BINARY', True)
+ ubootbinaries = d.getVar('UBOOT_BINARIES', True)
# The "doc" varflag is special, we don't want to see it here
ubootconfigflags.pop('doc', None)
@@ -27,6 +31,9 @@ python () {
if ubootmachine and ubootconfigflags:
raise bb.parse.SkipPackage("You cannot use UBOOT_MACHINE and UBOOT_CONFIG at the same time.")
+ if ubootconfigflags and ubootbinaries:
+ raise bb.parse.SkipPackage("You cannot use UBOOT_BINARIES as it is internal to uboot_config.bbclass.")
+
if not ubootconfigflags:
return
@@ -36,13 +43,19 @@ python () {
for f, v in ubootconfigflags.items():
if config == f:
items = v.split(',')
- if items[0] and len(items) > 2:
- raise bb.parse.SkipPackage('Only config,images can be specified!')
+ if items[0] and len(items) > 3:
+ raise bb.parse.SkipPackage('Only config,images,binary can be specified!')
d.appendVar('UBOOT_MACHINE', ' ' + items[0])
# IMAGE_FSTYPES appending
if len(items) > 1 and items[1]:
bb.debug(1, "Appending '%s' to IMAGE_FSTYPES." % items[1])
d.appendVar('IMAGE_FSTYPES', ' ' + items[1])
+ if len(items) > 2 and items[2]:
+ bb.debug(1, "Appending '%s' to UBOOT_BINARIES." % items[2])
+ d.appendVar('UBOOT_BINARIES', ' ' + items[2])
+ else:
+ bb.debug(1, "Appending '%s' to UBOOT_BINARIES." % ubootbinary)
+ d.appendVar('UBOOT_BINARIES', ' ' + ubootbinary)
break
elif len(ubootconfig) == 0:
raise bb.parse.SkipPackage('You must set a default in UBOOT_CONFIG.')
diff --git a/import-layers/yocto-poky/meta/classes/uboot-extlinux-config.bbclass b/import-layers/yocto-poky/meta/classes/uboot-extlinux-config.bbclass
new file mode 100644
index 000000000..df91386c0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/uboot-extlinux-config.bbclass
@@ -0,0 +1,126 @@
+# uboot-extlinux-config.bbclass
+#
+# This class allow the extlinux.conf generation for U-Boot use. The
+# U-Boot support for it is given to allow the Generic Distribution
+# Configuration specification use by OpenEmbedded-based products.
+#
+# External variables:
+#
+# UBOOT_EXTLINUX_CONSOLE - Set to "console=ttyX" to change kernel boot
+# default console.
+# UBOOT_EXTLINUX_LABELS - A list of targets for the automatic config.
+# UBOOT_EXTLINUX_KERNEL_ARGS - Add additional kernel arguments.
+# UBOOT_EXTLINUX_KERNEL_IMAGE - Kernel image name.
+# UBOOT_EXTLINUX_FDTDIR - Device tree directory.
+# UBOOT_EXTLINUX_INITRD - Indicates a list of filesystem images to
+# concatenate and use as an initrd (optional).
+# UBOOT_EXTLINUX_MENU_DESCRIPTION - Name to use as description.
+# UBOOT_EXTLINUX_ROOT - Root kernel cmdline.
+#
+# If there's only one label system will boot automatically and menu won't be
+# created. If you want to use more than one labels, e.g linux and alternate,
+# use overrides to set menu description, console and others variables.
+#
+# Ex:
+#
+# UBOOT_EXTLINUX_LABELS ??= "default fallback"
+#
+# UBOOT_EXTLINUX_KERNEL_IMAGE_default ??= "../zImage"
+# UBOOT_EXTLINUX_MENU_DESCRIPTION_default ??= "Linux Default"
+#
+# UBOOT_EXTLINUX_KERNEL_IMAGE_fallback ??= "../zImage-fallback"
+# UBOOT_EXTLINUX_MENU_DESCRIPTION_fallback ??= "Linux Fallback"
+#
+# Results:
+#
+# menu title Select the boot mode
+# LABEL Linux Default
+# KERNEL ../zImage
+# FDTDIR ../
+# APPEND root=/dev/mmcblk2p2 rootwait rw console=${console}
+# LABEL Linux Fallback
+# KERNEL ../zImage-fallback
+# FDTDIR ../
+# APPEND root=/dev/mmcblk2p2 rootwait rw console=${console}
+#
+# Copyright (C) 2016, O.S. Systems Software LTDA. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+#
+# The kernel has an internal default console, which you can override with
+# a console=...some_tty...
+UBOOT_EXTLINUX_CONSOLE ??= "console=${console}"
+UBOOT_EXTLINUX_LABELS ??= "linux"
+UBOOT_EXTLINUX_FDTDIR ??= "../"
+UBOOT_EXTLINUX_KERNEL_IMAGE ??= "../${KERNEL_IMAGETYPE}"
+UBOOT_EXTLINUX_KERNEL_ARGS ??= "rootwait rw"
+UBOOT_EXTLINUX_MENU_DESCRIPTION_linux ??= "${DISTRO_NAME}"
+
+UBOOT_EXTLINUX_CONFIG = "${B}/extlinux.conf"
+
+python create_extlinux_config() {
+ if d.getVar("UBOOT_EXTLINUX", True) != "1":
+ return
+
+ if not d.getVar('WORKDIR', True):
+ bb.error("WORKDIR not defined, unable to package")
+
+ labels = d.getVar('UBOOT_EXTLINUX_LABELS', True)
+ if not labels:
+ bb.fatal("UBOOT_EXTLINUX_LABELS not defined, nothing to do")
+
+ if not labels.strip():
+ bb.fatal("No labels, nothing to do")
+
+ cfile = d.getVar('UBOOT_EXTLINUX_CONFIG', True)
+ if not cfile:
+ bb.fatal('Unable to read UBOOT_EXTLINUX_CONFIG')
+
+ try:
+ with open(cfile, 'w') as cfgfile:
+ cfgfile.write('# Generic Distro Configuration file generated by OpenEmbedded\n')
+
+ if len(labels.split()) > 1:
+ cfgfile.write('menu title Select the boot mode\n')
+
+ for label in labels.split():
+ localdata = bb.data.createCopy(d)
+
+ overrides = localdata.getVar('OVERRIDES', True)
+ if not overrides:
+ bb.fatal('OVERRIDES not defined')
+
+ localdata.setVar('OVERRIDES', label + ':' + overrides)
+ bb.data.update_data(localdata)
+
+ extlinux_console = localdata.getVar('UBOOT_EXTLINUX_CONSOLE', True)
+
+ menu_description = localdata.getVar('UBOOT_EXTLINUX_MENU_DESCRIPTION', True)
+ if not menu_description:
+ menu_description = label
+
+ root = localdata.getVar('UBOOT_EXTLINUX_ROOT', True)
+ if not root:
+ bb.fatal('UBOOT_EXTLINUX_ROOT not defined')
+
+ kernel_image = localdata.getVar('UBOOT_EXTLINUX_KERNEL_IMAGE', True)
+ fdtdir = localdata.getVar('UBOOT_EXTLINUX_FDTDIR', True)
+ if fdtdir:
+ cfgfile.write('LABEL %s\n\tKERNEL %s\n\tFDTDIR %s\n' %
+ (menu_description, kernel_image, fdtdir))
+ else:
+ cfgfile.write('LABEL %s\n\tKERNEL %s\n' % (menu_description, kernel_image))
+
+ kernel_args = localdata.getVar('UBOOT_EXTLINUX_KERNEL_ARGS', True)
+
+ initrd = localdata.getVar('UBOOT_EXTLINUX_INITRD', True)
+ if initrd:
+ cfgfile.write('\tINITRD %s\n'% initrd)
+
+ kernel_args = root + " " + kernel_args
+ cfgfile.write('\tAPPEND %s %s\n' % (kernel_args, extlinux_console))
+
+ except OSError:
+ bb.fatal('Unable to open %s' % (cfile))
+}
+
+do_install[prefuncs] += "create_extlinux_config"
diff --git a/import-layers/yocto-poky/meta/classes/uboot-sign.bbclass b/import-layers/yocto-poky/meta/classes/uboot-sign.bbclass
new file mode 100644
index 000000000..3c56db887
--- /dev/null
+++ b/import-layers/yocto-poky/meta/classes/uboot-sign.bbclass
@@ -0,0 +1,95 @@
+# This file is part of U-Boot verified boot support and is intended to be
+# inherited from u-boot recipe and from kernel-fitimage.bbclass.
+#
+# The signature procedure requires the user to generate an RSA key and
+# certificate in a directory and to define the following variable:
+#
+# UBOOT_SIGN_KEYDIR = "/keys/directory"
+# UBOOT_SIGN_KEYNAME = "dev" # keys name in keydir (eg. "dev.crt", "dev.key")
+# UBOOT_MKIMAGE_DTCOPTS = "-I dts -O dtb -p 2000"
+# UBOOT_SIGN_ENABLE = "1"
+#
+# As verified boot depends on fitImage generation, following is also required:
+#
+# KERNEL_CLASSES ?= " kernel-fitimage "
+# KERNEL_IMAGETYPE ?= "fitImage"
+#
+# The signature support is limited to the use of CONFIG_OF_SEPARATE in U-Boot.
+#
+# The tasks sequence is set as below, using DEPLOY_IMAGE_DIR as common place to
+# treat the device tree blob:
+#
+# u-boot:do_deploy_dtb
+# u-boot:do_deploy
+# virtual/kernel:do_assemble_fitimage
+# u-boot:do_concat_dtb
+# u-boot:do_install
+#
+# For more details on signature process, please refer to U-boot documentation.
+
+# Signature activation.
+UBOOT_SIGN_ENABLE ?= "0"
+
+# Default value for deployment filenames.
+UBOOT_DTB_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.dtb"
+UBOOT_DTB_BINARY ?= "u-boot.dtb"
+UBOOT_DTB_SYMLINK ?= "u-boot-${MACHINE}.dtb"
+UBOOT_NODTB_IMAGE ?= "u-boot-nodtb-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
+UBOOT_NODTB_BINARY ?= "u-boot-nodtb.${UBOOT_SUFFIX}"
+UBOOT_NODTB_SYMLINK ?= "u-boot-nodtb-${MACHINE}.${UBOOT_SUFFIX}"
+
+#
+# Following is relevant only for u-boot recipes:
+#
+
+do_deploy_dtb () {
+ mkdir -p ${DEPLOYDIR}
+ cd ${DEPLOYDIR}
+
+ if [ -f ${B}/${UBOOT_DTB_BINARY} ]; then
+ install ${B}/${UBOOT_DTB_BINARY} ${DEPLOYDIR}/${UBOOT_DTB_IMAGE}
+ rm -f ${UBOOT_DTB_BINARY} ${UBOOT_DTB_SYMLINK}
+ ln -sf ${UBOOT_DTB_IMAGE} ${UBOOT_DTB_SYMLINK}
+ ln -sf ${UBOOT_DTB_IMAGE} ${UBOOT_DTB_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_NODTB_BINARY} ]; then
+ install ${B}/${UBOOT_NODTB_BINARY} ${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}
+ rm -f ${UBOOT_NODTB_BINARY} ${UBOOT_NODTB_SYMLINK}
+ ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_SYMLINK}
+ ln -sf ${UBOOT_NODTB_IMAGE} ${UBOOT_NODTB_BINARY}
+ fi
+}
+
+do_concat_dtb () {
+ # Concatenate U-Boot w/o DTB & DTB with public key
+ # (cf. kernel-fitimage.bbclass for more details)
+ if [ "x${UBOOT_SIGN_ENABLE}" = "x1" ]; then
+ if [ "x${UBOOT_SUFFIX}" = "ximg" -o "x${UBOOT_SUFFIX}" = "xrom" ] && \
+ [ -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then
+ cd ${B}
+ oe_runmake EXT_DTB=${DEPLOYDIR}/${UBOOT_DTB_IMAGE}
+ install ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ install ${S}/${UBOOT_BINARY} ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
+ elif [ -e "${DEPLOYDIR}/${UBOOT_NODTB_IMAGE}" -a -e "${DEPLOYDIR}/${UBOOT_DTB_IMAGE}" ]; then
+ cd ${DEPLOYDIR}
+ cat ${UBOOT_NODTB_IMAGE} ${UBOOT_DTB_IMAGE} | tee ${B}/${UBOOT_BINARY} > ${UBOOT_IMAGE}
+ else
+ bbwarn "Failure while adding public key to u-boot binary. Verified boot won't be available."
+ fi
+ fi
+}
+
+python () {
+ uboot_pn = d.getVar('PREFERRED_PROVIDER_u-boot', True) or 'u-boot'
+ if d.getVar('UBOOT_SIGN_ENABLE', True) == '1' and d.getVar('PN', True) == uboot_pn:
+ kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel', True)
+
+ # u-boot.dtb and u-boot-nodtb.bin are deployed _before_ do_deploy
+ # Thus, do_deploy_setscene will also populate them in DEPLOY_IMAGE_DIR
+ bb.build.addtask('do_deploy_dtb', 'do_deploy', 'do_compile', d)
+
+ # do_concat_dtb is scheduled _before_ do_install as it overwrite the
+ # u-boot.bin in both DEPLOYDIR and DEPLOY_IMAGE_DIR.
+ bb.build.addtask('do_concat_dtb', 'do_install', None, d)
+ d.appendVarFlag('do_concat_dtb', 'depends', ' %s:do_assemble_fitimage' % kernel_pn)
+}
diff --git a/import-layers/yocto-poky/meta/classes/update-alternatives.bbclass b/import-layers/yocto-poky/meta/classes/update-alternatives.bbclass
index 70a818572..1fdd68131 100644
--- a/import-layers/yocto-poky/meta/classes/update-alternatives.bbclass
+++ b/import-layers/yocto-poky/meta/classes/update-alternatives.bbclass
@@ -71,14 +71,14 @@ def gen_updatealternativesvardeps(d):
# First compute them for non_pkg versions
for v in vars:
- for flag in (d.getVarFlags(v) or {}):
+ for flag in sorted((d.getVarFlags(v) or {}).keys()):
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
continue
d.appendVar('%s_VARDEPS' % (v), ' %s:%s' % (flag, d.getVarFlag(v, flag, False)))
for p in pkgs:
for v in vars:
- for flag in (d.getVarFlags("%s_%s" % (v,p)) or {}):
+ for flag in sorted((d.getVarFlags("%s_%s" % (v,p)) or {}).keys()):
if flag == "doc" or flag == "vardeps" or flag == "vardepsexp":
continue
d.appendVar('%s_VARDEPS_%s' % (v,p), ' %s:%s' % (flag, d.getVarFlag('%s_%s' % (v,p), flag, False)))
diff --git a/import-layers/yocto-poky/meta/classes/update-rc.d.bbclass b/import-layers/yocto-poky/meta/classes/update-rc.d.bbclass
index 2a0a74a5f..321924bb3 100644
--- a/import-layers/yocto-poky/meta/classes/update-rc.d.bbclass
+++ b/import-layers/yocto-poky/meta/classes/update-rc.d.bbclass
@@ -1,6 +1,7 @@
UPDATERCPN ?= "${PN}"
-DEPENDS_append_class-target = " update-rc.d-native update-rc.d initscripts"
+DEPENDS_append_class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', ' update-rc.d-native update-rc.d initscripts', '', d)}"
+
UPDATERCD = "update-rc.d"
UPDATERCD_class-cross = ""
UPDATERCD_class-native = ""
@@ -12,7 +13,7 @@ INIT_D_DIR = "${sysconfdir}/init.d"
updatercd_preinst() {
if [ -z "$D" -a -f "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then
- ${INIT_D_DIR}/${INITSCRIPT_NAME} stop
+ ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || :
fi
if type update-rc.d >/dev/null 2>/dev/null; then
if [ -n "$D" ]; then
@@ -36,8 +37,8 @@ fi
}
updatercd_prerm() {
-if [ -z "$D" ]; then
- ${INIT_D_DIR}/${INITSCRIPT_NAME} stop
+if [ -z "$D" -a -x "${INIT_D_DIR}/${INITSCRIPT_NAME}" ]; then
+ ${INIT_D_DIR}/${INITSCRIPT_NAME} stop || :
fi
}
@@ -56,15 +57,15 @@ fi
def update_rc_after_parse(d):
if d.getVar('INITSCRIPT_PACKAGES', False) == None:
if d.getVar('INITSCRIPT_NAME', False) == None:
- raise bb.build.FuncFailed("%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % d.getVar('FILE', False))
+ bb.fatal("%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % d.getVar('FILE', False))
if d.getVar('INITSCRIPT_PARAMS', False) == None:
- raise bb.build.FuncFailed("%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % d.getVar('FILE', False))
+ bb.fatal("%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % d.getVar('FILE', False))
python __anonymous() {
update_rc_after_parse(d)
}
-PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
+PACKAGESPLITFUNCS_prepend = "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'populate_packages_updatercd ', '', d)}"
PACKAGESPLITFUNCS_remove_class-nativesdk = "populate_packages_updatercd "
populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst"
@@ -120,8 +121,7 @@ python populate_packages_updatercd () {
# Check that this class isn't being inhibited (generally, by
# systemd.bbclass) before doing any work.
- if bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d) or \
- not d.getVar("INHIBIT_UPDATERCD_BBCLASS", True):
+ if not d.getVar("INHIBIT_UPDATERCD_BBCLASS", True):
pkgs = d.getVar('INITSCRIPT_PACKAGES', True)
if pkgs == None:
pkgs = d.getVar('UPDATERCPN', True)
diff --git a/import-layers/yocto-poky/meta/classes/useradd-staticids.bbclass b/import-layers/yocto-poky/meta/classes/useradd-staticids.bbclass
index a9b506d05..afb580aed 100644
--- a/import-layers/yocto-poky/meta/classes/useradd-staticids.bbclass
+++ b/import-layers/yocto-poky/meta/classes/useradd-staticids.bbclass
@@ -4,6 +4,7 @@ def update_useradd_static_config(d):
import argparse
import itertools
import re
+ import errno
class myArgumentParser( argparse.ArgumentParser ):
def _print_message(self, message, file=None):
@@ -15,7 +16,7 @@ def update_useradd_static_config(d):
error(message)
def error(self, message):
- raise bb.build.FuncFailed(message)
+ bb.fatal(message)
def list_extend(iterable, length, obj = None):
"""Ensure that iterable is the specified length by extending with obj
@@ -30,22 +31,33 @@ def update_useradd_static_config(d):
are set)."""
id_table = dict()
for conf in file_list.split():
- if os.path.exists(conf):
- f = open(conf, "r")
- for line in f:
- if line.startswith('#'):
- continue
- # Make sure there always are at least exp_fields elements in
- # the field list. This allows for leaving out trailing
- # colons in the files.
- fields = list_extend(line.rstrip().split(":"), exp_fields)
- if fields[0] not in id_table:
- id_table[fields[0]] = fields
- else:
- id_table[fields[0]] = list(itertools.imap(lambda x, y: x or y, fields, id_table[fields[0]]))
+ try:
+ with open(conf, "r") as f:
+ for line in f:
+ if line.startswith('#'):
+ continue
+ # Make sure there always are at least exp_fields
+ # elements in the field list. This allows for leaving
+ # out trailing colons in the files.
+ fields = list_extend(line.rstrip().split(":"), exp_fields)
+ if fields[0] not in id_table:
+ id_table[fields[0]] = fields
+ else:
+ id_table[fields[0]] = list(map(lambda x, y: x or y, fields, id_table[fields[0]]))
+ except IOError as e:
+ if e.errno == errno.ENOENT:
+ pass
return id_table
+ def handle_missing_id(id, type, pkg):
+ # For backwards compatibility we accept "1" in addition to "error"
+ if d.getVar('USERADD_ERROR_DYNAMIC', True) == 'error' or d.getVar('USERADD_ERROR_DYNAMIC', True) == '1':
+ #bb.error("Skipping recipe %s, package %s which adds %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
+ bb.fatal("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
+ elif d.getVar('USERADD_ERROR_DYNAMIC', True) == 'warn':
+ bb.warn("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
+
# We parse and rewrite the useradd components
def rewrite_useradd(params):
# The following comes from --help on useradd from shadow
@@ -93,9 +105,9 @@ def update_useradd_static_config(d):
if not param:
continue
try:
- uaargs = parser.parse_args(re.split('''[ \t]*(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', param))
+ uaargs = parser.parse_args(re.split('''[ \t]+(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', param))
except:
- raise bb.build.FuncFailed("%s: Unable to parse arguments for USERADD_PARAM_%s: '%s'" % (d.getVar('PN', True), pkg, param))
+ bb.fatal("%s: Unable to parse arguments for USERADD_PARAM_%s: '%s'" % (d.getVar('PN', True), pkg, param))
# Read all passwd files specified in USERADD_UID_TABLES or files/passwd
# Use the standard passwd layout:
@@ -112,6 +124,8 @@ def update_useradd_static_config(d):
users = merge_files(get_passwd_list(d), 7)
if uaargs.LOGIN not in users:
+ if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
+ handle_missing_id(uaargs.LOGIN, 'user', pkg)
continue
field = users[uaargs.LOGIN]
@@ -161,9 +175,8 @@ def update_useradd_static_config(d):
uaargs.shell = field[6] or uaargs.shell
# Should be an error if a specific option is set...
- if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not ((uaargs.uid and uaargs.uid.isdigit()) and uaargs.gid):
- #bb.error("Skipping recipe %s, package %s which adds username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
- raise bb.build.FuncFailed("%s - %s: Username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
+ if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
+ handle_missing_id(uaargs.LOGIN, 'user', pkg)
# Reconstruct the args...
newparam = ['', ' --defaults'][uaargs.defaults]
@@ -227,9 +240,9 @@ def update_useradd_static_config(d):
continue
try:
# If we're processing multiple lines, we could have left over values here...
- gaargs = parser.parse_args(re.split('''[ \t]*(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', param))
+ gaargs = parser.parse_args(re.split('''[ \t]+(?=(?:[^'"]|'[^']*'|"[^"]*")*$)''', param))
except:
- raise bb.build.FuncFailed("%s: Unable to parse arguments for GROUPADD_PARAM_%s: '%s'" % (d.getVar('PN', True), pkg, param))
+ bb.fatal("%s: Unable to parse arguments for GROUPADD_PARAM_%s: '%s'" % (d.getVar('PN', True), pkg, param))
# Read all group files specified in USERADD_GID_TABLES or files/group
# Use the standard group layout:
@@ -244,6 +257,8 @@ def update_useradd_static_config(d):
groups = merge_files(get_group_list(d), 4)
if gaargs.GROUP not in groups:
+ if not gaargs.gid or not gaargs.gid.isdigit():
+ handle_missing_id(gaargs.GROUP, 'group', pkg)
continue
field = groups[gaargs.GROUP]
@@ -253,9 +268,8 @@ def update_useradd_static_config(d):
bb.warn("%s: Changing groupname %s's gid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), gaargs.GROUP, gaargs.gid, field[2]))
gaargs.gid = field[2]
- if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not (gaargs.gid and gaargs.gid.isdigit()):
- #bb.error("Skipping recipe %s, package %s which adds groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
- raise bb.build.FuncFailed("%s - %s: Groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
+ if not gaargs.gid or not gaargs.gid.isdigit():
+ handle_missing_id(gaargs.GROUP, 'group', pkg)
# Reconstruct the args...
newparam = ['', ' --force'][gaargs.force]
@@ -271,6 +285,19 @@ def update_useradd_static_config(d):
return ";".join(newparams).strip()
+ # The parsing of the current recipe depends on the content of
+ # the files listed in USERADD_UID/GID_TABLES. We need to tell bitbake
+ # about that explicitly to trigger re-parsing and thus re-execution of
+ # this code when the files change.
+ bbpath = d.getVar('BBPATH', True)
+ for varname, default in (('USERADD_UID_TABLES', 'files/passwd'),
+ ('USERADD_GID_TABLES', 'files/group')):
+ tables = d.getVar(varname, True)
+ if not tables:
+ tables = default
+ for conf_file in tables.split():
+ bb.parse.mark_dependency(d, bb.utils.which(bbpath, conf_file))
+
# Load and process the users and groups, rewriting the adduser/addgroup params
useradd_packages = d.getVar('USERADD_PACKAGES', True)
diff --git a/import-layers/yocto-poky/meta/classes/useradd.bbclass b/import-layers/yocto-poky/meta/classes/useradd.bbclass
index ee402acef..3cff08e00 100644
--- a/import-layers/yocto-poky/meta/classes/useradd.bbclass
+++ b/import-layers/yocto-poky/meta/classes/useradd.bbclass
@@ -3,11 +3,7 @@ inherit useradd_base
# base-passwd-cross provides the default passwd and group files in the
# target sysroot, and shadow -native and -sysroot provide the utilities
# and support files needed to add and modify user and group accounts
-DEPENDS_append = "${USERADDDEPENDS}"
-USERADDDEPENDS = " base-files shadow-native shadow-sysroot shadow"
-USERADDDEPENDS_class-cross = ""
-USERADDDEPENDS_class-native = ""
-USERADDDEPENDS_class-nativesdk = ""
+DEPENDS_append_class-target = " base-files shadow-native shadow-sysroot shadow"
# This preinstall function can be run in four different contexts:
#
@@ -54,15 +50,15 @@ if test "x`echo $GROUPADD_PARAM | tr -d '[:space:]'`" != "x"; then
echo "Running groupadd commands..."
# Invoke multiple instances of groupadd for parameter lists
# separated by ';'
- opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1`
- remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-`
+ opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
while test "x$opts" != "x"; do
perform_groupadd "$SYSROOT" "$OPT $opts"
if test "x$opts" = "x$remaining"; then
break
fi
- opts=`echo "$remaining" | cut -d ';' -f 1`
- remaining=`echo "$remaining" | cut -d ';' -f 2-`
+ opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
done
fi
@@ -70,15 +66,15 @@ if test "x`echo $USERADD_PARAM | tr -d '[:space:]'`" != "x"; then
echo "Running useradd commands..."
# Invoke multiple instances of useradd for parameter lists
# separated by ';'
- opts=`echo "$USERADD_PARAM" | cut -d ';' -f 1`
- remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2-`
+ opts=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
while test "x$opts" != "x"; do
perform_useradd "$SYSROOT" "$OPT $opts"
if test "x$opts" = "x$remaining"; then
break
fi
- opts=`echo "$remaining" | cut -d ';' -f 1`
- remaining=`echo "$remaining" | cut -d ';' -f 2-`
+ opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
done
fi
@@ -86,15 +82,15 @@ if test "x`echo $GROUPMEMS_PARAM | tr -d '[:space:]'`" != "x"; then
echo "Running groupmems commands..."
# Invoke multiple instances of groupmems for parameter lists
# separated by ';'
- opts=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 1`
- remaining=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 2-`
+ opts=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$GROUPMEMS_PARAM" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
while test "x$opts" != "x"; do
perform_groupmems "$SYSROOT" "$OPT $opts"
if test "x$opts" = "x$remaining"; then
break
fi
- opts=`echo "$remaining" | cut -d ';' -f 1`
- remaining=`echo "$remaining" | cut -d ';' -f 2-`
+ opts=`echo "$remaining" | cut -d ';' -f 1 | sed -e 's#[ \t]*$##'`
+ remaining=`echo "$remaining" | cut -d ';' -f 2- | sed -e 's#[ \t]*$##'`
done
fi
}
@@ -103,7 +99,7 @@ useradd_sysroot () {
# Pseudo may (do_install) or may not (do_populate_sysroot_setscene) be running
# at this point so we're explicit about the environment so pseudo can load if
# not already present.
- export PSEUDO="${FAKEROOTENV} PSEUDO_LOCALSTATEDIR=${STAGING_DIR_TARGET}${localstatedir}/pseudo ${STAGING_DIR_NATIVE}${bindir}/pseudo"
+ export PSEUDO="${FAKEROOTENV} PSEUDO_LOCALSTATEDIR=${STAGING_DIR_TARGET}${localstatedir}/pseudo ${STAGING_DIR_NATIVE}${bindir_native}/pseudo"
# Explicitly set $D since it isn't set to anything
# before do_install
@@ -129,57 +125,53 @@ useradd_sysroot_sstate () {
userdel_sysroot_sstate () {
if test "x${STAGING_DIR_TARGET}" != "x"; then
- if [ "${BB_CURRENTTASK}" = "configure" -o "${BB_CURRENTTASK}" = "clean" ]; then
- export PSEUDO="${FAKEROOTENV} PSEUDO_LOCALSTATEDIR=${STAGING_DIR_TARGET}${localstatedir}/pseudo ${STAGING_DIR_NATIVE}${bindir}/pseudo"
+ if [ "${BB_CURRENTTASK}" = "clean" ]; then
+ export PSEUDO="${FAKEROOTENV} PSEUDO_LOCALSTATEDIR=${STAGING_DIR_TARGET}${localstatedir}/pseudo ${STAGING_DIR_NATIVE}${bindir_native}/pseudo"
OPT="--root ${STAGING_DIR_TARGET}"
# Remove groups and users defined for package
GROUPADD_PARAM="${@get_all_cmd_params(d, 'groupadd')}"
USERADD_PARAM="${@get_all_cmd_params(d, 'useradd')}"
- if test "x`echo $USERADD_PARAM | tr -d '[:space:]'`" != "x"; then
- user=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'`
+ user=`echo "$USERADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'`
+ remaining=`echo "$USERADD_PARAM" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'`
+ while test "x$user" != "x"; do
perform_userdel "${STAGING_DIR_TARGET}" "$OPT $user"
- fi
-
- if test "x`echo $GROUPADD_PARAM | tr -d '[:space:]'`" != "x"; then
- group=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'`
- perform_groupdel "${STAGING_DIR_TARGET}" "$OPT $group"
- fi
+ user=`echo "$remaining" | cut -d ';' -f 1 | awk '{ print $NF }'`
+ remaining=`echo "$remaining" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'`
+ done
+
+ user=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1 | awk '{ print $NF }'`
+ remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'`
+ while test "x$user" != "x"; do
+ perform_groupdel "${STAGING_DIR_TARGET}" "$OPT $user"
+ user=`echo "$remaining" | cut -d ';' -f 1 | awk '{ print $NF }'`
+ remaining=`echo "$remaining" | cut -d ';' -f 2- -s | sed -e 's#[ \t]*$##'`
+ done
fi
fi
}
-SSTATECLEANFUNCS = "userdel_sysroot_sstate"
-SSTATECLEANFUNCS_class-cross = ""
-SSTATECLEANFUNCS_class-native = ""
-SSTATECLEANFUNCS_class-nativesdk = ""
+SSTATECLEANFUNCS_append_class-target = " userdel_sysroot_sstate"
do_install[prefuncs] += "${SYSROOTFUNC}"
-SYSROOTFUNC = "useradd_sysroot"
-SYSROOTFUNC_class-cross = ""
-SYSROOTFUNC_class-native = ""
-SYSROOTFUNC_class-nativesdk = ""
-SSTATEPREINSTFUNCS += "${SYSROOTPOSTFUNC}"
-SYSROOTPOSTFUNC = "useradd_sysroot_sstate"
-SYSROOTPOSTFUNC_class-cross = ""
-SYSROOTPOSTFUNC_class-native = ""
-SYSROOTPOSTFUNC_class-nativesdk = ""
-
-USERADDSETSCENEDEPS = "${MLPREFIX}base-passwd:do_populate_sysroot_setscene pseudo-native:do_populate_sysroot_setscene shadow-native:do_populate_sysroot_setscene ${MLPREFIX}shadow-sysroot:do_populate_sysroot_setscene"
-USERADDSETSCENEDEPS_class-cross = ""
-USERADDSETSCENEDEPS_class-native = ""
-USERADDSETSCENEDEPS_class-nativesdk = ""
+SYSROOTFUNC_class-target = "useradd_sysroot"
+SYSROOTFUNC = ""
+
+SSTATEPREINSTFUNCS_append_class-target = " useradd_sysroot_sstate"
+
do_package_setscene[depends] += "${USERADDSETSCENEDEPS}"
do_populate_sysroot_setscene[depends] += "${USERADDSETSCENEDEPS}"
+USERADDSETSCENEDEPS_class-target = "${MLPREFIX}base-passwd:do_populate_sysroot_setscene pseudo-native:do_populate_sysroot_setscene shadow-native:do_populate_sysroot_setscene ${MLPREFIX}shadow-sysroot:do_populate_sysroot_setscene"
+USERADDSETSCENEDEPS = ""
# Recipe parse-time sanity checks
def update_useradd_after_parse(d):
useradd_packages = d.getVar('USERADD_PACKAGES', True)
if not useradd_packages:
- raise bb.build.FuncFailed("%s inherits useradd but doesn't set USERADD_PACKAGES" % d.getVar('FILE', False))
+ bb.fatal("%s inherits useradd but doesn't set USERADD_PACKAGES" % d.getVar('FILE', False))
for pkg in useradd_packages.split():
if not d.getVar('USERADD_PARAM_%s' % pkg, True) and not d.getVar('GROUPADD_PARAM_%s' % pkg, True) and not d.getVar('GROUPMEMS_PARAM_%s' % pkg, True):
@@ -203,7 +195,7 @@ def get_all_cmd_params(d, cmd_type):
for pkg in useradd_packages.split():
param = d.getVar(param_type % pkg, True)
if param:
- params.append(param)
+ params.append(param.rstrip(" ;"))
return "; ".join(params)
diff --git a/import-layers/yocto-poky/meta/classes/useradd_base.bbclass b/import-layers/yocto-poky/meta/classes/useradd_base.bbclass
index 0d81accd1..ba87edc57 100644
--- a/import-layers/yocto-poky/meta/classes/useradd_base.bbclass
+++ b/import-layers/yocto-poky/meta/classes/useradd_base.bbclass
@@ -17,7 +17,6 @@ perform_groupadd () {
local groupname=`echo "$opts" | awk '{ print $NF }'`
local group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
if test "x$group_exists" = "x"; then
- opts=`echo $opts | sed s/\'/\"/g`
eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO groupadd \$opts\" || true
group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
if test "x$group_exists" = "x"; then
@@ -35,7 +34,6 @@ perform_useradd () {
local username=`echo "$opts" | awk '{ print $NF }'`
local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
if test "x$user_exists" = "x"; then
- opts=`echo $opts | sed s/\'/\"/g`
eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO useradd \$opts\" || true
user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
if test "x$user_exists" = "x"; then
@@ -53,14 +51,6 @@ perform_groupmems () {
local groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'`
local username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'`
bbnote "${PN}: Running groupmems command with group $groupname and user $username"
- # groupmems fails if /etc/gshadow does not exist
- local gshadow=""
- if [ -f $rootdir${sysconfdir}/gshadow ]; then
- gshadow="yes"
- else
- gshadow="no"
- touch $rootdir${sysconfdir}/gshadow
- fi
local mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true`"
if test "x$mem_exists" = "x"; then
eval flock -x $rootdir${sysconfdir} -c \"$PSEUDO groupmems \$opts\" || true
@@ -71,10 +61,6 @@ perform_groupmems () {
else
bbnote "${PN}: group $groupname already contains $username, not re-adding it"
fi
- if test "x$gshadow" = "xno"; then
- rm -f $rootdir${sysconfdir}/gshadow
- rm -f $rootdir${sysconfdir}/gshadow-
- fi
}
perform_groupdel () {
diff --git a/import-layers/yocto-poky/meta/classes/utility-tasks.bbclass b/import-layers/yocto-poky/meta/classes/utility-tasks.bbclass
index 5bcfd0b72..7ba56e28a 100644
--- a/import-layers/yocto-poky/meta/classes/utility-tasks.bbclass
+++ b/import-layers/yocto-poky/meta/classes/utility-tasks.bbclass
@@ -46,8 +46,8 @@ python do_checkuri() {
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.checkstatus()
- except bb.fetch2.BBFetchException, e:
- raise bb.build.FuncFailed(e)
+ except bb.fetch2.BBFetchException as e:
+ bb.fatal(str(e))
}
addtask checkuriall after do_checkuri
diff --git a/import-layers/yocto-poky/meta/classes/utils.bbclass b/import-layers/yocto-poky/meta/classes/utils.bbclass
index 81b92cb5e..dbb5e4cbb 100644
--- a/import-layers/yocto-poky/meta/classes/utils.bbclass
+++ b/import-layers/yocto-poky/meta/classes/utils.bbclass
@@ -24,6 +24,7 @@ def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
return oe.utils.version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d)
def base_contains(variable, checkvalues, truevalue, falsevalue, d):
+ bb.note('base_contains is deprecated, please use bb.utils.contains instead.')
return bb.utils.contains(variable, checkvalues, truevalue, falsevalue, d)
def base_both_contain(variable1, variable2, checkvalue, d):
@@ -61,15 +62,18 @@ def is_machine_specific(d):
oe_soinstall() {
# Purpose: Install shared library file and
# create the necessary links
- # Example:
- #
- # oe_
- #
- #bbnote installing shared library $1 to $2
- #
+ # Example: oe_soinstall libfoo.so.1.2.3 ${D}${libdir}
libname=`basename $1`
+ case "$libname" in
+ *.so)
+ bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3)"
+ ;;
+ esac
install -m 755 $1 $2/$libname
sonamelink=`${HOST_PREFIX}readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
+ if [ -z $sonamelink ]; then
+ bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'."
+ fi
solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
ln -sf $libname $2/$sonamelink
ln -sf $libname $2/$solink
@@ -248,7 +252,7 @@ oe_machinstall() {
create_cmdline_wrapper () {
# Create a wrapper script where commandline options are needed
#
- # These are useful to work around relocation issues, by passing extra options
+ # These are useful to work around relocation issues, by passing extra options
# to a program
#
# Usage: create_cmdline_wrapper FILENAME <extra-options>
@@ -302,7 +306,7 @@ hardlinkdir () {
def check_app_exists(app, d):
- app = d.expand(app)
+ app = d.expand(app).strip()
path = d.getVar('PATH', d, True)
return bool(bb.utils.which(path, app))
@@ -322,7 +326,7 @@ def base_set_filespath(path, d):
overrides.reverse()
for o in overrides:
for p in path:
- if p != "":
+ if p != "":
filespath.append(os.path.join(p, o))
return ":".join(filespath)
@@ -378,3 +382,50 @@ def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = '
else:
ret = values
return " ".join(ret)
+
+def all_multilib_tune_list(vars, d):
+ """
+ Return a list of ${VAR} for each variable VAR in vars from each
+ multilib tune configuration.
+ Is safe to be called from a multilib recipe/context as it can
+ figure out the original tune and remove the multilib overrides.
+ """
+ values = {}
+ for v in vars:
+ values[v] = []
+
+ localdata = bb.data.createCopy(d)
+ overrides = localdata.getVar("OVERRIDES", False).split(":")
+ newoverrides = []
+ for o in overrides:
+ if not o.startswith("virtclass-multilib-"):
+ newoverrides.append(o)
+ localdata.setVar("OVERRIDES", ":".join(newoverrides))
+ localdata.setVar("MLPREFIX", "")
+ origdefault = localdata.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL", True)
+ if origdefault:
+ localdata.setVar("DEFAULTTUNE", origdefault)
+ bb.data.update_data(localdata)
+ values['ml'] = ['']
+ for v in vars:
+ values[v].append(localdata.getVar(v, True))
+ variants = d.getVar("MULTILIB_VARIANTS", True) or ""
+ for item in variants.split():
+ localdata = bb.data.createCopy(d)
+ overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
+ localdata.setVar("OVERRIDES", overrides)
+ localdata.setVar("MLPREFIX", item + "-")
+ bb.data.update_data(localdata)
+ values[v].append(localdata.getVar(v, True))
+ values['ml'].append(item)
+ return values
+
+# If the user hasn't set up their name/email, set some defaults
+check_git_config() {
+ if ! git config user.email > /dev/null ; then
+ git config --local user.email "${PATCH_GIT_USER_EMAIL}"
+ fi
+ if ! git config user.name > /dev/null ; then
+ git config --local user.name "${PATCH_GIT_USER_NAME}"
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/conf/bitbake.conf b/import-layers/yocto-poky/meta/conf/bitbake.conf
index 40796aab1..54a587f1b 100644
--- a/import-layers/yocto-poky/meta/conf/bitbake.conf
+++ b/import-layers/yocto-poky/meta/conf/bitbake.conf
@@ -15,7 +15,7 @@ BASELIB_powerpc64 = "lib64"
# Path prefixes
export base_prefix = ""
export prefix = "/usr"
-export exec_prefix = "/usr"
+export exec_prefix = "${prefix}"
# Base paths
export base_bindir = "${base_prefix}/bin"
@@ -129,7 +129,7 @@ TARGET_CC_ARCH = "${TUNE_CCARGS}"
TARGET_LD_ARCH = "${TUNE_LDARGS}"
TARGET_AS_ARCH = "${TUNE_ASARGS}"
-SDK_ARCH = "${BUILD_ARCH}"
+SDKMACHINE ??= "x86_64"
SDK_OS = "${BUILD_OS}"
SDK_VENDOR = "-oesdk"
SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS', True), ''][d.getVar('SDK_OS', True) == ('' or 'custom')]}"
@@ -247,7 +247,7 @@ SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files"
DESCRIPTION_${PN}-doc ?= "${DESCRIPTION} \
This package contains documentation."
-LICENSE = "INVALID"
+LICENSE ??= "INVALID"
MAINTAINER = "OE-Core Developers <openembedded-core@lists.openembedded.org>"
HOMEPAGE = ""
@@ -284,7 +284,8 @@ FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS}
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* \
${base_libdir}/*${SOLIBS} \
- ${base_prefix}/lib/udev/rules.d ${prefix}/lib/udev/rules.d \
+ ${base_prefix}/lib/udev ${prefix}/lib/udev \
+ ${base_libdir}/udev ${libdir}/udev \
${datadir}/${BPN} ${libdir}/${BPN}/* \
${datadir}/pixmaps ${datadir}/applications \
${datadir}/idl ${datadir}/omf ${datadir}/sounds \
@@ -403,8 +404,14 @@ SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
# Kernel info.
##################################################################
-OLDEST_KERNEL = "2.6.32"
+OLDEST_KERNEL = "3.2.0"
OLDEST_KERNEL_aarch64 = "3.14"
+OLDEST_KERNEL_nios2 = "3.19"
+
+# Define where the kernel headers are installed on the target as well as where
+# they are staged.
+KERNEL_SRC_PATH = "/usr/src/kernel"
+
STAGING_KERNEL_DIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-source"
STAGING_KERNEL_BUILDDIR = "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifacts"
@@ -444,10 +451,10 @@ CCACHE ??= ""
# Disable ccache explicitly if CCACHE is null since gcc may be a symlink
# of ccache some distributions (e.g., Fedora 17).
export CCACHE_DISABLE ??= "${@[0,1][d.getVar('CCACHE', True) == '']}"
-# Assign CCACHE_DIR a default value to fix a bug of ccache 3.1.7,
-# since it would always create CCACHE_DIR/.ccache even if
-# CCACHE_DISABLE = 1.
-export CCACHE_DIR ??= "${@os.getenv('HOME')}"
+# ccache < 3.1.10 will create CCACHE_DIR on startup even if disabled, and
+# autogen sets HOME=/dev/null so in certain situations builds can fail.
+# Explicitly export CCACHE_DIR until we can assume ccache >3.1.10 on the host.
+export CCACHE_DIR ??= "${@os.getenv('HOME')}/.ccache"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
@@ -465,6 +472,7 @@ export OBJCOPY = "${HOST_PREFIX}objcopy"
export OBJDUMP = "${HOST_PREFIX}objdump"
export STRINGS = "${HOST_PREFIX}strings"
export NM = "${HOST_PREFIX}nm"
+export READELF = "${HOST_PREFIX}readelf"
PYTHON = "${@sys.executable}"
export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
@@ -482,7 +490,7 @@ export BUILD_NM = "${BUILD_PREFIX}nm"
export MAKE = "make"
EXTRA_OEMAKE = ""
EXTRA_OECONF = ""
-export LC_ALL = "C"
+export LC_ALL = "en_US.UTF-8"
##################################################################
# Patch handling.
@@ -495,10 +503,9 @@ PATCHRESOLVE = "noop"
##################################################################
export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
-BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
+BUILDSDK_CPPFLAGS = ""
export CPPFLAGS = "${TARGET_CPPFLAGS}"
export TARGET_CPPFLAGS = ""
-#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
@@ -517,12 +524,7 @@ export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
-Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE} \
-Wl,-O1"
-BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
- -Wl,-rpath-link,${STAGING_LIBDIR} \
- -Wl,-rpath,${libdir} -Wl,-O1 \
- -L${STAGING_DIR_HOST}${base_libdir} \
- -Wl,-rpath-link,${STAGING_DIR_HOST}${base_libdir} \
- -Wl,-rpath,${base_libdir} -Wl,-O1"
+BUILDSDK_LDFLAGS = "-Wl,-O1"
LINKER_HASH_STYLE ??= "gnu"
# mips does not support GNU hash style therefore we override
@@ -532,6 +534,11 @@ LINKER_HASH_STYLE_mips64 = "sysv"
LINKER_HASH_STYLE_mips64el = "sysv"
LINKER_HASH_STYLE_mips64n32 = "sysv"
LINKER_HASH_STYLE_mips64eln32 = "sysv"
+LINKER_HASH_STYLE_mipsisa32r6 = "sysv"
+LINKER_HASH_STYLE_mipsisa32r6el = "sysv"
+LINKER_HASH_STYLE_mipsisa64r6 = "sysv"
+LINKER_HASH_STYLE_mipsisa64r6el = "sysv"
+
TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE', True) != 'gnu']}"
export LDFLAGS = "${TARGET_LDFLAGS}"
@@ -549,11 +556,11 @@ EXTRA_OEMAKE_prepend_task-install = "${PARALLEL_MAKEINST} "
##################################################################
# Optimization flags.
##################################################################
-DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types \
- -fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
- -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
- -fdebug-prefix-map=${STAGING_DIR_HOST}= \
+DEBUG_PREFIX_MAP ?= "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
+ -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
+ -fdebug-prefix-map=${STAGING_DIR_HOST}= \
"
+DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}"
# Disabled until the option works properly -feliminate-dwarf2-dups
FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}"
@@ -572,12 +579,13 @@ BBLAYERS_FETCH_DIR ??= "${COREBASE}"
# Download locations and utilities.
##################################################################
-APACHE_MIRROR = "http://www.eu.apache.org/dist/"
+APACHE_MIRROR = "http://archive.apache.org/dist"
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
GNOME_GIT = "git://git.gnome.org"
GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources"
GNU_MIRROR = "http://ftp.gnu.org/gnu"
+GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt"
GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
KERNELORG_MIRROR = "http://kernel.org/pub"
SOURCEFORGE_MIRROR = "http://downloads.sourceforge.net"
@@ -595,6 +603,7 @@ SRC_URI[vardepsexclude] += "\
GNOME_GIT \
GNOME_MIRROR \
GNU_MIRROR \
+ GNUPG_MIRROR \
GPE_MIRROR \
KERNELORG_MIRROR \
SAVANNAH_GNU_MIRROR \
@@ -713,6 +722,7 @@ require conf/sanity.conf
DL_DIR ?= "${TOPDIR}/downloads"
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
IMAGE_FSTYPES ?= "tar.gz"
+IMAGE_FSTYPES_DEBUGFS ?= "${IMAGE_FSTYPES}"
INITRAMFS_FSTYPES ?= "cpio.gz"
# The maximum size in Kbytes for the generated initramfs image size.
@@ -798,7 +808,7 @@ BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
# Setup our default hash policy
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
-BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
+BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
@@ -809,12 +819,14 @@ BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID \
SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \
PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \
GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \
- HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD"
+ HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD \
+ BB_SETSCENE_ENFORCE"
BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \
lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude \
file-checksums python func task export unexport noexec nostamp dirs cleandirs \
sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \
- recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno"
+ recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \
+ progress"
MLPREFIX ??= ""
MULTILIB_VARIANTS ??= ""
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/default-distrovars.inc b/import-layers/yocto-poky/meta/conf/distro/include/default-distrovars.inc
index fac4deb78..f7ed943c9 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/default-distrovars.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/default-distrovars.inc
@@ -23,7 +23,7 @@ DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC}"
IMAGE_FEATURES ?= ""
WHITELIST_GPL-3.0 ?= ""
-LGPLv2_WHITELIST_GPL-3.0 ?= "libidn"
+LGPLv2_WHITELIST_GPL-3.0 ?= ""
COMMERCIAL_AUDIO_PLUGINS ?= ""
# COMMERCIAL_AUDIO_PLUGINS ?= "gst-plugins-ugly-mad gst-plugins-ugly-mpegaudioparse"
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/default-versions.inc b/import-layers/yocto-poky/meta/conf/distro/include/default-versions.inc
index a04ea718b..cc8c533d4 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/default-versions.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/default-versions.inc
@@ -2,11 +2,6 @@
# Default preferred versions
#
-# Force the python versions in one place
-PYTHON_BASEVERSION ?= "2.7"
-PREFERRED_VERSION_python ?= "2.7.11"
-PREFERRED_VERSION_python-native ?= "2.7.11"
-
# Force the older version of liberation-fonts until we fix the fontforge issue
PREFERRED_VERSION_liberation-fonts ?= "1.04"
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/distro_alias.inc b/import-layers/yocto-poky/meta/conf/distro/include/distro_alias.inc
index c8f93955d..10efb096f 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/distro_alias.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/distro_alias.inc
@@ -13,7 +13,6 @@ DISTRO_PN_ALIAS_pn-alsa-state = "OE-Core"
DISTRO_PN_ALIAS_pn-alsa-utils-alsaconf = "OE-Core"
DISTRO_PN_ALIAS_pn-alsa-utils-scripts = "OE-Core"
DISTRO_PN_ALIAS_pn-atk = "Fedora=atk OpenSuSE=atk"
-DISTRO_PN_ALIAS_pn-augeas = "Ubuntu=libaugeas0 Debian=libaugeas0"
DISTRO_PN_ALIAS_pn-avahi-ui = "Ubuntu=avahi-discover Debian=avahi-discover"
DISTRO_PN_ALIAS_pn-babeltrace = "OSPDT"
DISTRO_PN_ALIAS_pn-bdwgc = "OSPDT"
@@ -46,7 +45,6 @@ DISTRO_PN_ALIAS_pn-connman-gnome = "Intel"
DISTRO_PN_ALIAS_pn-console-tools = "Debian=console-tools Ubuntu=console-tools"
DISTRO_PN_ALIAS_pn-core-image-base = "OE-Core"
DISTRO_PN_ALIAS_pn-core-image-clutter = "OE-Core"
-DISTRO_PN_ALIAS_pn-core-image-directfb = "OE-Core"
DISTRO_PN_ALIAS_pn-core-image-full-cmdline = "OE-Core"
DISTRO_PN_ALIAS_pn-core-image-kernel-dev = "OE-Core"
DISTRO_PN_ALIAS_pn-core-image-lsb = "OE-Core"
@@ -75,7 +73,6 @@ DISTRO_PN_ALIAS_pn-db = "Debian=db5.1 Ubuntu=db5.1"
DISTRO_PN_ALIAS_pn-dbus-test = "Fedora=dbus Ubuntu=dbus"
DISTRO_PN_ALIAS_pn-dbus-wait = "OpenedHand"
DISTRO_PN_ALIAS_pn-depmodwrapper-cross = "OE-Core"
-DISTRO_PN_ALIAS_pn-directfb-examples = "Debian=directfb Fedora=directfb"
DISTRO_PN_ALIAS_pn-distcc = "Debian=distcc Fedora=distcc"
DISTRO_PN_ALIAS_pn-distcc-config = "OpenedHand"
DISTRO_PN_ALIAS_pn-dmxproto = "Meego=xorg-x11-proto-dmxproto Ubuntu=x11proto-dmx Debian=x11proto-dmx"
@@ -134,7 +131,7 @@ DISTRO_PN_ALIAS_pn-gstreamer1.0-plugins-good = "Debian=gstreamer1.0-plugins-good
DISTRO_PN_ALIAS_pn-gstreamer1.0-rtsp-server = "Ubuntu=gstreamer0.10-rtsp Fedora=gstreamer-rtsp"
DISTRO_PN_ALIAS_pn-gtk+ = "Meego=gtk2 Fedora=gtk2 OpenSuSE=gtk2 Ubuntu=gtk+2.0 Mandriva=gtk+2.0 Debian=gtk+2.0"
DISTRO_PN_ALIAS_pn-gtk+3 = "Ubuntu=gtk+3.0 Debian=gtk+3.0 Fedora=gtk3"
-DISTRO_PN_ALIAS_pn-gtk-doc-stub = "Fedora=gtk-doc Ubuntu=gtk-doc"
+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"
@@ -216,7 +213,6 @@ DISTRO_PN_ALIAS_pn-libxft = "Mandriva=libxft Debian=libxft2 Ubuntu=libxft2"
DISTRO_PN_ALIAS_pn-libxi = "Ubuntu=libxi Fedora=libXi"
DISTRO_PN_ALIAS_pn-libxkbcommon = "Fedora=libxkbcommon Debian=libxkbcommon"
DISTRO_PN_ALIAS_pn-libxscrnsaver = "Fedora=libXScrnSaver Ubuntu=libxss1 Mandriva=libxscrnsaver"
-DISTRO_PN_ALIAS_pn-libxsettings-client = "Debian=libxsettings-client0 Ubuntu=libxsettings-client0 Mandriva=libXsettings-client0"
DISTRO_PN_ALIAS_pn-libxxf86misc = "Mandriva=libxxf86misc Fedora=libXxf86misc"
DISTRO_PN_ALIAS_pn-linux-dummy = "Intel"
DISTRO_PN_ALIAS_pn-linux-firmware = "Fedora=linux-firmware Ubuntu=linux-firmware"
@@ -281,8 +277,6 @@ DISTRO_PN_ALIAS_pn-opkg-keyrings = "OSPDT upstream=git://git.yoctoproject.org/op
DISTRO_PN_ALIAS_pn-opkg-nogpg = "OSPDT upstream=git://git.yoctoproject.org/opkg-utils"
DISTRO_PN_ALIAS_pn-opkg-utils = "OSPDT upstream=git://git.yoctoproject.org/opkg-utils"
DISTRO_PN_ALIAS_pn-oprofile = "Debian=oprofile Fedora=oprofile"
-DISTRO_PN_ALIAS_pn-oprofileui = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
-DISTRO_PN_ALIAS_pn-oprofileui-server = "Fedora=oprofileui Ubuntu=oprofile-gui Debian=oprofile-gui"
DISTRO_PN_ALIAS_pn-os-release = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-base = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core = "OE-Core"
@@ -290,7 +284,6 @@ DISTRO_PN_ALIAS_pn-packagegroup-core-boot = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-buildessential = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-clutter = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-device-devel = "OE-Core"
-DISTRO_PN_ALIAS_pn-packagegroup-core-directfb = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-eclipse-debug = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-full-cmdline = "OE-Core"
DISTRO_PN_ALIAS_pn-packagegroup-core-lsb = "OE-Core"
@@ -318,7 +311,6 @@ DISTRO_PN_ALIAS_pn-patchelf = "Opensuse=patchelf Fedora=patchelf"
DISTRO_PN_ALIAS_pn-perf = "OSPDT"
DISTRO_PN_ALIAS_pn-piglit = "OE-Core"
DISTRO_PN_ALIAS_pn-pkgconfig = "Ubuntu=pkg-config Fedora=pkgconfig"
-DISTRO_PN_ALIAS_pn-pointercal = "OE-Core"
DISTRO_PN_ALIAS_pn-pointercal-xinput = "OE-Core"
DISTRO_PN_ALIAS_pn-pong-clock = "OpenedHand"
DISTRO_PN_ALIAS_pn-portmap = "Debian=rpcbind Fedora=rpcbind"
@@ -338,12 +330,10 @@ DISTRO_PN_ALIAS_pn-python3-setuptools = "OpenSuSE=python3-setuptools Debian=pyth
DISTRO_PN_ALIAS_pn-python-dbus = "Ubuntu=python-dbus Debian=python-dbus Mandriva=python-dbus"
DISTRO_PN_ALIAS_pn-python-distribute = "Opensuse=python-setuptools Fedora=python-setuptools"
DISTRO_PN_ALIAS_pn-python-git = "Debian=python-git Fedora=GitPython"
-DISTRO_PN_ALIAS_pn-python-imaging = "Mandriva=python-imaging Debian=python-imaging"
DISTRO_PN_ALIAS_pn-python-mako = "Fedora=python-mako Opensuse=python-Mako"
DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo Ubuntu=pycairo Debian=pycairo"
DISTRO_PN_ALIAS_pn-python-pycurl = "Debian=python-pycurl Ubuntu=python-pycurl"
DISTRO_PN_ALIAS_pn-python-pygobject = "Meego=pygobject2 Fedora=pygobject2 Ubuntu=pygobject Debian=pygobject"
-DISTRO_PN_ALIAS_pn-python-pyrex = "Mandriva=python-pyrex Ubuntu=python-pyrex"
DISTRO_PN_ALIAS_pn-python-scons = "Fedora=scons OpenSuSE=scons Ubuntu=scons Mandriva=scons Debian=scons"
DISTRO_PN_ALIAS_pn-python-setuptools = "Mandriva=python-setup OpenSuSE=python-setup-git"
DISTRO_PN_ALIAS_pn-python-smartpm = "Debian=smart OpenSuSE=smart"
@@ -388,7 +378,6 @@ DISTRO_PN_ALIAS_pn-texinfo-dummy-native = "OE-Core"
DISTRO_PN_ALIAS_pn-tiny-init = "OSPDT"
DISTRO_PN_ALIAS_pn-trace-cmd = "Mandriva=trace-cmd Ubuntu=trace-cmd"
DISTRO_PN_ALIAS_pn-tremor = "OSPDT upstream=http://www.xiph.org/vorbis/"
-DISTRO_PN_ALIAS_pn-tslib = "Debian=tslib Ubuntu=tslib"
DISTRO_PN_ALIAS_pn-ttf-bitstream-vera = "Debian=ttf-bitstream-vera Ubuntu=ttf-bitstream-vera"
DISTRO_PN_ALIAS_pn-tzcode = "OSPDT"
DISTRO_PN_ALIAS_pn-u-boot-fw-utils = "Ubuntu=u-boot-tools Debian=u-boot-tools"
@@ -457,7 +446,6 @@ DISTRO_PN_ALIAS_pn-xserver-xf86-dri-lite = "Fedora=xorg-x11-server Ubuntu=xserve
DISTRO_PN_ALIAS_pn-xserver-xf86-lite = "Fedora=xorg-x11-server Ubuntu=xserver-xorg"
DISTRO_PN_ALIAS_pn-xserver-xorg = "Fedora=xorg-x11-server Ubuntu=xserver-xorg"
DISTRO_PN_ALIAS_pn-xset = "Fedora=xorg-x11-server-utils Ubuntu=x11-xserver-utils Debian=x11-xserver-utils Opensuse=xorg-x11"
-DISTRO_PN_ALIAS_pn-xtscal = "OSPDT upstream=http://gpe.linuxtogo.org/download/source/"
DISTRO_PN_ALIAS_pn-xuser-account = "OE-Core"
DISTRO_PN_ALIAS_pn-xvideo-tests = "OpenedHand"
DISTRO_PN_ALIAS_pn-xvinfo = "Fedora=xorg-x11-utils Ubuntu=x11-utils"
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/package_regex.inc b/import-layers/yocto-poky/meta/conf/distro/include/package_regex.inc
deleted file mode 100644
index 9fc115723..000000000
--- a/import-layers/yocto-poky/meta/conf/distro/include/package_regex.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-# NOTE: THIS FILE IS DEPRECATED. Please add new entries to the recipes themselves.
-#
-# package_regex.inc - This file contains data that tracks
-# upstream project associated with a given recipe. This list is needed
-# for recipes that version information can not be automagically discovered.
-# As we automate this checking, this file will slowly be reduced.
-#"
-# This data is used by the package reporting system (packages.yoctoproject.org)
-#"
-# The format is as a bitbake variable override for each recipe
-#"
-# UPSTREAM_CHECK_URI_pn-<recipe name> = "recipe_url"
-# - This is the url used by the package checking system to
-# get the latest version of the package
-# UPSTREAM_CHECK_REGEX_pn-<recipe name> = "package_regex"
-# - This is the regex the package checking system uses to
-# parse the page found at UPSTREAM_CHECK_URI_pn-<recipe name>
-# UPSTREAM_CHECK_GITTAGREGEX_pn-<recipe name> = "git_tag_regex"
-# - When source code is fetched from git, git tags are used to
-# determine the upstream release version. This regex can be used
-# to filter only relevant tags.
-#
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/security_flags.inc b/import-layers/yocto-poky/meta/conf/distro/include/security_flags.inc
index ff5f34e3a..eca835e3a 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/security_flags.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/security_flags.inc
@@ -9,8 +9,11 @@
# -O0 which then results in a compiler warning.
lcl_maybe_fortify = "${@base_conditional('DEBUG_BUILD','1','','-D_FORTIFY_SOURCE=2',d)}"
-SECURITY_CFLAGS ?= "-fstack-protector-strong -pie -fpie ${lcl_maybe_fortify}"
-SECURITY_NO_PIE_CFLAGS ?= "-fstack-protector-strong ${lcl_maybe_fortify}"
+# Error on use of format strings that represent possible security problems
+SECURITY_STRINGFORMAT ?= "-Wformat -Wformat-security -Werror=format-security"
+
+SECURITY_CFLAGS ?= "-fstack-protector-strong -pie -fpie ${lcl_maybe_fortify} ${SECURITY_STRINGFORMAT}"
+SECURITY_NO_PIE_CFLAGS ?= "-fstack-protector-strong ${lcl_maybe_fortify} ${SECURITY_STRINGFORMAT}"
SECURITY_LDFLAGS ?= "-fstack-protector-strong -Wl,-z,relro,-z,now"
SECURITY_X_LDFLAGS ?= "-fstack-protector-strong -Wl,-z,relro"
@@ -26,7 +29,6 @@ SECURITY_CFLAGS_pn-libmatchbox_powerpc = ""
SECURITY_CFLAGS_pn-lttng-tools_arm = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-aspell = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-beecrypt = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-blktrace = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-coreutils = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-cups = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-db = "${SECURITY_NO_PIE_CFLAGS}"
@@ -37,10 +39,9 @@ SECURITY_CFLAGS_pn-elfutils = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-enchant = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-expect = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-flac = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-flex = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gcc = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gcc-runtime = ""
-SECURITY_CFLAGS_pn-gcc-sanitizers = ""
+SECURITY_CFLAGS_pn-gcc-sanitizers = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gdb = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gmp = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gnutls = "${SECURITY_NO_PIE_CFLAGS}"
@@ -50,8 +51,6 @@ SECURITY_CFLAGS_pn-grub-efi-native = ""
SECURITY_CFLAGS_pn-grub-efi-x86-native = ""
SECURITY_CFLAGS_pn-grub-efi-i586-native = ""
SECURITY_CFLAGS_pn-grub-efi-x86-64-native = ""
-SECURITY_CFLAGS_pn-gst-plugins-bad = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-gst-plugins-gl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gstreamer1.0-plugins-bad = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-gstreamer1.0-plugins-good = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-harfbuzz = "${SECURITY_NO_PIE_CFLAGS}"
@@ -59,28 +58,30 @@ SECURITY_CFLAGS_pn-kexec-tools = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-iptables = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libaio = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libcap = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libgcc = ""
+SECURITY_CFLAGS_pn-libgcc = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libid3tag = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-libnewt = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-libnewt-python = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libglu = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libpcap = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libpcre = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libproxy = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-lttng-ust = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-mesa = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-mesa-gl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-openssl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-opensp = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-ppp = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-python-imaging = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python-pycurl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python-smartpm = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python-numpy = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-python3-numpy = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-python3-pycairo = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python3 = "${SECURITY_NO_PIE_CFLAGS}"
# Revert RPM to using internally supported values
SECURITY_CFLAGS_pn-rpm = "${lcl_maybe_fortify} -fstack-protector"
SECURITY_CFLAGS_pn-syslinux = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-slang = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-source-highlight = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-tcl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-tiff = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-uclibc = ""
@@ -88,18 +89,22 @@ SECURITY_CFLAGS_pn-uclibc-initial = ""
SECURITY_CFLAGS_pn-valgrind = ""
SECURITY_CFLAGS_pn-zlib = "${SECURITY_NO_PIE_CFLAGS}"
-# These 2 have text relco errors with the pie options enabled
-SECURITY_CFLAGS_pn-ltp = "${SECURITY_NO_PIE_CFLAGS}"
-SECURITY_CFLAGS_pn-pulseaudio = "${SECURITY_NO_PIE_CFLAGS}"
+# Recipes which fail to compile when elevating -Wformat-security to an error
+SECURITY_STRINGFORMAT_pn-busybox = ""
+SECURITY_STRINGFORMAT_pn-console-tools = ""
+SECURITY_STRINGFORMAT_pn-cmake = ""
+SECURITY_STRINGFORMAT_pn-expect = ""
+SECURITY_STRINGFORMAT_pn-gcc = ""
+SECURITY_STRINGFORMAT_pn-gettext = ""
+SECURITY_STRINGFORMAT_pn-kexec-tools = ""
+SECURITY_STRINGFORMAT_pn-oh-puzzles = ""
TARGET_CFLAGS_append_class-target = " ${SECURITY_CFLAGS}"
TARGET_LDFLAGS_append_class-target = " ${SECURITY_LDFLAGS}"
SECURITY_LDFLAGS_remove_pn-gcc-runtime = "-fstack-protector-strong"
-SECURITY_LDFLAGS_remove_pn-gcc-sanitizers = "-fstack-protector-strong"
SECURITY_LDFLAGS_remove_pn-glibc = "-fstack-protector-strong"
SECURITY_LDFLAGS_remove_pn-glibc-initial = "-fstack-protector-strong"
-SECURITY_LDFLAGS_remove_pn-libgcc = "-fstack-protector-strong"
SECURITY_LDFLAGS_remove_pn-uclibc = "-fstack-protector-strong"
SECURITY_LDFLAGS_remove_pn-uclibc-initial = "-fstack-protector-strong"
SECURITY_LDFLAGS_pn-xf86-video-fbdev = "${SECURITY_X_LDFLAGS}"
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/tclibc-uclibc.inc b/import-layers/yocto-poky/meta/conf/distro/include/tclibc-uclibc.inc
deleted file mode 100644
index 14c3cdbb8..000000000
--- a/import-layers/yocto-poky/meta/conf/distro/include/tclibc-uclibc.inc
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# uclibc specific configuration
-#
-
-LIBCEXTENSION = "-uclibc"
-
-# Add uclibc overrides to the overrides.
-LIBCOVERRIDE = ":libc-uclibc"
-OVERRIDES .= "${LIBCOVERRIDE}"
-
-PREFERRED_PROVIDER_virtual/libc ?= "uclibc"
-PREFERRED_PROVIDER_virtual/libiconv ?= "libiconv"
-PREFERRED_PROVIDER_virtual/libintl ?= "gettext"
-PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
-PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
-
-USE_NLS ?= "no"
-
-CXXFLAGS += "-fvisibility-inlines-hidden"
-
-IMAGE_LINGUAS = ""
-
-LIBC_DEPENDENCIES = "\
- uclibc \
- uclibc-dbg \
- uclibc-dev \
- uclibc-thread-db \
- "
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/tcmode-default.inc b/import-layers/yocto-poky/meta/conf/distro/include/tcmode-default.inc
index c412420ea..ca3c5ec90 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/tcmode-default.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/tcmode-default.inc
@@ -9,10 +9,10 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ = "gcc-cross-${TARGET_ARCH}"
PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs = "gcc-runtime"
PREFERRED_PROVIDER_gdb = "gdb"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils-crosssdk ?= "binutils-crosssdk-${SDK_ARCH}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc-initial = "gcc-crosssdk-initial-${SDK_ARCH}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_ARCH}"
-PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_ARCH}"
+PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils-crosssdk ?= "binutils-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc-initial = "gcc-crosssdk-initial-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc = "gcc-crosssdk-${SDK_SYS}"
+PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ = "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs = "nativesdk-gcc-runtime"
# Default libc config
@@ -22,19 +22,19 @@ PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial = "${TCLIBC}-initial"
PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial ?= "nativesdk-glibc-initial"
PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
-GCCVERSION ?= "5.3%"
+GCCVERSION ?= "6.2%"
SDKGCCVERSION ?= "${GCCVERSION}"
-BINUVERSION ?= "2.26%"
-GDBVERSION ?= "7.10%"
-GLIBCVERSION ?= "2.23"
+BINUVERSION ?= "2.27%"
+GDBVERSION ?= "7.11%"
+GLIBCVERSION ?= "2.24"
UCLIBCVERSION ?= "1.0%"
-LINUXLIBCVERSION ?= "4.4"
+LINUXLIBCVERSION ?= "4.8%"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} ?= "${GCCVERSION}"
-PREFERRED_VERSION_gcc-crosssdk-${SDK_ARCH} ?= "${SDKGCCVERSION}"
-PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_ARCH} ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} ?= "${SDKGCCVERSION}"
PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-runtime ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-sanitizers ?= "${GCCVERSION}"
@@ -68,7 +68,7 @@ PREFERRED_VERSION_uclibc ?= "${UCLIBCVERSION}"
PREFERRED_VERSION_uclibc-initial ?= "${UCLIBCVERSION}"
# don't use version earlier than 1.4 for gzip-native, as it's necessary for
# some packages using an archive format incompatible with earlier gzip
-PREFERRED_VERSION_gzip-native ?= "1.6"
+PREFERRED_VERSION_gzip-native ?= "1.8"
# Setup suitable toolchain flags
require conf/distro/include/as-needed.inc
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/world-broken.inc b/import-layers/yocto-poky/meta/conf/distro/include/world-broken.inc
index a5f6371d3..d4bdddfcf 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/world-broken.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/world-broken.inc
@@ -47,3 +47,10 @@ EXCLUDE_FROM_WORLD_pn-perf_libc-musl = "1"
# error: 'RTLD_NEXT' was not declared in this scope
EXCLUDE_FROM_WORLD_pn-gcc-sanitizers_libc-musl = "1"
+
+# gcc fails to build when libuwind is staged before building gcc since
+# it then finds the unwind.h header from libunwind and not from libgcc
+# and on arm specially they are different since libgcc defines some functions
+# as macros which are functions in libunwind and it fails during linking
+# libbacktrace/backtrace.c:76: undefined reference to `_Unwind_GetIP'
+EXCLUDE_FROM_WORLD_pn-libunwind_libc-musl_arm = "1"
diff --git a/import-layers/yocto-poky/meta/conf/distro/include/yocto-uninative.inc b/import-layers/yocto-poky/meta/conf/distro/include/yocto-uninative.inc
index 85e613ac4..975edec9c 100644
--- a/import-layers/yocto-poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/import-layers/yocto-poky/meta/conf/distro/include/yocto-uninative.inc
@@ -6,6 +6,6 @@
# to the distro running on the build machine.
#
-UNINATIVE_URL = "http://downloads.yoctoproject.org/releases/uninative/0.95/"
-UNINATIVE_CHECKSUM[i686] ?= "5f27d7e0f4dd2ed80a7ff6a0d88af107b08e00765b31ed3aa180cc5ce15b0811"
-UNINATIVE_CHECKSUM[x86_64] ?= "26d46c61ad88cc245e31c88549717c0092a838d111b93ec169d88b08cc027581"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/1.4/"
+UNINATIVE_CHECKSUM[i686] ?= "b4bc60511ce479736808273ffa043df4ed2a225407dd7ca150ae6220d9ce76d5"
+UNINATIVE_CHECKSUM[x86_64] ?= "101ff8f2580c193488db9e76f9646fb6ed38b65fb76f403acb0e2178ce7127ca"
diff --git a/import-layers/yocto-poky/meta/conf/documentation.conf b/import-layers/yocto-poky/meta/conf/documentation.conf
index dcc324c6c..06527cb99 100644
--- a/import-layers/yocto-poky/meta/conf/documentation.conf
+++ b/import-layers/yocto-poky/meta/conf/documentation.conf
@@ -28,7 +28,7 @@ do_install_ptest_base[doc] = "Copies the runtime test suite files from the compi
do_kernel_checkout[doc] = "Checks out source/meta branches for a linux-yocto style kernel"
do_kernel_configcheck[doc] = "Validates the kernel configuration for a linux-yocto style kernel"
do_kernel_configme[doc] = "Assembles the kernel configuration for a linux-yocto style kernel"
-do_kernel_link_vmlinux[doc] = "Creates a symbolic link in arch/$arch/boot for vmlinux kernel images"
+do_kernel_link_images[doc] = "Creates a symbolic link in arch/$arch/boot for vmlinux and vmlinuz kernel images"
do_listtasks[doc] = "Lists all defined tasks for a target"
do_menuconfig[doc] = "Runs 'make menuconfig' for the kernel"
do_package[doc] = "Analyzes the content of the holding area and splits it into subsets based on available packages and files"
@@ -349,7 +349,6 @@ QMAKE_PROFILES[doc] = "Specifies your own subset of .pro files to be built for u
RCONFLICTS[doc] = "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
RDEPENDS[doc] = "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
REQUIRED_DISTRO_FEATURES[doc] = "When a recipe inherits the distro_features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
-RM_OLD_IMAGE[doc] = "Reclaims disk space by removing previously built versions of the same image from the images directory pointed to by the DEPLOY_DIR variable."
RM_WORK_EXCLUDE[doc] = "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
ROOTFS[doc] = "Indicates a filesystem image to include as the root filesystem."
ROOTFS_POSTPROCESS_COMMAND[doc] = "Added by classes to run post processing commands once the OpenEmbedded build system has created the root filesystem."
@@ -452,8 +451,12 @@ UBOOT_SUFFIX[doc] = "Points to the generated U-Boot extension."
UBOOT_TARGET[doc] = "Specifies the target used for building U-Boot."
USE_DEVFS[doc] = "When building images, specifies to populate or not /dev. This variable defaults to '1' (leave directory empty, surely because devtmpfs do the job). Set it to '0' to use makedevs (or consider using a custom file with IMAGE_DEVICE_TABLES)."
USER_CLASSES[doc] = "List of additional classes to use when building images that enable extra features."
+USERADD_ERROR_DYNAMIC[doc] = "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in any of the files listed in USERADD_UID_TABLES and USERADD_GID_TABLES. If set to 'warn', a warning will be issued instead."
+USERADD_GID_TABLES[doc] = "Specifies a password file to use for obtaining static group identification (gid) values when the OpenEmbedded build system adds a group to the system during package installation."
USERADD_PACKAGES[doc] = "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
USERADD_PARAM[doc] = "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
+USERADD_UID_TABLES[doc] = "Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the system during package installation."
+USERADDEXTENSION[doc] = "When set to 'useradd-staticids', causes the OpenEmbedded build system to base all user and group additions on files listed in USERADD_UID_TABLES and USERADD_GID_TABLES."
#W
diff --git a/import-layers/yocto-poky/meta/conf/layer.conf b/import-layers/yocto-poky/meta/conf/layer.conf
index 10b98f5bd..24b4df07f 100644
--- a/import-layers/yocto-poky/meta/conf/layer.conf
+++ b/import-layers/yocto-poky/meta/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_PRIORITY_core = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
-LAYERVERSION_core = "8"
+LAYERVERSION_core = "9"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
@@ -26,7 +26,6 @@ SIGGEN_EXCLUDERECIPES_ABISAFE += " \
connman-conf \
formfactor \
xserver-xf86-config \
- pointercal \
pointercal-xinput \
base-files \
keymaps \
@@ -47,6 +46,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ppp-dialin->ppp \
resolvconf->bash \
docbook-xsl-stylesheets->perl \
+ ca-certificates->openssl \
initramfs-framework->${VIRTUAL-RUNTIME_base-utils} \
initramfs-framework->systemd \
initramfs-framework->eudev \
diff --git a/import-layers/yocto-poky/meta/conf/machine-sdk/i586.conf b/import-layers/yocto-poky/meta/conf/machine-sdk/i586.conf
index baacce70a..41e5e159d 100644
--- a/import-layers/yocto-poky/meta/conf/machine-sdk/i586.conf
+++ b/import-layers/yocto-poky/meta/conf/machine-sdk/i586.conf
@@ -1,3 +1,4 @@
SDK_ARCH = "i586"
SDK_CC_ARCH = "-march=i586"
+ABIEXTENSION_class-nativesdk = ""
diff --git a/import-layers/yocto-poky/meta/conf/machine-sdk/i686.conf b/import-layers/yocto-poky/meta/conf/machine-sdk/i686.conf
index ffdb46131..fe406972c 100644
--- a/import-layers/yocto-poky/meta/conf/machine-sdk/i686.conf
+++ b/import-layers/yocto-poky/meta/conf/machine-sdk/i686.conf
@@ -1,2 +1,3 @@
SDK_ARCH = "i686"
SDK_CC_ARCH = "-march=i686"
+ABIEXTENSION_class-nativesdk = ""
diff --git a/import-layers/yocto-poky/meta/conf/machine-sdk/x86_64.conf b/import-layers/yocto-poky/meta/conf/machine-sdk/x86_64.conf
index 812d67c8d..61439b4fb 100644
--- a/import-layers/yocto-poky/meta/conf/machine-sdk/x86_64.conf
+++ b/import-layers/yocto-poky/meta/conf/machine-sdk/x86_64.conf
@@ -1 +1,2 @@
SDK_ARCH = "x86_64"
+ABIEXTENSION_class-nativesdk = ""
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/arm/arch-armv7ve.inc b/import-layers/yocto-poky/meta/conf/machine/include/arm/arch-armv7ve.inc
index 79e1ef655..e13156c17 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/arm/arch-armv7ve.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/arm/arch-armv7ve.inc
@@ -5,8 +5,7 @@ TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}"
-require conf/machine/include/arm/arch-armv6.inc
-require conf/machine/include/arm/feature-arm-neon.inc
+require conf/machine/include/arm/arch-armv7a.inc
# Little Endian base configs
AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4"
@@ -30,8 +29,8 @@ TUNE_FEATURES_tune-armv7ve-neon = "${TUNE_FEATURES_tune-armv7ve} neon"
TUNE_FEATURES_tune-armv7vet-neon = "${TUNE_FEATURES_tune-armv7vet} neon"
TUNE_FEATURES_tune-armv7ve-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4"
TUNE_FEATURES_tune-armv7vet-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4"
-PACKAGE_EXTRA_ARCHS_tune-armv7ve = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7ve armv7ve-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv7vet = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7ve armv7ve-vfp armv7vet2-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7ve = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ve armv7ve-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vet = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
@@ -63,8 +62,8 @@ TUNE_FEATURES_tune-armv7vehf-neon = "${TUNE_FEATURES_tune-armv7ve-neon}
TUNE_FEATURES_tune-armv7vethf-neon = "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard"
-PACKAGE_EXTRA_ARCHS_tune-armv7vehf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7vehf-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv7vethf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7vehf-vfp armv7vet2hf-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vehf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7vehf-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vethf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
@@ -96,8 +95,8 @@ TUNE_FEATURES_tune-armv7veb-neon = "${TUNE_FEATURES_tune-armv7ve-neon}
TUNE_FEATURES_tune-armv7vetb-neon = "${TUNE_FEATURES_tune-armv7vet-neon} bigendian"
TUNE_FEATURES_tune-armv7veb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7vetb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian"
-PACKAGE_EXTRA_ARCHS_tune-armv7veb = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7veb-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv7vetb = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7veb-vfp armv7vet2b-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7veb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7veb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vetb = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7veb-vfp armv7vet2b-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
@@ -129,8 +128,8 @@ TUNE_FEATURES_tune-armv7vehfb-neon = "${TUNE_FEATURES_tune-armv7vehf-neon
TUNE_FEATURES_tune-armv7vethfb-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian"
TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian"
-PACKAGE_EXTRA_ARCHS_tune-armv7vehfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7vehfb-vfp"
-PACKAGE_EXTRA_ARCHS_tune-armv7vethfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7vehfb-vfp armv7vet2hfb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vehfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7vehfb-vfp"
+PACKAGE_EXTRA_ARCHS_tune-armv7vethfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-neon.inc b/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-neon.inc
index 50d917522..b34af8e7c 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-neon.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-neon.inc
@@ -8,7 +8,7 @@ TUNEVALID[neon] = "Enable Neon SIMD accelerator unit."
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}"
TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit."
-TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3d16', '', d)}"
+TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}"
TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit."
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc b/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc
index 4247255c5..9ef31e70e 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -6,7 +6,7 @@ TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
TUNE_CCARGS .= "${@ (' -mfpu=%s ' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
-ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
+ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU', True).split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else ''}"
TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU', True) != '') else '' }"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/mips/README b/import-layers/yocto-poky/meta/conf/machine/include/mips/README
index c375f316d..62fa1561b 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/mips/README
+++ b/import-layers/yocto-poky/meta/conf/machine/include/mips/README
@@ -1,3 +1,6 @@
+2016/09/30 - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
+ - Add Release 6 support
+
2012/03/30 - Mark Hatle <mark.hatle@windriver.com>
- Initial Version
@@ -6,9 +9,14 @@ MIPS currently defines 12 ABIs. Combinations of:
*) Hardware/Software Floating Point
*) o32, n32, n64 ABI
+Release 6 of the ISA is a major revision and doesn't build up on previous
+releases of the ISA.
+
+For more details about tuples, check https://wiki.debian.org/Multiarch/Tuples
+
TUNE_ARCH, the GNU canonical arch, is defined as:
-mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}
+"mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}"
The package arch is defined in such a way to generated a standard naming
scheme. The scheme is: <mips variant>[-nf][-n32]
@@ -34,3 +42,12 @@ that the tune is using a non-floating point ABI.
MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous
values are not enough to distringuish the package. "-n32" is added when
building for N32 ABI.
+
+MIPSPKGSFX_R6 - This is used to specify the presence of release 6.
+"r6" is added in the tuple for release 6 of the isa.
+
+MIPSPKGSFX_64R6 - This is used to specify "isa" in the tuple.
+Release 6 onwards we use "mipsisa64" instead of just "mips64".
+
+MIPSPKGSFX_32R6 - This is used to specify "isa32" in the tuple.
+Release 6 onwards we use "mipsisa32" instead of just "mips".
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/mips/arch-mips.inc b/import-layers/yocto-poky/meta/conf/machine/include/mips/arch-mips.inc
index 89d17e7c2..6069ca1ec 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/mips/arch-mips.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/mips/arch-mips.inc
@@ -20,6 +20,9 @@ TUNECONFLICTS[n32] = "o32 n64"
ABIEXTENSION .= "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'n32', '' ,d)}"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n32', ' -mabi=n32', '', d)}"
+# user mode qemu doesn't support mips64 n32: "Invalid ELF image for this architecture"
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'n32', 'qemu-usermode', '', d)}"
+
TUNEVALID[n64] = "MIPS64 n64 ABI"
TUNECONFLICTS[n64] = "o32 n32"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n64', ' -mabi=64', '', d)}"
@@ -29,14 +32,22 @@ TUNEVALID[fpu-hard] = "Use hardware FPU"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', ' -msoft-float', d)}"
TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '', 'soft', d)}"
+# MIPS r6 ABI
+TUNEVALID[r6] = "Use r6"
+TUNEVALID[mipsisa64r6] = "Use 64r6"
+TUNEVALID[mipsisa32r6] = "Use 32r6"
+
# Package naming
MIPSPKGSFX_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}"
MIPSPKGSFX_BYTE = "${@bb.utils.contains('TUNE_FEATURES', 'n64' , '64', '', d)}"
MIPSPKGSFX_BYTE .= "${@bb.utils.contains('TUNE_FEATURES', 'n32' , '64', '', d)}"
MIPSPKGSFX_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard' , '', '-nf', d)}"
MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}"
+MIPSPKGSFX_R6 = "${@bb.utils.contains('TUNE_FEATURES', 'r6', 'r6', '', d)}"
+MIPSPKGSFX_64R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', 'isa', '', d)}"
+MIPSPKGSFX_32R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', 'isa32', '', d)}"
-TUNE_ARCH = "mips${MIPSPKGSFX_BYTE}${MIPSPKGSFX_ENDIAN}"
+TUNE_ARCH = "mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}"
TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}"
# Base tunes
@@ -100,3 +111,29 @@ TUNE_FEATURES_tune-mips64el-nf = "n64"
BASE_LIB_tune-mips64el-nf = "lib64"
MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}"
PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf"
+
+# MIPS 64 + o32
+AVAILTUNES += "mips64-o32 mips64el-o32"
+
+TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard"
+BASE_LIB_tune-mips64-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips mips64-o32"
+
+TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard"
+BASE_LIB_tune-mips64el-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mipsel mips64el-o32 mips64el-o32"
+
+# MIPS 64 o32 and Soft Float
+AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32"
+
+TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian"
+BASE_LIB_tune-mips64-nf-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips-nf mips64-nf-o32"
+
+TUNE_FEATURES_tune-mips64el-nf-o32 = "o32"
+BASE_LIB_tune-mips64el-nf-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mipsel-nf mips64el-nf-o32"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc b/import-layers/yocto-poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc
new file mode 100644
index 000000000..05011dec4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc
@@ -0,0 +1,17 @@
+TUNEVALID[mips16e] = "Build target packages with MIPS16e ASE instructions"
+MIPS_MIPS16E_OPT = "${@['mno-mips16', 'mips16'][d.getVar('MIPS_INSTRUCTION_SET', True) == 'mips16e']}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' -${MIPS_MIPS16E_OPT}', '', d)}"
+
+MIPSPKGSFX_MIPS16E .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', '-m16', '', d) if d.getVar('MIPS_MIPS16E_OPT', True) == 'mips16' else ''}"
+
+# Whether to compile with code to allow interworking between the two
+# instruction sets. This allows mips16e code to be executed on a primarily
+# mips32/64 system and vice versa. It is strongly recommended that DISTROs not
+# turn this off - the actual cost is very small.
+TUNEVALID[no-interlink-compressed] = "Disable mixing of standard and MIPS16e code"
+MIPS16_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-interlink-compressed', ' -mno-interlink-compressed', ' -minterlink-compressed', d)}"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' ${MIPS16_TUNE_CCARGS}', '', d)}"
+OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ':mips16e', '', d)}"
+
+# show status (if compiling in MIPS16e mode)
+BUILDCFG_VARS += "${@['', 'MIPS_INSTRUCTION_SET'][d.getVar('MIPS_INSTRUCTION_SET', True) == 'mips16e']}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/mips/tune-mips-24k.inc b/import-layers/yocto-poky/meta/conf/machine/include/mips/tune-mips-24k.inc
new file mode 100644
index 000000000..828acd42e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/mips/tune-mips-24k.inc
@@ -0,0 +1,51 @@
+DEFAULTTUNE ?= "mips32r2-24kc"
+
+MIPSPKGSFX_MIPS16E ??= ""
+
+require conf/machine/include/tune-mips32r2.inc
+require conf/machine/include/mips/feature-mips-mips16e.inc
+
+
+TUNEVALID[24kc] = "Enable MIPS 24Kc processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kc", " -mtune=24kc", "", d)}"
+TUNEVALID[24kec] = "Enable MIPS 24KEc processor optimizations, including DSP"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kec", " -mtune=24kec -mdsp", "", d)}"
+
+
+AVAILTUNES += "mips32r2-24kc mips32r2-24kec mips32r2-24kec-m16"
+AVAILTUNES += "mips32r2el-24kc mips32r2el-24kec mips32r2el-24kec-m16"
+
+# big endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16
+TUNE_FEATURES_tune-mips32r2-24kc = "${TUNE_FEATURES_tune-mips32r2-nf} 24kc"
+TUNE_FEATURES_tune-mips32r2-24kec = "${TUNE_FEATURES_tune-mips32r2-nf} 24kec"
+TUNE_FEATURES_tune-mips32r2-24kec-m16 = "${TUNE_FEATURES_tune-mips32r2-24kec} mips16e"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2-24kc = "mips32r2-24kc"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kc = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-nf} mips32r2-24kc-nf"
+QEMU_EXTRAOPTIONS_mips32r2-24kc-nf = " -cpu 24Kc"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2-24kec = "mips32r2-24kec"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kc} mips32r2-24kec-nf"
+QEMU_EXTRAOPTIONS_mips32r2-24kec-nf = " -cpu 24KEc"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2-24kec-m16 = "mips32r2-24kec${MIPSPKGSFX_MIPS16E}"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec-m16 = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec} mips32r2-24kec-m16-nf"
+QEMU_EXTRAOPTIONS_mips32r2-24kec-m16-nf = " -cpu 24KEc"
+
+
+# little endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16
+TUNE_FEATURES_tune-mips32r2el-24kc = "${TUNE_FEATURES_tune-mips32r2el-nf} 24kc"
+TUNE_FEATURES_tune-mips32r2el-24kec = "${TUNE_FEATURES_tune-mips32r2el-nf} 24kec"
+TUNE_FEATURES_tune-mips32r2el-24kec-m16 = "${TUNE_FEATURES_tune-mips32r2el-24kec} mips16e"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2el-24kc = "mips32r2el-24kc"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kc = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-nf} mips32r2el-24kc-nf"
+QEMU_EXTRAOPTIONS_mips32r2el-24kc-nf = " -cpu 24Kc"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2el-24kec = "mips32r2el-24kec"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kc} mips32r2el-24kec-nf"
+QEMU_EXTRAOPTIONS_mips32r2el-24kec-nf = " -cpu 24KEc"
+
+MIPSPKGSFX_VARIANT_tune-mips32r2el-24kec-m16 = "mips32r2el-24kec${MIPSPKGSFX_MIPS16E}"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec-m16 = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec} mips32r2el-24kec-m16-nf"
+QEMU_EXTRAOPTIONS_mips32r2el-24kec-m16-nf = " -cpu 24KEc"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/import-layers/yocto-poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc
index 49419b6e0..f751c6b76 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc
@@ -7,6 +7,9 @@ TUNECONFLICTS[m64] = "m32 nf"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}"
TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', '', d)}"
+# user mode qemu doesn't support ppc64
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}"
+
AVAILTUNES += "powerpc64"
TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard"
BASE_LIB_tune-powerpc64 = "lib64"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/qemu.inc b/import-layers/yocto-poky/meta/conf/machine/include/qemu.inc
index f44dbe658..2bc4dc2db 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/qemu.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/qemu.inc
@@ -29,3 +29,5 @@ EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
MACHINE_EXTRA_RRECOMMENDS += "rng-tools"
+
+IMAGE_CLASSES += "qemuboot"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-mips.inc b/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-mips.inc
new file mode 100644
index 000000000..0c60cf297
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-mips.inc
@@ -0,0 +1,8 @@
+# For runqemu
+IMAGE_CLASSES += "qemuboot"
+QB_MEM = "-m 256"
+QB_MACHINE = "-machine malta"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = "-vga cirrus -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
+QB_SYSTEM_NAME = "qemu-system-${TUNE_ARCH}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-x86.inc b/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-x86.inc
new file mode 100644
index 000000000..06ac983d4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/qemuboot-x86.inc
@@ -0,0 +1,15 @@
+# For runqemu
+IMAGE_CLASSES += "qemuboot"
+QB_SYSTEM_NAME_x86 = "qemu-system-i386"
+QB_CPU_x86 = "-cpu qemu32"
+QB_CPU_KVM_x86 = "-cpu kvm32"
+
+QB_SYSTEM_NAME_x86-64 = "qemu-system-x86_64"
+QB_CPU_x86-64 = "-cpu core2duo"
+QB_CPU_KVM_x86-64 = "-cpu kvm64"
+
+QB_AUDIO_DRV = "alsa"
+QB_AUDIO_OPT = "-soundhw ac97,es1370"
+QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r2.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r2.inc
index 0e95ec852..5e398cbe7 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r2.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r2.inc
@@ -6,6 +6,7 @@ TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations"
TUNECONFLICTS[mips32r2] = "n64 n32"
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', ' -march=mips32r2', '', d)}"
+# hard float
AVAILTUNES += "mips32r2 mips32r2el"
TUNE_FEATURES_tune-mips32r2 = "${TUNE_FEATURES_tune-mips} mips32r2"
@@ -15,3 +16,14 @@ PACKAGE_EXTRA_ARCHS_tune-mips32r2 = "mips mips32 mips32r2"
TUNE_FEATURES_tune-mips32r2el = "${TUNE_FEATURES_tune-mipsel} mips32r2"
MIPSPKGSFX_VARIANT_tune-mips32r2el = "mips32r2el"
PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el"
+
+# soft float
+AVAILTUNES += "mips32r2-nf mips32r2el-nf"
+
+TUNE_FEATURES_tune-mips32r2-nf = "${TUNE_FEATURES_tune-mips-nf} mips32r2"
+MIPSPKGSFX_VARIANT_tune-mips32r2-nf = "mips32r2"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2-nf = "mips-nf mips32-nf mips32r2-nf"
+
+TUNE_FEATURES_tune-mips32r2el-nf = "${TUNE_FEATURES_tune-mipsel-nf} mips32r2"
+MIPSPKGSFX_VARIANT_tune-mips32r2el-nf = "mips32r2el"
+PACKAGE_EXTRA_ARCHS_tune-mips32r2el-nf = "mipsel-nf mips32el-nf mips32r2el-nf"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r6.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r6.inc
new file mode 100644
index 000000000..47213198c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips32r6.inc
@@ -0,0 +1,29 @@
+DEFAULTTUNE ?= "mipsisa32r6el"
+
+require conf/machine/include/mips/arch-mips.inc
+
+TUNEVALID[mipsisa32r6] = "Enable mipsisa32r6 specific processor optimizations"
+TUNECONFLICTS[mipsisa32r6] = "n64 n32"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', ' -march=mips32r6', '', d)}"
+
+# Base Tunes
+AVAILTUNES += "mipsisa32r6 mipsisa32r6el"
+
+TUNE_FEATURES_tune-mipsisa32r6 = "bigendian mipsisa32r6 fpu-hard r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa32r6 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6 = "mipsisa32r6"
+
+TUNE_FEATURES_tune-mipsisa32r6el = "fpu-hard mipsisa32r6 r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa32r6el = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el = "mipsisa32r6el"
+
+# Soft Float
+AVAILTUNES += "mipsisa32r6-nf mipsisa32r6el-nf"
+
+TUNE_FEATURES_tune-mipsisa32r6-nf = "bigendian mipsisa32r6 r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa32r6-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6-nf = "mipsisa32r6-nf"
+
+TUNE_FEATURES_tune-mipsisa32r6el-nf = "mipsisa32r6 r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa32r6el-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el-nf = "mipsisa32r6el-nf"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r2.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r2.inc
new file mode 100644
index 000000000..75d7535ad
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r2.inc
@@ -0,0 +1,84 @@
+DEFAULTTUNE ?= "mips64r2"
+
+require conf/machine/include/tune-mips64.inc
+
+TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}"
+
+# Base tunes
+AVAILTUNES += "mips64r2 mips64r2el"
+
+TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2"
+BASE_LIB_tune-mips64r2 = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2"
+
+TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2"
+BASE_LIB_tune-mips64r2el = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el"
+
+# MIPS 64r2 Soft Float
+AVAILTUNES += "mips64r2-nf mips64r2el-nf"
+
+TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2"
+BASE_LIB_tune-mips64r2-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf"
+
+TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2"
+BASE_LIB_tune-mips64r2el-nf = "lib64"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf"
+
+# MIPS 64r2 n32
+AVAILTUNES += "mips64r2-n32 mips64r2el-n32"
+
+TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2"
+BASE_LIB_tune-mips64r2-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32"
+
+TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2"
+BASE_LIB_tune-mips64r2el-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32"
+
+# MIPS 64r2 n32 and Soft Float
+AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32"
+
+TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2"
+BASE_LIB_tune-mips64r2-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32"
+
+TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2"
+BASE_LIB_tune-mips64r2el-nf-n32 = "lib32"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32"
+
+# MIPS 64r2 o32
+AVAILTUNES += "mips64r2-o32 mips64r2el-o32"
+
+TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2"
+BASE_LIB_tune-mips64r2-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32"
+
+TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2"
+BASE_LIB_tune-mips64r2el-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32"
+
+# MIPS 64r2 o32 and Soft Float
+AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32"
+
+TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2"
+BASE_LIB_tune-mips64r2-nf-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32"
+
+TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2"
+BASE_LIB_tune-mips64r2el-nf-o32 = "lib"
+MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}"
+PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r6.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r6.inc
new file mode 100644
index 000000000..f0ad56468
--- /dev/null
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-mips64r6.inc
@@ -0,0 +1,32 @@
+DEFAULTTUNE ?= "mipsisa64r6el"
+
+require conf/machine/include/mips/arch-mips.inc
+
+TUNEVALID[mipsisa64r6] = "Enable mipsisa64r6 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', ' -march=mips64r6', '', d)}"
+
+# Base Tunes
+AVAILTUNES += "mipsisa64r6 mipsisa64r6el"
+
+TUNE_FEATURES_tune-mipsisa64r6 = "bigendian fpu-hard n64 mipsisa64r6 r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa64r6 = "${TUNE_ARCH}"
+BASE_LIB_tune-mipsisa64r6 = "lib64"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6 = "mipsisa64r6"
+
+TUNE_FEATURES_tune-mipsisa64r6el = "fpu-hard r6 n64 mipsisa64r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa64r6el = "${TUNE_ARCH}"
+BASE_LIB_tune-mipsisa64r6el = "lib64"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el = "mipsisa64r6el"
+
+# Soft Float
+AVAILTUNES += "mipsisa64r6-nf mipsisa64r6el-nf"
+
+TUNE_FEATURES_tune-mipsisa64r6-nf = "bigendian r6 n64 mipsisa64r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa64r6-nf = "${TUNE_ARCH}"
+BASE_LIB_tune-mipsisa64r6-nf = "lib64"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf = "mipsisa64r6"
+
+TUNE_FEATURES_tune-mipsisa64r6el-nf = "r6 n64 mipsisa64r6"
+MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-nf = "${TUNE_ARCH}"
+BASE_LIB_tune-mipsisa64r6el-nf = "lib64"
+PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el-nf = "mipsisa64r6el-nf"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce500mc.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce500mc.inc
index a1ca9be4f..bc26a0f87 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce500mc.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce500mc.inc
@@ -12,3 +12,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce50
# glibc configure options to get e500mc specific library (for sqrt)
GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppce500mc', '-with-cpu=e500mc', '', d)}"
+
+# pass -mcpu=e500mc for ppce500mc kernel cross compile
+TARGET_CC_KERNEL_ARCH = "-mcpu=e500mc"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce5500.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce5500.inc
index ace26146a..cebb24406 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce5500.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce5500.inc
@@ -18,3 +18,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppc64e5500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc
# glibc configure options to get e5500 specific library (for sqrt)
GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'e5500', '--with-cpu=e5500', '', d)}"
+
+# QEMU usermode fails with invalid instruction error (YOCTO: #10304)
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'e5500', ' qemu-usermode', '', d)}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce6500.inc b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce6500.inc
index da1e864e5..5db7e760c 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce6500.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/tune-ppce6500.inc
@@ -19,3 +19,6 @@ PACKAGE_EXTRA_ARCHS_tune-ppc64e6500 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc64} ppc
# glibc configure options to get e6500 specific library
GLIBC_EXTRA_OECONF_powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}"
GLIBC_EXTRA_OECONF_powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}"
+
+# QEMU usermode fails with invalid instruction error (YOCTO: #10304)
+MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' qemu-usermode', '', d)}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/include/x86-base.inc b/import-layers/yocto-poky/meta/conf/machine/include/x86-base.inc
index 5663145be..479e89e54 100644
--- a/import-layers/yocto-poky/meta/conf/machine/include/x86-base.inc
+++ b/import-layers/yocto-poky/meta/conf/machine/include/x86-base.inc
@@ -20,7 +20,7 @@ SERIAL_CONSOLE ?= "115200 ttyS0"
# kernel-related variables
#
PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "4.4%"
+PREFERRED_VERSION_linux-yocto ??= "4.8%"
#
# XSERVER subcomponents, used to build the XSERVER variable
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemuarm.conf b/import-layers/yocto-poky/meta/conf/machine/qemuarm.conf
index cdad03fc4..17402ef3b 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemuarm.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemuarm.conf
@@ -10,3 +10,11 @@ KERNEL_IMAGETYPE = "zImage"
SERIAL_CONSOLES = "115200;ttyAMA0 115200;ttyAMA1"
+# For runqemu
+QB_SYSTEM_NAME = "qemu-system-arm"
+QB_MACHINE = "-machine versatilepb"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = "-show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
+PREFERRED_VERSION_linux-yocto ??= "4.8%"
+QB_DTB = "${@base_version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemuarm64.conf b/import-layers/yocto-poky/meta/conf/machine/qemuarm64.conf
index f59fb15c5..d0750624a 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemuarm64.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemuarm64.conf
@@ -8,3 +8,17 @@ require conf/machine/include/qemu.inc
KERNEL_IMAGETYPE = "Image"
SERIAL_CONSOLES = "38400;ttyAMA0 38400;hvc0"
+
+# For runqemu
+QB_SYSTEM_NAME = "qemu-system-aarch64"
+QB_MEM = "-m 512"
+QB_MACHINE = "-machine virt"
+QB_CPU = "-cpu cortex-a57"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,38400"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = "-show-cursor -device virtio-rng-pci"
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-device,netdev=net0,mac=@MAC@"
+QB_SLIRP_OPT = "-netdev user,id=net0 -device virtio-net-device,netdev=net0"
+QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
+QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
+QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemumips.conf b/import-layers/yocto-poky/meta/conf/machine/qemumips.conf
index fbf813740..3182ea1b5 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemumips.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemumips.conf
@@ -4,6 +4,7 @@
require conf/machine/include/qemu.inc
require conf/machine/include/tune-mips32r2.inc
+require conf/machine/include/qemuboot-mips.inc
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemumips64.conf b/import-layers/yocto-poky/meta/conf/machine/qemumips64.conf
index 8c3f1fe28..9529f4c4f 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemumips64.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemumips64.conf
@@ -4,6 +4,7 @@
require conf/machine/include/qemu.inc
require conf/machine/include/tune-mips64.inc
+require conf/machine/include/qemuboot-mips.inc
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemuppc.conf b/import-layers/yocto-poky/meta/conf/machine/qemuppc.conf
index bf0038ddb..8703c2086 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemuppc.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemuppc.conf
@@ -11,3 +11,11 @@ KERNEL_IMAGETYPE = "vmlinux"
SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
+# For runqemu
+QB_SYSTEM_NAME = "qemu-system-ppc"
+QB_MACHINE = "-machine mac99"
+QB_CPU = "-cpu G4"
+QB_KERNEL_CMDLINE_APPEND = "console=tty console=ttyS0"
+# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
+QB_OPT_APPEND = "-show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no -device virtio-net-pci,netdev=net0,mac=@MAC@"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemux86-64.conf b/import-layers/yocto-poky/meta/conf/machine/qemux86-64.conf
index 489194aa6..b191ddd3c 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemux86-64.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemux86-64.conf
@@ -10,6 +10,7 @@ PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
require conf/machine/include/qemu.inc
DEFAULTTUNE ?= "core2-64"
require conf/machine/include/tune-core2.inc
+require conf/machine/include/qemuboot-x86.inc
KERNEL_IMAGETYPE = "bzImage"
@@ -22,7 +23,10 @@ XSERVER = "xserver-xorg \
xf86-input-evdev \
xf86-video-cirrus \
xf86-video-fbdev \
- xf86-video-vmware"
+ xf86-video-vmware \
+ xf86-video-modesetting \
+ xserver-xorg-module-libint10 \
+ "
MACHINE_FEATURES += "x86"
diff --git a/import-layers/yocto-poky/meta/conf/machine/qemux86.conf b/import-layers/yocto-poky/meta/conf/machine/qemux86.conf
index 3cc809158..8555fd6bf 100644
--- a/import-layers/yocto-poky/meta/conf/machine/qemux86.conf
+++ b/import-layers/yocto-poky/meta/conf/machine/qemux86.conf
@@ -9,6 +9,7 @@ PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
require conf/machine/include/qemu.inc
require conf/machine/include/tune-i586.inc
+require conf/machine/include/qemuboot-x86.inc
KERNEL_IMAGETYPE = "bzImage"
@@ -21,7 +22,10 @@ XSERVER = "xserver-xorg \
xf86-input-evdev \
xf86-video-cirrus \
xf86-video-fbdev \
- xf86-video-vmware"
+ xf86-video-vmware \
+ xf86-video-modesetting \
+ xserver-xorg-module-libint10 \
+ "
MACHINE_FEATURES += "x86"
diff --git a/import-layers/yocto-poky/meta/conf/multilib.conf b/import-layers/yocto-poky/meta/conf/multilib.conf
index 50303fb5d..1403a034a 100644
--- a/import-layers/yocto-poky/meta/conf/multilib.conf
+++ b/import-layers/yocto-poky/meta/conf/multilib.conf
@@ -24,4 +24,5 @@ OPKG_ARGS_append = " --force-maintainer --force-overwrite"
# inside the multilib sysroot. Fix this by explicitly adding the MACHINE's
# architecture-independent pkgconfig location to PKG_CONFIG_PATH.
PKG_CONFIG_PATH .= ":${STAGING_DIR}/${MACHINE}${datadir}/pkgconfig"
-PKG_CONFIG_PATH[vardepsexclude] = "MACHINE"
+PKG_CONFIG_PATH[vardepsexclude] = "MACHINE datadir STAGING_DIR"
+PKG_CONFIG_PATH[vardepvalueexclude] = ":${STAGING_DIR}/${MACHINE}${datadir}/pkgconfig"
diff --git a/import-layers/yocto-poky/meta/conf/sanity.conf b/import-layers/yocto-poky/meta/conf/sanity.conf
index 7021bf929..dcf60b74d 100644
--- a/import-layers/yocto-poky/meta/conf/sanity.conf
+++ b/import-layers/yocto-poky/meta/conf/sanity.conf
@@ -3,7 +3,7 @@
# See sanity.bbclass
#
# Expert users can confirm their sanity with "touch conf/sanity.conf"
-BB_MIN_VERSION = "1.29.1"
+BB_MIN_VERSION = "1.31.2"
SANITY_ABIFILE = "${TMPDIR}/abi_version"
diff --git a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/blacklist b/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/blacklist
deleted file mode 100644
index 5fdb8f2b9..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/blacklist
+++ /dev/null
@@ -1,6 +0,0 @@
-libneon27-gnutls
-openjdk-6-jre-headless
-openjdk-6-jre-lib
-openjdk-6-jre
-libdbus-1-3
-libneon27-gnutls
diff --git a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/filters b/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/filters
deleted file mode 100644
index a447f70e9..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/filters
+++ /dev/null
@@ -1,7 +0,0 @@
-/usr/local/lib/python2.6
-/usr/lib/python2.6
-/usr/lib/pymodules/python2.6
-/usr/lib/perl/5.10
-# which is part of the debianutils packages, but we don't want to put the entire
-# debianutils package in the whitelist.
-/usr/bin/which
diff --git a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/whitelist b/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/whitelist
deleted file mode 100644
index f0fe9633d..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/Ubuntu-10.04.1-64/whitelist
+++ /dev/null
@@ -1,23 +0,0 @@
-base-files
-dash
-libacl1
-libattr1
-libbz2-1.0
-libc6
-libc-bin
-libglib2.0-0
-libncurses5
-libselinux1
-libsqlite3-0
-libssl0.9.8
-mime-support
-perl-base
-python2.6
-python2.6-minimal
-python-apport
-python-gst0.10
-python-imaging
-python-minimal
-python-support
-python-zope.interface
-zlib1g
diff --git a/import-layers/yocto-poky/meta/conf/swabber/generic/blacklist b/import-layers/yocto-poky/meta/conf/swabber/generic/blacklist
deleted file mode 100644
index 396bcb4bf..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/generic/blacklist
+++ /dev/null
@@ -1,2 +0,0 @@
-udev
-dkpg
diff --git a/import-layers/yocto-poky/meta/conf/swabber/generic/filters b/import-layers/yocto-poky/meta/conf/swabber/generic/filters
deleted file mode 100644
index 3b10fcb37..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/generic/filters
+++ /dev/null
@@ -1,10 +0,0 @@
-/tmp
-/etc/localtime
-/etc/ld.so.cache
-/etc/ld.so.conf
-/etc/passwd
-/etc/group
-/etc/nsswitch.conf
-/proc
-/dev/null
-/dev/tty
diff --git a/import-layers/yocto-poky/meta/conf/swabber/generic/whitelist b/import-layers/yocto-poky/meta/conf/swabber/generic/whitelist
deleted file mode 100644
index 48ec2af2c..000000000
--- a/import-layers/yocto-poky/meta/conf/swabber/generic/whitelist
+++ /dev/null
@@ -1,15 +0,0 @@
-bash
-bzip2
-ccache
-coreutils
-cpp
-file
-findutils
-gawk
-grep
-hostname
-make
-sed
-tar
-util-linux
-zlib1g
diff --git a/import-layers/yocto-poky/meta/conf/toasterconf.json b/import-layers/yocto-poky/meta/conf/toasterconf.json
index c27880e10..796125bbf 100644
--- a/import-layers/yocto-poky/meta/conf/toasterconf.json
+++ b/import-layers/yocto-poky/meta/conf/toasterconf.json
@@ -13,7 +13,7 @@
"name": "Local OpenEmbedded",
"sourcetype": "local",
"apiurl": "../../",
- "branches": ["HEAD", "master", "jethro", "krogoth"],
+ "branches": ["HEAD", "master"],
"layers": [
{
"name": "openembedded-core",
@@ -27,13 +27,13 @@
"name": "OpenEmbedded",
"sourcetype": "layerindex",
"apiurl": "http://layers.openembedded.org/layerindex/api/",
- "branches": ["master", "jethro", "krogoth"]
+ "branches": ["master"]
},
{
"name": "Imported layers",
"sourcetype": "imported",
"apiurl": "",
- "branches": ["master", "jethro", "krogoth", "HEAD"]
+ "branches": ["master", "HEAD"]
}
],
@@ -45,18 +45,6 @@
"dirpath": ""
},
{
- "name": "jethro",
- "giturl": "git://git.openembedded.org/bitbake",
- "branch": "1.28",
- "dirpath": ""
- },
- {
- "name": "krogoth",
- "giturl": "git://git.openembedded.org/bitbake",
- "branch": "1.30",
- "dirpath": ""
- },
- {
"name": "HEAD",
"giturl": "git://git.openembedded.org/bitbake",
"branch": "HEAD",
@@ -77,24 +65,6 @@
"helptext": "Toaster will run your builds using the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch, where active development takes place. This is not a stable branch, so your builds might not work as expected."
},
{
- "name": "jethro",
- "description": "OpenEmbedded Jethro",
- "bitbake": "jethro",
- "branch": "jethro",
- "defaultlayers": [ "openembedded-core" ],
- "layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
- "helptext": "Toaster will run your builds with the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=jethro\">OpenEmbedded \"Jethro\"</a> branch"
- },
- {
- "name": "krogoth",
- "description": "OpenEmbedded Krogoth",
- "bitbake": "krogoth",
- "branch": "krogoth",
- "defaultlayers": [ "openembedded-core" ],
- "layersourcepriority": { "Imported layers": 99, "Local OpenEmbedded" : 10, "OpenEmbedded" : 0 },
- "helptext": "Toaster will run your builds with the tip of the <a href=\"http://cgit.openembedded.org/openembedded-core/log/?h=krogoth\">OpenEmbedded \"Krogoth\"</a> branch"
- },
- {
"name": "local",
"description": "Local OpenEmbedded",
"bitbake": "HEAD",
diff --git a/import-layers/yocto-poky/meta/files/ext-sdk-prepare.py b/import-layers/yocto-poky/meta/files/ext-sdk-prepare.py
index 605e2ebef..78c1d1630 100644
--- a/import-layers/yocto-poky/meta/files/ext-sdk-prepare.py
+++ b/import-layers/yocto-poky/meta/files/ext-sdk-prepare.py
@@ -5,93 +5,62 @@
import sys
import os
import subprocess
+import signal
-def exec_watch(cmd, **options):
- """Run program with stdout shown on sys.stdout"""
- if isinstance(cmd, basestring) and not "shell" in options:
- options["shell"] = True
+def reenable_sigint():
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
- process = subprocess.Popen(
- cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, **options
- )
-
- buf = ''
- while True:
- out = process.stdout.read(1)
- if out:
- sys.stdout.write(out)
- sys.stdout.flush()
- buf += out
- elif out == '' and process.poll() != None:
- break
-
- return process.returncode, buf
+def run_command_interruptible(cmd):
+ """
+ Run a command with output displayed on the console, but ensure any Ctrl+C is
+ processed only by the child process.
+ """
+ signal.signal(signal.SIGINT, signal.SIG_IGN)
+ try:
+ ret = subprocess.call(cmd, shell=True, preexec_fn=reenable_sigint)
+ finally:
+ signal.signal(signal.SIGINT, signal.SIG_DFL)
+ return ret
-def check_unexpected(lines, recipes):
- """Check for unexpected output lines from dry run"""
- unexpected = []
- for line in lines.splitlines():
- if 'Running task' in line:
- for recipe in recipes:
- if recipe in line:
- break
- else:
- line = line.split('Running', 1)[-1]
- if 'do_rm_work' not in line:
- unexpected.append(line.rstrip())
- elif 'Running setscene' in line:
- unexpected.append(line.rstrip())
- return unexpected
+def get_last_consolelog():
+ '''Return the most recent console log file'''
+ logdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'tmp', 'log', 'cooker')
+ if os.path.exists(logdir):
+ mcdir = os.listdir(logdir)
+ if mcdir:
+ logdir = os.path.join(logdir, mcdir[0])
+ logfiles = [os.path.join(logdir, fn) for fn in os.listdir(logdir)]
+ logfiles.sort(key=os.path.getmtime)
+ if logfiles:
+ return os.path.join(logdir, logfiles[-1])
+ return None
def main():
if len(sys.argv) < 2:
+ print('Please specify output log file')
+ return 1
+ logfile = sys.argv[1]
+ if len(sys.argv) < 3:
sdk_targets = []
else:
- sdk_targets = ' '.join(sys.argv[1:]).split()
+ sdk_targets = ' '.join(sys.argv[2:]).split()
if not sdk_targets:
# Just do a parse so the cache is primed
- ret, _ = exec_watch('bitbake -p')
- return ret
-
- print('Preparing SDK for %s...' % ', '.join(sdk_targets))
-
- ret, out = exec_watch('bitbake %s --setscene-only' % ' '.join(sdk_targets))
- if ret:
+ ret = run_command_interruptible('bitbake -p --quiet')
return ret
- targetlist = []
- for target in sdk_targets:
- if ':' in target:
- target = target.split(':')[0]
- if not target in targetlist:
- targetlist.append(target)
-
- recipes = []
- for target in targetlist:
- try:
- out = subprocess.check_output(('bitbake -e %s' % target).split(), stderr=subprocess.STDOUT)
- for line in out.splitlines():
- if line.startswith('FILE='):
- splitval = line.rstrip().split('=')
- if len(splitval) > 1:
- recipes.append(splitval[1].strip('"'))
- break
- except subprocess.CalledProcessError as e:
- print('ERROR: Failed to get recipe for target %s:\n%s' % (target, e.output))
- return 1
-
- try:
- out = subprocess.check_output('bitbake %s -n' % ' '.join(sdk_targets), stderr=subprocess.STDOUT, shell=True)
- unexpected = check_unexpected(out, recipes)
- except subprocess.CalledProcessError as e:
- print('ERROR: Failed to execute dry-run:\n%s' % e.output)
- return 1
+ with open(logfile, 'a') as logf:
+ logf.write('Preparing SDK for %s...\n' % ', '.join(sdk_targets))
- if unexpected:
- print('ERROR: Unexpected tasks or setscene left over to be executed:')
- for line in unexpected:
- print(' ' + line)
- return 1
+ ret = run_command_interruptible('BB_SETSCENE_ENFORCE=1 bitbake --quiet %s' % ' '.join(sdk_targets))
+ lastlog = get_last_consolelog()
+ if lastlog:
+ with open(lastlog, 'r') as f:
+ for line in f:
+ logf.write(line)
+ if ret:
+ print('ERROR: SDK preparation failed: error log written to %s' % logfile)
+ return ret
if __name__ == "__main__":
try:
diff --git a/import-layers/yocto-poky/meta/files/toolchain-shar-extract.sh b/import-layers/yocto-poky/meta/files/toolchain-shar-extract.sh
index 397be1119..9295ddc86 100644
--- a/import-layers/yocto-poky/meta/files/toolchain-shar-extract.sh
+++ b/import-layers/yocto-poky/meta/files/toolchain-shar-extract.sh
@@ -1,6 +1,8 @@
#!/bin/sh
[ -z "$ENVCLEANED" ] && exec /usr/bin/env -i ENVCLEANED=1 HOME="$HOME" \
+ LC_ALL=en_US.UTF-8 \
+ TERM=$TERM \
http_proxy="$http_proxy" https_proxy="$https_proxy" ftp_proxy="$ftp_proxy" \
no_proxy="$no_proxy" all_proxy="$all_proxy" GIT_PROXY_COMMAND="$GIT_PROXY_COMMAND" "$0" "$@"
[ -f /etc/environment ] && . /etc/environment
@@ -26,7 +28,7 @@ fi
if [ "$INST_ARCH" != "$SDK_ARCH" ]; then
# Allow for installation of ix86 SDK on x86_64 host
if [ "$INST_ARCH" != x86_64 -o "$SDK_ARCH" != ix86 ]; then
- echo "Error: Installation machine not supported!"
+ echo "Error: Incompatible SDK installer! Your host is $INST_ARCH and this SDK was built for $SDK_ARCH hosts."
exit 1
fi
fi
@@ -45,7 +47,8 @@ relocate=1
savescripts=0
verbose=0
publish=0
-while getopts ":yd:npDRS" OPT; do
+listcontents=0
+while getopts ":yd:npDRSl" OPT; do
case $OPT in
y)
answer="Y"
@@ -70,6 +73,9 @@ while getopts ":yd:npDRS" OPT; do
S)
savescripts=1
;;
+ l)
+ listcontents=1
+ ;;
*)
echo "Usage: $(basename $0) [-y] [-d <dir>]"
echo " -y Automatic yes to all prompts"
@@ -81,11 +87,18 @@ while getopts ":yd:npDRS" OPT; do
echo " -S Save relocation scripts"
echo " -R Do not relocate executables"
echo " -D use set -x to see what is going on"
+ echo " -l list files that will be extracted"
exit 1
;;
esac
done
+payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1))
+if [ "$listcontents" = "1" ] ; then
+ tail -n +$payload_offset $0| tar tvJ || exit 1
+ exit
+fi
+
titlestr="@SDK_TITLE@ installer version @SDK_VERSION@"
printf "%s\n" "$titlestr"
printf "%${#titlestr}s\n" | tr " " "="
@@ -130,6 +143,16 @@ if [ "$SDK_EXTENSIBLE" = "1" ]; then
"characters such as spaces, @, \$ or +. Abort!"
exit 1
fi
+ # The build system doesn't work well with /tmp on NFS
+ fs_dev_path="$target_sdk_dir"
+ while [ ! -d "$fs_dev_path" ] ; do
+ fs_dev_path=`dirname $fs_dev_path`
+ done
+ fs_dev_type=`stat -f -c '%t' "$fs_dev_path"`
+ if [ "$fsdevtype" = "6969" ] ; then
+ echo "The target directory path $target_sdk_dir is on NFS, this is not possible. Abort!"
+ exit 1
+ fi
else
if [ -n "$(echo $target_sdk_dir|grep ' ')" ]; then
echo "The target directory path ($target_sdk_dir) contains spaces. Abort!"
@@ -185,8 +208,6 @@ if [ ! -x $target_sdk_dir -o ! -w $target_sdk_dir -o ! -r $target_sdk_dir ]; the
$SUDO_EXEC mkdir -p $target_sdk_dir >/dev/null 2>&1
fi
-payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1))
-
printf "Extracting SDK..."
tail -n +$payload_offset $0| $SUDO_EXEC tar xJ -C $target_sdk_dir --checkpoint=.2500 $EXTRA_TAR_OPTIONS || exit 1
echo "done"
diff --git a/import-layers/yocto-poky/meta/files/toolchain-shar-relocate.sh b/import-layers/yocto-poky/meta/files/toolchain-shar-relocate.sh
index d4bcf0e55..e3c10018e 100644
--- a/import-layers/yocto-poky/meta/files/toolchain-shar-relocate.sh
+++ b/import-layers/yocto-poky/meta/files/toolchain-shar-relocate.sh
@@ -1,3 +1,8 @@
+if ! xargs --version > /dev/null 2>&1; then
+ echo "xargs is required by the relocation script, please install it first. Abort!"
+ exit 1
+fi
+
# fix dynamic loader paths in all ELF SDK binaries
native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"')
dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
@@ -7,6 +12,10 @@ if [ "$dl_path" = "" ] ; then
fi
executable_files=$($SUDO_EXEC find $native_sysroot -type f \
\( -perm -0100 -o -perm -0010 -o -perm -0001 \) -printf "'%h/%f' ")
+if [ "x$executable_files" = "x" ]; then
+ echo "SDK relocate failed, could not get executalbe files"
+ exit 1
+fi
tdir=`mktemp -d`
if [ x$tdir = x ] ; then
@@ -14,7 +23,7 @@ if [ x$tdir = x ] ; then
exit 1
fi
cat <<EOF >> $tdir/relocate_sdk.sh
-#!/bin/bash
+#!/bin/sh
for py in python python2 python3
do
PYTHON=\`which \${py} 2>/dev/null\`
@@ -53,9 +62,18 @@ done | xargs -n100 file | grep ":.*\(ASCII\|script\|source\).*text" | \
-e "s:^#! */usr/bin/perl.*:#! /usr/bin/env perl:g" \
-e "s: /usr/bin/perl: /usr/bin/env perl:g"
+if [ $? -ne 0 ]; then
+ echo "Failed to replace perl. Relocate script failed. Abort!"
+ exit 1
+fi
+
# change all symlinks pointing to @SDKPATH@
for l in $($SUDO_EXEC find $native_sysroot -type l); do
$SUDO_EXEC ln -sfn $(readlink $l|$SUDO_EXEC sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:") $l
+ if [ $? -ne 0 ]; then
+ echo "Failed to setup symlinks. Relocate script failed. Abort!"
+ exit 1
+ fi
done
echo done
diff --git a/import-layers/yocto-poky/meta/lib/oe/buildhistory_analysis.py b/import-layers/yocto-poky/meta/lib/oe/buildhistory_analysis.py
index 5395c768a..b6c0265c1 100644
--- a/import-layers/yocto-poky/meta/lib/oe/buildhistory_analysis.py
+++ b/import-layers/yocto-poky/meta/lib/oe/buildhistory_analysis.py
@@ -62,7 +62,7 @@ class ChangeRecord:
def pkglist_combine(depver):
pkglist = []
- for k,v in depver.iteritems():
+ for k,v in depver.items():
if v:
pkglist.append("%s (%s)" % (k,v))
else:
@@ -190,7 +190,7 @@ class FileChange:
def blob_to_dict(blob):
- alines = blob.data_stream.read().splitlines()
+ alines = [line for line in blob.data_stream.read().decode('utf-8').splitlines()]
adict = {}
for line in alines:
splitv = [i.strip() for i in line.split('=',1)]
@@ -220,7 +220,7 @@ def compare_file_lists(alines, blines):
adict = file_list_to_dict(alines)
bdict = file_list_to_dict(blines)
filechanges = []
- for path, splitv in adict.iteritems():
+ for path, splitv in adict.items():
newsplitv = bdict.pop(path, None)
if newsplitv:
# Check type
@@ -359,6 +359,24 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver):
if ' '.join(alist) == ' '.join(blist):
continue
+ if key == 'PKGR' and not report_all:
+ vers = []
+ # strip leading 'r' and dots
+ for ver in (astr.split()[0], bstr.split()[0]):
+ if ver.startswith('r'):
+ ver = ver[1:]
+ vers.append(ver.replace('.', ''))
+ maxlen = max(len(vers[0]), len(vers[1]))
+ try:
+ # pad with '0' and convert to int
+ vers = [int(ver.ljust(maxlen, '0')) for ver in vers]
+ except ValueError:
+ pass
+ else:
+ # skip decrements and increments
+ if abs(vers[0] - vers[1]) == 1:
+ continue
+
chg = ChangeRecord(path, key, astr, bstr, monitored)
changes.append(chg)
return changes
@@ -378,34 +396,34 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep
if filename == 'latest':
changes.extend(compare_dict_blobs(path, d.a_blob, d.b_blob, report_all, report_ver))
elif filename.startswith('latest.'):
- chg = ChangeRecord(path, filename, d.a_blob.data_stream.read(), d.b_blob.data_stream.read(), True)
+ chg = ChangeRecord(path, filename, d.a_blob.data_stream.read().decode('utf-8'), d.b_blob.data_stream.read().decode('utf-8'), True)
changes.append(chg)
elif path.startswith('images/'):
filename = os.path.basename(d.a_blob.path)
if filename in img_monitor_files:
if filename == 'files-in-image.txt':
- alines = d.a_blob.data_stream.read().splitlines()
- blines = d.b_blob.data_stream.read().splitlines()
+ alines = d.a_blob.data_stream.read().decode('utf-8').splitlines()
+ blines = d.b_blob.data_stream.read().decode('utf-8').splitlines()
filechanges = compare_file_lists(alines,blines)
if filechanges:
chg = ChangeRecord(path, filename, None, None, True)
chg.filechanges = filechanges
changes.append(chg)
elif filename == 'installed-package-names.txt':
- alines = d.a_blob.data_stream.read().splitlines()
- blines = d.b_blob.data_stream.read().splitlines()
+ alines = d.a_blob.data_stream.read().decode('utf-8').splitlines()
+ blines = d.b_blob.data_stream.read().decode('utf-8').splitlines()
filechanges = compare_lists(alines,blines)
if filechanges:
chg = ChangeRecord(path, filename, None, None, True)
chg.filechanges = filechanges
changes.append(chg)
else:
- chg = ChangeRecord(path, filename, d.a_blob.data_stream.read(), d.b_blob.data_stream.read(), True)
+ chg = ChangeRecord(path, filename, d.a_blob.data_stream.read().decode('utf-8'), d.b_blob.data_stream.read().decode('utf-8'), True)
changes.append(chg)
elif filename == 'image-info.txt':
changes.extend(compare_dict_blobs(path, d.a_blob, d.b_blob, report_all, report_ver))
elif '/image-files/' in path:
- chg = ChangeRecord(path, filename, d.a_blob.data_stream.read(), d.b_blob.data_stream.read(), True)
+ chg = ChangeRecord(path, filename, d.a_blob.data_stream.read().decode('utf-8'), d.b_blob.data_stream.read().decode('utf-8'), True)
changes.append(chg)
# Look for added preinst/postinst/prerm/postrm
@@ -419,7 +437,7 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep
if filename == 'latest':
addedpkgs.append(path)
elif filename.startswith('latest.'):
- chg = ChangeRecord(path, filename[7:], '', d.b_blob.data_stream.read(), True)
+ chg = ChangeRecord(path, filename[7:], '', d.b_blob.data_stream.read().decode('utf-8'), True)
addedchanges.append(chg)
for chg in addedchanges:
found = False
@@ -436,7 +454,7 @@ def process_changes(repopath, revision1, revision2='HEAD', report_all=False, rep
if path.startswith('packages/'):
filename = os.path.basename(d.a_blob.path)
if filename != 'latest' and filename.startswith('latest.'):
- chg = ChangeRecord(path, filename[7:], d.a_blob.data_stream.read(), '', True)
+ chg = ChangeRecord(path, filename[7:], d.a_blob.data_stream.read().decode('utf-8'), '', True)
changes.append(chg)
# Link related changes
diff --git a/import-layers/yocto-poky/meta/lib/oe/classextend.py b/import-layers/yocto-poky/meta/lib/oe/classextend.py
index 5107ecde2..4c8a00070 100644
--- a/import-layers/yocto-poky/meta/lib/oe/classextend.py
+++ b/import-layers/yocto-poky/meta/lib/oe/classextend.py
@@ -1,3 +1,5 @@
+import collections
+
class ClassExtender(object):
def __init__(self, extname, d):
self.extname = extname
@@ -77,7 +79,7 @@ class ClassExtender(object):
self.d.setVar("EXTENDPKGV", orig)
return
deps = bb.utils.explode_dep_versions2(deps)
- newdeps = {}
+ newdeps = collections.OrderedDict()
for dep in deps:
newdeps[self.map_depends(dep)] = deps[dep]
diff --git a/import-layers/yocto-poky/meta/lib/oe/classutils.py b/import-layers/yocto-poky/meta/lib/oe/classutils.py
index 58188fdd6..e7856c86f 100644
--- a/import-layers/yocto-poky/meta/lib/oe/classutils.py
+++ b/import-layers/yocto-poky/meta/lib/oe/classutils.py
@@ -1,4 +1,11 @@
-class ClassRegistry(type):
+
+class ClassRegistryMeta(type):
+ """Give each ClassRegistry their own registry"""
+ def __init__(cls, name, bases, attrs):
+ cls.registry = {}
+ type.__init__(cls, name, bases, attrs)
+
+class ClassRegistry(type, metaclass=ClassRegistryMeta):
"""Maintain a registry of classes, indexed by name.
Note that this implementation requires that the names be unique, as it uses
@@ -12,12 +19,6 @@ Subclasses of ClassRegistry may define an 'implemented' property to exert
control over whether the class will be added to the registry (e.g. to keep
abstract base classes out of the registry)."""
priority = 0
- class __metaclass__(type):
- """Give each ClassRegistry their own registry"""
- def __init__(cls, name, bases, attrs):
- cls.registry = {}
- type.__init__(cls, name, bases, attrs)
-
def __init__(cls, name, bases, attrs):
super(ClassRegistry, cls).__init__(name, bases, attrs)
try:
@@ -34,7 +35,7 @@ abstract base classes out of the registry)."""
@classmethod
def prioritized(tcls):
- return sorted(tcls.registry.values(),
+ return sorted(list(tcls.registry.values()),
key=lambda v: v.priority, reverse=True)
def unregister(cls):
diff --git a/import-layers/yocto-poky/meta/lib/oe/copy_buildsystem.py b/import-layers/yocto-poky/meta/lib/oe/copy_buildsystem.py
index 7b9a0ee06..afaff6859 100644
--- a/import-layers/yocto-poky/meta/lib/oe/copy_buildsystem.py
+++ b/import-layers/yocto-poky/meta/lib/oe/copy_buildsystem.py
@@ -17,7 +17,7 @@ class BuildSystem(object):
def __init__(self, context, d):
self.d = d
self.context = context
- self.layerdirs = d.getVar('BBLAYERS', True).split()
+ self.layerdirs = [os.path.abspath(pth) for pth in d.getVar('BBLAYERS', True).split()]
self.layers_exclude = (d.getVar('SDK_LAYERS_EXCLUDE', True) or "").split()
def copy_bitbake_and_layers(self, destdir, workspace_name=None):
@@ -26,7 +26,7 @@ class BuildSystem(object):
bb.utils.mkdirhier(destdir)
layers = list(self.layerdirs)
- corebase = self.d.getVar('COREBASE', True)
+ corebase = os.path.abspath(self.d.getVar('COREBASE', True))
layers.append(corebase)
# Exclude layers
@@ -124,7 +124,7 @@ class BuildSystem(object):
def generate_locked_sigs(sigfile, d):
bb.utils.mkdirhier(os.path.dirname(sigfile))
depd = d.getVar('BB_TASKDEPDATA', False)
- tasks = ['%s.%s' % (v[2], v[1]) for v in depd.itervalues()]
+ tasks = ['%s.%s' % (v[2], v[1]) for v in depd.values()]
bb.parse.siggen.dump_lockedsigs(sigfile, tasks)
def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output):
@@ -145,7 +145,7 @@ def prune_lockedsigs(excluded_tasks, excluded_targets, lockedsigs, pruned_output
invalue = True
f.write(line)
-def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_output, copy_output):
+def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_output, copy_output=None):
merged = {}
arch_order = []
with open(lockedsigs_main, 'r') as f:
@@ -195,23 +195,46 @@ def merge_lockedsigs(copy_tasks, lockedsigs_main, lockedsigs_extra, merged_outpu
fulltypes.append(typename)
f.write('SIGGEN_LOCKEDSIGS_TYPES = "%s"\n' % ' '.join(fulltypes))
- write_sigs_file(copy_output, tocopy.keys(), tocopy)
+ if copy_output:
+ write_sigs_file(copy_output, list(tocopy.keys()), tocopy)
if merged_output:
write_sigs_file(merged_output, arch_order, merged)
-def create_locked_sstate_cache(lockedsigs, input_sstate_cache, output_sstate_cache, d, fixedlsbstring=""):
+def create_locked_sstate_cache(lockedsigs, input_sstate_cache, output_sstate_cache, d, fixedlsbstring="", filterfile=None):
+ import shutil
bb.note('Generating sstate-cache...')
nativelsbstring = d.getVar('NATIVELSBSTRING', True)
- bb.process.run("gen-lockedsig-cache %s %s %s %s" % (lockedsigs, input_sstate_cache, output_sstate_cache, nativelsbstring))
- if fixedlsbstring:
+ bb.process.run("gen-lockedsig-cache %s %s %s %s %s" % (lockedsigs, input_sstate_cache, output_sstate_cache, nativelsbstring, filterfile or ''))
+ if fixedlsbstring and nativelsbstring != fixedlsbstring:
nativedir = output_sstate_cache + '/' + nativelsbstring
if os.path.isdir(nativedir):
destdir = os.path.join(output_sstate_cache, fixedlsbstring)
- bb.utils.mkdirhier(destdir)
+ for root, _, files in os.walk(nativedir):
+ for fn in files:
+ src = os.path.join(root, fn)
+ dest = os.path.join(destdir, os.path.relpath(src, nativedir))
+ if os.path.exists(dest):
+ # Already exists, and it'll be the same file, so just delete it
+ os.unlink(src)
+ else:
+ bb.utils.mkdirhier(os.path.dirname(dest))
+ shutil.move(src, dest)
+
+def check_sstate_task_list(d, targets, filteroutfile, cmdprefix='', cwd=None, logfile=None):
+ import subprocess
- dirlist = os.listdir(nativedir)
- for i in dirlist:
- src = os.path.join(nativedir, i)
- dest = os.path.join(destdir, i)
- os.rename(src, dest)
+ bb.note('Generating sstate task list...')
+
+ if not cwd:
+ cwd = os.getcwd()
+ if logfile:
+ logparam = '-l %s' % logfile
+ else:
+ logparam = ''
+ cmd = "%sBB_SETSCENE_ENFORCE=1 PSEUDO_DISABLED=1 oe-check-sstate %s -s -o %s %s" % (cmdprefix, targets, filteroutfile, logparam)
+ env = dict(d.getVar('BB_ORIGENV', False))
+ env.pop('BUILDDIR', '')
+ pathitems = env['PATH'].split(':')
+ env['PATH'] = ':'.join([item for item in pathitems if not item.endswith('/bitbake/bin')])
+ bb.process.run(cmd, stderr=subprocess.STDOUT, env=env, cwd=cwd, executable='/bin/bash')
diff --git a/import-layers/yocto-poky/meta/lib/oe/data.py b/import-layers/yocto-poky/meta/lib/oe/data.py
index e49572177..ee48950a8 100644
--- a/import-layers/yocto-poky/meta/lib/oe/data.py
+++ b/import-layers/yocto-poky/meta/lib/oe/data.py
@@ -7,11 +7,11 @@ def typed_value(key, d):
flags = d.getVarFlags(key)
if flags is not None:
flags = dict((flag, d.expand(value))
- for flag, value in flags.iteritems())
+ for flag, value in list(flags.items()))
else:
flags = {}
try:
return oe.maketype.create(d.getVar(key, True) or '', var_type, **flags)
- except (TypeError, ValueError), exc:
+ except (TypeError, ValueError) as exc:
bb.msg.fatal("Data", "%s: %s" % (key, str(exc)))
diff --git a/import-layers/yocto-poky/meta/lib/oe/distro_check.py b/import-layers/yocto-poky/meta/lib/oe/distro_check.py
index 8655a6fc1..87c52fae9 100644
--- a/import-layers/yocto-poky/meta/lib/oe/distro_check.py
+++ b/import-layers/yocto-poky/meta/lib/oe/distro_check.py
@@ -1,53 +1,35 @@
from contextlib import contextmanager
-@contextmanager
+
+from bb.utils import export_proxies
+
def create_socket(url, d):
import urllib
- socket = urllib.urlopen(url, proxies=get_proxies(d))
+
+ socket = None
try:
- yield socket
- finally:
- socket.close()
+ export_proxies(d)
+ socket = urllib.request.urlopen(url)
+ except:
+ bb.warn("distro_check: create_socket url %s can't access" % url)
-def get_proxies(d):
- proxies = {}
- for key in ['http', 'https', 'ftp', 'ftps', 'no', 'all']:
- proxy = d.getVar(key + '_proxy', True)
- if proxy:
- proxies[key] = proxy
- return proxies
+ return socket
def get_links_from_url(url, d):
"Return all the href links found on the web location"
- import sgmllib
-
- class LinksParser(sgmllib.SGMLParser):
- def parse(self, s):
- "Parse the given string 's'."
- self.feed(s)
- self.close()
-
- def __init__(self, verbose=0):
- "Initialise an object passing 'verbose' to the superclass."
- sgmllib.SGMLParser.__init__(self, verbose)
- self.hyperlinks = []
-
- def start_a(self, attributes):
- "Process a hyperlink and its 'attributes'."
- for name, value in attributes:
- if name == "href":
- self.hyperlinks.append(value.strip('/'))
-
- def get_hyperlinks(self):
- "Return the list of hyperlinks."
- return self.hyperlinks
+ from bs4 import BeautifulSoup, SoupStrainer
+
+ hyperlinks = []
- with create_socket(url,d) as sock:
+ webpage = ''
+ sock = create_socket(url,d)
+ if sock:
webpage = sock.read()
- linksparser = LinksParser()
- linksparser.parse(webpage)
- return linksparser.get_hyperlinks()
+ soup = BeautifulSoup(webpage, "html.parser", parse_only=SoupStrainer("a"))
+ for line in soup.find_all('a', href=True):
+ hyperlinks.append(line['href'].strip('/'))
+ return hyperlinks
def find_latest_numeric_release(url, d):
"Find the latest listed numeric release on the given url"
@@ -104,8 +86,8 @@ def get_source_package_list_from_url(url, section, d):
bb.note("Reading %s: %s" % (url, section))
links = get_links_from_url(url, d)
- srpms = filter(is_src_rpm, links)
- names_list = map(package_name_from_srpm, srpms)
+ srpms = list(filter(is_src_rpm, links))
+ names_list = list(map(package_name_from_srpm, srpms))
new_pkgs = []
for pkgs in names_list:
@@ -162,14 +144,18 @@ def find_latest_debian_release(url, d):
def get_debian_style_source_package_list(url, section, d):
"Return the list of package-names stored in the debian style Sources.gz file"
- with create_socket(url,d) as sock:
- webpage = sock.read()
- import tempfile
- tmpfile = tempfile.NamedTemporaryFile(mode='wb', prefix='oecore.', suffix='.tmp', delete=False)
- tmpfilename=tmpfile.name
- tmpfile.write(sock.read())
- tmpfile.close()
+ import tempfile
import gzip
+
+ webpage = ''
+ sock = create_socket(url,d)
+ if sock:
+ webpage = sock.read()
+
+ tmpfile = tempfile.NamedTemporaryFile(mode='wb', prefix='oecore.', suffix='.tmp', delete=False)
+ tmpfilename=tmpfile.name
+ tmpfile.write(sock.read())
+ tmpfile.close()
bb.note("Reading %s: %s" % (url, section))
f = gzip.open(tmpfilename)
@@ -266,9 +252,9 @@ def update_distro_data(distro_check_dir, datetime, d):
import fcntl
try:
if not os.path.exists(datetime_file):
- open(datetime_file, 'w+b').close() # touch the file so that the next open won't fail
+ open(datetime_file, 'w+').close() # touch the file so that the next open won't fail
- f = open(datetime_file, "r+b")
+ f = open(datetime_file, "r+")
fcntl.lockf(f, fcntl.LOCK_EX)
saved_datetime = f.read()
if saved_datetime[0:8] != datetime[0:8]:
@@ -357,8 +343,8 @@ def compare_in_distro_packages_list(distro_check_dir, d):
if tmp != None:
- list = tmp.split(' ')
- for item in list:
+ list = tmp.split(' ')
+ for item in list:
matching_distros.append(item)
bb.note("Matching: %s" % matching_distros)
return matching_distros
diff --git a/import-layers/yocto-poky/meta/lib/oe/gpg_sign.py b/import-layers/yocto-poky/meta/lib/oe/gpg_sign.py
index b83ee8672..38eb0cb13 100644
--- a/import-layers/yocto-poky/meta/lib/oe/gpg_sign.py
+++ b/import-layers/yocto-poky/meta/lib/oe/gpg_sign.py
@@ -71,11 +71,11 @@ class LocalSigner(object):
passphrase = fobj.readline();
job = subprocess.Popen(cmd, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
- (_, stderr) = job.communicate(passphrase)
+ (_, stderr) = job.communicate(passphrase.encode("utf-8"))
if job.returncode:
raise bb.build.FuncFailed("GPG exited with code %d: %s" %
- (job.returncode, stderr))
+ (job.returncode, stderr.decode("utf-8")))
except IOError as e:
bb.error("IO error (%s): %s" % (e.errno, e.strerror))
@@ -90,7 +90,7 @@ class LocalSigner(object):
"""Return the gpg version"""
import subprocess
try:
- return subprocess.check_output((self.gpg_bin, "--version")).split()[2]
+ return subprocess.check_output((self.gpg_bin, "--version")).split()[2].decode("utf-8")
except subprocess.CalledProcessError as e:
raise bb.build.FuncFailed("Could not get gpg version: %s" % e)
@@ -113,4 +113,3 @@ def get_signer(d, backend):
return LocalSigner(d)
else:
bb.fatal("Unsupported signing backend '%s'" % backend)
-
diff --git a/import-layers/yocto-poky/meta/lib/oe/license.py b/import-layers/yocto-poky/meta/lib/oe/license.py
index f0f661c3b..8d2fd1709 100644
--- a/import-layers/yocto-poky/meta/lib/oe/license.py
+++ b/import-layers/yocto-poky/meta/lib/oe/license.py
@@ -47,7 +47,7 @@ class LicenseVisitor(ast.NodeVisitor):
"""Get elements based on OpenEmbedded license strings"""
def get_elements(self, licensestr):
new_elements = []
- elements = filter(lambda x: x.strip(), license_operator.split(licensestr))
+ elements = list([x for x in license_operator.split(licensestr) if x.strip()])
for pos, element in enumerate(elements):
if license_pattern.match(element):
if pos > 0 and license_pattern.match(elements[pos-1]):
@@ -118,8 +118,8 @@ def is_included(licensestr, whitelist=None, blacklist=None):
def choose_licenses(alpha, beta):
"""Select the option in an OR which is the 'best' (has the most
included licenses)."""
- alpha_weight = len(filter(include_license, alpha))
- beta_weight = len(filter(include_license, beta))
+ alpha_weight = len(list(filter(include_license, alpha)))
+ beta_weight = len(list(filter(include_license, beta)))
if alpha_weight > beta_weight:
return alpha
else:
@@ -132,8 +132,8 @@ def is_included(licensestr, whitelist=None, blacklist=None):
blacklist = []
licenses = flattened_licenses(licensestr, choose_licenses)
- excluded = filter(lambda lic: exclude_license(lic), licenses)
- included = filter(lambda lic: include_license(lic), licenses)
+ excluded = [lic for lic in licenses if exclude_license(lic)]
+ included = [lic for lic in licenses if include_license(lic)]
if excluded:
return False, excluded
else:
@@ -215,3 +215,21 @@ def manifest_licenses(licensestr, dont_want_licenses, canonical_license, d):
manifest.licensestr = manifest.licensestr.replace('[', '(').replace(']', ')')
return (manifest.licensestr, manifest.licenses)
+
+class ListVisitor(LicenseVisitor):
+ """Record all different licenses found in the license string"""
+ def __init__(self):
+ self.licenses = set()
+
+ def visit_Str(self, node):
+ self.licenses.add(node.s)
+
+def list_licenses(licensestr):
+ """Simply get a list of all licenses mentioned in a license string.
+ Binary operators are not applied or taken into account in any way"""
+ visitor = ListVisitor()
+ try:
+ visitor.visit_string(licensestr)
+ except SyntaxError as exc:
+ raise LicenseSyntaxError(licensestr, exc)
+ return visitor.licenses
diff --git a/import-layers/yocto-poky/meta/lib/oe/maketype.py b/import-layers/yocto-poky/meta/lib/oe/maketype.py
index 139f33369..f88981dd9 100644
--- a/import-layers/yocto-poky/meta/lib/oe/maketype.py
+++ b/import-layers/yocto-poky/meta/lib/oe/maketype.py
@@ -6,7 +6,8 @@ the arguments of the type's factory for details.
"""
import inspect
-import types
+import oe.types as types
+import collections
available_types = {}
@@ -53,7 +54,9 @@ def get_callable_args(obj):
if type(obj) is type:
obj = obj.__init__
- args, varargs, keywords, defaults = inspect.getargspec(obj)
+ sig = inspect.signature(obj)
+ args = list(sig.parameters.keys())
+ defaults = list(s for s in sig.parameters.keys() if sig.parameters[s].default != inspect.Parameter.empty)
flaglist = []
if args:
if len(args) > 1 and args[0] == 'self':
@@ -93,7 +96,7 @@ for name in dir(types):
continue
obj = getattr(types, name)
- if not callable(obj):
+ if not isinstance(obj, collections.Callable):
continue
register(name, obj)
diff --git a/import-layers/yocto-poky/meta/lib/oe/manifest.py b/import-layers/yocto-poky/meta/lib/oe/manifest.py
index 42832f15d..95f8eb2df 100644
--- a/import-layers/yocto-poky/meta/lib/oe/manifest.py
+++ b/import-layers/yocto-poky/meta/lib/oe/manifest.py
@@ -4,11 +4,10 @@ import re
import bb
-class Manifest(object):
+class Manifest(object, metaclass=ABCMeta):
"""
This is an abstract class. Do not instantiate this directly.
"""
- __metaclass__ = ABCMeta
PKG_TYPE_MUST_INSTALL = "mip"
PKG_TYPE_MULTILIB = "mlp"
@@ -219,7 +218,7 @@ class RpmManifest(Manifest):
if var in self.vars_to_split:
split_pkgs = self._split_multilib(self.d.getVar(var, True))
if split_pkgs is not None:
- pkgs = dict(pkgs.items() + split_pkgs.items())
+ pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
else:
pkg_list = self.d.getVar(var, True)
if pkg_list is not None:
@@ -269,7 +268,7 @@ class OpkgManifest(Manifest):
if var in self.vars_to_split:
split_pkgs = self._split_multilib(self.d.getVar(var, True))
if split_pkgs is not None:
- pkgs = dict(pkgs.items() + split_pkgs.items())
+ pkgs = dict(list(pkgs.items()) + list(split_pkgs.items()))
else:
pkg_list = self.d.getVar(var, True)
if pkg_list is not None:
diff --git a/import-layers/yocto-poky/meta/lib/oe/package.py b/import-layers/yocto-poky/meta/lib/oe/package.py
index 288768954..02642f29f 100644
--- a/import-layers/yocto-poky/meta/lib/oe/package.py
+++ b/import-layers/yocto-poky/meta/lib/oe/package.py
@@ -8,7 +8,7 @@ def runstrip(arg):
# 8 - shared library
# 16 - kernel module
- import commands, stat, subprocess
+ import stat, subprocess
(file, elftype, strip) = arg
@@ -64,8 +64,8 @@ def filedeprunner(arg):
def process_deps(pipe, pkg, pkgdest, provides, requires):
for line in pipe:
- f = line.split(" ", 1)[0].strip()
- line = line.split(" ", 1)[1].strip()
+ f = line.decode("utf-8").split(" ", 1)[0].strip()
+ line = line.decode("utf-8").split(" ", 1)[1].strip()
if line.startswith("Requires:"):
i = requires
@@ -114,7 +114,12 @@ def read_shlib_providers(d):
m = list_re.match(file)
if m:
dep_pkg = m.group(1)
- fd = open(os.path.join(dir, file))
+ try:
+ fd = open(os.path.join(dir, file))
+ except IOError:
+ # During a build unrelated shlib files may be deleted, so
+ # handle files disappearing between the listdirs and open.
+ continue
lines = fd.readlines()
fd.close()
for l in lines:
@@ -149,7 +154,7 @@ def npm_split_package_dirs(pkgdir):
if os.path.exists(pkgfile):
with open(pkgfile, 'r') as f:
data = json.loads(f.read())
- packages[pkgname] = (relpth, data)
+ packages[pkgname] = (relpth, data)
# We want the main package for a module sorted *after* its subpackages
# (so that it doesn't otherwise steal the files for the subpackage), so
# this is a cheap way to do that whilst still having an otherwise
diff --git a/import-layers/yocto-poky/meta/lib/oe/package_manager.py b/import-layers/yocto-poky/meta/lib/oe/package_manager.py
index b4b359a8c..3cee9730a 100644
--- a/import-layers/yocto-poky/meta/lib/oe/package_manager.py
+++ b/import-layers/yocto-poky/meta/lib/oe/package_manager.py
@@ -5,9 +5,11 @@ import subprocess
import shutil
import multiprocessing
import re
+import collections
import bb
import tempfile
import oe.utils
+import oe.path
import string
from oe.gpg_sign import get_signer
@@ -17,20 +19,79 @@ def create_index(arg):
try:
bb.note("Executing '%s' ..." % index_cmd)
- result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True)
+ result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
except subprocess.CalledProcessError as e:
return("Index creation command '%s' failed with return code %d:\n%s" %
- (e.cmd, e.returncode, e.output))
+ (e.cmd, e.returncode, e.output.decode("utf-8")))
if result:
bb.note(result)
return None
-
-class Indexer(object):
- __metaclass__ = ABCMeta
-
+"""
+This method parse the output from the package managerand return
+a dictionary with the information of the packages. This is used
+when the packages are in deb or ipk format.
+"""
+def opkg_query(cmd_output):
+ verregex = re.compile(' \([=<>]* [^ )]*\)')
+ output = dict()
+ pkg = ""
+ arch = ""
+ ver = ""
+ filename = ""
+ dep = []
+ pkgarch = ""
+ for line in cmd_output.splitlines():
+ line = line.rstrip()
+ if ':' in line:
+ if line.startswith("Package: "):
+ pkg = line.split(": ")[1]
+ elif line.startswith("Architecture: "):
+ arch = line.split(": ")[1]
+ elif line.startswith("Version: "):
+ ver = line.split(": ")[1]
+ elif line.startswith("File: ") or line.startswith("Filename:"):
+ filename = line.split(": ")[1]
+ if "/" in filename:
+ filename = os.path.basename(filename)
+ elif line.startswith("Depends: "):
+ depends = verregex.sub('', line.split(": ")[1])
+ for depend in depends.split(", "):
+ dep.append(depend)
+ elif line.startswith("Recommends: "):
+ recommends = verregex.sub('', line.split(": ")[1])
+ for recommend in recommends.split(", "):
+ dep.append("%s [REC]" % recommend)
+ elif line.startswith("PackageArch: "):
+ pkgarch = line.split(": ")[1]
+
+ # When there is a blank line save the package information
+ elif not line:
+ # IPK doesn't include the filename
+ if not filename:
+ filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
+ if pkg:
+ output[pkg] = {"arch":arch, "ver":ver,
+ "filename":filename, "deps": dep, "pkgarch":pkgarch }
+ pkg = ""
+ arch = ""
+ ver = ""
+ filename = ""
+ dep = []
+ pkgarch = ""
+
+ if pkg:
+ if not filename:
+ filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
+ output[pkg] = {"arch":arch, "ver":ver,
+ "filename":filename, "deps": dep }
+
+ return output
+
+
+class Indexer(object, metaclass=ABCMeta):
def __init__(self, d, deploy_dir):
self.d = d
self.deploy_dir = deploy_dir
@@ -42,13 +103,8 @@ class Indexer(object):
class RpmIndexer(Indexer):
def get_ml_prefix_and_os_list(self, arch_var=None, os_var=None):
- package_archs = {
- 'default': [],
- }
-
- target_os = {
- 'default': "",
- }
+ package_archs = collections.OrderedDict()
+ target_os = collections.OrderedDict()
if arch_var is not None and os_var is not None:
package_archs['default'] = self.d.getVar(arch_var, True).split()
@@ -79,7 +135,7 @@ class RpmIndexer(Indexer):
target_os[eext[1]] = localdata.getVar("TARGET_OS",
True).strip()
- ml_prefix_list = dict()
+ ml_prefix_list = collections.OrderedDict()
for mlib in package_archs:
if mlib == 'default':
ml_prefix_list[mlib] = package_archs[mlib]
@@ -281,9 +337,7 @@ class DpkgIndexer(Indexer):
-class PkgsList(object):
- __metaclass__ = ABCMeta
-
+class PkgsList(object, metaclass=ABCMeta):
def __init__(self, d, rootfs_dir):
self.d = d
self.rootfs_dir = rootfs_dir
@@ -293,57 +347,6 @@ class PkgsList(object):
pass
- """
- This method parse the output from the package manager
- and return a dictionary with the information of the
- installed packages. This is used whne the packages are
- in deb or ipk format
- """
- def opkg_query(self, cmd_output):
- verregex = re.compile(' \([=<>]* [^ )]*\)')
- output = dict()
- filename = ""
- dep = []
- pkg = ""
- for line in cmd_output.splitlines():
- line = line.rstrip()
- if ':' in line:
- if line.startswith("Package: "):
- pkg = line.split(": ")[1]
- elif line.startswith("Architecture: "):
- arch = line.split(": ")[1]
- elif line.startswith("Version: "):
- ver = line.split(": ")[1]
- elif line.startswith("File: "):
- filename = line.split(": ")[1]
- elif line.startswith("Depends: "):
- depends = verregex.sub('', line.split(": ")[1])
- for depend in depends.split(", "):
- dep.append(depend)
- elif line.startswith("Recommends: "):
- recommends = verregex.sub('', line.split(": ")[1])
- for recommend in recommends.split(", "):
- dep.append("%s [REC]" % recommend)
- else:
- # IPK doesn't include the filename
- if not filename:
- filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
- if pkg:
- output[pkg] = {"arch":arch, "ver":ver,
- "filename":filename, "deps": dep }
- pkg = ""
- filename = ""
- dep = []
-
- if pkg:
- if not filename:
- filename = "%s_%s_%s.ipk" % (pkg, ver, arch)
- output[pkg] = {"arch":arch, "ver":ver,
- "filename":filename, "deps": dep }
-
- return output
-
-
class RpmPkgsList(PkgsList):
def __init__(self, d, rootfs_dir, arch_var=None, os_var=None):
super(RpmPkgsList, self).__init__(d, rootfs_dir)
@@ -357,10 +360,10 @@ class RpmPkgsList(PkgsList):
# Determine rpm version
cmd = "%s --version" % self.rpm_cmd
try:
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Getting rpm version failed. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
'''
Translate the RPM/Smart format names to the OE multilib format names
@@ -401,10 +404,10 @@ class RpmPkgsList(PkgsList):
"-t", self.image_rpmlib]
try:
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip()
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Cannot get the package dependencies. Command '%s' "
- "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output))
+ "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
return output
@@ -415,10 +418,10 @@ class RpmPkgsList(PkgsList):
try:
# bb.note(cmd)
- tmp_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).strip()
+ tmp_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).strip().decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Cannot get the installed packages list. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
output = dict()
deps = dict()
@@ -475,11 +478,13 @@ class OpkgPkgsList(PkgsList):
# output streams separately and check for empty stderr.
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
cmd_output, cmd_stderr = p.communicate()
+ cmd_output = cmd_output.decode("utf-8")
+ cmd_stderr = cmd_stderr.decode("utf-8")
if p.returncode or cmd_stderr:
bb.fatal("Cannot get the installed packages list. Command '%s' "
"returned %d and stderr:\n%s" % (cmd, p.returncode, cmd_stderr))
- return self.opkg_query(cmd_output)
+ return opkg_query(cmd_output)
class DpkgPkgsList(PkgsList):
@@ -492,19 +497,18 @@ class DpkgPkgsList(PkgsList):
cmd.append("-f=Package: ${Package}\nArchitecture: ${PackageArch}\nVersion: ${Version}\nFile: ${Package}_${Version}_${Architecture}.deb\nDepends: ${Depends}\nRecommends: ${Recommends}\n\n")
try:
- cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip()
+ cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).strip().decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Cannot get the installed packages list. Command '%s' "
- "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output))
+ "returned %d:\n%s" % (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
- return self.opkg_query(cmd_output)
+ return opkg_query(cmd_output)
-class PackageManager(object):
+class PackageManager(object, metaclass=ABCMeta):
"""
This is an abstract class. Do not instantiate this directly.
"""
- __metaclass__ = ABCMeta
def __init__(self, d):
self.d = d
@@ -594,15 +598,15 @@ class PackageManager(object):
globs]
exclude = self.d.getVar('PACKAGE_EXCLUDE_COMPLEMENTARY', True)
if exclude:
- cmd.extend(['-x', exclude])
+ cmd.extend(['--exclude=' + '|'.join(exclude.split())])
try:
bb.note("Installing complementary packages ...")
bb.note('Running %s' % cmd)
- complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
+ complementary_pkgs = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Could not compute complementary packages list. Command "
"'%s' returned %d:\n%s" %
- (' '.join(cmd), e.returncode, e.output))
+ (' '.join(cmd), e.returncode, e.output.decode("utf-8")))
self.install(complementary_pkgs.split(), attempt_only=True)
os.remove(installed_pkgs_file)
@@ -631,8 +635,8 @@ class PackageManager(object):
def construct_uris(self, uris, base_paths):
def _append(arr1, arr2, sep='/'):
res = []
- narr1 = map(lambda a: string.rstrip(a, sep), arr1)
- narr2 = map(lambda a: string.lstrip(string.rstrip(a, sep), sep), arr2)
+ narr1 = [a.rstrip(sep) for a in arr1]
+ narr2 = [a.rstrip(sep).lstrip(sep) for a in arr2]
for a1 in narr1:
if arr2:
for a2 in narr2:
@@ -682,7 +686,8 @@ class RpmPM(PackageManager):
if not os.path.exists(self.d.expand('${T}/saved')):
bb.utils.mkdirhier(self.d.expand('${T}/saved'))
- self.indexer = RpmIndexer(self.d, self.deploy_dir)
+ packageindex_dir = os.path.join(self.d.getVar('WORKDIR', True), 'rpms')
+ self.indexer = RpmIndexer(self.d, packageindex_dir)
self.pkgs_list = RpmPkgsList(self.d, self.target_rootfs, arch_var, os_var)
self.ml_prefix_list, self.ml_os_list = self.indexer.get_ml_prefix_and_os_list(arch_var, os_var)
@@ -697,18 +702,19 @@ class RpmPM(PackageManager):
arch_list = self.feed_archs.split()
else:
# List must be prefered to least preferred order
- default_platform_extra = set()
- platform_extra = set()
+ default_platform_extra = list()
+ platform_extra = list()
bbextendvariant = self.d.getVar('BBEXTENDVARIANT', True) or ""
for mlib in self.ml_os_list:
for arch in self.ml_prefix_list[mlib]:
plt = arch.replace('-', '_') + '-.*-' + self.ml_os_list[mlib]
if mlib == bbextendvariant:
- default_platform_extra.add(plt)
+ if plt not in default_platform_extra:
+ default_platform_extra.append(plt)
else:
- platform_extra.add(plt)
-
- platform_extra = platform_extra.union(default_platform_extra)
+ if plt not in platform_extra:
+ platform_extra.append(plt)
+ platform_extra = default_platform_extra + platform_extra
for canonical_arch in platform_extra:
arch = canonical_arch.split('-')[0]
@@ -724,7 +730,7 @@ class RpmPM(PackageManager):
for uri in feed_uris:
if arch_list:
for arch in arch_list:
- bb.note('Note: adding Smart channel url%d%s (%s)' %
+ bb.note('Adding Smart channel url%d%s (%s)' %
(uri_iterator, arch, channel_priority))
self._invoke_smart('channel --add url%d-%s type=rpm-md baseurl=%s/%s -y'
% (uri_iterator, arch, uri, arch))
@@ -732,7 +738,7 @@ class RpmPM(PackageManager):
(uri_iterator, arch, channel_priority))
channel_priority -= 5
else:
- bb.note('Note: adding Smart channel url%d (%s)' %
+ bb.note('Adding Smart channel url%d (%s)' %
(uri_iterator, channel_priority))
self._invoke_smart('channel --add url%d type=rpm-md baseurl=%s -y'
% (uri_iterator, uri))
@@ -774,12 +780,12 @@ class RpmPM(PackageManager):
try:
complementary_pkgs = subprocess.check_output(cmd,
stderr=subprocess.STDOUT,
- shell=True)
+ shell=True).decode("utf-8")
# bb.note(complementary_pkgs)
return complementary_pkgs
except subprocess.CalledProcessError as e:
bb.fatal("Could not invoke smart. Command "
- "'%s' returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "'%s' returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
def _search_pkg_name_in_feeds(self, pkg, feed_archs):
for arch in feed_archs:
@@ -798,7 +804,7 @@ class RpmPM(PackageManager):
(self.smart_cmd, self.smart_opt, pkg)
cmd += " | sed -ne 's/ *Provides://p'"
bb.note('cmd: %s' % cmd)
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
# Found a provider
if output:
bb.note('Found providers for %s: %s' % (pkg, output))
@@ -833,11 +839,13 @@ class RpmPM(PackageManager):
new_pkg = self._search_pkg_name_in_feeds(subst, feed_archs)
if not new_pkg:
# Failed to translate, package not found!
- err_msg = '%s not found in the %s feeds (%s).\n' % \
- (pkg, mlib, " ".join(feed_archs))
+ err_msg = '%s not found in the %s feeds (%s) in %s.' % \
+ (pkg, mlib, " ".join(feed_archs), self.d.getVar('DEPLOY_DIR_RPM', True))
if not attempt_only:
- err_msg += " ".join(self.fullpkglist)
- bb.fatal(err_msg)
+ bb.error(err_msg)
+ bb.fatal("This is often caused by an empty package declared " \
+ "in a recipe's PACKAGES variable. (Empty packages are " \
+ "not constructed unless ALLOW_EMPTY_<pkg> = '1' is used.)")
bb.warn(err_msg)
else:
new_pkgs.append(new_pkg)
@@ -850,11 +858,13 @@ class RpmPM(PackageManager):
default_archs = self.ml_prefix_list['default']
new_pkg = self._search_pkg_name_in_feeds(pkg, default_archs)
if not new_pkg:
- err_msg = '%s not found in the base feeds (%s).\n' % \
- (pkg, ' '.join(default_archs))
+ err_msg = '%s not found in the feeds (%s) in %s.' % \
+ (pkg, " ".join(default_archs), self.d.getVar('DEPLOY_DIR_RPM', True))
if not attempt_only:
- err_msg += " ".join(self.fullpkglist)
- bb.fatal(err_msg)
+ bb.error(err_msg)
+ bb.fatal("This is often caused by an empty package declared " \
+ "in a recipe's PACKAGES variable. (Empty packages are " \
+ "not constructed unless ALLOW_EMPTY_<pkg> = '1' is used.)")
bb.warn(err_msg)
else:
new_pkgs.append(new_pkg)
@@ -946,7 +956,7 @@ class RpmPM(PackageManager):
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
except subprocess.CalledProcessError as e:
bb.fatal("Create rpm database failed. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
# Import GPG key to RPM database of the target system
if self.d.getVar('RPM_SIGN_PACKAGES', True) == '1':
pubkey_path = self.d.getVar('RPM_GPG_PUBKEY', True)
@@ -1006,9 +1016,19 @@ class RpmPM(PackageManager):
ch_already_added = []
for canonical_arch in platform_extra:
arch = canonical_arch.split('-')[0]
- arch_channel = os.path.join(self.deploy_dir, arch)
- if os.path.exists(arch_channel) and not arch in ch_already_added:
- bb.note('Note: adding Smart channel %s (%s)' %
+ arch_channel = os.path.join(self.d.getVar('WORKDIR', True), 'rpms', arch)
+ oe.path.remove(arch_channel)
+ deploy_arch_dir = os.path.join(self.deploy_dir, arch)
+ if not os.path.exists(deploy_arch_dir):
+ continue
+
+ lockfilename = self.d.getVar('DEPLOY_DIR_RPM', True) + "/rpm.lock"
+ lf = bb.utils.lockfile(lockfilename, False)
+ oe.path.copyhardlinktree(deploy_arch_dir, arch_channel)
+ bb.utils.unlockfile(lf)
+
+ if not arch in ch_already_added:
+ bb.note('Adding Smart channel %s (%s)' %
(arch, channel_priority))
self._invoke_smart('channel --add %s type=rpm-md baseurl=%s -y'
% (arch, arch_channel))
@@ -1080,8 +1100,8 @@ class RpmPM(PackageManager):
native_root)
open(self.scriptlet_wrapper, 'w+').write(scriptlet_content)
- bb.note("Note: configuring RPM cross-install scriptlet_wrapper")
- os.chmod(self.scriptlet_wrapper, 0755)
+ bb.note("configuring RPM cross-install scriptlet_wrapper")
+ os.chmod(self.scriptlet_wrapper, 0o755)
cmd = 'config --set rpm-extra-macros._cross_scriptlet_wrapper=%s' % \
self.scriptlet_wrapper
self._invoke_smart(cmd)
@@ -1099,7 +1119,7 @@ class RpmPM(PackageManager):
sub_rdep = sub_data.get("RDEPENDS_" + pkg)
if not sub_rdep:
continue
- done = bb.utils.explode_dep_versions2(sub_rdep).keys()
+ done = list(bb.utils.explode_dep_versions2(sub_rdep).keys())
next = done
# Find all the rdepends on dependency chain
while next:
@@ -1182,6 +1202,9 @@ class RpmPM(PackageManager):
new_depends[new_depend] = deps[depend]
pkgs = bb.utils.join_deps(new_depends, commasep=True).split(', ')
pkgs = self._pkg_translate_oe_to_smart(pkgs, attempt_only)
+ if not pkgs:
+ bb.note("There are no packages to install")
+ return
if not attempt_only:
bb.note('to be installed: %s' % ' '.join(pkgs))
cmd = "%s %s install -y %s" % \
@@ -1193,11 +1216,11 @@ class RpmPM(PackageManager):
cmd = "%s %s install --attempt -y %s" % \
(self.smart_cmd, self.smart_opt, ' '.join(pkgs))
try:
- output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
bb.note(output)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to install packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
'''
Remove pkgs with smart, the pkg name is smart/rpm format
@@ -1223,11 +1246,11 @@ class RpmPM(PackageManager):
try:
bb.note(cmd)
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
bb.note(output)
except subprocess.CalledProcessError as e:
bb.note("Unable to remove packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
def upgrade(self):
bb.note('smart upgrade')
@@ -1300,7 +1323,7 @@ class RpmPM(PackageManager):
install_pkgs.append(pkg)
except subprocess.CalledProcessError as e:
bb.note("Unable to dump install packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
# Recovery rpmsys channel
self._invoke_smart('channel --enable rpmsys')
return install_pkgs
@@ -1342,7 +1365,7 @@ class RpmPM(PackageManager):
available_pkgs.append(pkg.strip())
except subprocess.CalledProcessError as e:
bb.note("Unable to list all available packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
self.fullpkglist = available_pkgs
@@ -1369,12 +1392,12 @@ class RpmPM(PackageManager):
try:
bb.note(cmd)
- output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).strip()
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).strip().decode("utf-8")
bb.note(output)
- os.chmod(saved_dir, 0755)
+ os.chmod(saved_dir, 0o755)
except subprocess.CalledProcessError as e:
bb.fatal("Invoke save_rpmpostinst failed. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
'''Write common configuration for target usage'''
def rpm_setup_smart_target_config(self):
@@ -1398,8 +1421,157 @@ class RpmPM(PackageManager):
for f in rpm_db_locks:
bb.utils.remove(f, True)
+ """
+ Returns a dictionary with the package info.
+ """
+ def package_info(self, pkg):
+ cmd = "%s %s info --urls %s" % (self.smart_cmd, self.smart_opt, pkg)
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to list available packages. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+
+ # Set default values to avoid UnboundLocalError
+ arch = ""
+ ver = ""
+ filename = ""
+
+ #Parse output
+ for line in output.splitlines():
+ line = line.rstrip()
+ if line.startswith("Name:"):
+ pkg = line.split(": ")[1]
+ elif line.startswith("Version:"):
+ tmp_str = line.split(": ")[1]
+ ver, arch = tmp_str.split("@")
+ break
+
+ # Get filename
+ index = re.search("^URLs", output, re.MULTILINE)
+ tmp_str = output[index.end():]
+ for line in tmp_str.splitlines():
+ if "/" in line:
+ line = line.lstrip()
+ filename = line.split(" ")[0]
+ break
+
+ # To have the same data type than other package_info methods
+ filepath = os.path.join(self.deploy_dir, arch, filename)
+ pkg_dict = {}
+ pkg_dict[pkg] = {"arch":arch, "ver":ver, "filename":filename,
+ "filepath": filepath}
+
+ return pkg_dict
+
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+
+ """
+ def extract(self, pkg):
+ pkg_info = self.package_info(pkg)
+ if not pkg_info:
+ bb.fatal("Unable to get information for package '%s' while "
+ "trying to extract the package." % pkg)
+
+ pkg_path = pkg_info[pkg]["filepath"]
+
+ cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio")
+ rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio")
+
+ if not os.path.isfile(pkg_path):
+ bb.fatal("Unable to extract package for '%s'."
+ "File %s doesn't exists" % (pkg, pkg_path))
+
+ tmp_dir = tempfile.mkdtemp()
+ current_dir = os.getcwd()
+ os.chdir(tmp_dir)
+
+ try:
+ cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8")))
+ except OSError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename))
+
+ bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
+ os.chdir(current_dir)
+
+ return tmp_dir
+
+
+class OpkgDpkgPM(PackageManager):
+ """
+ This is an abstract class. Do not instantiate this directly.
+ """
+ def __init__(self, d):
+ super(OpkgDpkgPM, self).__init__(d)
+
+ """
+ Returns a dictionary with the package info.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+ def package_info(self, pkg, cmd):
+
+ try:
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ bb.fatal("Unable to list available packages. Command '%s' "
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
+ return opkg_query(output)
+
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+
+ This method extracts the common parts for Opkg and Dpkg
+ """
+ def extract(self, pkg, pkg_info):
+
+ ar_cmd = bb.utils.which(os.getenv("PATH"), "ar")
+ tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
+ pkg_path = pkg_info[pkg]["filepath"]
+
+ if not os.path.isfile(pkg_path):
+ bb.fatal("Unable to extract package for '%s'."
+ "File %s doesn't exists" % (pkg, pkg_path))
+
+ tmp_dir = tempfile.mkdtemp()
+ current_dir = os.getcwd()
+ os.chdir(tmp_dir)
+
+ try:
+ cmd = "%s x %s" % (ar_cmd, pkg_path)
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ cmd = "%s xf data.tar.*" % tar_cmd
+ output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
+ except subprocess.CalledProcessError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s" % (pkg_path, cmd, e.returncode, e.output.decode("utf-8")))
+ except OSError as e:
+ bb.utils.remove(tmp_dir, recurse=True)
+ bb.fatal("Unable to extract %s package. Command '%s' "
+ "returned %d:\n%s at %s" % (pkg_path, cmd, e.errno, e.strerror, e.filename))
+
+ bb.note("Extracted %s to %s" % (pkg_path, tmp_dir))
+ bb.utils.remove(os.path.join(tmp_dir, "debian-binary"))
+ bb.utils.remove(os.path.join(tmp_dir, "control.tar.gz"))
+ os.chdir(current_dir)
-class OpkgPM(PackageManager):
+ return tmp_dir
+
+
+class OpkgPM(OpkgDpkgPM):
def __init__(self, d, target_rootfs, config_file, archs, task_name='target'):
super(OpkgPM, self).__init__(d)
@@ -1411,7 +1583,7 @@ class OpkgPM(PackageManager):
self.deploy_dir = self.d.getVar("DEPLOY_DIR_IPK", True)
self.deploy_lock_file = os.path.join(self.deploy_dir, "deploy.lock")
self.opkg_cmd = bb.utils.which(os.getenv('PATH'), "opkg")
- self.opkg_args = "--volatile-cache -f %s -o %s " % (self.config_file, target_rootfs)
+ self.opkg_args = "--volatile-cache -f %s -t %s -o %s " % (self.config_file, self.d.expand('${T}/ipktemp/') ,target_rootfs)
self.opkg_args += self.d.getVar("OPKG_ARGS", True)
opkg_lib_dir = self.d.getVar('OPKGLIBDIR', True)
@@ -1552,12 +1724,12 @@ class OpkgPM(PackageManager):
for arch in archs:
if (self.feed_archs is None) and (not os.path.exists(os.path.join(self.deploy_dir, arch))):
continue
- bb.note('Note: adding opkg feed url-%s-%d (%s)' %
+ bb.note('Adding opkg feed url-%s-%d (%s)' %
(arch, uri_iterator, uri))
config_file.write("src/gz uri-%s-%d %s/%s\n" %
(arch, uri_iterator, uri, arch))
else:
- bb.note('Note: adding opkg feed url-%d (%s)' %
+ bb.note('Adding opkg feed url-%d (%s)' %
(uri_iterator, uri))
config_file.write("src/gz uri-%d %s\n" %
(uri_iterator, uri))
@@ -1574,7 +1746,7 @@ class OpkgPM(PackageManager):
except subprocess.CalledProcessError as e:
self.deploy_dir_unlock()
bb.fatal("Unable to update the package index files. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
self.deploy_dir_unlock()
@@ -1595,12 +1767,12 @@ class OpkgPM(PackageManager):
try:
bb.note("Installing the following packages: %s" % ' '.join(pkgs))
bb.note(cmd)
- output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
bb.note(output)
except subprocess.CalledProcessError as e:
(bb.fatal, bb.note)[attempt_only]("Unable to install packages. "
"Command '%s' returned %d:\n%s" %
- (cmd, e.returncode, e.output))
+ (cmd, e.returncode, e.output.decode("utf-8")))
def remove(self, pkgs, with_dependencies=True):
if with_dependencies:
@@ -1612,11 +1784,11 @@ class OpkgPM(PackageManager):
try:
bb.note(cmd)
- output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
+ output = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT).decode("utf-8")
bb.note(output)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to remove packages. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
def write_index(self):
self.deploy_dir_lock()
@@ -1659,10 +1831,10 @@ class OpkgPM(PackageManager):
pkg_info = cmd + pkg
try:
- output = subprocess.check_output(pkg_info.split(), stderr=subprocess.STDOUT).strip()
+ output = subprocess.check_output(pkg_info.split(), stderr=subprocess.STDOUT).strip().decode("utf-8")
except subprocess.CalledProcessError as e:
bb.fatal("Cannot get package info. Command '%s' "
- "returned %d:\n%s" % (pkg_info, e.returncode, e.output))
+ "returned %d:\n%s" % (pkg_info, e.returncode, e.output.decode("utf-8")))
if output == "":
bb.note("Ignored bad recommendation: '%s' is "
@@ -1699,7 +1871,7 @@ class OpkgPM(PackageManager):
subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to update. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
# Dummy installation
cmd = "%s %s --noaction install %s " % (self.opkg_cmd,
@@ -1709,7 +1881,7 @@ class OpkgPM(PackageManager):
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to dummy install packages. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
bb.utils.remove(temp_rootfs, True)
@@ -1734,8 +1906,37 @@ class OpkgPM(PackageManager):
self.opkg_dir,
symlinks=True)
+ """
+ Returns a dictionary with the package info.
+ """
+ def package_info(self, pkg):
+ cmd = "%s %s info %s" % (self.opkg_cmd, self.opkg_args, pkg)
+ pkg_info = super(OpkgPM, self).package_info(pkg, cmd)
+
+ pkg_arch = pkg_info[pkg]["arch"]
+ pkg_filename = pkg_info[pkg]["filename"]
+ pkg_info[pkg]["filepath"] = \
+ os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
+
+ return pkg_info
+
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+ """
+ def extract(self, pkg):
+ pkg_info = self.package_info(pkg)
+ if not pkg_info:
+ bb.fatal("Unable to get information for package '%s' while "
+ "trying to extract the package." % pkg)
+
+ tmp_dir = super(OpkgPM, self).extract(pkg, pkg_info)
+ bb.utils.remove(os.path.join(tmp_dir, "data.tar.gz"))
-class DpkgPM(PackageManager):
+ return tmp_dir
+
+class DpkgPM(OpkgDpkgPM):
def __init__(self, d, target_rootfs, archs, base_archs, apt_conf_dir=None):
super(DpkgPM, self).__init__(d)
self.target_rootfs = target_rootfs
@@ -1746,6 +1947,7 @@ class DpkgPM(PackageManager):
self.apt_conf_dir = apt_conf_dir
self.apt_conf_file = os.path.join(self.apt_conf_dir, "apt.conf")
self.apt_get_cmd = bb.utils.which(os.getenv('PATH'), "apt-get")
+ self.apt_cache_cmd = bb.utils.which(os.getenv('PATH'), "apt-cache")
self.apt_args = d.getVar("APT_ARGS", True)
@@ -1823,7 +2025,7 @@ class DpkgPM(PackageManager):
subprocess.check_output(p_full, stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
bb.note("%s for package %s failed with %d:\n%s" %
- (suffix[1], pkg_name, e.returncode, e.output))
+ (suffix[1], pkg_name, e.returncode, e.output.decode("utf-8")))
failed_pkgs.append(pkg_name)
break
@@ -1841,7 +2043,7 @@ class DpkgPM(PackageManager):
subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to update the package index files. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
self.deploy_dir_unlock()
@@ -1860,7 +2062,7 @@ class DpkgPM(PackageManager):
except subprocess.CalledProcessError as e:
(bb.fatal, bb.note)[attempt_only]("Unable to install packages. "
"Command '%s' returned %d:\n%s" %
- (cmd, e.returncode, e.output))
+ (cmd, e.returncode, e.output.decode("utf-8")))
# rename *.dpkg-new files/dirs
for root, dirs, files in os.walk(self.target_rootfs):
@@ -1891,7 +2093,7 @@ class DpkgPM(PackageManager):
subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
bb.fatal("Unable to remove packages. Command '%s' "
- "returned %d:\n%s" % (e.cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (e.cmd, e.returncode, e.output.decode("utf-8")))
def write_index(self):
self.deploy_dir_lock()
@@ -1925,11 +2127,11 @@ class DpkgPM(PackageManager):
for uri in feed_uris:
if arch_list:
for arch in arch_list:
- bb.note('Note: adding dpkg channel at (%s)' % uri)
+ bb.note('Adding dpkg channel at (%s)' % uri)
sources_file.write("deb %s/%s ./\n" %
(uri, arch))
else:
- bb.note('Note: adding dpkg channel at (%s)' % uri)
+ bb.note('Adding dpkg channel at (%s)' % uri)
sources_file.write("deb %s ./\n" % uri)
def _create_configs(self, archs, base_archs):
@@ -2024,11 +2226,40 @@ class DpkgPM(PackageManager):
subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
bb.fatal("Cannot fix broken dependencies. Command '%s' "
- "returned %d:\n%s" % (cmd, e.returncode, e.output))
+ "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))
def list_installed(self):
return DpkgPkgsList(self.d, self.target_rootfs).list_pkgs()
+ """
+ Returns a dictionary with the package info.
+ """
+ def package_info(self, pkg):
+ cmd = "%s show %s" % (self.apt_cache_cmd, pkg)
+ pkg_info = super(DpkgPM, self).package_info(pkg, cmd)
+
+ pkg_arch = pkg_info[pkg]["pkgarch"]
+ pkg_filename = pkg_info[pkg]["filename"]
+ pkg_info[pkg]["filepath"] = \
+ os.path.join(self.deploy_dir, pkg_arch, pkg_filename)
+
+ return pkg_info
+
+ """
+ Returns the path to a tmpdir where resides the contents of a package.
+
+ Deleting the tmpdir is responsability of the caller.
+ """
+ def extract(self, pkg):
+ pkg_info = self.package_info(pkg)
+ if not pkg_info:
+ bb.fatal("Unable to get information for package '%s' while "
+ "trying to extract the package." % pkg)
+
+ tmp_dir = super(DpkgPM, self).extract(pkg, pkg_info)
+ bb.utils.remove(os.path.join(tmp_dir, "data.tar.xz"))
+
+ return tmp_dir
def generate_index_files(d):
classes = d.getVar('PACKAGE_CLASSES', True).replace("package_", "").split()
diff --git a/import-layers/yocto-poky/meta/lib/oe/packagedata.py b/import-layers/yocto-poky/meta/lib/oe/packagedata.py
index bc0fd06bc..21d4de914 100644
--- a/import-layers/yocto-poky/meta/lib/oe/packagedata.py
+++ b/import-layers/yocto-poky/meta/lib/oe/packagedata.py
@@ -8,7 +8,7 @@ def read_pkgdatafile(fn):
pkgdata = {}
def decode(str):
- c = codecs.getdecoder("string_escape")
+ c = codecs.getdecoder("unicode_escape")
return c(str)[0]
if os.access(fn, os.R_OK):
@@ -66,7 +66,7 @@ def _pkgmap(d):
bb.warn("No files in %s?" % pkgdatadir)
files = []
- for pn in filter(lambda f: not os.path.isdir(os.path.join(pkgdatadir, f)), files):
+ for pn in [f for f in files if not os.path.isdir(os.path.join(pkgdatadir, f))]:
try:
pkgdata = read_pkgdatafile(os.path.join(pkgdatadir, pn))
except OSError:
diff --git a/import-layers/yocto-poky/meta/lib/oe/packagegroup.py b/import-layers/yocto-poky/meta/lib/oe/packagegroup.py
index a6fee5f95..97819279b 100644
--- a/import-layers/yocto-poky/meta/lib/oe/packagegroup.py
+++ b/import-layers/yocto-poky/meta/lib/oe/packagegroup.py
@@ -16,11 +16,11 @@ def packages(features, d):
yield pkg
def required_packages(features, d):
- req = filter(lambda feature: not is_optional(feature, d), features)
+ req = [feature for feature in features if not is_optional(feature, d)]
return packages(req, d)
def optional_packages(features, d):
- opt = filter(lambda feature: is_optional(feature, d), features)
+ opt = [feature for feature in features if is_optional(feature, d)]
return packages(opt, d)
def active_packages(features, d):
diff --git a/import-layers/yocto-poky/meta/lib/oe/patch.py b/import-layers/yocto-poky/meta/lib/oe/patch.py
index 9d3617290..0332f100f 100644
--- a/import-layers/yocto-poky/meta/lib/oe/patch.py
+++ b/import-layers/yocto-poky/meta/lib/oe/patch.py
@@ -117,43 +117,50 @@ class PatchSet(object):
return None
return os.sep.join(filesplit[striplevel:])
- copiedmode = False
- filelist = []
- with open(patchfile) as f:
- for line in f:
- if line.startswith('--- '):
- patchpth = patchedpath(line)
- if not patchpth:
- break
- if copiedmode:
- addedfile = patchpth
- else:
- removedfile = patchpth
- elif line.startswith('+++ '):
- addedfile = patchedpath(line)
- if not addedfile:
- break
- elif line.startswith('*** '):
- copiedmode = True
- removedfile = patchedpath(line)
- if not removedfile:
- break
- else:
- removedfile = None
- addedfile = None
-
- if addedfile and removedfile:
- if removedfile == '/dev/null':
- mode = 'A'
- elif addedfile == '/dev/null':
- mode = 'D'
- else:
- mode = 'M'
- if srcdir:
- fullpath = os.path.abspath(os.path.join(srcdir, addedfile))
- else:
- fullpath = addedfile
- filelist.append((fullpath, mode))
+ for encoding in ['utf-8', 'latin-1']:
+ try:
+ copiedmode = False
+ filelist = []
+ with open(patchfile) as f:
+ for line in f:
+ if line.startswith('--- '):
+ patchpth = patchedpath(line)
+ if not patchpth:
+ break
+ if copiedmode:
+ addedfile = patchpth
+ else:
+ removedfile = patchpth
+ elif line.startswith('+++ '):
+ addedfile = patchedpath(line)
+ if not addedfile:
+ break
+ elif line.startswith('*** '):
+ copiedmode = True
+ removedfile = patchedpath(line)
+ if not removedfile:
+ break
+ else:
+ removedfile = None
+ addedfile = None
+
+ if addedfile and removedfile:
+ if removedfile == '/dev/null':
+ mode = 'A'
+ elif addedfile == '/dev/null':
+ mode = 'D'
+ else:
+ mode = 'M'
+ if srcdir:
+ fullpath = os.path.abspath(os.path.join(srcdir, addedfile))
+ else:
+ fullpath = addedfile
+ filelist.append((fullpath, mode))
+ except UnicodeDecodeError:
+ continue
+ break
+ else:
+ raise PatchError('Unable to decode %s' % patchfile)
return filelist
@@ -274,30 +281,43 @@ class GitApplyTree(PatchTree):
def __init__(self, dir, d):
PatchTree.__init__(self, dir, d)
+ self.commituser = d.getVar('PATCH_GIT_USER_NAME', True)
+ self.commitemail = d.getVar('PATCH_GIT_USER_EMAIL', True)
@staticmethod
def extractPatchHeader(patchfile):
"""
Extract just the header lines from the top of a patch file
"""
- lines = []
- with open(patchfile, 'r') as f:
- for line in f.readlines():
- if line.startswith('Index: ') or line.startswith('diff -') or line.startswith('---'):
- break
- lines.append(line)
+ for encoding in ['utf-8', 'latin-1']:
+ lines = []
+ try:
+ with open(patchfile, 'r', encoding=encoding) as f:
+ for line in f:
+ if line.startswith('Index: ') or line.startswith('diff -') or line.startswith('---'):
+ break
+ lines.append(line)
+ except UnicodeDecodeError:
+ continue
+ break
+ else:
+ raise PatchError('Unable to find a character encoding to decode %s' % patchfile)
return lines
@staticmethod
def decodeAuthor(line):
from email.header import decode_header
authorval = line.split(':', 1)[1].strip().replace('"', '')
- return decode_header(authorval)[0][0]
+ result = decode_header(authorval)[0][0]
+ if hasattr(result, 'decode'):
+ result = result.decode('utf-8')
+ return result
@staticmethod
def interpretPatchHeader(headerlines):
import re
author_re = re.compile('[\S ]+ <\S+@\S+\.\S+>')
+ from_commit_re = re.compile('^From [a-z0-9]{40} .*')
outlines = []
author = None
date = None
@@ -327,11 +347,39 @@ class GitApplyTree(PatchTree):
# git is fussy about author formatting i.e. it must be Name <email@domain>
if author_re.match(authorval):
author = authorval
+ elif from_commit_re.match(line):
+ # We don't want the From <commit> line - if it's present it will break rebasing
+ continue
outlines.append(line)
+
+ if not subject:
+ firstline = None
+ for line in headerlines:
+ line = line.strip()
+ if firstline:
+ if line:
+ # Second line is not blank, the first line probably isn't usable
+ firstline = None
+ break
+ elif line:
+ firstline = line
+ if firstline and not firstline.startswith(('#', 'Index:', 'Upstream-Status:')) and len(firstline) < 100:
+ subject = firstline
+
return outlines, author, date, subject
@staticmethod
- def prepareCommit(patchfile):
+ def gitCommandUserOptions(cmd, commituser=None, commitemail=None, d=None):
+ if d:
+ commituser = d.getVar('PATCH_GIT_USER_NAME', True)
+ commitemail = d.getVar('PATCH_GIT_USER_EMAIL', True)
+ if commituser:
+ cmd += ['-c', 'user.name="%s"' % commituser]
+ if commitemail:
+ cmd += ['-c', 'user.email="%s"' % commitemail]
+
+ @staticmethod
+ def prepareCommit(patchfile, commituser=None, commitemail=None):
"""
Prepare a git commit command line based on the header from a patch file
(typically this is useful for patches that cannot be applied with "git am" due to formatting)
@@ -340,21 +388,24 @@ class GitApplyTree(PatchTree):
# Process patch header and extract useful information
lines = GitApplyTree.extractPatchHeader(patchfile)
outlines, author, date, subject = GitApplyTree.interpretPatchHeader(lines)
- if not author or not subject:
+ if not author or not subject or not date:
try:
- shellcmd = ["git", "log", "--format=email", "--diff-filter=A", "--", patchfile]
+ shellcmd = ["git", "log", "--format=email", "--follow", "--diff-filter=A", "--", patchfile]
out = runcmd(["sh", "-c", " ".join(shellcmd)], os.path.dirname(patchfile))
except CmdError:
out = None
if out:
_, newauthor, newdate, newsubject = GitApplyTree.interpretPatchHeader(out.splitlines())
- if not author or not date:
- # These really need to go together
+ if not author:
+ # If we're setting the author then the date should be set as well
author = newauthor
date = newdate
+ elif not date:
+ # If we don't do this we'll get the current date, at least this will be closer
+ date = newdate
if not subject:
subject = newsubject
- if subject:
+ if subject and outlines and not outlines[0].strip() == subject:
outlines.insert(0, '%s\n\n' % subject.strip())
# Write out commit message to a file
@@ -363,7 +414,9 @@ class GitApplyTree(PatchTree):
for line in outlines:
tf.write(line)
# Prepare git command
- cmd = ["git", "commit", "-F", tmpfile]
+ cmd = ["git"]
+ GitApplyTree.gitCommandUserOptions(cmd, commituser, commitemail)
+ cmd += ["commit", "-F", tmpfile]
# git doesn't like plain email addresses as authors
if author and '<' in author:
cmd.append('--author="%s"' % author)
@@ -384,16 +437,24 @@ class GitApplyTree(PatchTree):
out = runcmd(["sh", "-c", " ".join(shellcmd)], tree)
if out:
for srcfile in out.split():
- patchlines = []
- outfile = None
- with open(srcfile, 'r') as f:
- for line in f:
- if line.startswith(GitApplyTree.patch_line_prefix):
- outfile = line.split()[-1].strip()
- continue
- if line.startswith(GitApplyTree.ignore_commit_prefix):
- continue
- patchlines.append(line)
+ for encoding in ['utf-8', 'latin-1']:
+ patchlines = []
+ outfile = None
+ try:
+ with open(srcfile, 'r', encoding=encoding) as f:
+ for line in f:
+ if line.startswith(GitApplyTree.patch_line_prefix):
+ outfile = line.split()[-1].strip()
+ continue
+ if line.startswith(GitApplyTree.ignore_commit_prefix):
+ continue
+ patchlines.append(line)
+ except UnicodeDecodeError:
+ continue
+ break
+ else:
+ raise PatchError('Unable to find a character encoding to decode %s' % srcfile)
+
if not outfile:
outfile = os.path.basename(srcfile)
with open(os.path.join(outdir, outfile), 'w') as of:
@@ -434,12 +495,14 @@ class GitApplyTree(PatchTree):
# change other places which read it back
f.write('echo >> $1\n')
f.write('echo "%s: $PATCHFILE" >> $1\n' % GitApplyTree.patch_line_prefix)
- os.chmod(commithook, 0755)
+ os.chmod(commithook, 0o755)
shutil.copy2(commithook, applyhook)
try:
patchfilevar = 'PATCHFILE="%s"' % os.path.basename(patch['file'])
try:
- shellcmd = [patchfilevar, "git", "--work-tree=%s" % reporoot, "am", "-3", "--keep-cr", "-p%s" % patch['strippath']]
+ shellcmd = [patchfilevar, "git", "--work-tree=%s" % reporoot]
+ self.gitCommandUserOptions(shellcmd, self.commituser, self.commitemail)
+ shellcmd += ["am", "-3", "--keep-cr", "-p%s" % patch['strippath']]
return _applypatchhelper(shellcmd, patch, force, reverse, run)
except CmdError:
# Need to abort the git am, or we'll still be within it at the end
@@ -469,7 +532,7 @@ class GitApplyTree(PatchTree):
shellcmd = ["git", "reset", "HEAD", self.patchdir]
output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
# Commit the result
- (tmpfile, shellcmd) = self.prepareCommit(patch['file'])
+ (tmpfile, shellcmd) = self.prepareCommit(patch['file'], self.commituser, self.commitemail)
try:
shellcmd.insert(0, patchfilevar)
output += runcmd(["sh", "-c", " ".join(shellcmd)], self.dir)
@@ -672,7 +735,7 @@ class UserResolver(Resolver):
f.write("echo 'Run \"quilt refresh\" when patch is corrected, press CTRL+D to exit.'\n")
f.write("echo ''\n")
f.write(" ".join(patchcmd) + "\n")
- os.chmod(rcfile, 0775)
+ os.chmod(rcfile, 0o775)
self.terminal("bash --rcfile " + rcfile, 'Patch Rejects: Please fix patch rejects manually', self.patchset.d)
diff --git a/import-layers/yocto-poky/meta/lib/oe/path.py b/import-layers/yocto-poky/meta/lib/oe/path.py
index 413ebfb39..06a5af265 100644
--- a/import-layers/yocto-poky/meta/lib/oe/path.py
+++ b/import-layers/yocto-poky/meta/lib/oe/path.py
@@ -65,22 +65,30 @@ def copytree(src, dst):
# This way we also preserve hardlinks between files in the tree.
bb.utils.mkdirhier(dst)
- cmd = 'tar -cf - -C %s -p . | tar -xf - -C %s' % (src, dst)
- check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+ cmd = "tar --xattrs --xattrs-include='*' -cf - -C %s -p . | tar --xattrs --xattrs-include='*' -xf - -C %s" % (src, dst)
+ subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
def copyhardlinktree(src, dst):
""" Make the hard link when possible, otherwise copy. """
bb.utils.mkdirhier(dst)
if os.path.isdir(src) and not len(os.listdir(src)):
- return
+ return
if (os.stat(src).st_dev == os.stat(dst).st_dev):
# Need to copy directories only with tar first since cp will error if two
# writers try and create a directory at the same time
- cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -p --files-from - --no-recursion | tar -xf - -C %s' % (src, src, dst)
- check_output(cmd, shell=True, stderr=subprocess.STDOUT)
- cmd = 'cd %s; find . -print0 | cpio --null -pdlu %s' % (src, dst)
- check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+ cmd = "cd %s; find . -type d -print | tar --xattrs --xattrs-include='*' -cf - -C %s -p --no-recursion --files-from - | tar --xattrs --xattrs-include='*' -xf - -C %s" % (src, src, dst)
+ subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+ source = ''
+ if os.path.isdir(src):
+ import glob
+ if len(glob.glob('%s/.??*' % src)) > 0:
+ source = '%s/.??* ' % src
+ source = source + '%s/*' % src
+ else:
+ source = src
+ cmd = 'cp -afl --preserve=xattr %s %s' % (source, dst)
+ subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
else:
copytree(src, dst)
@@ -105,47 +113,6 @@ def symlink(source, destination, force=False):
if e.errno != errno.EEXIST or os.readlink(destination) != source:
raise
-class CalledProcessError(Exception):
- def __init__(self, retcode, cmd, output = None):
- self.retcode = retcode
- self.cmd = cmd
- self.output = output
- def __str__(self):
- return "Command '%s' returned non-zero exit status %d with output %s" % (self.cmd, self.retcode, self.output)
-
-# Not needed when we move to python 2.7
-def check_output(*popenargs, **kwargs):
- r"""Run command with arguments and return its output as a byte string.
-
- If the exit code was non-zero it raises a CalledProcessError. The
- CalledProcessError object will have the return code in the returncode
- attribute and output in the output attribute.
-
- The arguments are the same as for the Popen constructor. Example:
-
- >>> check_output(["ls", "-l", "/dev/null"])
- 'crw-rw-rw- 1 root root 1, 3 Oct 18 2007 /dev/null\n'
-
- The stdout argument is not allowed as it is used internally.
- To capture standard error in the result, use stderr=STDOUT.
-
- >>> check_output(["/bin/sh", "-c",
- ... "ls -l non_existent_file ; exit 0"],
- ... stderr=STDOUT)
- 'ls: non_existent_file: No such file or directory\n'
- """
- if 'stdout' in kwargs:
- raise ValueError('stdout argument not allowed, it will be overridden.')
- process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs)
- output, unused_err = process.communicate()
- retcode = process.poll()
- if retcode:
- cmd = kwargs.get("args")
- if cmd is None:
- cmd = popenargs[0]
- raise CalledProcessError(retcode, cmd, output=output)
- return output
-
def find(dir, **walkoptions):
""" Given a directory, recurses into that directory,
returning all files as absolute paths. """
diff --git a/import-layers/yocto-poky/meta/lib/oe/prservice.py b/import-layers/yocto-poky/meta/lib/oe/prservice.py
index b0cbcb1fb..0054f954c 100644
--- a/import-layers/yocto-poky/meta/lib/oe/prservice.py
+++ b/import-layers/yocto-poky/meta/lib/oe/prservice.py
@@ -1,7 +1,7 @@
def prserv_make_conn(d, check = False):
import prserv.serv
- host_params = filter(None, (d.getVar("PRSERV_HOST", True) or '').split(':'))
+ host_params = list([_f for _f in (d.getVar("PRSERV_HOST", True) or '').split(':') if _f])
try:
conn = None
conn = prserv.serv.PRServerConnection(host_params[0], int(host_params[1]))
@@ -9,7 +9,7 @@ def prserv_make_conn(d, check = False):
if not conn.ping():
raise Exception('service not available')
d.setVar("__PRSERV_CONN",conn)
- except Exception, exc:
+ except Exception as exc:
bb.fatal("Connecting to PR service %s:%s failed: %s" % (host_params[0], host_params[1], str(exc)))
return conn
@@ -114,7 +114,7 @@ def prserv_export_tofile(d, metainfo, datainfo, lockdown, nomax=False):
bb.utils.unlockfile(lf)
def prserv_check_avail(d):
- host_params = filter(None, (d.getVar("PRSERV_HOST", True) or '').split(':'))
+ host_params = list([_f for _f in (d.getVar("PRSERV_HOST", True) or '').split(':') if _f])
try:
if len(host_params) != 2:
raise TypeError
diff --git a/import-layers/yocto-poky/meta/lib/oe/qa.py b/import-layers/yocto-poky/meta/lib/oe/qa.py
index 3cfeee737..fbe719d8e 100644
--- a/import-layers/yocto-poky/meta/lib/oe/qa.py
+++ b/import-layers/yocto-poky/meta/lib/oe/qa.py
@@ -43,48 +43,48 @@ class ELFFile:
if not os.path.isfile(self.name):
raise NotELFFileError("%s is not a normal file" % self.name)
- self.file = file(self.name, "r")
- # Read 4k which should cover most of the headers we're after
- self.data = self.file.read(4096)
+ with open(self.name, "rb") as f:
+ # Read 4k which should cover most of the headers we're after
+ self.data = f.read(4096)
if len(self.data) < ELFFile.EI_NIDENT + 4:
raise NotELFFileError("%s is not an ELF" % self.name)
- self.my_assert(self.data[0], chr(0x7f) )
- self.my_assert(self.data[1], 'E')
- self.my_assert(self.data[2], 'L')
- self.my_assert(self.data[3], 'F')
+ self.my_assert(self.data[0], 0x7f)
+ self.my_assert(self.data[1], ord('E'))
+ self.my_assert(self.data[2], ord('L'))
+ self.my_assert(self.data[3], ord('F'))
if self.bits == 0:
- if self.data[ELFFile.EI_CLASS] == chr(ELFFile.ELFCLASS32):
+ if self.data[ELFFile.EI_CLASS] == ELFFile.ELFCLASS32:
self.bits = 32
- elif self.data[ELFFile.EI_CLASS] == chr(ELFFile.ELFCLASS64):
+ elif self.data[ELFFile.EI_CLASS] == ELFFile.ELFCLASS64:
self.bits = 64
else:
# Not 32-bit or 64.. lets assert
raise NotELFFileError("ELF but not 32 or 64 bit.")
elif self.bits == 32:
- self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32))
+ self.my_assert(self.data[ELFFile.EI_CLASS], ELFFile.ELFCLASS32)
elif self.bits == 64:
- self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64))
+ self.my_assert(self.data[ELFFile.EI_CLASS], ELFFile.ELFCLASS64)
else:
raise NotELFFileError("Must specify unknown, 32 or 64 bit size.")
- self.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
+ self.my_assert(self.data[ELFFile.EI_VERSION], ELFFile.EV_CURRENT)
self.sex = self.data[ELFFile.EI_DATA]
- if self.sex == chr(ELFFile.ELFDATANONE):
+ if self.sex == ELFFile.ELFDATANONE:
raise NotELFFileError("self.sex == ELFDATANONE")
- elif self.sex == chr(ELFFile.ELFDATA2LSB):
+ elif self.sex == ELFFile.ELFDATA2LSB:
self.sex = "<"
- elif self.sex == chr(ELFFile.ELFDATA2MSB):
+ elif self.sex == ELFFile.ELFDATA2MSB:
self.sex = ">"
else:
raise NotELFFileError("Unknown self.sex")
def osAbi(self):
- return ord(self.data[ELFFile.EI_OSABI])
+ return self.data[ELFFile.EI_OSABI]
def abiVersion(self):
- return ord(self.data[ELFFile.EI_ABIVERSION])
+ return self.data[ELFFile.EI_ABIVERSION]
def abiSize(self):
return self.bits
@@ -144,8 +144,28 @@ class ELFFile:
bb.note("%s %s %s failed: %s" % (objdump, cmd, self.name, e))
return ""
+def elf_machine_to_string(machine):
+ """
+ Return the name of a given ELF e_machine field or the hex value as a string
+ if it isn't recognised.
+ """
+ try:
+ return {
+ 0x02: "SPARC",
+ 0x03: "x86",
+ 0x08: "MIPS",
+ 0x14: "PowerPC",
+ 0x28: "ARM",
+ 0x2A: "SuperH",
+ 0x32: "IA-64",
+ 0x3E: "x86-64",
+ 0xB7: "AArch64"
+ }[machine]
+ except:
+ return "Unknown (%s)" % repr(machine)
+
if __name__ == "__main__":
import sys
elf = ELFFile(sys.argv[1])
elf.open()
- print elf.isDynamic()
+ print(elf.isDynamic())
diff --git a/import-layers/yocto-poky/meta/lib/oe/recipeutils.py b/import-layers/yocto-poky/meta/lib/oe/recipeutils.py
index 6c7adb5bd..58e4028ae 100644
--- a/import-layers/yocto-poky/meta/lib/oe/recipeutils.py
+++ b/import-layers/yocto-poky/meta/lib/oe/recipeutils.py
@@ -2,7 +2,7 @@
#
# Some code borrowed from the OE layer index
#
-# Copyright (C) 2013-2015 Intel Corporation
+# Copyright (C) 2013-2016 Intel Corporation
#
import sys
@@ -11,31 +11,32 @@ import os.path
import tempfile
import textwrap
import difflib
-import utils
+from . import utils
import shutil
import re
import fnmatch
+import glob
from collections import OrderedDict, defaultdict
# Help us to find places to insert values
-recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'do_package()', 'do_deploy()']
+recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()']
# Variables that sometimes are a bit long but shouldn't be wrapped
nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]']
list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM']
meta_vars = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION']
-def pn_to_recipe(cooker, pn):
+def pn_to_recipe(cooker, pn, mc=''):
"""Convert a recipe name (PN) to the path to the recipe file"""
import bb.providers
- if pn in cooker.recipecache.pkg_pn:
- best = bb.providers.findBestProvider(pn, cooker.data, cooker.recipecache, cooker.recipecache.pkg_pn)
+ if pn in cooker.recipecaches[mc].pkg_pn:
+ best = bb.providers.findBestProvider(pn, cooker.data, cooker.recipecaches[mc], cooker.recipecaches[mc].pkg_pn)
return best[3]
- elif pn in cooker.recipecache.providers:
- filenames = cooker.recipecache.providers[pn]
- eligible, foundUnique = bb.providers.filterProviders(filenames, pn, cooker.expanded_data, cooker.recipecache)
+ elif pn in cooker.recipecaches[mc].providers:
+ filenames = cooker.recipecaches[mc].providers[pn]
+ eligible, foundUnique = bb.providers.filterProviders(filenames, pn, cooker.expanded_data, cooker.recipecaches[mc])
filename = eligible[0]
return filename
else:
@@ -49,13 +50,14 @@ def get_unavailable_reasons(cooker, pn):
return taskdata.get_reasons(pn)
-def parse_recipe(fn, appendfiles, d):
+def parse_recipe(cooker, fn, appendfiles):
"""
Parse an individual recipe file, optionally with a list of
bbappend files.
"""
import bb.cache
- envdata = bb.cache.Cache.loadDataFull(fn, appendfiles, d)
+ parser = bb.cache.NoCache(cooker.databuilder)
+ envdata = parser.loadDataFull(fn, appendfiles)
return envdata
@@ -78,7 +80,7 @@ def parse_recipe_simple(cooker, pn, d, appends=True):
appendfiles = cooker.collection.get_file_appends(recipefile)
else:
appendfiles = None
- return parse_recipe(recipefile, appendfiles, d)
+ return parse_recipe(cooker, recipefile, appendfiles)
def get_var_files(fn, varlist, d):
@@ -158,15 +160,19 @@ def split_var_value(value, assignment=True):
return outlist
-def patch_recipe_file(fn, values, patch=False, relpath=''):
- """Update or insert variable values into a recipe file (assuming you
- have already identified the exact file you want to update.)
+def patch_recipe_lines(fromlines, values, trailing_newline=True):
+ """Update or insert variable values into lines from a recipe.
Note that some manual inspection/intervention may be required
since this cannot handle all situations.
"""
import bb.utils
+ if trailing_newline:
+ newline = '\n'
+ else:
+ newline = ''
+
recipe_progression_res = []
recipe_progression_restrs = []
for item in recipe_progression:
@@ -190,14 +196,14 @@ def patch_recipe_file(fn, values, patch=False, relpath=''):
remainingnames = {}
for k in values.keys():
remainingnames[k] = get_recipe_pos(k)
- remainingnames = OrderedDict(sorted(remainingnames.iteritems(), key=lambda x: x[1]))
+ remainingnames = OrderedDict(sorted(remainingnames.items(), key=lambda x: x[1]))
modifying = False
def outputvalue(name, lines, rewindcomments=False):
if values[name] is None:
return
- rawtext = '%s = "%s"\n' % (name, values[name])
+ rawtext = '%s = "%s"%s' % (name, values[name], newline)
addlines = []
if name in nowrap_vars:
addlines.append(rawtext)
@@ -205,19 +211,19 @@ def patch_recipe_file(fn, values, patch=False, relpath=''):
splitvalue = split_var_value(values[name], assignment=False)
if len(splitvalue) > 1:
linesplit = ' \\\n' + (' ' * (len(name) + 4))
- addlines.append('%s = "%s%s"\n' % (name, linesplit.join(splitvalue), linesplit))
+ addlines.append('%s = "%s%s"%s' % (name, linesplit.join(splitvalue), linesplit, newline))
else:
addlines.append(rawtext)
else:
wrapped = textwrap.wrap(rawtext)
for wrapline in wrapped[:-1]:
- addlines.append('%s \\\n' % wrapline)
- addlines.append('%s\n' % wrapped[-1])
+ addlines.append('%s \\%s' % (wrapline, newline))
+ addlines.append('%s%s' % (wrapped[-1], newline))
if rewindcomments:
# Ensure we insert the lines before any leading comments
# (that we'd want to ensure remain leading the next value)
for i, ln in reversed(list(enumerate(lines))):
- if ln[0] != '#':
+ if not ln.startswith('#'):
lines[i+1:i+1] = addlines
break
else:
@@ -230,7 +236,7 @@ def patch_recipe_file(fn, values, patch=False, relpath=''):
if modifying:
# Insert anything that should come before this variable
pos = get_recipe_pos(varname)
- for k in remainingnames.keys()[:]:
+ for k in list(remainingnames):
if remainingnames[k] > -1 and pos >= remainingnames[k] and not k in existingnames:
outputvalue(k, newlines, rewindcomments=True)
del remainingnames[k]
@@ -247,19 +253,33 @@ def patch_recipe_file(fn, values, patch=False, relpath=''):
# First run - establish which values we want to set are already in the file
varlist = [re.escape(item) for item in values.keys()]
- with open(fn, 'r') as f:
- changed, fromlines = bb.utils.edit_metadata(f, varlist, patch_recipe_varfunc)
+ bb.utils.edit_metadata(fromlines, varlist, patch_recipe_varfunc)
# Second run - actually set everything
modifying = True
varlist.extend(recipe_progression_restrs)
changed, tolines = bb.utils.edit_metadata(fromlines, varlist, patch_recipe_varfunc, match_overrides=True)
if remainingnames:
- if tolines[-1].strip() != '':
+ if tolines and tolines[-1].strip() != '':
tolines.append('\n')
for k in remainingnames.keys():
outputvalue(k, tolines)
+ return changed, tolines
+
+
+def patch_recipe_file(fn, values, patch=False, relpath=''):
+ """Update or insert variable values into a recipe file (assuming you
+ have already identified the exact file you want to update.)
+ Note that some manual inspection/intervention may be required
+ since this cannot handle all situations.
+ """
+
+ with open(fn, 'r') as f:
+ fromlines = f.readlines()
+
+ _, tolines = patch_recipe_lines(fromlines, values)
+
if patch:
relfn = os.path.relpath(fn, relpath)
diff = difflib.unified_diff(fromlines, tolines, 'a/%s' % relfn, 'b/%s' % relfn)
@@ -318,7 +338,7 @@ def patch_recipe(d, fn, varvalues, patch=False, relpath=''):
varfiles = get_var_files(fn, varlist, d)
locs = localise_file_vars(fn, varfiles, varlist)
patches = []
- for f,v in locs.iteritems():
+ for f,v in locs.items():
vals = {k: varvalues[k] for k in v}
patchdata = patch_recipe_file(f, vals, patch, relpath)
if patch:
@@ -347,6 +367,7 @@ def copy_recipe_files(d, tgt_dir, whole_dir=False, download=True):
# Copy local files to target directory and gather any remote files
bb_dir = os.path.dirname(d.getVar('FILE', True)) + os.sep
remotes = []
+ copied = []
includes = [path for path in d.getVar('BBINCLUDED', True).split() if
path.startswith(bb_dir) and os.path.exists(path)]
for path in fetch.localpaths() + includes:
@@ -358,13 +379,14 @@ def copy_recipe_files(d, tgt_dir, whole_dir=False, download=True):
if not os.path.exists(subdir):
os.makedirs(subdir)
shutil.copy2(path, os.path.join(tgt_dir, relpath))
+ copied.append(relpath)
else:
remotes.append(path)
# Simply copy whole meta dir, if requested
if whole_dir:
shutil.copytree(bb_dir, tgt_dir)
- return remotes
+ return copied, remotes
def get_recipe_local_files(d, patches=False):
@@ -378,8 +400,16 @@ def get_recipe_local_files(d, patches=False):
bb.utils.exec_flat_python_func('patch_path', uri, fetch, '')):
continue
# Skip files that are referenced by absolute path
- if not os.path.isabs(fetch.ud[uri].basepath):
- ret[fetch.ud[uri].basepath] = fetch.localpath(uri)
+ fname = fetch.ud[uri].basepath
+ if os.path.isabs(fname):
+ continue
+ # Handle subdir=
+ subdir = fetch.ud[uri].parm.get('subdir', '')
+ if subdir:
+ if os.path.isabs(subdir):
+ continue
+ fname = os.path.join(subdir, fname)
+ ret[fname] = fetch.localpath(uri)
return ret
@@ -419,8 +449,8 @@ def get_recipe_patched_files(d):
def validate_pn(pn):
"""Perform validation on a recipe name (PN) for a new recipe."""
reserved_names = ['forcevariable', 'append', 'prepend', 'remove']
- if not re.match('[0-9a-z-.]+', pn):
- return 'Recipe name "%s" is invalid: only characters 0-9, a-z, - and . are allowed' % pn
+ if not re.match('^[0-9a-z-.+]+$', pn):
+ return 'Recipe name "%s" is invalid: only characters 0-9, a-z, -, + and . are allowed' % pn
elif pn in reserved_names:
return 'Recipe name "%s" is invalid: is a reserved keyword' % pn
elif pn.startswith('pn-'):
@@ -430,6 +460,60 @@ def validate_pn(pn):
return ''
+def get_bbfile_path(d, destdir, extrapathhint=None):
+ """
+ Determine the correct path for a recipe within a layer
+ Parameters:
+ d: Recipe-specific datastore
+ destdir: destination directory. Can be the path to the base of the layer or a
+ partial path somewhere within the layer.
+ extrapathhint: a path relative to the base of the layer to try
+ """
+ import bb.cookerdata
+
+ destdir = os.path.abspath(destdir)
+ destlayerdir = find_layerdir(destdir)
+
+ # Parse the specified layer's layer.conf file directly, in case the layer isn't in bblayers.conf
+ confdata = d.createCopy()
+ confdata.setVar('BBFILES', '')
+ confdata.setVar('LAYERDIR', destlayerdir)
+ destlayerconf = os.path.join(destlayerdir, "conf", "layer.conf")
+ confdata = bb.cookerdata.parse_config_file(destlayerconf, confdata)
+ pn = d.getVar('PN', True)
+
+ bbfilespecs = (confdata.getVar('BBFILES', True) or '').split()
+ if destdir == destlayerdir:
+ for bbfilespec in bbfilespecs:
+ if not bbfilespec.endswith('.bbappend'):
+ for match in glob.glob(bbfilespec):
+ splitext = os.path.splitext(os.path.basename(match))
+ if splitext[1] == '.bb':
+ mpn = splitext[0].split('_')[0]
+ if mpn == pn:
+ return os.path.dirname(match)
+
+ # Try to make up a path that matches BBFILES
+ # this is a little crude, but better than nothing
+ bpn = d.getVar('BPN', True)
+ recipefn = os.path.basename(d.getVar('FILE', True))
+ pathoptions = [destdir]
+ if extrapathhint:
+ pathoptions.append(os.path.join(destdir, extrapathhint))
+ if destdir == destlayerdir:
+ pathoptions.append(os.path.join(destdir, 'recipes-%s' % bpn, bpn))
+ pathoptions.append(os.path.join(destdir, 'recipes', bpn))
+ pathoptions.append(os.path.join(destdir, bpn))
+ elif not destdir.endswith(('/' + pn, '/' + bpn)):
+ pathoptions.append(os.path.join(destdir, bpn))
+ closepath = ''
+ for pathoption in pathoptions:
+ bbfilepath = os.path.join(pathoption, 'test.bb')
+ for bbfilespec in bbfilespecs:
+ if fnmatch.fnmatchcase(bbfilepath, bbfilespec):
+ return pathoption
+ return None
+
def get_bbappend_path(d, destlayerdir, wildcardver=False):
"""Determine how a bbappend for a recipe should be named and located within another layer"""
@@ -536,7 +620,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
bbappendlines = []
if extralines:
if isinstance(extralines, dict):
- for name, value in extralines.iteritems():
+ for name, value in extralines.items():
bbappendlines.append((name, '=', value))
else:
# Do our best to split it
@@ -550,14 +634,14 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
raise Exception('Invalid extralines value passed')
def popline(varname):
- for i in xrange(0, len(bbappendlines)):
+ for i in range(0, len(bbappendlines)):
if bbappendlines[i][0] == varname:
line = bbappendlines.pop(i)
return line
return None
def appendline(varname, op, value):
- for i in xrange(0, len(bbappendlines)):
+ for i in range(0, len(bbappendlines)):
item = bbappendlines[i]
if item[0] == varname:
bbappendlines[i] = (item[0], item[1], item[2] + ' ' + value)
@@ -576,7 +660,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
copyfiles = {}
if srcfiles:
instfunclines = []
- for newfile, origsrcfile in srcfiles.iteritems():
+ for newfile, origsrcfile in srcfiles.items():
srcfile = origsrcfile
srcurientry = None
if not srcfile:
@@ -644,7 +728,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
if removevar in removevalues:
remove = removevalues[removevar]
- if isinstance(remove, basestring):
+ if isinstance(remove, str):
if remove in splitval:
splitval.remove(remove)
changed = True
@@ -674,7 +758,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
varnames = [item[0] for item in bbappendlines]
if removevalues:
- varnames.extend(removevalues.keys())
+ varnames.extend(list(removevalues.keys()))
with open(appendpath, 'r') as f:
(updated, newlines) = bb.utils.edit_metadata(f, varnames, appendfile_varfunc)
@@ -699,7 +783,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
if copyfiles:
if machine:
destsubdir = os.path.join(destsubdir, machine)
- for newfile, srcfile in copyfiles.iteritems():
+ for newfile, srcfile in copyfiles.items():
filedest = os.path.join(appenddir, destsubdir, os.path.basename(srcfile))
if os.path.abspath(newfile) != os.path.abspath(filedest):
bb.note('Copying %s to %s' % (newfile, filedest))
@@ -710,14 +794,16 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False,
def find_layerdir(fn):
- """ Figure out relative path to base of layer for a file (e.g. a recipe)"""
- pth = os.path.dirname(fn)
+ """ Figure out the path to the base of the layer containing a file (e.g. a recipe)"""
+ pth = fn
layerdir = ''
while pth:
if os.path.exists(os.path.join(pth, 'conf', 'layer.conf')):
layerdir = pth
break
pth = os.path.dirname(pth)
+ if pth == '/':
+ return None
return layerdir
@@ -725,12 +811,12 @@ def replace_dir_vars(path, d):
"""Replace common directory paths with appropriate variable references (e.g. /etc becomes ${sysconfdir})"""
dirvars = {}
# Sort by length so we get the variables we're interested in first
- for var in sorted(d.keys(), key=len):
+ for var in sorted(list(d.keys()), key=len):
if var.endswith('dir') and var.lower() == var:
value = d.getVar(var, True)
if value.startswith('/') and not '\n' in value and value not in dirvars:
dirvars[value] = var
- for dirpath in sorted(dirvars.keys(), reverse=True):
+ for dirpath in sorted(list(dirvars.keys()), reverse=True):
path = path.replace(dirpath, '${%s}' % dirvars[dirpath])
return path
diff --git a/import-layers/yocto-poky/meta/lib/oe/rootfs.py b/import-layers/yocto-poky/meta/lib/oe/rootfs.py
index a95e1b739..a348b975c 100644
--- a/import-layers/yocto-poky/meta/lib/oe/rootfs.py
+++ b/import-layers/yocto-poky/meta/lib/oe/rootfs.py
@@ -10,17 +10,17 @@ import subprocess
import re
-class Rootfs(object):
+class Rootfs(object, metaclass=ABCMeta):
"""
This is an abstract class. Do not instantiate this directly.
"""
- __metaclass__ = ABCMeta
- def __init__(self, d):
+ def __init__(self, d, progress_reporter=None):
self.d = d
self.pm = None
self.image_rootfs = self.d.getVar('IMAGE_ROOTFS', True)
- self.deploy_dir_image = self.d.getVar('DEPLOY_DIR_IMAGE', True)
+ self.deploydir = self.d.getVar('IMGDEPLOYDIR', True)
+ self.progress_reporter = progress_reporter
self.install_order = Manifest.INSTALL_ORDER
@@ -40,51 +40,46 @@ class Rootfs(object):
def _log_check(self):
pass
- def _log_check_warn(self):
- r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)')
+ def _log_check_common(self, type, match):
+ # Ignore any lines containing log_check to avoid recursion, and ignore
+ # lines beginning with a + since sh -x may emit code which isn't
+ # actually executed, but may contain error messages
+ excludes = [ 'log_check', r'^\+' ]
+ if hasattr(self, 'log_check_expected_regexes'):
+ excludes.extend(self.log_check_expected_regexes)
+ excludes = [re.compile(x) for x in excludes]
+ r = re.compile(match)
log_path = self.d.expand("${T}/log.do_rootfs")
+ messages = []
with open(log_path, 'r') as log:
for line in log:
- if 'log_check' in line or 'NOTE:' in line:
- continue
-
- m = r.search(line)
+ for ee in excludes:
+ m = ee.search(line)
+ if m:
+ break
if m:
- bb.warn('[log_check] %s: found a warning message in the logfile (keyword \'%s\'):\n[log_check] %s'
- % (self.d.getVar('PN', True), m.group(), line))
-
- def _log_check_error(self):
- r = re.compile(self.log_check_regex)
- log_path = self.d.expand("${T}/log.do_rootfs")
- with open(log_path, 'r') as log:
- found_error = 0
- message = "\n"
- for line in log:
- if 'log_check' in line:
continue
- if hasattr(self, 'log_check_expected_errors_regexes'):
- m = None
- for ee in self.log_check_expected_errors_regexes:
- m = re.search(ee, line)
- if m:
- break
- if m:
- continue
-
m = r.search(line)
if m:
- found_error = 1
- bb.warn('[log_check] In line: [%s]' % line)
- bb.warn('[log_check] %s: found an error message in the logfile (keyword \'%s\'):\n[log_check] %s'
- % (self.d.getVar('PN', True), m.group(), line))
+ messages.append('[log_check] %s' % line)
+ if messages:
+ if len(messages) == 1:
+ msg = '1 %s message' % type
+ else:
+ msg = '%d %s messages' % (len(messages), type)
+ msg = '[log_check] %s: found %s in the logfile:\n%s' % \
+ (self.d.getVar('PN', True), msg, ''.join(messages))
+ if type == 'error':
+ bb.fatal(msg)
+ else:
+ bb.warn(msg)
- if found_error >= 1 and found_error <= 5:
- message += line + '\n'
- found_error += 1
+ def _log_check_warn(self):
+ self._log_check_common('warning', '^(warn|Warn|WARNING:)')
- if found_error == 6:
- bb.fatal(message)
+ def _log_check_error(self):
+ self._log_check_common('error', self.log_check_regex)
def _insert_feed_uris(self):
if bb.utils.contains("IMAGE_FEATURES", "package-management",
@@ -121,8 +116,10 @@ class Rootfs(object):
bb.note(" Copying back package database...")
for dir in dirs:
+ if not os.path.isdir(self.image_rootfs + '-orig' + dir):
+ continue
bb.utils.mkdirhier(self.image_rootfs + os.path.dirname(dir))
- shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir)
+ shutil.copytree(self.image_rootfs + '-orig' + dir, self.image_rootfs + dir, symlinks=True)
cpath = oe.cachedpath.CachedPath()
# Copy files located in /usr/lib/debug or /usr/src/debug
@@ -185,16 +182,19 @@ class Rootfs(object):
bb.utils.mkdirhier(self.image_rootfs)
- bb.utils.mkdirhier(self.deploy_dir_image)
+ bb.utils.mkdirhier(self.deploydir)
shutil.copytree(postinst_intercepts_dir, intercepts_dir)
shutil.copy(self.d.expand("${COREBASE}/meta/files/deploydir_readme.txt"),
- self.deploy_dir_image +
+ self.deploydir +
"/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt")
execute_pre_post_process(self.d, pre_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
# call the package manager dependent create method
self._create()
@@ -209,6 +209,9 @@ class Rootfs(object):
execute_pre_post_process(self.d, post_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
if bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs",
True, False, self.d):
delayed_postinsts = self._get_delayed_postinsts()
@@ -222,6 +225,9 @@ class Rootfs(object):
self._uninstall_unneeded()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self._insert_feed_uris()
self._run_ldconfig()
@@ -232,6 +238,10 @@ class Rootfs(object):
self._cleanup()
self._log_check()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+
def _uninstall_unneeded(self):
# Remove unneeded init script symlinks
delayed_postinsts = self._get_delayed_postinsts()
@@ -243,7 +253,9 @@ class Rootfs(object):
image_rorfs = bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs",
True, False, self.d)
- if image_rorfs:
+ image_rorfs_force = self.d.getVar('FORCE_RO_REMOVE', True)
+
+ if image_rorfs or image_rorfs_force == "1":
# Remove components that we don't need if it's a read-only rootfs
unneeded_pkgs = self.d.getVar("ROOTFS_RO_UNNEEDED", True).split()
pkgs_installed = image_list_installed_packages(self.d)
@@ -363,8 +375,8 @@ class Rootfs(object):
class RpmRootfs(Rootfs):
- def __init__(self, d, manifest_dir):
- super(RpmRootfs, self).__init__(d)
+ def __init__(self, d, manifest_dir, progress_reporter=None):
+ super(RpmRootfs, self).__init__(d, progress_reporter)
self.log_check_regex = '(unpacking of archive failed|Cannot find package'\
'|exit 1|ERROR: |Error: |Error |ERROR '\
'|Failed |Failed: |Failed$|Failed\(\d+\):)'
@@ -422,11 +434,17 @@ class RpmRootfs(Rootfs):
execute_pre_post_process(self.d, rpm_pre_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.dump_all_available_pkgs()
if self.inc_rpm_image_gen == "1":
self._create_incremental(pkgs_to_install)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.update()
pkgs = []
@@ -437,12 +455,24 @@ class RpmRootfs(Rootfs):
else:
pkgs += pkgs_to_install[pkg_type]
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.install(pkgs)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.install(pkgs_attempt, True)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.install_complementary()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self._setup_dbg_rootfs(['/etc/rpm', '/var/lib/rpm', '/var/lib/smart'])
execute_pre_post_process(self.d, rpm_post_process_cmds)
@@ -454,6 +484,10 @@ class RpmRootfs(Rootfs):
self.pm.rpm_setup_smart_target_config()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+
@staticmethod
def _depends_list():
return ['DEPLOY_DIR_RPM', 'INC_RPM_IMAGE_GEN', 'RPM_PREPROCESS_COMMANDS',
@@ -474,32 +508,6 @@ class RpmRootfs(Rootfs):
# already saved in /etc/rpm-postinsts
pass
- def _log_check_error(self):
- r = re.compile('(unpacking of archive failed|Cannot find package|exit 1|ERR|Fail)')
- log_path = self.d.expand("${T}/log.do_rootfs")
- with open(log_path, 'r') as log:
- found_error = 0
- message = "\n"
- for line in log.read().split('\n'):
- if 'log_check' in line:
- continue
- # sh -x may emit code which isn't actually executed
- if line.startswith('+'):
- continue
-
- m = r.search(line)
- if m:
- found_error = 1
- bb.warn('log_check: There were error messages in the logfile')
- bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group())
-
- if found_error >= 1 and found_error <= 5:
- message += line + '\n'
- found_error += 1
-
- if found_error == 6:
- bb.fatal(message)
-
def _log_check(self):
self._log_check_warn()
self._log_check_error()
@@ -524,8 +532,8 @@ class RpmRootfs(Rootfs):
bb.utils.remove(self.pm.install_dir_path, True)
class DpkgOpkgRootfs(Rootfs):
- def __init__(self, d):
- super(DpkgOpkgRootfs, self).__init__(d)
+ def __init__(self, d, progress_reporter=None):
+ super(DpkgOpkgRootfs, self).__init__(d, progress_reporter)
def _get_pkgs_postinsts(self, status_file):
def _get_pkg_depends_list(pkg_depends):
@@ -565,7 +573,7 @@ class DpkgOpkgRootfs(Rootfs):
pkg_depends = m_depends.group(1)
# remove package dependencies not in postinsts
- pkg_names = pkgs.keys()
+ pkg_names = list(pkgs.keys())
for pkg_name in pkg_names:
deps = pkgs[pkg_name][:]
@@ -598,7 +606,7 @@ class DpkgOpkgRootfs(Rootfs):
pkgs = self._get_pkgs_postinsts(status_file)
if pkgs:
root = "__packagegroup_postinst__"
- pkgs[root] = pkgs.keys()
+ pkgs[root] = list(pkgs.keys())
_dep_resolve(pkgs, root, pkg_list, [])
pkg_list.remove(root)
@@ -619,10 +627,10 @@ class DpkgOpkgRootfs(Rootfs):
num += 1
class DpkgRootfs(DpkgOpkgRootfs):
- def __init__(self, d, manifest_dir):
- super(DpkgRootfs, self).__init__(d)
+ def __init__(self, d, manifest_dir, progress_reporter=None):
+ super(DpkgRootfs, self).__init__(d, progress_reporter)
self.log_check_regex = '^E:'
- self.log_check_expected_errors_regexes = \
+ self.log_check_expected_regexes = \
[
"^E: Unmet dependencies."
]
@@ -648,15 +656,31 @@ class DpkgRootfs(DpkgOpkgRootfs):
execute_pre_post_process(self.d, deb_pre_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+ # Don't support incremental, so skip that
+ self.progress_reporter.next_stage()
+
self.pm.update()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
for pkg_type in self.install_order:
if pkg_type in pkgs_to_install:
self.pm.install(pkgs_to_install[pkg_type],
[False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ if self.progress_reporter:
+ # Don't support attemptonly, so skip that
+ self.progress_reporter.next_stage()
+ self.progress_reporter.next_stage()
+
self.pm.install_complementary()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self._setup_dbg_rootfs(['/var/lib/dpkg'])
self.pm.fix_broken_dependencies()
@@ -667,6 +691,9 @@ class DpkgRootfs(DpkgOpkgRootfs):
execute_pre_post_process(self.d, deb_post_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
@staticmethod
def _depends_list():
return ['DEPLOY_DIR_DEB', 'DEB_SDK_ARCH', 'APTCONF_TARGET', 'APT_ARGS', 'DPKG_ARCH', 'DEB_PREPROCESS_COMMANDS', 'DEB_POSTPROCESS_COMMANDS']
@@ -692,8 +719,8 @@ class DpkgRootfs(DpkgOpkgRootfs):
class OpkgRootfs(DpkgOpkgRootfs):
- def __init__(self, d, manifest_dir):
- super(OpkgRootfs, self).__init__(d)
+ def __init__(self, d, manifest_dir, progress_reporter=None):
+ super(OpkgRootfs, self).__init__(d, progress_reporter)
self.log_check_regex = '(exit 1|Collected errors)'
self.manifest = OpkgManifest(d, manifest_dir)
@@ -887,13 +914,24 @@ class OpkgRootfs(DpkgOpkgRootfs):
execute_pre_post_process(self.d, opkg_pre_process_cmds)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+ # Steps are a bit different in order, skip next
+ self.progress_reporter.next_stage()
+
self.pm.update()
self.pm.handle_bad_recommendations()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
if self.inc_opkg_image_gen == "1":
self._remove_extra_packages(pkgs_to_install)
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
for pkg_type in self.install_order:
if pkg_type in pkgs_to_install:
# For multilib, we perform a sanity test before final install
@@ -905,15 +943,24 @@ class OpkgRootfs(DpkgOpkgRootfs):
self.pm.install(pkgs_to_install[pkg_type],
[False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY])
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
self.pm.install_complementary()
- self._setup_dbg_rootfs(['/var/lib/opkg'])
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
+ self._setup_dbg_rootfs(['/etc', '/var/lib/opkg', '/usr/lib/ssl'])
execute_pre_post_process(self.d, opkg_post_process_cmds)
if self.inc_opkg_image_gen == "1":
self.pm.backup_packaging_data()
+ if self.progress_reporter:
+ self.progress_reporter.next_stage()
+
@staticmethod
def _depends_list():
return ['IPKGCONF_SDK', 'IPK_FEED_URIS', 'DEPLOY_DIR_IPK', 'IPKGCONF_TARGET', 'INC_IPK_IMAGE_GEN', 'OPKG_ARGS', 'OPKGLIBDIR', 'OPKG_PREPROCESS_COMMANDS', 'OPKG_POSTPROCESS_COMMANDS', 'OPKGLIBDIR']
@@ -949,16 +996,16 @@ def variable_depends(d, manifest_dir=None):
cls = get_class_for_type(img_type)
return cls._depends_list()
-def create_rootfs(d, manifest_dir=None):
+def create_rootfs(d, manifest_dir=None, progress_reporter=None):
env_bkp = os.environ.copy()
img_type = d.getVar('IMAGE_PKGTYPE', True)
if img_type == "rpm":
- RpmRootfs(d, manifest_dir).create()
+ RpmRootfs(d, manifest_dir, progress_reporter).create()
elif img_type == "ipk":
- OpkgRootfs(d, manifest_dir).create()
+ OpkgRootfs(d, manifest_dir, progress_reporter).create()
elif img_type == "deb":
- DpkgRootfs(d, manifest_dir).create()
+ DpkgRootfs(d, manifest_dir, progress_reporter).create()
os.environ.clear()
os.environ.update(env_bkp)
diff --git a/import-layers/yocto-poky/meta/lib/oe/sdk.py b/import-layers/yocto-poky/meta/lib/oe/sdk.py
index f15fbdb36..c74525f92 100644
--- a/import-layers/yocto-poky/meta/lib/oe/sdk.py
+++ b/import-layers/yocto-poky/meta/lib/oe/sdk.py
@@ -8,9 +8,7 @@ import glob
import traceback
-class Sdk(object):
- __metaclass__ = ABCMeta
-
+class Sdk(object, metaclass=ABCMeta):
def __init__(self, d, manifest_dir):
self.d = d
self.sdk_output = self.d.getVar('SDK_OUTPUT', True)
@@ -155,14 +153,16 @@ class RpmSdk(Sdk):
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
- self.target_pm.remove_packaging_data()
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
bb.note("Installing NATIVESDK packages")
self._populate_sysroot(self.host_pm, self.host_manifest)
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
- self.host_pm.remove_packaging_data()
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
# Move host RPM library data
native_rpm_state_dir = os.path.join(self.sdk_output,
@@ -232,14 +232,16 @@ class OpkgSdk(Sdk):
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND", True))
- self.target_pm.remove_packaging_data()
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
bb.note("Installing NATIVESDK packages")
self._populate_sysroot(self.host_pm, self.host_manifest)
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND", True))
- self.host_pm.remove_packaging_data()
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
target_sysconfdir = os.path.join(self.sdk_target_sysroot, self.sysconfdir)
host_sysconfdir = os.path.join(self.sdk_host_sysroot, self.sysconfdir)
@@ -247,12 +249,12 @@ class OpkgSdk(Sdk):
self.mkdirhier(target_sysconfdir)
shutil.copy(self.target_conf, target_sysconfdir)
os.chmod(os.path.join(target_sysconfdir,
- os.path.basename(self.target_conf)), 0644)
+ os.path.basename(self.target_conf)), 0o644)
self.mkdirhier(host_sysconfdir)
shutil.copy(self.host_conf, host_sysconfdir)
os.chmod(os.path.join(host_sysconfdir,
- os.path.basename(self.host_conf)), 0644)
+ os.path.basename(self.host_conf)), 0o644)
native_opkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
self.d.getVar('localstatedir_nativesdk', True).strip('/'),
@@ -314,6 +316,9 @@ class DpkgSdk(Sdk):
self._copy_apt_dir_to(os.path.join(self.sdk_target_sysroot, "etc", "apt"))
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.target_pm.remove_packaging_data()
+
bb.note("Installing NATIVESDK packages")
self._populate_sysroot(self.host_pm, self.host_manifest)
@@ -322,6 +327,9 @@ class DpkgSdk(Sdk):
self._copy_apt_dir_to(os.path.join(self.sdk_output, self.sdk_native_path,
"etc", "apt"))
+ if not bb.utils.contains("SDKIMAGE_FEATURES", "package-management", True, False, self.d):
+ self.host_pm.remove_packaging_data()
+
native_dpkg_state_dir = os.path.join(self.sdk_output, self.sdk_native_path,
"var", "lib", "dpkg")
self.mkdirhier(native_dpkg_state_dir)
diff --git a/import-layers/yocto-poky/meta/lib/oe/sstatesig.py b/import-layers/yocto-poky/meta/lib/oe/sstatesig.py
index 01dce660c..8224e3a12 100644
--- a/import-layers/yocto-poky/meta/lib/oe/sstatesig.py
+++ b/import-layers/yocto-poky/meta/lib/oe/sstatesig.py
@@ -130,7 +130,9 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
super(bb.siggen.SignatureGeneratorBasicHash, self).set_taskdata(coredata)
def dump_sigs(self, dataCache, options):
- self.dump_lockedsigs()
+ sigfile = os.getcwd() + "/locked-sigs.inc"
+ bb.plain("Writing locked sigs to %s" % sigfile)
+ self.dump_lockedsigs(sigfile)
return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)
def get_taskhash(self, fn, task, deps, dataCache):
@@ -181,11 +183,7 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
return
super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigtask(fn, task, stampbase, runtime)
- def dump_lockedsigs(self, sigfile=None, taskfilter=None):
- if not sigfile:
- sigfile = os.getcwd() + "/locked-sigs.inc"
-
- bb.plain("Writing locked sigs to %s" % sigfile)
+ def dump_lockedsigs(self, sigfile, taskfilter=None):
types = {}
for k in self.runtaskdeps:
if taskfilter:
@@ -210,7 +208,7 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
continue
f.write(" " + self.lockedpnmap[fn] + ":" + task + ":" + self.taskhash[k] + " \\\n")
f.write(' "\n')
- f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(types.keys())))
+ f.write('SIGGEN_LOCKEDSIGS_TYPES_%s = "%s"' % (self.machine, " ".join(list(types.keys()))))
def checkhashes(self, missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d):
warn_msgs = []
@@ -220,7 +218,7 @@ class SignatureGeneratorOEBasicHash(bb.siggen.SignatureGeneratorBasicHash):
for task in range(len(sq_fn)):
if task not in ret:
for pn in self.lockedsigs:
- if sq_hash[task] in self.lockedsigs[pn].itervalues():
+ if sq_hash[task] in iter(self.lockedsigs[pn].values()):
if sq_task[task] == 'do_shared_workdir':
continue
sstate_missing_msgs.append("Locked sig is set for %s:%s (%s) yet not in sstate cache?"
diff --git a/import-layers/yocto-poky/meta/lib/oe/terminal.py b/import-layers/yocto-poky/meta/lib/oe/terminal.py
index 634daa903..3901ad3f2 100644
--- a/import-layers/yocto-poky/meta/lib/oe/terminal.py
+++ b/import-layers/yocto-poky/meta/lib/oe/terminal.py
@@ -25,9 +25,7 @@ class Registry(oe.classutils.ClassRegistry):
return bool(cls.command)
-class Terminal(Popen):
- __metaclass__ = Registry
-
+class Terminal(Popen, metaclass=Registry):
def __init__(self, sh_cmd, title=None, env=None, d=None):
fmt_sh_cmd = self.format_command(sh_cmd, title)
try:
@@ -41,7 +39,7 @@ class Terminal(Popen):
def format_command(self, sh_cmd, title):
fmt = {'title': title or 'Terminal', 'command': sh_cmd}
- if isinstance(self.command, basestring):
+ if isinstance(self.command, str):
return shlex.split(self.command.format(**fmt))
else:
return [element.format(**fmt) for element in self.command]
@@ -53,7 +51,7 @@ class XTerminal(Terminal):
raise UnsupportedTerminal(self.name)
class Gnome(XTerminal):
- command = 'gnome-terminal -t "{title}" --disable-factory -x {command}'
+ command = 'gnome-terminal -t "{title}" -x {command}'
priority = 2
def __init__(self, sh_cmd, title=None, env=None, d=None):
@@ -63,12 +61,28 @@ class Gnome(XTerminal):
# Once fixed on the gnome-terminal project, this should be removed.
if os.getenv('LC_ALL'): os.putenv('LC_ALL','')
- # Check version
- vernum = check_terminal_version("gnome-terminal")
- if vernum and LooseVersion(vernum) >= '3.10':
- logger.debug(1, 'Gnome-Terminal 3.10 or later does not support --disable-factory')
- self.command = 'gnome-terminal -t "{title}" -x {command}'
- XTerminal.__init__(self, sh_cmd, title, env, d)
+ # We need to know when the command completes but gnome-terminal gives us no way
+ # to do this. We therefore write the pid to a file using a "phonehome" wrapper
+ # script, then monitor the pid until it exits. Thanks gnome!
+ import tempfile
+ pidfile = tempfile.NamedTemporaryFile(delete = False).name
+ try:
+ sh_cmd = "oe-gnome-terminal-phonehome " + pidfile + " " + sh_cmd
+ XTerminal.__init__(self, sh_cmd, title, env, d)
+ while os.stat(pidfile).st_size <= 0:
+ continue
+ with open(pidfile, "r") as f:
+ pid = int(f.readline())
+ finally:
+ os.unlink(pidfile)
+
+ import time
+ while True:
+ try:
+ os.kill(pid, 0)
+ time.sleep(0.1)
+ except OSError:
+ return
class Mate(XTerminal):
command = 'mate-terminal -t "{title}" -x {command}'
@@ -248,7 +262,7 @@ def check_terminal_version(terminalName):
newenv["LANG"] = "C"
p = sub.Popen(['sh', '-c', cmdversion], stdout=sub.PIPE, stderr=sub.PIPE, env=newenv)
out, err = p.communicate()
- ver_info = out.rstrip().split('\n')
+ ver_info = out.decode().rstrip().split('\n')
except OSError as exc:
import errno
if exc.errno == errno.ENOENT:
diff --git a/import-layers/yocto-poky/meta/lib/oe/tests/test_elf.py b/import-layers/yocto-poky/meta/lib/oe/tests/test_elf.py
new file mode 100644
index 000000000..1f59037ed
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oe/tests/test_elf.py
@@ -0,0 +1,21 @@
+import unittest
+import oe.qa
+
+class TestElf(unittest.TestCase):
+ def test_machine_name(self):
+ """
+ Test elf_machine_to_string()
+ """
+ self.assertEqual(oe.qa.elf_machine_to_string(0x02), "SPARC")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x03), "x86")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x08), "MIPS")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x14), "PowerPC")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x28), "ARM")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x2A), "SuperH")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x32), "IA-64")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x3E), "x86-64")
+ self.assertEqual(oe.qa.elf_machine_to_string(0xB7), "AArch64")
+
+ self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unknown (0)")
+ self.assertEqual(oe.qa.elf_machine_to_string(0xDEADBEEF), "Unknown (3735928559)")
+ self.assertEqual(oe.qa.elf_machine_to_string("foobar"), "Unknown ('foobar')")
diff --git a/import-layers/yocto-poky/meta/lib/oe/tests/test_path.py b/import-layers/yocto-poky/meta/lib/oe/tests/test_path.py
index 3d41ce157..44d068143 100644
--- a/import-layers/yocto-poky/meta/lib/oe/tests/test_path.py
+++ b/import-layers/yocto-poky/meta/lib/oe/tests/test_path.py
@@ -55,7 +55,7 @@ class TestRealPath(unittest.TestCase):
for d in self.DIRS:
os.mkdir(os.path.join(self.root, d))
for f in self.FILES:
- file(os.path.join(self.root, f), "w")
+ open(os.path.join(self.root, f), "w")
for l in self.LINKS:
os.symlink(l[1], os.path.join(self.root, l[0]))
@@ -85,5 +85,5 @@ class TestRealPath(unittest.TestCase):
def test_loop(self):
for e in self.EXCEPTIONS:
- self.assertRaisesRegexp(OSError, r'\[Errno %u\]' % e[1],
+ self.assertRaisesRegex(OSError, r'\[Errno %u\]' % e[1],
self.__realpath, e[0], False, False)
diff --git a/import-layers/yocto-poky/meta/lib/oe/types.py b/import-layers/yocto-poky/meta/lib/oe/types.py
index 7f47c17d0..4ae58acfa 100644
--- a/import-layers/yocto-poky/meta/lib/oe/types.py
+++ b/import-layers/yocto-poky/meta/lib/oe/types.py
@@ -33,7 +33,7 @@ def choice(value, choices):
Acts as a multiple choice for the user. To use this, set the variable
type flag to 'choice', and set the 'choices' flag to a space separated
list of valid values."""
- if not isinstance(value, basestring):
+ if not isinstance(value, str):
raise TypeError("choice accepts a string, not '%s'" % type(value))
value = value.lower()
@@ -106,7 +106,7 @@ def boolean(value):
Valid values for false: 'no', 'n', 'false', 'f', '0'
"""
- if not isinstance(value, basestring):
+ if not isinstance(value, str):
raise TypeError("boolean accepts a string, not '%s'" % type(value))
value = value.lower()
diff --git a/import-layers/yocto-poky/meta/lib/oe/utils.py b/import-layers/yocto-poky/meta/lib/oe/utils.py
index 30d30629f..d6545b197 100644
--- a/import-layers/yocto-poky/meta/lib/oe/utils.py
+++ b/import-layers/yocto-poky/meta/lib/oe/utils.py
@@ -23,13 +23,13 @@ def ifelse(condition, iftrue = True, iffalse = False):
return iffalse
def conditional(variable, checkvalue, truevalue, falsevalue, d):
- if d.getVar(variable,1) == checkvalue:
+ if d.getVar(variable, True) == checkvalue:
return truevalue
else:
return falsevalue
def less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
- if float(d.getVar(variable,1)) <= float(checkvalue):
+ if float(d.getVar(variable, True)) <= float(checkvalue):
return truevalue
else:
return falsevalue
@@ -46,7 +46,7 @@ def both_contain(variable1, variable2, checkvalue, d):
val2 = d.getVar(variable2, True)
val1 = set(val1.split())
val2 = set(val2.split())
- if isinstance(checkvalue, basestring):
+ if isinstance(checkvalue, str):
checkvalue = set(checkvalue.split())
else:
checkvalue = set(checkvalue)
@@ -85,11 +85,11 @@ def prune_suffix(var, suffixes, d):
def str_filter(f, str, d):
from re import match
- return " ".join(filter(lambda x: match(f, x, 0), str.split()))
+ return " ".join([x for x in str.split() if match(f, x, 0)])
def str_filter_out(f, str, d):
from re import match
- return " ".join(filter(lambda x: not match(f, x, 0), str.split()))
+ return " ".join([x for x in str.split() if not match(f, x, 0)])
def param_bool(cfg, field, dflt = None):
"""Lookup <field> in <cfg> map and convert it to a boolean; take
@@ -134,7 +134,7 @@ def packages_filter_out_system(d):
PN-dbg PN-doc PN-locale-eb-gb removed.
"""
pn = d.getVar('PN', True)
- blacklist = map(lambda suffix: pn + suffix, ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev'))
+ blacklist = [pn + suffix for suffix in ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev')]
localepkg = pn + "-locale-"
pkgs = []
@@ -235,7 +235,7 @@ def format_pkg_list(pkg_dict, ret_format=None):
# so implement a version here
#
-from Queue import Queue
+from queue import Queue
from threading import Thread
class ThreadedWorker(Thread):
@@ -249,7 +249,7 @@ class ThreadedWorker(Thread):
self.worker_end = worker_end
def run(self):
- from Queue import Empty
+ from queue import Empty
if self.worker_init is not None:
self.worker_init(self)
@@ -264,8 +264,8 @@ class ThreadedWorker(Thread):
try:
func(self, *args, **kargs)
- except Exception, e:
- print e
+ except Exception as e:
+ print(e)
finally:
self.tasks.task_done()
@@ -304,3 +304,16 @@ def write_ld_so_conf(d):
with open(ldsoconf, "w") as f:
f.write(d.getVar("base_libdir", True) + '\n')
f.write(d.getVar("libdir", True) + '\n')
+
+class ImageQAFailed(bb.build.FuncFailed):
+ def __init__(self, description, name=None, logfile=None):
+ self.description = description
+ self.name = name
+ self.logfile=logfile
+
+ def __str__(self):
+ msg = 'Function failed: %s' % self.name
+ if self.description:
+ msg = msg + ' (%s)' % self.description
+
+ return msg
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/buildperf/__init__.py b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/__init__.py
new file mode 100644
index 000000000..605f429ec
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/__init__.py
@@ -0,0 +1,19 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+"""Build performance tests"""
+from .base import (BuildPerfTestCase,
+ BuildPerfTestLoader,
+ BuildPerfTestResult,
+ BuildPerfTestRunner,
+ KernelDropCaches,
+ runCmd2)
+from .test_basic import *
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/buildperf/base.py b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/base.py
new file mode 100644
index 000000000..59dd02521
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/base.py
@@ -0,0 +1,551 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+"""Build performance test base classes and functionality"""
+import glob
+import json
+import logging
+import os
+import re
+import resource
+import shutil
+import socket
+import time
+import traceback
+import unittest
+from datetime import datetime, timedelta
+from functools import partial
+from multiprocessing import Process
+from multiprocessing import SimpleQueue
+
+import oe.path
+from oeqa.utils.commands import CommandError, runCmd, get_bb_vars
+from oeqa.utils.git import GitError, GitRepo
+
+# Get logger for this module
+log = logging.getLogger('build-perf')
+
+# Our own version of runCmd which does not raise AssertErrors which would cause
+# errors to interpreted as failures
+runCmd2 = partial(runCmd, assert_error=False)
+
+
+class KernelDropCaches(object):
+ """Container of the functions for dropping kernel caches"""
+ sudo_passwd = None
+
+ @classmethod
+ def check(cls):
+ """Check permssions for dropping kernel caches"""
+ from getpass import getpass
+ from locale import getdefaultlocale
+ cmd = ['sudo', '-k', '-n', 'tee', '/proc/sys/vm/drop_caches']
+ ret = runCmd2(cmd, ignore_status=True, data=b'0')
+ if ret.output.startswith('sudo:'):
+ pass_str = getpass(
+ "\nThe script requires sudo access to drop caches between "
+ "builds (echo 3 > /proc/sys/vm/drop_caches).\n"
+ "Please enter your sudo password: ")
+ cls.sudo_passwd = bytes(pass_str, getdefaultlocale()[1])
+
+ @classmethod
+ def drop(cls):
+ """Drop kernel caches"""
+ cmd = ['sudo', '-k']
+ if cls.sudo_passwd:
+ cmd.append('-S')
+ input_data = cls.sudo_passwd + b'\n'
+ else:
+ cmd.append('-n')
+ input_data = b''
+ cmd += ['tee', '/proc/sys/vm/drop_caches']
+ input_data += b'3'
+ runCmd2(cmd, data=input_data)
+
+
+def str_to_fn(string):
+ """Convert string to a sanitized filename"""
+ return re.sub(r'(\W+)', '-', string, flags=re.LOCALE)
+
+
+class ResultsJsonEncoder(json.JSONEncoder):
+ """Extended encoder for build perf test results"""
+ unix_epoch = datetime.utcfromtimestamp(0)
+
+ def default(self, obj):
+ """Encoder for our types"""
+ if isinstance(obj, datetime):
+ # NOTE: we assume that all timestamps are in UTC time
+ return (obj - self.unix_epoch).total_seconds()
+ if isinstance(obj, timedelta):
+ return obj.total_seconds()
+ return json.JSONEncoder.default(self, obj)
+
+
+class BuildPerfTestResult(unittest.TextTestResult):
+ """Runner class for executing the individual tests"""
+ # List of test cases to run
+ test_run_queue = []
+
+ def __init__(self, out_dir, *args, **kwargs):
+ super(BuildPerfTestResult, self).__init__(*args, **kwargs)
+
+ self.out_dir = out_dir
+ # Get Git parameters
+ try:
+ self.repo = GitRepo('.')
+ except GitError:
+ self.repo = None
+ self.git_commit, self.git_commit_count, self.git_branch = \
+ self.get_git_revision()
+ self.hostname = socket.gethostname()
+ self.product = os.getenv('OE_BUILDPERFTEST_PRODUCT', 'oe-core')
+ self.start_time = self.elapsed_time = None
+ self.successes = []
+ log.info("Using Git branch:commit %s:%s (%s)", self.git_branch,
+ self.git_commit, self.git_commit_count)
+
+ def get_git_revision(self):
+ """Get git branch and commit under testing"""
+ commit = os.getenv('OE_BUILDPERFTEST_GIT_COMMIT')
+ commit_cnt = os.getenv('OE_BUILDPERFTEST_GIT_COMMIT_COUNT')
+ branch = os.getenv('OE_BUILDPERFTEST_GIT_BRANCH')
+ if not self.repo and (not commit or not commit_cnt or not branch):
+ log.info("The current working directory doesn't seem to be a Git "
+ "repository clone. You can specify branch and commit "
+ "displayed in test results with OE_BUILDPERFTEST_GIT_BRANCH, "
+ "OE_BUILDPERFTEST_GIT_COMMIT and "
+ "OE_BUILDPERFTEST_GIT_COMMIT_COUNT environment variables")
+ else:
+ if not commit:
+ commit = self.repo.rev_parse('HEAD^0')
+ commit_cnt = self.repo.run_cmd(['rev-list', '--count', 'HEAD^0'])
+ if not branch:
+ branch = self.repo.get_current_branch()
+ if not branch:
+ log.debug('Currently on detached HEAD')
+ return str(commit), str(commit_cnt), str(branch)
+
+ def addSuccess(self, test):
+ """Record results from successful tests"""
+ super(BuildPerfTestResult, self).addSuccess(test)
+ self.successes.append((test, None))
+
+ def startTest(self, test):
+ """Pre-test hook"""
+ test.base_dir = self.out_dir
+ os.mkdir(test.out_dir)
+ log.info("Executing test %s: %s", test.name, test.shortDescription())
+ self.stream.write(datetime.now().strftime("[%Y-%m-%d %H:%M:%S] "))
+ super(BuildPerfTestResult, self).startTest(test)
+
+ def startTestRun(self):
+ """Pre-run hook"""
+ self.start_time = datetime.utcnow()
+
+ def stopTestRun(self):
+ """Pre-run hook"""
+ self.elapsed_time = datetime.utcnow() - self.start_time
+ self.write_results_json()
+
+ def all_results(self):
+ result_map = {'SUCCESS': self.successes,
+ 'FAIL': self.failures,
+ 'ERROR': self.errors,
+ 'EXP_FAIL': self.expectedFailures,
+ 'UNEXP_SUCCESS': self.unexpectedSuccesses,
+ 'SKIPPED': self.skipped}
+ for status, tests in result_map.items():
+ for test in tests:
+ yield (status, test)
+
+
+ def update_globalres_file(self, filename):
+ """Write results to globalres csv file"""
+ # Map test names to time and size columns in globalres
+ # The tuples represent index and length of times and sizes
+ # respectively
+ gr_map = {'test1': ((0, 1), (8, 1)),
+ 'test12': ((1, 1), (None, None)),
+ 'test13': ((2, 1), (9, 1)),
+ 'test2': ((3, 1), (None, None)),
+ 'test3': ((4, 3), (None, None)),
+ 'test4': ((7, 1), (10, 2))}
+
+ if self.repo:
+ git_tag_rev = self.repo.run_cmd(['describe', self.git_commit])
+ else:
+ git_tag_rev = self.git_commit
+
+ values = ['0'] * 12
+ for status, (test, msg) in self.all_results():
+ if status in ['ERROR', 'SKIPPED']:
+ continue
+ (t_ind, t_len), (s_ind, s_len) = gr_map[test.name]
+ if t_ind is not None:
+ values[t_ind:t_ind + t_len] = test.times
+ if s_ind is not None:
+ values[s_ind:s_ind + s_len] = test.sizes
+
+ log.debug("Writing globalres log to %s", filename)
+ with open(filename, 'a') as fobj:
+ fobj.write('{},{}:{},{},'.format(self.hostname,
+ self.git_branch,
+ self.git_commit,
+ git_tag_rev))
+ fobj.write(','.join(values) + '\n')
+
+ def write_results_json(self):
+ """Write test results into a json-formatted file"""
+ results = {'tester_host': self.hostname,
+ 'git_branch': self.git_branch,
+ 'git_commit': self.git_commit,
+ 'git_commit_count': self.git_commit_count,
+ 'product': self.product,
+ 'start_time': self.start_time,
+ 'elapsed_time': self.elapsed_time}
+
+ tests = {}
+ for status, (test, reason) in self.all_results():
+ tests[test.name] = {'name': test.name,
+ 'description': test.shortDescription(),
+ 'status': status,
+ 'start_time': test.start_time,
+ 'elapsed_time': test.elapsed_time,
+ 'cmd_log_file': os.path.relpath(test.cmd_log_file,
+ self.out_dir),
+ 'measurements': test.measurements}
+ results['tests'] = tests
+
+ with open(os.path.join(self.out_dir, 'results.json'), 'w') as fobj:
+ json.dump(results, fobj, indent=4, sort_keys=True,
+ cls=ResultsJsonEncoder)
+
+
+ def git_commit_results(self, repo_path, branch=None, tag=None):
+ """Commit results into a Git repository"""
+ repo = GitRepo(repo_path, is_topdir=True)
+ if not branch:
+ branch = self.git_branch
+ else:
+ # Replace keywords
+ branch = branch.format(git_branch=self.git_branch,
+ tester_host=self.hostname)
+
+ log.info("Committing test results into %s %s", repo_path, branch)
+ tmp_index = os.path.join(repo_path, '.git', 'index.oe-build-perf')
+ try:
+ # Create new commit object from the new results
+ env_update = {'GIT_INDEX_FILE': tmp_index,
+ 'GIT_WORK_TREE': self.out_dir}
+ repo.run_cmd('add .', env_update)
+ tree = repo.run_cmd('write-tree', env_update)
+ parent = repo.rev_parse(branch)
+ msg = "Results of {}:{}\n".format(self.git_branch, self.git_commit)
+ git_cmd = ['commit-tree', tree, '-m', msg]
+ if parent:
+ git_cmd += ['-p', parent]
+ commit = repo.run_cmd(git_cmd, env_update)
+
+ # Update branch head
+ git_cmd = ['update-ref', 'refs/heads/' + branch, commit]
+ if parent:
+ git_cmd.append(parent)
+ repo.run_cmd(git_cmd)
+
+ # Update current HEAD, if we're on branch 'branch'
+ if repo.get_current_branch() == branch:
+ log.info("Updating %s HEAD to latest commit", repo_path)
+ repo.run_cmd('reset --hard')
+
+ # Create (annotated) tag
+ if tag:
+ # Find tags matching the pattern
+ tag_keywords = dict(git_branch=self.git_branch,
+ git_commit=self.git_commit,
+ git_commit_count=self.git_commit_count,
+ tester_host=self.hostname,
+ tag_num='[0-9]{1,5}')
+ tag_re = re.compile(tag.format(**tag_keywords) + '$')
+ tag_keywords['tag_num'] = 0
+ for existing_tag in repo.run_cmd('tag').splitlines():
+ if tag_re.match(existing_tag):
+ tag_keywords['tag_num'] += 1
+
+ tag = tag.format(**tag_keywords)
+ msg = "Test run #{} of {}:{}\n".format(tag_keywords['tag_num'],
+ self.git_branch,
+ self.git_commit)
+ repo.run_cmd(['tag', '-a', '-m', msg, tag, commit])
+
+ finally:
+ if os.path.exists(tmp_index):
+ os.unlink(tmp_index)
+
+
+class BuildPerfTestCase(unittest.TestCase):
+ """Base class for build performance tests"""
+ SYSRES = 'sysres'
+ DISKUSAGE = 'diskusage'
+ build_target = None
+
+ def __init__(self, *args, **kwargs):
+ super(BuildPerfTestCase, self).__init__(*args, **kwargs)
+ self.name = self._testMethodName
+ self.base_dir = None
+ self.start_time = None
+ self.elapsed_time = None
+ self.measurements = []
+ self.bb_vars = get_bb_vars()
+ # TODO: remove 'times' and 'sizes' arrays when globalres support is
+ # removed
+ self.times = []
+ self.sizes = []
+
+ @property
+ def out_dir(self):
+ return os.path.join(self.base_dir, self.name)
+
+ @property
+ def cmd_log_file(self):
+ return os.path.join(self.out_dir, 'commands.log')
+
+ def setUp(self):
+ """Set-up fixture for each test"""
+ if self.build_target:
+ self.log_cmd_output(['bitbake', self.build_target,
+ '-c', 'fetchall'])
+
+ def run(self, *args, **kwargs):
+ """Run test"""
+ self.start_time = datetime.now()
+ super(BuildPerfTestCase, self).run(*args, **kwargs)
+ self.elapsed_time = datetime.now() - self.start_time
+
+ def log_cmd_output(self, cmd):
+ """Run a command and log it's output"""
+ cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd)
+ log.info("Logging command: %s", cmd_str)
+ try:
+ with open(self.cmd_log_file, 'a') as fobj:
+ runCmd2(cmd, stdout=fobj)
+ except CommandError as err:
+ log.error("Command failed: %s", err.retcode)
+ raise
+
+ def measure_cmd_resources(self, cmd, name, legend, save_bs=False):
+ """Measure system resource usage of a command"""
+ def _worker(data_q, cmd, **kwargs):
+ """Worker process for measuring resources"""
+ try:
+ start_time = datetime.now()
+ ret = runCmd2(cmd, **kwargs)
+ etime = datetime.now() - start_time
+ rusage_struct = resource.getrusage(resource.RUSAGE_CHILDREN)
+ iostat = {}
+ with open('/proc/{}/io'.format(os.getpid())) as fobj:
+ for line in fobj.readlines():
+ key, val = line.split(':')
+ iostat[key] = int(val)
+ rusage = {}
+ # Skip unused fields, (i.e. 'ru_ixrss', 'ru_idrss', 'ru_isrss',
+ # 'ru_nswap', 'ru_msgsnd', 'ru_msgrcv' and 'ru_nsignals')
+ for key in ['ru_utime', 'ru_stime', 'ru_maxrss', 'ru_minflt',
+ 'ru_majflt', 'ru_inblock', 'ru_oublock',
+ 'ru_nvcsw', 'ru_nivcsw']:
+ rusage[key] = getattr(rusage_struct, key)
+ data_q.put({'ret': ret,
+ 'start_time': start_time,
+ 'elapsed_time': etime,
+ 'rusage': rusage,
+ 'iostat': iostat})
+ except Exception as err:
+ data_q.put(err)
+
+ cmd_str = cmd if isinstance(cmd, str) else ' '.join(cmd)
+ log.info("Timing command: %s", cmd_str)
+ data_q = SimpleQueue()
+ try:
+ with open(self.cmd_log_file, 'a') as fobj:
+ proc = Process(target=_worker, args=(data_q, cmd,),
+ kwargs={'stdout': fobj})
+ proc.start()
+ data = data_q.get()
+ proc.join()
+ if isinstance(data, Exception):
+ raise data
+ except CommandError:
+ log.error("Command '%s' failed, see %s for more details", cmd_str,
+ self.cmd_log_file)
+ raise
+ etime = data['elapsed_time']
+
+ measurement = {'type': self.SYSRES,
+ 'name': name,
+ 'legend': legend}
+ measurement['values'] = {'start_time': data['start_time'],
+ 'elapsed_time': etime,
+ 'rusage': data['rusage'],
+ 'iostat': data['iostat']}
+ if save_bs:
+ bs_file = self.save_buildstats(legend)
+ measurement['values']['buildstats_file'] = \
+ os.path.relpath(bs_file, self.base_dir)
+
+ self.measurements.append(measurement)
+
+ # Append to 'times' array for globalres log
+ e_sec = etime.total_seconds()
+ self.times.append('{:d}:{:02d}:{:05.2f}'.format(int(e_sec / 3600),
+ int((e_sec % 3600) / 60),
+ e_sec % 60))
+
+ def measure_disk_usage(self, path, name, legend, apparent_size=False):
+ """Estimate disk usage of a file or directory"""
+ cmd = ['du', '-s', '--block-size', '1024']
+ if apparent_size:
+ cmd.append('--apparent-size')
+ cmd.append(path)
+
+ ret = runCmd2(cmd)
+ size = int(ret.output.split()[0])
+ log.debug("Size of %s path is %s", path, size)
+ measurement = {'type': self.DISKUSAGE,
+ 'name': name,
+ 'legend': legend}
+ measurement['values'] = {'size': size}
+ self.measurements.append(measurement)
+ # Append to 'sizes' array for globalres log
+ self.sizes.append(str(size))
+
+ def save_buildstats(self, label=None):
+ """Save buildstats"""
+ def split_nevr(nevr):
+ """Split name and version information from recipe "nevr" string"""
+ n_e_v, revision = nevr.rsplit('-', 1)
+ match = re.match(r'^(?P<name>\S+)-((?P<epoch>[0-9]{1,5})_)?(?P<version>[0-9]\S*)$',
+ n_e_v)
+ if not match:
+ # If we're not able to parse a version starting with a number, just
+ # take the part after last dash
+ match = re.match(r'^(?P<name>\S+)-((?P<epoch>[0-9]{1,5})_)?(?P<version>[^-]+)$',
+ n_e_v)
+ name = match.group('name')
+ version = match.group('version')
+ epoch = match.group('epoch')
+ return name, epoch, version, revision
+
+ def bs_to_json(filename):
+ """Convert (task) buildstats file into json format"""
+ bs_json = {'iostat': {},
+ 'rusage': {},
+ 'child_rusage': {}}
+ with open(filename) as fobj:
+ for line in fobj.readlines():
+ key, val = line.split(':', 1)
+ val = val.strip()
+ if key == 'Started':
+ start_time = datetime.utcfromtimestamp(float(val))
+ bs_json['start_time'] = start_time
+ elif key == 'Ended':
+ end_time = datetime.utcfromtimestamp(float(val))
+ elif key.startswith('IO '):
+ split = key.split()
+ bs_json['iostat'][split[1]] = int(val)
+ elif key.find('rusage') >= 0:
+ split = key.split()
+ ru_key = split[-1]
+ if ru_key in ('ru_stime', 'ru_utime'):
+ val = float(val)
+ else:
+ val = int(val)
+ ru_type = 'rusage' if split[0] == 'rusage' else \
+ 'child_rusage'
+ bs_json[ru_type][ru_key] = val
+ elif key == 'Status':
+ bs_json['status'] = val
+ bs_json['elapsed_time'] = end_time - start_time
+ return bs_json
+
+ log.info('Saving buildstats in JSON format')
+ bs_dirs = sorted(os.listdir(self.bb_vars['BUILDSTATS_BASE']))
+ if len(bs_dirs) > 1:
+ log.warning("Multiple buildstats found for test %s, only "
+ "archiving the last one", self.name)
+ bs_dir = os.path.join(self.bb_vars['BUILDSTATS_BASE'], bs_dirs[-1])
+
+ buildstats = []
+ for fname in os.listdir(bs_dir):
+ recipe_dir = os.path.join(bs_dir, fname)
+ if not os.path.isdir(recipe_dir):
+ continue
+ name, epoch, version, revision = split_nevr(fname)
+ recipe_bs = {'name': name,
+ 'epoch': epoch,
+ 'version': version,
+ 'revision': revision,
+ 'tasks': {}}
+ for task in os.listdir(recipe_dir):
+ recipe_bs['tasks'][task] = bs_to_json(os.path.join(recipe_dir,
+ task))
+ buildstats.append(recipe_bs)
+
+ # Write buildstats into json file
+ postfix = '.' + str_to_fn(label) if label else ''
+ postfix += '.json'
+ outfile = os.path.join(self.out_dir, 'buildstats' + postfix)
+ with open(outfile, 'w') as fobj:
+ json.dump(buildstats, fobj, indent=4, sort_keys=True,
+ cls=ResultsJsonEncoder)
+ return outfile
+
+ def rm_tmp(self):
+ """Cleanup temporary/intermediate files and directories"""
+ log.debug("Removing temporary and cache files")
+ for name in ['bitbake.lock', 'conf/sanity_info',
+ self.bb_vars['TMPDIR']]:
+ oe.path.remove(name, recurse=True)
+
+ def rm_sstate(self):
+ """Remove sstate directory"""
+ log.debug("Removing sstate-cache")
+ oe.path.remove(self.bb_vars['SSTATE_DIR'], recurse=True)
+
+ def rm_cache(self):
+ """Drop bitbake caches"""
+ oe.path.remove(self.bb_vars['PERSISTENT_DIR'], recurse=True)
+
+ @staticmethod
+ def sync():
+ """Sync and drop kernel caches"""
+ log.debug("Syncing and dropping kernel caches""")
+ KernelDropCaches.drop()
+ os.sync()
+ # Wait a bit for all the dirty blocks to be written onto disk
+ time.sleep(3)
+
+
+class BuildPerfTestLoader(unittest.TestLoader):
+ """Test loader for build performance tests"""
+ sortTestMethodsUsing = None
+
+
+class BuildPerfTestRunner(unittest.TextTestRunner):
+ """Test loader for build performance tests"""
+ sortTestMethodsUsing = None
+
+ def __init__(self, out_dir, *args, **kwargs):
+ super(BuildPerfTestRunner, self).__init__(*args, **kwargs)
+ self.out_dir = out_dir
+
+ def _makeResult(self):
+ return BuildPerfTestResult(self.out_dir, self.stream, self.descriptions,
+ self.verbosity)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/buildperf/test_basic.py b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/test_basic.py
new file mode 100644
index 000000000..7a48c1e77
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/buildperf/test_basic.py
@@ -0,0 +1,127 @@
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+"""Basic set of build performance tests"""
+import os
+import shutil
+
+import oe.path
+from oeqa.buildperf import BuildPerfTestCase
+from oeqa.utils.commands import get_bb_vars
+
+
+class Test1P1(BuildPerfTestCase):
+ build_target = 'core-image-sato'
+
+ def test1(self):
+ """Measure wall clock of bitbake core-image-sato and size of tmp dir"""
+ self.rm_tmp()
+ self.rm_sstate()
+ self.rm_cache()
+ self.sync()
+ self.measure_cmd_resources(['bitbake', self.build_target], 'build',
+ 'bitbake ' + self.build_target, save_bs=True)
+ self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir')
+
+
+class Test1P2(BuildPerfTestCase):
+ build_target = 'virtual/kernel'
+
+ def test12(self):
+ """Measure bitbake virtual/kernel"""
+ # Build and cleans state in order to get all dependencies pre-built
+ self.log_cmd_output(['bitbake', self.build_target])
+ self.log_cmd_output(['bitbake', self.build_target, '-c', 'cleansstate'])
+
+ self.sync()
+ self.measure_cmd_resources(['bitbake', self.build_target], 'build',
+ 'bitbake ' + self.build_target)
+
+
+class Test1P3(BuildPerfTestCase):
+ build_target = 'core-image-sato'
+
+ def test13(self):
+ """Build core-image-sato with rm_work enabled"""
+ postfile = os.path.join(self.out_dir, 'postfile.conf')
+ with open(postfile, 'w') as fobj:
+ fobj.write('INHERIT += "rm_work"\n')
+ try:
+ self.rm_tmp()
+ self.rm_sstate()
+ self.rm_cache()
+ self.sync()
+ cmd = ['bitbake', '-R', postfile, self.build_target]
+ self.measure_cmd_resources(cmd, 'build',
+ 'bitbake' + self.build_target,
+ save_bs=True)
+ self.measure_disk_usage(self.bb_vars['TMPDIR'], 'tmpdir', 'tmpdir')
+ finally:
+ os.unlink(postfile)
+
+
+class Test2(BuildPerfTestCase):
+ build_target = 'core-image-sato'
+
+ def test2(self):
+ """Measure bitbake core-image-sato -c rootfs with sstate"""
+ # Build once in order to populate sstate cache
+ self.log_cmd_output(['bitbake', self.build_target])
+
+ self.rm_tmp()
+ self.rm_cache()
+ self.sync()
+ cmd = ['bitbake', self.build_target, '-c', 'rootfs']
+ self.measure_cmd_resources(cmd, 'do_rootfs', 'bitbake do_rootfs')
+
+
+class Test3(BuildPerfTestCase):
+
+ def test3(self):
+ """Parsing time metrics (bitbake -p)"""
+ # Drop all caches and parse
+ self.rm_cache()
+ oe.path.remove(os.path.join(self.bb_vars['TMPDIR'], 'cache'), True)
+ self.measure_cmd_resources(['bitbake', '-p'], 'parse_1',
+ 'bitbake -p (no caches)')
+ # Drop tmp/cache
+ oe.path.remove(os.path.join(self.bb_vars['TMPDIR'], 'cache'), True)
+ self.measure_cmd_resources(['bitbake', '-p'], 'parse_2',
+ 'bitbake -p (no tmp/cache)')
+ # Parse with fully cached data
+ self.measure_cmd_resources(['bitbake', '-p'], 'parse_3',
+ 'bitbake -p (cached)')
+
+
+class Test4(BuildPerfTestCase):
+ build_target = 'core-image-sato'
+
+ def test4(self):
+ """eSDK metrics"""
+ self.log_cmd_output("bitbake {} -c do_populate_sdk_ext".format(
+ self.build_target))
+ self.bb_vars = get_bb_vars(None, self.build_target)
+ tmp_dir = self.bb_vars['TMPDIR']
+ installer = os.path.join(
+ self.bb_vars['SDK_DEPLOY'],
+ self.bb_vars['TOOLCHAINEXT_OUTPUTNAME'] + '.sh')
+ # Measure installer size
+ self.measure_disk_usage(installer, 'installer_bin', 'eSDK installer',
+ apparent_size=True)
+ # Measure deployment time and deployed size
+ deploy_dir = os.path.join(tmp_dir, 'esdk-deploy')
+ if os.path.exists(deploy_dir):
+ shutil.rmtree(deploy_dir)
+ self.sync()
+ self.measure_cmd_resources([installer, '-y', '-d', deploy_dir],
+ 'deploy', 'eSDK deploy')
+ self.measure_disk_usage(deploy_dir, 'deploy_dir', 'deploy dir',
+ apparent_size=True)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/controllers/masterimage.py b/import-layers/yocto-poky/meta/lib/oeqa/controllers/masterimage.py
index 522f9ebd7..9ce3bf803 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/controllers/masterimage.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/controllers/masterimage.py
@@ -24,9 +24,7 @@ from oeqa.utils import CommandError
from abc import ABCMeta, abstractmethod
-class MasterImageHardwareTarget(oeqa.targetcontrol.BaseTarget):
-
- __metaclass__ = ABCMeta
+class MasterImageHardwareTarget(oeqa.targetcontrol.BaseTarget, metaclass=ABCMeta):
supported_image_fstypes = ['tar.gz', 'tar.bz2']
@@ -199,3 +197,43 @@ class GummibootTarget(MasterImageHardwareTarget):
self.power_cycle(self.master)
# there are better ways than a timeout but this should work for now
time.sleep(120)
+
+
+class SystemdbootTarget(MasterImageHardwareTarget):
+
+ def __init__(self, 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
+ # (EFI vars values need to be utf-16)
+ # $ echo -en "test\0" | iconv -f ascii -t utf-16le | hexdump -C
+ # 00000000 74 00 65 00 73 00 74 00 00 00 |t.e.s.t...|
+ self.efivarvalue = r'\x07\x00\x00\x00\x74\x00\x65\x00\x73\x00\x74\x00\x00\x00'
+ self.deploy_cmds = [
+ 'mount -L boot /boot',
+ 'mkdir -p /mnt/testrootfs',
+ 'mount -L testrootfs /mnt/testrootfs',
+ 'modprobe efivarfs',
+ 'mount -t efivarfs efivarfs /sys/firmware/efi/efivars',
+ 'cp ~/test-kernel /boot',
+ 'rm -rf /mnt/testrootfs/*',
+ 'tar xvf ~/test-rootfs.%s -C /mnt/testrootfs' % self.image_fstype,
+ 'printf "%s" > /sys/firmware/efi/efivars/LoaderEntryOneShot-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f' % self.efivarvalue
+ ]
+
+ def _deploy(self):
+ # make sure these aren't mounted
+ self.master.run("umount /boot; umount /mnt/testrootfs; umount /sys/firmware/efi/efivars;")
+ # from now on, every deploy cmd should return 0
+ # else an exception will be thrown by sshcontrol
+ self.master.ignore_status = False
+ self.master.copy_to(self.rootfs, "~/test-rootfs." + self.image_fstype)
+ self.master.copy_to(self.kernel, "~/test-kernel")
+ for cmd in self.deploy_cmds:
+ self.master.run(cmd)
+
+ def _start(self, params=None):
+ self.power_cycle(self.master)
+ # there are better ways than a timeout but this should work for now
+ time.sleep(120)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/oetest.py b/import-layers/yocto-poky/meta/lib/oeqa/oetest.py
index 3ed5bb8c2..95d3bf72f 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/oetest.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/oetest.py
@@ -12,6 +12,8 @@ import unittest
import inspect
import subprocess
import signal
+import shutil
+import functools
try:
import bb
except ImportError:
@@ -54,18 +56,29 @@ def filterByTagExp(testsuite, tagexp):
@LogResults
class oeTest(unittest.TestCase):
+ pscmd = "ps"
longMessage = True
@classmethod
def hasPackage(self, pkg):
- for item in oeTest.tc.pkgmanifest.split('\n'):
- if re.match(pkg, item):
+ """
+ True if the full package name exists in the manifest, False otherwise.
+ """
+ return pkg in oeTest.tc.pkgmanifest
+
+ @classmethod
+ def hasPackageMatch(self, match):
+ """
+ True if match exists in the manifest as a regular expression substring,
+ False otherwise.
+ """
+ for s in oeTest.tc.pkgmanifest:
+ if re.match(match, s):
return True
return False
@classmethod
def hasFeature(self,feature):
-
if feature in oeTest.tc.imagefeatures or \
feature in oeTest.tc.distrofeatures:
return True
@@ -78,6 +91,9 @@ class oeRuntimeTest(oeTest):
super(oeRuntimeTest, self).__init__(methodName)
def setUp(self):
+ # Install packages in the DUT
+ self.tc.install_uninstall_packages(self.id())
+
# Check if test needs to run
if self.tc.sigterm:
self.fail("Got SIGTERM")
@@ -91,6 +107,9 @@ class oeRuntimeTest(oeTest):
pass
def tearDown(self):
+ # Unistall packages in the DUT
+ self.tc.install_uninstall_packages(self.id(), False)
+
res = getResults()
# If a test fails or there is an exception dump
# for QemuTarget only
@@ -117,6 +136,15 @@ class oeRuntimeTest(oeTest):
if status != 0:
return status
+class OETestCalledProcessError(subprocess.CalledProcessError):
+ def __str__(self):
+ if hasattr(self, "stderr"):
+ return "Command '%s' returned non-zero exit status %d with output %s and stderr %s" % (self.cmd, self.returncode, self.output, self.stderr)
+ else:
+ return "Command '%s' returned non-zero exit status %d with output %s" % (self.cmd, self.returncode, self.output)
+
+subprocess.CalledProcessError = OETestCalledProcessError
+
class oeSDKTest(oeTest):
def __init__(self, methodName='runTest'):
self.sdktestdir = oeSDKTest.tc.sdktestdir
@@ -124,13 +152,12 @@ class oeSDKTest(oeTest):
@classmethod
def hasHostPackage(self, pkg):
-
if re.search(pkg, oeTest.tc.hostpkgmanifest):
return True
return False
def _run(self, cmd):
- return subprocess.check_output(". %s > /dev/null; %s;" % (self.tc.sdkenv, cmd), shell=True)
+ return subprocess.check_output(". %s > /dev/null; %s;" % (self.tc.sdkenv, cmd), shell=True, stderr=subprocess.STDOUT).decode("utf-8")
class oeSDKExtTest(oeSDKTest):
def _run(self, cmd):
@@ -142,7 +169,7 @@ class oeSDKExtTest(oeSDKTest):
env['PATH'] = avoid_paths_in_environ(paths_to_avoid)
return subprocess.check_output(". %s > /dev/null;"\
- " %s;" % (self.tc.sdkenv, cmd), shell=True, env=env)
+ " %s;" % (self.tc.sdkenv, cmd), stderr=subprocess.STDOUT, shell=True, env=env).decode("utf-8")
def getmodule(pos=2):
# stack returns a list of tuples containg frame information
@@ -185,15 +212,22 @@ def custom_verbose(msg, *args, **kwargs):
_buffer_logger = ""
class TestContext(object):
- def __init__(self, d):
+ def __init__(self, d, exported=False):
self.d = d
self.testsuites = self._get_test_suites()
- self.testslist = self._get_tests_list(d.getVar("BBPATH", True).split(':'))
+
+ if exported:
+ path = [os.path.dirname(os.path.abspath(__file__))]
+ extrapath = ""
+ else:
+ path = d.getVar("BBPATH", True).split(':')
+ extrapath = "lib/oeqa"
+
+ self.testslist = self._get_tests_list(path, extrapath)
self.testsrequired = self._get_test_suites_required()
- self.filesdir = os.path.join(os.path.dirname(os.path.abspath(
- oeqa.runtime.__file__)), "files")
+ self.filesdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "runtime/files")
self.imagefeatures = d.getVar("IMAGE_FEATURES", True).split()
self.distrofeatures = d.getVar("DISTRO_FEATURES", True).split()
@@ -212,7 +246,7 @@ class TestContext(object):
return " ".join(tcs)
# return test list by type also filter if TEST_SUITES is specified
- def _get_tests_list(self, bbpath):
+ def _get_tests_list(self, bbpath, extrapath):
testslist = []
type = self._get_test_namespace()
@@ -226,11 +260,11 @@ class TestContext(object):
continue
found = False
for p in bbpath:
- if os.path.exists(os.path.join(p, 'lib', 'oeqa', type, testname + '.py')):
+ if os.path.exists(os.path.join(p, extrapath, type, testname + ".py")):
testslist.append("oeqa." + type + "." + testname)
found = True
break
- elif os.path.exists(os.path.join(p, 'lib', 'oeqa', type, testname.split(".")[0] + '.py')):
+ elif os.path.exists(os.path.join(p, extrapath, type, testname.split(".")[0] + ".py")):
testslist.append("oeqa." + type + "." + testname)
found = True
break
@@ -239,8 +273,6 @@ class TestContext(object):
if "auto" in self.testsuites:
def add_auto_list(path):
- if not os.path.exists(os.path.join(path, '__init__.py')):
- bb.fatal('Tests directory %s exists but is missing __init__.py' % path)
files = sorted([f for f in os.listdir(path) if f.endswith('.py') and not f.startswith('_')])
for f in files:
module = 'oeqa.' + type + '.' + f[:-3]
@@ -255,6 +287,51 @@ class TestContext(object):
return testslist
+ def getTestModules(self):
+ """
+ Returns all the test modules in the testlist.
+ """
+
+ import pkgutil
+
+ modules = []
+ for test in self.testslist:
+ if re.search("\w+\.\w+\.test_\S+", test):
+ test = '.'.join(t.split('.')[:3])
+ module = pkgutil.get_loader(test)
+ modules.append(module)
+
+ return modules
+
+ def getModulefromID(self, test_id):
+ """
+ Returns the test module based on a test id.
+ """
+
+ module_name = ".".join(test_id.split(".")[:3])
+ modules = self.getTestModules()
+ for module in modules:
+ if module.name == module_name:
+ return module
+
+ return None
+
+ def getTests(self, test):
+ '''Return all individual tests executed when running the suite.'''
+ # Unfortunately unittest does not have an API for this, so we have
+ # to rely on implementation details. This only needs to work
+ # for TestSuite containing TestCase.
+ method = getattr(test, '_testMethodName', None)
+ if method:
+ # leaf case: a TestCase
+ yield test
+ else:
+ # Look into TestSuite.
+ tests = getattr(test, '_tests', [])
+ for t1 in tests:
+ for t2 in self.getTests(t1):
+ yield t2
+
def loadTests(self):
setattr(oeTest, "tc", self)
@@ -263,36 +340,20 @@ class TestContext(object):
suites = [testloader.loadTestsFromName(name) for name in self.testslist]
suites = filterByTagExp(suites, getattr(self, "tagexp", None))
- def getTests(test):
- '''Return all individual tests executed when running the suite.'''
- # Unfortunately unittest does not have an API for this, so we have
- # to rely on implementation details. This only needs to work
- # for TestSuite containing TestCase.
- method = getattr(test, '_testMethodName', None)
- if method:
- # leaf case: a TestCase
- yield test
- else:
- # Look into TestSuite.
- tests = getattr(test, '_tests', [])
- for t1 in tests:
- for t2 in getTests(t1):
- yield t2
-
# Determine dependencies between suites by looking for @skipUnlessPassed
# method annotations. Suite A depends on suite B if any method in A
# depends on a method on B.
for suite in suites:
suite.dependencies = []
suite.depth = 0
- for test in getTests(suite):
+ for test in self.getTests(suite):
methodname = getattr(test, '_testMethodName', None)
if methodname:
method = getattr(test, methodname)
depends_on = getattr(method, '_depends_on', None)
if depends_on:
for dep_suite in suites:
- if depends_on in [getattr(t, '_testMethodName', None) for t in getTests(dep_suite)]:
+ if depends_on in [getattr(t, '_testMethodName', None) for t in self.getTests(dep_suite)]:
if dep_suite not in suite.dependencies and \
dep_suite is not suite:
suite.dependencies.append(dep_suite)
@@ -314,7 +375,14 @@ class TestContext(object):
for index, suite in enumerate(suites):
set_suite_depth(suite)
suite.index = index
- suites.sort(cmp=lambda a,b: cmp((a.depth, a.index), (b.depth, b.index)))
+
+ def cmp(a, b):
+ return (a > b) - (a < b)
+
+ def cmpfunc(a, b):
+ return cmp((a.depth, a.index), (b.depth, b.index))
+
+ suites.sort(key=functools.cmp_to_key(cmpfunc))
self.suite = testloader.suiteClass(suites)
@@ -331,35 +399,24 @@ class TestContext(object):
return runner.run(self.suite)
-class ImageTestContext(TestContext):
- def __init__(self, d, target, host_dumper):
- super(ImageTestContext, self).__init__(d)
-
- self.tagexp = d.getVar("TEST_SUITES_TAGS", True)
+class RuntimeTestContext(TestContext):
+ def __init__(self, d, target, exported=False):
+ super(RuntimeTestContext, self).__init__(d, exported)
self.target = target
- self.host_dumper = host_dumper
+ self.pkgmanifest = {}
manifest = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True),
d.getVar("IMAGE_LINK_NAME", True) + ".manifest")
nomanifest = d.getVar("IMAGE_NO_MANIFEST", True)
if nomanifest is None or nomanifest != "1":
try:
with open(manifest) as f:
- self.pkgmanifest = f.read()
+ for line in f:
+ (pkg, arch, version) = line.strip().split()
+ self.pkgmanifest[pkg] = (version, arch)
except IOError as e:
bb.fatal("No package manifest file found. Did you build the image?\n%s" % e)
- else:
- self.pkgmanifest = ""
-
- self.sigterm = False
- self.origsigtermhandler = signal.getsignal(signal.SIGTERM)
- signal.signal(signal.SIGTERM, self._sigterm_exception)
-
- def _sigterm_exception(self, signum, stackframe):
- bb.warn("TestImage received SIGTERM, shutting down...")
- self.sigterm = True
- self.target.stop()
def _get_test_namespace(self):
return "runtime"
@@ -382,8 +439,223 @@ class ImageTestContext(TestContext):
return [t for t in self.d.getVar("TEST_SUITES", True).split() if t != "auto"]
def loadTests(self):
- super(ImageTestContext, self).loadTests()
- setattr(oeRuntimeTest, "pscmd", "ps -ef" if oeTest.hasPackage("procps") else "ps")
+ super(RuntimeTestContext, self).loadTests()
+ if oeTest.hasPackage("procps"):
+ oeRuntimeTest.pscmd = "ps -ef"
+
+ def extract_packages(self):
+ """
+ Find packages that will be needed during runtime.
+ """
+
+ modules = self.getTestModules()
+ bbpaths = self.d.getVar("BBPATH", True).split(":")
+
+ shutil.rmtree(self.d.getVar("TEST_EXTRACTED_DIR", True))
+ shutil.rmtree(self.d.getVar("TEST_PACKAGED_DIR", True))
+ for module in modules:
+ json_file = self._getJsonFile(module)
+ if json_file:
+ needed_packages = self._getNeededPackages(json_file)
+ self._perform_package_extraction(needed_packages)
+
+ def _perform_package_extraction(self, needed_packages):
+ """
+ Extract packages that will be needed during runtime.
+ """
+
+ import oe.path
+
+ extracted_path = self.d.getVar("TEST_EXTRACTED_DIR", True)
+ packaged_path = self.d.getVar("TEST_PACKAGED_DIR", True)
+
+ for key,value in needed_packages.items():
+ packages = ()
+ if isinstance(value, dict):
+ packages = (value, )
+ elif isinstance(value, list):
+ packages = value
+ else:
+ bb.fatal("Failed to process needed packages for %s; "
+ "Value must be a dict or list" % key)
+
+ for package in packages:
+ pkg = package["pkg"]
+ rm = package.get("rm", False)
+ extract = package.get("extract", True)
+ if extract:
+ dst_dir = os.path.join(extracted_path, pkg)
+ else:
+ dst_dir = os.path.join(packaged_path)
+
+ # Extract package and copy it to TEST_EXTRACTED_DIR
+ pkg_dir = self._extract_in_tmpdir(pkg)
+ if extract:
+
+ # Same package used for more than one test,
+ # don't need to extract again.
+ if os.path.exists(dst_dir):
+ continue
+ oe.path.copytree(pkg_dir, dst_dir)
+ shutil.rmtree(pkg_dir)
+
+ # Copy package to TEST_PACKAGED_DIR
+ else:
+ self._copy_package(pkg)
+
+ def _getJsonFile(self, module):
+ """
+ Returns the path of the JSON file for a module, empty if doesn't exitst.
+ """
+
+ module_file = module.path
+ json_file = "%s.json" % module_file.rsplit(".", 1)[0]
+ if os.path.isfile(module_file) and os.path.isfile(json_file):
+ return json_file
+ else:
+ return ""
+
+ def _getNeededPackages(self, json_file, test=None):
+ """
+ Returns a dict with needed packages based on a JSON file.
+
+
+ If a test is specified it will return the dict just for that test.
+ """
+
+ import json
+
+ needed_packages = {}
+
+ with open(json_file) as f:
+ test_packages = json.load(f)
+ for key,value in test_packages.items():
+ needed_packages[key] = value
+
+ if test:
+ if test in needed_packages:
+ needed_packages = needed_packages[test]
+ else:
+ needed_packages = {}
+
+ return needed_packages
+
+ def _extract_in_tmpdir(self, pkg):
+ """"
+ Returns path to a temp directory where the package was
+ extracted without dependencies.
+ """
+
+ from oeqa.utils.package_manager import get_package_manager
+
+ pkg_path = os.path.join(self.d.getVar("TEST_INSTALL_TMP_DIR", True), pkg)
+ pm = get_package_manager(self.d, pkg_path)
+ extract_dir = pm.extract(pkg)
+ shutil.rmtree(pkg_path)
+
+ return extract_dir
+
+ def _copy_package(self, pkg):
+ """
+ Copy the RPM, DEB or IPK package to dst_dir
+ """
+
+ from oeqa.utils.package_manager import get_package_manager
+
+ pkg_path = os.path.join(self.d.getVar("TEST_INSTALL_TMP_DIR", True), pkg)
+ dst_dir = self.d.getVar("TEST_PACKAGED_DIR", True)
+ pm = get_package_manager(self.d, pkg_path)
+ pkg_info = pm.package_info(pkg)
+ file_path = pkg_info[pkg]["filepath"]
+ shutil.copy2(file_path, dst_dir)
+ shutil.rmtree(pkg_path)
+
+ def install_uninstall_packages(self, test_id, pkg_dir, install):
+ """
+ Check if the test requires a package and Install/Unistall it in the DUT
+ """
+
+ test = test_id.split(".")[4]
+ module = self.getModulefromID(test_id)
+ json = self._getJsonFile(module)
+ if json:
+ needed_packages = self._getNeededPackages(json, test)
+ if needed_packages:
+ self._install_uninstall_packages(needed_packages, pkg_dir, install)
+
+ def _install_uninstall_packages(self, needed_packages, pkg_dir, install=True):
+ """
+ Install/Unistall packages in the DUT without using a package manager
+ """
+
+ if isinstance(needed_packages, dict):
+ packages = [needed_packages]
+ elif isinstance(needed_packages, list):
+ packages = needed_packages
+
+ for package in packages:
+ pkg = package["pkg"]
+ rm = package.get("rm", False)
+ extract = package.get("extract", True)
+ src_dir = os.path.join(pkg_dir, pkg)
+
+ # Install package
+ if install and extract:
+ self.target.connection.copy_dir_to(src_dir, "/")
+
+ # Unistall package
+ elif not install and rm:
+ self.target.connection.delete_dir_structure(src_dir, "/")
+
+class ImageTestContext(RuntimeTestContext):
+ def __init__(self, d, target, host_dumper):
+ super(ImageTestContext, self).__init__(d, target)
+
+ self.tagexp = d.getVar("TEST_SUITES_TAGS", True)
+
+ self.host_dumper = host_dumper
+
+ self.sigterm = False
+ self.origsigtermhandler = signal.getsignal(signal.SIGTERM)
+ signal.signal(signal.SIGTERM, self._sigterm_exception)
+
+ def _sigterm_exception(self, signum, stackframe):
+ bb.warn("TestImage received SIGTERM, shutting down...")
+ self.sigterm = True
+ self.target.stop()
+
+ def install_uninstall_packages(self, test_id, install=True):
+ """
+ Check if the test requires a package and Install/Unistall it in the DUT
+ """
+
+ pkg_dir = self.d.getVar("TEST_EXTRACTED_DIR", True)
+ super(ImageTestContext, self).install_uninstall_packages(test_id, pkg_dir, install)
+
+class ExportTestContext(RuntimeTestContext):
+ def __init__(self, d, target, exported=False, parsedArgs={}):
+ """
+ This class is used when exporting tests and when are executed outside OE environment.
+
+ parsedArgs can contain the following:
+ - tag: Filter test by tag.
+ """
+ super(ExportTestContext, self).__init__(d, target, exported)
+
+ tag = parsedArgs.get("tag", None)
+ self.tagexp = tag if tag != None else d.getVar("TEST_SUITES_TAGS", True)
+
+ self.sigterm = None
+
+ def install_uninstall_packages(self, test_id, install=True):
+ """
+ Check if the test requires a package and Install/Unistall it in the DUT
+ """
+
+ export_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+ extracted_dir = self.d.getVar("TEST_EXPORT_EXTRACTED_DIR", True)
+ pkg_dir = os.path.join(export_dir, extracted_dir)
+ super(ExportTestContext, self).install_uninstall_packages(test_id, pkg_dir, install)
class SDKTestContext(TestContext):
def __init__(self, d, sdktestdir, sdkenv, tcname, *args):
@@ -396,8 +668,11 @@ class SDKTestContext(TestContext):
if not hasattr(self, 'target_manifest'):
self.target_manifest = d.getVar("SDK_TARGET_MANIFEST", True)
try:
+ self.pkgmanifest = {}
with open(self.target_manifest) as f:
- self.pkgmanifest = f.read()
+ for line in f:
+ (pkg, arch, version) = line.strip().split()
+ self.pkgmanifest[pkg] = (version, arch)
except IOError as e:
bb.fatal("No package manifest file found. Did you build the sdk image?\n%s" % e)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runexported.py b/import-layers/yocto-poky/meta/lib/oeqa/runexported.py
index cc89e13c0..7e245c412 100755
--- a/import-layers/yocto-poky/meta/lib/oeqa/runexported.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runexported.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (C) 2013 Intel Corporation
@@ -30,9 +30,9 @@ except ImportError:
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "oeqa")))
-from oeqa.oetest import TestContext
+from oeqa.oetest import ExportTestContext
+from oeqa.utils.commands import runCmd, updateEnv
from oeqa.utils.sshcontrol import SSHControl
-from oeqa.utils.dump import get_host_dumper
# this isn't pretty but we need a fake target object
# for running the tests externally as we don't care
@@ -69,10 +69,6 @@ class MyDataDict(dict):
def getVar(self, key, unused = None):
return self.get(key, "")
-class ExportTestContext(TestContext):
- def __init__(self, d):
- self.d = d
-
def main():
parser = argparse.ArgumentParser()
@@ -85,6 +81,7 @@ def main():
specified in the json if that directory actually exists or it will error out.")
parser.add_argument("-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \
the current dir is used. This is used for usually creating a ssh log file and a scp test file.")
+ parser.add_argument("-a", "--tag", dest="tag", help="Only run test with specified tag.")
parser.add_argument("json", help="The json file exported by the build system", default="testdata.json", nargs='?')
args = parser.parse_args()
@@ -111,30 +108,41 @@ def main():
if not os.path.isdir(d["DEPLOY_DIR"]):
print("WARNING: The path to DEPLOY_DIR does not exist: %s" % d["DEPLOY_DIR"])
+ parsedArgs = {}
+ parsedArgs["tag"] = args.tag
+
+ extract_sdk(d)
target = FakeTarget(d)
for key in loaded["target"].keys():
setattr(target, key, loaded["target"][key])
- host_dumper = get_host_dumper(d)
- host_dumper.parent_dir = loaded["host_dumper"]["parent_dir"]
- host_dumper.cmds = loaded["host_dumper"]["cmds"]
-
target.exportStart()
- tc = ExportTestContext(d)
-
- setattr(tc, "d", d)
- setattr(tc, "target", target)
- setattr(tc, "host_dumper", host_dumper)
- for key in loaded.keys():
- if key != "d" and key != "target" and key != "host_dumper":
- setattr(tc, key, loaded[key])
-
+ tc = ExportTestContext(d, target, True, parsedArgs)
tc.loadTests()
tc.runTests()
return 0
+def extract_sdk(d):
+ """
+ Extract SDK if needed
+ """
+
+ export_dir = os.path.dirname(os.path.realpath(__file__))
+ tools_dir = d.getVar("TEST_EXPORT_SDK_DIR", True)
+ tarball_name = "%s.sh" % d.getVar("TEST_EXPORT_SDK_NAME", True)
+ tarball_path = os.path.join(export_dir, tools_dir, tarball_name)
+ extract_path = os.path.join(export_dir, "sysroot")
+ if os.path.isfile(tarball_path):
+ print ("Found SDK tarball %s. Extracting..." % tarball_path)
+ result = runCmd("%s -y -d %s" % (tarball_path, extract_path))
+ for f in os.listdir(extract_path):
+ if f.startswith("environment-setup"):
+ print("Setting up SDK environment...")
+ env_file = os.path.join(extract_path, f)
+ updateEnv(env_file)
+
if __name__ == "__main__":
try:
ret = main()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/__init__.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/__init__.py
deleted file mode 100644
index 4cf3fa76b..000000000
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-# Enable other layers to have tests in the same named directory
-from pkgutil import extend_path
-__path__ = extend_path(__path__, __name__)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/_ptest.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/_ptest.py
index 0621028b8..71324d3da 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/_ptest.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/_ptest.py
@@ -11,7 +11,7 @@ import subprocess
def setUpModule():
if not oeRuntimeTest.hasFeature("package-management"):
skipModule("Image doesn't have package management feature")
- if not oeRuntimeTest.hasPackage("smart"):
+ if not oeRuntimeTest.hasPackage("smartpm"):
skipModule("Image doesn't have smart installed")
if "package_rpm" != oeRuntimeTest.tc.d.getVar("PACKAGE_CLASSES", True).split()[0]:
skipModule("Rpm is not the primary package manager")
@@ -105,7 +105,7 @@ class PtestRunnerTest(oeRuntimeTest):
def test_ptestrunner(self):
self.add_smart_channel()
(runnerstatus, result) = self.target.run('which ptest-runner', 0)
- cond = oeRuntimeTest.hasPackage("ptest-runner") and oeRuntimeTest.hasFeature("ptest") and oeRuntimeTest.hasPackage("-ptest") and (runnerstatus != 0)
+ cond = oeRuntimeTest.hasPackage("ptest-runner") and oeRuntimeTest.hasFeature("ptest") and oeRuntimeTest.hasPackageMatch("-ptest") and (runnerstatus != 0)
if cond:
self.install_packages(self.install_complementary("*-ptest"))
self.install_packages(['ptest-runner'])
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildgalculator.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildgalculator.py
new file mode 100644
index 000000000..28ba29e5c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildgalculator.py
@@ -0,0 +1,23 @@
+from oeqa.oetest import oeRuntimeTest, skipModule
+from oeqa.utils.decorators import *
+from oeqa.utils.targetbuild import TargetBuildProject
+
+def setUpModule():
+ if not oeRuntimeTest.hasFeature("tools-sdk"):
+ skipModule("Image doesn't have tools-sdk in IMAGE_FEATURES")
+
+class GalculatorTest(oeRuntimeTest):
+ @skipUnlessPassed("test_ssh")
+ def test_galculator(self):
+ try:
+ project = TargetBuildProject(oeRuntimeTest.tc.target, oeRuntimeTest.tc.d,
+ "http://galculator.mnim.org/downloads/galculator-2.1.4.tar.bz2")
+ project.download_archive()
+
+ self.assertEqual(project.run_configure(), 0,
+ msg="Running configure failed")
+
+ self.assertEqual(project.run_make(), 0,
+ msg="Running make failed")
+ finally:
+ project.clean()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildiptables.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildiptables.py
index 09e252df8..bc75d0a0c 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildiptables.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildiptables.py
@@ -11,7 +11,7 @@ class BuildIptablesTest(oeRuntimeTest):
@classmethod
def setUpClass(self):
self.project = TargetBuildProject(oeRuntimeTest.tc.target, oeRuntimeTest.tc.d,
- "http://netfilter.org/projects/iptables/files/iptables-1.4.13.tar.bz2")
+ "http://downloads.yoctoproject.org/mirror/sources/iptables-1.4.13.tar.bz2")
self.project.download_archive()
@testcase(206)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildsudoku.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildsudoku.py
deleted file mode 100644
index 802b06001..000000000
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/buildsudoku.py
+++ /dev/null
@@ -1,28 +0,0 @@
-from oeqa.oetest import oeRuntimeTest, skipModule
-from oeqa.utils.decorators import *
-from oeqa.utils.targetbuild import TargetBuildProject
-
-def setUpModule():
- if not oeRuntimeTest.hasFeature("tools-sdk"):
- skipModule("Image doesn't have tools-sdk in IMAGE_FEATURES")
-
-class SudokuTest(oeRuntimeTest):
-
- @classmethod
- def setUpClass(self):
- self.project = TargetBuildProject(oeRuntimeTest.tc.target, oeRuntimeTest.tc.d,
- "http://downloads.sourceforge.net/project/sudoku-savant/sudoku-savant/sudoku-savant-1.3/sudoku-savant-1.3.tar.bz2")
- self.project.download_archive()
-
- @testcase(207)
- @skipUnlessPassed("test_ssh")
- def test_sudoku(self):
- self.assertEqual(self.project.run_configure(), 0,
- msg="Running configure failed")
-
- self.assertEqual(self.project.run_make(), 0,
- msg="Running make failed")
-
- @classmethod
- def tearDownClass(self):
- self.project.clean()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/connman.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/connman.py
index bd9dba3bd..003fefe2c 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/connman.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/connman.py
@@ -27,5 +27,5 @@ class ConnmanTest(oeRuntimeTest):
def test_connmand_running(self):
(status, output) = self.target.run(oeRuntimeTest.pscmd + ' | grep [c]onnmand')
if status != 0:
- print self.service_status("connman")
+ print(self.service_status("connman"))
self.fail("No connmand process running")
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/files/test.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/files/test.py
index f3a2273c5..f389225d7 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/files/test.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/files/test.py
@@ -3,4 +3,4 @@ import os
os.system('touch /tmp/testfile.python')
a = 9.01e+21 - 9.01e+21 + 0.01
-print "the value of a is %s" % a
+print("the value of a is %s" % a)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/parselogs.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/parselogs.py
index dec9ebe87..8efe2d1de 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/parselogs.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/parselogs.py
@@ -55,18 +55,25 @@ x86_common = [
'Could not enable PowerButton event',
'probe of LNXPWRBN:00 failed with error -22',
'pmd_set_huge: Cannot satisfy',
+ 'failed to setup card detect gpio',
+ 'amd_nb: Cannot enumerate AMD northbridges',
+ 'failed to retrieve link info, disabling eDP',
] + common_errors
qemux86_common = [
'wrong ELF class',
"fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge.",
"can't claim BAR ",
+ 'amd_nb: Cannot enumerate AMD northbridges',
+ 'uvesafb: 5000 ms task timeout, infinitely waiting',
+ 'tsc: HPET/PMTIMER calibration failed',
] + common_errors
ignore_errors = {
'default' : common_errors,
'qemux86' : [
'Failed to access perfctr msr (MSR',
+ 'pci 0000:00:00.0: [Firmware Bug]: reg 0x..: invalid BAR (can\'t size)',
] + qemux86_common,
'qemux86-64' : qemux86_common,
'qemumips' : [
@@ -81,16 +88,28 @@ ignore_errors = {
'host side 80-wire cable detection failed, limiting max speed',
'mode "640x480" test failed',
'Failed to load module "glx"',
+ 'can\'t handle BAR above 4GB',
+ 'Cannot reserve Legacy IO',
] + common_errors,
'qemuarm' : [
'mmci-pl18x: probe of fpga:05 failed with error -22',
'mmci-pl18x: probe of fpga:0b failed with error -22',
- 'Failed to load module "glx"'
+ 'Failed to load module "glx"',
+ 'OF: amba_device_add() failed (-19) for /amba/smc@10100000',
+ 'OF: amba_device_add() failed (-19) for /amba/mpmc@10110000',
+ 'OF: amba_device_add() failed (-19) for /amba/sctl@101e0000',
+ 'OF: amba_device_add() failed (-19) for /amba/watchdog@101e1000',
+ 'OF: amba_device_add() failed (-19) for /amba/sci@101f0000',
+ 'OF: amba_device_add() failed (-19) for /amba/ssp@101f4000',
+ 'OF: amba_device_add() failed (-19) for /amba/fpga/sci@a000',
+ 'Failed to initialize \'/amba/timer@101e3000\': -22',
+ 'jitterentropy: Initialization failed with host not compliant with requirements: 2',
] + common_errors,
'qemuarm64' : [
'Fatal server error:',
'(EE) Server terminated with error (1). Closing log file.',
'dmi: Firmware registration failed.',
+ 'irq: type mismatch, failed to map hwirq-27 for /intc',
] + common_errors,
'emenlow' : [
'[Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness',
@@ -110,11 +129,19 @@ ignore_errors = {
'(EE) Failed to load module psbdrv',
'(EE) open /dev/fb0: No such file or directory',
'(EE) AIGLX: reverting to software rendering',
+ 'dmi: Firmware registration failed.',
+ 'ioremap error for 0x78',
] + x86_common,
'intel-corei7-64' : x86_common,
'crownbay' : x86_common,
'genericx86' : x86_common,
- 'genericx86-64' : x86_common,
+ 'genericx86-64' : [
+ 'Direct firmware load for i915',
+ 'Failed to load firmware i915',
+ 'Failed to fetch GuC',
+ 'Failed to initialize GuC',
+ 'The driver is built-in, so to load the firmware you need to',
+ ] + x86_common,
'edgerouter' : [
'Fatal server error:',
] + common_errors,
@@ -153,6 +180,9 @@ class ParseLogsTest(oeRuntimeTest):
def getMachine(self):
return oeRuntimeTest.tc.d.getVar("MACHINE", True)
+ def getWorkdir(self):
+ return oeRuntimeTest.tc.d.getVar("WORKDIR", True)
+
#get some information on the CPU of the machine to display at the beginning of the output. This info might be useful in some cases.
def getHardwareInfo(self):
hwi = ""
@@ -190,16 +220,19 @@ class ParseLogsTest(oeRuntimeTest):
#copy the log files to be parsed locally
def transfer_logs(self, log_list):
- target_logs = 'target_logs'
+ workdir = self.getWorkdir()
+ self.target_logs = workdir + '/' + 'target_logs'
+ target_logs = self.target_logs
if not os.path.exists(target_logs):
os.makedirs(target_logs)
+ bb.utils.remove(self.target_logs + "/*")
for f in log_list:
self.target.copy_from(f, target_logs)
#get the local list of logs
def get_local_log_list(self, log_locations):
self.transfer_logs(self.getLogList(log_locations))
- logs = [ os.path.join('target_logs',f) for f in os.listdir('target_logs') if os.path.isfile(os.path.join('target_logs',f)) ]
+ logs = [ os.path.join(self.target_logs, f) for f in os.listdir(self.target_logs) if os.path.isfile(os.path.join(self.target_logs, f)) ]
return logs
#build the grep command to be used with filters and exclusions
@@ -238,7 +271,7 @@ class ParseLogsTest(oeRuntimeTest):
result = None
thegrep = self.build_grepcmd(errors, ignore_errors, log)
try:
- result = subprocess.check_output(thegrep, shell=True)
+ result = subprocess.check_output(thegrep, shell=True).decode("utf-8")
except:
pass
if (result is not None):
@@ -246,7 +279,7 @@ class ParseLogsTest(oeRuntimeTest):
rez = result.splitlines()
for xrez in rez:
try:
- grep_output = subprocess.check_output(['grep', '-F', xrez, '-B', str(lines_before), '-A', str(lines_after), log])
+ grep_output = subprocess.check_output(['grep', '-F', xrez, '-B', str(lines_before), '-A', str(lines_after), log]).decode("utf-8")
except:
pass
results[log.replace('target_logs/','')][xrez]=grep_output
@@ -262,7 +295,7 @@ class ParseLogsTest(oeRuntimeTest):
self.write_dmesg()
log_list = self.get_local_log_list(self.log_locations)
result = self.parse_logs(self.errors, self.ignore_errors, log_list)
- print self.getHardwareInfo()
+ print(self.getHardwareInfo())
errcount = 0
for log in result:
self.msg += "Log: "+log+"\n"
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/ping.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/ping.py
index 80c460161..0f2744792 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/ping.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/ping.py
@@ -14,7 +14,7 @@ class PingTest(oeRuntimeTest):
endtime = time.time() + 60
while count < 5 and time.time() < endtime:
proc = subprocess.Popen("ping -c 1 %s" % self.target.ip, shell=True, stdout=subprocess.PIPE)
- output += proc.communicate()[0]
+ output += proc.communicate()[0].decode("utf-8")
if proc.poll() == 0:
count += 1
else:
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/python.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/python.py
index 26edb7a9b..29a231c7c 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/python.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/python.py
@@ -4,7 +4,7 @@ from oeqa.oetest import oeRuntimeTest, skipModule
from oeqa.utils.decorators import *
def setUpModule():
- if not oeRuntimeTest.hasPackage("python"):
+ if not oeRuntimeTest.hasPackage("python-core"):
skipModule("No python package in the image")
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/rpm.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/rpm.py
index 624c515aa..7f514ca00 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/rpm.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/rpm.py
@@ -51,12 +51,32 @@ class RpmInstallRemoveTest(oeRuntimeTest):
@testcase(1096)
@skipUnlessPassed('test_ssh')
def test_rpm_query_nonroot(self):
- (status, output) = self.target.run('useradd test1')
- self.assertTrue(status == 0, msg="Failed to create new user: " + output)
- (status, output) = self.target.run('sudo -u test1 id')
- self.assertTrue('(test1)' in output, msg="Failed to execute as new user")
- (status, output) = self.target.run('sudo -u test1 rpm -qa')
- self.assertEqual(status, 0, msg="status: %s. Cannot run rpm -qa: %s" % (status, output))
+
+ def set_up_test_user(u):
+ (status, output) = self.target.run("id -u %s" % u)
+ if status == 0:
+ pass
+ else:
+ (status, output) = self.target.run("useradd %s" % u)
+ self.assertTrue(status == 0, msg="Failed to create new user: " + output)
+
+ def exec_as_test_user(u):
+ (status, output) = self.target.run("su -c id %s" % u)
+ self.assertTrue("({0})".format(u) in output, msg="Failed to execute as new user")
+ (status, output) = self.target.run("su -c \"rpm -qa\" %s " % u)
+ self.assertEqual(status, 0, msg="status: %s. Cannot run rpm -qa: %s" % (status, output))
+
+ def unset_up_test_user(u):
+ (status, output) = self.target.run("userdel -r %s" % u)
+ self.assertTrue(status == 0, msg="Failed to erase user: %s" % output)
+
+ tuser = 'test1'
+
+ try:
+ set_up_test_user(tuser)
+ exec_as_test_user(tuser)
+ finally:
+ unset_up_test_user(tuser)
@testcase(195)
@skipUnlessPassed('test_rpm_install')
@@ -98,4 +118,3 @@ class RpmInstallRemoveTest(oeRuntimeTest):
@classmethod
def tearDownClass(self):
oeRuntimeTest.tc.target.run('rm -f /tmp/rpm-doc.rpm')
-
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/smart.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/smart.py
index 126d61463..6cdb10d63 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/smart.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/smart.py
@@ -1,5 +1,7 @@
import unittest
import re
+import oe
+import subprocess
from oeqa.oetest import oeRuntimeTest, skipModule
from oeqa.utils.decorators import *
from oeqa.utils.httpserver import HTTPService
@@ -7,7 +9,7 @@ from oeqa.utils.httpserver import HTTPService
def setUpModule():
if not oeRuntimeTest.hasFeature("package-management"):
skipModule("Image doesn't have package management feature")
- if not oeRuntimeTest.hasPackage("smart"):
+ if not oeRuntimeTest.hasPackage("smartpm"):
skipModule("Image doesn't have smart installed")
if "package_rpm" != oeRuntimeTest.tc.d.getVar("PACKAGE_CLASSES", True).split()[0]:
skipModule("Rpm is not the primary package manager")
@@ -53,9 +55,50 @@ class SmartBasicTest(SmartTest):
class SmartRepoTest(SmartTest):
@classmethod
+ def create_index(self, arg):
+ index_cmd = arg
+ try:
+ bb.note("Executing '%s' ..." % index_cmd)
+ result = subprocess.check_output(index_cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+ except subprocess.CalledProcessError as e:
+ return("Index creation command '%s' failed with return code %d:\n%s" %
+ (e.cmd, e.returncode, e.output.decode("utf-8")))
+ if result:
+ bb.note(result)
+ return None
+
+ @classmethod
def setUpClass(self):
self.repolist = []
- self.repo_server = HTTPService(oeRuntimeTest.tc.d.getVar('DEPLOY_DIR', True), oeRuntimeTest.tc.target.server_ip)
+
+ # Index RPMs
+ rpm_createrepo = bb.utils.which(os.getenv('PATH'), "createrepo")
+ index_cmds = []
+ rpm_dirs_found = False
+ archs = (oeRuntimeTest.tc.d.getVar('ALL_MULTILIB_PACKAGE_ARCHS', True) or "").replace('-', '_').split()
+ for arch in archs:
+ rpm_dir = os.path.join(oeRuntimeTest.tc.d.getVar('DEPLOY_DIR_RPM', True), arch)
+ idx_path = os.path.join(oeRuntimeTest.tc.d.getVar('WORKDIR', True), 'rpm', arch)
+ db_path = os.path.join(oeRuntimeTest.tc.d.getVar('WORKDIR', True), 'rpmdb', arch)
+ if not os.path.isdir(rpm_dir):
+ continue
+ if os.path.exists(db_path):
+ bb.utils.remove(dbpath, True)
+ lockfilename = oeRuntimeTest.tc.d.getVar('DEPLOY_DIR_RPM', True) + "/rpm.lock"
+ lf = bb.utils.lockfile(lockfilename, False)
+ oe.path.copyhardlinktree(rpm_dir, idx_path)
+ # Full indexes overload a 256MB image so reduce the number of rpms
+ # in the feed. Filter to p* since we use the psplash packages and
+ # this leaves some allarch and machine arch packages too.
+ bb.utils.remove(idx_path + "*/[a-oq-z]*.rpm")
+ bb.utils.unlockfile(lf)
+ index_cmds.append("%s --dbpath %s --update -q %s" % (rpm_createrepo, db_path, idx_path))
+ rpm_dirs_found = True
+ # Create repodata¬
+ result = oe.utils.multiprocess_exec(index_cmds, self.create_index)
+ if result:
+ bb.fatal('%s' % ('\n'.join(result)))
+ self.repo_server = HTTPService(oeRuntimeTest.tc.d.getVar('WORKDIR', True), oeRuntimeTest.tc.target.server_ip)
self.repo_server.start()
@classmethod
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/syslog.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/syslog.py
index 2601dd9ea..8f550329e 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/syslog.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/syslog.py
@@ -9,7 +9,6 @@ def setUpModule():
class SyslogTest(oeRuntimeTest):
@testcase(201)
- @skipUnlessPassed("test_syslog_help")
def test_syslog_running(self):
(status,output) = self.target.run(oeRuntimeTest.pscmd + ' | grep -i [s]yslogd')
self.assertEqual(status, 0, msg="no syslogd process, ps output: %s" % self.target.run(oeRuntimeTest.pscmd)[1])
@@ -19,8 +18,16 @@ class SyslogTestConfig(oeRuntimeTest):
@testcase(1149)
@skipUnlessPassed("test_syslog_running")
def test_syslog_logger(self):
- (status,output) = self.target.run('logger foobar && test -e /var/log/messages && grep foobar /var/log/messages || logread | grep foobar')
- self.assertEqual(status, 0, msg="Test log string not found in /var/log/messages. Output: %s " % output)
+ (status, output) = self.target.run('logger foobar')
+ self.assertEqual(status, 0, msg="Can't log into syslog. Output: %s " % output)
+
+ (status, output) = self.target.run('grep foobar /var/log/messages')
+ if status != 0:
+ if oeRuntimeTest.tc.d.getVar("VIRTUAL-RUNTIME_init_manager", "") == "systemd":
+ (status, output) = self.target.run('journalctl -o cat | grep foobar')
+ else:
+ (status, output) = self.target.run('logread | grep foobar')
+ self.assertEqual(status, 0, msg="Test log string not found in /var/log/messages or logread. Output: %s " % output)
@testcase(1150)
@skipUnlessPassed("test_syslog_running")
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/runtime/systemd.py b/import-layers/yocto-poky/meta/lib/oeqa/runtime/systemd.py
index 2b2f10d71..8de799cd6 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/runtime/systemd.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/runtime/systemd.py
@@ -57,7 +57,7 @@ class SystemdBasicTests(SystemdTest):
self.systemctl('--version')
@testcase(551)
- @skipUnlessPassed('test_system_basic')
+ @skipUnlessPassed('test_systemd_basic')
def test_systemd_list(self):
self.systemctl('list-unit-files')
@@ -153,7 +153,7 @@ class SystemdJournalTests(SystemdTest):
if check_match: break
# put the startup time in the test log
if check_match:
- print "%s" % check_match
+ print("%s" % check_match)
else:
self.skipTest("Error at obtaining the boot time from journalctl")
boot_time_sec = 0
@@ -174,5 +174,5 @@ class SystemdJournalTests(SystemdTest):
self.skipTest("Error when parsing time from boot string")
#Assert the target boot time against systemd's unit start timeout
if boot_time_sec > systemd_TimeoutStartSec:
- print "Target boot time %s exceeds systemd's TimeoutStartSec %s"\
- %(boot_time_sec, systemd_TimeoutStartSec)
+ print("Target boot time %s exceeds systemd's TimeoutStartSec %s"\
+ %(boot_time_sec, systemd_TimeoutStartSec))
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildgalculator.py b/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildgalculator.py
new file mode 100644
index 000000000..dc2fa9ce1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildgalculator.py
@@ -0,0 +1,27 @@
+from oeqa.oetest import oeSDKTest, skipModule
+from oeqa.utils.decorators import *
+from oeqa.utils.targetbuild import SDKBuildProject
+
+def setUpModule():
+ if not (oeSDKTest.hasPackage("gtk+3") or oeSDKTest.hasPackage("libgtk-3.0")):
+ skipModule("Image doesn't have gtk+3 in manifest")
+
+class GalculatorTest(oeSDKTest):
+ def test_galculator(self):
+ try:
+ project = SDKBuildProject(oeSDKTest.tc.sdktestdir + "/galculator/",
+ oeSDKTest.tc.sdkenv, oeSDKTest.tc.d,
+ "http://galculator.mnim.org/downloads/galculator-2.1.4.tar.bz2")
+
+ project.download_archive()
+
+ # regenerate configure to get support for --with-libtool-sysroot
+ legacy_preconf=("autoreconf -i -f -I ${OECORE_TARGET_SYSROOT}/usr/share/aclocal -I m4;")
+
+ self.assertEqual(project.run_configure(extra_cmds=legacy_preconf),
+ 0, msg="Running configure failed")
+
+ self.assertEqual(project.run_make(), 0,
+ msg="Running make failed")
+ finally:
+ project.clean()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildiptables.py b/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildiptables.py
index 062e5316e..f0cb8a428 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildiptables.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildiptables.py
@@ -8,7 +8,7 @@ class BuildIptablesTest(oeSDKTest):
@classmethod
def setUpClass(self):
self.project = SDKBuildProject(oeSDKTest.tc.sdktestdir + "/iptables/", oeSDKTest.tc.sdkenv, oeSDKTest.tc.d,
- "http://netfilter.org/projects/iptables/files/iptables-1.4.13.tar.bz2")
+ "http://downloads.yoctoproject.org/mirror/sources/iptables-1.4.13.tar.bz2")
self.project.download_archive()
def test_iptables(self):
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildsudoku.py b/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildsudoku.py
deleted file mode 100644
index dea77c659..000000000
--- a/import-layers/yocto-poky/meta/lib/oeqa/sdk/buildsudoku.py
+++ /dev/null
@@ -1,26 +0,0 @@
-from oeqa.oetest import oeSDKTest, skipModule
-from oeqa.utils.decorators import *
-from oeqa.utils.targetbuild import SDKBuildProject
-
-def setUpModule():
- if not oeSDKTest.hasPackage("gtk\+"):
- skipModule("Image doesn't have gtk+ in manifest")
-
-class SudokuTest(oeSDKTest):
-
- @classmethod
- def setUpClass(self):
- self.project = SDKBuildProject(oeSDKTest.tc.sdktestdir + "/sudoku/", oeSDKTest.tc.sdkenv, oeSDKTest.tc.d,
- "http://downloads.sourceforge.net/project/sudoku-savant/sudoku-savant/sudoku-savant-1.3/sudoku-savant-1.3.tar.bz2")
- self.project.download_archive()
-
- def test_sudoku(self):
- self.assertEqual(self.project.run_configure(), 0,
- msg="Running configure failed")
-
- self.assertEqual(self.project.run_make(), 0,
- msg="Running make failed")
-
- @classmethod
- def tearDownClass(self):
- self.project.clean()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/devtool.py b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/devtool.py
index c5bb3102a..65f41f687 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/devtool.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/devtool.py
@@ -1,32 +1,108 @@
import shutil
-
+import subprocess
+import urllib.request
from oeqa.oetest import oeSDKExtTest
from oeqa.utils.decorators import *
class DevtoolTest(oeSDKExtTest):
-
@classmethod
def setUpClass(self):
self.myapp_src = os.path.join(self.tc.sdkextfilesdir, "myapp")
self.myapp_dst = os.path.join(self.tc.sdktestdir, "myapp")
shutil.copytree(self.myapp_src, self.myapp_dst)
+ self.myapp_cmake_src = os.path.join(self.tc.sdkextfilesdir, "myapp_cmake")
+ self.myapp_cmake_dst = os.path.join(self.tc.sdktestdir, "myapp_cmake")
+ shutil.copytree(self.myapp_cmake_src, self.myapp_cmake_dst)
+
+ def _test_devtool_build(self, directory):
+ self._run('devtool add myapp %s' % directory)
+ try:
+ self._run('devtool build myapp')
+ except Exception as e:
+ print(e.output)
+ self._run('devtool reset myapp')
+ raise e
+ self._run('devtool reset myapp')
+
+ def _test_devtool_build_package(self, directory):
+ self._run('devtool add myapp %s' % directory)
+ try:
+ self._run('devtool package myapp')
+ except Exception as e:
+ print(e.output)
+ self._run('devtool reset myapp')
+ raise e
+ self._run('devtool reset myapp')
+
def test_devtool_location(self):
output = self._run('which devtool')
self.assertEqual(output.startswith(self.tc.sdktestdir), True, \
msg="Seems that devtool isn't the eSDK one: %s" % output)
-
+
@skipUnlessPassed('test_devtool_location')
def test_devtool_add_reset(self):
self._run('devtool add myapp %s' % self.myapp_dst)
self._run('devtool reset myapp')
+
+ @testcase(1473)
+ @skipUnlessPassed('test_devtool_location')
+ def test_devtool_build_make(self):
+ self._test_devtool_build(self.myapp_dst)
+
+ @testcase(1474)
+ @skipUnlessPassed('test_devtool_location')
+ def test_devtool_build_esdk_package(self):
+ self._test_devtool_build_package(self.myapp_dst)
+ @testcase(1479)
@skipUnlessPassed('test_devtool_location')
- def test_devtool_build(self):
- self._run('devtool add myapp %s' % self.myapp_dst)
- self._run('devtool build myapp')
- self._run('devtool reset myapp')
+ def test_devtool_build_cmake(self):
+ self._test_devtool_build(self.myapp_cmake_dst)
+
+ @testcase(1482)
+ @skipUnlessPassed('test_devtool_location')
+ def test_extend_autotools_recipe_creation(self):
+ req = 'https://github.com/rdfa/librdfa'
+ recipe = "bbexample"
+ self._run('devtool add %s %s' % (recipe, req) )
+ try:
+ self._run('devtool build %s' % recipe)
+ except Exception as e:
+ print(e.output)
+ self._run('devtool reset %s' % recipe)
+ raise e
+ self._run('devtool reset %s' % recipe)
+
+ @testcase(1484)
+ @skipUnlessPassed('test_devtool_location')
+ def test_devtool_kernelmodule(self):
+ docfile = 'https://github.com/umlaeute/v4l2loopback.git'
+ recipe = 'v4l2loopback-driver'
+ self._run('devtool add %s %s' % (recipe, docfile) )
+ try:
+ self._run('devtool build %s' % recipe)
+ except Exception as e:
+ print(e.output)
+ self._run('devtool reset %s' % recipe)
+ raise e
+ self._run('devtool reset %s' % recipe)
+
+ @testcase(1478)
+ @skipUnlessPassed('test_devtool_location')
+ def test_recipes_for_nodejs(self):
+ package_nodejs = "npm://registry.npmjs.org;name=winston;version=2.2.0"
+ self._run('devtool add %s ' % package_nodejs)
+ try:
+ self._run('devtool build %s ' % package_nodejs)
+ except Exception as e:
+ print(e.output)
+ self._run('devtool reset %s' % package_nodejs)
+ raise e
+ self._run('devtool reset %s '% package_nodejs)
+
@classmethod
def tearDownClass(self):
shutil.rmtree(self.myapp_dst)
+ shutil.rmtree(self.myapp_cmake_dst)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt
new file mode 100644
index 000000000..19d773dd6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt
@@ -0,0 +1,11 @@
+cmake_minimum_required (VERSION 2.6)
+project (myapp)
+# The version number.
+set (myapp_VERSION_MAJOR 1)
+set (myapp_VERSION_MINOR 0)
+
+# add the executable
+add_executable (myapp myapp.c)
+
+install(TARGETS myapp
+ RUNTIME DESTINATION bin)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c
new file mode 100644
index 000000000..f0b63f03f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+int
+main(int argc, char *argv[])
+{
+ printf("Hello world\n");
+
+ return 0;
+}
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/sdk_update.py b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/sdk_update.py
index 7a2a6fe7c..2ade839c0 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/sdkext/sdk_update.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/sdkext/sdk_update.py
@@ -30,9 +30,6 @@ class SdkUpdateTest(oeSDKExtTest):
def test_sdk_update_http(self):
output = self._run("devtool sdk-update \"%s\"" % self.http_url)
- def test_sdk_update_local(self):
- output = self._run("devtool sdk-update \"%s\"" % self.publish_dir)
-
@classmethod
def tearDownClass(self):
self.http_service.stop()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/_toaster.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/_toaster.py
index c424659fd..15ea9df9e 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/_toaster.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/_toaster.py
@@ -2,7 +2,7 @@ import unittest
import os
import sys
import shlex, subprocess
-import urllib, commands, time, getpass, re, json, shlex
+import urllib.request, urllib.parse, urllib.error, subprocess, time, getpass, re, json, shlex
import oeqa.utils.ftools as ftools
from oeqa.selftest.base import oeSelfTest
@@ -290,7 +290,7 @@ class Toaster_DB_Tests(ToasterSetup):
layers = Layer.objects.values('id', 'layer_index_url')
cnt_err = []
for layer in layers:
- resp = urllib.urlopen(layer['layer_index_url'])
+ resp = urllib.request.urlopen(layer['layer_index_url'])
if (resp.getcode() != 200):
cnt_err.append(layer['id'])
self.assertEqual(len(cnt_err), 0, msg = 'Errors for layer id: %s' % cnt_err)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/base.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/base.py
index e10455edc..26c93f905 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/base.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/base.py
@@ -28,17 +28,47 @@ class oeSelfTest(unittest.TestCase):
def __init__(self, methodName="runTest"):
self.builddir = os.environ.get("BUILDDIR")
self.localconf_path = os.path.join(self.builddir, "conf/local.conf")
+ self.localconf_backup = os.path.join(self.builddir, "conf/local.bk")
self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc")
self.local_bblayers_path = os.path.join(self.builddir, "conf/bblayers.conf")
+ self.local_bblayers_backup = os.path.join(self.builddir,
+ "conf/bblayers.bk")
self.testinc_bblayers_path = os.path.join(self.builddir, "conf/bblayers.inc")
self.machineinc_path = os.path.join(self.builddir, "conf/machine.inc")
self.testlayer_path = oeSelfTest.testlayer_path
self._extra_tear_down_commands = []
- self._track_for_cleanup = [self.testinc_path, self.testinc_bblayers_path, self.machineinc_path]
+ self._track_for_cleanup = [
+ self.testinc_path, self.testinc_bblayers_path,
+ self.machineinc_path, self.localconf_backup,
+ self.local_bblayers_backup]
super(oeSelfTest, self).__init__(methodName)
def setUp(self):
os.chdir(self.builddir)
+ # Check if local.conf or bblayers.conf files backup exists
+ # from a previous failed test and restore them
+ if os.path.isfile(self.localconf_backup) or os.path.isfile(
+ self.local_bblayers_backup):
+ self.log.debug("Found a local.conf and/or bblayers.conf backup \
+from a previously aborted test. Restoring these files now, but tests should \
+be re-executed from a clean environment to ensure accurate results.")
+ try:
+ shutil.copyfile(self.localconf_backup, self.localconf_path)
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
+ try:
+ shutil.copyfile(self.local_bblayers_backup,
+ self.local_bblayers_path)
+ except OSError as e:
+ if e.errno != errno.ENOENT:
+ raise
+ else:
+ # backup local.conf and bblayers.conf
+ shutil.copyfile(self.localconf_path, self.localconf_backup)
+ shutil.copyfile(self.local_bblayers_path,
+ self.local_bblayers_backup)
+ self.log.debug("Creating local.conf and bblayers.conf backups.")
# we don't know what the previous test left around in config or inc files
# if it failed so we need a fresh start
try:
@@ -67,7 +97,7 @@ class oeSelfTest(unittest.TestCase):
machine = custommachine
machine_conf = 'MACHINE ??= "%s"\n' % machine
self.set_machine_config(machine_conf)
- print 'MACHINE: %s' % machine
+ print('MACHINE: %s' % machine)
# tests might need their own setup
# but if they overwrite this one they have to call
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/bbtests.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/bbtests.py
index 26728a4b4..baae1e0e5 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/bbtests.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/bbtests.py
@@ -29,7 +29,7 @@ class BitbakeTests(oeSelfTest):
def test_event_handler(self):
self.write_config("INHERIT += \"test_events\"")
result = bitbake('m4-native')
- find_build_started = re.search("NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Preparing RunQueue", result.output)
+ find_build_started = re.search("NOTE: Test for bb\.event\.BuildStarted(\n.*)*NOTE: Executing RunQueue Tasks", result.output)
find_build_completed = re.search("Tasks Summary:.*(\n.*)*NOTE: Test for bb\.event\.BuildCompleted", result.output)
self.assertTrue(find_build_started, msg = "Match failed in:\n%s" % result.output)
self.assertTrue(find_build_completed, msg = "Match failed in:\n%s" % result.output)
@@ -64,12 +64,15 @@ class BitbakeTests(oeSelfTest):
@testcase(108)
def test_invalid_patch(self):
+ # This patch already exists in SRC_URI so adding it again will cause the
+ # patch to fail.
self.write_recipeinc('man', 'SRC_URI += "file://man-1.5h1-make.patch"')
+ self.write_config("INHERIT_remove = \"report-error\"")
result = bitbake('man -c patch', ignore_status=True)
self.delete_recipeinc('man')
bitbake('-cclean man')
line = self.getline(result, "Function failed: patch_do_patch")
- self.assertTrue(line and line.startswith("ERROR:"), msg = "Though no man-1.5h1-make.patch file exists, bitbake didn't output any err. message. bitbake output: %s" % result.output)
+ self.assertTrue(line and line.startswith("ERROR:"), msg = "Repeated patch application didn't fail. bitbake output: %s" % result.output)
@testcase(1354)
def test_force_task_1(self):
@@ -131,6 +134,7 @@ class BitbakeTests(oeSelfTest):
self.write_recipeinc('man', data)
self.write_config("""DL_DIR = \"${TOPDIR}/download-selftest\"
SSTATE_DIR = \"${TOPDIR}/download-selftest\"
+INHERIT_remove = \"report-error\"
""")
self.track_for_cleanup(os.path.join(self.builddir, "download-selftest"))
@@ -141,7 +145,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
self.assertEqual(result.status, 1, msg="Command succeded when it should have failed. bitbake output: %s" % result.output)
self.assertTrue('Fetcher failure: Unable to find file file://invalid anywhere. The paths that were searched were:' in result.output, msg = "\"invalid\" file \
doesn't exist, yet no error message encountered. bitbake output: %s" % result.output)
- line = self.getline(result, 'Function failed: Fetcher failure for URL: \'file://invalid\'. Unable to fetch URL from any source.')
+ line = self.getline(result, 'Fetcher failure for URL: \'file://invalid\'. Unable to fetch URL from any source.')
self.assertTrue(line and line.startswith("ERROR:"), msg = "\"invalid\" file \
doesn't exist, yet fetcher didn't report any error. bitbake output: %s" % result.output)
@@ -212,6 +216,7 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
def test_continue(self):
self.write_config("""DL_DIR = \"${TOPDIR}/download-selftest\"
SSTATE_DIR = \"${TOPDIR}/download-selftest\"
+INHERIT_remove = \"report-error\"
""")
self.track_for_cleanup(os.path.join(self.builddir, "download-selftest"))
self.write_recipeinc('man',"\ndo_fail_task () {\nexit 1 \n}\n\naddtask do_fail_task before do_fetch\n" )
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/buildoptions.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/buildoptions.py
index 35d5dfd29..9487898b0 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/buildoptions.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/buildoptions.py
@@ -30,22 +30,6 @@ class ImageOptionsTests(oeSelfTest):
incremental_removed = re.search("NOTE: load old install solution for incremental install\nNOTE: creating new install solution for incremental install(\n.*)*NOTE: incremental removed:.*openssh-sshd-.*", log_data_removed)
self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
- @testcase(925)
- def test_rm_old_image(self):
- bitbake("core-image-minimal")
- deploydir = get_bb_var("DEPLOY_DIR_IMAGE", target="core-image-minimal")
- imagename = get_bb_var("IMAGE_LINK_NAME", target="core-image-minimal")
- deploydir_files = os.listdir(deploydir)
- track_original_files = []
- for image_file in deploydir_files:
- if imagename in image_file and os.path.islink(os.path.join(deploydir, image_file)):
- track_original_files.append(os.path.realpath(os.path.join(deploydir, image_file)))
- self.write_config("RM_OLD_IMAGE = \"1\"")
- bitbake("-C rootfs core-image-minimal")
- deploydir_files = os.listdir(deploydir)
- remaining_not_expected = [path for path in track_original_files if os.path.basename(path) in deploydir_files]
- self.assertFalse(remaining_not_expected, msg="\nThe following image files were not removed: %s" % ', '.join(map(str, remaining_not_expected)))
-
@testcase(286)
def test_ccache_tool(self):
bitbake("ccache-native")
@@ -89,8 +73,9 @@ class SanityOptionsTest(oeSelfTest):
def test_options_warnqa_errorqa_switch(self):
bitbake("xcursor-transparent-theme -ccleansstate")
+ self.write_config("INHERIT_remove = \"report-error\"")
if "packages-list" not in get_bb_var("ERROR_QA"):
- self.write_config("ERROR_QA_append = \" packages-list\"")
+ self.append_config("ERROR_QA_append = \" packages-list\"")
self.write_recipeinc('xcursor-transparent-theme', 'PACKAGES += \"${PN}-dbg\"')
res = bitbake("xcursor-transparent-theme", ignore_status=True)
@@ -199,78 +184,6 @@ class BuildhistoryTests(BuildhistoryBase):
self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True)
self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error)
- @testcase(1386)
- def test_buildhistory_does_not_change_signatures(self):
- """
- Summary: Ensure that buildhistory does not change signatures
- Expected: Only 'do_rootfs' task should be rerun
- Product: oe-core
- Author: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
- AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
- """
-
- tmpdir1_name = 'tmpsig1'
- tmpdir2_name = 'tmpsig2'
- builddir = os.environ.get('BUILDDIR')
- tmpdir1 = os.path.join(builddir, tmpdir1_name)
- tmpdir2 = os.path.join(builddir, tmpdir2_name)
-
- self.track_for_cleanup(tmpdir1)
- self.track_for_cleanup(tmpdir2)
-
- features = 'TMPDIR = "%s"\n' % tmpdir1
- self.write_config(features)
- bitbake('core-image-minimal -S none -c rootfs')
-
- features = 'TMPDIR = "%s"\n' % tmpdir2
- features += 'INHERIT += "buildhistory"\n'
- self.write_config(features)
- bitbake('core-image-minimal -S none -c rootfs')
-
- def get_files(d):
- f = []
- for root, dirs, files in os.walk(d):
- for name in files:
- f.append(os.path.join(root, name))
- return f
-
- files1 = get_files(tmpdir1 + '/stamps')
- files2 = get_files(tmpdir2 + '/stamps')
- files2 = [x.replace(tmpdir2_name, tmpdir1_name) for x in files2]
-
- f1 = set(files1)
- f2 = set(files2)
- sigdiff = f1 - f2
-
- self.assertEqual(len(sigdiff), 1, 'Expected 1 signature differences. Out: %s' % list(sigdiff))
-
- unexpected_diff = []
-
- # No new signatures should appear apart from do_rootfs
- found_do_rootfs_flag = False
-
- for sig in sigdiff:
- if 'do_rootfs' in sig:
- found_do_rootfs_flag = True
- else:
- unexpected_diff.append(sig)
-
- self.assertTrue(found_do_rootfs_flag, 'Task do_rootfs did not rerun.')
- self.assertFalse(unexpected_diff, 'Found unexpected signature differences. Out: %s' % unexpected_diff)
-
-
-class BuildImagesTest(oeSelfTest):
- @testcase(563)
- def test_directfb(self):
- """
- This method is used to test the build of directfb image for arm arch.
- In essence we build a coreimagedirectfb and test the exitcode of bitbake that in case of success is 0.
- """
- self.add_command_to_tearDown('cleanup-workdir')
- self.write_config("DISTRO_FEATURES_remove = \"x11\"\nDISTRO_FEATURES_append = \" directfb\"\nMACHINE ??= \"qemuarm\"")
- res = bitbake("core-image-directfb", ignore_status=True)
- self.assertEqual(res.status, 0, "\ncoreimagedirectfb failed to build. Please check logs for further details.\nbitbake output %s" % res.output)
-
class ArchiverTest(oeSelfTest):
@testcase(926)
def test_arch_work_dir_and_export_source(self):
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/devtool.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/devtool.py
index 132a73d0e..e992dcf77 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/devtool.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/devtool.py
@@ -5,10 +5,11 @@ import re
import shutil
import tempfile
import glob
+import fnmatch
import oeqa.utils.ftools as ftools
from oeqa.selftest.base import oeSelfTest
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer, runqemu
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer, runqemu, get_test_layer
from oeqa.utils.decorators import testcase
class DevtoolBase(oeSelfTest):
@@ -50,7 +51,7 @@ class DevtoolBase(oeSelfTest):
missingvars = {}
- for var, value in checkvars.iteritems():
+ for var, value in checkvars.items():
if value is not None:
missingvars[var] = value
self.assertEqual(missingvars, {}, 'Some expected variables not found in recipe: %s' % checkvars)
@@ -207,12 +208,14 @@ class DevtoolTests(DevtoolBase):
tempdir = tempfile.mkdtemp(prefix='devtoolqa')
self.track_for_cleanup(tempdir)
pn = 'dbus-wait'
+ srcrev = '6cc6077a36fe2648a5f993fe7c16c9632f946517'
# We choose an https:// git URL here to check rewriting the URL works
url = 'https://git.yoctoproject.org/git/dbus-wait'
# Force fetching to "noname" subdir so we verify we're picking up the name from autoconf
# instead of the directory name
result = runCmd('git clone %s noname' % url, cwd=tempdir)
srcdir = os.path.join(tempdir, 'noname')
+ result = runCmd('git reset --hard %s' % srcrev, cwd=srcdir)
self.assertTrue(os.path.isfile(os.path.join(srcdir, 'configure.ac')), 'Unable to find configure script in source directory')
# Test devtool add
self.track_for_cleanup(self.workspacedir)
@@ -235,7 +238,7 @@ class DevtoolTests(DevtoolBase):
checkvars['S'] = '${WORKDIR}/git'
checkvars['PV'] = '0.1+git${SRCPV}'
checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/dbus-wait;protocol=https'
- checkvars['SRCREV'] = '${AUTOREV}'
+ checkvars['SRCREV'] = srcrev
checkvars['DEPENDS'] = set(['dbus'])
self._test_recipe_contents(recipefile, checkvars, [])
@@ -345,7 +348,7 @@ class DevtoolTests(DevtoolBase):
self.track_for_cleanup(self.workspacedir)
self.add_command_to_tearDown('bitbake -c cleansstate %s' % testrecipe)
self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
- result = runCmd('devtool add %s %s -f %s' % (testrecipe, srcdir, url))
+ result = runCmd('devtool add %s %s -a -f %s' % (testrecipe, srcdir, url))
self.assertTrue(os.path.exists(os.path.join(self.workspacedir, 'conf', 'layer.conf')), 'Workspace directory not created: %s' % result.output)
self.assertTrue(os.path.isfile(os.path.join(srcdir, 'configure.ac')), 'Unable to find configure.ac in source directory')
# Test devtool status
@@ -357,7 +360,7 @@ class DevtoolTests(DevtoolBase):
self.assertIn('_git.bb', recipefile, 'Recipe file incorrectly named')
checkvars = {}
checkvars['S'] = '${WORKDIR}/git'
- checkvars['PV'] = '1.11+git${SRCPV}'
+ checkvars['PV'] = '1.12+git${SRCPV}'
checkvars['SRC_URI'] = url
checkvars['SRCREV'] = '${AUTOREV}'
self._test_recipe_contents(recipefile, checkvars, [])
@@ -465,12 +468,11 @@ class DevtoolTests(DevtoolBase):
testrecipes = 'perf kernel-devsrc package-index core-image-minimal meta-toolchain packagegroup-core-sdk meta-ide-support'.split()
# Find actual name of gcc-source since it now includes the version - crude, but good enough for this purpose
result = runCmd('bitbake-layers show-recipes gcc-source*')
- reading = False
for line in result.output.splitlines():
- if line.startswith('=='):
- reading = True
- elif reading and not line.startswith(' '):
- testrecipes.append(line.split(':')[0])
+ # just match those lines that contain a real target
+ m = re.match('(?P<recipe>^[a-zA-Z0-9.-]+)(?P<colon>:$)', line)
+ if m:
+ testrecipes.append(m.group('recipe'))
for testrecipe in testrecipes:
# Check it's a valid recipe
bitbake('%s -e' % testrecipe)
@@ -816,28 +818,28 @@ class DevtoolTests(DevtoolBase):
# Check bbappend contents
result = runCmd('git rev-parse HEAD', cwd=tempsrcdir)
- expectedlines = ['SRCREV = "%s"\n' % result.output,
- '\n',
- 'SRC_URI = "%s"\n' % git_uri,
- '\n']
+ expectedlines = set(['SRCREV = "%s"\n' % result.output,
+ '\n',
+ 'SRC_URI = "%s"\n' % git_uri,
+ '\n'])
with open(bbappendfile, 'r') as f:
- self.assertEqual(expectedlines, f.readlines())
+ self.assertEqual(expectedlines, set(f.readlines()))
# Check we can run it again and bbappend isn't modified
result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir))
with open(bbappendfile, 'r') as f:
- self.assertEqual(expectedlines, f.readlines())
+ self.assertEqual(expectedlines, set(f.readlines()))
# Drop new commit and check SRCREV changes
result = runCmd('git reset HEAD^', cwd=tempsrcdir)
result = runCmd('devtool update-recipe -m srcrev %s -a %s' % (testrecipe, templayerdir))
self.assertFalse(os.path.exists(os.path.join(appenddir, testrecipe)), 'Patch directory should not be created')
result = runCmd('git rev-parse HEAD', cwd=tempsrcdir)
- expectedlines = ['SRCREV = "%s"\n' % result.output,
- '\n',
- 'SRC_URI = "%s"\n' % git_uri,
- '\n']
+ expectedlines = set(['SRCREV = "%s"\n' % result.output,
+ '\n',
+ 'SRC_URI = "%s"\n' % git_uri,
+ '\n'])
with open(bbappendfile, 'r') as f:
- self.assertEqual(expectedlines, f.readlines())
+ self.assertEqual(expectedlines, set(f.readlines()))
# Put commit back and check we can run it if layer isn't in bblayers.conf
os.remove(bbappendfile)
result = runCmd('git commit -a -m "Change the Makefile"', cwd=tempsrcdir)
@@ -846,12 +848,12 @@ class DevtoolTests(DevtoolBase):
self.assertIn('WARNING: Specified layer is not currently enabled in bblayers.conf', result.output)
self.assertFalse(os.path.exists(os.path.join(appenddir, testrecipe)), 'Patch directory should not be created')
result = runCmd('git rev-parse HEAD', cwd=tempsrcdir)
- expectedlines = ['SRCREV = "%s"\n' % result.output,
- '\n',
- 'SRC_URI = "%s"\n' % git_uri,
- '\n']
+ expectedlines = set(['SRCREV = "%s"\n' % result.output,
+ '\n',
+ 'SRC_URI = "%s"\n' % git_uri,
+ '\n'])
with open(bbappendfile, 'r') as f:
- self.assertEqual(expectedlines, f.readlines())
+ self.assertEqual(expectedlines, set(f.readlines()))
# Deleting isn't expected to work under these circumstances
@testcase(1370)
@@ -1188,3 +1190,159 @@ class DevtoolTests(DevtoolBase):
s = "Microsoft Made No Profit From Anyone's Zunes Yo"
result = runCmd("devtool --quiet selftest-reverse \"%s\"" % s)
self.assertEqual(result.output, s[::-1])
+
+ def _setup_test_devtool_finish_upgrade(self):
+ # Check preconditions
+ self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory')
+ self.track_for_cleanup(self.workspacedir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ # Use a "real" recipe from meta-selftest
+ recipe = 'devtool-upgrade-test1'
+ oldversion = '1.5.3'
+ newversion = '1.6.0'
+ oldrecipefile = get_bb_var('FILE', recipe)
+ recipedir = os.path.dirname(oldrecipefile)
+ result = runCmd('git status --porcelain .', cwd=recipedir)
+ if result.output.strip():
+ self.fail('Recipe directory for %s contains uncommitted changes' % recipe)
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ # Check that recipe is not already under devtool control
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output)
+ # Do the upgrade
+ result = runCmd('devtool upgrade %s %s -V %s' % (recipe, tempdir, newversion))
+ # Check devtool status and make sure recipe is present
+ result = runCmd('devtool status')
+ self.assertIn(recipe, result.output)
+ self.assertIn(tempdir, result.output)
+ # Make a change to the source
+ result = runCmd('sed -i \'/^#include "pv.h"/a \\/* Here is a new comment *\\/\' src/pv/number.c', cwd=tempdir)
+ result = runCmd('git status --porcelain', cwd=tempdir)
+ self.assertIn('M src/pv/number.c', result.output)
+ result = runCmd('git commit src/pv/number.c -m "Add a comment to the code"', cwd=tempdir)
+ # Check if patch is there
+ recipedir = os.path.dirname(oldrecipefile)
+ olddir = os.path.join(recipedir, recipe + '-' + oldversion)
+ patchfn = '0001-Add-a-note-line-to-the-quick-reference.patch'
+ self.assertTrue(os.path.exists(os.path.join(olddir, patchfn)), 'Original patch file does not exist')
+ return recipe, oldrecipefile, recipedir, olddir, newversion, patchfn
+
+ def test_devtool_finish_upgrade_origlayer(self):
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
+ self.assertIn('/meta-selftest/', recipedir)
+ # Try finish to the original layer
+ self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir))
+ result = runCmd('devtool finish %s meta-selftest' % recipe)
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t')
+ self.assertFalse(os.path.exists(os.path.join(self.workspacedir, 'recipes', recipe)), 'Recipe directory should not exist after finish')
+ self.assertFalse(os.path.exists(oldrecipefile), 'Old recipe file should have been deleted but wasn\'t')
+ self.assertFalse(os.path.exists(os.path.join(olddir, patchfn)), 'Old patch file should have been deleted but wasn\'t')
+ newrecipefile = os.path.join(recipedir, '%s_%s.bb' % (recipe, newversion))
+ newdir = os.path.join(recipedir, recipe + '-' + newversion)
+ self.assertTrue(os.path.exists(newrecipefile), 'New recipe file should have been copied into existing layer but wasn\'t')
+ self.assertTrue(os.path.exists(os.path.join(newdir, patchfn)), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertTrue(os.path.exists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch')), 'New patch file should have been created but wasn\'t')
+
+ def test_devtool_finish_upgrade_otherlayer(self):
+ recipe, oldrecipefile, recipedir, olddir, newversion, patchfn = self._setup_test_devtool_finish_upgrade()
+ # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
+ self.assertIn('/meta-selftest/', recipedir)
+ # Try finish to a different layer - should create a bbappend
+ # This cleanup isn't strictly necessary but do it anyway just in case it goes wrong and writes to here
+ self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir))
+ oe_core_dir = os.path.join(get_bb_var('COREBASE'), 'meta')
+ newrecipedir = os.path.join(oe_core_dir, 'recipes-test', 'devtool')
+ newrecipefile = os.path.join(newrecipedir, '%s_%s.bb' % (recipe, newversion))
+ self.track_for_cleanup(newrecipedir)
+ result = runCmd('devtool finish %s oe-core' % recipe)
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t')
+ self.assertFalse(os.path.exists(os.path.join(self.workspacedir, 'recipes', recipe)), 'Recipe directory should not exist after finish')
+ self.assertTrue(os.path.exists(oldrecipefile), 'Old recipe file should not have been deleted')
+ self.assertTrue(os.path.exists(os.path.join(olddir, patchfn)), 'Old patch file should not have been deleted')
+ newdir = os.path.join(newrecipedir, recipe + '-' + newversion)
+ self.assertTrue(os.path.exists(newrecipefile), 'New recipe file should have been copied into existing layer but wasn\'t')
+ self.assertTrue(os.path.exists(os.path.join(newdir, patchfn)), 'Patch file should have been copied into new directory but wasn\'t')
+ self.assertTrue(os.path.exists(os.path.join(newdir, '0002-Add-a-comment-to-the-code.patch')), 'New patch file should have been created but wasn\'t')
+
+ def _setup_test_devtool_finish_modify(self):
+ # Check preconditions
+ self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory')
+ # Try modifying a recipe
+ self.track_for_cleanup(self.workspacedir)
+ recipe = 'mdadm'
+ oldrecipefile = get_bb_var('FILE', recipe)
+ recipedir = os.path.dirname(oldrecipefile)
+ result = runCmd('git status --porcelain .', cwd=recipedir)
+ if result.output.strip():
+ self.fail('Recipe directory for %s contains uncommitted changes' % recipe)
+ tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+ self.track_for_cleanup(tempdir)
+ self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+ result = runCmd('devtool modify %s %s' % (recipe, tempdir))
+ self.assertTrue(os.path.exists(os.path.join(tempdir, 'Makefile')), 'Extracted source could not be found')
+ # Test devtool status
+ result = runCmd('devtool status')
+ self.assertIn(recipe, result.output)
+ self.assertIn(tempdir, result.output)
+ # Make a change to the source
+ result = runCmd('sed -i \'/^#include "mdadm.h"/a \\/* Here is a new comment *\\/\' maps.c', cwd=tempdir)
+ result = runCmd('git status --porcelain', cwd=tempdir)
+ self.assertIn('M maps.c', result.output)
+ result = runCmd('git commit maps.c -m "Add a comment to the code"', cwd=tempdir)
+ for entry in os.listdir(recipedir):
+ filesdir = os.path.join(recipedir, entry)
+ if os.path.isdir(filesdir):
+ break
+ else:
+ self.fail('Unable to find recipe files directory for %s' % recipe)
+ return recipe, oldrecipefile, recipedir, filesdir
+
+ def test_devtool_finish_modify_origlayer(self):
+ recipe, oldrecipefile, recipedir, filesdir = self._setup_test_devtool_finish_modify()
+ # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
+ self.assertIn('/meta/', recipedir)
+ # Try finish to the original layer
+ self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir))
+ result = runCmd('devtool finish %s meta' % recipe)
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t')
+ self.assertFalse(os.path.exists(os.path.join(self.workspacedir, 'recipes', recipe)), 'Recipe directory should not exist after finish')
+ expected_status = [(' M', '.*/%s$' % os.path.basename(oldrecipefile)),
+ ('??', '.*/.*-Add-a-comment-to-the-code.patch$')]
+ self._check_repo_status(recipedir, expected_status)
+
+ def test_devtool_finish_modify_otherlayer(self):
+ recipe, oldrecipefile, recipedir, filesdir = self._setup_test_devtool_finish_modify()
+ # Ensure the recipe is where we think it should be (so that cleanup doesn't trash things)
+ self.assertIn('/meta/', recipedir)
+ relpth = os.path.relpath(recipedir, os.path.join(get_bb_var('COREBASE'), 'meta'))
+ appenddir = os.path.join(get_test_layer(), relpth)
+ self.track_for_cleanup(appenddir)
+ # Try finish to the original layer
+ self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir))
+ result = runCmd('devtool finish %s meta-selftest' % recipe)
+ result = runCmd('devtool status')
+ self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t')
+ self.assertFalse(os.path.exists(os.path.join(self.workspacedir, 'recipes', recipe)), 'Recipe directory should not exist after finish')
+ result = runCmd('git status --porcelain .', cwd=recipedir)
+ if result.output.strip():
+ self.fail('Recipe directory for %s contains the following unexpected changes after finish:\n%s' % (recipe, result.output.strip()))
+ recipefn = os.path.splitext(os.path.basename(oldrecipefile))[0]
+ recipefn = recipefn.split('_')[0] + '_%'
+ appendfile = os.path.join(appenddir, recipefn + '.bbappend')
+ self.assertTrue(os.path.exists(appendfile), 'bbappend %s should have been created but wasn\'t' % appendfile)
+ newdir = os.path.join(appenddir, recipe)
+ files = os.listdir(newdir)
+ foundpatch = None
+ for fn in files:
+ if fnmatch.fnmatch(fn, '*-Add-a-comment-to-the-code.patch'):
+ foundpatch = fn
+ if not foundpatch:
+ self.fail('No patch file created next to bbappend')
+ files.remove(foundpatch)
+ if files:
+ self.fail('Unexpected file(s) copied next to bbappend: %s' % ', '.join(files))
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/eSDK.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/eSDK.py
new file mode 100644
index 000000000..9d5c68094
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/eSDK.py
@@ -0,0 +1,103 @@
+import unittest
+import tempfile
+import shutil
+import os
+import glob
+import logging
+import subprocess
+import oeqa.utils.ftools as ftools
+from oeqa.utils.decorators import testcase
+from oeqa.selftest.base import oeSelfTest
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var
+from oeqa.utils.httpserver import HTTPService
+
+class oeSDKExtSelfTest(oeSelfTest):
+ """
+ # Bugzilla Test Plan: 6033
+ # This code is planned to be part of the automation for eSDK containig
+ # Install libraries and headers, image generation binary feeds.
+ """
+
+ @staticmethod
+ def get_esdk_environment(env_eSDK, tmpdir_eSDKQA):
+ # XXX: at this time use the first env need to investigate
+ # what environment load oe-selftest, i586, x86_64
+ pattern = os.path.join(tmpdir_eSDKQA, 'environment-setup-*')
+ return glob.glob(pattern)[0]
+
+ @staticmethod
+ def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, **options):
+ if postconfig:
+ esdk_conf_file = os.path.join(tmpdir_eSDKQA, 'conf', 'local.conf')
+ with open(esdk_conf_file, 'a+') as f:
+ f.write(postconfig)
+ if not options:
+ options = {}
+ if not 'shell' in options:
+ options['shell'] = True
+
+ runCmd("cd %s; . %s; %s" % (tmpdir_eSDKQA, env_eSDK, cmd), **options)
+
+ @staticmethod
+ def generate_eSDK(image):
+ pn_task = '%s -c populate_sdk_ext' % image
+ bitbake(pn_task)
+
+ @staticmethod
+ def get_eSDK_toolchain(image):
+ pn_task = '%s -c populate_sdk_ext' % image
+
+ sdk_deploy = get_bb_var('SDK_DEPLOY', pn_task)
+ toolchain_name = get_bb_var('TOOLCHAINEXT_OUTPUTNAME', pn_task)
+ return os.path.join(sdk_deploy, toolchain_name + '.sh')
+
+
+ @classmethod
+ def setUpClass(cls):
+ # Start to serve sstate dir
+ sstate_dir = os.path.join(os.environ['BUILDDIR'], 'sstate-cache')
+ cls.http_service = HTTPService(sstate_dir)
+ cls.http_service.start()
+
+ http_url = "127.0.0.1:%d" % cls.http_service.port
+
+ image = 'core-image-minimal'
+
+ cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA')
+ oeSDKExtSelfTest.generate_eSDK(image)
+
+ # Install eSDK
+ ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(image)
+ runCmd("%s -y -d \"%s\"" % (ext_sdk_path, cls.tmpdir_eSDKQA))
+
+ cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', cls.tmpdir_eSDKQA)
+
+ # Configure eSDK to use sstate mirror from poky
+ sstate_config="""
+SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
+SSTATE_MIRRORS = "file://.* http://%s/PATH"
+ """ % http_url
+ with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f:
+ f.write(sstate_config)
+
+
+ @classmethod
+ def tearDownClass(cls):
+ shutil.rmtree(cls.tmpdir_eSDKQA)
+ cls.http_service.stop()
+
+ @testcase (1471)
+ def test_install_libraries_headers(self):
+ pn_sstate = 'bc'
+ bitbake(pn_sstate)
+ cmd = "devtool sdk-install %s " % pn_sstate
+ oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
+
+ @testcase(1472)
+ def test_image_generation_binary_feeds(self):
+ image = 'core-image-minimal'
+ cmd = "devtool build-image %s" % image
+ oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/esdk_prepare.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/esdk_prepare.py
deleted file mode 100755
index 1b36a0d68..000000000
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/esdk_prepare.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env python
-
-import shutil, tempfile
-import sys
-import os
-import imp
-import unittest
-try:
- from oeqa.utils.commands import get_bb_var
-except ImportError:
- pass
-
-# module under test
-module_file_name = "ext-sdk-prepare.py"
-module_path = ""
-
-class ExtSdkPrepareTest(unittest.TestCase):
-
- """ unit test for fix for Yocto #9019 """
-
- @classmethod
- def setUpClass(self):
- # copy module under test to temp dir
- self.test_dir = tempfile.mkdtemp()
- module_dest_path = os.path.join(self.test_dir, module_file_name)
- try:
- shutil.copy(module_path, self.test_dir)
- # load module under test
- self.test_mod = imp.load_source("", module_dest_path)
- except:
- print "error: unable to copy or load %s [src: %s, dst: %s]" % \
- (module_file_name, module_path, module_dest_path)
- sys.exit(1)
-
- def test_prepare_unexpected(self):
- # test data
- # note: pathnames have been truncated from the actual bitbake
- # output as they are not important for the test.
- test_data = (
- 'NOTE: Running noexec task 9 of 6539 (ID: 28, quilt/quilt-native_0.64.bb, do_build)\n'
- 'NOTE: Running task 10 of 6539 (ID: 29, quilt/quilt-native_0.64.bb, do_package)\n'
- 'NOTE: Running task 11 of 6539 (ID: 30, quilt/quilt-native_0.64.bb, do_rm_work)\n'
- 'NOTE: Running noexec task 6402 of 6539 (ID: 1, images/core-image-sato.bb, do_patch)\n'
- 'NOTE: Running task 6538 of 6539 (ID: 14, images/core-image-sato.bb, do_rm_work)\n'
- )
- # expected warning output
- expected = [ (' task 10 of 6539 (ID: 29, quilt/quilt-native_0.64.bb, do_package)') ]
- # recipe to test, matching test input data
- recipes = [ "core-image-sato.bb" ]
-
- # run the test
- output = self.test_mod.check_unexpected(test_data, recipes)
- self.assertEqual(output, expected)
-
- @classmethod
- def tearDownClass(self):
- # remove temp dir
- shutil.rmtree(self.test_dir)
-
-if __name__ == '__main__':
- # running from command line - i.e., not under oe-selftest
- # directory containing module under test comes from command line
- if len(sys.argv) == 2 and os.path.isdir(sys.argv[1]):
- module_path = os.path.join(sys.argv[1], module_file_name)
- suite = unittest.TestLoader().loadTestsFromTestCase(ExtSdkPrepareTest)
- unittest.TextTestRunner().run(suite)
- else:
- progname = os.path.basename(sys.argv[0])
- print "%s: missing directory path" % progname
- print "usage: %s /path/to/directory-of(ext-sdk-prepare.py)" % progname
- sys.exit(1)
-else:
- # running under oe-selftest
- # determine module source dir from COREBASE and expected path
- module_path = os.path.join(get_bb_var("COREBASE"), "meta", "files", module_file_name)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/imagefeatures.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/imagefeatures.py
index 8a53899c7..d015c4908 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/imagefeatures.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/imagefeatures.py
@@ -98,3 +98,30 @@ class ImageFeatures(oeSelfTest):
# Build a core-image-weston
bitbake('core-image-weston')
+ def test_bmap(self):
+ """
+ Summary: Check bmap support
+ Expected: 1. core-image-minimal can be build with bmap support
+ 2. core-image-minimal is sparse
+ Product: oe-core
+ Author: Ed Bartosh <ed.bartosh@linux.intel.com>
+ """
+
+ features = 'IMAGE_FSTYPES += " ext4 ext4.bmap"'
+ self.write_config(features)
+
+ image_name = 'core-image-minimal'
+ bitbake(image_name)
+
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+ link_name = get_bb_var('IMAGE_LINK_NAME', image_name)
+ image_path = os.path.join(deploy_dir_image, "%s.ext4" % link_name)
+ bmap_path = "%s.bmap" % image_path
+
+ # check if result image and bmap file are in deploy directory
+ self.assertTrue(os.path.exists(image_path))
+ self.assertTrue(os.path.exists(bmap_path))
+
+ # check if result image is sparse
+ image_stat = os.stat(image_path)
+ self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/liboe.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/liboe.py
new file mode 100644
index 000000000..35131eb24
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/liboe.py
@@ -0,0 +1,93 @@
+from oeqa.selftest.base import oeSelfTest
+from oeqa.utils.commands import get_bb_var, bitbake, runCmd
+import oe.path
+import glob
+import os
+import os.path
+
+class LibOE(oeSelfTest):
+ def test_copy_tree_special(self):
+ """
+ Summary: oe.path.copytree() should copy files with special character
+ Expected: 'test file with spÂŁc!al @nd spaces' should exist in
+ copy destination
+ Product: OE-Core
+ Author: Joshua Lock <joshua.g.lock@intel.com>
+ """
+ tmp_dir = get_bb_var('TMPDIR')
+ testloc = oe.path.join(tmp_dir, 'liboetests')
+ src = oe.path.join(testloc, 'src')
+ dst = oe.path.join(testloc, 'dst')
+ bb.utils.mkdirhier(testloc)
+ bb.utils.mkdirhier(src)
+ testfilename = 'test file with spÂŁc!al @nd spaces'
+
+ # create the test file and copy it
+ open(oe.path.join(src, testfilename), 'w+b').close()
+ oe.path.copytree(src, dst)
+
+ # ensure path exists in dest
+ fileindst = os.path.isfile(oe.path.join(dst, testfilename))
+ self.assertTrue(fileindst, "File with spaces doesn't exist in dst")
+
+ oe.path.remove(testloc)
+
+ def test_copy_tree_xattr(self):
+ """
+ Summary: oe.path.copytree() should preserve xattr on copied files
+ Expected: testxattr file in destination should have user.oetest
+ extended attribute
+ Product: OE-Core
+ Author: Joshua Lock <joshua.g.lock@intel.com>
+ """
+ tmp_dir = get_bb_var('TMPDIR')
+ testloc = oe.path.join(tmp_dir, 'liboetests')
+ src = oe.path.join(testloc, 'src')
+ dst = oe.path.join(testloc, 'dst')
+ bb.utils.mkdirhier(testloc)
+ bb.utils.mkdirhier(src)
+ testfilename = 'testxattr'
+
+ # ensure we have setfattr available
+ bitbake("attr-native")
+ bindir = get_bb_var('STAGING_BINDIR_NATIVE')
+
+ # create a file with xattr and copy it
+ open(oe.path.join(src, testfilename), 'w+b').close()
+ runCmd('%s/setfattr -n user.oetest -v "testing liboe" %s' % (bindir, oe.path.join(src, testfilename)))
+ oe.path.copytree(src, dst)
+
+ # ensure file in dest has user.oetest xattr
+ result = runCmd('%s/getfattr -n user.oetest %s' % (bindir, oe.path.join(dst, testfilename)))
+ self.assertIn('user.oetest="testing liboe"', result.output, 'Extended attribute not sert in dst')
+
+ oe.path.remove(testloc)
+
+ def test_copy_hardlink_tree_count(self):
+ """
+ Summary: oe.path.copyhardlinktree() shouldn't miss out files
+ Expected: src and dst should have the same number of files
+ Product: OE-Core
+ Author: Joshua Lock <joshua.g.lock@intel.com>
+ """
+ tmp_dir = get_bb_var('TMPDIR')
+ testloc = oe.path.join(tmp_dir, 'liboetests')
+ src = oe.path.join(testloc, 'src')
+ dst = oe.path.join(testloc, 'dst')
+ bb.utils.mkdirhier(testloc)
+ bb.utils.mkdirhier(src)
+ testfiles = ['foo', 'bar', '.baz', 'quux']
+
+ def touchfile(tf):
+ open(oe.path.join(src, tf), 'w+b').close()
+
+ for f in testfiles:
+ touchfile(f)
+
+ oe.path.copyhardlinktree(src, dst)
+
+ dstcnt = len(os.listdir(dst))
+ srccnt = len(os.listdir(src))
+ self.assertEquals(dstcnt, len(testfiles), "Number of files in dst (%s) differs from number of files in src(%s)." % (dstcnt, srccnt))
+
+ oe.path.remove(testloc)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/lic-checksum.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/lic-checksum.py
index cac6d8445..2e81373ae 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/lic-checksum.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/lic-checksum.py
@@ -12,20 +12,24 @@ class LicenseTests(oeSelfTest):
# the license qa to fail due to a mismatched md5sum.
@testcase(1197)
def test_nonmatching_checksum(self):
- bitbake_cmd = '-c configure emptytest'
+ bitbake_cmd = '-c populate_lic emptytest'
error_msg = 'emptytest: The new md5 checksum is 8d777f385d3dfec8815d20f7496026dc'
lic_file, lic_path = tempfile.mkstemp()
os.close(lic_file)
self.track_for_cleanup(lic_path)
- self.write_recipeinc('emptytest', 'INHIBIT_DEFAULT_DEPS = "1"')
- self.append_recipeinc('emptytest', 'LIC_FILES_CHKSUM = "file://%s;md5=d41d8cd98f00b204e9800998ecf8427e"' % lic_path)
+ self.write_recipeinc('emptytest', """
+INHIBIT_DEFAULT_DEPS = "1"
+LIC_FILES_CHKSUM = "file://%s;md5=d41d8cd98f00b204e9800998ecf8427e"
+SRC_URI = "file://%s;md5=d41d8cd98f00b204e9800998ecf8427e"
+""" % (lic_path, lic_path))
result = bitbake(bitbake_cmd)
with open(lic_path, "w") as f:
f.write("data")
+ self.write_config("INHERIT_remove = \"report-error\"")
result = bitbake(bitbake_cmd, ignore_status=True)
if error_msg not in result.output:
raise AssertionError(result.output)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/pkgdata.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/pkgdata.py
index 138b03aad..5a63f89ff 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/pkgdata.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/pkgdata.py
@@ -131,15 +131,15 @@ class OePkgdataUtilTests(oeSelfTest):
# Test recipe-space package name
result = runCmd('oe-pkgdata-util list-pkg-files zlib-dev zlib-doc')
files = splitoutput(result.output)
- self.assertIn('zlib-dev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-doc', files.keys(), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-doc', list(files.keys()), "listed pkgs. files: %s" %result.output)
self.assertIn(os.path.join(includedir, 'zlib.h'), files['zlib-dev'])
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['zlib-doc'])
# Test runtime package name
result = runCmd('oe-pkgdata-util list-pkg-files -r libz1 libz-dev')
files = splitoutput(result.output)
- self.assertIn('libz1', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-dev', files.keys(), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz1', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
self.assertGreater(len(files['libz1']), 1)
libspec = os.path.join(base_libdir, 'libz.so.1.*')
found = False
@@ -152,12 +152,12 @@ class OePkgdataUtilTests(oeSelfTest):
# Test recipe
result = runCmd('oe-pkgdata-util list-pkg-files -p zlib')
files = splitoutput(result.output)
- self.assertIn('zlib-dbg', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-doc', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-dev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-staticdev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertNotIn('zlib-locale', files.keys(), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-dbg', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-doc', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-staticdev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertNotIn('zlib-locale', list(files.keys()), "listed pkgs. files: %s" %result.output)
# (ignore ptest, might not be there depending on config)
self.assertIn(os.path.join(includedir, 'zlib.h'), files['zlib-dev'])
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['zlib-doc'])
@@ -165,36 +165,36 @@ class OePkgdataUtilTests(oeSelfTest):
# Test recipe, runtime
result = runCmd('oe-pkgdata-util list-pkg-files -p zlib -r')
files = splitoutput(result.output)
- self.assertIn('libz-dbg', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-doc', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-dev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-staticdev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz1', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertNotIn('libz-locale', files.keys(), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-dbg', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-doc', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-staticdev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz1', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertNotIn('libz-locale', list(files.keys()), "listed pkgs. files: %s" %result.output)
self.assertIn(os.path.join(includedir, 'zlib.h'), files['libz-dev'])
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['libz-doc'])
self.assertIn(os.path.join(libdir, 'libz.a'), files['libz-staticdev'])
# Test recipe, unpackaged
result = runCmd('oe-pkgdata-util list-pkg-files -p zlib -u')
files = splitoutput(result.output)
- self.assertIn('zlib-dbg', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-doc', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-dev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-staticdev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('zlib-locale', files.keys(), "listed pkgs. files: %s" %result.output) # this is the key one
+ self.assertIn('zlib-dbg', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-doc', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-staticdev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('zlib-locale', list(files.keys()), "listed pkgs. files: %s" %result.output) # this is the key one
self.assertIn(os.path.join(includedir, 'zlib.h'), files['zlib-dev'])
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['zlib-doc'])
self.assertIn(os.path.join(libdir, 'libz.a'), files['zlib-staticdev'])
# Test recipe, runtime, unpackaged
result = runCmd('oe-pkgdata-util list-pkg-files -p zlib -r -u')
files = splitoutput(result.output)
- self.assertIn('libz-dbg', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-doc', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-dev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-staticdev', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz1', files.keys(), "listed pkgs. files: %s" %result.output)
- self.assertIn('libz-locale', files.keys(), "listed pkgs. files: %s" %result.output) # this is the key one
+ self.assertIn('libz-dbg', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-doc', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-dev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-staticdev', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz1', list(files.keys()), "listed pkgs. files: %s" %result.output)
+ self.assertIn('libz-locale', list(files.keys()), "listed pkgs. files: %s" %result.output) # this is the key one
self.assertIn(os.path.join(includedir, 'zlib.h'), files['libz-dev'])
self.assertIn(os.path.join(mandir, 'man3/zlib.3'), files['libz-doc'])
self.assertIn(os.path.join(libdir, 'libz.a'), files['libz-staticdev'])
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/recipetool.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/recipetool.py
index e72911b0a..db1f8deeb 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/recipetool.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/recipetool.py
@@ -1,7 +1,7 @@
import os
import logging
import tempfile
-import urlparse
+import urllib.parse
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer
from oeqa.utils.decorators import testcase
@@ -278,7 +278,7 @@ class RecipetoolTests(RecipetoolBase):
'}\n']
_, output = self._try_recipetool_appendfile('selftest-recipetool-appendfile', '/etc/selftest-replaceme-patched', self.testfile, '', expectedlines, ['testfile'])
for line in output.splitlines():
- if line.startswith('WARNING: '):
+ if 'WARNING: ' in line:
self.assertIn('add-file.patch', line, 'Unexpected warning found in output:\n%s' % line)
break
else:
@@ -383,13 +383,13 @@ class RecipetoolTests(RecipetoolBase):
@testcase(1194)
def test_recipetool_create_git(self):
# Ensure we have the right data in shlibs/pkgdata
- bitbake('libpng pango libx11 libxext jpeg libxsettings-client libcheck')
+ bitbake('libpng pango libx11 libxext jpeg libcheck')
# Try adding a recipe
tempsrc = os.path.join(self.tempdir, 'srctree')
os.makedirs(tempsrc)
recipefile = os.path.join(self.tempdir, 'libmatchbox.bb')
srcuri = 'git://git.yoctoproject.org/libmatchbox'
- result = runCmd('recipetool create -o %s %s -x %s' % (recipefile, srcuri, tempsrc))
+ result = runCmd(['recipetool', 'create', '-o', recipefile, srcuri + ";rev=9f7cf8895ae2d39c465c04cc78e918c157420269", '-x', tempsrc])
self.assertTrue(os.path.isfile(recipefile), 'recipetool did not create recipe file; output:\n%s' % result.output)
checkvars = {}
checkvars['LICENSE'] = 'LGPLv2.1'
@@ -397,7 +397,7 @@ class RecipetoolTests(RecipetoolBase):
checkvars['S'] = '${WORKDIR}/git'
checkvars['PV'] = '1.11+git${SRCPV}'
checkvars['SRC_URI'] = srcuri
- checkvars['DEPENDS'] = set(['libcheck', 'libjpeg-turbo', 'libpng', 'libx11', 'libxsettings-client', 'libxext', 'pango'])
+ checkvars['DEPENDS'] = set(['libcheck', 'libjpeg-turbo', 'libpng', 'libx11', 'libxext', 'pango'])
inherits = ['autotools', 'pkgconfig']
self._test_recipe_contents(recipefile, checkvars, inherits)
@@ -442,6 +442,49 @@ class RecipetoolTests(RecipetoolBase):
inherits = ['cmake', 'python-dir', 'gettext', 'pkgconfig']
self._test_recipe_contents(recipefile, checkvars, inherits)
+ def test_recipetool_create_github(self):
+ # Basic test to see if github URL mangling works
+ temprecipe = os.path.join(self.tempdir, 'recipe')
+ os.makedirs(temprecipe)
+ recipefile = os.path.join(temprecipe, 'meson_git.bb')
+ srcuri = 'https://github.com/mesonbuild/meson'
+ result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+ self.assertTrue(os.path.isfile(recipefile))
+ checkvars = {}
+ checkvars['LICENSE'] = set(['Apache-2.0'])
+ checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https'
+ inherits = ['setuptools']
+ self._test_recipe_contents(recipefile, checkvars, inherits)
+
+ def test_recipetool_create_github_tarball(self):
+ # Basic test to ensure github URL mangling doesn't apply to release tarballs
+ temprecipe = os.path.join(self.tempdir, 'recipe')
+ os.makedirs(temprecipe)
+ pv = '0.32.0'
+ recipefile = os.path.join(temprecipe, 'meson_%s.bb' % pv)
+ srcuri = 'https://github.com/mesonbuild/meson/releases/download/%s/meson-%s.tar.gz' % (pv, pv)
+ result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+ self.assertTrue(os.path.isfile(recipefile))
+ checkvars = {}
+ checkvars['LICENSE'] = set(['Apache-2.0'])
+ checkvars['SRC_URI'] = 'https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz'
+ inherits = ['setuptools']
+ self._test_recipe_contents(recipefile, checkvars, inherits)
+
+ def test_recipetool_create_git_http(self):
+ # Basic test to check http git URL mangling works
+ temprecipe = os.path.join(self.tempdir, 'recipe')
+ os.makedirs(temprecipe)
+ recipefile = os.path.join(temprecipe, 'matchbox-terminal_git.bb')
+ srcuri = 'http://git.yoctoproject.org/git/matchbox-terminal'
+ result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri))
+ self.assertTrue(os.path.isfile(recipefile))
+ checkvars = {}
+ checkvars['LICENSE'] = set(['GPLv2'])
+ checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/matchbox-terminal;protocol=http'
+ inherits = ['pkgconfig', 'autotools']
+ self._test_recipe_contents(recipefile, checkvars, inherits)
+
class RecipetoolAppendsrcBase(RecipetoolBase):
def _try_recipetool_appendsrcfile(self, testrecipe, newfile, destfile, options, expectedlines, expectedfiles):
cmd = 'recipetool appendsrcfile %s %s %s %s %s' % (options, self.templayerdir, testrecipe, newfile, destfile)
@@ -471,7 +514,7 @@ class RecipetoolAppendsrcBase(RecipetoolBase):
'''Return the first file:// in SRC_URI for the specified recipe.'''
src_uri = get_bb_var('SRC_URI', recipe).split()
for uri in src_uri:
- p = urlparse.urlparse(uri)
+ p = urllib.parse.urlparse(uri)
if p.scheme == 'file':
return p.netloc + p.path
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/runtime-test.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/runtime-test.py
new file mode 100644
index 000000000..c2d5b45a4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/runtime-test.py
@@ -0,0 +1,105 @@
+from oeqa.selftest.base import oeSelfTest
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
+from oeqa.utils.decorators import testcase
+import os
+
+class TestExport(oeSelfTest):
+
+ def test_testexport_basic(self):
+ """
+ Summary: Check basic testexport functionality with only ping test enabled.
+ Expected: 1. testexport directory must be created.
+ 2. runexported.py must run without any error/exception.
+ 3. ping test must succeed.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ features = 'INHERIT += "testexport"\n'
+ # These aren't the actual IP addresses but testexport class needs something defined
+ features += 'TEST_SERVER_IP = "192.168.7.1"\n'
+ features += 'TEST_TARGET_IP = "192.168.7.1"\n'
+ features += 'TEST_SUITES = "ping"\n'
+ self.write_config(features)
+
+ # Build tesexport for core-image-minimal
+ bitbake('core-image-minimal')
+ bitbake('-c testexport core-image-minimal')
+
+ # Verify if TEST_EXPORT_DIR was created
+ testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal')
+ isdir = os.path.isdir(testexport_dir)
+ self.assertEqual(True, isdir, 'Failed to create testexport dir: %s' % testexport_dir)
+
+ with runqemu('core-image-minimal') as qemu:
+ # Attempt to run runexported.py to perform ping test
+ runexported_path = os.path.join(testexport_dir, "runexported.py")
+ testdata_path = os.path.join(testexport_dir, "testdata.json")
+ cmd = "%s -t %s -s %s %s" % (runexported_path, qemu.ip, qemu.server_ip, testdata_path)
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'runexported.py returned a non 0 status')
+
+ # Verify ping test was succesful
+ failure = True if 'FAIL' in result.output else False
+ self.assertNotEqual(True, failure, 'ping test failed')
+
+ def test_testexport_sdk(self):
+ """
+ Summary: Check sdk functionality for testexport.
+ Expected: 1. testexport directory must be created.
+ 2. SDK tarball must exists.
+ 3. Uncompressing of tarball must succeed.
+ 4. Check if the SDK directory is added to PATH.
+ 5. Run tar from the SDK directory.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ features = 'INHERIT += "testexport"\n'
+ # These aren't the actual IP addresses but testexport class needs something defined
+ features += 'TEST_SERVER_IP = "192.168.7.1"\n'
+ features += 'TEST_TARGET_IP = "192.168.7.1"\n'
+ features += 'TEST_SUITES = "ping"\n'
+ features += 'TEST_SUITES_TAGS = "selftest_sdk"\n'
+ features += 'TEST_EXPORT_SDK_ENABLED = "1"\n'
+ features += 'TEST_EXPORT_SDK_PACKAGES = "nativesdk-tar"\n'
+ self.write_config(features)
+
+ # Build tesexport for core-image-minimal
+ bitbake('core-image-minimal')
+ bitbake('-c testexport core-image-minimal')
+
+ # Check for SDK
+ testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal')
+ sdk_dir = get_bb_var('TEST_EXPORT_SDK_DIR', 'core-image-minimal')
+ tarball_name = "%s.sh" % get_bb_var('TEST_EXPORT_SDK_NAME', 'core-image-minimal')
+ tarball_path = os.path.join(testexport_dir, sdk_dir, tarball_name)
+ self.assertEqual(os.path.isfile(tarball_path), True, "Couldn't find SDK tarball: %s" % tarball_path)
+
+ # Run runexported.py
+ runexported_path = os.path.join(testexport_dir, "runexported.py")
+ testdata_path = os.path.join(testexport_dir, "testdata.json")
+ cmd = "%s %s" % (runexported_path, testdata_path)
+ result = runCmd(cmd)
+ self.assertEqual(0, result.status, 'runexported.py returned a non 0 status')
+
+
+class TestImage(oeSelfTest):
+
+ def test_testimage_install(self):
+ """
+ Summary: Check install packages functionality for testimage/testexport.
+ Expected: 1. Import tests from a directory other than meta.
+ 2. Check install/unistall of socat.
+ Product: oe-core
+ Author: Mariano Lopez <mariano.lopez@intel.com>
+ """
+
+ features = 'INHERIT += "testimage"\n'
+ features += 'TEST_SUITES = "ping ssh selftest"\n'
+ features += 'TEST_SUITES_TAGS = "selftest_package_install"\n'
+ self.write_config(features)
+
+ # Build core-image-sato and testimage
+ bitbake('core-image-full-cmdline socat')
+ bitbake('-c testimage core-image-full-cmdline')
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/signing.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/signing.py
index 1babca07d..4c12d6d94 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/signing.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/signing.py
@@ -12,30 +12,22 @@ from oeqa.utils.ftools import write_file
class Signing(oeSelfTest):
gpg_dir = ""
- pub_key_name = 'key.pub'
- secret_key_name = 'key.secret'
+ pub_key_path = ""
+ secret_key_path = ""
@classmethod
def setUpClass(cls):
- # Import the gpg keys
+ # Check that we can find the gpg binary and fail early if we can't
+ if not shutil.which("gpg"):
+ raise AssertionError("This test needs GnuPG")
- cls.gpg_dir = os.path.join(cls.testlayer_path, 'files/signing/')
+ cls.gpg_home_dir = tempfile.TemporaryDirectory(prefix="oeqa-signing-")
+ cls.gpg_dir = cls.gpg_home_dir.name
- # key.secret key.pub are located in gpg_dir
- pub_key_location = cls.gpg_dir + cls.pub_key_name
- secret_key_location = cls.gpg_dir + cls.secret_key_name
- runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, pub_key_location, secret_key_location))
+ cls.pub_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.pub")
+ cls.secret_key_path = os.path.join(cls.testlayer_path, 'files', 'signing', "key.secret")
- @classmethod
- def tearDownClass(cls):
- # Delete the files generated by 'gpg --import'
-
- gpg_files = glob.glob(cls.gpg_dir + '*.gpg*')
- random_seed_file = cls.gpg_dir + 'random_seed'
- gpg_files.append(random_seed_file)
-
- for gpg_file in gpg_files:
- runCmd('rm -f ' + gpg_file)
+ runCmd('gpg --homedir %s --import %s %s' % (cls.gpg_dir, cls.pub_key_path, cls.secret_key_path))
@testcase(1362)
def test_signing_packages(self):
@@ -57,7 +49,7 @@ class Signing(oeSelfTest):
feature = 'INHERIT += "sign_rpm"\n'
feature += 'RPM_GPG_PASSPHRASE = "test123"\n'
feature += 'RPM_GPG_NAME = "testuser"\n'
- feature += 'RPM_GPG_PUBKEY = "%s%s"\n' % (self.gpg_dir, self.pub_key_name)
+ feature += 'RPM_GPG_PUBKEY = "%s"\n' % self.pub_key_path
feature += 'GPG_PATH = "%s"\n' % self.gpg_dir
self.write_config(feature)
@@ -81,8 +73,8 @@ class Signing(oeSelfTest):
# Use a temporary rpmdb
rpmdb = tempfile.mkdtemp(prefix='oeqa-rpmdb')
- runCmd('%s/rpm --define "_dbpath %s" --import %s%s' %
- (staging_bindir_native, rpmdb, self.gpg_dir, self.pub_key_name))
+ runCmd('%s/rpm --define "_dbpath %s" --import %s' %
+ (staging_bindir_native, rpmdb, self.pub_key_path))
ret = runCmd('%s/rpm --define "_dbpath %s" --checksig %s' %
(staging_bindir_native, rpmdb, pkg_deploy))
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/sstatetests.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/sstatetests.py
index acaf405ac..6642539eb 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/sstatetests.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/sstatetests.py
@@ -237,6 +237,7 @@ TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
BUILD_ARCH = "x86_64"
BUILD_OS = "linux"
SDKMACHINE = "x86_64"
+PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
""")
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none")
@@ -246,6 +247,7 @@ TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
BUILD_ARCH = "i686"
BUILD_OS = "linux"
SDKMACHINE = "i686"
+PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
""")
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none")
@@ -264,7 +266,7 @@ SDKMACHINE = "i686"
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash").replace("i686-linux", "x86_64-linux").replace("i686" + targetvendor + "-linux", "x86_64" + targetvendor + "-linux", ) for x in files2]
self.maxDiff = None
- self.assertItemsEqual(files1, files2)
+ self.assertCountEqual(files1, files2)
@testcase(1271)
@@ -298,7 +300,7 @@ NATIVELSBSTRING = \"DistroB\"
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.maxDiff = None
- self.assertItemsEqual(files1, files2)
+ self.assertCountEqual(files1, files2)
@testcase(1368)
def test_sstate_allarch_samesigs(self):
@@ -309,19 +311,48 @@ NATIVELSBSTRING = \"DistroB\"
the two MACHINE values.
"""
+ configA = """
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
+MACHINE = \"qemux86-64\"
+"""
+ configB = """
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
+MACHINE = \"qemuarm\"
+"""
+ self.sstate_allarch_samesigs(configA, configB)
+
+ def test_sstate_allarch_samesigs_multilib(self):
+ """
+ The sstate checksums of allarch multilib packages should be independent of whichever
+ MACHINE is set. Check this using bitbake -S.
+ Also, rather than duplicate the test, check nativesdk stamps are the same between
+ the two MACHINE values.
+ """
+
+ configA = """
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
+MACHINE = \"qemux86-64\"
+require conf/multilib.conf
+MULTILIBS = \"multilib:lib32\"
+DEFAULTTUNE_virtclass-multilib-lib32 = \"x86\"
+"""
+ configB = """
+TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
+MACHINE = \"qemuarm\"
+require conf/multilib.conf
+MULTILIBS = \"\"
+"""
+ self.sstate_allarch_samesigs(configA, configB)
+
+ def sstate_allarch_samesigs(self, configA, configB):
+
topdir = get_bb_var('TOPDIR')
targetos = get_bb_var('TARGET_OS')
targetvendor = get_bb_var('TARGET_VENDOR')
- self.write_config("""
-TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
-MACHINE = \"qemux86\"
-""")
+ self.write_config(configA)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
bitbake("world meta-toolchain -S none")
- self.write_config("""
-TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
-MACHINE = \"qemuarm\"
-""")
+ self.write_config(configB)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
bitbake("world meta-toolchain -S none")
@@ -393,7 +424,7 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.maxDiff = None
- self.assertItemsEqual(files1, files2)
+ self.assertCountEqual(files1, files2)
def test_sstate_noop_samesigs(self):
@@ -411,9 +442,11 @@ PARALLEL_MAKE = "-j 1"
DL_DIR = "${TOPDIR}/download1"
TIME = "111111"
DATE = "20161111"
-INHERIT_remove = "buildstats-summary buildhistory"
+INHERIT_remove = "buildstats-summary buildhistory uninative"
+http_proxy = ""
""")
self.track_for_cleanup(topdir + "/tmp-sstatesamehash")
+ self.track_for_cleanup(topdir + "/download1")
bitbake("world meta-toolchain -S none")
self.write_config("""
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
@@ -422,9 +455,13 @@ PARALLEL_MAKE = "-j 2"
DL_DIR = "${TOPDIR}/download2"
TIME = "222222"
DATE = "20161212"
+# Always remove uninative as we're changing proxies
+INHERIT_remove = "uninative"
INHERIT += "buildstats-summary buildhistory"
+http_proxy = "http://example.com/"
""")
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2")
+ self.track_for_cleanup(topdir + "/download2")
bitbake("world meta-toolchain -S none")
def get_files(d):
@@ -439,23 +476,23 @@ INHERIT += "buildstats-summary buildhistory"
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/")
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/")
# Remove items that are identical in both sets
- for k,v in files1.viewitems() & files2.viewitems():
+ for k,v in files1.items() & files2.items():
del files1[k]
del files2[k]
if not files1 and not files2:
# No changes, so we're done
return
- for k in files1.viewkeys() | files2.viewkeys():
+ for k in files1.keys() | files2.keys():
if k in files1 and k in files2:
- print "%s differs:" % k
- print subprocess.check_output(("bitbake-diffsigs",
+ print("%s differs:" % k)
+ print(subprocess.check_output(("bitbake-diffsigs",
topdir + "/tmp-sstatesamehash/stamps/" + k + "." + files1[k],
- topdir + "/tmp-sstatesamehash2/stamps/" + k + "." + files2[k]))
+ topdir + "/tmp-sstatesamehash2/stamps/" + k + "." + files2[k])))
elif k in files1 and k not in files2:
- print "%s in files1" % k
+ print("%s in files1" % k)
elif k not in files1 and k in files2:
- print "%s in files2" % k
+ print("%s in files2" % k)
else:
assert "shouldn't reach here"
self.fail("sstate hashes not identical.")
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/selftest/wic.py b/import-layers/yocto-poky/meta/lib/oeqa/selftest/wic.py
index a569fbf74..faac11e21 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/selftest/wic.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/selftest/wic.py
@@ -49,7 +49,7 @@ class Wic(oeSelfTest):
# setUpClass being unavailable.
if not Wic.image_is_ready:
bitbake('syslinux syslinux-native parted-native gptfdisk-native '
- 'dosfstools-native mtools-native')
+ 'dosfstools-native mtools-native bmap-tools-native')
bitbake('core-image-minimal')
Wic.image_is_ready = True
@@ -276,3 +276,26 @@ class Wic(oeSelfTest):
status, output = qemu.run_serial(command)
self.assertEqual(1, status, 'Failed to run command "%s": %s' % (command, output))
self.assertEqual(output, '/dev/root /\r\n/dev/vda3 /mnt')
+
+ def test_bmap(self):
+ """Test generation of .bmap file"""
+ image = "directdisk"
+ status = runCmd("wic create %s -e core-image-minimal --bmap" % image).status
+ self.assertEqual(0, status)
+ self.assertEqual(1, len(glob(self.resultdir + "%s-*direct" % image)))
+ self.assertEqual(1, len(glob(self.resultdir + "%s-*direct.bmap" % image)))
+
+ 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)))
+
+ def test_sdimage_bootpart(self):
+ """Test creation of sdimage-bootpart image"""
+ image = "sdimage-bootpart"
+ self.write_config('IMAGE_BOOT_FILES = "bzImage"\n')
+ 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 a/import-layers/yocto-poky/meta/lib/oeqa/targetcontrol.py b/import-layers/yocto-poky/meta/lib/oeqa/targetcontrol.py
index 5422a617c..24669f461 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/targetcontrol.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/targetcontrol.py
@@ -43,9 +43,7 @@ def get_target_controller(d):
return controller(d)
-class BaseTarget(object):
-
- __metaclass__ = ABCMeta
+class BaseTarget(object, metaclass=ABCMeta):
supported_image_fstypes = []
@@ -68,7 +66,7 @@ class BaseTarget(object):
bb.note("SSH log file: %s" % self.sshlog)
@abstractmethod
- def start(self, params=None, ssh=True):
+ def start(self, params=None, ssh=True, extra_bootparams=None):
pass
@abstractmethod
@@ -121,12 +119,17 @@ class QemuTarget(BaseTarget):
self.image_fstype = self.get_image_fstype(d)
self.qemulog = os.path.join(self.testdir, "qemu_boot_log.%s" % self.datetime)
- self.origrootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True), d.getVar("IMAGE_LINK_NAME", True) + '.' + self.image_fstype)
- self.rootfs = os.path.join(self.testdir, d.getVar("IMAGE_LINK_NAME", True) + '-testimage.' + self.image_fstype)
+ self.rootfs = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True), d.getVar("IMAGE_LINK_NAME", True) + '.' + self.image_fstype)
self.kernel = os.path.join(d.getVar("DEPLOY_DIR_IMAGE", True), d.getVar("KERNEL_IMAGETYPE", False) + '-' + d.getVar('MACHINE', False) + '.bin')
dump_target_cmds = d.getVar("testimage_dump_target", True)
dump_host_cmds = d.getVar("testimage_dump_host", True)
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR", True)
+ if d.getVar("QEMU_USE_KVM", False) is not None \
+ and d.getVar("QEMU_USE_KVM", False) == "True" \
+ and "x86" in d.getVar("MACHINE", True):
+ use_kvm = True
+ else:
+ use_kvm = False
# Log QemuRunner log output to a file
import oe.path
@@ -155,17 +158,14 @@ class QemuTarget(BaseTarget):
display = d.getVar("BB_ORIGENV", False).getVar("DISPLAY", True),
logfile = self.qemulog,
boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT", True)),
+ use_kvm = use_kvm,
dump_dir = dump_dir,
dump_host_cmds = d.getVar("testimage_dump_host", True))
self.target_dumper = TargetDumper(dump_target_cmds, dump_dir, self.runner)
def deploy(self):
- try:
- bb.utils.mkdirhier(self.testdir)
- shutil.copyfile(self.origrootfs, self.rootfs)
- except Exception as e:
- bb.fatal("Error copying rootfs: %s" % e)
+ bb.utils.mkdirhier(self.testdir)
qemuloglink = os.path.join(self.testdir, "qemu_boot_log")
if os.path.islink(qemuloglink):
@@ -176,8 +176,8 @@ class QemuTarget(BaseTarget):
bb.note("Qemu log file: %s" % self.qemulog)
super(QemuTarget, self).deploy()
- def start(self, params=None, ssh=True):
- if self.runner.start(params, get_ip=ssh):
+ def start(self, params=None, ssh=True, extra_bootparams=None):
+ if self.runner.start(params, get_ip=ssh, extra_bootparams=extra_bootparams):
if ssh:
self.ip = self.runner.ip
self.server_ip = self.runner.server_ip
@@ -232,7 +232,7 @@ class SimpleRemoteTarget(BaseTarget):
def deploy(self):
super(SimpleRemoteTarget, self).deploy()
- def start(self, params=None, ssh=True):
+ def start(self, params=None, ssh=True, extra_bootparams=None):
if ssh:
self.connection = SSHControl(self.ip, logfile=self.sshlog, port=self.port)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/commands.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/commands.py
index 48f644129..5cd0f7477 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/commands.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/commands.py
@@ -41,7 +41,7 @@ class Command(object):
self.data = data
self.options = dict(self.defaultopts)
- if isinstance(self.cmd, basestring):
+ if isinstance(self.cmd, str):
self.options["shell"] = True
if self.data:
self.options['stdin'] = subprocess.PIPE
@@ -78,7 +78,10 @@ class Command(object):
self.process.kill()
self.thread.join()
- self.output = self.output.rstrip()
+ if not self.output:
+ self.output = ""
+ else:
+ self.output = self.output.decode("utf-8", errors='replace').rstrip()
self.status = self.process.poll()
self.log.debug("Command '%s' returned %d as exit code." % (self.cmd, self.status))
@@ -103,6 +106,7 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, **opti
result.command = command
result.status = cmd.status
result.output = cmd.output
+ result.error = cmd.error
result.pid = cmd.process.pid
if result.status and not ignore_status:
@@ -123,7 +127,7 @@ def bitbake(command, ignore_status=False, timeout=None, postconfig=None, **optio
else:
extra_args = ""
- if isinstance(command, basestring):
+ if isinstance(command, str):
cmd = "bitbake " + extra_args + " " + command
else:
cmd = [ "bitbake" ] + [a for a in (command + extra_args.split(" ")) if a not in [""]]
@@ -141,22 +145,45 @@ def get_bb_env(target=None, postconfig=None):
else:
return bitbake("-e", postconfig=postconfig).output
-def get_bb_var(var, target=None, postconfig=None):
- val = None
+def get_bb_vars(variables=None, target=None, postconfig=None):
+ """Get values of multiple bitbake variables"""
bbenv = get_bb_env(target, postconfig=postconfig)
+
+ var_re = re.compile(r'^(export )?(?P<var>\w+)="(?P<value>.*)"$')
+ unset_re = re.compile(r'^unset (?P<var>\w+)$')
lastline = None
+ values = {}
for line in bbenv.splitlines():
- if re.search("^(export )?%s=" % var, line):
- val = line.split('=', 1)[1]
- val = val.strip('\"')
- break
- elif re.match("unset %s$" % var, line):
- # Handle [unexport] variables
- if lastline.startswith('# "'):
- val = lastline.split('\"')[1]
- break
+ match = var_re.match(line)
+ val = None
+ if match:
+ val = match.group('value')
+ else:
+ match = unset_re.match(line)
+ if match:
+ # Handle [unexport] variables
+ if lastline.startswith('# "'):
+ val = lastline.split('"')[1]
+ if val:
+ var = match.group('var')
+ if variables is None:
+ values[var] = val
+ else:
+ if var in variables:
+ values[var] = val
+ variables.remove(var)
+ # Stop after all required variables have been found
+ if not variables:
+ break
lastline = line
- return val
+ if variables:
+ # Fill in missing values
+ for var in variables:
+ values[var] = None
+ return values
+
+def get_bb_var(var, target=None, postconfig=None):
+ return get_bb_vars([var], target, postconfig)[var]
def get_test_layer():
layers = get_bb_var("BBLAYERS").split()
@@ -196,7 +223,7 @@ def runqemu(pn, ssh=True):
tinfoil.config_data.setVar("TEST_QEMUBOOT_TIMEOUT", "1000")
import oe.recipeutils
recipefile = oe.recipeutils.pn_to_recipe(tinfoil.cooker, pn)
- recipedata = oe.recipeutils.parse_recipe(recipefile, [], tinfoil.config_data)
+ recipedata = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, [])
# The QemuRunner log is saved out, but we need to ensure it is at the right
# log level (and then ensure that since it's a child of the BitBake logger,
@@ -237,3 +264,15 @@ def runqemu(pn, ssh=True):
qemu.stop()
except:
pass
+
+def updateEnv(env_file):
+ """
+ Source a file and update environment.
+ """
+
+ cmd = ". %s; env -0" % env_file
+ result = runCmd(cmd)
+
+ for line in result.output.split("\0"):
+ (key, _, value) = line.partition("=")
+ os.environ[key] = value
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/decorators.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/decorators.py
index 0d79223a2..25f9c54e6 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/decorators.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/decorators.py
@@ -57,6 +57,7 @@ class skipIfFailure(object):
self.testcase = testcase
def __call__(self,f):
+ @wraps(f)
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in (res.getFailList() or res.getErrorList()):
@@ -71,6 +72,7 @@ class skipIfSkipped(object):
self.testcase = testcase
def __call__(self,f):
+ @wraps(f)
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in res.getSkipList():
@@ -85,6 +87,7 @@ class skipUnlessPassed(object):
self.testcase = testcase
def __call__(self,f):
+ @wraps(f)
def wrapped_f(*args, **kwargs):
res = getResults()
if self.testcase in res.getSkipList() or \
@@ -97,11 +100,11 @@ class skipUnlessPassed(object):
return wrapped_f
class testcase(object):
-
def __init__(self, test_case):
self.test_case = test_case
def __call__(self, func):
+ @wraps(func)
def wrapped_f(*args, **kwargs):
return func(*args, **kwargs)
wrapped_f.test_case = self.test_case
@@ -112,6 +115,8 @@ class NoParsingFilter(logging.Filter):
def filter(self, record):
return record.levelno == 100
+import inspect
+
def LogResults(original_class):
orig_method = original_class.run
@@ -121,6 +126,19 @@ def LogResults(original_class):
logfile = os.path.join(os.getcwd(),'results-'+caller+'.'+timestamp+'.log')
linkfile = os.path.join(os.getcwd(),'results-'+caller+'.log')
+ def get_class_that_defined_method(meth):
+ if inspect.ismethod(meth):
+ for cls in inspect.getmro(meth.__self__.__class__):
+ if cls.__dict__.get(meth.__name__) is meth:
+ return cls
+ meth = meth.__func__ # fallback to __qualname__ parsing
+ if inspect.isfunction(meth):
+ cls = getattr(inspect.getmodule(meth),
+ meth.__qualname__.split('.<locals>', 1)[0].rsplit('.', 1)[0])
+ if isinstance(cls, type):
+ return cls
+ return None
+
#rewrite the run method of unittest.TestCase to add testcase logging
def run(self, result, *args, **kws):
orig_method(self, result, *args, **kws)
@@ -132,7 +150,7 @@ def LogResults(original_class):
except AttributeError:
test_case = self._testMethodName
- class_name = str(testMethod.im_class).split("'")[1]
+ class_name = str(get_class_that_defined_method(testMethod)).split("'")[1]
#create custom logging level for filtering.
custom_log_level = 100
@@ -171,10 +189,24 @@ def LogResults(original_class):
if passed:
local_log.results("Testcase "+str(test_case)+": PASSED")
+ # XXX: In order to avoid race condition when test if exists the linkfile
+ # use bb.utils.lock, the best solution is to create a unique name for the
+ # link file.
+ try:
+ import bb
+ has_bb = True
+ lockfilename = linkfile + '.lock'
+ except ImportError:
+ has_bb = False
+
+ if has_bb:
+ lf = bb.utils.lockfile(lockfilename, block=True)
# Create symlink to the current log
- if os.path.exists(linkfile):
+ if os.path.lexists(linkfile):
os.remove(linkfile)
os.symlink(logfile, linkfile)
+ if has_bb:
+ bb.utils.unlockfile(lf)
original_class.run = run
@@ -212,7 +244,7 @@ def tag(*args, **kwargs):
def wrap_ob(ob):
for name in args:
setattr(ob, __tag_prefix + name, True)
- for name, value in kwargs.iteritems():
+ for name, value in kwargs.items():
setattr(ob, __tag_prefix + name, value)
return ob
return wrap_ob
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/dump.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/dump.py
index 63a591d36..71422a9ae 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/dump.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/dump.py
@@ -3,7 +3,7 @@ import sys
import errno
import datetime
import itertools
-from commands import runCmd
+from .commands import runCmd
def get_host_dumper(d):
cmds = d.getVar("testimage_dump_host", True)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/git.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/git.py
new file mode 100644
index 000000000..ae85d2766
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/git.py
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2016 Intel Corporation
+#
+# Released under the MIT license (see COPYING.MIT)
+#
+"""Git repository interactions"""
+import os
+
+from oeqa.utils.commands import runCmd
+
+
+class GitError(Exception):
+ """Git error handling"""
+ pass
+
+class GitRepo(object):
+ """Class representing a Git repository clone"""
+ def __init__(self, path, is_topdir=False):
+ self.top_dir = self._run_git_cmd_at(['rev-parse', '--show-toplevel'],
+ path)
+ realpath = os.path.realpath(path)
+ if is_topdir and realpath != self.top_dir:
+ raise GitError("{} is not a Git top directory".format(realpath))
+
+ @staticmethod
+ def _run_git_cmd_at(git_args, cwd, **kwargs):
+ """Run git command at a specified directory"""
+ git_cmd = 'git ' if isinstance(git_args, str) else ['git']
+ git_cmd += git_args
+ ret = runCmd(git_cmd, ignore_status=True, cwd=cwd, **kwargs)
+ if ret.status:
+ cmd_str = git_cmd if isinstance(git_cmd, str) \
+ else ' '.join(git_cmd)
+ raise GitError("'{}' failed with exit code {}: {}".format(
+ cmd_str, ret.status, ret.output))
+ return ret.output.strip()
+
+ @staticmethod
+ def init(path):
+ """Initialize a new Git repository"""
+ GitRepo._run_git_cmd_at('init', cwd=path)
+ return GitRepo(path, is_topdir=True)
+
+ def run_cmd(self, git_args, env_update=None):
+ """Run Git command"""
+ env = None
+ if env_update:
+ env = os.environ.copy()
+ env.update(env_update)
+ return self._run_git_cmd_at(git_args, self.top_dir, env=env)
+
+ def rev_parse(self, revision):
+ """Do git rev-parse"""
+ try:
+ return self.run_cmd(['rev-parse', revision])
+ except GitError:
+ # Revision does not exist
+ return None
+
+ def get_current_branch(self):
+ """Get current branch"""
+ try:
+ # Strip 11 chars, i.e. 'refs/heads' from the beginning
+ return self.run_cmd(['symbolic-ref', 'HEAD'])[11:]
+ except GitError:
+ return None
+
+
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/httpserver.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/httpserver.py
index 76518d8ef..7d1233145 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/httpserver.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/httpserver.py
@@ -1,8 +1,9 @@
-import SimpleHTTPServer
+import http.server
import multiprocessing
import os
+from socketserver import ThreadingMixIn
-class HTTPServer(SimpleHTTPServer.BaseHTTPServer.HTTPServer):
+class HTTPServer(ThreadingMixIn, http.server.HTTPServer):
def server_start(self, root_dir):
import signal
@@ -10,7 +11,7 @@ class HTTPServer(SimpleHTTPServer.BaseHTTPServer.HTTPServer):
os.chdir(root_dir)
self.serve_forever()
-class HTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
+class HTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
def log_message(self, format_str, *args):
pass
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/logparser.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/logparser.py
index 87b50354c..b377dcd27 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/logparser.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/logparser.py
@@ -3,7 +3,7 @@
import sys
import os
import re
-import ftools
+from . import ftools
# A parser that can be used to identify weather a line is a test result or a section statement.
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/package_manager.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/package_manager.py
new file mode 100644
index 000000000..099ecc972
--- /dev/null
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/package_manager.py
@@ -0,0 +1,29 @@
+def get_package_manager(d, root_path):
+ """
+ Returns an OE package manager that can install packages in root_path.
+ """
+ from oe.package_manager import RpmPM, OpkgPM, DpkgPM
+
+ pkg_class = d.getVar("IMAGE_PKGTYPE", True)
+ if pkg_class == "rpm":
+ pm = RpmPM(d,
+ root_path,
+ d.getVar('TARGET_VENDOR', True))
+ pm.create_configs()
+
+ elif pkg_class == "ipk":
+ pm = OpkgPM(d,
+ root_path,
+ d.getVar("IPKGCONF_TARGET", True),
+ d.getVar("ALL_MULTILIB_PACKAGE_ARCHS", True))
+
+ elif pkg_class == "deb":
+ pm = DpkgPM(d,
+ root_path,
+ d.getVar('PACKAGE_ARCHS', True),
+ d.getVar('DPKG_ARCH', True))
+
+ pm.write_index()
+ pm.update()
+
+ return pm
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/qemurunner.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/qemurunner.py
index 784cf964f..8f1b5b980 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/qemurunner.py
@@ -20,16 +20,17 @@ from oeqa.utils.dump import HostDumper
import logging
logger = logging.getLogger("BitBake.QemuRunner")
+logger.addHandler(logging.StreamHandler())
# Get Unicode non printable control chars
-control_range = range(0,32)+range(127,160)
-control_chars = [unichr(x) for x in control_range
- if unichr(x) not in string.printable]
+control_range = list(range(0,32))+list(range(127,160))
+control_chars = [chr(x) for x in control_range
+ if chr(x) not in string.printable]
re_control_char = re.compile('[%s]' % re.escape("".join(control_chars)))
class QemuRunner:
- def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds):
+ def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds, use_kvm):
# Popen object for runqemu
self.runqemu = None
@@ -49,6 +50,7 @@ class QemuRunner:
self.boottime = boottime
self.logged = False
self.thread = None
+ self.use_kvm = use_kvm
self.runqemutime = 60
self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
@@ -71,7 +73,8 @@ class QemuRunner:
if self.logfile:
# It is needed to sanitize the data received from qemu
# because is possible to have control characters
- msg = re_control_char.sub('', unicode(msg, 'utf-8'))
+ msg = msg.decode("utf-8")
+ msg = re_control_char.sub('', msg)
with codecs.open(self.logfile, "a", encoding="utf-8") as f:
f.write("%s" % msg)
@@ -79,7 +82,7 @@ class QemuRunner:
import fcntl
fl = fcntl.fcntl(o, fcntl.F_GETFL)
fcntl.fcntl(o, fcntl.F_SETFL, fl | os.O_NONBLOCK)
- return os.read(o.fileno(), 1000000)
+ return os.read(o.fileno(), 1000000).decode("utf-8")
def handleSIGCHLD(self, signum, frame):
@@ -91,7 +94,7 @@ class QemuRunner:
self._dump_host()
raise SystemExit
- def start(self, qemuparams = None, get_ip = True):
+ def start(self, qemuparams = None, get_ip = True, extra_bootparams = None):
if self.display:
os.environ["DISPLAY"] = self.display
# Set this flag so that Qemu doesn't do any grabs as SDL grabs
@@ -114,12 +117,16 @@ class QemuRunner:
try:
threadsock, threadport = self.create_socket()
self.server_socket, self.serverport = self.create_socket()
- except socket.error, msg:
+ except socket.error as msg:
logger.error("Failed to create listening socket: %s" % msg[1])
return False
- self.qemuparams = 'bootparams="console=tty1 console=ttyS0,115200n8 printk.time=1" qemuparams="-serial tcp:127.0.0.1:{}"'.format(threadport)
+ bootparams = 'console=tty1 console=ttyS0,115200n8 printk.time=1'
+ if extra_bootparams:
+ bootparams = bootparams + ' ' + extra_bootparams
+
+ self.qemuparams = 'bootparams="{0}" qemuparams="-serial tcp:127.0.0.1:{1}"'.format(bootparams, threadport)
if not self.display:
self.qemuparams = 'nographic ' + self.qemuparams
if qemuparams:
@@ -128,7 +135,15 @@ class QemuRunner:
self.origchldhandler = signal.getsignal(signal.SIGCHLD)
signal.signal(signal.SIGCHLD, self.handleSIGCHLD)
- launch_cmd = 'runqemu tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams)
+ launch_cmd = 'runqemu snapshot '
+ if self.use_kvm:
+ logger.info('Using kvm for runqemu')
+ launch_cmd += 'kvm '
+ else:
+ logger.info('Not using kvm for runqemu')
+ launch_cmd += 'tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams)
+ logger.info('launchcmd=%s'%(launch_cmd))
+
# FIXME: We pass in stdin=subprocess.PIPE here to work around stty
# blocking at the end of the runqemu script when using this within
# oe-selftest (this makes stty error out immediately). There ought
@@ -137,12 +152,12 @@ class QemuRunner:
output = self.runqemu.stdout
#
- # We need the preexec_fn above so that all runqemu processes can easily be killed
+ # We need the preexec_fn above so that all runqemu processes can easily be killed
# (by killing their process group). This presents a problem if this controlling
- # process itself is killed however since those processes don't notice the death
+ # process itself is killed however since those processes don't notice the death
# of the parent and merrily continue on.
#
- # Rather than hack runqemu to deal with this, we add something here instead.
+ # Rather than hack runqemu to deal with this, we add something here instead.
# Basically we fork off another process which holds an open pipe to the parent
# and also is setpgrp. If/when the pipe sees EOF from the parent dieing, it kills
# the process group. This is like pctrl's PDEATHSIG but for a process group
@@ -192,7 +207,7 @@ class QemuRunner:
else:
self.ip = ips[0]
self.server_ip = ips[1]
- except IndexError, ValueError:
+ except (IndexError, ValueError):
logger.info("Couldn't get ip from qemu process arguments! Here is the qemu command line used:\n%s\nand output from runqemu:\n%s" % (cmdline, self.getOutput(output)))
self._dump_host()
self.stop()
@@ -219,6 +234,7 @@ class QemuRunner:
stopread = False
qemusock = None
bootlog = ''
+ data = b''
while time.time() < endtime and not stopread:
sread, swrite, serror = select.select(socklist, [], [], 5)
for sock in sread:
@@ -229,14 +245,19 @@ class QemuRunner:
socklist.remove(self.server_socket)
logger.info("Connection from %s:%s" % addr)
else:
- data = sock.recv(1024)
+ data = data + sock.recv(1024)
if data:
- bootlog += data
- if re.search(".* login:", bootlog):
- self.server_socket = qemusock
- stopread = True
- reachedlogin = True
- logger.info("Reached login banner")
+ try:
+ data = data.decode("utf-8", errors="surrogateescape")
+ bootlog += data
+ data = b''
+ if re.search(".* login:", bootlog):
+ self.server_socket = qemusock
+ stopread = True
+ reachedlogin = True
+ logger.info("Reached login banner")
+ except UnicodeDecodeError:
+ continue
else:
socklist.remove(sock)
sock.close()
@@ -277,13 +298,14 @@ class QemuRunner:
if hasattr(self, "origchldhandler"):
signal.signal(signal.SIGCHLD, self.origchldhandler)
if self.runqemu:
- os.kill(self.monitorpid, signal.SIGKILL)
- logger.info("Sending SIGTERM to runqemu")
- try:
- os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM)
- except OSError as e:
- if e.errno != errno.ESRCH:
- raise
+ if hasattr(self, "monitorpid"):
+ os.kill(self.monitorpid, signal.SIGKILL)
+ logger.info("Sending SIGTERM to runqemu")
+ try:
+ os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM)
+ except OSError as e:
+ if e.errno != errno.ESRCH:
+ raise
endtime = time.time() + self.runqemutime
while self.runqemu.poll() is None and time.time() < endtime:
time.sleep(1)
@@ -325,7 +347,7 @@ class QemuRunner:
# Walk the process tree from the process specified looking for a qemu-system. Return its [pid'cmd]
#
ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0]
- processes = ps.split('\n')
+ processes = ps.decode("utf-8").split('\n')
nfields = len(processes[0].split()) - 1
pids = {}
commands = {}
@@ -354,9 +376,9 @@ class QemuRunner:
if p not in parents:
parents.append(p)
newparents = next
- #print "Children matching %s:" % str(parents)
+ #print("Children matching %s:" % str(parents))
for p in parents:
- # Need to be careful here since runqemu-internal runs "ldd qemu-system-xxxx"
+ # Need to be careful here since runqemu runs "ldd qemu-system-xxxx"
# Also, old versions of ldd (2.11) run "LD_XXXX qemu-system-xxxx"
basecmd = commands[p].split()[0]
basecmd = os.path.basename(basecmd)
@@ -370,14 +392,14 @@ class QemuRunner:
data = ''
status = 0
- self.server_socket.sendall(command)
+ self.server_socket.sendall(command.encode('utf-8'))
keepreading = True
while keepreading:
sread, _, _ = select.select([self.server_socket],[],[],5)
if sread:
answer = self.server_socket.recv(1024)
if answer:
- data += answer
+ data += answer.decode('utf-8')
# Search the prompt to stop
if re.search("[a-zA-Z0-9]+@[a-zA-Z0-9\-]+:~#", data):
keepreading = False
@@ -442,7 +464,7 @@ class LoggingThread(threading.Thread):
def stop(self):
self.logger.info("Stopping logging thread")
if self.running:
- os.write(self.writepipe, "stop")
+ os.write(self.writepipe, bytes("stop", "utf-8"))
def teardown(self):
self.logger.info("Tearing down logging thread")
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/qemutinyrunner.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/qemutinyrunner.py
index 4f95101f3..d554f0dbc 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/qemutinyrunner.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/qemutinyrunner.py
@@ -13,7 +13,7 @@ import re
import socket
import select
import bb
-from qemurunner import QemuRunner
+from .qemurunner import QemuRunner
class QemuTinyRunner(QemuRunner):
@@ -50,7 +50,7 @@ class QemuTinyRunner(QemuRunner):
self.server_socket.connect(self.socketfile)
bb.note("Created listening socket for qemu serial console.")
tries = 0
- except socket.error, msg:
+ except socket.error as msg:
self.server_socket.close()
bb.fatal("Failed to create listening socket.")
tries -= 1
@@ -60,7 +60,7 @@ class QemuTinyRunner(QemuRunner):
with open(self.logfile, "a") as f:
f.write("%s" % msg)
- def start(self, qemuparams = None):
+ def start(self, qemuparams = None, ssh=True, extra_bootparams=None):
if self.display:
os.environ["DISPLAY"] = self.display
@@ -102,7 +102,7 @@ class QemuTinyRunner(QemuRunner):
bb.note("Qemu pid didn't appeared in %s seconds" % self.runqemutime)
output = self.runqemu.stdout
self.stop()
- bb.note("Output from runqemu:\n%s" % output.read())
+ bb.note("Output from runqemu:\n%s" % output.read().decode("utf-8"))
return False
return self.is_alive()
@@ -131,7 +131,7 @@ class QemuTinyRunner(QemuRunner):
# Walk the process tree from the process specified looking for a qemu-system. Return its [pid'cmd]
#
ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0]
- processes = ps.split('\n')
+ processes = ps.decode("utf-8").split('\n')
nfields = len(processes[0].split()) - 1
pids = {}
commands = {}
@@ -160,11 +160,11 @@ class QemuTinyRunner(QemuRunner):
if p not in parents:
parents.append(p)
newparents = next
- #print "Children matching %s:" % str(parents)
+ #print("Children matching %s:" % str(parents))
for p in parents:
- # Need to be careful here since runqemu-internal runs "ldd qemu-system-xxxx"
+ # Need to be careful here since runqemu runs "ldd qemu-system-xxxx"
# Also, old versions of ldd (2.11) run "LD_XXXX qemu-system-xxxx"
basecmd = commands[p].split()[0]
basecmd = os.path.basename(basecmd)
if "qemu-system" in basecmd and "-serial unix" in commands[p]:
- return [int(p),commands[p]] \ No newline at end of file
+ return [int(p),commands[p]]
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/sshcontrol.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/sshcontrol.py
index 165874416..05d650255 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/sshcontrol.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/sshcontrol.py
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
# Copyright (C) 2013 Intel Corporation
#
# Released under the MIT license (see COPYING.MIT)
@@ -51,16 +52,19 @@ class SSHProcess(object):
endtime = self.starttime + timeout
eof = False
while time.time() < endtime and not eof:
- if select.select([self.process.stdout], [], [], 5)[0] != []:
- data = os.read(self.process.stdout.fileno(), 1024)
- if not data:
- self.process.stdout.close()
- eof = True
- else:
- output += data
- self.log(data)
- endtime = time.time() + timeout
-
+ try:
+ if select.select([self.process.stdout], [], [], 5)[0] != []:
+ data = os.read(self.process.stdout.fileno(), 1024)
+ if not data:
+ self.process.stdout.close()
+ eof = True
+ else:
+ data = data.decode("utf-8")
+ output += data
+ self.log(data)
+ endtime = time.time() + timeout
+ except InterruptedError:
+ continue
# process hasn't returned yet
if not eof:
@@ -145,9 +149,97 @@ class SSHControl(object):
return self._internal_run(command, timeout, self.ignore_status)
def copy_to(self, localpath, remotepath):
- command = self.scp + [localpath, '%s@%s:%s' % (self.user, self.ip, remotepath)]
- return self._internal_run(command, ignore_status=False)
+ if os.path.islink(localpath):
+ link = os.readlink(localpath)
+ dst_dir, dst_base = os.path.split(remotepath)
+ return self.run("cd %s; ln -s %s %s" % (dst_dir, link, dst_base))
+ else:
+ command = self.scp + [localpath, '%s@%s:%s' % (self.user, self.ip, remotepath)]
+ return self._internal_run(command, ignore_status=False)
def copy_from(self, remotepath, localpath):
command = self.scp + ['%s@%s:%s' % (self.user, self.ip, remotepath), localpath]
return self._internal_run(command, ignore_status=False)
+
+ def copy_dir_to(self, localpath, remotepath):
+ """
+ Copy recursively localpath directory to remotepath in target.
+ """
+
+ for root, dirs, files in os.walk(localpath):
+ # Create directories in the target as needed
+ for d in dirs:
+ tmp_dir = os.path.join(root, d).replace(localpath, "")
+ new_dir = os.path.join(remotepath, tmp_dir.lstrip("/"))
+ cmd = "mkdir -p %s" % new_dir
+ self.run(cmd)
+
+ # Copy files into the target
+ for f in files:
+ tmp_file = os.path.join(root, f).replace(localpath, "")
+ dst_file = os.path.join(remotepath, tmp_file.lstrip("/"))
+ src_file = os.path.join(root, f)
+ self.copy_to(src_file, dst_file)
+
+
+ def delete_files(self, remotepath, files):
+ """
+ Delete files in target's remote path.
+ """
+
+ cmd = "rm"
+ if not isinstance(files, list):
+ files = [files]
+
+ for f in files:
+ cmd = "%s %s" % (cmd, os.path.join(remotepath, f))
+
+ self.run(cmd)
+
+
+ def delete_dir(self, remotepath):
+ """
+ Delete remotepath directory in target.
+ """
+
+ cmd = "rmdir %s" % remotepath
+ self.run(cmd)
+
+
+ def delete_dir_structure(self, localpath, remotepath):
+ """
+ Delete recursively localpath structure directory in target's remotepath.
+
+ This function is very usefult to delete a package that is installed in
+ the DUT and the host running the test has such package extracted in tmp
+ directory.
+
+ Example:
+ pwd: /home/user/tmp
+ tree: .
+ └── work
+ ├── dir1
+ │   └── file1
+ └── dir2
+
+ localpath = "/home/user/tmp" and remotepath = "/home/user"
+
+ With the above variables this function will try to delete the
+ directory in the DUT in this order:
+ /home/user/work/dir1/file1
+ /home/user/work/dir1 (if dir is empty)
+ /home/user/work/dir2 (if dir is empty)
+ /home/user/work (if dir is empty)
+ """
+
+ for root, dirs, files in os.walk(localpath, topdown=False):
+ # Delete files first
+ tmpdir = os.path.join(root).replace(localpath, "")
+ remotedir = os.path.join(remotepath, tmpdir.lstrip("/"))
+ self.delete_files(remotedir, files)
+
+ # Remove dirs if empty
+ for d in dirs:
+ tmpdir = os.path.join(root, d).replace(localpath, "")
+ remotedir = os.path.join(remotepath, tmpdir.lstrip("/"))
+ self.delete_dir(remotepath)
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/targetbuild.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/targetbuild.py
index f850d78df..59593f5ef 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/targetbuild.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/targetbuild.py
@@ -10,18 +10,17 @@ import bb.utils
import subprocess
from abc import ABCMeta, abstractmethod
-class BuildProject():
-
- __metaclass__ = ABCMeta
+class BuildProject(metaclass=ABCMeta):
def __init__(self, d, uri, foldername=None, tmpdir="/tmp/"):
self.d = d
self.uri = uri
self.archive = os.path.basename(uri)
self.localarchive = os.path.join(tmpdir,self.archive)
- self.fname = re.sub(r'.tar.bz2|tar.gz$', '', self.archive)
if foldername:
self.fname = foldername
+ else:
+ self.fname = re.sub(r'\.tar\.bz2$|\.tar\.gz$|\.tar\.xz$', '', self.archive)
# Download self.archive to self.localarchive
def _download_archive(self):
@@ -118,10 +117,10 @@ class SDKBuildProject(BuildProject):
subprocess.check_call(cmd, shell=True)
#Change targetdir to project folder
- self.targetdir = self.targetdir + self.fname
+ self.targetdir = os.path.join(self.targetdir, self.fname)
- def run_configure(self, configure_args=''):
- return super(SDKBuildProject, self).run_configure(configure_args=(configure_args or '$CONFIGURE_FLAGS'), extra_cmds=' gnu-configize; ')
+ def run_configure(self, configure_args='', extra_cmds=' gnu-configize; '):
+ return super(SDKBuildProject, self).run_configure(configure_args=(configure_args or '$CONFIGURE_FLAGS'), extra_cmds=extra_cmds)
def run_install(self, install_args=''):
return super(SDKBuildProject, self).run_install(install_args=(install_args or "DESTDIR=%s/../install" % self.targetdir))
@@ -134,4 +133,3 @@ class SDKBuildProject(BuildProject):
def _run(self, cmd):
self.log("Running . %s; " % self.sdkenv + cmd)
return subprocess.call(". %s; " % self.sdkenv + cmd, shell=True)
-
diff --git a/import-layers/yocto-poky/meta/lib/oeqa/utils/testexport.py b/import-layers/yocto-poky/meta/lib/oeqa/utils/testexport.py
index 243463bc1..57be2ca44 100644
--- a/import-layers/yocto-poky/meta/lib/oeqa/utils/testexport.py
+++ b/import-layers/yocto-poky/meta/lib/oeqa/utils/testexport.py
@@ -6,7 +6,7 @@
import os, re, glob as g, shutil as sh,sys
from time import sleep
-from commands import runCmd
+from .commands import runCmd
from difflib import SequenceMatcher as SM
try:
@@ -17,13 +17,13 @@ except ImportError:
pass
def plain(self, msg):
if msg:
- print msg
+ print(msg)
def warn(self, msg):
if msg:
- print "WARNING: " + msg
+ print("WARNING: " + msg)
def fatal(self, msg):
if msg:
- print "FATAL:" + msg
+ print("FATAL:" + msg)
sys.exit(1)
bb = my_log()
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid/0001-Fix-out-of-source-build.patch b/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid/0001-Fix-out-of-source-build.patch
deleted file mode 100644
index d1aa3aa17..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid/0001-Fix-out-of-source-build.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 5d32b65af750e2007730f3d55a552a186aed81a6 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Wed, 20 Jan 2016 14:08:29 +0200
-Subject: [PATCH] Fix out of source build
-
-Since the source directory contains another config.h, the build
-directory should be searched first.
-
-Upstream-Status: Submitted
-[https://sourceforge.net/p/acpid2/tickets/10/]
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- sock.c | 2 +-
- ud_socket.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sock.c b/sock.c
-index 644d460..9e04501 100644
---- a/sock.c
-+++ b/sock.c
-@@ -21,7 +21,7 @@
- */
-
- #ifdef HAVE_CONFIG_H
--#include "config.h"
-+#include <config.h>
- #endif
-
- #include <unistd.h>
-diff --git a/ud_socket.c b/ud_socket.c
-index 1790917..83b2aa9 100644
---- a/ud_socket.c
-+++ b/ud_socket.c
-@@ -4,7 +4,7 @@
- */
-
- #ifdef HAVE_CONFIG_H
--#include "config.h"
-+#include <config.h>
- #endif
-
- #include <stdio.h>
---
-2.4.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.26.bb b/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.26.bb
deleted file mode 100644
index c3bd51f7d..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.26.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require acpid.inc
-
-SRC_URI += "file://0001-Fix-out-of-source-build.patch"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
- file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5"
-
-SRC_URI[md5sum] = "f6d772e35ed907f1cc14ad1a546fd473"
-SRC_URI[sha256sum] = "8384f37e4f260f50183e2e20039823d8f06aed9db56924fe92097b7e0b2e0343"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.27.bb b/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.27.bb
new file mode 100644
index 000000000..509fcfe9a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/acpid/acpid_2.0.27.bb
@@ -0,0 +1,7 @@
+require acpid.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5"
+
+SRC_URI[md5sum] = "e41bdf628e122edb4342fca432ea7db9"
+SRC_URI[sha256sum] = "820c223e53cc11d9d7229fb1ffc2c2205f1054082c80f83f5a4ec4df16d3a616"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb b/import-layers/yocto-poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
index 4ff6ad087..82c264934 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://apm.h;beginline=6;endline=18;md5=7d4acc1250910a89f84ce3cc6557c4c2"
DEPENDS = "libtool-cross"
-SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz;name=tarball \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/a/${BPN}/${BPN}_3.2.2.orig.tar.gz;name=tarball \
file://legacy.patch \
file://libtool.patch \
file://unlinux.patch \
@@ -26,6 +26,7 @@ SRC_URI[tarball.sha256sum] = "7f7d9f60b7766b852881d40b8ff91d8e39fccb0d1d913102a5
# for this package we're mostly interested in tracking debian patches,
# and not in the upstream version where all development has effectively stopped
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apmd/"
UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
S = "${WORKDIR}/apmd-3.2.2.orig"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/aarch64-initplat.c-fix-const-qualifier.patch b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/aarch64-initplat.c-fix-const-qualifier.patch
new file mode 100644
index 000000000..965f074eb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/aarch64-initplat.c-fix-const-qualifier.patch
@@ -0,0 +1,35 @@
+From dc83b84dc8b4e71efce47143497aac6c126065cf Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Mon, 18 Jul 2016 08:40:29 -0700
+Subject: [PATCH] lib/aarch64/initplat.c: fix const qualifier
+
+Fixed:
+initplat.c:44:35: error: initialization discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
+ unsigned char *p = dest, *q = src;
+ ^~~
+cc1: all warnings being treated as errors
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ lib/aarch64/initplat.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/aarch64/initplat.c b/lib/aarch64/initplat.c
+index 2ac03a7..aae7beb 100644
+--- a/lib/aarch64/initplat.c
++++ b/lib/aarch64/initplat.c
+@@ -41,7 +41,8 @@ void *memset(void *s, int c, __SIZE_TYPE__ n)
+
+ void *memcpy(void *dest, const void *src, __SIZE_TYPE__ n)
+ {
+- unsigned char *p = dest, *q = src;
++ unsigned char *p = dest;
++ const unsigned char *q = src;
+
+ while (n--)
+ *p++ = *q++;
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-Make-setjmp.S-portable-to-ARM.patch b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-Make-setjmp.S-portable-to-ARM.patch
deleted file mode 100644
index ced128a31..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi/gnu-efi-Make-setjmp.S-portable-to-ARM.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8a356d4b6a242ce63b73920d3ed33f88f9e12fe3 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Sun, 6 Sep 2015 05:20:43 -0400
-Subject: [PATCH] gnu-efi: Make setjmp.S portable to ARM
-
-This patch fixes the following error:
-
- .../lib/arm/setjmp.S:18: Error: unrecognized symbol type ""
- .../lib/arm/setjmp.S:26: Error: unrecognized symbol type ""
-
-The problem is the assembly syntax that is used is not portable to ARM,
-where the '@' symbol is a comment:
-
- > Note on targets where the @ character is the start of a comment
- > (eg ARM) then another character is used instead. For example the
- > ARM port uses the % character.
-
-(From https://sourceware.org/binutils/docs-2.25/as/Section.html#Section)
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- lib/arm/setjmp.S | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/arm/setjmp.S b/lib/arm/setjmp.S
-index 6e3fbf0..85c8705 100644
---- a/lib/arm/setjmp.S
-+++ b/lib/arm/setjmp.S
-@@ -15,7 +15,7 @@ BASIS,
- .text
- .arm
- .globl setjmp
-- .type setjmp, @function
-+ .type setjmp, %function
- setjmp:
- mov r3, r13
- stmia r0, {r3-r12,r14}
-@@ -23,6 +23,6 @@ setjmp:
- bx lr
-
- .globl longjmp
-- .type longjmp, @function
-+ .type longjmp, %function
- longjmp:
- ldmia r0, {r3-r12,r14}
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.3.bb b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.3.bb
deleted file mode 100644
index eca34599c..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.3.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Libraries for producing EFI binaries"
-HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/"
-SECTION = "devel"
-LICENSE = "GPLv2+ | BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=9;md5=2240d7bbdf0928294c2f4a68b14d6591 \
- file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \
- file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \
- file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \
- file://lib/arm/div64.S;beginline=6;endline=12;md5=a96c84f5ad12b4f011f98b5d039242f2 \
- file://lib/arm/math.c;beginline=4;endline=10;md5=64dd1987cee1dcf59d11aa572cfa644e \
- file://lib/arm/initplat.c;beginline=4;endline=10;md5=64dd1987cee1dcf59d11aa572cfa644e \
- file://lib/arm/lib1funcs.S;beginline=9;endline=33;md5=f56d5ebbc87136bc66cfe24db82bcf01 \
- file://lib/aarch64/math.c;beginline=9;endline=33;md5=cfade4c560e033a7bb02dab282872c7d \
- file://lib/aarch64/initplat.c;beginline=9;endline=33;md5=900cb1ffbe3e1ded344102be921830f1 \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
- file://parallel-make-archives.patch \
- file://lib-Makefile-fix-parallel-issue.patch \
- file://gnu-efi-Make-setjmp.S-portable-to-ARM.patch \
- file://gcc46-compatibility.patch \
- "
-
-SRC_URI[md5sum] = "15a4bcbc18a9a5e8110ed955970622e6"
-SRC_URI[sha256sum] = "c530f21a15fd9c214dd92d29a6caa20fac989289267512020b6da1f5e6f5b4cb"
-
-COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
-
-def gnu_efi_arch(d):
- import re
- tarch = d.getVar("TARGET_ARCH", True)
- if re.match("i[3456789]86", tarch):
- return "ia32"
- return tarch
-
-EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \
- 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \
- "
-
-do_install() {
- oe_runmake install INSTALLROOT="${D}"
-}
-
-FILES_${PN} += "${libdir}/*.lds"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.4.bb b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.4.bb
new file mode 100644
index 000000000..e0d8ee76d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.4.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Libraries for producing EFI binaries"
+HOMEPAGE = "http://sourceforge.net/projects/gnu-efi/"
+SECTION = "devel"
+LICENSE = "GPLv2+ | BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://gnuefi/crt0-efi-arm.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \
+ file://gnuefi/crt0-efi-aarch64.S;beginline=4;endline=16;md5=e582764a4776e60c95bf9ab617343d36 \
+ file://inc/efishellintf.h;beginline=13;endline=20;md5=202766b79d708eff3cc70fce15fb80c7 \
+ file://inc/efishellparm.h;beginline=4;endline=11;md5=468b1231b05bbc84bae3a0d5774e3bb5 \
+ file://lib/arm/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
+ file://lib/arm/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
+ file://lib/aarch64/math.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
+ file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
+ "
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
+ file://parallel-make-archives.patch \
+ file://lib-Makefile-fix-parallel-issue.patch \
+ file://gcc46-compatibility.patch \
+ file://aarch64-initplat.c-fix-const-qualifier.patch \
+ "
+
+SRC_URI[md5sum] = "612e0f327f31c4b8468ef55f4eeb9649"
+SRC_URI[sha256sum] = "51a00428c3ccb96db24089ed8394843c4f83cf8f42c6a4dfddb4b7c23f2bf8af"
+
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
+COMPATIBLE_HOST_armv4 = 'null'
+
+def gnu_efi_arch(d):
+ import re
+ tarch = d.getVar("TARGET_ARCH", True)
+ if re.match("i[3456789]86", tarch):
+ return "ia32"
+ return tarch
+
+EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \
+ 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \
+ "
+
+# gnu-efi's Makefile treats prefix as toolchain prefix, so don't
+# export it.
+prefix[unexport] = "1"
+
+do_install() {
+ oe_runmake install INSTALLROOT="${D}"
+}
+
+FILES_${PN} += "${libdir}/*.lds"
+
+BBCLASSEXTEND = "native"
+
+# It doesn't support sse, its make.defaults sets:
+# CFLAGS += -mno-mmx -mno-sse
+# So also remove -mfpmath=sse from TUNE_CCARGS
+TUNE_CCARGS_remove = "-mfpmath=sse"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch
new file mode 100644
index 000000000..6ec2363ae
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch
@@ -0,0 +1,39 @@
+From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001
+From: Vladimir Serbinenko <phcoder@gmail.com>
+Date: Thu, 7 Nov 2013 01:01:47 +0100
+Subject: [PATCH] * grub-core/gettext/gettext.c (main_context),
+ (secondary_context): Define after defining type and not before.
+
+---
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport
+
+ ChangeLog | 5 +++++
+ grub-core/gettext/gettext.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
+index df73570..4880cef 100644
+--- a/grub-core/gettext/gettext.c
++++ b/grub-core/gettext/gettext.c
+@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+");
+ http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html .
+ */
+
+-static struct grub_gettext_context main_context, secondary_context;
+-
+ static const char *(*grub_gettext_original) (const char *s);
+
+ struct grub_gettext_msg
+@@ -69,6 +67,8 @@ struct grub_gettext_context
+ struct grub_gettext_msg *grub_gettext_msg_list;
+ };
+
++static struct grub_gettext_context main_context, secondary_context;
++
+ #define MO_MAGIC_NUMBER 0x950412de
+
+ static grub_err_t
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fix-enable_execute_stack-check.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fix-enable_execute_stack-check.patch
index 09ef4dbff..1ff3c1ca0 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fix-enable_execute_stack-check.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fix-enable_execute_stack-check.patch
@@ -10,7 +10,7 @@ cc1: all warnings being treated as errors
configure:20323: $? = 1
configure:20327: error: ccache i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow failed to produce assembly code
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/04/13
Index: grub-2.00/acinclude.m4
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fpmath-sse-387-fix.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fpmath-sse-387-fix.patch
index c557f13e2..dd30d94b7 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fpmath-sse-387-fix.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-2.00-fpmath-sse-387-fix.patch
@@ -6,7 +6,7 @@ configure:20574: i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic
conftest.c:1:0: error: SSE instruction set disabled, using 387 arithmetics [-Werror]
cc1: all warnings being treated as errors
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/04/13
Index: grub-1.99/configure.ac
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch
new file mode 100644
index 000000000..935c472cf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub-module-explicitly-keeps-symbole-.module_license.patch
@@ -0,0 +1,61 @@
+From 7461a3de38b66edbe2f5593f9bdab9f2704d32bc Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 17 Aug 2016 04:06:34 -0400
+Subject: [PATCH] grub module explicitly keeps symbole .module_license
+
+While using oe-core toolchain to strip grub module 'all_video.mod',
+it stripped symbol table:
+--------------
+root@localhost:~# objdump -t all_video.mod
+
+all_video.mod: file format elf64-x86-64
+
+SYMBOL TABLE:
+no symbols
+--------------
+
+It caused grub to load module all_video failed.
+--------------
+grub> insmod all_video
+error: no symbol table.
+--------------
+
+Tweak strip option to keep symbol .module_license could workaround
+the issue.
+--------------
+root@localhost:~# objdump -t all_video.mod
+
+all_video.mod: file format elf64-x86-64
+
+SYMBOL TABLE:
+0000000000000000 l d .text 0000000000000000 .text
+0000000000000000 l d .data 0000000000000000 .data
+0000000000000000 l d .module_license 0000000000000000 .module_license
+0000000000000000 l d .bss 0000000000000000 .bss
+0000000000000000 l d .moddeps 0000000000000000 .moddeps
+0000000000000000 l d .modname 0000000000000000 .modname
+--------------
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ grub-core/genmod.sh.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in
+index 76df0bb..39a9cfc 100644
+--- a/grub-core/genmod.sh.in
++++ b/grub-core/genmod.sh.in
+@@ -59,7 +59,7 @@ if test x@TARGET_APPLE_CC@ != x1; then
+ if test x@platform@ != xemu; then
+ @STRIP@ --strip-unneeded \
+ -K grub_mod_init -K grub_mod_fini \
+- -K _grub_mod_init -K _grub_mod_fini \
++ -K _grub_mod_init -K _grub_mod_fini -K .module_license \
+ -R .note.gnu.gold-version -R .note.GNU-stack \
+ -R .note -R .comment $tmpfile || exit 1
+ fi
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch
index 6259a1abe..5168d3ca5 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/files/grub2-remove-sparc64-setup-from-x86-builds.patch
@@ -1,104 +1,44 @@
+Subject: [PATCH] grub2: remove grub-sparc64-setup from x86 builds
+
+* remove the grub-sparc64-setup files from the x86 builds.
+
Upstream-Status: Inappropriate [embedded specific]
-remove the grub-sparc64-setup files from the x86 builds.
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.util.def | 18 ------------------
+ 1 file changed, 18 deletions(-)
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+diff --git a/Makefile.util.def b/Makefile.util.def
+index b80187c..a670cf2 100644
+--- a/Makefile.util.def
++++ b/Makefile.util.def
+@@ -321,24 +321,6 @@ program = {
+ };
+
+ program = {
+- name = grub-sparc64-setup;
+- installdir = sbin;
+- mansection = 8;
+- common = util/grub-setup.c;
+- common = util/lvm.c;
+- common = grub-core/kern/emu/argp_common.c;
+- common = grub-core/lib/reed_solomon.c;
+- common = util/ieee1275/ofpath.c;
+-
+- ldadd = libgrubmods.a;
+- ldadd = libgrubkern.a;
+- ldadd = libgrubgcry.a;
+- ldadd = grub-core/gnulib/libgnu.a;
+- ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
+- cppflags = '-DGRUB_SETUP_SPARC64=1';
+-};
+-
+-program = {
+ name = grub-ofpathname;
+ installdir = sbin;
+ mansection = 8;
+--
+2.8.1
---- a/Makefile.util.am 2014-08-15 11:41:02.441011278 -0700
-+++ b/Makefile.util.am 2014-08-15 11:44:26.245021142 -0700
-@@ -4692,9 +4692,9 @@
- endif
-
- if COND_emu
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4715,9 +4715,9 @@
- endif
-
- if COND_i386_pc
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4738,9 +4738,9 @@
- endif
-
- if COND_i386_efi
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4761,9 +4761,9 @@
- endif
-
- if COND_i386_qemu
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4784,9 +4784,9 @@
- endif
-
- if COND_i386_coreboot
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4807,9 +4807,9 @@
- endif
-
- if COND_i386_multiboot
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4830,9 +4830,9 @@
- endif
-
- if COND_i386_ieee1275
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
-@@ -4853,9 +4853,9 @@
- endif
-
- if COND_x86_64_efi
--sbin_PROGRAMS += grub-sparc64-setup
-+sbin_PROGRAMS +=
- if COND_MAN_PAGES
--man_MANS += grub-sparc64-setup.8
-+man_MANS +=
-
- grub-sparc64-setup.8: grub-sparc64-setup
- chmod a+x grub-sparc64-setup
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
index 87ec29e32..ce3238f3a 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
@@ -20,7 +20,7 @@ conftest.c:1:0: error: SSE instruction set disabled, using 387
arithmetics [-Werror]
cc1: all warnings being treated as errors
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub2.inc b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub2.inc
index 146dde60c..b10f633aa 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub2.inc
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub2.inc
@@ -12,6 +12,7 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
+ file://grub-module-explicitly-keeps-symbole-.module_license.patch \
file://grub-2.00-fpmath-sse-387-fix.patch \
file://check-if-liblzma-is-disabled.patch \
file://fix-issue-with-flex-2.5.37.patch \
@@ -30,9 +31,10 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \
file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
file://fix-texinfo.patch \
+ file://0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch \
"
-DEPENDS = "flex-native bison-native"
+DEPENDS = "flex-native bison-native autogen-native"
SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"
SRC_URI[sha256sum] = "65b39a0558f8c802209c574f4d02ca263a804e8a564bc6caf1cd0fd3b3cc11e3"
@@ -59,11 +61,10 @@ do_configure_prepend() {
# for its own purposes. Remove the OE versions from the environment to
# avoid conflicts.
unset TARGET_CPPFLAGS TARGET_CFLAGS TARGET_CXXFLAGS TARGET_LDFLAGS
+ ( cd ${S}
+ ${S}/autogen.sh )
}
# grub and grub-efi's sysroot/${datadir}/grub/grub-mkconfig_lib are
# conflicted, remove it since no one uses it.
-SYSROOT_PREPROCESS_FUNCS_class-target += "remove_sysroot_mkconfig_lib"
-remove_sysroot_mkconfig_lib() {
- rm -r "${SYSROOT_DESTDIR}${datadir}/grub/grub-mkconfig_lib"
-}
+SYSROOT_DIRS_BLACKLIST += "${datadir}/grub/grub-mkconfig_lib"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_2.00.bb b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_2.00.bb
index 778074a38..07e1d101b 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_2.00.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_2.00.bb
@@ -1,6 +1,6 @@
require grub2.inc
-RDEPENDS_${PN} = "diffutils freetype"
+RDEPENDS_${PN} = "diffutils freetype grub-editenv"
PR = "r1"
EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \
@@ -8,6 +8,10 @@ EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \
EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile', '--disable-largefile', d)}"
+PACKAGES =+ "grub-editenv"
+
+FILES_grub-editenv = "${bindir}/grub-editenv"
+
do_install_append () {
install -d ${D}${sysconfdir}/grub.d
}
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_git.bb b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_git.bb
index 6919c9a35..493b6956e 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/grub/grub_git.bb
@@ -1,14 +1,12 @@
require grub2.inc
-DEPENDS += "autogen-native"
-
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_arm = "1"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/grub-git:"
PV = "2.00+${SRCPV}"
-SRCREV = "b95e92678882f56056c64ae29092bc9cf129905f"
+SRCREV = "7a5b301e3adb8e054288518a325135a1883c1c6c"
SRC_URI = "git://git.savannah.gnu.org/grub.git \
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
file://autogen.sh-exclude-pc.patch \
@@ -18,6 +16,7 @@ SRC_URI = "git://git.savannah.gnu.org/grub.git \
S = "${WORKDIR}/git"
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
+COMPATIBLE_HOST_armv7a = 'null'
inherit autotools gettext texinfo
@@ -33,11 +32,6 @@ EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-
EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile', '--disable-largefile', d)}"
-do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
-
do_install_append () {
install -d ${D}${sysconfdir}/grub.d
rm -rf ${D}${libdir}/charset.alias
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/libacpi_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/libacpi_fix_for_x32.patch
index 2fed344ba..86a16c262 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/libacpi_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/libacpi_fix_for_x32.patch
@@ -7,7 +7,7 @@ Fix libacpi for x32
Patch Received from: H.J. Lu <hjl.tools@gmail.com>
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/05
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/05
Index: libacpi-0.2/Makefile
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/use_correct_strip_in_cross_environment.patch b/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/use_correct_strip_in_cross_environment.patch
index bca75fb47..ef376aa31 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/use_correct_strip_in_cross_environment.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/libacpi/files/use_correct_strip_in_cross_environment.patch
@@ -6,7 +6,7 @@ Used the cross strip instead of host strip to avoid this build error:
| make: *** [test-libacpi] Error 1
| ERROR: oe_runmake failed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/07
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/07
Index: libacpi-0.2/Makefile
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch
index b4529f4c7..682f1c9c8 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-bsp/lrzsz/lrzsz-0.12.20/lrzsz_fix_for_automake-1.12.patch
@@ -9,7 +9,7 @@ This patch fixes following issue with automake 1.12
| src/Makefile.am:11: error: automatic de-ANSI-fication support has been removed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/03
Index: lrzsz-0.12.20/configure.in
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.4.1.bb b/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.4.1.bb
deleted file mode 100644
index 33be525c5..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.4.1.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "PCI utilities"
-DESCRIPTION = 'The PCI Utilities package contains a library for portable access \
-to PCI bus configuration space and several utilities based on this library.'
-HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml"
-SECTION = "console/utils"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "zlib kmod"
-
-SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz \
- file://configure.patch \
- file://guess-fix.patch \
- file://makefile.patch"
-
-SRC_URI[md5sum] = "35763bb1eab7bc9bf6eb6efb72cbc8a1"
-SRC_URI[sha256sum] = "865554cc5604d1644bd8da38d94845405e2a319a6d5acabc6a0296417684a82a"
-
-inherit multilib_header
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'hwdb', '', d)}"
-PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev"
-
-PCI_CONF_FLAG = "ZLIB=yes DNS=yes SHARED=yes"
-
-# see configure.patch
-do_configure () {
- (
- cd lib && \
- # EXTRA_OECONF for this recipe could only possibly contain 'HWDB=yes/no', so we put it
- # before ./configure
- ${PCI_CONF_FLAG} ${EXTRA_OECONF} ./configure ${PV} ${datadir} ${TARGET_OS} ${TARGET_ARCH}
- )
-}
-
-export PREFIX = "${prefix}"
-export SBINDIR = "${sbindir}"
-export SHAREDIR = "${datadir}"
-export MANDIR = "${mandir}"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS= ${PCI_CONF_FLAG}"
-
-# The configure script breaks if the HOST variable is set
-HOST[unexport] = "1"
-
-do_install () {
- oe_runmake DESTDIR=${D} install install-lib
-
- install -d ${D}${bindir}
- ln -s ../sbin/lspci ${D}${bindir}/lspci
-
- oe_multilib_header pci/config.h
-}
-
-PACKAGES =+ "${PN}-ids libpci"
-FILES_${PN}-ids = "${datadir}/pci.ids*"
-FILES_libpci = "${libdir}/libpci.so.*"
-SUMMARY_${PN}-ids = "PCI utilities - device ID database"
-DESCRIPTION_${PN}-ids = "Package providing the PCI device ID database for pciutils."
-RDEPENDS_${PN} += "${PN}-ids"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.5.1.bb b/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.5.1.bb
new file mode 100644
index 000000000..d32b11942
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/pciutils/pciutils_3.5.1.bb
@@ -0,0 +1,60 @@
+SUMMARY = "PCI utilities"
+DESCRIPTION = 'The PCI Utilities package contains a library for portable access \
+to PCI bus configuration space and several utilities based on this library.'
+HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml"
+SECTION = "console/utils"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "zlib kmod"
+
+SRC_URI = "${KERNELORG_MIRROR}/software/utils/pciutils/pciutils-${PV}.tar.xz \
+ file://configure.patch \
+ file://guess-fix.patch \
+ file://makefile.patch"
+
+SRC_URI[md5sum] = "0879a8f7ac51f4e874cfc6b3521a13cc"
+SRC_URI[sha256sum] = "2bf3a4605a562fb6b8b7673bff85a474a5cf383ed7e4bd8886b4f0939013d42f"
+
+inherit multilib_header
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'hwdb', '', d)}"
+PACKAGECONFIG[hwdb] = "HWDB=yes,HWDB=no,udev"
+
+PCI_CONF_FLAG = "ZLIB=yes DNS=yes SHARED=yes"
+
+# see configure.patch
+do_configure () {
+ (
+ cd lib && \
+ # PACKAGECONFIG_CONFARGS for this recipe could only possibly contain 'HWDB=yes/no',
+ # so we put it before ./configure
+ ${PCI_CONF_FLAG} ${PACKAGECONFIG_CONFARGS} ./configure ${PV} ${datadir} ${TARGET_OS} ${TARGET_ARCH}
+ )
+}
+
+export PREFIX = "${prefix}"
+export SBINDIR = "${sbindir}"
+export SHAREDIR = "${datadir}"
+export MANDIR = "${mandir}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS= ${PCI_CONF_FLAG}"
+
+# The configure script breaks if the HOST variable is set
+HOST[unexport] = "1"
+
+do_install () {
+ oe_runmake DESTDIR=${D} install install-lib
+
+ install -d ${D}${bindir}
+ ln -s ../sbin/lspci ${D}${bindir}/lspci
+
+ oe_multilib_header pci/config.h
+}
+
+PACKAGES =+ "${PN}-ids libpci"
+FILES_${PN}-ids = "${datadir}/pci.ids*"
+FILES_libpci = "${libdir}/libpci.so.*"
+SUMMARY_${PN}-ids = "PCI utilities - device ID database"
+DESCRIPTION_${PN}-ids = "Package providing the PCI device ID database for pciutils."
+RDEPENDS_${PN} += "${PN}-ids"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pcmciautils/pcmciautils_018.bb b/import-layers/yocto-poky/meta/recipes-bsp/pcmciautils/pcmciautils_018.bb
index 3556a45cf..bf0f58a7c 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/pcmciautils/pcmciautils_018.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/pcmciautils/pcmciautils_018.bb
@@ -9,5 +9,3 @@ SRC_URI[md5sum] = "885431c3cefb76ffdad8cb985134e996"
SRC_URI[sha256sum] = "57c27be8f04ef4d535bcfa988567316cc57659fe69068327486dab53791e6558"
PR = "r1"
-
-FILES_${PN} += "*/udev */*/udev"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/COPYING b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/COPYING
deleted file mode 100644
index 63f529381..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/COPYING
+++ /dev/null
@@ -1,2 +0,0 @@
-This is a blank COPYING file, and should be filled in by original author in future.
-
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarm/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
deleted file mode 100644
index abd84ca4b..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarm/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-8313 4 -8526 7 8334 -82604 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
deleted file mode 100644
index abd84ca4b..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv6/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-8313 4 -8526 7 8334 -82604 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
deleted file mode 100644
index abd84ca4b..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuarmv7/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-8313 4 -8526 7 8334 -82604 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemumips/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemumips/pointercal
deleted file mode 100644
index abd84ca4b..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemumips/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-8313 4 -8526 7 8334 -82604 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuppc/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuppc/pointercal
deleted file mode 100644
index c2d6e37bf..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemuppc/pointercal
+++ /dev/null
Binary files differ
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
deleted file mode 100644
index 640053d39..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86-64/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-1280 0 1002 0 960 328 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86/pointercal b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86/pointercal
deleted file mode 100644
index 640053d39..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal/qemux86/pointercal
+++ /dev/null
@@ -1 +0,0 @@
-1280 0 1002 0 960 328 65536
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal_0.0.bb b/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal_0.0.bb
deleted file mode 100644
index df735a59f..000000000
--- a/import-layers/yocto-poky/meta/recipes-bsp/pointercal/pointercal_0.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Touchscreen calibration data"
-SECTION = "base"
-PR = "r11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4b5fcfc87fb615860d398b5e38685edf"
-
-SRC_URI = "file://pointercal \
- file://COPYING"
-
-S = "${WORKDIR}"
-
-do_install() {
- # Only install file if it has a contents
- if [ -s ${S}/pointercal ]; then
- install -d ${D}${sysconfdir}/
- install -m 0644 ${S}/pointercal ${D}${sysconfdir}/
- fi
-}
-
-ALLOW_EMPTY_${PN} = "1"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-INHIBIT_DEFAULT_DEPS = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/files/0001-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch b/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/files/0001-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
new file mode 100644
index 000000000..103d2861e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/files/0001-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch
@@ -0,0 +1,61 @@
+From 9dcd2c80347493f73800d8c1cb539f1daef14394 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 26 Jul 2016 03:54:42 -0400
+Subject: [PATCH] use lnr wrapper instead of looking for --relative option for ln
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ Makefile.am | 6 +++---
+ configure.ac | 2 --
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 305099a..f08d023 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -247,7 +247,7 @@ define move-to-rootlibdir
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
+ so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \
+ rm -f $(DESTDIR)$(libdir)/$$libname && \
+- $(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
++ lnr $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
+ mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \
+ fi
+ endef
+@@ -321,7 +321,7 @@ define install-relative-aliases
+ while [ -n "$$1" ]; do \
+ $(MKDIR_P) `dirname $(DESTDIR)$$dir/$$2` && \
+ rm -f $(DESTDIR)$$dir/$$2 && \
+- $(LN_S) --relative $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
++ lnr $(DESTDIR)$$1 $(DESTDIR)$$dir/$$2 && \
+ shift 2 || exit $$?; \
+ done
+ endef
+@@ -2906,7 +2906,7 @@ systemd_dbus1_generator_LDADD = \
+ dbus1-generator-install-hook:
+ $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(usergeneratordir)
+ $(AM_V_RM)rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
+- $(AM_V_LN)$(LN_S) --relative -f $(DESTDIR)$(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
++ $(AM_V_LN)lnr $(DESTDIR)$(systemgeneratordir)/systemd-dbus1-generator $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
+
+ dbus1-generator-uninstall-hook:
+ rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator
+diff --git a/configure.ac b/configure.ac
+index 329861a..52c6e3d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -110,8 +110,6 @@ AC_PATH_PROG([SULOGIN], [sulogin], [/usr/sbin/sulogin], [$PATH:/usr/sbin:/sbin])
+ AC_PATH_PROG([MOUNT_PATH], [mount], [/usr/bin/mount], [$PATH:/usr/sbin:/sbin])
+ AC_PATH_PROG([UMOUNT_PATH], [umount], [/usr/bin/umount], [$PATH:/usr/sbin:/sbin])
+
+-AS_IF([! ln --relative --help > /dev/null 2>&1], [AC_MSG_ERROR([*** ln doesn't support --relative ***])])
+-
+ M4_DEFINES=
+
+ AC_CHECK_TOOL(OBJCOPY, objcopy)
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/systemd-boot.bb b/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/systemd-boot.bb
new file mode 100644
index 000000000..5b1164ec9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/systemd-boot/systemd-boot.bb
@@ -0,0 +1,38 @@
+require recipes-core/systemd/systemd.inc
+
+DEPENDS = "intltool-native libcap util-linux gnu-efi"
+
+SRC_URI += "file://0001-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch"
+
+inherit autotools pkgconfig gettext
+inherit deploy
+
+EXTRA_OECONF = " --enable-gnuefi \
+ --with-efi-includedir=${STAGING_INCDIR} \
+ --with-efi-ldsdir=${STAGING_LIBDIR} \
+ --with-efi-libdir=${STAGING_LIBDIR} \
+ --disable-manpages \
+ "
+
+# Imported from gummiboot recipe
+TUNE_CCARGS_remove = "-mfpmath=sse"
+COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
+
+do_compile() {
+ SYSTEMD_BOOT_EFI_ARCH="ia32"
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ SYSTEMD_BOOT_EFI_ARCH="x64"
+ fi
+
+ oe_runmake systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi
+}
+
+do_install() {
+ # Bypass systemd installation with a NOP
+ :
+}
+
+do_deploy () {
+ install ${B}/systemd-boot*.efi ${DEPLOYDIR}
+}
+addtask deploy before do_build after do_compile
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2016.03.bb b/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2016.03.bb
index dfda5c1d3..79f1548ef 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2016.03.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot-fw-utils_2016.03.bb
@@ -40,10 +40,7 @@ do_install_class-cross () {
install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
}
-SYSROOT_PREPROCESS_FUNCS_class-cross = "uboot_fw_utils_cross"
-uboot_fw_utils_cross() {
- sysroot_stage_dir ${D}${bindir_cross} ${SYSROOT_DESTDIR}${bindir_cross}
-}
+SYSROOT_DIRS_append_class-cross = " ${bindir_cross}"
PACKAGE_ARCH = "${MACHINE_ARCH}"
BBCLASSEXTEND = "cross"
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot.inc b/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot.inc
index 3ba866de0..252aae945 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/import-layers/yocto-poky/meta/recipes-bsp/u-boot/u-boot.inc
@@ -9,10 +9,11 @@ LIC_FILES_CHKSUM = "file://Licenses/README;md5=a2c678cfd4a4d97135585cad908541c6"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master"
S = "${WORKDIR}/git"
+B = "${WORKDIR}/build"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit uboot-config deploy
+inherit uboot-config uboot-extlinux-config uboot-sign deploy
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" V=1'
EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
@@ -32,7 +33,6 @@ UBOOT_LOCALVERSION ?= ""
# but enable individual recipes to change this value.
UBOOT_SUFFIX ??= "bin"
UBOOT_IMAGE ?= "u-boot-${MACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
-UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
UBOOT_SYMLINK ?= "u-boot-${MACHINE}.${UBOOT_SUFFIX}"
UBOOT_MAKE_TARGET ?= "all"
@@ -65,9 +65,15 @@ UBOOT_ENV_BINARY ?= "${UBOOT_ENV}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_IMAGE ?= "${UBOOT_ENV}-${MACHINE}-${PV}-${PR}.${UBOOT_ENV_SUFFIX}"
UBOOT_ENV_SYMLINK ?= "${UBOOT_ENV}-${MACHINE}.${UBOOT_ENV_SUFFIX}"
+# U-Boot EXTLINUX variables. U-Boot searches for /boot/extlinux/extlinux.conf
+# to find EXTLINUX conf file.
+UBOOT_EXTLINUX_INSTALL_DIR ?= "/boot/extlinux"
+UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf"
+UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}"
+
do_compile () {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
- sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' config.mk
+ sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk
fi
unset LDFLAGS
@@ -79,41 +85,48 @@ do_compile () {
echo ${UBOOT_LOCALVERSION} > ${B}/.scmversion
echo ${UBOOT_LOCALVERSION} > ${S}/.scmversion
fi
-
- if [ "x${UBOOT_CONFIG}" != "x" ]
+
+ if [ -n "${UBOOT_CONFIG}" ]
then
+ unset i j k
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
- for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ i=$(expr $i + 1);
+ for type in ${UBOOT_CONFIG}; do
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
- oe_runmake O=${config} ${config}
- oe_runmake O=${config} ${UBOOT_MAKE_TARGET}
- cp ${S}/${config}/${UBOOT_BINARY} ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
+ oe_runmake -C ${S} O=${B}/${config} ${config}
+ oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET}
+ for binary in ${UBOOT_BINARIES}; do
+ k=$(expr $k + 1);
+ if [ $k -eq $i ]; then
+ cp ${B}/${config}/${binary} ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX}
+ fi
+ done
+ unset k
fi
done
unset j
done
unset i
else
- oe_runmake ${UBOOT_MACHINE}
- oe_runmake ${UBOOT_MAKE_TARGET}
+ oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE}
+ oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET}
fi
}
do_install () {
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
install -d ${D}/boot
- install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
+ install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${D}/boot/${UBOOT_BINARY}
fi
@@ -123,21 +136,21 @@ do_install () {
unset i
else
install -d ${D}/boot
- install ${S}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ install -m 644 ${B}/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
fi
- if [ "x${UBOOT_ELF}" != "x" ]
+ if [ -n "${UBOOT_ELF}" ]
then
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install ${S}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
+ install -m 644 ${B}/${config}/${UBOOT_ELF} ${D}/boot/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${D}/boot/${UBOOT_BINARY}
fi
@@ -146,7 +159,7 @@ do_install () {
done
unset i
else
- install ${S}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
+ install -m 644 ${B}/${UBOOT_ELF} ${D}/boot/${UBOOT_ELF_IMAGE}
ln -sf ${UBOOT_ELF_IMAGE} ${D}/boot/${UBOOT_ELF_BINARY}
fi
fi
@@ -156,17 +169,17 @@ do_install () {
install -m 644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
fi
- if [ "x${SPL_BINARY}" != "x" ]
+ if [ -n "${SPL_BINARY}" ]
then
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install ${S}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
+ install -m 644 ${B}/${config}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}-${type}-${PV}-${PR}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${D}/boot/${SPL_BINARYNAME}
fi
@@ -175,61 +188,67 @@ do_install () {
done
unset i
else
- install ${S}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
+ install -m 644 ${B}/${SPL_BINARY} ${D}/boot/${SPL_IMAGE}
ln -sf ${SPL_IMAGE} ${D}/boot/${SPL_BINARYNAME}
fi
fi
- if [ "x${UBOOT_ENV}" != "x" ]
+ if [ -n "${UBOOT_ENV}" ]
then
- install ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
+ install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${D}/boot/${UBOOT_ENV_IMAGE}
ln -sf ${UBOOT_ENV_IMAGE} ${D}/boot/${UBOOT_ENV_BINARY}
fi
+
+ if [ "${UBOOT_EXTLINUX}" = "1" ]
+ then
+ install -Dm 0644 ${UBOOT_EXTLINUX_CONFIG} ${D}/${UBOOT_EXTLINUX_INSTALL_DIR}/${UBOOT_EXTLINUX_CONF_NAME}
+ fi
+
}
FILES_${PN} = "/boot ${sysconfdir}"
do_deploy () {
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
install -d ${DEPLOYDIR}
- install ${S}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
+ install -m 644 ${B}/${config}/u-boot-${type}.${UBOOT_SUFFIX} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX}
cd ${DEPLOYDIR}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_SYMLINK}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_SUFFIX} ${UBOOT_BINARY}
- fi
- done
+ fi
+ done
unset j
done
unset i
else
install -d ${DEPLOYDIR}
- install ${S}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ install -m 644 ${B}/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
cd ${DEPLOYDIR}
rm -f ${UBOOT_BINARY} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_SYMLINK}
ln -sf ${UBOOT_IMAGE} ${UBOOT_BINARY}
fi
- if [ "x${UBOOT_ELF}" != "x" ]
+ if [ -n "${UBOOT_ELF}" ]
then
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install ${S}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
+ install -m 644 ${B}/${config}/${UBOOT_ELF} ${DEPLOYDIR}/u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}-${type}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
ln -sf u-boot-${type}-${PV}-${PR}.${UBOOT_ELF_SUFFIX} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}-${type}
@@ -240,24 +259,24 @@ do_deploy () {
done
unset i
else
- install ${S}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
+ install -m 644 ${B}/${UBOOT_ELF} ${DEPLOYDIR}/${UBOOT_ELF_IMAGE}
ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_BINARY}
ln -sf ${UBOOT_ELF_IMAGE} ${DEPLOYDIR}/${UBOOT_ELF_SYMLINK}
fi
fi
- if [ "x${SPL_BINARY}" != "x" ]
+ if [ -n "${SPL_BINARY}" ]
then
- if [ "x${UBOOT_CONFIG}" != "x" ]
+ if [ -n "${UBOOT_CONFIG}" ]
then
for config in ${UBOOT_MACHINE}; do
- i=`expr $i + 1`;
+ i=$(expr $i + 1);
for type in ${UBOOT_CONFIG}; do
- j=`expr $j + 1`;
+ j=$(expr $j + 1);
if [ $j -eq $i ]
then
- install ${S}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
+ install -m 644 ${B}/${config}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}-${type}-${PV}-${PR}
rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}-${type}
ln -sf ${SPL_IMAGE}-${type}-${PV}-${PR} ${DEPLOYDIR}/${SPL_BINARYNAME}
@@ -269,7 +288,7 @@ do_deploy () {
done
unset i
else
- install ${S}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
+ install -m 644 ${B}/${SPL_BINARY} ${DEPLOYDIR}/${SPL_IMAGE}
rm -f ${DEPLOYDIR}/${SPL_BINARYNAME} ${DEPLOYDIR}/${SPL_SYMLINK}
ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_BINARYNAME}
ln -sf ${SPL_IMAGE} ${DEPLOYDIR}/${SPL_SYMLINK}
@@ -277,13 +296,20 @@ do_deploy () {
fi
- if [ "x${UBOOT_ENV}" != "x" ]
+ if [ -n "${UBOOT_ENV}" ]
then
- install ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
+ install -m 644 ${WORKDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_IMAGE}
rm -f ${DEPLOYDIR}/${UBOOT_ENV_BINARY} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_BINARY}
ln -sf ${UBOOT_ENV_IMAGE} ${DEPLOYDIR}/${UBOOT_ENV_SYMLINK}
fi
+
+ if [ "${UBOOT_EXTLINUX}" = "1" ]
+ then
+ install -m 644 ${UBOOT_EXTLINUX_CONFIG} ${DEPLOYDIR}/${UBOOT_EXTLINUX_SYMLINK}
+ ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}
+ ln -sf ${UBOOT_EXTLINUX_SYMLINK} ${DEPLOYDIR}/${UBOOT_EXTLINUX_CONF_NAME}
+ fi
}
addtask deploy before do_build after do_compile
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d/aarch64-host.patch b/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d/aarch64-host.patch
new file mode 100644
index 000000000..701fed7b5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d/aarch64-host.patch
@@ -0,0 +1,18 @@
+Accept aarch64 as valid build host
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: v86d-0.1.10/configure
+===================================================================
+--- v86d-0.1.10.orig/configure
++++ v86d-0.1.10/configure
+@@ -26,7 +26,7 @@ copt_x86emu_test()
+ local m=`uname -m`
+ if [ "$m" = "i686" -o "$m" = "i586" -o "$m" = "i486" -o "$m" = "i386" ]; then
+ echo "n";
+- elif [ "$m" = "x86_64" ]; then
++ elif [ "$m" = "x86_64" -o "$m" = "aarch64" ]; then
+ echo "y";
+ else
+ echo "It looks like your architecture '$m' isn't supported by this version of v86d." >&2
diff --git a/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb b/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
index f50207212..1046d6341 100644
--- a/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
+++ b/import-layers/yocto-poky/meta/recipes-bsp/v86d/v86d_0.1.10.bb
@@ -13,7 +13,9 @@ SRC_URI = "http://distfiles.gentoo.org/distfiles/${BP}.tar.bz2 \
file://Update-x86emu-from-X.org.patch \
file://fbsetup \
file://uvesafb.conf \
- file://ar-from-env.patch"
+ file://ar-from-env.patch \
+ file://aarch64-host.patch \
+"
SRC_URI[md5sum] = "51c792ba7b874ad8c43f0d3da4cfabe0"
SRC_URI[sha256sum] = "634964ae18ef68c8493add2ce150e3b4502badeb0d9194b4bd81241d25e6735c"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi-ui_0.6.32.bb b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi-ui_0.6.32.bb
index 3966b4c6e..ac364618e 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi-ui_0.6.32.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi-ui_0.6.32.bb
@@ -6,22 +6,20 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
require avahi.inc
-inherit python-dir pythonnative distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-PACKAGECONFIG ??= "dbus python"
-PACKAGECONFIG[python] = "--enable-python,--disable-python,python-native python"
+inherit distro_features_check
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+SRC_URI += "file://0001-configure.ac-install-GtkBuilder-interface-files-for-.patch"
SRC_URI[md5sum] = "22b5e705d3eabb31d26f2e1e7b074013"
SRC_URI[sha256sum] = "d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454"
-DEPENDS += "avahi gtk+ libglade"
+DEPENDS += "avahi"
-AVAHI_GTK = "--enable-gtk --disable-gtk3 --disable-pygtk"
+AVAHI_GTK = "gtk3"
S = "${WORKDIR}/avahi-${PV}"
-PACKAGES = "${PN} ${PN}-utils ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc python-avahi avahi-discover"
+PACKAGES = "${PN} ${PN}-utils ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc avahi-discover"
FILES_${PN} = "${libdir}/libavahi-ui*.so.*"
FILES_${PN}-dev += "${libdir}/libavahi-ui${SOLIBSDEV}"
@@ -29,14 +27,10 @@ FILES_${PN}-staticdev += "${libdir}/libavahi-ui.a"
FILES_${PN}-utils = "${bindir}/b* ${datadir}/applications/b*"
-FILES_python-avahi = "${PYTHON_SITEPACKAGES_DIR}/avahi ${PYTHON_SITEPACKAGES_DIR}/avahi_discover"
FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \
- ${datadir}/avahi/interfaces/avahi-discover* \
+ ${datadir}/avahi/interfaces/avahi-discover.ui \
${bindir}/avahi-discover-standalone \
- ${datadir}/avahi/interfaces/avahi-discover.glade"
-
-RDEPENDS_python-avahi = "python-core python-dbus"
-
+ "
do_install_append () {
rm ${D}${sysconfdir} -rf
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi.inc b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi.inc
index 81aad7935..234646d29 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi.inc
@@ -23,8 +23,14 @@ SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}
"
UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/"
-PACKAGECONFIG ??= "dbus"
+# For gtk related PACKAGECONFIGs: gtk, gtk3 and pygtk
+AVAHI_GTK ?= ""
+
+PACKAGECONFIG ??= "dbus ${AVAHI_GTK}"
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3"
+PACKAGECONFIG[pygtk] = "--enable-pygtk,--disable-pygtk,"
USERADD_PACKAGES = "avahi-daemon avahi-autoipd"
USERADD_PARAM_avahi-daemon = "--system --home /var/run/avahi-daemon \
@@ -51,14 +57,12 @@ EXTRA_OECONF = "--with-avahi-priv-access-group=adm \
--disable-manpages \
${EXTRA_OECONF_SYSVINIT} \
${EXTRA_OECONF_SYSTEMD} \
- ${AVAHI_GTK} \
"
# The distro choice determines what init scripts are installed
EXTRA_OECONF_SYSVINIT = "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','--with-distro=debian','--with-distro=none',d)}"
EXTRA_OECONF_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES','systemd','--with-systemdsystemunitdir=${systemd_unitdir}/system/','--without-systemdsystemunitdir',d)}"
-AVAHI_GTK ?= "--disable-gtk --disable-gtk3"
LDFLAGS_append_libc-uclibc = " -lintl"
LDFLAGS_append_uclinux-uclibc = " -lintl"
@@ -71,7 +75,7 @@ do_configure_prepend() {
}
do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/avahi-common/.libs:${B}/avahi-client/.libs:${B}/avahi-glib/.libs"
+ export GIR_EXTRA_LIBS_PATH="${B}/avahi-gobject/.libs:${B}/avahi-common/.libs:${B}/avahi-client/.libs:${B}/avahi-glib/.libs"
}
PACKAGES =+ "avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib libavahi-ui avahi-autoipd avahi-utils"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi_0.6.32.bb b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi_0.6.32.bb
index 6670106b1..bfa63044e 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi_0.6.32.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/avahi_0.6.32.bb
@@ -12,6 +12,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://avahi-daemon/main.c;endline=21;md5=9ee77368c5407af77caaef1b07285969 \
file://avahi-client/client.h;endline=23;md5=f4ac741a25c4f434039ba3e18c8674cf"
+SRC_URI += "file://avahi-fix-resource-unavaiable.patch"
+
SRC_URI[md5sum] = "22b5e705d3eabb31d26f2e1e7b074013"
SRC_URI[sha256sum] = "d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/0001-configure.ac-install-GtkBuilder-interface-files-for-.patch b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/0001-configure.ac-install-GtkBuilder-interface-files-for-.patch
new file mode 100644
index 000000000..8ccef08df
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/0001-configure.ac-install-GtkBuilder-interface-files-for-.patch
@@ -0,0 +1,28 @@
+From a59f13fab31a6e25bb03b2c2bc3aea576f857b6c Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Sun, 12 Jun 2016 18:32:49 +0300
+Subject: [PATCH] configure.ac: install GtkBuilder interface files for GTK+3
+ too
+
+Upstream-Status: Pending
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index aebb716..48bdf63 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -965,7 +965,7 @@ AC_SUBST(avahi_socket)
+ #
+ # Avahi interfaces dir
+ #
+-if test "x$HAVE_PYTHON_DBUS" = "xyes" -o "x$HAVE_GTK" = "xyes"; then
++if test "x$HAVE_PYTHON_DBUS" = "xyes" -o "x$HAVE_GTK" = "xyes" -o "x$HAVE_GTK3" = "xyes"; then
+ interfacesdir="${datadir}/${PACKAGE}/interfaces/"
+ AC_SUBST(interfacesdir)
+ fi
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/avahi-fix-resource-unavaiable.patch b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/avahi-fix-resource-unavaiable.patch
new file mode 100644
index 000000000..5a2fd75f5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/avahi/files/avahi-fix-resource-unavaiable.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Backport
+
+Backport from:
+https://github.com/experimental-platform/platform-hostname-avahi/pull/9
+
+It sometimes fails to run avahi with error: "Could not receive return value
+from daemon process". It has same root cause with
+https://github.com/lxc/lxc/issues/25.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From 5150983102ad5ad43f0dae203cb332c168eb5a71 Mon Sep 17 00:00:00 2001
+From: Hinnerk Haardt <haardt@information-control.de>
+Date: Thu, 17 Dec 2015 11:52:19 +0100
+Subject: [PATCH] Fix `chroot.c: fork() failed: Resource temporarily
+ unavailable` as per https://github.com/lxc/lxc/issues/25.
+
+---
+ avahi-daemon/avahi-daemon.conf | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/avahi-daemon/avahi-daemon.conf b/avahi-daemon/avahi-daemon.conf
+index 95166f8..3d5b7a6 100644
+--- a/avahi-daemon/avahi-daemon.conf
++++ b/avahi-daemon/avahi-daemon.conf
+@@ -65,4 +65,3 @@ rlimit-data=4194304
+ rlimit-fsize=0
+ rlimit-nofile=768
+ rlimit-stack=4194304
+-rlimit-nproc=3
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch
index a31ea81f8..5f5cb0d34 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-1286_2.patch
@@ -5,6 +5,9 @@ Subject: [PATCH] Part 2 of: 4319. [security] Fix resolver assertion
failure due to improper DNAME handling when parsing
fetch reply messages. (CVE-2016-1286) [RT #41753]
+CVE: CVE-2016-1286
+Upstream-Status: Backport
+
(cherry picked from commit 2de89ee9de8c8da9dc153a754b02dcdbb7fe2374)
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
---
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2775.patch b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2775.patch
new file mode 100644
index 000000000..5393063c5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2775.patch
@@ -0,0 +1,90 @@
+From 9d8aba8a7778721ae2cee6e4670a8e6be6590b05 Mon Sep 17 00:00:00 2001
+From: Mark Andrews <marka@isc.org>
+Date: Wed, 12 Oct 2016 19:52:59 +0900
+Subject: [PATCH]
+4406. [security] getrrsetbyname with a non absolute name could
+ trigger an infinite recursion bug in lwresd
+ and named with lwres configured if when combined
+ with a search list entry the resulting name is
+ too long. (CVE-2016-2775) [RT #42694]
+
+Backport commit 38cc2d14e218e536e0102fa70deef99461354232 from the
+v9.11.0_patch branch.
+
+CVE: CVE-2016-2775
+Upstream-Status: Backport
+
+Signed-off-by: zhengruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+---
+ CHANGES | 6 ++++++
+ bin/named/lwdgrbn.c | 16 ++++++++++------
+ bin/tests/system/lwresd/lwtest.c | 9 ++++++++-
+ 3 files changed, 24 insertions(+), 7 deletions(-)
+
+diff --git a/CHANGES b/CHANGES
+index d2e3360..d0a9d12 100644
+--- a/CHANGES
++++ b/CHANGES
+@@ -1,3 +1,9 @@
++4406. [security] getrrsetbyname with a non absolute name could
++ trigger an infinite recursion bug in lwresd
++ and named with lwres configured if when combined
++ with a search list entry the resulting name is
++ too long. (CVE-2016-2775) [RT #42694]
++
+ 4322. [security] Duplicate EDNS COOKIE options in a response could
+ trigger an assertion failure. (CVE-2016-2088)
+ [RT #41809]
+diff --git a/bin/named/lwdgrbn.c b/bin/named/lwdgrbn.c
+index 3e7b15b..e1e9adc 100644
+--- a/bin/named/lwdgrbn.c
++++ b/bin/named/lwdgrbn.c
+@@ -403,14 +403,18 @@ start_lookup(ns_lwdclient_t *client) {
+ INSIST(client->lookup == NULL);
+
+ dns_fixedname_init(&absname);
+- result = ns_lwsearchctx_current(&client->searchctx,
+- dns_fixedname_name(&absname));
++
+ /*
+- * This will return failure if relative name + suffix is too long.
+- * In this case, just go on to the next entry in the search path.
++ * Perform search across all search domains until success
++ * is returned. Return in case of failure.
+ */
+- if (result != ISC_R_SUCCESS)
+- start_lookup(client);
++ while (ns_lwsearchctx_current(&client->searchctx,
++ dns_fixedname_name(&absname)) != ISC_R_SUCCESS) {
++ if (ns_lwsearchctx_next(&client->searchctx) != ISC_R_SUCCESS) {
++ ns_lwdclient_errorpktsend(client, LWRES_R_FAILURE);
++ return;
++ }
++ }
+
+ result = dns_lookup_create(cm->mctx,
+ dns_fixedname_name(&absname),
+diff --git a/bin/tests/system/lwresd/lwtest.c b/bin/tests/system/lwresd/lwtest.c
+index ad9b551..3eb4a66 100644
+--- a/bin/tests/system/lwresd/lwtest.c
++++ b/bin/tests/system/lwresd/lwtest.c
+@@ -768,7 +768,14 @@ main(void) {
+ test_getrrsetbyname("e.example1.", 1, 2, 1, 1, 1);
+ test_getrrsetbyname("e.example1.", 1, 46, 2, 0, 1);
+ test_getrrsetbyname("", 1, 1, 0, 0, 0);
+-
++ test_getrrsetbyname("123456789.123456789.123456789.123456789."
++ "123456789.123456789.123456789.123456789."
++ "123456789.123456789.123456789.123456789."
++ "123456789.123456789.123456789.123456789."
++ "123456789.123456789.123456789.123456789."
++ "123456789.123456789.123456789.123456789."
++ "123456789", 1, 1, 0, 0, 0);
++
+ if (fails == 0)
+ printf("I:ok\n");
+ return (fails);
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2776.patch b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2776.patch
new file mode 100644
index 000000000..738bf6005
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/CVE-2016-2776.patch
@@ -0,0 +1,123 @@
+From 1171111657081970585f9f0e03b476358c33a6c0 Mon Sep 17 00:00:00 2001
+From: Mark Andrews <marka@isc.org>
+Date: Wed, 12 Oct 2016 20:36:52 +0900
+Subject: [PATCH]
+4467. [security] It was possible to trigger an assertion when
+ rendering a message. (CVE-2016-2776) [RT #43139]
+
+Backport commit 2bd0922cf995b9ac205fc83baf7e220b95c6bf12 from the
+v9.11.0_patch branch.
+
+CVE: CVE-2016-2776
+Upstream-Status: Backport
+
+Signed-off-by: zhengruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+---
+ CHANGES | 3 +++
+ lib/dns/message.c | 42 +++++++++++++++++++++++++++++++-----------
+ 2 files changed, 34 insertions(+), 11 deletions(-)
+
+diff --git a/CHANGES b/CHANGES
+index d0a9d12..5c8c61a 100644
+--- a/CHANGES
++++ b/CHANGES
+@@ -1,3 +1,6 @@
++4467. [security] It was possible to trigger an assertion when
++ rendering a message. (CVE-2016-2776) [RT #43139]
++
+ 4406. [security] getrrsetbyname with a non absolute name could
+ trigger an infinite recursion bug in lwresd
+ and named with lwres configured if when combined
+diff --git a/lib/dns/message.c b/lib/dns/message.c
+index 6b5b4bb..b74dc81 100644
+--- a/lib/dns/message.c
++++ b/lib/dns/message.c
+@@ -1754,7 +1754,7 @@ dns_message_renderbegin(dns_message_t *msg, dns_compress_t *cctx,
+ if (r.length < DNS_MESSAGE_HEADERLEN)
+ return (ISC_R_NOSPACE);
+
+- if (r.length < msg->reserved)
++ if (r.length - DNS_MESSAGE_HEADERLEN < msg->reserved)
+ return (ISC_R_NOSPACE);
+
+ /*
+@@ -1895,8 +1895,29 @@ norender_rdataset(const dns_rdataset_t *rdataset, unsigned int options,
+
+ return (ISC_TRUE);
+ }
+-
+ #endif
++
++static isc_result_t
++renderset(dns_rdataset_t *rdataset, dns_name_t *owner_name,
++ dns_compress_t *cctx, isc_buffer_t *target,
++ unsigned int reserved, unsigned int options, unsigned int *countp)
++{
++ isc_result_t result;
++
++ /*
++ * Shrink the space in the buffer by the reserved amount.
++ */
++ if (target->length - target->used < reserved)
++ return (ISC_R_NOSPACE);
++
++ target->length -= reserved;
++ result = dns_rdataset_towire(rdataset, owner_name,
++ cctx, target, options, countp);
++ target->length += reserved;
++
++ return (result);
++}
++
+ isc_result_t
+ dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid,
+ unsigned int options)
+@@ -1939,6 +1960,8 @@ dns_message_rendersection(dns_message_t *msg, dns_section_t sectionid,
+ /*
+ * Shrink the space in the buffer by the reserved amount.
+ */
++ if (msg->buffer->length - msg->buffer->used < msg->reserved)
++ return (ISC_R_NOSPACE);
+ msg->buffer->length -= msg->reserved;
+
+ total = 0;
+@@ -2214,9 +2237,8 @@ dns_message_renderend(dns_message_t *msg) {
+ * Render.
+ */
+ count = 0;
+- result = dns_rdataset_towire(msg->opt, dns_rootname,
+- msg->cctx, msg->buffer, 0,
+- &count);
++ result = renderset(msg->opt, dns_rootname, msg->cctx,
++ msg->buffer, msg->reserved, 0, &count);
+ msg->counts[DNS_SECTION_ADDITIONAL] += count;
+ if (result != ISC_R_SUCCESS)
+ return (result);
+@@ -2232,9 +2254,8 @@ dns_message_renderend(dns_message_t *msg) {
+ if (result != ISC_R_SUCCESS)
+ return (result);
+ count = 0;
+- result = dns_rdataset_towire(msg->tsig, msg->tsigname,
+- msg->cctx, msg->buffer, 0,
+- &count);
++ result = renderset(msg->tsig, msg->tsigname, msg->cctx,
++ msg->buffer, msg->reserved, 0, &count);
+ msg->counts[DNS_SECTION_ADDITIONAL] += count;
+ if (result != ISC_R_SUCCESS)
+ return (result);
+@@ -2255,9 +2276,8 @@ dns_message_renderend(dns_message_t *msg) {
+ * the owner name of a SIG(0) is irrelevant, and will not
+ * be set in a message being rendered.
+ */
+- result = dns_rdataset_towire(msg->sig0, dns_rootname,
+- msg->cctx, msg->buffer, 0,
+- &count);
++ result = renderset(msg->sig0, dns_rootname, msg->cctx,
++ msg->buffer, msg->reserved, 0, &count);
+ msg->counts[DNS_SECTION_ADDITIONAL] += count;
+ if (result != ISC_R_SUCCESS)
+ return (result);
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/dont-test-on-host.patch b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/dont-test-on-host.patch
index 6989d6d4b..b02ecb106 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/dont-test-on-host.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind/dont-test-on-host.patch
@@ -1,6 +1,6 @@
Upstream-Status: Pending
-Signed-off-by Saul Wold <sgw@linux.intel.com>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: bind-9.9.5/bin/Makefile.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind_9.10.3-P3.bb b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind_9.10.3-P3.bb
index 1e3a20f9a..4e2e856b7 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind_9.10.3-P3.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bind/bind_9.10.3-P3.bb
@@ -25,6 +25,8 @@ SRC_URI = "ftp://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
file://CVE-2016-1286_1.patch \
file://CVE-2016-1286_2.patch \
file://CVE-2016-2088.patch \
+ file://CVE-2016-2775.patch \
+ file://CVE-2016-2776.patch \
"
SRC_URI[md5sum] = "bcf7e772b616f7259420a3edc5df350a"
@@ -56,7 +58,7 @@ SYSTEMD_SERVICE_${PN} = "named.service"
PARALLEL_MAKE = ""
-RDEPENDS_${PN} = "python-core"
+RDEPENDS_${PN} = "python3-core"
RDEPENDS_${PN}-dev = ""
PACKAGE_BEFORE_PN += "${PN}-utils"
@@ -81,7 +83,7 @@ do_install_append() {
install -d "${D}${sysconfdir}/init.d"
install -m 644 ${S}/conf/* "${D}${sysconfdir}/bind/"
install -m 755 "${S}/init.d" "${D}${sysconfdir}/init.d/bind"
- sed -i -e '1s,#!.*python,#! /usr/bin/env python,' ${D}${sbindir}/dnssec-coverage ${D}${sbindir}/dnssec-checkds
+ sed -i -e '1s,#!.*python,#! /usr/bin/python3,' ${D}${sbindir}/dnssec-coverage ${D}${sbindir}/dnssec-checkds
# Install systemd related files
install -d ${D}${sbindir}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5.inc b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5.inc
index a508229a3..ecefb7b59 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -18,6 +18,7 @@ PACKAGECONFIG[experimental] = "--enable-experimental,--disable-experimental,"
SRC_URI = "\
${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
+ file://out-of-tree.patch \
file://init \
file://run-ptest \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
@@ -25,7 +26,7 @@ SRC_URI = "\
"
S = "${WORKDIR}/bluez-${PV}"
-inherit autotools-brokensep pkgconfig systemd update-rc.d distro_features_check ptest
+inherit autotools pkgconfig systemd update-rc.d distro_features_check ptest
EXTRA_OECONF = "\
--enable-tools \
@@ -60,17 +61,25 @@ do_install_append() {
install -m 0644 ${S}/profiles/input/input.conf ${D}/${sysconfdir}/bluetooth/
fi
+ if [ -f ${D}/${sysconfdir}/init.d/bluetooth ]; then
+ sed -i -e 's#@LIBEXECDIR@#${libexecdir}#g' ${D}/${sysconfdir}/init.d/bluetooth
+ fi
+
# Install desired tools that upstream leaves in build area
for f in ${NOINST_TOOLS} ; do
install -m 755 ${B}/$f ${D}/${bindir}
done
+
+ # Patch python tools to use Python 3; they should be source compatible, but
+ # still refer to Python 2 in the shebang
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${libdir}/bluez/test/*
}
ALLOW_EMPTY_libasound-module-bluez = "1"
PACKAGES =+ "libasound-module-bluez ${PN}-testtools ${PN}-obex ${PN}-noinst-tools"
FILES_libasound-module-bluez = "${libdir}/alsa-lib/lib*.so ${datadir}/alsa"
-FILES_${PN} += "${libdir}/bluetooth/plugins/*.so ${base_libdir}/udev/ ${nonarch_base_libdir}/udev/ ${systemd_unitdir}/ ${datadir}/dbus-1"
+FILES_${PN} += "${libdir}/bluetooth/plugins/*.so ${systemd_unitdir}/ ${datadir}/dbus-1"
FILES_${PN}-dev += "\
${libdir}/bluetooth/plugins/*.la \
${libdir}/alsa-lib/*.la \
@@ -94,7 +103,7 @@ def get_noinst_tools_paths (d, bb, tools):
FILES_${PN}-noinst-tools = "${@get_noinst_tools_paths(d, bb, d.getVar('NOINST_TOOLS', True))}"
-RDEPENDS_${PN}-testtools += "python python-dbus python-pygobject"
+RDEPENDS_${PN}-testtools += "python3 python3-dbus python3-pygobject"
SYSTEMD_SERVICE_${PN} = "bluetooth.service"
INITSCRIPT_PACKAGES = "${PN}"
@@ -108,5 +117,5 @@ do_compile_ptest() {
do_install_ptest() {
cp -r ${B}/unit/ ${D}${PTEST_PATH}
- rm ${D}${PTEST_PATH}/unit/*.c ${D}${PTEST_PATH}/unit/*.o
+ rm -f ${D}${PTEST_PATH}/unit/*.o
}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/init b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/init
index 1606a5c66..489e9b9eb 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/init
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/init
@@ -3,7 +3,7 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC=bluetooth
-DAEMON=/usr/lib/bluez5/bluetooth/bluetoothd
+DAEMON=@LIBEXECDIR@/bluetooth/bluetoothd
# If you want to be ignore error of "org.freedesktop.hostname1",
# please enable NOPLUGIN_OPTION.
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
new file mode 100644
index 000000000..3ee79d704
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5/out-of-tree.patch
@@ -0,0 +1,26 @@
+From ed55b49a226ca3909f52416be2ae5ce1c5ca2cb2 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Fri, 22 Apr 2016 15:40:37 +0100
+Subject: [PATCH] Makefile.obexd: add missing mkdir in builtin.h generation
+
+In parallel out-of-tree builds it's possible that obexd/src/builtin.h is
+generated before the target directory has been implicitly created. Solve this by
+creating the directory before writing into it.
+
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ Makefile.obexd | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.obexd b/Makefile.obexd
+index 2e33cbc..c8286f0 100644
+--- a/Makefile.obexd
++++ b/Makefile.obexd
+@@ -105,2 +105,3 @@ obexd/src/plugin.$(OBJEXT): obexd/src/builtin.h
+ obexd/src/builtin.h: obexd/src/genbuiltin $(obexd_builtin_sources)
++ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(srcdir)/obexd/src/genbuiltin $(obexd_builtin_modules) > $@
+--
+2.8.0.rc3
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb
deleted file mode 100644
index db20f79ff..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.37.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-require bluez5.inc
-
-REQUIRED_DISTRO_FEATURES = "bluez5"
-
-SRC_URI[md5sum] = "33177e5743e24b2b3738f72be64e3ffb"
-SRC_URI[sha256sum] = "c14ba9ddcb0055522073477b8fd8bf1ddf5d219e75fdfd4699b7e0ce5350d6b0"
-
-# noinst programs in Makefile.tools that are conditional on READLINE
-# support
-NOINST_TOOLS_READLINE ?= " \
- attrib/gatttool \
- tools/obex-client-tool \
- tools/obex-server-tool \
- tools/bluetooth-player \
- tools/obexctl \
-"
-
-# noinst programs in Makefile.tools that are conditional on EXPERIMENTAL
-# support
-NOINST_TOOLS_EXPERIMENTAL ?= " \
- emulator/btvirt \
- emulator/b1ee \
- emulator/hfp \
- tools/3dsp \
- tools/mgmt-tester \
- tools/gap-tester \
- tools/l2cap-tester \
- tools/sco-tester \
- tools/smp-tester \
- tools/hci-tester \
- tools/rfcomm-tester \
- tools/bdaddr \
- tools/avinfo \
- tools/avtest \
- tools/scotest \
- tools/amptest \
- tools/hwdb \
- tools/hcieventmask \
- tools/hcisecfilter \
- tools/btmgmt \
- tools/btinfo \
- tools/btattach \
- tools/btsnoop \
- tools/btproxy \
- tools/btiotest \
- tools/mcaptest \
- tools/cltest \
- tools/oobtest \
- tools/seq2bseq \
- tools/ibeacon \
- tools/btgatt-client \
- tools/btgatt-server \
- tools/gatt-service \
- profiles/iap/iapd \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.41.bb b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.41.bb
new file mode 100644
index 000000000..522aab7d5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/bluez5/bluez5_5.41.bb
@@ -0,0 +1,55 @@
+require bluez5.inc
+
+REQUIRED_DISTRO_FEATURES = "bluez5"
+
+SRC_URI[md5sum] = "318341b2188698130adb73236ee69244"
+SRC_URI[sha256sum] = "df7dc4462494dad4e60a2943240d584f6e760235dca64f5f10eba46dbab7f5f0"
+
+# noinst programs in Makefile.tools that are conditional on READLINE
+# support
+NOINST_TOOLS_READLINE ?= " \
+ attrib/gatttool \
+ tools/obex-client-tool \
+ tools/obex-server-tool \
+ tools/bluetooth-player \
+ tools/obexctl \
+ tools/btmgmt \
+"
+
+# noinst programs in Makefile.tools that are conditional on EXPERIMENTAL
+# support
+NOINST_TOOLS_EXPERIMENTAL ?= " \
+ emulator/btvirt \
+ emulator/b1ee \
+ emulator/hfp \
+ tools/3dsp \
+ tools/mgmt-tester \
+ tools/gap-tester \
+ tools/l2cap-tester \
+ tools/sco-tester \
+ tools/smp-tester \
+ tools/hci-tester \
+ tools/rfcomm-tester \
+ tools/bdaddr \
+ tools/avinfo \
+ tools/avtest \
+ tools/scotest \
+ tools/amptest \
+ tools/hwdb \
+ tools/hcieventmask \
+ tools/hcisecfilter \
+ tools/btinfo \
+ tools/btattach \
+ tools/btsnoop \
+ tools/btproxy \
+ tools/btiotest \
+ tools/mcaptest \
+ tools/cltest \
+ tools/oobtest \
+ tools/seq2bseq \
+ tools/ibeacon \
+ tools/btgatt-client \
+ tools/btgatt-server \
+ tools/gatt-service \
+ profiles/iap/iapd \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome/0001-Port-to-Gtk3.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome/0001-Port-to-Gtk3.patch
new file mode 100644
index 000000000..c93e9b465
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome/0001-Port-to-Gtk3.patch
@@ -0,0 +1,277 @@
+From a59b0fac02e74a971ac3f08bf28c17ce361a9526 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 2 Mar 2016 15:47:49 +0200
+Subject: [PATCH] Port to Gtk3
+
+Some unused (or not useful) code was removed, functionality should stay
+the same.
+
+Code still contains quite a few uses of deprecated API.
+
+Upstream-Status: Submitted
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ applet/agent.c | 3 +--
+ applet/main.c | 43 -------------------------------------------
+ applet/status.c | 8 --------
+ configure.ac | 3 +--
+ properties/ethernet.c | 14 +++++++-------
+ properties/main.c | 2 +-
+ properties/wifi.c | 12 ++++++------
+ 7 files changed, 16 insertions(+), 69 deletions(-)
+
+diff --git a/applet/agent.c b/applet/agent.c
+index 65bed08..04fe86a 100644
+--- a/applet/agent.c
++++ b/applet/agent.c
+@@ -126,7 +126,6 @@ static void request_input_dialog(GHashTable *request,
+ gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
+ gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE);
+ gtk_window_set_urgency_hint(GTK_WINDOW(dialog), TRUE);
+- gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE);
+ input->dialog = dialog;
+
+ gtk_dialog_add_button(GTK_DIALOG(dialog),
+@@ -139,7 +138,7 @@ static void request_input_dialog(GHashTable *request,
+ gtk_table_set_row_spacings(GTK_TABLE(table), 4);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 20);
+ gtk_container_set_border_width(GTK_CONTAINER(table), 12);
+- gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), table);
++ gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area (GTK_DIALOG(dialog))), table);
+
+ label = gtk_label_new(_("Please provide some network information:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.0);
+diff --git a/applet/main.c b/applet/main.c
+index f12d371..cd16285 100644
+--- a/applet/main.c
++++ b/applet/main.c
+@@ -157,46 +157,6 @@ static void name_owner_changed(DBusGProxy *proxy, const char *name,
+ }
+ }
+
+-static void open_uri(GtkWindow *parent, const char *uri)
+-{
+- GtkWidget *dialog;
+- GdkScreen *screen;
+- GError *error = NULL;
+- gchar *cmdline;
+-
+- screen = gtk_window_get_screen(parent);
+-
+- cmdline = g_strconcat("xdg-open ", uri, NULL);
+-
+- if (gdk_spawn_command_line_on_screen(screen,
+- cmdline, &error) == FALSE) {
+- dialog = gtk_message_dialog_new(parent,
+- GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
+- GTK_BUTTONS_CLOSE, "%s", error->message);
+- gtk_dialog_run(GTK_DIALOG(dialog));
+- gtk_widget_destroy(dialog);
+- g_error_free(error);
+- }
+-
+- g_free(cmdline);
+-}
+-
+-static void about_url_hook(GtkAboutDialog *dialog,
+- const gchar *url, gpointer data)
+-{
+- open_uri(GTK_WINDOW(dialog), url);
+-}
+-
+-static void about_email_hook(GtkAboutDialog *dialog,
+- const gchar *email, gpointer data)
+-{
+- gchar *uri;
+-
+- uri = g_strconcat("mailto:", email, NULL);
+- open_uri(GTK_WINDOW(dialog), uri);
+- g_free(uri);
+-}
+-
+ static void about_callback(GtkWidget *item, gpointer user_data)
+ {
+ const gchar *authors[] = {
+@@ -204,9 +164,6 @@ static void about_callback(GtkWidget *item, gpointer user_data)
+ NULL
+ };
+
+- gtk_about_dialog_set_url_hook(about_url_hook, NULL, NULL);
+- gtk_about_dialog_set_email_hook(about_email_hook, NULL, NULL);
+-
+ gtk_show_about_dialog(NULL, "version", VERSION,
+ "copyright", "Copyright \xc2\xa9 2008 Intel Corporation",
+ "comments", _("A connection manager for the GNOME desktop"),
+diff --git a/applet/status.c b/applet/status.c
+index aed6f1e..015ff29 100644
+--- a/applet/status.c
++++ b/applet/status.c
+@@ -102,8 +102,6 @@ static void icon_animation_start(IconAnimation *animation,
+ {
+ available = TRUE;
+
+- gtk_status_icon_set_tooltip(statusicon, NULL);
+-
+ animation->start = start;
+ animation->end = (end == 0) ? animation->count - 1 : end;
+
+@@ -120,8 +118,6 @@ static void icon_animation_stop(IconAnimation *animation)
+ {
+ available = TRUE;
+
+- gtk_status_icon_set_tooltip(statusicon, NULL);
+-
+ if (animation->id > 0)
+ g_source_remove(animation->id);
+
+@@ -251,8 +247,6 @@ void status_unavailable(void)
+ available = FALSE;
+
+ gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_notifier);
+- gtk_status_icon_set_tooltip(statusicon,
+- "Connection Manager daemon is not running");
+
+ gtk_status_icon_set_visible(statusicon, TRUE);
+ }
+@@ -299,7 +293,6 @@ static void set_ready(gint signal)
+
+ if (signal < 0) {
+ gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_wired);
+- gtk_status_icon_set_tooltip(statusicon, NULL);
+ return;
+ }
+
+@@ -311,7 +304,6 @@ static void set_ready(gint signal)
+ index = 4;
+
+ gtk_status_icon_set_from_pixbuf(statusicon, pixbuf_signal[index]);
+- gtk_status_icon_set_tooltip(statusicon, NULL);
+ }
+
+ struct timeout_data {
+diff --git a/configure.ac b/configure.ac
+index b972e07..a4dad5d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,8 +55,7 @@ AC_SUBST(DBUS_LIBS)
+ DBUS_BINDING_TOOL="dbus-binding-tool"
+ AC_SUBST(DBUS_BINDING_TOOL)
+
+-PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8, dummy=yes,
+- AC_MSG_ERROR(gtk+ >= 2.8 is required))
++PKG_CHECK_MODULES(GTK, gtk+-3.0)
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+
+diff --git a/properties/ethernet.c b/properties/ethernet.c
+index 31db7a0..0b6b423 100644
+--- a/properties/ethernet.c
++++ b/properties/ethernet.c
+@@ -82,7 +82,7 @@ void add_ethernet_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
+ gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
+
+- table = gtk_table_new(1, 1, TRUE);
++ table = gtk_table_new(1, 1, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 10);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 10);
+ gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+@@ -136,7 +136,7 @@ void add_ethernet_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_d
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
+ gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
+
+- table = gtk_table_new(5, 5, TRUE);
++ table = gtk_table_new(5, 5, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 10);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 10);
+ gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+@@ -144,9 +144,9 @@ void add_ethernet_service(GtkWidget *mainbox, GtkTreeIter *iter, struct config_d
+ label = gtk_label_new(_("Configuration:"));
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 0, 1);
+
+- combo = gtk_combo_box_new_text();
+- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "DHCP");
+- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "MANUAL");
++ combo = gtk_combo_box_text_new();
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "DHCP");
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "MANUAL");
+ gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
+ separator_function, NULL, NULL);
+ gtk_table_attach_defaults(GTK_TABLE(table), combo, 2, 4, 0, 1);
+@@ -219,7 +219,7 @@ void update_ethernet_ipv4(struct config_data *data, guint policy)
+ case CONNMAN_POLICY_DHCP:
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
+ for (i = 0; i < 3; i++) {
+- gtk_entry_set_editable(GTK_ENTRY(entry[i]), 0);
++ gtk_editable_set_editable(GTK_EDITABLE(entry[i]), 0);
+ gtk_widget_set_sensitive(entry[i], 0);
+ gtk_entry_set_text(GTK_ENTRY(entry[i]), _(""));
+ }
+@@ -227,7 +227,7 @@ void update_ethernet_ipv4(struct config_data *data, guint policy)
+ case CONNMAN_POLICY_MANUAL:
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 1);
+ for (i = 0; i < 3; i++) {
+- gtk_entry_set_editable(GTK_ENTRY(entry[i]), 1);
++ gtk_editable_set_editable(GTK_EDITABLE(entry[i]), 1);
+ gtk_widget_set_sensitive(entry[i], 1);
+ }
+ break;
+diff --git a/properties/main.c b/properties/main.c
+index c05f443..6f76361 100644
+--- a/properties/main.c
++++ b/properties/main.c
+@@ -429,7 +429,7 @@ static GtkWidget *create_interfaces(GtkWidget *window)
+
+ scrolled = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
++ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),
+ GTK_SHADOW_OUT);
+ gtk_box_pack_start(GTK_BOX(hbox), scrolled, FALSE, TRUE, 0);
+diff --git a/properties/wifi.c b/properties/wifi.c
+index bd325ef..a5827e0 100644
+--- a/properties/wifi.c
++++ b/properties/wifi.c
+@@ -125,7 +125,7 @@ void add_wifi_switch_button(GtkWidget *mainbox, GtkTreeIter *iter,
+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 24);
+ gtk_box_pack_start(GTK_BOX(mainbox), vbox, FALSE, FALSE, 0);
+
+- table = gtk_table_new(1, 1, TRUE);
++ table = gtk_table_new(1, 1, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 10);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 10);
+ gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0);
+@@ -185,9 +185,9 @@ static void wifi_ipconfig(GtkWidget *table, struct config_data *data, GtkTreeIte
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 3, 4);
+ data->ipv4.label[0] = label;
+
+- combo = gtk_combo_box_new_text();
+- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "DHCP");
+- gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Manual");
++ combo = gtk_combo_box_text_new();
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "DHCP");
++ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "Manual");
+
+ gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combo),
+ separator_function, NULL, NULL);
+@@ -335,14 +335,14 @@ void update_wifi_ipv4(struct config_data *data, guint policy)
+ case CONNMAN_POLICY_DHCP:
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
+ for (i = 0; i < 3; i++) {
+- gtk_entry_set_editable(GTK_ENTRY(entry[i]), 0);
++ gtk_editable_set_editable(GTK_EDITABLE(entry[i]), 0);
+ gtk_widget_set_sensitive(entry[i], 0);
+ }
+ break;
+ case CONNMAN_POLICY_MANUAL:
+ gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 1);
+ for (i = 0; i < 3; i++) {
+- gtk_entry_set_editable(GTK_ENTRY(entry[i]), 1);
++ gtk_editable_set_editable(GTK_EDITABLE(entry[i]), 1);
+ gtk_widget_set_sensitive(entry[i], 1);
+ }
+ break;
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
index 7b875f00f..a56bd3751 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman-gnome_0.7.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://properties/main.c;beginline=1;endline=20;md5=50c77c81871308b033ab7a1504626afb \
file://common/connman-dbus.c;beginline=1;endline=20;md5=de6b485c0e717a0236402d220187717a"
-DEPENDS = "gtk+ dbus-glib intltool-native gettext-native"
+DEPENDS = "gtk+3 dbus-glib dbus-glib-native intltool-native gettext-native"
# 0.7 tag
SRCREV = "cf3c325b23dae843c5499a113591cfbc98acb143"
@@ -15,12 +15,13 @@ SRC_URI = "git://github.com/connectivity/connman-gnome.git \
file://null_check_for_ipv4_config.patch \
file://images/* \
file://connman-gnome-fix-dbus-interface-name.patch \
+ file://0001-Port-to-Gtk3.patch \
"
S = "${WORKDIR}/git"
inherit autotools-brokensep gtk-icon-cache pkgconfig distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
RDEPENDS_${PN} = "connman"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman.inc b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman.inc
index c3752514c..35a7eed0a 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman.inc
@@ -26,11 +26,9 @@ EXTRA_OECONF += "\
--enable-loopback \
--enable-ethernet \
--enable-tools \
- --enable-test \
--disable-polkit \
--enable-client \
"
-CFLAGS += "-D_GNU_SOURCE"
PACKAGECONFIG ??= "wispr \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd','systemd', '', d)} \
@@ -140,10 +138,7 @@ PACKAGES =+ "${PN}-tools ${PN}-tests ${PN}-client"
FILES_${PN}-tools = "${bindir}/wispr"
RDEPENDS_${PN}-tools ="${PN}"
-FILES_${PN}-tests = "${bindir}/*-test ${libdir}/${BPN}/test/*"
-RDEPENDS_${PN}-tests = "python-dbus python-pygobject python-textutils python-subprocess python-fcntl python-netclient \
- ${PN} \
-"
+FILES_${PN}-tests = "${bindir}/*-test"
FILES_${PN}-client = "${bindir}/connmanctl"
RDEPENDS_${PN}-client ="${PN}"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-Detect-backtrace-API-availability-before-using-it.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-Detect-backtrace-API-availability-before-using-it.patch
deleted file mode 100644
index 5dc6fd634..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-Detect-backtrace-API-availability-before-using-it.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 00d4447395725abaa651e12ed40095081e04011e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 13 Sep 2015 13:22:01 -0700
-Subject: [PATCH 1/3] Detect backtrace() API availability before using it
-
-C libraries besides glibc do not have backtrace() implemented
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 2 ++
- src/log.c | 5 ++---
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 69c0eeb..90099f2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -171,6 +171,8 @@ fi
- AM_CONDITIONAL(PPTP, test "${enable_pptp}" != "no")
- AM_CONDITIONAL(PPTP_BUILTIN, test "${enable_pptp}" = "builtin")
-
-+AC_CHECK_HEADERS([execinfo.h])
-+
- AC_CHECK_HEADERS(resolv.h, dummy=yes,
- AC_MSG_ERROR(resolver header files are required))
- AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
-diff --git a/src/log.c b/src/log.c
-index a693bd0..5b40c1f 100644
---- a/src/log.c
-+++ b/src/log.c
-@@ -30,7 +30,6 @@
- #include <stdlib.h>
- #include <string.h>
- #include <syslog.h>
--#include <execinfo.h>
- #include <dlfcn.h>
-
- #include "connman.h"
-@@ -215,9 +214,9 @@ static void print_backtrace(unsigned int offset)
- static void signal_handler(int signo)
- {
- connman_error("Aborting (signal %d) [%s]", signo, program_exec);
--
-+#ifdef HAVE_EXECINFO_H
- print_backtrace(2);
--
-+#endif /* HAVE_EXECINFO_H */
- exit(EXIT_FAILURE);
- }
-
---
-2.5.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch
deleted file mode 100644
index 1b5a3e440..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From acea08a0e4234a4c1a87bedc087c73ff36de0c7b Mon Sep 17 00:00:00 2001
-From: Wu Zheng <wu.zheng@intel.com>
-Date: Thu, 28 Jan 2016 18:04:17 +0800
-Subject: [PATCH] iptables: Add missing function item of xtables to match
- iptables 1.6
-
-The struct of xtables_globals has been modified in iptables 1.6.
-If connman runs with iptables 1.6, it can crash.
-
-Program received signal SIGSEGV, Segmentation fault.
-0x00000000 in ?? ()
-0xb7dea89c in xtables_find_target () from /usr/lib/libxtables.so.11
-0xb7deac1c in ?? () from /usr/lib/libxtables.so.11
-0xb7dea793 in xtables_find_target () from /usr/lib/libxtables.so.11
-
-The the missing function item of xtables is added to xtables_globals.
-
-Upstream-Status: Backport
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
-Signed-off-by: Wu Zheng <wu.zheng@intel.com>
----
- src/iptables.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/iptables.c b/src/iptables.c
-index bc0c763..5ef757a 100644
---- a/src/iptables.c
-+++ b/src/iptables.c
-@@ -1566,6 +1566,9 @@ struct xtables_globals iptables_globals = {
- .option_offset = 0,
- .opts = iptables_opts,
- .orig_opts = iptables_opts,
-+#if XTABLES_VERSION_CODE > 10
-+ .compat_rev = xtables_compatible_revision,
-+#endif
- };
-
- static struct xtables_target *prepare_target(struct connman_iptables *table,
---
-2.4.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch
deleted file mode 100644
index eefc6834b..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 67645a01a2f3f52625d8dd77f2811a9e213e1b7d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 13 Sep 2015 13:28:20 -0700
-Subject: [PATCH] Fix header inclusions for musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gweb/gresolv.c | 1 +
- plugins/wifi.c | 3 +--
- src/tethering.c | 2 --
- tools/dhcp-test.c | 1 -
- tools/dnsproxy-test.c | 1 +
- 5 files changed, 3 insertions(+), 5 deletions(-)
-
-Index: connman-1.30/gweb/gresolv.c
-===================================================================
---- connman-1.30.orig/gweb/gresolv.c
-+++ connman-1.30/gweb/gresolv.c
-@@ -28,6 +28,7 @@
- #include <stdarg.h>
- #include <string.h>
- #include <stdlib.h>
-+#include <stdio.h>
- #include <resolv.h>
- #include <sys/types.h>
- #include <sys/socket.h>
-Index: connman-1.30/plugins/wifi.c
-===================================================================
---- connman-1.30.orig/plugins/wifi.c
-+++ connman-1.30/plugins/wifi.c
-@@ -30,9 +30,8 @@
- #include <string.h>
- #include <sys/ioctl.h>
- #include <sys/socket.h>
--#include <linux/if_arp.h>
--#include <linux/wireless.h>
- #include <net/ethernet.h>
-+#include <linux/wireless.h>
-
- #ifndef IFF_LOWER_UP
- #define IFF_LOWER_UP 0x10000
-Index: connman-1.30/src/tethering.c
-===================================================================
---- connman-1.30.orig/src/tethering.c
-+++ connman-1.30/src/tethering.c
-@@ -31,10 +31,8 @@
- #include <stdio.h>
- #include <sys/ioctl.h>
- #include <net/if.h>
--#include <linux/sockios.h>
- #include <string.h>
- #include <fcntl.h>
--#include <linux/if_tun.h>
- #include <netinet/in.h>
- #include <linux/if_bridge.h>
-
-Index: connman-1.30/tools/dhcp-test.c
-===================================================================
---- connman-1.30.orig/tools/dhcp-test.c
-+++ connman-1.30/tools/dhcp-test.c
-@@ -33,7 +33,6 @@
- #include <arpa/inet.h>
- #include <net/route.h>
- #include <net/ethernet.h>
--#include <linux/if_arp.h>
-
- #include <gdhcp/gdhcp.h>
-
-Index: connman-1.30/tools/dnsproxy-test.c
-===================================================================
---- connman-1.30.orig/tools/dnsproxy-test.c
-+++ connman-1.30/tools/dnsproxy-test.c
-@@ -27,6 +27,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-+#include <stdio.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <sys/types.h>
-Index: connman-1.30/configure.ac
-===================================================================
---- connman-1.30.orig/configure.ac
-+++ connman-1.30/configure.ac
-@@ -173,6 +173,8 @@ AM_CONDITIONAL(PPTP_BUILTIN, test "${ena
-
- AC_CHECK_HEADERS([execinfo.h])
-
-+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
-+
- AC_CHECK_HEADERS(resolv.h, dummy=yes,
- AC_MSG_ERROR(resolver header files are required))
- AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
-Index: connman-1.30/gdhcp/common.h
-===================================================================
---- connman-1.30.orig/gdhcp/common.h
-+++ connman-1.30/gdhcp/common.h
-@@ -19,6 +19,7 @@
- *
- */
-
-+#include <config.h>
- #include <netinet/udp.h>
- #include <netinet/ip.h>
-
-@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths
- [OPTION_U32] = 4,
- };
-
--/* already defined within netinet/in.h if using GNU compiler */
--#ifndef __USE_GNU
-+/* already defined within netinet/in.h if using GNU or musl libc */
-+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
- struct in6_pktinfo {
- struct in6_addr ipi6_addr; /* src/dst IPv6 address */
- unsigned int ipi6_ifindex; /* send/recv interface index */
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/includes.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/includes.patch
new file mode 100644
index 000000000..55cb18793
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/includes.patch
@@ -0,0 +1,423 @@
+Fix various issues which cause problems under musl.
+
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 630516bcc0233b047f65665c003201ba6e77453d Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 9 Aug 2016 16:22:36 +0100
+Subject: [PATCH 1/3] Use AC_USE_SYSTEM_EXTENSIONS
+
+Instead of using #define _GNU_SOURCE in some source files which causes problems
+when building with musl as more files need the define, simply use
+AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally.
+---
+ configure.ac | 1 +
+ gdhcp/client.c | 1 -
+ plugins/tist.c | 1 -
+ src/backtrace.c | 1 -
+ src/inet.c | 1 -
+ src/log.c | 1 -
+ src/ntp.c | 1 -
+ src/resolver.c | 1 -
+ src/rfkill.c | 1 -
+ src/stats.c | 1 -
+ src/timezone.c | 1 -
+ tools/stats-tool.c | 1 -
+ tools/tap-test.c | 1 -
+ tools/wispr.c | 1 -
+ vpn/plugins/vpn.c | 1 -
+ 15 files changed, 1 insertion(+), 14 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6e66ab3..bacf5ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir)
+ AC_SUBST(abs_top_builddir)
+
+ AC_LANG_C
++AC_USE_SYSTEM_EXTENSIONS
+
+ AC_PROG_CC
+ AM_PROG_CC_C_O
+diff --git a/gdhcp/client.c b/gdhcp/client.c
+index fbb40ab..3aeb089 100644
+--- a/gdhcp/client.c
++++ b/gdhcp/client.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <unistd.h>
+diff --git a/plugins/tist.c b/plugins/tist.c
+index ad5ef79..cc2800a 100644
+--- a/plugins/tist.c
++++ b/plugins/tist.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdbool.h>
+ #include <stdlib.h>
+diff --git a/src/backtrace.c b/src/backtrace.c
+index 6a66c0a..4dbdda8 100644
+--- a/src/backtrace.c
++++ b/src/backtrace.c
+@@ -24,7 +24,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+diff --git a/src/inet.c b/src/inet.c
+index 69ded19..81d92c2 100644
+--- a/src/inet.c
++++ b/src/inet.c
+@@ -25,7 +25,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <unistd.h>
+diff --git a/src/log.c b/src/log.c
+index 9bae4a3..f7e82e5 100644
+--- a/src/log.c
++++ b/src/log.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+diff --git a/src/ntp.c b/src/ntp.c
+index dd246eb..db8ae96 100644
+--- a/src/ntp.c
++++ b/src/ntp.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+diff --git a/src/resolver.c b/src/resolver.c
+index fbe4be7..ef61f92 100644
+--- a/src/resolver.c
++++ b/src/resolver.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <fcntl.h>
+diff --git a/src/rfkill.c b/src/rfkill.c
+index 2bfb092..af49d12 100644
+--- a/src/rfkill.c
++++ b/src/rfkill.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <fcntl.h>
+diff --git a/src/stats.c b/src/stats.c
+index 26343b1..cfcdc94 100644
+--- a/src/stats.c
++++ b/src/stats.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <errno.h>
+ #include <sys/mman.h>
+ #include <sys/types.h>
+diff --git a/src/timezone.c b/src/timezone.c
+index e346b11..8e91267 100644
+--- a/src/timezone.c
++++ b/src/timezone.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <errno.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+diff --git a/tools/stats-tool.c b/tools/stats-tool.c
+index b076478..428d94b 100644
+--- a/tools/stats-tool.c
++++ b/tools/stats-tool.c
+@@ -22,7 +22,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <sys/mman.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+diff --git a/tools/tap-test.c b/tools/tap-test.c
+index fdc098a..57917f5 100644
+--- a/tools/tap-test.c
++++ b/tools/tap-test.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <fcntl.h>
+diff --git a/tools/wispr.c b/tools/wispr.c
+index d5f9341..e56dfc1 100644
+--- a/tools/wispr.c
++++ b/tools/wispr.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c
+index 9a42385..479c3a7 100644
+--- a/vpn/plugins/vpn.c
++++ b/vpn/plugins/vpn.c
+@@ -23,7 +23,6 @@
+ #include <config.h>
+ #endif
+
+-#define _GNU_SOURCE
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+--
+2.8.1
+
+
+From b8b7878e6cb2a1ed4fcfa256f7e232511a40e3d9 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 9 Aug 2016 15:37:50 +0100
+Subject: [PATCH 2/3] Check for in6_pktinfo.ipi6_addr explicitly
+
+Instead of assuming that just glibc has this structure, check for it at
+configure as musl also has it.
+
+Based on work by Khem Raj <raj.khem@gmail.com>.
+---
+ configure.ac | 2 ++
+ gdhcp/common.h | 5 +++--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index bacf5ec..ad00456 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -186,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
+ AC_CHECK_HEADERS([execinfo.h])
+ AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"])
+
++AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
++
+ AC_CHECK_FUNC(signalfd, dummy=yes,
+ AC_MSG_ERROR(signalfd support is required))
+
+diff --git a/gdhcp/common.h b/gdhcp/common.h
+index 75abc18..6899499 100644
+--- a/gdhcp/common.h
++++ b/gdhcp/common.h
+@@ -19,6 +19,7 @@
+ *
+ */
+
++#include <config.h>
+ #include <netinet/udp.h>
+ #include <netinet/ip.h>
+
+@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = {
+ [OPTION_U32] = 4,
+ };
+
+-/* already defined within netinet/in.h if using GNU compiler */
+-#ifndef __USE_GNU
++/* already defined within netinet/in.h if using glibc or musl */
++#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
+ struct in6_pktinfo {
+ struct in6_addr ipi6_addr; /* src/dst IPv6 address */
+ unsigned int ipi6_ifindex; /* send/recv interface index */
+--
+2.8.1
+
+
+From c0726e432fa0274a2b9c70179b03df6720972816 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Tue, 9 Aug 2016 15:19:23 +0100
+Subject: [PATCH 3/3] Rationalise includes
+
+gweb/gresolv.c uses snprintf() and isspace() so it should include stdio.h and
+ctype.h.
+
+tools/dnsproxy-test uses functions from stdio.h.
+
+musl warns when sys/ headers are included when the non-sys form should be used,
+so switch sys/errno.h and so on to errno.h.
+
+musl also causes redefinition errors when pieces of the networking headers are
+included, so remove the redundant includes.
+
+Based on work by Khem Raj <raj.khem@gmail.com>.
+---
+ gweb/gresolv.c | 2 ++
+ plugins/wifi.c | 3 +--
+ src/ippool.c | 1 -
+ src/iptables.c | 2 +-
+ src/tethering.c | 2 --
+ tools/dhcp-test.c | 1 -
+ tools/dnsproxy-test.c | 1 +
+ tools/private-network-test.c | 2 +-
+ tools/tap-test.c | 2 +-
+ 9 files changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/gweb/gresolv.c b/gweb/gresolv.c
+index 8a51a9f..d55027c 100644
+--- a/gweb/gresolv.c
++++ b/gweb/gresolv.c
+@@ -23,11 +23,13 @@
+ #include <config.h>
+ #endif
+
++#include <ctype.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <string.h>
+ #include <stdlib.h>
++#include <stdio.h>
+ #include <resolv.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+diff --git a/plugins/wifi.c b/plugins/wifi.c
+index 9d56671..148131d 100644
+--- a/plugins/wifi.c
++++ b/plugins/wifi.c
+@@ -30,9 +30,8 @@
+ #include <string.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+-#include <linux/if_arp.h>
+-#include <linux/wireless.h>
+ #include <net/ethernet.h>
++#include <linux/wireless.h>
+
+ #ifndef IFF_LOWER_UP
+ #define IFF_LOWER_UP 0x10000
+diff --git a/src/ippool.c b/src/ippool.c
+index cea1dcc..8a645da 100644
+--- a/src/ippool.c
++++ b/src/ippool.c
+@@ -28,7 +28,6 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/errno.h>
+ #include <sys/socket.h>
+
+ #include "connman.h"
+diff --git a/src/iptables.c b/src/iptables.c
+index 5ef757a..82e3ac4 100644
+--- a/src/iptables.c
++++ b/src/iptables.c
+@@ -28,7 +28,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/socket.h>
+ #include <xtables.h>
+ #include <inttypes.h>
+diff --git a/src/tethering.c b/src/tethering.c
+index 3153349..ad062d5 100644
+--- a/src/tethering.c
++++ b/src/tethering.c
+@@ -31,10 +31,8 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+-#include <linux/sockios.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <linux/if_tun.h>
+ #include <netinet/in.h>
+ #include <linux/if_bridge.h>
+
+diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c
+index c34e10a..eae66fc 100644
+--- a/tools/dhcp-test.c
++++ b/tools/dhcp-test.c
+@@ -33,7 +33,6 @@
+ #include <arpa/inet.h>
+ #include <net/route.h>
+ #include <net/ethernet.h>
+-#include <linux/if_arp.h>
+
+ #include <gdhcp/gdhcp.h>
+
+diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c
+index 551cae9..371e2e2 100644
+--- a/tools/dnsproxy-test.c
++++ b/tools/dnsproxy-test.c
+@@ -24,6 +24,7 @@
+ #endif
+
+ #include <errno.h>
++#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+diff --git a/tools/private-network-test.c b/tools/private-network-test.c
+index 3dd115b..2828bb3 100644
+--- a/tools/private-network-test.c
++++ b/tools/private-network-test.c
+@@ -32,7 +32,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/signalfd.h>
+ #include <unistd.h>
+
+diff --git a/tools/tap-test.c b/tools/tap-test.c
+index 57917f5..cb3ee62 100644
+--- a/tools/tap-test.c
++++ b/tools/tap-test.c
+@@ -28,7 +28,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/ioctl.h>
+
+ #include <netinet/in.h>
+--
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/no-version-scripts.patch b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/no-version-scripts.patch
new file mode 100644
index 000000000..e96e38bcf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman/no-version-scripts.patch
@@ -0,0 +1,27 @@
+With binutils 2.27 on at least MIPS, connmand will crash on startup. This
+appears to be due to the symbol visibilty scripts hiding symbols that stdio
+looks up at runtime, resulting in it segfaulting.
+
+This certainly appears to be a bug in binutils 2.27 although the problem has
+been known about for some time:
+
+https://sourceware.org/bugzilla/show_bug.cgi?id=17908
+
+As the version scripts are only used to hide symbols from plugins we can safely
+remove the scripts to work around the problem until binutils is fixed.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/Makefile.am b/Makefile.am
+index d70725c..76ae432 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -132,2 +132 @@ src_connmand_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) \
+-src_connmand_LDFLAGS = -Wl,--export-dynamic \
+- -Wl,--version-script=$(srcdir)/src/connman.ver
++src_connmand_LDFLAGS = -Wl,--export-dynamic
+@@ -166,2 +165 @@ vpn_connman_vpnd_LDADD = gdbus/libgdbus-internal.la $(builtin_vpn_libadd) \
+-vpn_connman_vpnd_LDFLAGS = -Wl,--export-dynamic \
+- -Wl,--version-script=$(srcdir)/vpn/vpn.ver
++vpn_connman_vpnd_LDFLAGS = -Wl,--export-dynamic
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.31.bb b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.31.bb
deleted file mode 100644
index e71d2218a..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.31.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require connman.inc
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
- file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
- file://0001-Detect-backtrace-API-availability-before-using-it.patch \
- file://0002-resolve-musl-does-not-implement-res_ninit.patch \
- file://0003-Fix-header-inclusions-for-musl.patch \
- file://0001-iptables-Add-missing-function-item-of-xtables-to-mat.patch \
- file://connman \
- "
-SRC_URI[md5sum] = "cb1c413fcc4f49430294bbd7a92f5f3c"
-SRC_URI[sha256sum] = "88fcf0b6df334796b90e2fd2e434d6f5b36cd6f13b886a119b8c90276b72b8e2"
-
-RRECOMMENDS_${PN} = "connman-conf"
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.33.bb b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.33.bb
new file mode 100644
index 000000000..6ea1a08dc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/connman/connman_1.33.bb
@@ -0,0 +1,14 @@
+require connman.inc
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+ file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
+ file://connman \
+ file://no-version-scripts.patch \
+ file://includes.patch \
+ "
+SRC_URI_append_libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch"
+
+SRC_URI[md5sum] = "c51903fd3e7a6a371d12ac5d72a1fa01"
+SRC_URI[sha256sum] = "bc8946036fa70124d663136f9f6b6238d897ca482782df907b07a428b09df5a0"
+
+RRECOMMENDS_${PN} = "connman-conf"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp.inc b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp.inc
index 5e396f159..aafdd0a13 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp.inc
@@ -46,7 +46,8 @@ EXTRA_OECONF = "--with-srv-lease-file=${localstatedir}/lib/dhcp/dhcpd.leases \
--with-cli-lease-file=${localstatedir}/lib/dhcp/dhclient.leases \
--with-cli6-lease-file=${localstatedir}/lib/dhcp/dhclient6.leases \
--with-libbind=${STAGING_LIBDIR}/ \
- --enable-paranoia \
+ --enable-paranoia \
+ --with-randomdev=/dev/random \
"
do_install_append () {
@@ -78,6 +79,7 @@ do_install_append () {
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
sed -i -e 's,@base_bindir@,${base_bindir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/dhcpd*.service
+ sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/dhcrelay.service
}
PACKAGES += "dhcp-server dhcp-server-config dhcp-client dhcp-relay dhcp-omshell"
@@ -94,7 +96,6 @@ FILES_${PN}-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhc
FILES_${PN}-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay"
FILES_${PN}-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf"
-RDEPENDS_${PN}-client = "bash"
FILES_${PN}-omshell = "${bindir}/omshell"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch
index 434421230..47443a50e 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/0001-site.h-enable-gentle-shutdown.patch
@@ -8,10 +8,10 @@ Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/includes/site.h b/includes/site.h
-index 73fa4e8..9c33de3 100644
+index 1dd1251..abb66e4 100644
--- a/includes/site.h
+++ b/includes/site.h
-@@ -280,7 +280,7 @@
+@@ -289,7 +289,7 @@
situations. We plan to revisit this feature and may
make non-backwards compatible changes including the
removal of this define. Use at your own risk. */
@@ -21,5 +21,5 @@ index 73fa4e8..9c33de3 100644
/* Include old error codes. This is provided in case you
are building an external program similar to omshell for
--
-1.9.1
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2015-8605.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2015-8605.patch
deleted file mode 100644
index 923d5d5c5..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2015-8605.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-Solves CVE-2015-8605 that caused DoS when an invalid lenght field in IPv4 UDP
-was recived by the server.
-
-Upstream-Status: Backport
-CVE: CVE-2015-8605
-
-Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
-
-=======================================================================
-diff --git a/common/packet.c b/common/packet.c
-index b530432..e600e37 100644
---- a/common/packet.c
-+++ b/common/packet.c
-@@ -220,7 +220,28 @@ ssize_t decode_hw_header (interface, buf, bufix, from)
- }
- }
-
--/* UDP header and IP header decoded together for convenience. */
-+/*!
-+ *
-+ * \brief UDP header and IP header decoded together for convenience.
-+ *
-+ * Attempt to decode the UDP and IP headers and, if necessary, checksum
-+ * the packet.
-+ *
-+ * \param inteface - the interface on which the packet was recevied
-+ * \param buf - a pointer to the buffer for the received packet
-+ * \param bufix - where to start processing the buffer, previous
-+ * routines may have processed parts of the buffer already
-+ * \param from - space to return the address of the packet sender
-+ * \param buflen - remaining length of the buffer, this will have been
-+ * decremented by bufix by the caller
-+ * \param rbuflen - space to return the length of the payload from the udp
-+ * header
-+ * \param csum_ready - indication if the checksum is valid for use
-+ * non-zero indicates the checksum should be validated
-+ *
-+ * \return - the index to the first byte of the udp payload (that is the
-+ * start of the DHCP packet
-+ */
-
- ssize_t
- decode_udp_ip_header(struct interface_info *interface,
-@@ -231,7 +252,7 @@ decode_udp_ip_header(struct interface_info *interface,
- unsigned char *data;
- struct ip ip;
- struct udphdr udp;
-- unsigned char *upp, *endbuf;
-+ unsigned char *upp;
- u_int32_t ip_len, ulen, pkt_len;
- static unsigned int ip_packets_seen = 0;
- static unsigned int ip_packets_bad_checksum = 0;
-@@ -241,11 +262,8 @@ decode_udp_ip_header(struct interface_info *interface,
- static unsigned int udp_packets_length_overflow = 0;
- unsigned len;
-
-- /* Designate the end of the input buffer for bounds checks. */
-- endbuf = buf + bufix + buflen;
--
- /* Assure there is at least an IP header there. */
-- if ((buf + bufix + sizeof(ip)) > endbuf)
-+ if (sizeof(ip) > buflen)
- return -1;
-
- /* Copy the IP header into a stack aligned structure for inspection.
-@@ -257,13 +275,17 @@ decode_udp_ip_header(struct interface_info *interface,
- ip_len = (*upp & 0x0f) << 2;
- upp += ip_len;
-
-- /* Check the IP packet length. */
-+ /* Check packet lengths are within the buffer:
-+ * first the ip header (ip_len)
-+ * then the packet length from the ip header (pkt_len)
-+ * then the udp header (ip_len + sizeof(udp)
-+ * We are liberal in what we accept, the udp payload should fit within
-+ * pkt_len, but we only check against the full buffer size.
-+ */
- pkt_len = ntohs(ip.ip_len);
-- if (pkt_len > buflen)
-- return -1;
--
-- /* Assure after ip_len bytes that there is enough room for a UDP header. */
-- if ((upp + sizeof(udp)) > endbuf)
-+ if ((ip_len > buflen) ||
-+ (pkt_len > buflen) ||
-+ ((ip_len + sizeof(udp)) > buflen))
- return -1;
-
- /* Copy the UDP header into a stack aligned structure for inspection. */
-@@ -284,7 +306,8 @@ decode_udp_ip_header(struct interface_info *interface,
- return -1;
-
- udp_packets_length_checked++;
-- if ((upp + ulen) > endbuf) {
-+ /* verify that the payload length from the udp packet fits in the buffer */
-+ if ((ip_len + ulen) > buflen) {
- udp_packets_length_overflow++;
- if (((udp_packets_length_checked > 4) &&
- (udp_packets_length_overflow != 0)) &&
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2016-2774.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2016-2774.patch
deleted file mode 100644
index 4836dbc2a..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/CVE-2016-2774.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From b9f56d578ebfd649b5d829960540859ac6ca931c Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Tue, 12 Apr 2016 18:23:31 +0300
-Subject: [PATCH] Add patch to limit the value of an fd we accept for a
- connection.
-
-By limiting the highest value we accept for an fd we limit the number
-of connections.
-
-Upstream-Status: Backport
-CVE: CVE-2016-2774
-
-Author: Shawn Routhier <sar@isc.org>
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- includes/site.h | 6 ++++++
- omapip/listener.c | 9 +++++++--
- 3 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/includes/site.h b/includes/site.h
-index 9c33de3..df020c8 100644
---- a/includes/site.h
-+++ b/includes/site.h
-@@ -290,6 +290,12 @@
- this option will be removed at some time. */
- /* #define INCLUDE_OLD_DHCP_ISC_ERROR_CODES */
-
-+/* Limit the value of a file descriptor the serve will use
-+ when accepting a connecting request. This can be used to
-+ limit the number of TCP connections that the server will
-+ allow at one time. A value of 0 means there is no limit.*/
-+#define MAX_FD_VALUE 200
-+
- /* Include definitions for various options. In general these
- should be left as is, but if you have already defined one
- of these and prefer your definition you can comment the
-diff --git a/omapip/listener.c b/omapip/listener.c
-index 8bdcdbd..61473cf 100644
---- a/omapip/listener.c
-+++ b/omapip/listener.c
-@@ -3,7 +3,7 @@
- Subroutines that support the generic listener object. */
-
- /*
-- * Copyright (c) 2012,2014 by Internet Systems Consortium, Inc. ("ISC")
-+ * Copyright (c) 2012,2014,2016 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 2004,2007,2009 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1999-2003 by Internet Software Consortium
- *
-@@ -233,7 +233,12 @@ isc_result_t omapi_accept (omapi_object_t *h)
- return ISC_R_NORESOURCES;
- return ISC_R_UNEXPECTED;
- }
--
-+
-+ if ((MAX_FD_VALUE != 0) && (socket > MAX_FD_VALUE)) {
-+ close(socket);
-+ return (ISC_R_NORESOURCES);
-+ }
-+
- #if defined (TRACING)
- /* If we're recording a trace, remember the connection. */
- if (trace_record ()) {
---
-2.7.4
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch
index 47ea5554b..96095a5e0 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/dhclient-script-drop-resolv.conf.dhclient.patch
@@ -66,5 +66,5 @@ diff --git a/client/scripts/linux b/client/scripts/linux
}
--
-1.8.1.2
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch
deleted file mode 100644
index 956c5d8b5..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fix-external-bind.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-Upstream-Status: Pending
-
-11/30/2010
---with-libbind=PATH is available but not used by Makefile,
-this patch is to allow building with external bind
-
-Signed-off-by: Qing He <qing.he@intel.com>
-
-Rebase the patch to 4.3.3
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
-diff --git a/Makefile.am b/Makefile.am
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -25,7 +25,7 @@ EXTRA_DIST = RELNOTES LICENSE \
- bind/Makefile.in bind/bind.tar.gz bind/version.tmp \
- common/tests/Atffile server/tests/Atffile
-
--SUBDIRS = bind includes tests common omapip client dhcpctl relay server
-+SUBDIRS = includes tests common omapip client dhcpctl relay server
-
- nobase_include_HEADERS = dhcpctl/dhcpctl.h
-
-diff --git a/client/Makefile.am b/client/Makefile.am
---- a/client/Makefile.am
-+++ b/client/Makefile.am
-@@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
- scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
- scripts/netbsd scripts/nextstep scripts/openbsd \
- scripts/solaris scripts/openwrt
--dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../bind/lib/libirs.a \
-- ../bind/lib/libdns.a ../bind/lib/libisccfg.a ../bind/lib/libisc.a
-+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(libbind)/libirs.a \
-+ $(libbind)/libdns.a $(libbind)/libisccfg.a $(libbind)/libisc.a
- man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
- EXTRA_DIST = $(man_MANS)
-
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -623,6 +623,7 @@ no)
- fi
- ;;
- esac
-+AC_SUBST([libbind])
-
- # OpenLDAP support.
- AC_ARG_WITH(ldap,
-diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
---- a/dhcpctl/Makefile.am
-+++ b/dhcpctl/Makefile.am
-@@ -6,12 +6,12 @@ EXTRA_DIST = $(man_MANS)
-
- omshell_SOURCES = omshell.c
- omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
-- ../bind/lib/libirs.a ../bind/lib/libdns.a \
-- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
-+ $(libbind)/libirs.a $(libbind)/libdns.a \
-+ $(libbind)/libisccfg.a $(libbind)/libisc.a
-
- libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c
-
- cltest_SOURCES = cltest.c
- cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
-- ../bind/lib/libirs.a ../bind/lib/libdns.a \
-- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
-+ $(libbind)/libirs.a $(libbind)/libdns.a \
-+ $(libbind)/libisccfg.a $(libbind)/libisc.a
-diff --git a/omapip/Makefile.am b/omapip/Makefile.am
---- a/omapip/Makefile.am
-+++ b/omapip/Makefile.am
-@@ -10,6 +10,6 @@ man_MANS = omapi.3
- EXTRA_DIST = $(man_MANS)
-
- svtest_SOURCES = test.c
--svtest_LDADD = libomapi.a ../bind/lib/libirs.a ../bind/lib/libdns.a \
-- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
-+svtest_LDADD = libomapi.a $(libbind)/libirs.a $(libbind)/libdns.a \
-+ $(libbind)/libisccfg.a $(libbind)/libisc.a
-
-diff --git a/relay/Makefile.am b/relay/Makefile.am
---- a/relay/Makefile.am
-+++ b/relay/Makefile.am
-@@ -3,8 +3,8 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
- sbin_PROGRAMS = dhcrelay
- dhcrelay_SOURCES = dhcrelay.c
- dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
-- ../bind/lib/libirs.a ../bind/lib/libdns.a \
-- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
-+ $(libbind)/libirs.a $(libbind)/libdns.a \
-+ $(libbind)/libisccfg.a $(libbind)/libisc.a
- man_MANS = dhcrelay.8
- EXTRA_DIST = $(man_MANS)
-
-diff --git a/server/Makefile.am b/server/Makefile.am
---- a/server/Makefile.am
-+++ b/server/Makefile.am
-@@ -14,10 +14,12 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
-
- dhcpd_CFLAGS = $(LDAP_CFLAGS)
- dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \
-- ../dhcpctl/libdhcpctl.a ../bind/lib/libirs.a \
-- ../bind/lib/libdns.a ../bind/lib/libisccfg.a ../bind/lib/libisc.a \
-+ ../dhcpctl/libdhcpctl.a $(libbind)/libirs.a \
-+ $(libbind)/libdns.a $(libbind)/libisccfg.a $(libbind)/libisc.a \
- $(LDAP_LIBS)
-
-+ dhcpd_CFLAGS = $(LDAP_CFLAGS)
-+
- man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
- EXTRA_DIST = $(man_MANS)
-
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch
index b3f8fdb0a..2f44147ad 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/fixsepbuild.patch
@@ -4,80 +4,88 @@ Upstream-Status: Pending
RP 2013/03/21
-Rebase to 4.3.1
+Rebase to 4.3.4
+
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
+ client/Makefile.am | 4 ++--
+ common/Makefile.am | 3 ++-
+ dhcpctl/Makefile.am | 2 ++
+ omapip/Makefile.am | 1 +
+ relay/Makefile.am | 2 +-
+ server/Makefile.am | 2 +-
+ 6 files changed, 9 insertions(+), 5 deletions(-)
+
diff --git a/client/Makefile.am b/client/Makefile.am
-index 8411960..1740f72 100644
+index 2cb83d8..4730bb3 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
-@@ -4,6 +4,8 @@
- # production code. Sadly, we are not there yet.
- SUBDIRS = . tests
+@@ -7,11 +7,11 @@ SUBDIRS = . tests
+ BINDLIBDIR = @BINDDIR@/lib
+
+ AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
+- -DLOCALSTATEDIR='"$(localstatedir)"'
++ -DLOCALSTATEDIR='"$(localstatedir)"' -I$(top_srcdir)/includes
-+AM_CPPFLAGS = -I$(top_srcdir)/includes
-+
dist_sysconf_DATA = dhclient.conf.example
sbin_PROGRAMS = dhclient
- dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
-@@ -17,8 +19,8 @@ EXTRA_DIST = $(man_MANS)
-
- dhclient.o: dhclient.c
- $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
-- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhclient.c
-+ -DLOCALSTATEDIR='"$(localstatedir)"' -c $(srcdir)/dhclient.c
-
- dhc6.o: dhc6.c
- $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
-- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
-+ -DLOCALSTATEDIR='"$(localstatedir)"' -c $(srcdir)/dhc6.c
+-dhclient_SOURCES = clparse.c dhclient.c dhc6.c \
++dhclient_SOURCES = $(srcdir)/clparse.c $(srcdir)/dhclient.c $(srcdir)/dhc6.c \
+ scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
+ scripts/netbsd scripts/nextstep scripts/openbsd \
+ scripts/solaris scripts/openwrt
diff --git a/common/Makefile.am b/common/Makefile.am
-index eddef05..5ce045f 100644
+index 113aee8..0f24fbb 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
-@@ -1,4 +1,4 @@
--AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
+@@ -1,4 +1,5 @@
+-AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"'
++
AM_CFLAGS = $(LDAP_CFLAGS)
noinst_LIBRARIES = libdhcp.a
diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
-index 2987a53..cd72d75 100644
+index ceb0de1..ba8dd8b 100644
--- a/dhcpctl/Makefile.am
+++ b/dhcpctl/Makefile.am
-@@ -1,3 +1,5 @@
+@@ -1,5 +1,7 @@
+ BINDLIBDIR = @BINDDIR@/lib
+
+AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir)
+
bin_PROGRAMS = omshell
lib_LIBRARIES = libdhcpctl.a
noinst_PROGRAMS = cltest
diff --git a/omapip/Makefile.am b/omapip/Makefile.am
-index 5074479..9c0fab3 100644
+index 446a594..dd1afa0 100644
--- a/omapip/Makefile.am
+++ b/omapip/Makefile.am
-@@ -1,3 +1,5 @@
+@@ -1,4 +1,5 @@
+ BINDLIBDIR = @BINDDIR@/lib
+AM_CPPFLAGS = -I$(top_srcdir)/includes
-+
+
lib_LIBRARIES = libomapi.a
noinst_PROGRAMS = svtest
-
diff --git a/relay/Makefile.am b/relay/Makefile.am
-index ec72a31..f842071 100644
+index 3060eca..6d652f6 100644
--- a/relay/Makefile.am
+++ b/relay/Makefile.am
-@@ -1,4 +1,4 @@
+@@ -1,6 +1,6 @@
+ BINDLIBDIR = @BINDDIR@/lib
+
-AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"'
+AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
sbin_PROGRAMS = dhcrelay
dhcrelay_SOURCES = dhcrelay.c
diff --git a/server/Makefile.am b/server/Makefile.am
-index a446f0b..d0b873a 100644
+index 54feedf..3990b9c 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
-@@ -4,7 +4,7 @@
- # production code. Sadly, we are not there yet.
- SUBDIRS = . tests
+@@ -6,7 +6,7 @@ SUBDIRS = . tests
+
+ BINDLIBDIR = @BINDDIR@/lib
-AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
+AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
@@ -85,5 +93,5 @@ index a446f0b..d0b873a 100644
dist_sysconf_DATA = dhcpd.conf.example
sbin_PROGRAMS = dhcpd
--
-1.9.1
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch
new file mode 100644
index 000000000..14356621c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/libxml2-configure-argument.patch
@@ -0,0 +1,38 @@
+Add configure argument to make the libxml2 dependency explicit and
+determinisitic.
+
+Upstream-Status: Pending
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
+Rebase to 4.3.4
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 726c88e..1684df1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -718,7 +718,16 @@ AC_SUBST(BINDSRCDIR)
+
+ # We need to find libxml2 if bind was built with support enabled
+ # otherwise we'll fail to build omapip/test.c
+-AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],)
++AC_ARG_WITH(libxml2,
++ AS_HELP_STRING([--with-libxml2], [link against libxml2. this is needed if bind was built with xml2 support enabled]),
++ with_libxml2="$withval", with_libxml2="no")
++
++if test x$with_libxml2 != xno; then
++ AC_SEARCH_LIBS(xmlTextWriterStartElement, [xml2],
++ [if test x$with_libxml2 != xauto; then
++ AC_MSG_FAILURE([*** Cannot find xmlTextWriterStartElement with -lxml2 and libxml2 was requested])
++ fi])
++fi
+
+ # OpenLDAP support.
+ AC_ARG_WITH(ldap,
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch
index 57e10b029..0d0e0dd08 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/link-with-lcrypto.patch
@@ -5,14 +5,20 @@ From 4.2.0 final release, -lcrypto check was removed and we compile static libra
from bind that are linked to libcrypto. This is why i added a patch in order to add
-lcrypto to LIBS.
-Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
-Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac
-===================================================================
---- dhcp-4.2.3-P2.orig/configure.ac 2012-02-02 18:04:20.843023196 +0200
-+++ dhcp-4.2.3-P2/configure.ac 2012-02-02 17:58:16.000000000 +0200
-@@ -456,6 +456,10 @@
+Rebase to 4.3.4
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 097b0c3..726c88e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -584,6 +584,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[void foo() __attribute__((noreturn));
# Look for optional headers.
AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
@@ -23,3 +29,6 @@ Index: dhcp-4.2.3-P2-r0/dhcp-4.2.3-P2/configure.ac
# Solaris needs some libraries for functions
AC_SEARCH_LIBS(socket, [socket])
AC_SEARCH_LIBS(inet_ntoa, [nsl])
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch
new file mode 100644
index 000000000..997b9f6ba
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/remove-dhclient-script-bash-dependency.patch
@@ -0,0 +1,55 @@
+From 8aed2a9ff09cb0d584ad0a7340fe3a596879d9b1 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Thu, 21 Jul 2016 19:07:02 -0700
+Subject: [PATCH] remove dhclient-script bash dependency
+
+Take the dash compatible IPv6 link-local address test from the Debian
+version of dhclient-script.
+
+Note that although "echo -e" in the OE version of dhclient-script is
+technically bash specific too, it is supported by Busybox echo when
+Busybox is configured with CONFIG_FEATURE_FANCY_ECHO enabled (which
+is the default in the OE Busybox defconfig) therefore leave as-is.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ client/scripts/linux | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/client/scripts/linux b/client/scripts/linux
+index 232a0aa..1383f46 100755
+--- a/client/scripts/linux
++++ b/client/scripts/linux
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ # dhclient-script for Linux. Dan Halbert, March, 1997.
+ # Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
+ # No guarantees about this. I'm a novice at the details of Linux
+@@ -47,11 +47,11 @@ make_resolv_conf() {
+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
+ resolv_conf="search ${new_dhcp6_domain_search}\n"
+ fi
+- shopt -s nocasematch
+ for nameserver in ${new_dhcp6_name_servers} ; do
+ # If the nameserver has a link-local address
+ # add a <zone_id> (interface name) to it.
+- if [[ "$nameserver" =~ ^fe80:: ]]
++ if [ "${nameserver##fe80::}" != "$nameserver" ] ||
++ [ "${nameserver##FE80::}" != "$nameserver" ]
+ then
+ zone_id="%$interface"
+ else
+@@ -59,7 +59,6 @@ make_resolv_conf() {
+ fi
+ resolv_conf="${resolv_conf}nameserver ${nameserver}$zone_id\n"
+ done
+- shopt -u nocasematch
+
+ echo -e "${resolv_conf}" > /etc/resolv.conf
+ fi
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch
index 61dd6a718..d84df5cd3 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/replace-ifconfig-route.patch
@@ -8,23 +8,32 @@ Upstream-Status: Pending
Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
---- dhcp-4.2.5-P1/client/scripts/linux.orig 2013-09-04 12:22:55.000000000 +0500
-+++ dhcp-4.2.5-P1/client/scripts/linux 2013-09-04 12:52:19.068761518 +0500
-@@ -103,17 +103,11 @@
+Rebase to 4.3.4
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ client/scripts/linux | 82 ++++++++++++++++++++++++++++------------------------
+ 1 file changed, 45 insertions(+), 37 deletions(-)
+
+diff --git a/client/scripts/linux b/client/scripts/linux
+index a02cfd9..232a0aa 100755
+--- a/client/scripts/linux
++++ b/client/scripts/linux
+@@ -101,17 +101,11 @@ fi
if [ x$old_broadcast_address != x ]; then
old_broadcast_arg="broadcast $old_broadcast_address"
fi
-if [ x$new_subnet_mask != x ]; then
- new_subnet_arg="netmask $new_subnet_mask"
--fi
++if [ -n "$new_subnet_mask" ]; then
++ new_mask="/$new_subnet_mask"
+ fi
-if [ x$old_subnet_mask != x ]; then
- old_subnet_arg="netmask $old_subnet_mask"
-fi
-if [ x$alias_subnet_mask != x ]; then
- alias_subnet_arg="netmask $alias_subnet_mask"
-+if [ -n "$new_subnet_mask" ]; then
-+ new_mask="/$new_subnet_mask"
- fi
+-fi
-if [ x$new_interface_mtu != x ]; then
- mtu_arg="mtu $new_interface_mtu"
+if [ -n "$alias_subnet_mask" ]; then
@@ -32,7 +41,7 @@ Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
fi
if [ x$IF_METRIC != x ]; then
metric_arg="metric $IF_METRIC"
-@@ -127,9 +121,9 @@
+@@ -125,9 +119,9 @@ fi
if [ x$reason = xPREINIT ]; then
if [ x$alias_ip_address != x ]; then
# Bring down alias interface. Its routes will disappear too.
@@ -44,7 +53,7 @@ Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
# We need to give the kernel some time to get the interface up.
sleep 1
-@@ -156,25 +150,30 @@
+@@ -154,25 +148,30 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
[ x$alias_ip_address != x$old_ip_address ]; then
# Possible new alias. Remove old alias.
@@ -81,7 +90,7 @@ Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
done
else
# we haven't changed the address, have we changed other options
-@@ -182,21 +181,23 @@
+@@ -180,21 +179,23 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
if [ x$new_routers != x ] && [ x$new_routers != x$old_routers ] ; then
# if we've changed routers delete the old and add the new.
for router in $old_routers; do
@@ -112,7 +121,7 @@ Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
fi
make_resolv_conf
exit_with_hooks 0
-@@ -206,42 +207,49 @@
+@@ -204,42 +205,49 @@ if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \
|| [ x$reason = xSTOP ]; then
if [ x$alias_ip_address != x ]; then
# Turn off alias interface.
@@ -174,3 +183,6 @@ Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
exit_with_hooks 1
fi
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/tweak-to-support-external-bind.patch b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/tweak-to-support-external-bind.patch
new file mode 100644
index 000000000..03c6abb79
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp/tweak-to-support-external-bind.patch
@@ -0,0 +1,117 @@
+From ad7bb401f47714fc30c408853b796ce0f1c7e65f Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sat, 11 Jun 2016 22:51:44 -0400
+Subject: [PATCH] tweak to support external bind
+
+Tweak the external bind to oe-core's sysroot rather than
+external bind source build.
+
+Upstream-Status: Inappropriate <oe-core specific>
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ client/Makefile.am | 2 +-
+ client/tests/Makefile.am | 2 +-
+ common/tests/Makefile.am | 2 +-
+ dhcpctl/Makefile.am | 2 +-
+ omapip/Makefile.am | 2 +-
+ relay/Makefile.am | 2 +-
+ server/Makefile.am | 2 +-
+ server/tests/Makefile.am | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/client/Makefile.am b/client/Makefile.am
+index 4730bb3..84d8131 100644
+--- a/client/Makefile.am
++++ b/client/Makefile.am
+@@ -4,7 +4,7 @@
+ # production code. Sadly, we are not there yet.
+ SUBDIRS = . tests
+
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
+ -DLOCALSTATEDIR='"$(localstatedir)"' -I$(top_srcdir)/includes
+diff --git a/client/tests/Makefile.am b/client/tests/Makefile.am
+index da69ea9..fe35e57 100644
+--- a/client/tests/Makefile.am
++++ b/client/tests/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = .
+
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = $(ATF_CFLAGS) -DUNIT_TEST -I$(top_srcdir)/includes
+ AM_CPPFLAGS += -I@BINDDIR@/include -I$(top_srcdir)
+diff --git a/common/tests/Makefile.am b/common/tests/Makefile.am
+index f8d6b0e..05cd9c1 100644
+--- a/common/tests/Makefile.am
++++ b/common/tests/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = .
+
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = $(ATF_CFLAGS) -I$(top_srcdir)/includes
+
+diff --git a/dhcpctl/Makefile.am b/dhcpctl/Makefile.am
+index ba8dd8b..9b2486e 100644
+--- a/dhcpctl/Makefile.am
++++ b/dhcpctl/Makefile.am
+@@ -1,4 +1,4 @@
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_srcdir)
+
+diff --git a/omapip/Makefile.am b/omapip/Makefile.am
+index dd1afa0..e4a8599 100644
+--- a/omapip/Makefile.am
++++ b/omapip/Makefile.am
+@@ -1,4 +1,4 @@
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+ AM_CPPFLAGS = -I$(top_srcdir)/includes
+
+ lib_LIBRARIES = libomapi.a
+diff --git a/relay/Makefile.am b/relay/Makefile.am
+index 6d652f6..b3bf578 100644
+--- a/relay/Makefile.am
++++ b/relay/Makefile.am
+@@ -1,4 +1,4 @@
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
+
+diff --git a/server/Makefile.am b/server/Makefile.am
+index 3990b9c..b5d8c2d 100644
+--- a/server/Makefile.am
++++ b/server/Makefile.am
+@@ -4,7 +4,7 @@
+ # production code. Sadly, we are not there yet.
+ SUBDIRS = . tests
+
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = -I$(top_srcdir) -DLOCALSTATEDIR='"@localstatedir@"' -I$(top_srcdir)/includes
+
+diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am
+index 65a9f74..2892309 100644
+--- a/server/tests/Makefile.am
++++ b/server/tests/Makefile.am
+@@ -1,6 +1,6 @@
+ SUBDIRS = .
+
+-BINDLIBDIR = @BINDDIR@/lib
++BINDLIBDIR = @BINDDIR@
+
+ AM_CPPFLAGS = $(ATF_CFLAGS) -DUNIT_TEST -I$(top_srcdir)/includes
+ AM_CPPFLAGS += -I@BINDDIR@/include -I$(top_srcdir)
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.3.bb b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.3.bb
deleted file mode 100644
index 4e8cd272b..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require dhcp.inc
-
-SRC_URI += "file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
- file://fix-external-bind.patch \
- file://link-with-lcrypto.patch \
- file://fixsepbuild.patch \
- file://dhclient-script-drop-resolv.conf.dhclient.patch \
- file://replace-ifconfig-route.patch \
- file://CVE-2015-8605.patch \
- file://0001-site.h-enable-gentle-shutdown.patch \
- file://CVE-2016-2774.patch \
- "
-
-SRC_URI[md5sum] = "c5577b09c9017cdd319a11ff6364268e"
-SRC_URI[sha256sum] = "553c4945b09b1c1b904c4780f34f72aaefa2fc8c6556715de0bc9d4e3d255ede"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.4.bb b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.4.bb
new file mode 100644
index 000000000..4151eb183
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/dhcp_4.3.4.bb
@@ -0,0 +1,18 @@
+require dhcp.inc
+
+SRC_URI += "file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
+ file://link-with-lcrypto.patch \
+ file://fixsepbuild.patch \
+ file://dhclient-script-drop-resolv.conf.dhclient.patch \
+ file://replace-ifconfig-route.patch \
+ file://0001-site.h-enable-gentle-shutdown.patch \
+ file://libxml2-configure-argument.patch \
+ file://tweak-to-support-external-bind.patch \
+ file://remove-dhclient-script-bash-dependency.patch \
+ "
+
+SRC_URI[md5sum] = "0138319fe2b788cf4bdf34fbeaf9ff54"
+SRC_URI[sha256sum] = "f5115aee3dd3e6925de4ba47b80ab732ba48b481c8364b6ebade2d43698d607e"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[bind-httpstats] = "--with-libxml2,--without-libxml2,libxml2"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/files/dhcrelay.service b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/files/dhcrelay.service
index a2d818917..15ff927d3 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/files/dhcrelay.service
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/dhcp/files/dhcrelay.service
@@ -3,7 +3,8 @@ Description=DHCP Relay Agent Daemon
After=network.target
[Service]
-ExecStart=@SBINDIR@/dhcrelay -d --no-pid
+EnvironmentFile=@SYSCONFDIR@/default/dhcp-relay
+ExecStart=@SBINDIR@/dhcrelay -d --no-pid -q $SERVERS
[Install]
WantedBy=multi-user.target
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2.inc b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2.inc
index 86e931063..63e7ca9e8 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2.inc
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
DEPENDS = "flex-native bison-native iptables elfutils"
-inherit update-alternatives
+inherit update-alternatives bash-completion
EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_INCDIR} DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip bridge misc genl' SBINDIR='${base_sbindir}' LIBDIR='${libdir}'"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-4.3.0-musl.patch b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-4.3.0-musl.patch
index 1b415a511..8c078f69d 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-4.3.0-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-4.3.0-musl.patch
@@ -1,64 +1,35 @@
-From 48596709d8ab59727b79a5c6db33ebb251c36543 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 19 Nov 2015 17:44:25 +0100
Subject: [PATCH] Avoid in6_addr redefinition
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
Due to both <netinet/in.h> and <linux/in6.h> being included, the
in6_addr is being redefined: once from the C library headers and once
from the kernel headers. This causes some build failures with for
-example the musl C library:
-
-In file included from ../include/linux/xfrm.h:4:0,
- from xfrm.h:29,
- from ipxfrm.c:39:
-../include/linux/in6.h:32:8: error: redefinition of â€struct in6_addr’
- struct in6_addr {
- ^
-In file included from .../output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netdb.h:9:0,
- from ipxfrm.c:34:
-.../output/host/usr/x86_64-buildroot-linux-musl/sysroot/usr/include/netinet/in.h:24:8: note: originally defined here
- struct in6_addr
- ^
+example the musl C library.
In order to fix this, use just the C library header <netinet/in.h>.
-
Original patch taken from
http://git.alpinelinux.org/cgit/aports/tree/main/iproute2/musl-fixes.patch.
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
-Upstream-Status: Pending
+(Refreshed the patch for 4.6 release)
- include/libiptc/ipt_kernel_headers.h | 2 --
- include/linux/if_bridge.h | 1 -
- include/linux/netfilter.h | 2 --
- include/linux/xfrm.h | 1 -
- 4 files changed, 6 deletions(-)
+Upstream-Status: Pending
-diff --git a/include/libiptc/ipt_kernel_headers.h b/include/libiptc/ipt_kernel_headers.h
-index 7e87828..9566be5 100644
---- a/include/libiptc/ipt_kernel_headers.h
-+++ b/include/libiptc/ipt_kernel_headers.h
-@@ -15,12 +15,10 @@
- #else /* libc5 */
- #include <sys/socket.h>
- #include <linux/ip.h>
--#include <linux/in.h>
- #include <linux/if.h>
- #include <linux/icmp.h>
- #include <linux/tcp.h>
- #include <linux/udp.h>
- #include <linux/types.h>
--#include <linux/in6.h>
- #endif
- #endif
-diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
-index ee197a3..f823aa4 100644
---- a/include/linux/if_bridge.h
-+++ b/include/linux/if_bridge.h
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+----
+diff -Naur iproute2-4.6.0-orig/include/libiptc/ipt_kernel_headers.h iproute2-4.6.0/include/libiptc/ipt_kernel_headers.h
+--- iproute2-4.6.0-orig/include/libiptc/ipt_kernel_headers.h 2016-05-23 12:03:23.821826910 +0300
++++ iproute2-4.6.0/include/libiptc/ipt_kernel_headers.h 2016-05-23 12:04:23.714078154 +0300
+@@ -6,7 +6,6 @@
+ #include <limits.h>
+
+ #include <netinet/ip.h>
+-#include <netinet/in.h>
+ #include <netinet/ip_icmp.h>
+ #include <netinet/tcp.h>
+ #include <netinet/udp.h>
+diff -Naur iproute2-4.6.0-orig/include/linux/if_bridge.h iproute2-4.6.0/include/linux/if_bridge.h
+--- iproute2-4.6.0-orig/include/linux/if_bridge.h 2016-05-23 12:03:23.821826910 +0300
++++ iproute2-4.6.0/include/linux/if_bridge.h 2016-05-23 12:04:23.716078129 +0300
@@ -15,7 +15,6 @@
#include <linux/types.h>
@@ -67,10 +38,9 @@ index ee197a3..f823aa4 100644
#define SYSFS_BRIDGE_ATTR "bridge"
#define SYSFS_BRIDGE_FDB "brforward"
-diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
-index b71b4c9..3e4e6ae 100644
---- a/include/linux/netfilter.h
-+++ b/include/linux/netfilter.h
+diff -Naur iproute2-4.6.0-orig/include/linux/netfilter.h iproute2-4.6.0/include/linux/netfilter.h
+--- iproute2-4.6.0-orig/include/linux/netfilter.h 2016-05-23 12:03:23.821826910 +0300
++++ iproute2-4.6.0/include/linux/netfilter.h 2016-05-23 12:04:23.717078117 +0300
@@ -4,8 +4,6 @@
#include <linux/types.h>
@@ -80,10 +50,20 @@ index b71b4c9..3e4e6ae 100644
/* Responses from hook functions. */
#define NF_DROP 0
-diff --git a/include/linux/xfrm.h b/include/linux/xfrm.h
-index b8f5451..a9761a5 100644
---- a/include/linux/xfrm.h
-+++ b/include/linux/xfrm.h
+diff -Naur iproute2-4.6.0-orig/include/linux/netfilter_ipv4/ip_tables.h iproute2-4.6.0/include/linux/netfilter_ipv4/ip_tables.h
+--- iproute2-4.6.0-orig/include/linux/netfilter_ipv4/ip_tables.h 2016-05-18 21:56:02.000000000 +0300
++++ iproute2-4.6.0/include/linux/netfilter_ipv4/ip_tables.h 2016-05-23 12:09:22.888337961 +0300
+@@ -17,7 +17,6 @@
+
+ #include <linux/types.h>
+
+-#include <linux/if.h>
+ #include <linux/netfilter_ipv4.h>
+
+ #include <linux/netfilter/x_tables.h>
+diff -Naur iproute2-4.6.0-orig/include/linux/xfrm.h iproute2-4.6.0/include/linux/xfrm.h
+--- iproute2-4.6.0-orig/include/linux/xfrm.h 2016-05-23 12:03:23.821826910 +0300
++++ iproute2-4.6.0/include/linux/xfrm.h 2016-05-23 12:04:23.718078104 +0300
@@ -1,7 +1,6 @@
#ifndef _LINUX_XFRM_H
#define _LINUX_XFRM_H
@@ -92,6 +72,14 @@ index b8f5451..a9761a5 100644
#include <linux/types.h>
/* All of the structures in this file may not change size as they are
---
-2.6.3
-
+diff -Naur iproute2-4.6.0-orig/include/utils.h iproute2-4.6.0/include/utils.h
+--- iproute2-4.6.0-orig/include/utils.h 2016-05-23 12:03:23.821826910 +0300
++++ iproute2-4.6.0/include/utils.h 2016-05-23 12:04:23.718078104 +0300
+@@ -1,6 +1,7 @@
+ #ifndef __UTILS_H__
+ #define __UTILS_H__ 1
+
++#include <sys/param.h> /* MAXPATHLEN */
+ #include <sys/types.h>
+ #include <asm/types.h>
+ #include <resolv.h>
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-fix-building-with-musl.patch b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-fix-building-with-musl.patch
deleted file mode 100644
index c83a243b7..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2/iproute2-fix-building-with-musl.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-iproute2: fix building with musl
-
-We need limits.h for PATH_MAX, fixes:
-
-rt_names.c:364:13: error: â€PATH_MAX’ undeclared (first use in this
-function)
-
-Upstream-Status: Backport
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
-diff --git a/lib/rt_names.c b/lib/rt_names.c
-index f6d17c0..b665d3e 100644
---- a/lib/rt_names.c
-+++ b/lib/rt_names.c
-@@ -18,6 +18,7 @@
- #include <sys/time.h>
- #include <sys/socket.h>
- #include <dirent.h>
-+#include <limits.h>
-
- #include <asm/types.h>
- #include <linux/rtnetlink.h>
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.4.0.bb b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.4.0.bb
deleted file mode 100644
index 7979e8beb..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.4.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require iproute2.inc
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
- file://configure-cross.patch \
- file://0001-iproute2-de-bash-scripts.patch \
- file://iproute2-4.3.0-musl.patch \
- file://iproute2-fix-building-with-musl.patch \
- "
-SRC_URI[md5sum] = "d762653ec3e1ab0d4a9689e169ca184f"
-SRC_URI[sha256sum] = "bc91c367288a19f78ef800cd6840363be1f22da8436fbae88e1a7250490d6514"
-
-# CFLAGS are computed in Makefile and reference CCOPTS
-#
-EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.7.0.bb b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.7.0.bb
new file mode 100644
index 000000000..426f98916
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/iproute2/iproute2_4.7.0.bb
@@ -0,0 +1,13 @@
+require iproute2.inc
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
+ file://configure-cross.patch \
+ file://0001-iproute2-de-bash-scripts.patch \
+ file://iproute2-4.3.0-musl.patch \
+ "
+SRC_URI[md5sum] = "d4b205830cdc2702f8a0cbd6232129cd"
+SRC_URI[sha256sum] = "8f60dbcfb33a79daae0638f53bdcaa4310c0aa59ae39af8a234020dc69bb7b92"
+
+# CFLAGS are computed in Makefile and reference CCOPTS
+#
+EXTRA_OEMAKE_append = " CCOPTS='${CFLAGS}'"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch b/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch
index 2e52c80c0..715b88d46 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw/0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch
@@ -7,27 +7,33 @@ Upstream-Status: Pending
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
-diff -Naur iw-4.3-origin/version.sh iw-4.3/version.sh
---- iw-4.3-origin/version.sh 2015-11-20 16:37:58.762077162 +0200
-+++ iw-4.3/version.sh 2015-11-20 16:52:05.526491150 +0200
-@@ -3,21 +3,7 @@
- VERSION="4.3"
- OUT="$1"
+diff -Naur iw-4.7-orig/version.sh iw-4.7/version.sh
+--- iw-4.7-orig/version.sh 2016-05-31 12:52:46.000000000 +0300
++++ iw-4.7/version.sh 2016-06-01 11:21:58.307409060 +0300
+@@ -15,27 +15,7 @@
+ SRC_DIR=$(cd ${SRC_DIR}; pwd)
+ cd "${SRC_DIR}"
+-v=""
-if [ -d .git ] && head=`git rev-parse --verify HEAD 2>/dev/null`; then
-- git update-index --refresh --unmerged > /dev/null
-- descr=$(git describe --match=v*)
--
-- # on git builds check that the version number above
-- # is correct...
-- [ "${descr%%-*}" = "v$VERSION" ] || exit 2
+- git update-index --refresh --unmerged > /dev/null
+- descr=$(git describe --match=v* 2>/dev/null)
+- if [ $? -eq 0 ]; then
+- # on git builds check that the version number above
+- # is correct...
+- if [ "${descr%%-*}" = "v$VERSION" ]; then
+- v="${descr#v}"
+- if git diff-index --name-only HEAD | read dummy ; then
+- v="$v"-dirty
+- fi
+- fi
+- fi
+-fi
-
-- v="${descr#v}"
-- if git diff-index --name-only HEAD | read dummy ; then
-- v="$v"-dirty
-- fi
--else
-- v="$VERSION"
+-# set to the default version when failed to get the version
+-# information with git
+-if [ -z "${v}" ]; then
+- v="$VERSION"
-fi
+v="$VERSION"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.3.bb b/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.3.bb
deleted file mode 100644
index 6865e7ad6..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "nl80211 based CLI configuration utility for wireless devices"
-DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \
-wireless devices. It supports almost all new drivers that have been added \
-to the kernel recently. "
-HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw"
-SECTION = "base"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774"
-
-DEPENDS = "libnl"
-
-SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
- file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \
- file://separate-objdir.patch \
-"
-
-SRC_URI[md5sum] = "5ca622a270687d6862c9024fab266871"
-SRC_URI[sha256sum] = "2a853d95ffbd2b06c058b40ef4e6fa76a52c2709b05fb1976761fe13e9d9e39f"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "\
- -f '${S}/Makefile' \
- \
- 'PREFIX=${prefix}' \
- 'SBINDIR=${sbindir}' \
- 'MANDIR=${mandir}' \
-"
-B = "${WORKDIR}/build"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.7.bb b/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.7.bb
new file mode 100644
index 000000000..e9f414129
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/iw/iw_4.7.bb
@@ -0,0 +1,33 @@
+SUMMARY = "nl80211 based CLI configuration utility for wireless devices"
+DESCRIPTION = "iw is a new nl80211 based CLI configuration utility for \
+wireless devices. It supports almost all new drivers that have been added \
+to the kernel recently. "
+HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw"
+SECTION = "base"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774"
+
+DEPENDS = "libnl"
+
+SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.gz \
+ file://0001-iw-version.sh-don-t-use-git-describe-for-versioning.patch \
+ file://separate-objdir.patch \
+"
+
+SRC_URI[md5sum] = "19d1edd276b2ac0c6cccfc7ae8d2b732"
+SRC_URI[sha256sum] = "758092229f13d691968060a0ad41364ba8eb8da4503626c20233a5b1eb33b4d9"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "\
+ -f '${S}/Makefile' \
+ \
+ 'PREFIX=${prefix}' \
+ 'SBINDIR=${sbindir}' \
+ 'MANDIR=${mandir}' \
+"
+B = "${WORKDIR}/build"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/libpcap/libpcap.inc b/import-layers/yocto-poky/meta/recipes-connectivity/libpcap/libpcap.inc
index b7601b05c..7b29a52dc 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/libpcap/libpcap.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/libpcap/libpcap.inc
@@ -20,12 +20,15 @@ inherit autotools binconfig-disabled pkgconfig bluetooth
EXTRA_OECONF = "--with-pcap=linux"
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
+"
PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
# Add a dummy PACKAGECONFIG for bluez5 since it is not supported by libpcap.
PACKAGECONFIG[bluez5] = ",,"
PACKAGECONFIG[canusb] = "--enable-canusb,--enable-canusb=no,libusb"
PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
PACKAGECONFIG[libnl] = "--with-libnl,--without-libnl,libnl"
CPPFLAGS_prepend = "-I${S} "
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.15.bb b/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.15.bb
deleted file mode 100644
index 93bddb34c..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.15.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "Linux NFC daemon"
-DESCRIPTION = "A daemon for the Linux Near Field Communication stack"
-HOMEPAGE = "http://01.org/linux-nfc"
-LICENSE = "GPLv2"
-
-DEPENDS = "dbus glib-2.0 libnl"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BP}.tar.xz \
- file://neard.in \
- file://Makefile.am-fix-parallel-issue.patch \
- file://Makefile.am-do-not-ship-version.h.patch \
- "
-SRC_URI[md5sum] = "b746ce62eeef88e8de90765e00a75a1c"
-SRC_URI[sha256sum] = "651f6513d32cdaf8a426255d03aff38a6620a89b0567ec2b36606c6330a93353"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
- file://src/near.h;beginline=1;endline=20;md5=358e4deefef251a4761e1ffacc965d13 \
- "
-
-inherit autotools pkgconfig systemd update-rc.d bluetooth
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
-
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/ --with-systemduserunitdir=${systemd_unitdir}/user/,--disable-systemd"
-
-EXTRA_OECONF += "--enable-tools"
-
-# This would copy neard start-stop shell and test scripts
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/init.d/
- sed "s:@installpath@:${libexecdir}/nfc:" ${WORKDIR}/neard.in \
- > ${D}${sysconfdir}/init.d/neard
- chmod 0755 ${D}${sysconfdir}/init.d/neard
- fi
-
- # Install the tests for neard-tests
- install -d ${D}${libdir}/neard
- install -m 0755 ${S}/test/* ${D}${libdir}/${BPN}/
- install -m 0755 ${B}/tools/nfctool/nfctool ${D}${libdir}/${BPN}/
-}
-
-PACKAGES =+ "${PN}-tests"
-
-FILES_${PN}-tests = "${libdir}/${BPN}/*-test"
-
-RDEPENDS_${PN} = "dbus python python-dbus python-pygobject"
-
-# Bluez & Wifi are not mandatory except for handover
-RRECOMMENDS_${PN} = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \
- "
-
-RDEPENDS_${PN}-tests = "python python-dbus python-pygobject"
-
-INITSCRIPT_NAME = "neard"
-INITSCRIPT_PARAMS = "defaults 64"
-
-SYSTEMD_SERVICE_${PN} = "neard.service"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.16.bb b/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.16.bb
new file mode 100644
index 000000000..5433dc3c3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/neard/neard_0.16.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Linux NFC daemon"
+DESCRIPTION = "A daemon for the Linux Near Field Communication stack"
+HOMEPAGE = "http://01.org/linux-nfc"
+LICENSE = "GPLv2"
+
+DEPENDS = "dbus glib-2.0 libnl"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/network/nfc/${BP}.tar.xz \
+ file://neard.in \
+ file://Makefile.am-fix-parallel-issue.patch \
+ file://Makefile.am-do-not-ship-version.h.patch \
+ "
+SRC_URI[md5sum] = "5c691fb7872856dc0d909c298bc8cb41"
+SRC_URI[sha256sum] = "eae3b11c541a988ec11ca94b7deab01080cd5b58cfef3ced6ceac9b6e6e65b36"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
+ file://src/near.h;beginline=1;endline=20;md5=358e4deefef251a4761e1ffacc965d13 \
+ "
+
+inherit autotools pkgconfig systemd update-rc.d bluetooth
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
+
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/ --with-systemduserunitdir=${systemd_unitdir}/user/,--disable-systemd"
+
+EXTRA_OECONF += "--enable-tools"
+
+# This would copy neard start-stop shell and test scripts
+do_install_append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d/
+ sed "s:@installpath@:${libexecdir}/nfc:" ${WORKDIR}/neard.in \
+ > ${D}${sysconfdir}/init.d/neard
+ chmod 0755 ${D}${sysconfdir}/init.d/neard
+ fi
+}
+
+RDEPENDS_${PN} = "dbus"
+
+# Bluez & Wifi are not mandatory except for handover
+RRECOMMENDS_${PN} = "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi','wpa-supplicant', '', d)} \
+ "
+
+INITSCRIPT_NAME = "neard"
+INITSCRIPT_PARAMS = "defaults 64"
+
+SYSTEMD_SERVICE_${PN} = "neard.service"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.3.bb b/import-layers/yocto-poky/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.3.bb
index a6268f3d4..8540503df 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/nfs-utils/nfs-utils_1.3.3.bb
@@ -64,10 +64,13 @@ EXTRA_OECONF = "--with-statduser=rpcuser \
--with-statdpath=/var/lib/nfs/statd \
"
-PACKAGECONFIG ??= "tcp-wrappers"
+PACKAGECONFIG ??= "tcp-wrappers \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', 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,"
INHIBIT_AUTO_STAGE = "1"
@@ -88,7 +91,7 @@ FILES_${PN}-client = "${base_sbindir}/*mount.nfs* ${sbindir}/*statd \
${sysconfdir}/init.d/nfscommon \
${systemd_unitdir}/system/nfs-statd.service"
FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat"
-RDEPENDS_${PN}-stats = "python"
+RDEPENDS_${PN}-stats = "python3-core"
FILES_${PN} += "${systemd_unitdir}"
@@ -140,4 +143,8 @@ do_install_append () {
rm -f ${D}${sbindir}/rpcdebug
rm -f ${D}${sbindir}/rpcgen
rm -f ${D}${sbindir}/locktest
+
+ # Make python tools use python 3
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat
+
}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono.inc b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono.inc
index c415a3998..9c47c6fde 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono.inc
@@ -26,12 +26,17 @@ SYSTEMD_SERVICE_${PN} = "ofono.service"
do_install_append() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/ofono ${D}${sysconfdir}/init.d/ofono
+
+ # Ofono still has one test tool that refers to Python 2 in the shebang
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${libdir}/ofono/test/set-ddr
+
}
PACKAGES =+ "${PN}-tests"
RDEPENDS_${PN} += "dbus"
+RRECOMMENDS_${PN} += "kernel-module-tun mobile-broadband-provider-info"
-FILES_${PN} += "${base_libdir}/udev ${systemd_unitdir}"
+FILES_${PN} += "${systemd_unitdir}"
FILES_${PN}-tests = "${libdir}/${BPN}/test"
-RDEPENDS_${PN}-tests = "python python-pygobject python-dbus"
+RDEPENDS_${PN}-tests = "python3 python3-pygobject python3-dbus"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono/Revert-test-Convert-to-Python-3.patch b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono/Revert-test-Convert-to-Python-3.patch
deleted file mode 100644
index 5f8ca7710..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono/Revert-test-Convert-to-Python-3.patch
+++ /dev/null
@@ -1,1270 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-From 572fc23f6efd65a2ef9e6c957b2506108738672b Mon Sep 17 00:00:00 2001
-From: Cristian Iorga <cristian.iorga@intel.com>
-Date: Mon, 25 Aug 2014 16:59:39 +0300
-Subject: [PATCH] Revert "test: Convert to Python 3"
-
-This reverts commit c027ab9fbc1a8e8c9e76bcd123df1ad7696307c2.
----
- test/activate-context | 2 +-
- test/answer-calls | 2 +-
- test/backtrace | 2 +-
- test/cancel-ussd | 2 +-
- test/cdma-connman-disable | 2 +-
- test/cdma-connman-enable | 2 +-
- test/cdma-dial-number | 2 +-
- test/cdma-hangup | 2 +-
- test/cdma-list-call | 2 +-
- test/cdma-set-credentials | 2 +-
- test/change-pin | 2 +-
- test/create-internet-context | 2 +-
- test/create-mms-context | 2 +-
- test/create-multiparty | 2 +-
- test/deactivate-all | 2 +-
- test/deactivate-context | 2 +-
- test/dial-number | 2 +-
- test/disable-call-forwarding | 2 +-
- test/disable-gprs | 2 +-
- test/disable-modem | 2 +-
- test/display-icon | 2 +-
- test/enable-cbs | 2 +-
- test/enable-gprs | 2 +-
- test/enable-modem | 2 +-
- test/enter-pin | 2 +-
- test/get-icon | 2 +-
- test/get-operators | 2 +-
- test/get-tech-preference | 2 +-
- test/hangup-active | 2 +-
- test/hangup-all | 2 +-
- test/hangup-call | 2 +-
- test/hangup-multiparty | 2 +-
- test/hold-and-answer | 2 +-
- test/initiate-ussd | 4 ++--
- test/list-calls | 2 +-
- test/list-contexts | 2 +-
- test/list-messages | 2 +-
- test/list-modems | 2 +-
- test/list-operators | 2 +-
- test/lock-pin | 2 +-
- test/lockdown-modem | 2 +-
- test/monitor-ofono | 4 ++--
- test/offline-modem | 2 +-
- test/online-modem | 2 +-
- test/private-chat | 2 +-
- test/process-context-settings | 2 +-
- test/receive-sms | 2 +-
- test/reject-calls | 2 +-
- test/release-and-answer | 2 +-
- test/release-and-swap | 2 +-
- test/remove-contexts | 2 +-
- test/reset-pin | 2 +-
- test/scan-for-operators | 2 +-
- test/send-sms | 2 +-
- test/send-ussd | 4 ++--
- test/send-vcal | 2 +-
- test/send-vcard | 2 +-
- test/set-call-forwarding | 2 +-
- test/set-cbs-topics | 2 +-
- test/set-context-property | 2 +-
- test/set-fast-dormancy | 2 +-
- test/set-gsm-band | 2 +-
- test/set-mic-volume | 2 +-
- test/set-mms-details | 2 +-
- test/set-msisdn | 2 +-
- test/set-roaming-allowed | 2 +-
- test/set-speaker-volume | 2 +-
- test/set-tech-preference | 2 +-
- test/set-tty | 2 +-
- test/set-umts-band | 2 +-
- test/set-use-sms-reports | 2 +-
- test/swap-calls | 2 +-
- test/test-advice-of-charge | 2 +-
- test/test-call-barring | 2 +-
- test/test-call-forwarding | 2 +-
- test/test-call-settings | 2 +-
- test/test-cbs | 4 ++--
- test/test-gnss | 4 ++--
- test/test-message-waiting | 2 +-
- test/test-modem | 2 +-
- test/test-network-registration | 2 +-
- test/test-phonebook | 2 +-
- test/test-push-notification | 2 +-
- test/test-smart-messaging | 2 +-
- test/test-sms | 18 +++++++++---------
- test/test-ss | 2 +-
- test/test-ss-control-cb | 2 +-
- test/test-ss-control-cf | 2 +-
- test/test-ss-control-cs | 2 +-
- test/test-stk-menu | 34 +++++++++++++++++-----------------
- test/unlock-pin | 2 +-
- 94 files changed, 124 insertions(+), 124 deletions(-)
-
-diff --git a/test/activate-context b/test/activate-context
-index e4fc702..4241396 100755
---- a/test/activate-context
-+++ b/test/activate-context
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/answer-calls b/test/answer-calls
-index daa794b..45ff08f 100755
---- a/test/answer-calls
-+++ b/test/answer-calls
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/backtrace b/test/backtrace
-index 03c7632..c624709 100755
---- a/test/backtrace
-+++ b/test/backtrace
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import os
- import re
-diff --git a/test/cancel-ussd b/test/cancel-ussd
-index e7559ba..1797f26 100755
---- a/test/cancel-ussd
-+++ b/test/cancel-ussd
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/cdma-connman-disable b/test/cdma-connman-disable
-index 3adc14d..0ddc0cd 100755
---- a/test/cdma-connman-disable
-+++ b/test/cdma-connman-disable
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/cdma-connman-enable b/test/cdma-connman-enable
-index ac16a2d..a3cca01 100755
---- a/test/cdma-connman-enable
-+++ b/test/cdma-connman-enable
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/cdma-dial-number b/test/cdma-dial-number
-index 683431e..9cdfb24 100755
---- a/test/cdma-dial-number
-+++ b/test/cdma-dial-number
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/cdma-hangup b/test/cdma-hangup
-index 41ffa60..493ece4 100755
---- a/test/cdma-hangup
-+++ b/test/cdma-hangup
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/cdma-list-call b/test/cdma-list-call
-index b132353..5d36a69 100755
---- a/test/cdma-list-call
-+++ b/test/cdma-list-call
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/cdma-set-credentials b/test/cdma-set-credentials
-index a60c86e..a286b0e 100755
---- a/test/cdma-set-credentials
-+++ b/test/cdma-set-credentials
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/change-pin b/test/change-pin
-index 301c6ce..000ce53 100755
---- a/test/change-pin
-+++ b/test/change-pin
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/create-internet-context b/test/create-internet-context
-index 1089053..efd0998 100755
---- a/test/create-internet-context
-+++ b/test/create-internet-context
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/create-mms-context b/test/create-mms-context
-index 598336f..e5be08d 100755
---- a/test/create-mms-context
-+++ b/test/create-mms-context
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/create-multiparty b/test/create-multiparty
-index 1b76010..97047c3 100755
---- a/test/create-multiparty
-+++ b/test/create-multiparty
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/deactivate-all b/test/deactivate-all
-index 5aa8587..427009e 100755
---- a/test/deactivate-all
-+++ b/test/deactivate-all
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/deactivate-context b/test/deactivate-context
-index 5c86a71..df47d2e 100755
---- a/test/deactivate-context
-+++ b/test/deactivate-context
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/dial-number b/test/dial-number
-index fe5adad..ee674d9 100755
---- a/test/dial-number
-+++ b/test/dial-number
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/disable-call-forwarding b/test/disable-call-forwarding
-index 811e4fa..3609816 100755
---- a/test/disable-call-forwarding
-+++ b/test/disable-call-forwarding
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- from gi.repository import GLib
-diff --git a/test/disable-gprs b/test/disable-gprs
-index 61ce216..c6c40a5 100755
---- a/test/disable-gprs
-+++ b/test/disable-gprs
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/disable-modem b/test/disable-modem
-index 6fba857..ca8c8d8 100755
---- a/test/disable-modem
-+++ b/test/disable-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/display-icon b/test/display-icon
-index ac40818..753d14d 100755
---- a/test/display-icon
-+++ b/test/display-icon
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/enable-cbs b/test/enable-cbs
-index 4a8bf66..c08bf2b 100755
---- a/test/enable-cbs
-+++ b/test/enable-cbs
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/enable-gprs b/test/enable-gprs
-index 68d5ef0..8664891 100755
---- a/test/enable-gprs
-+++ b/test/enable-gprs
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/enable-modem b/test/enable-modem
-index fc5958a..dfaaaa8 100755
---- a/test/enable-modem
-+++ b/test/enable-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/enter-pin b/test/enter-pin
-index 9556363..c6ee669 100755
---- a/test/enter-pin
-+++ b/test/enter-pin
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/get-icon b/test/get-icon
-index 5569a33..fdaaee7 100755
---- a/test/get-icon
-+++ b/test/get-icon
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/get-operators b/test/get-operators
-index 0f35c80..62354c5 100755
---- a/test/get-operators
-+++ b/test/get-operators
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/get-tech-preference b/test/get-tech-preference
-index 7ba6365..77d20d0 100755
---- a/test/get-tech-preference
-+++ b/test/get-tech-preference
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus, sys
-
-diff --git a/test/hangup-active b/test/hangup-active
-index 82e0eb0..5af62ab 100755
---- a/test/hangup-active
-+++ b/test/hangup-active
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/hangup-all b/test/hangup-all
-index 3a0138d..32933db 100755
---- a/test/hangup-all
-+++ b/test/hangup-all
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/hangup-call b/test/hangup-call
-index 5a2de20..447020c 100755
---- a/test/hangup-call
-+++ b/test/hangup-call
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/hangup-multiparty b/test/hangup-multiparty
-index 24751c3..48fe342 100755
---- a/test/hangup-multiparty
-+++ b/test/hangup-multiparty
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/hold-and-answer b/test/hold-and-answer
-index da3be57..2c47e27 100755
---- a/test/hold-and-answer
-+++ b/test/hold-and-answer
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/initiate-ussd b/test/initiate-ussd
-index faf50d0..d7022f1 100755
---- a/test/initiate-ussd
-+++ b/test/initiate-ussd
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-@@ -45,7 +45,7 @@ if state == "idle":
- print("State: %s" % (state))
-
- while state == "user-response":
-- response = input("Enter response: ")
-+ response = raw_input("Enter response: ")
-
- result = ussd.Respond(response, timeout=100)
-
-diff --git a/test/list-calls b/test/list-calls
-index f3ee991..08668c6 100755
---- a/test/list-calls
-+++ b/test/list-calls
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/list-contexts b/test/list-contexts
-index 78278ca..f0d4094 100755
---- a/test/list-contexts
-+++ b/test/list-contexts
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/list-messages b/test/list-messages
-index 9f5bce3..cfccbea 100755
---- a/test/list-messages
-+++ b/test/list-messages
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/list-modems b/test/list-modems
-index b9f510a..ed66124 100755
---- a/test/list-modems
-+++ b/test/list-modems
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/list-operators b/test/list-operators
-index 064c4e3..349bf41 100755
---- a/test/list-operators
-+++ b/test/list-operators
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/lock-pin b/test/lock-pin
-index 96ea9c2..5579735 100755
---- a/test/lock-pin
-+++ b/test/lock-pin
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/lockdown-modem b/test/lockdown-modem
-index 4e04205..781abb6 100755
---- a/test/lockdown-modem
-+++ b/test/lockdown-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/monitor-ofono b/test/monitor-ofono
-index 8830757..bd31617 100755
---- a/test/monitor-ofono
-+++ b/test/monitor-ofono
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-@@ -6,7 +6,7 @@ import dbus
- import dbus.mainloop.glib
-
- _dbus2py = {
-- dbus.String : str,
-+ dbus.String : unicode,
- dbus.UInt32 : int,
- dbus.Int32 : int,
- dbus.Int16 : int,
-diff --git a/test/offline-modem b/test/offline-modem
-index e8c043a..ea1f522 100755
---- a/test/offline-modem
-+++ b/test/offline-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus, sys
-
-diff --git a/test/online-modem b/test/online-modem
-index 029c4a5..310ed7d 100755
---- a/test/online-modem
-+++ b/test/online-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus, sys
-
-diff --git a/test/private-chat b/test/private-chat
-index e7e5406..ef2ef6c 100755
---- a/test/private-chat
-+++ b/test/private-chat
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/process-context-settings b/test/process-context-settings
-index 8a3ecfa..0f058b2 100755
---- a/test/process-context-settings
-+++ b/test/process-context-settings
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import os
- import dbus
-diff --git a/test/receive-sms b/test/receive-sms
-index a0c6915..c23eb14 100755
---- a/test/receive-sms
-+++ b/test/receive-sms
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/reject-calls b/test/reject-calls
-index 71b243e..9edf1ff 100755
---- a/test/reject-calls
-+++ b/test/reject-calls
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/release-and-answer b/test/release-and-answer
-index dec8e17..25fd818 100755
---- a/test/release-and-answer
-+++ b/test/release-and-answer
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/release-and-swap b/test/release-and-swap
-index cb8c84e..7b3569f 100755
---- a/test/release-and-swap
-+++ b/test/release-and-swap
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/remove-contexts b/test/remove-contexts
-index b54184e..c5082cb 100755
---- a/test/remove-contexts
-+++ b/test/remove-contexts
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
-
-diff --git a/test/reset-pin b/test/reset-pin
-index 3fbd126..b429254 100755
---- a/test/reset-pin
-+++ b/test/reset-pin
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/scan-for-operators b/test/scan-for-operators
-index b4fc05e..749c710 100755
---- a/test/scan-for-operators
-+++ b/test/scan-for-operators
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/send-sms b/test/send-sms
-index 98808aa..e06444d 100755
---- a/test/send-sms
-+++ b/test/send-sms
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/send-ussd b/test/send-ussd
-index a20e098..e585883 100755
---- a/test/send-ussd
-+++ b/test/send-ussd
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-@@ -46,7 +46,7 @@ if state == "idle":
- print("State: %s" % (state))
-
- while state == "user-response":
-- response = input("Enter response: ")
-+ response = raw_input("Enter response: ")
-
- print(ussd.Respond(response, timeout=100))
-
-diff --git a/test/send-vcal b/test/send-vcal
-index 566daef..7f8272b 100755
---- a/test/send-vcal
-+++ b/test/send-vcal
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/send-vcard b/test/send-vcard
-index 4dedf51..250b36f 100755
---- a/test/send-vcard
-+++ b/test/send-vcard
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-call-forwarding b/test/set-call-forwarding
-index 49d1ce0..9fd358b 100755
---- a/test/set-call-forwarding
-+++ b/test/set-call-forwarding
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- from gi.repository import GLib
-diff --git a/test/set-cbs-topics b/test/set-cbs-topics
-index db95e16..78d6d44 100755
---- a/test/set-cbs-topics
-+++ b/test/set-cbs-topics
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-context-property b/test/set-context-property
-index 5ff7a67..64a6fb8 100755
---- a/test/set-context-property
-+++ b/test/set-context-property
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-fast-dormancy b/test/set-fast-dormancy
-index ef77bcd..7bf7715 100755
---- a/test/set-fast-dormancy
-+++ b/test/set-fast-dormancy
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-gsm-band b/test/set-gsm-band
-index b37bcb5..3c17c10 100755
---- a/test/set-gsm-band
-+++ b/test/set-gsm-band
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-mic-volume b/test/set-mic-volume
-index cd6c73f..e0bff49 100755
---- a/test/set-mic-volume
-+++ b/test/set-mic-volume
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-mms-details b/test/set-mms-details
-index 6ee59fa..d2d0838 100755
---- a/test/set-mms-details
-+++ b/test/set-mms-details
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-msisdn b/test/set-msisdn
-index b5fe819..01f284d 100755
---- a/test/set-msisdn
-+++ b/test/set-msisdn
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-roaming-allowed b/test/set-roaming-allowed
-index 698c8b6..9e3e058 100755
---- a/test/set-roaming-allowed
-+++ b/test/set-roaming-allowed
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-speaker-volume b/test/set-speaker-volume
-index 6d4e301..7962f39 100755
---- a/test/set-speaker-volume
-+++ b/test/set-speaker-volume
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/set-tech-preference b/test/set-tech-preference
-index b549abc..2666cbd 100755
---- a/test/set-tech-preference
-+++ b/test/set-tech-preference
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-tty b/test/set-tty
-index eed1fba..53d6b99 100755
---- a/test/set-tty
-+++ b/test/set-tty
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-umts-band b/test/set-umts-band
-index 0bae5c4..c1e6448 100755
---- a/test/set-umts-band
-+++ b/test/set-umts-band
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/set-use-sms-reports b/test/set-use-sms-reports
-index 288d4e1..a4efe4f 100755
---- a/test/set-use-sms-reports
-+++ b/test/set-use-sms-reports
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
-diff --git a/test/swap-calls b/test/swap-calls
-index 018a8d3..eeb257b 100755
---- a/test/swap-calls
-+++ b/test/swap-calls
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/test-advice-of-charge b/test/test-advice-of-charge
-index 6e87e61..0f1f57f 100755
---- a/test/test-advice-of-charge
-+++ b/test/test-advice-of-charge
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
- import sys
-diff --git a/test/test-call-barring b/test/test-call-barring
-index eedb69f..be4ab57 100755
---- a/test/test-call-barring
-+++ b/test/test-call-barring
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
- import sys
-diff --git a/test/test-call-forwarding b/test/test-call-forwarding
-index 5db84d7..01a7294 100755
---- a/test/test-call-forwarding
-+++ b/test/test-call-forwarding
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-call-settings b/test/test-call-settings
-index 435594c..5d7ee49 100755
---- a/test/test-call-settings
-+++ b/test/test-call-settings
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-cbs b/test/test-cbs
-index a5cec06..13cdd80 100755
---- a/test/test-cbs
-+++ b/test/test-cbs
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import dbus.mainloop.glib
-@@ -78,7 +78,7 @@ def set_topics(cbs):
- invalidData = False;
- index = 0
-
-- topics = input('Enter the topic ID(s) you want to register to: ')
-+ topics = raw_input('Enter the topic ID(s) you want to register to: ')
-
- while index < len(topics):
- if topics[index] == ',' or topics[index] == '-':
-diff --git a/test/test-gnss b/test/test-gnss
-index 6ae64db..aa0b160 100755
---- a/test/test-gnss
-+++ b/test/test-gnss
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
- import sys
-@@ -40,7 +40,7 @@ def print_menu():
- def stdin_handler(channel, condition, gnss, path):
- in_key = os.read(channel.unix_get_fd(), 160).rstrip().decode('UTF-8')
- if in_key == '0':
-- xml = input('type the element and press enter: ')
-+ xml = raw_input('type the element and press enter: ')
- try:
- gnss.SendPositioningElement(dbus.String(xml))
- print("ok")
-diff --git a/test/test-message-waiting b/test/test-message-waiting
-index 432862e..b93fbf3 100755
---- a/test/test-message-waiting
-+++ b/test/test-message-waiting
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
- import sys
-diff --git a/test/test-modem b/test/test-modem
-index aa38b1f..29dbf14 100755
---- a/test/test-modem
-+++ b/test/test-modem
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-network-registration b/test/test-network-registration
-index 68b4347..c5ad586 100755
---- a/test/test-network-registration
-+++ b/test/test-network-registration
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
- import sys
-diff --git a/test/test-phonebook b/test/test-phonebook
-index 42646d3..116fd4f 100755
---- a/test/test-phonebook
-+++ b/test/test-phonebook
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus, sys
-
-diff --git a/test/test-push-notification b/test/test-push-notification
-index d972ad3..ecc6afb 100755
---- a/test/test-push-notification
-+++ b/test/test-push-notification
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-smart-messaging b/test/test-smart-messaging
-index f22efd2..188ac1e 100755
---- a/test/test-smart-messaging
-+++ b/test/test-smart-messaging
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-sms b/test/test-sms
-index 30ac651..49935e1 100755
---- a/test/test-sms
-+++ b/test/test-sms
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
- # -*- coding: utf-8 -*-
-
- from gi.repository import GLib
-@@ -132,7 +132,7 @@ def stdin_handler(channel, condition, sms, value, number):
- lock = "on"
- if in_key == '0':
- print_send_sms_menu()
-- sms_type = input('Select SMS type: ')
-+ sms_type = raw_input('Select SMS type: ')
-
- if sms_type == '1':
- message_send(sms, number, value)
-@@ -150,49 +150,49 @@ def stdin_handler(channel, condition, sms, value, number):
-
- elif in_key == '1':
- message_delivery_report(sms, 1)
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(1)" + value +
- ": UseDeliveryReports[TRUE]"))
-
- elif in_key == '2':
- message_delivery_report(sms, 0)
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(2) " + value +
- ": UseDeliveryReports[FALSE]"))
-
- elif in_key == '3':
- message_service_center_address(sms, SCA)
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(3) " + value +
- ": ServiceCenterAddress"))
-
- elif in_key == '4':
- message_bearer(sms, "ps-only")
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(4) " + value +
- ": Bearer[ps-only]"))
-
- elif in_key == '5':
- message_bearer(sms, "cs-only")
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(5) " + value +
- ": Bearer[cs-only]"))
-
- elif in_key == '6':
- message_bearer(sms, "ps-preferred")
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms, number, ("(6) " + value +
- ": Bearer[ps-preferred]"))
-
- elif in_key == '7':
- message_bearer(sms, "cs-preferred")
-- send_msg = input('Send test message[y/n]?: ')
-+ send_msg = raw_input('Send test message[y/n]?: ')
- if send_msg == 'y':
- message_send(sms,number, ("(7) " + value +
- ": Bearer[cs-preferred]"))
-diff --git a/test/test-ss b/test/test-ss
-index 4cd8732..2c80806 100755
---- a/test/test-ss
-+++ b/test/test-ss
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import sys
- import dbus
-diff --git a/test/test-ss-control-cb b/test/test-ss-control-cb
-index ddae6d3..86bac9b 100755
---- a/test/test-ss-control-cb
-+++ b/test/test-ss-control-cb
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-ss-control-cf b/test/test-ss-control-cf
-index 095eb5d..d30bf4f 100755
---- a/test/test-ss-control-cf
-+++ b/test/test-ss-control-cf
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-ss-control-cs b/test/test-ss-control-cs
-index 8180474..e0ed1d1 100755
---- a/test/test-ss-control-cs
-+++ b/test/test-ss-control-cs
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-diff --git a/test/test-stk-menu b/test/test-stk-menu
-index 0cf8fa2..ac0a5bd 100755
---- a/test/test-stk-menu
-+++ b/test/test-stk-menu
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- from gi.repository import GLib
-
-@@ -58,7 +58,7 @@ class StkAgent(dbus.service.Object):
- index += 1
-
- print("\nDefault: %d" % (default))
-- select = input("Enter Selection (t, b):")
-+ select = raw_input("Enter Selection (t, b):")
-
- if select == 'b':
- raise GoBack("User wishes to go back")
-@@ -75,7 +75,7 @@ class StkAgent(dbus.service.Object):
- print("DisplayText (%s)" % (title))
- print("Icon: (%d)" % (int(icon)))
- print("Urgent: (%d)" % (urgent))
-- key = input("Press return to clear ('t' terminates, "
-+ key = raw_input("Press return to clear ('t' terminates, "
- "'b' goes back, 'n' busy, "
- "'w' return and wait):")
-
-@@ -108,7 +108,7 @@ class StkAgent(dbus.service.Object):
- print("Hide typing: (%s)" % (hide_typing))
- print("Enter characters, min: %d, max: %d:" % (min_chars,
- max_chars))
-- userin = input("")
-+ userin = raw_input("")
-
- return userin
-
-@@ -122,7 +122,7 @@ class StkAgent(dbus.service.Object):
- print("Hide typing: (%s)" % (hide_typing))
- print("Enter digits, min: %d, max: %d:" % (min_chars,
- max_chars))
-- userin = input("'t' terminates, 'b' goes back:")
-+ userin = raw_input("'t' terminates, 'b' goes back:")
-
- if userin == 'b':
- raise GoBack("User wishes to go back")
-@@ -136,7 +136,7 @@ class StkAgent(dbus.service.Object):
- def RequestKey(self, title, icon):
- print("Title: (%s)" % (title))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Enter Key (t, b):")
-+ key = raw_input("Enter Key (t, b):")
-
- if key == 'b':
- raise GoBack("User wishes to go back")
-@@ -150,7 +150,7 @@ class StkAgent(dbus.service.Object):
- def RequestDigit(self, title, icon):
- print("Title: (%s)" % (title))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Enter Digit (t, b):")
-+ key = raw_input("Enter Digit (t, b):")
-
- if key == 'b':
- raise GoBack("User wishes to go back")
-@@ -164,7 +164,7 @@ class StkAgent(dbus.service.Object):
- def RequestQuickDigit(self, title, icon):
- print("Title: (%s)" % (title))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Quick digit (0-9, *, #, t, b):")
-+ key = raw_input("Quick digit (0-9, *, #, t, b):")
-
- if key == 'b':
- raise GoBack("User wishes to go back")
-@@ -178,7 +178,7 @@ class StkAgent(dbus.service.Object):
- def RequestConfirmation(self, title, icon):
- print("Title: (%s)" % (title))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Enter Confirmation (t, b, y, n):")
-+ key = raw_input("Enter Confirmation (t, b, y, n):")
-
- if key == 'b':
- raise GoBack("User wishes to go back")
-@@ -194,7 +194,7 @@ class StkAgent(dbus.service.Object):
- def ConfirmCallSetup(self, info, icon):
- print("Information: (%s)" % (info))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Enter Confirmation (t, y, n):")
-+ key = raw_input("Enter Confirmation (t, y, n):")
-
- if key == 't':
- raise EndSession("User wishes to terminate session")
-@@ -209,7 +209,7 @@ class StkAgent(dbus.service.Object):
- print("Information: (%s)" % (info))
- print("Icon: (%d)" % (int(icon)))
- print("URL (%s)" % (url))
-- key = input("Enter Confirmation (y, n):")
-+ key = raw_input("Enter Confirmation (y, n):")
-
- if key == 'y':
- return True
-@@ -232,7 +232,7 @@ class StkAgent(dbus.service.Object):
- signal.alarm(5)
-
- try:
-- key = input("Press return to end before end of"
-+ key = raw_input("Press return to end before end of"
- " single tone (t):")
- signal.alarm(0)
-
-@@ -250,7 +250,7 @@ class StkAgent(dbus.service.Object):
- print("LoopTone: %s" % (tone))
- print("Text: %s" % (text))
- print("Icon: %d" % (int(icon)))
-- key = input("Press return to end before timeout "
-+ key = raw_input("Press return to end before timeout "
- "('t' terminates, 'w' return and wait):")
-
- if key == 'w':
-@@ -279,7 +279,7 @@ class StkAgent(dbus.service.Object):
- def DisplayAction(self, text, icon):
- print("Text: (%s)" % (text))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Press 't' to terminate the session ")
-+ key = raw_input("Press 't' to terminate the session ")
-
- if key == 't':
- raise EndSession("User wishes to terminate session")
-@@ -289,7 +289,7 @@ class StkAgent(dbus.service.Object):
- def ConfirmOpenChannel(self, info, icon):
- print("Open channel confirmation: (%s)" % (info))
- print("Icon: (%d)" % (int(icon)))
-- key = input("Enter Confirmation (t, y, n):")
-+ key = raw_input("Enter Confirmation (t, y, n):")
-
- if key == 't':
- raise EndSession("User wishes to terminate session")
-@@ -299,7 +299,7 @@ class StkAgent(dbus.service.Object):
- return False
-
- _dbus2py = {
-- dbus.String : str,
-+ dbus.String : unicode,
- dbus.UInt32 : int,
- dbus.Int32 : int,
- dbus.Int16 : int,
-@@ -396,7 +396,7 @@ if __name__ == '__main__':
- except:
- pass
-
-- select = int(input("Enter Selection: "))
-+ select = int(raw_input("Enter Selection: "))
- stk.SelectItem(select, path)
- elif mode == 'agent':
- path = "/test/agent"
-diff --git a/test/unlock-pin b/test/unlock-pin
-index 61f4765..10b6626 100755
---- a/test/unlock-pin
-+++ b/test/unlock-pin
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/python
-
- import dbus
- import sys
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.17.bb b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.17.bb
deleted file mode 100644
index 947f9d714..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.17.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require ofono.inc
-
-SRC_URI = "\
- ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
- file://ofono \
- file://Revert-test-Convert-to-Python-3.patch \
-"
-SRC_URI[md5sum] = "d280b1d267ba5bf391d2a898fea7c748"
-SRC_URI[sha256sum] = "cbf20f07fd15253c682b23c1786d517f505c3688f7c4ea93da777e1523b89635"
-
-CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.18.bb b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.18.bb
new file mode 100644
index 000000000..b0707311a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/ofono/ofono_1.18.bb
@@ -0,0 +1,10 @@
+require ofono.inc
+
+SRC_URI = "\
+ ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+ file://ofono \
+"
+SRC_URI[md5sum] = "0a6b37c8ace891cb2a7ca5d121043a0a"
+SRC_URI[sha256sum] = "53cdbf342913f46bce4827241c60e24255a3d43a94945edf77482ae5b312d51f"
+
+CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_2.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_2.patch
deleted file mode 100644
index 9fac69c3d..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_2.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From f98a09cacff7baad8748c9aa217afd155a4d493f Mon Sep 17 00:00:00 2001
-From: "mmcc@openbsd.org" <mmcc@openbsd.org>
-Date: Tue, 20 Oct 2015 03:36:35 +0000
-Subject: [PATCH] upstream commit
-
-Replace a function-local allocation with stack memory.
-
-ok djm@
-
-Upstream-ID: c09fbbab637053a2ab9f33ca142b4e20a4c5a17e
-Upstream-Status: Backport
-CVE: CVE-2016-1907
-
-[YOCTO #8935]
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- clientloop.c | 9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/clientloop.c b/clientloop.c
-index 87ceb3d..1e05cba 100644
---- a/clientloop.c
-+++ b/clientloop.c
-@@ -1,4 +1,4 @@
--/* $OpenBSD: clientloop.c,v 1.275 2015/07/10 06:21:53 markus Exp $ */
-+/* $OpenBSD: clientloop.c,v 1.276 2015/10/20 03:36:35 mmcc Exp $ */
- /*
- * Author: Tatu Ylonen <ylo@cs.hut.fi>
- * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
-@@ -311,11 +311,10 @@ client_x11_get_proto(const char *display, const char *xauth_path,
- static char proto[512], data[512];
- FILE *f;
- int got_data = 0, generated = 0, do_unlink = 0, i;
-- char *xauthdir, *xauthfile;
-+ char xauthdir[PATH_MAX] = "", xauthfile[PATH_MAX] = "";
- struct stat st;
- u_int now, x11_timeout_real;
-
-- xauthdir = xauthfile = NULL;
- *_proto = proto;
- *_data = data;
- proto[0] = data[0] = '\0';
-@@ -343,8 +342,6 @@ client_x11_get_proto(const char *display, const char *xauth_path,
- display = xdisplay;
- }
- if (trusted == 0) {
-- xauthdir = xmalloc(PATH_MAX);
-- xauthfile = xmalloc(PATH_MAX);
- mktemp_proto(xauthdir, PATH_MAX);
- /*
- * The authentication cookie should briefly outlive
-@@ -407,8 +404,6 @@ client_x11_get_proto(const char *display, const char *xauth_path,
- unlink(xauthfile);
- rmdir(xauthdir);
- }
-- free(xauthdir);
-- free(xauthfile);
-
- /*
- * If we didn't get authentication data, just make up some
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_3.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_3.patch
deleted file mode 100644
index 3dfc51af7..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_3.patch
+++ /dev/null
@@ -1,329 +0,0 @@
-From ed4ce82dbfa8a3a3c8ea6fa0db113c71e234416c Mon Sep 17 00:00:00 2001
-From: "djm@openbsd.org" <djm@openbsd.org>
-Date: Wed, 13 Jan 2016 23:04:47 +0000
-Subject: [PATCH] upstream commit
-
-eliminate fallback from untrusted X11 forwarding to trusted
- forwarding when the X server disables the SECURITY extension; Reported by
- Thomas Hoger; ok deraadt@
-
-Upstream-ID: f76195bd2064615a63ef9674a0e4096b0713f938
-Upstream-Status: Backport
-CVE: CVE-2016-1907
-
-[YOCTO #8935]
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- clientloop.c | 114 ++++++++++++++++++++++++++++++++++++-----------------------
- clientloop.h | 4 +--
- mux.c | 22 ++++++------
- ssh.c | 23 +++++-------
- 4 files changed, 93 insertions(+), 70 deletions(-)
-
-Index: openssh-7.1p2/clientloop.c
-===================================================================
---- openssh-7.1p2.orig/clientloop.c
-+++ openssh-7.1p2/clientloop.c
-@@ -1,4 +1,4 @@
--/* $OpenBSD: clientloop.c,v 1.276 2015/10/20 03:36:35 mmcc Exp $ */
-+/* $OpenBSD: clientloop.c,v 1.279 2016/01/13 23:04:47 djm Exp $ */
- /*
- * Author: Tatu Ylonen <ylo@cs.hut.fi>
- * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
-@@ -288,6 +288,9 @@ client_x11_display_valid(const char *dis
- {
- size_t i, dlen;
-
-+ if (display == NULL)
-+ return 0;
-+
- dlen = strlen(display);
- for (i = 0; i < dlen; i++) {
- if (!isalnum((u_char)display[i]) &&
-@@ -301,34 +304,33 @@ client_x11_display_valid(const char *dis
-
- #define SSH_X11_PROTO "MIT-MAGIC-COOKIE-1"
- #define X11_TIMEOUT_SLACK 60
--void
-+int
- client_x11_get_proto(const char *display, const char *xauth_path,
- u_int trusted, u_int timeout, char **_proto, char **_data)
- {
-- char cmd[1024];
-- char line[512];
-- char xdisplay[512];
-+ char cmd[1024], line[512], xdisplay[512];
-+ char xauthfile[PATH_MAX], xauthdir[PATH_MAX];
- static char proto[512], data[512];
- FILE *f;
-- int got_data = 0, generated = 0, do_unlink = 0, i;
-- char xauthdir[PATH_MAX] = "", xauthfile[PATH_MAX] = "";
-+ int got_data = 0, generated = 0, do_unlink = 0, i, r;
- struct stat st;
- u_int now, x11_timeout_real;
-
- *_proto = proto;
- *_data = data;
-- proto[0] = data[0] = '\0';
-+ proto[0] = data[0] = xauthfile[0] = xauthdir[0] = '\0';
-
-- if (xauth_path == NULL ||(stat(xauth_path, &st) == -1)) {
-- debug("No xauth program.");
-- } else if (!client_x11_display_valid(display)) {
-- logit("DISPLAY '%s' invalid, falling back to fake xauth data",
-+ if (!client_x11_display_valid(display)) {
-+ logit("DISPLAY \"%s\" invalid; disabling X11 forwarding",
- display);
-- } else {
-- if (display == NULL) {
-- debug("x11_get_proto: DISPLAY not set");
-- return;
-- }
-+ return -1;
-+ }
-+ if (xauth_path != NULL && stat(xauth_path, &st) == -1) {
-+ debug("No xauth program.");
-+ xauth_path = NULL;
-+ }
-+
-+ if (xauth_path != NULL) {
- /*
- * Handle FamilyLocal case where $DISPLAY does
- * not match an authorization entry. For this we
-@@ -337,43 +339,60 @@ client_x11_get_proto(const char *display
- * is not perfect.
- */
- if (strncmp(display, "localhost:", 10) == 0) {
-- snprintf(xdisplay, sizeof(xdisplay), "unix:%s",
-- display + 10);
-+ if ((r = snprintf(xdisplay, sizeof(xdisplay), "unix:%s",
-+ display + 10)) < 0 ||
-+ (size_t)r >= sizeof(xdisplay)) {
-+ error("%s: display name too long", __func__);
-+ return -1;
-+ }
- display = xdisplay;
- }
- if (trusted == 0) {
-- mktemp_proto(xauthdir, PATH_MAX);
- /*
-+ * Generate an untrusted X11 auth cookie.
-+ *
- * The authentication cookie should briefly outlive
- * ssh's willingness to forward X11 connections to
- * avoid nasty fail-open behaviour in the X server.
- */
-+ mktemp_proto(xauthdir, sizeof(xauthdir));
-+ if (mkdtemp(xauthdir) == NULL) {
-+ error("%s: mkdtemp: %s",
-+ __func__, strerror(errno));
-+ return -1;
-+ }
-+ do_unlink = 1;
-+ if ((r = snprintf(xauthfile, sizeof(xauthfile),
-+ "%s/xauthfile", xauthdir)) < 0 ||
-+ (size_t)r >= sizeof(xauthfile)) {
-+ error("%s: xauthfile path too long", __func__);
-+ unlink(xauthfile);
-+ rmdir(xauthdir);
-+ return -1;
-+ }
-+
- if (timeout >= UINT_MAX - X11_TIMEOUT_SLACK)
- x11_timeout_real = UINT_MAX;
- else
- x11_timeout_real = timeout + X11_TIMEOUT_SLACK;
-- if (mkdtemp(xauthdir) != NULL) {
-- do_unlink = 1;
-- snprintf(xauthfile, PATH_MAX, "%s/xauthfile",
-- xauthdir);
-- snprintf(cmd, sizeof(cmd),
-- "%s -f %s generate %s " SSH_X11_PROTO
-- " untrusted timeout %u 2>" _PATH_DEVNULL,
-- xauth_path, xauthfile, display,
-- x11_timeout_real);
-- debug2("x11_get_proto: %s", cmd);
-- if (x11_refuse_time == 0) {
-- now = monotime() + 1;
-- if (UINT_MAX - timeout < now)
-- x11_refuse_time = UINT_MAX;
-- else
-- x11_refuse_time = now + timeout;
-- channel_set_x11_refuse_time(
-- x11_refuse_time);
-- }
-- if (system(cmd) == 0)
-- generated = 1;
-+ if ((r = snprintf(cmd, sizeof(cmd),
-+ "%s -f %s generate %s " SSH_X11_PROTO
-+ " untrusted timeout %u 2>" _PATH_DEVNULL,
-+ xauth_path, xauthfile, display,
-+ x11_timeout_real)) < 0 ||
-+ (size_t)r >= sizeof(cmd))
-+ fatal("%s: cmd too long", __func__);
-+ debug2("%s: %s", __func__, cmd);
-+ if (x11_refuse_time == 0) {
-+ now = monotime() + 1;
-+ if (UINT_MAX - timeout < now)
-+ x11_refuse_time = UINT_MAX;
-+ else
-+ x11_refuse_time = now + timeout;
-+ channel_set_x11_refuse_time(x11_refuse_time);
- }
-+ if (system(cmd) == 0)
-+ generated = 1;
- }
-
- /*
-@@ -395,9 +414,7 @@ client_x11_get_proto(const char *display
- got_data = 1;
- if (f)
- pclose(f);
-- } else
-- error("Warning: untrusted X11 forwarding setup failed: "
-- "xauth key data not generated");
-+ }
- }
-
- if (do_unlink) {
-@@ -405,6 +422,13 @@ client_x11_get_proto(const char *display
- rmdir(xauthdir);
- }
-
-+ /* Don't fall back to fake X11 data for untrusted forwarding */
-+ if (!trusted && !got_data) {
-+ error("Warning: untrusted X11 forwarding setup failed: "
-+ "xauth key data not generated");
-+ return -1;
-+ }
-+
- /*
- * If we didn't get authentication data, just make up some
- * data. The forwarding code will check the validity of the
-@@ -427,6 +451,8 @@ client_x11_get_proto(const char *display
- rnd >>= 8;
- }
- }
-+
-+ return 0;
- }
-
- /*
-Index: openssh-7.1p2/clientloop.h
-===================================================================
---- openssh-7.1p2.orig/clientloop.h
-+++ openssh-7.1p2/clientloop.h
-@@ -1,4 +1,4 @@
--/* $OpenBSD: clientloop.h,v 1.31 2013/06/02 23:36:29 dtucker Exp $ */
-+/* $OpenBSD: clientloop.h,v 1.32 2016/01/13 23:04:47 djm Exp $ */
-
- /*
- * Author: Tatu Ylonen <ylo@cs.hut.fi>
-@@ -39,7 +39,7 @@
-
- /* Client side main loop for the interactive session. */
- int client_loop(int, int, int);
--void client_x11_get_proto(const char *, const char *, u_int, u_int,
-+int client_x11_get_proto(const char *, const char *, u_int, u_int,
- char **, char **);
- void client_global_request_reply_fwd(int, u_int32_t, void *);
- void client_session2_setup(int, int, int, const char *, struct termios *,
-Index: openssh-7.1p2/mux.c
-===================================================================
---- openssh-7.1p2.orig/mux.c
-+++ openssh-7.1p2/mux.c
-@@ -1,4 +1,4 @@
--/* $OpenBSD: mux.c,v 1.54 2015/08/19 23:18:26 djm Exp $ */
-+/* $OpenBSD: mux.c,v 1.58 2016/01/13 23:04:47 djm Exp $ */
- /*
- * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
- *
-@@ -1354,16 +1354,18 @@ mux_session_confirm(int id, int success,
- char *proto, *data;
-
- /* Get reasonable local authentication information. */
-- client_x11_get_proto(display, options.xauth_location,
-+ if (client_x11_get_proto(display, options.xauth_location,
- options.forward_x11_trusted, options.forward_x11_timeout,
-- &proto, &data);
-- /* Request forwarding with authentication spoofing. */
-- debug("Requesting X11 forwarding with authentication "
-- "spoofing.");
-- x11_request_forwarding_with_spoofing(id, display, proto,
-- data, 1);
-- client_expect_confirm(id, "X11 forwarding", CONFIRM_WARN);
-- /* XXX exit_on_forward_failure */
-+ &proto, &data) == 0) {
-+ /* Request forwarding with authentication spoofing. */
-+ debug("Requesting X11 forwarding with authentication "
-+ "spoofing.");
-+ x11_request_forwarding_with_spoofing(id, display, proto,
-+ data, 1);
-+ /* XXX exit_on_forward_failure */
-+ client_expect_confirm(id, "X11 forwarding",
-+ CONFIRM_WARN);
-+ }
- }
-
- if (cctx->want_agent_fwd && options.forward_agent) {
-Index: openssh-7.1p2/ssh.c
-===================================================================
---- openssh-7.1p2.orig/ssh.c
-+++ openssh-7.1p2/ssh.c
-@@ -1,4 +1,4 @@
--/* $OpenBSD: ssh.c,v 1.420 2015/07/30 00:01:34 djm Exp $ */
-+/* $OpenBSD: ssh.c,v 1.433 2016/01/13 23:04:47 djm Exp $ */
- /*
- * Author: Tatu Ylonen <ylo@cs.hut.fi>
- * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
-@@ -1604,6 +1604,7 @@ ssh_session(void)
- struct winsize ws;
- char *cp;
- const char *display;
-+ char *proto = NULL, *data = NULL;
-
- /* Enable compression if requested. */
- if (options.compression) {
-@@ -1674,13 +1675,9 @@ ssh_session(void)
- display = getenv("DISPLAY");
- if (display == NULL && options.forward_x11)
- debug("X11 forwarding requested but DISPLAY not set");
-- if (options.forward_x11 && display != NULL) {
-- char *proto, *data;
-- /* Get reasonable local authentication information. */
-- client_x11_get_proto(display, options.xauth_location,
-- options.forward_x11_trusted,
-- options.forward_x11_timeout,
-- &proto, &data);
-+ if (options.forward_x11 && client_x11_get_proto(display,
-+ options.xauth_location, options.forward_x11_trusted,
-+ options.forward_x11_timeout, &proto, &data) == 0) {
- /* Request forwarding with authentication spoofing. */
- debug("Requesting X11 forwarding with authentication "
- "spoofing.");
-@@ -1770,6 +1767,7 @@ ssh_session2_setup(int id, int success,
- extern char **environ;
- const char *display;
- int interactive = tty_flag;
-+ char *proto = NULL, *data = NULL;
-
- if (!success)
- return; /* No need for error message, channels code sens one */
-@@ -1777,12 +1775,9 @@ ssh_session2_setup(int id, int success,
- display = getenv("DISPLAY");
- if (display == NULL && options.forward_x11)
- debug("X11 forwarding requested but DISPLAY not set");
-- if (options.forward_x11 && display != NULL) {
-- char *proto, *data;
-- /* Get reasonable local authentication information. */
-- client_x11_get_proto(display, options.xauth_location,
-- options.forward_x11_trusted,
-- options.forward_x11_timeout, &proto, &data);
-+ if (options.forward_x11 && client_x11_get_proto(display,
-+ options.xauth_location, options.forward_x11_trusted,
-+ options.forward_x11_timeout, &proto, &data) == 0) {
- /* Request forwarding with authentication spoofing. */
- debug("Requesting X11 forwarding with authentication "
- "spoofing.");
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_upstream_commit.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_upstream_commit.patch
deleted file mode 100644
index f3d132e43..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/CVE-2016-1907_upstream_commit.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d77148e3a3ef6c29b26ec74331455394581aa257 Mon Sep 17 00:00:00 2001
-From: "djm@openbsd.org" <djm@openbsd.org>
-Date: Sun, 8 Nov 2015 21:59:11 +0000
-Subject: [PATCH] upstream commit
-
-fix OOB read in packet code caused by missing return
- statement found by Ben Hawkes; ok markus@ deraadt@
-
-Upstream-ID: a3e3a85434ebfa0690d4879091959591f30efc62
-
-Upstream-Status: Backport
-CVE: CVE-2016-1907
-
-[YOCTO #8935]
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- packet.c | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: openssh-7.1p2/packet.c
-===================================================================
---- openssh-7.1p2.orig/packet.c
-+++ openssh-7.1p2/packet.c
-@@ -1855,6 +1855,7 @@ ssh_packet_process_incoming(struct ssh *
- if (len >= state->packet_discard) {
- if ((r = ssh_packet_stop_discard(ssh)) != 0)
- return r;
-+ return SSH_ERR_CONN_CORRUPT;
- }
- state->packet_discard -= len;
- return 0;
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch
new file mode 100644
index 000000000..df64a140d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/fix-potential-signed-overflow-in-pointer-arithmatic.patch
@@ -0,0 +1,99 @@
+From 3328e98bcbf2930cd7eea3e6c92ad5dcbdf4794f Mon Sep 17 00:00:00 2001
+From: Yuanjie Huang <yuanjie.huang@windriver.com>
+Date: Wed, 24 Aug 2016 03:15:43 +0000
+Subject: [PATCH] Fix potential signed overflow in pointer arithmatic
+
+Pointer arithmatic results in implementation defined signed integer
+type, so that 's - src' in strlcpy and others may trigger signed overflow.
+In case of compilation by gcc or clang with -ftrapv option, the overflow
+would lead to program abort.
+
+Upstream-status: Submitted [http://bugzilla.mindrot.org/show_bug.cgi?id=2608]
+
+Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
+---
+ openbsd-compat/strlcat.c | 8 ++++++--
+ openbsd-compat/strlcpy.c | 8 ++++++--
+ openbsd-compat/strnlen.c | 8 ++++++--
+ 3 files changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/openbsd-compat/strlcat.c b/openbsd-compat/strlcat.c
+index bcc1b61..e758ebf 100644
+--- a/openbsd-compat/strlcat.c
++++ b/openbsd-compat/strlcat.c
+@@ -23,6 +23,7 @@
+
+ #include <sys/types.h>
+ #include <string.h>
++#include <stdint.h>
+
+ /*
+ * Appends src to string dst of size siz (unlike strncat, siz is the
+@@ -55,8 +56,11 @@ strlcat(char *dst, const char *src, size_t siz)
+ s++;
+ }
+ *d = '\0';
+-
+- return(dlen + (s - src)); /* count does not include NUL */
++ /*
++ * Cast pointers to unsigned type before calculation, to avoid signed
++ * overflow when the string ends where the MSB has changed.
++ */
++ return (dlen + ((uintptr_t)s - (uintptr_t)src)); /* count does not include NUL */
+ }
+
+ #endif /* !HAVE_STRLCAT */
+diff --git a/openbsd-compat/strlcpy.c b/openbsd-compat/strlcpy.c
+index b4b1b60..b06f374 100644
+--- a/openbsd-compat/strlcpy.c
++++ b/openbsd-compat/strlcpy.c
+@@ -23,6 +23,7 @@
+
+ #include <sys/types.h>
+ #include <string.h>
++#include <stdint.h>
+
+ /*
+ * Copy src to string dst of size siz. At most siz-1 characters
+@@ -51,8 +52,11 @@ strlcpy(char *dst, const char *src, size_t siz)
+ while (*s++)
+ ;
+ }
+-
+- return(s - src - 1); /* count does not include NUL */
++ /*
++ * Cast pointers to unsigned type before calculation, to avoid signed
++ * overflow when the string ends where the MSB has changed.
++ */
++ return ((uintptr_t)s - (uintptr_t)src - 1); /* count does not include NUL */
+ }
+
+ #endif /* !HAVE_STRLCPY */
+diff --git a/openbsd-compat/strnlen.c b/openbsd-compat/strnlen.c
+index 93d5155..9b8de5d 100644
+--- a/openbsd-compat/strnlen.c
++++ b/openbsd-compat/strnlen.c
+@@ -23,6 +23,7 @@
+ #include <sys/types.h>
+
+ #include <string.h>
++#include <stdint.h>
+
+ size_t
+ strnlen(const char *str, size_t maxlen)
+@@ -31,7 +32,10 @@ strnlen(const char *str, size_t maxlen)
+
+ for (cp = str; maxlen != 0 && *cp != '\0'; cp++, maxlen--)
+ ;
+-
+- return (size_t)(cp - str);
++ /*
++ * Cast pointers to unsigned type before calculation, to avoid signed
++ * overflow when the string ends where the MSB has changed.
++ */
++ return (size_t)((uintptr_t)cp - (uintptr_t)str);
+ }
+ #endif
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/init b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/init
index 70d4a3465..1f63725cc 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/init
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/init
@@ -41,7 +41,7 @@ check_privsep_dir() {
}
check_config() {
- /usr/sbin/sshd -t || exit 1
+ /usr/sbin/sshd -t $SSHD_OPTS || exit 1
}
check_keys() {
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-cipher.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-cipher.patch
new file mode 100644
index 000000000..2773c14e5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-cipher.patch
@@ -0,0 +1,118 @@
+From d7eb26785ad4f25fb09fae46726ab8ca3fe16921 Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Mon, 22 Aug 2016 14:11:16 +0300
+Subject: [PATCH] Remove des in cipher.
+
+Upstream-Status: Pending
+
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ cipher.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/cipher.c b/cipher.c
+index 031bda9..6cd667a 100644
+--- a/cipher.c
++++ b/cipher.c
+@@ -53,8 +53,10 @@
+
+ #ifdef WITH_SSH1
+ extern const EVP_CIPHER *evp_ssh1_bf(void);
++#ifndef OPENSSL_NO_DES
+ extern const EVP_CIPHER *evp_ssh1_3des(void);
+ extern int ssh1_3des_iv(EVP_CIPHER_CTX *, int, u_char *, int);
++#endif /* OPENSSL_NO_DES */
+ #endif
+
+ struct sshcipher {
+@@ -79,15 +81,19 @@ struct sshcipher {
+
+ static const struct sshcipher ciphers[] = {
+ #ifdef WITH_SSH1
++#ifndef OPENSSL_NO_DES
+ { "des", SSH_CIPHER_DES, 8, 8, 0, 0, 0, 1, EVP_des_cbc },
+ { "3des", SSH_CIPHER_3DES, 8, 16, 0, 0, 0, 1, evp_ssh1_3des },
++#endif /* OPENSSL_NO_DES */
+ # ifndef OPENSSL_NO_BF
+ { "blowfish", SSH_CIPHER_BLOWFISH, 8, 32, 0, 0, 0, 1, evp_ssh1_bf },
+ # endif /* OPENSSL_NO_BF */
+ #endif /* WITH_SSH1 */
+ #ifdef WITH_OPENSSL
+ { "none", SSH_CIPHER_NONE, 8, 0, 0, 0, 0, 0, EVP_enc_null },
++#ifndef OPENSSL_NO_DES
+ { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, 0, 0, 1, EVP_des_ede3_cbc },
++#endif /* OPENSSL_NO_DES */
+ # ifndef OPENSSL_NO_BF
+ { "blowfish-cbc",
+ SSH_CIPHER_SSH2, 8, 16, 0, 0, 0, 1, EVP_bf_cbc },
+@@ -171,8 +177,10 @@ cipher_keylen(const struct sshcipher *c)
+ u_int
+ cipher_seclen(const struct sshcipher *c)
+ {
++#ifndef OPENSSL_NO_DES
+ if (strcmp("3des-cbc", c->name) == 0)
+ return 14;
++#endif /* OPENSSL_NO_DES */
+ return cipher_keylen(c);
+ }
+
+@@ -209,11 +217,13 @@ u_int
+ cipher_mask_ssh1(int client)
+ {
+ u_int mask = 0;
++#ifndef OPENSSL_NO_DES
+ mask |= 1 << SSH_CIPHER_3DES; /* Mandatory */
+ mask |= 1 << SSH_CIPHER_BLOWFISH;
+ if (client) {
+ mask |= 1 << SSH_CIPHER_DES;
+ }
++#endif /*OPENSSL_NO_DES*/
+ return mask;
+ }
+
+@@ -553,7 +563,9 @@ cipher_get_keyiv(struct sshcipher_ctx *cc, u_char *iv, u_int len)
+ switch (c->number) {
+ #ifdef WITH_OPENSSL
+ case SSH_CIPHER_SSH2:
++#ifndef OPENSSL_NO_DES
+ case SSH_CIPHER_DES:
++#endif /* OPENSSL_NO_DES */
+ case SSH_CIPHER_BLOWFISH:
+ evplen = EVP_CIPHER_CTX_iv_length(&cc->evp);
+ if (evplen == 0)
+@@ -576,8 +588,10 @@ cipher_get_keyiv(struct sshcipher_ctx *cc, u_char *iv, u_int len)
+ break;
+ #endif
+ #ifdef WITH_SSH1
++#ifndef OPENSSL_NO_DES
+ case SSH_CIPHER_3DES:
+ return ssh1_3des_iv(&cc->evp, 0, iv, 24);
++#endif /* OPENSSL_NO_DES */
+ #endif
+ default:
+ return SSH_ERR_INVALID_ARGUMENT;
+@@ -601,7 +615,9 @@ cipher_set_keyiv(struct sshcipher_ctx *cc, const u_char *iv)
+ switch (c->number) {
+ #ifdef WITH_OPENSSL
+ case SSH_CIPHER_SSH2:
++#ifndef OPENSSL_NO_DES
+ case SSH_CIPHER_DES:
++#endif /* OPENSSL_NO_DES */
+ case SSH_CIPHER_BLOWFISH:
+ evplen = EVP_CIPHER_CTX_iv_length(&cc->evp);
+ if (evplen <= 0)
+@@ -616,8 +632,10 @@ cipher_set_keyiv(struct sshcipher_ctx *cc, const u_char *iv)
+ break;
+ #endif
+ #ifdef WITH_SSH1
++#ifndef OPENSSL_NO_DES
+ case SSH_CIPHER_3DES:
+ return ssh1_3des_iv(&cc->evp, 1, (u_char *)iv, 24);
++#endif /* OPENSSL_NO_DES */
+ #endif
+ default:
+ return SSH_ERR_INVALID_ARGUMENT;
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-pkcs11.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-pkcs11.patch
new file mode 100644
index 000000000..815af422f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh/openssh-7.1p1-conditional-compile-des-in-pkcs11.patch
@@ -0,0 +1,70 @@
+From 04cfd84423f693d879dc3ffebb0f6fe2680c254f Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Fri, 18 Mar 2016 15:59:21 +0800
+Subject: [PATCH 3/3] remove des in pkcs11.
+
+Upstream-Status: Pending
+
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+
+---
+ pkcs11.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/pkcs11.h b/pkcs11.h
+index b01d58f..98b36e6 100644
+--- a/pkcs11.h
++++ b/pkcs11.h
+@@ -342,9 +342,11 @@ typedef unsigned long ck_key_type_t;
+ #define CKK_GENERIC_SECRET (0x10)
+ #define CKK_RC2 (0x11)
+ #define CKK_RC4 (0x12)
++#ifndef OPENSSL_NO_DES
+ #define CKK_DES (0x13)
+ #define CKK_DES2 (0x14)
+ #define CKK_DES3 (0x15)
++#endif /* OPENSSL_NO_DES */
+ #define CKK_CAST (0x16)
+ #define CKK_CAST3 (0x17)
+ #define CKK_CAST128 (0x18)
+@@ -512,6 +514,7 @@ typedef unsigned long ck_mechanism_type_t;
+ #define CKM_RC2_CBC_PAD (0x105)
+ #define CKM_RC4_KEY_GEN (0x110)
+ #define CKM_RC4 (0x111)
++#ifndef OPENSSL_NO_DES
+ #define CKM_DES_KEY_GEN (0x120)
+ #define CKM_DES_ECB (0x121)
+ #define CKM_DES_CBC (0x122)
+@@ -525,6 +528,7 @@ typedef unsigned long ck_mechanism_type_t;
+ #define CKM_DES3_MAC (0x134)
+ #define CKM_DES3_MAC_GENERAL (0x135)
+ #define CKM_DES3_CBC_PAD (0x136)
++#endif /* OPENSSL_NO_DES */
+ #define CKM_CDMF_KEY_GEN (0x140)
+ #define CKM_CDMF_ECB (0x141)
+ #define CKM_CDMF_CBC (0x142)
+@@ -610,8 +614,10 @@ typedef unsigned long ck_mechanism_type_t;
+ #define CKM_MD5_KEY_DERIVATION (0x390)
+ #define CKM_MD2_KEY_DERIVATION (0x391)
+ #define CKM_SHA1_KEY_DERIVATION (0x392)
++#ifndef OPENSSL_NO_DES
+ #define CKM_PBE_MD2_DES_CBC (0x3a0)
+ #define CKM_PBE_MD5_DES_CBC (0x3a1)
++#endif /* OPENSSL_NO_DES */
+ #define CKM_PBE_MD5_CAST_CBC (0x3a2)
+ #define CKM_PBE_MD5_CAST3_CBC (0x3a3)
+ #define CKM_PBE_MD5_CAST5_CBC (0x3a4)
+@@ -620,8 +626,10 @@ typedef unsigned long ck_mechanism_type_t;
+ #define CKM_PBE_SHA1_CAST128_CBC (0x3a5)
+ #define CKM_PBE_SHA1_RC4_128 (0x3a6)
+ #define CKM_PBE_SHA1_RC4_40 (0x3a7)
++#ifndef OPENSSL_NO_DES
+ #define CKM_PBE_SHA1_DES3_EDE_CBC (0x3a8)
+ #define CKM_PBE_SHA1_DES2_EDE_CBC (0x3a9)
++#endif /* OPENSSL_NO_DES */
+ #define CKM_PBE_SHA1_RC2_128_CBC (0x3aa)
+ #define CKM_PBE_SHA1_RC2_40_CBC (0x3ab)
+ #define CKM_PKCS5_PBKD2 (0x3b0)
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.1p2.bb b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.1p2.bb
deleted file mode 100644
index 3b5e28a1d..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.1p2.bb
+++ /dev/null
@@ -1,161 +0,0 @@
-SUMMARY = "Secure rlogin/rsh/rcp/telnet replacement"
-DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \
-Ssh (Secure Shell) is a program for logging into a remote machine \
-and for executing commands on a remote machine."
-HOMEPAGE = "http://openssh.org"
-SECTION = "console/network"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=e326045657e842541d3f35aada442507"
-
-DEPENDS = "zlib openssl"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-SRC_URI = "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \
- file://sshd_config \
- file://ssh_config \
- file://init \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
- file://sshd.socket \
- file://sshd@.service \
- file://sshdgenkeys.service \
- file://volatiles.99_sshd \
- file://add-test-support-for-busybox.patch \
- file://run-ptest \
- file://CVE-2016-1907_upstream_commit.patch \
- file://CVE-2016-1907_2.patch \
- file://CVE-2016-1907_3.patch "
-
-PAM_SRC_URI = "file://sshd"
-
-SRC_URI[md5sum] = "4d8547670e2a220d5ef805ad9e47acf2"
-SRC_URI[sha256sum] = "dd75f024dcf21e06a0d6421d582690bf987a1f6323e32ad6619392f3bfde6bbd"
-
-inherit useradd update-rc.d update-alternatives systemd
-
-USERADD_PACKAGES = "${PN}-sshd"
-USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd"
-INITSCRIPT_PACKAGES = "${PN}-sshd"
-INITSCRIPT_NAME_${PN}-sshd = "sshd"
-INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9"
-
-SYSTEMD_PACKAGES = "${PN}-sshd"
-SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket"
-
-inherit autotools-brokensep ptest
-
-# LFS support:
-CFLAGS += "-D__FILE_OFFSET_BITS=64"
-
-# login path is hardcoded in sshd
-EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
- --without-zlib-version-check \
- --with-privsep-path=/var/run/sshd \
- --sysconfdir=${sysconfdir}/ssh \
- --with-xauth=/usr/bin/xauth \
- --disable-strip \
- "
-
-# Since we do not depend on libbsd, we do not want configure to use it
-# just because it finds libutil.h. But, specifying --disable-libutil
-# causes compile errors, so...
-CACHED_CONFIGUREVARS += "ac_cv_header_bsd_libutil_h=no ac_cv_header_libutil_h=no"
-
-# passwd path is hardcoded in sshd
-CACHED_CONFIGUREVARS += "ac_cv_path_PATH_PASSWD_PROG=${bindir}/passwd"
-
-# We don't want to depend on libblockfile
-CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no"
-
-# This is a workaround for uclibc because including stdio.h
-# pulls in pthreads.h and causes conflicts in function prototypes.
-# This results in compilation failure, so unless this is fixed,
-# disable pam for uclibc.
-EXTRA_OECONF_append_libc-uclibc=" --without-pam"
-
-do_configure_prepend () {
- export LD="${CC}"
- install -m 0644 ${WORKDIR}/sshd_config ${B}/
- install -m 0644 ${WORKDIR}/ssh_config ${B}/
- if [ ! -e acinclude.m4 -a -e aclocal.m4 ]; then
- cp aclocal.m4 acinclude.m4
- fi
-}
-
-do_compile_ptest() {
- # skip regress/unittests/ binaries: this will silently skip
- # unittests in run-ptests which is good because they are so slow.
- oe_runmake regress/modpipe regress/setuid-allowed regress/netcat
-}
-
-do_install_append () {
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
- install -D -m 0644 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd
- sed -i -e 's:#UsePAM no:UsePAM yes:' ${D}${sysconfdir}/ssh/sshd_config
- fi
-
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then
- sed -i -e 's:#X11Forwarding no:X11Forwarding yes:' ${D}${sysconfdir}/ssh/sshd_config
- fi
-
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd
- rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin
- rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir}
- install -d ${D}/${sysconfdir}/default/volatiles
- install -m 644 ${WORKDIR}/volatiles.99_sshd ${D}/${sysconfdir}/default/volatiles/99_sshd
- install -m 0755 ${S}/contrib/ssh-copy-id ${D}${bindir}
-
- # Create config files for read-only rootfs
- install -d ${D}${sysconfdir}/ssh
- install -m 644 ${D}${sysconfdir}/ssh/sshd_config ${D}${sysconfdir}/ssh/sshd_config_readonly
- sed -i '/HostKey/d' ${D}${sysconfdir}/ssh/sshd_config_readonly
- echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
- echo "HostKey /var/run/ssh/ssh_host_dsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
- echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
-
- install -d ${D}${systemd_unitdir}/system
- install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system
- install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system
- install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@BINDIR@,${bindir},g' \
- ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service
-}
-
-do_install_ptest () {
- sed -i -e "s|^SFTPSERVER=.*|SFTPSERVER=${libexecdir}/sftp-server|" regress/test-exec.sh
- cp -r regress ${D}${PTEST_PATH}
-}
-
-ALLOW_EMPTY_${PN} = "1"
-
-PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server"
-FILES_${PN}-scp = "${bindir}/scp.${BPN}"
-FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config"
-FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd ${systemd_unitdir}/system"
-FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config ${sysconfdir}/ssh/sshd_config_readonly ${sysconfdir}/default/volatiles/99_sshd ${sysconfdir}/pam.d/sshd"
-FILES_${PN}-sftp = "${bindir}/sftp"
-FILES_${PN}-sftp-server = "${libexecdir}/sftp-server"
-FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*"
-FILES_${PN}-keygen = "${bindir}/ssh-keygen"
-
-RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen"
-RDEPENDS_${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-keyinit pam-plugin-loginuid', '', d)}"
-RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make"
-
-RPROVIDES_${PN}-ssh = "ssh"
-RPROVIDES_${PN}-sshd = "sshd"
-
-RCONFLICTS_${PN} = "dropbear"
-RCONFLICTS_${PN}-sshd = "dropbear"
-RCONFLICTS_${PN}-keygen = "ssh-keygen"
-
-CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config"
-CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config"
-
-ALTERNATIVE_PRIORITY = "90"
-ALTERNATIVE_${PN}-scp = "scp"
-ALTERNATIVE_${PN}-ssh = "ssh"
-
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.3p1.bb b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.3p1.bb
new file mode 100644
index 000000000..039b0ffdd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssh/openssh_7.3p1.bb
@@ -0,0 +1,164 @@
+SUMMARY = "A suite of security-related network utilities based on \
+the SSH protocol including the ssh client and sshd server"
+DESCRIPTION = "Secure rlogin/rsh/rcp/telnet replacement (OpenSSH) \
+Ssh (Secure Shell) is a program for logging into a remote machine \
+and for executing commands on a remote machine."
+HOMEPAGE = "http://www.openssh.com/"
+SECTION = "console/network"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=e326045657e842541d3f35aada442507"
+
+DEPENDS = "zlib openssl"
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \
+ file://sshd_config \
+ file://ssh_config \
+ file://init \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+ file://sshd.socket \
+ file://sshd@.service \
+ file://sshdgenkeys.service \
+ file://volatiles.99_sshd \
+ file://add-test-support-for-busybox.patch \
+ file://run-ptest \
+ file://openssh-7.1p1-conditional-compile-des-in-cipher.patch \
+ file://openssh-7.1p1-conditional-compile-des-in-pkcs11.patch \
+ file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \
+ "
+
+PAM_SRC_URI = "file://sshd"
+
+SRC_URI[md5sum] = "dfadd9f035d38ce5d58a3bf130b86d08"
+SRC_URI[sha256sum] = "3ffb989a6dcaa69594c3b550d4855a5a2e1718ccdde7f5e36387b424220fbecc"
+
+inherit useradd update-rc.d update-alternatives systemd
+
+USERADD_PACKAGES = "${PN}-sshd"
+USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd"
+INITSCRIPT_PACKAGES = "${PN}-sshd"
+INITSCRIPT_NAME_${PN}-sshd = "sshd"
+INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9"
+
+SYSTEMD_PACKAGES = "${PN}-sshd"
+SYSTEMD_SERVICE_${PN}-sshd = "sshd.socket"
+
+inherit autotools-brokensep ptest
+
+# LFS support:
+CFLAGS += "-D__FILE_OFFSET_BITS=64"
+
+# login path is hardcoded in sshd
+EXTRA_OECONF = "'LOGIN_PROGRAM=${base_bindir}/login' \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
+ --without-zlib-version-check \
+ --with-privsep-path=/var/run/sshd \
+ --sysconfdir=${sysconfdir}/ssh \
+ --with-xauth=/usr/bin/xauth \
+ --disable-strip \
+ "
+
+# Since we do not depend on libbsd, we do not want configure to use it
+# just because it finds libutil.h. But, specifying --disable-libutil
+# causes compile errors, so...
+CACHED_CONFIGUREVARS += "ac_cv_header_bsd_libutil_h=no ac_cv_header_libutil_h=no"
+
+# passwd path is hardcoded in sshd
+CACHED_CONFIGUREVARS += "ac_cv_path_PATH_PASSWD_PROG=${bindir}/passwd"
+
+# We don't want to depend on libblockfile
+CACHED_CONFIGUREVARS += "ac_cv_header_maillock_h=no"
+
+# This is a workaround for uclibc because including stdio.h
+# pulls in pthreads.h and causes conflicts in function prototypes.
+# This results in compilation failure, so unless this is fixed,
+# disable pam for uclibc.
+EXTRA_OECONF_append_libc-uclibc=" --without-pam"
+
+do_configure_prepend () {
+ export LD="${CC}"
+ install -m 0644 ${WORKDIR}/sshd_config ${B}/
+ install -m 0644 ${WORKDIR}/ssh_config ${B}/
+ if [ ! -e acinclude.m4 -a -e aclocal.m4 ]; then
+ cp aclocal.m4 acinclude.m4
+ fi
+}
+
+do_compile_ptest() {
+ # skip regress/unittests/ binaries: this will silently skip
+ # unittests in run-ptests which is good because they are so slow.
+ oe_runmake regress/modpipe regress/setuid-allowed regress/netcat
+}
+
+do_install_append () {
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
+ install -D -m 0644 ${WORKDIR}/sshd ${D}${sysconfdir}/pam.d/sshd
+ sed -i -e 's:#UsePAM no:UsePAM yes:' ${D}${sysconfdir}/ssh/sshd_config
+ fi
+
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then
+ sed -i -e 's:#X11Forwarding no:X11Forwarding yes:' ${D}${sysconfdir}/ssh/sshd_config
+ fi
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/sshd
+ rm -f ${D}${bindir}/slogin ${D}${datadir}/Ssh.bin
+ rmdir ${D}${localstatedir}/run/sshd ${D}${localstatedir}/run ${D}${localstatedir}
+ install -d ${D}/${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_sshd ${D}/${sysconfdir}/default/volatiles/99_sshd
+ install -m 0755 ${S}/contrib/ssh-copy-id ${D}${bindir}
+
+ # Create config files for read-only rootfs
+ install -d ${D}${sysconfdir}/ssh
+ install -m 644 ${D}${sysconfdir}/ssh/sshd_config ${D}${sysconfdir}/ssh/sshd_config_readonly
+ sed -i '/HostKey/d' ${D}${sysconfdir}/ssh/sshd_config_readonly
+ echo "HostKey /var/run/ssh/ssh_host_rsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
+ echo "HostKey /var/run/ssh/ssh_host_dsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
+ echo "HostKey /var/run/ssh/ssh_host_ecdsa_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
+ echo "HostKey /var/run/ssh/ssh_host_ed25519_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
+
+ install -d ${D}${systemd_unitdir}/system
+ install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_unitdir}/system
+ install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_unitdir}/system
+ install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ ${D}${systemd_unitdir}/system/sshd.socket ${D}${systemd_unitdir}/system/*.service
+}
+
+do_install_ptest () {
+ sed -i -e "s|^SFTPSERVER=.*|SFTPSERVER=${libexecdir}/sftp-server|" regress/test-exec.sh
+ cp -r regress ${D}${PTEST_PATH}
+}
+
+ALLOW_EMPTY_${PN} = "1"
+
+PACKAGES =+ "${PN}-keygen ${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-sftp ${PN}-misc ${PN}-sftp-server"
+FILES_${PN}-scp = "${bindir}/scp.${BPN}"
+FILES_${PN}-ssh = "${bindir}/ssh.${BPN} ${sysconfdir}/ssh/ssh_config"
+FILES_${PN}-sshd = "${sbindir}/sshd ${sysconfdir}/init.d/sshd ${systemd_unitdir}/system"
+FILES_${PN}-sshd += "${sysconfdir}/ssh/moduli ${sysconfdir}/ssh/sshd_config ${sysconfdir}/ssh/sshd_config_readonly ${sysconfdir}/default/volatiles/99_sshd ${sysconfdir}/pam.d/sshd"
+FILES_${PN}-sftp = "${bindir}/sftp"
+FILES_${PN}-sftp-server = "${libexecdir}/sftp-server"
+FILES_${PN}-misc = "${bindir}/ssh* ${libexecdir}/ssh*"
+FILES_${PN}-keygen = "${bindir}/ssh-keygen"
+
+RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen"
+RDEPENDS_${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-keyinit pam-plugin-loginuid', '', d)}"
+RDEPENDS_${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make"
+
+RPROVIDES_${PN}-ssh = "ssh"
+RPROVIDES_${PN}-sshd = "sshd"
+
+RCONFLICTS_${PN} = "dropbear"
+RCONFLICTS_${PN}-sshd = "dropbear"
+RCONFLICTS_${PN}-keygen = "ssh-keygen"
+
+CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config"
+CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN}-scp = "scp"
+ALTERNATIVE_${PN}-ssh = "ssh"
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl.inc b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl.inc
index a5ddf4d4b..f3a2c5abd 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl.inc
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl.inc
@@ -8,7 +8,7 @@ SECTION = "libs/network"
LICENSE = "openssl"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8"
-DEPENDS = "hostperl-runtime-native"
+DEPENDS = "makedepend-native hostperl-runtime-native"
DEPENDS_append_class-target = " openssl-native"
SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
@@ -36,15 +36,15 @@ PACKAGES =+ "libcrypto libssl ${PN}-misc openssl-conf"
FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}"
FILES_libssl = "${libdir}/libssl${SOLIBS}"
FILES_${PN} =+ " ${libdir}/ssl/*"
-FILES_${PN}-misc = "${libdir}/ssl/misc ${bindir}/c_rehash"
+FILES_${PN}-misc = "${libdir}/ssl/misc"
RDEPENDS_${PN}-misc = "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perl', '', d)}"
# Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
# package RRECOMMENDS on this package. This will enable the configuration
# file to be installed for both the base openssl package and the libcrypto
# package since the base openssl package depends on the libcrypto package.
-FILES_openssl-conf = "${libdir}/ssl/openssl.cnf"
-CONFFILES_openssl-conf = "${libdir}/ssl/openssl.cnf"
+FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
+CONFFILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf"
RRECOMMENDS_libcrypto += "openssl-conf"
RDEPENDS_${PN}-ptest += "${PN}-misc make perl perl-module-filehandle bc"
@@ -114,7 +114,10 @@ do_configure () {
target=debian-mipsel
;;
linux-*-mips64 | linux-mips64)
- target=linux-mips
+ target=debian-mips64
+ ;;
+ linux-*-mips64el | linux-mips64el)
+ target=debian-mips64el
;;
linux-microblaze*|linux-nios2*)
target=linux-generic32
@@ -149,10 +152,14 @@ do_compile_prepend_class-target () {
}
do_compile () {
+ oe_runmake depend
oe_runmake
}
do_compile_ptest () {
+ # build dependencies for test directory too
+ export DIRS="$DIRS test"
+ oe_runmake depend
oe_runmake buildtest
}
@@ -168,36 +175,60 @@ do_install () {
install -d ${D}${includedir}
cp --dereference -R include/openssl ${D}${includedir}
+ install -Dm 0755 ${WORKDIR}/openssl-c_rehash.sh ${D}${bindir}/c_rehash
+ sed -i -e 's,/etc/openssl,${sysconfdir}/ssl,g' ${D}${bindir}/c_rehash
+
oe_multilib_header openssl/opensslconf.h
if [ "${@bb.utils.contains('PACKAGECONFIG', 'perl', 'perl', '', d)}" = "perl" ]; then
- install -m 0755 ${S}/tools/c_rehash ${D}${bindir}
- sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${bindir}/c_rehash
sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/CA.pl
sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/tsget
- # The c_rehash utility isn't installed by the normal installation process.
else
- rm -f ${D}${bindir}/c_rehash
rm -f ${D}${libdir}/ssl/misc/CA.pl ${D}${libdir}/ssl/misc/tsget
fi
+
+ # Create SSL structure
+ install -d ${D}${sysconfdir}/ssl/
+ mv ${D}${libdir}/ssl/openssl.cnf \
+ ${D}${libdir}/ssl/certs \
+ ${D}${libdir}/ssl/private \
+ \
+ ${D}${sysconfdir}/ssl/
+ ln -sf ${sysconfdir}/ssl/certs ${D}${libdir}/ssl/certs
+ ln -sf ${sysconfdir}/ssl/private ${D}${libdir}/ssl/private
+ ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${libdir}/ssl/openssl.cnf
}
do_install_ptest () {
cp -r -L Makefile.org Makefile test ${D}${PTEST_PATH}
cp Configure config e_os.h ${D}${PTEST_PATH}
cp -r -L include ${D}${PTEST_PATH}
- ln -sf ${base_libdir}/libcrypto.a ${D}${PTEST_PATH}
+ ln -sf ${libdir}/libcrypto.a ${D}${PTEST_PATH}
ln -sf ${libdir}/libssl.a ${D}${PTEST_PATH}
mkdir -p ${D}${PTEST_PATH}/crypto
cp crypto/constant_time_locl.h ${D}${PTEST_PATH}/crypto
cp -r certs ${D}${PTEST_PATH}
mkdir -p ${D}${PTEST_PATH}/apps
ln -sf ${libdir}/ssl/misc/CA.sh ${D}${PTEST_PATH}/apps
- ln -sf ${libdir}/ssl/openssl.cnf ${D}${PTEST_PATH}/apps
+ ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${PTEST_PATH}/apps
ln -sf ${bindir}/openssl ${D}${PTEST_PATH}/apps
+ cp apps/server.pem ${D}${PTEST_PATH}/apps
cp apps/server2.pem ${D}${PTEST_PATH}/apps
mkdir -p ${D}${PTEST_PATH}/util
install util/opensslwrap.sh ${D}${PTEST_PATH}/util
install util/shlib_wrap.sh ${D}${PTEST_PATH}/util
+ # Time stamps are relevant for "make alltests", otherwise
+ # make may try to recompile binaries. Not only must the
+ # binary files be newer than the sources, they also must
+ # be more recent than the header files in /usr/include.
+ #
+ # Using "cp -a" is not sufficient, because do_install
+ # does not preserve the original time stamps.
+ #
+ # So instead of using the original file stamps, we set
+ # the current time for all files. Binaries will get
+ # modified again later when stripping them, but that's okay.
+ touch ${D}${PTEST_PATH}
+ find ${D}${PTEST_PATH} -type f -print0 | xargs --verbose -0 touch -r ${D}${PTEST_PATH}
}
do_install_append_class-native() {
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/crypto_use_bigint_in_x86-64_perl.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/crypto_use_bigint_in_x86-64_perl.patch
deleted file mode 100644
index af3989f62..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/crypto_use_bigint_in_x86-64_perl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Backport
-
-When building on x32 systems where the default type is 32bit, make sure
-we can transparently represent 64bit integers. Otherwise we end up with
-build errors like:
-/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s
-Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890.
-...
-ghash-x86_64.s: Assembler messages:
-ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression
-
-We don't enable this globally as there are some cases where we'd get
-32bit values interpreted as unsigned when we need them as signed.
-
-Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh>
-URL: https://bugs.gentoo.org/542618
-
-Signed-off-By: Armin Kuster <akuster@mvista.com>
-
-Index: openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl
-===================================================================
---- openssl-1.0.2a.orig/crypto/perlasm/x86_64-xlate.pl
-+++ openssl-1.0.2a/crypto/perlasm/x86_64-xlate.pl
-@@ -194,7 +194,10 @@ my %globals;
- }
- sub out {
- my $self = shift;
--
-+ # When building on x32 ABIs, the expanded hex value might be too
-+ # big to fit into 32bits. Enable transparent 64bit support here
-+ # so we can safely print it out.
-+ use bigint;
- if ($gas) {
- # Solaris /usr/ccs/bin/as can't handle multiplications
- # in $self->{value}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/debian/ca.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/debian/ca.patch
index aba4d4298..fb745e439 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/debian/ca.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/debian/ca.patch
@@ -7,7 +7,7 @@ Index: openssl-0.9.8m/apps/CA.pl.in
@@ -65,6 +65,7 @@
foreach (@ARGV) {
if ( /^(-\?|-h|-help)$/ ) {
- print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-verify\n";
+ print STDERR "usage: CA -newcert|-newreq|-newreq-nodes|-newca|-sign|-signcert|-verify\n";
+ print STDERR "usage: CA -signcert certfile keyfile|-newcert|-newreq|-newca|-sign|-verify\n";
exit 0;
} elsif (/^-newcert$/) {
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch
index 06d1ea69d..2a318a458 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/fix-cipher-des-ede3-cfb1.patch
@@ -4,7 +4,7 @@ This patch adds the fix for one of the ciphers used in openssl, namely
the cipher des-ede3-cfb1. Complete bug log and patch is present here:
http://rt.openssl.org/Ticket/Display.html?id=2867
-Signed-Off-By: Muhammad Shakeel <muhammad_shakeel@mentor.com>
+Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Index: openssl-1.0.2/crypto/evp/e_des3.c
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch
index cebc8cf0d..f736e5c09 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch
@@ -8,16 +8,16 @@ http://www.mail-archive.com/openssl-dev@openssl.org/msg32860.html
Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
---
-Index: openssl-1.0.2/crypto/evp/digest.c
+Index: openssl-1.0.2h/crypto/evp/digest.c
===================================================================
---- openssl-1.0.2.orig/crypto/evp/digest.c
-+++ openssl-1.0.2/crypto/evp/digest.c
-@@ -208,7 +208,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c
- return 0;
+--- openssl-1.0.2h.orig/crypto/evp/digest.c
++++ openssl-1.0.2h/crypto/evp/digest.c
+@@ -211,7 +211,7 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, c
+ type = ctx->digest;
}
#endif
- if (ctx->digest != type) {
+ if (type && (ctx->digest != type)) {
- if (ctx->digest && ctx->digest->ctx_size)
+ if (ctx->digest && ctx->digest->ctx_size) {
OPENSSL_free(ctx->md_data);
- ctx->digest = type;
+ ctx->md_data = NULL;
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh
new file mode 100644
index 000000000..f67f41554
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-c_rehash.sh
@@ -0,0 +1,210 @@
+#!/bin/sh
+#
+# Ben Secrest <blsecres@gmail.com>
+#
+# sh c_rehash script, scan all files in a directory
+# and add symbolic links to their hash values.
+#
+# based on the c_rehash perl script distributed with openssl
+#
+# LICENSE: See OpenSSL license
+# ^^acceptable?^^
+#
+
+# default certificate location
+DIR=/etc/openssl
+
+# for filetype bitfield
+IS_CERT=$(( 1 << 0 ))
+IS_CRL=$(( 1 << 1 ))
+
+
+# check to see if a file is a certificate file or a CRL file
+# arguments:
+# 1. the filename to be scanned
+# returns:
+# bitfield of file type; uses ${IS_CERT} and ${IS_CRL}
+#
+check_file()
+{
+ local IS_TYPE=0
+
+ # make IFS a newline so we can process grep output line by line
+ local OLDIFS=${IFS}
+ IFS=$( printf "\n" )
+
+ # XXX: could be more efficient to have two 'grep -m' but is -m portable?
+ for LINE in $( grep '^-----BEGIN .*-----' ${1} )
+ do
+ if echo ${LINE} \
+ | grep -q -E '^-----BEGIN (X509 |TRUSTED )?CERTIFICATE-----'
+ then
+ IS_TYPE=$(( ${IS_TYPE} | ${IS_CERT} ))
+
+ if [ $(( ${IS_TYPE} & ${IS_CRL} )) -ne 0 ]
+ then
+ break
+ fi
+ elif echo ${LINE} | grep -q '^-----BEGIN X509 CRL-----'
+ then
+ IS_TYPE=$(( ${IS_TYPE} | ${IS_CRL} ))
+
+ if [ $(( ${IS_TYPE} & ${IS_CERT} )) -ne 0 ]
+ then
+ break
+ fi
+ fi
+ done
+
+ # restore IFS
+ IFS=${OLDIFS}
+
+ return ${IS_TYPE}
+}
+
+
+#
+# use openssl to fingerprint a file
+# arguments:
+# 1. the filename to fingerprint
+# 2. the method to use (x509, crl)
+# returns:
+# none
+# assumptions:
+# user will capture output from last stage of pipeline
+#
+fingerprint()
+{
+ ${SSL_CMD} ${2} -fingerprint -noout -in ${1} | sed 's/^.*=//' | tr -d ':'
+}
+
+
+#
+# link_hash - create links to certificate files
+# arguments:
+# 1. the filename to create a link for
+# 2. the type of certificate being linked (x509, crl)
+# returns:
+# 0 on success, 1 otherwise
+#
+link_hash()
+{
+ local FINGERPRINT=$( fingerprint ${1} ${2} )
+ local HASH=$( ${SSL_CMD} ${2} -hash -noout -in ${1} )
+ local SUFFIX=0
+ local LINKFILE=''
+ local TAG=''
+
+ if [ ${2} = "crl" ]
+ then
+ TAG='r'
+ fi
+
+ LINKFILE=${HASH}.${TAG}${SUFFIX}
+
+ while [ -f ${LINKFILE} ]
+ do
+ if [ ${FINGERPRINT} = $( fingerprint ${LINKFILE} ${2} ) ]
+ then
+ echo "NOTE: Skipping duplicate file ${1}" >&2
+ return 1
+ fi
+
+ SUFFIX=$(( ${SUFFIX} + 1 ))
+ LINKFILE=${HASH}.${TAG}${SUFFIX}
+ done
+
+ echo "${1} => ${LINKFILE}"
+
+ # assume any system with a POSIX shell will either support symlinks or
+ # do something to handle this gracefully
+ ln -s ${1} ${LINKFILE}
+
+ return 0
+}
+
+
+# hash_dir create hash links in a given directory
+hash_dir()
+{
+ echo "Doing ${1}"
+
+ cd ${1}
+
+ ls -1 * 2>/dev/null | while read FILE
+ do
+ if echo ${FILE} | grep -q -E '^[[:xdigit:]]{8}\.r?[[:digit:]]+$' \
+ && [ -h "${FILE}" ]
+ then
+ rm ${FILE}
+ fi
+ done
+
+ ls -1 *.pem *.cer *.crt *.crl 2>/dev/null | while read FILE
+ do
+ check_file ${FILE}
+ local FILE_TYPE=${?}
+ local TYPE_STR=''
+
+ if [ $(( ${FILE_TYPE} & ${IS_CERT} )) -ne 0 ]
+ then
+ TYPE_STR='x509'
+ elif [ $(( ${FILE_TYPE} & ${IS_CRL} )) -ne 0 ]
+ then
+ TYPE_STR='crl'
+ else
+ echo "NOTE: ${FILE} does not contain a certificate or CRL: skipping" >&2
+ continue
+ fi
+
+ link_hash ${FILE} ${TYPE_STR}
+ done
+}
+
+
+# choose the name of an ssl application
+if [ -n "${OPENSSL}" ]
+then
+ SSL_CMD=$(which ${OPENSSL} 2>/dev/null)
+else
+ SSL_CMD=/usr/bin/openssl
+ OPENSSL=${SSL_CMD}
+ export OPENSSL
+fi
+
+# fix paths
+PATH=${PATH}:${DIR}/bin
+export PATH
+
+# confirm existance/executability of ssl command
+if ! [ -x ${SSL_CMD} ]
+then
+ echo "${0}: rehashing skipped ('openssl' program not available)" >&2
+ exit 0
+fi
+
+# determine which directories to process
+old_IFS=$IFS
+if [ ${#} -gt 0 ]
+then
+ IFS=':'
+ DIRLIST=${*}
+elif [ -n "${SSL_CERT_DIR}" ]
+then
+ DIRLIST=$SSL_CERT_DIR
+else
+ DIRLIST=${DIR}/certs
+fi
+
+IFS=':'
+
+# process directories
+for CERT_DIR in ${DIRLIST}
+do
+ if [ -d ${CERT_DIR} -a -w ${CERT_DIR} ]
+ then
+ IFS=$old_IFS
+ hash_dir ${CERT_DIR}
+ IFS=':'
+ fi
+done
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch
new file mode 100644
index 000000000..065b9b122
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl-util-perlpath.pl-cwd.patch
@@ -0,0 +1,34 @@
+From e427748f3bb5d37e78dc8d70a558c373aa8ababb Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Mon, 19 Sep 2016 22:06:28 -0700
+Subject: [PATCH] util/perlpath.pl: make it work when cwd is not in @INC
+
+Fixed when building on Debian-testing:
+| Can't locate find.pl in @INC (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.2 /usr/local/share/perl/5.22.2 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at perlpath.pl line 7.
+
+The find.pl is added by oe-core, so once openssl/find.pl is removed,
+then this patch can be dropped.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ util/perlpath.pl | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/util/perlpath.pl b/util/perlpath.pl
+index a1f236b..5599892 100755
+--- a/util/perlpath.pl
++++ b/util/perlpath.pl
+@@ -4,6 +4,8 @@
+ # line in all scripts that rely on perl.
+ #
+
++BEGIN { unshift @INC, "."; }
++
+ require "find.pl";
+
+ $#ARGV == 0 || print STDERR "usage: perlpath newpath (eg /usr/bin)\n";
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch
index cbce32c89..0f08a642f 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/openssl_fix_for_x32.patch
@@ -2,10 +2,10 @@ Upstream-Status: Pending
Received from H J Liu @ Intel
Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/13
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/07/13
ported the patch to the 1.0.0e version
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/01
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/01
Index: openssl-1.0.2/crypto/bn/bn.h
===================================================================
--- openssl-1.0.2.orig/crypto/bn/bn.h
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/parallel.patch b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/parallel.patch
index b6c2c148b..f3f4c9988 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/parallel.patch
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl/parallel.patch
@@ -6,6 +6,9 @@ https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1
Upstream-Status: Pending
Signed-off-by: Ross Burton <ross.burton@intel.com>
+Refreshed for 1.0.2i
+Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
+
--- openssl-1.0.2g/crypto/Makefile
+++ openssl-1.0.2g/crypto/Makefile
@@ -85,11 +85,11 @@
@@ -133,7 +136,7 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
fi; \
--- openssl-1.0.2g/test/Makefile
+++ openssl-1.0.2g/test/Makefile
-@@ -139,7 +139,7 @@
+@@ -144,7 +144,7 @@
tags:
ctags $(SRC)
@@ -142,7 +145,7 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
apps:
@(cd ..; $(MAKE) DIRS=apps all)
-@@ -421,130 +421,130 @@
+@@ -438,136 +438,136 @@
link_app.$${shlib_target}
$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
@@ -309,13 +312,21 @@ Signed-off-by: Ross Burton <ross.burton@intel.com>
- @target=$(CLIENTHELLOTEST) $(BUILD_CMD)
+ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD)
+ $(BADDTLSTEST)$(EXE_EXT): $(BADDTLSTEST).o
+- @target=$(BADDTLSTEST) $(BUILD_CMD)
++ +@target=$(BADDTLSTEST) $(BUILD_CMD)
+
$(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o
- @target=$(SSLV2CONFTEST) $(BUILD_CMD)
+ +@target=$(SSLV2CONFTEST) $(BUILD_CMD)
+ $(DTLSTEST)$(EXE_EXT): $(DTLSTEST).o ssltestlib.o $(DLIBSSL) $(DLIBCRYPTO)
+- @target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD)
++ +@target=$(DTLSTEST); exobj=ssltestlib.o; $(BUILD_CMD)
+
#$(AESTEST).o: $(AESTEST).c
# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
-@@ -557,7 +557,7 @@
+@@ -580,6 +580,6 @@
# fi
dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2g.bb b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2g.bb
deleted file mode 100644
index 290f129fc..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2g.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-require openssl.inc
-
-# For target side versions of openssl enable support for OCF Linux driver
-# if they are available.
-DEPENDS += "cryptodev-linux"
-
-CFLAG += "-DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=27ffa5d74bb5a337056c14b2ef93fbf6"
-
-export DIRS = "crypto ssl apps engines"
-export OE_LDFLAGS="${LDFLAGS}"
-
-SRC_URI += "file://find.pl;subdir=${BP}/util/ \
- file://run-ptest \
- file://configure-targets.patch \
- file://shared-libs.patch \
- file://oe-ldflags.patch \
- file://engines-install-in-libdir-ssl.patch \
- file://debian1.0.2/block_diginotar.patch \
- file://debian1.0.2/block_digicert_malaysia.patch \
- file://debian/ca.patch \
- file://debian/c_rehash-compat.patch \
- file://debian/debian-targets.patch \
- file://debian/man-dir.patch \
- file://debian/man-section.patch \
- file://debian/no-rpath.patch \
- file://debian/no-symbolic.patch \
- file://debian/pic.patch \
- file://debian1.0.2/version-script.patch \
- file://openssl_fix_for_x32.patch \
- file://fix-cipher-des-ede3-cfb1.patch \
- file://openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch \
- file://openssl-fix-des.pod-error.patch \
- file://Makefiles-ptest.patch \
- file://ptest-deps.patch \
- file://crypto_use_bigint_in_x86-64_perl.patch \
- file://openssl-1.0.2a-x32-asm.patch \
- file://ptest_makefile_deps.patch \
- file://configure-musl-target.patch \
- file://parallel.patch \
- "
-
-SRC_URI[md5sum] = "f3c710c045cdee5fd114feb69feba7aa"
-SRC_URI[sha256sum] = "b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33"
-
-PACKAGES =+ "${PN}-engines"
-FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines"
-
-# The crypto_use_bigint patch means that perl's bignum module needs to be
-# installed, but some distributions (for example Fedora 23) don't ship it by
-# default. As the resulting error is very misleading check for bignum before
-# building.
-do_configure_prepend() {
- if ! perl -Mbigint -e true; then
- bbfatal "The perl module 'bignum' was not found but this is required to build openssl. Please install this module (often packaged as perl-bignum) and re-run bitbake."
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb
new file mode 100644
index 000000000..257e3cfc4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb
@@ -0,0 +1,58 @@
+require openssl.inc
+
+# For target side versions of openssl enable support for OCF Linux driver
+# if they are available.
+DEPENDS += "cryptodev-linux"
+
+CFLAG += "-DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=27ffa5d74bb5a337056c14b2ef93fbf6"
+
+export DIRS = "crypto ssl apps engines"
+export OE_LDFLAGS="${LDFLAGS}"
+
+SRC_URI += "file://find.pl;subdir=${BP}/util/ \
+ file://run-ptest \
+ file://openssl-c_rehash.sh \
+ file://configure-targets.patch \
+ file://shared-libs.patch \
+ file://oe-ldflags.patch \
+ file://engines-install-in-libdir-ssl.patch \
+ file://debian1.0.2/block_diginotar.patch \
+ file://debian1.0.2/block_digicert_malaysia.patch \
+ file://debian/ca.patch \
+ file://debian/c_rehash-compat.patch \
+ file://debian/debian-targets.patch \
+ file://debian/man-dir.patch \
+ file://debian/man-section.patch \
+ file://debian/no-rpath.patch \
+ file://debian/no-symbolic.patch \
+ file://debian/pic.patch \
+ file://debian1.0.2/version-script.patch \
+ file://openssl_fix_for_x32.patch \
+ file://fix-cipher-des-ede3-cfb1.patch \
+ file://openssl-avoid-NULL-pointer-dereference-in-EVP_DigestInit_ex.patch \
+ file://openssl-fix-des.pod-error.patch \
+ file://Makefiles-ptest.patch \
+ file://ptest-deps.patch \
+ file://openssl-1.0.2a-x32-asm.patch \
+ file://ptest_makefile_deps.patch \
+ file://configure-musl-target.patch \
+ file://parallel.patch \
+ file://openssl-util-perlpath.pl-cwd.patch \
+ "
+SRC_URI[md5sum] = "96322138f0b69e61b7212bc53d5e912b"
+SRC_URI[sha256sum] = "e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431"
+
+PACKAGES =+ "${PN}-engines"
+FILES_${PN}-engines = "${libdir}/ssl/engines/*.so ${libdir}/engines"
+
+# The crypto_use_bigint patch means that perl's bignum module needs to be
+# installed, but some distributions (for example Fedora 23) don't ship it by
+# default. As the resulting error is very misleading check for bignum before
+# building.
+do_configure_prepend() {
+ if ! perl -Mbigint -e true; then
+ bbfatal "The perl module 'bignum' was not found but this is required to build openssl. Please install this module (often packaged as perl-bignum) and re-run bitbake."
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch b/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch
new file mode 100644
index 000000000..f77b0defc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp/ppp-fix-building-with-linux-4.8.patch
@@ -0,0 +1,44 @@
+From 3da19af53e2eee2e77b456cfbb9d633b06656d38 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 13 Oct 2016 13:41:43 +0800
+Subject: [PATCH] ppp: fix building with linux-4.8
+
+Fix a build error when using the linux-4.8 headers that results in:
+
+In file included from pppoe.h:87:0,
+ from plugin.c:29:
+../usr/include/netinet/in.h:211:8: note: originally defined here
+ struct in6_addr
+ ^~~~~~~~
+In file included from ../usr/include/linux/if_pppol2tp.h:20:0,
+ from ../usr/include/linux/if_pppox.h:26,
+ from plugin.c:52:
+../usr/include/linux/in6.h:49:8: error: redefinition of 'struct sockaddr_in6'
+ struct sockaddr_in6 {
+ ^~~~~~~~~~~~
+
+Upstream-Status: Submitted [1]
+
+[1] https://github.com/paulusmack/ppp/pull/69
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ pppd/plugins/rp-pppoe/pppoe.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
+index 9ab2eee..96d2794 100644
+--- a/pppd/plugins/rp-pppoe/pppoe.h
++++ b/pppd/plugins/rp-pppoe/pppoe.h
+@@ -84,7 +84,7 @@ typedef unsigned long UINT32_t;
+ #include <linux/if_ether.h>
+ #endif
+
+-#include <netinet/in.h>
++#include <linux/in.h>
+
+ #ifdef HAVE_NETINET_IF_ETHER_H
+ #include <sys/types.h>
+--
+2.8.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb b/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb
index 4437b5c51..56dbd98d2 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/ppp/ppp_2.4.7.bb
@@ -30,6 +30,7 @@ SRC_URI = "http://ppp.samba.org/ftp/ppp/ppp-${PV}.tar.gz \
file://0001-ppp-Fix-compilation-errors-in-Makefile.patch \
file://ppp@.service \
file://fix-CVE-2015-3310.patch \
+ file://ppp-fix-building-with-linux-4.8.patch \
"
SRC_URI_append_libc-musl = "\
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.78.bb b/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.78.bb
deleted file mode 100644
index f4c58514a..000000000
--- a/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.78.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "name server information handler"
-DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \
-information about currently available nameservers. It sets \
-itself up as the intermediary between programs that supply \
-nameserver information and programs that need nameserver \
-information."
-SECTION = "console/network"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-AUTHOR = "Thomas Hood"
-HOMEPAGE = "http://packages.debian.org/resolvconf"
-RDEPENDS_${PN} = "bash"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20150828T220730Z/pool/main/r/${BPN}/${BPN}_1.78.tar.xz \
- file://fix-path-for-busybox.patch \
- file://99_resolvconf \
- "
-
-SRC_URI[md5sum] = "373a9f9544c84aa477a7425ae773b8b5"
-SRC_URI[sha256sum] = "961b22e8fcf0c7de7e90a050323e6fa221bc8b25a5348c160be3506f7e73a7a3"
-
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/"
-
-inherit allarch
-
-do_compile () {
- :
-}
-
-do_install () {
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/${BPN}/interface - - - -" \
- > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf
- fi
- install -d ${D}${base_libdir}/${BPN}
- install -d ${D}${sysconfdir}/${BPN}
- ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
- install -d ${D}${sysconfdir} ${D}${base_sbindir}
- install -d ${D}${mandir}/man8 ${D}${docdir}/${P}
- cp -pPR etc/* ${D}${sysconfdir}/
- chown -R root:root ${D}${sysconfdir}/
- install -m 0755 bin/resolvconf ${D}${base_sbindir}/
- install -m 0755 bin/list-records ${D}${base_libdir}/${BPN}
- install -d ${D}/${sysconfdir}/network/if-up.d
- install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf
- install -d ${D}/${sysconfdir}/network/if-down.d
- install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf
- install -m 0644 README ${D}${docdir}/${P}/
- install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/
-}
-
-pkg_postinst_${PN} () {
- if [ -z "$D" ]; then
- if command -v systemd-tmpfiles >/dev/null; then
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf
- elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
- ${sysconfdir}/init.d/populate-volatile.sh update
- fi
- fi
-}
-
-FILES_${PN} += "${base_libdir}/${BPN}"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb b/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb
new file mode 100644
index 000000000..855017728
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/resolvconf/resolvconf_1.79.bb
@@ -0,0 +1,67 @@
+SUMMARY = "name server information handler"
+DESCRIPTION = "Resolvconf is a framework for keeping track of the system's \
+information about currently available nameservers. It sets \
+itself up as the intermediary between programs that supply \
+nameserver information and programs that need nameserver \
+information."
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+AUTHOR = "Thomas Hood"
+HOMEPAGE = "http://packages.debian.org/resolvconf"
+RDEPENDS_${PN} = "bash"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160520T044340Z/pool/main/r/${BPN}/${BPN}_1.79.tar.xz \
+ file://fix-path-for-busybox.patch \
+ file://99_resolvconf \
+ "
+
+SRC_URI[md5sum] = "aab2382020fc518f06a06e924c56d300"
+SRC_URI[sha256sum] = "8e2843cd4162b706f0481b3c281657728cbc2822e50a64fff79b79bd8aa870a0"
+
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/r/resolvconf/"
+
+inherit allarch
+
+do_compile () {
+ :
+}
+
+do_install () {
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_resolvconf ${D}${sysconfdir}/default/volatiles
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/${BPN}/interface - - - -" \
+ > ${D}${sysconfdir}/tmpfiles.d/resolvconf.conf
+ fi
+ install -d ${D}${base_libdir}/${BPN}
+ install -d ${D}${sysconfdir}/${BPN}
+ ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
+ install -d ${D}${sysconfdir} ${D}${base_sbindir}
+ install -d ${D}${mandir}/man8 ${D}${docdir}/${P}
+ cp -pPR etc/* ${D}${sysconfdir}/
+ chown -R root:root ${D}${sysconfdir}/
+ install -m 0755 bin/resolvconf ${D}${base_sbindir}/
+ install -m 0755 bin/list-records ${D}${base_libdir}/${BPN}
+ install -d ${D}/${sysconfdir}/network/if-up.d
+ install -m 0755 debian/resolvconf.000resolvconf.if-up ${D}/${sysconfdir}/network/if-up.d/000resolvconf
+ install -d ${D}/${sysconfdir}/network/if-down.d
+ install -m 0755 debian/resolvconf.resolvconf.if-down ${D}/${sysconfdir}/network/if-down.d/resolvconf
+ install -m 0644 README ${D}${docdir}/${P}/
+ install -m 0644 man/resolvconf.8 ${D}${mandir}/man8/
+}
+
+pkg_postinst_${PN} () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/resolvconf.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
+
+FILES_${PN} += "${base_libdir}/${BPN}"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/socat/socat_1.7.3.1.bb b/import-layers/yocto-poky/meta/recipes-connectivity/socat/socat_1.7.3.1.bb
index 6da9a17b3..4da6d3970 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/socat/socat_1.7.3.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/socat/socat_1.7.3.1.bb
@@ -25,9 +25,7 @@ inherit autotools
EXTRA_AUTORECONF += "--exclude=autoheader"
-EXTRA_OECONF += "ac_cv_have_z_modifier=yes sc_cv_sys_crdly_shift=9 \
- sc_cv_sys_tabdly_shift=11 sc_cv_sys_csize_shift=4 \
- ac_cv_ispeed_offset=13 \
+EXTRA_OECONF += "ac_cv_have_z_modifier=yes \
ac_cv_header_bsd_libutil_h=no \
"
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch
new file mode 100644
index 000000000..dd7d5f726
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch
@@ -0,0 +1,55 @@
+From 73e4abb24a936014727924d8b0b2965edfc117dd Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Fri, 4 Mar 2016 18:46:41 +0200
+Subject: [PATCH 1/3] Reject psk parameter set with invalid passphrase
+ character
+
+WPA/WPA2-Personal passphrase is not allowed to include control
+characters. Reject a passphrase configuration attempt if that passphrase
+includes an invalid passphrase.
+
+This fixes an issue where wpa_supplicant could have updated the
+configuration file psk parameter with arbitrary data from the control
+interface or D-Bus interface. While those interfaces are supposed to be
+accessible only for trusted users/applications, it may be possible that
+an untrusted user has access to a management software component that
+does not validate the passphrase value before passing it to
+wpa_supplicant.
+
+This could allow such an untrusted user to inject up to 63 characters of
+almost arbitrary data into the configuration file. Such configuration
+file could result in wpa_supplicant trying to load a library (e.g.,
+opensc_engine_path, pkcs11_engine_path, pkcs11_module_path,
+load_dynamic_eap) from user controlled location when starting again.
+This would allow code from that library to be executed under the
+wpa_supplicant process privileges.
+
+Upstream-Status: Backport
+
+CVE: CVE-2016-4477
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+Signed-off-by: Zhixiong Chi <Zhixiong.Chi@windriver.com>
+---
+ wpa_supplicant/config.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
+index b1c7870..fdd9643 100644
+--- a/wpa_supplicant/config.c
++++ b/wpa_supplicant/config.c
+@@ -478,6 +478,12 @@ static int wpa_config_parse_psk(const struct parse_data *data,
+ }
+ wpa_hexdump_ascii_key(MSG_MSGDUMP, "PSK (ASCII passphrase)",
+ (u8 *) value, len);
++ if (has_ctrl_char((u8 *) value, len)) {
++ wpa_printf(MSG_ERROR,
++ "Line %d: Invalid passphrase character",
++ line);
++ return -1;
++ }
+ if (ssid->passphrase && os_strlen(ssid->passphrase) == len &&
+ os_memcmp(ssid->passphrase, value, len) == 0) {
+ /* No change to the previously configured value */
+--
+1.9.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-Reject-a-Credential-with-invalid-passphrase.patch b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-Reject-a-Credential-with-invalid-passphrase.patch
new file mode 100644
index 000000000..db222e41d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-Reject-a-Credential-with-invalid-passphrase.patch
@@ -0,0 +1,86 @@
+From ecbb0b3dc122b0d290987cf9c84010bbe53e1022 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Fri, 4 Mar 2016 17:20:18 +0200
+Subject: [PATCH 1/2] WPS: Reject a Credential with invalid passphrase
+
+WPA/WPA2-Personal passphrase is not allowed to include control
+characters. Reject a Credential received from a WPS Registrar both as
+STA (Credential) and AP (AP Settings) if the credential is for WPAPSK or
+WPA2PSK authentication type and includes an invalid passphrase.
+
+This fixes an issue where hostapd or wpa_supplicant could have updated
+the configuration file PSK/passphrase parameter with arbitrary data from
+an external device (Registrar) that may not be fully trusted. Should
+such data include a newline character, the resulting configuration file
+could become invalid and fail to be parsed.
+
+Upstream-Status: Backport
+
+CVE: CVE-2016-4476
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+Signed-off-by: Zhixiong Chi <Zhixiong.Chi@windriver.com>
+---
+ src/utils/common.c | 12 ++++++++++++
+ src/utils/common.h | 1 +
+ src/wps/wps_attr_process.c | 10 ++++++++++
+ 3 files changed, 23 insertions(+)
+
+diff --git a/src/utils/common.c b/src/utils/common.c
+index 450e2c6..27b7c02 100644
+--- a/src/utils/common.c
++++ b/src/utils/common.c
+@@ -697,6 +697,18 @@ int is_hex(const u8 *data, size_t len)
+ }
+
+
++int has_ctrl_char(const u8 *data, size_t len)
++{
++ size_t i;
++
++ for (i = 0; i < len; i++) {
++ if (data[i] < 32 || data[i] == 127)
++ return 1;
++ }
++ return 0;
++}
++
++
+ size_t merge_byte_arrays(u8 *res, size_t res_len,
+ const u8 *src1, size_t src1_len,
+ const u8 *src2, size_t src2_len)
+diff --git a/src/utils/common.h b/src/utils/common.h
+index 701dbb2..a972240 100644
+--- a/src/utils/common.h
++++ b/src/utils/common.h
+@@ -488,6 +488,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len);
+
+ char * wpa_config_parse_string(const char *value, size_t *len);
+ int is_hex(const u8 *data, size_t len);
++int has_ctrl_char(const u8 *data, size_t len);
+ size_t merge_byte_arrays(u8 *res, size_t res_len,
+ const u8 *src1, size_t src1_len,
+ const u8 *src2, size_t src2_len);
+diff --git a/src/wps/wps_attr_process.c b/src/wps/wps_attr_process.c
+index eadb22f..e8c4579 100644
+--- a/src/wps/wps_attr_process.c
++++ b/src/wps/wps_attr_process.c
+@@ -229,6 +229,16 @@ static int wps_workaround_cred_key(struct wps_credential *cred)
+ cred->key_len--;
+ #endif /* CONFIG_WPS_STRICT */
+ }
++
++
++ if (cred->auth_type & (WPS_AUTH_WPAPSK | WPS_AUTH_WPA2PSK) &&
++ (cred->key_len < 8 || has_ctrl_char(cred->key, cred->key_len))) {
++ wpa_printf(MSG_INFO, "WPS: Reject credential with invalid WPA/WPA2-Personal passphrase");
++ wpa_hexdump_ascii_key(MSG_INFO, "WPS: Network Key",
++ cred->key, cred->key_len);
++ return -1;
++ }
++
+ return 0;
+ }
+
+--
+1.9.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Reject-SET_CRED-commands-with-newline-characters-in-.patch b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Reject-SET_CRED-commands-with-newline-characters-in-.patch
new file mode 100644
index 000000000..cad7425c3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Reject-SET_CRED-commands-with-newline-characters-in-.patch
@@ -0,0 +1,66 @@
+From b166cd84a77a6717be9600bf95378a0055d6f5a5 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Tue, 5 Apr 2016 23:33:10 +0300
+Subject: [PATCH 2/3] Reject SET_CRED commands with newline characters in the
+ string values
+
+Most of the cred block parameters are written as strings without
+filtering and if there is an embedded newline character in the value,
+unexpected configuration file data might be written.
+
+This fixes an issue where wpa_supplicant could have updated the
+configuration file cred parameter with arbitrary data from the control
+interface or D-Bus interface. While those interfaces are supposed to be
+accessible only for trusted users/applications, it may be possible that
+an untrusted user has access to a management software component that
+does not validate the credential value before passing it to
+wpa_supplicant.
+
+This could allow such an untrusted user to inject almost arbitrary data
+into the configuration file. Such configuration file could result in
+wpa_supplicant trying to load a library (e.g., opensc_engine_path,
+pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
+controlled location when starting again. This would allow code from that
+library to be executed under the wpa_supplicant process privileges.
+
+Upstream-Status: Backport
+
+CVE: CVE-2016-4477
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+Signed-off-by: Zhixiong Chi <Zhixiong.Chi@windriver.com>
+---
+ wpa_supplicant/config.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
+index eb97cd5..69152ef 100644
+--- a/wpa_supplicant/config.c
++++ b/wpa_supplicant/config.c
+@@ -2896,6 +2896,8 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var,
+
+ if (os_strcmp(var, "password") == 0 &&
+ os_strncmp(value, "ext:", 4) == 0) {
++ if (has_newline(value))
++ return -1;
+ str_clear_free(cred->password);
+ cred->password = os_strdup(value);
+ cred->ext_password = 1;
+@@ -2946,9 +2948,14 @@ int wpa_config_set_cred(struct wpa_cred *cred, const char *var,
+ }
+
+ val = wpa_config_parse_string(value, &len);
+- if (val == NULL) {
++ if (val == NULL ||
++ (os_strcmp(var, "excluded_ssid") != 0 &&
++ os_strcmp(var, "roaming_consortium") != 0 &&
++ os_strcmp(var, "required_roaming_consortium") != 0 &&
++ has_newline(val))) {
+ wpa_printf(MSG_ERROR, "Line %d: invalid field '%s' string "
+ "value '%s'.", line, var, value);
++ os_free(val);
+ return -1;
+ }
+
+--
+1.9.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Remove-newlines-from-wpa_supplicant-config-network-o.patch b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Remove-newlines-from-wpa_supplicant-config-network-o.patch
new file mode 100644
index 000000000..cc7b01ad5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-Remove-newlines-from-wpa_supplicant-config-network-o.patch
@@ -0,0 +1,86 @@
+From 0fe5a234240a108b294a87174ad197f6b5cb38e9 Mon Sep 17 00:00:00 2001
+From: Paul Stewart <pstew@google.com>
+Date: Thu, 3 Mar 2016 15:40:19 -0800
+Subject: [PATCH 2/2] Remove newlines from wpa_supplicant config network
+ output
+
+Spurious newlines output while writing the config file can corrupt the
+wpa_supplicant configuration. Avoid writing these for the network block
+parameters. This is a generic filter that cover cases that may not have
+been explicitly addressed with a more specific commit to avoid control
+characters in the psk parameter.
+
+Upstream-Status: Backport
+
+CVE: CVE-2016-4476
+
+Signed-off-by: Paul Stewart <pstew@google.com>
+Signed-off-by: Zhixiong Chi <Zhixiong.Chi.wrs.com>
+---
+ src/utils/common.c | 11 +++++++++++
+ src/utils/common.h | 1 +
+ wpa_supplicant/config.c | 15 +++++++++++++--
+ 3 files changed, 25 insertions(+), 2 deletions(-)
+
+diff --git a/src/utils/common.c b/src/utils/common.c
+index 27b7c02..9856463 100644
+--- a/src/utils/common.c
++++ b/src/utils/common.c
+@@ -709,6 +709,17 @@ int has_ctrl_char(const u8 *data, size_t len)
+ }
+
+
++int has_newline(const char *str)
++{
++ while (*str) {
++ if (*str == '\n' || *str == '\r')
++ return 1;
++ str++;
++ }
++ return 0;
++}
++
++
+ size_t merge_byte_arrays(u8 *res, size_t res_len,
+ const u8 *src1, size_t src1_len,
+ const u8 *src2, size_t src2_len)
+diff --git a/src/utils/common.h b/src/utils/common.h
+index a972240..d19927b 100644
+--- a/src/utils/common.h
++++ b/src/utils/common.h
+@@ -489,6 +489,7 @@ const char * wpa_ssid_txt(const u8 *ssid, size_t ssid_len);
+ char * wpa_config_parse_string(const char *value, size_t *len);
+ int is_hex(const u8 *data, size_t len);
+ int has_ctrl_char(const u8 *data, size_t len);
++int has_newline(const char *str);
+ size_t merge_byte_arrays(u8 *res, size_t res_len,
+ const u8 *src1, size_t src1_len,
+ const u8 *src2, size_t src2_len);
+diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
+index fdd9643..eb97cd5 100644
+--- a/wpa_supplicant/config.c
++++ b/wpa_supplicant/config.c
+@@ -2699,8 +2699,19 @@ char * wpa_config_get(struct wpa_ssid *ssid, const char *var)
+
+ for (i = 0; i < NUM_SSID_FIELDS; i++) {
+ const struct parse_data *field = &ssid_fields[i];
+- if (os_strcmp(var, field->name) == 0)
+- return field->writer(field, ssid);
++ if (os_strcmp(var, field->name) == 0) {
++ char *ret = field->writer(field, ssid);
++
++ if (ret && has_newline(ret)) {
++ wpa_printf(MSG_ERROR,
++ "Found newline in value for %s; not returning it",
++ var);
++ os_free(ret);
++ ret = NULL;
++ }
++
++ return ret;
++ }
+ }
+
+ return NULL;
+--
+1.9.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-Reject-SET-commands-with-newline-characters-in-the-s.patch b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-Reject-SET-commands-with-newline-characters-in-the-s.patch
new file mode 100644
index 000000000..5375db74b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-Reject-SET-commands-with-newline-characters-in-the-s.patch
@@ -0,0 +1,54 @@
+From 2a3f56502b52375c3bf113cf92adfa99bad6b488 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <jouni@qca.qualcomm.com>
+Date: Tue, 5 Apr 2016 23:55:48 +0300
+Subject: [PATCH 3/3] Reject SET commands with newline characters in the
+ string values
+
+Many of the global configuration parameters are written as strings
+without filtering and if there is an embedded newline character in the
+value, unexpected configuration file data might be written.
+
+This fixes an issue where wpa_supplicant could have updated the
+configuration file global parameter with arbitrary data from the control
+interface or D-Bus interface. While those interfaces are supposed to be
+accessible only for trusted users/applications, it may be possible that
+an untrusted user has access to a management software component that
+does not validate the value of a parameter before passing it to
+wpa_supplicant.
+
+This could allow such an untrusted user to inject almost arbitrary data
+into the configuration file. Such configuration file could result in
+wpa_supplicant trying to load a library (e.g., opensc_engine_path,
+pkcs11_engine_path, pkcs11_module_path, load_dynamic_eap) from user
+controlled location when starting again. This would allow code from that
+library to be executed under the wpa_supplicant process privileges.
+
+Upstream-Status: Backport
+
+CVE: CVE-2016-4477
+
+Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
+Signed-off-by: Zhixiong Chi <Zhixiong.Chi@windriver.com>
+---
+ wpa_supplicant/config.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
+index 69152ef..d9a1603 100644
+--- a/wpa_supplicant/config.c
++++ b/wpa_supplicant/config.c
+@@ -3764,6 +3764,12 @@ static int wpa_global_config_parse_str(const struct global_parse_data *data,
+ return -1;
+ }
+
++ if (has_newline(pos)) {
++ wpa_printf(MSG_ERROR, "Line %d: invalid %s value with newline",
++ line, data->name);
++ return -1;
++ }
++
+ tmp = os_strdup(pos);
+ if (tmp == NULL)
+ return -1;
+--
+1.9.1
diff --git a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb
index 935c8afc9..a4160e1c5 100644
--- a/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb
+++ b/import-layers/yocto-poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.5.bb
@@ -24,6 +24,11 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://wpa_supplicant.conf \
file://wpa_supplicant.conf-sane \
file://99_wpa_supplicant \
+ file://0001-WPS-Reject-a-Credential-with-invalid-passphrase.patch \
+ file://0002-Remove-newlines-from-wpa_supplicant-config-network-o.patch \
+ file://0001-Reject-psk-parameter-set-with-invalid-passphrase-cha.patch \
+ file://0002-Reject-SET_CRED-commands-with-newline-characters-in-.patch \
+ file://0003-Reject-SET-commands-with-newline-characters-in-the-s.patch \
"
SRC_URI[md5sum] = "96ff75c3a514f1f324560a2376f13110"
SRC_URI[sha256sum] = "cce55bae483b364eae55c35ba567c279be442ed8bab5b80a3c7fb0d057b9b316"
diff --git a/import-layers/yocto-poky/meta/recipes-core/base-files/base-files/profile b/import-layers/yocto-poky/meta/recipes-core/base-files/base-files/profile
index 53c268040..7367fd1e2 100644
--- a/import-layers/yocto-poky/meta/recipes-core/base-files/base-files/profile
+++ b/import-layers/yocto-poky/meta/recipes-core/base-files/base-files/profile
@@ -5,12 +5,6 @@ PATH="/usr/local/bin:/usr/bin:/bin"
EDITOR="vi" # needed for packages like cron, git-commit
test -z "$TERM" && TERM="vt100" # Basic terminal capab. For screen etc.
-if [ ! -e /etc/localtime -a ! -e /etc/TZ ]; then
- TZ="UTC" # Time Zone. Look at http://theory.uwinnipeg.ca/gnu/glibc/libc_303.html
- # for an explanation of how to set this to your local timezone.
- export TZ
-fi
-
if [ "$HOME" = "ROOTHOME" ]; then
PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
fi
@@ -20,17 +14,22 @@ if [ "$PS1" ]; then
fi
if [ -d /etc/profile.d ]; then
- for i in /etc/profile.d/* ; do
- . $i
+ for i in /etc/profile.d/*.sh ; do
+ if [ -f $i -a -r $i ]; then
+ . $i
+ fi
done
unset i
fi
-if [ -x /usr/bin/resize ];then
- /usr/bin/resize >/dev/null
+if [ -x /usr/bin/resize ] && termpath="`tty`"; then
+ # Make sure we are on a serial console (i.e. the device used starts with /dev/tty),
+ # otherwise we confuse e.g. the eclipse launcher which tries do use ssh
+ case "$termpath" in
+ /dev/tty*) resize >/dev/null
+ esac
fi
export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
umask 022
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/import-layers/yocto-poky/meta/recipes-core/base-files/base-files_3.0.14.bb
index d39170737..533311061 100644
--- a/import-layers/yocto-poky/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -165,9 +165,7 @@ do_install_append_linuxstdbase() {
done
}
-sysroot_stage_all_append () {
- sysroot_stage_dir ${D}${sysconfdir}/skel ${SYSROOT_DESTDIR}${sysconfdir}/skel
-}
+SYSROOT_DIRS += "${sysconfdir}/skel"
PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
FILES_${PN} = "/"
@@ -177,4 +175,3 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
CONFFILES_${PN} = "${sysconfdir}/fstab ${@['', '${sysconfdir}/hostname'][(d.getVar('hostname', True) != '')]} ${sysconfdir}/shells"
CONFFILES_${PN} += "${sysconfdir}/motd ${sysconfdir}/nsswitch.conf ${sysconfdir}/profile"
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/bsd-headers/bsd-headers.bb b/import-layers/yocto-poky/meta/recipes-core/bsd-headers/bsd-headers.bb
index 8f43d431d..c9945d45e 100644
--- a/import-layers/yocto-poky/meta/recipes-core/bsd-headers/bsd-headers.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/bsd-headers/bsd-headers.bb
@@ -1,7 +1,7 @@
# Copyright (C) 2016 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
-DESCRIPTION = "bsd compatible headers"
+SUMMARY = "BSD compatible headers"
LICENSE = "BSD-3-Clause & BSD-2-Clause"
LIC_FILES_CHKSUM = "file://sys-queue.h;beginline=1;endline=32;md5=c6352b0f03bb448600456547d334b56f"
SECTION = "devel"
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox.inc b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox.inc
index 5e91a263d..b2f196022 100644
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox.inc
@@ -19,7 +19,7 @@ export EXTRA_CFLAGS = "${CFLAGS}"
export EXTRA_LDFLAGS = "${LDFLAGS}"
# We don't want '-e MAKEFLAGS=' in EXTRA_OEMAKE
-EXTRA_OEMAKE = "CC='${CC}' LD='${CCLD}' V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX} SKIP_STRIP=y"
+EXTRA_OEMAKE = "CC='${CC}' LD='${CCLD}' V=1 ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX} SKIP_STRIP=y HOSTCC='${BUILD_CC}' HOSTCPP='${BUILD_CPP}'"
PACKAGES =+ "${PN}-httpd ${PN}-udhcpd ${PN}-udhcpc ${PN}-syslog ${PN}-mdev ${PN}-hwclock"
@@ -286,8 +286,8 @@ do_install () {
for i in $tmp
do
j=`echo ${i} | sed s/\;/\ /g`
- label=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'`
- echo "tty$label::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab
+ id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'`
+ echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab
done
fi
fi
@@ -423,7 +423,7 @@ pkg_prerm_${PN}-syslog () {
# remove syslog
if test "x$D" = "x"; then
if test "$1" = "upgrade" -o "$1" = "remove"; then
- ${sysconfdir}/init.d/syslog stop
+ ${sysconfdir}/init.d/syslog stop || :
fi
fi
}
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch
new file mode 100644
index 000000000..8bcbd73de
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch
@@ -0,0 +1,73 @@
+From 198f18addf1d814c2fefcb492f3b9fbd221669bb Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Wed, 20 Apr 2016 18:24:45 +0300
+Subject: [PATCH] flock: update the behaviour of -c parameter to match upstream
+
+In upstream, -c 'PROG ARGS' means "run sh -c 'PROG ARGS'"
+
+function old new delta
+flock_main 286 377 +91
+.rodata 155849 155890 +41
+
+Upstream-Status: Submitted
+[ http://lists.busybox.net/pipermail/busybox/2016-April/084142.html ]
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ util-linux/flock.c | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/util-linux/flock.c b/util-linux/flock.c
+index 05a747f..c85a25d 100644
+--- a/util-linux/flock.c
++++ b/util-linux/flock.c
+@@ -20,6 +20,7 @@ int flock_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int flock_main(int argc UNUSED_PARAM, char **argv)
+ {
+ int mode, opt, fd;
++ char *cmd_args[4];
+ enum {
+ OPT_s = (1 << 0),
+ OPT_x = (1 << 1),
+@@ -57,7 +58,6 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
+ /* If it is "flock FILE -c PROG", then -c isn't caught by getopt32:
+ * we use "+" in order to support "flock -opt FILE PROG -with-opts",
+ * we need to remove -c by hand.
+- * TODO: in upstream, -c 'PROG ARGS' means "run sh -c 'PROG ARGS'"
+ */
+ if (argv[0]
+ && argv[0][0] == '-'
+@@ -65,7 +65,10 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
+ || (ENABLE_LONG_OPTS && strcmp(argv[0] + 1, "-command") == 0)
+ )
+ ) {
+- argv++;
++ if (argc != optind + 3)
++ bb_error_msg_and_die("-c requires exactly one command argument");
++ else
++ argv++;
+ }
+
+ if (OPT_s == LOCK_SH && OPT_x == LOCK_EX && OPT_n == LOCK_NB && OPT_u == LOCK_UN) {
+@@ -89,9 +92,14 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
+ return EXIT_FAILURE;
+ bb_perror_nomsg_and_die();
+ }
+-
+- if (argv[0])
+- return spawn_and_wait(argv);
+-
++ if (argv[0]) {
++ cmd_args[0] = getenv("SHELL");
++ if (!cmd_args[0])
++ cmd_args[0] = (char*)DEFAULT_SHELL;
++ cmd_args[1] = (char*)"-c";
++ cmd_args[2] = argv[0];
++ cmd_args[3] = NULL;
++ return spawn_and_wait(cmd_args);
++ }
+ return EXIT_SUCCESS;
+ }
+--
+2.4.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch
new file mode 100644
index 000000000..4f539848c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch
@@ -0,0 +1,72 @@
+From 903542f7331c58007a3ef938d41e1c55fc329648 Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Wed, 31 Aug 2016 23:40:43 -0400
+Subject: [PATCH] sed: fix "sed n (flushes pattern space, terminates early)"
+ testcase failure
+
+This patch fix "sed n (flushes pattern space, terminates early)"
+testcase failure. We can see it at:
+
+ https://git.busybox.net/busybox/commit/?id=76d72376e0244a5cafd4880cdc623e37d86a75e4
+
+Upstream-Status: Backport
+
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ editors/sed.c | 19 ++++++++++---------
+ testsuite/sed.tests | 6 +-----
+ 2 files changed, 11 insertions(+), 14 deletions(-)
+
+diff --git a/editors/sed.c b/editors/sed.c
+index 7bbf820..259c39c 100644
+--- a/editors/sed.c
++++ b/editors/sed.c
+@@ -1274,16 +1274,17 @@ static void process_files(void)
+ case 'n':
+ if (!G.be_quiet)
+ sed_puts(pattern_space, last_gets_char);
+- if (next_line) {
+- free(pattern_space);
+- pattern_space = next_line;
+- last_gets_char = next_gets_char;
+- next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
+- substituted = 0;
+- linenum++;
+- break;
++ if (next_line == NULL) {
++ /* If no next line, jump to end of script and exit. */
++ goto discard_line;
+ }
+- /* fall through */
++ free(pattern_space);
++ pattern_space = next_line;
++ last_gets_char = next_gets_char;
++ next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
++ substituted = 0;
++ linenum++;
++ break;
+
+ /* Quit. End of script, end of input. */
+ case 'q':
+diff --git a/testsuite/sed.tests b/testsuite/sed.tests
+index 34479e5..96ff7a5 100755
+--- a/testsuite/sed.tests
++++ b/testsuite/sed.tests
+@@ -73,13 +73,9 @@ testing "sed t (test/branch clears test bit)" "sed -e 's/a/b/;:loop;t loop'" \
+ testing "sed T (!test/branch)" "sed -e 's/a/1/;T notone;p;: notone;p'" \
+ "1\n1\n1\nb\nb\nc\nc\n" "" "a\nb\nc\n"
+
+-test x"$SKIP_KNOWN_BUGS" = x"" && {
+-# Normal sed end-of-script doesn't print "c" because n flushed the pattern
+-# space. If n hits EOF, pattern space is empty when script ends.
+-# Query: how does this interact with no newline at EOF?
+ testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \
+ "a\nb\nb\nc\n" "" "a\nb\nc\n"
+-}
++
+ # non-GNU sed: N does _not_ flush pattern space, therefore c is eaten @ script end
+ # GNU sed: N flushes pattern space, therefore c is printed too @ script end
+ testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch
new file mode 100644
index 000000000..84cae6aa2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch
@@ -0,0 +1,57 @@
+From d474ffc68290e0a83651c4432eeabfa62cd51e87 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Thu, 10 Mar 2016 11:47:58 +0100
+Subject: [PATCH] udhcp: fix a SEGV on malformed RFC1035-encoded domain name
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+Upstream-Status: Backport
+CVE: CVE-2016-2147
+
+https://git.busybox.net/busybox/commit/?id=d474ffc
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ networking/udhcp/domain_codec.c | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+Index: busybox-1.23.2/networking/udhcp/domain_codec.c
+===================================================================
+--- busybox-1.23.2.orig/networking/udhcp/domain_codec.c
++++ busybox-1.23.2/networking/udhcp/domain_codec.c
+@@ -63,11 +63,10 @@ char* FAST_FUNC dname_dec(const uint8_t
+ if (crtpos + *c + 1 > clen) /* label too long? abort */
+ return NULL;
+ if (dst)
+- memcpy(dst + len, c + 1, *c);
++ /* \3com ---> "com." */
++ ((char*)mempcpy(dst + len, c + 1, *c))[0] = '.';
+ len += *c + 1;
+ crtpos += *c + 1;
+- if (dst)
+- dst[len - 1] = '.';
+ } else {
+ /* NUL: end of current domain name */
+ if (retpos == 0) {
+@@ -78,7 +77,10 @@ char* FAST_FUNC dname_dec(const uint8_t
+ crtpos = retpos;
+ retpos = depth = 0;
+ }
+- if (dst)
++ if (dst && len != 0)
++ /* \4host\3com\0\4host and we are at \0:
++ * \3com was converted to "com.", change dot to space.
++ */
+ dst[len - 1] = ' ';
+ }
+
+@@ -228,6 +230,9 @@ int main(int argc, char **argv)
+ int len;
+ uint8_t *encoded;
+
++ uint8_t str[6] = { 0x00, 0x00, 0x02, 0x65, 0x65, 0x00 };
++ printf("NUL:'%s'\n", dname_dec(str, 6, ""));
++
+ #define DNAME_DEC(encoded,pre) dname_dec((uint8_t*)(encoded), sizeof(encoded), (pre))
+ printf("'%s'\n", DNAME_DEC("\4host\3com\0", "test1:"));
+ printf("test2:'%s'\n", DNAME_DEC("\4host\3com\0\4host\3com\0", ""));
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch
new file mode 100644
index 000000000..1473d4603
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch
@@ -0,0 +1,32 @@
+From 1b7c17391de66502dd7a97c866e0a33681edbb1f Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Fri, 11 Mar 2016 00:26:58 +0100
+Subject: [PATCH] udhcpc: fix a warning in debug code
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+Upsteam-Status: Backport
+CVE: CVE-2016-2147 regression fix
+
+https://git.busybox.net/busybox/commit/?id=1b7c17
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ networking/udhcp/domain_codec.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/networking/udhcp/domain_codec.c b/networking/udhcp/domain_codec.c
+index cee31f1..5a923cc 100644
+--- a/networking/udhcp/domain_codec.c
++++ b/networking/udhcp/domain_codec.c
+@@ -7,6 +7,7 @@
+ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
+ */
+ #ifdef DNS_COMPR_TESTING
++# define _GNU_SOURCE
+ # define FAST_FUNC /* nothing */
+ # define xmalloc malloc
+ # include <stdlib.h>
+--
+2.3.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch
new file mode 100644
index 000000000..af04a7f5b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch
@@ -0,0 +1,74 @@
+From 352f79acbd759c14399e39baef21fc4ffe180ac2 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Fri, 26 Feb 2016 15:54:56 +0100
+Subject: [PATCH] udhcpc: fix OPTION_6RD parsing (could overflow its malloced
+ buffer)
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+Upstream-Status: Backport
+CVE: CVE-2016-2148
+https://git.busybox.net/busybox/commit/?id=352f79
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ networking/udhcp/common.c | 15 +++++++++++++--
+ networking/udhcp/dhcpc.c | 4 ++--
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+Index: busybox-1.23.2/networking/udhcp/common.c
+===================================================================
+--- busybox-1.23.2.orig/networking/udhcp/common.c
++++ busybox-1.23.2/networking/udhcp/common.c
+@@ -142,7 +142,7 @@ const char dhcp_option_strings[] ALIGN1
+ * udhcp_str2optset: to determine how many bytes to allocate.
+ * xmalloc_optname_optval: to estimate string length
+ * from binary option length: (option[LEN] / dhcp_option_lengths[opt_type])
+- * is the number of elements, multiply in by one element's string width
++ * is the number of elements, multiply it by one element's string width
+ * (len_of_option_as_string[opt_type]) and you know how wide string you need.
+ */
+ const uint8_t dhcp_option_lengths[] ALIGN1 = {
+@@ -162,7 +162,18 @@ const uint8_t dhcp_option_lengths[] ALIG
+ [OPTION_S32] = 4,
+ /* Just like OPTION_STRING, we use minimum length here */
+ [OPTION_STATIC_ROUTES] = 5,
+- [OPTION_6RD] = 22, /* ignored by udhcp_str2optset */
++ [OPTION_6RD] = 12, /* ignored by udhcp_str2optset */
++ /* The above value was chosen as follows:
++ * len_of_option_as_string[] for this option is >60: it's a string of the form
++ * "32 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 ".
++ * Each additional ipv4 address takes 4 bytes in binary option and appends
++ * another "255.255.255.255 " 16-byte string. We can set [OPTION_6RD] = 4
++ * but this severely overestimates string length: instead of 16 bytes,
++ * it adds >60 for every 4 bytes in binary option.
++ * We cheat and declare here that option is in units of 12 bytes.
++ * This adds more than 60 bytes for every three ipv4 addresses - more than enough.
++ * (Even 16 instead of 12 should work, but let's be paranoid).
++ */
+ };
+
+
+Index: busybox-1.23.2/networking/udhcp/dhcpc.c
+===================================================================
+--- busybox-1.23.2.orig/networking/udhcp/dhcpc.c
++++ busybox-1.23.2/networking/udhcp/dhcpc.c
+@@ -103,7 +103,7 @@ static const uint8_t len_of_option_as_st
+ [OPTION_IP ] = sizeof("255.255.255.255 "),
+ [OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2,
+ [OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "),
+- [OPTION_6RD ] = sizeof("32 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "),
++ [OPTION_6RD ] = sizeof("132 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "),
+ [OPTION_STRING ] = 1,
+ [OPTION_STRING_HOST ] = 1,
+ #if ENABLE_FEATURE_UDHCP_RFC3397
+@@ -214,7 +214,7 @@ static NOINLINE char *xmalloc_optname_op
+ type = optflag->flags & OPTION_TYPE_MASK;
+ optlen = dhcp_option_lengths[type];
+ upper_length = len_of_option_as_string[type]
+- * ((unsigned)(len + optlen - 1) / (unsigned)optlen);
++ * ((unsigned)(len + optlen) / (unsigned)optlen);
+
+ dest = ret = xmalloc(upper_length + strlen(opt_name) + 2);
+ dest += sprintf(ret, "%s=", opt_name);
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
new file mode 100644
index 000000000..38302e0b6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
@@ -0,0 +1,53 @@
+Upstream-Status: Backport
+
+Patch addressing a parallel make race in Busybox
+
+ http://git.busybox.net/busybox/commit/?id=d8e61bbf13d0cf38d477255cfd5dc71c5d51d575
+
+Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
+
+From d8e61bbf13d0cf38d477255cfd5dc71c5d51d575 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Sun, 21 Aug 2016 22:00:20 +0200
+Subject: build system: different fix for
+ include/applet_tables.h/include/NUM_APPLETS.h
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+diff --git a/applets/Kbuild.src b/applets/Kbuild.src
+index 5cc1827..3aedbbf 100644
+--- a/applets/Kbuild.src
++++ b/applets/Kbuild.src
+@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h
+
+ applets/applet_tables: .config include/applets.h
+ applets/usage: .config include/applets.h
+-applets/usage_pod: .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h
++applets/usage_pod: .config include/applets.h include/applet_tables.h
+
+ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
+ cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
+@@ -37,8 +37,21 @@ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
+ include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
+ $(call cmd,gen_usage_compressed)
+
+-quiet_cmd_gen_applet_tables = GEN include/applet_tables.h
++quiet_cmd_gen_applet_tables = GEN include/applet_tables.h include/NUM_APPLETS.h
+ cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
+
+-include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
++include/NUM_APPLETS.h: applets/applet_tables
++ $(call cmd,gen_applet_tables)
++
++# In fact, include/applet_tables.h depends only on applets/applet_tables,
++# and is generated by it. But specifying only it can run
++# applets/applet_tables twice, possibly in parallel.
++# We say that it also needs NUM_APPLETS.h
++#
++# Unfortunately, we need to list the same command,
++# and it can be executed twice (sequentially).
++# The alternative is to not list any command,
++# and then if include/applet_tables.h is deleted, it won't be rebuilt.
++#
++include/applet_tables.h: include/NUM_APPLETS.h applets/applet_tables
+ $(call cmd,gen_applet_tables)
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch
new file mode 100644
index 000000000..7f80a1d91
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch
@@ -0,0 +1,61 @@
+Upstream-Status: Backport
+
+Patch addressing a parallel make race in Busybox
+
+ http://git.busybox.net/busybox/commit/?id=0dddbc1a59795a77679d8c5ef48a2795cb470563
+
+Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
+
+From 0dddbc1a59795a77679d8c5ef48a2795cb470563 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Tue, 23 Aug 2016 20:21:36 +0200
+Subject: build system: always rewrite NUM_APPLETS.h
+
+Conditional rewrite can keep NUM_APPLETS.h mtime old,
+this causes make to try to regenerate it at every invocation.
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+diff --git a/applets/applet_tables.c b/applets/applet_tables.c
+index 8401a15..ef911a4 100644
+--- a/applets/applet_tables.c
++++ b/applets/applet_tables.c
+@@ -192,27 +192,28 @@ int main(int argc, char **argv)
+ printf("};\n");
+ #endif
+ //printf("#endif /* SKIP_definitions */\n");
++
+ // printf("\n");
+ // printf("#define MAX_APPLET_NAME_LEN %u\n", MAX_APPLET_NAME_LEN);
+
+ if (argv[2]) {
+- char line_old[80];
+- char line_new[80];
+ FILE *fp;
++ char line_new[80];
++// char line_old[80];
+
+- line_old[0] = 0;
+- fp = fopen(argv[2], "r");
+- if (fp) {
+- fgets(line_old, sizeof(line_old), fp);
+- fclose(fp);
+- }
+ sprintf(line_new, "#define NUM_APPLETS %u\n", NUM_APPLETS);
+- if (strcmp(line_old, line_new) != 0) {
++// line_old[0] = 0;
++// fp = fopen(argv[2], "r");
++// if (fp) {
++// fgets(line_old, sizeof(line_old), fp);
++// fclose(fp);
++// }
++// if (strcmp(line_old, line_new) != 0) {
+ fp = fopen(argv[2], "w");
+ if (!fp)
+ return 1;
+ fputs(line_new, fp);
+- }
++// }
+ }
+
+ return 0;
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/defconfig b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/defconfig
index ffea6be87..c0459d596 100644
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/defconfig
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/defconfig
@@ -135,7 +135,7 @@ CONFIG_FEATURE_SEAMLESS_LZMA=y
CONFIG_FEATURE_SEAMLESS_BZ2=y
CONFIG_FEATURE_SEAMLESS_GZ=y
CONFIG_FEATURE_SEAMLESS_Z=y
-CONFIG_AR=y
+# CONFIG_AR is not set
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
# CONFIG_FEATURE_AR_CREATE is not set
# CONFIG_UNCOMPRESS is not set
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch
new file mode 100644
index 000000000..41c565658
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch
@@ -0,0 +1,90 @@
+From 4ab372d49a6e82b0bf097dedb96d26330c5f2d5f Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <nsz@port70.net>
+Date: Sun, 24 Apr 2016 17:39:02 +0200
+Subject: [PATCH] ip: fix problem on mips64 n64 big endian musl systems
+
+Use designated initializers for struct msghdr.
+The struct layout is non-portable and musl libc does not match what busybox expects.
+
+Signed-off-by: Szabolcs Nagy <nsz@port70.net>
+Tested-by: Waldemar Brodkorb <wbx@openadk.org>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+
+Upstream-Status: Backport
+
+https://git.busybox.net/busybox/commit/?id=4ab372d49a6e82b0bf097dedb96d26330c5f2d5f
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ networking/libiproute/libnetlink.c | 37 ++++++++++++++++++++++++-------------
+ 1 file changed, 24 insertions(+), 13 deletions(-)
+
+diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c
+index c7533a4..cbb5daf 100644
+--- a/networking/libiproute/libnetlink.c
++++ b/networking/libiproute/libnetlink.c
+@@ -71,11 +71,15 @@ int FAST_FUNC rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, in
+ struct nlmsghdr nlh;
+ struct sockaddr_nl nladdr;
+ struct iovec iov[2] = { { &nlh, sizeof(nlh) }, { req, len } };
++ /* Use designated initializers, struct layout is non-portable */
+ struct msghdr msg = {
+- (void*)&nladdr, sizeof(nladdr),
+- iov, 2,
+- NULL, 0,
+- 0
++ .msg_name = (void*)&nladdr,
++ .msg_namelen = sizeof(nladdr),
++ .msg_iov = iov,
++ .msg_iovlen = 2,
++ .msg_control = NULL,
++ .msg_controllen = 0,
++ .msg_flags = 0
+ };
+
+ memset(&nladdr, 0, sizeof(nladdr));
+@@ -104,12 +108,15 @@ static int rtnl_dump_filter(struct rtnl_handle *rth,
+ while (1) {
+ int status;
+ struct nlmsghdr *h;
+-
++ /* Use designated initializers, struct layout is non-portable */
+ struct msghdr msg = {
+- (void*)&nladdr, sizeof(nladdr),
+- &iov, 1,
+- NULL, 0,
+- 0
++ .msg_name = (void*)&nladdr,
++ .msg_namelen = sizeof(nladdr),
++ .msg_iov = &iov,
++ .msg_iovlen = 1,
++ .msg_control = NULL,
++ .msg_controllen = 0,
++ .msg_flags = 0
+ };
+
+ status = recvmsg(rth->fd, &msg, 0);
+@@ -211,11 +218,15 @@ int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
+ struct sockaddr_nl nladdr;
+ struct iovec iov = { (void*)n, n->nlmsg_len };
+ char *buf = xmalloc(8*1024); /* avoid big stack buffer */
++ /* Use designated initializers, struct layout is non-portable */
+ struct msghdr msg = {
+- (void*)&nladdr, sizeof(nladdr),
+- &iov, 1,
+- NULL, 0,
+- 0
++ .msg_name = (void*)&nladdr,
++ .msg_namelen = sizeof(nladdr),
++ .msg_iov = &iov,
++ .msg_iovlen = 1,
++ .msg_control = NULL,
++ .msg_controllen = 0,
++ .msg_flags = 0
+ };
+
+ memset(&nladdr, 0, sizeof(nladdr));
+--
+2.3.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch
new file mode 100644
index 000000000..2e9842e5e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch
@@ -0,0 +1,40 @@
+From 9e5820a86277818c2f83c11c2aa76d7f0a38283e Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Sun, 14 Aug 2016 02:54:27 +0200
+Subject: build system: fix include/NUM_APPLETS.h generation
+
+TBH, it's more like "work around my bad makefile-fu" than "fix"...
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ applets/Kbuild.src | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+Upstream-Status: Backport
+
+diff --git a/applets/Kbuild.src b/applets/Kbuild.src
+index b612399..5cc1827 100644
+--- a/applets/Kbuild.src
++++ b/applets/Kbuild.src
+@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h
+
+ applets/applet_tables: .config include/applets.h
+ applets/usage: .config include/applets.h
+-applets/usage_pod: .config include/applet_tables.h include/applets.h
++applets/usage_pod: .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h
+
+ quiet_cmd_gen_usage_compressed = GEN include/usage_compressed.h
+ cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
+@@ -40,8 +40,5 @@ include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compress
+ quiet_cmd_gen_applet_tables = GEN include/applet_tables.h
+ cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
+
+-include/applet_tables.h: applets/applet_tables
+- $(call cmd,gen_applet_tables)
+-
+-include/NUM_APPLETS.h: applets/applet_tables
++include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
+ $(call cmd,gen_applet_tables)
+--
+cgit v0.12
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-libbb-race.patch b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-libbb-race.patch
new file mode 100644
index 000000000..97278ab97
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox/makefile-libbb-race.patch
@@ -0,0 +1,34 @@
+There is a potential race when building libbb, as some header files
+needed by libbb are not generated yet (or are being modified) at the time
+libbb is compiled.
+This patch avoids this scenario by building libbb as the last directory.
+
+Upstream-Status: Submitted
+Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
+
+Index: busybox-1.24.1/Makefile
+===================================================================
+diff --git a/Makefile b/Makefile
+index 5cfc763..69f3831 100644
+--- a/Makefile
++++ b/Makefile
+@@ -738,9 +738,18 @@ $(sort $(busybox-all)): $(busybox-dirs) ;
+ # Error messages still appears in the original language
+
+ PHONY += $(busybox-dirs)
+-$(busybox-dirs): prepare scripts
++
++libbb-dir = $(filter libbb,$(busybox-dirs))
++busybox-dirs1 = $(filter-out libbb,$(busybox-dirs))
++
++$(busybox-dirs1): prepare scripts
+ $(Q)$(MAKE) $(build)=$@
+
++ifneq ($(libbb-dir),)
++$(libbb-dir): | $(busybox-dirs1)
++ $(Q)$(MAKE) $(build)=$@
++endif
++
+ # Build the kernel release string
+ # The KERNELRELEASE is stored in a file named .kernelrelease
+ # to be used when executing for example make install or make modules_install
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox_1.24.1.bb b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox_1.24.1.bb
index bdaa5a564..df0e13126 100644
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/busybox_1.24.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/busybox_1.24.1.bb
@@ -32,6 +32,7 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://busybox-1.24.1-unzip.patch \
file://busybox-1.24.1-unzip-regression.patch \
file://busybox-1.24.1-truncate-open-mode.patch \
+ file://0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch \
file://mount-via-label.cfg \
file://sha1sum.cfg \
file://sha256sum.cfg \
@@ -43,6 +44,15 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://rcS \
file://rcK \
file://runlevel \
+ file://CVE-2016-2148.patch \
+ file://CVE-2016-2147.patch \
+ file://CVE-2016-2147_2.patch \
+ file://ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch \
+ file://makefile-fix-backport.patch \
+ file://0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch \
+ file://busybox-kbuild-race-fix-commit-d8e61bb.patch \
+ file://commit-applet_tables-fix-commit-0dddbc1.patch \
+ file://makefile-libbb-race.patch \
"
SRC_URI_append_libc-musl = " file://musl.cfg "
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/files/busybox-syslog.default b/import-layers/yocto-poky/meta/recipes-core/busybox/files/busybox-syslog.default
index e516caf51..2dced8023 100644
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/files/busybox-syslog.default
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/files/busybox-syslog.default
@@ -1,4 +1,4 @@
-OPTIONS="-C"
+#OPTIONS="-C"
# The above option means syslogd will log to 16K shm circular buffer.
# You could use `logread' to read it.
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/files/inittab b/import-layers/yocto-poky/meta/recipes-core/busybox/files/inittab
index bfec4a774..2bc831c7c 100644
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/files/inittab
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/files/inittab
@@ -1,13 +1,13 @@
# This is run first except when booting in single-user mode.
# Startup the system
-null::sysinit:/bin/mount -t proc proc /proc
-null::sysinit:/bin/mount -t sysfs sysfs /sys
-null::sysinit:/bin/mount -t devtmpfs devtmpfs /dev
-null::sysinit:/bin/mount -o remount,rw /
-null::sysinit:/bin/mkdir -p /dev/pts
-null::sysinit:/bin/mount -t devpts devpts /dev/pts
-null::sysinit:/bin/mount -a
+::sysinit:/bin/mount -t proc proc /proc
+::sysinit:/bin/mount -t sysfs sysfs /sys
+::sysinit:/bin/mount -t devtmpfs devtmpfs /dev
+::sysinit:/bin/mount -o remount,rw /
+::sysinit:/bin/mkdir -p /dev/pts
+::sysinit:/bin/mount -t devpts devpts /dev/pts
+::sysinit:/bin/mount -a
::sysinit:/etc/init.d/rcS
diff --git a/import-layers/yocto-poky/meta/recipes-core/busybox/files/mdev b/import-layers/yocto-poky/meta/recipes-core/busybox/files/mdev
index 96252477e..8c9c06e96 100755
--- a/import-layers/yocto-poky/meta/recipes-core/busybox/files/mdev
+++ b/import-layers/yocto-poky/meta/recipes-core/busybox/files/mdev
@@ -1,10 +1,12 @@
#!/bin/sh
-
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /dev -o size=64k,mode=0755
mkdir /dev/pts /dev/shm
chmod 777 /dev/shm
mount -t devpts devpts /dev/pts
touch /dev/mdev.seq
+#sysctl -w kernel.hotplug=/sbin/mdev
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
mdev -s
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch
index 02730dbbb..64e5f12ba 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/coreutils_fix_for_automake-1.12.patch
@@ -11,7 +11,7 @@ this patch avoids these kinds of errors:
| configure.ac:40: the top level
| autom4te: m4 failed with exit status: 1
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: coreutils-6.9/m4/jm-macros.m4
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch
index 5ca590bcc..508810623 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/futimens.patch
@@ -3,7 +3,7 @@ Upstream-Status: Inappropriate [legacy version]
# coreutils uses gnulib which conflicts with newer libc header on futimens
# this patch simply renames coreutils futimes to avoid confliction
#
-# Signed-off-by Kevin Tian <kevin.tian@intel.com>, 2010-08-18
+# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
# (this patch is licensed under GPLv2)
diff --git a/lib/utimens.c b/lib/utimens.c
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch
index 8f355520b..8a8ffa726 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/gnulib_m4.patch
@@ -3,7 +3,7 @@ Upstream-Status: Inappropriate [legacy version]
# remove the line to cause recursive inclusion error from autoreconf, sicne
# newer autoconf has included this definition. Simply rename it here.
#
-# Signed-off-by Kevin Tian <kevin.tian@intel.com>, 2010-08-18
+# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
# (this patch is licensed under GPLv2)
diff --git a/extensions.m4 b/extensions.m4
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch
index c42cb9c05..59a4fe005 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-6.9/man-touch.patch
@@ -6,7 +6,7 @@ Upstream-Status: Inappropriate [legacy version]
# is with target format which can't be invoked on build system, disable building
# 'touch' man page here.
#
-# Signed-off-by Kevin Tian <kevin.tian@intel.com>, 2010-08-18
+# Signed-off-by: Kevin Tian <kevin.tian@intel.com>, 2010-08-18
# (this patch is licensed under GPLv2)
diff --git a/man/Makefile.am b/man/Makefile.am
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/0001-uname-report-processor-and-hardware-correctly.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/0001-uname-report-processor-and-hardware-correctly.patch
index c5f449f4f..3c43e1d5d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/0001-uname-report-processor-and-hardware-correctly.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/0001-uname-report-processor-and-hardware-correctly.patch
@@ -1,4 +1,4 @@
-Upstream-Status: Rejected
+Upstream-Status: Denied
Subject: uname: report processor and hardware correctly
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/disable-ls-output-quoting.patch b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/disable-ls-output-quoting.patch
new file mode 100644
index 000000000..e68c21355
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils-8.25/disable-ls-output-quoting.patch
@@ -0,0 +1,49 @@
+Subject: revert inconsistent ls quoting
+
+This is a revert of upstream commit 109b9220cead6e979d22d16327c4d9f8350431cc.
+
+Bug-Debian: https://bugs.debian.org/813164
+
+Upstream-Status: Submitted
+
+Originally-by: Adam Borowski <kilobyte@angband.pl>
+[PG: patch from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813164#78 ]
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+---
+
+--- coreutils-8.25.orig/NEWS
++++ coreutils-8.25/NEWS
+@@ -71,9 +71,6 @@ GNU coreutils NEWS
+ df now prefers sources towards the root of a device when
+ eliding duplicate bind mounted entries.
+
+- ls now quotes file names unambiguously and appropriate for use in a shell,
+- when outputting to a terminal.
+-
+ join, sort, uniq with --zero-terminated, now treat '\n' as a field delimiter.
+
+ ** Improvements
+--- coreutils-8.25.orig/doc/coreutils.texi
++++ coreutils-8.25/doc/coreutils.texi
+@@ -7750,8 +7750,8 @@ this"} in the default C locale. This lo
+
+ You can specify the default value of the @option{--quoting-style} option
+ with the environment variable @env{QUOTING_STYLE}@. If that environment
+-variable is not set, the default value is @samp{shell-escape} when the
+-output is a terminal, and @samp{literal} otherwise.
++variable is not set, the default value is @samp{literal}, but this
++default may change to @samp{shell} in a future version of this package.
+
+ @item --show-control-chars
+ @opindex --show-control-chars
+--- coreutils-8.25.orig/src/ls.c
++++ coreutils-8.25/src/ls.c
+@@ -1581,7 +1581,6 @@ decode_switches (int argc, char **argv)
+ if (isatty (STDOUT_FILENO))
+ {
+ format = many_per_line;
+- set_quoting_style (NULL, shell_escape_quoting_style);
+ /* See description of qmark_funny_chars, above. */
+ qmark_funny_chars = true;
+ }
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_6.9.bb b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_6.9.bb
index 9ce717d1a..35700a32f 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_6.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_6.9.bb
@@ -88,6 +88,10 @@ ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs}"
+ALTERNATIVE_${PN}-doc = "su.1 hostname.1"
+ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1"
+ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
+
ALTERNATIVE_PRIORITY[uptime] = "10"
ALTERNATIVE_PRIORITY[hostname] = "10"
diff --git a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_8.25.bb b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_8.25.bb
index 419a69337..df6ad380f 100644
--- a/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_8.25.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/coreutils/coreutils_8.25.bb
@@ -19,6 +19,7 @@ SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.xz;name=tarball \
file://fix-selinux-flask.patch \
file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
file://0001-uname-report-processor-and-hardware-correctly.patch \
+ file://disable-ls-output-quoting.patch \
"
SRC_URI[tarball.md5sum] = "070e43ba7f618d747414ef56ab248a48"
@@ -37,7 +38,8 @@ PACKAGECONFIG_class-target ??= "\
${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'xattr', '', d)} \
"
-PACKAGECONFIG_class-native ??= ""
+# The lib/oe/path.py requires xattr
+PACKAGECONFIG_class-native ??= "xattr"
# with, without, depends, rdepends
#
@@ -69,6 +71,15 @@ do_compile_prepend () {
mkdir -p ${B}/src
}
+do_install_class-native() {
+ autotools_do_install
+ # remove groups to fix conflict with shadow-native
+ rm -f ${D}${STAGING_BINDIR_NATIVE}/groups
+ # The return is a must since native doesn't need the
+ # do_install_append() in the below.
+ return
+}
+
do_install_append() {
for i in df mktemp base64; do mv ${D}${bindir}/$i ${D}${bindir}/$i.${BPN}; done
@@ -91,16 +102,13 @@ do_install_append() {
cp -a ${D}${mandir}/man1/test.1 ${D}${mandir}/man1/lbracket.1.${BPN}
}
-do_install_append_class-native(){
- # remove groups to fix conflict with shadow-native
- rm -f ${D}${STAGING_BINDIR_NATIVE}/groups
-}
-
inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
ALTERNATIVE_${PN} = "lbracket ${bindir_progs} ${base_bindir_progs} ${sbindir_progs} base64 mktemp df"
-ALTERNATIVE_${PN}-doc = "base64.1 mktemp.1 df.1 lbracket.1 groups.1 kill.1 uptime.1 stat.1"
+ALTERNATIVE_${PN}-doc = "base64.1 mktemp.1 df.1 lbracket.1 groups.1 kill.1 uptime.1 stat.1 hostname.1"
+
+ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
ALTERNATIVE_LINK_NAME[base64] = "${base_bindir}/base64"
ALTERNATIVE_TARGET[base64] = "${bindir}/base64.${BPN}"
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-glib.inc b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-glib.inc
index 4661e3af5..55f710f85 100644
--- a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-glib.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-glib.inc
@@ -15,7 +15,7 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz
file://test-install-makefile.patch \
"
-inherit autotools pkgconfig gettext bash-completion
+inherit autotools pkgconfig gettext bash-completion gtk-doc
#default disable regression tests, some unit test code in non testing code
#PACKAGECONFIG_pn-${PN} = "tests" enable regression tests local.conf
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.10.bb b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.10.bb
new file mode 100644
index 000000000..650b7ab02
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.10.bb
@@ -0,0 +1,58 @@
+SUMMARY = "D-Bus test package (for D-bus functionality testing only)"
+HOMEPAGE = "http://dbus.freedesktop.org"
+SECTION = "base"
+LICENSE = "AFL-2 | GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
+ file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
+
+DEPENDS = "dbus glib-2.0"
+
+RDEPENDS_${PN} += "make"
+RDEPENDS_${PN}-dev = ""
+
+SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
+ file://tmpdir.patch \
+ file://run-ptest \
+ file://python-config.patch \
+ file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
+ "
+
+SRC_URI[md5sum] = "495676d240eb982921b3ad1343526849"
+SRC_URI[sha256sum] = "9d8f1d069ab4d1a0255d7b400ea3bcef4430c42e729b1012abb2890e3f739a43"
+
+S="${WORKDIR}/dbus-${PV}"
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:"
+
+inherit autotools pkgconfig gettext ptest upstream-version-is-even
+
+EXTRA_OECONF_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
+EXTRA_OECONF_X_class-native = "--without-x"
+
+EXTRA_OECONF = "--enable-tests \
+ --enable-modular-tests \
+ --enable-installed-tests \
+ --enable-checks \
+ --enable-asserts \
+ --enable-verbose-mode \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-libaudit \
+ --disable-systemd \
+ --without-systemdsystemunitdir \
+ --with-dbus-test-dir=${PTEST_PATH} \
+ ${EXTRA_OECONF_X}"
+
+do_install() {
+ :
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/test
+ l="shell printf refs syslog marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay"
+ for i in $l; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done
+ l="bus bus-system bus-launch-helper"
+ for i in $l; do install ${B}/bus/.libs/test-$i ${D}${PTEST_PATH}/test; done
+ install ${B}/dbus/.libs/test-dbus ${D}${PTEST_PATH}/test
+ cp -r ${B}/test/data ${D}${PTEST_PATH}/test
+}
+RDEPENDS_${PN}-ptest += "bash"
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.6.bb b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.6.bb
deleted file mode 100644
index a768a09c4..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus-test_1.10.6.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "D-Bus test package (for D-bus functionality testing only)"
-HOMEPAGE = "http://dbus.freedesktop.org"
-SECTION = "base"
-LICENSE = "AFL-2 | GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
- file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
-
-DEPENDS = "python-pygobject dbus"
-
-RDEPENDS_${PN} += "make"
-RDEPENDS_${PN}-dev = ""
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- file://tmpdir.patch \
- file://dbus-1.init \
- file://run-ptest \
- file://python-config.patch \
- file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
- "
-
-SRC_URI[md5sum] = "26d0cf3a1c9782cb0e342101f0450440"
-SRC_URI[sha256sum] = "b5fefa08a77edd76cd64d872db949eebc02cf6f3f8be82e4bbc641742af5d35f"
-
-S="${WORKDIR}/dbus-${PV}"
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/dbus:"
-
-inherit autotools pkgconfig gettext ptest upstream-version-is-even
-
-EXTRA_OECONF_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '--with-x', '--without-x', d)}"
-EXTRA_OECONF_X_class-native = "--without-x"
-
-EXTRA_OECONF = "--enable-tests \
- --enable-modular-tests \
- --enable-installed-tests \
- --enable-checks \
- --enable-asserts \
- --enable-verbose-mode \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-libaudit \
- --disable-systemd \
- --without-systemdsystemunitdir \
- --with-dbus-test-dir=${PTEST_PATH} \
- ${EXTRA_OECONF_X}"
-
-do_install() {
- :
-}
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/test
- case1="shell printf refs syslog"
- for i in ${case1}; do install ${B}/test/test-$i ${D}${PTEST_PATH}/test; done
- case2="marshal syntax corrupt dbus-daemon dbus-daemon-eavesdrop loopback relay"
- for i in ${case2}; do install ${B}/test/.libs/test-$i ${D}${PTEST_PATH}/test; done
- case3="bus bus-system bus-launch-helper"
- for i in ${case3}; do install ${B}/bus/test-$i ${D}${PTEST_PATH}/test; done
- install ${B}/dbus/test-dbus ${D}${PTEST_PATH}/test
- cp -r ${B}/test/data ${D}${PTEST_PATH}/test
-}
-RDEPENDS_${PN}-ptest += "bash"
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-explicitely-check-stdint.h.patch b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-explicitely-check-stdint.h.patch
new file mode 100644
index 000000000..85acb7b1c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-explicitely-check-stdint.h.patch
@@ -0,0 +1,38 @@
+From 1bfde222926be624a30a6e4b2cdc2c5064a36298 Mon Sep 17 00:00:00 2001
+From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
+Date: Fri, 29 Jul 2016 01:19:37 +0300
+Subject: [PATCH] configure.ac: explicitely check stdint.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Otherwise HAVE_STDINT_H will not be defined or the var will not be
+picked up from cache so builds could fail with errors like:
+| ../../dbus-1.10.8/dbus/dbus-internals.h:239:8: error: â€uintptr_t’ undeclared (first use in this function)
+
+Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
+[smcv: fix Autoconf underquoting]
+Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
+
+Upstream-Status: Backport [from dbus-1.10]
+
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index cf5c5b9..a228d63 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -699,6 +699,8 @@ AC_CHECK_HEADERS(byteswap.h)
+
+ AC_CHECK_HEADERS(unistd.h)
+
++AC_CHECK_HEADERS([stdint.h])
++
+ AC_CHECK_HEADERS(ws2tcpip.h)
+
+ AC_CHECK_HEADERS(alloca.h)
+--
+2.9.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch
deleted file mode 100644
index c6eac2b7d..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus/0001-configure.ac-support-large-file-for-stat64.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e18bd3a571be716d90bedc835a014472470ae7bd Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 30 Dec 2015 10:58:39 +0800
-Subject: [PATCH] configure.ac: support large-file for stat64
-
-While starting dbus-daemon on a 32-bit linux host and it invokes
-fstat to load /etc/dbus-1/system.conf through NFS. If system.conf
-was created with a large indoe number on 64-bit host. The above
-fstat invoking failed. Here is the log of strace:
-............
-$ ls -i /etc/dbus-1/system.conf
-53778558109 /etc/dbus-1/system.conf
-
-$ strace /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
-|open("/etc/dbus-1/system.conf", O_RDONLY) = 4
-|fstat64(4, {st_mode=S_IFREG|0644, st_size=3340, ...}) = 0
-|close(4) = 0
-|close(3) = 0
-|write(2, "Failed to start message bus: Fai"..., 109Failed to start message bus:
-Failed to stat "/etc/dbus-1/system.conf": Value too large for defined data type
-|) = 109
-|exit_group(1) = ?
-|+++ exited with 1 +++
-............
-
-In this situation, we should support large-file for stat64. Add marco
-AC_SYS_LARGEFILE to do the detection at configure time. It can be disabled
-by configuring with the `--disable-largefile' option.
-
-Upstream-Status: Backport
-
-Bug: https://bugs.freedesktop.org/show_bug.cgi?id=93545
-https://bugs.freedesktop.org/attachment.cgi?id=120747
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 82806ba..cb5a60b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -64,6 +64,7 @@ AC_SUBST(DBUS_VERSION)
- AC_PROG_CC
- AM_PROG_CC_C_O
- AC_PROG_CXX
- AC_USE_SYSTEM_EXTENSIONS
-+AC_SYS_LARGEFILE
- AC_ISC_POSIX
- AC_HEADER_STDC
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.10.bb b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.10.bb
new file mode 100644
index 000000000..4db0b9b0b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.10.bb
@@ -0,0 +1,181 @@
+SUMMARY = "D-Bus message bus"
+DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \"single instance\" application or daemon, and to launch applications and daemons on demand when their services are needed."
+HOMEPAGE = "http://dbus.freedesktop.org"
+SECTION = "base"
+LICENSE = "AFL-2 | GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
+ file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
+DEPENDS = "expat virtual/libintl"
+RDEPENDS_dbus_class-native = ""
+RDEPENDS_dbus_class-nativesdk = ""
+PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
+ALLOW_EMPTY_dbus-ptest = "1"
+RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"
+
+SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
+ file://tmpdir.patch \
+ file://dbus-1.init \
+ file://os-test.patch \
+ file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
+ file://0001-configure.ac-explicitely-check-stdint.h.patch \
+"
+
+SRC_URI[md5sum] = "495676d240eb982921b3ad1343526849"
+SRC_URI[sha256sum] = "9d8f1d069ab4d1a0255d7b400ea3bcef4430c42e729b1012abb2890e3f739a43"
+
+inherit useradd autotools pkgconfig gettext update-rc.d upstream-version-is-even
+
+INITSCRIPT_NAME = "dbus-1"
+INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
+
+python __anonymous() {
+ if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+ d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
+}
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "-r netdev"
+USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
+ --no-create-home --shell /bin/false \
+ --user-group messagebus"
+
+CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
+
+DEBIANNAME_${PN} = "dbus-1"
+
+PACKAGES =+ "${PN}-lib"
+
+OLDPKGNAME = "dbus-x11"
+OLDPKGNAME_class-nativesdk = ""
+
+# for compatibility
+RPROVIDES_${PN} = "${OLDPKGNAME}"
+RREPLACES_${PN} += "${OLDPKGNAME}"
+
+FILES_${PN} = "${bindir}/dbus-daemon* \
+ ${bindir}/dbus-uuidgen \
+ ${bindir}/dbus-cleanup-sockets \
+ ${bindir}/dbus-send \
+ ${bindir}/dbus-monitor \
+ ${bindir}/dbus-launch \
+ ${bindir}/dbus-run-session \
+ ${bindir}/dbus-update-activation-environment \
+ ${libexecdir}/dbus* \
+ ${sysconfdir} \
+ ${localstatedir} \
+ ${datadir}/dbus-1/services \
+ ${datadir}/dbus-1/system-services \
+ ${datadir}/dbus-1/session.d \
+ ${datadir}/dbus-1/session.conf \
+ ${datadir}/dbus-1/system.d \
+ ${datadir}/dbus-1/system.conf \
+ ${systemd_system_unitdir} \
+ ${systemd_user_unitdir} \
+"
+FILES_${PN}-lib = "${libdir}/lib*.so.*"
+RRECOMMENDS_${PN}-lib = "${PN}"
+FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-test-tool"
+
+pkg_postinst_dbus() {
+ # If both systemd and sysvinit are enabled, mask the dbus-1 init script
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','true','false',d)}; then
+ if [ -n "$D" ]; then
+ OPTS="--root=$D"
+ fi
+ systemctl $OPTS mask dbus-1.service
+ fi
+
+ if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
+ /etc/init.d/populate-volatile.sh update
+ fi
+}
+
+EXTRA_OECONF = "--disable-tests \
+ --disable-xml-docs \
+ --disable-doxygen-docs \
+ --disable-libaudit \
+ "
+
+EXTRA_OECONF_append_class-native = " --disable-selinux"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG_class-native = ""
+PACKAGECONFIG_class-nativesdk = ""
+
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
+PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
+
+do_install() {
+ autotools_do_install
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh
+ install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ for i in dbus.target.wants sockets.target.wants multi-user.target.wants; do \
+ install -d ${D}${systemd_system_unitdir}/$i; done
+ install -m 0644 ${B}/bus/dbus.service ${B}/bus/dbus.socket ${D}${systemd_system_unitdir}/
+ cd ${D}${systemd_system_unitdir}/dbus.target.wants/
+ ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/dbus.target.wants/dbus.socket
+ ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/sockets.target.wants/dbus.socket
+ ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service
+ fi
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" \
+ > ${D}${sysconfdir}/default/volatiles/99_dbus
+
+
+ mkdir -p ${D}${localstatedir}/lib/dbus
+
+ chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
+
+ chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper
+ chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper
+
+ # Remove Red Hat initscript
+ rm -rf ${D}${sysconfdir}/rc.d
+
+ # Remove empty testexec directory as we don't build tests
+ rm -rf ${D}${libdir}/dbus-1.0/test
+
+ # Remove /var/run as it is created on startup
+ rm -rf ${D}${localstatedir}/run
+}
+
+do_install_class-native() {
+ autotools_do_install
+
+ # for dbus-glib-native introspection generation
+ install -d ${D}${STAGING_DATADIR_NATIVE}/dbus/
+ # N.B. is below install actually required?
+ install -m 0644 bus/session.conf ${D}${STAGING_DATADIR_NATIVE}/dbus/session.conf
+
+ # dbus-glib-native and dbus-glib need this xml file
+ ./bus/dbus-daemon --introspect > ${D}${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml
+
+ # dbus-launch has no X support so lets not install it in case the host
+ # has a more featured and useful version
+ rm -f ${D}${bindir}/dbus-launch
+}
+
+do_install_class-nativesdk() {
+ autotools_do_install
+
+ # dbus-launch has no X support so lets not install it in case the host
+ # has a more featured and useful version
+ rm -f ${D}${bindir}/dbus-launch
+
+ # Remove /var/run to avoid QA error
+ rm -rf ${D}${localstatedir}/run
+}
+BBCLASSEXTEND = "native nativesdk"
+
+INSANE_SKIP_${PN}-ptest += "build-deps"
diff --git a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.6.bb b/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.6.bb
deleted file mode 100644
index 245798a00..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/dbus/dbus_1.10.6.bb
+++ /dev/null
@@ -1,181 +0,0 @@
-SUMMARY = "D-Bus message bus"
-DESCRIPTION = "D-Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D-Bus helps coordinate process lifecycle; it makes it simple and reliable to code a \"single instance\" application or daemon, and to launch applications and daemons on demand when their services are needed."
-HOMEPAGE = "http://dbus.freedesktop.org"
-SECTION = "base"
-LICENSE = "AFL-2 | GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=10dded3b58148f3f1fd804b26354af3e \
- file://dbus/dbus.h;beginline=6;endline=20;md5=7755c9d7abccd5dbd25a6a974538bb3c"
-DEPENDS = "expat virtual/libintl"
-RDEPENDS_dbus_class-native = ""
-RDEPENDS_dbus_class-nativesdk = ""
-PACKAGES += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
-ALLOW_EMPTY_dbus-ptest = "1"
-RDEPENDS_dbus-ptest_class-target = "dbus-test-ptest"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \
- file://tmpdir.patch \
- file://dbus-1.init \
- file://os-test.patch \
- file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
- file://0001-configure.ac-support-large-file-for-stat64.patch \
-"
-
-SRC_URI[md5sum] = "26d0cf3a1c9782cb0e342101f0450440"
-SRC_URI[sha256sum] = "b5fefa08a77edd76cd64d872db949eebc02cf6f3f8be82e4bbc641742af5d35f"
-
-inherit useradd autotools pkgconfig gettext update-rc.d upstream-version-is-even
-
-INITSCRIPT_NAME = "dbus-1"
-INITSCRIPT_PARAMS = "start 02 5 3 2 . stop 20 0 1 6 ."
-
-python __anonymous() {
- if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
- d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-}
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r netdev"
-USERADD_PARAM_${PN} = "--system --home ${localstatedir}/lib/dbus \
- --no-create-home --shell /bin/false \
- --user-group messagebus"
-
-CONFFILES_${PN} = "${sysconfdir}/dbus-1/system.conf ${sysconfdir}/dbus-1/session.conf"
-
-DEBIANNAME_${PN} = "dbus-1"
-
-PACKAGES =+ "${PN}-lib"
-
-OLDPKGNAME = "dbus-x11"
-OLDPKGNAME_class-nativesdk = ""
-
-# for compatibility
-RPROVIDES_${PN} = "${OLDPKGNAME}"
-RREPLACES_${PN} += "${OLDPKGNAME}"
-
-FILES_${PN} = "${bindir}/dbus-daemon* \
- ${bindir}/dbus-uuidgen \
- ${bindir}/dbus-cleanup-sockets \
- ${bindir}/dbus-send \
- ${bindir}/dbus-monitor \
- ${bindir}/dbus-launch \
- ${bindir}/dbus-run-session \
- ${bindir}/dbus-update-activation-environment \
- ${libexecdir}/dbus* \
- ${sysconfdir} \
- ${localstatedir} \
- ${datadir}/dbus-1/services \
- ${datadir}/dbus-1/system-services \
- ${datadir}/dbus-1/session.d \
- ${datadir}/dbus-1/session.conf \
- ${datadir}/dbus-1/system.d \
- ${datadir}/dbus-1/system.conf \
- ${systemd_system_unitdir} \
- ${systemd_user_unitdir} \
-"
-FILES_${PN}-lib = "${libdir}/lib*.so.*"
-RRECOMMENDS_${PN}-lib = "${PN}"
-FILES_${PN}-dev += "${libdir}/dbus-1.0/include ${bindir}/dbus-test-tool"
-
-pkg_postinst_dbus() {
- # If both systemd and sysvinit are enabled, mask the dbus-1 init script
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd sysvinit','true','false',d)}; then
- if [ -n "$D" ]; then
- OPTS="--root=$D"
- fi
- systemctl $OPTS mask dbus-1.service
- fi
-
- if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
- /etc/init.d/populate-volatile.sh update
- fi
-}
-
-EXTRA_OECONF = "--disable-tests \
- --disable-xml-docs \
- --disable-doxygen-docs \
- --disable-libaudit \
- "
-
-EXTRA_OECONF_append_class-native = " --disable-selinux"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-PACKAGECONFIG_class-native = ""
-PACKAGECONFIG_class-nativesdk = ""
-
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--disable-systemd --without-systemdsystemunitdir,systemd"
-PACKAGECONFIG[x11] = "--with-x --enable-x11-autolaunch,--without-x --disable-x11-autolaunch, virtual/libx11 libsm"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[user-session] = "--enable-user-session --with-systemduserunitdir=${systemd_user_unitdir},--disable-user-session"
-
-do_install() {
- autotools_do_install
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/init.d
- sed 's:@bindir@:${bindir}:' < ${WORKDIR}/dbus-1.init >${WORKDIR}/dbus-1.init.sh
- install -m 0755 ${WORKDIR}/dbus-1.init.sh ${D}${sysconfdir}/init.d/dbus-1
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- for i in dbus.target.wants sockets.target.wants multi-user.target.wants; do \
- install -d ${D}${systemd_system_unitdir}/$i; done
- install -m 0644 ${B}/bus/dbus.service ${B}/bus/dbus.socket ${D}${systemd_system_unitdir}/
- cd ${D}${systemd_system_unitdir}/dbus.target.wants/
- ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/dbus.target.wants/dbus.socket
- ln -fs ../dbus.socket ${D}${systemd_system_unitdir}/sockets.target.wants/dbus.socket
- ln -fs ../dbus.service ${D}${systemd_system_unitdir}/multi-user.target.wants/dbus.service
- fi
-
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d messagebus messagebus 0755 ${localstatedir}/run/dbus none" \
- > ${D}${sysconfdir}/default/volatiles/99_dbus
-
-
- mkdir -p ${D}${localstatedir}/lib/dbus
-
- chown messagebus:messagebus ${D}${localstatedir}/lib/dbus
-
- chown root:messagebus ${D}${libexecdir}/dbus-daemon-launch-helper
- chmod 4755 ${D}${libexecdir}/dbus-daemon-launch-helper
-
- # Remove Red Hat initscript
- rm -rf ${D}${sysconfdir}/rc.d
-
- # Remove empty testexec directory as we don't build tests
- rm -rf ${D}${libdir}/dbus-1.0/test
-
- # Remove /var/run as it is created on startup
- rm -rf ${D}${localstatedir}/run
-}
-
-do_install_class-native() {
- autotools_do_install
-
- # for dbus-glib-native introspection generation
- install -d ${D}${STAGING_DATADIR_NATIVE}/dbus/
- # N.B. is below install actually required?
- install -m 0644 bus/session.conf ${D}${STAGING_DATADIR_NATIVE}/dbus/session.conf
-
- # dbus-glib-native and dbus-glib need this xml file
- ./bus/dbus-daemon --introspect > ${D}${STAGING_DATADIR_NATIVE}/dbus/dbus-bus-introspect.xml
-
- # dbus-launch has no X support so lets not install it in case the host
- # has a more featured and useful version
- rm -f ${D}${bindir}/dbus-launch
-}
-
-do_install_class-nativesdk() {
- autotools_do_install
-
- # dbus-launch has no X support so lets not install it in case the host
- # has a more featured and useful version
- rm -f ${D}${bindir}/dbus-launch
-
- # Remove /var/run to avoid QA error
- rm -rf ${D}${localstatedir}/run
-}
-BBCLASSEXTEND = "native nativesdk"
-
-INSANE_SKIP_${PN}-ptest += "build-deps"
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear.inc b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear.inc
index 1dce2a5ff..bda7eb847 100644
--- a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear.inc
@@ -17,6 +17,7 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
file://0003-configure.patch \
file://0004-fix-2kb-keys.patch \
file://0007-dropbear-fix-for-x32-abi.patch \
+ file://fix-libtomcrypt-libtommath-ordering.patch \
file://init \
file://dropbearkey.service \
file://dropbear@.service \
@@ -44,9 +45,12 @@ SYSTEMD_SERVICE_${PN} = "dropbear.socket"
SBINCOMMANDS = "dropbear dropbearkey dropbearconvert"
BINCOMMANDS = "dbclient ssh scp"
EXTRA_OEMAKE = 'MULTI=1 SCPPROGRESS=1 PROGRAMS="${SBINCOMMANDS} ${BINCOMMANDS}"'
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[system-libtom] = "--disable-bundled-libtom,--enable-bundled-libtom,libtommath libtomcrypt"
+
EXTRA_OECONF += "\
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
-CFLAGS += "-DSFTPSERVER_PATH=\\"${libdir}/openssh/sftp-server\\""
do_install() {
install -d ${D}${sysconfdir} \
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/0007-dropbear-fix-for-x32-abi.patch b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/0007-dropbear-fix-for-x32-abi.patch
index b4501211c..60b302b5c 100644
--- a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/0007-dropbear-fix-for-x32-abi.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/0007-dropbear-fix-for-x32-abi.patch
@@ -10,7 +10,7 @@ undesired size, when compiled with the x32 abi toolchain.
2013/05/23
Received this fix from H J Lu.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
# HG changeset patch
# User H.J. Lu <hjl.tools@gmail.com>
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch
new file mode 100644
index 000000000..de930f29d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/fix-libtomcrypt-libtommath-ordering.patch
@@ -0,0 +1,48 @@
+From 2fd8d2aedad0c50cdf1e43edd2387874b720ad4c Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Fri, 16 Sep 2016 12:18:23 -0700
+Subject: [PATCH] fix libtomcrypt/libtommath ordering
+
+To prevent build failures when using system libtom libraries and
+linking with --as-needed, LIBTOM_LIBS should be in the order
+-ltomcrypt -ltommath, not the other way around, ie libs should be
+prepended to LIBTOM_LIBS as they are found, not appended.
+
+Note that LIBTOM_LIBS is not used when linking with the bundled
+libtom libs.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b6abe4c..85bb8bc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -390,16 +390,16 @@ AC_ARG_ENABLE(bundled-libtom,
+ AC_MSG_NOTICE(Forcing bundled libtom*)
+ else
+ BUNDLED_LIBTOM=0
+- AC_CHECK_LIB(tommath, mp_exptmod, LIBTOM_LIBS="$LIBTOM_LIBS -ltommath",
++ AC_CHECK_LIB(tommath, mp_exptmod, LIBTOM_LIBS="-ltommath $LIBTOM_LIBS",
+ [AC_MSG_ERROR([Missing system libtommath and --disable-bundled-libtom was specified])] )
+- AC_CHECK_LIB(tomcrypt, register_cipher, LIBTOM_LIBS="$LIBTOM_LIBS -ltomcrypt",
++ AC_CHECK_LIB(tomcrypt, register_cipher, LIBTOM_LIBS="-ltomcrypt $LIBTOM_LIBS",
+ [AC_MSG_ERROR([Missing system libtomcrypt and --disable-bundled-libtom was specified])] )
+ fi
+ ],
+ [
+ BUNDLED_LIBTOM=0
+- AC_CHECK_LIB(tommath, mp_exptmod, LIBTOM_LIBS="$LIBTOM_LIBS -ltommath", BUNDLED_LIBTOM=1)
+- AC_CHECK_LIB(tomcrypt, register_cipher, LIBTOM_LIBS="$LIBTOM_LIBS -ltomcrypt", BUNDLED_LIBTOM=1)
++ AC_CHECK_LIB(tommath, mp_exptmod, LIBTOM_LIBS="-ltommath $LIBTOM_LIBS", BUNDLED_LIBTOM=1)
++ AC_CHECK_LIB(tomcrypt, register_cipher, LIBTOM_LIBS="-ltomcrypt $LIBTOM_LIBS", BUNDLED_LIBTOM=1)
+ ]
+ )
+
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/init b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/init
index e8fed3f94..434bd6b97 100755
--- a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/init
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/init
@@ -62,13 +62,13 @@ for t in $DROPBEAR_KEYTYPES; do
if [ -f "$DROPBEAR_RSAKEY" -a ! -s "$DROPBEAR_RSAKEY" ]; then
rm $DROPBEAR_RSAKEY || true
fi
- test -f $DROPBEAR_RSAKEY || dropbearkey -t rsa -f $DROPBEAR_RSAKEY
+ test -f $DROPBEAR_RSAKEY || dropbearkey -t rsa -f $DROPBEAR_RSAKEY $DROPBEAR_RSAKEY_ARGS
;;
dsa)
if [ -f "$DROPBEAR_DSSKEY" -a ! -s "$DROPBEAR_DSSKEY" ]; then
rm $DROPBEAR_DSSKEY || true
fi
- test -f $DROPBEAR_DSSKEY || dropbearkey -t dss -f $DROPBEAR_DSSKEY
+ test -f $DROPBEAR_DSSKEY || dropbearkey -t dss -f $DROPBEAR_DSSKEY $DROPBEAR_DSSKEY_ARGS
;;
esac
done
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/support-out-of-tree-builds.patch b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/support-out-of-tree-builds.patch
new file mode 100644
index 000000000..df6efb453
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear/support-out-of-tree-builds.patch
@@ -0,0 +1,43 @@
+From: =?UTF-8?q?Henrik=20Nordstr=C3=B6m?= <henrik@knc.nu>
+Date: Wed, 11 May 2016 12:35:06 +0200
+Subject: [PATCH] Support out-of-tree builds usign bundled libtom
+
+When building out-of-tree we need both source and generated
+folders in include paths to find both distributed and generated
+headers.
+
+
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Backport
+---
+ libtomcrypt/Makefile.in | 2 +-
+ libtommath/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libtomcrypt/Makefile.in b/libtomcrypt/Makefile.in
+index 3056ef0..7970700 100644
+--- a/libtomcrypt/Makefile.in
++++ b/libtomcrypt/Makefile.in
+@@ -19,7 +19,7 @@ srcdir=@srcdir@
+
+ # Compilation flags. Note the += does not write over the user's CFLAGS!
+ # The rest of the flags come from the parent Dropbear makefile
+-CFLAGS += -c -I$(srcdir)/src/headers/ -I$(srcdir)/../ -DLTC_SOURCE -I$(srcdir)/../libtommath/
++CFLAGS += -c -Isrc/headers/ -I$(srcdir)/src/headers/ -I../ -I$(srcdir)/../ -DLTC_SOURCE -I../libtommath/ -I$(srcdir)/../libtommath/
+
+ # additional warnings (newer GCC 3.4 and higher)
+ ifdef GCC_34
+diff --git a/libtommath/Makefile.in b/libtommath/Makefile.in
+index 06aba68..019c50b 100644
+--- a/libtommath/Makefile.in
++++ b/libtommath/Makefile.in
+@@ -9,7 +9,7 @@ VPATH=@srcdir@
+ srcdir=@srcdir@
+
+ # So that libtommath can include Dropbear headers for options and m_burn()
+-CFLAGS += -I$(srcdir)/../libtomcrypt/src/headers/ -I$(srcdir)/../
++CFLAGS += -I. -I$(srcdir) -I../libtomcrypt/src/headers/ -I$(srcdir)/../libtomcrypt/src/headers/ -I../ -I$(srcdir)/../
+
+ ifndef IGNORE_SPEED
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2015.71.bb b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2015.71.bb
deleted file mode 100644
index 6332579e7..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2015.71.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require dropbear.inc
-
-SRC_URI[md5sum] = "2ccc0a2f3e37ca221db12c5af6a88137"
-SRC_URI[sha256sum] = "376214169c0e187ee9f48ae1a99b3f835016ad5b98ede4bfd1cf581deba783af"
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2016.74.bb b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2016.74.bb
new file mode 100644
index 000000000..a7020978a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/dropbear/dropbear_2016.74.bb
@@ -0,0 +1,7 @@
+require dropbear.inc
+
+SRC_URI += "file://support-out-of-tree-builds.patch"
+
+SRC_URI[md5sum] = "9ad0172731e0f16623937804643b5bd8"
+SRC_URI[sha256sum] = "2720ea54ed009af812701bcc290a2a601d5c107d12993e5d92c0f5f81f718891"
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/autotools.patch b/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/autotools.patch
deleted file mode 100644
index 0e599697a..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/autotools.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Avoid using expat's m4 files
-
-Upstream-Status: Inappropriate [Other]
-Workaround specific to our build system.
-
-Signed-off-by: Kevin Tian <kevin.tian@intel.com>
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-
-Updated to apply over expat 2.1.0
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-
-diff -Nurd expat-2.1.0/configure.in expat-2.1.0/configure.in
---- expat-2.1.0/configure.in 2012-03-04 01:45:53.000000000 +0200
-+++ expat-2.1.0/configure.in 2012-05-10 21:04:44.000000000 +0300
-@@ -51,8 +51,6 @@
-
- AC_CONFIG_HEADER(expat_config.h)
-
--sinclude(conftools/ac_c_bigendian_cross.m4)
--
- AC_LIBTOOL_WIN32_DLL
- AC_PROG_LIBTOOL
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/expat-CVE-2015-1283.patch b/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/expat-CVE-2015-1283.patch
deleted file mode 100644
index 1d0acb6b9..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/expat/expat-2.1.0/expat-CVE-2015-1283.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Multiple integer overflows in the XML_GetBuffer function in Expat
-through 2.1.0, allow remote attackers to cause a denial of service
-(heap-based buffer overflow) or possibly have unspecified other
-impact via crafted XML data.
-
-CVSSv2: (AV:N/AC:M/Au:N/C:P/I:P/A:P)
-
-CVE: CVE-2015-1283
-Upstream-Status: Backport
-
-Signed-off-by: Eric Rahm <erahm@mozilla.com>
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windirver.com>
-
-Index: expat-2.1.0/lib/xmlparse.c
-===================================================================
---- expat-2.1.0.orig/lib/xmlparse.c 2012-03-11 13:13:12.000000000 +0800
-+++ expat-2.1.0/lib/xmlparse.c 2015-12-23 10:29:07.347361329 +0800
-@@ -1678,6 +1678,12 @@
- void * XMLCALL
- XML_GetBuffer(XML_Parser parser, int len)
- {
-+/* BEGIN MOZILLA CHANGE (sanity check len) */
-+ if (len < 0) {
-+ errorCode = XML_ERROR_NO_MEMORY;
-+ return NULL;
-+ }
-+/* END MOZILLA CHANGE */
- switch (ps_parsing) {
- case XML_SUSPENDED:
- errorCode = XML_ERROR_SUSPENDED;
-@@ -1689,8 +1695,13 @@
- }
-
- if (len > bufferLim - bufferEnd) {
-- /* FIXME avoid integer overflow */
- int neededSize = len + (int)(bufferEnd - bufferPtr);
-+/* BEGIN MOZILLA CHANGE (sanity check neededSize) */
-+ if (neededSize < 0) {
-+ errorCode = XML_ERROR_NO_MEMORY;
-+ return NULL;
-+ }
-+/* END MOZILLA CHANGE */
- #ifdef XML_CONTEXT_BYTES
- int keep = (int)(bufferPtr - buffer);
-
-@@ -1719,7 +1730,15 @@
- bufferSize = INIT_BUFFER_SIZE;
- do {
- bufferSize *= 2;
-- } while (bufferSize < neededSize);
-+/* BEGIN MOZILLA CHANGE (prevent infinite loop on overflow) */
-+ } while (bufferSize < neededSize && bufferSize > 0);
-+/* END MOZILLA CHANGE */
-+/* BEGIN MOZILLA CHANGE (sanity check bufferSize) */
-+ if (bufferSize <= 0) {
-+ errorCode = XML_ERROR_NO_MEMORY;
-+ return NULL;
-+ }
-+/* END MOZILLA CHANGE */
- newBuf = (char *)MALLOC(bufferSize);
- if (newBuf == 0) {
- errorCode = XML_ERROR_NO_MEMORY;
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat.inc b/import-layers/yocto-poky/meta/recipes-core/expat/expat.inc
index 4bd60a2a6..fe9d7e74f 100644
--- a/import-layers/yocto-poky/meta/recipes-core/expat/expat.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/expat/expat.inc
@@ -4,9 +4,8 @@ HOMEPAGE = "http://expat.sourceforge.net/"
SECTION = "libs"
LICENSE = "MIT"
-SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.gz \
+SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
file://autotools.patch \
- file://expat-CVE-2015-1283.patch \
"
inherit autotools lib_package gzipnative
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat/autotools.patch b/import-layers/yocto-poky/meta/recipes-core/expat/expat/autotools.patch
new file mode 100644
index 000000000..3d3c5bad9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/expat/expat/autotools.patch
@@ -0,0 +1,24 @@
+Avoid using expat's m4 files
+
+Upstream-Status: Inappropriate [Other]
+Workaround specific to our build system.
+
+Signed-off-by: Kevin Tian <kevin.tian@intel.com>
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+Updated to apply over expat 2.1.0
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+
+diff -Nurd expat-2.1.0/configure.in expat-2.1.0/configure.in
+--- expat-2.1.0/configure.ac 2012-03-04 01:45:53.000000000 +0200
++++ expat-2.1.0/configure.ac 2012-05-10 21:04:44.000000000 +0300
+@@ -51,8 +51,6 @@
+
+ AC_CONFIG_HEADER(expat_config.h)
+
+-sinclude(conftools/ac_c_bigendian_cross.m4)
+-
+ AC_LIBTOOL_WIN32_DLL
+ AC_PROG_LIBTOOL
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.1.0.bb b/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.1.0.bb
deleted file mode 100644
index b958742ed..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.1.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require expat.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=1b71f681713d1256e1c23b0890920874"
-
-SRC_URI[md5sum] = "dd7dab7a5fea97d2a6a43f511449b7cd"
-SRC_URI[sha256sum] = "823705472f816df21c8f6aa026dd162b280806838bb55b3432b0fb1fcca7eb86"
diff --git a/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.2.0.bb b/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.2.0.bb
new file mode 100644
index 000000000..ef21a111a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/expat/expat_2.2.0.bb
@@ -0,0 +1,5 @@
+require expat.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=9c3ee559c6f9dcee1043ead112139f4f"
+
+SRC_URI[md5sum] = "2f47841c829facb346eb6e3fab5212e2"
+SRC_URI[sha256sum] = "d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff"
diff --git a/import-layers/yocto-poky/meta/recipes-core/fts/fts.bb b/import-layers/yocto-poky/meta/recipes-core/fts/fts.bb
index c30172076..9d8230fa3 100644
--- a/import-layers/yocto-poky/meta/recipes-core/fts/fts.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/fts/fts.bb
@@ -1,7 +1,7 @@
# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
-DESCRIPTION = "keith bostic's POSIX file tree stream operations library"
+SUMMARY = "POSIX file tree stream operations library"
HOMEPAGE = "https://sites.google.com/a/bostic.com/keithbostic"
LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://fts.h;beginline=1;endline=36;md5=2532eddb3d1a21905723a4011ec4e085"
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch
index 7293f5b08..49a10f5b1 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_aclocal_version.patch
@@ -5,7 +5,7 @@ when we update aclocal
Upstream-Status: Inappropriate [configuration]
-Signed-off-by Saul Wold <sgw@linux.intel.com>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: gettext-0.16.1/autoconf-lib-link/m4/lib-link.m4
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch
index 06861492c..fd5feebc8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.16.1/fix_gnu_source_circular.patch
@@ -6,7 +6,7 @@ Thanks to Mark Hatle for the timely pointers and fixes.
Upstream-Status: Inappropriate [licensing]
-Signed-off-by Saul Wold <sgw@linux.intel.com>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
diff -ru gettext-0.16.1/gettext-runtime/gnulib-m4/extensions.m4 gettext.patched/gettext-runtime/gnulib-m4/extensions.m4
--- gettext-0.16.1/gettext-runtime/gnulib-m4/extensions.m4 2006-11-27 09:14:38.000000000 -0800
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/add-with-bisonlocaledir.patch b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch
index 35a131067..35a131067 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/add-with-bisonlocaledir.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/add-with-bisonlocaledir.patch
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/parallel.patch b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch
index c8e2c94af..c8e2c94af 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.6/parallel.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-0.19.8.1/parallel.patch
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/COPYING b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/COPYING
deleted file mode 100644
index 8d11d1d8e..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/COPYING
+++ /dev/null
@@ -1,4 +0,0 @@
-dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/Makefile.in.in b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/Makefile.in.in
deleted file mode 100644
index 8906ba0ff..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/Makefile.in.in
+++ /dev/null
@@ -1,465 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-#
-# Origin: gettext-0.19
-GETTEXT_MACRO_VERSION = 0.19
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-
-SED = @SED@
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datarootdir = @datarootdir@
-datadir = @datadir@
-localedir = @localedir@
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-MKDIR_P = @MKDIR_P@
-
-GMSGFMT_ = @GMSGFMT@
-GMSGFMT_no = @GMSGFMT@
-GMSGFMT_yes = @GMSGFMT_015@
-GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
-MSGFMT_ = @MSGFMT@
-MSGFMT_no = @MSGFMT@
-MSGFMT_yes = @MSGFMT_015@
-MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
-XGETTEXT_ = @XGETTEXT@
-XGETTEXT_no = @XGETTEXT@
-XGETTEXT_yes = @XGETTEXT_015@
-XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in remove-potcdate.sin \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot
-POFILESDEPS_yes = $(POFILESDEPS_)
-POFILESDEPS_no =
-POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT))
-
-DISTFILESDEPS_ = update-po
-DISTFILESDEPS_yes = $(DISTFILESDEPS_)
-DISTFILESDEPS_no =
-DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
-
-.po.mo:
- @echo "$(MSGFMT) -c -o $@ $<"; \
- $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
-
-.sin.sed:
- sed -e '/^#/d' $< > t-$@
- mv t-$@ $@
-
-
-all: all-@USE_NLS@
-
-all-yes: stamp-po
-all-no:
-
-# Ensure that the gettext macros and this Makefile.in.in are in sync.
-CHECK_MACRO_VERSION = \
- test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
- || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
- exit 1; \
- }
-
-# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
-# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
-# we don't want to bother translators with empty POT files). We assume that
-# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
-# In this case, stamp-po is a nop (i.e. a phony target).
-
-# stamp-po is a timestamp denoting the last time at which the CATALOGS have
-# been loosely updated. Its purpose is that when a developer or translator
-# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
-# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
-# invocations of "make" will do nothing. This timestamp would not be necessary
-# if updating the $(CATALOGS) would always touch them; however, the rule for
-# $(POFILES) has been designed to not touch files that don't need to be
-# changed.
-stamp-po: $(srcdir)/$(DOMAIN).pot
- @$(CHECK_MACRO_VERSION)
- test ! -f $(srcdir)/$(DOMAIN).pot || \
- test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
- @test ! -f $(srcdir)/$(DOMAIN).pot || { \
- echo "touch stamp-po" && \
- echo timestamp > stamp-poT && \
- mv stamp-poT stamp-po; \
- }
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
-# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
-# The determination of whether the package xyz is a GNU one is based on the
-# heuristic whether some file in the top level directory mentions "GNU xyz".
-# If GNU 'find' is available, we avoid grepping through monster files.
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
- package_gnu="$(PACKAGE_GNU)"; \
- test -n "$$package_gnu" || { \
- if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
- LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
- -size -10000000c -exec grep 'GNU @PACKAGE@' \
- /dev/null '{}' ';' 2>/dev/null; \
- else \
- LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
- fi; \
- } | grep -v 'libtool:' >/dev/null; then \
- package_gnu=yes; \
- else \
- package_gnu=no; \
- fi; \
- }; \
- if test "$$package_gnu" = "yes"; then \
- package_prefix='GNU '; \
- else \
- package_prefix=''; \
- fi; \
- if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
- msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
- else \
- msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
- fi; \
- case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- --msgid-bugs-address="$$msgid_bugs_address" \
- ;; \
- *) \
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- --package-name="$${package_prefix}@PACKAGE@" \
- --package-version='@VERSION@' \
- --msgid-bugs-address="$$msgid_bugs_address" \
- ;; \
- esac
- test ! -f $(DOMAIN).po || { \
- if test -f $(srcdir)/$(DOMAIN).pot; then \
- sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
- sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
- if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
- rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
- else \
- rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
- mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
- fi; \
- else \
- mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
- fi; \
- }
-
-# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
-# every "make" invocation, only create it when it is missing.
-# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-# This target rebuilds a PO file if $(DOMAIN).pot has changed.
-# Note that a PO file is not touched if it doesn't need to be changed.
-$(POFILES): $(POFILESDEPS)
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- if test -f "$(srcdir)/$${lang}.po"; then \
- test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) \
- && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
- $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
- *) \
- $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
- esac; \
- }; \
- else \
- $(MAKE) $${lang}.po-create; \
- fi
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- $(MKDIR_P) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common) Makevars.template; do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- for file in Makevars; do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(MKDIR_P) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- $(MKDIR_P) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(MKDIR_P) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- for file in $(DISTFILES.common) Makevars.template; do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-info dvi ps pdf html tags TAGS ctags CTAGS ID:
-
-mostlyclean:
- rm -f remove-potcdate.sed
- rm -f stamp-poT
- rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f stamp-po $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: stamp-po $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test "$(PACKAGE)" = "gettext-tools"; then \
- dists="$$dists Makevars.template"; \
- fi; \
- if test -f $(srcdir)/$(DOMAIN).pot; then \
- dists="$$dists $(DOMAIN).pot stamp-po"; \
- fi; \
- if test -f $(srcdir)/ChangeLog; then \
- dists="$$dists ChangeLog"; \
- fi; \
- for i in 0 1 2 3 4 5 6 7 8 9; do \
- if test -f $(srcdir)/ChangeLog.$$i; then \
- dists="$$dists ChangeLog.$$i"; \
- fi; \
- done; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir) || exit 1; \
- else \
- cp -p $(srcdir)/$$file $(distdir) || exit 1; \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for creating PO files.
-
-.nop.po-create:
- @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
- echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
- exit 1
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
- $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
- *) \
- $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
- esac; \
- }; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
-# because execution permission bits may not work on the current file system.
-# Use @SHELL@, which is the shell determined by autoconf for the use by its
-# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
-Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
- cd $(top_builddir) \
- && @SHELL@ ./config.status $(subdir)/$@.in po-directories
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/aclocal.tgz b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/aclocal.tgz
deleted file mode 100644
index b04ba5503..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/aclocal.tgz
+++ /dev/null
Binary files differ
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/config.rpath b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/config.rpath
deleted file mode 100755
index b625621fa..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/config.rpath
+++ /dev/null
@@ -1,684 +0,0 @@
-#! /bin/sh
-# Output a system dependent set of variables, describing how to set the
-# run time search path of shared libraries in an executable.
-#
-# Copyright 1996-2014 Free Software Foundation, Inc.
-# Taken from GNU libtool, 2001
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-#
-# The first argument passed to this file is the canonical host specification,
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-# should be set by the caller.
-#
-# The set of defined variables is at the end of this script.
-
-# Known limitations:
-# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
-# than 256 bytes, otherwise the compiler driver will dump core. The only
-# known workaround is to choose shorter directory names for the build
-# directory and/or the installation directory.
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-shrext=.so
-
-host="$1"
-host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-# Code taken from libtool.m4's _LT_CC_BASENAME.
-
-for cc_temp in $CC""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
-
-# Code taken from libtool.m4's _LT_COMPILER_PIC.
-
-wl=
-if test "$GCC" = yes; then
- wl='-Wl,'
-else
- case "$host_os" in
- aix*)
- wl='-Wl,'
- ;;
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- ;;
- hpux9* | hpux10* | hpux11*)
- wl='-Wl,'
- ;;
- irix5* | irix6* | nonstopux*)
- wl='-Wl,'
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- ecc*)
- wl='-Wl,'
- ;;
- icc* | ifort*)
- wl='-Wl,'
- ;;
- lf95*)
- wl='-Wl,'
- ;;
- nagfor*)
- wl='-Wl,-Wl,,'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- wl='-Wl,'
- ;;
- ccc*)
- wl='-Wl,'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- wl='-Wl,'
- ;;
- como)
- wl='-lopt='
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ F* | *Sun*Fortran*)
- wl=
- ;;
- *Sun\ C*)
- wl='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
- newsos6)
- ;;
- *nto* | *qnx*)
- ;;
- osf3* | osf4* | osf5*)
- wl='-Wl,'
- ;;
- rdos*)
- ;;
- solaris*)
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- wl='-Qoption ld '
- ;;
- *)
- wl='-Wl,'
- ;;
- esac
- ;;
- sunos4*)
- wl='-Qoption ld '
- ;;
- sysv4 | sysv4.2uw2* | sysv4.3*)
- wl='-Wl,'
- ;;
- sysv4*MP*)
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- wl='-Wl,'
- ;;
- unicos*)
- wl='-Wl,'
- ;;
- uts4*)
- ;;
- esac
-fi
-
-# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
-
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-
-case "$host_os" in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- # Unlike libtool, we use -rpath here, not --rpath, since the documented
- # option of GNU ld is called -rpath, not --rpath.
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- case "$host_os" in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- fi
- ;;
- amigaos*)
- case "$host_cpu" in
- powerpc)
- ;;
- m68k)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- cygwin* | mingw* | pw32* | cegcc*)
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- haiku*)
- ;;
- interix[3-9]*)
- hardcode_direct=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- netbsd*)
- ;;
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
- sunos4*)
- hardcode_direct=yes
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- esac
- if test "$ld_shlibs" = no; then
- hardcode_libdir_flag_spec=
- fi
-else
- case "$host_os" in
- aix3*)
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- else
- aix_use_runtimelinking=no
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
- fi
- hardcode_direct=yes
- hardcode_libdir_separator=':'
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- fi
- # Begin _LT_AC_SYS_LIBPATH_AIX.
- echo 'int main () { return 0; }' > conftest.c
- ${CC} ${LDFLAGS} conftest.c -o conftest
- aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
- if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
- fi
- if test -z "$aix_libpath"; then
- aix_libpath="/usr/lib:/lib"
- fi
- rm -f conftest.c conftest
- # End _LT_AC_SYS_LIBPATH_AIX.
- if test "$aix_use_runtimelinking" = yes; then
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- else
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- fi
- fi
- ;;
- amigaos*)
- case "$host_cpu" in
- powerpc)
- ;;
- m68k)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
- bsdi[45]*)
- ;;
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- libext=lib
- ;;
- darwin* | rhapsody*)
- hardcode_direct=no
- if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- dgux*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- freebsd2.[01]*)
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- freebsd* | dragonfly*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- hpux9*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- hpux10*)
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
- hpux11*)
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- ;;
- *)
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
- irix5* | irix6* | nonstopux*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- netbsd*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- newsos6)
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- *nto* | *qnx*)
- ;;
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- osf3*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- osf4* | osf5*)
- if test "$GCC" = yes; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- # Both cc and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- hardcode_libdir_separator=:
- ;;
- solaris*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- sunos4*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- sysv4)
- case $host_vendor in
- sni)
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- hardcode_direct=no
- ;;
- motorola)
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- ;;
- sysv4.3*)
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- ld_shlibs=yes
- fi
- ;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- ;;
- sysv5* | sco3.2v5* | sco5v6*)
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator=':'
- ;;
- uts4*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
-fi
-
-# Check dynamic linker characteristics
-# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
-# Unlike libtool.m4, here we don't care about _all_ names of the library, but
-# only about the one the linker finds when passed -lNAME. This is the last
-# element of library_names_spec in libtool.m4, or possibly two of them if the
-# linker has special search rules.
-library_names_spec= # the last element of library_names_spec in libtool.m4
-libname_spec='lib$name'
-case "$host_os" in
- aix3*)
- library_names_spec='$libname.a'
- ;;
- aix[4-9]*)
- library_names_spec='$libname$shrext'
- ;;
- amigaos*)
- case "$host_cpu" in
- powerpc*)
- library_names_spec='$libname$shrext' ;;
- m68k)
- library_names_spec='$libname.a' ;;
- esac
- ;;
- beos*)
- library_names_spec='$libname$shrext'
- ;;
- bsdi[45]*)
- library_names_spec='$libname$shrext'
- ;;
- cygwin* | mingw* | pw32* | cegcc*)
- shrext=.dll
- library_names_spec='$libname.dll.a $libname.lib'
- ;;
- darwin* | rhapsody*)
- shrext=.dylib
- library_names_spec='$libname$shrext'
- ;;
- dgux*)
- library_names_spec='$libname$shrext'
- ;;
- freebsd[23].*)
- library_names_spec='$libname$shrext$versuffix'
- ;;
- freebsd* | dragonfly*)
- library_names_spec='$libname$shrext'
- ;;
- gnu*)
- library_names_spec='$libname$shrext'
- ;;
- haiku*)
- library_names_spec='$libname$shrext'
- ;;
- hpux9* | hpux10* | hpux11*)
- case $host_cpu in
- ia64*)
- shrext=.so
- ;;
- hppa*64*)
- shrext=.sl
- ;;
- *)
- shrext=.sl
- ;;
- esac
- library_names_spec='$libname$shrext'
- ;;
- interix[3-9]*)
- library_names_spec='$libname$shrext'
- ;;
- irix5* | irix6* | nonstopux*)
- library_names_spec='$libname$shrext'
- case "$host_os" in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
- *) libsuff= shlibsuff= ;;
- esac
- ;;
- esac
- ;;
- linux*oldld* | linux*aout* | linux*coff*)
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- library_names_spec='$libname$shrext'
- ;;
- knetbsd*-gnu)
- library_names_spec='$libname$shrext'
- ;;
- netbsd*)
- library_names_spec='$libname$shrext'
- ;;
- newsos6)
- library_names_spec='$libname$shrext'
- ;;
- *nto* | *qnx*)
- library_names_spec='$libname$shrext'
- ;;
- openbsd*)
- library_names_spec='$libname$shrext$versuffix'
- ;;
- os2*)
- libname_spec='$name'
- shrext=.dll
- library_names_spec='$libname.a'
- ;;
- osf3* | osf4* | osf5*)
- library_names_spec='$libname$shrext'
- ;;
- rdos*)
- ;;
- solaris*)
- library_names_spec='$libname$shrext'
- ;;
- sunos4*)
- library_names_spec='$libname$shrext$versuffix'
- ;;
- sysv4 | sysv4.3*)
- library_names_spec='$libname$shrext'
- ;;
- sysv4*MP*)
- library_names_spec='$libname$shrext'
- ;;
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- library_names_spec='$libname$shrext'
- ;;
- tpf*)
- library_names_spec='$libname$shrext'
- ;;
- uts4*)
- library_names_spec='$libname$shrext'
- ;;
-esac
-
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
-escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-
-LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-
-# How to pass a linker flag through the compiler.
-wl="$escaped_wl"
-
-# Static library suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally "so").
-shlibext="$shlibext"
-
-# Format of library name prefix.
-libname_spec="$escaped_libname_spec"
-
-# Library names that the linker finds when passed -lNAME.
-library_names_spec="$escaped_library_names_spec"
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator="$hardcode_libdir_separator"
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct="$hardcode_direct"
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L="$hardcode_minus_L"
-
-EOF
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch
index 29ef2a5a6..29ef2a5a6 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/0001-PATCH-Disable-the-test-to-convert-euc-jp.patch
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING
new file mode 100644
index 000000000..3671ab698
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/COPYING
@@ -0,0 +1,4 @@
+dnl Copyright (C) 1995-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in
new file mode 100644
index 000000000..38c293d2e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/Makefile.in.in
@@ -0,0 +1,483 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+#
+# Origin: gettext-0.19.8
+GETTEXT_MACRO_VERSION = 0.19
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SED = @SED@
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+# When building gettext-tools, we prefer to use the built programs
+# rather than installed programs. However, we can't do that when we
+# are cross compiling.
+CROSS_COMPILING = @CROSS_COMPILING@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot
+POFILESDEPS_yes = $(POFILESDEPS_)
+POFILESDEPS_no =
+POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT))
+
+DISTFILESDEPS_ = update-po
+DISTFILESDEPS_yes = $(DISTFILESDEPS_)
+DISTFILESDEPS_no =
+DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# Ensure that the gettext macros and this Makefile.in.in are in sync.
+CHECK_MACRO_VERSION = \
+ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ exit 1; \
+ }
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ @$(CHECK_MACRO_VERSION)
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+# The determination of whether the package xyz is a GNU one is based on the
+# heuristic whether some file in the top level directory mentions "GNU xyz".
+# If GNU 'find' is available, we avoid grepping through monster files.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ package_gnu="$(PACKAGE_GNU)"; \
+ test -n "$$package_gnu" || { \
+ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
+ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
+ -size -10000000c -exec grep 'GNU @PACKAGE@' \
+ /dev/null '{}' ';' 2>/dev/null; \
+ else \
+ LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+ fi; \
+ } | grep -v 'libtool:' >/dev/null; then \
+ package_gnu=yes; \
+ else \
+ package_gnu=no; \
+ fi; \
+ }; \
+ if test "$$package_gnu" = "yes"; then \
+ package_prefix='GNU '; \
+ else \
+ package_prefix=''; \
+ fi; \
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ *) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --package-name="$${package_prefix}@PACKAGE@" \
+ --package-version='@VERSION@' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ esac
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot-header; then \
+ sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
+ cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po; \
+ rm -f $(DOMAIN).1po; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(POFILESDEPS)
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) \
+ && { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+ esac; \
+ }; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir) || exit 1; \
+ else \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ *) \
+ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+ esac; \
+ }; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
+# because execution permission bits may not work on the current file system.
+# Use @SHELL@, which is the shell determined by autoconf for the use by its
+# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && @SHELL@ ./config.status $(subdir)/$@.in po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz
new file mode 100644
index 000000000..9b2d1f561
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/aclocal.tgz
Binary files differ
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath
new file mode 100755
index 000000000..98183ff2f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/config.rpath
@@ -0,0 +1,684 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2016 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a '.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ ecc*)
+ wl='-Wl,'
+ ;;
+ icc* | ifort*)
+ wl='-Wl,'
+ ;;
+ lf95*)
+ wl='-Wl,'
+ ;;
+ nagfor*)
+ wl='-Wl,-Wl,,'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ wl='-Wl,'
+ ;;
+ ccc*)
+ wl='-Wl,'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ wl='-Wl,'
+ ;;
+ como)
+ wl='-lopt='
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ wl=
+ ;;
+ *Sun\ C*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ newsos6)
+ ;;
+ *nto* | *qnx*)
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ wl='-Qoption ld '
+ ;;
+ *)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
+ unicos*)
+ wl='-Wl,'
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ case "$host_os" in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ haiku*)
+ ;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = no; then
+ hardcode_libdir_flag_spec=
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+ bsdi[45]*)
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ hardcode_direct=no
+ if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd2.[01]*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd* | dragonfly*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+ hpux11*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ ;;
+ *)
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ *nto* | *qnx*)
+ ;;
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ ;;
+ sysv5* | sco3.2v5* | sco5v6*)
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ library_names_spec='$libname.a'
+ ;;
+ aix[4-9]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc*)
+ library_names_spec='$libname$shrext' ;;
+ m68k)
+ library_names_spec='$libname.a' ;;
+ esac
+ ;;
+ beos*)
+ library_names_spec='$libname$shrext'
+ ;;
+ bsdi[45]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ library_names_spec='$libname$shrext'
+ ;;
+ dgux*)
+ library_names_spec='$libname$shrext'
+ ;;
+ freebsd[23].*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ freebsd* | dragonfly*)
+ library_names_spec='$libname$shrext'
+ ;;
+ gnu*)
+ library_names_spec='$libname$shrext'
+ ;;
+ haiku*)
+ library_names_spec='$libname$shrext'
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $host_cpu in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ library_names_spec='$libname$shrext'
+ ;;
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ netbsd*)
+ library_names_spec='$libname$shrext'
+ ;;
+ newsos6)
+ library_names_spec='$libname$shrext'
+ ;;
+ *nto* | *qnx*)
+ library_names_spec='$libname$shrext'
+ ;;
+ openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ library_names_spec='$libname.a'
+ ;;
+ osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv4*MP*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
+ ;;
+ tpf*)
+ library_names_spec='$libname$shrext'
+ ;;
+ uts4*)
+ library_names_spec='$libname$shrext'
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/remove-potcdate.sin b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/remove-potcdate.sin
index 2436c49e7..2436c49e7 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.4/remove-potcdate.sin
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-0.19.8.1/remove-potcdate.sin
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.4.bb b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.4.bb
deleted file mode 100644
index 1d4a443b7..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.4.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Minimal gettext for supporting native autoconf/automake"
-DESCRIPTION = "Contains the m4 macros sufficient to support building \
-autoconf/automake. This provides a significant build time speedup by \
-the removal of gettext-native from most dependency chains (now only \
-needed for gettext for the target)."
-SRC_URI = "file://aclocal.tgz \
- file://config.rpath \
- file://Makefile.in.in \
- file://remove-potcdate.sin \
- file://COPYING \
- file://0001-PATCH-Disable-the-test-to-convert-euc-jp.patch \
-"
-
-INHIBIT_DEFAULT_DEPS = "1"
-INHIBIT_AUTOTOOLS_DEPS = "1"
-
-LICENSE = "FSF-Unlimited"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1b20675cd5158442f6007d022f46b35b"
-
-inherit native
-
-
-S = "${WORKDIR}"
-
-do_install () {
- install -d ${D}${datadir}/aclocal/
- cp ${WORKDIR}/*.m4 ${D}${datadir}/aclocal/
- install -d ${D}${datadir}/gettext/po/
- cp ${WORKDIR}/config.rpath ${D}${datadir}/gettext/
- cp ${WORKDIR}/Makefile.in.in ${D}${datadir}/gettext/po/
- cp ${WORKDIR}/remove-potcdate.sin ${D}${datadir}/gettext/po/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb
new file mode 100644
index 000000000..26ff19975
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext-minimal-native_0.19.8.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Minimal gettext for supporting native autoconf/automake"
+DESCRIPTION = "Contains the m4 macros sufficient to support building \
+autoconf/automake. This provides a significant build time speedup by \
+the removal of gettext-native from most dependency chains (now only \
+needed for gettext for the target)."
+SRC_URI = "file://aclocal.tgz \
+ file://config.rpath \
+ file://Makefile.in.in \
+ file://remove-potcdate.sin \
+ file://COPYING \
+ file://0001-PATCH-Disable-the-test-to-convert-euc-jp.patch \
+"
+
+INHIBIT_DEFAULT_DEPS = "1"
+INHIBIT_AUTOTOOLS_DEPS = "1"
+
+LICENSE = "FSF-Unlimited"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4bd090a20bfcd1a18f1f79837b5e3e91"
+
+inherit native
+
+S = "${WORKDIR}"
+
+do_install () {
+ install -d ${D}${datadir}/aclocal/
+ cp ${WORKDIR}/*.m4 ${D}${datadir}/aclocal/
+ install -d ${D}${datadir}/gettext/po/
+ cp ${WORKDIR}/config.rpath ${D}${datadir}/gettext/
+ cp ${WORKDIR}/Makefile.in.in ${D}${datadir}/gettext/po/
+ cp ${WORKDIR}/remove-potcdate.sin ${D}${datadir}/gettext/po/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.16.1.bb b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.16.1.bb
index cd0b759d5..e79f4dacf 100644
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.16.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.16.1.bb
@@ -9,7 +9,7 @@ PR = "r6"
DEPENDS = "virtual/libiconv"
DEPENDS_class-native = ""
PROVIDES = "virtual/libintl virtual/gettext"
-PROVIDES_class-native = ""
+PROVIDES_class-native = "virtual/gettext-native"
SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://gettext-vpath.patch \
@@ -21,16 +21,28 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
file://hardcode_macro_version.patch \
"
-LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
-
SRC_URI[md5sum] = "3d9ad24301c6d6b17ec30704a13fe127"
SRC_URI[sha256sum] = "0bf850d1a079fb5a61f0a47b1a9efd35eb44032255375e1cedb0253bc27b376d"
PARALLEL_MAKE = ""
+LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
+
inherit autotools texinfo
-EXTRA_OECONF += "--without-lisp --disable-csharp --disable-openmp --without-emacs"
+EXTRA_OECONF += "--without-lispdir \
+ --disable-csharp \
+ --disable-libasprintf \
+ --disable-java \
+ --disable-native-java \
+ --disable-openmp \
+ --without-emacs \
+ "
+EXTRA_OECONF_append_libc-musl = "\
+ gt_cv_func_gnugettext1_libc=yes \
+ gt_cv_func_gnugettext2_libc=yes \
+ "
+
acpaths = '-I ${S}/autoconf-lib-link/m4/ \
-I ${S}/gettext-runtime/m4 \
-I ${S}/gettext-tools/m4'
@@ -41,7 +53,6 @@ do_configure_prepend() {
do_install_append_libc-musl () {
rm -f ${D}${libdir}/charset.alias
- rm -f ${D}${includedir}/libintl.h
}
# these lack the .x behind the .so, but shouldn't be in the -dev package
@@ -93,20 +104,21 @@ FILES_gettext-runtime-doc = "${mandir}/man1/gettext.* \
${infodir}/autosprintf.info \
"
-
do_install_append() {
- rm -f ${D}${libdir}/preloadable_libintl.so
+ rm -f ${D}${libdir}/preloadable_libintl.so
+}
+
+do_install_append_class-native () {
+ rm ${D}${datadir}/aclocal/*
+ rm ${D}${datadir}/gettext/config.rpath
+ rm ${D}${datadir}/gettext/po/Makefile.in.in
+ rm ${D}${datadir}/gettext/po/remove-potcdate.sin
}
# Anyone inheriting gettext will have both gettext-native and gettext
# available, and we don't want to use older macros from the target gettext in
# a non-gplv3 build, so kill them and let dependent recipes rely on
# gettext-native.
-
-SYSROOT_PREPROCESS_FUNCS += "remove_sysroot_m4_macros"
-
-remove_sysroot_m4_macros () {
- rm -r "${SYSROOT_DESTDIR}${datadir}/aclocal"
-}
+SYSROOT_DIRS_BLACKLIST += "${datadir}/aclocal"
BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.6.bb b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.6.bb
deleted file mode 100644
index 592e4fc76..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.6.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Utilities and libraries for producing multi-lingual messages"
-DESCRIPTION = "GNU gettext is a set of tools that provides a framework to help other programs produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable and already translated strings."
-HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
-SECTION = "libs"
-LICENSE = "GPLv3+ & LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "gettext-native virtual/libiconv expat"
-DEPENDS_class-native = "gettext-minimal-native"
-PROVIDES = "virtual/libintl virtual/gettext"
-PROVIDES_class-native = "virtual/gettext-native"
-RCONFLICTS_${PN} = "proxy-libintl"
-SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
- file://parallel.patch \
- file://add-with-bisonlocaledir.patch \
-"
-
-SRC_URI[md5sum] = "6d1447f8c5c45c329371ef4bfe7d79a5"
-SRC_URI[sha256sum] = "ed4b4c19bd3a3034eb6769500a3592ff616759ef43cf30586dbb7a17c9dd695d"
-
-PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses,"
-
-LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
-
-inherit autotools texinfo
-
-EXTRA_OECONF += "--without-lispdir \
- --disable-csharp \
- --disable-libasprintf \
- --disable-java \
- --disable-native-java \
- --disable-openmp \
- --disable-acl \
- --with-included-glib \
- --without-emacs \
- --without-cvs \
- --without-git \
- --with-included-libxml \
- --with-included-libcroco \
- --with-included-libunistring \
- "
-EXTRA_OECONF_append_class-target = " \
- --with-bisonlocaledir=${datadir}/locale \
-"
-
-acpaths = '-I ${S}/gettext-runtime/m4 \
- -I ${S}/gettext-tools/m4'
-
-do_install_append_libc-musl () {
- rm -f ${D}${libdir}/charset.alias
- rm -f ${D}${includedir}/libintl.h
- rm -f ${D}${libdir}/libintl.la
-}
-
-# these lack the .x behind the .so, but shouldn't be in the -dev package
-# Otherwise you get the following results:
-# 7.4M glibc/images/ep93xx/Angstrom-console-image-glibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
-# 25M uclibc/images/ep93xx/Angstrom-console-image-uclibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
-# because gettext depends on gettext-dev, which pulls in more -dev packages:
-# 15228 KiB /ep93xx/libstdc++-dev_4.2.2-r2_ep93xx.ipk
-# 1300 KiB /ep93xx/uclibc-dev_0.9.29-r8_ep93xx.ipk
-# 140 KiB /armv4t/gettext-dev_0.14.1-r6_armv4t.ipk
-# 4 KiB /ep93xx/libgcc-s-dev_4.2.2-r2_ep93xx.ipk
-
-PACKAGES =+ "libgettextlib libgettextsrc"
-FILES_libgettextlib = "${libdir}/libgettextlib-*.so*"
-FILES_libgettextsrc = "${libdir}/libgettextsrc-*.so*"
-
-PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-doc"
-
-FILES_${PN} += "${libdir}/${BPN}/*"
-
-FILES_gettext-runtime = "${bindir}/gettext \
- ${bindir}/ngettext \
- ${bindir}/envsubst \
- ${bindir}/gettext.sh \
- ${libdir}/libasprintf.so* \
- ${libdir}/GNU.Gettext.dll \
- "
-FILES_gettext-runtime_append_libc-uclibc = " ${libdir}/libintl.so.* \
- ${libdir}/charset.alias \
- "
-FILES_gettext-runtime-dev += "${libdir}/libasprintf.a \
- ${includedir}/autosprintf.h \
- "
-FILES_gettext-runtime-dev_append_libc-uclibc = " ${libdir}/libintl.so \
- ${includedir}/libintl.h \
- "
-FILES_gettext-runtime-doc = "${mandir}/man1/gettext.* \
- ${mandir}/man1/ngettext.* \
- ${mandir}/man1/envsubst.* \
- ${mandir}/man1/.* \
- ${mandir}/man3/* \
- ${docdir}/gettext/gettext.* \
- ${docdir}/gettext/ngettext.* \
- ${docdir}/gettext/envsubst.* \
- ${docdir}/gettext/*.3.html \
- ${datadir}/gettext/ABOUT-NLS \
- ${docdir}/gettext/csharpdoc/* \
- ${docdir}/libasprintf/autosprintf.html \
- ${infodir}/autosprintf.info \
- "
-
-do_install_append() {
- rm -f ${D}${libdir}/preloadable_libintl.so
-}
-
-do_install_append_class-native () {
- rm ${D}${datadir}/aclocal/*
- rm ${D}${datadir}/gettext/config.rpath
- rm ${D}${datadir}/gettext/po/Makefile.in.in
- rm ${D}${datadir}/gettext/po/remove-potcdate.sin
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb
new file mode 100644
index 000000000..7b8c1e8eb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/gettext/gettext_0.19.8.1.bb
@@ -0,0 +1,120 @@
+SUMMARY = "Utilities and libraries for producing multi-lingual messages"
+DESCRIPTION = "GNU gettext is a set of tools that provides a framework to help other programs produce multi-lingual messages. These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and a few stand-alone programs to massage in various ways the sets of translatable and already translated strings."
+HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
+SECTION = "libs"
+LICENSE = "GPLv3+ & LGPL-2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "gettext-native virtual/libiconv expat"
+DEPENDS_class-native = "gettext-minimal-native"
+PROVIDES = "virtual/libintl virtual/gettext"
+PROVIDES_class-native = "virtual/gettext-native"
+RCONFLICTS_${PN} = "proxy-libintl"
+SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
+ file://parallel.patch \
+ file://add-with-bisonlocaledir.patch \
+"
+
+SRC_URI[md5sum] = "97e034cf8ce5ba73a28ff6c3c0638092"
+SRC_URI[sha256sum] = "ff942af0e438ced4a8b0ea4b0b6e0d6d657157c5e2364de57baa279c1c125c43"
+
+PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses,"
+
+LDFLAGS_prepend_libc-uclibc = " -lrt -lpthread "
+
+inherit autotools texinfo
+
+EXTRA_OECONF += "--without-lispdir \
+ --disable-csharp \
+ --disable-libasprintf \
+ --disable-java \
+ --disable-native-java \
+ --disable-openmp \
+ --disable-acl \
+ --with-included-glib \
+ --without-emacs \
+ --without-cvs \
+ --without-git \
+ --with-included-libxml \
+ --with-included-libcroco \
+ --with-included-libunistring \
+ "
+EXTRA_OECONF_append_class-target = " \
+ --with-bisonlocaledir=${datadir}/locale \
+"
+
+acpaths = '-I ${S}/gettext-runtime/m4 \
+ -I ${S}/gettext-tools/m4'
+
+do_install_append_libc-musl () {
+ rm -f ${D}${libdir}/charset.alias
+ rm -f ${D}${includedir}/libintl.h
+ rm -f ${D}${libdir}/libintl.la
+}
+
+# these lack the .x behind the .so, but shouldn't be in the -dev package
+# Otherwise you get the following results:
+# 7.4M glibc/images/ep93xx/Angstrom-console-image-glibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
+# 25M uclibc/images/ep93xx/Angstrom-console-image-uclibc-ipk-2008.1-test-20080104-ep93xx.rootfs.tar.gz
+# because gettext depends on gettext-dev, which pulls in more -dev packages:
+# 15228 KiB /ep93xx/libstdc++-dev_4.2.2-r2_ep93xx.ipk
+# 1300 KiB /ep93xx/uclibc-dev_0.9.29-r8_ep93xx.ipk
+# 140 KiB /armv4t/gettext-dev_0.14.1-r6_armv4t.ipk
+# 4 KiB /ep93xx/libgcc-s-dev_4.2.2-r2_ep93xx.ipk
+
+PACKAGES =+ "libgettextlib libgettextsrc"
+FILES_libgettextlib = "${libdir}/libgettextlib-*.so*"
+FILES_libgettextsrc = "${libdir}/libgettextsrc-*.so*"
+
+PACKAGES =+ "gettext-runtime gettext-runtime-dev gettext-runtime-doc"
+
+FILES_${PN} += "${libdir}/${BPN}/*"
+
+# The its/Makefile.am has defined:
+# itsdir = $(pkgdatadir)$(PACKAGE_SUFFIX)/its
+# not itsdir = $(pkgdatadir), so use wildcard to match the version.
+FILES_${PN} += "${datadir}/${BPN}-*/*"
+
+FILES_gettext-runtime = "${bindir}/gettext \
+ ${bindir}/ngettext \
+ ${bindir}/envsubst \
+ ${bindir}/gettext.sh \
+ ${libdir}/libasprintf.so* \
+ ${libdir}/GNU.Gettext.dll \
+ "
+FILES_gettext-runtime_append_libc-uclibc = " ${libdir}/libintl.so.* \
+ ${libdir}/charset.alias \
+ "
+FILES_gettext-runtime-dev += "${libdir}/libasprintf.a \
+ ${includedir}/autosprintf.h \
+ "
+FILES_gettext-runtime-dev_append_libc-uclibc = " ${libdir}/libintl.so \
+ ${includedir}/libintl.h \
+ "
+FILES_gettext-runtime-doc = "${mandir}/man1/gettext.* \
+ ${mandir}/man1/ngettext.* \
+ ${mandir}/man1/envsubst.* \
+ ${mandir}/man1/.* \
+ ${mandir}/man3/* \
+ ${docdir}/gettext/gettext.* \
+ ${docdir}/gettext/ngettext.* \
+ ${docdir}/gettext/envsubst.* \
+ ${docdir}/gettext/*.3.html \
+ ${datadir}/gettext/ABOUT-NLS \
+ ${docdir}/gettext/csharpdoc/* \
+ ${docdir}/libasprintf/autosprintf.html \
+ ${infodir}/autosprintf.info \
+ "
+
+do_install_append() {
+ rm -f ${D}${libdir}/preloadable_libintl.so
+}
+
+do_install_append_class-native () {
+ rm ${D}${datadir}/aclocal/*
+ rm ${D}${datadir}/gettext/config.rpath
+ rm ${D}${datadir}/gettext/po/Makefile.in.in
+ rm ${D}${datadir}/gettext/po/remove-potcdate.sin
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch
new file mode 100644
index 000000000..aee96aaa6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-Do-not-ignore-return-value-of-write.patch
@@ -0,0 +1,42 @@
+From d6501b107940e9f548c89236d773c6d33c15a5c9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Apr 2016 13:28:59 -0700
+Subject: [PATCH 1/2] Do not ignore return value of write()
+
+gcc warns about ignoring return value when compiling
+with fortify turned on.
+
+assert when write() fails
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ glib/tests/unix.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/glib/tests/unix.c b/glib/tests/unix.c
+index 3543458..4e7ed85 100644
+--- a/glib/tests/unix.c
++++ b/glib/tests/unix.c
+@@ -32,14 +32,15 @@ test_pipe (void)
+ GError *error = NULL;
+ int pipefd[2];
+ char buf[1024];
+- ssize_t bytes_read;
++ ssize_t bytes_read, bytes_written;
+ gboolean res;
+
+ res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
+ g_assert (res);
+ g_assert_no_error (error);
+
+- write (pipefd[1], "hello", sizeof ("hello"));
++ bytes_written = write (pipefd[1], "hello", sizeof ("hello"));
++ g_assert (bytes_written != -1 && "write() failed");
+ memset (buf, 0, sizeof (buf));
+ bytes_read = read (pipefd[0], buf, sizeof(buf) - 1);
+ g_assert_cmpint (bytes_read, >, 0);
+--
+2.8.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch
deleted file mode 100644
index 0be36316b..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-commit 9b38d507ec37b3d7d4df6095fa7ed16b47d399f7
-Author: Drew Moseley <drew_moseley@mentor.com>
-Date: Sat Mar 29 21:10:43 2014 -0400
-
- configure.ac: Do not use readlink when cross compiling.
-
- Do not use readlink to set ABS_GLIB_RUNTIME_LIBDIR when cross
- compiling. Doing so causes host paths to potentially pollute
- the target.
-
- Note that in this case the path is not converted to absolute if
- it contains any ".." references so it's not completely correct.
-
- Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=727575]
- Signed-off-by: Drew Moseley <drew_moseley@mentor.com>
-
-diff -rub glib-2.38.2.orig/configure.ac glib-2.38.2/configure.ac
---- glib-2.38.2.orig/configure.ac 2014-04-03 20:17:13.035567143 -0400
-+++ glib-2.38.2/configure.ac 2014-04-03 20:19:07.071566057 -0400
-@@ -275,7 +275,11 @@
- [],
- [with_runtime_libdir=""])
- GLIB_RUNTIME_LIBDIR="$with_runtime_libdir"
-+AS_IF([ test $cross_compiling = yes ], [
-+ABS_GLIB_RUNTIME_LIBDIR="$libdir/$with_runtime_libdir"
-+], [
- ABS_GLIB_RUNTIME_LIBDIR="`readlink -m $libdir/$with_runtime_libdir`"
-+])
- AC_SUBST(GLIB_RUNTIME_LIBDIR)
- AC_SUBST(ABS_GLIB_RUNTIME_LIBDIR)
- AM_CONDITIONAL(HAVE_GLIB_RUNTIME_LIBDIR, [test "x$with_runtime_libdir" != "x"])
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Ignore-y2k-warnings.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Ignore-y2k-warnings.patch
new file mode 100644
index 000000000..f61fa0ae6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/0002-tests-Ignore-y2k-warnings.patch
@@ -0,0 +1,42 @@
+From b06b22fecc7deda8c65e28670562ca2371e4e725 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Apr 2016 13:43:54 -0700
+Subject: [PATCH 2/2] tests: Ignore y2k warnings
+
+silences
+| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c: In function 'test_strftime':
+| ../../../../../../../../workspace/sources/glib-2.0/glib/tests/gdatetime.c:1338:3: error: '%c' yields only last 2 digits of year in some locales [-Werror=format-y2k]
+| "a%a A%A b%b B%B c%c C%C d%d e%e F%F g%g G%G h%h H%H I%I j%j m%m M%M "
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ glib/tests/gdatetime.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c
+index 16a163c..e6062fc 100644
+--- a/glib/tests/gdatetime.c
++++ b/glib/tests/gdatetime.c
+@@ -1326,6 +1326,9 @@ test_z (void)
+ g_time_zone_unref (tz);
+ }
+
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-y2k"
++
+ static void
+ test_strftime (void)
+ {
+@@ -1351,6 +1354,7 @@ test_strftime (void)
+ }
+ #endif
+ }
++#pragma GCC diagnostic pop
+
+ static void
+ test_find_interval (void)
+--
+2.8.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
index f1e688cac..9b4ded14d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/Enable-more-tests-while-cross-compiling.patch
@@ -46,7 +46,7 @@ index 868873f..533e454 100644
@@ -545,7 +548,6 @@ test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --
EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml
- CLEANFILES += test_resources.c test_resources2.[ch] plugin_resources.c test.gresource
+ CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource
-endif # !CROSS_COMPILING
BUILT_SOURCES += giotypefuncs.c
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch
deleted file mode 100644
index 9759d11e3..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/glib-2.0-configure-readlink.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-configure.ac: change readlink -f to -m
-
-Change "readlink -f" to "readlink -m" since $libdir/$with_runtime_libdir
-may not exist.
-
-This patch should go to the upstream, I will send it sooner.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -271,7 +271,7 @@ AC_ARG_WITH(runtime-libdir,
- [],
- [with_runtime_libdir=""])
- GLIB_RUNTIME_LIBDIR="$with_runtime_libdir"
--ABS_GLIB_RUNTIME_LIBDIR="`readlink -f $libdir/$with_runtime_libdir`"
-+ABS_GLIB_RUNTIME_LIBDIR="`readlink -m $libdir/$with_runtime_libdir`"
- AC_SUBST(GLIB_RUNTIME_LIBDIR)
- AC_SUBST(ABS_GLIB_RUNTIME_LIBDIR)
- AM_CONDITIONAL(HAVE_GLIB_RUNTIME_LIBDIR, [test "x$with_runtime_libdir" != "x"])
---
-1.8.1.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index f9e3f3dba..65d5b43f9 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -6,44 +6,42 @@ This solves relocation problems with GIOModule for native builds of glib.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
+Port patch to 2.48
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ gio/giomodule.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
diff --git a/gio/giomodule.c b/gio/giomodule.c
-index 56c498c..a2e32b7 100644
+index da7c167..cc0bc7c 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
-@@ -47,6 +47,27 @@
- #include "gdesktopappinfo.h"
+@@ -40,6 +40,8 @@
+ #include "gnetworkmonitor.h"
+ #ifdef G_OS_WIN32
+ #include "gregistrysettingsbackend.h"
++#else
++#include <dlfcn.h>
#endif
+ #include <glib/gstdio.h>
-+#include <dlfcn.h>
-+
-+/*
-+ * Generate a GIO module directory based on where glib is installed
-+ */
-+static const char *
-+_get_gio_module_dir (void)
-+{
-+ Dl_info info;
-+
-+ if (dladdr (g_io_module_new, &info)) {
-+ char *libdir = g_path_get_dirname (info.dli_fname);
-+ char *dir = g_build_filename (libdir, "gio", "modules", NULL);
-+ g_free (libdir);
-+ return dir;
-+ } else {
-+ return GIO_MODULE_DIR;
-+ }
-+}
-+
+@@ -1036,7 +1038,15 @@ get_gio_module_dir (void)
+ #endif
+ g_free (install_dir);
+ #else
+- module_dir = g_strdup (GIO_MODULE_DIR);
++ Dl_info info;
+
- /**
- * SECTION:giomodule
- * @short_description: Loadable GIO Modules
-@@ -1057,7 +1078,7 @@ _g_io_modules_ensure_loaded (void)
- /* Then load the compiled in path */
- module_dir = g_getenv ("GIO_MODULE_DIR");
- if (module_dir == NULL)
-- module_dir = GIO_MODULE_DIR;
-+ module_dir = _get_gio_module_dir ();
-
- g_io_modules_scan_all_in_directory_with_scope (module_dir, scope);
++ if (dladdr (g_io_module_new, &info)) {
++ char *libdir = g_path_get_dirname (info.dli_fname);
++ module_dir = g_build_filename (libdir, "gio", "modules", NULL);
++ g_free (libdir);
++ } else {
++ module_dir = g_strdup (GIO_MODULE_DIR);
++ }
+ #endif
+ }
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.46.2.bb b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.46.2.bb
deleted file mode 100644
index 8e445b415..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.46.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-require glib.inc
-
-PE = "1"
-
-SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
- file://configure-libtool.patch \
- file://fix-conflicting-rand.patch \
- file://glib-2.0-configure-readlink.patch \
- file://run-ptest \
- file://ptest-paths.patch \
- file://uclibc_musl_translation.patch \
- file://0001-configure.ac-Do-not-use-readlink-when-cross-compilin.patch \
- file://allow-run-media-sdX-drive-mount-if-username-root.patch \
- file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
- file://Enable-more-tests-while-cross-compiling.patch \
- file://gi-exclude.patch \
- file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
- "
-
-SRC_URI_append_class-native = " file://glib-gettextize-dir.patch \
- file://relocate-modules.patch"
-
-SRC_URI[md5sum] = "7f815d6e46df68e070cb421ed7f1139e"
-SRC_URI[sha256sum] = "5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb
new file mode 100644
index 000000000..a45f64444
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib-2.0_2.48.2.bb
@@ -0,0 +1,26 @@
+require glib.inc
+
+PE = "1"
+
+SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
+ file://configure-libtool.patch \
+ file://fix-conflicting-rand.patch \
+ file://run-ptest \
+ file://ptest-paths.patch \
+ file://uclibc_musl_translation.patch \
+ file://allow-run-media-sdX-drive-mount-if-username-root.patch \
+ file://0001-Remove-the-warning-about-deprecated-paths-in-schemas.patch \
+ file://Enable-more-tests-while-cross-compiling.patch \
+ file://gi-exclude.patch \
+ file://0001-Install-gio-querymodules-as-libexec_PROGRAM.patch \
+ file://0001-Do-not-ignore-return-value-of-write.patch \
+ file://0002-tests-Ignore-y2k-warnings.patch \
+ "
+
+SRC_URI_append_class-native = " file://glib-gettextize-dir.patch \
+ file://relocate-modules.patch"
+
+SRC_URI[md5sum] = "f4ac1aa2efd4f5798c37625ea697ac57"
+SRC_URI[sha256sum] = "f25e751589cb1a58826eac24fbd4186cda4518af772806b666a3f91f66e6d3f4"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib.inc b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib.inc
index e764fad13..906e0d4d5 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-2.0/glib.inc
@@ -26,7 +26,7 @@ PACKAGES += "${PN}-codegen ${PN}-utils"
LEAD_SONAME = "libglib-2.0.*"
-inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache
+inherit autotools gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache python3native
S = "${WORKDIR}/glib-${PV}"
@@ -44,7 +44,7 @@ EXTRA_OECONF_class-native = "${CORECONF} --disable-selinux"
EXTRA_OECONF_append_libc-uclibc = " --with-libiconv=gnu"
do_configure_prepend() {
- sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
+ sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/gio/gdbus-2.0/codegen/gdbus-codegen.in
}
FILES_${PN} = "${libdir}/lib*${SOLIBS} \
@@ -59,7 +59,8 @@ FILES_${PN}-dev += "${libdir}/glib-2.0/include \
${bindir}/glib-mkenums \
${bindir}/glib-compile-resources \
${datadir}/glib-2.0/gettext/po/Makefile.in.in \
- ${datadir}/glib-2.0/schemas/gschema.dtd"
+ ${datadir}/glib-2.0/schemas/gschema.dtd \
+ ${datadir}/gettext/its"
FILES_${PN}-dbg += "${datadir}/glib-2.0/gdb ${datadir}/gdb"
FILES_${PN}-codegen = "${datadir}/glib-2.0/codegen/*.py \
${bindir}/gdbus-codegen"
@@ -67,15 +68,19 @@ FILES_${PN}-utils = "${bindir}/*"
ARM_INSTRUCTION_SET_armv4 = "arm"
ARM_INSTRUCTION_SET_armv5 = "arm"
+# Valgrind runtime detection works using hand-written assembly, which
+# doesn't support mips16e
+CPPFLAGS_append_class-target_mips16e = " -DNVALGRIND=1"
USE_NLS = "yes"
do_install_append () {
if [ -f ${D}${bindir}/gtester-report ]; then
- sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python|'
+ sed ${D}${bindir}/gtester-report -i -e '1s|^#!.*|#!/usr/bin/env python3|'
fi
# Remove some unpackaged files
+ rm -rf ${D}${datadir}/glib-2.0/codegen/__pycache__
rm -f ${D}${datadir}/glib-2.0/codegen/*.pyc
rm -f ${D}${datadir}/glib-2.0/codegen/*.pyo
@@ -108,8 +113,6 @@ RDEPENDS_${PN}-ptest += "\
tzdata-asia \
tzdata-europe \
tzdata-posix \
- python-pygobject \
- python-dbus \
shared-mime-info \
"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.46.1.bb b/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.46.1.bb
deleted file mode 100644
index 749ac988a..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.46.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GLib networking extensions"
-DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies."
-HOMEPAGE = "http://git.gnome.org/browse/glib-networking/"
-BUGTRACKER = "http://bugzilla.gnome.org"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-SECTION = "libs"
-DEPENDS = "glib-2.0 intltool-native"
-
-SRC_URI[archive.md5sum] = "c000e0b579f5d8fd48efebc7ac4d95dc"
-SRC_URI[archive.sha256sum] = "d5034214217f705891b6c9e719cc2c583c870bfcfdc454ebbb5e5e8940ac90b1"
-
-PACKAGECONFIG ??= "ca-certificates gnutls"
-
-# No explicit dependency as it works without ca-certificates installed
-PACKAGECONFIG[ca-certificates] = "--with-ca-certificates=${sysconfdir}/ssl/certs/ca-certificates.crt,--without-ca-certificates"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
-PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
-PACKAGECONFIG[pkcs11] = "--with-pkcs11,--without-pkcs11,p11-kit"
-
-EXTRA_OECONF = "--without-gnome-proxy"
-
-inherit gnomebase gettext upstream-version-is-even gio-module-cache
-
-FILES_${PN} += "${libdir}/gio/modules/libgio*.so ${datadir}/dbus-1/services/"
-FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
-FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.48.2.bb b/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.48.2.bb
new file mode 100644
index 000000000..50d9983fe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glib-networking/glib-networking_2.48.2.bb
@@ -0,0 +1,29 @@
+SUMMARY = "GLib networking extensions"
+DESCRIPTION = "glib-networking contains the implementations of certain GLib networking features that cannot be implemented directly in GLib itself because of their dependencies."
+HOMEPAGE = "http://git.gnome.org/browse/glib-networking/"
+BUGTRACKER = "http://bugzilla.gnome.org"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SECTION = "libs"
+DEPENDS = "glib-2.0 intltool-native"
+
+SRC_URI[archive.md5sum] = "d7cf81d52c856b0c66f7821021f40e08"
+SRC_URI[archive.sha256sum] = "925c0c49d6b2b8b5695f2e33cd952d1dbb7d18d3f2f796413577719315bb3a84"
+
+PACKAGECONFIG ??= "ca-certificates gnutls"
+
+# No explicit dependency as it works without ca-certificates installed
+PACKAGECONFIG[ca-certificates] = "--with-ca-certificates=${sysconfdir}/ssl/certs/ca-certificates.crt,--without-ca-certificates"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[libproxy] = "--with-libproxy,--without-libproxy,libproxy"
+PACKAGECONFIG[pkcs11] = "--with-pkcs11,--without-pkcs11,p11-kit"
+
+EXTRA_OECONF = "--without-gnome-proxy"
+
+inherit gnomebase gettext upstream-version-is-even gio-module-cache
+
+FILES_${PN} += "${libdir}/gio/modules/libgio*.so ${datadir}/dbus-1/services/"
+FILES_${PN}-dev += "${libdir}/gio/modules/libgio*.la"
+FILES_${PN}-staticdev += "${libdir}/gio/modules/libgio*.a"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native/fix_for_centos_5.8.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native/fix_for_centos_5.8.patch
deleted file mode 100644
index 186a48045..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native/fix_for_centos_5.8.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Inappropriate [other]
-
-This is a hack to fix building the locale bits on an older
-CentOs 5.X machine
-
-Index: git/locale/programs/config.h
-===================================================================
---- git/locale/programs/config.h
-+++ git.orig/locale/programs/config.h
-@@ -19,6 +19,8 @@
- #ifndef _LD_CONFIG_H
- #define _LD_CONFIG_H 1
-
-+#define DUMMY_LOCALE_T
-+
- /* Use the internal textdomain used for libc messages. */
- #define PACKAGE _libc_intl_domainname
- #ifndef VERSION
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.23.bb
deleted file mode 100644
index fa930fd48..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.23.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Cross locale generation tool for glibc"
-HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
-SECTION = "libs"
-LICENSE = "LGPL-2.1"
-
-LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-
-inherit native
-inherit autotools
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
-
-SRCBRANCH ?= "release/${PV}/master"
-GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
-
-SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
- git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \
- file://fix_for_centos_5.8.patch \
- ${EGLIBCPATCHES} \
-"
-EGLIBCPATCHES = "\
- file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
- file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
- file://0018-eglibc-Cross-building-and-testing-instructions.patch \
- file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
- file://0020-eglibc-cherry-picked-from.patch \
- file://0021-eglibc-Clear-cache-lines-on-ppc8xx.patch \
- file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0023-eglibc-Install-PIC-archives.patch \
- file://0025-eglibc-Forward-port-cross-locale-generation-support.patch \
-"
-
-SRCREV_glibc ?= "e742928c1592b43db6809db4f39e67be151cdd27"
-SRCREV_localedef ?= "5a81ff9f06a7a808d4c3d37bbf34077a4c5902ed"
-
-# Makes for a rather long rev (22 characters), but...
-#
-SRCREV_FORMAT = "glibc_localedef"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--with-glibc=${S}"
-CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
-
-do_configure () {
- ${S}/localedef/configure ${EXTRA_OECONF}
-}
-
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
-}
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.24.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.24.bb
new file mode 100644
index 000000000..d4cccedb4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/cross-localedef-native_2.24.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Cross locale generation tool for glibc"
+HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+
+LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+# Tell autotools that we're working in the localedef directory
+#
+AUTOTOOLS_SCRIPT_PATH = "${S}/localedef"
+
+inherit native
+inherit autotools
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/glibc:"
+
+SRCBRANCH ?= "release/${PV}/master"
+GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
+
+SRCREV_glibc ?= "ea23815a795f72035262953dad5beb03e09c17dd"
+SRCREV_localedef ?= "29869b6dc11427c5bab839bdb155c85a7c644c71"
+
+SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
+ git://github.com/kraj/localedef;branch=master;name=localedef;destsuffix=git/localedef \
+ file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
+ file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
+ file://0018-eglibc-Cross-building-and-testing-instructions.patch \
+ file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
+ file://0020-eglibc-cherry-picked-from.patch \
+ file://0021-eglibc-Clear-cache-lines-on-ppc8xx.patch \
+ file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
+ file://0023-eglibc-Install-PIC-archives.patch \
+ file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \
+ file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \
+"
+# Makes for a rather long rev (22 characters), but...
+#
+SRCREV_FORMAT = "glibc_localedef"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--with-glibc=${S}"
+CFLAGS += "-fgnu89-inline -std=gnu99 -DIS_IN\(x\)='0'"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial.inc b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial.inc
index 5975fd26c..2e3bc8104 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial.inc
@@ -5,13 +5,13 @@ PACKAGES = ""
PACKAGES_DYNAMIC = ""
STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
do_configure () {
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
find ${S} -name "configure" | xargs touch
- cfgscript=`python -c "import os; print os.path.relpath('${S}', '.')"`/configure
+ cfgscript=`python3 -c "import os; print(os.path.relpath('${S}', '.'))"`/configure
$cfgscript --host=${TARGET_SYS} --build=${BUILD_SYS} \
--prefix=/usr \
--without-cvs --disable-sanity-checks \
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.24.bb
index e86770e12..e86770e12 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.23.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-initial_2.24.bb
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-ld.inc b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-ld.inc
index c5f4db229..b982368d8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-ld.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-ld.inc
@@ -14,10 +14,14 @@ def glibc_dl_info(d):
"mips64el-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
"mips64el": ["ld.so.1", "FLAG_ELF_LIBC6"],
"mips-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+ "mipsisa32r6": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
+ "mipsisa32r6el": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
"mips64-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
"mips64-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
"mips64el-nf-n32": ["ld.so.1", "FLAG_ELF_LIBC6"],
"mips64el-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
+ "mipsisa64r6": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
+ "mipsisa64r6el": ["ld-linux-mipsn8.so.1", "FLAG_ELF_LIBC6"],
"powerpc": ["ld.so.1", "FLAG_ELF_LIBC6"],
"powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
"powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"],
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale.inc b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale.inc
index e868e38a9..0a7adfcc8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale.inc
@@ -19,7 +19,7 @@ do_package[depends] += "${BINUTILSDEP}"
# default to disabled
ENABLE_BINARY_LOCALE_GENERATION ?= "0"
-ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-glibc-locale = "0"
+ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-glibc-locale = "1"
#enable locale generation on these arches
# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.24.bb
index f7702e035..f7702e035 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.23.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-locale_2.24.bb
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.24.bb
index 0b69bad46..0b69bad46 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.23.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-mtrace_2.24.bb
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts.inc b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts.inc
index 3a06773d6..bce0a4210 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts.inc
@@ -14,3 +14,7 @@ do_install() {
install -m 0755 ${SRC}/$i ${D}${bindir}/
done
}
+
+# sotruss script requires sotruss-lib.so (given by libsotruss package),
+# to produce trace of the library calls.
+RDEPENDS_${PN} += "libsotruss"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.24.bb
index 5a89bd802..5a89bd802 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.23.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc-scripts_2.24.bb
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc.inc b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc.inc
index bf1dccdeb..e85c7044a 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc.inc
@@ -3,7 +3,7 @@ require glibc-ld.inc
require glibc-testing.inc
STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch
new file mode 100644
index 000000000..d5fce7371
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-locale-fix-hard-coded-reference-to-gcc-E.patch
@@ -0,0 +1,39 @@
+From 2c0ab83eb54c0e0fccbf261726dc03803b236079 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Rosen?= <jeremy.rosen@smile.fr>
+Date: Mon, 22 Aug 2016 16:09:25 +0200
+Subject: [PATCH] locale: fix hard-coded reference to gcc -E
+
+When new version of compilers are published, they may not be compatible with
+older versions of software. This is particularly common when software is built
+with -Werror.
+
+Autotools provides a way for a user to specify the name of his compiler using a
+set of variables ($CC $CXX $CPP etc.). Those variables are used correctly when
+compiling glibc but the script used to generate transliterations in the locale/
+subdirectory directly calls the gcc binary to get the output of the
+preprocessor instead of using the $CPP variable provided by the build
+environment.
+
+This patch replaces the hard-coded reference to the gcc binary with the proper
+environment variable, thus allowing a user to override it.
+
+Upstream-Status : Submitted [https://sourceware.org/ml/libc-alpha/2016-08/msg00746.html]
+
+---
+ locale/gen-translit.pl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/locale/gen-translit.pl b/locale/gen-translit.pl
+index 30d3f2f..7b287fa 100644
+--- a/locale/gen-translit.pl
++++ b/locale/gen-translit.pl
+@@ -1,5 +1,5 @@
+ #!/usr/bin/perl -w
+-open F, "cat C-translit.h.in | gcc -E - |" || die "Cannot preprocess input file";
++open F, 'cat C-translit.h.in | ${CPP:-gcc -E} - |' || die "Cannot preprocess input file";
+
+
+ sub cstrlen {
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
index 97c280059..ca3375805 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch
@@ -1,7 +1,7 @@
-From 66d04e2cd8badb0984050e4e9f2732f47151fbbf Mon Sep 17 00:00:00 2001
+From 7e11aafc3a7cb873b3f648740c8acd379597e4d1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:48:24 +0000
-Subject: [PATCH 01/24] nativesdk-glibc: Look for host system ld.so.cache as
+Subject: [PATCH 01/25] nativesdk-glibc: Look for host system ld.so.cache as
well
Upstream-Status: Inappropriate [embedded specific]
@@ -31,7 +31,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index 6fb615e..ee3d1e6 100644
+index c0d6249..2c73105 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -2094,6 +2094,14 @@ _dl_map_object (struct link_map *loader, const char *name,
@@ -65,5 +65,5 @@ index 6fb615e..ee3d1e6 100644
if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_LIBS))
_dl_debug_printf ("\n");
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
index 473b89449..5428468c5 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch
@@ -1,7 +1,7 @@
-From 179dc5f1e13c3ff96d5f21a2a78c089cf120ceb8 Mon Sep 17 00:00:00 2001
+From 5fd884dc28d5d84001fae8ffdd8be698bb84143e Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:50:00 +0000
-Subject: [PATCH 02/24] nativesdk-glibc: Fix buffer overrun with a relocated
+Subject: [PATCH 02/25] nativesdk-glibc: Fix buffer overrun with a relocated
SDK
When ld-linux-*.so.2 is relocated to a path that is longer than the
@@ -22,7 +22,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 12 insertions(+)
diff --git a/elf/dl-load.c b/elf/dl-load.c
-index ee3d1e6..c4a42e9 100644
+index 2c73105..c7b8797 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1793,7 +1793,19 @@ open_path (const char *name, size_t namelen, int mode,
@@ -46,5 +46,5 @@ index ee3d1e6..c4a42e9 100644
{
struct r_search_path_elem *this_dir = *dirs;
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
index 60f9f17b8..7cba6cc36 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch
@@ -1,7 +1,7 @@
-From e76048898ae9aa49dc70d6f9b1bbc22082e61fe3 Mon Sep 17 00:00:00 2001
+From c99892f2018cd7fa0f37b53e6cebec99fa036472 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:51:38 +0000
-Subject: [PATCH 03/24] nativesdk-glibc: Raise the size of arrays containing dl
+Subject: [PATCH 03/25] nativesdk-glibc: Raise the size of arrays containing dl
paths
This patch puts the dynamic loader path in the binaries, SYSTEM_DIRS strings
@@ -24,10 +24,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
sysdeps/generic/dl-cache.h | 4 ----
6 files changed, 13 insertions(+), 9 deletions(-)
-diff --git a/elf/dl-cache.c b/elf/dl-cache.c
-index dec49bc..862f1d8 100644
---- a/elf/dl-cache.c
-+++ b/elf/dl-cache.c
+Index: git/elf/dl-cache.c
+===================================================================
+--- git.orig/elf/dl-cache.c
++++ git/elf/dl-cache.c
@@ -132,6 +132,10 @@ do \
while (0)
@@ -39,11 +39,11 @@ index dec49bc..862f1d8 100644
int
internal_function
_dl_cache_libcmp (const char *p1, const char *p2)
-diff --git a/elf/dl-load.c b/elf/dl-load.c
-index c4a42e9..acf6c03 100644
---- a/elf/dl-load.c
-+++ b/elf/dl-load.c
-@@ -106,8 +106,8 @@ static size_t max_capstrlen attribute_relro;
+Index: git/elf/dl-load.c
+===================================================================
+--- git.orig/elf/dl-load.c
++++ git/elf/dl-load.c
+@@ -106,8 +106,8 @@ static size_t max_capstrlen attribute_re
/* Get the generated information about the trusted directories. */
#include "trusted-dirs.h"
@@ -54,10 +54,10 @@ index c4a42e9..acf6c03 100644
{
SYSTEM_DIRS_LEN
};
-diff --git a/elf/interp.c b/elf/interp.c
-index 422ea95e..6d61a36 100644
---- a/elf/interp.c
-+++ b/elf/interp.c
+Index: git/elf/interp.c
+===================================================================
+--- git.orig/elf/interp.c
++++ git/elf/interp.c
@@ -18,5 +18,5 @@
#include <runtime-linker.h>
@@ -65,11 +65,11 @@ index 422ea95e..6d61a36 100644
-const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp")))
+const char __invoke_dynamic_linker__[4096] __attribute__ ((section (".interp")))
= RUNTIME_LINKER;
-diff --git a/elf/ldconfig.c b/elf/ldconfig.c
-index f54ec22..0e78a83 100644
---- a/elf/ldconfig.c
-+++ b/elf/ldconfig.c
-@@ -167,6 +167,9 @@ static struct argp argp =
+Index: git/elf/ldconfig.c
+===================================================================
+--- git.orig/elf/ldconfig.c
++++ git/elf/ldconfig.c
+@@ -168,6 +168,9 @@ static struct argp argp =
options, parse_opt, NULL, doc, NULL, more_help, NULL
};
@@ -79,10 +79,10 @@ index f54ec22..0e78a83 100644
/* Check if string corresponds to an important hardware capability or
a platform. */
static int
-diff --git a/elf/rtld.c b/elf/rtld.c
-index 52160df..80f0582 100644
---- a/elf/rtld.c
-+++ b/elf/rtld.c
+Index: git/elf/rtld.c
+===================================================================
+--- git.orig/elf/rtld.c
++++ git/elf/rtld.c
@@ -99,6 +99,7 @@ uintptr_t __pointer_chk_guard_local
strong_alias (__pointer_chk_guard_local, __pointer_chk_guard)
#endif
@@ -91,7 +91,7 @@ index 52160df..80f0582 100644
/* List of auditing DSOs. */
static struct audit_list
-@@ -873,12 +874,12 @@ of this helper program; chances are you did not intend to run this program.\n\
+@@ -873,12 +874,12 @@ of this helper program; chances are you
--list list all dependencies and how they are resolved\n\
--verify verify that given object really is a dynamically linked\n\
object we can handle\n\
@@ -106,10 +106,10 @@ index 52160df..80f0582 100644
++_dl_skip_args;
--_dl_argc;
-diff --git a/sysdeps/generic/dl-cache.h b/sysdeps/generic/dl-cache.h
-index 70d4aeb..5c726d0 100644
---- a/sysdeps/generic/dl-cache.h
-+++ b/sysdeps/generic/dl-cache.h
+Index: git/sysdeps/generic/dl-cache.h
+===================================================================
+--- git.orig/sysdeps/generic/dl-cache.h
++++ git/sysdeps/generic/dl-cache.h
@@ -27,10 +27,6 @@
((flags) == 1 || (flags) == _DL_CACHE_DEFAULT_ID)
#endif
@@ -134,3 +134,38 @@ Index: git/iconv/gconv_conf.c
/* The path elements, as determined by the __gconv_get_path function.
All path elements end in a slash. */
+Index: git/locale/findlocale.c
+===================================================================
+--- git.orig/locale/findlocale.c
++++ git/locale/findlocale.c
+@@ -56,7 +56,7 @@ struct __locale_data *const _nl_C[] attr
+ which are somehow addressed. */
+ struct loaded_l10nfile *_nl_locale_file_list[__LC_LAST];
+
+-const char _nl_default_locale_path[] attribute_hidden = COMPLOCALEDIR;
++char _nl_default_locale_path[4096] __attribute__ ((section (".gccrelocprefix"))) attribute_hidden = COMPLOCALEDIR;
+
+ /* Checks if the name is actually present, that is, not NULL and not
+ empty. */
+@@ -168,7 +168,7 @@ _nl_find_locale (const char *locale_path
+
+ /* Nothing in the archive. Set the default path to search below. */
+ locale_path = _nl_default_locale_path;
+- locale_path_len = sizeof _nl_default_locale_path;
++ locale_path_len = strlen(_nl_default_locale_path) + 1;
+ }
+ else
+ /* We really have to load some data. First see whether the name is
+Index: git/locale/localeinfo.h
+===================================================================
+--- git.orig/locale/localeinfo.h
++++ git/locale/localeinfo.h
+@@ -322,7 +322,7 @@ _nl_lookup_word (locale_t l, int categor
+ }
+
+ /* Default search path if no LOCPATH environment variable. */
+-extern const char _nl_default_locale_path[] attribute_hidden;
++extern char _nl_default_locale_path[] attribute_hidden;
+
+ /* Load the locale data for CATEGORY from the file specified by *NAME.
+ If *NAME is "", use environment variables as specified by POSIX, and
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
index 21f04a132..3127de68e 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch
@@ -1,7 +1,7 @@
-From 2e1638115f0f924ee8235eee9265047054c15cfd Mon Sep 17 00:00:00 2001
+From a56e7aa2fd10b178b9498f88a7a2ca8aad671a53 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 14:35:35 -0800
-Subject: [PATCH 04/24] nativesdk-glibc: Allow 64 bit atomics for x86
+Subject: [PATCH 04/25] nativesdk-glibc: Allow 64 bit atomics for x86
The fix consist of allowing 64bit atomic ops for x86.
This should be safe for i586 and newer CPUs.
@@ -11,11 +11,13 @@ Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
sysdeps/i386/atomic-machine.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/i386/atomic-machine.h b/sysdeps/i386/atomic-machine.h
-index 59f3d34..6f6b7ff 100644
+index ce62b33..4fe44ea 100644
--- a/sysdeps/i386/atomic-machine.h
+++ b/sysdeps/i386/atomic-machine.h
@@ -54,7 +54,7 @@ typedef uintmax_t uatomic_max_t;
@@ -28,5 +30,5 @@ index 59f3d34..6f6b7ff 100644
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
index ba8c92e11..dc0dfad9a 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch
@@ -1,7 +1,7 @@
-From 7ff57edfe24b4243373fcb896ee0b613938c1ec9 Mon Sep 17 00:00:00 2001
+From 450473ce27b47cebec2c5c5b611a8c8bed41e6e8 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:01:50 +0000
-Subject: [PATCH 05/24] fsl e500/e5500/e6500/603e fsqrt implementation
+Subject: [PATCH 05/25] fsl e500/e5500/e6500/603e fsqrt implementation
Upstream-Status: Pending
Signed-off-by: Edmar Wienskoski <edmar@freescale.com>
@@ -1580,5 +1580,5 @@ index 0000000..04ff8cc
@@ -0,0 +1 @@
+powerpc/powerpc64/e6500/fpu
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
index 086a73dd2..f267f66cd 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch
@@ -1,7 +1,7 @@
-From 61129ef3ee735b300604f75d50e01cb29f4387f4 Mon Sep 17 00:00:00 2001
+From bb065b78e9e0d3301e64a26e37550a657c885ebc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:11:22 +0000
-Subject: [PATCH 06/24] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known
+Subject: [PATCH 06/25] readlib: Add OECORE_KNOWN_INTERPRETER_NAMES to known
names
This bolts in a hook for OE to pass its own version of interpreter
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/elf/readlib.c b/elf/readlib.c
-index 7fd5b8a..2f5da9f 100644
+index 8a66ffe..08d56fc 100644
--- a/elf/readlib.c
+++ b/elf/readlib.c
@@ -51,6 +51,7 @@ static struct known_names interpreters[] =
@@ -29,5 +29,5 @@ index 7fd5b8a..2f5da9f 100644
static struct known_names known_libs[] =
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
index 952784b1c..612e892e8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch
@@ -1,7 +1,7 @@
-From f936548decac99501f9a4c522a3211d16542fa49 Mon Sep 17 00:00:00 2001
+From 4a91bbdb11a15f93094695bba4e0849c421fad48 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:15:07 +0000
-Subject: [PATCH 07/24] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
+Subject: [PATCH 07/25] ppc/sqrt: Fix undefined reference to `__sqrt_finite'
on ppc fixes the errors like below
| ./.libs/libpulsecore-1.1.so: undefined reference to `__sqrt_finite'
@@ -204,5 +204,5 @@ index 26fa067..9d17512 100644
}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
index 8d513ab42..9e222b7b4 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
@@ -1,7 +1,7 @@
-From d02704895fdce917e337619a4414042f63edd88b Mon Sep 17 00:00:00 2001
+From ce2746a1560b4430d89d114e1b65c7be225b4c2a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:16:38 +0000
-Subject: [PATCH 08/24] __ieee754_sqrt{,f} are now inline functions and call
+Subject: [PATCH 08/25] __ieee754_sqrt{,f} are now inline functions and call
out __slow versions
Upstream-Status: Pending
@@ -383,5 +383,5 @@ index 9d17512..10de1f0 100644
+
strong_alias (__ieee754_sqrtf, __sqrtf_finite)
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
index 12f24fb68..7aa74df23 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
@@ -1,7 +1,7 @@
-From 502f061d846e58aac7aca67e4e0d6ba9e0763b17 Mon Sep 17 00:00:00 2001
+From 1b61649e545de76dd79a5e2c39bb16d0c4623160 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:20:09 +0000
-Subject: [PATCH 09/24] Quote from bug 1443 which explains what the patch does
+Subject: [PATCH 09/25] Quote from bug 1443 which explains what the patch does
:
We build some random program and link it with -lust. When we run it,
@@ -45,7 +45,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
-index 6fb20bd..8805537 100644
+index 60eee00..7d54d5e 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -499,7 +499,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
@@ -58,5 +58,5 @@ index 6fb20bd..8805537 100644
case R_ARM_TLS_TPOFF32:
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
index 77bd7d132..14963a357 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch
@@ -1,7 +1,7 @@
-From 69a3e30b49d28a7386d18725528652931510cbfc Mon Sep 17 00:00:00 2001
+From 91af416408b8718b004c83d93a6daa1f34cba48d Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Wed, 19 Dec 2012 04:39:57 -0600
-Subject: [PATCH 10/24] eglibc: run libm-err-tab.pl with specific dirs in ${S}
+Subject: [PATCH 10/25] eglibc: run libm-err-tab.pl with specific dirs in ${S}
libm-err-tab.pl will parse all the files named "libm-test-ulps"
in the given dir recursively. To avoid parsing the one in
@@ -10,7 +10,7 @@ ${S}/.pc/aarch64-0001-glibc-fsf-v1-eaf6f205.patch/ports/sysdeps/
aarch64/libm-test-ulps), run libm-err-tab.pl with specific dirs
in ${S}.
-Upstream-Status: Inappropriate [OE specific]
+Upstream-Status: inappropriate [OE specific]
Signed-off-by: Ting Liu <b28495@freescale.com>
---
@@ -18,7 +18,7 @@ Signed-off-by: Ting Liu <b28495@freescale.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/manual/Makefile b/manual/Makefile
-index cdb6763..0b32a0a 100644
+index f2f694f..e062833 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -105,7 +105,8 @@ $(objpfx)libm-err.texi: $(objpfx)stamp-libm-err
@@ -32,5 +32,5 @@ index cdb6763..0b32a0a 100644
touch $@
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
index 251e5f5af..e92d04c62 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch
@@ -1,7 +1,7 @@
-From 4cf52971a841304aec30b2e975f81d7ad9d42ef0 Mon Sep 17 00:00:00 2001
+From 6a71f688471fe0c85f8ad9afc4ee0723a20aae1d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:24:46 +0000
-Subject: [PATCH 11/24] __ieee754_sqrt{,f} are now inline functions and call
+Subject: [PATCH 11/25] __ieee754_sqrt{,f} are now inline functions and call
out __slow versions
Upstream-Status: Pending
@@ -57,5 +57,5 @@ index 8126535..10de1f0 100644
#endif
{
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0012-Make-ld-version-output-matching-grok-gold-s-output.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0012-Make-ld-version-output-matching-grok-gold-s-output.patch
index 3208a0c89..4cba03f23 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0012-Make-ld-version-output-matching-grok-gold-s-output.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0012-Make-ld-version-output-matching-grok-gold-s-output.patch
@@ -1,7 +1,7 @@
-From b356816d6e005ecda7adbed9627a4315ad39de39 Mon Sep 17 00:00:00 2001
+From f9d024edb158659e403b51cc9d93da9bca6e5d7b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:25:45 +0000
-Subject: [PATCH 12/24] Make ld --version output matching grok gold's output
+Subject: [PATCH 12/25] Make ld --version output matching grok gold's output
adapted from from upstream branch roland/gold-vs-libc
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index aa05d49..6dabd11 100755
+index 8fe5937..7888a3f 100755
--- a/configure
+++ b/configure
-@@ -4486,7 +4486,7 @@ else
+@@ -4482,7 +4482,7 @@ else
# Found it, now check the version.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $LD" >&5
$as_echo_n "checking version of $LD... " >&6; }
@@ -27,10 +27,10 @@ index aa05d49..6dabd11 100755
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
diff --git a/configure.ac b/configure.ac
-index ee7a3f1..b4b95b9 100644
+index 3c766b7..6908a99 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -948,7 +948,7 @@ AC_CHECK_PROG_VER(AS, $AS, --version,
+@@ -944,7 +944,7 @@ AC_CHECK_PROG_VER(AS, $AS, --version,
[2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
AS=: critic_missing="$critic_missing as")
AC_CHECK_PROG_VER(LD, $LD, --version,
@@ -40,5 +40,5 @@ index ee7a3f1..b4b95b9 100644
LD=: critic_missing="$critic_missing ld")
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
index 82fa10044..6a82f8d93 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch
@@ -1,7 +1,7 @@
-From 10003d48f83f7a4f7fa562ed89af904a544b6323 Mon Sep 17 00:00:00 2001
+From 2ece12093c8ba4cf688d235f35d36f1feb02324c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:27:10 +0000
-Subject: [PATCH 13/24] sysdeps/gnu/configure.ac: handle correctly
+Subject: [PATCH 13/25] sysdeps/gnu/configure.ac: handle correctly
$libc_cv_rootsbindir
Upstream-Status:Pending
@@ -38,5 +38,5 @@ index 634fe4d..3db1697 100644
;;
esac
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch
index ea3e1670f..d14a6d4cd 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0014-Add-unused-attribute.patch
@@ -1,7 +1,7 @@
-From cafa8a7ef830e02cdbf928471e06d11054946940 Mon Sep 17 00:00:00 2001
+From 9fec083dc99d2b524090e1d098e03709eed64a72 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:28:41 +0000
-Subject: [PATCH 14/24] Add unused attribute
+Subject: [PATCH 14/25] Add unused attribute
Helps in avoiding gcc warning when header is is included in
a source file which does not use both functions
@@ -17,7 +17,7 @@ Upstream-Status: Pending
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h
-index 80290bc..7890a8e 100644
+index 95cbce7..191a0dd 100644
--- a/iconv/gconv_charset.h
+++ b/iconv/gconv_charset.h
@@ -21,7 +21,7 @@
@@ -30,5 +30,5 @@ index 80290bc..7890a8e 100644
{
int slash_count = 0;
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch
index 90e12b883..8ceccec41 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0015-yes-within-the-path-sets-wrong-config-variables.patch
@@ -1,7 +1,7 @@
-From 4d6bead19874e519752ceeb2a15897ff2ffbe5e8 Mon Sep 17 00:00:00 2001
+From 1794a97cba0b09b726eebc565c783c7b7c22dfba Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:31:06 +0000
-Subject: [PATCH 15/24] 'yes' within the path sets wrong config variables
+Subject: [PATCH 15/25] 'yes' within the path sets wrong config variables
It seems that the 'AC_EGREP_CPP(yes...' example is quite popular
but being such a short word to grep it is likely to produce
@@ -165,7 +165,7 @@ index f05f438..dc86399 100644
], libc_cv_nios2_be=yes, libc_cv_nios2_be=no)])
if test $libc_cv_nios2_be = yes; then
diff --git a/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure
-index dee56aa..f2049ed 100644
+index a5513fa..283b293 100644
--- a/sysdeps/unix/sysv/linux/mips/configure
+++ b/sysdeps/unix/sysv/linux/mips/configure
@@ -414,11 +414,11 @@ else
@@ -183,7 +183,7 @@ index dee56aa..f2049ed 100644
else
libc_cv_mips_nan2008=no
diff --git a/sysdeps/unix/sysv/linux/mips/configure.ac b/sysdeps/unix/sysv/linux/mips/configure.ac
-index 45147c5..4224af1 100644
+index 9147aa4..7898e24 100644
--- a/sysdeps/unix/sysv/linux/mips/configure.ac
+++ b/sysdeps/unix/sysv/linux/mips/configure.ac
@@ -105,9 +105,9 @@ AC_COMPILE_IFELSE(
@@ -259,5 +259,5 @@ index 0822915..9a32fdd 100644
], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)])
if test $libc_cv_ppc64_def_call_elf = no; then
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
index e51b611f3..e5b508330 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0016-timezone-re-written-tzselect-as-posix-sh.patch
@@ -1,7 +1,7 @@
-From 3e8586eb3509e2f0d6dfb74be8f89a30b06b56e9 Mon Sep 17 00:00:00 2001
+From fdb5c9c88e3d1bc5ae6ef9ebcfcf560d3c42f0a6 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:33:03 +0000
-Subject: [PATCH 16/24] timezone: re-written tzselect as posix sh
+Subject: [PATCH 16/25] timezone: re-written tzselect as posix sh
To avoid the bash dependency.
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/timezone/Makefile b/timezone/Makefile
-index 99566cb..b6e757e 100644
+index dee7568..66a50be 100644
--- a/timezone/Makefile
+++ b/timezone/Makefile
-@@ -122,7 +122,7 @@ $(testdata)/XT%: testdata/XT%
+@@ -120,7 +120,7 @@ $(testdata)/XT%: testdata/XT%
cp $< $@
$(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
@@ -28,7 +28,7 @@ index 99566cb..b6e757e 100644
-e '/TZVERSION=/s|see_Makefile|"$(version)"|' \
-e '/PKGVERSION=/s|=.*|="$(PKGVERSION)"|' \
diff --git a/timezone/tzselect.ksh b/timezone/tzselect.ksh
-index 9d70691..25f45a8 100755
+index 2c3b2f4..0c04a61 100755
--- a/timezone/tzselect.ksh
+++ b/timezone/tzselect.ksh
@@ -35,7 +35,7 @@ REPORT_BUGS_TO=tz@iana.org
@@ -38,8 +38,8 @@ index 9d70691..25f45a8 100755
-: ${TZDIR=`pwd`}
+: ${TZDIR=$(pwd)}
- # Check for awk Posix compliance.
- ($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1
+ # Output one argument as-is to standard output.
+ # Safer than 'echo', which can mishandle '\' or leading '-'.
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
index 0c9ae6c13..c8da05dc6 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0017-Remove-bash-dependency-for-nscd-init-script.patch
@@ -1,7 +1,7 @@
-From cd9d9fe7316f4ce4ca9d8e67e22f5718879535e4 Mon Sep 17 00:00:00 2001
+From 88ad88d014a5ee68b0e044d2def5ab13743c8ae0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 14:33:02 -0800
-Subject: [PATCH 17/24] Remove bash dependency for nscd init script
+Subject: [PATCH 17/25] Remove bash dependency for nscd init script
The nscd init script uses #! /bin/bash but only really uses one bashism
(translated strings), so remove them and switch the shell to #!/bin/sh.
@@ -9,6 +9,8 @@ The nscd init script uses #! /bin/bash but only really uses one bashism
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
nscd/nscd.init | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
@@ -69,5 +71,5 @@ index a882da7..b02986e 100644
;;
esac
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
index e282e60eb..175076524 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0018-eglibc-Cross-building-and-testing-instructions.patch
@@ -1,7 +1,7 @@
-From 8f554f4a1beb39182aad9cd9b5e1da69464dff7e Mon Sep 17 00:00:00 2001
+From 49c0ad7dc2e02e808ed150296a109b586c34115a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:42:58 +0000
-Subject: [PATCH 18/24] eglibc: Cross building and testing instructions
+Subject: [PATCH 18/25] eglibc: Cross building and testing instructions
Ported from eglibc
Upstream-Status: Pending
@@ -615,5 +615,5 @@ index 0000000..b67b468
+ simply place copies of these libraries in the top GLIBC build
+ directory.
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
index c04e0a11d..f983d86a9 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0019-eglibc-Help-bootstrap-cross-toolchain.patch
@@ -1,7 +1,7 @@
-From c2d49eab20db4ab02b6de62092fedc623d757146 Mon Sep 17 00:00:00 2001
+From e881face7a10354612bf634b44e09e3bc6462c67 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:49:28 +0000
-Subject: [PATCH 19/24] eglibc: Help bootstrap cross toolchain
+Subject: [PATCH 19/25] eglibc: Help bootstrap cross toolchain
Taken from EGLIBC, r1484 + r1525
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
create mode 100644 include/stubs-bootstrap.h
diff --git a/Makefile b/Makefile
-index 9a01c93..a6ae003 100644
+index 32748b3..6d055ba 100644
--- a/Makefile
+++ b/Makefile
@@ -69,9 +69,18 @@ subdir-dirs = include
@@ -96,5 +96,5 @@ index 0000000..1d2b669
+ EGLIBC subdir 'stubs' make targets, on every .o file in EGLIBC, but
+ an empty stubs.h like this will do fine for GCC. */
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0020-eglibc-cherry-picked-from.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0020-eglibc-cherry-picked-from.patch
index 4362efae7..30c4c6987 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0020-eglibc-cherry-picked-from.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0020-eglibc-cherry-picked-from.patch
@@ -1,7 +1,7 @@
-From 588d936b9aa65e7cc8b1eb2cad1d209087db43a9 Mon Sep 17 00:00:00 2001
+From 723a31d3e2627211b39fbcc08f75b3c23c4096c5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 15:10:33 -0800
-Subject: [PATCH 20/24] eglibc: cherry-picked from
+Subject: [PATCH 20/25] eglibc: cherry-picked from
http://www.eglibc.org/archives/patches/msg00772.html
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
-index a8394e0..981ac7c 100644
+index a4b376f..3256e12 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
-@@ -18,6 +18,7 @@
+@@ -21,11 +21,13 @@
#include <atomic.h>
#include <limits.h>
#include <sys/types.h>
@@ -26,15 +26,13 @@ index a8394e0..981ac7c 100644
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
-@@ -28,6 +29,7 @@
- out) since res_init() should go into libc.so but the rest of that
- file should not. */
+ #include <libc-lock.h>
+__libc_lock_define_initialized (static, lock);
extern unsigned long long int __res_initstamp attribute_hidden;
/* We have atomic increment operations on 64-bit platforms. */
#if __WORDSIZE == 64
-@@ -35,7 +37,6 @@ extern unsigned long long int __res_initstamp attribute_hidden;
+@@ -33,7 +35,6 @@ extern unsigned long long int __res_initstamp attribute_hidden;
# define atomicincunlock(lock) (void) 0
# define atomicinc(var) catomic_increment (&(var))
#else
@@ -42,7 +40,7 @@ index a8394e0..981ac7c 100644
# define atomicinclock(lock) __libc_lock_lock (lock)
# define atomicincunlock(lock) __libc_lock_unlock (lock)
# define atomicinc(var) ++var
-@@ -94,7 +95,18 @@ res_init(void) {
+@@ -92,7 +93,18 @@ res_init(void) {
int
__res_maybe_init (res_state resp, int preinit)
{
@@ -62,5 +60,5 @@ index a8394e0..981ac7c 100644
if (resp->nscount > 0)
__res_iclose (resp, true);
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0021-eglibc-Clear-cache-lines-on-ppc8xx.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0021-eglibc-Clear-cache-lines-on-ppc8xx.patch
index 225f22f01..8931c9e25 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0021-eglibc-Clear-cache-lines-on-ppc8xx.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0021-eglibc-Clear-cache-lines-on-ppc8xx.patch
@@ -1,7 +1,7 @@
-From b74e34e6f53816ad57b13ba6fd70a97db1bc1eae Mon Sep 17 00:00:00 2001
+From 9699873820d0347c2f377f0d86bce615d87a5e47 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 31 Dec 2015 15:15:09 -0800
-Subject: [PATCH 21/24] eglibc: Clear cache lines on ppc8xx
+Subject: [PATCH 21/25] eglibc: Clear cache lines on ppc8xx
2007-06-13 Nathan Sidwell <nathan@codesourcery.com>
Mark Shinwell <shinwell@codesourcery.com>
@@ -21,7 +21,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
-index c2504ff..d50f1cb 100644
+index 98ec2b3..b384ae0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
+++ b/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
@@ -24,9 +24,21 @@ int __cache_line_size attribute_hidden;
@@ -48,7 +48,7 @@ index c2504ff..d50f1cb 100644
break;
diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
-index 209a16d..5d8572d 100644
+index 0efd297..8cc0ef8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -73,11 +73,25 @@ __libc_start_main (int argc, char **argv,
@@ -79,5 +79,5 @@ index 209a16d..5d8572d 100644
break;
#ifndef SHARED
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch
index 88b20f67a..f53f5ff87 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0022-eglibc-Resolve-__fpscr_values-on-SH4.patch
@@ -1,7 +1,7 @@
-From 8f483cb1f21ab6431ff99e8d30d56b91607ae918 Mon Sep 17 00:00:00 2001
+From 8904f4249c930d187e19c7e9d3e73c835d11e18f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 00:55:53 +0000
-Subject: [PATCH 22/24] eglibc: Resolve __fpscr_values on SH4
+Subject: [PATCH 22/25] eglibc: Resolve __fpscr_values on SH4
2010-09-29 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Andrew Stubbs <ams@codesourcery.com>
@@ -33,7 +33,7 @@ index e0938c4..ca1d7da 100644
# a*
alphasort64;
diff --git a/sysdeps/unix/sysv/linux/sh/sysdep.S b/sysdeps/unix/sysv/linux/sh/sysdep.S
-index a02b7e2..b9be326 100644
+index 0024d79..d1db7e4 100644
--- a/sysdeps/unix/sysv/linux/sh/sysdep.S
+++ b/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -30,3 +30,14 @@ ENTRY (__syscall_error)
@@ -52,5 +52,5 @@ index a02b7e2..b9be326 100644
+weak_alias (___fpscr_values, __fpscr_values)
+
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0023-eglibc-Install-PIC-archives.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0023-eglibc-Install-PIC-archives.patch
index d95ea3ba3..f985f3ca1 100644
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0023-eglibc-Install-PIC-archives.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0023-eglibc-Install-PIC-archives.patch
@@ -1,7 +1,7 @@
-From 58d424884eed7efde6c90af0cd7c6c37cf9b444a Mon Sep 17 00:00:00 2001
+From 1947f211fab4001e84bb52868cddbd401e597889 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Mar 2015 01:57:01 +0000
-Subject: [PATCH 23/24] eglibc: Install PIC archives
+Subject: [PATCH 23/25] eglibc: Install PIC archives
Forward port from eglibc
@@ -29,7 +29,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 40 insertions(+), 2 deletions(-)
diff --git a/Makerules b/Makerules
-index fa24030..1ff4634 100644
+index 53eabfa..1cd2a53 100644
--- a/Makerules
+++ b/Makerules
@@ -694,6 +694,9 @@ ifeq ($(build-shared),yes)
@@ -119,5 +119,5 @@ index fa24030..1ff4634 100644
install-no-libc.a-nosubdir: install-bin-nosubdir install-bin-script-nosubdir \
install-rootsbin-nosubdir install-sbin-nosubdir \
--
-2.6.4
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0024-eglibc-Forward-port-cross-locale-generation-support.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0024-eglibc-Forward-port-cross-locale-generation-support.patch
new file mode 100644
index 000000000..c45b557ab
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0024-eglibc-Forward-port-cross-locale-generation-support.patch
@@ -0,0 +1,566 @@
+From 11d7633178301add26a24657e2f1596a2f7dddce Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Mar 2015 01:33:49 +0000
+Subject: [PATCH 24/25] eglibc: Forward port cross locale generation support
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ locale/Makefile | 3 ++-
+ locale/catnames.c | 48 +++++++++++++++++++++++++++++++++++
+ locale/localeinfo.h | 2 +-
+ locale/programs/charmap-dir.c | 6 +++++
+ locale/programs/ld-collate.c | 17 ++++++-------
+ locale/programs/ld-ctype.c | 27 ++++++++++----------
+ locale/programs/ld-time.c | 31 +++++++++++++++--------
+ locale/programs/linereader.c | 2 +-
+ locale/programs/localedef.c | 8 ++++++
+ locale/programs/locfile.c | 5 +++-
+ locale/programs/locfile.h | 59 +++++++++++++++++++++++++++++++++++++++++--
+ locale/setlocale.c | 30 ----------------------
+ 12 files changed, 169 insertions(+), 69 deletions(-)
+ create mode 100644 locale/catnames.c
+
+diff --git a/locale/Makefile b/locale/Makefile
+index c5379e6..c98c675 100644
+--- a/locale/Makefile
++++ b/locale/Makefile
+@@ -25,7 +25,8 @@ include ../Makeconfig
+ headers = locale.h bits/locale.h langinfo.h xlocale.h
+ routines = setlocale findlocale loadlocale loadarchive \
+ localeconv nl_langinfo nl_langinfo_l mb_cur_max \
+- newlocale duplocale freelocale uselocale
++ newlocale duplocale freelocale uselocale \
++ catnames
+ tests = tst-C-locale tst-locname tst-duplocale
+ categories = ctype messages monetary numeric time paper name \
+ address telephone measurement identification collate
+diff --git a/locale/catnames.c b/locale/catnames.c
+new file mode 100644
+index 0000000..9fad357
+--- /dev/null
++++ b/locale/catnames.c
+@@ -0,0 +1,48 @@
++/* Copyright (C) 2006 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ 02111-1307 USA. */
++
++#include "localeinfo.h"
++
++/* Define an array of category names (also the environment variable names). */
++const union catnamestr_t _nl_category_names attribute_hidden =
++ {
++ {
++#define DEFINE_CATEGORY(category, category_name, items, a) \
++ category_name,
++#include "categories.def"
++#undef DEFINE_CATEGORY
++ }
++ };
++
++const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
++ {
++#define DEFINE_CATEGORY(category, category_name, items, a) \
++ [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
++#include "categories.def"
++#undef DEFINE_CATEGORY
++ };
++
++/* An array of their lengths, for convenience. */
++const uint8_t _nl_category_name_sizes[] attribute_hidden =
++ {
++#define DEFINE_CATEGORY(category, category_name, items, a) \
++ [category] = sizeof (category_name) - 1,
++#include "categories.def"
++#undef DEFINE_CATEGORY
++ [LC_ALL] = sizeof ("LC_ALL") - 1
++ };
+diff --git a/locale/localeinfo.h b/locale/localeinfo.h
+index 94627f3..d0db77b 100644
+--- a/locale/localeinfo.h
++++ b/locale/localeinfo.h
+@@ -224,7 +224,7 @@ __libc_tsd_define (extern, __locale_t, LOCALE)
+ unused. We can manage this playing some tricks with weak references.
+ But with thread-local locale settings, it becomes quite ungainly unless
+ we can use __thread variables. So only in that case do we attempt this. */
+-#ifndef SHARED
++#if !defined SHARED && !defined IN_GLIBC_LOCALEDEF
+ # include <tls.h>
+ # define NL_CURRENT_INDIRECT 1
+ #endif
+diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
+index 99fcd35..5e528dc 100644
+--- a/locale/programs/charmap-dir.c
++++ b/locale/programs/charmap-dir.c
+@@ -19,7 +19,9 @@
+ #include <error.h>
+ #include <fcntl.h>
+ #include <libintl.h>
++#ifndef NO_UNCOMPRESS
+ #include <spawn.h>
++#endif
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -156,6 +158,7 @@ charmap_closedir (CHARMAP_DIR *cdir)
+ return closedir (dir);
+ }
+
++#ifndef NO_UNCOMPRESS
+ /* Creates a subprocess decompressing the given pathname, and returns
+ a stream reading its output (the decompressed data). */
+ static
+@@ -204,6 +207,7 @@ fopen_uncompressed (const char *pathname, const char *compressor)
+ }
+ return NULL;
+ }
++#endif
+
+ /* Opens a charmap for reading, given its name (not an alias name). */
+ FILE *
+@@ -226,6 +230,7 @@ charmap_open (const char *directory, const char *name)
+ if (stream != NULL)
+ return stream;
+
++#ifndef NO_UNCOMPRESS
+ memcpy (p, ".gz", 4);
+ stream = fopen_uncompressed (pathname, "gzip");
+ if (stream != NULL)
+@@ -235,6 +240,7 @@ charmap_open (const char *directory, const char *name)
+ stream = fopen_uncompressed (pathname, "bzip2");
+ if (stream != NULL)
+ return stream;
++#endif
+
+ return NULL;
+ }
+diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
+index 1e125f6..3b2867f 100644
+--- a/locale/programs/ld-collate.c
++++ b/locale/programs/ld-collate.c
+@@ -350,7 +350,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen,
+ }
+ if (wcs != NULL)
+ {
+- size_t nwcs = wcslen ((wchar_t *) wcs);
++ size_t nwcs = wcslen_uint32 (wcs);
+ uint32_t zero = 0;
+ /* Handle <U0000> as a single character. */
+ if (nwcs == 0)
+@@ -1776,8 +1776,7 @@ symbol `%s' has the same encoding as"), (*eptr)->name);
+
+ if ((*eptr)->nwcs == runp->nwcs)
+ {
+- int c = wmemcmp ((wchar_t *) (*eptr)->wcs,
+- (wchar_t *) runp->wcs, runp->nwcs);
++ int c = wmemcmp_uint32 ((*eptr)->wcs, runp->wcs, runp->nwcs);
+
+ if (c == 0)
+ {
+@@ -2010,9 +2009,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp)
+ one consecutive entry. */
+ if (runp->wcnext != NULL
+ && runp->nwcs == runp->wcnext->nwcs
+- && wmemcmp ((wchar_t *) runp->wcs,
+- (wchar_t *)runp->wcnext->wcs,
+- runp->nwcs - 1) == 0
++ && wmemcmp_uint32 (runp->wcs,
++ runp->wcnext->wcs,
++ runp->nwcs - 1) == 0
+ && (runp->wcs[runp->nwcs - 1]
+ == runp->wcnext->wcs[runp->nwcs - 1] + 1))
+ {
+@@ -2036,9 +2035,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp)
+ runp = runp->wcnext;
+ while (runp->wcnext != NULL
+ && runp->nwcs == runp->wcnext->nwcs
+- && wmemcmp ((wchar_t *) runp->wcs,
+- (wchar_t *)runp->wcnext->wcs,
+- runp->nwcs - 1) == 0
++ && wmemcmp_uint32 (runp->wcs,
++ runp->wcnext->wcs,
++ runp->nwcs - 1) == 0
+ && (runp->wcs[runp->nwcs - 1]
+ == runp->wcnext->wcs[runp->nwcs - 1] + 1));
+
+diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
+index 0fd141c..68136e6 100644
+--- a/locale/programs/ld-ctype.c
++++ b/locale/programs/ld-ctype.c
+@@ -926,7 +926,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
+ allocate_arrays (ctype, charmap, ctype->repertoire);
+
+ default_missing_len = (ctype->default_missing
+- ? wcslen ((wchar_t *) ctype->default_missing)
++ ? wcslen_uint32 (ctype->default_missing)
+ : 0);
+
+ init_locale_data (&file, nelems);
+@@ -1937,7 +1937,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype,
+ ignore = 1;
+ else
+ /* This value is usable. */
+- obstack_grow (ob, to_wstr, wcslen ((wchar_t *) to_wstr) * 4);
++ obstack_grow (ob, to_wstr, wcslen_uint32 (to_wstr) * 4);
+
+ first = 0;
+ }
+@@ -2471,8 +2471,8 @@ with character code range values one must use the absolute ellipsis `...'"));
+ }
+
+ handle_tok_digit:
+- class_bit = _ISwdigit;
+- class256_bit = _ISdigit;
++ class_bit = BITw (tok_digit);
++ class256_bit = BIT (tok_digit);
+ handle_digits = 1;
+ goto read_charclass;
+
+@@ -3929,8 +3929,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
+
+ while (idx < number)
+ {
+- int res = wcscmp ((const wchar_t *) sorted[idx]->from,
+- (const wchar_t *) runp->from);
++ int res = wcscmp_uint32 (sorted[idx]->from, runp->from);
+ if (res == 0)
+ {
+ replace = 1;
+@@ -3967,11 +3966,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
+ for (size_t cnt = 0; cnt < number; ++cnt)
+ {
+ struct translit_to_t *srunp;
+- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
++ from_len += wcslen_uint32 (sorted[cnt]->from) + 1;
+ srunp = sorted[cnt]->to;
+ while (srunp != NULL)
+ {
+- to_len += wcslen ((const wchar_t *) srunp->str) + 1;
++ to_len += wcslen_uint32 (srunp->str) + 1;
+ srunp = srunp->next;
+ }
+ /* Plus one for the extra NUL character marking the end of
+@@ -3995,18 +3994,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
+ ctype->translit_from_idx[cnt] = from_len;
+ ctype->translit_to_idx[cnt] = to_len;
+
+- len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
+- wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len],
+- (const wchar_t *) sorted[cnt]->from, len);
++ len = wcslen_uint32 (sorted[cnt]->from) + 1;
++ wmemcpy_uint32 (&ctype->translit_from_tbl[from_len],
++ sorted[cnt]->from, len);
+ from_len += len;
+
+ ctype->translit_to_idx[cnt] = to_len;
+ srunp = sorted[cnt]->to;
+ while (srunp != NULL)
+ {
+- len = wcslen ((const wchar_t *) srunp->str) + 1;
+- wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len],
+- (const wchar_t *) srunp->str, len);
++ len = wcslen_uint32 (srunp->str) + 1;
++ wmemcpy_uint32 (&ctype->translit_to_tbl[to_len],
++ srunp->str, len);
+ to_len += len;
+ srunp = srunp->next;
+ }
+diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
+index 87531bc..5f2c266 100644
+--- a/locale/programs/ld-time.c
++++ b/locale/programs/ld-time.c
+@@ -215,8 +215,10 @@ No definition for %s category found"), "LC_TIME"));
+ }
+ else
+ {
++ static const uint32_t wt_fmt_ampm[]
++ = { '%','I',':','%','M',':','%','S',' ','%','p',0 };
+ time->t_fmt_ampm = "%I:%M:%S %p";
+- time->wt_fmt_ampm = (const uint32_t *) L"%I:%M:%S %p";
++ time->wt_fmt_ampm = wt_fmt_ampm;
+ }
+ }
+
+@@ -226,7 +228,7 @@ No definition for %s category found"), "LC_TIME"));
+ const int days_per_month[12] = { 31, 29, 31, 30, 31, 30,
+ 31, 31, 30, 31 ,30, 31 };
+ size_t idx;
+- wchar_t *wstr;
++ uint32_t *wstr;
+
+ time->era_entries =
+ (struct era_data *) xmalloc (time->num_era
+@@ -464,18 +466,18 @@ No definition for %s category found"), "LC_TIME"));
+ }
+
+ /* Now generate the wide character name and format. */
+- wstr = wcschr ((wchar_t *) time->wera[idx], L':');/* end direction */
+- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end offset */
+- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end start */
+- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end end */
++ wstr = wcschr_uint32 (time->wera[idx], L':'); /* end direction */
++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end offset */
++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end start */
++ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end end */
+ if (wstr != NULL)
+ {
+- time->era_entries[idx].wname = (uint32_t *) wstr + 1;
+- wstr = wcschr (wstr + 1, L':'); /* end name */
++ time->era_entries[idx].wname = wstr + 1;
++ wstr = wcschr_uint32 (wstr + 1, L':'); /* end name */
+ if (wstr != NULL)
+ {
+ *wstr = L'\0';
+- time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
++ time->era_entries[idx].wformat = wstr + 1;
+ }
+ else
+ time->era_entries[idx].wname =
+@@ -534,7 +536,16 @@ No definition for %s category found"), "LC_TIME"));
+ if (time->date_fmt == NULL)
+ time->date_fmt = "%a %b %e %H:%M:%S %Z %Y";
+ if (time->wdate_fmt == NULL)
+- time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y";
++ {
++ static const uint32_t wdate_fmt[] =
++ { '%','a',' ',
++ '%','b',' ',
++ '%','e',' ',
++ '%','H',':','%','M',':','%','S',' ',
++ '%','Z',' ',
++ '%','Y',0 };
++ time->wdate_fmt = wdate_fmt;
++ }
+ }
+
+
+diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
+index b885f65..0afb631 100644
+--- a/locale/programs/linereader.c
++++ b/locale/programs/linereader.c
+@@ -595,7 +595,7 @@ get_string (struct linereader *lr, const struct charmap_t *charmap,
+ {
+ int return_widestr = lr->return_widestr;
+ char *buf;
+- wchar_t *buf2 = NULL;
++ uint32_t *buf2 = NULL;
+ size_t bufact;
+ size_t bufmax = 56;
+
+diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
+index 6becd9a..8ddd080 100644
+--- a/locale/programs/localedef.c
++++ b/locale/programs/localedef.c
+@@ -114,6 +114,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
+ #define OPT_LIST_ARCHIVE 309
+ #define OPT_LITTLE_ENDIAN 400
+ #define OPT_BIG_ENDIAN 401
++#define OPT_UINT32_ALIGN 402
+
+ /* Definitions of arguments for argp functions. */
+ static const struct argp_option options[] =
+@@ -150,6 +151,8 @@ static const struct argp_option options[] =
+ N_("Generate little-endian output") },
+ { "big-endian", OPT_BIG_ENDIAN, NULL, 0,
+ N_("Generate big-endian output") },
++ { "uint32-align", OPT_UINT32_ALIGN, "ALIGNMENT", 0,
++ N_("Set the target's uint32_t alignment in bytes (default 4)") },
+ { NULL, 0, NULL, 0, NULL }
+ };
+
+@@ -239,12 +242,14 @@ main (int argc, char *argv[])
+ ctype locale. (P1003.2 4.35.5.2) */
+ setlocale (LC_CTYPE, "POSIX");
+
++#ifndef NO_SYSCONF
+ /* Look whether the system really allows locale definitions. POSIX
+ defines error code 3 for this situation so I think it must be
+ a fatal error (see P1003.2 4.35.8). */
+ if (sysconf (_SC_2_LOCALEDEF) < 0)
+ WITH_CUR_LOCALE (error (3, 0, _("\
+ FATAL: system does not define `_POSIX2_LOCALEDEF'")));
++#endif
+
+ /* Process charmap file. */
+ charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
+@@ -338,6 +343,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
+ case OPT_BIG_ENDIAN:
+ set_big_endian (true);
+ break;
++ case OPT_UINT32_ALIGN:
++ uint32_align_mask = strtol (arg, NULL, 0) - 1;
++ break;
+ case 'c':
+ force_output = 1;
+ break;
+diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
+index 32f5cd2..02967b0 100644
+--- a/locale/programs/locfile.c
++++ b/locale/programs/locfile.c
+@@ -544,6 +544,9 @@ compare_files (const char *filename1, const char *filename2, size_t size,
+ machine running localedef. */
+ bool swap_endianness_p;
+
++/* The target's value of __align__(uint32_t) - 1. */
++unsigned int uint32_align_mask = 3;
++
+ /* When called outside a start_locale_structure/end_locale_structure
+ or start_locale_prelude/end_locale_prelude block, record that the
+ next byte in FILE's obstack will be the first byte of a new element.
+@@ -621,7 +624,7 @@ add_locale_string (struct locale_file *file, const char *string)
+ void
+ add_locale_wstring (struct locale_file *file, const uint32_t *string)
+ {
+- add_locale_uint32_array (file, string, wcslen ((const wchar_t *) string) + 1);
++ add_locale_uint32_array (file, string, wcslen_uint32 (string) + 1);
+ }
+
+ /* Record that FILE's next element is the 32-bit integer VALUE. */
+diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
+index a3dd904..2c7763a 100644
+--- a/locale/programs/locfile.h
++++ b/locale/programs/locfile.h
+@@ -71,6 +71,8 @@ extern void write_all_categories (struct localedef_t *definitions,
+
+ extern bool swap_endianness_p;
+
++extern unsigned int uint32_align_mask;
++
+ /* Change the output to be big-endian if BIG_ENDIAN is true and
+ little-endian otherwise. */
+ static inline void
+@@ -89,7 +91,8 @@ maybe_swap_uint32 (uint32_t value)
+ }
+
+ /* Likewise, but munge an array of N uint32_ts starting at ARRAY. */
+-static inline void
++static void
++__attribute__ ((unused))
+ maybe_swap_uint32_array (uint32_t *array, size_t n)
+ {
+ if (swap_endianness_p)
+@@ -99,7 +102,8 @@ maybe_swap_uint32_array (uint32_t *array, size_t n)
+
+ /* Like maybe_swap_uint32_array, but the array of N elements is at
+ the end of OBSTACK's current object. */
+-static inline void
++static void
++__attribute__ ((unused))
+ maybe_swap_uint32_obstack (struct obstack *obstack, size_t n)
+ {
+ maybe_swap_uint32_array ((uint32_t *) obstack_next_free (obstack) - n, n);
+@@ -276,4 +280,55 @@ extern void identification_output (struct localedef_t *locale,
+ const struct charmap_t *charmap,
+ const char *output_path);
+
++static size_t wcslen_uint32 (const uint32_t *str) __attribute__ ((unused));
++static uint32_t * wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused));
++static uint32_t * wcschr_uint32 (const uint32_t *s, uint32_t ch) __attribute__ ((unused));
++static int wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) __attribute__ ((unused));
++static int wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused));
++
++static size_t
++wcslen_uint32 (const uint32_t *str)
++{
++ size_t len = 0;
++ while (str[len] != 0)
++ len++;
++ return len;
++}
++
++static int
++wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n)
++{
++ while (n-- != 0)
++ {
++ int diff = *s1++ - *s2++;
++ if (diff != 0)
++ return diff;
++ }
++ return 0;
++}
++
++static int
++wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2)
++{
++ while (*s1 != 0 && *s1 == *s2)
++ s1++, s2++;
++ return *s1 - *s2;
++}
++
++static uint32_t *
++wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n)
++{
++ return memcpy (s1, s2, n * sizeof (uint32_t));
++}
++
++static uint32_t *
++wcschr_uint32 (const uint32_t *s, uint32_t ch)
++{
++ do
++ if (*s == ch)
++ return (uint32_t *) s;
++ while (*s++ != 0);
++ return 0;
++}
++
+ #endif /* locfile.h */
+diff --git a/locale/setlocale.c b/locale/setlocale.c
+index 69b3141..1cef0be 100644
+--- a/locale/setlocale.c
++++ b/locale/setlocale.c
+@@ -64,36 +64,6 @@ static char *const _nl_current_used[] =
+ #endif
+
+
+-/* Define an array of category names (also the environment variable names). */
+-const union catnamestr_t _nl_category_names attribute_hidden =
+- {
+- {
+-#define DEFINE_CATEGORY(category, category_name, items, a) \
+- category_name,
+-#include "categories.def"
+-#undef DEFINE_CATEGORY
+- }
+- };
+-
+-const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
+- {
+-#define DEFINE_CATEGORY(category, category_name, items, a) \
+- [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
+-#include "categories.def"
+-#undef DEFINE_CATEGORY
+- };
+-
+-/* An array of their lengths, for convenience. */
+-const uint8_t _nl_category_name_sizes[] attribute_hidden =
+- {
+-#define DEFINE_CATEGORY(category, category_name, items, a) \
+- [category] = sizeof (category_name) - 1,
+-#include "categories.def"
+-#undef DEFINE_CATEGORY
+- [LC_ALL] = sizeof ("LC_ALL") - 1
+- };
+-
+-
+ #ifdef NL_CURRENT_INDIRECT
+ # define WEAK_POSTLOAD(postload) weak_extern (postload)
+ #else
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-Define-DUMMY_LOCALE_T-if-not-defined.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-Define-DUMMY_LOCALE_T-if-not-defined.patch
new file mode 100644
index 000000000..9d60d0282
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-Define-DUMMY_LOCALE_T-if-not-defined.patch
@@ -0,0 +1,32 @@
+From 89ec25290d34413ce5c8ba6c378e31dbae3a37c0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Apr 2016 21:11:00 -0700
+Subject: [PATCH 25/25] Define DUMMY_LOCALE_T if not defined
+
+This is a hack to fix building the locale bits on an older
+CentOs 5.X machine
+
+Upstream-Status: Inappropriate [other]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ locale/programs/config.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/locale/programs/config.h b/locale/programs/config.h
+index f606365..0e5f8c3 100644
+--- a/locale/programs/config.h
++++ b/locale/programs/config.h
+@@ -19,6 +19,9 @@
+ #ifndef _LD_CONFIG_H
+ #define _LD_CONFIG_H 1
+
++#ifndef DUMMY_LOCALE_T
++#define DUMMY_LOCALE_T
++#endif
+ /* Use the internal textdomain used for libc messages. */
+ #define PACKAGE _libc_intl_domainname
+ #ifndef VERSION
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-eglibc-Forward-port-cross-locale-generation-support.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-eglibc-Forward-port-cross-locale-generation-support.patch
deleted file mode 100644
index 68d11192a..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0025-eglibc-Forward-port-cross-locale-generation-support.patch
+++ /dev/null
@@ -1,566 +0,0 @@
-From a5695930aec68b3f501e475d8705cddbb63f695e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 18 Mar 2015 01:33:49 +0000
-Subject: [PATCH 25/25] eglibc: Forward port cross locale generation support
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- locale/Makefile | 3 ++-
- locale/catnames.c | 48 +++++++++++++++++++++++++++++++++++
- locale/localeinfo.h | 2 +-
- locale/programs/charmap-dir.c | 6 +++++
- locale/programs/ld-collate.c | 17 ++++++-------
- locale/programs/ld-ctype.c | 27 ++++++++++----------
- locale/programs/ld-time.c | 31 +++++++++++++++--------
- locale/programs/linereader.c | 2 +-
- locale/programs/localedef.c | 8 ++++++
- locale/programs/locfile.c | 5 +++-
- locale/programs/locfile.h | 59 +++++++++++++++++++++++++++++++++++++++++--
- locale/setlocale.c | 30 ----------------------
- 12 files changed, 169 insertions(+), 69 deletions(-)
- create mode 100644 locale/catnames.c
-
-diff --git a/locale/Makefile b/locale/Makefile
-index 75afbe1..d32523b 100644
---- a/locale/Makefile
-+++ b/locale/Makefile
-@@ -25,7 +25,8 @@ include ../Makeconfig
- headers = locale.h bits/locale.h langinfo.h xlocale.h
- routines = setlocale findlocale loadlocale loadarchive \
- localeconv nl_langinfo nl_langinfo_l mb_cur_max \
-- newlocale duplocale freelocale uselocale
-+ newlocale duplocale freelocale uselocale \
-+ catnames
- tests = tst-C-locale tst-locname tst-duplocale
- categories = ctype messages monetary numeric time paper name \
- address telephone measurement identification collate
-diff --git a/locale/catnames.c b/locale/catnames.c
-new file mode 100644
-index 0000000..9fad357
---- /dev/null
-+++ b/locale/catnames.c
-@@ -0,0 +1,48 @@
-+/* Copyright (C) 2006 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include "localeinfo.h"
-+
-+/* Define an array of category names (also the environment variable names). */
-+const union catnamestr_t _nl_category_names attribute_hidden =
-+ {
-+ {
-+#define DEFINE_CATEGORY(category, category_name, items, a) \
-+ category_name,
-+#include "categories.def"
-+#undef DEFINE_CATEGORY
-+ }
-+ };
-+
-+const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
-+ {
-+#define DEFINE_CATEGORY(category, category_name, items, a) \
-+ [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
-+#include "categories.def"
-+#undef DEFINE_CATEGORY
-+ };
-+
-+/* An array of their lengths, for convenience. */
-+const uint8_t _nl_category_name_sizes[] attribute_hidden =
-+ {
-+#define DEFINE_CATEGORY(category, category_name, items, a) \
-+ [category] = sizeof (category_name) - 1,
-+#include "categories.def"
-+#undef DEFINE_CATEGORY
-+ [LC_ALL] = sizeof ("LC_ALL") - 1
-+ };
-diff --git a/locale/localeinfo.h b/locale/localeinfo.h
-index 789da44..4ac9249 100644
---- a/locale/localeinfo.h
-+++ b/locale/localeinfo.h
-@@ -224,7 +224,7 @@ __libc_tsd_define (extern, __locale_t, LOCALE)
- unused. We can manage this playing some tricks with weak references.
- But with thread-local locale settings, it becomes quite ungainly unless
- we can use __thread variables. So only in that case do we attempt this. */
--#ifndef SHARED
-+#if !defined SHARED && !defined IN_GLIBC_LOCALEDEF
- # include <tls.h>
- # define NL_CURRENT_INDIRECT 1
- #endif
-diff --git a/locale/programs/charmap-dir.c b/locale/programs/charmap-dir.c
-index cf7adea..ef3b811 100644
---- a/locale/programs/charmap-dir.c
-+++ b/locale/programs/charmap-dir.c
-@@ -19,7 +19,9 @@
- #include <error.h>
- #include <fcntl.h>
- #include <libintl.h>
-+#ifndef NO_UNCOMPRESS
- #include <spawn.h>
-+#endif
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -156,6 +158,7 @@ charmap_closedir (CHARMAP_DIR *cdir)
- return closedir (dir);
- }
-
-+#ifndef NO_UNCOMPRESS
- /* Creates a subprocess decompressing the given pathname, and returns
- a stream reading its output (the decompressed data). */
- static
-@@ -204,6 +207,7 @@ fopen_uncompressed (const char *pathname, const char *compressor)
- }
- return NULL;
- }
-+#endif
-
- /* Opens a charmap for reading, given its name (not an alias name). */
- FILE *
-@@ -226,6 +230,7 @@ charmap_open (const char *directory, const char *name)
- if (stream != NULL)
- return stream;
-
-+#ifndef NO_UNCOMPRESS
- memcpy (p, ".gz", 4);
- stream = fopen_uncompressed (pathname, "gzip");
- if (stream != NULL)
-@@ -235,6 +240,7 @@ charmap_open (const char *directory, const char *name)
- stream = fopen_uncompressed (pathname, "bzip2");
- if (stream != NULL)
- return stream;
-+#endif
-
- return NULL;
- }
-diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
-index dc0fe30..3c88c6d 100644
---- a/locale/programs/ld-collate.c
-+++ b/locale/programs/ld-collate.c
-@@ -350,7 +350,7 @@ new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen,
- }
- if (wcs != NULL)
- {
-- size_t nwcs = wcslen ((wchar_t *) wcs);
-+ size_t nwcs = wcslen_uint32 (wcs);
- uint32_t zero = 0;
- /* Handle <U0000> as a single character. */
- if (nwcs == 0)
-@@ -1776,8 +1776,7 @@ symbol `%s' has the same encoding as"), (*eptr)->name);
-
- if ((*eptr)->nwcs == runp->nwcs)
- {
-- int c = wmemcmp ((wchar_t *) (*eptr)->wcs,
-- (wchar_t *) runp->wcs, runp->nwcs);
-+ int c = wmemcmp_uint32 ((*eptr)->wcs, runp->wcs, runp->nwcs);
-
- if (c == 0)
- {
-@@ -2010,9 +2009,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp)
- one consecutive entry. */
- if (runp->wcnext != NULL
- && runp->nwcs == runp->wcnext->nwcs
-- && wmemcmp ((wchar_t *) runp->wcs,
-- (wchar_t *)runp->wcnext->wcs,
-- runp->nwcs - 1) == 0
-+ && wmemcmp_uint32 (runp->wcs,
-+ runp->wcnext->wcs,
-+ runp->nwcs - 1) == 0
- && (runp->wcs[runp->nwcs - 1]
- == runp->wcnext->wcs[runp->nwcs - 1] + 1))
- {
-@@ -2036,9 +2035,9 @@ add_to_tablewc (uint32_t ch, struct element_t *runp)
- runp = runp->wcnext;
- while (runp->wcnext != NULL
- && runp->nwcs == runp->wcnext->nwcs
-- && wmemcmp ((wchar_t *) runp->wcs,
-- (wchar_t *)runp->wcnext->wcs,
-- runp->nwcs - 1) == 0
-+ && wmemcmp_uint32 (runp->wcs,
-+ runp->wcnext->wcs,
-+ runp->nwcs - 1) == 0
- && (runp->wcs[runp->nwcs - 1]
- == runp->wcnext->wcs[runp->nwcs - 1] + 1));
-
-diff --git a/locale/programs/ld-ctype.c b/locale/programs/ld-ctype.c
-index 3f464ef..b7b6b51 100644
---- a/locale/programs/ld-ctype.c
-+++ b/locale/programs/ld-ctype.c
-@@ -926,7 +926,7 @@ ctype_output (struct localedef_t *locale, const struct charmap_t *charmap,
- allocate_arrays (ctype, charmap, ctype->repertoire);
-
- default_missing_len = (ctype->default_missing
-- ? wcslen ((wchar_t *) ctype->default_missing)
-+ ? wcslen_uint32 (ctype->default_missing)
- : 0);
-
- init_locale_data (&file, nelems);
-@@ -1937,7 +1937,7 @@ read_translit_entry (struct linereader *ldfile, struct locale_ctype_t *ctype,
- ignore = 1;
- else
- /* This value is usable. */
-- obstack_grow (ob, to_wstr, wcslen ((wchar_t *) to_wstr) * 4);
-+ obstack_grow (ob, to_wstr, wcslen_uint32 (to_wstr) * 4);
-
- first = 0;
- }
-@@ -2471,8 +2471,8 @@ with character code range values one must use the absolute ellipsis `...'"));
- }
-
- handle_tok_digit:
-- class_bit = _ISwdigit;
-- class256_bit = _ISdigit;
-+ class_bit = BITw (tok_digit);
-+ class256_bit = BIT (tok_digit);
- handle_digits = 1;
- goto read_charclass;
-
-@@ -3929,8 +3929,7 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
-
- while (idx < number)
- {
-- int res = wcscmp ((const wchar_t *) sorted[idx]->from,
-- (const wchar_t *) runp->from);
-+ int res = wcscmp_uint32 (sorted[idx]->from, runp->from);
- if (res == 0)
- {
- replace = 1;
-@@ -3967,11 +3966,11 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
- for (size_t cnt = 0; cnt < number; ++cnt)
- {
- struct translit_to_t *srunp;
-- from_len += wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
-+ from_len += wcslen_uint32 (sorted[cnt]->from) + 1;
- srunp = sorted[cnt]->to;
- while (srunp != NULL)
- {
-- to_len += wcslen ((const wchar_t *) srunp->str) + 1;
-+ to_len += wcslen_uint32 (srunp->str) + 1;
- srunp = srunp->next;
- }
- /* Plus one for the extra NUL character marking the end of
-@@ -3995,18 +3994,18 @@ allocate_arrays (struct locale_ctype_t *ctype, const struct charmap_t *charmap,
- ctype->translit_from_idx[cnt] = from_len;
- ctype->translit_to_idx[cnt] = to_len;
-
-- len = wcslen ((const wchar_t *) sorted[cnt]->from) + 1;
-- wmemcpy ((wchar_t *) &ctype->translit_from_tbl[from_len],
-- (const wchar_t *) sorted[cnt]->from, len);
-+ len = wcslen_uint32 (sorted[cnt]->from) + 1;
-+ wmemcpy_uint32 (&ctype->translit_from_tbl[from_len],
-+ sorted[cnt]->from, len);
- from_len += len;
-
- ctype->translit_to_idx[cnt] = to_len;
- srunp = sorted[cnt]->to;
- while (srunp != NULL)
- {
-- len = wcslen ((const wchar_t *) srunp->str) + 1;
-- wmemcpy ((wchar_t *) &ctype->translit_to_tbl[to_len],
-- (const wchar_t *) srunp->str, len);
-+ len = wcslen_uint32 (srunp->str) + 1;
-+ wmemcpy_uint32 (&ctype->translit_to_tbl[to_len],
-+ srunp->str, len);
- to_len += len;
- srunp = srunp->next;
- }
-diff --git a/locale/programs/ld-time.c b/locale/programs/ld-time.c
-index db490c6..75dc505 100644
---- a/locale/programs/ld-time.c
-+++ b/locale/programs/ld-time.c
-@@ -215,8 +215,10 @@ No definition for %s category found"), "LC_TIME"));
- }
- else
- {
-+ static const uint32_t wt_fmt_ampm[]
-+ = { '%','I',':','%','M',':','%','S',' ','%','p',0 };
- time->t_fmt_ampm = "%I:%M:%S %p";
-- time->wt_fmt_ampm = (const uint32_t *) L"%I:%M:%S %p";
-+ time->wt_fmt_ampm = wt_fmt_ampm;
- }
- }
-
-@@ -226,7 +228,7 @@ No definition for %s category found"), "LC_TIME"));
- const int days_per_month[12] = { 31, 29, 31, 30, 31, 30,
- 31, 31, 30, 31 ,30, 31 };
- size_t idx;
-- wchar_t *wstr;
-+ uint32_t *wstr;
-
- time->era_entries =
- (struct era_data *) xmalloc (time->num_era
-@@ -464,18 +466,18 @@ No definition for %s category found"), "LC_TIME"));
- }
-
- /* Now generate the wide character name and format. */
-- wstr = wcschr ((wchar_t *) time->wera[idx], L':');/* end direction */
-- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end offset */
-- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end start */
-- wstr = wstr ? wcschr (wstr + 1, L':') : NULL; /* end end */
-+ wstr = wcschr_uint32 (time->wera[idx], L':'); /* end direction */
-+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end offset */
-+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end start */
-+ wstr = wstr ? wcschr_uint32 (wstr + 1, L':') : NULL; /* end end */
- if (wstr != NULL)
- {
-- time->era_entries[idx].wname = (uint32_t *) wstr + 1;
-- wstr = wcschr (wstr + 1, L':'); /* end name */
-+ time->era_entries[idx].wname = wstr + 1;
-+ wstr = wcschr_uint32 (wstr + 1, L':'); /* end name */
- if (wstr != NULL)
- {
- *wstr = L'\0';
-- time->era_entries[idx].wformat = (uint32_t *) wstr + 1;
-+ time->era_entries[idx].wformat = wstr + 1;
- }
- else
- time->era_entries[idx].wname =
-@@ -530,7 +532,16 @@ No definition for %s category found"), "LC_TIME"));
- if (time->date_fmt == NULL)
- time->date_fmt = "%a %b %e %H:%M:%S %Z %Y";
- if (time->wdate_fmt == NULL)
-- time->wdate_fmt = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y";
-+ {
-+ static const uint32_t wdate_fmt[] =
-+ { '%','a',' ',
-+ '%','b',' ',
-+ '%','e',' ',
-+ '%','H',':','%','M',':','%','S',' ',
-+ '%','Z',' ',
-+ '%','Y',0 };
-+ time->wdate_fmt = wdate_fmt;
-+ }
- }
-
-
-diff --git a/locale/programs/linereader.c b/locale/programs/linereader.c
-index 2e05130..653b68c 100644
---- a/locale/programs/linereader.c
-+++ b/locale/programs/linereader.c
-@@ -595,7 +595,7 @@ get_string (struct linereader *lr, const struct charmap_t *charmap,
- {
- int return_widestr = lr->return_widestr;
- char *buf;
-- wchar_t *buf2 = NULL;
-+ uint32_t *buf2 = NULL;
- size_t bufact;
- size_t bufmax = 56;
-
-diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
-index fd6ca51..328d36c 100644
---- a/locale/programs/localedef.c
-+++ b/locale/programs/localedef.c
-@@ -114,6 +114,7 @@ void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
- #define OPT_LIST_ARCHIVE 309
- #define OPT_LITTLE_ENDIAN 400
- #define OPT_BIG_ENDIAN 401
-+#define OPT_UINT32_ALIGN 402
-
- /* Definitions of arguments for argp functions. */
- static const struct argp_option options[] =
-@@ -150,6 +151,8 @@ static const struct argp_option options[] =
- N_("Generate little-endian output") },
- { "big-endian", OPT_BIG_ENDIAN, NULL, 0,
- N_("Generate big-endian output") },
-+ { "uint32-align", OPT_UINT32_ALIGN, "ALIGNMENT", 0,
-+ N_("Set the target's uint32_t alignment in bytes (default 4)") },
- { NULL, 0, NULL, 0, NULL }
- };
-
-@@ -239,12 +242,14 @@ main (int argc, char *argv[])
- ctype locale. (P1003.2 4.35.5.2) */
- setlocale (LC_CTYPE, "POSIX");
-
-+#ifndef NO_SYSCONF
- /* Look whether the system really allows locale definitions. POSIX
- defines error code 3 for this situation so I think it must be
- a fatal error (see P1003.2 4.35.8). */
- if (sysconf (_SC_2_LOCALEDEF) < 0)
- WITH_CUR_LOCALE (error (3, 0, _("\
- FATAL: system does not define `_POSIX2_LOCALEDEF'")));
-+#endif
-
- /* Process charmap file. */
- charmap = charmap_read (charmap_file, verbose, 1, be_quiet, 1);
-@@ -338,6 +343,9 @@ parse_opt (int key, char *arg, struct argp_state *state)
- case OPT_BIG_ENDIAN:
- set_big_endian (true);
- break;
-+ case OPT_UINT32_ALIGN:
-+ uint32_align_mask = strtol (arg, NULL, 0) - 1;
-+ break;
- case 'c':
- force_output = 1;
- break;
-diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c
-index 33da52e..f790c4c 100644
---- a/locale/programs/locfile.c
-+++ b/locale/programs/locfile.c
-@@ -544,6 +544,9 @@ compare_files (const char *filename1, const char *filename2, size_t size,
- machine running localedef. */
- bool swap_endianness_p;
-
-+/* The target's value of __align__(uint32_t) - 1. */
-+unsigned int uint32_align_mask = 3;
-+
- /* When called outside a start_locale_structure/end_locale_structure
- or start_locale_prelude/end_locale_prelude block, record that the
- next byte in FILE's obstack will be the first byte of a new element.
-@@ -621,7 +624,7 @@ add_locale_string (struct locale_file *file, const char *string)
- void
- add_locale_wstring (struct locale_file *file, const uint32_t *string)
- {
-- add_locale_uint32_array (file, string, wcslen ((const wchar_t *) string) + 1);
-+ add_locale_uint32_array (file, string, wcslen_uint32 (string) + 1);
- }
-
- /* Record that FILE's next element is the 32-bit integer VALUE. */
-diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h
-index 6fc441b..118b171 100644
---- a/locale/programs/locfile.h
-+++ b/locale/programs/locfile.h
-@@ -71,6 +71,8 @@ extern void write_all_categories (struct localedef_t *definitions,
-
- extern bool swap_endianness_p;
-
-+extern unsigned int uint32_align_mask;
-+
- /* Change the output to be big-endian if BIG_ENDIAN is true and
- little-endian otherwise. */
- static inline void
-@@ -89,7 +91,8 @@ maybe_swap_uint32 (uint32_t value)
- }
-
- /* Likewise, but munge an array of N uint32_ts starting at ARRAY. */
--static inline void
-+static void
-+__attribute__ ((unused))
- maybe_swap_uint32_array (uint32_t *array, size_t n)
- {
- if (swap_endianness_p)
-@@ -99,7 +102,8 @@ maybe_swap_uint32_array (uint32_t *array, size_t n)
-
- /* Like maybe_swap_uint32_array, but the array of N elements is at
- the end of OBSTACK's current object. */
--static inline void
-+static void
-+__attribute__ ((unused))
- maybe_swap_uint32_obstack (struct obstack *obstack, size_t n)
- {
- maybe_swap_uint32_array ((uint32_t *) obstack_next_free (obstack) - n, n);
-@@ -276,4 +280,55 @@ extern void identification_output (struct localedef_t *locale,
- const struct charmap_t *charmap,
- const char *output_path);
-
-+static size_t wcslen_uint32 (const uint32_t *str) __attribute__ ((unused));
-+static uint32_t * wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused));
-+static uint32_t * wcschr_uint32 (const uint32_t *s, uint32_t ch) __attribute__ ((unused));
-+static int wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2) __attribute__ ((unused));
-+static int wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n) __attribute__ ((unused));
-+
-+static size_t
-+wcslen_uint32 (const uint32_t *str)
-+{
-+ size_t len = 0;
-+ while (str[len] != 0)
-+ len++;
-+ return len;
-+}
-+
-+static int
-+wmemcmp_uint32 (const uint32_t *s1, const uint32_t *s2, size_t n)
-+{
-+ while (n-- != 0)
-+ {
-+ int diff = *s1++ - *s2++;
-+ if (diff != 0)
-+ return diff;
-+ }
-+ return 0;
-+}
-+
-+static int
-+wcscmp_uint32 (const uint32_t *s1, const uint32_t *s2)
-+{
-+ while (*s1 != 0 && *s1 == *s2)
-+ s1++, s2++;
-+ return *s1 - *s2;
-+}
-+
-+static uint32_t *
-+wmemcpy_uint32 (uint32_t *s1, const uint32_t *s2, size_t n)
-+{
-+ return memcpy (s1, s2, n * sizeof (uint32_t));
-+}
-+
-+static uint32_t *
-+wcschr_uint32 (const uint32_t *s, uint32_t ch)
-+{
-+ do
-+ if (*s == ch)
-+ return (uint32_t *) s;
-+ while (*s++ != 0);
-+ return 0;
-+}
-+
- #endif /* locfile.h */
-diff --git a/locale/setlocale.c b/locale/setlocale.c
-index ead030d..b551332 100644
---- a/locale/setlocale.c
-+++ b/locale/setlocale.c
-@@ -64,36 +64,6 @@ static char *const _nl_current_used[] =
- #endif
-
-
--/* Define an array of category names (also the environment variable names). */
--const union catnamestr_t _nl_category_names attribute_hidden =
-- {
-- {
--#define DEFINE_CATEGORY(category, category_name, items, a) \
-- category_name,
--#include "categories.def"
--#undef DEFINE_CATEGORY
-- }
-- };
--
--const uint8_t _nl_category_name_idxs[__LC_LAST] attribute_hidden =
-- {
--#define DEFINE_CATEGORY(category, category_name, items, a) \
-- [category] = offsetof (union catnamestr_t, CATNAMEMF (__LINE__)),
--#include "categories.def"
--#undef DEFINE_CATEGORY
-- };
--
--/* An array of their lengths, for convenience. */
--const uint8_t _nl_category_name_sizes[] attribute_hidden =
-- {
--#define DEFINE_CATEGORY(category, category_name, items, a) \
-- [category] = sizeof (category_name) - 1,
--#include "categories.def"
--#undef DEFINE_CATEGORY
-- [LC_ALL] = sizeof ("LC_ALL") - 1
-- };
--
--
- #ifdef NL_CURRENT_INDIRECT
- # define WEAK_POSTLOAD(postload) weak_extern (postload)
- #else
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch
deleted file mode 100644
index 2b889a94c..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 97fe7f1b23ea1f17533884b8fa7f7eb40087d558 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 5 Jan 2016 17:50:00 -0800
-Subject: [PATCH] When disabling SSE, make sure -fpmath is not set to use SSE
- either
-
-This fixes errors when we inject sse options through CFLAGS and now
-that we have -Werror turned on by default this warning turns to become
-error on x86
-
-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S
--mno-sse -mno-mmx
-
-generates warning
-/dev/null:1:0: warning: SSE instruction set disabled, using 387
-arithmetics
-
-where as
-
-gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S
--mno-sse -mno-mmx -mfpmath=387
-
-Generates no warnings
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- ChangeLog | 5 +++++
- sysdeps/i386/Makefile | 2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/sysdeps/i386/Makefile b/sysdeps/i386/Makefile
-index 168512f..70153b3 100644
---- a/sysdeps/i386/Makefile
-+++ b/sysdeps/i386/Makefile
-@@ -89,7 +89,7 @@ ifeq ($(subdir),elf)
- # the first 3 mm/xmm/ymm/zmm registers are used to pass vector parameters
- # which must be preserved.
- CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
-- -mno-sse -mno-mmx)
-+ -mno-sse -mno-mmx -mfpmath=387)
-
- tests-special += $(objpfx)tst-ld-sse-use.out
- $(objpfx)tst-ld-sse-use.out: ../sysdeps/i386/tst-ld-sse-use.sh $(objpfx)ld.so
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-build_local_scope.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-build_local_scope.patch
new file mode 100644
index 000000000..8e0cb8319
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0026-build_local_scope.patch
@@ -0,0 +1,56 @@
+From 6e4ec5a3c5fe63b6458036f18d43124de4a7e724 Mon Sep 17 00:00:00 2001
+From: Mark Hatle <mark.hatle@windriver.com>
+Date: Thu, 18 Aug 2016 14:07:58 -0500
+Subject: [PATCH] elf/dl-deps.c: Make _dl_build_local_scope breadth first
+
+According to the ELF specification:
+
+When resolving symbolic references, the dynamic linker examines the symbol
+tables with a breadth-first search.
+
+This function was using a depth first search. By doing so the conflict
+resolution reported to the prelinker (when LD_TRACE_PRELINKING=1 is set)
+was incorrect. This caused problems when their were various circular
+dependencies between libraries. The problem usually manifested itself by
+the wrong IFUNC being executed.
+
+[BZ# 20488]
+
+Upstream-Status: Submitted [libc-alpha]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+---
+ elf/dl-deps.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 6a82987..fc37c87 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -73,13 +73,19 @@ _dl_build_local_scope (struct link_map **list, struct link_map *map)
+ {
+ struct link_map **p = list;
+ struct link_map **q;
++ struct link_map **r;
+
+ *p++ = map;
+ map->l_reserved = 1;
+- if (map->l_initfini)
+- for (q = map->l_initfini + 1; *q; ++q)
+- if (! (*q)->l_reserved)
+- p += _dl_build_local_scope (p, *q);
++
++ for (r = list; r < p; ++r)
++ if ((*r)->l_initfini)
++ for (q = (*r)->l_initfini + 1; *q; ++q)
++ if (! (*q)->l_reserved)
++ {
++ *p++ = *q;
++ (*q)->l_reserved = 1;
++ }
+ return p - list;
+ }
+
+--
+2.5.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.23.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.23.bb
deleted file mode 100644
index 18f40660e..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.23.bb
+++ /dev/null
@@ -1,133 +0,0 @@
-require glibc.inc
-
-LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS += "gperf-native"
-
-SRCREV ?= "e742928c1592b43db6809db4f39e67be151cdd27"
-
-SRCBRANCH ?= "release/${PV}/master"
-
-GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
-
-SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
- file://0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
- file://0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
- file://0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
- file://0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
- file://0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
- file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
- file://0012-Make-ld-version-output-matching-grok-gold-s-output.patch \
- file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
- file://0014-Add-unused-attribute.patch \
- file://0015-yes-within-the-path-sets-wrong-config-variables.patch \
- file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
- file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
- file://0018-eglibc-Cross-building-and-testing-instructions.patch \
- file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
- file://0020-eglibc-cherry-picked-from.patch \
- file://0021-eglibc-Clear-cache-lines-on-ppc8xx.patch \
- file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
- file://0023-eglibc-Install-PIC-archives.patch \
- file://0025-eglibc-Forward-port-cross-locale-generation-support.patch \
- file://0026-When-disabling-SSE-make-sure-fpmath-is-not-set-to-us.patch \
-"
-
-SRC_URI += "\
- file://etc/ld.so.conf \
- file://generate-supported.mk \
-"
-
-SRC_URI_append_class-nativesdk = "\
- file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \
- file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \
- file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \
- file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \
-"
-
-S = "${WORKDIR}/git"
-B = "${WORKDIR}/build-${TARGET_SYS}"
-
-PACKAGES_DYNAMIC = ""
-
-# the -isystem in bitbake.conf screws up glibc do_stage
-BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
-TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
-
-GLIBC_BROKEN_LOCALES = " _ER _ET so_ET yn_ER sid_ET tr_TR mn_MN gez_ET gez_ER bn_BD te_IN es_CR.ISO-8859-1"
-
-#
-# We will skip parsing glibc when target system C library selection is not glibc
-# this helps in easing out parsing for non-glibc system libraries
-#
-COMPATIBLE_HOST_libc-musl_class-target = "null"
-COMPATIBLE_HOST_libc-uclibc_class-target = "null"
-
-EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
- --without-cvs --disable-profile \
- --disable-debug --without-gd \
- --enable-clocale=gnu \
- --enable-add-ons \
- --with-headers=${STAGING_INCDIR} \
- --without-selinux \
- --enable-obsolete-rpc \
- ${GLIBC_EXTRA_OECONF}"
-
-EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'libc-inet-anl', '--enable-nscd', '--disable-nscd', d)}"
-
-
-do_patch_append() {
- bb.build.exec_func('do_fix_readlib_c', d)
-}
-
-do_fix_readlib_c () {
- sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
-}
-
-do_configure () {
-# override this function to avoid the autoconf/automake/aclocal/autoheader
-# calls for now
-# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
-# version check and doesn't really help with anything
- (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
- find ${S} -name "configure" | xargs touch
- CPPFLAGS="" oe_runconf
-}
-
-rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
- yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
- rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
-
-do_compile () {
- # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
- unset LDFLAGS
- base_do_compile
- (
- cd ${S}/sunrpc/rpcsvc
- for r in ${rpcsvc}; do
- h=`echo $r|sed -e's,\.x$,.h,'`
- rm -f $h
- ${B}/sunrpc/cross-rpcgen -h $r -o $h || bbwarn "${PN}: unable to generate header for $r"
- done
- )
- echo "Adjust ldd script"
- if [ -n "${RTLDLIST}" ]
- then
- prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'`
- if [ "${prevrtld}" != "${RTLDLIST}" ]
- then
- sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#"
- fi
- fi
-
-}
-
-require glibc-package.inc
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.24.bb b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.24.bb
new file mode 100644
index 000000000..f5a21b258
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc_2.24.bb
@@ -0,0 +1,140 @@
+require glibc.inc
+
+LIC_FILES_CHKSUM = "file://LICENSES;md5=e9a558e243b36d3209f380deb394b213 \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://posix/rxspencer/COPYRIGHT;md5=dc5485bb394a13b2332ec1c785f5d83a \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS += "gperf-native"
+
+SRCREV ?= "ea23815a795f72035262953dad5beb03e09c17dd"
+
+SRCBRANCH ?= "release/${PV}/master"
+
+GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
+
+SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
+ file://0005-fsl-e500-e5500-e6500-603e-fsqrt-implementation.patch \
+ file://0006-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
+ file://0007-ppc-sqrt-Fix-undefined-reference-to-__sqrt_finite.patch \
+ file://0008-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
+ file://0009-Quote-from-bug-1443-which-explains-what-the-patch-do.patch \
+ file://0010-eglibc-run-libm-err-tab.pl-with-specific-dirs-in-S.patch \
+ file://0011-__ieee754_sqrt-f-are-now-inline-functions-and-call-o.patch \
+ file://0012-Make-ld-version-output-matching-grok-gold-s-output.patch \
+ file://0013-sysdeps-gnu-configure.ac-handle-correctly-libc_cv_ro.patch \
+ file://0014-Add-unused-attribute.patch \
+ file://0015-yes-within-the-path-sets-wrong-config-variables.patch \
+ file://0016-timezone-re-written-tzselect-as-posix-sh.patch \
+ file://0017-Remove-bash-dependency-for-nscd-init-script.patch \
+ file://0018-eglibc-Cross-building-and-testing-instructions.patch \
+ file://0019-eglibc-Help-bootstrap-cross-toolchain.patch \
+ file://0020-eglibc-cherry-picked-from.patch \
+ file://0021-eglibc-Clear-cache-lines-on-ppc8xx.patch \
+ file://0022-eglibc-Resolve-__fpscr_values-on-SH4.patch \
+ file://0023-eglibc-Install-PIC-archives.patch \
+ file://0024-eglibc-Forward-port-cross-locale-generation-support.patch \
+ file://0025-Define-DUMMY_LOCALE_T-if-not-defined.patch \
+ file://0026-build_local_scope.patch \
+"
+
+SRC_URI += "\
+ file://etc/ld.so.conf \
+ file://generate-supported.mk \
+ file://0001-locale-fix-hard-coded-reference-to-gcc-E.patch \
+ "
+
+SRC_URI_append_class-nativesdk = "\
+ file://0001-nativesdk-glibc-Look-for-host-system-ld.so.cache-as-.patch \
+ file://0002-nativesdk-glibc-Fix-buffer-overrun-with-a-relocated-.patch \
+ file://0003-nativesdk-glibc-Raise-the-size-of-arrays-containing-.patch \
+ file://0004-nativesdk-glibc-Allow-64-bit-atomics-for-x86.patch \
+"
+
+S = "${WORKDIR}/git"
+B = "${WORKDIR}/build-${TARGET_SYS}"
+
+PACKAGES_DYNAMIC = ""
+
+# the -isystem in bitbake.conf screws up glibc do_stage
+BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
+TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir}"
+
+GLIBC_BROKEN_LOCALES = ""
+#
+# We will skip parsing glibc when target system C library selection is not glibc
+# this helps in easing out parsing for non-glibc system libraries
+#
+COMPATIBLE_HOST_libc-musl_class-target = "null"
+COMPATIBLE_HOST_libc-uclibc_class-target = "null"
+
+EXTRA_OECONF = "--enable-kernel=${OLDEST_KERNEL} \
+ --without-cvs --disable-profile \
+ --disable-debug --without-gd \
+ --enable-clocale=gnu \
+ --enable-add-ons \
+ --with-headers=${STAGING_INCDIR} \
+ --without-selinux \
+ --enable-obsolete-rpc \
+ ${GLIBC_EXTRA_OECONF}"
+
+EXTRA_OECONF += "${@get_libc_fpu_setting(bb, d)}"
+EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'libc-inet-anl', '--enable-nscd', '--disable-nscd', d)}"
+
+
+do_patch_append() {
+ bb.build.exec_func('do_fix_readlib_c', d)
+}
+
+do_fix_readlib_c () {
+ sed -i -e 's#OECORE_KNOWN_INTERPRETER_NAMES#${EGLIBC_KNOWN_INTERPRETER_NAMES}#' ${S}/elf/readlib.c
+}
+
+do_configure () {
+# override this function to avoid the autoconf/automake/aclocal/autoheader
+# calls for now
+# don't pass CPPFLAGS into configure, since it upsets the kernel-headers
+# version check and doesn't really help with anything
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ find ${S} -name "configure" | xargs touch
+ CPPFLAGS="" oe_runconf
+}
+
+rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
+ yppasswd.x klm_prot.x rex.x sm_inter.x mount.x \
+ rusers.x spray.x nfs_prot.x rquota.x key_prot.x"
+
+do_compile () {
+ # -Wl,-rpath-link <staging>/lib in LDFLAGS can cause breakage if another glibc is in staging
+ unset LDFLAGS
+ base_do_compile
+ (
+ cd ${S}/sunrpc/rpcsvc
+ for r in ${rpcsvc}; do
+ h=`echo $r|sed -e's,\.x$,.h,'`
+ rm -f $h
+ ${B}/sunrpc/cross-rpcgen -h $r -o $h || bbwarn "${PN}: unable to generate header for $r"
+ done
+ )
+ echo "Adjust ldd script"
+ if [ -n "${RTLDLIST}" ]
+ then
+ prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'`
+ if [ "${prevrtld}" != "${RTLDLIST}" ]
+ then
+ sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#"
+ fi
+ fi
+
+}
+
+# Use the host locale archive when built for nativesdk so that we don't need to
+# ship a complete (100MB) locale set.
+do_compile_prepend_class-nativesdk() {
+ echo "complocaledir=/usr/lib/locale" >> ${S}/configparms
+}
+
+require glibc-package.inc
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/ifupdown/ifupdown_0.8.2.bb b/import-layers/yocto-poky/meta/recipes-core/ifupdown/ifupdown_0.8.2.bb
index 732b295b8..9de01f961 100644
--- a/import-layers/yocto-poky/meta/recipes-core/ifupdown/ifupdown_0.8.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/ifupdown/ifupdown_0.8.2.bb
@@ -13,8 +13,6 @@ SRC_URI = "git://anonscm.debian.org/git/collab-maint/ifupdown.git;protocol=https
"
SRCREV = "05ea2fd4f49bb1201aeef2a42efbcff8f336112f"
-EXTRA_OEMAKE = ""
-
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_14.0.0.bb b/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_14.0.0.bb
deleted file mode 100644
index bdcb9212d..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_14.0.0.bb
+++ /dev/null
@@ -1,120 +0,0 @@
-SUMMARY = "An image containing the build system itself"
-DESCRIPTION = "An image containing the build system that you can boot and run using either VMware Player or VMware Workstation."
-HOMEPAGE = "http://www.yoctoproject.org/documentation/build-appliance"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
- file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted kernel-dev kernel-devsrc "
-
-IMAGE_FEATURES += "x11-base package-management splash"
-
-# Ensure there's enough space to do a core-image-sato build, with rm_work enabled
-IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
-
-# Do a quiet boot with limited console messages
-APPEND += "rootfstype=ext4 quiet"
-
-DEPENDS = "zip-native"
-IMAGE_FSTYPES = "vmdk"
-
-inherit core-image module-base
-
-SRCREV ?= "5f84d6545e6d7a2be8e603a1f4b1afae0dad0a9b"
-SRC_URI = "git://git.yoctoproject.org/poky;branch=krogoth \
- file://Yocto_Build_Appliance.vmx \
- file://Yocto_Build_Appliance.vmxf \
- file://README_VirtualBox_Guest_Additions.txt \
- "
-BA_INCLUDE_SOURCES ??= "0"
-
-IMAGE_CMD_ext4_append () {
- # We don't need to reserve much space for root, 0.5% is more than enough
- tune2fs -m 0.5 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4
-}
-
-fakeroot do_populate_poky_src () {
- # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo
- # will become invalid in the target.
- rm -rf ${WORKDIR}/git/.git
- rm -f ${WORKDIR}/git/.gitignore
-
- cp -R ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky
-
- mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf
- mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads
- if [ ${BA_INCLUDE_SOURCES} != 0 ]; then
- cp -RpL ${DL_DIR}/* ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/
- # Remove the git2_* tarballs -- this is ok since we still have the git2/.
- rm -rf ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/git2_*
- fi
-
- # Place the README_VirtualBox_Guest_Additions file in builders home folder.
- cp ${WORKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/
-
- # Create a symlink, needed for out-of-tree kernel modules build
- ln -snr ${IMAGE_ROOTFS}/usr/src/kernel ${IMAGE_ROOTFS}/lib/modules/${KERNEL_VERSION}/build
-
- echo "/usr/bin" > ${IMAGE_ROOTFS}/home/builder/poky/build/pseudodone
- echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf
- mkdir -p ${IMAGE_ROOTFS}/home/builder/pseudo
- echo "export PSEUDO_PREFIX=/usr" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "export PSEUDO_LOCALSTATEDIR=/home/builder/pseudo" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "export PSEUDO_LIBDIR=/usr/lib/pseudo/lib64" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
-
- # Also save (for reference only) the actual SRCREV used to create this image
- echo "export BA_SRCREV=${SRCREV}" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "# If working behind a proxy and using the provided oe-git-proxy script" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "# you need to set ALL_PROXY based on your proxy settings." >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "# Example ALL_PROXY values:" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "# export ALL_PROXY=https://proxy.example.com:8080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
- echo "# export ALL_PROXY=socks://socks.example.com:1080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
-
- chown builder.builder ${IMAGE_ROOTFS}/home/builder/pseudo
-
- chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/poky
- chmod -R ug+rw ${IMAGE_ROOTFS}/home/builder/poky
-
- # Assume we will need CDROM to install guest additions
- mkdir -p ${IMAGE_ROOTFS}/media/cdrom
-
- # Allow builder to use sudo
- echo "builder ALL=(ALL) NOPASSWD: ALL" >> ${IMAGE_ROOTFS}/etc/sudoers
-
- # Load tap/tun at startup
- ln -sr ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables
- echo "tun" >> ${IMAGE_ROOTFS}/etc/modules
-
- # Use Clearlooks GTK+ theme
- mkdir -p ${IMAGE_ROOTFS}/etc/gtk-2.0
- echo 'gtk-theme-name = "Clearlooks"' > ${IMAGE_ROOTFS}/etc/gtk-2.0/gtkrc
-}
-
-IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; "
-
-addtask rootfs after do_unpack
-
-python () {
- # Ensure we run these usually noexec tasks
- d.delVarFlag("do_fetch", "noexec")
- d.delVarFlag("do_unpack", "noexec")
-}
-
-create_bundle_files () {
- cd ${WORKDIR}
- mkdir -p Yocto_Build_Appliance
- cp *.vmx* Yocto_Build_Appliance
- ln -sf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk
- zip -r ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance
- ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${DEPLOY_DIR_IMAGE}/Yocto_Build_Appliance.zip
-}
-create_bundle_files[vardepsexclude] = "DATETIME"
-
-python do_bundle_files() {
- bb.build.exec_func('create_bundle_files', d)
-}
-
-addtask bundle_files after do_vmimg before do_build
-do_bundle_files[nostamp] = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
new file mode 100644
index 000000000..e6ed0f482
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -0,0 +1,117 @@
+SUMMARY = "An image containing the build system itself"
+DESCRIPTION = "An image containing the build system that you can boot and run using either VMware Player or VMware Workstation."
+HOMEPAGE = "http://www.yoctoproject.org/documentation/build-appliance"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+IMAGE_INSTALL = "packagegroup-core-boot packagegroup-core-ssh-openssh packagegroup-self-hosted \
+ kernel-dev kernel-devsrc connman connman-plugin-ethernet dhcp-client"
+
+IMAGE_FEATURES += "x11-base package-management splash"
+
+# Ensure there's enough space to do a core-image-sato build, with rm_work enabled
+IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
+
+# Do a quiet boot with limited console messages
+APPEND += "rootfstype=ext4 quiet"
+
+DEPENDS = "zip-native"
+IMAGE_FSTYPES = "vmdk"
+
+inherit core-image module-base
+
+SRCREV ?= "746c681be4c744d0c6c2d3225b94550241546f65"
+SRC_URI = "git://git.yoctoproject.org/poky;branch=morty \
+ file://Yocto_Build_Appliance.vmx \
+ file://Yocto_Build_Appliance.vmxf \
+ file://README_VirtualBox_Guest_Additions.txt \
+ "
+BA_INCLUDE_SOURCES ??= "0"
+
+IMAGE_CMD_ext4_append () {
+ # We don't need to reserve much space for root, 0.5% is more than enough
+ tune2fs -m 0.5 ${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.ext4
+}
+
+fakeroot do_populate_poky_src () {
+ # Because fetch2's git's unpack uses -s cloneflag, the unpacked git repo
+ # will become invalid in the target.
+ rm -rf ${WORKDIR}/git/.git
+ rm -f ${WORKDIR}/git/.gitignore
+
+ cp -R ${WORKDIR}/git ${IMAGE_ROOTFS}/home/builder/poky
+
+ mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/conf
+ mkdir -p ${IMAGE_ROOTFS}/home/builder/poky/build/downloads
+ if [ ${BA_INCLUDE_SOURCES} != 0 ]; then
+ cp -RpL ${DL_DIR}/* ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/
+ # Remove the git2_* tarballs -- this is ok since we still have the git2/.
+ rm -rf ${IMAGE_ROOTFS}/home/builder/poky/build/downloads/git2_*
+ fi
+
+ # Place the README_VirtualBox_Guest_Additions file in builders home folder.
+ cp ${WORKDIR}/README_VirtualBox_Guest_Additions.txt ${IMAGE_ROOTFS}/home/builder/
+
+ # Create a symlink, needed for out-of-tree kernel modules build
+ lnr ${IMAGE_ROOTFS}${KERNEL_SRC_PATH} ${IMAGE_ROOTFS}/lib/modules/${KERNEL_VERSION}/build
+
+ echo "INHERIT += \"rm_work\"" >> ${IMAGE_ROOTFS}/home/builder/poky/build/conf/auto.conf
+ echo "export LC_ALL=en_US.utf8" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+
+ # Also save (for reference only) the actual SRCREV used to create this image
+ echo "export BA_SRCREV=${SRCREV}" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "export PATH=$PATH:/sbin" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+
+ echo "# If working behind a proxy and using the provided oe-git-proxy script" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "# you need to set ALL_PROXY based on your proxy settings." >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "# Example ALL_PROXY values:" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "# export ALL_PROXY=https://proxy.example.com:8080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+ echo "# export ALL_PROXY=socks://socks.example.com:1080" >> ${IMAGE_ROOTFS}/home/builder/.bashrc
+
+ chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/poky
+ chmod -R ug+rw ${IMAGE_ROOTFS}/home/builder/poky
+
+ # Assume we will need CDROM to install guest additions
+ mkdir -p ${IMAGE_ROOTFS}/media/cdrom
+
+ # Allow builder to use sudo
+ echo "builder ALL=(ALL) NOPASSWD: ALL" >> ${IMAGE_ROOTFS}/etc/sudoers
+
+ # Load tap/tun at startup
+ lnr ${IMAGE_ROOTFS}/usr/sbin/iptables ${IMAGE_ROOTFS}/sbin/iptables
+ echo "tun" >> ${IMAGE_ROOTFS}/etc/modules
+
+ # Use Clearlooks GTK+ theme
+ mkdir -p ${IMAGE_ROOTFS}/etc/gtk-2.0
+ echo 'gtk-theme-name = "Clearlooks"' > ${IMAGE_ROOTFS}/etc/gtk-2.0/gtkrc
+}
+
+IMAGE_PREPROCESS_COMMAND += "do_populate_poky_src; "
+
+addtask rootfs after do_unpack
+
+python () {
+ # Ensure we run these usually noexec tasks
+ d.delVarFlag("do_fetch", "noexec")
+ d.delVarFlag("do_unpack", "noexec")
+}
+
+create_bundle_files () {
+ cd ${WORKDIR}
+ mkdir -p Yocto_Build_Appliance
+ cp *.vmx* Yocto_Build_Appliance
+ ln -sf ${IMGDEPLOYDIR}/${IMAGE_NAME}.vmdk Yocto_Build_Appliance/Yocto_Build_Appliance.vmdk
+ zip -r ${IMGDEPLOYDIR}/Yocto_Build_Appliance-${DATETIME}.zip Yocto_Build_Appliance
+ ln -sf Yocto_Build_Appliance-${DATETIME}.zip ${IMGDEPLOYDIR}/Yocto_Build_Appliance.zip
+}
+create_bundle_files[vardepsexclude] = "DATETIME"
+
+python do_bundle_files() {
+ bb.build.exec_func('create_bundle_files', d)
+}
+
+addtask bundle_files after do_vmimg before do_image_complete
diff --git a/import-layers/yocto-poky/meta/recipes-core/images/core-image-minimal-initramfs.bb b/import-layers/yocto-poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
index 8d7c0d2d3..5794a2595 100644
--- a/import-layers/yocto-poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
@@ -20,3 +20,6 @@ IMAGE_ROOTFS_SIZE = "8192"
IMAGE_ROOTFS_EXTRA_SPACE = "0"
BAD_RECOMMENDATIONS += "busybox-syslog"
+
+# Use the same restriction as initramfs-live-install
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install-efi.sh b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install-efi.sh
index d58826a24..441e25238 100644
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install-efi.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install-efi.sh
@@ -29,7 +29,13 @@ esac
echo "Searching for hard drives ..."
-for device in `ls /sys/block/`; do
+# Some eMMC devices have special sub devices such as mmcblk0boot0 etc
+# we're currently only interested in the root device so pick them wisely
+devices=`ls /sys/block/ | grep -v mmcblk` || true
+mmc_devices=`ls /sys/block/ | grep "mmcblk[0-9]\{1,\}$"` || true
+devices="$devices $mmc_devices"
+
+for device in $devices; do
case $device in
loop*)
# skip loop device
@@ -78,17 +84,23 @@ for hdname in $hdnamelist; do
cat /sys/block/$hdname/device/uevent
fi
echo
- # Get user choice
- while true; do
- echo -n "Do you want to install this image there? [y/n] "
- read answer
- if [ "$answer" = "y" -o "$answer" = "n" ]; then
+done
+
+# Get user choice
+while true; do
+ echo "Please select an install target or press n to exit ($hdnamelist ): "
+ read answer
+ if [ "$answer" = "n" ]; then
+ echo "Installation manually aborted."
+ exit 1
+ fi
+ for hdname in $hdnamelist; do
+ if [ "$answer" = "$hdname" ]; then
+ TARGET_DEVICE_NAME=$answer
break
fi
- echo "Please answer y or n"
done
- if [ "$answer" = "y" ]; then
- TARGET_DEVICE_NAME=$hdname
+ if [ -n "$TARGET_DEVICE_NAME" ]; then
break
fi
done
@@ -116,8 +128,8 @@ umount ${device}* 2> /dev/null || /bin/true
mkdir -p /tmp
# Create /etc/mtab if not present
-if [ ! -e /etc/mtab ]; then
- cat /proc/mounts > /etc/mtab
+if [ ! -e /etc/mtab ] && [ -e /proc/mounts ]; then
+ ln -sf /proc/mounts /etc/mtab
fi
disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
@@ -138,6 +150,12 @@ if [ ! "${device#/dev/mmcblk}" = "${device}" ]; then
part_prefix="p"
rootwait="rootwait"
fi
+
+# USB devices also require rootwait
+if [ -n `readlink /dev/disk/by-id/usb* | grep $TARGET_DEVICE_NAME` ]; then
+ rootwait="rootwait"
+fi
+
bootfs=${device}${part_prefix}1
rootfs=${device}${part_prefix}2
swap=${device}${part_prefix}3
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install.sh b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install.sh
index c5623eeb2..04ce5fb4b 100644
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-install.sh
@@ -28,7 +28,13 @@ esac
echo "Searching for hard drives ..."
-for device in `ls /sys/block/`; do
+# Some eMMC devices have special sub devices such as mmcblk0boot0 etc
+# we're currently only interested in the root device so pick them wisely
+devices=`ls /sys/block/ | grep -v mmcblk` || true
+mmc_devices=`ls /sys/block/ | grep "mmcblk[0-9]\{1,\}$"` || true
+devices="$devices $mmc_devices"
+
+for device in $devices; do
case $device in
loop*)
# skip loop device
@@ -72,17 +78,23 @@ for hdname in $hdnamelist; do
cat /sys/block/$hdname/device/uevent
fi
echo
- # Get user choice
- while true; do
- echo -n "Do you want to install this image there? [y/n] "
- read answer
- if [ "$answer" = "y" -o "$answer" = "n" ]; then
+done
+
+# Get user choice
+while true; do
+ echo "Please select an install target or press n to exit ($hdnamelist ): "
+ read answer
+ if [ "$answer" = "n" ]; then
+ echo "Installation manually aborted."
+ exit 1
+ fi
+ for hdname in $hdnamelist; do
+ if [ "$answer" = "$hdname" ]; then
+ TARGET_DEVICE_NAME=$answer
break
fi
- echo "Please answer y or n"
done
- if [ "$answer" = "y" ]; then
- TARGET_DEVICE_NAME=$hdname
+ if [ -n "$TARGET_DEVICE_NAME" ]; then
break
fi
done
@@ -112,8 +124,8 @@ if [ ! -b /dev/loop0 ] ; then
fi
mkdir -p /tmp
-if [ ! -L /etc/mtab ]; then
- cat /proc/mounts > /etc/mtab
+if [ ! -L /etc/mtab ] && [ -e /proc/mounts ]; then
+ ln -sf /proc/mounts /etc/mtab
fi
disk_size=$(parted ${device} unit mb print | grep '^Disk .*: .*MB' | cut -d" " -f 3 | sed -e "s/MB//")
@@ -146,6 +158,11 @@ if [ ! "${device#/dev/mmcblk}" = "${device}" ]; then
rootwait="rootwait"
fi
+# USB devices also require rootwait
+if [ -n `readlink /dev/disk/by-id/usb* | grep $TARGET_DEVICE_NAME` ]; then
+ rootwait="rootwait"
+fi
+
if [ $grub_version -eq 0 ] ; then
bios_boot=''
bootfs=${device}${part_prefix}1
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-live.sh b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-live.sh
index 09fb47991..441b41c9d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-live.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -80,7 +80,9 @@ read_args() {
boot_live_root() {
# Watches the udev event queue, and exits if all current events are handled
udevadm settle --timeout=3 --quiet
- killall "${_UDEV_DAEMON##*/}" 2>/dev/null
+ # Kills the current udev running processes, which survived after
+ # device node creation events were handled, to avoid unexpected behavior
+ killall -9 "${_UDEV_DAEMON##*/}" 2>/dev/null
# Allow for identification of the real root even after boot
mkdir -p ${ROOT_MOUNT}/media/realroot
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/finish b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/finish
index d09bbb8be..717383eba 100755
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/finish
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/finish
@@ -8,39 +8,6 @@ finish_enabled() {
finish_run() {
if [ -n "$ROOTFS_DIR" ]; then
- if [ -n "$bootparam_rootdelay" ]; then
- debug "Sleeping for $rootdelay second(s) to wait root to settle..."
- sleep $bootparam_rootdelay
- fi
-
- if [ -n "$bootparam_root" ]; then
- debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..."
-
- if [ "`echo ${bootparam_root} | cut -c1-5`" = "UUID=" ]; then
- root_uuid=`echo $bootparam_root | cut -c6-`
- bootparam_root="/dev/disk/by-uuid/$root_uuid"
- fi
-
- if [ -e "$bootparam_root" ]; then
- flags=""
- if [ -n "$bootparam_ro" ]; then
- if [ -n "$bootparam_rootflags" ]; then
- bootparam_rootflags="$bootparam_rootflags,"
- fi
- bootparam_rootflags="${bootparam_rootflags}ro"
- fi
- if [ -n "$bootparam_rootflags" ]; then
- flags="$flags -o$bootparam_rootflags"
- fi
- if [ -n "$bootparam_rootfstype" ]; then
- flags="$flags -t$bootparam_rootfstype"
- fi
- mount $flags $bootparam_root $ROOTFS_DIR
- else
- msg "root '$bootparam_root' doesn't exist."
- fi
- fi
-
if [ ! -d $ROOTFS_DIR/dev ]; then
fatal "ERROR: There's no '/dev' on rootfs."
fi
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/init b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/init
index 204f2379a..37527a840 100755
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/init
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/init
@@ -76,8 +76,8 @@ MODULES_DIR=/init.d # place to look for modules
# make mount stop complaining about missing /etc/fstab
touch /etc/fstab
-# initialize /proc, /sys and /var/lock
-mkdir -p /proc /sys /var/lock
+# initialize /proc, /sys, /run/lock and /var/lock
+mkdir -p /proc /sys /run/lock /var/lock
mount -t proc proc /proc
mount -t sysfs sysfs /sys
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
new file mode 100644
index 000000000..14768f1cd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
@@ -0,0 +1,62 @@
+#!/bin/sh
+# Copyright (C) 2011 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+rootfs_enabled() {
+ return 0
+}
+
+rootfs_run() {
+ if [ -z "$ROOTFS_DIR" ]; then
+ return
+ fi
+ C=0
+ delay=${bootparam_rootdelay:-1}
+ timeout=${bootparam_roottimeout:-5}
+ while [ ! -d $ROOTFS_DIR/dev ]; do
+ if [ $(( $C * $delay )) -gt $timeout ]; then
+ fatal "root '$bootparam_root' doesn't exist or does not contain a /dev."
+ fi
+
+ if [ -n "$bootparam_root" ]; then
+ debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..."
+
+ if [ "`echo ${bootparam_root} | cut -c1-5`" = "UUID=" ]; then
+ root_uuid=`echo $bootparam_root | cut -c6-`
+ bootparam_root="/dev/disk/by-uuid/$root_uuid"
+ fi
+
+ if [ "`echo ${bootparam_root} | cut -c1-9`" = "PARTUUID=" ]; then
+ root_uuid=`echo $bootparam_root | cut -c10-`
+ bootparam_root="/dev/disk/by-partuuid/$root_uuid"
+ fi
+
+ if [ -e "$bootparam_root" ]; then
+ flags=""
+ if [ -n "$bootparam_ro" ] && ! echo "$bootparam_rootflags" | grep -w -q "ro"; then
+ if [ -n "$bootparam_rootflags" ]; then
+ bootparam_rootflags="$bootparam_rootflags,"
+ fi
+ bootparam_rootflags="${bootparam_rootflags}ro"
+ fi
+ if [ -n "$bootparam_rootflags" ]; then
+ flags="$flags -o$bootparam_rootflags"
+ fi
+ if [ -n "$bootparam_rootfstype" ]; then
+ flags="$flags -t$bootparam_rootfstype"
+ fi
+ mount $flags $bootparam_root $ROOTFS_DIR
+ if [ -d $ROOTFS_DIR/dev ]; then
+ break
+ else
+ # It is unlikely to change, but keep trying anyway.
+ # Perhaps we pick a different device next time.
+ umount $ROOTFS_DIR
+ fi
+ fi
+ fi
+ debug "Sleeping for $delay second(s) to wait root to settle..."
+ sleep $delay
+ C=$(( $C + 1 ))
+ done
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 0664a95c9..67a1b04d2 100644
--- a/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -8,6 +8,7 @@ PR = "r2"
inherit allarch
SRC_URI = "file://init \
+ file://rootfs \
file://finish \
file://mdev \
file://udev \
@@ -21,6 +22,7 @@ do_install() {
# base
install -m 0755 ${WORKDIR}/init ${D}/init
+ install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
# mdev
@@ -45,12 +47,21 @@ PACKAGES = "${PN}-base \
initramfs-module-mdev \
initramfs-module-udev \
initramfs-module-e2fs \
+ initramfs-module-rootfs \
initramfs-module-debug"
FILES_${PN}-base = "/init /init.d/99-finish /dev"
+# 99-finish in base depends on some other module which mounts
+# the rootfs, like 90-rootfs. To replace that default, use
+# BAD_RECOMMENDATIONS += "initramfs-module-rootfs" in your
+# initramfs recipe and install something else, or install
+# something that runs earlier (for example, a 89-my-rootfs)
+# and mounts the rootfs. Then 90-rootfs will proceed immediately.
+RRECOMMENDS_${PN}-base += "initramfs-module-rootfs"
+
SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
-RDEPENDS_initramfs-module-mdev = "${PN}-base"
+RDEPENDS_initramfs-module-mdev = "${PN}-base busybox-mdev"
FILES_initramfs-module-mdev = "/init.d/01-mdev"
SUMMARY_initramfs-module-udev = "initramfs support for udev"
@@ -61,6 +72,10 @@ SUMMARY_initramfs-module-e2fs = "initramfs support for ext4/ext3/ext2 filesystem
RDEPENDS_initramfs-module-e2fs = "${PN}-base"
FILES_initramfs-module-e2fs = "/init.d/10-e2fs"
+SUMMARY_initramfs-module-rootfs = "initramfs support for locating and mounting the root partition"
+RDEPENDS_initramfs-module-rootfs = "${PN}-base"
+FILES_initramfs-module-rootfs = "/init.d/90-rootfs"
+
SUMMARY_initramfs-module-debug = "initramfs dynamic debug support"
RDEPENDS_initramfs-module-debug = "${PN}-base"
FILES_initramfs-module-debug = "/init.d/00-debug"
diff --git a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
index dfee2afaa..02f0351fc 100755
--- a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
@@ -69,7 +69,7 @@ fi
# before fsck, since fsck can be quite memory-hungry.
#
test "$VERBOSE" != no && echo "Activating swap"
-swapon -a 2> /dev/null
+[ -x /sbin/swapon ] && swapon -a
#
# Check the root filesystem.
diff --git a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
index a97b0681e..2b9eba64c 100644..100755
--- a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
@@ -8,8 +8,8 @@
### END INIT INFO
if [ -f /var/log/dmesg ]; then
- if [ -f /usr/sbin/logrotate ]; then
- logrotate -f /etc/logrotate-dmesg.conf
+ if LOGPATH=$(which logrotate); then
+ $LOGPATH -f /etc/logrotate-dmesg.conf
else
mv -f /var/log/dmesg /var/log/dmesg.old
fi
diff --git a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
index 94bae420c..c719be5d9 100755
--- a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
+++ b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
@@ -33,7 +33,7 @@ kill -USR1 1
# Execute swapon command again, in case we want to swap to
# a file on a now mounted filesystem.
#
-swapon -a 2> /dev/null
+[ -x /sbin/swapon ] && swapon -a
: exit 0
diff --git a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/umountfs b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/umountfs
index 61324c630..7fb5c58b3 100755
--- a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/umountfs
+++ b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts-1.0/umountfs
@@ -12,7 +12,7 @@
PATH=/sbin:/bin:/usr/sbin:/usr/bin
echo "Deactivating swap..."
-swapoff -a
+[ -x /sbin/swapoff ] && swapoff -a
# We leave /proc mounted.
echo "Unmounting local filesystems..."
diff --git a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts_1.0.bb
index 148491fb2..8f110b005 100644
--- a/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -138,7 +138,7 @@ do_install () {
update-rc.d -r ${D} sysfs.sh start 02 S .
update-rc.d -r ${D} populate-volatile.sh start 37 S .
update-rc.d -r ${D} read-only-rootfs-hook.sh start 29 S .
- update-rc.d -r ${D} devpts.sh start 38 S .
+ update-rc.d -r ${D} devpts.sh start 06 S .
if [ "${TARGET_ARCH}" = "arm" ]; then
update-rc.d -r ${D} alignment.sh start 06 S .
fi
diff --git a/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/run-ptest b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/run-ptest
new file mode 100644
index 000000000..7a2d205f5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+CURDIR=$(dirname `readlink -f $0`)
+make -k -C ${CURDIR}/tests check-TESTS
diff --git a/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
new file mode 100644
index 000000000..27d6f42aa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd/set-proper-path-of-resources.patch
@@ -0,0 +1,56 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+kbd is out of source built, then the value of $(srcdir) is relative path of
+${S}/tests to ${B}/tests. Macro DATADIR is defined with $(srcdir) and replaced
+in .c files by compiler, and string @DATADIR@ is replaced with $(srdir) by rule
+"%: %.in" in Makefile.
+
+But kbd-ptest puts test cases and resource files in same directory, then some
+ptest cases fail to find resources.
+
+Replace DATADIR and @DATADIR@ with current directory(dot) to make test cases
+run as expected.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 1976333..b36aef3 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -1,7 +1,7 @@
+ AM_CPPFLAGS = \
+ -I$(srcdir)/../src/libkeymap \
+ -I$(builddir)/../src/libkeymap \
+- -DDATADIR=\"$(srcdir)\" -DBUILDDIR=\"$(builddir)\"
++ -DDATADIR=\".\" -DBUILDDIR=\"$(builddir)\"
+
+ AM_CFLAGS = $(CHECK_CFLAGS)
+ LDADD = $(top_builddir)/src/libkeymap/libkeymap.la $(CHECK_LIBS)
+diff --git a/tests/alt-is-meta.in b/tests/alt-is-meta.in
+index ddd5ed8..772fb51 100755
+--- a/tests/alt-is-meta.in
++++ b/tests/alt-is-meta.in
+@@ -7,8 +7,8 @@ cd "$cwd"
+ rc=0
+ temp="$(mktemp "@BUILDDIR@/temp.XXXXXXXXX")"
+
+-./libkeymap-showmaps "@DATADIR@"/alt-is-meta.map > "$temp" || rc=$?
+-cmp -s "@DATADIR@//alt-is-meta.output" "$temp" || rc=$?
++./libkeymap-showmaps ./alt-is-meta.map > "$temp" || rc=$?
++cmp -s "./alt-is-meta.output" "$temp" || rc=$?
+
+ if [ "$rc" != 0 ]; then
+ printf 'failed\n'
+diff --git a/tests/dumpkeys-fulltable.in b/tests/dumpkeys-fulltable.in
+index 7c856e5..14d92c1 100755
+--- a/tests/dumpkeys-fulltable.in
++++ b/tests/dumpkeys-fulltable.in
+@@ -5,7 +5,7 @@ cwd="$(readlink -ev "${0%/*}")"
+ cd "$cwd"
+
+ BUILDDIR="@BUILDDIR@"
+-DATADIR="@DATADIR@"
++DATADIR="."
+
+ check_keymap() {
+ local kmap temp rc
diff --git a/import-layers/yocto-poky/meta/recipes-core/kbd/kbd_2.0.3.bb b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd_2.0.3.bb
index 858dc0566..54d16835f 100644
--- a/import-layers/yocto-poky/meta/recipes-core/kbd/kbd_2.0.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/kbd/kbd_2.0.3.bb
@@ -11,6 +11,8 @@ RPROVIDES_${PN} = "console-tools"
RCONFLICTS_${PN} = "console-tools"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
+ file://run-ptest \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'file://set-proper-path-of-resources.patch', '', d)} \
"
SRC_URI[md5sum] = "231b46e7142eb41ea3ae06d2ded3c208"
@@ -19,6 +21,21 @@ SRC_URI[sha256sum] = "7a899de1c0eb75f3aea737095a736f2375e1cbfbe693fc14a3fe0bfb46
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
PACKAGECONFIG[pam] = "--enable-vlock, --disable-vlock, libpam,"
+do_compile_ptest() {
+ oe_runmake -C ${B}/tests dumpkeys-fulltable alt-is-meta
+}
+
+do_install_ptest() {
+ install -D ${B}/tests/Makefile ${D}${PTEST_PATH}/tests/Makefile
+ sed -i -e '/Makefile:/,/^$/d' -e '/%: %.in/,/^$/d' \
+ -e '/libkeymap_.*_SOURCES =/d' -e '/$(EXEEXT):/,/^$/d' ${D}${PTEST_PATH}/tests/Makefile
+
+ find ${B}/tests -executable -exec install {} ${D}${PTEST_PATH}/tests \;
+ find ${S}/tests \( -name \*.map -o -name \*.bin -o -name \*.output \) -exec install {} ${D}${PTEST_PATH}/tests \;
+
+ install -D -m 755 ${S}/config/test-driver ${D}${PTEST_PATH}/config/test-driver
+}
+
PACKAGES += "${PN}-consolefonts ${PN}-keymaps ${PN}-unimaps ${PN}-consoletrans"
FILES_${PN}-consolefonts = "${datadir}/consolefonts"
@@ -26,10 +43,11 @@ FILES_${PN}-consoletrans = "${datadir}/consoletrans"
FILES_${PN}-keymaps = "${datadir}/keymaps"
FILES_${PN}-unimaps = "${datadir}/unimaps"
+RDEPENDS_${PN}-ptest = "make"
+
inherit update-alternatives
ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt"
ALTERNATIVE_PRIORITY = "100"
BBCLASSEXTEND = "native"
-PARALLEL_MAKEINST = ""
diff --git a/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2/configure.ac-fix-cross-compiling-warning.patch b/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2/configure.ac-fix-cross-compiling-warning.patch
deleted file mode 100644
index 2f8079b05..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2/configure.ac-fix-cross-compiling-warning.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-configure.ac: fix cross compiling warning
-
-There is a warning while cross compiling which triggered a
-failure by do_qa_configure
-...
-|configure:12652: checking for gzread in -lz
-|configure:12677: mips-poky-linux-gcc -meb -mabi=32 -mhard-float
- -L/lib conftest.c -lz >&5
-|ld: warning: library search path "/lib" is unsafe for cross-compilation
-...
-
-While do the lib checking, do not add '-L${Z_DIR}/lib' to LDFLAGS could fix it.
-
-Upstream-Status: Inappropriate [oe specific]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9a90600..0bac8a4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -391,8 +391,6 @@ if test "$with_zlib" = "no"; then
- echo "Disabling compression support"
- else
- AC_CHECK_HEADERS(zlib.h,
-- [SAVE_LDFLAGS="${LDFLAGS}"
-- LDFLAGS="-L${Z_DIR}/lib"
- AC_CHECK_LIB(z, gzread,[
- AC_DEFINE([HAVE_LIBZ], [1], [Have compression library])
- WITH_ZLIB=1
-@@ -406,8 +404,7 @@ else
- esac]
- else
- Z_LIBS="-lz"
-- fi])
-- LDFLAGS="${SAVE_LDFLAGS}"])
-+ fi]))
- fi
-
- AC_SUBST(Z_CFLAGS)
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.3.bb b/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.3.bb
deleted file mode 100644
index 9c9873fbd..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.3.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "XML C Parser Library and Toolkit"
-DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat."
-HOMEPAGE = "http://www.xmlsoft.org/"
-BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
- file://hash.c;beginline=6;endline=15;md5=96f7296605eae807670fb08947829969 \
- file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
- file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
-
-DEPENDS = "zlib"
-
-SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
- http://www.w3.org/XML/Test/xmlts20080827.tar.gz;name=testtar \
- file://libxml-64bit.patch \
- file://ansidecl.patch \
- file://runtest.patch \
- file://run-ptest \
- file://python-sitepackages-dir.patch \
- file://libxml-m4-use-pkgconfig.patch \
- file://configure.ac-fix-cross-compiling-warning.patch \
- "
-
-SRC_URI[libtar.md5sum] = "daece17e045f1c107610e137ab50c179"
-SRC_URI[libtar.sha256sum] = "4de9e31f46b44d34871c22f54bfc54398ef124d6f7cafb1f4a5958fbcd3ba12d"
-SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
-SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
-
-BINCONFIG = "${bindir}/xml2-config"
-
-inherit autotools pkgconfig binconfig-disabled pythonnative ptest
-
-RDEPENDS_${PN}-ptest += "python-core"
-
-RDEPENDS_${PN}-python += "python-core"
-
-RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-ebcdic-us glibc-gconv-ibm1141"
-
-export PYTHON_SITE_PACKAGES="${PYTHON_SITEPACKAGES_DIR}"
-
-PACKAGECONFIG ??= "python"
-PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python"
-
-# WARNING: zlib is require for RPM use
-EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --without-docbook --with-c14n --without-lzma --with-fexceptions"
-EXTRA_OECONF_class-native = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib"
-EXTRA_OECONF_class-nativesdk = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib"
-EXTRA_OECONF_linuxstdbase = "--with-debug --with-legacy --with-docbook --with-c14n --without-lzma --with-zlib"
-
-# required for python binding
-export HOST_SYS
-export BUILD_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-python populate_packages_prepend () {
- # autonamer would call this libxml2-2, but we don't want that
- if d.getVar('DEBIAN_NAMES', True):
- d.setVar('PKG_libxml2', '${MLPREFIX}libxml2')
-}
-
-PACKAGES += "${PN}-utils ${PN}-python"
-
-FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
-FILES_${PN}-dev += "${libdir}/xml2Conf.sh ${libdir}/cmake/*"
-FILES_${PN}-utils += "${bindir}/*"
-FILES_${PN}-python += "${PYTHON_SITEPACKAGES_DIR}"
-
-do_install_ptest () {
- cp -r ${WORKDIR}/xmlconf ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.4.bb b/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.4.bb
new file mode 100644
index 000000000..59874bec2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/libxml/libxml2_2.9.4.bb
@@ -0,0 +1,75 @@
+SUMMARY = "XML C Parser Library and Toolkit"
+DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat."
+HOMEPAGE = "http://www.xmlsoft.org/"
+BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
+ file://hash.c;beginline=6;endline=15;md5=96f7296605eae807670fb08947829969 \
+ file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
+ file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
+
+DEPENDS = "zlib virtual/libiconv"
+
+SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz;name=libtar \
+ http://www.w3.org/XML/Test/xmlts20080827.tar.gz;name=testtar \
+ file://libxml-64bit.patch \
+ file://ansidecl.patch \
+ file://runtest.patch \
+ file://run-ptest \
+ file://python-sitepackages-dir.patch \
+ file://libxml-m4-use-pkgconfig.patch \
+ "
+
+SRC_URI[libtar.md5sum] = "ae249165c173b1ff386ee8ad676815f5"
+SRC_URI[libtar.sha256sum] = "ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c"
+SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
+SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
+
+BINCONFIG = "${bindir}/xml2-config"
+
+inherit autotools pkgconfig binconfig-disabled pythonnative ptest
+
+RDEPENDS_${PN}-ptest += "python-core"
+
+RDEPENDS_${PN}-python += "python-core"
+
+RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-ebcdic-us glibc-gconv-ibm1141"
+
+export PYTHON_SITE_PACKAGES="${PYTHON_SITEPACKAGES_DIR}"
+
+PACKAGECONFIG ??= "python \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
+"
+PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+# WARNING: zlib is require for RPM use
+EXTRA_OECONF = "--without-debug --without-legacy --with-catalog --without-docbook --with-c14n --without-lzma --with-fexceptions"
+EXTRA_OECONF_class-native = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib"
+EXTRA_OECONF_class-nativesdk = "--without-legacy --without-docbook --with-c14n --without-lzma --with-zlib"
+EXTRA_OECONF_linuxstdbase = "--with-debug --with-legacy --with-docbook --with-c14n --without-lzma --with-zlib"
+
+python populate_packages_prepend () {
+ # autonamer would call this libxml2-2, but we don't want that
+ if d.getVar('DEBIAN_NAMES', True):
+ d.setVar('PKG_libxml2', '${MLPREFIX}libxml2')
+}
+
+PACKAGES += "${PN}-utils ${PN}-python"
+
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES_${PN}-dev += "${libdir}/xml2Conf.sh ${libdir}/cmake/*"
+FILES_${PN}-utils += "${bindir}/*"
+FILES_${PN}-python += "${PYTHON_SITEPACKAGES_DIR}"
+
+do_configure_prepend () {
+ # executables take longer to package: these should not be executable
+ find ${WORKDIR}/xmlconf/ -type f -exec chmod -x {} \+
+}
+
+do_install_ptest () {
+ cp -r ${WORKDIR}/xmlconf ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb b/import-layers/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb
index e9578cac0..5808c95d8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/buildtools-tarball.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "SDK type target for building a standalone tarball containing python, chrpath, make, git and tar. The \
+DESCRIPTION = "SDK type target for building a standalone tarball containing python3, chrpath, make, git and tar. The \
tarball can be used to run bitbake builds on systems which don't meet the usual version requirements."
SUMMARY = "Standalone tarball for running builds on systems with inadequate software"
LICENSE = "MIT"
@@ -8,11 +8,10 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
TOOLCHAIN_TARGET_TASK ?= ""
TOOLCHAIN_HOST_TASK ?= "\
- nativesdk-python-core \
- nativesdk-python-modules \
- nativesdk-python-misc \
- nativesdk-python-git \
- nativesdk-python-pexpect \
+ nativesdk-python3-core \
+ nativesdk-python3-modules \
+ nativesdk-python3-misc \
+ nativesdk-python3-git \
nativesdk-ncurses-terminfo-base \
nativesdk-chrpath \
nativesdk-tar \
@@ -24,11 +23,18 @@ TOOLCHAIN_HOST_TASK ?= "\
nativesdk-wget \
nativesdk-ca-certificates \
nativesdk-texinfo \
+ nativesdk-locale-base-en-us \
"
+MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
+PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}"
+PACKAGE_ARCHS = ""
+TARGET_ARCH = "none"
+TARGET_OS = "none"
+
SDK_PACKAGE_ARCHS += "buildtools-dummy-${SDKPKGSUFFIX}"
-TOOLCHAIN_OUTPUTNAME ?= "${SDK_NAME}-buildtools-nativesdk-standalone-${DISTRO_VERSION}"
+TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-buildtools-nativesdk-standalone-${DISTRO_VERSION}"
SDK_TITLE = "Build tools"
@@ -38,7 +44,17 @@ EXCLUDE_FROM_WORLD = "1"
inherit meta
inherit populate_sdk
-inherit toolchain-scripts
+inherit toolchain-scripts-base
+inherit nopackages
+
+deltask install
+deltask package
+deltask packagedata
+deltask populate_sysroot
+
+do_populate_sdk[stamp-extra-info] = "${PACKAGE_ARCH}"
+
+REAL_MULTIMACH_TARGET_SYS = "none"
create_sdk_files_append () {
rm -f ${SDK_OUTPUT}/${SDKPATH}/site-config-*
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/meta-environment.bb b/import-layers/yocto-poky/meta/recipes-core/meta/meta-environment.bb
index 49d45f6ec..d9e045f04 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/meta-environment.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/meta-environment.bb
@@ -12,6 +12,8 @@ REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
inherit toolchain-scripts
TOOLCHAIN_NEED_CONFIGSITE_CACHE_append = " zlib"
+# Need to expand here before cross-candian changes HOST_ARCH -> SDK_ARCH
+TOOLCHAIN_CONFIGSITE_NOCACHE := "${TOOLCHAIN_CONFIGSITE_NOCACHE}"
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb b/import-layers/yocto-poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb
new file mode 100644
index 000000000..2bd9a5b32
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/meta-extsdk-toolchain.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Extensible SDK toolchain meta-recipe"
+DESCRIPTION = "Meta-recipe for ensuring the build directory contains all appropriate toolchain packages for using an IDE"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native"
+
+do_populate_sysroot[deptask] = "do_populate_sysroot"
+
+# NOTE: There is logic specific to this recipe in setscene_depvalid()
+# within sstate.bbclass, so if you copy or rename this and expect the same
+# functionality you'll need to modify that as well.
+
+LOCKED_SIGS_INDIR = "${D}/locked-sigs"
+
+addtask do_locked_sigs after do_populate_sysroot
+SSTATETASKS += "do_locked_sigs"
+do_locked_sigs[sstate-inputdirs] = "${LOCKED_SIGS_INDIR}"
+do_locked_sigs[sstate-outputdirs] = "${STAGING_DIR_HOST}/locked-sigs"
+
+python do_locked_sigs() {
+ import oe.copy_buildsystem
+ outdir = os.path.join(d.getVar('LOCKED_SIGS_INDIR', True))
+ bb.utils.mkdirhier(outdir)
+ sigfile = os.path.join(outdir, 'locked-sigs-extsdk-toolchain.inc')
+ oe.copy_buildsystem.generate_locked_sigs(sigfile, d)
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/meta-ide-support.bb b/import-layers/yocto-poky/meta/recipes-core/meta/meta-ide-support.bb
index 86c57cda2..c4ddcfcb4 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/meta-ide-support.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/meta-ide-support.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
DEPENDS = "virtual/libc gdb-cross-${TARGET_ARCH} qemu-native qemu-helper-native unfs3-native"
PR = "r3"
-inherit meta toolchain-scripts
+inherit meta toolchain-scripts nopackages
do_populate_ide_support () {
toolchain_create_tree_env_script
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb b/import-layers/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb
index 3c5db5001..81c8647fa 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/meta-world-pkgdata.bb
@@ -1,5 +1,6 @@
SUMMARY = "Pulls in pkgdata for world"
LICENSE = "MIT"
+
INHIBIT_DEFAULT_DEPS = "1"
addtask do_allpackagedata before do_build
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/signing-keys.bb b/import-layers/yocto-poky/meta/recipes-core/meta/signing-keys.bb
index e843301b2..37790373a 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/signing-keys.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/signing-keys.bb
@@ -1,7 +1,7 @@
# Copyright (C) 2015 Intel Corporation
# Released under the MIT license (see COPYING.MIT for the terms)
-DESCRIPTION = "Make public keys of the signing keys available"
+SUMMARY = "Makes public keys of the signing keys available"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
@@ -12,6 +12,8 @@ inherit allarch deploy
EXCLUDE_FROM_WORLD = "1"
INHIBIT_DEFAULT_DEPS = "1"
+SYSROOT_DIRS += "${sysconfdir}/pki"
+
PACKAGES =+ "${PN}-ipk ${PN}-rpm ${PN}-packagefeed"
FILES_${PN}-rpm = "${sysconfdir}/pki/rpm-gpg"
@@ -54,10 +56,6 @@ do_install () {
fi
}
-sysroot_stage_all_append () {
- sysroot_stage_dir ${D}${sysconfdir}/pki ${SYSROOT_DESTDIR}${sysconfdir}/pki
-}
-
do_deploy () {
if [ -f "${B}/rpm-key" ]; then
install -D -m 0644 "${B}/rpm-key" "${DEPLOYDIR}/RPM-GPG-KEY-${DISTRO_VERSION}"
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/testexport-tarball.bb b/import-layers/yocto-poky/meta/recipes-core/meta/testexport-tarball.bb
new file mode 100644
index 000000000..d9861c4da
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/testexport-tarball.bb
@@ -0,0 +1,58 @@
+DESCRIPTION = "SDK type target for standalone tarball containing packages defined by TEST_EXPORT_TOOLS. The \
+ tarball can be used to run missing programs on testing systems which don't have such tools.\
+ This recipe is almost the same as buildtools-tarball"
+SUMMARY = "Standalone tarball for test systems with missing software"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
+ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+TEST_EXPORT_SDK_PACKAGES ??= ""
+
+TOOLCHAIN_TARGET_TASK ?= ""
+
+TOOLCHAIN_HOST_TASK ?= "${TEST_EXPORT_SDK_PACKAGES}"
+
+SDK_PACKAGE_ARCHS += "tesexport-tools-${SDKPKGSUFFIX}"
+
+TOOLCHAIN_OUTPUTNAME ?= "${TEST_EXPORT_SDK_NAME}"
+
+SDK_TITLE = "Testexport tools"
+
+RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
+
+EXCLUDE_FROM_WORLD = "1"
+
+inherit meta
+inherit populate_sdk
+inherit toolchain-scripts
+
+create_sdk_files_append () {
+ rm -f ${SDK_OUTPUT}/${SDKPATH}/site-config-*
+ rm -f ${SDK_OUTPUT}/${SDKPATH}/environment-setup-*
+ rm -f ${SDK_OUTPUT}/${SDKPATH}/version-*
+
+ # Generate new (mini) sdk-environment-setup file
+ script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}}
+ touch $script
+ echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script
+ # In order for the self-extraction script to correctly extract and set up things,
+ # we need a 'OECORE_NATIVE_SYSROOT=xxx' line in environment setup script.
+ # However, testexport-tarball is inherently a tool set instead of a fully functional SDK,
+ # so instead of exporting the variable, we use a comment here.
+ echo '#OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
+ toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${SDK_SYS}
+
+ echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
+
+ if [ "${SDKMACHINE}" = "i686" ]; then
+ echo 'export NO32LIBS="0"' >>$script
+ echo 'echo "$BB_ENV_EXTRAWHITE" | grep -q "NO32LIBS"' >>$script
+ echo '[ $? != 0 ] && export BB_ENV_EXTRAWHITE="NO32LIBS $BB_ENV_EXTRAWHITE"' >>$script
+ fi
+}
+
+# testexport-tarball doesn't need config site
+TOOLCHAIN_NEED_CONFIGSITE_CACHE = ""
+
+# The recipe doesn't need any default deps
+INHIBIT_DEFAULT_DEPS = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb b/import-layers/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb
index a983e42c6..e203a8322 100644
--- a/import-layers/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/meta/uninative-tarball.bb
@@ -16,6 +16,12 @@ TOOLCHAIN_HOST_TASK = "\
INHIBIT_DEFAULT_DEPS = "1"
+MULTIMACH_TARGET_SYS = "${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
+PACKAGE_ARCH = "${SDK_ARCH}_${SDK_OS}"
+PACKAGE_ARCHS = ""
+TARGET_ARCH = "none"
+TARGET_OS = "none"
+
TOOLCHAIN_OUTPUTNAME ?= "${SDK_ARCH}-nativesdk-libc"
RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
@@ -24,14 +30,19 @@ EXCLUDE_FROM_WORLD = "1"
inherit meta
inherit populate_sdk
+inherit nopackages
deltask install
deltask package
deltask packagedata
+deltask populate_sysroot
+
+do_populate_sdk[stamp-extra-info] = "${PACKAGE_ARCH}"
SDK_DEPENDS += "patchelf-native"
SDK_PACKAGING_FUNC = ""
+REAL_MULTIMACH_TARGET_SYS = "none"
fakeroot create_sdk_files() {
cp ${COREBASE}/scripts/relocate_sdk.py ${SDK_OUTPUT}/${SDKPATH}/
@@ -44,13 +55,12 @@ fakeroot create_sdk_files() {
fakeroot tar_sdk() {
- mkdir -p ${SDK_DEPLOY}
cd ${SDK_OUTPUT}/${SDKPATH}
DEST="./${SDK_ARCH}-${SDK_OS}"
mv sysroots/${SDK_SYS} $DEST
rm sysroots -rf
- patchelf --set-interpreter ${@''.join('a' for n in xrange(1024))} $DEST/usr/bin/patchelf
+ patchelf --set-interpreter ${@''.join('a' for n in range(1024))} $DEST/usr/bin/patchelf
mv $DEST/usr/bin/patchelf $DEST/usr/bin/patchelf-uninative
- tar ${SDKTAROPTS} -c -j --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
+ tar ${SDKTAROPTS} -c -j --file=${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
}
diff --git a/import-layers/yocto-poky/meta/recipes-core/musl/musl.inc b/import-layers/yocto-poky/meta/recipes-core/musl/musl.inc
index d27867f75..7ed931c6d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/musl/musl.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/musl/musl.inc
@@ -9,7 +9,7 @@ standards-conformance and safety."
HOMEPAGE = "http://www.musl-libc.org/"
LICENSE = "MIT"
SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=082411391b4d1ace0d30f4c84317cc05"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=7928b7ad32ceda04932478e330e52f7f"
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
@@ -17,10 +17,13 @@ TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
INHIBIT_DEFAULT_DEPS = "1"
STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
FILES_SOLIBSDEV = ""
FILES_${PN} += "${libdir}/lib*${SOLIBSDEV}"
INSANE_SKIP_${PN} = "dev-so"
+# Doesn't compile in MIPS16e mode due to use of hand-written
+# assembly
+MIPS_INSTRUCTION_SET = "mips"
diff --git a/import-layers/yocto-poky/meta/recipes-core/musl/musl_git.bb b/import-layers/yocto-poky/meta/recipes-core/musl/musl_git.bb
index d4f98191f..c07101b74 100644
--- a/import-layers/yocto-poky/meta/recipes-core/musl/musl_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/musl/musl_git.bb
@@ -3,9 +3,9 @@
require musl.inc
-SRCREV = "5978eb703ce0e64dd778a88c1ffffb76fe5e2202"
+SRCREV = "39494a273eaa6b714e0fa0c59ce7a1f5fbc80a1e"
-PV = "1.1.14+git${SRCPV}"
+PV = "1.1.15+git${SRCPV}"
# mirror is at git://github.com/kraj/musl.git
@@ -26,8 +26,6 @@ DEPENDS = "virtual/${TARGET_PREFIX}binutils \
export CROSS_COMPILE="${TARGET_PREFIX}"
-EXTRA_OEMAKE = ""
-
LDFLAGS += "-Wl,-soname,libc.so"
CONFIGUREOPTS = " \
@@ -52,6 +50,10 @@ do_install() {
install -d ${D}${bindir}
ln -s ../../${libdir}/libc.so ${D}${bindir}/ldd
+ for l in crypt dl m pthread resolv rt util xnet
+ do
+ ln -s libc.so ${D}${libdir}/lib$l.so
+ done
}
RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev"
diff --git a/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160213.bb b/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160213.bb
deleted file mode 100644
index 0d56481a5..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160213.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require ncurses.inc
-
-SRC_URI += "file://tic-hang.patch \
- file://config.cache \
-"
-# commit id corresponds to the revision in package version
-SRCREV = "a25949ff653ac5ae7a204381a3ebfd800feeaa01"
-S = "${WORKDIR}/git"
-EXTRA_OECONF += "--with-abi-version=5"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
diff --git a/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160625.bb b/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160625.bb
new file mode 100644
index 000000000..6514613fe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/ncurses/ncurses_6.0+20160625.bb
@@ -0,0 +1,10 @@
+require ncurses.inc
+
+SRC_URI += "file://tic-hang.patch \
+ file://config.cache \
+"
+# commit id corresponds to the revision in package version
+SRCREV = "63dd558cb8e888d6fab5f00bbf7842736a2356b9"
+S = "${WORKDIR}/git"
+EXTRA_OECONF += "--with-abi-version=5"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
diff --git a/import-layers/yocto-poky/meta/recipes-core/netbase/netbase_5.3.bb b/import-layers/yocto-poky/meta/recipes-core/netbase/netbase_5.3.bb
index ccd89ff84..543596a3d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/netbase/netbase_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/netbase/netbase_5.3.bb
@@ -6,13 +6,14 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
PE = "1"
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netbase/netbase_${PV}.tar.xz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/n/${BPN}/${BPN}_${PV}.tar.xz \
file://netbase-add-rpcbind-as-an-alias-to-sunrpc.patch \
file://hosts"
SRC_URI[md5sum] = "2637a27fd3de02a278d2b5be7e6558c1"
SRC_URI[sha256sum] = "81f6c69795044d62b8ad959cf9daf049d0545fd466c52860ad3f933b1e97b88b"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netbase/"
do_install () {
install -d ${D}/${mandir}/man8 ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/hosts ${D}${sysconfdir}/hosts
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
index 0c6a530be..2c2abed33 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
@@ -24,6 +24,7 @@ RDEPENDS_${PN} = "\
nativesdk-makedevs \
nativesdk-smartpm \
nativesdk-postinst-intercept \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'nativesdk-wayland', '', d)} \
"
RDEPENDS_${PN}_darwin = "\
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-base.bb
index 9e40b2852..2e94fdefb 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -1,5 +1,4 @@
SUMMARY = "Merge machine and distro options to create a basic machine task/package"
-LICENSE = "MIT"
PR = "r83"
#
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
index bac93b89b..04bc0f2b6 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb
@@ -4,7 +4,6 @@
SUMMARY = "Minimal boot requirements"
DESCRIPTION = "The minimal set of packages required to boot the system"
-LICENSE = "MIT"
PR = "r17"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
index 74ed24751..78cc65db8 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-buildessential.bb
@@ -4,7 +4,6 @@
#
SUMMARY = "Essential build dependencies"
-LICENSE = "MIT"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb
index e7b013d40..c45463fc6 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-eclipse-debug.bb
@@ -1,5 +1,4 @@
SUMMARY = "Remote debugging tools for Eclipse integration"
-LICENSE = "MIT"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
index 1882d3ad1..b345e314a 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-nfs.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "NFS package groups"
-LICENSE = "MIT"
PR = "r2"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
index bee1665b5..aceba78de 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-sdk.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Software development tools"
-LICENSE = "MIT"
PR = "r9"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -30,6 +29,7 @@ RDEPENDS_packagegroup-core-sdk = "\
SANITIZERS = "libasan-dev libubsan-dev"
SANITIZERS_aarch64 = ""
SANITIZERS_mips = ""
+SANITIZERS_mipsel = ""
SANITIZERS_mips64 = ""
SANITIZERS_mips64n32 = ""
SANITIZERS_nios2 = ""
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
index e99946f0a..5ec3f6c92 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-dropbear.bb
@@ -1,5 +1,4 @@
SUMMARY = "Dropbear SSH client/server"
-LICENSE = "MIT"
PR = "r1"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
index 32d20e621..703f956ae 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-ssh-openssh.bb
@@ -1,5 +1,4 @@
SUMMARY = "OpenSSH SSH client/server"
-LICENSE = "MIT"
PR = "r1"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
index 6997f396b..274e11a8b 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
@@ -1,6 +1,5 @@
SUMMARY = "Target packages for the standalone SDK"
PR = "r8"
-LICENSE = "MIT"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
index 82347b975..9fc2b0ef4 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-debug.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Debugging tools"
-LICENSE = "MIT"
inherit packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index ff2b5779a..dd9844504 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Profiling tools"
-LICENSE = "MIT"
PR = "r3"
@@ -12,8 +11,9 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
PROFILE_TOOLS_X = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'sysprof', '', d)}"
-# sysprof doesn't support aarch64
+# sysprof doesn't support aarch64 and nios2
PROFILE_TOOLS_X_aarch64 = ""
+PROFILE_TOOLS_X_nios2 = ""
PROFILE_TOOLS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-analyze', '', d)}"
RRECOMMENDS_${PN} = "\
@@ -37,6 +37,7 @@ SYSTEMTAP = "systemtap"
SYSTEMTAP_libc-uclibc = ""
SYSTEMTAP_libc-musl = ""
SYSTEMTAP_mips = ""
+SYSTEMTAP_mipsel = ""
SYSTEMTAP_mips64 = ""
SYSTEMTAP_mips64n32 = ""
SYSTEMTAP_nios2 = ""
@@ -59,16 +60,19 @@ LTTNGMODULES = "lttng-modules"
BABELTRACE = "babeltrace"
-# valgrind does not work on mips
+# valgrind does not work on the following configurations/architectures
VALGRIND = "valgrind"
VALGRIND_libc-uclibc = ""
VALGRIND_libc-musl = ""
VALGRIND_mips = ""
+VALGRIND_mipsel = ""
VALGRIND_mips64 = ""
VALGRIND_mips64n32 = ""
VALGRIND_nios2 = ""
-VALGRIND_arm = ""
+VALGRIND_armv4 = ""
+VALGRIND_armv5 = ""
+VALGRIND_armv6 = ""
VALGRIND_aarch64 = ""
RDEPENDS_${PN} = "\
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index e8d585e0b..317097854 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Testing tools/applications"
-LICENSE = "MIT"
PR = "r2"
@@ -18,7 +17,6 @@ KEXECTOOLS_nios2 ?= ""
X11GLTOOLS = "\
mesa-demos \
- piglit \
"
3GTOOLS = "\
@@ -27,7 +25,7 @@ X11GLTOOLS = "\
X11TOOLS = "\
fstests \
- gst-player-bin \
+ gst-player \
x11perf \
xrestop \
xwininfo \
@@ -37,8 +35,6 @@ X11TOOLS = "\
RDEPENDS_${PN} = "\
blktool \
- tslib-calibrate \
- tslib-tests \
lrzsz \
${KEXECTOOLS} \
alsa-utils-amixer \
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
index 180dd96f7..d551147b5 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb
@@ -1,6 +1,5 @@
SUMMARY = "Host SDK package for cross canadian toolchain"
PN = "packagegroup-cross-canadian-${MACHINE}"
-LICENSE = "MIT"
inherit cross-canadian packagegroup
diff --git a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index 225204df1..73430b86c 100644
--- a/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -5,7 +5,6 @@
SUMMARY = "Self-hosting"
DESCRIPTION = "Packages required to run the build system"
PR = "r13"
-LICENSE = "MIT"
inherit packagegroup distro_features_check
# rdepends on libx11-dev
@@ -29,9 +28,6 @@ RDEPENDS_packagegroup-self-hosted = "\
"
RDEPENDS_packagegroup-self-hosted-host-tools = "\
- connman \
- connman-plugin-ethernet \
- dhcp-client \
e2fsprogs \
e2fsprogs-e2fsck \
e2fsprogs-mke2fs \
@@ -125,8 +121,6 @@ RDEPENDS_packagegroup-self-hosted-extended = "\
groff \
gzip \
settings-daemon \
- hicolor-icon-theme \
- sato-icon-theme \
libaio \
libusb1 \
libxml2 \
@@ -153,11 +147,11 @@ RDEPENDS_packagegroup-self-hosted-extended = "\
perl-modules \
perl-pod \
python \
- python-compiler \
- python-git \
- python-misc \
python-modules \
- python-rpm \
+ python-git \
+ python3 \
+ python3-modules \
+ python3-git \
quota \
readline \
rpm \
@@ -191,10 +185,10 @@ RDEPENDS_packagegroup-self-hosted-graphics = "\
libsdl \
libsdl-dev \
libx11-dev \
- gtk-theme-clearlooks \
+ adwaita-icon-theme \
xdg-utils \
epiphany \
- leafpad \
+ l3afpad \
pcmanfm \
vte \
"
diff --git a/import-layers/yocto-poky/meta/recipes-core/readline/readline.inc b/import-layers/yocto-poky/meta/recipes-core/readline/readline.inc
index 35df8b4bb..1a0a1558d 100644
--- a/import-layers/yocto-poky/meta/recipes-core/readline/readline.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/readline/readline.inc
@@ -32,6 +32,8 @@ do_install_append () {
oe_libinstall -so -C shlib libreadline ${D}${libdir}
rmdir ${D}${bindir}
+ rm -rf ${D}${datadir}/${BPN}/*.c
+ rmdir ${D}${datadir}/${BPN} || true
install -m 0755 -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd-compat-units.bb b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd-compat-units.bb
index 0b8ff09b2..421fc06df 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -9,10 +9,12 @@ DEPENDS = "systemd-systemctl-native"
S = "${WORKDIR}"
-inherit allarch
+inherit distro_features_check
ALLOW_EMPTY_${PN} = "1"
+REQUIRED_DISTRO_FEATURES = "systemd"
+
SYSTEMD_DISABLED_SYSV_SERVICES = " \
busybox-udhcpc \
hwclock \
@@ -23,21 +25,24 @@ SYSTEMD_DISABLED_SYSV_SERVICES = " \
"
pkg_postinst_${PN} () {
- cd $D${sysconfdir}/init.d
- echo "Disabling the following sysv scripts: "
+ cd $D${sysconfdir}/init.d || exit 0
- OPTS=""
+ echo "Disabling the following sysv scripts: "
if [ -n "$D" ]; then
OPTS="--root=$D"
+ else
+ OPTS=""
fi
for i in ${SYSTEMD_DISABLED_SYSV_SERVICES} ; do
- if [ \( -e $i -o $i.sh \) -a ! \( -e $D${sysconfdir}/systemd/system/$i.service -o -e $D${systemd_unitdir}/system/$i.service \) ] ; then
- echo -n "$i: " ; systemctl ${OPTS} mask $i.service
+ if [ -e $i -o -e $i.sh ] && ! [ -e $D${sysconfdir}/systemd/system/$i.service -o -e $D${systemd_unitdir}/system/$i.service ] ; then
+ echo -n "$i: "
+ systemctl $OPTS mask $i.service
fi
- done ; echo
+ done
+ echo
}
-RDPEPENDS_${PN} = "systemd"
+RDEPENDS_${PN} = "systemd"
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd.inc b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd.inc
new file mode 100644
index 000000000..f800f42e9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd.inc
@@ -0,0 +1,25 @@
+SUMMARY = "A System and service manager"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
+
+DESCRIPTION = "systemd is a system and service manager for Linux, compatible with \
+SysV and LSB init scripts. systemd provides aggressive parallelization \
+capabilities, uses socket and D-Bus activation for starting services, \
+offers on-demand starting of daemons, keeps track of processes using \
+Linux cgroups, supports snapshotting and restoring of the system \
+state, maintains mount and automount points and implements an \
+elaborate transactional dependency-based service control logic. It can \
+work as a drop-in replacement for sysvinit."
+
+LICENSE = "GPLv2 & LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
+ file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
+
+SRCREV = "3a74d4fc90cb322a4784a3515bef7118c8f8c5ba"
+
+SRC_URI = "git://github.com/systemd/systemd.git;protocol=git"
+
+PV = "230+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-uclibc = " -lrt -lssp_nonshared -lssp "
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch
index f183261c8..e62d580f1 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0003-define-exp10-if-missing.patch
@@ -1,6 +1,3 @@
-From 699893a05edac5194f9670529bacfaeb67252edb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Dec 2015 00:42:49 +0000
Subject: [PATCH 03/36] define exp10 if missing
Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch
@@ -11,23 +8,25 @@ Upstream-Status: Pending
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/basic/missing.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/basic/missing.h b/src/basic/missing.h
-index f3d3236..ee7e7ea 100644
+index 651e414..fafa233 100644
--- a/src/basic/missing.h
+++ b/src/basic/missing.h
-@@ -1169,3 +1169,8 @@ static inline key_serial_t request_key(const char *type, const char *description
- #endif
+@@ -1013,4 +1013,9 @@ typedef int32_t key_serial_t;
#endif
-+
+
+#ifdef __UCLIBC__
+/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
+#define exp10(x) (exp((x) * log(10)))
+#endif /* __UCLIBC__ */
++
+ #include "missing_syscall.h"
--
-1.8.3.1
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0014-Make-root-s-home-directory-configurable.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0014-Make-root-s-home-directory-configurable.patch
index 4a576aa7d..2eea0ff9a 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0014-Make-root-s-home-directory-configurable.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0014-Make-root-s-home-directory-configurable.patch
@@ -1,6 +1,3 @@
-From 786883cfa13e21f060ee6da6cabb94845f4349a0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Dec 2015 05:18:20 +0000
Subject: [PATCH 14/36] Make root's home directory configurable
OpenEmbedded has a configurable home directory for root. Allow
@@ -14,6 +11,7 @@ https://github.com/systemd/systemd/issues/541
Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
Makefile.am | 2 ++
configure.ac | 7 +++++++
@@ -26,10 +24,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
8 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/Makefile.am b/Makefile.am
-index b3f3343..a99e8eb 100644
+index 305099a..88c1250 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -202,6 +202,7 @@ AM_CPPFLAGS = \
+@@ -206,6 +206,7 @@ AM_CPPFLAGS = \
-DLIBDIR=\"$(libdir)\" \
-DROOTLIBDIR=\"$(rootlibdir)\" \
-DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
@@ -37,7 +35,7 @@ index b3f3343..a99e8eb 100644
-DTEST_DIR=\"$(abs_top_srcdir)/test\" \
-I $(top_srcdir)/src \
-I $(top_builddir)/src/basic \
-@@ -5713,6 +5714,7 @@ EXTRA_DIST += \
+@@ -5863,6 +5864,7 @@ EXTRA_DIST += \
substitutions = \
'|rootlibexecdir=$(rootlibexecdir)|' \
'|rootbindir=$(rootbindir)|' \
@@ -46,10 +44,10 @@ index b3f3343..a99e8eb 100644
'|SYSTEMCTL=$(rootbindir)/systemctl|' \
'|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
diff --git a/configure.ac b/configure.ac
-index c5ab9d0..16c83bb 100644
+index 329861a..01764f5 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1470,6 +1470,11 @@ AC_ARG_WITH([rootlibdir],
+@@ -1478,6 +1478,11 @@ AC_ARG_WITH([rootlibdir],
[with_rootlibdir=${libdir}])
AX_NORMALIZE_PATH([with_rootlibdir])
@@ -61,7 +59,7 @@ index c5ab9d0..16c83bb 100644
AC_ARG_WITH([pamlibdir],
AS_HELP_STRING([--with-pamlibdir=DIR], [Directory for PAM modules]),
[],
-@@ -1553,6 +1558,7 @@ AC_SUBST([pamlibdir], [$with_pamlibdir])
+@@ -1562,6 +1567,7 @@ AC_SUBST([pamlibdir], [$with_pamlibdir])
AC_SUBST([pamconfdir], [$with_pamconfdir])
AC_SUBST([rootprefix], [$with_rootprefix])
AC_SUBST([rootlibdir], [$with_rootlibdir])
@@ -69,19 +67,19 @@ index c5ab9d0..16c83bb 100644
AC_CONFIG_FILES([
Makefile
-@@ -1643,6 +1649,7 @@ AC_MSG_RESULT([
- includedir: ${includedir}
- lib dir: ${libdir}
- rootlib dir: ${with_rootlibdir}
-+ root home dir: ${with_roothomedir}
- SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
- SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
- Build Python: ${PYTHON}
+@@ -1653,6 +1659,7 @@ AC_MSG_RESULT([
+ includedir: ${includedir}
+ lib dir: ${libdir}
+ rootlib dir: ${with_rootlibdir}
++ root home dir: ${with_roothomedir}
+ SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
+ SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
+ Build Python: ${PYTHON}
diff --git a/src/basic/user-util.c b/src/basic/user-util.c
-index 19155bc..55672b3 100644
+index f65ca3e..da1101a 100644
--- a/src/basic/user-util.c
+++ b/src/basic/user-util.c
-@@ -122,7 +122,7 @@ int get_user_creds(
+@@ -123,7 +123,7 @@ int get_user_creds(
*gid = 0;
if (home)
@@ -90,7 +88,7 @@ index 19155bc..55672b3 100644
if (shell)
*shell = "/bin/sh";
-@@ -353,7 +353,7 @@ int get_home_dir(char **_h) {
+@@ -354,7 +354,7 @@ int get_home_dir(char **_h) {
/* Hardcode home directory for root to avoid NSS */
u = getuid();
if (u == 0) {
@@ -100,10 +98,10 @@ index 19155bc..55672b3 100644
return -ENOMEM;
diff --git a/src/core/namespace.c b/src/core/namespace.c
-index b573f00..0f70b14 100644
+index 203d122..45c0d11 100644
--- a/src/core/namespace.c
+++ b/src/core/namespace.c
-@@ -409,7 +409,7 @@ int setup_namespace(
+@@ -415,7 +415,7 @@ int setup_namespace(
home_dir = strjoina("-", home_dir);
run_user_dir = prefix_roota(root_directory, "/run/user");
run_user_dir = strjoina("-", run_user_dir);
@@ -113,24 +111,24 @@ index b573f00..0f70b14 100644
r = append_mounts(&m, STRV_MAKE(home_dir, run_user_dir, root_dir),
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 65e65ec..12f0ee8 100644
+index 8ec0584..51df00b 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
-@@ -2564,7 +2564,7 @@ static int inner_child(
+@@ -2739,7 +2739,7 @@ static int inner_child(
if (envp[n_env])
- n_env ++;
+ n_env++;
- if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: "/root") < 0) ||
+ if ((asprintf((char**)(envp + n_env++), "HOME=%s", home ? home: ROOTHOMEDIR) < 0) ||
(asprintf((char**)(envp + n_env++), "USER=%s", arg_user ? arg_user : "root") < 0) ||
(asprintf((char**)(envp + n_env++), "LOGNAME=%s", arg_user ? arg_user : "root") < 0))
return log_oom();
-@@ -2647,7 +2647,7 @@ static int inner_child(
- #endif /* HAVE_EXECVPE */
+@@ -2816,7 +2816,7 @@ static int inner_child(
else {
if (!arg_chdir)
-- chdir(home ?: "/root");
-+ chdir(home ?: ROOTHOMEDIR);
+ /* If we cannot change the directory, we'll end up in /, that is expected. */
+- (void) chdir(home ?: "/root");
++ (void) chdir(home ?: ROOTHOMEDIR);
execle("/bin/bash", "-bash", NULL, env_use);
execle("/bin/sh", "-sh", NULL, env_use);
@@ -150,10 +148,10 @@ index a345ec2..3caae7d 100644
ExecStopPost=-@SYSTEMCTL@ poweroff
Type=idle
diff --git a/units/emergency.service.in b/units/emergency.service.in
-index fb390ea..5623a57 100644
+index 0de16f2..4826062 100644
--- a/units/emergency.service.in
+++ b/units/emergency.service.in
-@@ -14,8 +14,8 @@ Conflicts=rescue.service
+@@ -15,8 +15,8 @@ Conflicts=syslog.socket
Before=shutdown.target
[Service]
@@ -180,5 +178,5 @@ index 92553f6..590ae17 100644
ExecStartPre=-/bin/echo -e 'Welcome to rescue mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.'
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
--
-1.8.3.1
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0015-systemd-user-avoid-using-system-auth.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0015-systemd-user-avoid-using-system-auth.patch
index a35123733..6e6f34489 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0015-systemd-user-avoid-using-system-auth.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0015-systemd-user-avoid-using-system-auth.patch
@@ -1,6 +1,3 @@
-From f70a1a9605cd3adac450c49a5a69da6e9acda517 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 20 Feb 2015 05:26:25 +0000
Subject: [PATCH 15/36] systemd-user: avoid using system-auth
In OE, we don't provide system-auth, instead, we use common-* files.
@@ -10,15 +7,16 @@ Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
src/login/systemd-user.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/login/systemd-user.m4 b/src/login/systemd-user.m4
-index 7933508..16b73d2 100644
+index f188a8e..862d8d7 100644
--- a/src/login/systemd-user.m4
+++ b/src/login/systemd-user.m4
-@@ -2,10 +2,10 @@
+@@ -2,11 +2,11 @@
#
# Used by systemd --user instances.
@@ -29,8 +27,9 @@ index 7933508..16b73d2 100644
session required pam_selinux.so close
session required pam_selinux.so nottys open
)m4_dnl
+ session required pam_loginuid.so
-session include system-auth
+session include common-session
--
-1.8.3.1
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch
index 8e6289d4a..642625f32 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch
@@ -1,6 +1,3 @@
-From 9a3a4e16b36e762291cd1574ec71d7954f8b5363 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Dec 2015 05:33:32 +0000
Subject: [PATCH 17/36] Revert "udev: remove userspace firmware loading
support"
@@ -13,21 +10,21 @@ Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Makefile.am | 12 +++
- README | 6 +-
+ README | 4 +-
TODO | 1 +
configure.ac | 22 ++++++
src/udev/udev-builtin-firmware.c | 154 +++++++++++++++++++++++++++++++++++++++
src/udev/udev-builtin.c | 3 +
src/udev/udev.h | 6 ++
src/udev/udevd.c | 13 ++++
- 8 files changed, 214 insertions(+), 3 deletions(-)
+ 8 files changed, 213 insertions(+), 2 deletions(-)
create mode 100644 src/udev/udev-builtin-firmware.c
diff --git a/Makefile.am b/Makefile.am
-index a99e8eb..b5c6ba7 100644
+index 305099a..e774976 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -3573,6 +3573,18 @@ libudev_core_la_LIBADD = \
+@@ -3706,6 +3706,18 @@ libudev_core_la_LIBADD = \
$(BLKID_LIBS) \
$(KMOD_LIBS)
@@ -47,17 +44,10 @@ index a99e8eb..b5c6ba7 100644
libudev_core_la_SOURCES += \
src/udev/udev-builtin-kmod.c
diff --git a/README b/README
-index 41fb07a..10230ac 100644
+index ca8993c..87f3297 100644
--- a/README
+++ b/README
-@@ -50,14 +50,14 @@ REQUIREMENTS:
- CONFIG_PROC_FS
- CONFIG_FHANDLE (libudev, mount and bind mount handling)
-
-- udev will fail to work with the legacy sysfs layout:
-+ Udev will fail to work with the legacy layout:
- CONFIG_SYSFS_DEPRECATED=n
-
+@@ -56,8 +56,8 @@ REQUIREMENTS:
Legacy hotplug slows down the system and confuses udev:
CONFIG_UEVENT_HELPER_PATH=""
@@ -69,11 +59,11 @@ index 41fb07a..10230ac 100644
Some udev rules and virtualization detection relies on it:
diff --git a/TODO b/TODO
-index 92cc8cc..25f6849 100644
+index fac9ccf..2645582 100644
--- a/TODO
+++ b/TODO
-@@ -628,6 +628,7 @@ Features:
- * rename "userspace" to "core-os"
+@@ -642,6 +642,7 @@ Features:
+ * initialize the hostname from the fs label of /, if /etc/hostname does not exist?
* udev:
+ - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n)
@@ -81,10 +71,10 @@ index 92cc8cc..25f6849 100644
- kill scsi_id
- add trigger --subsystem-match=usb/usb_device device
diff --git a/configure.ac b/configure.ac
-index 16c83bb..36d20b5 100644
+index 329861a..af85405 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1353,6 +1353,25 @@ AC_ARG_ENABLE(hwdb, [AC_HELP_STRING([--disable-hwdb], [disable hardware database
+@@ -1361,6 +1361,25 @@ AC_ARG_ENABLE(hwdb, [AC_HELP_STRING([--disable-hwdb], [disable hardware database
AM_CONDITIONAL(ENABLE_HWDB, [test x$enable_hwdb = xyes])
# ------------------------------------------------------------------------------
@@ -103,23 +93,23 @@ index 16c83bb..36d20b5 100644
+done
+IFS=$OLD_IFS
+AC_SUBST(FIRMWARE_PATH)
-+AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ])
++AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is availabe]) ])
+AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"])
+
+# ------------------------------------------------------------------------------
have_manpages=no
AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-manpages], [disable manpages]))
AC_PATH_PROG([XSLTPROC], [xsltproc])
-@@ -1653,6 +1672,9 @@ AC_MSG_RESULT([
- SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
- SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
- Build Python: ${PYTHON}
-+ Installation Python: ${PYTHON_BINARY}
-+ sphinx binary: ${SPHINX_BUILD}
-+ firmware path: ${FIRMWARE_PATH}
- PAM modules dir: ${with_pamlibdir}
- PAM configuration dir: ${with_pamconfdir}
- D-Bus policy dir: ${with_dbuspolicydir}
+@@ -1656,6 +1675,9 @@ AC_MSG_RESULT([
+ SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
+ SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
+ Build Python: ${PYTHON}
++ Installation Python: ${PYTHON_BINARY}
++ sphinx binary: ${SPHINX_BUILD}
++ firmware path: ${FIRMWARE_PATH}
+ PAM modules dir: ${with_pamlibdir}
+ PAM configuration dir: ${with_pamconfdir}
+ D-Bus policy dir: ${with_dbuspolicydir}
diff --git a/src/udev/udev-builtin-firmware.c b/src/udev/udev-builtin-firmware.c
new file mode 100644
index 0000000..bd8c2fb
@@ -295,10 +285,10 @@ index e6b36f1..cd9947e 100644
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
[UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
diff --git a/src/udev/udev.h b/src/udev/udev.h
-index 1f9c812..fa35a88 100644
+index 8433e8d..d32366d 100644
--- a/src/udev/udev.h
+++ b/src/udev/udev.h
-@@ -147,6 +147,9 @@ enum udev_builtin_cmd {
+@@ -148,6 +148,9 @@ enum udev_builtin_cmd {
UDEV_BUILTIN_BLKID,
#endif
UDEV_BUILTIN_BTRFS,
@@ -308,7 +298,7 @@ index 1f9c812..fa35a88 100644
UDEV_BUILTIN_HWDB,
UDEV_BUILTIN_INPUT_ID,
UDEV_BUILTIN_KEYBOARD,
-@@ -175,6 +178,9 @@ struct udev_builtin {
+@@ -176,6 +179,9 @@ struct udev_builtin {
extern const struct udev_builtin udev_builtin_blkid;
#endif
extern const struct udev_builtin udev_builtin_btrfs;
@@ -319,7 +309,7 @@ index 1f9c812..fa35a88 100644
extern const struct udev_builtin udev_builtin_input_id;
extern const struct udev_builtin udev_builtin_keyboard;
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
-index bb92f16..84024ac 100644
+index e9dd2f4..0abc28e 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -125,6 +125,9 @@ struct event {
@@ -332,7 +322,7 @@ index bb92f16..84024ac 100644
};
static inline struct event *node_to_event(struct udev_list_node *node) {
-@@ -613,6 +616,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
+@@ -614,6 +617,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
event->devnum = udev_device_get_devnum(dev);
event->is_block = streq("block", udev_device_get_subsystem(dev));
event->ifindex = udev_device_get_ifindex(dev);
@@ -343,7 +333,7 @@ index bb92f16..84024ac 100644
log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev),
udev_device_get_action(dev), udev_device_get_subsystem(dev));
-@@ -698,6 +705,12 @@ static bool is_devpath_busy(Manager *manager, struct event *event) {
+@@ -699,6 +706,12 @@ static bool is_devpath_busy(Manager *manager, struct event *event) {
return true;
}
@@ -357,5 +347,5 @@ index bb92f16..84024ac 100644
if (event->devpath[common] == '/') {
event->delaying_seqnum = loop_event->seqnum;
--
-1.8.3.1
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0018-make-test-dir-configurable.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0018-make-test-dir-configurable.patch
index 5f3f2e8a5..5d13e4af9 100644
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0018-make-test-dir-configurable.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0018-make-test-dir-configurable.patch
@@ -1,6 +1,3 @@
-From 569cd3cf9806a02226d26c4104dbe44262f93d33 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Fri, 22 Jan 2016 16:44:11 +0800
Subject: [PATCH 18/36] make test dir configurable
Upstream-Status: Pending
@@ -9,16 +6,17 @@ test maybe be run on target in cross-compile environment, and test dir
is not the compilation dir, so make it configurable
Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
---
Makefile.am | 2 +-
configure.ac | 7 +++++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index b5c6ba7..d3cd961 100644
+index a94636a..dbd3386 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -203,7 +203,7 @@ AM_CPPFLAGS = \
+@@ -207,7 +207,7 @@ AM_CPPFLAGS = \
-DROOTLIBDIR=\"$(rootlibdir)\" \
-DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \
-DROOTHOMEDIR=\"$(roothomedir)\" \
@@ -28,10 +26,10 @@ index b5c6ba7..d3cd961 100644
-I $(top_builddir)/src/basic \
-I $(top_srcdir)/src/basic \
diff --git a/configure.ac b/configure.ac
-index 36d20b5..d96dc5a 100644
+index 45aae8a..c53fae2 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1494,6 +1494,11 @@ AC_ARG_WITH([roothomedir],
+@@ -1518,6 +1518,11 @@ AC_ARG_WITH([roothomedir],
[],
[with_roothomedir=/root])
@@ -43,7 +41,7 @@ index 36d20b5..d96dc5a 100644
AC_ARG_WITH([pamlibdir],
AS_HELP_STRING([--with-pamlibdir=DIR], [Directory for PAM modules]),
[],
-@@ -1578,6 +1583,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir])
+@@ -1603,6 +1608,7 @@ AC_SUBST([pamconfdir], [$with_pamconfdir])
AC_SUBST([rootprefix], [$with_rootprefix])
AC_SUBST([rootlibdir], [$with_rootlibdir])
AC_SUBST([roothomedir], [$with_roothomedir])
@@ -51,14 +49,14 @@ index 36d20b5..d96dc5a 100644
AC_CONFIG_FILES([
Makefile
-@@ -1669,6 +1675,7 @@ AC_MSG_RESULT([
- lib dir: ${libdir}
- rootlib dir: ${with_rootlibdir}
- root home dir: ${with_roothomedir}
-+ test dir: ${with_testdir}
- SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
- SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
- Build Python: ${PYTHON}
+@@ -1695,6 +1701,7 @@ AC_MSG_RESULT([
+ lib dir: ${libdir}
+ rootlib dir: ${with_rootlibdir}
+ root home dir: ${with_roothomedir}
++ test dir: ${with_testdir}
+ SysV init scripts: ${SYSTEM_SYSVINIT_PATH}
+ SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH}
+ Build Python: ${PYTHON}
--
-1.8.3.1
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch
deleted file mode 100644
index 1ae3d66c7..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/0023-build-sys-fix-build-with-libgrcypt-disabled.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From b68f10bf1f7519e012da5e35fab3a57da7dc46d4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
-Date: Sun, 27 Mar 2016 17:33:54 -0400
-Subject: [PATCH] build-sys: fix build with libgrcypt disabled
-
-- Move gcrypt.h include inside grcrypt-util.h.
-- Allow gcrypt-util.[ch] to be compiled even without gcrypt.
-This allows the logic in files using gcrypt to be simplified.
-
-- Fix compilation of systemd-resolve without gcrypt.
-systemd-resolved already supported that.
-
-Upstream-Status: Backport [ https://github.com/systemd/systemd/pull/2905 ]
-
-Fixes [YOCTO #9219]
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- Makefile.am | 8 ++++----
- src/resolve/resolve-tool.c | 3 +--
- src/shared/gcrypt-util.c | 4 +++-
- src/shared/gcrypt-util.h | 14 ++++++++++++++
- 4 files changed, 22 insertions(+), 7 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 2b72a53..95eaa9a 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -4262,7 +4262,9 @@ libsystemd_journal_internal_la_SOURCES = \
- src/journal/mmap-cache.h \
- src/journal/compress.c \
- src/journal/audit-type.h \
-- src/journal/audit-type.c
-+ src/journal/audit-type.c \
-+ src/shared/gcrypt-util.h \
-+ src/shared/gcrypt-util.c
-
- nodist_libsystemd_journal_internal_la_SOURCES = \
- src/journal/audit_type-to-name.h
-@@ -4294,9 +4296,7 @@ libsystemd_journal_internal_la_SOURCES += \
- src/journal/journal-authenticate.c \
- src/journal/journal-authenticate.h \
- src/journal/fsprg.c \
-- src/journal/fsprg.h \
-- src/shared/gcrypt-util.c \
-- src/shared/gcrypt-util.h
-+ src/journal/fsprg.h
-
- libsystemd_journal_internal_la_LIBADD += \
- $(GCRYPT_LIBS)
-diff --git a/src/resolve/resolve-tool.c b/src/resolve/resolve-tool.c
-index 009cc73..14ee01c 100644
---- a/src/resolve/resolve-tool.c
-+++ b/src/resolve/resolve-tool.c
-@@ -17,7 +17,6 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
--#include <gcrypt.h>
- #include <getopt.h>
- #include <net/if.h>
-
-@@ -863,7 +862,7 @@ static int resolve_openpgp(sd_bus *bus, const char *address) {
- }
- domain++;
-
-- r = string_hashsum(address, domain - 1 - address, GCRY_MD_SHA224, &hashed);
-+ r = string_hashsum_sha224(address, domain - 1 - address, &hashed);
- if (r < 0)
- return log_error_errno(r, "Hashing failed: %m");
-
-diff --git a/src/shared/gcrypt-util.c b/src/shared/gcrypt-util.c
-index 4ff9452..39b544b 100644
---- a/src/shared/gcrypt-util.c
-+++ b/src/shared/gcrypt-util.c
-@@ -19,10 +19,11 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#ifdef HAVE_GCRYPT
- #include <gcrypt.h>
-
--#include "hexdecoct.h"
- #include "gcrypt-util.h"
-+#include "hexdecoct.h"
-
- void initialize_libgcrypt(bool secmem) {
- const char *p;
-@@ -67,3 +68,4 @@ int string_hashsum(const char *s, size_t len, int md_algorithm, char **out) {
- *out = enc;
- return 0;
- }
-+#endif
-diff --git a/src/shared/gcrypt-util.h b/src/shared/gcrypt-util.h
-index c7652c2..cf33b3c 100644
---- a/src/shared/gcrypt-util.h
-+++ b/src/shared/gcrypt-util.h
-@@ -19,7 +19,21 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#include <errno.h>
- #include <stdbool.h>
-+#include <stddef.h>
-+
-+#ifdef HAVE_GCRYPT
-+#include <gcrypt.h>
-
- void initialize_libgcrypt(bool secmem);
- int string_hashsum(const char *s, size_t len, int md_algorithm, char **out);
-+#endif
-+
-+static inline int string_hashsum_sha224(const char *s, size_t len, char **out) {
-+#ifdef HAVE_GCRYPT
-+ return string_hashsum(s, len, GCRY_MD_SHA224, out);
-+#else
-+ return -EOPNOTSUPP;
-+#endif
-+}
---
-2.4.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/udev-re-enable-mount-propagation-for-udevd.patch b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/udev-re-enable-mount-propagation-for-udevd.patch
new file mode 100644
index 000000000..23e22d40e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd/udev-re-enable-mount-propagation-for-udevd.patch
@@ -0,0 +1,31 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Sat, 27 Sep 2014 04:19:24 +0200
+Subject: udev: re-enable mount propagation for udevd
+
+Upstream-Status: Backport [http://http.debian.net/debian/pool/main/s/systemd/systemd_215-17+deb8u4.debian.tar.xz]
+
+laptop-mode-tools remounts file systems from within a udev rule to apply
+certain mount options. With MountFlags=slave, those mounts then become private
+to the systemd-udevd namespace and are no longer accessible from outside the
+namespace.
+While the root cause is the broken behaviour of laptop-mode-tools, with mount
+propagation turned off, this can result in a read-only root file system.
+Therefore revert the relevant parts from commit
+c2c13f2df42e0691aecabe3979ea81cd7faa35c7 to re-enable mount propagation for
+udevd.
+
+Once affected packages have been fixed, this patch should be dropped
+again.
+
+Closes: #762018
+diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in
+index e7216d6..1e9a600 100644
+--- a/units/systemd-udevd.service.in
++++ b/units/systemd-udevd.service.in
+@@ -21,6 +21,5 @@ Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket
+ Restart=always
+ RestartSec=0
+ ExecStart=@rootlibexecdir@/systemd-udevd
+-MountFlags=slave
+ KillMode=mixed
+ WatchdogSec=1min
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_229.bb b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_229.bb
deleted file mode 100644
index c23c749e2..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_229.bb
+++ /dev/null
@@ -1,579 +0,0 @@
-SUMMARY = "A System and service manager"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/systemd"
-
-DESCRIPTION = "systemd is a system and service manager for Linux, compatible with \
-SysV and LSB init scripts. systemd provides aggressive parallelization \
-capabilities, uses socket and D-Bus activation for starting services, \
-offers on-demand starting of daemons, keeps track of processes using \
-Linux cgroups, supports snapshotting and restoring of the system \
-state, maintains mount and automount points and implements an \
-elaborate transactional dependency-based service control logic. It can \
-work as a drop-in replacement for sysvinit."
-
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
- file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
-
-PROVIDES = "udev"
-
-PE = "1"
-
-DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline libcap libcgroup qemu-native util-linux"
-
-SECTION = "base/shell"
-
-inherit useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest gettext bash-completion
-
-SRCREV = "714c62b46379abb7558c544665522aca91691e10"
-
-PV = "229+git${SRCPV}"
-
-SRC_URI = "git://github.com/systemd/systemd.git;protocol=git \
- file://touchscreen.rules \
- file://00-create-volatile.conf \
- file://init \
- file://run-ptest \
- file://0003-define-exp10-if-missing.patch \
- file://0004-Use-getenv-when-secure-versions-are-not-available.patch \
- file://0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
- file://0006-configure-Check-for-additional-features-that-uclibc-.patch \
- file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
- file://0008-nspawn-Use-execvpe-only-when-libc-supports-it.patch \
- file://0009-util-bypass-unimplemented-_SC_PHYS_PAGES-system-conf.patch \
- file://0010-implment-systemd-sysv-install-for-OE.patch \
- file://0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch \
- file://0012-rules-whitelist-hd-devices.patch \
- file://0013-sysv-generator-add-support-for-executing-scripts-und.patch \
- file://0014-Make-root-s-home-directory-configurable.patch \
- file://0015-systemd-user-avoid-using-system-auth.patch \
- file://0016-Revert-rules-remove-firmware-loading-rules.patch \
- file://0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
- file://0018-make-test-dir-configurable.patch \
- file://0019-remove-duplicate-include-uchar.h.patch \
- file://0020-check-for-uchar.h-in-configure.patch \
- file://0021-include-missing.h-for-getting-secure_getenv-definiti.patch \
- file://0022-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
- file://0023-build-sys-fix-build-with-libgrcypt-disabled.patch \
-"
-SRC_URI_append_libc-uclibc = "\
- file://0002-units-Prefer-getty-to-agetty-in-console-setup-system.patch \
-"
-SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
-
-S = "${WORKDIR}/git"
-
-LDFLAGS_append_libc-uclibc = " -lrt -lssp_nonshared -lssp "
-
-GTKDOC_DOCDIR = "${S}/docs/"
-
-PACKAGECONFIG ??= "xz \
- ldconfig \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
- ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'efi', '', d)} \
- binfmt \
- randomseed \
- machined \
- backlight \
- quotacheck \
- bootchart \
- hostnamed \
- ${@bb.utils.contains('TCLIBC', 'glibc', 'myhostname sysusers', '', d)} \
- hibernate \
- timedated \
- timesyncd \
- localed \
- kdbus \
- ima \
- smack \
- logind \
- firstboot \
- utmp \
- polkit \
-"
-PACKAGECONFIG_remove_libc-musl = "selinux"
-PACKAGECONFIG_remove_libc-musl = "smack"
-
-# Use the upstream systemd serial-getty@.service and rely on
-# systemd-getty-generator instead of using the OE-core specific
-# systemd-serialgetty.bb - not enabled by default.
-PACKAGECONFIG[serial-getty-generator] = ""
-
-PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl"
-# Sign the journal for anti-tampering
-PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
-PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup"
-PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd"
-PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils"
-PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"
-PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd"
-PACKAGECONFIG[machined] = "--enable-machined,--disable-machined"
-PACKAGECONFIG[backlight] = "--enable-backlight,--disable-backlight"
-PACKAGECONFIG[quotacheck] = "--enable-quotacheck,--disable-quotacheck"
-PACKAGECONFIG[bootchart] = "--enable-bootchart,--disable-bootchart"
-PACKAGECONFIG[hostnamed] = "--enable-hostnamed,--disable-hostnamed"
-PACKAGECONFIG[myhostname] = "--enable-myhostname,--disable-myhostname"
-PACKAGECONFIG[rfkill] = "--enable-rfkill,--disable-rfkill"
-PACKAGECONFIG[hibernate] = "--enable-hibernate,--disable-hibernate"
-PACKAGECONFIG[timedated] = "--enable-timedated,--disable-timedated"
-PACKAGECONFIG[timesyncd] = "--enable-timesyncd,--disable-timesyncd"
-PACKAGECONFIG[localed] = "--enable-localed,--disable-localed"
-PACKAGECONFIG[efi] = "--enable-efi,--disable-efi"
-PACKAGECONFIG[kdbus] = "--enable-kdbus,--disable-kdbus"
-PACKAGECONFIG[ima] = "--enable-ima,--disable-ima"
-PACKAGECONFIG[smack] = "--enable-smack,--disable-smack"
-# libseccomp is found in meta-security
-PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
-PACKAGECONFIG[logind] = "--enable-logind,--disable-logind"
-PACKAGECONFIG[sysusers] = "--enable-sysusers,--disable-sysusers"
-PACKAGECONFIG[firstboot] = "--enable-firstboot,--disable-firstboot"
-PACKAGECONFIG[randomseed] = "--enable-randomseed,--disable-randomseed"
-PACKAGECONFIG[binfmt] = "--enable-binfmt,--disable-binfmt"
-PACKAGECONFIG[utmp] = "--enable-utmp,--disable-utmp"
-PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit"
-# importd requires curl/xz/zlib/bzip2/gcrypt
-PACKAGECONFIG[importd] = "--enable-importd,--disable-importd"
-PACKAGECONFIG[libidn] = "--enable-libidn,--disable-libidn,libidn"
-PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit"
-PACKAGECONFIG[manpages] = "--enable-manpages,--disable-manpages,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
-# Verify keymaps on locale change
-PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon"
-# Update NAT firewall rules
-PACKAGECONFIG[iptc] = "--enable-libiptc,--disable-libiptc,iptables"
-PACKAGECONFIG[ldconfig] = "--enable-ldconfig,--disable-ldconfig,,"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
-PACKAGECONFIG[valgrind] = "ac_cv_header_valgrind_memcheck_h=yes ac_cv_header_valgrind_valgrind_h=yes ,ac_cv_header_valgrind_memcheck_h=no ac_cv_header_valgrind_valgrind_h=no ,valgrind"
-PACKAGECONFIG[qrencode] = "--enable-qrencode,--disable-qrencode,qrencode"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-PACKAGECONFIG[coredump] = "--enable-coredump,--disable-coredump"
-PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
-PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
-PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
-PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_KILL=${base_bindir}/kill"
-CACHED_CONFIGUREVARS += "ac_cv_path_KMOD=${base_bindir}/kmod"
-CACHED_CONFIGUREVARS += "ac_cv_path_QUOTACHECK=${sbindir}/quotacheck"
-CACHED_CONFIGUREVARS += "ac_cv_path_QUOTAON=${sbindir}/quotaon"
-CACHED_CONFIGUREVARS += "ac_cv_path_SULOGIN=${base_sbindir}/sulogin"
-
-# Helper variables to clarify locations. This mirrors the logic in systemd's
-# build system.
-rootprefix ?= "${base_prefix}"
-rootlibdir ?= "${base_libdir}"
-rootlibexecdir = "${rootprefix}/lib"
-
-CACHED_CONFIGUREVARS_class-target = "\
- ac_cv_path_MOUNT_PATH=${base_bindir}/mount \
- ac_cv_path_UMOUNT_PATH=${base_bindir}/umount \
- ac_cv_path_KMOD=${base_bindir}/kmod \
- ac_cv_path_KILL=${base_bindir}/kill \
- ac_cv_path_SULOGIN=${base_sbindir}/sulogin \
- ac_cv_path_KEXEC=${sbindir}/kexec \
- ac_cv_path_QUOTACHECK=${sbindir}/quotacheck \
- ac_cv_path_QUOTAON=${sbindir}/quotaon \
- "
-
-EXTRA_OECONF = " --with-rootprefix=${rootprefix} \
- --with-rootlibdir=${rootlibdir} \
- --with-roothomedir=${ROOT_HOME} \
- --enable-split-usr \
- --without-python \
- --with-sysvrcnd-path=${sysconfdir} \
- --with-firmware-path=/lib/firmware \
- --with-testdir=${PTEST_PATH} \
- "
-# per the systemd README, define VALGRIND=1 to run under valgrind
-CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}"
-
-# disable problematic GCC 5.2 optimizations [YOCTO #8291]
-FULL_OPTIMIZATION_append_arm = " -fno-schedule-insns -fno-schedule-insns2"
-
-do_configure_prepend() {
- export NM="${HOST_PREFIX}gcc-nm"
- export AR="${HOST_PREFIX}gcc-ar"
- export RANLIB="${HOST_PREFIX}gcc-ranlib"
- export KMOD="${base_bindir}/kmod"
- if [ -d ${S}/units.pre_sed ] ; then
- cp -r ${S}/units.pre_sed ${S}/units
- else
- cp -r ${S}/units ${S}/units.pre_sed
- fi
- sed -i -e 's:-DTEST_DIR=\\\".*\\\":-DTEST_DIR=\\\"${PTEST_PATH}/tests/test\\\":' ${S}/Makefile.am
- sed -i -e 's:-DCATALOG_DIR=\\\".*\\\":-DCATALOG_DIR=\\\"${PTEST_PATH}/tests/catalog\\\":' ${S}/Makefile.am
-}
-
-do_install() {
- autotools_do_install
- install -d ${D}/${base_sbindir}
- if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
- # Provided by a separate recipe
- rm ${D}${systemd_unitdir}/system/serial-getty* -f
- fi
-
- # Provide support for initramfs
- [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
- [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
-
- # Create machine-id
- # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
- touch ${D}${sysconfdir}/machine-id
-
-
- install -d ${D}${sysconfdir}/udev/rules.d/
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
-
- install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
-
- if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
- sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
- fi
-
- chown root:systemd-journal ${D}/${localstatedir}/log/journal
-
- # Delete journal README, as log can be symlinked inside volatile.
- rm -f ${D}/${localstatedir}/log/README
-
- install -d ${D}${systemd_unitdir}/system/graphical.target.wants
- install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
- install -d ${D}${systemd_unitdir}/system/poweroff.target.wants
- install -d ${D}${systemd_unitdir}/system/reboot.target.wants
- install -d ${D}${systemd_unitdir}/system/rescue.target.wants
-
- # Create symlinks for systemd-update-utmp-runlevel.service
- if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then
- ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service
- ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service
- ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service
- ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service
- ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
- fi
-
- # Enable journal to forward message to syslog daemon
- sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
- # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
- # for existence else it fails
- if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
- ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
- fi
- if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
- # if resolved is disabled, it won't handle the link of resolv.conf, so
- # set it up ourselves
- ln -s ../run/resolv.conf ${D}${sysconfdir}/resolv.conf
- echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
- echo 'f /run/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
- fi
- install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
-}
-
-do_install_ptest () {
- # install data files needed for tests
- install -d ${D}${PTEST_PATH}/tests/test
- cp -rfL ${S}/test/* ${D}${PTEST_PATH}/tests/test
- sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/tests/test/udev-test.pl
-
- install -d ${D}${PTEST_PATH}/tests/catalog
- install ${S}/catalog/* ${D}${PTEST_PATH}/tests/catalog/
-
- install -D ${S}/build-aux/test-driver ${D}${PTEST_PATH}/tests/build-aux/test-driver
-
- install -d ${D}${PTEST_PATH}/tests/rules
- install ${B}/rules/* ${D}${PTEST_PATH}/tests/rules/
-
- # This directory needs to be there for udev-test.pl to work.
- install -d ${D}${libdir}/udev/rules.d
-
- # install actual test binaries
- install -m 0755 ${B}/test-* ${D}${PTEST_PATH}/tests/
- install -m 0755 ${B}/.libs/test-* ${D}${PTEST_PATH}/tests/
-
- install ${B}/Makefile ${D}${PTEST_PATH}/tests/
-}
-
-python populate_packages_prepend (){
- systemdlibdir = d.getVar("rootlibdir", True)
- do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
-}
-PACKAGES_DYNAMIC += "^lib(udev|systemd).*"
-
-PACKAGES =+ "\
- ${PN}-gui \
- ${PN}-vconsole-setup \
- ${PN}-initramfs \
- ${PN}-analyze \
- ${PN}-kernel-install \
- ${PN}-rpm-macros \
- ${PN}-binfmt \
- ${PN}-pam \
- ${PN}-zsh-completion \
- ${PN}-xorg-xinitrc \
- ${PN}-extra-utils \
-"
-
-SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)}"
-SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '--system -d / -M --shell /bin/nologin systemd-journal-gateway;', '', d)}"
-USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}"
-GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
-
-FILES_${PN}-analyze = "${bindir}/systemd-analyze"
-
-FILES_${PN}-initramfs = "/init"
-RDEPENDS_${PN}-initramfs = "${PN}"
-
-RDEPENDS_${PN}-ptest += "gawk make perl python bash xz \
- tzdata tzdata-americas tzdata-asia \
- tzdata-europe tzdata-africa tzdata-antarctica \
- tzdata-arctic tzdata-atlantic tzdata-australia \
- tzdata-pacific tzdata-posix"
-
-FILES_${PN}-ptest += "${libdir}/udev/rules.d"
-
-FILES_${PN}-gui = "${bindir}/systemadm"
-
-FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
- ${systemd_unitdir}/system/systemd-vconsole-setup.service \
- ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
-
-RDEPENDS_${PN}-kernel-install += "bash"
-FILES_${PN}-kernel-install = "${bindir}/kernel-install \
- ${sysconfdir}/kernel/ \
- ${exec_prefix}/lib/kernel \
- "
-FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
- "
-
-FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*"
-
-FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions"
-
-FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
- ${exec_prefix}/lib/binfmt.d \
- ${rootlibexecdir}/systemd/systemd-binfmt \
- ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
- ${systemd_unitdir}/system/systemd-binfmt.service"
-RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
-
-RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
-
-FILES_${PN}-extra-utils = "\
- ${base_bindir}/systemd-escape \
- ${base_bindir}/systemd-inhibit \
- ${bindir}/systemd-detect-virt \
- ${bindir}/systemd-path \
- ${bindir}/systemd-run \
- ${bindir}/systemd-cat \
- ${bindir}/systemd-delta \
- ${bindir}/systemd-cgls \
- ${bindir}/systemd-cgtop \
- ${bindir}/systemd-stdio-bridge \
- ${base_bindir}/systemd-ask-password \
- ${base_bindir}/systemd-tty-ask-password-agent \
- ${systemd_unitdir}/system/systemd-ask-password-console.path \
- ${systemd_unitdir}/system/systemd-ask-password-console.service \
- ${systemd_unitdir}/system/systemd-ask-password-wall.path \
- ${systemd_unitdir}/system/systemd-ask-password-wall.service \
- ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \
- ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \
- ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \
- ${rootlibexecdir}/systemd/systemd-resolve-host \
- ${rootlibexecdir}/systemd/systemd-ac-power \
- ${rootlibexecdir}/systemd/systemd-activate \
- ${bindir}/systemd-nspawn \
- ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
- ${systemd_unitdir}/system/systemd-nspawn@.service \
- ${rootlibexecdir}/systemd/systemd-bus-proxyd \
- ${systemd_unitdir}/system/systemd-bus-proxyd.service \
- ${systemd_unitdir}/system/systemd-bus-proxyd.socket \
- ${rootlibexecdir}/systemd/systemd-socket-proxyd \
- ${rootlibexecdir}/systemd/systemd-reply-password \
- ${rootlibexecdir}/systemd/systemd-sleep \
- ${rootlibexecdir}/systemd/system-sleep \
- ${systemd_unitdir}/system/systemd-hibernate.service \
- ${systemd_unitdir}/system/systemd-hybrid-sleep.service \
- ${systemd_unitdir}/system/systemd-suspend.service \
- ${systemd_unitdir}/system/sleep.target \
- ${rootlibexecdir}/systemd/systemd-initctl \
- ${systemd_unitdir}/system/systemd-initctl.service \
- ${systemd_unitdir}/system/systemd-initctl.socket \
- ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \
- ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \
- ${rootlibexecdir}/systemd/systemd-cgroups-agent \
-"
-
-CONFFILES_${PN} = "${sysconfdir}/machine-id \
- ${sysconfdir}/systemd/coredump.conf \
- ${sysconfdir}/systemd/journald.conf \
- ${sysconfdir}/systemd/logind.conf \
- ${sysconfdir}/systemd/system.conf \
- ${sysconfdir}/systemd/user.conf"
-
-FILES_${PN} = " ${base_bindir}/* \
- ${datadir}/dbus-1/services \
- ${datadir}/dbus-1/system-services \
- ${datadir}/polkit-1 \
- ${datadir}/${BPN} \
- ${datadir}/factory \
- ${sysconfdir}/dbus-1/ \
- ${sysconfdir}/machine-id \
- ${sysconfdir}/modules-load.d/ \
- ${sysconfdir}/pam.d/ \
- ${sysconfdir}/sysctl.d/ \
- ${sysconfdir}/systemd/ \
- ${sysconfdir}/tmpfiles.d/ \
- ${sysconfdir}/xdg/ \
- ${sysconfdir}/init.d/README \
- ${sysconfdir}/resolv.conf \
- ${rootlibexecdir}/systemd/* \
- ${systemd_unitdir}/* \
- ${base_libdir}/security/*.so \
- ${libdir}/libnss_* \
- /cgroup \
- ${bindir}/systemd* \
- ${bindir}/busctl \
- ${bindir}/coredumpctl \
- ${bindir}/localectl \
- ${bindir}/hostnamectl \
- ${bindir}/timedatectl \
- ${bindir}/bootctl \
- ${bindir}/kernel-install \
- ${exec_prefix}/lib/tmpfiles.d/*.conf \
- ${exec_prefix}/lib/systemd \
- ${exec_prefix}/lib/modules-load.d \
- ${exec_prefix}/lib/sysctl.d \
- ${exec_prefix}/lib/sysusers.d \
- ${localstatedir} \
- ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \
- ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
- ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
- ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
- "
-
-FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
-
-RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV})"
-RDEPENDS_${PN} += "volatile-binds update-rc.d"
-
-RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)} \
- systemd-vconsole-setup \
- systemd-extra-utils \
- systemd-compat-units udev-hwdb \
- util-linux-agetty util-linux-fsck e2fsprogs-e2fsck \
- kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \
- os-release \
-"
-
-INSANE_SKIP_${PN}-doc += " libdir"
-
-PACKAGES =+ "udev udev-hwdb"
-
-RPROVIDES_udev = "hotplug"
-
-RDEPENDS_udev-hwdb += "udev"
-
-FILES_udev += "${base_sbindir}/udevd \
- ${rootlibexecdir}/systemd/systemd-udevd \
- ${rootlibexecdir}/udev/accelerometer \
- ${rootlibexecdir}/udev/ata_id \
- ${rootlibexecdir}/udev/cdrom_id \
- ${rootlibexecdir}/udev/collect \
- ${rootlibexecdir}/udev/findkeyboards \
- ${rootlibexecdir}/udev/keyboard-force-release.sh \
- ${rootlibexecdir}/udev/keymap \
- ${rootlibexecdir}/udev/mtd_probe \
- ${rootlibexecdir}/udev/scsi_id \
- ${rootlibexecdir}/udev/v4l_id \
- ${rootlibexecdir}/udev/keymaps \
- ${rootlibexecdir}/udev/rules.d/*.rules \
- ${sysconfdir}/udev \
- ${sysconfdir}/init.d/systemd-udevd \
- ${systemd_unitdir}/system/*udev* \
- ${systemd_unitdir}/system/*.wants/*udev* \
- ${base_bindir}/udevadm \
- ${datadir}/bash-completion/completions/udevadm \
- "
-
-FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
-
-INITSCRIPT_PACKAGES = "udev"
-INITSCRIPT_NAME_udev = "systemd-udevd"
-INITSCRIPT_PARAMS_udev = "start 03 S ."
-
-python __anonymous() {
- if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
- d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-}
-
-# TODO:
-# u-a for runlevel and telinit
-
-ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel"
-
-ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd"
-ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
-ALTERNATIVE_PRIORITY[init] ?= "300"
-
-ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
-ALTERNATIVE_PRIORITY[halt] ?= "300"
-
-ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
-ALTERNATIVE_PRIORITY[reboot] ?= "300"
-
-ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
-ALTERNATIVE_PRIORITY[shutdown] ?= "300"
-
-ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
-ALTERNATIVE_PRIORITY[poweroff] ?= "300"
-
-ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
-ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
-ALTERNATIVE_PRIORITY[runlevel] ?= "300"
-
-pkg_postinst_${PN} () {
- sed -e '/^hosts:/s/\s*\<myhostname\>//' \
- -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
- -i $D${sysconfdir}/nsswitch.conf
-}
-
-pkg_prerm_${PN} () {
- sed -e '/^hosts:/s/\s*\<myhostname\>//' \
- -e '/^hosts:/s/\s*myhostname//' \
- -i $D${sysconfdir}/nsswitch.conf
-}
-
-pkg_postinst_udev-hwdb () {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
- --root $D
- chown root:root $D${sysconfdir}/udev/hwdb.bin
- else
- udevadm hwdb --update
- fi
-}
-
-pkg_prerm_udev-hwdb () {
- rm -f $D${sysconfdir}/udev/hwdb.bin
-}
-
-# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
-# that we don't build both udev and systemd in world builds.
-python () {
- if not bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
- raise bb.parse.SkipPackage("'systemd' not in DISTRO_FEATURES")
-
- import re
- if re.match('.*musl*', d.getVar('TARGET_OS', True)) != None:
- raise bb.parse.SkipPackage("Not _yet_ supported on musl based targets")
-}
diff --git a/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_230.bb b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_230.bb
new file mode 100644
index 000000000..a949fe8db
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/systemd/systemd_230.bb
@@ -0,0 +1,598 @@
+require systemd.inc
+
+PROVIDES = "udev"
+
+PE = "1"
+
+DEPENDS = "kmod docbook-sgml-dtd-4.1-native intltool-native gperf-native acl readline libcap libcgroup qemu-native util-linux"
+
+SECTION = "base/shell"
+
+inherit useradd pkgconfig autotools perlnative update-rc.d update-alternatives qemu systemd ptest gettext bash-completion
+
+SRC_URI += " \
+ file://touchscreen.rules \
+ file://00-create-volatile.conf \
+ file://init \
+ file://run-ptest \
+ file://0003-define-exp10-if-missing.patch \
+ file://0004-Use-getenv-when-secure-versions-are-not-available.patch \
+ file://0005-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
+ file://0006-configure-Check-for-additional-features-that-uclibc-.patch \
+ file://0007-use-lnr-wrapper-instead-of-looking-for-relative-opti.patch \
+ file://0008-nspawn-Use-execvpe-only-when-libc-supports-it.patch \
+ file://0009-util-bypass-unimplemented-_SC_PHYS_PAGES-system-conf.patch \
+ file://0010-implment-systemd-sysv-install-for-OE.patch \
+ file://0011-nss-mymachines-Build-conditionally-when-HAVE_MYHOSTN.patch \
+ file://0012-rules-whitelist-hd-devices.patch \
+ file://0013-sysv-generator-add-support-for-executing-scripts-und.patch \
+ file://0014-Make-root-s-home-directory-configurable.patch \
+ file://0015-systemd-user-avoid-using-system-auth.patch \
+ file://0016-Revert-rules-remove-firmware-loading-rules.patch \
+ file://0017-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
+ file://0018-make-test-dir-configurable.patch \
+ file://0019-remove-duplicate-include-uchar.h.patch \
+ file://0020-check-for-uchar.h-in-configure.patch \
+ file://0021-include-missing.h-for-getting-secure_getenv-definiti.patch \
+ file://0022-socket-util-don-t-fail-if-libc-doesn-t-support-IDN.patch \
+ file://udev-re-enable-mount-propagation-for-udevd.patch \
+"
+SRC_URI_append_libc-uclibc = "\
+ file://0002-units-Prefer-getty-to-agetty-in-console-setup-system.patch \
+"
+SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
+
+PACKAGECONFIG ??= "xz \
+ ldconfig \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xkbcommon', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'selinux', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'rfkill', '', d)} \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'efi', '', d)} \
+ binfmt \
+ randomseed \
+ machined \
+ backlight \
+ quotacheck \
+ hostnamed \
+ ${@bb.utils.contains('TCLIBC', 'glibc', 'myhostname sysusers', '', d)} \
+ hibernate \
+ timedated \
+ timesyncd \
+ localed \
+ kdbus \
+ ima \
+ smack \
+ logind \
+ firstboot \
+ utmp \
+ polkit \
+"
+PACKAGECONFIG_remove_libc-musl = "selinux"
+PACKAGECONFIG_remove_libc-musl = "smack"
+
+# Use the upstream systemd serial-getty@.service and rely on
+# systemd-getty-generator instead of using the OE-core specific
+# systemd-serialgetty.bb - not enabled by default.
+PACKAGECONFIG[serial-getty-generator] = ""
+
+PACKAGECONFIG[journal-upload] = "--enable-libcurl,--disable-libcurl,curl"
+# Sign the journal for anti-tampering
+PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
+PACKAGECONFIG[cryptsetup] = "--enable-libcryptsetup,--disable-libcryptsetup,cryptsetup"
+PACKAGECONFIG[microhttpd] = "--enable-microhttpd,--disable-microhttpd,libmicrohttpd"
+PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils"
+PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"
+PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd"
+PACKAGECONFIG[machined] = "--enable-machined,--disable-machined"
+PACKAGECONFIG[backlight] = "--enable-backlight,--disable-backlight"
+PACKAGECONFIG[quotacheck] = "--enable-quotacheck,--disable-quotacheck"
+PACKAGECONFIG[hostnamed] = "--enable-hostnamed,--disable-hostnamed"
+PACKAGECONFIG[myhostname] = "--enable-myhostname,--disable-myhostname"
+PACKAGECONFIG[rfkill] = "--enable-rfkill,--disable-rfkill"
+PACKAGECONFIG[hibernate] = "--enable-hibernate,--disable-hibernate"
+PACKAGECONFIG[timedated] = "--enable-timedated,--disable-timedated"
+PACKAGECONFIG[timesyncd] = "--enable-timesyncd,--disable-timesyncd"
+PACKAGECONFIG[localed] = "--enable-localed,--disable-localed"
+PACKAGECONFIG[efi] = "--enable-efi,--disable-efi"
+PACKAGECONFIG[kdbus] = "--enable-kdbus,--disable-kdbus"
+PACKAGECONFIG[ima] = "--enable-ima,--disable-ima"
+PACKAGECONFIG[smack] = "--enable-smack,--disable-smack"
+# libseccomp is found in meta-security
+PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
+PACKAGECONFIG[logind] = "--enable-logind,--disable-logind"
+PACKAGECONFIG[sysusers] = "--enable-sysusers,--disable-sysusers"
+PACKAGECONFIG[firstboot] = "--enable-firstboot,--disable-firstboot"
+PACKAGECONFIG[randomseed] = "--enable-randomseed,--disable-randomseed"
+PACKAGECONFIG[binfmt] = "--enable-binfmt,--disable-binfmt"
+PACKAGECONFIG[utmp] = "--enable-utmp,--disable-utmp"
+PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit"
+# importd requires curl/xz/zlib/bzip2/gcrypt
+PACKAGECONFIG[importd] = "--enable-importd,--disable-importd"
+PACKAGECONFIG[libidn] = "--enable-libidn,--disable-libidn,libidn"
+PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit"
+PACKAGECONFIG[manpages] = "--enable-manpages,--disable-manpages,libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
+PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
+# Verify keymaps on locale change
+PACKAGECONFIG[xkbcommon] = "--enable-xkbcommon,--disable-xkbcommon,libxkbcommon"
+# Update NAT firewall rules
+PACKAGECONFIG[iptc] = "--enable-libiptc,--disable-libiptc,iptables"
+PACKAGECONFIG[ldconfig] = "--enable-ldconfig,--disable-ldconfig,,"
+PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+PACKAGECONFIG[valgrind] = "ac_cv_header_valgrind_memcheck_h=yes ac_cv_header_valgrind_valgrind_h=yes ,ac_cv_header_valgrind_memcheck_h=no ac_cv_header_valgrind_valgrind_h=no ,valgrind"
+PACKAGECONFIG[qrencode] = "--enable-qrencode,--disable-qrencode,qrencode"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[coredump] = "--enable-coredump,--disable-coredump"
+PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
+PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
+PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
+PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_KILL=${base_bindir}/kill"
+CACHED_CONFIGUREVARS += "ac_cv_path_KMOD=${base_bindir}/kmod"
+CACHED_CONFIGUREVARS += "ac_cv_path_QUOTACHECK=${sbindir}/quotacheck"
+CACHED_CONFIGUREVARS += "ac_cv_path_QUOTAON=${sbindir}/quotaon"
+CACHED_CONFIGUREVARS += "ac_cv_path_SULOGIN=${base_sbindir}/sulogin"
+
+# Helper variables to clarify locations. This mirrors the logic in systemd's
+# build system.
+rootprefix ?= "${base_prefix}"
+rootlibdir ?= "${base_libdir}"
+rootlibexecdir = "${rootprefix}/lib"
+
+CACHED_CONFIGUREVARS_class-target = "\
+ ac_cv_path_MOUNT_PATH=${base_bindir}/mount \
+ ac_cv_path_UMOUNT_PATH=${base_bindir}/umount \
+ ac_cv_path_KMOD=${base_bindir}/kmod \
+ ac_cv_path_KILL=${base_bindir}/kill \
+ ac_cv_path_SULOGIN=${base_sbindir}/sulogin \
+ ac_cv_path_KEXEC=${sbindir}/kexec \
+ ac_cv_path_QUOTACHECK=${sbindir}/quotacheck \
+ ac_cv_path_QUOTAON=${sbindir}/quotaon \
+ "
+
+EXTRA_OECONF = " --with-rootprefix=${rootprefix} \
+ --with-rootlibdir=${rootlibdir} \
+ --with-roothomedir=${ROOT_HOME} \
+ --enable-split-usr \
+ --without-python \
+ --with-sysvrcnd-path=${sysconfdir} \
+ --with-firmware-path=/lib/firmware \
+ --with-testdir=${PTEST_PATH} \
+ "
+# per the systemd README, define VALGRIND=1 to run under valgrind
+CFLAGS .= "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', ' -DVALGRIND=1', '', d)}"
+
+# disable problematic GCC 5.2 optimizations [YOCTO #8291]
+FULL_OPTIMIZATION_append_arm = " -fno-schedule-insns -fno-schedule-insns2"
+
+do_configure_prepend() {
+ export NM="${HOST_PREFIX}gcc-nm"
+ export AR="${HOST_PREFIX}gcc-ar"
+ export RANLIB="${HOST_PREFIX}gcc-ranlib"
+ export KMOD="${base_bindir}/kmod"
+ if [ -d ${S}/units.pre_sed ] ; then
+ cp -r ${S}/units.pre_sed ${S}/units
+ else
+ cp -r ${S}/units ${S}/units.pre_sed
+ fi
+ sed -i -e 's:-DTEST_DIR=\\\".*\\\":-DTEST_DIR=\\\"${PTEST_PATH}/tests/test\\\":' ${S}/Makefile.am
+ sed -i -e 's:-DCATALOG_DIR=\\\".*\\\":-DCATALOG_DIR=\\\"${PTEST_PATH}/tests/catalog\\\":' ${S}/Makefile.am
+}
+
+do_install() {
+ autotools_do_install
+ install -d ${D}/${base_sbindir}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', 'false', 'true', d)}; then
+ # Provided by a separate recipe
+ rm ${D}${systemd_unitdir}/system/serial-getty* -f
+ fi
+
+ # Provide support for initramfs
+ [ ! -e ${D}/init ] && ln -s ${rootlibexecdir}/systemd/systemd ${D}/init
+ [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${rootlibexecdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd
+
+ # Create machine-id
+ # 20:12 < mezcalero> koen: you have three options: a) run systemd-machine-id-setup at install time, b) have / read-only and an empty file there (for stateless) and c) boot with / writable
+ touch ${D}${sysconfdir}/machine-id
+
+
+ install -d ${D}${sysconfdir}/udev/rules.d/
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d/
+ install -d ${D}${libdir}/pkgconfig
+ install -m 0644 ${B}/src/udev/udev.pc ${D}${libdir}/pkgconfig/
+
+ install -m 0644 ${WORKDIR}/00-create-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/systemd-udevd
+ sed -i s%@UDEVD@%${rootlibexecdir}/systemd/systemd-udevd% ${D}${sysconfdir}/init.d/systemd-udevd
+ fi
+
+ chown root:systemd-journal ${D}/${localstatedir}/log/journal
+
+ # Delete journal README, as log can be symlinked inside volatile.
+ rm -f ${D}/${localstatedir}/log/README
+
+ install -d ${D}${systemd_unitdir}/system/graphical.target.wants
+ install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
+ install -d ${D}${systemd_unitdir}/system/poweroff.target.wants
+ install -d ${D}${systemd_unitdir}/system/reboot.target.wants
+ install -d ${D}${systemd_unitdir}/system/rescue.target.wants
+
+ # Create symlinks for systemd-update-utmp-runlevel.service
+ if ${@bb.utils.contains('PACKAGECONFIG', 'utmp', 'true', 'false', d)}; then
+ ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/graphical.target.wants/systemd-update-utmp-runlevel.service
+ ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/multi-user.target.wants/systemd-update-utmp-runlevel.service
+ ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/poweroff.target.wants/systemd-update-utmp-runlevel.service
+ ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/reboot.target.wants/systemd-update-utmp-runlevel.service
+ ln -sf ../systemd-update-utmp-runlevel.service ${D}${systemd_unitdir}/system/rescue.target.wants/systemd-update-utmp-runlevel.service
+ fi
+
+ # Enable journal to forward message to syslog daemon
+ sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
+ # Set the maximium size of runtime journal to 64M as default
+ sed -i -e 's/.*RuntimeMaxUse.*/RuntimeMaxUse=64M/' ${D}${sysconfdir}/systemd/journald.conf
+
+ # this file is needed to exist if networkd is disabled but timesyncd is still in use since timesyncd checks it
+ # for existence else it fails
+ if [ -s ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf ]; then
+ ${@bb.utils.contains('PACKAGECONFIG', 'networkd', ':', 'sed -i -e "\$ad /run/systemd/netif/links 0755 root root -" ${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf', d)}
+ fi
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'resolved', 'true', 'false', d)}; then
+ # if resolved is disabled, it won't handle the link of resolv.conf, so
+ # set it up ourselves
+ ln -s ../run/resolv.conf ${D}${sysconfdir}/resolv.conf
+ echo 'L! ${sysconfdir}/resolv.conf - - - - ../run/resolv.conf' >>${D}${exec_prefix}/lib/tmpfiles.d/etc.conf
+ echo 'f /run/resolv.conf 0644 root root' >>${D}${exec_prefix}/lib/tmpfiles.d/systemd.conf
+ fi
+ install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${systemd_unitdir}/systemd-sysv-install
+}
+
+do_install_ptest () {
+ # install data files needed for tests
+ install -d ${D}${PTEST_PATH}/tests/test
+ cp -rfL ${S}/test/* ${D}${PTEST_PATH}/tests/test
+ # python is disabled for systemd, thus removing these python testing scripts
+ rm ${D}${PTEST_PATH}/tests/test/*.py
+ sed -i 's/"tree"/"ls"/' ${D}${PTEST_PATH}/tests/test/udev-test.pl
+
+ install -d ${D}${PTEST_PATH}/tests/catalog
+ install ${S}/catalog/* ${D}${PTEST_PATH}/tests/catalog/
+
+ install -D ${S}/build-aux/test-driver ${D}${PTEST_PATH}/tests/build-aux/test-driver
+
+ install -d ${D}${PTEST_PATH}/tests/rules
+ install ${B}/rules/* ${D}${PTEST_PATH}/tests/rules/
+
+ # This directory needs to be there for udev-test.pl to work.
+ install -d ${D}${libdir}/udev/rules.d
+
+ # install actual test binaries
+ install -m 0755 ${B}/test-* ${D}${PTEST_PATH}/tests/
+ install -m 0755 ${B}/.libs/test-* ${D}${PTEST_PATH}/tests/
+
+ install ${B}/Makefile ${D}${PTEST_PATH}/tests/
+}
+
+python populate_packages_prepend (){
+ systemdlibdir = d.getVar("rootlibdir", True)
+ do_split_packages(d, systemdlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Systemd %s library', extra_depends='', allow_links=True)
+}
+PACKAGES_DYNAMIC += "^lib(udev|systemd).*"
+
+PACKAGES =+ "\
+ ${PN}-gui \
+ ${PN}-vconsole-setup \
+ ${PN}-initramfs \
+ ${PN}-analyze \
+ ${PN}-kernel-install \
+ ${PN}-rpm-macros \
+ ${PN}-binfmt \
+ ${PN}-pam \
+ ${PN}-zsh-completion \
+ ${PN}-xorg-xinitrc \
+ ${PN}-container \
+ ${PN}-extra-utils \
+"
+
+SUMMARY_${PN}-container = "Tools for containers and VMs"
+DESCRIPTION_${PN}-container = "Systemd tools to spawn and manage containers and virtual machines."
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'binfmt', '${PN}-binfmt', '', d)}"
+SYSTEMD_SERVICE_${PN}-binfmt = "systemd-binfmt.service"
+
+USERADD_PACKAGES = "${PN} ${PN}-extra-utils"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '--system -d / -M --shell /bin/nologin systemd-journal-gateway;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'microhttpd', '--system -d / -M --shell /bin/nologin systemd-journal-remote;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '--system -d / -M --shell /bin/nologin systemd-journal-upload;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--system -d / -M --shell /bin/nologin systemd-timesync;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /bin/nologin systemd-network;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', '--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
+USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin systemd-bus-proxy;"
+
+FILES_${PN}-analyze = "${bindir}/systemd-analyze"
+
+FILES_${PN}-initramfs = "/init"
+RDEPENDS_${PN}-initramfs = "${PN}"
+
+RDEPENDS_${PN}-ptest += "gawk make perl bash xz \
+ tzdata tzdata-americas tzdata-asia \
+ tzdata-europe tzdata-africa tzdata-antarctica \
+ tzdata-arctic tzdata-atlantic tzdata-australia \
+ tzdata-pacific tzdata-posix"
+
+FILES_${PN}-ptest += "${libdir}/udev/rules.d"
+
+FILES_${PN}-gui = "${bindir}/systemadm"
+
+FILES_${PN}-vconsole-setup = "${rootlibexecdir}/systemd/systemd-vconsole-setup \
+ ${systemd_unitdir}/system/systemd-vconsole-setup.service \
+ ${systemd_unitdir}/system/sysinit.target.wants/systemd-vconsole-setup.service"
+
+RDEPENDS_${PN}-kernel-install += "bash"
+FILES_${PN}-kernel-install = "${bindir}/kernel-install \
+ ${sysconfdir}/kernel/ \
+ ${exec_prefix}/lib/kernel \
+ "
+FILES_${PN}-rpm-macros = "${exec_prefix}/lib/rpm \
+ "
+
+FILES_${PN}-xorg-xinitrc = "${sysconfdir}/X11/xinit/xinitrc.d/*"
+
+FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions"
+
+FILES_${PN}-binfmt = "${sysconfdir}/binfmt.d/ \
+ ${exec_prefix}/lib/binfmt.d \
+ ${rootlibexecdir}/systemd/systemd-binfmt \
+ ${systemd_unitdir}/system/proc-sys-fs-binfmt_misc.* \
+ ${systemd_unitdir}/system/systemd-binfmt.service"
+RRECOMMENDS_${PN}-binfmt = "kernel-module-binfmt-misc"
+
+RRECOMMENDS_${PN}-vconsole-setup = "kbd kbd-consolefonts kbd-keymaps"
+
+FILES_${PN}-container = "${sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf \
+ ${sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf \
+ ${base_bindir}/machinectl \
+ ${bindir}/systemd-nspawn \
+ ${nonarch_libdir}/systemd/import-pubring.gpg \
+ ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.import1.busname \
+ ${systemd_system_unitdir}/busnames.target.wants/org.freedesktop.machine1.busname \
+ ${systemd_system_unitdir}/local-fs.target.wants/var-lib-machines.mount \
+ ${systemd_system_unitdir}/machine.slice \
+ ${systemd_system_unitdir}/machines.target \
+ ${systemd_system_unitdir}/org.freedesktop.import1.busname \
+ ${systemd_system_unitdir}/org.freedesktop.machine1.busname \
+ ${systemd_system_unitdir}/systemd-importd.service \
+ ${systemd_system_unitdir}/systemd-machined.service \
+ ${systemd_system_unitdir}/var-lib-machines.mount \
+ ${rootlibexecdir}/systemd/systemd-import \
+ ${rootlibexecdir}/systemd/systemd-importd \
+ ${rootlibexecdir}/systemd/systemd-journal-gatewayd \
+ ${rootlibexecdir}/systemd/systemd-journal-remote \
+ ${rootlibexecdir}/systemd/systemd-journal-upload \
+ ${rootlibexecdir}/systemd/systemd-machined \
+ ${rootlibexecdir}/systemd/systemd-pull \
+ ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
+ ${systemd_system_unitdir}/systemd-nspawn@.service \
+ ${libdir}/libnss_mymachines.so.2 \
+ ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \
+ ${datadir}/dbus-1/system-services/org.freedesktop.machine1.service \
+ ${datadir}/polkit-1/actions/org.freedesktop.import1.policy \
+ ${datadir}/polkit-1/actions/org.freedesktop.machine1.policy \
+ "
+
+FILES_${PN}-extra-utils = "\
+ ${base_bindir}/systemd-escape \
+ ${base_bindir}/systemd-inhibit \
+ ${bindir}/systemd-detect-virt \
+ ${bindir}/systemd-path \
+ ${bindir}/systemd-run \
+ ${bindir}/systemd-cat \
+ ${bindir}/systemd-delta \
+ ${bindir}/systemd-cgls \
+ ${bindir}/systemd-cgtop \
+ ${bindir}/systemd-stdio-bridge \
+ ${base_bindir}/systemd-ask-password \
+ ${base_bindir}/systemd-tty-ask-password-agent \
+ ${systemd_unitdir}/system/systemd-ask-password-console.path \
+ ${systemd_unitdir}/system/systemd-ask-password-console.service \
+ ${systemd_unitdir}/system/systemd-ask-password-wall.path \
+ ${systemd_unitdir}/system/systemd-ask-password-wall.service \
+ ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-console.path \
+ ${systemd_unitdir}/system/sysinit.target.wants/systemd-ask-password-wall.path \
+ ${systemd_unitdir}/system/multi-user.target.wants/systemd-ask-password-wall.path \
+ ${rootlibexecdir}/systemd/systemd-resolve-host \
+ ${rootlibexecdir}/systemd/systemd-ac-power \
+ ${rootlibexecdir}/systemd/systemd-activate \
+ ${rootlibexecdir}/systemd/systemd-bus-proxyd \
+ ${systemd_unitdir}/system/systemd-bus-proxyd.service \
+ ${systemd_unitdir}/system/systemd-bus-proxyd.socket \
+ ${rootlibexecdir}/systemd/systemd-socket-proxyd \
+ ${rootlibexecdir}/systemd/systemd-reply-password \
+ ${rootlibexecdir}/systemd/systemd-sleep \
+ ${rootlibexecdir}/systemd/system-sleep \
+ ${systemd_unitdir}/system/systemd-hibernate.service \
+ ${systemd_unitdir}/system/systemd-hybrid-sleep.service \
+ ${systemd_unitdir}/system/systemd-suspend.service \
+ ${systemd_unitdir}/system/sleep.target \
+ ${rootlibexecdir}/systemd/systemd-initctl \
+ ${systemd_unitdir}/system/systemd-initctl.service \
+ ${systemd_unitdir}/system/systemd-initctl.socket \
+ ${systemd_unitdir}/system/sockets.target.wants/systemd-initctl.socket \
+ ${rootlibexecdir}/systemd/system-generators/systemd-gpt-auto-generator \
+ ${rootlibexecdir}/systemd/systemd-cgroups-agent \
+"
+
+CONFFILES_${PN} = "${sysconfdir}/machine-id \
+ ${sysconfdir}/systemd/coredump.conf \
+ ${sysconfdir}/systemd/journald.conf \
+ ${sysconfdir}/systemd/logind.conf \
+ ${sysconfdir}/systemd/system.conf \
+ ${sysconfdir}/systemd/user.conf"
+
+FILES_${PN} = " ${base_bindir}/* \
+ ${datadir}/dbus-1/services \
+ ${datadir}/dbus-1/system-services \
+ ${datadir}/polkit-1 \
+ ${datadir}/${BPN} \
+ ${datadir}/factory \
+ ${sysconfdir}/dbus-1/ \
+ ${sysconfdir}/machine-id \
+ ${sysconfdir}/modules-load.d/ \
+ ${sysconfdir}/pam.d/ \
+ ${sysconfdir}/sysctl.d/ \
+ ${sysconfdir}/systemd/ \
+ ${sysconfdir}/tmpfiles.d/ \
+ ${sysconfdir}/xdg/ \
+ ${sysconfdir}/init.d/README \
+ ${sysconfdir}/resolv.conf \
+ ${rootlibexecdir}/systemd/* \
+ ${systemd_unitdir}/* \
+ ${base_libdir}/security/*.so \
+ ${libdir}/libnss_* \
+ /cgroup \
+ ${bindir}/systemd* \
+ ${bindir}/busctl \
+ ${bindir}/coredumpctl \
+ ${bindir}/localectl \
+ ${bindir}/hostnamectl \
+ ${bindir}/timedatectl \
+ ${bindir}/bootctl \
+ ${bindir}/kernel-install \
+ ${exec_prefix}/lib/tmpfiles.d/*.conf \
+ ${exec_prefix}/lib/systemd \
+ ${exec_prefix}/lib/modules-load.d \
+ ${exec_prefix}/lib/sysctl.d \
+ ${exec_prefix}/lib/sysusers.d \
+ ${localstatedir} \
+ ${nonarch_base_libdir}/udev/rules.d/70-uaccess.rules \
+ ${nonarch_base_libdir}/udev/rules.d/71-seat.rules \
+ ${nonarch_base_libdir}/udev/rules.d/73-seat-late.rules \
+ ${nonarch_base_libdir}/udev/rules.d/99-systemd.rules \
+ "
+
+FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
+
+RDEPENDS_${PN} += "kmod dbus util-linux-mount udev (= ${EXTENDPKGV})"
+RDEPENDS_${PN} += "volatile-binds update-rc.d"
+
+RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)} \
+ systemd-vconsole-setup \
+ systemd-extra-utils \
+ systemd-compat-units udev-hwdb \
+ util-linux-agetty util-linux-fsck e2fsprogs-e2fsck \
+ kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 \
+ os-release \
+"
+
+INSANE_SKIP_${PN}-doc += " libdir"
+
+PACKAGES =+ "udev udev-hwdb"
+
+RPROVIDES_udev = "hotplug"
+
+RDEPENDS_udev-hwdb += "udev"
+
+FILES_udev += "${base_sbindir}/udevd \
+ ${rootlibexecdir}/systemd/systemd-udevd \
+ ${rootlibexecdir}/udev/accelerometer \
+ ${rootlibexecdir}/udev/ata_id \
+ ${rootlibexecdir}/udev/cdrom_id \
+ ${rootlibexecdir}/udev/collect \
+ ${rootlibexecdir}/udev/findkeyboards \
+ ${rootlibexecdir}/udev/keyboard-force-release.sh \
+ ${rootlibexecdir}/udev/keymap \
+ ${rootlibexecdir}/udev/mtd_probe \
+ ${rootlibexecdir}/udev/scsi_id \
+ ${rootlibexecdir}/udev/v4l_id \
+ ${rootlibexecdir}/udev/keymaps \
+ ${rootlibexecdir}/udev/rules.d/*.rules \
+ ${sysconfdir}/udev \
+ ${sysconfdir}/init.d/systemd-udevd \
+ ${systemd_unitdir}/system/*udev* \
+ ${systemd_unitdir}/system/*.wants/*udev* \
+ ${base_bindir}/udevadm \
+ ${datadir}/bash-completion/completions/udevadm \
+ "
+
+FILES_udev-hwdb = "${rootlibexecdir}/udev/hwdb.d"
+
+INITSCRIPT_PACKAGES = "udev"
+INITSCRIPT_NAME_udev = "systemd-udevd"
+INITSCRIPT_PARAMS_udev = "start 03 S ."
+
+python __anonymous() {
+ if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
+ d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
+}
+
+# TODO:
+# u-a for runlevel and telinit
+
+ALTERNATIVE_${PN} = "init halt reboot shutdown poweroff runlevel"
+
+ALTERNATIVE_TARGET[init] = "${rootlibexecdir}/systemd/systemd"
+ALTERNATIVE_LINK_NAME[init] = "${base_sbindir}/init"
+ALTERNATIVE_PRIORITY[init] ?= "300"
+
+ALTERNATIVE_TARGET[halt] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[halt] = "${base_sbindir}/halt"
+ALTERNATIVE_PRIORITY[halt] ?= "300"
+
+ALTERNATIVE_TARGET[reboot] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[reboot] = "${base_sbindir}/reboot"
+ALTERNATIVE_PRIORITY[reboot] ?= "300"
+
+ALTERNATIVE_TARGET[shutdown] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[shutdown] = "${base_sbindir}/shutdown"
+ALTERNATIVE_PRIORITY[shutdown] ?= "300"
+
+ALTERNATIVE_TARGET[poweroff] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[poweroff] = "${base_sbindir}/poweroff"
+ALTERNATIVE_PRIORITY[poweroff] ?= "300"
+
+ALTERNATIVE_TARGET[runlevel] = "${base_bindir}/systemctl"
+ALTERNATIVE_LINK_NAME[runlevel] = "${base_sbindir}/runlevel"
+ALTERNATIVE_PRIORITY[runlevel] ?= "300"
+
+pkg_postinst_${PN} () {
+ sed -e '/^hosts:/s/\s*\<myhostname\>//' \
+ -e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
+ -i $D${sysconfdir}/nsswitch.conf
+}
+
+pkg_prerm_${PN} () {
+ sed -e '/^hosts:/s/\s*\<myhostname\>//' \
+ -e '/^hosts:/s/\s*myhostname//' \
+ -i $D${sysconfdir}/nsswitch.conf
+}
+
+pkg_postinst_udev-hwdb () {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
+ --root $D
+ chown root:root $D${sysconfdir}/udev/hwdb.bin
+ else
+ udevadm hwdb --update
+ fi
+}
+
+pkg_prerm_udev-hwdb () {
+ rm -f $D${sysconfdir}/udev/hwdb.bin
+}
+
+# As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
+# that we don't build both udev and systemd in world builds.
+python () {
+ if not bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
+ raise bb.parse.SkipPackage("'systemd' not in DISTRO_FEATURES")
+
+ import re
+ if re.match('.*musl*', d.getVar('TARGET_OS', True)) != None:
+ raise bb.parse.SkipPackage("Not _yet_ supported on musl based targets")
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/import-layers/yocto-poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index c5b8cdca9..f136ad821 100644
--- a/import-layers/yocto-poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -26,7 +26,8 @@ do_install() {
for i in $tmp
do
j=`echo ${i} | sed s/\;/\ /g`
- label=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'`
+ l=`echo ${i} | sed -e 's/tty//' -e 's/^.*;//' -e 's/;.*//'`
+ label=`echo $l | sed 's/.*\(....\)/\1/'`
echo "$label:12345:respawn:${base_bindir}/start_getty ${j}" >> ${D}${sysconfdir}/inittab
done
@@ -57,9 +58,12 @@ if [ "x$D" = "x" ] && [ -e /proc/consoles ]; then
tmp="${SERIAL_CONSOLES_CHECK}"
for i in $tmp
do
- j=`echo ${i} | sed s/^.*\;//g`
+ j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g`
+ k=`echo ${i} | sed s/^.*\://g`
if [ -z "`grep ${j} /proc/consoles`" ]; then
- sed -i /^.*${j}$/d /etc/inittab
+ if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then
+ sed -i /^.*${j}$/d /etc/inittab
+ fi
fi
done
kill -HUP 1
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/funcs b/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/funcs
deleted file mode 100644
index ccc85392d..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/funcs
+++ /dev/null
@@ -1,474 +0,0 @@
-a64l
-abs
-access
-__adjtimex
-alarm
-alphasort
-argz_append
-__argz_count
-argz_create_sep
-argz_insert
-__argz_next
-argz_next
-__argz_stringify
-argz_stringify
-asprintf
-atexit
-atof
-atoi
-bcmp
-bcopy
-bindresvport
-bind_textdomain_codeset
-btowc
-bzero
-calloc
-canonicalize_file_name
-catgets
-cfgetospeed
-cfsetispeed
-cfsetspeed
-chmod
-chown
-chroot
-clock
-close
-closedir
-closelog
-confstr
-connect
-daemon
-dcgettext
-difftime
-dirfd
-dirname
-dngettext
-dup2
-ecvt
-endgrent
-endmntent
-endpwent
-endutent
-endutxent
-epoll_ctl
-err
-ether_hostton
-ether_ntohost
-euidaccess
-execv
-fchdir
-fchmod
-fchmodat
-fchown
-fchownat
-fcntl
-fcvt
-fdatasync
-fdopendir
-feof_unlocked
-fgets_unlocked
-fgetxattr
-finite
-flistxattr
-flock
-flockfile
-fnmatch
-fork
-fpathconf
-__fpending
-fprintf
-free
-freeaddrinfo
-freeifaddrs
-fseeko
-__fsetlocking
-fsetxattr
-fstat64
-fstat
-fstatfs
-fsync
-ftello
-ftime
-ftruncate
-funlockfile
-futimes
-futimesat
-gai_strerror
-gcvt
-getaddrinfo
-getc_unlocked
-getcwd
-getdelim
-getdomainname
-getdtablesize
-getegid
-getenv
-geteuid
-getgid
-getgrent
-getgrent_r
-getgrgid_r
-getgrnam
-getgrnam_r
-getgrouplist
-getgroups
-gethostbyaddr_r
-gethostbyname2
-gethostbyname
-gethostbyname_r
-gethostent
-gethostid
-gethostname
-getifaddrs
-getline
-getloadavg
-getmntent
-getmsg
-getnameinfo
-getnetbyaddr_r
-getnetgrent_r
-getopt
-getopt_long
-getopt_long_only
-getpagesize
-getpass
-getpeername
-getpgrp
-getpid
-getppid
-getprotoent_r
-getpwent
-getpwent_r
-getpwnam
-getpwnam_r
-getpwuid
-getpwuid_r
-getresuid
-getrlimit
-getrusage
-getservbyname
-getservbyname_r
-getservbyport_r
-getservent
-getservent_r
-getspnam
-getspnam_r
-gettimeofday
-getttyent
-getttynam
-getuid
-getusershell
-getutent
-getutid
-getutline
-getutmp
-getutmpx
-getutxent
-getutxid
-getutxline
-getwd
-getxattr
-glob
-gmtime
-gmtime_r
-grantpt
-group_member
-herror
-hstrerror
-iconv
-iconv_open
-if_freenameindex
-if_indextoname
-if_nameindex
-if_nametoindex
-index
-inet_addr
-inet_aton
-inet_ntoa
-inet_ntop
-inet_pton
-initgroups
-innetgr
-iruserok
-isascii
-isatty
-isblank
-isgraph
-isinf
-isnan
-isprint
-isspace
-iswalnum
-iswcntrl
-iswctype
-iswprint
-iswspace
-iswupper
-isxdigit
-kill
-killpg
-lchown
-lckpwdf
-lgetxattr
-link
-listxattr
-llistxattr
-localtime
-localtime_r
-lockf
-lrand48
-lsearch
-lseek64
-lsetxattr
-lstat
-mallinfo
-malloc
-mblen
-mbrlen
-mbrtowc
-mbsinit
-mbsrtowcs
-mbtowc
-memalign
-memchr
-memcmp
-memcpy
-memmove
-mempcpy
-memrchr
-memset
-mkdir
-mkdirat
-mkdtemp
-mkfifo
-mknod
-mkstemp64
-mkstemp
-mktime
-mlock
-mmap
-mtrace
-munlock
-munmap
-nanosleep
-nice
-nl_langinfo
-ntp_adjtime
-ntp_gettime
-_obstack_free
-on_exit
-open64
-open
-openat
-opendir
-openlog
-pathconf
-pipe
-poll
-popen
-posix_memalign
-prctl
-pread
-printf
-__progname
-pselect
-pthread_mutex_lock
-ptsname
-putenv
-putgrent
-putpwent
-putspent
-pututline
-pututxline
-putwc
-pwrite
-qsort
-raise
-rand
-random
-rand_r
-read
-readdir
-readdir_r
-readlink
-realloc
-realpath
-re_comp
-recvmsg
-re_exec
-regcomp
-regexec
-remove
-rename
-re_search
-rmdir
-rpmatch
-rresvport_af
-ruserok
-ruserok_af
-sbrk
-scandir
-sched_setscheduler
-sched_yield
-__secure_getenv
-select
-semctl
-semget
-sendmsg
-setbuf
-setbuffer
-setegid
-setenv
-seteuid
-setgid
-setgroups
-sethostname
-setitimer
-_setjmp
-setjmp
-setlinebuf
-setlocale
-setmntent
-setpgid
-setpgrp
-setpriority
-setregid
-setresgid
-setresuid
-setreuid
-setrlimit
-setsid
-setsockopt
-settimeofday
-setuid
-setutent
-setutxent
-setvbuf
-setxattr
-sgetspent
-shmat
-shmctl
-shmdt
-shmget
-shutdown
-sigaction
-sigaddset
-sigaltstack
-sigblock
-sigemptyset
-sighold
-siginterrupt
-signal
-sigprocmask
-sigset
-sigsetmask
-sigstack
-sigsuspend
-sigvec
-snprintf
-socket
-socketpair
-sprintf
-srand48
-srand
-srandom
-sscanf
-stat
-statfs
-statvfs
-stime
-stpcpy
-strcasecmp
-strcasestr
-strchr
-strchrnul
-strcmp
-strcspn
-strdup
-strerror
-strerror_r
-strftime
-strlen
-strncasecmp
-strncmp
-strndup
-strnlen
-strpbrk
-strptime
-strrchr
-strsep
-strsignal
-strspn
-strstr
-strtod
-strtoimax
-strtok_r
-strtol
-strtoll
-strtoul
-strtoull
-strtoumax
-strverscmp
-strxfrm
-symlink
-sync
-sysconf
-sysctl
-sysinfo
-syslog
-_sys_siglist
-sys_siglist
-system
-tcgetattr
-tcgetpgrp
-tcsetattr
-tcsetpgrp
-time
-timegm
-times
-timezone
-tmpnam
-towlower
-towupper
-truncate
-tsearch
-ttyname
-tzset
-ulimit
-umask
-uname
-unlink
-unsetenv
-unshare
-updwtmp
-updwtmpx
-usleep
-ustat
-utime
-utimes
-utmpname
-utmpxname
-valloc
-vasprintf
-verrx
-vfork
-vfprintf
-vfscanf
-vhangup
-vprintf
-vsnprintf
-vsprintf
-wait3
-wait4
-waitpid
-wcrtomb
-wcscoll
-wcsdup
-wcslen
-wctob
-wctomb
-wctype
-wcwidth
-wmemchr
-wmemcpy
-wmempcpy
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/headers b/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/headers
deleted file mode 100644
index 609ab5379..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/headers
+++ /dev/null
@@ -1,156 +0,0 @@
-aio.h
-alloca.h
-argz.h
-arpa/inet.h
-arpa/nameser.h
-asm/byteorder.h
-asm/ioctls.h
-asm/page.h
-asm/types.h
-assert.h
-byteswap.h
-crypt.h
-ctype.h
-dirent.h
-dlfcn.h
-elf.h
-endian.h
-err.h
-errno.h
-execinfo.h
-fcntl.h
-features.h
-float.h
-fstab.h
-ftw.h
-getopt.h
-glob.h
-grp.h
-iconv.h
-ifaddrs.h
-inttypes.h
-langinfo.h
-lastlog.h
-libgen.h
-libintl.h
-limits.h
-linux/capability.h
-linux/fd.h
-linux/fs.h
-linux/hayesesp.h
-linux/hdreg.h
-linux/icmp.h
-linux/in6.h
-linux/joystick.h
-linux/ptrace.h
-linux/serial.h
-linux/sonypi.h
-linux/unistd.h
-linux/utsname.h
-linux/version.h
-locale.h
-malloc.h
-math.h
-mcheck.h
-memory.h
-mntent.h
-mqueue.h
-netdb.h
-net/if.h
-netinet/ether.h
-netinet/in.h
-netinet/ip6.h
-netinet/ip.h
-netinet/tcp.h
-netinet/udp.h
-netipx/ipx.h
-net/route.h
-paths.h
-poll.h
-pthread.h
-pty.h
-pwd.h
-regex.h
-resolv.h
-rpc/rpc.h
-rpc/types.h
-sched.h
-scsi/scsi.h
-search.h
-semaphore.h
-setjmp.h
-sgtty.h
-shadow.h
-signal.h
-stdarg.h
-stdbool.h
-stdc
-stddef.h
-stdint.h
-stdio.h
-stdlib.h
-string.h
-strings.h
-stropts.h
-sys/bitypes.h
-sys/cdefs.h
-sys/dir.h
-sys/epoll.h
-sysexits.h
-sys/fcntl.h
-sys/file.h
-sys/fsuid.h
-sys/ioctl.h
-sys/ipc.h
-syslog.h
-sys/mman.h
-sys/mount.h
-sys/mtio.h
-sys/param.h
-sys/poll.h
-sys/prctl.h
-sys/ptrace.h
-sys/queue.h
-sys/reg.h
-sys/resource.h
-sys/select.h
-sys/sem.h
-sys/shm.h
-sys/signal.h
-sys/socket.h
-sys/socketvar.h
-sys/soundcard.h
-sys/statfs.h
-sys/stat.h
-sys/statvfs.h
-sys/stropts.h
-sys/swap.h
-sys/sysctl.h
-sys/sysinfo.h
-sys/sysmacros.h
-sys/termios.h
-sys/timeb.h
-sys/time.h
-sys/times.h
-sys/timex.h
-sys/types.h
-sys/uio.h
-sys/un.h
-sys/unistd.h
-sys/user.h
-sys/utsname.h
-sys/vfs.h
-sys/wait.h
-termio.h
-termios.h
-time.h
-ttyent.h
-ulimit.h
-unistd.h
-ustat.h
-utime.h
-utmp.h
-utmpx.h
-values.h
-wchar.h
-wctype.h
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/types b/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/types
deleted file mode 100644
index 178bd85a0..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/site_config/types
+++ /dev/null
@@ -1,21 +0,0 @@
-char
-char *
-double
-float
-int
-long
-long double
-long int
-long long
-long long int
-short
-short int
-signed char
-unsigned char
-unsigned int
-unsigned long
-unsigned long int
-unsigned long long int
-unsigned short
-unsigned short int
-void *
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-config.inc b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-config.inc
deleted file mode 100644
index ed7b52226..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-config.inc
+++ /dev/null
@@ -1,143 +0,0 @@
-DEPENDS += "kern-tools-native"
-inherit cml1
-#
-# Set the ARCH environment variable for uClibc compilation.
-# Return value must match one of the architectures known to uClibc:
-# libc/sysdeps/*/*
-#
-
-valid_archs = "\
-alpha \
-arm \
-avr32 \
-bfin \
-c6x \
-cris \
-e1 \
-frv \
-h8300 \
-hppa \
-i386 \
-i960 \
-ia64 \
-m68k \
-microblaze \
-mips \
-nios \
-nios2 \
-powerpc \
-sh \
-sh64 \
-sparc \
-v850 \
-vax \
-x86_64 \
-xtensa \
-"
-def map_uclibc_arch(a, d):
- """Return the uClibc architecture for the given TARGET_ARCH."""
- import re
-
- valid_archs = d.getVar('valid_archs', True).split()
-
- if re.match('^(arm|sa110).*', a):
- return 'arm'
- elif re.match('^(i.86|athlon)$', a):
- return 'i386'
- elif re.match('^mips.*', a):
- return 'mips'
- elif re.match('^parisc.*', a):
- return 'hppa'
- elif re.match('^ppc.*', a):
- return 'powerpc'
- elif re.match('^s390.*', a):
- return 's390'
- elif re.match('^sh.*', a):
- return 'sh'
- elif re.match('^(sun|sparc).*', a):
- return 'sparc'
- elif re.match('^xtensa.*', a):
- return 'xtensa'
- elif a in valid_archs:
- return a
- else:
- bb.error("cannot map '%s' to a uClibc architecture" % a)
-
-export UCLIBC_ARCH = "${@map_uclibc_arch(d.getVar('TARGET_ARCH', True), d)}"
-
-def map_uclibc_abi(o, d):
- """Return the uClibc ABI for the given TARGET_OS."""
- import re
-
- arch = d.getVar('TARGET_ARCH', True)
- if map_uclibc_arch(d.getVar('TARGET_ARCH', True), d) == "arm":
- if re.match('.*eabi$', o):
- return 'ARM_EABI'
- else:
- return 'ARM_OABI'
- # FIXME: This is inaccurate! Handle o32, n32, n64
- elif re.match('^mips.*64$', arch):
- return 'MIPS_N64_ABI'
- elif re.match('^mips.*', arch):
- return 'MIPS_O32_ABI'
- return ""
-
-export UCLIBC_ABI = "${@map_uclibc_abi(d.getVar('TARGET_OS', True), d)}"
-
-def map_uclibc_endian(a, d):
- """Return the uClibc endianess for the given TARGET_ARCH."""
- import re
-
- # Always BE
- if re.match('^(avr32|e1|frv|(parisc|hppa)|m68k|microblaze|powerpc.*|(sparc|sun).*)$', a):
- return 'BIG'
- # Possibly BE
- elif re.match('^(((arm|sa110).*eb)|h8300.*eb|(parisc|hppa).*eb|mips|mips64|sh.*eb|xtensa.*eb)$', a):
- return 'BIG'
- return 'LITTLE'
-
-export UCLIBC_ENDIAN = "${@map_uclibc_endian(d.getVar('TARGET_ARCH', True), d)}"
-
-# internal helper
-def uclibc_cfg(feature, features, tokens, cnf, rem):
- if type(tokens) == type(""):
- tokens = [tokens]
- rem.extend(['/^[# ]*' + token + '[ =]/d' for token in tokens])
- if type(features) == type([]) and feature in features:
- cnf.extend([token + '=y' for token in tokens])
- else:
- cnf.extend(['# ' + token + ' is not set' for token in tokens])
-
-# Map distro features to config settings
-def features_to_uclibc_settings(d):
- cnf, rem = ([], [])
- distro_features = d.getVar('DISTRO_FEATURES', True).split()
- uclibc_cfg('ipv4', distro_features, 'UCLIBC_HAS_IPV4', cnf, rem)
- uclibc_cfg('ipv6', distro_features, 'UCLIBC_HAS_IPV6', cnf, rem)
- uclibc_cfg('largefile', distro_features, 'UCLIBC_HAS_LFS', cnf, rem)
- uclibc_cfg('nls', distro_features, 'UCLIBC_HAS_LOCALE', cnf, rem)
- uclibc_cfg('thumb-interwork', distro_features,'USE_BX', cnf, rem)
- uclibc_cfg('xattr', distro_features, 'UCLIBC_HAS_XATTR', cnf, rem)
- uclibc_cfg('ssp', distro_features, 'UCLIBC_HAS_SSP', cnf, rem)
- uclibc_cfg('ssp', distro_features, 'UCLIBC_BUILD_SSP', cnf, rem)
- uclibc_cfg('argp', distro_features, 'UCLIBC_HAS_ARGP', cnf, rem)
- uclibc_cfg('libc-posix-clang-wchar', distro_features,'UCLIBC_HAS_WCHAR', cnf, rem)
- return "\n".join(cnf), "\n".join(rem)
-# X, Y = ${@features_to_uclibc_settings(d)}
-# unfortunately doesn't seem to work with bitbake, workaround:
-def features_to_uclibc_conf(d):
- cnf, rem = features_to_uclibc_settings(d)
- return cnf
-def features_to_uclibc_del(d):
- cnf, rem = features_to_uclibc_settings(d)
- return rem
-
-# returns all the elements from the src uri that are .cfg files
-def find_cfgs(d):
- sources=src_patches(d, True)
- sources_list=[]
- for s in sources:
- if s.endswith('.cfg'):
- sources_list.append(s)
-
- return sources_list
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git.inc b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git.inc
deleted file mode 100644
index a56fa7cb6..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SRCREV = "003b266cbeb370a8eae91dc256197f00798c6f93"
-
-PV = "1.0.12+git${SRCPV}"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/uclibc-git:"
-
-SRC_URI = "git://uclibc-ng.org/git/uclibc-ng \
- file://0001-Disable-lrount_tes-function.patch \
- file://uClibc.machine \
- file://uClibc.distro \
- file://obstack.cfg \
- file://locale.cfg \
-"
-S = "${WORKDIR}/git"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/0001-Disable-lrount_tes-function.patch b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/0001-Disable-lrount_tes-function.patch
deleted file mode 100644
index 506f146a7..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/0001-Disable-lrount_tes-function.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 14b865b3438d0df29b4969148678d8fa8943e1ef Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Aug 2015 20:49:33 -0700
-Subject: [PATCH 1/7] Disable lrount_tes() function
-
-Its not used anyway, avoids some strict compiler warnings
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- test/math/libm-test.inc | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/test/math/libm-test.inc b/test/math/libm-test.inc
-index f50b48b..6d70a95 100644
---- a/test/math/libm-test.inc
-+++ b/test/math/libm-test.inc
-@@ -3470,7 +3470,6 @@ logb_test (void)
- }
-
-
--#if 0
- static void
- lround_test (void)
- {
-@@ -3605,7 +3604,6 @@ llround_test (void)
-
- END (llround);
- }
--#endif
-
- static void
- modf_test (void)
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/locale.cfg b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/locale.cfg
deleted file mode 100644
index fc6643516..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/locale.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-UCLIBC_HAS_LOCALE=y
-UCLIBC_HAS_XLOCALE=y
-UCLIBC_BUILD_MINIMAL_LOCALE=y
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/obstack.cfg b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/obstack.cfg
deleted file mode 100644
index 36bf9d6e4..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/obstack.cfg
+++ /dev/null
@@ -1 +0,0 @@
-UCLIBC_HAS_OBSTACK=y
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.distro b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
deleted file mode 100644
index 7785ce8bf..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.distro
+++ /dev/null
@@ -1,195 +0,0 @@
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-# DOPIC is not set
-# HAVE_NO_SHARED is not set
-# ARCH_HAS_NO_LDSO is not set
-HAVE_SHARED=y
-# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-# UCLIBC_STATIC_LDCONFIG is not set
-LDSO_RUNPATH=y
-UCLIBC_CTOR_DTOR=y
-LDSO_GNU_HASH_SUPPORT=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-UCLIBC_HAS_THREADS_NATIVE=y
-PTHREADS_DEBUG_SUPPORT=y
-# LINUXTHREADS_OLD is not set
-UCLIBC_HAS_LFS=y
-# MALLOC is not set
-# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
-MALLOC_GLIBC_COMPAT=y
-UCLIBC_DYNAMIC_ATEXIT=y
-COMPAT_ATEXIT=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV3_LEGACY_MACROS=y
-UCLIBC_SUSV4_LEGACY=y
-UCLIBC_HAS_SHADOW=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS___PROGNAME=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Networking Support
-#
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-UCLIBC_HAS_REENTRANT_RPC=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-
-UCLIBC_HAS_BSD_RES_CLOSE=y
-UCLIBC_HAS_LIBRESOLV_STUB=y
-UCLIBC_HAS_LIBNSL_STUB=y
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-# UCLIBC_HAS_CTYPE_UNSAFE is not set
-UCLIBC_HAS_CTYPE_CHECKED=y
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
-# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_PRINTF_M_SPEC=y
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-# UCLIBC_HAS_SYS_SIGLIST is not set
-UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_REGEX_OLD is not set
-UCLIBC_HAS_FNMATCH=y
-# UCLIBC_HAS_FNMATCH_OLD is not set
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_NFTW=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_FTS=y
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="//usr"
-MULTILIB_DIR="lib"
-
-#
-# Security options
-#
-# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
-# HAVE_NO_SSP is not set
-# UCLIBC_HAS_SSP is not set
-UCLIBC_BUILD_RELRO=y
-UCLIBC_BUILD_NOW=y
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-UCLIBC_EXTRA_CFLAGS=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOSTRIP is not set
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
-UCLIBC_HAS_BACKTRACE=y
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
-# DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
-
-# math stuff for perl
-DO_C99_MATH=y
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
-UCLIBC_HAS_FENV=y
-UCLIBC_LINUX_MODULE_26=y
-# UCLIBC_LINUX_MODULE_24 is not set
-UCLIBC_LINUX_SPECIFIC=y
-UCLIBC_HAS_REALTIME=y
-UCLIBC_HAS_ADVANCED_REALTIME=y
-UCLIBC_HAS_NETWORK_SUPPORT=y
-UCLIBC_HAS_SOCKET=y
-UCLIBC_HAS_BSD_ERR=y
-UCLIBC_HAS_SYSLOG=y
-UCLIBC_HAS_CRYPT=y
-UCLIBC_HAS_CRYPT_IMPL=y
-UCLIBC_HAS_GNU_ERROR=y
-UCLIBC_HAS_PTY=y
-UCLIBC_BSD_SPECIFIC=y
-UCLIBC_HAS_EPOLL=y
-UCLIBC_HAS_FLOATS=y
-
-# The below option is needed for ARM since depending
-# upong what intruction set is chosen this will be
-# enabled. As such it is harmless and will be punted
-# by menuconfig for other arches.
-
-# COMPILE_IN_THUMB_MODE is not set
-
-# needed by shadow
-UCLIBC_HAS_UTMP=y
-# needed by systemd
-UCLIBC_HAS_UTMPX=y
-UCLIBC_LINUX_MODULE_26=y
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-# needed for LTP
-UCLIBC_SUSV4_LEGACY=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-DO_XSI_MATH=y
-UCLIBC_SV4_DEPRECATED=y
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.machine b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.machine
deleted file mode 100644
index 595f444da..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-git/uClibc.machine
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Version: 0.9.32-git
-# Mon Jul 19 01:34:29 2010
-#
-#
-# Using ELF file format
-#
-FORCE_OPTIONS_FOR_ARCH=y
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-KERNEL_HEADERS="/usr/include"
-HAVE_DOT_CONFIG=y
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-initial_git.bb b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-initial_git.bb
deleted file mode 100644
index c937ccb10..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-initial_git.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SECTION = "base"
-require uclibc.inc
-require uclibc-git.inc
-
-DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial libgcc-initial kern-tools-native"
-PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
-
-PACKAGES = ""
-PACKAGES_DYNAMIC = ""
-
-STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
-
-do_install() {
- # Install initial headers into the cross dir
- make PREFIX=${D} DEVEL_PREFIX=${prefix}/ RUNTIME_PREFIX=/ \
- install_headers install_startfiles
-
- # add links to linux-libc-headers: final uclibc build need this.
- for t in linux asm asm-generic; do
- if [ -d ${D}${includedir}/$t ]; then
- rm -rf ${D}${includedir}/$t
- fi
- ln -sf ${STAGING_DIR_TARGET}${includedir}/$t ${D}${includedir}/
- done
-
-}
-do_compile() {
- :
-}
-
-do_siteconfig () {
- :
-}
-
-do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_TCBOOTSTRAP}/"
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-package.inc b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-package.inc
deleted file mode 100644
index 439f84e4f..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc-package.inc
+++ /dev/null
@@ -1,36 +0,0 @@
-# Ensure the uclibc-dev package is processed before uclibc-staticdev to allow
-# *_nonshared.a libraries to be packaged in the uclibc-dev package.
-PACKAGES = "ldd uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
-
-FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"
-FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"
-FILES_uclibc-libnsl = "${base_libdir}/libnsl*.so.* ${base_libdir}/libnsl-*.so"
-FILES_uclibc-libresolv = "${base_libdir}/libresolv*.so.* ${base_libdir}/libresolv-*.so"
-FILES_uclibc-libm = "${base_libdir}/libm*.so.* ${base_libdir}/libm-*.so"
-FILES_uclibc-libdl = "${base_libdir}/libdl*.so.* ${base_libdir}/libdl-*.so"
-FILES_uclibc-libutil = "${base_libdir}/libutil*.so.* ${base_libdir}/libutil-*.so"
-FILES_uclibc-libpthread = "${base_libdir}/libpthread*.so.* ${base_libdir}/libpthread-*.so"
-FILES_uclibc-librt = "${base_libdir}/librt*.so.* ${base_libdir}/librt-*.so"
-
-FILES_ldd = "${bindir}/ldd"
-FILES_uclibc-utils = "${bindir} ${sbindir}"
-FILES_uclibc-gconv = "${libdir}/gconv"
-FILES_uclibc-thread-db = "${base_libdir}/libthread_db*"
-FILES_uclibc-argp = "${base_libdir}/libuargp-*.so ${base_libdir}/libuargp*.so.*"
-FILES_uclibc-backtrace = "${base_libdir}/libubacktrace-*.so ${base_libdir}/libubacktrace*.so.*"
-
-# The last line (gdb and lib1) is for uclinux-uclibc builds
-uclibc_baselibs = "${base_libdir}/ld*.so.* ${base_libdir}/ld*.so \
- ${base_libdir}/libc*.so.* ${base_libdir}/libuClibc-*.so \
- ${libdir}/libc.gdb ${libdir}/libc ${base_libdir}/lib1.so \
- "
-FILES_SOLIBSDEV = "${libdir}/lib*${SOLIBSDEV}"
-FILES_${PN}-dev += "\
- ${libdir}/lib*.so \
- ${libdir}/*_nonshared.a \
- ${libdir}/[S]*crt[1in].o \
- ${libdir}/crtreloc*.o \
- ${includedir}/*.h ${includedir}/*/*.h \
- "
-FILES_${PN} = "${sysconfdir} ${uclibc_baselibs} /sbin/ldconfig \
- ${libexecdir} ${datadir}/zoneinfo ${libdir}/locale"
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc.inc b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc.inc
deleted file mode 100644
index 1d42284fb..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc.inc
+++ /dev/null
@@ -1,168 +0,0 @@
-SUMMARY = "C library for embedded systems"
-DESCRIPTION = "The name uClibc is an abbreviation for 'the \
-microcontroller C library'. For simplicity, uClibc is pronounced \
-'yew-see-lib-see'. The goal of uClibc is to provide as much \
-functionality as possible in a small amount of space, and it is intended \
-primarily for embedded use. It is also highly configurable in supported \
-features, at the cost of ABI differences for different configurations. \
-uClibc has been designed from the ground up to be a C library for \
-embedded Linux. It is NOT compatible with binaries linked against glibc."
-
-LICENSE = "LGPLv2.1+"
-SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://COPYING.LIB.boilerplate;md5=aaddeadcddeb918297e0e4afc52ce46f \
-file://${S}/test/regex/testregex.c;beginline=1;endline=31;md5=234efb227d0a40677f895e4a1e26e960"
-
-require uclibc-config.inc
-
-PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
-TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TCBOOTSTRAP}"
-
-# siteconfig.bbclass runs configure which needs a working compiler
-# For the compiler to work we need a working libc yet libc isn't
-# in the sysroots directory at this point. This means the libc.so
-# linker script won't work as the --sysroot setting isn't correct.
-# Here we create a hacked up libc linker script and pass in the right
-# flags to let configure work. Ugly.
-EXTRASITECONFIG = "CFLAGS='${CFLAGS} -Wl,-L${WORKDIR}/site_config_libc -L${WORKDIR}/site_config_libc -L${SYSROOT_DESTDIR}${libdir} -L${SYSROOT_DESTDIR}${base_libdir} -Wl,-L${SYSROOT_DESTDIR}${libdir} -Wl,-L${SYSROOT_DESTDIR}${base_libdir}'"
-siteconfig_do_siteconfig_gencache_prepend = " \
-mkdir -p ${WORKDIR}/site_config_libc; \
-cp ${SYSROOT_DESTDIR}${libdir}/libc.so ${WORKDIR}/site_config_libc; \
-sed -i -e 's# ${base_libdir}# ${SYSROOT_DESTDIR}${base_libdir}#g' -e 's# ${libdir}# ${SYSROOT_DESTDIR}${libdir}#g' ${WORKDIR}/site_config_libc/libc.so; \
-"
-
-# For now, we will skip building of a gcc package if it is a uclibc one
-# and our build is not a uclibc one, and we skip a glibc one if our build
-# is a uclibc build.
-COMPATIBLE_HOST = ".*-uclibc.*"
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-# There appears to be a parallel race in uclibc:
-# GEN /extra/locale/locale_collate.h
-# xargs: ../..//extra/locale/gen_collate: Text file busy
-# make[1]: *** [../..//extra/locale/locale_collate.h] Error 126
-PARALLEL_MAKE = ""
-
-# do_stage barfs on a CC with whitespace, therefore put the 'HOST_CC_ARCH' in
-# the CFLAGS (when building the utils).
-OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}'"
-EXTRA_OEMAKE = "${OEMAKE_NO_CC} \
- 'HOSTCC=${BUILD_CC}' \
- 'HOST_CFLAGS=${BUILD_CFLAGS}' \
- 'CC=${CC}' \
- ARCH=${UCLIBC_ARCH}"
-
-EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
-
-# enable verbose output:
-export V="2"
-
-# -O<n> -fno-omit-frame-pointer ends up with GCC ICE on thumb as reported
-# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44860
-#
-CFLAGS_remove_arm = "-fno-omit-frame-pointer"
-UCLIBC_EXTRA_CFLAGS = "${@oe_filter_out('(-I\S+|-i\S+)', '${CFLAGS}', d)}"
-
-configmangle = '/^KERNEL_HEADERS/d; \
- /^RUNTIME_PREFIX/d; \
- /^DEVEL_PREFIX/d; \
- /^SHARED_LIB_LOADER_PREFIX/d; \
- /^UCLIBC_EXTRA_CFLAGS/d; \
- s,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g; \
- ${@["","s,.*COMPILE_IN_THUMB_MODE.*,COMPILE_IN_THUMB_MODE=y,;"][d.getVar("ARM_INSTRUCTION_SET", True) == "thumb"]} \
- ${@["","s,.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y,;"][d.getVar("USE_NLS", True) == "yes"]} \
- ${@["","s,.*LDSO_GNU_HASH_SUPPORT.*,# LDSO_GNU_HASH_SUPPORT is not set,;"][d.getVar("TARGET_ARCH", True) in ['mips', 'mipsel', 'mips64', 'mips64el', 'avr32']]} \
- /^CROSS/d; \
- /^TARGET_ARCH=/d; \
- /^TARGET_/s,^\([^=]*\).*,# \1 is not set,g; \
- s,^DOSTRIP.*,# DOSTRIP is not set,g; \
- /_[EO]*ABI/d; \
- /HAS_FPU/d; \
- ${@["","s,.*MULTILIB_DIR.*,MULTILIB_DIR=\"${baselib}\",;"][d.getVar("baselib", True) != "lib"]} \
- '
-OE_FEATURES = "${@features_to_uclibc_conf(d)}"
-OE_DEL = "${@features_to_uclibc_del(d)}"
-python () {
- if "${OE_DEL}":
- d.setVar('configmangle_append', "${OE_DEL}" + "\n")
-
- # by default uclibc uses mips1 ISA for o32 ABI
- # if we use TARGET_CC_ARCH="-march=mips32" we end up
- # with conflicting march options to gcc. Here we
- # ask for MIPS32 ISA to match the chosen arch
- tune = d.getVar("DEFAULTTUNE", True)
- if tune.startswith('mips32'):
- import re
- tune = re.sub('(el)*(-nf)*', '', tune)
- d.setVar('configmangle_append',
- "/^### MIPS32_CHECK$/a\\\nCONFIG_MIPS_ISA_%s=y\n\n" % (tune.upper()))
- if "${OE_FEATURES}":
- d.setVar('configmangle_append',
- "/^### DISTRO FEATURES$/a\\\n%s\n\n" %
- ("\\n".join((d.expand("${OE_FEATURES}").split("\n")))))
- d.setVar('configmangle_append',
- "/^### CROSS$/a\\\n%s\n" %
- ("\\n".join(["CROSS_COMPILER_PREFIX=\"${TARGET_PREFIX}\"",
- "UCLIBC_EXTRA_CFLAGS=\"${UCLIBC_EXTRA_CFLAGS}\"",
- "KERNEL_HEADERS=\"${STAGING_INCDIR}\"",
- "RUNTIME_PREFIX=\"/\"",
- "DEVEL_PREFIX=\"/${prefix}\"",
- "SHARED_LIB_LOADER_PREFIX=\"/lib\"",
- ])
- ))
- d.setVar('configmangle_append',
- "/^### TGT$/a\\\nTARGET_ARCH=\"%s\"\\nTARGET_%s=y\n" %
- ("${UCLIBC_ARCH}", "${UCLIBC_ARCH}"))
- d.setVar('configmangle_append',
- "/^### FPU$/a\\\n%s\n\n" % (["UCLIBC_HAS_FPU=y","# UCLIBC_HAS_FPU is not set"][d.getVar('TARGET_FPU', True) in [ 'soft' ]]))
- if "${UCLIBC_ENDIAN}":
- d.setVar('configmangle_append',
- "/^### ABI$/a\\\nARCH_WANTS_%s_ENDIAN=y\n\n" % ("${UCLIBC_ENDIAN}"))
- if "${UCLIBC_ABI}":
- d.setVar('configmangle_append',
- "/^### ABI$/a\\\nCONFIG_%s=y\n\n" % ("${UCLIBC_ABI}"))
-}
-
-python do_patch_append() {
- import subprocess
- subprocess.call("ln -sf ${STAGING_INCDIR}/linux ${S}/include/linux", shell=True)
- subprocess.call("ln -sf ${STAGING_INCDIR}/asm ${S}/include/asm", shell=True)
-}
-
-do_configure() {
- rm -f ${S}/.config
-
- # OpenEmbedded splits the uClibc.config in two parts:
- # uClibc.machine, uClibc.distro
- echo "### uClibc.machine ###" >${S}/merged.config
- cat ${WORKDIR}/uClibc.machine >>${S}/merged.config
- echo "### uClibc.distro ###" >>${S}/merged.config
- cat ${WORKDIR}/uClibc.distro >>${S}/merged.config
- echo "### CROSS" >>${S}/merged.config
- echo "### TGT" >>${S}/merged.config
- echo "### MMU" >>${S}/merged.config
- echo "### FPU" >>${S}/merged.config
- echo "### ABI" >>${S}/merged.config
- echo "### DISTRO FEATURES" >>${S}/merged.config
- echo "### MIPS32_CHECK" >>${S}/merged.config
-
- # Mangle the resulting .config depending on OE variables
- sed -i -e '${configmangle}' ${S}/merged.config
- cp ${S}/merged.config .config
- merge_config.sh -r -n -m .config ${@" ".join(find_cfgs(d))}
- cml1_do_configure
-
-}
-
-do_install() {
- oe_runmake PREFIX=${D} install
- rm -rf ${D}${includedir}/iconv.h
-}
-
-# build ldd, ldconfig and friends but only for full uclibc
-do_install_append_pn-uclibc () {
- oe_runmake PREFIX=${D} "SSP_ALL_CFLAGS=${TARGET_LINK_HASH_STYLE}" -C utils utils_install
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc_git.bb b/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc_git.bb
deleted file mode 100644
index fd02b3d61..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/uclibc/uclibc_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require uclibc.inc
-require uclibc-package.inc
-require uclibc-git.inc
-
-STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
-
-PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
-
-DEPENDS = "virtual/${TARGET_PREFIX}binutils \
- virtual/${TARGET_PREFIX}gcc-initial \
- virtual/${TARGET_PREFIX}libc-initial \
- linux-libc-headers ncurses-native \
- libgcc-initial kern-tools-native"
-
-RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
-RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
-# uclibc does not really have libsegfault but then using the one from glibc is also not
-# going to work. So we pretend that we have it to make bitbake not pull other recipes
-# to satisfy this dependency for the images/tasks
-
-RPROVIDES_${PN} += "libsegfault rtld(GNU_HASH)"
diff --git a/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.1.5.bb b/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.1.5.bb
deleted file mode 100644
index ea19ec413..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.1.5.bb
+++ /dev/null
@@ -1,107 +0,0 @@
-SUMMARY = "eudev is a fork of systemd's udev"
-HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev"
-LICENSE = "GPLv2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux"
-
-PROVIDES = "udev"
-
-SRC_URI = "https://github.com/gentoo/${BPN}/archive/v${PV}.tar.gz \
- file://devfs-udev.rules \
- file://init \
- file://links.conf \
- file://local.rules \
- file://permissions.rules \
- file://run.rules \
- file://udev-cache \
- file://udev-cache.default \
- file://udev.rules \
-"
-UPSTREAM_CHECK_URI = "https://github.com/gentoo/eudev/releases"
-
-SRC_URI[md5sum] = "e130f892d8744e292cb855db79935f68"
-SRC_URI[sha256sum] = "ce9d5fa91e3a42c7eb95512ca0fa2a631e89833053066bb6cdf42046b2a88553"
-
-inherit autotools update-rc.d qemu
-
-EXTRA_OECONF = " \
- --sbindir=${base_sbindir} \
- --libexecdir=${nonarch_base_libdir} \
- --with-rootlibdir=${base_libdir} \
- --with-rootprefix= \
-"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
- install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
- sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev
- sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev-cache
-
- install -d ${D}${sysconfdir}/default
- install -m 0755 ${WORKDIR}/udev-cache.default ${D}${sysconfdir}/default/udev-cache
-
- touch ${D}${sysconfdir}/udev/cache.data
-
- install -d ${D}${sysconfdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
-
- # Use classic network interface naming scheme
- touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules
-
- # Fix for multilib systems where libs along with confs are installed incorrectly
- if ! [ -d ${D}${nonarch_base_libdir}/udev ]
- then
- install -d ${D}${nonarch_base_libdir}/udev
- mv ${D}${base_libdir}/udev ${D}${nonarch_base_libdir}
- fi
-
- # hid2hci has moved to bluez4. removed in udev as of version 169
- rm -f ${D}${base_libdir}/udev/hid2hci
-}
-
-INITSCRIPT_PACKAGES = "eudev udev-cache"
-INITSCRIPT_NAME_eudev = "udev"
-INITSCRIPT_PARAMS_eudev = "start 04 S ."
-INITSCRIPT_NAME_udev-cache = "udev-cache"
-INITSCRIPT_PARAMS_udev-cache = "start 36 S ."
-
-PACKAGES =+ "libudev"
-PACKAGES =+ "udev-cache"
-PACKAGES =+ "eudev-hwdb"
-
-
-FILES_${PN} += "${libexecdir} ${nonarch_base_libdir}/udev ${bindir}/udevadm"
-FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \
- ${includedir}/libudev.h ${libdir}/libudev.so \
- ${includedir}/udev.h ${libdir}/libudev.la \
- ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc"
-FILES_libudev = "${base_libdir}/libudev.so.*"
-FILES_udev-cache = "${sysconfdir}/init.d/udev-cache ${sysconfdir}/default/udev-cache"
-FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d"
-
-RDEPENDS_eudev-hwdb += "eudev"
-
-RRECOMMENDS_${PN} += "udev-cache eudev-hwdb"
-
-RPROVIDES_${PN} = "hotplug udev"
-
-python () {
- if bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
- raise bb.parse.SkipPackage("'systemd' in DISTRO_FEATURES")
-}
-
-pkg_postinst_eudev-hwdb () {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${bindir}/udevadm')} hwdb --update --root $D
- chown root:root $D${sysconfdir}/udev/hwdb.bin
- else
- udevadm hwdb --update
- fi
-}
-
-pkg_prerm_eudev-hwdb () {
- rm -f $D${sysconfdir}/udev/hwdb.bin
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.2.bb b/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.2.bb
new file mode 100644
index 000000000..211252ceb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/udev/eudev_3.2.bb
@@ -0,0 +1,101 @@
+SUMMARY = "eudev is a fork of systemd's udev"
+HOMEPAGE = "https://wiki.gentoo.org/wiki/Eudev"
+LICENSE = "GPLv2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "glib-2.0 glib-2.0-native gperf-native kmod libxslt-native util-linux"
+
+PROVIDES = "udev"
+
+SRC_URI = "https://github.com/gentoo/${BPN}/archive/v${PV}.tar.gz \
+ file://devfs-udev.rules \
+ file://init \
+ file://links.conf \
+ file://local.rules \
+ file://permissions.rules \
+ file://run.rules \
+ file://udev-cache \
+ file://udev-cache.default \
+ file://udev.rules \
+"
+UPSTREAM_CHECK_URI = "https://github.com/gentoo/eudev/releases"
+
+SRC_URI[md5sum] = "9eb477cc8718db272b5d24dff1126b04"
+SRC_URI[sha256sum] = "37829d37f4beb7e358ca33abc1ad0907d87f917ce157777aeaeebeacae24efdc"
+
+inherit autotools update-rc.d qemu pkgconfig
+
+EXTRA_OECONF = " \
+ --sbindir=${base_sbindir} \
+ --with-rootlibdir=${base_libdir} \
+ --with-rootprefix= \
+"
+
+PACKAGECONFIG ??= "hwdb"
+PACKAGECONFIG[hwdb] = "--enable-hwdb,--disable-hwdb"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/udev
+ install -m 0755 ${WORKDIR}/udev-cache ${D}${sysconfdir}/init.d/udev-cache
+ sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev
+ sed -i s%@UDEVD@%${base_sbindir}/udevd% ${D}${sysconfdir}/init.d/udev-cache
+
+ install -d ${D}${sysconfdir}/default
+ install -m 0755 ${WORKDIR}/udev-cache.default ${D}${sysconfdir}/default/udev-cache
+
+ touch ${D}${sysconfdir}/udev/cache.data
+
+ install -d ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/local.rules ${D}${sysconfdir}/udev/rules.d/local.rules
+
+ # Use classic network interface naming scheme
+ touch ${D}${sysconfdir}/udev/rules.d/80-net-name-slot.rules
+
+ # hid2hci has moved to bluez4. removed in udev as of version 169
+ rm -f ${D}${base_libdir}/udev/hid2hci
+}
+
+INITSCRIPT_PACKAGES = "eudev udev-cache"
+INITSCRIPT_NAME_eudev = "udev"
+INITSCRIPT_PARAMS_eudev = "start 04 S ."
+INITSCRIPT_NAME_udev-cache = "udev-cache"
+INITSCRIPT_PARAMS_udev-cache = "start 36 S ."
+
+PACKAGES =+ "libudev"
+PACKAGES =+ "udev-cache"
+PACKAGES =+ "eudev-hwdb"
+
+
+FILES_${PN} += "${libexecdir} ${base_libdir}/udev ${bindir}/udevadm"
+FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \
+ ${includedir}/libudev.h ${libdir}/libudev.so \
+ ${includedir}/udev.h ${libdir}/libudev.la \
+ ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc"
+FILES_libudev = "${base_libdir}/libudev.so.*"
+FILES_udev-cache = "${sysconfdir}/init.d/udev-cache ${sysconfdir}/default/udev-cache"
+FILES_eudev-hwdb = "${sysconfdir}/udev/hwdb.d"
+
+RDEPENDS_eudev-hwdb += "eudev"
+
+RRECOMMENDS_${PN} += "udev-cache"
+
+RPROVIDES_${PN} = "hotplug udev"
+
+python () {
+ if bb.utils.contains ('DISTRO_FEATURES', 'systemd', True, False, d):
+ raise bb.parse.SkipPackage("'systemd' in DISTRO_FEATURES")
+}
+
+pkg_postinst_eudev-hwdb () {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/udevadm')} hwdb --update --root $D
+ chown root:root $D${sysconfdir}/udev/hwdb.bin
+ else
+ udevadm hwdb --update
+ fi
+}
+
+pkg_prerm_eudev-hwdb () {
+ rm -f $D${sysconfdir}/udev/hwdb.bin
+}
diff --git a/import-layers/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb b/import-layers/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
index c15cb7803..3b965c50b 100644
--- a/import-layers/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-core/update-rc.d/update-rc.d_0.7.bb
@@ -1,5 +1,5 @@
SUMMARY = "manage symlinks in /etc/rcN.d"
-DESCRIPTION = "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure."
+DESCRIPTION = "update-rc.d is a utility that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure."
SECTION = "base"
LICENSE = "GPLv2+"
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux.inc b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux.inc
index 8c0c63083..c6355021f 100644
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux.inc
@@ -17,7 +17,8 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=1715f5ee3e01203ca1e1e0b9ee65918c
file://libmount/COPYING;md5=fb93f01d4361069c5616327705373b16 \
file://libblkid/COPYING;md5=fb93f01d4361069c5616327705373b16"
-inherit autotools gettext pkgconfig systemd update-alternatives python-dir ptest bash-completion
+#gtk-doc is not enabled as it requires xmlto which requires util-linux
+inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest
DEPENDS = "zlib ncurses"
DEPENDS_append_class-native = " lzo-native"
DEPENDS_append_class-nativesdk = " lzo-native"
@@ -32,7 +33,7 @@ PACKAGES =+ "util-linux-agetty util-linux-fdisk util-linux-cfdisk util-linux-sfd
util-linux-mkfs util-linux-mcookie util-linux-reset \
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-findfs util-linux-getopt util-linux-sulogin util-linux-prlimit"
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', 'util-linux-pylibmount', '', d)}"
PACKAGES =+ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'util-linux-runuser', '', d)}"
@@ -61,14 +62,14 @@ PACKAGECONFIG[systemd] = "--with-systemd --with-systemdsystemunitdir=${systemd_u
PACKAGECONFIG[libcap-ng] = "--enable-setpriv,--disable-setpriv,libcap-ng,"
# Build python bindings for libmount
-PACKAGECONFIG[pylibmount] = "--with-python --enable-pylibmount,--without-python --disable-pylibmount,python"
+PACKAGECONFIG[pylibmount] = "--with-python=3 --enable-pylibmount,--without-python --disable-pylibmount,python3"
# Readline support
PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
FILES_${PN}-doc += "${datadir}/getopt/getopt-*.*"
-FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/dist-packages/libmount/pylibmount.la"
+FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.la"
FILES_util-linux-agetty = "${base_sbindir}/agetty"
FILES_util-linux-fdisk = "${base_sbindir}/fdisk.${BPN}"
@@ -89,9 +90,11 @@ FILES_util-linux-hwclock = "${base_sbindir}/hwclock.${BPN}"
FILES_util-linux-findfs = "${sbindir}/findfs"
FILES_util-linux-getopt = "${base_bindir}/getopt.${BPN}"
FILES_util-linux-runuser = "${sbindir}/runuser"
+FILES_util-linux-prlimit = "${bindir}/prlimit"
-FILES_util-linux-pylibmount = "${libdir}/${PYTHON_DIR}/dist-packages/libmount/pylibmount.so \
- ${libdir}/${PYTHON_DIR}/dist-packages/libmount/__init__.*"
+FILES_util-linux-pylibmount = "${PYTHON_SITEPACKAGES_DIR}/libmount/pylibmount.so \
+ ${PYTHON_SITEPACKAGES_DIR}/libmount/__init__.* \
+ ${PYTHON_SITEPACKAGES_DIR}/libmount/__pycache__/*"
FILES_util-linux-lscpu = "${bindir}/lscpu"
FILES_util-linux-fsck = "${base_sbindir}/fsck*"
@@ -116,7 +119,7 @@ RDEPENDS_util-linux-runuser += "libpam"
RDEPENDS_${PN} = "util-linux-umount util-linux-swaponoff util-linux-losetup util-linux-sulogin"
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"
+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"
RRECOMMENDS_${PN}_class-native = ""
RRECOMMENDS_${PN}_class-nativesdk = ""
@@ -280,7 +283,7 @@ python populate_packages_prepend() {
extra_depends='', prepend=True, allow_links=True)
}
-RDEPENDS_${PN}-ptest = "bash"
+RDEPENDS_${PN}-ptest = "bash grep coreutils"
do_compile_ptest() {
oe_runmake buildtest-TESTS
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_grep_opts.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_grep_opts.patch
deleted file mode 100644
index a0d5efad0..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_grep_opts.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Avoid unsupported grep options
-
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-Upstream-Status: Pending
-
-diff -ruN a/ts/ipcs/headers b/ts/ipcs/headers
---- a/tests/ts/ipcs/headers 2013-09-04 11:03:36.118613250 +0200
-+++ b/teste/ts/ipcs/headers 2013-09-04 11:03:27.906958437 +0200
-@@ -22,35 +22,35 @@
- ts_init "$*"
-
- ts_log "test: shm headers"
--$TS_CMD_IPCS -m -t | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -m -p | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -m -c | grep --after-context=1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -m -t | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -m -p | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -m -c | grep -A 1 "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -m -l | grep "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -m -u | grep "^---" >> $TS_OUTPUT
- echo >> $TS_OUTPUT
-
- ts_log "test: mesg headers"
--$TS_CMD_IPCS -q -t | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -q -p | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -q -c | grep --after-context=1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -q -t | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -q -p | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -q -c | grep -A 1 "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -q -l | grep "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -q -u | grep "^---" >> $TS_OUTPUT
- echo >> $TS_OUTPUT
-
- ts_log "test: sem headers"
--$TS_CMD_IPCS -s -t | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -s -p | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -s -c | grep --after-context=1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -s -t | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -s -p | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -s -c | grep -A 1 "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -s -l | grep "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -s -u | grep "^---" >> $TS_OUTPUT
- echo >> $TS_OUTPUT
-
- ts_log "test: all headers"
--$TS_CMD_IPCS -a | grep --after-context=1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -a | grep -A 1 "^---" >> $TS_OUTPUT
-
--$TS_CMD_IPCS -a -t | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -a -p | grep --after-context=1 "^---" >> $TS_OUTPUT
--$TS_CMD_IPCS -a -c | grep --after-context=1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -a -t | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -a -p | grep -A 1 "^---" >> $TS_OUTPUT
-+$TS_CMD_IPCS -a -c | grep -A 1 "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -a -l | grep "^---" >> $TS_OUTPUT
- $TS_CMD_IPCS -a -u | grep "^---" >> $TS_OUTPUT
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_sleep_param.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_sleep_param.patch
deleted file mode 100644
index 7a63a4e05..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/avoid_unsupported_sleep_param.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Avoid unsupported sleep parameter
-
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-Upstream-Status: Pending
-
-diff -ruN a/simple b/simple
---- a/tests/ts/tailf/simple 2015-11-12 11:34:49.971817130 +0200
-+++ b/tests/ts/tailf/simple 2013-11-12 11:34:37.876325128 +0200
-@@ -27,9 +27,9 @@
-
- $TS_CMD_TAILF $INPUT > $TS_OUTPUT 2>&1 &
-
--sleep 0.5
-+sleep 1
- echo {0..9} >> $INPUT
--sleep 0.5
-+sleep 1
-
- rm -f $INPUT
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
index 0eb881085..417ca1d98 100644
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
@@ -3,16 +3,23 @@ Display testname for subtest
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Upstream-Status: Pending
-diff -ruN a/functions.sh b/functions.sh
---- a/tests/functions.sh 2015-11-12 21:32:02.434542124 +0100
-+++ b/tests/functions.sh 2015-11-12 21:40:37.095317280 +0100
-@@ -297,7 +297,7 @@
- if [ "$TS_PARALLEL" == "yes" ]; then
- TS_TITLE=$(printf "%13s: %-30s ...\n%16s: %-27s ..." "$TS_COMPONENT" "$TS_DESC" "" "$TS_SUBNAME")
- else
-- TS_TITLE=$(printf "%16s: %-27s ..." "" "$TS_SUBNAME")
-+ TS_TITLE=$(printf "%13s: %-30s ..." "$TS_COMPONENT" "$TS_SUBNAME")
- echo -n "$TS_TITLE"
+---
+ tests/functions.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/functions.sh b/tests/functions.sh
+index 5246605..b24dc15 100644
+--- a/tests/functions.sh
++++ b/tests/functions.sh
+@@ -320,7 +320,7 @@ function ts_init_subtest {
+
+ if [ "$TS_PARSABLE" != "yes" ]; then
+ [ $TS_NSUBTESTS -eq 1 ] && echo
+- printf "%16s: %-27s ..." "" "$TS_SUBNAME"
++ printf "%13s: %-30s ..." "$TS_COMPONENT" "$TS_SUBNAME"
fi
}
+
+--
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/ptest.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/ptest.patch
index 837f18934..0537f7d85 100644
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/ptest.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/ptest.patch
@@ -2,16 +2,22 @@ Define TESTS variable
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Upstream-Status: Pending
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
-diff -ruN a/Makefile.am b/Makefile.am
---- a/Makefile.am 2015-11-12 20:29:46.778396936 +0100
-+++ b/Makefile.am 2015-11-12 20:32:24.342450279 +0100
-@@ -48,7 +48,7 @@
+diff --git a/Makefile.am b/Makefile.am
+index bbaccb1..7d5a6bb 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -48,6 +48,7 @@ systemdsystemunit_DATA =
dist_bashcompletion_DATA =
check_PROGRAMS =
dist_check_SCRIPTS =
--TESTS =
+TESTS = $(check_PROGRAMS)
PATHFILES =
+
+--
+2.8.3
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-native.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-native.patch
deleted file mode 100644
index 1f496dee2..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-native.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Support older hosts with latest util-linux-native
-
-mkostemp is not defined on older machines. So we detect this and
-provide a define that uses mkstemp instead.
-
-O_CLOEXEC is not defined on older machines. It is however defined
-in the 'c.h' header. Fix up the users to include 'c.h'.
-
-fdisks/fdisksunlabel.c was modified to use qsort_r, however
-this is not defined on older hosts. Revert:
- commit c69bbca9c1f6645097bd20fe3a21f5a99a2a0698
- fdisk: (sun): use ask API, remove global variable
-
-Upstream-Status: Inappropriate [other]
-Patches revert upstream changes in order to support older
-machines.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- configure.ac | 1 +
- include/c.h | 7 +++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index eb3680b..93e015f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -318,6 +318,7 @@ AC_CHECK_FUNCS([ \
- llseek \
- lseek64 \
- mempcpy \
-+ mkostemp \
- nanosleep \
- open_memstream \
- personality \
-diff --git a/include/c.h b/include/c.h
-index e423e8b..cf33b94 100644
---- a/include/c.h
-+++ b/include/c.h
-@@ -233,6 +233,13 @@ static inline int dirfd(DIR *d)
- #endif
-
- /*
-+ * mkostemp replacement
-+ */
-+#ifndef HAVE_MKOSTEMP
-+#define mkostemp(template, flags) mkstemp(template)
-+#endif
-+
-+/*
- * MAXHOSTNAMELEN replacement
- */
- static inline size_t get_hostname_max(void)
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-ng-2.16-mount_lock_path.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-ng-2.16-mount_lock_path.patch
deleted file mode 100644
index 5773d7ea1..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/util-linux-ng-2.16-mount_lock_path.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-The FHS indicates that /etc must be capable of being mounted R/O.
-
-The FHS also indicates that lock files belong in /var/lock, and /var must
-be R/W as soon as possible during boot.
-
-This patch moves the mtab lock file from the potentially R/O /etc, to the
-R/W /var/lock area. This lock file is used when mounting disks and making
-other mount adjustments. The _PATH_MOUNTED_TMP is not adjusted, as failing
-to write to this file does not cause any functional limitations.
-
-(Note, if /etc is R/O, then /etc/mtab should be a symlink to /proc/mounts)
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
---- util-linux-ng-2.16/include/pathnames.h.orig
-+++ util-linux-ng-2.16/include/pathnames.h
-@@ -90,7 +90,7 @@
- # endif
- #endif
-
--#define _PATH_MOUNTED_LOCK _PATH_MOUNTED "~"
-+#define _PATH_MOUNTED_LOCK "/var/lock/mtab~"
- #define _PATH_MOUNTED_TMP _PATH_MOUNTED ".tmp"
-
- #ifndef _PATH_DEV
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch
index 1b0ff79d4..a6fde5d9c 100644
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch
+++ b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch
@@ -3,19 +3,23 @@ This patch adds error() API implementation for non-glibc system C libs
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: util-linux-2.27.1/tests/helpers/test_uuidd.c
-===================================================================
---- util-linux-2.27.1.orig/tests/helpers/test_uuidd.c
-+++ util-linux-2.27.1/tests/helpers/test_uuidd.c
+---
+ misc-utils/test_uuidd.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 61 insertions(+), 1 deletion(-)
+
+diff --git a/misc-utils/test_uuidd.c b/misc-utils/test_uuidd.c
+index 36f3b3d..7d579ce 100644
+--- a/misc-utils/test_uuidd.c
++++ b/misc-utils/test_uuidd.c
@@ -23,7 +23,6 @@
*
* make uuidd uuidgen localstatedir=/var
*/
-#include <error.h>
- #include <libgen.h>
#include <pthread.h>
#include <stdio.h>
-@@ -39,6 +38,17 @@
+ #include <stdlib.h>
+@@ -38,6 +37,17 @@
#include "xalloc.h"
#include "strutils.h"
@@ -33,7 +37,7 @@ Index: util-linux-2.27.1/tests/helpers/test_uuidd.c
#define LOG(level,args) if (loglev >= level) { fprintf args; }
size_t nprocesses = 4;
-@@ -257,6 +267,56 @@ static void object_dump(size_t idx, obje
+@@ -256,6 +266,56 @@ static void object_dump(size_t idx, object_t *obj)
fprintf(stderr, "}\n");
}
@@ -90,3 +94,6 @@ Index: util-linux-2.27.1/tests/helpers/test_uuidd.c
int main(int argc, char *argv[])
{
size_t i, nfailed = 0, nignored = 0;
+--
+2.8.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.27.1.bb b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.27.1.bb
deleted file mode 100644
index 754915831..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.27.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-MAJOR_VERSION = "2.27"
-require util-linux.inc
-
-# To support older hosts, we need to patch and/or revert
-# some upstream changes. Only do this for native packages.
-OLDHOST = ""
-OLDHOST_class-native = "file://util-linux-native.patch \
- file://util-linux-native-qsort.patch \
- "
-
-SRC_URI += "file://util-linux-ng-2.16-mount_lock_path.patch \
- file://configure-sbindir.patch \
- file://runuser.pamd \
- file://runuser-l.pamd \
- ${OLDHOST} \
- file://ptest.patch \
- file://run-ptest \
- file://avoid_unsupported_sleep_param.patch \
- file://avoid_unsupported_grep_opts.patch \
- file://display_testname_for_subtest.patch \
- file://avoid_parallel_tests.patch \
- file://uuid-test-error-api.patch \
-"
-SRC_URI[md5sum] = "3cd2698d1363a2c64091c2dadc974647"
-SRC_URI[sha256sum] = "0a818fcdede99aec43ffe6ca5b5388bff80d162f2f7bd4541dca94fecb87a290"
-
-CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms"
-
-EXTRA_OECONF_class-native = "${SHARED_EXTRA_OECONF} \
- --disable-fallocate \
- --disable-use-tty-group \
-"
-EXTRA_OECONF_class-nativesdk = "${SHARED_EXTRA_OECONF} \
- --disable-fallocate \
- --disable-use-tty-group \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.28.1.bb b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.28.1.bb
new file mode 100644
index 000000000..f232cb9f3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-core/util-linux/util-linux_2.28.1.bb
@@ -0,0 +1,31 @@
+MAJOR_VERSION = "2.28"
+require util-linux.inc
+
+# To support older hosts, we need to patch and/or revert
+# some upstream changes. Only do this for native packages.
+OLDHOST = ""
+OLDHOST_class-native = "file://util-linux-native-qsort.patch"
+
+SRC_URI += "file://configure-sbindir.patch \
+ file://runuser.pamd \
+ file://runuser-l.pamd \
+ ${OLDHOST} \
+ file://ptest.patch \
+ file://run-ptest \
+ file://display_testname_for_subtest.patch \
+ file://avoid_parallel_tests.patch \
+ file://uuid-test-error-api.patch \
+"
+SRC_URI[md5sum] = "e2d863efaf4fd330a42c5efe9f1b02b4"
+SRC_URI[sha256sum] = "3ece4ea4a34ef786b68f5c415e848390424232abd1ee00f7ee5bddc30657b60f"
+
+CACHED_CONFIGUREVARS += "scanf_cv_alloc_modifier=ms"
+
+EXTRA_OECONF_class-native = "${SHARED_EXTRA_OECONF} \
+ --disable-fallocate \
+ --disable-use-tty-group \
+"
+EXTRA_OECONF_class-nativesdk = "${SHARED_EXTRA_OECONF} \
+ --disable-fallocate \
+ --disable-use-tty-group \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native.inc b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native.inc
index 27cc9ff0b..9fa206efe 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native.inc
@@ -17,8 +17,8 @@ python do_install () {
}
python do_install_config () {
- indir = os.path.dirname(d.getVar('FILE',1))
- infile = file(oe.path.join(indir, 'files', 'apt.conf'), 'r')
+ indir = os.path.dirname(d.getVar('FILE', True))
+ infile = open(oe.path.join(indir, 'files', 'apt.conf'), 'r')
data = infile.read()
infile.close()
@@ -30,7 +30,7 @@ python do_install_config () {
outpath = oe.path.join(outdir, 'apt.conf.sample')
if not os.path.exists(outpath):
- outfile = file(outpath, 'w')
+ outfile = open(outpath, 'w')
outfile.write(data)
outfile.close()
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.0.10.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.2.12.bb
index 1e660da74..1e660da74 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.0.10.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt-native_1.2.12.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt.inc b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt.inc
index 78ef5a7e1..302637084 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt.inc
@@ -2,7 +2,7 @@ SUMMARY = "Advanced front-end for dpkg"
LICENSE = "GPLv2.0+"
SECTION = "base"
-SRC_URI = "http://snapshot.debian.org/archive/debian/20150805T094928Z/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160526T162943Z/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \
file://use-host.patch \
file://makerace.patch \
file://no-nls-dpkg.patch \
@@ -12,16 +12,17 @@ SRC_URI = "http://snapshot.debian.org/archive/debian/20150805T094928Z/pool/main/
file://disable-configure-in-makefile.patch \
file://disable-test.patch \
file://0001-environment.mak-musl-based-systems-can-generate-shar.patch \
+ file://0001-apt-1.2.12-Fix-musl-build.patch \
"
-SRC_URI[md5sum] = "6505c4297b338adb2087ce87bbc4a276"
-SRC_URI[sha256sum] = "3fb1de9598363c416591d49e3c285458e095b035e6c06d5b944a54e15fc9b543"
+SRC_URI[md5sum] = "80f6f0ef110a45a7e5af8a9d233fb0e7"
+SRC_URI[sha256sum] = "e820d27cba73476df4abcff27dadd1b5847474bfe85f7e9202a9a07526973ea6"
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
# the package is taken from snapshots.debian.org; that source is static and goes stale
# so we check the latest upstream from a directory that does get updated
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/apt/"
-inherit autotools gettext
+inherit autotools gettext useradd
EXTRA_AUTORECONF = "--exclude=autopoint,autoheader"
@@ -29,3 +30,6 @@ do_configure_prepend() {
rm -rf ${S}/buildlib/config.sub
rm -rf ${S}/buildlib/config.guess
}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /nonexistent --shell /bin/false --user-group _apt"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
index d33069b73..b3a883bae 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
@@ -1,4 +1,4 @@
-From 106797f1c66fa578dad21fd9380bf9d576573dfd Mon Sep 17 00:00:00 2001
+From dfc1370d50322e2e9d225a7a63b44993fc01a727 Mon Sep 17 00:00:00 2001
From: Roy Li <rongqing.li@windriver.com>
Date: Fri, 22 May 2015 08:05:15 +0800
Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our
@@ -16,21 +16,16 @@ be passed into dpkg, and lead to the below similar error:
Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
- apt-pkg/deb/dpkgpm.cc | 9 +--
- test/integration/framework | 25 ++++----
- test/integration/test-apt-progress-fd | 67 +++++++++----------
- test/integration/test-apt-progress-fd-deb822 | 18 ++----
- test/integration/test-apt-progress-fd-error | 2 +-
- ...est-bug-769609-triggers-still-pending-after-run | 75 ----------------------
- .../test-no-fds-leaked-to-maintainer-scripts | 6 +-
- 7 files changed, 56 insertions(+), 146 deletions(-)
- delete mode 100755 test/integration/test-bug-769609-triggers-still-pending-after-run
+ apt-pkg/deb/dpkgpm.cc | 9 ++-------
+ test/integration/test-apt-progress-fd-deb822 | 14 +++++++-------
+ test/integration/test-no-fds-leaked-to-maintainer-scripts | 6 ++----
+ 3 files changed, 11 insertions(+), 18 deletions(-)
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
-index b187efb..f269764 100644
+index 834cb0e..84ded3a 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
-@@ -1049,12 +1049,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
+@@ -1037,12 +1037,6 @@ void pkgDPkgPM::BuildPackagesProgressMap()
PackagesTotal++;
}
}
@@ -42,8 +37,8 @@ index b187efb..f269764 100644
- ++PackagesTotal;
}
/*}}}*/
- #if (APT_PKG_MAJOR >= 4 && APT_PKG_MINOR < 13)
-@@ -1294,8 +1288,9 @@ bool pkgDPkgPM::GoNoABIBreak(APT::Progress::PackageManager *progress)
+ bool pkgDPkgPM::Go(int StatusFd)
+@@ -1250,8 +1244,9 @@ bool pkgDPkgPM::Go(APT::Progress::PackageManager *progress)
// support subpressing of triggers processing for special
// cases like d-i that runs the triggers handling manually
@@ -54,159 +49,11 @@ index b187efb..f269764 100644
List.push_back(Item(Item::ConfigurePending, PkgIterator()));
// for the progress
-diff --git a/test/integration/framework b/test/integration/framework
-index 70ad381..00672ad 100644
---- a/test/integration/framework
-+++ b/test/integration/framework
-@@ -1178,13 +1178,10 @@ testnopackage() {
- fi
- }
-
--testdpkgstatus() {
-- local STATE="$1"
-- local NR="$2"
-- shift 2
-- msgtest "Test that $NR package(s) are in state $STATE with" "dpkg -l $*"
-- local PKGS="$(dpkg -l "$@" 2>/dev/null | grep "^${STATE}" | wc -l)"
-- if [ "$PKGS" != $NR ]; then
-+testdpkginstalled() {
-+ msgtest "Test for correctly installed package(s) with" "dpkg -l $*"
-+ local PKGS="$(dpkg -l "$@" 2>/dev/null | grep '^i' | wc -l)"
-+ if [ "$PKGS" != $# ]; then
- echo >&2 $PKGS
- dpkg -l "$@" | grep '^[a-z]' >&2
- msgfail
-@@ -1193,12 +1190,16 @@ testdpkgstatus() {
- fi
- }
-
--testdpkginstalled() {
-- testdpkgstatus 'ii' "$#" "$@"
--}
--
- testdpkgnotinstalled() {
-- testdpkgstatus 'ii' '0' "$@"
-+ msgtest "Test for correctly not-installed package(s) with" "dpkg -l $*"
-+ local PKGS="$(dpkg -l "$@" 2> /dev/null | grep '^i' | wc -l)"
-+ if [ "$PKGS" != 0 ]; then
-+ echo
-+ dpkg -l "$@" | grep '^[a-z]' >&2
-+ msgfail
-+ else
-+ msgpass
-+ fi
- }
-
- testmarkedauto() {
-diff --git a/test/integration/test-apt-progress-fd b/test/integration/test-apt-progress-fd
-index 68cc043..d72e7e7 100755
---- a/test/integration/test-apt-progress-fd
-+++ b/test/integration/test-apt-progress-fd
-@@ -19,14 +19,13 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
- dlstatus:1:0:Retrieving file 1 of 1
- pmstatus:dpkg-exec:0:Running dpkg
- pmstatus:testing:0:Installing testing (amd64)
--pmstatus:testing:16.6667:Preparing testing (amd64)
--pmstatus:testing:33.3333:Unpacking testing (amd64)
--pmstatus:testing:50:Preparing to configure testing (amd64)
--pmstatus:dpkg-exec:50:Running dpkg
--pmstatus:testing:50:Configuring testing (amd64)
--pmstatus:testing:66.6667:Configuring testing (amd64)
--pmstatus:testing:83.3333:Installed testing (amd64)
--pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
-+pmstatus:testing:20:Preparing testing (amd64)
-+pmstatus:testing:40:Unpacking testing (amd64)
-+pmstatus:testing:60:Preparing to configure testing (amd64)
-+pmstatus:dpkg-exec:60:Running dpkg
-+pmstatus:testing:60:Configuring testing (amd64)
-+pmstatus:testing:80:Configuring testing (amd64)
-+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
-
- # upgrade
- exec 3> apt-progress.log
-@@ -35,14 +34,13 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
- dlstatus:1:0:Retrieving file 1 of 1
- pmstatus:dpkg-exec:0:Running dpkg
- pmstatus:testing:0:Installing testing (amd64)
--pmstatus:testing:16.6667:Preparing testing (amd64)
--pmstatus:testing:33.3333:Unpacking testing (amd64)
--pmstatus:testing:50:Preparing to configure testing (amd64)
--pmstatus:dpkg-exec:50:Running dpkg
--pmstatus:testing:50:Configuring testing (amd64)
--pmstatus:testing:66.6667:Configuring testing (amd64)
--pmstatus:testing:83.3333:Installed testing (amd64)
--pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
-+pmstatus:testing:20:Preparing testing (amd64)
-+pmstatus:testing:40:Unpacking testing (amd64)
-+pmstatus:testing:60:Preparing to configure testing (amd64)
-+pmstatus:dpkg-exec:60:Running dpkg
-+pmstatus:testing:60:Configuring testing (amd64)
-+pmstatus:testing:80:Configuring testing (amd64)
-+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
-
- # reinstall
- exec 3> apt-progress.log
-@@ -51,24 +49,22 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
- dlstatus:1:0:Retrieving file 1 of 1
- pmstatus:dpkg-exec:0:Running dpkg
- pmstatus:testing:0:Installing testing (amd64)
--pmstatus:testing:16.6667:Preparing testing (amd64)
--pmstatus:testing:33.3333:Unpacking testing (amd64)
--pmstatus:testing:50:Preparing to configure testing (amd64)
--pmstatus:dpkg-exec:50:Running dpkg
--pmstatus:testing:50:Configuring testing (amd64)
--pmstatus:testing:66.6667:Configuring testing (amd64)
--pmstatus:testing:83.3333:Installed testing (amd64)
--pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
-+pmstatus:testing:20:Preparing testing (amd64)
-+pmstatus:testing:40:Unpacking testing (amd64)
-+pmstatus:testing:60:Preparing to configure testing (amd64)
-+pmstatus:dpkg-exec:60:Running dpkg
-+pmstatus:testing:60:Configuring testing (amd64)
-+pmstatus:testing:80:Configuring testing (amd64)
-+pmstatus:testing:100:Installed testing (amd64)" cat apt-progress.log
-
- # and remove
- exec 3> apt-progress.log
- testsuccess aptget remove testing -y -o APT::Status-Fd=3
- testequal "pmstatus:dpkg-exec:0:Running dpkg
- pmstatus:testing:0:Removing testing (amd64)
--pmstatus:testing:25:Preparing for removal of testing (amd64)
--pmstatus:testing:50:Removing testing (amd64)
--pmstatus:testing:75:Removed testing (amd64)
--pmstatus:dpkg-exec:75:Running dpkg" cat apt-progress.log
-+pmstatus:testing:33.3333:Preparing for removal of testing (amd64)
-+pmstatus:testing:66.6667:Removing testing (amd64)
-+pmstatus:testing:100:Removed testing (amd64)" cat apt-progress.log
-
- # install non-native and ensure we get proper progress info
- exec 3> apt-progress.log
-@@ -79,13 +75,12 @@ testequal "dlstatus:1:0:Retrieving file 1 of 1
- dlstatus:1:0:Retrieving file 1 of 1
- pmstatus:dpkg-exec:0:Running dpkg
- pmstatus:testing2:0:Installing testing2 (i386)
--pmstatus:testing2:16.6667:Preparing testing2 (i386)
--pmstatus:testing2:33.3333:Unpacking testing2 (i386)
--pmstatus:testing2:50:Preparing to configure testing2 (i386)
--pmstatus:dpkg-exec:50:Running dpkg
--pmstatus:testing2:50:Configuring testing2 (i386)
--pmstatus:testing2:66.6667:Configuring testing2 (i386)
--pmstatus:testing2:83.3333:Installed testing2 (i386)
--pmstatus:dpkg-exec:83.3333:Running dpkg" cat apt-progress.log
-+pmstatus:testing2:20:Preparing testing2 (i386)
-+pmstatus:testing2:40:Unpacking testing2 (i386)
-+pmstatus:testing2:60:Preparing to configure testing2 (i386)
-+pmstatus:dpkg-exec:60:Running dpkg
-+pmstatus:testing2:60:Configuring testing2 (i386)
-+pmstatus:testing2:80:Configuring testing2 (i386)
-+pmstatus:testing2:100:Installed testing2 (i386)" cat apt-progress.log
-
- rm -f apt-progress*.log
diff --git a/test/integration/test-apt-progress-fd-deb822 b/test/integration/test-apt-progress-fd-deb822
-index badc985..9d22794 100755
+index 58fd732..3359762 100755
--- a/test/integration/test-apt-progress-fd-deb822
+++ b/test/integration/test-apt-progress-fd-deb822
-@@ -27,41 +27,37 @@ Message: Installing testing (amd64)
+@@ -27,36 +27,36 @@ Message: Installing testing (amd64)
Status: progress
Package: testing:amd64
@@ -248,109 +95,10 @@ index badc985..9d22794 100755
-Percent: 83.3333
+Percent: 100
Message: Installed testing (amd64)
--
--Status: progress
--Percent: 83.3333
--Message: Running dpkg
- " cat apt-progress.log
-
-diff --git a/test/integration/test-apt-progress-fd-error b/test/integration/test-apt-progress-fd-error
-index 6323007..a47095b 100755
---- a/test/integration/test-apt-progress-fd-error
-+++ b/test/integration/test-apt-progress-fd-error
-@@ -18,7 +18,7 @@ setupaptarchive
- exec 3> apt-progress.log
- testfailure aptget install foo1 foo2 -y -o APT::Status-Fd=3
- msgtest "Ensure correct error message"
--if grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb:36.3636:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log; then
-+if grep -q "aptarchive/pool/foo2_0.8.15_amd64.deb:40:trying to overwrite '/usr/bin/file-conflict', which is also in package foo1 0.8.15" apt-progress.log; then
- msgpass
- else
- cat apt-progress.log
-diff --git a/test/integration/test-bug-769609-triggers-still-pending-after-run b/test/integration/test-bug-769609-triggers-still-pending-after-run
-deleted file mode 100755
-index 146fa76..0000000
---- a/test/integration/test-bug-769609-triggers-still-pending-after-run
-+++ /dev/null
-@@ -1,75 +0,0 @@
--#!/bin/sh
--set -e
--
--TESTDIR=$(readlink -f $(dirname $0))
--. $TESTDIR/framework
--
--setupenvironment
--configarchitecture 'amd64'
--
--msgtest 'Check if installed dpkg supports' 'noawait trigger'
--if dpkg-checkbuilddeps -d 'dpkg (>= 1.16.1)' /dev/null; then
-- msgpass
--else
-- msgskip 'dpkg version too old'
-- exit 0
--fi
--configdpkgnoopchroot
--
--buildtriggerpackages() {
-- local TYPE="$1"
-- setupsimplenativepackage "triggerable-$TYPE" 'all' '1.0' 'unstable' "Depends: trigdepends-$TYPE"
-- BUILDDIR="incoming/triggerable-${TYPE}-1.0"
-- cat >${BUILDDIR}/debian/postinst <<EOF
--#!/bin/sh
--if [ "\$1" = 'triggered' ]; then
-- ls -l /proc/self/fd/
--fi
--EOF
-- echo "$TYPE /usr/share/doc" > ${BUILDDIR}/debian/triggers
-- buildpackage "$BUILDDIR" 'unstable' 'main' 'native'
-- rm -rf "$BUILDDIR"
-- buildsimplenativepackage "trigdepends-$TYPE" 'all' '1.0' 'unstable'
--}
--
--#buildtriggerpackages 'interest'
--buildtriggerpackages 'interest-noawait'
--buildsimplenativepackage "trigstuff" 'all' '1.0' 'unstable'
--
--setupaptarchive
--
--runtests() {
-- local TYPE="$1"
-- msgmsg 'Working with trigger type' "$TYPE"
-- testsuccess aptget install triggerable-$TYPE -y
-- cp rootdir/tmp/testsuccess.output terminal.output
-- testsuccess grep '^REWRITE ' terminal.output
-- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
--
-- testsuccess aptget install trigdepends-$TYPE -y --reinstall
-- cp rootdir/tmp/testsuccess.output terminal.output
-- testsuccess grep '^REWRITE ' terminal.output
-- testsuccess grep ' root root ' terminal.output
-- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
--
-- testsuccess aptget install trigstuff -y
-- cp rootdir/tmp/testsuccess.output terminal.output
-- testsuccess grep '^REWRITE ' terminal.output
-- testsuccess grep ' root root ' terminal.output
-- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE trigstuff
--
-- testsuccess aptget purge trigstuff -y
-- cp rootdir/tmp/testsuccess.output terminal.output
-- testsuccess grep '^REWRITE ' terminal.output
-- testsuccess grep ' root root ' terminal.output
-- testdpkginstalled triggerable-$TYPE trigdepends-$TYPE
-- testdpkgnotinstalled trigstuff
--
-- testsuccess aptget purge trigdepends-$TYPE -y
-- cp rootdir/tmp/testsuccess.output terminal.output
-- testfailure grep '^REWRITE ' terminal.output
-- testfailure grep ' root root ' terminal.output
-- testdpkgnotinstalled triggerable-$TYPE trigdepends-$TYPE
--}
--#runtests 'interest'
--runtests 'interest-noawait'
+ Status: progress
diff --git a/test/integration/test-no-fds-leaked-to-maintainer-scripts b/test/integration/test-no-fds-leaked-to-maintainer-scripts
-index 41c0570..d3960d7 100755
+index d86e638..ef6d23b 100755
--- a/test/integration/test-no-fds-leaked-to-maintainer-scripts
+++ b/test/integration/test-no-fds-leaked-to-maintainer-scripts
@@ -59,8 +59,7 @@ startup packages configure
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch
new file mode 100644
index 000000000..04b040658
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-apt-1.2.12-Fix-musl-build.patch
@@ -0,0 +1,50 @@
+From 33b97e089d4a98d3acd20bd78337dd915b989bc2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Fri, 5 Aug 2016 15:24:27 -0500
+Subject: [PATCH] apt 1.2.12: Fix musl build
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+methods/connect.cc: Musl doesn't support AI_IDN flag in netdb.h
+header so define it manually.
+apt-pkg/contrib/srvrec.h: Add explicity include of sys/types.h
+to avoid errors in types u_int_SIZE.
+
+Upstream-status: Pending
+
+Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
+---
+ apt-pkg/contrib/srvrec.h | 1 +
+ methods/connect.cc | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/apt-pkg/contrib/srvrec.h b/apt-pkg/contrib/srvrec.h
+index 01b8102..15b6875 100644
+--- a/apt-pkg/contrib/srvrec.h
++++ b/apt-pkg/contrib/srvrec.h
+@@ -9,6 +9,7 @@
+ #ifndef SRVREC_H
+ #define SRVREC_H
+
++#include <sys/types.h>
+ #include <arpa/nameser.h>
+ #include <vector>
+ #include <string>
+diff --git a/methods/connect.cc b/methods/connect.cc
+index 07a730b..bb0ab5a 100644
+--- a/methods/connect.cc
++++ b/methods/connect.cc
+@@ -33,6 +33,9 @@
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
++#ifndef AI_IDN
++#define AI_IDN 0x0040
++#endif
+
+ #include "connect.h"
+ #include "rfc2553emu.h"
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch
index beea56d2a..3ac92462c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-fix-the-gcc-version-check.patch
@@ -1,4 +1,4 @@
-From 15c6ef6a827d3681ad06e862d27ab3dfb84cb687 Mon Sep 17 00:00:00 2001
+From 53c5d0982f03fd0e24c4195d6e1e42b9ade9d500 Mon Sep 17 00:00:00 2001
From: Roy Li <rongqing.li@windriver.com>
Date: Wed, 27 May 2015 14:30:28 +0800
Subject: [PATCH] fix the gcc version check
@@ -9,37 +9,29 @@ Upstream-Status: pending
Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
- apt-pkg/cacheset.h | 4 ++--
- apt-pkg/deb/debsrcrecords.cc | 12 ++++++------
- apt-pkg/srcrecords.cc | 4 ++--
- apt-pkg/srcrecords.h | 4 ++--
- apt-pkg/vendorlist.cc | 4 ++--
- 5 files changed, 14 insertions(+), 14 deletions(-)
+ apt-pkg/contrib/macros.h | 2 +-
+ apt-pkg/deb/debsrcrecords.cc | 4 ++--
+ apt-pkg/srcrecords.cc | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
-diff --git a/apt-pkg/cacheset.h b/apt-pkg/cacheset.h
-index b7229bc..8cc2917 100644
---- a/apt-pkg/cacheset.h
-+++ b/apt-pkg/cacheset.h
-@@ -119,12 +119,12 @@ public:
- inline std::string FullName(bool const Pretty) const { return getPkg().FullName(Pretty); }
- inline std::string FullName() const { return getPkg().FullName(); }
- APT_DEPRECATED inline const char *Section() const {
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+diff --git a/apt-pkg/contrib/macros.h b/apt-pkg/contrib/macros.h
+index 2727fd8..0ecae50 100644
+--- a/apt-pkg/contrib/macros.h
++++ b/apt-pkg/contrib/macros.h
+@@ -136,7 +136,7 @@
#endif
- return getPkg().Section();
+ #endif
+
-#if __GNUC__ >= 4
+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic pop
- #endif
- }
+ #define APT_IGNORE_DEPRECATED_PUSH \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
diff --git a/apt-pkg/deb/debsrcrecords.cc b/apt-pkg/deb/debsrcrecords.cc
-index 49a348d..4bc9dcf 100644
+index e8295de..40160b2 100644
--- a/apt-pkg/deb/debsrcrecords.cc
+++ b/apt-pkg/deb/debsrcrecords.cc
-@@ -126,13 +126,13 @@ bool debSrcRecordParser::Files(std::vector<pkgSrcRecords::File> &F)
+@@ -139,13 +139,13 @@ bool debSrcRecordParser::Files(std::vector<pkgSrcRecords::File> &F)
for (std::vector<pkgSrcRecords::File2>::const_iterator f2 = F2.begin(); f2 != F2.end(); ++f2)
{
pkgSrcRecords::File2 f;
@@ -55,46 +47,11 @@ index 49a348d..4bc9dcf 100644
#pragma GCC diagnostic pop
#endif
f.Path = f2->Path;
-@@ -190,14 +190,14 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
- // we have it already, store the new hash and be done
- if (file != List.end())
- {
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- // set for compatibility only, so warn users not us
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- #endif
- if (checksumField == "Files")
- file->MD5Hash = hash;
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic pop
- #endif
- // an error here indicates that we have two different hashes for the same file
-@@ -212,7 +212,7 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
- F.FileSize = strtoull(size.c_str(), NULL, 10);
- F.Hashes.push_back(hashString);
-
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- // set for compatibility only, so warn users not us
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-@@ -220,7 +220,7 @@ bool debSrcRecordParser::Files2(std::vector<pkgSrcRecords::File2> &List)
- F.Size = F.FileSize;
- if (checksumField == "Files")
- F.MD5Hash = hash;
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic pop
- #endif
-
diff --git a/apt-pkg/srcrecords.cc b/apt-pkg/srcrecords.cc
-index 3175ee7..340e796 100644
+index 53d7e60..1484828 100644
--- a/apt-pkg/srcrecords.cc
+++ b/apt-pkg/srcrecords.cc
-@@ -160,7 +160,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
+@@ -157,7 +157,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
for (std::vector<pkgSrcRecords::File>::const_iterator f = F.begin(); f != F.end(); ++f)
{
pkgSrcRecords::File2 f2;
@@ -103,7 +60,7 @@ index 3175ee7..340e796 100644
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
-@@ -168,7 +168,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
+@@ -165,7 +165,7 @@ bool pkgSrcRecords::Parser::Files2(std::vector<pkgSrcRecords::File2> &F2)/*{{{*/
f2.Size = f->Size;
f2.Hashes.push_back(HashString("MD5Sum", f->MD5Hash));
f2.FileSize = f->Size;
@@ -112,49 +69,6 @@ index 3175ee7..340e796 100644
#pragma GCC diagnostic pop
#endif
f2.Path = f->Path;
-diff --git a/apt-pkg/srcrecords.h b/apt-pkg/srcrecords.h
-index dde22bd..91f8061 100644
---- a/apt-pkg/srcrecords.h
-+++ b/apt-pkg/srcrecords.h
-@@ -30,7 +30,7 @@ class pkgSrcRecords
- {
- public:
-
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- // ensure that con- & de-structor don't trigger this warning
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-@@ -48,7 +48,7 @@ class pkgSrcRecords
- unsigned long long FileSize;
- HashStringList Hashes;
- };
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic pop
- #endif
-
-diff --git a/apt-pkg/vendorlist.cc b/apt-pkg/vendorlist.cc
-index fb33ff1..ba1d3c3 100644
---- a/apt-pkg/vendorlist.cc
-+++ b/apt-pkg/vendorlist.cc
-@@ -11,7 +11,7 @@
-
- #include <apti18n.h>
-
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
- #endif
-@@ -163,6 +163,6 @@ const Vendor* pkgVendorList::FindVendor(const std::vector<string> GPGVOutput) /*
- }
- /*}}}*/
-
--#if __GNUC__ >= 4
-+#if __GNUC__ >= 4 + (6 >= __GNUC_MINOR__)
- #pragma GCC diagnostic pop
- #endif
--
-1.9.1
+2.1.4
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch
index 7c42ff07b..47870e3c8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/0001-remove-Wsuggest-attribute-from-CFLAGS.patch
@@ -1,4 +1,4 @@
-From 2bff7ee06a4f96e7d326991d61fb86f8aa651d48 Mon Sep 17 00:00:00 2001
+From 9fdf50d63df08ee65e7d8e62c35f19ac4841bca9 Mon Sep 17 00:00:00 2001
From: Roy Li <rongqing.li@windriver.com>
Date: Wed, 27 May 2015 09:48:45 +0800
Subject: [PATCH] remove Wsuggest-attribute from CXXFLAGS
@@ -15,29 +15,29 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
2 files changed, 2 deletions(-)
diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
-index b0a8d9d..91ed011 100644
+index 9620722..c344d01 100644
--- a/buildlib/environment.mak.in
+++ b/buildlib/environment.mak.in
-@@ -11,7 +11,6 @@ CPPFLAGS+= @CPPFLAGS@ @DEFS@ -D_REENTRANT -D_FORTIFY_SOURCE=2
- CXX = @CXX@
- CXXFLAGS+= @CXXFLAGS@ -Wall -Wextra
+@@ -14,7 +14,6 @@ CXXFLAGS+= @CXXFLAGS@ -Wall -Wextra
CXXFLAGS+= -Wcast-align -Wlogical-op -Wredundant-decls -Wmissing-declarations -Wunsafe-loop-optimizations
--CXXFLAGS+= -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn
+ CXXFLAGS+= -Wctor-dtor-privacy -Wdisabled-optimization -Winit-self -Wmissing-include-dirs -Wnoexcept -Wsign-promo -Wundef
+ # suggests methods which already have such an attribute
+-#CXXFLAGS+= -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn
+ # sanitize options to be enabled for testing
+ #CXXFLAGS+= -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr
# a bit too pedantic to be run by default
- #CXXFLAGS+= -Wpedantic -Wno-long-long -Wno-vla -Wno-variadic-macros
- NUM_PROCS = @NUM_PROCS@
diff --git a/test/libapt/makefile b/test/libapt/makefile
-index 7f23ace..e805f13 100644
+index 5ff9cf6..c5b5190 100644
--- a/test/libapt/makefile
+++ b/test/libapt/makefile
-@@ -39,7 +39,6 @@ CXXFLAGS += -pthread
+@@ -40,7 +40,6 @@ CXXFLAGS += -pthread
# disable some flags for gtest again
CXXFLAGS+= -Wno-missing-declarations
CXXFLAGS+= -Wno-missing-field-initializers
-CXXFLAGS+= -Wno-suggest-attribute=pure -Wno-suggest-attribute=const -Wno-suggest-attribute=noreturn
+ CXXFLAGS+= -Wno-undef
# All Google Test headers. Usually you shouldn't change this definition.
- GTEST_HEADERS = /usr/include/gtest/*.h \
--
-1.9.1
+2.1.4
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/disable-test.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/disable-test.patch
index 676795dc8..053267174 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/disable-test.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt/disable-test.patch
@@ -1,35 +1,51 @@
-[PATCH] disable test
+From 67bc7948e0a721c75d636931abc105da5dcb0763 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Thu, 26 May 2016 15:32:11 -0500
+Subject: [PATCH] [PATCH] disable test
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [configuration]
test needs gtest package, so not build the test dir
Signed-off-by: Roy Li <rongqing.li@windriver.com>
+Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
---
- Makefile | 7 +++----
- configure.ac | 6 ------
- 2 files changed, 3 insertions(+), 10 deletions(-)
+ Makefile | 9 +++------
+ configure.ac | 7 -------
+ 2 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
-index 5f5fb27..5070e96 100644
+index 7680f08..69527a5 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ endif
.PHONY: default
default: startup all
--.PHONY: headers library clean veryclean all binary program doc test update-po
+-.PHONY: fast headers library clean veryclean all binary program doc test update-po
-all headers library clean veryclean binary program doc manpages docbook test update-po startup dirs:
-+.PHONY: headers library clean veryclean all binary program doc update-po
++.PHONY: fast headers library clean veryclean all binary program doc update-po
+all headers library clean veryclean binary program doc manpages docbook update-po startup dirs:
$(MAKE) -C vendor $@
$(MAKE) -C apt-pkg $@
$(MAKE) -C apt-inst $@
-@@ -21,9 +21,8 @@ all headers library clean veryclean binary program doc manpages docbook test upd
+@@ -21,8 +21,6 @@ all headers library clean veryclean binary program doc manpages docbook test upd
$(MAKE) -C dselect $@
- # $(MAKE) -C doc $@
+ $(MAKE) -C doc $@
$(MAKE) -C po $@
-- $(MAKE) -C test $@
+- # FIXME: -C test has issue swith parallel builds, investigate!
+- -$(MAKE) -C test $@
+
+ fast:
+ $(MAKE) -C vendor all
+@@ -32,9 +30,8 @@ fast:
+ $(MAKE) -C methods all
+ $(MAKE) -C cmdline all
+ $(MAKE) -C ftparchive all
+- $(MAKE) -C test all
-all headers library clean veryclean binary program doc manpages docbook test update-po: startup dirs
+all headers library clean veryclean binary program doc manpages docbook update-po: startup dirs
@@ -37,22 +53,23 @@ index 5f5fb27..5070e96 100644
dirs: startup
diff --git a/configure.ac b/configure.ac
-index 5663aaf..b0f9564 100644
+index 1f05da5..e47f459 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -89,12 +89,6 @@ AC_CHECK_LIB(curl, curl_easy_init,
+@@ -90,13 +90,6 @@ AC_CHECK_LIB(curl, curl_easy_init,
AC_MSG_ERROR([failed: I need CURL due https support]),
)
-AC_LANG_PUSH([C++])
-AC_CHECK_HEADER(gtest/gtest.h,,
-- AC_MSG_ERROR([failed: I need gtest to build tests]),
+- AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
-)
-AC_LANG_POP([C++])
-
-
+-
AC_SUBST(BDBLIB)
+ HAVE_ZLIB=no
--
-1.9.1
+2.1.4
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.0.10.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.0.10.1.bb
deleted file mode 100644
index 85c0d5615..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.0.10.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DEPENDS = "curl db zlib"
-RDEPENDS_${PN} = "dpkg bash debianutils"
-require apt.inc
-
-require apt-package.inc
-
-PACKAGECONFIG ??= "lzma"
-PACKAGECONFIG[lzma] = "ac_cv_lib_lzma_lzma_easy_encoder=yes,ac_cv_lib_lzma_lzma_easy_encoder=no,xz"
-PACKAGECONFIG[bz2] = "ac_cv_lib_bz2_BZ2_bzopen=yes,ac_cv_lib_bz2_BZ2_bzopen=no,bzip2"
-
-FILES_${PN} += "${bindir}/apt-key"
-apt-manpages += "doc/apt-key.8"
-
-do_install_append() {
- #Write the correct apt-architecture to apt.conf
- APT_CONF=${D}/etc/apt/apt.conf
- echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
- oe_libinstall -so -C bin libapt-private ${D}${libdir}/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.2.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.2.12.bb
new file mode 100644
index 000000000..ae0bce933
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/apt_1.2.12.bb
@@ -0,0 +1,20 @@
+DEPENDS = "curl db zlib"
+RDEPENDS_${PN} = "dpkg bash debianutils"
+require apt.inc
+
+require apt-package.inc
+
+PACKAGECONFIG ??= "lzma"
+PACKAGECONFIG[lzma] = "ac_cv_lib_lzma_lzma_easy_encoder=yes,ac_cv_lib_lzma_lzma_easy_encoder=no,xz"
+PACKAGECONFIG[bz2] = "ac_cv_lib_bz2_BZ2_bzopen=yes,ac_cv_lib_bz2_BZ2_bzopen=no,bzip2"
+PACKAGECONFIG[lz4] = "ac_cv_lib_lz4_LZ4F_createCompressionContext=yes,ac_cv_lib_lz4_LZ4F_createCompressionContext=no,lz4"
+
+FILES_${PN} += "${bindir}/apt-key"
+apt-manpages += "doc/apt-key.8"
+
+do_install_append() {
+ #Write the correct apt-architecture to apt.conf
+ APT_CONF=${D}/etc/apt/apt.conf
+ echo 'APT::Architecture "${DPKG_ARCH}";' > ${APT_CONF}
+ oe_libinstall -so -C bin libapt-private ${D}${libdir}/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/apt/files/no-curl.patch b/import-layers/yocto-poky/meta/recipes-devtools/apt/files/no-curl.patch
index 30238faad..0838552b2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/apt/files/no-curl.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/apt/files/no-curl.patch
@@ -1,13 +1,23 @@
Upstream-Status: Inappropriate [configuration]
+From 5d61ac822fd9a3871cd5089389c210606232ecdc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Thu, 26 May 2016 15:34:45 -0500
+Subject: [PATCH] Upstream-Status: Inappropriate [configuration]
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
---
- configure.in | 6 ------
- methods/makefile | 7 -------
- 2 files changed, 13 deletions(-)
+ configure.ac | 7 -------
+ methods/makefile | 7 -------
+ 2 files changed, 14 deletions(-)
+diff --git a/configure.ac b/configure.ac
+index e47f459..cd24264 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -86,12 +86,6 @@ AC_CHECK_HEADER(db.h,
+@@ -83,13 +83,6 @@ AC_CHECK_HEADER(db.h,
LIBS="$saveLIBS"
@@ -17,9 +27,12 @@ Upstream-Status: Inappropriate [configuration]
- curl_ok=no)],
- AC_MSG_ERROR([failed: I need CURL due https support]),
-)
-
+-
AC_SUBST(BDBLIB)
+ HAVE_ZLIB=no
+diff --git a/methods/makefile b/methods/makefile
+index 3274e92..255086b 100644
--- a/methods/makefile
+++ b/methods/makefile
@@ -51,13 +51,6 @@ LIB_MAKES = apt-pkg/makefile
@@ -28,11 +41,14 @@ Upstream-Status: Inappropriate [configuration]
-# The https method
-PROGRAM=https
--SLIBS = -lapt-pkg -lcurl $(INTLLIBS)
+-SLIBS = -lapt-pkg -lcurl $(INTLLIBS) -lresolv
-LIB_MAKES = apt-pkg/makefile
-SOURCE = https.cc server.cc
-include $(PROGRAM_H)
-
# The ftp method
PROGRAM=ftp
- SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS)
+ SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) -lresolv
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-include.patch b/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-include.patch
deleted file mode 100644
index 31326f0bc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf/autoreconf-include.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending
-
-Index: autoconf-2.63/bin/autoreconf.in
-===================================================================
---- autoconf-2.63.orig/bin/autoreconf.in 2008-08-28 03:08:10.000000000 +0100
-+++ autoconf-2.63/bin/autoreconf.in 2008-12-31 17:38:40.000000000 +0000
-@@ -190,6 +190,7 @@
- $autoconf .= join (' --prepend-include=', '', map { shell_quote ($_) } @prepend_include);
- $autoheader .= join (' --include=', '', map { shell_quote ($_) } @include);
- $autoheader .= join (' --prepend-include=', '', map { shell_quote ($_) } @prepend_include);
-+ $aclocal .= join (' -I ', '', map { shell_quote ($_) } @include);
-
- # --install and --symlink;
- if ($install)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb b/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb
index adb6ad7cc..aa1877a1f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb
@@ -5,8 +5,7 @@ PR = "r11"
LICENSE = "GPLv2 & GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504"
-SRC_URI += "file://autoreconf-include.patch \
- file://check-automake-cross-warning.patch \
+SRC_URI += "file://check-automake-cross-warning.patch \
file://autoreconf-exclude.patch \
file://autoreconf-gnuconfigize.patch \
file://config_site.patch \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.10.bb b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.10.bb
new file mode 100644
index 000000000..274427c7e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.10.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Automated text and program generation tool"
+DESCRIPTION = "AutoGen is a tool designed to simplify the creation and\
+ maintenance of programs that contain large amounts of repetitious text.\
+ It is especially valuable in programs that have several blocks of text\
+ that must be kept synchronized."
+HOMEPAGE = "http://www.gnu.org/software/autogen/"
+SECTION = "devel"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/autogen/rel${PV}/autogen-${PV}.tar.gz \
+ file://increase-timeout-limit.patch \
+ file://mk-tpl-config.sh-force-exit-value-to-be-0-in-subproc.patch \
+ file://fix-script-err-when-processing-libguile.patch \
+"
+
+SRC_URI[md5sum] = "2d1b5226e1929d0680011df631289571"
+SRC_URI[sha256sum] = "0b8681d9724c481d3b726b5a9e81d3d09dc7f307d1a801c76d0a30d8f843d20a"
+
+UPSTREAM_CHECK_URI = "http://ftp.gnu.org/gnu/autogen/"
+UPSTREAM_CHECK_REGEX = "rel(?P<pver>\d+(\.\d+)+)/"
+
+DEPENDS = "guile-native libtool-native libxml2-native"
+
+inherit autotools texinfo native pkgconfig
+
+# autogen-native links against libguile which may have been relocated with sstate
+# these environment variables ensure there isn't a relocation issue
+export GUILE_LOAD_PATH = "${STAGING_DATADIR_NATIVE}/guile/2.0"
+export GUILE_LOAD_COMPILED_PATH = "${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache"
+
+do_install_append () {
+ create_wrapper ${D}/${bindir}/autogen \
+ GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
+ GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.6.bb b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.6.bb
deleted file mode 100644
index d77b8273e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen-native_5.18.6.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Automated text and program generation tool"
-DESCRIPTION = "AutoGen is a tool designed to simplify the creation and\
- maintenance of programs that contain large amounts of repetitious text.\
- It is especially valuable in programs that have several blocks of text\
- that must be kept synchronized."
-HOMEPAGE = "http://www.gnu.org/software/autogen/"
-SECTION = "devel"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${GNU_MIRROR}/autogen/rel${PV}/autogen-${PV}.tar.gz \
- file://increase-timeout-limit.patch \
- file://mk-tpl-config.sh-force-exit-value-to-be-0-in-subproc.patch \
- file://redirect-output-dir.patch \
-"
-
-SRC_URI[md5sum] = "fdee403e524c0af3ded6b3becb365671"
-SRC_URI[sha256sum] = "2fc7f12a5ecb3b1e8bd4364aa906b837cff01f80edb7d2fb38ed8b9dfbcd3271"
-
-UPSTREAM_CHECK_URI = "http://ftp.gnu.org/gnu/autogen/"
-UPSTREAM_CHECK_REGEX = "rel(?P<pver>\d+(\.\d+)+)/"
-
-DEPENDS = "guile-native libtool-native libxml2-native"
-
-inherit autotools texinfo native pkgconfig
-
-# autogen-native links against libguile which may have been relocated with sstate
-# these environment variables ensure there isn't a relocation issue
-export GUILE_LOAD_PATH = "${STAGING_DATADIR_NATIVE}/guile/2.0"
-export GUILE_LOAD_COMPILED_PATH = "${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache"
-
-do_install_append () {
- create_wrapper ${D}/${bindir}/autogen \
- GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
- GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/fix-script-err-when-processing-libguile.patch b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/fix-script-err-when-processing-libguile.patch
new file mode 100644
index 000000000..694a3953e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/fix-script-err-when-processing-libguile.patch
@@ -0,0 +1,37 @@
+autogen-native: fix script err when processing libguile
+
+do_configure for autogen will fail if project directory path
+contains '-I' character, which is caused by the unsuitable sed
+script when processing libguile.
+
+Upstream-Status: Pending
+
+Signed-off-by: Zhenbo Gao <zhenbo.gao@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/config/ag_macros.m4 b/config/ag_macros.m4
+index 58186b6..58ed2ad 100644
+--- a/config/ag_macros.m4
++++ b/config/ag_macros.m4
+@@ -32,7 +32,7 @@ AC_DEFUN([INVOKE_AG_MACROS_LAST],[
+ GUILE_FLAGS
+ [ag_gv=`gdir=\`pkg-config --cflags-only-I \
+ guile-${GUILE_EFFECTIVE_VERSION} | \
+- sed 's/-I *//;s/ *-I.*/ /g'\`
++ sed 's/ *-I *\// \//g'\`
+ for d in $gdir
+ do test -f "$d/libguile/version.h" && gdir=$d && break
+ done
+diff --git a/config/misc.def b/config/misc.def
+index 490d361..6e183ef 100644
+--- a/config/misc.def
++++ b/config/misc.def
+@@ -342,7 +342,7 @@ do-always = <<- _END_ALWAYS_
+ GUILE_FLAGS
+ [ag_gv=`gdir=\`pkg-config --cflags-only-I \
+ guile-${GUILE_EFFECTIVE_VERSION} | \
+- sed 's/-I *//;s/ *-I.*/ /g'\`
++ sed 's/ *-I *\// \//g'\`
+ test -z "$gdir" && gdir=/usr/include
+ for d in $gdir
+ do test -f "$d/libguile/version.h" && gdir=$d && break
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/redirect-output-dir.patch b/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/redirect-output-dir.patch
deleted file mode 100644
index fc5a71b85..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/autogen/autogen/redirect-output-dir.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-[PATCH] redirect the dir of mklibsrc-log.tx
-
-Upstream-Status: Pending
-
-redirect mklibsrc-log.tx to builddir, not /tmp; otherwise mklibsrc-log.tx
-maybe unable to be written if other users is building autogen at the same time.
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- pkg/libopts/mklibsrc.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pkg/libopts/mklibsrc.sh b/pkg/libopts/mklibsrc.sh
-index 416b402..d612fbc 100644
---- a/pkg/libopts/mklibsrc.sh
-+++ b/pkg/libopts/mklibsrc.sh
-@@ -19,7 +19,7 @@
- ## with this program. If not, see <http://www.gnu.org/licenses/>.
-
- set -ex
--exec 2> /tmp/mklibsrc-log.tx
-+exec 2> $top_builddir/mklibsrc-log.tx
-
- top_builddir=`cd $top_builddir ; pwd`
- top_srcdir=`cd $top_srcdir ; pwd`
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/automake/automake/python-libdir.patch b/import-layers/yocto-poky/meta/recipes-devtools/automake/automake/python-libdir.patch
index 47541bded..2a48b133e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/automake/automake/python-libdir.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/automake/automake/python-libdir.patch
@@ -1,3 +1,8 @@
+From 472a3d36c97ef7535f05d6c185edcbc22b0074c4 Mon Sep 17 00:00:00 2001
+From: Kumar Gala <galak@kernel.crashing.org>
+Date: Thu, 11 Aug 2011 01:26:33 -0500
+Subject: [PATCH 1/4] automake: Update for python.m4 to respect libdir
+
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
@@ -5,11 +10,17 @@ Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Updated for automake-1.12.6
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ m4/python.m4 | 27 +++++++--------------------
+ 1 file changed, 7 insertions(+), 20 deletions(-)
-diff -Nurd automake-1.12.6/m4/python.m4 automake-1.12.6/m4/python.m4
---- automake-1.12.6/m4/python.m4 2012-12-13 22:02:25.000000000 +0200
-+++ automake-1.12.6/m4/python.m4 2012-12-27 17:40:26.558164660 +0200
-@@ -91,12 +91,13 @@
+diff --git a/m4/python.m4 b/m4/python.m4
+index 5b2c695..ed19261 100644
+--- a/m4/python.m4
++++ b/m4/python.m4
+@@ -91,12 +91,13 @@ AC_DEFUN([AM_PATH_PYTHON],
[am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
@@ -25,17 +36,23 @@ diff -Nurd automake-1.12.6/m4/python.m4 automake-1.12.6/m4/python.m4
AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
dnl At times (like when building shared libraries) you may want
-@@ -148,7 +149,8 @@
- else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+@@ -141,14 +142,7 @@ except ImportError:
+ else
+ am_py_prefix=$prefix
+ fi
+- am_cv_python_pythondir=`$PYTHON -c "
+-$am_python_setup_sysconfig
+-if can_use_sysconfig:
+- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+-else:
+- from distutils import sysconfig
+- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
-+sys.stdout.write(sitedir)" ||
-+ echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
++ am_cv_python_pythondir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
case $am_cv_python_pythondir in
$am_py_prefix*)
am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
-@@ -158,7 +160,7 @@
+@@ -158,7 +152,7 @@ sys.stdout.write(sitedir)"`
case $am_py_prefix in
/usr|/System*) ;;
*)
@@ -44,17 +61,23 @@ diff -Nurd automake-1.12.6/m4/python.m4 automake-1.12.6/m4/python.m4
;;
esac
;;
-@@ -190,7 +192,8 @@
- else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+@@ -183,14 +177,7 @@ sys.stdout.write(sitedir)"`
+ else
+ am_py_exec_prefix=$exec_prefix
+ fi
+- am_cv_python_pyexecdir=`$PYTHON -c "
+-$am_python_setup_sysconfig
+-if can_use_sysconfig:
+- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+-else:
+- from distutils import sysconfig
+- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
-sys.stdout.write(sitedir)"`
-+sys.stdout.write(sitedir)" ||
-+ echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
++ am_cv_python_pyexecdir=`echo "$PYTHON_LIB_PREFIX/python$PYTHON_VERSION/site-packages"`
case $am_cv_python_pyexecdir in
$am_py_exec_prefix*)
am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
-@@ -200,7 +203,7 @@
+@@ -200,7 +187,7 @@ sys.stdout.write(sitedir)"`
case $am_py_exec_prefix in
/usr|/System*) ;;
*)
@@ -63,3 +86,6 @@ diff -Nurd automake-1.12.6/m4/python.m4 automake-1.12.6/m4/python.m4
;;
esac
;;
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.26.inc b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.26.inc
deleted file mode 100644
index 6d535fcaa..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.26.inc
+++ /dev/null
@@ -1,42 +0,0 @@
-LIC_FILES_CHKSUM="\
- file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
- file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\
- file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\
- file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
- file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\
- file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\
- file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
- "
-
-def binutils_branch_version(d):
- pvsplit = d.getVar('PV', True).split('.')
- return pvsplit[0] + "_" + pvsplit[1]
-
-BINUPV = "${@binutils_branch_version(d)}"
-
-UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
-
-SRCREV = "71fa566a9cf2597b60a58c1d7c148bab637454a6"
-SRC_URI = "\
- git://sourceware.org/git/binutils-gdb.git;branch=binutils-${BINUPV}-branch;protocol=git \
- file://0002-configure-widen-the-regexp-for-SH-architectures.patch \
- file://0003-Point-scripts-location-to-libdir.patch \
- file://0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
- file://0005-Explicitly-link-with-libm-on-uclibc.patch \
- file://0006-Use-libtool-2.4.patch \
- file://0007-Add-the-armv5e-architecture-to-binutils.patch \
- file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \
- file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \
- file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
- file://0011-Change-default-emulation-for-mips64-linux.patch \
- file://0012-Add-support-for-Netlogic-XLP.patch \
- file://0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch \
- file://0014-Correct-nios2-_gp-address-computation.patch \
-"
-S = "${WORKDIR}/git"
-
-do_configure_prepend () {
- rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.27.inc b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.27.inc
new file mode 100644
index 000000000..af1420b24
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-2.27.inc
@@ -0,0 +1,44 @@
+LIC_FILES_CHKSUM="\
+ file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
+ file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674\
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504\
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6\
+ file://gas/COPYING;md5=d32239bcb673463ab874e80d47fae504\
+ file://include/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552\
+ file://include/COPYING3;md5=d32239bcb673463ab874e80d47fae504\
+ file://libiberty/COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7\
+ file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
+ "
+
+def binutils_branch_version(d):
+ pvsplit = d.getVar('PV', True).split('.')
+ return pvsplit[0] + "_" + pvsplit[1]
+
+BINUPV = "${@binutils_branch_version(d)}"
+
+UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
+
+SRCREV = "5fe53ce37f9d9dd544ec8cc9e2863b68e1a61f4c"
+SRC_URI = "\
+ git://sourceware.org/git/binutils-gdb.git;branch=binutils-${BINUPV}-branch;protocol=git \
+ file://0002-configure-widen-the-regexp-for-SH-architectures.patch \
+ file://0003-Point-scripts-location-to-libdir.patch \
+ file://0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
+ file://0005-Explicitly-link-with-libm-on-uclibc.patch \
+ file://0006-Use-libtool-2.4.patch \
+ file://0007-Add-the-armv5e-architecture-to-binutils.patch \
+ file://0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch \
+ file://0009-warn-for-uses-of-system-directories-when-cross-linki.patch \
+ file://0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch \
+ file://0011-Change-default-emulation-for-mips64-linux.patch \
+ file://0012-Add-support-for-Netlogic-XLP.patch \
+ file://0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch \
+ file://0014-libtool-remove-rpath.patch \
+ file://0015-binutils-mips-gas-pic-relax-linkonce.diff \
+ file://0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch \
+"
+S = "${WORKDIR}/git"
+
+do_configure_prepend () {
+ rm -rf ${S}/gdb ${S}/libdecnumber ${S}/readline ${S}/sim
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.26.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.27.bb
index 5dbaa0301..5dbaa0301 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.26.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.27.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.26.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.27.bb
index fbd1f7d25..fbd1f7d25 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.26.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-cross_2.27.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.26.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.26.bb
deleted file mode 100644
index 788106f9e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.26.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require binutils-cross_${PV}.bb
-
-inherit crosssdk
-
-PN = "binutils-crosssdk-${TARGET_ARCH}"
-
-PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
-
-SRC_URI += "file://0001-Generate-relocatable-SDKs.patch"
-
-do_configure_prepend () {
- sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.27.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.27.bb
new file mode 100644
index 000000000..62c03d724
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.27.bb
@@ -0,0 +1,13 @@
+require binutils-cross_${PV}.bb
+
+inherit crosssdk
+
+PN = "binutils-crosssdk-${SDK_SYS}"
+
+PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
+
+SRC_URI += "file://0001-Generate-relocatable-SDKs.patch"
+
+do_configure_prepend () {
+ sed -i 's#/usr/local/lib /lib /usr/lib#${SDKPATHNATIVE}/lib ${SDKPATHNATIVE}/usr/lib /usr/local/lib /lib /usr/lib#' ${S}/ld/configure.tgt
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils.inc b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils.inc
index 43e2aa232..75d190f80 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils.inc
@@ -57,7 +57,6 @@ USE_ALTERNATIVES_FOR = " \
strings \
strip \
"
-USE_ALTERNATIVES_FOR_remove_mips = "ld.gold dwp"
python do_package_prepend() {
make_alts = d.getVar("USE_ALTERNATIVES_FOR", True) or ""
@@ -72,6 +71,7 @@ B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
--disable-werror \
+ --enable-deterministic-archives \
--enable-plugins \
${LDGOLD} \
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0001-Generate-relocatable-SDKs.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0001-Generate-relocatable-SDKs.patch
index 91f901761..cad704a72 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0001-Generate-relocatable-SDKs.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0001-Generate-relocatable-SDKs.patch
@@ -1,7 +1,7 @@
-From 3c75355342a8562ccb65b8bbbe81a0495fec5c57 Mon Sep 17 00:00:00 2001
+From 2dae6b137ce609fd008f2063034a4403d95484c5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:58:54 +0000
-Subject: [PATCH 01/14] Generate relocatable SDKs
+Subject: [PATCH 01/13] Generate relocatable SDKs
This patch will modify the ELF linker scripts so that the crosssdk
linker will generate binaries with a 4096 bytes PT_INTERP section. When the binaries
@@ -18,7 +18,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
-index a84d233..d12c4e2 100755
+index eb262e7..1a3b8bc 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -277,6 +277,7 @@ DATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}"
@@ -43,7 +43,7 @@ index a84d233..d12c4e2 100755
LD_FLAG=
DATA_ALIGNMENT=${DATA_ALIGNMENT_}
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
-index ec78c90..f9e7a31 100644
+index f0c6439..223c55f 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -136,8 +136,8 @@ if test -n "${COMMONPAGESIZE}"; then
@@ -58,5 +58,5 @@ index ec78c90..f9e7a31 100644
if test -z "$PLT"; then
IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0002-configure-widen-the-regexp-for-SH-architectures.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0002-configure-widen-the-regexp-for-SH-architectures.patch
index 4a202d047..8d7cf00d4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0002-configure-widen-the-regexp-for-SH-architectures.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0002-configure-widen-the-regexp-for-SH-architectures.patch
@@ -1,7 +1,7 @@
-From b1ae604880562ed065f614a745d3f8922838bc5a Mon Sep 17 00:00:00 2001
+From e4cd40722f597dff39c7214fab1742dd5bcc67eb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:07:33 +0000
-Subject: [PATCH 02/14] configure: widen the regexp for SH architectures
+Subject: [PATCH 02/13] configure: widen the regexp for SH architectures
gprof needs to know about uclibc
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
-index 34b66f7..85414ab 100755
+index ad3dfb7..2a74a77 100755
--- a/configure
+++ b/configure
-@@ -3445,7 +3445,7 @@ case "${target}" in
+@@ -3444,7 +3444,7 @@ case "${target}" in
;;
s390-*-* | s390x-*-*)
;;
@@ -26,7 +26,7 @@ index 34b66f7..85414ab 100755
;;
sh64-*-* | sh5*-*-*)
;;
-@@ -3939,7 +3939,7 @@ case "${target}" in
+@@ -3946,7 +3946,7 @@ case "${target}" in
or1k*-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
@@ -36,10 +36,10 @@ index 34b66f7..85414ab 100755
sh*-*-elf)
;;
diff --git a/gprof/configure b/gprof/configure
-index 693b927..d4db554 100755
+index bf3ecaa..626e1c7 100755
--- a/gprof/configure
+++ b/gprof/configure
-@@ -5869,6 +5869,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+@@ -5873,6 +5873,11 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
lt_cv_deplibs_check_method=pass_all
;;
@@ -52,5 +52,5 @@ index 693b927..d4db554 100755
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0003-Point-scripts-location-to-libdir.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0003-Point-scripts-location-to-libdir.patch
index 2c70ecd93..acc198b3e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0003-Point-scripts-location-to-libdir.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0003-Point-scripts-location-to-libdir.patch
@@ -1,7 +1,7 @@
-From 01808e8ef8ee709c8218d962601c18a63a063a1f Mon Sep 17 00:00:00 2001
+From 93c49f6197bd59b2abbf04b3296bf10029b80f48 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:09:58 +0000
-Subject: [PATCH 03/14] Point scripts location to libdir
+Subject: [PATCH 03/13] Point scripts location to libdir
Upstream-Status: Inappropriate [debian patch]
@@ -12,7 +12,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ld/Makefile.am b/ld/Makefile.am
-index 0b3b049..3871c74 100644
+index 0598923..b478ba7 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -57,7 +57,7 @@ endif
@@ -25,10 +25,10 @@ index 0b3b049..3871c74 100644
EMUL = @EMUL@
EMULATION_OFILES = @EMULATION_OFILES@
diff --git a/ld/Makefile.in b/ld/Makefile.in
-index ed98f87..530e4c9 100644
+index 7c78198..5eb67e0 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
-@@ -413,7 +413,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+@@ -451,7 +451,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
# We put the scripts in the directory $(scriptdir)/ldscripts.
# We can't put the scripts in $(datadir) because the SEARCH_DIR
# directives need to be different for native and cross linkers.
@@ -38,5 +38,5 @@ index ed98f87..530e4c9 100644
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
index 8f0a40210..28a17f386 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0004-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
@@ -1,7 +1,7 @@
-From c008c7f97c1cf487749c6c375820a1f3b3c6c53d Mon Sep 17 00:00:00 2001
+From 4ff83779de8621715c6c2a79cf7ed8d74ff2d7c5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:27:17 +0000
-Subject: [PATCH 04/14] Only generate an RPATH entry if LD_RUN_PATH is not
+Subject: [PATCH 04/13] Only generate an RPATH entry if LD_RUN_PATH is not
empty
for cases where -rpath isn't specified. debian (#151024)
@@ -15,10 +15,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
-index 0405d4f..73c5447 100644
+index 47fa549..f4c640e 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
-@@ -1242,6 +1242,8 @@ fragment <<EOF
+@@ -1244,6 +1244,8 @@ fragment <<EOF
&& command_line.rpath == NULL)
{
lib_path = (const char *) getenv ("LD_RUN_PATH");
@@ -27,7 +27,7 @@ index 0405d4f..73c5447 100644
if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
force))
break;
-@@ -1523,6 +1525,8 @@ gld${EMULATION_NAME}_before_allocation (void)
+@@ -1525,6 +1527,8 @@ gld${EMULATION_NAME}_before_allocation (void)
rpath = command_line.rpath;
if (rpath == NULL)
rpath = (const char *) getenv ("LD_RUN_PATH");
@@ -37,5 +37,5 @@ index 0405d4f..73c5447 100644
for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0005-Explicitly-link-with-libm-on-uclibc.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0005-Explicitly-link-with-libm-on-uclibc.patch
index 92ead7fb4..331f78221 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0005-Explicitly-link-with-libm-on-uclibc.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0005-Explicitly-link-with-libm-on-uclibc.patch
@@ -1,7 +1,7 @@
-From 6a41635e29c4a6c064b1f66e79a8fe2026f4361b Mon Sep 17 00:00:00 2001
+From 18a7ae169e8d55ace683357d1de6b07e4fdf797a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:32:49 +0000
-Subject: [PATCH 05/14] Explicitly link with libm on uclibc
+Subject: [PATCH 05/13] Explicitly link with libm on uclibc
Description:
@@ -31,7 +31,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 6 insertions(+)
diff --git a/gas/configure.tgt b/gas/configure.tgt
-index 0b490d4..086e0d2 100644
+index e2df659..1b9fd99 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -487,6 +487,12 @@ case ${generic_target} in
@@ -48,5 +48,5 @@ index 0b490d4..086e0d2 100644
aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | or1k | or1knd | pdp11 | ppc | sparc | z80 | z8k)
bfd_gas=yes
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch
index e54ab1bc8..f0fdf46ae 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0006-Use-libtool-2.4.patch
@@ -1,7 +1,7 @@
-From da70f0876cdd8ed703d9ed1524212ccfefb09ef3 Mon Sep 17 00:00:00 2001
+From 71adcde3648db47f7fa155db12810591ffd3ae34 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 14 Feb 2016 17:04:07 +0000
-Subject: [PATCH 06/14] Use libtool 2.4
+Subject: [PATCH 06/13] Use libtool 2.4
get libtool sysroot support
@@ -9,28 +9,28 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
- bfd/configure | 1322 +++++++++++++++++------
+ bfd/configure | 1318 +++++++++++++++++------
bfd/configure.ac | 2 +-
- binutils/configure | 1320 +++++++++++++++++------
+ binutils/configure | 1316 +++++++++++++++++------
configure | 4 +-
- gas/configure | 1320 +++++++++++++++++------
- gprof/configure | 1325 +++++++++++++++++------
- ld/configure | 1695 +++++++++++++++++++++--------
+ gas/configure | 1314 +++++++++++++++++------
+ gprof/configure | 1321 +++++++++++++++++------
+ ld/configure | 1691 +++++++++++++++++++++--------
libtool.m4 | 1080 +++++++++++++------
ltmain.sh | 2925 +++++++++++++++++++++++++++++++++-----------------
ltoptions.m4 | 2 +-
ltversion.m4 | 12 +-
lt~obsolete.m4 | 2 +-
- opcodes/configure | 1322 +++++++++++++++++------
+ opcodes/configure | 1318 +++++++++++++++++------
opcodes/configure.ac | 2 +-
zlib/configure | 1320 +++++++++++++++++------
- 15 files changed, 9944 insertions(+), 3709 deletions(-)
+ 15 files changed, 9930 insertions(+), 3697 deletions(-)
diff --git a/bfd/configure b/bfd/configure
-index 7411c6d..eae743e 100755
+index a437569..575a257 100755
--- a/bfd/configure
+++ b/bfd/configure
-@@ -670,6 +670,9 @@ OTOOL
+@@ -671,6 +671,9 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -40,7 +40,7 @@ index 7411c6d..eae743e 100755
OBJDUMP
LN_S
NM
-@@ -782,6 +785,7 @@ enable_static
+@@ -784,6 +787,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -48,7 +48,7 @@ index 7411c6d..eae743e 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1458,6 +1462,8 @@ Optional Packages:
+@@ -1460,6 +1464,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -57,7 +57,7 @@ index 7411c6d..eae743e 100755
--with-mmap try using mmap for BFD input files if available
--with-separate-debug-dir=DIR
Look for global separate debug info in DIR
-@@ -5388,8 +5394,8 @@ esac
+@@ -5392,8 +5398,8 @@ esac
@@ -68,7 +68,7 @@ index 7411c6d..eae743e 100755
-@@ -5429,7 +5435,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5433,7 +5439,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -77,7 +77,7 @@ index 7411c6d..eae743e 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6115,8 +6121,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6119,8 +6125,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -88,7 +88,7 @@ index 7411c6d..eae743e 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -6165,6 +6171,80 @@ esac
+@@ -6169,6 +6175,80 @@ esac
@@ -169,7 +169,7 @@ index 7411c6d..eae743e 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -6181,6 +6261,11 @@ case $reload_flag in
+@@ -6185,6 +6265,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -181,7 +181,7 @@ index 7411c6d..eae743e 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6349,7 +6434,8 @@ mingw* | pw32*)
+@@ -6353,7 +6438,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -191,7 +191,7 @@ index 7411c6d..eae743e 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6503,6 +6589,21 @@ esac
+@@ -6507,6 +6593,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -213,7 +213,7 @@ index 7411c6d..eae743e 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6518,9 +6619,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6522,9 +6623,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -378,7 +378,7 @@ index 7411c6d..eae743e 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -6536,7 +6790,7 @@ do
+@@ -6540,7 +6794,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -387,7 +387,7 @@ index 7411c6d..eae743e 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6556,11 +6810,15 @@ $as_echo "no" >&6; }
+@@ -6560,11 +6814,15 @@ $as_echo "no" >&6; }
fi
@@ -406,7 +406,7 @@ index 7411c6d..eae743e 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6576,7 +6834,7 @@ do
+@@ -6580,7 +6838,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -415,7 +415,7 @@ index 7411c6d..eae743e 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6595,6 +6853,10 @@ else
+@@ -6599,6 +6857,10 @@ else
$as_echo "no" >&6; }
fi
@@ -426,7 +426,7 @@ index 7411c6d..eae743e 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6606,16 +6868,72 @@ ac_tool_warned=yes ;;
+@@ -6610,16 +6872,72 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -503,7 +503,7 @@ index 7411c6d..eae743e 100755
-@@ -6957,8 +7275,8 @@ esac
+@@ -6961,8 +7279,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -514,7 +514,7 @@ index 7411c6d..eae743e 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6994,6 +7312,7 @@ for ac_symprfx in "" "_"; do
+@@ -6998,6 +7316,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -522,7 +522,7 @@ index 7411c6d..eae743e 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -7035,6 +7354,18 @@ _LT_EOF
+@@ -7039,6 +7358,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -541,7 +541,7 @@ index 7411c6d..eae743e 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -7046,7 +7377,7 @@ _LT_EOF
+@@ -7050,7 +7381,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -550,7 +550,7 @@ index 7411c6d..eae743e 100755
const char *name;
void *address;
}
-@@ -7072,8 +7403,8 @@ static const void *lt_preloaded_setup() {
+@@ -7076,8 +7407,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -561,7 +561,7 @@ index 7411c6d..eae743e 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7083,8 +7414,8 @@ _LT_EOF
+@@ -7087,8 +7418,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -572,7 +572,7 @@ index 7411c6d..eae743e 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -7121,6 +7452,16 @@ else
+@@ -7125,6 +7456,16 @@ else
$as_echo "ok" >&6; }
fi
@@ -589,7 +589,7 @@ index 7411c6d..eae743e 100755
-@@ -7142,6 +7483,45 @@ fi
+@@ -7146,6 +7487,45 @@ fi
@@ -635,7 +635,7 @@ index 7411c6d..eae743e 100755
# Check whether --enable-libtool-lock was given.
if test "${enable_libtool_lock+set}" = set; then :
enableval=$enable_libtool_lock;
-@@ -7348,6 +7728,123 @@ esac
+@@ -7352,6 +7732,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -759,7 +759,7 @@ index 7411c6d..eae743e 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7911,6 +8408,8 @@ _LT_EOF
+@@ -7915,6 +8412,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -768,7 +768,7 @@ index 7411c6d..eae743e 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -8075,7 +8574,8 @@ fi
+@@ -8079,7 +8578,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -778,7 +778,7 @@ index 7411c6d..eae743e 100755
-@@ -8164,7 +8664,7 @@ aix3*)
+@@ -8168,7 +8668,7 @@ aix3*)
esac
# Global variables:
@@ -787,7 +787,7 @@ index 7411c6d..eae743e 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8462,8 +8962,6 @@ fi
+@@ -8466,8 +8966,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -796,7 +796,7 @@ index 7411c6d..eae743e 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8629,6 +9127,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8633,6 +9131,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -809,7 +809,7 @@ index 7411c6d..eae743e 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8691,7 +9195,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8695,7 +9199,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -818,7 +818,7 @@ index 7411c6d..eae743e 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8748,13 +9252,17 @@ case $host_os in
+@@ -8752,13 +9256,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -842,7 +842,7 @@ index 7411c6d..eae743e 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8815,6 +9323,11 @@ fi
+@@ -8819,6 +9327,11 @@ fi
@@ -854,7 +854,7 @@ index 7411c6d..eae743e 100755
#
# Check to make sure the static flag actually works.
#
-@@ -9165,7 +9678,8 @@ _LT_EOF
+@@ -9169,7 +9682,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -864,7 +864,7 @@ index 7411c6d..eae743e 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9264,12 +9778,12 @@ _LT_EOF
+@@ -9268,12 +9782,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -879,7 +879,7 @@ index 7411c6d..eae743e 100755
fi
;;
esac
-@@ -9283,8 +9797,8 @@ _LT_EOF
+@@ -9287,8 +9801,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -890,7 +890,7 @@ index 7411c6d..eae743e 100755
fi
;;
-@@ -9302,8 +9816,8 @@ _LT_EOF
+@@ -9306,8 +9820,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -901,7 +901,7 @@ index 7411c6d..eae743e 100755
else
ld_shlibs=no
fi
-@@ -9349,8 +9863,8 @@ _LT_EOF
+@@ -9353,8 +9867,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -912,7 +912,7 @@ index 7411c6d..eae743e 100755
else
ld_shlibs=no
fi
-@@ -9480,7 +9994,13 @@ _LT_EOF
+@@ -9484,7 +9998,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -927,7 +927,7 @@ index 7411c6d..eae743e 100755
/* end confdefs.h. */
int
-@@ -9493,22 +10013,29 @@ main ()
+@@ -9497,22 +10017,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -970,7 +970,7 @@ index 7411c6d..eae743e 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9520,7 +10047,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9524,7 +10051,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -985,7 +985,7 @@ index 7411c6d..eae743e 100755
/* end confdefs.h. */
int
-@@ -9533,22 +10066,29 @@ main ()
+@@ -9537,22 +10070,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -1028,7 +1028,7 @@ index 7411c6d..eae743e 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9593,20 +10133,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9597,20 +10137,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -1106,7 +1106,7 @@ index 7411c6d..eae743e 100755
;;
darwin* | rhapsody*)
-@@ -9667,7 +10250,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9671,7 +10254,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -1115,7 +1115,7 @@ index 7411c6d..eae743e 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9675,7 +10258,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9679,7 +10262,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -1124,7 +1124,7 @@ index 7411c6d..eae743e 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9691,7 +10274,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9695,7 +10278,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -1133,7 +1133,7 @@ index 7411c6d..eae743e 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9715,10 +10298,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9719,10 +10302,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -1146,7 +1146,7 @@ index 7411c6d..eae743e 100755
;;
esac
else
-@@ -9797,23 +10380,36 @@ fi
+@@ -9801,23 +10384,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -1191,7 +1191,7 @@ index 7411c6d..eae743e 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9898,7 +10494,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9902,7 +10498,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -1200,7 +1200,7 @@ index 7411c6d..eae743e 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9917,9 +10513,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9921,9 +10517,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -1212,7 +1212,7 @@ index 7411c6d..eae743e 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10495,8 +11091,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10499,8 +11095,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -1224,7 +1224,7 @@ index 7411c6d..eae743e 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10529,13 +11126,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10533,13 +11130,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -1297,7 +1297,7 @@ index 7411c6d..eae743e 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10627,7 +11282,7 @@ haiku*)
+@@ -10631,7 +11286,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -1306,16 +1306,7 @@ index 7411c6d..eae743e 100755
hardcode_into_libs=yes
;;
-@@ -11423,7 +12078,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11426 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11467,10 +12122,10 @@ else
+@@ -11471,10 +12126,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -1328,16 +1319,7 @@ index 7411c6d..eae743e 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11529,7 +12184,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11532 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11573,10 +12228,10 @@ else
+@@ -11577,10 +12232,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -1350,7 +1332,7 @@ index 7411c6d..eae743e 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15121,7 +15776,7 @@ SHARED_LDFLAGS=
+@@ -14078,7 +14733,7 @@ SHARED_LDFLAGS=
if test "$enable_shared" = "yes"; then
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
if test -n "$x"; then
@@ -1359,7 +1341,7 @@ index 7411c6d..eae743e 100755
fi
# More hacks to build DLLs on Windows.
-@@ -16746,13 +17401,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -16789,13 +17444,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -1380,7 +1362,7 @@ index 7411c6d..eae743e 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -16767,14 +17429,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -16810,14 +17472,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -1399,7 +1381,7 @@ index 7411c6d..eae743e 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -16807,12 +17472,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -16850,12 +17515,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -1413,7 +1395,7 @@ index 7411c6d..eae743e 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -16867,8 +17532,13 @@ reload_flag \
+@@ -16910,8 +17575,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -1427,7 +1409,7 @@ index 7411c6d..eae743e 100755
STRIP \
RANLIB \
CC \
-@@ -16878,12 +17548,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -16921,12 +17591,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -1443,7 +1425,7 @@ index 7411c6d..eae743e 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -16899,7 +17571,6 @@ no_undefined_flag \
+@@ -16942,7 +17614,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -1451,7 +1433,7 @@ index 7411c6d..eae743e 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -16935,6 +17606,7 @@ module_cmds \
+@@ -16978,6 +17649,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -1459,7 +1441,7 @@ index 7411c6d..eae743e 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -17714,7 +18386,8 @@ $as_echo X"$file" |
+@@ -17757,7 +18429,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -1469,7 +1451,7 @@ index 7411c6d..eae743e 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -17817,19 +18490,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -17860,19 +18533,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -1513,7 +1495,7 @@ index 7411c6d..eae743e 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -17859,6 +18555,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -17902,6 +18598,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -1526,7 +1508,7 @@ index 7411c6d..eae743e 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -17868,6 +18570,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -17911,6 +18613,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -1536,7 +1518,7 @@ index 7411c6d..eae743e 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -17982,12 +18687,12 @@ with_gcc=$GCC
+@@ -18025,12 +18730,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -1552,7 +1534,7 @@ index 7411c6d..eae743e 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -18074,9 +18779,6 @@ inherit_rpath=$inherit_rpath
+@@ -18117,9 +18822,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -1562,7 +1544,7 @@ index 7411c6d..eae743e 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -18092,6 +18794,9 @@ include_expsyms=$lt_include_expsyms
+@@ -18135,6 +18837,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -1572,7 +1554,7 @@ index 7411c6d..eae743e 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -18124,210 +18829,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -18167,210 +18872,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -1947,10 +1929,10 @@ index 7411c6d..eae743e 100755
chmod +x "$ofile"
diff --git a/bfd/configure.ac b/bfd/configure.ac
-index 6f5e85f..44bd02c 100644
+index 669cff7..5f57877 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
-@@ -567,7 +567,7 @@ changequote(,)dnl
+@@ -253,7 +253,7 @@ changequote(,)dnl
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
changequote([,])dnl
if test -n "$x"; then
@@ -1960,10 +1942,10 @@ index 6f5e85f..44bd02c 100644
# More hacks to build DLLs on Windows.
diff --git a/binutils/configure b/binutils/configure
-index d4f3e1e..a6df5bb 100755
+index 6cbf17c..6d20600 100755
--- a/binutils/configure
+++ b/binutils/configure
-@@ -657,8 +657,11 @@ OTOOL
+@@ -658,8 +658,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -1975,7 +1957,7 @@ index d4f3e1e..a6df5bb 100755
OBJDUMP
LN_S
NM
-@@ -769,6 +772,7 @@ enable_static
+@@ -771,6 +774,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -1983,7 +1965,7 @@ index d4f3e1e..a6df5bb 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1441,6 +1445,8 @@ Optional Packages:
+@@ -1443,6 +1447,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -1992,7 +1974,7 @@ index d4f3e1e..a6df5bb 100755
--with-system-zlib use installed libz
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
-@@ -5155,8 +5161,8 @@ esac
+@@ -5159,8 +5165,8 @@ esac
@@ -2003,7 +1985,7 @@ index d4f3e1e..a6df5bb 100755
-@@ -5196,7 +5202,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5200,7 +5206,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -2012,7 +1994,7 @@ index d4f3e1e..a6df5bb 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -5882,8 +5888,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -5886,8 +5892,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -2023,7 +2005,7 @@ index d4f3e1e..a6df5bb 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -5932,6 +5938,80 @@ esac
+@@ -5936,6 +5942,80 @@ esac
@@ -2104,7 +2086,7 @@ index d4f3e1e..a6df5bb 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -5948,6 +6028,11 @@ case $reload_flag in
+@@ -5952,6 +6032,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -2116,7 +2098,7 @@ index d4f3e1e..a6df5bb 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6116,7 +6201,8 @@ mingw* | pw32*)
+@@ -6120,7 +6205,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -2126,7 +2108,7 @@ index d4f3e1e..a6df5bb 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6270,6 +6356,21 @@ esac
+@@ -6274,6 +6360,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -2148,7 +2130,7 @@ index d4f3e1e..a6df5bb 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6285,9 +6386,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6289,9 +6390,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -2313,7 +2295,7 @@ index d4f3e1e..a6df5bb 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -6303,7 +6557,7 @@ do
+@@ -6307,7 +6561,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -2322,7 +2304,7 @@ index d4f3e1e..a6df5bb 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6323,11 +6577,15 @@ $as_echo "no" >&6; }
+@@ -6327,11 +6581,15 @@ $as_echo "no" >&6; }
fi
@@ -2341,7 +2323,7 @@ index d4f3e1e..a6df5bb 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6343,7 +6601,7 @@ do
+@@ -6347,7 +6605,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -2350,7 +2332,7 @@ index d4f3e1e..a6df5bb 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6362,6 +6620,10 @@ else
+@@ -6366,6 +6624,10 @@ else
$as_echo "no" >&6; }
fi
@@ -2361,7 +2343,7 @@ index d4f3e1e..a6df5bb 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6373,12 +6635,10 @@ ac_tool_warned=yes ;;
+@@ -6377,12 +6639,10 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -2376,7 +2358,7 @@ index d4f3e1e..a6df5bb 100755
-@@ -6390,6 +6650,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6394,6 +6654,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -2441,7 +2423,7 @@ index d4f3e1e..a6df5bb 100755
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-@@ -6724,8 +7042,8 @@ esac
+@@ -6728,8 +7046,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -2452,7 +2434,7 @@ index d4f3e1e..a6df5bb 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6761,6 +7079,7 @@ for ac_symprfx in "" "_"; do
+@@ -6765,6 +7083,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -2460,7 +2442,7 @@ index d4f3e1e..a6df5bb 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6802,6 +7121,18 @@ _LT_EOF
+@@ -6806,6 +7125,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -2479,7 +2461,7 @@ index d4f3e1e..a6df5bb 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6813,7 +7144,7 @@ _LT_EOF
+@@ -6817,7 +7148,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -2488,7 +2470,7 @@ index d4f3e1e..a6df5bb 100755
const char *name;
void *address;
}
-@@ -6839,8 +7170,8 @@ static const void *lt_preloaded_setup() {
+@@ -6843,8 +7174,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -2499,7 +2481,7 @@ index d4f3e1e..a6df5bb 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6850,8 +7181,8 @@ _LT_EOF
+@@ -6854,8 +7185,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -2510,7 +2492,7 @@ index d4f3e1e..a6df5bb 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -6888,6 +7219,21 @@ else
+@@ -6892,6 +7223,21 @@ else
$as_echo "ok" >&6; }
fi
@@ -2532,7 +2514,7 @@ index d4f3e1e..a6df5bb 100755
-@@ -6906,6 +7252,40 @@ fi
+@@ -6910,6 +7256,40 @@ fi
@@ -2573,7 +2555,7 @@ index d4f3e1e..a6df5bb 100755
-@@ -7115,6 +7495,123 @@ esac
+@@ -7119,6 +7499,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -2697,7 +2679,7 @@ index d4f3e1e..a6df5bb 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7678,6 +8175,8 @@ _LT_EOF
+@@ -7682,6 +8179,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -2706,7 +2688,7 @@ index d4f3e1e..a6df5bb 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7873,7 +8372,8 @@ fi
+@@ -7877,7 +8376,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -2716,7 +2698,7 @@ index d4f3e1e..a6df5bb 100755
-@@ -7962,7 +8462,7 @@ aix3*)
+@@ -7966,7 +8466,7 @@ aix3*)
esac
# Global variables:
@@ -2725,7 +2707,7 @@ index d4f3e1e..a6df5bb 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8260,8 +8760,6 @@ fi
+@@ -8264,8 +8764,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -2734,7 +2716,7 @@ index d4f3e1e..a6df5bb 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8427,6 +8925,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8431,6 +8929,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -2747,7 +2729,7 @@ index d4f3e1e..a6df5bb 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8489,7 +8993,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8493,7 +8997,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -2756,7 +2738,7 @@ index d4f3e1e..a6df5bb 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8546,13 +9050,17 @@ case $host_os in
+@@ -8550,13 +9054,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -2780,7 +2762,7 @@ index d4f3e1e..a6df5bb 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8613,6 +9121,11 @@ fi
+@@ -8617,6 +9125,11 @@ fi
@@ -2792,7 +2774,7 @@ index d4f3e1e..a6df5bb 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8963,7 +9476,8 @@ _LT_EOF
+@@ -8967,7 +9480,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -2802,7 +2784,7 @@ index d4f3e1e..a6df5bb 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9062,12 +9576,12 @@ _LT_EOF
+@@ -9066,12 +9580,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -2817,7 +2799,7 @@ index d4f3e1e..a6df5bb 100755
fi
;;
esac
-@@ -9081,8 +9595,8 @@ _LT_EOF
+@@ -9085,8 +9599,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -2828,7 +2810,7 @@ index d4f3e1e..a6df5bb 100755
fi
;;
-@@ -9100,8 +9614,8 @@ _LT_EOF
+@@ -9104,8 +9618,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -2839,7 +2821,7 @@ index d4f3e1e..a6df5bb 100755
else
ld_shlibs=no
fi
-@@ -9147,8 +9661,8 @@ _LT_EOF
+@@ -9151,8 +9665,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -2850,7 +2832,7 @@ index d4f3e1e..a6df5bb 100755
else
ld_shlibs=no
fi
-@@ -9278,7 +9792,13 @@ _LT_EOF
+@@ -9282,7 +9796,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -2865,7 +2847,7 @@ index d4f3e1e..a6df5bb 100755
/* end confdefs.h. */
int
-@@ -9291,22 +9811,29 @@ main ()
+@@ -9295,22 +9815,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -2908,7 +2890,7 @@ index d4f3e1e..a6df5bb 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9318,7 +9845,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9322,7 +9849,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -2923,7 +2905,7 @@ index d4f3e1e..a6df5bb 100755
/* end confdefs.h. */
int
-@@ -9331,22 +9864,29 @@ main ()
+@@ -9335,22 +9868,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -2966,7 +2948,7 @@ index d4f3e1e..a6df5bb 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9391,20 +9931,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9395,20 +9935,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -3044,7 +3026,7 @@ index d4f3e1e..a6df5bb 100755
;;
darwin* | rhapsody*)
-@@ -9465,7 +10048,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9469,7 +10052,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -3053,7 +3035,7 @@ index d4f3e1e..a6df5bb 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9473,7 +10056,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9477,7 +10060,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -3062,7 +3044,7 @@ index d4f3e1e..a6df5bb 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9489,7 +10072,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9493,7 +10076,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -3071,7 +3053,7 @@ index d4f3e1e..a6df5bb 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9513,10 +10096,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9517,10 +10100,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -3084,7 +3066,7 @@ index d4f3e1e..a6df5bb 100755
;;
esac
else
-@@ -9595,23 +10178,36 @@ fi
+@@ -9599,23 +10182,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -3129,7 +3111,7 @@ index d4f3e1e..a6df5bb 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9696,7 +10292,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9700,7 +10296,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -3138,7 +3120,7 @@ index d4f3e1e..a6df5bb 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9715,9 +10311,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9719,9 +10315,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -3150,7 +3132,7 @@ index d4f3e1e..a6df5bb 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10293,8 +10889,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10297,8 +10893,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -3162,7 +3144,7 @@ index d4f3e1e..a6df5bb 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10327,13 +10924,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10331,13 +10928,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -3235,7 +3217,7 @@ index d4f3e1e..a6df5bb 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10425,7 +11080,7 @@ haiku*)
+@@ -10429,7 +11084,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -3244,16 +3226,7 @@ index d4f3e1e..a6df5bb 100755
hardcode_into_libs=yes
;;
-@@ -11221,7 +11876,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11224 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11265,10 +11920,10 @@ else
+@@ -11269,10 +11924,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -3266,16 +3239,7 @@ index d4f3e1e..a6df5bb 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11327,7 +11982,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11330 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11371,10 +12026,10 @@ else
+@@ -11375,10 +12030,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -3288,7 +3252,7 @@ index d4f3e1e..a6df5bb 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15355,13 +16010,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -15392,13 +16047,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -3309,7 +3273,7 @@ index d4f3e1e..a6df5bb 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15376,14 +16038,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15413,14 +16075,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -3328,7 +3292,7 @@ index d4f3e1e..a6df5bb 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15416,12 +16081,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15453,12 +16118,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -3342,7 +3306,7 @@ index d4f3e1e..a6df5bb 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15476,8 +16141,13 @@ reload_flag \
+@@ -15513,8 +16178,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -3356,7 +3320,7 @@ index d4f3e1e..a6df5bb 100755
STRIP \
RANLIB \
CC \
-@@ -15487,12 +16157,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15524,12 +16194,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -3372,7 +3336,7 @@ index d4f3e1e..a6df5bb 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -15508,7 +16180,6 @@ no_undefined_flag \
+@@ -15545,7 +16217,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -3380,7 +3344,7 @@ index d4f3e1e..a6df5bb 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -15544,6 +16215,7 @@ module_cmds \
+@@ -15581,6 +16252,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -3388,7 +3352,7 @@ index d4f3e1e..a6df5bb 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -16301,7 +16973,8 @@ $as_echo X"$file" |
+@@ -16338,7 +17010,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -3398,7 +3362,7 @@ index d4f3e1e..a6df5bb 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -16404,19 +17077,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -16441,19 +17114,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -3442,7 +3406,7 @@ index d4f3e1e..a6df5bb 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -16446,6 +17142,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16483,6 +17179,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -3455,7 +3419,7 @@ index d4f3e1e..a6df5bb 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -16455,6 +17157,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16492,6 +17194,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -3465,7 +3429,7 @@ index d4f3e1e..a6df5bb 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -16569,12 +17274,12 @@ with_gcc=$GCC
+@@ -16606,12 +17311,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -3481,7 +3445,7 @@ index d4f3e1e..a6df5bb 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -16661,9 +17366,6 @@ inherit_rpath=$inherit_rpath
+@@ -16698,9 +17403,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -3491,7 +3455,7 @@ index d4f3e1e..a6df5bb 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -16679,6 +17381,9 @@ include_expsyms=$lt_include_expsyms
+@@ -16716,6 +17418,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -3501,7 +3465,7 @@ index d4f3e1e..a6df5bb 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -16711,210 +17416,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -16748,210 +17453,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -3876,10 +3840,10 @@ index d4f3e1e..a6df5bb 100755
chmod +x "$ofile"
diff --git a/configure b/configure
-index 85414ab..34b66f7 100755
+index 2a74a77..ad3dfb7 100755
--- a/configure
+++ b/configure
-@@ -3445,7 +3445,7 @@ case "${target}" in
+@@ -3444,7 +3444,7 @@ case "${target}" in
;;
s390-*-* | s390x-*-*)
;;
@@ -3888,7 +3852,7 @@ index 85414ab..34b66f7 100755
;;
sh64-*-* | sh5*-*-*)
;;
-@@ -3939,7 +3939,7 @@ case "${target}" in
+@@ -3946,7 +3946,7 @@ case "${target}" in
or1k*-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
@@ -3898,10 +3862,10 @@ index 85414ab..34b66f7 100755
sh*-*-elf)
;;
diff --git a/gas/configure b/gas/configure
-index dd9c953..89f18b3 100755
+index f7753b8..45da030 100755
--- a/gas/configure
+++ b/gas/configure
-@@ -647,8 +647,11 @@ OTOOL
+@@ -648,8 +648,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -3913,7 +3877,7 @@ index dd9c953..89f18b3 100755
OBJDUMP
LN_S
NM
-@@ -759,6 +762,7 @@ enable_static
+@@ -761,6 +764,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -3921,16 +3885,7 @@ index dd9c953..89f18b3 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1430,6 +1434,8 @@ Optional Packages:
- --with-pic try to use only PIC/non-PIC objects [default=use
- both]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
-+ --with-libtool-sysroot=DIR Search for dependent libraries within DIR
-+ (or the compiler's sysroot if not specified).
- --with-system-zlib use installed libz
-
- Some influential environment variables:
-@@ -4909,8 +4915,8 @@ esac
+@@ -4919,8 +4923,8 @@ esac
@@ -3941,7 +3896,7 @@ index dd9c953..89f18b3 100755
-@@ -4950,7 +4956,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -4960,7 +4964,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -3950,7 +3905,7 @@ index dd9c953..89f18b3 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -5636,8 +5642,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -5646,8 +5650,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -3961,7 +3916,7 @@ index dd9c953..89f18b3 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -5686,6 +5692,80 @@ esac
+@@ -5696,6 +5700,80 @@ esac
@@ -4042,7 +3997,7 @@ index dd9c953..89f18b3 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -5702,6 +5782,11 @@ case $reload_flag in
+@@ -5712,6 +5790,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -4054,7 +4009,7 @@ index dd9c953..89f18b3 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -5870,7 +5955,8 @@ mingw* | pw32*)
+@@ -5880,7 +5963,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -4064,7 +4019,7 @@ index dd9c953..89f18b3 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6024,6 +6110,21 @@ esac
+@@ -6034,6 +6118,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -4086,7 +4041,7 @@ index dd9c953..89f18b3 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6039,9 +6140,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6049,9 +6148,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -4251,7 +4206,7 @@ index dd9c953..89f18b3 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -6057,7 +6311,7 @@ do
+@@ -6067,7 +6319,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -4260,7 +4215,7 @@ index dd9c953..89f18b3 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6077,11 +6331,15 @@ $as_echo "no" >&6; }
+@@ -6087,11 +6339,15 @@ $as_echo "no" >&6; }
fi
@@ -4279,7 +4234,7 @@ index dd9c953..89f18b3 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6097,7 +6355,7 @@ do
+@@ -6107,7 +6363,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -4288,7 +4243,7 @@ index dd9c953..89f18b3 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6116,6 +6374,10 @@ else
+@@ -6126,6 +6382,10 @@ else
$as_echo "no" >&6; }
fi
@@ -4299,7 +4254,7 @@ index dd9c953..89f18b3 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6127,12 +6389,10 @@ ac_tool_warned=yes ;;
+@@ -6137,12 +6397,10 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -4314,7 +4269,7 @@ index dd9c953..89f18b3 100755
-@@ -6144,6 +6404,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6154,6 +6412,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -4379,7 +4334,7 @@ index dd9c953..89f18b3 100755
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-@@ -6478,8 +6796,8 @@ esac
+@@ -6488,8 +6804,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -4390,7 +4345,7 @@ index dd9c953..89f18b3 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6515,6 +6833,7 @@ for ac_symprfx in "" "_"; do
+@@ -6525,6 +6841,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -4398,7 +4353,7 @@ index dd9c953..89f18b3 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6556,6 +6875,18 @@ _LT_EOF
+@@ -6566,6 +6883,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -4417,7 +4372,7 @@ index dd9c953..89f18b3 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6567,7 +6898,7 @@ _LT_EOF
+@@ -6577,7 +6906,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -4426,7 +4381,7 @@ index dd9c953..89f18b3 100755
const char *name;
void *address;
}
-@@ -6593,8 +6924,8 @@ static const void *lt_preloaded_setup() {
+@@ -6603,8 +6932,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -4437,7 +4392,7 @@ index dd9c953..89f18b3 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6604,8 +6935,8 @@ _LT_EOF
+@@ -6614,8 +6943,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -4448,7 +4403,7 @@ index dd9c953..89f18b3 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -6642,6 +6973,21 @@ else
+@@ -6652,6 +6981,21 @@ else
$as_echo "ok" >&6; }
fi
@@ -4470,7 +4425,7 @@ index dd9c953..89f18b3 100755
-@@ -6660,6 +7006,40 @@ fi
+@@ -6670,6 +7014,40 @@ fi
@@ -4511,7 +4466,7 @@ index dd9c953..89f18b3 100755
-@@ -6869,6 +7249,123 @@ esac
+@@ -6879,6 +7257,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -4635,7 +4590,7 @@ index dd9c953..89f18b3 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7432,6 +7929,8 @@ _LT_EOF
+@@ -7442,6 +7937,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -4644,7 +4599,7 @@ index dd9c953..89f18b3 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7627,7 +8126,8 @@ fi
+@@ -7637,7 +8134,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -4654,7 +4609,7 @@ index dd9c953..89f18b3 100755
-@@ -7716,7 +8216,7 @@ aix3*)
+@@ -7726,7 +8224,7 @@ aix3*)
esac
# Global variables:
@@ -4663,7 +4618,7 @@ index dd9c953..89f18b3 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8014,8 +8514,6 @@ fi
+@@ -8024,8 +8522,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -4672,7 +4627,7 @@ index dd9c953..89f18b3 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8181,6 +8679,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8191,6 +8687,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -4685,7 +4640,7 @@ index dd9c953..89f18b3 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8243,7 +8747,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8253,7 +8755,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -4694,7 +4649,7 @@ index dd9c953..89f18b3 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8300,13 +8804,17 @@ case $host_os in
+@@ -8310,13 +8812,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -4718,7 +4673,7 @@ index dd9c953..89f18b3 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8367,6 +8875,11 @@ fi
+@@ -8377,6 +8883,11 @@ fi
@@ -4730,7 +4685,7 @@ index dd9c953..89f18b3 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8717,7 +9230,8 @@ _LT_EOF
+@@ -8727,7 +9238,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -4740,7 +4695,7 @@ index dd9c953..89f18b3 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -8816,12 +9330,12 @@ _LT_EOF
+@@ -8826,12 +9338,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -4755,7 +4710,7 @@ index dd9c953..89f18b3 100755
fi
;;
esac
-@@ -8835,8 +9349,8 @@ _LT_EOF
+@@ -8845,8 +9357,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -4766,7 +4721,7 @@ index dd9c953..89f18b3 100755
fi
;;
-@@ -8854,8 +9368,8 @@ _LT_EOF
+@@ -8864,8 +9376,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -4777,7 +4732,7 @@ index dd9c953..89f18b3 100755
else
ld_shlibs=no
fi
-@@ -8901,8 +9415,8 @@ _LT_EOF
+@@ -8911,8 +9423,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -4788,7 +4743,7 @@ index dd9c953..89f18b3 100755
else
ld_shlibs=no
fi
-@@ -9032,7 +9546,13 @@ _LT_EOF
+@@ -9042,7 +9554,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -4803,7 +4758,7 @@ index dd9c953..89f18b3 100755
/* end confdefs.h. */
int
-@@ -9045,22 +9565,29 @@ main ()
+@@ -9055,22 +9573,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -4846,7 +4801,7 @@ index dd9c953..89f18b3 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9072,7 +9599,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9082,7 +9607,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -4861,7 +4816,7 @@ index dd9c953..89f18b3 100755
/* end confdefs.h. */
int
-@@ -9085,22 +9618,29 @@ main ()
+@@ -9095,22 +9626,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -4904,7 +4859,7 @@ index dd9c953..89f18b3 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9145,20 +9685,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9155,20 +9693,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -4982,7 +4937,7 @@ index dd9c953..89f18b3 100755
;;
darwin* | rhapsody*)
-@@ -9219,7 +9802,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9229,7 +9810,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -4991,7 +4946,7 @@ index dd9c953..89f18b3 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9227,7 +9810,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9237,7 +9818,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -5000,7 +4955,7 @@ index dd9c953..89f18b3 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9243,7 +9826,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9253,7 +9834,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -5009,7 +4964,7 @@ index dd9c953..89f18b3 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9267,10 +9850,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9277,10 +9858,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -5022,7 +4977,7 @@ index dd9c953..89f18b3 100755
;;
esac
else
-@@ -9349,23 +9932,36 @@ fi
+@@ -9359,23 +9940,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -5067,7 +5022,7 @@ index dd9c953..89f18b3 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9450,7 +10046,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9460,7 +10054,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -5076,7 +5031,7 @@ index dd9c953..89f18b3 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9469,9 +10065,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9479,9 +10073,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -5088,7 +5043,7 @@ index dd9c953..89f18b3 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10047,8 +10643,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10057,8 +10651,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -5100,7 +5055,7 @@ index dd9c953..89f18b3 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10081,13 +10678,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10091,13 +10686,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -5173,7 +5128,7 @@ index dd9c953..89f18b3 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10179,7 +10834,7 @@ haiku*)
+@@ -10189,7 +10842,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -5182,16 +5137,7 @@ index dd9c953..89f18b3 100755
hardcode_into_libs=yes
;;
-@@ -10975,7 +11630,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 10978 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11019,10 +11674,10 @@ else
+@@ -11029,10 +11682,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -5204,16 +5150,7 @@ index dd9c953..89f18b3 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11081,7 +11736,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11084 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11125,10 +11780,10 @@ else
+@@ -11135,10 +11788,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -5226,7 +5163,7 @@ index dd9c953..89f18b3 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15276,13 +15931,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -15350,13 +16003,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -5247,7 +5184,7 @@ index dd9c953..89f18b3 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15297,14 +15959,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15371,14 +16031,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -5266,7 +5203,7 @@ index dd9c953..89f18b3 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15337,12 +16002,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15411,12 +16074,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -5280,7 +5217,7 @@ index dd9c953..89f18b3 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15397,8 +16062,13 @@ reload_flag \
+@@ -15471,8 +16134,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -5294,7 +5231,7 @@ index dd9c953..89f18b3 100755
STRIP \
RANLIB \
CC \
-@@ -15408,12 +16078,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15482,12 +16150,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -5310,7 +5247,7 @@ index dd9c953..89f18b3 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -15429,7 +16101,6 @@ no_undefined_flag \
+@@ -15503,7 +16173,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -5318,7 +5255,7 @@ index dd9c953..89f18b3 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -15465,6 +16136,7 @@ module_cmds \
+@@ -15539,6 +16208,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -5326,7 +5263,7 @@ index dd9c953..89f18b3 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -16229,7 +16901,8 @@ $as_echo X"$file" |
+@@ -16303,7 +16973,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -5336,7 +5273,7 @@ index dd9c953..89f18b3 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -16332,19 +17005,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -16406,19 +17077,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -5380,7 +5317,7 @@ index dd9c953..89f18b3 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -16374,6 +17070,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16448,6 +17142,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -5393,7 +5330,7 @@ index dd9c953..89f18b3 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -16383,6 +17085,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16457,6 +17157,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -5403,7 +5340,7 @@ index dd9c953..89f18b3 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -16497,12 +17202,12 @@ with_gcc=$GCC
+@@ -16571,12 +17274,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -5419,7 +5356,7 @@ index dd9c953..89f18b3 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -16589,9 +17294,6 @@ inherit_rpath=$inherit_rpath
+@@ -16663,9 +17366,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -5429,7 +5366,7 @@ index dd9c953..89f18b3 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -16607,6 +17309,9 @@ include_expsyms=$lt_include_expsyms
+@@ -16681,6 +17381,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -5439,7 +5376,7 @@ index dd9c953..89f18b3 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -16639,210 +17344,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -16713,210 +17416,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -5814,10 +5751,10 @@ index dd9c953..89f18b3 100755
chmod +x "$ofile"
diff --git a/gprof/configure b/gprof/configure
-index d4db554..78b292c 100755
+index 626e1c7..a88719c 100755
--- a/gprof/configure
+++ b/gprof/configure
-@@ -629,8 +629,11 @@ OTOOL
+@@ -630,8 +630,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -5829,7 +5766,7 @@ index d4db554..78b292c 100755
OBJDUMP
LN_S
NM
-@@ -741,6 +744,7 @@ enable_static
+@@ -743,6 +746,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -5837,7 +5774,7 @@ index d4db554..78b292c 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1399,6 +1403,8 @@ Optional Packages:
+@@ -1401,6 +1405,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -5846,7 +5783,7 @@ index d4db554..78b292c 100755
Some influential environment variables:
CC C compiler command
-@@ -4831,8 +4837,8 @@ esac
+@@ -4835,8 +4841,8 @@ esac
@@ -5857,7 +5794,7 @@ index d4db554..78b292c 100755
-@@ -4872,7 +4878,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -4876,7 +4882,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -5866,7 +5803,7 @@ index d4db554..78b292c 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -5558,8 +5564,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -5562,8 +5568,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -5877,7 +5814,7 @@ index d4db554..78b292c 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -5608,6 +5614,80 @@ esac
+@@ -5612,6 +5618,80 @@ esac
@@ -5958,7 +5895,7 @@ index d4db554..78b292c 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -5624,6 +5704,11 @@ case $reload_flag in
+@@ -5628,6 +5708,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -5970,7 +5907,7 @@ index d4db554..78b292c 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -5792,7 +5877,8 @@ mingw* | pw32*)
+@@ -5796,7 +5881,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -5980,7 +5917,7 @@ index d4db554..78b292c 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -5869,11 +5955,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+@@ -5873,11 +5959,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu)
lt_cv_deplibs_check_method=pass_all
;;
@@ -5992,7 +5929,7 @@ index d4db554..78b292c 100755
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-@@ -5951,6 +6032,21 @@ esac
+@@ -5955,6 +6036,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -6014,7 +5951,7 @@ index d4db554..78b292c 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -5966,9 +6062,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -5970,9 +6066,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -6179,7 +6116,7 @@ index d4db554..78b292c 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -5984,7 +6233,7 @@ do
+@@ -5988,7 +6237,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -6188,7 +6125,7 @@ index d4db554..78b292c 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6004,11 +6253,15 @@ $as_echo "no" >&6; }
+@@ -6008,11 +6257,15 @@ $as_echo "no" >&6; }
fi
@@ -6207,7 +6144,7 @@ index d4db554..78b292c 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6024,7 +6277,7 @@ do
+@@ -6028,7 +6281,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -6216,7 +6153,7 @@ index d4db554..78b292c 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6043,6 +6296,10 @@ else
+@@ -6047,6 +6300,10 @@ else
$as_echo "no" >&6; }
fi
@@ -6227,7 +6164,7 @@ index d4db554..78b292c 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6054,12 +6311,10 @@ ac_tool_warned=yes ;;
+@@ -6058,12 +6315,10 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -6242,7 +6179,7 @@ index d4db554..78b292c 100755
-@@ -6071,6 +6326,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6075,6 +6330,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6307,7 +6244,7 @@ index d4db554..78b292c 100755
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-@@ -6405,8 +6718,8 @@ esac
+@@ -6409,8 +6722,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -6318,7 +6255,7 @@ index d4db554..78b292c 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6442,6 +6755,7 @@ for ac_symprfx in "" "_"; do
+@@ -6446,6 +6759,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -6326,7 +6263,7 @@ index d4db554..78b292c 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6483,6 +6797,18 @@ _LT_EOF
+@@ -6487,6 +6801,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -6345,7 +6282,7 @@ index d4db554..78b292c 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6494,7 +6820,7 @@ _LT_EOF
+@@ -6498,7 +6824,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -6354,7 +6291,7 @@ index d4db554..78b292c 100755
const char *name;
void *address;
}
-@@ -6520,8 +6846,8 @@ static const void *lt_preloaded_setup() {
+@@ -6524,8 +6850,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -6365,7 +6302,7 @@ index d4db554..78b292c 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6531,8 +6857,8 @@ _LT_EOF
+@@ -6535,8 +6861,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -6376,7 +6313,7 @@ index d4db554..78b292c 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -6569,6 +6895,18 @@ else
+@@ -6573,6 +6899,18 @@ else
$as_echo "ok" >&6; }
fi
@@ -6395,7 +6332,7 @@ index d4db554..78b292c 100755
-@@ -6590,6 +6928,43 @@ fi
+@@ -6594,6 +6932,43 @@ fi
@@ -6439,7 +6376,7 @@ index d4db554..78b292c 100755
# Check whether --enable-libtool-lock was given.
if test "${enable_libtool_lock+set}" = set; then :
enableval=$enable_libtool_lock;
-@@ -6796,6 +7171,123 @@ esac
+@@ -6800,6 +7175,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -6563,7 +6500,7 @@ index d4db554..78b292c 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7359,6 +7851,8 @@ _LT_EOF
+@@ -7363,6 +7855,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -6572,7 +6509,7 @@ index d4db554..78b292c 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7554,7 +8048,8 @@ fi
+@@ -7558,7 +8052,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -6582,7 +6519,7 @@ index d4db554..78b292c 100755
-@@ -7643,7 +8138,7 @@ aix3*)
+@@ -7647,7 +8142,7 @@ aix3*)
esac
# Global variables:
@@ -6591,7 +6528,7 @@ index d4db554..78b292c 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -7941,8 +8436,6 @@ fi
+@@ -7945,8 +8440,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -6600,7 +6537,7 @@ index d4db554..78b292c 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8108,6 +8601,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8112,6 +8605,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -6613,7 +6550,7 @@ index d4db554..78b292c 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8170,7 +8669,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8174,7 +8673,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -6622,7 +6559,7 @@ index d4db554..78b292c 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8227,13 +8726,17 @@ case $host_os in
+@@ -8231,13 +8730,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -6646,7 +6583,7 @@ index d4db554..78b292c 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8294,6 +8797,11 @@ fi
+@@ -8298,6 +8801,11 @@ fi
@@ -6658,7 +6595,7 @@ index d4db554..78b292c 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8644,7 +9152,8 @@ _LT_EOF
+@@ -8648,7 +9156,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -6668,7 +6605,7 @@ index d4db554..78b292c 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -8743,12 +9252,12 @@ _LT_EOF
+@@ -8747,12 +9256,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -6683,7 +6620,7 @@ index d4db554..78b292c 100755
fi
;;
esac
-@@ -8762,8 +9271,8 @@ _LT_EOF
+@@ -8766,8 +9275,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -6694,7 +6631,7 @@ index d4db554..78b292c 100755
fi
;;
-@@ -8781,8 +9290,8 @@ _LT_EOF
+@@ -8785,8 +9294,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -6705,7 +6642,7 @@ index d4db554..78b292c 100755
else
ld_shlibs=no
fi
-@@ -8828,8 +9337,8 @@ _LT_EOF
+@@ -8832,8 +9341,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -6716,7 +6653,7 @@ index d4db554..78b292c 100755
else
ld_shlibs=no
fi
-@@ -8959,7 +9468,13 @@ _LT_EOF
+@@ -8963,7 +9472,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -6731,7 +6668,7 @@ index d4db554..78b292c 100755
/* end confdefs.h. */
int
-@@ -8972,22 +9487,29 @@ main ()
+@@ -8976,22 +9491,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -6774,7 +6711,7 @@ index d4db554..78b292c 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -8999,7 +9521,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9003,7 +9525,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -6789,7 +6726,7 @@ index d4db554..78b292c 100755
/* end confdefs.h. */
int
-@@ -9012,22 +9540,29 @@ main ()
+@@ -9016,22 +9544,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -6832,7 +6769,7 @@ index d4db554..78b292c 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9072,20 +9607,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9076,20 +9611,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -6910,7 +6847,7 @@ index d4db554..78b292c 100755
;;
darwin* | rhapsody*)
-@@ -9146,7 +9724,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9150,7 +9728,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -6919,7 +6856,7 @@ index d4db554..78b292c 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9154,7 +9732,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9158,7 +9736,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -6928,7 +6865,7 @@ index d4db554..78b292c 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9170,7 +9748,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9174,7 +9752,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -6937,7 +6874,7 @@ index d4db554..78b292c 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9194,10 +9772,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9198,10 +9776,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -6950,7 +6887,7 @@ index d4db554..78b292c 100755
;;
esac
else
-@@ -9276,23 +9854,36 @@ fi
+@@ -9280,23 +9858,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -6995,7 +6932,7 @@ index d4db554..78b292c 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9377,7 +9968,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9381,7 +9972,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -7004,7 +6941,7 @@ index d4db554..78b292c 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9396,9 +9987,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9400,9 +9991,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -7016,7 +6953,7 @@ index d4db554..78b292c 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -9974,8 +10565,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -9978,8 +10569,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -7028,7 +6965,7 @@ index d4db554..78b292c 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10008,13 +10600,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10012,13 +10604,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -7101,7 +7038,7 @@ index d4db554..78b292c 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10106,7 +10756,7 @@ haiku*)
+@@ -10110,7 +10760,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -7110,16 +7047,7 @@ index d4db554..78b292c 100755
hardcode_into_libs=yes
;;
-@@ -10902,7 +11552,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 10900 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -10946,10 +11596,10 @@ else
+@@ -10950,10 +11600,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -7132,16 +7060,7 @@ index d4db554..78b292c 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11008,7 +11658,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11006 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11052,10 +11702,10 @@ else
+@@ -11056,10 +11706,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -7154,7 +7073,7 @@ index d4db554..78b292c 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12924,13 +13574,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -12961,13 +13611,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -7175,7 +7094,7 @@ index d4db554..78b292c 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -12945,14 +13602,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -12982,14 +13639,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -7194,7 +7113,7 @@ index d4db554..78b292c 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -12985,12 +13645,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -13022,12 +13682,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -7208,7 +7127,7 @@ index d4db554..78b292c 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -13045,8 +13705,13 @@ reload_flag \
+@@ -13082,8 +13742,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -7222,7 +7141,7 @@ index d4db554..78b292c 100755
STRIP \
RANLIB \
CC \
-@@ -13056,12 +13721,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -13093,12 +13758,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -7238,7 +7157,7 @@ index d4db554..78b292c 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -13077,7 +13744,6 @@ no_undefined_flag \
+@@ -13114,7 +13781,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -7246,7 +7165,7 @@ index d4db554..78b292c 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -13113,6 +13779,7 @@ module_cmds \
+@@ -13150,6 +13816,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -7254,7 +7173,7 @@ index d4db554..78b292c 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -13869,7 +14536,8 @@ $as_echo X"$file" |
+@@ -13906,7 +14573,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -7264,7 +7183,7 @@ index d4db554..78b292c 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -13972,19 +14640,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -14009,19 +14677,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -7308,7 +7227,7 @@ index d4db554..78b292c 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -14014,6 +14705,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -14051,6 +14742,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -7321,7 +7240,7 @@ index d4db554..78b292c 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -14023,6 +14720,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -14060,6 +14757,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -7331,7 +7250,7 @@ index d4db554..78b292c 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -14137,12 +14837,12 @@ with_gcc=$GCC
+@@ -14174,12 +14874,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -7347,7 +7266,7 @@ index d4db554..78b292c 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -14229,9 +14929,6 @@ inherit_rpath=$inherit_rpath
+@@ -14266,9 +14966,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -7357,7 +7276,7 @@ index d4db554..78b292c 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -14247,6 +14944,9 @@ include_expsyms=$lt_include_expsyms
+@@ -14284,6 +14981,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -7367,7 +7286,7 @@ index d4db554..78b292c 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -14279,210 +14979,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -14316,210 +15016,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -7742,10 +7661,10 @@ index d4db554..78b292c 100755
chmod +x "$ofile"
diff --git a/ld/configure b/ld/configure
-index 8095b71..eb4f0d7 100755
+index f9be51a..3df1149 100755
--- a/ld/configure
+++ b/ld/configure
-@@ -657,8 +657,11 @@ OTOOL
+@@ -658,8 +658,11 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -7757,7 +7676,7 @@ index 8095b71..eb4f0d7 100755
OBJDUMP
LN_S
NM
-@@ -779,6 +782,7 @@ enable_static
+@@ -781,6 +784,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -7765,7 +7684,7 @@ index 8095b71..eb4f0d7 100755
enable_libtool_lock
enable_plugins
enable_largefile
-@@ -1458,6 +1462,8 @@ Optional Packages:
+@@ -1462,6 +1466,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -7774,7 +7693,7 @@ index 8095b71..eb4f0d7 100755
--with-lib-path=dir1:dir2... set default LIB_PATH
--with-sysroot=DIR Search for usr/lib et al within DIR.
-@@ -5649,8 +5655,8 @@ esac
+@@ -5656,8 +5662,8 @@ esac
@@ -7785,7 +7704,7 @@ index 8095b71..eb4f0d7 100755
-@@ -5690,7 +5696,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5697,7 +5703,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -7794,7 +7713,7 @@ index 8095b71..eb4f0d7 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6376,8 +6382,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6383,8 +6389,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -7805,7 +7724,7 @@ index 8095b71..eb4f0d7 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -6426,6 +6432,80 @@ esac
+@@ -6433,6 +6439,80 @@ esac
@@ -7886,7 +7805,7 @@ index 8095b71..eb4f0d7 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -6442,6 +6522,11 @@ case $reload_flag in
+@@ -6449,6 +6529,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -7898,7 +7817,7 @@ index 8095b71..eb4f0d7 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6610,7 +6695,8 @@ mingw* | pw32*)
+@@ -6617,7 +6702,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -7908,7 +7827,7 @@ index 8095b71..eb4f0d7 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6764,6 +6850,21 @@ esac
+@@ -6771,6 +6857,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -7930,7 +7849,7 @@ index 8095b71..eb4f0d7 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6779,9 +6880,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6786,9 +6887,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -8095,7 +8014,7 @@ index 8095b71..eb4f0d7 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -6797,7 +7051,7 @@ do
+@@ -6804,7 +7058,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -8104,7 +8023,7 @@ index 8095b71..eb4f0d7 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6817,11 +7071,15 @@ $as_echo "no" >&6; }
+@@ -6824,11 +7078,15 @@ $as_echo "no" >&6; }
fi
@@ -8123,7 +8042,7 @@ index 8095b71..eb4f0d7 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6837,7 +7095,7 @@ do
+@@ -6844,7 +7102,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -8132,7 +8051,7 @@ index 8095b71..eb4f0d7 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6856,6 +7114,10 @@ else
+@@ -6863,6 +7121,10 @@ else
$as_echo "no" >&6; }
fi
@@ -8143,7 +8062,7 @@ index 8095b71..eb4f0d7 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6867,12 +7129,12 @@ ac_tool_warned=yes ;;
+@@ -6874,12 +7136,12 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -8160,7 +8079,7 @@ index 8095b71..eb4f0d7 100755
-@@ -6882,6 +7144,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6889,6 +7151,62 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -8223,7 +8142,7 @@ index 8095b71..eb4f0d7 100755
if test -n "$ac_tool_prefix"; then
-@@ -7218,8 +7536,8 @@ esac
+@@ -7225,8 +7543,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -8234,7 +8153,7 @@ index 8095b71..eb4f0d7 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -7255,6 +7573,7 @@ for ac_symprfx in "" "_"; do
+@@ -7262,6 +7580,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -8242,7 +8161,7 @@ index 8095b71..eb4f0d7 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -7296,6 +7615,18 @@ _LT_EOF
+@@ -7303,6 +7622,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -8261,7 +8180,7 @@ index 8095b71..eb4f0d7 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -7307,7 +7638,7 @@ _LT_EOF
+@@ -7314,7 +7645,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -8270,7 +8189,7 @@ index 8095b71..eb4f0d7 100755
const char *name;
void *address;
}
-@@ -7333,8 +7664,8 @@ static const void *lt_preloaded_setup() {
+@@ -7340,8 +7671,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -8281,7 +8200,7 @@ index 8095b71..eb4f0d7 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7344,8 +7675,8 @@ _LT_EOF
+@@ -7351,8 +7682,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -8292,7 +8211,7 @@ index 8095b71..eb4f0d7 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -7382,6 +7713,19 @@ else
+@@ -7389,6 +7720,19 @@ else
$as_echo "ok" >&6; }
fi
@@ -8312,7 +8231,7 @@ index 8095b71..eb4f0d7 100755
-@@ -7402,6 +7746,42 @@ fi
+@@ -7409,6 +7753,42 @@ fi
@@ -8355,7 +8274,7 @@ index 8095b71..eb4f0d7 100755
# Check whether --enable-libtool-lock was given.
if test "${enable_libtool_lock+set}" = set; then :
-@@ -7609,6 +7989,123 @@ esac
+@@ -7616,6 +7996,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -8479,7 +8398,7 @@ index 8095b71..eb4f0d7 100755
case $host_os in
rhapsody* | darwin*)
-@@ -8172,6 +8669,8 @@ _LT_EOF
+@@ -8179,6 +8676,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -8488,7 +8407,7 @@ index 8095b71..eb4f0d7 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -8240,6 +8739,16 @@ done
+@@ -8247,6 +8746,16 @@ done
@@ -8505,7 +8424,7 @@ index 8095b71..eb4f0d7 100755
# Set options
-@@ -8368,7 +8877,8 @@ fi
+@@ -8375,7 +8884,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -8515,7 +8434,7 @@ index 8095b71..eb4f0d7 100755
-@@ -8457,7 +8967,7 @@ aix3*)
+@@ -8464,7 +8974,7 @@ aix3*)
esac
# Global variables:
@@ -8524,7 +8443,7 @@ index 8095b71..eb4f0d7 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8755,8 +9265,6 @@ fi
+@@ -8762,8 +9272,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -8533,7 +8452,7 @@ index 8095b71..eb4f0d7 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8922,6 +9430,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8929,6 +9437,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -8546,7 +8465,7 @@ index 8095b71..eb4f0d7 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8984,7 +9498,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8991,7 +9505,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -8555,7 +8474,7 @@ index 8095b71..eb4f0d7 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -9041,13 +9555,17 @@ case $host_os in
+@@ -9048,13 +9562,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -8579,7 +8498,7 @@ index 8095b71..eb4f0d7 100755
#
# Check to make sure the PIC flag actually works.
-@@ -9108,6 +9626,11 @@ fi
+@@ -9115,6 +9633,11 @@ fi
@@ -8591,7 +8510,7 @@ index 8095b71..eb4f0d7 100755
#
# Check to make sure the static flag actually works.
#
-@@ -9458,7 +9981,8 @@ _LT_EOF
+@@ -9465,7 +9988,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -8601,7 +8520,7 @@ index 8095b71..eb4f0d7 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9557,12 +10081,12 @@ _LT_EOF
+@@ -9564,12 +10088,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -8616,7 +8535,7 @@ index 8095b71..eb4f0d7 100755
fi
;;
esac
-@@ -9576,8 +10100,8 @@ _LT_EOF
+@@ -9583,8 +10107,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -8627,7 +8546,7 @@ index 8095b71..eb4f0d7 100755
fi
;;
-@@ -9595,8 +10119,8 @@ _LT_EOF
+@@ -9602,8 +10126,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8638,7 +8557,7 @@ index 8095b71..eb4f0d7 100755
else
ld_shlibs=no
fi
-@@ -9642,8 +10166,8 @@ _LT_EOF
+@@ -9649,8 +10173,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8649,7 +8568,7 @@ index 8095b71..eb4f0d7 100755
else
ld_shlibs=no
fi
-@@ -9773,7 +10297,13 @@ _LT_EOF
+@@ -9780,7 +10304,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -8664,7 +8583,7 @@ index 8095b71..eb4f0d7 100755
/* end confdefs.h. */
int
-@@ -9786,22 +10316,29 @@ main ()
+@@ -9793,22 +10323,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -8707,7 +8626,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9813,7 +10350,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9820,7 +10357,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -8722,7 +8641,7 @@ index 8095b71..eb4f0d7 100755
/* end confdefs.h. */
int
-@@ -9826,22 +10369,29 @@ main ()
+@@ -9833,22 +10376,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -8765,7 +8684,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9885,21 +10435,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9892,21 +10442,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -8845,7 +8764,7 @@ index 8095b71..eb4f0d7 100755
;;
darwin* | rhapsody*)
-@@ -9960,7 +10553,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9967,7 +10560,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -8854,7 +8773,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9968,7 +10561,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9975,7 +10568,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -8863,7 +8782,7 @@ index 8095b71..eb4f0d7 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9984,7 +10577,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9991,7 +10584,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -8872,7 +8791,7 @@ index 8095b71..eb4f0d7 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -10008,10 +10601,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10015,10 +10608,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -8885,7 +8804,7 @@ index 8095b71..eb4f0d7 100755
;;
esac
else
-@@ -10090,23 +10683,36 @@ fi
+@@ -10097,23 +10690,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -8930,7 +8849,7 @@ index 8095b71..eb4f0d7 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10191,7 +10797,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10198,7 +10804,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -8939,7 +8858,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -10210,9 +10816,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10217,9 +10823,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -8951,7 +8870,7 @@ index 8095b71..eb4f0d7 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10788,8 +11394,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10795,8 +11401,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -8963,7 +8882,7 @@ index 8095b71..eb4f0d7 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10822,13 +11429,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10829,13 +11436,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -9036,7 +8955,7 @@ index 8095b71..eb4f0d7 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10920,7 +11585,7 @@ haiku*)
+@@ -10927,7 +11592,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -9045,16 +8964,7 @@ index 8095b71..eb4f0d7 100755
hardcode_into_libs=yes
;;
-@@ -11716,7 +12381,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11719 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11760,10 +12425,10 @@ else
+@@ -11767,10 +12432,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -9067,16 +8977,7 @@ index 8095b71..eb4f0d7 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11822,7 +12487,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11825 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11866,10 +12531,10 @@ else
+@@ -11873,10 +12538,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -9089,7 +8990,7 @@ index 8095b71..eb4f0d7 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12261,6 +12926,7 @@ $RM -r conftest*
+@@ -12268,6 +12933,7 @@ $RM -r conftest*
# Allow CC to be a program name with arguments.
lt_save_CC=$CC
@@ -9097,7 +8998,7 @@ index 8095b71..eb4f0d7 100755
lt_save_LD=$LD
lt_save_GCC=$GCC
GCC=$GXX
-@@ -12278,6 +12944,7 @@ $RM -r conftest*
+@@ -12285,6 +12951,7 @@ $RM -r conftest*
fi
test -z "${LDCXX+set}" || LD=$LDCXX
CC=${CXX-"c++"}
@@ -9105,7 +9006,7 @@ index 8095b71..eb4f0d7 100755
compiler=$CC
compiler_CXX=$CC
for cc_temp in $compiler""; do
-@@ -12560,7 +13227,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -12567,7 +13234,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
allow_undefined_flag_CXX='-berok'
# Determine the default libpath from the value encoded in an empty
# executable.
@@ -9120,7 +9021,7 @@ index 8095b71..eb4f0d7 100755
/* end confdefs.h. */
int
-@@ -12573,22 +13246,29 @@ main ()
+@@ -12580,22 +13253,29 @@ main ()
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
@@ -9163,7 +9064,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-@@ -12601,7 +13281,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12608,7 +13288,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -9178,7 +9079,7 @@ index 8095b71..eb4f0d7 100755
/* end confdefs.h. */
int
-@@ -12614,22 +13300,29 @@ main ()
+@@ -12621,22 +13307,29 @@ main ()
_ACEOF
if ac_fn_cxx_try_link "$LINENO"; then :
@@ -9221,7 +9122,7 @@ index 8095b71..eb4f0d7 100755
hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -12672,29 +13365,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12679,29 +13372,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
cygwin* | mingw* | pw32* | cegcc*)
@@ -9320,7 +9221,7 @@ index 8095b71..eb4f0d7 100755
darwin* | rhapsody*)
-@@ -12800,7 +13539,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12807,7 +13546,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
*)
if test "$GXX" = yes; then
@@ -9329,7 +9230,7 @@ index 8095b71..eb4f0d7 100755
else
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
-@@ -12871,10 +13610,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12878,10 +13617,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
;;
ia64*)
@@ -9342,7 +9243,7 @@ index 8095b71..eb4f0d7 100755
;;
esac
fi
-@@ -12915,9 +13654,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12922,9 +13661,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
*)
if test "$GXX" = yes; then
if test "$with_gnu_ld" = no; then
@@ -9354,7 +9255,7 @@ index 8095b71..eb4f0d7 100755
fi
fi
link_all_deplibs_CXX=yes
-@@ -12987,20 +13726,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12994,20 +13733,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
prelink_cmds_CXX='tpldir=Template.dir~
rm -rf $tpldir~
$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
@@ -9379,7 +9280,7 @@ index 8095b71..eb4f0d7 100755
;;
*) # Version 6 and above use weak symbols
archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-@@ -13195,7 +13934,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13202,7 +13941,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
;;
*)
@@ -9388,7 +9289,7 @@ index 8095b71..eb4f0d7 100755
;;
esac
-@@ -13241,7 +13980,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13248,7 +13987,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
solaris*)
case $cc_basename in
@@ -9397,7 +9298,7 @@ index 8095b71..eb4f0d7 100755
# Sun C++ 4.2, 5.x and Centerline C++
archive_cmds_need_lc_CXX=yes
no_undefined_flag_CXX=' -zdefs'
-@@ -13282,9 +14021,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13289,9 +14028,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
if $CC --version | $GREP -v '^2\.7' > /dev/null; then
@@ -9409,7 +9310,7 @@ index 8095b71..eb4f0d7 100755
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used when
-@@ -13419,6 +14158,13 @@ private:
+@@ -13426,6 +14165,13 @@ private:
};
_LT_EOF
@@ -9423,7 +9324,7 @@ index 8095b71..eb4f0d7 100755
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
-@@ -13432,7 +14178,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13439,7 +14185,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
pre_test_object_deps_done=no
for p in `eval "$output_verbose_link_cmd"`; do
@@ -9432,7 +9333,7 @@ index 8095b71..eb4f0d7 100755
-L* | -R* | -l*)
# Some compilers place space between "-{L,R}" and the path.
-@@ -13441,13 +14187,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13448,13 +14194,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
test $p = "-R"; then
prev=$p
continue
@@ -9459,7 +9360,7 @@ index 8095b71..eb4f0d7 100755
# Internal compiler library paths should come after those
# provided the user. The postdeps already come after the
# user supplied libs so there is no need to process them.
-@@ -13467,8 +14222,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13474,8 +14229,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
postdeps_CXX="${postdeps_CXX} ${prev}${p}"
fi
fi
@@ -9470,7 +9371,7 @@ index 8095b71..eb4f0d7 100755
*.$objext)
# This assumes that the test object file only shows up
# once in the compiler output.
-@@ -13504,6 +14261,7 @@ else
+@@ -13511,6 +14268,7 @@ else
fi
$RM -f confest.$objext
@@ -9478,7 +9379,7 @@ index 8095b71..eb4f0d7 100755
# PORTME: override above test on systems where it is broken
case $host_os in
-@@ -13539,7 +14297,7 @@ linux*)
+@@ -13546,7 +14304,7 @@ linux*)
solaris*)
case $cc_basename in
@@ -9487,7 +9388,7 @@ index 8095b71..eb4f0d7 100755
# The more standards-conforming stlport4 library is
# incompatible with the Cstd library. Avoid specifying
# it if it's in CXXFLAGS. Ignore libCrun as
-@@ -13604,8 +14362,6 @@ fi
+@@ -13611,8 +14369,6 @@ fi
lt_prog_compiler_pic_CXX=
lt_prog_compiler_static_CXX=
@@ -9496,7 +9397,7 @@ index 8095b71..eb4f0d7 100755
# C++ specific cases for pic, static, wl, etc.
if test "$GXX" = yes; then
-@@ -13710,6 +14466,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -13717,6 +14473,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
;;
esac
;;
@@ -9508,7 +9409,7 @@ index 8095b71..eb4f0d7 100755
dgux*)
case $cc_basename in
ec++*)
-@@ -13862,7 +14623,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -13869,7 +14630,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
;;
solaris*)
case $cc_basename in
@@ -9517,7 +9418,7 @@ index 8095b71..eb4f0d7 100755
# Sun C++ 4.2, 5.x and Centerline C++
lt_prog_compiler_pic_CXX='-KPIC'
lt_prog_compiler_static_CXX='-Bstatic'
-@@ -13927,10 +14688,17 @@ case $host_os in
+@@ -13934,10 +14695,17 @@ case $host_os in
lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
;;
esac
@@ -9538,7 +9439,7 @@ index 8095b71..eb4f0d7 100755
#
# Check to make sure the PIC flag actually works.
-@@ -13988,6 +14756,8 @@ fi
+@@ -13995,6 +14763,8 @@ fi
@@ -9547,7 +9448,7 @@ index 8095b71..eb4f0d7 100755
#
# Check to make sure the static flag actually works.
#
-@@ -14165,6 +14935,7 @@ fi
+@@ -14172,6 +14942,7 @@ fi
$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -9555,7 +9456,7 @@ index 8095b71..eb4f0d7 100755
case $host_os in
aix[4-9]*)
# If we're using GNU nm, then we don't want the "-C" option.
-@@ -14179,15 +14950,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -14186,15 +14957,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
;;
pw32*)
export_symbols_cmds_CXX="$ltdll_cmds"
@@ -9581,7 +9482,7 @@ index 8095b71..eb4f0d7 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
$as_echo "$ld_shlibs_CXX" >&6; }
-@@ -14450,8 +15226,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14457,8 +15233,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -9593,7 +9494,7 @@ index 8095b71..eb4f0d7 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -14483,13 +15260,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14490,13 +15267,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -9666,7 +9567,7 @@ index 8095b71..eb4f0d7 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -14580,7 +15415,7 @@ haiku*)
+@@ -14587,7 +15422,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -9675,7 +9576,7 @@ index 8095b71..eb4f0d7 100755
hardcode_into_libs=yes
;;
-@@ -15039,6 +15874,7 @@ fi
+@@ -15046,6 +15881,7 @@ fi
fi # test -n "$compiler"
CC=$lt_save_CC
@@ -9683,7 +9584,7 @@ index 8095b71..eb4f0d7 100755
LDCXX=$LD
LD=$lt_save_LD
GCC=$lt_save_GCC
-@@ -17953,13 +18789,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -17982,13 +18818,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -9704,7 +9605,7 @@ index 8095b71..eb4f0d7 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -17974,14 +18817,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -18003,14 +18846,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -9723,7 +9624,7 @@ index 8095b71..eb4f0d7 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -18014,12 +18860,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -18043,12 +18889,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -9737,7 +9638,7 @@ index 8095b71..eb4f0d7 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -18058,8 +18904,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
+@@ -18087,8 +18933,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
@@ -9747,7 +9648,7 @@ index 8095b71..eb4f0d7 100755
lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -18086,12 +18932,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
+@@ -18115,12 +18961,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
@@ -9761,7 +9662,7 @@ index 8095b71..eb4f0d7 100755
file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -18129,8 +18975,13 @@ reload_flag \
+@@ -18158,8 +19004,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -9775,7 +9676,7 @@ index 8095b71..eb4f0d7 100755
STRIP \
RANLIB \
CC \
-@@ -18140,12 +18991,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -18169,12 +19020,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -9791,7 +9692,7 @@ index 8095b71..eb4f0d7 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -18161,7 +19014,6 @@ no_undefined_flag \
+@@ -18190,7 +19043,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -9799,7 +9700,7 @@ index 8095b71..eb4f0d7 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -18183,8 +19035,8 @@ LD_CXX \
+@@ -18212,8 +19064,8 @@ LD_CXX \
reload_flag_CXX \
compiler_CXX \
lt_prog_compiler_no_builtin_flag_CXX \
@@ -9809,7 +9710,7 @@ index 8095b71..eb4f0d7 100755
lt_prog_compiler_static_CXX \
lt_cv_prog_compiler_c_o_CXX \
export_dynamic_flag_spec_CXX \
-@@ -18196,7 +19048,6 @@ no_undefined_flag_CXX \
+@@ -18225,7 +19077,6 @@ no_undefined_flag_CXX \
hardcode_libdir_flag_spec_CXX \
hardcode_libdir_flag_spec_ld_CXX \
hardcode_libdir_separator_CXX \
@@ -9817,7 +9718,7 @@ index 8095b71..eb4f0d7 100755
exclude_expsyms_CXX \
include_expsyms_CXX \
file_list_spec_CXX \
-@@ -18230,6 +19081,7 @@ module_cmds \
+@@ -18259,6 +19110,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -9825,7 +9726,7 @@ index 8095b71..eb4f0d7 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -18244,7 +19096,8 @@ archive_expsym_cmds_CXX \
+@@ -18273,7 +19125,8 @@ archive_expsym_cmds_CXX \
module_cmds_CXX \
module_expsym_cmds_CXX \
export_symbols_cmds_CXX \
@@ -9835,7 +9736,7 @@ index 8095b71..eb4f0d7 100755
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-@@ -19037,7 +19890,8 @@ $as_echo X"$file" |
+@@ -19066,7 +19919,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -9845,7 +9746,7 @@ index 8095b71..eb4f0d7 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -19140,19 +19994,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -19169,19 +20023,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -9889,7 +9790,7 @@ index 8095b71..eb4f0d7 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -19182,6 +20059,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -19211,6 +20088,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -9902,7 +9803,7 @@ index 8095b71..eb4f0d7 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -19191,6 +20074,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -19220,6 +20103,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -9912,7 +9813,7 @@ index 8095b71..eb4f0d7 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -19305,12 +20191,12 @@ with_gcc=$GCC
+@@ -19334,12 +20220,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -9928,7 +9829,7 @@ index 8095b71..eb4f0d7 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -19397,9 +20283,6 @@ inherit_rpath=$inherit_rpath
+@@ -19426,9 +20312,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -9938,7 +9839,7 @@ index 8095b71..eb4f0d7 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -19415,6 +20298,9 @@ include_expsyms=$lt_include_expsyms
+@@ -19444,6 +20327,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -9948,7 +9849,7 @@ index 8095b71..eb4f0d7 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -19461,210 +20347,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -19490,210 +20376,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -10322,7 +10223,7 @@ index 8095b71..eb4f0d7 100755
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
-@@ -19692,12 +20537,12 @@ with_gcc=$GCC_CXX
+@@ -19721,12 +20566,12 @@ with_gcc=$GCC_CXX
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
@@ -10338,7 +10239,7 @@ index 8095b71..eb4f0d7 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static_CXX
-@@ -19784,9 +20629,6 @@ inherit_rpath=$inherit_rpath_CXX
+@@ -19813,9 +20658,6 @@ inherit_rpath=$inherit_rpath_CXX
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs_CXX
@@ -10348,7 +10249,7 @@ index 8095b71..eb4f0d7 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols_CXX
-@@ -19802,6 +20644,9 @@ include_expsyms=$lt_include_expsyms_CXX
+@@ -19831,6 +20673,9 @@ include_expsyms=$lt_include_expsyms_CXX
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds_CXX
@@ -10359,7 +10260,7 @@ index 8095b71..eb4f0d7 100755
file_list_spec=$lt_file_list_spec_CXX
diff --git a/libtool.m4 b/libtool.m4
-index 4b2d30a..008d331 100644
+index 24d13f3..e45fdc6 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -1,7 +1,8 @@
@@ -16451,7 +16352,7 @@ index 9503ec8..70e856e 100644
case "$perm_rpath " in
*" $libdir "*) ;;
- *) perm_rpath="$perm_rpath $libdir" ;;
-+ *) func_apped perm_rpath " $libdir" ;;
++ *) func_append perm_rpath " $libdir" ;;
esac
fi
done
@@ -17442,10 +17343,10 @@ index bf92b5e..c573da9 100644
# These exist entirely to fool aclocal when bootstrapping libtool.
#
diff --git a/opcodes/configure b/opcodes/configure
-index eedb184..d3076e1 100755
+index f615634..a340983 100755
--- a/opcodes/configure
+++ b/opcodes/configure
-@@ -648,6 +648,9 @@ OTOOL
+@@ -649,6 +649,9 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
@@ -17455,7 +17356,7 @@ index eedb184..d3076e1 100755
OBJDUMP
LN_S
NM
-@@ -760,6 +763,7 @@ enable_static
+@@ -762,6 +765,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -17463,7 +17364,7 @@ index eedb184..d3076e1 100755
enable_libtool_lock
enable_targets
enable_werror
-@@ -1420,6 +1424,8 @@ Optional Packages:
+@@ -1422,6 +1426,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -17472,7 +17373,7 @@ index eedb184..d3076e1 100755
Some influential environment variables:
CC C compiler command
-@@ -5110,8 +5116,8 @@ esac
+@@ -5114,8 +5120,8 @@ esac
@@ -17483,7 +17384,7 @@ index eedb184..d3076e1 100755
-@@ -5151,7 +5157,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5155,7 +5161,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -17492,7 +17393,7 @@ index eedb184..d3076e1 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -5837,8 +5843,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -5841,8 +5847,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -17503,7 +17404,7 @@ index eedb184..d3076e1 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -5887,6 +5893,80 @@ esac
+@@ -5891,6 +5897,80 @@ esac
@@ -17584,7 +17485,7 @@ index eedb184..d3076e1 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -5903,6 +5983,11 @@ case $reload_flag in
+@@ -5907,6 +5987,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -17596,7 +17497,7 @@ index eedb184..d3076e1 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6071,7 +6156,8 @@ mingw* | pw32*)
+@@ -6075,7 +6160,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -17606,7 +17507,7 @@ index eedb184..d3076e1 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -6225,6 +6311,21 @@ esac
+@@ -6229,6 +6315,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -17628,7 +17529,7 @@ index eedb184..d3076e1 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6240,9 +6341,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6244,9 +6345,162 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -17793,7 +17694,7 @@ index eedb184..d3076e1 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -6258,7 +6512,7 @@ do
+@@ -6262,7 +6516,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -17802,7 +17703,7 @@ index eedb184..d3076e1 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6278,11 +6532,15 @@ $as_echo "no" >&6; }
+@@ -6282,11 +6536,15 @@ $as_echo "no" >&6; }
fi
@@ -17821,7 +17722,7 @@ index eedb184..d3076e1 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -6298,7 +6556,7 @@ do
+@@ -6302,7 +6560,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -17830,7 +17731,7 @@ index eedb184..d3076e1 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -6317,6 +6575,10 @@ else
+@@ -6321,6 +6579,10 @@ else
$as_echo "no" >&6; }
fi
@@ -17841,7 +17742,7 @@ index eedb184..d3076e1 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -6328,16 +6590,72 @@ ac_tool_warned=yes ;;
+@@ -6332,16 +6594,72 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -17918,7 +17819,7 @@ index eedb184..d3076e1 100755
-@@ -6679,8 +6997,8 @@ esac
+@@ -6683,8 +7001,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -17929,7 +17830,7 @@ index eedb184..d3076e1 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -6716,6 +7034,7 @@ for ac_symprfx in "" "_"; do
+@@ -6720,6 +7038,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -17937,7 +17838,7 @@ index eedb184..d3076e1 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -6757,6 +7076,18 @@ _LT_EOF
+@@ -6761,6 +7080,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -17956,7 +17857,7 @@ index eedb184..d3076e1 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -6768,7 +7099,7 @@ _LT_EOF
+@@ -6772,7 +7103,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -17965,7 +17866,7 @@ index eedb184..d3076e1 100755
const char *name;
void *address;
}
-@@ -6794,8 +7125,8 @@ static const void *lt_preloaded_setup() {
+@@ -6798,8 +7129,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -17976,7 +17877,7 @@ index eedb184..d3076e1 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -6805,8 +7136,8 @@ _LT_EOF
+@@ -6809,8 +7140,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -17987,7 +17888,7 @@ index eedb184..d3076e1 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -6843,6 +7174,16 @@ else
+@@ -6847,6 +7178,16 @@ else
$as_echo "ok" >&6; }
fi
@@ -18004,7 +17905,7 @@ index eedb184..d3076e1 100755
-@@ -6864,6 +7205,45 @@ fi
+@@ -6868,6 +7209,45 @@ fi
@@ -18050,7 +17951,7 @@ index eedb184..d3076e1 100755
# Check whether --enable-libtool-lock was given.
if test "${enable_libtool_lock+set}" = set; then :
enableval=$enable_libtool_lock;
-@@ -7070,6 +7450,123 @@ esac
+@@ -7074,6 +7454,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -18174,7 +18075,7 @@ index eedb184..d3076e1 100755
case $host_os in
rhapsody* | darwin*)
-@@ -7633,6 +8130,8 @@ _LT_EOF
+@@ -7637,6 +8134,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -18183,7 +18084,7 @@ index eedb184..d3076e1 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7798,7 +8297,8 @@ fi
+@@ -7802,7 +8301,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -18193,7 +18094,7 @@ index eedb184..d3076e1 100755
-@@ -7887,7 +8387,7 @@ aix3*)
+@@ -7891,7 +8391,7 @@ aix3*)
esac
# Global variables:
@@ -18202,7 +18103,7 @@ index eedb184..d3076e1 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -8185,8 +8685,6 @@ fi
+@@ -8189,8 +8689,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -18211,7 +18112,7 @@ index eedb184..d3076e1 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -8352,6 +8850,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8356,6 +8854,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -18224,7 +18125,7 @@ index eedb184..d3076e1 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -8414,7 +8918,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8418,7 +8922,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -18233,7 +18134,7 @@ index eedb184..d3076e1 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -8471,13 +8975,17 @@ case $host_os in
+@@ -8475,13 +8979,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -18257,7 +18158,7 @@ index eedb184..d3076e1 100755
#
# Check to make sure the PIC flag actually works.
-@@ -8538,6 +9046,11 @@ fi
+@@ -8542,6 +9050,11 @@ fi
@@ -18269,7 +18170,7 @@ index eedb184..d3076e1 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8888,7 +9401,8 @@ _LT_EOF
+@@ -8892,7 +9405,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -18279,7 +18180,7 @@ index eedb184..d3076e1 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -8987,12 +9501,12 @@ _LT_EOF
+@@ -8991,12 +9505,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -18294,7 +18195,7 @@ index eedb184..d3076e1 100755
fi
;;
esac
-@@ -9006,8 +9520,8 @@ _LT_EOF
+@@ -9010,8 +9524,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -18305,7 +18206,7 @@ index eedb184..d3076e1 100755
fi
;;
-@@ -9025,8 +9539,8 @@ _LT_EOF
+@@ -9029,8 +9543,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -18316,7 +18217,7 @@ index eedb184..d3076e1 100755
else
ld_shlibs=no
fi
-@@ -9072,8 +9586,8 @@ _LT_EOF
+@@ -9076,8 +9590,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -18327,7 +18228,7 @@ index eedb184..d3076e1 100755
else
ld_shlibs=no
fi
-@@ -9203,7 +9717,13 @@ _LT_EOF
+@@ -9207,7 +9721,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -18342,7 +18243,7 @@ index eedb184..d3076e1 100755
/* end confdefs.h. */
int
-@@ -9216,22 +9736,29 @@ main ()
+@@ -9220,22 +9740,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -18385,7 +18286,7 @@ index eedb184..d3076e1 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9243,7 +9770,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9247,7 +9774,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -18400,7 +18301,7 @@ index eedb184..d3076e1 100755
/* end confdefs.h. */
int
-@@ -9256,22 +9789,29 @@ main ()
+@@ -9260,22 +9793,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -18443,7 +18344,7 @@ index eedb184..d3076e1 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -9316,20 +9856,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9320,20 +9860,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -18521,7 +18422,7 @@ index eedb184..d3076e1 100755
;;
darwin* | rhapsody*)
-@@ -9390,7 +9973,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9394,7 +9977,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -18530,7 +18431,7 @@ index eedb184..d3076e1 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -9398,7 +9981,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9402,7 +9985,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -18539,7 +18440,7 @@ index eedb184..d3076e1 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -9414,7 +9997,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9418,7 +10001,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -18548,7 +18449,7 @@ index eedb184..d3076e1 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -9438,10 +10021,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9442,10 +10025,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -18561,7 +18462,7 @@ index eedb184..d3076e1 100755
;;
esac
else
-@@ -9520,23 +10103,36 @@ fi
+@@ -9524,23 +10107,36 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -18606,7 +18507,7 @@ index eedb184..d3076e1 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9621,7 +10217,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9625,7 +10221,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -18615,7 +18516,7 @@ index eedb184..d3076e1 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -9640,9 +10236,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9644,9 +10240,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -18627,7 +18528,7 @@ index eedb184..d3076e1 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -10218,8 +10814,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10222,8 +10818,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -18639,7 +18540,7 @@ index eedb184..d3076e1 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -10252,13 +10849,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10256,13 +10853,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -18712,7 +18613,7 @@ index eedb184..d3076e1 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -10350,7 +11005,7 @@ haiku*)
+@@ -10354,7 +11009,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -18721,16 +18622,7 @@ index eedb184..d3076e1 100755
hardcode_into_libs=yes
;;
-@@ -11146,7 +11801,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11149 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11190,10 +11845,10 @@ else
+@@ -11194,10 +11849,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -18743,16 +18635,7 @@ index eedb184..d3076e1 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11252,7 +11907,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 11255 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -11296,10 +11951,10 @@ else
+@@ -11300,10 +11955,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -18765,7 +18648,7 @@ index eedb184..d3076e1 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12462,7 +13117,7 @@ if test "$enable_shared" = "yes"; then
+@@ -12499,7 +13154,7 @@ if test "$enable_shared" = "yes"; then
# since libbfd may not pull in the entirety of libiberty.
x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
if test -n "$x"; then
@@ -18774,7 +18657,7 @@ index eedb184..d3076e1 100755
fi
case "${host}" in
-@@ -13436,13 +14091,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -13473,13 +14128,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -18795,7 +18678,7 @@ index eedb184..d3076e1 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -13457,14 +14119,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -13494,14 +14156,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -18814,7 +18697,7 @@ index eedb184..d3076e1 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -13497,12 +14162,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -13534,12 +14199,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -18828,7 +18711,7 @@ index eedb184..d3076e1 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -13557,8 +14222,13 @@ reload_flag \
+@@ -13594,8 +14259,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -18842,7 +18725,7 @@ index eedb184..d3076e1 100755
STRIP \
RANLIB \
CC \
-@@ -13568,12 +14238,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -13605,12 +14275,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -18858,7 +18741,7 @@ index eedb184..d3076e1 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -13589,7 +14261,6 @@ no_undefined_flag \
+@@ -13626,7 +14298,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -18866,7 +18749,7 @@ index eedb184..d3076e1 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -13625,6 +14296,7 @@ module_cmds \
+@@ -13662,6 +14333,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -18874,7 +18757,7 @@ index eedb184..d3076e1 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -14381,7 +15053,8 @@ $as_echo X"$file" |
+@@ -14418,7 +15090,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -18884,7 +18767,7 @@ index eedb184..d3076e1 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -14484,19 +15157,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -14521,19 +15194,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -18928,7 +18811,7 @@ index eedb184..d3076e1 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -14526,6 +15222,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -14563,6 +15259,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -18941,7 +18824,7 @@ index eedb184..d3076e1 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -14535,6 +15237,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -14572,6 +15274,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -18951,7 +18834,7 @@ index eedb184..d3076e1 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -14649,12 +15354,12 @@ with_gcc=$GCC
+@@ -14686,12 +15391,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -18967,7 +18850,7 @@ index eedb184..d3076e1 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -14741,9 +15446,6 @@ inherit_rpath=$inherit_rpath
+@@ -14778,9 +15483,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -18977,7 +18860,7 @@ index eedb184..d3076e1 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -14759,6 +15461,9 @@ include_expsyms=$lt_include_expsyms
+@@ -14796,6 +15498,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -18987,7 +18870,7 @@ index eedb184..d3076e1 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -14791,210 +15496,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -14828,210 +15533,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -19362,7 +19245,7 @@ index eedb184..d3076e1 100755
chmod +x "$ofile"
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
-index 07e3162..c0c75d4 100644
+index c7f4783..f2e002d 100644
--- a/opcodes/configure.ac
+++ b/opcodes/configure.ac
@@ -167,7 +167,7 @@ changequote(,)dnl
@@ -19375,7 +19258,7 @@ index 07e3162..c0c75d4 100644
case "${host}" in
diff --git a/zlib/configure b/zlib/configure
-index 8378857..7584940 100755
+index bba9fd2..25a2dae 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -614,8 +614,11 @@ OTOOL
@@ -19390,7 +19273,7 @@ index 8378857..7584940 100755
OBJDUMP
LN_S
NM
-@@ -736,6 +739,7 @@ enable_static
+@@ -737,6 +740,7 @@ enable_static
with_pic
enable_fast_install
with_gnu_ld
@@ -19398,7 +19281,7 @@ index 8378857..7584940 100755
enable_libtool_lock
enable_host_shared
'
-@@ -1384,6 +1388,8 @@ Optional Packages:
+@@ -1385,6 +1389,8 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -19407,7 +19290,7 @@ index 8378857..7584940 100755
Some influential environment variables:
CC C compiler command
-@@ -3907,8 +3913,8 @@ esac
+@@ -3910,8 +3916,8 @@ esac
@@ -19418,7 +19301,7 @@ index 8378857..7584940 100755
-@@ -3948,7 +3954,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -3951,7 +3957,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
@@ -19427,7 +19310,7 @@ index 8378857..7584940 100755
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -4764,8 +4770,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -4767,8 +4773,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
@@ -19438,7 +19321,7 @@ index 8378857..7584940 100755
&& eval 'test $(( 1 + 1 )) -eq 2 \
&& test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
&& xsi_shell=yes
-@@ -4814,6 +4820,80 @@ esac
+@@ -4817,6 +4823,80 @@ esac
@@ -19519,7 +19402,7 @@ index 8378857..7584940 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if test "${lt_cv_ld_reload_flag+set}" = set; then :
-@@ -4830,6 +4910,11 @@ case $reload_flag in
+@@ -4833,6 +4913,11 @@ case $reload_flag in
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
@@ -19531,7 +19414,7 @@ index 8378857..7584940 100755
darwin*)
if test "$GCC" = yes; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -4998,7 +5083,8 @@ mingw* | pw32*)
+@@ -5001,7 +5086,8 @@ mingw* | pw32*)
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
@@ -19541,7 +19424,7 @@ index 8378857..7584940 100755
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
-@@ -5152,6 +5238,21 @@ esac
+@@ -5155,6 +5241,21 @@ esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -19563,7 +19446,7 @@ index 8378857..7584940 100755
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -5167,9 +5268,163 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -5170,9 +5271,163 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -19729,7 +19612,7 @@ index 8378857..7584940 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_AR+set}" = set; then :
-@@ -5185,7 +5440,7 @@ do
+@@ -5188,7 +5443,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -19738,7 +19621,7 @@ index 8378857..7584940 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -5205,11 +5460,15 @@ $as_echo "no" >&6; }
+@@ -5208,11 +5463,15 @@ $as_echo "no" >&6; }
fi
@@ -19757,7 +19640,7 @@ index 8378857..7584940 100755
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
-@@ -5225,7 +5484,7 @@ do
+@@ -5228,7 +5487,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
@@ -19766,7 +19649,7 @@ index 8378857..7584940 100755
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
-@@ -5244,6 +5503,10 @@ else
+@@ -5247,6 +5506,10 @@ else
$as_echo "no" >&6; }
fi
@@ -19777,7 +19660,7 @@ index 8378857..7584940 100755
if test "x$ac_ct_AR" = x; then
AR="false"
else
-@@ -5255,16 +5518,72 @@ ac_tool_warned=yes ;;
+@@ -5258,16 +5521,72 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
@@ -19854,7 +19737,7 @@ index 8378857..7584940 100755
-@@ -5606,8 +5925,8 @@ esac
+@@ -5609,8 +5928,8 @@ esac
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
@@ -19865,7 +19748,7 @@ index 8378857..7584940 100755
# Handle CRLF in mingw tool chain
opt_cr=
-@@ -5643,6 +5962,7 @@ for ac_symprfx in "" "_"; do
+@@ -5646,6 +5965,7 @@ for ac_symprfx in "" "_"; do
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
@@ -19873,7 +19756,7 @@ index 8378857..7584940 100755
# Check to see that the pipe works correctly.
pipe_works=no
-@@ -5684,6 +6004,18 @@ _LT_EOF
+@@ -5687,6 +6007,18 @@ _LT_EOF
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
@@ -19892,7 +19775,7 @@ index 8378857..7584940 100755
#ifdef __cplusplus
extern "C" {
#endif
-@@ -5695,7 +6027,7 @@ _LT_EOF
+@@ -5698,7 +6030,7 @@ _LT_EOF
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
@@ -19901,7 +19784,7 @@ index 8378857..7584940 100755
const char *name;
void *address;
}
-@@ -5721,8 +6053,8 @@ static const void *lt_preloaded_setup() {
+@@ -5724,8 +6056,8 @@ static const void *lt_preloaded_setup() {
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
@@ -19912,7 +19795,7 @@ index 8378857..7584940 100755
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -5732,8 +6064,8 @@ _LT_EOF
+@@ -5735,8 +6067,8 @@ _LT_EOF
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -19923,7 +19806,7 @@ index 8378857..7584940 100755
else
echo "cannot find nm_test_func in $nlist" >&5
fi
-@@ -5770,6 +6102,19 @@ else
+@@ -5773,6 +6105,19 @@ else
$as_echo "ok" >&6; }
fi
@@ -19943,7 +19826,7 @@ index 8378857..7584940 100755
-@@ -5790,6 +6135,41 @@ fi
+@@ -5793,6 +6138,41 @@ fi
@@ -19985,7 +19868,7 @@ index 8378857..7584940 100755
# Check whether --enable-libtool-lock was given.
-@@ -6001,6 +6381,123 @@ esac
+@@ -6004,6 +6384,123 @@ esac
need_locks="$enable_libtool_lock"
@@ -20109,7 +19992,7 @@ index 8378857..7584940 100755
case $host_os in
rhapsody* | darwin*)
-@@ -6567,6 +7064,8 @@ _LT_EOF
+@@ -6570,6 +7067,8 @@ _LT_EOF
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
@@ -20118,7 +20001,7 @@ index 8378857..7584940 100755
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
-@@ -7030,7 +7529,8 @@ fi
+@@ -7033,7 +7532,8 @@ fi
LIBTOOL_DEPS="$ltmain"
# Always use our own libtool.
@@ -20128,7 +20011,7 @@ index 8378857..7584940 100755
-@@ -7119,7 +7619,7 @@ aix3*)
+@@ -7122,7 +7622,7 @@ aix3*)
esac
# Global variables:
@@ -20137,7 +20020,7 @@ index 8378857..7584940 100755
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
-@@ -7417,8 +7917,6 @@ fi
+@@ -7420,8 +7920,6 @@ fi
lt_prog_compiler_pic=
lt_prog_compiler_static=
@@ -20146,7 +20029,7 @@ index 8378857..7584940 100755
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
-@@ -7584,6 +8082,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -7587,6 +8085,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
@@ -20159,7 +20042,7 @@ index 8378857..7584940 100755
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
-@@ -7646,7 +8150,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -7649,7 +8153,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
@@ -20168,7 +20051,7 @@ index 8378857..7584940 100755
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
-@@ -7703,13 +8207,17 @@ case $host_os in
+@@ -7706,13 +8210,17 @@ case $host_os in
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
@@ -20192,7 +20075,7 @@ index 8378857..7584940 100755
#
# Check to make sure the PIC flag actually works.
-@@ -7770,6 +8278,11 @@ fi
+@@ -7773,6 +8281,11 @@ fi
@@ -20204,7 +20087,7 @@ index 8378857..7584940 100755
#
# Check to make sure the static flag actually works.
#
-@@ -8120,7 +8633,8 @@ _LT_EOF
+@@ -8123,7 +8636,8 @@ _LT_EOF
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
@@ -20214,7 +20097,7 @@ index 8378857..7584940 100755
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -8219,12 +8733,12 @@ _LT_EOF
+@@ -8222,12 +8736,12 @@ _LT_EOF
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec=
hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -20229,7 +20112,7 @@ index 8378857..7584940 100755
fi
;;
esac
-@@ -8238,8 +8752,8 @@ _LT_EOF
+@@ -8241,8 +8755,8 @@ _LT_EOF
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
@@ -20240,7 +20123,7 @@ index 8378857..7584940 100755
fi
;;
-@@ -8257,8 +8771,8 @@ _LT_EOF
+@@ -8260,8 +8774,8 @@ _LT_EOF
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -20251,7 +20134,7 @@ index 8378857..7584940 100755
else
ld_shlibs=no
fi
-@@ -8304,8 +8818,8 @@ _LT_EOF
+@@ -8307,8 +8821,8 @@ _LT_EOF
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -20262,7 +20145,7 @@ index 8378857..7584940 100755
else
ld_shlibs=no
fi
-@@ -8435,7 +8949,13 @@ _LT_EOF
+@@ -8438,7 +8952,13 @@ _LT_EOF
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -20277,7 +20160,7 @@ index 8378857..7584940 100755
as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -8451,22 +8971,29 @@ main ()
+@@ -8454,22 +8974,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -20320,7 +20203,7 @@ index 8378857..7584940 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -8478,7 +9005,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8481,7 +9008,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
else
# Determine the default libpath from the value encoded in an
# empty executable.
@@ -20335,7 +20218,7 @@ index 8378857..7584940 100755
as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
fi
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -8494,22 +9027,29 @@ main ()
+@@ -8497,22 +9030,29 @@ main ()
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
@@ -20378,7 +20261,7 @@ index 8378857..7584940 100755
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
-@@ -8554,20 +9094,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8557,20 +9097,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
@@ -20456,7 +20339,7 @@ index 8378857..7584940 100755
;;
darwin* | rhapsody*)
-@@ -8628,7 +9211,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8631,7 +9214,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
@@ -20465,7 +20348,7 @@ index 8378857..7584940 100755
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
-@@ -8636,7 +9219,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8639,7 +9222,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux9*)
if test "$GCC" = yes; then
@@ -20474,7 +20357,7 @@ index 8378857..7584940 100755
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
fi
-@@ -8652,7 +9235,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8655,7 +9238,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
hpux10*)
if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -20483,7 +20366,7 @@ index 8378857..7584940 100755
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
-@@ -8676,10 +9259,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -8679,10 +9262,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
@@ -20496,7 +20379,7 @@ index 8378857..7584940 100755
;;
esac
else
-@@ -8758,26 +9341,39 @@ fi
+@@ -8761,26 +9344,39 @@ fi
irix5* | irix6* | nonstopux*)
if test "$GCC" = yes; then
@@ -20544,7 +20427,7 @@ index 8378857..7584940 100755
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -8862,7 +9458,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -8865,7 +9461,7 @@ rm -f core conftest.err conftest.$ac_objext \
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test "$GCC" = yes; then
allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -20553,7 +20436,7 @@ index 8378857..7584940 100755
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
-@@ -8881,9 +9477,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -8884,9 +9480,9 @@ rm -f core conftest.err conftest.$ac_objext \
no_undefined_flag=' -z defs'
if test "$GCC" = yes; then
wlarc='${wl}'
@@ -20565,7 +20448,7 @@ index 8378857..7584940 100755
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
-@@ -9459,8 +10055,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -9462,8 +10058,9 @@ cygwin* | mingw* | pw32* | cegcc*)
need_version=no
need_lib_prefix=no
@@ -20577,7 +20460,7 @@ index 8378857..7584940 100755
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \${file}`~
-@@ -9493,13 +10090,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -9496,13 +10093,71 @@ cygwin* | mingw* | pw32* | cegcc*)
library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
;;
esac
@@ -20650,7 +20533,7 @@ index 8378857..7584940 100755
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
-@@ -9591,7 +10246,7 @@ haiku*)
+@@ -9594,7 +10249,7 @@ haiku*)
soname_spec='${libname}${release}${shared_ext}$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=yes
@@ -20659,16 +20542,16 @@ index 8378857..7584940 100755
hardcode_into_libs=yes
;;
-@@ -10405,7 +11060,7 @@ else
+@@ -10408,7 +11063,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
--#line 10408 "configure"
+-#line 10411 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -10449,10 +11104,10 @@ else
+@@ -10452,10 +11107,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -20681,16 +20564,16 @@ index 8378857..7584940 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -10511,7 +11166,7 @@ else
+@@ -10514,7 +11169,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
--#line 10514 "configure"
+-#line 10517 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-@@ -10555,10 +11210,10 @@ else
+@@ -10558,10 +11213,10 @@ else
/* When -fvisbility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -20703,7 +20586,7 @@ index 8378857..7584940 100755
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11990,13 +12645,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -11993,13 +12648,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -20724,7 +20607,7 @@ index 8378857..7584940 100755
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -12011,14 +12673,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -12014,14 +12676,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -20743,7 +20626,7 @@ index 8378857..7584940 100755
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -12051,12 +12716,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -12054,12 +12719,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -20757,7 +20640,7 @@ index 8378857..7584940 100755
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -12111,8 +12776,13 @@ reload_flag \
+@@ -12114,8 +12779,13 @@ reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
@@ -20771,7 +20654,7 @@ index 8378857..7584940 100755
STRIP \
RANLIB \
CC \
-@@ -12122,12 +12792,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -12125,12 +12795,14 @@ lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -20787,7 +20670,7 @@ index 8378857..7584940 100755
DSYMUTIL \
NMEDIT \
LIPO \
-@@ -12143,7 +12815,6 @@ no_undefined_flag \
+@@ -12146,7 +12818,6 @@ no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_flag_spec_ld \
hardcode_libdir_separator \
@@ -20795,7 +20678,7 @@ index 8378857..7584940 100755
exclude_expsyms \
include_expsyms \
file_list_spec \
-@@ -12179,6 +12850,7 @@ module_cmds \
+@@ -12182,6 +12853,7 @@ module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
@@ -20803,7 +20686,7 @@ index 8378857..7584940 100755
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
-@@ -12768,7 +13440,8 @@ $as_echo X"$file" |
+@@ -12771,7 +13443,8 @@ $as_echo X"$file" |
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -20813,7 +20696,7 @@ index 8378857..7584940 100755
# Written by Gordon Matzigkeit, 1996
#
# This file is part of GNU Libtool.
-@@ -12871,19 +13544,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -12874,19 +13547,42 @@ SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
@@ -20857,7 +20740,7 @@ index 8378857..7584940 100755
# A symbol stripping program.
STRIP=$lt_STRIP
-@@ -12913,6 +13609,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -12916,6 +13612,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
@@ -20870,7 +20753,7 @@ index 8378857..7584940 100755
# The name of the directory that contains temporary libtool files.
objdir=$objdir
-@@ -12922,6 +13624,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -12925,6 +13627,9 @@ MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
@@ -20880,7 +20763,7 @@ index 8378857..7584940 100755
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
-@@ -13036,12 +13741,12 @@ with_gcc=$GCC
+@@ -13039,12 +13744,12 @@ with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
@@ -20896,7 +20779,7 @@ index 8378857..7584940 100755
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
-@@ -13128,9 +13833,6 @@ inherit_rpath=$inherit_rpath
+@@ -13131,9 +13836,6 @@ inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
@@ -20906,7 +20789,7 @@ index 8378857..7584940 100755
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
-@@ -13146,6 +13848,9 @@ include_expsyms=$lt_include_expsyms
+@@ -13149,6 +13851,9 @@ include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
@@ -20916,7 +20799,7 @@ index 8378857..7584940 100755
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
-@@ -13178,210 +13883,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -13181,210 +13886,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
@@ -21291,5 +21174,4 @@ index 8378857..7584940 100755
chmod +x "$ofile"
--
-2.7.1
-
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch
index cb3f83b4f..795abf365 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0007-Add-the-armv5e-architecture-to-binutils.patch
@@ -1,7 +1,7 @@
-From 4ff9dbe13f38e4fea24fbcc9879cf7352c0561ff Mon Sep 17 00:00:00 2001
+From 9475aee8a702aa531737ec12dfd928d52951bc84 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:37:10 +0000
-Subject: [PATCH 07/14] Add the armv5e architecture to binutils
+Subject: [PATCH 07/13] Add the armv5e architecture to binutils
Binutils has a comment that indicates it is supposed to match gcc for
all of the support "-march=" settings, but it was lacking the armv5e setting.
@@ -19,10 +19,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+)
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
-index 3bd4bc9..5d99921 100644
+index 73d0531..4b9e32f 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
-@@ -24791,6 +24791,7 @@ static const struct arm_arch_option_table arm_archs[] =
+@@ -25421,6 +25421,7 @@ static const struct arm_arch_option_table arm_archs[] =
ARM_ARCH_OPT ("armv4t", ARM_ARCH_V4T, FPU_ARCH_FPA),
ARM_ARCH_OPT ("armv4txm", ARM_ARCH_V4TxM, FPU_ARCH_FPA),
ARM_ARCH_OPT ("armv5", ARM_ARCH_V5, FPU_ARCH_VFP),
@@ -31,5 +31,5 @@ index 3bd4bc9..5d99921 100644
ARM_ARCH_OPT ("armv5txm", ARM_ARCH_V5TxM, FPU_ARCH_VFP),
ARM_ARCH_OPT ("armv5te", ARM_ARCH_V5TE, FPU_ARCH_VFP),
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
index f8382f872..af524ced2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0008-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
@@ -1,7 +1,7 @@
-From cb36d94dbd521752e6444418af500e139a26eabb Mon Sep 17 00:00:00 2001
+From b2d277937d11f1ce1d581f48ff74a25822a052da Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:39:01 +0000
-Subject: [PATCH 08/14] don't let the distro compiler point to the wrong
+Subject: [PATCH 08/13] don't let the distro compiler point to the wrong
installation location
Thanks to RP for helping find the source code causing the issue.
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index 7d7e2f4..1aaaf0e 100644
+index c7a4568..f766b72 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -364,7 +364,8 @@ install-strip: install
@@ -31,5 +31,5 @@ index 7d7e2f4..1aaaf0e 100644
if test -n "${target_header_dir}"; then \
${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch
index d3f510b11..3c83e69e4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0009-warn-for-uses-of-system-directories-when-cross-linki.patch
@@ -1,7 +1,7 @@
-From 4daa841ce16ba52b717bdff9eb1dfc4f19638814 Mon Sep 17 00:00:00 2001
+From 7ab8e318659eb5d9adc758c78d084a95560b93fd Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Jan 2016 06:31:09 +0000
-Subject: [PATCH 09/14] warn for uses of system directories when cross linking
+Subject: [PATCH 09/13] warn for uses of system directories when cross linking
2008-07-02 Joseph Myers <joseph@codesourcery.com>
@@ -63,10 +63,10 @@ Upstream-Status: Pending
9 files changed, 86 insertions(+)
diff --git a/ld/config.in b/ld/config.in
-index 276fb77..35c58eb 100644
+index 2c6d698..d3cb7e8 100644
--- a/ld/config.in
+++ b/ld/config.in
-@@ -14,6 +14,9 @@
+@@ -17,6 +17,9 @@
language is requested. */
#undef ENABLE_NLS
@@ -77,10 +77,10 @@ index 276fb77..35c58eb 100644
#undef EXTRA_SHLIB_EXTENSION
diff --git a/ld/configure b/ld/configure
-index eb4f0d7..e9054b4 100755
+index 3df1149..0601c98 100755
--- a/ld/configure
+++ b/ld/configure
-@@ -790,6 +790,7 @@ with_lib_path
+@@ -792,6 +792,7 @@ with_lib_path
enable_targets
enable_64_bit_bfd
with_sysroot
@@ -88,7 +88,7 @@ index eb4f0d7..e9054b4 100755
enable_gold
enable_got
enable_compressed_debug_sections
-@@ -1446,6 +1447,8 @@ Optional Features:
+@@ -1449,6 +1450,8 @@ Optional Features:
--disable-largefile omit support for large files
--enable-targets alternative target configurations
--enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
@@ -97,7 +97,7 @@ index eb4f0d7..e9054b4 100755
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
-@@ -16306,6 +16309,19 @@ fi
+@@ -16313,6 +16316,19 @@ fi
@@ -118,7 +118,7 @@ index eb4f0d7..e9054b4 100755
if test "${enable_gold+set}" = set; then :
enableval=$enable_gold; case "${enableval}" in
diff --git a/ld/configure.ac b/ld/configure.ac
-index e28f38e..7b474e7 100644
+index d17281f..9fb3db9 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot)
@@ -139,10 +139,10 @@ index e28f38e..7b474e7 100644
dnl "install_as_default" is set to false if gold is the default linker.
dnl "installed_linker" is the installed BFD linker name.
diff --git a/ld/ld.h b/ld/ld.h
-index d84ec4e..3476b26 100644
+index 85a48ad..a8fdddf 100644
--- a/ld/ld.h
+++ b/ld/ld.h
-@@ -164,6 +164,14 @@ typedef struct {
+@@ -169,6 +169,14 @@ typedef struct
/* If set, display the target memory usage (per memory region). */
bfd_boolean print_memory_usage;
@@ -158,10 +158,10 @@ index d84ec4e..3476b26 100644
enum endian_enum endian;
diff --git a/ld/ld.texinfo b/ld/ld.texinfo
-index 2389661..d06112b 100644
+index bc16764..838c75d 100644
--- a/ld/ld.texinfo
+++ b/ld/ld.texinfo
-@@ -2338,6 +2338,18 @@ string identifying the original linked file does not change.
+@@ -2357,6 +2357,18 @@ string identifying the original linked file does not change.
Passing @code{none} for @var{style} disables the setting from any
@code{--build-id} options earlier on the command line.
@@ -181,7 +181,7 @@ index 2389661..d06112b 100644
@c man end
diff --git a/ld/ldfile.c b/ld/ldfile.c
-index 96f9ecc..af231c0 100644
+index e397737..013727b 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
@@ -209,7 +209,7 @@ index 96f9ecc..af231c0 100644
/* Try to open a BFD for a lang_input_statement. */
diff --git a/ld/ldlex.h b/ld/ldlex.h
-index 6f11e7b..0ca3110 100644
+index cf943e4..12cfcaa 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -144,6 +144,8 @@ enum option_values
@@ -222,7 +222,7 @@ index 6f11e7b..0ca3110 100644
/* The initial parser states. */
diff --git a/ld/ldmain.c b/ld/ldmain.c
-index bb0b9cc..a23c56c 100644
+index e7a8dff..3ccf2af 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -257,6 +257,8 @@ main (int argc, char **argv)
@@ -235,7 +235,7 @@ index bb0b9cc..a23c56c 100644
/* We initialize DEMANGLING based on the environment variable
COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
diff --git a/ld/lexsup.c b/ld/lexsup.c
-index e2fb212..a2064f1 100644
+index 6d28e91..5c9da57 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] =
@@ -269,5 +269,5 @@ index e2fb212..a2064f1 100644
}
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
index 407424103..e2f6a51a3 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0010-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
@@ -1,7 +1,7 @@
-From bb9eb09411ddcef515f0f7ad7c29214b0766e960 Mon Sep 17 00:00:00 2001
+From 27fc7a4927ab92925a5be84217959d9f1c808ccc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:42:38 +0000
-Subject: [PATCH 10/14] Fix rpath in libtool when sysroot is enabled
+Subject: [PATCH 10/13] Fix rpath in libtool when sysroot is enabled
Enabling sysroot support in libtool exposed a bug where the final
library had an RPATH encoded into it which still pointed to the
@@ -48,5 +48,5 @@ index 70e856e..11ee684 100644
if test -z "$hardcode_libdirs"; then
hardcode_libdirs="$libdir"
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch
index c0d2d718a..3fdb5eb92 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0011-Change-default-emulation-for-mips64-linux.patch
@@ -1,7 +1,7 @@
-From af1b4ee69b4fd617b88127ed40c3ca7351a9532f Mon Sep 17 00:00:00 2001
+From 6b018e8129298dbd5b714e459ef0b3aef5bbce13 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 2 Mar 2015 01:44:14 +0000
-Subject: [PATCH 11/14] Change default emulation for mips64*-*-linux
+Subject: [PATCH 11/13] Change default emulation for mips64*-*-linux
we change the default emulations to be N64 instead of N32
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/bfd/config.bfd b/bfd/config.bfd
-index c5688cb..5c27b49 100644
+index b998830..ab17e72 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -1087,12 +1087,12 @@ case "${targ}" in
+@@ -1101,12 +1101,12 @@ case "${targ}" in
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
;;
mips64*el-*-linux*)
@@ -35,10 +35,10 @@ index c5688cb..5c27b49 100644
mips*el-*-linux*)
targ_defvec=mips_elf32_trad_le_vec
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index 6b6bbf2..b45b1e5 100644
+index a3db909..212327c 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -509,11 +509,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
+@@ -513,11 +513,11 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
targ_extra_emuls="elf32elmipvxworks" ;;
mips*-*-windiss) targ_emul=elf32mipswindiss ;;
@@ -55,5 +55,5 @@ index 6b6bbf2..b45b1e5 100644
mips*el-*-linux-*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch
index af7f12ff8..8103347ba 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0012-Add-support-for-Netlogic-XLP.patch
@@ -1,7 +1,7 @@
-From 9f967c555b3fda64af4549ae252a0fba00120529 Mon Sep 17 00:00:00 2001
+From c2e138f4ccdf8af81c18c8511c901d3deee696b5 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 14 Feb 2016 17:06:19 +0000
-Subject: [PATCH 12/14] Add support for Netlogic XLP
+Subject: [PATCH 12/13] Add support for Netlogic XLP
Patch From: Nebu Philips <nphilips@netlogicmicro.com>
@@ -35,10 +35,10 @@ Upstream-Status: Pending
15 files changed, 65 insertions(+), 25 deletions(-)
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
-index f78b910..d0d8dd3 100644
+index be0126a..4ca7e24 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
-@@ -802,6 +802,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
+@@ -812,6 +812,7 @@ NAME (aout, machine_type) (enum bfd_architecture arch,
case bfd_mach_mipsisa64r6:
case bfd_mach_mips_sb1:
case bfd_mach_mips_xlr:
@@ -47,10 +47,10 @@ index f78b910..d0d8dd3 100644
arch_flags = M_MIPS2;
break;
diff --git a/bfd/archures.c b/bfd/archures.c
-index 51068b9..727741f 100644
+index 96c9109..5a30d02 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
-@@ -181,6 +181,7 @@ DESCRIPTION
+@@ -197,6 +197,7 @@ DESCRIPTION
.#define bfd_mach_mips_octeon2 6502
.#define bfd_mach_mips_octeon3 6503
.#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *}
@@ -59,10 +59,10 @@ index 51068b9..727741f 100644
.#define bfd_mach_mipsisa32r2 33
.#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
-index 779ffbf..bf5a565 100644
+index 30513c4..5e8ed4c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
-@@ -1993,6 +1993,7 @@ enum bfd_architecture
+@@ -2008,6 +2008,7 @@ enum bfd_architecture
#define bfd_mach_mips_octeon2 6502
#define bfd_mach_mips_octeon3 6503
#define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */
@@ -71,10 +71,10 @@ index 779ffbf..bf5a565 100644
#define bfd_mach_mipsisa32r2 33
#define bfd_mach_mipsisa32r3 34
diff --git a/bfd/config.bfd b/bfd/config.bfd
-index 5c27b49..d553039 100644
+index ab17e72..863be89 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
-@@ -1066,6 +1066,11 @@ case "${targ}" in
+@@ -1084,6 +1084,11 @@ case "${targ}" in
targ_defvec=mips_elf32_le_vec
targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
;;
@@ -83,11 +83,11 @@ index 5c27b49..d553039 100644
+ targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+ want64=true
+ ;;
- mips*-*-elf* | mips*-*-rtems* | mips*-*-vxworks | mips*-*-windiss)
+ mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none)
targ_defvec=mips_elf32_be_vec
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
diff --git a/bfd/cpu-mips.c b/bfd/cpu-mips.c
-index 8a9475d..de7e5a3 100644
+index d209fb6..b6a86ae 100644
--- a/bfd/cpu-mips.c
+++ b/bfd/cpu-mips.c
@@ -104,7 +104,8 @@ enum
@@ -111,10 +111,10 @@ index 8a9475d..de7e5a3 100644
/* The default architecture is mips:3000, but with a machine number of
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
-index 1f2f4a3..700afd3 100644
+index e47276b..71c30a0 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
-@@ -6605,6 +6605,9 @@ _bfd_elf_mips_mach (flagword flags)
+@@ -6646,6 +6646,9 @@ _bfd_elf_mips_mach (flagword flags)
case E_MIPS_MACH_XLR:
return bfd_mach_mips_xlr;
@@ -124,7 +124,7 @@ index 1f2f4a3..700afd3 100644
default:
switch (flags & EF_MIPS_ARCH)
{
-@@ -11901,6 +11904,10 @@ mips_set_isa_flags (bfd *abfd)
+@@ -11949,6 +11952,10 @@ mips_set_isa_flags (bfd *abfd)
val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON2;
break;
@@ -135,7 +135,7 @@ index 1f2f4a3..700afd3 100644
case bfd_mach_mipsisa32:
val = E_MIPS_ARCH_32;
break;
-@@ -13931,6 +13938,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
+@@ -13975,6 +13982,7 @@ static const struct mips_mach_extension mips_mach_extensions[] =
{ bfd_mach_mips_octeonp, bfd_mach_mips_octeon },
{ bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 },
{ bfd_mach_mips_loongson_3a, bfd_mach_mipsisa64r2 },
@@ -144,10 +144,10 @@ index 1f2f4a3..700afd3 100644
/* MIPS64 extensions. */
{ bfd_mach_mipsisa64r2, bfd_mach_mipsisa64 },
diff --git a/binutils/readelf.c b/binutils/readelf.c
-index d5dd46f..66810cc 100644
+index 274ddd1..d31558c 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
-@@ -3140,6 +3140,7 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
+@@ -3230,6 +3230,7 @@ get_machine_flags (unsigned e_flags, unsigned e_machine)
case E_MIPS_MACH_OCTEON2: strcat (buf, ", octeon2"); break;
case E_MIPS_MACH_OCTEON3: strcat (buf, ", octeon3"); break;
case E_MIPS_MACH_XLR: strcat (buf, ", xlr"); break;
@@ -156,7 +156,7 @@ index d5dd46f..66810cc 100644
/* We simply ignore the field in this case to avoid confusion:
MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
-index a2d45a4..75902c0 100644
+index eb8b26b..e59dce6 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -552,6 +552,7 @@ static int mips_32bitmode = 0;
@@ -175,20 +175,20 @@ index a2d45a4..75902c0 100644
)
/* Whether the processor uses hardware interlocks to protect reads
-@@ -18702,7 +18704,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
+@@ -18858,7 +18860,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
/* Broadcom XLP.
XLP is mostly like XLR, with the prominent exception that it is
MIPS64R2 rather than MIPS64. */
- { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLR },
+ { "xlp", 0, 0, ISA_MIPS64R2, CPU_XLP },
- /* i6400. */
+ /* MIPS 64 Release 6 */
{ "i6400", 0, ASE_MSA, ISA_MIPS64R6, CPU_MIPS64R6},
diff --git a/gas/configure b/gas/configure
-index 89f18b3..86b19ae 100755
+index 45da030..aba89f7 100755
--- a/gas/configure
+++ b/gas/configure
-@@ -12851,6 +12851,9 @@ _ACEOF
+@@ -12914,6 +12914,9 @@ _ACEOF
mipsisa64r6 | mipsisa64r6el)
mips_cpu=mips64r6
;;
@@ -199,7 +199,7 @@ index 89f18b3..86b19ae 100755
mips_cpu=r3900
;;
diff --git a/gas/configure.tgt b/gas/configure.tgt
-index 086e0d2..2b71270 100644
+index 1b9fd99..a9f1977 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -339,7 +339,7 @@ case ${generic_target} in
@@ -212,10 +212,10 @@ index 086e0d2..2b71270 100644
mips-*-openbsd*) fmt=elf em=tmips ;;
diff --git a/include/elf/mips.h b/include/elf/mips.h
-index 57de3bc..9ba141d 100644
+index 7e813de..d7d72c1 100644
--- a/include/elf/mips.h
+++ b/include/elf/mips.h
-@@ -285,6 +285,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
+@@ -290,6 +290,7 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
#define E_MIPS_MACH_SB1 0x008a0000
#define E_MIPS_MACH_OCTEON 0x008b0000
#define E_MIPS_MACH_XLR 0x008c0000
@@ -224,10 +224,10 @@ index 57de3bc..9ba141d 100644
#define E_MIPS_MACH_OCTEON3 0x008e0000
#define E_MIPS_MACH_5400 0x00910000
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
-index 9318fcc..9be5645 100644
+index b1d4ef6..f2c8e88 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
-@@ -1228,8 +1228,10 @@ static const unsigned int mips_isa_table[] = {
+@@ -1232,8 +1232,10 @@ static const unsigned int mips_isa_table[] = {
#define INSN_LOONGSON_2F 0x80000000
/* Loongson 3A. */
#define INSN_LOONGSON_3A 0x00000400
@@ -240,7 +240,7 @@ index 9318fcc..9be5645 100644
/* DSP ASE */
#define ASE_DSP 0x00000001
-@@ -1326,6 +1328,7 @@ static const unsigned int mips_isa_table[] = {
+@@ -1331,6 +1333,7 @@ static const unsigned int mips_isa_table[] = {
#define CPU_OCTEON2 6502
#define CPU_OCTEON3 6503
#define CPU_XLR 887682 /* decimal 'XLR' */
@@ -248,7 +248,7 @@ index 9318fcc..9be5645 100644
/* Return true if the given CPU is included in INSN_* mask MASK. */
-@@ -1403,6 +1406,9 @@ cpu_is_member (int cpu, unsigned int mask)
+@@ -1408,6 +1411,9 @@ cpu_is_member (int cpu, unsigned int mask)
return ((mask & INSN_ISA_MASK) == INSN_ISA32R6)
|| ((mask & INSN_ISA_MASK) == INSN_ISA64R6);
@@ -259,10 +259,10 @@ index 9318fcc..9be5645 100644
return FALSE;
}
diff --git a/ld/configure.tgt b/ld/configure.tgt
-index b45b1e5..fb2f36a 100644
+index 212327c..212e09c 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
-@@ -495,6 +495,8 @@ mips*el-sde-elf*) targ_emul=elf32ltsmip
+@@ -499,6 +499,8 @@ mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*)
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
@@ -272,7 +272,7 @@ index b45b1e5..fb2f36a 100644
targ_extra_emuls="elf32lr5900"
targ_extra_libpath=$targ_extra_emuls ;;
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
-index 8200920..40d9fe2 100644
+index 3f874e7..9813d0e 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -648,13 +648,11 @@ const struct mips_arch_choice mips_arch_choices[] =
@@ -295,7 +295,7 @@ index 8200920..40d9fe2 100644
/* This entry, mips16, is here only for ISA/processor selection; do
not print its name. */
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
-index 402f887..3764836 100644
+index a95eff1..99fb7bb 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -320,7 +320,8 @@ decode_mips_operand (const char *p)
@@ -308,7 +308,7 @@ index 402f887..3764836 100644
#define IVIRT ASE_VIRT
#define IVIRT64 ASE_VIRT64
-@@ -957,6 +958,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -958,6 +959,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
{"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
@@ -316,7 +316,7 @@ index 402f887..3764836 100644
/* ctc0 is at the bottom of the table. */
{"ctc1", "t,G", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
{"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
-@@ -989,12 +991,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -990,12 +992,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_1|RD_2, 0, I3, 0, 0 },
{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 },
{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 },
@@ -331,7 +331,7 @@ index 402f887..3764836 100644
/* dctr and dctw are used on the r5000. */
{"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
{"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_2, 0, I3, 0, 0 },
-@@ -1066,6 +1069,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1067,6 +1070,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 },
{"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
{"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
@@ -339,7 +339,7 @@ index 402f887..3764836 100644
{"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
{"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE },
-@@ -1081,6 +1085,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1082,6 +1086,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* dmfc3 is at the bottom of the table. */
/* dmtc3 is at the bottom of the table. */
{"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
@@ -348,7 +348,7 @@ index 402f887..3764836 100644
{"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
{"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 },
{"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, M32|I69 },
-@@ -1234,9 +1240,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1235,9 +1241,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ld", "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1, RD_pc, I69, 0, 0 },
{"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, 0, I1, 0, 0 },
{"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, 0 },
@@ -361,7 +361,7 @@ index 402f887..3764836 100644
{"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF },
{"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
-@@ -1401,7 +1407,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1402,7 +1408,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
{"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 },
{"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 },
@@ -370,7 +370,7 @@ index 402f887..3764836 100644
{"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 },
{"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
{"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
-@@ -1446,10 +1452,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1447,10 +1453,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* move is at the top of the table. */
{"msgn.qh", "X,Y,Q", 0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
{"msgsnd", "t", 0, (int) M_MSGSND, INSN_MACRO, 0, XLR, 0, 0 },
@@ -386,7 +386,7 @@ index 402f887..3764836 100644
{"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I4_33, 0, I37 },
{"msub.d", "D,S,T", 0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
{"msub.d", "D,S,T", 0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
-@@ -1499,7 +1508,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1500,7 +1509,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 },
{"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 },
{"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
@@ -395,7 +395,7 @@ index 402f887..3764836 100644
{"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
{"mtm0", "s,t", 0x70000008, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
{"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
-@@ -1936,9 +1945,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
+@@ -1937,9 +1946,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"suxc1", "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I5_33|N55, 0, I37},
{"sw", "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, 0 },
{"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, 0, I1, 0, 0 },
@@ -409,5 +409,5 @@ index 402f887..3764836 100644
{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, 0, I1, 0, IOCT|IOCTP|IOCT2|I37 },
{"swc1", "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S, 0, I1, 0, 0 },
--
-2.7.1
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch
deleted file mode 100644
index 24af1207c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-Fix-GOT-address-computations-in-initial-PLT-entries-.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 9619a608528383a44ccc1637ae939b5f3e97adc5 Mon Sep 17 00:00:00 2001
-From: Sandra Loosemore <sandra@codesourcery.com>
-Date: Wed, 9 Dec 2015 16:13:58 -0800
-Subject: [PATCH 13/14] Fix GOT address computations in initial PLT entries for
- nios2.
-
-2015-12-09 Sandra Loosemore <sandra@codesourcery.com>
-
- bfd/
- * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Correct
- %hiadj/%lo computations for _GLOBAL_OFFSET_TABLE_ in initial
- PLT entries. Assert alignment requirements.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Backport
----
- bfd/elf32-nios2.c | 23 ++++++++++++++++-------
- 1 file changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
-index 6b29d8b..1c54320 100644
---- a/bfd/elf32-nios2.c
-+++ b/bfd/elf32-nios2.c
-@@ -5383,12 +5383,17 @@ nios2_elf32_finish_dynamic_sections (bfd *output_bfd,
- + sgotplt->output_offset);
- if (bfd_link_pic (info))
- {
-- bfd_vma corrected = got_address - (splt->output_section->vma
-- + splt->output_offset + 4);
-+ bfd_vma got_pcrel = got_address - (splt->output_section->vma
-+ + splt->output_offset);
-+ /* Both GOT and PLT must be aligned to a 16-byte boundary
-+ for the two loads to share the %hiadj part. The 4-byte
-+ offset for nextpc is accounted for in the %lo offsets
-+ on the loads. */
-+ BFD_ASSERT ((got_pcrel & 0xf) == 0);
- nios2_elf32_install_data (splt, nios2_so_plt0_entry, 0, 6);
-- nios2_elf32_install_imm16 (splt, 4, hiadj (corrected));
-- nios2_elf32_install_imm16 (splt, 12, (corrected & 0xffff) + 4);
-- nios2_elf32_install_imm16 (splt, 16, (corrected & 0xffff) + 8);
-+ nios2_elf32_install_imm16 (splt, 4, hiadj (got_pcrel));
-+ nios2_elf32_install_imm16 (splt, 12, got_pcrel & 0xffff);
-+ nios2_elf32_install_imm16 (splt, 16, (got_pcrel + 4) & 0xffff);
- }
- else
- {
-@@ -5404,6 +5409,10 @@ nios2_elf32_finish_dynamic_sections (bfd *output_bfd,
- 6 | ((res_size - (res_offset + 4)) << 6),
- splt->contents + res_offset);
-
-+ /* The GOT must be aligned to a 16-byte boundary for the
-+ two loads to share the same %hiadj part. */
-+ BFD_ASSERT ((got_address & 0xf) == 0);
-+
- nios2_elf32_install_data (splt, nios2_plt0_entry, res_size, 7);
- nios2_elf32_install_imm16 (splt, res_size, hiadj (res_start));
- nios2_elf32_install_imm16 (splt, res_size + 4,
-@@ -5411,9 +5420,9 @@ nios2_elf32_finish_dynamic_sections (bfd *output_bfd,
- nios2_elf32_install_imm16 (splt, res_size + 12,
- hiadj (got_address));
- nios2_elf32_install_imm16 (splt, res_size + 16,
-- (got_address & 0xffff) + 4);
-+ (got_address + 4) & 0xffff);
- nios2_elf32_install_imm16 (splt, res_size + 20,
-- (got_address & 0xffff) + 8);
-+ (got_address + 8) & 0xffff);
- }
- }
- }
---
-2.7.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
new file mode 100644
index 000000000..f314d6420
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0013-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
@@ -0,0 +1,36 @@
+From 0c04c3b626998c8e7b595381b35456428581f52a Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@nxp.com>
+Date: Sat, 11 Jun 2016 22:08:29 -0500
+Subject: [PATCH 13/13] fix the incorrect assembling for ppc wait mnemonic
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com>
+
+Upstream-Status: Pending
+---
+ opcodes/ppc-opc.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
+index 8106ab7..ca4b0f3 100644
+--- a/opcodes/ppc-opc.c
++++ b/opcodes/ppc-opc.c
+@@ -4811,7 +4811,6 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+ {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
+
+ {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
+-{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
+
+ {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
+
+@@ -4865,7 +4864,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
+
+ {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
+ {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
+-{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
++{"wait", X(31,62), XWC_MASK, E500MC|PPCA2|POWER9, 0, {WC}},
+
+ {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
+
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-Correct-nios2-_gp-address-computation.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-Correct-nios2-_gp-address-computation.patch
deleted file mode 100644
index 86eeded6e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-Correct-nios2-_gp-address-computation.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 27f155fd0ab4ba954366643dbfdc3c7104933794 Mon Sep 17 00:00:00 2001
-From: Sandra Loosemore <sandra@codesourcery.com>
-Date: Sun, 27 Dec 2015 12:30:26 -0800
-Subject: [PATCH 14/14] Correct nios2 _gp address computation.
-
-2015-12-27 Sandra Loosemore <sandra@codesourcery.com>
-
- bfd/
- * elf32-nios2.c (nios2_elf_assign_gp): Correct computation of _gp
- address.
- (nios2_elf32_relocate_section): Tidy code for R_NIOS2_GPREL error
- messages.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Backport
----
- bfd/elf32-nios2.c | 31 +++++++++++++++++++++----------
- 1 file changed, 21 insertions(+), 10 deletions(-)
-
-diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c
-index 1c54320..babecf3 100644
---- a/bfd/elf32-nios2.c
-+++ b/bfd/elf32-nios2.c
-@@ -3086,7 +3086,15 @@ lookup:
- case bfd_link_hash_defined:
- case bfd_link_hash_defweak:
- gp_found = TRUE;
-- *pgp = lh->u.def.value;
-+ {
-+ asection *sym_sec = lh->u.def.section;
-+ bfd_vma sym_value = lh->u.def.value;
-+
-+ if (sym_sec->output_section)
-+ sym_value = (sym_value + sym_sec->output_offset
-+ + sym_sec->output_section->vma);
-+ *pgp = sym_value;
-+ }
- break;
- case bfd_link_hash_indirect:
- case bfd_link_hash_warning:
-@@ -3719,7 +3727,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- struct elf32_nios2_link_hash_entry *eh;
- bfd_vma relocation;
- bfd_vma gp;
-- bfd_vma reloc_address;
- bfd_reloc_status_type r = bfd_reloc_ok;
- const char *name = NULL;
- int r_type;
-@@ -3762,12 +3769,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- if (bfd_link_relocatable (info))
- continue;
-
-- if (sec && sec->output_section)
-- reloc_address = (sec->output_section->vma + sec->output_offset
-- + rel->r_offset);
-- else
-- reloc_address = 0;
--
- if (howto)
- {
- switch (howto->type)
-@@ -3816,6 +3817,15 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- /* Turns an absolute address into a gp-relative address. */
- if (!nios2_elf_assign_gp (output_bfd, &gp, info))
- {
-+ bfd_vma reloc_address;
-+
-+ if (sec && sec->output_section)
-+ reloc_address = (sec->output_section->vma
-+ + sec->output_offset
-+ + rel->r_offset);
-+ else
-+ reloc_address = 0;
-+
- format = _("global pointer relative relocation at address "
- "0x%08x when _gp not defined\n");
- sprintf (msgbuf, format, reloc_address);
-@@ -3825,7 +3835,7 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- else
- {
- bfd_vma symbol_address = rel->r_addend + relocation;
-- relocation = relocation + rel->r_addend - gp;
-+ relocation = symbol_address - gp;
- rel->r_addend = 0;
- if (((signed) relocation < -32768
- || (signed) relocation > 32767)
-@@ -3833,6 +3843,8 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- || h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak))
- {
-+ if (h)
-+ name = h->root.root.string;
- format = _("Unable to reach %s (at 0x%08x) from the "
- "global pointer (at 0x%08x) because the "
- "offset (%d) is out of the allowed range, "
-@@ -3848,7 +3860,6 @@ nios2_elf32_relocate_section (bfd *output_bfd,
- rel->r_offset, relocation,
- rel->r_addend);
- }
--
- break;
- case R_NIOS2_UJMP:
- r = nios2_elf32_do_ujmp_relocate (input_bfd, howto,
---
-2.7.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch
new file mode 100644
index 000000000..d56948f15
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0014-libtool-remove-rpath.patch
@@ -0,0 +1,100 @@
+Apply these patches from our libtool patches as not only are redundant RPATHs a
+waste of space but they can cause incorrect linking when native packages are
+restored from sstate.
+
+fix-rpath.patch:
+We don't want to add RPATHS which match default linker
+search paths, they're a waste of space. This patch
+filters libtools list and removes the ones we don't need.
+
+norm-rpath.patch:
+Libtool may be passed link paths of the form "/usr/lib/../lib", which
+fool its detection code into thinking it should be included as an
+RPATH in the generated binary. Normalize before comparision.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 683317c..860a16a 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -8053,8 +8053,14 @@ EOF
+ esac
+ fi
+ else
+- eval flag=\"$hardcode_libdir_flag_spec\"
+- func_append dep_rpath " $flag"
++ # We only want to hardcode in an rpath if it isn't in the
++ # default dlsearch path.
++ case " $sys_lib_dlsearch_path " in
++ *" $libdir "*) ;;
++ *) eval flag=\"$hardcode_libdir_flag_spec\"
++ func_append dep_rpath " $flag"
++ ;;
++ esac
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+@@ -8790,8 +8796,14 @@ EOF
+ esac
+ fi
+ else
+- eval flag=\"$hardcode_libdir_flag_spec\"
+- func_append rpath " $flag"
++ # We only want to hardcode in an rpath if it isn't in the
++ # default dlsearch path.
++ case " $sys_lib_dlsearch_path " in
++ *" $libdir "*) ;;
++ *) eval flag=\"$hardcode_libdir_flag_spec\"
++ rpath+=" $flag"
++ ;;
++ esac
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+@@ -8841,8 +8853,14 @@ EOF
+ esac
+ fi
+ else
+- eval flag=\"$hardcode_libdir_flag_spec\"
+- func_append rpath " $flag"
++ # We only want to hardcode in an rpath if it isn't in the
++ # default dlsearch path.
++ case " $sys_lib_dlsearch_path " in
++ *" $libdir "*) ;;
++ *) eval flag=\"$hardcode_libdir_flag_spec\"
++ func_append rpath " $flag"
++ ;;
++ esac
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+diff --git a/ltmain.sh b/ltmain.sh
+index 683317c..860a16a 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -8055,8 +8055,10 @@ EOF
+ else
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
++ func_normal_abspath "$libdir"
++ libdir_norm=$func_normal_abspath_result
+ case " $sys_lib_dlsearch_path " in
+- *" $libdir "*) ;;
++ *" $libdir_norm "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ ;;
+@@ -8798,8 +8800,10 @@ EOF
+ else
+ # We only want to hardcode in an rpath if it isn't in the
+ # default dlsearch path.
++ func_normal_abspath "$libdir"
++ libdir_norm=$func_normal_abspath_result
+ case " $sys_lib_dlsearch_path " in
+- *" $libdir "*) ;;
++ *" $libdir_norm "*) ;;
+ *) eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath+=" $flag"
+ ;;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch
new file mode 100644
index 000000000..f3e3a11b1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-Refine-.cfi_sections-check-to-only-consider-compact-.patch
@@ -0,0 +1,97 @@
+From 3d3424e9a8d6ad56160b98bf6e223c0346164468 Mon Sep 17 00:00:00 2001
+From: Matthew Fortune <matthew.fortune@imgtec.com>
+Date: Thu, 29 Sep 2016 11:13:46 +0100
+Subject: [PATCH] Refine .cfi_sections check to only consider compact eh_frame
+
+The .cfi_sections directive can be safely used multiple times
+with different sections named at any time unless the compact form
+of exception handling is requested after CFI information has
+been emitted. Only the compact form of CFI information changes
+the way in which CFI is generated and therefore cannot be
+retrospectively requested after generating CFI information.
+
+gas/
+
+ PR gas/20648
+ * dw2gencfi.c (dot_cfi_sections): Refine the check for
+ inconsistent .cfi_sections to only consider compact vs non
+ compact forms.
+ * testsuite/gas/cfi/cfi-common-9.d: New file.
+ * testsuite/gas/cfi/cfi-common-9.s: New file.
+ * testsuite/gas/cfi/cfi.exp: Run new test.
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com
+
+ gas/ChangeLog | 10 ++++++++++
+ gas/dw2gencfi.c | 5 ++++-
+ gas/testsuite/gas/cfi/cfi-common-9.d | 23 +++++++++++++++++++++++
+ gas/testsuite/gas/cfi/cfi-common-9.s | 4 ++++
+ gas/testsuite/gas/cfi/cfi.exp | 1 +
+ 5 files changed, 42 insertions(+), 1 deletion(-)
+ create mode 100644 gas/testsuite/gas/cfi/cfi-common-9.d
+ create mode 100644 gas/testsuite/gas/cfi/cfi-common-9.s
+
+Index: git/gas/dw2gencfi.c
+===================================================================
+--- git.orig/gas/dw2gencfi.c
++++ git/gas/dw2gencfi.c
+@@ -1244,7 +1244,10 @@ dot_cfi_sections (int ignored ATTRIBUTE_
+ }
+
+ demand_empty_rest_of_line ();
+- if (cfi_sections_set && cfi_sections != sections)
++ if (cfi_sections_set
++ && (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
++ && (cfi_sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))
++ != (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)))
+ as_bad (_("inconsistent uses of .cfi_sections"));
+ cfi_sections = sections;
+ }
+Index: git/gas/testsuite/gas/cfi/cfi-common-9.d
+===================================================================
+--- /dev/null
++++ git/gas/testsuite/gas/cfi/cfi-common-9.d
+@@ -0,0 +1,23 @@
++#objdump: -Wf
++#name: CFI common 9
++#...
++Contents of the .eh_frame section:
++
++00000000 0+0010 0+0000 CIE
++ Version: 1
++ Augmentation: "zR"
++ Code alignment factor: .*
++ Data alignment factor: .*
++ Return address column: .*
++ Augmentation data: [01]b
++
++ DW_CFA_nop
++ DW_CFA_nop
++ DW_CFA_nop
++
++00000014 0+00(10|18|1c|20) 0+0018 FDE cie=0+0000 pc=.*
++
++ DW_CFA_nop
++ DW_CFA_nop
++ DW_CFA_nop
++#...
+Index: git/gas/testsuite/gas/cfi/cfi-common-9.s
+===================================================================
+--- /dev/null
++++ git/gas/testsuite/gas/cfi/cfi-common-9.s
+@@ -0,0 +1,4 @@
++ .cfi_sections .eh_frame
++ .cfi_startproc simple
++ .cfi_sections .debug_frame
++ .cfi_endproc
+Index: git/gas/testsuite/gas/cfi/cfi.exp
+===================================================================
+--- git.orig/gas/testsuite/gas/cfi/cfi.exp
++++ git/gas/testsuite/gas/cfi/cfi.exp
+@@ -135,4 +135,5 @@ if { ![istarget "hppa64*-*"] } then {
+ run_dump_test "cfi-common-6"
+ }
+ run_dump_test "cfi-common-7"
++ run_dump_test "cfi-common-9"
+ }
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-binutils-mips-gas-pic-relax-linkonce.diff b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-binutils-mips-gas-pic-relax-linkonce.diff
new file mode 100644
index 000000000..78b971a99
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils/0015-binutils-mips-gas-pic-relax-linkonce.diff
@@ -0,0 +1,65 @@
+Patch taken from Binutils Bugzilla:
+
+ https://sourceware.org/bugzilla/show_bug.cgi?id=20649
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
+Index: binutils/gas/config/tc-mips.c
+===================================================================
+--- binutils.orig/gas/config/tc-mips.c 2016-09-29 05:12:31.000000000 +0100
++++ binutils/gas/config/tc-mips.c 2016-09-29 20:05:13.257411084 +0100
+@@ -1353,7 +1353,7 @@ static void s_mips_stab (int);
+ static void s_mips_weakext (int);
+ static void s_mips_file (int);
+ static void s_mips_loc (int);
+-static bfd_boolean pic_need_relax (symbolS *, asection *);
++static bfd_boolean pic_need_relax (symbolS *);
+ static int relaxed_branch_length (fragS *, asection *, int);
+ static int relaxed_micromips_16bit_branch_length (fragS *, asection *, int);
+ static int relaxed_micromips_32bit_branch_length (fragS *, asection *, int);
+@@ -4258,6 +4258,8 @@ mips_move_text_labels (void)
+ mips_move_labels (seg_info (now_seg)->label_list, TRUE);
+ }
+
++/* Duplicate the test for LINK_ONCE sections as in `adjust_reloc_syms'. */
++
+ static bfd_boolean
+ s_is_linkonce (symbolS *sym, segT from_seg)
+ {
+@@ -14823,7 +14825,7 @@ mips_frob_file (void)
+ constants; we'll report an error for those later. */
+ if (got16_reloc_p (l->fixp->fx_r_type)
+ && !(l->fixp->fx_addsy
+- && pic_need_relax (l->fixp->fx_addsy, l->seg)))
++ && pic_need_relax (l->fixp->fx_addsy)))
+ continue;
+
+ /* Check quickly whether the next fixup happens to be a matching %lo. */
+@@ -17043,7 +17045,7 @@ nopic_need_relax (symbolS *sym, int befo
+ /* Return true if the given symbol should be considered local for SVR4 PIC. */
+
+ static bfd_boolean
+-pic_need_relax (symbolS *sym, asection *segtype)
++pic_need_relax (symbolS *sym)
+ {
+ asection *symsec;
+
+@@ -17068,7 +17070,6 @@ pic_need_relax (symbolS *sym, asection *
+ return (!bfd_is_und_section (symsec)
+ && !bfd_is_abs_section (symsec)
+ && !bfd_is_com_section (symsec)
+- && !s_is_linkonce (sym, segtype)
+ /* A global or weak symbol is treated as external. */
+ && (!S_IS_WEAK (sym) && !S_IS_EXTERNAL (sym)));
+ }
+@@ -17507,7 +17508,7 @@ md_estimate_size_before_relax (fragS *fr
+ if (mips_pic == NO_PIC)
+ change = nopic_need_relax (fragp->fr_symbol, 0);
+ else if (mips_pic == SVR4_PIC)
+- change = pic_need_relax (fragp->fr_symbol, segtype);
++ change = pic_need_relax (fragp->fr_symbol);
+ else if (mips_pic == VXWORKS_PIC)
+ /* For vxworks, GOT16 relocations never have a corresponding LO16. */
+ change = 0;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.26.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.26.bb
deleted file mode 100644
index b70ffbf28..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.26.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-require binutils.inc
-require binutils-${PV}.inc
-
-DEPENDS += "flex bison zlib"
-
-EXTRA_OECONF += "--with-sysroot=/ \
- --enable-install-libbfd \
- --enable-install-libiberty \
- --enable-shared \
- --with-system-zlib \
- "
-
-EXTRA_OECONF_class-native = "--enable-targets=all \
- --enable-64-bit-bfd \
- --enable-install-libiberty \
- --enable-install-libbfd"
-
-do_install_class-native () {
- autotools_do_install
-
- # Install the libiberty header
- install -d ${D}${includedir}
- install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
- install -m 644 ${S}/include/libiberty.h ${D}${includedir}
-
- # We only want libiberty, libbfd and libopcodes
- rm -rf ${D}${bindir}
- rm -rf ${D}${prefix}/${TARGET_SYS}
- rm -rf ${D}${prefix}/lib/ldscripts
- rm -rf ${D}${prefix}/share/info
- rm -rf ${D}${prefix}/share/locale
- rm -rf ${D}${prefix}/share/man
- rmdir ${D}${prefix}/share || :
- rmdir ${D}/${libdir}/gcc-lib || :
- rmdir ${D}/${libdir}64/gcc-lib || :
- rmdir ${D}/${libdir} || :
- rmdir ${D}/${libdir}64 || :
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.27.bb b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.27.bb
new file mode 100644
index 000000000..b51437bbc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/binutils/binutils_2.27.bb
@@ -0,0 +1,45 @@
+require binutils.inc
+require binutils-${PV}.inc
+
+DEPENDS += "flex bison zlib"
+
+EXTRA_OECONF += "--with-sysroot=/ \
+ --enable-install-libbfd \
+ --enable-install-libiberty \
+ --enable-shared \
+ --with-system-zlib \
+ "
+
+EXTRA_OEMAKE_append_libc-musl = "\
+ gt_cv_func_gnugettext1_libc=yes \
+ gt_cv_func_gnugettext2_libc=yes \
+ "
+EXTRA_OECONF_class-native = "--enable-targets=all \
+ --enable-64-bit-bfd \
+ --enable-install-libiberty \
+ --enable-install-libbfd \
+ --disable-werror"
+
+do_install_class-native () {
+ autotools_do_install
+
+ # Install the libiberty header
+ install -d ${D}${includedir}
+ install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
+ install -m 644 ${S}/include/libiberty.h ${D}${includedir}
+
+ # We only want libiberty, libbfd and libopcodes
+ rm -rf ${D}${bindir}
+ rm -rf ${D}${prefix}/${TARGET_SYS}
+ rm -rf ${D}${prefix}/lib/ldscripts
+ rm -rf ${D}${prefix}/share/info
+ rm -rf ${D}${prefix}/share/locale
+ rm -rf ${D}${prefix}/share/man
+ rmdir ${D}${prefix}/share || :
+ rmdir ${D}/${libdir}/gcc-lib || :
+ rmdir ${D}/${libdir}64/gcc-lib || :
+ rmdir ${D}/${libdir} || :
+ rmdir ${D}/${libdir}64 || :
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-Fixed-Missing-default-value-for-BOOTLOG_DEST.patch b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-Fixed-Missing-default-value-for-BOOTLOG_DEST.patch
new file mode 100644
index 000000000..118814a80
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-Fixed-Missing-default-value-for-BOOTLOG_DEST.patch
@@ -0,0 +1,30 @@
+From 2225ab2038bfe50f16f972e39d89bcd0bd7767f5 Mon Sep 17 00:00:00 2001
+From: Steffen Pankratz <kratz00@gmx.de>
+Date: Tue, 9 Feb 2016 13:49:42 +0100
+Subject: [PATCH] Fixed: Missing default value for BOOTLOG_DEST
+
+Upstream-Status: Backport
+
+BUILDLOG_DEST seems to be a typo or mix-up which was introduced with 281d1df80884bf2969c509ec60ee8a6593524fe8
+
+Signed-off-by: Peter Liu <peter.x.liu@external.atlascopco.com>
+---
+ bootchartd.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bootchartd.in b/bootchartd.in
+index f58ab9e..30af677 100755
+--- a/bootchartd.in
++++ b/bootchartd.in
+@@ -37,7 +37,7 @@ PATH="/sbin:/bin:/usr/sbin:/usr/bin:$PATH"
+
+ # Defaults, in case we can't find our configuration
+ SAMPLE_HZ=50
+-BUILDLOG_DEST=/var/log/bootchart.tgz
++BOOTLOG_DEST=/var/log/bootchart.tgz
+ AUTO_RENDER="no"
+ AUTO_RENDER_DIR="/var/log"
+ AUTO_RENDER_FORMAT="png"
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-collector-Allocate-space-on-heap-for-chunks.patch b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-collector-Allocate-space-on-heap-for-chunks.patch
new file mode 100644
index 000000000..7a8813e96
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2/0001-collector-Allocate-space-on-heap-for-chunks.patch
@@ -0,0 +1,45 @@
+From 09505532b49573663fb4ff4dad424dc2ef4c1f84 Mon Sep 17 00:00:00 2001
+From: Kyle Russell <bkylerussell@gmail.com>
+Date: Wed, 13 Jul 2016 17:30:00 -0400
+Subject: [PATCH] collector: Allocate space on heap for chunks
+
+Nicer for embedded devices which may have smaller stack limitations.
+
+Upstream-Status: Submitted [https://github.com/xrmx/bootchart/pull/74]
+
+Signed-off-by: Kyle Russell <bkylerussell@gmail.com>
+---
+ collector/dump.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/collector/dump.c b/collector/dump.c
+index e673b5b..2f094b4 100644
+--- a/collector/dump.c
++++ b/collector/dump.c
+@@ -184,12 +184,12 @@ static void dump_buffers (DumpState *s)
+ log ("reading %d chunks (of %d) ...\n", max_chunk, s->map.max_chunk);
+ for (i = 0; i < max_chunk; i++) {
+ FILE *output;
+- char buffer[CHUNK_SIZE];
+- Chunk *c = (Chunk *)&buffer;
++ char *buffer = malloc(CHUNK_SIZE);
++ Chunk *c = (Chunk *)buffer;
+ size_t addr = (size_t) s->map.chunks[i];
+
+ lseek (s->mem, addr, SEEK_SET);
+- read (s->mem, &buffer, CHUNK_SIZE);
++ read (s->mem, buffer, CHUNK_SIZE);
+ /* log ("type: '%s' len %d\n",
+ c->dest_stream, (int)c->length); */
+
+@@ -197,6 +197,7 @@ static void dump_buffers (DumpState *s)
+ fwrite (c->data, 1, c->length, output);
+ bytes_dumped += c->length;
+ fclose (output);
++ free(buffer);
+ }
+ log ("wrote %ld kb\n", (long)(bytes_dumped+1023)/1024);
+ }
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb
index 86c614a63..4f01734bb 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.8.bb
@@ -92,14 +92,18 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
SRC_URI = "git://github.com/mmeeks/bootchart.git \
file://bootchartd_stop.sh \
+ file://0001-Fixed-Missing-default-value-for-BOOTLOG_DEST.patch \
+ file://0001-collector-Allocate-space-on-heap-for-chunks.patch \
"
S = "${WORKDIR}/git"
SRCREV = "48e0071048564c6af75ab969e842d6dec808da09"
-inherit systemd
-inherit update-rc.d
-inherit pythonnative
+inherit systemd update-rc.d python3native update-alternatives
+
+ALTERNATIVE_${PN} = "bootchartd"
+ALTERNATIVE_LINK_NAME[bootchartd] = "${base_sbindir}/bootchartd"
+ALTERNATIVE_PRIORITY = "100"
# The only reason to build bootchart2-native is for a native pybootchartgui.
BBCLASSEXTEND = "native"
@@ -110,13 +114,6 @@ UPDATERCPN = "bootchartd-stop-initscript"
INITSCRIPT_NAME = "bootchartd_stop.sh"
INITSCRIPT_PARAMS = "start 99 2 3 4 5 ."
-# We want native pybootchartgui to execute with the correct Python interpeter.
-do_compile_append_class-native () {
- echo "#! ${PYTHON}" | cat - ${S}/pybootchartgui.py > ${WORKDIR}/temp_pybootchartgui
- mv ${WORKDIR}/temp_pybootchartgui ${S}/pybootchartgui.py
- chmod +x ${S}/pybootchartgui
-}
-
do_compile_prepend () {
export PY_LIBDIR="${libdir}/${PYTHON_DIR}"
export BINDIR="${bindir}"
@@ -135,17 +132,21 @@ do_install () {
install -m 0755 ${WORKDIR}/bootchartd_stop.sh ${D}${sysconfdir}/init.d
echo 'EXIT_PROC="$EXIT_PROC matchbox-window-manager"' >> ${D}${sysconfdir}/bootchartd.conf
+
+ # Use python 3 instead of python 2
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/pybootchartgui
}
PACKAGES =+ "pybootchartgui"
-FILES_pybootchartgui += "${libdir}/python*/site-packages/pybootchartgui ${bindir}/pybootchartgui"
-RDEPENDS_pybootchartgui = "python-pycairo python-compression python-image python-textutils python-shell python-compression python-codecs"
+FILES_pybootchartgui += "${PYTHON_SITEPACKAGES_DIR}/pybootchartgui ${bindir}/pybootchartgui"
+RDEPENDS_pybootchartgui = "python3-pycairo python3-compression python3-image python3-textutils python3-shell python3-compression python3-codecs"
RDEPENDS_${PN}_class-target += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
RDEPENDS_${PN}_class-target += "lsb"
-DEPENDS_append_class-native = " python-pycairo-native"
+DEPENDS_append_class-native = " python3-pycairo-native"
PACKAGES =+ "bootchartd-stop-initscript"
FILES_bootchartd-stop-initscript += "${sysconfdir}/init.d ${sysconfdir}/rc*.d"
+RDEPENDS_bootchartd-stop-initscript = "${PN}"
FILES_${PN} += "${base_libdir}/bootchart/bootchart-collector"
FILES_${PN} += "${base_libdir}/bootchart/tmpfs"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/fix-symlink-creation-multiple-times.patch b/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/fix-symlink-creation-multiple-times.patch
deleted file mode 100644
index a94549639..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/fix-symlink-creation-multiple-times.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 05ab78e9183575e38f342e05a056cb7bcd1e52e1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 18 Feb 2016 20:41:28 -0500
-Subject: [PATCH] btrfs-progs: fix symlink creation multiple times
-
-The rule to create symlink in Makefile caused parallel issue:
-$ make -j 40 DESTDIR=/image install BUILD_VERBOSE=1
-...
- 1 [LN] libbtrfs.so.0
- 2 [LN] libbtrfs.so
- 3 ln -s -f libbtrfs.so.0.1 libbtrfs.so.0
- 4 ln -s -f libbtrfs.so.0.1 libbtrfs.so.0
- 5 ln -s -f libbtrfs.so.0.1 libbtrfs.so
- 6 ln -s -f libbtrfs.so.0.1 libbtrfs.so
-...
-
-It failed occasionally:
-...
-|symlinkat: couldn't stat 'git/libbtrfs.so' even though symlink
-creation succeeded (No such file or directory).
-|ln: failed to create symbolic link 'libbtrfs.so': No such file or directory
-...
-
-Upstream-Status: Submitted [linux-btrfs@vger.kernel.org]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.in | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 1f4002e..16eeaf9 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -236,8 +236,7 @@ $(libs_static): $(libbtrfs_objects)
-
- $(lib_links):
- @echo " [LN] $@"
-- $(Q)$(LN_S) -f libbtrfs.so.0.1 libbtrfs.so.0
-- $(Q)$(LN_S) -f libbtrfs.so.0.1 libbtrfs.so
-+ $(Q)$(LN_S) -f libbtrfs.so.0.1 $@
-
- # keep intermediate files from the below implicit rules around
- .PRECIOUS: $(addsuffix .o,$(progs))
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.4.bb
deleted file mode 100644
index 32e7bae58..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.4.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Checksumming Copy on Write Filesystem utilities"
-DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \
-implementing advanced features while focusing on fault tolerance, repair and \
-easy administration. \
-This package contains utilities (mkfs, fsck, btrfsctl) used to work with \
-btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3."
-
-HOMEPAGE = "https://btrfs.wiki.kernel.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
-SECTION = "base"
-DEPENDS = "util-linux attr e2fsprogs lzo acl"
-RDEPENDS_${PN} = "libgcc"
-
-SRCREV = "21258fab2caeade405a15ba932d373b364aa6e8c"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
- file://fix-parallel.patch \
- file://fix-symlink-creation-multiple-times.patch \
-"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_OECONF += "--disable-documentation"
-EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
-
-
-do_configure_prepend() {
- sh autogen.sh
-}
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.7.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.7.1.bb
new file mode 100644
index 000000000..becf09396
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_4.7.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Checksumming Copy on Write Filesystem utilities"
+DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \
+implementing advanced features while focusing on fault tolerance, repair and \
+easy administration. \
+This package contains utilities (mkfs, fsck, btrfsctl) used to work with \
+btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3."
+
+HOMEPAGE = "https://btrfs.wiki.kernel.org"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
+SECTION = "base"
+DEPENDS = "util-linux attr e2fsprogs lzo acl"
+RDEPENDS_${PN} = "libgcc"
+
+SRCREV = "6819fbcdcab63c2d95da1a2997e37be9a71ca533"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
+ file://fix-parallel.patch \
+"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OECONF += "--disable-documentation"
+EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
+
+
+do_configure_prepend() {
+ sh autogen.sh
+}
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/build-compare_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/build-compare_git.bb
index 676f11dd8..fa9c6b45d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/build-compare_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/build-compare_git.bb
@@ -9,6 +9,12 @@ SRC_URI = "git://github.com/openSUSE/build-compare.git \
file://Rename-rpm-check.sh-to-pkg-diff.sh.patch;striplevel=1 \
file://Ignore-DWARF-sections.patch;striplevel=1 \
file://0001-Add-support-for-deb-and-ipk-packaging.patch \
+ file://functions.sh-remove-space-at-head.patch \
+ file://functions.sh-run-rpm-once-to-make-it-faster.patch \
+ file://pkg-diff.sh-check-for-fifo-named-pipe.patch \
+ file://pkg-diff.sh-check_single_file-return-at-once-when-sa.patch \
+ file://pkg-diff.sh-remove-space-in-the-end-for-ftype.patch \
+ file://functions.sh-improve-deb-and-ipk-checking.patch \
"
SRCREV = "c5352c054c6ef15735da31b76d6d88620f4aff0a"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch
index 5c15218c8..82fd8169f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/0001-Add-support-for-deb-and-ipk-packaging.patch
@@ -3,7 +3,7 @@ From: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Tue, 1 Sep 2015 12:04:33 +0100
Subject: [PATCH] Add support for deb and ipk packaging
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
@@ -34,7 +34,7 @@ index 06079df..85c9003 100644
return $RES
}
+
-+function adjust_controlfile () {
++function adjust_controlfile() {
+ cat $1/control | sed '/^Version: /d' > $1/control.fixed
+ mv $1/control.fixed $1/control
+ cat $2/control | sed '/^Version: /d' > $2/control.fixed
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch
new file mode 100644
index 000000000..05420f89f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-improve-deb-and-ipk-checking.patch
@@ -0,0 +1,117 @@
+From b4eb7fde10318162bd2d02b9017ef51746752a91 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Jul 2016 23:14:21 -0700
+Subject: [PATCH 4/4] functions.sh: improve deb and ipk checking
+
+* The deb and ipk's depends version string is like:
+ Depends: libc6 (>= 2.24)
+ Update trim_release_old and trim_release_new to match the bracket in
+ the end ")".
+
+* The deb's data tarball now is .tar.xz, and ipk's is .tar.gz.
+
+* Update adjust_controlfile() to make ituse trim_release_old and
+ trim_release_new.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ functions.sh | 45 ++++++++++++++++++++++++++++-----------------
+ 1 file changed, 28 insertions(+), 17 deletions(-)
+
+diff --git a/functions.sh b/functions.sh
+index aa572f9..fe493ba 100755
+--- a/functions.sh
++++ b/functions.sh
+@@ -78,7 +78,7 @@ check_header()
+ function trim_release_old()
+ {
+ sed -e "
+- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
++ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\|$version_release_old_regex_l)\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
+ s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
+ s/^ *//g
+ "
+@@ -86,7 +86,7 @@ function trim_release_old()
+ function trim_release_new()
+ {
+ sed -e "
+- /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
++ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\|$version_release_new_regex_l)\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
+ s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
+ s/^ *//g
+ "
+@@ -133,8 +133,8 @@ function unpackage()
+ ar x $file
+ tar xf control.tar.gz
+ rm control.tar.gz
+- tar xf data.tar.gz
+- rm data.tar.gz
++ tar xf data.tar.[xg]z
++ rm data.tar.[xg]z
+ ;;
+ esac
+ popd 1>/dev/null
+@@ -164,6 +164,22 @@ function get_value()
+ sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d"
+ }
+
++# Set version_release_old_regex_s, version_release_old_regex_l and
++# name_ver_rel_old_regex_l, also the new ones.
++function set_regex() {
++ # Remember to quote the . which is in release
++ # Short version without B_CN
++ version_release_old_regex_s=${version_release_old%.*}
++ version_release_old_regex_s=${version_release_old_regex_s//./\\.}
++ version_release_new_regex_s=${version_release_new%.*}
++ version_release_new_regex_s=${version_release_new_regex_s//./\\.}
++ # Long version with B_CNT
++ version_release_old_regex_l=${version_release_old//./\\.}
++ version_release_new_regex_l=${version_release_new//./\\.}
++ name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
++ name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
++}
++
+ # Compare just the rpm meta data of two rpms
+ # Returns:
+ # 0 in case of same content
+@@ -194,17 +210,7 @@ function cmp_spec ()
+ version_release_old="$(get_value QF_VER_REL $spec_old)"
+ name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)"
+
+- # Remember to quote the . which is in release
+- # Short version without B_CN
+- version_release_old_regex_s=${version_release_old%.*}
+- version_release_old_regex_s=${version_release_old_regex_s//./\\.}
+- version_release_new_regex_s=${version_release_new%.*}
+- version_release_new_regex_s=${version_release_new_regex_s//./\\.}
+- # Long version with B_CNT
+- version_release_old_regex_l=${version_release_old//./\\.}
+- version_release_new_regex_l=${version_release_new//./\\.}
+- name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
+- name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
++ set_regex
+
+ # Check the whole spec file at first, return 0 immediately if the
+ # are the same.
+@@ -285,9 +291,14 @@ function cmp_spec ()
+ }
+
+ function adjust_controlfile() {
+- cat $1/control | sed '/^Version: /d' > $1/control.fixed
++ version_release_old="`sed -ne 's/^Version: \(.*\)/\1/p' $1/control`"
++ name_ver_rel_old="`sed -n -e 's/^Package: \(.*\)/\1/p' $1/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $1/control`"
++ version_release_new="`sed -ne 's/^Version: \(.*\)/\1/p' $2/control`"
++ name_ver_rel_new="`sed -n -e 's/^Package: \(.*\)/\1/p' $2/control`-`sed -n -e 's/^Version: \(.*\)/\1/p' $2/control`"
++ set_regex
++ cat $1/control | trim_release_old > $1/control.fixed
+ mv $1/control.fixed $1/control
+- cat $2/control | sed '/^Version: /d' > $2/control.fixed
++ cat $2/control | trim_release_new > $2/control.fixed
+ mv $2/control.fixed $2/control
+ }
+
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch
new file mode 100644
index 000000000..02e96bab5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-remove-space-at-head.patch
@@ -0,0 +1,41 @@
+From 402a821e604f280e62c34bf4d40c6d1b4c6c892d Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Mon, 4 Jul 2016 20:11:33 -0700
+Subject: [PATCH] functions.sh: remove space at head
+
+The command like:
+rpm -qp --nodigest --nosignature --qf '<foo> [%{REQUIRENAME}\n]\n'
+ ^^space
+
+The space will be printed, and will impact the check result, so remove it.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ functions.sh | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/functions.sh b/functions.sh
+index 85c9003..b1069d2 100644
+--- a/functions.sh
++++ b/functions.sh
+@@ -26,6 +26,7 @@ function trim_release_old()
+ sed -e "
+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_old_regex_l\$\)/{s,$version_release_old_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_old_regex_s,@VERSION@-@RELEASE_SHORT@,g}
+ s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_old_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
++ s/^ *//g
+ "
+ }
+ function trim_release_new()
+@@ -33,6 +34,7 @@ function trim_release_new()
+ sed -e "
+ /\(\/boot\|\/lib\/modules\|\/lib\/firmware\|\/usr\/src\|$version_release_new_regex_l\$\)/{s,$version_release_new_regex_l,@VERSION@-@RELEASE_LONG@,g;s,$version_release_new_regex_s,@VERSION@-@RELEASE_SHORT@,g}
+ s/\(\/var\/adm\/update-scripts\/\)${name_ver_rel_new_regex_l}\([^[:blank:]]\+\)/\1@NAME_VER_REL@\2/g
++ s/^ *//g
+ "
+ }
+ # Get single directory or filename with long or short release string
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch
new file mode 100644
index 000000000..f5b99d944
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/functions.sh-run-rpm-once-to-make-it-faster.patch
@@ -0,0 +1,361 @@
+From f34d632c427b1e1570ef9136454fc01d8c9f10a6 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 7 Jul 2016 19:34:09 -0700
+Subject: [PATCH] functions.sh: run rpm once to make it faster
+
+The rpm tool is a heavy process, it ran 16 (or 17 for kernel)
+"rpm -qp" times when the pkgs are identical, now we only run
+"rpm -qp --qf <all we need>" twice (one is for old pkg, and one is for
+new), save the results to spec_old and spec_new, then use sed command to
+get what we need later, this can make it 75% faster when the pkgs are
+identical. Here is the rough data on my host Ubuntu 14.04.4, 32 cores
+CPU and 128G mem:
+* When the pkgs are identical:
+ - Before the patch: 1s
+ - After the patch: 0.26s
+ I compare the whole spec firstly, and return 0 if they are the same,
+ or go on checking one by one if not, without this, it would be 0.46s,
+ the gain is great when there are lot of packages, usually, we have
+ more than 10,000 rpms to compare.
+
+* When the pkgs are different:
+ That depends on where is the different, if the different is at the
+ comparing rpmtags stage:
+ - Before the patch: 0.26s
+ - After the patch: 0.29s
+ Increased 0.03s, but if the different is happend later than comparing
+ rpmtags, it will save time.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/9]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ functions.sh | 245 ++++++++++++++++++++++++++++++++---------------------------
+ 1 file changed, 132 insertions(+), 113 deletions(-)
+ mode change 100644 => 100755 functions.sh
+
+diff --git a/functions.sh b/functions.sh
+old mode 100644
+new mode 100755
+index b1069d2..aa572f9
+--- a/functions.sh
++++ b/functions.sh
+@@ -10,9 +10,63 @@
+
+ RPM="rpm -qp --nodigest --nosignature"
+
+-check_header()
++# Name, Version, Release
++QF_NAME="%{NAME}"
++QF_VER_REL="%{VERSION}-%{RELEASE}"
++QF_NAME_VER_REL="%{NAME}-%{VERSION}-%{RELEASE}"
++
++# provides destroy this because at least the self-provide includes the
++# -buildnumber :-(
++QF_PROVIDES="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n"
++QF_PROVIDES="$QF_PROVIDES [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n"
++QF_PROVIDES="$QF_PROVIDES [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n"
++QF_PROVIDES="$QF_PROVIDES [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n"
++
++# don't look at RELEASE, it contains our build number
++QF_TAGS="%{NAME} %{VERSION} %{EPOCH}\\n"
++QF_TAGS="$QF_TAGS %{SUMMARY}\\n%{DESCRIPTION}\\n"
++# the DISTURL tag can be used as checkin ID
++QF_TAGS="$QF_TAGS %{VENDOR} %{DISTRIBUTION} %{DISTURL}"
++QF_TAGS="$QF_TAGS %{LICENSE} %{LICENSE}\\n"
++QF_TAGS="$QF_TAGS %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n"
++QF_TAGS="$QF_TAGS %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n"
++QF_TAGS="$QF_TAGS %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n"
++
++# XXX We also need to check the existence (but not the content (!))
++# of SIGGPG (and perhaps the other SIG*)
++# XXX We don't look at triggers
++QF_TAGS="$QF_TAGS [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n"
++# Only the first ChangeLog entry; should be enough
++QF_TAGS="$QF_TAGS %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n"
++
++# scripts, might contain release number
++QF_SCRIPT="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n"
++
++# Now the files. We leave out mtime and size. For normal files
++# the size will influence the MD5 anyway. For directories the sizes can
++# differ, depending on which file system the package was built. To not
++# have to filter out directories we simply ignore all sizes.
++# Also leave out FILEDEVICES, FILEINODES (depends on the build host),
++# FILECOLORS, FILECLASS (normally useful but file output contains mtimes),
++# FILEDEPENDSX and FILEDEPENDSN.
++# Also FILELANGS (or?)
++QF_FILELIST="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n"
++# ??? what to do with FILEPROVIDE and FILEREQUIRE?
++
++QF_CHECKSUM="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n"
++
++QF_ALL="\n___QF_NAME___\n${QF_NAME}\n___QF_NAME___\n"
++QF_ALL="$QF_ALL\n___QF_TAGS___\n${QF_TAGS}\n___QF_TAGS___\n"
++QF_ALL="$QF_ALL\n___QF_VER_REL___\n${QF_VER_REL}\n___QF_VER_REL___\n"
++QF_ALL="$QF_ALL\n___QF_NAME_VER_REL___\n${QF_NAME_VER_REL}\n___QF_NAME_VER_REL___\n"
++QF_ALL="$QF_ALL\n___QF_PROVIDES___\n${QF_PROVIDES}\n___QF_PROVIDES___\n"
++QF_ALL="$QF_ALL\n___QF_SCRIPT___\n${QF_SCRIPT}\n___QF_SCRIPT___\n"
++QF_ALL="$QF_ALL\n___QF_FILELIST___\n${QF_FILELIST}\n___QF_FILELIST___\n"
++QF_ALL="$QF_ALL\n___QF_CHECKSUM___\n${QF_CHECKSUM}\n___QF_CHECKSUM___\n"
++
++check_header()
+ {
+- $RPM --qf "$QF" "$1"
++ $RPM --qf "$1" "$2"
+ }
+
+ # Trim version-release string:
+@@ -47,18 +101,6 @@ function grep_release_new()
+ grep -E "(/boot|/lib/modules|/lib/firmware|/usr/src)/[^/]+(${version_release_new_regex_l}(\$|[^/]+\$)|${version_release_new_regex_s}(\$|[^/]+\$))"
+ }
+
+-function check_provides()
+-{
+- local pkg=$1
+- # provides destroy this because at least the self-provide includes the
+- # -buildnumber :-(
+- QF="[%{PROVIDENAME} %{PROVIDEFLAGS} %{PROVIDEVERSION}\\n]\\n"
+- QF="$QF [%{REQUIRENAME} %{REQUIREFLAGS} %{REQUIREVERSION}\\n]\\n"
+- QF="$QF [%{CONFLICTNAME} %{CONFLICTFLAGS} %{CONFLICTVERSION}\\n]\\n"
+- QF="$QF [%{OBSOLETENAME} %{OBSOLETEFLAGS} %{OBSOLETEVERSION}\\n]\\n"
+- check_header "$pkg"
+-}
+-
+ #usage unpackage <file> $dir
+ # Unpack files in directory $dir
+ # like /usr/bin/unpackage - just for one file and with no options
+@@ -98,6 +140,30 @@ function unpackage()
+ popd 1>/dev/null
+ }
+
++# Run diff command on the files
++# $1: printed info
++# $2: file1
++# $3: file2
++function comp_file()
++{
++ echo "comparing $1"
++ if ! diff -au $2 $3; then
++ if test -z "$check_all"; then
++ rm $2 $3 $spec_old $spec_new
++ return 1
++ fi
++ fi
++ return 0
++}
++
++# Get var's value from specfile.
++# $1: var name
++# $2: specfile
++function get_value()
++{
++ sed -n -e "/^___${1}___/,/^___${1}___/p" $2 | sed -e "/^___${1}___/d"
++}
++
+ # Compare just the rpm meta data of two rpms
+ # Returns:
+ # 0 in case of same content
+@@ -107,56 +173,29 @@ function unpackage()
+ function cmp_spec ()
+ {
+ local RES
+- local file1 file2
++ local file_old file_new
+ local f
+ local sh=$1
+ local oldrpm=$2
+ local newrpm=$3
+
+- QF="%{NAME}"
+-
+- # don't look at RELEASE, it contains our build number
+- QF="$QF %{VERSION} %{EPOCH}\\n"
+- QF="$QF %{SUMMARY}\\n%{DESCRIPTION}\\n"
+- QF="$QF %{VENDOR} %{DISTRIBUTION} %{DISTURL}"
+- QF="$QF %{LICENSE} %{LICENSE}\\n"
+- QF="$QF %{GROUP} %{URL} %{EXCLUDEARCH} %{EXCLUDEOS} %{EXCLUSIVEARCH}\\n"
+- QF="$QF %{EXCLUSIVEOS} %{RPMVERSION} %{PLATFORM}\\n"
+- QF="$QF %{PAYLOADFORMAT} %{PAYLOADCOMPRESSOR} %{PAYLOADFLAGS}\\n"
+-
+-
+- # XXX We also need to check the existence (but not the content (!))
+- # of SIGGPG (and perhaps the other SIG*)
+-
+- # XXX We don't look at triggers
+-
+- QF="$QF [%{VERIFYSCRIPTPROG} %{VERIFYSCRIPT}]\\n"
+-
+- # Only the first ChangeLog entry; should be enough
+- QF="$QF %{CHANGELOGTIME} %{CHANGELOGNAME} %{CHANGELOGTEXT}\\n"
+-
+- file1=`mktemp`
+- file2=`mktemp`
+-
+- check_header $oldrpm > $file1
+- check_header $newrpm > $file2
+-
+- # the DISTURL tag can be used as checkin ID
+- #echo "$QF"
+- echo "comparing rpmtags"
+- if ! diff -au $file1 $file2; then
+- if test -z "$check_all"; then
+- rm $file1 $file2
+- return 1
+- fi
+- fi
+-
++ file_old=`mktemp`
++ file_new=`mktemp`
++ spec_old=`mktemp`
++ spec_new=`mktemp`
++
++ check_header "$QF_ALL" $oldrpm > $spec_old
++ check_header "$QF_ALL" $newrpm > $spec_new
++
++ name_new="$(get_value QF_NAME $spec_new)"
++ version_release_new="$(get_value QF_VER_REL $spec_new)"
++ name_ver_rel_new="$(get_value QF_NAME_VER_REL $spec_new)"
++
++ version_release_old="$(get_value QF_VER_REL $spec_old)"
++ name_ver_rel_old="$(get_value QF_NAME_VER_REL $spec_old)"
++
+ # Remember to quote the . which is in release
+- version_release_old=$($RPM --qf "%{VERSION}-%{RELEASE}" "$oldrpm")
+- version_release_new=$($RPM --qf "%{VERSION}-%{RELEASE}" "$newrpm")
+- name_ver_rel_old=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$oldrpm")
+- name_ver_rel_new=$($RPM --qf "%{NAME}-%{VERSION}-%{RELEASE}" "$newrpm")
+- # Short version without B_CNT
++ # Short version without B_CN
+ version_release_old_regex_s=${version_release_old%.*}
+ version_release_old_regex_s=${version_release_old_regex_s//./\\.}
+ version_release_new_regex_s=${version_release_new%.*}
+@@ -166,10 +205,27 @@ function cmp_spec ()
+ version_release_new_regex_l=${version_release_new//./\\.}
+ name_ver_rel_old_regex_l=${name_ver_rel_old//./\\.}
+ name_ver_rel_new_regex_l=${name_ver_rel_new//./\\.}
++
++ # Check the whole spec file at first, return 0 immediately if the
++ # are the same.
++ cat $spec_old | trim_release_old > $file_old
++ cat $spec_new | trim_release_new > $file_new
++ echo "comparing the whole specfile"
++ if diff -au $spec_old $spec_new; then
++ if test -z "$check_all"; then
++ rm $file_old $file_new $spec_old $spec_new
++ return 0
++ fi
++ fi
++
++ get_value QF_TAGS $spec_old > $file_old
++ get_value QF_TAGS $spec_new > $file_new
++ comp_file rpmtags $file_old $file_new || return 1
++
+ # This might happen when?!
+ echo "comparing RELEASE"
+ if [ "${version_release_old%.*}" != "${version_release_new%.*}" ] ; then
+- case $($RPM --qf '%{NAME}' "$newrpm") in
++ case $name_new in
+ kernel-*)
+ # Make sure all kernel packages have the same %RELEASE
+ echo "release prefix mismatch"
+@@ -181,71 +237,34 @@ function cmp_spec ()
+ *) ;;
+ esac
+ fi
+-
+- check_provides $oldrpm | trim_release_old | sort > $file1
+- check_provides $newrpm | trim_release_new | sort > $file2
+-
+- echo "comparing PROVIDES"
+- if ! diff -au $file1 $file2; then
+- if test -z "$check_all"; then
+- rm $file1 $file2
+- return 1
+- fi
+- fi
+
+- # scripts, might contain release number
+- QF="[%{PREINPROG} %{PREIN}\\n]\\n[%{POSTINPROG} %{POSTIN}\\n]\\n[%{PREUNPROG} %{PREUN}\\n]\\n[%{POSTUNPROG} %{POSTUN}\\n]\\n"
+- check_header $oldrpm | trim_release_old > $file1
+- check_header $newrpm | trim_release_new > $file2
++ get_value QF_PROVIDES $spec_old | trim_release_old | sort > $file_old
++ get_value QF_PROVIDES $spec_new | trim_release_new | sort > $file_new
++ comp_file PROVIDES $file_old $file_new || return 1
++
++ get_value QF_SCRIPT $spec_old | trim_release_old > $file_old
++ get_value QF_SCRIPT $spec_new | trim_release_new > $file_new
++ comp_file scripts $file_old $file_new || return 1
+
+- echo "comparing scripts"
+- if ! diff -au $file1 $file2; then
+- if test -z "$check_all"; then
+- rm $file1 $file2
+- return 1
+- fi
+- fi
+-
+ # First check the file attributes and later the md5s
+-
+- # Now the files. We leave out mtime and size. For normal files
+- # the size will influence the MD5 anyway. For directories the sizes can
+- # differ, depending on which file system the package was built. To not
+- # have to filter out directories we simply ignore all sizes.
+- # Also leave out FILEDEVICES, FILEINODES (depends on the build host),
+- # FILECOLORS, FILECLASS (normally useful but file output contains mtimes),
+- # FILEDEPENDSX and FILEDEPENDSN.
+- # Also FILELANGS (or?)
+- QF="[%{FILENAMES} %{FILEFLAGS} %{FILESTATES} %{FILEMODES:octal} %{FILEUSERNAME} %{FILEGROUPNAME} %{FILERDEVS} %{FILEVERIFYFLAGS} %{FILELINKTOS}\n]\\n"
+- # ??? what to do with FILEPROVIDE and FILEREQUIRE?
+-
+- check_header $oldrpm | trim_release_old > $file1
+- check_header $newrpm | trim_release_new > $file2
+-
+- echo "comparing filelist"
+- if ! diff -au $file1 $file2; then
+- if test -z "$check_all"; then
+- rm $file1 $file2
+- return 1
+- fi
+- fi
+-
++ get_value QF_FILELIST $spec_old | trim_release_old > $file_old
++ get_value QF_FILELIST $spec_new | trim_release_new > $file_new
++ comp_file filelist $file_old $file_new || return 1
++
+ # now the md5sums. if they are different, we check more detailed
+ # if there are different filenames, we will already have aborted before
+ # file flag 64 means "ghost", filter those out.
+- QF="[%{FILENAMES} %{FILEMD5S} %{FILEFLAGS}\n]\\n"
+- check_header $oldrpm |grep -v " 64$"| trim_release_old > $file1
+- check_header $newrpm |grep -v " 64$"| trim_release_new > $file2
+-
++ get_value QF_CHECKSUM $spec_old | grep -v " 64$" | trim_release_old > $file_old
++ get_value QF_CHECKSUM $spec_new | grep -v " 64$" | trim_release_new > $file_new
+ RES=2
+ # done if the same
+ echo "comparing file checksum"
+- if cmp -s $file1 $file2; then
++ if cmp -s $file_old $file_new; then
+ RES=0
+ fi
+-
++
+ # Get only files with different MD5sums
+- files=`diff -U0 $file1 $file2 | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'`
++ files=`diff -U0 $file_old $file_new | fgrep -v +++ | grep ^+ | cut -b2- | awk '{print $1}'`
+
+ if test -f "$sh"; then
+ echo "creating rename script"
+@@ -261,7 +280,7 @@ function cmp_spec ()
+ done >> "${sh}"
+ fi
+ #
+- rm $file1 $file2
++ rm $file_old $file_new
+ return $RES
+ }
+
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch
new file mode 100644
index 000000000..e4f0c5416
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check-for-fifo-named-pipe.patch
@@ -0,0 +1,35 @@
+From a78fe4f792a9ac9f4d364e836c8855f48561d6f2 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Jul 2016 19:52:18 -0700
+Subject: [PATCH 3/4] pkg-diff.sh: check for fifo(named pipe)
+
+Otherwise "cmp -s fifo1 fifo2" will wait for inputing forever.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ pkg-diff.sh | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/pkg-diff.sh b/pkg-diff.sh
+index 5dd3a38..1f353aa 100644
+--- a/pkg-diff.sh
++++ b/pkg-diff.sh
+@@ -735,6 +735,13 @@ check_single_file()
+ return 1
+ fi
+ ;;
++ fifo*pipe*)
++ ftype_new="`/usr/bin/file new/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`"
++ if [ "$ftype_new" = "$ftype" ]; then
++ return 0
++ fi
++ return 1
++ ;;
+ *)
+ if ! diff_two_files; then
+ return 1
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch
new file mode 100644
index 000000000..b42af2531
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-check_single_file-return-at-once-when-sa.patch
@@ -0,0 +1,37 @@
+From 657983ef9ca8f8354172682e17408c4f6b5bc667 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Jul 2016 19:46:08 -0700
+Subject: [PATCH 1/4] pkg-diff.sh: check_single_file(): return at once when
+ same
+
+If the two files are the same, return at once, this can save a lot of
+time when there are archives inside archives.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ pkg-diff.sh | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/pkg-diff.sh b/pkg-diff.sh
+index 3cf10aa..402d4a4 100644
+--- a/pkg-diff.sh
++++ b/pkg-diff.sh
+@@ -293,6 +293,13 @@ check_compressed_file()
+ check_single_file()
+ {
+ local file="$1"
++
++ # If the two files are the same, return at once.
++ if [ -f old/$file -a -f new/$file ]; then
++ if cmp -s old/$file new/$file; then
++ return 0
++ fi
++ fi
+ case $file in
+ *.spec)
+ sed -i -e "s,Release:.*$release1,Release: @RELEASE@," old/$file
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch
new file mode 100644
index 000000000..807717233
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/build-compare/files/pkg-diff.sh-remove-space-in-the-end-for-ftype.patch
@@ -0,0 +1,32 @@
+From 836a6783df9c582a834fca239f227063a5687715 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 14 Jul 2016 19:49:12 -0700
+Subject: [PATCH 2/4] pkg-diff.sh: remove space in the end for ftype
+
+Versions of file like 5.14 returns a " " in the end, for example:
+ftype="directory ", but we need ftype="directory", remove the space to
+fix the problem.
+
+Upstream-Status: Submitted [https://github.com/openSUSE/build-compare/pull/10]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ pkg-diff.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pkg-diff.sh b/pkg-diff.sh
+index 402d4a4..5dd3a38 100644
+--- a/pkg-diff.sh
++++ b/pkg-diff.sh
+@@ -633,7 +633,7 @@ check_single_file()
+ ;;
+ esac
+
+- ftype=`/usr/bin/file old/$file | sed 's@^[^:]\+:[[:blank:]]*@@'`
++ ftype=`/usr/bin/file old/$file | sed -e 's@^[^:]\+:[[:blank:]]*@@' -e 's@[[:blank:]]*$@@'`
+ case $ftype in
+ PE32\ executable*Mono\/\.Net\ assembly*)
+ echo "PE32 Mono/.Net assembly: $file"
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.4.bb
deleted file mode 100644
index fd45e4160..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require ccache.inc
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b3c337e7664559a789d9f7a93e5283c1"
-
-SRCREV = "2254797f1c5cfb83c4272da7b138f7f47218eb7d"
-
-SRC_URI += " \
- file://0002-dev.mk.in-fix-file-name-too-long.patch \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.5.bb
new file mode 100644
index 000000000..afd1b0ea1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ccache/ccache_3.2.5.bb
@@ -0,0 +1,11 @@
+require ccache.inc
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b8a4fa173ed91c1a5204ea4f9c9eadc3"
+
+SRCREV = "424d3ae1fb73444c6c38bf189f8fc048f66d6499"
+
+SRC_URI += " \
+ file://0002-dev.mk.in-fix-file-name-too-long.patch \
+ file://Revert-Create-man-page-in-the-make-install-from-git-.patch \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ccache/files/Revert-Create-man-page-in-the-make-install-from-git-.patch b/import-layers/yocto-poky/meta/recipes-devtools/ccache/files/Revert-Create-man-page-in-the-make-install-from-git-.patch
new file mode 100644
index 000000000..f0208b9dc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ccache/files/Revert-Create-man-page-in-the-make-install-from-git-.patch
@@ -0,0 +1,33 @@
+From 94fabcdda5c7e54ccdbc1f0aeccb26ce30e61226 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Mon, 18 Jul 2016 19:53:00 -0700
+Subject: [PATCH] Revert "Create man page in the make-install-from-git-repo
+ case"
+
+This reverts commit b86784902d28defd5e475c8922de594787df4541.
+
+We dont' have asciidoc, so revert it.
+
+Upstream-Status: Inappropriate [OE-Core specific]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index d474f2a..c6cdc04 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -76,7 +76,7 @@ ccache$(EXEEXT): $(ccache_objs) $(extra_libs)
+ $(CC) $(all_cflags) -o $@ $(ccache_objs) $(LDFLAGS) $(extra_libs) $(LIBS)
+
+ .PHONY: install
+-install: all $(srcdir)/ccache.1
++install: all
+ $(installcmd) -d $(DESTDIR)$(bindir)
+ $(installcmd) -m 755 ccache$(EXEEXT) $(DESTDIR)$(bindir)
+ $(installcmd) -d $(DESTDIR)$(mandir)/man1
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.4.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.4.3.bb
deleted file mode 100644
index cb4e749d7..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.4.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require cmake.inc
-inherit native
-
-# Using cmake's internal libarchive, so some dependencies are needed
-DEPENDS += "bzip2-native zlib-native"
-
-SRC_URI += "\
- file://cmlibarchive-disable-ext2fs.patch \
-"
-
-# Disable ccmake since we don't depend on ncurses
-CMAKE_EXTRACONF = "\
- -DBUILD_CursesDialog=0 \
- -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
- -DHAVE_SYS_ACL_H=0 \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.6.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.6.1.bb
new file mode 100644
index 000000000..aec0d64de
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake-native_3.6.1.bb
@@ -0,0 +1,36 @@
+require cmake.inc
+inherit native
+
+DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native"
+
+SRC_URI += "\
+ file://cmlibarchive-disable-ext2fs.patch \
+"
+
+B = "${WORKDIR}/build"
+do_configure[cleandirs] = "${B}"
+
+# Disable ccmake since we don't depend on ncurses
+CMAKE_EXTRACONF = "\
+ -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
+ -DBUILD_CursesDialog=0 \
+ -DCMAKE_USE_SYSTEM_LIBRARIES=1 \
+ -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \
+ -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \
+ -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
+ -DHAVE_SYS_ACL_H=0 \
+"
+
+do_configure () {
+ ${S}/configure --verbose --prefix=${prefix} -- ${CMAKE_EXTRACONF}
+}
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+do_compile[progress] = "percent"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake.inc b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake.inc
index 968d003b2..4fcb0b1ed 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake.inc
@@ -6,24 +6,21 @@ HOMEPAGE = "http://www.cmake.org/"
BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
SECTION = "console/utils"
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://Copyright.txt;md5=3ba5a6c34481652ce573e5c4e1d707e4 \
+LIC_FILES_CHKSUM = "file://Copyright.txt;md5=052f86c15bbde68af55c7f7b340ab639 \
file://Source/cmake.h;beginline=1;endline=10;md5=341736dae83c9e344b53eeb1bc7d7bc2"
-CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV',1).split('.')[0:2])}"
+CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV', True).split('.')[0:2])}"
SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
file://support-oe-qt4-tools-names.patch \
file://qt4-fail-silent.patch \
- file://0001-Add-NIOS2-CPU-support.patch \
"
-SRC_URI[md5sum] = "4cb3ff35b2472aae70f542116d616e63"
-SRC_URI[sha256sum] = "b73f8c1029611df7ed81796bf5ca8ba0ef41c6761132340c73ffe42704f980fa"
+SRC_URI[md5sum] = "d6dd661380adacdb12f41b926ec99545"
+SRC_URI[sha256sum] = "28ee98ec40427d41a45673847db7a905b59ce9243bb866eaf59dce0f58aaef11"
UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
-inherit autotools
-
# Ugly hack to work around undefined OE_QMAKE_PATH_EXTERNAL_HOST_BINS variable
# and possibly missing qmake binary (qtbase-native can be removed from sysroot
# e.g. in order to upgrade it, even when there is target qtbase)
@@ -46,10 +43,3 @@ do_configure_prepend() {
sed -i 's/^ find_package(Qt5Widgets REQUIRED)/# find_package(Qt5Widgets REQUIRED)/g' ${S}/Tests/QtAutogen/CMakeLists.txt
sed -i 's/^ find_package(Qt5Core REQUIRED)/# find_package(Qt5Core REQUIRED)/g' ${S}/Tests/QtAutogen/autorcc_depends/CMakeLists.txt
}
-
-# Extra flags to pass to cmake invoked by bootstrap
-CMAKE_EXTRACONF = ""
-
-do_configure () {
- ${S}/configure --prefix=${prefix} -- ${CMAKE_EXTRACONF}
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/0001-Add-NIOS2-CPU-support.patch b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/0001-Add-NIOS2-CPU-support.patch
deleted file mode 100644
index 6e0ab9fb7..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/0001-Add-NIOS2-CPU-support.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 3f8c3d3011ea192da2c761560b615f55763715ef Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Thu, 26 Nov 2015 21:31:04 +0100
-Subject: [PATCH] Add NIOS2 CPU support
-
-Add necessary bits to support the NIOS2 little-endian CPU.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Cc: Ley Foon Tan <lftan@altera.com>
-Cc: Thomas Chou <thomas@wytron.com.tw>
-Cc: Walter Goossens <waltergoossens@home.nl>
-Upstream-Status: Submitted
----
- Source/kwsys/CPU.h.in | 4 ++++
- Utilities/KWIML/ABI.h.in | 4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/Source/kwsys/CPU.h.in b/Source/kwsys/CPU.h.in
-index 884d71a..66ffbb1 100644
---- a/Source/kwsys/CPU.h.in
-+++ b/Source/kwsys/CPU.h.in
-@@ -88,6 +88,10 @@
- #elif defined(__mips) || defined(__mips__) || defined(__MIPS__)
- # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
-
-+/* NIOS2 */
-+#elif defined(__NIOS2__) || defined(__NIOS2) || defined(__nios2__)
-+# define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_LITTLE
-+
- /* OpenRISC 1000 */
- #elif defined(__or1k__)
- # define @KWSYS_NAMESPACE@_CPU_ENDIAN_ID @KWSYS_NAMESPACE@_CPU_ENDIAN_ID_BIG
-diff --git a/Utilities/KWIML/ABI.h.in b/Utilities/KWIML/ABI.h.in
-index 6300ada..87b6e96 100644
---- a/Utilities/KWIML/ABI.h.in
-+++ b/Utilities/KWIML/ABI.h.in
-@@ -398,6 +398,10 @@ suppression macro @KWIML@_ABI_NO_VERIFY was defined.
- #elif defined(__mips) || defined(__mips__) || defined(__MIPS__)
- # define @KWIML@_ABI_ENDIAN_ID @KWIML@_ABI_ENDIAN_ID_BIG
-
-+/* NIOS2 */
-+#elif defined(__NIOS2__) || defined(__NIOS2) || defined(__nios2__)
-+# define @KWIML@_ABI_ENDIAN_ID @KWIML@_ABI_ENDIAN_ID_LITTLE
-+
- /* OpenRISC 1000 */
- #elif defined(__or1k__)
- # define @KWIML@_ABI_ENDIAN_ID @KWIML@_ABI_ENDIAN_ID_BIG
---
-2.6.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
index 60014bbf2..6518408c7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
@@ -3,13 +3,17 @@ set( CMAKE_C_FLAGS $ENV{CFLAGS} CACHE STRING "" FORCE )
set( CMAKE_CXX_FLAGS $ENV{CXXFLAGS} CACHE STRING "" FORCE )
set( CMAKE ASM_FLAGS ${CMAKE_C_FLAGS} CACHE STRING "" FORCE )
set( CMAKE_LDFLAGS_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE )
+
set( CMAKE_FIND_ROOT_PATH $ENV{OECORE_TARGET_SYSROOT} $ENV{OECORE_NATIVE_SYSROOT} )
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
-string(REGEX MATCH "sysroots/([a-zA-Z0-9]+)" CMAKE_SYSTEM_PROCESSOR $ENV{SDKTARGETSYSROOT})
-string(REGEX REPLACE "sysroots/" "" CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR})
+# Set CMAKE_SYSTEM_PROCESSOR from the sysroot name (assuming processor-distro-os).
+if ($ENV{SDKTARGETSYSROOT} MATCHES "/sysroots/([a-zA-Z0-9_-]+)-.+-.+")
+ set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_MATCH_1})
+endif()
# Include the toolchain configuration subscripts
file( GLOB toolchain_config_files "${CMAKE_TOOLCHAIN_FILE}.d/*.cmake" )
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.4.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.4.3.bb
deleted file mode 100644
index 2f188f071..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.4.3.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-require cmake.inc
-
-inherit cmake
-
-DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
-
-SRC_URI_append_class-nativesdk = " \
- file://OEToolchainConfig.cmake \
- file://environment.d-cmake.sh"
-
-# Strip ${prefix} from ${docdir}, set result into docdir_stripped
-python () {
- prefix=d.getVar("prefix", True)
- docdir=d.getVar("docdir", True)
-
- if not docdir.startswith(prefix):
- raise bb.build.FuncFailed('docdir must contain prefix as its prefix')
-
- docdir_stripped = docdir[len(prefix):]
- if len(docdir_stripped) > 0 and docdir_stripped[0] == '/':
- docdir_stripped = docdir_stripped[1:]
-
- d.setVar("docdir_stripped", docdir_stripped)
-}
-
-EXTRA_OECMAKE=" \
- -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \
- -DCMAKE_USE_SYSTEM_LIBRARY_BZIP2=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_CURL=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_FORM=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_LIBLZMA=1 \
- -DCMAKE_USE_SYSTEM_LIBRARY_ZLIB=1 \
- -DKWSYS_CHAR_IS_SIGNED=1 \
- -DBUILD_CursesDialog=0 \
- ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-DKWSYS_LFS_WORKS=1', '-DKWSYS_LFS_DISABLE=1', d)} \
-"
-
-do_install_append_class-nativesdk() {
- mkdir -p ${D}${datadir}/cmake
- install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
-
- mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
- install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
-}
-
-FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
-
-FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
-FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.6.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.6.1.bb
new file mode 100644
index 000000000..850d6de23
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cmake/cmake_3.6.1.bb
@@ -0,0 +1,48 @@
+require cmake.inc
+
+inherit cmake
+
+DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
+
+SRC_URI_append_class-nativesdk = " \
+ file://OEToolchainConfig.cmake \
+ file://environment.d-cmake.sh"
+
+# Strip ${prefix} from ${docdir}, set result into docdir_stripped
+python () {
+ prefix=d.getVar("prefix", True)
+ docdir=d.getVar("docdir", True)
+
+ if not docdir.startswith(prefix):
+ bb.fatal('docdir must contain prefix as its prefix')
+
+ docdir_stripped = docdir[len(prefix):]
+ if len(docdir_stripped) > 0 and docdir_stripped[0] == '/':
+ docdir_stripped = docdir_stripped[1:]
+
+ d.setVar("docdir_stripped", docdir_stripped)
+}
+
+EXTRA_OECMAKE=" \
+ -DCMAKE_DOC_DIR=${docdir_stripped}/cmake-${CMAKE_MAJOR_VERSION} \
+ -DCMAKE_USE_SYSTEM_LIBRARIES=1 \
+ -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \
+ -DKWSYS_CHAR_IS_SIGNED=1 \
+ -DBUILD_CursesDialog=0 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-DKWSYS_LFS_WORKS=1', '-DKWSYS_LFS_DISABLE=1', d)} \
+"
+
+do_install_append_class-nativesdk() {
+ mkdir -p ${D}${datadir}/cmake
+ install -m 644 ${WORKDIR}/OEToolchainConfig.cmake ${D}${datadir}/cmake/
+
+ mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
+ install -m 644 ${WORKDIR}/environment.d-cmake.sh ${D}${SDKPATHNATIVE}/environment-setup.d/cmake.sh
+}
+
+FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}"
+
+FILES_${PN} += "${datadir}/cmake-${CMAKE_MAJOR_VERSION}"
+FILES_${PN}-doc += "${docdir}/cmake-${CMAKE_MAJOR_VERSION}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb
new file mode 100644
index 000000000..1baadea8e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/cve-check-tool_5.6.4.bb
@@ -0,0 +1,54 @@
+SUMMARY = "cve-check-tool"
+DESCRIPTION = "cve-check-tool is a tool for checking known (public) CVEs.\
+The tool will identify potentially vunlnerable software packages within Linux distributions through version matching."
+HOMEPAGE = "https://github.com/ikeydoherty/cve-check-tool"
+SECTION = "Development/Tools"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e8c1458438ead3c34974bc0be3a03ed6"
+
+SRC_URI = "https://github.com/ikeydoherty/${BPN}/releases/download/v${PV}/${BP}.tar.xz \
+ file://check-for-malloc_trim-before-using-it.patch \
+ file://0001-print-progress-in-percent-when-downloading-CVE-db.patch \
+ "
+
+SRC_URI[md5sum] = "c5f4247140fc9be3bf41491d31a34155"
+SRC_URI[sha256sum] = "b8f283be718af8d31232ac1bfc10a0378fb958aaaa49af39168f8acf501e6a5b"
+
+DEPENDS = "libcheck glib-2.0 json-glib curl libxml2 sqlite3 openssl ca-certificates"
+
+RDEPENDS_${PN} = "ca-certificates"
+
+inherit pkgconfig autotools
+
+EXTRA_OECONF = "--disable-coverage"
+CFLAGS_append = " -Wno-error=pedantic"
+
+do_populate_cve_db() {
+ if [ "${BB_NO_NETWORK}" = "1" ] ; then
+ bberror "BB_NO_NETWORK is set; Can't update cve-check-tool database, CVEs won't be checked"
+ return
+ fi
+
+ # In case we don't inherit cve-check class, use default values defined in the class.
+ cve_dir="${CVE_CHECK_DB_DIR}"
+ cve_file="${CVE_CHECK_TMP_FILE}"
+
+ [ -z "${cve_dir}" ] && cve_dir="${DL_DIR}/CVE_CHECK"
+ [ -z "${cve_file}" ] && cve_file="${TMPDIR}/cve_check"
+
+ bbdebug 2 "Updating cve-check-tool database located in $cve_dir"
+ if cve-check-update -d "$cve_dir" ; then
+ printf "CVE database was updated on %s UTC\n\n" "$(LANG=C date --utc +'%F %T')" > "$cve_file"
+ else
+ bbwarn "Error in executing cve-check-update"
+ if [ "${@'1' if bb.data.inherits_class('cve-check', d) else '0'}" -ne 0 ] ; then
+ bbwarn "Failed to update cve-check-tool database, CVEs won't be checked"
+ fi
+ fi
+}
+
+addtask populate_cve_db after do_populate_sysroot
+do_populate_cve_db[nostamp] = "1"
+do_populate_cve_db[progress] = "percent"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch
new file mode 100644
index 000000000..0510e3ae0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/0001-print-progress-in-percent-when-downloading-CVE-db.patch
@@ -0,0 +1,135 @@
+From e9ed26cde63f8ca7607a010a518329339f8c02d3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 26 Sep 2016 12:12:41 +0100
+Subject: [PATCH] print progress in percent when downloading CVE db
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+Signed-off-by: André Draszik <git@andred.net>
+---
+ src/library/fetch.c | 28 +++++++++++++++++++++++++++-
+ src/library/fetch.h | 3 ++-
+ src/update.c | 16 ++++++++++++----
+ 3 files changed, 41 insertions(+), 6 deletions(-)
+
+diff --git a/src/library/fetch.c b/src/library/fetch.c
+index 06d4b30..0fe6d76 100644
+--- a/src/library/fetch.c
++++ b/src/library/fetch.c
+@@ -37,13 +37,37 @@ static size_t write_func(void *ptr, size_t size, size_t nmemb, struct fetch_t *f
+ return fwrite(ptr, size, nmemb, f->f);
+ }
+
+-FetchStatus fetch_uri(const char *uri, const char *target, bool verbose)
++struct percent_t {
++ unsigned int start;
++ unsigned int end;
++};
++
++static int progress_callback_new(void *ptr, curl_off_t dltotal, curl_off_t dlnow, curl_off_t ultotal, curl_off_t ulnow)
++{
++ (void) ultotal;
++ (void) ulnow;
++
++ struct percent_t *percent = (struct percent_t *) ptr;
++
++ if (dltotal && percent && percent->end >= percent->start) {
++ unsigned int diff = percent->end - percent->start;
++ if (diff) {
++ fprintf(stderr,"completed: "CURL_FORMAT_OFF_T"%%\r", percent->start + (diff * dlnow / dltotal));
++ }
++ }
++
++ return 0;
++}
++
++FetchStatus fetch_uri(const char *uri, const char *target, bool verbose,
++ unsigned int start_percent, unsigned int end_percent)
+ {
+ FetchStatus ret = FETCH_STATUS_FAIL;
+ CURLcode res;
+ struct stat st;
+ CURL *curl = NULL;
+ struct fetch_t *f = NULL;
++ struct percent_t percent = { .start = start_percent, .end = end_percent };
+
+ curl = curl_easy_init();
+ if (!curl) {
+@@ -67,6 +91,8 @@ FetchStatus fetch_uri(const char *uri, const char *target, bool verbose)
+ }
+ if (verbose) {
+ (void)curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L);
++ (void)curl_easy_setopt(curl, CURLOPT_XFERINFODATA, &percent);
++ (void)curl_easy_setopt(curl, CURLOPT_XFERINFOFUNCTION, progress_callback_new);
+ }
+ res = curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, (curl_write_callback)write_func);
+ if (res != CURLE_OK) {
+diff --git a/src/library/fetch.h b/src/library/fetch.h
+index 70c3779..4cce5d1 100644
+--- a/src/library/fetch.h
++++ b/src/library/fetch.h
+@@ -28,7 +28,8 @@ typedef enum {
+ * @param verbose Whether to be verbose
+ * @return A FetchStatus, indicating the operation taken
+ */
+-FetchStatus fetch_uri(const char *uri, const char *target, bool verbose);
++FetchStatus fetch_uri(const char *uri, const char *target, bool verbose,
++ unsigned int this_percent, unsigned int next_percent);
+
+ /**
+ * Attempt to extract the given gzipped file
+diff --git a/src/update.c b/src/update.c
+index 30fbe96..eaeeefd 100644
+--- a/src/update.c
++++ b/src/update.c
+@@ -266,7 +266,8 @@ static inline void update_end(int fd, const char *update_fname, bool ok)
+ }
+
+ static int do_fetch_update(int year, const char *db_dir, CveDB *cve_db,
+- bool db_exist, bool verbose)
++ bool db_exist, bool verbose,
++ unsigned int this_percent, unsigned int next_percent)
+ {
+ const char nvd_uri[] = URI_PREFIX;
+ autofree(cve_string) *uri_meta = NULL;
+@@ -330,14 +331,14 @@ refetch:
+ }
+
+ /* Fetch NVD META file */
+- st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose);
++ st = fetch_uri(uri_meta->str, nvdcve_meta->str, verbose, this_percent, this_percent);
+ if (st == FETCH_STATUS_FAIL) {
+ fprintf(stderr, "Failed to fetch %s\n", uri_meta->str);
+ return -1;
+ }
+
+ /* Fetch NVD XML file */
+- st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose);
++ st = fetch_uri(uri_data_gz->str, nvdcve_data_gz->str, verbose, this_percent, next_percent);
+ switch (st) {
+ case FETCH_STATUS_FAIL:
+ fprintf(stderr, "Failed to fetch %s\n", uri_data_gz->str);
+@@ -459,10 +460,17 @@ bool update_db(bool quiet, const char *db_file)
+ for (int i = YEAR_START; i <= year+1; i++) {
+ int y = i > year ? -1 : i;
+ int rc;
++ unsigned int start_percent = ((i+0 - YEAR_START) * 100) / (year+2 - YEAR_START);
++ unsigned int end_percent = ((i+1 - YEAR_START) * 100) / (year+2 - YEAR_START);
+
+- rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet);
++ if (!quiet)
++ fprintf(stderr, "completed: %u%%\r", start_percent);
++ rc = do_fetch_update(y, db_dir, cve_db, db_exist, !quiet,
++ start_percent, end_percent);
+ switch (rc) {
+ case 0:
++ if (!quiet)
++ fprintf(stderr,"completed: %u%%\r", end_percent);
+ continue;
+ case ENOMEM:
+ goto oom;
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch
new file mode 100644
index 000000000..0774ad946
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/cve-check-tool/files/check-for-malloc_trim-before-using-it.patch
@@ -0,0 +1,51 @@
+From ce64633b9733e962b8d8482244301f614d8b5845 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 Aug 2016 22:54:24 -0700
+Subject: [PATCH] Check for malloc_trim before using it
+
+malloc_trim is gnu specific and not all libc
+implement it, threfore write a configure check
+to poke for it first and use the define to
+guard its use.
+
+Helps in compiling on musl based systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/ikeydoherty/cve-check-tool/pull/48]
+ configure.ac | 2 ++
+ src/core.c | 4 ++--
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d3b66ce..79c3542 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,6 +19,8 @@ m4_define([json_required_version], [0.16.0])
+ m4_define([openssl_required_version],[1.0.0])
+ # TODO: Set minimum sqlite
+
++AC_CHECK_FUNCS_ONCE(malloc_trim)
++
+ PKG_CHECK_MODULES(CVE_CHECK_TOOL,
+ [
+ glib-2.0 >= glib_required_version,
+diff --git a/src/core.c b/src/core.c
+index 6263031..0d5df29 100644
+--- a/src/core.c
++++ b/src/core.c
+@@ -498,9 +498,9 @@ bool cve_db_load(CveDB *self, const char *fname)
+ }
+
+ b = true;
+-
++#ifdef HAVE_MALLOC_TRIM
+ malloc_trim(0);
+-
++#endif
+ xmlFreeTextReader(r);
+ if (fd) {
+ close(fd);
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.22.bb b/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.22.bb
deleted file mode 100644
index f899cd2f1..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.22.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SECTION = "console/utils"
-SUMMARY = "Command line utilities for working with *.desktop files"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "glib-2.0-native"
-
-SRC_URI = "http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "c6b9f9aac1ea143091178c23437e6cd0"
-SRC_URI[sha256sum] = "843532672692f98e9b2d6ae6cc8658da562dfde1606c7f33d9d227a344de56c5"
-
-inherit autotools native
-
-S = "${WORKDIR}/desktop-file-utils-${PV}"
-
-EXTRA_OECONF += "ac_cv_prog_EMACS=no"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.23.bb b/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.23.bb
new file mode 100644
index 000000000..54daabef5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils-native_0.23.bb
@@ -0,0 +1,18 @@
+SECTION = "console/utils"
+SUMMARY = "Command line utilities for working with *.desktop files"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "glib-2.0-native"
+
+SRC_URI = "http://freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "599133d51cc9a41bfec186414906b6f1"
+SRC_URI[sha256sum] = "6c094031bdec46c9f621708f919084e1cb5294e2c5b1e4c883b3e70cb8903385"
+
+inherit autotools native
+
+S = "${WORKDIR}/desktop-file-utils-${PV}"
+
+EXTRA_OECONF += "ac_cv_prog_EMACS=no"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.1.bb
deleted file mode 100644
index f8879c87c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.1.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "A parallel build system"
-DESCRIPTION = "distcc is a parallel build system that distributes \
-compilation of C/C++/ObjC code across machines on a network."
-SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "avahi"
-
-GTKCONFIG = "gtk"
-GTKCONFIG_libc-uclibc = ""
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${GTKCONFIG}', '', d)} popt"
-PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+"
-# use system popt by default
-PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt"
-
-RRECOMMENDS_${PN} = "avahi-daemon"
-
-SRC_URI = "git://github.com/distcc/distcc.git \
- file://separatebuilddir.patch \
- file://0001-zeroconf-Include-fcntl.h.patch \
- file://default \
- file://distccmon-gnome.desktop \
- file://distcc \
- file://distcc.service"
-SRCREV = "9a172d3d20042754a30c0cd9a5d63fd1a8120c31"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig update-rc.d useradd systemd
-
-EXTRA_OECONF += "--disable-Werror PYTHON=/dev/null"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system \
- --home /dev/null \
- --no-create-home \
- --gid nogroup \
- distcc"
-
-INITSCRIPT_NAME = "distcc"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "distcc.service"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d/
- install -d ${D}${sysconfdir}/default
- install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service
- ${DESKTOPINSTALL}
-}
-DESKTOPINSTALL = ""
-DESKTOPINSTALL_libc-glibc () {
- install -d ${D}${datadir}/distcc/
- install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/
-}
-PACKAGES += "distcc-distmon-gnome"
-
-FILES_${PN} = " ${sysconfdir} \
- ${bindir}/distcc \
- ${bindir}/lsdistcc \
- ${bindir}/distccd \
- ${bindir}/distccmon-text \
- ${systemd_unitdir}/system/distcc.service"
-FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \
- ${datadir}/distcc"
-
-pkg_postrm_${PN} () {
- deluser distcc || true
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.2.bb
new file mode 100644
index 000000000..c084ad2b7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/distcc/distcc_3.2.bb
@@ -0,0 +1,71 @@
+SUMMARY = "A parallel build system"
+DESCRIPTION = "distcc is a parallel build system that distributes \
+compilation of C/C++/ObjC code across machines on a network."
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "avahi binutils"
+
+PACKAGECONFIG ??= "popt"
+PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk --without-gnome,gtk+"
+# use system popt by default
+PACKAGECONFIG[popt] = "--without-included-popt,--with-included-popt,popt"
+
+RRECOMMENDS_${PN} = "avahi-daemon"
+
+SRC_URI = "git://github.com/distcc/distcc.git;branch=${PV} \
+ file://separatebuilddir.patch \
+ file://0001-zeroconf-Include-fcntl.h.patch \
+ file://default \
+ file://distccmon-gnome.desktop \
+ file://distcc \
+ file://distcc.service"
+SRCREV = "d8b18df3e9dcbe4f092bed565835d3975e99432c"
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig update-rc.d useradd systemd
+
+EXTRA_OECONF += "--disable-Werror PYTHON='' --disable-pump-mode"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system \
+ --home /dev/null \
+ --no-create-home \
+ --gid nogroup \
+ distcc"
+
+INITSCRIPT_NAME = "distcc"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "distcc.service"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d/
+ install -d ${D}${sysconfdir}/default
+ install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/distcc.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/distcc.service
+ ${DESKTOPINSTALL}
+}
+DESKTOPINSTALL = ""
+DESKTOPINSTALL_libc-glibc () {
+ install -d ${D}${datadir}/distcc/
+ install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/
+}
+PACKAGES += "distcc-distmon-gnome"
+
+FILES_${PN} = " ${sysconfdir} \
+ ${bindir}/distcc \
+ ${bindir}/lsdistcc \
+ ${bindir}/distccd \
+ ${bindir}/distccmon-text \
+ ${systemd_unitdir}/system/distcc.service"
+FILES_distcc-distmon-gnome = " ${bindir}/distccmon-gnome \
+ ${datadir}/distcc"
+
+pkg_postrm_${PN} () {
+ deluser distcc || true
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch b/import-layers/yocto-poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch
index b9e3e42dd..7580b5584 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/distcc/files/separatebuilddir.patch
@@ -6,16 +6,16 @@ RP 2013/3/8
Upstream-Status: Pending
-Index: distcc-3.1/Makefile.in
+Index: git/Makefile.in
===================================================================
---- distcc-3.1.orig/Makefile.in 2008-12-02 21:50:31.000000000 +0000
-+++ distcc-3.1/Makefile.in 2013-03-08 10:49:24.224400937 +0000
-@@ -1088,7 +1088,7 @@
+--- git.orig/Makefile.in
++++ git/Makefile.in
+@@ -1117,7 +1117,7 @@ install-example: $(example_DOCS)
install-gnome-data: $(gnome_data)
$(mkinstalldirs) "$(DESTDIR)$(pkgdatadir)"
- for p in $(gnome_data); do \
-- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \
-+ $(INSTALL_DATA) "$(srcdir)/$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \
+ for p in $(gnome_data); do \
+- $(INSTALL_DATA) "$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \
++ $(INSTALL_DATA) "$(srcdir)/$$p" "$(DESTDIR)$(pkgdatadir)" || exit 1; \
done
install-conf: $(conf_files) $(default_files)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
index de1bc3970..2f13dba52 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xml-dtd4_4.5.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE-OASIS;md5=c608985dd5f7f215e669e763
# Note: the upstream sources are not distributed with a license file.
# LICENSE-OASIS is included as a "patch" to workaround this. When
# upgrading this recipe, please verify whether this is still needed.
-SRC_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
file://LICENSE-OASIS \
file://docbook-xml-update-catalog.xml.patch \
file://docbook-xml.xml \
@@ -20,6 +20,8 @@ SRC_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/docbook-xml_${PV}.orig.tar.gz \
SRC_URI[md5sum] = "487b4d44e15cffb1f4048af23f98208e"
SRC_URI[sha256sum] = "b0f8edcf697f5318e63dd98c9a931f3fee167af0805ba441db372e0f17b2a44f"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/docbook-xml/"
+
S="${WORKDIR}/docbook-xml-4.5.c31424"
inherit allarch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml
index a1a576a2e..c60555ae1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml
+++ b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets/docbook-xsl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-<delegateURI uriStartString="http://docbook.sourceforge.net/release/xsl/" catalog="file:///usr/share/xml/docbook/xsl-stylesheets-1.78.1/catalog.xml"/>
-<delegateSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/" catalog="file:///usr/share/xml/docbook/xsl-stylesheets-1.78.1/catalog.xml"/>
+<delegateURI uriStartString="http://docbook.sourceforge.net/release/xsl/" catalog="file:///usr/share/xml/docbook/xsl-stylesheets/catalog.xml"/>
+<delegateSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/" catalog="file:///usr/share/xml/docbook/xsl-stylesheets/catalog.xml"/>
</catalog>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.78.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.78.1.bb
deleted file mode 100644
index 52de3ab04..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.78.1.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "XSL stylesheets for processing DocBook XML to various output formats"
-HOMEPAGE = "http://docbook.sourceforge.net"
-LICENSE = "XSL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6eeeed43d498c22a835382533356462"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/docbook/docbook-xsl-${PV}.tar.bz2 \
- file://docbook-xsl.xml \
- file://docbook-xsl-stylesheets-no-bashism-in-docbook-xsl-up.patch \
-"
-
-SRC_URI[md5sum] = "6dd0f89131cc35bf4f2ed105a1c17771"
-SRC_URI[sha256sum] = "c98f7296ab5c8ccd2e0bc07634976a37f50847df2d8a59bdb1e157664700b467"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/docbook/files/docbook-xsl/"
-# Reject versions ending in .0 as those are release candidates
-UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P<pver>(\d+[\.\-_]*)+(?!\.0)\.\d+)/"
-
-S = "${WORKDIR}/docbook-xsl-${PV}"
-
-inherit allarch
-BBCLASSEXTEND = "native"
-
-SSTATEPOSTINSTFUNCS_append_class-native = " docbook_xsl_stylesheets_sstate_postinst"
-SYSROOT_PREPROCESS_FUNCS_append_class-native = " docbook_xsl_stylesheets_sysroot_preprocess"
-
-do_configure (){
- :
-}
-
-do_compile (){
- :
-}
-
-do_install () {
- # Refer to http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-xsl.html
- # for details.
- install -v -m755 -d ${D}${datadir}/xml/docbook/xsl-stylesheets-${PV}
- ln -s xsl-stylesheets-${PV} ${D}${datadir}/xml/docbook/xsl-stylesheets
-
- cp -v -R VERSION common eclipse epub extensions fo highlighting html \
- htmlhelp images javahelp lib manpages params profiling \
- roundtrip slides template tests tools webhelp website \
- xhtml xhtml-1_1 catalog.xml \
- ${D}${datadir}/xml/docbook/xsl-stylesheets-1.78.1
-
- ln -s VERSION ${D}/${datadir}/xml/docbook/xsl-stylesheets-1.78.1/VERSION.xsl
-
- install -v -m644 -D README \
- ${D}${datadir}/doc/docbook-xsl-1.78.1/README.txt
- install -v -m644 RELEASE-NOTES* NEWS* \
- ${D}${datadir}/doc/docbook-xsl-1.78.1
-
- install -d ${D}${sysconfdir}/xml/
- install -m 755 ${WORKDIR}/docbook-xsl.xml ${D}${sysconfdir}/xml/docbook-xsl.xml
-
-}
-
-docbook_xsl_stylesheets_sstate_postinst () {
- if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
- then
- # Ensure that the catalog file sgml-docbook.cat is properly
- # updated when the package is installed from sstate cache.
- sed -i -e "s|file://.*/usr/share/xml|file://${datadir}/xml|g" ${SYSROOT_DESTDIR}${sysconfdir}/xml/docbook-xsl.xml
- fi
-}
-
-docbook_xsl_stylesheets_sysroot_preprocess () {
- # Update the hardcode dir in docbook-xml.xml
- sed -i -e "s|file:///usr/share/xml|file://${datadir}/xml|g" ${SYSROOT_DESTDIR}${sysconfdir}/xml/docbook-xsl.xml
-}
-
-RDEPENDS_${PN} += "perl"
-FILES_${PN} = "${datadir}/xml/* ${sysconfdir}/xml/docbook-xsl.xml"
-FILES_${PN}-doc = "${datadir}/doc/*"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb
new file mode 100644
index 000000000..aa03a82a2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/docbook-xml/docbook-xsl-stylesheets_1.79.1.bb
@@ -0,0 +1,74 @@
+SUMMARY = "XSL stylesheets for processing DocBook XML to various output formats"
+HOMEPAGE = "http://docbook.sourceforge.net"
+LICENSE = "XSL"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6beadd98f9c54ab0c387e14211ee4d0e"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/docbook/docbook-xsl-${PV}.tar.bz2 \
+ file://docbook-xsl.xml \
+ file://docbook-xsl-stylesheets-no-bashism-in-docbook-xsl-up.patch \
+"
+
+SRC_URI[md5sum] = "b48cbf929a2ad85e6672f710777ca7bc"
+SRC_URI[sha256sum] = "725f452e12b296956e8bfb876ccece71eeecdd14b94f667f3ed9091761a4a968"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/docbook/files/docbook-xsl/"
+# Reject versions ending in .0 as those are release candidates
+UPSTREAM_CHECK_REGEX = "/docbook-xsl/(?P<pver>(\d+[\.\-_]*)+(?!\.0)\.\d+)/"
+
+S = "${WORKDIR}/docbook-xsl-${PV}"
+
+inherit allarch
+BBCLASSEXTEND = "native"
+
+SSTATEPOSTINSTFUNCS_append_class-native = " docbook_xsl_stylesheets_sstate_postinst"
+SYSROOT_PREPROCESS_FUNCS_append_class-native = " docbook_xsl_stylesheets_sysroot_preprocess"
+
+do_configure (){
+ :
+}
+
+do_compile (){
+ :
+}
+
+do_install () {
+ # Refer to http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-xsl.html
+ # for details.
+ install -v -m755 -d ${D}${datadir}/xml/docbook/xsl-stylesheets-${PV}
+ ln -s xsl-stylesheets-${PV} ${D}${datadir}/xml/docbook/xsl-stylesheets
+
+ cp -v -R VERSION assembly common eclipse epub epub3 fo \
+ highlighting html htmlhelp images javahelp lib manpages \
+ params profiling roundtrip slides template webhelp website \
+ xhtml xhtml-1_1 xhtml5 catalog.xml \
+ ${D}${datadir}/xml/docbook/xsl-stylesheets-${PV}
+
+ ln -s VERSION ${D}/${datadir}/xml/docbook/xsl-stylesheets-${PV}/VERSION.xsl
+
+ install -v -m644 -D README \
+ ${D}${datadir}/doc/docbook-xsl-${PV}/README.txt
+ install -v -m644 RELEASE-NOTES* NEWS* \
+ ${D}${datadir}/doc/docbook-xsl-${PV}
+
+ install -d ${D}${sysconfdir}/xml/
+ install -m 755 ${WORKDIR}/docbook-xsl.xml ${D}${sysconfdir}/xml/docbook-xsl.xml
+
+}
+
+docbook_xsl_stylesheets_sstate_postinst () {
+ if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
+ then
+ # Ensure that the catalog file sgml-docbook.cat is properly
+ # updated when the package is installed from sstate cache.
+ sed -i -e "s|file://.*/usr/share/xml|file://${datadir}/xml|g" ${SYSROOT_DESTDIR}${sysconfdir}/xml/docbook-xsl.xml
+ fi
+}
+
+docbook_xsl_stylesheets_sysroot_preprocess () {
+ # Update the hardcode dir in docbook-xml.xml
+ sed -i -e "s|file:///usr/share/xml|file://${datadir}/xml|g" ${SYSROOT_DESTDIR}${sysconfdir}/xml/docbook-xsl.xml
+}
+
+RDEPENDS_${PN} += "perl"
+FILES_${PN} = "${datadir}/xml/* ${sysconfdir}/xml/docbook-xsl.xml"
+FILES_${PN}-doc = "${datadir}/doc/*"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch b/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch
deleted file mode 100644
index 3497ca540..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 3b95786af13e28157d889bd90a384ee255f2d91d Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sun, 16 Aug 2015 15:55:43 +0200
-Subject: [PATCH] mkfs.fat: fix incorrect int type
-
-u_int32_t is not a stanard type, while uint32_t is. This fixes builds
-with the musl C library, which only defines so-called "clean" headers;
-build failures are like (back-quotes and elision manually added for
-readability):
-
- http://autobuild.buildroot.org/results/a09/a0923d7f6d4dbae02eba4c5024bbdae3a52aa85a/build-end.log
-
- /home/peko/autobuild/instance-1/output/host/usr/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE \
- -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -D_LARGEFILE_SOURCE \
- -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o mkfs.fat.o src/mkfs.fat.c
- src/mkfs.fat.c: In function 'main':
- src/mkfs.fat.c:1415:18: error: 'u_int32_t' undeclared (first use in this function)
- volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); [...]
- ^
- src/mkfs.fat.c:1415:18: note: each undeclared identifier is reported only once for each
- function it appears in
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Signed-off-by: Andreas Bombe <aeb@debian.org>
----
-Upstream-Status: Backport
-
- src/mkfs.fat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c
-index b38d116..dddbe24 100644
---- a/src/mkfs.fat.c
-+++ b/src/mkfs.fat.c
-@@ -1412,7 +1412,7 @@ int main(int argc, char **argv)
-
- gettimeofday(&create_timeval, NULL);
- create_time = create_timeval.tv_sec;
-- volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */
-+ volume_id = (uint32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); /* Default volume ID = creation time, fudged for more uniqueness */
- check_atari();
-
- printf("mkfs.fat " VERSION " (" VERSION_DATE ")\n");
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch b/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch
deleted file mode 100644
index 7f7d8359d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools/largefile.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-defer setting largefile flags to build makery
-in a cross build we can not do runtime config tests
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Inappropriate[Cross compile Specific]
-Index: dosfstools-3.0.28/Makefile
-===================================================================
---- dosfstools-3.0.28.orig/Makefile
-+++ dosfstools-3.0.28/Makefile
-@@ -27,8 +27,7 @@ SBINDIR = $(PREFIX)/sbin
- DOCDIR = $(PREFIX)/share/doc
- MANDIR = $(PREFIX)/share/man
-
--#OPTFLAGS = -O2 -fomit-frame-pointer -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
--OPTFLAGS = -O2 -fomit-frame-pointer -D_GNU_SOURCE $(shell getconf LFS_CFLAGS)
-+OPTFLAGS = -O2 -fomit-frame-pointer
- #WARNFLAGS = -Wall -pedantic -std=c99
- WARNFLAGS = -Wall -Wextra -Wno-sign-compare -Wno-missing-field-initializers -Wmissing-prototypes -Wstrict-prototypes -Wwrite-strings
- DEBUGFLAGS = -g
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb b/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb
deleted file mode 100644
index 6fc3e41df..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_3.0.28.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-# dosfstools OE build file
-# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
-# Copyright (C) 2015, Sören Brinkmann <soeren.brinkmann@gmail> All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-SUMMARY = "DOS FAT Filesystem Utilities"
-HOMEPAGE = "https://github.com/dosfstools/dosfstools"
-
-SECTION = "base"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "https://github.com/dosfstools/dosfstools/releases/download/v3.0.28/dosfstools-3.0.28.tar.xz \
- file://largefile.patch \
- file://0001-mkfs.fat-fix-incorrect-int-type.patch \
- "
-SRC_URI[md5sum] = "6a047a6c65186b9ebb1853709adb36db"
-SRC_URI[sha256sum] = "ee95913044ecf2719b63ea11212917649709a6e53209a72d622135aaa8517ee2"
-
-UPSTREAM_CHECK_URI = "https://github.com/dosfstools/dosfstools/releases"
-
-CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}"
-
-FILES_${PN} = "${base_sbindir}"
-FILES_${PN}-doc = "${mandir} ${docdir}"
-
-do_install () {
- oe_runmake "PREFIX=${D}${prefix}" "SBINDIR=${D}${base_sbindir}" \
- "MANDIR=${D}${mandir}" "DOCDIR=${D}${docdir}" install
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_4.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_4.0.bb
new file mode 100644
index 000000000..e7b1f6109
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/dosfstools/dosfstools_4.0.bb
@@ -0,0 +1,25 @@
+# dosfstools OE build file
+# Copyright (C) 2004-2006, Advanced Micro Devices, Inc. All Rights Reserved
+# Copyright (C) 2015, Sören Brinkmann <soeren.brinkmann@gmail> All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+SUMMARY = "DOS FAT Filesystem Utilities"
+HOMEPAGE = "https://github.com/dosfstools/dosfstools"
+
+SECTION = "base"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "https://github.com/dosfstools/dosfstools/releases/download/v${PV}/${BP}.tar.xz \
+ "
+SRC_URI[md5sum] = "20f8388b99702f276c973d228c7cff45"
+SRC_URI[sha256sum] = "9037738953559d1efe04fc5408b6846216cc0138f7f9d32de80b6ec3c35e7daf"
+
+UPSTREAM_CHECK_URI = "https://github.com/dosfstools/dosfstools/releases"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--without-udev --enable-compat-symlinks"
+
+CFLAGS += "-D_GNU_SOURCE ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', '', d)}"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg.inc b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg.inc
index 3d9e7e305..e8d8a9b4f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg.inc
@@ -2,15 +2,13 @@ SUMMARY = "Package maintenance system from Debian"
LICENSE = "GPLv2.0+"
SECTION = "base"
-SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz"
-
-SRC_URI_append_class-native = " file://0001-When-running-do_package_write_deb-we-have-trees-of-h.patch"
-
DEPENDS = "zlib bzip2 perl ncurses"
DEPENDS_class-native = "bzip2-replacement-native zlib-native virtual/update-alternatives-native gettext-native perl-native"
RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} xz run-postinsts perl"
RDEPENDS_${PN}_class-native = "xz-native"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
+
inherit autotools gettext perlnative pkgconfig systemd
python () {
@@ -35,6 +33,7 @@ EXTRA_OECONF = "\
"
EXTRA_OECONF += "TAR=tar"
+EXTRA_OECONF_append_class-target = " DEB_HOST_ARCH=${DPKG_ARCH}"
do_configure () {
echo >> ${S}/m4/compiler.m4
@@ -74,6 +73,14 @@ RPROVIDES_update-alternatives-dpkg += "update-alternatives"
PACKAGES += "${PN}-perl"
FILES_${PN}-perl = "${libdir}/perl"
-BBCLASSEXTEND = "native"
+# Split out start-stop-daemon to its own package. Note that it
+# is installed in a different directory than the one used for
+# the bitbake version.
+#
+PACKAGES =+ "${PN}-start-stop"
+FILES_${PN}-start-stop = "${sbindir}/start-stop-daemon"
+
+RDEPENDS_${PN} += "${PN}-start-stop"
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0001-When-running-do_package_write_deb-we-have-trees-of-h.patch b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0001-When-running-do_package_write_deb-we-have-trees-of-h.patch
deleted file mode 100644
index 49ef853ff..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0001-When-running-do_package_write_deb-we-have-trees-of-h.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From e391bdba238d1371fc5b67cdae08b06eb5ada5c2 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 26 Aug 2015 15:48:13 +0300
-Subject: [PATCH] When running do_package_write_deb, we have trees of
- hardlinked files such as the dbg source files in ${PN}-dbg. If something
- makes another copy of one of those files (or deletes one), the number of
- links a file has changes and tar can notice this, e.g.:
-
-| DEBUG: Executing python function do_package_deb
-| dpkg-deb: building package `sed-ptest' in `/media/build1/poky/build/tmp/work/i586-poky-linux/sed/4.2.2-r0/deploy-debs/i586/sed-ptest_4.2.2-r0.3_i386.deb'.
-| tar: ./usr/lib/sed/ptest/testsuite/tst-regex2: file changed as we read it
-| dpkg-deb: error: subprocess tar -cf returned error exit status 1
-
-Tar returns an error of 1 when files 'change' and other errors codes
-in other error cases. We tweak dpkg-deb here so that it ignores an exit
-code of 1 from tar. The files don't really change (and we have locking in
-place to avoid that kind of issue).
-
-Upstream-Status: Inappropriate
-RP 2015/3/27
----
- dpkg-deb/build.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
-index 2ddeec6..af363f0 100644
---- a/dpkg-deb/build.c
-+++ b/dpkg-deb/build.c
-@@ -452,7 +452,7 @@ static void
- tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
- struct compress_params *tar_compress_params, int fd_out)
- {
-- int pipe_filenames[2], pipe_tarball[2];
-+ int pipe_filenames[2], pipe_tarball[2], rc;
- pid_t pid_tar, pid_comp;
-
- /* Fork off a tar. We will feed it a list of filenames on stdin later. */
-@@ -493,7 +493,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
- /* All done, clean up wait for tar and <compress> to finish their job. */
- close(pipe_filenames[1]);
- subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
-- subproc_reap(pid_tar, "tar -cf", 0);
-+ rc = subproc_reap(pid_tar, "tar -cf", SUBPROC_RETERROR);
-+ if (rc && rc != 1)
-+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
- }
-
- /**
-@@ -509,7 +511,7 @@ do_build(const char *const *argv)
- char *debar;
- char *tfbuf;
- int arfd;
-- int p1[2], gzfd;
-+ int p1[2], gzfd, rc;
- pid_t c1, c2;
-
- /* Decode our arguments. */
-@@ -590,7 +592,9 @@ do_build(const char *const *argv)
- }
- close(p1[0]);
- subproc_reap(c2, _("<compress> from tar -cf"), 0);
-- subproc_reap(c1, "tar -cf", 0);
-+ rc = subproc_reap(c1, "tar -cf", SUBPROC_RETERROR);
-+ if (rc && rc != 1)
-+ ohshite(_("subprocess %s returned error exit status %d"), "tar -cf", rc);
-
- if (lseek(gzfd, 0, SEEK_SET))
- ohshite(_("failed to rewind temporary file (%s)"), _("control member"));
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
index 9f77c6c99..80504ce8b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
@@ -8,30 +8,41 @@ Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a
Upstream-Status: Inappropriate [OE Specific]
RP 2011/12/07
+ALIMON 2016/05/26
+
---
- src/script.c | 31 ++-----------------------------
- 1 file changed, 2 insertions(+), 29 deletions(-)
+ src/script.c | 39 +++------------------------------------
+ 1 file changed, 3 insertions(+), 36 deletions(-)
diff --git a/src/script.c b/src/script.c
-index a958145..24c49f9 100644
+index 3c88be8..ce66a86 100644
--- a/src/script.c
+++ b/src/script.c
-@@ -100,36 +100,9 @@ maintscript_pre_exec(struct command *cmd)
- size_t instdirl = strlen(instdir);
-
- if (*instdir) {
+@@ -97,43 +97,10 @@ setexecute(const char *path, struct stat *stab)
+ static const char *
+ maintscript_pre_exec(struct command *cmd)
+ {
+- const char *admindir = dpkg_db_get_dir();
+- const char *changedir = fc_script_chrootless ? instdir : "/";
+- size_t instdirl = strlen(instdir);
+-
+- if (*instdir && !fc_script_chrootless) {
- if (strncmp(admindir, instdir, instdirl) != 0)
- ohshit(_("admindir must be inside instdir for dpkg to work properly"));
- if (setenv("DPKG_ADMINDIR", admindir + instdirl, 1) < 0)
- ohshite(_("unable to setenv for subprocesses"));
+- if (setenv("DPKG_ROOT", "", 1) < 0)
+- ohshite(_("unable to setenv for subprocesses"));
-
- if (chroot(instdir))
- ohshite(_("failed to chroot to '%.250s'"), instdir);
-- }
++ if (*instdir) {
++ setenv("D", instdir, 1);
+ }
- /* Switch to a known good directory to give the maintainer script
- * a saner environment, also needed after the chroot(). */
-- if (chdir("/"))
-- ohshite(_("failed to chdir to '%.255s'"), "/");
+- if (chdir(changedir))
+- ohshite(_("failed to chdir to '%.255s'"), changedir);
- if (debug_has_flag(dbg_scripts)) {
- struct varbuf args = VARBUF_INIT;
- const char **argv = cmd->argv;
@@ -44,9 +55,8 @@ index a958145..24c49f9 100644
- debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename,
- args.buf);
- varbuf_destroy(&args);
-+ setenv("D", instdir, 1);
- }
-- if (!instdirl)
+- }
+- if (!instdirl || fc_script_chrootless)
- return cmd->filename;
-
- assert(strlen(cmd->filename) >= instdirl);
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/add_armeb_triplet_entry.patch b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/add_armeb_triplet_entry.patch
index af275dec1..dc69eb2d1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/add_armeb_triplet_entry.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/add_armeb_triplet_entry.patch
@@ -25,14 +25,22 @@ Upstream-Status: Pending
Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
-diff -Naurp dpkg-1.17.21_org/triplettable dpkg-1.17.21/triplettable
---- dpkg-1.17.21_org/triplettable 2015-04-08 17:08:52.370759171 +0530
-+++ dpkg-1.17.21/triplettable 2015-04-08 17:09:12.406752081 +0530
-@@ -9,6 +9,7 @@ musleabihf-linux-arm musl-linux-armhf
- musl-linux-<cpu> musl-linux-<cpu>
- gnueabihf-linux-arm armhf
+---
+ triplettable | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/triplettable b/triplettable
+index abe4726..1e9c247 100644
+--- a/triplettable
++++ b/triplettable
+@@ -11,6 +11,7 @@ gnueabihf-linux-arm armhf
gnueabi-linux-arm armel
+ gnuabin32-linux-mips64r6el mipsn32r6el
+ gnuabin32-linux-mips64r6 mipsn32r6
+gnueabi-linux-armeb armeb
gnuabin32-linux-mips64el mipsn32el
gnuabin32-linux-mips64 mipsn32
- gnuabi64-linux-mips64el mips64el
+ gnuabi64-linux-mips64r6el mips64r6el
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/fix-abs-redefine.patch b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/fix-abs-redefine.patch
deleted file mode 100644
index e73311c29..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg/fix-abs-redefine.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Upstream-Status: Pending
-
-dpkg defines:
-#define DPKG_BEGIN_DECLS extern "C" {
-
-That makes header cstdlib included in a extern "C" block which is not supported
-by gcc 4.8. It fails on Fedora 19:
-
-/usr/include/c++/4.8.1/cstdlib: In function â€long long int std::abs(long long int)’:
-/usr/include/c++/4.8.1/cstdlib:174:20: error: declaration of C function â€long long int std::abs(long long int)’ conflicts with
- abs(long long __x) { return __builtin_llabs (__x); }
- ^
-/usr/include/c++/4.8.1/cstdlib:166:3: error: previous declaration â€long int std::abs(long int)’ here
- abs(long __i) { return __builtin_labs(__i); }
- ^
-
-Move include gettext.h out of the extern "C" block to fix this issue.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
---- dpkg-1.17.1/lib/dpkg/i18n.h.orig 2013-08-13 17:31:28.870935573 +0800
-+++ dpkg-1.17.1/lib/dpkg/i18n.h 2013-08-13 17:31:37.893065249 +0800
-@@ -23,8 +23,6 @@
-
- #include <dpkg/macros.h>
-
--DPKG_BEGIN_DECLS
--
- /**
- * @defgroup i18n Internationalization support
- * @ingroup dpkg-internal
-@@ -33,6 +31,8 @@
-
- #include <gettext.h>
-
-+DPKG_BEGIN_DECLS
-+
- /* We need to include this because pgettext() uses LC_MESSAGES, but libintl.h
- * which gets pulled by gettext.h only includes it if building optimized. */
- #include <locale.h>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.4.bb
deleted file mode 100644
index 7876944d6..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require dpkg.inc
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI_append_class-native =" file://glibc2.5-sync_file_range.patch "
-SRC_URI += "file://noman.patch \
- file://remove-tar-no-timestamp.patch \
- file://fix-abs-redefine.patch \
- file://arch_pm.patch \
- file://dpkg-configure.service \
- file://add_armeb_triplet_entry.patch \
- file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
- file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
- file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \
- file://0005-dpkg-compiler.m4-remove-Wvla.patch \
- file://0006-add-musleabi-to-known-target-tripets.patch \
- "
-
-SRC_URI[md5sum] = "e95b513c89693f6ec3ab53b6b1c3defd"
-SRC_URI[sha256sum] = "fe89243868888ce715bf45861f26264f767d4e4dbd0d6f1a26ce60bbbbf106da"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.7.bb
new file mode 100644
index 000000000..28fdc136a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/dpkg/dpkg_1.18.7.bb
@@ -0,0 +1,19 @@
+require dpkg.inc
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160509T100042Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz \
+ file://noman.patch \
+ file://remove-tar-no-timestamp.patch \
+ file://arch_pm.patch \
+ file://dpkg-configure.service \
+ file://add_armeb_triplet_entry.patch \
+ file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
+ file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
+ file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \
+ file://0005-dpkg-compiler.m4-remove-Wvla.patch \
+ file://0006-add-musleabi-to-known-target-tripets.patch \
+ "
+SRC_URI_append_class-native = " file://glibc2.5-sync_file_range.patch "
+
+SRC_URI[md5sum] = "073dbf2129a54b0fc627464bf8af4a1b"
+SRC_URI[sha256sum] = "ace36d3a6dc750a42baf797f9e75ec580a21f92bb9ff96b482100755d6d9b87b"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
index 09e4ea5bb..74e92f6b1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
@@ -9,7 +9,7 @@ LICENSE_e2fsprogs-mke2fs = "GPLv2"
LICENSE_e2fsprogs-fsck = "GPLv2"
LICENSE_e2fsprogs-tune2fs = "GPLv2"
LICENSE_e2fsprogs-badblocks = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b48f21d765b875bd10400975d12c1ca2 \
+LIC_FILES_CHKSUM = "file://NOTICE;md5=b48f21d765b875bd10400975d12c1ca2 \
file://lib/ext2fs/ext2fs.h;beginline=1;endline=9;md5=596a8dedcb4e731c6b21c7a46fba6bef \
file://lib/e2p/e2p.h;beginline=1;endline=7;md5=8a74ade8f9d65095d70ef2d4bf48e36a \
file://lib/uuid/uuid.h.in;beginline=1;endline=32;md5=dbb8079e114a5f841934b99e59c8820a \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch
index 656fb6efb..e66cd4d1a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch
@@ -9,26 +9,31 @@ don't want to enable features by default that are not supported by
the latest stable e2fsprogs release.
Upstream-Status: Inappropriate [configuration]
-
Signed-off-by: Jonathan Liu <net147@gmail.com>
+
+Rebase to 1.43:
+The upstream has disabled metadata_csum by default
+this rebase just revert 64bit feature.
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
misc/mke2fs.conf.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in
-index a049d61..106ee80 100644
+index 78fe50a..6f1940e 100644
--- a/misc/mke2fs.conf.in
+++ b/misc/mke2fs.conf.in
-@@ -11,7 +11,8 @@
+@@ -11,8 +11,9 @@
features = has_journal
}
ext4 = {
-- features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize
+- features = has_journal,extent,huge_file,flex_bg,64bit,dir_nlink,extra_isize
+ features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
-+ auto_64-bit_support = 1
inode_size = 256
++ auto_64-bit_support = 1
}
ext4dev = {
+ features = has_journal,extent,huge_file,flex_bg,inline_data,64bit,dir_nlink,extra_isize
--
-2.7.2
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
new file mode 100644
index 000000000..33054c61f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
@@ -0,0 +1,32 @@
+Subject: [PATCH] Fix missing check for permission denied.
+
+If the path to "ROOT_SYSCONFDIR/mke2fs.conf" has a permission denied problem,
+then the get_dirlist() call will return EACCES. But the code in profile_init
+will treat that as a fatal error and all executions will fail with:
+ Couldn't init profile successfully (error: 13).
+
+Upstream-Status: Pending
+
+Written-by: Henrik Wallin <henrik.b.wallin@ericsson.com>
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ lib/support/profile.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/support/profile.c b/lib/support/profile.c
+index 51a3314..1c1039f 100644
+--- a/lib/support/profile.c
++++ b/lib/support/profile.c
+@@ -335,7 +335,7 @@ profile_init(const char **files, profile_t *ret_profile)
+ *last = new_file;
+ last = &new_file->next;
+ }
+- } else if ((retval != ENOTDIR) &&
++ } else if ((retval != ENOTDIR) && (retval != EACCES) &&
+ strcmp(*fs, default_filename))
+ goto errout;
+
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/xattr_ordering.patch b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/xattr_ordering.patch
deleted file mode 100644
index 782a7b187..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/xattr_ordering.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From: "Darrick J. Wong" <darrick.wong@oracle.com>
-To: tytso@mit.edu, darrick.wong@oracle.com
-Cc: linux-ext4@vger.kernel.org, Darren Hart <dvhart@linux.intel.com>,
- Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Sat, 13 Feb 2016 14:38:24 -0800
-Message-ID: <20160213223824.25381.8002.stgit@birch.djwong.org>
-In-Reply-To: <20160213223725.25381.20929.stgit@birch.djwong.org>
-References: <20160213223725.25381.20929.stgit@birch.djwong.org>
-User-Agent: StGit/0.17.1-dirty
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-X-Source-IP: aserv0022.oracle.com [141.146.126.234]
-X-Evolution-Source: 1358860361.4566.33@ted
-Content-Transfer-Encoding: 8bit
-
-Richard Purdie reports that libext2fs doesn't sort attribute keys in
-the xattr block correctly, causing the kernel to return -ENODATA when
-querying attributes that should be there. Therefore, sort attributes
-so that whatever ends up in the xattr block is sorted according to
-what the kernel expects.
-
-Cc: Darren Hart <dvhart@linux.intel.com>
-Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
----
- lib/ext2fs/ext_attr.c | 24 +++++++++++-
- tests/d_xattr_sorting/expect | 29 ++++++++++++++
- tests/d_xattr_sorting/name | 1
- tests/d_xattr_sorting/script | 86 ++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 139 insertions(+), 1 deletion(-)
- create mode 100644 tests/d_xattr_sorting/expect
- create mode 100644 tests/d_xattr_sorting/name
- create mode 100644 tests/d_xattr_sorting/script
-
-Upstream-Status: Submitted
-
-
-diff --git a/lib/ext2fs/ext_attr.c b/lib/ext2fs/ext_attr.c
-index 0a4f8c0..b121837 100644
---- a/lib/ext2fs/ext_attr.c
-+++ b/lib/ext2fs/ext_attr.c
-@@ -254,10 +254,15 @@ static struct ea_name_index ea_names[] = {
- {0, NULL},
- };
-
-+static int find_ea_index(char *fullname, char **name, int *index);
-+
- /* Push empty attributes to the end and inlinedata to the front. */
- static int attr_compare(const void *a, const void *b)
- {
- const struct ext2_xattr *xa = a, *xb = b;
-+ char *xa_suffix, *xb_suffix;
-+ int xa_idx, xb_idx;
-+ int cmp;
-
- if (xa->name == NULL)
- return +1;
-@@ -267,7 +272,24 @@ static int attr_compare(const void *a, const void *b)
- return -1;
- else if (!strcmp(xb->name, "system.data"))
- return +1;
-- return 0;
-+
-+ /*
-+ * Duplicate the kernel's sorting algorithm because xattr blocks
-+ * require sorted keys.
-+ */
-+ xa_suffix = xa->name;
-+ xb_suffix = xb->name;
-+ xa_idx = xb_idx = 0;
-+ find_ea_index(xa->name, &xa_suffix, &xa_idx);
-+ find_ea_index(xb->name, &xb_suffix, &xb_idx);
-+ cmp = xa_idx - xb_idx;
-+ if (cmp)
-+ return cmp;
-+ cmp = strlen(xa_suffix) - strlen(xb_suffix);
-+ if (cmp)
-+ return cmp;
-+ cmp = strcmp(xa_suffix, xb_suffix);
-+ return cmp;
- }
-
- static const char *find_ea_prefix(int index)
-diff --git a/tests/d_xattr_sorting/expect b/tests/d_xattr_sorting/expect
-new file mode 100644
-index 0000000..17da663
---- /dev/null
-+++ b/tests/d_xattr_sorting/expect
-@@ -0,0 +1,29 @@
-+debugfs sort extended attributes
-+mke2fs -Fq -b 1024 test.img 512
-+Exit status is 0
-+ea_set / security.SMEG64 -f /tmp/b
-+Exit status is 0
-+ea_set / security.imb -f /tmp/b
-+Exit status is 0
-+ea_set / user.moo cow
-+Exit status is 0
-+ea_list /
-+Extended attributes:
-+ user.moo = "cow" (3)
-+ security.imb = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (256)
-+ security.SMEG64 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (256)
-+Exit status is 0
-+ea_get / security.imb
-+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-+Exit status is 0
-+ea_get / nosuchea
-+ea_get: Extended attribute key not found while getting extended attribute
-+Exit status is 0
-+e2fsck -yf -N test_filesys
-+Pass 1: Checking inodes, blocks, and sizes
-+Pass 2: Checking directory structure
-+Pass 3: Checking directory connectivity
-+Pass 4: Checking reference counts
-+Pass 5: Checking group summary information
-+test_filesys: 11/64 files (0.0% non-contiguous), 29/512 blocks
-+Exit status is 0
-diff --git a/tests/d_xattr_sorting/name b/tests/d_xattr_sorting/name
-new file mode 100644
-index 0000000..dde8926
---- /dev/null
-+++ b/tests/d_xattr_sorting/name
-@@ -0,0 +1 @@
-+sort extended attributes in debugfs
-diff --git a/tests/d_xattr_sorting/script b/tests/d_xattr_sorting/script
-new file mode 100644
-index 0000000..30c189a
---- /dev/null
-+++ b/tests/d_xattr_sorting/script
-@@ -0,0 +1,86 @@
-+if test -x $DEBUGFS_EXE; then
-+
-+OUT=$test_name.log
-+EXP=$test_dir/expect
-+VERIFY_FSCK_OPT=-yf
-+
-+TEST_DATA=$test_name.tmp
-+VERIFY_DATA=$test_name.ver.tmp
-+
-+echo "debugfs sort extended attributes" > $OUT
-+
-+dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
-+
-+echo "mke2fs -Fq -b 1024 test.img 512" >> $OUT
-+
-+$MKE2FS -Fq $TMPFILE 512 > /dev/null 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT
-+
-+perl -e 'print "x" x 256;' > /tmp/b
-+
-+echo "ea_set / security.SMEG64 -f /tmp/b" > $OUT.new
-+$DEBUGFS -w -R "ea_set / security.SMEG64 -f /tmp/b" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+echo "ea_set / security.imb -f /tmp/b" > $OUT.new
-+$DEBUGFS -w -R "ea_set / security.imb -f /tmp/b" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+echo "ea_set / user.moo cow" > $OUT.new
-+$DEBUGFS -w -R "ea_set / user.moo cow" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+rm -rf /tmp/b
-+
-+echo "ea_list /" > $OUT.new
-+$DEBUGFS -w -R "ea_list /" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+echo "ea_get / security.imb" > $OUT.new
-+$DEBUGFS -w -R "ea_get / security.imb" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+echo "ea_get / nosuchea" > $OUT.new
-+$DEBUGFS -w -R "ea_get / nosuchea" $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+echo e2fsck $VERIFY_FSCK_OPT -N test_filesys > $OUT.new
-+$FSCK $VERIFY_FSCK_OPT -N test_filesys $TMPFILE >> $OUT.new 2>&1
-+status=$?
-+echo Exit status is $status >> $OUT.new
-+sed -f $cmd_dir/filter.sed $OUT.new >> $OUT
-+
-+#
-+# Do the verification
-+#
-+
-+rm -f $TMPFILE $OUT.new
-+cmp -s $OUT $EXP
-+status=$?
-+
-+if [ "$status" = 0 ] ; then
-+ echo "$test_name: $test_description: ok"
-+ touch $test_name.ok
-+else
-+ echo "$test_name: $test_description: failed"
-+ diff $DIFF_OPTS $EXP $OUT > $test_name.failed
-+fi
-+
-+unset VERIFY_FSCK_OPT NATIVE_FSCK_OPT OUT EXP TEST_DATA VERIFY_DATA
-+
-+else #if test -x $DEBUGFS_EXE; then
-+ echo "$test_name: $test_description: skipped"
-+fi
-
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
new file mode 100644
index 000000000..f4855bc43
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.43.bb
@@ -0,0 +1,111 @@
+require e2fsprogs.inc
+
+PR = "r1"
+
+SRC_URI += "file://acinclude.m4 \
+ file://remove.ldconfig.call.patch \
+ file://quiet-debugfs.patch \
+ file://run-ptest \
+ file://ptest.patch \
+ file://mkdir.patch \
+ file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch \
+"
+
+SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch"
+
+SRCREV = "d6adf070b0e85f209c0d7f310188b134b5cb7180"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
+
+EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
+ --enable-elf-shlibs --disable-libuuid --disable-uuidd \
+ --disable-libblkid --enable-verbose-makecmds"
+
+EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
+
+do_configure_prepend () {
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+}
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+ oe_runmake 'DESTDIR=${D}' install-libs
+ # We use blkid from util-linux now so remove from here
+ rm -f ${D}${base_libdir}/libblkid*
+ rm -rf ${D}${includedir}/blkid
+ rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
+ rm -f ${D}${base_sbindir}/blkid
+ rm -f ${D}${base_sbindir}/fsck
+ rm -f ${D}${base_sbindir}/findfs
+
+ # e2initrd_helper and the pkgconfig files belong in libdir
+ if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+ install -d ${D}${libdir}
+ mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
+ mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
+ fi
+
+ oe_multilib_header ext2fs/ext2_types.h
+ install -d ${D}${base_bindir}
+ mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs
+
+ install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/
+
+ # Clean host path (build directory) in compile_et, mk_cmds
+ sed -i -e "s,\(ET_DIR=.*\)${S}/lib/et\(.*\),\1${datadir}/et\2,g" ${D}${bindir}/compile_et
+ sed -i -e "s,\(SS_DIR=.*\)${S}/lib/ss\(.*\),\1${datadir}/ss\2,g" ${D}${bindir}/mk_cmds
+}
+
+# Need to find the right mke2fs.conf file
+e2fsprogs_conf_fixup () {
+ for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev; do
+ create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf
+ done
+}
+
+do_install_append_class-native() {
+ e2fsprogs_conf_fixup
+}
+
+do_install_append_class-nativesdk() {
+ e2fsprogs_conf_fixup
+}
+
+RDEPENDS_e2fsprogs = "e2fsprogs-badblocks"
+RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
+
+PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs"
+PACKAGES =+ "libcomerr libss libe2p libext2fs"
+
+FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
+FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
+FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf"
+FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label"
+FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks"
+FILES_libcomerr = "${base_libdir}/libcom_err.so.*"
+FILES_libss = "${base_libdir}/libss.so.*"
+FILES_libe2p = "${base_libdir}/libe2p.so.*"
+FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*"
+FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so ${bindir}/compile_et ${bindir}/mk_cmds"
+
+ALTERNATIVE_${PN} = "chattr"
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr"
+ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs"
+
+ALTERNATIVE_${PN}-doc = "fsck.8"
+ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
+
+RDEPENDS_${PN}-ptest += "${PN} ${PN}-tune2fs coreutils procps bash"
+
+do_compile_ptest() {
+ oe_runmake -C ${B}/tests
+}
+
+do_install_ptest() {
+ cp -a ${B}/tests ${D}${PTEST_PATH}/test
+ cp -a ${S}/tests/* ${D}${PTEST_PATH}/test
+ sed -e 's!../e2fsck/e2fsck!e2fsck!g' -i ${D}${PTEST_PATH}/test/*/expect*
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_git.bb
deleted file mode 100644
index 9cde8e46b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_git.bb
+++ /dev/null
@@ -1,111 +0,0 @@
-require e2fsprogs.inc
-
-SRC_URI += "file://acinclude.m4 \
- file://remove.ldconfig.call.patch \
- file://quiet-debugfs.patch \
- file://run-ptest \
- file://ptest.patch \
- file://mkdir.patch \
- file://xattr_ordering.patch \
- file://Revert-mke2fs-enable-the-metadata_csum-and-64bit-fea.patch \
-"
-
-SRCREV = "0f26747167cc9d82df849b0aad387bf824f04544"
-PV = "1.42.99+1.43+git${SRCPV}"
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
-
-EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
- --enable-elf-shlibs --disable-libuuid --disable-uuidd \
- --disable-libblkid --enable-verbose-makecmds"
-
-EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fuse] = '--enable-fuse2fs,--disable-fuse2fs,fuse'
-
-do_configure_prepend () {
- cp ${WORKDIR}/acinclude.m4 ${S}/
-}
-
-do_install () {
- oe_runmake 'DESTDIR=${D}' install
- oe_runmake 'DESTDIR=${D}' install-libs
- # We use blkid from util-linux now so remove from here
- rm -f ${D}${base_libdir}/libblkid*
- rm -rf ${D}${includedir}/blkid
- rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
- rm -f ${D}${base_sbindir}/blkid
- rm -f ${D}${base_sbindir}/fsck
- rm -f ${D}${base_sbindir}/findfs
-
- # e2initrd_helper and the pkgconfig files belong in libdir
- if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
- install -d ${D}${libdir}
- mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
- mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
- fi
-
- oe_multilib_header ext2fs/ext2_types.h
- install -d ${D}${base_bindir}
- mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs
-
- install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/
-}
-
-# Need to find the right mke2fs.conf file
-e2fsprogs_conf_fixup () {
- for i in mke2fs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev; do
- create_wrapper ${D}${base_sbindir}/$i MKE2FS_CONFIG=${sysconfdir}/mke2fs.conf
- done
-}
-
-do_install_append_class-target() {
- # Clean host path in compile_et, mk_cmds
- sed -i -e "s,ET_DIR=\"${S}/lib/et\",ET_DIR=\"${datadir}/et\",g" ${D}${bindir}/compile_et
- sed -i -e "s,SS_DIR=\"${S}/lib/ss\",SS_DIR=\"${datadir}/ss\",g" ${D}${bindir}/mk_cmds
-}
-
-do_install_append_class-native() {
- e2fsprogs_conf_fixup
-}
-
-do_install_append_class-nativesdk() {
- e2fsprogs_conf_fixup
-}
-
-RDEPENDS_e2fsprogs = "e2fsprogs-badblocks"
-RRECOMMENDS_e2fsprogs = "e2fsprogs-mke2fs e2fsprogs-e2fsck"
-
-PACKAGES =+ "e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-tune2fs e2fsprogs-badblocks e2fsprogs-resize2fs"
-PACKAGES =+ "libcomerr libss libe2p libext2fs"
-
-FILES_e2fsprogs-resize2fs = "${base_sbindir}/resize2fs*"
-FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
-FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext* ${sysconfdir}/mke2fs.conf"
-FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label"
-FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks"
-FILES_libcomerr = "${base_libdir}/libcom_err.so.*"
-FILES_libss = "${base_libdir}/libss.so.*"
-FILES_libe2p = "${base_libdir}/libe2p.so.*"
-FILES_libext2fs = "${libdir}/e2initrd_helper ${base_libdir}/libext2fs.so.*"
-FILES_${PN}-dev += "${datadir}/*/*.awk ${datadir}/*/*.sed ${base_libdir}/*.so"
-
-ALTERNATIVE_${PN} = "chattr"
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_LINK_NAME[chattr] = "${base_bindir}/chattr"
-ALTERNATIVE_TARGET[chattr] = "${base_bindir}/chattr.e2fsprogs"
-
-ALTERNATIVE_${PN}-doc = "fsck.8"
-ALTERNATIVE_LINK_NAME[fsck.8] = "${mandir}/man8/fsck.8"
-
-RDEPENDS_${PN}-ptest += "${PN} ${PN}-tune2fs coreutils procps bash"
-
-do_compile_ptest() {
- oe_runmake -C ${B}/tests
-}
-
-do_install_ptest() {
- cp -a ${B}/tests ${D}${PTEST_PATH}/test
- cp -a ${S}/tests/* ${D}${PTEST_PATH}/test
- sed -e 's!../e2fsck/e2fsck!e2fsck!g' -i ${D}${PTEST_PATH}/test/*/expect*
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch
index bd634b441..c78f95d69 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/fix_for_gcc-4.7.patch
@@ -2,7 +2,7 @@ Upstream-Status: pending
gcc 4.7 does not like pointer conversion, so have a void * tmp var to work
around following compilation issue.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011/07/07
| md5.c: In function 'md5_finish_ctx':
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
new file mode 100644
index 000000000..b56a754f8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.148/gcc6.patch
@@ -0,0 +1,23 @@
+Fix warnings found with gcc6
+
+| ../../elfutils-0.148/libdw/dwarf_siblingof.c: In function 'dwarf_siblingof':
+| ../../elfutils-0.148/libdw/dwarf_siblingof.c:69:6: error: nonnull argument 'result' compared to NULL [-Werror=nonnull-compare]
+| if (result == NULL)
+| ^
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Inappropriate [ unmaintained ]
+Index: elfutils-0.148/libdw/dwarf_siblingof.c
+===================================================================
+--- elfutils-0.148.orig/libdw/dwarf_siblingof.c
++++ elfutils-0.148/libdw/dwarf_siblingof.c
+@@ -66,9 +66,6 @@ dwarf_siblingof (die, result)
+ if (die == NULL)
+ return -1;
+
+- if (result == NULL)
+- return -1;
+-
+ if (result != die)
+ result->addr = NULL;
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch
deleted file mode 100644
index c8d1c8990..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch
+++ /dev/null
@@ -1,1163 +0,0 @@
-From 4b0fe80b3951f044c1c1b14d1d7f5f0b8ab67507 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 06:35:34 +0000
-Subject: [PATCH] build: Provide alternatives for glibc assumptions helps
- compiling it on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- Makefile.am | 2 +-
- lib/color.c | 2 +-
- lib/crc32_file.c | 4 +++-
- lib/fixedsizehash.h | 4 ++--
- lib/system.h | 11 +++++++++++
- lib/xmalloc.c | 2 +-
- libasm/asm_end.c | 2 +-
- libasm/asm_newscn.c | 2 +-
- libcpu/i386_gendis.c | 2 +-
- libcpu/i386_lex.c | 2 +-
- libcpu/i386_parse.c | 2 +-
- libdw/Makefile.am | 2 +-
- libdw/libdw_alloc.c | 3 ++-
- libdwfl/Makefile.am | 2 ++
- libdwfl/dwfl_build_id_find_elf.c | 3 ++-
- libdwfl/dwfl_error.c | 4 +++-
- libdwfl/dwfl_module_getdwarf.c | 1 +
- libdwfl/find-debuginfo.c | 2 +-
- libdwfl/libdwfl_crc32_file.c | 10 ++++++++++
- libdwfl/linux-kernel-modules.c | 1 +
- libebl/eblopenbackend.c | 2 +-
- libebl/eblwstrtab.c | 2 +-
- libelf/elf.h | 9 ++++++---
- libelf/libelf.h | 1 +
- libelf/libelfP.h | 1 +
- src/addr2line.c | 2 +-
- src/ar.c | 2 +-
- src/arlib.c | 2 +-
- src/arlib2.c | 2 +-
- src/elfcmp.c | 2 +-
- src/elflint.c | 2 +-
- src/findtextrel.c | 2 +-
- src/i386_ld.c | 2 +-
- src/ld.c | 2 +-
- src/ldgeneric.c | 2 +-
- src/ldlex.c | 2 +-
- src/ldscript.c | 2 +-
- src/nm.c | 2 +-
- src/objdump.c | 2 +-
- src/ranlib.c | 2 +-
- src/readelf.c | 2 +-
- src/size.c | 2 +-
- src/stack.c | 2 +-
- src/strings.c | 2 +-
- src/strip.c | 2 +-
- src/unstrip.c | 2 +-
- tests/addrscopes.c | 2 +-
- tests/allregs.c | 2 +-
- tests/backtrace-data.c | 2 +-
- tests/backtrace-dwarf.c | 2 +-
- tests/backtrace.c | 2 +-
- tests/buildid.c | 2 +-
- tests/debugaltlink.c | 2 +-
- tests/debuglink.c | 2 +-
- tests/deleted.c | 2 +-
- tests/dwfl-addr-sect.c | 2 +-
- tests/dwfl-bug-addr-overflow.c | 2 +-
- tests/dwfl-bug-fd-leak.c | 2 +-
- tests/dwfl-bug-getmodules.c | 2 +-
- tests/dwfl-report-elf-align.c | 2 +-
- tests/dwfllines.c | 2 +-
- tests/dwflmodtest.c | 2 +-
- tests/dwflsyms.c | 2 +-
- tests/early-offscn.c | 2 +-
- tests/ecp.c | 2 +-
- tests/find-prologues.c | 2 +-
- tests/funcretval.c | 2 +-
- tests/funcscopes.c | 2 +-
- tests/getsrc_die.c | 2 +-
- tests/line2addr.c | 2 +-
- tests/low_high_pc.c | 2 +-
- tests/md5-sha1-test.c | 2 +-
- tests/rdwrmmap.c | 2 +-
- tests/saridx.c | 2 +-
- tests/sectiondump.c | 2 +-
- tests/varlocs.c | 2 +-
- tests/vdsosyms.c | 2 +-
- 77 files changed, 109 insertions(+), 73 deletions(-)
-
-Index: elfutils-0.164/Makefile.am
-===================================================================
---- elfutils-0.164.orig/Makefile.am
-+++ elfutils-0.164/Makefile.am
-@@ -24,7 +24,7 @@ pkginclude_HEADERS = version.h
-
- # Add doc back when we have some real content.
- SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
-- backends src po tests
-+ backends po tests
-
- EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
- COPYING COPYING-GPLV2 COPYING-LGPLV3
-Index: elfutils-0.164/lib/color.c
-===================================================================
---- elfutils-0.164.orig/lib/color.c
-+++ elfutils-0.164/lib/color.c
-@@ -32,7 +32,7 @@
- #endif
-
- #include <argp.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stdlib.h>
- #include <string.h>
-Index: elfutils-0.164/lib/crc32_file.c
-===================================================================
---- elfutils-0.164.orig/lib/crc32_file.c
-+++ elfutils-0.164/lib/crc32_file.c
-@@ -30,12 +30,14 @@
- # include <config.h>
- #endif
-
--#include "system.h"
- #include <errno.h>
- #include <unistd.h>
-+#include <stdint.h>
- #include <sys/stat.h>
- #include <sys/mman.h>
-
-+#include "system.h"
-+
- int
- crc32_file (int fd, uint32_t *resp)
- {
-Index: elfutils-0.164/lib/fixedsizehash.h
-===================================================================
---- elfutils-0.164.orig/lib/fixedsizehash.h
-+++ elfutils-0.164/lib/fixedsizehash.h
-@@ -30,12 +30,12 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <string.h>
--#include <sys/cdefs.h>
- #include <sys/param.h>
-
- #include <system.h>
-
--#define CONCAT(t1,t2) __CONCAT (t1,t2)
-+#define CONCAT1(x,y) x##y
-+#define CONCAT(x,y) CONCAT1(x,y)
-
- /* Before including this file the following macros must be defined:
-
-Index: elfutils-0.164/lib/system.h
-===================================================================
---- elfutils-0.164.orig/lib/system.h
-+++ elfutils-0.164/lib/system.h
-@@ -49,6 +49,16 @@
- #else
- # error "Unknown byte order"
- #endif
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
-+#define error(status, errno, ...) err(status, __VA_ARGS__)
-
- extern void *xmalloc (size_t) __attribute__ ((__malloc__));
- extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__));
-Index: elfutils-0.164/lib/xmalloc.c
-===================================================================
---- elfutils-0.164.orig/lib/xmalloc.c
-+++ elfutils-0.164/lib/xmalloc.c
-@@ -30,7 +30,7 @@
- # include <config.h>
- #endif
-
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stddef.h>
- #include <stdlib.h>
-Index: elfutils-0.164/libasm/asm_end.c
-===================================================================
---- elfutils-0.164.orig/libasm/asm_end.c
-+++ elfutils-0.164/libasm/asm_end.c
-@@ -32,7 +32,7 @@
- #endif
-
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stdio.h>
- #include <stdlib.h>
-Index: elfutils-0.164/libasm/asm_newscn.c
-===================================================================
---- elfutils-0.164.orig/libasm/asm_newscn.c
-+++ elfutils-0.164/libasm/asm_newscn.c
-@@ -32,7 +32,7 @@
- #endif
-
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stdlib.h>
- #include <string.h>
-Index: elfutils-0.164/libcpu/i386_gendis.c
-===================================================================
---- elfutils-0.164.orig/libcpu/i386_gendis.c
-+++ elfutils-0.164/libcpu/i386_gendis.c
-@@ -31,7 +31,7 @@
- # include <config.h>
- #endif
-
--#include <error.h>
-+#include <err.h>
- #include <errno.h>
- #include <stdio.h>
- #include <stdlib.h>
-Index: elfutils-0.164/libcpu/i386_lex.c
-===================================================================
---- elfutils-0.164.orig/libcpu/i386_lex.c
-+++ elfutils-0.164/libcpu/i386_lex.c
-@@ -571,7 +571,7 @@ char *i386_text;
- #endif
-
- #include <ctype.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
-
- #include <system.h>
-Index: elfutils-0.164/libcpu/i386_parse.c
-===================================================================
---- elfutils-0.164.orig/libcpu/i386_parse.c
-+++ elfutils-0.164/libcpu/i386_parse.c
-@@ -107,7 +107,7 @@
- #include <assert.h>
- #include <ctype.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <inttypes.h>
- #include <libintl.h>
- #include <math.h>
-Index: elfutils-0.164/libdw/Makefile.am
-===================================================================
---- elfutils-0.164.orig/libdw/Makefile.am
-+++ elfutils-0.164/libdw/Makefile.am
-@@ -117,7 +117,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l
- -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
- -Wl,--version-script,$<,--no-undefined \
- -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
-- -ldl $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS)
-+ -ldl $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS) -lfts -largp
- @$(textrel_check)
- $(AM_V_at)ln -fs $@ $@.$(VERSION)
-
-Index: elfutils-0.164/libdw/libdw_alloc.c
-===================================================================
---- elfutils-0.164.orig/libdw/libdw_alloc.c
-+++ elfutils-0.164/libdw/libdw_alloc.c
-@@ -31,11 +31,12 @@
- # include <config.h>
- #endif
-
--#include <error.h>
-+#include <err.h>
- #include <errno.h>
- #include <stdlib.h>
- #include <sys/param.h>
- #include "libdwP.h"
-+#include "system.h"
-
-
- void *
-Index: elfutils-0.164/libdwfl/Makefile.am
-===================================================================
---- elfutils-0.164.orig/libdwfl/Makefile.am
-+++ elfutils-0.164/libdwfl/Makefile.am
-@@ -86,6 +86,8 @@ libelf = ../libelf/libelf.so
- libebl = ../libebl/libebl.a
- libeu = ../lib/libeu.a
-
-+LDADD = -lfts
-+
- libdwfl_pic_a_SOURCES =
- am_libdwfl_pic_a_OBJECTS = $(libdwfl_a_SOURCES:.c=.os)
-
-Index: elfutils-0.164/libdwfl/dwfl_build_id_find_elf.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/dwfl_build_id_find_elf.c
-+++ elfutils-0.164/libdwfl/dwfl_build_id_find_elf.c
-@@ -27,6 +27,7 @@
- not, see <http://www.gnu.org/licenses/>. */
-
- #include "libdwflP.h"
-+#include "system.h"
- #include <inttypes.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -94,7 +95,7 @@ __libdwfl_open_by_build_id (Dwfl_Module
- {
- if (*file_name != NULL)
- free (*file_name);
-- *file_name = canonicalize_file_name (name);
-+ *file_name = realpath (name, NULL);
- if (*file_name == NULL)
- {
- *file_name = name;
-Index: elfutils-0.164/libdwfl/dwfl_error.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/dwfl_error.c
-+++ elfutils-0.164/libdwfl/dwfl_error.c
-@@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error)
- const char *
- dwfl_errmsg (int error)
- {
-+ static __thread char s[64] = "";
- if (error == 0 || error == -1)
- {
- int last_error = global_error;
-@@ -154,7 +155,8 @@ dwfl_errmsg (int error)
- switch (error &~ 0xffff)
- {
- case OTHER_ERROR (ERRNO):
-- return strerror_r (error & 0xffff, "bad", 0);
-+ strerror_r (error & 0xffff, s, sizeof(s));
-+ return s;
- case OTHER_ERROR (LIBELF):
- return elf_errmsg (error & 0xffff);
- case OTHER_ERROR (LIBDW):
-Index: elfutils-0.164/libdwfl/dwfl_module_getdwarf.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/dwfl_module_getdwarf.c
-+++ elfutils-0.164/libdwfl/dwfl_module_getdwarf.c
-@@ -31,6 +31,7 @@
- #include <fcntl.h>
- #include <string.h>
- #include <unistd.h>
-+#include "system.h"
- #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */
- #include "../libelf/libelfP.h"
-
-Index: elfutils-0.164/libdwfl/find-debuginfo.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/find-debuginfo.c
-+++ elfutils-0.164/libdwfl/find-debuginfo.c
-@@ -372,7 +372,7 @@ dwfl_standard_find_debuginfo (Dwfl_Modul
- /* If FILE_NAME is a symlink, the debug file might be associated
- with the symlink target name instead. */
-
-- char *canon = canonicalize_file_name (file_name);
-+ char *canon = realpath (file_name, NULL);
- if (canon != NULL && strcmp (file_name, canon))
- fd = find_debuginfo_in_path (mod, canon,
- debuglink_file, debuglink_crc,
-Index: elfutils-0.164/libdwfl/libdwfl_crc32_file.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/libdwfl_crc32_file.c
-+++ elfutils-0.164/libdwfl/libdwfl_crc32_file.c
-@@ -31,6 +31,16 @@
-
- #define crc32_file attribute_hidden __libdwfl_crc32_file
- #define crc32 __libdwfl_crc32
-+
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
- #define LIB_SYSTEM_H 1
- #include <libdwflP.h>
- #include "../lib/crc32_file.c"
-Index: elfutils-0.164/libdwfl/linux-kernel-modules.c
-===================================================================
---- elfutils-0.164.orig/libdwfl/linux-kernel-modules.c
-+++ elfutils-0.164/libdwfl/linux-kernel-modules.c
-@@ -34,6 +34,7 @@
- #include <config.h>
-
- #include "libdwflP.h"
-+#include "system.h"
- #include <inttypes.h>
- #include <errno.h>
- #include <stdio.h>
-Index: elfutils-0.164/libebl/eblopenbackend.c
-===================================================================
---- elfutils-0.164.orig/libebl/eblopenbackend.c
-+++ elfutils-0.164/libebl/eblopenbackend.c
-@@ -32,7 +32,7 @@
-
- #include <assert.h>
- #include <dlfcn.h>
--#include <error.h>
-+#include <err.h>
- #include <libelfP.h>
- #include <dwarf.h>
- #include <stdlib.h>
-Index: elfutils-0.164/libebl/eblwstrtab.c
-===================================================================
---- elfutils-0.164.orig/libebl/eblwstrtab.c
-+++ elfutils-0.164/libebl/eblwstrtab.c
-@@ -305,7 +305,7 @@ copystrings (struct Ebl_WStrent *nodep,
-
- /* Process the current node. */
- nodep->offset = *offsetp;
-- *freep = wmempcpy (*freep, nodep->string, nodep->len);
-+ *freep = wmemcpy (*freep, nodep->string, nodep->len) + nodep->len;
- *offsetp += nodep->len * sizeof (wchar_t);
-
- for (subs = nodep->next; subs != NULL; subs = subs->next)
-Index: elfutils-0.164/libelf/elf.h
-===================================================================
---- elfutils-0.164.orig/libelf/elf.h
-+++ elfutils-0.164/libelf/elf.h
-@@ -21,7 +21,9 @@
-
- #include <features.h>
-
--__BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
- /* Standard ELF types. */
-
-@@ -3552,7 +3554,8 @@ enum
-
- #define R_TILEGX_NUM 130
-
--
--__END_DECLS
-+#ifdef __cplusplus
-+}
-+#endif
-
- #endif /* elf.h */
-Index: elfutils-0.164/libelf/libelf.h
-===================================================================
---- elfutils-0.164.orig/libelf/libelf.h
-+++ elfutils-0.164/libelf/libelf.h
-@@ -29,6 +29,7 @@
- #ifndef _LIBELF_H
- #define _LIBELF_H 1
-
-+#include <fcntl.h>
- #include <stdint.h>
- #include <sys/types.h>
-
-Index: elfutils-0.164/libelf/libelfP.h
-===================================================================
---- elfutils-0.164.orig/libelf/libelfP.h
-+++ elfutils-0.164/libelf/libelfP.h
-@@ -36,6 +36,7 @@
-
- #include <ar.h>
- #include <gelf.h>
-+#include <libelf.h>
-
- #include <errno.h>
- #include <stdint.h>
-Index: elfutils-0.164/src/addr2line.c
-===================================================================
---- elfutils-0.164.orig/src/addr2line.c
-+++ elfutils-0.164/src/addr2line.c
-@@ -23,7 +23,7 @@
- #include <argp.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <inttypes.h>
- #include <libdwfl.h>
-Index: elfutils-0.164/src/ar.c
-===================================================================
---- elfutils-0.164.orig/src/ar.c
-+++ elfutils-0.164/src/ar.c
-@@ -22,7 +22,7 @@
-
- #include <argp.h>
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <libintl.h>
-Index: elfutils-0.164/src/arlib.c
-===================================================================
---- elfutils-0.164.orig/src/arlib.c
-+++ elfutils-0.164/src/arlib.c
-@@ -21,7 +21,7 @@
- #endif
-
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <gelf.h>
- #include <libintl.h>
- #include <stdio.h>
-Index: elfutils-0.164/src/arlib2.c
-===================================================================
---- elfutils-0.164.orig/src/arlib2.c
-+++ elfutils-0.164/src/arlib2.c
-@@ -20,7 +20,7 @@
- # include <config.h>
- #endif
-
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <limits.h>
- #include <string.h>
-Index: elfutils-0.164/src/elfcmp.c
-===================================================================
---- elfutils-0.164.orig/src/elfcmp.c
-+++ elfutils-0.164/src/elfcmp.c
-@@ -23,7 +23,7 @@
- #include <argp.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <locale.h>
- #include <libintl.h>
-Index: elfutils-0.164/src/elflint.c
-===================================================================
---- elfutils-0.164.orig/src/elflint.c
-+++ elfutils-0.164/src/elflint.c
-@@ -24,7 +24,7 @@
- #include <assert.h>
- #include <byteswap.h>
- #include <endian.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/src/findtextrel.c
-===================================================================
---- elfutils-0.164.orig/src/findtextrel.c
-+++ elfutils-0.164/src/findtextrel.c
-@@ -23,7 +23,7 @@
- #include <argp.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <libdw.h>
-Index: elfutils-0.164/src/i386_ld.c
-===================================================================
---- elfutils-0.164.orig/src/i386_ld.c
-+++ elfutils-0.164/src/i386_ld.c
-@@ -20,7 +20,7 @@
- #endif
-
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stdlib.h>
- #include <string.h>
-Index: elfutils-0.164/src/ld.c
-===================================================================
---- elfutils-0.164.orig/src/ld.c
-+++ elfutils-0.164/src/ld.c
-@@ -21,7 +21,7 @@
-
- #include <argp.h>
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <libelf.h>
- #include <libintl.h>
-Index: elfutils-0.164/src/ldgeneric.c
-===================================================================
---- elfutils-0.164.orig/src/ldgeneric.c
-+++ elfutils-0.164/src/ldgeneric.c
-@@ -23,7 +23,7 @@
- #include <ctype.h>
- #include <dlfcn.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <fnmatch.h>
- #include <gelf.h>
-Index: elfutils-0.164/src/ldlex.c
-===================================================================
---- elfutils-0.164.orig/src/ldlex.c
-+++ elfutils-0.164/src/ldlex.c
-@@ -1099,7 +1099,7 @@ char *ldtext;
- #include <assert.h>
- #include <ctype.h>
- #include <elf.h>
--#include <error.h>
-+#include <err.h>
- #include <inttypes.h>
- #include <libintl.h>
- #include <stdbool.h>
-Index: elfutils-0.164/src/ldscript.c
-===================================================================
---- elfutils-0.164.orig/src/ldscript.c
-+++ elfutils-0.164/src/ldscript.c
-@@ -95,7 +95,7 @@
- #endif
-
- #include <assert.h>
--#include <error.h>
-+#include <err.h>
- #include <libintl.h>
- #include <stdbool.h>
- #include <stdint.h>
-Index: elfutils-0.164/src/nm.c
-===================================================================
---- elfutils-0.164.orig/src/nm.c
-+++ elfutils-0.164/src/nm.c
-@@ -26,7 +26,7 @@
- #include <ctype.h>
- #include <dwarf.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/src/objdump.c
-===================================================================
---- elfutils-0.164.orig/src/objdump.c
-+++ elfutils-0.164/src/objdump.c
-@@ -21,7 +21,7 @@
- #endif
-
- #include <argp.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <inttypes.h>
- #include <libintl.h>
-Index: elfutils-0.164/src/ranlib.c
-===================================================================
---- elfutils-0.164.orig/src/ranlib.c
-+++ elfutils-0.164/src/ranlib.c
-@@ -24,7 +24,7 @@
- #include <argp.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <libintl.h>
-Index: elfutils-0.164/src/readelf.c
-===================================================================
---- elfutils-0.164.orig/src/readelf.c
-+++ elfutils-0.164/src/readelf.c
-@@ -25,7 +25,7 @@
- #include <ctype.h>
- #include <dwarf.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/src/size.c
-===================================================================
---- elfutils-0.164.orig/src/size.c
-+++ elfutils-0.164/src/size.c
-@@ -21,7 +21,7 @@
- #endif
-
- #include <argp.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/src/stack.c
-===================================================================
---- elfutils-0.164.orig/src/stack.c
-+++ elfutils-0.164/src/stack.c
-@@ -18,7 +18,7 @@
- #include <config.h>
- #include <assert.h>
- #include <argp.h>
--#include <error.h>
-+#include <err.h>
- #include <stdlib.h>
- #include <inttypes.h>
- #include <stdio.h>
-Index: elfutils-0.164/src/strings.c
-===================================================================
---- elfutils-0.164.orig/src/strings.c
-+++ elfutils-0.164/src/strings.c
-@@ -25,7 +25,7 @@
- #include <ctype.h>
- #include <endian.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/src/strip.c
-===================================================================
---- elfutils-0.164.orig/src/strip.c
-+++ elfutils-0.164/src/strip.c
-@@ -24,7 +24,7 @@
- #include <assert.h>
- #include <byteswap.h>
- #include <endian.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <libelf.h>
-Index: elfutils-0.164/src/unstrip.c
-===================================================================
---- elfutils-0.164.orig/src/unstrip.c
-+++ elfutils-0.164/src/unstrip.c
-@@ -31,7 +31,7 @@
- #include <argp.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <fnmatch.h>
- #include <libintl.h>
-Index: elfutils-0.164/tests/addrscopes.c
-===================================================================
---- elfutils-0.164.orig/tests/addrscopes.c
-+++ elfutils-0.164/tests/addrscopes.c
-@@ -25,7 +25,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
-
-
-Index: elfutils-0.164/tests/allregs.c
-===================================================================
---- elfutils-0.164.orig/tests/allregs.c
-+++ elfutils-0.164/tests/allregs.c
-@@ -21,7 +21,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <error.h>
-+#include <err.h>
- #include <locale.h>
- #include <argp.h>
- #include <assert.h>
-Index: elfutils-0.164/tests/backtrace-data.c
-===================================================================
---- elfutils-0.164.orig/tests/backtrace-data.c
-+++ elfutils-0.164/tests/backtrace-data.c
-@@ -27,7 +27,7 @@
- #include <dirent.h>
- #include <stdlib.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <unistd.h>
- #include <dwarf.h>
- #if defined(__x86_64__) && defined(__linux__)
-Index: elfutils-0.164/tests/backtrace-dwarf.c
-===================================================================
---- elfutils-0.164.orig/tests/backtrace-dwarf.c
-+++ elfutils-0.164/tests/backtrace-dwarf.c
-@@ -22,7 +22,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <unistd.h>
- #include <sys/ptrace.h>
- #include <sys/types.h>
-Index: elfutils-0.164/tests/backtrace.c
-===================================================================
---- elfutils-0.164.orig/tests/backtrace.c
-+++ elfutils-0.164/tests/backtrace.c
-@@ -24,7 +24,7 @@
- #include <dirent.h>
- #include <stdlib.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <unistd.h>
- #include <dwarf.h>
- #ifdef __linux__
-Index: elfutils-0.164/tests/buildid.c
-===================================================================
---- elfutils-0.164.orig/tests/buildid.c
-+++ elfutils-0.164/tests/buildid.c
-@@ -23,7 +23,7 @@
- #include ELFUTILS_HEADER(elf)
- #include ELFUTILS_HEADER(dwelf)
- #include <stdio.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/types.h>
-Index: elfutils-0.164/tests/debugaltlink.c
-===================================================================
---- elfutils-0.164.orig/tests/debugaltlink.c
-+++ elfutils-0.164/tests/debugaltlink.c
-@@ -23,7 +23,7 @@
- #include ELFUTILS_HEADER(dw)
- #include ELFUTILS_HEADER(dwelf)
- #include <stdio.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/types.h>
-Index: elfutils-0.164/tests/debuglink.c
-===================================================================
---- elfutils-0.164.orig/tests/debuglink.c
-+++ elfutils-0.164/tests/debuglink.c
-@@ -21,7 +21,7 @@
- #include <errno.h>
- #include ELFUTILS_HEADER(dwelf)
- #include <stdio.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <stdlib.h>
- #include <sys/types.h>
-Index: elfutils-0.164/tests/deleted.c
-===================================================================
---- elfutils-0.164.orig/tests/deleted.c
-+++ elfutils-0.164/tests/deleted.c
-@@ -21,7 +21,7 @@
- #include <unistd.h>
- #include <assert.h>
- #include <stdio.h>
--#include <error.h>
-+#include <err.h>
- #include <errno.h>
- #ifdef __linux__
- #include <sys/prctl.h>
-Index: elfutils-0.164/tests/dwfl-addr-sect.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfl-addr-sect.c
-+++ elfutils-0.164/tests/dwfl-addr-sect.c
-@@ -23,7 +23,7 @@
- #include <stdio_ext.h>
- #include <stdlib.h>
- #include <string.h>
--#include <error.h>
-+#include <err.h>
- #include <locale.h>
- #include <argp.h>
- #include ELFUTILS_HEADER(dwfl)
-Index: elfutils-0.164/tests/dwfl-bug-addr-overflow.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfl-bug-addr-overflow.c
-+++ elfutils-0.164/tests/dwfl-bug-addr-overflow.c
-@@ -20,7 +20,7 @@
- #include <inttypes.h>
- #include <stdio.h>
- #include <stdio_ext.h>
--#include <error.h>
-+#include <err.h>
- #include <locale.h>
- #include ELFUTILS_HEADER(dwfl)
-
-Index: elfutils-0.164/tests/dwfl-bug-fd-leak.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfl-bug-fd-leak.c
-+++ elfutils-0.164/tests/dwfl-bug-fd-leak.c
-@@ -24,7 +24,7 @@
- #include <dirent.h>
- #include <stdlib.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <unistd.h>
- #include <dwarf.h>
- #include <sys/resource.h>
-Index: elfutils-0.164/tests/dwfl-bug-getmodules.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfl-bug-getmodules.c
-+++ elfutils-0.164/tests/dwfl-bug-getmodules.c
-@@ -18,7 +18,7 @@
- #include <config.h>
- #include ELFUTILS_HEADER(dwfl)
-
--#include <error.h>
-+#include <err.h>
-
- static const Dwfl_Callbacks callbacks =
- {
-Index: elfutils-0.164/tests/dwfl-report-elf-align.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfl-report-elf-align.c
-+++ elfutils-0.164/tests/dwfl-report-elf-align.c
-@@ -20,7 +20,7 @@
- #include <inttypes.h>
- #include <stdio.h>
- #include <stdio_ext.h>
--#include <error.h>
-+#include <err.h>
- #include <locale.h>
- #include <string.h>
- #include <stdlib.h>
-Index: elfutils-0.164/tests/dwfllines.c
-===================================================================
---- elfutils-0.164.orig/tests/dwfllines.c
-+++ elfutils-0.164/tests/dwfllines.c
-@@ -27,7 +27,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <error.h>
-+#include <err.h>
-
- int
- main (int argc, char *argv[])
-Index: elfutils-0.164/tests/dwflmodtest.c
-===================================================================
---- elfutils-0.164.orig/tests/dwflmodtest.c
-+++ elfutils-0.164/tests/dwflmodtest.c
-@@ -23,7 +23,7 @@
- #include <stdio_ext.h>
- #include <stdlib.h>
- #include <string.h>
--#include <error.h>
-+#include <err.h>
- #include <locale.h>
- #include <argp.h>
- #include ELFUTILS_HEADER(dwfl)
-Index: elfutils-0.164/tests/dwflsyms.c
-===================================================================
---- elfutils-0.164.orig/tests/dwflsyms.c
-+++ elfutils-0.164/tests/dwflsyms.c
-@@ -25,7 +25,7 @@
- #include <stdio.h>
- #include <stdio_ext.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
-
- static const char *
-Index: elfutils-0.164/tests/early-offscn.c
-===================================================================
---- elfutils-0.164.orig/tests/early-offscn.c
-+++ elfutils-0.164/tests/early-offscn.c
-@@ -19,7 +19,7 @@
- #endif
-
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <stdio.h>
-Index: elfutils-0.164/tests/ecp.c
-===================================================================
---- elfutils-0.164.orig/tests/ecp.c
-+++ elfutils-0.164/tests/ecp.c
-@@ -20,7 +20,7 @@
- #endif
-
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <stdlib.h>
-Index: elfutils-0.164/tests/find-prologues.c
-===================================================================
---- elfutils-0.164.orig/tests/find-prologues.c
-+++ elfutils-0.164/tests/find-prologues.c
-@@ -25,7 +25,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <fnmatch.h>
-
-Index: elfutils-0.164/tests/funcretval.c
-===================================================================
---- elfutils-0.164.orig/tests/funcretval.c
-+++ elfutils-0.164/tests/funcretval.c
-@@ -25,7 +25,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <fnmatch.h>
-
-Index: elfutils-0.164/tests/funcscopes.c
-===================================================================
---- elfutils-0.164.orig/tests/funcscopes.c
-+++ elfutils-0.164/tests/funcscopes.c
-@@ -25,7 +25,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <fnmatch.h>
-
-Index: elfutils-0.164/tests/getsrc_die.c
-===================================================================
---- elfutils-0.164.orig/tests/getsrc_die.c
-+++ elfutils-0.164/tests/getsrc_die.c
-@@ -19,7 +19,7 @@
- #endif
-
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <inttypes.h>
- #include <libelf.h>
-Index: elfutils-0.164/tests/line2addr.c
-===================================================================
---- elfutils-0.164.orig/tests/line2addr.c
-+++ elfutils-0.164/tests/line2addr.c
-@@ -26,7 +26,7 @@
- #include <locale.h>
- #include <stdlib.h>
- #include <string.h>
--#include <error.h>
-+#include <err.h>
-
-
- static void
-Index: elfutils-0.164/tests/low_high_pc.c
-===================================================================
---- elfutils-0.164.orig/tests/low_high_pc.c
-+++ elfutils-0.164/tests/low_high_pc.c
-@@ -25,7 +25,7 @@
- #include <stdio_ext.h>
- #include <locale.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <fnmatch.h>
-
-Index: elfutils-0.164/tests/md5-sha1-test.c
-===================================================================
---- elfutils-0.164.orig/tests/md5-sha1-test.c
-+++ elfutils-0.164/tests/md5-sha1-test.c
-@@ -19,7 +19,7 @@
- #endif
-
- #include <string.h>
--#include <error.h>
-+#include <err.h>
-
- #include "md5.h"
- #include "sha1.h"
-Index: elfutils-0.164/tests/rdwrmmap.c
-===================================================================
---- elfutils-0.164.orig/tests/rdwrmmap.c
-+++ elfutils-0.164/tests/rdwrmmap.c
-@@ -19,7 +19,7 @@
- #endif
-
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <stdio.h>
- #include <fcntl.h>
- #include <unistd.h>
-Index: elfutils-0.164/tests/saridx.c
-===================================================================
---- elfutils-0.164.orig/tests/saridx.c
-+++ elfutils-0.164/tests/saridx.c
-@@ -17,7 +17,7 @@
-
- #include <config.h>
-
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <stdio.h>
-Index: elfutils-0.164/tests/sectiondump.c
-===================================================================
---- elfutils-0.164.orig/tests/sectiondump.c
-+++ elfutils-0.164/tests/sectiondump.c
-@@ -18,7 +18,7 @@
- #include <config.h>
-
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <fcntl.h>
- #include <gelf.h>
- #include <inttypes.h>
-Index: elfutils-0.164/tests/varlocs.c
-===================================================================
---- elfutils-0.164.orig/tests/varlocs.c
-+++ elfutils-0.164/tests/varlocs.c
-@@ -25,7 +25,7 @@
- #include <dwarf.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <error.h>
-+#include <err.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-Index: elfutils-0.164/tests/vdsosyms.c
-===================================================================
---- elfutils-0.164.orig/tests/vdsosyms.c
-+++ elfutils-0.164/tests/vdsosyms.c
-@@ -18,7 +18,7 @@
- #include <config.h>
- #include <assert.h>
- #include <errno.h>
--#include <error.h>
-+#include <err.h>
- #include <inttypes.h>
- #include <stdio.h>
- #include <string.h>
-Index: elfutils-0.164/libelf/elf_getarsym.c
-===================================================================
---- elfutils-0.164.orig/libelf/elf_getarsym.c
-+++ elfutils-0.164/libelf/elf_getarsym.c
-@@ -302,7 +302,7 @@ elf_getarsym (Elf *elf, size_t *ptr)
- arsym[cnt].as_off = (*u32)[cnt];
-
- arsym[cnt].as_hash = _dl_elf_hash (str_data);
-- str_data = rawmemchr (str_data, '\0') + 1;
-+ str_data = memchr (str_data, '\0', SIZE_MAX) + 1;
- }
-
- /* At the end a special entry. */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch
deleted file mode 100644
index 966b70fcc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/uclibc-support.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 3daec2dd11a04955f95e8f65a48820103d84dbec Mon Sep 17 00:00:00 2001
-From: Junling Zheng <zhengjunling@huawei.com>
-Date: Thu, 9 Apr 2015 12:12:49 +0000
-Subject: [PATCH] uclibc support for elfutils 0.161
-
-on uclibc systems libintl and libuargp are separate from libc.
-so they need to be specified on commandline when we use proxy-libintl
-then libintl is a static archive so it should be listed last since
-elfutils does not respect disable-nls we need to link in libintl
-
-We add a new option --enable-uclibc which will be used to control
-the uclibc specific configurations during build.
-
-Upstream-Status: Inappropriate [uclibc specific]
-
-Signed-off-by: Khem Raj <raj.khem>
-Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
-[Junling Zheng:
- - adjust context
-]
----
- configure.ac | 8 ++++++++
- libcpu/Makefile.am | 4 ++++
- libdw/Makefile.am | 7 ++++++-
- libelf/Makefile.am | 5 +++++
- 4 files changed, 23 insertions(+), 1 deletion(-)
-
-Index: elfutils-0.164/configure.ac
-===================================================================
---- elfutils-0.164.orig/configure.ac
-+++ elfutils-0.164/configure.ac
-@@ -66,6 +66,14 @@ AS_IF([test "$use_locks" = yes],
-
- AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
-
-+AC_ARG_ENABLE([uclibc],
-+AS_HELP_STRING([--enable-uclibc], [Use uclibc for system libraries]),
-+use_uclibc=yes, use_uclibc=no)
-+AM_CONDITIONAL(USE_UCLIBC, test "$use_uclibc" = yes)
-+AS_IF([test "$use_uclibc" = yes], [AC_DEFINE(USE_UCLIBC)])
-+
-+AH_TEMPLATE([USE_UCLIBC], [Defined if uclibc libraries are used.])
-+
- AC_PROG_CC
- AC_PROG_RANLIB
- AC_PROG_YACC
-@@ -291,18 +299,13 @@ AC_LINK_IFELSE(
- )
-
- dnl If our libc doesn't provide argp, then test for libargp
--if test "$libc_has_argp" = "false" ; then
-- AC_MSG_WARN("libc does not have argp")
-- AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
--
-- if test "$have_argp" = "false"; then
-- AC_MSG_ERROR("no libargp found")
-- else
-- argp_LDADD="-largp"
-- fi
--else
-- argp_LDADD=""
--fi
-+AS_IF([test "x$libc_has_argp" = "xfalse"],
-+ [AC_MSG_WARN("libc does not have argp")
-+ AC_CHECK_LIB([argp], [argp_parse], [have_argp="true" argp_LDADD="-largp"], [have_argp="false"])], [argp_LDADD=""])
-+
-+AS_IF([test "x$libc_has_argp" = "xfalse" -a "x$have_argp" = "xfalse"],
-+ AC_CHECK_LIB([uargp], [argp_parse], [have_uargp="true" argp_LDADD="-luargp"], [have_uargp="false"])], [argp_LDADD=""])
-+
- AC_SUBST([argp_LDADD])
-
- dnl The directories with content.
-Index: elfutils-0.164/libcpu/Makefile.am
-===================================================================
---- elfutils-0.164.orig/libcpu/Makefile.am
-+++ elfutils-0.164/libcpu/Makefile.am
-@@ -80,6 +80,10 @@ i386_parse_CFLAGS = -DNMNES="`wc -l < i3
- i386_lex.o: i386_parse.h
- i386_gendis_LDADD = $(libeu) -lm
-
-+if USE_UCLIBC
-+i386_gendis_LDADD += -lintl
-+endif
-+
- i386_parse.h: i386_parse.c ;
-
- EXTRA_DIST = defs/i386
-Index: elfutils-0.164/libdw/Makefile.am
-===================================================================
---- elfutils-0.164.orig/libdw/Makefile.am
-+++ elfutils-0.164/libdw/Makefile.am
-@@ -102,6 +102,11 @@ endif
- libdw_pic_a_SOURCES =
- am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
-
-+libdw_so_LDLIBS =
-+if USE_UCLIBC
-+libdw_so_LDLIBS += -lintl
-+endif
-+
- libdw_so_SOURCES =
- libdw.so$(EXEEXT): $(srcdir)/libdw.map libdw_pic.a ../libdwelf/libdwelf_pic.a \
- ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \
-@@ -112,7 +117,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l
- -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
- -Wl,--version-script,$<,--no-undefined \
- -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
-- -ldl $(argp_LDADD) $(zip_LIBS)
-+ -ldl $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS)
- @$(textrel_check)
- $(AM_V_at)ln -fs $@ $@.$(VERSION)
-
-Index: elfutils-0.164/libelf/Makefile.am
-===================================================================
---- elfutils-0.164.orig/libelf/Makefile.am
-+++ elfutils-0.164/libelf/Makefile.am
-@@ -93,7 +93,12 @@ libelf_a_SOURCES = elf_version.c elf_has
- libelf_pic_a_SOURCES =
- am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
-
-+
- libelf_so_LDLIBS =
-+if USE_UCLIBC
-+libelf_so_LDLIBS += -lintl
-+endif
-+
- if USE_LOCKS
- libelf_so_LDLIBS += -lpthread
- endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-Ignore-differences-between-mips-machine-identifiers.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Ignore-differences-between-mips-machine-identifiers.patch
index 3f110f98f..3f110f98f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-Ignore-differences-between-mips-machine-identifiers.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-Ignore-differences-between-mips-machine-identifiers.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch
new file mode 100644
index 000000000..38b31f6a8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch
@@ -0,0 +1,1163 @@
+From 4b0fe80b3951f044c1c1b14d1d7f5f0b8ab67507 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Dec 2015 06:35:34 +0000
+Subject: [PATCH] build: Provide alternatives for glibc assumptions helps
+ compiling it on musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ Makefile.am | 2 +-
+ lib/color.c | 2 +-
+ lib/crc32_file.c | 4 +++-
+ lib/fixedsizehash.h | 4 ++--
+ lib/system.h | 11 +++++++++++
+ lib/xmalloc.c | 2 +-
+ libasm/asm_end.c | 2 +-
+ libasm/asm_newscn.c | 2 +-
+ libcpu/i386_gendis.c | 2 +-
+ libcpu/i386_lex.c | 2 +-
+ libcpu/i386_parse.c | 2 +-
+ libdw/Makefile.am | 2 +-
+ libdw/libdw_alloc.c | 3 ++-
+ libdwfl/Makefile.am | 2 ++
+ libdwfl/dwfl_build_id_find_elf.c | 3 ++-
+ libdwfl/dwfl_error.c | 4 +++-
+ libdwfl/dwfl_module_getdwarf.c | 1 +
+ libdwfl/find-debuginfo.c | 2 +-
+ libdwfl/libdwfl_crc32_file.c | 10 ++++++++++
+ libdwfl/linux-kernel-modules.c | 1 +
+ libebl/eblopenbackend.c | 2 +-
+ libebl/eblwstrtab.c | 2 +-
+ libelf/elf.h | 9 ++++++---
+ libelf/libelf.h | 1 +
+ libelf/libelfP.h | 1 +
+ src/addr2line.c | 2 +-
+ src/ar.c | 2 +-
+ src/arlib.c | 2 +-
+ src/arlib2.c | 2 +-
+ src/elfcmp.c | 2 +-
+ src/elflint.c | 2 +-
+ src/findtextrel.c | 2 +-
+ src/i386_ld.c | 2 +-
+ src/ld.c | 2 +-
+ src/ldgeneric.c | 2 +-
+ src/ldlex.c | 2 +-
+ src/ldscript.c | 2 +-
+ src/nm.c | 2 +-
+ src/objdump.c | 2 +-
+ src/ranlib.c | 2 +-
+ src/readelf.c | 2 +-
+ src/size.c | 2 +-
+ src/stack.c | 2 +-
+ src/strings.c | 2 +-
+ src/strip.c | 2 +-
+ src/unstrip.c | 2 +-
+ tests/addrscopes.c | 2 +-
+ tests/allregs.c | 2 +-
+ tests/backtrace-data.c | 2 +-
+ tests/backtrace-dwarf.c | 2 +-
+ tests/backtrace.c | 2 +-
+ tests/buildid.c | 2 +-
+ tests/debugaltlink.c | 2 +-
+ tests/debuglink.c | 2 +-
+ tests/deleted.c | 2 +-
+ tests/dwfl-addr-sect.c | 2 +-
+ tests/dwfl-bug-addr-overflow.c | 2 +-
+ tests/dwfl-bug-fd-leak.c | 2 +-
+ tests/dwfl-bug-getmodules.c | 2 +-
+ tests/dwfl-report-elf-align.c | 2 +-
+ tests/dwfllines.c | 2 +-
+ tests/dwflmodtest.c | 2 +-
+ tests/dwflsyms.c | 2 +-
+ tests/early-offscn.c | 2 +-
+ tests/ecp.c | 2 +-
+ tests/find-prologues.c | 2 +-
+ tests/funcretval.c | 2 +-
+ tests/funcscopes.c | 2 +-
+ tests/getsrc_die.c | 2 +-
+ tests/line2addr.c | 2 +-
+ tests/low_high_pc.c | 2 +-
+ tests/md5-sha1-test.c | 2 +-
+ tests/rdwrmmap.c | 2 +-
+ tests/saridx.c | 2 +-
+ tests/sectiondump.c | 2 +-
+ tests/varlocs.c | 2 +-
+ tests/vdsosyms.c | 2 +-
+ 77 files changed, 109 insertions(+), 73 deletions(-)
+
+Index: elfutils-0.166/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/Makefile.am
++++ elfutils-0.166/Makefile.am
+@@ -28,7 +28,7 @@ pkginclude_HEADERS = version.h
+
+ # Add doc back when we have some real content.
+ SUBDIRS = config m4 lib libelf libebl libdwelf libdwfl libdw libcpu libasm \
+- backends src po tests
++ backends po tests
+
+ EXTRA_DIST = elfutils.spec GPG-KEY NOTES CONTRIBUTING \
+ COPYING COPYING-GPLV2 COPYING-LGPLV3
+Index: elfutils-0.166/lib/color.c
+===================================================================
+--- elfutils-0.166.orig/lib/color.c
++++ elfutils-0.166/lib/color.c
+@@ -32,7 +32,7 @@
+ #endif
+
+ #include <argp.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stdlib.h>
+ #include <string.h>
+Index: elfutils-0.166/lib/crc32_file.c
+===================================================================
+--- elfutils-0.166.orig/lib/crc32_file.c
++++ elfutils-0.166/lib/crc32_file.c
+@@ -30,12 +30,14 @@
+ # include <config.h>
+ #endif
+
+-#include "system.h"
+ #include <errno.h>
+ #include <unistd.h>
++#include <stdint.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+
++#include "system.h"
++
+ int
+ crc32_file (int fd, uint32_t *resp)
+ {
+Index: elfutils-0.166/lib/fixedsizehash.h
+===================================================================
+--- elfutils-0.166.orig/lib/fixedsizehash.h
++++ elfutils-0.166/lib/fixedsizehash.h
+@@ -30,12 +30,12 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/cdefs.h>
+ #include <sys/param.h>
+
+ #include <system.h>
+
+-#define CONCAT(t1,t2) __CONCAT (t1,t2)
++#define CONCAT1(x,y) x##y
++#define CONCAT(x,y) CONCAT1(x,y)
+
+ /* Before including this file the following macros must be defined:
+
+Index: elfutils-0.166/lib/system.h
+===================================================================
+--- elfutils-0.166.orig/lib/system.h
++++ elfutils-0.166/lib/system.h
+@@ -49,6 +49,16 @@
+ #else
+ # error "Unknown byte order"
+ #endif
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++#endif
++
++#define error(status, errno, ...) err(status, __VA_ARGS__)
+
+ extern void *xmalloc (size_t) __attribute__ ((__malloc__));
+ extern void *xcalloc (size_t, size_t) __attribute__ ((__malloc__));
+Index: elfutils-0.166/lib/xmalloc.c
+===================================================================
+--- elfutils-0.166.orig/lib/xmalloc.c
++++ elfutils-0.166/lib/xmalloc.c
+@@ -30,7 +30,7 @@
+ # include <config.h>
+ #endif
+
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/libasm/asm_end.c
+===================================================================
+--- elfutils-0.166.orig/libasm/asm_end.c
++++ elfutils-0.166/libasm/asm_end.c
+@@ -32,7 +32,7 @@
+ #endif
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/libasm/asm_newscn.c
+===================================================================
+--- elfutils-0.166.orig/libasm/asm_newscn.c
++++ elfutils-0.166/libasm/asm_newscn.c
+@@ -32,7 +32,7 @@
+ #endif
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stdlib.h>
+ #include <string.h>
+Index: elfutils-0.166/libcpu/i386_gendis.c
+===================================================================
+--- elfutils-0.166.orig/libcpu/i386_gendis.c
++++ elfutils-0.166/libcpu/i386_gendis.c
+@@ -31,7 +31,7 @@
+ # include <config.h>
+ #endif
+
+-#include <error.h>
++#include <err.h>
+ #include <errno.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/libcpu/i386_lex.c
+===================================================================
+--- elfutils-0.166.orig/libcpu/i386_lex.c
++++ elfutils-0.166/libcpu/i386_lex.c
+@@ -578,7 +578,7 @@ char *i386_text;
+ #endif
+
+ #include <ctype.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+
+ #include <system.h>
+Index: elfutils-0.166/libcpu/i386_parse.c
+===================================================================
+--- elfutils-0.166.orig/libcpu/i386_parse.c
++++ elfutils-0.166/libcpu/i386_parse.c
+@@ -107,7 +107,7 @@
+ #include <assert.h>
+ #include <ctype.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <inttypes.h>
+ #include <libintl.h>
+ #include <math.h>
+Index: elfutils-0.166/libdw/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/libdw/Makefile.am
++++ elfutils-0.166/libdw/Makefile.am
+@@ -117,7 +117,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l
+ -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
+ -Wl,--version-script,$<,--no-undefined \
+ -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
+- -ldl -lz $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS)
++ -ldl -lz $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS) -lfts -largp
+ @$(textrel_check)
+ $(AM_V_at)ln -fs $@ $@.$(VERSION)
+
+Index: elfutils-0.166/libdw/libdw_alloc.c
+===================================================================
+--- elfutils-0.166.orig/libdw/libdw_alloc.c
++++ elfutils-0.166/libdw/libdw_alloc.c
+@@ -31,11 +31,12 @@
+ # include <config.h>
+ #endif
+
+-#include <error.h>
++#include <err.h>
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <sys/param.h>
+ #include "libdwP.h"
++#include "system.h"
+
+
+ void *
+Index: elfutils-0.166/libdwfl/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/libdwfl/Makefile.am
++++ elfutils-0.166/libdwfl/Makefile.am
+@@ -84,6 +84,8 @@ libelf = ../libelf/libelf.so
+ libebl = ../libebl/libebl.a
+ libeu = ../lib/libeu.a
+
++LDADD = -lfts
++
+ libdwfl_pic_a_SOURCES =
+ am_libdwfl_pic_a_OBJECTS = $(libdwfl_a_SOURCES:.c=.os)
+
+Index: elfutils-0.166/libdwfl/dwfl_build_id_find_elf.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/dwfl_build_id_find_elf.c
++++ elfutils-0.166/libdwfl/dwfl_build_id_find_elf.c
+@@ -27,6 +27,7 @@
+ not, see <http://www.gnu.org/licenses/>. */
+
+ #include "libdwflP.h"
++#include "system.h"
+ #include <inttypes.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -94,7 +95,7 @@ __libdwfl_open_by_build_id (Dwfl_Module
+ {
+ if (*file_name != NULL)
+ free (*file_name);
+- *file_name = canonicalize_file_name (name);
++ *file_name = realpath (name, NULL);
+ if (*file_name == NULL)
+ {
+ *file_name = name;
+Index: elfutils-0.166/libdwfl/dwfl_error.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/dwfl_error.c
++++ elfutils-0.166/libdwfl/dwfl_error.c
+@@ -140,6 +140,7 @@ __libdwfl_seterrno (Dwfl_Error error)
+ const char *
+ dwfl_errmsg (int error)
+ {
++ static __thread char s[64] = "";
+ if (error == 0 || error == -1)
+ {
+ int last_error = global_error;
+@@ -154,7 +155,8 @@ dwfl_errmsg (int error)
+ switch (error &~ 0xffff)
+ {
+ case OTHER_ERROR (ERRNO):
+- return strerror_r (error & 0xffff, "bad", 0);
++ strerror_r (error & 0xffff, s, sizeof(s));
++ return s;
+ case OTHER_ERROR (LIBELF):
+ return elf_errmsg (error & 0xffff);
+ case OTHER_ERROR (LIBDW):
+Index: elfutils-0.166/libdwfl/dwfl_module_getdwarf.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/dwfl_module_getdwarf.c
++++ elfutils-0.166/libdwfl/dwfl_module_getdwarf.c
+@@ -31,6 +31,7 @@
+ #include <fcntl.h>
+ #include <string.h>
+ #include <unistd.h>
++#include "system.h"
+ #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */
+ #include "../libelf/libelfP.h"
+
+Index: elfutils-0.166/libdwfl/find-debuginfo.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/find-debuginfo.c
++++ elfutils-0.166/libdwfl/find-debuginfo.c
+@@ -385,7 +385,7 @@ dwfl_standard_find_debuginfo (Dwfl_Modul
+ /* If FILE_NAME is a symlink, the debug file might be associated
+ with the symlink target name instead. */
+
+- char *canon = canonicalize_file_name (file_name);
++ char *canon = realpath (file_name, NULL);
+ if (canon != NULL && strcmp (file_name, canon))
+ fd = find_debuginfo_in_path (mod, canon,
+ debuglink_file, debuglink_crc,
+Index: elfutils-0.166/libdwfl/libdwfl_crc32_file.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/libdwfl_crc32_file.c
++++ elfutils-0.166/libdwfl/libdwfl_crc32_file.c
+@@ -31,6 +31,16 @@
+
+ #define crc32_file attribute_hidden __libdwfl_crc32_file
+ #define crc32 __libdwfl_crc32
++
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; }))
++#endif
++
+ #define LIB_SYSTEM_H 1
+ #include <libdwflP.h>
+ #include "../lib/crc32_file.c"
+Index: elfutils-0.166/libdwfl/linux-kernel-modules.c
+===================================================================
+--- elfutils-0.166.orig/libdwfl/linux-kernel-modules.c
++++ elfutils-0.166/libdwfl/linux-kernel-modules.c
+@@ -34,6 +34,7 @@
+ #include <config.h>
+
+ #include "libdwflP.h"
++#include "system.h"
+ #include <inttypes.h>
+ #include <errno.h>
+ #include <stdio.h>
+Index: elfutils-0.166/libebl/eblopenbackend.c
+===================================================================
+--- elfutils-0.166.orig/libebl/eblopenbackend.c
++++ elfutils-0.166/libebl/eblopenbackend.c
+@@ -32,7 +32,7 @@
+
+ #include <assert.h>
+ #include <dlfcn.h>
+-#include <error.h>
++#include <err.h>
+ #include <libelfP.h>
+ #include <dwarf.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/libebl/eblwstrtab.c
+===================================================================
+--- elfutils-0.166.orig/libebl/eblwstrtab.c
++++ elfutils-0.166/libebl/eblwstrtab.c
+@@ -305,7 +305,7 @@ copystrings (struct Ebl_WStrent *nodep,
+
+ /* Process the current node. */
+ nodep->offset = *offsetp;
+- *freep = wmempcpy (*freep, nodep->string, nodep->len);
++ *freep = wmemcpy (*freep, nodep->string, nodep->len) + nodep->len;
+ *offsetp += nodep->len * sizeof (wchar_t);
+
+ for (subs = nodep->next; subs != NULL; subs = subs->next)
+Index: elfutils-0.166/libelf/elf.h
+===================================================================
+--- elfutils-0.166.orig/libelf/elf.h
++++ elfutils-0.166/libelf/elf.h
+@@ -21,7 +21,9 @@
+
+ #include <features.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Standard ELF types. */
+
+@@ -3591,7 +3593,8 @@ enum
+
+ #define R_TILEGX_NUM 130
+
+-
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* elf.h */
+Index: elfutils-0.166/libelf/libelf.h
+===================================================================
+--- elfutils-0.166.orig/libelf/libelf.h
++++ elfutils-0.166/libelf/libelf.h
+@@ -29,6 +29,7 @@
+ #ifndef _LIBELF_H
+ #define _LIBELF_H 1
+
++#include <fcntl.h>
+ #include <stdint.h>
+ #include <sys/types.h>
+
+Index: elfutils-0.166/libelf/libelfP.h
+===================================================================
+--- elfutils-0.166.orig/libelf/libelfP.h
++++ elfutils-0.166/libelf/libelfP.h
+@@ -36,6 +36,7 @@
+
+ #include <ar.h>
+ #include <gelf.h>
++#include <libelf.h>
+
+ #include <errno.h>
+ #include <stdbool.h>
+Index: elfutils-0.166/src/addr2line.c
+===================================================================
+--- elfutils-0.166.orig/src/addr2line.c
++++ elfutils-0.166/src/addr2line.c
+@@ -23,7 +23,7 @@
+ #include <argp.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
+ #include <libdwfl.h>
+Index: elfutils-0.166/src/ar.c
+===================================================================
+--- elfutils-0.166.orig/src/ar.c
++++ elfutils-0.166/src/ar.c
+@@ -22,7 +22,7 @@
+
+ #include <argp.h>
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <libintl.h>
+Index: elfutils-0.166/src/arlib.c
+===================================================================
+--- elfutils-0.166.orig/src/arlib.c
++++ elfutils-0.166/src/arlib.c
+@@ -21,7 +21,7 @@
+ #endif
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <gelf.h>
+ #include <libintl.h>
+ #include <stdio.h>
+Index: elfutils-0.166/src/arlib2.c
+===================================================================
+--- elfutils-0.166.orig/src/arlib2.c
++++ elfutils-0.166/src/arlib2.c
+@@ -20,7 +20,7 @@
+ # include <config.h>
+ #endif
+
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <limits.h>
+ #include <string.h>
+Index: elfutils-0.166/src/elfcmp.c
+===================================================================
+--- elfutils-0.166.orig/src/elfcmp.c
++++ elfutils-0.166/src/elfcmp.c
+@@ -23,7 +23,7 @@
+ #include <argp.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <locale.h>
+ #include <libintl.h>
+Index: elfutils-0.166/src/elflint.c
+===================================================================
+--- elfutils-0.166.orig/src/elflint.c
++++ elfutils-0.166/src/elflint.c
+@@ -24,7 +24,7 @@
+ #include <assert.h>
+ #include <byteswap.h>
+ #include <endian.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/src/findtextrel.c
+===================================================================
+--- elfutils-0.166.orig/src/findtextrel.c
++++ elfutils-0.166/src/findtextrel.c
+@@ -23,7 +23,7 @@
+ #include <argp.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <libdw.h>
+Index: elfutils-0.166/src/i386_ld.c
+===================================================================
+--- elfutils-0.166.orig/src/i386_ld.c
++++ elfutils-0.166/src/i386_ld.c
+@@ -20,7 +20,7 @@
+ #endif
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stdlib.h>
+ #include <string.h>
+Index: elfutils-0.166/src/ld.c
+===================================================================
+--- elfutils-0.166.orig/src/ld.c
++++ elfutils-0.166/src/ld.c
+@@ -21,7 +21,7 @@
+
+ #include <argp.h>
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <libelf.h>
+ #include <libintl.h>
+Index: elfutils-0.166/src/ldgeneric.c
+===================================================================
+--- elfutils-0.166.orig/src/ldgeneric.c
++++ elfutils-0.166/src/ldgeneric.c
+@@ -23,7 +23,7 @@
+ #include <ctype.h>
+ #include <dlfcn.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <fnmatch.h>
+ #include <gelf.h>
+Index: elfutils-0.166/src/ldlex.c
+===================================================================
+--- elfutils-0.166.orig/src/ldlex.c
++++ elfutils-0.166/src/ldlex.c
+@@ -1106,7 +1106,7 @@ char *ldtext;
+ #include <assert.h>
+ #include <ctype.h>
+ #include <elf.h>
+-#include <error.h>
++#include <err.h>
+ #include <inttypes.h>
+ #include <libintl.h>
+ #include <stdbool.h>
+Index: elfutils-0.166/src/ldscript.c
+===================================================================
+--- elfutils-0.166.orig/src/ldscript.c
++++ elfutils-0.166/src/ldscript.c
+@@ -95,7 +95,7 @@
+ #endif
+
+ #include <assert.h>
+-#include <error.h>
++#include <err.h>
+ #include <libintl.h>
+ #include <stdbool.h>
+ #include <stdint.h>
+Index: elfutils-0.166/src/nm.c
+===================================================================
+--- elfutils-0.166.orig/src/nm.c
++++ elfutils-0.166/src/nm.c
+@@ -26,7 +26,7 @@
+ #include <ctype.h>
+ #include <dwarf.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/src/objdump.c
+===================================================================
+--- elfutils-0.166.orig/src/objdump.c
++++ elfutils-0.166/src/objdump.c
+@@ -21,7 +21,7 @@
+ #endif
+
+ #include <argp.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
+ #include <libintl.h>
+Index: elfutils-0.166/src/ranlib.c
+===================================================================
+--- elfutils-0.166.orig/src/ranlib.c
++++ elfutils-0.166/src/ranlib.c
+@@ -24,7 +24,7 @@
+ #include <argp.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <libintl.h>
+Index: elfutils-0.166/src/readelf.c
+===================================================================
+--- elfutils-0.166.orig/src/readelf.c
++++ elfutils-0.166/src/readelf.c
+@@ -25,7 +25,7 @@
+ #include <ctype.h>
+ #include <dwarf.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/src/size.c
+===================================================================
+--- elfutils-0.166.orig/src/size.c
++++ elfutils-0.166/src/size.c
+@@ -21,7 +21,7 @@
+ #endif
+
+ #include <argp.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/src/stack.c
+===================================================================
+--- elfutils-0.166.orig/src/stack.c
++++ elfutils-0.166/src/stack.c
+@@ -18,7 +18,7 @@
+ #include <config.h>
+ #include <assert.h>
+ #include <argp.h>
+-#include <error.h>
++#include <err.h>
+ #include <stdlib.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+Index: elfutils-0.166/src/strings.c
+===================================================================
+--- elfutils-0.166.orig/src/strings.c
++++ elfutils-0.166/src/strings.c
+@@ -25,7 +25,7 @@
+ #include <ctype.h>
+ #include <endian.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/src/strip.c
+===================================================================
+--- elfutils-0.166.orig/src/strip.c
++++ elfutils-0.166/src/strip.c
+@@ -24,7 +24,7 @@
+ #include <assert.h>
+ #include <byteswap.h>
+ #include <endian.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <libelf.h>
+Index: elfutils-0.166/src/unstrip.c
+===================================================================
+--- elfutils-0.166.orig/src/unstrip.c
++++ elfutils-0.166/src/unstrip.c
+@@ -31,7 +31,7 @@
+ #include <argp.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <fnmatch.h>
+ #include <libintl.h>
+Index: elfutils-0.166/tests/addrscopes.c
+===================================================================
+--- elfutils-0.166.orig/tests/addrscopes.c
++++ elfutils-0.166/tests/addrscopes.c
+@@ -25,7 +25,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+
+
+Index: elfutils-0.166/tests/allregs.c
+===================================================================
+--- elfutils-0.166.orig/tests/allregs.c
++++ elfutils-0.166/tests/allregs.c
+@@ -21,7 +21,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+ #include <locale.h>
+ #include <argp.h>
+ #include <assert.h>
+Index: elfutils-0.166/tests/backtrace-data.c
+===================================================================
+--- elfutils-0.166.orig/tests/backtrace-data.c
++++ elfutils-0.166/tests/backtrace-data.c
+@@ -27,7 +27,7 @@
+ #include <dirent.h>
+ #include <stdlib.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <unistd.h>
+ #include <dwarf.h>
+ #if defined(__x86_64__) && defined(__linux__)
+Index: elfutils-0.166/tests/backtrace-dwarf.c
+===================================================================
+--- elfutils-0.166.orig/tests/backtrace-dwarf.c
++++ elfutils-0.166/tests/backtrace-dwarf.c
+@@ -22,7 +22,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <unistd.h>
+ #include <sys/ptrace.h>
+ #include <sys/types.h>
+Index: elfutils-0.166/tests/backtrace.c
+===================================================================
+--- elfutils-0.166.orig/tests/backtrace.c
++++ elfutils-0.166/tests/backtrace.c
+@@ -24,7 +24,7 @@
+ #include <dirent.h>
+ #include <stdlib.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <unistd.h>
+ #include <dwarf.h>
+ #ifdef __linux__
+Index: elfutils-0.166/tests/buildid.c
+===================================================================
+--- elfutils-0.166.orig/tests/buildid.c
++++ elfutils-0.166/tests/buildid.c
+@@ -23,7 +23,7 @@
+ #include ELFUTILS_HEADER(elf)
+ #include ELFUTILS_HEADER(dwelf)
+ #include <stdio.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+Index: elfutils-0.166/tests/debugaltlink.c
+===================================================================
+--- elfutils-0.166.orig/tests/debugaltlink.c
++++ elfutils-0.166/tests/debugaltlink.c
+@@ -23,7 +23,7 @@
+ #include ELFUTILS_HEADER(dw)
+ #include ELFUTILS_HEADER(dwelf)
+ #include <stdio.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+Index: elfutils-0.166/tests/debuglink.c
+===================================================================
+--- elfutils-0.166.orig/tests/debuglink.c
++++ elfutils-0.166/tests/debuglink.c
+@@ -21,7 +21,7 @@
+ #include <errno.h>
+ #include ELFUTILS_HEADER(dwelf)
+ #include <stdio.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+Index: elfutils-0.166/tests/deleted.c
+===================================================================
+--- elfutils-0.166.orig/tests/deleted.c
++++ elfutils-0.166/tests/deleted.c
+@@ -21,7 +21,7 @@
+ #include <unistd.h>
+ #include <assert.h>
+ #include <stdio.h>
+-#include <error.h>
++#include <err.h>
+ #include <errno.h>
+ #ifdef __linux__
+ #include <sys/prctl.h>
+Index: elfutils-0.166/tests/dwfl-addr-sect.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfl-addr-sect.c
++++ elfutils-0.166/tests/dwfl-addr-sect.c
+@@ -23,7 +23,7 @@
+ #include <stdio_ext.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+ #include <locale.h>
+ #include <argp.h>
+ #include ELFUTILS_HEADER(dwfl)
+Index: elfutils-0.166/tests/dwfl-bug-addr-overflow.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfl-bug-addr-overflow.c
++++ elfutils-0.166/tests/dwfl-bug-addr-overflow.c
+@@ -20,7 +20,7 @@
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <stdio_ext.h>
+-#include <error.h>
++#include <err.h>
+ #include <locale.h>
+ #include ELFUTILS_HEADER(dwfl)
+
+Index: elfutils-0.166/tests/dwfl-bug-fd-leak.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfl-bug-fd-leak.c
++++ elfutils-0.166/tests/dwfl-bug-fd-leak.c
+@@ -24,7 +24,7 @@
+ #include <dirent.h>
+ #include <stdlib.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <unistd.h>
+ #include <dwarf.h>
+
+Index: elfutils-0.166/tests/dwfl-bug-getmodules.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfl-bug-getmodules.c
++++ elfutils-0.166/tests/dwfl-bug-getmodules.c
+@@ -18,7 +18,7 @@
+ #include <config.h>
+ #include ELFUTILS_HEADER(dwfl)
+
+-#include <error.h>
++#include <err.h>
+
+ static const Dwfl_Callbacks callbacks =
+ {
+Index: elfutils-0.166/tests/dwfl-report-elf-align.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfl-report-elf-align.c
++++ elfutils-0.166/tests/dwfl-report-elf-align.c
+@@ -20,7 +20,7 @@
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <stdio_ext.h>
+-#include <error.h>
++#include <err.h>
+ #include <locale.h>
+ #include <string.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/tests/dwfllines.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwfllines.c
++++ elfutils-0.166/tests/dwfllines.c
+@@ -27,7 +27,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+
+ int
+ main (int argc, char *argv[])
+Index: elfutils-0.166/tests/dwflmodtest.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwflmodtest.c
++++ elfutils-0.166/tests/dwflmodtest.c
+@@ -23,7 +23,7 @@
+ #include <stdio_ext.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+ #include <locale.h>
+ #include <argp.h>
+ #include ELFUTILS_HEADER(dwfl)
+Index: elfutils-0.166/tests/dwflsyms.c
+===================================================================
+--- elfutils-0.166.orig/tests/dwflsyms.c
++++ elfutils-0.166/tests/dwflsyms.c
+@@ -25,7 +25,7 @@
+ #include <stdio.h>
+ #include <stdio_ext.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+
+ static const char *
+Index: elfutils-0.166/tests/early-offscn.c
+===================================================================
+--- elfutils-0.166.orig/tests/early-offscn.c
++++ elfutils-0.166/tests/early-offscn.c
+@@ -19,7 +19,7 @@
+ #endif
+
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <stdio.h>
+Index: elfutils-0.166/tests/ecp.c
+===================================================================
+--- elfutils-0.166.orig/tests/ecp.c
++++ elfutils-0.166/tests/ecp.c
+@@ -20,7 +20,7 @@
+ #endif
+
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <stdlib.h>
+Index: elfutils-0.166/tests/find-prologues.c
+===================================================================
+--- elfutils-0.166.orig/tests/find-prologues.c
++++ elfutils-0.166/tests/find-prologues.c
+@@ -25,7 +25,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <fnmatch.h>
+
+Index: elfutils-0.166/tests/funcretval.c
+===================================================================
+--- elfutils-0.166.orig/tests/funcretval.c
++++ elfutils-0.166/tests/funcretval.c
+@@ -25,7 +25,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <fnmatch.h>
+
+Index: elfutils-0.166/tests/funcscopes.c
+===================================================================
+--- elfutils-0.166.orig/tests/funcscopes.c
++++ elfutils-0.166/tests/funcscopes.c
+@@ -25,7 +25,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <fnmatch.h>
+
+Index: elfutils-0.166/tests/getsrc_die.c
+===================================================================
+--- elfutils-0.166.orig/tests/getsrc_die.c
++++ elfutils-0.166/tests/getsrc_die.c
+@@ -19,7 +19,7 @@
+ #endif
+
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
+ #include <libelf.h>
+Index: elfutils-0.166/tests/line2addr.c
+===================================================================
+--- elfutils-0.166.orig/tests/line2addr.c
++++ elfutils-0.166/tests/line2addr.c
+@@ -26,7 +26,7 @@
+ #include <locale.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+
+
+ static void
+Index: elfutils-0.166/tests/low_high_pc.c
+===================================================================
+--- elfutils-0.166.orig/tests/low_high_pc.c
++++ elfutils-0.166/tests/low_high_pc.c
+@@ -25,7 +25,7 @@
+ #include <stdio_ext.h>
+ #include <locale.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <fnmatch.h>
+
+Index: elfutils-0.166/tests/md5-sha1-test.c
+===================================================================
+--- elfutils-0.166.orig/tests/md5-sha1-test.c
++++ elfutils-0.166/tests/md5-sha1-test.c
+@@ -19,7 +19,7 @@
+ #endif
+
+ #include <string.h>
+-#include <error.h>
++#include <err.h>
+
+ #include "md5.h"
+ #include "sha1.h"
+Index: elfutils-0.166/tests/rdwrmmap.c
+===================================================================
+--- elfutils-0.166.orig/tests/rdwrmmap.c
++++ elfutils-0.166/tests/rdwrmmap.c
+@@ -19,7 +19,7 @@
+ #endif
+
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+Index: elfutils-0.166/tests/saridx.c
+===================================================================
+--- elfutils-0.166.orig/tests/saridx.c
++++ elfutils-0.166/tests/saridx.c
+@@ -17,7 +17,7 @@
+
+ #include <config.h>
+
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <stdio.h>
+Index: elfutils-0.166/tests/sectiondump.c
+===================================================================
+--- elfutils-0.166.orig/tests/sectiondump.c
++++ elfutils-0.166/tests/sectiondump.c
+@@ -18,7 +18,7 @@
+ #include <config.h>
+
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <fcntl.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+Index: elfutils-0.166/tests/varlocs.c
+===================================================================
+--- elfutils-0.166.orig/tests/varlocs.c
++++ elfutils-0.166/tests/varlocs.c
+@@ -25,7 +25,7 @@
+ #include <dwarf.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <error.h>
++#include <err.h>
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+Index: elfutils-0.166/tests/vdsosyms.c
+===================================================================
+--- elfutils-0.166.orig/tests/vdsosyms.c
++++ elfutils-0.166/tests/vdsosyms.c
+@@ -18,7 +18,7 @@
+ #include <config.h>
+ #include <assert.h>
+ #include <errno.h>
+-#include <error.h>
++#include <err.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <string.h>
+Index: elfutils-0.166/libelf/elf_getarsym.c
+===================================================================
+--- elfutils-0.166.orig/libelf/elf_getarsym.c
++++ elfutils-0.166/libelf/elf_getarsym.c
+@@ -302,7 +302,7 @@ elf_getarsym (Elf *elf, size_t *ptr)
+ arsym[cnt].as_off = (*u32)[cnt];
+
+ arsym[cnt].as_hash = _dl_elf_hash (str_data);
+- str_data = rawmemchr (str_data, '\0') + 1;
++ str_data = memchr (str_data, '\0', SIZE_MAX) + 1;
+ }
+
+ /* At the end a special entry. */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch
index 3754c1c36..3754c1c36 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-fix-a-stack-usage-warning.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-fix-a-stack-usage-warning.patch
index 6923bf705..6923bf705 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-fix-a-stack-usage-warning.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-fix-a-stack-usage-warning.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-remove-the-unneed-checking.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-remove-the-unneed-checking.patch
index 5be92d705..5be92d705 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0001-remove-the-unneed-checking.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0001-remove-the-unneed-checking.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch
index 72125c9ff..72125c9ff 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0003-Add-mips-n64-relocation-format-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0003-Add-mips-n64-relocation-format-hack.patch
index 14b7985ce..14b7985ce 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/0003-Add-mips-n64-relocation-format-hack.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/0003-Add-mips-n64-relocation-format-hack.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/aarch64_uio.patch
index 38dc57bef..38dc57bef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/aarch64_uio.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/aarch64_uio.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/arm_backend.diff b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/arm_backend.diff
index 9d47f95f2..9d47f95f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/arm_backend.diff
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/arm_backend.diff
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/elfcmp-fix-self-comparision.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/elfcmp-fix-self-comparision.patch
new file mode 100644
index 000000000..6c150bb54
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/elfcmp-fix-self-comparision.patch
@@ -0,0 +1,41 @@
+From 836a16fe5b5bab4a3afe2c991c104652775ce3a3 Mon Sep 17 00:00:00 2001
+From: David Abdurachmanov <davidlt@cern.ch>
+Date: Mon, 11 Apr 2016 16:00:57 +0200
+Subject: elfcmp: fix self-comparison error with GCC 6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Noticed with Fedora 24 Alpha, gcc (GCC) 6.0.0 20160406
+(Red Hat 6.0.0-0.20).
+
+elfcmp.c: In function â€main’:
+elfcmp.c:364:199: error: self-comparison always evaluates
+to false [-Werror=tautological-compare]
+ if (unlikely (name1 == NULL || name2 == NULL
+
+Signed-off-by: David Abdurachmanov <davidlt@cern.ch>
+---
+
+Upstream-Status: Backport
+
+ src/ChangeLog | 4 ++++
+ src/elfcmp.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/elfcmp.c b/src/elfcmp.c
+index 852b92f..7b5d39c 100644
+--- a/src/elfcmp.c
++++ b/src/elfcmp.c
+@@ -368,7 +368,7 @@ main (int argc, char *argv[])
+ && sym1->st_shndx != SHN_UNDEF)
+ || sym1->st_info != sym2->st_info
+ || sym1->st_other != sym2->st_other
+- || sym1->st_shndx != sym1->st_shndx))
++ || sym1->st_shndx != sym2->st_shndx))
+ {
+ // XXX Do we want to allow reordered symbol tables?
+ symtab_mismatch:
+--
+cgit v0.12
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/fixheadercheck.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/fixheadercheck.patch
index 5de3b24c8..5de3b24c8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/fixheadercheck.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/fixheadercheck.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/hppa_backend.diff b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/hppa_backend.diff
index 45456715a..45456715a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/hppa_backend.diff
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/hppa_backend.diff
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/kfreebsd_path.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/kfreebsd_path.patch
index ba454ee77..ba454ee77 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/kfreebsd_path.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/kfreebsd_path.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/m68k_backend.diff b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/m68k_backend.diff
index d73855b60..d73855b60 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/m68k_backend.diff
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/m68k_backend.diff
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_backend.diff b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_backend.diff
index de1237be0..de1237be0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_backend.diff
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_backend.diff
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_readelf_w.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_readelf_w.patch
index 930d6f664..930d6f664 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/mips_readelf_w.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/mips_readelf_w.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/shadow.patch
index d31961f94..d31961f94 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/shadow.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/shadow.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/testsuite-ignore-elflint.diff b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/testsuite-ignore-elflint.diff
index eae5796de..eae5796de 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.164/testsuite-ignore-elflint.diff
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/testsuite-ignore-elflint.diff
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/uclibc-support.patch b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/uclibc-support.patch
new file mode 100644
index 000000000..62999985c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils-0.166/uclibc-support.patch
@@ -0,0 +1,128 @@
+From 3daec2dd11a04955f95e8f65a48820103d84dbec Mon Sep 17 00:00:00 2001
+From: Junling Zheng <zhengjunling@huawei.com>
+Date: Thu, 9 Apr 2015 12:12:49 +0000
+Subject: [PATCH] uclibc support for elfutils 0.161
+
+on uclibc systems libintl and libuargp are separate from libc.
+so they need to be specified on commandline when we use proxy-libintl
+then libintl is a static archive so it should be listed last since
+elfutils does not respect disable-nls we need to link in libintl
+
+We add a new option --enable-uclibc which will be used to control
+the uclibc specific configurations during build.
+
+Upstream-Status: Inappropriate [uclibc specific]
+
+Signed-off-by: Khem Raj <raj.khem>
+Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
+[Junling Zheng:
+ - adjust context
+]
+---
+ configure.ac | 8 ++++++++
+ libcpu/Makefile.am | 4 ++++
+ libdw/Makefile.am | 7 ++++++-
+ libelf/Makefile.am | 5 +++++
+ 4 files changed, 23 insertions(+), 1 deletion(-)
+
+Index: elfutils-0.166/configure.ac
+===================================================================
+--- elfutils-0.166.orig/configure.ac
++++ elfutils-0.166/configure.ac
+@@ -79,6 +79,14 @@ AS_IF([test "$use_locks" = yes],
+
+ AH_TEMPLATE([USE_LOCKS], [Defined if libraries should be thread-safe.])
+
++AC_ARG_ENABLE([uclibc],
++AS_HELP_STRING([--enable-uclibc], [Use uclibc for system libraries]),
++use_uclibc=yes, use_uclibc=no)
++AM_CONDITIONAL(USE_UCLIBC, test "$use_uclibc" = yes)
++AS_IF([test "$use_uclibc" = yes], [AC_DEFINE(USE_UCLIBC)])
++
++AH_TEMPLATE([USE_UCLIBC], [Defined if uclibc libraries are used.])
++
+ AC_PROG_CC
+ AC_PROG_RANLIB
+ AC_PROG_YACC
+@@ -347,18 +355,13 @@ AC_LINK_IFELSE(
+ )
+
+ dnl If our libc doesn't provide argp, then test for libargp
+-if test "$libc_has_argp" = "false" ; then
+- AC_MSG_WARN("libc does not have argp")
+- AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"])
+-
+- if test "$have_argp" = "false"; then
+- AC_MSG_ERROR("no libargp found")
+- else
+- argp_LDADD="-largp"
+- fi
+-else
+- argp_LDADD=""
+-fi
++AS_IF([test "x$libc_has_argp" = "xfalse"],
++ [AC_MSG_WARN("libc does not have argp")
++ AC_CHECK_LIB([argp], [argp_parse], [have_argp="true" argp_LDADD="-largp"], [have_argp="false"])], [argp_LDADD=""])
++
++AS_IF([test "x$libc_has_argp" = "xfalse" -a "x$have_argp" = "xfalse"],
++ AC_CHECK_LIB([uargp], [argp_parse], [have_uargp="true" argp_LDADD="-luargp"], [have_uargp="false"])], [argp_LDADD=""])
++
+ AC_SUBST([argp_LDADD])
+
+ dnl The directories with content.
+Index: elfutils-0.166/libcpu/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/libcpu/Makefile.am
++++ elfutils-0.166/libcpu/Makefile.am
+@@ -80,6 +80,10 @@ i386_parse_CFLAGS = -DNMNES="`wc -l < i3
+ i386_lex.o: i386_parse.h
+ i386_gendis_LDADD = $(libeu) -lm
+
++if USE_UCLIBC
++i386_gendis_LDADD += -lintl
++endif
++
+ i386_parse.h: i386_parse.c ;
+
+ EXTRA_DIST = defs/i386
+Index: elfutils-0.166/libdw/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/libdw/Makefile.am
++++ elfutils-0.166/libdw/Makefile.am
+@@ -102,6 +102,11 @@ endif
+ libdw_pic_a_SOURCES =
+ am_libdw_pic_a_OBJECTS = $(libdw_a_SOURCES:.c=.os)
+
++libdw_so_LDLIBS =
++if USE_UCLIBC
++libdw_so_LDLIBS += -lintl
++endif
++
+ libdw_so_SOURCES =
+ libdw.so$(EXEEXT): $(srcdir)/libdw.map libdw_pic.a ../libdwelf/libdwelf_pic.a \
+ ../libdwfl/libdwfl_pic.a ../libebl/libebl.a \
+@@ -112,7 +117,7 @@ libdw.so$(EXEEXT): $(srcdir)/libdw.map l
+ -Wl,--enable-new-dtags,-rpath,$(pkglibdir) \
+ -Wl,--version-script,$<,--no-undefined \
+ -Wl,--whole-archive $(filter-out $<,$^) -Wl,--no-whole-archive\
+- -ldl -lz $(argp_LDADD) $(zip_LIBS)
++ -ldl -lz $(argp_LDADD) $(zip_LIBS) $(libdw_so_LDLIBS)
+ @$(textrel_check)
+ $(AM_V_at)ln -fs $@ $@.$(VERSION)
+
+Index: elfutils-0.166/libelf/Makefile.am
+===================================================================
+--- elfutils-0.166.orig/libelf/Makefile.am
++++ elfutils-0.166/libelf/Makefile.am
+@@ -96,6 +96,11 @@ libelf_pic_a_SOURCES =
+ am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
+
+ libelf_so_LDLIBS = -lz
++
++if USE_UCLIBC
++libelf_so_LDLIBS += -lintl
++endif
++
+ if USE_LOCKS
+ libelf_so_LDLIBS += -lpthread
+ endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.148.bb b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.148.bb
index ff5325734..6080c179f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.148.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.148.bb
@@ -34,6 +34,7 @@ SRC_URI += "\
file://Fix_elf_cvt_gunhash.patch \
file://elf_begin.c-CVE-2014-9447-fix.patch \
file://fix-build-gcc-4.8.patch \
+ file://gcc6.patch \
"
# Only apply when building uclibc based target recipe
SRC_URI_append_libc-uclibc = " file://uclibc-support-for-elfutils-0.148.patch"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.164.bb b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.164.bb
deleted file mode 100644
index 4964c0507..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.164.bb
+++ /dev/null
@@ -1,89 +0,0 @@
-SUMMARY = "Utilities and libraries for handling compiled object files"
-HOMEPAGE = "https://fedorahosted.org/elfutils"
-SECTION = "base"
-LICENSE = "(GPLv3 & Elfutils-Exception)"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "libtool bzip2 zlib virtual/libintl"
-DEPENDS_append_libc-musl = " argp-standalone fts "
-
-SRC_URI = "https://fedorahosted.org/releases/e/l/elfutils/${PV}/${BP}.tar.bz2"
-
-SRC_URI[md5sum] = "2e4536c1c48034f188a80789a59114d8"
-SRC_URI[sha256sum] = "9683c025928a12d06b7fe812928aa6235249e22d197d086f7084606a48165900"
-
-SRC_URI += "\
- file://dso-link-change.patch \
- file://Fix_elf_cvt_gunhash.patch \
- file://fixheadercheck.patch \
- file://0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch \
- file://0001-remove-the-unneed-checking.patch \
- file://0001-fix-a-stack-usage-warning.patch \
- file://aarch64_uio.patch \
- file://shadow.patch \
-"
-
-# pick the patch from debian
-# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.164-1.debian.tar.xz
-SRC_URI += "\
- file://hppa_backend.diff \
- file://arm_backend.diff \
- file://mips_backend.diff \
- file://m68k_backend.diff \
- file://testsuite-ignore-elflint.diff \
- file://mips_readelf_w.patch \
- file://kfreebsd_path.patch \
- file://0001-Ignore-differences-between-mips-machine-identifiers.patch \
- file://0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \
- file://0003-Add-mips-n64-relocation-format-hack.patch \
- file://uclibc-support.patch \
-"
-SRC_URI_append_libc-musl = " file://0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch "
-
-# The buildsystem wants to generate 2 .h files from source using a binary it just built,
-# which can not pass the cross compiling, so let's work around it by adding 2 .h files
-# along with the do_configure_prepend()
-
-inherit autotools gettext
-
-EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
-EXTRA_OECONF_append_class-native = " --without-bzlib"
-EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc"
-
-do_install_append() {
- if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then
- rm -f ${D}${bindir}/eu-objdump
- fi
-}
-
-# we can not build complete elfutils when using uclibc
-# but some recipes e.g. gcc 4.5 depends on libelf so we
-# build only libelf for uclibc case
-
-EXTRA_OEMAKE_libc-uclibc = "-C libelf"
-EXTRA_OEMAKE_class-native = ""
-EXTRA_OEMAKE_class-nativesdk = ""
-
-ALLOW_EMPTY_${PN}_libc-musl = "1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# Package utilities separately
-PACKAGES =+ "${PN}-binutils libelf libasm libdw"
-FILES_${PN}-binutils = "\
- ${bindir}/eu-addr2line \
- ${bindir}/eu-ld \
- ${bindir}/eu-nm \
- ${bindir}/eu-readelf \
- ${bindir}/eu-size \
- ${bindir}/eu-strip"
-
-FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
-FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
-FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
-# Some packages have the version preceeding the .so instead properly
-# versioned .so.<version>, so we need to reorder and repackage.
-#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
-#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
-
-# The package contains symlinks that trip up insane
-INSANE_SKIP_${MLPREFIX}libdw = "dev-so"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.166.bb b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.166.bb
new file mode 100644
index 000000000..5c436d386
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/elfutils/elfutils_0.166.bb
@@ -0,0 +1,89 @@
+SUMMARY = "Utilities and libraries for handling compiled object files"
+HOMEPAGE = "https://fedorahosted.org/elfutils"
+SECTION = "base"
+LICENSE = "(GPLv3 & Elfutils-Exception)"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "libtool bzip2 zlib virtual/libintl"
+DEPENDS_append_libc-musl = " argp-standalone fts "
+
+SRC_URI = "https://fedorahosted.org/releases/e/l/elfutils/${PV}/${BP}.tar.bz2"
+SRC_URI[md5sum] = "d4e462b7891915dc5326bccefa2024ff"
+SRC_URI[sha256sum] = "3c056914c8a438b210be0d790463b960fc79d234c3f05ce707cbff80e94cba30"
+
+SRC_URI += "\
+ file://dso-link-change.patch \
+ file://Fix_elf_cvt_gunhash.patch \
+ file://fixheadercheck.patch \
+ file://0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch \
+ file://0001-remove-the-unneed-checking.patch \
+ file://0001-fix-a-stack-usage-warning.patch \
+ file://aarch64_uio.patch \
+ file://shadow.patch \
+"
+
+# pick the patch from debian
+# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.164-1.debian.tar.xz
+SRC_URI += "\
+ file://hppa_backend.diff \
+ file://arm_backend.diff \
+ file://mips_backend.diff \
+ file://m68k_backend.diff \
+ file://testsuite-ignore-elflint.diff \
+ file://mips_readelf_w.patch \
+ file://kfreebsd_path.patch \
+ file://0001-Ignore-differences-between-mips-machine-identifiers.patch \
+ file://0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \
+ file://0003-Add-mips-n64-relocation-format-hack.patch \
+ file://uclibc-support.patch \
+ file://elfcmp-fix-self-comparision.patch \
+"
+SRC_URI_append_libc-musl = " file://0001-build-Provide-alternatives-for-glibc-assumptions-hel.patch "
+
+# The buildsystem wants to generate 2 .h files from source using a binary it just built,
+# which can not pass the cross compiling, so let's work around it by adding 2 .h files
+# along with the do_configure_prepend()
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
+EXTRA_OECONF_append_class-native = " --without-bzlib"
+EXTRA_OECONF_append_libc-uclibc = " --enable-uclibc"
+
+do_install_append() {
+ if [ "${TARGET_ARCH}" != "x86_64" ] && [ -z `echo "${TARGET_ARCH}"|grep 'i.86'` ];then
+ rm -f ${D}${bindir}/eu-objdump
+ fi
+}
+
+# we can not build complete elfutils when using uclibc
+# but some recipes e.g. gcc 4.5 depends on libelf so we
+# build only libelf for uclibc case
+
+EXTRA_OEMAKE_libc-uclibc = "-C libelf"
+EXTRA_OEMAKE_class-native = ""
+EXTRA_OEMAKE_class-nativesdk = ""
+
+ALLOW_EMPTY_${PN}_libc-musl = "1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Package utilities separately
+PACKAGES =+ "${PN}-binutils libelf libasm libdw"
+FILES_${PN}-binutils = "\
+ ${bindir}/eu-addr2line \
+ ${bindir}/eu-ld \
+ ${bindir}/eu-nm \
+ ${bindir}/eu-readelf \
+ ${bindir}/eu-size \
+ ${bindir}/eu-strip"
+
+FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*"
+FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*"
+FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*"
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so"
+#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so"
+
+# The package contains symlinks that trip up insane
+INSANE_SKIP_${MLPREFIX}libdw = "dev-so"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/file/file/host-file.patch b/import-layers/yocto-poky/meta/recipes-devtools/file/file/host-file.patch
deleted file mode 100644
index a7efbdcbc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/file/file/host-file.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Submitted (http://bugs.gw.com/view.php?id=485)
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 3cde199d03b39632361c275cd30fa0612a03138b Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 19 Oct 2015 10:30:57 +0100
-Subject: [PATCH 2/2] When using the host file, respect FILE_COMPILE
-
-If we're cross-compiling and not using the file binary that was just built,
-execute the binary that we've been told to use (via FILE_COMPILE) when checking
-the version instead of assuming that "file" is correct as the actual compile
-uses FILE_COMPILE so different binaries may be used.
----
- magic/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/magic/Makefile.am b/magic/Makefile.am
-index 89ac844..67067fe 100644
---- a/magic/Makefile.am
-+++ b/magic/Makefile.am
-@@ -293,7 +293,7 @@ ${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP)
- @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \
- echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \
- else \
-- v=$$(file --version | sed -e s/file-// -e q); \
-+ v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \
- if [ "$$v" != "${PACKAGE_VERSION}" ]; then \
- echo "Cannot use the installed version of file ($$v) to"; \
- echo "cross-compile file ${PACKAGE_VERSION}"; \
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.25.bb b/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.25.bb
deleted file mode 100644
index 68bad69b4..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.25.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "File classification tool"
-DESCRIPTION = "File attempts to classify files depending \
-on their contents and prints a description if a match is found."
-HOMEPAGE = "http://www.darwinsys.com/file/"
-SECTION = "console/utils"
-
-# two clause BSD
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188"
-
-DEPENDS = "zlib file-replacement-native"
-DEPENDS_class-native = "zlib-native"
-
-# Blacklist a bogus tag in upstream check
-UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
-
-SRC_URI = "git://github.com/file/file.git \
- file://debian-742262.patch \
- file://0001-Add-P-prompt-into-Usage-info.patch \
- file://host-file.patch \
- "
-
-SRCREV = "f45db89ddc91692b662fffbabbdafc7bc4c00f5e"
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OEMAKE_append_class-target = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
-EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
-
-FILES_${PN} += "${datadir}/misc/*.mgc"
-
-do_install_append_class-native() {
- create_cmdline_wrapper ${D}/${bindir}/file \
- --magic-file ${datadir}/misc/magic.mgc
-}
-
-do_install_append_class-nativesdk() {
- create_cmdline_wrapper ${D}/${bindir}/file \
- --magic-file ${datadir}/misc/magic.mgc
-}
-
-BBCLASSEXTEND = "native nativesdk"
-PROVIDES_append_class-native = " file-replacement-native"
-# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who
-# depends on file-replacement-native.
-bindir_append_class-native = "/file-native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.28.bb b/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.28.bb
new file mode 100644
index 000000000..e64a89c80
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/file/file_5.28.bb
@@ -0,0 +1,48 @@
+SUMMARY = "File classification tool"
+DESCRIPTION = "File attempts to classify files depending \
+on their contents and prints a description if a match is found."
+HOMEPAGE = "http://www.darwinsys.com/file/"
+SECTION = "console/utils"
+
+# two clause BSD
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=6a7382872edb68d33e1a9398b6e03188"
+
+DEPENDS = "zlib file-replacement-native"
+DEPENDS_class-native = "zlib-native"
+
+# Blacklist a bogus tag in upstream check
+UPSTREAM_CHECK_GITTAGREGEX = "FILE(?P<pver>(?!6_23).+)"
+
+SRC_URI = "git://github.com/file/file.git \
+ file://debian-742262.patch \
+ file://0001-Add-P-prompt-into-Usage-info.patch \
+ "
+
+SRCREV = "3c521817322a6bf5160cfeb09b9145ccde587b2a"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OEMAKE_append_class-target = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
+EXTRA_OEMAKE_append_class-nativesdk = "-e FILE_COMPILE=${STAGING_BINDIR_NATIVE}/file-native/file"
+
+CFLAGS_append = " -std=c99"
+
+FILES_${PN} += "${datadir}/misc/*.mgc"
+
+do_install_append_class-native() {
+ create_cmdline_wrapper ${D}/${bindir}/file \
+ --magic-file ${datadir}/misc/magic.mgc
+}
+
+do_install_append_class-nativesdk() {
+ create_cmdline_wrapper ${D}/${bindir}/file \
+ --magic-file ${datadir}/misc/magic.mgc
+}
+
+BBCLASSEXTEND = "native nativesdk"
+PROVIDES_append_class-native = " file-replacement-native"
+# Don't use NATIVE_PACKAGE_PATH_SUFFIX as that hides libmagic from anyone who
+# depends on file-replacement-native.
+bindir_append_class-native = "/file-native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch
new file mode 100644
index 000000000..438ca5f52
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch
@@ -0,0 +1,64 @@
+From 7072befe1397af4eb01c3ff7edf99f0cd5076089 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 30 Aug 2016 14:25:32 +0200
+Subject: [PATCH] avoid c++ comments in c-code - fails with gcc-6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+fixes:
+
+| error: C++ style comments are not allowed in ISO C90
+| num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas MĂĽller <schnitzeltony@googlemail.com>
+---
+ src/flex.skl | 2 +-
+ src/scan.c | 2 +-
+ src/skel.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/flex.skl b/src/flex.skl
+index 73a0b9e..ed71627 100644
+--- a/src/flex.skl
++++ b/src/flex.skl
+@@ -2350,7 +2350,7 @@ void yyFlexLexer::yyensure_buffer_stack(void)
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
++ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+ YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ M4_YY_CALL_LAST_ARG);
+diff --git a/src/scan.c b/src/scan.c
+index b55df2d..f1dce75 100644
+--- a/src/scan.c
++++ b/src/scan.c
+@@ -4672,7 +4672,7 @@ static void yyensure_buffer_stack (void)
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
++ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways...*/
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+diff --git a/src/skel.c b/src/skel.c
+index ef657d3..26cc889 100644
+--- a/src/skel.c
++++ b/src/skel.c
+@@ -2561,7 +2561,7 @@ const char *skel[] = {
+ " * scanner will even need a stack. We use 2 instead of 1 to avoid an",
+ " * immediate realloc on the next call.",
+ " */",
+- " num_to_alloc = 1; // After all that talk, this was set to 1 anyways...",
++ " num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */",
+ " YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc",
+ " (num_to_alloc * sizeof(struct yy_buffer_state*)",
+ " M4_YY_CALL_LAST_ARG);",
+--
+2.5.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch
new file mode 100644
index 000000000..216ac7ae1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex/CVE-2016-6354.patch
@@ -0,0 +1,59 @@
+From 3939eccdff598f47e5b37b05d58bf1b44d3796e7 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 7 Oct 2016 14:15:38 +0300
+Subject: [PATCH] Prevent buffer overflow in yy_get_next_buffer
+
+This is upstream commit a5cbe929ac3255d371e698f62dc256afe7006466
+with some additional backporting to make binutils build again.
+
+Upstream-Status: Backport
+CVE: CVE-2016-6354
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ src/flex.skl | 2 +-
+ src/scan.c | 2 +-
+ src/skel.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/flex.skl b/src/flex.skl
+index ed71627..814d562 100644
+--- a/src/flex.skl
++++ b/src/flex.skl
+@@ -1718,7 +1718,7 @@ int yyFlexLexer::yy_get_next_buffer()
+
+ else
+ {
+- yy_size_t num_to_read =
++ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+diff --git a/src/scan.c b/src/scan.c
+index f1dce75..1949872 100644
+--- a/src/scan.c
++++ b/src/scan.c
+@@ -4181,7 +4181,7 @@ static int yy_get_next_buffer (void)
+
+ else
+ {
+- yy_size_t num_to_read =
++ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+diff --git a/src/skel.c b/src/skel.c
+index 26cc889..0344d18 100644
+--- a/src/skel.c
++++ b/src/skel.c
+@@ -1929,7 +1929,7 @@ const char *skel[] = {
+ "",
+ " else",
+ " {",
+- " yy_size_t num_to_read =",
++ " int num_to_read =",
+ " YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;",
+ "",
+ " while ( num_to_read <= 0 )",
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/flex/flex_2.6.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex_2.6.0.bb
index 8285426d4..ab35b09f9 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/flex/flex_2.6.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/flex/flex_2.6.0.bb
@@ -14,12 +14,16 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/flex/flex-${PV}.tar.bz2 \
file://run-ptest \
file://do_not_create_pdf_doc.patch \
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
+ file://0002-avoid-c-comments-in-c-code-fails-with-gcc-6.patch \
+ file://CVE-2016-6354.patch \
${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \
"
SRC_URI[md5sum] = "266270f13c48ed043d95648075084d59"
SRC_URI[sha256sum] = "24e611ef5a4703a191012f80c1027dc9d12555183ce0ecd46f3636e587e9b8e9"
+# Flex has moved to github from 2.6.1 onwards
+UPSTREAM_CHECK_URI = "https://github.com/westes/flex/releases"
UPSTREAM_CHECK_REGEX = "flex-(?P<pver>\d+(\.\d+)+)\.tar"
inherit autotools gettext texinfo ptest
@@ -51,5 +55,8 @@ do_install_ptest() {
cp ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
cp -r ${S}/tests/* ${D}${PTEST_PATH}
cp -r ${B}/tests/* ${D}${PTEST_PATH}
- sed -e 's/^Makefile:/_Makefile:/' -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' -i ${D}${PTEST_PATH}/Makefile
+ sed -e 's/^Makefile:/_Makefile:/' \
+ -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/^top_srcdir = \(.*\)/top_srcdir = ./' \
+ -e 's/^builddir = \(.*\)/builddir = ./' -e 's/^top_builddir = \(.*\)/top_builddir = ./' \
+ -i ${D}${PTEST_PATH}/Makefile
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9.inc
deleted file mode 100644
index 7e03f3121..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9.inc
+++ /dev/null
@@ -1,139 +0,0 @@
-require gcc-common.inc
-
-# Third digit in PV should be incremented after a minor release
-
-PV = "4.9.3"
-
-# BINV should be incremented to a revision after a minor gcc release
-
-BINV = "4.9.3"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-4.9:"
-
-DEPENDS =+ "mpfr gmp libmpc zlib"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
-
-LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
-
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
-"
-
-SRC_URI = "\
- ${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
- file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
- file://0002-uclibc-conf.patch \
- file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
- file://0004-uclibc-locale.patch \
- file://0005-uclibc-locale-no__x.patch \
- file://0006-uclibc-locale-wchar_fix.patch \
- file://0007-uclibc-locale-update.patch \
- file://0008-missing-execinfo_h.patch \
- file://0009-c99-snprintf.patch \
- file://0010-c99-complex-ugly-hack.patch \
- file://0011-index_macro.patch \
- file://0013-libstdc-namespace.patch \
- file://0014-sh-pr24836.patch \
- file://0015-arm-Use-TARGET_ENDIAN_OPTION-for-determining-MULTILI.patch \
- file://0016-gcc-poison-system-directories.patch \
- file://0017-gcc-poison-dir-extend.patch \
- file://0018-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
- file://0019-64-bit-multilib-hack.patch \
- file://0020-optional-libstdc.patch \
- file://0021-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \
- file://0022-COLLECT_GCC_OPTIONS.patch \
- file://0023-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
- file://0025-fortran-cross-compile-hack.patch \
- file://0026-libgcc-sjlj-check.patch \
- file://0027-cpp-honor-sysroot.patch \
- file://0028-MIPS64-Default-to-N64-ABI.patch \
- file://0029-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
- file://0030-gcc-Fix-argument-list-too-long-error.patch \
- file://0031-Disable-sdt.patch \
- file://0032-libtool.patch \
- file://0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
- file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
- file://0040-fix-g++-sysroot.patch \
- file://0041-libtool-avoid-libdir.patch \
- file://0043-cpp.patch \
- file://0044-gengtypes.patch \
- file://0046-libatomic-deptracking.patch \
- file://0047-repomembug.patch \
- file://0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
- file://0050-Revert-Use-dbx_reg_number-for-spanning-registers.patch \
- file://0051-eabispe.patch \
- file://0052-Add-target-hook-to-override-DWARF2-frame-register-si.patch \
- file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \
- file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \
- file://0055-dwarf-reg-processing-helper.patch \
- file://0056-define-default-cfa-register-mapping.patch \
- file://0057-aarch64-config.patch \
- file://0058-gcc-r212171.patch \
- file://0059-gcc-PR-rtl-optimization-63348.patch \
- file://0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch \
- file://0061-target-gcc-includedir.patch \
- file://0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
- file://0063-nativesdk-gcc-support.patch \
- file://0064-handle-target-sysroot-multilib.patch \
- file://0065-gcc-483-universal-initializer-no-warning.patch \
- file://0066-cxxflags-for-build.patch \
- file://0067-fix-arm-thumb.patch \
- file://0067-gcc-musl-support.patch \
- file://0068-musl-dynamic-linker.patch \
- file://0069-musl-no-fixincludes.patch \
- file://0070-libstdc-musl.patch \
- file://0071-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch \
- file://0072-support-ffile-prefix-map.patch \
- file://0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
- file://0074-fdebug-prefix-map-support-to-remap-relative-path.patch \
-"
-SRC_URI[md5sum] = "6f831b4d251872736e8e9cc09746f327"
-SRC_URI[sha256sum] = "2332b2a5a321b57508b9031354a8503af6fdfb868b8c1748d33028d100a8b67e"
-
-UPSTREAM_CHECK_REGEX = "gcc-(?P<pver>4\.9\.\d+).tar"
-
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
-B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
-
-# Language Overrides
-FORTRAN = ""
-JAVA = ""
-
-LTO = "--enable-lto"
-
-EXTRA_OECONF_BASE = "\
- ${LTO} \
- --enable-libssp \
- --disable-bootstrap \
- --disable-libmudflap \
- --with-system-zlib \
- --with-linker-hash-style=${LINKER_HASH_STYLE} \
- --enable-linker-build-id \
- --with-ppl=no \
- --with-cloog=no \
- --enable-checking=release \
- --enable-cheaders=c_global \
-"
-
-EXTRA_OECONF_INITIAL = "\
- --disable-libmudflap \
- --disable-libgomp \
- --disable-libssp \
- --disable-libquadmath \
- --with-system-zlib \
- --disable-lto \
- --disable-plugin \
- --enable-decimal-float=no \
-"
-
-EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
-
-EXTRA_OECONF_PATHS = "\
- --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
- --with-sysroot=/not/exist \
- --with-build-sysroot=${STAGING_DIR_TARGET} \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
deleted file mode 100644
index e58801167..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From bf3d96ae58fa180b8b468d25dc2e0209daca2751 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:37:11 +0400
-Subject: [PATCH 01/35] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- configure | 2 +-
- configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index d809535..1b76c90 100755
---- a/configure
-+++ b/configure
-@@ -7439,7 +7439,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
-
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
- *" newlib "*)
- case " $target_configargs " in
-diff --git a/configure.ac b/configure.ac
-index 48ec1aa..89d1d3f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2873,7 +2873,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
-
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
- *" newlib "*)
- case " $target_configargs " in
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0002-uclibc-conf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0002-uclibc-conf.patch
deleted file mode 100644
index dda3b1041..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0002-uclibc-conf.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From d030973c872c00d916921d84deee0af2c0d38081 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:38:25 +0400
-Subject: [PATCH 02/35] uclibc-conf
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- contrib/regression/objs-gcc.sh | 4 ++++
- libjava/classpath/ltconfig | 4 ++--
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh
-index 60b0497..6dc7ead 100755
---- a/contrib/regression/objs-gcc.sh
-+++ b/contrib/regression/objs-gcc.sh
-@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ]
- then
- make all-gdb all-dejagnu all-ld || exit 1
- make install-gdb install-dejagnu install-ld || exit 1
-+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
-+ then
-+ make all-gdb all-dejagnu all-ld || exit 1
-+ make install-gdb install-dejagnu install-ld || exit 1
- elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
- make bootstrap || exit 1
- make install || exit 1
-diff --git a/libjava/classpath/ltconfig b/libjava/classpath/ltconfig
-index 743d951..ae4ea60 100755
---- a/libjava/classpath/ltconfig
-+++ b/libjava/classpath/ltconfig
-@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
--linux-gnu*) ;;
-+linux-gnu*|linux-uclibc*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-
-@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
- ;;
-
- # This must be Linux ELF.
--linux-gnu*)
-+linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0003-gcc-uclibc-locale-ctype_touplow_t.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0003-gcc-uclibc-locale-ctype_touplow_t.patch
deleted file mode 100644
index 7098e9950..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0003-gcc-uclibc-locale-ctype_touplow_t.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From d2d9dd756c4356d14dd7ae003856344cb4f37985 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:40:12 +0400
-Subject: [PATCH 03/35] gcc-uclibc-locale-ctype_touplow_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/config/locale/generic/c_locale.cc | 5 +++++
- libstdc++-v3/config/locale/generic/c_locale.h | 9 +++++++++
- libstdc++-v3/config/os/gnu-linux/ctype_base.h | 9 +++++++++
- 3 files changed, 23 insertions(+)
-
-diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
-index 0d309a5..f2f1e1f 100644
---- a/libstdc++-v3/config/locale/generic/c_locale.cc
-+++ b/libstdc++-v3/config/locale/generic/c_locale.cc
-@@ -263,5 +263,10 @@ _GLIBCXX_END_NAMESPACE_VERSION
- #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
- #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
- extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
-+#ifdef __UCLIBC__
-+// This is because __c_locale is of type __ctype_touplow_t* which is short on uclibc. for glibc its int*
-+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPs, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPs);
-+#else
- _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
-+#endif
- #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
-diff --git a/libstdc++-v3/config/locale/generic/c_locale.h b/libstdc++-v3/config/locale/generic/c_locale.h
-index b5fd989..3da9a5d 100644
---- a/libstdc++-v3/config/locale/generic/c_locale.h
-+++ b/libstdc++-v3/config/locale/generic/c_locale.h
-@@ -40,13 +40,22 @@
-
- #include <clocale>
-
-+#ifdef __UCLIBC__
-+#include <features.h>
-+#include <ctype.h>
-+#endif
-+
- #define _GLIBCXX_NUM_CATEGORIES 0
-
- namespace std _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
-
-+#ifdef __UCLIBC__
-+ typedef __ctype_touplow_t* __c_locale;
-+#else
- typedef int* __c_locale;
-+#endif
-
- // Convert numeric value of type double and long double to string and
- // return length of string. If vsnprintf is available use it, otherwise
-diff --git a/libstdc++-v3/config/os/gnu-linux/ctype_base.h b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-index 2d8e978..14eb08f 100644
---- a/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-+++ b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
-@@ -33,6 +33,11 @@
-
- // Information as gleaned from /usr/include/ctype.h
-
-+#ifdef __UCLIBC__
-+#include <features.h>
-+#include <ctype.h>
-+#endif
-+
- namespace std _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -41,7 +46,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
- struct ctype_base
- {
- // Non-standard typedefs.
-+#ifdef __UCLIBC__
-+ typedef const __ctype_touplow_t* __to_type;
-+#else
- typedef const int* __to_type;
-+#endif
-
- // NB: Offsets into ctype<char>::_M_table force a particular size
- // on the mask type. Because of this, we don't use an enum.
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0004-uclibc-locale.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0004-uclibc-locale.patch
deleted file mode 100644
index 49f5f338e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0004-uclibc-locale.patch
+++ /dev/null
@@ -1,2862 +0,0 @@
-From a55c751a449c2cbf0b3fcc07aab1b86bf9661510 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:41:39 +0400
-Subject: [PATCH 04/35] uclibc-locale
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/acinclude.m4 | 37 ++
- .../config/locale/uclibc/c++locale_internal.h | 63 ++
- libstdc++-v3/config/locale/uclibc/c_locale.cc | 160 +++++
- libstdc++-v3/config/locale/uclibc/c_locale.h | 117 ++++
- .../config/locale/uclibc/codecvt_members.cc | 308 +++++++++
- .../config/locale/uclibc/collate_members.cc | 80 +++
- libstdc++-v3/config/locale/uclibc/ctype_members.cc | 300 +++++++++
- .../config/locale/uclibc/messages_members.cc | 100 +++
- .../config/locale/uclibc/messages_members.h | 118 ++++
- .../config/locale/uclibc/monetary_members.cc | 692 ++++++++++++++++++++
- .../config/locale/uclibc/numeric_members.cc | 160 +++++
- libstdc++-v3/config/locale/uclibc/time_members.cc | 406 ++++++++++++
- libstdc++-v3/config/locale/uclibc/time_members.h | 68 ++
- libstdc++-v3/configure | 75 +++
- libstdc++-v3/include/c_compatibility/wchar.h | 2 +
- libstdc++-v3/include/c_std/cwchar | 2 +
- 16 files changed, 2688 insertions(+)
- create mode 100644 libstdc++-v3/config/locale/uclibc/c++locale_internal.h
- create mode 100644 libstdc++-v3/config/locale/uclibc/c_locale.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/c_locale.h
- create mode 100644 libstdc++-v3/config/locale/uclibc/codecvt_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/collate_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/ctype_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/messages_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/messages_members.h
- create mode 100644 libstdc++-v3/config/locale/uclibc/monetary_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/numeric_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/time_members.cc
- create mode 100644 libstdc++-v3/config/locale/uclibc/time_members.h
-
-diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
-index 0871a6a..326d7ef 100644
---- a/libstdc++-v3/acinclude.m4
-+++ b/libstdc++-v3/acinclude.m4
-@@ -1905,6 +1905,9 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
- # Default to "generic".
- if test $enable_clocale_flag = auto; then
- case ${target_os} in
-+ *-uclibc*)
-+ enable_clocale_flag=uclibc
-+ ;;
- linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- enable_clocale_flag=gnu
- ;;
-@@ -2069,6 +2072,40 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ uclibc)
-+ AC_MSG_RESULT(uclibc)
-+
-+ # Declare intention to use gettext, and add support for specific
-+ # languages.
-+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+ ALL_LINGUAS="de fr"
-+
-+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
-+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+ USE_NLS=yes
-+ fi
-+ # Export the build objects.
-+ for ling in $ALL_LINGUAS; do \
-+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+ done
-+ AC_SUBST(glibcxx_MOFILES)
-+ AC_SUBST(glibcxx_POFILES)
-+
-+ CLOCALE_H=config/locale/uclibc/c_locale.h
-+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+ CMESSAGES_H=config/locale/uclibc/messages_members.h
-+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+ CTIME_H=config/locale/uclibc/time_members.h
-+ CTIME_CC=config/locale/uclibc/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+ ;;
- esac
-
- # This is where the testsuite looks for locale catalogs, using the
-diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-new file mode 100644
-index 0000000..2ae3e4a
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -0,0 +1,63 @@
-+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
-+
-+// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+// Written by Jakub Jelinek <jakub@redhat.com>
-+
-+#include <bits/c++config.h>
-+#include <clocale>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning clean this up
-+#endif
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+
-+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
-+extern "C" __typeof(strcoll_l) __strcoll_l;
-+extern "C" __typeof(strftime_l) __strftime_l;
-+extern "C" __typeof(strtod_l) __strtod_l;
-+extern "C" __typeof(strtof_l) __strtof_l;
-+extern "C" __typeof(strtold_l) __strtold_l;
-+extern "C" __typeof(strxfrm_l) __strxfrm_l;
-+extern "C" __typeof(newlocale) __newlocale;
-+extern "C" __typeof(freelocale) __freelocale;
-+extern "C" __typeof(duplocale) __duplocale;
-+extern "C" __typeof(uselocale) __uselocale;
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+extern "C" __typeof(iswctype_l) __iswctype_l;
-+extern "C" __typeof(towlower_l) __towlower_l;
-+extern "C" __typeof(towupper_l) __towupper_l;
-+extern "C" __typeof(wcscoll_l) __wcscoll_l;
-+extern "C" __typeof(wcsftime_l) __wcsftime_l;
-+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
-+extern "C" __typeof(wctype_l) __wctype_l;
-+#endif
-+
-+#endif // GLIBC 2.3 and later
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-new file mode 100644
-index 0000000..5081dc1
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -0,0 +1,160 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8 Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <cerrno> // For errno
-+#include <locale>
-+#include <stdexcept>
-+#include <langinfo.h>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
-+#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
-+#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
-+#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
-+#define __strtof_l(S, E, L) strtof((S), (E))
-+#define __strtod_l(S, E, L) strtod((S), (E))
-+#define __strtold_l(S, E, L) strtold((S), (E))
-+#warning should dummy __newlocale check for C|POSIX ?
-+#define __newlocale(a, b, c) NULL
-+#define __freelocale(a) ((void)0)
-+#define __duplocale(a) __c_locale()
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ float __f = __strtof_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __f;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ double __d = __strtod_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __d;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
-+ const __c_locale& __cloc)
-+ {
-+ if (!(__err & ios_base::failbit))
-+ {
-+ char* __sanity;
-+ errno = 0;
-+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __ld;
-+ else
-+ __err |= ios_base::failbit;
-+ }
-+ }
-+
-+ void
-+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
-+ __c_locale __old)
-+ {
-+ __cloc = __newlocale(1 << LC_ALL, __s, __old);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ if (!__cloc)
-+ {
-+ // This named locale is not supported by the underlying OS.
-+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
-+ "name not valid"));
-+ }
-+#endif
-+ }
-+
-+ void
-+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+ {
-+ if (_S_get_c_locale() != __cloc)
-+ __freelocale(__cloc);
-+ }
-+
-+ __c_locale
-+ locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-+ { return __duplocale(__cloc); }
-+} // namespace std
-+
-+namespace __gnu_cxx
-+{
-+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-+ {
-+ "LC_CTYPE",
-+ "LC_NUMERIC",
-+ "LC_TIME",
-+ "LC_COLLATE",
-+ "LC_MONETARY",
-+ "LC_MESSAGES",
-+#if _GLIBCXX_NUM_CATEGORIES != 0
-+ "LC_PAPER",
-+ "LC_NAME",
-+ "LC_ADDRESS",
-+ "LC_TELEPHONE",
-+ "LC_MEASUREMENT",
-+ "LC_IDENTIFICATION"
-+#endif
-+ };
-+}
-+
-+namespace std
-+{
-+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-+} // namespace std
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
-new file mode 100644
-index 0000000..da07c1f
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -0,0 +1,117 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8 Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifndef _C_LOCALE_H
-+#define _C_LOCALE_H 1
-+
-+#pragma GCC system_header
-+
-+#include <cstring> // get std::strlen
-+#include <cstdio> // get std::snprintf or std::sprintf
-+#include <clocale>
-+#include <langinfo.h> // For codecvt
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <iconv.h> // For codecvt using iconv, iconv_t
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#include <libintl.h> // For messages
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning what is _GLIBCXX_C_LOCALE_GNU for
-+#endif
-+#define _GLIBCXX_C_LOCALE_GNU 1
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix categories
-+#endif
-+// #define _GLIBCXX_NUM_CATEGORIES 6
-+#define _GLIBCXX_NUM_CATEGORIES 0
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+namespace __gnu_cxx
-+{
-+ extern "C" __typeof(uselocale) __uselocale;
-+}
-+#endif
-+
-+namespace std
-+{
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ typedef __locale_t __c_locale;
-+#else
-+ typedef int* __c_locale;
-+#endif
-+
-+ // Convert numeric value of type _Tv to string and return length of
-+ // string. If snprintf is available use it, otherwise fall back to
-+ // the unsafe sprintf which, in general, can be dangerous and should
-+ // be avoided.
-+ template<typename _Tv>
-+ int
-+ __convert_from_v(char* __out,
-+ const int __size __attribute__ ((__unused__)),
-+ const char* __fmt,
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+ _Tv __v, const __c_locale& __cloc, int __prec)
-+ {
-+ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
-+#else
-+ _Tv __v, const __c_locale&, int __prec)
-+ {
-+# ifdef __UCLIBC_HAS_LOCALE__
-+ char* __old = std::setlocale(LC_ALL, NULL);
-+ char* __sav = new char[std::strlen(__old) + 1];
-+ std::strcpy(__sav, __old);
-+ std::setlocale(LC_ALL, "C");
-+# endif
-+#endif
-+
-+ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+ __gnu_cxx::__uselocale(__old);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+ std::setlocale(LC_ALL, __sav);
-+ delete [] __sav;
-+#endif
-+ return __ret;
-+ }
-+}
-+
-+#endif
-diff --git a/libstdc++-v3/config/locale/uclibc/codecvt_members.cc b/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
-new file mode 100644
-index 0000000..64aa962
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
-@@ -0,0 +1,308 @@
-+// std::codecvt implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <cstdlib> // For MB_CUR_MAX
-+#include <climits> // For MB_LEN_MAX
-+#include <bits/c++locale_internal.h>
-+
-+namespace std
-+{
-+ // Specializations.
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ codecvt_base::result
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_out(state_type& __state, const intern_type* __from,
-+ const intern_type* __from_end, const intern_type*& __from_next,
-+ extern_type* __to, extern_type* __to_end,
-+ extern_type*& __to_next) const
-+ {
-+ result __ret = ok;
-+ state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+ // wcsnrtombs is *very* fast but stops if encounters NUL characters:
-+ // in case we fall back to wcrtomb and then continue, in a loop.
-+ // NB: wcsnrtombs is a GNU extension
-+ for (__from_next = __from, __to_next = __to;
-+ __from_next < __from_end && __to_next < __to_end
-+ && __ret == ok;)
-+ {
-+ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
-+ __from_end - __from_next);
-+ if (!__from_chunk_end)
-+ __from_chunk_end = __from_end;
-+
-+ __from = __from_next;
-+ const size_t __conv = wcsnrtombs(__to_next, &__from_next,
-+ __from_chunk_end - __from_next,
-+ __to_end - __to_next, &__state);
-+ if (__conv == static_cast<size_t>(-1))
-+ {
-+ // In case of error, in order to stop at the exact place we
-+ // have to start again from the beginning with a series of
-+ // wcrtomb.
-+ for (; __from < __from_next; ++__from)
-+ __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
-+ __state = __tmp_state;
-+ __ret = error;
-+ }
-+ else if (__from_next && __from_next < __from_chunk_end)
-+ {
-+ __to_next += __conv;
-+ __ret = partial;
-+ }
-+ else
-+ {
-+ __from_next = __from_chunk_end;
-+ __to_next += __conv;
-+ }
-+
-+ if (__from_next < __from_end && __ret == ok)
-+ {
-+ extern_type __buf[MB_LEN_MAX];
-+ __tmp_state = __state;
-+ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
-+ if (__conv > static_cast<size_t>(__to_end - __to_next))
-+ __ret = partial;
-+ else
-+ {
-+ memcpy(__to_next, __buf, __conv);
-+ __state = __tmp_state;
-+ __to_next += __conv;
-+ ++__from_next;
-+ }
-+ }
-+ }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+
-+ return __ret;
-+ }
-+
-+ codecvt_base::result
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_in(state_type& __state, const extern_type* __from,
-+ const extern_type* __from_end, const extern_type*& __from_next,
-+ intern_type* __to, intern_type* __to_end,
-+ intern_type*& __to_next) const
-+ {
-+ result __ret = ok;
-+ state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+ // in case we store a L'\0' and then continue, in a loop.
-+ // NB: mbsnrtowcs is a GNU extension
-+ for (__from_next = __from, __to_next = __to;
-+ __from_next < __from_end && __to_next < __to_end
-+ && __ret == ok;)
-+ {
-+ const extern_type* __from_chunk_end;
-+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
-+ __from_end
-+ - __from_next));
-+ if (!__from_chunk_end)
-+ __from_chunk_end = __from_end;
-+
-+ __from = __from_next;
-+ size_t __conv = mbsnrtowcs(__to_next, &__from_next,
-+ __from_chunk_end - __from_next,
-+ __to_end - __to_next, &__state);
-+ if (__conv == static_cast<size_t>(-1))
-+ {
-+ // In case of error, in order to stop at the exact place we
-+ // have to start again from the beginning with a series of
-+ // mbrtowc.
-+ for (;; ++__to_next, __from += __conv)
-+ {
-+ __conv = mbrtowc(__to_next, __from, __from_end - __from,
-+ &__tmp_state);
-+ if (__conv == static_cast<size_t>(-1)
-+ || __conv == static_cast<size_t>(-2))
-+ break;
-+ }
-+ __from_next = __from;
-+ __state = __tmp_state;
-+ __ret = error;
-+ }
-+ else if (__from_next && __from_next < __from_chunk_end)
-+ {
-+ // It is unclear what to return in this case (see DR 382).
-+ __to_next += __conv;
-+ __ret = partial;
-+ }
-+ else
-+ {
-+ __from_next = __from_chunk_end;
-+ __to_next += __conv;
-+ }
-+
-+ if (__from_next < __from_end && __ret == ok)
-+ {
-+ if (__to_next < __to_end)
-+ {
-+ // XXX Probably wrong for stateful encodings
-+ __tmp_state = __state;
-+ ++__from_next;
-+ *__to_next++ = L'\0';
-+ }
-+ else
-+ __ret = partial;
-+ }
-+ }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+
-+ return __ret;
-+ }
-+
-+ int
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_encoding() const throw()
-+ {
-+ // XXX This implementation assumes that the encoding is
-+ // stateless and is either single-byte or variable-width.
-+ int __ret = 0;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+ if (MB_CUR_MAX == 1)
-+ __ret = 1;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __ret;
-+ }
-+
-+ int
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_max_length() const throw()
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+ // XXX Probably wrong for stateful encodings.
-+ int __ret = MB_CUR_MAX;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __ret;
-+ }
-+
-+ int
-+ codecvt<wchar_t, char, mbstate_t>::
-+ do_length(state_type& __state, const extern_type* __from,
-+ const extern_type* __end, size_t __max) const
-+ {
-+ int __ret = 0;
-+ state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+ // in case we advance past it and then continue, in a loop.
-+ // NB: mbsnrtowcs is a GNU extension
-+
-+ // A dummy internal buffer is needed in order for mbsnrtocws to consider
-+ // its fourth parameter (it wouldn't with NULL as first parameter).
-+ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
-+ * __max));
-+ while (__from < __end && __max)
-+ {
-+ const extern_type* __from_chunk_end;
-+ __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
-+ __end
-+ - __from));
-+ if (!__from_chunk_end)
-+ __from_chunk_end = __end;
-+
-+ const extern_type* __tmp_from = __from;
-+ size_t __conv = mbsnrtowcs(__to, &__from,
-+ __from_chunk_end - __from,
-+ __max, &__state);
-+ if (__conv == static_cast<size_t>(-1))
-+ {
-+ // In case of error, in order to stop at the exact place we
-+ // have to start again from the beginning with a series of
-+ // mbrtowc.
-+ for (__from = __tmp_from;; __from += __conv)
-+ {
-+ __conv = mbrtowc(NULL, __from, __end - __from,
-+ &__tmp_state);
-+ if (__conv == static_cast<size_t>(-1)
-+ || __conv == static_cast<size_t>(-2))
-+ break;
-+ }
-+ __state = __tmp_state;
-+ __ret += __from - __tmp_from;
-+ break;
-+ }
-+ if (!__from)
-+ __from = __from_chunk_end;
-+
-+ __ret += __from - __tmp_from;
-+ __max -= __conv;
-+
-+ if (__from < __end && __max)
-+ {
-+ // XXX Probably wrong for stateful encodings
-+ __tmp_state = __state;
-+ ++__from;
-+ ++__ret;
-+ --__max;
-+ }
-+ }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+
-+ return __ret;
-+ }
-+#endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/collate_members.cc b/libstdc++-v3/config/locale/uclibc/collate_members.cc
-new file mode 100644
-index 0000000..c2664a7
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc
-@@ -0,0 +1,80 @@
-+// std::collate implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.4.1.2 collate virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
-+#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
-+#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
-+#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
-+#endif
-+
-+namespace std
-+{
-+ // These are basically extensions to char_traits, and perhaps should
-+ // be put there instead of here.
-+ template<>
-+ int
-+ collate<char>::_M_compare(const char* __one, const char* __two) const
-+ {
-+ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
-+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+ }
-+
-+ template<>
-+ size_t
-+ collate<char>::_M_transform(char* __to, const char* __from,
-+ size_t __n) const
-+ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ template<>
-+ int
-+ collate<wchar_t>::_M_compare(const wchar_t* __one,
-+ const wchar_t* __two) const
-+ {
-+ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
-+ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+ }
-+
-+ template<>
-+ size_t
-+ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
-+ size_t __n) const
-+ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+#endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-new file mode 100644
-index 0000000..7294e3a
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -0,0 +1,300 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __wctype_l(S, L) wctype((S))
-+#define __towupper_l(C, L) towupper((C))
-+#define __towlower_l(C, L) towlower((C))
-+#define __iswctype_l(C, M, L) iswctype((C), (M))
-+#endif
-+
-+namespace std
-+{
-+ // NB: The other ctype<char> specializations are in src/locale.cc and
-+ // various /config/os/* files.
-+ template<>
-+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+ : ctype<char>(0, false, __refs)
-+ {
-+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+ {
-+ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
-+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
-+ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
-+ this->_M_table = this->_M_c_locale_ctype->__ctype_b;
-+#endif
-+ }
-+ }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ ctype<wchar_t>::__wmask_type
-+ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
-+ {
-+ __wmask_type __ret;
-+ switch (__m)
-+ {
-+ case space:
-+ __ret = __wctype_l("space", _M_c_locale_ctype);
-+ break;
-+ case print:
-+ __ret = __wctype_l("print", _M_c_locale_ctype);
-+ break;
-+ case cntrl:
-+ __ret = __wctype_l("cntrl", _M_c_locale_ctype);
-+ break;
-+ case upper:
-+ __ret = __wctype_l("upper", _M_c_locale_ctype);
-+ break;
-+ case lower:
-+ __ret = __wctype_l("lower", _M_c_locale_ctype);
-+ break;
-+ case alpha:
-+ __ret = __wctype_l("alpha", _M_c_locale_ctype);
-+ break;
-+ case digit:
-+ __ret = __wctype_l("digit", _M_c_locale_ctype);
-+ break;
-+ case punct:
-+ __ret = __wctype_l("punct", _M_c_locale_ctype);
-+ break;
-+ case xdigit:
-+ __ret = __wctype_l("xdigit", _M_c_locale_ctype);
-+ break;
-+ case alnum:
-+ __ret = __wctype_l("alnum", _M_c_locale_ctype);
-+ break;
-+ case graph:
-+ __ret = __wctype_l("graph", _M_c_locale_ctype);
-+ break;
-+ default:
-+ __ret = __wmask_type();
-+ }
-+ return __ret;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::do_toupper(wchar_t __c) const
-+ { return __towupper_l(__c, _M_c_locale_ctype); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::do_tolower(wchar_t __c) const
-+ { return __towlower_l(__c, _M_c_locale_ctype); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ bool
-+ ctype<wchar_t>::
-+ do_is(mask __m, wchar_t __c) const
-+ {
-+ // Highest bitmask in ctype_base == 10, but extra in "C"
-+ // library for blank.
-+ bool __ret = false;
-+ const size_t __bitmasksize = 11;
-+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+ if (__m & _M_bit[__bitcur]
-+ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+ {
-+ __ret = true;
-+ break;
-+ }
-+ return __ret;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+ {
-+ for (; __lo < __hi; ++__vec, ++__lo)
-+ {
-+ // Highest bitmask in ctype_base == 10, but extra in "C"
-+ // library for blank.
-+ const size_t __bitmasksize = 11;
-+ mask __m = 0;
-+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
-+ __m |= _M_bit[__bitcur];
-+ *__vec = __m;
-+ }
-+ return __hi;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi && !this->do_is(__m, *__lo))
-+ ++__lo;
-+ return __lo;
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+ {
-+ while (__lo < __hi && this->do_is(__m, *__lo) != 0)
-+ ++__lo;
-+ return __lo;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::
-+ do_widen(char __c) const
-+ { return _M_widen[static_cast<unsigned char>(__c)]; }
-+
-+ const char*
-+ ctype<wchar_t>::
-+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
-+ ++__lo;
-+ ++__dest;
-+ }
-+ return __hi;
-+ }
-+
-+ char
-+ ctype<wchar_t>::
-+ do_narrow(wchar_t __wc, char __dfault) const
-+ {
-+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
-+ return _M_narrow[__wc];
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ const int __c = wctob(__wc);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return (__c == EOF ? __dfault : static_cast<char>(__c));
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
-+ char* __dest) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ if (_M_narrow_ok)
-+ while (__lo < __hi)
-+ {
-+ if (*__lo >= 0 && *__lo < 128)
-+ *__dest = _M_narrow[*__lo];
-+ else
-+ {
-+ const int __c = wctob(*__lo);
-+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+ }
-+ ++__lo;
-+ ++__dest;
-+ }
-+ else
-+ while (__lo < __hi)
-+ {
-+ const int __c = wctob(*__lo);
-+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+ ++__lo;
-+ ++__dest;
-+ }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ return __hi;
-+ }
-+
-+ void
-+ ctype<wchar_t>::_M_initialize_ctype()
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+ wint_t __i;
-+ for (__i = 0; __i < 128; ++__i)
-+ {
-+ const int __c = wctob(__i);
-+ if (__c == EOF)
-+ break;
-+ else
-+ _M_narrow[__i] = static_cast<char>(__c);
-+ }
-+ if (__i == 128)
-+ _M_narrow_ok = true;
-+ else
-+ _M_narrow_ok = false;
-+ for (size_t __j = 0;
-+ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
-+ _M_widen[__j] = btowc(__j);
-+
-+ for (size_t __k = 0; __k <= 11; ++__k)
-+ {
-+ _M_bit[__k] = static_cast<mask>(_ISbit(__k));
-+ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
-+ }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#endif
-+ }
-+#endif // _GLIBCXX_USE_WCHAR_T
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.cc b/libstdc++-v3/config/locale/uclibc/messages_members.cc
-new file mode 100644
-index 0000000..13594d9
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc
-@@ -0,0 +1,100 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix gettext stuff
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__dcgettext(const char *domainname,
-+ const char *msgid, int category);
-+#undef gettext
-+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#else
-+#undef gettext
-+#define gettext(msgid) (msgid)
-+#endif
-+
-+namespace std
-+{
-+ // Specializations.
-+ template<>
-+ string
-+ messages<char>::do_get(catalog, int, int, const string& __dfault) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_messages);
-+ const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
-+ __uselocale(__old);
-+ return string(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_messages);
-+ const char* __msg = gettext(__dfault.c_str());
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+ return string(__msg);
-+#else
-+ const char* __msg = gettext(__dfault.c_str());
-+ return string(__msg);
-+#endif
-+ }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ template<>
-+ wstring
-+ messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
-+ {
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(_M_c_locale_messages);
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ __uselocale(__old);
-+ return _M_convert_from_char(__msg);
-+# elif defined __UCLIBC_HAS_LOCALE__
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_messages);
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+ return _M_convert_from_char(__msg);
-+# else
-+ char* __msg = gettext(_M_convert_to_char(__dfault));
-+ return _M_convert_from_char(__msg);
-+# endif
-+ }
-+#endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
-new file mode 100644
-index 0000000..1424078
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -0,0 +1,118 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2 messages functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix prototypes for *textdomain funcs
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__textdomain(const char *domainname);
-+extern "C" char *__bindtextdomain(const char *domainname,
-+ const char *dirname);
-+#else
-+#undef __textdomain
-+#undef __bindtextdomain
-+#define __textdomain(D) ((void)0)
-+#define __bindtextdomain(D,P) ((void)0)
-+#endif
-+
-+ // Non-virtual member functions.
-+ template<typename _CharT>
-+ messages<_CharT>::messages(size_t __refs)
-+ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
-+ _M_name_messages(_S_get_c_name())
-+ { }
-+
-+ template<typename _CharT>
-+ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
-+ size_t __refs)
-+ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
-+ _M_name_messages(__s)
-+ {
-+ char* __tmp = new char[std::strlen(__s) + 1];
-+ std::strcpy(__tmp, __s);
-+ _M_name_messages = __tmp;
-+ }
-+
-+ template<typename _CharT>
-+ typename messages<_CharT>::catalog
-+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
-+ const char* __dir) const
-+ {
-+ __bindtextdomain(__s.c_str(), __dir);
-+ return this->do_open(__s, __loc);
-+ }
-+
-+ // Virtual member functions.
-+ template<typename _CharT>
-+ messages<_CharT>::~messages()
-+ {
-+ if (_M_name_messages != _S_get_c_name())
-+ delete [] _M_name_messages;
-+ _S_destroy_c_locale(_M_c_locale_messages);
-+ }
-+
-+ template<typename _CharT>
-+ typename messages<_CharT>::catalog
-+ messages<_CharT>::do_open(const basic_string<char>& __s,
-+ const locale&) const
-+ {
-+ // No error checking is done, assume the catalog exists and can
-+ // be used.
-+ __textdomain(__s.c_str());
-+ return 0;
-+ }
-+
-+ template<typename _CharT>
-+ void
-+ messages<_CharT>::do_close(catalog) const
-+ { }
-+
-+ // messages_byname
-+ template<typename _CharT>
-+ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
-+ : messages<_CharT>(__refs)
-+ {
-+ if (this->_M_name_messages != locale::facet::_S_get_c_name())
-+ delete [] this->_M_name_messages;
-+ char* __tmp = new char[std::strlen(__s) + 1];
-+ std::strcpy(__tmp, __s);
-+ this->_M_name_messages = __tmp;
-+
-+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+ {
-+ this->_S_destroy_c_locale(this->_M_c_locale_messages);
-+ this->_S_create_c_locale(this->_M_c_locale_messages, __s);
-+ }
-+ }
-diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-new file mode 100644
-index 0000000..aa52731
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -0,0 +1,692 @@
-+// std::moneypunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning optimize this for uclibc
-+#warning tailor for stub locale support
-+#endif
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ // Construct and return valid pattern consisting of some combination of:
-+ // space none symbol sign value
-+ money_base::pattern
-+ money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
-+ {
-+ pattern __ret;
-+
-+ // This insanely complicated routine attempts to construct a valid
-+ // pattern for use with monyepunct. A couple of invariants:
-+
-+ // if (__precedes) symbol -> value
-+ // else value -> symbol
-+
-+ // if (__space) space
-+ // else none
-+
-+ // none == never first
-+ // space never first or last
-+
-+ // Any elegant implementations of this are welcome.
-+ switch (__posn)
-+ {
-+ case 0:
-+ case 1:
-+ // 1 The sign precedes the value and symbol.
-+ __ret.field[0] = sign;
-+ if (__space)
-+ {
-+ // Pattern starts with sign.
-+ if (__precedes)
-+ {
-+ __ret.field[1] = symbol;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[1] = value;
-+ __ret.field[3] = symbol;
-+ }
-+ __ret.field[2] = space;
-+ }
-+ else
-+ {
-+ // Pattern starts with sign and ends with none.
-+ if (__precedes)
-+ {
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[1] = value;
-+ __ret.field[2] = symbol;
-+ }
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ case 2:
-+ // 2 The sign follows the value and symbol.
-+ if (__space)
-+ {
-+ // Pattern either ends with sign.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[2] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[2] = symbol;
-+ }
-+ __ret.field[1] = space;
-+ __ret.field[3] = sign;
-+ }
-+ else
-+ {
-+ // Pattern ends with sign then none.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = value;
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ __ret.field[1] = symbol;
-+ }
-+ __ret.field[2] = sign;
-+ __ret.field[3] = none;
-+ }
-+ break;
-+ case 3:
-+ // 3 The sign immediately precedes the symbol.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = sign;
-+ __ret.field[1] = symbol;
-+ if (__space)
-+ {
-+ __ret.field[2] = space;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[2] = value;
-+ __ret.field[3] = none;
-+ }
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ if (__space)
-+ {
-+ __ret.field[1] = space;
-+ __ret.field[2] = sign;
-+ __ret.field[3] = symbol;
-+ }
-+ else
-+ {
-+ __ret.field[1] = sign;
-+ __ret.field[2] = symbol;
-+ __ret.field[3] = none;
-+ }
-+ }
-+ break;
-+ case 4:
-+ // 4 The sign immediately follows the symbol.
-+ if (__precedes)
-+ {
-+ __ret.field[0] = symbol;
-+ __ret.field[1] = sign;
-+ if (__space)
-+ {
-+ __ret.field[2] = space;
-+ __ret.field[3] = value;
-+ }
-+ else
-+ {
-+ __ret.field[2] = value;
-+ __ret.field[3] = none;
-+ }
-+ }
-+ else
-+ {
-+ __ret.field[0] = value;
-+ if (__space)
-+ {
-+ __ret.field[1] = space;
-+ __ret.field[2] = symbol;
-+ __ret.field[3] = sign;
-+ }
-+ else
-+ {
-+ __ret.field[1] = symbol;
-+ __ret.field[2] = sign;
-+ __ret.field[3] = none;
-+ }
-+ }
-+ break;
-+ default:
-+ ;
-+ }
-+ return __ret;
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+ const char*)
-+ {
-+ if (!_M_data)
-+ _M_data = new __moneypunct_cache<char, true>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_decimal_point = '.';
-+ _M_data->_M_thousands_sep = ',';
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_curr_symbol = "";
-+ _M_data->_M_curr_symbol_size = 0;
-+ _M_data->_M_positive_sign = "";
-+ _M_data->_M_positive_sign_size = 0;
-+ _M_data->_M_negative_sign = "";
-+ _M_data->_M_negative_sign_size = 0;
-+ _M_data->_M_frac_digits = 0;
-+ _M_data->_M_pos_format = money_base::_S_default_pattern;
-+ _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
-+ __cloc));
-+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
-+ __cloc));
-+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+ if (!__nposn)
-+ _M_data->_M_negative_sign = "()";
-+ else
-+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+ __cloc);
-+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+ // _Intl == true
-+ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
-+ __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+ __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+ __nposn);
-+ }
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+ const char*)
-+ {
-+ if (!_M_data)
-+ _M_data = new __moneypunct_cache<char, false>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_decimal_point = '.';
-+ _M_data->_M_thousands_sep = ',';
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_curr_symbol = "";
-+ _M_data->_M_curr_symbol_size = 0;
-+ _M_data->_M_positive_sign = "";
-+ _M_data->_M_positive_sign_size = 0;
-+ _M_data->_M_negative_sign = "";
-+ _M_data->_M_negative_sign_size = 0;
-+ _M_data->_M_frac_digits = 0;
-+ _M_data->_M_pos_format = money_base::_S_default_pattern;
-+ _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
-+ __cloc));
-+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
-+ __cloc));
-+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+ if (!__nposn)
-+ _M_data->_M_negative_sign = "()";
-+ else
-+ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+ __cloc);
-+ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+ // _Intl == false
-+ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+ __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+ __nposn);
-+ }
-+ }
-+
-+ template<>
-+ moneypunct<char, true>::~moneypunct()
-+ { delete _M_data; }
-+
-+ template<>
-+ moneypunct<char, false>::~moneypunct()
-+ { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ template<>
-+ void
-+ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ const char*)
-+#else
-+ const char* __name)
-+#endif
-+ {
-+ if (!_M_data)
-+ _M_data = new __moneypunct_cache<wchar_t, true>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_decimal_point = L'.';
-+ _M_data->_M_thousands_sep = L',';
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_curr_symbol = L"";
-+ _M_data->_M_curr_symbol_size = 0;
-+ _M_data->_M_positive_sign = L"";
-+ _M_data->_M_positive_sign_size = 0;
-+ _M_data->_M_negative_sign = L"";
-+ _M_data->_M_negative_sign_size = 0;
-+ _M_data->_M_frac_digits = 0;
-+ _M_data->_M_pos_format = money_base::_S_default_pattern;
-+ _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+ // Use ctype::widen code without the facet...
-+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+ _M_data->_M_atoms[__i] =
-+ static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+ }
-+ else
-+ {
-+ // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(__cloc);
-+#else
-+ // Switch to named locale so that mbsrtowcs will work.
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+ union { char *__s; wchar_t __w; } __u;
-+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+ _M_data->_M_decimal_point = __u.__w;
-+
-+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+ _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+
-+ wchar_t* __wcs_ps = 0;
-+ wchar_t* __wcs_ns = 0;
-+ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+ try
-+ {
-+ mbstate_t __state;
-+ size_t __len = strlen(__cpossign);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ __wcs_ps = new wchar_t[__len];
-+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+ _M_data->_M_positive_sign = __wcs_ps;
-+ }
-+ else
-+ _M_data->_M_positive_sign = L"";
-+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+
-+ __len = strlen(__cnegsign);
-+ if (!__nposn)
-+ _M_data->_M_negative_sign = L"()";
-+ else if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ __wcs_ns = new wchar_t[__len];
-+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+ _M_data->_M_negative_sign = __wcs_ns;
-+ }
-+ else
-+ _M_data->_M_negative_sign = L"";
-+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+ // _Intl == true.
-+ __len = strlen(__ccurr);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+ _M_data->_M_curr_symbol = __wcs;
-+ }
-+ else
-+ _M_data->_M_curr_symbol = L"";
-+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+ }
-+ catch (...)
-+ {
-+ delete _M_data;
-+ _M_data = 0;
-+ delete __wcs_ps;
-+ delete __wcs_ns;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ __throw_exception_again;
-+ }
-+
-+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
-+ __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+ __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+ __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+ }
-+
-+ template<>
-+ void
-+ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ const char*)
-+#else
-+ const char* __name)
-+#endif
-+ {
-+ if (!_M_data)
-+ _M_data = new __moneypunct_cache<wchar_t, false>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_decimal_point = L'.';
-+ _M_data->_M_thousands_sep = L',';
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_curr_symbol = L"";
-+ _M_data->_M_curr_symbol_size = 0;
-+ _M_data->_M_positive_sign = L"";
-+ _M_data->_M_positive_sign_size = 0;
-+ _M_data->_M_negative_sign = L"";
-+ _M_data->_M_negative_sign_size = 0;
-+ _M_data->_M_frac_digits = 0;
-+ _M_data->_M_pos_format = money_base::_S_default_pattern;
-+ _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+ // Use ctype::widen code without the facet...
-+ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+ _M_data->_M_atoms[__i] =
-+ static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+ }
-+ else
-+ {
-+ // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __c_locale __old = __uselocale(__cloc);
-+#else
-+ // Switch to named locale so that mbsrtowcs will work.
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+ union { char *__s; wchar_t __w; } __u;
-+ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+ _M_data->_M_decimal_point = __u.__w;
-+
-+ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+ _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+
-+ wchar_t* __wcs_ps = 0;
-+ wchar_t* __wcs_ns = 0;
-+ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+ try
-+ {
-+ mbstate_t __state;
-+ size_t __len;
-+ __len = strlen(__cpossign);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ __wcs_ps = new wchar_t[__len];
-+ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+ _M_data->_M_positive_sign = __wcs_ps;
-+ }
-+ else
-+ _M_data->_M_positive_sign = L"";
-+ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+
-+ __len = strlen(__cnegsign);
-+ if (!__nposn)
-+ _M_data->_M_negative_sign = L"()";
-+ else if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ __wcs_ns = new wchar_t[__len];
-+ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+ _M_data->_M_negative_sign = __wcs_ns;
-+ }
-+ else
-+ _M_data->_M_negative_sign = L"";
-+ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+ // _Intl == true.
-+ __len = strlen(__ccurr);
-+ if (__len)
-+ {
-+ ++__len;
-+ memset(&__state, 0, sizeof(mbstate_t));
-+ wchar_t* __wcs = new wchar_t[__len];
-+ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+ _M_data->_M_curr_symbol = __wcs;
-+ }
-+ else
-+ _M_data->_M_curr_symbol = L"";
-+ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+ }
-+ catch (...)
-+ {
-+ delete _M_data;
-+ _M_data = 0;
-+ delete __wcs_ps;
-+ delete __wcs_ns;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ __throw_exception_again;
-+ }
-+
-+ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
-+ __pposn);
-+ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
-+ __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __uselocale(__old);
-+#else
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ }
-+ }
-+
-+ template<>
-+ moneypunct<wchar_t, true>::~moneypunct()
-+ {
-+ if (_M_data->_M_positive_sign_size)
-+ delete [] _M_data->_M_positive_sign;
-+ if (_M_data->_M_negative_sign_size
-+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+ delete [] _M_data->_M_negative_sign;
-+ if (_M_data->_M_curr_symbol_size)
-+ delete [] _M_data->_M_curr_symbol;
-+ delete _M_data;
-+ }
-+
-+ template<>
-+ moneypunct<wchar_t, false>::~moneypunct()
-+ {
-+ if (_M_data->_M_positive_sign_size)
-+ delete [] _M_data->_M_positive_sign;
-+ if (_M_data->_M_negative_sign_size
-+ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+ delete [] _M_data->_M_negative_sign;
-+ if (_M_data->_M_curr_symbol_size)
-+ delete [] _M_data->_M_curr_symbol;
-+ delete _M_data;
-+ }
-+#endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-new file mode 100644
-index 0000000..883ec1a
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -0,0 +1,160 @@
-+// std::numpunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
-+ {
-+ if (!_M_data)
-+ _M_data = new __numpunct_cache<char>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_use_grouping = false;
-+
-+ _M_data->_M_decimal_point = '.';
-+ _M_data->_M_thousands_sep = ',';
-+
-+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
-+
-+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
-+ }
-+ else
-+ {
-+ // Named locale.
-+ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
-+ __cloc));
-+ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
-+ __cloc));
-+
-+ // Check for NULL, which implies no grouping.
-+ if (_M_data->_M_thousands_sep == '\0')
-+ _M_data->_M_grouping = "";
-+ else
-+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+ }
-+
-+ // NB: There is no way to extact this info from posix locales.
-+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+ _M_data->_M_truename = "true";
-+ _M_data->_M_truename_size = 4;
-+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+ _M_data->_M_falsename = "false";
-+ _M_data->_M_falsename_size = 5;
-+ }
-+
-+ template<>
-+ numpunct<char>::~numpunct()
-+ { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ template<>
-+ void
-+ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
-+ {
-+ if (!_M_data)
-+ _M_data = new __numpunct_cache<wchar_t>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_data->_M_grouping = "";
-+ _M_data->_M_grouping_size = 0;
-+ _M_data->_M_use_grouping = false;
-+
-+ _M_data->_M_decimal_point = L'.';
-+ _M_data->_M_thousands_sep = L',';
-+
-+ // Use ctype::widen code without the facet...
-+ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+ _M_data->_M_atoms_out[__i] =
-+ static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
-+
-+ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+ _M_data->_M_atoms_in[__j] =
-+ static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
-+ }
-+ else
-+ {
-+ // Named locale.
-+ // NB: In the GNU model wchar_t is always 32 bit wide.
-+ union { char *__s; wchar_t __w; } __u;
-+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
-+ _M_data->_M_decimal_point = __u.__w;
-+
-+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
-+ _M_data->_M_thousands_sep = __u.__w;
-+
-+ if (_M_data->_M_thousands_sep == L'\0')
-+ _M_data->_M_grouping = "";
-+ else
-+ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+ }
-+
-+ // NB: There is no way to extact this info from posix locales.
-+ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+ _M_data->_M_truename = L"true";
-+ _M_data->_M_truename_size = 4;
-+ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+ _M_data->_M_falsename = L"false";
-+ _M_data->_M_falsename_size = 5;
-+ }
-+
-+ template<>
-+ numpunct<wchar_t>::~numpunct()
-+ { delete _M_data; }
-+ #endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
-new file mode 100644
-index 0000000..e0707d7
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -0,0 +1,406 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L) nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+ template<>
-+ void
-+ __timepunct<char>::
-+ _M_put(char* __s, size_t __maxlen, const char* __format,
-+ const tm* __tm) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
-+ _M_c_locale_timepunct);
-+#else
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_timepunct);
-+ const size_t __len = strftime(__s, __maxlen, __format, __tm);
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ // Make sure __s is null terminated.
-+ if (__len == 0)
-+ __s[0] = '\0';
-+ }
-+
-+ template<>
-+ void
-+ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
-+ {
-+ if (!_M_data)
-+ _M_data = new __timepunct_cache<char>;
-+
-+ if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_c_locale_timepunct = _S_get_c_locale();
-+
-+ _M_data->_M_date_format = "%m/%d/%y";
-+ _M_data->_M_date_era_format = "%m/%d/%y";
-+ _M_data->_M_time_format = "%H:%M:%S";
-+ _M_data->_M_time_era_format = "%H:%M:%S";
-+ _M_data->_M_date_time_format = "";
-+ _M_data->_M_date_time_era_format = "";
-+ _M_data->_M_am = "AM";
-+ _M_data->_M_pm = "PM";
-+ _M_data->_M_am_pm_format = "";
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_data->_M_day1 = "Sunday";
-+ _M_data->_M_day2 = "Monday";
-+ _M_data->_M_day3 = "Tuesday";
-+ _M_data->_M_day4 = "Wednesday";
-+ _M_data->_M_day5 = "Thursday";
-+ _M_data->_M_day6 = "Friday";
-+ _M_data->_M_day7 = "Saturday";
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_data->_M_aday1 = "Sun";
-+ _M_data->_M_aday2 = "Mon";
-+ _M_data->_M_aday3 = "Tue";
-+ _M_data->_M_aday4 = "Wed";
-+ _M_data->_M_aday5 = "Thu";
-+ _M_data->_M_aday6 = "Fri";
-+ _M_data->_M_aday7 = "Sat";
-+
-+ // Month names, starting with "C"'s January.
-+ _M_data->_M_month01 = "January";
-+ _M_data->_M_month02 = "February";
-+ _M_data->_M_month03 = "March";
-+ _M_data->_M_month04 = "April";
-+ _M_data->_M_month05 = "May";
-+ _M_data->_M_month06 = "June";
-+ _M_data->_M_month07 = "July";
-+ _M_data->_M_month08 = "August";
-+ _M_data->_M_month09 = "September";
-+ _M_data->_M_month10 = "October";
-+ _M_data->_M_month11 = "November";
-+ _M_data->_M_month12 = "December";
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_data->_M_amonth01 = "Jan";
-+ _M_data->_M_amonth02 = "Feb";
-+ _M_data->_M_amonth03 = "Mar";
-+ _M_data->_M_amonth04 = "Apr";
-+ _M_data->_M_amonth05 = "May";
-+ _M_data->_M_amonth06 = "Jun";
-+ _M_data->_M_amonth07 = "Jul";
-+ _M_data->_M_amonth08 = "Aug";
-+ _M_data->_M_amonth09 = "Sep";
-+ _M_data->_M_amonth10 = "Oct";
-+ _M_data->_M_amonth11 = "Nov";
-+ _M_data->_M_amonth12 = "Dec";
-+ }
-+ else
-+ {
-+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
-+ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
-+ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
-+ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
-+ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
-+ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
-+ __cloc);
-+ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
-+ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
-+ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
-+ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
-+ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
-+ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
-+ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
-+ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
-+ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
-+ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
-+ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
-+ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
-+ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
-+ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
-+ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
-+
-+ // Month names, starting with "C"'s January.
-+ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
-+ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
-+ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
-+ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
-+ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
-+ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
-+ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
-+ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
-+ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
-+ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
-+ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
-+ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
-+ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
-+ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
-+ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
-+ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
-+ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
-+ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
-+ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
-+ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
-+ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
-+ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
-+ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
-+ }
-+ }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ template<>
-+ void
-+ __timepunct<wchar_t>::
-+ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
-+ const tm* __tm) const
-+ {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
-+ _M_c_locale_timepunct);
-+#else
-+ char* __old = strdup(setlocale(LC_ALL, NULL));
-+ setlocale(LC_ALL, _M_name_timepunct);
-+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
-+ setlocale(LC_ALL, __old);
-+ free(__old);
-+#endif
-+ // Make sure __s is null terminated.
-+ if (__len == 0)
-+ __s[0] = L'\0';
-+ }
-+
-+ template<>
-+ void
-+ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
-+ {
-+ if (!_M_data)
-+ _M_data = new __timepunct_cache<wchar_t>;
-+
-+#warning wide time stuff
-+// if (!__cloc)
-+ {
-+ // "C" locale
-+ _M_c_locale_timepunct = _S_get_c_locale();
-+
-+ _M_data->_M_date_format = L"%m/%d/%y";
-+ _M_data->_M_date_era_format = L"%m/%d/%y";
-+ _M_data->_M_time_format = L"%H:%M:%S";
-+ _M_data->_M_time_era_format = L"%H:%M:%S";
-+ _M_data->_M_date_time_format = L"";
-+ _M_data->_M_date_time_era_format = L"";
-+ _M_data->_M_am = L"AM";
-+ _M_data->_M_pm = L"PM";
-+ _M_data->_M_am_pm_format = L"";
-+
-+ // Day names, starting with "C"'s Sunday.
-+ _M_data->_M_day1 = L"Sunday";
-+ _M_data->_M_day2 = L"Monday";
-+ _M_data->_M_day3 = L"Tuesday";
-+ _M_data->_M_day4 = L"Wednesday";
-+ _M_data->_M_day5 = L"Thursday";
-+ _M_data->_M_day6 = L"Friday";
-+ _M_data->_M_day7 = L"Saturday";
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ _M_data->_M_aday1 = L"Sun";
-+ _M_data->_M_aday2 = L"Mon";
-+ _M_data->_M_aday3 = L"Tue";
-+ _M_data->_M_aday4 = L"Wed";
-+ _M_data->_M_aday5 = L"Thu";
-+ _M_data->_M_aday6 = L"Fri";
-+ _M_data->_M_aday7 = L"Sat";
-+
-+ // Month names, starting with "C"'s January.
-+ _M_data->_M_month01 = L"January";
-+ _M_data->_M_month02 = L"February";
-+ _M_data->_M_month03 = L"March";
-+ _M_data->_M_month04 = L"April";
-+ _M_data->_M_month05 = L"May";
-+ _M_data->_M_month06 = L"June";
-+ _M_data->_M_month07 = L"July";
-+ _M_data->_M_month08 = L"August";
-+ _M_data->_M_month09 = L"September";
-+ _M_data->_M_month10 = L"October";
-+ _M_data->_M_month11 = L"November";
-+ _M_data->_M_month12 = L"December";
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ _M_data->_M_amonth01 = L"Jan";
-+ _M_data->_M_amonth02 = L"Feb";
-+ _M_data->_M_amonth03 = L"Mar";
-+ _M_data->_M_amonth04 = L"Apr";
-+ _M_data->_M_amonth05 = L"May";
-+ _M_data->_M_amonth06 = L"Jun";
-+ _M_data->_M_amonth07 = L"Jul";
-+ _M_data->_M_amonth08 = L"Aug";
-+ _M_data->_M_amonth09 = L"Sep";
-+ _M_data->_M_amonth10 = L"Oct";
-+ _M_data->_M_amonth11 = L"Nov";
-+ _M_data->_M_amonth12 = L"Dec";
-+ }
-+#if 0
-+ else
-+ {
-+ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
-+
-+ union { char *__s; wchar_t *__w; } __u;
-+
-+ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
-+ _M_data->_M_date_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
-+ _M_data->_M_date_era_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
-+ _M_data->_M_time_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
-+ _M_data->_M_time_era_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
-+ _M_data->_M_date_time_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
-+ _M_data->_M_date_time_era_format = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
-+ _M_data->_M_am = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
-+ _M_data->_M_pm = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
-+ _M_data->_M_am_pm_format = __u.__w;
-+
-+ // Day names, starting with "C"'s Sunday.
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
-+ _M_data->_M_day1 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
-+ _M_data->_M_day2 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
-+ _M_data->_M_day3 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
-+ _M_data->_M_day4 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
-+ _M_data->_M_day5 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
-+ _M_data->_M_day6 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
-+ _M_data->_M_day7 = __u.__w;
-+
-+ // Abbreviated day names, starting with "C"'s Sun.
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
-+ _M_data->_M_aday1 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
-+ _M_data->_M_aday2 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
-+ _M_data->_M_aday3 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
-+ _M_data->_M_aday4 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
-+ _M_data->_M_aday5 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
-+ _M_data->_M_aday6 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
-+ _M_data->_M_aday7 = __u.__w;
-+
-+ // Month names, starting with "C"'s January.
-+ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
-+ _M_data->_M_month01 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
-+ _M_data->_M_month02 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
-+ _M_data->_M_month03 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
-+ _M_data->_M_month04 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
-+ _M_data->_M_month05 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
-+ _M_data->_M_month06 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
-+ _M_data->_M_month07 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
-+ _M_data->_M_month08 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
-+ _M_data->_M_month09 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
-+ _M_data->_M_month10 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
-+ _M_data->_M_month11 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
-+ _M_data->_M_month12 = __u.__w;
-+
-+ // Abbreviated month names, starting with "C"'s Jan.
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
-+ _M_data->_M_amonth01 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
-+ _M_data->_M_amonth02 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
-+ _M_data->_M_amonth03 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
-+ _M_data->_M_amonth04 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
-+ _M_data->_M_amonth05 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
-+ _M_data->_M_amonth06 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
-+ _M_data->_M_amonth07 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
-+ _M_data->_M_amonth08 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
-+ _M_data->_M_amonth09 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
-+ _M_data->_M_amonth10 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
-+ _M_data->_M_amonth11 = __u.__w;
-+ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
-+ _M_data->_M_amonth12 = __u.__w;
-+ }
-+#endif // 0
-+ }
-+#endif
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.h b/libstdc++-v3/config/locale/uclibc/time_members.h
-new file mode 100644
-index 0000000..ba8e858
---- /dev/null
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -0,0 +1,68 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library. This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING. If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction. Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License. This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::__timepunct(size_t __refs)
-+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-+ _M_name_timepunct(_S_get_c_name())
-+ { _M_initialize_timepunct(); }
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
-+ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
-+ _M_name_timepunct(_S_get_c_name())
-+ { _M_initialize_timepunct(); }
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
-+ size_t __refs)
-+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-+ _M_name_timepunct(__s)
-+ {
-+ char* __tmp = new char[std::strlen(__s) + 1];
-+ std::strcpy(__tmp, __s);
-+ _M_name_timepunct = __tmp;
-+ _M_initialize_timepunct(__cloc);
-+ }
-+
-+ template<typename _CharT>
-+ __timepunct<_CharT>::~__timepunct()
-+ {
-+ if (_M_name_timepunct != _S_get_c_name())
-+ delete [] _M_name_timepunct;
-+ delete _M_data;
-+ _S_destroy_c_locale(_M_c_locale_timepunct);
-+ }
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index f40ddcf..c57a751 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -15822,6 +15822,9 @@ fi
- # Default to "generic".
- if test $enable_clocale_flag = auto; then
- case ${target_os} in
-+ *-uclibc*)
-+ enable_clocale_flag=uclibc
-+ ;;
- linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
- enable_clocale_flag=gnu
- ;;
-@@ -16079,6 +16082,78 @@ $as_echo "newlib" >&6; }
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ uclibc)
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: uclibc" >&5
-+$as_echo "uclibc" >&6; }
-+
-+ # Declare intention to use gettext, and add support for specific
-+ # languages.
-+ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+ ALL_LINGUAS="de fr"
-+
-+ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+ # Extract the first word of "msgfmt", so it can be a program name with args.
-+set dummy msgfmt; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if test "${ac_cv_prog_check_msgfmt+set}" = set; then :
-+ $as_echo_n "(cached) " >&6
-+else
-+ if test -n "$check_msgfmt"; then
-+ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-+ ac_cv_prog_check_msgfmt="yes"
-+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+ done
-+IFS=$as_save_IFS
-+
-+ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
-+fi
-+fi
-+check_msgfmt=$ac_cv_prog_check_msgfmt
-+if test -n "$check_msgfmt"; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_msgfmt" >&5
-+$as_echo "$check_msgfmt" >&6; }
-+else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+ USE_NLS=yes
-+ fi
-+ # Export the build objects.
-+ for ling in $ALL_LINGUAS; do \
-+ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+ done
-+
-+
-+
-+ CLOCALE_H=config/locale/uclibc/c_locale.h
-+ CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+ CMESSAGES_H=config/locale/uclibc/messages_members.h
-+ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+ CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+ CTIME_H=config/locale/uclibc/time_members.h
-+ CTIME_CC=config/locale/uclibc/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+ ;;
- esac
-
- # This is where the testsuite looks for locale catalogs, using the
-diff --git a/libstdc++-v3/include/c_compatibility/wchar.h b/libstdc++-v3/include/c_compatibility/wchar.h
-index 580d725..3fe61b8 100644
---- a/libstdc++-v3/include/c_compatibility/wchar.h
-+++ b/libstdc++-v3/include/c_compatibility/wchar.h
-@@ -101,7 +101,9 @@ using std::wmemcmp;
- using std::wmemcpy;
- using std::wmemmove;
- using std::wmemset;
-+#if _GLIBCXX_HAVE_WCSFTIME
- using std::wcsftime;
-+#endif
-
- #if _GLIBCXX_USE_C99
- using std::wcstold;
-diff --git a/libstdc++-v3/include/c_std/cwchar b/libstdc++-v3/include/c_std/cwchar
-index 0e6b1fc..405aee2 100644
---- a/libstdc++-v3/include/c_std/cwchar
-+++ b/libstdc++-v3/include/c_std/cwchar
-@@ -175,7 +175,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
- using ::wcscoll;
- using ::wcscpy;
- using ::wcscspn;
-+#if _GLIBCXX_HAVE_WCSFTIME
- using ::wcsftime;
-+#endif
- using ::wcslen;
- using ::wcsncat;
- using ::wcsncmp;
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0005-uclibc-locale-no__x.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0005-uclibc-locale-no__x.patch
deleted file mode 100644
index dcbbfe454..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0005-uclibc-locale-no__x.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From 6a3e8506a12c12728d8b29901defd738be43757f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:42:36 +0400
-Subject: [PATCH 05/35] uclibc-locale-no__x
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- .../config/locale/uclibc/c++locale_internal.h | 45 ++++++++++++++++++++
- libstdc++-v3/config/locale/uclibc/c_locale.cc | 14 ------
- libstdc++-v3/config/locale/uclibc/c_locale.h | 1 +
- .../config/locale/uclibc/collate_members.cc | 7 ---
- libstdc++-v3/config/locale/uclibc/ctype_members.cc | 7 ---
- .../config/locale/uclibc/messages_members.cc | 7 +--
- .../config/locale/uclibc/messages_members.h | 18 +++-----
- .../config/locale/uclibc/monetary_members.cc | 4 --
- .../config/locale/uclibc/numeric_members.cc | 3 --
- libstdc++-v3/config/locale/uclibc/time_members.cc | 3 --
- 10 files changed, 55 insertions(+), 54 deletions(-)
-
-diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-index 2ae3e4a..e74fddf 100644
---- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-+++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
- extern "C" __typeof(wctype_l) __wctype_l;
- #endif
-
-+# define __nl_langinfo_l nl_langinfo_l
-+# define __strcoll_l strcoll_l
-+# define __strftime_l strftime_l
-+# define __strtod_l strtod_l
-+# define __strtof_l strtof_l
-+# define __strtold_l strtold_l
-+# define __strxfrm_l strxfrm_l
-+# define __newlocale newlocale
-+# define __freelocale freelocale
-+# define __duplocale duplocale
-+# define __uselocale uselocale
-+
-+# ifdef _GLIBCXX_USE_WCHAR_T
-+# define __iswctype_l iswctype_l
-+# define __towlower_l towlower_l
-+# define __towupper_l towupper_l
-+# define __wcscoll_l wcscoll_l
-+# define __wcsftime_l wcsftime_l
-+# define __wcsxfrm_l wcsxfrm_l
-+# define __wctype_l wctype_l
-+# endif
-+
-+#else
-+# define __nl_langinfo_l(N, L) nl_langinfo((N))
-+# define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
-+# define __strtod_l(S, E, L) strtod((S), (E))
-+# define __strtof_l(S, E, L) strtof((S), (E))
-+# define __strtold_l(S, E, L) strtold((S), (E))
-+# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
-+# warning should dummy __newlocale check for C|POSIX ?
-+# define __newlocale(a, b, c) NULL
-+# define __freelocale(a) ((void)0)
-+# define __duplocale(a) __c_locale()
-+//# define __uselocale ?
-+//
-+# ifdef _GLIBCXX_USE_WCHAR_T
-+# define __iswctype_l(C, M, L) iswctype((C), (M))
-+# define __towlower_l(C, L) towlower((C))
-+# define __towupper_l(C, L) towupper((C))
-+# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
-+//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T))
-+# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
-+# define __wctype_l(S, L) wctype((S))
-+# endif
-+
- #endif // GLIBC 2.3 and later
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-index 5081dc1..21430d0 100644
---- a/libstdc++-v3/config/locale/uclibc/c_locale.cc
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -39,20 +39,6 @@
- #include <langinfo.h>
- #include <bits/c++locale_internal.h>
-
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
--#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
--#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
--#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
--#define __strtof_l(S, E, L) strtof((S), (E))
--#define __strtod_l(S, E, L) strtod((S), (E))
--#define __strtold_l(S, E, L) strtold((S), (E))
--#warning should dummy __newlocale check for C|POSIX ?
--#define __newlocale(a, b, c) NULL
--#define __freelocale(a) ((void)0)
--#define __duplocale(a) __c_locale()
--#endif
--
- namespace std
- {
- template<>
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
-index da07c1f..4bca5f1 100644
---- a/libstdc++-v3/config/locale/uclibc/c_locale.h
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -68,6 +68,7 @@ namespace __gnu_cxx
- {
- extern "C" __typeof(uselocale) __uselocale;
- }
-+#define __uselocale uselocale
- #endif
-
- namespace std
-diff --git a/libstdc++-v3/config/locale/uclibc/collate_members.cc b/libstdc++-v3/config/locale/uclibc/collate_members.cc
-index c2664a7..ec5c329 100644
---- a/libstdc++-v3/config/locale/uclibc/collate_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc
-@@ -36,13 +36,6 @@
- #include <locale>
- #include <bits/c++locale_internal.h>
-
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
--#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
--#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
--#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
--#endif
--
- namespace std
- {
- // These are basically extensions to char_traits, and perhaps should
-diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-index 7294e3a..7b12861 100644
---- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -38,13 +38,6 @@
- #undef _LIBC
- #include <bits/c++locale_internal.h>
-
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __wctype_l(S, L) wctype((S))
--#define __towupper_l(C, L) towupper((C))
--#define __towlower_l(C, L) towlower((C))
--#define __iswctype_l(C, M, L) iswctype((C), (M))
--#endif
--
- namespace std
- {
- // NB: The other ctype<char> specializations are in src/locale.cc and
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.cc b/libstdc++-v3/config/locale/uclibc/messages_members.cc
-index 13594d9..d7693b4 100644
---- a/libstdc++-v3/config/locale/uclibc/messages_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc
-@@ -39,13 +39,10 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix gettext stuff
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--extern "C" char *__dcgettext(const char *domainname,
-- const char *msgid, int category);
- #undef gettext
--#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
- #else
--#undef gettext
- #define gettext(msgid) (msgid)
- #endif
-
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
-index 1424078..d89da33 100644
---- a/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -36,15 +36,11 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix prototypes for *textdomain funcs
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--extern "C" char *__textdomain(const char *domainname);
--extern "C" char *__bindtextdomain(const char *domainname,
-- const char *dirname);
--#else
--#undef __textdomain
--#undef __bindtextdomain
--#define __textdomain(D) ((void)0)
--#define __bindtextdomain(D,P) ((void)0)
-+#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#undef textdomain
-+#undef bindtextdomain
-+#define textdomain(D) ((void)0)
-+#define bindtextdomain(D,P) ((void)0)
- #endif
-
- // Non-virtual member functions.
-@@ -70,7 +66,7 @@ extern "C" char *__bindtextdomain(const char *domainname,
- messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
- const char* __dir) const
- {
-- __bindtextdomain(__s.c_str(), __dir);
-+ bindtextdomain(__s.c_str(), __dir);
- return this->do_open(__s, __loc);
- }
-
-@@ -90,7 +86,7 @@ extern "C" char *__bindtextdomain(const char *domainname,
- {
- // No error checking is done, assume the catalog exists and can
- // be used.
-- __textdomain(__s.c_str());
-+ textdomain(__s.c_str());
- return 0;
- }
-
-diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-index aa52731..2e6f80a 100644
---- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -43,10 +43,6 @@
- #warning tailor for stub locale support
- #endif
-
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L) nl_langinfo((N))
--#endif
--
- namespace std
- {
- // Construct and return valid pattern consisting of some combination of:
-diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-index 883ec1a..2c70642 100644
---- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -41,9 +41,6 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning tailor for stub locale support
- #endif
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L) nl_langinfo((N))
--#endif
-
- namespace std
- {
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
-index e0707d7..d848ed5 100644
---- a/libstdc++-v3/config/locale/uclibc/time_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -40,9 +40,6 @@
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning tailor for stub locale support
- #endif
--#ifndef __UCLIBC_HAS_XLOCALE__
--#define __nl_langinfo_l(N, L) nl_langinfo((N))
--#endif
-
- namespace std
- {
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0006-uclibc-locale-wchar_fix.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0006-uclibc-locale-wchar_fix.patch
deleted file mode 100644
index 3406859e1..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0006-uclibc-locale-wchar_fix.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 225511a3aeb193a916b3999f0b640a392caa67cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:45:57 +0400
-Subject: [PATCH 06/35] uclibc-locale-wchar_fix
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/config/locale/uclibc/monetary_members.cc | 4 ++--
- libstdc++-v3/config/locale/uclibc/numeric_members.cc | 13 +++++++++++++
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-index 2e6f80a..31ebb9f 100644
---- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -401,7 +401,7 @@ namespace std
- # ifdef __UCLIBC_HAS_XLOCALE__
- _M_data->_M_decimal_point = __cloc->decimal_point_wc;
- _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
--# else
-+# elif defined __UCLIBC_HAS_LOCALE__
- _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
- _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
- # endif
-@@ -556,7 +556,7 @@ namespace std
- # ifdef __UCLIBC_HAS_XLOCALE__
- _M_data->_M_decimal_point = __cloc->decimal_point_wc;
- _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
--# else
-+# elif defined __UCLIBC_HAS_LOCALE__
- _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
- _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
- # endif
-diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-index 2c70642..d5c8961 100644
---- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -127,12 +127,25 @@ namespace std
- {
- // Named locale.
- // NB: In the GNU model wchar_t is always 32 bit wide.
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be numeric
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# elif defined __UCLIBC_HAS_LOCALE__
-+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
- union { char *__s; wchar_t __w; } __u;
- __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
- _M_data->_M_decimal_point = __u.__w;
-
- __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
- _M_data->_M_thousands_sep = __u.__w;
-+#endif
-
- if (_M_data->_M_thousands_sep == L'\0')
- _M_data->_M_grouping = "";
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0007-uclibc-locale-update.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0007-uclibc-locale-update.patch
deleted file mode 100644
index 58511233d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0007-uclibc-locale-update.patch
+++ /dev/null
@@ -1,542 +0,0 @@
-From 6ffe7c46f52d27864c3df3663e16ec9ddee71e8f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:46:58 +0400
-Subject: [PATCH 07/35] uclibc-locale-update
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- .../config/locale/uclibc/c++locale_internal.h | 3 +
- libstdc++-v3/config/locale/uclibc/c_locale.cc | 74 +++++++++-----------
- libstdc++-v3/config/locale/uclibc/c_locale.h | 42 ++++++-----
- libstdc++-v3/config/locale/uclibc/ctype_members.cc | 51 ++++++++++----
- .../config/locale/uclibc/messages_members.h | 12 ++--
- .../config/locale/uclibc/monetary_members.cc | 34 +++++----
- .../config/locale/uclibc/numeric_members.cc | 5 ++
- libstdc++-v3/config/locale/uclibc/time_members.cc | 18 +++--
- libstdc++-v3/config/locale/uclibc/time_members.h | 17 +++--
- 9 files changed, 158 insertions(+), 98 deletions(-)
-
-diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-index e74fddf..971a6b4 100644
---- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-+++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
-@@ -31,6 +31,9 @@
-
- #include <bits/c++config.h>
- #include <clocale>
-+#include <cstdlib>
-+#include <cstring>
-+#include <cstddef>
-
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning clean this up
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-index 21430d0..1b9d8e1 100644
---- a/libstdc++-v3/config/locale/uclibc/c_locale.cc
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
-@@ -39,23 +39,20 @@
- #include <langinfo.h>
- #include <bits/c++locale_internal.h>
-
--namespace std
--{
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
- template<>
- void
- __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
- const __c_locale& __cloc)
- {
-- if (!(__err & ios_base::failbit))
-- {
-- char* __sanity;
-- errno = 0;
-- float __f = __strtof_l(__s, &__sanity, __cloc);
-- if (__sanity != __s && errno != ERANGE)
-- __v = __f;
-- else
-- __err |= ios_base::failbit;
-- }
-+ char* __sanity;
-+ errno = 0;
-+ float __f = __strtof_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __f;
-+ else
-+ __err |= ios_base::failbit;
- }
-
- template<>
-@@ -63,16 +60,13 @@ namespace std
- __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
- const __c_locale& __cloc)
- {
-- if (!(__err & ios_base::failbit))
-- {
-- char* __sanity;
-- errno = 0;
-- double __d = __strtod_l(__s, &__sanity, __cloc);
-- if (__sanity != __s && errno != ERANGE)
-- __v = __d;
-- else
-- __err |= ios_base::failbit;
-- }
-+ char* __sanity;
-+ errno = 0;
-+ double __d = __strtod_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __d;
-+ else
-+ __err |= ios_base::failbit;
- }
-
- template<>
-@@ -80,16 +74,13 @@ namespace std
- __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
- const __c_locale& __cloc)
- {
-- if (!(__err & ios_base::failbit))
-- {
-- char* __sanity;
-- errno = 0;
-- long double __ld = __strtold_l(__s, &__sanity, __cloc);
-- if (__sanity != __s && errno != ERANGE)
-- __v = __ld;
-- else
-- __err |= ios_base::failbit;
-- }
-+ char* __sanity;
-+ errno = 0;
-+ long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+ if (__sanity != __s && errno != ERANGE)
-+ __v = __ld;
-+ else
-+ __err |= ios_base::failbit;
- }
-
- void
-@@ -110,17 +101,18 @@ namespace std
- void
- locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
- {
-- if (_S_get_c_locale() != __cloc)
-+ if (__cloc && _S_get_c_locale() != __cloc)
- __freelocale(__cloc);
- }
-
- __c_locale
- locale::facet::_S_clone_c_locale(__c_locale& __cloc)
- { return __duplocale(__cloc); }
--} // namespace std
-
--namespace __gnu_cxx
--{
-+_GLIBCXX_END_NAMESPACE
-+
-+_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
-+
- const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
- {
- "LC_CTYPE",
-@@ -138,9 +130,11 @@ namespace __gnu_cxx
- "LC_IDENTIFICATION"
- #endif
- };
--}
-
--namespace std
--{
-+_GLIBCXX_END_NAMESPACE
-+
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
- const char* const* const locale::_S_categories = __gnu_cxx::category_names;
--} // namespace std
-+
-+_GLIBCXX_END_NAMESPACE
-diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
-index 4bca5f1..64a6d46 100644
---- a/libstdc++-v3/config/locale/uclibc/c_locale.h
-+++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
-@@ -39,21 +39,23 @@
- #pragma GCC system_header
-
- #include <cstring> // get std::strlen
--#include <cstdio> // get std::snprintf or std::sprintf
-+#include <cstdio> // get std::vsnprintf or std::vsprintf
- #include <clocale>
- #include <langinfo.h> // For codecvt
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix this
- #endif
--#ifdef __UCLIBC_HAS_LOCALE__
-+#ifdef _GLIBCXX_USE_ICONV
- #include <iconv.h> // For codecvt using iconv, iconv_t
- #endif
--#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
--#include <libintl.h> // For messages
-+#ifdef HAVE_LIBINTL_H
-+#include <libintl.h> // For messages
- #endif
-+#include <cstdarg>
-
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning what is _GLIBCXX_C_LOCALE_GNU for
-+// psm: used in os/gnu-linux/ctype_noninline.h
- #endif
- #define _GLIBCXX_C_LOCALE_GNU 1
-
-@@ -78,23 +80,25 @@ namespace std
- #else
- typedef int* __c_locale;
- #endif
--
-- // Convert numeric value of type _Tv to string and return length of
-- // string. If snprintf is available use it, otherwise fall back to
-- // the unsafe sprintf which, in general, can be dangerous and should
-+ // Convert numeric value of type double to string and return length of
-+ // string. If vsnprintf is available use it, otherwise fall back to
-+ // the unsafe vsprintf which, in general, can be dangerous and should
- // be avoided.
-- template<typename _Tv>
-- int
-- __convert_from_v(char* __out,
-- const int __size __attribute__ ((__unused__)),
-- const char* __fmt,
--#ifdef __UCLIBC_HAS_XCLOCALE__
-- _Tv __v, const __c_locale& __cloc, int __prec)
-+ inline int
-+ __convert_from_v(const __c_locale&
-+#ifndef __UCLIBC_HAS_XCLOCALE__
-+ __cloc __attribute__ ((__unused__))
-+#endif
-+ ,
-+ char* __out,
-+ const int __size,
-+ const char* __fmt, ...)
- {
-+ va_list __args;
-+#ifdef __UCLIBC_HAS_XCLOCALE__
-+
- __c_locale __old = __gnu_cxx::__uselocale(__cloc);
- #else
-- _Tv __v, const __c_locale&, int __prec)
-- {
- # ifdef __UCLIBC_HAS_LOCALE__
- char* __old = std::setlocale(LC_ALL, NULL);
- char* __sav = new char[std::strlen(__old) + 1];
-@@ -103,7 +107,9 @@ namespace std
- # endif
- #endif
-
-- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+ va_start(__args, __fmt);
-+ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
-+ va_end(__args);
-
- #ifdef __UCLIBC_HAS_XCLOCALE__
- __gnu_cxx::__uselocale(__old);
-diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-index 7b12861..13e011d 100644
---- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
-@@ -33,16 +33,20 @@
-
- // Written by Benjamin Kosnik <bkoz@redhat.com>
-
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
-
--namespace std
--{
-+_GLIBCXX_BEGIN_NAMESPACE(std)
-+
- // NB: The other ctype<char> specializations are in src/locale.cc and
- // various /config/os/* files.
-- template<>
- ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
- : ctype<char>(0, false, __refs)
- {
-@@ -57,6 +61,8 @@ namespace std
- #endif
- }
- }
-+ ctype_byname<char>::~ctype_byname()
-+ { }
-
- #ifdef _GLIBCXX_USE_WCHAR_T
- ctype<wchar_t>::__wmask_type
-@@ -138,17 +144,33 @@ namespace std
- ctype<wchar_t>::
- do_is(mask __m, wchar_t __c) const
- {
-- // Highest bitmask in ctype_base == 10, but extra in "C"
-- // library for blank.
-+ // The case of __m == ctype_base::space is particularly important,
-+ // due to its use in many istream functions. Therefore we deal with
-+ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
-+ // is the mask corresponding to ctype_base::space. NB: an encoding
-+ // change would not affect correctness!
-+
- bool __ret = false;
-- const size_t __bitmasksize = 11;
-- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-- if (__m & _M_bit[__bitcur]
-- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-- {
-- __ret = true;
-- break;
-- }
-+ if (__m == _M_bit[5])
-+ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
-+ else
-+ {
-+ // Highest bitmask in ctype_base == 10, but extra in "C"
-+ // library for blank.
-+ const size_t __bitmasksize = 11;
-+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+ if (__m & _M_bit[__bitcur])
-+ {
-+ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+ {
-+ __ret = true;
-+ break;
-+ }
-+ else if (__m == _M_bit[__bitcur])
-+ break;
-+ }
-+ }
-+
- return __ret;
- }
-
-@@ -290,4 +312,5 @@ namespace std
- #endif
- }
- #endif // _GLIBCXX_USE_WCHAR_T
--}
-+
-+_GLIBCXX_END_NAMESPACE
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
-index d89da33..067657a 100644
---- a/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -53,12 +53,16 @@
- template<typename _CharT>
- messages<_CharT>::messages(__c_locale __cloc, const char* __s,
- size_t __refs)
-- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
-- _M_name_messages(__s)
-+ : facet(__refs), _M_c_locale_messages(NULL),
-+ _M_name_messages(NULL)
- {
-- char* __tmp = new char[std::strlen(__s) + 1];
-- std::strcpy(__tmp, __s);
-+ const size_t __len = std::strlen(__s) + 1;
-+ char* __tmp = new char[__len];
-+ std::memcpy(__tmp, __s, __len);
- _M_name_messages = __tmp;
-+
-+ // Last to avoid leaking memory if new throws.
-+ _M_c_locale_messages = _S_clone_c_locale(__cloc);
- }
-
- template<typename _CharT>
-diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-index 31ebb9f..7679b9c 100644
---- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
-@@ -33,9 +33,14 @@
-
- // Written by Benjamin Kosnik <bkoz@redhat.com>
-
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
-
- #ifdef __UCLIBC_MJN3_ONLY__
-@@ -206,7 +211,7 @@ namespace std
- }
- break;
- default:
-- ;
-+ __ret = pattern();
- }
- return __ret;
- }
-@@ -390,7 +395,9 @@ namespace std
- __c_locale __old = __uselocale(__cloc);
- #else
- // Switch to named locale so that mbsrtowcs will work.
-- char* __old = strdup(setlocale(LC_ALL, NULL));
-+ char* __old = setlocale(LC_ALL, NULL);
-+ const size_t __llen = strlen(__old) + 1;
-+ char* __sav = new char[__llen];
- setlocale(LC_ALL, __name);
- #endif
-
-@@ -477,8 +484,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- __uselocale(__old);
- #else
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- __throw_exception_again;
- }
-@@ -498,8 +505,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- __uselocale(__old);
- #else
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- }
- }
-@@ -545,8 +552,11 @@ namespace std
- __c_locale __old = __uselocale(__cloc);
- #else
- // Switch to named locale so that mbsrtowcs will work.
-- char* __old = strdup(setlocale(LC_ALL, NULL));
-- setlocale(LC_ALL, __name);
-+ char* __old = setlocale(LC_ALL, NULL);
-+ const size_t __llen = strlen(__old) + 1;
-+ char* __sav = new char[__llen];
-+ memcpy(__sav, __old, __llen);
-+ setlocale(LC_ALL, __name);
- #endif
-
- #ifdef __UCLIBC_MJN3_ONLY__
-@@ -633,8 +643,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- __uselocale(__old);
- #else
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- __throw_exception_again;
- }
-@@ -653,8 +663,8 @@ namespace std
- #ifdef __UCLIBC_HAS_XLOCALE__
- __uselocale(__old);
- #else
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- }
- }
-diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-index d5c8961..8ae8969 100644
---- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
-@@ -33,9 +33,14 @@
-
- // Written by Benjamin Kosnik <bkoz@redhat.com>
-
-+#include <features.h>
-+#ifdef __UCLIBC_HAS_LOCALE__
- #define _LIBC
- #include <locale>
- #undef _LIBC
-+#else
-+#include <locale>
-+#endif
- #include <bits/c++locale_internal.h>
-
- #ifdef __UCLIBC_MJN3_ONLY__
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
-index d848ed5..f24d53e 100644
---- a/libstdc++-v3/config/locale/uclibc/time_members.cc
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
-@@ -53,11 +53,14 @@ namespace std
- const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
- _M_c_locale_timepunct);
- #else
-- char* __old = strdup(setlocale(LC_ALL, NULL));
-+ char* __old = setlocale(LC_ALL, NULL);
-+ const size_t __llen = strlen(__old) + 1;
-+ char* __sav = new char[__llen];
-+ memcpy(__sav, __old, __llen);
- setlocale(LC_ALL, _M_name_timepunct);
- const size_t __len = strftime(__s, __maxlen, __format, __tm);
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- // Make sure __s is null terminated.
- if (__len == 0)
-@@ -207,11 +210,14 @@ namespace std
- const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
- _M_c_locale_timepunct);
- #else
-- char* __old = strdup(setlocale(LC_ALL, NULL));
-+ char* __old = setlocale(LC_ALL, NULL);
-+ const size_t __llen = strlen(__old) + 1;
-+ char* __sav = new char[__llen];
-+ memcpy(__sav, __old, __llen);
- setlocale(LC_ALL, _M_name_timepunct);
- const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
-- setlocale(LC_ALL, __old);
-- free(__old);
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
- #endif
- // Make sure __s is null terminated.
- if (__len == 0)
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.h b/libstdc++-v3/config/locale/uclibc/time_members.h
-index ba8e858..1665dde 100644
---- a/libstdc++-v3/config/locale/uclibc/time_members.h
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -50,12 +50,21 @@
- __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
- size_t __refs)
- : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-- _M_name_timepunct(__s)
-+ _M_name_timepunct(NULL)
- {
-- char* __tmp = new char[std::strlen(__s) + 1];
-- std::strcpy(__tmp, __s);
-+ const size_t __len = std::strlen(__s) + 1;
-+ char* __tmp = new char[__len];
-+ std::memcpy(__tmp, __s, __len);
- _M_name_timepunct = __tmp;
-- _M_initialize_timepunct(__cloc);
-+
-+ try
-+ { _M_initialize_timepunct(__cloc); }
-+ catch(...)
-+ {
-+ delete [] _M_name_timepunct;
-+ __throw_exception_again;
-+ }
-+
- }
-
- template<typename _CharT>
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0008-missing-execinfo_h.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0008-missing-execinfo_h.patch
deleted file mode 100644
index 282380934..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0008-missing-execinfo_h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 9f2158451981cf0a80cfabdc79ae31bb6976a801 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:48:10 +0400
-Subject: [PATCH 08/35] missing-execinfo_h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- boehm-gc/include/gc.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h
-index c51e017..a7ba8dc 100644
---- a/boehm-gc/include/gc.h
-+++ b/boehm-gc/include/gc.h
-@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
- #if defined(__linux__) || defined(__GLIBC__)
- # include <features.h>
- # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
-- && !defined(__ia64__)
-+ && !defined(__ia64__) && !defined(__UCLIBC__)
- # ifndef GC_HAVE_BUILTIN_BACKTRACE
- # define GC_HAVE_BUILTIN_BACKTRACE
- # endif
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0009-c99-snprintf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0009-c99-snprintf.patch
deleted file mode 100644
index 7168778df..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0009-c99-snprintf.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e393e076f1ab82d25e1aa04d6edea27b41d3eb06 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:49:03 +0400
-Subject: [PATCH 09/35] c99-snprintf
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/include/c_std/cstdio | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libstdc++-v3/include/c_std/cstdio b/libstdc++-v3/include/c_std/cstdio
-index e85bd83..6af839a 100644
---- a/libstdc++-v3/include/c_std/cstdio
-+++ b/libstdc++-v3/include/c_std/cstdio
-@@ -139,7 +139,7 @@ namespace std
- using ::vsprintf;
- } // namespace std
-
--#if _GLIBCXX_USE_C99
-+#if _GLIBCXX_USE_C99 || defined(__UCLIBC__)
-
- #undef snprintf
- #undef vfscanf
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0010-c99-complex-ugly-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0010-c99-complex-ugly-hack.patch
deleted file mode 100644
index b628571e5..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0010-c99-complex-ugly-hack.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 73f69d806e2c9561a54995223431a1076cfd6164 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:49:57 +0400
-Subject: [PATCH 10/35] c99-complex-ugly-hack
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- libstdc++-v3/configure | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index c57a751..a1333e2 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -18734,6 +18734,9 @@ $as_echo_n "checking for ISO C99 support to TR1 in <complex.h>... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
- #include <complex.h>
-+#ifdef __UCLIBC__
-+#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
-+#endif
- int
- main ()
- {
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0011-index_macro.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0011-index_macro.patch
deleted file mode 100644
index 8ee79b09b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0011-index_macro.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From b037953e40312b45ab84ed0a3ad882bb5e413101 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:51:02 +0400
-Subject: [PATCH 11/35] index_macro
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/include/ext/rope | 3 +++
- libstdc++-v3/include/ext/ropeimpl.h | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/libstdc++-v3/include/ext/rope b/libstdc++-v3/include/ext/rope
-index 38eb1e8..158d21a 100644
---- a/libstdc++-v3/include/ext/rope
-+++ b/libstdc++-v3/include/ext/rope
-@@ -55,6 +55,9 @@
- #include <bits/gthr.h>
- #include <tr1/functional>
-
-+/* cope w/ index defined as macro, SuSv3 proposal */
-+#undef index
-+
- # ifdef __GC
- # define __GC_CONST const
- # else
-diff --git a/libstdc++-v3/include/ext/ropeimpl.h b/libstdc++-v3/include/ext/ropeimpl.h
-index d7b5cbd..b9b3acb 100644
---- a/libstdc++-v3/include/ext/ropeimpl.h
-+++ b/libstdc++-v3/include/ext/ropeimpl.h
-@@ -48,6 +48,9 @@
- #include <ext/memory> // For uninitialized_copy_n
- #include <ext/numeric> // For power
-
-+/* cope w/ index defined as macro, SuSv3 proposal */
-+#undef index
-+
- namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0013-libstdc-namespace.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0013-libstdc-namespace.patch
deleted file mode 100644
index 4a3efdebd..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0013-libstdc-namespace.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 104e4d66208f2726b14d2f5eebce90700cbc83c8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:54:02 +0400
-Subject: [PATCH 13/35] libstdc++-namespace
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libstdc++-v3/config/locale/uclibc/messages_members.h | 4 +++-
- libstdc++-v3/config/locale/uclibc/time_members.h | 4 +++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
-index 067657a..dd76a6c 100644
---- a/libstdc++-v3/config/locale/uclibc/messages_members.h
-+++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
-@@ -32,7 +32,8 @@
- //
-
- // Written by Benjamin Kosnik <bkoz@redhat.com>
--
-+namespace std
-+{
- #ifdef __UCLIBC_MJN3_ONLY__
- #warning fix prototypes for *textdomain funcs
- #endif
-@@ -116,3 +117,4 @@
- this->_S_create_c_locale(this->_M_c_locale_messages, __s);
- }
- }
-+}
-diff --git a/libstdc++-v3/config/locale/uclibc/time_members.h b/libstdc++-v3/config/locale/uclibc/time_members.h
-index 1665dde..905c433 100644
---- a/libstdc++-v3/config/locale/uclibc/time_members.h
-+++ b/libstdc++-v3/config/locale/uclibc/time_members.h
-@@ -33,7 +33,8 @@
- //
-
- // Written by Benjamin Kosnik <bkoz@redhat.com>
--
-+namespace std
-+{
- template<typename _CharT>
- __timepunct<_CharT>::__timepunct(size_t __refs)
- : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
-@@ -75,3 +76,4 @@
- delete _M_data;
- _S_destroy_c_locale(_M_c_locale_timepunct);
- }
-+}
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0014-sh-pr24836.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0014-sh-pr24836.patch
deleted file mode 100644
index cb8fd525b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0014-sh-pr24836.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From edc9acb181810f234b6b9f7d2820b0e4f6a1eeaf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:54:48 +0400
-Subject: [PATCH 14/35] sh-pr24836
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24836
----
- gcc/configure | 2 +-
- gcc/configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index e12a180..135bbf5 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -23378,7 +23378,7 @@ foo: .long 25
- tls_first_minor=14
- tls_as_opt="-m64 -Aesame --fatal-warnings"
- ;;
-- sh-*-* | sh[34]-*-*)
-+ sh-*-* | sh[34]*-*-*)
- conftest_s='
- .section ".tdata","awT",@progbits
- foo: .long 25
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index eba3577..6363a21 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -3141,7 +3141,7 @@ foo: .long 25
- tls_first_minor=14
- tls_as_opt="-m64 -Aesame --fatal-warnings"
- ;;
-- sh-*-* | sh[34]-*-*)
-+ sh-*-* | sh[34]*-*-*)
- conftest_s='
- .section ".tdata","awT",@progbits
- foo: .long 25
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0015-arm-Use-TARGET_ENDIAN_OPTION-for-determining-MULTILI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0015-arm-Use-TARGET_ENDIAN_OPTION-for-determining-MULTILI.patch
deleted file mode 100644
index 37c46fc2e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0015-arm-Use-TARGET_ENDIAN_OPTION-for-determining-MULTILI.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 50e5366005b0f6af27378e2a5c3cb9f9936a7e62 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:58:36 +0400
-Subject: [PATCH 15/35] arm: Use TARGET_ENDIAN_OPTION for determining
- MULTILIB_DEFAULTS
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/config/arm/linux-elf.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: gcc-4.9.2/gcc/config/arm/coff.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/arm/coff.h
-+++ gcc-4.9.2/gcc/config/arm/coff.h
-@@ -32,8 +32,11 @@
- #define TARGET_DEFAULT (MASK_APCS_FRAME)
-
- #ifndef MULTILIB_DEFAULTS
-+#ifndef TARGET_ENDIAN_OPTION
-+#define TARGET_ENDIAN_OPTION "mlittle-endian"
-+#endif
- #define MULTILIB_DEFAULTS \
-- { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork" }
-+ { "marm", TARGET_ENDIAN_OPTION, "mfloat-abi=soft", "mno-thumb-interwork" }
- #endif
-
- /* This is COFF, but prefer stabs. */
-Index: gcc-4.9.2/gcc/config/arm/elf.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/arm/elf.h
-+++ gcc-4.9.2/gcc/config/arm/elf.h
-@@ -116,8 +116,11 @@
- #endif
-
- #ifndef MULTILIB_DEFAULTS
-+#ifndef TARGET_ENDIAN_OPTION
-+#define TARGET_ENDIAN_OPTION "mlittle-endian"
-+#endif
- #define MULTILIB_DEFAULTS \
-- { "marm", "mlittle-endian", "mfloat-abi=soft", "mno-thumb-interwork", "fno-leading-underscore" }
-+ { "marm", TARGET_ENDIAN_OPTION, "mfloat-abi=soft", "mno-thumb-interwork", "fno-leading-underscore" }
- #endif
-
- #define TARGET_ASM_FILE_START_APP_OFF true
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0016-gcc-poison-system-directories.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0016-gcc-poison-system-directories.patch
deleted file mode 100644
index 475ef96b9..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0016-gcc-poison-system-directories.patch
+++ /dev/null
@@ -1,190 +0,0 @@
-From 160397ef3c3331099af028f1b8d3e085b07d88ad Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:59:00 +0400
-Subject: [PATCH 16/35] gcc: poison-system-directories
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [distribution: codesourcery]
----
- gcc/Makefile.in | 2 +-
- gcc/common.opt | 4 ++++
- gcc/config.in | 6 ++++++
- gcc/configure | 20 ++++++++++++++++++--
- gcc/configure.ac | 10 ++++++++++
- gcc/doc/invoke.texi | 9 +++++++++
- gcc/gcc.c | 2 ++
- gcc/incpath.c | 19 +++++++++++++++++++
- 8 files changed, 69 insertions(+), 3 deletions(-)
-
-Index: gcc-4.9-20140316/gcc/common.opt
-===================================================================
---- gcc-4.9-20140316.orig/gcc/common.opt
-+++ gcc-4.9-20140316/gcc/common.opt
-@@ -603,6 +603,10 @@ Wpedantic
- Common Var(pedantic) Warning
- Issue warnings needed for strict compliance to the standard
-
-+Wpoison-system-directories
-+Common Var(flag_poison_system_directories) Init(1) Warning
-+Warn for -I and -L options using system directories if cross compiling
-+
- Wshadow
- Common Var(warn_shadow) Warning
- Warn when one local variable shadows another
-Index: gcc-4.9-20140316/gcc/config.in
-===================================================================
---- gcc-4.9-20140316.orig/gcc/config.in
-+++ gcc-4.9-20140316/gcc/config.in
-@@ -138,6 +138,12 @@
- #endif
-
-
-+/* Define to warn for use of native system header directories */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+#endif
-+
-+
- /* Define if you want all operations on RTL (the basic data structure of the
- optimizer and back end) to be checked for dynamic type safety at runtime.
- This is quite expensive. */
-Index: gcc-4.9-20140316/gcc/configure
-===================================================================
---- gcc-4.9-20140316.orig/gcc/configure
-+++ gcc-4.9-20140316/gcc/configure
-@@ -928,6 +928,7 @@ with_system_zlib
- enable_maintainer_mode
- enable_link_mutex
- enable_version_specific_runtime_libs
-+enable_poison_system_directories
- enable_plugin
- enable_host_shared
- enable_libquadmath_support
-@@ -1648,6 +1649,8 @@ Optional Features:
- --enable-version-specific-runtime-libs
- specify that runtime libraries should be installed
- in a compiler-specific directory
-+ --enable-poison-system-directories
-+ warn for use of native system header directories
- --enable-plugin enable plugin support
- --enable-host-shared build host code as shared libraries
- --disable-libquadmath-support
-@@ -27702,6 +27705,19 @@ if test "${enable_version_specific_runti
- fi
-
-
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+ enableval=$enable_poison_system_directories;
-+else
-+ enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+
-+fi
-+
- # Substitute configuration variables
-
-
-Index: gcc-4.9-20140316/gcc/configure.ac
-===================================================================
---- gcc-4.9-20140316.orig/gcc/configure.ac
-+++ gcc-4.9-20140316/gcc/configure.ac
-@@ -5366,6 +5366,16 @@ AC_ARG_ENABLE(version-specific-runtime-l
- [specify that runtime libraries should be
- installed in a compiler-specific directory])])
-
-+AC_ARG_ENABLE([poison-system-directories],
-+ AS_HELP_STRING([--enable-poison-system-directories],
-+ [warn for use of native system header directories]),,
-+ [enable_poison_system_directories=no])
-+if test "x${enable_poison_system_directories}" = "xyes"; then
-+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+ [1],
-+ [Define to warn for use of native system header directories])
-+fi
-+
- # Substitute configuration variables
- AC_SUBST(subdirs)
- AC_SUBST(srcdir)
-Index: gcc-4.9-20140316/gcc/doc/invoke.texi
-===================================================================
---- gcc-4.9-20140316.orig/gcc/doc/invoke.texi
-+++ gcc-4.9-20140316/gcc/doc/invoke.texi
-@@ -260,6 +260,7 @@ Objective-C and Objective-C++ Dialects}.
- -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol
- -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
- -Wpointer-arith -Wno-pointer-to-int-cast @gol
-+-Wno-poison-system-directories @gol
- -Wredundant-decls -Wno-return-local-addr @gol
- -Wreturn-type -Wsequence-point -Wshadow @gol
- -Wsign-compare -Wsign-conversion -Wfloat-conversion @gol
-@@ -4230,6 +4231,14 @@ headers---for that, @option{-Wunknown-pr
- for most targets, it is made up of code and thus requires the stack
- to be made executable in order for the program to work properly.
-
-+@item -Wno-poison-system-directories
-+@opindex Wno-poison-system-directories
-+Do not warn for @option{-I} or @option{-L} options using system
-+directories such as @file{/usr/include} when cross compiling. This
-+option is intended for use in chroot environments when such
-+directories contain the correct headers and libraries for the target
-+system rather than the host.
-+
- @item -Wfloat-equal
- @opindex Wfloat-equal
- @opindex Wno-float-equal
-Index: gcc-4.9-20140316/gcc/gcc.c
-===================================================================
---- gcc-4.9-20140316.orig/gcc/gcc.c
-+++ gcc-4.9-20140316/gcc/gcc.c
-@@ -764,6 +764,8 @@ proper position among the other output f
- "%{fuse-ld=*:-fuse-ld=%*}\
- %X %{o*} %{e*} %{N} %{n} %{r}\
- %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} " VTABLE_VERIFICATION_SPEC " \
-+ %{Wno-poison-system-directories:--no-poison-system-directories}\
-+ %{Werror=poison-system-directories:--error-poison-system-directories}\
- %{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %o\
- %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
- %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
-Index: gcc-4.9-20140316/gcc/incpath.c
-===================================================================
---- gcc-4.9-20140316.orig/gcc/incpath.c
-+++ gcc-4.9-20140316/gcc/incpath.c
-@@ -28,6 +28,7 @@
- #include "intl.h"
- #include "incpath.h"
- #include "cppdefault.h"
-+#include "diagnostic-core.h"
-
- /* Microsoft Windows does not natively support inodes.
- VMS has non-numeric inodes. */
-@@ -382,6 +383,24 @@ merge_include_chains (const char *sysroo
- }
- fprintf (stderr, _("End of search list.\n"));
- }
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+ if (flag_poison_system_directories)
-+ {
-+ struct cpp_dir *p;
-+
-+ for (p = heads[QUOTE]; p; p = p->next)
-+ {
-+ if ((!strncmp (p->name, "/usr/include", 12))
-+ || (!strncmp (p->name, "/usr/local/include", 18))
-+ || (!strncmp (p->name, "/usr/X11R6/include", 18)))
-+ warning (OPT_Wpoison_system_directories,
-+ "include location \"%s\" is unsafe for "
-+ "cross-compilation",
-+ p->name);
-+ }
-+ }
-+#endif
- }
-
- /* Use given -I paths for #include "..." but not #include <...>, and
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0017-gcc-poison-dir-extend.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0017-gcc-poison-dir-extend.patch
deleted file mode 100644
index 9e81efd4d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0017-gcc-poison-dir-extend.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e99c9c97266d6d3e8cac798aa91408250c4d60cf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:00:34 +0400
-Subject: [PATCH 17/35] gcc-poison-dir-extend
-
-Add /sw/include and /opt/include based on the original
-zecke-no-host-includes.patch patch. The original patch checked for
-/usr/include, /sw/include and /opt/include and then triggered a failure and
-aborted.
-
-Instead, we add the two missing items to the current scan. If the user
-wants this to be a failure, they can add "-Werror=poison-system-directories".
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/incpath.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/incpath.c b/gcc/incpath.c
-index cd41c78..eac4a92 100644
---- a/gcc/incpath.c
-+++ b/gcc/incpath.c
-@@ -393,7 +393,9 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
- {
- if ((!strncmp (p->name, "/usr/include", 12))
- || (!strncmp (p->name, "/usr/local/include", 18))
-- || (!strncmp (p->name, "/usr/X11R6/include", 18)))
-+ || (!strncmp (p->name, "/usr/X11R6/include", 18))
-+ || (!strncmp (p->name, "/sw/include", 11))
-+ || (!strncmp (p->name, "/opt/include", 12)))
- warning (OPT_Wpoison_system_directories,
- "include location \"%s\" is unsafe for "
- "cross-compilation",
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0018-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0018-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
deleted file mode 100644
index a28cafdf9..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0018-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 56207fa2923e8edf774e98ffac82666091076be3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:08:31 +0400
-Subject: [PATCH 18/35] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
-
-Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
-
-This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET.
-
-Other changes I had to do include:
-
-- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though.
-
-- passing the right CFLAGS to configure scripts as exported environment variables
-
-I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do.
-
-Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3?
-
-Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- configure | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
-diff --git a/configure b/configure
-index 1b76c90..e4dce7c 100755
---- a/configure
-+++ b/configure
-@@ -6772,6 +6772,38 @@ fi
-
-
-
-+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
-+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
-+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
-+# We want to ensure that TARGET libraries (which we know are built with
-+# gcc) are built with "-O2 -g", so include those options when setting
-+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
-+if test "x$CFLAGS_FOR_TARGET" = x; then
-+ CFLAGS_FOR_TARGET=$CFLAGS
-+ case " $CFLAGS " in
-+ *" -O2 "*) ;;
-+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
-+ esac
-+ case " $CFLAGS " in
-+ *" -g "* | *" -g3 "*) ;;
-+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
-+ esac
-+fi
-+
-+
-+if test "x$CXXFLAGS_FOR_TARGET" = x; then
-+ CXXFLAGS_FOR_TARGET=$CXXFLAGS
-+ case " $CXXFLAGS " in
-+ *" -O2 "*) ;;
-+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
-+ esac
-+ case " $CXXFLAGS " in
-+ *" -g "* | *" -g3 "*) ;;
-+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
-+ esac
-+fi
-+
-+
- # Handle --with-headers=XXX. If the value is not "yes", the contents of
- # the named directory are copied to $(tooldir)/sys-include.
- if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0019-64-bit-multilib-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0019-64-bit-multilib-hack.patch
deleted file mode 100644
index 058be0c40..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0019-64-bit-multilib-hack.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 18fde5740b09324dfb9cf41e9849672573ff5fa0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:10:06 +0400
-Subject: [PATCH 19/35] 64-bit multilib hack.
-
-GCC has internal multilib handling code but it assumes a very specific rigid directory
-layout. The build system implementation of multilib layout is very generic and allows
-complete customisation of the library directories.
-
-This patch is a partial solution to allow any custom directories to be passed into gcc
-and handled correctly. It forces gcc to use the base_libdir (which is the current
-directory, "."). We need to do this for each multilib that is configured as we don't
-know which compiler options may be being passed into the compiler. Since we have a compiler
-per mulitlib at this point that isn't an issue.
-
-The one problem is the target compiler is only going to work for the default multlilib at
-this point. Ideally we'd figure out which multilibs were being enabled with which paths
-and be able to patch these entries with a complete set of correct paths but this we
-don't have such code at this point. This is something the target gcc recipe should do
-and override these platform defaults in its build config.
-
-RP 15/8/11
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/config/i386/t-linux64 | 6 ++----
- gcc/config/mips/t-linux64 | 10 +++-------
- gcc/config/rs6000/t-linux64 | 5 ++---
- 3 files changed, 7 insertions(+), 14 deletions(-)
-
-Index: gcc-4.9-20140316/gcc/config/i386/t-linux64
-===================================================================
---- gcc-4.9-20140316.orig/gcc/config/i386/t-linux64
-+++ gcc-4.9-20140316/gcc/config/i386/t-linux64
-@@ -32,7 +32,5 @@
- #
- comma=,
- MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
--MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
--MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
--MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
--MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
-+MULTILIB_DIRNAMES = . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-Index: gcc-4.9-20140316/gcc/config/mips/t-linux64
-===================================================================
---- gcc-4.9-20140316.orig/gcc/config/mips/t-linux64
-+++ gcc-4.9-20140316/gcc/config/mips/t-linux64
-@@ -17,10 +17,6 @@
- # <http://www.gnu.org/licenses/>.
-
- MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
--MULTILIB_DIRNAMES = n32 32 64
--MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
--MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
--MULTILIB_OSDIRNAMES = \
-- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
-- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
-- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
-+MULTILIB_DIRNAMES = . . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-+
-Index: gcc-4.9-20140316/gcc/config/rs6000/t-linux64
-===================================================================
---- gcc-4.9-20140316.orig/gcc/config/rs6000/t-linux64
-+++ gcc-4.9-20140316/gcc/config/rs6000/t-linux64
-@@ -26,10 +26,9 @@
- # MULTILIB_OSDIRNAMES according to what is found on the target.
-
- MULTILIB_OPTIONS := m64/m32
--MULTILIB_DIRNAMES := 64 32
-+MULTILIB_DIRNAMES := . .
- MULTILIB_EXTRA_OPTS :=
--MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
--MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
-+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-
- rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
- $(COMPILE) $<
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0020-optional-libstdc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0020-optional-libstdc.patch
deleted file mode 100644
index 5b466140d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0020-optional-libstdc.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 307c8ff3ef666b7bd5ac733863f2fbb27a9d521e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:12:56 +0400
-Subject: [PATCH 20/35] optional libstdc
-
-gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++
-will not run correctly since by default the linker will try to link against libstdc++
-which shouldn't exist yet. We need an option to disable -lstdc++
-option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc
-driver. This patch adds such an option which only disables the -lstdc++.
-
-A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to
-do this officially, the likely answer is don't build libstdc++ separately.
-
-RP 29/6/10
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- gcc/c-family/c.opt | 4 ++++
- gcc/cp/g++spec.c | 1 +
- gcc/doc/invoke.texi | 9 +++++++--
- gcc/gcc.c | 1 +
- 4 files changed, 13 insertions(+), 2 deletions(-)
-
-Index: gcc-4.9-20140316/gcc/c-family/c.opt
-===================================================================
---- gcc-4.9-20140316.orig/gcc/c-family/c.opt
-+++ gcc-4.9-20140316/gcc/c-family/c.opt
-@@ -1323,6 +1323,10 @@ nostdinc++
- C++ ObjC++
- Do not search standard system include directories for C++
-
-+nostdlib++
-+Driver
-+Do not link standard C++ runtime library
-+
- o
- C ObjC C++ ObjC++ Joined Separate
- ; Documented in common.opt
-Index: gcc-4.9-20140316/gcc/cp/g++spec.c
-===================================================================
---- gcc-4.9-20140316.orig/gcc/cp/g++spec.c
-+++ gcc-4.9-20140316/gcc/cp/g++spec.c
-@@ -138,6 +138,7 @@ lang_specific_driver (struct cl_decoded_
- switch (decoded_options[i].opt_index)
- {
- case OPT_nostdlib:
-+ case OPT_nostdlib__:
- case OPT_nodefaultlibs:
- library = -1;
- break;
-Index: gcc-4.9-20140316/gcc/doc/invoke.texi
-===================================================================
---- gcc-4.9-20140316.orig/gcc/doc/invoke.texi
-+++ gcc-4.9-20140316/gcc/doc/invoke.texi
-@@ -193,6 +193,7 @@ in the following sections.
- -fvisibility-inlines-hidden @gol
- -fvtable-verify=@var{std|preinit|none} @gol
- -fvtv-counts -fvtv-debug @gol
-+-nostdlib++ @gol
- -fvisibility-ms-compat @gol
- -fext-numeric-literals @gol
- -Wabi -Wconversion-null -Wctor-dtor-privacy @gol
-@@ -457,7 +458,7 @@ Objective-C and Objective-C++ Dialects}.
- -nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic @gol
- -s -static -static-libgcc -static-libstdc++ @gol
- -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol
---shared -shared-libgcc -symbolic @gol
-+-shared -shared-libgcc -symbolic -nostdlib++ @gol
- -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol
- -u @var{symbol}}
-
-@@ -10285,6 +10286,11 @@ These entries are usually resolved by en
- libc. These entry points should be supplied through some other
- mechanism when this option is specified.
-
-+@item -nostdlib++
-+@opindex nostdlib++
-+Do not use the standard system C++ runtime libraries when linking.
-+Only the libraries you specify will be passed to the linker.
-+
- @cindex @option{-lgcc}, use with @option{-nostdlib}
- @cindex @option{-nostdlib} and unresolved references
- @cindex unresolved references and @option{-nostdlib}
-Index: gcc-4.9-20140316/gcc/gcc.c
-===================================================================
---- gcc-4.9-20140316.orig/gcc/gcc.c
-+++ gcc-4.9-20140316/gcc/gcc.c
-@@ -772,6 +772,7 @@ proper position among the other output f
- %(mflib) " STACK_SPLIT_SPEC "\
- %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \
- %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
-+ %{!nostdlib++:}\
- %{!nostdlib:%{!nostartfiles:%E}} %{T*} }}}}}}"
- #endif
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0021-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0021-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
deleted file mode 100644
index eb3c61f12..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0021-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 004696e054ae9dc71d512cc755ccc4074fc62b2d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:14:20 +0400
-Subject: [PATCH 21/35] gcc: disable MASK_RELAX_PIC_CALLS bit
-
-The new feature added after 4.3.3
-"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html"
-will cause cc1plus eat up all the system memory when build webkit-gtk.
-The function mips_get_pic_call_symbol keeps on recursively calling itself.
-Disable this feature to walk aside the bug.
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [configuration]
----
- gcc/configure | 7 -------
- gcc/configure.ac | 7 -------
- 2 files changed, 14 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index b65d21d..bdab45a 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -25829,13 +25829,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6;
- rm -f conftest.*
- fi
- fi
-- if test $gcc_cv_as_ld_jalr_reloc = yes; then
-- if test x$target_cpu_default = x; then
-- target_cpu_default=MASK_RELAX_PIC_CALLS
-- else
-- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
-- fi
-- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5
- $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; }
-
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index e226b85..5f5c909 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -4099,13 +4099,6 @@ x:
- rm -f conftest.*
- fi
- fi
-- if test $gcc_cv_as_ld_jalr_reloc = yes; then
-- if test x$target_cpu_default = x; then
-- target_cpu_default=MASK_RELAX_PIC_CALLS
-- else
-- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
-- fi
-- fi
- AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc)
-
- AC_CACHE_CHECK([linker for .eh_frame personality relaxation],
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0022-COLLECT_GCC_OPTIONS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0022-COLLECT_GCC_OPTIONS.patch
deleted file mode 100644
index 40c8abffa..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0022-COLLECT_GCC_OPTIONS.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7f5c9dcc71c8b83a0b5596266cc4bdf0936e8e00 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:16:28 +0400
-Subject: [PATCH 22/35] COLLECT_GCC_OPTIONS
-
-This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to
-invoke collect2.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/gcc.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 477752f..51062aa 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -4098,6 +4098,15 @@ set_collect_gcc_options (void)
- sizeof ("COLLECT_GCC_OPTIONS=") - 1);
-
- first_time = TRUE;
-+#ifdef HAVE_LD_SYSROOT
-+ if (target_system_root_changed && target_system_root)
-+ {
-+ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1);
-+ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root));
-+ obstack_grow (&collect_obstack, "'", 1);
-+ first_time = FALSE;
-+ }
-+#endif
- for (i = 0; (int) i < n_switches; i++)
- {
- const char *const *args;
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0023-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0023-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
deleted file mode 100644
index fddfe9e5e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0023-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From f7d49ca445e60faa1b5256c6b4f96c1ee5c0e353 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:17:25 +0400
-Subject: [PATCH 23/35] Use the defaults.h in ${B} instead of ${S}, and t-oe
- in ${B}
-
-Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
-the source can be shared between gcc-cross-initial,
-gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-While compiling gcc-crosssdk-initial-x86_64 on some host, there is
-occasionally failure that test the existance of default.h doesn't
-work, the reason is tm_include_list='** defaults.h' rather than
-tm_include_list='** ./defaults.h'
-
-So we add the test condition for this situation.
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/Makefile.in | 2 +-
- gcc/configure | 4 ++--
- gcc/configure.ac | 4 ++--
- gcc/mkconfig.sh | 4 ++--
- 4 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index d1ab22f..15fe4b6 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -483,7 +483,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
- TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
-
- xmake_file=@xmake_file@
--tmake_file=@tmake_file@
-+tmake_file=@tmake_file@ ./t-oe
- TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
- TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
- TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
-diff --git a/gcc/configure b/gcc/configure
-index 5399b2b..60a04bd 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11631,8 +11631,8 @@ for f in $tm_file; do
- tm_include_list="${tm_include_list} $f"
- ;;
- defaults.h )
-- tm_file_list="${tm_file_list} \$(srcdir)/$f"
-- tm_include_list="${tm_include_list} $f"
-+ tm_file_list="${tm_file_list} ./$f"
-+ tm_include_list="${tm_include_list} ./$f"
- ;;
- * )
- tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index f87c3b6..460e0d9 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1740,8 +1740,8 @@ for f in $tm_file; do
- tm_include_list="${tm_include_list} $f"
- ;;
- defaults.h )
-- tm_file_list="${tm_file_list} \$(srcdir)/$f"
-- tm_include_list="${tm_include_list} $f"
-+ tm_file_list="${tm_file_list} ./$f"
-+ tm_include_list="${tm_include_list} ./$f"
- ;;
- * )
- tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
-index c7146ed..b153f45 100644
---- a/gcc/mkconfig.sh
-+++ b/gcc/mkconfig.sh
-@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
- if [ $# -ge 1 ]; then
- echo '#ifdef IN_GCC' >> ${output}T
- for file in "$@"; do
-- if test x"$file" = x"defaults.h"; then
-+ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then
- postpone_defaults_h="yes"
- else
- echo "# include \"$file\"" >> ${output}T
-@@ -106,7 +106,7 @@ esac
-
- # If we postponed including defaults.h, add the #include now.
- if test x"$postpone_defaults_h" = x"yes"; then
-- echo "# include \"defaults.h\"" >> ${output}T
-+ echo "# include \"./defaults.h\"" >> ${output}T
- fi
-
- # Add multiple inclusion protection guard, part two.
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0025-fortran-cross-compile-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0025-fortran-cross-compile-hack.patch
deleted file mode 100644
index 0e7914d5c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0025-fortran-cross-compile-hack.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From af8a56ea4e17b2909eff2c57704ab43ef24f28d3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:20:01 +0400
-Subject: [PATCH 25/35] fortran cross-compile hack.
-
-* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
-used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
-directory.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- libgfortran/configure | 2 +-
- libgfortran/configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libgfortran/configure b/libgfortran/configure
-index 8385e96..b8f7a92 100755
---- a/libgfortran/configure
-+++ b/libgfortran/configure
-@@ -12704,7 +12704,7 @@ esac
-
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- ac_ext=${ac_fc_srcext-f}
- ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
- ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
-index 7d97fed..3f9f484 100644
---- a/libgfortran/configure.ac
-+++ b/libgfortran/configure.ac
-@@ -227,7 +227,7 @@ AC_SUBST(enable_static)
-
- # We need gfortran to compile parts of the library
- #AC_PROG_FC(gfortran)
--FC="$GFORTRAN"
-+#FC="$GFORTRAN"
- AC_PROG_FC(gfortran)
-
- # extra LD Flags which are required for targets
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0026-libgcc-sjlj-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0026-libgcc-sjlj-check.patch
deleted file mode 100644
index d4efab956..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0026-libgcc-sjlj-check.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 08c2398445e6cac282488f64ae6bf29cbcd8db23 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:20:50 +0400
-Subject: [PATCH 26/35] libgcc-sjlj-check
-
-ac_fn_c_try_compile doesnt seem to keep the intermediate files
-which are needed for sjlj test to pass since it greps into the
-generated file. So we run the compiler command using AC_TRY_COMMAND
-which then generates the needed .s file
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- libgcc/configure | 10 ++++++----
- libgcc/configure.ac | 10 ++++------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/libgcc/configure b/libgcc/configure
-index 1425df6..d18e3cb 100644
---- a/libgcc/configure
-+++ b/libgcc/configure
-@@ -4208,17 +4208,19 @@ void foo ()
- }
-
- _ACEOF
--CFLAGS_hold=$CFLAGS
--CFLAGS="--save-temps -fexceptions"
- libgcc_cv_lib_sjlj_exceptions=unknown
--if ac_fn_c_try_compile; then :
-+if { ac_try='${CC-cc} -fexceptions -S conftest.c -o conftest.s 1>&5'
-+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+ test $ac_status = 0; }; }; then
- if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then
- libgcc_cv_lib_sjlj_exceptions=yes
- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then
- libgcc_cv_lib_sjlj_exceptions=no
- fi
- fi
--CFLAGS=$CFLAGS_hold
- rm -f conftest*
-
- fi
-diff --git a/libgcc/configure.ac b/libgcc/configure.ac
-index 8b7aba5..c7c9644 100644
---- a/libgcc/configure.ac
-+++ b/libgcc/configure.ac
-@@ -216,16 +216,14 @@ void foo ()
- bar();
- }
- ])])
--CFLAGS_hold=$CFLAGS
--CFLAGS="--save-temps -fexceptions"
- libgcc_cv_lib_sjlj_exceptions=unknown
--AS_IF([ac_fn_c_try_compile],
-- [if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then
-+if AC_TRY_COMMAND(${CC-cc} -fexceptions -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
-+ if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1; then
- libgcc_cv_lib_sjlj_exceptions=yes
- elif grep _Unwind_Resume conftest.s >/dev/null 2>&1; then
- libgcc_cv_lib_sjlj_exceptions=no
-- fi])
--CFLAGS=$CFLAGS_hold
-+ fi
-+fi
- rm -f conftest*
- ])
-
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0027-cpp-honor-sysroot.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0027-cpp-honor-sysroot.patch
deleted file mode 100644
index 05e95219f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0027-cpp-honor-sysroot.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a0f9bd09c816ad29ecf7c29d6c27f7df97710364 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:22:00 +0400
-Subject: [PATCH 27/35] cpp: honor sysroot.
-
-Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
-preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
-rather than the --sysroot option specified on the commandline. If access to that directory is
-permission denied (unreadable), gcc will error.
-
-This happens when ccache is in use due to the fact it uses preprocessed source files.
-
-The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix,
--isystem, -isysroot happen and the correct sysroot is used.
-
-[YOCTO #2074]
-
-RP 2012/04/13
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/cp/lang-specs.h | 2 +-
- gcc/gcc.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
-index a001c3e..1aae1e4 100644
---- a/gcc/cp/lang-specs.h
-+++ b/gcc/cp/lang-specs.h
-@@ -63,5 +63,5 @@ along with GCC; see the file COPYING3. If not see
- {".ii", "@c++-cpp-output", 0, 0, 0},
- {"@c++-cpp-output",
- "%{!M:%{!MM:%{!E:\
-- cc1plus -fpreprocessed %i %(cc1_options) %2\
-+ cc1plus -fpreprocessed %i %I %(cc1_options) %2\
- %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 51062aa..cf6b99e 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -1042,7 +1042,7 @@ static const struct compiler default_compilers[] =
- %W{o*:--output-pch=%*}}%V}}}}}}", 0, 0, 0},
- {".i", "@cpp-output", 0, 0, 0},
- {"@cpp-output",
-- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-+ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
- {".s", "@assembler", 0, 0, 0},
- {"@assembler",
- "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0028-MIPS64-Default-to-N64-ABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0028-MIPS64-Default-to-N64-ABI.patch
deleted file mode 100644
index 263872069..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0028-MIPS64-Default-to-N64-ABI.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 301e18d4711db5925e767fad08dffa9cfe0a2f1f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:23:08 +0400
-Subject: [PATCH 28/35] MIPS64: Default to N64 ABI
-
-MIPS64 defaults to n32 ABI, this patch makes it
-so that it defaults to N64 ABI
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [OE config specific]
----
- gcc/config.gcc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 1a0be50..989c2fb 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -1797,7 +1797,7 @@ mips*-mti-linux*)
- mips64*-*-linux* | mipsisa64*-*-linux*)
- tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h mips/linux-common.h"
- tmake_file="${tmake_file} mips/t-linux64"
-- tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
-+ tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_64"
- case ${target} in
- mips64el-st-linux-gnu)
- tm_file="${tm_file} mips/st.h"
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0029-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0029-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
deleted file mode 100644
index 969d290ad..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0029-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 29d12344fb682a053de53eb08b95704cf3b67af2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:24:50 +0400
-Subject: [PATCH 29/35] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
- relative to SYSTEMLIBS_DIR
-
-This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
-relative to SYSTEMLIBS_DIR which can be set in generated headers
-This breaks the assumption of hardcoded multilib in gcc
-Change is only for the supported architectures in OE including
-SH, sparc, alpha for possible future support (if any)
-
-Removes the do_headerfix task in metadata
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [OE configuration]
----
- gcc/config/alpha/linux-elf.h | 4 ++--
- gcc/config/arm/linux-eabi.h | 4 ++--
- gcc/config/arm/linux-elf.h | 2 +-
- gcc/config/i386/linux.h | 2 +-
- gcc/config/i386/linux64.h | 6 +++---
- gcc/config/mips/linux.h | 2 +-
- gcc/config/mips/linux64.h | 8 ++++----
- gcc/config/rs6000/linux64.h | 8 ++++----
- gcc/config/sh/linux.h | 2 +-
- gcc/config/sparc/linux.h | 2 +-
- gcc/config/sparc/linux64.h | 4 ++--
- 11 files changed, 22 insertions(+), 22 deletions(-)
-
-Index: gcc-4.9.0/gcc/config/alpha/linux-elf.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/alpha/linux-elf.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/alpha/linux-elf.h 2014-05-07 16:43:50.605106535 +0000
-@@ -23,8 +23,8 @@
- #define EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
-
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
- #if DEFAULT_LIBC == LIBC_UCLIBC
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
- #elif DEFAULT_LIBC == LIBC_GLIBC
-Index: gcc-4.9.0/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/arm/linux-eabi.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/arm/linux-eabi.h 2014-05-07 16:43:50.605106535 +0000
-@@ -68,8 +68,8 @@
- GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
-
- #undef GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
--#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
-+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
- #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
-
- #define GLIBC_DYNAMIC_LINKER \
-Index: gcc-4.9.0/gcc/config/arm/linux-elf.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/arm/linux-elf.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/arm/linux-elf.h 2014-05-07 16:43:50.605106535 +0000
-@@ -57,7 +57,7 @@
-
- #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-
- #define LINUX_TARGET_LINK_SPEC "%{h*} \
- %{static:-Bstatic} \
-Index: gcc-4.9.0/gcc/config/i386/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/i386/linux.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/i386/linux.h 2014-05-07 16:43:50.605106535 +0000
-@@ -20,4 +20,4 @@
- <http://www.gnu.org/licenses/>. */
-
- #define GNU_USER_LINK_EMULATION "elf_i386"
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-Index: gcc-4.9.0/gcc/config/i386/linux64.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/i386/linux64.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/i386/linux64.h 2014-05-07 16:43:50.605106535 +0000
-@@ -27,6 +27,6 @@
- #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
- #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
-
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
--#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
-Index: gcc-4.9.0/gcc/config/mips/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/mips/linux.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/mips/linux.h 2014-05-07 16:43:50.605106535 +0000
-@@ -18,8 +18,8 @@
- <http://www.gnu.org/licenses/>. */
-
- #define GLIBC_DYNAMIC_LINKER \
-- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
-
- #undef UCLIBC_DYNAMIC_LINKER
- #define UCLIBC_DYNAMIC_LINKER \
-- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
-Index: gcc-4.9.0/gcc/config/mips/linux64.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/mips/linux64.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/mips/linux64.h 2014-05-07 16:43:50.605106535 +0000
-@@ -23,20 +23,20 @@
- #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
-
- #define GLIBC_DYNAMIC_LINKER32 \
-- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
- #define GLIBC_DYNAMIC_LINKER64 \
-- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
- #define GLIBC_DYNAMIC_LINKERN32 \
-- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
-
- #undef UCLIBC_DYNAMIC_LINKER32
- #define UCLIBC_DYNAMIC_LINKER32 \
-- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
- #undef UCLIBC_DYNAMIC_LINKER64
- #define UCLIBC_DYNAMIC_LINKER64 \
-- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
- #define UCLIBC_DYNAMIC_LINKERN32 \
-- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
-+ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
-
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
- #define GNU_USER_DYNAMIC_LINKERN32 \
-Index: gcc-4.9.0/gcc/config/rs6000/linux64.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/rs6000/linux64.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/rs6000/linux64.h 2014-05-07 16:43:50.605106535 +0000
-@@ -367,14 +367,14 @@
- #undef LINK_OS_DEFAULT_SPEC
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
-
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
- #ifdef LINUX64_DEFAULT_ABI_ELFv2
--#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:/lib64/ld64.so.1;:/lib64/ld64.so.2}"
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
- #else
--#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}"
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
- #endif
--#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
- #if DEFAULT_LIBC == LIBC_UCLIBC
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
- #elif DEFAULT_LIBC == LIBC_GLIBC
-Index: gcc-4.9.0/gcc/config/sh/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/sh/linux.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/sh/linux.h 2014-05-07 16:43:50.605106535 +0000
-@@ -43,7 +43,7 @@
-
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-
- #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
-Index: gcc-4.9.0/gcc/config/sparc/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/sparc/linux.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/sparc/linux.h 2014-05-07 16:43:50.605106535 +0000
-@@ -83,7 +83,7 @@
- When the -shared link option is used a final link is not being
- done. */
-
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-
- #undef LINK_SPEC
- #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
-Index: gcc-4.9.0/gcc/config/sparc/linux64.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/sparc/linux64.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/sparc/linux64.h 2014-05-07 16:43:50.605106535 +0000
-@@ -92,8 +92,8 @@
- When the -shared link option is used a final link is not being
- done. */
-
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
-
- #ifdef SPARC_BI_ARCH
-
-Index: gcc-4.9.0/gcc/config/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/linux.h 2014-05-07 16:43:50.609106535 +0000
-+++ gcc-4.9.0/gcc/config/linux.h 2014-05-07 16:43:50.605106535 +0000
-@@ -73,10 +73,10 @@
- GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
- GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
- supporting both 32-bit and 64-bit compilation. */
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
- #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
- #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
- #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0030-gcc-Fix-argument-list-too-long-error.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0030-gcc-Fix-argument-list-too-long-error.patch
deleted file mode 100644
index 2ceaff64f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0030-gcc-Fix-argument-list-too-long-error.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c1816c160156f99c34e6a0a0311bb0219326804e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:26:37 +0400
-Subject: [PATCH 30/35] gcc: Fix argument list too long error.
-
-There would be an "Argument list too long" error when the
-build directory is longer than 200, this is caused by:
-
-headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
-
-The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
-it, use the $(sort list) of GNU make which can handle the too long list
-would fix the problem, the header would be short enough after sorted.
-The "tr ' ' '\012'" was used for translating the space to "\n", the
-$(sort list) doesn't need this.
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 2320497..8562a62 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -4627,7 +4627,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
- # We keep the directory structure for files in config or c-family and .def
- # files. All other files are flattened to a single directory.
- $(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
-- headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \
-+ headers="$(sort $(PLUGIN_HEADERS))"; \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
- for file in $$headers; do \
- if [ -f $$file ] ; then \
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0031-Disable-sdt.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0031-Disable-sdt.patch
deleted file mode 100644
index 2c1d5e086..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0031-Disable-sdt.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From b85265bc94ec1beaf1d3b697c03db62991553467 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:28:10 +0400
-Subject: [PATCH 31/35] Disable sdt.
-
-We don't list dtrace in DEPENDS so we shouldn't be depending on this header.
-It may or may not exist from preivous builds though. To be determinstic, disable
-sdt.h usage always. This avoids build failures if the header is removed after configure
-but before libgcc is compiled for example.
-
-RP 2012/8/7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Disable sdt for libstdc++-v3.
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
-Upstream-Status: Inappropriate [hack]
----
- gcc/configure | 12 ++++++------
- gcc/configure.ac | 18 +++++++++---------
- libstdc++-v3/configure | 6 +++---
- libstdc++-v3/configure.ac | 2 +-
- 4 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index 3c550a6..01c7626 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -26812,12 +26812,12 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
- $as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
- have_sys_sdt_h=no
--if test -f $target_header_dir/sys/sdt.h; then
-- have_sys_sdt_h=yes
--
--$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
--
--fi
-+#if test -f $target_header_dir/sys/sdt.h; then
-+# have_sys_sdt_h=yes
-+#
-+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
-+#
-+#fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5
- $as_echo "$have_sys_sdt_h" >&6; }
-
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 3601ab6..06e501f 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -4779,15 +4779,15 @@ if test x$gcc_cv_libc_provides_ssp = xyes; then
- fi
-
- # Test for <sys/sdt.h> on the target.
--GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
--AC_MSG_CHECKING(sys/sdt.h in the target C library)
--have_sys_sdt_h=no
--if test -f $target_header_dir/sys/sdt.h; then
-- have_sys_sdt_h=yes
-- AC_DEFINE(HAVE_SYS_SDT_H, 1,
-- [Define if your target C library provides sys/sdt.h])
--fi
--AC_MSG_RESULT($have_sys_sdt_h)
-+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
-+#AC_MSG_CHECKING(sys/sdt.h in the target C library)
-+#have_sys_sdt_h=no
-+#if test -f $target_header_dir/sys/sdt.h; then
-+# have_sys_sdt_h=yes
-+# AC_DEFINE(HAVE_SYS_SDT_H, 1,
-+# [Define if your target C library provides sys/sdt.h])
-+#fi
-+#AC_MSG_RESULT($have_sys_sdt_h)
-
- # Check if TFmode long double should be used by default or not.
- # Some glibc targets used DFmode long double, but with glibc 2.4
-diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 4953c9f..53a1145 100755
---- a/libstdc++-v3/configure
-+++ b/libstdc++-v3/configure
-@@ -20578,11 +20578,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-- if test $glibcxx_cv_sys_sdt_h = yes; then
-+# if test $glibcxx_cv_sys_sdt_h = yes; then
-
--$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
-+#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
-
-- fi
-+# fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5
- $as_echo "$glibcxx_cv_sys_sdt_h" >&6; }
-
-diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
-index 73d430a..f2135e2 100644
---- a/libstdc++-v3/configure.ac
-+++ b/libstdc++-v3/configure.ac
-@@ -211,7 +211,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
- GLIBCXX_CHECK_SC_NPROC_ONLN
- GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP
- GLIBCXX_CHECK_SYSCTL_HW_NCPU
--GLIBCXX_CHECK_SDT_H
-+#GLIBCXX_CHECK_SDT_H
-
- # Check for available headers.
- AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \
---
-1.8.3.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0032-libtool.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0032-libtool.patch
deleted file mode 100644
index 3b3d1b621..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0032-libtool.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 6c715fcfa262adadca81c68a1f3f69aa3187a501 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:29:11 +0400
-Subject: [PATCH 32/35] libtool
-
-libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
-when running on am x86_64 build host.
-
-This patch stops this speading to libdir in the libstdc++.la file within libtool.
-Arguably, it shouldn't be passing this into libtool in the first place but
-for now this resolves the nastiest problems this causes.
-
-func_normal_abspath would resolve an empty path to `pwd` so we need
-to filter the zero case.
-
-RP 2012/8/24
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- ltmain.sh | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/ltmain.sh b/ltmain.sh
-index a03433f..46f47c2 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -6359,6 +6359,10 @@ func_mode_link ()
- func_warning "ignoring multiple \`-rpath's for a libtool library"
-
- install_libdir="$1"
-+ if test -n "$install_libdir"; then
-+ func_normal_abspath "$install_libdir"
-+ install_libdir=$func_normal_abspath_result
-+ fi
-
- oldlibs=
- if test -z "$rpath"; then
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
deleted file mode 100644
index b236c37a5..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0033-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 97e4591c20310425e7aca0e6712a8d9480e7744c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:30:32 +0400
-Subject: [PATCH 33/35] gcc: armv4: pass fix-v4bx to linker to support EABI.
-
-The LINK_SPEC for linux gets overwritten by linux-eabi.h which
-means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
-the option is not passed to linker when chosing march=armv4
-This patch redefines this in linux-eabi.h and reinserts it
-for eabi defaulting toolchains.
-
-We might want to send it upstream.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/config/arm/linux-eabi.h | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-Index: gcc-4.9-20140316/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-4.9-20140316.orig/gcc/config/arm/linux-eabi.h
-+++ gcc-4.9-20140316/gcc/config/arm/linux-eabi.h
-@@ -77,10 +77,14 @@
- %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
- %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
-
-+/* For armv4 we pass --fix-v4bx to linker to support EABI */
-+#undef TARGET_FIX_V4BX_SPEC
-+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
-+
- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
- use the GNU/Linux version, not the generic BPABI version. */
- #undef LINK_SPEC
--#define LINK_SPEC EABI_LINK_SPEC \
-+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \
- LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
- LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch
deleted file mode 100644
index 66b9f89a1..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From fc5e4beaea856a2b486c770ad3addc0f5bb3100e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:33:04 +0400
-Subject: [PATCH 34/35] Use the multilib config files from ${B} instead of
- using the ones from ${S}
-
-Use the multilib config files from ${B} instead of using the ones from ${S}
-so that the source can be shared between gcc-cross-initial,
-gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Upstream-Status: Inappropriate [configuration]
----
- gcc/configure | 22 ++++++++++++++++++----
- gcc/configure.ac | 22 ++++++++++++++++++----
- 2 files changed, 36 insertions(+), 8 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index 8bc0c98..3cd0817 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11519,10 +11519,20 @@ done
- tmake_file_=
- for f in ${tmake_file}
- do
-- if test -f ${srcdir}/config/$f
-- then
-- tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-- fi
-+ case $f in
-+ */t-linux64 )
-+ if test -f ./config/$f
-+ then
-+ tmake_file_="${tmake_file_} ./config/$f"
-+ fi
-+ ;;
-+ * )
-+ if test -f ${srcdir}/config/$f
-+ then
-+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-+ fi
-+ ;;
-+ esac
- done
- tmake_file="${tmake_file_}"
-
-@@ -11533,6 +11543,10 @@ tm_file_list="options.h"
- tm_include_list="options.h insn-constants.h"
- for f in $tm_file; do
- case $f in
-+ */linux64.h )
-+ tm_file_list="${tm_file_list} ./config/$f"
-+ tm_include_list="${tm_include_list} ./config/$f"
-+ ;;
- ./* )
- f=`echo $f | sed 's/^..//'`
- tm_file_list="${tm_file_list} $f"
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 5e5e84f..415a6df 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1700,10 +1700,20 @@ done
- tmake_file_=
- for f in ${tmake_file}
- do
-- if test -f ${srcdir}/config/$f
-- then
-- tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-- fi
-+ case $f in
-+ */t-linux64 )
-+ if test -f ./config/$f
-+ then
-+ tmake_file_="${tmake_file_} ./config/$f"
-+ fi
-+ ;;
-+ * )
-+ if test -f ${srcdir}/config/$f
-+ then
-+ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-+ fi
-+ ;;
-+ esac
- done
- tmake_file="${tmake_file_}"
-
-@@ -1714,6 +1724,10 @@ tm_file_list="options.h"
- tm_include_list="options.h insn-constants.h"
- for f in $tm_file; do
- case $f in
-+ */linux64.h )
-+ tm_file_list="${tm_file_list} ./config/$f"
-+ tm_include_list="${tm_include_list} ./config/$f"
-+ ;;
- ./* )
- f=`echo $f | sed 's/^..//'`
- tm_file_list="${tm_file_list} $f"
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0040-fix-g++-sysroot.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0040-fix-g++-sysroot.patch
deleted file mode 100644
index d50aa5c9b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0040-fix-g++-sysroot.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Portions of
-
-http://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg26013.html
-
-are not upstreamed yet. So lets keep missing pieces.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: gcc-4.8.1/gcc/configure.ac
-===================================================================
---- gcc-4.8.1.orig/gcc/configure.ac 2013-07-15 15:55:49.488399132 -0700
-+++ gcc-4.8.1/gcc/configure.ac 2013-07-15 16:02:31.772406679 -0700
-@@ -148,7 +148,9 @@
- if test "${with_sysroot+set}" = set; then
- gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
- if test "${gcc_gxx_without_sysroot}"; then
-- gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+ if test x${with_sysroot} != x/; then
-+ gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+ fi
- gcc_gxx_include_dir_add_sysroot=1
- fi
- fi
-Index: gcc-4.8.1/gcc/configure
-===================================================================
---- gcc-4.8.1.orig/gcc/configure 2013-07-15 15:55:49.472399132 -0700
-+++ gcc-4.8.1/gcc/configure 2013-07-15 16:02:31.780406680 -0700
-@@ -3325,7 +3325,9 @@
- if test "${with_sysroot+set}" = set; then
- gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
- if test "${gcc_gxx_without_sysroot}"; then
-- gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+ if test x${with_sysroot} != x/; then
-+ gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
-+ fi
- gcc_gxx_include_dir_add_sysroot=1
- fi
- fi
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0041-libtool-avoid-libdir.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0041-libtool-avoid-libdir.patch
deleted file mode 100644
index 2dd9610a2..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0041-libtool-avoid-libdir.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Avoid using libdir from .la which usually points to a host path
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Jonathan Liu <net147@gmail.com>
-
-diff --git a/ltmain.sh b/ltmain.sh
-index a03433f..1902a90 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -5628,6 +5628,9 @@ func_mode_link ()
- absdir="$abs_ladir"
- libdir="$abs_ladir"
- else
-+ # Instead of using libdir from .la which usually points to a host path,
-+ # use the path the .la is contained in.
-+ libdir="$abs_ladir"
- dir="$libdir"
- absdir="$libdir"
- fi
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0043-cpp.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0043-cpp.patch
deleted file mode 100644
index eaf8646f9..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0043-cpp.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-The OE environment sets and exports CPP as being the target gcc. When building
-gcc-cross-canadian for a mingw targetted sdk, the following can be found in
-build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log:
-
-configure:3641: checking for _FILE_OFFSET_BITS value needed for large files
-configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5
-configure:3666: $? = 0
-configure:3698: result: no
-configure:3786: checking how to run the C preprocessor
-configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32
-configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c
-configure:3876: $? = 0
-
-Note this is a *build* target (in build-x86_64-linux) so it should be using
-the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32 headers are
-very different, using the wrong cpp is a real problem. It is leaking into
-configure through the CPP variable. Ultimately this leads to build failures
-related to not being able to include a process.h file for pem-unix.c.
-
-The fix is to ensure we export a sane CPP value into the build environment when
-using build targets. We could define a CPP_FOR_BUILD value which may be the version
-which needs to be upstreamed but for now, this fix is good enough to avoid the
-problem.
-
-RP 22/08/2013
-
-Upstream-Status: Pending
-
-Index: gcc-4.8.1/Makefile.in
-===================================================================
---- gcc-4.8.1.orig/Makefile.in 2013-03-30 11:25:03.000000000 +0000
-+++ gcc-4.8.1/Makefile.in 2013-08-13 12:03:17.151988882 +0000
-@@ -149,6 +149,7 @@
- AR="$(AR_FOR_BUILD)"; export AR; \
- AS="$(AS_FOR_BUILD)"; export AS; \
- CC="$(CC_FOR_BUILD)"; export CC; \
-+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \
- CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
- CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
- CXX="$(CXX_FOR_BUILD)"; export CXX; \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0044-gengtypes.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0044-gengtypes.patch
deleted file mode 100644
index e38761d4c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0044-gengtypes.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-gengtype is generated for both the build system and the target. -DGENERATOR_FILE
-was added in the patch http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00273.html
-and was applied to both versions of gengtype.
-
-Unfortunately the presence of this flag triggers the build configuration (bconfig.h)
-to be included for the target build of gengtype. Compiling gengtype with the target
-compiler and bconfig.h can result in errors if the build and target systems are
-dissimilar. An example case this fails is cross compiling gcc on linux for a darwin
-target system:
-
-In file included from /media/build1/poky/build/tmp/work-shared/gcc-4.8.1-r0/gcc-4.8.1/gcc/gengtype-parse.c:25:0:
-| /media/build1/poky/build/tmp/work-shared/gcc-4.8.1-r0/gcc-4.8.1/gcc/gengtype-parse.c: In function 'void parse_error(const char*, ...)':
-| /media/build1/poky/build/tmp/work-shared/gcc-4.8.1-r0/gcc-4.8.1/gcc/system.h:93:53: error: 'fputc_unlocked' was not declared in this scope
-| # define fputc(C, Stream) fputc_unlocked (C, Stream)
-
-which occurs since auto-build.h and auto-host.h have differnet values of
-HAVE_FPUTC_UNLOCKED:
-
-#define HAVE_FPUTC_UNLOCKED 1
-/* #undef HAVE_FPUTS_UNLOCKED */
-
-The obvious fix is to only include the flag on build/ targets which this patch does, however
-this also leads to compile errors due to const_tree being undefined but used in double_int.h
-
-I added a GENERATOR_FILE2 flag to workaround those in the
-target case and allow the build to succeed.
-
-Only the build/gengtypes should have the -DGENERATOR_FILE
-
-RP 22/8/2013
-
-Upstream-Status: Pending
-
-Index: gcc-4.8.1/gcc/Makefile.in
-===================================================================
---- gcc-4.8.1.orig/gcc/Makefile.in 2013-08-19 11:40:36.844014424 +0000
-+++ gcc-4.8.1/gcc/Makefile.in 2013-08-19 11:40:37.784014402 +0000
-@@ -3903,27 +3903,29 @@
-
- gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H)
- gengtype-lex.o: $(CONFIG_H) $(BCONFIG_H)
--CFLAGS-gengtype-lex.o += -DGENERATOR_FILE
-+CFLAGS-build/gengtype-lex.o += -DGENERATOR_FILE
- build/gengtype-lex.o: $(BCONFIG_H)
-
- gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \
- $(SYSTEM_H)
- gengtype-parse.o: $(CONFIG_H)
--CFLAGS-gengtype-parse.o += -DGENERATOR_FILE
-+CFLAGS-build/gengtype-parse.o += -DGENERATOR_FILE
- build/gengtype-parse.o: $(BCONFIG_H)
-
- gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \
- gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \
- $(XREGEX_H)
- gengtype-state.o: $(CONFIG_H)
--CFLAGS-gengtype-state.o += -DGENERATOR_FILE
-+CFLAGS-gengtype-state.o += -DGENERATOR_FILE2
-+CFLAGS-build/gengtype-state.o += -DGENERATOR_FILE
- build/gengtype-state.o: $(BCONFIG_H)
-
- gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \
- rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \
- $(OBSTACK_H) $(XREGEX_H)
- gengtype.o: $(CONFIG_H)
--CFLAGS-gengtype.o += -DGENERATOR_FILE
-+CFLAGS-gengtype.o += -DGENERATOR_FILE2
-+CFLAGS-build/gengtype.o += -DGENERATOR_FILE
- build/gengtype.o: $(BCONFIG_H)
-
- build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \
-@@ -3988,7 +3990,7 @@
- # any system header is included.
- gengtype-lex.c : gengtype-lex.l
- -$(FLEX) $(FLEXFLAGS) -o$@ $< && { \
-- echo '#include "bconfig.h"' > $@.tmp; \
-+ echo '' > $@.tmp; \
- cat $@ >> $@.tmp; \
- mv $@.tmp $@; \
- }
-Index: gcc-4.8.1/gcc/double-int.h
-===================================================================
---- gcc-4.8.1.orig/gcc/double-int.h 2013-01-30 11:04:30.000000000 +0000
-+++ gcc-4.8.1/gcc/double-int.h 2013-08-19 11:41:51.564012719 +0000
-@@ -448,10 +448,12 @@
-
-
- #ifndef GENERATOR_FILE
-+#ifndef GENERATOR_FILE2
- /* Conversion to and from GMP integer representations. */
-
- void mpz_set_double_int (mpz_t, double_int, bool);
- double_int mpz_get_double_int (const_tree, mpz_t, bool);
- #endif
-+#endif
-
- #endif /* DOUBLE_INT_H */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0046-libatomic-deptracking.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0046-libatomic-deptracking.patch
deleted file mode 100644
index 6ea4f4276..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0046-libatomic-deptracking.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-gcc 4.8 won't build with --disable-dependency-tracking since the *.Ppo files
-don't get created unless --enable-dependency-tracking is true.
-
-This patch ensures we only use those compiler options when its enabled.
-
-Upstream-Status: Submitted
-
-(Problem was already reported upstream, attached this patch there
-http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930)
-
-RP
-2012/09/22
-
-Index: gcc-4.8.1/libatomic/Makefile.am
-===================================================================
---- gcc-4.8.1.orig/libatomic/Makefile.am 2013-01-14 18:16:23.000000000 +0000
-+++ gcc-4.8.1/libatomic/Makefile.am 2013-09-22 10:38:18.904064750 +0000
-@@ -100,7 +100,8 @@
- IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
- IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
-
--M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_FALSE@M_DEPS =
- M_SIZE = -DN=$(PAT_N)
- M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
- M_FILE = $(PAT_BASE)_n.c
-Index: gcc-4.8.1/libatomic/Makefile.in
-===================================================================
---- gcc-4.8.1.orig/libatomic/Makefile.in 2013-05-31 09:09:26.000000000 +0000
-+++ gcc-4.8.1/libatomic/Makefile.in 2013-09-22 10:40:42.520059917 +0000
-@@ -298,7 +298,8 @@
- PAT_S = $(word 3,$(PAT_SPLIT))
- IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
- IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
--M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
-+@AMDEP_FALSE@M_DEPS =
- M_SIZE = -DN=$(PAT_N)
- M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
- M_FILE = $(PAT_BASE)_n.c
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0047-repomembug.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0047-repomembug.patch
deleted file mode 100644
index 9afd55cbd..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0047-repomembug.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-When compiling a project using -frepo, .rpo files are written alongside
-the .o file, the symbols either have O or C against them. During final linking,
-the objects can be recompiled with some of the entries tweaked/chosen by the
-tlink.c code (visible with TLINK_VERBOSE=3), it does this by changing O -> C
-in the .rpo files.
-
-My tests showed that init_repo (cp/repo.c) was correctly calling
-IDENTIFIER_REPO_CHOSEN against the right identifers and setting the
-chosen bit.
-
-By the time finish_repo() or emit_repo_p() were called, the pointer returned
-by get_identifier() for the symbol marked during init_repo had changed and
-the chosen bit was no longer set. This lead to linking bugs like:
-
-collect: relinking
-collect2: error: '_ZNK6sudoku5ClearINS_8SequenceEEclERS1_' was assigned to 'board.rpo', but was not defined during recompilation, or vice versa
-
-The problem is that the garbage collection is getting called before
-finish_repo() is called and ggc_protect_identifiers is set to false
-so the identifiers are not preserved. They are recreated but the
-chosen bits get wiped out which is why the pointer changes and the
-chosen bit is not set.
-
-The fix is to change ggc_protect_identifiers *after* the finish_repo
-calls are made.
-
-Reproduction is tricky since you need to trigger the garbage collector at
-just the right moment.
-
-RP 2013/10/9
-
-[YOCTO #5133]
-
-Upstream-Status: Pending
-
-Index: gcc-4.8.1/gcc/toplev.c
-===================================================================
---- gcc-4.8.1.orig/gcc/toplev.c 2013-03-28 08:29:51.000000000 +0000
-+++ gcc-4.8.1/gcc/toplev.c 2013-10-09 20:27:17.089228023 +0000
-@@ -551,11 +551,11 @@
- if (flag_syntax_only || flag_wpa)
- return;
-
-- ggc_protect_identifiers = false;
--
- /* This must also call finalize_compilation_unit. */
- lang_hooks.decls.final_write_globals ();
-
-+ ggc_protect_identifiers = false;
-+
- if (seen_error ())
- return;
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
deleted file mode 100644
index b98f8ff01..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9e0e19eac2562f73858602fe26e2044eb8b20c47 Mon Sep 17 00:00:00 2001
-From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
-Date: Wed, 5 Feb 2014 16:52:31 +0200
-Subject: [PATCH] Enable SPE & AltiVec generation on powepc*linux target
-
-When is configured with --target=powerpc-linux, the resulting GCC will
-not be able to generate code for SPE targets (e500v1/v2).
-GCC configured with --target=powerpc-linuxspe will not be able to
-generate AltiVec instructions (for e6500).
-This patch modifies the configured file such that SPE or AltiVec code
-can be generated when gcc is configured with --target=powerpc-linux.
-The ABI and speciffic instructions can be selected through the
-"-mabi=spe or -mabi=altivec" and the "-mspe or -maltivec" parameters.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
----
- gcc/config.gcc | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index cb7a94e..d392c2b 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -2068,7 +2068,12 @@ powerpc-*-rtems*)
- tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
- ;;
- powerpc*-*-linux*)
-- tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
-+ case ${target} in
-+ powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*)
-+ tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h" ;;
-+ *)
-+ tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h rs6000/linuxaltivec.h rs6000/linuxspe.h rs6000/e500.h" ;;
-+ esac
- extra_options="${extra_options} rs6000/sysv4.opt"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
- case ${target} in
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0050-Revert-Use-dbx_reg_number-for-spanning-registers.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0050-Revert-Use-dbx_reg_number-for-spanning-registers.patch
deleted file mode 100644
index aead6f67b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0050-Revert-Use-dbx_reg_number-for-spanning-registers.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-Upstream-Status: Pending
-
-From cb9b1c041b634a4c128896e3d3eed4082608c797 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 3 May 2014 19:25:17 -0700
-Subject: [PATCH] Revert "2013-05-21 Christian Bruel
- <christian.bruel@st.com>"
-
-This reverts commit 3983036a8b6b2710c57777194f21507819a73553.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Conflicts:
- gcc/ChangeLog
----
- gcc/ChangeLog | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
- gcc/dwarf2out.c | 33 +++++----
- 2 files changed, 234 insertions(+), 18 deletions(-)
-
-diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
-index 1272326..6ac2b28 100644
---- a/gcc/dwarf2out.c
-+++ b/gcc/dwarf2out.c
-@@ -10870,27 +10870,25 @@ static dw_loc_descr_ref
- multiple_reg_loc_descriptor (rtx rtl, rtx regs,
- enum var_init_status initialized)
- {
-- int size, i;
-+ int nregs, size, i;
-+ unsigned reg;
- dw_loc_descr_ref loc_result = NULL;
-
-- /* Simple, contiguous registers. */
-- if (regs == NULL_RTX)
-- {
-- unsigned reg = REGNO (rtl);
-- int nregs;
--
-+ reg = REGNO (rtl);
- #ifdef LEAF_REG_REMAP
-- if (crtl->uses_only_leaf_regs)
-- {
-- int leaf_reg = LEAF_REG_REMAP (reg);
-- if (leaf_reg != -1)
-- reg = (unsigned) leaf_reg;
-- }
-+ if (crtl->uses_only_leaf_regs)
-+ {
-+ int leaf_reg = LEAF_REG_REMAP (reg);
-+ if (leaf_reg != -1)
-+ reg = (unsigned) leaf_reg;
-+ }
- #endif
-+ gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl));
-+ nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)];
-
-- gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl));
-- nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)];
--
-+ /* Simple, contiguous registers. */
-+ if (regs == NULL_RTX)
-+ {
- size = GET_MODE_SIZE (GET_MODE (rtl)) / nregs;
-
- loc_result = NULL;
-@@ -10918,9 +10916,10 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs,
- {
- dw_loc_descr_ref t;
-
-- t = one_reg_loc_descriptor (dbx_reg_number (XVECEXP (regs, 0, i)),
-+ t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
- VAR_INIT_STATUS_INITIALIZED);
- add_loc_descr (&loc_result, t);
-+ size = GET_MODE_SIZE (GET_MODE (XVECEXP (regs, 0, 0)));
- add_loc_descr_op_piece (&loc_result, size);
- }
-
---
-1.9.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0051-eabispe.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0051-eabispe.patch
deleted file mode 100644
index 55e38903f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0051-eabispe.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Upstream-Status: Pending
-
-Taken from http://gcc.gnu.org/ml/gcc-patches/2014-04/msg02064.html
-
-2014-04-30 Cesar Philippidis <cesar@codesourcery.com>
-
- gcc/
- * dwarf2cfi.c (dwf_regno): Don't assert reg is a pseudo
- register.
-
-
-diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
-index 4180890..40ef0e2 100644
---- a/gcc/dwarf2cfi.c
-+++ b/gcc/dwarf2cfi.c
-@@ -906,7 +906,6 @@ notice_eh_throw (rtx insn)
- static inline unsigned
- dwf_regno (const_rtx reg)
- {
-- gcc_assert (REGNO (reg) < FIRST_PSEUDO_REGISTER);
- return DWARF_FRAME_REGNUM (REGNO (reg));
- }
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0052-Add-target-hook-to-override-DWARF2-frame-register-si.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0052-Add-target-hook-to-override-DWARF2-frame-register-si.patch
deleted file mode 100644
index f6958b32c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0052-Add-target-hook-to-override-DWARF2-frame-register-si.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From d626297e87e19251a284ea1e9360e831b48999ca Mon Sep 17 00:00:00 2001
-From: mpf <mpf@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Thu, 4 Sep 2014 08:32:05 +0000
-Subject: [PATCH] Add target hook to override DWARF2 frame register size
-
-gcc/
-
- * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
- * targhooks.c (default_dwarf_frame_reg_mode): New function.
- * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
- * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
- * doc/tm.texi: Regenerate.
- * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
- selection logic to default_dwarf_frame_reg_mode.
-
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214898 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [gcc 5.0]
-
----
- gcc/ChangeLog | 10 ++++++++++
- gcc/doc/tm.texi | 7 +++++++
- gcc/doc/tm.texi.in | 2 ++
- gcc/dwarf2cfi.c | 4 +---
- gcc/target.def | 11 +++++++++++
- gcc/targhooks.c | 13 +++++++++++++
- gcc/targhooks.h | 1 +
- 7 files changed, 45 insertions(+), 3 deletions(-)
-
-Index: gcc-4.9.2/gcc/doc/tm.texi
-===================================================================
---- gcc-4.9.2.orig/gcc/doc/tm.texi
-+++ gcc-4.9.2/gcc/doc/tm.texi
-@@ -9017,6 +9017,13 @@ register in Dwarf. Otherwise, this hook
- If not defined, the default is to return @code{NULL_RTX}.
- @end deftypefn
-
-+@deftypefn {Target Hook} {enum machine_mode} TARGET_DWARF_FRAME_REG_MODE (int @var{regno})
-+Given a register, this hook should return the mode which the
-+corresponding Dwarf frame register should have. This is normally
-+used to return a smaller mode than the raw mode to prevent call
-+clobbered parts of a register altering the frame register size
-+@end deftypefn
-+
- @deftypefn {Target Hook} void TARGET_INIT_DWARF_REG_SIZES_EXTRA (tree @var{address})
- If some registers are represented in Dwarf-2 unwind information in
- multiple pieces, define this hook to fill in information about the
-Index: gcc-4.9.2/gcc/doc/tm.texi.in
-===================================================================
---- gcc-4.9.2.orig/gcc/doc/tm.texi.in
-+++ gcc-4.9.2/gcc/doc/tm.texi.in
-@@ -6745,6 +6745,8 @@ the target supports DWARF 2 frame unwind
-
- @hook TARGET_DWARF_REGISTER_SPAN
-
-+@hook TARGET_DWARF_FRAME_REG_MODE
-+
- @hook TARGET_INIT_DWARF_REG_SIZES_EXTRA
-
- @hook TARGET_ASM_TTYPE
-Index: gcc-4.9.2/gcc/dwarf2cfi.c
-===================================================================
---- gcc-4.9.2.orig/gcc/dwarf2cfi.c
-+++ gcc-4.9.2/gcc/dwarf2cfi.c
-@@ -271,11 +271,9 @@ expand_builtin_init_dwarf_reg_sizes (tre
- if (rnum < DWARF_FRAME_REGISTERS)
- {
- HOST_WIDE_INT offset = rnum * GET_MODE_SIZE (mode);
-- enum machine_mode save_mode = reg_raw_mode[i];
- HOST_WIDE_INT size;
-+ enum machine_mode save_mode = targetm.dwarf_frame_reg_mode (i);
-
-- if (HARD_REGNO_CALL_PART_CLOBBERED (i, save_mode))
-- save_mode = choose_hard_reg_mode (i, 1, true);
- if (dnum == DWARF_FRAME_RETURN_COLUMN)
- {
- if (save_mode == VOIDmode)
-Index: gcc-4.9.2/gcc/target.def
-===================================================================
---- gcc-4.9.2.orig/gcc/target.def
-+++ gcc-4.9.2/gcc/target.def
-@@ -3218,6 +3218,17 @@ If not defined, the default is to return
- rtx, (rtx reg),
- hook_rtx_rtx_null)
-
-+/* Given a register return the mode of the corresponding DWARF frame
-+ register. */
-+DEFHOOK
-+(dwarf_frame_reg_mode,
-+ "Given a register, this hook should return the mode which the\n\
-+corresponding Dwarf frame register should have. This is normally\n\
-+used to return a smaller mode than the raw mode to prevent call\n\
-+clobbered parts of a register altering the frame register size",
-+ enum machine_mode, (int regno),
-+ default_dwarf_frame_reg_mode)
-+
- /* If expand_builtin_init_dwarf_reg_sizes needs to fill in table
- entries not corresponding directly to registers below
- FIRST_PSEUDO_REGISTER, this hook should generate the necessary
-Index: gcc-4.9.2/gcc/targhooks.c
-===================================================================
---- gcc-4.9.2.orig/gcc/targhooks.c
-+++ gcc-4.9.2/gcc/targhooks.c
-@@ -1438,6 +1438,19 @@ default_debug_unwind_info (void)
- return UI_NONE;
- }
-
-+/* Determine the correct mode for a Dwarf frame register that represents
-+ register REGNO. */
-+
-+enum machine_mode
-+default_dwarf_frame_reg_mode (int regno)
-+{
-+ enum machine_mode save_mode = reg_raw_mode[regno];
-+
-+ if (HARD_REGNO_CALL_PART_CLOBBERED (regno, save_mode))
-+ save_mode = choose_hard_reg_mode (regno, 1, true);
-+ return save_mode;
-+}
-+
- /* To be used by targets where reg_raw_mode doesn't return the right
- mode for registers used in apply_builtin_return and apply_builtin_arg. */
-
-Index: gcc-4.9.2/gcc/targhooks.h
-===================================================================
---- gcc-4.9.2.orig/gcc/targhooks.h
-+++ gcc-4.9.2/gcc/targhooks.h
-@@ -194,6 +194,7 @@ extern int default_label_align_max_skip
- extern int default_jump_align_max_skip (rtx);
- extern section * default_function_section(tree decl, enum node_frequency freq,
- bool startup, bool exit);
-+extern enum machine_mode default_dwarf_frame_reg_mode (int);
- extern enum machine_mode default_get_reg_raw_mode (int);
-
- extern void *default_get_pch_validity (size_t *);
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch
deleted file mode 100644
index 23b445c9e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From a22a222c8f9299f6c07a0274388ade7d4ab8c28d Mon Sep 17 00:00:00 2001
-From: Paul Gortmaker <paul.gortmaker@windriver.com>
-Date: Fri, 20 Jun 2014 16:41:08 -0400
-Subject: [PATCH] gcc: fix segfault from calling free on non-malloc'd area
-
-We see the following on a 32bit gcc installed on 64 bit host:
-
- Reading symbols from ./i586-pokymllib32-linux-gcc...done.
- (gdb) run
- Starting program: x86-pokymllib32-linux/lib32-gcc/4.9.0-r0/image/usr/bin/i586-pokymllib32-linux-gcc
-
- Program received signal SIGSEGV, Segmentation fault.
- 0xf7e957e0 in free () from /lib/i386-linux-gnu/libc.so.6
- (gdb) bt
- #0 0xf7e957e0 in free () from /lib/i386-linux-gnu/libc.so.6
- #1 0x0804b73c in set_multilib_dir () at gcc-4.9.0/gcc/gcc.c:7827
- #2 main (argc=1, argv=0xffffd504) at gcc-4.9.0/gcc/gcc.c:6688
- (gdb)
-
-The problem arises because we conditionally assign the pointer we
-eventually free, and the conditional may assign the pointer to the
-non-malloc'd internal string "." which fails when we free it here:
-
- if (multilib_dir == NULL && multilib_os_dir != NULL
- && strcmp (multilib_os_dir, ".") == 0)
- {
- free (CONST_CAST (char *, multilib_os_dir));
- ...
-
-As suggested by Jakub, ensure the "." case is also malloc'd via
-xstrdup() and hence the pointer for the "." case can be freed.
-
-Cc: Jakub Jelinek <jakub@redhat.com>
-Cc: Jeff Law <law@redhat.com>
-Cc: Matthias Klose <doko@ubuntu.com>
-CC: Tobias Burnus <burnus@net-b.de>
-Upstream-Status: Accepted [ https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02069.html ]
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 9ac18e60d801..168acf7eb0c9 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -7790,10 +7790,15 @@ set_multilib_dir (void)
- q2++;
- if (*q2 == ':')
- ml_end = q2;
-- new_multilib_os_dir = XNEWVEC (char, ml_end - q);
-- memcpy (new_multilib_os_dir, q + 1, ml_end - q - 1);
-- new_multilib_os_dir[ml_end - q - 1] = '\0';
-- multilib_os_dir = *new_multilib_os_dir ? new_multilib_os_dir : ".";
-+ if (ml_end - q == 1)
-+ multilib_os_dir = xstrdup (".");
-+ else
-+ {
-+ new_multilib_os_dir = XNEWVEC (char, ml_end - q);
-+ memcpy (new_multilib_os_dir, q + 1, ml_end - q - 1);
-+ new_multilib_os_dir[ml_end - q - 1] = '\0';
-+ multilib_os_dir = new_multilib_os_dir;
-+ }
-
- if (q2 < end && *q2 == ':')
- {
---
-1.9.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch
deleted file mode 100644
index 7e8efa1e8..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0054-gcc-Makefile.in-fix-parallel-building-failure.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-gcc/Makefile.in: fix parallel building failure
-
-The gcc-ar.o, gcc-nm.o, gcc-ranlib.o and errors.o included
-config.h which was a generated file. But no explicity rule
-to clarify the dependency. There was potential building
-failure while parallel make.
-
-For gcc-ar.o, gcc-nm.o and gcc-ranlib.o, they were compiled from one C
-source file gcc-ar.c, we add them to ALL_HOST_BACKEND_OBJS, so the
-'$(ALL_HOST_OBJS) : | $(generated_files)' rule could work for these
-objects.
-
-For errors.o, it is part of gengtype, and the gengtype generator program
-is special: Two versions are built. One is for the build machine, and one
-is for the host. We refered what gengtype-parse.o did (which also is part
-of gengtype).
-
-[GCC #61899]
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61899
-
-Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/Makefile.in | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 6475cba..56e50bb 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -1481,13 +1481,16 @@ OBJS-libcommon-target = $(common_out_object_file) prefix.o params.o \
- opts.o opts-common.o options.o vec.o hooks.o common/common-targhooks.o \
- hash-table.o file-find.o
-
-+# Objects compiled from one C source file gcc-ar.c
-+OBJS-gcc-ar = gcc-ar.o gcc-nm.o gcc-ranlib.o
-+
- # This lists all host objects for the front ends.
- ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS))
-
- ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \
- $(OBJS-libcommon-target) @TREEBROWSER@ main.o c-family/cppspec.o \
- $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \
-- lto-wrapper.o
-+ lto-wrapper.o $(OBJS-gcc-ar)
-
- # This lists all host object files, whether they are included in this
- # compilation or not.
-@@ -2437,6 +2440,8 @@ gengtype-parse.o: $(CONFIG_H)
- CFLAGS-build/gengtype-parse.o += -DGENERATOR_FILE
- build/gengtype-parse.o: $(BCONFIG_H)
-
-+errors.o : $(CONFIG_H)
-+
- gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \
- gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \
- $(XREGEX_H)
---
-1.8.1.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0055-dwarf-reg-processing-helper.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0055-dwarf-reg-processing-helper.patch
deleted file mode 100644
index 557dab0f3..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0055-dwarf-reg-processing-helper.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 4fd39f1329379e00f958394adde6be96f0caf21f Mon Sep 17 00:00:00 2001
-From: hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 5 Dec 2014 16:53:22 +0000
-Subject: [PATCH] 2014-12-05 Olivier Hainque <hainque@adacore.com>
-
- * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
- one particular reg for expand_builtin_init_dwarf_reg_sizes.
- (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
- account for dwarf register spans.
-
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218428 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [gcc 5.0]
-
----
- gcc/ChangeLog | 7 +++++
- gcc/dwarf2cfi.c | 98 +++++++++++++++++++++++++++++++++++++++++++++------------
- 2 files changed, 85 insertions(+), 20 deletions(-)
-
-Index: gcc-4.9.2/gcc/dwarf2cfi.c
-===================================================================
---- gcc-4.9.2.orig/gcc/dwarf2cfi.c
-+++ gcc-4.9.2/gcc/dwarf2cfi.c
-@@ -252,7 +252,59 @@ init_return_column_size (enum machine_mo
- gen_int_mode (size, mode));
- }
-
--/* Generate code to initialize the register size table. */
-+/* Datastructure used by expand_builtin_init_dwarf_reg_sizes and
-+ init_one_dwarf_reg_size to communicate on what has been done by the
-+ latter. */
-+
-+typedef struct
-+{
-+ /* Whether the dwarf return column was initialized. */
-+ bool wrote_return_column;
-+
-+ /* For each hard register REGNO, whether init_one_dwarf_reg_size
-+ was given REGNO to process already. */
-+ bool processed_regno [FIRST_PSEUDO_REGISTER];
-+
-+} init_one_dwarf_reg_state;
-+
-+/* Helper for expand_builtin_init_dwarf_reg_sizes. Generate code to
-+ initialize the dwarf register size table entry corresponding to register
-+ REGNO in REGMODE. TABLE is the table base address, SLOTMODE is the mode to
-+ use for the size entry to initialize, and INIT_STATE is the communication
-+ datastructure conveying what we're doing to our caller. */
-+
-+static
-+void init_one_dwarf_reg_size (int regno, machine_mode regmode,
-+ rtx table, machine_mode slotmode,
-+ init_one_dwarf_reg_state *init_state)
-+{
-+ const unsigned int dnum = DWARF_FRAME_REGNUM (regno);
-+ const unsigned int rnum = DWARF2_FRAME_REG_OUT (dnum, 1);
-+
-+ const HOST_WIDE_INT slotoffset = rnum * GET_MODE_SIZE (slotmode);
-+ const HOST_WIDE_INT regsize = GET_MODE_SIZE (regmode);
-+
-+ init_state->processed_regno[regno] = true;
-+
-+ if (rnum >= DWARF_FRAME_REGISTERS)
-+ return;
-+
-+ if (dnum == DWARF_FRAME_RETURN_COLUMN)
-+ {
-+ if (regmode == VOIDmode)
-+ return;
-+ init_state->wrote_return_column = true;
-+ }
-+
-+ if (slotoffset < 0)
-+ return;
-+
-+ emit_move_insn (adjust_address (table, slotmode, slotoffset),
-+ gen_int_mode (regsize, slotmode));
-+}
-+
-+/* Generate code to initialize the dwarf register size table located
-+ at the provided ADDRESS. */
-
- void
- expand_builtin_init_dwarf_reg_sizes (tree address)
-@@ -261,35 +313,40 @@ expand_builtin_init_dwarf_reg_sizes (tre
- enum machine_mode mode = TYPE_MODE (char_type_node);
- rtx addr = expand_normal (address);
- rtx mem = gen_rtx_MEM (BLKmode, addr);
-- bool wrote_return_column = false;
-+
-+ init_one_dwarf_reg_state init_state;
-+
-+ memset ((char *)&init_state, 0, sizeof (init_state));
-
- for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
- {
-- unsigned int dnum = DWARF_FRAME_REGNUM (i);
-- unsigned int rnum = DWARF2_FRAME_REG_OUT (dnum, 1);
--
-- if (rnum < DWARF_FRAME_REGISTERS)
-- {
-- HOST_WIDE_INT offset = rnum * GET_MODE_SIZE (mode);
-- HOST_WIDE_INT size;
-- enum machine_mode save_mode = targetm.dwarf_frame_reg_mode (i);
-+ machine_mode save_mode;
-+ rtx span;
-
-- if (dnum == DWARF_FRAME_RETURN_COLUMN)
-+ /* No point in processing a register multiple times. This could happen
-+ with register spans, e.g. when a reg is first processed as a piece of
-+ a span, then as a register on its own later on. */
-+
-+ if (init_state.processed_regno[i])
-+ continue;
-+
-+ save_mode = targetm.dwarf_frame_reg_mode (i);
-+ span = targetm.dwarf_register_span (gen_rtx_REG (save_mode, i));
-+ if (!span)
-+ init_one_dwarf_reg_size (i, save_mode, mem, mode, &init_state);
-+ else
-+ {
-+ for (int si = 0; si < XVECLEN (span, 0); si++)
- {
-- if (save_mode == VOIDmode)
-- continue;
-- wrote_return_column = true;
-- }
-- size = GET_MODE_SIZE (save_mode);
-- if (offset < 0)
-- continue;
-+ rtx reg = XVECEXP (span, 0, si);
-+ init_one_dwarf_reg_size
-+ (REGNO (reg), GET_MODE (reg), mem, mode, &init_state);
-+ }
-
-- emit_move_insn (adjust_address (mem, mode, offset),
-- gen_int_mode (size, mode));
- }
- }
-
-- if (!wrote_return_column)
-+ if (!init_state.wrote_return_column)
- init_return_column_size (mode, mem, DWARF_FRAME_RETURN_COLUMN);
-
- #ifdef DWARF_ALT_FRAME_RETURN_COLUMN
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0056-define-default-cfa-register-mapping.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0056-define-default-cfa-register-mapping.patch
deleted file mode 100644
index 3b6c94c49..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0056-define-default-cfa-register-mapping.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From c0235a33de8c4f78cce35b2a8c2035c83fe1bd14 Mon Sep 17 00:00:00 2001
-From: hainque <hainque@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Fri, 5 Dec 2014 17:01:42 +0000
-Subject: [PATCH] 2014-12-05 Olivier Hainque <hainque@adacore.com>
-
- gcc/
- * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
- * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
- DWARF_REG_TO_UNWIND_COLUMN.
-
- libgcc/
- * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Remove default def,
- now provided by defaults.h.
-
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@218429 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [gcc 5.0]
-
----
- gcc/ChangeLog | 6 ++++++
- gcc/defaults.h | 5 +++++
- gcc/dwarf2cfi.c | 3 ++-
- libgcc/ChangeLog | 5 +++++
- libgcc/unwind-dw2.c | 4 ----
- 5 files changed, 18 insertions(+), 5 deletions(-)
-
-Index: gcc-4.9.2/gcc/defaults.h
-===================================================================
---- gcc-4.9.2.orig/gcc/defaults.h
-+++ gcc-4.9.2/gcc/defaults.h
-@@ -438,6 +438,11 @@ see the files COPYING3 and COPYING.RUNTI
- #define DWARF_FRAME_REGNUM(REG) DBX_REGISTER_NUMBER (REG)
- #endif
-
-+/* The mapping from dwarf CFA reg number to internal dwarf reg numbers. */
-+#ifndef DWARF_REG_TO_UNWIND_COLUMN
-+#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
-+#endif
-+
- /* Map register numbers held in the call frame info that gcc has
- collected using DWARF_FRAME_REGNUM to those that should be output in
- .debug_frame and .eh_frame. */
-Index: gcc-4.9.2/gcc/dwarf2cfi.c
-===================================================================
---- gcc-4.9.2.orig/gcc/dwarf2cfi.c
-+++ gcc-4.9.2/gcc/dwarf2cfi.c
-@@ -280,8 +280,9 @@ void init_one_dwarf_reg_size (int regno,
- {
- const unsigned int dnum = DWARF_FRAME_REGNUM (regno);
- const unsigned int rnum = DWARF2_FRAME_REG_OUT (dnum, 1);
-+ const unsigned int dcol = DWARF_REG_TO_UNWIND_COLUMN (rnum);
-
-- const HOST_WIDE_INT slotoffset = rnum * GET_MODE_SIZE (slotmode);
-+ const HOST_WIDE_INT slotoffset = dcol * GET_MODE_SIZE (slotmode);
- const HOST_WIDE_INT regsize = GET_MODE_SIZE (regmode);
-
- init_state->processed_regno[regno] = true;
-Index: gcc-4.9.2/libgcc/unwind-dw2.c
-===================================================================
---- gcc-4.9.2.orig/libgcc/unwind-dw2.c
-+++ gcc-4.9.2/libgcc/unwind-dw2.c
-@@ -55,10 +55,6 @@
- #define PRE_GCC3_DWARF_FRAME_REGISTERS DWARF_FRAME_REGISTERS
- #endif
-
--#ifndef DWARF_REG_TO_UNWIND_COLUMN
--#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
--#endif
--
- /* ??? For the public function interfaces, we tend to gcc_assert that the
- column numbers are in range. For the dwarf2 unwind info this does happen,
- although so far in a case that doesn't actually matter.
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0057-aarch64-config.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0057-aarch64-config.patch
deleted file mode 100644
index f29559698..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0057-aarch64-config.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Disable the MULTILIB_OSDIRNAMES and other multilib options.
-
-Hard coding the MULTILIB_OSDIRNAMES with ../lib64 is causing problems on
-systems where the libdir is NOT set to /lib64. This is allowed by the ABI, as
-long as the dynamic loader is present in /lib.
-
-We simply want to use the default rules in gcc to find and configure the
-normal libdir.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
-Index: gcc-4.9.1/gcc/config/aarch64/t-aarch64-linux
-===================================================================
---- gcc-4.9.1.orig/gcc/config/aarch64/t-aarch64-linux
-+++ gcc-4.9.1/gcc/config/aarch64/t-aarch64-linux
-@@ -21,11 +21,11 @@
- LIB1ASMSRC = aarch64/lib1funcs.asm
- LIB1ASMFUNCS = _aarch64_sync_cache_range
-
--AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
--MULTILIB_OSDIRNAMES = .=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
--MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
-+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-+#MULTILIB_OSDIRNAMES = .=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
-+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
-
- # Disable the multilib for linux-gnu targets for the time being; focus
- # on the baremetal targets.
--MULTILIB_OPTIONS =
--MULTILIB_DIRNAMES =
-+#MULTILIB_OPTIONS =
-+#MULTILIB_DIRNAMES =
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-r212171.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-r212171.patch
deleted file mode 100644
index d442ba8a8..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0058-gcc-r212171.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From ca03cf1b133d66eb978c68f6dbc345e9aabcba88 Mon Sep 17 00:00:00 2001
-From: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Mon, 30 Jun 2014 19:30:52 +0000
-Subject: [PATCH] r212171
-
-* except.c (emit_note_eh_region_end): New helper
- function. (convert_to_eh_region_ranges): Use
- emit_note_eh_region_end to emit EH_REGION_END note.
- * jump.c (cleanup_barriers): Do not split a call and its
- corresponding CALL_ARG_LOCATION note.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212171 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport [https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=212171]
-Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
----
- gcc/except.c | 23 ++++++++++++++++++-----
- gcc/jump.c | 19 +++++++++++++++----
- 2 files changed, 33 insertions(+), 9 deletions(-)
-
-diff --git a/gcc/except.c b/gcc/except.c
-index dc5c1d2..7ac114f 100644
---- a/gcc/except.c
-+++ b/gcc/except.c
-@@ -2466,6 +2466,20 @@ add_call_site (rtx landing_pad, int action, int section)
- return call_site_base + crtl->eh.call_site_record_v[section]->length () - 1;
- }
-
-+static rtx
-+emit_note_eh_region_end (rtx insn)
-+{
-+ rtx next = NEXT_INSN (insn);
-+
-+ /* Make sure we do not split a call and its corresponding
-+ CALL_ARG_LOCATION note. */
-+ if (next && NOTE_P (next)
-+ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
-+ insn = next;
-+
-+ return emit_note_after (NOTE_INSN_EH_REGION_END, insn);
-+}
-+
- /* Turn REG_EH_REGION notes back into NOTE_INSN_EH_REGION notes.
- The new note numbers will not refer to region numbers, but
- instead to call site entries. */
-@@ -2544,8 +2558,8 @@ convert_to_eh_region_ranges (void)
- note = emit_note_before (NOTE_INSN_EH_REGION_BEG,
- first_no_action_insn_before_switch);
- NOTE_EH_HANDLER (note) = call_site;
-- note = emit_note_after (NOTE_INSN_EH_REGION_END,
-- last_no_action_insn_before_switch);
-+ note
-+ = emit_note_eh_region_end (last_no_action_insn_before_switch);
- NOTE_EH_HANDLER (note) = call_site;
- gcc_assert (last_action != -3
- || (last_action_insn
-@@ -2569,8 +2583,7 @@ convert_to_eh_region_ranges (void)
- first_no_action_insn = NULL_RTX;
- }
-
-- note = emit_note_after (NOTE_INSN_EH_REGION_END,
-- last_action_insn);
-+ note = emit_note_eh_region_end (last_action_insn);
- NOTE_EH_HANDLER (note) = call_site;
- }
-
-@@ -2617,7 +2630,7 @@ convert_to_eh_region_ranges (void)
-
- if (last_action >= -1 && ! first_no_action_insn)
- {
-- note = emit_note_after (NOTE_INSN_EH_REGION_END, last_action_insn);
-+ note = emit_note_eh_region_end (last_action_insn);
- NOTE_EH_HANDLER (note) = call_site;
- }
-
-diff --git a/gcc/jump.c b/gcc/jump.c
-index 9418f65..a5e5f52 100644
---- a/gcc/jump.c
-+++ b/gcc/jump.c
-@@ -121,15 +121,26 @@ rebuild_jump_labels_chain (rtx chain)
- static unsigned int
- cleanup_barriers (void)
- {
-- rtx insn, next, prev;
-- for (insn = get_insns (); insn; insn = next)
-+ rtx insn;
-+ for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
- {
-- next = NEXT_INSN (insn);
- if (BARRIER_P (insn))
- {
-- prev = prev_nonnote_insn (insn);
-+ rtx prev = prev_nonnote_insn (insn);
- if (!prev)
- continue;
-+
-+ if (CALL_P (prev))
-+ {
-+ /* Make sure we do not split a call and its corresponding
-+ CALL_ARG_LOCATION note. */
-+ rtx next = NEXT_INSN (prev);
-+
-+ if (NOTE_P (next)
-+ && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION)
-+ prev = next;
-+ }
-+
- if (BARRIER_P (prev))
- delete_insn (insn);
- else if (prev != PREV_INSN (insn))
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0059-gcc-PR-rtl-optimization-63348.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0059-gcc-PR-rtl-optimization-63348.patch
deleted file mode 100644
index de827cbda..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0059-gcc-PR-rtl-optimization-63348.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 6eae3e637fcc22d21b51d44d61e3a9cb4825e776 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Thu, 30 Oct 2014 20:37:14 -0700
-Subject: [PATCH]PR rtl-optimization/63348
-
-PR rtl-optimization/63348
-* emit-rtl.c (try_split): Do not emit extra barrier.
-
-Note: this patch is to fix the side effect introduced by r212171 which was reported at:
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63348
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215613 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport [https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=215613]
-Signed-off-by: Baoshan Pang <baoshan.pang@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- gcc/emit-rtl.c | 11 -----------
- 1 files changed, 0 insertions(+), 11 deletions(-)
-
-diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
-index 4736f8d..ae69dbd 100644
---- a/gcc/emit-rtl.c
-+++ b/gcc/emit-rtl.c
-@@ -3422,7 +3422,6 @@ try_split (rtx pat, rtx trial, int last)
- {
- rtx before = PREV_INSN (trial);
- rtx after = NEXT_INSN (trial);
-- int has_barrier = 0;
- rtx note, seq, tem;
- int probability;
- rtx insn_last, insn;
-@@ -3441,14 +3440,6 @@ try_split (rtx pat, rtx trial, int last)
-
- split_branch_probability = -1;
-
-- /* If we are splitting a JUMP_INSN, it might be followed by a BARRIER.
-- We may need to handle this specially. */
-- if (after && BARRIER_P (after))
-- {
-- has_barrier = 1;
-- after = NEXT_INSN (after);
-- }
--
- if (!seq)
- return trial;
-
-@@ -3594,8 +3585,6 @@ try_split (rtx pat, rtx trial, int last)
- tem = emit_insn_after_setloc (seq, trial, INSN_LOCATION (trial));
-
- delete_insn (trial);
-- if (has_barrier)
-- emit_barrier_after (tem);
-
- /* Recursively call try_split for each new insn created; by the
- time control returns here that insn will be fully split, so
---
-1.7.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch
deleted file mode 100644
index 75a9fdd44..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0060-Only-allow-e500-double-in-SPE_SIMD_REGNO_P-registers.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 5c0092070253113cf0d9c45eacc884b3ecc34d81 Mon Sep 17 00:00:00 2001
-From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Sat, 25 Oct 2014 00:23:17 +0000
-Subject: [PATCH] Only allow e500 double in SPE_SIMD_REGNO_P registers.
-
-rs6000_hard_regno_nregs_internal allows SPE vectors in single
-registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
-31). However, the corresponding test for e500 double treats all
-registers as being able to store a 64-bit value, rather than just
-those GPRs.
-
-Logically this inconsistency is wrong; in addition, it causes problems
-unwinding from signal handlers. linux-unwind.h uses
-ARG_POINTER_REGNUM as a place to store the return address from a
-signal handler, but this logic in rs6000_hard_regno_nregs_internal
-results in that being considered an 8-byte register, resulting in
-assertion failures.
-(<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
-needs to be applied for unwinding to work in general on e500.) This
-patch makes rs6000_hard_regno_nregs_internal handle the e500 double
-case consistently with SPE vectors.
-
-Tested with no regressions with cross to powerpc-linux-gnuspe (given
-the aforementioned patch applied). Failures of signal handling
-unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
-patch.
-
- * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
- not allow e500 double in registers not satisyfing
- SPE_SIMD_REGNO_P.
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216688 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [gcc 5.0]
-
----
- gcc/ChangeLog | 6 ++++++
- gcc/config/rs6000/rs6000.c | 2 +-
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
-Index: gcc-4.9.2/gcc/config/rs6000/rs6000.c
-===================================================================
---- gcc-4.9.2.orig/gcc/config/rs6000/rs6000.c
-+++ gcc-4.9.2/gcc/config/rs6000/rs6000.c
-@@ -1703,7 +1703,7 @@ rs6000_hard_regno_nregs_internal (int re
- SCmode so as to pass the value correctly in a pair of
- registers. */
- else if (TARGET_E500_DOUBLE && FLOAT_MODE_P (mode) && mode != SCmode
-- && !DECIMAL_FLOAT_MODE_P (mode))
-+ && !DECIMAL_FLOAT_MODE_P (mode) && SPE_SIMD_REGNO_P (regno))
- reg_size = UNITS_PER_FP_WORD;
-
- else
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0061-target-gcc-includedir.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0061-target-gcc-includedir.patch
deleted file mode 100644
index f48c66dca..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0061-target-gcc-includedir.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Ensure target gcc headers can be included
-
-There are a few headers installed as part of the OpenEmbedded
-gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
-built for the target architecture, these are within the target
-sysroot and not cross/nativesdk; thus they weren't able to be
-found by gcc with the existing search paths. Add support for
-picking up these headers under the sysroot supplied on the gcc
-command line in order to resolve this.
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-Upstream-Status: Pending
-
---- a/gcc/Makefile.in 2014-12-23 11:57:33.327873331 +0000
-+++ b/gcc/Makefile.in 2015-01-21 11:32:35.447305394 +0000
-@@ -587,6 +587,7 @@
-
- # Directory in which the compiler finds libraries etc.
- libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(version)
-+libsubdir_target = gcc/$(target_noncanonical)/$(version)
- # Directory in which the compiler finds executables
- libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(version)
- # Directory in which all plugin resources are installed
-@@ -2534,6 +2535,7 @@
-
- PREPROCESSOR_DEFINES = \
- -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
-+ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \
- -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
- -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
- -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
---- a/gcc/cppdefault.c 2015-01-13 17:40:26.131012725 +0000
-+++ b/gcc/cppdefault.c 2015-01-21 11:30:08.928426492 +0000
-@@ -59,6 +59,10 @@
- /* This is the dir for gcc's private headers. */
- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
- #endif
-+#ifdef GCC_INCLUDE_SUBDIR_TARGET
-+ /* This is the dir for gcc's private headers under the specified sysroot. */
-+ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
-+#endif
- #ifdef LOCAL_INCLUDE_DIR
- /* /usr/local/include comes before the fixincluded header files. */
- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
-diff --git a/gcc/defaults.h b/gcc/defaults.h
-index f94ae17..d98b40b 100644
---- a/gcc/defaults.h
-+++ b/gcc/defaults.h
-@@ -1390,4 +1390,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-
- #endif /* GCC_INSN_FLAGS_H */
-
-+/* Default prefixes to attach to command names. */
-+
-+#ifndef STANDARD_STARTFILE_PREFIX_1
-+#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
-+#endif
-+#ifndef STANDARD_STARTFILE_PREFIX_2
-+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
-+#endif
-+
- #endif /* ! GCC_DEFAULTS_H */
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 9f0b781..174fca8 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -1189,13 +1189,6 @@ static const char *gcc_libexec_prefix;
-
- /* Default prefixes to attach to command names. */
-
--#ifndef STANDARD_STARTFILE_PREFIX_1
--#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
--#endif
--#ifndef STANDARD_STARTFILE_PREFIX_2
--#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
--#endif
--
- #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */
- #undef MD_EXEC_PREFIX
- #undef MD_STARTFILE_PREFIX
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
deleted file mode 100644
index c48bd4847..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0062-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 861bcfd4ae814f351e0c668ee26d01d1331e0422 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 28 Apr 2015 23:15:27 -0700
-Subject: [PATCH 36/37] Use SYSTEMLIBS_DIR replacement instead of hardcoding
- base_libdir
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/aarch64/aarch64-linux.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/aarch64/aarch64-linux.h
-+++ gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
-@@ -21,7 +21,7 @@
- #ifndef GCC_AARCH64_LINUX_H
- #define GCC_AARCH64_LINUX_H
-
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}.so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}.so.1"
-
- #define CPP_SPEC "%{pthread:-D_REENTRANT}"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0063-nativesdk-gcc-support.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0063-nativesdk-gcc-support.patch
deleted file mode 100644
index f9efa4537..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0063-nativesdk-gcc-support.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-Being able to build a nativesdk gcc is useful, particularly in cases
-where the host compiler may be of an incompatible version (or a 32
-bit compiler is needed).
-
-Sadly, building nativesdk-gcc is not straight forward. We install
-nativesdk-gcc into a relocatable location and this means that its
-library locations can change. "Normal" sysroot support doesn't help
-in this case since the values of paths like "libdir" change, not just
-base root directory of the system.
-
-In order to handle this we do two things:
-
-a) Add %r into spec file markup which can be used for injected paths
- such as SYSTEMLIBS_DIR (see gcc_multilib_setup()).
-b) Add other paths which need relocation into a .gccrelocprefix section
- which the relocation code will notice and adjust automatically.
-
-Upstream-Status: Inappropriate
-RP 2015/7/28
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 5fd3d0a..2de29aa 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -120,6 +120,8 @@ static const char *target_system_root = TARGET_SYSTEM_ROOT;
- #else
- static const char *target_system_root = 0;
- #endif
-+
-+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR;
-
- /* Nonzero means pass the updated target_system_root to the compiler. */
-
-@@ -384,6 +386,7 @@ or with constant text in a single argument.
- %G process LIBGCC_SPEC as a spec.
- %R Output the concatenation of target_system_root and
- target_sysroot_suffix.
-+ %r Output the base path target_relocatable_prefix
- %S process STARTFILE_SPEC as a spec. A capital S is actually used here.
- %E process ENDFILE_SPEC as a spec. A capital E is actually used here.
- %C process CPP_SPEC as a spec.
-@@ -1218,10 +1221,10 @@ static const char *gcc_libexec_prefix;
- gcc_exec_prefix is set because, in that case, we know where the
- compiler has been installed, and use paths relative to that
- location instead. */
--static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
--static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX;
--static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX;
--static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
-+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
-+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX;
-+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX;
-+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
-
- /* For native compilers, these are well-known paths containing
- components that may be provided by the system. For cross
-@@ -1229,9 +1232,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
- static const char *md_exec_prefix = MD_EXEC_PREFIX;
- static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
- static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
--static const char *const standard_startfile_prefix_1
-+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix")))
- = STANDARD_STARTFILE_PREFIX_1;
--static const char *const standard_startfile_prefix_2
-+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix")))
- = STANDARD_STARTFILE_PREFIX_2;
-
- /* A relative path to be used in finding the location of tools
-@@ -5305,6 +5308,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
- }
- break;
-
-+ case 'r':
-+ obstack_grow (&obstack, target_relocatable_prefix,
-+ strlen (target_relocatable_prefix));
-+ break;
-+
- case 'S':
- value = do_spec_1 (startfile_spec, 0, NULL);
- if (value != 0)
-
-diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
-index dad69e6..cf43f28 100644
---- a/gcc/cppdefault.c
-+++ b/gcc/cppdefault.c
-@@ -35,6 +35,30 @@
- # undef CROSS_INCLUDE_DIR
- #endif
-
-+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR;
-+static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
-+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR;
-+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR;
-+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET;
-+#ifdef LOCAL_INCLUDE_DIR
-+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR;
-+#endif
-+#ifdef PREFIX_INCLUDE_DIR
-+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR;
-+#endif
-+#ifdef FIXED_INCLUDE_DIR
-+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR;
-+#endif
-+#ifdef CROSS_INCLUDE_DIR
-+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR;
-+#endif
-+#ifdef TOOL_INCLUDE_DIR
-+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR;
-+#endif
-+#ifdef NATIVE_SYSTEM_HEADER_DIR
-+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR;
-+#endif
-+
- const struct default_include cpp_include_defaults[]
- #ifdef INCLUDE_DEFAULTS
- = INCLUDE_DEFAULTS;
-@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[]
- = {
- #ifdef GPLUSPLUS_INCLUDE_DIR
- /* Pick up GNU C++ generic include files. */
-- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
-+ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,
- GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
- /* Pick up GNU C++ target-dependent include files. */
-- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
-+ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,
- GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
- #endif
- #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
- /* Pick up GNU C++ backward and deprecated include files. */
-- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
-+ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,
- GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GCC_INCLUDE_DIR
- /* This is the dir for gcc's private headers. */
-- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
-+ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
- #endif
- #ifdef GCC_INCLUDE_SUBDIR_TARGET
- /* This is the dir for gcc's private headers under the specified sysroot. */
-- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
-+ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 },
- #endif
- #ifdef LOCAL_INCLUDE_DIR
- /* /usr/local/include comes before the fixincluded header files. */
-- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
-- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },
-+ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
- #endif
- #ifdef PREFIX_INCLUDE_DIR
-- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
-+ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 },
- #endif
- #ifdef FIXED_INCLUDE_DIR
- /* This is the dir for fixincludes. */
-- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
-+ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0,
- /* A multilib suffix needs adding if different multilibs use
- different headers. */
- #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
-@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[]
- #endif
- #ifdef CROSS_INCLUDE_DIR
- /* One place the target system's headers might be. */
-- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
-+ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
- #endif
- #ifdef TOOL_INCLUDE_DIR
- /* Another place the target system's headers might be. */
-- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
-+ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 },
- #endif
- #ifdef NATIVE_SYSTEM_HEADER_DIR
- /* /usr/include comes dead last. */
-- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
-- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
-+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
-+ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
- #endif
- { 0, 0, 0, 0, 0, 0 }
- };
-diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
-index 30b6fed..2ef96b7 100644
---- a/gcc/cppdefault.h
-+++ b/gcc/cppdefault.h
-@@ -33,7 +33,8 @@
-
- struct default_include
- {
-- const char *const fname; /* The name of the directory. */
-+ const char *fname; /* The name of the directory. */
-+
- const char *const component; /* The component containing the directory
- (see update_path in prefix.c) */
- const char cplusplus; /* Only look here if we're compiling C++. */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0064-handle-target-sysroot-multilib.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0064-handle-target-sysroot-multilib.patch
deleted file mode 100644
index 53569847f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0064-handle-target-sysroot-multilib.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-Search target sysroot gcc version specific dirs with multilib.
-
-We install the gcc libraries (such as crtbegin.p) into
-<sysroot><libdir>/<target-sys>/5.2.0/
-which is a default search path for GCC (aka multi_suffix in the
-code below). <target-sys> is 'machine' in gcc's terminology. We use
-these directories so that multiple gcc versions could in theory
-co-exist on target.
-
-We only want to build one gcc-cross-canadian per arch and have this work
-for all multilibs. <target-sys> can be handled by mapping the multilib
-<target-sys> to the one used by gcc-cross-canadian, e.g. mips64-polkmllib32-linux
-is symlinked to by mips64-poky-linux.
-
-The default gcc search path in the target sysroot for a "lib64" mutlilib is:
-
-<sysroot>/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/../lib64/
-<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/../lib64/
-<sysroot>/lib32/
-<sysroot>/usr/lib32/
-
-which means that the lib32 crtbegin.o will be found and the lib64 ones
-will not which leads to compiler failures.
-
-This patch injects a multilib version of that path first so the lib64
-binaries can be found first. With this change the search path becomes:
-
-<sysroot>/lib32/../lib64/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/../lib64/
-<sysroot>/usr/lib32/../lib64/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/../lib64/
-<sysroot>/lib32/
-<sysroot>/usr/lib32/
-
-Upstream-Status: Pending
-RP 2015/7/31
-
-Index: gcc-5.2.0/gcc/gcc.c
-===================================================================
---- gcc-5.2.0.orig/gcc/gcc.c
-+++ gcc-5.2.0/gcc/gcc.c
-@@ -2305,7 +2305,7 @@ for_each_path (const struct path_prefix
- if (path == NULL)
- {
- len = paths->max_len + extra_space + 1;
-- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len);
-+ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len);
- path = XNEWVEC (char, len);
- }
-
-@@ -2317,6 +2317,33 @@ for_each_path (const struct path_prefix
- /* Look first in MACHINE/VERSION subdirectory. */
- if (!skip_multi_dir)
- {
-+ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir))
-+ {
-+ const char *this_multi;
-+ size_t this_multi_len;
-+
-+ if (pl->os_multilib)
-+ {
-+ this_multi = multi_os_dir;
-+ this_multi_len = multi_os_dir_len;
-+ }
-+ else
-+ {
-+ this_multi = multi_dir;
-+ this_multi_len = multi_dir_len;
-+ }
-+
-+ /* Look in multilib MACHINE/VERSION subdirectory first */
-+ if (this_multi_len)
-+ {
-+ memcpy (path + len, this_multi, this_multi_len + 1);
-+ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1);
-+ ret = callback (path, callback_info);
-+ if (ret)
-+ break;
-+ }
-+ }
-+
- memcpy (path + len, multi_suffix, suffix_len + 1);
- ret = callback (path, callback_info);
- if (ret)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0065-gcc-483-universal-initializer-no-warning.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0065-gcc-483-universal-initializer-no-warning.patch
deleted file mode 100644
index fde227b8a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0065-gcc-483-universal-initializer-no-warning.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-Upstream-Status: Backport
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-Fix for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
-wrong warning when using the universal zero initializer {0}
-
-Backported to GCC 4.8.3
-
-Subject: 2014-06-05 S. Gilles <sgilles@terpmail.umd.edu>
-X-Git-Url: http://repo.or.cz/w/official-gcc.git/commitdiff_plain/95cdf3fdf2d440eb7775def8e35ab970651c33d9?hp=14a3093e9943937cbc63dfbf4d51ca60f8325b29
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211289 138bc75d-0d04-0410-961f-82ee72b054a4
-
---- gcc-4.8.3.org/gcc/c/c-typeck.c 2014-08-03 20:52:09.257042137 +0200
-+++ gcc-4.8.3/gcc/c/c-typeck.c 2014-08-03 20:57:10.645042614 +0200
-@@ -62,9 +62,9 @@
- if expr.original_code == SIZEOF_EXPR. */
- tree c_last_sizeof_arg;
-
--/* Nonzero if we've already printed a "missing braces around initializer"
-- message within this initializer. */
--static int missing_braces_mentioned;
-+/* Nonzero if we might need to print a "missing braces around
-+ initializer" message within this initializer. */
-+static int found_missing_braces;
-
- static int require_constant_value;
- static int require_constant_elements;
-@@ -6379,6 +6379,9 @@
- /* 1 if this constructor is erroneous so far. */
- static int constructor_erroneous;
-
-+/* 1 if this constructor is the universal zero initializer { 0 }. */
-+static int constructor_zeroinit;
-+
- /* Structure for managing pending initializer elements, organized as an
- AVL tree. */
-
-@@ -6540,7 +6543,7 @@
- constructor_stack = 0;
- constructor_range_stack = 0;
-
-- missing_braces_mentioned = 0;
-+ found_missing_braces = 0;
-
- spelling_base = 0;
- spelling_size = 0;
-@@ -6635,6 +6638,7 @@
- constructor_type = type;
- constructor_incremental = 1;
- constructor_designated = 0;
-+ constructor_zeroinit = 1;
- designator_depth = 0;
- designator_erroneous = 0;
-
-@@ -6832,11 +6836,8 @@
- set_nonincremental_init (braced_init_obstack);
- }
-
-- if (implicit == 1 && warn_missing_braces && !missing_braces_mentioned)
-- {
-- missing_braces_mentioned = 1;
-- warning_init (OPT_Wmissing_braces, "missing braces around initializer");
-- }
-+ if (implicit == 1)
-+ found_missing_braces = 1;
-
- if (TREE_CODE (constructor_type) == RECORD_TYPE
- || TREE_CODE (constructor_type) == UNION_TYPE)
-@@ -6969,16 +6970,23 @@
- }
- }
-
-+ if (vec_safe_length (constructor_elements) != 1)
-+ constructor_zeroinit = 0;
-+
-+ /* Warn when some structs are initialized with direct aggregation. */
-+ if (!implicit && found_missing_braces && warn_missing_braces
-+ && !constructor_zeroinit)
-+ {
-+ warning_init (OPT_Wmissing_braces,
-+ "missing braces around initializer");
-+ }
-+
- /* Warn when some struct elements are implicitly initialized to zero. */
- if (warn_missing_field_initializers
- && constructor_type
- && TREE_CODE (constructor_type) == RECORD_TYPE
- && constructor_unfilled_fields)
- {
-- bool constructor_zeroinit =
-- (vec_safe_length (constructor_elements) == 1
-- && integer_zerop ((*constructor_elements)[0].value));
--
- /* Do not warn for flexible array members or zero-length arrays. */
- while (constructor_unfilled_fields
- && (!DECL_SIZE (constructor_unfilled_fields)
-@@ -8093,6 +8101,9 @@
- designator_depth = 0;
- designator_erroneous = 0;
-
-+ if (!implicit && value.value && !integer_zerop (value.value))
-+ constructor_zeroinit = 0;
-+
- /* Handle superfluous braces around string cst as in
- char x[] = {"foo"}; */
- if (string_flag
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0066-cxxflags-for-build.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0066-cxxflags-for-build.patch
deleted file mode 100644
index 1105e29f6..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0066-cxxflags-for-build.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-Fix various _FOR_BUILD and related variables
-
-When doing a FOR_BUILD thing, you have to override CFLAGS with
-CFLAGS_FOR_BUILD. And if you use C++, you also have to override
-CXXFLAGS with CXXFLAGS_FOR_BUILD.
-Without this, when building for mingw, you end up trying to use
-the mingw headers for a host build.
-
-The same goes for other variables as well, such as CPPFLAGS,
-CPP, and GMPINC.
-
-Upstream-Status: Pending
-
-Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index 9370174..011c29a 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -152,6 +152,7 @@ BUILD_EXPORTS = \
- CPP="$(CC_FOR_BUILD) -E"; export CPP; \
- CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
- CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
-+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
- CXX="$(CXX_FOR_BUILD)"; export CXX; \
- CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
- GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
-@@ -170,6 +171,9 @@ BUILD_EXPORTS = \
- # built for the build system to override those in BASE_FLAGS_TO_PASS.
- EXTRA_BUILD_FLAGS = \
- CFLAGS="$(CFLAGS_FOR_BUILD)" \
-+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
-+ CPP="$(CC_FOR_BUILD) -E" \
-+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \
- LDFLAGS="$(LDFLAGS_FOR_BUILD)"
-
- # This is the list of directories to built for the host system.
-@@ -187,6 +191,7 @@ HOST_SUBDIR = @host_subdir@
- HOST_EXPORTS = \
- $(BASE_EXPORTS) \
- CC="$(CC)"; export CC; \
-+ CPP="$(CC) -E"; export CPP; \
- ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
- CFLAGS="$(CFLAGS)"; export CFLAGS; \
- CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
-@@ -711,6 +715,7 @@ BASE_FLAGS_TO_PASS = \
- "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
- "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
- "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
-+ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \
- "EXPECT=$(EXPECT)" \
- "FLEX=$(FLEX)" \
- "INSTALL=$(INSTALL)" \
-diff --git a/Makefile.tpl b/Makefile.tpl
-index 1ea1954..78a59c3 100644
---- a/Makefile.tpl
-+++ b/Makefile.tpl
-@@ -154,6 +154,7 @@ BUILD_EXPORTS = \
- CC="$(CC_FOR_BUILD)"; export CC; \
- CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
- CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
-+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
- CXX="$(CXX_FOR_BUILD)"; export CXX; \
- CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
- GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
-@@ -172,6 +173,9 @@ BUILD_EXPORTS = \
- # built for the build system to override those in BASE_FLAGS_TO_PASS.
- EXTRA_BUILD_FLAGS = \
- CFLAGS="$(CFLAGS_FOR_BUILD)" \
-+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
-+ CPP="$(CC_FOR_BUILD) -E" \
-+ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \
- LDFLAGS="$(LDFLAGS_FOR_BUILD)"
-
- # This is the list of directories to built for the host system.
-@@ -189,6 +193,7 @@ HOST_SUBDIR = @host_subdir@
- HOST_EXPORTS = \
- $(BASE_EXPORTS) \
- CC="$(CC)"; export CC; \
-+ CPP="$(CC) -E"; export CPP; \
- ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
- CFLAGS="$(CFLAGS)"; export CFLAGS; \
- CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index cd5bc4a..98ae4f4 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -762,7 +762,7 @@ BUILD_LINKERFLAGS = $(BUILD_CXXFLAGS)
- # Native linker and preprocessor flags. For x-fragment overrides.
- BUILD_LDFLAGS=@BUILD_LDFLAGS@
- BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
-- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS)
-+ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD)
-
- # Actual name to use when installing a native compiler.
- GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
-diff --git a/gcc/configure b/gcc/configure
-index c7ac14b..5ac63e4 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11521,7 +11521,7 @@ else
- CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
- CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
- LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
-- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
-+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
- ${realsrcdir}/configure \
- --enable-languages=${enable_languages-all} \
- --target=$target_alias --host=$build_alias --build=$build_alias
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 50856e6..17a4dfd 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1633,7 +1633,7 @@ else
- CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
- CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
- LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
-- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
-+ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
- ${realsrcdir}/configure \
- --enable-languages=${enable_languages-all} \
- --target=$target_alias --host=$build_alias --build=$build_alias
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch
deleted file mode 100644
index 2f262e3a3..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-fix-arm-thumb.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Upstream-Status: Accepted
-
-Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
----
-
-2015-11-25 Vladimir Makarov <vmakarov@redhat.com>
-
- PR rtl-optimization/67954
- * lra-constraints.c (curr_insn_transform): Add check on scratch
- pseudo when change class to NO_REGS. Add an assert.
-
-
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230894 138bc75d-0d04-0410-961f-82ee72b054a4
----
-
-diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
-index 4670e81..c62bf6a 100644
---- a/gcc/lra-constraints.c
-+++ b/gcc/lra-constraints.c
-@@ -3725,7 +3725,8 @@ curr_insn_transform (bool check_only_p)
- assigment pass and the scratch pseudo will be
- spilled. Spilled scratch pseudos are transformed
- back to scratches at the LRA end. */
-- && lra_former_scratch_operand_p (curr_insn, i))
-+ && lra_former_scratch_operand_p (curr_insn, i)
-+ && lra_former_scratch_p (REGNO (op)))
- {
- int regno = REGNO (op);
- lra_change_class (regno, NO_REGS, " Change to", true);
-@@ -3734,6 +3735,8 @@ curr_insn_transform (bool check_only_p)
- spilled pseudo as there is only one such insn, the
- current one. */
- reg_renumber[regno] = -1;
-+ lra_assert (bitmap_single_bit_set_p
-+ (&lra_reg_info[REGNO (op)].insn_bitmap));
- }
- /* We can do an optional reload. If the pseudo got a hard
- reg, we might improve the code through inheritance. If
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-gcc-musl-support.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-gcc-musl-support.patch
deleted file mode 100644
index 9a0b5ade4..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0067-gcc-musl-support.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-# HG changeset patch
-# Parent e5b4564f249f8634194bdabef4b3057d0e54ee97
-Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker.
-Upstream-Status: backport [partial]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-
-Index: gcc-4.9.0/gcc/config.gcc
-===================================================================
---- gcc-4.9.0.orig/gcc/config.gcc 2014-04-22 22:44:17.153567150 -0700
-+++ gcc-4.9.0/gcc/config.gcc 2014-04-23 23:54:31.427357051 -0700
-@@ -594,7 +594,7 @@
- esac
-
- # Common C libraries.
--tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
-+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
-
- # 32-bit x86 processors supported by --with-arch=. Each processor
- # MUST be separated by exactly one space.
-@@ -719,6 +719,9 @@
- *-*-*uclibc*)
- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
- ;;
-+ *-*-*musl*)
-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
-+ ;;
- *)
- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
- ;;
-@@ -2328,6 +2331,11 @@
- powerpc*-*-linux*paired*)
- tm_file="${tm_file} rs6000/750cl.h" ;;
- esac
-+ case ${target} in
-+ *-linux*-musl*)
-+ enable_secureplt=yes ;;
-+ esac
-+
- if test x${enable_secureplt} = xyes; then
- tm_file="rs6000/secureplt.h ${tm_file}"
- fi
-Index: gcc-4.9.0/gcc/config/linux.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/linux.h 2014-01-02 14:23:26.000000000 -0800
-+++ gcc-4.9.0/gcc/config/linux.h 2014-04-24 00:11:29.034028895 -0700
-@@ -32,10 +32,12 @@
- #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
- #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
- #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
-+#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
- #else
- #define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
- #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
- #define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
-+#define OPTION_MUSL (linux_libc == LIBC_MUSL)
- #endif
-
- #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
-@@ -53,18 +55,21 @@
- uClibc or Bionic is the default C library and whether
- -muclibc or -mglibc or -mbionic has been passed to change the default. */
-
--#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \
-- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}"
-+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \
-+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}"
-
- #if DEFAULT_LIBC == LIBC_GLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M)
- #elif DEFAULT_LIBC == LIBC_UCLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M)
- #elif DEFAULT_LIBC == LIBC_BIONIC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M)
-+#elif DEFAULT_LIBC == LIBC_MUSL
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B)
- #else
- #error "Unsupported DEFAULT_LIBC"
- #endif /* DEFAULT_LIBC */
-@@ -84,16 +89,16 @@
-
- #define GNU_USER_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
-- BIONIC_DYNAMIC_LINKER)
-+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
- #define GNU_USER_DYNAMIC_LINKER32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
-- BIONIC_DYNAMIC_LINKER32)
-+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
- #define GNU_USER_DYNAMIC_LINKER64 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
-- BIONIC_DYNAMIC_LINKER64)
-+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
- #define GNU_USER_DYNAMIC_LINKERX32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
-- BIONIC_DYNAMIC_LINKERX32)
-+ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
-
- /* Whether we have Bionic libc runtime */
- #undef TARGET_HAS_BIONIC
-@@ -127,3 +132,74 @@
- # define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
-
- #endif
-+
-+/* musl avoids problematic includes by rearranging the include directories.
-+ * Unfortunately, this is mostly duplicated from cppdefault.c */
-+#if DEFAULT_LIBC == LIBC_MUSL
-+#define INCLUDE_DEFAULTS_MUSL_GPP \
-+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \
-+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \
-+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
-+
-+#ifdef LOCAL_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_LOCAL \
-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \
-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_LOCAL
-+#endif
-+
-+#ifdef PREFIX_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_PREFIX \
-+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_PREFIX
-+#endif
-+
-+#ifdef CROSS_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_CROSS \
-+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_CROSS
-+#endif
-+
-+#ifdef TOOL_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_TOOL \
-+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_TOOL
-+#endif
-+
-+#ifdef NATIVE_SYSTEM_HEADER_DIR
-+#define INCLUDE_DEFAULTS_MUSL_NATIVE \
-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_NATIVE
-+#endif
-+
-+#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
-+# undef INCLUDE_DEFAULTS_MUSL_LOCAL
-+# define INCLUDE_DEFAULTS_MUSL_LOCAL
-+# undef INCLUDE_DEFAULTS_MUSL_NATIVE
-+# define INCLUDE_DEFAULTS_MUSL_NATIVE
-+#else
-+# undef INCLUDE_DEFAULTS_MUSL_CROSS
-+# define INCLUDE_DEFAULTS_MUSL_CROSS
-+#endif
-+
-+#undef INCLUDE_DEFAULTS
-+#define INCLUDE_DEFAULTS \
-+ { \
-+ INCLUDE_DEFAULTS_MUSL_GPP \
-+ INCLUDE_DEFAULTS_MUSL_PREFIX \
-+ INCLUDE_DEFAULTS_MUSL_CROSS \
-+ INCLUDE_DEFAULTS_MUSL_TOOL \
-+ INCLUDE_DEFAULTS_MUSL_NATIVE \
-+ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
-+ { 0, 0, 0, 0, 0, 0 } \
-+ }
-+#endif
-Index: gcc-4.9.0/gcc/config/linux.opt
-===================================================================
---- gcc-4.9.0.orig/gcc/config/linux.opt 2014-01-02 14:23:26.000000000 -0800
-+++ gcc-4.9.0/gcc/config/linux.opt 2014-04-22 22:44:17.280233817 -0700
-@@ -30,3 +30,7 @@
- muclibc
- Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
- Use uClibc C library
-+
-+mmusl
-+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
-+Use musl C library
-Index: gcc-4.9.0/gcc/ginclude/stddef.h
-===================================================================
---- gcc-4.9.0.orig/gcc/ginclude/stddef.h 2014-01-02 14:23:26.000000000 -0800
-+++ gcc-4.9.0/gcc/ginclude/stddef.h 2014-04-22 22:44:17.280233817 -0700
-@@ -181,6 +181,7 @@
- #ifndef _GCC_SIZE_T
- #ifndef _SIZET_
- #ifndef __size_t
-+#ifndef __DEFINED_size_t /* musl */
- #define __size_t__ /* BeOS */
- #define __SIZE_T__ /* Cray Unicos/Mk */
- #define _SIZE_T
-@@ -197,6 +198,7 @@
- #define ___int_size_t_h
- #define _GCC_SIZE_T
- #define _SIZET_
-+#define __DEFINED_size_t /* musl */
- #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
- || defined(__FreeBSD_kernel__)
- /* __size_t is a typedef on FreeBSD 5, must not trash it. */
-@@ -214,6 +216,7 @@
- typedef long ssize_t;
- #endif /* __BEOS__ */
- #endif /* !(defined (__GNUG__) && defined (size_t)) */
-+#endif /* __DEFINED_size_t */
- #endif /* __size_t */
- #endif /* _SIZET_ */
- #endif /* _GCC_SIZE_T */
-Index: gcc-4.9.0/gcc/config/rs6000/secureplt.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/rs6000/secureplt.h 2014-01-02 14:23:26.000000000 -0800
-+++ gcc-4.9.0/gcc/config/rs6000/secureplt.h 2014-04-23 23:55:15.114024175 -0700
-@@ -18,3 +18,4 @@
- <http://www.gnu.org/licenses/>. */
-
- #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
-+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
-Index: gcc-4.9.0/gcc/config/rs6000/sysv4.h
-===================================================================
---- gcc-4.9.0.orig/gcc/config/rs6000/sysv4.h 2014-04-23 23:52:13.854023015 -0700
-+++ gcc-4.9.0/gcc/config/rs6000/sysv4.h 2014-04-24 00:10:55.550695334 -0700
-@@ -538,6 +538,10 @@
- #define CC1_SECURE_PLT_DEFAULT_SPEC ""
- #endif
-
-+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
-+#define LINK_SECURE_PLT_DEFAULT_SPEC ""
-+#endif
-+
- /* Pass -G xxx to the compiler. */
- #define CC1_SPEC "%{G*} %(cc1_cpu)" \
- "%{meabi: %{!mcall-*: -mcall-sysv }} \
-@@ -585,7 +589,8 @@
-
- /* Override the default target of the linker. */
- #define LINK_TARGET_SPEC \
-- ENDIAN_SELECT("", " --oformat elf32-powerpcle", "")
-+ ENDIAN_SELECT("", " --oformat elf32-powerpcle", "") \
-+ "%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}"
-
- /* Any specific OS flags. */
- #define LINK_OS_SPEC "\
-@@ -894,6 +899,7 @@
- { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
- { "link_os_default", LINK_OS_DEFAULT_SPEC }, \
- { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
-+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \
- { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
- { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
- { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0068-musl-dynamic-linker.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0068-musl-dynamic-linker.patch
deleted file mode 100644
index 605ac6675..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0068-musl-dynamic-linker.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-# HG changeset patch
-# Parent 6738fd6f6fcc2a72f2ba527bda3325642af26885
-Support for arm-linux-musl.
-Upstream-Status: Backport [partial]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-
-Index: gcc-4.9.2/gcc/config/arm/linux-eabi.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/arm/linux-eabi.h
-+++ gcc-4.9.2/gcc/config/arm/linux-eabi.h
-@@ -81,6 +81,23 @@
- #undef TARGET_FIX_V4BX_SPEC
- #define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
-
-+/* For ARM musl currently supports four dynamic linkers:
-+ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI
-+ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI
-+ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB
-+ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB
-+ musl does not support the legacy OABI mode.
-+ All the dynamic linkers live in /lib.
-+ We default to soft-float, EL. */
-+#undef MUSL_DYNAMIC_LINKER
-+#if TARGET_BIG_ENDIAN_DEFAULT
-+#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}"
-+#else
-+#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
-+#endif
-+#define MUSL_DYNAMIC_LINKER \
-+ SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
-+
- /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
- use the GNU/Linux version, not the generic BPABI version. */
- #undef LINK_SPEC
-Index: gcc-4.9.2/libitm/config/arm/hwcap.cc
-===================================================================
---- gcc-4.9.2.orig/libitm/config/arm/hwcap.cc
-+++ gcc-4.9.2/libitm/config/arm/hwcap.cc
-@@ -40,7 +40,11 @@ int GTM_hwcap HIDDEN = 0
-
- #ifdef __linux__
- #include <unistd.h>
-+#ifdef __GLIBC__
- #include <sys/fcntl.h>
-+#else
-+#include <fcntl.h>
-+#endif
- #include <elf.h>
-
- static void __attribute__((constructor))
-Index: gcc-4.9.2/gcc/config/i386/linux.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/i386/linux.h
-+++ gcc-4.9.2/gcc/config/i386/linux.h
-@@ -21,3 +21,4 @@ along with GCC; see the file COPYING3.
-
- #define GNU_USER_LINK_EMULATION "elf_i386"
- #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
-Index: gcc-4.9.2/gcc/config/i386/linux64.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/i386/linux64.h
-+++ gcc-4.9.2/gcc/config/i386/linux64.h
-@@ -30,3 +30,8 @@ see the files COPYING3 and COPYING.RUNTI
- #define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
- #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
- #define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
-+
-+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-i386.so.1"
-+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-x86_64.so.1"
-+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
-+
-Index: gcc-4.9.2/gcc/config/mips/linux.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/mips/linux.h
-+++ gcc-4.9.2/gcc/config/mips/linux.h
-@@ -23,3 +23,6 @@ along with GCC; see the file COPYING3.
- #undef UCLIBC_DYNAMIC_LINKER
- #define UCLIBC_DYNAMIC_LINKER \
- "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
-+
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-mips.so.1"
-+
-Index: gcc-4.9.2/gcc/config/mips/linux64.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/mips/linux64.h
-+++ gcc-4.9.2/gcc/config/mips/linux64.h
-@@ -39,6 +39,11 @@ along with GCC; see the file COPYING3.
- "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
-
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
-+
-+#define MUSL_DYNAMIC_LINKERN32 SYSTEMLIBS_DIR "ld-musl-mips.so.1"
-+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-mips.so.1"
-+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-mips.so.1"
-+
- #define GNU_USER_DYNAMIC_LINKERN32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
-- BIONIC_DYNAMIC_LINKERN32)
-+ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32)
-Index: gcc-4.9.2/gcc/config/rs6000/linux64.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/rs6000/linux64.h
-+++ gcc-4.9.2/gcc/config/rs6000/linux64.h
-@@ -375,17 +375,22 @@ extern int dot_symbols;
- #endif
- #define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
- #define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
-+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-powerpc.so.1"
-+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-powerpc64.so.1"
-+
- #if DEFAULT_LIBC == LIBC_UCLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
- #elif DEFAULT_LIBC == LIBC_GLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
-+#elif DEFAULT_LIBC == LIBC_MUSL
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
- #else
- #error "Unsupported DEFAULT_LIBC"
- #endif
- #define GNU_USER_DYNAMIC_LINKER32 \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32)
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
- #define GNU_USER_DYNAMIC_LINKER64 \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
-
- #undef DEFAULT_ASM_ENDIAN
- #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
-Index: gcc-4.9.2/gcc/config/rs6000/sysv4.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/rs6000/sysv4.h
-+++ gcc-4.9.2/gcc/config/rs6000/sysv4.h
-@@ -768,15 +768,19 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
-
- #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-powerpc.so.1"
-+
- #if DEFAULT_LIBC == LIBC_UCLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
-+#elif DEFAULT_LIBC == LIBC_MUSL
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}"
- #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}"
-+#define CHOOSE_DYNAMIC_LINKER(G, U, M) "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}"
- #else
- #error "Unsupported DEFAULT_LIBC"
- #endif
- #define GNU_USER_DYNAMIC_LINKER \
-- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
-+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
-
- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
- %{rdynamic:-export-dynamic} \
-Index: gcc-4.9.2/libitm/config/linux/x86/tls.h
-===================================================================
---- gcc-4.9.2.orig/libitm/config/linux/x86/tls.h
-+++ gcc-4.9.2/libitm/config/linux/x86/tls.h
-@@ -25,16 +25,19 @@
- #ifndef LIBITM_X86_TLS_H
- #define LIBITM_X86_TLS_H 1
-
--#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
-+#if defined(__GLIBC_PREREQ)
-+#if __GLIBC_PREREQ(2, 10)
- /* Use slots in the TCB head rather than __thread lookups.
- GLIBC has reserved words 10 through 13 for TM. */
- #define HAVE_ARCH_GTM_THREAD 1
- #define HAVE_ARCH_GTM_THREAD_DISP 1
- #endif
-+#endif
-
- #include "config/generic/tls.h"
-
--#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10)
-+#if defined(__GLIBC_PREREQ)
-+#if __GLIBC_PREREQ(2, 10)
- namespace GTM HIDDEN {
-
- #ifdef __x86_64__
-@@ -101,5 +104,6 @@ static inline void set_abi_disp(struct a
-
- } // namespace GTM
- #endif /* >= GLIBC 2.10 */
-+#endif
-
- #endif // LIBITM_X86_TLS_H
-Index: gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
-===================================================================
---- gcc-4.9.2.orig/gcc/config/aarch64/aarch64-linux.h
-+++ gcc-4.9.2/gcc/config/aarch64/aarch64-linux.h
-@@ -25,6 +25,8 @@
-
- #define CPP_SPEC "%{pthread:-D_REENTRANT}"
-
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64.so.1"
-+
- #define LINUX_TARGET_LINK_SPEC "%{h*} \
- %{static:-Bstatic} \
- %{shared:-shared} \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0069-musl-no-fixincludes.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0069-musl-no-fixincludes.patch
deleted file mode 100644
index e2b18a402..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0069-musl-no-fixincludes.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-# HG changeset patch
-# Parent 600a8a422ccaf5627ad1f5a138e7398df2b9e9d8
-Get rid of ever-broken fixincludes on musl.
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-
-Index: gcc-4.9-20140316/fixincludes/mkfixinc.sh
-===================================================================
---- gcc-4.9-20140316.orig/fixincludes/mkfixinc.sh
-+++ gcc-4.9-20140316/fixincludes/mkfixinc.sh
-@@ -19,7 +19,8 @@ case $machine in
- powerpc-*-eabi* | \
- powerpc-*-rtems* | \
- powerpcle-*-eabisim* | \
-- powerpcle-*-eabi* )
-+ powerpcle-*-eabi* | \
-+ *-musl* )
- # IF there is no include fixing,
- # THEN create a no-op fixer and exit
- (echo "#! /bin/sh" ; echo "exit 0" ) > ${target}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0070-libstdc-musl.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0070-libstdc-musl.patch
deleted file mode 100644
index 048e481dc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0070-libstdc-musl.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: gcc-4.9-20140316/libstdc++-v3/configure.host
-===================================================================
---- gcc-4.9-20140316.orig/libstdc++-v3/configure.host 2014-03-26 01:12:19.466008193 -0700
-+++ gcc-4.9-20140316/libstdc++-v3/configure.host 2014-03-26 01:43:48.222684357 -0700
-@@ -264,14 +264,24 @@
- os_include_dir="os/bsd/freebsd"
- ;;
- gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
-+ # check for musl by target
-+ case "${host_os}" in
-+ *-musl*)
-+ os_include_dir="os/generic"
-+ ;;
-+ *)
- if [ "$uclibc" = "yes" ]; then
- os_include_dir="os/uclibc"
- elif [ "$bionic" = "yes" ]; then
- os_include_dir="os/bionic"
-+ elif [ "$musl" = "yes" ]; then
-+ os_include_dir="os/generic"
- else
- os_include_dir="os/gnu-linux"
- fi
- ;;
-+ esac
-+ ;;
- hpux*)
- os_include_dir="os/hpux"
- ;;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0071-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0071-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch
deleted file mode 100644
index e8f79b590..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0071-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 32593b38082ea65f4c82159254adf1e0dc2423be Mon Sep 17 00:00:00 2001
-From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
-Date: Tue, 16 Feb 2016 03:15:15 -0500
-Subject: [PATCH] Ignore -fdebug-prefix-map in producer string (by Daniel Kahn
- Gillmor)
-
-* dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@231835 138bc75d-0d04-0410-961f-82ee72b054a4
-
-Upstream-Status: Backport
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/dwarf2out.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
-index 3614c10..526f114 100644
---- a/gcc/dwarf2out.c
-+++ b/gcc/dwarf2out.c
-@@ -19670,6 +19670,7 @@ gen_producer_string (void)
- case OPT_fpreprocessed:
- case OPT_fltrans_output_list_:
- case OPT_fresolution_:
-+ case OPT_fdebug_prefix_map_:
- /* Ignore these. */
- continue;
- default:
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0072-support-ffile-prefix-map.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0072-support-ffile-prefix-map.patch
deleted file mode 100644
index 9809a6a22..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0072-support-ffile-prefix-map.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-From e863be798ed13312a0faf0b961275f211a8123ab Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 17 Mar 2016 00:32:17 -0400
-Subject: [PATCH] gcc/libcpp: support -ffile-prefix-map=<old>=<new>
-
-Similar -fdebug-prefix-map, add option -ffile-prefix-map to map one
-directory name (old) to another (new) in __FILE__, __BASE_FILE__ and
-__builtin_FILE ().
-
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70268
-
-Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/c-family/c-opts.c | 6 ++++
- gcc/c-family/c.opt | 4 +++
- gcc/dwarf2out.c | 1 +
- gcc/gimplify.c | 2 ++
- libcpp/Makefile.in | 10 +++---
- libcpp/file-map.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++
- libcpp/include/file-map.h | 30 ++++++++++++++++
- libcpp/macro.c | 2 ++
- 8 files changed, 142 insertions(+), 5 deletions(-)
- create mode 100644 libcpp/file-map.c
- create mode 100644 libcpp/include/file-map.h
-
-diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
-index dd5fd23..9c004a1 100644
---- a/gcc/c-family/c-opts.c
-+++ b/gcc/c-family/c-opts.c
-@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
- #include "options.h"
- #include "plugin.h" /* For PLUGIN_INCLUDE_FILE event. */
- #include "mkdeps.h"
-+#include "file-map.h"
- #include "c-target.h"
- #include "tm.h" /* For BYTES_BIG_ENDIAN,
- DOLLARS_IN_IDENTIFIERS,
-@@ -553,6 +554,11 @@ c_common_handle_option (size_t scode, const char *arg, int value,
- cpp_opts->narrow_charset = arg;
- break;
-
-+ case OPT_ffile_prefix_map_:
-+ if (add_file_prefix_map (arg) < 0)
-+ error ("invalid argument %qs to -ffile-prefix-map", arg);
-+ break;
-+
- case OPT_fwide_exec_charset_:
- cpp_opts->wide_charset = arg;
- break;
-diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
-index f295805..3a99662 100644
---- a/gcc/c-family/c.opt
-+++ b/gcc/c-family/c.opt
-@@ -928,6 +928,10 @@ fexec-charset=
- C ObjC C++ ObjC++ Joined RejectNegative
- -fexec-charset=<cset> Convert all strings and character constants to character set <cset>
-
-+ffile-prefix-map=
-+C ObjC C++ ObjC++ Joined RejectNegative
-+-ffile-prefix-map=<old=new> Map one directory name to another in __FILE__, __BASE_FILE__ and __builtin_FILE ()
-+
- fextended-identifiers
- C ObjC C++ ObjC++
- Permit universal character names (\\u and \\U) in identifiers
-diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
-index 99bf6e2..3e58cfd 100644
---- a/gcc/dwarf2out.c
-+++ b/gcc/dwarf2out.c
-@@ -19199,6 +19199,7 @@ gen_producer_string (void)
- case OPT_fltrans_output_list_:
- case OPT_fresolution_:
- case OPT_fdebug_prefix_map_:
-+ case OPT_ffile_prefix_map_:
- /* Ignore these. */
- continue;
- default:
-diff --git a/gcc/gimplify.c b/gcc/gimplify.c
-index 89e7334..a7a97c0 100644
---- a/gcc/gimplify.c
-+++ b/gcc/gimplify.c
-@@ -59,6 +59,7 @@ along with GCC; see the file COPYING3. If not see
- #include "omp-low.h"
- #include "gimple-low.h"
- #include "cilk.h"
-+#include "file-map.h"
-
- #include "langhooks-def.h" /* FIXME: for lhd_set_decl_assembler_name */
- #include "tree-pass.h" /* FIXME: only for PROP_gimple_any */
-@@ -2288,6 +2289,7 @@ gimplify_call_expr (tree *expr_p, gimple_seq *pre_p, bool want_value)
- case BUILT_IN_FILE:
- {
- expanded_location loc = expand_location (EXPR_LOCATION (*expr_p));
-+ loc.file = remap_file_filename (loc.file);
- *expr_p = build_string_literal (strlen (loc.file) + 1, loc.file);
- return GS_OK;
- }
-diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in
-index 5561c97..5017256 100644
---- a/libcpp/Makefile.in
-+++ b/libcpp/Makefile.in
-@@ -84,12 +84,12 @@ DEPMODE = $(CXXDEPMODE)
-
-
- libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \
-- expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \
-- mkdeps.o pch.o symtab.o traditional.o
-+ expr.o file-map.o files.o identifiers.o init.o lex.o line-map.o \
-+ macro.o mkdeps.o pch.o symtab.o traditional.o
-
- libcpp_a_SOURCES = charset.c directives.c directives-only.c errors.c \
-- expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \
-- mkdeps.c pch.c symtab.c traditional.c
-+ expr.c file-map.c files.c identifiers.c init.c lex.c line-map.c \
-+ macro.c mkdeps.c pch.c symtab.c traditional.c
-
- all: libcpp.a $(USED_CATALOGS)
-
-@@ -263,7 +263,7 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES)
-
- TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \
- include/line-map.h include/symtab.h include/cpp-id-data.h \
-- include/cpplib.h include/mkdeps.h system.h
-+ include/cpplib.h include/mkdeps.h system.h include/file-map.h
-
- TAGS: $(TAGS_SOURCES)
- cd $(srcdir) && etags $(TAGS_SOURCES)
-diff --git a/libcpp/file-map.c b/libcpp/file-map.c
-new file mode 100644
-index 0000000..04e851b
---- /dev/null
-+++ b/libcpp/file-map.c
-@@ -0,0 +1,92 @@
-+/* Map one directory name to another in __FILE__, __BASE_FILE__
-+ and __builtin_FILE ().
-+ Copyright (C) 2001-2016 Free Software Foundation, Inc.
-+
-+This program is free software; you can redistribute it and/or modify it
-+under the terms of the GNU General Public License as published by the
-+Free Software Foundation; either version 3, or (at your option) any
-+later version.
-+
-+This program is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+GNU General Public License for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with this program; see the file COPYING3. If not see
-+<http://www.gnu.org/licenses/>.
-+
-+ In other words, you are welcome to use, share and improve this program.
-+ You are forbidden to forbid anyone else to use, share and improve
-+ what you give them. Help stamp out software-hoarding! */
-+
-+#include "config.h"
-+#include "system.h"
-+#include "file-map.h"
-+
-+/* Structure recording the mapping from source file and directory
-+ names at compile time to __FILE__ */
-+typedef struct file_prefix_map
-+{
-+ const char *old_prefix;
-+ const char *new_prefix;
-+ size_t old_len;
-+ size_t new_len;
-+ struct file_prefix_map *next;
-+} file_prefix_map;
-+
-+/* Linked list of such structures. */
-+static file_prefix_map *file_prefix_maps;
-+
-+/* Record prefix mapping of __FILE__. ARG is the argument to
-+ -ffile-prefix-map and must be of the form OLD=NEW. */
-+int
-+add_file_prefix_map (const char *arg)
-+{
-+ file_prefix_map *map;
-+ const char *p;
-+
-+ p = strchr (arg, '=');
-+ if (!p)
-+ {
-+ fprintf(stderr, "invalid argument %qs to -ffile-prefix-map", arg);
-+ return -1;
-+ }
-+ map = XNEW (file_prefix_map);
-+ map->old_prefix = xstrndup (arg, p - arg);
-+ map->old_len = p - arg;
-+ p++;
-+ map->new_prefix = xstrdup (p);
-+ map->new_len = strlen (p);
-+ map->next = file_prefix_maps;
-+ file_prefix_maps = map;
-+
-+ return 0;
-+}
-+
-+/* Perform user-specified mapping of __FILE__ prefixes. Return
-+ the new name corresponding to filename. */
-+
-+const char *
-+remap_file_filename (const char *filename)
-+{
-+ file_prefix_map *map;
-+ char *s;
-+ const char *name;
-+ size_t name_len;
-+
-+ for (map = file_prefix_maps; map; map = map->next)
-+ if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
-+ break;
-+ if (!map)
-+ return filename;
-+ name = filename + map->old_len;
-+ name_len = strlen (name) + 1;
-+ s = (char *) alloca (name_len + map->new_len);
-+ memcpy (s, map->new_prefix, map->new_len);
-+ memcpy (s + map->new_len, name, name_len);
-+
-+ return xstrdup (s);
-+}
-+
-+
-diff --git a/libcpp/include/file-map.h b/libcpp/include/file-map.h
-new file mode 100644
-index 0000000..e6f8cbf
---- /dev/null
-+++ b/libcpp/include/file-map.h
-@@ -0,0 +1,30 @@
-+/* Map one directory name to another in __FILE__, __BASE_FILE__
-+ and __builtin_FILE ().
-+ Copyright (C) 2001-2016 Free Software Foundation, Inc.
-+
-+This program is free software; you can redistribute it and/or modify it
-+under the terms of the GNU General Public License as published by the
-+Free Software Foundation; either version 3, or (at your option) any
-+later version.
-+
-+This program is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+GNU General Public License for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with this program; see the file COPYING3. If not see
-+<http://www.gnu.org/licenses/>.
-+
-+ In other words, you are welcome to use, share and improve this program.
-+ You are forbidden to forbid anyone else to use, share and improve
-+ what you give them. Help stamp out software-hoarding! */
-+
-+#ifndef LIBCPP_FILE_MAP_H
-+#define LIBCPP_FILE_MAP_H
-+
-+const char * remap_file_filename (const char *filename);
-+
-+int add_file_prefix_map (const char *arg);
-+
-+#endif /* !LIBCPP_FILE_MAP_H */
-diff --git a/libcpp/macro.c b/libcpp/macro.c
-index 11e50f4..5c6f90e 100644
---- a/libcpp/macro.c
-+++ b/libcpp/macro.c
-@@ -26,6 +26,7 @@ along with this program; see the file COPYING3. If not see
- #include "system.h"
- #include "cpplib.h"
- #include "internal.h"
-+#include "file-map.h"
-
- typedef struct macro_arg macro_arg;
- /* This structure represents the tokens of a macro argument. These
-@@ -288,6 +289,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
- if (!name)
- abort ();
- }
-+ name = remap_file_filename (name);
- len = strlen (name);
- buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
- result = buf;
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
deleted file mode 100644
index 94e45ed0a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0073-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5e10baff84038d26dc3d59b2412ba1db92cb8274 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 17 Mar 2016 00:34:01 -0400
-Subject: [PATCH 2/2] Reuse -fdebug-prefix-map to replace -ffile-prefix-map
-
-The oe-core may use external toolchain to compile,
-which may not support -ffile-prefix-map.
-
-Since we use -fdebug-prefix-map to do the same thing,
-so we could reuse it to replace -ffile-prefix-map.
-
-Upstream-Status: Inappropriate[oe-core specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/opts-global.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/gcc/opts-global.c b/gcc/opts-global.c
-index 111884b..037f6c8 100644
---- a/gcc/opts-global.c
-+++ b/gcc/opts-global.c
-@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
- #include "toplev.h"
- #include "tree-pass.h"
- #include "context.h"
-+#include "file-map.h"
-
- typedef const char *const_char_p; /* For DEF_VEC_P. */
-
-@@ -354,6 +355,9 @@ handle_common_deferred_options (void)
-
- case OPT_fdebug_prefix_map_:
- add_debug_prefix_map (opt->arg);
-+
-+ /* Reuse -fdebug-prefix-map to replace -ffile-prefix-map */
-+ add_file_prefix_map (opt->arg);
- break;
-
- case OPT_fdump_:
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0074-fdebug-prefix-map-support-to-remap-relative-path.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0074-fdebug-prefix-map-support-to-remap-relative-path.patch
deleted file mode 100644
index 0b91fdbbc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-4.9/0074-fdebug-prefix-map-support-to-remap-relative-path.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 289ad2969a5966c603bf6928ce442db74c4cbb25 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 24 Mar 2016 11:23:14 -0400
-Subject: [PATCH] gcc/final.c: -fdebug-prefix-map support to remap sources with
- relative path
-
-PR other/70428
-* final.c (remap_debug_filename): Use lrealpath to translate
-relative path before remapping
-
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70428
-Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
-diff --git a/gcc/final.c b/gcc/final.c
-index 55cf509..c3594c2 100644
---- a/gcc/final.c
-+++ b/gcc/final.c
-@@ -1554,16 +1554,25 @@ remap_debug_filename (const char *filename)
- const char *name;
- size_t name_len;
-
-+ /* Support to remap filename with relative path */
-+ char *realpath = lrealpath (filename);
-+ if (realpath == NULL)
-+ return filename;
-+
- for (map = debug_prefix_maps; map; map = map->next)
-- if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
-+ if (filename_ncmp (realpath, map->old_prefix, map->old_len) == 0)
- break;
- if (!map)
-- return filename;
-- name = filename + map->old_len;
-+ {
-+ free (realpath);
-+ return filename;
-+ }
-+ name = realpath + map->old_len;
- name_len = strlen (name) + 1;
- s = (char *) alloca (name_len + map->new_len);
- memcpy (s, map->new_prefix, map->new_len);
- memcpy (s + map->new_len, name, name_len);
-+ free (realpath);
- return ggc_strdup (s);
- }
-
---
-2.7.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3.inc
deleted file mode 100644
index 9808be113..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3.inc
+++ /dev/null
@@ -1,143 +0,0 @@
-require gcc-common.inc
-
-# Third digit in PV should be incremented after a minor release
-
-PV = "5.3.0"
-
-#SNAP = "5-20150405"
-
-# BINV should be incremented to a revision after a minor gcc release
-
-BINV = "5.3.0"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-5.3:${FILE_DIRNAME}/gcc-5.3/backport:"
-
-DEPENDS =+ "mpfr gmp libmpc zlib"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
-
-LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
-
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
-"
-#BASEURI = "http://www.netgull.com/gcc/snapshots/${SNAP}/gcc-${SNAP}.tar.bz2"
-BASEURI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2"
-
-SRC_URI = "\
- ${BASEURI} \
- ${BACKPORTS} \
- file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
- file://0002-uclibc-conf.patch \
- file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
- file://0004-uclibc-locale.patch \
- file://0005-uclibc-locale-no__x.patch \
- file://0006-uclibc-locale-wchar_fix.patch \
- file://0007-uclibc-locale-update.patch \
- file://0008-missing-execinfo_h.patch \
- file://0009-c99-snprintf.patch \
- file://0010-gcc-poison-system-directories.patch \
- file://0011-gcc-poison-dir-extend.patch \
- file://0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
- file://0013-64-bit-multilib-hack.patch \
- file://0014-optional-libstdc.patch \
- file://0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \
- file://0016-COLLECT_GCC_OPTIONS.patch \
- file://0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
- file://0018-fortran-cross-compile-hack.patch \
- file://0019-libgcc-sjlj-check.patch \
- file://0020-cpp-honor-sysroot.patch \
- file://0021-MIPS64-Default-to-N64-ABI.patch \
- file://0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
- file://0023-gcc-Fix-argument-list-too-long-error.patch \
- file://0024-Disable-sdt.patch \
- file://0025-libtool.patch \
- file://0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
- file://0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
- file://0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
- file://0029-export-CPP.patch \
- file://0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
- file://0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \
- file://0032-Ensure-target-gcc-headers-can-be-included.patch \
- file://0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
- file://0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
- file://0035-Dont-link-the-plugins-with-libgomp-explicitly.patch \
- file://0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
- file://0037-aarch64-Add-support-for-musl-ldso.patch \
- file://0038-fix-g-sysroot.patch \
- file://0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
- file://0040-handle-sysroot-support-for-nativesdk-gcc.patch \
- file://0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
- file://0042-Fix-various-_FOR_BUILD-and-related-variables.patch \
- file://0043-libstdc-Support-musl.patch \
- file://0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch \
- file://0045-Support-for-arm-linux-musl.patch \
- file://0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch \
- file://0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
- file://0048-ssp_nonshared.patch \
- file://0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch \
- file://0050-powerpc-pass-secure-plt-to-the-linker.patch \
- file://0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch \
- file://0052-nios2-use-ret-with-r31.patch \
- file://0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch \
- file://0054-support-ffile-prefix-map.patch \
- file://0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
- file://0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch \
- file://0057-unwind-fix-for-musl.patch \
- file://0058-fdebug-prefix-map-support-to-remap-relative-path.patch \
-"
-
-BACKPORTS = ""
-
-SRC_URI[md5sum] = "c9616fd448f980259c31de613e575719"
-SRC_URI[sha256sum] = "b84f5592e9218b73dbae612b5253035a7b34a9a1f7688d2e1bfaaf7267d5c4db"
-
-#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${SNAP}"
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
-B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
-
-# Language Overrides
-FORTRAN = ""
-JAVA = ""
-
-LTO = "--enable-lto"
-
-EXTRA_OECONF_BASE = "\
- ${LTO} \
- --enable-libssp \
- --enable-libitm \
- --disable-bootstrap \
- --disable-libmudflap \
- --with-system-zlib \
- --with-linker-hash-style=${LINKER_HASH_STYLE} \
- --enable-linker-build-id \
- --with-ppl=no \
- --with-cloog=no \
- --enable-checking=release \
- --enable-cheaders=c_global \
- --without-isl \
-"
-
-EXTRA_OECONF_INITIAL = "\
- --disable-libmudflap \
- --disable-libgomp \
- --disable-libitm \
- --disable-libquadmath \
- --with-system-zlib \
- --disable-lto \
- --disable-plugin \
- --enable-decimal-float=no \
- --without-isl \
- gcc_cv_libc_provides_ssp=yes \
-"
-
-EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
-
-EXTRA_OECONF_PATHS = "\
- --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
- --with-sysroot=/not/exist \
- --with-build-sysroot=${STAGING_DIR_TARGET} \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch
deleted file mode 100644
index b91c02d0b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-From 0b54799d80fb859c7b142467e4d42c99db59df50 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Dec 2015 08:30:35 +0000
-Subject: [PATCH 44/46] Adding -mmusl as a musl libc specifier, and the
- necessary hacks for it to know how to find musl's dynamic linker.
-
-Upstream-Status: Backport [partial]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config.gcc | 10 ++++-
- gcc/config/linux.h | 100 +++++++++++++++++++++++++++++++++++++-----
- gcc/config/linux.opt | 4 ++
- gcc/config/rs6000/secureplt.h | 1 +
- gcc/config/rs6000/sysv4.h | 5 +++
- gcc/ginclude/stddef.h | 3 ++
- 6 files changed, 110 insertions(+), 13 deletions(-)
-
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 3825bd5..39ce047 100644
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -575,7 +575,7 @@ case ${target} in
- esac
-
- # Common C libraries.
--tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
-+tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
-
- # 32-bit x86 processors supported by --with-arch=. Each processor
- # MUST be separated by exactly one space.
-@@ -720,6 +720,9 @@ case ${target} in
- *-*-*uclibc*)
- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
- ;;
-+ *-*-*musl*)
-+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
-+ ;;
- *)
- tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
- ;;
-@@ -2420,6 +2423,11 @@ powerpc*-*-linux*)
- powerpc*-*-linux*paired*)
- tm_file="${tm_file} rs6000/750cl.h" ;;
- esac
-+ case ${target} in
-+ *-linux*-musl*)
-+ enable_secureplt=yes ;;
-+ esac
-+
- if test x${enable_secureplt} = xyes; then
- tm_file="rs6000/secureplt.h ${tm_file}"
- fi
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 22b9be5..ca9a17f 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -32,10 +32,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
- #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
- #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
-+#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
- #else
- #define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
- #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
- #define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
-+#define OPTION_MUSL (linux_libc == LIBC_MUSL)
- #endif
-
- #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
-@@ -53,18 +55,21 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- uClibc or Bionic is the default C library and whether
- -muclibc or -mglibc or -mbionic has been passed to change the default. */
-
--#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \
-- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}"
-+#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \
-+ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}"
-
- #if DEFAULT_LIBC == LIBC_GLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M)
- #elif DEFAULT_LIBC == LIBC_UCLIBC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M)
- #elif DEFAULT_LIBC == LIBC_BIONIC
--#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
-- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U)
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M)
-+#elif DEFAULT_LIBC == LIBC_MUSL
-+#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
-+ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B)
- #else
- #error "Unsupported DEFAULT_LIBC"
- #endif /* DEFAULT_LIBC */
-@@ -84,16 +89,16 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-
- #define GNU_USER_DYNAMIC_LINKER \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
-- BIONIC_DYNAMIC_LINKER)
-+ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
- #define GNU_USER_DYNAMIC_LINKER32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
-- BIONIC_DYNAMIC_LINKER32)
-+ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
- #define GNU_USER_DYNAMIC_LINKER64 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
-- BIONIC_DYNAMIC_LINKER64)
-+ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
- #define GNU_USER_DYNAMIC_LINKERX32 \
- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
-- BIONIC_DYNAMIC_LINKERX32)
-+ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
-
- /* Whether we have Bionic libc runtime */
- #undef TARGET_HAS_BIONIC
-@@ -123,3 +128,74 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- # define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
-
- #endif
-+
-+/* musl avoids problematic includes by rearranging the include directories.
-+ * Unfortunately, this is mostly duplicated from cppdefault.c */
-+#if DEFAULT_LIBC == LIBC_MUSL
-+#define INCLUDE_DEFAULTS_MUSL_GPP \
-+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \
-+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \
-+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \
-+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
-+
-+#ifdef LOCAL_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_LOCAL \
-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \
-+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_LOCAL
-+#endif
-+
-+#ifdef PREFIX_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_PREFIX \
-+ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_PREFIX
-+#endif
-+
-+#ifdef CROSS_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_CROSS \
-+ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_CROSS
-+#endif
-+
-+#ifdef TOOL_INCLUDE_DIR
-+#define INCLUDE_DEFAULTS_MUSL_TOOL \
-+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_TOOL
-+#endif
-+
-+#ifdef NATIVE_SYSTEM_HEADER_DIR
-+#define INCLUDE_DEFAULTS_MUSL_NATIVE \
-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
-+ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_NATIVE
-+#endif
-+
-+#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
-+# undef INCLUDE_DEFAULTS_MUSL_LOCAL
-+# define INCLUDE_DEFAULTS_MUSL_LOCAL
-+# undef INCLUDE_DEFAULTS_MUSL_NATIVE
-+# define INCLUDE_DEFAULTS_MUSL_NATIVE
-+#else
-+# undef INCLUDE_DEFAULTS_MUSL_CROSS
-+# define INCLUDE_DEFAULTS_MUSL_CROSS
-+#endif
-+
-+#undef INCLUDE_DEFAULTS
-+#define INCLUDE_DEFAULTS \
-+ { \
-+ INCLUDE_DEFAULTS_MUSL_GPP \
-+ INCLUDE_DEFAULTS_MUSL_PREFIX \
-+ INCLUDE_DEFAULTS_MUSL_CROSS \
-+ INCLUDE_DEFAULTS_MUSL_TOOL \
-+ INCLUDE_DEFAULTS_MUSL_NATIVE \
-+ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
-+ { 0, 0, 0, 0, 0, 0 } \
-+ }
-+#endif
-diff --git a/gcc/config/linux.opt b/gcc/config/linux.opt
-index c054338..9334f74 100644
---- a/gcc/config/linux.opt
-+++ b/gcc/config/linux.opt
-@@ -30,3 +30,7 @@ Use GNU C library
- muclibc
- Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
- Use uClibc C library
-+
-+mmusl
-+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
-+Use musl C library
-diff --git a/gcc/config/rs6000/secureplt.h b/gcc/config/rs6000/secureplt.h
-index b463463..77edf2a 100644
---- a/gcc/config/rs6000/secureplt.h
-+++ b/gcc/config/rs6000/secureplt.h
-@@ -18,3 +18,4 @@ along with GCC; see the file COPYING3. If not see
- <http://www.gnu.org/licenses/>. */
-
- #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
-+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
-diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
-index c6c31dc..7cd07e0 100644
---- a/gcc/config/rs6000/sysv4.h
-+++ b/gcc/config/rs6000/sysv4.h
-@@ -538,6 +538,10 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
- #define CC1_SECURE_PLT_DEFAULT_SPEC ""
- #endif
-
-+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
-+#define LINK_SECURE_PLT_DEFAULT_SPEC ""
-+#endif
-+
- /* Pass -G xxx to the compiler. */
- #undef CC1_SPEC
- #define CC1_SPEC "%{G*} %(cc1_cpu)" \
-@@ -889,6 +893,7 @@ ncrtn.o%s"
- { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
- { "link_os_default", LINK_OS_DEFAULT_SPEC }, \
- { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
-+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \
- { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
- { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
- { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
-diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index f20a41b..eb879ef 100644
---- a/gcc/ginclude/stddef.h
-+++ b/gcc/ginclude/stddef.h
-@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
- #ifndef _GCC_SIZE_T
- #ifndef _SIZET_
- #ifndef __size_t
-+#ifndef __DEFINED_size_t /* musl */
- #define __size_t__ /* BeOS */
- #define __SIZE_T__ /* Cray Unicos/Mk */
- #define _SIZE_T
-@@ -200,6 +201,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
- #define ___int_size_t_h
- #define _GCC_SIZE_T
- #define _SIZET_
-+#define __DEFINED_size_t /* musl */
- #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
- || defined(__DragonFly__) \
- || defined(__FreeBSD_kernel__)
-@@ -218,6 +220,7 @@ typedef __SIZE_TYPE__ size_t;
- typedef long ssize_t;
- #endif /* __BEOS__ */
- #endif /* !(defined (__GNUG__) && defined (size_t)) */
-+#endif /* __DEFINED_size_t */
- #endif /* __size_t */
- #endif /* _SIZET_ */
- #endif /* _GCC_SIZE_T */
---
-2.6.3
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4.inc
new file mode 100644
index 000000000..338530fd6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4.inc
@@ -0,0 +1,146 @@
+require gcc-common.inc
+
+# Third digit in PV should be incremented after a minor release
+
+PV = "5.4.0"
+
+#SNAP = "5-20150405"
+
+# BINV should be incremented to a revision after a minor gcc release
+
+BINV = "5.4.0"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-5.4:${FILE_DIRNAME}/gcc-5.4/backport:"
+
+DEPENDS =+ "mpfr gmp libmpc zlib"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
+
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
+"
+#BASEURI = "http://www.netgull.com/gcc/snapshots/${SNAP}/gcc-${SNAP}.tar.bz2"
+BASEURI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2"
+
+SRC_URI = "\
+ ${BASEURI} \
+ ${BACKPORTS} \
+ file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
+ file://0002-uclibc-conf.patch \
+ file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
+ file://0004-uclibc-locale.patch \
+ file://0005-uclibc-locale-no__x.patch \
+ file://0006-uclibc-locale-wchar_fix.patch \
+ file://0007-uclibc-locale-update.patch \
+ file://0008-missing-execinfo_h.patch \
+ file://0009-c99-snprintf.patch \
+ file://0010-gcc-poison-system-directories.patch \
+ file://0011-gcc-poison-dir-extend.patch \
+ file://0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
+ file://0013-64-bit-multilib-hack.patch \
+ file://0014-optional-libstdc.patch \
+ file://0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \
+ file://0016-COLLECT_GCC_OPTIONS.patch \
+ file://0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
+ file://0018-fortran-cross-compile-hack.patch \
+ file://0019-libgcc-sjlj-check.patch \
+ file://0020-cpp-honor-sysroot.patch \
+ file://0021-MIPS64-Default-to-N64-ABI.patch \
+ file://0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
+ file://0023-gcc-Fix-argument-list-too-long-error.patch \
+ file://0024-Disable-sdt.patch \
+ file://0025-libtool.patch \
+ file://0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
+ file://0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
+ file://0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
+ file://0029-export-CPP.patch \
+ file://0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
+ file://0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \
+ file://0032-Ensure-target-gcc-headers-can-be-included.patch \
+ file://0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
+ file://0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
+ file://0035-Dont-link-the-plugins-with-libgomp-explicitly.patch \
+ file://0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
+ file://0037-aarch64-Add-support-for-musl-ldso.patch \
+ file://0038-fix-g-sysroot.patch \
+ file://0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
+ file://0040-handle-sysroot-support-for-nativesdk-gcc.patch \
+ file://0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
+ file://0042-Fix-various-_FOR_BUILD-and-related-variables.patch \
+ file://0043-libstdc-Support-musl.patch \
+ file://0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch \
+ file://0045-Support-for-arm-linux-musl.patch \
+ file://0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch \
+ file://0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
+ file://0048-ssp_nonshared.patch \
+ file://0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch \
+ file://0050-powerpc-pass-secure-plt-to-the-linker.patch \
+ file://0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch \
+ file://0052-nios2-use-ret-with-r31.patch \
+ file://0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch \
+ file://0054-support-ffile-prefix-map.patch \
+ file://0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
+ file://0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch \
+ file://0057-unwind-fix-for-musl.patch \
+ file://0058-fdebug-prefix-map-support-to-remap-relative-path.patch \
+ file://0059-libgcc-use-ldflags.patch \
+"
+
+BACKPORTS = ""
+
+SRC_URI[md5sum] = "4c626ac2a83ef30dfb9260e6f59c2b30"
+SRC_URI[sha256sum] = "608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a"
+
+UPSTREAM_CHECK_REGEX = "gcc-(?P<pver>5\.\d+\.\d+).tar"
+
+#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${SNAP}"
+S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
+
+# Language Overrides
+FORTRAN = ""
+JAVA = ""
+
+LTO = "--enable-lto"
+
+EXTRA_OECONF_BASE = "\
+ ${LTO} \
+ --enable-libssp \
+ --enable-libitm \
+ --disable-bootstrap \
+ --disable-libmudflap \
+ --with-system-zlib \
+ --with-linker-hash-style=${LINKER_HASH_STYLE} \
+ --enable-linker-build-id \
+ --with-ppl=no \
+ --with-cloog=no \
+ --enable-checking=release \
+ --enable-cheaders=c_global \
+ --without-isl \
+"
+
+EXTRA_OECONF_INITIAL = "\
+ --disable-libmudflap \
+ --disable-libgomp \
+ --disable-libitm \
+ --disable-libquadmath \
+ --with-system-zlib \
+ --disable-lto \
+ --disable-plugin \
+ --enable-decimal-float=no \
+ --without-isl \
+ gcc_cv_libc_provides_ssp=yes \
+"
+
+EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
+
+EXTRA_OECONF_PATHS = "\
+ --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
+ --with-sysroot=/not/exist \
+ --with-build-sysroot=${STAGING_DIR_TARGET} \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 1aead9691..1aead9691 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0002-uclibc-conf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0002-uclibc-conf.patch
index 8d6aeb5e4..8d6aeb5e4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0002-uclibc-conf.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0002-uclibc-conf.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0003-gcc-uclibc-locale-ctype_touplow_t.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch
index bd0326343..bd0326343 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0003-gcc-uclibc-locale-ctype_touplow_t.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0003-gcc-uclibc-locale-ctype_touplow_t.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0004-uclibc-locale.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0004-uclibc-locale.patch
index 656265a28..656265a28 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0004-uclibc-locale.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0004-uclibc-locale.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0005-uclibc-locale-no__x.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0005-uclibc-locale-no__x.patch
index 19a86a4e1..19a86a4e1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0005-uclibc-locale-no__x.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0005-uclibc-locale-no__x.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0006-uclibc-locale-wchar_fix.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0006-uclibc-locale-wchar_fix.patch
index d7dbe68bd..d7dbe68bd 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0006-uclibc-locale-wchar_fix.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0006-uclibc-locale-wchar_fix.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0007-uclibc-locale-update.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0007-uclibc-locale-update.patch
index cde749931..cde749931 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0007-uclibc-locale-update.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0007-uclibc-locale-update.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0008-missing-execinfo_h.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0008-missing-execinfo_h.patch
index 9f8793125..9f8793125 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0008-missing-execinfo_h.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0008-missing-execinfo_h.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0009-c99-snprintf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0009-c99-snprintf.patch
index 6b236c62c..6b236c62c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0009-c99-snprintf.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0009-c99-snprintf.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0010-gcc-poison-system-directories.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0010-gcc-poison-system-directories.patch
index 2da887767..2da887767 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0010-gcc-poison-system-directories.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0010-gcc-poison-system-directories.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0011-gcc-poison-dir-extend.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0011-gcc-poison-dir-extend.patch
index 511e69481..511e69481 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0011-gcc-poison-dir-extend.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0011-gcc-poison-dir-extend.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
index 750bbc823..750bbc823 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0013-64-bit-multilib-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0013-64-bit-multilib-hack.patch
index 45aaf4cc2..45aaf4cc2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0013-64-bit-multilib-hack.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0013-64-bit-multilib-hack.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0014-optional-libstdc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0014-optional-libstdc.patch
index 73741f83c..73741f83c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0014-optional-libstdc.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0014-optional-libstdc.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
index 1b62ef806..1b62ef806 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0016-COLLECT_GCC_OPTIONS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0016-COLLECT_GCC_OPTIONS.patch
index e6ae262e4..e6ae262e4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0016-COLLECT_GCC_OPTIONS.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0016-COLLECT_GCC_OPTIONS.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index b89a27919..b89a27919 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0018-fortran-cross-compile-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0018-fortran-cross-compile-hack.patch
index e8ba32558..e8ba32558 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0018-fortran-cross-compile-hack.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0018-fortran-cross-compile-hack.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0019-libgcc-sjlj-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0019-libgcc-sjlj-check.patch
index 01a4d1fda..01a4d1fda 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0019-libgcc-sjlj-check.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0019-libgcc-sjlj-check.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0020-cpp-honor-sysroot.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0020-cpp-honor-sysroot.patch
index 13f66d413..13f66d413 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0020-cpp-honor-sysroot.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0020-cpp-honor-sysroot.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0021-MIPS64-Default-to-N64-ABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0021-MIPS64-Default-to-N64-ABI.patch
index c7cffe417..c7cffe417 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0021-MIPS64-Default-to-N64-ABI.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0021-MIPS64-Default-to-N64-ABI.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index 620835132..620835132 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0022-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0023-gcc-Fix-argument-list-too-long-error.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0023-gcc-Fix-argument-list-too-long-error.patch
index be91c9e63..be91c9e63 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0023-gcc-Fix-argument-list-too-long-error.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0023-gcc-Fix-argument-list-too-long-error.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0024-Disable-sdt.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0024-Disable-sdt.patch
index b23ce9756..b23ce9756 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0024-Disable-sdt.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0024-Disable-sdt.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0025-libtool.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0025-libtool.patch
index 8d5eb973b..8d5eb973b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0025-libtool.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0025-libtool.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index a22d95f72..a22d95f72 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0026-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index 46815d156..46815d156 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0027-Use-the-multilib-config-files-from-B-instead-of-usin.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index 60ddd9cee..60ddd9cee 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0028-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0029-export-CPP.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0029-export-CPP.patch
index 62195aa87..62195aa87 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0029-export-CPP.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0029-export-CPP.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
index 57051871b..57051871b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
index f2bc66432..f2bc66432 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0031-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0032-Ensure-target-gcc-headers-can-be-included.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0032-Ensure-target-gcc-headers-can-be-included.patch
index 89503ff60..89503ff60 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0032-Ensure-target-gcc-headers-can-be-included.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0032-Ensure-target-gcc-headers-can-be-included.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
index 19d480f3d..19d480f3d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0033-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index a453fa6b3..a453fa6b3 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0034-Don-t-search-host-directory-during-relink-if-inst_pr.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch
index 6ed589beb..6ed589beb 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0035-Dont-link-the-plugins-with-libgomp-explicitly.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
index 41c0294da..41c0294da 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0036-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0037-aarch64-Add-support-for-musl-ldso.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0037-aarch64-Add-support-for-musl-ldso.patch
index 30dbe74ef..30dbe74ef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0037-aarch64-Add-support-for-musl-ldso.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0037-aarch64-Add-support-for-musl-ldso.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0038-fix-g-sysroot.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0038-fix-g-sysroot.patch
index 9ba574a5c..9ba574a5c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0038-fix-g-sysroot.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0038-fix-g-sysroot.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index 2e0df968b..2e0df968b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0039-libcc1-fix-libcc1-s-install-path-and-rpath.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0040-handle-sysroot-support-for-nativesdk-gcc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0040-handle-sysroot-support-for-nativesdk-gcc.patch
index 11e1310f1..11e1310f1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0040-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0040-handle-sysroot-support-for-nativesdk-gcc.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index 5a504a1f2..5a504a1f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0041-Search-target-sysroot-gcc-version-specific-dirs-with.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0042-Fix-various-_FOR_BUILD-and-related-variables.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0042-Fix-various-_FOR_BUILD-and-related-variables.patch
index 5af764b7c..5af764b7c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0042-Fix-various-_FOR_BUILD-and-related-variables.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0042-Fix-various-_FOR_BUILD-and-related-variables.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0043-libstdc-Support-musl.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0043-libstdc-Support-musl.patch
index bad8402ef..bad8402ef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0043-libstdc-Support-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0043-libstdc-Support-musl.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch
new file mode 100644
index 000000000..26aa96cad
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0044-Adding-mmusl-as-a-musl-libc-specifier-and-the-necess.patch
@@ -0,0 +1,270 @@
+From 0b54799d80fb859c7b142467e4d42c99db59df50 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 8 Dec 2015 08:30:35 +0000
+Subject: [PATCH 44/46] Adding -mmusl as a musl libc specifier, and the
+ necessary hacks for it to know how to find musl's dynamic linker.
+
+Upstream-Status: Backport [partial]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/config.gcc | 10 ++++-
+ gcc/config/linux.h | 100 +++++++++++++++++++++++++++++++++++++-----
+ gcc/config/linux.opt | 4 ++
+ gcc/config/rs6000/secureplt.h | 1 +
+ gcc/config/rs6000/sysv4.h | 5 +++
+ gcc/ginclude/stddef.h | 3 ++
+ 6 files changed, 110 insertions(+), 13 deletions(-)
+
+Index: gcc-5.4.0/gcc/config.gcc
+===================================================================
+--- gcc-5.4.0.orig/gcc/config.gcc
++++ gcc-5.4.0/gcc/config.gcc
+@@ -575,7 +575,7 @@ case ${target} in
+ esac
+
+ # Common C libraries.
+-tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
++tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
+
+ # 32-bit x86 processors supported by --with-arch=. Each processor
+ # MUST be separated by exactly one space.
+@@ -720,6 +720,9 @@ case ${target} in
+ *-*-*uclibc*)
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
+ ;;
++ *-*-*musl*)
++ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
++ ;;
+ *)
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
+ ;;
+@@ -2420,6 +2423,11 @@ powerpc*-*-linux*)
+ powerpc*-*-linux*paired*)
+ tm_file="${tm_file} rs6000/750cl.h" ;;
+ esac
++ case ${target} in
++ *-linux*-musl*)
++ enable_secureplt=yes ;;
++ esac
++
+ if test x${enable_secureplt} = xyes; then
+ tm_file="rs6000/secureplt.h ${tm_file}"
+ fi
+Index: gcc-5.4.0/gcc/config/linux.h
+===================================================================
+--- gcc-5.4.0.orig/gcc/config/linux.h
++++ gcc-5.4.0/gcc/config/linux.h
+@@ -32,10 +32,12 @@ see the files COPYING3 and COPYING.RUNTI
+ #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
+ #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
+ #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
++#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
+ #else
+ #define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
+ #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
+ #define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
++#define OPTION_MUSL (linux_libc == LIBC_MUSL)
+ #endif
+
+ #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
+@@ -53,18 +55,21 @@ see the files COPYING3 and COPYING.RUNTI
+ uClibc or Bionic is the default C library and whether
+ -muclibc or -mglibc or -mbionic has been passed to change the default. */
+
+-#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \
+- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}"
++#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \
++ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}"
+
+ #if DEFAULT_LIBC == LIBC_GLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
+- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B)
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
++ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M)
+ #elif DEFAULT_LIBC == LIBC_UCLIBC
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
+- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B)
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
++ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M)
+ #elif DEFAULT_LIBC == LIBC_BIONIC
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \
+- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U)
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
++ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M)
++#elif DEFAULT_LIBC == LIBC_MUSL
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \
++ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B)
+ #else
+ #error "Unsupported DEFAULT_LIBC"
+ #endif /* DEFAULT_LIBC */
+@@ -84,16 +89,16 @@ see the files COPYING3 and COPYING.RUNTI
+
+ #define GNU_USER_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
+- BIONIC_DYNAMIC_LINKER)
++ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER)
+ #define GNU_USER_DYNAMIC_LINKER32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \
+- BIONIC_DYNAMIC_LINKER32)
++ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32)
+ #define GNU_USER_DYNAMIC_LINKER64 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \
+- BIONIC_DYNAMIC_LINKER64)
++ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64)
+ #define GNU_USER_DYNAMIC_LINKERX32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \
+- BIONIC_DYNAMIC_LINKERX32)
++ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32)
+
+ /* Whether we have Bionic libc runtime */
+ #undef TARGET_HAS_BIONIC
+@@ -123,3 +128,74 @@ see the files COPYING3 and COPYING.RUNTI
+ # define TARGET_LIBC_HAS_FUNCTION linux_libc_has_function
+
+ #endif
++
++/* musl avoids problematic includes by rearranging the include directories.
++ * Unfortunately, this is mostly duplicated from cppdefault.c */
++#if DEFAULT_LIBC == LIBC_MUSL
++#define INCLUDE_DEFAULTS_MUSL_GPP \
++ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \
++ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \
++ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
++
++#ifdef LOCAL_INCLUDE_DIR
++#define INCLUDE_DEFAULTS_MUSL_LOCAL \
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
++#else
++#define INCLUDE_DEFAULTS_MUSL_LOCAL
++#endif
++
++#ifdef PREFIX_INCLUDE_DIR
++#define INCLUDE_DEFAULTS_MUSL_PREFIX \
++ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
++#else
++#define INCLUDE_DEFAULTS_MUSL_PREFIX
++#endif
++
++#ifdef CROSS_INCLUDE_DIR
++#define INCLUDE_DEFAULTS_MUSL_CROSS \
++ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
++#else
++#define INCLUDE_DEFAULTS_MUSL_CROSS
++#endif
++
++#ifdef TOOL_INCLUDE_DIR
++#define INCLUDE_DEFAULTS_MUSL_TOOL \
++ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
++#else
++#define INCLUDE_DEFAULTS_MUSL_TOOL
++#endif
++
++#ifdef NATIVE_SYSTEM_HEADER_DIR
++#define INCLUDE_DEFAULTS_MUSL_NATIVE \
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
++#else
++#define INCLUDE_DEFAULTS_MUSL_NATIVE
++#endif
++
++#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
++# undef INCLUDE_DEFAULTS_MUSL_LOCAL
++# define INCLUDE_DEFAULTS_MUSL_LOCAL
++# undef INCLUDE_DEFAULTS_MUSL_NATIVE
++# define INCLUDE_DEFAULTS_MUSL_NATIVE
++#else
++# undef INCLUDE_DEFAULTS_MUSL_CROSS
++# define INCLUDE_DEFAULTS_MUSL_CROSS
++#endif
++
++#undef INCLUDE_DEFAULTS
++#define INCLUDE_DEFAULTS \
++ { \
++ INCLUDE_DEFAULTS_MUSL_GPP \
++ INCLUDE_DEFAULTS_MUSL_PREFIX \
++ INCLUDE_DEFAULTS_MUSL_CROSS \
++ INCLUDE_DEFAULTS_MUSL_TOOL \
++ INCLUDE_DEFAULTS_MUSL_NATIVE \
++ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
++ { 0, 0, 0, 0, 0, 0 } \
++ }
++#endif
+Index: gcc-5.4.0/gcc/config/linux.opt
+===================================================================
+--- gcc-5.4.0.orig/gcc/config/linux.opt
++++ gcc-5.4.0/gcc/config/linux.opt
+@@ -28,5 +28,9 @@ Target Report RejectNegative Var(linux_l
+ Use GNU C library
+
+ muclibc
+-Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
++Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mmusl)
+ Use uClibc C library
++
++mmusl
++Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mbionic)
++Use musl C library
+Index: gcc-5.4.0/gcc/config/rs6000/secureplt.h
+===================================================================
+--- gcc-5.4.0.orig/gcc/config/rs6000/secureplt.h
++++ gcc-5.4.0/gcc/config/rs6000/secureplt.h
+@@ -18,3 +18,4 @@ along with GCC; see the file COPYING3.
+ <http://www.gnu.org/licenses/>. */
+
+ #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
++#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
+Index: gcc-5.4.0/gcc/config/rs6000/sysv4.h
+===================================================================
+--- gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h
++++ gcc-5.4.0/gcc/config/rs6000/sysv4.h
+@@ -538,6 +538,10 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
+ #define CC1_SECURE_PLT_DEFAULT_SPEC ""
+ #endif
+
++#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
++#define LINK_SECURE_PLT_DEFAULT_SPEC ""
++#endif
++
+ /* Pass -G xxx to the compiler. */
+ #undef CC1_SPEC
+ #define CC1_SPEC "%{G*} %(cc1_cpu)" \
+@@ -889,6 +893,7 @@ ncrtn.o%s"
+ { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
+ { "link_os_default", LINK_OS_DEFAULT_SPEC }, \
+ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
++ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \
+ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
+ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
+ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
+Index: gcc-5.4.0/gcc/ginclude/stddef.h
+===================================================================
+--- gcc-5.4.0.orig/gcc/ginclude/stddef.h
++++ gcc-5.4.0/gcc/ginclude/stddef.h
+@@ -184,6 +184,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #ifndef _GCC_SIZE_T
+ #ifndef _SIZET_
+ #ifndef __size_t
++#ifndef __DEFINED_size_t /* musl */
+ #define __size_t__ /* BeOS */
+ #define __SIZE_T__ /* Cray Unicos/Mk */
+ #define _SIZE_T
+@@ -200,6 +201,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #define ___int_size_t_h
+ #define _GCC_SIZE_T
+ #define _SIZET_
++#define __DEFINED_size_t /* musl */
+ #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
+ || defined(__DragonFly__) \
+ || defined(__FreeBSD_kernel__)
+@@ -218,6 +220,7 @@ typedef __SIZE_TYPE__ size_t;
+ typedef long ssize_t;
+ #endif /* __BEOS__ */
+ #endif /* !(defined (__GNUG__) && defined (size_t)) */
++#endif /* __DEFINED_size_t */
+ #endif /* __size_t */
+ #endif /* _SIZET_ */
+ #endif /* _GCC_SIZE_T */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0045-Support-for-arm-linux-musl.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0045-Support-for-arm-linux-musl.patch
index 3c1115aa8..3c1115aa8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0045-Support-for-arm-linux-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0045-Support-for-arm-linux-musl.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch
index ddb0fc4f4..ddb0fc4f4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0046-Get-rid-of-ever-broken-fixincludes-on-musl.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch
index a1cfb9c7a..a1cfb9c7a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0047-nios2-Define-MUSL_DYNAMIC_LINKER.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0048-ssp_nonshared.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0048-ssp_nonshared.patch
index 5ddd40a4a..5ddd40a4a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0048-ssp_nonshared.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0048-ssp_nonshared.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch
index 0ea5143e0..0ea5143e0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0049-Disable-the-weak-reference-logic-in-gthr.h-for-os-ge.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0050-powerpc-pass-secure-plt-to-the-linker.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0050-powerpc-pass-secure-plt-to-the-linker.patch
index b2f2bbdf4..b2f2bbdf4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0050-powerpc-pass-secure-plt-to-the-linker.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0050-powerpc-pass-secure-plt-to-the-linker.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch
index e8f79b590..e8f79b590 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0051-Ignore-fdebug-prefix-map-in-producer-string-by-Danie.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0052-nios2-use-ret-with-r31.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0052-nios2-use-ret-with-r31.patch
index f3cb47fd1..f3cb47fd1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0052-nios2-use-ret-with-r31.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0052-nios2-use-ret-with-r31.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch
index c18f40e74..c18f40e74 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0053-expr.c-PR-target-65358-Avoid-clobbering-partial-argu.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0054-support-ffile-prefix-map.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0054-support-ffile-prefix-map.patch
index da1687913..da1687913 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0054-support-ffile-prefix-map.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0054-support-ffile-prefix-map.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
index c7caed8c8..c7caed8c8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0055-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch
index 97913420e..97913420e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0056-Enable-libc-provide-ssp-and-gcc_cv_target_dl_iterate.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0057-unwind-fix-for-musl.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0057-unwind-fix-for-musl.patch
index c193587bf..c193587bf 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0057-unwind-fix-for-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0057-unwind-fix-for-musl.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0058-fdebug-prefix-map-support-to-remap-relative-path.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0058-fdebug-prefix-map-support-to-remap-relative-path.patch
index 0b91fdbbc..0b91fdbbc 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.3/0058-fdebug-prefix-map-support-to-remap-relative-path.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0058-fdebug-prefix-map-support-to-remap-relative-path.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0059-libgcc-use-ldflags.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0059-libgcc-use-ldflags.patch
new file mode 100644
index 000000000..325b72ab5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-5.4/0059-libgcc-use-ldflags.patch
@@ -0,0 +1,16 @@
+Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Upstream-Status: Pending
+
+--- gcc-5.3.0.orig/libgcc/config/t-slibgcc
++++ gcc-5.3.0/libgcc/config/t-slibgcc
+@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_S
+ $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+
+ SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+- $(SHLIB_LDFLAGS) \
++ $(LDFLAGS) $(SHLIB_LDFLAGS) \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2.inc
new file mode 100644
index 000000000..b118995e1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2.inc
@@ -0,0 +1,133 @@
+require gcc-common.inc
+
+# Third digit in PV should be incremented after a minor release
+
+PV = "6.2.0"
+
+# BINV should be incremented to a revision after a minor gcc release
+
+BINV = "6.2.0"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-6.2:${FILE_DIRNAME}/gcc-6.2/backport:"
+
+DEPENDS =+ "mpfr gmp libmpc zlib"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native"
+
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
+"
+
+
+BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2"
+#SRCREV = "bd9a826d5448db11d29d2ec5884e7e679066f140"
+#BASEURI ?= "git://github.com/gcc-mirror/gcc;branch=gcc-6-branch;protocol=git"
+#BASEURI ?= "ftp://sourceware.org/pub/gcc/snapshots/6.2.0-RC-20160815/gcc-6.2.0-RC-20160815.tar.bz2"
+
+SRC_URI = "\
+ ${BASEURI} \
+ file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
+ file://0002-uclibc-conf.patch \
+ file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \
+ file://0004-uclibc-locale.patch \
+ file://0005-uclibc-locale-no__x.patch \
+ file://0006-uclibc-locale-wchar_fix.patch \
+ file://0007-uclibc-locale-update.patch \
+ file://0008-missing-execinfo_h.patch \
+ file://0009-c99-snprintf.patch \
+ file://0010-gcc-poison-system-directories.patch \
+ file://0011-gcc-poison-dir-extend.patch \
+ file://0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
+ file://0013-64-bit-multilib-hack.patch \
+ file://0014-optional-libstdc.patch \
+ file://0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch \
+ file://0016-COLLECT_GCC_OPTIONS.patch \
+ file://0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
+ file://0018-fortran-cross-compile-hack.patch \
+ file://0019-cpp-honor-sysroot.patch \
+ file://0020-MIPS64-Default-to-N64-ABI.patch \
+ file://0021-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
+ file://0022-gcc-Fix-argument-list-too-long-error.patch \
+ file://0023-Disable-sdt.patch \
+ file://0024-libtool.patch \
+ file://0025-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
+ file://0026-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
+ file://0027-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
+ file://0028-export-CPP.patch \
+ file://0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
+ file://0030-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch \
+ file://0031-Ensure-target-gcc-headers-can-be-included.patch \
+ file://0032-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
+ file://0033-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
+ file://0034-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
+ file://0035-aarch64-Add-support-for-musl-ldso.patch \
+ file://0036-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
+ file://0037-handle-sysroot-support-for-nativesdk-gcc.patch \
+ file://0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
+ file://0039-Fix-various-_FOR_BUILD-and-related-variables.patch \
+ file://0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
+ file://0041-ssp_nonshared.patch \
+ file://0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch \
+ file://0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch \
+ file://0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch \
+ file://0045-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \
+ file://0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
+ file://0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
+ ${BACKPORTS} \
+"
+BACKPORTS = ""
+
+SRC_URI[md5sum] = "9768625159663b300ae4de2f4745fcc4"
+SRC_URI[sha256sum] = "9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5"
+
+S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/git"
+B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
+
+# Language Overrides
+FORTRAN = ""
+JAVA = ""
+
+LTO = "--enable-lto"
+
+EXTRA_OECONF_BASE = "\
+ ${LTO} \
+ --enable-libssp \
+ --enable-libitm \
+ --disable-bootstrap \
+ --disable-libmudflap \
+ --with-system-zlib \
+ --with-linker-hash-style=${LINKER_HASH_STYLE} \
+ --enable-linker-build-id \
+ --with-ppl=no \
+ --with-cloog=no \
+ --enable-checking=release \
+ --enable-cheaders=c_global \
+ --without-isl \
+"
+
+EXTRA_OECONF_INITIAL = "\
+ --disable-libmudflap \
+ --disable-libgomp \
+ --disable-libitm \
+ --disable-libquadmath \
+ --with-system-zlib \
+ --disable-lto \
+ --disable-plugin \
+ --enable-decimal-float=no \
+ --without-isl \
+ gcc_cv_libc_provides_ssp=yes \
+"
+
+EXTRA_OECONF_append_libc-uclibc = " --disable-decimal-float "
+
+EXTRA_OECONF_PATHS = "\
+ --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
+ --with-sysroot=/not/exist \
+ --with-build-sysroot=${STAGING_DIR_TARGET} \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
new file mode 100644
index 000000000..415f091ee
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -0,0 +1,42 @@
+From 92ed30da16b7487b334f739be177eb39885ab772 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:37:11 +0400
+Subject: [PATCH 01/46] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 35f231e..bfadc33 100755
+--- a/configure
++++ b/configure
+@@ -7550,7 +7550,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
+diff --git a/configure.ac b/configure.ac
+index 74bf58a..197d61b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3149,7 +3149,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0002-uclibc-conf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0002-uclibc-conf.patch
new file mode 100644
index 000000000..4d284ef86
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0002-uclibc-conf.patch
@@ -0,0 +1,53 @@
+From 4efc5a258c812875743647d756f75c93c4d514a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:38:25 +0400
+Subject: [PATCH 02/46] uclibc-conf
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ contrib/regression/objs-gcc.sh | 4 ++++
+ libjava/classpath/ltconfig | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh
+index 60b0497..6dc7ead 100755
+--- a/contrib/regression/objs-gcc.sh
++++ b/contrib/regression/objs-gcc.sh
+@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ]
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
++ then
++ make all-gdb all-dejagnu all-ld || exit 1
++ make install-gdb install-dejagnu install-ld || exit 1
+ elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
+ make bootstrap || exit 1
+ make install || exit 1
+diff --git a/libjava/classpath/ltconfig b/libjava/classpath/ltconfig
+index d318957..df55950 100755
+--- a/libjava/classpath/ltconfig
++++ b/libjava/classpath/ltconfig
+@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case $host_os in
+-linux-gnu*) ;;
++linux-gnu*|linux-uclibc*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+
+@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0003-gcc-uclibc-locale-ctype_touplow_t.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0003-gcc-uclibc-locale-ctype_touplow_t.patch
new file mode 100644
index 000000000..df07febee
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0003-gcc-uclibc-locale-ctype_touplow_t.patch
@@ -0,0 +1,87 @@
+From ad5fd283fc7ef04f66c7fb003805364ea3bd34e9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:40:12 +0400
+Subject: [PATCH 03/46] gcc-uclibc-locale-ctype_touplow_t
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ libstdc++-v3/config/locale/generic/c_locale.cc | 5 +++++
+ libstdc++-v3/config/locale/generic/c_locale.h | 9 +++++++++
+ libstdc++-v3/config/os/gnu-linux/ctype_base.h | 9 +++++++++
+ 3 files changed, 23 insertions(+)
+
+diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
+index ef6ce8f..4740636 100644
+--- a/libstdc++-v3/config/locale/generic/c_locale.cc
++++ b/libstdc++-v3/config/locale/generic/c_locale.cc
+@@ -273,5 +273,10 @@ _GLIBCXX_END_NAMESPACE_VERSION
+ #ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
+ #define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
+ extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
++#ifdef __UCLIBC__
++// This is because __c_locale is of type __ctype_touplow_t* which is short on uclibc. for glibc its int*
++_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPs, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPs);
++#else
+ _GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
++#endif
+ #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
+diff --git a/libstdc++-v3/config/locale/generic/c_locale.h b/libstdc++-v3/config/locale/generic/c_locale.h
+index 794471e..d65f955 100644
+--- a/libstdc++-v3/config/locale/generic/c_locale.h
++++ b/libstdc++-v3/config/locale/generic/c_locale.h
+@@ -40,13 +40,22 @@
+
+ #include <clocale>
+
++#ifdef __UCLIBC__
++#include <features.h>
++#include <ctype.h>
++#endif
++
+ #define _GLIBCXX_NUM_CATEGORIES 0
+
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+
++#ifdef __UCLIBC__
++ typedef __ctype_touplow_t* __c_locale;
++#else
+ typedef int* __c_locale;
++#endif
+
+ // Convert numeric value of type double and long double to string and
+ // return length of string. If vsnprintf is available use it, otherwise
+diff --git a/libstdc++-v3/config/os/gnu-linux/ctype_base.h b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+index 591c793..55eb0e9 100644
+--- a/libstdc++-v3/config/os/gnu-linux/ctype_base.h
++++ b/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+@@ -33,6 +33,11 @@
+
+ // Information as gleaned from /usr/include/ctype.h
+
++#ifdef __UCLIBC__
++#include <features.h>
++#include <ctype.h>
++#endif
++
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+@@ -41,7 +46,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ struct ctype_base
+ {
+ // Non-standard typedefs.
++#ifdef __UCLIBC__
++ typedef const __ctype_touplow_t* __to_type;
++#else
+ typedef const int* __to_type;
++#endif
+
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0004-uclibc-locale.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0004-uclibc-locale.patch
new file mode 100644
index 000000000..ae2627c2e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0004-uclibc-locale.patch
@@ -0,0 +1,2862 @@
+From 68bd083357e78678a9baac760beb2a31f00954a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:41:39 +0400
+Subject: [PATCH 04/46] uclibc-locale
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ libstdc++-v3/acinclude.m4 | 37 ++
+ .../config/locale/uclibc/c++locale_internal.h | 63 ++
+ libstdc++-v3/config/locale/uclibc/c_locale.cc | 160 +++++
+ libstdc++-v3/config/locale/uclibc/c_locale.h | 117 ++++
+ .../config/locale/uclibc/codecvt_members.cc | 308 +++++++++
+ .../config/locale/uclibc/collate_members.cc | 80 +++
+ libstdc++-v3/config/locale/uclibc/ctype_members.cc | 300 +++++++++
+ .../config/locale/uclibc/messages_members.cc | 100 +++
+ .../config/locale/uclibc/messages_members.h | 118 ++++
+ .../config/locale/uclibc/monetary_members.cc | 692 +++++++++++++++++++++
+ .../config/locale/uclibc/numeric_members.cc | 160 +++++
+ libstdc++-v3/config/locale/uclibc/time_members.cc | 406 ++++++++++++
+ libstdc++-v3/config/locale/uclibc/time_members.h | 68 ++
+ libstdc++-v3/configure | 75 +++
+ libstdc++-v3/include/c_compatibility/wchar.h | 2 +
+ libstdc++-v3/include/c_std/cwchar | 2 +
+ 16 files changed, 2688 insertions(+)
+ create mode 100644 libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+ create mode 100644 libstdc++-v3/config/locale/uclibc/c_locale.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/c_locale.h
+ create mode 100644 libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/collate_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/ctype_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/messages_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/messages_members.h
+ create mode 100644 libstdc++-v3/config/locale/uclibc/monetary_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/numeric_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/time_members.cc
+ create mode 100644 libstdc++-v3/config/locale/uclibc/time_members.h
+
+diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
+index b0f88cb..a0ee36b 100644
+--- a/libstdc++-v3/acinclude.m4
++++ b/libstdc++-v3/acinclude.m4
+@@ -2358,6 +2358,9 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
+ # Default to "generic".
+ if test $enable_clocale_flag = auto; then
+ case ${target_os} in
++ *-uclibc*)
++ enable_clocale_flag=uclibc
++ ;;
+ linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+ enable_clocale_flag=gnu
+ ;;
+@@ -2542,6 +2545,40 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
+ CTIME_CC=config/locale/generic/time_members.cc
+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
+ ;;
++ uclibc)
++ AC_MSG_RESULT(uclibc)
++
++ # Declare intention to use gettext, and add support for specific
++ # languages.
++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
++ ALL_LINGUAS="de fr"
++
++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
++ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
++ USE_NLS=yes
++ fi
++ # Export the build objects.
++ for ling in $ALL_LINGUAS; do \
++ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
++ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
++ done
++ AC_SUBST(glibcxx_MOFILES)
++ AC_SUBST(glibcxx_POFILES)
++
++ CLOCALE_H=config/locale/uclibc/c_locale.h
++ CLOCALE_CC=config/locale/uclibc/c_locale.cc
++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
++ CMESSAGES_H=config/locale/uclibc/messages_members.h
++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
++ CMONEY_CC=config/locale/uclibc/monetary_members.cc
++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
++ CTIME_H=config/locale/uclibc/time_members.h
++ CTIME_CC=config/locale/uclibc/time_members.cc
++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
++ ;;
+ esac
+
+ # This is where the testsuite looks for locale catalogs, using the
+diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+new file mode 100644
+index 0000000..2ae3e4a
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+@@ -0,0 +1,63 @@
++// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
++
++// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++// Written by Jakub Jelinek <jakub@redhat.com>
++
++#include <bits/c++config.h>
++#include <clocale>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning clean this up
++#endif
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++
++extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
++extern "C" __typeof(strcoll_l) __strcoll_l;
++extern "C" __typeof(strftime_l) __strftime_l;
++extern "C" __typeof(strtod_l) __strtod_l;
++extern "C" __typeof(strtof_l) __strtof_l;
++extern "C" __typeof(strtold_l) __strtold_l;
++extern "C" __typeof(strxfrm_l) __strxfrm_l;
++extern "C" __typeof(newlocale) __newlocale;
++extern "C" __typeof(freelocale) __freelocale;
++extern "C" __typeof(duplocale) __duplocale;
++extern "C" __typeof(uselocale) __uselocale;
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++extern "C" __typeof(iswctype_l) __iswctype_l;
++extern "C" __typeof(towlower_l) __towlower_l;
++extern "C" __typeof(towupper_l) __towupper_l;
++extern "C" __typeof(wcscoll_l) __wcscoll_l;
++extern "C" __typeof(wcsftime_l) __wcsftime_l;
++extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
++extern "C" __typeof(wctype_l) __wctype_l;
++#endif
++
++#endif // GLIBC 2.3 and later
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+new file mode 100644
+index 0000000..5081dc1
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+@@ -0,0 +1,160 @@
++// Wrapper for underlying C-language localization -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.8 Standard locale categories.
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#include <cerrno> // For errno
++#include <locale>
++#include <stdexcept>
++#include <langinfo.h>
++#include <bits/c++locale_internal.h>
++
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
++#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
++#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
++#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
++#define __strtof_l(S, E, L) strtof((S), (E))
++#define __strtod_l(S, E, L) strtod((S), (E))
++#define __strtold_l(S, E, L) strtold((S), (E))
++#warning should dummy __newlocale check for C|POSIX ?
++#define __newlocale(a, b, c) NULL
++#define __freelocale(a) ((void)0)
++#define __duplocale(a) __c_locale()
++#endif
++
++namespace std
++{
++ template<>
++ void
++ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
++ const __c_locale& __cloc)
++ {
++ if (!(__err & ios_base::failbit))
++ {
++ char* __sanity;
++ errno = 0;
++ float __f = __strtof_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __f;
++ else
++ __err |= ios_base::failbit;
++ }
++ }
++
++ template<>
++ void
++ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
++ const __c_locale& __cloc)
++ {
++ if (!(__err & ios_base::failbit))
++ {
++ char* __sanity;
++ errno = 0;
++ double __d = __strtod_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __d;
++ else
++ __err |= ios_base::failbit;
++ }
++ }
++
++ template<>
++ void
++ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
++ const __c_locale& __cloc)
++ {
++ if (!(__err & ios_base::failbit))
++ {
++ char* __sanity;
++ errno = 0;
++ long double __ld = __strtold_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __ld;
++ else
++ __err |= ios_base::failbit;
++ }
++ }
++
++ void
++ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
++ __c_locale __old)
++ {
++ __cloc = __newlocale(1 << LC_ALL, __s, __old);
++#ifdef __UCLIBC_HAS_XLOCALE__
++ if (!__cloc)
++ {
++ // This named locale is not supported by the underlying OS.
++ __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
++ "name not valid"));
++ }
++#endif
++ }
++
++ void
++ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
++ {
++ if (_S_get_c_locale() != __cloc)
++ __freelocale(__cloc);
++ }
++
++ __c_locale
++ locale::facet::_S_clone_c_locale(__c_locale& __cloc)
++ { return __duplocale(__cloc); }
++} // namespace std
++
++namespace __gnu_cxx
++{
++ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
++ {
++ "LC_CTYPE",
++ "LC_NUMERIC",
++ "LC_TIME",
++ "LC_COLLATE",
++ "LC_MONETARY",
++ "LC_MESSAGES",
++#if _GLIBCXX_NUM_CATEGORIES != 0
++ "LC_PAPER",
++ "LC_NAME",
++ "LC_ADDRESS",
++ "LC_TELEPHONE",
++ "LC_MEASUREMENT",
++ "LC_IDENTIFICATION"
++#endif
++ };
++}
++
++namespace std
++{
++ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
++} // namespace std
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
+new file mode 100644
+index 0000000..da07c1f
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
+@@ -0,0 +1,117 @@
++// Wrapper for underlying C-language localization -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.8 Standard locale categories.
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#ifndef _C_LOCALE_H
++#define _C_LOCALE_H 1
++
++#pragma GCC system_header
++
++#include <cstring> // get std::strlen
++#include <cstdio> // get std::snprintf or std::sprintf
++#include <clocale>
++#include <langinfo.h> // For codecvt
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this
++#endif
++#ifdef __UCLIBC_HAS_LOCALE__
++#include <iconv.h> // For codecvt using iconv, iconv_t
++#endif
++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
++#include <libintl.h> // For messages
++#endif
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning what is _GLIBCXX_C_LOCALE_GNU for
++#endif
++#define _GLIBCXX_C_LOCALE_GNU 1
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix categories
++#endif
++// #define _GLIBCXX_NUM_CATEGORIES 6
++#define _GLIBCXX_NUM_CATEGORIES 0
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++namespace __gnu_cxx
++{
++ extern "C" __typeof(uselocale) __uselocale;
++}
++#endif
++
++namespace std
++{
++#ifdef __UCLIBC_HAS_XLOCALE__
++ typedef __locale_t __c_locale;
++#else
++ typedef int* __c_locale;
++#endif
++
++ // Convert numeric value of type _Tv to string and return length of
++ // string. If snprintf is available use it, otherwise fall back to
++ // the unsafe sprintf which, in general, can be dangerous and should
++ // be avoided.
++ template<typename _Tv>
++ int
++ __convert_from_v(char* __out,
++ const int __size __attribute__ ((__unused__)),
++ const char* __fmt,
++#ifdef __UCLIBC_HAS_XCLOCALE__
++ _Tv __v, const __c_locale& __cloc, int __prec)
++ {
++ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
++#else
++ _Tv __v, const __c_locale&, int __prec)
++ {
++# ifdef __UCLIBC_HAS_LOCALE__
++ char* __old = std::setlocale(LC_ALL, NULL);
++ char* __sav = new char[std::strlen(__old) + 1];
++ std::strcpy(__sav, __old);
++ std::setlocale(LC_ALL, "C");
++# endif
++#endif
++
++ const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
++
++#ifdef __UCLIBC_HAS_XCLOCALE__
++ __gnu_cxx::__uselocale(__old);
++#elif defined __UCLIBC_HAS_LOCALE__
++ std::setlocale(LC_ALL, __sav);
++ delete [] __sav;
++#endif
++ return __ret;
++ }
++}
++
++#endif
+diff --git a/libstdc++-v3/config/locale/uclibc/codecvt_members.cc b/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+new file mode 100644
+index 0000000..64aa962
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
+@@ -0,0 +1,308 @@
++// std::codecvt implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.1.5 - Template class codecvt
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#include <locale>
++#include <cstdlib> // For MB_CUR_MAX
++#include <climits> // For MB_LEN_MAX
++#include <bits/c++locale_internal.h>
++
++namespace std
++{
++ // Specializations.
++#ifdef _GLIBCXX_USE_WCHAR_T
++ codecvt_base::result
++ codecvt<wchar_t, char, mbstate_t>::
++ do_out(state_type& __state, const intern_type* __from,
++ const intern_type* __from_end, const intern_type*& __from_next,
++ extern_type* __to, extern_type* __to_end,
++ extern_type*& __to_next) const
++ {
++ result __ret = ok;
++ state_type __tmp_state(__state);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++
++ // wcsnrtombs is *very* fast but stops if encounters NUL characters:
++ // in case we fall back to wcrtomb and then continue, in a loop.
++ // NB: wcsnrtombs is a GNU extension
++ for (__from_next = __from, __to_next = __to;
++ __from_next < __from_end && __to_next < __to_end
++ && __ret == ok;)
++ {
++ const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
++ __from_end - __from_next);
++ if (!__from_chunk_end)
++ __from_chunk_end = __from_end;
++
++ __from = __from_next;
++ const size_t __conv = wcsnrtombs(__to_next, &__from_next,
++ __from_chunk_end - __from_next,
++ __to_end - __to_next, &__state);
++ if (__conv == static_cast<size_t>(-1))
++ {
++ // In case of error, in order to stop at the exact place we
++ // have to start again from the beginning with a series of
++ // wcrtomb.
++ for (; __from < __from_next; ++__from)
++ __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
++ __state = __tmp_state;
++ __ret = error;
++ }
++ else if (__from_next && __from_next < __from_chunk_end)
++ {
++ __to_next += __conv;
++ __ret = partial;
++ }
++ else
++ {
++ __from_next = __from_chunk_end;
++ __to_next += __conv;
++ }
++
++ if (__from_next < __from_end && __ret == ok)
++ {
++ extern_type __buf[MB_LEN_MAX];
++ __tmp_state = __state;
++ const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
++ if (__conv > static_cast<size_t>(__to_end - __to_next))
++ __ret = partial;
++ else
++ {
++ memcpy(__to_next, __buf, __conv);
++ __state = __tmp_state;
++ __to_next += __conv;
++ ++__from_next;
++ }
++ }
++ }
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++
++ return __ret;
++ }
++
++ codecvt_base::result
++ codecvt<wchar_t, char, mbstate_t>::
++ do_in(state_type& __state, const extern_type* __from,
++ const extern_type* __from_end, const extern_type*& __from_next,
++ intern_type* __to, intern_type* __to_end,
++ intern_type*& __to_next) const
++ {
++ result __ret = ok;
++ state_type __tmp_state(__state);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++
++ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
++ // in case we store a L'\0' and then continue, in a loop.
++ // NB: mbsnrtowcs is a GNU extension
++ for (__from_next = __from, __to_next = __to;
++ __from_next < __from_end && __to_next < __to_end
++ && __ret == ok;)
++ {
++ const extern_type* __from_chunk_end;
++ __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
++ __from_end
++ - __from_next));
++ if (!__from_chunk_end)
++ __from_chunk_end = __from_end;
++
++ __from = __from_next;
++ size_t __conv = mbsnrtowcs(__to_next, &__from_next,
++ __from_chunk_end - __from_next,
++ __to_end - __to_next, &__state);
++ if (__conv == static_cast<size_t>(-1))
++ {
++ // In case of error, in order to stop at the exact place we
++ // have to start again from the beginning with a series of
++ // mbrtowc.
++ for (;; ++__to_next, __from += __conv)
++ {
++ __conv = mbrtowc(__to_next, __from, __from_end - __from,
++ &__tmp_state);
++ if (__conv == static_cast<size_t>(-1)
++ || __conv == static_cast<size_t>(-2))
++ break;
++ }
++ __from_next = __from;
++ __state = __tmp_state;
++ __ret = error;
++ }
++ else if (__from_next && __from_next < __from_chunk_end)
++ {
++ // It is unclear what to return in this case (see DR 382).
++ __to_next += __conv;
++ __ret = partial;
++ }
++ else
++ {
++ __from_next = __from_chunk_end;
++ __to_next += __conv;
++ }
++
++ if (__from_next < __from_end && __ret == ok)
++ {
++ if (__to_next < __to_end)
++ {
++ // XXX Probably wrong for stateful encodings
++ __tmp_state = __state;
++ ++__from_next;
++ *__to_next++ = L'\0';
++ }
++ else
++ __ret = partial;
++ }
++ }
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_encoding() const throw()
++ {
++ // XXX This implementation assumes that the encoding is
++ // stateless and is either single-byte or variable-width.
++ int __ret = 0;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++ if (MB_CUR_MAX == 1)
++ __ret = 1;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_max_length() const throw()
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++ // XXX Probably wrong for stateful encodings.
++ int __ret = MB_CUR_MAX;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __ret;
++ }
++
++ int
++ codecvt<wchar_t, char, mbstate_t>::
++ do_length(state_type& __state, const extern_type* __from,
++ const extern_type* __end, size_t __max) const
++ {
++ int __ret = 0;
++ state_type __tmp_state(__state);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_codecvt);
++#endif
++
++ // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
++ // in case we advance past it and then continue, in a loop.
++ // NB: mbsnrtowcs is a GNU extension
++
++ // A dummy internal buffer is needed in order for mbsnrtocws to consider
++ // its fourth parameter (it wouldn't with NULL as first parameter).
++ wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t)
++ * __max));
++ while (__from < __end && __max)
++ {
++ const extern_type* __from_chunk_end;
++ __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
++ __end
++ - __from));
++ if (!__from_chunk_end)
++ __from_chunk_end = __end;
++
++ const extern_type* __tmp_from = __from;
++ size_t __conv = mbsnrtowcs(__to, &__from,
++ __from_chunk_end - __from,
++ __max, &__state);
++ if (__conv == static_cast<size_t>(-1))
++ {
++ // In case of error, in order to stop at the exact place we
++ // have to start again from the beginning with a series of
++ // mbrtowc.
++ for (__from = __tmp_from;; __from += __conv)
++ {
++ __conv = mbrtowc(NULL, __from, __end - __from,
++ &__tmp_state);
++ if (__conv == static_cast<size_t>(-1)
++ || __conv == static_cast<size_t>(-2))
++ break;
++ }
++ __state = __tmp_state;
++ __ret += __from - __tmp_from;
++ break;
++ }
++ if (!__from)
++ __from = __from_chunk_end;
++
++ __ret += __from - __tmp_from;
++ __max -= __conv;
++
++ if (__from < __end && __max)
++ {
++ // XXX Probably wrong for stateful encodings
++ __tmp_state = __state;
++ ++__from;
++ ++__ret;
++ --__max;
++ }
++ }
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++
++ return __ret;
++ }
++#endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/collate_members.cc b/libstdc++-v3/config/locale/uclibc/collate_members.cc
+new file mode 100644
+index 0000000..c2664a7
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc
+@@ -0,0 +1,80 @@
++// std::collate implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.4.1.2 collate virtual functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#include <locale>
++#include <bits/c++locale_internal.h>
++
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
++#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
++#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
++#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
++#endif
++
++namespace std
++{
++ // These are basically extensions to char_traits, and perhaps should
++ // be put there instead of here.
++ template<>
++ int
++ collate<char>::_M_compare(const char* __one, const char* __two) const
++ {
++ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
++ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
++ }
++
++ template<>
++ size_t
++ collate<char>::_M_transform(char* __to, const char* __from,
++ size_t __n) const
++ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ int
++ collate<wchar_t>::_M_compare(const wchar_t* __one,
++ const wchar_t* __two) const
++ {
++ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
++ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
++ }
++
++ template<>
++ size_t
++ collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
++ size_t __n) const
++ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
++#endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+new file mode 100644
+index 0000000..7294e3a
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+@@ -0,0 +1,300 @@
++// std::ctype implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#define _LIBC
++#include <locale>
++#undef _LIBC
++#include <bits/c++locale_internal.h>
++
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __wctype_l(S, L) wctype((S))
++#define __towupper_l(C, L) towupper((C))
++#define __towlower_l(C, L) towlower((C))
++#define __iswctype_l(C, M, L) iswctype((C), (M))
++#endif
++
++namespace std
++{
++ // NB: The other ctype<char> specializations are in src/locale.cc and
++ // various /config/os/* files.
++ template<>
++ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
++ : ctype<char>(0, false, __refs)
++ {
++ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
++ {
++ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
++ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
++#ifdef __UCLIBC_HAS_XLOCALE__
++ this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
++ this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
++ this->_M_table = this->_M_c_locale_ctype->__ctype_b;
++#endif
++ }
++ }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ ctype<wchar_t>::__wmask_type
++ ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
++ {
++ __wmask_type __ret;
++ switch (__m)
++ {
++ case space:
++ __ret = __wctype_l("space", _M_c_locale_ctype);
++ break;
++ case print:
++ __ret = __wctype_l("print", _M_c_locale_ctype);
++ break;
++ case cntrl:
++ __ret = __wctype_l("cntrl", _M_c_locale_ctype);
++ break;
++ case upper:
++ __ret = __wctype_l("upper", _M_c_locale_ctype);
++ break;
++ case lower:
++ __ret = __wctype_l("lower", _M_c_locale_ctype);
++ break;
++ case alpha:
++ __ret = __wctype_l("alpha", _M_c_locale_ctype);
++ break;
++ case digit:
++ __ret = __wctype_l("digit", _M_c_locale_ctype);
++ break;
++ case punct:
++ __ret = __wctype_l("punct", _M_c_locale_ctype);
++ break;
++ case xdigit:
++ __ret = __wctype_l("xdigit", _M_c_locale_ctype);
++ break;
++ case alnum:
++ __ret = __wctype_l("alnum", _M_c_locale_ctype);
++ break;
++ case graph:
++ __ret = __wctype_l("graph", _M_c_locale_ctype);
++ break;
++ default:
++ __ret = __wmask_type();
++ }
++ return __ret;
++ }
++
++ wchar_t
++ ctype<wchar_t>::do_toupper(wchar_t __c) const
++ { return __towupper_l(__c, _M_c_locale_ctype); }
++
++ const wchar_t*
++ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
++ {
++ while (__lo < __hi)
++ {
++ *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
++ ++__lo;
++ }
++ return __hi;
++ }
++
++ wchar_t
++ ctype<wchar_t>::do_tolower(wchar_t __c) const
++ { return __towlower_l(__c, _M_c_locale_ctype); }
++
++ const wchar_t*
++ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
++ {
++ while (__lo < __hi)
++ {
++ *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
++ ++__lo;
++ }
++ return __hi;
++ }
++
++ bool
++ ctype<wchar_t>::
++ do_is(mask __m, wchar_t __c) const
++ {
++ // Highest bitmask in ctype_base == 10, but extra in "C"
++ // library for blank.
++ bool __ret = false;
++ const size_t __bitmasksize = 11;
++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
++ if (__m & _M_bit[__bitcur]
++ && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
++ {
++ __ret = true;
++ break;
++ }
++ return __ret;
++ }
++
++ const wchar_t*
++ ctype<wchar_t>::
++ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
++ {
++ for (; __lo < __hi; ++__vec, ++__lo)
++ {
++ // Highest bitmask in ctype_base == 10, but extra in "C"
++ // library for blank.
++ const size_t __bitmasksize = 11;
++ mask __m = 0;
++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
++ if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
++ __m |= _M_bit[__bitcur];
++ *__vec = __m;
++ }
++ return __hi;
++ }
++
++ const wchar_t*
++ ctype<wchar_t>::
++ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
++ {
++ while (__lo < __hi && !this->do_is(__m, *__lo))
++ ++__lo;
++ return __lo;
++ }
++
++ const wchar_t*
++ ctype<wchar_t>::
++ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
++ {
++ while (__lo < __hi && this->do_is(__m, *__lo) != 0)
++ ++__lo;
++ return __lo;
++ }
++
++ wchar_t
++ ctype<wchar_t>::
++ do_widen(char __c) const
++ { return _M_widen[static_cast<unsigned char>(__c)]; }
++
++ const char*
++ ctype<wchar_t>::
++ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
++ {
++ while (__lo < __hi)
++ {
++ *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
++ ++__lo;
++ ++__dest;
++ }
++ return __hi;
++ }
++
++ char
++ ctype<wchar_t>::
++ do_narrow(wchar_t __wc, char __dfault) const
++ {
++ if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
++ return _M_narrow[__wc];
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_ctype);
++#endif
++ const int __c = wctob(__wc);
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return (__c == EOF ? __dfault : static_cast<char>(__c));
++ }
++
++ const wchar_t*
++ ctype<wchar_t>::
++ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
++ char* __dest) const
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_ctype);
++#endif
++ if (_M_narrow_ok)
++ while (__lo < __hi)
++ {
++ if (*__lo >= 0 && *__lo < 128)
++ *__dest = _M_narrow[*__lo];
++ else
++ {
++ const int __c = wctob(*__lo);
++ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
++ }
++ ++__lo;
++ ++__dest;
++ }
++ else
++ while (__lo < __hi)
++ {
++ const int __c = wctob(*__lo);
++ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
++ ++__lo;
++ ++__dest;
++ }
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ return __hi;
++ }
++
++ void
++ ctype<wchar_t>::_M_initialize_ctype()
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_ctype);
++#endif
++ wint_t __i;
++ for (__i = 0; __i < 128; ++__i)
++ {
++ const int __c = wctob(__i);
++ if (__c == EOF)
++ break;
++ else
++ _M_narrow[__i] = static_cast<char>(__c);
++ }
++ if (__i == 128)
++ _M_narrow_ok = true;
++ else
++ _M_narrow_ok = false;
++ for (size_t __j = 0;
++ __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
++ _M_widen[__j] = btowc(__j);
++
++ for (size_t __k = 0; __k <= 11; ++__k)
++ {
++ _M_bit[__k] = static_cast<mask>(_ISbit(__k));
++ _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
++ }
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#endif
++ }
++#endif // _GLIBCXX_USE_WCHAR_T
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.cc b/libstdc++-v3/config/locale/uclibc/messages_members.cc
+new file mode 100644
+index 0000000..13594d9
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc
+@@ -0,0 +1,100 @@
++// std::messages implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#include <locale>
++#include <bits/c++locale_internal.h>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix gettext stuff
++#endif
++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
++extern "C" char *__dcgettext(const char *domainname,
++ const char *msgid, int category);
++#undef gettext
++#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
++#else
++#undef gettext
++#define gettext(msgid) (msgid)
++#endif
++
++namespace std
++{
++ // Specializations.
++ template<>
++ string
++ messages<char>::do_get(catalog, int, int, const string& __dfault) const
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_messages);
++ const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
++ __uselocale(__old);
++ return string(__msg);
++#elif defined __UCLIBC_HAS_LOCALE__
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_messages);
++ const char* __msg = gettext(__dfault.c_str());
++ setlocale(LC_ALL, __old);
++ free(__old);
++ return string(__msg);
++#else
++ const char* __msg = gettext(__dfault.c_str());
++ return string(__msg);
++#endif
++ }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ wstring
++ messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
++ {
++# ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(_M_c_locale_messages);
++ char* __msg = gettext(_M_convert_to_char(__dfault));
++ __uselocale(__old);
++ return _M_convert_from_char(__msg);
++# elif defined __UCLIBC_HAS_LOCALE__
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_messages);
++ char* __msg = gettext(_M_convert_to_char(__dfault));
++ setlocale(LC_ALL, __old);
++ free(__old);
++ return _M_convert_from_char(__msg);
++# else
++ char* __msg = gettext(_M_convert_to_char(__dfault));
++ return _M_convert_from_char(__msg);
++# endif
++ }
++#endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
+new file mode 100644
+index 0000000..1424078
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
+@@ -0,0 +1,118 @@
++// std::messages implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.7.1.2 messages functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix prototypes for *textdomain funcs
++#endif
++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
++extern "C" char *__textdomain(const char *domainname);
++extern "C" char *__bindtextdomain(const char *domainname,
++ const char *dirname);
++#else
++#undef __textdomain
++#undef __bindtextdomain
++#define __textdomain(D) ((void)0)
++#define __bindtextdomain(D,P) ((void)0)
++#endif
++
++ // Non-virtual member functions.
++ template<typename _CharT>
++ messages<_CharT>::messages(size_t __refs)
++ : facet(__refs), _M_c_locale_messages(_S_get_c_locale()),
++ _M_name_messages(_S_get_c_name())
++ { }
++
++ template<typename _CharT>
++ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
++ size_t __refs)
++ : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
++ _M_name_messages(__s)
++ {
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ _M_name_messages = __tmp;
++ }
++
++ template<typename _CharT>
++ typename messages<_CharT>::catalog
++ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
++ const char* __dir) const
++ {
++ __bindtextdomain(__s.c_str(), __dir);
++ return this->do_open(__s, __loc);
++ }
++
++ // Virtual member functions.
++ template<typename _CharT>
++ messages<_CharT>::~messages()
++ {
++ if (_M_name_messages != _S_get_c_name())
++ delete [] _M_name_messages;
++ _S_destroy_c_locale(_M_c_locale_messages);
++ }
++
++ template<typename _CharT>
++ typename messages<_CharT>::catalog
++ messages<_CharT>::do_open(const basic_string<char>& __s,
++ const locale&) const
++ {
++ // No error checking is done, assume the catalog exists and can
++ // be used.
++ __textdomain(__s.c_str());
++ return 0;
++ }
++
++ template<typename _CharT>
++ void
++ messages<_CharT>::do_close(catalog) const
++ { }
++
++ // messages_byname
++ template<typename _CharT>
++ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
++ : messages<_CharT>(__refs)
++ {
++ if (this->_M_name_messages != locale::facet::_S_get_c_name())
++ delete [] this->_M_name_messages;
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ this->_M_name_messages = __tmp;
++
++ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
++ {
++ this->_S_destroy_c_locale(this->_M_c_locale_messages);
++ this->_S_create_c_locale(this->_M_c_locale_messages, __s);
++ }
++ }
+diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+new file mode 100644
+index 0000000..aa52731
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+@@ -0,0 +1,692 @@
++// std::moneypunct implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#define _LIBC
++#include <locale>
++#undef _LIBC
++#include <bits/c++locale_internal.h>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning optimize this for uclibc
++#warning tailor for stub locale support
++#endif
++
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __nl_langinfo_l(N, L) nl_langinfo((N))
++#endif
++
++namespace std
++{
++ // Construct and return valid pattern consisting of some combination of:
++ // space none symbol sign value
++ money_base::pattern
++ money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
++ {
++ pattern __ret;
++
++ // This insanely complicated routine attempts to construct a valid
++ // pattern for use with monyepunct. A couple of invariants:
++
++ // if (__precedes) symbol -> value
++ // else value -> symbol
++
++ // if (__space) space
++ // else none
++
++ // none == never first
++ // space never first or last
++
++ // Any elegant implementations of this are welcome.
++ switch (__posn)
++ {
++ case 0:
++ case 1:
++ // 1 The sign precedes the value and symbol.
++ __ret.field[0] = sign;
++ if (__space)
++ {
++ // Pattern starts with sign.
++ if (__precedes)
++ {
++ __ret.field[1] = symbol;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[1] = value;
++ __ret.field[3] = symbol;
++ }
++ __ret.field[2] = space;
++ }
++ else
++ {
++ // Pattern starts with sign and ends with none.
++ if (__precedes)
++ {
++ __ret.field[1] = symbol;
++ __ret.field[2] = value;
++ }
++ else
++ {
++ __ret.field[1] = value;
++ __ret.field[2] = symbol;
++ }
++ __ret.field[3] = none;
++ }
++ break;
++ case 2:
++ // 2 The sign follows the value and symbol.
++ if (__space)
++ {
++ // Pattern either ends with sign.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[2] = value;
++ }
++ else
++ {
++ __ret.field[0] = value;
++ __ret.field[2] = symbol;
++ }
++ __ret.field[1] = space;
++ __ret.field[3] = sign;
++ }
++ else
++ {
++ // Pattern ends with sign then none.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[1] = value;
++ }
++ else
++ {
++ __ret.field[0] = value;
++ __ret.field[1] = symbol;
++ }
++ __ret.field[2] = sign;
++ __ret.field[3] = none;
++ }
++ break;
++ case 3:
++ // 3 The sign immediately precedes the symbol.
++ if (__precedes)
++ {
++ __ret.field[0] = sign;
++ __ret.field[1] = symbol;
++ if (__space)
++ {
++ __ret.field[2] = space;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[2] = value;
++ __ret.field[3] = none;
++ }
++ }
++ else
++ {
++ __ret.field[0] = value;
++ if (__space)
++ {
++ __ret.field[1] = space;
++ __ret.field[2] = sign;
++ __ret.field[3] = symbol;
++ }
++ else
++ {
++ __ret.field[1] = sign;
++ __ret.field[2] = symbol;
++ __ret.field[3] = none;
++ }
++ }
++ break;
++ case 4:
++ // 4 The sign immediately follows the symbol.
++ if (__precedes)
++ {
++ __ret.field[0] = symbol;
++ __ret.field[1] = sign;
++ if (__space)
++ {
++ __ret.field[2] = space;
++ __ret.field[3] = value;
++ }
++ else
++ {
++ __ret.field[2] = value;
++ __ret.field[3] = none;
++ }
++ }
++ else
++ {
++ __ret.field[0] = value;
++ if (__space)
++ {
++ __ret.field[1] = space;
++ __ret.field[2] = symbol;
++ __ret.field[3] = sign;
++ }
++ else
++ {
++ __ret.field[1] = symbol;
++ __ret.field[2] = sign;
++ __ret.field[3] = none;
++ }
++ }
++ break;
++ default:
++ ;
++ }
++ return __ret;
++ }
++
++ template<>
++ void
++ moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
++ const char*)
++ {
++ if (!_M_data)
++ _M_data = new __moneypunct_cache<char, true>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_decimal_point = '.';
++ _M_data->_M_thousands_sep = ',';
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_curr_symbol = "";
++ _M_data->_M_curr_symbol_size = 0;
++ _M_data->_M_positive_sign = "";
++ _M_data->_M_positive_sign_size = 0;
++ _M_data->_M_negative_sign = "";
++ _M_data->_M_negative_sign_size = 0;
++ _M_data->_M_frac_digits = 0;
++ _M_data->_M_pos_format = money_base::_S_default_pattern;
++ _M_data->_M_neg_format = money_base::_S_default_pattern;
++
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
++ }
++ else
++ {
++ // Named locale.
++ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
++ __cloc));
++ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
++ __cloc));
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
++
++ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
++ if (!__nposn)
++ _M_data->_M_negative_sign = "()";
++ else
++ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
++ __cloc);
++ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
++
++ // _Intl == true
++ _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
++ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
++ __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++ }
++ }
++
++ template<>
++ void
++ moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
++ const char*)
++ {
++ if (!_M_data)
++ _M_data = new __moneypunct_cache<char, false>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_decimal_point = '.';
++ _M_data->_M_thousands_sep = ',';
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_curr_symbol = "";
++ _M_data->_M_curr_symbol_size = 0;
++ _M_data->_M_positive_sign = "";
++ _M_data->_M_positive_sign_size = 0;
++ _M_data->_M_negative_sign = "";
++ _M_data->_M_negative_sign_size = 0;
++ _M_data->_M_frac_digits = 0;
++ _M_data->_M_pos_format = money_base::_S_default_pattern;
++ _M_data->_M_neg_format = money_base::_S_default_pattern;
++
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
++ }
++ else
++ {
++ // Named locale.
++ _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
++ __cloc));
++ _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
++ __cloc));
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
++
++ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
++ if (!__nposn)
++ _M_data->_M_negative_sign = "()";
++ else
++ _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
++ __cloc);
++ _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
++
++ // _Intl == false
++ _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
++ _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++ }
++ }
++
++ template<>
++ moneypunct<char, true>::~moneypunct()
++ { delete _M_data; }
++
++ template<>
++ moneypunct<char, false>::~moneypunct()
++ { delete _M_data; }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ void
++ moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
++#ifdef __UCLIBC_HAS_XLOCALE__
++ const char*)
++#else
++ const char* __name)
++#endif
++ {
++ if (!_M_data)
++ _M_data = new __moneypunct_cache<wchar_t, true>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_decimal_point = L'.';
++ _M_data->_M_thousands_sep = L',';
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = 0;
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = 0;
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = 0;
++ _M_data->_M_frac_digits = 0;
++ _M_data->_M_pos_format = money_base::_S_default_pattern;
++ _M_data->_M_neg_format = money_base::_S_default_pattern;
++
++ // Use ctype::widen code without the facet...
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] =
++ static_cast<wchar_t>(money_base::_S_atoms[__i]);
++ }
++ else
++ {
++ // Named locale.
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(__cloc);
++#else
++ // Switch to named locale so that mbsrtowcs will work.
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, __name);
++#endif
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be monetary
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# else
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++#endif
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++
++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
++ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
++
++ wchar_t* __wcs_ps = 0;
++ wchar_t* __wcs_ns = 0;
++ const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
++ try
++ {
++ mbstate_t __state;
++ size_t __len = strlen(__cpossign);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ps = new wchar_t[__len];
++ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
++ _M_data->_M_positive_sign = __wcs_ps;
++ }
++ else
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
++
++ __len = strlen(__cnegsign);
++ if (!__nposn)
++ _M_data->_M_negative_sign = L"()";
++ else if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ns = new wchar_t[__len];
++ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
++ _M_data->_M_negative_sign = __wcs_ns;
++ }
++ else
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
++
++ // _Intl == true.
++ __len = strlen(__ccurr);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ wchar_t* __wcs = new wchar_t[__len];
++ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
++ _M_data->_M_curr_symbol = __wcs;
++ }
++ else
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
++ }
++ catch (...)
++ {
++ delete _M_data;
++ _M_data = 0;
++ delete __wcs_ps;
++ delete __wcs_ns;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ __throw_exception_again;
++ }
++
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
++ __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ }
++ }
++
++ template<>
++ void
++ moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
++#ifdef __UCLIBC_HAS_XLOCALE__
++ const char*)
++#else
++ const char* __name)
++#endif
++ {
++ if (!_M_data)
++ _M_data = new __moneypunct_cache<wchar_t, false>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_decimal_point = L'.';
++ _M_data->_M_thousands_sep = L',';
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = 0;
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = 0;
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = 0;
++ _M_data->_M_frac_digits = 0;
++ _M_data->_M_pos_format = money_base::_S_default_pattern;
++ _M_data->_M_neg_format = money_base::_S_default_pattern;
++
++ // Use ctype::widen code without the facet...
++ for (size_t __i = 0; __i < money_base::_S_end; ++__i)
++ _M_data->_M_atoms[__i] =
++ static_cast<wchar_t>(money_base::_S_atoms[__i]);
++ }
++ else
++ {
++ // Named locale.
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __c_locale __old = __uselocale(__cloc);
++#else
++ // Switch to named locale so that mbsrtowcs will work.
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, __name);
++#endif
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be monetary
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# else
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++#endif
++ _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++
++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
++ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
++
++ wchar_t* __wcs_ps = 0;
++ wchar_t* __wcs_ns = 0;
++ const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
++ try
++ {
++ mbstate_t __state;
++ size_t __len;
++ __len = strlen(__cpossign);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ps = new wchar_t[__len];
++ mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
++ _M_data->_M_positive_sign = __wcs_ps;
++ }
++ else
++ _M_data->_M_positive_sign = L"";
++ _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
++
++ __len = strlen(__cnegsign);
++ if (!__nposn)
++ _M_data->_M_negative_sign = L"()";
++ else if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ __wcs_ns = new wchar_t[__len];
++ mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
++ _M_data->_M_negative_sign = __wcs_ns;
++ }
++ else
++ _M_data->_M_negative_sign = L"";
++ _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
++
++ // _Intl == true.
++ __len = strlen(__ccurr);
++ if (__len)
++ {
++ ++__len;
++ memset(&__state, 0, sizeof(mbstate_t));
++ wchar_t* __wcs = new wchar_t[__len];
++ mbsrtowcs(__wcs, &__ccurr, __len, &__state);
++ _M_data->_M_curr_symbol = __wcs;
++ }
++ else
++ _M_data->_M_curr_symbol = L"";
++ _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
++ }
++ catch (...)
++ {
++ delete _M_data;
++ _M_data = 0;
++ delete __wcs_ps;
++ delete __wcs_ns;
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ __throw_exception_again;
++ }
++
++ _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
++ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
++ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
++ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
++ _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
++ __pposn);
++ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
++ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
++ _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
++ __nposn);
++
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __uselocale(__old);
++#else
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ }
++ }
++
++ template<>
++ moneypunct<wchar_t, true>::~moneypunct()
++ {
++ if (_M_data->_M_positive_sign_size)
++ delete [] _M_data->_M_positive_sign;
++ if (_M_data->_M_negative_sign_size
++ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
++ delete [] _M_data->_M_negative_sign;
++ if (_M_data->_M_curr_symbol_size)
++ delete [] _M_data->_M_curr_symbol;
++ delete _M_data;
++ }
++
++ template<>
++ moneypunct<wchar_t, false>::~moneypunct()
++ {
++ if (_M_data->_M_positive_sign_size)
++ delete [] _M_data->_M_positive_sign;
++ if (_M_data->_M_negative_sign_size
++ && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
++ delete [] _M_data->_M_negative_sign;
++ if (_M_data->_M_curr_symbol_size)
++ delete [] _M_data->_M_curr_symbol;
++ delete _M_data;
++ }
++#endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+new file mode 100644
+index 0000000..883ec1a
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+@@ -0,0 +1,160 @@
++// std::numpunct implementation details, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#define _LIBC
++#include <locale>
++#undef _LIBC
++#include <bits/c++locale_internal.h>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning tailor for stub locale support
++#endif
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __nl_langinfo_l(N, L) nl_langinfo((N))
++#endif
++
++namespace std
++{
++ template<>
++ void
++ numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
++ {
++ if (!_M_data)
++ _M_data = new __numpunct_cache<char>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_use_grouping = false;
++
++ _M_data->_M_decimal_point = '.';
++ _M_data->_M_thousands_sep = ',';
++
++ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
++ _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
++
++ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
++ _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
++ }
++ else
++ {
++ // Named locale.
++ _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT,
++ __cloc));
++ _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP,
++ __cloc));
++
++ // Check for NULL, which implies no grouping.
++ if (_M_data->_M_thousands_sep == '\0')
++ _M_data->_M_grouping = "";
++ else
++ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ }
++
++ // NB: There is no way to extact this info from posix locales.
++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
++ _M_data->_M_truename = "true";
++ _M_data->_M_truename_size = 4;
++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
++ _M_data->_M_falsename = "false";
++ _M_data->_M_falsename_size = 5;
++ }
++
++ template<>
++ numpunct<char>::~numpunct()
++ { delete _M_data; }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ void
++ numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
++ {
++ if (!_M_data)
++ _M_data = new __numpunct_cache<wchar_t>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_data->_M_grouping = "";
++ _M_data->_M_grouping_size = 0;
++ _M_data->_M_use_grouping = false;
++
++ _M_data->_M_decimal_point = L'.';
++ _M_data->_M_thousands_sep = L',';
++
++ // Use ctype::widen code without the facet...
++ for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
++ _M_data->_M_atoms_out[__i] =
++ static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
++
++ for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
++ _M_data->_M_atoms_in[__j] =
++ static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
++ }
++ else
++ {
++ // Named locale.
++ // NB: In the GNU model wchar_t is always 32 bit wide.
++ union { char *__s; wchar_t __w; } __u;
++ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
++ _M_data->_M_decimal_point = __u.__w;
++
++ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
++ _M_data->_M_thousands_sep = __u.__w;
++
++ if (_M_data->_M_thousands_sep == L'\0')
++ _M_data->_M_grouping = "";
++ else
++ _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
++ _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
++ }
++
++ // NB: There is no way to extact this info from posix locales.
++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
++ _M_data->_M_truename = L"true";
++ _M_data->_M_truename_size = 4;
++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
++ _M_data->_M_falsename = L"false";
++ _M_data->_M_falsename_size = 5;
++ }
++
++ template<>
++ numpunct<wchar_t>::~numpunct()
++ { delete _M_data; }
++ #endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
+new file mode 100644
+index 0000000..e0707d7
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
+@@ -0,0 +1,406 @@
++// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
++// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++#include <locale>
++#include <bits/c++locale_internal.h>
++
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning tailor for stub locale support
++#endif
++#ifndef __UCLIBC_HAS_XLOCALE__
++#define __nl_langinfo_l(N, L) nl_langinfo((N))
++#endif
++
++namespace std
++{
++ template<>
++ void
++ __timepunct<char>::
++ _M_put(char* __s, size_t __maxlen, const char* __format,
++ const tm* __tm) const
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
++ _M_c_locale_timepunct);
++#else
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_timepunct);
++ const size_t __len = strftime(__s, __maxlen, __format, __tm);
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ // Make sure __s is null terminated.
++ if (__len == 0)
++ __s[0] = '\0';
++ }
++
++ template<>
++ void
++ __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
++ {
++ if (!_M_data)
++ _M_data = new __timepunct_cache<char>;
++
++ if (!__cloc)
++ {
++ // "C" locale
++ _M_c_locale_timepunct = _S_get_c_locale();
++
++ _M_data->_M_date_format = "%m/%d/%y";
++ _M_data->_M_date_era_format = "%m/%d/%y";
++ _M_data->_M_time_format = "%H:%M:%S";
++ _M_data->_M_time_era_format = "%H:%M:%S";
++ _M_data->_M_date_time_format = "";
++ _M_data->_M_date_time_era_format = "";
++ _M_data->_M_am = "AM";
++ _M_data->_M_pm = "PM";
++ _M_data->_M_am_pm_format = "";
++
++ // Day names, starting with "C"'s Sunday.
++ _M_data->_M_day1 = "Sunday";
++ _M_data->_M_day2 = "Monday";
++ _M_data->_M_day3 = "Tuesday";
++ _M_data->_M_day4 = "Wednesday";
++ _M_data->_M_day5 = "Thursday";
++ _M_data->_M_day6 = "Friday";
++ _M_data->_M_day7 = "Saturday";
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ _M_data->_M_aday1 = "Sun";
++ _M_data->_M_aday2 = "Mon";
++ _M_data->_M_aday3 = "Tue";
++ _M_data->_M_aday4 = "Wed";
++ _M_data->_M_aday5 = "Thu";
++ _M_data->_M_aday6 = "Fri";
++ _M_data->_M_aday7 = "Sat";
++
++ // Month names, starting with "C"'s January.
++ _M_data->_M_month01 = "January";
++ _M_data->_M_month02 = "February";
++ _M_data->_M_month03 = "March";
++ _M_data->_M_month04 = "April";
++ _M_data->_M_month05 = "May";
++ _M_data->_M_month06 = "June";
++ _M_data->_M_month07 = "July";
++ _M_data->_M_month08 = "August";
++ _M_data->_M_month09 = "September";
++ _M_data->_M_month10 = "October";
++ _M_data->_M_month11 = "November";
++ _M_data->_M_month12 = "December";
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ _M_data->_M_amonth01 = "Jan";
++ _M_data->_M_amonth02 = "Feb";
++ _M_data->_M_amonth03 = "Mar";
++ _M_data->_M_amonth04 = "Apr";
++ _M_data->_M_amonth05 = "May";
++ _M_data->_M_amonth06 = "Jun";
++ _M_data->_M_amonth07 = "Jul";
++ _M_data->_M_amonth08 = "Aug";
++ _M_data->_M_amonth09 = "Sep";
++ _M_data->_M_amonth10 = "Oct";
++ _M_data->_M_amonth11 = "Nov";
++ _M_data->_M_amonth12 = "Dec";
++ }
++ else
++ {
++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
++
++ _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
++ _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
++ _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
++ _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
++ _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
++ _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
++ __cloc);
++ _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
++ _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
++ _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
++
++ // Day names, starting with "C"'s Sunday.
++ _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
++ _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
++ _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
++ _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
++ _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
++ _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
++ _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
++ _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
++ _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
++ _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
++ _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
++ _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
++ _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
++
++ // Month names, starting with "C"'s January.
++ _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
++ _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
++ _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
++ _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
++ _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
++ _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
++ _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
++ _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
++ _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
++ _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
++ _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
++ _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
++ _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
++ _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
++ _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
++ _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
++ _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
++ _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
++ _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
++ _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
++ _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
++ _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
++ _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
++ }
++ }
++
++#ifdef _GLIBCXX_USE_WCHAR_T
++ template<>
++ void
++ __timepunct<wchar_t>::
++ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format,
++ const tm* __tm) const
++ {
++#ifdef __UCLIBC_HAS_XLOCALE__
++ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
++ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
++ _M_c_locale_timepunct);
++#else
++ char* __old = strdup(setlocale(LC_ALL, NULL));
++ setlocale(LC_ALL, _M_name_timepunct);
++ const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
++ setlocale(LC_ALL, __old);
++ free(__old);
++#endif
++ // Make sure __s is null terminated.
++ if (__len == 0)
++ __s[0] = L'\0';
++ }
++
++ template<>
++ void
++ __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
++ {
++ if (!_M_data)
++ _M_data = new __timepunct_cache<wchar_t>;
++
++#warning wide time stuff
++// if (!__cloc)
++ {
++ // "C" locale
++ _M_c_locale_timepunct = _S_get_c_locale();
++
++ _M_data->_M_date_format = L"%m/%d/%y";
++ _M_data->_M_date_era_format = L"%m/%d/%y";
++ _M_data->_M_time_format = L"%H:%M:%S";
++ _M_data->_M_time_era_format = L"%H:%M:%S";
++ _M_data->_M_date_time_format = L"";
++ _M_data->_M_date_time_era_format = L"";
++ _M_data->_M_am = L"AM";
++ _M_data->_M_pm = L"PM";
++ _M_data->_M_am_pm_format = L"";
++
++ // Day names, starting with "C"'s Sunday.
++ _M_data->_M_day1 = L"Sunday";
++ _M_data->_M_day2 = L"Monday";
++ _M_data->_M_day3 = L"Tuesday";
++ _M_data->_M_day4 = L"Wednesday";
++ _M_data->_M_day5 = L"Thursday";
++ _M_data->_M_day6 = L"Friday";
++ _M_data->_M_day7 = L"Saturday";
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ _M_data->_M_aday1 = L"Sun";
++ _M_data->_M_aday2 = L"Mon";
++ _M_data->_M_aday3 = L"Tue";
++ _M_data->_M_aday4 = L"Wed";
++ _M_data->_M_aday5 = L"Thu";
++ _M_data->_M_aday6 = L"Fri";
++ _M_data->_M_aday7 = L"Sat";
++
++ // Month names, starting with "C"'s January.
++ _M_data->_M_month01 = L"January";
++ _M_data->_M_month02 = L"February";
++ _M_data->_M_month03 = L"March";
++ _M_data->_M_month04 = L"April";
++ _M_data->_M_month05 = L"May";
++ _M_data->_M_month06 = L"June";
++ _M_data->_M_month07 = L"July";
++ _M_data->_M_month08 = L"August";
++ _M_data->_M_month09 = L"September";
++ _M_data->_M_month10 = L"October";
++ _M_data->_M_month11 = L"November";
++ _M_data->_M_month12 = L"December";
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ _M_data->_M_amonth01 = L"Jan";
++ _M_data->_M_amonth02 = L"Feb";
++ _M_data->_M_amonth03 = L"Mar";
++ _M_data->_M_amonth04 = L"Apr";
++ _M_data->_M_amonth05 = L"May";
++ _M_data->_M_amonth06 = L"Jun";
++ _M_data->_M_amonth07 = L"Jul";
++ _M_data->_M_amonth08 = L"Aug";
++ _M_data->_M_amonth09 = L"Sep";
++ _M_data->_M_amonth10 = L"Oct";
++ _M_data->_M_amonth11 = L"Nov";
++ _M_data->_M_amonth12 = L"Dec";
++ }
++#if 0
++ else
++ {
++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc);
++
++ union { char *__s; wchar_t *__w; } __u;
++
++ __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
++ _M_data->_M_date_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
++ _M_data->_M_date_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
++ _M_data->_M_time_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
++ _M_data->_M_time_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
++ _M_data->_M_date_time_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
++ _M_data->_M_date_time_era_format = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
++ _M_data->_M_am = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
++ _M_data->_M_pm = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
++ _M_data->_M_am_pm_format = __u.__w;
++
++ // Day names, starting with "C"'s Sunday.
++ __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
++ _M_data->_M_day1 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
++ _M_data->_M_day2 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
++ _M_data->_M_day3 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
++ _M_data->_M_day4 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
++ _M_data->_M_day5 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
++ _M_data->_M_day6 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
++ _M_data->_M_day7 = __u.__w;
++
++ // Abbreviated day names, starting with "C"'s Sun.
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
++ _M_data->_M_aday1 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
++ _M_data->_M_aday2 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
++ _M_data->_M_aday3 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
++ _M_data->_M_aday4 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
++ _M_data->_M_aday5 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
++ _M_data->_M_aday6 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
++ _M_data->_M_aday7 = __u.__w;
++
++ // Month names, starting with "C"'s January.
++ __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
++ _M_data->_M_month01 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
++ _M_data->_M_month02 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
++ _M_data->_M_month03 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
++ _M_data->_M_month04 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
++ _M_data->_M_month05 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
++ _M_data->_M_month06 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
++ _M_data->_M_month07 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
++ _M_data->_M_month08 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
++ _M_data->_M_month09 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
++ _M_data->_M_month10 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
++ _M_data->_M_month11 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
++ _M_data->_M_month12 = __u.__w;
++
++ // Abbreviated month names, starting with "C"'s Jan.
++ __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
++ _M_data->_M_amonth01 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
++ _M_data->_M_amonth02 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
++ _M_data->_M_amonth03 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
++ _M_data->_M_amonth04 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
++ _M_data->_M_amonth05 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
++ _M_data->_M_amonth06 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
++ _M_data->_M_amonth07 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
++ _M_data->_M_amonth08 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
++ _M_data->_M_amonth09 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
++ _M_data->_M_amonth10 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
++ _M_data->_M_amonth11 = __u.__w;
++ __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
++ _M_data->_M_amonth12 = __u.__w;
++ }
++#endif // 0
++ }
++#endif
++}
+diff --git a/libstdc++-v3/config/locale/uclibc/time_members.h b/libstdc++-v3/config/locale/uclibc/time_members.h
+new file mode 100644
+index 0000000..ba8e858
+--- /dev/null
++++ b/libstdc++-v3/config/locale/uclibc/time_members.h
+@@ -0,0 +1,68 @@
++// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
++
++// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING. If not, write to the Free
++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction. Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License. This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++//
++// ISO C++ 14882: 22.2.5.1.2 - time_get functions
++// ISO C++ 14882: 22.2.5.3.2 - time_put functions
++//
++
++// Written by Benjamin Kosnik <bkoz@redhat.com>
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(size_t __refs)
++ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(_S_get_c_name())
++ { _M_initialize_timepunct(); }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs)
++ : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(_S_get_c_name())
++ { _M_initialize_timepunct(); }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
++ size_t __refs)
++ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
++ _M_name_timepunct(__s)
++ {
++ char* __tmp = new char[std::strlen(__s) + 1];
++ std::strcpy(__tmp, __s);
++ _M_name_timepunct = __tmp;
++ _M_initialize_timepunct(__cloc);
++ }
++
++ template<typename _CharT>
++ __timepunct<_CharT>::~__timepunct()
++ {
++ if (_M_name_timepunct != _S_get_c_name())
++ delete [] _M_name_timepunct;
++ delete _M_data;
++ _S_destroy_c_locale(_M_c_locale_timepunct);
++ }
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index 41797a9..8a5481c 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15830,6 +15830,9 @@ fi
+ # Default to "generic".
+ if test $enable_clocale_flag = auto; then
+ case ${target_os} in
++ *-uclibc*)
++ enable_clocale_flag=uclibc
++ ;;
+ linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
+ enable_clocale_flag=gnu
+ ;;
+@@ -16108,6 +16111,78 @@ $as_echo "newlib" >&6; }
+ CTIME_CC=config/locale/generic/time_members.cc
+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
+ ;;
++ uclibc)
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: uclibc" >&5
++$as_echo "uclibc" >&6; }
++
++ # Declare intention to use gettext, and add support for specific
++ # languages.
++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
++ ALL_LINGUAS="de fr"
++
++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
++ # Extract the first word of "msgfmt", so it can be a program name with args.
++set dummy msgfmt; ac_word=$2
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
++$as_echo_n "checking for $ac_word... " >&6; }
++if test "${ac_cv_prog_check_msgfmt+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test -n "$check_msgfmt"; then
++ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++ IFS=$as_save_IFS
++ test -z "$as_dir" && as_dir=.
++ for ac_exec_ext in '' $ac_executable_extensions; do
++ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
++ ac_cv_prog_check_msgfmt="yes"
++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
++ break 2
++ fi
++done
++ done
++IFS=$as_save_IFS
++
++ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
++fi
++fi
++check_msgfmt=$ac_cv_prog_check_msgfmt
++if test -n "$check_msgfmt"; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $check_msgfmt" >&5
++$as_echo "$check_msgfmt" >&6; }
++else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++
++
++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
++ USE_NLS=yes
++ fi
++ # Export the build objects.
++ for ling in $ALL_LINGUAS; do \
++ glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
++ glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
++ done
++
++
++
++ CLOCALE_H=config/locale/uclibc/c_locale.h
++ CLOCALE_CC=config/locale/uclibc/c_locale.cc
++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc
++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc
++ CMESSAGES_H=config/locale/uclibc/messages_members.h
++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc
++ CMONEY_CC=config/locale/uclibc/monetary_members.cc
++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
++ CTIME_H=config/locale/uclibc/time_members.h
++ CTIME_CC=config/locale/uclibc/time_members.cc
++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
++ ;;
+ esac
+
+ # This is where the testsuite looks for locale catalogs, using the
+diff --git a/libstdc++-v3/include/c_compatibility/wchar.h b/libstdc++-v3/include/c_compatibility/wchar.h
+index 55a0b52..7d8bb15 100644
+--- a/libstdc++-v3/include/c_compatibility/wchar.h
++++ b/libstdc++-v3/include/c_compatibility/wchar.h
+@@ -101,7 +101,9 @@ using std::wmemcmp;
+ using std::wmemcpy;
+ using std::wmemmove;
+ using std::wmemset;
++#if _GLIBCXX_HAVE_WCSFTIME
+ using std::wcsftime;
++#endif
+
+ #if _GLIBCXX_USE_C99_WCHAR
+ using std::wcstold;
+diff --git a/libstdc++-v3/include/c_std/cwchar b/libstdc++-v3/include/c_std/cwchar
+index dc4cef02..256d126 100644
+--- a/libstdc++-v3/include/c_std/cwchar
++++ b/libstdc++-v3/include/c_std/cwchar
+@@ -175,7 +175,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ using ::wcscoll;
+ using ::wcscpy;
+ using ::wcscspn;
++#if _GLIBCXX_HAVE_WCSFTIME
+ using ::wcsftime;
++#endif
+ using ::wcslen;
+ using ::wcsncat;
+ using ::wcsncmp;
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0005-uclibc-locale-no__x.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0005-uclibc-locale-no__x.patch
new file mode 100644
index 000000000..3275016e7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0005-uclibc-locale-no__x.patch
@@ -0,0 +1,257 @@
+From c01c14e8e9be382ecd4121ee70f5003b4cb0f904 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:42:36 +0400
+Subject: [PATCH 05/46] uclibc-locale-no__x
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ .../config/locale/uclibc/c++locale_internal.h | 45 ++++++++++++++++++++++
+ libstdc++-v3/config/locale/uclibc/c_locale.cc | 14 -------
+ libstdc++-v3/config/locale/uclibc/c_locale.h | 1 +
+ .../config/locale/uclibc/collate_members.cc | 7 ----
+ libstdc++-v3/config/locale/uclibc/ctype_members.cc | 7 ----
+ .../config/locale/uclibc/messages_members.cc | 7 +---
+ .../config/locale/uclibc/messages_members.h | 18 ++++-----
+ .../config/locale/uclibc/monetary_members.cc | 4 --
+ .../config/locale/uclibc/numeric_members.cc | 3 --
+ libstdc++-v3/config/locale/uclibc/time_members.cc | 3 --
+ 10 files changed, 55 insertions(+), 54 deletions(-)
+
+diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+index 2ae3e4a..e74fddf 100644
+--- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
++++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+@@ -60,4 +60,49 @@ extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
+ extern "C" __typeof(wctype_l) __wctype_l;
+ #endif
+
++# define __nl_langinfo_l nl_langinfo_l
++# define __strcoll_l strcoll_l
++# define __strftime_l strftime_l
++# define __strtod_l strtod_l
++# define __strtof_l strtof_l
++# define __strtold_l strtold_l
++# define __strxfrm_l strxfrm_l
++# define __newlocale newlocale
++# define __freelocale freelocale
++# define __duplocale duplocale
++# define __uselocale uselocale
++
++# ifdef _GLIBCXX_USE_WCHAR_T
++# define __iswctype_l iswctype_l
++# define __towlower_l towlower_l
++# define __towupper_l towupper_l
++# define __wcscoll_l wcscoll_l
++# define __wcsftime_l wcsftime_l
++# define __wcsxfrm_l wcsxfrm_l
++# define __wctype_l wctype_l
++# endif
++
++#else
++# define __nl_langinfo_l(N, L) nl_langinfo((N))
++# define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
++# define __strtod_l(S, E, L) strtod((S), (E))
++# define __strtof_l(S, E, L) strtof((S), (E))
++# define __strtold_l(S, E, L) strtold((S), (E))
++# define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
++# warning should dummy __newlocale check for C|POSIX ?
++# define __newlocale(a, b, c) NULL
++# define __freelocale(a) ((void)0)
++# define __duplocale(a) __c_locale()
++//# define __uselocale ?
++//
++# ifdef _GLIBCXX_USE_WCHAR_T
++# define __iswctype_l(C, M, L) iswctype((C), (M))
++# define __towlower_l(C, L) towlower((C))
++# define __towupper_l(C, L) towupper((C))
++# define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
++//# define __wcsftime_l(S, M, F, T, L) wcsftime((S), (M), (F), (T))
++# define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
++# define __wctype_l(S, L) wctype((S))
++# endif
++
+ #endif // GLIBC 2.3 and later
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+index 5081dc1..21430d0 100644
+--- a/libstdc++-v3/config/locale/uclibc/c_locale.cc
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+@@ -39,20 +39,6 @@
+ #include <langinfo.h>
+ #include <bits/c++locale_internal.h>
+
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __strtol_l(S, E, B, L) strtol((S), (E), (B))
+-#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B))
+-#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B))
+-#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B))
+-#define __strtof_l(S, E, L) strtof((S), (E))
+-#define __strtod_l(S, E, L) strtod((S), (E))
+-#define __strtold_l(S, E, L) strtold((S), (E))
+-#warning should dummy __newlocale check for C|POSIX ?
+-#define __newlocale(a, b, c) NULL
+-#define __freelocale(a) ((void)0)
+-#define __duplocale(a) __c_locale()
+-#endif
+-
+ namespace std
+ {
+ template<>
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
+index da07c1f..4bca5f1 100644
+--- a/libstdc++-v3/config/locale/uclibc/c_locale.h
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
+@@ -68,6 +68,7 @@ namespace __gnu_cxx
+ {
+ extern "C" __typeof(uselocale) __uselocale;
+ }
++#define __uselocale uselocale
+ #endif
+
+ namespace std
+diff --git a/libstdc++-v3/config/locale/uclibc/collate_members.cc b/libstdc++-v3/config/locale/uclibc/collate_members.cc
+index c2664a7..ec5c329 100644
+--- a/libstdc++-v3/config/locale/uclibc/collate_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/collate_members.cc
+@@ -36,13 +36,6 @@
+ #include <locale>
+ #include <bits/c++locale_internal.h>
+
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __strcoll_l(S1, S2, L) strcoll((S1), (S2))
+-#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N))
+-#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2))
+-#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N))
+-#endif
+-
+ namespace std
+ {
+ // These are basically extensions to char_traits, and perhaps should
+diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+index 7294e3a..7b12861 100644
+--- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+@@ -38,13 +38,6 @@
+ #undef _LIBC
+ #include <bits/c++locale_internal.h>
+
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __wctype_l(S, L) wctype((S))
+-#define __towupper_l(C, L) towupper((C))
+-#define __towlower_l(C, L) towlower((C))
+-#define __iswctype_l(C, M, L) iswctype((C), (M))
+-#endif
+-
+ namespace std
+ {
+ // NB: The other ctype<char> specializations are in src/locale.cc and
+diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.cc b/libstdc++-v3/config/locale/uclibc/messages_members.cc
+index 13594d9..d7693b4 100644
+--- a/libstdc++-v3/config/locale/uclibc/messages_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/messages_members.cc
+@@ -39,13 +39,10 @@
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning fix gettext stuff
+ #endif
+-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
+-extern "C" char *__dcgettext(const char *domainname,
+- const char *msgid, int category);
+ #undef gettext
+-#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
++#define gettext(msgid) dcgettext(NULL, msgid, LC_MESSAGES)
+ #else
+-#undef gettext
+ #define gettext(msgid) (msgid)
+ #endif
+
+diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
+index 1424078..d89da33 100644
+--- a/libstdc++-v3/config/locale/uclibc/messages_members.h
++++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
+@@ -36,15 +36,11 @@
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning fix prototypes for *textdomain funcs
+ #endif
+-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
+-extern "C" char *__textdomain(const char *domainname);
+-extern "C" char *__bindtextdomain(const char *domainname,
+- const char *dirname);
+-#else
+-#undef __textdomain
+-#undef __bindtextdomain
+-#define __textdomain(D) ((void)0)
+-#define __bindtextdomain(D,P) ((void)0)
++#ifndef __UCLIBC_HAS_GETTEXT_AWARENESS__
++#undef textdomain
++#undef bindtextdomain
++#define textdomain(D) ((void)0)
++#define bindtextdomain(D,P) ((void)0)
+ #endif
+
+ // Non-virtual member functions.
+@@ -70,7 +66,7 @@ extern "C" char *__bindtextdomain(const char *domainname,
+ messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
+ const char* __dir) const
+ {
+- __bindtextdomain(__s.c_str(), __dir);
++ bindtextdomain(__s.c_str(), __dir);
+ return this->do_open(__s, __loc);
+ }
+
+@@ -90,7 +86,7 @@ extern "C" char *__bindtextdomain(const char *domainname,
+ {
+ // No error checking is done, assume the catalog exists and can
+ // be used.
+- __textdomain(__s.c_str());
++ textdomain(__s.c_str());
+ return 0;
+ }
+
+diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+index aa52731..2e6f80a 100644
+--- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+@@ -43,10 +43,6 @@
+ #warning tailor for stub locale support
+ #endif
+
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __nl_langinfo_l(N, L) nl_langinfo((N))
+-#endif
+-
+ namespace std
+ {
+ // Construct and return valid pattern consisting of some combination of:
+diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+index 883ec1a..2c70642 100644
+--- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+@@ -41,9 +41,6 @@
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning tailor for stub locale support
+ #endif
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __nl_langinfo_l(N, L) nl_langinfo((N))
+-#endif
+
+ namespace std
+ {
+diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
+index e0707d7..d848ed5 100644
+--- a/libstdc++-v3/config/locale/uclibc/time_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
+@@ -40,9 +40,6 @@
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning tailor for stub locale support
+ #endif
+-#ifndef __UCLIBC_HAS_XLOCALE__
+-#define __nl_langinfo_l(N, L) nl_langinfo((N))
+-#endif
+
+ namespace std
+ {
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0006-uclibc-locale-wchar_fix.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0006-uclibc-locale-wchar_fix.patch
new file mode 100644
index 000000000..e45a482d5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0006-uclibc-locale-wchar_fix.patch
@@ -0,0 +1,68 @@
+From e7a4760fb40008cae33e6fc7dc4cfef6c2fd5f93 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:45:57 +0400
+Subject: [PATCH 06/46] uclibc-locale-wchar_fix
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ libstdc++-v3/config/locale/uclibc/monetary_members.cc | 4 ++--
+ libstdc++-v3/config/locale/uclibc/numeric_members.cc | 13 +++++++++++++
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+index 2e6f80a..31ebb9f 100644
+--- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+@@ -401,7 +401,7 @@ namespace std
+ # ifdef __UCLIBC_HAS_XLOCALE__
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
+-# else
++# elif defined __UCLIBC_HAS_LOCALE__
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
+ # endif
+@@ -556,7 +556,7 @@ namespace std
+ # ifdef __UCLIBC_HAS_XLOCALE__
+ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
+ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
+-# else
++# elif defined __UCLIBC_HAS_LOCALE__
+ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
+ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
+ # endif
+diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+index 2c70642..d5c8961 100644
+--- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+@@ -127,12 +127,25 @@ namespace std
+ {
+ // Named locale.
+ // NB: In the GNU model wchar_t is always 32 bit wide.
++#ifdef __UCLIBC_MJN3_ONLY__
++#warning fix this... should be numeric
++#endif
++#ifdef __UCLIBC__
++# ifdef __UCLIBC_HAS_XLOCALE__
++ _M_data->_M_decimal_point = __cloc->decimal_point_wc;
++ _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
++# elif defined __UCLIBC_HAS_LOCALE__
++ _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
++ _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
++# endif
++#else
+ union { char *__s; wchar_t __w; } __u;
+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
+ _M_data->_M_decimal_point = __u.__w;
+
+ __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
+ _M_data->_M_thousands_sep = __u.__w;
++#endif
+
+ if (_M_data->_M_thousands_sep == L'\0')
+ _M_data->_M_grouping = "";
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0007-uclibc-locale-update.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0007-uclibc-locale-update.patch
new file mode 100644
index 000000000..b73e5914e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0007-uclibc-locale-update.patch
@@ -0,0 +1,542 @@
+From 8d53a38a3038104e6830ecea5e4beadce54457c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:46:58 +0400
+Subject: [PATCH 07/46] uclibc-locale-update
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ .../config/locale/uclibc/c++locale_internal.h | 3 +
+ libstdc++-v3/config/locale/uclibc/c_locale.cc | 74 ++++++++++------------
+ libstdc++-v3/config/locale/uclibc/c_locale.h | 42 ++++++------
+ libstdc++-v3/config/locale/uclibc/ctype_members.cc | 51 +++++++++++----
+ .../config/locale/uclibc/messages_members.h | 12 ++--
+ .../config/locale/uclibc/monetary_members.cc | 34 ++++++----
+ .../config/locale/uclibc/numeric_members.cc | 5 ++
+ libstdc++-v3/config/locale/uclibc/time_members.cc | 18 ++++--
+ libstdc++-v3/config/locale/uclibc/time_members.h | 17 +++--
+ 9 files changed, 158 insertions(+), 98 deletions(-)
+
+diff --git a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+index e74fddf..971a6b4 100644
+--- a/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
++++ b/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
+@@ -31,6 +31,9 @@
+
+ #include <bits/c++config.h>
+ #include <clocale>
++#include <cstdlib>
++#include <cstring>
++#include <cstddef>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning clean this up
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.cc b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+index 21430d0..1b9d8e1 100644
+--- a/libstdc++-v3/config/locale/uclibc/c_locale.cc
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.cc
+@@ -39,23 +39,20 @@
+ #include <langinfo.h>
+ #include <bits/c++locale_internal.h>
+
+-namespace std
+-{
++_GLIBCXX_BEGIN_NAMESPACE(std)
++
+ template<>
+ void
+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- float __f = __strtof_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __f;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ float __f = __strtof_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __f;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ template<>
+@@ -63,16 +60,13 @@ namespace std
+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- double __d = __strtod_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __d;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ double __d = __strtod_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __d;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ template<>
+@@ -80,16 +74,13 @@ namespace std
+ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
+ const __c_locale& __cloc)
+ {
+- if (!(__err & ios_base::failbit))
+- {
+- char* __sanity;
+- errno = 0;
+- long double __ld = __strtold_l(__s, &__sanity, __cloc);
+- if (__sanity != __s && errno != ERANGE)
+- __v = __ld;
+- else
+- __err |= ios_base::failbit;
+- }
++ char* __sanity;
++ errno = 0;
++ long double __ld = __strtold_l(__s, &__sanity, __cloc);
++ if (__sanity != __s && errno != ERANGE)
++ __v = __ld;
++ else
++ __err |= ios_base::failbit;
+ }
+
+ void
+@@ -110,17 +101,18 @@ namespace std
+ void
+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
+ {
+- if (_S_get_c_locale() != __cloc)
++ if (__cloc && _S_get_c_locale() != __cloc)
+ __freelocale(__cloc);
+ }
+
+ __c_locale
+ locale::facet::_S_clone_c_locale(__c_locale& __cloc)
+ { return __duplocale(__cloc); }
+-} // namespace std
+
+-namespace __gnu_cxx
+-{
++_GLIBCXX_END_NAMESPACE
++
++_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
++
+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
+ {
+ "LC_CTYPE",
+@@ -138,9 +130,11 @@ namespace __gnu_cxx
+ "LC_IDENTIFICATION"
+ #endif
+ };
+-}
+
+-namespace std
+-{
++_GLIBCXX_END_NAMESPACE
++
++_GLIBCXX_BEGIN_NAMESPACE(std)
++
+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
+-} // namespace std
++
++_GLIBCXX_END_NAMESPACE
+diff --git a/libstdc++-v3/config/locale/uclibc/c_locale.h b/libstdc++-v3/config/locale/uclibc/c_locale.h
+index 4bca5f1..64a6d46 100644
+--- a/libstdc++-v3/config/locale/uclibc/c_locale.h
++++ b/libstdc++-v3/config/locale/uclibc/c_locale.h
+@@ -39,21 +39,23 @@
+ #pragma GCC system_header
+
+ #include <cstring> // get std::strlen
+-#include <cstdio> // get std::snprintf or std::sprintf
++#include <cstdio> // get std::vsnprintf or std::vsprintf
+ #include <clocale>
+ #include <langinfo.h> // For codecvt
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning fix this
+ #endif
+-#ifdef __UCLIBC_HAS_LOCALE__
++#ifdef _GLIBCXX_USE_ICONV
+ #include <iconv.h> // For codecvt using iconv, iconv_t
+ #endif
+-#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
+-#include <libintl.h> // For messages
++#ifdef HAVE_LIBINTL_H
++#include <libintl.h> // For messages
+ #endif
++#include <cstdarg>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+ #warning what is _GLIBCXX_C_LOCALE_GNU for
++// psm: used in os/gnu-linux/ctype_noninline.h
+ #endif
+ #define _GLIBCXX_C_LOCALE_GNU 1
+
+@@ -78,23 +80,25 @@ namespace std
+ #else
+ typedef int* __c_locale;
+ #endif
+-
+- // Convert numeric value of type _Tv to string and return length of
+- // string. If snprintf is available use it, otherwise fall back to
+- // the unsafe sprintf which, in general, can be dangerous and should
++ // Convert numeric value of type double to string and return length of
++ // string. If vsnprintf is available use it, otherwise fall back to
++ // the unsafe vsprintf which, in general, can be dangerous and should
+ // be avoided.
+- template<typename _Tv>
+- int
+- __convert_from_v(char* __out,
+- const int __size __attribute__ ((__unused__)),
+- const char* __fmt,
+-#ifdef __UCLIBC_HAS_XCLOCALE__
+- _Tv __v, const __c_locale& __cloc, int __prec)
++ inline int
++ __convert_from_v(const __c_locale&
++#ifndef __UCLIBC_HAS_XCLOCALE__
++ __cloc __attribute__ ((__unused__))
++#endif
++ ,
++ char* __out,
++ const int __size,
++ const char* __fmt, ...)
+ {
++ va_list __args;
++#ifdef __UCLIBC_HAS_XCLOCALE__
++
+ __c_locale __old = __gnu_cxx::__uselocale(__cloc);
+ #else
+- _Tv __v, const __c_locale&, int __prec)
+- {
+ # ifdef __UCLIBC_HAS_LOCALE__
+ char* __old = std::setlocale(LC_ALL, NULL);
+ char* __sav = new char[std::strlen(__old) + 1];
+@@ -103,7 +107,9 @@ namespace std
+ # endif
+ #endif
+
+- const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
++ va_start(__args, __fmt);
++ const int __ret = std::vsnprintf(__out, __size, __fmt, __args);
++ va_end(__args);
+
+ #ifdef __UCLIBC_HAS_XCLOCALE__
+ __gnu_cxx::__uselocale(__old);
+diff --git a/libstdc++-v3/config/locale/uclibc/ctype_members.cc b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+index 7b12861..13e011d 100644
+--- a/libstdc++-v3/config/locale/uclibc/ctype_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/ctype_members.cc
+@@ -33,16 +33,20 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+-namespace std
+-{
++_GLIBCXX_BEGIN_NAMESPACE(std)
++
+ // NB: The other ctype<char> specializations are in src/locale.cc and
+ // various /config/os/* files.
+- template<>
+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
+ : ctype<char>(0, false, __refs)
+ {
+@@ -57,6 +61,8 @@ namespace std
+ #endif
+ }
+ }
++ ctype_byname<char>::~ctype_byname()
++ { }
+
+ #ifdef _GLIBCXX_USE_WCHAR_T
+ ctype<wchar_t>::__wmask_type
+@@ -138,17 +144,33 @@ namespace std
+ ctype<wchar_t>::
+ do_is(mask __m, wchar_t __c) const
+ {
+- // Highest bitmask in ctype_base == 10, but extra in "C"
+- // library for blank.
++ // The case of __m == ctype_base::space is particularly important,
++ // due to its use in many istream functions. Therefore we deal with
++ // it first, exploiting the knowledge that on GNU systems _M_bit[5]
++ // is the mask corresponding to ctype_base::space. NB: an encoding
++ // change would not affect correctness!
++
+ bool __ret = false;
+- const size_t __bitmasksize = 11;
+- for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+- if (__m & _M_bit[__bitcur]
+- && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
+- {
+- __ret = true;
+- break;
+- }
++ if (__m == _M_bit[5])
++ __ret = __iswctype_l(__c, _M_wmask[5], _M_c_locale_ctype);
++ else
++ {
++ // Highest bitmask in ctype_base == 10, but extra in "C"
++ // library for blank.
++ const size_t __bitmasksize = 11;
++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
++ if (__m & _M_bit[__bitcur])
++ {
++ if (__iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
++ {
++ __ret = true;
++ break;
++ }
++ else if (__m == _M_bit[__bitcur])
++ break;
++ }
++ }
++
+ return __ret;
+ }
+
+@@ -290,4 +312,5 @@ namespace std
+ #endif
+ }
+ #endif // _GLIBCXX_USE_WCHAR_T
+-}
++
++_GLIBCXX_END_NAMESPACE
+diff --git a/libstdc++-v3/config/locale/uclibc/messages_members.h b/libstdc++-v3/config/locale/uclibc/messages_members.h
+index d89da33..067657a 100644
+--- a/libstdc++-v3/config/locale/uclibc/messages_members.h
++++ b/libstdc++-v3/config/locale/uclibc/messages_members.h
+@@ -53,12 +53,16 @@
+ template<typename _CharT>
+ messages<_CharT>::messages(__c_locale __cloc, const char* __s,
+ size_t __refs)
+- : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
+- _M_name_messages(__s)
++ : facet(__refs), _M_c_locale_messages(NULL),
++ _M_name_messages(NULL)
+ {
+- char* __tmp = new char[std::strlen(__s) + 1];
+- std::strcpy(__tmp, __s);
++ const size_t __len = std::strlen(__s) + 1;
++ char* __tmp = new char[__len];
++ std::memcpy(__tmp, __s, __len);
+ _M_name_messages = __tmp;
++
++ // Last to avoid leaking memory if new throws.
++ _M_c_locale_messages = _S_clone_c_locale(__cloc);
+ }
+
+ template<typename _CharT>
+diff --git a/libstdc++-v3/config/locale/uclibc/monetary_members.cc b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+index 31ebb9f..7679b9c 100644
+--- a/libstdc++-v3/config/locale/uclibc/monetary_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/monetary_members.cc
+@@ -33,9 +33,14 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+@@ -206,7 +211,7 @@ namespace std
+ }
+ break;
+ default:
+- ;
++ __ret = pattern();
+ }
+ return __ret;
+ }
+@@ -390,7 +395,9 @@ namespace std
+ __c_locale __old = __uselocale(__cloc);
+ #else
+ // Switch to named locale so that mbsrtowcs will work.
+- char* __old = strdup(setlocale(LC_ALL, NULL));
++ char* __old = setlocale(LC_ALL, NULL);
++ const size_t __llen = strlen(__old) + 1;
++ char* __sav = new char[__llen];
+ setlocale(LC_ALL, __name);
+ #endif
+
+@@ -477,8 +484,8 @@ namespace std
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ __uselocale(__old);
+ #else
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ __throw_exception_again;
+ }
+@@ -498,8 +505,8 @@ namespace std
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ __uselocale(__old);
+ #else
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ }
+ }
+@@ -545,8 +552,11 @@ namespace std
+ __c_locale __old = __uselocale(__cloc);
+ #else
+ // Switch to named locale so that mbsrtowcs will work.
+- char* __old = strdup(setlocale(LC_ALL, NULL));
+- setlocale(LC_ALL, __name);
++ char* __old = setlocale(LC_ALL, NULL);
++ const size_t __llen = strlen(__old) + 1;
++ char* __sav = new char[__llen];
++ memcpy(__sav, __old, __llen);
++ setlocale(LC_ALL, __name);
+ #endif
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+@@ -633,8 +643,8 @@ namespace std
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ __uselocale(__old);
+ #else
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ __throw_exception_again;
+ }
+@@ -653,8 +663,8 @@ namespace std
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ __uselocale(__old);
+ #else
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ }
+ }
+diff --git a/libstdc++-v3/config/locale/uclibc/numeric_members.cc b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+index d5c8961..8ae8969 100644
+--- a/libstdc++-v3/config/locale/uclibc/numeric_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/numeric_members.cc
+@@ -33,9 +33,14 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <features.h>
++#ifdef __UCLIBC_HAS_LOCALE__
+ #define _LIBC
+ #include <locale>
+ #undef _LIBC
++#else
++#include <locale>
++#endif
+ #include <bits/c++locale_internal.h>
+
+ #ifdef __UCLIBC_MJN3_ONLY__
+diff --git a/libstdc++-v3/config/locale/uclibc/time_members.cc b/libstdc++-v3/config/locale/uclibc/time_members.cc
+index d848ed5..f24d53e 100644
+--- a/libstdc++-v3/config/locale/uclibc/time_members.cc
++++ b/libstdc++-v3/config/locale/uclibc/time_members.cc
+@@ -53,11 +53,14 @@ namespace std
+ const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
+ _M_c_locale_timepunct);
+ #else
+- char* __old = strdup(setlocale(LC_ALL, NULL));
++ char* __old = setlocale(LC_ALL, NULL);
++ const size_t __llen = strlen(__old) + 1;
++ char* __sav = new char[__llen];
++ memcpy(__sav, __old, __llen);
+ setlocale(LC_ALL, _M_name_timepunct);
+ const size_t __len = strftime(__s, __maxlen, __format, __tm);
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ // Make sure __s is null terminated.
+ if (__len == 0)
+@@ -207,11 +210,14 @@ namespace std
+ const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
+ _M_c_locale_timepunct);
+ #else
+- char* __old = strdup(setlocale(LC_ALL, NULL));
++ char* __old = setlocale(LC_ALL, NULL);
++ const size_t __llen = strlen(__old) + 1;
++ char* __sav = new char[__llen];
++ memcpy(__sav, __old, __llen);
+ setlocale(LC_ALL, _M_name_timepunct);
+ const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
+- setlocale(LC_ALL, __old);
+- free(__old);
++ setlocale(LC_ALL, __sav);
++ delete [] __sav;
+ #endif
+ // Make sure __s is null terminated.
+ if (__len == 0)
+diff --git a/libstdc++-v3/config/locale/uclibc/time_members.h b/libstdc++-v3/config/locale/uclibc/time_members.h
+index ba8e858..1665dde 100644
+--- a/libstdc++-v3/config/locale/uclibc/time_members.h
++++ b/libstdc++-v3/config/locale/uclibc/time_members.h
+@@ -50,12 +50,21 @@
+ __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
+ size_t __refs)
+ : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL),
+- _M_name_timepunct(__s)
++ _M_name_timepunct(NULL)
+ {
+- char* __tmp = new char[std::strlen(__s) + 1];
+- std::strcpy(__tmp, __s);
++ const size_t __len = std::strlen(__s) + 1;
++ char* __tmp = new char[__len];
++ std::memcpy(__tmp, __s, __len);
+ _M_name_timepunct = __tmp;
+- _M_initialize_timepunct(__cloc);
++
++ try
++ { _M_initialize_timepunct(__cloc); }
++ catch(...)
++ {
++ delete [] _M_name_timepunct;
++ __throw_exception_again;
++ }
++
+ }
+
+ template<typename _CharT>
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0008-missing-execinfo_h.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0008-missing-execinfo_h.patch
new file mode 100644
index 000000000..01e7c9549
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0008-missing-execinfo_h.patch
@@ -0,0 +1,28 @@
+From 6dde3da24ef4b9b357bca670d8551cab3fdda843 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:48:10 +0400
+Subject: [PATCH 08/46] missing-execinfo_h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ boehm-gc/include/gc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h
+index 6b38f2d..fca98ff 100644
+--- a/boehm-gc/include/gc.h
++++ b/boehm-gc/include/gc.h
+@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb));
+ #if defined(__linux__) || defined(__GLIBC__)
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+- && !defined(__ia64__)
++ && !defined(__ia64__) && !defined(__UCLIBC__)
+ # ifndef GC_HAVE_BUILTIN_BACKTRACE
+ # define GC_HAVE_BUILTIN_BACKTRACE
+ # endif
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0009-c99-snprintf.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0009-c99-snprintf.patch
new file mode 100644
index 000000000..d62341ac6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0009-c99-snprintf.patch
@@ -0,0 +1,28 @@
+From b794f1f1c1c7c06f3f0d78cf76c4fb90c2ab8dfb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:49:03 +0400
+Subject: [PATCH 09/46] c99-snprintf
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ libstdc++-v3/include/c_std/cstdio | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libstdc++-v3/include/c_std/cstdio b/libstdc++-v3/include/c_std/cstdio
+index a4119ba..8396f43 100644
+--- a/libstdc++-v3/include/c_std/cstdio
++++ b/libstdc++-v3/include/c_std/cstdio
+@@ -144,7 +144,7 @@ namespace std
+ using ::vsprintf;
+ } // namespace std
+
+-#if _GLIBCXX_USE_C99_STDIO
++#if _GLIBCXX_USE_C99_STDIO || defined(__UCLIBC__)
+
+ #undef snprintf
+ #undef vfscanf
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0010-gcc-poison-system-directories.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0010-gcc-poison-system-directories.patch
new file mode 100644
index 000000000..ac4cf442d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0010-gcc-poison-system-directories.patch
@@ -0,0 +1,192 @@
+From d76250323dad69212c958e4857a98d99ab51a39e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 08:59:00 +0400
+Subject: [PATCH 10/46] gcc: poison-system-directories
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [distribution: codesourcery]
+---
+ gcc/common.opt | 4 ++++
+ gcc/config.in | 6 ++++++
+ gcc/configure | 16 ++++++++++++++++
+ gcc/configure.ac | 10 ++++++++++
+ gcc/doc/invoke.texi | 9 +++++++++
+ gcc/gcc.c | 2 ++
+ gcc/incpath.c | 19 +++++++++++++++++++
+ 7 files changed, 66 insertions(+)
+
+diff --git a/gcc/common.opt b/gcc/common.opt
+index 67048db..733185c 100644
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -659,6 +659,10 @@ Wreturn-local-addr
+ Common Var(warn_return_local_addr) Init(1) Warning
+ Warn about returning a pointer/reference to a local or temporary variable.
+
++Wpoison-system-directories
++Common Var(flag_poison_system_directories) Init(1) Warning
++Warn for -I and -L options using system directories if cross compiling
++
+ Wshadow
+ Common Var(warn_shadow) Warning
+ Warn when one local variable shadows another.
+diff --git a/gcc/config.in b/gcc/config.in
+index 115cb61..105b30f 100644
+--- a/gcc/config.in
++++ b/gcc/config.in
+@@ -187,6 +187,12 @@
+ #endif
+
+
++/* Define to warn for use of native system header directories */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++#endif
++
++
+ /* Define if you want all operations on RTL (the basic data structure of the
+ optimizer and back end) to be checked for dynamic type safety at runtime.
+ This is quite expensive. */
+diff --git a/gcc/configure b/gcc/configure
+index 1c6e340..8f83152 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -942,6 +942,7 @@ with_system_zlib
+ enable_maintainer_mode
+ enable_link_mutex
+ enable_version_specific_runtime_libs
++enable_poison_system_directories
+ enable_plugin
+ enable_host_shared
+ enable_libquadmath_support
+@@ -1681,6 +1682,8 @@ Optional Features:
+ --enable-version-specific-runtime-libs
+ specify that runtime libraries should be installed
+ in a compiler-specific directory
++ --enable-poison-system-directories
++ warn for use of native system header directories
+ --enable-plugin enable plugin support
+ --enable-host-shared build host code as shared libraries
+ --disable-libquadmath-support
+@@ -28908,6 +28911,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+ fi
+
+
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++ enableval=$enable_poison_system_directories;
++else
++ enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
++
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
++
+ # Substitute configuration variables
+
+
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 6c1dcd9..0fccaef 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -5861,6 +5861,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
+ [specify that runtime libraries should be
+ installed in a compiler-specific directory])])
+
++AC_ARG_ENABLE([poison-system-directories],
++ AS_HELP_STRING([--enable-poison-system-directories],
++ [warn for use of native system header directories]),,
++ [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++ [1],
++ [Define to warn for use of native system header directories])
++fi
++
+ # Substitute configuration variables
+ AC_SUBST(subdirs)
+ AC_SUBST(srcdir)
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 821f8fd..8bb49e7 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -284,6 +284,7 @@ Objective-C and Objective-C++ Dialects}.
+ -Wparentheses -Wno-pedantic-ms-format @gol
+ -Wplacement-new -Wplacement-new=@var{n} @gol
+ -Wpointer-arith -Wno-pointer-to-int-cast @gol
++-Wno-poison-system-directories @gol
+ -Wno-pragmas -Wredundant-decls -Wno-return-local-addr @gol
+ -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol
+ -Wshift-overflow -Wshift-overflow=@var{n} @gol
+@@ -4723,6 +4724,14 @@ made up of data only and thus requires no special treatment. But, for
+ most targets, it is made up of code and thus requires the stack to be
+ made executable in order for the program to work properly.
+
++@item -Wno-poison-system-directories
++@opindex Wno-poison-system-directories
++Do not warn for @option{-I} or @option{-L} options using system
++directories such as @file{/usr/include} when cross compiling. This
++option is intended for use in chroot environments when such
++directories contain the correct headers and libraries for the target
++system rather than the host.
++
+ @item -Wfloat-equal
+ @opindex Wfloat-equal
+ @opindex Wno-float-equal
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 1af5920..4cfef7f 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -1017,6 +1017,8 @@ proper position among the other output files. */
+ "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
+ "%X %{o*} %{e*} %{N} %{n} %{r}\
+ %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \
++ %{Wno-poison-system-directories:--no-poison-system-directories} \
++ %{Werror=poison-system-directories:--error-poison-system-directories} \
+ %{static:} %{L*} %(mfwrap) %(link_libgcc) " \
+ VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \
+ %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
+diff --git a/gcc/incpath.c b/gcc/incpath.c
+index ea40f4a..856da41 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -26,6 +26,7 @@
+ #include "intl.h"
+ #include "incpath.h"
+ #include "cppdefault.h"
++#include "diagnostic-core.h"
+
+ /* Microsoft Windows does not natively support inodes.
+ VMS has non-numeric inodes. */
+@@ -381,6 +382,24 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
+ }
+ fprintf (stderr, _("End of search list.\n"));
+ }
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++ if (flag_poison_system_directories)
++ {
++ struct cpp_dir *p;
++
++ for (p = heads[QUOTE]; p; p = p->next)
++ {
++ if ((!strncmp (p->name, "/usr/include", 12))
++ || (!strncmp (p->name, "/usr/local/include", 18))
++ || (!strncmp (p->name, "/usr/X11R6/include", 18)))
++ warning (OPT_Wpoison_system_directories,
++ "include location \"%s\" is unsafe for "
++ "cross-compilation",
++ p->name);
++ }
++ }
++#endif
+ }
+
+ /* Use given -I paths for #include "..." but not #include <...>, and
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0011-gcc-poison-dir-extend.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0011-gcc-poison-dir-extend.patch
new file mode 100644
index 000000000..a1736aea1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0011-gcc-poison-dir-extend.patch
@@ -0,0 +1,39 @@
+From a1c24b59def393e43cd50b6768604a212c788ed3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:00:34 +0400
+Subject: [PATCH 11/46] gcc-poison-dir-extend
+
+Add /sw/include and /opt/include based on the original
+zecke-no-host-includes.patch patch. The original patch checked for
+/usr/include, /sw/include and /opt/include and then triggered a failure and
+aborted.
+
+Instead, we add the two missing items to the current scan. If the user
+wants this to be a failure, they can add "-Werror=poison-system-directories".
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/incpath.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/incpath.c b/gcc/incpath.c
+index 856da41..d2fc82c 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -392,7 +392,9 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
+ {
+ if ((!strncmp (p->name, "/usr/include", 12))
+ || (!strncmp (p->name, "/usr/local/include", 18))
+- || (!strncmp (p->name, "/usr/X11R6/include", 18)))
++ || (!strncmp (p->name, "/usr/X11R6/include", 18))
++ || (!strncmp (p->name, "/sw/include", 11))
++ || (!strncmp (p->name, "/opt/include", 12)))
+ warning (OPT_Wpoison_system_directories,
+ "include location \"%s\" is unsafe for "
+ "cross-compilation",
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
new file mode 100644
index 000000000..939b0705f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0012-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
@@ -0,0 +1,73 @@
+From 00ef5f0f2a8d3b33aeb1e55c0d23439f4dd495af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:08:31 +0400
+Subject: [PATCH 12/46] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
+
+Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
+
+This alternative patch is better because it lets you just use CFLAGS_FOR_TARGET to set the compilation flags for libgcc. Since bootstrapped target libraries are never compiled with the native compiler, it makes little sense to use different flags for stage1 and later stages. And it also makes little sense to use a different variable than CFLAGS_FOR_TARGET.
+
+Other changes I had to do include:
+
+- moving the creation of default CFLAGS_FOR_TARGET from Makefile.am to configure.ac, because otherwise the BOOT_CFLAGS are substituted into CFLAGS_FOR_TARGET (which is "-O2 -g $(CFLAGS)") via $(CFLAGS). It is also cleaner this way though.
+
+- passing the right CFLAGS to configure scripts as exported environment variables
+
+I also stopped passing LIBCFLAGS to configure scripts since they are unused in the whole src tree. And I updated the documentation as H-P reminded me to do.
+
+Bootstrapped/regtested i686-pc-linux-gnu, will commit to 4.4 shortly. Ok for 4.3?
+
+Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ configure | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/configure b/configure
+index bfadc33..755d382 100755
+--- a/configure
++++ b/configure
+@@ -6819,6 +6819,38 @@ fi
+
+
+
++# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
++# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
++# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
++# We want to ensure that TARGET libraries (which we know are built with
++# gcc) are built with "-O2 -g", so include those options when setting
++# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
++if test "x$CFLAGS_FOR_TARGET" = x; then
++ CFLAGS_FOR_TARGET=$CFLAGS
++ case " $CFLAGS " in
++ *" -O2 "*) ;;
++ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
++ esac
++ case " $CFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
++ esac
++fi
++
++
++if test "x$CXXFLAGS_FOR_TARGET" = x; then
++ CXXFLAGS_FOR_TARGET=$CXXFLAGS
++ case " $CXXFLAGS " in
++ *" -O2 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
++ esac
++ case " $CXXFLAGS " in
++ *" -g "* | *" -g3 "*) ;;
++ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
++ esac
++fi
++
++
+ # Handle --with-headers=XXX. If the value is not "yes", the contents of
+ # the named directory are copied to $(tooldir)/sys-include.
+ if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0013-64-bit-multilib-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0013-64-bit-multilib-hack.patch
new file mode 100644
index 000000000..e31cde431
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0013-64-bit-multilib-hack.patch
@@ -0,0 +1,85 @@
+From 7fc7a070ac53a55950a1eac76f02877d4106b4b3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:10:06 +0400
+Subject: [PATCH 13/46] 64-bit multilib hack.
+
+GCC has internal multilib handling code but it assumes a very specific rigid directory
+layout. The build system implementation of multilib layout is very generic and allows
+complete customisation of the library directories.
+
+This patch is a partial solution to allow any custom directories to be passed into gcc
+and handled correctly. It forces gcc to use the base_libdir (which is the current
+directory, "."). We need to do this for each multilib that is configured as we don't
+know which compiler options may be being passed into the compiler. Since we have a compiler
+per mulitlib at this point that isn't an issue.
+
+The one problem is the target compiler is only going to work for the default multlilib at
+this point. Ideally we'd figure out which multilibs were being enabled with which paths
+and be able to patch these entries with a complete set of correct paths but this we
+don't have such code at this point. This is something the target gcc recipe should do
+and override these platform defaults in its build config.
+
+RP 15/8/11
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/config/i386/t-linux64 | 6 ++----
+ gcc/config/mips/t-linux64 | 10 +++-------
+ gcc/config/rs6000/t-linux64 | 5 ++---
+ 3 files changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
+index c0cc8a3..365a5d6 100644
+--- a/gcc/config/i386/t-linux64
++++ b/gcc/config/i386/t-linux64
+@@ -32,7 +32,5 @@
+ #
+ comma=,
+ MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
+-MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
+-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
+-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
+-MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
++MULTILIB_DIRNAMES = . .
++MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
+diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
+index 16c8adf..b932ace 100644
+--- a/gcc/config/mips/t-linux64
++++ b/gcc/config/mips/t-linux64
+@@ -17,10 +17,6 @@
+ # <http://www.gnu.org/licenses/>.
+
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+-MULTILIB_DIRNAMES = n32 32 64
+-MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
+-MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
+-MULTILIB_OSDIRNAMES = \
+- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
+- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
+- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
++MULTILIB_DIRNAMES = . . .
++MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
++
+diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
+index fa7550b..9b5d9ef 100644
+--- a/gcc/config/rs6000/t-linux64
++++ b/gcc/config/rs6000/t-linux64
+@@ -26,10 +26,9 @@
+ # MULTILIB_OSDIRNAMES according to what is found on the target.
+
+ MULTILIB_OPTIONS := m64/m32
+-MULTILIB_DIRNAMES := 64 32
++MULTILIB_DIRNAMES := . .
+ MULTILIB_EXTRA_OPTS :=
+-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
+-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
++MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
+
+ rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
+ $(COMPILE) $<
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0014-optional-libstdc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0014-optional-libstdc.patch
new file mode 100644
index 000000000..44b0cc7d6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0014-optional-libstdc.patch
@@ -0,0 +1,125 @@
+From 36275f7981bdaf919bbc9b51a7c7fae1e192adb3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:12:56 +0400
+Subject: [PATCH 14/46] optional libstdc
+
+gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++
+will not run correctly since by default the linker will try to link against libstdc++
+which shouldn't exist yet. We need an option to disable -lstdc++
+option whilst leaving -lc, -lgcc and other automatic library dependencies added by gcc
+driver. This patch adds such an option which only disables the -lstdc++.
+
+A "standard" gcc build uses xgcc and hence avoids this. We should ask upstream how to
+do this officially, the likely answer is don't build libstdc++ separately.
+
+RP 29/6/10
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ gcc/c-family/c.opt | 4 ++++
+ gcc/cp/g++spec.c | 1 +
+ gcc/doc/invoke.texi | 32 +++++++++++++++++++++++++++++++-
+ gcc/gcc.c | 1 +
+ 4 files changed, 37 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
+index 4f86876..660da6c 100644
+--- a/gcc/c-family/c.opt
++++ b/gcc/c-family/c.opt
+@@ -1647,6 +1647,10 @@ nostdinc++
+ C++ ObjC++
+ Do not search standard system include directories for C++.
+
++nostdlib++
++Driver
++Do not link standard C++ runtime library
++
+ o
+ C ObjC C++ ObjC++ Joined Separate
+ ; Documented in common.opt
+diff --git a/gcc/cp/g++spec.c b/gcc/cp/g++spec.c
+index 03cbde0..3642540 100644
+--- a/gcc/cp/g++spec.c
++++ b/gcc/cp/g++spec.c
+@@ -137,6 +137,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
+ switch (decoded_options[i].opt_index)
+ {
+ case OPT_nostdlib:
++ case OPT_nostdlib__:
+ case OPT_nodefaultlibs:
+ library = -1;
+ break;
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 8bb49e7..84d68aa 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -207,6 +207,9 @@ in the following sections.
+ -fno-weak -nostdinc++ @gol
+ -fvisibility-inlines-hidden @gol
+ -fvisibility-ms-compat @gol
++-fvtable-verify=@r{[}std@r{|}preinit@r{|}none@r{]} @gol
++-fvtv-counts -fvtv-debug @gol
++-nostdlib++ @gol
+ -fext-numeric-literals @gol
+ -Wabi=@var{n} -Wabi-tag -Wconversion-null -Wctor-dtor-privacy @gol
+ -Wdelete-non-virtual-dtor -Wliteral-suffix -Wmultiple-inheritance @gol
+@@ -470,7 +473,7 @@ Objective-C and Objective-C++ Dialects}.
+ -s -static -static-libgcc -static-libstdc++ @gol
+ -static-libasan -static-libtsan -static-liblsan -static-libubsan @gol
+ -static-libmpx -static-libmpxwrappers @gol
+--shared -shared-libgcc -symbolic @gol
++-shared -shared-libgcc -symbolic -nostdlib++ @gol
+ -T @var{script} -Wl,@var{option} -Xlinker @var{option} @gol
+ -u @var{symbol} -z @var{keyword}}
+
+@@ -10601,6 +10604,33 @@ library subroutines.
+ constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
+ GNU Compiler Collection (GCC) Internals}.)
+
++@item -nostdlib++
++@opindex nostdlib++
++Do not use the standard system C++ runtime libraries when linking.
++Only the libraries you specify will be passed to the linker.
++
++@cindex @option{-lgcc}, use with @option{-nostdlib}
++@cindex @option{-nostdlib} and unresolved references
++@cindex unresolved references and @option{-nostdlib}
++@cindex @option{-lgcc}, use with @option{-nodefaultlibs}
++@cindex @option{-nodefaultlibs} and unresolved references
++@cindex unresolved references and @option{-nodefaultlibs}
++One of the standard libraries bypassed by @option{-nostdlib} and
++@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines
++which GCC uses to overcome shortcomings of particular machines, or special
++needs for some languages.
++(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
++Collection (GCC) Internals},
++for more discussion of @file{libgcc.a}.)
++In most cases, you need @file{libgcc.a} even when you want to avoid
++other standard libraries. In other words, when you specify @option{-nostdlib}
++or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well.
++This ensures that you have no unresolved references to internal GCC
++library subroutines.
++(An example of such an internal subroutine is @code{__main}, used to ensure C++
++constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
++GNU Compiler Collection (GCC) Internals}.)
++
+ @item -pie
+ @opindex pie
+ Produce a position independent executable on targets that support it.
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 4cfef7f..da0b482 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -1028,6 +1028,7 @@ proper position among the other output files. */
+ %(mflib) " STACK_SPLIT_SPEC "\
+ %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} " SANITIZER_SPEC " \
+ %{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
++ %{!nostdlib++:}\
+ %{!nostdlib:%{!nostartfiles:%E}} %{T*} \n%(post_link) }}}}}}"
+ #endif
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
new file mode 100644
index 000000000..6fc7346f6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0015-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch
@@ -0,0 +1,59 @@
+From 9346f6042d8f7f85a75ca2af15f3b8d234985165 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:14:20 +0400
+Subject: [PATCH 15/46] gcc: disable MASK_RELAX_PIC_CALLS bit
+
+The new feature added after 4.3.3
+"http://www.pubbs.net/200909/gcc/94048-patch-add-support-for-rmipsjalr.html"
+will cause cc1plus eat up all the system memory when build webkit-gtk.
+The function mips_get_pic_call_symbol keeps on recursively calling itself.
+Disable this feature to walk aside the bug.
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [configuration]
+---
+ gcc/configure | 7 -------
+ gcc/configure.ac | 7 -------
+ 2 files changed, 14 deletions(-)
+
+diff --git a/gcc/configure b/gcc/configure
+index 8f83152..5e72f17 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -27018,13 +27018,6 @@ $as_echo_n "checking assembler and linker for explicit JALR relocation... " >&6;
+ rm -f conftest.*
+ fi
+ fi
+- if test $gcc_cv_as_ld_jalr_reloc = yes; then
+- if test x$target_cpu_default = x; then
+- target_cpu_default=MASK_RELAX_PIC_CALLS
+- else
+- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
+- fi
+- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_ld_jalr_reloc" >&5
+ $as_echo "$gcc_cv_as_ld_jalr_reloc" >&6; }
+
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 0fccaef..dd8f6fa 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -4522,13 +4522,6 @@ x:
+ rm -f conftest.*
+ fi
+ fi
+- if test $gcc_cv_as_ld_jalr_reloc = yes; then
+- if test x$target_cpu_default = x; then
+- target_cpu_default=MASK_RELAX_PIC_CALLS
+- else
+- target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
+- fi
+- fi
+ AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc)
+
+ AC_CACHE_CHECK([linker for .eh_frame personality relaxation],
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0016-COLLECT_GCC_OPTIONS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0016-COLLECT_GCC_OPTIONS.patch
new file mode 100644
index 000000000..c1548647c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0016-COLLECT_GCC_OPTIONS.patch
@@ -0,0 +1,38 @@
+From 1033bc2d4efc5c301bb822b607a673f5b10cc69f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:16:28 +0400
+Subject: [PATCH 16/46] COLLECT_GCC_OPTIONS
+
+This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to
+invoke collect2.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/gcc.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index da0b482..7ca129f 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -4591,6 +4591,15 @@ set_collect_gcc_options (void)
+ sizeof ("COLLECT_GCC_OPTIONS=") - 1);
+
+ first_time = TRUE;
++#ifdef HAVE_LD_SYSROOT
++ if (target_system_root_changed && target_system_root)
++ {
++ obstack_grow (&collect_obstack, "'--sysroot=", sizeof("'--sysroot=")-1);
++ obstack_grow (&collect_obstack, target_system_root,strlen(target_system_root));
++ obstack_grow (&collect_obstack, "'", 1);
++ first_time = FALSE;
++ }
++#endif
+ for (i = 0; (int) i < n_switches; i++)
+ {
+ const char *const *args;
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
new file mode 100644
index 000000000..0dbabd9e9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0017-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -0,0 +1,96 @@
+From 67123a306880af997a99ae514677c2da4973bd1a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:17:25 +0400
+Subject: [PATCH 17/46] Use the defaults.h in ${B} instead of ${S}, and t-oe in
+ ${B}
+
+Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
+the source can be shared between gcc-cross-initial,
+gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+While compiling gcc-crosssdk-initial-x86_64 on some host, there is
+occasionally failure that test the existance of default.h doesn't
+work, the reason is tm_include_list='** defaults.h' rather than
+tm_include_list='** ./defaults.h'
+
+So we add the test condition for this situation.
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ gcc/Makefile.in | 2 +-
+ gcc/configure | 4 ++--
+ gcc/configure.ac | 4 ++--
+ gcc/mkconfig.sh | 4 ++--
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 6c5adc0..9a1d466 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -517,7 +517,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
+ TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
+
+ xmake_file=@xmake_file@
+-tmake_file=@tmake_file@
++tmake_file=@tmake_file@ ./t-oe
+ TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
+ TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
+ TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
+diff --git a/gcc/configure b/gcc/configure
+index 5e72f17..389b6d5 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -12130,8 +12130,8 @@ for f in $tm_file; do
+ tm_include_list="${tm_include_list} $f"
+ ;;
+ defaults.h )
+- tm_file_list="${tm_file_list} \$(srcdir)/$f"
+- tm_include_list="${tm_include_list} $f"
++ tm_file_list="${tm_file_list} ./$f"
++ tm_include_list="${tm_include_list} ./$f"
+ ;;
+ * )
+ tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index dd8f6fa..91ac800 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1883,8 +1883,8 @@ for f in $tm_file; do
+ tm_include_list="${tm_include_list} $f"
+ ;;
+ defaults.h )
+- tm_file_list="${tm_file_list} \$(srcdir)/$f"
+- tm_include_list="${tm_include_list} $f"
++ tm_file_list="${tm_file_list} ./$f"
++ tm_include_list="${tm_include_list} ./$f"
+ ;;
+ * )
+ tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
+diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
+index 67dfac6..b73e08d 100644
+--- a/gcc/mkconfig.sh
++++ b/gcc/mkconfig.sh
+@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
+ if [ $# -ge 1 ]; then
+ echo '#ifdef IN_GCC' >> ${output}T
+ for file in "$@"; do
+- if test x"$file" = x"defaults.h"; then
++ if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then
+ postpone_defaults_h="yes"
+ else
+ echo "# include \"$file\"" >> ${output}T
+@@ -109,7 +109,7 @@ esac
+
+ # If we postponed including defaults.h, add the #include now.
+ if test x"$postpone_defaults_h" = x"yes"; then
+- echo "# include \"defaults.h\"" >> ${output}T
++ echo "# include \"./defaults.h\"" >> ${output}T
+ fi
+
+ # Add multiple inclusion protection guard, part two.
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0018-fortran-cross-compile-hack.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0018-fortran-cross-compile-hack.patch
new file mode 100644
index 000000000..b43d89ea8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0018-fortran-cross-compile-hack.patch
@@ -0,0 +1,46 @@
+From e360dc3e0f1e0b9b001ef722fcf66f8120a03dbc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:20:01 +0400
+Subject: [PATCH 18/46] fortran cross-compile hack.
+
+* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
+used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
+directory.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ libgfortran/configure | 2 +-
+ libgfortran/configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libgfortran/configure b/libgfortran/configure
+index f746f6f..b4f3278 100755
+--- a/libgfortran/configure
++++ b/libgfortran/configure
+@@ -12734,7 +12734,7 @@ esac
+
+ # We need gfortran to compile parts of the library
+ #AC_PROG_FC(gfortran)
+-FC="$GFORTRAN"
++#FC="$GFORTRAN"
+ ac_ext=${ac_fc_srcext-f}
+ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
+ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
+diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
+index 8f377bb..67710b5 100644
+--- a/libgfortran/configure.ac
++++ b/libgfortran/configure.ac
+@@ -240,7 +240,7 @@ AC_SUBST(enable_static)
+
+ # We need gfortran to compile parts of the library
+ #AC_PROG_FC(gfortran)
+-FC="$GFORTRAN"
++#FC="$GFORTRAN"
+ AC_PROG_FC(gfortran)
+
+ # extra LD Flags which are required for targets
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0019-cpp-honor-sysroot.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0019-cpp-honor-sysroot.patch
new file mode 100644
index 000000000..417a5ede4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0019-cpp-honor-sysroot.patch
@@ -0,0 +1,54 @@
+From 98d9c0c1b5552294b2130f7304bfb522da323442 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:22:00 +0400
+Subject: [PATCH 19/46] cpp: honor sysroot.
+
+Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
+preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
+rather than the --sysroot option specified on the commandline. If access to that directory is
+permission denied (unreadable), gcc will error.
+
+This happens when ccache is in use due to the fact it uses preprocessed source files.
+
+The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix,
+-isystem, -isysroot happen and the correct sysroot is used.
+
+[YOCTO #2074]
+
+RP 2012/04/13
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/cp/lang-specs.h | 2 +-
+ gcc/gcc.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
+index 9707fac..fe487a2 100644
+--- a/gcc/cp/lang-specs.h
++++ b/gcc/cp/lang-specs.h
+@@ -64,5 +64,5 @@ along with GCC; see the file COPYING3. If not see
+ {".ii", "@c++-cpp-output", 0, 0, 0},
+ {"@c++-cpp-output",
+ "%{!M:%{!MM:%{!E:\
+- cc1plus -fpreprocessed %i %(cc1_options) %2\
++ cc1plus -fpreprocessed %i %I %(cc1_options) %2\
+ %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 7ca129f..04fa81d 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -1329,7 +1329,7 @@ static const struct compiler default_compilers[] =
+ %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
+ {".i", "@cpp-output", 0, 0, 0},
+ {"@cpp-output",
+- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
+ {".s", "@assembler", 0, 0, 0},
+ {"@assembler",
+ "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0020-MIPS64-Default-to-N64-ABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0020-MIPS64-Default-to-N64-ABI.patch
new file mode 100644
index 000000000..ba612f545
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0020-MIPS64-Default-to-N64-ABI.patch
@@ -0,0 +1,57 @@
+From 1f15447fbcf65142627af8a9694761534da8d0d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:23:08 +0400
+Subject: [PATCH 20/46] MIPS64: Default to N64 ABI
+
+MIPS64 defaults to n32 ABI, this patch makes it
+so that it defaults to N64 ABI
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [OE config specific]
+---
+ gcc/config.gcc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index f66e48c..9c6d156 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -2065,29 +2065,29 @@ mips*-*-linux*) # Linux MIPS, either endian.
+ default_mips_arch=mips32
+ ;;
+ mips64el-st-linux-gnu)
+- default_mips_abi=n32
++ default_mips_abi=64
+ tm_file="${tm_file} mips/st.h"
+ tmake_file="${tmake_file} mips/t-st"
+ enable_mips_multilibs="yes"
+ ;;
+ mips64octeon*-*-linux*)
+- default_mips_abi=n32
++ default_mips_abi=64
+ tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
+ target_cpu_default=MASK_SOFT_FLOAT_ABI
+ enable_mips_multilibs="yes"
+ ;;
+ mipsisa64r6*-*-linux*)
+- default_mips_abi=n32
++ default_mips_abi=64
+ default_mips_arch=mips64r6
+ enable_mips_multilibs="yes"
+ ;;
+ mipsisa64r2*-*-linux*)
+- default_mips_abi=n32
++ default_mips_abi=64
+ default_mips_arch=mips64r2
+ enable_mips_multilibs="yes"
+ ;;
+ mips64*-*-linux* | mipsisa64*-*-linux*)
+- default_mips_abi=n32
++ default_mips_abi=64
+ enable_mips_multilibs="yes"
+ ;;
+ esac
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0021-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0021-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
new file mode 100644
index 000000000..6675ce34f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0021-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -0,0 +1,234 @@
+From 9f73c8918b63e6a1c9b79384fac411d1056eec1c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:24:50 +0400
+Subject: [PATCH 21/46] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
+ relative to SYSTEMLIBS_DIR
+
+This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
+relative to SYSTEMLIBS_DIR which can be set in generated headers
+This breaks the assumption of hardcoded multilib in gcc
+Change is only for the supported architectures in OE including
+SH, sparc, alpha for possible future support (if any)
+
+Removes the do_headerfix task in metadata
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Inappropriate [OE configuration]
+---
+ gcc/config/alpha/linux-elf.h | 4 ++--
+ gcc/config/arm/linux-eabi.h | 4 ++--
+ gcc/config/arm/linux-elf.h | 2 +-
+ gcc/config/i386/linux.h | 2 +-
+ gcc/config/i386/linux64.h | 6 +++---
+ gcc/config/linux.h | 8 ++++----
+ gcc/config/mips/linux.h | 12 ++++++------
+ gcc/config/rs6000/linux64.h | 16 ++++++----------
+ gcc/config/sh/linux.h | 2 +-
+ gcc/config/sparc/linux.h | 2 +-
+ gcc/config/sparc/linux64.h | 4 ++--
+ 11 files changed, 29 insertions(+), 33 deletions(-)
+
+diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
+index a0764d3..02f7a7c 100644
+--- a/gcc/config/alpha/linux-elf.h
++++ b/gcc/config/alpha/linux-elf.h
+@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
+ #define EXTRA_SPECS \
+ { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+ #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
+ #elif DEFAULT_LIBC == LIBC_GLIBC
+diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
+index ace8481..4010435 100644
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -68,8 +68,8 @@
+ GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
+
+ #undef GLIBC_DYNAMIC_LINKER
+-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
++#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
++#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
+ #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
+
+ #define GLIBC_DYNAMIC_LINKER \
+diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
+index a94bd2d..0220628 100644
+--- a/gcc/config/arm/linux-elf.h
++++ b/gcc/config/arm/linux-elf.h
+@@ -62,7 +62,7 @@
+
+ #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
+
+ #define LINUX_TARGET_LINK_SPEC "%{h*} \
+ %{static:-Bstatic} \
+diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
+index d37a875..edde586 100644
+--- a/gcc/config/i386/linux.h
++++ b/gcc/config/i386/linux.h
+@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+ #define GNU_USER_LINK_EMULATION "elf_i386"
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
+
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
+diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
+index 73d22e3..f4b5615 100644
+--- a/gcc/config/i386/linux64.h
++++ b/gcc/config/i386/linux64.h
+@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
+ #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+-#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
+
+ #undef MUSL_DYNAMIC_LINKER32
+ #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
+diff --git a/gcc/config/linux.h b/gcc/config/linux.h
+index 9aeeb94..b055652 100644
+--- a/gcc/config/linux.h
++++ b/gcc/config/linux.h
+@@ -81,10 +81,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
+ GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
+ supporting both 32-bit and 64-bit compilation. */
+-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
+-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
+ #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
+ #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
+ #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
+diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
+index fa253b6..da02c8d 100644
+--- a/gcc/config/mips/linux.h
++++ b/gcc/config/mips/linux.h
+@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3. If not see
+ #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
+
+ #define GLIBC_DYNAMIC_LINKER32 \
+- "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
+ #define GLIBC_DYNAMIC_LINKER64 \
+- "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
+ #define GLIBC_DYNAMIC_LINKERN32 \
+- "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
+
+ #undef UCLIBC_DYNAMIC_LINKER32
+ #define UCLIBC_DYNAMIC_LINKER32 \
+- "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
+ #undef UCLIBC_DYNAMIC_LINKER64
+ #define UCLIBC_DYNAMIC_LINKER64 \
+- "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
+ #define UCLIBC_DYNAMIC_LINKERN32 \
+- "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
++ "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
+
+ #undef MUSL_DYNAMIC_LINKER32
+ #define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1"
+diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
+index fefa0c4..7173938 100644
+--- a/gcc/config/rs6000/linux64.h
++++ b/gcc/config/rs6000/linux64.h
+@@ -412,16 +412,11 @@ extern int dot_symbols;
+ #undef LINK_OS_DEFAULT_SPEC
+ #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
+
+-#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
+-
++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
+ #ifdef LINUX64_DEFAULT_ABI_ELFv2
+-#define GLIBC_DYNAMIC_LINKER64 \
+-"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
+-":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
+ #else
+-#define GLIBC_DYNAMIC_LINKER64 \
+-"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
+-":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
++#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
+ #endif
+
+ #define MUSL_DYNAMIC_LINKER32 \
+@@ -429,8 +424,9 @@ extern int dot_symbols;
+ #define MUSL_DYNAMIC_LINKER64 \
+ "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
+
+-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
+-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
++#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
++
+ #if DEFAULT_LIBC == LIBC_UCLIBC
+ #define CHOOSE_DYNAMIC_LINKER(G, U, M) \
+ "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}"
+diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
+index 2a036ac..50fb735 100644
+--- a/gcc/config/sh/linux.h
++++ b/gcc/config/sh/linux.h
+@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see
+ "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
+ "%{mfdpic:-fdpic}.so.1"
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
+
+ #undef SUBTARGET_LINK_EMUL_SUFFIX
+ #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
+diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
+index 9b32577..7bd66de 100644
+--- a/gcc/config/sparc/linux.h
++++ b/gcc/config/sparc/linux.h
+@@ -83,7 +83,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
+index a1ef325..3bae3d5 100644
+--- a/gcc/config/sparc/linux64.h
++++ b/gcc/config/sparc/linux64.h
+@@ -84,8 +84,8 @@ along with GCC; see the file COPYING3. If not see
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
+
+ #ifdef SPARC_BI_ARCH
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0022-gcc-Fix-argument-list-too-long-error.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0022-gcc-Fix-argument-list-too-long-error.patch
new file mode 100644
index 000000000..fab6e4aeb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0022-gcc-Fix-argument-list-too-long-error.patch
@@ -0,0 +1,40 @@
+From acce5157f6b3a1dc9a3676b7118ac887dc5693be Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:26:37 +0400
+Subject: [PATCH 22/46] gcc: Fix argument list too long error.
+
+There would be an "Argument list too long" error when the
+build directory is longer than 200, this is caused by:
+
+headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
+
+The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
+it, use the $(sort list) of GNU make which can handle the too long list
+would fix the problem, the header would be short enough after sorted.
+The "tr ' ' '\012'" was used for translating the space to "\n", the
+$(sort list) doesn't need this.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 9a1d466..450cb79 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -3349,7 +3349,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+ # We keep the directory structure for files in config or c-family and .def
+ # files. All other files are flattened to a single directory.
+ $(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
+- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
++ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+ for file in $$headers; do \
+ if [ -f $$file ] ; then \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0023-Disable-sdt.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0023-Disable-sdt.patch
new file mode 100644
index 000000000..0efd890aa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0023-Disable-sdt.patch
@@ -0,0 +1,113 @@
+From 6573aec00ada35c48c1838c8491ce8f7798ae993 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:28:10 +0400
+Subject: [PATCH 23/46] Disable sdt.
+
+We don't list dtrace in DEPENDS so we shouldn't be depending on this header.
+It may or may not exist from preivous builds though. To be determinstic, disable
+sdt.h usage always. This avoids build failures if the header is removed after configure
+but before libgcc is compiled for example.
+
+RP 2012/8/7
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Disable sdt for libstdc++-v3.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
+Upstream-Status: Inappropriate [hack]
+---
+ gcc/configure | 12 ++++++------
+ gcc/configure.ac | 18 +++++++++---------
+ libstdc++-v3/configure | 6 +++---
+ libstdc++-v3/configure.ac | 2 +-
+ 4 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/gcc/configure b/gcc/configure
+index 389b6d5..73c264d 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -28528,12 +28528,12 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
+ $as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
+ have_sys_sdt_h=no
+-if test -f $target_header_dir/sys/sdt.h; then
+- have_sys_sdt_h=yes
+-
+-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
+-
+-fi
++#if test -f $target_header_dir/sys/sdt.h; then
++# have_sys_sdt_h=yes
++#
++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
++#
++#fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5
+ $as_echo "$have_sys_sdt_h" >&6; }
+
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 91ac800..cecf121 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -5514,15 +5514,15 @@ fi
+ AC_SUBST([enable_default_ssp])
+
+ # Test for <sys/sdt.h> on the target.
+-GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
+-AC_MSG_CHECKING(sys/sdt.h in the target C library)
+-have_sys_sdt_h=no
+-if test -f $target_header_dir/sys/sdt.h; then
+- have_sys_sdt_h=yes
+- AC_DEFINE(HAVE_SYS_SDT_H, 1,
+- [Define if your target C library provides sys/sdt.h])
+-fi
+-AC_MSG_RESULT($have_sys_sdt_h)
++#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
++#AC_MSG_CHECKING(sys/sdt.h in the target C library)
++#have_sys_sdt_h=no
++#if test -f $target_header_dir/sys/sdt.h; then
++# have_sys_sdt_h=yes
++# AC_DEFINE(HAVE_SYS_SDT_H, 1,
++# [Define if your target C library provides sys/sdt.h])
++#fi
++#AC_MSG_RESULT($have_sys_sdt_h)
+
+ # Check if TFmode long double should be used by default or not.
+ # Some glibc targets used DFmode long double, but with glibc 2.4
+diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
+index 8a5481c..6a40e92 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -21735,11 +21735,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+- if test $glibcxx_cv_sys_sdt_h = yes; then
++# if test $glibcxx_cv_sys_sdt_h = yes; then
+
+-$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
++#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
+
+- fi
++# fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sys_sdt_h" >&5
+ $as_echo "$glibcxx_cv_sys_sdt_h" >&6; }
+
+diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
+index 9e19e99..0077ffd 100644
+--- a/libstdc++-v3/configure.ac
++++ b/libstdc++-v3/configure.ac
+@@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
+ GLIBCXX_CHECK_SC_NPROC_ONLN
+ GLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NP
+ GLIBCXX_CHECK_SYSCTL_HW_NCPU
+-GLIBCXX_CHECK_SDT_H
++#GLIBCXX_CHECK_SDT_H
+
+ # Check for available headers.
+ AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0024-libtool.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0024-libtool.patch
new file mode 100644
index 000000000..1f73b5db5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0024-libtool.patch
@@ -0,0 +1,42 @@
+From 6c0aa5c2538829248547197718037ff0b9788676 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:29:11 +0400
+Subject: [PATCH 24/46] libtool
+
+libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
+when running on am x86_64 build host.
+
+This patch stops this speading to libdir in the libstdc++.la file within libtool.
+Arguably, it shouldn't be passing this into libtool in the first place but
+for now this resolves the nastiest problems this causes.
+
+func_normal_abspath would resolve an empty path to `pwd` so we need
+to filter the zero case.
+
+RP 2012/8/24
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ ltmain.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 9503ec8..0121fba 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -6359,6 +6359,10 @@ func_mode_link ()
+ func_warning "ignoring multiple \`-rpath's for a libtool library"
+
+ install_libdir="$1"
++ if test -n "$install_libdir"; then
++ func_normal_abspath "$install_libdir"
++ install_libdir=$func_normal_abspath_result
++ fi
+
+ oldlibs=
+ if test -z "$rpath"; then
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0025-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0025-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
new file mode 100644
index 000000000..3b7ee497f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0025-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -0,0 +1,43 @@
+From b1263a48553ce75f8c3bed4fe12122af57845567 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:30:32 +0400
+Subject: [PATCH 25/46] gcc: armv4: pass fix-v4bx to linker to support EABI.
+
+The LINK_SPEC for linux gets overwritten by linux-eabi.h which
+means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
+the option is not passed to linker when chosing march=armv4
+This patch redefines this in linux-eabi.h and reinserts it
+for eabi defaulting toolchains.
+
+We might want to send it upstream.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+---
+ gcc/config/arm/linux-eabi.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
+index 4010435..aaea1c9 100644
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -94,10 +94,14 @@
+ #define MUSL_DYNAMIC_LINKER \
+ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1"
+
++/* For armv4 we pass --fix-v4bx to linker to support EABI */
++#undef TARGET_FIX_V4BX_SPEC
++#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
++
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
+ use the GNU/Linux version, not the generic BPABI version. */
+ #undef LINK_SPEC
+-#define LINK_SPEC EABI_LINK_SPEC \
++#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC \
+ LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
+ LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0026-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0026-Use-the-multilib-config-files-from-B-instead-of-usin.patch
new file mode 100644
index 000000000..be25be616
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0026-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -0,0 +1,102 @@
+From b5c305fc251299f2e328410b18cfb55c75b5f038 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Mar 2013 09:33:04 +0400
+Subject: [PATCH 26/46] Use the multilib config files from ${B} instead of
+ using the ones from ${S}
+
+Use the multilib config files from ${B} instead of using the ones from ${S}
+so that the source can be shared between gcc-cross-initial,
+gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+---
+ gcc/configure | 22 ++++++++++++++++++----
+ gcc/configure.ac | 22 ++++++++++++++++++----
+ 2 files changed, 36 insertions(+), 8 deletions(-)
+
+diff --git a/gcc/configure b/gcc/configure
+index 73c264d..377253e 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -12110,10 +12110,20 @@ done
+ tmake_file_=
+ for f in ${tmake_file}
+ do
+- if test -f ${srcdir}/config/$f
+- then
+- tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+- fi
++ case $f in
++ */t-linux64 )
++ if test -f ./config/$f
++ then
++ tmake_file_="${tmake_file_} ./config/$f"
++ fi
++ ;;
++ * )
++ if test -f ${srcdir}/config/$f
++ then
++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
++ fi
++ ;;
++ esac
+ done
+ tmake_file="${tmake_file_}"
+
+@@ -12124,6 +12134,10 @@ tm_file_list="options.h"
+ tm_include_list="options.h insn-constants.h"
+ for f in $tm_file; do
+ case $f in
++ */linux64.h )
++ tm_file_list="${tm_file_list} ./config/$f"
++ tm_include_list="${tm_include_list} ./config/$f"
++ ;;
+ ./* )
+ f=`echo $f | sed 's/^..//'`
+ tm_file_list="${tm_file_list} $f"
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index cecf121..54e7619 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1863,10 +1863,20 @@ done
+ tmake_file_=
+ for f in ${tmake_file}
+ do
+- if test -f ${srcdir}/config/$f
+- then
+- tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
+- fi
++ case $f in
++ */t-linux64 )
++ if test -f ./config/$f
++ then
++ tmake_file_="${tmake_file_} ./config/$f"
++ fi
++ ;;
++ * )
++ if test -f ${srcdir}/config/$f
++ then
++ tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
++ fi
++ ;;
++ esac
+ done
+ tmake_file="${tmake_file_}"
+
+@@ -1877,6 +1887,10 @@ tm_file_list="options.h"
+ tm_include_list="options.h insn-constants.h"
+ for f in $tm_file; do
+ case $f in
++ */linux64.h )
++ tm_file_list="${tm_file_list} ./config/$f"
++ tm_include_list="${tm_include_list} ./config/$f"
++ ;;
+ ./* )
+ f=`echo $f | sed 's/^..//'`
+ tm_file_list="${tm_file_list} $f"
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0027-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0027-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
new file mode 100644
index 000000000..d1bbebc0a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0027-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -0,0 +1,31 @@
+From eb6178b7fb466ae429c56380c6dbc564a16d900a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 20 Feb 2015 09:39:38 +0000
+Subject: [PATCH 27/46] Avoid using libdir from .la which usually points to a
+ host path
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ltmain.sh | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 0121fba..52bdbdb 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -5628,6 +5628,9 @@ func_mode_link ()
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
++ # Instead of using libdir from .la which usually points to a host path,
++ # use the path the .la is contained in.
++ libdir="$abs_ladir"
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0028-export-CPP.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0028-export-CPP.patch
new file mode 100644
index 000000000..c21253938
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0028-export-CPP.patch
@@ -0,0 +1,53 @@
+From 617184f35e97934d9e6268e71378574e2b776c2b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 20 Feb 2015 09:40:59 +0000
+Subject: [PATCH 28/46] export CPP
+
+The OE environment sets and exports CPP as being the target gcc. When
+building gcc-cross-canadian for a mingw targetted sdk, the following can be found
+in build.x86_64-pokysdk-mingw32.i586-poky-linux/build-x86_64-linux/libiberty/config.log:
+
+configure:3641: checking for _FILE_OFFSET_BITS value needed for large files
+configure:3666: gcc -c -isystem/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe conftest.c >&5
+configure:3666: $? = 0
+configure:3698: result: no
+configure:3786: checking how to run the C preprocessor
+configure:3856: result: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32
+configure:3876: x86_64-pokysdk-mingw32-gcc -E --sysroot=/media/build1/poky/build/tmp/sysroots/x86_64-nativesdk-mingw32-pokysdk-mingw32 conftest.c
+configure:3876: $? = 0
+
+Note this is a *build* target (in build-x86_64-linux) so it should be
+using the host "gcc", not x86_64-pokysdk-mingw32-gcc. Since the mingw32
+headers are very different, using the wrong cpp is a real problem. It is leaking
+into configure through the CPP variable. Ultimately this leads to build
+failures related to not being able to include a process.h file for pem-unix.c.
+
+The fix is to ensure we export a sane CPP value into the build
+environment when using build targets. We could define a CPP_FOR_BUILD value which may be
+the version which needs to be upstreamed but for now, this fix is good enough to
+avoid the problem.
+
+RP 22/08/2013
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.in b/Makefile.in
+index 1522e39..beb9b9a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -149,6 +149,7 @@ BUILD_EXPORTS = \
+ AR="$(AR_FOR_BUILD)"; export AR; \
+ AS="$(AS_FOR_BUILD)"; export AS; \
+ CC="$(CC_FOR_BUILD)"; export CC; \
++ CPP="$(CC_FOR_BUILD) -E"; export CPP; \
+ CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ CXX="$(CXX_FOR_BUILD)"; export CXX; \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
new file mode 100644
index 000000000..47b9c0d1b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0029-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
@@ -0,0 +1,56 @@
+From e140700976e3b7eb4250b1ffde9bc16494456903 Mon Sep 17 00:00:00 2001
+From: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
+Date: Wed, 5 Feb 2014 16:52:31 +0200
+Subject: [PATCH 29/46] Enable SPE & AltiVec generation on powepc*linux target
+
+When is configured with --target=powerpc-linux, the resulting GCC will
+not be able to generate code for SPE targets (e500v1/v2).
+GCC configured with --target=powerpc-linuxspe will not be able to
+generate AltiVec instructions (for e6500).
+This patch modifies the configured file such that SPE or AltiVec code
+can be generated when gcc is configured with --target=powerpc-linux.
+The ABI and speciffic instructions can be selected through the
+"-mabi=spe or -mabi=altivec" and the "-mspe or -maltivec" parameters.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
+---
+ gcc/config.gcc | 9 ++++++++-
+ gcc/config/rs6000/linuxspe.h | 3 ---
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 9c6d156..18cff5a 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -2392,7 +2392,14 @@ powerpc-*-rtems*)
+ tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
+ ;;
+ powerpc*-*-linux*)
+- tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
++ case ${target} in
++ powerpc*-*-linux*spe* | powerpc*-*-linux*altivec*)
++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
++ ;;
++ *)
++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h rs6000/linuxaltivec.h rs6000/linuxspe.h rs6000/e500.h"
++ ;;
++ esac
+ extra_options="${extra_options} rs6000/sysv4.opt"
+ tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
+ extra_objs="$extra_objs rs6000-linux.o"
+diff --git a/gcc/config/rs6000/linuxspe.h b/gcc/config/rs6000/linuxspe.h
+index 35623cd..f74e00d 100644
+--- a/gcc/config/rs6000/linuxspe.h
++++ b/gcc/config/rs6000/linuxspe.h
+@@ -27,6 +27,3 @@
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT MASK_STRICT_ALIGN
+ #endif
+-
+-#undef ASM_DEFAULT_SPEC
+-#define ASM_DEFAULT_SPEC "-mppc -mspe -me500"
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0030-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0030-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
new file mode 100644
index 000000000..c09d0192e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0030-Disable-the-MULTILIB_OSDIRNAMES-and-other-multilib-o.patch
@@ -0,0 +1,42 @@
+From 0ddcb95a86830766fd02122f19384fc929b377c5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 20 Feb 2015 10:21:55 +0000
+Subject: [PATCH 30/46] Disable the MULTILIB_OSDIRNAMES and other multilib
+ options.
+
+Hard coding the MULTILIB_OSDIRNAMES with ../lib64 is causing problems on
+systems where the libdir is NOT set to /lib64. This is allowed by the
+ABI, as
+long as the dynamic loader is present in /lib.
+
+We simply want to use the default rules in gcc to find and configure the
+normal libdir.
+
+Upstream-Status: Inappropriate[OE-Specific]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/config/aarch64/t-aarch64-linux | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
+index 1cfe9f3..d688ac9 100644
+--- a/gcc/config/aarch64/t-aarch64-linux
++++ b/gcc/config/aarch64/t-aarch64-linux
+@@ -21,8 +21,8 @@
+ LIB1ASMSRC = aarch64/lib1funcs.asm
+ LIB1ASMFUNCS = _aarch64_sync_cache_range
+
+-AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
+-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+-MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
++#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
++#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
++#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
+
+-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32
++#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0031-Ensure-target-gcc-headers-can-be-included.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0031-Ensure-target-gcc-headers-can-be-included.patch
new file mode 100644
index 000000000..fb1cd0f16
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0031-Ensure-target-gcc-headers-can-be-included.patch
@@ -0,0 +1,98 @@
+From fc6621435a64a9d69aa251b70361da94cf2db6be Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 20 Feb 2015 10:25:11 +0000
+Subject: [PATCH 31/46] Ensure target gcc headers can be included
+
+There are a few headers installed as part of the OpenEmbedded
+gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
+built for the target architecture, these are within the target
+sysroot and not cross/nativesdk; thus they weren't able to be
+found by gcc with the existing search paths. Add support for
+picking up these headers under the sysroot supplied on the gcc
+command line in order to resolve this.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/Makefile.in | 2 ++
+ gcc/cppdefault.c | 4 ++++
+ gcc/defaults.h | 9 +++++++++
+ gcc/gcc.c | 7 -------
+ 4 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 450cb79..cc75536 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -593,6 +593,7 @@ libexecdir = @libexecdir@
+
+ # Directory in which the compiler finds libraries etc.
+ libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
++libsubdir_target = gcc/$(target_noncanonical)/$(version)
+ # Directory in which the compiler finds executables
+ libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
+ # Directory in which all plugin resources are installed
+@@ -2688,6 +2689,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
+
+ PREPROCESSOR_DEFINES = \
+ -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
++ -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \
+ -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
+ -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
+ -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
+diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
+index 54aaf06..7b4dd51 100644
+--- a/gcc/cppdefault.c
++++ b/gcc/cppdefault.c
+@@ -59,6 +59,10 @@ const struct default_include cpp_include_defaults[]
+ /* This is the dir for gcc's private headers. */
+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
+ #endif
++#ifdef GCC_INCLUDE_SUBDIR_TARGET
++ /* This is the dir for gcc's private headers under the specified sysroot. */
++ { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
++#endif
+ #ifdef LOCAL_INCLUDE_DIR
+ /* /usr/local/include comes before the fixincluded header files. */
+ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
+diff --git a/gcc/defaults.h b/gcc/defaults.h
+index 3e18338..0f317f2 100644
+--- a/gcc/defaults.h
++++ b/gcc/defaults.h
+@@ -1492,4 +1492,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_GDB
+ #endif
+
++/* Default prefixes to attach to command names. */
++
++#ifndef STANDARD_STARTFILE_PREFIX_1
++#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
++#endif
++#ifndef STANDARD_STARTFILE_PREFIX_2
++#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
++#endif
++
+ #endif /* ! GCC_DEFAULTS_H */
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 04fa81d..9750cc2 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -1450,13 +1450,6 @@ static const char *gcc_libexec_prefix;
+
+ /* Default prefixes to attach to command names. */
+
+-#ifndef STANDARD_STARTFILE_PREFIX_1
+-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
+-#endif
+-#ifndef STANDARD_STARTFILE_PREFIX_2
+-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
+-#endif
+-
+ #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */
+ #undef MD_EXEC_PREFIX
+ #undef MD_STARTFILE_PREFIX
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0032-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0032-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
new file mode 100644
index 000000000..c0b001db5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0032-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
@@ -0,0 +1,54 @@
+From ff939c5063d8f8d444bdb25651a0a48e608efaa4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 20 Feb 2015 11:17:19 +0000
+Subject: [PATCH 32/46] gcc 4.8+ won't build with --disable-dependency-tracking
+
+since the *.Ppo files don't get created unless --enable-dependency-tracking is true.
+
+This patch ensures we only use those compiler options when its enabled.
+
+Upstream-Status: Submitted
+
+(Problem was already reported upstream, attached this patch there
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55930)
+
+RP
+2012/09/22
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libatomic/Makefile.am | 3 ++-
+ libatomic/Makefile.in | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
+index b351244..399ce18 100644
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -101,7 +101,8 @@ PAT_S = $(word 3,$(PAT_SPLIT))
+ IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
+ IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
+
+-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
++@AMDEP_FALSE@M_DEPS =
+ M_SIZE = -DN=$(PAT_N)
+ M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
+ M_FILE = $(PAT_BASE)_n.c
+diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
+index a083d87..a92cfce 100644
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -330,7 +330,8 @@ PAT_N = $(word 2,$(PAT_SPLIT))
+ PAT_S = $(word 3,$(PAT_SPLIT))
+ IFUNC_DEF = -DIFUNC_ALT=$(PAT_S)
+ IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS))
+-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo
++@AMDEP_FALSE@M_DEPS =
+ M_SIZE = -DN=$(PAT_N)
+ M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
+ M_FILE = $(PAT_BASE)_n.c
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0033-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0033-Don-t-search-host-directory-during-relink-if-inst_pr.patch
new file mode 100644
index 000000000..e425d7146
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0033-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -0,0 +1,38 @@
+From 5092f5389d02e78cd59690cf3fca24b56a97aff2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Mar 2015 08:21:19 +0000
+Subject: [PATCH 33/46] Don't search host directory during "relink" if
+ $inst_prefix is provided
+
+http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html
+
+Upstream-Status: Submitted
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ltmain.sh | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 52bdbdb..82bcec3 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -6004,12 +6004,13 @@ func_mode_link ()
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
++ # Default if $libdir is not relative to the prefix:
+ add_dir="-L$libdir"
+- # Try looking first in the location we're being installed to.
++
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+- add_dir="$add_dir -L$inst_prefix_dir$libdir"
++ add_dir="-L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0034-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0034-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
new file mode 100644
index 000000000..922a8555b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0034-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
@@ -0,0 +1,29 @@
+From 1faa6f69f93bb95af2b2b2bd24e181b50fb5b37c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Apr 2015 23:15:27 -0700
+Subject: [PATCH 34/46] Use SYSTEMLIBS_DIR replacement instead of hardcoding
+ base_libdir
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Inappropriate [OE Configuration]
+
+ gcc/config/aarch64/aarch64-linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
+index 5fcaa59..8588ac0 100644
+--- a/gcc/config/aarch64/aarch64-linux.h
++++ b/gcc/config/aarch64/aarch64-linux.h
+@@ -21,7 +21,7 @@
+ #ifndef GCC_AARCH64_LINUX_H
+ #define GCC_AARCH64_LINUX_H
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0035-aarch64-Add-support-for-musl-ldso.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0035-aarch64-Add-support-for-musl-ldso.patch
new file mode 100644
index 000000000..9dfc47276
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0035-aarch64-Add-support-for-musl-ldso.patch
@@ -0,0 +1,28 @@
+From 3768468c1a6cc170fff88c03b808c975ac653811 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Apr 2015 23:18:39 -0700
+Subject: [PATCH 35/46] aarch64: Add support for musl ldso
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Inappropriate [OE Configuration]
+
+ gcc/config/aarch64/aarch64-linux.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
+index 8588ac0..946b3ca 100644
+--- a/gcc/config/aarch64/aarch64-linux.h
++++ b/gcc/config/aarch64/aarch64-linux.h
+@@ -24,7 +24,7 @@
+ #define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+
+ #undef MUSL_DYNAMIC_LINKER
+-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+
+ #undef ASAN_CC1_SPEC
+ #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0036-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0036-libcc1-fix-libcc1-s-install-path-and-rpath.patch
new file mode 100644
index 000000000..f89a8860f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0036-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -0,0 +1,54 @@
+From f4d3c8e970d42a43cd3d2f751e13324efa936ff8 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Sun, 5 Jul 2015 20:25:18 -0700
+Subject: [PATCH 36/46] libcc1: fix libcc1's install path and rpath
+
+* Install libcc1.so and libcc1plugin.so into
+ $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
+ had done to lto-plugin.
+* Fix bad RPATH iussue:
+ gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file
+ /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0
+ [rpaths]
+
+Upstream-Status: Inappropriate [OE configuration]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ libcc1/Makefile.am | 4 ++--
+ libcc1/Makefile.in | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
+index b40820b..32930c5 100644
+--- a/libcc1/Makefile.am
++++ b/libcc1/Makefile.am
+@@ -35,8 +35,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
+ $(Wc)$(libiberty_normal)))
+ libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
+
+-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
+-cc1libdir = $(libdir)/$(libsuffix)
++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
++plugindir = $(cc1libdir)
+
+ if ENABLE_PLUGIN
+ plugin_LTLIBRARIES = libcc1plugin.la
+diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
+index 79d39d3..227ec22 100644
+--- a/libcc1/Makefile.in
++++ b/libcc1/Makefile.in
+@@ -291,8 +291,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
+ $(Wc)$(libiberty_normal)))
+
+ libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
+-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
+-cc1libdir = $(libdir)/$(libsuffix)
++cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
++plugindir = $(cc1libdir)
+ @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la
+ @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
+ BUILT_SOURCES = compiler-name.h
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0037-handle-sysroot-support-for-nativesdk-gcc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0037-handle-sysroot-support-for-nativesdk-gcc.patch
new file mode 100644
index 000000000..15efcb12e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0037-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -0,0 +1,213 @@
+From 1475b941d7a9c9874b0fb0558d01805945467331 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Dec 2015 23:39:54 +0000
+Subject: [PATCH 37/46] handle sysroot support for nativesdk-gcc
+
+Being able to build a nativesdk gcc is useful, particularly in cases
+where the host compiler may be of an incompatible version (or a 32
+bit compiler is needed).
+
+Sadly, building nativesdk-gcc is not straight forward. We install
+nativesdk-gcc into a relocatable location and this means that its
+library locations can change. "Normal" sysroot support doesn't help
+in this case since the values of paths like "libdir" change, not just
+base root directory of the system.
+
+In order to handle this we do two things:
+
+a) Add %r into spec file markup which can be used for injected paths
+ such as SYSTEMLIBS_DIR (see gcc_multilib_setup()).
+b) Add other paths which need relocation into a .gccrelocprefix section
+ which the relocation code will notice and adjust automatically.
+
+Upstream-Status: Inappropriate
+RP 2015/7/28
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/cppdefault.c | 50 +++++++++++++++++++++++++++++++++++++-------------
+ gcc/cppdefault.h | 3 ++-
+ gcc/gcc.c | 20 ++++++++++++++------
+ 3 files changed, 53 insertions(+), 20 deletions(-)
+
+diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
+index 7b4dd51..9d1166c 100644
+--- a/gcc/cppdefault.c
++++ b/gcc/cppdefault.c
+@@ -35,6 +35,30 @@
+ # undef CROSS_INCLUDE_DIR
+ #endif
+
++static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR;
++static char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
++static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR;
++static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR;
++static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET;
++#ifdef LOCAL_INCLUDE_DIR
++static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR;
++#endif
++#ifdef PREFIX_INCLUDE_DIR
++static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR;
++#endif
++#ifdef FIXED_INCLUDE_DIR
++static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR;
++#endif
++#ifdef CROSS_INCLUDE_DIR
++static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR;
++#endif
++#ifdef TOOL_INCLUDE_DIR
++static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR;
++#endif
++#ifdef NATIVE_SYSTEM_HEADER_DIR
++static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR;
++#endif
++
+ const struct default_include cpp_include_defaults[]
+ #ifdef INCLUDE_DEFAULTS
+ = INCLUDE_DEFAULTS;
+@@ -42,38 +66,38 @@ const struct default_include cpp_include_defaults[]
+ = {
+ #ifdef GPLUSPLUS_INCLUDE_DIR
+ /* Pick up GNU C++ generic include files. */
+- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
++ { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
+ #endif
+ #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
+ /* Pick up GNU C++ target-dependent include files. */
+- { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
++ { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
+ #endif
+ #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
+ /* Pick up GNU C++ backward and deprecated include files. */
+- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
++ { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,
+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
+ #endif
+ #ifdef GCC_INCLUDE_DIR
+ /* This is the dir for gcc's private headers. */
+- { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
++ { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
+ #endif
+ #ifdef GCC_INCLUDE_SUBDIR_TARGET
+ /* This is the dir for gcc's private headers under the specified sysroot. */
+- { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
++ { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 },
+ #endif
+ #ifdef LOCAL_INCLUDE_DIR
+ /* /usr/local/include comes before the fixincluded header files. */
+- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
+- { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },
++ { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
+ #endif
+ #ifdef PREFIX_INCLUDE_DIR
+- { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
++ { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 },
+ #endif
+ #ifdef FIXED_INCLUDE_DIR
+ /* This is the dir for fixincludes. */
+- { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
++ { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0,
+ /* A multilib suffix needs adding if different multilibs use
+ different headers. */
+ #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
+@@ -85,16 +109,16 @@ const struct default_include cpp_include_defaults[]
+ #endif
+ #ifdef CROSS_INCLUDE_DIR
+ /* One place the target system's headers might be. */
+- { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
++ { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
+ #endif
+ #ifdef TOOL_INCLUDE_DIR
+ /* Another place the target system's headers might be. */
+- { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
++ { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 },
+ #endif
+ #ifdef NATIVE_SYSTEM_HEADER_DIR
+ /* /usr/include comes dead last. */
+- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
+- { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
++ { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
+ #endif
+ { 0, 0, 0, 0, 0, 0 }
+ };
+diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
+index 8a81b45..9759efd 100644
+--- a/gcc/cppdefault.h
++++ b/gcc/cppdefault.h
+@@ -33,7 +33,8 @@
+
+ struct default_include
+ {
+- const char *const fname; /* The name of the directory. */
++ const char *fname; /* The name of the directory. */
++
+ const char *const component; /* The component containing the directory
+ (see update_path in prefix.c) */
+ const char cplusplus; /* Only look here if we're compiling C++. */
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 9750cc2..94c240e 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -247,6 +247,8 @@ FILE *report_times_to_file = NULL;
+ #endif
+ static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
+
++static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR;
++
+ /* Nonzero means pass the updated target_system_root to the compiler. */
+
+ static int target_system_root_changed;
+@@ -517,6 +519,7 @@ or with constant text in a single argument.
+ %G process LIBGCC_SPEC as a spec.
+ %R Output the concatenation of target_system_root and
+ target_sysroot_suffix.
++ %r Output the base path target_relocatable_prefix
+ %S process STARTFILE_SPEC as a spec. A capital S is actually used here.
+ %E process ENDFILE_SPEC as a spec. A capital E is actually used here.
+ %C process CPP_SPEC as a spec.
+@@ -1473,10 +1476,10 @@ static const char *gcc_libexec_prefix;
+ gcc_exec_prefix is set because, in that case, we know where the
+ compiler has been installed, and use paths relative to that
+ location instead. */
+-static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
+-static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX;
+-static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX;
+-static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
++static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
++static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX;
++static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX;
++static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
+
+ /* For native compilers, these are well-known paths containing
+ components that may be provided by the system. For cross
+@@ -1484,9 +1487,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
+ static const char *md_exec_prefix = MD_EXEC_PREFIX;
+ static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
+ static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
+-static const char *const standard_startfile_prefix_1
++static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix")))
+ = STANDARD_STARTFILE_PREFIX_1;
+-static const char *const standard_startfile_prefix_2
++static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix")))
+ = STANDARD_STARTFILE_PREFIX_2;
+
+ /* A relative path to be used in finding the location of tools
+@@ -5762,6 +5765,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
+ }
+ break;
+
++ case 'r':
++ obstack_grow (&obstack, target_relocatable_prefix,
++ strlen (target_relocatable_prefix));
++ break;
++
+ case 'S':
+ value = do_spec_1 (startfile_spec, 0, NULL);
+ if (value != 0)
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch
new file mode 100644
index 000000000..89ee79db8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0038-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -0,0 +1,102 @@
+From 42e4cdcaad590536246866b0846ec279e124fa16 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Dec 2015 23:41:45 +0000
+Subject: [PATCH 38/46] Search target sysroot gcc version specific dirs with
+ multilib.
+
+We install the gcc libraries (such as crtbegin.p) into
+<sysroot><libdir>/<target-sys>/5.2.0/
+which is a default search path for GCC (aka multi_suffix in the
+code below). <target-sys> is 'machine' in gcc's terminology. We use
+these directories so that multiple gcc versions could in theory
+co-exist on target.
+
+We only want to build one gcc-cross-canadian per arch and have this work
+for all multilibs. <target-sys> can be handled by mapping the multilib
+<target-sys> to the one used by gcc-cross-canadian, e.g.
+mips64-polkmllib32-linux
+is symlinked to by mips64-poky-linux.
+
+The default gcc search path in the target sysroot for a "lib64" mutlilib
+is:
+
+<sysroot>/lib32/mips64-poky-linux/5.2.0/
+<sysroot>/lib32/../lib64/
+<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
+<sysroot>/usr/lib32/../lib64/
+<sysroot>/lib32/
+<sysroot>/usr/lib32/
+
+which means that the lib32 crtbegin.o will be found and the lib64 ones
+will not which leads to compiler failures.
+
+This patch injects a multilib version of that path first so the lib64
+binaries can be found first. With this change the search path becomes:
+
+<sysroot>/lib32/../lib64/mips64-poky-linux/5.2.0/
+<sysroot>/lib32/mips64-poky-linux/5.2.0/
+<sysroot>/lib32/../lib64/
+<sysroot>/usr/lib32/../lib64/mips64-poky-linux/5.2.0/
+<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
+<sysroot>/usr/lib32/../lib64/
+<sysroot>/lib32/
+<sysroot>/usr/lib32/
+
+Upstream-Status: Pending
+RP 2015/7/31
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gcc/gcc.c | 29 ++++++++++++++++++++++++++++-
+ 1 file changed, 28 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 94c240e..2812819 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -2507,7 +2507,7 @@ for_each_path (const struct path_prefix *paths,
+ if (path == NULL)
+ {
+ len = paths->max_len + extra_space + 1;
+- len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len);
++ len += MAX ((suffix_len + multi_os_dir_len), multiarch_len);
+ path = XNEWVEC (char, len);
+ }
+
+@@ -2519,6 +2519,33 @@ for_each_path (const struct path_prefix *paths,
+ /* Look first in MACHINE/VERSION subdirectory. */
+ if (!skip_multi_dir)
+ {
++ if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir))
++ {
++ const char *this_multi;
++ size_t this_multi_len;
++
++ if (pl->os_multilib)
++ {
++ this_multi = multi_os_dir;
++ this_multi_len = multi_os_dir_len;
++ }
++ else
++ {
++ this_multi = multi_dir;
++ this_multi_len = multi_dir_len;
++ }
++
++ /* Look in multilib MACHINE/VERSION subdirectory first */
++ if (this_multi_len)
++ {
++ memcpy (path + len, this_multi, this_multi_len + 1);
++ memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1);
++ ret = callback (path, callback_info);
++ if (ret)
++ break;
++ }
++ }
++
+ memcpy (path + len, multi_suffix, suffix_len + 1);
+ ret = callback (path, callback_info);
+ if (ret)
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0039-Fix-various-_FOR_BUILD-and-related-variables.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0039-Fix-various-_FOR_BUILD-and-related-variables.patch
new file mode 100644
index 000000000..0ce7aec79
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0039-Fix-various-_FOR_BUILD-and-related-variables.patch
@@ -0,0 +1,137 @@
+From 9ced49e459ccf1887feb58adf1e8836dcb4b1bdf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 7 Dec 2015 23:42:45 +0000
+Subject: [PATCH 39/46] Fix various _FOR_BUILD and related variables
+
+When doing a FOR_BUILD thing, you have to override CFLAGS with
+CFLAGS_FOR_BUILD. And if you use C++, you also have to override
+CXXFLAGS with CXXFLAGS_FOR_BUILD.
+Without this, when building for mingw, you end up trying to use
+the mingw headers for a host build.
+
+The same goes for other variables as well, such as CPPFLAGS,
+CPP, and GMPINC.
+
+Upstream-Status: Pending
+
+Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.in | 6 ++++++
+ Makefile.tpl | 5 +++++
+ gcc/Makefile.in | 2 +-
+ gcc/configure | 2 +-
+ gcc/configure.ac | 2 +-
+ 5 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index beb9b9a..3e1c6bc 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -152,6 +152,7 @@ BUILD_EXPORTS = \
+ CPP="$(CC_FOR_BUILD) -E"; export CPP; \
+ CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
+ CXX="$(CXX_FOR_BUILD)"; export CXX; \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+@@ -170,6 +171,9 @@ BUILD_EXPORTS = \
+ # built for the build system to override those in BASE_FLAGS_TO_PASS.
+ EXTRA_BUILD_FLAGS = \
+ CFLAGS="$(CFLAGS_FOR_BUILD)" \
++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
++ CPP="$(CC_FOR_BUILD) -E" \
++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)"
+
+ # This is the list of directories to built for the host system.
+@@ -187,6 +191,7 @@ HOST_SUBDIR = @host_subdir@
+ HOST_EXPORTS = \
+ $(BASE_EXPORTS) \
+ CC="$(CC)"; export CC; \
++ CPP="$(CC) -E"; export CPP; \
+ ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
+ CFLAGS="$(CFLAGS)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+@@ -713,6 +718,7 @@ BASE_FLAGS_TO_PASS = \
+ "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+ "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
+ "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
++ "CXXFLAGS_FOR_BUILD=$(CXXFLAGS_FOR_BUILD)" \
+ "EXPECT=$(EXPECT)" \
+ "FLEX=$(FLEX)" \
+ "INSTALL=$(INSTALL)" \
+diff --git a/Makefile.tpl b/Makefile.tpl
+index 6b2eb6a..114e462 100644
+--- a/Makefile.tpl
++++ b/Makefile.tpl
+@@ -154,6 +154,7 @@ BUILD_EXPORTS = \
+ CC="$(CC_FOR_BUILD)"; export CC; \
+ CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
+ CXX="$(CXX_FOR_BUILD)"; export CXX; \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+@@ -172,6 +173,9 @@ BUILD_EXPORTS = \
+ # built for the build system to override those in BASE_FLAGS_TO_PASS.
+ EXTRA_BUILD_FLAGS = \
+ CFLAGS="$(CFLAGS_FOR_BUILD)" \
++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
++ CPP="$(CC_FOR_BUILD) -E" \
++ CPPFLAGS="$(CPPFLAGS_FOR_BUILD)" \
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)"
+
+ # This is the list of directories to built for the host system.
+@@ -189,6 +193,7 @@ HOST_SUBDIR = @host_subdir@
+ HOST_EXPORTS = \
+ $(BASE_EXPORTS) \
+ CC="$(CC)"; export CC; \
++ CPP="$(CC) -E"; export CPP; \
+ ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
+ CFLAGS="$(CFLAGS)"; export CFLAGS; \
+ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index cc75536..0ad2dc8 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -780,7 +780,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
+ BUILD_NO_PIE_FLAG = @BUILD_NO_PIE_FLAG@
+ BUILD_LDFLAGS += $(BUILD_NO_PIE_FLAG)
+ BUILD_CPPFLAGS= -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
+- -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS)
++ -I$(srcdir)/../include @INCINTL@ $(CPPINC) $(CPPFLAGS_FOR_BUILD)
+
+ # Actual name to use when installing a native compiler.
+ GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
+diff --git a/gcc/configure b/gcc/configure
+index 377253e..78fc64a 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -11799,7 +11799,7 @@ else
+ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+ CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
+ LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
+- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
+ ${realsrcdir}/configure \
+ --enable-languages=${enable_languages-all} \
+ --target=$target_alias --host=$build_alias --build=$build_alias
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 54e7619..a94666e 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1682,7 +1682,7 @@ else
+ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+ CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
+ LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
+- GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
++ GMPINC="" CPPFLAGS="${CPPFLAGS_FOR_BUILD} -DGENERATOR_FILE" \
+ ${realsrcdir}/configure \
+ --enable-languages=${enable_languages-all} \
+ --target=$target_alias --host=$build_alias --build=$build_alias
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch
new file mode 100644
index 000000000..c9a6fd0eb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0040-nios2-Define-MUSL_DYNAMIC_LINKER.patch
@@ -0,0 +1,28 @@
+From b0412c01c275aaeb6b458461cd2425120c8bcec8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 2 Feb 2016 10:26:10 -0800
+Subject: [PATCH 40/46] nios2: Define MUSL_DYNAMIC_LINKER
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ gcc/config/nios2/linux.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
+index 4ef55b5..62bc1e7 100644
+--- a/gcc/config/nios2/linux.h
++++ b/gcc/config/nios2/linux.h
+@@ -30,6 +30,7 @@
+ #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC LINK_SPEC_ENDIAN \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0041-ssp_nonshared.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0041-ssp_nonshared.patch
new file mode 100644
index 000000000..074452974
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0041-ssp_nonshared.patch
@@ -0,0 +1,28 @@
+From 551a5db7acb56e085a101f1c222d51b2c1b039a4 Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <nsz@port70.net>
+Date: Sat, 7 Nov 2015 14:58:40 +0000
+Subject: [PATCH 41/46] ssp_nonshared
+
+---
+Upstream-Status: Inappropriate [OE Configuration]
+
+ gcc/gcc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 2812819..9de96ee 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -863,7 +863,8 @@ proper position among the other output files. */
+ #ifndef LINK_SSP_SPEC
+ #ifdef TARGET_LIBC_PROVIDES_SSP
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+- "|fstack-protector-strong|fstack-protector-explicit:}"
++ "|fstack-protector-strong|fstack-protector-explicit" \
++ ":-lssp_nonshared}"
+ #else
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+ "|fstack-protector-strong|fstack-protector-explicit" \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch
new file mode 100644
index 000000000..861f0fd7f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0042-gcc-libcpp-support-ffile-prefix-map-old-new.patch
@@ -0,0 +1,292 @@
+From ba738cc411c9a54e389e336bcaa0a2428dd4a9d2 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 16 Mar 2016 02:27:43 -0400
+Subject: [PATCH 42/46] gcc/libcpp: support -ffile-prefix-map=<old>=<new>
+
+Similar -fdebug-prefix-map, add option -ffile-prefix-map to map one
+directory name (old) to another (new) in __FILE__, __BASE_FILE__ and
+__builtin_FILE ().
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70268
+
+Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ gcc/c-family/c-opts.c | 13 +++++++
+ gcc/c-family/c.opt | 4 +++
+ gcc/dwarf2out.c | 1 +
+ gcc/gimplify.c | 3 ++
+ libcpp/Makefile.in | 10 +++---
+ libcpp/file-map.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++
+ libcpp/include/file-map.h | 30 ++++++++++++++++
+ libcpp/macro.c | 2 ++
+ 8 files changed, 150 insertions(+), 5 deletions(-)
+ create mode 100644 libcpp/file-map.c
+ create mode 100644 libcpp/include/file-map.h
+
+diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
+index fec58bc..7a0af43 100644
+--- a/gcc/c-family/c-opts.c
++++ b/gcc/c-family/c-opts.c
+@@ -38,6 +38,14 @@ along with GCC; see the file COPYING3. If not see
+ #include "opts.h"
+ #include "plugin.h" /* For PLUGIN_INCLUDE_FILE event. */
+ #include "mkdeps.h"
++#include "file-map.h"
++#include "c-target.h"
++#include "tm.h" /* For BYTES_BIG_ENDIAN,
++ DOLLARS_IN_IDENTIFIERS,
++ STDC_0_IN_SYSTEM_HEADERS,
++ TARGET_FLT_EVAL_METHOD_NON_DEFAULT and
++ TARGET_OPTF. */
++#include "tm_p.h" /* For C_COMMON_OVERRIDE_OPTIONS. */
+ #include "dumpfile.h"
+
+ #ifndef DOLLARS_IN_IDENTIFIERS
+@@ -503,6 +511,11 @@ c_common_handle_option (size_t scode, const char *arg, int value,
+ cpp_opts->narrow_charset = arg;
+ break;
+
++ case OPT_ffile_prefix_map_:
++ if (add_file_prefix_map (arg) < 0)
++ error ("invalid argument %qs to -ffile-prefix-map", arg);
++ break;
++
+ case OPT_fwide_exec_charset_:
+ cpp_opts->wide_charset = arg;
+ break;
+diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
+index 660da6c..31f7b34 100644
+--- a/gcc/c-family/c.opt
++++ b/gcc/c-family/c.opt
+@@ -1208,6 +1208,10 @@ fexec-charset=
+ C ObjC C++ ObjC++ Joined RejectNegative
+ -fexec-charset=<cset> Convert all strings and character constants to character set <cset>.
+
++ffile-prefix-map=
++C ObjC C++ ObjC++ Joined RejectNegative
++-ffile-prefix-map=<old=new> Map one directory name to another in __FILE__, __BASE_FILE__ and __builtin_FILE ()
++
+ fextended-identifiers
+ C ObjC C++ ObjC++
+ Permit universal character names (\\u and \\U) in identifiers.
+diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
+index 80f2df5..a2bfcc0 100644
+--- a/gcc/dwarf2out.c
++++ b/gcc/dwarf2out.c
+@@ -21672,6 +21672,7 @@ gen_producer_string (void)
+ case OPT_fltrans_output_list_:
+ case OPT_fresolution_:
+ case OPT_fdebug_prefix_map_:
++ case OPT_ffile_prefix_map_:
+ /* Ignore these. */
+ continue;
+ default:
+diff --git a/gcc/gimplify.c b/gcc/gimplify.c
+index e223e59..1433c25 100644
+--- a/gcc/gimplify.c
++++ b/gcc/gimplify.c
+@@ -57,6 +57,8 @@ along with GCC; see the file COPYING3. If not see
+ #include "gomp-constants.h"
+ #include "tree-dump.h"
+ #include "gimple-walk.h"
++#include "file-map.h"
++
+ #include "langhooks-def.h" /* FIXME: for lhd_set_decl_assembler_name */
+ #include "builtins.h"
+
+@@ -2432,6 +2434,7 @@ gimplify_call_expr (tree *expr_p, gimple_seq *pre_p, bool want_value)
+ case BUILT_IN_FILE:
+ {
+ const char *locfile = LOCATION_FILE (EXPR_LOCATION (*expr_p));
++ locfile = remap_file_filename (locfile);
+ *expr_p = build_string_literal (strlen (locfile) + 1, locfile);
+ return GS_OK;
+ }
+diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in
+index a7d7828..3d29572 100644
+--- a/libcpp/Makefile.in
++++ b/libcpp/Makefile.in
+@@ -84,12 +84,12 @@ DEPMODE = $(CXXDEPMODE)
+
+
+ libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \
+- expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \
+- mkdeps.o pch.o symtab.o traditional.o
++ expr.o file-map.o files.o identifiers.o init.o lex.o line-map.o \
++ macro.o mkdeps.o pch.o symtab.o traditional.o
+
+ libcpp_a_SOURCES = charset.c directives.c directives-only.c errors.c \
+- expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \
+- mkdeps.c pch.c symtab.c traditional.c
++ expr.c file-map.c files.c identifiers.c init.c lex.c line-map.c \
++ macro.c mkdeps.c pch.c symtab.c traditional.c
+
+ all: libcpp.a $(USED_CATALOGS)
+
+@@ -263,7 +263,7 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES)
+
+ TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \
+ include/line-map.h include/symtab.h include/cpp-id-data.h \
+- include/cpplib.h include/mkdeps.h system.h
++ include/cpplib.h include/mkdeps.h system.h include/file-map.h
+
+ TAGS: $(TAGS_SOURCES)
+ cd $(srcdir) && etags $(TAGS_SOURCES)
+diff --git a/libcpp/file-map.c b/libcpp/file-map.c
+new file mode 100644
+index 0000000..18035ef
+--- /dev/null
++++ b/libcpp/file-map.c
+@@ -0,0 +1,92 @@
++/* Map one directory name to another in __FILE__, __BASE_FILE__
++ and __builtin_FILE ().
++ Copyright (C) 2001-2016 Free Software Foundation, Inc.
++
++This program is free software; you can redistribute it and/or modify it
++under the terms of the GNU General Public License as published by the
++Free Software Foundation; either version 3, or (at your option) any
++later version.
++
++This program is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; see the file COPYING3. If not see
++<http://www.gnu.org/licenses/>.
++
++ In other words, you are welcome to use, share and improve this program.
++ You are forbidden to forbid anyone else to use, share and improve
++ what you give them. Help stamp out software-hoarding! */
++
++#include "config.h"
++#include "system.h"
++#include "file-map.h"
++
++/* Structure recording the mapping from source file and directory
++ names at compile time to __FILE__ */
++typedef struct file_prefix_map
++{
++ const char *old_prefix;
++ const char *new_prefix;
++ size_t old_len;
++ size_t new_len;
++ struct file_prefix_map *next;
++} file_prefix_map;
++
++/* Linked list of such structures. */
++static file_prefix_map *file_prefix_maps;
++
++/* Record prefix mapping of __FILE__. ARG is the argument to
++ -ffile-prefix-map and must be of the form OLD=NEW. */
++int
++add_file_prefix_map (const char *arg)
++{
++ file_prefix_map *map;
++ const char *p;
++
++ p = strchr (arg, '=');
++ if (!p)
++ {
++ fprintf(stderr, "invalid argument %qs to -ffile-prefix-map", arg);
++ return -1;
++ }
++ map = XNEW (file_prefix_map);
++ map->old_prefix = xstrndup (arg, p - arg);
++ map->old_len = p - arg;
++ p++;
++ map->new_prefix = xstrdup (p);
++ map->new_len = strlen (p);
++ map->next = file_prefix_maps;
++ file_prefix_maps = map;
++
++ return 0;
++}
++
++/* Perform user-specified mapping of __FILE__ prefixes. Return
++ the new name corresponding to filename. */
++
++const char *
++remap_file_filename (const char *filename)
++{
++ file_prefix_map *map;
++ char *s;
++ const char *name;
++ size_t name_len;
++
++ for (map = file_prefix_maps; map; map = map->next)
++ if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
++ break;
++ if (!map)
++ return filename;
++ name = filename + map->old_len;
++ name_len = strlen (name) + 1;
++ s = (char *) alloca (name_len + map->new_len);
++ memcpy (s, map->new_prefix, map->new_len);
++ memcpy (s + map->new_len, name, name_len);
++
++ return xstrdup (s);
++}
++
++
+diff --git a/libcpp/include/file-map.h b/libcpp/include/file-map.h
+new file mode 100644
+index 0000000..8750315
+--- /dev/null
++++ b/libcpp/include/file-map.h
+@@ -0,0 +1,30 @@
++/* Map one directory name to another in __FILE__, __BASE_FILE__
++ and __builtin_FILE ().
++ Copyright (C) 2001-2016 Free Software Foundation, Inc.
++
++This program is free software; you can redistribute it and/or modify it
++under the terms of the GNU General Public License as published by the
++Free Software Foundation; either version 3, or (at your option) any
++later version.
++
++This program is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with this program; see the file COPYING3. If not see
++<http://www.gnu.org/licenses/>.
++
++ In other words, you are welcome to use, share and improve this program.
++ You are forbidden to forbid anyone else to use, share and improve
++ what you give them. Help stamp out software-hoarding! */
++
++#ifndef LIBCPP_FILE_MAP_H
++#define LIBCPP_FILE_MAP_H
++
++const char * remap_file_filename (const char *filename);
++
++int add_file_prefix_map (const char *arg);
++
++#endif /* !LIBCPP_FILE_MAP_H */
+diff --git a/libcpp/macro.c b/libcpp/macro.c
+index c251553..3ceec3d 100644
+--- a/libcpp/macro.c
++++ b/libcpp/macro.c
+@@ -26,6 +26,7 @@ along with this program; see the file COPYING3. If not see
+ #include "system.h"
+ #include "cpplib.h"
+ #include "internal.h"
++#include "file-map.h"
+
+ typedef struct macro_arg macro_arg;
+ /* This structure represents the tokens of a macro argument. These
+@@ -301,6 +302,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
+ if (!name)
+ abort ();
+ }
++ name = remap_file_filename (name);
+ len = strlen (name);
+ buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
+ result = buf;
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
new file mode 100644
index 000000000..0077f80e4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0043-Reuse-fdebug-prefix-map-to-replace-ffile-prefix-map.patch
@@ -0,0 +1,43 @@
+From 25c87c6cc40ec5cc6965f8bfb215bec01abd6d82 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 16 Mar 2016 05:39:59 -0400
+Subject: [PATCH 43/46] Reuse -fdebug-prefix-map to replace -ffile-prefix-map
+
+The oe-core may use external toolchain to compile,
+which may not support -ffile-prefix-map.
+
+Since we use -fdebug-prefix-map to do the same thing,
+so we could reuse it to replace -ffile-prefix-map.
+
+Upstream-Status: Inappropriate[oe-core specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ gcc/opts-global.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gcc/opts-global.c b/gcc/opts-global.c
+index b7e5232..121d7b9 100644
+--- a/gcc/opts-global.c
++++ b/gcc/opts-global.c
+@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
+ #include "langhooks.h"
+ #include "dbgcnt.h"
+ #include "debug.h"
++#include "file-map.h"
+ #include "output.h"
+ #include "plugin.h"
+ #include "toplev.h"
+@@ -357,6 +358,9 @@ handle_common_deferred_options (void)
+
+ case OPT_fdebug_prefix_map_:
+ add_debug_prefix_map (opt->arg);
++
++ /* Reuse -fdebug-prefix-map to replace -ffile-prefix-map */
++ add_file_prefix_map (opt->arg);
+ break;
+
+ case OPT_fdump_:
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch
new file mode 100644
index 000000000..5d41af44a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0044-gcc-final.c-fdebug-prefix-map-support-to-remap-sourc.patch
@@ -0,0 +1,54 @@
+From 6ab23e88aef22bbabee7b9600c459ff39547bb66 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 24 Mar 2016 11:23:14 -0400
+Subject: [PATCH 44/46] gcc/final.c: -fdebug-prefix-map support to remap
+ sources with relative path
+
+PR other/70428
+* final.c (remap_debug_filename): Use lrealpath to translate
+relative path before remapping
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70428
+Upstream-Status: Submitted [gcc-patches@gcc.gnu.org]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ gcc/final.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/final.c b/gcc/final.c
+index 55cf509..23293e5 100644
+--- a/gcc/final.c
++++ b/gcc/final.c
+@@ -1554,16 +1554,25 @@ remap_debug_filename (const char *filename)
+ const char *name;
+ size_t name_len;
+
++ /* Support to remap filename with relative path */
++ char *realpath = lrealpath (filename);
++ if (realpath == NULL)
++ return filename;
++
+ for (map = debug_prefix_maps; map; map = map->next)
+- if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
++ if (filename_ncmp (realpath, map->old_prefix, map->old_len) == 0)
+ break;
+ if (!map)
+- return filename;
+- name = filename + map->old_len;
++ {
++ free (realpath);
++ return filename;
++ }
++ name = realpath + map->old_len;
+ name_len = strlen (name) + 1;
+ s = (char *) alloca (name_len + map->new_len);
+ memcpy (s, map->new_prefix, map->new_len);
+ memcpy (s + map->new_len, name, name_len);
++ free (realpath);
+ return ggc_strdup (s);
+ }
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0045-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0045-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
new file mode 100644
index 000000000..c62b727d6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0045-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
@@ -0,0 +1,125 @@
+From 5a47d404ea29e2547269e3ddf38754462d93f903 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 Apr 2016 20:03:28 +0000
+Subject: [PATCH 45/46] libgcc: Add knob to use ldbl-128 on ppc
+
+musl does not support ldbl 128 so we can not assume
+that linux as a whole supports ldbl-128 bits, instead
+act upon configure option passed to gcc and assume no
+on musl and yes otherwise if no option is passed since
+default behaviour is to assume ldbl128 it does not
+change the defaults
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ libgcc/Makefile.in | 1 +
+ libgcc/config/rs6000/t-linux | 5 ++++-
+ libgcc/configure | 18 ++++++++++++++++++
+ libgcc/configure.ac | 12 ++++++++++++
+ 4 files changed, 35 insertions(+), 1 deletion(-)
+ mode change 100644 => 100755 libgcc/configure
+
+diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
+index f09b39b..296cf0f 100644
+--- a/libgcc/Makefile.in
++++ b/libgcc/Makefile.in
+@@ -43,6 +43,7 @@ enable_vtable_verify = @enable_vtable_verify@
+ enable_decimal_float = @enable_decimal_float@
+ fixed_point = @fixed_point@
+ with_aix_soname = @with_aix_soname@
++with_ldbl128 = @with_ldbl128@
+
+ host_noncanonical = @host_noncanonical@
+ real_host_noncanonical = @real_host_noncanonical@
+diff --git a/libgcc/config/rs6000/t-linux b/libgcc/config/rs6000/t-linux
+index 4f6d4c4..c50dd94 100644
+--- a/libgcc/config/rs6000/t-linux
++++ b/libgcc/config/rs6000/t-linux
+@@ -1,3 +1,6 @@
+ SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
+
+-HOST_LIBGCC2_CFLAGS += -mlong-double-128 -mno-minimal-toc
++ifeq ($(with_ldbl128),yes)
++HOST_LIBGCC2_CFLAGS += -mlong-double-128
++endif
++HOST_LIBGCC2_CFLAGS += -mno-minimal-toc
+diff --git a/libgcc/configure b/libgcc/configure
+old mode 100644
+new mode 100755
+index e7d6c75..e9a9019
+--- a/libgcc/configure
++++ b/libgcc/configure
+@@ -614,6 +614,7 @@ build_vendor
+ build_cpu
+ build
+ with_aix_soname
++with_ldbl128
+ enable_vtable_verify
+ enable_shared
+ libgcc_topdir
+@@ -663,6 +664,7 @@ with_cross_host
+ with_ld
+ enable_shared
+ enable_vtable_verify
++with_long_double_128
+ with_aix_soname
+ enable_version_specific_runtime_libs
+ with_slibdir
+@@ -1319,6 +1321,7 @@ Optional Packages:
+ --with-target-subdir=SUBDIR Configuring in a subdirectory for target
+ --with-cross-host=HOST Configuring with a cross compiler
+ --with-ld arrange to use the specified ld (full pathname)
++ --with-long-double-128 use 128-bit long double by default
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX
+@@ -2201,6 +2204,21 @@ fi
+
+
+
++# Check whether --with-long-double-128 was given.
++if test "${with_long_double_128+set}" = set; then :
++ withval=$with_long_double_128; with_ldbl128="$with_long_double_128"
++else
++ case "${host}" in
++ power*-*-musl*)
++ with_ldbl128="no";;
++ *) with_ldbl128="yes";;
++ esac
++
++fi
++
++
++
++
+ # Check whether --with-aix-soname was given.
+ if test "${with_aix_soname+set}" = set; then :
+ withval=$with_aix_soname; case "${host}:${enable_shared}" in
+diff --git a/libgcc/configure.ac b/libgcc/configure.ac
+index 269997f..81dc3ba 100644
+--- a/libgcc/configure.ac
++++ b/libgcc/configure.ac
+@@ -77,6 +77,18 @@ AC_ARG_ENABLE(vtable-verify,
+ [enable_vtable_verify=no])
+ AC_SUBST(enable_vtable_verify)
+
++AC_ARG_WITH(long-double-128,
++[AS_HELP_STRING([--with-long-double-128],
++ [use 128-bit long double by default])],
++ with_ldbl128="$with_long_double_128",
++[case "${host}" in
++ power*-*-musl*)
++ with_ldbl128="no";;
++ *) with_ldbl128="yes";;
++ esac
++])
++AC_SUBST(with_ldbl128)
++
+ AC_ARG_WITH(aix-soname,
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX])],
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
new file mode 100644
index 000000000..390037f7b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0046-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
@@ -0,0 +1,29 @@
+From 513bf3c33e2f551f08bd57605091d5ddeba3536b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 4 May 2016 21:11:34 -0700
+Subject: [PATCH 46/46] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
+
+Upstream-Status: Pending
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libgcc/config/t-slibgcc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libgcc/config/t-slibgcc b/libgcc/config/t-slibgcc
+index 8c5f890..29be909 100644
+--- a/libgcc/config/t-slibgcc
++++ b/libgcc/config/t-slibgcc
+@@ -32,7 +32,7 @@ SHLIB_INSTALL_SOLINK = $(LN_S) $(SHLIB_SONAME) \
+ $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK)
+
+ SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+- $(SHLIB_LDFLAGS) \
++ $(LDFLAGS) $(SHLIB_LDFLAGS) \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
new file mode 100644
index 000000000..ed6cd6905
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0047-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -0,0 +1,85 @@
+From 0a9ed0479203cb7e69c3745b0c259007410f39ba Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <nsz@port70.net>
+Date: Sat, 24 Oct 2015 20:09:53 +0000
+Subject: [PATCH 47/47] libgcc_s: Use alias for __cpu_indicator_init instead of
+ symver
+
+Adapter from
+
+https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html
+
+This fix was debated but hasnt been applied gcc upstream since
+they expect musl to support '@' in symbol versioning which is
+a sun/gnu versioning extention. This patch however avoids the
+need for the '@' symbols at all
+
+libgcc/Changelog:
+
+2015-05-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add.
+ (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove.
+
+ * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER.
+
+gcc/Changelog:
+
+2015-05-11 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * config/i386/i386.c (ix86_expand_builtin): Make __builtin_cpu_init
+ call __cpu_indicator_init_local instead of __cpu_indicator_init.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Rejected
+
+ gcc/config/i386/i386.c | 4 ++--
+ libgcc/config/i386/cpuinfo.c | 6 +++---
+ libgcc/config/i386/t-linux | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
+index 861a029..1c97d72 100644
+--- a/gcc/config/i386/i386.c
++++ b/gcc/config/i386/i386.c
+@@ -40323,10 +40323,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
+ {
+ case IX86_BUILTIN_CPU_INIT:
+ {
+- /* Make it call __cpu_indicator_init in libgcc. */
++ /* Make it call __cpu_indicator_init_local in libgcc.a. */
+ tree call_expr, fndecl, type;
+ type = build_function_type_list (integer_type_node, NULL_TREE);
+- fndecl = build_fn_decl ("__cpu_indicator_init", type);
++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
+ call_expr = build_call_expr (fndecl, 0);
+ return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
+ }
+diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
+index 8c2248d..6c82f15 100644
+--- a/libgcc/config/i386/cpuinfo.c
++++ b/libgcc/config/i386/cpuinfo.c
+@@ -485,7 +485,7 @@ __cpu_indicator_init (void)
+ return 0;
+ }
+
+-#if defined SHARED && defined USE_ELF_SYMVER
+-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
+-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
++#ifndef SHARED
++int __cpu_indicator_init_local (void)
++ __attribute__ ((weak, alias ("__cpu_indicator_init")));
+ #endif
+diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
+index 11bb46e..4f47f7b 100644
+--- a/libgcc/config/i386/t-linux
++++ b/libgcc/config/i386/t-linux
+@@ -3,4 +3,4 @@
+ # t-slibgcc-elf-ver and t-linux
+ SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
+
+-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER
++HOST_LIBGCC2_CFLAGS += -mlong-double-80
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch
new file mode 100644
index 000000000..9c39c7f7a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/0048-ARM-PR-target-71056-Don-t-use-vectorized-builtins-wh.patch
@@ -0,0 +1,92 @@
+From 84d2a5509892b65ed60d39e6e2f9719e3762e40e Mon Sep 17 00:00:00 2001
+From: ktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Tue, 31 May 2016 08:29:39 +0000
+Subject: [PATCH] [ARM] PR target/71056: Don't use vectorized builtins when
+ NEON is not available
+
+ PR target/71056
+ * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
+ NULL_TREE early if NEON is not available. Remove now redundant check
+ in ARM_CHECK_BUILTIN_MODE.
+
+ * gcc.target/arm/pr71056.c: New test.
+
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-6-branch@236910 138bc75d-0d04-0410-961f-82ee72b054a4
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ gcc/ChangeLog | 7 +++++++
+ gcc/config/arm/arm-builtins.c | 6 +++++-
+ gcc/testsuite/ChangeLog | 5 +++++
+ gcc/testsuite/gcc.target/arm/pr71056.c | 32 ++++++++++++++++++++++++++++++++
+ 4 files changed, 49 insertions(+), 1 deletion(-)
+ create mode 100644 gcc/testsuite/gcc.target/arm/pr71056.c
+
+diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
+index 90fb40f..68b2839 100644
+--- a/gcc/config/arm/arm-builtins.c
++++ b/gcc/config/arm/arm-builtins.c
+@@ -2861,6 +2861,10 @@ arm_builtin_vectorized_function (unsigned int fn, tree type_out, tree type_in)
+ int in_n, out_n;
+ bool out_unsigned_p = TYPE_UNSIGNED (type_out);
+
++ /* Can't provide any vectorized builtins when we can't use NEON. */
++ if (!TARGET_NEON)
++ return NULL_TREE;
++
+ if (TREE_CODE (type_out) != VECTOR_TYPE
+ || TREE_CODE (type_in) != VECTOR_TYPE)
+ return NULL_TREE;
+@@ -2875,7 +2879,7 @@ arm_builtin_vectorized_function (unsigned int fn, tree type_out, tree type_in)
+ NULL_TREE is returned if no such builtin is available. */
+ #undef ARM_CHECK_BUILTIN_MODE
+ #define ARM_CHECK_BUILTIN_MODE(C) \
+- (TARGET_NEON && TARGET_FPU_ARMV8 \
++ (TARGET_FPU_ARMV8 \
+ && flag_unsafe_math_optimizations \
+ && ARM_CHECK_BUILTIN_MODE_1 (C))
+
+diff --git a/gcc/testsuite/gcc.target/arm/pr71056.c b/gcc/testsuite/gcc.target/arm/pr71056.c
+new file mode 100644
+index 0000000..136754e
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/arm/pr71056.c
+@@ -0,0 +1,32 @@
++/* PR target/71056. */
++/* { dg-do compile } */
++/* { dg-require-effective-target arm_vfp3_ok } */
++/* { dg-options "-O3 -mfpu=vfpv3" } */
++
++/* Check that compiling for a non-NEON target doesn't try to introduce
++ a NEON vectorized builtin. */
++
++extern char *buff;
++int f2 ();
++struct T1
++{
++ int reserved[2];
++ unsigned int ip;
++ unsigned short cs;
++ unsigned short rsrv2;
++};
++void
++f3 (const char *p)
++{
++ struct T1 x;
++ __builtin_memcpy (&x, p, sizeof (struct T1));
++ x.reserved[0] = __builtin_bswap32 (x.reserved[0]);
++ x.reserved[1] = __builtin_bswap32 (x.reserved[1]);
++ x.ip = __builtin_bswap32 (x.ip);
++ x.cs = x.cs << 8 | x.cs >> 8;
++ x.rsrv2 = x.rsrv2 << 8 | x.rsrv2 >> 8;
++ if (f2 ())
++ {
++ __builtin_memcpy (buff, "\n", 1);
++ }
++}
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/CVE-2016-4490.patch b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/CVE-2016-4490.patch
new file mode 100644
index 000000000..f32e91d4f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-6.2/CVE-2016-4490.patch
@@ -0,0 +1,290 @@
+From 7d235b1b5ea35352c54957ef5530d9a02c46962f Mon Sep 17 00:00:00 2001
+From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Mon, 2 May 2016 17:06:40 +0000
+Subject: [PATCH] =?UTF-8?q?Demangler=20integer=20overflow=20fixes=20from?=
+ =?UTF-8?q?=20Marcel=20B=C3=B6hme.?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ PR c++/70498
+ * cp-demangle.c: Parse numbers as integer instead of long to avoid
+ overflow after sanity checks. Include <limits.h> if available.
+ (INT_MAX): Define if necessary.
+ (d_make_template_param): Takes integer argument instead of long.
+ (d_make_function_param): Likewise.
+ (d_append_num): Likewise.
+ (d_identifier): Likewise.
+ (d_number): Parse as and return integer.
+ (d_compact_number): Handle overflow.
+ (d_source_name): Change variable type to integer for parsed number.
+ (d_java_resource): Likewise.
+ (d_special_name): Likewise.
+ (d_discriminator): Likewise.
+ (d_unnamed_type): Likewise.
+ * testsuite/demangle-expected: Add regression test cases.
+
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@235767 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Upstream-Status: Backport
+CVE: CVE-2016-4490
+[Yocto #9632]
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ libiberty/ChangeLog | 19 +++++++++++++
+ libiberty/cp-demangle.c | 52 ++++++++++++++++++++---------------
+ libiberty/testsuite/demangle-expected | 14 ++++++++--
+ 3 files changed, 61 insertions(+), 24 deletions(-)
+
+Index: git/libiberty/ChangeLog
+===================================================================
+--- git.orig/libiberty/ChangeLog
++++ git/libiberty/ChangeLog
+@@ -1,3 +1,22 @@
++2016-05-02 Marcel Böhme <boehme.marcel@gmail.com>
++
++ PR c++/70498
++ * cp-demangle.c: Parse numbers as integer instead of long to avoid
++ overflow after sanity checks. Include <limits.h> if available.
++ (INT_MAX): Define if necessary.
++ (d_make_template_param): Takes integer argument instead of long.
++ (d_make_function_param): Likewise.
++ (d_append_num): Likewise.
++ (d_identifier): Likewise.
++ (d_number): Parse as and return integer.
++ (d_compact_number): Handle overflow.
++ (d_source_name): Change variable type to integer for parsed number.
++ (d_java_resource): Likewise.
++ (d_special_name): Likewise.
++ (d_discriminator): Likewise.
++ (d_unnamed_type): Likewise.
++ * testsuite/demangle-expected: Add regression test cases.
++
+ 2016-04-27 Release Manager
+
+ * GCC 6.1.0 released.
+Index: git/libiberty/cp-demangle.c
+===================================================================
+--- git.orig/libiberty/cp-demangle.c
++++ git/libiberty/cp-demangle.c
+@@ -128,6 +128,13 @@ extern char *alloca ();
+ # endif /* alloca */
+ #endif /* HAVE_ALLOCA_H */
+
++#ifdef HAVE_LIMITS_H
++#include <limits.h>
++#endif
++#ifndef INT_MAX
++# define INT_MAX (int)(((unsigned int) ~0) >> 1) /* 0x7FFFFFFF */
++#endif
++
+ #include "ansidecl.h"
+ #include "libiberty.h"
+ #include "demangle.h"
+@@ -398,7 +405,7 @@ d_make_dtor (struct d_info *, enum gnu_v
+ struct demangle_component *);
+
+ static struct demangle_component *
+-d_make_template_param (struct d_info *, long);
++d_make_template_param (struct d_info *, int);
+
+ static struct demangle_component *
+ d_make_sub (struct d_info *, const char *, int);
+@@ -421,9 +428,9 @@ static struct demangle_component *d_unqu
+
+ static struct demangle_component *d_source_name (struct d_info *);
+
+-static long d_number (struct d_info *);
++static int d_number (struct d_info *);
+
+-static struct demangle_component *d_identifier (struct d_info *, long);
++static struct demangle_component *d_identifier (struct d_info *, int);
+
+ static struct demangle_component *d_operator_name (struct d_info *);
+
+@@ -1119,7 +1126,7 @@ d_make_dtor (struct d_info *di, enum gnu
+ /* Add a new template parameter. */
+
+ static struct demangle_component *
+-d_make_template_param (struct d_info *di, long i)
++d_make_template_param (struct d_info *di, int i)
+ {
+ struct demangle_component *p;
+
+@@ -1135,7 +1142,7 @@ d_make_template_param (struct d_info *di
+ /* Add a new function parameter. */
+
+ static struct demangle_component *
+-d_make_function_param (struct d_info *di, long i)
++d_make_function_param (struct d_info *di, int i)
+ {
+ struct demangle_component *p;
+
+@@ -1620,7 +1627,7 @@ d_unqualified_name (struct d_info *di)
+ static struct demangle_component *
+ d_source_name (struct d_info *di)
+ {
+- long len;
++ int len;
+ struct demangle_component *ret;
+
+ len = d_number (di);
+@@ -1633,12 +1640,12 @@ d_source_name (struct d_info *di)
+
+ /* number ::= [n] <(non-negative decimal integer)> */
+
+-static long
++static int
+ d_number (struct d_info *di)
+ {
+ int negative;
+ char peek;
+- long ret;
++ int ret;
+
+ negative = 0;
+ peek = d_peek_char (di);
+@@ -1681,7 +1688,7 @@ d_number_component (struct d_info *di)
+ /* identifier ::= <(unqualified source code identifier)> */
+
+ static struct demangle_component *
+-d_identifier (struct d_info *di, long len)
++d_identifier (struct d_info *di, int len)
+ {
+ const char *name;
+
+@@ -1702,7 +1709,7 @@ d_identifier (struct d_info *di, long le
+ /* Look for something which looks like a gcc encoding of an
+ anonymous namespace, and replace it with a more user friendly
+ name. */
+- if (len >= (long) ANONYMOUS_NAMESPACE_PREFIX_LEN + 2
++ if (len >= (int) ANONYMOUS_NAMESPACE_PREFIX_LEN + 2
+ && memcmp (name, ANONYMOUS_NAMESPACE_PREFIX,
+ ANONYMOUS_NAMESPACE_PREFIX_LEN) == 0)
+ {
+@@ -1870,7 +1877,7 @@ d_java_resource (struct d_info *di)
+ {
+ struct demangle_component *p = NULL;
+ struct demangle_component *next = NULL;
+- long len, i;
++ int len, i;
+ char c;
+ const char *str;
+
+@@ -2012,7 +2019,7 @@ d_special_name (struct d_info *di)
+ case 'C':
+ {
+ struct demangle_component *derived_type;
+- long offset;
++ int offset;
+ struct demangle_component *base_type;
+
+ derived_type = cplus_demangle_type (di);
+@@ -2946,10 +2953,10 @@ d_pointer_to_member_type (struct d_info
+
+ /* <non-negative number> _ */
+
+-static long
++static int
+ d_compact_number (struct d_info *di)
+ {
+- long num;
++ int num;
+ if (d_peek_char (di) == '_')
+ num = 0;
+ else if (d_peek_char (di) == 'n')
+@@ -2957,7 +2964,7 @@ d_compact_number (struct d_info *di)
+ else
+ num = d_number (di) + 1;
+
+- if (! d_check_char (di, '_'))
++ if (num < 0 || ! d_check_char (di, '_'))
+ return -1;
+ return num;
+ }
+@@ -2969,7 +2976,7 @@ d_compact_number (struct d_info *di)
+ static struct demangle_component *
+ d_template_param (struct d_info *di)
+ {
+- long param;
++ int param;
+
+ if (! d_check_char (di, 'T'))
+ return NULL;
+@@ -3171,9 +3178,10 @@ d_expression_1 (struct d_info *di)
+ }
+ else
+ {
+- index = d_compact_number (di) + 1;
+- if (index == 0)
++ index = d_compact_number (di);
++ if (index == INT_MAX || index == -1)
+ return NULL;
++ index ++;
+ }
+ return d_make_function_param (di, index);
+ }
+@@ -3502,7 +3510,7 @@ d_local_name (struct d_info *di)
+ static int
+ d_discriminator (struct d_info *di)
+ {
+- long discrim;
++ int discrim;
+
+ if (d_peek_char (di) != '_')
+ return 1;
+@@ -3558,7 +3566,7 @@ static struct demangle_component *
+ d_unnamed_type (struct d_info *di)
+ {
+ struct demangle_component *ret;
+- long num;
++ int num;
+
+ if (! d_check_char (di, 'U'))
+ return NULL;
+@@ -4086,10 +4094,10 @@ d_append_string (struct d_print_info *dp
+ }
+
+ static inline void
+-d_append_num (struct d_print_info *dpi, long l)
++d_append_num (struct d_print_info *dpi, int l)
+ {
+ char buf[25];
+- sprintf (buf,"%ld", l);
++ sprintf (buf,"%d", l);
+ d_append_string (dpi, buf);
+ }
+
+Index: git/libiberty/testsuite/demangle-expected
+===================================================================
+--- git.orig/libiberty/testsuite/demangle-expected
++++ git/libiberty/testsuite/demangle-expected
+@@ -4422,12 +4422,22 @@ void baz<int>(A<sizeof (foo((int)(), (fl
+ _Z3fooI1FEN1XIXszdtcl1PclcvT__EEE5arrayEE4TypeEv
+ X<sizeof ((P(((F)())())).array)>::Type foo<F>()
+ #
+-# Tests a use-after-free problem
++# Tests a use-after-free problem PR70481
+
+ _Q.__0
+ ::Q.(void)
+ #
+-# Tests a use-after-free problem
++# Tests a use-after-free problem PR70481
+
+ _Q10-__9cafebabe.
+ cafebabe.::-(void)
++#
++# Tests integer overflow problem PR70492
++
++__vt_90000000000cafebabe
++__vt_90000000000cafebabe
++#
++# Tests write access violation PR70498
++
++_Z80800000000000000000000
++_Z80800000000000000000000
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-common.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-common.inc
index e4fd4d6f7..f540b4d96 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-common.inc
@@ -33,6 +33,8 @@ def get_gcc_ppc_plt_settings(bb, d):
def get_long_double_setting(bb, d):
if d.getVar('TRANSLATED_TARGET_ARCH', True) in [ 'powerpc', 'powerpc64' ] and d.getVar('TCLIBC', True) in [ 'uclibc', 'glibc' ]:
return "--with-long-double-128"
+ else:
+ return "--without-long-double-128"
return ""
def get_gcc_multiarch_setting(bb, d):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
index f4f76bda5..ddebbb841 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -44,6 +44,10 @@ EXTRA_OECONF = "\
${@get_gcc_multiarch_setting(bb, d)} \
"
+# Set this here since GCC configure won't auto-detect and enable
+# initfini-arry when cross compiling.
+EXTRA_OECONF_append = " --enable-initfini-array"
+
export gcc_cv_collect2_libs = 'none required'
# We need to set gcc_cv_collect2_libs else there is cross-compilation badness
# in the config.log files (which might not get generated until do_compile
@@ -57,6 +61,10 @@ EXTRA_OECONF_append_mips64 = " --with-abi=64 --with-arch-64=mips64 --with-tune-6
EXTRA_OECONF_append_mips64el = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64"
EXTRA_OECONF_append_mips64n32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64"
EXTRA_OECONF_append_mips64eln32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64"
+EXTRA_OECONF_append_mipsisa32r6el = " --with-abi=32 --with-arch=mips32r6"
+EXTRA_OECONF_append_mipsisa32r6 = " --with-abi=32 --with-arch=mips32r6"
+EXTRA_OECONF_append_mipsisa64r6el = " --with-abi=64 --with-arch-64=mips64r6"
+EXTRA_OECONF_append_mipsisa64r6 = " --with-abi=64 --with-arch-64=mips64r6"
# ARMv6+ adds atomic instructions that affect the ABI in libraries built
# with TUNE_CCARGS in gcc-runtime. Make the compiler default to a
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.4.bb
index bf53c5cd7..bf53c5cd7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_6.2.bb
index bf53c5cd7..bf53c5cd7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-canadian_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc
index 048b5302b..dcf22710a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial.inc
@@ -77,7 +77,7 @@ do_install () {
# gcc-runtime installs libgcc into a special location in staging since it breaks doing a standalone build
case ${PN} in
- *gcc-cross-initial-${TARGET_ARCH}|*gcc-crosssdk-initial-${TARGET_ARCH})
+ *gcc-cross-initial-${TARGET_ARCH}|*gcc-crosssdk-initial-${SDK_SYS})
dest=${D}/${includedir}/gcc-build-internal-initial-${TARGET_SYS}
hardlinkdir . $dest
;;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.4.bb
index 4c73e5ce6..4c73e5ce6 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_6.2.bb
index 4c73e5ce6..4c73e5ce6 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross-initial_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross.inc
index f47936061..cc465a279 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -13,6 +13,11 @@ PN = "gcc-cross-${TARGET_ARCH}"
require gcc-configure-common.inc
+# While we want the 'gnu' hash style, we explicitly set it to sysv here to
+# ensure that any recipe which doesn't obey our LDFLAGS (which also set it to
+# gnu) will hit a QA failure.
+LINKER_HASH_STYLE ?= "sysv"
+
EXTRA_OECONF += "--enable-poison-system-directories"
EXTRA_OECONF_append_sh4 = " \
--with-multilib-list= \
@@ -183,12 +188,15 @@ do_install () {
# gcc-runtime installs libgcc into a special location in staging since it breaks doing a standalone build
case ${PN} in
- *gcc-cross-${TARGET_ARCH}|*gcc-crosssdk-${TARGET_ARCH})
+ *gcc-cross-${TARGET_ARCH}|*gcc-crosssdk-${SDK_SYS})
dest=${D}/${includedir}/gcc-build-internal-${TARGET_SYS}
hardlinkdir . $dest
;;
esac
}
+# This is reflected in the recipe name and target gcc shouldn't depend
+# on SDK settings either
+do_install[vardepsexclude] += "SDK_SYS"
do_package[noexec] = "1"
do_packagedata[noexec] = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.4.bb
index b43cca0c5..b43cca0c5 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_6.2.bb
index b43cca0c5..b43cca0c5 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-cross_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
index 7d2599cb6..08eda5d4c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial.inc
@@ -1,6 +1,6 @@
inherit crosssdk
-PN = "gcc-crosssdk-initial-${TARGET_ARCH}"
+PN = "gcc-crosssdk-initial-${SDK_SYS}"
SYSTEMHEADERS = "${SDKPATHNATIVE}${prefix_nativesdk}/include"
SYSTEMLIBS = "${SDKPATHNATIVE}${base_libdir_nativesdk}/"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.4.bb
index fd90e1140..fd90e1140 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_6.2.bb
index fd90e1140..fd90e1140 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk-initial_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
index 53f880f39..cda292779 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
@@ -1,6 +1,6 @@
inherit crosssdk
-PN = "gcc-crosssdk-${TARGET_ARCH}"
+PN = "gcc-crosssdk-${SDK_SYS}"
SYSTEMHEADERS = "${SDKPATHNATIVE}${prefix_nativesdk}/include"
SYSTEMLIBS = "${SDKPATHNATIVE}${base_libdir_nativesdk}/"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.4.bb
index 40a6c4fef..40a6c4fef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_6.2.bb
index 40a6c4fef..40a6c4fef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-crosssdk_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime.inc
index 8639c1c49..15252f1a4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -1,5 +1,7 @@
require gcc-configure-common.inc
+SUMMARY = "Runtime libraries from GCC"
+
# Over-ride the LICENSE set by gcc-${PV}.inc to remove "& GPLv3"
# All gcc-runtime packages are now covered by the runtime exception.
LICENSE = "GPL-3.0-with-GCC-exception"
@@ -19,6 +21,10 @@ RUNTIMELIBITM_mips = ""
RUNTIMELIBITM_mipsel = ""
RUNTIMELIBITM_mips64 = ""
RUNTIMELIBITM_mips64el = ""
+RUNTIMELIBITM_mipsisa32r6 = ""
+RUNTIMELIBITM_mipsisa32r6el = ""
+RUNTIMELIBITM_mipsisa64r6 = ""
+RUNTIMELIBITM_mipsisa64r6el = ""
RUNTIMELIBITM_nios2 = ""
RUNTIMELIBITM_microblaze = ""
@@ -73,9 +79,39 @@ do_install () {
if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}
fi
+
+}
+
+do_install_append_class-target () {
if [ "${TARGET_OS}" = "linux-gnuspe" ]; then
ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
fi
+
+ if [ "${TARGET_OS}" = "linux-gnun32" ]; then
+ if [ "${MULTILIBS}" != "" ]; then
+ mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux
+ ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32
+ else
+ ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+ fi
+ fi
+ if [ "${TARGET_OS}" = "linux-gnux32" ]; then
+ if [ "${MULTILIBS}" != "" ]; then
+ mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux
+ ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32
+ else
+ ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+ fi
+ fi
+
+ if [ "${TCLIBC}" != "glibc" ]; then
+ case "${TARGET_OS}" in
+ "linux-musl" | "linux-uclibc" | "linux-*spe") extra_target_os="linux";;
+ "linux-musleabi" | "linux-uclibceabi") extra_target_os="linux-gnueabi";;
+ *) extra_target_os="linux";;
+ esac
+ ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
chown -R root:root ${D}
}
@@ -123,73 +159,98 @@ FILES_${PN}-dbg += "\
"
FILES_libg2c = "${target_libdir}/libg2c.so.*"
+SUMMARY_libg2c = "Companion runtime library for g77"
FILES_libg2c-dev = "\
${libdir}/libg2c.so \
${libdir}/libg2c.a \
${libdir}/libfrtbegin.a \
"
+SUMMARY_libg2c-dev = "Companion runtime library for g77 - development files"
FILES_libstdc++ = "${libdir}/libstdc++.so.*"
+SUMMARY_libstdc++ = "GNU standard C++ library"
FILES_libstdc++-dev = "\
${includedir}/c++/ \
${libdir}/libstdc++.so \
${libdir}/libstdc++*.la \
${libdir}/libsupc++.la \
"
+SUMMARY_libstdc++-dev = "GNU standard C++ library - development files"
FILES_libstdc++-staticdev = "\
${libdir}/libstdc++*.a \
${libdir}/libsupc++.a \
"
+SUMMARY_libstdc++-staticdev = "GNU standard C++ library - static development files"
FILES_libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch"
+SUMMARY_libstdc++-precompile-dev = "GNU standard C++ library - precompiled header files"
FILES_libssp = "${libdir}/libssp.so.*"
+SUMMARY_libssp = "GNU stack smashing protection library"
FILES_libssp-dev = "\
${libdir}/libssp*.so \
${libdir}/libssp*_nonshared.a \
${libdir}/libssp*.la \
${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \
"
+SUMMARY_libssp-dev = "GNU stack smashing protection library - development files"
FILES_libssp-staticdev = "${libdir}/libssp*.a"
+SUMMARY_libssp-staticdev = "GNU stack smashing protection library - static development files"
FILES_libquadmath = "${libdir}/libquadmath*.so.*"
+SUMMARY_libquadmath = "GNU quad-precision math library"
FILES_libquadmath-dev = "\
${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \
${libdir}/libquadmath*.so \
${libdir}/libquadmath.la \
"
+SUMMARY_libquadmath-dev = "GNU quad-precision math library - development files"
FILES_libquadmath-staticdev = "${libdir}/libquadmath.a"
+SUMMARY_libquadmath-staticdev = "GNU quad-precision math library - static development files"
+# NOTE: mudflap has been removed as of gcc 4.9 and has been superseded by the address sanitiser
FILES_libmudflap = "${libdir}/libmudflap*.so.*"
+SUMMARY_libmudflap = "Pointer debugging library for gcc"
FILES_libmudflap-dev = "\
${libdir}/libmudflap*.so \
${libdir}/libmudflap.la \
"
+SUMMARY_libmudflap-dev = "Pointer debugging library for gcc - development files"
FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
+SUMMARY_libmudflap-staticdev = "Pointer debugging library for gcc - static development files"
FILES_libgomp = "${libdir}/libgomp*${SOLIBS}"
+SUMMARY_libgomp = "GNU OpenMP parallel programming library"
FILES_libgomp-dev = "\
${libdir}/libgomp*${SOLIBSDEV} \
${libdir}/libgomp*.la \
${libdir}/libgomp.spec \
${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \
"
+SUMMARY_libgomp-dev = "GNU OpenMP parallel programming library - development files"
FILES_libgomp-staticdev = "${libdir}/libgomp*.a"
+SUMMARY_libgomp-staticdev = "GNU OpenMP parallel programming library - static development files"
FILES_libatomic = "${libdir}/libatomic.so.*"
+SUMMARY_libatomic = "GNU C++11 atomics support library"
FILES_libatomic-dev = "\
${libdir}/libatomic.so \
${libdir}/libatomic.la \
"
+SUMMARY_libatomic-dev = "GNU C++11 atomics support library - development files"
FILES_libatomic-staticdev = "${libdir}/libatomic.a"
+SUMMARY_libatomic-staticdev = "GNU C++11 atomics support library - static development files"
FILES_libitm = "${libdir}/libitm.so.*"
+SUMMARY_libitm = "GNU transactional memory support library"
FILES_libitm-dev = "\
${libdir}/libitm.so \
${libdir}/libitm.la \
${libdir}/libitm.spec \
"
+SUMMARY_libitm-dev = "GNU transactional memory support library - development files"
FILES_libitm-staticdev = "${libdir}/libitm.a"
+SUMMARY_libitm-staticdev = "GNU transactional memory support library - static development files"
do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_4.9.bb
deleted file mode 100644
index 497d69168..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_4.9.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-require gcc-runtime.inc
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.4.bb
index 8f31e7792..8f31e7792 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_6.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_6.2.bb
new file mode 100644
index 000000000..8f31e7792
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-runtime_6.2.bb
@@ -0,0 +1,7 @@
+require recipes-devtools/gcc/gcc-${PV}.inc
+require gcc-runtime.inc
+
+FILES_libgomp-dev += "\
+ ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \
+"
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
index 6091a0b6f..df4e297a4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
@@ -50,7 +50,7 @@ do_install () {
INHIBIT_DEFAULT_DEPS = "1"
ALLOW_EMPTY_${PN} = "1"
-DEPENDS = "gcc-runtime"
+DEPENDS = "gcc-runtime virtual/${TARGET_PREFIX}gcc"
BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.4.bb
index 601f66602..601f66602 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_6.2.bb
index 601f66602..601f66602 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-sanitizers_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.4.bb
index b890fa33e..b890fa33e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_6.2.bb
index b890fa33e..b890fa33e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-source_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-target.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-target.inc
index b8dabe574..f436fa24f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc-target.inc
@@ -4,7 +4,6 @@ require gcc-configure-common.inc
EXTRA_OECONF_PATHS = "\
--with-sysroot=/ \
--with-build-sysroot=${STAGING_DIR_TARGET} \
- --with-native-system-header-dir=${STAGING_DIR_TARGET}${target_includedir} \
--with-gxx-include-dir=${includedir}/c++/${BINV} \
"
@@ -43,6 +42,10 @@ FILES_${PN} = "\
${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed \
"
INSANE_SKIP_${PN} += "dev-so"
+RRECOMMENDS_${PN} += "\
+ libssp \
+ libssp-dev \
+"
FILES_${PN}-dev = "\
${gcclibdir}/${TARGET_SYS}/${BINV}/lib*${SOLIBSDEV} \
@@ -70,10 +73,19 @@ FILES_g77-symlinks = "\
${bindir}/g77 \
${bindir}/f77 \
"
+RRECOMMENDS_g77 = "\
+ libg2c \
+ libg2c-dev \
+"
+
FILES_gfortran = "\
${bindir}/${TARGET_PREFIX}gfortran \
${libexecdir}/gcc/${TARGET_SYS}/${BINV}/f951 \
"
+RRECOMMENDS_gfortran = "\
+ libquadmath \
+ libquadmath-dev \
+"
FILES_gfortran-symlinks = "\
${bindir}/gfortran \
${bindir}/f95"
@@ -99,6 +111,12 @@ FILES_g++-symlinks = "\
${bindir}/c++ \
${bindir}/g++ \
"
+RRECOMMENDS_g++ = "\
+ libstdc++ \
+ libstdc++-dev \
+ libatomic \
+ libatomic-dev \
+"
FILES_${PN}-doc = "\
${infodir} \
@@ -205,6 +223,4 @@ do_install_append () {
# and builds track file dependencies (e.g. perl and its makedepends code).
# For determinism we don't install this ever and rely on the copy from gcc-cross.
# [YOCTO #7287]
-sysroot_stage_dirs_append () {
- rm -rf $to${libdir}/gcc
-}
+SYSROOT_DIRS_BLACKLIST += "${libdir}/gcc"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_4.9.bb
deleted file mode 100644
index a9dc612fb..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_4.9.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require recipes-devtools/gcc/gcc-${PV}.inc
-require gcc-target.inc
-
-# http://errors.yoctoproject.org/Errors/Details/20497/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-BBCLASSEXTEND = "nativesdk"
-
-#SYSTEMHEADERS_class-nativesdk = "${@'${target_includedir}'.replace(d.getVar('SDKPATH', True),'%r')}"
-#SYSTEMLIBS_class-nativesdk = "${@'${target_base_libdir}'.replace(d.getVar('SDKPATH', True),'%r')}/"
-#SYSTEMLIBS1_class-nativesdk = "${@'${target_libdir}'.replace(d.getVar('SDKPATH', True),'%r')}/"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.4.bb
index b0a523cae..b0a523cae 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_6.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_6.2.bb
new file mode 100644
index 000000000..b0a523cae
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/gcc_6.2.bb
@@ -0,0 +1,15 @@
+require recipes-devtools/gcc/gcc-${PV}.inc
+require gcc-target.inc
+
+# Building with thumb enabled on armv4t fails with
+# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs
+# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output
+ARM_INSTRUCTION_SET_armv4 = "arm"
+
+do_configure_prepend() {
+ # Easiest way to stop bad RPATHs getting into the library since we have a
+ # broken libtool here
+ sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${S}/libcc1/configure
+}
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-common.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-common.inc
index dae07e96d..8a13f542c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-common.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-common.inc
@@ -1,6 +1,6 @@
BPN = "libgcc"
-require gcc-shared-source.inc
+require gcc-configure-common.inc
INHIBIT_DEFAULT_DEPS = "1"
@@ -111,9 +111,15 @@ fakeroot python do_multilib_install() {
if not tune_bitness:
tune_bitness = '32' # /lib => 32bit lib
+ tune_abiextension = tune_parameters['abiextension']
+ if tune_abiextension:
+ libcextension = '-gnu' + tune_abiextension
+ else:
+ libcextension = ''
+
src = '../../../' + tune_baselib + '/' + \
tune_arch + d.getVar('TARGET_VENDOR', True) + 'ml' + ml + \
- '-' + d.getVar('TARGET_OS', True) + '/' + binv + '/'
+ '-' + d.getVar('TARGET_OS', True) + libcextension + '/' + binv + '/'
dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' + \
d.getVar('TARGET_SYS', True) + '/' + binv + '/' + tune_bitness
@@ -123,15 +129,18 @@ fakeroot python do_multilib_install() {
os.symlink(src, dest)
}
-def get_original_vendoros(d):
- vendoros = d.expand('${TARGET_VENDOR}-${TARGET_OS}')
+def get_original_os(d):
+ vendoros = d.expand('${TARGET_ARCH}${ORIG_TARGET_VENDOR}-${TARGET_OS}')
for suffix in [d.getVar('ABIEXTENSION', True), d.getVar('LIBCEXTENSION', True)]:
if suffix and vendoros.endswith(suffix):
vendoros = vendoros[:-len(suffix)]
+ # Arm must use linux-gnueabi not linux as only the former is accepted by gcc
+ if vendoros.startswith("arm-") and not vendoros.endswith("-gnueabi"):
+ vendoros = vendoros + "-gnueabi"
return vendoros
-ORIG_TARGET_VENDOROS := "${@get_original_vendoros(d)}"
-BASETARGET_SYS = "${TARGET_ARCH}${ORIG_TARGET_VENDOROS}"
+ORIG_TARGET_VENDOR := "${TARGET_VENDOR}"
+BASETARGET_SYS = "${@get_original_os(d)}"
addtask extra_symlinks after do_multilib_install before do_package do_populate_sysroot
fakeroot python do_extra_symlinks() {
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial.inc
index 59e8a62e7..687a8a0b0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial.inc
@@ -5,7 +5,7 @@ DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial"
LICENSE = "GPL-3.0-with-GCC-exception"
STAGINGCC = "gcc-cross-initial-${TARGET_ARCH}"
-STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${TARGET_ARCH}"
+STAGINGCC_class-nativesdk = "gcc-crosssdk-initial-${SDK_SYS}"
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}.${STAGINGCC}:"
PACKAGES = ""
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.4.bb
index 19f253fce..19f253fce 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_6.2.bb
index 19f253fce..19f253fce 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc-initial_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc.inc b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc.inc
index 68377869c..4770394c4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc.inc
@@ -2,6 +2,17 @@ require libgcc-common.inc
DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
+do_install_append_class-target () {
+ if [ "${TCLIBC}" != "glibc" ]; then
+ case "${TARGET_OS}" in
+ "linux-musl" | "linux-uclibc" | "linux-*spe") extra_target_os="linux";;
+ "linux-musleabi" | "linux-uclibceabi") extra_target_os="linux-gnueabi";;
+ *) extra_target_os="linux";;
+ esac
+ ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
+}
+
PACKAGES = "\
${PN} \
${PN}-dev \
@@ -19,6 +30,7 @@ FILES_${PN}-dev = "\
${base_libdir}/libgcc*.so \
${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \
${libdir}/${TARGET_SYS}/${BINV}* \
+ ${libdir}/${TARGET_ARCH}${TARGET_VENDOR}* \
"
LIBGCCBUILDTREENAME = "gcc-build-internal-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.4.bb
index a5152f28e..a5152f28e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_6.2.bb
index a5152f28e..a5152f28e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgcc_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_4.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.4.bb
index 71dd8b4bd..71dd8b4bd 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_4.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.4.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_6.2.bb
index 71dd8b4bd..71dd8b4bd 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_5.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gcc/libgfortran_6.2.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.10.1.inc b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.11.inc
index a9267d554..a9267d554 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.10.1.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-7.11.inc
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-common.inc b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-common.inc
index 0d28ee4ee..09231434d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-common.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-common.inc
@@ -2,7 +2,7 @@ SUMMARY = "GNU debugger"
HOMEPAGE = "http://www.gnu.org/software/gdb/"
LICENSE = "GPLv3+"
SECTION = "devel"
-DEPENDS = "expat zlib ncurses ${LTTNGUST}"
+DEPENDS = "expat zlib ncurses virtual/libiconv ${LTTNGUST}"
LTTNGUST = "lttng-ust"
LTTNGUST_aarch64 = ""
@@ -16,8 +16,6 @@ LTTNGUST_mips64eln32 = ""
LTTNGUST_sh4 = ""
LTTNGUST_libc-musl = ""
-INC_PR = "r0"
-
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674 \
file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
@@ -25,8 +23,25 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
inherit autotools texinfo
-SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.gz \
- "
+SRCREV = "1a982b689ce4e20523bdf69e47fdd574c4f63934"
+
+SRC_URI = "git://sourceware.org/git/binutils-gdb.git;branch=gdb-7.11-branch \
+ file://0001-include-sys-types.h-for-mode_t.patch \
+ file://0002-make-man-install-relative-to-DESTDIR.patch \
+ file://0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
+ file://0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \
+ file://0005-Add-support-for-Renesas-SH-sh4-architecture.patch \
+ file://0006-Dont-disable-libreadline.a-when-using-disable-static.patch \
+ file://0007-use-asm-sgidefs.h.patch \
+ file://0008-Use-exorted-definitions-of-SIGRTMIN.patch \
+ file://0009-Change-order-of-CFLAGS.patch \
+ file://0010-resolve-restrict-keyword-conflict.patch \
+ file://0011-avx_mpx.patch \
+"
+
+UPSTREAM_CHECK_GITTAGREGEX = "gdb\-(?P<pver>.+)\-release"
+
+S = "${WORKDIR}/git"
B = "${WORKDIR}/build-${TARGET_SYS}"
@@ -40,12 +55,15 @@ EXTRA_OECONF = "--disable-gdbtk --disable-tui --disable-x --disable-werror \
${GDBPROPREFIX} ${EXPAT} \
${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)} \
--disable-rpath \
- "
+ --disable-gas --disable-binutils \
+ --disable-ld --disable-gold \
+ --disable-gprof \
+"
PACKAGECONFIG ??= "readline"
# Use --without-system-readline to compile with readline 5.
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline"
-PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,python,python python-codecs"
+PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,python3,python3 python3-codecs"
PACKAGECONFIG[babeltrace] = "--with-babeltrace,--without-babeltrace,babeltrace"
GDBPROPREFIX = "--program-prefix=''"
@@ -69,4 +87,3 @@ RRECOMMENDS_gdb_append_linux = " glibc-thread-db "
RRECOMMENDS_gdb_append_linux-gnueabi = " glibc-thread-db "
RRECOMMENDS_gdbserver_append_linux = " glibc-thread-db "
RRECOMMENDS_gdbserver_append_linux-gnueabi = " glibc-thread-db "
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
index 6e42af1ba..e53081d0c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian.inc
@@ -1,5 +1,5 @@
inherit cross-canadian
-inherit python-dir
+inherit python3-dir
SUMMARY = "GNU debugger (cross-canadian gdb for ${TARGET_ARCH} target)"
PN = "gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
@@ -12,9 +12,9 @@ GDBPROPREFIX = "--program-prefix='${TARGET_PREFIX}'"
# Overrides PACKAGECONFIG variables in gdb-common.inc
PACKAGECONFIG ??= "python readline"
-PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,nativesdk-python, \
- nativesdk-python-core nativesdk-python-lang nativesdk-python-re \
- nativesdk-python-codecs nativesdk-python-netclient"
+PACKAGECONFIG[python] = "--with-python=${WORKDIR}/python,--without-python,nativesdk-python3, \
+ nativesdk-python3-core nativesdk-python3-lang nativesdk-python3-re \
+ nativesdk-python3-codecs nativesdk-python3-netclient"
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,nativesdk-readline"
SSTATE_DUPWHITELIST += "${STAGING_DATADIR}/gdb"
@@ -23,8 +23,8 @@ do_configure_prepend() {
cat > ${WORKDIR}/python << EOF
#! /bin/sh
case "\$2" in
- --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}/" ;;
- --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}" ;;
+ --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;;
+ --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;;
--exec-prefix) echo "${exec_prefix}" ;;
*) exit 1 ;;
esac
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.10.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.bb
index 301035940..301035940 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.10.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross-canadian_7.11.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross.inc b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross.inc
index 2468d2303..5fa7c3367 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross.inc
@@ -2,16 +2,14 @@ require gdb-common.inc
DEPENDS = "expat-native ncurses-native"
-inherit pythonnative
+inherit python3native
# Overrides PACKAGECONFIG variables in gdb-common.inc
PACKAGECONFIG ??= "python readline"
-PACKAGECONFIG[python] = "--with-python=${STAGING_BINDIR_NATIVE}/python-native/python,--without-python,python-native"
+PACKAGECONFIG[python] = "--with-python=${PYTHON},--without-python,python3-native"
PACKAGECONFIG[readline] = "--with-system-readline,--without-system-readline,readline-native"
do_compile_prepend() {
- export BUILD_SYS="${BUILD_SYS}"
- export HOST_SYS="${HOST_SYS}"
export STAGING_LIBDIR="${STAGING_LIBDIR_NATIVE}"
export STAGING_INCDIR="${STAGING_INCDIR_NATIVE}"
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.10.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.10.1.bb
deleted file mode 100644
index 3a95cfb03..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.10.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require gdb-cross.inc
-require gdb-${PV}.inc
-
-SRC_URI += "file://0001-make-man-install-relative-to-DESTDIR.patch"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.11.bb
new file mode 100644
index 000000000..50cf159fd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb-cross_7.11.bb
@@ -0,0 +1,2 @@
+require gdb-cross.inc
+require gdb-${PV}.inc
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb.inc b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb.inc
index d9c864dca..52119a0aa 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb.inc
@@ -2,14 +2,6 @@ require gdb-common.inc
inherit gettext
-SRC_URI += "file://0002-Change-order-of-CFLAGS.patch \
- file://0003-Add-support-for-Renesas-SH-sh4-architecture.patch \
- file://0001-Use-exported-definitions-of-SIGRTMIN.patch \
- file://0001-include-sys-types.h-for-mode_t.patch \
- file://0001-use-asm-sgidefs.h.patch \
- file://force-readline-static.patch \
- file://0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \
- "
#LDFLAGS_append = " -s"
#export CFLAGS_append=" -L${STAGING_LIBDIR}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-Use-exported-definitions-of-SIGRTMIN.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-Use-exported-definitions-of-SIGRTMIN.patch
deleted file mode 100644
index 5f0c09693..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-Use-exported-definitions-of-SIGRTMIN.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2f97e89e9e4e5797d0d973e1d05c1f44c46b4912 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 5 Jun 2015 20:21:38 -0700
-Subject: [PATCH] Use exorted definitions of SIGRTMIN
-
-Define W_STOPCODE if not defined already
-
-__SIGRTMIN is internal to glibc and other libcs e.g. musl
-may not provide them
-
-Fixes
-https://sourceware.org/bugzilla/show_bug.cgi?id=13012
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- gdb/linux-nat.c | 4 ++--
- gdb/nat/linux-nat.h | 4 ++++
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
-index 396c30c..50320ee 100644
---- a/gdb/linux-nat.c
-+++ b/gdb/linux-nat.c
-@@ -4856,10 +4856,10 @@ lin_thread_get_thread_signals (sigset_t *set)
- fortunately they don't change! */
-
- if (restart == 0)
-- restart = __SIGRTMIN;
-+ restart = SIGRTMIN;
-
- if (cancel == 0)
-- cancel = __SIGRTMIN + 1;
-+ cancel = SIGRTMIN + 1;
-
- sigaddset (set, restart);
- sigaddset (set, cancel);
-diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
-index 83a6d91..efbe0fd 100644
---- a/gdb/nat/linux-nat.h
-+++ b/gdb/nat/linux-nat.h
-@@ -25,4 +25,8 @@
- instead SIGTRAP with bit 7 set. */
- #define SYSCALL_SIGTRAP (SIGTRAP | 0x80)
-
-+#ifndef W_STOPCODE
-+#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
-+#endif
-+
- #endif /* LINUX_NAT_H */
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
index a0292e416..0042c0063 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
@@ -1,7 +1,7 @@
-From acbee4edacb80b5eeaff2480712fe98e56443997 Mon Sep 17 00:00:00 2001
+From fddd7178915968acf680814411b8b3cb137d0587 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 19 Jan 2016 18:18:52 -0800
-Subject: [PATCH] include sys/types.h for mode_t
+Subject: [PATCH 01/10] include sys/types.h for mode_t
mode_t is used in target.h, so we need to include sys/types.h to get the
defintion
@@ -14,10 +14,10 @@ Upstream-Status: Pending
1 file changed, 1 insertion(+)
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 9a40867..aaecab9 100644
+index 5af2051..f42c510 100644
--- a/gdb/gdbserver/target.h
+++ b/gdb/gdbserver/target.h
-@@ -27,6 +27,7 @@
+@@ -28,6 +28,7 @@
#include "target/waitstatus.h"
#include "mem-break.h"
#include "btrace-common.h"
@@ -26,5 +26,5 @@ index 9a40867..aaecab9 100644
struct emit_ops;
struct buffer;
--
-2.7.0
+2.8.2
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
deleted file mode 100644
index 6996c183b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-make-man-install-relative-to-DESTDIR.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 12b0506951460c3cc37d775478d024db3f95e9d8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:27:55 +0000
-Subject: [PATCH 1/3] make man install relative to DESTDIR
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sim/common/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
-index d49a93b..2121c46 100644
---- a/sim/common/Makefile.in
-+++ b/sim/common/Makefile.in
-@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
- datarootdir = @datarootdir@
- datadir = @datadir@
- mandir = @mandir@
--man1dir = $(mandir)/man1
-+man1dir = $(DESTDIR)$(mandir)/man1
- infodir = @infodir@
- includedir = @includedir@
-
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
deleted file mode 100644
index 31739525a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From e92f8932ef488de2a56db4299131ce6a4eb170bd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 23 Mar 2016 06:30:09 +0000
-Subject: [PATCH] mips-linux-nat: Define _ABIO32 if not defined
-
-This helps building gdb on mips64 on musl, since
-musl does not provide sgidefs.h this define is
-only defined when GCC is using o32 ABI, in that
-case gcc emits it as built-in define and hence
-it works ok for mips32
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- gdb/mips-linux-nat.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index fd5c705..753f29d 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -46,6 +46,11 @@
- #define PTRACE_GET_THREAD_AREA 25
- #endif
-
-+/* musl does not define and relies on compiler built-in macros for it */
-+#ifndef _ABIO32
-+#define _ABIO32 1
-+#endif
-+
- /* Assume that we have PTRACE_GETREGS et al. support. If we do not,
- we'll clear this and use PTRACE_PEEKUSER instead. */
- static int have_ptrace_regsets = 1;
---
-1.8.3.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-use-asm-sgidefs.h.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-use-asm-sgidefs.h.patch
deleted file mode 100644
index eaec39030..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0001-use-asm-sgidefs.h.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 677b5b56135141c0d259e370aacd0e11c810aa15 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Fri, 5 Feb 2016 14:00:00 -0800
-Subject: [PATCH] use <asm/sgidefs.h>
-
-Build fix for MIPS with musl libc
-
-The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
-but not by musl. Regardless of the libc, the kernel headers provide
-<asm/sgidefs.h> which provides the same definitions, so use that
-instead.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- gdb/mips-linux-nat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
-index a36bb63..fd5c705 100644
---- a/gdb/mips-linux-nat.c
-+++ b/gdb/mips-linux-nat.c
-@@ -31,7 +31,7 @@
- #include "gdb_proc_service.h"
- #include "gregset.h"
-
--#include <sgidefs.h>
-+#include <asm/sgidefs.h>
- #include <sys/ptrace.h>
- #include <asm/ptrace.h>
-
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch
deleted file mode 100644
index bccb45fda..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-Change-order-of-CFLAGS.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 262ccc4fdb2a3df0f16c61a807046964ae7729c9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:29:23 +0000
-Subject: [PATCH 2/3] Change order of CFLAGS
-
-Lets us override Werror if need be
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/gdbserver/Makefile.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
-index 1ed2ec8..0cef95b 100644
---- a/gdb/gdbserver/Makefile.in
-+++ b/gdb/gdbserver/Makefile.in
-@@ -131,10 +131,10 @@ CFLAGS = @CFLAGS@
- CPPFLAGS = @CPPFLAGS@
-
- # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
--INTERNAL_CFLAGS_BASE = ${CFLAGS} ${GLOBAL_CFLAGS} \
-+INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
- ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
- INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
--INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
-+INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${CFLAGS} -DGDBSERVER
-
- # LDFLAGS is specifically reserved for setting from the command line
- # when running make.
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
new file mode 100644
index 000000000..defed621f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0002-make-man-install-relative-to-DESTDIR.patch
@@ -0,0 +1,28 @@
+From 3229cb09033eeb5003a08d91fa9d43be8ba4c86b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 2 Mar 2015 02:27:55 +0000
+Subject: [PATCH 02/10] make man install relative to DESTDIR
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sim/common/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sim/common/Makefile.in b/sim/common/Makefile.in
+index a05f507..8d0fa64 100644
+--- a/sim/common/Makefile.in
++++ b/sim/common/Makefile.in
+@@ -35,7 +35,7 @@ tooldir = $(libdir)/$(target_alias)
+ datarootdir = @datarootdir@
+ datadir = @datadir@
+ mandir = @mandir@
+-man1dir = $(mandir)/man1
++man1dir = $(DESTDIR)$(mandir)/man1
+ infodir = @infodir@
+ includedir = @includedir@
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch
deleted file mode 100644
index 4a3e22c44..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ /dev/null
@@ -1,921 +0,0 @@
-From 407cb13cfb70697f45dfb761304e005e1ecbd0e9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 3/3] Add support for Renesas SH (sh4) architecture.
-
-gdb (7.4-1~cvs20111117.2) experimental; urgency=low
- .
- * Add Renesas SH (sh4) support (Closes: #576242)
- - Thanks Nobuhiro Iwamatsu, Takashi Yoshii.
-Author: Hector Oron <zumbi@debian.org>
-Bug-Debian: http://bugs.debian.org/576242
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gdb/Makefile.in | 1 +
- gdb/configure.host | 1 +
- gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++++++++++
- gdb/sh-tdep.c | 54 ++--
- gdb/sh-tdep.h | 49 ++++
- gdb/testsuite/gdb.asm/asm-source.exp | 5 +
- gdb/testsuite/gdb.asm/sh.inc | 3 +-
- gdb/testsuite/gdb.base/annota1.c | 3 +
- gdb/testsuite/gdb.base/annota3.c | 4 +
- gdb/testsuite/gdb.base/sigall.c | 3 +
- gdb/testsuite/gdb.base/signals.c | 4 +
- 11 files changed, 617 insertions(+), 29 deletions(-)
-
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 7937801..63baf81 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -1707,6 +1707,7 @@ ALLDEPFILES = \
- score-tdep.c \
- ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \
- sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \
-+ sh-linux-tdep.c sh-linux-nat.c \
- sol2-tdep.c \
- solib-svr4.c \
- sparc-linux-nat.c sparc-linux-tdep.c \
-diff --git a/gdb/configure.host b/gdb/configure.host
-index d07be4b..b6391c5 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -150,6 +150,7 @@ powerpc*-*-linux*) gdb_host=linux ;;
-
- s390*-*-linux*) gdb_host=linux ;;
-
-+sh*-*-linux*) gdb_host=linux ;;
- sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
- gdb_host=nbsd ;;
- sh*-*-openbsd*) gdb_host=nbsd ;;
-diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index 2ff2ee8..1a11262 100644
---- a/gdb/sh-linux-tdep.c
-+++ b/gdb/sh-linux-tdep.c
-@@ -18,14 +18,37 @@
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
- #include "defs.h"
-+#include "gdbcore.h"
-+#include "frame.h"
-+#include "frame-base.h"
-+#include "frame-unwind.h"
-+#include "dwarf2-frame.h"
-+#include "value.h"
-+#include "regcache.h"
-+#include "inferior.h"
- #include "osabi.h"
-
-+#include "reggroups.h"
-+#include "arch-utils.h"
-+#include "floatformat.h"
- #include "solib-svr4.h"
- #include "symtab.h"
-+#include "gdb_string.h"
-+#include "command.h"
-+#include "gdb_assert.h"
-
- #include "trad-frame.h"
- #include "tramp-frame.h"
-
-+#include <sys/ptrace.h>
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/user.h>
-+#include <sys/syscall.h>
-+
-+#include <asm/ptrace.h>
-+
-+#include "regset.h"
- #include "glibc-tdep.h"
- #include "sh-tdep.h"
- #include "linux-tdep.h"
-@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
- sh_linux_rt_sigreturn_init
- };
-
-+/* Recognizing signal handler frames. */
-+
-+/* GNU/Linux has two flavors of signals. Normal signal handlers, and
-+ "realtime" (RT) signals. The RT signals can provide additional
-+ information to the signal handler if the SA_SIGINFO flag is set
-+ when establishing a signal handler using `sigaction'. It is not
-+ unlikely that future versions of GNU/Linux will support SA_SIGINFO
-+ for normal signals too. */
-+
-+/* When the SH Linux kernel calls a signal handler and the
-+ SA_RESTORER flag isn't set, the return address points to a bit of
-+ code on the stack. This function returns whether the PC appears to
-+ be within this bit of code.
-+
-+ The instruction sequence for normal signals is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077.
-+
-+ Checking for the code sequence should be somewhat reliable, because
-+ the effect is to call the system call sigreturn. This is unlikely
-+ to occur anywhere other than a signal trampoline.
-+
-+ It kind of sucks that we have to read memory from the process in
-+ order to identify a signal trampoline, but there doesn't seem to be
-+ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to
-+ only call us if no function name could be identified, which should
-+ be the case since the code is on the stack.
-+
-+ Detection of signal trampolines for handlers that set the
-+ SA_RESTORER flag is in general not possible. Unfortunately this is
-+ what the GNU C Library has been doing for quite some time now.
-+ However, as of version 2.1.2, the GNU C Library uses signal
-+ trampolines (named __restore and __restore_rt) that are identical
-+ to the ones used by the kernel. Therefore, these trampolines are
-+ supported too. */
-+
-+#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */
-+#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */
-+#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */
-+
-+#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_sigtramp_code[] =
-+{
-+ LINUX_SIGTRAMP_INSN0,
-+ LINUX_SIGTRAMP_INSN1,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ LINUX_SIGTRAMP_INSN2,
-+ __NR_sigreturn
-+};
-+
-+#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
-+
-+/* If PC is in a sigtramp routine, return the address of the start of
-+ the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the three instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* This function does the same for RT signals. Here the instruction
-+ sequence is
-+ mov.w 1f,r3
-+ trapa #16
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ or r0, r0
-+ 1: .word __NR_rt_sigreturn
-+ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad.
-+
-+ The effect is to call the system call rt_sigreturn. */
-+
-+#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
-+#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
-+#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
-+
-+static const unsigned short linux_rt_sigtramp_code[] =
-+{
-+ LINUX_RT_SIGTRAMP_INSN0,
-+ LINUX_RT_SIGTRAMP_INSN1,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ LINUX_RT_SIGTRAMP_INSN2,
-+ __NR_rt_sigreturn
-+};
-+
-+#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
-+
-+/* If PC is in a RT sigtramp routine, return the address of the start
-+ of the routine. Otherwise, return 0. */
-+
-+static CORE_ADDR
-+sh_linux_rt_sigtramp_start (struct frame_info *next_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (next_frame);
-+ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
-+
-+ /* We only recognize a signal trampoline if PC is at the start of
-+ one of the two instructions. We optimize for finding the PC at
-+ the start, as will be the case when the trampoline is not the
-+ first frame on the stack. We assume that in the case where the
-+ PC is not at the start of the instruction sequence, there will be
-+ a few trailing readable bytes on the stack. */
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0)
-+ {
-+ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1)
-+ return 0;
-+
-+ pc -= 2;
-+
-+ if (!safe_frame_unwind_memory (next_frame, pc, buf,
-+ LINUX_RT_SIGTRAMP_LEN))
-+ return 0;
-+ }
-+
-+ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0)
-+ return 0;
-+
-+ return pc;
-+}
-+
-+/* Return whether PC is in a GNU/Linux sigtramp routine. */
-+
-+static int
-+sh_linux_sigtramp_p (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc = get_frame_pc (this_frame);
-+ char *name;
-+
-+ find_pc_partial_function (pc, &name, NULL, NULL);
-+
-+ /* If we have NAME, we can optimize the search. The trampolines are
-+ named __restore and __restore_rt. However, they aren't dynamically
-+ exported from the shared C library, so the trampoline may appear to
-+ be part of the preceding function. This should always be sigaction,
-+ __sigaction, or __libc_sigaction (all aliases to the same function). */
-+ if (name == NULL || strstr (name, "sigaction") != NULL)
-+ return (sh_linux_sigtramp_start (this_frame) != 0
-+ || sh_linux_rt_sigtramp_start (this_frame) != 0);
-+
-+ return (strcmp ("__restore", name) == 0
-+ || strcmp ("__restore_rt", name) == 0);
-+}
-+
-+/* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>. */
-+#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12
-+
-+
-+/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp
-+ routine, return the address of the associated sigcontext structure. */
-+
-+static CORE_ADDR
-+sh_linux_sigcontext_addr (struct frame_info *this_frame)
-+{
-+ CORE_ADDR pc;
-+ CORE_ADDR sp;
-+
-+ sp = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+
-+ pc = sh_linux_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ return sp;
-+ }
-+
-+ pc = sh_linux_rt_sigtramp_start (this_frame);
-+ if (pc)
-+ {
-+ CORE_ADDR ucontext_addr;
-+
-+ /* The sigcontext structure is part of the user context. A
-+ pointer to the user context is passed as the third argument
-+ to the signal handler. */
-+ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2);
-+ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
-+ }
-+
-+ error ("Couldn't recognize signal trampoline.");
-+ return 0;
-+}
-+
-+/* Signal trampolines. */
-+extern struct sh_frame_cache *sh_alloc_frame_cache (void);
-+
-+static struct sh_frame_cache *
-+sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
-+{
-+ struct sh_frame_cache *cache;
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ());
-+ CORE_ADDR sigcontext_addr;
-+
-+ if (*this_cache)
-+ return *this_cache;
-+
-+ cache = sh_alloc_frame_cache ();
-+
-+ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM);
-+ sigcontext_addr = tdep->sigcontext_addr (this_frame);
-+ if (tdep->sc_reg_offset)
-+ {
-+ int i;
-+
-+ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS);
-+
-+ for (i = 0; i < tdep->sc_num_regs; i++)
-+ if (tdep->sc_reg_offset[i] != -1)
-+ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i];
-+ }
-+
-+ *this_cache = cache;
-+ return cache;
-+}
-+
-+static void
-+sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache,
-+ struct frame_id *this_id)
-+{
-+ struct sh_frame_cache *cache =
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ (*this_id) = frame_id_build (cache->base + 64, cache->pc);
-+}
-+
-+extern struct value * sh_frame_prev_register ();
-+static struct value *
-+sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame,
-+ void **this_cache, int regnum)
-+{
-+ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
-+
-+ return sh_frame_prev_register (this_frame, this_cache, regnum);
-+}
-+
-+static int
-+sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
-+ struct frame_info *this_frame,
-+ void **this_prologue_cache)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
-+
-+ /* We shouldn't even bother if we don't have a sigcontext_addr
-+ handler. */
-+ if (tdep->sigcontext_addr == NULL)
-+ return 0;
-+
-+ if (tdep->sigtramp_p != NULL)
-+ {
-+ if (tdep->sigtramp_p (this_frame))
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct frame_unwind sh_linux_sigtramp_frame_unwind =
-+{
-+ SIGTRAMP_FRAME,
-+ sh_linux_sigtramp_frame_this_id,
-+ sh_linux_sigtramp_frame_prev_register,
-+ NULL,
-+ sh_linux_sigtramp_frame_sniffer
-+};
-+
-+/* Supply register REGNUM from the buffer specified by GREGS and LEN
-+ in the general-purpose register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+void
-+sh_supply_gregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by GREGS and LEN as described by the
-+ general-purpose register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+void
-+sh_collect_gregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *gregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = gregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_gregset);
-+
-+ for (i = 0; i < tdep->gregset_num_regs; i++)
-+ {
-+ if ((regnum == i || regnum == -1)
-+ && tdep->gregset_reg_offset[i] != -1)
-+ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]);
-+ }
-+}
-+
-+/* Supply register REGNUM from the buffer specified by FPREGS and LEN
-+ in the floating-point register set REGSET to register cache
-+ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
-+
-+static void
-+sh_supply_fpregset (const struct regset *regset, struct regcache *regcache,
-+ int regnum, const void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ const char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_supply (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Collect register REGNUM from the register cache REGCACHE and store
-+ it in the buffer specified by FPREGS and LEN as described by the
-+ floating-point register set REGSET. If REGNUM is -1, do this for
-+ all registers in REGSET. */
-+
-+static void
-+sh_collect_fpregset (const struct regset *regset,
-+ const struct regcache *regcache,
-+ int regnum, void *fpregs, size_t len)
-+{
-+ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
-+ char *regs = fpregs;
-+ int i;
-+
-+ gdb_assert (len == tdep->sizeof_fpregset);
-+ for (i = 0; i < 16; i++)
-+ {
-+ if (regnum == i+25 || regnum == -1)
-+ regcache_raw_collect (regcache, i+25, regs + i*4);
-+ }
-+ if (regnum == FPSCR_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4);
-+ if (regnum == FPUL_REGNUM || regnum == -1)
-+ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4);
-+}
-+
-+/* Return the appropriate register set for the core section identified
-+ by SECT_NAME and SECT_SIZE. */
-+
-+const struct regset *
-+sh_linux_regset_from_core_section (struct gdbarch *gdbarch,
-+ const char *sect_name, size_t sect_size)
-+{
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+
-+ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset)
-+ {
-+ if (tdep->gregset == NULL)
-+ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset,
-+ sh_collect_gregset);
-+ return tdep->gregset;
-+ }
-+
-+ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset))
-+ {
-+ if (tdep->fpregset == NULL)
-+ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset,
-+ sh_collect_fpregset);
-+ return tdep->fpregset;
-+ }
-+
-+ return NULL;
-+}
-+
-+/* The register sets used in GNU/Linux ELF core-dumps are identical to
-+ the register sets in `struct user' that are used for a.out
-+ core-dumps. These are also used by ptrace(2). The corresponding
-+ types are `elf_gregset_t' for the general-purpose registers (with
-+ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t'
-+ for the floating-point registers.
-+
-+ Those types used to be available under the names `gregset_t' and
-+ `fpregset_t' too, and GDB used those names in the past. But those
-+ names are now used for the register sets used in the `mcontext_t'
-+ type, which have a different size and layout. */
-+
-+/* Mapping between the general-purpose registers in `struct user'
-+ format and GDB's register cache layout. */
-+
-+/* From <sys/reg.h>. */
-+static int sh_linux_gregset_reg_offset[] =
-+{
-+ 0, 4, 8, 12, 16, 20, 24, 28,
-+ 32, 36, 40, 44, 48, 52, 56, 60,
-+
-+ REG_PC*4, REG_PR*4, REG_GBR*4, -1,
-+ REG_MACH*4, REG_MACL*4, REG_SR*4,
-+};
-+
-+/* Mapping between the general-purpose registers in `struct
-+ sigcontext' format and GDB's register cache layout. */
-+
-+/* From <asm/sigcontext.h>. */
-+static int sh_linux_sc_reg_offset[] =
-+{
-+ 4, 8, 12, 16, 20, 24, 28, 32,
-+ 36, 40, 44, 48, 52, 56, 60, 64,
-+ 68, 72, 80, -1,
-+ 84, 88, 76
-+};
-+
- static void
- sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
- {
-+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
-+ bfd abfd;
-+
-+ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset;
-+ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset);
-+ tdep->sizeof_gregset = 23 * 4;
-+
-+ tdep->jb_pc_offset = 32; /* From <bits/setjmp.h>. */
-+
-+ tdep->sigtramp_p = sh_linux_sigtramp_p;
-+ tdep->sigcontext_addr = sh_linux_sigcontext_addr;
-+ tdep->sc_reg_offset = sh_linux_sc_reg_offset;
-+ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset);
-+
-+ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind);
-+
-+ /* If we have a register mapping, enable the generic core file
-+ support, unless it has already been enabled. */
-+ if (tdep->gregset_reg_offset
-+ && !gdbarch_regset_from_core_section_p (gdbarch))
-+ set_gdbarch_regset_from_core_section (gdbarch,
-+ sh_linux_regset_from_core_section);
-+
- linux_init_abi (info, gdbarch);
-
- /* GNU/Linux uses SVR4-style shared libraries. */
-diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index 82cf2f4..b443e46 100644
---- a/gdb/sh-tdep.c
-+++ b/gdb/sh-tdep.c
-@@ -21,6 +21,9 @@
- sac@cygnus.com. */
-
- #include "defs.h"
-+#include "arch-utils.h"
-+#include "command.h"
-+#include "dummy-frame.h"
- #include "frame.h"
- #include "frame-base.h"
- #include "frame-unwind.h"
-@@ -35,6 +38,7 @@
- #include "arch-utils.h"
- #include "floatformat.h"
- #include "regcache.h"
-+#include "regset.h"
- #include "doublest.h"
- #include "osabi.h"
- #include "reggroups.h"
-@@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = {
-
- static const char *sh_active_calling_convention = sh_cc_gcc;
-
--#define SH_NUM_REGS 67
--
--struct sh_frame_cache
--{
-- /* Base address. */
-- CORE_ADDR base;
-- LONGEST sp_offset;
-- CORE_ADDR pc;
--
-- /* Flag showing that a frame has been created in the prologue code. */
-- int uses_fp;
--
-- /* Saved registers. */
-- CORE_ADDR saved_regs[SH_NUM_REGS];
-- CORE_ADDR saved_sp;
--};
--
- static int
- sh_is_renesas_calling_convention (struct type *func_type)
- {
-@@ -1043,7 +1030,7 @@ sh_treat_as_flt_p (struct type *type)
- return 0;
- /* Otherwise if the type of that member is float, the whole type is
- treated as float. */
-- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT)
-+ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT)
- return 1;
- /* Otherwise it's not treated as float. */
- return 0;
-@@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
- in four registers available. Loop thru args from first to last. */
- for (argnum = 0; argnum < nargs; argnum++)
- {
-- type = value_type (args[argnum]);
-+ type = check_typedef (value_type (args[argnum]));
- len = TYPE_LENGTH (type);
- val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
-
-@@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
- reg->how = DWARF2_FRAME_REG_UNDEFINED;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_alloc_frame_cache (void)
- {
- struct sh_frame_cache *cache;
-@@ -1848,7 +1835,7 @@ sh_alloc_frame_cache (void)
- return cache;
- }
-
--static struct sh_frame_cache *
-+struct sh_frame_cache *
- sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
- return cache;
- }
-
--static struct value *
--sh_frame_prev_register (struct frame_info *this_frame,
-- void **this_cache, int regnum)
-+struct value *
-+sh_frame_prev_register (struct frame_info *this_frame, void **this_cache,
-+ int regnum)
- {
- struct gdbarch *gdbarch = get_frame_arch (this_frame);
- struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
- the current frame. Frob regnum so that we pull the value from
- the correct place. */
- if (regnum == gdbarch_pc_regnum (gdbarch))
-- regnum = PR_REGNUM;
-+ regnum = PR_REGNUM; /* XXX: really? */
-
- if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
- return frame_unwind_got_memory (this_frame, regnum,
-@@ -2237,8 +2224,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
- static struct gdbarch *
- sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- {
-- struct gdbarch *gdbarch;
- struct gdbarch_tdep *tdep;
-+ struct gdbarch *gdbarch;
-
- /* SH5 is handled entirely in sh64-tdep.c. */
- if (info.bfd_arch_info->mach == bfd_mach_sh5)
-@@ -2254,6 +2241,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- tdep = XCNEW (struct gdbarch_tdep);
- gdbarch = gdbarch_alloc (&info, tdep);
-
-+ /* General-purpose registers. */
-+ tdep->gregset = NULL;
-+ tdep->gregset_reg_offset = NULL;
-+ tdep->gregset_num_regs = 23;
-+ tdep->sizeof_gregset = 0;
-+
-+ /* Floating-point registers. */
-+ tdep->fpregset = NULL;
-+ tdep->sizeof_fpregset = 34*4;
-+
-+ tdep->jb_pc_offset = -1;
-+
- set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
- set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
- set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2404,10 +2403,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
- break;
- }
-
-+ dwarf2_append_unwinders (gdbarch);
-+
- /* Hook in ABI-specific overrides, if they have been registered. */
- gdbarch_init_osabi (info, gdbarch);
-
-- dwarf2_append_unwinders (gdbarch);
- frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
- frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
-
-diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index fc671a5..699f59f 100644
---- a/gdb/sh-tdep.h
-+++ b/gdb/sh-tdep.h
-@@ -21,6 +21,12 @@
-
- /* Contributed by Steve Chamberlain sac@cygnus.com. */
-
-+struct frame_info;
-+struct gdbarch;
-+struct reggroup;
-+struct regset;
-+struct regcache;
-+
- /* Registers for all SH variants. Used also by sh3-rom.c. */
- enum
- {
-@@ -29,6 +35,7 @@ enum
- ARG0_REGNUM = 4,
- ARGLAST_REGNUM = 7,
- FP_REGNUM = 14,
-+ SP_REGNUM = 15,
- PC_REGNUM = 16,
- PR_REGNUM = 17,
- GBR_REGNUM = 18,
-@@ -81,6 +88,24 @@ enum
- FV0_REGNUM = 76,
- FV_LAST_REGNUM = 79
- };
-+#define SH_NUM_REGS 67
-+
-+struct sh_frame_cache
-+{
-+ /* Base address. */
-+ CORE_ADDR base;
-+ LONGEST sp_offset;
-+ CORE_ADDR pc;
-+
-+ /* Flag showing that a frame has been created in the prologue code. */
-+ int uses_fp;
-+
-+ /* Saved registers. */
-+ CORE_ADDR saved_regs[SH_NUM_REGS];
-+ CORE_ADDR saved_sp;
-+};
-+
-+extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache);
-
- /* This structure describes a register in a core-file. */
- struct sh_corefile_regmap
-@@ -89,8 +114,32 @@ struct sh_corefile_regmap
- unsigned int offset;
- };
-
-+/* sh architecture specific information. */
- struct gdbarch_tdep
- {
-+ /* General-purpose registers. */
-+ struct regset *gregset;
-+ int *gregset_reg_offset;
-+ int gregset_num_regs;
-+ size_t sizeof_gregset;
-+
-+ /* Floating-point registers. */
-+ struct regset *fpregset;
-+ size_t sizeof_fpregset;
-+
-+ /* Offset of saved PC in jmp_buf. */
-+ int jb_pc_offset;
-+
-+ /* Detect sigtramp. */
-+ int (*sigtramp_p) (struct frame_info *);
-+
-+ /* Get address of sigcontext for sigtramp. */
-+ CORE_ADDR (*sigcontext_addr) (struct frame_info *);
-+
-+ /* Offset of registers in `struct sigcontext'. */
-+ int *sc_reg_offset;
-+ int sc_num_regs;
-+
- /* Non-NULL when debugging from a core file. Provides the offset
- where each general-purpose register is stored inside the associated
- core file section. */
-diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index 8854af0..ef44682 100644
---- a/gdb/testsuite/gdb.asm/asm-source.exp
-+++ b/gdb/testsuite/gdb.asm/asm-source.exp
-@@ -113,6 +113,11 @@ switch -glob -- [istarget] {
- append link-flags " -m elf32ppc"
- }
- }
-+ "sh*-linux*" {
-+ set asm-arch sh-linux
-+ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
-+ set debug-flags "-gdwarf-2"
-+ }
- "sh*-*-*" {
- set asm-arch sh
- set debug-flags "-gdwarf-2"
-diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
-index a4a5fc5..89efed7 100644
---- a/gdb/testsuite/gdb.asm/sh.inc
-+++ b/gdb/testsuite/gdb.asm/sh.inc
-@@ -40,9 +40,8 @@
- mov.l .Lconst\@,r1
- bra .Lafterconst\@
- nop
-- nop
--.Lconst\@:
- .align 2
-+.Lconst\@:
- .long \subr
- .align 1
- .Lafterconst\@:
-diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
-index 424e1b8..0de2e7b 100644
---- a/gdb/testsuite/gdb.base/annota1.c
-+++ b/gdb/testsuite/gdb.base/annota1.c
-@@ -1,6 +1,9 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
-index 424e1b8..952aaf2 100644
---- a/gdb/testsuite/gdb.base/annota3.c
-+++ b/gdb/testsuite/gdb.base/annota3.c
-@@ -1,6 +1,10 @@
- #include <stdio.h>
- #include <signal.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-+
-
- void
- handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
-index 81f3b08..1574b2d 100644
---- a/gdb/testsuite/gdb.base/sigall.c
-+++ b/gdb/testsuite/gdb.base/sigall.c
-@@ -1,6 +1,9 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#endif
-
- /* Signal handlers, we set breakpoints in them to make sure that the
- signals really get delivered. */
-diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
-index 7566068..1205a9b 100644
---- a/gdb/testsuite/gdb.base/signals.c
-+++ b/gdb/testsuite/gdb.base/signals.c
-@@ -3,6 +3,10 @@
- #include <signal.h>
- #include <unistd.h>
-
-+#ifdef __sh__
-+#define signal(a,b) /* Signals not supported on this target - make them go away */
-+#define alarm(a) /* Ditto for alarm() */
-+#endif
-
- static int count = 0;
-
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
new file mode 100644
index 000000000..bac793964
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0003-mips-linux-nat-Define-_ABIO32-if-not-defined.patch
@@ -0,0 +1,37 @@
+From 88e67caed662d8344c8db56176c9f1221e6cd2a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 23 Mar 2016 06:30:09 +0000
+Subject: [PATCH 03/10] mips-linux-nat: Define _ABIO32 if not defined
+
+This helps building gdb on mips64 on musl, since
+musl does not provide sgidefs.h this define is
+only defined when GCC is using o32 ABI, in that
+case gcc emits it as built-in define and hence
+it works ok for mips32
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ gdb/mips-linux-nat.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
+index bfe9fcb..449b43a 100644
+--- a/gdb/mips-linux-nat.c
++++ b/gdb/mips-linux-nat.c
+@@ -46,6 +46,11 @@
+ #define PTRACE_GET_THREAD_AREA 25
+ #endif
+
++/* musl does not define and relies on compiler built-in macros for it */
++#ifndef _ABIO32
++#define _ABIO32 1
++#endif
++
+ /* Assume that we have PTRACE_GETREGS et al. support. If we do not,
+ we'll clear this and use PTRACE_PEEKUSER instead. */
+ static int have_ptrace_regsets = 1;
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
new file mode 100644
index 000000000..a5fe2a279
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0004-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch
@@ -0,0 +1,53 @@
+From bec564eb454bc7fc6ecfcb573aa53040bf39c1d5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 16:46:03 +0000
+Subject: [PATCH 04/10] ppc/ptrace: Define pt_regs uapi_pt_regs on !GLIBC
+ systems
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/gdbserver/linux-ppc-low.c | 6 ++++++
+ gdb/nat/ppc-linux.h | 6 ++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/gdb/gdbserver/linux-ppc-low.c b/gdb/gdbserver/linux-ppc-low.c
+index 2145c50..777905d 100644
+--- a/gdb/gdbserver/linux-ppc-low.c
++++ b/gdb/gdbserver/linux-ppc-low.c
+@@ -21,7 +21,13 @@
+ #include "linux-low.h"
+
+ #include <elf.h>
++#if !defined(__GLIBC__)
++# define pt_regs uapi_pt_regs
++#endif
+ #include <asm/ptrace.h>
++#if !defined(__GLIBC__)
++# undef pt_regs
++#endif
+
+ #include "nat/ppc-linux.h"
+
+diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
+index 85fbcd8..cbec9c5 100644
+--- a/gdb/nat/ppc-linux.h
++++ b/gdb/nat/ppc-linux.h
+@@ -18,7 +18,13 @@
+ #ifndef PPC_LINUX_H
+ #define PPC_LINUX_H 1
+
++#if !defined(__GLIBC__)
++# define pt_regs uapi_pt_regs
++#endif
+ #include <asm/ptrace.h>
++#if !defined(__GLIBC__)
++# undef pt_regs
++#endif
+ #include <asm/cputable.h>
+
+ /* This sometimes isn't defined. */
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
new file mode 100644
index 000000000..8809e6f8b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
@@ -0,0 +1,921 @@
+From 8c5fe58c5a0044ddb517a41b277ed27fb3d3bedc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 2 Mar 2015 02:31:12 +0000
+Subject: [PATCH 05/10] Add support for Renesas SH (sh4) architecture.
+
+gdb (7.4-1~cvs20111117.2) experimental; urgency=low
+ .
+ * Add Renesas SH (sh4) support (Closes: #576242)
+ - Thanks Nobuhiro Iwamatsu, Takashi Yoshii.
+Author: Hector Oron <zumbi@debian.org>
+Bug-Debian: http://bugs.debian.org/576242
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/Makefile.in | 1 +
+ gdb/configure.host | 1 +
+ gdb/sh-linux-tdep.c | 519 +++++++++++++++++++++++++++++++++++
+ gdb/sh-tdep.c | 54 ++--
+ gdb/sh-tdep.h | 49 ++++
+ gdb/testsuite/gdb.asm/asm-source.exp | 5 +
+ gdb/testsuite/gdb.asm/sh.inc | 3 +-
+ gdb/testsuite/gdb.base/annota1.c | 3 +
+ gdb/testsuite/gdb.base/annota3.c | 4 +
+ gdb/testsuite/gdb.base/sigall.c | 3 +
+ gdb/testsuite/gdb.base/signals.c | 4 +
+ 11 files changed, 617 insertions(+), 29 deletions(-)
+
+diff --git a/gdb/Makefile.in b/gdb/Makefile.in
+index ec2af52..df8e84d 100644
+--- a/gdb/Makefile.in
++++ b/gdb/Makefile.in
+@@ -1736,6 +1736,7 @@ ALLDEPFILES = \
+ score-tdep.c \
+ ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \
+ sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \
++ sh-linux-tdep.c sh-linux-nat.c \
+ sol2-tdep.c \
+ solib-svr4.c \
+ sparc-linux-nat.c sparc-linux-tdep.c \
+diff --git a/gdb/configure.host b/gdb/configure.host
+index ef265eb..322a1e2 100644
+--- a/gdb/configure.host
++++ b/gdb/configure.host
+@@ -149,6 +149,7 @@ powerpc*-*-linux*) gdb_host=linux ;;
+
+ s390*-*-linux*) gdb_host=linux ;;
+
++sh*-*-linux*) gdb_host=linux ;;
+ sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
+ gdb_host=nbsd ;;
+ sh*-*-openbsd*) gdb_host=nbsd ;;
+diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
+index 2418d25..ac8ea9e 100644
+--- a/gdb/sh-linux-tdep.c
++++ b/gdb/sh-linux-tdep.c
+@@ -18,14 +18,37 @@
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ #include "defs.h"
++#include "gdbcore.h"
++#include "frame.h"
++#include "frame-base.h"
++#include "frame-unwind.h"
++#include "dwarf2-frame.h"
++#include "value.h"
++#include "regcache.h"
++#include "inferior.h"
+ #include "osabi.h"
+
++#include "reggroups.h"
++#include "arch-utils.h"
++#include "floatformat.h"
+ #include "solib-svr4.h"
+ #include "symtab.h"
++#include "gdb_string.h"
++#include "command.h"
++#include "gdb_assert.h"
+
+ #include "trad-frame.h"
+ #include "tramp-frame.h"
+
++#include <sys/ptrace.h>
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/user.h>
++#include <sys/syscall.h>
++
++#include <asm/ptrace.h>
++
++#include "regset.h"
+ #include "glibc-tdep.h"
+ #include "sh-tdep.h"
+ #include "linux-tdep.h"
+@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
+ sh_linux_rt_sigreturn_init
+ };
+
++/* Recognizing signal handler frames. */
++
++/* GNU/Linux has two flavors of signals. Normal signal handlers, and
++ "realtime" (RT) signals. The RT signals can provide additional
++ information to the signal handler if the SA_SIGINFO flag is set
++ when establishing a signal handler using `sigaction'. It is not
++ unlikely that future versions of GNU/Linux will support SA_SIGINFO
++ for normal signals too. */
++
++/* When the SH Linux kernel calls a signal handler and the
++ SA_RESTORER flag isn't set, the return address points to a bit of
++ code on the stack. This function returns whether the PC appears to
++ be within this bit of code.
++
++ The instruction sequence for normal signals is
++ mov.w 1f,r3
++ trapa #16
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ 1: .word __NR_sigreturn
++ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x0077.
++
++ Checking for the code sequence should be somewhat reliable, because
++ the effect is to call the system call sigreturn. This is unlikely
++ to occur anywhere other than a signal trampoline.
++
++ It kind of sucks that we have to read memory from the process in
++ order to identify a signal trampoline, but there doesn't seem to be
++ any other way. The PC_IN_SIGTRAMP macro in tm-linux.h arranges to
++ only call us if no function name could be identified, which should
++ be the case since the code is on the stack.
++
++ Detection of signal trampolines for handlers that set the
++ SA_RESTORER flag is in general not possible. Unfortunately this is
++ what the GNU C Library has been doing for quite some time now.
++ However, as of version 2.1.2, the GNU C Library uses signal
++ trampolines (named __restore and __restore_rt) that are identical
++ to the ones used by the kernel. Therefore, these trampolines are
++ supported too. */
++
++#define MOVW(n) (0x9300|((n)-2)) /* Move mem word at PC+n to R3 */
++#define TRAP16 0xc310 /* Syscall w/no args (NR in R3) */
++#define OR_R0_R0 0x200b /* or r0,r0 (insert to avoid hardware bug) */
++
++#define LINUX_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
++#define LINUX_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
++#define LINUX_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
++
++static const unsigned short linux_sigtramp_code[] =
++{
++ LINUX_SIGTRAMP_INSN0,
++ LINUX_SIGTRAMP_INSN1,
++ LINUX_SIGTRAMP_INSN2,
++ LINUX_SIGTRAMP_INSN2,
++ LINUX_SIGTRAMP_INSN2,
++ LINUX_SIGTRAMP_INSN2,
++ LINUX_SIGTRAMP_INSN2,
++ __NR_sigreturn
++};
++
++#define LINUX_SIGTRAMP_LEN (sizeof linux_sigtramp_code)
++
++/* If PC is in a sigtramp routine, return the address of the start of
++ the routine. Otherwise, return 0. */
++
++static CORE_ADDR
++sh_linux_sigtramp_start (struct frame_info *next_frame)
++{
++ CORE_ADDR pc = get_frame_pc (next_frame);
++ gdb_byte buf[LINUX_SIGTRAMP_LEN];
++
++ /* We only recognize a signal trampoline if PC is at the start of
++ one of the three instructions. We optimize for finding the PC at
++ the start, as will be the case when the trampoline is not the
++ first frame on the stack. We assume that in the case where the
++ PC is not at the start of the instruction sequence, there will be
++ a few trailing readable bytes on the stack. */
++
++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
++ return 0;
++
++ if (buf[0] != LINUX_SIGTRAMP_INSN0)
++ {
++ if (buf[0] != LINUX_SIGTRAMP_INSN1)
++ return 0;
++
++ pc -= 2;
++
++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_SIGTRAMP_LEN))
++ return 0;
++ }
++
++ if (memcmp (buf, linux_sigtramp_code, LINUX_SIGTRAMP_LEN) != 0)
++ return 0;
++
++ return pc;
++}
++
++/* This function does the same for RT signals. Here the instruction
++ sequence is
++ mov.w 1f,r3
++ trapa #16
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ or r0, r0
++ 1: .word __NR_rt_sigreturn
++ or 0x9305 0xc310 0x200b 0x200b 0x200b 0x200b 0x200b 0x00ad.
++
++ The effect is to call the system call rt_sigreturn. */
++
++#define LINUX_RT_SIGTRAMP_INSN0 MOVW(7) /* Move mem word at PC+7 to R3 */
++#define LINUX_RT_SIGTRAMP_INSN1 TRAP16 /* Syscall w/no args (NR in R3) */
++#define LINUX_RT_SIGTRAMP_INSN2 OR_R0_R0 /* or r0,r0 (insert to avoid hardware bug) */
++
++static const unsigned short linux_rt_sigtramp_code[] =
++{
++ LINUX_RT_SIGTRAMP_INSN0,
++ LINUX_RT_SIGTRAMP_INSN1,
++ LINUX_RT_SIGTRAMP_INSN2,
++ LINUX_RT_SIGTRAMP_INSN2,
++ LINUX_RT_SIGTRAMP_INSN2,
++ LINUX_RT_SIGTRAMP_INSN2,
++ LINUX_RT_SIGTRAMP_INSN2,
++ __NR_rt_sigreturn
++};
++
++#define LINUX_RT_SIGTRAMP_LEN (sizeof linux_rt_sigtramp_code)
++
++/* If PC is in a RT sigtramp routine, return the address of the start
++ of the routine. Otherwise, return 0. */
++
++static CORE_ADDR
++sh_linux_rt_sigtramp_start (struct frame_info *next_frame)
++{
++ CORE_ADDR pc = get_frame_pc (next_frame);
++ gdb_byte buf[LINUX_RT_SIGTRAMP_LEN];
++
++ /* We only recognize a signal trampoline if PC is at the start of
++ one of the two instructions. We optimize for finding the PC at
++ the start, as will be the case when the trampoline is not the
++ first frame on the stack. We assume that in the case where the
++ PC is not at the start of the instruction sequence, there will be
++ a few trailing readable bytes on the stack. */
++
++ if (!safe_frame_unwind_memory (next_frame, pc, buf, LINUX_RT_SIGTRAMP_LEN))
++ return 0;
++
++ if (buf[0] != LINUX_RT_SIGTRAMP_INSN0)
++ {
++ if (buf[0] != LINUX_RT_SIGTRAMP_INSN1)
++ return 0;
++
++ pc -= 2;
++
++ if (!safe_frame_unwind_memory (next_frame, pc, buf,
++ LINUX_RT_SIGTRAMP_LEN))
++ return 0;
++ }
++
++ if (memcmp (buf, linux_rt_sigtramp_code, LINUX_RT_SIGTRAMP_LEN) != 0)
++ return 0;
++
++ return pc;
++}
++
++/* Return whether PC is in a GNU/Linux sigtramp routine. */
++
++static int
++sh_linux_sigtramp_p (struct frame_info *this_frame)
++{
++ CORE_ADDR pc = get_frame_pc (this_frame);
++ char *name;
++
++ find_pc_partial_function (pc, &name, NULL, NULL);
++
++ /* If we have NAME, we can optimize the search. The trampolines are
++ named __restore and __restore_rt. However, they aren't dynamically
++ exported from the shared C library, so the trampoline may appear to
++ be part of the preceding function. This should always be sigaction,
++ __sigaction, or __libc_sigaction (all aliases to the same function). */
++ if (name == NULL || strstr (name, "sigaction") != NULL)
++ return (sh_linux_sigtramp_start (this_frame) != 0
++ || sh_linux_rt_sigtramp_start (this_frame) != 0);
++
++ return (strcmp ("__restore", name) == 0
++ || strcmp ("__restore_rt", name) == 0);
++}
++
++/* Offset to struct sigcontext in ucontext, from <asm/ucontext.h>. */
++#define SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET 12
++
++
++/* Assuming NEXT_FRAME is a frame following a GNU/Linux sigtramp
++ routine, return the address of the associated sigcontext structure. */
++
++static CORE_ADDR
++sh_linux_sigcontext_addr (struct frame_info *this_frame)
++{
++ CORE_ADDR pc;
++ CORE_ADDR sp;
++
++ sp = get_frame_register_unsigned (this_frame, SP_REGNUM);
++
++ pc = sh_linux_sigtramp_start (this_frame);
++ if (pc)
++ {
++ return sp;
++ }
++
++ pc = sh_linux_rt_sigtramp_start (this_frame);
++ if (pc)
++ {
++ CORE_ADDR ucontext_addr;
++
++ /* The sigcontext structure is part of the user context. A
++ pointer to the user context is passed as the third argument
++ to the signal handler. */
++ ucontext_addr = get_frame_register_unsigned (this_frame, ARG0_REGNUM+2);
++ return ucontext_addr + SH_LINUX_UCONTEXT_SIGCONTEXT_OFFSET;
++ }
++
++ error ("Couldn't recognize signal trampoline.");
++ return 0;
++}
++
++/* Signal trampolines. */
++extern struct sh_frame_cache *sh_alloc_frame_cache (void);
++
++static struct sh_frame_cache *
++sh_linux_sigtramp_frame_cache (struct frame_info *this_frame, void **this_cache)
++{
++ struct sh_frame_cache *cache;
++ struct gdbarch_tdep *tdep = gdbarch_tdep (get_current_arch ());
++ CORE_ADDR sigcontext_addr;
++
++ if (*this_cache)
++ return *this_cache;
++
++ cache = sh_alloc_frame_cache ();
++
++ cache->base = get_frame_register_unsigned (this_frame, SP_REGNUM);
++ sigcontext_addr = tdep->sigcontext_addr (this_frame);
++ if (tdep->sc_reg_offset)
++ {
++ int i;
++
++ gdb_assert (tdep->sc_num_regs <= SH_NUM_REGS);
++
++ for (i = 0; i < tdep->sc_num_regs; i++)
++ if (tdep->sc_reg_offset[i] != -1)
++ cache->saved_regs[i] = sigcontext_addr + tdep->sc_reg_offset[i];
++ }
++
++ *this_cache = cache;
++ return cache;
++}
++
++static void
++sh_linux_sigtramp_frame_this_id (struct frame_info *this_frame, void **this_cache,
++ struct frame_id *this_id)
++{
++ struct sh_frame_cache *cache =
++ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
++
++ (*this_id) = frame_id_build (cache->base + 64, cache->pc);
++}
++
++extern struct value * sh_frame_prev_register ();
++static struct value *
++sh_linux_sigtramp_frame_prev_register (struct frame_info *this_frame,
++ void **this_cache, int regnum)
++{
++ sh_linux_sigtramp_frame_cache (this_frame, this_cache);
++
++ return sh_frame_prev_register (this_frame, this_cache, regnum);
++}
++
++static int
++sh_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
++ struct frame_info *this_frame,
++ void **this_prologue_cache)
++{
++ struct gdbarch_tdep *tdep = gdbarch_tdep (get_frame_arch (this_frame));
++
++ /* We shouldn't even bother if we don't have a sigcontext_addr
++ handler. */
++ if (tdep->sigcontext_addr == NULL)
++ return 0;
++
++ if (tdep->sigtramp_p != NULL)
++ {
++ if (tdep->sigtramp_p (this_frame))
++ return 1;
++ }
++
++ return 0;
++}
++
++static const struct frame_unwind sh_linux_sigtramp_frame_unwind =
++{
++ SIGTRAMP_FRAME,
++ sh_linux_sigtramp_frame_this_id,
++ sh_linux_sigtramp_frame_prev_register,
++ NULL,
++ sh_linux_sigtramp_frame_sniffer
++};
++
++/* Supply register REGNUM from the buffer specified by GREGS and LEN
++ in the general-purpose register set REGSET to register cache
++ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
++
++void
++sh_supply_gregset (const struct regset *regset, struct regcache *regcache,
++ int regnum, const void *gregs, size_t len)
++{
++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
++ const char *regs = gregs;
++ int i;
++
++ gdb_assert (len == tdep->sizeof_gregset);
++
++ for (i = 0; i < tdep->gregset_num_regs; i++)
++ {
++ if ((regnum == i || regnum == -1)
++ && tdep->gregset_reg_offset[i] != -1)
++ regcache_raw_supply (regcache, i, regs + tdep->gregset_reg_offset[i]);
++ }
++}
++
++/* Collect register REGNUM from the register cache REGCACHE and store
++ it in the buffer specified by GREGS and LEN as described by the
++ general-purpose register set REGSET. If REGNUM is -1, do this for
++ all registers in REGSET. */
++
++void
++sh_collect_gregset (const struct regset *regset,
++ const struct regcache *regcache,
++ int regnum, void *gregs, size_t len)
++{
++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
++ char *regs = gregs;
++ int i;
++
++ gdb_assert (len == tdep->sizeof_gregset);
++
++ for (i = 0; i < tdep->gregset_num_regs; i++)
++ {
++ if ((regnum == i || regnum == -1)
++ && tdep->gregset_reg_offset[i] != -1)
++ regcache_raw_collect (regcache, i, regs + tdep->gregset_reg_offset[i]);
++ }
++}
++
++/* Supply register REGNUM from the buffer specified by FPREGS and LEN
++ in the floating-point register set REGSET to register cache
++ REGCACHE. If REGNUM is -1, do this for all registers in REGSET. */
++
++static void
++sh_supply_fpregset (const struct regset *regset, struct regcache *regcache,
++ int regnum, const void *fpregs, size_t len)
++{
++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
++ const char *regs = fpregs;
++ int i;
++
++ gdb_assert (len == tdep->sizeof_fpregset);
++ for (i = 0; i < 16; i++)
++ {
++ if (regnum == i+25 || regnum == -1)
++ regcache_raw_supply (regcache, i+25, regs + i*4);
++ }
++ if (regnum == FPSCR_REGNUM || regnum == -1)
++ regcache_raw_supply (regcache, FPSCR_REGNUM, regs + 32*4);
++ if (regnum == FPUL_REGNUM || regnum == -1)
++ regcache_raw_supply (regcache, FPUL_REGNUM, regs + 33*4);
++}
++
++/* Collect register REGNUM from the register cache REGCACHE and store
++ it in the buffer specified by FPREGS and LEN as described by the
++ floating-point register set REGSET. If REGNUM is -1, do this for
++ all registers in REGSET. */
++
++static void
++sh_collect_fpregset (const struct regset *regset,
++ const struct regcache *regcache,
++ int regnum, void *fpregs, size_t len)
++{
++ const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
++ char *regs = fpregs;
++ int i;
++
++ gdb_assert (len == tdep->sizeof_fpregset);
++ for (i = 0; i < 16; i++)
++ {
++ if (regnum == i+25 || regnum == -1)
++ regcache_raw_collect (regcache, i+25, regs + i*4);
++ }
++ if (regnum == FPSCR_REGNUM || regnum == -1)
++ regcache_raw_collect (regcache, FPSCR_REGNUM, regs + 32*4);
++ if (regnum == FPUL_REGNUM || regnum == -1)
++ regcache_raw_collect (regcache, FPUL_REGNUM, regs + 33*4);
++}
++
++/* Return the appropriate register set for the core section identified
++ by SECT_NAME and SECT_SIZE. */
++
++const struct regset *
++sh_linux_regset_from_core_section (struct gdbarch *gdbarch,
++ const char *sect_name, size_t sect_size)
++{
++ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
++
++ if (strcmp (sect_name, ".reg") == 0 && sect_size == tdep->sizeof_gregset)
++ {
++ if (tdep->gregset == NULL)
++ tdep->gregset = regset_alloc (gdbarch, sh_supply_gregset,
++ sh_collect_gregset);
++ return tdep->gregset;
++ }
++
++ if ((strcmp (sect_name, ".reg2") == 0 && sect_size == tdep->sizeof_fpregset))
++ {
++ if (tdep->fpregset == NULL)
++ tdep->fpregset = regset_alloc (gdbarch, sh_supply_fpregset,
++ sh_collect_fpregset);
++ return tdep->fpregset;
++ }
++
++ return NULL;
++}
++
++/* The register sets used in GNU/Linux ELF core-dumps are identical to
++ the register sets in `struct user' that are used for a.out
++ core-dumps. These are also used by ptrace(2). The corresponding
++ types are `elf_gregset_t' for the general-purpose registers (with
++ `elf_greg_t' the type of a single GP register) and `elf_fpregset_t'
++ for the floating-point registers.
++
++ Those types used to be available under the names `gregset_t' and
++ `fpregset_t' too, and GDB used those names in the past. But those
++ names are now used for the register sets used in the `mcontext_t'
++ type, which have a different size and layout. */
++
++/* Mapping between the general-purpose registers in `struct user'
++ format and GDB's register cache layout. */
++
++/* From <sys/reg.h>. */
++static int sh_linux_gregset_reg_offset[] =
++{
++ 0, 4, 8, 12, 16, 20, 24, 28,
++ 32, 36, 40, 44, 48, 52, 56, 60,
++
++ REG_PC*4, REG_PR*4, REG_GBR*4, -1,
++ REG_MACH*4, REG_MACL*4, REG_SR*4,
++};
++
++/* Mapping between the general-purpose registers in `struct
++ sigcontext' format and GDB's register cache layout. */
++
++/* From <asm/sigcontext.h>. */
++static int sh_linux_sc_reg_offset[] =
++{
++ 4, 8, 12, 16, 20, 24, 28, 32,
++ 36, 40, 44, 48, 52, 56, 60, 64,
++ 68, 72, 80, -1,
++ 84, 88, 76
++};
++
+ static void
+ sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+ {
++ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
++ bfd abfd;
++
++ tdep->gregset_reg_offset = sh_linux_gregset_reg_offset;
++ tdep->gregset_num_regs = ARRAY_SIZE (sh_linux_gregset_reg_offset);
++ tdep->sizeof_gregset = 23 * 4;
++
++ tdep->jb_pc_offset = 32; /* From <bits/setjmp.h>. */
++
++ tdep->sigtramp_p = sh_linux_sigtramp_p;
++ tdep->sigcontext_addr = sh_linux_sigcontext_addr;
++ tdep->sc_reg_offset = sh_linux_sc_reg_offset;
++ tdep->sc_num_regs = ARRAY_SIZE (sh_linux_sc_reg_offset);
++
++ frame_unwind_append_unwinder(gdbarch, &sh_linux_sigtramp_frame_unwind);
++
++ /* If we have a register mapping, enable the generic core file
++ support, unless it has already been enabled. */
++ if (tdep->gregset_reg_offset
++ && !gdbarch_regset_from_core_section_p (gdbarch))
++ set_gdbarch_regset_from_core_section (gdbarch,
++ sh_linux_regset_from_core_section);
++
+ linux_init_abi (info, gdbarch);
+
+ /* GNU/Linux uses SVR4-style shared libraries. */
+diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
+index 336b48e..847b271 100644
+--- a/gdb/sh-tdep.c
++++ b/gdb/sh-tdep.c
+@@ -21,6 +21,9 @@
+ sac@cygnus.com. */
+
+ #include "defs.h"
++#include "arch-utils.h"
++#include "command.h"
++#include "dummy-frame.h"
+ #include "frame.h"
+ #include "frame-base.h"
+ #include "frame-unwind.h"
+@@ -35,6 +38,7 @@
+ #include "arch-utils.h"
+ #include "floatformat.h"
+ #include "regcache.h"
++#include "regset.h"
+ #include "doublest.h"
+ #include "osabi.h"
+ #include "reggroups.h"
+@@ -67,23 +71,6 @@ static const char *const sh_cc_enum[] = {
+
+ static const char *sh_active_calling_convention = sh_cc_gcc;
+
+-#define SH_NUM_REGS 67
+-
+-struct sh_frame_cache
+-{
+- /* Base address. */
+- CORE_ADDR base;
+- LONGEST sp_offset;
+- CORE_ADDR pc;
+-
+- /* Flag showing that a frame has been created in the prologue code. */
+- int uses_fp;
+-
+- /* Saved registers. */
+- CORE_ADDR saved_regs[SH_NUM_REGS];
+- CORE_ADDR saved_sp;
+-};
+-
+ static int
+ sh_is_renesas_calling_convention (struct type *func_type)
+ {
+@@ -1043,7 +1030,7 @@ sh_treat_as_flt_p (struct type *type)
+ return 0;
+ /* Otherwise if the type of that member is float, the whole type is
+ treated as float. */
+- if (TYPE_CODE (TYPE_FIELD_TYPE (type, 0)) == TYPE_CODE_FLT)
++ if (TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, 0))) == TYPE_CODE_FLT)
+ return 1;
+ /* Otherwise it's not treated as float. */
+ return 0;
+@@ -1093,7 +1080,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
+ in four registers available. Loop thru args from first to last. */
+ for (argnum = 0; argnum < nargs; argnum++)
+ {
+- type = value_type (args[argnum]);
++ type = check_typedef (value_type (args[argnum]));
+ len = TYPE_LENGTH (type);
+ val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
+
+@@ -1821,7 +1808,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
+ reg->how = DWARF2_FRAME_REG_UNDEFINED;
+ }
+
+-static struct sh_frame_cache *
++struct sh_frame_cache *
+ sh_alloc_frame_cache (void)
+ {
+ struct sh_frame_cache *cache;
+@@ -1848,7 +1835,7 @@ sh_alloc_frame_cache (void)
+ return cache;
+ }
+
+-static struct sh_frame_cache *
++struct sh_frame_cache *
+ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
+ {
+ struct gdbarch *gdbarch = get_frame_arch (this_frame);
+@@ -1915,9 +1902,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
+ return cache;
+ }
+
+-static struct value *
+-sh_frame_prev_register (struct frame_info *this_frame,
+- void **this_cache, int regnum)
++struct value *
++sh_frame_prev_register (struct frame_info *this_frame, void **this_cache,
++ int regnum)
+ {
+ struct gdbarch *gdbarch = get_frame_arch (this_frame);
+ struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
+@@ -1931,7 +1918,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
+ the current frame. Frob regnum so that we pull the value from
+ the correct place. */
+ if (regnum == gdbarch_pc_regnum (gdbarch))
+- regnum = PR_REGNUM;
++ regnum = PR_REGNUM; /* XXX: really? */
+
+ if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
+ return frame_unwind_got_memory (this_frame, regnum,
+@@ -2240,8 +2227,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
+ static struct gdbarch *
+ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+ {
+- struct gdbarch *gdbarch;
+ struct gdbarch_tdep *tdep;
++ struct gdbarch *gdbarch;
+
+ /* SH5 is handled entirely in sh64-tdep.c. */
+ if (info.bfd_arch_info->mach == bfd_mach_sh5)
+@@ -2257,6 +2244,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+ tdep = XCNEW (struct gdbarch_tdep);
+ gdbarch = gdbarch_alloc (&info, tdep);
+
++ /* General-purpose registers. */
++ tdep->gregset = NULL;
++ tdep->gregset_reg_offset = NULL;
++ tdep->gregset_num_regs = 23;
++ tdep->sizeof_gregset = 0;
++
++ /* Floating-point registers. */
++ tdep->fpregset = NULL;
++ tdep->sizeof_fpregset = 34*4;
++
++ tdep->jb_pc_offset = -1;
++
+ set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
+ set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+ set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
+@@ -2407,10 +2406,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+ break;
+ }
+
++ dwarf2_append_unwinders (gdbarch);
++
+ /* Hook in ABI-specific overrides, if they have been registered. */
+ gdbarch_init_osabi (info, gdbarch);
+
+- dwarf2_append_unwinders (gdbarch);
+ frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
+ frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
+
+diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
+index 666968f..62c65b5 100644
+--- a/gdb/sh-tdep.h
++++ b/gdb/sh-tdep.h
+@@ -21,6 +21,12 @@
+
+ /* Contributed by Steve Chamberlain sac@cygnus.com. */
+
++struct frame_info;
++struct gdbarch;
++struct reggroup;
++struct regset;
++struct regcache;
++
+ /* Registers for all SH variants. Used also by sh3-rom.c. */
+ enum
+ {
+@@ -29,6 +35,7 @@ enum
+ ARG0_REGNUM = 4,
+ ARGLAST_REGNUM = 7,
+ FP_REGNUM = 14,
++ SP_REGNUM = 15,
+ PC_REGNUM = 16,
+ PR_REGNUM = 17,
+ GBR_REGNUM = 18,
+@@ -81,6 +88,24 @@ enum
+ FV0_REGNUM = 76,
+ FV_LAST_REGNUM = 79
+ };
++#define SH_NUM_REGS 67
++
++struct sh_frame_cache
++{
++ /* Base address. */
++ CORE_ADDR base;
++ LONGEST sp_offset;
++ CORE_ADDR pc;
++
++ /* Flag showing that a frame has been created in the prologue code. */
++ int uses_fp;
++
++ /* Saved registers. */
++ CORE_ADDR saved_regs[SH_NUM_REGS];
++ CORE_ADDR saved_sp;
++};
++
++extern struct sh_frame_cache *sh_frame_cache (struct frame_info *next_frame, void **this_cache);
+
+ /* This structure describes a register in a core-file. */
+ struct sh_corefile_regmap
+@@ -89,8 +114,32 @@ struct sh_corefile_regmap
+ unsigned int offset;
+ };
+
++/* sh architecture specific information. */
+ struct gdbarch_tdep
+ {
++ /* General-purpose registers. */
++ struct regset *gregset;
++ int *gregset_reg_offset;
++ int gregset_num_regs;
++ size_t sizeof_gregset;
++
++ /* Floating-point registers. */
++ struct regset *fpregset;
++ size_t sizeof_fpregset;
++
++ /* Offset of saved PC in jmp_buf. */
++ int jb_pc_offset;
++
++ /* Detect sigtramp. */
++ int (*sigtramp_p) (struct frame_info *);
++
++ /* Get address of sigcontext for sigtramp. */
++ CORE_ADDR (*sigcontext_addr) (struct frame_info *);
++
++ /* Offset of registers in `struct sigcontext'. */
++ int *sc_reg_offset;
++ int sc_num_regs;
++
+ /* Non-NULL when debugging from a core file. Provides the offset
+ where each general-purpose register is stored inside the associated
+ core file section. */
+diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
+index 6d9aef8..5b66b42 100644
+--- a/gdb/testsuite/gdb.asm/asm-source.exp
++++ b/gdb/testsuite/gdb.asm/asm-source.exp
+@@ -116,6 +116,11 @@ switch -glob -- [istarget] {
+ append link-flags " -m elf32ppc"
+ }
+ }
++ "sh*-linux*" {
++ set asm-arch sh-linux
++ set asm-flags "-I${srcdir}/${subdir} -I${objdir}/${subdir}"
++ set debug-flags "-gdwarf-2"
++ }
+ "sh*-*-*" {
+ set asm-arch sh
+ set debug-flags "-gdwarf-2"
+diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
+index a4a5fc5..89efed7 100644
+--- a/gdb/testsuite/gdb.asm/sh.inc
++++ b/gdb/testsuite/gdb.asm/sh.inc
+@@ -40,9 +40,8 @@
+ mov.l .Lconst\@,r1
+ bra .Lafterconst\@
+ nop
+- nop
+-.Lconst\@:
+ .align 2
++.Lconst\@:
+ .long \subr
+ .align 1
+ .Lafterconst\@:
+diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
+index 424e1b8..0de2e7b 100644
+--- a/gdb/testsuite/gdb.base/annota1.c
++++ b/gdb/testsuite/gdb.base/annota1.c
+@@ -1,6 +1,9 @@
+ #include <stdio.h>
+ #include <signal.h>
+
++#ifdef __sh__
++#define signal(a,b) /* Signals not supported on this target - make them go away */
++#endif
+
+ void
+ handle_USR1 (int sig)
+diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
+index 424e1b8..952aaf21 100644
+--- a/gdb/testsuite/gdb.base/annota3.c
++++ b/gdb/testsuite/gdb.base/annota3.c
+@@ -1,6 +1,10 @@
+ #include <stdio.h>
+ #include <signal.h>
+
++#ifdef __sh__
++#define signal(a,b) /* Signals not supported on this target - make them go away */
++#endif
++
+
+ void
+ handle_USR1 (int sig)
+diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
+index 81f3b08..1574b2d 100644
+--- a/gdb/testsuite/gdb.base/sigall.c
++++ b/gdb/testsuite/gdb.base/sigall.c
+@@ -1,6 +1,9 @@
+ #include <signal.h>
+ #include <unistd.h>
+
++#ifdef __sh__
++#define signal(a,b) /* Signals not supported on this target - make them go away */
++#endif
+
+ /* Signal handlers, we set breakpoints in them to make sure that the
+ signals really get delivered. */
+diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
+index 7566068..1205a9b 100644
+--- a/gdb/testsuite/gdb.base/signals.c
++++ b/gdb/testsuite/gdb.base/signals.c
+@@ -3,6 +3,10 @@
+ #include <signal.h>
+ #include <unistd.h>
+
++#ifdef __sh__
++#define signal(a,b) /* Signals not supported on this target - make them go away */
++#define alarm(a) /* Ditto for alarm() */
++#endif
+
+ static int count = 0;
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
new file mode 100644
index 000000000..394d26d06
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0006-Dont-disable-libreadline.a-when-using-disable-static.patch
@@ -0,0 +1,50 @@
+From f3932cb2960fd54655a448b13d5a5b80f356f8de Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 15:25:03 -0700
+Subject: [PATCH 06/10] Dont disable libreadline.a when using --disable-static
+
+If gdb is configured with --disable-static then this is dutifully passed to
+readline which then disables libreadline.a, which causes a problem when gdb
+tries to link against that.
+
+To ensure that readline always builds static libraries, pass --enable-static to
+the sub-configure.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.def | 3 ++-
+ Makefile.in | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.def b/Makefile.def
+index ea8453e..0fc66c6 100644
+--- a/Makefile.def
++++ b/Makefile.def
+@@ -104,7 +104,8 @@ host_modules= { module= libiconv;
+ missing= install-html;
+ missing= install-info; };
+ host_modules= { module= m4; };
+-host_modules= { module= readline; };
++host_modules= { module= readline;
++ extra_configure_flags='--enable-static';};
+ host_modules= { module= sid; };
+ host_modules= { module= sim; };
+ host_modules= { module= texinfo; no_install= true; };
+diff --git a/Makefile.in b/Makefile.in
+index 2733c4d..3e04e80 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -25380,7 +25380,7 @@ configure-readline:
+ $$s/$$module_srcdir/configure \
+ --srcdir=$${topdir}/$$module_srcdir \
+ $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
+- --target=${target_alias} \
++ --target=${target_alias} --enable-static \
+ || exit 1
+ @endif readline
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
new file mode 100644
index 000000000..f32f8ee41
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0007-use-asm-sgidefs.h.patch
@@ -0,0 +1,36 @@
+From 048675a915a72989f2613386975730da016e7c5d Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <amccurdy@gmail.com>
+Date: Sat, 30 Apr 2016 15:29:06 -0700
+Subject: [PATCH 07/10] use <asm/sgidefs.h>
+
+Build fix for MIPS with musl libc
+
+The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
+but not by musl. Regardless of the libc, the kernel headers provide
+<asm/sgidefs.h> which provides the same definitions, so use that
+instead.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/mips-linux-nat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
+index 449b43a..09603da 100644
+--- a/gdb/mips-linux-nat.c
++++ b/gdb/mips-linux-nat.c
+@@ -31,7 +31,7 @@
+ #include "gdb_proc_service.h"
+ #include "gregset.h"
+
+-#include <sgidefs.h>
++#include <asm/sgidefs.h>
+ #include "nat/gdb_ptrace.h"
+ #include <asm/ptrace.h>
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
new file mode 100644
index 000000000..7e58b617a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0008-Use-exorted-definitions-of-SIGRTMIN.patch
@@ -0,0 +1,50 @@
+From e54ead9d81f4d38412751b815f909db3cb144bb1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 15:31:40 -0700
+Subject: [PATCH 08/10] Use exorted definitions of SIGRTMIN
+
+Define W_STOPCODE if not defined already
+
+__SIGRTMIN is internal to glibc and other libcs e.g. musl
+may not provide them
+
+Fixes
+https://sourceware.org/bugzilla/show_bug.cgi?id=13012
+
+Upstream-Status: Submitted
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/linux-nat.c | 4 ++--
+ gdb/nat/linux-nat.h | 4 ++++
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
+index 0829bcb..3b8a896 100644
+--- a/gdb/linux-nat.c
++++ b/gdb/linux-nat.c
+@@ -4845,6 +4845,6 @@ lin_thread_get_thread_signals (sigset_t *set)
+ /* NPTL reserves the first two RT signals, but does not provide any
+ way for the debugger to query the signal numbers - fortunately
+ they don't change. */
+- sigaddset (set, __SIGRTMIN);
+- sigaddset (set, __SIGRTMIN + 1);
++ sigaddset (set, SIGRTMIN);
++ sigaddset (set, SIGRTMIN + 1);
+ }
+diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
+index 2b485db..d058afc 100644
+--- a/gdb/nat/linux-nat.h
++++ b/gdb/nat/linux-nat.h
+@@ -85,4 +85,8 @@ extern enum target_stop_reason lwp_stop_reason (struct lwp_info *lwp);
+
+ extern void linux_stop_lwp (struct lwp_info *lwp);
+
++#ifndef W_STOPCODE
++#define W_STOPCODE(sig) ((sig) << 8 | 0x7f)
++#endif
++
+ #endif /* LINUX_NAT_H */
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
new file mode 100644
index 000000000..a230047af
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0009-Change-order-of-CFLAGS.patch
@@ -0,0 +1,34 @@
+From ba0bbf887d4911ccee9df57cb13eafb1de34bb31 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 15:35:39 -0700
+Subject: [PATCH 09/10] Change order of CFLAGS
+
+Lets us override Werror if need be
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/gdbserver/Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
+index 1e874e3..91e8550 100644
+--- a/gdb/gdbserver/Makefile.in
++++ b/gdb/gdbserver/Makefile.in
+@@ -138,10 +138,10 @@ CXXFLAGS = @CXXFLAGS@
+ CPPFLAGS = @CPPFLAGS@
+
+ # INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros.
+-INTERNAL_CFLAGS_BASE = ${COMPILER_CFLAGS} ${GLOBAL_CFLAGS} \
++INTERNAL_CFLAGS_BASE = ${GLOBAL_CFLAGS} \
+ ${PROFILE_CFLAGS} ${INCLUDE_CFLAGS} ${CPPFLAGS}
+ INTERNAL_WARN_CFLAGS = ${INTERNAL_CFLAGS_BASE} $(WARN_CFLAGS)
+-INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) -DGDBSERVER
++INTERNAL_CFLAGS = ${INTERNAL_WARN_CFLAGS} $(WERROR_CFLAGS) ${COMPILER_CFLAGS} -DGDBSERVER
+
+ # LDFLAGS is specifically reserved for setting from the command line
+ # when running make.
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
new file mode 100644
index 000000000..16c34c703
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0010-resolve-restrict-keyword-conflict.patch
@@ -0,0 +1,48 @@
+From 5a9ccb8c0728b658fc4f7f0f7b36873c64274f10 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 10 May 2016 08:47:05 -0700
+Subject: [PATCH 10/10] resolve restrict keyword conflict
+
+GCC detects that we call 'restrict' as param name in function
+signatures and complains since both params are called 'restrict'
+therefore we use __restrict to denote the C99 keywork
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdb/gnulib/import/sys_time.in.h | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/gdb/gnulib/import/sys_time.in.h b/gdb/gnulib/import/sys_time.in.h
+index c556c5d..2a6107f 100644
+--- a/gdb/gnulib/import/sys_time.in.h
++++ b/gdb/gnulib/import/sys_time.in.h
+@@ -93,20 +93,20 @@ struct timeval
+ # define gettimeofday rpl_gettimeofday
+ # endif
+ _GL_FUNCDECL_RPL (gettimeofday, int,
+- (struct timeval *restrict, void *restrict)
++ (struct timeval *__restrict, void *__restrict)
+ _GL_ARG_NONNULL ((1)));
+ _GL_CXXALIAS_RPL (gettimeofday, int,
+- (struct timeval *restrict, void *restrict));
++ (struct timeval *__restrict, void *__restrict));
+ # else
+ # if !@HAVE_GETTIMEOFDAY@
+ _GL_FUNCDECL_SYS (gettimeofday, int,
+- (struct timeval *restrict, void *restrict)
++ (struct timeval *__restrict, void *__restrict)
+ _GL_ARG_NONNULL ((1)));
+ # endif
+ /* Need to cast, because on glibc systems, by default, the second argument is
+ struct timezone *. */
+ _GL_CXXALIAS_SYS_CAST (gettimeofday, int,
+- (struct timeval *restrict, void *restrict));
++ (struct timeval *__restrict, void *__restrict));
+ # endif
+ _GL_CXXALIASWARN (gettimeofday);
+ #elif defined GNULIB_POSIXCHECK
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
new file mode 100644
index 000000000..209c4fcbd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/0011-avx_mpx.patch
@@ -0,0 +1,2601 @@
+gdb: Backport patch to support changes with AVX and MPX
+
+The current MPX target descriptions assume that MPX is always combined
+with AVX, however that's not correct. We can have machines with MPX
+and without AVX; or machines with AVX and without MPX.
+
+This patch adds new target descriptions for machines that support
+both MPX and AVX, as duplicates of the existing MPX descriptions.
+
+The following commit will remove AVX from the MPX-only descriptions.
+
+Upstream-Status: Backport
+
+Signed-off-by: bavery <brian.avery@intel.com>
+
+
+Orignal patch changelog and author attribution:
+
+2016-04-16 Walfred Tedeschi <walfred.tedeschi@intel.com>
+
+gdb/ChangeLog:
+
+ * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):
+ New include.
+ (amd64_linux_core_read_description): Add case for
+ X86_XSTATE_AVX_MPX_MASK.
+ (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.
+ * amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.
+ * amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.
+ (amd64_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
+ (_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.
+ * common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.
+ (X86_XSTATE_AVX_MPX_MASK): New case.
+ * features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)
+ (i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.
+ (i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)
+ (i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):
+ New expedites.
+ * i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New
+ include.
+ (i386_linux_core_read_description): Add case
+ X86_XSTATE_AVX_MPX_MASK.
+ (_initialize_i386_linux_tdep): Call
+ initialize_tdesc_i386_avx_mpx_linux.
+ * i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.
+ * i386-tdep.c (features/i386/i386-avx-mpx.c): New include.
+ (i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
+ * x86-linux-nat.c (x86_linux_read_description): Add case for
+ X86_XSTATE_AVX_MPX_MASK.
+ * features/i386/amd64-avx-mpx-linux.xml: New file.
+ * features/i386/i386-avx-mpx-linux.xml: New file.
+ * features/i386/i386-avx-mpx.xml: New file.
+ * features/i386/amd64-avx-mpx.xml: New file.
+ * features/i386/amd64-avx-mpx-linux.c: Generated.
+ * features/i386/amd64-avx-mpx.c: Generated.
+ * features/i386/i386-avx-mpx-linux.c: Generated.
+ * features/i386/i386-avx-mpx.c: Generated.
+ * regformats/i386/amd64-avx-mpx-linux.dat: Generated.
+ * regformats/i386/amd64-avx-mpx.dat: Generated.
+ * regformats/i386/i386-avx-mpx-linux.dat: Generated.
+ * regformats/i386/i386-avx-mpx.dat: Generated.
+
+gdb/gdbserver/ChangeLog:
+
+ * Makefile.in (clean): Add removal for i386-avx-mpx.c,
+ i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.
+ (i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)
+ (amd64-avx-mpx-linux.c): New rules.
+ (amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.
+ * configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.
+ (srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.
+ (srv_amd64_regobj): Add amd64-avx-mpx.o.
+ (srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.
+ (srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.
+ (srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.
+ (srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.
+ (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.
+ (ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.
+ (ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.
+ * linux-x86-low.c (x86_linux_read_description): Add case for
+ X86_XSTATE_AVX_MPX_MASK.
+ (x86_get_ipa_tdesc_idx): Add cases for avx_mpx.
+ (initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and
+ init_registers_i386_avx_mpx_linux.
+ * linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
+ (initialize_low_tracepoint): Call
+ init_registers_i386_avx_mpx_linux.
+ * linux-amd64-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
+ (initialize_low_tracepoint): Call
+ init_registers_amd64_avx_mpx_linux.
+ * linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.
+ (init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)
+ (init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New
+ declarations.
+
+
+
+
+diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
+index 21bcd99..5327f7c 100644
+--- a/gdb/amd64-linux-tdep.c
++++ b/gdb/amd64-linux-tdep.c
+@@ -43,6 +43,7 @@
+ #include "features/i386/amd64-linux.c"
+ #include "features/i386/amd64-avx-linux.c"
+ #include "features/i386/amd64-mpx-linux.c"
++#include "features/i386/amd64-avx-mpx-linux.c"
+ #include "features/i386/amd64-avx512-linux.c"
+
+ #include "features/i386/x32-linux.c"
+@@ -1590,6 +1591,11 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
+ return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
+ else
+ return tdesc_amd64_mpx_linux;
++ case X86_XSTATE_AVX_MPX_MASK:
++ if (gdbarch_ptr_bit (gdbarch) == 32)
++ return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
++ else
++ return tdesc_amd64_avx_mpx_linux;
+ case X86_XSTATE_AVX_MASK:
+ if (gdbarch_ptr_bit (gdbarch) == 32)
+ return tdesc_x32_avx_linux;
+@@ -2285,6 +2291,7 @@ _initialize_amd64_linux_tdep (void)
+ initialize_tdesc_amd64_linux ();
+ initialize_tdesc_amd64_avx_linux ();
+ initialize_tdesc_amd64_mpx_linux ();
++ initialize_tdesc_amd64_avx_mpx_linux ();
+ initialize_tdesc_amd64_avx512_linux ();
+
+ initialize_tdesc_x32_linux ();
+diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h
+index 8673442..d64d5d6 100644
+--- a/gdb/amd64-linux-tdep.h
++++ b/gdb/amd64-linux-tdep.h
+@@ -35,6 +35,7 @@
+ extern struct target_desc *tdesc_amd64_linux;
+ extern struct target_desc *tdesc_amd64_avx_linux;
+ extern struct target_desc *tdesc_amd64_mpx_linux;
++extern struct target_desc *tdesc_amd64_avx_mpx_linux;
+ extern struct target_desc *tdesc_amd64_avx512_linux;
+
+ extern struct target_desc *tdesc_x32_linux;
+diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
+index fae92b2..88e3bf8 100644
+--- a/gdb/amd64-tdep.c
++++ b/gdb/amd64-tdep.c
+@@ -44,6 +44,7 @@
+ #include "features/i386/amd64.c"
+ #include "features/i386/amd64-avx.c"
+ #include "features/i386/amd64-mpx.c"
++#include "features/i386/amd64-avx-mpx.c"
+ #include "features/i386/amd64-avx512.c"
+
+ #include "features/i386/x32.c"
+@@ -3132,6 +3133,8 @@ amd64_target_description (uint64_t xcr0)
+ return tdesc_amd64_avx512;
+ case X86_XSTATE_MPX_MASK:
+ return tdesc_amd64_mpx;
++ case X86_XSTATE_AVX_MPX_MASK:
++ return tdesc_amd64_avx_mpx;
+ case X86_XSTATE_AVX_MASK:
+ return tdesc_amd64_avx;
+ default:
+@@ -3148,6 +3151,7 @@ _initialize_amd64_tdep (void)
+ initialize_tdesc_amd64 ();
+ initialize_tdesc_amd64_avx ();
+ initialize_tdesc_amd64_mpx ();
++ initialize_tdesc_amd64_avx_mpx ();
+ initialize_tdesc_amd64_avx512 ();
+
+ initialize_tdesc_x32 ();
+diff --git a/gdb/common/x86-xstate.h b/gdb/common/x86-xstate.h
+index 8386420..0aa9164 100644
+--- a/gdb/common/x86-xstate.h
++++ b/gdb/common/x86-xstate.h
+@@ -39,9 +39,10 @@
+ #define X86_XSTATE_X87_MASK X86_XSTATE_X87
+ #define X86_XSTATE_SSE_MASK (X86_XSTATE_X87 | X86_XSTATE_SSE)
+ #define X86_XSTATE_AVX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_AVX)
+-#define X86_XSTATE_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
++#define X86_XSTATE_MPX_MASK (X86_XSTATE_SSE_MASK | X86_XSTATE_MPX)
++#define X86_XSTATE_AVX_MPX_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
+ #define X86_XSTATE_AVX512_MASK (X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)
+-#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_MPX_MASK | X86_XSTATE_AVX512)
++#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)
+
+ #define X86_XSTATE_ALL_MASK (X86_XSTATE_MPX_AVX512_MASK)
+
+diff --git a/gdb/features/Makefile b/gdb/features/Makefile
+index 10173cf..e5c5154 100644
+--- a/gdb/features/Makefile
++++ b/gdb/features/Makefile
+@@ -50,9 +50,11 @@ WHICH = aarch64 \
+ i386/amd64 i386/amd64-linux \
+ i386/i386-avx i386/i386-avx-linux \
+ i386/i386-mpx i386/i386-mpx-linux \
++ i386/i386-avx-mpx i386/i386-avx-mpx-linux \
+ i386/i386-avx512 i386/i386-avx512-linux \
+ i386/amd64-avx i386/amd64-avx-linux \
+ i386/amd64-mpx i386/amd64-mpx-linux \
++ i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \
+ i386/amd64-avx512 i386/amd64-avx512-linux \
+ i386/x32 i386/x32-linux \
+ i386/x32-avx i386/x32-avx-linux \
+@@ -83,7 +85,9 @@ i386/amd64-linux-expedite = rbp,rsp,rip
+ i386/i386-avx-expedite = ebp,esp,eip
+ i386/i386-avx-linux-expedite = ebp,esp,eip
+ i386/i386-mpx-expedite = ebp,esp,eip
++i386/i386-avx-mpx-expedite = ebp,esp,eip
+ i386/i386-mpx-linux-expedite = ebp,esp,eip
++i386/i386-avx-mpx-linux-expedite = ebp,esp,eip
+ i386/i386-avx512-expedite = ebp,esp,eip
+ i386/i386-avx512-linux-expedite = ebp,esp,eip
+ i386/i386-mmx-expedite = ebp,esp,eip
+@@ -91,7 +95,9 @@ i386/i386-mmx-linux-expedite = ebp,esp,eip
+ i386/amd64-avx-expedite = rbp,rsp,rip
+ i386/amd64-avx-linux-expedite = rbp,rsp,rip
+ i386/amd64-mpx-expedite = rbp,rsp,rip
++i386/amd64-avx-mpx-expedite = rbp,rsp,rip
+ i386/amd64-mpx-linux-expedite = rbp,rsp,rip
++i386/amd64-avx-mpx-linux-expedite = rbp,rsp,rip
+ i386/amd64-avx512-expedite = rbp,rsp,rip
+ i386/amd64-avx512-linux-expedite = rbp,rsp,rip
+ i386/x32-expedite = rbp,rsp,rip
+@@ -156,6 +162,8 @@ XMLTOC = \
+ i386/amd64-linux.xml \
+ i386/amd64-mpx-linux.xml \
+ i386/amd64-mpx.xml \
++ i386/amd64-avx-mpx-linux.xml \
++ i386/amd64-avx-mpx.xml \
+ i386/amd64.xml \
+ i386/i386-avx-linux.xml \
+ i386/i386-avx.xml \
+@@ -166,6 +174,8 @@ XMLTOC = \
+ i386/i386-mmx.xml \
+ i386/i386-mpx-linux.xml \
+ i386/i386-mpx.xml \
++ i386/i386-avx-mpx-linux.xml \
++ i386/i386-avx-mpx.xml \
+ i386/i386.xml \
+ i386/x32-avx-linux.xml \
+ i386/x32-avx.xml \
+@@ -271,6 +281,10 @@ $(outdir)/i386/i386-mpx.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+ i386/32bit-mpx.xml
+ $(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+ i386/32bit-linux.xml i386/32bit-mpx.xml
++$(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml \
++ i386/32bit-linux.xml i386/32bit-mpx.xml
++$(outdir)/i386/i386-avx-mpx-linux.dat: i386/32bit-core.xml \
++ i386/32bit-linux.xml i386/32bit-mpx.xml
+ $(outdir)/i386/i386-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+ i386/32bit-mpx.xml i386/32bit-avx512.xml
+ $(outdir)/i386/i386-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+@@ -282,8 +296,12 @@ $(outdir)/i386/amd64-avx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+ i386/64bit-linux.xml
+ $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+ i386/64bit-linux.xml i386/64bit-mpx.xml
++$(outdir)/i386/amd64-avx-mpx-linux.dat: i386/64bit-core.xml \
++ i386/64bit-linux.xml i386/64bit-mpx.xml
+ $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+ i386/64bit-mpx.xml
++$(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \
++ i386/64bit-mpx.xml
+ $(outdir)/i386/amd64-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+ i386/64bit-mpx.xml i386/64bit-avx512.xml
+ $(outdir)/i386/amd64-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+diff --git a/gdb/features/i386/amd64-avx-mpx-linux.c b/gdb/features/i386/amd64-avx-mpx-linux.c
+new file mode 100644
+index 0000000..37b4c81
+--- /dev/null
++++ b/gdb/features/i386/amd64-avx-mpx-linux.c
+@@ -0,0 +1,211 @@
++/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
++ Original: amd64-avx-mpx-linux.xml */
++
++#include "defs.h"
++#include "osabi.h"
++#include "target-descriptions.h"
++
++struct target_desc *tdesc_amd64_avx_mpx_linux;
++static void
++initialize_tdesc_amd64_avx_mpx_linux (void)
++{
++ struct target_desc *result = allocate_target_description ();
++ struct tdesc_feature *feature;
++ struct tdesc_type *field_type;
++ struct tdesc_type *type;
++
++ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
++
++ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
++ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
++ tdesc_add_flag (field_type, 0, "CF");
++ tdesc_add_flag (field_type, 1, "");
++ tdesc_add_flag (field_type, 2, "PF");
++ tdesc_add_flag (field_type, 4, "AF");
++ tdesc_add_flag (field_type, 6, "ZF");
++ tdesc_add_flag (field_type, 7, "SF");
++ tdesc_add_flag (field_type, 8, "TF");
++ tdesc_add_flag (field_type, 9, "IF");
++ tdesc_add_flag (field_type, 10, "DF");
++ tdesc_add_flag (field_type, 11, "OF");
++ tdesc_add_flag (field_type, 14, "NT");
++ tdesc_add_flag (field_type, 16, "RF");
++ tdesc_add_flag (field_type, 17, "VM");
++ tdesc_add_flag (field_type, 18, "AC");
++ tdesc_add_flag (field_type, 19, "VIF");
++ tdesc_add_flag (field_type, 20, "VIP");
++ tdesc_add_flag (field_type, 21, "ID");
++
++ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
++ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
++ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
++ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
++ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
++ field_type = tdesc_named_type (feature, "ieee_single");
++ tdesc_create_vector (feature, "v4f", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "ieee_double");
++ tdesc_create_vector (feature, "v2d", field_type, 2);
++
++ field_type = tdesc_named_type (feature, "int8");
++ tdesc_create_vector (feature, "v16i8", field_type, 16);
++
++ field_type = tdesc_named_type (feature, "int16");
++ tdesc_create_vector (feature, "v8i16", field_type, 8);
++
++ field_type = tdesc_named_type (feature, "int32");
++ tdesc_create_vector (feature, "v4i32", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "int64");
++ tdesc_create_vector (feature, "v2i64", field_type, 2);
++
++ type = tdesc_create_union (feature, "vec128");
++ field_type = tdesc_named_type (feature, "v4f");
++ tdesc_add_field (type, "v4_float", field_type);
++ field_type = tdesc_named_type (feature, "v2d");
++ tdesc_add_field (type, "v2_double", field_type);
++ field_type = tdesc_named_type (feature, "v16i8");
++ tdesc_add_field (type, "v16_int8", field_type);
++ field_type = tdesc_named_type (feature, "v8i16");
++ tdesc_add_field (type, "v8_int16", field_type);
++ field_type = tdesc_named_type (feature, "v4i32");
++ tdesc_add_field (type, "v4_int32", field_type);
++ field_type = tdesc_named_type (feature, "v2i64");
++ tdesc_add_field (type, "v2_int64", field_type);
++ field_type = tdesc_named_type (feature, "uint128");
++ tdesc_add_field (type, "uint128", field_type);
++
++ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
++ tdesc_add_flag (field_type, 0, "IE");
++ tdesc_add_flag (field_type, 1, "DE");
++ tdesc_add_flag (field_type, 2, "ZE");
++ tdesc_add_flag (field_type, 3, "OE");
++ tdesc_add_flag (field_type, 4, "UE");
++ tdesc_add_flag (field_type, 5, "PE");
++ tdesc_add_flag (field_type, 6, "DAZ");
++ tdesc_add_flag (field_type, 7, "IM");
++ tdesc_add_flag (field_type, 8, "DM");
++ tdesc_add_flag (field_type, 9, "ZM");
++ tdesc_add_flag (field_type, 10, "OM");
++ tdesc_add_flag (field_type, 11, "UM");
++ tdesc_add_flag (field_type, 12, "PM");
++ tdesc_add_flag (field_type, 15, "FZ");
++
++ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
++ tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
++ tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
++ type = tdesc_create_struct (feature, "br128");
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "lbound", field_type);
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "ubound_raw", field_type);
++
++ type = tdesc_create_struct (feature, "_bndstatus");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "bde", 2, 63);
++ tdesc_add_bitfield (type, "error", 0, 1);
++
++ type = tdesc_create_union (feature, "status");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndstatus");
++ tdesc_add_field (type, "status", field_type);
++
++ type = tdesc_create_struct (feature, "_bndcfgu");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "base", 12, 63);
++ tdesc_add_bitfield (type, "reserved", 2, 11);
++ tdesc_add_bitfield (type, "preserved", 1, 1);
++ tdesc_add_bitfield (type, "enabled", 0, 0);
++
++ type = tdesc_create_union (feature, "cfgu");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndcfgu");
++ tdesc_add_field (type, "config", field_type);
++
++ tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
++
++ tdesc_amd64_avx_mpx_linux = result;
++}
+diff --git a/gdb/features/i386/amd64-avx-mpx-linux.xml b/gdb/features/i386/amd64-avx-mpx-linux.xml
+new file mode 100644
+index 0000000..526c700
+--- /dev/null
++++ b/gdb/features/i386/amd64-avx-mpx-linux.xml
+@@ -0,0 +1,19 @@
++<?xml version="1.0"?>
++<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
++
++ Copying and distribution of this file, with or without modification,
++ are permitted in any medium without royalty provided the copyright
++ notice and this notice are preserved. -->
++
++<!-- AMD64 with AVX and MPX - Includes Linux-only special "register". -->
++
++<!DOCTYPE target SYSTEM "gdb-target.dtd">
++<target>
++ <architecture>i386:x86-64</architecture>
++ <osabi>GNU/Linux</osabi>
++ <xi:include href="64bit-core.xml"/>
++ <xi:include href="64bit-sse.xml"/>
++ <xi:include href="64bit-linux.xml"/>
++ <xi:include href="64bit-avx.xml"/>
++ <xi:include href="64bit-mpx.xml"/>
++</target>
+diff --git a/gdb/features/i386/amd64-avx-mpx.c b/gdb/features/i386/amd64-avx-mpx.c
+new file mode 100644
+index 0000000..1279f73
+--- /dev/null
++++ b/gdb/features/i386/amd64-avx-mpx.c
+@@ -0,0 +1,206 @@
++/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
++ Original: amd64-avx-mpx.xml */
++
++#include "defs.h"
++#include "osabi.h"
++#include "target-descriptions.h"
++
++struct target_desc *tdesc_amd64_avx_mpx;
++static void
++initialize_tdesc_amd64_avx_mpx (void)
++{
++ struct target_desc *result = allocate_target_description ();
++ struct tdesc_feature *feature;
++ struct tdesc_type *field_type;
++ struct tdesc_type *type;
++
++ set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
++ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
++ tdesc_add_flag (field_type, 0, "CF");
++ tdesc_add_flag (field_type, 1, "");
++ tdesc_add_flag (field_type, 2, "PF");
++ tdesc_add_flag (field_type, 4, "AF");
++ tdesc_add_flag (field_type, 6, "ZF");
++ tdesc_add_flag (field_type, 7, "SF");
++ tdesc_add_flag (field_type, 8, "TF");
++ tdesc_add_flag (field_type, 9, "IF");
++ tdesc_add_flag (field_type, 10, "DF");
++ tdesc_add_flag (field_type, 11, "OF");
++ tdesc_add_flag (field_type, 14, "NT");
++ tdesc_add_flag (field_type, 16, "RF");
++ tdesc_add_flag (field_type, 17, "VM");
++ tdesc_add_flag (field_type, 18, "AC");
++ tdesc_add_flag (field_type, 19, "VIF");
++ tdesc_add_flag (field_type, 20, "VIP");
++ tdesc_add_flag (field_type, 21, "ID");
++
++ tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
++ tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
++ tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
++ tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
++ tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
++ tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
++ field_type = tdesc_named_type (feature, "ieee_single");
++ tdesc_create_vector (feature, "v4f", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "ieee_double");
++ tdesc_create_vector (feature, "v2d", field_type, 2);
++
++ field_type = tdesc_named_type (feature, "int8");
++ tdesc_create_vector (feature, "v16i8", field_type, 16);
++
++ field_type = tdesc_named_type (feature, "int16");
++ tdesc_create_vector (feature, "v8i16", field_type, 8);
++
++ field_type = tdesc_named_type (feature, "int32");
++ tdesc_create_vector (feature, "v4i32", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "int64");
++ tdesc_create_vector (feature, "v2i64", field_type, 2);
++
++ type = tdesc_create_union (feature, "vec128");
++ field_type = tdesc_named_type (feature, "v4f");
++ tdesc_add_field (type, "v4_float", field_type);
++ field_type = tdesc_named_type (feature, "v2d");
++ tdesc_add_field (type, "v2_double", field_type);
++ field_type = tdesc_named_type (feature, "v16i8");
++ tdesc_add_field (type, "v16_int8", field_type);
++ field_type = tdesc_named_type (feature, "v8i16");
++ tdesc_add_field (type, "v8_int16", field_type);
++ field_type = tdesc_named_type (feature, "v4i32");
++ tdesc_add_field (type, "v4_int32", field_type);
++ field_type = tdesc_named_type (feature, "v2i64");
++ tdesc_add_field (type, "v2_int64", field_type);
++ field_type = tdesc_named_type (feature, "uint128");
++ tdesc_add_field (type, "uint128", field_type);
++
++ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
++ tdesc_add_flag (field_type, 0, "IE");
++ tdesc_add_flag (field_type, 1, "DE");
++ tdesc_add_flag (field_type, 2, "ZE");
++ tdesc_add_flag (field_type, 3, "OE");
++ tdesc_add_flag (field_type, 4, "UE");
++ tdesc_add_flag (field_type, 5, "PE");
++ tdesc_add_flag (field_type, 6, "DAZ");
++ tdesc_add_flag (field_type, 7, "IM");
++ tdesc_add_flag (field_type, 8, "DM");
++ tdesc_add_flag (field_type, 9, "ZM");
++ tdesc_add_flag (field_type, 10, "OM");
++ tdesc_add_flag (field_type, 11, "UM");
++ tdesc_add_flag (field_type, 12, "PM");
++ tdesc_add_flag (field_type, 15, "FZ");
++
++ tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
++ tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
++ type = tdesc_create_struct (feature, "br128");
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "lbound", field_type);
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "ubound_raw", field_type);
++
++ type = tdesc_create_struct (feature, "_bndstatus");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "bde", 2, 63);
++ tdesc_add_bitfield (type, "error", 0, 1);
++
++ type = tdesc_create_union (feature, "status");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndstatus");
++ tdesc_add_field (type, "status", field_type);
++
++ type = tdesc_create_struct (feature, "_bndcfgu");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "base", 12, 63);
++ tdesc_add_bitfield (type, "reserved", 2, 11);
++ tdesc_add_bitfield (type, "preserved", 1, 1);
++ tdesc_add_bitfield (type, "enabled", 0, 0);
++
++ type = tdesc_create_union (feature, "cfgu");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndcfgu");
++ tdesc_add_field (type, "config", field_type);
++
++ tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
++
++ tdesc_amd64_avx_mpx = result;
++}
+diff --git a/gdb/features/i386/amd64-avx-mpx.xml b/gdb/features/i386/amd64-avx-mpx.xml
+new file mode 100644
+index 0000000..3eea6dd
+--- /dev/null
++++ b/gdb/features/i386/amd64-avx-mpx.xml
+@@ -0,0 +1,17 @@
++<?xml version="1.0"?>
++<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
++
++ Copying and distribution of this file, with or without modification,
++ are permitted in any medium without royalty provided the copyright
++ notice and this notice are preserved. -->
++
++<!-- AMD64 with AVX and MPX -->
++
++<!DOCTYPE target SYSTEM "gdb-target.dtd">
++<target>
++ <architecture>i386:x86-64</architecture>
++ <xi:include href="64bit-core.xml"/>
++ <xi:include href="64bit-sse.xml"/>
++ <xi:include href="64bit-avx.xml"/>
++ <xi:include href="64bit-mpx.xml"/>
++</target>
+diff --git a/gdb/features/i386/amd64-mpx-linux.c b/gdb/features/i386/amd64-mpx-linux.c
+index 86a1774..5c1584b 100644
+--- a/gdb/features/i386/amd64-mpx-linux.c
++++ b/gdb/features/i386/amd64-mpx-linux.c
+@@ -151,24 +151,6 @@ initialize_tdesc_amd64_mpx_linux (void)
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
+ tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
+
+- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
+- tdesc_create_reg (feature, "ymm0h", 58, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm1h", 59, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm2h", 60, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm3h", 61, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm4h", 62, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm5h", 63, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm6h", 64, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm7h", 65, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm8h", 66, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm9h", 67, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm10h", 68, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm11h", 69, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm12h", 70, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm13h", 71, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm14h", 72, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm15h", 73, 1, NULL, 128, "uint128");
+-
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
+ type = tdesc_create_struct (feature, "br128");
+ field_type = tdesc_named_type (feature, "uint64");
+@@ -200,12 +182,12 @@ initialize_tdesc_amd64_mpx_linux (void)
+ field_type = tdesc_named_type (feature, "_bndcfgu");
+ tdesc_add_field (type, "config", field_type);
+
+- tdesc_create_reg (feature, "bnd0raw", 74, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd1raw", 75, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd2raw", 76, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd3raw", 77, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bndcfgu", 78, 1, NULL, 64, "cfgu");
+- tdesc_create_reg (feature, "bndstatus", 79, 1, NULL, 64, "status");
++ tdesc_create_reg (feature, "bnd0raw", 58, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 59, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 60, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 61, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 62, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 63, 1, NULL, 64, "status");
+
+ tdesc_amd64_mpx_linux = result;
+ }
+diff --git a/gdb/features/i386/amd64-mpx-linux.xml b/gdb/features/i386/amd64-mpx-linux.xml
+index 15e87b4..835126b 100644
+--- a/gdb/features/i386/amd64-mpx-linux.xml
++++ b/gdb/features/i386/amd64-mpx-linux.xml
+@@ -14,6 +14,5 @@
+ <xi:include href="64bit-core.xml"/>
+ <xi:include href="64bit-sse.xml"/>
+ <xi:include href="64bit-linux.xml"/>
+- <xi:include href="64bit-avx.xml"/>
+ <xi:include href="64bit-mpx.xml"/>
+ </target>
+diff --git a/gdb/features/i386/amd64-mpx.c b/gdb/features/i386/amd64-mpx.c
+index 15ae5f7..4c852ef 100644
+--- a/gdb/features/i386/amd64-mpx.c
++++ b/gdb/features/i386/amd64-mpx.c
+@@ -146,24 +146,6 @@ initialize_tdesc_amd64_mpx (void)
+ tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
+ tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
+
+- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
+- tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
+-
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
+ type = tdesc_create_struct (feature, "br128");
+ field_type = tdesc_named_type (feature, "uint64");
+@@ -195,12 +177,12 @@ initialize_tdesc_amd64_mpx (void)
+ field_type = tdesc_named_type (feature, "_bndcfgu");
+ tdesc_add_field (type, "config", field_type);
+
+- tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
+- tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
++ tdesc_create_reg (feature, "bnd0raw", 57, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 58, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 59, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 60, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 61, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 62, 1, NULL, 64, "status");
+
+ tdesc_amd64_mpx = result;
+ }
+diff --git a/gdb/features/i386/amd64-mpx.xml b/gdb/features/i386/amd64-mpx.xml
+index 21b6df3..e458736 100644
+--- a/gdb/features/i386/amd64-mpx.xml
++++ b/gdb/features/i386/amd64-mpx.xml
+@@ -12,6 +12,5 @@
+ <architecture>i386:x86-64</architecture>
+ <xi:include href="64bit-core.xml"/>
+ <xi:include href="64bit-sse.xml"/>
+- <xi:include href="64bit-avx.xml"/>
+ <xi:include href="64bit-mpx.xml"/>
+ </target>
+diff --git a/gdb/features/i386/i386-avx-mpx-linux.c b/gdb/features/i386/i386-avx-mpx-linux.c
+new file mode 100644
+index 0000000..dd75403
+--- /dev/null
++++ b/gdb/features/i386/i386-avx-mpx-linux.c
+@@ -0,0 +1,187 @@
++/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
++ Original: i386-avx-mpx-linux.xml */
++
++#include "defs.h"
++#include "osabi.h"
++#include "target-descriptions.h"
++
++struct target_desc *tdesc_i386_avx_mpx_linux;
++static void
++initialize_tdesc_i386_avx_mpx_linux (void)
++{
++ struct target_desc *result = allocate_target_description ();
++ struct tdesc_feature *feature;
++ struct tdesc_type *field_type;
++ struct tdesc_type *type;
++
++ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
++
++ set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
++ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
++ tdesc_add_flag (field_type, 0, "CF");
++ tdesc_add_flag (field_type, 1, "");
++ tdesc_add_flag (field_type, 2, "PF");
++ tdesc_add_flag (field_type, 4, "AF");
++ tdesc_add_flag (field_type, 6, "ZF");
++ tdesc_add_flag (field_type, 7, "SF");
++ tdesc_add_flag (field_type, 8, "TF");
++ tdesc_add_flag (field_type, 9, "IF");
++ tdesc_add_flag (field_type, 10, "DF");
++ tdesc_add_flag (field_type, 11, "OF");
++ tdesc_add_flag (field_type, 14, "NT");
++ tdesc_add_flag (field_type, 16, "RF");
++ tdesc_add_flag (field_type, 17, "VM");
++ tdesc_add_flag (field_type, 18, "AC");
++ tdesc_add_flag (field_type, 19, "VIF");
++ tdesc_add_flag (field_type, 20, "VIP");
++ tdesc_add_flag (field_type, 21, "ID");
++
++ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
++ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
++ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
++ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
++ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
++ field_type = tdesc_named_type (feature, "ieee_single");
++ tdesc_create_vector (feature, "v4f", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "ieee_double");
++ tdesc_create_vector (feature, "v2d", field_type, 2);
++
++ field_type = tdesc_named_type (feature, "int8");
++ tdesc_create_vector (feature, "v16i8", field_type, 16);
++
++ field_type = tdesc_named_type (feature, "int16");
++ tdesc_create_vector (feature, "v8i16", field_type, 8);
++
++ field_type = tdesc_named_type (feature, "int32");
++ tdesc_create_vector (feature, "v4i32", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "int64");
++ tdesc_create_vector (feature, "v2i64", field_type, 2);
++
++ type = tdesc_create_union (feature, "vec128");
++ field_type = tdesc_named_type (feature, "v4f");
++ tdesc_add_field (type, "v4_float", field_type);
++ field_type = tdesc_named_type (feature, "v2d");
++ tdesc_add_field (type, "v2_double", field_type);
++ field_type = tdesc_named_type (feature, "v16i8");
++ tdesc_add_field (type, "v16_int8", field_type);
++ field_type = tdesc_named_type (feature, "v8i16");
++ tdesc_add_field (type, "v8_int16", field_type);
++ field_type = tdesc_named_type (feature, "v4i32");
++ tdesc_add_field (type, "v4_int32", field_type);
++ field_type = tdesc_named_type (feature, "v2i64");
++ tdesc_add_field (type, "v2_int64", field_type);
++ field_type = tdesc_named_type (feature, "uint128");
++ tdesc_add_field (type, "uint128", field_type);
++
++ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
++ tdesc_add_flag (field_type, 0, "IE");
++ tdesc_add_flag (field_type, 1, "DE");
++ tdesc_add_flag (field_type, 2, "ZE");
++ tdesc_add_flag (field_type, 3, "OE");
++ tdesc_add_flag (field_type, 4, "UE");
++ tdesc_add_flag (field_type, 5, "PE");
++ tdesc_add_flag (field_type, 6, "DAZ");
++ tdesc_add_flag (field_type, 7, "IM");
++ tdesc_add_flag (field_type, 8, "DM");
++ tdesc_add_flag (field_type, 9, "ZM");
++ tdesc_add_flag (field_type, 10, "OM");
++ tdesc_add_flag (field_type, 11, "UM");
++ tdesc_add_flag (field_type, 12, "PM");
++ tdesc_add_flag (field_type, 15, "FZ");
++
++ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
++ tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
++ tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
++ type = tdesc_create_struct (feature, "br128");
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "lbound", field_type);
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "ubound_raw", field_type);
++
++ type = tdesc_create_struct (feature, "_bndstatus");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "bde", 2, 31);
++ tdesc_add_bitfield (type, "error", 0, 1);
++
++ type = tdesc_create_union (feature, "status");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndstatus");
++ tdesc_add_field (type, "status", field_type);
++
++ type = tdesc_create_struct (feature, "_bndcfgu");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "base", 12, 31);
++ tdesc_add_bitfield (type, "reserved", 2, 11);
++ tdesc_add_bitfield (type, "preserved", 1, 1);
++ tdesc_add_bitfield (type, "enabled", 0, 1);
++
++ type = tdesc_create_union (feature, "cfgu");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndcfgu");
++ tdesc_add_field (type, "config", field_type);
++
++ tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
++
++ tdesc_i386_avx_mpx_linux = result;
++}
+diff --git a/gdb/features/i386/i386-avx-mpx-linux.xml b/gdb/features/i386/i386-avx-mpx-linux.xml
+new file mode 100644
+index 0000000..c9a1a61
+--- /dev/null
++++ b/gdb/features/i386/i386-avx-mpx-linux.xml
+@@ -0,0 +1,19 @@
++<?xml version="1.0"?>
++<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
++
++ Copying and distribution of this file, with or without modification,
++ are permitted in any medium without royalty provided the copyright
++ notice and this notice are preserved. -->
++
++<!-- I386 with AVX and MPX- Includes Linux-only special "register". -->
++
++<!DOCTYPE target SYSTEM "gdb-target.dtd">
++<target>
++ <architecture>i386</architecture>
++ <osabi>GNU/Linux</osabi>
++ <xi:include href="32bit-core.xml"/>
++ <xi:include href="32bit-sse.xml"/>
++ <xi:include href="32bit-linux.xml"/>
++ <xi:include href="32bit-avx.xml"/>
++ <xi:include href="32bit-mpx.xml"/>
++</target>
+diff --git a/gdb/features/i386/i386-avx-mpx.c b/gdb/features/i386/i386-avx-mpx.c
+new file mode 100644
+index 0000000..f104e4b
+--- /dev/null
++++ b/gdb/features/i386/i386-avx-mpx.c
+@@ -0,0 +1,182 @@
++/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
++ Original: i386-avx-mpx.xml */
++
++#include "defs.h"
++#include "osabi.h"
++#include "target-descriptions.h"
++
++struct target_desc *tdesc_i386_avx_mpx;
++static void
++initialize_tdesc_i386_avx_mpx (void)
++{
++ struct target_desc *result = allocate_target_description ();
++ struct tdesc_feature *feature;
++ struct tdesc_type *field_type;
++ struct tdesc_type *type;
++
++ set_tdesc_architecture (result, bfd_scan_arch ("i386"));
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
++ field_type = tdesc_create_flags (feature, "i386_eflags", 4);
++ tdesc_add_flag (field_type, 0, "CF");
++ tdesc_add_flag (field_type, 1, "");
++ tdesc_add_flag (field_type, 2, "PF");
++ tdesc_add_flag (field_type, 4, "AF");
++ tdesc_add_flag (field_type, 6, "ZF");
++ tdesc_add_flag (field_type, 7, "SF");
++ tdesc_add_flag (field_type, 8, "TF");
++ tdesc_add_flag (field_type, 9, "IF");
++ tdesc_add_flag (field_type, 10, "DF");
++ tdesc_add_flag (field_type, 11, "OF");
++ tdesc_add_flag (field_type, 14, "NT");
++ tdesc_add_flag (field_type, 16, "RF");
++ tdesc_add_flag (field_type, 17, "VM");
++ tdesc_add_flag (field_type, 18, "AC");
++ tdesc_add_flag (field_type, 19, "VIF");
++ tdesc_add_flag (field_type, 20, "VIP");
++ tdesc_add_flag (field_type, 21, "ID");
++
++ tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
++ tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
++ tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
++ tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
++ tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
++ tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
++ tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
++ tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
++ field_type = tdesc_named_type (feature, "ieee_single");
++ tdesc_create_vector (feature, "v4f", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "ieee_double");
++ tdesc_create_vector (feature, "v2d", field_type, 2);
++
++ field_type = tdesc_named_type (feature, "int8");
++ tdesc_create_vector (feature, "v16i8", field_type, 16);
++
++ field_type = tdesc_named_type (feature, "int16");
++ tdesc_create_vector (feature, "v8i16", field_type, 8);
++
++ field_type = tdesc_named_type (feature, "int32");
++ tdesc_create_vector (feature, "v4i32", field_type, 4);
++
++ field_type = tdesc_named_type (feature, "int64");
++ tdesc_create_vector (feature, "v2i64", field_type, 2);
++
++ type = tdesc_create_union (feature, "vec128");
++ field_type = tdesc_named_type (feature, "v4f");
++ tdesc_add_field (type, "v4_float", field_type);
++ field_type = tdesc_named_type (feature, "v2d");
++ tdesc_add_field (type, "v2_double", field_type);
++ field_type = tdesc_named_type (feature, "v16i8");
++ tdesc_add_field (type, "v16_int8", field_type);
++ field_type = tdesc_named_type (feature, "v8i16");
++ tdesc_add_field (type, "v8_int16", field_type);
++ field_type = tdesc_named_type (feature, "v4i32");
++ tdesc_add_field (type, "v4_int32", field_type);
++ field_type = tdesc_named_type (feature, "v2i64");
++ tdesc_add_field (type, "v2_int64", field_type);
++ field_type = tdesc_named_type (feature, "uint128");
++ tdesc_add_field (type, "uint128", field_type);
++
++ field_type = tdesc_create_flags (feature, "i386_mxcsr", 4);
++ tdesc_add_flag (field_type, 0, "IE");
++ tdesc_add_flag (field_type, 1, "DE");
++ tdesc_add_flag (field_type, 2, "ZE");
++ tdesc_add_flag (field_type, 3, "OE");
++ tdesc_add_flag (field_type, 4, "UE");
++ tdesc_add_flag (field_type, 5, "PE");
++ tdesc_add_flag (field_type, 6, "DAZ");
++ tdesc_add_flag (field_type, 7, "IM");
++ tdesc_add_flag (field_type, 8, "DM");
++ tdesc_add_flag (field_type, 9, "ZM");
++ tdesc_add_flag (field_type, 10, "OM");
++ tdesc_add_flag (field_type, 11, "UM");
++ tdesc_add_flag (field_type, 12, "PM");
++ tdesc_add_flag (field_type, 15, "FZ");
++
++ tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
++ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
++ tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
++ tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
++
++ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
++ type = tdesc_create_struct (feature, "br128");
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "lbound", field_type);
++ field_type = tdesc_named_type (feature, "uint64");
++ tdesc_add_field (type, "ubound_raw", field_type);
++
++ type = tdesc_create_struct (feature, "_bndstatus");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "bde", 2, 31);
++ tdesc_add_bitfield (type, "error", 0, 1);
++
++ type = tdesc_create_union (feature, "status");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndstatus");
++ tdesc_add_field (type, "status", field_type);
++
++ type = tdesc_create_struct (feature, "_bndcfgu");
++ tdesc_set_struct_size (type, 8);
++ tdesc_add_bitfield (type, "base", 12, 31);
++ tdesc_add_bitfield (type, "reserved", 2, 11);
++ tdesc_add_bitfield (type, "preserved", 1, 1);
++ tdesc_add_bitfield (type, "enabled", 0, 1);
++
++ type = tdesc_create_union (feature, "cfgu");
++ field_type = tdesc_named_type (feature, "data_ptr");
++ tdesc_add_field (type, "raw", field_type);
++ field_type = tdesc_named_type (feature, "_bndcfgu");
++ tdesc_add_field (type, "config", field_type);
++
++ tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
++
++ tdesc_i386_avx_mpx = result;
++}
+diff --git a/gdb/features/i386/i386-avx-mpx.xml b/gdb/features/i386/i386-avx-mpx.xml
+new file mode 100644
+index 0000000..ab97367
+--- /dev/null
++++ b/gdb/features/i386/i386-avx-mpx.xml
+@@ -0,0 +1,17 @@
++<?xml version="1.0"?>
++<!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.
++
++ Copying and distribution of this file, with or without modification,
++ are permitted in any medium without royalty provided the copyright
++ notice and this notice are preserved. -->
++
++<!-- I386 with AVX and MPX -->
++
++<!DOCTYPE target SYSTEM "gdb-target.dtd">
++<target>
++ <architecture>i386</architecture>
++ <xi:include href="32bit-core.xml"/>
++ <xi:include href="32bit-sse.xml"/>
++ <xi:include href="32bit-avx.xml"/>
++ <xi:include href="32bit-mpx.xml"/>
++</target>
+diff --git a/gdb/features/i386/i386-mpx-linux.c b/gdb/features/i386/i386-mpx-linux.c
+index dbf8789..c6bafea 100644
+--- a/gdb/features/i386/i386-mpx-linux.c
++++ b/gdb/features/i386/i386-mpx-linux.c
+@@ -135,16 +135,6 @@ initialize_tdesc_i386_mpx_linux (void)
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
+ tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
+
+- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
+- tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
+-
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
+ type = tdesc_create_struct (feature, "br128");
+ field_type = tdesc_named_type (feature, "uint64");
+@@ -176,12 +166,12 @@ initialize_tdesc_i386_mpx_linux (void)
+ field_type = tdesc_named_type (feature, "_bndcfgu");
+ tdesc_add_field (type, "config", field_type);
+
+- tdesc_create_reg (feature, "bnd0raw", 50, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd1raw", 51, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd2raw", 52, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd3raw", 53, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bndcfgu", 54, 1, NULL, 64, "cfgu");
+- tdesc_create_reg (feature, "bndstatus", 55, 1, NULL, 64, "status");
++ tdesc_create_reg (feature, "bnd0raw", 42, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 43, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 44, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 45, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 46, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 47, 1, NULL, 64, "status");
+
+ tdesc_i386_mpx_linux = result;
+ }
+diff --git a/gdb/features/i386/i386-mpx-linux.xml b/gdb/features/i386/i386-mpx-linux.xml
+index c4004d6..4228cf5 100644
+--- a/gdb/features/i386/i386-mpx-linux.xml
++++ b/gdb/features/i386/i386-mpx-linux.xml
+@@ -14,6 +14,5 @@
+ <xi:include href="32bit-core.xml"/>
+ <xi:include href="32bit-sse.xml"/>
+ <xi:include href="32bit-linux.xml"/>
+- <xi:include href="32bit-avx.xml"/>
+ <xi:include href="32bit-mpx.xml"/>
+ </target>
+diff --git a/gdb/features/i386/i386-mpx.c b/gdb/features/i386/i386-mpx.c
+index 1e04afd..430db3f 100644
+--- a/gdb/features/i386/i386-mpx.c
++++ b/gdb/features/i386/i386-mpx.c
+@@ -130,16 +130,6 @@ initialize_tdesc_i386_mpx (void)
+ tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
+ tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
+
+- feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
+- tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
+- tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
+-
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
+ type = tdesc_create_struct (feature, "br128");
+ field_type = tdesc_named_type (feature, "uint64");
+@@ -171,12 +161,12 @@ initialize_tdesc_i386_mpx (void)
+ field_type = tdesc_named_type (feature, "_bndcfgu");
+ tdesc_add_field (type, "config", field_type);
+
+- tdesc_create_reg (feature, "bnd0raw", 49, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd1raw", 50, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd2raw", 51, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bnd3raw", 52, 1, NULL, 128, "br128");
+- tdesc_create_reg (feature, "bndcfgu", 53, 1, NULL, 64, "cfgu");
+- tdesc_create_reg (feature, "bndstatus", 54, 1, NULL, 64, "status");
++ tdesc_create_reg (feature, "bnd0raw", 41, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd1raw", 42, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd2raw", 43, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bnd3raw", 44, 1, NULL, 128, "br128");
++ tdesc_create_reg (feature, "bndcfgu", 45, 1, NULL, 64, "cfgu");
++ tdesc_create_reg (feature, "bndstatus", 46, 1, NULL, 64, "status");
+
+ tdesc_i386_mpx = result;
+ }
+diff --git a/gdb/features/i386/i386-mpx.xml b/gdb/features/i386/i386-mpx.xml
+index 52a68db..c1806cb 100644
+--- a/gdb/features/i386/i386-mpx.xml
++++ b/gdb/features/i386/i386-mpx.xml
+@@ -12,6 +12,5 @@
+ <architecture>i386</architecture>
+ <xi:include href="32bit-core.xml"/>
+ <xi:include href="32bit-sse.xml"/>
+- <xi:include href="32bit-avx.xml"/>
+ <xi:include href="32bit-mpx.xml"/>
+ </target>
+diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
+index 1e874e3..dee2ea1 100644
+--- a/gdb/gdbserver/Makefile.in
++++ b/gdb/gdbserver/Makefile.in
+@@ -376,9 +376,11 @@ clean:
+ rm -f xml-builtin.c stamp-xml
+ rm -f i386-avx.c i386-avx-linux.c
+ rm -f i386-mpx.c i386-mpx-linux.c
++ rm -f i386-avx-mpx.c i386-avx-mpx-linux.c
+ rm -f i386-avx512.c i386-avx512-linux.c
+ rm -f amd64-avx.c amd64-avx-linux.c
+ rm -f amd64-mpx.c amd64-mpx-linux.c
++ rm -f amd64-avx-mpx.c amd64-avx-mpx-linux.c
+ rm -f amd64-avx512.c amd64-avx512-linux.c
+ rm -f i386-mmx.c i386-mmx-linux.c
+ rm -f x32.c x32-linux.c
+@@ -495,6 +497,21 @@ regcache-ipa.o: regcache.c
+ i386-linux-ipa.o: i386-linux.c
+ $(IPAGENT_COMPILE) $<
+ $(POSTCOMPILE)
++i386-mmx-linux-ipa.o: i386-mmx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++i386-avx-linux-ipa.o: i386-avx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++i386-mpx-linux-ipa.o: i386-mpx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++i386-avx512-linux-ipa.o: i386-avx512-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
+ linux-i386-ipa.o: linux-i386-ipa.c
+ $(IPAGENT_COMPILE) $<
+ $(POSTCOMPILE)
+@@ -504,6 +521,18 @@ linux-amd64-ipa.o: linux-amd64-ipa.c
+ amd64-linux-ipa.o: amd64-linux.c
+ $(IPAGENT_COMPILE) $<
+ $(POSTCOMPILE)
++amd64-avx-linux-ipa.o: amd64-avx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++amd64-mpx-linux-ipa.o: amd64-mpx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
++amd64-avx512-linux-ipa.o: amd64-avx512-linux.c
++ $(IPAGENT_COMPILE) $<
++ $(POSTCOMPILE)
+ linux-aarch64-ipa.o: linux-aarch64-ipa.c
+ $(IPAGENT_COMPILE) $<
+ $(POSTCOMPILE)
+@@ -694,6 +723,10 @@ i386-mpx.c : $(srcdir)/../regformats/i386/i386-mpx.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx.dat i386-mpx.c
+ i386-mpx-linux.c : $(srcdir)/../regformats/i386/i386-mpx-linux.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx-linux.dat i386-mpx-linux.c
++i386-avx-mpx.c : $(srcdir)/../regformats/i386/i386-avx-mpx.dat $(regdat_sh)
++ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx.dat i386-avx-mpx.c
++i386-avx-mpx-linux.c : $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat $(regdat_sh)
++ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx-linux.dat i386-avx-mpx-linux.c
+ i386-mmx.c : $(srcdir)/../regformats/i386/i386-mmx.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mmx.dat i386-mmx.c
+ i386-mmx-linux.c : $(srcdir)/../regformats/i386/i386-mmx-linux.dat $(regdat_sh)
+@@ -808,6 +841,10 @@ amd64-mpx.c : $(srcdir)/../regformats/i386/amd64-mpx.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx.dat amd64-mpx.c
+ amd64-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-mpx-linux.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx-linux.dat amd64-mpx-linux.c
++amd64-avx-mpx.c : $(srcdir)/../regformats/i386/amd64-avx-mpx.dat $(regdat_sh)
++ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx.dat amd64-avx-mpx.c
++amd64-avx-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat $(regdat_sh)
++ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx-linux.dat amd64-avx-mpx-linux.c
+ x32.c : $(srcdir)/../regformats/i386/x32.dat $(regdat_sh)
+ $(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32.dat x32.c
+ x32-linux.c : $(srcdir)/../regformats/i386/x32-linux.dat $(regdat_sh)
+diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
+index a54b9e7..4935a36 100644
+--- a/gdb/gdbserver/configure.srv
++++ b/gdb/gdbserver/configure.srv
+@@ -24,20 +24,23 @@
+ # Default hostio_last_error implementation
+ srv_hostio_err_objs="hostio-errno.o"
+
+-srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-mmx.o"
+-srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-mmx-linux.o"
+-srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o x32.o x32-avx.o x32-avx512.o"
+-srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
++srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
++srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
++srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx512.o"
++srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
++
++
++ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o i386-avx-mpx-linux-ipa.o i386-avx512-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
++ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx512-linux-ipa.o amd64-mpx-linux-ipa.o"
+
+-ipa_i386_linux_regobj=i386-linux-ipa.o
+-ipa_amd64_linux_regobj=amd64-linux-ipa.o
+
+ srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml"
+ srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml"
+-srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
+-srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml $srv_i386_64bit_xmlfiles"
+-srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml $srv_i386_32bit_xmlfiles"
+-srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
++srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
++srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml $srv_i386_64bit_xmlfiles"
++srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
++srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
++
+
+
+ # Linux object files. This is so we don't have to repeat
+diff --git a/gdb/gdbserver/linux-aarch64-ipa.c b/gdb/gdbserver/linux-aarch64-ipa.c
+index 758708d..f1eaa70 100644
+--- a/gdb/gdbserver/linux-aarch64-ipa.c
++++ b/gdb/gdbserver/linux-aarch64-ipa.c
+@@ -143,9 +143,18 @@ gdb_agent_get_raw_reg (const unsigned char *raw_regs, int regnum)
+ + aarch64_ft_collect_regmap[regnum] * FT_CR_SIZE);
+ }
+
++/* Return target_desc to use for IPA, given the tdesc index passed by
++ gdbserver. Index is ignored, since we have only one tdesc
++ at the moment. */
++
++const struct target_desc *
++get_ipa_tdesc (int idx)
++{
++ return tdesc_aarch64;
++}
++
+ void
+ initialize_low_tracepoint (void)
+ {
+ init_registers_aarch64 ();
+- ipa_tdesc = tdesc_aarch64;
+ }
+diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdb/gdbserver/linux-amd64-ipa.c
+index 2eeedcd..f9c72a0 100644
+--- a/gdb/gdbserver/linux-amd64-ipa.c
++++ b/gdb/gdbserver/linux-amd64-ipa.c
+@@ -20,6 +20,7 @@
+
+ #include "server.h"
+ #include "tracepoint.h"
++#include "linux-x86-tdesc.h"
+
+ /* Defined in auto-generated file amd64-linux.c. */
+ void init_registers_amd64_linux (void);
+@@ -166,9 +167,37 @@ supply_static_tracepoint_registers (struct regcache *regcache,
+
+ #endif /* HAVE_UST */
+
++/* Return target_desc to use for IPA, given the tdesc index passed by
++ gdbserver. */
++
++const struct target_desc *
++get_ipa_tdesc (int idx)
++{
++ switch (idx)
++ {
++ case X86_TDESC_SSE:
++ return tdesc_amd64_linux;
++ case X86_TDESC_AVX:
++ return tdesc_amd64_avx_linux;
++ case X86_TDESC_MPX:
++ return tdesc_amd64_mpx_linux;
++ case X86_TDESC_AVX_MPX:
++ return tdesc_amd64_avx_mpx_linux;
++ case X86_TDESC_AVX512:
++ return tdesc_amd64_avx512_linux;
++ default:
++ internal_error (__FILE__, __LINE__,
++ "unknown ipa tdesc index: %d", idx);
++ return tdesc_amd64_linux;
++ }
++}
++
+ void
+ initialize_low_tracepoint (void)
+ {
+ init_registers_amd64_linux ();
+- ipa_tdesc = tdesc_amd64_linux;
++ init_registers_amd64_avx_linux ();
++ init_registers_amd64_avx_mpx_linux ();
++ init_registers_amd64_mpx_linux ();
++ init_registers_amd64_avx512_linux ();
+ }
+diff --git a/gdb/gdbserver/linux-i386-ipa.c b/gdb/gdbserver/linux-i386-ipa.c
+index 11dc038..d7a8e7d 100644
+--- a/gdb/gdbserver/linux-i386-ipa.c
++++ b/gdb/gdbserver/linux-i386-ipa.c
+@@ -21,6 +21,7 @@
+ #include "server.h"
+ #include <sys/mman.h>
+ #include "tracepoint.h"
++#include "linux-x86-tdesc.h"
+
+ /* GDB register numbers. */
+
+@@ -47,10 +48,6 @@ enum i386_gdb_regnum
+
+ #define i386_num_regs 16
+
+-/* Defined in auto-generated file i386-linux.c. */
+-void init_registers_i386_linux (void);
+-extern const struct target_desc *tdesc_i386_linux;
+-
+ #define FT_CR_EAX 15
+ #define FT_CR_ECX 14
+ #define FT_CR_EDX 13
+@@ -247,10 +244,40 @@ initialize_fast_tracepoint_trampoline_buffer (void)
+ }
+ }
+
++/* Return target_desc to use for IPA, given the tdesc index passed by
++ gdbserver. */
++
++const struct target_desc *
++get_ipa_tdesc (int idx)
++{
++ switch (idx)
++ {
++ case X86_TDESC_MMX:
++ return tdesc_i386_mmx_linux;
++ case X86_TDESC_SSE:
++ return tdesc_i386_linux;
++ case X86_TDESC_AVX:
++ return tdesc_i386_avx_linux;
++ case X86_TDESC_MPX:
++ return tdesc_i386_mpx_linux;
++ case X86_TDESC_AVX_MPX:
++ return tdesc_i386_avx_mpx_linux;
++ case X86_TDESC_AVX512:
++ return tdesc_i386_avx512_linux;
++ default:
++ internal_error (__FILE__, __LINE__,
++ "unknown ipa tdesc index: %d", idx);
++ return tdesc_i386_linux;
++ }
++}
++
+ void
+ initialize_low_tracepoint (void)
+ {
++ init_registers_i386_mmx_linux ();
+ init_registers_i386_linux ();
+- ipa_tdesc = tdesc_i386_linux;
++ init_registers_i386_avx_linux ();
++ init_registers_i386_mpx_linux ();
++ init_registers_i386_avx512_linux ();
+ initialize_fast_tracepoint_trampoline_buffer ();
+ }
+diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
+index 8b025bd..a142c2c 100644
+--- a/gdb/gdbserver/linux-low.c
++++ b/gdb/gdbserver/linux-low.c
+@@ -6432,6 +6432,15 @@ linux_supports_catch_syscall (void)
+ }
+
+ static int
++linux_get_ipa_tdesc_idx (void)
++{
++ if (the_low_target.get_ipa_tdesc_idx == NULL)
++ return 0;
++
++ return (*the_low_target.get_ipa_tdesc_idx) ();
++}
++
++static int
+ linux_supports_tracepoints (void)
+ {
+ if (*the_low_target.supports_tracepoints == NULL)
+@@ -7408,6 +7417,7 @@ static struct target_ops linux_target_ops = {
+ linux_breakpoint_kind_from_current_state,
+ linux_supports_software_single_step,
+ linux_supports_catch_syscall,
++ linux_get_ipa_tdesc_idx,
+ };
+
+ #ifdef HAVE_LINUX_REGSETS
+diff --git a/gdb/gdbserver/linux-low.h b/gdb/gdbserver/linux-low.h
+index 4ec8550..d4946c1 100644
+--- a/gdb/gdbserver/linux-low.h
++++ b/gdb/gdbserver/linux-low.h
+@@ -246,6 +246,9 @@ struct linux_target_ops
+ due to SYSCALL_SIGTRAP. */
+ void (*get_syscall_trapinfo) (struct regcache *regcache,
+ int *sysno, int *sysret);
++
++ /* See target.h. */
++ int (*get_ipa_tdesc_idx) (void);
+ };
+
+ extern struct linux_target_ops the_low_target;
+diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
+index 0c4954a..2535959 100644
+--- a/gdb/gdbserver/linux-x86-low.c
++++ b/gdb/gdbserver/linux-x86-low.c
+@@ -45,57 +45,7 @@
+ #include "nat/linux-nat.h"
+ #include "nat/x86-linux.h"
+ #include "nat/x86-linux-dregs.h"
+-
+-#ifdef __x86_64__
+-/* Defined in auto-generated file amd64-linux.c. */
+-void init_registers_amd64_linux (void);
+-extern const struct target_desc *tdesc_amd64_linux;
+-
+-/* Defined in auto-generated file amd64-avx-linux.c. */
+-void init_registers_amd64_avx_linux (void);
+-extern const struct target_desc *tdesc_amd64_avx_linux;
+-
+-/* Defined in auto-generated file amd64-avx512-linux.c. */
+-void init_registers_amd64_avx512_linux (void);
+-extern const struct target_desc *tdesc_amd64_avx512_linux;
+-
+-/* Defined in auto-generated file amd64-mpx-linux.c. */
+-void init_registers_amd64_mpx_linux (void);
+-extern const struct target_desc *tdesc_amd64_mpx_linux;
+-
+-/* Defined in auto-generated file x32-linux.c. */
+-void init_registers_x32_linux (void);
+-extern const struct target_desc *tdesc_x32_linux;
+-
+-/* Defined in auto-generated file x32-avx-linux.c. */
+-void init_registers_x32_avx_linux (void);
+-extern const struct target_desc *tdesc_x32_avx_linux;
+-
+-/* Defined in auto-generated file x32-avx512-linux.c. */
+-void init_registers_x32_avx512_linux (void);
+-extern const struct target_desc *tdesc_x32_avx512_linux;
+-
+-#endif
+-
+-/* Defined in auto-generated file i386-linux.c. */
+-void init_registers_i386_linux (void);
+-extern const struct target_desc *tdesc_i386_linux;
+-
+-/* Defined in auto-generated file i386-mmx-linux.c. */
+-void init_registers_i386_mmx_linux (void);
+-extern const struct target_desc *tdesc_i386_mmx_linux;
+-
+-/* Defined in auto-generated file i386-avx-linux.c. */
+-void init_registers_i386_avx_linux (void);
+-extern const struct target_desc *tdesc_i386_avx_linux;
+-
+-/* Defined in auto-generated file i386-avx512-linux.c. */
+-void init_registers_i386_avx512_linux (void);
+-extern const struct target_desc *tdesc_i386_avx512_linux;
+-
+-/* Defined in auto-generated file i386-mpx-linux.c. */
+-void init_registers_i386_mpx_linux (void);
+-extern const struct target_desc *tdesc_i386_mpx_linux;
++#include "linux-x86-tdesc.h"
+
+ #ifdef __x86_64__
+ static struct target_desc *tdesc_amd64_linux_no_xml;
+@@ -839,6 +789,9 @@ x86_linux_read_description (void)
+ case X86_XSTATE_AVX512_MASK:
+ return tdesc_amd64_avx512_linux;
+
++ case X86_XSTATE_AVX_MPX_MASK:
++ return tdesc_amd64_avx_mpx_linux;
++
+ case X86_XSTATE_MPX_MASK:
+ return tdesc_amd64_mpx_linux;
+
+@@ -886,6 +839,9 @@ x86_linux_read_description (void)
+ case (X86_XSTATE_MPX_MASK):
+ return tdesc_i386_mpx_linux;
+
++ case (X86_XSTATE_AVX_MPX_MASK):
++ return tdesc_i386_avx_mpx_linux;
++
+ case (X86_XSTATE_AVX_MASK):
+ return tdesc_i386_avx_linux;
+
+@@ -2891,6 +2847,42 @@ x86_supports_hardware_single_step (void)
+ return 1;
+ }
+
++static int
++x86_get_ipa_tdesc_idx (void)
++{
++ struct regcache *regcache = get_thread_regcache (current_thread, 0);
++ const struct target_desc *tdesc = regcache->tdesc;
++
++#ifdef __x86_64__
++ if (tdesc == tdesc_amd64_linux || tdesc == tdesc_amd64_linux_no_xml
++ || tdesc == tdesc_x32_linux)
++ return X86_TDESC_SSE;
++ if (tdesc == tdesc_amd64_avx_linux || tdesc == tdesc_x32_avx_linux)
++ return X86_TDESC_AVX;
++ if (tdesc == tdesc_amd64_mpx_linux)
++ return X86_TDESC_MPX;
++ if (tdesc == tdesc_amd64_avx_mpx_linux)
++ return X86_TDESC_AVX_MPX;
++ if (tdesc == tdesc_amd64_avx512_linux || tdesc == tdesc_x32_avx512_linux)
++ return X86_TDESC_AVX512;
++#endif
++
++ if (tdesc == tdesc_i386_mmx_linux)
++ return X86_TDESC_MMX;
++ if (tdesc == tdesc_i386_linux || tdesc == tdesc_i386_linux_no_xml)
++ return X86_TDESC_SSE;
++ if (tdesc == tdesc_i386_avx_linux)
++ return X86_TDESC_AVX;
++ if (tdesc == tdesc_i386_mpx_linux)
++ return X86_TDESC_MPX;
++ if (tdesc == tdesc_i386_avx_mpx_linux)
++ return X86_TDESC_AVX_MPX;
++ if (tdesc == tdesc_i386_avx512_linux)
++ return X86_TDESC_AVX512;
++
++ return 0;
++}
++
+ /* This is initialized assuming an amd64 target.
+ x86_arch_setup will correct it for i386 or amd64 targets. */
+
+@@ -2934,6 +2926,7 @@ struct linux_target_ops the_low_target =
+ NULL, /* breakpoint_kind_from_current_state */
+ x86_supports_hardware_single_step,
+ x86_get_syscall_trapinfo,
++ x86_get_ipa_tdesc_idx,
+ };
+
+ void
+@@ -2945,6 +2938,7 @@ initialize_low_arch (void)
+ init_registers_amd64_avx_linux ();
+ init_registers_amd64_avx512_linux ();
+ init_registers_amd64_mpx_linux ();
++ init_registers_amd64_avx_mpx_linux ();
+
+ init_registers_x32_linux ();
+ init_registers_x32_avx_linux ();
+@@ -2959,6 +2953,7 @@ initialize_low_arch (void)
+ init_registers_i386_avx_linux ();
+ init_registers_i386_avx512_linux ();
+ init_registers_i386_mpx_linux ();
++ init_registers_i386_avx_mpx_linux ();
+
+ tdesc_i386_linux_no_xml = XNEW (struct target_desc);
+ copy_target_description (tdesc_i386_linux_no_xml, tdesc_i386_linux);
+diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdb/gdbserver/linux-x86-tdesc.h
+new file mode 100644
+index 0000000..720f50c
+--- /dev/null
++++ b/gdb/gdbserver/linux-x86-tdesc.h
+@@ -0,0 +1,98 @@
++/* Low level support for x86 (i386 and x86-64), shared between gdbserver
++ and IPA.
++
++ Copyright (C) 2016 Free Software Foundation, Inc.
++
++ This file is part of GDB.
++
++ This program is free software; you can redistribute it and/or modify
++ it under the terms of the GNU General Public License as published by
++ the Free Software Foundation; either version 3 of the License, or
++ (at your option) any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>. */
++
++/* Note: since IPA obviously knows what ABI it's running on (i386 vs x86_64
++ vs x32), it's sufficient to pass only the register set here. This,
++ together with the ABI known at IPA compile time, maps to a tdesc. */
++
++enum x86_linux_tdesc {
++ X86_TDESC_MMX = 0,
++ X86_TDESC_SSE = 1,
++ X86_TDESC_AVX = 2,
++ X86_TDESC_MPX = 3,
++ X86_TDESC_AVX_MPX = 4,
++ X86_TDESC_AVX512 = 5,
++};
++
++#ifdef __x86_64__
++
++#if defined __LP64__ || !defined IN_PROCESS_AGENT
++/* Defined in auto-generated file amd64-linux.c. */
++void init_registers_amd64_linux (void);
++extern const struct target_desc *tdesc_amd64_linux;
++
++/* Defined in auto-generated file amd64-avx-linux.c. */
++void init_registers_amd64_avx_linux (void);
++extern const struct target_desc *tdesc_amd64_avx_linux;
++
++/* Defined in auto-generated file amd64-avx512-linux.c. */
++void init_registers_amd64_avx512_linux (void);
++extern const struct target_desc *tdesc_amd64_avx512_linux;
++
++/* Defined in auto-generated file amd64-avx-mpx-linux.c. */
++void init_registers_amd64_avx_mpx_linux (void);
++extern const struct target_desc *tdesc_amd64_avx_mpx_linux;
++
++/* Defined in auto-generated file amd64-mpx-linux.c. */
++void init_registers_amd64_mpx_linux (void);
++extern const struct target_desc *tdesc_amd64_mpx_linux;
++#endif
++
++#if defined __ILP32__ || !defined IN_PROCESS_AGENT
++/* Defined in auto-generated file x32-linux.c. */
++void init_registers_x32_linux (void);
++extern const struct target_desc *tdesc_x32_linux;
++
++/* Defined in auto-generated file x32-avx-linux.c. */
++void init_registers_x32_avx_linux (void);
++extern const struct target_desc *tdesc_x32_avx_linux;
++
++/* Defined in auto-generated file x32-avx512-linux.c. */
++void init_registers_x32_avx512_linux (void);
++extern const struct target_desc *tdesc_x32_avx512_linux;
++#endif
++
++#endif
++
++#if defined __i386__ || !defined IN_PROCESS_AGENT
++/* Defined in auto-generated file i386-linux.c. */
++void init_registers_i386_linux (void);
++extern const struct target_desc *tdesc_i386_linux;
++
++/* Defined in auto-generated file i386-mmx-linux.c. */
++void init_registers_i386_mmx_linux (void);
++extern const struct target_desc *tdesc_i386_mmx_linux;
++
++/* Defined in auto-generated file i386-avx-linux.c. */
++void init_registers_i386_avx_linux (void);
++extern const struct target_desc *tdesc_i386_avx_linux;
++
++/* Defined in auto-generated file i386-avx-mpx-linux.c. */
++void init_registers_i386_avx_mpx_linux (void);
++extern const struct target_desc *tdesc_i386_avx_mpx_linux;
++
++/* Defined in auto-generated file i386-avx512-linux.c. */
++void init_registers_i386_avx512_linux (void);
++extern const struct target_desc *tdesc_i386_avx512_linux;
++
++/* Defined in auto-generated file i386-mpx-linux.c. */
++void init_registers_i386_mpx_linux (void);
++extern const struct target_desc *tdesc_i386_mpx_linux;
++#endif
+diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
+index 5af2051..4c14c20 100644
+--- a/gdb/gdbserver/target.h
++++ b/gdb/gdbserver/target.h
+@@ -471,6 +471,9 @@ struct target_ops
+ /* Return 1 if the target supports catch syscall, 0 (or leave the
+ callback NULL) otherwise. */
+ int (*supports_catch_syscall) (void);
++
++ /* Return tdesc index for IPA. */
++ int (*get_ipa_tdesc_idx) (void);
+ };
+
+ extern struct target_ops *the_target;
+@@ -550,6 +553,10 @@ int kill_inferior (int);
+ (the_target->supports_catch_syscall ? \
+ (*the_target->supports_catch_syscall) () : 0)
+
++#define target_get_ipa_tdesc_idx() \
++ (the_target->get_ipa_tdesc_idx \
++ ? (*the_target->get_ipa_tdesc_idx) () : 0)
++
+ #define target_supports_tracepoints() \
+ (the_target->supports_tracepoints \
+ ? (*the_target->supports_tracepoints) () : 0)
+diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
+index 0671999..cc86677 100644
+--- a/gdb/gdbserver/tracepoint.c
++++ b/gdb/gdbserver/tracepoint.c
+@@ -134,6 +134,7 @@ trace_vdebug (const char *fmt, ...)
+ # define ust_loaded IPA_SYM_EXPORTED_NAME (ust_loaded)
+ # define helper_thread_id IPA_SYM_EXPORTED_NAME (helper_thread_id)
+ # define cmd_buf IPA_SYM_EXPORTED_NAME (cmd_buf)
++# define ipa_tdesc_idx IPA_SYM_EXPORTED_NAME (ipa_tdesc_idx)
+ #endif
+
+ #ifndef IN_PROCESS_AGENT
+@@ -171,6 +172,7 @@ struct ipa_sym_addresses
+ CORE_ADDR addr_get_trace_state_variable_value;
+ CORE_ADDR addr_set_trace_state_variable_value;
+ CORE_ADDR addr_ust_loaded;
++ CORE_ADDR addr_ipa_tdesc_idx;
+ };
+
+ static struct
+@@ -207,6 +209,7 @@ static struct
+ IPA_SYM(get_trace_state_variable_value),
+ IPA_SYM(set_trace_state_variable_value),
+ IPA_SYM(ust_loaded),
++ IPA_SYM(ipa_tdesc_idx),
+ };
+
+ static struct ipa_sym_addresses ipa_sym_addrs;
+@@ -3231,6 +3234,11 @@ cmd_qtstart (char *packet)
+
+ *packet = '\0';
+
++ /* Tell IPA about the correct tdesc. */
++ if (write_inferior_integer (ipa_sym_addrs.addr_ipa_tdesc_idx,
++ target_get_ipa_tdesc_idx ()))
++ error ("Error setting ipa_tdesc_idx variable in lib");
++
+ /* Start out empty. */
+ if (agent_loaded_p ())
+ write_inferior_data_ptr (ipa_sym_addrs.addr_tracepoints, 0);
+@@ -4714,19 +4722,20 @@ collect_data_at_step (struct tracepoint_hit_ctx *ctx,
+ #endif
+
+ #ifdef IN_PROCESS_AGENT
+-/* The target description used by the IPA. Given that the IPA library
+- is built for a specific architecture that is loaded into the
+- inferior, there only needs to be one such description per
+- build. */
+-const struct target_desc *ipa_tdesc;
++/* The target description index for IPA. Passed from gdbserver, used
++ to select ipa_tdesc. */
++EXTERN_C_PUSH
++IP_AGENT_EXPORT_VAR int ipa_tdesc_idx;
++EXTERN_C_POP
+ #endif
+
+ static struct regcache *
+ get_context_regcache (struct tracepoint_hit_ctx *ctx)
+ {
+ struct regcache *regcache = NULL;
+-
+ #ifdef IN_PROCESS_AGENT
++ const struct target_desc *ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
++
+ if (ctx->type == fast_tracepoint)
+ {
+ struct fast_tracepoint_ctx *fctx = (struct fast_tracepoint_ctx *) ctx;
+@@ -5799,11 +5808,13 @@ IP_AGENT_EXPORT_FUNC void
+ gdb_collect (struct tracepoint *tpoint, unsigned char *regs)
+ {
+ struct fast_tracepoint_ctx ctx;
++ const struct target_desc *ipa_tdesc;
+
+ /* Don't do anything until the trace run is completely set up. */
+ if (!tracing)
+ return;
+
++ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
+ ctx.base.type = fast_tracepoint;
+ ctx.regs = regs;
+ ctx.regcache_initted = 0;
+@@ -6660,6 +6671,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
+ {
+ struct tracepoint *tpoint;
+ struct static_tracepoint_ctx ctx;
++ const struct target_desc *ipa_tdesc;
+
+ /* Don't do anything until the trace run is completely set up. */
+ if (!tracing)
+@@ -6668,6 +6680,7 @@ gdb_probe (const struct marker *mdata, void *probe_private,
+ return;
+ }
+
++ ipa_tdesc = get_ipa_tdesc (ipa_tdesc_idx);
+ ctx.base.type = static_tracepoint;
+ ctx.regcache_initted = 0;
+ ctx.regs = regs;
+diff --git a/gdb/gdbserver/tracepoint.h b/gdb/gdbserver/tracepoint.h
+index cab89cf..e30f4f7 100644
+--- a/gdb/gdbserver/tracepoint.h
++++ b/gdb/gdbserver/tracepoint.h
+@@ -124,6 +124,7 @@ int handle_tracepoint_bkpts (struct thread_info *tinfo, CORE_ADDR stop_pc);
+
+ #ifdef IN_PROCESS_AGENT
+ void initialize_low_tracepoint (void);
++const struct target_desc *get_ipa_tdesc (int idx);
+ void supply_fast_tracepoint_registers (struct regcache *regcache,
+ const unsigned char *regs);
+ void supply_static_tracepoint_registers (struct regcache *regcache,
+@@ -131,9 +132,6 @@ void supply_static_tracepoint_registers (struct regcache *regcache,
+ CORE_ADDR pc);
+ void set_trampoline_buffer_space (CORE_ADDR begin, CORE_ADDR end,
+ char *errmsg);
+-
+-extern const struct target_desc *ipa_tdesc;
+-
+ #else
+ void stop_tracing (void);
+
+diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
+index af39e78..df47efd 100644
+--- a/gdb/i386-linux-tdep.c
++++ b/gdb/i386-linux-tdep.c
+@@ -47,6 +47,7 @@
+ #include "features/i386/i386-linux.c"
+ #include "features/i386/i386-mmx-linux.c"
+ #include "features/i386/i386-mpx-linux.c"
++#include "features/i386/i386-avx-mpx-linux.c"
+ #include "features/i386/i386-avx-linux.c"
+ #include "features/i386/i386-avx512-linux.c"
+
+@@ -630,6 +631,8 @@ i386_linux_core_read_description (struct gdbarch *gdbarch,
+ return tdesc_i386_avx512_linux;
+ case X86_XSTATE_MPX_MASK:
+ return tdesc_i386_mpx_linux;
++ case X86_XSTATE_AVX_MPX_MASK:
++ return tdesc_i386_avx_mpx_linux;
+ case X86_XSTATE_AVX_MASK:
+ return tdesc_i386_avx_linux;
+ case X86_XSTATE_SSE_MASK:
+@@ -1018,5 +1021,6 @@ _initialize_i386_linux_tdep (void)
+ initialize_tdesc_i386_mmx_linux ();
+ initialize_tdesc_i386_avx_linux ();
+ initialize_tdesc_i386_mpx_linux ();
++ initialize_tdesc_i386_avx_mpx_linux ();
+ initialize_tdesc_i386_avx512_linux ();
+ }
+diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
+index ecc9e31..0cb0c4d 100644
+--- a/gdb/i386-linux-tdep.h
++++ b/gdb/i386-linux-tdep.h
+@@ -42,6 +42,7 @@ extern struct target_desc *tdesc_i386_linux;
+ extern struct target_desc *tdesc_i386_mmx_linux;
+ extern struct target_desc *tdesc_i386_avx_linux;
+ extern struct target_desc *tdesc_i386_mpx_linux;
++extern struct target_desc *tdesc_i386_avx_mpx_linux;
+ extern struct target_desc *tdesc_i386_avx512_linux;
+
+ /* Format of XSAVE extended state is:
+diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
+index b706463..1ec0a08 100644
+--- a/gdb/i386-tdep.c
++++ b/gdb/i386-tdep.c
+@@ -53,6 +53,7 @@
+ #include "features/i386/i386.c"
+ #include "features/i386/i386-avx.c"
+ #include "features/i386/i386-mpx.c"
++#include "features/i386/i386-avx-mpx.c"
+ #include "features/i386/i386-avx512.c"
+ #include "features/i386/i386-mmx.c"
+
+@@ -8618,6 +8619,8 @@ i386_target_description (uint64_t xcr0)
+ case X86_XSTATE_MPX_AVX512_MASK:
+ case X86_XSTATE_AVX512_MASK:
+ return tdesc_i386_avx512;
++ case X86_XSTATE_AVX_MPX_MASK:
++ return tdesc_i386_avx_mpx;
+ case X86_XSTATE_MPX_MASK:
+ return tdesc_i386_mpx;
+ case X86_XSTATE_AVX_MASK:
+@@ -8957,6 +8960,7 @@ Show Intel Memory Protection Extensions specific variables."),
+ initialize_tdesc_i386_mmx ();
+ initialize_tdesc_i386_avx ();
+ initialize_tdesc_i386_mpx ();
++ initialize_tdesc_i386_avx_mpx ();
+ initialize_tdesc_i386_avx512 ();
+
+ /* Tell remote stub that we support XML target description. */
+diff --git a/gdb/regformats/i386/amd64-avx-mpx-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
+new file mode 100644
+index 0000000..6d45324
+--- /dev/null
++++ b/gdb/regformats/i386/amd64-avx-mpx-linux.dat
+@@ -0,0 +1,85 @@
++# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
++# Generated from: i386/amd64-avx-mpx-linux.xml
++name:amd64_avx_mpx_linux
++xmltarget:amd64-avx-mpx-linux.xml
++expedite:rbp,rsp,rip
++64:rax
++64:rbx
++64:rcx
++64:rdx
++64:rsi
++64:rdi
++64:rbp
++64:rsp
++64:r8
++64:r9
++64:r10
++64:r11
++64:r12
++64:r13
++64:r14
++64:r15
++64:rip
++32:eflags
++32:cs
++32:ss
++32:ds
++32:es
++32:fs
++32:gs
++80:st0
++80:st1
++80:st2
++80:st3
++80:st4
++80:st5
++80:st6
++80:st7
++32:fctrl
++32:fstat
++32:ftag
++32:fiseg
++32:fioff
++32:foseg
++32:fooff
++32:fop
++128:xmm0
++128:xmm1
++128:xmm2
++128:xmm3
++128:xmm4
++128:xmm5
++128:xmm6
++128:xmm7
++128:xmm8
++128:xmm9
++128:xmm10
++128:xmm11
++128:xmm12
++128:xmm13
++128:xmm14
++128:xmm15
++32:mxcsr
++64:orig_rax
++128:ymm0h
++128:ymm1h
++128:ymm2h
++128:ymm3h
++128:ymm4h
++128:ymm5h
++128:ymm6h
++128:ymm7h
++128:ymm8h
++128:ymm9h
++128:ymm10h
++128:ymm11h
++128:ymm12h
++128:ymm13h
++128:ymm14h
++128:ymm15h
++128:bnd0raw
++128:bnd1raw
++128:bnd2raw
++128:bnd3raw
++64:bndcfgu
++64:bndstatus
+diff --git a/gdb/regformats/i386/amd64-avx-mpx.dat b/gdb/regformats/i386/amd64-avx-mpx.dat
+new file mode 100644
+index 0000000..d985641
+--- /dev/null
++++ b/gdb/regformats/i386/amd64-avx-mpx.dat
+@@ -0,0 +1,84 @@
++# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
++# Generated from: i386/amd64-avx-mpx.xml
++name:amd64_avx_mpx
++xmltarget:amd64-avx-mpx.xml
++expedite:rbp,rsp,rip
++64:rax
++64:rbx
++64:rcx
++64:rdx
++64:rsi
++64:rdi
++64:rbp
++64:rsp
++64:r8
++64:r9
++64:r10
++64:r11
++64:r12
++64:r13
++64:r14
++64:r15
++64:rip
++32:eflags
++32:cs
++32:ss
++32:ds
++32:es
++32:fs
++32:gs
++80:st0
++80:st1
++80:st2
++80:st3
++80:st4
++80:st5
++80:st6
++80:st7
++32:fctrl
++32:fstat
++32:ftag
++32:fiseg
++32:fioff
++32:foseg
++32:fooff
++32:fop
++128:xmm0
++128:xmm1
++128:xmm2
++128:xmm3
++128:xmm4
++128:xmm5
++128:xmm6
++128:xmm7
++128:xmm8
++128:xmm9
++128:xmm10
++128:xmm11
++128:xmm12
++128:xmm13
++128:xmm14
++128:xmm15
++32:mxcsr
++128:ymm0h
++128:ymm1h
++128:ymm2h
++128:ymm3h
++128:ymm4h
++128:ymm5h
++128:ymm6h
++128:ymm7h
++128:ymm8h
++128:ymm9h
++128:ymm10h
++128:ymm11h
++128:ymm12h
++128:ymm13h
++128:ymm14h
++128:ymm15h
++128:bnd0raw
++128:bnd1raw
++128:bnd2raw
++128:bnd3raw
++64:bndcfgu
++64:bndstatus
+diff --git a/gdb/regformats/i386/amd64-mpx-linux.dat b/gdb/regformats/i386/amd64-mpx-linux.dat
+index 7a05cfe..523ae01 100644
+--- a/gdb/regformats/i386/amd64-mpx-linux.dat
++++ b/gdb/regformats/i386/amd64-mpx-linux.dat
+@@ -61,22 +61,6 @@ expedite:rbp,rsp,rip
+ 128:xmm15
+ 32:mxcsr
+ 64:orig_rax
+-128:ymm0h
+-128:ymm1h
+-128:ymm2h
+-128:ymm3h
+-128:ymm4h
+-128:ymm5h
+-128:ymm6h
+-128:ymm7h
+-128:ymm8h
+-128:ymm9h
+-128:ymm10h
+-128:ymm11h
+-128:ymm12h
+-128:ymm13h
+-128:ymm14h
+-128:ymm15h
+ 128:bnd0raw
+ 128:bnd1raw
+ 128:bnd2raw
+diff --git a/gdb/regformats/i386/amd64-mpx.dat b/gdb/regformats/i386/amd64-mpx.dat
+index 1b75f4d..43b8776 100644
+--- a/gdb/regformats/i386/amd64-mpx.dat
++++ b/gdb/regformats/i386/amd64-mpx.dat
+@@ -60,22 +60,6 @@ expedite:rbp,rsp,rip
+ 128:xmm14
+ 128:xmm15
+ 32:mxcsr
+-128:ymm0h
+-128:ymm1h
+-128:ymm2h
+-128:ymm3h
+-128:ymm4h
+-128:ymm5h
+-128:ymm6h
+-128:ymm7h
+-128:ymm8h
+-128:ymm9h
+-128:ymm10h
+-128:ymm11h
+-128:ymm12h
+-128:ymm13h
+-128:ymm14h
+-128:ymm15h
+ 128:bnd0raw
+ 128:bnd1raw
+ 128:bnd2raw
+diff --git a/gdb/regformats/i386/i386-avx-mpx-linux.dat b/gdb/regformats/i386/i386-avx-mpx-linux.dat
+new file mode 100644
+index 0000000..831c476
+--- /dev/null
++++ b/gdb/regformats/i386/i386-avx-mpx-linux.dat
+@@ -0,0 +1,61 @@
++# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
++# Generated from: i386/i386-avx-mpx-linux.xml
++name:i386_avx_mpx_linux
++xmltarget:i386-avx-mpx-linux.xml
++expedite:ebp,esp,eip
++32:eax
++32:ecx
++32:edx
++32:ebx
++32:esp
++32:ebp
++32:esi
++32:edi
++32:eip
++32:eflags
++32:cs
++32:ss
++32:ds
++32:es
++32:fs
++32:gs
++80:st0
++80:st1
++80:st2
++80:st3
++80:st4
++80:st5
++80:st6
++80:st7
++32:fctrl
++32:fstat
++32:ftag
++32:fiseg
++32:fioff
++32:foseg
++32:fooff
++32:fop
++128:xmm0
++128:xmm1
++128:xmm2
++128:xmm3
++128:xmm4
++128:xmm5
++128:xmm6
++128:xmm7
++32:mxcsr
++32:orig_eax
++128:ymm0h
++128:ymm1h
++128:ymm2h
++128:ymm3h
++128:ymm4h
++128:ymm5h
++128:ymm6h
++128:ymm7h
++128:bnd0raw
++128:bnd1raw
++128:bnd2raw
++128:bnd3raw
++64:bndcfgu
++64:bndstatus
+diff --git a/gdb/regformats/i386/i386-avx-mpx.dat b/gdb/regformats/i386/i386-avx-mpx.dat
+new file mode 100644
+index 0000000..8caef75
+--- /dev/null
++++ b/gdb/regformats/i386/i386-avx-mpx.dat
+@@ -0,0 +1,60 @@
++# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
++# Generated from: i386/i386-avx-mpx.xml
++name:i386_avx_mpx
++xmltarget:i386-avx-mpx.xml
++expedite:ebp,esp,eip
++32:eax
++32:ecx
++32:edx
++32:ebx
++32:esp
++32:ebp
++32:esi
++32:edi
++32:eip
++32:eflags
++32:cs
++32:ss
++32:ds
++32:es
++32:fs
++32:gs
++80:st0
++80:st1
++80:st2
++80:st3
++80:st4
++80:st5
++80:st6
++80:st7
++32:fctrl
++32:fstat
++32:ftag
++32:fiseg
++32:fioff
++32:foseg
++32:fooff
++32:fop
++128:xmm0
++128:xmm1
++128:xmm2
++128:xmm3
++128:xmm4
++128:xmm5
++128:xmm6
++128:xmm7
++32:mxcsr
++128:ymm0h
++128:ymm1h
++128:ymm2h
++128:ymm3h
++128:ymm4h
++128:ymm5h
++128:ymm6h
++128:ymm7h
++128:bnd0raw
++128:bnd1raw
++128:bnd2raw
++128:bnd3raw
++64:bndcfgu
++64:bndstatus
+diff --git a/gdb/regformats/i386/i386-mpx-linux.dat b/gdb/regformats/i386/i386-mpx-linux.dat
+index b52b68d..1dcdce9 100644
+--- a/gdb/regformats/i386/i386-mpx-linux.dat
++++ b/gdb/regformats/i386/i386-mpx-linux.dat
+@@ -45,14 +45,6 @@ expedite:ebp,esp,eip
+ 128:xmm7
+ 32:mxcsr
+ 32:orig_eax
+-128:ymm0h
+-128:ymm1h
+-128:ymm2h
+-128:ymm3h
+-128:ymm4h
+-128:ymm5h
+-128:ymm6h
+-128:ymm7h
+ 128:bnd0raw
+ 128:bnd1raw
+ 128:bnd2raw
+diff --git a/gdb/regformats/i386/i386-mpx.dat b/gdb/regformats/i386/i386-mpx.dat
+index 0ea420b..dda5164 100644
+--- a/gdb/regformats/i386/i386-mpx.dat
++++ b/gdb/regformats/i386/i386-mpx.dat
+@@ -44,14 +44,6 @@ expedite:ebp,esp,eip
+ 128:xmm6
+ 128:xmm7
+ 32:mxcsr
+-128:ymm0h
+-128:ymm1h
+-128:ymm2h
+-128:ymm3h
+-128:ymm4h
+-128:ymm5h
+-128:ymm6h
+-128:ymm7h
+ 128:bnd0raw
+ 128:bnd1raw
+ 128:bnd2raw
+diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
+index 15ad7e7..3a94471 100644
+--- a/gdb/testsuite/gdb.trace/ftrace.exp
++++ b/gdb/testsuite/gdb.trace/ftrace.exp
+@@ -132,7 +132,6 @@ proc test_fast_tracepoints {} {
+ gdb_test "tfind pc *set_point" "Found trace frame .*" \
+ "tfind set_point frame, first time"
+
+- setup_kfail "gdb/13808" "x86_64-*-linux*"
+ gdb_test "print globvar" " = 1"
+
+ gdb_test "tfind pc *set_point" "Found trace frame .*" \
+diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
+index 3cc18c1..107576f 100644
+--- a/gdb/x86-linux-nat.c
++++ b/gdb/x86-linux-nat.c
+@@ -215,6 +215,11 @@ x86_linux_read_description (struct target_ops *ops)
+ return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
+ else
+ return tdesc_amd64_mpx_linux;
++ case X86_XSTATE_AVX_MPX_MASK:
++ if (is_x32)
++ return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
++ else
++ return tdesc_amd64_avx_mpx_linux;
+ case X86_XSTATE_AVX_MASK:
+ if (is_x32)
+ return tdesc_x32_avx_linux;
+@@ -237,6 +242,8 @@ x86_linux_read_description (struct target_ops *ops)
+ return tdesc_i386_avx512_linux;
+ case X86_XSTATE_MPX_MASK:
+ return tdesc_i386_mpx_linux;
++ case X86_XSTATE_AVX_MPX_MASK:
++ return tdesc_i386_avx_mpx_linux;
+ case X86_XSTATE_AVX_MASK:
+ return tdesc_i386_avx_linux;
+ default:
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/force-readline-static.patch b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/force-readline-static.patch
deleted file mode 100644
index d34ee8cee..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb/force-readline-static.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-If gdb is configured with --disable-static then this is dutifully passed to
-readline which then disables libreadline.a, which causes a problem when gdb
-tries to link against that.
-
-To ensure that readline always builds static libraries, pass --enable-static to
-the sub-configure.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/Makefile.def b/Makefile.def
-index 4394188..05c661a 100644
---- a/Makefile.def
-+++ b/Makefile.def
-@@ -100,7 +100,8 @@ host_modules= { module= libiconv;
- missing= install-html;
- missing= install-info; };
- host_modules= { module= m4; };
--host_modules= { module= readline; };
-+host_modules= { module= readline;
-+ extra_configure_flags='--enable-static';};
- host_modules= { module= sid; };
- host_modules= { module= sim; };
- host_modules= { module= texinfo; no_install= true; };
-diff --git a/Makefile.in b/Makefile.in
-index 61e0ab6..837f36e 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -24971,7 +24971,7 @@ configure-readline:
- $$s/$$module_srcdir/configure \
- --srcdir=$${topdir}/$$module_srcdir \
- $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
-- --target=${target_alias} \
-+ --target=${target_alias} --enable-static \
- || exit 1
- @endif readline
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.10.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.10.1.bb
deleted file mode 100644
index f897e1213..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.10.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require gdb.inc
-require gdb-${PV}.inc
-
-inherit python-dir
-
-do_configure_prepend() {
- if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}" ]; then
- cat > ${WORKDIR}/python << EOF
-#!/bin/sh
-case "\$2" in
- --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}/" ;;
- --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}" ;;
- --exec-prefix) echo "${exec_prefix}" ;;
- *) exit 1 ;;
-esac
-exit 0
-EOF
- chmod +x ${WORKDIR}/python
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.11.bb
new file mode 100644
index 000000000..57cffc998
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/gdb/gdb_7.11.bb
@@ -0,0 +1,26 @@
+require gdb.inc
+require gdb-${PV}.inc
+
+inherit python3-dir
+
+EXTRA_OEMAKE_append_libc-musl = "\
+ gt_cv_func_gnugettext1_libc=yes \
+ gt_cv_func_gnugettext2_libc=yes \
+ "
+
+do_configure_prepend() {
+ if [ -n "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python', '', d)}" ]; then
+ cat > ${WORKDIR}/python << EOF
+#!/bin/sh
+case "\$2" in
+ --includes) echo "-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}/" ;;
+ --ldflags) echo "-Wl,-rpath-link,${STAGING_LIBDIR}/.. -Wl,-rpath,${libdir}/.. -lpthread -ldl -lutil -lm -lpython${PYTHON_BASEVERSION}${PYTHON_ABI}" ;;
+ --exec-prefix) echo "${exec_prefix}" ;;
+ *) exit 1 ;;
+esac
+exit 0
+EOF
+ chmod +x ${WORKDIR}/python
+ fi
+}
+CFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/git/git.inc b/import-layers/yocto-poky/meta/recipes-devtools/git/git.inc
index a1d0300be..753b0472a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/git/git.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/git/git.inc
@@ -17,6 +17,7 @@ EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \
--without-tcltk \
"
+# Needs brokensep as this doesn't use automake
inherit autotools-brokensep perlnative bash-completion
EXTRA_OEMAKE = "NO_PYTHON=1 CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
@@ -31,8 +32,7 @@ do_compile_prepend () {
do_install () {
oe_runmake install DESTDIR="${D}" bindir=${bindir} \
- template_dir=${datadir}/git-core/templates \
- GIT_PYTHON_DIR=${D}${datadir}/git-core/python
+ template_dir=${datadir}/git-core/templates
install -d ${D}/${mandir}/man1
install -d ${D}/${mandir}/man5
install -d ${D}/${mandir}/man7
@@ -107,10 +107,6 @@ FILES_${PN}-perltools += " \
"
RDEPENDS_${PN}-perltools = "${PN} perl perl-module-file-path findutils"
-PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir}/python*"
-
-
# git-tk package with gitk and git-gui
PACKAGES =+ "${PN}-tk"
#RDEPENDS_${PN}-tk = "${PN} tk tcl"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.7.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.7.4.bb
deleted file mode 100644
index bc72793d4..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.7.4.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
- ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
- "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "c64012d491e24c7d65cd389f75383d91"
-SRC_URI[tarball.sha256sum] = "7104c4f5d948a75b499a954524cb281fe30c6649d8abe20982936f75ec1f275b"
-SRC_URI[manpages.md5sum] = "58020dc13a5801c49f7986fef7027535"
-SRC_URI[manpages.sha256sum] = "0dfe1931ad302873470e0280248e3aa50502b5edd00dcc3e9c9173667b6fea6a"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.9.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.9.3.bb
new file mode 100644
index 000000000..d59f3d283
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/git/git_2.9.3.bb
@@ -0,0 +1,11 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+ ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+ "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.md5sum] = "c783361be894b8bfa5373811b1b65602"
+SRC_URI[tarball.sha256sum] = "a252b6636b12d5ba57732c8469701544c26c2b1689933bd1b425e603cbb247c0"
+SRC_URI[manpages.md5sum] = "66fafd61d65f9d2d99581133170eb186"
+SRC_URI[manpages.sha256sum] = "8ea1a55b048fafbf0c0c6fcbca4b5b0f5e9917893221fc7345c09051d65832ce"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch
deleted file mode 100644
index 24f073f9f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0001-libguile-Check-for-strtol_l-during-configure.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 814d6fb6c1f4a544c8fd37f5a390ba020c2d8c85 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 10 Jan 2016 22:28:17 +0000
-Subject: [PATCH] libguile: Check for strtol_l during configure
-
-strtol_l is a gnu extention which may not be available on other linux
-libc implementations e.g. musl. Therefore check for this funciton and
-conditionalize the use of it.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 5 +++--
- libguile/i18n.c | 2 +-
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3969929..f8a6a1a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -752,7 +752,8 @@ AC_CHECK_HEADERS([assert.h crt_externs.h])
- # truncate - not in mingw
- # isblank - available as a GNU extension or in C99
- # _NSGetEnviron - Darwin specific
--# strcoll_l, newlocale - GNU extensions (glibc), also available on Darwin
-+# strcoll_l, newlocale, strtol_l - GNU extensions (glibc),
-+# also available on Darwin
- # fork - unavailable on Windows
- # utimensat - posix.1-2008
- # sched_getaffinity, sched_setaffinity - GNU extensions (glibc)
-@@ -768,7 +769,7 @@ AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid \
- getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp \
- index bcopy memcpy rindex truncate unsetenv isblank _NSGetEnviron \
- strcoll strcoll_l newlocale utimensat sched_getaffinity \
-- sched_setaffinity sendfile])
-+ sched_setaffinity sendfile strtol_l])
-
- AM_CONDITIONAL([BUILD_ICE_9_POPEN],
- [test "x$enable_posix" = "xyes" && test "x$ac_cv_func_fork" = "xyes"])
-diff --git a/libguile/i18n.c b/libguile/i18n.c
-index 97d44b0..9fb6976 100644
---- a/libguile/i18n.c
-+++ b/libguile/i18n.c
-@@ -1352,7 +1352,7 @@ SCM_DEFINE (scm_locale_string_to_integer, "locale-string->integer",
-
- if (c_locale != NULL)
- {
--#ifdef USE_GNU_LOCALE_API
-+#if defined(USE_GNU_LOCALE_API) && defined(HAVE_STRTOL_L)
- c_result = strtol_l (c_str, &c_endptr, c_base, c_locale);
- #else
- RUN_IN_LOCALE_SECTION (c_locale,
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch
index 519585b8e..8e8474770 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/0002-Recognize-nios2-as-compilation-target.patch
@@ -10,27 +10,23 @@ Upstream-Status: Submitted [ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22480
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/module/system/base/target.scm b/module/system/base/target.scm
-index d60a8e0..d1f6cff 100644
--- a/module/system/base/target.scm
+++ b/module/system/base/target.scm
@@ -65,7 +65,7 @@
(cond ((string-match "^i[0-9]86$" cpu)
(endianness little))
((member cpu '("x86_64" "ia64"
-- "powerpcle" "powerpc64le" "mipsel" "mips64el"))
-+ "powerpcle" "powerpc64le" "mipsel" "mips64el" "nios2"))
+- "powerpcle" "powerpc64le" "mipsel" "mips64el" "sh4"))
++ "powerpcle" "powerpc64le" "mipsel" "mips64el" "sh4" "nios2"))
(endianness little))
((member cpu '("sparc" "sparc64" "powerpc" "powerpc64" "spu"
- "mips" "mips64"))
-@@ -100,7 +100,7 @@
+ "mips" "mips64" "m68k" "s390x"))
+@@ -108,7 +108,7 @@
((string-match "64$" cpu) 8)
- ((string-match "64[lbe][lbe]$" cpu) 8)
-- ((member cpu '("sparc" "powerpc" "mips" "mipsel")) 4)
-+ ((member cpu '("sparc" "powerpc" "mips" "mipsel" "nios2")) 4)
+ ((string-match "64_?[lbe][lbe]$" cpu) 8)
+- ((member cpu '("sparc" "powerpc" "mips" "mipsel" "m68k" "sh4")) 4)
++ ((member cpu '("sparc" "powerpc" "mips" "mipsel" "m68k" "sh4" "nios2")) 4)
+ ((member cpu '("s390x")) 8)
((string-match "^arm.*" cpu) 4)
(else (error "unknown CPU word size" cpu)))))
-
---
-2.7.0.rc3
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch
index 43238a7d2..c7bf635ac 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch
@@ -1,6 +1,6 @@
Upstream-Status: Inappropriate [debian patch]
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
From e52bfcdbaca5dce498678d8f512381e3e39a4066 Mon Sep 17 00:00:00 2001
From: Rob Browning <rlb@defaultvalue.org>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch
index 34be3b96e..d3faf3e01 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch
@@ -1,6 +1,6 @@
Upstream-Status: Inappropriate [debian patch]
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
From 848543091d55dddb54a85612155964506d712852 Mon Sep 17 00:00:00 2001
From: Rob Browning <rlb@defaultvalue.org>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch
index e5dc22637..5597bb21f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/guile_2.0.6_fix_sed_error.patch
@@ -6,7 +6,7 @@ autoreconf error avoided:
| sed: -e expression #1, char 9: unknown option to `s'
| configure.ac:39: error: AC_INIT should be called with package and version arguments
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/01
Index: guile-2.0.5/build-aux/git-version-gen
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch
deleted file mode 100644
index e50059a7e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From a85c78ea1393985fdb6e6678dea19135c553d341 Mon Sep 17 00:00:00 2001
-From: Mark H Weaver <mhw@netris.org>
-Date: Fri, 19 Sep 2014 21:18:09 -0400
-Subject: [PATCH] VM: ASM_MUL for ARM: Add earlyclobber constraint to the SMULL
- outputs.
-
-Reported by Rob Browning <rlb@defaultvalue.org>.
-
-* libguile/vm-i-scheme.c (ASM_MUL)[ARM]: Add earlyclobber (&) constraint
- to the SMULL output registers.
-
-Author: Mark H Weaver <mhw@netris.org>
-
-Upstream-Status: Backport
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- libguile/vm-i-scheme.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/libguile/vm-i-scheme.c b/libguile/vm-i-scheme.c
-index 587aa95..162efab 100644
---- a/libguile/vm-i-scheme.c
-+++ b/libguile/vm-i-scheme.c
-@@ -1,5 +1,4 @@
--/* Copyright (C) 2001, 2009, 2010, 2011, 2012, 2013,
-- * 2014 Free Software Foundation, Inc.
-+/* Copyright (C) 2001, 2009-2014 Free Software Foundation, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
-@@ -363,7 +362,7 @@ VM_DEFINE_FUNCTION (149, ge, "ge?", 2)
- { \
- scm_t_signed_bits rlo, rhi; \
- asm ("smull %0, %1, %2, %3\n" \
-- : "=r" (rlo), "=r" (rhi) \
-+ : "=&r" (rlo), "=&r" (rhi) \
- : "r" (SCM_UNPACK (x) - scm_tc2_int), \
- "r" (SCM_I_INUM (y))); \
- if (SCM_LIKELY (SCM_SRS (rlo, 31) == rhi)) \
---
-2.3.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-64bit.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-64bit.patch
index d3e312f77..da69b5fd7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-64bit.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-64bit.patch
@@ -1,6 +1,6 @@
Upstream-Status: Inappropriate [opensuse patch]
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Index: guile-2.0.3/libguile/hash.c
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-turn-off-gc-test.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-turn-off-gc-test.patch
deleted file mode 100644
index e20148628..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/opensuse/guile-turn-off-gc-test.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Upstream-Status: Inappropriate [opensuse patch]
-
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-
-See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10096
-why this test is turned off.
-Index: guile-2.0.3/test-suite/tests/gc.test
-===================================================================
---- guile-2.0.3.orig/test-suite/tests/gc.test 2011-10-15 09:34:40.000000000 -0700
-+++ guile-2.0.3/test-suite/tests/gc.test 2012-01-13 21:52:10.282540355 -0800
-@@ -65,23 +65,23 @@
- foo)))
-
-
--(with-test-prefix "gc"
-- (pass-if "Unused modules are removed"
-- (let* ((guard (make-guardian))
-- (total 1000))
--
-- (for-each (lambda (x) (guard (make-module))) (iota total))
-+;;(with-test-prefix "gc"
-+;; (pass-if "Unused modules are removed"
-+;; (let* ((guard (make-guardian))
-+;; (total 1000))
-+;;
-+;; (for-each (lambda (x) (guard (make-module))) (iota total))
-
- ;; Avoid false references to the modules on the stack.
-- (stack-cleanup 20)
-+;; (stack-cleanup 20)
-
-- (gc)
-- (gc) ;; twice: have to kill the weak vectors.
-- (gc) ;; thrice: because the test doesn't succeed with only
-+;; (gc)
-+;; (gc) ;; twice: have to kill the weak vectors.
-+;; (gc) ;; thrice: because the test doesn't succeed with only
- ;; one gc round. not sure why.
-
-- (= (let lp ((i 0))
-- (if (guard)
-- (lp (1+ i))
-- i))
-- total))))
-+;; (= (let lp ((i 0))
-+;; (if (guard)
-+;; (lp (1+ i))
-+;; i))
-+;; total))))
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch b/import-layers/yocto-poky/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch
deleted file mode 100644
index e7a06fef1..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/files/remove_strcase_l_funcs.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-These unused functions cause build failures with uclibc since they reference __uclibc_locale_struct
-and this is exposed by uclibc API headers only if C locales are built, but for OE we build full locale
-support
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: guile-2.0.11/libguile/i18n.c
-===================================================================
---- guile-2.0.11.orig/libguile/i18n.c
-+++ guile-2.0.11/libguile/i18n.c
-@@ -851,27 +851,6 @@ str_downcase (register char *dst, regist
- *dst = '\0';
- }
-
--#ifdef USE_GNU_LOCALE_API
--static inline void
--str_upcase_l (register char *dst, register const char *src,
-- scm_t_locale locale)
--{
-- for (; *src != '\0'; src++, dst++)
-- *dst = toupper_l (*src, locale);
-- *dst = '\0';
--}
--
--static inline void
--str_downcase_l (register char *dst, register const char *src,
-- scm_t_locale locale)
--{
-- for (; *src != '\0'; src++, dst++)
-- *dst = tolower_l (*src, locale);
-- *dst = '\0';
--}
--#endif
--
--
- SCM_DEFINE (scm_string_locale_lt, "string-locale<?", 2, 1, 0,
- (SCM s1, SCM s2, SCM locale),
- "Compare strings @var{s1} and @var{s2} in a locale-dependent way."
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.11.bb
deleted file mode 100644
index 6cefe6649..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.11.bb
+++ /dev/null
@@ -1,128 +0,0 @@
-SUMMARY = "Guile is the GNU Ubiquitous Intelligent Language for Extensions"
-DESCRIPTION = "Guile is the GNU Ubiquitous Intelligent Language for Extensions,\
- the official extension language for the GNU operating system.\
- Guile is a library designed to help programmers create flexible applications.\
- Using Guile in an application allows the application's functionality to be\
- extended by users or other programmers with plug-ins, modules, or scripts.\
- Guile provides what might be described as 'practical software freedom,'\
- making it possible for users to customize an application to meet their\
- needs without digging into the application's internals."
-
-HOMEPAGE = "http://www.gnu.org/software/guile/"
-SECTION = "devel"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
- file://debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch \
- file://debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch \
- file://opensuse/guile-64bit.patch \
- file://guile_2.0.6_fix_sed_error.patch \
- file://arm_endianness.patch \
- file://arm_aarch64.patch \
- file://workaround-ice-ssa-corruption.patch \
- file://libguile-Makefile.am-hook.patch \
- file://libguile-VM-ASM_MUL-for-ARM-Add-earlyclobber.patch \
- file://remove_strcase_l_funcs.patch \
- file://0001-libguile-Check-for-strtol_l-during-configure.patch \
- file://0002-Recognize-nios2-as-compilation-target.patch \
- "
-
-# file://debian/0001-Change-guile-to-guile-X.Y-for-info-pages.patch
-# file://opensuse/guile-turn-off-gc-test.patch
-
-SRC_URI[md5sum] = "03f1bce1a4983076d955003472306a13"
-SRC_URI[sha256sum] = "aed0a4a6db4e310cbdfeb3613fa6f86fddc91ef624c1e3f8937a6304c69103e2"
-
-
-inherit autotools gettext pkgconfig texinfo
-BBCLASSEXTEND = "native"
-
-DEPENDS = "libunistring bdwgc gmp libtool libffi ncurses readline"
-# add guile-native only to the target recipe's DEPENDS
-DEPENDS_append_class-target = " guile-native libatomic-ops"
-
-# The comment of the script guile-config said it has been deprecated but we should
-# at least add the required dependency to make it work since we still provide the script.
-RDEPENDS_${PN} = "pkgconfig"
-
-RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1"
-
-EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}"
-
-EXTRA_OECONF_append_class-target = " --with-libunistring-prefix=${STAGING_LIBDIR} \
- --with-libgmp-prefix=${STAGING_LIBDIR} \
- --with-libltdl-prefix=${STAGING_LIBDIR}"
-EXTRA_OECONF_append_libc-uclibc = " guile_cv_use_csqrt=no "
-
-CFLAGS_append_libc-musl = " -DHAVE_GC_SET_FINALIZER_NOTIFIER \
- -DHAVE_GC_GET_HEAP_USAGE_SAFE \
- -DHAVE_GC_GET_FREE_SPACE_DIVISOR \
- -DHAVE_GC_SET_FINALIZE_ON_DEMAND \
- "
-
-do_configure_prepend() {
- mkdir -p po
-}
-
-export GUILE_FOR_BUILD="${BUILD_SYS}-guile"
-
-do_install_append_class-native() {
- install -m 0755 ${D}${bindir}/guile ${D}${bindir}/${HOST_SYS}-guile
-
- create_wrapper ${D}/${bindir}/guile \
- GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
- GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
- create_wrapper ${D}${bindir}/${HOST_SYS}-guile \
- GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
- GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
-}
-
-do_install_append_class-target() {
- # cleanup buildpaths in scripts
- sed -i -e 's:${STAGING_DIR_NATIVE}::' ${D}${bindir}/guile-config
- sed -i -e 's:${STAGING_DIR_HOST}::' ${D}${bindir}/guile-snarf
-
- sed -i -e 's:${STAGING_DIR_TARGET}::g' ${D}${libdir}/pkgconfig/guile-2.0.pc
-}
-
-do_install_append_libc-musl() {
- rm -f ${D}${libdir}/charset.alias
-}
-
-SYSROOT_PREPROCESS_FUNCS = "guile_cross_config"
-
-guile_cross_config() {
- # this is only for target recipe
- if [ "${PN}" = "guile" ]
- then
- # Create guile-config returning target values instead of native values
- install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
- echo '#!'`which ${BUILD_SYS}-guile`$' \\\n--no-auto-compile -e main -s\n!#\n(define %guile-build-info '\'\( \
- > ${B}/guile-config.cross
- sed -n -e 's:^[ \t]*{[ \t]*": (:' \
- -e 's:",[ \t]*": . ":' \
- -e 's:" *}, *\\:"):' \
- -e 's:^.*cachedir.*$::' \
- -e '/^ (/p' \
- < ${B}/libguile/libpath.h >> ${B}/guile-config.cross
- echo '))' >> ${B}/guile-config.cross
- cat ${B}/meta/guile-config >> ${B}/guile-config.cross
- install ${B}/guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config
- fi
-}
-
-# Guile needs the compiled files to be newer than the source, and it won't
-# auto-compile into the prefix even if it can write there, so touch them here as
-# sysroot is managed.
-SSTATEPOSTINSTFUNCS += "guile_sstate_postinst"
-guile_sstate_postinst() {
- if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
- then
- find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch
- fi
-}
-
-# http://errors.yoctoproject.org/Errors/Details/20491/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.12.bb
new file mode 100644
index 000000000..d2fe511ae
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/guile/guile_2.0.12.bb
@@ -0,0 +1,121 @@
+SUMMARY = "Guile is the GNU Ubiquitous Intelligent Language for Extensions"
+DESCRIPTION = "Guile is the GNU Ubiquitous Intelligent Language for Extensions,\
+ the official extension language for the GNU operating system.\
+ Guile is a library designed to help programmers create flexible applications.\
+ Using Guile in an application allows the application's functionality to be\
+ extended by users or other programmers with plug-ins, modules, or scripts.\
+ Guile provides what might be described as 'practical software freedom,'\
+ making it possible for users to customize an application to meet their\
+ needs without digging into the application's internals."
+
+HOMEPAGE = "http://www.gnu.org/software/guile/"
+SECTION = "devel"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/guile/guile-${PV}.tar.xz \
+ file://debian/0002-Mark-Unused-modules-are-removed-gc-test-as-unresolve.patch \
+ file://debian/0003-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch \
+ file://opensuse/guile-64bit.patch \
+ file://guile_2.0.6_fix_sed_error.patch \
+ file://arm_endianness.patch \
+ file://arm_aarch64.patch \
+ file://workaround-ice-ssa-corruption.patch \
+ file://libguile-Makefile.am-hook.patch \
+ file://0002-Recognize-nios2-as-compilation-target.patch \
+ "
+
+SRC_URI[md5sum] = "081fdf80cd3a76f260a2a0d87f773d6b"
+SRC_URI[sha256sum] = "de8187736f9b260f2fa776ed39b52cb74dd389ccf7039c042f0606270196b7e9"
+
+inherit autotools gettext pkgconfig texinfo
+BBCLASSEXTEND = "native"
+
+DEPENDS = "libunistring bdwgc gmp libtool libffi ncurses readline"
+# add guile-native only to the target recipe's DEPENDS
+DEPENDS_append_class-target = " guile-native libatomic-ops"
+
+# The comment of the script guile-config said it has been deprecated but we should
+# at least add the required dependency to make it work since we still provide the script.
+RDEPENDS_${PN} = "pkgconfig"
+
+RDEPENDS_${PN}_append_libc-glibc_class-target = " glibc-gconv-iso8859-1"
+
+EXTRA_OECONF += "${@['--without-libltdl-prefix --without-libgmp-prefix --without-libreadline-prefix', ''][bb.data.inherits_class('native',d)]}"
+
+EXTRA_OECONF_append_class-target = " --with-libunistring-prefix=${STAGING_LIBDIR} \
+ --with-libgmp-prefix=${STAGING_LIBDIR} \
+ --with-libltdl-prefix=${STAGING_LIBDIR}"
+EXTRA_OECONF_append_libc-uclibc = " guile_cv_use_csqrt=no "
+
+CFLAGS_append_libc-musl = " -DHAVE_GC_SET_FINALIZER_NOTIFIER \
+ -DHAVE_GC_GET_HEAP_USAGE_SAFE \
+ -DHAVE_GC_GET_FREE_SPACE_DIVISOR \
+ -DHAVE_GC_SET_FINALIZE_ON_DEMAND \
+ "
+
+do_configure_prepend() {
+ mkdir -p po
+}
+
+export GUILE_FOR_BUILD="${BUILD_SYS}-guile"
+
+do_install_append_class-native() {
+ install -m 0755 ${D}${bindir}/guile ${D}${bindir}/${HOST_SYS}-guile
+
+ create_wrapper ${D}/${bindir}/guile \
+ GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
+ GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
+ create_wrapper ${D}${bindir}/${HOST_SYS}-guile \
+ GUILE_LOAD_PATH=${STAGING_DATADIR_NATIVE}/guile/2.0 \
+ GUILE_LOAD_COMPILED_PATH=${STAGING_LIBDIR_NATIVE}/guile/2.0/ccache
+}
+
+do_install_append_class-target() {
+ # cleanup buildpaths in scripts
+ sed -i -e 's:${STAGING_DIR_NATIVE}::' ${D}${bindir}/guile-config
+ sed -i -e 's:${STAGING_DIR_HOST}::' ${D}${bindir}/guile-snarf
+
+ sed -i -e 's:${STAGING_DIR_TARGET}::g' ${D}${libdir}/pkgconfig/guile-2.0.pc
+}
+
+do_install_append_libc-musl() {
+ rm -f ${D}${libdir}/charset.alias
+}
+
+SYSROOT_PREPROCESS_FUNCS = "guile_cross_config"
+
+guile_cross_config() {
+ # this is only for target recipe
+ if [ "${PN}" = "guile" ]
+ then
+ # Create guile-config returning target values instead of native values
+ install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
+ echo '#!'`which ${BUILD_SYS}-guile`$' \\\n--no-auto-compile -e main -s\n!#\n(define %guile-build-info '\'\( \
+ > ${B}/guile-config.cross
+ sed -n -e 's:^[ \t]*{[ \t]*": (:' \
+ -e 's:",[ \t]*": . ":' \
+ -e 's:" *}, *\\:"):' \
+ -e 's:^.*cachedir.*$::' \
+ -e '/^ (/p' \
+ < ${B}/libguile/libpath.h >> ${B}/guile-config.cross
+ echo '))' >> ${B}/guile-config.cross
+ cat ${B}/meta/guile-config >> ${B}/guile-config.cross
+ install ${B}/guile-config.cross ${STAGING_BINDIR_CROSS}/guile-config
+ fi
+}
+
+# Guile needs the compiled files to be newer than the source, and it won't
+# auto-compile into the prefix even if it can write there, so touch them here as
+# sysroot is managed.
+SSTATEPOSTINSTFUNCS += "guile_sstate_postinst"
+guile_sstate_postinst() {
+ if [ "${BB_CURRENTTASK}" = "populate_sysroot" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
+ then
+ find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch
+ fi
+}
+
+# http://errors.yoctoproject.org/Errors/Details/20491/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.3.bb
deleted file mode 100644
index 232b0c37a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.3.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Program for creating simple man pages"
-SECTION = "devel"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "autoconf-native automake-native"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "d1d44a7a7b2bd61755a2045d96ecaea0"
-SRC_URI[sha256sum] = "c232af6475ef65bee02770862a362f4c4c2e6c9967d39e987eb94cadcfc13856"
-
-inherit autotools native
-
-EXTRA_OECONF = "--disable-nls"
-
-# We don't want to reconfigure things as it would require 'perlnative' to be
-# used.
-do_configure() {
- oe_runconf
-}
-
-do_install_append () {
- # Make sure we use /usr/bin/env perl
- sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.4.bb
new file mode 100644
index 000000000..64dc32cb9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/help2man/help2man-native_1.47.4.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Program for creating simple man pages"
+SECTION = "devel"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "autoconf-native automake-native"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "544aca496a7d89de3e5d99e56a2f03d3"
+SRC_URI[sha256sum] = "d4ecf697d13f14dd1a78c5995f06459bff706fd1ce593d1c02d81667c0207753"
+
+inherit autotools native
+
+EXTRA_OECONF = "--disable-nls"
+
+# We don't want to reconfigure things as it would require 'perlnative' to be
+# used.
+do_configure() {
+ oe_runconf
+}
+
+do_install_append () {
+ # Make sure we use /usr/bin/env perl
+ sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool.inc b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool.inc
deleted file mode 100644
index eb7ae004a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool.inc
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Utility scripts for internationalizing XML"
-SECTION = "devel"
-LICENSE = "GPLv2"
-
-URLV="${@'.'.join(d.getVar('PV',1).split('.')[0:2])}"
-SRC_URI = "http://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz"
-
-UPSTREAM_CHECK_URI = "https://launchpad.net/intltool/trunk/"
-
-S = "${WORKDIR}/intltool-${PV}"
-
-DEPENDS = "libxml-parser-perl-native"
-RDEPENDS_${PN} = "gettext-dev libxml-parser-perl"
-DEPENDS_class-native = "libxml-parser-perl-native"
-# gettext is assumed to exist on the host
-RDEPENDS_${PN}_class-native = "libxml-parser-perl-native"
-RRECOMMENDS_${PN} = "perl-modules"
-RRECOMMENDS_${PN}_class-native = ""
-
-FILES_${PN}-dev = ""
-FILES_${PN} += "${datadir}/aclocal"
-
-INSANE_SKIP_${PN} += "dev-deps"
-
-inherit autotools pkgconfig perlnative
-
-export PERL = "${bindir}/env perl"
-PERL_class-native = "/usr/bin/env nativeperl"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-perl-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-perl-check.patch
new file mode 100644
index 000000000..5f57ea333
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-perl-check.patch
@@ -0,0 +1,45 @@
+Remove the perl checks in intltool.m4. This can find a different perl binary to
+the one that the intltool scripts will actually be using (as they hard-code a
+specific binary), for example in the intltool-native case they'll be using
+nativeperl yet this fragment can find and test the host perl.
+
+This can result in recipes failing in do_configure as intltool.m4 finds a host
+perl which doesn't have XML::Parser installed, despite the fact that intltool
+will work fine as nativeperl has XML::Parser.
+
+Upstream-Status: Submitted (https://bugs.launchpad.net/intltool/+bug/1197875)
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+--- a/intltool.m4.orig 2013-07-02 11:22:23.000000000 -0700
++++ b/intltool.m4 2013-07-02 11:22:32.000000000 -0700
+@@ -26,1 +26,1 @@ dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+-# serial 42 IT_PROG_INTLTOOL
++# serial 42.1 IT_PROG_INTLTOOL
+@@ -131,27 +131,6 @@ if test -z "$xgversion" -o -z "$mmversio
+ AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
+ fi
+
+-AC_PATH_PROG(INTLTOOL_PERL, perl)
+-if test -z "$INTLTOOL_PERL"; then
+- AC_MSG_ERROR([perl not found])
+-fi
+-AC_MSG_CHECKING([for perl >= 5.8.1])
+-$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
+-if test $? -ne 0; then
+- AC_MSG_ERROR([perl 5.8.1 is required for intltool])
+-else
+- IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
+- AC_MSG_RESULT([$IT_PERL_VERSION])
+-fi
+-if test "x$2" != "xno-xml"; then
+- AC_MSG_CHECKING([for XML::Parser])
+- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+- AC_MSG_RESULT([ok])
+- else
+- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+- fi
+-fi
+-
+ # Substitute ALL_LINGUAS so we can use it in po/Makefile
+ AC_SUBST(ALL_LINGUAS)
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-xml-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-xml-check.patch
deleted file mode 100644
index fc69e37b4..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/remove-xml-check.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Signed-off-by: Florin Sarbu <florin.sarbu@windriver.com>
-
-Upstream-Status: Inappropriate [OE specific]
-
-Index: intltool-0.40.6/intltool.m4
-===================================================================
---- intltool-0.40.6.orig/intltool.m4 2009-02-14 14:12:28.000000000 -0800
-+++ intltool-0.40.6/intltool.m4 2011-11-23 15:39:34.689561872 -0800
-@@ -122,14 +122,16 @@
- IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`"
- AC_MSG_RESULT([$IT_PERL_VERSION])
- fi
--if test "x$2" != "xno-xml"; then
-- AC_MSG_CHECKING([for XML::Parser])
-- if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
-- AC_MSG_RESULT([ok])
-- else
-- AC_MSG_ERROR([XML::Parser perl module is required for intltool])
-- fi
--fi
-+
-+# Disable this check since we know XML::Parser is installed
-+#if test "x$2" != "xno-xml"; then
-+# AC_MSG_CHECKING([for XML::Parser])
-+# if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
-+# AC_MSG_RESULT([ok])
-+# else
-+# AC_MSG_ERROR([XML::Parser perl module is required for intltool])
-+# fi
-+#fi
-
- # Substitute ALL_LINGUAS so we can use it in po/Makefile
- AC_SUBST(ALL_LINGUAS)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/use-nativeperl.patch b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/use-nativeperl.patch
deleted file mode 100644
index 5f5fed385..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool/use-nativeperl.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-OE has perl binary as 'nativeperl' in native sysroot so we look for it
-in order to avoid intltool searching and finding perl from /usr/bin
-on build system which may not have all the modules that it needs.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [OE specific]
-Index: intltool-0.40.6/intltool.m4
-===================================================================
---- intltool-0.40.6.orig/intltool.m4 2009-02-14 14:12:28.000000000 -0800
-+++ intltool-0.40.6/intltool.m4 2011-08-09 08:07:16.427347846 -0700
-@@ -110,7 +110,7 @@
- AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
- fi
-
--AC_PATH_PROG(INTLTOOL_PERL, perl)
-+AC_PATH_PROG(INTLTOOL_PERL, nativeperl)
- if test -z "$INTLTOOL_PERL"; then
- AC_MSG_ERROR([perl not found])
- fi
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool_0.51.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool_0.51.0.bb
index d520d43c1..a7ea3b727 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool_0.51.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/intltool/intltool_0.51.0.bb
@@ -1,19 +1,36 @@
-require intltool.inc
+SUMMARY = "Utility scripts for internationalizing XML"
+SECTION = "devel"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-SRC_URI += "file://intltool-nowarn.patch \
- file://perl-522-deprecations.patch \
- ${NATIVEPATCHES} \
+SRC_URI = "http://launchpad.net/${BPN}/trunk/${PV}/+download/${BP}.tar.gz \
+ file://intltool-nowarn.patch \
+ file://perl-522-deprecations.patch \
+ file://remove-perl-check.patch \
+ file://noperlcheck.patch \
"
-
-#
-# All of the intltool scripts have the correct paths to perl already
-# embedded into them and can find perl fine, so we add the remove xml-check
-# in the intltool.m4 via the remove-xml-check.patch
-NATIVEPATCHES = "file://noperlcheck.patch \
- file://remove-xml-check.patch"
-NATIVEPATCHES_class-native = "file://use-nativeperl.patch"
-
SRC_URI[md5sum] = "12e517cac2b57a0121cda351570f1e63"
SRC_URI[sha256sum] = "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/intltool/trunk/"
+
+DEPENDS = "libxml-parser-perl-native"
+RDEPENDS_${PN} = "gettext-dev libxml-parser-perl"
+DEPENDS_class-native = "libxml-parser-perl-native"
+
+inherit autotools pkgconfig perlnative
+
+export PERL = "${bindir}/env perl"
+PERL_class-native = "/usr/bin/env nativeperl"
+
+# gettext is assumed to exist on the host
+RDEPENDS_${PN}_class-native = "libxml-parser-perl-native"
+RRECOMMENDS_${PN} = "perl-modules"
+RRECOMMENDS_${PN}_class-native = ""
+
+FILES_${PN}-dev = ""
+FILES_${PN} += "${datadir}/aclocal"
+
+INSANE_SKIP_${PN} += "dev-deps"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c/0001-Link-against-libm-when-needed.patch b/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c/0001-Link-against-libm-when-needed.patch
new file mode 100644
index 000000000..bfe9d7231
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c/0001-Link-against-libm-when-needed.patch
@@ -0,0 +1,53 @@
+From 93582ad85ef48c18ac12f00a9a9e124989b1fcab Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Fri, 1 May 2015 12:52:18 +0200
+Subject: [PATCH] Link against libm when needed
+
+In certain C libraries (e.g uClibc), isnan() and related functions are
+implemented in libm, so json-c needs to link against it. This commit
+therefore adds an AC_TRY_LINK() test to check whether a program
+calling isnan() can be properly linked with no special flags. If not,
+we assume linking against libm is needed.
+
+The json-c.pc.in file is also adjusted so that in the case of static
+linking against json-c, -lm is also used.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+Upstream-Status: Backport
+
+ configure.ac | 4 ++++
+ json-c.pc.in | 3 ++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c50f81b..30e7174 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -50,6 +50,10 @@ AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
+ AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
+ AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
+
++if test "$ac_cv_have_decl_isnan" = "yes" ; then
++ AC_TRY_LINK([#include <math.h>], [float f = 0.0; return isnan(f)], [], [LIBS="$LIBS -lm"])
++fi
++
+ #check if .section.gnu.warning accepts long strings (for __warn_references)
+ AC_LANG_PUSH([C])
+
+diff --git a/json-c.pc.in b/json-c.pc.in
+index 037739d..05bfbc8 100644
+--- a/json-c.pc.in
++++ b/json-c.pc.in
+@@ -6,6 +6,7 @@ includedir=@includedir@
+ Name: json-c
+ Description: JSON implementation in C
+ Version: @VERSION@
+-Requires:
++Requires:
++Libs.private: @LIBS@
+ Libs: -L${libdir} -ljson-c
+ Cflags: -I${includedir}/json-c
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c_0.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c_0.12.bb
index 1a5c3948e..a15455c9b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c_0.12.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/json-c/json-c_0.12.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2"
SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \
file://0001-json_tokener-requires-INF-and-NAN.patch \
+ file://0001-Link-against-libm-when-needed.patch \
"
SRC_URI[md5sum] = "3ca4bbb881dfc4017e8021b5e0a8c491"
@@ -27,3 +28,5 @@ do_configure_prepend() {
# Clean up autoconf cruft that should not be in the tarball
rm -f ${S}/config.status
}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb
index 48a2f935b..9b65a991d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/kconfig-frontends/kconfig-frontends_3.12.0.0.bb
@@ -11,14 +11,14 @@ HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
SECTION = "devel"
-DEPENDS += "ncurses flex bison gperf-native pkgconfig-native"
+DEPENDS += "ncurses flex bison gperf-native"
RDEPENDS_${PN} += "python bash"
SRC_URI = "http://ymorin.is-a-geek.org/download/${BPN}/${BP}.tar.xz"
SRC_URI[md5sum] = "b939280dcc83f8feabd87a1d5f9b00c2"
SRC_URI[sha256sum] = "ea2615a62c74bea6ce3b38402f00c7513858f307f6ba7aa9fdbf0bbc12bcf407"
-inherit autotools
+inherit autotools pkgconfig
do_configure_prepend () {
mkdir -p scripts/.autostuff/m4
}
@@ -32,7 +32,7 @@ EXTRA_OECONF += "--disable-gconf --disable-qconf"
# Some packages have the version preceeding the .so instead properly
# versioned .so.<version>, so we need to reorder and repackage.
-SOLIBS = "-${@d.getVar('PV',1)[:-2]}.so"
+SOLIBS = "-${@d.getVar('PV', True)[:-2]}.so"
FILES_SOLIBSDEV = "${libdir}/libkconfig-parser.so"
BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb b/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
index 0204d347b..b26831046 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb
@@ -35,11 +35,6 @@ do_install () {
install -c -m 0644 ${S}/m4/*.m4 ${D}${target_datadir}/aclocal/
}
-SYSROOT_PREPROCESS_FUNCS += "libtoolcross_sysroot_preprocess"
-
-libtoolcross_sysroot_preprocess () {
- sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
- sysroot_stage_dir ${D}${target_datadir} ${SYSROOT_DESTDIR}${target_datadir}
-}
+SYSROOT_DIRS += "${bindir_crossscripts} ${target_datadir}"
SSTATE_SCAN_FILES += "libtoolize *-libtool"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
index 3851ec7f8..8858f6eef 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
@@ -5,7 +5,11 @@ RDEPENDS_${PN} += "bash"
#
# We want the results of libtool-cross preserved - don't stage anything ourselves.
#
-SYSROOT_PREPROCESS_FUNCS += "libtool_sysroot_preprocess"
+SYSROOT_DIRS_BLACKLIST += " \
+ ${bindir} \
+ ${datadir}/aclocal \
+ ${datadir}/libtool/build-aux \
+"
do_install_append () {
sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \
@@ -18,10 +22,3 @@ do_install_append () {
-e 's@^\(postdep_objects="\).*@\1"@' \
-i ${D}${bindir}/libtool
}
-
-libtool_sysroot_preprocess () {
- rm -rf ${SYSROOT_DESTDIR}${bindir}/*
- rm -rf ${SYSROOT_DESTDIR}${datadir}/aclocal/*
- rm -rf ${SYSROOT_DESTDIR}${datadir}/libtool/build-aux/*
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb b/import-layers/yocto-poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb
index a8a90fc82..a5deb2e2d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/linuxdoc-tools/linuxdoc-tools-native_0.9.69.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=077ef64ec3ac257fb0d786531cf26931"
DEPENDS = "groff-native openjade-native"
-SRC_URI = "${DEBIAN_MIRROR}/main/l/linuxdoc-tools/linuxdoc-tools_${PV}.orig.tar.gz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/l/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://disable_sgml2rtf.patch \
file://disable_txt_doc.patch \
file://disable_tex_doc.patch \
@@ -14,6 +14,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/l/linuxdoc-tools/linuxdoc-tools_${PV}.orig.tar.
SRC_URI[md5sum] = "1d13d500918a7a145b0edc2f16f61dd1"
SRC_URI[sha256sum] = "7103facee18a2ea97186ca459d743d22f7f89ad4b5cd1dfd1c34f83d6bfd4101"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/l/linuxdoc-tools/"
inherit autotools-brokensep native
do_configure () {
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch
index 9b2e96431..102fe79ab 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/make/make-3.81/make_fix_for_automake-1.12.patch
@@ -11,7 +11,7 @@ this patch avoids these kinds of errors:
| ERROR: autoreconf execution failed.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: make-3.81/configure.in
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/make/make-4.1/0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch b/import-layers/yocto-poky/meta/recipes-devtools/make/make-4.1/0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch
deleted file mode 100644
index 7a5f4ba05..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/make/make-4.1/0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 292da6f6867b75a5af7ddbb639a1feae022f438f Mon Sep 17 00:00:00 2001
-From: Paul Smith <psmith@gnu.org>
-Date: Mon, 20 Oct 2014 01:54:56 -0400
-Subject: [PATCH] * main.c (main): [SV 43434] Handle NULL returns from
- ttyname().
-
-Upstream-Status: Backport
-
-From: http://git.savannah.gnu.org/cgit/make.git/commit/?id=292da6f6867b75a5af7ddbb639a1feae022f438f
-
----
- main.c | 15 ++++++++++-----
- makeint.h | 3 ++-
- 2 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/main.c b/main.c
-index b2d169c..0cdb8a8 100644
---- a/main.c
-+++ b/main.c
-@@ -1429,13 +1429,18 @@ main (int argc, char **argv, char **envp)
- #ifdef HAVE_ISATTY
- if (isatty (fileno (stdout)))
- if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMOUT")))
-- define_variable_cname ("MAKE_TERMOUT", TTYNAME (fileno (stdout)),
-- o_default, 0)->export = v_export;
--
-+ {
-+ const char *tty = TTYNAME (fileno (stdout));
-+ define_variable_cname ("MAKE_TERMOUT", tty ? tty : DEFAULT_TTYNAME,
-+ o_default, 0)->export = v_export;
-+ }
- if (isatty (fileno (stderr)))
- if (! lookup_variable (STRING_SIZE_TUPLE ("MAKE_TERMERR")))
-- define_variable_cname ("MAKE_TERMERR", TTYNAME (fileno (stderr)),
-- o_default, 0)->export = v_export;
-+ {
-+ const char *tty = TTYNAME (fileno (stderr));
-+ define_variable_cname ("MAKE_TERMERR", tty ? tty : DEFAULT_TTYNAME,
-+ o_default, 0)->export = v_export;
-+ }
- #endif
-
- /* Reset in case the switches changed our minds. */
-diff --git a/makeint.h b/makeint.h
-index 6223936..2009f41 100644
---- a/makeint.h
-+++ b/makeint.h
-@@ -436,10 +436,11 @@ extern struct rlimit stack_limit;
- /* The number of bytes needed to represent the largest integer as a string. */
- #define INTSTR_LENGTH CSTRLEN ("18446744073709551616")
-
-+#define DEFAULT_TTYNAME "true"
- #ifdef HAVE_TTYNAME
- # define TTYNAME(_f) ttyname (_f)
- #else
--# define TTYNAME(_f) "true"
-+# define TTYNAME(_f) DEFAULT_TTYNAME
- #endif
-
-
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.1.bb
deleted file mode 100644
index 78fe0b547..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-LICENSE = "GPLv3 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://tests/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
-require make.inc
-
-SRC_URI += "file://0001-main.c-main-SV-43434-Handle-NULL-returns-from-ttynam.patch"
-
-EXTRA_OECONF += "--without-guile"
-
-SRC_URI[md5sum] = "57a7a224a822f94789a587ccbcedff69"
-SRC_URI[sha256sum] = "0bc7613389650ee6a24554b52572a272f7356164fd2c4132b0bcf13123e4fca5"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.2.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.2.1.bb
new file mode 100644
index 000000000..c6e6a0cd5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/make/make_4.2.1.bb
@@ -0,0 +1,12 @@
+LICENSE = "GPLv3 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://tests/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://glob/COPYING.LIB;md5=4a770b67e6be0f60da244beb2de0fce4"
+require make.inc
+
+EXTRA_OECONF += "--without-guile"
+
+SRC_URI[md5sum] = "15b012617e7c44c0ed482721629577ac"
+SRC_URI[sha256sum] = "d6e262bf3601b42d2b1e4ef8310029e1dcf20083c5446b4b7aa67081fdffc589"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c b/import-layers/yocto-poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
index 771f33ef5..cba768141 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
+++ b/import-layers/yocto-poky/meta/recipes-devtools/makedevs/makedevs/makedevs.c
@@ -360,7 +360,7 @@ static int interpret_table_entry(char *line)
unsigned long mode = 0755, uid = 0, gid = 0, major = 0, minor = 0;
unsigned long start = 0, increment = 1, count = 0;
- if (0 > sscanf(line, "%40s %c %lo %40s %40s %lu %lu %lu %lu %lu", path,
+ if (0 > sscanf(line, "%4095s %c %lo %40s %40s %lu %lu %lu %lu %lu", path,
&type, &mode, usr_buf, grp_buf, &major, &minor, &start,
&increment, &count))
{
@@ -510,7 +510,7 @@ int main(int argc, char **argv)
umask (0);
if (argc==1) {
- fprintf(stderr, helptext);
+ fputs( helptext , stderr );
exit(1);
}
@@ -525,7 +525,7 @@ int main(int argc, char **argv)
error_msg_and_die("%s: not a proper device table file", optarg);
break;
case 'h':
- printf(helptext);
+ puts(helptext);
exit(0);
case 'r':
case 'd': /* for compatibility with mkfs.jffs, genext2fs, etc... */
@@ -553,13 +553,13 @@ int main(int argc, char **argv)
printf("%s: %s\n", app_name, VERSION);
exit(0);
default:
- fprintf(stderr, helptext);
+ fputs(helptext,stderr);
exit(1);
}
}
if (argv[optind] != NULL) {
- fprintf(stderr, helptext);
+ fputs(helptext,stderr);
exit(1);
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage/cross-compile.patch b/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage/cross-compile.patch
index 769270972..a162eb7d1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage/cross-compile.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage/cross-compile.patch
@@ -1,13 +1,43 @@
-make the tool to be cross compilable.
+From dc2712119d6832e24a9b7bed9ed4ce5ae03ce0a3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 14 Jul 2012 14:14:07 -0700
+Subject: [PATCH] mkelfimage: Fix cross build
+
+Make the tool to be cross compilable, by separating the variables for build
+tools from those for the target. Also modified to obey LDFLAGS.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+
Upstream-Status: Pending
-Index: mkelfImage/configure.ac
-===================================================================
---- mkelfImage.orig/configure.ac 2012-07-14 14:04:48.964898667 -0700
-+++ mkelfImage/configure.ac 2012-07-14 14:10:47.800916083 -0700
-@@ -70,6 +70,9 @@
+---
+ Makefile.conf.in | 3 +++
+ configure.ac | 7 +++++--
+ linux-i386/Makefile | 2 +-
+ linux-ia64/Makefile | 2 +-
+ main/Makefile | 4 ++--
+ 5 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.conf.in b/Makefile.conf.in
+index 4645e44..dcb6cf2 100644
+--- a/Makefile.conf.in
++++ b/Makefile.conf.in
+@@ -17,6 +17,9 @@ DEFS=@DEFS@
+ LIBS=@LIBS@
+ HOST_CC=@HOST_CC@
+ HOST_CFLAGS=@HOST_CFLAGS@ $(DEFS)
++CC=@CC@
++CFLAGS=@CFLAGS@ $(DEFS)
++LDFLAGS=@LDFLAGS@
+
+ I386_CC =@I386_CC@
+ I386_LD =@I386_LD@
+diff --git a/configure.ac b/configure.ac
+index 652b952..0f2ac72 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,6 +70,9 @@ if test "with_default" != no ; then
AC_MSG_ERROR([cc not found])
fi
eval "${with_default}_CC='$CC'"
@@ -17,55 +47,60 @@ Index: mkelfImage/configure.ac
AC_PROG_CPP
if test "$CPP" = no; then
AC_MSG_ERROR([cpp not found])
-@@ -172,7 +175,6 @@
+@@ -172,8 +175,8 @@ fi
dnl ---Output variables...
-HOST_CC=$CC
- HOST_CFLAGS="$HOST_CFLAGS -O2 -Wall \$(HOST_CPPFLAGS)"
+-HOST_CFLAGS="$HOST_CFLAGS -O2 -Wall \$(HOST_CPPFLAGS)"
++CFLAGS="${CFLAGS:--O2} -Wall \$(CPPFLAGS)"
++HOST_CFLAGS="${HOST_CFLAGS:--O2} -Wall \$(HOST_CPPFLAGS)"
dnl TODO: figure out how to set these appropriately for compilers other than gcc
-Index: mkelfImage/linux-i386/Makefile
-===================================================================
---- mkelfImage.orig/linux-i386/Makefile 2012-07-14 14:04:48.964898667 -0700
-+++ mkelfImage/linux-i386/Makefile 2012-07-14 14:04:49.032898671 -0700
-@@ -4,7 +4,7 @@
+ I386_CFLAGS="$I386_CFLAGS -Os -ffreestanding -Wall -W -Wno-format \$(I386_CPPFLAGS)"
+diff --git a/linux-i386/Makefile b/linux-i386/Makefile
+index 51531d6..7e8aa3c 100644
+--- a/linux-i386/Makefile
++++ b/linux-i386/Makefile
+@@ -4,7 +4,7 @@ LI386_DEP=Makefile Makefile.conf $(LI386_DIR)/Makefile
$(LI386_OBJ)/mkelf-linux-i386.o: $(LI386_DIR)/mkelf-linux-i386.c $(LI386_DIR)/convert.bin.c $(LI386_DEP)
$(MKDIR) -p $(@D)
- $(HOST_CC) $(HOST_CFLAGS) -c -g $< -o $@
-+ $(CC) $(HOST_CFLAGS) -c -g $< -o $@
++ $(CC) $(CFLAGS) -c -g $< -o $@
ifdef I386_CC
-Index: mkelfImage/linux-ia64/Makefile
-===================================================================
---- mkelfImage.orig/linux-ia64/Makefile 2012-07-14 14:04:48.964898667 -0700
-+++ mkelfImage/linux-ia64/Makefile 2012-07-14 14:04:49.032898671 -0700
-@@ -4,7 +4,7 @@
+diff --git a/linux-ia64/Makefile b/linux-ia64/Makefile
+index 38f5d8c..5df8870 100644
+--- a/linux-ia64/Makefile
++++ b/linux-ia64/Makefile
+@@ -4,7 +4,7 @@ LIA64_DEP=Makefile Makefile.conf $(LIA64_DIR)/Makefile
$(LIA64_OBJ)/mkelf-linux-ia64.o: $(LIA64_DIR)/mkelf-linux-ia64.c $(LIA64_DIR)/convert.bin.c $(LIA64_DEP)
$(MKDIR) -p $(@D)
- $(HOST_CC) $(HOST_CFLAGS) -c -g $< -o $@
-+ $(CC) $(HOST_CFLAGS) -c -g $< -o $@
++ $(CC) $(CFLAGS) -c -g $< -o $@
ifdef IA64_CC
-Index: mkelfImage/main/Makefile
-===================================================================
---- mkelfImage.orig/main/Makefile 2012-07-14 14:04:48.964898667 -0700
-+++ mkelfImage/main/Makefile 2012-07-14 14:04:49.032898671 -0700
-@@ -4,11 +4,11 @@
+diff --git a/main/Makefile b/main/Makefile
+index 403b0a4..cd53613 100644
+--- a/main/Makefile
++++ b/main/Makefile
+@@ -4,11 +4,11 @@ MKELF_OBJS=$(OBJDIR)/main/mkelfImage.o \
$(OBJDIR)/sbin/mkelfImage: $(MKELF_OBJS) $(DEPS)
$(MKDIR) -p $(@D)
- $(HOST_CC) $(HOST_CFLAGS) $(MKELF_OBJS) -o $@ $(LIBS)
-+ $(CC) $(HOST_CFLAGS) $(MKELF_OBJS) -o $@ $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) $(MKELF_OBJS) -o $@ $(LIBS)
$(OBJDIR)/main/mkelfImage.o: main/mkelfImage.c include/mkelfImage.h $(DEPS)
$(MKDIR) -p $(@D)
- $(HOST_CC) $(HOST_CFLAGS) -c $< -o $@
-+ $(CC) $(HOST_CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/man/man8/mkelfImage.8: main/mkelfImage.man
$(MKDIR) -p $(@D)
+--
+2.8.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage_git.bb
index 92435cd1c..2bcc8d7bd 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mkelfimage/mkelfimage_git.bb
@@ -13,8 +13,8 @@ http://review.coreboot.org/gitweb?p=coreboot.git;a=commit;h=34fc4ab80b507739e258
DEPENDS += "zlib"
SRC_URI = "git://review.coreboot.org/p/coreboot;protocol=http \
- file://cross-compile.patch \
- "
+ file://cross-compile.patch \
+ "
SRC_URI_append_class-native = " \
file://fix-makefile-to-find-libz.patch \
"
@@ -24,8 +24,11 @@ CLEANBROKEN = "1"
S = "${WORKDIR}/git/util/mkelfImage"
CFLAGS += "-fno-stack-protector"
-CACHED_CONFIGUREVARS += "HOST_CC='${BUILD_CC}'"
-EXTRA_OEMAKE += "HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
+CACHED_CONFIGUREVARS += "\
+ HOST_CC='${BUILD_CC}' \
+ HOST_CFLAGS='${BUILD_CFLAGS}' \
+ HOST_CPPFLAGS='${BUILD_CPPFLAGS}' \
+"
inherit autotools-brokensep
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.40.bb b/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.40.bb
deleted file mode 100644
index 59fec29a0..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.40.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Shared library optimisation tool"
-DESCRIPTION = "mklibs produces cut-down shared libraries that contain only the routines required by a particular set of executables."
-HOMEPAGE = "https://launchpad.net/mklibs"
-SECTION = "devel"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=98d31037b13d896e33890738ef01af64"
-DEPENDS = "python-native"
-
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/m/mklibs/${BPN}_${PV}.tar.xz \
- file://ac_init_fix.patch\
- file://fix_STT_GNU_IFUNC.patch\
- file://sysrooted-ldso.patch \
- file://avoid-failure-on-symbol-provided-by-application.patch \
- file://show-GNU-unique-symbols-as-provided-symbols.patch \
- file://fix_cross_compile.patch \
-"
-
-SRC_URI[md5sum] = "e1dafe5f962caa9dc5f2651c0723812a"
-SRC_URI[sha256sum] = "1db24ae779d21ccfed49f22e49a2b7ee43ec0e9197bc206d81cd02f96e91e125"
-
-inherit autotools gettext native pythonnative
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.41.bb b/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.41.bb
new file mode 100644
index 000000000..b3c1b5ba7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.41.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Shared library optimisation tool"
+DESCRIPTION = "mklibs produces cut-down shared libraries that contain only the routines required by a particular set of executables."
+HOMEPAGE = "https://launchpad.net/mklibs"
+SECTION = "devel"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=98d31037b13d896e33890738ef01af64"
+DEPENDS = "python-native"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160207T221625Z/pool/main/m/${BPN}/${BPN}_${PV}.tar.xz \
+ file://ac_init_fix.patch\
+ file://fix_STT_GNU_IFUNC.patch\
+ file://sysrooted-ldso.patch \
+ file://avoid-failure-on-symbol-provided-by-application.patch \
+ file://show-GNU-unique-symbols-as-provided-symbols.patch \
+ file://fix_cross_compile.patch \
+"
+
+SRC_URI[md5sum] = "6b2979876a611717df3d49e7f9cf291d"
+SRC_URI[sha256sum] = "058c7349f8ec8a03b529c546a95cd6426741bd819f1e1211f499273eb4bf5d89"
+
+inherit autotools gettext native pythonnative
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 64b8910a2..0a8da19e0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -1,10 +1,10 @@
SUMMARY = "Userspace tools for MMC/SD devices"
HOMEPAGE = "http://git.kernel.org/cgit/linux/kernel/git/cjb/mmc-utils.git/"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=17;md5=d7747fc87f1eb22b946ef819969503f0"
+LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
SRCBRANCH ?= "master"
-SRCREV = "44f94b925894577f9ffcf2c418dd013a5e582648"
+SRCREV = "bb779acfc385d135b32a6998c1d1fceef0491400"
PV = "0.1"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
index cd9ae06ce..8a3afaf62 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -39,7 +39,7 @@ FILES_mtd-utils-jffs2 = "${sbindir}/mkfs.jffs2 ${sbindir}/jffs2dump ${sbindir}/j
FILES_mtd-utils-ubifs = "${sbindir}/mkfs.ubifs ${sbindir}/ubi*"
FILES_mtd-utils-misc = "${sbindir}/nftl* ${sbindir}/ftl* ${sbindir}/rfd* ${sbindir}/doc* ${sbindir}/serve_image ${sbindir}/recv_image"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
# git/.compr.c.dep:46: warning: NUL character seen; rest of line ignored
# git/.compr.c.dep:47: *** missing separator. Stop.
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch
new file mode 100644
index 000000000..1f8f8351c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools/0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch
@@ -0,0 +1,34 @@
+From 5cc8d1f96ab6d3459e13631d8356f87381562352 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Thu, 2 Jun 2016 09:49:44 +0300
+Subject: [PATCH] Continue even if fs size is not divisible by
+ sectors-per-track
+
+Filesystem with a size that is not divisible by sectors-per-track is
+not broken or invalid: it might be unoptimized on media where
+heads and cylinders actually matter but that should be it.
+
+Preserve the warning but make mtools continue even if fs size is not
+divisible by sectors-per-track.
+
+Upstream-Status: Submitted [info-mtools@gnu.org]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ init.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/init.c b/init.c
+index c9152e0..4e16a01 100644
+--- a/init.c
++++ b/init.c
+@@ -338,7 +338,6 @@ Stream_t *fs_init(char drive, int mode, int *isRop)
+ fprintf(stderr,
+ "Add mtools_skip_check=1 to your .mtoolsrc file "
+ "to skip this test\n");
+- exit(1);
+ }
+
+ /* full cylinder buffering */
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_3.9.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_3.9.9.bb
index 3423917d0..2904ff4f9 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_3.9.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_3.9.9.bb
@@ -33,7 +33,9 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/mtools-${PV}.tar.gz
file://mtools-makeinfo.patch \
file://mtools.patch \
file://no-x11.patch \
- file://fix-broken-lz.patch"
+ file://fix-broken-lz.patch \
+ file://0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch \
+ "
inherit autotools texinfo
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb
index efde547e2..b0efc9ecf 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/mtools/mtools_4.0.18.bb
@@ -29,7 +29,9 @@ SRC_URI[sha256sum] = "59e9cf80885399c4f229e5d87e49c0c2bfeec044e1386d59fcd0b0aead
SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
file://mtools-makeinfo.patch \
- file://no-x11.gplv3.patch"
+ file://no-x11.gplv3.patch \
+ file://0001-Continue-even-if-fs-size-is-not-divisible-by-sectors.patch \
+ "
inherit autotools texinfo
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.11.08.bb b/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.11.08.bb
deleted file mode 100644
index e0724e68a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.11.08.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "General-purpose x86 assembler"
-SECTION = "devel"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe"
-COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
-
-
-SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 "
-
-SRC_URI[md5sum] = "7aae5cb8e03fac48029c82a7470ab066"
-SRC_URI[sha256sum] = "9da3a0291a0bdc06305b7ba194f1e2c2b55ae6f11210b4af43729868149d5445"
-
-inherit autotools-brokensep
-
-do_configure_prepend () {
- if [ -f ${S}/aclocal.m4 ] && [ ! -f ${S}/acinclude.m4 ]; then
- mv ${S}/aclocal.m4 ${S}/acinclude.m4
- fi
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man1
-
- oe_runmake 'INSTALLROOT=${D}' install
-}
-
-BBCLASSEXTEND = "native"
-
-DEPENDS = "groff-native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.12.02.bb b/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.12.02.bb
new file mode 100644
index 000000000..9c4b60f84
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/nasm/nasm_2.12.02.bb
@@ -0,0 +1,29 @@
+SUMMARY = "General-purpose x86 assembler"
+SECTION = "devel"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=90904486f8fbf1861cf42752e1a39efe"
+COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
+
+SRC_URI = "http://www.nasm.us/pub/nasm/releasebuilds/${PV}/nasm-${PV}.tar.bz2 "
+
+SRC_URI[md5sum] = "d15843c3fb7db39af80571ee27ec6fad"
+SRC_URI[sha256sum] = "00b0891c678c065446ca59bcee64719d0096d54d6886e6e472aeee2e170ae324"
+
+inherit autotools-brokensep
+
+do_configure_prepend () {
+ if [ -f ${S}/aclocal.m4 ] && [ ! -f ${S}/acinclude.m4 ]; then
+ mv ${S}/aclocal.m4 ${S}/acinclude.m4
+ fi
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man1
+
+ oe_runmake 'INSTALLROOT=${D}' install
+}
+
+BBCLASSEXTEND = "native"
+
+DEPENDS = "groff-native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
index bc250080f..8b15b0c7e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/openjade/openjade-native_1.3.2.bb
@@ -44,10 +44,10 @@ CONFIGUREOPTS := "${@d.getVar('CONFIGUREOPTS', True).replace('--datadir=${datadi
oe_runconf[vardepsexclude] += "CONFIGUREOPTS"
CFLAGS =+ "-I${S}/include"
+CXXFLAGS += "-fno-tree-dse"
SSTATEPOSTINSTFUNCS += "openjade_sstate_postinst"
SYSROOT_PREPROCESS_FUNCS += "openjade_sysroot_preprocess"
-CLEANFUNCS += "openjade_sstate_clean"
# configure.in needs to be reloacted to trigger reautoconf
do_extraunpack () {
@@ -103,6 +103,15 @@ openjade_sstate_postinst() {
${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-openjade \
--add ${sysconfdir}/sgml/sgml-docbook.cat \
${sysconfdir}/sgml/openjade-${PV}.cat
+ cat << EOF > ${SSTATE_INST_POSTRM}
+#!/bin/sh
+# Ensure that the catalog file sgml-docbook.cat is properly
+# updated when the package is removed from sstate cache.
+files="${sysconfdir}/sgml/sgml-docbook.bak ${sysconfdir}/sgml/sgml-docbook.cat"
+for f in \$files; do
+ [ ! -f \$f ] || sed -i '/\/sgml\/openjade-${PV}.cat/d' \$f
+done
+EOF
fi
}
@@ -110,12 +119,3 @@ openjade_sysroot_preprocess () {
install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
install -m 755 ${STAGING_BINDIR_NATIVE}/install-catalog ${SYSROOT_DESTDIR}${bindir_crossscripts}/install-catalog-openjade
}
-
-openjade_sstate_clean () {
- # Ensure that the catalog file sgml-docbook.cat is properly
- # updated when the package is removed from sstate cache.
- files="${sysconfdir}/sgml/sgml-docbook.bak ${sysconfdir}/sgml/sgml-docbook.cat"
- for f in $files; do
- [ ! -f $f ] || sed -i '/\/sgml\/openjade-${PV}.cat/d' $f
- done
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-re-do-find-ls-code-to-not-fail-on-filenam.patch b/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-re-do-find-ls-code-to-not-fail-on-filenam.patch
deleted file mode 100644
index 5cbb55a7d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-re-do-find-ls-code-to-not-fail-on-filenam.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 8e424296ce2af4a5a7392c38a31f8723f9b9fbda Mon Sep 17 00:00:00 2001
-From: Denys Dmytriyenko <denys@ti.com>
-Date: Thu, 7 Apr 2016 20:43:13 -0400
-Subject: [PATCH] opkg-build: re-do find/ls code to not fail on filenames with
- spaces
-
-Signed-off-by: Denys Dmytriyenko <denys@ti.com>
----
- opkg-build | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/opkg-build b/opkg-build
-index a9ccad2..07305b2 100755
---- a/opkg-build
-+++ b/opkg-build
-@@ -6,7 +6,6 @@
- # 2003-04-25 rea@sr.unh.edu
- # Updated to work on Familiar Pre0.7rc1, with busybox tar.
- # Note it Requires: binutils-ar (since the busybox ar can't create)
--# For UID debugging it needs a better "find".
- set -e
-
- version=1.0
-@@ -47,12 +46,12 @@ pkg_appears_sane() {
-
- PKG_ERROR=0
-
-- tilde_files=`find . -name '*~'`
-+ tilde_files=`find . -name '*~' -ls -printf '\\\n'`
- if [ -n "$tilde_files" ]; then
- if [ "$noclean" = "1" ]; then
- echo "*** Warning: The following files have names ending in '~'.
- You probably want to remove them: " >&2
-- ls -ld $tilde_files
-+ echo -e $tilde_files
- if [ $? -ne 0 ]; then
- echo "*** Error: Fail to list files have names ending in '~'."
- exit 1
-@@ -64,12 +63,12 @@ You probably want to remove them: " >&2
- fi
- fi
-
-- large_uid_files=`find . -uid +99 || true`
-+ large_uid_files=`find . -uid +99 -ls -printf '\\\n' || true`
-
- if [ "$ogargs" = "" ] && [ -n "$large_uid_files" ]; then
- echo "*** Warning: The following files have a UID greater than 99.
- You probably want to chown these to a system user: " >&2
-- ls -ld $large_uid_files
-+ echo -e $large_uid_files
- if [ $? -ne 0 ]; then
- echo "*** Error: Fail to list files have a UID greater than 99."
- exit 1
---
-2.2.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/opkg-build-Exit-when-fail-to-list-files.patch b/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/opkg-build-Exit-when-fail-to-list-files.patch
deleted file mode 100644
index 6c66902ef..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils/opkg-build-Exit-when-fail-to-list-files.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-We have an issue when ls segfaults in some cases [1] so it's
-better to detect the failure at this level instead of continue
-the build process.
-
-[YOCTO #8926]
-
-Upstream-Status: Submitted [2]
-
-[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=8926#c0
-[2] https://groups.google.com/forum/#!topic/opkg-devel/cmX02bgHZms
-
-Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
----
- opkg-build | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/opkg-build b/opkg-build
-index 98008b6..a9ccad2 100755
---- a/opkg-build
-+++ b/opkg-build
-@@ -53,6 +53,10 @@ pkg_appears_sane() {
- echo "*** Warning: The following files have names ending in '~'.
- You probably want to remove them: " >&2
- ls -ld $tilde_files
-+ if [ $? -ne 0 ]; then
-+ echo "*** Error: Fail to list files have names ending in '~'."
-+ exit 1
-+ fi
- echo >&2
- else
- echo "*** Removing the following files: $tilde_files"
-@@ -66,6 +70,10 @@ You probably want to remove them: " >&2
- echo "*** Warning: The following files have a UID greater than 99.
- You probably want to chown these to a system user: " >&2
- ls -ld $large_uid_files
-+ if [ $? -ne 0 ]; then
-+ echo "*** Error: Fail to list files have a UID greater than 99."
-+ exit 1
-+ fi
- echo >&2
- fi
-
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
index 8873b2870..a7aec45f8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/opkg-utils/opkg-utils_git.bb
@@ -1,18 +1,16 @@
SUMMARY = "Additional utilities for the opkg package manager"
SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system"
SECTION = "base"
-HOMEPAGE = "http://code.google.com/p/opkg/"
+HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://opkg.py;beginline=1;endline=18;md5=15917491ad6bf7acc666ca5f7cc1e083"
PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}"
-SRCREV = "53274f087565fd45d8452c5367997ba6a682a37a"
-PV = "0.1.8+git${SRCPV}"
+SRCREV = "3ffece9bf19a844edacc563aa092fd1fbfcffeee"
+PV = "0.3.2+git${SRCPV}"
-SRC_URI = "git://git.yoctoproject.org/opkg-utils \
- file://opkg-build-Exit-when-fail-to-list-files.patch \
- file://0001-opkg-build-re-do-find-ls-code-to-not-fail-on-filenam.patch"
+SRC_URI = "git://git.yoctoproject.org/opkg-utils"
SRC_URI_append_class-native = " file://tar_ignore_error.patch"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-configure.ac-use-pkg-config-for-libsolv.patch b/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-configure.ac-use-pkg-config-for-libsolv.patch
deleted file mode 100644
index e67ec7479..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-configure.ac-use-pkg-config-for-libsolv.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2a43027f7ecf2bb3ce73f95bcf575c56bc495d07 Mon Sep 17 00:00:00 2001
-From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
-Date: Wed, 9 Dec 2015 17:38:05 -0600
-Subject: [PATCH] configure.ac: use pkg-config for libsolv
-
-Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
----
- configure.ac | 12 +-----------
- 1 file changed, 1 insertion(+), 11 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 52e1025..d17dc5c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -159,17 +159,7 @@ if test "x$want_solver" != "xno"; then
- AC_MSG_ERROR(Specify which solver with --enable-solver=<SOLVER>)],
- [libsolv],
- [AC_MSG_RESULT(libsolv)
--
-- SOLVER_CFLAGS="-I/usr/local/include/"
-- SOLVER_LIBS="-lsolv -lsolvext"
-- AC_CHECK_LIB([solv],
-- [solver_solve],
-- [],
-- [AC_MSG_ERROR(libsolv not found)])
-- dnl TODO: remove previous 6 lines and uncomment line below to use
-- dnl pkg-config once there is a release of libsolv with pkg-config:
-- dnl PKG_CHECK_MODULES(SOLVER, libsolv)
--
-+ PKG_CHECK_MODULES(SOLVER, libsolv)
- AC_DEFINE(HAVE_SOLVER_LIBSOLV,1,[Define if you want to use libsolv])],
- # default
- [AC_MSG_RESULT(no)
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-libsolv_solver_set_arch_policy-use-correct-logic-dur.patch b/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-libsolv_solver_set_arch_policy-use-correct-logic-dur.patch
deleted file mode 100644
index 1ab1790d6..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg/0001-libsolv_solver_set_arch_policy-use-correct-logic-dur.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3e562bed7dced25eb3e9174ca9395324b6c873c1 Mon Sep 17 00:00:00 2001
-From: Alejandro del Castillo <alejandro.delcastillo@ni.com>
-Date: Wed, 9 Dec 2015 13:36:14 -0600
-Subject: [PATCH] libsolv_solver_set_arch_policy: use correct logic during
- archs resizing
-
-If there are more than INITIAL_ARCH_LIST_SIZE archs defined in the
-configuration, libsolv_solver_set_arch_policy crashes due to flawed
-logic when resizing the archs array.
-
-Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
----
- libopkg/opkg_solver_libsolv.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libopkg/opkg_solver_libsolv.c b/libopkg/opkg_solver_libsolv.c
-index 1cdcf1f..b5af0fa 100644
---- a/libopkg/opkg_solver_libsolv.c
-+++ b/libopkg/opkg_solver_libsolv.c
-@@ -66,8 +66,10 @@ static void libsolv_solver_set_arch_policy(libsolv_solver_t *libsolv_solver)
- nv_pair_list_elt_t *arch_info;
-
- list_for_each_entry(arch_info, &opkg_config->arch_list.head, node) {
-- if (arch_count > arch_list_size)
-- archs = xrealloc(archs, arch_list_size *= 2);
-+ if (arch_count >= arch_list_size) {
-+ arch_list_size *= 2;
-+ archs = xrealloc(archs, arch_list_size * sizeof(arch_data_t));
-+ }
-
- archs[arch_count].arch = ((nv_pair_t *)(arch_info->data))->name;
- archs[arch_count].priority = atoi(((nv_pair_t *)
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.1.bb
deleted file mode 100644
index 577f49534..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.1.bb
+++ /dev/null
@@ -1,75 +0,0 @@
-SUMMARY = "Open Package Manager"
-SUMMARY_libopkg = "Open Package Manager library"
-SECTION = "base"
-HOMEPAGE = "http://code.google.com/p/opkg/"
-BUGTRACKER = "http://code.google.com/p/opkg/issues/list"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://src/opkg.c;beginline=2;endline=21;md5=90435a519c6ea69ef22e4a88bcc52fa0"
-
-DEPENDS = "libarchive"
-
-PE = "1"
-
-SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
- file://opkg-configure.service \
- file://opkg.conf \
- file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
- file://0001-libsolv_solver_set_arch_policy-use-correct-logic-dur.patch \
- file://0001-configure.ac-use-pkg-config-for-libsolv.patch \
-"
-
-SRC_URI[md5sum] = "43735e5dc1ebf46bd6ce56a7cdfdc720"
-SRC_URI[sha256sum] = "d2c6c02a8384ec21168a1f0a186cb5e9f577d1452f491d02ed3e56b2ea8b87df"
-
-inherit autotools pkgconfig systemd
-
-SYSTEMD_SERVICE_${PN} = "opkg-configure.service"
-
-target_localstatedir := "${localstatedir}"
-OPKGLIBDIR = "${target_localstatedir}/lib"
-
-PACKAGECONFIG ??= ""
-
-PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
-PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256"
-PACKAGECONFIG[pathfinder] = "--enable-pathfinder,--disable-pathfinder,pathfinder"
-PACKAGECONFIG[libsolv] = "--enable-solver=libsolv,--disable-solver,libsolv"
-
-do_install_append () {
- install -d ${D}${sysconfdir}/opkg
- install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
- echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf
-
- # We need to create the lock directory
- install -d ${D}${OPKGLIBDIR}/opkg
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/opkg-configure.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@BINDIR@,${bindir},g' \
- -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
- ${D}${systemd_unitdir}/system/opkg-configure.service
- fi
-}
-
-RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config run-postinsts libarchive"
-RDEPENDS_${PN}_class-native = ""
-RDEPENDS_${PN}_class-nativesdk = ""
-RREPLACES_${PN} = "opkg-nogpg opkg-collateral"
-RCONFLICTS_${PN} = "opkg-collateral"
-RPROVIDES_${PN} = "opkg-collateral"
-
-PACKAGES =+ "libopkg"
-
-FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
-FILES_${PN} += "${systemd_unitdir}/system/"
-
-BBCLASSEXTEND = "native nativesdk"
-
-CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.3.bb
new file mode 100644
index 000000000..bce72fcd2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/opkg/opkg_0.3.3.bb
@@ -0,0 +1,73 @@
+SUMMARY = "Open Package Manager"
+SUMMARY_libopkg = "Open Package Manager library"
+SECTION = "base"
+HOMEPAGE = "http://code.google.com/p/opkg/"
+BUGTRACKER = "http://code.google.com/p/opkg/issues/list"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://src/opkg.c;beginline=2;endline=21;md5=90435a519c6ea69ef22e4a88bcc52fa0"
+
+DEPENDS = "libarchive"
+
+PE = "1"
+
+SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
+ file://opkg-configure.service \
+ file://opkg.conf \
+ file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
+"
+
+SRC_URI[md5sum] = "a4613038c8afc7d8d482f5c53f137bdf"
+SRC_URI[sha256sum] = "19db9e73121a5e4c91fa228b0a6a4c55cc3591056130cfb3c66c30aa32f8d00e"
+
+inherit autotools pkgconfig systemd
+
+SYSTEMD_SERVICE_${PN} = "opkg-configure.service"
+
+target_localstatedir := "${localstatedir}"
+OPKGLIBDIR = "${target_localstatedir}/lib"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,gpgme libgpg-error,gnupg"
+PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
+PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256"
+PACKAGECONFIG[pathfinder] = "--enable-pathfinder,--disable-pathfinder,pathfinder"
+PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}/opkg
+ install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf
+ echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf
+
+ # We need to create the lock directory
+ install -d ${D}${OPKGLIBDIR}/opkg
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/opkg-configure.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
+ ${D}${systemd_unitdir}/system/opkg-configure.service
+ fi
+}
+
+RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config run-postinsts libarchive"
+RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN}_class-nativesdk = ""
+RREPLACES_${PN} = "opkg-nogpg opkg-collateral"
+RCONFLICTS_${PN} = "opkg-collateral"
+RPROVIDES_${PN} = "opkg-collateral"
+
+PACKAGES =+ "libopkg"
+
+FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/"
+FILES_${PN} += "${systemd_unitdir}/system/"
+
+BBCLASSEXTEND = "native nativesdk"
+
+CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.24.bb b/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.24.bb
deleted file mode 100644
index 520f88d92..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.24.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Optimised Inner Loop Runtime Compiler"
-HOMEPAGE = "http://gstreamer.freedesktop.org/modules/orc.html"
-LICENSE = "BSD-2-Clause & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1400bd9d09e8af56b9ec982b3d85797e"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/orc/orc-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "9e793ec34c0e20339659dd4bbbf62135"
-SRC_URI[sha256sum] = "338cd493b5247300149821c6312bdf7422a3593ae98691fc75d7e4fe727bd39b"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
-
-PACKAGES =+ "orc-examples"
-PACKAGES_DYNAMIC += "^liborc-.*"
-FILES_orc-examples = "${libdir}/orc/*"
-FILES_${PN} = "${bindir}/*"
-
-python populate_packages_prepend () {
- libdir = d.expand('${libdir}')
- do_split_packages(d, libdir, '^lib(.*)\.so\.*', 'lib%s', 'ORC %s library', extra_depends='', allow_links=True)
-}
-
-do_compile_prepend_class-native () {
- sed -i -e 's#/tmp#.#g' ${S}/orc/orccodemem.c
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.25.bb b/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.25.bb
new file mode 100644
index 000000000..897493a7d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/orc/orc_0.4.25.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Optimised Inner Loop Runtime Compiler"
+HOMEPAGE = "http://gstreamer.freedesktop.org/modules/orc.html"
+LICENSE = "BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1400bd9d09e8af56b9ec982b3d85797e"
+
+SRC_URI = "http://gstreamer.freedesktop.org/src/orc/orc-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "8582a28b15f53110c88d8043d9f55bcf"
+SRC_URI[sha256sum] = "c1b1d54a58f26d483f0b3881538984789fe5d5460ab8fab74a1cacbd3d1c53d1"
+
+inherit autotools pkgconfig gtk-doc
+
+BBCLASSEXTEND = "native nativesdk"
+
+PACKAGES =+ "orc-examples"
+PACKAGES_DYNAMIC += "^liborc-.*"
+FILES_orc-examples = "${libdir}/orc/*"
+FILES_${PN} = "${bindir}/*"
+
+python populate_packages_prepend () {
+ libdir = d.expand('${libdir}')
+ do_split_packages(d, libdir, '^lib(.*)\.so\.*', 'lib%s', 'ORC %s library', extra_depends='', allow_links=True)
+}
+
+do_compile_prepend_class-native () {
+ sed -i -e 's#/tmp#.#g' ${S}/orc/orccodemem.c
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid/install-pc.patch b/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid/install-pc.patch
index 04222cbf7..63b80f6a1 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid/install-pc.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid/install-pc.patch
@@ -2,7 +2,7 @@ uuid.pc is generated at build time so should be installed from the current
directory, and not $S.
Upstream-Status: Pending [should be submitted]
-Signed-Off-By: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Ross Burton <ross.burton@intel.com>
Index: uuid-1.6.2/Makefile.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
index 08926ba6b..85a1bcf5c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ossp-uuid/ossp-uuid_1.6.2.bb
@@ -16,8 +16,9 @@ LIC_FILES_CHKSUM = "file://README;beginline=30;endline=55;md5=b394fadb039bbfca6a
file://uuid_md5.c;beginline=1;endline=28;md5=9c1f4b2218546deae24c91be1dcf00dd"
PR = "r2"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/o/ossp-uuid/"
-SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://0001-Change-library-name.patch \
file://0002-uuid-preserve-m-option-status-in-v-option-handling.patch \
file://0003-Fix-whatis-entries.patch \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb b/import-layers/yocto-poky/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb
index e83186005..edee474ec 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/packagegroups/packagegroup-core-device-devel.bb
@@ -1,5 +1,4 @@
SUMMARY = "Provides a small set of tools for development on the device"
-LICENSE = "MIT"
PR = "r1"
@@ -11,8 +10,7 @@ RCONFLICTS_${PN} = "qemu-config"
RDEPENDS_${PN} = "\
distcc-config \
- oprofileui-server \
nfs-export-root \
bash \
+ binutils-symlinks \
"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch
new file mode 100644
index 000000000..49050a18d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Increase-maxSize-to-64MB.patch
@@ -0,0 +1,46 @@
+From e3658740ec100e4c8cf83295460b032979e1a99a Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Fri, 9 Sep 2016 18:21:32 -0300
+Subject: [PATCH] Increase maxSize to 64MB
+Organization: O.S. Systems Software LTDA.
+
+Fix error:
+
+/
+|ERROR: qemu-native-2.5.0-r1 do_populate_sysroot_setscene: '('patchelf-uninative',
+|'--set-interpreter', '../build/tmp/sysroots-uninative/x86_64-linux/lib/
+|ld-linux-x86-64.so.2', '../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/
+|sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64')'
+|failed with exit code 1 and the following output:
+|warning: working around a Linux kernel bug by creating a hole of 36032512
+|bytes in â€../build/tmp/work/x86_64-linux/qemu-native/2.5.0-r1/
+|sstate-install-populate_sysroot/x86_64-linux/usr/bin/qemu-mips64’
+|maximum file size exceeded
+\
+
+Similar issue is discussed here:
+https://github.com/NixOS/patchelf/issues/47
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ src/patchelf.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index a59c12d..0fd7355 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -279,7 +279,7 @@ static void readFile(string fileName)
+ struct stat st;
+ if (stat(fileName.c_str(), &st) != 0) error("stat");
+ fileSize = st.st_size;
+- maxSize = fileSize + 32 * 1024 * 1024;
++ maxSize = fileSize + 64 * 1024 * 1024;
+
+ contents = (unsigned char *) malloc(fileSize + maxSize);
+ if (!contents) abort();
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch
new file mode 100644
index 000000000..9ee8a554a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/Skip-empty-section-fixes-66.patch
@@ -0,0 +1,30 @@
+From 73526cb546ae6b00ea6169e40b01fb7b5f0dbb50 Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Thu, 28 Jul 2016 11:05:06 -0300
+Subject: [PATCH] Skip empty section (fixes #66)
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ src/patchelf.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 136098f..2677a26 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -684,6 +684,9 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsExecutable()
+ for (unsigned int i = 1; i <= lastReplaced; ++i) {
+ Elf_Shdr & shdr(shdrs[i]);
+ string sectionName = getSectionName(shdr);
++ if (sectionName == "") {
++ continue;
++ }
+ debug("looking at section `%s'\n", sectionName.c_str());
+ /* !!! Why do we stop after a .dynstr section? I can't
+ remember! */
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
new file mode 100644
index 000000000..9fafec4b5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/handle-read-only-files.patch
@@ -0,0 +1,53 @@
+From 2a603acb65993698c21f1c6eb7664f93ad830d52 Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Fri, 9 Sep 2016 16:00:42 -0300
+Subject: [PATCH] handle read-only files
+Organization: O.S. Systems Software LTDA.
+
+Patch from:
+https://github.com/darealshinji/patchelf/commit/40e66392bc4b96e9b4eda496827d26348a503509
+
+Upstream-Status: Pending
+
+Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+---
+ src/patchelf.cc | 16 +++++++++++++++-
+ 1 file changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 136098f..aea360e 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -388,7 +388,17 @@ void ElfFile<ElfFileParamNames>::sortShdrs()
+
+ static void writeFile(string fileName)
+ {
+- int fd = open(fileName.c_str(), O_TRUNC | O_WRONLY);
++ struct stat st;
++ int fd;
++
++ if (stat(fileName.c_str(), &st) != 0)
++ error("stat");
++
++ if (chmod(fileName.c_str(), 0600) != 0)
++ error("chmod");
++
++ fd = open(fileName.c_str(), O_TRUNC | O_WRONLY);
++
+ if (fd == -1)
+ error("open");
+
+@@ -397,6 +407,10 @@ static void writeFile(string fileName)
+
+ if (close(fd) != 0)
+ error("close");
++
++ if (chmod(fileName.c_str(), st.st_mode) != 0)
++ error("chmod");
++
+ }
+
+
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/maxsize.patch b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/maxsize.patch
deleted file mode 100644
index cc04a89e6..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf/maxsize.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From f6886c2c33a1cf8771163919f3d20f6340c0ce38 Mon Sep 17 00:00:00 2001
-From: Eelco Dolstra <eelco.dolstra@logicblox.com>
-Date: Fri, 10 Jul 2015 18:12:37 +0200
-Subject: [PATCH] Quick fix for #47
-
-https://github.com/NixOS/patchelf/issues/47
-
-Avoid issues with holes in binaries such as qemu-pcc from qemu-native.
-
-Upstream-Status: Submitted
-RP
-2016/2/3
-
----
- src/patchelf.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/patchelf.cc b/src/patchelf.cc
-index 8566ed9..df75593 100644
---- a/src/patchelf.cc
-+++ b/src/patchelf.cc
-@@ -248,7 +248,7 @@ static void readFile(string fileName, mode_t * fileMode)
- if (stat(fileName.c_str(), &st) != 0) error("stat");
- fileSize = st.st_size;
- *fileMode = st.st_mode;
-- maxSize = fileSize + 8 * 1024 * 1024;
-+ maxSize = fileSize + 64 * 1024 * 1024;
-
- contents = (unsigned char *) malloc(fileSize + maxSize);
- if (!contents) abort(); \ No newline at end of file
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.8.bb b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.8.bb
deleted file mode 100644
index 8484a7e58..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.8.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \
- file://maxsize.patch"
-LICENSE = "GPLv3"
-SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
-
-SRC_URI[md5sum] = "5b151e3c83b31f5931b4a9fc01635bfd"
-SRC_URI[sha256sum] = "c99f84d124347340c36707089ec8f70530abd56e7827c54d506eb4cc097a17e7"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit autotools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb
new file mode 100644
index 000000000..54e654bdc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/patchelf/patchelf_0.9.bb
@@ -0,0 +1,17 @@
+SRC_URI = "http://nixos.org/releases/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.bz2 \
+ file://Skip-empty-section-fixes-66.patch \
+ file://handle-read-only-files.patch \
+ file://Increase-maxSize-to-64MB.patch \
+"
+
+LICENSE = "GPLv3"
+SUMMARY = "Tool to allow editing of RPATH and interpreter fields in ELF binaries"
+
+SRC_URI[md5sum] = "d02687629c7e1698a486a93a0d607947"
+SRC_URI[sha256sum] = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+inherit autotools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.5.bb
deleted file mode 100644
index a887c037d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.5.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Security-focused ELF files checking tool"
-DESCRIPTION = "This is a small set of various PaX aware and related \
-utilities for ELF binaries. It can check ELF binary files and running \
-processes for issues that might be relevant when using ELF binaries \
-along with PaX, such as non-PIC code or executable stack and heap."
-HOMEPAGE = "http://www.gentoo.org/proj/en/hardened/pax-utils.xml"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
-
-SRC_URI = "http://gentoo.osuosl.org/distfiles/pax-utils-${PV}.tar.xz \
-"
-
-SRC_URI[md5sum] = "bc3614322eaf88f167a608ae85d6b207"
-SRC_URI[sha256sum] = "2945b3e4df2e0dc95800bfbd3d88ab2243b2ee4ff064bbfc75734f6d9d986a89"
-
-RDEPENDS_${PN} += "bash"
-
-do_configure_prepend() {
- touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog ${S}/README
-}
-
-do_install() {
- oe_runmake PREFIX=${D}${prefix} DESTDIR=${D} install
-}
-
-BBCLASSEXTEND = "native"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
-"
-PACKAGECONFIG[libcap] = "--with-caps, --without-caps, libcap"
-PACKAGECONFIG[libseccomp] = "--with-seccomp, --without-seccomp, libseccomp"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[pyelftools] = "--with-python, --without-python,, pyelftools"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.6.bb b/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.6.bb
new file mode 100644
index 000000000..5cc546301
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pax-utils/pax-utils_1.1.6.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Security-focused ELF files checking tool"
+DESCRIPTION = "This is a small set of various PaX aware and related \
+utilities for ELF binaries. It can check ELF binary files and running \
+processes for issues that might be relevant when using ELF binaries \
+along with PaX, such as non-PIC code or executable stack and heap."
+HOMEPAGE = "http://www.gentoo.org/proj/en/hardened/pax-utils.xml"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "http://gentoo.osuosl.org/distfiles/pax-utils-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "96f56a5a10ed50f2448c5ccebd27764f"
+SRC_URI[sha256sum] = "f5436c517bea40f7035ec29a6f34034c739b943f2e3a080d76df5dfd7fd41b12"
+
+RDEPENDS_${PN} += "bash"
+
+do_configure_prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog ${S}/README
+}
+
+do_install() {
+ oe_runmake PREFIX=${D}${prefix} DESTDIR=${D} install
+}
+
+BBCLASSEXTEND = "native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
+"
+PACKAGECONFIG[libcap] = "--with-caps, --without-caps, libcap"
+PACKAGECONFIG[libseccomp] = "--with-seccomp, --without-seccomp, libseccomp"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[pyelftools] = "--with-python, --without-python,, pyelftools"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb
index 9561a5955..3acd82686 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/libxml-parser-perl_2.44.bb
@@ -3,7 +3,7 @@ SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://README;beginline=2;endline=6;md5=c8767d7516229f07b26e42d1cf8b51f1"
-DEPENDS += "expat expat-native"
+DEPENDS += "expat"
SRC_URI = "http://www.cpan.org/modules/by-module/XML/XML-Parser-${PV}.tar.gz"
SRC_URI[md5sum] = "af4813fe3952362451201ced6fbce379"
@@ -32,4 +32,3 @@ do_compile_class-native() {
}
BBCLASSEXTEND="native"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb
index ed8222f24..1c21522be 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-native_5.22.1.bb
@@ -11,6 +11,7 @@ SRC_URI += "\
file://debian/errno_ver.diff \
file://dynaloaderhack.patch \
file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \
+ file://perl-remove-nm-from-libswanted.patch \
"
SRC_URI[md5sum] = "6671e4829cbaf9cecafa9a84f141b0a3"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc
index 948ea7cdd..d136c5c0e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-ptest.inc
@@ -5,10 +5,11 @@ SRC_URI += "file://run-ptest \
do_install_ptest () {
mkdir -p ${D}${PTEST_PATH}
+ sed -e "s:\/usr\/local:${bindir}:g" -i cpan/version/t/*
sed -e "s:\/opt:\/usr:" -i Porting/add-package.pl
sed -e "s:\/local\/gnu\/:\/:" -i hints/cxux.sh
- tar -cf - * --exclude \*.o --exclude libperl.so --exclude Makefile --exclude makefile --exclude hostperl \
- --exclude miniperl --exclude generate_uudmap --exclude patches | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=\*.o --exclude=libperl.so --exclude=Makefile --exclude=makefile --exclude=hostperl \
+ --exclude=miniperl --exclude=generate_uudmap --exclude=patches * | ( cd ${D}${PTEST_PATH} && tar -x )
sed -i -e "s,${D},,g" \
-e "s,--sysroot=${STAGING_DIR_HOST},,g" \
@@ -34,4 +35,4 @@ python populate_packages_prepend() {
'${PN}-ptest%s', '%s', recursive=True, match_path=True)
}
-RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed"
+RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed libssp"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc
index 830ecce53..2c497fe6a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl-rdepends_5.22.1.inc
@@ -18,8 +18,9 @@ RDEPENDS_${PN}-pod += "perl"
# Some additional dependencies that the above doesn't manage to figure out
RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix"
-DEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc"
+RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc"
RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes"
+RDEPENDS_${PN}-module-overload += "${PN}-module-overloading"
# Depends list
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh
index 59e016e4d..b2a7f2cc4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/config.sh
@@ -8,7 +8,7 @@
# Package name : perl5
# Source directory : .
-# Configuration time: Thu Jun 18 05:37:27 UTC 2015
+# Configuration time: Fri May 6 20:13:46 PDT 2016
# Configured by : Open Embedded
# Target system : linux qemux86-64 3.19.5-yocto-standard #1 smp preempt tue jun 16 00:28:17 pdt 2015 x86_64 gnulinux
@@ -66,7 +66,7 @@ aphostname=''
api_revision='5'
api_subversion='0'
api_version='22'
-api_versionstring='5.22.1'
+api_versionstring='5.22.0'
ar='ar'
archlib='@LIBDIR@/perl/5.22.1/@ARCH@-thread-multi'
archlibexp='@STAGINGDIR@@LIBDIR@/perl/5.22.1/@ARCH@-thread-multi'
@@ -96,7 +96,7 @@ ccsymbols=''
ccversion=''
cf_by='Open Embedded'
cf_email='Open Embedded@localhost.localdomain'
-cf_time='Thu Jun 18 05:37:27 UTC 2015'
+cf_time='Fri May 6 20:13:46 PDT 2016'
charbits='8'
charsize='1'
chgrp=''
@@ -1194,7 +1194,7 @@ vendorprefixexp='@EXECPREFIX@'
vendorscript='@USRBIN@'
vendorscriptexp='@USRBIN@'
version='5.22.1'
-version_patchlevel_string='version 22 subversion 0'
+version_patchlevel_string='version 22 subversion 1'
versiononly='undef'
vi=''
xlibpth='@LIBDIR@/386 @BASELIBDIR@386'
@@ -1204,7 +1204,7 @@ zcat=''
zip='zip'
PERL_REVISION=5
PERL_VERSION=22
-PERL_SUBVERSION=0
+PERL_SUBVERSION=1
PERL_API_REVISION=5
PERL_API_VERSION=22
PERL_API_SUBVERSION=0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch
index 69ac43477..76501283e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/fix_bad_rpath.patch
@@ -1,5 +1,5 @@
Upstream-Status:Inappropriate [embedded specific]
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011/07/01
Fix these Package QA warnings before they are converted into fetal errors:
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh
index e72ce49f9..25e7f8b96 100755
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-configure.sh
@@ -15,7 +15,7 @@ echo sh Configure -des \
-Dprefix=/usr \
-Dvendorprefix=/usr \
-Dsiteprefix=/usr \
- -Dotherlibdirs=/usr/lib/perl5/5.12.3 \
+ -Dotherlibdirs=/usr/lib/perl5/5.22.1 \
-Duseshrplib \
-Dusethreads \
-Duseithreads \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch
new file mode 100644
index 000000000..7b4a0015c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2015-8607.patch
@@ -0,0 +1,74 @@
+From 652c8d4852a69f1bb4d387946f9b76350a1f0d0e Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 15 Dec 2015 10:56:54 +1100
+Subject: [PATCH] perl: fix CVE-2015-8607
+
+ensure File::Spec::canonpath() preserves taint
+
+Previously the unix specific XS implementation of canonpath() would
+return an untainted path when supplied a tainted path.
+
+For the empty string case, newSVpvs() already sets taint as needed on
+its result.
+
+This issue was assigned CVE-2015-8607. [perl #126862]
+
+Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/0b6f93036de171c12ba95d415e264d9cf7f4e1fd
+
+Upstream-Status: Backport
+CVE: CVE-2015-8607
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ dist/PathTools/Cwd.xs | 1 +
+ dist/PathTools/t/taint.t | 19 ++++++++++++++++++-
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/dist/PathTools/Cwd.xs b/dist/PathTools/Cwd.xs
+index 9d4dcf0..3d018dc 100644
+--- a/dist/PathTools/Cwd.xs
++++ b/dist/PathTools/Cwd.xs
+@@ -535,6 +535,7 @@ THX_unix_canonpath(pTHX_ SV *path)
+ *o = 0;
+ SvPOK_on(retval);
+ SvCUR_set(retval, o - SvPVX(retval));
++ SvTAINT(retval);
+ return retval;
+ }
+
+diff --git a/dist/PathTools/t/taint.t b/dist/PathTools/t/taint.t
+index 309b3e5..48f8c5b 100644
+--- a/dist/PathTools/t/taint.t
++++ b/dist/PathTools/t/taint.t
+@@ -12,7 +12,7 @@ use Test::More;
+ BEGIN {
+ plan(
+ ${^TAINT}
+- ? (tests => 17)
++ ? (tests => 21)
+ : (skip_all => "A perl without taint support")
+ );
+ }
+@@ -34,3 +34,20 @@ foreach my $func (@Functions) {
+
+ # Previous versions of Cwd tainted $^O
+ is !tainted($^O), 1, "\$^O should not be tainted";
++
++{
++ # [perl #126862] canonpath() loses taint
++ my $tainted = substr($ENV{PATH}, 0, 0);
++ # yes, getcwd()'s result should be tainted, and is tested above
++ # but be sure
++ ok tainted(File::Spec->canonpath($tainted . Cwd::getcwd)),
++ "canonpath() keeps taint on non-empty string";
++ ok tainted(File::Spec->canonpath($tainted)),
++ "canonpath() keeps taint on empty string";
++
++ (Cwd::getcwd() =~ /^(.*)/);
++ my $untainted = $1;
++ ok !tainted($untainted), "make sure our untainted value is untainted";
++ ok !tainted(File::Spec->canonpath($untainted)),
++ "canonpath() doesn't add taint to untainted string";
++}
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch
new file mode 100644
index 000000000..730ef178a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-1238.patch
@@ -0,0 +1,352 @@
+From 9987be3d24286d96d9dccec0433253ee8ad894b4 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Tue, 21 Jun 2016 10:02:02 +1000
+Subject: [PATCH] perl: fix CVE-2016-1238
+
+(perl #127834) remove . from the end of @INC if complex modules are loaded
+
+While currently Encode and Storable are know to attempt to load modules
+not included in the core, updates to other modules may lead to those
+also attempting to load new modules, so be safe and remove . for those
+as well.
+
+Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/cee96d52c39b1e7b36e1c62d38bcd8d86e9a41ab
+
+Upstream-Status: Backport
+CVE: CVE-2016-1238
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ cpan/Archive-Tar/bin/ptar | 1 +
+ cpan/Archive-Tar/bin/ptardiff | 1 +
+ cpan/Archive-Tar/bin/ptargrep | 1 +
+ cpan/CPAN/scripts/cpan | 1 +
+ cpan/Digest-SHA/shasum | 1 +
+ cpan/Encode/bin/enc2xs | 1 +
+ cpan/Encode/bin/encguess | 1 +
+ cpan/Encode/bin/piconv | 1 +
+ cpan/Encode/bin/ucmlint | 1 +
+ cpan/Encode/bin/unidump | 1 +
+ cpan/ExtUtils-MakeMaker/bin/instmodsh | 1 +
+ cpan/IO-Compress/bin/zipdetails | 1 +
+ cpan/JSON-PP/bin/json_pp | 1 +
+ cpan/Test-Harness/bin/prove | 1 +
+ dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp | 1 +
+ dist/Module-CoreList/corelist | 1 +
+ ext/Pod-Html/bin/pod2html | 1 +
+ utils/c2ph.PL | 1 +
+ utils/h2ph.PL | 2 ++
+ utils/h2xs.PL | 2 ++
+ utils/libnetcfg.PL | 1 +
+ utils/perlbug.PL | 1 +
+ utils/perldoc.PL | 5 ++++-
+ utils/perlivp.PL | 2 ++
+ utils/splain.PL | 6 ++++++
+ 25 files changed, 36 insertions(+), 1 deletion(-)
+
+diff --git a/cpan/Archive-Tar/bin/ptar b/cpan/Archive-Tar/bin/ptar
+index 0eaffa7..9dc6402 100644
+--- a/cpan/Archive-Tar/bin/ptar
++++ b/cpan/Archive-Tar/bin/ptar
+@@ -1,6 +1,7 @@
+ #!/usr/bin/perl
+ use strict;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Find;
+ use Getopt::Std;
+ use Archive::Tar;
+diff --git a/cpan/Archive-Tar/bin/ptardiff b/cpan/Archive-Tar/bin/ptardiff
+index 66bd859..4668fa6 100644
+--- a/cpan/Archive-Tar/bin/ptardiff
++++ b/cpan/Archive-Tar/bin/ptardiff
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Archive::Tar;
+ use Getopt::Std;
+diff --git a/cpan/Archive-Tar/bin/ptargrep b/cpan/Archive-Tar/bin/ptargrep
+index 1a320f1..8dc6b4f 100644
+--- a/cpan/Archive-Tar/bin/ptargrep
++++ b/cpan/Archive-Tar/bin/ptargrep
+@@ -4,6 +4,7 @@
+ # archive. See 'ptargrep --help' for more documentation.
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+
+diff --git a/cpan/CPAN/scripts/cpan b/cpan/CPAN/scripts/cpan
+index 5f4320e..ccba47e 100644
+--- a/cpan/CPAN/scripts/cpan
++++ b/cpan/CPAN/scripts/cpan
+@@ -1,5 +1,6 @@
+ #!/usr/local/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use vars qw($VERSION);
+
+diff --git a/cpan/Digest-SHA/shasum b/cpan/Digest-SHA/shasum
+index 14ddd60..62a2b0e 100644
+--- a/cpan/Digest-SHA/shasum
++++ b/cpan/Digest-SHA/shasum
+@@ -13,6 +13,7 @@
+ ## "-0" option for reading bit strings, and
+ ## "-p" option for portable digests (to be deprecated).
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use Fcntl;
+diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs
+index 4d64e38..473a15c 100644
+--- a/cpan/Encode/bin/enc2xs
++++ b/cpan/Encode/bin/enc2xs
+@@ -4,6 +4,7 @@ BEGIN {
+ # with $ENV{PERL_CORE} set
+ # In case we need it in future...
+ require Config; import Config;
++ pop @INC if $INC[-1] eq '.';
+ }
+ use strict;
+ use warnings;
+diff --git a/cpan/Encode/bin/encguess b/cpan/Encode/bin/encguess
+index 5d7ac80..0be5c7c 100644
+--- a/cpan/Encode/bin/encguess
++++ b/cpan/Encode/bin/encguess
+@@ -1,5 +1,6 @@
+ #!./perl
+ use 5.008001;
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use Encode;
+diff --git a/cpan/Encode/bin/piconv b/cpan/Encode/bin/piconv
+index c1dad9e..60b2a59 100644
+--- a/cpan/Encode/bin/piconv
++++ b/cpan/Encode/bin/piconv
+@@ -1,6 +1,7 @@
+ #!./perl
+ # $Id: piconv,v 2.7 2014/05/31 09:48:48 dankogai Exp $
+ #
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use 5.8.0;
+ use strict;
+ use Encode ;
+diff --git a/cpan/Encode/bin/ucmlint b/cpan/Encode/bin/ucmlint
+index 622376d..25e0d67 100644
+--- a/cpan/Encode/bin/ucmlint
++++ b/cpan/Encode/bin/ucmlint
+@@ -3,6 +3,7 @@
+ # $Id: ucmlint,v 2.2 2008/03/12 09:51:11 dankogai Exp $
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ our $VERSION = do { my @r = (q$Revision: 2.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
+diff --git a/cpan/Encode/bin/unidump b/cpan/Encode/bin/unidump
+index ae0da30..f190827 100644
+--- a/cpan/Encode/bin/unidump
++++ b/cpan/Encode/bin/unidump
+@@ -1,5 +1,6 @@
+ #!./perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Encode;
+ use Getopt::Std;
+diff --git a/cpan/ExtUtils-MakeMaker/bin/instmodsh b/cpan/ExtUtils-MakeMaker/bin/instmodsh
+index e551434..b3b109f 100644
+--- a/cpan/ExtUtils-MakeMaker/bin/instmodsh
++++ b/cpan/ExtUtils-MakeMaker/bin/instmodsh
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use ExtUtils::Packlist;
+diff --git a/cpan/IO-Compress/bin/zipdetails b/cpan/IO-Compress/bin/zipdetails
+index 0249850..1b9c70a 100644
+--- a/cpan/IO-Compress/bin/zipdetails
++++ b/cpan/IO-Compress/bin/zipdetails
+@@ -5,6 +5,7 @@
+ # Display info on the contents of a Zip file
+ #
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings ;
+
+diff --git a/cpan/JSON-PP/bin/json_pp b/cpan/JSON-PP/bin/json_pp
+index df9d243..896cd2f 100644
+--- a/cpan/JSON-PP/bin/json_pp
++++ b/cpan/JSON-PP/bin/json_pp
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use Getopt::Long;
+
+diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove
+index 6637cc4..d71b238 100644
+--- a/cpan/Test-Harness/bin/prove
++++ b/cpan/Test-Harness/bin/prove
+@@ -1,5 +1,6 @@
+ #!/usr/bin/perl -w
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use warnings;
+ use App::Prove;
+diff --git a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
+index e2ac71a..d596cdf 100644
+--- a/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
++++ b/dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp
+@@ -1,5 +1,6 @@
+ #!perl
+ use 5.006;
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ eval {
+ require ExtUtils::ParseXS;
+diff --git a/dist/Module-CoreList/corelist b/dist/Module-CoreList/corelist
+index aa4a945..bbe61cc 100644
+--- a/dist/Module-CoreList/corelist
++++ b/dist/Module-CoreList/corelist
+@@ -130,6 +130,7 @@ requested perl versions.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Module::CoreList;
+ use Getopt::Long qw(:config no_ignore_case);
+ use Pod::Usage;
+diff --git a/ext/Pod-Html/bin/pod2html b/ext/Pod-Html/bin/pod2html
+index b022859..7d1d232 100644
+--- a/ext/Pod-Html/bin/pod2html
++++ b/ext/Pod-Html/bin/pod2html
+@@ -216,6 +216,7 @@ This program is distributed under the Artistic License.
+
+ =cut
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use Pod::Html;
+
+ pod2html @ARGV;
+diff --git a/utils/c2ph.PL b/utils/c2ph.PL
+index 13389ec..cef0b5c 100644
+--- a/utils/c2ph.PL
++++ b/utils/c2ph.PL
+@@ -280,6 +280,7 @@ Anyway, here it is. Should run on perl v4 or greater. Maybe less.
+
+ $RCSID = '$Id: c2ph,v 1.7 95/10/28 10:41:47 tchrist Exp Locker: tchrist $';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use File::Temp;
+
+ ######################################################################
+diff --git a/utils/h2ph.PL b/utils/h2ph.PL
+index 55c1f72..300b756 100644
+--- a/utils/h2ph.PL
++++ b/utils/h2ph.PL
+@@ -36,6 +36,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use strict;
+
+ use Config;
+diff --git a/utils/h2xs.PL b/utils/h2xs.PL
+index 268f680..f95ee0c 100644
+--- a/utils/h2xs.PL
++++ b/utils/h2xs.PL
+@@ -35,6 +35,8 @@ $Config{startperl}
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ use warnings;
+
+ =head1 NAME
+diff --git a/utils/libnetcfg.PL b/utils/libnetcfg.PL
+index 59a2de8..26d2f99 100644
+--- a/utils/libnetcfg.PL
++++ b/utils/libnetcfg.PL
+@@ -97,6 +97,7 @@ Jarkko Hietaniemi, conversion into libnetcfg for inclusion into Perl 5.8.
+
+ # $Id: Configure,v 1.8 1997/03/04 09:22:32 gbarr Exp $
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use strict;
+ use IO::File;
+ use Getopt::Std;
+diff --git a/utils/perlbug.PL b/utils/perlbug.PL
+index 885785a..ae8c343 100644
+--- a/utils/perlbug.PL
++++ b/utils/perlbug.PL
+@@ -57,6 +57,7 @@ print OUT <<'!NO!SUBS!';
+ my @patches = Config::local_patches();
+ my $patch_tags = join "", map /(\S+)/ ? "+$1 " : (), @patches;
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
+ use warnings;
+ use strict;
+ use Config;
+diff --git a/utils/perldoc.PL b/utils/perldoc.PL
+index e201de9..cd60bd4 100644
+--- a/utils/perldoc.PL
++++ b/utils/perldoc.PL
+@@ -44,7 +44,10 @@ $Config{startperl}
+ # This "$file" file was generated by "$0"
+
+ require 5;
+-BEGIN { \$^W = 1 if \$ENV{'PERLDOCDEBUG'} }
++BEGIN {
++ \$^W = 1 if \$ENV{'PERLDOCDEBUG'};
++ pop \@INC if \$INC[-1] eq '.';
++}
+ use Pod::Perldoc;
+ exit( Pod::Perldoc->run() );
+
+diff --git a/utils/perlivp.PL b/utils/perlivp.PL
+index cc49f96..696a44e 100644
+--- a/utils/perlivp.PL
++++ b/utils/perlivp.PL
+@@ -39,6 +39,8 @@ print OUT "\n# perlivp $^V\n";
+
+ print OUT <<'!NO!SUBS!';
+
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
+ sub usage {
+ warn "@_\n" if @_;
+ print << " EOUSAGE";
+diff --git a/utils/splain.PL b/utils/splain.PL
+index 9c70b61..cae84a0 100644
+--- a/utils/splain.PL
++++ b/utils/splain.PL
+@@ -38,6 +38,12 @@ $Config{startperl}
+ if \$running_under_some_shell;
+ !GROK!THIS!
+
++print <<'!NO!SUBS!';
++
++BEGIN { pop @INC if $INC[-1] eq '.' }
++
++!NO!SUBS!
++
+ while (<IN>) {
+ print OUT unless /^package diagnostics/;
+ }
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch
new file mode 100644
index 000000000..99fa8d9a6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-2381.patch
@@ -0,0 +1,114 @@
+CVE: CVE-2016-2381
+Upstream-Status: Backport
+
+Backport patch to fix CVE-2016-2381 from
+
+http://perl5.git.perl.org/perl.git/commitdiff/ae37b791a73a9e78dedb89fb2429d2628cf58076
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 27 Jan 2016 00:52:15 +0000 (+1100)
+Subject: remove duplicate environment variables from environ
+X-Git-Tag: v5.23.9~170
+X-Git-Url: http://perl5.git.perl.org/perl.git/commitdiff_plain/ae37b791a73a9e78dedb89fb2429d2628cf58076
+
+remove duplicate environment variables from environ
+
+If we see duplicate environment variables while iterating over
+environ[]:
+
+a) make sure we use the same value in %ENV that getenv() returns.
+
+Previously on a duplicate, %ENV would have the last entry for the name
+from environ[], but a typical getenv() would return the first entry.
+
+Rather than assuming all getenv() implementations return the first entry
+explicitly call getenv() to ensure they agree.
+
+b) remove duplicate entries from environ
+
+Previously if there was a duplicate definition for a name in environ[]
+setting that name in %ENV could result in an unsafe value being passed
+to a child process, so ensure environ[] has no duplicates.
+
+CVE-2016-2381
+---
+
+diff --git a/perl.c b/perl.c
+index 4a324c6..5c71fd0 100644
+--- a/perl.c
++++ b/perl.c
+@@ -4329,23 +4329,70 @@ S_init_postdump_symbols(pTHX_ int argc, char **argv, char **env)
+ }
+ if (env) {
+ char *s, *old_var;
++ STRLEN nlen;
+ SV *sv;
++ HV *dups = newHV();
++
+ for (; *env; env++) {
+ old_var = *env;
+
+ if (!(s = strchr(old_var,'=')) || s == old_var)
+ continue;
++ nlen = s - old_var;
+
+ #if defined(MSDOS) && !defined(DJGPP)
+ *s = '\0';
+ (void)strupr(old_var);
+ *s = '=';
+ #endif
+- sv = newSVpv(s+1, 0);
+- (void)hv_store(hv, old_var, s - old_var, sv, 0);
++ if (hv_exists(hv, old_var, nlen)) {
++ const char *name = savepvn(old_var, nlen);
++
++ /* make sure we use the same value as getenv(), otherwise code that
++ uses getenv() (like setlocale()) might see a different value to %ENV
++ */
++ sv = newSVpv(PerlEnv_getenv(name), 0);
++
++ /* keep a count of the dups of this name so we can de-dup environ later */
++ if (hv_exists(dups, name, nlen))
++ ++SvIVX(*hv_fetch(dups, name, nlen, 0));
++ else
++ (void)hv_store(dups, name, nlen, newSViv(1), 0);
++
++ Safefree(name);
++ }
++ else {
++ sv = newSVpv(s+1, 0);
++ }
++ (void)hv_store(hv, old_var, nlen, sv, 0);
+ if (env_is_not_environ)
+ mg_set(sv);
+ }
++ if (HvKEYS(dups)) {
++ /* environ has some duplicate definitions, remove them */
++ HE *entry;
++ hv_iterinit(dups);
++ while ((entry = hv_iternext_flags(dups, 0))) {
++ STRLEN nlen;
++ const char *name = HePV(entry, nlen);
++ IV count = SvIV(HeVAL(entry));
++ IV i;
++ SV **valp = hv_fetch(hv, name, nlen, 0);
++
++ assert(valp);
++
++ /* try to remove any duplicate names, depending on the
++ * implementation used in my_setenv() the iteration might
++ * not be necessary, but let's be safe.
++ */
++ for (i = 0; i < count; ++i)
++ my_setenv(name, 0);
++
++ /* and set it back to the value we set $ENV{name} to */
++ my_setenv(name, SvPV_nolen(*valp));
++ }
++ }
++ SvREFCNT_dec_NN(dups);
+ }
+ #endif /* USE_ENVIRON_ARRAY */
+ #endif /* !PERL_MICRO */
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch
new file mode 100644
index 000000000..2722af35b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-CVE-2016-6185.patch
@@ -0,0 +1,128 @@
+From 7cedaa8bc2ca9e63369d0e2d4c4c23af9febb93a Mon Sep 17 00:00:00 2001
+From: Father Chrysostomos <sprout@cpan.org>
+Date: Sat, 2 Jul 2016 22:56:51 -0700
+Subject: [PATCH] perl: fix CVE-2016-6185
+MIME-Version: 1.0
+
+Don't let XSLoader load relative paths
+
+[rt.cpan.org #115808]
+
+The logic in XSLoader for determining the library goes like this:
+
+ my $c = () = split(/::/,$caller,-1);
+ $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
+ my $file = "$modlibname/auto/$modpname/$modfname.bundle";
+
+(That last line varies by platform.)
+
+$caller is the calling package. $modlibname is the calling file. It
+removes as many path segments from $modlibname as there are segments
+in $caller. So if you have Foo/Bar/XS.pm calling XSLoader from the
+Foo::Bar package, the $modlibname will end up containing the path in
+@INC where XS.pm was found, followed by "/Foo". Usually the fallback
+to Dynaloader::bootstrap_inherit, which does an @INC search, makes
+things Just Work.
+
+But if our hypothetical Foo/Bar/XS.pm actually calls
+XSLoader::load from inside a string eval, then path ends up being
+"(eval 1)/auto/Foo/Bar/Bar.bundle".
+
+So if someone creates a directory named '(eval 1)' with a naughty
+binary file in it, it will be loaded if a script using Foo::Bar is run
+in the parent directory.
+
+This commit makes XSLoader fall back to Dynaloader's @INC search if
+the calling file has a relative path that is not found in @INC.
+
+Backport patch from http://perl5.git.perl.org/perl.git/commitdiff/08e3451d7
+
+Upstream-Status: Backport
+CVE: CVE-2016-6185
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ dist/XSLoader/XSLoader_pm.PL | 25 +++++++++++++++++++++++++
+ dist/XSLoader/t/XSLoader.t | 27 ++++++++++++++++++++++++++-
+ 2 files changed, 51 insertions(+), 1 deletion(-)
+
+diff --git a/dist/XSLoader/XSLoader_pm.PL b/dist/XSLoader/XSLoader_pm.PL
+index 668411d..778e46b 100644
+--- a/dist/XSLoader/XSLoader_pm.PL
++++ b/dist/XSLoader/XSLoader_pm.PL
+@@ -104,6 +104,31 @@ print OUT <<'EOT';
+ my $modpname = join('/',@modparts);
+ my $c = () = split(/::/,$caller,-1);
+ $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename
++ # Does this look like a relative path?
++ if ($modlibname !~ m|^[\\/]|) {
++ # Someone may have a #line directive that changes the file name, or
++ # may be calling XSLoader::load from inside a string eval. We cer-
++ # tainly do not want to go loading some code that is not in @INC,
++ # as it could be untrusted.
++ #
++ # We could just fall back to DynaLoader here, but then the rest of
++ # this function would go untested in the perl core, since all @INC
++ # paths are relative during testing. That would be a time bomb
++ # waiting to happen, since bugs could be introduced into the code.
++ #
++ # So look through @INC to see if $modlibname is in it. A rela-
++ # tive $modlibname is not a common occurrence, so this block is
++ # not hot code.
++ FOUND: {
++ for (@INC) {
++ if ($_ eq $modlibname) {
++ last FOUND;
++ }
++ }
++ # Not found. Fall back to DynaLoader.
++ goto \&XSLoader::bootstrap_inherit;
++ }
++ }
+ EOT
+
+ my $dl_dlext = quotemeta($Config::Config{'dlext'});
+diff --git a/dist/XSLoader/t/XSLoader.t b/dist/XSLoader/t/XSLoader.t
+index 2ff11fe..1e86faa 100644
+--- a/dist/XSLoader/t/XSLoader.t
++++ b/dist/XSLoader/t/XSLoader.t
+@@ -33,7 +33,7 @@ my %modules = (
+ 'Time::HiRes'=> q| ::can_ok( 'Time::HiRes' => 'usleep' ) |, # 5.7.3
+ );
+
+-plan tests => keys(%modules) * 3 + 9;
++plan tests => keys(%modules) * 3 + 10;
+
+ # Try to load the module
+ use_ok( 'XSLoader' );
+@@ -125,3 +125,28 @@ XSLoader::load("Devel::Peek");
+ EOS
+ or ::diag $@;
+ }
++
++SKIP: {
++ skip "File::Path not available", 1
++ unless eval { require File::Path };
++ my $name = "phooo$$";
++ File::Path::make_path("$name/auto/Foo/Bar");
++ open my $fh,
++ ">$name/auto/Foo/Bar/Bar.$Config::Config{'dlext'}";
++ close $fh;
++ my $fell_back;
++ local *XSLoader::bootstrap_inherit = sub {
++ $fell_back++;
++ # Break out of the calling subs
++ goto the_test;
++ };
++ eval <<END;
++#line 1 $name
++package Foo::Bar;
++XSLoader::load("Foo::Bar");
++END
++ the_test:
++ ok $fell_back,
++ 'XSLoader will not load relative paths based on (caller)[1]';
++ File::Path::remove_tree($name);
++}
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch
new file mode 100644
index 000000000..de946dbec
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-fix-conflict-between-skip_all-and-END.patch
@@ -0,0 +1,181 @@
+Some Perl tests fail when run on a cross-compiled target machine. Apply
+a slightly tweaked upstream patch to fix the problems. Notes:
+ 1. as of 2 Jun 2016, the original patch has been applied to the current
+ EUMM releases, but has not made it into perl core yet.
+ 2. when the base perl package is upgraded in Yocto, this patch may need
+ to be replaced by the original upstream version to correctly apply
+ to the current version of ExtUtils-MakeMaker at that time.
+
+[YOCTO #8656]
+
+Upstream-Status: Backport
+
+Signed-off-by: Bill Randle <william.c.randle@intel.com>
+
+From 4a07a3bd18363986112cf2b39dec3c2985353ffb Mon Sep 17 00:00:00 2001
+From: Francois Perrad <francois.perrad@gadz.org>
+Date: Mon, 22 Dec 2014 19:04:34 +0100
+Subject: [PATCH] fix conflict between skip_all and END section
+
+since the commit 430de781809a6be3bcd25a349dc40ce54405ab53
+the test suite fails in cross-compil environment (perl-5.21.6 & perl-5.21.7)
+like this :
+
+ $ ./perl harness -v ../cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
+ ../cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t ..
+ 1..0 # SKIP cross-compiling and make not available
+ ok 1 - chdir updir
+ ok 2 - teardown
+ # Looks like you planned 0 tests but ran 2.
+ skipped: cross-compiling and make not available
+
+this commit restores the implicit call of plan() at import time of Test::More
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+---
+ cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t | 7 ++++---
+ cpan/ExtUtils-MakeMaker/t/PL_FILES.t | 4 ++--
+ cpan/ExtUtils-MakeMaker/t/basic.t | 4 ++--
+ cpan/ExtUtils-MakeMaker/t/echo.t | 6 +++---
+ cpan/ExtUtils-MakeMaker/t/min_perl_version.t | 4 ++--
+ cpan/ExtUtils-MakeMaker/t/pm_to_blib.t | 4 ++--
+ cpan/ExtUtils-MakeMaker/t/recurs.t | 4 ++--
+ cpan/ExtUtils-MakeMaker/t/several_authors.t | 4 ++--
+ 8 files changed, 19 insertions(+), 18 deletions(-)
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t b/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
+index f27b62c..3bbb3a6 100644
+--- a/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
++++ b/cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t
+@@ -15,12 +15,13 @@ $CLEANUP &&= 1; # so always 1 or numerically 0
+
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::BFD;
+-use Test::More;
+ use Config;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+- : (tests => 3 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP));
++ : ();
++plan tests => 3 + $CLEANUP + @INSTDIRS * (15 + $CLEANUP);
+
+ my $Is_VMS = $^O eq 'VMS';
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
+index 0779dbb..85d53a5 100644
+--- a/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
++++ b/cpan/ExtUtils-MakeMaker/t/PL_FILES.t
+@@ -11,9 +11,9 @@ use File::Temp qw[tempdir];
+ use MakeMaker::Test::Setup::PL_FILES;
+ use MakeMaker::Test::Utils;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : (tests => 9);
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/basic.t b/cpan/ExtUtils-MakeMaker/t/basic.t
+index 3dd66ad..eddf2e9 100644
+--- a/cpan/ExtUtils-MakeMaker/t/basic.t
++++ b/cpan/ExtUtils-MakeMaker/t/basic.t
+@@ -20,9 +20,9 @@ use utf8;
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::BFD;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : (tests => 171);
+ use File::Find;
+diff --git a/cpan/ExtUtils-MakeMaker/t/echo.t b/cpan/ExtUtils-MakeMaker/t/echo.t
+index 789b85f..c43bc47 100644
+--- a/cpan/ExtUtils-MakeMaker/t/echo.t
++++ b/cpan/ExtUtils-MakeMaker/t/echo.t
+@@ -14,11 +14,11 @@ use MakeMaker::Test::Utils;
+ use File::Temp;
+ use Cwd 'abs_path';
+
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+- : ();
++ : (tests => 18);
+
+ #--------------------- Setup
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
+index c5d78d6..2ef118d 100644
+--- a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
++++ b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
+@@ -13,9 +13,9 @@ use TieOut;
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::MPV;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : (tests => 36);
+ use File::Path;
+diff --git a/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t b/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
+index f1e348e..ebfa26c 100644
+--- a/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
++++ b/cpan/ExtUtils-MakeMaker/t/pm_to_blib.t
+@@ -12,9 +12,9 @@ use ExtUtils::MakeMaker;
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::BFD;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : 'no_plan';
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/recurs.t b/cpan/ExtUtils-MakeMaker/t/recurs.t
+index 84c09a2..661e0db 100644
+--- a/cpan/ExtUtils-MakeMaker/t/recurs.t
++++ b/cpan/ExtUtils-MakeMaker/t/recurs.t
+@@ -14,9 +14,9 @@ use File::Temp qw[tempdir];
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::Recurs;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : (tests => 26);
+
+diff --git a/cpan/ExtUtils-MakeMaker/t/several_authors.t b/cpan/ExtUtils-MakeMaker/t/several_authors.t
+index 1a75a3e..869e9f0 100644
+--- a/cpan/ExtUtils-MakeMaker/t/several_authors.t
++++ b/cpan/ExtUtils-MakeMaker/t/several_authors.t
+@@ -13,9 +13,9 @@ use TieOut;
+ use MakeMaker::Test::Utils;
+ use MakeMaker::Test::Setup::SAS;
+ use Config;
+-use Test::More;
+ use ExtUtils::MM;
+-plan !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
++use Test::More
++ !MM->can_run(make()) && $ENV{PERL_CORE} && $Config{'usecrosscompile'}
+ ? (skip_all => "cross-compiling and make not available")
+ : (tests => 20);
+ use File::Path;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch
new file mode 100644
index 000000000..c489f05bf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-remove-nm-from-libswanted.patch
@@ -0,0 +1,30 @@
+From 4732711e2548b6d734ca831d65dbcf501a89774e Mon Sep 17 00:00:00 2001
+From: Andreas Koenig <andk@cpan.org>
+Date: Sun, 3 Jan 2016 08:40:33 +0100
+Subject: [PATCH] Remove nm from libswanted
+
+Nm stood for "New Math" library in the context of 1994. 2014 a conflicting
+library libnm appeared that has a network manager context.
+
+Upstream-Status: Backport [commit 4732711e on branch blead, tag v5.25.0]
+
+---
+ Configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Configure b/Configure
+index 0e71b4b..cfbdaa1 100755
+--- a/Configure
++++ b/Configure
+@@ -1464,7 +1464,7 @@ libswanted_uselargefiles=''
+ : set usesocks on the Configure command line to enable socks.
+ : List of libraries we want.
+ : If anyone needs extra -lxxx, put those in a hint file.
+-libswanted="cl pthread socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld"
++libswanted="cl pthread socket bind inet nsl ndbm gdbm dbm db malloc dl ld"
+ libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+--
+2.9.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch
new file mode 100644
index 000000000..84b0b88f2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl/perl-test-customized.patch
@@ -0,0 +1,61 @@
+The OE core recipies customize some ExtUtils-MakeMaker modules,
+which causes their MD5 sum to mismatch the provided table and the
+corresponding tests to fail. Also, we patch several test files with
+a backported patch. Update list of hashes to reflect the patched files.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bill Randle <william.c.randle@intel.com>
+
+Index: perl-5.22.1/t/porting/customized.dat
+===================================================================
+--- perl-5.22.1.orig/t/porting/customized.dat 2015-10-31 13:36:16.000000000 +0000
++++ perl-5.22.1/t/porting/customized.dat 2016-06-02 12:50:10.381030204 -0700
+@@ -1,8 +1,8 @@
+ CPAN cpan/CPAN/lib/CPAN.pm ce62c43d72f101c011184dbbc59e21c2790826f0
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm 7f4dfd0fe884bd42412bcf04ca80ef97b39c1d54
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm bef099988b15fb0b2a1f5ac48c01af1f7f36d329
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm 8168e18f0e3ce3ece4bb7e7c72d57ec07c67c402
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 7115e97a53559cb3ec061dd6f7f344e522724c4a
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm a08ecf80c8f0a234243817713b2a5ab0dcae3c0a
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm 3d7abd674b15ed323f743594ef0bd09db76b1aee
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm f8db8d4245bf0684b8210c811f50d7cfb1a27d78
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod 757bffb47857521311f8f3bde43ebe165f8d5191
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm 82be06851deb84c6419ad003ce9b6d1957f395f3
+@@ -14,7 +14,7 @@
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm ab80029ab16d38d4f2e41dc88d2ceb9f3790e477
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm 453e0abbc4bb38db4c0820ad5c4846f313b66291
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm c1b1babda8f43ae7a2caba1cb4f70f92af5a0e34
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 6f90d94ad3e7aa0045a3b1a10a1bb18391f89f57
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm 21bde53290bf1a4da4457290b65bd1b0ca6f1d16
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm cab2b3ce08b71a4ce89aa630f236eb08b852439d
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm 61fced0faf518bf87c265fcb51ed330ba354623f
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm ae0ef51a7b6dd0b05aa61c779df7167dda5f5119
+@@ -23,7 +23,7 @@
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm 433135eecb85b4b1d90d3027432f329436c78447
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm 1fbb5605bfb47feee4083feba8aa85e659628f70
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm 5b66d1f485a6034d96fc24ba1665b1bad9e447f1
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 8cef99a9bd370ecfd07ddb0efbdcbb4101255e45
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm 860d520234d7c9036d91f0b143a1dddf2a5e8cb7
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm 939572fde3d59ba77c2e677fe2df2bed4bed5898
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm 09c2049bfd25b735e2a5bcf56a6cff7b4827f9c8
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm d65d63f8217a55c36f62e249814988974f593c79
+@@ -31,8 +31,16 @@
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm 12df38eacceeed73cab94c423236bfaed0fbbfec
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm 22fe9596a0237252f45399a36abc83b7813bc328
+ ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm 7fbc42ca2ebc6c677b79ae5fd5647243cf069463
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t 6cdc7701b50e586bc9c4cfb1616de8eb0b1baf34
+-ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t 71ebcee355691ce374fcad251b12d8b2412462b3
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/basic.t d78fdec7a4512dc8d2a7abd62b8104530af8ecf9
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/echo.t 9427f4adebbb13b57b4a76fef2972adf63c9bd96
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INSTALL_BASE.t ef356c196bb5c3c428ae309d7f989bdd6d79b86d
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t 3e6d4d6eb2eab42e983ac70eb5737a759af0916f
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/INST.t e553fa0d53c894c8d36aafb69edd55b38a9355f8
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/min_perl_version.t e930ec9217de5a1785d0247c30b159e6f7f5673f
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/PL_FILES.t 7e49ab6c4d467826d22023fa03d77b85f935b58e
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/pm_to_blib.t a04c96eecfab17e4094604e0fb998dd93cf93b93
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/recurs.t 94cce3bff875a878ed27816b3f5df2ca4225c714
++ExtUtils::MakeMaker cpan/ExtUtils-MakeMaker/t/several_authors.t f811d993c0835c66dc501ed55083acb29bf33bf7
+ Text::ParseWords cpan/Text-ParseWords/t/ParseWords.t 9bae51c9b944cd5c0bbabe9d397e573976a2be8e
+ Win32API::File cpan/Win32API-File/buffers.h 02d230ac9ac7091365128161a0ed671898baefae
+ Win32API::File cpan/Win32API-File/cFile.h fca7e383e76979c3ac3adf12d11d1bcd2618e489
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb
index bf8b3b60b..792a65b5b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/perl/perl_5.22.1.bb
@@ -63,6 +63,12 @@ SRC_URI += " \
file://ext-ODBM_File-t-odbm.t-fix-the-path-of-dbmt_common.p.patch \
file://perl-PathTools-don-t-filter-out-blib-from-INC.patch \
file://perl-errno-generation-gcc5.patch \
+ file://perl-fix-conflict-between-skip_all-and-END.patch \
+ file://perl-test-customized.patch \
+ file://perl-fix-CVE-2016-2381.patch \
+ file://perl-fix-CVE-2016-6185.patch \
+ file://perl-fix-CVE-2015-8607.patch \
+ file://perl-fix-CVE-2016-1238.patch \
"
# Fix test case issues
@@ -340,7 +346,9 @@ FILES_perl-module-unicore += "${libdir}/perl/${PV}/unicore"
ALLOW_EMPTY_perl-modules = "1"
PACKAGES_append = " perl-modules "
-python populate_packages_prepend () {
+PACKAGESPLITFUNCS_prepend = "split_perl_packages "
+
+python split_perl_packages () {
libdir = d.expand('${libdir}/perl/${PV}')
do_split_packages(d, libdir, 'auto/([^.]*)/[^/]*\.(so|ld|ix|al)', 'perl-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False)
do_split_packages(d, libdir, 'Module/([^\/]*)\.pm', 'perl-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-gdate-Move-warning-pragma-outside-of-function.patch b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-gdate-Move-warning-pragma-outside-of-function.patch
new file mode 100644
index 000000000..14c8293a5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-gdate-Move-warning-pragma-outside-of-function.patch
@@ -0,0 +1,39 @@
+From 946d36266d8a30f04fe34d3183bf4929141934d2 Mon Sep 17 00:00:00 2001
+From: coypu <coypu@sdf.org>
+Date: Wed, 2 Mar 2016 19:38:48 +0200
+Subject: [PATCH] gdate: Move warning pragma outside of function
+
+Commit 0817af40e8c74c721c30f6ef482b1f53d12044c7 breaks the build on
+older versions of GCC, which don't allow pragma inside functions.
+
+https://bugzilla.gnome.org/761550
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ glib/glib/gdate.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/glib/glib/gdate.c b/glib/glib/gdate.c
+index 1978cf7..20e6c4a 100644
+--- a/glib/glib/gdate.c
++++ b/glib/glib/gdate.c
+@@ -2439,6 +2439,9 @@ win32_strftime_helper (const GDate *d,
+ *
+ * Returns: number of characters written to the buffer, or 0 the buffer was too small
+ */
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wformat-nonliteral"
++
+ gsize
+ g_date_strftime (gchar *s,
+ gsize slen,
+@@ -2549,3 +2552,5 @@ g_date_strftime (gchar *s,
+ return retval;
+ #endif
+ }
++
++#pragma GCC diagnostic pop
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
new file mode 100644
index 000000000..80310cd37
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
@@ -0,0 +1,41 @@
+From e404e27de77d8b993c4cc87013d707200b3a5547 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 17 May 2016 13:26:27 +0300
+Subject: [PATCH] glib-gettext.m4: Update AM_GLIB_GNU_GETTEXT to match glib
+
+This avoids
+ error: m4_copy: won't overwrite defined macro: glib_DEFUN
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Pending
+
+---
+ glib/m4macros/glib-gettext.m4 | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/glib/m4macros/glib-gettext.m4 b/glib/m4macros/glib-gettext.m4
+index 5217fd8..155b1d8 100644
+--- a/glib/m4macros/glib-gettext.m4
++++ b/glib/m4macros/glib-gettext.m4
+@@ -313,7 +313,7 @@ msgstr ""
+ # on various variables needed by the Makefile.in.in installed by
+ # glib-gettextize.
+ dnl
+-glib_DEFUN([GLIB_GNU_GETTEXT],
++AU_DEFUN([GLIB_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+
+ GLIB_LC_MESSAGES
+@@ -383,7 +383,8 @@ glib_DEFUN([GLIB_GNU_GETTEXT],
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+- ])
++ ],
++ [[$0: This macro is deprecated. You should use upstream gettext instead.]])
+
+ # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE)
+ # -------------------------------
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index d34f608f1..ff8254cfc 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -12,12 +12,14 @@ DEPENDS = "glib-2.0"
DEPENDS_class-native = ""
DEPENDS_class-nativesdk = ""
-SRCREV = "5914edfe9604abfedd220103cbac382fc4d268bb"
-PV = "0.29+git${SRCPV}"
+SRCREV = "87152c05be88ca8be71a3a563f275b3686d32c28"
+PV = "0.29.1+git${SRCPV}"
SRC_URI = "git://anongit.freedesktop.org/pkg-config \
file://pkg-config-native.in \
file://fix-glib-configure-libtool-usage.patch \
+ file://0001-gdate-Move-warning-pragma-outside-of-function.patch \
+ file://0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch \
"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb
index e223ef689..0856b1c66 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/prelink/prelink_git.bb
@@ -8,7 +8,7 @@ and executables, so that far fewer relocations need to be resolved at \
runtime and thus programs come up faster."
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-SRCREV = "927979bbd115eeb8a75db3231906ef6aca4c4eb6"
+SRCREV = "ef20628dd78b92e1a3123afc67b64cf010bdd9e4"
PV = "1.0+git${SRCPV}"
#
@@ -44,6 +44,99 @@ BBCLASSEXTEND = "native"
EXTRA_OECONF = "--disable-selinux --with-pkgversion=${PV}-${PR} \
--with-bugurl=http://bugzilla.yoctoproject.org/"
+
+#
+# For target prelink we need to ensure paths match the lib path layout
+# including for any configured multilibs
+#
+python do_linkerpaths () {
+ values = all_multilib_tune_list(["TUNE_ARCH", "baselib", "ABIEXTENSION"], d)
+
+ arches = values["TUNE_ARCH"]
+ baselibs = values["baselib"]
+ abis = values["ABIEXTENSION"]
+
+ def replace_lines(f, search, replacement, d, firstonly = False, secondonly = False):
+ f = d.expand(f)
+ if search == replacement:
+ return
+ bb.debug(2, "Replacing %s with %s in %s" % (search, replacement, f))
+ with open(f, "r") as data:
+ lines = data.readlines()
+ with open(f, "w") as data:
+ for line in lines:
+ if not secondonly and not firstonly:
+ line = line.replace(search, replacement)
+ elif secondonly and search in line:
+ secondonly = False
+ elif firstonly and search and search in line:
+ line = line.replace(search, replacement)
+ search = None
+ data.write(line)
+
+ def replace_lines_rtld(f, search, replacement, section, d):
+ f = d.expand(f)
+ bb.debug(2, "Replacing %s with %s in %s" % (search, replacement, f))
+ with open(f, "r") as data:
+ lines = data.readlines()
+ found = False
+ found2 = False
+ with open(f, "w") as data:
+ for line in lines:
+ if section in line:
+ if section == "else" and "if" in line:
+ found = False
+ else:
+ found = True
+ if found and "dst_LIB =" in line:
+ found2 = True
+ elif "}" in line:
+ found = False
+ found2 = False
+ if found2:
+ line = line.replace(search, replacement)
+ data.write(line)
+
+ for i, arch in enumerate(arches):
+ tune_baselib = baselibs[i]
+ abi = abis[i]
+
+ bits = 32
+ if arch == "powerpc":
+ replace_lines("${S}/src/arch-ppc.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d)
+ elif arch == "powerpc64":
+ replace_lines("${S}/src/arch-ppc64.c", "/lib64/ld64.so.1", "/" + tune_baselib + "/ld64.so.1", d)
+ bits = 64
+ elif arch == "x86_64":
+ if abi == "x32":
+ replace_lines("${S}/src/arch-x86_64.c", "/libx32/ld-linux-x32.so.2", "/" + tune_baselib + "/ld-linux-x32.so.2", d)
+ else:
+ replace_lines("${S}/src/arch-x86_64.c", "/lib64/ld-linux-x86-64.so.2", "/" + tune_baselib + "/ld-linux-x86-64.so.2", d)
+ bits = 64
+ elif arch == "arm":
+ replace_lines("${S}/src/arch-arm.c", "/lib/ld-linux.so.3", "/" + tune_baselib + "/ld-linux.so.3", d)
+ replace_lines("${S}/src/arch-arm.c", "/lib/ld-linux-armhf.so.3", "/" + tune_baselib + "/ld-linux-armhf.so.3", d)
+ elif arch == "mips" or arch == "mipsel":
+ replace_lines("${S}/src/arch-mips.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d, firstonly=True)
+ replace_lines("${S}/src/arch-mips.c", "/lib32/ld.so.1", "/" + tune_baselib + "/ld.so.1", d)
+ elif arch == "mips64" or arch == "mips64el":
+ replace_lines("${S}/src/arch-mips.c", "/lib/ld.so.1", "/" + tune_baselib + "/ld.so.1", d, secondonly=True)
+ replace_lines("${S}/src/arch-mips.c", "/lib64/ld.so.1", "/" + tune_baselib + "/ld.so.1", d)
+ bits = 64
+ elif arch.endswith("86"):
+ replace_lines("${S}/src/arch-i386.c", "/lib/ld-linux.so.2", "/" + tune_baselib + "/ld-linux.so.2", d)
+ if bits == 32 and tune_baselib != "lib":
+ replace_lines_rtld("${S}/src/rtld/rtld.c", "lib", tune_baselib, "else", d)
+ if bits == 64 and tune_baselib != "lib64":
+ replace_lines_rtld("${S}/src/rtld/rtld.c", "lib64", tune_baselib, "use_64bit", d)
+}
+
+python () {
+ overrides = d.getVar("OVERRIDES", True).split(":")
+ if "class-target" in overrides:
+ bb.build.addtask('do_linkerpaths', 'do_configure', 'do_patch', d)
+}
+
do_configure_prepend () {
# Disable documentation!
echo "all:" > ${S}/doc/Makefile.am
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Don-t-send-SIGUSR1-to-init.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Don-t-send-SIGUSR1-to-init.patch
new file mode 100644
index 000000000..6c694ceb0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Don-t-send-SIGUSR1-to-init.patch
@@ -0,0 +1,48 @@
+From befc6dbd6469d428c9e0830dbe51bdf7ac39d9ae Mon Sep 17 00:00:00 2001
+From: Seebs <seebs@seebs.net>
+Date: Thu, 22 Sep 2016 14:35:04 -0500
+Subject: [PATCH] Don't send SIGUSR1 to init.
+
+If the parent exits due to child process being slow, getppid() will return
+1, and we'll send SIGUSR1 to init, which can break things like dumbinit
+which aren't adequately protected against non-root processes sending them
+signals.
+
+Signed-off-by: Seebs <seebs@seebs.net>
+
+Upstream-Status: Backport (commit befc6dbd6469d428c9e0830dbe51bdf7ac39d9ae)
+
+[YOCTO #10324]
+
+This resolves an issue where a docker container running builds would die
+due to it's 'mini init' being signaled by pseudo.
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+---
+ pseudo_server.c | 11 ++++++++---
+
+diff --git a/pseudo_server.c b/pseudo_server.c
+index 65102dd..8731d20 100644
+--- a/pseudo_server.c
++++ b/pseudo_server.c
+@@ -358,9 +358,14 @@ pseudo_server_start(int daemonize) {
+ signal(SIGTERM, quit_now);
+ /* tell parent process to stop waiting */
+ if (daemonize) {
+- pseudo_diag("Setup complete, sending SIGUSR1 to pid %d.\n",
+- getppid());
+- kill(getppid(), SIGUSR1);
++ pid_t ppid = getppid();
++ if (ppid == 1) {
++ pseudo_diag("Setup complete, but parent is init, not sending SIGUSR1.\n");
++ } else {
++ pseudo_diag("Setup complete, sending SIGUSR1 to pid %d.\n",
++ ppid);
++ kill(ppid, SIGUSR1);
++ }
+ }
+ pseudo_server_loop();
+ return 0;
+--
+2.5.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch
new file mode 100644
index 000000000..d4b9f6a0f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch
@@ -0,0 +1,54 @@
+From eead8a505245a292c43f070c0e836cdfeb7bd7bd Mon Sep 17 00:00:00 2001
+From: Seebs <seebs@seebs.net>
+Date: Wed, 28 Sep 2016 17:05:17 -0500
+Subject: [PATCH 1/2] Quiet diagnostics during startup for pseudo -d
+
+When the client spawns a pseudo server, it starts out sending diagnostics
+to stderr. This can be spammy in some cases with races during startup;
+everything resolves, but we get scary-looking diagnostics. So shove
+those into a log file.
+
+Signed-off-by: Seebs <seebs@seebs.net>
+
+Upstream-Status: Backport
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ ChangeLog.txt | 5 +++++
+ pseudo_server.c | 4 +++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index d6359ca..4cc24de 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,3 +1,8 @@
++2016-09-28:
++ * (seebs) Send errors to log when daemonizing, but do that a lot
++ sooner to prevent startup messages which can show up spuriously
++ with multiple clients.
++
+ 2016-07-28:
+ * (seebs) Fix performance issue on deletion with xattr changes.
+
+diff --git a/pseudo_server.c b/pseudo_server.c
+index 8731d20..7c2db2f 100644
+--- a/pseudo_server.c
++++ b/pseudo_server.c
+@@ -162,6 +162,9 @@ pseudo_server_start(int daemonize) {
+ * SIGUSR1, or until too much time has passed. */
+ if (daemonize) {
+ int child;
++
++ /* make startup messages go away when invoked-as-daemon */
++ pseudo_debug_logfile(PSEUDO_LOGFILE, 2);
+ child = fork();
+ if (child == -1) {
+ pseudo_diag("Couldn't fork child process: %s\n",
+@@ -231,7 +234,6 @@ pseudo_server_start(int daemonize) {
+ setsid();
+ fclose(stdin);
+ fclose(stdout);
+- pseudo_debug_logfile(PSEUDO_LOGFILE, 2);
+ /* and then just execute the server code normally. */
+ /* Any logging will presumably go to logfile, but
+ * exit status will make it back to the parent for
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0002-Use-correct-file-descriptor.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0002-Use-correct-file-descriptor.patch
new file mode 100644
index 000000000..dd6fd87ae
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0002-Use-correct-file-descriptor.patch
@@ -0,0 +1,53 @@
+From 7a0632cad851826d804db0540d9a59773e6bf29c Mon Sep 17 00:00:00 2001
+From: Seebs <seebs@seebs.net>
+Date: Wed, 28 Sep 2016 22:12:29 -0500
+Subject: [PATCH 2/2] Use correct file descriptor
+
+So it turns out that pseudo_logfile() was returning 0 or -1, and
+pseudo_debug_logfile() was expecting it to be the correct file descriptor
+to use. And it's basically a mystery that any of that ever worked.
+
+Signed-off-by: Seebs <seebs@seebs.net>
+
+Upstream-Status: Backport
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ ChangeLog.txt | 3 +++
+ pseudo_util.c | 3 ++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index 4cc24de..49a6c36 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -2,6 +2,9 @@
+ * (seebs) Send errors to log when daemonizing, but do that a lot
+ sooner to prevent startup messages which can show up spuriously
+ with multiple clients.
++ * (seebs) return file descriptor from pseudo_logfile, so we set
++ pseudo_util_debug_fd to the right value instead of to stdin.
++ Nice bug.
+
+ 2016-07-28:
+ * (seebs) Fix performance issue on deletion with xattr changes.
+diff --git a/pseudo_util.c b/pseudo_util.c
+index 0c156cf..a60c74b 100644
+--- a/pseudo_util.c
++++ b/pseudo_util.c
+@@ -1569,7 +1569,7 @@ pseudo_logfile(char *filename, char *defname, int prefer_fd) {
+ if (fd == -1)
+ return -1;
+ else
+- return 0;
++ return fd;
+ }
+
+ int
+@@ -1579,6 +1579,7 @@ pseudo_debug_logfile(char *defname, int prefer_fd) {
+
+ fd = pseudo_logfile(filename, defname, prefer_fd);
+ if (fd > -1) {
++ pseudo_diag("debug_logfile: fd %d\n", fd);
+ pseudo_util_debug_fd = fd;
+ return 0;
+ }
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch
new file mode 100644
index 000000000..739c03ee6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch
@@ -0,0 +1,64 @@
+From d9ab3a0acc94151048498b1ea4d69e7707df1526 Mon Sep 17 00:00:00 2001
+From: Seebs <seebs@seebs.net>
+Date: Fri, 30 Sep 2016 10:56:35 -0500
+Subject: [PATCH 3/3] Fix renameat (parallel to previous fix to rename)
+
+There was a bug in rename(), which was duplicated when renameat() was
+implemented, and which got fixed two years ago for rename(), but no
+one ever uses renameat() so it didn't get fixed there. Thanks
+to Anton Gerasimov <anton@advancedtelematic.com> for the bug report
+and patch.
+
+Signed-off-by: Seebs <seebs@seebs.net>
+
+Upstream-Status: Backport
+Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
+
+---
+ ChangeLog.txt | 4 ++++
+ ports/unix/guts/renameat.c | 7 ++++++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index 65b9759..ca04cc0 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,3 +1,7 @@
++2016-09-30:
++ * (seebs) Fix rename at, matching fix from ee00f63d for rename. Bug
++ and fix provided by Anton Gerasimov <anton@advancedtelematic.com>.
++
+ 2016-09-28:
+ * (seebs) Send errors to log when daemonizing, but do that a lot
+ sooner to prevent startup messages which can show up spuriously
+diff --git a/ports/unix/guts/renameat.c b/ports/unix/guts/renameat.c
+index ade0509..d5e36fa 100644
+--- a/ports/unix/guts/renameat.c
++++ b/ports/unix/guts/renameat.c
+@@ -11,6 +11,7 @@
+ int oldrc, newrc;
+ int save_errno;
+ int old_db_entry = 0;
++ int may_unlinked = 0;
+
+ pseudo_debug(PDBGF_FILE, "renameat: %d,%s->%d,%s\n",
+ olddirfd, oldpath ? oldpath : "<nil>",
+@@ -44,10 +45,14 @@
+ /* as with unlink, we have to mark that the file may get deleted */
+ msg = pseudo_client_op(OP_MAY_UNLINK, 0, -1, newdirfd, newpath, newrc ? NULL : &newbuf);
+ if (msg && msg->result == RESULT_SUCCEED)
++ may_unlinked = 1;
++ msg = pseudo_client_op(OP_STAT, 0, -1, olddirfd, oldpath, oldrc ? NULL : &oldbuf);
++ if (msg && msg->result == RESULT_SUCCEED)
+ old_db_entry = 1;
++
+ rc = real_renameat(olddirfd, oldpath, newdirfd, newpath);
+ save_errno = errno;
+- if (old_db_entry) {
++ if (may_unlinked) {
+ if (rc == -1) {
+ /* since we failed, that wasn't really unlinked -- put
+ * it back.
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch
new file mode 100644
index 000000000..4e072e6c4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/Fix-xattr-performance.patch
@@ -0,0 +1,117 @@
+From 0d9071f3090bbd7880558f3b488b236ac19b44fc Mon Sep 17 00:00:00 2001
+From: seebs <seebs@seebs.net>
+Date: Thu, 28 Jul 2016 14:02:12 -0500
+Subject: [PATCH 1/2] Fix xattr performance
+
+When deleting files, we *do* know the inode and attribute, most of the
+time, so we pass those in whenever possible. The full purge of unmatched
+xattrs should not happen when the correct dev/ino are believed to be known.
+
+Signed-off-by: Seebs <seebs@seebs.net>
+
+[YOCTO #9929]
+Upstream-Status: Backport (0d9071f3090bbd7880558f3b488b236ac19b44fc)
+Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
+---
+ ChangeLog.txt | 3 +++
+ pseudo.c | 11 ++++++++---
+ pseudo_db.c | 15 +++++++++------
+ pseudo_db.h | 2 +-
+ 4 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/ChangeLog.txt b/ChangeLog.txt
+index 131f163..d6359ca 100644
+--- a/ChangeLog.txt
++++ b/ChangeLog.txt
+@@ -1,3 +1,6 @@
++2016-07-28:
++ * (seebs) Fix performance issue on deletion with xattr changes.
++
+ 2016-07-08:
+ * (RP) release 1.8.1
+ * (joshuagl) Fix log table creation issue
+diff --git a/pseudo.c b/pseudo.c
+index 52f649f..db1c400 100644
+--- a/pseudo.c
++++ b/pseudo.c
+@@ -600,7 +600,12 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
+ if (by_path.deleting != 0) {
+ pseudo_debug(PDBGF_FILE, "inode mismatch for '%s' -- old one was marked for deletion, deleting.\n",
+ msg->path);
+- pdb_did_unlink_file(msg->path, by_path.deleting);
++ /* in this case, we don't trust the
++ * existing entries, so we will do the
++ * more expensive sweep for stray
++ * xattrs.
++ */
++ pdb_did_unlink_file(msg->path, NULL, by_path.deleting);
+ } else {
+ pseudo_diag("inode mismatch: '%s' ino %llu in db, %llu in request.\n",
+ msg->path,
+@@ -698,7 +703,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
+ if (by_ino.deleting != 0) {
+ pseudo_debug(PDBGF_FILE, "inode mismatch for '%s' -- old one was marked for deletion, deleting.\n",
+ msg->path);
+- pdb_did_unlink_file(path_by_ino, by_ino.deleting);
++ pdb_did_unlink_file(path_by_ino, &by_ino, by_ino.deleting);
+ } else {
+ pseudo_diag("path mismatch [%d link%s]: ino %llu db '%s' req '%s'.\n",
+ msg->nlink,
+@@ -930,7 +935,7 @@ pseudo_op(pseudo_msg_t *msg, const char *program, const char *tag, char **respon
+ }
+ break;
+ case OP_DID_UNLINK:
+- pdb_did_unlink_file(msg->path, msg->client);
++ pdb_did_unlink_file(msg->path, msg, msg->client);
+ break;
+ case OP_CANCEL_UNLINK:
+ pdb_cancel_unlink_file(msg);
+diff --git a/pseudo_db.c b/pseudo_db.c
+index 289bb29..e7dd193 100644
+--- a/pseudo_db.c
++++ b/pseudo_db.c
+@@ -1848,7 +1848,7 @@ pdb_did_unlink_files(int deleting) {
+
+ /* confirm deletion of a specific file by a given client */
+ int
+-pdb_did_unlink_file(char *path, int deleting) {
++pdb_did_unlink_file(char *path, pseudo_msg_t *msg, int deleting) {
+ static sqlite3_stmt *delete_exact;
+ int rc, exact;
+ char *sql_delete_exact = "DELETE FROM files WHERE path = ? AND deleting = ?;";
+@@ -1878,11 +1878,14 @@ pdb_did_unlink_file(char *path, int deleting) {
+ exact = sqlite3_changes(file_db);
+ pseudo_debug(PDBGF_DB, "(exact %d)\n", exact);
+ sqlite3_reset(delete_exact);
+- sqlite3_clear_bindings(delete_exact);
+- /* we have to clean everything because we don't know for sure the
+- * device/inode...
+- */
+- pdb_clear_unused_xattrs();
++ if (msg) {
++ pdb_clear_xattrs(msg);
++ } else {
++ /* we have to clean everything because we don't know for sure the
++ * device/inode...
++ */
++ pdb_clear_unused_xattrs();
++ }
+ return rc != SQLITE_DONE;
+ }
+
+diff --git a/pseudo_db.h b/pseudo_db.h
+index a54f3c1..1b2599c 100644
+--- a/pseudo_db.h
++++ b/pseudo_db.h
+@@ -39,7 +39,7 @@ typedef struct {
+
+ extern int pdb_maybe_backup(void);
+ extern int pdb_cancel_unlink_file(pseudo_msg_t *msg);
+-extern int pdb_did_unlink_file(char *path, int deleting);
++extern int pdb_did_unlink_file(char *path, pseudo_msg_t *msg, int deleting);
+ extern int pdb_did_unlink_files(int deleting);
+ extern int pdb_link_file(pseudo_msg_t *msg);
+ extern int pdb_may_unlink_file(pseudo_msg_t *msg, int deleting);
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-group b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-group
index 81bf73231..bb3dbca60 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-group
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-group
@@ -1,2 +1,3 @@
root:*:0:
mail:*:8:
+nobody:*:99:
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-passwd b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-passwd
index c1458dc0f..0889c5704 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-passwd
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/fallback-passwd
@@ -1 +1,2 @@
root::0:0:root:/home/root:/bin/sh
+nobody:*:65534:65534:nobody:/nonexistent:/bin/sh
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch
deleted file mode 100644
index 8b7f30c66..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/handle-remove-xattr.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From a24cf102967a4966bfabe36c3542fb65f35bf539 Mon Sep 17 00:00:00 2001
-From: Peter Seebach <peter.seebach@windriver.com>
-Date: Wed, 23 Mar 2016 11:55:25 -0500
-Subject: actually handle remove_xattr correctly
-
-The path is required but wasn't being extracted from the client's message,
-resulting in xattr removal never working. This does not fully address some
-deeper problems with the xattr implementation, but at least the common
-removal case works.
-
-Upstream-Status: Backport
-
-Index: pseudo-1.7.5/ChangeLog.txt
-===================================================================
---- pseudo-1.7.5.orig/ChangeLog.txt
-+++ pseudo-1.7.5/ChangeLog.txt
-@@ -1,3 +1,7 @@
-+2016-03-22:
-+ * (seebs) extract path from message for remove_xattr so it
-+ actually works.
-+
- 2016-02-09:
- * (seebs) 1.7.5 release
-
-Index: pseudo-1.7.5/pseudo.c
-===================================================================
---- pseudo-1.7.5.orig/pseudo.c
-+++ pseudo-1.7.5/pseudo.c
-@@ -543,6 +543,7 @@ pseudo_op(pseudo_msg_t *msg, const char
- case OP_GET_XATTR:
- case OP_LIST_XATTR:
- case OP_REPLACE_XATTR:
-+ case OP_REMOVE_XATTR:
- case OP_SET_XATTR:
- /* In a rename there are two paths, null separated in msg->path */
- initial_len = strlen(msg->path);
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/moreretries.patch b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/moreretries.patch
index c1e555236..adea2665b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/moreretries.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/files/moreretries.patch
@@ -4,15 +4,15 @@ server shutdowns.
Upstream-Status: Pending
RP 2016/2/28
-Index: pseudo-1.7.5/pseudo_client.c
+Index: git/pseudo_client.c
===================================================================
---- pseudo-1.7.5.orig/pseudo_client.c
-+++ pseudo-1.7.5/pseudo_client.c
-@@ -1214,7 +1214,7 @@ pseudo_client_setup(void) {
- return 1;
+--- git.orig/pseudo_client.c
++++ git/pseudo_client.c
+@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) {
+ }
}
--#define PSEUDO_RETRIES 50
+-#define PSEUDO_RETRIES 20
+#define PSEUDO_RETRIES 250
static pseudo_msg_t *
pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) {
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo.inc b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo.inc
index 0de7b3615..18ce9f925 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo.inc
@@ -26,6 +26,8 @@ do_configure () {
NO32LIBS ??= "1"
NO32LIBS_class-nativesdk = "1"
+PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
+
# Compile for the local machine arch...
do_compile () {
if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -112,10 +114,15 @@ do_install () {
oe_runmake 'DESTDIR=${D}' ${MAKEOPTS} 'LIB=lib/pseudo/lib$(MARK64)' install
}
-# Two below are the same
-# If necessary install for the alternative machine arch. This is only
-# necessary in a native build.
do_install_append_class-native () {
+ install -d ${D}${sysconfdir}
+ # The fallback files should never be modified
+ install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
+ install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
+
+ # Two native/nativesdk entries below are the same
+ # If necessary install for the alternative machine arch. This is only
+ # necessary in a native build.
maybe_make32
if $make32; then
mkdir -p ${D}${prefix}/lib/pseudo/lib
@@ -129,6 +136,7 @@ do_install_append_class-nativesdk () {
mkdir -p ${D}${prefix}/lib/pseudo/lib
cp lib/pseudo/lib/libpseudo.so ${D}${prefix}/lib/pseudo/lib/.
fi
+ chrpath -d ${D}${prefix}/lib/pseudo/lib*/libpseudo.so
}
BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.6.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.6.7.bb
deleted file mode 100644
index b8c20ad65..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.6.7.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require pseudo.inc
-
-SRC_URI = " \
- http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
- file://fallback-passwd \
- file://fallback-group \
-"
-
-SRC_URI[md5sum] = "4cd39502f9bd0e734dee80e08b28a5f1"
-SRC_URI[sha256sum] = "9f2caca5f1579a376a509cd81a81156fc208650add9f0af275da9e911f18f291"
-
-PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
-
-do_install_append_class-native () {
- install -d ${D}${sysconfdir}
- # The fallback files should never be modified
- install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
- install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.7.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.7.5.bb
deleted file mode 100644
index d90e64445..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.7.5.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require pseudo.inc
-
-SRC_URI = " \
- http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
- file://0001-configure-Prune-PIE-flags.patch \
- file://fallback-passwd \
- file://fallback-group \
- file://moreretries.patch \
- file://handle-remove-xattr.patch \
-"
-
-SRC_URI[md5sum] = "c10209938f03128d0c193f041ff3596d"
-SRC_URI[sha256sum] = "fd89cadec984d3b8202aca465898b1bb4350e0d63ba9aa9ac899f6f50270e688"
-
-PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback"
-
-do_install_append_class-native () {
- install -d ${D}${sysconfdir}
- # The fallback files should never be modified
- install -m 444 ${WORKDIR}/fallback-passwd ${D}${sysconfdir}/passwd
- install -m 444 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb
new file mode 100644
index 000000000..fb70034b4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_1.8.1.bb
@@ -0,0 +1,16 @@
+require pseudo.inc
+
+SRC_URI = "http://downloads.yoctoproject.org/releases/pseudo/${BPN}-${PV}.tar.bz2 \
+ file://0001-configure-Prune-PIE-flags.patch \
+ file://fallback-passwd \
+ file://fallback-group \
+ file://moreretries.patch \
+ file://Fix-xattr-performance.patch \
+ file://0001-Don-t-send-SIGUSR1-to-init.patch \
+ file://0001-Quiet-diagnostics-during-startup-for-pseudo-d.patch \
+ file://0002-Use-correct-file-descriptor.patch \
+ file://0003-Fix-renameat-parallel-to-previous-fix-to-rename.patch \
+ "
+
+SRC_URI[md5sum] = "ee38e4fb62ff88ad067b1a5a3825bac7"
+SRC_URI[sha256sum] = "dac4ad2d21228053151121320f629d41dd5c0c87695ac4e7aea286c414192ab5"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index abff1cfd3..8110b1a19 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -1,11 +1,15 @@
require pseudo.inc
-SRCREV = "786c6d3813622d18e12d36c4aa722af6a417c8fa"
-PV = "1.7.5+git${SRCPV}"
+SRCREV = "befc6dbd6469d428c9e0830dbe51bdf7ac39d9ae"
+PV = "1.8.1+git${SRCPV}"
DEFAULT_PREFERENCE = "-1"
-SRC_URI = "git://git.yoctoproject.org/pseudo"
+SRC_URI = "git://git.yoctoproject.org/pseudo \
+ file://0001-configure-Prune-PIE-flags.patch \
+ file://fallback-passwd \
+ file://fallback-group \
+ file://moreretries.patch"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
index 5b134edf0..5b134edf0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
new file mode 100644
index 000000000..109deb043
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/_numpyconfig.h
@@ -0,0 +1,32 @@
+#define NPY_HAVE_ENDIAN_H 1
+#define NPY_SIZEOF_SHORT SIZEOF_SHORT
+#define NPY_SIZEOF_INT SIZEOF_INT
+#define NPY_SIZEOF_LONG SIZEOF_LONG
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_COMPLEX_FLOAT 8
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_COMPLEX_DOUBLE 16
+#define NPY_SIZEOF_LONGDOUBLE 16
+#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
+#define NPY_SIZEOF_PY_INTPTR_T 8
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_OFF_T 8
+#define NPY_NO_SMP 0
+#define NPY_HAVE_DECL_ISNAN
+#define NPY_HAVE_DECL_ISINF
+#define NPY_HAVE_DECL_ISFINITE
+#define NPY_HAVE_DECL_SIGNBIT
+#define NPY_USE_C99_COMPLEX 1
+#define NPY_HAVE_COMPLEX_DOUBLE 1
+#define NPY_HAVE_COMPLEX_FLOAT 1
+#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
+#define NPY_ENABLE_SEPARATE_COMPILATION 1
+#define NPY_USE_C99_FORMATS 1
+#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
+#define NPY_ABI_VERSION 0x01000009
+#define NPY_API_VERSION 0x0000000A
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS 1
+#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h
index c30b868f2..c30b868f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/aarch64/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/config.h
index 17ef186d5..17ef186d5 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
index c4bf6547f..c4bf6547f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/arm/numpyconfig.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/arm/numpyconfig.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/config.h
index 17ef186d5..17ef186d5 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
index c4bf6547f..c4bf6547f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/armeb/numpyconfig.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/armeb/numpyconfig.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/fix_shebang_f2py.patch b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/fix_shebang_f2py.patch
new file mode 100644
index 000000000..8be6e4d21
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/fix_shebang_f2py.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Inappropriate [embedded specific]
+
+Avoids using python from the HOSTs native sysroot for f2py,
+uses TARGET env python instead.
+
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+
+Index: numpy-1.11.0/numpy/f2py/setup.py
+===================================================================
+--- numpy-1.11.0.orig/numpy/f2py/setup.py
++++ numpy-1.11.0/numpy/f2py/setup.py
+@@ -37,10 +37,13 @@ def _get_f2py_shebang():
+ should be ``#!python`` rather than ``#!`` followed by the contents of
+ ``sys.executable``.
+ """
+- if set(('bdist_wheel', 'bdist_egg', 'bdist_wininst',
+- 'bdist_rpm')).intersection(sys.argv):
+- return '#!python'
+- return '#!' + sys.executable
++ #if set(('bdist_wheel', 'bdist_egg', 'bdist_wininst',
++ # 'bdist_rpm')).intersection(sys.argv):
++ # return '#!python'
++ #return '#!' + sys.executable
++
++ # On OE, we need to avoid using the HOSTs python-native, we return env python instead
++ return '#!/usr/bin/env python'
+
+
+ def configuration(parent_package='', top_path=None):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/_numpyconfig.h
new file mode 100644
index 000000000..4c465c216
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/_numpyconfig.h
@@ -0,0 +1,32 @@
+#define NPY_HAVE_ENDIAN_H 1
+#define NPY_SIZEOF_SHORT SIZEOF_SHORT
+#define NPY_SIZEOF_INT SIZEOF_INT
+#define NPY_SIZEOF_LONG SIZEOF_LONG
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_COMPLEX_FLOAT 8
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_COMPLEX_DOUBLE 16
+#define NPY_SIZEOF_LONGDOUBLE 8
+#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 16
+#define NPY_ENABLE_SEPARATE_COMPILATION 1
+#define NPY_SIZEOF_PY_INTPTR_T 4
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_OFF_T 8
+#define NPY_NO_SMP 0
+#define NPY_HAVE_DECL_ISNAN
+#define NPY_HAVE_DECL_ISINF
+#define NPY_HAVE_DECL_ISFINITE
+#define NPY_HAVE_DECL_SIGNBIT
+#define NPY_USE_C99_COMPLEX 1
+#define NPY_HAVE_COMPLEX_DOUBLE 1
+#define NPY_HAVE_COMPLEX_FLOAT 1
+#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
+#define NPY_USE_C99_FORMATS 1
+#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
+#define NPY_ABI_VERSION 0x01000009
+#define NPY_API_VERSION 0x0000000A
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS 1
+#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/config.h
index 2f6135adc..2f6135adc 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/_numpyconfig.h
new file mode 100644
index 000000000..debb39009
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/_numpyconfig.h
@@ -0,0 +1,32 @@
+#define NPY_HAVE_ENDIAN_H 1
+#define NPY_SIZEOF_SHORT SIZEOF_SHORT
+#define NPY_SIZEOF_INT SIZEOF_INT
+#define NPY_SIZEOF_LONG SIZEOF_LONG
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_COMPLEX_FLOAT 8
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_COMPLEX_DOUBLE 16
+#define NPY_SIZEOF_LONGDOUBLE 16
+#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
+#define NPY_ENABLE_SEPARATE_COMPILATION 1
+#define NPY_SIZEOF_PY_INTPTR_T 8
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_OFF_T 8
+#define NPY_NO_SMP 0
+#define NPY_HAVE_DECL_ISNAN
+#define NPY_HAVE_DECL_ISINF
+#define NPY_HAVE_DECL_ISFINITE
+#define NPY_HAVE_DECL_SIGNBIT
+#define NPY_USE_C99_COMPLEX 1
+#define NPY_HAVE_COMPLEX_DOUBLE 1
+#define NPY_HAVE_COMPLEX_FLOAT 1
+#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
+#define NPY_USE_C99_FORMATS 1
+#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
+#define NPY_ABI_VERSION 0x01000009
+#define NPY_API_VERSION 0x0000000A
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS 1
+#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/config.h
index c30b868f2..c30b868f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/_numpyconfig.h
index 8e2b5d094..8e2b5d094 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64/_numpyconfig.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/_numpyconfig.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/config.h
index c30b868f2..c30b868f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mips64n32/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/config.h
index 17ef186d5..17ef186d5 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/numpyconfig.h
new file mode 100644
index 000000000..0b7cd51af
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/mipsel/numpyconfig.h
@@ -0,0 +1,18 @@
+/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
+/*
+ * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
+ * */
+#define NPY_SIZEOF_SHORT 2
+#define NPY_SIZEOF_INT 4
+#define NPY_SIZEOF_LONG 4
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_LONGDOUBLE 12
+#define NPY_SIZEOF_PY_INTPTR_T 4
+#define NPY_NO_SMP 0
+
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_OFF_T 8
+/* #define CHAR_BIT 8 */
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
new file mode 100644
index 000000000..6e7262ad9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/_numpyconfig.h
@@ -0,0 +1,32 @@
+#define NPY_HAVE_ENDIAN_H 1
+#define NPY_SIZEOF_SHORT SIZEOF_SHORT
+#define NPY_SIZEOF_INT SIZEOF_INT
+#define NPY_SIZEOF_LONG SIZEOF_LONG
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_COMPLEX_FLOAT 8
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_COMPLEX_DOUBLE 16
+#define NPY_SIZEOF_LONGDOUBLE 16
+#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
+#define NPY_ENABLE_SEPARATE_COMPILATION 1
+#define NPY_SIZEOF_PY_INTPTR_T 4
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_OFF_T 8
+#define NPY_NO_SMP 0
+#define NPY_HAVE_DECL_ISNAN
+#define NPY_HAVE_DECL_ISINF
+#define NPY_HAVE_DECL_ISFINITE
+#define NPY_HAVE_DECL_SIGNBIT
+#define NPY_USE_C99_COMPLEX 1
+#define NPY_HAVE_COMPLEX_DOUBLE 1
+#define NPY_HAVE_COMPLEX_FLOAT 1
+#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
+#define NPY_USE_C99_FORMATS 1
+#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
+#define NPY_ABI_VERSION 0x01000009
+#define NPY_API_VERSION 0x0000000A
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS 1
+#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h
index f65d39d5d..f65d39d5d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
new file mode 100644
index 000000000..debb39009
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/_numpyconfig.h
@@ -0,0 +1,32 @@
+#define NPY_HAVE_ENDIAN_H 1
+#define NPY_SIZEOF_SHORT SIZEOF_SHORT
+#define NPY_SIZEOF_INT SIZEOF_INT
+#define NPY_SIZEOF_LONG SIZEOF_LONG
+#define NPY_SIZEOF_FLOAT 4
+#define NPY_SIZEOF_COMPLEX_FLOAT 8
+#define NPY_SIZEOF_DOUBLE 8
+#define NPY_SIZEOF_COMPLEX_DOUBLE 16
+#define NPY_SIZEOF_LONGDOUBLE 16
+#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
+#define NPY_ENABLE_SEPARATE_COMPILATION 1
+#define NPY_SIZEOF_PY_INTPTR_T 8
+#define NPY_SIZEOF_PY_LONG_LONG 8
+#define NPY_SIZEOF_LONGLONG 8
+#define NPY_SIZEOF_OFF_T 8
+#define NPY_NO_SMP 0
+#define NPY_HAVE_DECL_ISNAN
+#define NPY_HAVE_DECL_ISINF
+#define NPY_HAVE_DECL_ISFINITE
+#define NPY_HAVE_DECL_SIGNBIT
+#define NPY_USE_C99_COMPLEX 1
+#define NPY_HAVE_COMPLEX_DOUBLE 1
+#define NPY_HAVE_COMPLEX_FLOAT 1
+#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
+#define NPY_USE_C99_FORMATS 1
+#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
+#define NPY_ABI_VERSION 0x01000009
+#define NPY_API_VERSION 0x0000000A
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS 1
+#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
index c30b868f2..c30b868f2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/powerpc64/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/remove-build-path-in-comments.patch b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/remove-build-path-in-comments.patch
index eb8a71a2e..eb8a71a2e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/remove-build-path-in-comments.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/remove-build-path-in-comments.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
index b33036164..b33036164 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/_numpyconfig.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/_numpyconfig.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h
index 0ce63b7d2..0ce63b7d2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86-64/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86-64/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/config.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/config.h
index 08e41e3d9..08e41e3d9 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/config.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/config.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
index ff7938cd9..ff7938cd9 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/x86/numpyconfig.h
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/files/x86/numpyconfig.h
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python-numpy_1.11.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python-numpy_1.11.1.bb
new file mode 100644
index 000000000..c5af720a9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python-numpy_1.11.1.bb
@@ -0,0 +1,104 @@
+SUMMARY = "A sophisticated Numeric Processing Package for Python"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7e51a5677b22b865abbfb3dff6ffb2d0"
+
+SRCNAME = "numpy"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/n/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
+ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
+ file://remove-build-path-in-comments.patch \
+ file://fix_shebang_f2py.patch \
+ ${CONFIGFILESURI} "
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/numpy/files/"
+
+CONFIGFILESURI ?= ""
+
+CONFIGFILESURI_aarch64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_arm = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_armeb = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_mipsel = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_x86 = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_x86-64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_powerpc = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_powerpc64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips64n32 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+
+S = "${WORKDIR}/numpy-${PV}"
+
+inherit setuptools
+
+# Make the build fail and replace *config.h with proper one
+# This is a ugly, ugly hack - Koen
+do_compile_prepend_class-target() {
+ ${STAGING_BINDIR_NATIVE}/python-native/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
+ true
+ cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/
+}
+
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a"
+
+SRC_URI[md5sum] = "2f44a895a8104ffac140c3a70edbd450"
+SRC_URI[sha256sum] = "dc4082c43979cc856a2bf352a8297ea109ccb3244d783ae067eb2ee5b0d577cd"
+
+# install what is needed for numpy.test()
+RDEPENDS_${PN} = "python-unittest \
+ python-difflib \
+ python-pprint \
+ python-pickle \
+ python-shell \
+ python-nose \
+ python-doctest \
+ python-datetime \
+ python-distutils \
+ python-misc \
+ python-mmap \
+ python-netclient \
+ python-numbers \
+ python-pydoc \
+ python-pkgutil \
+ python-email \
+ python-subprocess \
+ python-compression \
+ python-ctypes \
+ python-threading \
+"
+
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python3-numpy_1.11.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python3-numpy_1.11.0.bb
new file mode 100644
index 000000000..3cca2239d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python-numpy/python3-numpy_1.11.0.bb
@@ -0,0 +1,105 @@
+SUMMARY = "A sophisticated Numeric Processing Package for Python"
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7e51a5677b22b865abbfb3dff6ffb2d0"
+
+SRCNAME = "numpy"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/n/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
+ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
+ file://remove-build-path-in-comments.patch \
+ file://fix_shebang_f2py.patch \
+ ${CONFIGFILESURI} "
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/numpy/files/"
+
+CONFIGFILESURI ?= ""
+
+CONFIGFILESURI_aarch64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_arm = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_armeb = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_mipsel = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_x86 = " \
+ file://config.h \
+ file://numpyconfig.h \
+"
+CONFIGFILESURI_x86-64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_powerpc = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_powerpc64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips64 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+CONFIGFILESURI_mips64n32 = " \
+ file://config.h \
+ file://_numpyconfig.h \
+"
+
+S = "${WORKDIR}/numpy-${PV}"
+
+inherit setuptools3
+
+# Make the build fail and replace *config.h with proper one
+# This is a ugly, ugly hack - Koen
+do_compile_prepend_class-target() {
+ ${STAGING_BINDIR_NATIVE}/python3-native/python3 setup.py build ${DISTUTILS_BUILD_ARGS} || \
+ true
+ cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/
+}
+
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a"
+
+SRC_URI[md5sum] = "bc56fb9fc2895aa4961802ffbdb31d0b"
+SRC_URI[sha256sum] = "a1d1268d200816bfb9727a7a27b78d8e37ecec2e4d5ebd33eb64e2789e0db43e"
+
+# install what is needed for numpy.test()
+RDEPENDS_${PN} = "python3-unittest \
+ python3-difflib \
+ python3-pprint \
+ python3-pickle \
+ python3-shell \
+ python3-nose \
+ python3-doctest \
+ python3-datetime \
+ python3-distutils \
+ python3-misc \
+ python3-mmap \
+ python3-netclient \
+ python3-numbers \
+ python3-pydoc \
+ python3-pkgutil \
+ python3-email \
+ python3-subprocess \
+ python3-compression \
+ python3-ctypes \
+ python3-threading \
+ python3-textutils \
+"
+
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-3.5-manifest.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-3.5-manifest.inc
index 335c3ffdb..304611432 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-3.5-manifest.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-3.5-manifest.inc
@@ -5,14 +5,18 @@
-PROVIDES+="${PN}-2to3 ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-distutils-staticdev ${PN}-doctest ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc "
+PROVIDES+="${PN}-2to3 ${PN}-argparse ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-distutils-staticdev ${PN}-doctest ${PN}-email ${PN}-enum ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-selectors ${PN}-shell ${PN}-signal ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc "
-PACKAGES="${PN}-dbg ${PN}-2to3 ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils-staticdev ${PN}-distutils ${PN}-doctest ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-modules"
+PACKAGES="${PN}-dbg ${PN}-2to3 ${PN}-argparse ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils-staticdev ${PN}-distutils ${PN}-doctest ${PN}-email ${PN}-enum ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-selectors ${PN}-shell ${PN}-signal ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-modules"
SUMMARY_${PN}-2to3="Python automated Python 2 to 3 code translator"
RDEPENDS_${PN}-2to3="${PN}-core"
FILES_${PN}-2to3="${libdir}/python3.5/lib2to3 "
+SUMMARY_${PN}-argparse="Python command line argument parser"
+RDEPENDS_${PN}-argparse="${PN}-core ${PN}-codecs ${PN}-textutils"
+FILES_${PN}-argparse="${libdir}/python3.5/argparse.* "
+
SUMMARY_${PN}-asyncio="Python Asynchronous I/O, event loop, coroutines and tasks"
RDEPENDS_${PN}-asyncio="${PN}-core"
FILES_${PN}-asyncio="${libdir}/python3.5/asyncio "
@@ -30,19 +34,19 @@ RDEPENDS_${PN}-compile="${PN}-core"
FILES_${PN}-compile="${libdir}/python3.5/py_compile.* ${libdir}/python3.5/compileall.* "
SUMMARY_${PN}-compression="Python high-level compression support"
-RDEPENDS_${PN}-compression="${PN}-core ${PN}-codecs"
-FILES_${PN}-compression="${libdir}/python3.5/gzip.* ${libdir}/python3.5/zipfile.* ${libdir}/python3.5/tarfile.* ${libdir}/python3.5/lib-dynload/bz2.*.so "
+RDEPENDS_${PN}-compression="${PN}-core ${PN}-codecs ${PN}-importlib ${PN}-threading ${PN}-shell"
+FILES_${PN}-compression="${libdir}/python3.5/gzip.* ${libdir}/python3.5/zipfile.* ${libdir}/python3.5/tarfile.* ${libdir}/python3.5/lib-dynload/bz2.*.so ${libdir}/python3.5/lib-dynload/zlib.*.so "
SUMMARY_${PN}-core="Python interpreter and core modules"
RDEPENDS_${PN}-core="${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math"
-FILES_${PN}-core="${libdir}/python3.5/__future__.* ${libdir}/python3.5/_abcoll.* ${libdir}/python3.5/abc.* ${libdir}/python3.5/ast.* ${libdir}/python3.5/copy.* ${libdir}/python3.5/copyreg.* ${libdir}/python3.5/ConfigParser.* ${libdir}/python3.5/genericpath.* ${libdir}/python3.5/getopt.* ${libdir}/python3.5/linecache.* ${libdir}/python3.5/new.* ${libdir}/python3.5/os.* ${libdir}/python3.5/posixpath.* ${libdir}/python3.5/struct.* ${libdir}/python3.5/warnings.* ${libdir}/python3.5/site.* ${libdir}/python3.5/stat.* ${libdir}/python3.5/UserDict.* ${libdir}/python3.5/UserList.* ${libdir}/python3.5/UserString.* ${libdir}/python3.5/lib-dynload/binascii.*.so ${libdir}/python3.5/lib-dynload/_struct.*.so ${libdir}/python3.5/lib-dynload/time.*.so ${libdir}/python3.5/lib-dynload/xreadlines.*.so ${libdir}/python3.5/types.* ${libdir}/python3.5/platform.* ${bindir}/python* ${libdir}/python3.5/_weakrefset.* ${libdir}/python3.5/sysconfig.* ${libdir}/python3.5/_sysconfigdata.* ${libdir}/python3.5/config/Makefile ${includedir}/python${PYTHON_BINABI}/pyconfig*.h ${libdir}/python${PYTHON_MAJMIN}/collections ${libdir}/python${PYTHON_MAJMIN}/_collections_abc.* ${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.* ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
+FILES_${PN}-core="${libdir}/python3.5/__future__.* ${libdir}/python3.5/_abcoll.* ${libdir}/python3.5/abc.* ${libdir}/python3.5/ast.* ${libdir}/python3.5/copy.* ${libdir}/python3.5/copyreg.* ${libdir}/python3.5/configparser.* ${libdir}/python3.5/genericpath.* ${libdir}/python3.5/getopt.* ${libdir}/python3.5/linecache.* ${libdir}/python3.5/new.* ${libdir}/python3.5/os.* ${libdir}/python3.5/posixpath.* ${libdir}/python3.5/struct.* ${libdir}/python3.5/warnings.* ${libdir}/python3.5/site.* ${libdir}/python3.5/stat.* ${libdir}/python3.5/UserDict.* ${libdir}/python3.5/UserList.* ${libdir}/python3.5/UserString.* ${libdir}/python3.5/lib-dynload/binascii.*.so ${libdir}/python3.5/lib-dynload/_struct.*.so ${libdir}/python3.5/lib-dynload/time.*.so ${libdir}/python3.5/lib-dynload/xreadlines.*.so ${libdir}/python3.5/types.* ${libdir}/python3.5/platform.* ${bindir}/python* ${libdir}/python3.5/_weakrefset.* ${libdir}/python3.5/sysconfig.* ${libdir}/python3.5/_sysconfigdata.* ${libdir}/python3.5/config/Makefile ${includedir}/python${PYTHON_BINABI}/pyconfig*.h ${libdir}/python${PYTHON_MAJMIN}/collections ${libdir}/python${PYTHON_MAJMIN}/_collections_abc.* ${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.* ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
SUMMARY_${PN}-crypt="Python basic cryptographic and hashing support"
RDEPENDS_${PN}-crypt="${PN}-core"
FILES_${PN}-crypt="${libdir}/python3.5/hashlib.* ${libdir}/python3.5/md5.* ${libdir}/python3.5/sha.* ${libdir}/python3.5/lib-dynload/crypt.*.so ${libdir}/python3.5/lib-dynload/_hashlib.*.so ${libdir}/python3.5/lib-dynload/_sha256.*.so ${libdir}/python3.5/lib-dynload/_sha512.*.so "
SUMMARY_${PN}-ctypes="Python C types support"
-RDEPENDS_${PN}-ctypes="${PN}-core"
+RDEPENDS_${PN}-ctypes="${PN}-core ${PN}-subprocess"
FILES_${PN}-ctypes="${libdir}/python3.5/ctypes ${libdir}/python3.5/lib-dynload/_ctypes.*.so ${libdir}/python3.5/lib-dynload/_ctypes_test.*.so "
SUMMARY_${PN}-curses="Python curses support"
@@ -51,7 +55,7 @@ FILES_${PN}-curses="${libdir}/python3.5/curses ${libdir}/python3.5/lib-dynload/_
SUMMARY_${PN}-datetime="Python calendar and time support"
RDEPENDS_${PN}-datetime="${PN}-core ${PN}-codecs"
-FILES_${PN}-datetime="${libdir}/python3.5/_strptime.* ${libdir}/python3.5/calendar.* ${libdir}/python3.5/lib-dynload/datetime.*.so "
+FILES_${PN}-datetime="${libdir}/python3.5/_strptime.* ${libdir}/python3.5/calendar.* ${libdir}/python3.5/datetime.* ${libdir}/python3.5/lib-dynload/_datetime.*.so "
SUMMARY_${PN}-db="Python file-based database support"
RDEPENDS_${PN}-db="${PN}-core"
@@ -85,6 +89,10 @@ SUMMARY_${PN}-email="Python email support"
RDEPENDS_${PN}-email="${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient"
FILES_${PN}-email="${libdir}/python3.5/imaplib.* ${libdir}/python3.5/email "
+SUMMARY_${PN}-enum="Python support for enumerations"
+RDEPENDS_${PN}-enum="${PN}-core"
+FILES_${PN}-enum="${libdir}/python3.5/enum.* "
+
SUMMARY_${PN}-fcntl="Python's fcntl interface"
RDEPENDS_${PN}-fcntl="${PN}-core"
FILES_${PN}-fcntl="${libdir}/python3.5/lib-dynload/fcntl.*.so "
@@ -106,7 +114,7 @@ RDEPENDS_${PN}-image="${PN}-core"
FILES_${PN}-image="${libdir}/python3.5/colorsys.* ${libdir}/python3.5/imghdr.* ${libdir}/python3.5/lib-dynload/imageop.*.so ${libdir}/python3.5/lib-dynload/rgbimg.*.so "
SUMMARY_${PN}-importlib="Python import implementation library"
-RDEPENDS_${PN}-importlib="${PN}-core"
+RDEPENDS_${PN}-importlib="${PN}-core ${PN}-lang"
FILES_${PN}-importlib="${libdir}/python3.5/importlib "
SUMMARY_${PN}-io="Python low-level I/O"
@@ -118,8 +126,8 @@ RDEPENDS_${PN}-json="${PN}-core ${PN}-math ${PN}-re"
FILES_${PN}-json="${libdir}/python3.5/json ${libdir}/python3.5/lib-dynload/_json.*.so "
SUMMARY_${PN}-lang="Python low-level language support"
-RDEPENDS_${PN}-lang="${PN}-core"
-FILES_${PN}-lang="${libdir}/python3.5/lib-dynload/_bisect.*.so ${libdir}/python3.5/lib-dynload/_collections.*.so ${libdir}/python3.5/lib-dynload/_heapq.*.so ${libdir}/python3.5/lib-dynload/_weakref.*.so ${libdir}/python3.5/lib-dynload/_functools.*.so ${libdir}/python3.5/lib-dynload/array.*.so ${libdir}/python3.5/lib-dynload/itertools.*.so ${libdir}/python3.5/lib-dynload/operator.*.so ${libdir}/python3.5/lib-dynload/parser.*.so ${libdir}/python3.5/atexit.* ${libdir}/python3.5/bisect.* ${libdir}/python3.5/code.* ${libdir}/python3.5/codeop.* ${libdir}/python3.5/collections.* ${libdir}/python3.5/_collections_abc.* ${libdir}/python3.5/dis.* ${libdir}/python3.5/functools.* ${libdir}/python3.5/heapq.* ${libdir}/python3.5/inspect.* ${libdir}/python3.5/keyword.* ${libdir}/python3.5/opcode.* ${libdir}/python3.5/symbol.* ${libdir}/python3.5/repr.* ${libdir}/python3.5/token.* ${libdir}/python3.5/tokenize.* ${libdir}/python3.5/traceback.* ${libdir}/python3.5/weakref.* "
+RDEPENDS_${PN}-lang="${PN}-core ${PN}-importlib"
+FILES_${PN}-lang="${libdir}/python3.5/lib-dynload/_bisect.*.so ${libdir}/python3.5/lib-dynload/_collections.*.so ${libdir}/python3.5/lib-dynload/_heapq.*.so ${libdir}/python3.5/lib-dynload/_weakref.*.so ${libdir}/python3.5/lib-dynload/_functools.*.so ${libdir}/python3.5/lib-dynload/array.*.so ${libdir}/python3.5/lib-dynload/itertools.*.so ${libdir}/python3.5/lib-dynload/operator.*.so ${libdir}/python3.5/lib-dynload/parser.*.so ${libdir}/python3.5/atexit.* ${libdir}/python3.5/bisect.* ${libdir}/python3.5/code.* ${libdir}/python3.5/codeop.* ${libdir}/python3.5/collections.* ${libdir}/python3.5/_collections_abc.* ${libdir}/python3.5/contextlib.* ${libdir}/python3.5/dis.* ${libdir}/python3.5/functools.* ${libdir}/python3.5/heapq.* ${libdir}/python3.5/inspect.* ${libdir}/python3.5/keyword.* ${libdir}/python3.5/opcode.* ${libdir}/python3.5/operator.* ${libdir}/python3.5/symbol.* ${libdir}/python3.5/repr.* ${libdir}/python3.5/token.* ${libdir}/python3.5/tokenize.* ${libdir}/python3.5/traceback.* ${libdir}/python3.5/weakref.* "
SUMMARY_${PN}-logging="Python logging support"
RDEPENDS_${PN}-logging="${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold"
@@ -130,7 +138,7 @@ RDEPENDS_${PN}-mailbox="${PN}-core ${PN}-mime"
FILES_${PN}-mailbox="${libdir}/python3.5/mailbox.* "
SUMMARY_${PN}-math="Python math support"
-RDEPENDS_${PN}-math="${PN}-core"
+RDEPENDS_${PN}-math="${PN}-core ${PN}-crypt"
FILES_${PN}-math="${libdir}/python3.5/lib-dynload/cmath.*.so ${libdir}/python3.5/lib-dynload/math.*.so ${libdir}/python3.5/lib-dynload/_random.*.so ${libdir}/python3.5/random.* ${libdir}/python3.5/sets.* "
SUMMARY_${PN}-mime="Python MIME handling APIs"
@@ -193,10 +201,18 @@ SUMMARY_${PN}-resource="Python resource control interface"
RDEPENDS_${PN}-resource="${PN}-core"
FILES_${PN}-resource="${libdir}/python3.5/lib-dynload/resource.*.so "
+SUMMARY_${PN}-selectors="Python High-level I/O multiplexing"
+RDEPENDS_${PN}-selectors="${PN}-core"
+FILES_${PN}-selectors="${libdir}/python3.5/selectors.* "
+
SUMMARY_${PN}-shell="Python shell-like functionality"
-RDEPENDS_${PN}-shell="${PN}-core ${PN}-re"
+RDEPENDS_${PN}-shell="${PN}-core ${PN}-re ${PN}-compression"
FILES_${PN}-shell="${libdir}/python3.5/cmd.* ${libdir}/python3.5/commands.* ${libdir}/python3.5/dircache.* ${libdir}/python3.5/fnmatch.* ${libdir}/python3.5/glob.* ${libdir}/python3.5/popen2.* ${libdir}/python3.5/shlex.* ${libdir}/python3.5/shutil.* "
+SUMMARY_${PN}-signal="Python set handlers for asynchronous events support"
+RDEPENDS_${PN}-signal="${PN}-core ${PN}-enum"
+FILES_${PN}-signal="${libdir}/python3.5/signal.* "
+
SUMMARY_${PN}-smtpd="Python Simple Mail Transport Daemon"
RDEPENDS_${PN}-smtpd="${PN}-core ${PN}-netserver ${PN}-email ${PN}-mime"
FILES_${PN}-smtpd="${bindir}/smtpd.* ${libdir}/python3.5/smtpd.* "
@@ -214,8 +230,8 @@ RDEPENDS_${PN}-stringold="${PN}-core ${PN}-re"
FILES_${PN}-stringold="${libdir}/python3.5/lib-dynload/strop.*.so ${libdir}/python3.5/string.* ${libdir}/python3.5/stringold.* "
SUMMARY_${PN}-subprocess="Python subprocess support"
-RDEPENDS_${PN}-subprocess="${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle"
-FILES_${PN}-subprocess="${libdir}/python3.5/subprocess.* "
+RDEPENDS_${PN}-subprocess="${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle ${PN}-threading ${PN}-signal ${PN}-selectors"
+FILES_${PN}-subprocess="${libdir}/python3.5/subprocess.* ${libdir}/python3.5/lib-dynload/_posixsubprocess.*.so "
SUMMARY_${PN}-syslog="Python syslog interface"
RDEPENDS_${PN}-syslog="${PN}-core"
@@ -235,7 +251,7 @@ FILES_${PN}-textutils="${libdir}/python3.5/lib-dynload/_csv.*.so ${libdir}/pytho
SUMMARY_${PN}-threading="Python threading & synchronization support"
RDEPENDS_${PN}-threading="${PN}-core ${PN}-lang"
-FILES_${PN}-threading="${libdir}/python3.5/_threading_local.* ${libdir}/python3.5/dummy_thread.* ${libdir}/python3.5/dummy_threading.* ${libdir}/python3.5/mutex.* ${libdir}/python3.5/threading.* ${libdir}/python3.5/Queue.* "
+FILES_${PN}-threading="${libdir}/python3.5/_threading_local.* ${libdir}/python3.5/dummy_thread.* ${libdir}/python3.5/dummy_threading.* ${libdir}/python3.5/mutex.* ${libdir}/python3.5/threading.* ${libdir}/python3.5/queue.* "
SUMMARY_${PN}-tkinter="Python Tcl/Tk bindings"
RDEPENDS_${PN}-tkinter="${PN}-core"
@@ -258,7 +274,7 @@ RDEPENDS_${PN}-xmlrpc="${PN}-core ${PN}-xml ${PN}-netserver ${PN}-lang"
FILES_${PN}-xmlrpc="${libdir}/python3.5/xmlrpclib.* ${libdir}/python3.5/SimpleXMLRPCServer.* ${libdir}/python3.5/DocXMLRPCServer.* ${libdir}/python3.5/xmlrpc "
SUMMARY_${PN}-modules="All Python modules"
-RDEPENDS_${PN}-modules="${PN}-2to3 ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc "
+RDEPENDS_${PN}-modules="${PN}-2to3 ${PN}-argparse ${PN}-asyncio ${PN}-audio ${PN}-codecs ${PN}-compile ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-difflib ${PN}-distutils ${PN}-doctest ${PN}-email ${PN}-enum ${PN}-fcntl ${PN}-gdbm ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-reprlib ${PN}-resource ${PN}-selectors ${PN}-shell ${PN}-signal ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc "
ALLOW_EMPTY_${PN}-modules = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-async.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-async.inc
new file mode 100644
index 000000000..2c5cb4d19
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-async.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Python framework to process interdependent tasks in a pool of workers"
+HOMEPAGE = "http://github.com/gitpython-developers/async"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/a/async/async-${PV}.tar.gz"
+SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b"
+SRC_URI[sha256sum] = "ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/async/"
+
+S = "${WORKDIR}/async-${PV}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-async_0.6.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-async_0.6.2.bb
index ad0a61776..d855e42a7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-async_0.6.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-async_0.6.2.bb
@@ -1,19 +1,5 @@
-SUMMARY = "Python framework to process interdependent tasks in a pool of workers"
-HOMEPAGE = "http://github.com/gitpython-developers/async"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e"
-
-SRC_URI = "http://pypi.python.org/packages/source/a/async/async-${PV}.tar.gz"
-SRC_URI[md5sum] = "9b06b5997de2154f3bc0273f80bcef6b"
-SRC_URI[sha256sum] = "ac6894d876e45878faae493b0cf61d0e28ec417334448ac0a6ea2229d8343051"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/async/"
-
-S = "${WORKDIR}/async-${PV}"
+require python-async.inc
inherit setuptools
RDEPENDS_${PN} += "python-threading python-lang"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-dbus_1.2.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-dbus_1.2.0.bb
deleted file mode 100644
index b314dce1c..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-dbus_1.2.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Python bindings for the DBus inter-process communication system"
-SECTION = "devel/python"
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0b83047ce9e948b67c0facc5f233476a"
-DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "b09cd2d1a057cc432ce944de3fc06bf7"
-SRC_URI[sha256sum] = "e12c6c8b2bf3a9302f75166952cbe41d6b38c3441bbc6767dbd498942316c6df"
-S = "${WORKDIR}/dbus-python-${PV}"
-
-inherit distutils-base autotools pkgconfig
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[docs] = "--enable-html-docs,--disable-html-docs,python-docutils-native"
-PACKAGECONFIG[api-docs] = "--enable-api-docs,--disable-api-docs,python-docutils-native python-epydoc-native"
-
-export BUILD_SYS
-export HOST_SYS
-
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml"
-
-FILES_${PN}-dev += "${libdir}/pkgconfig"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-docutils_0.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-docutils_0.12.bb
deleted file mode 100644
index 8cda88d27..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-docutils_0.12.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Text processing system for documentation"
-HOMEPAGE = "http://docutils.sourceforge.net"
-SECTION = "devel/python"
-LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=a722fbdc20347db7b69223594dd54574"
-
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
-SRC_URI[md5sum] = "4622263b62c5c771c03502afa3157768"
-SRC_URI[sha256sum] = "c7db717810ab6965f66c8cf0398a98c9d8df982da39b4cd7f162911eb89596fa"
-
-S = "${WORKDIR}/docutils-${PV}"
-
-inherit distutils
-
-BBCLASSEXTEND = "native"
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-git.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-git.inc
new file mode 100644
index 000000000..13c097abf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-git.inc
@@ -0,0 +1,21 @@
+SUMMARY = "Python library used to interact with Git repositories"
+DESCRIPTION = "GitPython provides object model read and write access to \
+a git repository. Access repository information conveniently, alter the \
+index directly, handle remotes, or go down to low-level object database \
+access with big-files support."
+HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/G/GitPython/GitPython-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "aa0ba9df0abe4c8f35dd7bb9be85d56e"
+SRC_URI[sha256sum] = "d8e7adaacceedd3d043e6cd2544f57dbe00c53fc26374880b7cea67f3188aa68"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/GitPython/"
+UPSTREAM_CHECK_REGEX = "/GitPython/(?P<pver>(\d+[\.\-_]*)+)"
+
+S = "${WORKDIR}/GitPython-${PV}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_1.0.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_1.0.2.bb
deleted file mode 100644
index f00f805a8..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_1.0.2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Python library used to interact with Git repositories"
-DESCRIPTION = "GitPython provides object model read and write access to \
-a git repository. Access repository information conveniently, alter the \
-index directly, handle remotes, or go down to low-level object database \
-access with big-files support."
-HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8b8d26c37c1d5a04f9b0186edbebc183"
-DEPENDS = "python-gitdb"
-
-SRC_URI = "http://pypi.python.org/packages/source/G/GitPython/GitPython-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "d92d96a8da0fc77cf141d3e16084e094"
-SRC_URI[sha256sum] = "85de72556781480a38897a77de5b458ae3838b0fd589593679a1b5f34d181d84"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/GitPython/"
-UPSTREAM_CHECK_REGEX = "/GitPython/(?P<pver>(\d+[\.\-_]*)+)"
-
-S = "${WORKDIR}/GitPython-${PV}"
-
-inherit setuptools
-
-RDEPENDS_${PN} += "python-gitdb python-lang python-io python-shell python-math python-re python-subprocess python-stringold python-unixadmin"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_2.0.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_2.0.7.bb
new file mode 100644
index 000000000..e49dbea54
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-git_2.0.7.bb
@@ -0,0 +1,7 @@
+require python-git.inc
+
+DEPENDS = "python-gitdb"
+
+inherit setuptools
+
+RDEPENDS_${PN} += "python-gitdb python-lang python-io python-shell python-math python-re python-subprocess python-stringold python-unixadmin"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb.inc
new file mode 100644
index 000000000..08193fbf2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb.inc
@@ -0,0 +1,16 @@
+SUMMARY = "A pure-Python git object database"
+HOMEPAGE = "http://github.com/gitpython-developers/gitdb"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/g/gitdb/gitdb-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "44e4366b8bdfd306b075c3a52c96ae1a"
+SRC_URI[sha256sum] = "a3ebbc27be035a2e874ed904df516e35f4a29a778a764385de09de9e0f139658"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/gitdb/"
+
+S = "${WORKDIR}/gitdb-${PV}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb_0.6.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb_0.6.4.bb
index c82df1ef7..177739579 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb_0.6.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-gitdb_0.6.4.bb
@@ -1,21 +1,7 @@
-SUMMARY = "A pure-Python git object database"
-HOMEPAGE = "http://github.com/gitpython-developers/gitdb"
-SECTION = "devel/python"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=59e5ecb13339a936eedf83282eaf4528"
-DEPENDS = "python-async python-smmap"
-
-SRC_URI = "https://pypi.python.org/packages/source/g/gitdb/gitdb-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "44e4366b8bdfd306b075c3a52c96ae1a"
-SRC_URI[sha256sum] = "a3ebbc27be035a2e874ed904df516e35f4a29a778a764385de09de9e0f139658"
+require python-gitdb.inc
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/gitdb/"
-
-S = "${WORKDIR}/gitdb-${PV}"
+DEPENDS = "python-async python-smmap"
inherit distutils
RDEPENDS_${PN} += "python-smmap python-async python-mmap python-lang python-zlib python-io python-shell"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch
deleted file mode 100644
index 2575306be..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 07d4f095a9e22ae676a8d68073101131e65012dc Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Tue, 15 Nov 2011 13:16:54 +0100
-Subject: [PATCH] python imaging setup.py: force paths for zlib, freetype and jpeg and don't add host paths
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- setup.py | 14 +++-----------
- 1 files changed, 3 insertions(+), 11 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 5d4d53a..b1a22ec 100644
---- a/setup.py
-+++ b/setup.py
-@@ -34,10 +34,10 @@ def libinclude(root):
- # TIFF_ROOT = libinclude("/opt/tiff")
-
- TCL_ROOT = None
--JPEG_ROOT = None
--ZLIB_ROOT = None
-+JPEG_ROOT = os.environ['STAGING_LIBDIR']
-+ZLIB_ROOT = os.environ['STAGING_LIBDIR']
- TIFF_ROOT = None
--FREETYPE_ROOT = None
-+FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
- LCMS_ROOT = None
-
- # FIXME: add mechanism to explicitly *disable* the use of a library
-@@ -147,7 +147,6 @@ class pil_build_ext(build_ext):
- add_directory(library_dirs, "/opt/local/lib")
- add_directory(include_dirs, "/opt/local/include")
-
-- add_directory(library_dirs, "/usr/local/lib")
- # FIXME: check /opt/stuff directories here?
-
- prefix = sysconfig.get_config_var("prefix")
-@@ -207,13 +206,6 @@ class pil_build_ext(build_ext):
- if os.path.isfile(os.path.join(tcl_dir, "tk.h")):
- add_directory(include_dirs, tcl_dir)
-
-- # standard locations
-- add_directory(library_dirs, "/usr/local/lib")
-- add_directory(include_dirs, "/usr/local/include")
--
-- add_directory(library_dirs, "/usr/lib")
-- add_directory(include_dirs, "/usr/include")
--
- #
- # insert new dirs *before* default libs, to avoid conflicts
- # between Python PYD stub libs and real libraries
---
-1.7.2.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
deleted file mode 100644
index 4960ed466..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/allow.to.disable.some.features.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-At least lcms wasn't deterministicly detected from sysroot.
-
-This will allow to export LCMS_ENABLED=False when lcms isn't in PACKAGECONFIG.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
-diff -uNr Imaging-1.1.7.orig/setup.py Imaging-1.1.7/setup.py
---- Imaging-1.1.7.orig/setup.py 2013-07-22 10:17:02.081457075 +0200
-+++ Imaging-1.1.7/setup.py 2013-07-22 13:10:09.029707492 +0200
-@@ -39,6 +39,12 @@
- TIFF_ROOT = None
- FREETYPE_ROOT = os.environ['STAGING_LIBDIR'], os.environ['STAGING_INCDIR']
- LCMS_ROOT = None
-+TCL_ENABLED = os.getenv('TCL_ENABLED', "True")
-+JPEG_ENABLED = os.getenv('JPEG_ENABLED', "True")
-+ZLIB_ENABLED = os.getenv('ZLIB_ENABLED', "True")
-+TIFF_ENABLED = os.getenv('TIFF_ENABLED', "True")
-+FREETYPE_ENABLED = os.getenv('FREETYPE_ENABLED', "True")
-+LCMS_ENABLED = os.getenv('LCMS_ENABLED', "True")
-
- # FIXME: add mechanism to explicitly *disable* the use of a library
-
-@@ -220,22 +226,22 @@
- zlib = jpeg = tiff = freetype = tcl = tk = lcms = None
- feature = feature()
-
-- if find_include_file(self, "zlib.h"):
-+ if ZLIB_ENABLED == 'True' and find_include_file(self, "zlib.h"):
- if find_library_file(self, "z"):
- feature.zlib = "z"
- elif sys.platform == "win32" and find_library_file(self, "zlib"):
- feature.zlib = "zlib" # alternative name
-
-- if find_include_file(self, "jpeglib.h"):
-+ if JPEG_ENABLED == 'True' and find_include_file(self, "jpeglib.h"):
- if find_library_file(self, "jpeg"):
- feature.jpeg = "jpeg"
- elif sys.platform == "win32" and find_library_file(self, "libjpeg"):
- feature.jpeg = "libjpeg" # alternative name
-
-- if find_library_file(self, "tiff"):
-+ if TIFF_ENABLED == 'True' and find_library_file(self, "tiff"):
- feature.tiff = "tiff"
-
-- if find_library_file(self, "freetype"):
-+ if FREETYPE_ENABLED == 'True' and find_library_file(self, "freetype"):
- # look for freetype2 include files
- freetype_version = 0
- for dir in self.compiler.include_dirs:
-@@ -256,11 +262,11 @@
- if dir:
- add_directory(self.compiler.include_dirs, dir, 0)
-
-- if find_include_file(self, "lcms.h"):
-+ if LCMS_ENABLED == 'True' and find_include_file(self, "lcms.h"):
- if find_library_file(self, "lcms"):
- feature.lcms = "lcms"
-
-- if _tkinter and find_include_file(self, "tk.h"):
-+ if TCL_ENABLED == 'True' and _tkinter and find_include_file(self, "tk.h"):
- # the library names may vary somewhat (e.g. tcl84 or tcl8.4)
- version = TCL_VERSION[0] + TCL_VERSION[2]
- if find_library_file(self, "tcl" + version):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/fix-freetype-includes.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/fix-freetype-includes.patch
deleted file mode 100644
index 9ecc63a0d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging/fix-freetype-includes.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From c6040f618d8f2706a7b46d1cdf37d1a587f9701f Mon Sep 17 00:00:00 2001
-From: Andrew Stromnov <stromnov@gmail.com>
-Date: Thu, 28 Nov 2013 16:58:43 +0400
-Subject: [PATCH] fix compiling with FreeType 2.5.1
-
----
- _imagingft.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/_imagingft.c b/_imagingft.c
-index 47d50bd..f19555b 100644
---- a/_imagingft.c
-+++ b/_imagingft.c
-@@ -59,7 +59,11 @@ struct {
- const char* message;
- } ft_errors[] =
-
-+#if defined(USE_FREETYPE_2_1)
-+#include FT_ERRORS_H
-+#else
- #include <freetype/fterrors.h>
-+#endif
-
- /* -------------------------------------------------------------------- */
- /* font objects */
---
-1.8.5.1
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb
deleted file mode 100644
index a67832827..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Python Imaging Library (PIL)"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README;beginline=92;endline=120;md5=c4371af4579f1e489cf881c1443dd4ec"
-DEPENDS = "freetype jpeg tiff"
-SRCNAME = "Imaging"
-PR = "r5"
-
-SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \
- file://0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch \
- file://allow.to.disable.some.features.patch \
- file://fix-freetype-includes.patch"
-
-SRC_URI[md5sum] = "fc14a54e1ce02a0225be8854bfba478e"
-SRC_URI[sha256sum] = "895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-# There isn't enable/disable option, and lcms is in meta-oe, at least make it explicit when enabled
-# setup.py already has FIXME: add mechanism to explicitly *disable* the use of a library
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lcms] = ",,lcms"
-
-inherit distutils
-
-do_compile() {
- export STAGING_LIBDIR=${STAGING_LIBDIR}
- export STAGING_INCDIR=${STAGING_INCDIR}
- export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
- distutils_do_compile
-}
-
-do_install() {
- export STAGING_LIBDIR=${STAGING_LIBDIR}
- export STAGING_INCDIR=${STAGING_INCDIR}
- export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
- distutils_do_install
- install -d ${D}${datadir}/doc/${BPN}/html/
- install -m 0644 ${S}/README ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${S}/Docs/* ${D}${datadir}/doc/${BPN}/html/
-
- # get rid of #!/usr/local/bin/python
- sed -i -e 's:/usr/local/bin/:${bindir}/env :g' ${D}${bindir}/*
-}
-
-RDEPENDS_${PN} += "python-lang python-stringold"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako.inc
new file mode 100644
index 000000000..85ec21768
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako.inc
@@ -0,0 +1,15 @@
+SUMMARY = "Templating library for Python"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1bb21fa2d2f7a534c884b990430a6863"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/M/Mako/Mako-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "c5fc31a323dd4990683d2f2da02d4e20"
+SRC_URI[sha256sum] = "fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/mako/"
+UPSTREAM_CHECK_REGEX = "/Mako/(?P<pver>(\d+[\.\-_]*)+)"
+
+S = "${WORKDIR}/Mako-${PV}"
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.3.bb
deleted file mode 100644
index 9efd700dc..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.3.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Templating library for Python"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=deb3ff8e4c17aaf7b80889b6b2bf4c83"
-
-SRC_URI = "https://pypi.python.org/packages/source/M/Mako/Mako-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "a78f20f6366a8a0659ce5532f8614e53"
-SRC_URI[sha256sum] = "7644bc0ee35965d2e146dde31827b8982ed70a58281085fac42869a09764d38c"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/mako/"
-UPSTREAM_CHECK_REGEX = "/Mako/(?P<pver>(\d+[\.\-_]*)+)"
-
-S = "${WORKDIR}/Mako-${PV}"
-
-inherit setuptools
-
-RDEPENDS_${PN} = "python-threading \
- python-netclient \
- python-html \
-"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.4.bb
new file mode 100644
index 000000000..230044e1a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-mako_1.0.4.bb
@@ -0,0 +1,17 @@
+require python-mako.inc
+
+inherit setuptools
+
+RDEPENDS_${PN} = "python-threading \
+ python-netclient \
+ python-html \
+"
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+# The same utility is packaged in python3-mako, so it would conflict
+do_install_append() {
+ rm -f ${D}${bindir}/mako-render
+ rmdir ${D}${bindir}
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
deleted file mode 100644
index f89aaff7b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-# The proper prefix is inside our staging area.
-# Signed-Off: Michael 'Mickey' Lauer <mickey@vanille-media.de>
-# Signed-off-by: Phil Blundell <philb@gnu.org>
-
---- Python-2.6.6/Lib/distutils/sysconfig.py.orig 2012-01-03 14:02:03.027005296 +0000
-+++ Python-2.6.6/Lib/distutils/sysconfig.py 2012-01-03 14:02:31.517601081 +0000
-@@ -19,8 +19,8 @@
- from distutils.errors import DistutilsPlatformError
-
- # These are needed in a couple of spots, so just compute them once.
--PREFIX = os.path.normpath(sys.prefix)
--EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
-+PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-+EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-
- # Path to the base directory of the project. On Windows the binary may
- # live in project/PCBuild9. If we're dealing with an x64 Windows build,
-@@ -70,7 +70,7 @@
- sys.exec_prefix -- i.e., ignore 'plat_specific'.
- """
- if prefix is None:
-- prefix = plat_specific and EXEC_PREFIX or PREFIX
-+ prefix = os.environ['STAGING_INCDIR'].rstrip('include')
-
- if os.name == "posix":
- if python_build:
-@@ -115,12 +115,16 @@
- If 'prefix' is supplied, use it instead of sys.prefix or
- sys.exec_prefix -- i.e., ignore 'plat_specific'.
- """
-+ lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1]
- if prefix is None:
-- prefix = plat_specific and EXEC_PREFIX or PREFIX
-+ if plat_specific:
-+ prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename)
-+ else:
-+ prefix = PREFIX
-
- if os.name == "posix":
- libpython = os.path.join(prefix,
-- "lib", "python" + get_python_version())
-+ lib_basename, "python" + get_python_version())
- if standard_lib:
- return libpython
- else:
-@@ -216,7 +220,7 @@
- else:
- # The name of the config.h file changed in 2.2
- config_h = 'pyconfig.h'
-- return os.path.join(inc_dir, config_h)
-+ return os.path.join(inc_dir, config_h).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-
-
- def get_makefile_filename():
-@@ -225,7 +229,7 @@
- return os.path.join(os.path.dirname(os.path.realpath(sys.executable)),
- "Makefile")
- lib_dir = get_python_lib(plat_specific=1, standard_lib=1)
-- return os.path.join(lib_dir, "config", "Makefile")
-+ return os.path.join(lib_dir, "config", "Makefile").replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-
-
- def parse_config_h(fp, g=None):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/avoid_parallel_make_races_on_pgen.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/avoid_parallel_make_races_on_pgen.patch
index 5279e7c3b..a592ea40a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/avoid_parallel_make_races_on_pgen.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/avoid_parallel_make_races_on_pgen.patch
@@ -4,8 +4,8 @@ Avoids parallel make races linking errors when making Parser/PGEN
- Implements Richard Purdie's idea
-Signed-Off-By: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/Makefile.pre.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/debug.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/debug.patch
index 5ec10d6b2..361788264 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/debug.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/debug.patch
@@ -1,24 +1,27 @@
Upstream-Status: Pending
-Index: Python-2.6.1/Lib/distutils/unixccompiler.py
+Index: Python-2.7.12/Lib/distutils/unixccompiler.py
===================================================================
---- Python-2.6.1.orig/Lib/distutils/unixccompiler.py 2009-11-13 16:04:54.000000000 +0000
-+++ Python-2.6.1/Lib/distutils/unixccompiler.py 2009-11-13 16:06:27.000000000 +0000
-@@ -300,6 +300,8 @@
- dylib_f = self.library_filename(lib, lib_type='dylib')
- static_f = self.library_filename(lib, lib_type='static')
+--- Python-2.7.12.orig/Lib/distutils/unixccompiler.py
++++ Python-2.7.12/Lib/distutils/unixccompiler.py
+@@ -278,6 +278,8 @@ class UnixCCompiler(CCompiler):
+
+
+ print "Looking in %s for %s" % (lib, dirs)
+
for dir in dirs:
shared = os.path.join(dir, shared_f)
dylib = os.path.join(dir, dylib_f)
-@@ -309,10 +311,13 @@
+@@ -298,12 +300,16 @@ class UnixCCompiler(CCompiler):
# assuming that *all* Unix C compilers do. And of course I'm
# ignoring even GCC's "-static" option. So sue me.
if os.path.exists(dylib):
+ print "Found %s" % (dylib)
return dylib
+ elif os.path.exists(xcode_stub):
++ print "Found %s" % (xcode_stub)
+ return xcode_stub
elif os.path.exists(shared):
+ print "Found %s" % (shared)
return shared
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/multilib.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/multilib.patch
index 8ca89e7c5..916b40f4a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/multilib.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/multilib.patch
@@ -1,6 +1,6 @@
Rebased for Python 2.7.9
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
2011/09/29
The python recipe building was failing because python-native
@@ -10,12 +10,12 @@ recipe.
Upstream-Status: Inappropriate [oe-specific]
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
-Index: Python-2.7.9/Include/pythonrun.h
+Index: Python-2.7.12/Include/pythonrun.h
===================================================================
---- Python-2.7.9.orig/Include/pythonrun.h
-+++ Python-2.7.9/Include/pythonrun.h
+--- Python-2.7.12.orig/Include/pythonrun.h
++++ Python-2.7.12/Include/pythonrun.h
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
/* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void);
@@ -24,10 +24,10 @@ Index: Python-2.7.9/Include/pythonrun.h
PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-Index: Python-2.7.9/Lib/distutils/command/install.py
+Index: Python-2.7.12/Lib/distutils/command/install.py
===================================================================
---- Python-2.7.9.orig/Lib/distutils/command/install.py
-+++ Python-2.7.9/Lib/distutils/command/install.py
+--- Python-2.7.12.orig/Lib/distutils/command/install.py
++++ Python-2.7.12/Lib/distutils/command/install.py
@@ -22,6 +22,8 @@ from site import USER_BASE
from site import USER_SITE
@@ -46,11 +46,11 @@ Index: Python-2.7.9/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
-Index: Python-2.7.9/Lib/pydoc.py
+Index: Python-2.7.12/Lib/pydoc.py
===================================================================
---- Python-2.7.9.orig/Lib/pydoc.py
-+++ Python-2.7.9/Lib/pydoc.py
-@@ -383,7 +383,7 @@ class Doc:
+--- Python-2.7.12.orig/Lib/pydoc.py
++++ Python-2.7.12/Lib/pydoc.py
+@@ -384,7 +384,7 @@ class Doc:
docloc = os.environ.get("PYTHONDOCS",
"http://docs.python.org/library")
@@ -59,10 +59,10 @@ Index: Python-2.7.9/Lib/pydoc.py
"python"+sys.version[0:3])
if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
-Index: Python-2.7.9/Lib/site.py
+Index: Python-2.7.12/Lib/site.py
===================================================================
---- Python-2.7.9.orig/Lib/site.py
-+++ Python-2.7.9/Lib/site.py
+--- Python-2.7.12.orig/Lib/site.py
++++ Python-2.7.12/Lib/site.py
@@ -288,13 +288,19 @@ def getsitepackages():
if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
@@ -86,10 +86,10 @@ Index: Python-2.7.9/Lib/site.py
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
# locations.
-Index: Python-2.7.9/Lib/test/test_dl.py
+Index: Python-2.7.12/Lib/test/test_dl.py
===================================================================
---- Python-2.7.9.orig/Lib/test/test_dl.py
-+++ Python-2.7.9/Lib/test/test_dl.py
+--- Python-2.7.12.orig/Lib/test/test_dl.py
++++ Python-2.7.12/Lib/test/test_dl.py
@@ -4,10 +4,11 @@
import unittest
from test.test_support import verbose, import_module
@@ -104,10 +104,10 @@ Index: Python-2.7.9/Lib/test/test_dl.py
('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'),
]
-Index: Python-2.7.9/Lib/trace.py
+Index: Python-2.7.12/Lib/trace.py
===================================================================
---- Python-2.7.9.orig/Lib/trace.py
-+++ Python-2.7.9/Lib/trace.py
+--- Python-2.7.12.orig/Lib/trace.py
++++ Python-2.7.12/Lib/trace.py
@@ -754,10 +754,10 @@ def main(argv=None):
# should I also call expanduser? (after all, could use $HOME)
@@ -121,11 +121,11 @@ Index: Python-2.7.9/Lib/trace.py
"python" + sys.version[:3]))
s = os.path.normpath(s)
ignore_dirs.append(s)
-Index: Python-2.7.9/Makefile.pre.in
+Index: Python-2.7.12/Makefile.pre.in
===================================================================
---- Python-2.7.9.orig/Makefile.pre.in
-+++ Python-2.7.9/Makefile.pre.in
-@@ -87,6 +87,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
+--- Python-2.7.12.orig/Makefile.pre.in
++++ Python-2.7.12/Makefile.pre.in
+@@ -92,6 +92,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
# Machine-dependent subdirectories
MACHDEP= @MACHDEP@
@@ -133,7 +133,7 @@ Index: Python-2.7.9/Makefile.pre.in
# Multiarch directory (may be empty)
MULTIARCH= @MULTIARCH@
-@@ -106,7 +107,7 @@ LIBDIR= @libdir@
+@@ -111,7 +112,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -142,7 +142,7 @@ Index: Python-2.7.9/Makefile.pre.in
# Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -597,6 +598,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
+@@ -669,6 +670,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
@@ -150,7 +150,7 @@ Index: Python-2.7.9/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c
-@@ -639,7 +641,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
+@@ -720,7 +722,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c
@@ -159,25 +159,25 @@ Index: Python-2.7.9/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-2.7.9/Modules/getpath.c
+Index: Python-2.7.12/Modules/getpath.c
===================================================================
---- Python-2.7.9.orig/Modules/getpath.c
-+++ Python-2.7.9/Modules/getpath.c
-@@ -116,9 +116,11 @@
- #define EXEC_PREFIX PREFIX
+--- Python-2.7.12.orig/Modules/getpath.c
++++ Python-2.7.12/Modules/getpath.c
+@@ -100,6 +100,13 @@
+ #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
#endif
+#define LIB_PYTHON LIB "/python" VERSION
+
- #ifndef PYTHONPATH
--#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
++#ifndef PYTHONPATH
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
-+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
- #endif
-
++ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
++#endif
++
#ifndef LANDMARK
-@@ -129,7 +131,7 @@ static char prefix[MAXPATHLEN+1];
+ #define LANDMARK "os.py"
+ #endif
+@@ -108,7 +115,7 @@ static char prefix[MAXPATHLEN+1];
static char exec_prefix[MAXPATHLEN+1];
static char progpath[MAXPATHLEN+1];
static char *module_search_path = NULL;
@@ -186,10 +186,10 @@ Index: Python-2.7.9/Modules/getpath.c
static void
reduce(char *dir)
-Index: Python-2.7.9/Python/getplatform.c
+Index: Python-2.7.12/Python/getplatform.c
===================================================================
---- Python-2.7.9.orig/Python/getplatform.c
-+++ Python-2.7.9/Python/getplatform.c
+--- Python-2.7.12.orig/Python/getplatform.c
++++ Python-2.7.12/Python/getplatform.c
@@ -10,3 +10,13 @@ Py_GetPlatform(void)
{
return PLATFORM;
@@ -204,10 +204,10 @@ Index: Python-2.7.9/Python/getplatform.c
+{
+ return LIB;
+}
-Index: Python-2.7.9/Python/sysmodule.c
+Index: Python-2.7.12/Python/sysmodule.c
===================================================================
---- Python-2.7.9.orig/Python/sysmodule.c
-+++ Python-2.7.9/Python/sysmodule.c
+--- Python-2.7.12.orig/Python/sysmodule.c
++++ Python-2.7.12/Python/sysmodule.c
@@ -1437,6 +1437,8 @@ _PySys_Init(void)
PyString_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform",
@@ -217,11 +217,11 @@ Index: Python-2.7.9/Python/sysmodule.c
SET_SYS_FROM_STRING("executable",
PyString_FromString(Py_GetProgramFullPath()));
SET_SYS_FROM_STRING("prefix",
-Index: Python-2.7.9/configure.ac
+Index: Python-2.7.12/configure.ac
===================================================================
---- Python-2.7.9.orig/configure.ac
-+++ Python-2.7.9/configure.ac
-@@ -736,6 +736,11 @@ SunOS*)
+--- Python-2.7.12.orig/configure.ac
++++ Python-2.7.12/configure.ac
+@@ -756,6 +756,11 @@ SunOS*)
;;
esac
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/nohostlibs.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/nohostlibs.patch
index 8a452e94d..078060b49 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/nohostlibs.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native/nohostlibs.patch
@@ -2,8 +2,8 @@ Upstream-Status: Inappropriate [embedded specific]
2014/12/15
Rebased for python-2.7.9
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/setup.py
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.11.bb
deleted file mode 100644
index 4c204a4f0..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.11.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-require python.inc
-
-EXTRANATIVEPATH += "bzip2-native"
-DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native"
-PR = "${INC_PR}.1"
-
-SRC_URI += "\
- file://05-enable-ctypes-cross-build.patch \
- file://10-distutils-fix-swig-parameter.patch \
- file://11-distutils-never-modify-shebang-line.patch \
- file://12-distutils-prefix-is-inside-staging-area.patch \
- file://debug.patch \
- file://unixccompiler.patch \
- file://nohostlibs.patch \
- file://multilib.patch \
- file://add-md5module-support.patch \
- file://builddir.patch \
- file://parallel-makeinst-create-bindir.patch \
- file://revert_use_of_sysconfigdata.patch \
- file://avoid_parallel_make_races_on_pgen.patch \
- "
-S = "${WORKDIR}/Python-${PV}"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:"
-
-inherit native
-
-RPROVIDES += "python-distutils-native python-compression-native python-textutils-native python-codecs-native python-core-native python-unittest-native"
-
-EXTRA_OECONF_append = " --bindir=${bindir}/${PN}"
-
-EXTRA_OEMAKE = '\
- BUILD_SYS="" \
- HOST_SYS="" \
- LIBC="" \
- STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
- STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
-'
-
-do_configure_append() {
- autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
- install -d ${D}${bindir}/${PN}
- install -m 0755 Parser/pgen ${D}${bindir}/${PN}
-
- # Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
- sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
- done
-
- # Add a symlink to the native Python so that scripts can just invoke
- # "nativepython" and get the right one without needing absolute paths
- # (these often end up too long for the #! parser in the kernel as the
- # buffer is 128 bytes long).
- ln -s python-native/python ${D}${bindir}/nativepython
-
- # We don't want modules in ~/.local being used in preference to those
- # installed in the native sysroot, so disable user site support.
- sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.12.bb
new file mode 100644
index 000000000..de83cbd76
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-native_2.7.12.bb
@@ -0,0 +1,61 @@
+require python.inc
+
+EXTRANATIVEPATH += "bzip2-native"
+DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native expat-native"
+PR = "${INC_PR}.1"
+
+SRC_URI += "\
+ file://05-enable-ctypes-cross-build.patch \
+ file://10-distutils-fix-swig-parameter.patch \
+ file://11-distutils-never-modify-shebang-line.patch \
+ file://0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch \
+ file://debug.patch \
+ file://unixccompiler.patch \
+ file://nohostlibs.patch \
+ file://multilib.patch \
+ file://add-md5module-support.patch \
+ file://builddir.patch \
+ file://parallel-makeinst-create-bindir.patch \
+ file://revert_use_of_sysconfigdata.patch \
+ "
+
+S = "${WORKDIR}/Python-${PV}"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:"
+
+inherit native
+
+RPROVIDES += "python-distutils-native python-compression-native python-textutils-native python-codecs-native python-core-native python-unittest-native"
+
+EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --with-system-expat=${STAGING_DIR_HOST}"
+
+EXTRA_OEMAKE = '\
+ LIBC="" \
+ STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
+ STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
+'
+
+do_configure_append() {
+ autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+ install -d ${D}${bindir}/${PN}
+ install -m 0755 Parser/pgen ${D}${bindir}/${PN}
+
+ # Make sure we use /usr/bin/env python
+ for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
+ sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
+ done
+
+ # Add a symlink to the native Python so that scripts can just invoke
+ # "nativepython" and get the right one without needing absolute paths
+ # (these often end up too long for the #! parser in the kernel as the
+ # buffer is 128 bytes long).
+ ln -s python-native/python ${D}${bindir}/nativepython
+
+ # We don't want modules in ~/.local being used in preference to those
+ # installed in the native sysroot, so disable user site support.
+ sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-nose_1.3.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-nose_1.3.7.bb
index ec6158fab..3757f3a8b 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-nose_1.3.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-nose_1.3.7.bb
@@ -5,7 +5,7 @@ SECTION = "devel/python"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://lgpl.txt;md5=a6f89e2100d9b6cdffcea4f398e37343"
-SRC_URI = "http://pypi.python.org/packages/source/n/nose/nose-${PV}.tar.gz"
+SRC_URI = "https://files.pythonhosted.org/packages/source/n/nose/nose-${PV}.tar.gz"
SRC_URI[md5sum] = "4d3ad0ff07b61373d2cefc89c5d0b20b"
SRC_URI[sha256sum] = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/_numpyconfig.h
deleted file mode 100644
index 191e5a19e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/aarch64/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/add-glibc-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/add-glibc-check.patch
deleted file mode 100644
index 29768f34d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/add-glibc-check.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Dont punish musl for glibc's trignometeric functions problems
-additionally ensure that glibc specific macros are not used
-unconditionally
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: numpy-1.10.4/numpy/core/src/private/npy_config.h
-===================================================================
---- numpy-1.10.4.orig/numpy/core/src/private/npy_config.h
-+++ numpy-1.10.4/numpy/core/src/private/npy_config.h
-@@ -75,10 +75,12 @@
-
- #if defined(HAVE_FEATURES_H)
- #include <features.h>
-+#ifdef __GLIBC__
- #define TRIG_OK __GLIBC_PREREQ(2, 16)
- #else
- #define TRIG_OK 0
- #endif
-+#endif
-
- #if !TRIG_OK
- #undef HAVE_CASIN
-Index: numpy-1.10.4/numpy/core/src/npymath/ieee754.c.src
-===================================================================
---- numpy-1.10.4.orig/numpy/core/src/npymath/ieee754.c.src
-+++ numpy-1.10.4/numpy/core/src/npymath/ieee754.c.src
-@@ -612,7 +612,7 @@ void npy_set_floatstatus_invalid(void)
- }
-
-
--#elif defined(__GLIBC__) || defined(__APPLE__) || \
-+#elif defined(__linux__) || defined(__APPLE__) || \
- defined(__CYGWIN__) || defined(__MINGW32__) || \
- (defined(__FreeBSD__) && (__FreeBSD_version >= 502114))
- # include <fenv.h>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/_numpyconfig.h
deleted file mode 100644
index 05d2b8b94..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 8
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 16
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/_numpyconfig.h
deleted file mode 100644
index 8e2b5d094..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mips64n32/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/numpyconfig.h
deleted file mode 100644
index c4bf6547f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/mipsel/numpyconfig.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* cat ./src.linux-i686-2.5/numpy/core/include/numpy/numpyconfig.h */
-/*
- * * This file is generated by numpy/core/setup.pyc. DO NOT EDIT
- * */
-#define NPY_SIZEOF_SHORT 2
-#define NPY_SIZEOF_INT 4
-#define NPY_SIZEOF_LONG 4
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_LONGDOUBLE 12
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_NO_SMP 0
-
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-/* #define CHAR_BIT 8 */
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/_numpyconfig.h
deleted file mode 100644
index 0f45d5bd4..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 4
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/_numpyconfig.h b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/_numpyconfig.h
deleted file mode 100644
index 8e2b5d094..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy/powerpc64/_numpyconfig.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#define NPY_HAVE_ENDIAN_H 1
-#define NPY_SIZEOF_SHORT SIZEOF_SHORT
-#define NPY_SIZEOF_INT SIZEOF_INT
-#define NPY_SIZEOF_LONG SIZEOF_LONG
-#define NPY_SIZEOF_FLOAT 4
-#define NPY_SIZEOF_COMPLEX_FLOAT 8
-#define NPY_SIZEOF_DOUBLE 8
-#define NPY_SIZEOF_COMPLEX_DOUBLE 16
-#define NPY_SIZEOF_LONGDOUBLE 16
-#define NPY_SIZEOF_COMPLEX_LONGDOUBLE 32
-#define NPY_ENABLE_SEPARATE_COMPILATION 1
-#define NPY_SIZEOF_PY_INTPTR_T 8
-#define NPY_SIZEOF_PY_LONG_LONG 8
-#define NPY_SIZEOF_LONGLONG 8
-#define NPY_NO_SMP 0
-#define NPY_HAVE_DECL_ISNAN
-#define NPY_HAVE_DECL_ISINF
-#define NPY_HAVE_DECL_ISFINITE
-#define NPY_HAVE_DECL_SIGNBIT
-#define NPY_USE_C99_COMPLEX 1
-#define NPY_HAVE_COMPLEX_DOUBLE 1
-#define NPY_HAVE_COMPLEX_FLOAT 1
-#define NPY_HAVE_COMPLEX_LONG_DOUBLE 1
-#define NPY_USE_C99_FORMATS 1
-#define NPY_VISIBILITY_HIDDEN __attribute__((visibility("hidden")))
-#define NPY_ABI_VERSION 0x01000009
-#define NPY_API_VERSION 0x0000000A
-
-#ifndef __STDC_FORMAT_MACROS
-#define __STDC_FORMAT_MACROS 1
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy_1.10.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy_1.10.4.bb
deleted file mode 100644
index 8a562dcb9..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-numpy_1.10.4.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-SUMMARY = "A sophisticated Numeric Processing Package for Python"
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9f4e88b5748e8313caaf33d081ce65a3"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/numpy-${PV}.tar.gz \
- file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \
- file://remove-build-path-in-comments.patch \
- file://add-glibc-check.patch \
- ${CONFIGFILESURI} "
-
-CONFIGFILESURI ?= ""
-
-CONFIGFILESURI_aarch64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_arm = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_armeb = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_mipsel = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86 = " \
- file://config.h \
- file://numpyconfig.h \
-"
-CONFIGFILESURI_x86-64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mips = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_powerpc64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mips64 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-CONFIGFILESURI_mips64n32 = " \
- file://config.h \
- file://_numpyconfig.h \
-"
-
-S = "${WORKDIR}/numpy-${PV}"
-
-inherit distutils
-
-# Make the build fail and replace *config.h with proper one
-# This is a ugly, ugly hack - Koen
-do_compile_prepend_class-target() {
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- ${STAGING_BINDIR_NATIVE}/python-native/python setup.py build ${DISTUTILS_BUILD_ARGS} || \
- true
- cp ${WORKDIR}/*config.h ${S}/build/$(ls ${S}/build | grep src)/numpy/core/include/numpy/
-}
-
-FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a"
-
-SRC_URI[md5sum] = "90bb9034652cefbada19cf7d141a6a61"
-SRC_URI[sha256sum] = "f7f91842056a7cf680b0eaf8cefc5e46c69e2521e651128d2e6aaaccec8652ae"
-
-# install what is needed for numpy.test()
-RDEPENDS_${PN} = "python-unittest \
- python-difflib \
- python-pprint \
- python-pickle \
- python-shell \
- python-nose \
- python-doctest \
- python-datetime \
- python-distutils \
- python-misc \
- python-mmap \
- python-netclient \
- python-numbers \
- python-pydoc \
- python-pkgutil \
- python-email \
- python-subprocess \
- python-compression \
- python-ctypes \
- python-threading \
-"
-
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.0.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.0.1.bb
deleted file mode 100644
index 7f142a385..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.0.1.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A Pure Python Expect like Module for Python"
-HOMEPAGE = "http://pexpect.readthedocs.org/"
-SECTION = "devel/python"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=66c2378a96b307d56bfb3a9e58edafa8"
-
-SRC_URI = "https://pypi.python.org/packages/source/p/pexpect/pexpect-${PV}.tar.gz"
-SRC_URI[md5sum] = "056df81e6ca7081f1015b4b147b977b7"
-SRC_URI[sha256sum] = "232795ebcaaf2e120396dbbaa3a129eda51757eeaae1911558f4ef8ee414fc6c"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect"
-
-S = "${WORKDIR}/pexpect-${PV}"
-
-inherit distutils
-
-RDEPENDS_${PN} = "\
- python-core \
- python-io \
- python-terminal \
- python-resource \
- python-fcntl \
-"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.2.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.2.0.bb
new file mode 100644
index 000000000..82e0fa886
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pexpect_4.2.0.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A Pure Python Expect like Module for Python"
+HOMEPAGE = "http://pexpect.readthedocs.org/"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1c7a725251880af8c6a148181665385b"
+
+SRCNAME = "pexpect"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "8071ec5df0f3d515daedafad672d1632"
+SRC_URI[sha256sum] = "bf6816b8cc8d301a499e7adf338828b39bc7548eb64dbed4dd410ed93d95f853"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pexpect"
+
+S = "${WORKDIR}/pexpect-${PV}"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "\
+ python-core \
+ python-io \
+ python-terminal \
+ python-resource \
+ python-fcntl \
+ python-ptyprocess \
+"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-ptyprocess_0.5.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-ptyprocess_0.5.1.bb
new file mode 100644
index 000000000..931e5a7d4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-ptyprocess_0.5.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Run a subprocess in a pseudo terminal"
+HOMEPAGE = "http://ptyprocess.readthedocs.io/en/latest/"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cfdcd51fa7d5808da4e74346ee394490"
+
+SRCNAME = "ptyprocess"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "94e537122914cc9ec9c1eadcd36e73a1"
+SRC_URI[sha256sum] = "0530ce63a9295bfae7bd06edc02b6aa935619f486f0f1dc0972f516265ee81a6"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "\
+ python-core \
+"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pycairo_1.10.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pycairo_1.10.0.bb
deleted file mode 100644
index 70fe25c1a..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pycairo_1.10.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Python bindings for the Cairo canvas library"
-HOMEPAGE = "http://cairographics.org/pycairo"
-BUGTRACKER = "http://bugs.freedesktop.org"
-SECTION = "python-devel"
-LICENSE = "LGPLv2.1 & MPL-1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f2e071ab72978431b294a0d696327421 \
- file://COPYING-LGPL-2.1;md5=fad9b3332be894bab9bc501572864b29 \
- file://COPYING-MPL-1.1;md5=bfe1f75d606912a4111c90743d6c7325"
-
-# cairo >= 1.8.8
-DEPENDS = "cairo"
-PR = "r2"
-
-SRC_URI = "http://cairographics.org/releases/py2cairo-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "20337132c4ab06c1146ad384d55372c5"
-SRC_URI[sha256sum] = "d30439f06c2ec1a39e27464c6c828b6eface3b22ee17b2de05dc409e429a7431"
-
-S = "${WORKDIR}/py2cairo-${PV}"
-
-inherit distutils pkgconfig
-
-BBCLASSEXTEND = "native"
-
-do_configure() {
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} ./waf configure --prefix=${D}${prefix} --libdir=${D}${libdir}
-}
-
-do_compile() {
- ./waf build ${PARALLEL_MAKE}
-}
-
-do_install() {
- ./waf install
- sed \
- -e 's:@prefix@:${prefix}:' \
- -e 's:@VERSION@:${PV}:' \
- -e 's:@includedir@:${includedir}:' \
- pycairo.pc.in > pycairo.pc
- install -m 0644 pycairo.pc ${D}${libdir}/pkgconfig/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject_3.18.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject_3.18.2.bb
deleted file mode 100644
index a9871fe26..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject_3.18.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Python GObject bindings"
-SECTION = "devel/python"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-
-inherit autotools pkgconfig gnomebase distutils-base gobject-introspection
-
-DEPENDS += "python glib-2.0 gnome-common"
-
-SRCNAME="pygobject"
-SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
- file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
-"
-
-SRC_URI[md5sum] = "0a956f3e785e23b0f136832f2e57a862"
-SRC_URI[sha256sum] = "2a3cad1517916b74e131e6002c3824361aee0671ffb0d55ded119477fc1c2c5f"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECONF = "--disable-cairo --with-python=python2.7"
-
-RDEPENDS_${PN} += "python-setuptools python-importlib"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb
deleted file mode 100644
index e8ef1aa12..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex-native_0.9.9.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pyrex_${PV}.bb
-inherit native pythonnative
-DEPENDS = "python-native"
-RDEPENDS_${PN} = ""
-PR = "r3"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch
deleted file mode 100644
index c58c3280e..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending
-
-Index: Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
-===================================================================
---- Pyrex-0.9.8.4.orig/Pyrex/Distutils/extension.py
-+++ Pyrex-0.9.8.4/Pyrex/Distutils/extension.py
-@@ -15,7 +15,7 @@ except ImportError:
- warnings = None
-
- class Extension(_Extension.Extension):
-- _Extension.Extension.__doc__ + \
-+ _Extension.Extension.__doc__ or "" + \
- """pyrex_include_dirs : [string]
- list of directories to search for Pyrex header files (.pxd) (in
- Unix form for portability)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex_0.9.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex_0.9.9.bb
deleted file mode 100644
index c4dd2e69b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pyrex_0.9.9.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Language for writing Python extension modules"
-DESCRIPTION = "Pyrex is a language specially designed for writing Python extension modules. \
-It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
-and the messy, low-level world of C."
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=771d472f53f933033f57eeee7808e5bd"
-SRCNAME = "Pyrex"
-PR = "r4"
-
-SRC_URI = "\
- http://www.cosc.canterbury.ac.nz/greg.ewing/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
- file://pyrex-fix-optimized-mode.patch \
-"
-
-SRC_URI[md5sum] = "515dee67d15d4393841e2d60e8341947"
-SRC_URI[sha256sum] = "5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit distutils
-
-FILES_${PN} += "${datadir}${base_libdir}/${PYTHON_DIR}/site-packages/Pyrex/Compiler/Lexicon.pickle"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.4.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.5.0.bb
index dae89ab5d..dae89ab5d 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.4.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons-native_2.5.0.bb
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.4.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.4.1.bb
deleted file mode 100644
index 096cf5c96..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.4.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Software Construction tool (make/autotools replacement)"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=23bc1530c55e9f0d1b709056bcea237d"
-SRCNAME = "scons"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "9a0ddf33d9839f04380e0fae87cc4b40"
-SRC_URI[sha256sum] = "8fc4f42928c69bcbb33e1be94b646f2c700b659693fabc778c192d4d22f753a7"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/scons/files/scons/"
-UPSTREAM_CHECK_REGEX = "/scons/(?P<pver>(\d+[\.\-_]*)+)/"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit distutils
-
-RDEPENDS_${PN} = "\
- python-fcntl \
- python-io \
- "
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.5.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.5.0.bb
new file mode 100644
index 000000000..8543c4182
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-scons_2.5.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Software Construction tool (make/autotools replacement)"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a885dff6d14e4cd876d9008a09a42de"
+SRCNAME = "scons"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "bda5530a70a41a7831d83c8b191c021e"
+SRC_URI[sha256sum] = "01f1b3d6023516a8e1b5e77799e5a82a23b32953b1102d339059ffeca8600493"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/SCons/"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "\
+ python-fcntl \
+ python-io \
+ python-json \
+ python-subprocess \
+ "
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools.inc
index 0917e88ab..92ca9a002 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools.inc
@@ -1,21 +1,21 @@
SUMMARY = "Download, build, install, upgrade, and uninstall Python packages"
HOMEPAGE = "https://pypi.python.org/pypi/setuptools"
SECTION = "devel/python"
-LICENSE = "PSF | ZPL-2.0"
+LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=78;endline=78;md5=8a314270dd7a8dbca741775415f1716e"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=134;endline=134;md5=3e8df024d6c1442d18e84acf8fbbc475"
SRCNAME = "setuptools"
-SRC_URI = "http://pypi.python.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+SRC_URI = "https://files.pythonhosted.org/packages/source/s/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
-SRC_URI[md5sum] = "c5a7d90c1e0acf8c4ec5c2bf31bc25b5"
-SRC_URI[sha256sum] = "214bf29933f47cf25e6faa569f710731728a07a19cae91ea64f826051f68a8cf"
+SRC_URI[md5sum] = "869f3029dcc66a64ba39875e2a2f044a"
+SRC_URI[sha256sum] = "19aad19471052d5daefe96f2c1fa2e88dcdb17488bf8708d7e6356881ea833cb"
UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/setuptools"
S = "${WORKDIR}/${SRCNAME}-${PV}"
do_install_prepend() {
- install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_19.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_19.4.bb
deleted file mode 100644
index c17203923..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_19.4.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-require python-setuptools.inc
-
-PROVIDES = "python-distribute"
-
-DEPENDS += "python"
-DEPENDS_class-native += "python-native"
-
-inherit distutils
-
-DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${libdir}/${PYTHON_DIR}/site-packages"
-
-RDEPENDS_${PN} = "\
- python-stringold \
- python-email \
- python-shell \
- python-distutils \
- python-compression \
- python-pkgutil \
- python-plistlib \
- python-numbers \
- python-html \
- python-netserver \
- python-ctypes \
- python-subprocess \
- python-unittest \
- python-compile \
-"
-
-RDEPENDS_${PN}_class-native = "\
- python-distutils \
- python-compression \
-"
-
-RREPLACES_${PN} = "python-distribute"
-RPROVIDES_${PN} = "python-distribute"
-RCONFLICTS_${PN} = "python-distribute"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_22.0.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_22.0.5.bb
new file mode 100644
index 000000000..526474c7e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-setuptools_22.0.5.bb
@@ -0,0 +1,38 @@
+require python-setuptools.inc
+
+PROVIDES = "python-distribute"
+
+DEPENDS += "python"
+DEPENDS_class-native += "python-native"
+
+inherit distutils
+
+DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${PYTHON_SITEPACKAGES_DIR}"
+
+RDEPENDS_${PN} = "\
+ python-stringold \
+ python-email \
+ python-shell \
+ python-distutils \
+ python-compression \
+ python-pkgutil \
+ python-plistlib \
+ python-numbers \
+ python-html \
+ python-netserver \
+ python-ctypes \
+ python-subprocess \
+ python-unittest \
+ python-compile \
+"
+
+RDEPENDS_${PN}_class-native = "\
+ python-distutils \
+ python-compression \
+"
+
+RREPLACES_${PN} = "python-distribute"
+RPROVIDES_${PN} = "python-distribute"
+RCONFLICTS_${PN} = "python-distribute"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-six.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-six.inc
new file mode 100644
index 000000000..bd12fa94a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-six.inc
@@ -0,0 +1,16 @@
+SUMMARY = "Python 2 and 3 compatibility library"
+HOMEPAGE = "https://pypi.python.org/pypi/six/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6f00d4a50713fa859858dd9abaa35b21"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/s/six/six-${PV}.tar.gz"
+SRC_URI[md5sum] = "34eed507548117b2ab523ab14b2f8b55"
+SRC_URI[sha256sum] = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/six/"
+UPSTREAM_CHECK_REGEX = "/six/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
+
+S = "${WORKDIR}/six-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-six_1.10.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-six_1.10.0.bb
new file mode 100644
index 000000000..4350485f7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-six_1.10.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools
+require python-six.inc
+
+RDEPENDS_${PN} += "python-io"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch
new file mode 100644
index 000000000..2f14a124e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch
@@ -0,0 +1,38 @@
+channels/rpm_sys: use md5sum instead of mtime as the digest
+
+Use the internal getFileDigest() function (which defaults to md5) instead of
+mtime for getting the file digest. On some systems mtime proved to be
+unreliable because of delayed update. This caused smart to miss rpm db updates
+and thus get its understanding of installed packages out of sync.
+
+Upstream-Status: Pending
+
+Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
+---
+ smart/channels/rpm_sys.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py
+index b9fda27..6f1fe94 100644
+--- a/smart/channels/rpm_sys.py
++++ b/smart/channels/rpm_sys.py
+@@ -22,6 +22,7 @@
+ from smart.backends.rpm.header import RPMDBLoader
+ from smart.backends.rpm.base import getTS, rpm_join_dbpath
+ from smart.channel import PackageChannel
++from smart.util.filetools import getFileDigest
+ from smart import *
+ import os
+
+@@ -35,7 +36,7 @@ class RPMSysChannel(PackageChannel):
+ dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"),
+ sysconf.get("rpm-dbpath", "var/lib/rpm"))
+ path = os.path.join(dbdir, "Packages")
+- digest = os.path.getmtime(path)
++ digest = getFileDigest(path)
+ if digest == self._digest:
+ return True
+ self.removeLoaders()
+--
+2.6.6
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch
new file mode 100644
index 000000000..5e80804bf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-add-deugging-when-targetpath-is-empty.patch
@@ -0,0 +1,47 @@
+From 01e51afd03131947f8d74b9a23fdbc0078249499 Mon Sep 17 00:00:00 2001
+From: Mariano Lopez <mariano.lopez@linux.intel.com>
+Date: Wed, 3 Aug 2016 07:47:09 +0000
+Subject: [PATCH] fetcher.py: Add debugging when targetpath is empty
+
+There are several errors when openining files or manipulating
+path strings, those errors point targetpath passed to
+setSucceeded() is empty. This patch won't solve the problems,
+but will add debugging to give an idea why is failing.
+
+Upstream-Status: Inappropriate [debugging]
+
+Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
+---
+ smart/fetcher.py | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/smart/fetcher.py b/smart/fetcher.py
+index dd3ff6b..64aa979 100644
+--- a/smart/fetcher.py
++++ b/smart/fetcher.py
+@@ -594,6 +594,22 @@ class FetchItem(object):
+ self._eta = None
+
+ def setSucceeded(self, targetpath, fetchedsize=0):
++ # It seems the in some odd cases targetpath here
++ # is empty, this will lead to bugs in several places
++ if not targetpath:
++ import traceback
++ tb_str = ""
++ for threadId, stack in sys._current_frames().items():
++ tb_str += '\nThreadID: %s' % threadId
++ for filename, lineno, name, line in traceback.extract_stack(stack):
++ tb_str += '\nFile: "%s", line %d, in %s' % (filename, lineno, name)
++ if line:
++ tb_str += "\n %s" % line.strip()
++ error_string = ["No file path specified",
++ "URL: %s" % self._url,
++ "Status: %s" % self._status,
++ "Traceback: %s" % tb_str]
++ raise Error, _("\n".join(error_string))
+ if self._status is not FAILED:
+ self._status = SUCCEEDED
+ self._targetpath = targetpath
+--
+2.6.6
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
index ec98e03c0..5aedc8826 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-attempt.patch
@@ -36,7 +36,7 @@ index 9bbd952..ba6405a 100644
finally:
del getTS.ts
cb.grabOutput(False)
-+ if probs and sysconf.has("attempt-install", soft=True):
++ if (probs is not None) and sysconf.has("attempt-install", soft=True):
+ def remove_conflict(pkgNEVR):
+ for key in changeset.keys():
+ if pkgNEVR == str(key):
@@ -67,8 +67,8 @@ index 9bbd952..ba6405a 100644
+ retry = 0
+
prog.setDone()
-- if probs:
-+ if probs and (not retry):
+- if probs is not None:
++ if (probs is not None) and (not retry):
raise Error, "\n".join([x[0] for x in probs])
prog.stop()
+ if retry and len(changeset):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch
new file mode 100644
index 000000000..da23e7ce4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-channel-remove-all.patch
@@ -0,0 +1,33 @@
+From 6d2363a705697f615d9e5af5d6703b291e618b46 Mon Sep 17 00:00:00 2001
+From: Daniel Klauer <daniel.klauer@gin.de>
+Date: Thu, 12 May 2016 17:55:01 +0200
+Subject: [PATCH] Fix channel command --remove-all option parsing
+
+Option.take_action() stores a list of options given for validation later.
+It strips leading dashes and turns remaining dashes into underscores.
+This list is what ensure_action() will compare its arguments against,
+thus we must use underscores here.
+
+Upstream-Status: Pending
+
+Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
+---
+ smart/commands/channel.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/smart/commands/channel.py b/smart/commands/channel.py
+index 108f3f1..6234f69 100644
+--- a/smart/commands/channel.py
++++ b/smart/commands/channel.py
+@@ -164,7 +164,7 @@ def main(ctrl, opts):
+ opts.check_args_of_option("edit", 0)
+ opts.check_args_of_option("enable", -1)
+ opts.check_args_of_option("disable", -1)
+- opts.ensure_action("channel", ["add", "set", "remove", "remove-all",
++ opts.ensure_action("channel", ["add", "set", "remove", "remove_all",
+ "list", "show", "yaml", "enable", "disable"])
+ opts.check_remaining_args()
+
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-improve-error-reporting.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-improve-error-reporting.patch
deleted file mode 100644
index b82265b3f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-improve-error-reporting.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-Improve error reporting in smart
-
-Add code to check proper command line arguments for various
-smart commands. Exit with error if erroneous/additional arguments
-are given in the command line.
-
-Upstream-Status: Pending
-
-Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
-
-diff --git a/smart/util/optparse.py b/smart/util/optparse.py
-index 6fff1bc..f445a3b 100644
---- a/smart/util/optparse.py
-+++ b/smart/util/optparse.py
-@@ -70,6 +70,8 @@ import sys, os
- import types
- import textwrap
- from gettext import gettext as _
-+from smart import Error
-+import re
-
- def _repr(self):
- return "<%s at 0x%x: %s>" % (self.__class__.__name__, id(self), self)
-@@ -710,6 +712,12 @@ class Option:
- self.action, self.dest, opt, value, values, parser)
-
- def take_action(self, action, dest, opt, value, values, parser):
-+ # Keep all the options in the command line in the '_given_opts' array
-+ # This will be used later to validate the command line
-+ given_opts = getattr(parser.values, "_given_opts", [])
-+ user_opt = re.sub(r"^\-*", "", opt).replace("-", "_")
-+ given_opts.append(user_opt)
-+ setattr(parser.values, "_given_opts", given_opts)
- if action == "store":
- setattr(values, dest, value)
- elif action == "store_const":
-@@ -821,6 +829,54 @@ class Values:
- setattr(self, attr, value)
- return getattr(self, attr)
-
-+ # Check if the given option has the specified number of arguments
-+ # Raise an error if the option has an invalid number of arguments
-+ # A negative number for 'nargs' means "at least |nargs| arguments are needed"
-+ def check_args_of_option(self, opt, nargs, err=None):
-+ given_opts = getattr(self, "_given_opts", [])
-+ if not opt in given_opts:
-+ return
-+ values = getattr(self, opt, [])
-+ if type(values) != type([]):
-+ return
-+ if nargs < 0:
-+ nargs = -nargs
-+ if len(values) >= nargs:
-+ return
-+ if not err:
-+ if nargs == 1:
-+ err = _("Option '%s' requires at least one argument") % opt
-+ else:
-+ err = _("Option '%s' requires at least %d arguments") % (opt, nargs)
-+ raise Error, err
-+ elif nargs == 0:
-+ if len( values ) == 0:
-+ return
-+ raise Error, err
-+ else:
-+ if len(values) == nargs:
-+ return
-+ if not err:
-+ if nargs == 1:
-+ err = _("Option '%s' requires one argument") % opt
-+ else:
-+ err = _("Option '%s' requires %d arguments") % (opt, nargs)
-+ raise Error, err
-+
-+ # Check that at least one of the options in 'actlist' was given as an argument
-+ # to the command 'cmdname'
-+ def ensure_action(self, cmdname, actlist):
-+ given_opts = getattr(self, "_given_opts", [])
-+ for action in actlist:
-+ if action in given_opts:
-+ return
-+ raise Error, _("No action specified for command '%s'") % cmdname
-+
-+ # Check if there are any other arguments left after parsing the command line and
-+ # raise an error if such arguments are found
-+ def check_remaining_args(self):
-+ if self.args:
-+ raise Error, _("Invalid argument(s) '%s'" % str(self.args))
-
- class OptionContainer:
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-locale.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-locale.patch
new file mode 100644
index 000000000..0f1dfb91d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-locale.patch
@@ -0,0 +1,27 @@
+rpm or commands run by rpm can use output which isn't strictly acsii such
+as quotation characters around expression which are character 0xe2.
+
+Use utf-8 as an encoding rather than whatever the system suggests to
+ensure smart copes with this rather than erroring with unicode errors.
+
+RP 2016/5/19
+Upstream-Status: Pending
+
+
+Index: git/smart/backends/rpm/pm.py
+===================================================================
+--- git.orig/smart/backends/rpm/pm.py
++++ git/smart/backends/rpm/pm.py
+@@ -32,11 +32,7 @@ from smart.pm import PackageManager
+ from smart import sysconf, iface, Error, _
+
+
+-try:
+- ENCODING = locale.getpreferredencoding()
+-except locale.Error:
+- ENCODING = "ascii"
+-
++ENCODING = "utf-8"
+
+ def get_public_key(header):
+ return header.sprintf("%|DSAHEADER?{%{DSAHEADER:pgpsig}}:"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch
new file mode 100644
index 000000000..bb8c3afdb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smart-rpm-transaction-failure-check.patch
@@ -0,0 +1,57 @@
+From 0c55d7e18f40465e95e8e4bf22af01f5d4477d3c Mon Sep 17 00:00:00 2001
+From: Daniel Klauer <daniel.klauer@gin.de>
+Date: Wed, 11 May 2016 17:22:49 +0200
+Subject: [PATCH] rpm: Don't ignore transaction error with empty problems list
+
+SmartPM could misinterpret RPM transaction error as success,
+if ts.run() (RPM Python API) returns an empty problems list,
+because of incorrect check for None which treated empty list
+to be the same as None when it has different meaning.
+
+ts.run() returns:
+* None in case of success
+* problems list in case of error, may be empty
+(look at rpmts_Run() in rpm-5.4.14/python/rpmts-py.c [1])
+
+"if mylist" is not good enough to check for error here, because it will
+treat an empty list as "false" because its len() == 0 [2].
+
+ts.check() seems to be different (it's ok for it to return an empty list),
+but for consistency it should be made clear that it can return either None,
+an empty list or a non-empty list.
+
+[1] http://rpm5.org/cvs/fileview?f=rpm/python/rpmts-py.c&v=1.111.2.3
+[2] https://docs.python.org/2/library/stdtypes.html#truth-value-testing
+
+Upstream-Status: Pending
+
+Signed-off-by: Daniel Klauer <daniel.klauer@gin.de>
+---
+ smart/backends/rpm/pm.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
+index 9bbd952..635f726 100644
+--- a/smart/backends/rpm/pm.py
++++ b/smart/backends/rpm/pm.py
+@@ -208,7 +208,7 @@ class RPMPackageManager(PackageManager):
+ force = sysconf.get("rpm-force", False)
+ if not force:
+ probs = ts.check()
+- if probs:
++ if (probs is not None) and (len(probs) != 0):
+ problines = []
+ for prob in probs:
+ name1 = "%s-%s-%s" % prob[0]
+@@ -247,7 +247,7 @@ class RPMPackageManager(PackageManager):
+ del getTS.ts
+ cb.grabOutput(False)
+ prog.setDone()
+- if probs:
++ if probs is not None:
+ raise Error, "\n".join([x[0] for x in probs])
+ prog.stop()
+
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch
deleted file mode 100644
index fefb29a66..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-RPM5 has removed support for RPMVSF_NOSIGNATURES
-
-Patch smart to no longer use this flag
-
-Upstream-Status: Pending
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-
-diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
---- a/smart/backends/rpm/base.py
-+++ b/smart/backends/rpm/base.py
-@@ -63,11 +63,11 @@ def getTS(new=False):
- if sysconf.get("rpm-dbpath"):
- rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath"))
- getTS.ts = rpm.ts(getTS.root)
-- if not sysconf.get("rpm-check-signatures", False):
-- if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
-- getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
-- else:
-- raise Error, _("rpm requires checking signatures")
-+ #if not sysconf.get("rpm-check-signatures", False):
-+ # if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
-+ # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
-+ # else:
-+ # raise Error, _("rpm requires checking signatures")
- rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm")
- dbdir = rpm_join_dbpath(getTS.root, rpm_dbpath)
- if not os.path.isdir(dbdir):
-@@ -89,11 +89,11 @@ def getTS(new=False):
- if sysconf.get("rpm-dbpath"):
- rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath"))
- ts = rpm.ts(getTS.root)
-- if not sysconf.get("rpm-check-signatures", False):
-- if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
-- ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
-- else:
-- raise Error, _("rpm requires checking signatures")
-+ #if not sysconf.get("rpm-check-signatures", False):
-+ # if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
-+ # ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
-+ # else:
-+ # raise Error, _("rpm requires checking signatures")
- return ts
- else:
- return getTS.ts
-diff --git a/smart/plugins/yumchannelsync.py b/smart/plugins/yumchannelsync.py
---- a/smart/plugins/yumchannelsync.py
-+++ b/smart/plugins/yumchannelsync.py
-@@ -56,8 +56,8 @@ def _getreleasever():
-
- rpmroot = sysconf.get("rpm-root", "/")
- ts = rpmUtils.transaction.initReadOnlyTransaction(root=rpmroot)
-- if hasattr(rpm, '_RPMVSF_NOSIGNATURES') and hasattr(rpm, '_RPMVSF_NODIGESTS'):
-- ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
-+ #if hasattr(rpm, '_RPMVSF_NOSIGNATURES') and hasattr(rpm, '_RPMVSF_NODIGESTS'):
-+ # ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
- releasever = None
- # HACK: we're hard-coding the most used distros, will add more if needed
- idx = ts.dbMatch('provides', 'fedora-release')
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch
new file mode 100644
index 000000000..4067a90a0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-support-check-signatures.patch
@@ -0,0 +1,112 @@
+From 5b79e28bd70a0ec5b34c5ff19b66cbbdd1e48835 Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Fri, 18 Mar 2016 13:34:07 +0800
+Subject: [PATCH] Make smartpm to support check signatures of rpmv5.
+
+The original support for 'rpm-check-signatures' has been
+disabled for the RPMv5 does not support '_RPMVSF_NOSIGNATURES'
+now. This fix replaces the '_RPMVSF_NOSIGNATURES' with
+rpm VS flags set:RPMVSF_NODSAHEADER|RPMVSF_NORSAHEADER|
+RPMVSF_NODSA|RPMVSF_NORSA.
+
+Upstream-Status: Pending
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+---
+ smart/backends/rpm/base.py | 43 +++++++++++++++++++++++++++++++----------
+ smart/backends/rpm/pm.py | 2 +-
+ smart/plugins/yumchannelsync.py | 5 +++--
+ 3 files changed, 37 insertions(+), 13 deletions(-)
+
+diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py
+index 85f4d49..dbd6165 100644
+--- a/smart/backends/rpm/base.py
++++ b/smart/backends/rpm/base.py
+@@ -63,11 +63,23 @@ def getTS(new=False):
+ if sysconf.get("rpm-dbpath"):
+ rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath"))
+ getTS.ts = rpm.ts(getTS.root)
+- if not sysconf.get("rpm-check-signatures", False):
+- if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
+- getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
+- else:
+- raise Error, _("rpm requires checking signatures")
++
++ # _RPMVSF_NOSIGNATURES is not supported in RPMv5, so here uses
++ # RPMVSF_NODSAHEADER|RPMVSF_NORSAHEADER|RPMVSF_NODSA|RPMVSF_NORSA
++ # to replace '_RPMVSF_NOSIGNATURES' to continue to support check
++ # rpm signatures
++
++ #if not sysconf.get("rpm-check-signatures", False):
++ # if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
++ # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
++ # else:
++ # raise Error, _("rpm requires checking signatures")
++ if sysconf.get("rpm-check-signatures") == False:
++ getTS.ts.setVSFlags(rpm.RPMVSF_NODSAHEADER|rpm.RPMVSF_NORSAHEADER|\
++ rpm.RPMVSF_NODSA|rpm.RPMVSF_NORSA)
++ else:
++ getTS.ts.setVSFlags(0)
++
+ rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm")
+ dbdir = rpm_join_dbpath(getTS.root, rpm_dbpath)
+ if not os.path.isdir(dbdir):
+@@ -89,11 +101,22 @@ def getTS(new=False):
+ if sysconf.get("rpm-dbpath"):
+ rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath"))
+ ts = rpm.ts(getTS.root)
+- if not sysconf.get("rpm-check-signatures", False):
+- if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
+- ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
+- else:
+- raise Error, _("rpm requires checking signatures")
++
++ # _RPMVSF_NOSIGNATURES is not supported in RPMv5, so here uses
++ # RPMVSF_NODSAHEADER|RPMVSF_NORSAHEADER|RPMVSF_NODSA|RPMVSF_NORSA
++ # to replace '_RPMVSF_NOSIGNATURES' to continue to support check
++ # rpm signatures
++
++ #if not sysconf.get("rpm-check-signatures", False):
++ # if hasattr(rpm, '_RPMVSF_NOSIGNATURES'):
++ # ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES)
++ # else:
++ # raise Error, _("rpm requires checking signatures")
++ if sysconf.get("rpm-check-signatures") == False:
++ ts.setVSFlags(rpm.RPMVSF_NODSAHEADER|rpm.RPMVSF_NORSAHEADER|\
++ rpm.RPMVSF_NODSA|rpm.RPMVSF_NORSA)
++ else:
++ ts.setVSFlags(0)
+ return ts
+ else:
+ return getTS.ts
+diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
+index b57a844..7b651b5 100644
+--- a/smart/backends/rpm/pm.py
++++ b/smart/backends/rpm/pm.py
+@@ -180,7 +180,7 @@ class RPMPackageManager(PackageManager):
+ fd = os.open(path, os.O_RDONLY)
+ try:
+ h = ts.hdrFromFdno(fd)
+- if sysconf.get("rpm-check-signatures", False):
++ if sysconf.get("rpm-check-signatures", True):
+ if get_public_key(h) == '(none)':
+ raise rpm.error('package is not signed')
+ except rpm.error, e:
+diff --git a/smart/plugins/yumchannelsync.py b/smart/plugins/yumchannelsync.py
+index f8107e6..2dc5482 100644
+--- a/smart/plugins/yumchannelsync.py
++++ b/smart/plugins/yumchannelsync.py
+@@ -56,8 +56,9 @@ def _getreleasever():
+
+ rpmroot = sysconf.get("rpm-root", "/")
+ ts = rpmUtils.transaction.initReadOnlyTransaction(root=rpmroot)
+- if hasattr(rpm, '_RPMVSF_NOSIGNATURES') and hasattr(rpm, '_RPMVSF_NODIGESTS'):
+- ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
++ #_RPMVSF_NOSIGNATURES is not supported in RPMv5
++ #if hasattr(rpm, '_RPMVSF_NOSIGNATURES') and hasattr(rpm, '_RPMVSF_NODIGESTS'):
++ # ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS))
+ releasever = None
+ # HACK: we're hard-coding the most used distros, will add more if needed
+ idx = ts.dbMatch('provides', 'fedora-release')
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm_git.bb
index d9a908db2..861910cc2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smartpm_git.bb
@@ -13,16 +13,20 @@ SRCNAME = "smart"
SRC_URI = "\
git://github.com/smartpm/smart.git \
- file://smartpm-rpm5-nodig.patch \
file://smart-recommends.patch \
- file://smart-improve-error-reporting.patch \
file://smart-channelsdir.patch \
+ file://smart-rpm-transaction-failure-check.patch \
file://smart-attempt.patch \
file://smart-attempt-fix.patch \
file://smart-add-for-rpm-ignoresize-check.patch \
file://smart-already-installed-message.patch \
file://smart-set-noprogress-for-pycurl.patch \
file://smart-cache.py-getPackages-matches-name-version.patch \
+ file://smart-channel-remove-all.patch \
+ file://smart-locale.patch \
+ file://smartpm-rpm5-support-check-signatures.patch \
+ file://smart-add-deugging-when-targetpath-is-empty.patch \
+ file://channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch \
"
SRCREV = "407a7eca766431257dcd1da15175cc36a1bb22d0"
@@ -53,41 +57,41 @@ inherit distutils
do_install_append() {
# We don't support the following items
- rm -rf ${D}${libdir}/python*/site-packages/smart/backends/slack
- rm -rf ${D}${libdir}/python*/site-packages/smart/backends/arch
- rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/backends/slack
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/backends/arch
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/interfaces/qt
# Temporary, debian support in OE is missing the python module
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/aptchannelsync.py*
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/debdir.py*
- rm -rf ${D}${libdir}/python*/site-packages/smart/backends/deb
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/aptchannelsync.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/debdir.py*
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/backends/deb
# Disable automatic channel detection
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/detectsys.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/detectsys.py*
# Disable landscape support
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/landscape.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/landscape.py*
# Disable urpmi channel support
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/urpmichannelsync.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/urpmichannelsync.py*
# Disable yum channel support
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/yumchannelsync.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/yumchannelsync.py*
# Disable zypper channel support
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/zyppchannelsync.py*
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/zyppchannelsync.py*
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'rpm', 'rpm', '', d)}" ]; then
- rm -f ${D}${libdir}/python*/site-packages/smart/plugins/rpmdir.py*
- rm -rf ${D}${libdir}/python*/site-packages/smart/backends/rpm
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/smart/plugins/rpmdir.py*
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/backends/rpm
fi
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'qt4', 'qt4', '', d)}" ]; then
- rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt4
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/interfaces/qt4
fi
if [ -z "${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'gtk', '', d)}" ]; then
- rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/gtk
+ rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/smart/interfaces/gtk
fi
}
@@ -127,10 +131,10 @@ RDEPENDS_${PN}-interface-gtk = "gtk+ ${PN}-interface-images"
FILES_smartpm = "${bindir}/smart"
-FILES_${PN}-backend-rpm = "${libdir}/python*/site-packages/smart/backends/rpm"
+FILES_${PN}-backend-rpm = "${PYTHON_SITEPACKAGES_DIR}/smart/backends/rpm"
-FILES_${PN}-interface-qt4 = "${libdir}/python*/site-packages/smart/interfaces/qt4"
-FILES_${PN}-interface-gtk = "${libdir}/python*/site-packages/smart/interfaces/gtk"
+FILES_${PN}-interface-qt4 = "${PYTHON_SITEPACKAGES_DIR}/smart/interfaces/qt4"
+FILES_${PN}-interface-gtk = "${PYTHON_SITEPACKAGES_DIR}/smart/interfaces/gtk"
FILES_${PN}-interface-images = "${datadir}/${baselib}/python*/site-packages/smart/interfaces/images"
BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap.inc
new file mode 100644
index 000000000..d67e6b541
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap.inc
@@ -0,0 +1,19 @@
+SUMMARY = "Python implementation of a sliding window memory map manager"
+DESCRIPTION = "A pure Python implementation of a sliding memory map to \
+help unifying memory mapped access on 32 and 64 bit systems and to help \
+managing resources more efficiently."
+HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/s/smmap/smmap-${PV}.tar.gz"
+SRC_URI[md5sum] = "d7932d5ace206bf4ae15198cf36fb6ab"
+SRC_URI[sha256sum] = "0e2b62b497bd5f0afebc002eda4d90df9d209c30ef257e8673c90a6b5c119d62"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/smmap/"
+UPSTREAM_CHECK_REGEX = "/smmap/(?P<pver>(\d+[\.\-_]*)+)"
+
+S = "${WORKDIR}/smmap-${PV}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap_0.9.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap_0.9.0.bb
index 5f9cf452e..c118dd8d6 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap_0.9.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python-smmap_0.9.0.bb
@@ -1,23 +1,5 @@
-SUMMARY = "Python implementation of a sliding window memory map manager"
-DESCRIPTION = "A pure Python implementation of a sliding memory map to \
-help unifying memory mapped access on 32 and 64 bit systems and to help \
-managing resources more efficiently."
-HOMEPAGE = "http://github.com/gitpython-developers/GitPython"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI = "http://pypi.python.org/packages/source/s/smmap/smmap-${PV}.tar.gz"
-SRC_URI[md5sum] = "d7932d5ace206bf4ae15198cf36fb6ab"
-SRC_URI[sha256sum] = "0e2b62b497bd5f0afebc002eda4d90df9d209c30ef257e8673c90a6b5c119d62"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/smmap/"
-UPSTREAM_CHECK_REGEX = "/smmap/(?P<pver>(\d+[\.\-_]*)+)"
-
-S = "${WORKDIR}/smmap-${PV}"
+require python-smmap.inc
inherit setuptools
RDEPENDS_${PN} += "python-codecs python-mmap python-lang"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python.inc b/import-layers/yocto-poky/meta/recipes-devtools/python/python.inc
index f4818c6a8..79a431c7e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python.inc
@@ -5,12 +5,12 @@ SECTION = "devel/python"
# bump this on every change in contrib/python/generate-manifest-2.7.py
INC_PR = "r1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6b60258130e4ed10d3101517eb5b9385"
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz"
-SRC_URI[md5sum] = "1dbcc848b4cd8399a8199d000f9f823c"
-SRC_URI[sha256sum] = "962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46"
+SRC_URI[md5sum] = "57dffcee9cee8bb2ab5f82af1d8e9a69"
+SRC_URI[sha256sum] = "d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978"
# python recipe is actually python 2.x
# also, exclude pre-releases for both python 2.x and 3.x
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch
new file mode 100644
index 000000000..502f84980
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/0001-distutils-set-the-prefix-to-be-inside-staging-direct.patch
@@ -0,0 +1,51 @@
+From 4cdf2e9df13c6327fcc94d53e4953005543aef3d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 6 Apr 2016 17:43:02 +0300
+Subject: [PATCH 01/10] distutils: set the prefix to be inside staging
+ directory
+
+The proper prefix is inside our staging area.
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
+Signed-off-by: Phil Blundell <philb@gnu.org>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Lib/distutils/sysconfig.py | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index de7da1d..f3aacf7 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -75,7 +75,7 @@ def get_python_inc(plat_specific=0, prefix=None):
+ sys.exec_prefix -- i.e., ignore 'plat_specific'.
+ """
+ if prefix is None:
+- prefix = plat_specific and EXEC_PREFIX or PREFIX
++ prefix = os.environ['STAGING_INCDIR'].rstrip('include')
+
+ if os.name == "posix":
+ if python_build:
+@@ -115,12 +115,16 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
+ If 'prefix' is supplied, use it instead of sys.prefix or
+ sys.exec_prefix -- i.e., ignore 'plat_specific'.
+ """
++ lib_basename = os.environ['STAGING_LIBDIR'].split('/')[-1]
+ if prefix is None:
+- prefix = plat_specific and EXEC_PREFIX or PREFIX
++ if plat_specific:
++ prefix = os.environ['STAGING_LIBDIR'].rstrip(lib_basename)
++ else:
++ prefix = PREFIX
+
+ if os.name == "posix":
+ libpython = os.path.join(prefix,
+- "lib", "python" + get_python_version())
++ lib_basename, "python" + get_python_version())
+ if standard_lib:
+ return libpython
+ else:
+--
+2.8.0.rc3
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
index 1257ca655..b2a8c3b5a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/01-use-proper-tools-for-cross-build.patch
@@ -7,13 +7,13 @@ Signed-off-by: Michael 'Mickey' Lauer <mickey@vanille-media.de>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Rebased for python-2.7.9
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-Index: Python-2.7.9/Makefile.pre.in
+Index: Python-2.7.12/Makefile.pre.in
===================================================================
---- Python-2.7.9.orig/Makefile.pre.in
-+++ Python-2.7.9/Makefile.pre.in
-@@ -234,6 +234,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
+--- Python-2.7.12.orig/Makefile.pre.in
++++ Python-2.7.12/Makefile.pre.in
+@@ -246,6 +246,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
##########################################################################
# Parser
PGEN= Parser/pgen$(EXE)
@@ -21,7 +21,7 @@ Index: Python-2.7.9/Makefile.pre.in
PSRCS= \
Parser/acceler.c \
-@@ -445,7 +446,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
+@@ -513,7 +514,7 @@ $(BUILDPYTHON): Modules/python.o $(LIBRA
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
platform: $(BUILDPYTHON) pybuilddir.txt
@@ -30,16 +30,16 @@ Index: Python-2.7.9/Makefile.pre.in
# Create build directory and generate the sysconfig build-time data there.
# pybuilddir.txt contains the name of the build dir and is used for
-@@ -611,7 +612,7 @@ Modules/pwdmodule.o: $(srcdir)/Modules/p
- $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGENSRCS)
- @$(MKDIR_P) Include
- $(MAKE) $(PGEN)
-- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
- $(GRAMMAR_C): $(GRAMMAR_H) $(GRAMMAR_INPUT) $(PGENSRCS)
- $(MAKE) $(GRAMMAR_H)
- touch $(GRAMMAR_C)
-@@ -1043,27 +1044,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
+@@ -684,7 +685,7 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
+ @$(MKDIR_P) Include
+ # Avoid copying the file onto itself for an in-tree build
+ if test "$(cross_compiling)" != "yes"; then \
+- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \
++ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \
+ else \
+ cp $(srcdir)/Include/graminit.h $(GRAMMAR_H).tmp; \
+ mv $(GRAMMAR_H).tmp $(GRAMMAR_H); \
+@@ -1133,27 +1134,27 @@ libinstall: build_all $(srcdir)/Lib/$(PL
$(DESTDIR)$(LIBDEST)/distutils/tests ; \
fi
PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
@@ -73,11 +73,11 @@ Index: Python-2.7.9/Makefile.pre.in
# Create the PLATDIR source directory, if one wasn't distributed..
$(srcdir)/Lib/$(PLATDIR):
-Index: Python-2.7.9/setup.py
+Index: Python-2.7.12/setup.py
===================================================================
---- Python-2.7.9.orig/setup.py
-+++ Python-2.7.9/setup.py
-@@ -334,6 +334,7 @@ class PyBuildExt(build_ext):
+--- Python-2.7.12.orig/setup.py
++++ Python-2.7.12/setup.py
+@@ -350,6 +350,7 @@ class PyBuildExt(build_ext):
self.failed.append(ext.name)
self.announce('*** WARNING: renaming "%s" since importing it'
' failed: %s' % (ext.name, why), level=3)
@@ -85,7 +85,7 @@ Index: Python-2.7.9/setup.py
assert not self.inplace
basename, tail = os.path.splitext(ext_filename)
newname = basename + "_failed" + tail
-@@ -558,6 +559,9 @@ class PyBuildExt(build_ext):
+@@ -574,6 +575,9 @@ class PyBuildExt(build_ext):
# XXX Omitted modules: gl, pure, dl, SGI-specific modules
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
index e452cb6ac..435b31901 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/06-avoid_usr_lib_termcap_path_in_linking.patch
@@ -11,7 +11,7 @@ Nitin A Kamble <nitin.a.kamble@intel.com>
2011/09/29
Rebased for python 2.7.2
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/CVE-2016-5636.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/CVE-2016-5636.patch
new file mode 100644
index 000000000..9a3747145
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/CVE-2016-5636.patch
@@ -0,0 +1,44 @@
+
+# HG changeset patch
+# User Benjamin Peterson <benjamin@python.org>
+# Date 1453357424 28800
+# Node ID 985fc64c60d6adffd1138b6cc46df388ca91ca5d
+# Parent 7ec954b9fc54448a35b56d271340ba109eb381b9
+prevent buffer overflow in get_data (closes #26171)
+
+Upstream-Status: Backport
+https://hg.python.org/cpython/rev/985fc64c60d6
+
+CVE: CVE-2016-5636
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: Python-2.7.11/Misc/NEWS
+===================================================================
+--- Python-2.7.11.orig/Misc/NEWS
++++ Python-2.7.11/Misc/NEWS
+@@ -7,6 +7,9 @@ What's New in Python 2.7.11?
+
+ *Release date: 2015-12-05*
+
++- Issue #26171: Fix possible integer overflow and heap corruption in
++ zipimporter.get_data().
++
+ Library
+ -------
+
+Index: Python-2.7.11/Modules/zipimport.c
+===================================================================
+--- Python-2.7.11.orig/Modules/zipimport.c
++++ Python-2.7.11/Modules/zipimport.c
+@@ -895,6 +895,11 @@ get_data(char *archive, PyObject *toc_en
+ PyMarshal_ReadShortFromFile(fp); /* local header size */
+ file_offset += l; /* Start of file data */
+
++ if (data_size > LONG_MAX - 1) {
++ fclose(fp);
++ PyErr_NoMemory();
++ return NULL;
++ }
+ raw_data = PyString_FromStringAndSize((char *)NULL, compress == 0 ?
+ data_size : data_size + 1);
+ if (raw_data == NULL) {
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/avoid_parallel_make_races_on_pgen.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/avoid_parallel_make_races_on_pgen.patch
index e9bae324f..8012245af 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python/avoid_parallel_make_races_on_pgen.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/avoid_parallel_make_races_on_pgen.patch
@@ -4,8 +4,8 @@ Avoids parallel make races linking errors when making Parser/PGEN
- Implements Richard Purdie's idea
-Signed-Off-By: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/Makefile.pre.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch
index e4262d9ef..5f7309367 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/fix_for_using_different_libdir.patch
@@ -4,15 +4,15 @@ This patch fixes issuing with different libdir like lib64.
This patch makes the native python binary modules findable
in the install process of the host python.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2012/03/14
Updated for python 2.7.3
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2012/05/01
Rebased for python-2.7.9
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-2.7.9/Lib/sysconfig.py
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/multilib.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/multilib.patch
index 0bfa0d2cf..b169133d7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python/multilib.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/multilib.patch
@@ -1,11 +1,11 @@
Rebased for python-2.7.9
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-Index: Python-2.7.9/configure.ac
+Index: Python-2.7.12/configure.ac
===================================================================
---- Python-2.7.9.orig/configure.ac
-+++ Python-2.7.9/configure.ac
-@@ -736,6 +736,10 @@ SunOS*)
+--- Python-2.7.12.orig/configure.ac
++++ Python-2.7.12/configure.ac
+@@ -756,6 +756,10 @@ SunOS*)
;;
esac
@@ -16,10 +16,10 @@ Index: Python-2.7.9/configure.ac
AC_SUBST(LIBRARY)
AC_MSG_CHECKING(LIBRARY)
-Index: Python-2.7.9/Include/pythonrun.h
+Index: Python-2.7.12/Include/pythonrun.h
===================================================================
---- Python-2.7.9.orig/Include/pythonrun.h
-+++ Python-2.7.9/Include/pythonrun.h
+--- Python-2.7.12.orig/Include/pythonrun.h
++++ Python-2.7.12/Include/pythonrun.h
@@ -108,6 +108,7 @@ PyAPI_FUNC(char *) Py_GetPath(void);
/* In their own files */
PyAPI_FUNC(const char *) Py_GetVersion(void);
@@ -28,10 +28,10 @@ Index: Python-2.7.9/Include/pythonrun.h
PyAPI_FUNC(const char *) Py_GetCopyright(void);
PyAPI_FUNC(const char *) Py_GetCompiler(void);
PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
-Index: Python-2.7.9/Lib/distutils/command/install.py
+Index: Python-2.7.12/Lib/distutils/command/install.py
===================================================================
---- Python-2.7.9.orig/Lib/distutils/command/install.py
-+++ Python-2.7.9/Lib/distutils/command/install.py
+--- Python-2.7.12.orig/Lib/distutils/command/install.py
++++ Python-2.7.12/Lib/distutils/command/install.py
@@ -22,6 +22,8 @@ from site import USER_BASE
from site import USER_SITE
@@ -50,10 +50,10 @@ Index: Python-2.7.9/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
-Index: Python-2.7.9/Lib/distutils/sysconfig.py
+Index: Python-2.7.12/Lib/distutils/sysconfig.py
===================================================================
---- Python-2.7.9.orig/Lib/distutils/sysconfig.py
-+++ Python-2.7.9/Lib/distutils/sysconfig.py
+--- Python-2.7.12.orig/Lib/distutils/sysconfig.py
++++ Python-2.7.12/Lib/distutils/sysconfig.py
@@ -119,8 +119,11 @@ def get_python_lib(plat_specific=0, stan
prefix = plat_specific and EXEC_PREFIX or PREFIX
@@ -68,11 +68,11 @@ Index: Python-2.7.9/Lib/distutils/sysconfig.py
if standard_lib:
return libpython
else:
-Index: Python-2.7.9/Lib/pydoc.py
+Index: Python-2.7.12/Lib/pydoc.py
===================================================================
---- Python-2.7.9.orig/Lib/pydoc.py
-+++ Python-2.7.9/Lib/pydoc.py
-@@ -383,7 +383,7 @@ class Doc:
+--- Python-2.7.12.orig/Lib/pydoc.py
++++ Python-2.7.12/Lib/pydoc.py
+@@ -384,7 +384,7 @@ class Doc:
docloc = os.environ.get("PYTHONDOCS",
"http://docs.python.org/library")
@@ -81,10 +81,10 @@ Index: Python-2.7.9/Lib/pydoc.py
"python"+sys.version[0:3])
if (isinstance(object, type(os)) and
(object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
-Index: Python-2.7.9/Lib/site.py
+Index: Python-2.7.12/Lib/site.py
===================================================================
---- Python-2.7.9.orig/Lib/site.py
-+++ Python-2.7.9/Lib/site.py
+--- Python-2.7.12.orig/Lib/site.py
++++ Python-2.7.12/Lib/site.py
@@ -288,13 +288,18 @@ def getsitepackages():
if sys.platform in ('os2emx', 'riscos'):
sitepackages.append(os.path.join(prefix, "Lib", "site-packages"))
@@ -107,10 +107,10 @@ Index: Python-2.7.9/Lib/site.py
if sys.platform == "darwin":
# for framework builds *only* we add the standard Apple
# locations.
-Index: Python-2.7.9/Lib/sysconfig.py
+Index: Python-2.7.12/Lib/sysconfig.py
===================================================================
---- Python-2.7.9.orig/Lib/sysconfig.py
-+++ Python-2.7.9/Lib/sysconfig.py
+--- Python-2.7.12.orig/Lib/sysconfig.py
++++ Python-2.7.12/Lib/sysconfig.py
@@ -7,10 +7,10 @@ from os.path import pardir, realpath
_INSTALL_SCHEMES = {
@@ -139,10 +139,10 @@ Index: Python-2.7.9/Lib/sysconfig.py
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data' : '{userbase}',
-Index: Python-2.7.9/Lib/test/test_dl.py
+Index: Python-2.7.12/Lib/test/test_dl.py
===================================================================
---- Python-2.7.9.orig/Lib/test/test_dl.py
-+++ Python-2.7.9/Lib/test/test_dl.py
+--- Python-2.7.12.orig/Lib/test/test_dl.py
++++ Python-2.7.12/Lib/test/test_dl.py
@@ -4,10 +4,11 @@
import unittest
from test.test_support import verbose, import_module
@@ -157,11 +157,11 @@ Index: Python-2.7.9/Lib/test/test_dl.py
('/usr/bin/cygwin1.dll', 'getpid'),
('/usr/lib/libc.dylib', 'getpid'),
]
-Index: Python-2.7.9/Lib/test/test_site.py
+Index: Python-2.7.12/Lib/test/test_site.py
===================================================================
---- Python-2.7.9.orig/Lib/test/test_site.py
-+++ Python-2.7.9/Lib/test/test_site.py
-@@ -241,12 +241,16 @@ class HelperFunctionsTests(unittest.Test
+--- Python-2.7.12.orig/Lib/test/test_site.py
++++ Python-2.7.12/Lib/test/test_site.py
+@@ -246,12 +246,16 @@ class HelperFunctionsTests(unittest.Test
self.assertEqual(dirs[2], wanted)
elif os.sep == '/':
# OS X non-framwework builds, Linux, FreeBSD, etc
@@ -181,10 +181,10 @@ Index: Python-2.7.9/Lib/test/test_site.py
else:
# other platforms
self.assertEqual(len(dirs), 2)
-Index: Python-2.7.9/Lib/trace.py
+Index: Python-2.7.12/Lib/trace.py
===================================================================
---- Python-2.7.9.orig/Lib/trace.py
-+++ Python-2.7.9/Lib/trace.py
+--- Python-2.7.12.orig/Lib/trace.py
++++ Python-2.7.12/Lib/trace.py
@@ -754,10 +754,10 @@ def main(argv=None):
# should I also call expanduser? (after all, could use $HOME)
@@ -198,11 +198,11 @@ Index: Python-2.7.9/Lib/trace.py
"python" + sys.version[:3]))
s = os.path.normpath(s)
ignore_dirs.append(s)
-Index: Python-2.7.9/Makefile.pre.in
+Index: Python-2.7.12/Makefile.pre.in
===================================================================
---- Python-2.7.9.orig/Makefile.pre.in
-+++ Python-2.7.9/Makefile.pre.in
-@@ -87,6 +87,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
+--- Python-2.7.12.orig/Makefile.pre.in
++++ Python-2.7.12/Makefile.pre.in
+@@ -92,6 +92,7 @@ PY_CFLAGS= $(CFLAGS) $(CPPFLAGS) $(CFLAG
# Machine-dependent subdirectories
MACHDEP= @MACHDEP@
@@ -210,7 +210,7 @@ Index: Python-2.7.9/Makefile.pre.in
# Multiarch directory (may be empty)
MULTIARCH= @MULTIARCH@
-@@ -106,7 +107,7 @@ LIBDIR= @libdir@
+@@ -111,7 +112,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -219,7 +219,7 @@ Index: Python-2.7.9/Makefile.pre.in
# Detailed destination directories
BINLIBDEST= $(LIBDIR)/python$(VERSION)
-@@ -598,6 +599,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
+@@ -670,6 +671,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
@@ -227,7 +227,7 @@ Index: Python-2.7.9/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c
Modules/python.o: $(srcdir)/Modules/python.c
-@@ -640,7 +642,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
+@@ -721,7 +723,7 @@ $(AST_C): $(AST_ASDL) $(ASDLGEN_FILES)
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c
@@ -236,25 +236,25 @@ Index: Python-2.7.9/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-2.7.9/Modules/getpath.c
+Index: Python-2.7.12/Modules/getpath.c
===================================================================
---- Python-2.7.9.orig/Modules/getpath.c
-+++ Python-2.7.9/Modules/getpath.c
-@@ -116,9 +116,11 @@
- #define EXEC_PREFIX PREFIX
+--- Python-2.7.12.orig/Modules/getpath.c
++++ Python-2.7.12/Modules/getpath.c
+@@ -100,6 +100,13 @@
+ #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
#endif
+#define LIB_PYTHON LIB "/python" VERSION
+
- #ifndef PYTHONPATH
--#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
++#ifndef PYTHONPATH
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
- #endif
-
++#endif
++
#ifndef LANDMARK
-@@ -129,7 +131,7 @@ static char prefix[MAXPATHLEN+1];
+ #define LANDMARK "os.py"
+ #endif
+@@ -108,7 +115,7 @@ static char prefix[MAXPATHLEN+1];
static char exec_prefix[MAXPATHLEN+1];
static char progpath[MAXPATHLEN+1];
static char *module_search_path = NULL;
@@ -263,10 +263,10 @@ Index: Python-2.7.9/Modules/getpath.c
static void
reduce(char *dir)
-Index: Python-2.7.9/Python/getplatform.c
+Index: Python-2.7.12/Python/getplatform.c
===================================================================
---- Python-2.7.9.orig/Python/getplatform.c
-+++ Python-2.7.9/Python/getplatform.c
+--- Python-2.7.12.orig/Python/getplatform.c
++++ Python-2.7.12/Python/getplatform.c
@@ -10,3 +10,13 @@ Py_GetPlatform(void)
{
return PLATFORM;
@@ -281,10 +281,10 @@ Index: Python-2.7.9/Python/getplatform.c
+{
+ return LIB;
+}
-Index: Python-2.7.9/Python/sysmodule.c
+Index: Python-2.7.12/Python/sysmodule.c
===================================================================
---- Python-2.7.9.orig/Python/sysmodule.c
-+++ Python-2.7.9/Python/sysmodule.c
+--- Python-2.7.12.orig/Python/sysmodule.c
++++ Python-2.7.12/Python/sysmodule.c
@@ -1437,6 +1437,8 @@ _PySys_Init(void)
PyString_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform",
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python/python-fix-CVE-2016-1000110.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python/python-fix-CVE-2016-1000110.patch
new file mode 100644
index 000000000..97888e2b0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python/python-fix-CVE-2016-1000110.patch
@@ -0,0 +1,162 @@
+From cb25fbd5abc0f4eb07dbb8ea819e9c26bda4fc99 Mon Sep 17 00:00:00 2001
+From: Senthil Kumaran <senthil@uthcode.com>
+Date: Sat, 30 Jul 2016 05:49:53 -0700
+Subject: [PATCH] python: fix CVE-2016-1000110
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Prevent HTTPoxy attack (CVE-2016-1000110)
+
+Ignore the HTTP_PROXY variable when REQUEST_METHOD environment is set, which
+indicates that the script is in CGI mode.
+
+Issue reported and patch contributed by RĂ©mi Rampin.
+
+Backport patch from https://hg.python.org/cpython/rev/ba915d561667/
+
+Upstream-Status: Backport
+CVE: CVE-2016-1000110
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ Doc/howto/urllib2.rst | 5 +++++
+ Doc/library/urllib.rst | 10 ++++++++++
+ Doc/library/urllib2.rst | 5 +++++
+ Lib/test/test_urllib.py | 12 ++++++++++++
+ Lib/urllib.py | 9 +++++++++
+ Misc/ACKS | 1 +
+ Misc/NEWS | 4 ++++
+ 7 files changed, 46 insertions(+)
+
+diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
+index 6bb06d4..5cf2c0c 100644
+--- a/Doc/howto/urllib2.rst
++++ b/Doc/howto/urllib2.rst
+@@ -525,6 +525,11 @@ setting up a `Basic Authentication`_ handler: ::
+ through a proxy. However, this can be enabled by extending urllib2 as
+ shown in the recipe [#]_.
+
++.. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see
++ the documentation on :func:`~urllib.getproxies`.
++
+
+ Sockets and Layers
+ ==================
+diff --git a/Doc/library/urllib.rst b/Doc/library/urllib.rst
+index 3b5dc16..bddcba9 100644
+--- a/Doc/library/urllib.rst
++++ b/Doc/library/urllib.rst
+@@ -295,6 +295,16 @@ Utility functions
+ If both lowercase and uppercase environment variables exist (and disagree),
+ lowercase is preferred.
+
++ .. note::
++
++ If the environment variable ``REQUEST_METHOD`` is set, which usually
++ indicates your script is running in a CGI environment, the environment
++ variable ``HTTP_PROXY`` (uppercase ``_PROXY``) will be ignored. This is
++ because that variable can be injected by a client using the "Proxy:"
++ HTTP header. If you need to use an HTTP proxy in a CGI environment,
++ either use ``ProxyHandler`` explicitly, or make sure the variable name
++ is in lowercase (or at least the ``_proxy`` suffix).
++
+ .. note::
+ urllib also exposes certain utility functions like splittype, splithost and
+ others parsing URL into various components. But it is recommended to use
+diff --git a/Doc/library/urllib2.rst b/Doc/library/urllib2.rst
+index 8a4c80e..b808b98 100644
+--- a/Doc/library/urllib2.rst
++++ b/Doc/library/urllib2.rst
+@@ -229,6 +229,11 @@ The following classes are provided:
+
+ To disable autodetected proxy pass an empty dictionary.
+
++ .. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
++ see the documentation on :func:`~urllib.getproxies`.
++
+
+ .. class:: HTTPPasswordMgr()
+
+diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
+index 434d533..27a1d38 100644
+--- a/Lib/test/test_urllib.py
++++ b/Lib/test/test_urllib.py
+@@ -170,6 +170,18 @@ class ProxyTests(unittest.TestCase):
+ self.assertTrue(urllib.proxy_bypass_environment('anotherdomain.com:8888'))
+ self.assertTrue(urllib.proxy_bypass_environment('newdomain.com:1234'))
+
++ def test_proxy_cgi_ignore(self):
++ try:
++ self.env.set('HTTP_PROXY', 'http://somewhere:3128')
++ proxies = urllib.getproxies_environment()
++ self.assertEqual('http://somewhere:3128', proxies['http'])
++ self.env.set('REQUEST_METHOD', 'GET')
++ proxies = urllib.getproxies_environment()
++ self.assertNotIn('http', proxies)
++ finally:
++ self.env.unset('REQUEST_METHOD')
++ self.env.unset('HTTP_PROXY')
++
+ def test_proxy_bypass_environment_host_match(self):
+ bypass = urllib.proxy_bypass_environment
+ self.env.set('NO_PROXY',
+diff --git a/Lib/urllib.py b/Lib/urllib.py
+index 139fab9..c3ba2c9 100644
+--- a/Lib/urllib.py
++++ b/Lib/urllib.py
+@@ -1380,12 +1380,21 @@ def getproxies_environment():
+ If you need a different way, you can pass a proxies dictionary to the
+ [Fancy]URLopener constructor.
+ """
++ # Get all variables
+ proxies = {}
+ for name, value in os.environ.items():
+ name = name.lower()
+ if value and name[-6:] == '_proxy':
+ proxies[name[:-6]] = value
+
++ # CVE-2016-1000110 - If we are running as CGI script, forget HTTP_PROXY
++ # (non-all-lowercase) as it may be set from the web server by a "Proxy:"
++ # header from the client
++ # If "proxy" is lowercase, it will still be used thanks to the next block
++ if 'REQUEST_METHOD' in os.environ:
++ proxies.pop('http', None)
++
++ # Get lowercase variables
+ for name, value in os.environ.items():
+ if name[-6:] == '_proxy':
+ name = name.lower()
+diff --git a/Misc/ACKS b/Misc/ACKS
+index ee3a465..9c374b7 100644
+--- a/Misc/ACKS
++++ b/Misc/ACKS
+@@ -1121,6 +1121,7 @@ Burton Radons
+ Jeff Ramnani
+ Varpu Rantala
+ Brodie Rao
++RĂ©mi Rampin
+ Senko Rasic
+ Antti Rasinen
+ Nikolaus Rath
+diff --git a/Misc/NEWS b/Misc/NEWS
+index 4ab3a70..cc2f65b 100644
+--- a/Misc/NEWS
++++ b/Misc/NEWS
+@@ -187,6 +187,10 @@ Library
+ - Issue #26644: Raise ValueError rather than SystemError when a negative
+ length is passed to SSLSocket.recv() or read().
+
++- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
++ HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
++ that the script is in CGI mode.
++
+ - Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes
+ instead of up to 1024.
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-async_0.6.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-async_0.6.2.bb
new file mode 100644
index 000000000..54a30f549
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-async_0.6.2.bb
@@ -0,0 +1,6 @@
+require python-async.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-threading python3-lang"
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-dbus_1.2.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-dbus_1.2.4.bb
new file mode 100644
index 000000000..de5a01c7f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-dbus_1.2.4.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Python bindings for the DBus inter-process communication system"
+SECTION = "devel/python"
+HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0b83047ce9e948b67c0facc5f233476a"
+DEPENDS = "expat dbus dbus-glib virtual/libintl"
+
+SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \
+"
+
+SRC_URI[md5sum] = "7372a588c83a7232b4e08159bfd48fe5"
+SRC_URI[sha256sum] = "e2f1d6871f74fba23652e51d10873e54f71adab0525833c19bad9e99b1b2f9cc"
+S = "${WORKDIR}/dbus-python-${PV}"
+
+inherit distutils3-base autotools pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[docs] = "--enable-html-docs,--disable-html-docs,python3-docutils-native"
+PACKAGECONFIG[api-docs] = "--enable-api-docs,--disable-api-docs,python3-docutils-native python3-epydoc-native"
+
+RDEPENDS_${PN} = "python3-io python3-logging python3-stringold python3-threading python3-xml"
+
+FILES_${PN}-dev += "${libdir}/pkgconfig"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-docutils_0.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-docutils_0.12.bb
new file mode 100644
index 000000000..e78fa3bbc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-docutils_0.12.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Text processing system for documentation"
+HOMEPAGE = "http://docutils.sourceforge.net"
+SECTION = "devel/python"
+LICENSE = "PSF & BSD-2-Clause & GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=a722fbdc20347db7b69223594dd54574"
+
+DEPENDS = "python3"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
+SRC_URI[md5sum] = "4622263b62c5c771c03502afa3157768"
+SRC_URI[sha256sum] = "c7db717810ab6965f66c8cf0398a98c9d8df982da39b4cd7f162911eb89596fa"
+
+S = "${WORKDIR}/docutils-${PV}"
+
+inherit distutils3
+
+BBCLASSEXTEND = "native"
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-git_2.0.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-git_2.0.7.bb
new file mode 100644
index 000000000..c9fe9baa2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-git_2.0.7.bb
@@ -0,0 +1,7 @@
+require python-git.inc
+
+DEPENDS = "python3-gitdb"
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-gitdb python3-lang python3-io python3-shell python3-math python3-re python3-subprocess python3-stringold python3-unixadmin python3-enum python3-logging python3-datetime python3-netclient"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-gitdb_0.6.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-gitdb_0.6.4.bb
new file mode 100644
index 000000000..80d9d469a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-gitdb_0.6.4.bb
@@ -0,0 +1,7 @@
+require python-gitdb.inc
+
+DEPENDS = "python3-async python3-smmap"
+
+inherit distutils3
+
+RDEPENDS_${PN} += "python3-smmap python3-async python3-mmap python3-lang python3-io python3-shell python3-crypt python3-compression"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-mako_1.0.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-mako_1.0.4.bb
new file mode 100644
index 000000000..2b50ffd08
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-mako_1.0.4.bb
@@ -0,0 +1,11 @@
+require python-mako.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} = "python3-threading \
+ python3-netclient \
+ python3-html \
+"
+RDEPENDS_${PN}_class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.1.bb
deleted file mode 100644
index 7bad11aaf..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.1.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-require recipes-devtools/python/python.inc
-
-PR = "${INC_PR}.0"
-PYTHON_MAJMIN = "3.5"
-DISTRO_SRC_URI ?= "file://sitecustomize.py"
-DISTRO_SRC_URI_linuxstdbase = ""
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
-file://12-distutils-prefix-is-inside-staging-area.patch \
-file://python-config.patch \
-file://000-cross-compile.patch \
-file://020-dont-compile-python-files.patch \
-file://030-fixup-include-dirs.patch \
-file://070-dont-clean-ipkg-install.patch \
-file://080-distutils-dont_adjust_files.patch \
-file://110-enable-zlib.patch \
-file://130-readline-setup.patch \
-file://150-fix-setupterm.patch \
-file://python-3.3-multilib.patch \
-file://03-fix-tkinter-detection.patch \
-file://avoid_warning_about_tkinter.patch \
-file://shutil-follow-symlink-fix.patch \
-file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
-file://sysroot-include-headers.patch \
-file://unixccompiler.patch \
-${DISTRO_SRC_URI} \
-file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
-file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
-file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
-"
-SRC_URI[md5sum] = "e9ea6f2623fffcdd871b7b19113fde80"
-SRC_URI[sha256sum] = "c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
-
-# exclude pre-releases for both python 2.x and 3.x
-UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
-
-S = "${WORKDIR}/Python-${PV}"
-
-EXTRANATIVEPATH += "bzip2-native"
-DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native"
-
-inherit native
-
-RPROVIDES += "python3-distutils-native python3-compression-native python3-textutils-native python3-core-native"
-
-EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip"
-
-EXTRA_OEMAKE = '\
- BUILD_SYS="" \
- HOST_SYS="" \
- LIBC="" \
- STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
- STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
- LIB=${baselib} \
- ARCH=${TARGET_ARCH} \
-'
-
-# No ctypes option for python 3
-PYTHONLSBOPTS = ""
-
-do_configure_append() {
- autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-do_install() {
- install -d ${D}${libdir}/pkgconfig
- oe_runmake 'DESTDIR=${D}' install
- if [ -e ${WORKDIR}/sitecustomize.py ]; then
- install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
- fi
- install -d ${D}${bindir}/${PN}
- install -m 0755 Parser/pgen ${D}${bindir}/${PN}
-
- # Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
- sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
- done
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.2.bb
new file mode 100644
index 000000000..594f15c7c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-native_3.5.2.bb
@@ -0,0 +1,98 @@
+require recipes-devtools/python/python.inc
+
+PR = "${INC_PR}.0"
+PYTHON_MAJMIN = "3.5"
+DISTRO_SRC_URI ?= "file://sitecustomize.py"
+DISTRO_SRC_URI_linuxstdbase = ""
+SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
+file://12-distutils-prefix-is-inside-staging-area.patch \
+file://python-config.patch \
+file://000-cross-compile.patch \
+file://020-dont-compile-python-files.patch \
+file://030-fixup-include-dirs.patch \
+file://070-dont-clean-ipkg-install.patch \
+file://080-distutils-dont_adjust_files.patch \
+file://130-readline-setup.patch \
+file://150-fix-setupterm.patch \
+file://python-3.3-multilib.patch \
+file://03-fix-tkinter-detection.patch \
+file://avoid_warning_about_tkinter.patch \
+file://shutil-follow-symlink-fix.patch \
+file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
+file://sysroot-include-headers.patch \
+file://unixccompiler.patch \
+${DISTRO_SRC_URI} \
+file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
+file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
+file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
+"
+
+SRC_URI[md5sum] = "8906efbacfcdc7c3c9198aeefafd159e"
+SRC_URI[sha256sum] = "0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6b60258130e4ed10d3101517eb5b9385"
+
+# exclude pre-releases for both python 2.x and 3.x
+UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
+
+S = "${WORKDIR}/Python-${PV}"
+
+EXTRANATIVEPATH += "bzip2-native"
+DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native"
+
+inherit native
+
+RPROVIDES += " \
+ python3-compression-native \
+ python3-core-native \
+ python3-distutils-native \
+ python3-email-native \
+ python3-importlib-native \
+ python3-io-native \
+ python3-json-native \
+ python3-lang-native \
+ python3-misc-native \
+ python3-netclient-native \
+ python3-netserver-native \
+ python3-numbers-native \
+ python3-pkgutil-native \
+ python3-pprint-native \
+ python3-re-native \
+ python3-shell-native \
+ python3-subprocess-native \
+ python3-textutils-native \
+ python3-threading-native \
+ python3-unittest-native \
+"
+
+EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --without-ensurepip"
+
+EXTRA_OEMAKE = '\
+ LIBC="" \
+ STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
+ STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
+ LIB=${baselib} \
+ ARCH=${TARGET_ARCH} \
+'
+
+# No ctypes option for python 3
+PYTHONLSBOPTS = ""
+
+do_configure_append() {
+ autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
+}
+
+do_install() {
+ install -d ${D}${libdir}/pkgconfig
+ oe_runmake 'DESTDIR=${D}' install
+ if [ -e ${WORKDIR}/sitecustomize.py ]; then
+ install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
+ fi
+ install -d ${D}${bindir}/${PN}
+ install -m 0755 Parser/pgen ${D}${bindir}/${PN}
+
+ # Make sure we use /usr/bin/env python
+ for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
+ sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' $PYTHSCRIPT
+ done
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-nose_1.3.7.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-nose_1.3.7.bb
new file mode 100644
index 000000000..99bba4403
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-nose_1.3.7.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Extends Python unittest to make testing easier"
+DESCRIPTION = "nose extends the test loading and running features of unittest, \
+making it easier to write, find and run tests."
+SECTION = "devel/python"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://lgpl.txt;md5=a6f89e2100d9b6cdffcea4f398e37343"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/n/nose/nose-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "4d3ad0ff07b61373d2cefc89c5d0b20b"
+SRC_URI[sha256sum] = "f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/nose/"
+UPSTREAM_CHECK_REGEX = "/nose/(?P<pver>(\d+[\.\-_]*)+)"
+
+S = "${WORKDIR}/nose-${PV}"
+
+inherit setuptools3
+
+RDEPENDS_${PN}_class-target = "\
+ python3-unittest \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.0.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.0.0.bb
deleted file mode 100644
index 834ecda6d..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.0.0.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "The PyPA recommended tool for installing Python packages"
-sHOMEPAGEsss = "https://pypi.python.org/pypi/pip"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452"
-
-SRCNAME = "pip"
-DEPENDS += "python3 python3-setuptools-native"
-
-SRC_URI = " \
- http://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
-"
-SRC_URI[md5sum] = "5601c4323464add1482291634142894d"
-SRC_URI[sha256sum] = "90112b296152f270cb8dddcd19b7b87488d9e002e8cf622e14c4da9c2f6319b1"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pip"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit distutils3
-
-DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${libdir}/${PYTHON_DIR}/site-packages"
-
-do_install_prepend() {
- install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages
-}
-
-# Use setuptools site.py instead, avoid shared state issue
-do_install_append() {
- rm ${D}/${libdir}/${PYTHON_DIR}/site-packages/site.py
- rm ${D}/${libdir}/${PYTHON_DIR}/site-packages/__pycache__/site.cpython-*.pyc
-
- # Install as pip3 and leave pip2 as default
- rm ${D}/${bindir}/pip
-
- # Installed eggs need to be passed directly to the interpreter via a pth file
- echo "./${SRCNAME}-${PV}-py${PYTHON_BASEVERSION}.egg" > ${D}${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}-${PV}.pth
-}
-
-RDEPENDS_${PN} = "\
- python3-compile \
- python3-io \
- python3-json \
- python3-netserver \
- python3-setuptools \
- python3-unixadmin \
- python3-xmlrpc \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.1.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.1.2.bb
new file mode 100644
index 000000000..eefb4cb79
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pip_8.1.2.bb
@@ -0,0 +1,47 @@
+SUMMARY = "The PyPA recommended tool for installing Python packages"
+sHOMEPAGEsss = "https://pypi.python.org/pypi/pip"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452"
+
+SRCNAME = "pip"
+DEPENDS += "python3 python3-setuptools-native"
+
+SRC_URI = "https://files.pythonhosted.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "87083c0b9867963b29f7aba3613e8f4a"
+SRC_URI[sha256sum] = "4d24b03ffa67638a3fa931c09fd9e0273ffa904e95ebebe7d4b1a54c93d7b732"
+
+UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/pip"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils3
+
+DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${PYTHON_SITEPACKAGES_DIR}"
+
+do_install_prepend() {
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+}
+
+# Use setuptools site.py instead, avoid shared state issue
+do_install_append() {
+ rm ${D}${PYTHON_SITEPACKAGES_DIR}/site.py
+ rm ${D}${PYTHON_SITEPACKAGES_DIR}/__pycache__/site.cpython-*.pyc
+
+ # Install as pip3 and leave pip2 as default
+ rm ${D}/${bindir}/pip
+
+ # Installed eggs need to be passed directly to the interpreter via a pth file
+ echo "./${SRCNAME}-${PV}-py${PYTHON_BASEVERSION}.egg" > ${D}${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}-${PV}.pth
+}
+
+RDEPENDS_${PN} = "\
+ python3-compile \
+ python3-io \
+ python3-json \
+ python3-netserver \
+ python3-setuptools \
+ python3-unixadmin \
+ python3-xmlrpc \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pycairo_1.10.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pycairo_1.10.0.bb
new file mode 100644
index 000000000..f9031b3bc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pycairo_1.10.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Python bindings for the Cairo canvas library"
+HOMEPAGE = "http://cairographics.org/pycairo"
+BUGTRACKER = "http://bugs.freedesktop.org"
+SECTION = "python-devel"
+LICENSE = "LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+# cairo >= 1.8.8
+DEPENDS = "cairo"
+PR = "r2"
+
+SRC_URI = "http://cairographics.org/releases/pycairo-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "e6fd3f2f1e6a72e0db0868c4985669c5"
+SRC_URI[sha256sum] = "9aa4078e7eb5be583aeabbe8d87172797717f95e8c4338f0d4a17b683a7253be"
+
+S = "${WORKDIR}/pycairo-${PV}"
+
+inherit distutils3 pkgconfig
+
+BBCLASSEXTEND = "native"
+
+do_configure() {
+ PYTHON=${PYTHON} ./waf configure --prefix=${D}${prefix} --libdir=${D}${libdir}
+}
+
+do_compile() {
+ ./waf build ${PARALLEL_MAKE}
+}
+
+do_install() {
+ ./waf install
+ sed \
+ -e 's:@prefix@:${prefix}:' \
+ -e 's:@VERSION@:${PV}:' \
+ -e 's:@includedir@:${includedir}:' \
+ py3cairo.pc.in > py3cairo.pc
+ install -m 0644 py3cairo.pc ${D}${libdir}/pkgconfig/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
index a391f7e74..a391f7e74 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject_3.20.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject_3.20.1.bb
new file mode 100644
index 000000000..cda16f17a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-pygobject_3.20.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Python GObject bindings"
+SECTION = "devel/python"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+
+inherit autotools pkgconfig gnomebase distutils3-base gobject-introspection upstream-version-is-even
+
+DEPENDS += "python3 glib-2.0"
+
+SRCNAME="pygobject"
+SRC_URI = " \
+ http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
+ file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
+"
+
+SRC_URI[md5sum] = "4354c6283b135f859563b72457f6a321"
+SRC_URI[sha256sum] = "3d261005d6fed6a92ac4c25f283792552f7dad865d1b7e0c03c2b84c04dbd745"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF = "--disable-cairo"
+
+RDEPENDS_${PN} += "python3-setuptools python3-importlib"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_19.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_19.4.bb
deleted file mode 100644
index fb2931c3f..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_19.4.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-require python-setuptools.inc
-
-DEPENDS += "python3"
-DEPENDS_class-native += "python3-native"
-
-inherit distutils3
-
-DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${libdir}/${PYTHON_DIR}/site-packages"
-
-# The installer puts the wrong path in the setuptools.pth file. Correct it.
-do_install_append() {
- rm ${D}${PYTHON_SITEPACKAGES_DIR}/setuptools.pth
- mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install
- echo "./${SRCNAME}-${PV}-py${PYTHON_BASEVERSION}.egg" > ${D}${PYTHON_SITEPACKAGES_DIR}/setuptools.pth
-}
-
-RDEPENDS_${PN} = "\
- python3-distutils \
- python3-compression \
-"
-RDEPENDS_${PN}_class-target = "\
- python3-ctypes \
- python3-distutils \
- python3-email \
- python3-importlib \
- python3-numbers \
- python3-compression \
- python3-shell \
- python3-subprocess \
- python3-textutils \
- python3-pkgutil \
- python3-threading \
- python3-misc \
- python3-unittest \
- python3-xml \
-"
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_22.0.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_22.0.5.bb
new file mode 100644
index 000000000..65af6f0da
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-setuptools_22.0.5.bb
@@ -0,0 +1,37 @@
+require python-setuptools.inc
+
+DEPENDS += "python3"
+DEPENDS_class-native += "python3-native"
+
+inherit distutils3
+
+DISTUTILS_INSTALL_ARGS += "--install-lib=${D}${PYTHON_SITEPACKAGES_DIR}"
+
+# The installer puts the wrong path in the setuptools.pth file. Correct it.
+do_install_append() {
+ rm ${D}${PYTHON_SITEPACKAGES_DIR}/setuptools.pth
+ mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install
+ echo "./${SRCNAME}-${PV}-py${PYTHON_BASEVERSION}.egg" > ${D}${PYTHON_SITEPACKAGES_DIR}/setuptools.pth
+}
+
+RDEPENDS_${PN} = "\
+ python3-distutils \
+ python3-compression \
+"
+RDEPENDS_${PN}_class-target = "\
+ python3-ctypes \
+ python3-distutils \
+ python3-email \
+ python3-importlib \
+ python3-numbers \
+ python3-compression \
+ python3-shell \
+ python3-subprocess \
+ python3-textutils \
+ python3-pkgutil \
+ python3-threading \
+ python3-misc \
+ python3-unittest \
+ python3-xml \
+"
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-six_1.10.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-six_1.10.0.bb
new file mode 100644
index 000000000..38a47b77d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-six_1.10.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-six.inc
+
+RDEPENDS_${PN} += "python3-io"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3-smmap_0.9.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-smmap_0.9.0.bb
new file mode 100644
index 000000000..9f8a26d79
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3-smmap_0.9.0.bb
@@ -0,0 +1,5 @@
+require python-smmap.inc
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-codecs python3-mmap python3-lang"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/000-cross-compile.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/000-cross-compile.patch
index 28fe70adb..2d822218f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/000-cross-compile.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/000-cross-compile.patch
@@ -9,19 +9,19 @@ Upstream-Status: Inappropriate[Configuration Specific]
Makefile.pre.in | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
-Index: Python-3.5.1/Makefile.pre.in
+Index: Python-3.5.2/Makefile.pre.in
===================================================================
---- Python-3.5.1.orig/Makefile.pre.in
-+++ Python-3.5.1/Makefile.pre.in
+--- Python-3.5.2.orig/Makefile.pre.in
++++ Python-3.5.2/Makefile.pre.in
@@ -220,6 +220,7 @@ LIBOBJS= @LIBOBJS@
PYTHON= python$(EXE)
BUILDPYTHON= python$(BUILDEXE)
+HOSTPYTHON= $(BUILDPYTHON)
+ cross_compiling=@cross_compiling@
PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@
- _PYTHON_HOST_PLATFORM=@_PYTHON_HOST_PLATFORM@
-@@ -276,6 +277,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
+@@ -279,6 +280,7 @@ LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
##########################################################################
# Parser
PGEN= Parser/pgen$(EXE)
@@ -29,7 +29,7 @@ Index: Python-3.5.1/Makefile.pre.in
PSRCS= \
Parser/acceler.c \
-@@ -506,7 +508,7 @@ build_all_generate_profile:
+@@ -509,7 +511,7 @@ build_all_generate_profile:
run_profile_task:
: # FIXME: can't run for a cross build
@@ -38,16 +38,16 @@ Index: Python-3.5.1/Makefile.pre.in
build_all_merge_profile:
$(LLVM_PROF_MERGER)
-@@ -779,7 +781,7 @@ $(IO_OBJS): $(IO_H)
-
- $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
- @$(MKDIR_P) Include
-- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
- $(GRAMMAR_C): $(GRAMMAR_H)
- touch $(GRAMMAR_C)
-
-@@ -968,7 +970,7 @@ $(LIBRARY_OBJS) $(MODOBJS) Programs/pyth
+@@ -792,7 +794,7 @@ $(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
+ @$(MKDIR_P) Include
+ # Avoid copying the file onto itself for an in-tree build
+ if test "$(cross_compiling)" != "yes"; then \
+- $(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \
++ $(HOSTPGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C); \
+ else \
+ cp $(srcdir)/Include/graminit.h $(GRAMMAR_H).tmp; \
+ mv $(GRAMMAR_H).tmp $(GRAMMAR_H); \
+@@ -990,7 +992,7 @@ $(LIBRARY_OBJS) $(MODOBJS) Programs/pyth
######################################################################
TESTOPTS= $(EXTRATESTOPTS)
@@ -56,7 +56,7 @@ Index: Python-3.5.1/Makefile.pre.in
TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py
TESTTIMEOUT= 3600
-@@ -1455,7 +1457,7 @@ frameworkinstallstructure: $(LDLIBRARY)
+@@ -1481,7 +1483,7 @@ frameworkinstallstructure: $(LDLIBRARY)
fi; \
done
$(LN) -fsn include/python$(LDVERSION) $(DESTDIR)$(prefix)/Headers
@@ -65,7 +65,7 @@ Index: Python-3.5.1/Makefile.pre.in
$(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
$(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
$(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
-@@ -1521,7 +1523,7 @@ config.status: $(srcdir)/configure
+@@ -1547,7 +1549,7 @@ config.status: $(srcdir)/configure
# Run reindent on the library
reindent:
@@ -74,7 +74,7 @@ Index: Python-3.5.1/Makefile.pre.in
# Rerun configure with the same options as it was run last time,
# provided the config.status script exists
-@@ -1656,7 +1658,7 @@ funny:
+@@ -1683,7 +1685,7 @@ funny:
# Perform some verification checks on any modified files.
patchcheck: all
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/110-enable-zlib.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/110-enable-zlib.patch
deleted file mode 100644
index fb92a1916..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/110-enable-zlib.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Enable zlib in python
-
--Khem
-
-Upstream-Status: Inappropriate [OE-Specific]
-
----
- Modules/Setup.dist | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/Modules/Setup.dist
-+++ b/Modules/Setup.dist
-@@ -354,7 +354,7 @@ _symtable symtablemodule.c
- # Andrew Kuchling's zlib module.
- # This require zlib 1.1.3 (or later).
- # See http://www.gzip.org/zlib/
--#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
-+zlib zlibmodule.c -lz
-
- # Interface to the Expat XML parser
- #
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
index 8b93c1cf4..c53ec0cfc 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/12-distutils-prefix-is-inside-staging-area.patch
@@ -1,4 +1,4 @@
-From d4dd67daa1555bf13272cc071706338572539bad Mon Sep 17 00:00:00 2001
+From 7630ab22578746d3d790d0598c0d279cf7afed97 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 14 May 2013 15:00:26 -0700
Subject: [PATCH 01/20] python3: Add target and native recipes
@@ -14,27 +14,14 @@ Upstream-Status: Inappropriate [embedded specific]
# Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
---
+ Lib/distutils/sysconfig.py | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
-index 573724d..418b478 100644
+index 573724d..390c485 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
-@@ -17,10 +17,11 @@ import sys
- from .errors import DistutilsPlatformError
-
- # These are needed in a couple of spots, so just compute them once.
--PREFIX = os.path.normpath(sys.prefix)
--EXEC_PREFIX = os.path.normpath(sys.exec_prefix)
--BASE_PREFIX = os.path.normpath(sys.base_prefix)
--BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
-+PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-+EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-+BASE_PREFIX = os.path.normpath(sys.base_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-+BASE_EXEC_PREFIX= os.path.normpath(sys.base_exec_prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-+
-
- # Path to the base directory of the project. On Windows the binary may
- # live in project/PCBuild/win32 or project/PCBuild/amd64.
-@@ -84,7 +85,9 @@ def get_python_inc(plat_specific=0, prefix=None):
+@@ -84,7 +84,9 @@ def get_python_inc(plat_specific=0, prefix=None):
If 'prefix' is supplied, use it instead of sys.base_prefix or
sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
"""
@@ -45,7 +32,7 @@ index 573724d..418b478 100644
prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
if os.name == "posix":
if python_build:
-@@ -125,6 +128,10 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
+@@ -125,6 +127,10 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
If 'prefix' is supplied, use it instead of sys.base_prefix or
sys.base_exec_prefix -- i.e., ignore 'plat_specific'.
"""
@@ -56,7 +43,7 @@ index 573724d..418b478 100644
if prefix is None:
if standard_lib:
prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
-@@ -133,7 +140,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
+@@ -133,7 +139,7 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
if os.name == "posix":
libpython = os.path.join(prefix,
@@ -65,24 +52,6 @@ index 573724d..418b478 100644
if standard_lib:
return libpython
else:
-@@ -233,7 +240,7 @@ def get_config_h_filename():
- else:
- inc_dir = get_python_inc(plat_specific=1)
-
-- return os.path.join(inc_dir, 'pyconfig.h')
-+ return os.path.join(inc_dir, 'pyconfig.h'.replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ))
-
-
- def get_makefile_filename():
-@@ -242,7 +249,7 @@ def get_makefile_filename():
- return os.path.join(_sys_home or project_base, "Makefile")
- lib_dir = get_python_lib(plat_specific=0, standard_lib=1)
- config_file = 'config-{}{}'.format(get_python_version(), build_flags)
-- return os.path.join(lib_dir, config_file, 'Makefile')
-+ return os.path.join(lib_dir, config_file, 'Makefile').replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
-
-
- def parse_config_h(fp, g=None):
--
-2.7.0
+2.8.0.rc3
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/CVE-2016-5636.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/CVE-2016-5636.patch
new file mode 100644
index 000000000..0d494d20f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/CVE-2016-5636.patch
@@ -0,0 +1,44 @@
+
+# HG changeset patch
+# User Benjamin Peterson <benjamin@python.org>
+# Date 1453357506 28800
+# Node ID 10dad6da1b28ea4af78ad9529e469fdbf4ebbc8f
+# Parent a3ac2cd93db9d5336dfd7b5b27efde2c568d8794# Parent 01ddd608b85c85952537d95a43bbabf4fb655057
+merge 3.4 (#26171)
+
+Upstream-Status: Backport
+CVE: CVE-2016-5636
+
+https://hg.python.org/cpython/raw-rev/10dad6da1b28
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: Python-3.5.1/Misc/NEWS
+===================================================================
+--- Python-3.5.1.orig/Misc/NEWS
++++ Python-3.5.1/Misc/NEWS
+@@ -91,6 +91,9 @@ Core and Builtins
+ Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
+ becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
+
++- Issue #26171: Fix possible integer overflow and heap corruption in
++ zipimporter.get_data().
++
+ Library
+ -------
+
+Index: Python-3.5.1/Modules/zipimport.c
+===================================================================
+--- Python-3.5.1.orig/Modules/zipimport.c
++++ Python-3.5.1/Modules/zipimport.c
+@@ -1112,6 +1112,11 @@ get_data(PyObject *archive, PyObject *to
+ }
+ file_offset += l; /* Start of file data */
+
++ if (data_size > LONG_MAX - 1) {
++ fclose(fp);
++ PyErr_NoMemory();
++ return NULL;
++ }
+ bytes_size = compress == 0 ? data_size : data_size + 1;
+ if (bytes_size == 0)
+ bytes_size++;
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch
index cd1a978eb..0610565d3 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/fix_for_using_different_libdir.patch
@@ -4,11 +4,11 @@ This patch fixes issuing with different libdir like lib64.
This patch makes the native python binary modules findable
in the install process of the host python.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2012/03/14
Updated for python 2.7.3
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Date: 2012/05/01
Index: Python-3.3.0rc2/Lib/sysconfig.py
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch
index 44ec424cd..056e8e763 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python-3.3-multilib.patch
@@ -7,10 +7,10 @@ get the sys.lib from python itself and do not use hardcoded value of 'lib'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
-Index: Python-3.5.0/Include/pythonrun.h
+Index: Python-3.5.2/Include/pythonrun.h
===================================================================
---- Python-3.5.0.orig/Include/pythonrun.h
-+++ Python-3.5.0/Include/pythonrun.h
+--- Python-3.5.2.orig/Include/pythonrun.h
++++ Python-3.5.2/Include/pythonrun.h
@@ -23,6 +23,9 @@ typedef struct {
} PyCompilerFlags;
#endif
@@ -21,10 +21,10 @@ Index: Python-3.5.0/Include/pythonrun.h
#ifndef Py_LIMITED_API
PyAPI_FUNC(int) PyRun_SimpleStringFlags(const char *, PyCompilerFlags *);
PyAPI_FUNC(int) PyRun_AnyFileFlags(FILE *, const char *, PyCompilerFlags *);
-Index: Python-3.5.0/Lib/distutils/command/install.py
+Index: Python-3.5.2/Lib/distutils/command/install.py
===================================================================
---- Python-3.5.0.orig/Lib/distutils/command/install.py
-+++ Python-3.5.0/Lib/distutils/command/install.py
+--- Python-3.5.2.orig/Lib/distutils/command/install.py
++++ Python-3.5.2/Lib/distutils/command/install.py
@@ -19,6 +19,8 @@ from site import USER_BASE
from site import USER_SITE
HAS_USER_SITE = True
@@ -43,23 +43,23 @@ Index: Python-3.5.0/Lib/distutils/command/install.py
'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
'scripts': '$base/bin',
'data' : '$base',
-Index: Python-3.5.0/Lib/pydoc.py
+Index: Python-3.5.2/Lib/pydoc.py
===================================================================
---- Python-3.5.0.orig/Lib/pydoc.py
-+++ Python-3.5.0/Lib/pydoc.py
-@@ -393,7 +393,7 @@ class Doc:
+--- Python-3.5.2.orig/Lib/pydoc.py
++++ Python-3.5.2/Lib/pydoc.py
+@@ -384,7 +384,7 @@ class Doc:
+ docmodule = docclass = docroutine = docother = docproperty = docdata = fail
- docloc = os.environ.get("PYTHONDOCS", self.PYTHONDOCS)
+ def getdocloc(self, object,
+- basedir=os.path.join(sys.base_exec_prefix, "lib",
++ basedir=os.path.join(sys.base_exec_prefix, sys.lib,
+ "python%d.%d" % sys.version_info[:2])):
+ """Return the location of module docs or None"""
-- basedir = os.path.join(sys.base_exec_prefix, "lib",
-+ basedir = os.path.join(sys.base_exec_prefix, sys.lib,
- "python%d.%d" % sys.version_info[:2])
- if (isinstance(object, type(os)) and
- (object.__name__ in ('errno', 'exceptions', 'gc', 'imp',
-Index: Python-3.5.0/Lib/trace.py
+Index: Python-3.5.2/Lib/trace.py
===================================================================
---- Python-3.5.0.orig/Lib/trace.py
-+++ Python-3.5.0/Lib/trace.py
+--- Python-3.5.2.orig/Lib/trace.py
++++ Python-3.5.2/Lib/trace.py
@@ -749,10 +749,10 @@ def main(argv=None):
# should I also call expanduser? (after all, could use $HOME)
@@ -73,11 +73,11 @@ Index: Python-3.5.0/Lib/trace.py
"python" + sys.version[:3]))
s = os.path.normpath(s)
ignore_dirs.append(s)
-Index: Python-3.5.0/Makefile.pre.in
+Index: Python-3.5.2/Makefile.pre.in
===================================================================
---- Python-3.5.0.orig/Makefile.pre.in
-+++ Python-3.5.0/Makefile.pre.in
-@@ -101,6 +101,8 @@ PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS
+--- Python-3.5.2.orig/Makefile.pre.in
++++ Python-3.5.2/Makefile.pre.in
+@@ -106,6 +106,8 @@ PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS
# Machine-dependent subdirectories
MACHDEP= @MACHDEP@
@@ -86,7 +86,7 @@ Index: Python-3.5.0/Makefile.pre.in
# Multiarch directory (may be empty)
MULTIARCH= @MULTIARCH@
-@@ -120,7 +122,7 @@ LIBDIR= @libdir@
+@@ -125,7 +127,7 @@ LIBDIR= @libdir@
MANDIR= @mandir@
INCLUDEDIR= @includedir@
CONFINCLUDEDIR= $(exec_prefix)/include
@@ -95,7 +95,7 @@ Index: Python-3.5.0/Makefile.pre.in
ABIFLAGS= @ABIFLAGS@
# Detailed destination directories
-@@ -729,6 +731,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
+@@ -755,6 +757,7 @@ Modules/getpath.o: $(srcdir)/Modules/get
-DEXEC_PREFIX='"$(exec_prefix)"' \
-DVERSION='"$(VERSION)"' \
-DVPATH='"$(VPATH)"' \
@@ -103,7 +103,7 @@ Index: Python-3.5.0/Makefile.pre.in
-o $@ $(srcdir)/Modules/getpath.c
Programs/python.o: $(srcdir)/Programs/python.c
-@@ -798,7 +801,7 @@ $(OPCODE_H): $(srcdir)/Lib/opcode.py $(O
+@@ -835,7 +838,7 @@ $(OPCODE_H): $(srcdir)/Lib/opcode.py $(O
Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
Python/getplatform.o: $(srcdir)/Python/getplatform.c
@@ -112,25 +112,25 @@ Index: Python-3.5.0/Makefile.pre.in
Python/importdl.o: $(srcdir)/Python/importdl.c
$(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
-Index: Python-3.5.0/Modules/getpath.c
+Index: Python-3.5.2/Modules/getpath.c
===================================================================
---- Python-3.5.0.orig/Modules/getpath.c
-+++ Python-3.5.0/Modules/getpath.c
-@@ -117,9 +117,11 @@
- #define EXEC_PREFIX PREFIX
+--- Python-3.5.2.orig/Modules/getpath.c
++++ Python-3.5.2/Modules/getpath.c
+@@ -105,6 +105,13 @@
+ #error "PREFIX, EXEC_PREFIX, VERSION, and VPATH must be constant defined"
#endif
+#define LIB_PYTHON LIB "/python" VERSION
+
- #ifndef PYTHONPATH
--#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
-- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
++#ifndef PYTHONPATH
+#define PYTHONPATH PREFIX "/" LIB_PYTHON ":" \
-+ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
- #endif
-
++ EXEC_PREFIX "/" LIB_PYTHON "/lib-dynload"
++#endif
++
#ifndef LANDMARK
-@@ -130,6 +132,7 @@ static wchar_t prefix[MAXPATHLEN+1];
+ #define LANDMARK L"os.py"
+ #endif
+@@ -113,6 +120,7 @@ static wchar_t prefix[MAXPATHLEN+1];
static wchar_t exec_prefix[MAXPATHLEN+1];
static wchar_t progpath[MAXPATHLEN+1];
static wchar_t *module_search_path = NULL;
@@ -138,10 +138,10 @@ Index: Python-3.5.0/Modules/getpath.c
/* Get file status. Encode the path to the locale encoding. */
-Index: Python-3.5.0/Python/getplatform.c
+Index: Python-3.5.2/Python/getplatform.c
===================================================================
---- Python-3.5.0.orig/Python/getplatform.c
-+++ Python-3.5.0/Python/getplatform.c
+--- Python-3.5.2.orig/Python/getplatform.c
++++ Python-3.5.2/Python/getplatform.c
@@ -10,3 +10,23 @@ Py_GetPlatform(void)
{
return PLATFORM;
@@ -166,11 +166,11 @@ Index: Python-3.5.0/Python/getplatform.c
+{
+ return LIB;
+}
-Index: Python-3.5.0/Python/sysmodule.c
+Index: Python-3.5.2/Python/sysmodule.c
===================================================================
---- Python-3.5.0.orig/Python/sysmodule.c
-+++ Python-3.5.0/Python/sysmodule.c
-@@ -1767,6 +1767,10 @@ _PySys_Init(void)
+--- Python-3.5.2.orig/Python/sysmodule.c
++++ Python-3.5.2/Python/sysmodule.c
+@@ -1790,6 +1790,10 @@ _PySys_Init(void)
PyUnicode_FromString(Py_GetCopyright()));
SET_SYS_FROM_STRING("platform",
PyUnicode_FromString(Py_GetPlatform()));
@@ -181,11 +181,11 @@ Index: Python-3.5.0/Python/sysmodule.c
SET_SYS_FROM_STRING("executable",
PyUnicode_FromWideChar(
Py_GetProgramFullPath(), -1));
-Index: Python-3.5.0/setup.py
+Index: Python-3.5.2/setup.py
===================================================================
---- Python-3.5.0.orig/setup.py
-+++ Python-3.5.0/setup.py
-@@ -472,7 +472,7 @@ class PyBuildExt(build_ext):
+--- Python-3.5.2.orig/setup.py
++++ Python-3.5.2/setup.py
+@@ -492,7 +492,7 @@ class PyBuildExt(build_ext):
# directories (i.e. '.' and 'Include') must be first. See issue
# 10520.
if not cross_compiling:
@@ -194,7 +194,7 @@ Index: Python-3.5.0/setup.py
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
# only change this for cross builds for 3.3, issues on Mageia
if cross_compiling:
-@@ -530,8 +530,7 @@ class PyBuildExt(build_ext):
+@@ -550,8 +550,7 @@ class PyBuildExt(build_ext):
# be assumed that no additional -I,-L directives are needed.
if not cross_compiling:
lib_dirs = self.compiler.library_dirs + [
@@ -204,7 +204,7 @@ Index: Python-3.5.0/setup.py
]
inc_dirs = self.compiler.include_dirs + ['/usr/include']
else:
-@@ -716,11 +715,11 @@ class PyBuildExt(build_ext):
+@@ -743,11 +742,11 @@ class PyBuildExt(build_ext):
elif curses_library:
readline_libs.append(curses_library)
elif self.compiler.find_library_file(lib_dirs +
@@ -218,10 +218,10 @@ Index: Python-3.5.0/setup.py
extra_link_args=readline_extra_link_args,
libraries=readline_libs) )
else:
-Index: Python-3.5.0/Lib/sysconfig.py
+Index: Python-3.5.2/Lib/sysconfig.py
===================================================================
---- Python-3.5.0.orig/Lib/sysconfig.py
-+++ Python-3.5.0/Lib/sysconfig.py
+--- Python-3.5.2.orig/Lib/sysconfig.py
++++ Python-3.5.2/Lib/sysconfig.py
@@ -20,10 +20,10 @@ __all__ = [
_INSTALL_SCHEMES = {
@@ -264,11 +264,11 @@ Index: Python-3.5.0/Lib/sysconfig.py
'include': '{userbase}/include/python{py_version_short}',
'scripts': '{userbase}/bin',
'data': '{userbase}',
-Index: Python-3.5.0/configure.ac
+Index: Python-3.5.2/configure.ac
===================================================================
---- Python-3.5.0.orig/configure.ac
-+++ Python-3.5.0/configure.ac
-@@ -858,6 +858,41 @@ PLATDIR=plat-$MACHDEP
+--- Python-3.5.2.orig/configure.ac
++++ Python-3.5.2/configure.ac
+@@ -876,6 +876,41 @@ PLATDIR=plat-$MACHDEP
AC_SUBST(PLATDIR)
AC_SUBST(PLATFORM_TRIPLET)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python3-fix-CVE-2016-1000110.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python3-fix-CVE-2016-1000110.patch
new file mode 100644
index 000000000..ab1b7230e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/python3-fix-CVE-2016-1000110.patch
@@ -0,0 +1,148 @@
+From aab3e8c432b90508ac14755128f5a687be2fdf43 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Thu, 22 Sep 2016 16:39:49 +0800
+Subject: [PATCH] python3: fix CVE-2016-1000110
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ignore the HTTP_PROXY variable when REQUEST_METHOD environment is set, which
+indicates that the script is in CGI mode.
+
+Issue #27568 Reported and patch contributed by RĂ©mi Rampin. [#27568]
+
+Backport patch from https://hg.python.org/cpython/rev/a0ac52ed8f79
+
+Upstream-Status: Backport
+CVE: CVE-2016-1000110
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ Doc/howto/urllib2.rst | 5 +++++
+ Doc/library/urllib.request.rst | 17 ++++++++++++++++-
+ Lib/test/test_urllib.py | 14 +++++++++++++-
+ Lib/urllib/request.py | 6 ++++++
+ Misc/NEWS | 4 ++++
+ 5 files changed, 44 insertions(+), 2 deletions(-)
+
+diff --git a/Doc/howto/urllib2.rst b/Doc/howto/urllib2.rst
+index 24a4156..d2c7991 100644
+--- a/Doc/howto/urllib2.rst
++++ b/Doc/howto/urllib2.rst
+@@ -538,6 +538,11 @@ setting up a `Basic Authentication`_ handler: ::
+ through a proxy. However, this can be enabled by extending urllib.request as
+ shown in the recipe [#]_.
+
++.. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see
++ the documentation on :func:`~urllib.request.getproxies`.
++
+
+ Sockets and Layers
+ ==================
+diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
+index 1338906..1291aeb 100644
+--- a/Doc/library/urllib.request.rst
++++ b/Doc/library/urllib.request.rst
+@@ -173,6 +173,16 @@ The :mod:`urllib.request` module defines the following functions:
+ If both lowercase and uppercase environment variables exist (and disagree),
+ lowercase is preferred.
+
++ .. note::
++
++ If the environment variable ``REQUEST_METHOD`` is set, which usually
++ indicates your script is running in a CGI environment, the environment
++ variable ``HTTP_PROXY`` (uppercase ``_PROXY``) will be ignored. This is
++ because that variable can be injected by a client using the "Proxy:" HTTP
++ header. If you need to use an HTTP proxy in a CGI environment, either use
++ ``ProxyHandler`` explicitly, or make sure the variable name is in
++ lowercase (or at least the ``_proxy`` suffix).
++
+
+ The following classes are provided:
+
+@@ -280,6 +290,11 @@ The following classes are provided:
+ list of hostname suffixes, optionally with ``:port`` appended, for example
+ ``cern.ch,ncsa.uiuc.edu,some.host:8080``.
+
++ .. note::
++
++ ``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set;
++ see the documentation on :func:`~urllib.request.getproxies`.
++
+
+ .. class:: HTTPPasswordMgr()
+
+@@ -1138,7 +1153,7 @@ the returned bytes object to string once it determines or guesses
+ the appropriate encoding.
+
+ The following W3C document, https://www.w3.org/International/O-charset\ , lists
+-the various ways in which a (X)HTML or a XML document could have specified its
++the various ways in which an (X)HTML or an XML document could have specified its
+ encoding information.
+
+ As the python.org website uses *utf-8* encoding as specified in its meta tag, we
+diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
+index 5d05f8d..247598a 100644
+--- a/Lib/test/test_urllib.py
++++ b/Lib/test/test_urllib.py
+@@ -1,4 +1,4 @@
+-"""Regresssion tests for what was in Python 2's "urllib" module"""
++"""Regression tests for what was in Python 2's "urllib" module"""
+
+ import urllib.parse
+ import urllib.request
+@@ -232,6 +232,18 @@ class ProxyTests(unittest.TestCase):
+ self.assertTrue(urllib.request.proxy_bypass_environment('anotherdomain.com:8888'))
+ self.assertTrue(urllib.request.proxy_bypass_environment('newdomain.com:1234'))
+
++ def test_proxy_cgi_ignore(self):
++ try:
++ self.env.set('HTTP_PROXY', 'http://somewhere:3128')
++ proxies = urllib.request.getproxies_environment()
++ self.assertEqual('http://somewhere:3128', proxies['http'])
++ self.env.set('REQUEST_METHOD', 'GET')
++ proxies = urllib.request.getproxies_environment()
++ self.assertNotIn('http', proxies)
++ finally:
++ self.env.unset('REQUEST_METHOD')
++ self.env.unset('HTTP_PROXY')
++
+ def test_proxy_bypass_environment_host_match(self):
+ bypass = urllib.request.proxy_bypass_environment
+ self.env.set('NO_PROXY',
+diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
+index 1731fe3..3be327d 100644
+--- a/Lib/urllib/request.py
++++ b/Lib/urllib/request.py
+@@ -2412,6 +2412,12 @@ def getproxies_environment():
+ name = name.lower()
+ if value and name[-6:] == '_proxy':
+ proxies[name[:-6]] = value
++ # CVE-2016-1000110 - If we are running as CGI script, forget HTTP_PROXY
++ # (non-all-lowercase) as it may be set from the web server by a "Proxy:"
++ # header from the client
++ # If "proxy" is lowercase, it will still be used thanks to the next block
++ if 'REQUEST_METHOD' in os.environ:
++ proxies.pop('http', None)
+ for name, value in os.environ.items():
+ if name[-6:] == '_proxy':
+ name = name.lower()
+diff --git a/Misc/NEWS b/Misc/NEWS
+index 4ad2551..2fcc95b 100644
+--- a/Misc/NEWS
++++ b/Misc/NEWS
+@@ -329,6 +329,10 @@ Library
+ - Issue #26644: Raise ValueError rather than SystemError when a negative
+ length is passed to SSLSocket.recv() or read().
+
++- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
++ HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
++ that the script is in CGI mode.
++
+ - Issue #23804: Fix SSL recv(0) and read(0) methods to return zero bytes
+ instead of up to 1024.
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/unixccompiler.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/unixccompiler.patch
index 7b90f1388..3e2b1d1c2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/unixccompiler.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/unixccompiler.patch
@@ -18,9 +18,9 @@ Index: Python-3.3.2/Lib/distutils/unixccompiler.py
def library_dir_option(self, dir):
- return "-L" + dir
-+ if dir.startswith("."):
-+ return "-L" + dir
-+ return "-L=" + dir
++ if dir.startswith("/"):
++ return "-L=" + dir
++ return "-L" + dir
def _is_gcc(self, compiler_name):
return "gcc" in compiler_name or "g++" in compiler_name
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/use_packed_importlib.patch b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/use_packed_importlib.patch
index 6c4b0cda9..70708a0ad 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3/use_packed_importlib.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3/use_packed_importlib.patch
@@ -6,7 +6,7 @@ importlib*.h files, this is impossible to do on a cross-compile environment,
this avoids executing the binary and forces it to use the packed importlib*.h files.
-Signed-Off-By: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
+Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com>
Index: Python-3.5.0/Makefile.pre.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.1.bb
deleted file mode 100644
index 2fbb3cbc3..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.1.bb
+++ /dev/null
@@ -1,226 +0,0 @@
-require recipes-devtools/python/python.inc
-
-DEPENDS = "python3-native libffi bzip2 db gdbm openssl readline sqlite3 zlib virtual/libintl xz"
-PR = "${INC_PR}.0"
-PYTHON_MAJMIN = "3.5"
-PYTHON_BINABI= "${PYTHON_MAJMIN}m"
-DISTRO_SRC_URI ?= "file://sitecustomize.py"
-DISTRO_SRC_URI_linuxstdbase = ""
-SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
-file://python-config.patch \
-file://000-cross-compile.patch \
-file://020-dont-compile-python-files.patch \
-file://030-fixup-include-dirs.patch \
-file://070-dont-clean-ipkg-install.patch \
-file://080-distutils-dont_adjust_files.patch \
-file://110-enable-zlib.patch \
-file://130-readline-setup.patch \
-file://150-fix-setupterm.patch \
-file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
-file://tweak-MULTIARCH-for-powerpc-linux-gnuspe.patch \
-${DISTRO_SRC_URI} \
-"
-
-SRC_URI += "\
- file://03-fix-tkinter-detection.patch \
- file://avoid_warning_about_tkinter.patch \
- file://cgi_py.patch \
- file://host_include_contamination.patch \
- file://python-3.3-multilib.patch \
- file://shutil-follow-symlink-fix.patch \
- file://sysroot-include-headers.patch \
- file://unixccompiler.patch \
- file://avoid-ncursesw-include-path.patch \
- file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
- file://python3-setup.py-no-host-headers-libs.patch \
- file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
- file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
- file://setup.py-find-libraries-in-staging-dirs.patch \
- file://use_packed_importlib.patch \
- file://configure.ac-fix-LIBPL.patch \
- "
-SRC_URI[md5sum] = "e9ea6f2623fffcdd871b7b19113fde80"
-SRC_URI[sha256sum] = "c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9"
-
-# exclude pre-releases for both python 2.x and 3.x
-UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
-
-S = "${WORKDIR}/Python-${PV}"
-
-inherit autotools multilib_header python3native pkgconfig
-
-CONFIGUREOPTS += " --with-system-ffi "
-
-CACHED_CONFIGUREVARS = "ac_cv_have_chflags=no \
- ac_cv_have_lchflags=no \
- ac_cv_have_long_long_format=yes \
- ac_cv_buggy_getaddrinfo=no \
- ac_cv_file__dev_ptmx=yes \
- ac_cv_file__dev_ptc=no \
-"
-
-TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
-SDK_CC_ARCH += "-DNDEBUG -fno-inline"
-EXTRA_OEMAKE += "CROSS_COMPILE=yes"
-EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip"
-
-export CROSS_COMPILE = "${TARGET_PREFIX}"
-export _PYTHON_PROJECT_BASE = "${B}"
-export _PYTHON_PROJECT_SRC = "${S}"
-export CCSHARED = "-fPIC"
-
-# Fix ctypes cross compilation
-export CROSSPYTHONPATH = "${B}/build/lib.linux-${TARGET_ARCH}-${PYTHON_MAJMIN}:${S}/Lib:${S}/Lib/plat-linux"
-
-# No ctypes option for python 3
-PYTHONLSBOPTS = ""
-
-do_configure_append() {
- rm -f ${S}/Makefile.orig
- autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-do_compile() {
- # regenerate platform specific files, because they depend on system headers
- cd ${S}/Lib/plat-linux*
- include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
- ${S}/Tools/scripts/h2py.py -i '(u_long)' \
- ${STAGING_INCDIR}/dlfcn.h \
- ${STAGING_INCDIR}/linux/cdrom.h \
- ${STAGING_INCDIR}/netinet/in.h \
- ${STAGING_INCDIR}/sys/types.h
- sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
- cd -
-
-
- # remove any bogus LD_LIBRARY_PATH
- sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
-
- if [ ! -f Makefile.orig ]; then
- install -m 0644 Makefile Makefile.orig
- fi
- sed -i -e 's,^CONFIGURE_LDFLAGS=.*,CONFIGURE_LDFLAGS=-L. -L${STAGING_LIBDIR},g' \
- -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
- -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
- -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
- -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
- -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
- -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
- Makefile
- # save copy of it now, because if we do it in do_install and
- # then call do_install twice we get Makefile.orig == Makefile.sysroot
- install -m 0644 Makefile Makefile.sysroot
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- LIB=${baselib} \
- ARCH=${TARGET_ARCH} \
- OPT="${CFLAGS}" libpython3.so
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- LIB=${baselib} \
- ARCH=${TARGET_ARCH} \
- OPT="${CFLAGS}"
-}
-
-do_install() {
- # make install needs the original Makefile, or otherwise the inclues would
- # go to ${D}${STAGING...}/...
- install -m 0644 Makefile.orig Makefile
-
- install -d ${D}${libdir}/pkgconfig
- install -d ${D}${libdir}/python${PYTHON_MAJMIN}/config
-
- # rerun the build once again with original makefile this time
- # run install in a separate step to avoid compile/install race
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- LIB=${baselib} \
- ARCH=${TARGET_ARCH} \
- DESTDIR=${D} LIBDIR=${libdir}
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- LIB=${baselib} \
- ARCH=${TARGET_ARCH} \
- DESTDIR=${D} LIBDIR=${libdir} install
-
- # avoid conflict with 2to3 from Python 2
- rm -f ${D}/${bindir}/2to3
-
- install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
-
- if [ -e ${WORKDIR}/sitecustomize.py ]; then
- install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
- fi
-
- oe_multilib_header python${PYTHON_BINABI}/pyconfig.h
-}
-
-do_install_append_class-nativesdk () {
- create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
-}
-
-SSTATE_SCAN_FILES += "Makefile"
-PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
-
-py_package_preprocess () {
- # copy back the old Makefile to fix target package
- install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
- # Remove references to buildmachine paths in target Makefile and _sysconfigdata
- sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
-}
-
-require python-${PYTHON_MAJMIN}-manifest.inc
-
-# manual dependency additions
-RPROVIDES_${PN}-core = "${PN}"
-RRECOMMENDS_${PN}-core = "${PN}-readline"
-RRECOMMENDS_${PN}-crypt = "openssl"
-RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl"
-
-FILES_${PN}-2to3 += "${bindir}/2to3-${PYTHON_MAJMIN}"
-FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
-FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
-
-PACKAGES =+ "${PN}-pyvenv"
-FILES_${PN}-pyvenv += "${bindir}/pyvenv-${PYTHON_MAJMIN} ${bindir}/pyvenv"
-
-# package libpython3
-PACKAGES =+ "libpython3 libpython3-staticdev"
-FILES_libpython3 = "${libdir}/libpython*.so.*"
-FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}/libpython${PYTHON_BINABI}.a"
-INSANE_SKIP_${PN}-dev += "dev-elf"
-
-# catch all the rest (unsorted)
-PACKAGES += "${PN}-misc"
-RDEPENDS_${PN}-misc += "${PN}-core"
-RDEPENDS_${PN}-modules += "${PN}-misc"
-FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
-
-# catch manpage
-PACKAGES += "${PN}-man"
-FILES_${PN}-man = "${datadir}/man"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.2.bb
new file mode 100644
index 000000000..e6cbb9c56
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python3_3.5.2.bb
@@ -0,0 +1,224 @@
+require recipes-devtools/python/python.inc
+
+DEPENDS = "python3-native libffi bzip2 db gdbm openssl readline sqlite3 zlib virtual/libintl xz"
+PR = "${INC_PR}.0"
+PYTHON_MAJMIN = "3.5"
+PYTHON_BINABI= "${PYTHON_MAJMIN}m"
+DISTRO_SRC_URI ?= "file://sitecustomize.py"
+DISTRO_SRC_URI_linuxstdbase = ""
+SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
+file://python-config.patch \
+file://000-cross-compile.patch \
+file://020-dont-compile-python-files.patch \
+file://030-fixup-include-dirs.patch \
+file://070-dont-clean-ipkg-install.patch \
+file://080-distutils-dont_adjust_files.patch \
+file://130-readline-setup.patch \
+file://150-fix-setupterm.patch \
+file://0001-h2py-Fix-issue-13032-where-it-fails-with-UnicodeDeco.patch \
+file://tweak-MULTIARCH-for-powerpc-linux-gnuspe.patch \
+${DISTRO_SRC_URI} \
+"
+
+SRC_URI += "\
+ file://03-fix-tkinter-detection.patch \
+ file://avoid_warning_about_tkinter.patch \
+ file://cgi_py.patch \
+ file://host_include_contamination.patch \
+ file://python-3.3-multilib.patch \
+ file://shutil-follow-symlink-fix.patch \
+ file://sysroot-include-headers.patch \
+ file://unixccompiler.patch \
+ file://avoid-ncursesw-include-path.patch \
+ file://python3-use-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
+ file://python3-setup.py-no-host-headers-libs.patch \
+ file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
+ file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
+ file://setup.py-find-libraries-in-staging-dirs.patch \
+ file://configure.ac-fix-LIBPL.patch \
+ file://python3-fix-CVE-2016-1000110.patch \
+ "
+SRC_URI[md5sum] = "8906efbacfcdc7c3c9198aeefafd159e"
+SRC_URI[sha256sum] = "0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6b60258130e4ed10d3101517eb5b9385"
+
+# exclude pre-releases for both python 2.x and 3.x
+UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
+
+S = "${WORKDIR}/Python-${PV}"
+
+inherit autotools multilib_header python3native pkgconfig
+
+CONFIGUREOPTS += " --with-system-ffi "
+
+CACHED_CONFIGUREVARS = "ac_cv_have_chflags=no \
+ ac_cv_have_lchflags=no \
+ ac_cv_have_long_long_format=yes \
+ ac_cv_buggy_getaddrinfo=no \
+ ac_cv_file__dev_ptmx=yes \
+ ac_cv_file__dev_ptc=no \
+"
+
+TARGET_CC_ARCH += "-DNDEBUG -fno-inline"
+SDK_CC_ARCH += "-DNDEBUG -fno-inline"
+EXTRA_OEMAKE += "CROSS_COMPILE=yes"
+EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip"
+
+export CROSS_COMPILE = "${TARGET_PREFIX}"
+export _PYTHON_PROJECT_BASE = "${B}"
+export _PYTHON_PROJECT_SRC = "${S}"
+export CCSHARED = "-fPIC"
+
+# Fix cross compilation of different modules
+export CROSSPYTHONPATH = "${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/:${B}/build/lib.linux-${TARGET_ARCH}-${PYTHON_MAJMIN}:${S}/Lib:${S}/Lib/plat-linux"
+
+# No ctypes option for python 3
+PYTHONLSBOPTS = ""
+
+do_configure_append() {
+ rm -f ${S}/Makefile.orig
+ autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
+}
+
+do_compile() {
+ # regenerate platform specific files, because they depend on system headers
+ cd ${S}/Lib/plat-linux*
+ include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ ${S}/Tools/scripts/h2py.py -i '(u_long)' \
+ ${STAGING_INCDIR}/dlfcn.h \
+ ${STAGING_INCDIR}/linux/cdrom.h \
+ ${STAGING_INCDIR}/netinet/in.h \
+ ${STAGING_INCDIR}/sys/types.h
+ sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
+ cd -
+
+
+ # remove any bogus LD_LIBRARY_PATH
+ sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
+
+ if [ ! -f Makefile.orig ]; then
+ install -m 0644 Makefile Makefile.orig
+ fi
+ sed -i -e 's,^CONFIGURE_LDFLAGS=.*,CONFIGURE_LDFLAGS=-L. -L${STAGING_LIBDIR},g' \
+ -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
+ -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
+ -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
+ -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
+ -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
+ -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
+ Makefile
+ # save copy of it now, because if we do it in do_install and
+ # then call do_install twice we get Makefile.orig == Makefile.sysroot
+ install -m 0644 Makefile Makefile.sysroot
+
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ LIB=${baselib} \
+ ARCH=${TARGET_ARCH} \
+ OPT="${CFLAGS}" libpython3.so
+
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ LIB=${baselib} \
+ ARCH=${TARGET_ARCH} \
+ OPT="${CFLAGS}"
+}
+
+do_install() {
+ # make install needs the original Makefile, or otherwise the inclues would
+ # go to ${D}${STAGING...}/...
+ install -m 0644 Makefile.orig Makefile
+
+ install -d ${D}${libdir}/pkgconfig
+ install -d ${D}${libdir}/python${PYTHON_MAJMIN}/config
+
+ # rerun the build once again with original makefile this time
+ # run install in a separate step to avoid compile/install race
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ LIB=${baselib} \
+ ARCH=${TARGET_ARCH} \
+ DESTDIR=${D} LIBDIR=${libdir}
+
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python3-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python3-native/python3 \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ LIB=${baselib} \
+ ARCH=${TARGET_ARCH} \
+ DESTDIR=${D} LIBDIR=${libdir} install
+
+ # avoid conflict with 2to3 from Python 2
+ rm -f ${D}/${bindir}/2to3
+
+ install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
+ install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}/Makefile
+
+ if [ -e ${WORKDIR}/sitecustomize.py ]; then
+ install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
+ fi
+
+ oe_multilib_header python${PYTHON_BINABI}/pyconfig.h
+}
+
+do_install_append_class-nativesdk () {
+ create_wrapper ${D}${bindir}/python${PYTHON_MAJMIN} TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
+}
+
+SSTATE_SCAN_FILES += "Makefile"
+PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
+
+py_package_preprocess () {
+ # copy back the old Makefile to fix target package
+ install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
+ install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}/Makefile
+ # Remove references to buildmachine paths in target Makefile and _sysconfigdata
+ sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}${PYTHON_ABI}/Makefile \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
+}
+
+require python-${PYTHON_MAJMIN}-manifest.inc
+
+# manual dependency additions
+RPROVIDES_${PN}-core = "${PN}"
+RRECOMMENDS_${PN}-core = "${PN}-readline"
+RRECOMMENDS_${PN}-crypt = "openssl"
+RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl"
+
+FILES_${PN}-2to3 += "${bindir}/2to3-${PYTHON_MAJMIN}"
+FILES_${PN}-pydoc += "${bindir}/pydoc${PYTHON_MAJMIN} ${bindir}/pydoc3"
+FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
+
+PACKAGES =+ "${PN}-pyvenv"
+FILES_${PN}-pyvenv += "${bindir}/pyvenv-${PYTHON_MAJMIN} ${bindir}/pyvenv"
+
+# package libpython3
+PACKAGES =+ "libpython3 libpython3-staticdev"
+FILES_libpython3 = "${libdir}/libpython*.so.*"
+FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_BINABI}/libpython${PYTHON_BINABI}.a"
+INSANE_SKIP_${PN}-dev += "dev-elf"
+
+# catch all the rest (unsorted)
+PACKAGES += "${PN}-misc"
+RDEPENDS_${PN}-misc += "${PN}-core ${PN}-email ${PN}-codecs ${PN}-textutils ${PN}-argparse"
+RDEPENDS_${PN}-modules += "${PN}-misc"
+FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
+
+# catch manpage
+PACKAGES += "${PN}-man"
+FILES_${PN}-man = "${datadir}/man"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.11.bb
deleted file mode 100644
index 606f15362..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.11.bb
+++ /dev/null
@@ -1,173 +0,0 @@
-require python.inc
-DEPENDS = "python-native libffi bzip2 db gdbm openssl readline sqlite3 zlib"
-PR = "${INC_PR}"
-
-DISTRO_SRC_URI ?= "file://sitecustomize.py"
-DISTRO_SRC_URI_linuxstdbase = ""
-SRC_URI += "\
- file://01-use-proper-tools-for-cross-build.patch \
- file://03-fix-tkinter-detection.patch \
- file://06-avoid_usr_lib_termcap_path_in_linking.patch \
- ${DISTRO_SRC_URI} \
- file://multilib.patch \
- file://cgi_py.patch \
- file://setup_py_skip_cross_import_check.patch \
- file://add-md5module-support.patch \
- file://host_include_contamination.patch \
- file://fix_for_using_different_libdir.patch \
- file://setuptweaks.patch \
- file://check-if-target-is-64b-not-host.patch \
- file://search_db_h_in_inc_dirs_and_avoid_warning.patch \
- file://avoid_warning_about_tkinter.patch \
- file://avoid_warning_for_sunos_specific_module.patch \
- file://python-2.7.3-remove-bsdb-rpath.patch \
- file://fix-makefile-for-ptest.patch \
- file://run-ptest \
- file://parallel-makeinst-create-bindir.patch \
- file://use_sysroot_ncurses_instead_of_host.patch \
- file://avoid_parallel_make_races_on_pgen.patch \
- file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
-"
-
-S = "${WORKDIR}/Python-${PV}"
-
-inherit autotools multilib_header python-dir pythonnative
-
-CONFIGUREOPTS += " --with-system-ffi "
-
-EXTRA_OECONF += "ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no"
-
-do_configure_append() {
- rm -f ${S}/Makefile.orig
- autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
-}
-
-do_compile() {
- # regenerate platform specific files, because they depend on system headers
- cd ${S}/Lib/plat-linux2
- include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python-native/python \
- ${S}/Tools/scripts/h2py.py -i '(u_long)' \
- ${STAGING_INCDIR}/dlfcn.h \
- ${STAGING_INCDIR}/linux/cdrom.h \
- ${STAGING_INCDIR}/netinet/in.h \
- ${STAGING_INCDIR}/sys/types.h
- sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
- cd -
-
- # remove any bogus LD_LIBRARY_PATH
- sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
-
- if [ ! -f Makefile.orig ]; then
- install -m 0644 Makefile Makefile.orig
- fi
- sed -i -e 's#^LDFLAGS=.*#LDFLAGS=${LDFLAGS} -L. -L${STAGING_LIBDIR}#g' \
- -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
- -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
- -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
- -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
- -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
- -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
- Makefile
- # save copy of it now, because if we do it in do_install and
- # then call do_install twice we get Makefile.orig == Makefile.sysroot
- install -m 0644 Makefile Makefile.sysroot
-
- export CROSS_COMPILE="${TARGET_PREFIX}"
- export PYTHONBUILDDIR="${B}"
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- OPT="${CFLAGS}"
-}
-
-do_install() {
- # make install needs the original Makefile, or otherwise the inclues would
- # go to ${D}${STAGING...}/...
- install -m 0644 Makefile.orig Makefile
-
- export CROSS_COMPILE="${TARGET_PREFIX}"
- export PYTHONBUILDDIR="${B}"
-
- # After swizzling the makefile, we need to run the build again.
- # install can race with the build so we have to run this first, then install
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- DESTDIR=${D} LIBDIR=${libdir}
-
- oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
- HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
- CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
- STAGING_LIBDIR=${STAGING_LIBDIR} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
- BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- DESTDIR=${D} LIBDIR=${libdir} install
-
- install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
-
- if [ -e ${WORKDIR}/sitecustomize.py ]; then
- install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
- fi
-
- oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
-}
-
-do_install_append_class-nativesdk () {
- create_wrapper ${D}${bindir}/python2.7 PYTHONHOME='${prefix}' TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
-}
-
-SSTATE_SCAN_FILES += "Makefile"
-PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
-
-py_package_preprocess () {
- # copy back the old Makefile to fix target package
- install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
-
- # Remove references to buildmachine paths in target Makefile and _sysconfigdata
- sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
- ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
-}
-
-require python-${PYTHON_MAJMIN}-manifest.inc
-
-# manual dependency additions
-RPROVIDES_${PN}-core = "${PN}"
-RRECOMMENDS_${PN}-core = "${PN}-readline"
-RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python-modules"
-RRECOMMENDS_${PN}-crypt = "openssl"
-
-# package libpython2
-PACKAGES =+ "lib${BPN}2"
-FILES_lib${BPN}2 = "${libdir}/libpython*.so.*"
-
-# catch all the rest (unsorted)
-PACKAGES += "${PN}-misc"
-FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
-RDEPENDS_${PN}-modules += "${PN}-misc"
-RDEPENDS_${PN}-ptest = "${PN}-modules"
-#inherit ptest after "require python-${PYTHON_MAJMIN}-manifest.inc" so PACKAGES doesn't get overwritten
-inherit ptest
-
-# This must come after inherit ptest for the override to take effect
-do_install_ptest() {
- cp ${B}/Makefile ${D}${PTEST_PATH}
- sed -e s:LIBDIR/python/ptest:${PTEST_PATH}:g \
- -e s:LIBDIR:${libdir}:g \
- -i ${D}${PTEST_PATH}/run-ptest
-}
-
-# catch manpage
-PACKAGES += "${PN}-man"
-FILES_${PN}-man = "${datadir}/man"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.12.bb b/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.12.bb
new file mode 100644
index 000000000..9fe35db2d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/python/python_2.7.12.bb
@@ -0,0 +1,171 @@
+require python.inc
+DEPENDS = "python-native libffi bzip2 db gdbm openssl readline sqlite3 zlib"
+PR = "${INC_PR}"
+
+DISTRO_SRC_URI ?= "file://sitecustomize.py"
+DISTRO_SRC_URI_linuxstdbase = ""
+SRC_URI += "\
+ file://01-use-proper-tools-for-cross-build.patch \
+ file://03-fix-tkinter-detection.patch \
+ file://06-avoid_usr_lib_termcap_path_in_linking.patch \
+ ${DISTRO_SRC_URI} \
+ file://multilib.patch \
+ file://cgi_py.patch \
+ file://setup_py_skip_cross_import_check.patch \
+ file://add-md5module-support.patch \
+ file://host_include_contamination.patch \
+ file://fix_for_using_different_libdir.patch \
+ file://setuptweaks.patch \
+ file://check-if-target-is-64b-not-host.patch \
+ file://search_db_h_in_inc_dirs_and_avoid_warning.patch \
+ file://avoid_warning_about_tkinter.patch \
+ file://avoid_warning_for_sunos_specific_module.patch \
+ file://python-2.7.3-remove-bsdb-rpath.patch \
+ file://fix-makefile-for-ptest.patch \
+ file://run-ptest \
+ file://parallel-makeinst-create-bindir.patch \
+ file://use_sysroot_ncurses_instead_of_host.patch \
+ file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
+ file://python-fix-CVE-2016-1000110.patch \
+"
+
+S = "${WORKDIR}/Python-${PV}"
+
+inherit autotools multilib_header python-dir pythonnative
+
+CONFIGUREOPTS += " --with-system-ffi "
+
+EXTRA_OECONF += "ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no"
+
+do_configure_append() {
+ rm -f ${S}/Makefile.orig
+ autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
+}
+
+do_compile() {
+ # regenerate platform specific files, because they depend on system headers
+ cd ${S}/Lib/plat-linux2
+ include=${STAGING_INCDIR} ${STAGING_BINDIR_NATIVE}/python-native/python \
+ ${S}/Tools/scripts/h2py.py -i '(u_long)' \
+ ${STAGING_INCDIR}/dlfcn.h \
+ ${STAGING_INCDIR}/linux/cdrom.h \
+ ${STAGING_INCDIR}/netinet/in.h \
+ ${STAGING_INCDIR}/sys/types.h
+ sed -e 's,${STAGING_DIR_HOST},,g' -i *.py
+ cd -
+
+ # remove any bogus LD_LIBRARY_PATH
+ sed -i -e s,RUNSHARED=.*,RUNSHARED=, Makefile
+
+ if [ ! -f Makefile.orig ]; then
+ install -m 0644 Makefile Makefile.orig
+ fi
+ sed -i -e 's#^LDFLAGS=.*#LDFLAGS=${LDFLAGS} -L. -L${STAGING_LIBDIR}#g' \
+ -e 's,libdir=${libdir},libdir=${STAGING_LIBDIR},g' \
+ -e 's,libexecdir=${libexecdir},libexecdir=${STAGING_DIR_HOST}${libexecdir},g' \
+ -e 's,^LIBDIR=.*,LIBDIR=${STAGING_LIBDIR},g' \
+ -e 's,includedir=${includedir},includedir=${STAGING_INCDIR},g' \
+ -e 's,^INCLUDEDIR=.*,INCLUDE=${STAGING_INCDIR},g' \
+ -e 's,^CONFINCLUDEDIR=.*,CONFINCLUDE=${STAGING_INCDIR},g' \
+ Makefile
+ # save copy of it now, because if we do it in do_install and
+ # then call do_install twice we get Makefile.orig == Makefile.sysroot
+ install -m 0644 Makefile Makefile.sysroot
+
+ export CROSS_COMPILE="${TARGET_PREFIX}"
+ export PYTHONBUILDDIR="${B}"
+
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ OPT="${CFLAGS}"
+}
+
+do_install() {
+ # make install needs the original Makefile, or otherwise the inclues would
+ # go to ${D}${STAGING...}/...
+ install -m 0644 Makefile.orig Makefile
+
+ export CROSS_COMPILE="${TARGET_PREFIX}"
+ export PYTHONBUILDDIR="${B}"
+
+ # After swizzling the makefile, we need to run the build again.
+ # install can race with the build so we have to run this first, then install
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
+ CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ DESTDIR=${D} LIBDIR=${libdir}
+
+ oe_runmake HOSTPGEN=${STAGING_BINDIR_NATIVE}/python-native/pgen \
+ HOSTPYTHON=${STAGING_BINDIR_NATIVE}/python-native/python \
+ CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_BASELIBDIR=${STAGING_BASELIBDIR} \
+ DESTDIR=${D} LIBDIR=${libdir} install
+
+ install -m 0644 Makefile.sysroot ${D}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
+
+ if [ -e ${WORKDIR}/sitecustomize.py ]; then
+ install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
+ fi
+
+ oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
+}
+
+do_install_append_class-nativesdk () {
+ create_wrapper ${D}${bindir}/python2.7 PYTHONHOME='${prefix}' TERMINFO_DIRS='${sysconfdir}/terminfo:/etc/terminfo:/usr/share/terminfo:/usr/share/misc/terminfo:/lib/terminfo'
+}
+
+SSTATE_SCAN_FILES += "Makefile"
+PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
+
+py_package_preprocess () {
+ # copy back the old Makefile to fix target package
+ install -m 0644 ${B}/Makefile.orig ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile
+
+ # Remove references to buildmachine paths in target Makefile and _sysconfigdata
+ sed -i -e 's:--sysroot=${STAGING_DIR_TARGET}::g' -e s:'--with-libtool-sysroot=${STAGING_DIR_TARGET}'::g \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/config/Makefile \
+ ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
+ python -m py_compile ${PKGD}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata.py
+}
+
+require python-${PYTHON_MAJMIN}-manifest.inc
+
+# manual dependency additions
+RPROVIDES_${PN}-core = "${PN}"
+RRECOMMENDS_${PN}-core = "${PN}-readline"
+RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python-modules"
+RRECOMMENDS_${PN}-crypt = "openssl"
+
+# package libpython2
+PACKAGES =+ "lib${BPN}2"
+FILES_lib${BPN}2 = "${libdir}/libpython*.so.*"
+
+# catch all the rest (unsorted)
+PACKAGES += "${PN}-misc"
+FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN}"
+RDEPENDS_${PN}-modules += "${PN}-misc"
+RDEPENDS_${PN}-ptest = "${PN}-modules"
+#inherit ptest after "require python-${PYTHON_MAJMIN}-manifest.inc" so PACKAGES doesn't get overwritten
+inherit ptest
+
+# This must come after inherit ptest for the override to take effect
+do_install_ptest() {
+ cp ${B}/Makefile ${D}${PTEST_PATH}
+ sed -e s:LIBDIR/python/ptest:${PTEST_PATH}:g \
+ -e s:LIBDIR:${libdir}:g \
+ -i ${D}${PTEST_PATH}/run-ptest
+}
+
+# catch manpage
+PACKAGES += "${PN}-man"
+FILES_${PN}-man = "${datadir}/man"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
index 51d1c5969..943ca5f89 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/nativesdk-qemu-helper_1.0.bb
@@ -1,15 +1,16 @@
SUMMARY = "Qemu helper scripts"
LICENSE = "GPLv2"
-RDEPENDS_${PN} = "nativesdk-qemu"
-PR = "r9"
+RDEPENDS_${PN} = "nativesdk-qemu nativesdk-python3-subprocess \
+ nativesdk-python3-shell nativesdk-python3-fcntl \
+ "
+PR = "r9"
LIC_FILES_CHKSUM = "file://${WORKDIR}/tunctl.c;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999 \
- file://${COREBASE}/scripts/runqemu;endline=18;md5=77fbe442a88b1bcdc29c3ba67733b21b"
+ file://${COREBASE}/scripts/runqemu;endline=19;md5=a8ad1905c709a2deaa057608ebaf705a"
SRC_URI = "file://${COREBASE}/scripts/runqemu \
- file://${COREBASE}/scripts/runqemu-internal \
file://${COREBASE}/scripts/runqemu-addptable2image \
file://${COREBASE}/scripts/runqemu-gen-tapdevs \
file://${COREBASE}/scripts/runqemu-ifup \
@@ -18,7 +19,6 @@ SRC_URI = "file://${COREBASE}/scripts/runqemu \
file://${COREBASE}/scripts/runqemu-extract-sdk \
file://${COREBASE}/scripts/runqemu-export-rootfs \
file://tunctl.c \
- file://raw2flash.c \
"
S = "${WORKDIR}"
@@ -27,8 +27,6 @@ inherit nativesdk
do_compile() {
${CC} tunctl.c -o tunctl
- ${CC} raw2flash.c -o raw2flash.spitz
- ${CC} raw2flash.c -o flash2raw.spitz -Dflash2raw
}
do_install() {
@@ -36,12 +34,4 @@ do_install() {
install -m 0755 ${WORKDIR}${COREBASE}/scripts/oe-* ${D}${bindir}/
install -m 0755 ${WORKDIR}${COREBASE}/scripts/runqemu* ${D}${bindir}/
install tunctl ${D}${bindir}/
- install raw2flash.spitz ${D}${bindir}/
- install flash2raw.spitz ${D}${bindir}/
- ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.akita
- ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.borzoi
- ln -fs raw2flash.spitz ${D}${bindir}/raw2flash.terrier
- ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.akita
- ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.borzoi
- ln -fs flash2raw.spitz ${D}${bindir}/flash2raw.terrier
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu-helper/raw2flash.c b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu-helper/raw2flash.c
deleted file mode 100644
index 19faf629b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu-helper/raw2flash.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/*
- * Copyright (c) 2006 OpenedHand Ltd.
- *
- * This file is licensed under GNU GPL v2.
- */
-#include <string.h>
-#include <unistd.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <stdlib.h>
-
-#define TFR(_) _
-#define VERBOSE
-#define PBAR_LEN 40
-
-#define PARTITION_START 0x00700000
-
-static const int ecc_pos8[] = {
- 0x0, 0x1, 0x2,
-};
-
-static const int ecc_pos16[] = {
- 0x0, 0x1, 0x2, 0x3, 0x6, 0x7,
-};
-
-static const int ecc_pos64[] = {
- 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
-};
-
-static const int ecc_akita[] = {
- 0x05, 0x01, 0x02, 0x03, 0x06, 0x07, 0x15, 0x11,
- 0x12, 0x13, 0x16, 0x17, 0x25, 0x21, 0x22, 0x23,
- 0x26, 0x27, 0x35, 0x31, 0x32, 0x33, 0x36, 0x37,
-};
-
-struct jffs_marker_s {
- int pos;
- uint8_t value;
-};
-
-static const struct jffs_marker_s free_pos8[] = {
- { 0x03, 0xff }, { 0x04, 0xff }, { 0x06, 0x85 }, { 0x07, 0x19 },
- { -1 },
-};
-
-static const struct jffs_marker_s free_pos16[] = {
- { 0x08, 0x85 }, { 0x09, 0x19 }, { 0x0a, 0x03 }, { 0x0b, 0x20 },
- { 0x0c, 0x08 }, { 0x0d, 0x00 }, { 0x0e, 0x00 }, { 0x0f, 0x00 },
- { -1 },
-};
-
-static const struct jffs_marker_s free_pos64[] = {
- { 0x02, 0xff }, { 0x03, 0xff }, { 0x04, 0xff }, { 0x05, 0xff },
- { 0x06, 0xff }, { 0x07, 0xff }, { 0x08, 0xff }, { 0x09, 0xff },
- { 0x0a, 0xff }, { 0x0b, 0xff }, { 0x0c, 0xff }, { 0x0d, 0xff },
- { 0x0e, 0xff }, { 0x0f, 0xff }, { 0x10, 0x85 }, { 0x11, 0x19 },
- { 0x12, 0x03 }, { 0x13, 0x20 }, { 0x14, 0x08 }, { 0x15, 0x00 },
- { 0x16, 0x00 }, { 0x17, 0x00 }, { 0x18, 0xff }, { 0x19, 0xff },
- { 0x1a, 0xff }, { 0x1b, 0xff }, { 0x1c, 0xff }, { 0x1d, 0xff },
- { 0x1e, 0xff }, { 0x1f, 0xff }, { 0x20, 0xff }, { 0x21, 0xff },
- { 0x22, 0xff }, { 0x23, 0xff }, { 0x24, 0xff }, { 0x25, 0xff },
- { 0x26, 0xff }, { 0x27, 0xff },
- { -1 },
-};
-
-static const struct jffs_marker_s free_akita[] = {
- { 0x08, 0x85 }, { 0x09, 0x19 }, { 0x0a, 0x03 }, { 0x0b, 0x20 },
- { 0x0c, 0x08 }, { 0x0d, 0x00 }, { 0x0e, 0x00 }, { 0x0f, 0x00 },
- { 0x10, 0xff },
- { -1 },
-};
-
-#define LEN(array) (sizeof(array) / sizeof(*array))
-
-static const struct ecc_style_s {
- int page_size;
- int oob_size;
- int eccbytes;
- int eccsize;
- const int *eccpos;
- int romsize;
- const struct jffs_marker_s *freepos;
-} spitz = {
- 0x200, 0x10, 0x100, LEN(ecc_pos16), ecc_pos16, 0x01000000, free_pos16
-}, akita = {
- 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita
-}, borzoi = {
- 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita
-}, terrier = {
- 0x800, 0x40, 0x100, LEN(ecc_akita), ecc_akita, 0x08000000, free_akita
-};
-
-struct ecc_state_s {
- int count;
- uint8_t cp;
- uint8_t lp[2];
- const struct ecc_style_s *style;
-};
-
-#ifndef flash2raw
-/*
- * Pre-calculated 256-way 1 byte column parity. Table borrowed from Linux.
- */
-static const uint8_t ecc_precalc_table[] = {
- 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a,
- 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
- 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f,
- 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
- 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c,
- 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
- 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59,
- 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
- 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33,
- 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
- 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56,
- 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
- 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55,
- 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
- 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30,
- 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
- 0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30,
- 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
- 0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55,
- 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
- 0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56,
- 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
- 0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33,
- 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
- 0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59,
- 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
- 0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c,
- 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
- 0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f,
- 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
- 0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a,
- 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
-};
-
-/* Update ECC parity count */
-static inline uint8_t ecc_digest(struct ecc_state_s *s, uint8_t sample) {
- uint8_t idx = ecc_precalc_table[sample];
-
- s->cp ^= idx & 0x3f;
- if (idx & 0x40) {
- s->lp[0] ^= ~(s->count & 0xff);
- s->lp[1] ^= s->count & 0xff;
- }
- s->count ++;
-
- return sample;
-}
-
-static void buffer_digest(struct ecc_state_s *ecc,
- const uint8_t *buf, uint8_t *out) {
- int i, lp_a[2];
-
- ecc->lp[0] = 0x00;
- ecc->lp[1] = 0x00;
- ecc->cp = 0x00;
- ecc->count = 0;
- for (i = 0; i < ecc->style->eccbytes; i ++)
- ecc_digest(ecc, buf[i]);
-
-# define BSHR(byte, from, to) ((ecc->lp[byte] >> (from - to)) & (1 << to))
- lp_a[0] =
- BSHR(0, 4, 0) | BSHR(0, 5, 2) |
- BSHR(0, 6, 4) | BSHR(0, 7, 6) |
- BSHR(1, 4, 1) | BSHR(1, 5, 3) |
- BSHR(1, 6, 5) | BSHR(1, 7, 7);
-
-# define BSHL(byte, from, to) ((ecc->lp[byte] << (to - from)) & (1 << to))
- lp_a[1] =
- BSHL(0, 0, 0) | BSHL(0, 1, 2) |
- BSHL(0, 2, 4) | BSHL(0, 3, 6) |
- BSHL(1, 0, 1) | BSHL(1, 1, 3) |
- BSHL(1, 2, 5) | BSHL(1, 3, 7);
-
- out[0] = ~lp_a[1];
- out[1] = ~lp_a[0];
- out[2] = (~ecc->cp << 2) | 0x03;
-}
-
-static void jffs2_format(const struct ecc_state_s *ecc, uint8_t oob[]) {
- const struct jffs_marker_s *byte;
- for (byte = ecc->style->freepos; byte->pos >= 0; byte ++)
- oob[byte->pos] = byte->value;
-}
-
-static void buffer_fill(const struct ecc_state_s *ecc, uint8_t buffer[],
- int *len, int *partition, int count, uint8_t jffs_buffer[]) {
- int ret;
-
- switch (*partition) {
- case 0:
- if (count < PARTITION_START) {
- memcpy(buffer, jffs_buffer + count,
- ecc->style->eccbytes);
- *len = ecc->style->eccbytes;
- break;
- }
- *partition = 1;
- case 1:
- if (count - PARTITION_START < PARTITION_START) {
- memcpy(buffer, jffs_buffer + count - PARTITION_START,
- ecc->style->eccbytes);
- *len = ecc->style->eccbytes;
- break;
- }
-
- while (*len < ecc->style->eccbytes) {
- ret = TFR(read(0, buffer + *len, 0x800 - *len));
- if (ret <= 0)
- break;
- *len += ret;
- }
-
- if (*len == 0)
- *partition = 2;
- else if (*len < ecc->style->eccbytes) {
- fprintf(stderr, "\nWarning: %i stray bytes\n", *len);
- memset(buffer + *len, 0xff,
- ecc->style->eccbytes - *len);
- *len = ecc->style->eccbytes;
- break;
- } else
- break;
- case 2:
- memset(buffer, 0xff, ecc->style->eccbytes);
- *len = ecc->style->eccbytes;
- break;
- }
-}
-
-int main(int argc, char *argv[], char *envp[]) {
- struct ecc_state_s ecc;
- uint8_t buffer[0x1000], ecc_payload[0x40], regs[3], *jffs;
- int ret, len, eccbyte, count, partition;
-
- /* Check if we're called by "raw2flash.spitz" or similar */
- len = strlen(argv[0]);
- if (!strcasecmp(argv[0] + len - 5, "akita"))
- ecc.style = &akita;
- else if (!strcasecmp(argv[0] + len - 6, "borzoi"))
- ecc.style = &borzoi;
- else if (!strcasecmp(argv[0] + len - 7, "terrier"))
- ecc.style = &terrier;
- else
- ecc.style = &spitz;
-
-# ifdef VERBOSE
- fprintf(stderr, "[");
-# endif
-
- /* Skip first 10 bytes */
- TFR(read(0, buffer, 0x10));
-
- len = 0;
- jffs = (uint8_t *) malloc(PARTITION_START);
- while (len < PARTITION_START) {
- ret = TFR(read(0, jffs + len, PARTITION_START - len));
- if (ret <= 0)
- break;
- len += ret;
- }
-
- /* Convert data from stdin */
- partition = len = eccbyte = count = 0;
- memset(ecc_payload, 0xff, ecc.style->oob_size);
- jffs2_format(&ecc, ecc_payload);
- while (count < ecc.style->romsize) {
- buffer_fill(&ecc, buffer, &len, &partition, count, jffs);
- buffer_digest(&ecc, buffer, regs);
-
- ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[0];
- ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[1];
- ecc_payload[ecc.style->eccpos[eccbyte ++]] = regs[2];
-
- TFR(write(1, buffer, ecc.style->eccbytes));
- count += ecc.style->eccbytes;
- len -= ecc.style->eccbytes;
- memmove(buffer, buffer + ecc.style->eccbytes, len);
-
- if (eccbyte >= ecc.style->eccsize) {
- TFR(write(1, ecc_payload, ecc.style->oob_size));
- eccbyte = 0;
- memset(ecc_payload, 0xff, ecc.style->oob_size);
- if (partition < 2)
- jffs2_format(&ecc, ecc_payload);
- }
-
-# ifdef VERBOSE
- if (count * PBAR_LEN / ecc.style->romsize >
- (count - ecc.style->eccbytes) *
- PBAR_LEN / ecc.style->romsize)
- fprintf(stderr, "#");
-# endif
- }
-
-# ifdef VERBOSE
- fprintf(stderr, "]\n");
-# endif
- free(jffs);
- return 0;
-}
-#else
-int main(int argc, char *argv[], char *envp[]) {
- struct ecc_state_s ecc;
- uint8_t buffer[0x1000];
- int ret, len, count;
-
- /* Check if we're called by "flash2raw.spitz" or similar */
- len = strlen(argv[0]);
- if (!strcasecmp(argv[0] + len - 5, "akita"))
- ecc.style = &akita;
- else if (!strcasecmp(argv[0] + len - 6, "borzoi"))
- ecc.style = &borzoi;
- else if (!strcasecmp(argv[0] + len - 7, "terrier"))
- ecc.style = &terrier;
- else
- ecc.style = &spitz;
-
-# ifdef VERBOSE
- fprintf(stderr, "[");
-# endif
-
- /* Convert data from stdin */
- count = 0;
- while (count < ecc.style->romsize) {
- len = 0;
- while (len < ecc.style->page_size) {
- ret = TFR(read(0, buffer + len,
- ecc.style->page_size - len));
- if (ret <= 0)
- break;
- len += ret;
- }
- if (len == 0)
- break;
- if (len < ecc.style->page_size) {
- fprintf(stderr, "\nWarning: %i stray bytes\n", len);
- }
-
- TFR(write(1, buffer, ecc.style->page_size));
-
- count += len;
- len = 0;
- while (len < ecc.style->oob_size) {
- ret = TFR(read(0, buffer, ecc.style->oob_size - len));
- if (ret <= 0)
- break;
- len += ret;
- }
-
-# ifdef VERBOSE
- if (count * PBAR_LEN / ecc.style->romsize >
- (count - ecc.style->page_size) *
- PBAR_LEN / ecc.style->romsize)
- fprintf(stderr, "#");
-# endif
- }
-
-# ifdef VERBOSE
- fprintf(stderr, "]\n");
-# endif
- return 0;
-}
-#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu.inc b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu.inc
index 269c898c4..b46e7f72e 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu.inc
@@ -2,7 +2,7 @@ SUMMARY = "Fast open source processor emulator"
HOMEPAGE = "http://qemu.org"
LICENSE = "GPLv2 & LGPLv2.1"
DEPENDS = "glib-2.0 zlib pixman"
-RDEPENDS_${PN}_class-target += "bash python"
+RDEPENDS_${PN}_class-target += "bash"
RDEPENDS_${PN}-ptest = "bash make"
require qemu-targets.inc
@@ -21,6 +21,7 @@ SRC_URI = "\
file://wacom.patch \
file://add-ptest-in-makefile.patch \
file://run-ptest \
+ file://0001-target-mips-add-24KEc-CPU-definition.patch \
"
SRC_URI_append_class-native = "\
@@ -30,8 +31,12 @@ SRC_URI_append_class-native = "\
EXTRA_OECONF += "--target-list=${@get_qemu_target_list(d)} --disable-werror --disable-bluez --disable-libiscsi --with-system-pixman --extra-cflags='${CFLAGS}'"
-EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror \
- "
+EXTRA_OECONF_class-nativesdk = "--target-list=${@get_qemu_target_list(d)} --disable-werror"
+
+EXTRA_OEMAKE_append_class-native = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
+
+LDFLAGS_append_class-native = " -fuse-ld=bfd"
+
export LIBTOOL="${HOST_SYS}-libtool"
do_configure_prepend_class-native() {
@@ -39,13 +44,12 @@ do_configure_prepend_class-native() {
BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "")
if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$BHOST_PKGCONFIG_PATH
- # link with system dbus on Ubuntu 15.10
- # FIXME: remove below 4 lines when oe dbus is upgraded
- if [ -r /etc/lsb-release -a "$(lsb_release -is)$(lsb_release -rs)" = "Ubuntu15.10" ] ; then
- libs=$(PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_PATH=$BHOST_PKGCONFIG_PATH PATH=/usr/bin:/bin pkg-config --libs dbus-1 || echo "")
- [ -n "$libs" ] && export LDFLAGS="$libs $LDFLAGS"
- fi
fi
+
+ # Alter target makefiles to accept CFLAGS set via env
+ sed -i -r \
+ -e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
+ "${S}"/Makefile "${S}"/Makefile.target
}
KVMENABLE = "--enable-kvm"
@@ -72,7 +76,7 @@ do_install_ptest() {
cp -rL ${B}/tests ${D}${PTEST_PATH}
find ${D}${PTEST_PATH}/tests -type f -name "*.[Sshcod]" | xargs -i rm -rf {}
- cp ${S}/tests/Makefile ${D}${PTEST_PATH}/tests
+ cp ${S}/tests/Makefile.include ${D}${PTEST_PATH}/tests
}
do_install () {
@@ -103,9 +107,8 @@ PACKAGECONFIG ??= " \
"
PACKAGECONFIG_class-native ??= "fdt alsa uuid"
PACKAGECONFIG_class-nativesdk ??= "fdt sdl"
-NATIVEDEPS = ""
-NATIVEDEPS_class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxext-native', '',d)}"
-PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl ${NATIVEDEPS},"
+
+PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl"
PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap attr,"
PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs,"
@@ -117,7 +120,7 @@ PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,libcurl,"
PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss,"
PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
-PACKAGECONFIG[gtk+] = "--enable-gtk --enable-vte,--disable-gtk --disable-vte,gtk+ libvte,"
+PACKAGECONFIG[gtk+] = "--enable-gtk --with-gtkabi=3.0 --enable-vte,--disable-gtk --disable-vte,gtk+3 vte"
PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,gcrypt,"
@@ -129,6 +132,7 @@ PACKAGECONFIG[glx] = "--enable-opengl,--disable-opengl,mesa"
PACKAGECONFIG[lzo] = "--enable-lzo,--disable-lzo,lzo"
PACKAGECONFIG[numa] = "--enable-numa,--disable-numa,numactl"
PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls"
+PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2"
EXTRA_OECONF += "${@bb.utils.contains('PACKAGECONFIG', 'alsa', '--audio-drv-list=oss,alsa', '', d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/0001-target-mips-add-24KEc-CPU-definition.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/0001-target-mips-add-24KEc-CPU-definition.patch
new file mode 100644
index 000000000..c4dbee7d7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/0001-target-mips-add-24KEc-CPU-definition.patch
@@ -0,0 +1,54 @@
+From 926bc194f918d46bd93557b15da8153b6a94a1d5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 25 Jul 2016 23:58:22 +0100
+Subject: [PATCH] target-mips: add 24KEc CPU definition
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Define a new CPU definition supporting 24KEc cores, similar to
+the existing 24Kc, but with added support for DSP instructions
+and MIPS16e (and without FPU).
+
+Signed-off-by: André Draszik <git@andred.net>
+---
+Upstream-Status: Submitted [http://lists.nongnu.org/archive/html/qemu-devel/2016-07/msg05778.html]
+ target-mips/translate_init.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/target-mips/translate_init.c b/target-mips/translate_init.c
+index 39ed5c4..6ae23e4 100644
+--- a/target-mips/translate_init.c
++++ b/target-mips/translate_init.c
+@@ -256,6 +256,28 @@ static const mips_def_t mips_defs[] =
+ .mmu_type = MMU_TYPE_R4000,
+ },
+ {
++ .name = "24KEc",
++ .CP0_PRid = 0x00019600,
++ .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR) |
++ (MMU_TYPE_R4000 << CP0C0_MT),
++ .CP0_Config1 = MIPS_CONFIG1 | (15 << CP0C1_MMU) |
++ (0 << CP0C1_IS) | (3 << CP0C1_IL) | (1 << CP0C1_IA) |
++ (0 << CP0C1_DS) | (3 << CP0C1_DL) | (1 << CP0C1_DA) |
++ (1 << CP0C1_CA),
++ .CP0_Config2 = MIPS_CONFIG2,
++ .CP0_Config3 = MIPS_CONFIG3 | (1 << CP0C3_DSPP) | (0 << CP0C3_VInt),
++ .CP0_LLAddr_rw_bitmask = 0,
++ .CP0_LLAddr_shift = 4,
++ .SYNCI_Step = 32,
++ .CCRes = 2,
++ /* we have a DSP, but no FPU */
++ .CP0_Status_rw_bitmask = 0x1378FF1F,
++ .SEGBITS = 32,
++ .PABITS = 32,
++ .insn_flags = CPU_MIPS32R2 | ASE_MIPS16 | ASE_DSP,
++ .mmu_type = MMU_TYPE_R4000,
++ },
++ {
+ .name = "24Kf",
+ .CP0_PRid = 0x00019300,
+ .CP0_Config0 = MIPS_CONFIG0 | (0x1 << CP0C0_AR) |
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-1568.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-1568.patch
deleted file mode 100644
index 56fd346ae..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-1568.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4ab0359a8ae182a7ac5c99609667273167703fab Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Mon, 11 Jan 2016 14:10:42 -0500
-Subject: [PATCH] ide: ahci: reset ncq object to unused on error
-
-When processing NCQ commands, AHCI device emulation prepares a
-NCQ transfer object; To which an aio control block(aiocb) object
-is assigned in 'execute_ncq_command'. In case, when the NCQ
-command is invalid, the 'aiocb' object is not assigned, and NCQ
-transfer object is left as 'used'. This leads to a use after
-free kind of error in 'bdrv_aio_cancel_async' via 'ahci_reset_port'.
-Reset NCQ transfer object to 'unused' to avoid it.
-
-[Maintainer edit: s/ACHI/AHCI/ in the commit message. --js]
-
-Reported-by: Qinghao Tang <luodalongde@gmail.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Reviewed-by: John Snow <jsnow@redhat.com>
-Message-id: 1452282511-4116-1-git-send-email-ppandit@redhat.com
-Signed-off-by: John Snow <jsnow@redhat.com>
-
-Upstream-Status: Backport
-
-http://git.qemu.org/?p=qemu.git;a=commit;h=4ab0359a8ae182a7ac5c99609667273167703fab
-
-CVE: CVE-2016-1568
-[Yocto # 9013]
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- hw/ide/ahci.c | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: qemu-2.5.0/hw/ide/ahci.c
-===================================================================
---- qemu-2.5.0.orig/hw/ide/ahci.c
-+++ qemu-2.5.0/hw/ide/ahci.c
-@@ -910,6 +910,7 @@ static void ncq_err(NCQTransferState *nc
- ide_state->error = ABRT_ERR;
- ide_state->status = READY_STAT | ERR_STAT;
- ncq_tfs->drive->port_regs.scr_err |= (1 << ncq_tfs->tag);
-+ ncq_tfs->used = 0;
- }
-
- static void ncq_finish(NCQTransferState *ncq_tfs)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2197.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2197.patch
deleted file mode 100644
index 946435c43..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2197.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: Prasad J Pandit <address@hidden>
-
-When IDE AHCI emulation uses Frame Information Structures(FIS)
-engine for data transfer, the mapped FIS buffer address is stored
-in a static 'bounce.buffer'. When a request is made to map another
-memory region, address_space_map() returns NULL because
-'bounce.buffer' is in_use. It leads to a null pointer dereference
-error while doing 'dma_memory_unmap'. Add a check to avoid it.
-
-Reported-by: Zuozhi fzz <address@hidden>
-Signed-off-by: Prasad J Pandit <address@hidden>
-
-Upstream-Status: Backport
-https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg05740.html
-
-CVE: CVE-2016-2197
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- hw/ide/ahci.c | 16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
- Update as per review
- -> https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg05715.html
-
-Index: qemu-2.5.0/hw/ide/ahci.c
-===================================================================
---- qemu-2.5.0.orig/hw/ide/ahci.c
-+++ qemu-2.5.0/hw/ide/ahci.c
-@@ -661,9 +661,11 @@ static bool ahci_map_fis_address(AHCIDev
-
- static void ahci_unmap_fis_address(AHCIDevice *ad)
- {
-- dma_memory_unmap(ad->hba->as, ad->res_fis, 256,
-- DMA_DIRECTION_FROM_DEVICE, 256);
-- ad->res_fis = NULL;
-+ if (ad->res_fis) {
-+ dma_memory_unmap(ad->hba->as, ad->res_fis, 256,
-+ DMA_DIRECTION_FROM_DEVICE, 256);
-+ ad->res_fis = NULL;
-+ }
- }
-
- static bool ahci_map_clb_address(AHCIDevice *ad)
-@@ -677,9 +679,11 @@ static bool ahci_map_clb_address(AHCIDev
-
- static void ahci_unmap_clb_address(AHCIDevice *ad)
- {
-- dma_memory_unmap(ad->hba->as, ad->lst, 1024,
-- DMA_DIRECTION_FROM_DEVICE, 1024);
-- ad->lst = NULL;
-+ if (ad->lst) {
-+ dma_memory_unmap(ad->hba->as, ad->lst, 1024,
-+ DMA_DIRECTION_FROM_DEVICE, 1024);
-+ ad->lst = NULL;
-+ }
- }
-
- static void ahci_write_fis_sdb(AHCIState *s, NCQTransferState *ncq_tfs)
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2198.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2198.patch
deleted file mode 100644
index f1201f061..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/CVE-2016-2198.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Prasad J Pandit <address@hidden>
-
-USB Ehci emulation supports host controller capability registers.
-But its mmio '.write' function was missing, which lead to a null
-pointer dereference issue. Add a do nothing 'ehci_caps_write'
-definition to avoid it; Do nothing because capability registers
-are Read Only(RO).
-
-Reported-by: Zuozhi Fzz <address@hidden>
-Signed-off-by: Prasad J Pandit <address@hidden>
-
-Upstream-Status: Backport
-https://lists.gnu.org/archive/html/qemu-devel/2016-01/msg05899.html
-
-CVE: CVE-2016-2198
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- hw/usb/hcd-ehci.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: qemu-2.5.0/hw/usb/hcd-ehci.c
-===================================================================
---- qemu-2.5.0.orig/hw/usb/hcd-ehci.c
-+++ qemu-2.5.0/hw/usb/hcd-ehci.c
-@@ -893,6 +893,11 @@ static uint64_t ehci_caps_read(void *ptr
- return s->caps[addr];
- }
-
-+static void ehci_caps_write(void *ptr, hwaddr addr,
-+ uint64_t val, unsigned size)
-+{
-+}
-+
- static uint64_t ehci_opreg_read(void *ptr, hwaddr addr,
- unsigned size)
- {
-@@ -2310,6 +2315,7 @@ static void ehci_frame_timer(void *opaqu
-
- static const MemoryRegionOps ehci_mmio_caps_ops = {
- .read = ehci_caps_read,
-+ .write = ehci_caps_write,
- .valid.min_access_size = 1,
- .valid.max_access_size = 4,
- .impl.min_access_size = 1,
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/add-ptest-in-makefile.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/add-ptest-in-makefile.patch
index a99f72098..2ce3478e4 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/add-ptest-in-makefile.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/add-ptest-in-makefile.patch
@@ -4,14 +4,14 @@ Add subpackage -ptest which runs all unit test cases for qemu.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
- tests/Makefile | 10 ++++++++++
- 1 file changed, 10 insertions(+)
+ tests/Makefile.include | 8 ++++++++
+ 1 file changed, 8 insertions(+)
-diff --git a/tests/Makefile b/tests/Makefile
-index 88f7105..3f40b4b 100644
---- a/tests/Makefile
-+++ b/tests/Makefile
-@@ -405,3 +405,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
+diff --git a/tests/Makefile.include b/tests/Makefile.include
+index 14be491..0fce37a 100644
+--- a/tests/Makefile.include
++++ b/tests/Makefile.include
+@@ -776,3 +776,11 @@ all: $(QEMU_IOTESTS_HELPERS-y)
-include $(wildcard tests/*.d)
-include $(wildcard tests/libqos/*.d)
@@ -23,7 +23,6 @@ index 88f7105..3f40b4b 100644
+ nf=$$(echo $$f | sed 's/tests\//\.\//g'); \
+ $$nf; \
+ done
-+
---
-1.7.9.5
+--
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/disable-grabs.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
index 41726b1c8..123833f82 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/disable-grabs.patch
@@ -29,9 +29,9 @@ index 39a42d6..9b8abe5 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -59,6 +59,10 @@ static SDL_Cursor *guest_sprite = NULL;
- static SDL_PixelFormat host_format;
static int scaling_active = 0;
static Notifier mouse_mode_notifier;
+ static int idle_counter;
+#ifndef True
+#define True 1
+#endif
@@ -40,7 +40,7 @@ index 39a42d6..9b8abe5 100644
static void sdl_update(DisplayChangeListener *dcl,
int x, int y, int w, int h)
@@ -384,14 +388,16 @@ static void sdl_grab_start(void)
- SDL_WarpMouse(guest_x, guest_y);
+ }
} else
sdl_hide_cursor();
- SDL_WM_GrabInput(SDL_GRAB_ON);
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch
index 13a6ea23b..cee6a676a 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/fix-libcap-header-issue-on-some-distro.patch
@@ -67,9 +67,9 @@ diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
#include <sys/vfs.h>
#include <sys/ioctl.h>
@@ -26,7 +25,11 @@
- #include "virtio-9p-marshal.h"
- #include "hw/9pfs/virtio-9p-proxy.h"
- #include "fsdev/virtio-9p-marshal.h"
+ #include "9p-iov-marshal.h"
+ #include "hw/9pfs/9p-proxy.h"
+ #include "fsdev/9p-iov-marshal.h"
-
+/*
+ * Include this one last due to some versions of it being buggy:
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
new file mode 100644
index 000000000..173394fd0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu/qemu-2.5.0-cflags.patch
@@ -0,0 +1,13 @@
+--- a/configure
++++ b/configure
+@@ -4468,10 +4468,6 @@ fi
+ if test "$gcov" = "yes" ; then
+ CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
+ LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
+-elif test "$fortify_source" = "yes" ; then
+- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
+-elif test "$debug" = "no"; then
+- CFLAGS="-O2 $CFLAGS"
+ fi
+
+ ##########################################
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.5.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.5.0.bb
deleted file mode 100644
index e9d9a8dce..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.5.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-require qemu.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
- file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
-
-SRC_URI += "file://configure-fix-Darwin-target-detection.patch \
- file://qemu-enlarge-env-entry-size.patch \
- file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \
- file://no-valgrind.patch \
- file://CVE-2016-1568.patch \
- file://CVE-2016-2197.patch \
- file://CVE-2016-2198.patch \
- file://pathlimit.patch \
- "
-SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BP}.tar.bz2"
-SRC_URI[md5sum] = "f469f2330bbe76e3e39db10e9ac4f8db"
-SRC_URI[sha256sum] = "3443887401619fe33bfa5d900a4f2d6a79425ae2b7e43d5b8c36eb7a683772d4"
-
-COMPATIBLE_HOST_class-target_mips64 = "null"
-
-do_install_append() {
- # Prevent QA warnings about installed ${localstatedir}/run
- if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.7.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.7.0.bb
new file mode 100644
index 000000000..619b8ed44
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemu_2.7.0.bb
@@ -0,0 +1,23 @@
+require qemu.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
+ file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
+
+SRC_URI += "file://configure-fix-Darwin-target-detection.patch \
+ file://qemu-enlarge-env-entry-size.patch \
+ file://Qemu-Arm-versatilepb-Add-memory-size-checking.patch \
+ file://no-valgrind.patch \
+ file://pathlimit.patch \
+ file://qemu-2.5.0-cflags.patch \
+"
+
+SRC_URI_prepend = "http://wiki.qemu-project.org/download/${BP}.tar.bz2"
+SRC_URI[md5sum] = "08d4d06d1cb598efecd796137f4844ab"
+SRC_URI[sha256sum] = "326e739506ba690daf69fc17bd3913a6c313d9928d743bd8eddb82f403f81e53"
+
+COMPATIBLE_HOST_class-target_mips64 = "null"
+
+do_install_append() {
+ # Prevent QA warnings about installed ${localstatedir}/run
+ if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
index 7f4c6d934..53b302d65 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
@@ -41,10 +41,6 @@ EOF
chmod +x ${D}${bindir_crossscripts}/qemuwrapper
}
-SYSROOT_PREPROCESS_FUNCS += "qemuwrapper_sysroot_preprocess"
-
-qemuwrapper_sysroot_preprocess () {
- sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
-}
+SYSROOT_DIRS += "${bindir_crossscripts}"
INHIBIT_DEFAULT_DEPS = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/quilt/quilt.inc b/import-layers/yocto-poky/meta/recipes-devtools/quilt/quilt.inc
index 4e393c4d8..512b798d7 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/quilt/quilt.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/quilt/quilt.inc
@@ -48,10 +48,10 @@ do_compile_ptest() {
}
do_install_ptest() {
- tar -cf - bin/ --exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf - )
- tar -cf - compat/ --exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf - )
- tar -cf - quilt/ --exclude \*.in | ( cd ${D}${PTEST_PATH} && tar -xf - )
- tar -cf - test/ --exclude mail.test --exclude delete.test | ( cd ${D}${PTEST_PATH} && tar -xf - && chmod 777 test)
+ tar -c --exclude=\*.in bin/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=\*.in compat/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=\*.in quilt/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=mail.test --exclude=delete.test test/ | ( cd ${D}${PTEST_PATH} && tar -xf - && chmod 777 test)
cp ${WORKDIR}/Makefile ${D}${PTEST_PATH}
cp ${WORKDIR}/test.sh ${D}${PTEST_PATH}
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch
new file mode 100644
index 000000000..77dc5b67d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/0001-system.h-query.c-support-nosignature.patch
@@ -0,0 +1,63 @@
+From d8fcc3cbeec4defb5babde5bd09ea294dd3fd08b Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Sun, 3 Jul 2016 19:01:59 -0700
+Subject: [PATCH] system.h/query.c: support nosignature
+
+* Define SUPPORT_NOSIGNATURES to 1 in system.h
+* !QVA_ISSET(qva->qva_flags, SIGNATURE) -> QVA_ISSET(qva->qva_flags, SIGNATURE),
+ otherwise, when use --nosignature would read database and verify
+ signature, this is not expected.
+
+Upstream-Status: Submitted [Sent email to rpm-devel@rpm5.org]
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ lib/query.c | 6 +++---
+ system.h | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/query.c b/lib/query.c
+index 50a7453..b761d76 100644
+--- a/lib/query.c
++++ b/lib/query.c
+@@ -954,19 +954,19 @@ JBJDEBUG((stderr, "--> %s(%p,%p,%p)\n", __FUNCTION__, ts, qva, argv));
+ vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_query}");
+ vsflags = (rpmVSFlags) 0; /* XXX FIXME: ignore default disablers. */
+ #if defined(SUPPORT_NOSIGNATURES)
+- if (!QVA_ISSET(qva->qva_flags, DIGEST)) {
++ if (QVA_ISSET(qva->qva_flags, DIGEST)) {
+ VSF_SET(vsflags, NOSHA1HEADER);
+ VSF_SET(vsflags, NOMD5HEADER);
+ VSF_SET(vsflags, NOSHA1);
+ VSF_SET(vsflags, NOMD5);
+ }
+- if (!QVA_ISSET(qva->qva_flags, SIGNATURE)) {
++ if (QVA_ISSET(qva->qva_flags, SIGNATURE)) {
+ VSF_SET(vsflags, NODSAHEADER);
+ VSF_SET(vsflags, NORSAHEADER);
+ VSF_SET(vsflags, NODSA);
+ VSF_SET(vsflags, NORSA);
+ }
+- if (!QVA_ISSET(qva->qva_flags, HDRCHK)) {
++ if (QVA_ISSET(qva->qva_flags, HDRCHK)) {
+ VSF_SET(vsflags, NOHDRCHK);
+ }
+ VSF_CLR(vsflags, NEEDPAYLOAD); /* XXX needed? */
+diff --git a/system.h b/system.h
+index 2ff8906..ad4619a 100644
+--- a/system.h
++++ b/system.h
+@@ -787,9 +787,9 @@ static inline const char *rcsid(const char *p) { \
+ #define SUPPORT_I18NSTRING_TYPE 1
+
+ /**
+- * Eliminate signature/digest disablers.
++ * Signature/digest disablers.
+ */
+-#undef SUPPORT_NOSIGNATURES
++#define SUPPORT_NOSIGNATURES 1
+
+ /**
+ * Permit ar(1) payloads. Disabled while rpmio/iosm.c is under development.
+--
+2.9.0
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch
new file mode 100644
index 000000000..0a372c6da
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/gcc6-stdlib.patch
@@ -0,0 +1,54 @@
+gcc6 has fixed a long standing c++ include issue where <cheader>
+was different from <header.h> inclusion via
+
+https://gcc.gnu.org/ml/libstdc++/2016-01/msg00025.html
+
+and its also descibed in https://gcc.gnu.org/gcc-6/porting_to.html
+rpmio component uses some .cpp and .cc fies which need to use
+C stdlib.h from C library and not the C++ libstdc++ header
+therefore we pass _GLIBCXX_INCLUDE_NEXT_C_HEADERS so that it
+keeps the old behavior
+
+/a/build/tmp/sysroots/raspberrypi2/usr/include/c++/6.0.1/cstdlib:143:11: error: '::getenv' has not been declared
+ using ::getenv;
+ ^~~~~~
+In file included from ../../rpm-5.4.15/system.h:201:0,
+ from ../../rpm-5.4.15/rpmio/rpmjs.cpp:1:
+/a/build/tmp/sysroots/raspberrypi2/usr/include/c++/6.0.1/stdlib.h:62:12: error: 'std::getenv' has not been declared
+ using std::getenv;
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: rpm-5.4.15/rpmio/Makefile.am
+===================================================================
+--- rpm-5.4.15.orig/rpmio/Makefile.am
++++ rpm-5.4.15/rpmio/Makefile.am
+@@ -151,7 +151,7 @@ librpmio_la_SOURCES = \
+ groestl.c hamsi.c jh.c keccak.c lane.c luffa.c md2.c md6.c radiogatun.c\
+ salsa10.c salsa20.c shabal.c shavite3.c simd.c skein.c tib3.c tiger.c \
+ rpmgit.c rpmio-stub.c \
+- rpmjs.cpp rpmjsio.c rpmkeyring.c \
++ rpmjni.cc rpmjs.cpp rpmjsio.c rpmkeyring.c \
+ rpmnix.c rpmodbc.c rpmsql.c set.c \
+ ar.c \
+ argv.c \
+@@ -195,7 +195,6 @@ librpmio_la_SOURCES = \
+ rpmhook.c \
+ rpmio.c \
+ rpmiob.c \
+- rpmjni.cc \
+ rpmku.c \
+ rpmlog.c \
+ rpmltc.c \
+@@ -279,7 +278,9 @@ keccak.lo: $(top_srcdir)/rpmio/keccak.c
+ #rpmjs.lo: $(top_srcdir)/rpmio/rpmjs.c
+ # @$(LTCOMPILE) -O0 -c $<
+ rpmjs.lo: $(top_srcdir)/rpmio/rpmjs.cpp
+- @$(LTCOMPILE) -O0 -c $<
++ @$(LTCOMPILE) -O0 -c -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS $<
++rpmjni.lo: $(top_srcdir)/rpmio/rpmjni.cc
++ @$(LTCOMPILE) -O0 -c -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS $<
+
+ YACC = byacc -d
+ getdate.c: getdate.y
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch
new file mode 100644
index 000000000..63af10024
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch
@@ -0,0 +1,25 @@
+We need to call rpmcliInit to ensure the rpm relocation code is called
+and it correctly honours the relocation environmental variables.
+
+when we export the wrsdk and source the sdk, then execute rpm2cpio xxx.rpm|cpio -t.
+we will get the following error :
+"rpm-5.4.14/rpmdb/dbconfig.c:493:
+db3New: Assertion `dbOpts != ((void *)0) && *dbOpts != '\0'' failed.
+
+Upstream-Status: Pending
+
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+Index: rpm-5.4.15/tools/rpm2cpio.c
+===================================================================
+--- rpm-5.4.15.orig/tools/rpm2cpio.c 2012-04-27 01:46:51.000000000 +0800
++++ rpm-5.4.15/tools/rpm2cpio.c 2016-09-05 11:07:30.419903338 +0800
+@@ -87,6 +87,8 @@
+ #endif
+ (void) rpmtsSetVSFlags(ts, vsflags);
+
++ rpmcliInit(argc, argv, NULL);
++
+ /*@-mustmod@*/ /* LCL: segfault */
+ rc = rpmReadPackageFile(ts, fdi, "rpm2cpio", &h);
+ /*@=mustmod@*/
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch
index 809e54e9c..3a6f8746c 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-more-verbose-error-logging-in-rpmTempFile.patch
@@ -5,32 +5,10 @@ Upstream-Status: Inappropriate [debugging]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
diff --git a/rpmdb/signature.c b/rpmdb/signature.c
-index dce6c4e..a1d0f06 100644
+index 100204b..e56ab3d 100644
--- a/rpmdb/signature.c
+++ b/rpmdb/signature.c
-@@ -37,6 +37,7 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
- int temput;
- FD_t fd = NULL;
- unsigned int ran;
-+ int ret = 0;
-
- if (!prefix) prefix = "";
-
-@@ -44,8 +45,11 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
- if (!_initialized) {
- _initialized = 1;
- tempfn = rpmGenPath(prefix, tpmacro, NULL);
-- if (rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1))
-- goto errxit;
-+ ret = rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1);
-+ if (ret) {
-+ rpmlog(RPMLOG_ERR, _("error creating temporary directory %s: %d\n"), tempfn, ret);
-+ goto errxit;
-+ }
- }
-
- /* XXX should probably use mkstemp here */
-@@ -68,12 +72,16 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
+@@ -72,12 +72,16 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
#endif
temput = urlPath(tempfn, &tfn);
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch
new file mode 100644
index 000000000..f483f3ad9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm/rpmdb-prevent-race-in-tmpdir-creation.patch
@@ -0,0 +1,41 @@
+rpmdb: prevent race in tmpdir creation
+
+If two (or more) instances of rpm are running at the same time they may
+be trying to create the same (base-)temporary directory at the same time
+which causes the other mkdir to fail with EEXIST. This patch prevents a
+failure caused by this race by ignoring EEXIST error on directory
+creation.
+
+Upstream-Status: Pending
+
+Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
+
+diff --git a/rpmdb/signature.c b/rpmdb/signature.c
+index dce6c4e..100204b 100644
+--- a/rpmdb/signature.c
++++ b/rpmdb/signature.c
+@@ -37,6 +37,7 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
+ int temput;
+ FD_t fd = NULL;
+ unsigned int ran;
++ int ret = 0;
+
+ if (!prefix) prefix = "";
+
+@@ -44,8 +45,11 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
+ if (!_initialized) {
+ _initialized = 1;
+ tempfn = rpmGenPath(prefix, tpmacro, NULL);
+- if (rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1))
+- goto errxit;
++ ret = rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1);
++ if (ret && ret != EEXIST) {
++ rpmlog(RPMLOG_ERR, _("error creating temporary directory %s: %d\n"), tempfn, ret);
++ goto errxit;
++ }
+ }
+
+ /* XXX should probably use mkstemp here */
+--
+2.6.6
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb
deleted file mode 100644
index 0991f6d52..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4+cvs.bb
+++ /dev/null
@@ -1,730 +0,0 @@
-SUMMARY = "The RPM package management system"
-DESCRIPTION = "The RPM Package Manager (RPM) is a powerful command line driven \
-package management system capable of installing, uninstalling, \
-verifying, querying, and updating software packages. Each software \
-package consists of an archive of files along with information about \
-the package like its version, a description, etc."
-
-SUMMARY_${PN}-libs = "Libraries for manipulating RPM packages"
-DESCRIPTION_${PN}-libs = "This package contains the RPM shared libraries."
-
-SUMMARY_${PN}-dev = "Development files for manipulating RPM packages"
-DESCRIPTION_${PN}-dev = "This package contains the RPM C library and header files. These \
-development files will simplify the process of writing programs that \
-manipulate RPM packages and databases. These files are intended to \
-simplify the process of creating graphical package managers or any \
-other tools that need an intimate knowledge of RPM packages in order \
-to function."
-
-SUMMARY_${PN}-common = "Common RPM paths, scripts, documentation and configuration"
-DESCRIPTION_${PN}-common = "The rpm-common package contains paths, scripts, documentation \
-and configuration common between RPM Package Manager."
-
-SUMMARY_${PN}-build = "Scripts and executable programs used to build packages"
-DESCRIPTION_${PN}-build = "The rpm-build packagec ontains the scripts and executable programs \
-that are used to build packages using the RPM Package Manager."
-
-SUMMARY_python-rpm = "Python bindings for apps which will manupulate RPM packages"
-DESCRIPTION_python-rpm = "The rpm-python package contains a module that permits applications \
-written in the Python programming language to use the interface \
-supplied by the RPM Package Manager libraries."
-
-SUMMARY_perl-module-rpm = "Perl bindings for apps which will manipulate RPM packages"
-DESCRIPTION_perl-modules-rpm = "The perl-modules-rpm package contains a module that permits applications \
-written in the Perl programming language to use the interface \
-supplied by the RPM Package Manager libraries."
-
-HOMEPAGE = "http://rpm5.org/"
-LICENSE = "LGPLv2.1 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
-LIC_FILES_CHKSUM += "file://rpmio/mongo.c;begin=5;end=18;md5=d8327ba2c71664c059143e6d333b8901"
-
-# We must have gettext-native, we need gettextize, which may not be provided
-DEPENDS = "libpcre attr acl ossp-uuid file byacc-native gettext-native"
-DEPENDS_append_class-native = " file-replacement-native"
-
-# Apply various fixups that are unique to the CVS environment
-do_fixup_unpack () {
- # 'ln' isn't reliable, and 'mv' could break later builds
- rm -rf ${S}/syck ; cp -r ${WORKDIR}/syck ${S}/.
- rm -rf ${S}/lua ; cp -r ${WORKDIR}/lua ${S}/.
- rm -rf ${S}/popt ; cp -r ${WORKDIR}/popt ${S}/.
- rm -rf ${S}/beecrypt ; cp -r ${WORKDIR}/beecrypt ${S}/.
-}
-
-addtask fixup_unpack after do_unpack before do_patch
-
-# This recipe is really designed for development... to Try out the latest
-# community work in progress.
-DEFAULT_PREFERENCE = "-1"
-
-S = "${WORKDIR}/rpm"
-
-# rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed
-# in order to extract the distribution SRPM into a format we can extract...
-SRC_URI = "cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=rpm \
- cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=syck \
- cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=lua \
- cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=popt \
- cvs://anonymous@rpm5.org/cvs;tag=rpm-5_4;module=beecrypt \
- file://perfile_rpmdeps.sh \
- file://pythondeps.sh \
-"
-
-# Bug fixes
-SRC_URI += " \
- file://header-include-fix.patch \
- file://rpm-libsql-fix.patch \
- file://rpm-platform.patch \
- file://rpm-platform2.patch \
- file://rpm-tools-mtree-LDFLAGS.patch \
- file://rpm-canonarch.patch \
- file://rpm-no-loopmsg.patch \
- file://rpm-resolvedep.patch \
- file://rpm-packageorigin.patch \
- file://uclibc-support.patch \
- file://rpmatch.patch \
- file://makefile-am-exec-hook.patch \
- file://python-rpm-rpmsense.patch \
- file://debugedit-segv.patch \
- file://debugedit-valid-file-to-fix-segment-fault.patch \
- file://rpm-platform-file-fix.patch \
- file://rpm-lsb-compatibility.patch \
- file://rpm-tag-generate-endian-conversion-fix.patch \
- file://rpm-hardlink-segfault-fix.patch \
- file://rpm-payload-use-hashed-inode.patch \
- file://rpm-fix-logio-cp.patch \
- file://0001-using-poptParseArgvString-to-parse-the-_gpg_check_pa.patch \
- file://rpm-opendb-before-verifyscript-to-avoid-null-point.patch \
- file://0001-define-EM_AARCH64.patch \
- file://rpm-rpmfc.c-fix-for-N32-MIPS64.patch \
- file://rpm-lib-transaction.c-fix-file-conflicts-for-mips64-N32.patch \
- file://rpm-mongodb-sasl.patch \
- file://rpm-fix-parseEmbedded.patch \
- file://rpm-rpmio-headers.patch \
- file://rpm-python-restore-origin.patch \
- file://rpm-keccak-sse-intrin.patch \
- file://rpm-atomic-ops.patch \
- file://rpm-gnu-atomic.patch \
- file://rpm-tagname-type.patch \
- file://rpm-python-tagname.patch \
- file://rpm-python-AddErase.patch \
- file://rpm-rpmpgp-popt.patch \
- file://0001-Disable-__sync_add_and_fetch_8-on-nios2.patch \
-"
-
-# OE specific changes
-SRC_URI += " \
- file://rpm-log-auto-rm.patch \
- file://rpm-db-reduce.patch \
- file://rpm-autogen.patch \
- file://rpm-showrc.patch \
- file://rpm-fileclass.patch \
- file://rpm-scriptletexechelper.patch \
- file://rpmdeps-oecore.patch \
- file://rpm-no-perl-urpm.patch \
- file://rpm-macros.patch \
- file://rpm-lua.patch \
- file://rpm-ossp-uuid.patch \
- file://rpm-uuid-include.patch \
- file://rpm-pkgconfigdeps.patch \
- file://no-ldflags-in-pkgconfig.patch \
- file://dbconvert.patch \
- file://rpm-db_buffer_small.patch \
- file://rpm-py-init.patch \
- file://rpm-reloc-macros.patch \
- file://rpm-db5-or-db6.patch \
- file://rpm-db60.patch \
- file://rpmqv_cc_b_gone.patch \
- file://rpm-realpath.patch \
- file://rpm-check-rootpath-reasonableness.patch \
- file://rpm-macros.in-disable-external-key-server.patch \
- file://configure.ac-check-for-both-gpg2-and-gpg.patch \
- file://rpm-disable-auto-stack-protector.patch \
- file://popt-disable-auto-stack-protector.patch \
- file://rpm-syck-fix-gram.patch \
- file://rpm-rpmdb-grammar.patch \
- file://rpm-disable-blaketest.patch \
- file://rpm-autogen-force.patch \
-"
-
-SRC_URI_append_libc-musl = "\
- file://0001-rpm-Fix-build-on-musl.patch \
-"
-# Uncomment the following line to enable platform score debugging
-# This is useful when identifying issues with Smart being unable
-# to process certain package feeds.
-#SRC_URI += "file://rpm-debug-platform.patch"
-
-inherit autotools gettext
-
-acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
-
-# The local distribution macro directory
-distromacrodir = "${libdir}/rpm/poky"
-
-# Specify the default rpm macros in terms of adjustable variables
-rpm_macros = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:%{_etcrpm}/macros.*:%{_etcrpm}/macros:%{_etcrpm}/%{_target}/macros:~/.oerpmmacros"
-rpm_macros_class-native = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros"
-rpm_macros_class-nativesdk = "%{_usrlibrpm}/macros:%{_usrlibrpm}/${DISTRO}/macros:%{_usrlibrpm}/${DISTRO}/%{_target}/macros:~/.oerpmmacros"
-
-# sqlite lua tcl augeas nss gcrypt neon xz xar keyutils perl selinux
-
-# Set the digest algorithm used for verifying file integrity
-# If this value changes, and two different packages have different values
-# the "same file" validation (two packages have a non-conflict file)
-# will fail. This may lead to upgrade problems. You should treat this
-# value as a distribution wide setting, and only change it when you intend
-# a full system upgrade!
-#
-# Defined file digest algorithm values (note: not all are available!):
-# 1 MD5 (legacy RPM default)
-# 2 SHA1
-# 3 RIPEMD-160
-# 5 MD2
-# 6 TIGER-192
-# 8 SHA256
-# 9 SHA384
-# 10 SHA512
-# 11 SHA224
-# 104 MD4
-# 105 RIPEMD-128
-# 106 CRC-32
-# 107 ADLER-32
-# 108 CRC-64 (ECMA-182 polynomial, untested uint64_t problems)
-# 109 Jenkins lookup3.c hashlittle()
-# 111 RIPEMD-256
-# 112 RIPEMD-320
-# 188 BLAKE2B
-# 189 BLAKE2BP
-# 190 BLAKE2S
-# 191 BLAKE2SP
-RPM_FILE_DIGEST_ALGO ?= "1"
-
-# All packages build with RPM5 contain a non-repudiable signature.
-# The purpose of this signature is not to show authenticity of a package,
-# but instead act as a secondary package wide validation that shows it
-# wasn't damaged by accident in transport. (When later you sign the package,
-# this signature may or may not be replaced as there are three signature
-# slots, one for DSA/RSA, one for ECSDA, and one reserved.)
-#
-# There is a known issue w/ RSA signatures that if they start with an 0x00
-# the signing and validation may fail.
-#
-# The following is the list of choices for the non-rpudiable signature
-# (note: not all of these are implemented):
-# DSA (default)
-# RSA (implies SHA1)
-# ECDSA (implies SHA256)
-# DSA/SHA1
-# DSA/SHA224
-# DSA/SHA256
-# DSA/SHA384
-# DSA/SHA512
-# RSA/SHA1
-# RSA/SHA224
-# RSA/SHA256
-# RSA/SHA384
-# RSA/SHA512
-# ECDSA/SHA224 (using NIST P-224)
-# ECDSA/SHA256 (using NIST P-256)
-# ECDSA/SHA384 (using NIST P-384)
-# ECDSA/SHA512 (using NIST P-521)
-RPM_SELF_SIGN_ALGO ?= "DSA"
-
-# Note: perl and sqlite w/o db specified does not currently work.
-# tcl, augeas, nss, gcrypt, xar and keyutils support is untested.
-PACKAGECONFIG ??= "db bzip2 zlib popt openssl libelf python"
-
-# Note: switching to internal popt may not work, as it will generate
-# a shared library which will intentionally not be packaged.
-#
-# If you intend to use the internal version, additional work may be required.
-PACKAGECONFIG[popt] = "--with-popt=external,--with-popt=internal,popt,"
-
-PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2,"
-PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz,"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib,"
-PACKAGECONFIG[xar] = "--with-xar,--without-xar,xar,"
-
-WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \
- --with-python-inc-dir=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
- --with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \
- --without-pythonembed"
-PACKAGECONFIG[python] = "${WITH_PYTHON},--without-python,python,"
-
-# Perl modules are not built, but they could be enabled fairly easily
-# the perl module creation and installation would need to be patched.
-# (currently has host perl contamination issues)
-WITH_PERL = "--with-perl --without-perlembed --without-perl-urpm"
-WITHOUT_PERL = "--without-perl --without-perl-urpm"
-PACKAGECONFIG[perl] = "${WITH_PERL},${WITHOUT_PERL},perl,"
-
-# The --with-dbsql will only tell RPM to check for support, db
-# may or may not be built w/ the dbsql support.
-WITH_DB = "--with-db --with-dbsql --without-db-tools-integrated"
-PACKAGECONFIG[db] = "${WITH_DB},--without-db,db,"
-
-PACKAGECONFIG[sqlite] = "--with-sqlite,--without-sqlite,sqlite3,"
-
-# This switch simply disables external beecrypt, RPM5 always uses beecrypt
-# for base64 processing and various digest algorithms.
-# Beecrypt is only the preferred crypto engine if it's the only engine enabled.
-PACKAGECONFIG[beecrypt] = "--with-beecrypt=external,--with-beecrypt=internal,beecrypt,"
-
-# --with-usecrypto= setting defined the item as the preferred system
-# crypto engine, which will take priority over the included beecrypt
-PACKAGECONFIG[openssl] = "--with-openssl --with-usecrypto=openssl,--without-openssl,openssl,"
-PACKAGECONFIG[nss] = "--with-nss --with-usecrypto=nss,--without-nss,nss,"
-PACKAGECONFIG[gcrypt] = "--with-gcrypt --with-usecrypto=gcrypt,--without-gcrypt,gcrypt,"
-
-PACKAGECONFIG[keyutils] = "--with-keyutils,--without-keyutils,keyutils,"
-PACKAGECONFIG[libelf] = "--with-libelf,--without-libelf,elfutils,"
-
-WITH_SELINUX = "--with-selinux --with-sepol --with-semanage"
-WITHOUT_SELINUX = "--without-selinux --without-sepol --without-semanage"
-PACKAGECONFIG[selinux] = "${WITH_SELINUX},${WITHOUT_SELINUX},libselinux,"
-
-WITH_NEON = "--with-neon --with-libproxy --with-expat --without-gssapi"
-WITHOUT_NEON = "--without-neon --without-libproxy --without-expat --without-gssapi"
-PACKAGECONFIG[neon] = "${WITH_NEON},${WITHOUT_NEON},neon expat,"
-
-PACKAGECONFIG[lua] = "--with-lua,--without-lua,expat,"
-PACKAGECONFIG[tcl] = "--with-tcl,--without-tcl,tcl,"
-
-PACKAGECONFIG[augeas] = "--with-augeas,--without-augeas,augeas,"
-
-EXTRA_OECONF += "--verbose \
- --sysconfdir=${sysconfdir} \
- --with-file \
- --with-path-magic=%{_usrlibrpm}/../../share/misc/magic.mgc \
- --with-syck=internal \
- --without-readline \
- --without-libtasn1 \
- --without-pakchois \
- --without-gnutls \
- --with-pcre \
- --enable-utf8 \
- --with-uuid \
- --with-attr \
- --with-acl \
- --with-pthreads \
- --without-cudf \
- --without-ficl \
- --without-aterm \
- --without-nix \
- --without-bash \
- --without-rc \
- --without-js \
- --without-gpsee \
- --without-ruby \
- --without-squirrel \
- --without-sasl2 \
- --with-build-extlibdep \
- --with-build-maxextlibdep \
- --without-valgrind \
- --disable-openmp \
- --enable-build-pic \
- --enable-build-versionscript \
- --enable-build-warnings \
- --enable-build-debug \
- --enable-maintainer-mode \
- --with-path-macros=${rpm_macros} \
- --with-path-lib=${libdir}/rpm \
- --with-bugreport=http://bugzilla.yoctoproject.org \
- --program-prefix= \
- YACC=byacc"
-
-CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE"
-
-LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
-
-PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm perl-module-rpm ${PN}-locale"
-
-SOLIBS = "5.4.so"
-
-# Based on %files section in the rpm.spec
-
-FILES_${PN} = "${bindir}/rpm \
- ${bindir}/rpmconstant \
- ${libdir}/rpm/rpm.* \
- ${libdir}/rpm/tgpg \
- ${libdir}/rpm/macros \
- ${libdir}/rpm/rpmpopt \
- ${libdir}/rpm/rpm2cpio \
- ${libdir}/rpm/vcheck \
- ${libdir}/rpm/helpers \
- ${libdir}/rpm/qf \
- ${libdir}/rpm/cpuinfo.yaml \
- ${libdir}/rpm/bin/mtree \
- ${libdir}/rpm/bin/rpmkey \
- ${libdir}/rpm/bin/rpmrepo \
- ${libdir}/rpm/bin/rpmrepo.real \
- ${libdir}/rpm/bin/rpmspecdump \
- ${libdir}/rpm/bin/rpmspecdump.real \
- ${libdir}/rpm/bin/wget \
- ${localstatedir}/cache \
- ${localstatedir}/cache/rpm \
- ${localstatedir}/cache/wdj \
- ${localstatedir}/lib \
- ${localstatedir}/lib/rpm \
- ${localstatedir}/lib/wdj \
- ${bindir}/rpm.real \
- ${bindir}/rpmconstant.real \
- ${bindir}/rpm2cpio.real \
- "
-
-FILES_${PN}-common = "${bindir}/rpm2cpio \
- ${bindir}/gendiff \
- ${sysconfdir}/rpm \
- ${localstatedir}/spool/repackage \
- "
-
-FILES_${PN}-libs = "${libdir}/librpm-*.so \
- ${libdir}/librpmconstant-*.so \
- ${libdir}/librpmdb-*.so \
- ${libdir}/librpmio-*.so \
- ${libdir}/librpmmisc-*.so \
- ${libdir}/librpmbuild-*.so \
- "
-
-FILES_${PN}-build = "${prefix}/src/rpm \
- ${bindir}/rpmbuild \
- ${bindir}/rpmbuild.real \
- ${libdir}/rpm/brp-* \
- ${libdir}/rpm/check-files \
- ${libdir}/rpm/cross-build \
- ${libdir}/rpm/find-debuginfo.sh \
- ${libdir}/rpm/find-lang.sh \
- ${libdir}/rpm/find-prov.pl \
- ${libdir}/rpm/find-provides.perl \
- ${libdir}/rpm/find-req.pl \
- ${libdir}/rpm/find-requires.perl \
- ${libdir}/rpm/getpo.sh \
- ${libdir}/rpm/http.req \
- ${libdir}/rpm/javadeps.sh \
- ${libdir}/rpm/mono-find-provides \
- ${libdir}/rpm/mono-find-requires \
- ${libdir}/rpm/executabledeps.sh \
- ${libdir}/rpm/libtooldeps.sh \
- ${libdir}/rpm/osgideps.pl \
- ${libdir}/rpm/perldeps.pl \
- ${libdir}/rpm/perl.prov \
- ${libdir}/rpm/perl.req \
- ${libdir}/rpm/php.prov \
- ${libdir}/rpm/php.req \
- ${libdir}/rpm/pkgconfigdeps.sh \
- ${libdir}/rpm/pythondeps.sh \
- ${libdir}/rpm/bin/debugedit \
- ${libdir}/rpm/bin/debugedit.real \
- ${libdir}/rpm/bin/rpmcache \
- ${libdir}/rpm/bin/rpmcache.real \
- ${libdir}/rpm/bin/rpmcmp \
- ${libdir}/rpm/bin/rpmcmp.real \
- ${libdir}/rpm/bin/rpmdeps \
- ${libdir}/rpm/bin/rpmdeps.real \
- ${libdir}/rpm/bin/rpmdeps-oecore \
- ${libdir}/rpm/bin/rpmdeps-oecore.real \
- ${libdir}/rpm/bin/rpmdigest \
- ${libdir}/rpm/bin/rpmdigest.real \
- ${libdir}/rpm/bin/abi-compliance-checker.pl \
- ${libdir}/rpm/bin/api-sanity-autotest.pl \
- ${libdir}/rpm/bin/chroot \
- ${libdir}/rpm/bin/cp \
- ${libdir}/rpm/bin/dbsql \
- ${libdir}/rpm/bin/find \
- ${libdir}/rpm/bin/install-sh \
- ${libdir}/rpm/bin/lua \
- ${libdir}/rpm/bin/luac \
- ${libdir}/rpm/bin/mkinstalldirs \
- ${libdir}/rpm/bin/rpmlua \
- ${libdir}/rpm/bin/rpmluac \
- ${libdir}/rpm/bin/sqlite3 \
- ${libdir}/rpm/macros.d/cmake \
- ${libdir}/rpm/macros.d/java \
- ${libdir}/rpm/macros.d/libtool \
- ${libdir}/rpm/macros.d/mandriva \
- ${libdir}/rpm/macros.d/mono \
- ${libdir}/rpm/macros.d/perl \
- ${libdir}/rpm/macros.d/php \
- ${libdir}/rpm/macros.d/pkgconfig \
- ${libdir}/rpm/macros.d/python \
- ${libdir}/rpm/macros.d/ruby \
- ${libdir}/rpm/macros.d/selinux \
- ${libdir}/rpm/macros.d/tcl \
- ${libdir}/rpm/macros.rpmbuild \
- ${libdir}/rpm/u_pkg.sh \
- ${libdir}/rpm/vpkg-provides.sh \
- ${libdir}/rpm/vpkg-provides2.sh \
- ${libdir}/rpm/perfile_rpmdeps.sh \
- ${distromacrodir} \
- "
-RDEPENDS_${PN} = "base-files run-postinsts"
-RDEPENDS_${PN}_class-native = ""
-RDEPENDS_${PN}_class-nativesdk = ""
-RDEPENDS_${PN}-build = "file bash perl"
-
-RDEPENDS_python-rpm = "${PN} python"
-
-FILES_python-rpm = "${libdir}/python*/site-packages/rpm"
-PROVIDES += "python-rpm"
-
-FILES_perl-module-rpm = "${libdir}/perl/*/* \
- "
-
-RDEPENDS_${PN}-dev += "bash"
-
-FILES_${PN}-dev = "${includedir}/rpm \
- ${libdir}/librpm.la \
- ${libdir}/librpm.so \
- ${libdir}/librpmconstant.la \
- ${libdir}/librpmconstant.so \
- ${libdir}/librpmdb.la \
- ${libdir}/librpmdb.so \
- ${libdir}/librpmio.la \
- ${libdir}/librpmio.so \
- ${libdir}/librpmmisc.la \
- ${libdir}/librpmmisc.so \
- ${libdir}/librpmbuild.la \
- ${libdir}/librpmbuild.so \
- ${libdir}/rpm/lib/liblua.la \
- ${libdir}/pkgconfig/rpm.pc \
- ${libdir}/rpm/rpmdb_loadcvt \
- "
-
-FILES_${PN}-staticdev = " \
- ${libdir}/librpm.a \
- ${libdir}/librpmconstant.a \
- ${libdir}/librpmdb.a \
- ${libdir}/librpmio.a \
- ${libdir}/librpmmisc.a \
- ${libdir}/librpmbuild.a \
- ${libdir}/rpm/lib/liblua.a \
- ${libdir}/python*/site-packages/rpm/*.a \
- "
-
-do_configure() {
- # Disable tests!
- echo "all:" > ${S}/tests/Makefile.am
- sed -e 's/@__MKDIR_P@/%{__mkdir} -p/' -i ${S}/macros/macros.in
-
- ( cd ${S}; ${S}/autogen.sh )
-
- # NASTY hack to make sure configure files the right pkg-config file...
- sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g' \
- -e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i ${S}/configure
-
- ( cd ${S}/syck ; set +e ; rm -- -l* ; make distclean ) || :
-
- export varprefix=${localstatedir}
- oe_runconf
-}
-
-do_install_append() {
- # Configure -distribution wide- package crypto settings
- # If these change, effectively all packages have to be upgraded!
- sed -i -e 's,%_build_file_digest_algo.*,%_build_sign ${RPM_FILE_DIGEST_ALGO},' ${D}/${libdir}/rpm/macros.rpmbuild
- sed -i -e 's,%_build_sign.*,%_build_sign ${RPM_SELF_SIGN_ALGO},' ${D}/${libdir}/rpm/macros.rpmbuild
-
- sed -i -e 's,%__scriptlet_requires,#%%__scriptlet_requires,' ${D}/${libdir}/rpm/macros
- sed -i -e 's,%__perl_provides,#%%__perl_provides,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
- sed -i -e 's,%__perl_requires,#%%__perl_requires,' ${D}/${libdir}/rpm/macros ${D}/${libdir}/rpm/macros.d/*
- sed -i -e 's,%_repackage_all_erasures[^_].*,%_repackage_all_erasures 0,' ${D}/${libdir}/rpm/macros
- sed -i -e 's,^#%_openall_before_chroot.*,%_openall_before_chroot\t1,' ${D}/${libdir}/rpm/macros
-
- # Enable MIPS64 N32 transactions. (This is a no-op on non-MIPS targets.)
- sed -i -e 's,%_transaction_color[^_].*,%_transaction_color 7,' ${D}/${libdir}/rpm/macros
-
- # Enable Debian style arbitrary tags...
- sed -i -e 's,%_arbitrary_tags[^_].*,%_arbitrary_tags %{_arbitrary_tags_debian},' ${D}/${libdir}/rpm/macros
-
- install -m 0755 ${WORKDIR}/pythondeps.sh ${D}/${libdir}/rpm/pythondeps.sh
- install -m 0755 ${WORKDIR}/perfile_rpmdeps.sh ${D}/${libdir}/rpm/perfile_rpmdeps.sh
-
- # Remove unpackaged files (based on list in rpm.spec)
- rm -f ${D}/${libdir}/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req,trpm}
-
- rm -f ${D}/${mandir}/man8/rpmcache.8*
- rm -f ${D}/${mandir}/man8/rpmgraph.8*
- rm -f ${D}/${mandir}/*/man8/rpmcache.8*
- rm -f ${D}/${mandir}/*/man8/rpmgraph.8*
- rm -rf ${D}/${mandir}/{fr,ko}
-
- rm -f ${D}/${includedir}/popt.h
- rm -f ${D}/${libdir}/libpopt.*
- rm -f ${D}/${libdir}/pkgconfig/popt.pc
- rm -f ${D}/${datadir}/locale/*/LC_MESSAGES/popt.mo
- rm -f ${D}/${mandir}/man3/popt.3
-
- rm -f ${D}/${mandir}/man1/xar.1*
- rm -f ${D}/${bindir}/xar
- rm -rf ${D}/${includedir}/xar
- rm -f ${D}/${libdir}/libxar*
-
- rm -f ${D}/${bindir}/lz*
- rm -f ${D}/${bindir}/unlzma
- rm -f ${D}/${bindir}/unxz
- rm -f ${D}/${bindir}/xz*
- rm -rf ${D}/${includedir}/lzma*
- rm -f ${D}/${mandir}/man1/lz*.1
- rm -f ${D}/${libdir}/pkgconfig/liblzma*
-
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/*.a
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/*.la
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/rpm/*.a
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/rpm/*.la
-
- #find ${D}/${libdir}/perl5 -type f -a \( -name perllocal.pod -o -name .packlist \
- # -o \( -name '*.bs' -a -empty \) \) -exec rm -f {} ';'
- #find ${D}/${libdir}/perl5 -type d -depth -exec rmdir {} 2>/dev/null ';'
-
- rm -f ${D}/${libdir}/rpm/dbconvert.sh
-
- rm -f ${D}/${libdir}/rpm/libsqldb.*
-
- # We don't want, nor need the Mandriva multiarch items
- rm -f ${D}/${bindir}/multiarch-dispatch
- rm -f ${D}/${bindir}/multiarch-platform
- rm -f ${D}/${libdir}/rpm/check-multiarch-files
- rm -f ${D}/${libdir}/rpm/mkmultiarch
- rm -f ${D}/${includedir}/multiarch-dispatch.h
-
- rm -f ${D}/${libdir}/rpm/gstreamer.sh
- rm -f ${D}/${libdir}/rpm/gem_helper.rb
- rm -f ${D}/${libdir}/rpm/rubygems.rb
- rm -f ${D}/${libdir}/rpm/kmod-deps.sh
- rm -f ${D}/${libdir}/rpm/pythoneggs.py
- rm -f ${D}/${libdir}/rpm/macros.d/kernel
- rm -f ${D}/${libdir}/rpm/macros.d/gstreamer
- rm -f ${D}/${libdir}/rpm/bin/mgo
- rm -f ${D}/${libdir}/rpm/bin/dbconvert
- rm -f ${D}/${libdir}/rpm/bin/pom2spec
-
- rm -rf ${D}/var/lib/wdj ${D}/var/cache/wdj
- rm -f ${D}/${libdir}/rpm/bin/api-sanity-checker.pl
-
-}
-
-do_install_append_class-target() {
- # Create and install distribution specific macros
- mkdir -p ${D}/${distromacrodir}
- cat << EOF > ${D}/${distromacrodir}/macros
-%_defaultdocdir ${docdir}
-
-%_prefix ${prefix}
-%_exec_prefix ${exec_prefix}
-%_datarootdir ${datadir}
-%_bindir ${bindir}
-%_sbindir ${sbindir}
-%_libexecdir %{_libdir}/%{name}
-%_datadir ${datadir}
-%_sysconfdir ${sysconfdir}
-%_sharedstatedir ${sharedstatedir}
-%_localstatedir ${localstatedir}
-%_lib lib
-%_libdir %{_exec_prefix}/%{_lib}
-%_includedir ${includedir}
-%_oldincludedir ${oldincludedir}
-%_infodir ${infodir}
-%_mandir ${mandir}
-%_localedir %{_libdir}/locale
-EOF
-
- # Create and install multilib specific macros
- ${@multilib_rpmmacros(d)}
-}
-
-do_install_append_class-native () {
- sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env nativepython|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
-}
-
-do_install_append_class-nativesdk () {
- sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env python|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
-}
-
-def multilib_rpmmacros(d):
- localdata = d.createCopy()
- # We need to clear the TOOLCHAIN_OPTIONS (--sysroot)
- localdata.delVar('TOOLCHAIN_OPTIONS')
-
- # Set 'localdata' values to be consistent with 'd' values.
- localdata.setVar('distromacrodir', d.getVar('distromacrodir', True))
- localdata.setVar('WORKDIR', d.getVar('WORKDIR', True))
-
- ret = gen_arch_macro(localdata)
-
- variants = d.getVar("MULTILIB_VARIANTS", True) or ""
- for item in variants.split():
- # Load overrides from 'd' to avoid having to reset the value...
- localdata = d.createCopy()
- overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
- localdata.setVar("OVERRIDES", overrides)
- localdata.setVar("MLPREFIX", item + "-")
- bb.data.update_data(localdata)
- ret += gen_arch_macro(localdata)
- return ret
-
-def gen_arch_macro(d):
- # Generate shell script to produce the file as part of do_install
- val = "mkdir -p ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}\n"
- val += "cat << EOF > ${D}/${distromacrodir}/${TARGET_ARCH}-${TARGET_OS}/macros\n"
- val += "%_lib ${baselib}\n"
- val += "%_libdir ${libdir}\n"
- val += "%_localedir ${localedir}\n"
- val += "\n"
- val += "# Toolchain configuration\n"
- val += "%TOOLCHAIN_OPTIONS %{nil}\n"
- val += "%__ar ${@d.getVar('AR', True).replace('$','%')}\n"
- val += "%__as ${@d.getVar('AS', True).replace('$','%')}\n"
- val += "%__cc ${@d.getVar('CC', True).replace('$','%')}\n"
- val += "%__cpp ${@d.getVar('CPP', True).replace('$','%')}\n"
- val += "%__cxx ${@d.getVar('CXX', True).replace('$','%')}\n"
- val += "%__ld ${@d.getVar('LD', True).replace('$','%')}\n"
- val += "%__nm ${@d.getVar('NM', True).replace('$','%')}\n"
- val += "%__objcopy ${@d.getVar('OBJCOPY', True).replace('$','%')}\n"
- val += "%__objdump ${@d.getVar('OBJDUMP', True).replace('$','%')}\n"
- val += "%__ranlib ${@d.getVar('RANLIB', True).replace('$','%')}\n"
- val += "%__strip ${@d.getVar('STRIP', True).replace('$','%')}\n"
- val += "EOF\n"
- val += "\n"
- return d.expand(val)
-
-
-add_native_wrapper() {
- create_wrapper ${D}/${bindir}/rpm \
- RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
- RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
- RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
-
- create_wrapper ${D}/${bindir}/rpm2cpio \
- RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
- RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
- RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
-
- create_wrapper ${D}/${bindir}/rpmbuild \
- RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
- RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
- RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
-
- create_wrapper ${D}/${bindir}/rpmconstant \
- RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
- RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
- RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
-
- for rpm_binary in ${D}/${libdir}/rpm/bin/rpm* ${D}/${libdir}/rpm/bin/debugedit; do
- create_wrapper $rpm_binary \
- RPM_USRLIBRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('libdir', True), d.getVar('bindir', True))}/rpm \
- RPM_ETCRPM='$'{RPM_ETCRPM-'`dirname $''realpath`'/${@os.path.relpath(d.getVar('sysconfdir', True), d.getVar('bindir', True))}/rpm} \
- RPM_LOCALEDIRRPM='`dirname $''realpath`'/${@os.path.relpath(d.getVar('datadir', True), d.getVar('bindir', True))}/locale
- done
-}
-
-do_install_append_class-native() {
- add_native_wrapper
-}
-
-do_install_append_class-nativesdk() {
- add_native_wrapper
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4.16.bb b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4.16.bb
index f2c12d2de..133239712 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4.16.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rpm/rpm_5.4.16.bb
@@ -116,6 +116,9 @@ SRC_URI += " \
file://rpm-fix-lua-tests-compilation-failure.patch \
file://rpmqv.c-check-_gpg_passphrase-before-ask-for-input.patch \
file://0001-Disable-__sync_add_and_fetch_8-on-nios2.patch \
+ file://gcc6-stdlib.patch \
+ file://0001-system.h-query.c-support-nosignature.patch \
+ file://rpm-ensure-rpm2cpio-call-rpm-relocation-code.patch \
"
# OE specific changes
@@ -151,6 +154,7 @@ SRC_URI += " \
file://rpm-rpmdb-grammar.patch \
file://rpm-disable-blaketest.patch \
file://rpm-autogen-force.patch \
+ file://rpmdb-prevent-race-in-tmpdir-creation.patch \
file://rpmdb-more-verbose-error-logging-in-rpmTempFile.patch \
"
@@ -164,7 +168,7 @@ SRC_URI_append_libc-musl = "\
UPSTREAM_CHECK_REGEX = "rpm-(?P<pver>(\d+[\.\-_]*)+)-.*$"
-inherit autotools gettext
+inherit autotools gettext python-dir
acpaths = "-I ${S}/db/dist/aclocal -I ${S}/db/dist/aclocal_java"
@@ -257,7 +261,7 @@ PACKAGECONFIG[xar] = "--with-xar,--without-xar,xar,"
WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \
--with-python-inc-dir=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \
- --with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \
+ --with-python-lib-dir=${PYTHON_SITEPACKAGES_DIR} \
--without-pythonembed"
PACKAGECONFIG[python] = "${WITH_PYTHON},--without-python,python,"
@@ -344,7 +348,7 @@ EXTRA_OECONF += "--verbose \
--program-prefix= \
YACC=byacc"
-CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE"
+CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE -D_GLIBCXX_INCLUDE_NEXT_C_HEADERS"
LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
@@ -475,7 +479,7 @@ RDEPENDS_${PN}-build = "file bash perl"
RDEPENDS_python-rpm = "${PN} python"
-FILES_python-rpm = "${libdir}/python*/site-packages/rpm"
+FILES_python-rpm = "${PYTHON_SITEPACKAGES_DIR}/rpm"
PROVIDES += "python-rpm"
FILES_perl-module-rpm = "${libdir}/perl/*/* \
@@ -510,7 +514,7 @@ FILES_${PN}-staticdev = " \
${libdir}/librpmmisc.a \
${libdir}/librpmbuild.a \
${libdir}/rpm/lib/liblua.a \
- ${libdir}/python*/site-packages/rpm/*.a \
+ ${PYTHON_SITEPACKAGES_DIR}/rpm/*.a \
"
do_configure() {
@@ -524,7 +528,7 @@ do_configure() {
sed -e 's/pkg-config --exists uuid/pkg-config --exists ossp-uuid/g' \
-e 's/pkg-config uuid/pkg-config ossp-uuid/g' -i ${S}/configure
- ( cd ${S}/syck ; set +e ; rm -- -l* ; make distclean ) || :
+ ( cd ${S}/syck ; set +e ; rm -- -l* ; rm Makefile config.h config.status lib/Makefile libtool stamp-h1 tests/.deps tests/Makefile ) || :
export varprefix=${localstatedir}
oe_runconf
@@ -551,54 +555,20 @@ do_install_append() {
install -m 0755 ${WORKDIR}/pythondeps.sh ${D}/${libdir}/rpm/pythondeps.sh
install -m 0755 ${WORKDIR}/perfile_rpmdeps.sh ${D}/${libdir}/rpm/perfile_rpmdeps.sh
- # Remove unpackaged files (based on list in rpm.spec)
- rm -f ${D}/${libdir}/rpm/{Specfile.pm,cpanflute,cpanflute2,rpmdiff,rpmdiff.cgi,sql.prov,sql.req,tcl.req,trpm}
-
- rm -f ${D}/${mandir}/man8/rpmcache.8*
- rm -f ${D}/${mandir}/man8/rpmgraph.8*
- rm -f ${D}/${mandir}/*/man8/rpmcache.8*
- rm -f ${D}/${mandir}/*/man8/rpmgraph.8*
- rm -rf ${D}/${mandir}/{fr,ko}
-
rm -f ${D}/${includedir}/popt.h
rm -f ${D}/${libdir}/libpopt.*
rm -f ${D}/${libdir}/pkgconfig/popt.pc
rm -f ${D}/${datadir}/locale/*/LC_MESSAGES/popt.mo
rm -f ${D}/${mandir}/man3/popt.3
- rm -f ${D}/${mandir}/man1/xar.1*
- rm -f ${D}/${bindir}/xar
- rm -rf ${D}/${includedir}/xar
- rm -f ${D}/${libdir}/libxar*
-
- rm -f ${D}/${bindir}/lz*
- rm -f ${D}/${bindir}/unlzma
- rm -f ${D}/${bindir}/unxz
- rm -f ${D}/${bindir}/xz*
- rm -rf ${D}/${includedir}/lzma*
- rm -f ${D}/${mandir}/man1/lz*.1
- rm -f ${D}/${libdir}/pkgconfig/liblzma*
-
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/*.a
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/*.la
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/rpm/*.a
- rm -f ${D}/${libdir}/python%{with_python_version}/site-packages/rpm/*.la
-
- #find ${D}/${libdir}/perl5 -type f -a \( -name perllocal.pod -o -name .packlist \
- # -o \( -name '*.bs' -a -empty \) \) -exec rm -f {} ';'
- #find ${D}/${libdir}/perl5 -type d -depth -exec rmdir {} 2>/dev/null ';'
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/*.a
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/*.la
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/rpm/*.a
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/rpm/*.la
rm -f ${D}/${libdir}/rpm/dbconvert.sh
-
rm -f ${D}/${libdir}/rpm/libsqldb.*
- # We don't want, nor need the Mandriva multiarch items
- rm -f ${D}/${bindir}/multiarch-dispatch
- rm -f ${D}/${bindir}/multiarch-platform
- rm -f ${D}/${libdir}/rpm/check-multiarch-files
- rm -f ${D}/${libdir}/rpm/mkmultiarch
- rm -f ${D}/${includedir}/multiarch-dispatch.h
-
rm -f ${D}/${libdir}/rpm/gstreamer.sh
rm -f ${D}/${libdir}/rpm/gem_helper.rb
rm -f ${D}/${libdir}/rpm/rubygems.rb
@@ -607,12 +577,10 @@ do_install_append() {
rm -f ${D}/${libdir}/rpm/macros.d/kernel
rm -f ${D}/${libdir}/rpm/macros.d/gstreamer
rm -f ${D}/${libdir}/rpm/bin/mgo
- rm -f ${D}/${libdir}/rpm/bin/dbconvert
rm -f ${D}/${libdir}/rpm/bin/pom2spec
rm -rf ${D}/var/lib/wdj ${D}/var/cache/wdj
rm -f ${D}/${libdir}/rpm/bin/api-sanity-checker.pl
-
}
do_install_append_class-target() {
@@ -645,11 +613,11 @@ EOF
}
do_install_append_class-native () {
- sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env nativepython|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
+ sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env nativepython|' ${D}${PYTHON_SITEPACKAGES_DIR}/rpm/transaction.py
}
do_install_append_class-nativesdk () {
- sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env python|' ${D}/${libdir}/python2.7/site-packages/rpm/transaction.py
+ sed -i -e 's|^#!.*/usr/bin/python|#! /usr/bin/env python|' ${D}${PYTHON_SITEPACKAGES_DIR}/rpm/transaction.py
}
def multilib_rpmmacros(d):
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync.inc b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync.inc
index c65f27031..37897aba8 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync.inc
@@ -3,11 +3,6 @@ HOMEPAGE = "http://rsync.samba.org/"
BUGTRACKER = "http://rsync.samba.org/bugzilla.html"
SECTION = "console/network"
-# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0)
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-# needs to add acl and attr
DEPENDS = "popt"
SRC_URI = "http://rsync.samba.org/ftp/rsync/src/rsync-${PV}.tar.gz \
@@ -21,3 +16,5 @@ do_install_append() {
}
EXTRA_OEMAKE='STRIP=""'
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_2.6.9.bb b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_2.6.9.bb
index 6854c77f7..efdf255a0 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_2.6.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_2.6.9.bb
@@ -1,28 +1,15 @@
-SUMMARY = "File synchronization tool"
-HOMEPAGE = "http://rsync.samba.org/"
-BUGTRACKER = "http://rsync.samba.org/bugzilla.html"
-SECTION = "console/network"
+require rsync.inc
-# needs to add acl and attr
-DEPENDS = "popt"
-
-SRC_URI = "http://rsync.samba.org/ftp/rsync/src/rsync-${PV}.tar.gz \
- file://rsync-2.6.9-fname-obo.patch \
- file://rsyncd.conf"
+SRC_URI += "file://rsync-2.6.9-fname-obo.patch \
+ file://rsyncd.conf \
+"
SRC_URI[md5sum] = "996d8d8831dbca17910094e56dcb5942"
SRC_URI[sha256sum] = "ca437301becd890e73300bc69a39189ff1564baa761948ff149b3dd7bde633f9"
-inherit autotools
-
-do_install_append() {
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir}
-}
-
-EXTRA_OEMAKE='STRIP=""'
-
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=6d5a9d4c4d3af25cd68fd83e8a8cb09c"
PR = "r4"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_3.1.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_3.1.2.bb
index 9637ed4e7..c6cb3310f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_3.1.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/rsync/rsync_3.1.2.bb
@@ -5,7 +5,13 @@ SRC_URI += "file://makefile-no-rebuild.patch"
SRC_URI[md5sum] = "0f758d7e000c0f7f7d3792610fad70cb"
SRC_URI[sha256sum] = "ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2"
-PACKAGECONFIG ??= "acl attr"
+# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+PACKAGECONFIG ??= "acl attr \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
+"
PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl,"
PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr,"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby.inc b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby.inc
index 313e75222..fde67e940 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby.inc
@@ -20,7 +20,8 @@ DEPENDS_class-native = "openssl-native libyaml-native"
SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "http://cache.ruby-lang.org/pub/ruby/${SHRT_VER}/ruby-${PV}.tar.gz \
file://extmk.patch \
-"
+ file://0002-Obey-LDFLAGS-for-the-link-of-libruby.patch \
+ "
inherit autotools
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
new file mode 100644
index 000000000..b0114ba28
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby/0002-Obey-LDFLAGS-for-the-link-of-libruby.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Pending
+
+From 306e95a9818d39d3349075aac9609e062b0f19ce Mon Sep 17 00:00:00 2001
+From: Christopher Larson <chris_larson@mentor.com>
+Date: Thu, 5 May 2016 10:59:07 -0700
+Subject: [PATCH 2/2] Obey LDFLAGS for the link of libruby
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 7da2488..5b4aea1 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -75,7 +75,7 @@ EXTLIBS =
+ LIBS = @LIBS@ $(EXTLIBS)
+ MISSING = @LIBOBJS@ @ALLOCA@
+ LDSHARED = @LIBRUBY_LDSHARED@
+-DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
++DLDFLAGS = @LIBRUBY_DLDFLAGS@ @LDFLAGS@ $(XLDFLAGS) $(ARCH_FLAG)
+ SOLIBS = @SOLIBS@
+ MAINLIBS = @MAINLIBS@
+ ARCHMINIOBJS = @MINIOBJS@
+--
+2.8.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.2.bb b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.2.bb
deleted file mode 100644
index 671502356..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.2.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-require ruby.inc
-
-SRC_URI[md5sum] = "326e99ddc75381c7b50c85f7089f3260"
-SRC_URI[sha256sum] = "5ffc0f317e429e6b29d4a98ac521c3ce65481bfd22a8cf845fa02a7b113d9b44"
-
-# it's unknown to configure script, but then passed to extconf.rb
-# maybe it's not really needed as we're hardcoding the result with
-# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
-UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
-
-PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
-PACKAGECONFIG[gpm] = "--with-gmp=yes, --with-gmp=no, gmp"
-PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
-
-EXTRA_OECONF = "\
- --disable-versioned-paths \
- --disable-rpath \
- --disable-dtrace \
- --enable-shared \
- --enable-load-relative \
-"
-
-EXTRA_OEMAKE = " \
- LIBRUBYARG='-lruby-static' \
-"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
-
-PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
-
-SUMMARY_${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library"
-RDEPENDS_${PN}-ri-docs = "${PN}"
-FILES_${PN}-ri-docs += "${datadir}/ri"
-
-SUMMARY_${PN}-rdoc = "RDoc documentation generator from Ruby source"
-RDEPENDS_${PN}-rdoc = "${PN}"
-FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
-
-FILES_${PN} += "${datadir}/rubygems"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.5.bb b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.5.bb
new file mode 100644
index 000000000..5a645821b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/ruby/ruby_2.2.5.bb
@@ -0,0 +1,42 @@
+require ruby.inc
+
+SRC_URI[md5sum] = "bd8e349d4fb2c75d90817649674f94be"
+SRC_URI[sha256sum] = "30c4b31697a4ca4ea0c8db8ad30cf45e6690a0f09687e5d483c933c03ca335e3"
+
+# it's unknown to configure script, but then passed to extconf.rb
+# maybe it's not really needed as we're hardcoding the result with
+# 0001-socket-extconf-hardcode-wide-getaddr-info-test-outco.patch
+UNKNOWN_CONFIGURE_WHITELIST += "--enable-wide-getaddrinfo"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+
+PACKAGECONFIG[valgrind] = "--with-valgrind=yes, --with-valgrind=no, valgrind"
+PACKAGECONFIG[gpm] = "--with-gmp=yes, --with-gmp=no, gmp"
+PACKAGECONFIG[ipv6] = ",--enable-wide-getaddrinfo,"
+
+EXTRA_OECONF = "\
+ --disable-versioned-paths \
+ --disable-rpath \
+ --disable-dtrace \
+ --enable-shared \
+ --enable-load-relative \
+"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+PACKAGES =+ "${PN}-ri-docs ${PN}-rdoc"
+
+SUMMARY_${PN}-ri-docs = "ri (Ruby Interactive) documentation for the Ruby standard library"
+RDEPENDS_${PN}-ri-docs = "${PN}"
+FILES_${PN}-ri-docs += "${datadir}/ri"
+
+SUMMARY_${PN}-rdoc = "RDoc documentation generator from Ruby source"
+RDEPENDS_${PN}-rdoc = "${PN}"
+FILES_${PN}-rdoc += "${libdir}/ruby/*/rdoc ${bindir}/rdoc"
+
+FILES_${PN} += "${datadir}/rubygems"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts b/import-layers/yocto-poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
index 53a8e1db0..04ba3941b 100755
--- a/import-layers/yocto-poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
+++ b/import-layers/yocto-poky/meta/recipes-devtools/run-postinsts/run-postinsts/run-postinsts
@@ -6,7 +6,7 @@
#
# The following script will run all the scriptlets found in #SYSCONFDIR#/deb-postinsts,
-# #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-posinsts.
+# #SYSCONFDIR#/ipk-postinsts or #SYSCONFDIR#/rpm-postinsts.
# the order of this list is important, do not change!
backend_list="rpm deb ipk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
index 597536570..97b308a88 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/sgml-common/sgml-common-native_0.6.3.bb
@@ -22,8 +22,6 @@ S = "${WORKDIR}/sgml-common-${PV}"
SYSROOT_PREPROCESS_FUNCS += "sgml_common_native_mangle"
SSTATEPOSTINSTFUNCS += "sgml_common_sstate_postinst"
-CLEANFUNCS += "sgml_common_sstate_clean"
-
do_install_append() {
# install-catalog script contains hard-coded references to
@@ -59,13 +57,14 @@ sgml_common_sstate_postinst() {
fi
done
fi
- fi
-}
+ cat << EOF > ${SSTATE_INST_POSTRM}
+#!/bin/sh
-sgml_common_sstate_clean () {
- # Ensure that the catalog file sgml-docbook.cat is properly
- # updated when the package is removed from sstate cache.
- if [ -f ${sysconfdir}/sgml/sgml-docbook.cat ]; then
- sed -i '/\/sgml\/sgml-ent.cat/d' ${sysconfdir}/sgml/sgml-docbook.cat
+# Ensure that the catalog file sgml-docbook.cat is properly
+# updated when the package is removed from sstate cache.
+if [ -f ${sysconfdir}/sgml/sgml-docbook.cat ]; then
+ sed -i '/\/sgml\/sgml-ent.cat/d' ${sysconfdir}/sgml/sgml-docbook.cat
+fi
+EOF
fi
}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch
new file mode 100644
index 000000000..7f59210ca
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch
@@ -0,0 +1,36 @@
+From 1f0c22b79045cfcdc976643f383c1d09589d3087 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 16:23:56 +0000
+Subject: [PATCH] Fix build when using non-glibc libc implementation on ppc
+
+glibc includes the kernel header into its own header for macros
+musl does not
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ptrace.h | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/ptrace.h b/ptrace.h
+index d8af976..4978a69 100644
+--- a/ptrace.h
++++ b/ptrace.h
+@@ -52,7 +52,13 @@ extern long ptrace(int, int, char *, long);
+ # define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
+ #endif
+
+-#include <linux/ptrace.h>
++#if defined(POWERPC) && !defined(__GLIBC__)
++#define pt_regs uapi_pt_regs
++#endif
++# include <linux/ptrace.h>
++#if defined(POWERPC) && !defined(__GLIBC__)
++# undef pt_regs
++#endif
+
+ #ifdef HAVE_STRUCT_IA64_FPREG
+ # undef ia64_fpreg
+--
+1.8.3.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch
deleted file mode 100644
index aa61e15c8..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From f32126ba790dd4e61d43a2140b24f02426297bb6 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Thu, 31 Dec 2015 14:19:41 +0000
-Subject: [PATCH] Move gcc compat macros to gcc_compat.h
-
-* defs.h: Include "gcc_compat.h".
-(GNUC_PREREQ, ATTRIBUTE_NORETURN, ATTRIBUTE_FORMAT,
-ATTRIBUTE_ALIGNED, ATTRIBUTE_PACKED, ATTRIBUTE_MALLOC,
-ATTRIBUTE_NOINLINE, ATTRIBUTE_ALLOC_SIZE): Move ...
-* gcc_compat.h: ... here.
-* Makefile.am (strace_SOURCES): Add gcc_compat.h.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport
-
- Makefile.am | 1 +
- defs.h | 43 +----------------------------------
- gcc_compat.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 75 insertions(+), 42 deletions(-)
- create mode 100644 gcc_compat.h
-
-diff --git a/Makefile.am b/Makefile.am
-index ab52778..d43608d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -97,6 +97,7 @@ strace_SOURCES = \
- flock.c \
- flock.h \
- futex.c \
-+ gcc_compat.h \
- get_robust_list.c \
- getcpu.c \
- getcwd.c \
-diff --git a/defs.h b/defs.h
-index 283ab1f..bae212c 100644
---- a/defs.h
-+++ b/defs.h
-@@ -55,6 +55,7 @@
- #include <sys/syscall.h>
-
- #include "mpers_type.h"
-+#include "gcc_compat.h"
-
- #ifndef HAVE_STRERROR
- const char *strerror(int);
-@@ -68,48 +69,6 @@ const char *strerror(int);
- extern char *stpcpy(char *dst, const char *src);
- #endif
-
--#if defined __GNUC__ && defined __GNUC_MINOR__
--# define GNUC_PREREQ(maj, min) \
-- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
--#else
--# define __attribute__(x) /* empty */
--# define GNUC_PREREQ(maj, min) 0
--#endif
--
--#if GNUC_PREREQ(2, 5)
--# define ATTRIBUTE_NORETURN __attribute__((__noreturn__))
--#else
--# define ATTRIBUTE_NORETURN /* empty */
--#endif
--
--#if GNUC_PREREQ(2, 7)
--# define ATTRIBUTE_FORMAT(args) __attribute__((__format__ args))
--# define ATTRIBUTE_ALIGNED(arg) __attribute__((__aligned__(arg)))
--# define ATTRIBUTE_PACKED __attribute__((__packed__))
--#else
--# define ATTRIBUTE_FORMAT(args) /* empty */
--# define ATTRIBUTE_ALIGNED(arg) /* empty */
--# define ATTRIBUTE_PACKED /* empty */
--#endif
--
--#if GNUC_PREREQ(3, 0)
--# define ATTRIBUTE_MALLOC __attribute__((__malloc__))
--#else
--# define ATTRIBUTE_MALLOC /* empty */
--#endif
--
--#if GNUC_PREREQ(3, 1)
--# define ATTRIBUTE_NOINLINE __attribute__((__noinline__))
--#else
--# define ATTRIBUTE_NOINLINE /* empty */
--#endif
--
--#if GNUC_PREREQ(4, 3)
--# define ATTRIBUTE_ALLOC_SIZE(args) __attribute__((__alloc_size__ args))
--#else
--# define ATTRIBUTE_ALLOC_SIZE(args) /* empty */
--#endif
--
- #ifndef offsetof
- # define offsetof(type, member) \
- (((char *) &(((type *) NULL)->member)) - ((char *) (type *) NULL))
-diff --git a/gcc_compat.h b/gcc_compat.h
-new file mode 100644
-index 0000000..1f2c835
---- /dev/null
-+++ b/gcc_compat.h
-@@ -0,0 +1,73 @@
-+/*
-+ * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ * derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#ifndef GCC_COMPAT_H_
-+#define GCC_COMPAT_H_
-+
-+#if defined __GNUC__ && defined __GNUC_MINOR__
-+# define GNUC_PREREQ(maj, min) \
-+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-+#else
-+# define __attribute__(x) /* empty */
-+# define GNUC_PREREQ(maj, min) 0
-+#endif
-+
-+#if GNUC_PREREQ(2, 5)
-+# define ATTRIBUTE_NORETURN __attribute__((__noreturn__))
-+#else
-+# define ATTRIBUTE_NORETURN /* empty */
-+#endif
-+
-+#if GNUC_PREREQ(2, 7)
-+# define ATTRIBUTE_FORMAT(args) __attribute__((__format__ args))
-+# define ATTRIBUTE_ALIGNED(arg) __attribute__((__aligned__(arg)))
-+# define ATTRIBUTE_PACKED __attribute__((__packed__))
-+#else
-+# define ATTRIBUTE_FORMAT(args) /* empty */
-+# define ATTRIBUTE_ALIGNED(arg) /* empty */
-+# define ATTRIBUTE_PACKED /* empty */
-+#endif
-+
-+#if GNUC_PREREQ(3, 0)
-+# define ATTRIBUTE_MALLOC __attribute__((__malloc__))
-+#else
-+# define ATTRIBUTE_MALLOC /* empty */
-+#endif
-+
-+#if GNUC_PREREQ(3, 1)
-+# define ATTRIBUTE_NOINLINE __attribute__((__noinline__))
-+#else
-+# define ATTRIBUTE_NOINLINE /* empty */
-+#endif
-+
-+#if GNUC_PREREQ(4, 3)
-+# define ATTRIBUTE_ALLOC_SIZE(args) __attribute__((__alloc_size__ args))
-+#else
-+# define ATTRIBUTE_ALLOC_SIZE(args) /* empty */
-+#endif
-+
-+#endif
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch
deleted file mode 100644
index a9d32037b..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-arc-metag-nios2-or1k-tile-fix-build.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From dd1a80c8d213eed95fe55b7ebcb07ee165dd8e4b Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Thu, 24 Dec 2015 15:40:55 +0000
-Subject: [PATCH] arc, metag, nios2, or1k, tile: fix build
-
-Fix build regression introduced by commit
-34683e3926d8c2daa368afb805da422ee7043396.
-
-* linux/32/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap.
-* linux/arc/syscallent.h: Add sys_ prefix to ARCH_mmap and mmap_pgoff.
-* linux/nios2/syscallent.h: Likewise.
-* linux/or1k/syscallent.h: Likewise.
-* linux/tile/syscallent1.h: Add sys_ prefix to ARCH_mmap and sys_mmap_4koff.
-* pathtrace.c (pathtrace_match): Handle SEN_ARCH_mmap.
-* NEWS: Mention this build fix.
-
-Reported-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com>
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Backport
----
- NEWS | 3 +++
- linux/32/syscallent.h | 6 +++---
- linux/arc/syscallent.h | 2 +-
- linux/nios2/syscallent.h | 2 +-
- linux/or1k/syscallent.h | 2 +-
- linux/tile/syscallent1.h | 2 +-
- pathtrace.c | 1 +
- 7 files changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index fe40ca4..09263eb 100644
---- a/NEWS
-+++ b/NEWS
-@@ -1,3 +1,9 @@
-+Noteworthy changes in release ?.?? (????-??-??)
-+===============================================
-+
-+* Bug fixes
-+ * Fixed build on arc, metag, nios2, or1k, and tile architectures.
-+
- Noteworthy changes in release 4.11 (2015-12-21)
- ===============================================
-
-diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
-index 5f997e7..e6f895c 100644
---- a/linux/32/syscallent.h
-+++ b/linux/32/syscallent.h
-@@ -1,5 +1,5 @@
--#ifndef ARCH_mmap
--# define ARCH_mmap mmap
-+#ifndef sys_ARCH_mmap
-+# define sys_ARCH_mmap sys_mmap
- #endif
- [ 0] = { 2, 0, SEN(io_setup), "io_setup" },
- [ 1] = { 1, 0, SEN(io_destroy), "io_destroy" },
-@@ -276,5 +276,5 @@
- [283] = { 2, 0, SEN(membarrier), "membarrier", },
- [284] = { 3, TM, SEN(mlock2), "mlock2" },
-
--#undef ARCH_mmap
-+#undef sys_ARCH_mmap
- #undef ARCH_WANT_SYNC_FILE_RANGE2
-diff --git a/linux/arc/syscallent.h b/linux/arc/syscallent.h
-index 5847dc4..1100008 100644
---- a/linux/arc/syscallent.h
-+++ b/linux/arc/syscallent.h
-@@ -1,4 +1,4 @@
--#define ARCH_mmap mmap_pgoff
-+#define sys_ARCH_mmap sys_mmap_pgoff
- #include "32/syscallent.h"
- [244] = { 3, 0, SEN(printargs), "arc_cacheflush"},
- [245] = { 1, 0, SEN(printargs), "arc_settls" },
-diff --git a/linux/nios2/syscallent.h b/linux/nios2/syscallent.h
-index 8a4b70e..01efe3a 100644
---- a/linux/nios2/syscallent.h
-+++ b/linux/nios2/syscallent.h
-@@ -1,4 +1,4 @@
--#define ARCH_mmap mmap_pgoff
-+#define sys_ARCH_mmap sys_mmap_pgoff
- #include "32/syscallent.h"
- [244] = {4, 0, SEN(cacheflush), "cacheflush"},
- [245 ... 259] = { },
-diff --git a/linux/or1k/syscallent.h b/linux/or1k/syscallent.h
-index ed84b3b..351fe25 100644
---- a/linux/or1k/syscallent.h
-+++ b/linux/or1k/syscallent.h
-@@ -1,4 +1,4 @@
--#define ARCH_mmap mmap_pgoff
-+#define sys_ARCH_mmap sys_mmap_pgoff
- #include "32/syscallent.h"
- [244] = { 3, NF, SEN(or1k_atomic), "or1k_atomic" },
- [245 ... 259] = { },
-diff --git a/linux/tile/syscallent1.h b/linux/tile/syscallent1.h
-index c86f059..28dbab4 100644
---- a/linux/tile/syscallent1.h
-+++ b/linux/tile/syscallent1.h
-@@ -1,4 +1,4 @@
--#define ARCH_mmap mmap_4koff
-+#define sys_ARCH_mmap sys_mmap_4koff
- #define ARCH_WANT_SYNC_FILE_RANGE2 1
- #include "32/syscallent.h"
- [244] = { 1, 0, SEN(printargs), "cmpxchg_badaddr" },
-diff --git a/pathtrace.c b/pathtrace.c
-index d530ec2..e72cdf7 100644
---- a/pathtrace.c
-+++ b/pathtrace.c
-@@ -216,6 +216,7 @@ pathtrace_match(struct tcb *tcp)
- case SEN_mmap:
- case SEN_mmap_4koff:
- case SEN_mmap_pgoff:
-+ case SEN_ARCH_mmap:
- /* x, x, x, x, fd */
- return fdmatch(tcp, tcp->u_arg[4]);
-
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch
deleted file mode 100644
index c4e645b81..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 3fdcdd47c6a67585123a0a0c8fffabcc9f79a3a2 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Tue, 12 Jan 2016 14:47:12 +0000
-Subject: [PATCH] scm_rights-fd.test: rewrite without fork
-
-* tests/scm_rights.c (main): Rewrite without fork.
-Place all objects passed to sendmsg and recvmsg at the end
-of memory pages followed by inaccessible pages.
-* tests/scm_rights-fd.test: Update.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport
-
- tests/scm_rights-fd.test | 12 ++---
- tests/scm_rights.c | 122 ++++++++++++++++++++++-------------------------
- 2 files changed, 63 insertions(+), 71 deletions(-)
-
-diff --git a/tests/scm_rights-fd.test b/tests/scm_rights-fd.test
-index a32ef36..48c5028 100755
---- a/tests/scm_rights-fd.test
-+++ b/tests/scm_rights-fd.test
-@@ -49,18 +49,18 @@ touch -- "$file" ||
- framework_skip_ 'failed to create a file'
-
- run_prog ./scm_rights /dev/zero
--run_strace_merge -y -x -enetwork $args "$file"
-+run_strace -y -x -enetwork $args "$file"
-
-+sample='\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff'
- n='[1-9][0-9]*'
--msg='\{msg_name\(0\)=NULL, msg_iov\(1\)=\[\{"\\x00\\x00\\x00\\x00[^"]*", '"$n"'\}\], msg_controllen='"$n"
--rights='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, \[3</dev/null>, 4</dev/zero>, 5</[^}>]*/(A\\n){127}Z>\]\}'
-+msg='\{msg_name\(0\)=NULL, msg_iov\(1\)=\[\{"'"$sample"'", 15\}\], msg_controllen='"$n"
-+rights='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, \[4</dev/null>, 5</dev/zero>, 6</[^}>]*/(A\\n){127}Z>\]\}'
- creds='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, \{pid='"$n"', uid=[0-9]+, gid=[0-9]+\}\}'
--prefix='[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +'
- EXPECTED="$LOG.expected"
-
- cat > "$EXPECTED" << __EOF__
--${prefix}sendmsg\\(1<socket:\\[[0-9]+\\]>, $msg, \\[$rights\\], msg_flags=0\\}, 0\\) += $n
--${prefix}recvmsg\\(0<socket:\\[[0-9]+\\]>, $msg, \\[$creds, $rights\\], msg_flags=0\\}, 0\\) += $n
-+sendmsg\\(3<socket:\\[[0-9]+\\]>, $msg, \\[$rights\\], msg_flags=0\\}, 0\\) = 15
-+recvmsg\\(0<socket:\\[[0-9]+\\]>, $msg, \\[$creds, $rights\\], msg_flags=0\\}, 0\\) = 15
- __EOF__
-
- match_grep "$LOG" "$EXPECTED"
-diff --git a/tests/scm_rights.c b/tests/scm_rights.c
-index 1e5e850..00af4d5 100644
---- a/tests/scm_rights.c
-+++ b/tests/scm_rights.c
-@@ -27,26 +27,39 @@
-
- #include "tests.h"
- #include <assert.h>
--#include <string.h>
--#include <stdlib.h>
--#include <unistd.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
- #include <sys/socket.h>
--#include <sys/wait.h>
-
- int main(int ac, const char **av)
- {
-- int i;
-- int data = 0;
-- struct iovec iov = {
-- .iov_base = &data,
-- .iov_len = sizeof(iov)
-- };
-+ assert(ac > 0);
-+ int fds[ac];
-+
-+ static const char sample[] =
-+ "\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
-+ const unsigned int data_size = sizeof(sample) - 1;
-+ void *data = tail_alloc(data_size);
-+ memcpy(data, sample, data_size);
-+
-+ struct iovec *iov = tail_alloc(sizeof(struct iovec));
-+ iov->iov_base = data;
-+ iov->iov_len = data_size;
-
-- while ((i = open("/dev/null", O_RDWR)) < 3)
-+ struct msghdr *mh = tail_alloc(sizeof(struct msghdr));
-+ memset(mh, 0, sizeof(*mh));
-+ mh->msg_iov = iov;
-+ mh->msg_iovlen = 1;
-+
-+ int i;
-+ while ((i = open("/dev/null", O_RDWR)) <= ac + 2)
- assert(i >= 0);
-- (void) close(3);
-+ while (i > 2)
-+ assert(close(i--) == 0);
-+ assert(close(0) == 0);
-
- int sv[2];
- if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
-@@ -55,60 +68,39 @@ int main(int ac, const char **av)
- if (setsockopt(sv[0], SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)))
- perror_msg_and_skip("setsockopt");
-
-- pid_t pid = fork();
-- if (pid < 0)
-- perror_msg_and_fail("fork");
--
-- if (pid) {
-- assert(close(sv[0]) == 0);
-- assert(dup2(sv[1], 1) == 1);
-- assert(close(sv[1]) == 0);
--
-- int fds[ac];
-- assert((fds[0] = open("/dev/null", O_RDWR)) == 3);
-- for (i = 1; i < ac; ++i)
-- assert((fds[i] = open(av[i], O_RDONLY)) == i + 3);
--
-- union {
-- struct cmsghdr cmsg;
-- char buf[CMSG_LEN(sizeof(fds))];
-- } control;
--
-- control.cmsg.cmsg_level = SOL_SOCKET;
-- control.cmsg.cmsg_type = SCM_RIGHTS;
-- control.cmsg.cmsg_len = CMSG_LEN(sizeof(fds));
-- memcpy(CMSG_DATA(&control.cmsg), fds, sizeof(fds));
--
-- struct msghdr mh = {
-- .msg_iov = &iov,
-- .msg_iovlen = 1,
-- .msg_control = &control,
-- .msg_controllen = sizeof(control)
-- };
--
-- assert(sendmsg(1, &mh, 0) == sizeof(iov));
-- assert(close(1) == 0);
--
-- int status;
-- assert(waitpid(pid, &status, 0) == pid);
-- assert(status == 0);
-- } else {
-- assert(close(sv[1]) == 0);
-- assert(dup2(sv[0], 0) == 0);
-- assert(close(sv[0]) == 0);
--
-- struct cmsghdr control[4 + ac * sizeof(int) / sizeof(struct cmsghdr)];
--
-- struct msghdr mh = {
-- .msg_iov = &iov,
-- .msg_iovlen = 1,
-- .msg_control = control,
-- .msg_controllen = sizeof(control)
-- };
--
-- assert(recvmsg(0, &mh, 0) == sizeof(iov));
-- assert(close(0) == 0);
-+ assert((fds[0] = open("/dev/null", O_RDWR)) == 4);
-+ for (i = 1; i < ac; ++i)
-+ assert((fds[i] = open(av[i], O_RDONLY)) == i + 4);
-+
-+ unsigned int cmsg_size = CMSG_SPACE(sizeof(fds));
-+ struct cmsghdr *cmsg = tail_alloc(cmsg_size);
-+ memset(cmsg, 0, cmsg_size);
-+ cmsg->cmsg_level = SOL_SOCKET;
-+ cmsg->cmsg_type = SCM_RIGHTS;
-+ cmsg->cmsg_len = CMSG_LEN(sizeof(fds));
-+ memcpy(CMSG_DATA(cmsg), fds, sizeof(fds));
-+
-+ mh->msg_control = cmsg;
-+ mh->msg_controllen = cmsg_size;
-+
-+ assert(sendmsg(sv[1], mh, 0) == (int) data_size);
-+
-+ assert(close(sv[1]) == 0);
-+ assert(open("/dev/null", O_RDWR) == sv[1]);
-+
-+ for (i = 0; i < ac; ++i) {
-+ assert(close(fds[i]) == 0);
-+ fds[i] = 0;
- }
-
-+ cmsg_size += CMSG_SPACE(sizeof(struct ucred));
-+ cmsg = tail_alloc(cmsg_size);
-+ memset(cmsg, 0, cmsg_size);
-+ mh->msg_control = cmsg;
-+ mh->msg_controllen = cmsg_size;
-+
-+ assert(recvmsg(0, mh, 0) == (int) data_size);
-+ assert(close(0) == 0);
-+
- return 0;
- }
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-introduce-libtests.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-introduce-libtests.patch
deleted file mode 100644
index 1575ecd22..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-introduce-libtests.patch
+++ /dev/null
@@ -1,306 +0,0 @@
-From 87e6b230fff800eb768b68b2e5173ebbe83fd3ef Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Sat, 2 Jan 2016 12:05:14 +0000
-Subject: [PATCH] tests: introduce libtests
-
-Introduce tests/libtests.a with common functions for use in tests.
-
-* tests/tests.h: New file.
-* tests/error_msg.c: Likewise.
-* tests/tail_alloc.c: Likewise.
-* tests/get_page_size.c: Likewise.
-* tests/Makefile.am (libtests_a_SOURCES, libtests_a_CPPFLAGS,
-check_LIBRARIES, LDADD): New variables.
-(clock_xettime_LDADD, filter_unavailable_LDADD, mq_LDADD,
-pc_LDADD, times_LDADD): Add $(LDADD).
-* tests/.gitignore: Add libtests.a.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport
-
- tests/.gitignore | 1 +
- tests/Makefile.am | 20 ++++++++++----
- tests/error_msg.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
- tests/get_page_size.c | 13 +++++++++
- tests/tail_alloc.c | 52 ++++++++++++++++++++++++++++++++++++
- tests/tests.h | 62 ++++++++++++++++++++++++++++++++++++++++++
- 6 files changed, 217 insertions(+), 5 deletions(-)
- create mode 100644 tests/error_msg.c
- create mode 100644 tests/get_page_size.c
- create mode 100644 tests/tail_alloc.c
- create mode 100644 tests/tests.h
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 386a2c2..62d0e56 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -40,6 +40,16 @@ AM_CPPFLAGS = $(ARCH_MFLAGS) \
- -I$(top_srcdir)
- AM_LDFLAGS = $(ARCH_MFLAGS)
-
-+libtests_a_SOURCES = \
-+ get_page_size.c \
-+ error_msg.c \
-+ tail_alloc.c \
-+ tests.h \
-+ # end of libtests_a_SOURCES
-+libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-+check_LIBRARIES = libtests.a
-+LDADD = libtests.a
-+
- check_PROGRAMS = \
- _newselect \
- adjtimex \
-@@ -146,19 +156,19 @@ check_PROGRAMS = \
- xettimeofday \
- # end of check_PROGRAMS
-
--clock_xettime_LDADD = -lrt
--filter_unavailable_LDADD = -lpthread
-+clock_xettime_LDADD = -lrt $(LDADD)
-+filter_unavailable_LDADD = -lpthread $(LDADD)
- fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
--mq_LDADD = -lrt
-+mq_LDADD = -lrt $(LDADD)
- newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
--pc_LDADD = $(dl_LIBS)
-+pc_LDADD = $(dl_LIBS) $(LDADD)
- stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
--times_LDADD = -lrt
-+times_LDADD = -lrt $(LDADD)
- truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
- stack_fcall_SOURCES = stack-fcall.c \
-diff --git a/tests/error_msg.c b/tests/error_msg.c
-new file mode 100644
-index 0000000..3fd3411
---- /dev/null
-+++ b/tests/error_msg.c
-@@ -0,0 +1,74 @@
-+/*
-+ * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ * derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include "tests.h"
-+#include <errno.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+
-+void
-+perror_msg_and_fail(const char *fmt, ...)
-+{
-+ int err_no = errno;
-+ va_list p;
-+
-+ va_start(p, fmt);
-+ vfprintf(stderr, fmt, p);
-+ if (err_no)
-+ fprintf(stderr, ": %s\n", strerror(err_no));
-+ else
-+ putc('\n', stderr);
-+ exit(1);
-+}
-+
-+void
-+error_msg_and_skip(const char *fmt, ...)
-+{
-+ va_list p;
-+
-+ va_start(p, fmt);
-+ vfprintf(stderr, fmt, p);
-+ putc('\n', stderr);
-+ exit(77);
-+}
-+
-+void
-+perror_msg_and_skip(const char *fmt, ...)
-+{
-+ int err_no = errno;
-+ va_list p;
-+
-+ va_start(p, fmt);
-+ vfprintf(stderr, fmt, p);
-+ if (err_no)
-+ fprintf(stderr, ": %s\n", strerror(err_no));
-+ else
-+ putc('\n', stderr);
-+ exit(77);
-+}
-diff --git a/tests/get_page_size.c b/tests/get_page_size.c
-new file mode 100644
-index 0000000..aeea861
---- /dev/null
-+++ b/tests/get_page_size.c
-@@ -0,0 +1,13 @@
-+#include "tests.h"
-+#include <unistd.h>
-+
-+size_t
-+get_page_size(void)
-+{
-+ static size_t page_size;
-+
-+ if (!page_size)
-+ page_size = sysconf(_SC_PAGESIZE);
-+
-+ return page_size;
-+}
-diff --git a/tests/tail_alloc.c b/tests/tail_alloc.c
-new file mode 100644
-index 0000000..2b8b14e
---- /dev/null
-+++ b/tests/tail_alloc.c
-@@ -0,0 +1,52 @@
-+/*
-+ * Copyright (c) 2015-2016 Dmitry V. Levin <ldv@altlinux.org>
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ * derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include "tests.h"
-+#include <string.h>
-+#include <sys/mman.h>
-+
-+void *
-+tail_alloc(const size_t size)
-+{
-+ const size_t page_size = get_page_size();
-+ const size_t len = (size + page_size - 1) & -page_size;
-+ const size_t alloc_size = len + 2 * page_size;
-+
-+ void *p = mmap(NULL, alloc_size, PROT_READ | PROT_WRITE,
-+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-+ if (MAP_FAILED == p)
-+ perror_msg_and_fail("mmap(%zu)", alloc_size);
-+
-+ void *start_work = p + page_size;
-+ void *tail_guard = start_work + len;
-+
-+ if (munmap(p, page_size) || munmap(tail_guard, page_size))
-+ perror_msg_and_fail("munmap");
-+
-+ memset(start_work, 0xff, len);
-+ return tail_guard - size;
-+}
-diff --git a/tests/tests.h b/tests/tests.h
-new file mode 100644
-index 0000000..91fa24e
---- /dev/null
-+++ b/tests/tests.h
-@@ -0,0 +1,62 @@
-+/*
-+ * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ * derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#ifndef TESTS_H_
-+# define TESTS_H_
-+
-+# ifdef HAVE_CONFIG_H
-+# include "config.h"
-+# endif
-+
-+# include <sys/types.h>
-+# include "gcc_compat.h"
-+
-+/* Cached sysconf(_SC_PAGESIZE). */
-+size_t get_page_size(void);
-+
-+/* Print message and strerror(errno) to stderr, then exit(1). */
-+void perror_msg_and_fail(const char *, ...)
-+ ATTRIBUTE_FORMAT((printf, 1, 2)) ATTRIBUTE_NORETURN;
-+/* Print message to stderr, then exit(77). */
-+void error_msg_and_skip(const char *, ...)
-+ ATTRIBUTE_FORMAT((printf, 1, 2)) ATTRIBUTE_NORETURN;
-+/* Print message and strerror(errno) to stderr, then exit(77). */
-+void perror_msg_and_skip(const char *, ...)
-+ ATTRIBUTE_FORMAT((printf, 1, 2)) ATTRIBUTE_NORETURN;
-+
-+/*
-+ * Allocate memory that ends on the page boundary.
-+ * Pages allocated by this call are preceeded by an unmapped page
-+ * and followed also by an unmapped page.
-+ */
-+void *tail_alloc(const size_t)
-+ ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((1));
-+
-+# define SKIP_MAIN_UNDEFINED(arg) \
-+ int main(void) { error_msg_and_skip("undefined: %s", arg); }
-+
-+#endif
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-scm_rights.c-use-libtests.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-scm_rights.c-use-libtests.patch
deleted file mode 100644
index 3fbab8b66..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/0001-tests-scm_rights.c-use-libtests.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 339a15b619b479c63cafba21d5fc359e613d9ee8 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Mon, 4 Jan 2016 23:53:31 +0000
-Subject: [PATCH] tests/scm_rights.c: use libtests
-
-* tests/scm_rights.c (main): Use perror_msg_and_fail and perror_msg_and_skip.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport
-
- tests/scm_rights.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/tests/scm_rights.c b/tests/scm_rights.c
-index c41444f..1e5e850 100644
---- a/tests/scm_rights.c
-+++ b/tests/scm_rights.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
-+ * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
-@@ -25,6 +25,7 @@
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#include "tests.h"
- #include <assert.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -48,12 +49,15 @@ int main(int ac, const char **av)
- (void) close(3);
-
- int sv[2];
-- assert(socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == 0);
-+ if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
-+ perror_msg_and_skip("socketpair");
- int one = 1;
-- assert(setsockopt(sv[0], SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)) == 0);
-+ if (setsockopt(sv[0], SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)))
-+ perror_msg_and_skip("setsockopt");
-
- pid_t pid = fork();
-- assert(pid >= 0);
-+ if (pid < 0)
-+ perror_msg_and_fail("fork");
-
- if (pid) {
- assert(close(sv[0]) == 0);
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/Makefile-ptest.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
index 824031e86..2b76e8a11 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/Makefile-ptest.patch
@@ -10,23 +10,22 @@ Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 0209bac..b969e25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,7 +36,7 @@ AC_INIT([strace],
AC_CONFIG_SRCDIR([strace.c])
AC_CONFIG_AUX_DIR([.])
AC_CONFIG_HEADERS([config.h])
--AM_INIT_AUTOMAKE([foreign nostdinc dist-xz no-dist-gzip silent-rules parallel-tests])
-+AM_INIT_AUTOMAKE([foreign nostdinc dist-xz no-dist-gzip silent-rules serial-tests])
+-AM_INIT_AUTOMAKE([foreign nostdinc dist-xz silent-rules parallel-tests])
++AM_INIT_AUTOMAKE([foreign nostdinc dist-xz silent-rules serial-tests])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 0f23b4b..429f7e9 100644
+index 9023029..e1917fa 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
-@@ -332,3 +332,21 @@ ksysent.h: $(srcdir)/ksysent.sed
+@@ -784,3 +784,21 @@ ksysent.h: $(srcdir)/ksysent.sed
BUILT_SOURCES = ksysent.h
CLEANFILES = ksysent.h $(TESTS:=.tmp)
@@ -48,6 +47,3 @@ index 0f23b4b..429f7e9 100644
+ sed -i -e 's/$${srcdir=.}/./g' $(DESTDIR)/$(TESTDIR)/$$file; \
+ done
+ for i in net net-fd scm_rights-fd sigaction; do sed -i -e 's/$$srcdir/./g' $(DESTDIR)/$(TESTDIR)/$$i.test; done
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch
new file mode 100644
index 000000000..b24378bfe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/mips-SIGEMT.patch
@@ -0,0 +1,24 @@
+SIGEMT is not defined everywhere e.g musl does
+not define it. Therefore check it being defined
+before using it.
+
+Fixes errors e.g.
+../../strace-4.13/tests/signal2name.c:45:7: error: 'SIGEMT' undeclared (first use in this function)
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: strace-4.13/tests/signal2name.c
+===================================================================
+--- strace-4.13.orig/tests/signal2name.c
++++ strace-4.13/tests/signal2name.c
+@@ -42,7 +42,9 @@ signal2name(int sig)
+ CASE(SIGEMT);
+ CASE(SIGLOST);
+ #elif defined MIPS
++#ifdef SIGEMT
+ CASE(SIGEMT);
++#endif
+ CASE(SIGIOT);
+ CASE(SIGPWR);
+ #else
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/update-gawk-paths.patch b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
index bfc7f3441..94ee53c7f 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace/update-gawk-paths.patch
@@ -12,19 +12,20 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
---
- mpers.awk | 2 +-
- tests/caps.awk | 2 +-
- tests/match.awk | 2 +-
- tests/net-yy-accept.awk | 2 +-
- tests/net-yy-connect.awk | 2 +-
- tests/sigaction.awk | 2 +-
- tests/uid.awk | 2 +-
- tests/unix-yy-accept.awk | 2 +-
- tests/unix-yy-connect.awk | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
+ mpers.awk | 2 +-
+ tests-m32/caps.awk | 2 +-
+ tests-m32/match.awk | 2 +-
+ tests-m32/sigaction.awk | 2 +-
+ tests-mx32/caps.awk | 2 +-
+ tests-mx32/match.awk | 2 +-
+ tests-mx32/sigaction.awk | 2 +-
+ tests/caps.awk | 2 +-
+ tests/match.awk | 2 +-
+ tests/sigaction.awk | 2 +-
+ 10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/mpers.awk b/mpers.awk
-index 73bf0b0..50e6c16 100644
+index 99248c5..ff10520 100644
--- a/mpers.awk
+++ b/mpers.awk
@@ -1,4 +1,4 @@
@@ -32,87 +33,94 @@ index 73bf0b0..50e6c16 100644
+#!/usr/bin/gawk
#
# Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
- # Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
-diff --git a/tests/caps.awk b/tests/caps.awk
-index bad8b0f..845f37c 100644
---- a/tests/caps.awk
-+++ b/tests/caps.awk
+ # Copyright (c) 2015-2016 Dmitry V. Levin <ldv@altlinux.org>
+diff --git a/tests-m32/caps.awk b/tests-m32/caps.awk
+index 67003ac..a66f1f0 100644
+--- a/tests-m32/caps.awk
++++ b/tests-m32/caps.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
- # Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
- # All rights reserved.
-diff --git a/tests/match.awk b/tests/match.awk
+ # This file is part of caps strace test.
+ #
+diff --git a/tests-m32/match.awk b/tests-m32/match.awk
index abfbae9..f2740bf 100644
---- a/tests/match.awk
-+++ b/tests/match.awk
+--- a/tests-m32/match.awk
++++ b/tests-m32/match.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
# All rights reserved.
-diff --git a/tests/net-yy-accept.awk b/tests/net-yy-accept.awk
-index fed3e30..e916ab0 100644
---- a/tests/net-yy-accept.awk
-+++ b/tests/net-yy-accept.awk
+diff --git a/tests-m32/sigaction.awk b/tests-m32/sigaction.awk
+index 5c6b6d0..3e14464 100644
+--- a/tests-m32/sigaction.awk
++++ b/tests-m32/sigaction.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
- # Copyright (c) 2014 Masatake YAMATO <yamato@redhat.com>
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
-diff --git a/tests/net-yy-connect.awk b/tests/net-yy-connect.awk
-index f4dcf91..b3cec8c 100644
---- a/tests/net-yy-connect.awk
-+++ b/tests/net-yy-connect.awk
+ # All rights reserved.
+diff --git a/tests-mx32/caps.awk b/tests-mx32/caps.awk
+index 67003ac..a66f1f0 100644
+--- a/tests-mx32/caps.awk
++++ b/tests-mx32/caps.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
- # Copyright (c) 2014 Masatake YAMATO <yamato@redhat.com>
- # Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
-diff --git a/tests/sigaction.awk b/tests/sigaction.awk
-index 5c6b6d0..3e14464 100644
---- a/tests/sigaction.awk
-+++ b/tests/sigaction.awk
+ # This file is part of caps strace test.
+ #
+diff --git a/tests-mx32/match.awk b/tests-mx32/match.awk
+index abfbae9..f2740bf 100644
+--- a/tests-mx32/match.awk
++++ b/tests-mx32/match.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
# All rights reserved.
-diff --git a/tests/uid.awk b/tests/uid.awk
-index a56c5be..67b0749 100644
---- a/tests/uid.awk
-+++ b/tests/uid.awk
+diff --git a/tests-mx32/sigaction.awk b/tests-mx32/sigaction.awk
+index 5c6b6d0..3e14464 100644
+--- a/tests-mx32/sigaction.awk
++++ b/tests-mx32/sigaction.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
# All rights reserved.
-diff --git a/tests/unix-yy-accept.awk b/tests/unix-yy-accept.awk
-index 4ed60e4..2a9d9c0 100644
---- a/tests/unix-yy-accept.awk
-+++ b/tests/unix-yy-accept.awk
+diff --git a/tests/caps.awk b/tests/caps.awk
+index 67003ac..a66f1f0 100644
+--- a/tests/caps.awk
++++ b/tests/caps.awk
+@@ -1,4 +1,4 @@
+-#!/bin/gawk
++#!/usr/bin/gawk
+ #
+ # This file is part of caps strace test.
+ #
+diff --git a/tests/match.awk b/tests/match.awk
+index abfbae9..f2740bf 100644
+--- a/tests/match.awk
++++ b/tests/match.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
- # Copyright (c) 2014 Masatake YAMATO <yamato@redhat.com>
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
-diff --git a/tests/unix-yy-connect.awk b/tests/unix-yy-connect.awk
-index 262bf2e..c809dfa 100644
---- a/tests/unix-yy-connect.awk
-+++ b/tests/unix-yy-connect.awk
+ # All rights reserved.
+diff --git a/tests/sigaction.awk b/tests/sigaction.awk
+index 5c6b6d0..3e14464 100644
+--- a/tests/sigaction.awk
++++ b/tests/sigaction.awk
@@ -1,4 +1,4 @@
-#!/bin/gawk
+#!/usr/bin/gawk
#
- # Copyright (c) 2014 Masatake YAMATO <yamato@redhat.com>
# Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
---
-1.9.1
-
+ # All rights reserved.
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.11.bb b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.11.bb
deleted file mode 100644
index 739138802..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.11.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "System call tracing tool"
-HOMEPAGE = "http://strace.sourceforge.net"
-SECTION = "console/utils"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=124500c21e856f0912df29295ba104c7"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz \
- file://disable-git-version-gen.patch \
- file://more-robust-test-for-m32-mx32-compile-support.patch \
- file://update-gawk-paths.patch \
- file://use-asm-sgidefs.h.patch \
- file://0001-arc-metag-nios2-or1k-tile-fix-build.patch \
- file://Makefile-ptest.patch \
- file://0001-tests-scm_rights.c-use-libtests.patch \
- file://0001-scm_rights-fd.test-rewrite-without-fork.patch \
- file://0001-Move-gcc-compat-macros-to-gcc_compat.h.patch \
- file://0001-tests-introduce-libtests.patch \
- file://run-ptest \
- "
-
-SRC_URI[md5sum] = "a15d2555a7febb56d00c6e1a51c655dc"
-SRC_URI[sha256sum] = "e86a5f6cd8f941f67f3e4b28f4e60f3d9185c951cf266404533210a2e5cd8152"
-
-inherit autotools ptest bluetooth
-
-RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed"
-
-PACKAGECONFIG_class-target ??= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-"
-
-PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,${BLUEZ}"
-PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
-
-TESTDIR = "tests"
-
-do_install_append() {
- # We don't ship strace-graph here because it needs perl
- rm ${D}${bindir}/strace-graph
-}
-
-do_compile_ptest() {
- oe_runmake -C ${TESTDIR} buildtest-TESTS
-}
-
-do_install_ptest() {
- oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
- sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.13.bb b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.13.bb
new file mode 100644
index 000000000..cae7f2138
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/strace/strace_4.13.bb
@@ -0,0 +1,49 @@
+SUMMARY = "System call tracing tool"
+HOMEPAGE = "http://strace.sourceforge.net"
+SECTION = "console/utils"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=124500c21e856f0912df29295ba104c7"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/strace/strace-${PV}.tar.xz \
+ file://disable-git-version-gen.patch \
+ file://more-robust-test-for-m32-mx32-compile-support.patch \
+ file://update-gawk-paths.patch \
+ file://use-asm-sgidefs.h.patch \
+ file://Makefile-ptest.patch \
+ file://run-ptest \
+ file://0001-Fix-build-when-using-non-glibc-libc-implementation-o.patch \
+ file://mips-SIGEMT.patch \
+ "
+
+SRC_URI[md5sum] = "4b78c7febdd24c79d5147824d1a080a3"
+SRC_URI[sha256sum] = "d48f732576c91ece36a5843d63f9be054c40ef59f1e4773986042636861625d7"
+
+inherit autotools ptest bluetooth
+
+RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed"
+
+PACKAGECONFIG_class-target ??= "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
+"
+
+PACKAGECONFIG[bluez] = "ac_cv_header_bluetooth_bluetooth_h=yes,ac_cv_header_bluetooth_bluetooth_h=no,${BLUEZ}"
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+
+TESTDIR = "tests"
+
+do_install_append() {
+ # We don't ship strace-graph here because it needs perl
+ rm ${D}${bindir}/strace-graph
+}
+
+do_compile_ptest() {
+ oe_runmake -C ${TESTDIR} buildtest-TESTS
+}
+
+do_install_ptest() {
+ oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
+ sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
+}
+
+BBCLASSEXTEND = "native"
+TOOLCHAIN = "gcc"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.3.bb b/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.3.bb
deleted file mode 100644
index a19a675c5..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.3.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Subversion (svn) version control system client"
-SECTION = "console/network"
-DEPENDS = "apr-util serf sqlite3 file"
-DEPENDS_append_class-native = " file-replacement-native"
-RDEPENDS_${PN} = "serf"
-LICENSE = "Apache-2"
-HOMEPAGE = "http://subversion.tigris.org"
-
-BBCLASSEXTEND = "native"
-
-inherit gettext pythonnative
-
-SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://disable_macos.patch \
- file://serf.m4-Regex-modified-to-allow-D-in-paths.patch \
- file://0001-Fix-libtool-name-in-configure.ac.patch \
- "
-SRC_URI[md5sum] = "243036eb28b50ce517fc228eb3250add"
-SRC_URI[sha256sum] = "8bbf6bb125003d88ee1c22935a36b7b1ab7d957e0c8b5fbfe5cb6310b6e86ae0"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=af81ae49ba359e70626c05e9bf313709"
-
-PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl"
-PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring,--without-gnome-keyring,glib-2.0 gnome-keyring"
-
-EXTRA_OECONF = " \
- --without-berkeley-db --without-apxs \
- --without-swig --with-apr=${STAGING_BINDIR_CROSS} \
- --with-apr-util=${STAGING_BINDIR_CROSS} \
- --disable-keychain \
- ac_cv_path_RUBY=none"
-
-inherit autotools
-
-export LDFLAGS += " -L${STAGING_LIBDIR} "
-CPPFLAGS += "-P"
-BUILD_CPPFLAGS += "-P"
-
-acpaths = "-I build/ -I build/ac-macros/"
-
-do_configure_prepend () {
- rm -f ${S}/libtool
- rm -f ${S}/build/libtool.m4 ${S}/build/ltmain.sh ${S}/build/ltoptions.m4 ${S}/build/ltsugar.m4 ${S}/build/ltversion.m4 ${S}/build/lt~obsolete.m4
- rm -f ${S}/aclocal.m4
- sed -i -e 's:with_sasl="/usr/local":with_sasl="${STAGING_DIR}":' ${S}/build/ac-macros/sasl.m4
-}
-
-#| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_local/libsvn_ra_local-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| /usr/bin/ld: cannot find -lsvn_delta-1| collect2: ld returned 1 exit status| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_svn/libsvn_ra_svn-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_serf/libsvn_ra_serf-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'
-#| x86_64-linux-libtool: install: error: relink `libsvn_ra_serf-1.la' with the above command before installing it
-#| x86_64-linux-libtool: install: warning: `../../subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'
-#| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/subversion-1.8.9/build-outputs.mk:1090: recipe for target 'install-serf-lib' failed
-#| make: *** [install-serf-lib] Error 1
-PARALLEL_MAKEINST = ""
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.4.bb
new file mode 100644
index 000000000..3ce83c1da
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/subversion/subversion_1.9.4.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Subversion (svn) version control system client"
+SECTION = "console/network"
+DEPENDS = "apr-util serf sqlite3 file"
+DEPENDS_append_class-native = " file-replacement-native"
+RDEPENDS_${PN} = "serf"
+LICENSE = "Apache-2"
+HOMEPAGE = "http://subversion.tigris.org"
+
+BBCLASSEXTEND = "native"
+
+inherit gettext
+
+SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
+ file://disable_macos.patch \
+ file://serf.m4-Regex-modified-to-allow-D-in-paths.patch \
+ file://0001-Fix-libtool-name-in-configure.ac.patch \
+ "
+
+SRC_URI[md5sum] = "29121a038f87641055a8183f49e9739f"
+SRC_URI[sha256sum] = "1267f9e2ab983f260623bee841e6c9cc458bf4bf776238ed5f100983f79e9299"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=af81ae49ba359e70626c05e9bf313709"
+
+PACKAGECONFIG[sasl] = "--with-sasl,--without-sasl,cyrus-sasl"
+PACKAGECONFIG[gnome-keyring] = "--with-gnome-keyring,--without-gnome-keyring,glib-2.0 gnome-keyring"
+
+EXTRA_OECONF = " \
+ --without-berkeley-db --without-apxs \
+ --without-swig --with-apr=${STAGING_BINDIR_CROSS} \
+ --with-apr-util=${STAGING_BINDIR_CROSS} \
+ --disable-keychain \
+ ac_cv_path_RUBY=none"
+
+inherit autotools
+
+export LDFLAGS += " -L${STAGING_LIBDIR} "
+CPPFLAGS += "-P"
+BUILD_CPPFLAGS += "-P"
+
+acpaths = "-I build/ -I build/ac-macros/"
+
+do_configure_prepend () {
+ rm -f ${S}/libtool
+ rm -f ${S}/build/libtool.m4 ${S}/build/ltmain.sh ${S}/build/ltoptions.m4 ${S}/build/ltsugar.m4 ${S}/build/ltversion.m4 ${S}/build/lt~obsolete.m4
+ rm -f ${S}/aclocal.m4
+ sed -i -e 's:with_sasl="/usr/local":with_sasl="${STAGING_DIR}":' ${S}/build/ac-macros/sasl.m4
+}
+
+#| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_local/libsvn_ra_local-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| /usr/bin/ld: cannot find -lsvn_delta-1| collect2: ld returned 1 exit status| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_svn/libsvn_ra_svn-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'| x86_64-linux-libtool: install: warning: `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/build/subversion/libsvn_ra_serf/libsvn_ra_serf-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'
+#| x86_64-linux-libtool: install: error: relink `libsvn_ra_serf-1.la' with the above command before installing it
+#| x86_64-linux-libtool: install: warning: `../../subversion/libsvn_repos/libsvn_repos-1.la' has not been installed in `/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/sysroots/x86_64-linux/usr/lib'
+#| /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-qa-logrotate/build/build/tmp/work/x86_64-linux/subversion-native/1.8.9-r0/subversion-1.8.9/build-outputs.mk:1090: recipe for target 'install-serf-lib' failed
+#| make: *** [install-serf-lib] Error 1
+PARALLEL_MAKEINST = ""
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/swabber/swabber-native_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/swabber/swabber-native_git.bb
deleted file mode 100644
index 2f313bb46..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/swabber/swabber-native_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Tool to monitor and report on host system file usage"
-HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/swabber"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-SRCREV = "2d1fe36fb0a4fdaae8823a9818a6785182d75e66"
-PV = "0.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://git.yoctoproject.org/swabber"
-
-inherit native
-
-do_configure () {
- :
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/swig/swig.inc b/import-layers/yocto-poky/meta/recipes-devtools/swig/swig.inc
index 9da40df55..704bb27b9 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/swig/swig.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/swig/swig.inc
@@ -7,14 +7,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \
SECTION = "devel"
-DEPENDS = "libpcre python"
+DEPENDS = "libpcre python3"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
-inherit autotools pythonnative
+inherit autotools python3native
EXTRA_OECONF = " \
- --with-python=${PYTHON} \
+ --with-python3=${PYTHON} \
--without-allegrocl \
--without-android \
--without-boost \
@@ -33,7 +33,6 @@ EXTRA_OECONF = " \
--without-perl5 \
--without-pike \
--without-php \
- --without-python3 \
--without-r \
--without-ruby \
--without-tcl \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_230.bb b/import-layers/yocto-poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_230.bb
new file mode 100644
index 000000000..9ce629a2b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_230.bb
@@ -0,0 +1,29 @@
+LICENSE = "LGPLv2.1 & GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https"
+
+# Modify these as desired
+PV = "230+git${SRCPV}"
+SRCREV = "dcb246b46239259ec99b3c6e6ab7d27e1a5a8a84"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "systemd libxslt-native xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native intltool"
+
+inherit pkgconfig autotools systemd distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE_${PN} = "systemd-bootchart.service"
+
+do_configure_prepend() {
+ # intltool.m4 is a soft link to /usr/share/aclocal/m4, delete it and use the one in our sysroot
+ rm -f ${S}/m4/intltool.m4
+}
+
+FILES_${PN} += "${systemd_unitdir}/systemd-bootchart"
+
+EXTRA_OECONF = " --with-rootprefix=${base_prefix} \
+ --with-rootlibdir=${base_libdir}"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/import-layers/yocto-poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
index ab2fcd7ab..e5e41f148 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
@@ -5,11 +5,11 @@ BUGTRACKER = "https://bugs.eclipse.org/bugs/"
LICENSE = "EPL-1.0 | EDL-1.0"
LIC_FILES_CHKSUM = "file://edl-v10.html;md5=522a390a83dc186513f0500543ad3679"
-SRCREV = "b9a735e9c7cf82f80d412b7ab15d08b89d5a4ccc"
-PV = "1.3.0+git${SRCPV}"
+SRCREV = "2dddd5f440a15d5406032fac20f206484513646f"
+PV = "1.4.0+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent.git;branch=1.3_mars_bugfix \
+SRC_URI = "git://git.eclipse.org/gitroot/tcf/org.eclipse.tcf.agent;branch=1.4_neon_bugfix \
file://fix_ranlib.patch \
file://ldflags.patch \
file://0001-canonicalize_file_name-is-specific-to-glibc.patch;striplevel=2 \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch
index 5b5de0730..72a0fa452 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch
@@ -12,7 +12,7 @@ Fixes tcl target recipe build on old distros which have glibc older than 2.14
| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/bin
| make: *** [install-msgs] Error 1
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/04/26
Index: unix/Makefile.in
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch
index ab6cc4316..5c622a236 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch
+++ b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch
@@ -5,26 +5,26 @@ Upstream-Status:Inappropriate [embedded specific]
Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
-Index: unix/Makefile.in
-===================================================================
---- unix.orig/Makefile.in 2013-11-10 23:38:12.235425891 -0800
-+++ unix/Makefile.in 2013-11-10 23:38:12.231425891 -0800
-@@ -611,7 +611,7 @@
+diff --git a/Makefile.in b/Makefile.in
+index b729ffd..2c2e824 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -612,7 +612,7 @@ SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
# Start of rules
#--------------------------------------------------------------------------
-all: binaries libraries doc packages
+all: binaries libraries doc
- binaries: ${LIB_FILE} $(STUB_LIB_FILE) ${TCL_EXE}
+ binaries: ${LIB_FILE} ${TCL_EXE}
-@@ -653,12 +653,12 @@
+@@ -656,12 +656,12 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
#tclConfig.h: $(UNIX_DIR)/tclConfig.h.in
# $(SHELL) config.status
-clean: clean-packages
+clean:
- rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
+ rm -rf *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@
cd dltest ; $(MAKE) clean
@@ -33,7 +33,7 @@ Index: unix/Makefile.in
rm -rf Makefile config.status config.cache config.log tclConfig.sh \
tclConfig.h *.plist Tcl.framework tcl.pc
cd dltest ; $(MAKE) distclean
-@@ -706,7 +706,7 @@
+@@ -709,7 +709,7 @@ tcltest-real:
# tcltest, ie:
# % make test TESTFLAGS="-verbose bps -file fileName.test"
@@ -42,7 +42,7 @@ Index: unix/Makefile.in
test-tcl: ${TCLTEST_EXE}
$(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS)
-@@ -771,7 +771,7 @@
+@@ -774,7 +774,7 @@ INSTALL_PACKAGE_TARGETS = install-packages
INSTALL_DEV_TARGETS = install-headers
INSTALL_EXTRA_TARGETS = @EXTRA_INSTALL@
INSTALL_TARGETS = $(INSTALL_BASE_TARGETS) $(INSTALL_DOC_TARGETS) $(INSTALL_DEV_TARGETS) \
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb
deleted file mode 100644
index 8e92b3e24..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-SUMMARY = "Tool Command Language"
-HOMEPAGE = "http://tcl.sourceforge.net"
-SECTION = "devel/tcltk"
-
-# http://www.tcl.tk/software/tcltk/license.html
-LICENSE = "tcl & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://../license.terms;md5=058f6229798281bbcac4239c788cfa38 \
- file://../compat/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
- file://../library/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
- file://../macosx/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
- file://../tests/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
- file://../win/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
-"
-
-DEPENDS = "tcl-native zlib"
-
-BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \
- file://tcl-add-soname.patch"
-SRC_URI = "${BASE_SRC_URI} \
- file://fix_non_native_build_issue.patch \
- file://fix_issue_with_old_distro_glibc.patch \
- file://no_packages.patch \
- file://tcl-remove-hardcoded-install-path.patch \
- file://alter-includedir.patch \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "d7cbb91f1ded1919370a30edd1534304"
-SRC_URI[sha256sum] = "9e6ed94c981c1d0c5f5fefb8112d06c6bf4d050a7327e95e71d417c416519c8d"
-
-SRC_URI_class-native = "${BASE_SRC_URI}"
-
-S = "${WORKDIR}/${BPN}${PV}/unix"
-
-VER = "${PV}"
-
-inherit autotools ptest binconfig
-
-DEPENDS_class-native = "zlib-native"
-
-EXTRA_OECONF = "--enable-threads --disable-rpath --libdir=${libdir}"
-
-do_configure() {
- cd ${S}
- gnu-configize
- cd ${B}
- oe_runconf
-}
-
-do_compile_prepend() {
- echo > ${S}/../compat/fixstrtod.c
-}
-
-do_install() {
- autotools_do_install install-private-headers
- ln -sf ./tclsh${VER} ${D}${bindir}/tclsh
- ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER}
- sed -i "s+-L${B}+-L${STAGING_LIBDIR}+g" tclConfig.sh
- sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
- sed -i "s,-L${libdir},-L=${libdir},g" tclConfig.sh
- sed -i "s,-I${includedir},-I=${includedir},g" tclConfig.sh
- install -d ${D}${bindir_crossscripts}
- install -m 0755 tclConfig.sh ${D}${bindir_crossscripts}
- install -m 0755 tclConfig.sh ${D}${libdir}
- cd ..
- for dir in compat generic unix; do
- install -d ${D}${includedir}/${BPN}${VER}/$dir
- install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/
- done
-}
-
-SYSROOT_PREPROCESS_FUNCS += "tcl_sysroot_preprocess"
-tcl_sysroot_preprocess () {
- sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
-}
-
-PACKAGES =+ "tcl-lib"
-FILES_tcl-lib = "${libdir}/libtcl8.6.so.*"
-FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8"
-FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh"
-
-# isn't getting picked up by shlibs code
-RDEPENDS_${PN} += "tcl-lib"
-RDEPENDS_${PN}_class-native = ""
-RDEPENDS_${PN}-ptest += "libgcc"
-
-BBCLASSEXTEND = "native"
-
-do_compile_ptest() {
- oe_runmake tcltest
-}
-
-do_install_ptest() {
- cp ${B}/tcltest ${D}${PTEST_PATH}
- cp -r ${S}/../library ${D}${PTEST_PATH}
- cp -r ${S}/../tests ${D}${PTEST_PATH}
-}
-
-# Fix some paths that might be used by Tcl extensions
-BINCONFIG_GLOB = "*Config.sh"
-
-# Fix the path in sstate
-SSTATE_SCAN_FILES += "*Config.sh"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.6.bb b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.6.bb
new file mode 100644
index 000000000..2dd0a7ae9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.6.bb
@@ -0,0 +1,97 @@
+SUMMARY = "Tool Command Language"
+HOMEPAGE = "http://tcl.sourceforge.net"
+SECTION = "devel/tcltk"
+
+# http://www.tcl.tk/software/tcltk/license.html
+LICENSE = "tcl & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://../license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+ file://../compat/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+ file://../library/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+ file://../macosx/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+ file://../tests/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+ file://../win/license.terms;md5=058f6229798281bbcac4239c788cfa38 \
+"
+
+DEPENDS = "tcl-native zlib"
+
+BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \
+ file://tcl-add-soname.patch"
+SRC_URI = "${BASE_SRC_URI} \
+ file://fix_non_native_build_issue.patch \
+ file://fix_issue_with_old_distro_glibc.patch \
+ file://no_packages.patch \
+ file://tcl-remove-hardcoded-install-path.patch \
+ file://alter-includedir.patch \
+ file://run-ptest \
+"
+SRC_URI[md5sum] = "5193aea8107839a79df8ac709552ecb7"
+SRC_URI[sha256sum] = "a265409781e4b3edcc4ef822533071b34c3dc6790b893963809b9fe221befe07"
+
+SRC_URI_class-native = "${BASE_SRC_URI}"
+
+S = "${WORKDIR}/${BPN}${PV}/unix"
+
+VER = "${PV}"
+
+inherit autotools ptest binconfig
+
+DEPENDS_class-native = "zlib-native"
+
+EXTRA_OECONF = "--enable-threads --disable-rpath --libdir=${libdir}"
+
+do_configure() {
+ cd ${S}
+ gnu-configize
+ cd ${B}
+ oe_runconf
+}
+
+do_compile_prepend() {
+ echo > ${S}/../compat/fixstrtod.c
+}
+
+do_install() {
+ autotools_do_install install-private-headers
+ ln -sf ./tclsh${VER} ${D}${bindir}/tclsh
+ ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER}
+ sed -i "s+-L${B}+-L${STAGING_LIBDIR}+g" tclConfig.sh
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
+ install -d ${D}${bindir_crossscripts}
+ install -m 0755 tclConfig.sh ${D}${bindir_crossscripts}
+ install -m 0755 tclConfig.sh ${D}${libdir}
+ cd ..
+ for dir in compat generic unix; do
+ install -d ${D}${includedir}/${BPN}${VER}/$dir
+ install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/
+ done
+}
+
+SYSROOT_DIRS += "${bindir_crossscripts}"
+
+PACKAGES =+ "tcl-lib"
+FILES_tcl-lib = "${libdir}/libtcl8.6.so.*"
+FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8"
+FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh"
+
+# isn't getting picked up by shlibs code
+RDEPENDS_${PN} += "tcl-lib"
+RDEPENDS_${PN}_class-native = ""
+RDEPENDS_${PN}-ptest += "libgcc"
+
+BBCLASSEXTEND = "native"
+
+do_compile_ptest() {
+ oe_runmake tcltest
+}
+
+do_install_ptest() {
+ cp ${B}/tcltest ${D}${PTEST_PATH}
+ cp -r ${S}/../library ${D}${PTEST_PATH}
+ cp -r ${S}/../tests ${D}${PTEST_PATH}
+}
+
+# Fix some paths that might be used by Tcl extensions
+BINCONFIG_GLOB = "*Config.sh"
+
+# Fix the path in sstate
+SSTATE_SCAN_FILES += "*Config.sh"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb b/import-layers/yocto-poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb
index eba1139e5..e7574fb72 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/unfs3/unfs3_0.9.22.r497.bb
@@ -9,8 +9,8 @@ RECIPE_UPSTREAM_DATE = "Oct 08, 2015"
CHECK_DATE = "Dec 10, 2015"
DEPENDS = "flex-native bison-native flex"
-DEPENDS_append_libc-musl = " libtirpc "
-DEPENDS_append_class-nativesdk += "flex-nativesdk"
+DEPENDS_append_libc-musl = " libtirpc"
+DEPENDS_append_class-nativesdk = " flex-nativesdk"
MOD_PV = "497"
S = "${WORKDIR}/trunk"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/vala/vala.inc b/import-layers/yocto-poky/meta/recipes-devtools/vala/vala.inc
index 2a8875f01..34c9db931 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/vala/vala.inc
+++ b/import-layers/yocto-poky/meta/recipes-devtools/vala/vala.inc
@@ -11,7 +11,7 @@ HOMEPAGE = "http://vala-project.org"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split('.')[1]}"
SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/${BPN}/${SHRT_VER}/${BP}.tar.xz"
inherit autotools pkgconfig upstream-version-is-even
@@ -36,15 +36,14 @@ do_install_append_class-target() {
install ${B}/vapigen-wrapper ${D}${bindir}/
}
+# Put vapigen wrapper into target sysroot so that it can be used when building
+# vapi files.
+SYSROOT_DIRS_append_class-target = " ${bindir}"
-SYSROOT_PREPROCESS_FUNCS_append_class-target += "vapigen_sysroot_preprocess"
-
+SYSROOT_PREPROCESS_FUNCS_append_class-target = " vapigen_sysroot_preprocess"
vapigen_sysroot_preprocess() {
- # Put vapigen wrapper into target sysroot so that it can be used when building vapi files.
- sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir}
-
- # Also, tweak the vapigen name in vapigen pkgconfig file, so that it picks up our
- # wrapper.
+ # Tweak the vapigen name in the vapigen pkgconfig file, so that it picks
+ # up our wrapper.
sed -i \
-e "s|vapigen=.*|vapigen=${bindir}/vapigen-wrapper|" \
${SYSROOT_DESTDIR}${datadir}/pkgconfig/vapigen-${SHRT_VER}.pc
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.30.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.30.1.bb
deleted file mode 100644
index 6394afcc1..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.30.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += " file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
- file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
-"
-
-SRC_URI[md5sum] = "cc2eb2384fc10038b643753d734a5a51"
-SRC_URI[sha256sum] = "23add78e5c6a5e6df019d4a885c9c79814c9e0b957519ec8a4f4d826c4e5df2c"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.32.1.bb b/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.32.1.bb
new file mode 100644
index 000000000..b34086e20
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/vala/vala_0.32.1.bb
@@ -0,0 +1,8 @@
+require ${BPN}.inc
+
+SRC_URI += " file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
+ file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
+"
+
+SRC_URI[md5sum] = "755881770bffac020b5ea5f625fbe528"
+SRC_URI[sha256sum] = "dd0d47e548a34cfb1e4b04149acd082a86414c49057ffb79902eb9a508a161a9"
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind/gcc5-port.patch b/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind/gcc5-port.patch
new file mode 100644
index 000000000..76bc82187
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind/gcc5-port.patch
@@ -0,0 +1,64 @@
+backport fix from upstream to fix build errors with gcc 6
+
+http://valgrind.10908.n7.nabble.com/Valgrind-r15773-in-trunk-configure-ac-drd-tests-std-thread-cpp-drd-tests-std-thread2-cpp-td56109.html
+
+../../../valgrind-3.11.0/drd/tests/std_thread.cpp:30:3: error: '_Impl_base' is not a member of 'std::thread'
+ std::thread::_Impl_base* __t = static_cast<std::thread::_Impl_base*>(__p);
+ ^~~
+../../../valgrind-3.11.0/drd/tests/std_thread.cpp:30:28: error: '__t' was not declared in this scope
+ std::thread::_Impl_base* __t = static_cast<std::thread::_Impl_base*>(__p);
+ ^~~
+../../../valgrind-3.11.0/drd/tests/std_thread.cpp:30:59: error: '_Impl_base' in 'class std::thread' does not name a type
+ std::thread::_Impl_base* __t = static_cast<std::thread::_Impl_base*>(__p);
+ ^~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport
+
+Index: configure.ac
+===================================================================
+--- a/configure.ac (revision 15772)
++++ b/configure.ac (revision 15773)
+@@ -160,7 +160,7 @@
+ icc-1[[3-9]].*)
+ AC_MSG_RESULT([ok (ICC version ${gcc_version})])
+ ;;
+- notclang-[[3-9]].*|notclang-[[1-9][0-9]]*)
++ notclang-[[3-9]]|notclang-[[3-9]].*|notclang-[[1-9][0-9]]*)
+ AC_MSG_RESULT([ok (${gcc_version})])
+ ;;
+ clang-2.9|clang-[[3-9]].*|clang-[[1-9][0-9]]*)
+Index: drd/tests/std_thread2.cpp
+===================================================================
+--- a/drd/tests/std_thread2.cpp (revision 15772)
++++ b/drd/tests/std_thread2.cpp (revision 15773)
+@@ -26,6 +26,7 @@
+ return 0;
+ }
+
++#if defined(__GNUC__) && __GNUC__ -0 < 6
+ //
+ // From libstdc++-v3/src/c++11/thread.cc
+ //
+@@ -70,3 +71,4 @@
+ }
+ }
+ }
++#endif
+Index: drd/tests/std_thread.cpp
+===================================================================
+--- a/drd/tests/std_thread.cpp (revision 15772)
++++ b/drd/tests/std_thread.cpp (revision 15773)
+@@ -21,6 +21,7 @@
+ return 0;
+ }
+
++#if defined(__GNUC__) && __GNUC__ -0 < 6
+ //
+ // From libstdc++-v3/src/c++11/thread.cc
+ //
+@@ -65,3 +66,4 @@
+ }
+ }
+ }
++#endif
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb b/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
index 51c88bf7a..42fd27f53 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/valgrind/valgrind_3.11.0.bb
@@ -23,6 +23,7 @@ SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \
file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \
file://avoid-neon-for-targets-which-don-t-support-it.patch \
+ file://gcc5-port.patch \
"
SRC_URI_append_libc-musl = "\
file://0001-fix-build-for-musl-targets.patch \
@@ -37,6 +38,10 @@ COMPATIBLE_HOST_armv4 = 'null'
COMPATIBLE_HOST_armv5 = 'null'
COMPATIBLE_HOST_armv6 = 'null'
+# valgrind doesn't like mips soft float
+COMPATIBLE_HOST_mips = "${@bb.utils.contains("TARGET_FPU", "soft", "null", ".*-linux", d)}"
+COMPATIBLE_HOST_mipsel = "${@bb.utils.contains("TARGET_FPU", "soft", "null", ".*-linux", d)}"
+
inherit autotools ptest
EXTRA_OECONF = "--enable-tls --without-mpicc"
@@ -68,9 +73,9 @@ RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
RDEPENDS_${PN}-ptest += " sed perl perl-module-file-glob"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
-# One of the tests contains a bogus interpreter path on purpose, and QA
-# check complains about it
-INSANE_SKIP_${PN}-ptest += "file-rdeps"
+# One of the tests contains a bogus interpreter path on purpose.
+# Skip file dependency check
+SKIP_FILEDEPS_${PN}-ptest = '1'
do_compile_ptest() {
oe_runmake check
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb b/import-layers/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
index 71f873f9e..aaaeb6eb2 100644
--- a/import-layers/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
+++ b/import-layers/yocto-poky/meta/recipes-devtools/xmlto/xmlto_0.0.28.bb
@@ -13,8 +13,9 @@ SRC_URI[md5sum] = "a1fefad9d83499a15576768f60f847c6"
SRC_URI[sha256sum] = "2f986b7c9a0e9ac6728147668e776d405465284e13c74d4146c9cbc51fd8aad3"
inherit autotools
+RDEPENDS_class-native = "libxslt-native"
-# xmlto needs getopt/xmllint/xsltproc/bash at runtime
+# xmlto needs getopt/xmllint/xsltproc/bash/tail at runtime
RDEPENDS_${PN} = "docbook-xml-dtd4 \
docbook-xsl-stylesheets \
util-linux \
@@ -23,7 +24,9 @@ RDEPENDS_${PN} = "docbook-xml-dtd4 \
"
RDEPENDS_${PN}_append_class-target = " \
libxslt-bin \
+ coreutils \
"
+CACHED_CONFIGUREVARS += "ac_cv_path_TAIL=${bindir}/tail"
BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb b/import-layers/yocto-poky/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
new file mode 100644
index 000000000..1cd145421
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/asciidoc/asciidoc_8.6.9.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Tool for creating HTML, PDF, EPUB, man pages"
+DESCRIPTION = "AsciiDoc is a text document format for writing short documents, \
+articles, books and UNIX man pages."
+
+HOMEPAGE = "http://asciidoc.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://COPYRIGHT;md5=029ad5428ba5efa20176b396222d4069"
+
+SRC_URI = "http://downloads.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "c59018f105be8d022714b826b0be130a"
+SRC_URI[sha256sum] = "78db9d0567c8ab6570a6eff7ffdf84eadd91f2dfc0a92a2d0105d323cab4e1f0"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/asciidoc/files/"
+
+inherit distutils autotools-brokensep
+
+export DESTDIR = "${D}"
+DEPENDS_class-native = "docbook-xml-dtd4-native"
+RDEPENDS_${PN} += "python"
+BBCLASSEXTEND = "native"
+
+CLEANBROKEN = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/at/at/configure-fix-with-without-selinux.patch b/import-layers/yocto-poky/meta/recipes-extended/at/at/configure-fix-with-without-selinux.patch
deleted file mode 100644
index 389af1e07..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/at/at/configure-fix-with-without-selinux.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From c02354af7f3d9426da31503abfae70952c699a9d Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Fri, 18 Mar 2016 03:23:11 -0400
-Subject: [PATCH] configure: fix with/without selinux
-
-Problem:
-without-selinux doesn't work since WITH_SELINUX is always be defined no
-matter which option is given: with-selinux, without-selinux.
-
-Fix:
-Disable selinux support if without-selinux is given; otherwise check
-libselinux to determine if selinux support should be enabled.
-
-Upstream-Status: Submitted [at@packages.debian.org]
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- configure.ac | 19 +++++++++++++++----
- 1 file changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5a43419..8c9de62 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -240,10 +240,21 @@ AC_ARG_WITH(daemon_username,
- AC_SUBST(DAEMON_USERNAME)
-
- AC_ARG_WITH(selinux,
--[ --with-selinux Define to run with selinux],
--AC_DEFINE(WITH_SELINUX, 1, [Define if you are building with_selinux]),
--)
--AC_CHECK_LIB(selinux, is_selinux_enabled, SELINUXLIB=-lselinux)
-+[ --with-selinux Define to run with selinux (default=check)],
-+[],
-+[with_selinux=check])
-+
-+if test "x$with_selinux" != xno; then
-+ AC_CHECK_LIB([selinux], [is_selinux_enabled],
-+ [SELINUXLIB=-lselinux
-+ AC_DEFINE(WITH_SELINUX, 1, [Define if you are building with_selinux])
-+ ],
-+ [if test "x$with_selinux" != xcheck; then
-+ AC_MSG_FAILURE([--with-selinux is given, but test for selinux failed])
-+ fi
-+ ]
-+ )
-+fi
- AC_SUBST(SELINUXLIB)
- AC_SUBST(WITH_SELINUX)
-
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.18.bb b/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.18.bb
deleted file mode 100644
index 93044f53e..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.18.bb
+++ /dev/null
@@ -1,70 +0,0 @@
-SUMMARY = "Delayed job execution and batch processing"
-DESCRIPTION = "At allows for commands to be run at a particular time. Batch will execute commands when \
-the system load levels drop to a particular level."
-SECTION = "base"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-DEPENDS = "flex flex-native \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \
-"
-
-PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits"
-
-RCONFLICTS_${PN} = "atd"
-RREPLACES_${PN} = "atd"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/a/at/at_${PV}.orig.tar.gz;subdir=${BP} \
- file://fix_parallel_build_error.patch \
- file://posixtm.c \
- file://posixtm.h \
- file://file_replacement_with_gplv2.patch \
- file://atd.init \
- file://atd.service \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
- file://makefile-fix-parallel.patch \
- file://0001-remove-glibc-assumption.patch \
- file://configure-fix-with-without-selinux.patch \
- "
-
-PAM_SRC_URI = "file://pam.conf.patch \
- file://configure-add-enable-pam.patch"
-
-SRC_URI[md5sum] = "f67a7aab557cd5b4a1311079a08acebe"
-SRC_URI[sha256sum] = "dbd5c8cb8edd53ef467363c3af0391c08769f1dbbd4d5002c59a4cd4cac11d52"
-
-EXTRA_OECONF += "ac_cv_path_SENDMAIL=/bin/true \
- --with-daemon_username=root \
- --with-daemon_groupname=root \
- --with-jobdir=/var/spool/at/jobs \
- --with-atspool=/var/spool/at/spool \
- ac_cv_header_security_pam_appl_h=${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)} "
-
-inherit autotools-brokensep systemd update-rc.d
-
-INITSCRIPT_NAME = "atd"
-INITSCRIPT_PARAMS = "defaults"
-
-SYSTEMD_SERVICE_${PN} = "atd.service"
-
-copy_sources() {
- cp -f ${WORKDIR}/posixtm.[ch] ${S}
-}
-do_patch[postfuncs] += "copy_sources"
-
-do_install () {
- oe_runmake -e "IROOT=${D}" install
-
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/atd.init ${D}${sysconfdir}/init.d/atd
-
- # install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/atd.service
-
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
- install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.20.bb b/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.20.bb
new file mode 100644
index 000000000..85459b640
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/at/at_3.1.20.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Delayed job execution and batch processing"
+DESCRIPTION = "At allows for commands to be run at a particular time. Batch will execute commands when \
+the system load levels drop to a particular level."
+SECTION = "base"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
+DEPENDS = "flex flex-native \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \
+"
+
+PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits"
+
+RCONFLICTS_${PN} = "atd"
+RREPLACES_${PN} = "atd"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/a/${BPN}/${BPN}_${PV}.orig.tar.gz \
+ file://fix_parallel_build_error.patch \
+ file://posixtm.c \
+ file://posixtm.h \
+ file://file_replacement_with_gplv2.patch \
+ file://atd.init \
+ file://atd.service \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+ file://makefile-fix-parallel.patch \
+ file://0001-remove-glibc-assumption.patch \
+ "
+
+PAM_SRC_URI = "file://pam.conf.patch \
+ file://configure-add-enable-pam.patch"
+
+SRC_URI[md5sum] = "e7bd7b785b2cbb17e133d6bdc0fb099e"
+SRC_URI[sha256sum] = "0871923cab73050b98ace020664eb2ddc1e669e4166b5abb64d864d02fcefab9"
+
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/a/at/"
+
+EXTRA_OECONF += "ac_cv_path_SENDMAIL=/bin/true \
+ --with-daemon_username=root \
+ --with-daemon_groupname=root \
+ --with-jobdir=/var/spool/at/jobs \
+ --with-atspool=/var/spool/at/spool \
+ ac_cv_header_security_pam_appl_h=${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)} "
+
+inherit autotools-brokensep systemd update-rc.d
+
+INITSCRIPT_NAME = "atd"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_SERVICE_${PN} = "atd.service"
+
+copy_sources() {
+ cp -f ${WORKDIR}/posixtm.[ch] ${S}
+}
+do_patch[postfuncs] += "copy_sources"
+
+do_install () {
+ oe_runmake -e "IROOT=${D}" install
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/atd.init ${D}${sysconfdir}/init.d/atd
+
+ # install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/atd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/atd.service
+
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
+ install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas.inc b/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas.inc
deleted file mode 100644
index 23d12cadf..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas.inc
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Augeas configuration API"
-HOMEPAGE = "http://augeas.net/"
-BUGTRACKER = "https://fedorahosted.org/augeas/report/1"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
-
-SRC_URI = "http://download.augeas.net/${BP}.tar.gz \
- file://add-missing-argz-conditional.patch \
- file://sepbuildfix.patch \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- "
-
-DEPENDS = "readline libxml2"
-
-inherit autotools pkgconfig
-
-PACKAGES =+ "${PN}-lenses lib${BPN}"
-
-FILES_${PN}-lenses = "${datadir}/augeas/lenses"
-FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}"
-
-RDEPENDS_lib${BPN} += "${PN}-lenses"
-RRECOMMENDS_lib${BPN} += "${PN}"
-
-LEAD_SONAME = "libaugeas.so"
-
-do_install_append() {
- rm -fr ${D}${datadir}/vim
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch b/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index 9a19876aa..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b9565dc2fe0c4f7daaec91b7e83bc7313dee2f4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/gnulib.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: augeas-1.2.0/gnulib/lib/Makefile.am
-===================================================================
---- augeas-1.2.0.orig/gnulib/lib/Makefile.am
-+++ augeas-1.2.0/gnulib/lib/Makefile.am
-@@ -463,7 +463,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/add-missing-argz-conditional.patch b/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/add-missing-argz-conditional.patch
deleted file mode 100644
index abbdbaa63..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/add-missing-argz-conditional.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Add missing GL_GENERATE_ARGZ_H conditional
-
-- GL_GENERATE_ARGZ_H is used in gnulib/lib/Makefile.am
-
-Upstream-Status: Pending
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: augeas-1.0.0/configure.ac
-===================================================================
---- augeas-1.0.0.orig/configure.ac
-+++ augeas-1.0.0/configure.ac
-@@ -55,6 +55,8 @@ AC_ARG_WITH([failmalloc],
-
- AM_CONDITIONAL([WITH_FAILMALLOC], [test x$with_failmalloc != xno])
-
-+AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"])
-+
- dnl --enable-debug=(yes|no)
- AC_ARG_ENABLE([debug],
- [AC_HELP_STRING([--enable-debug=no/yes],
diff --git a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/sepbuildfix.patch b/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/sepbuildfix.patch
deleted file mode 100644
index b82a3ee2c..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas/sepbuildfix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Ensure that builds in separate builddirs (${B} != ${S}) correctly install the
-lenses files.
-
-Upstream-Status: Pending
-
-RP 2013/4/17
-
-Index: augeas-1.0.0/Makefile.am
-===================================================================
---- augeas-1.0.0.orig/Makefile.am 2012-11-02 15:20:11.000000000 +0000
-+++ augeas-1.0.0/Makefile.am 2013-04-17 10:36:24.033400125 +0000
-@@ -5,8 +5,8 @@
- lensdir=$(datadir)/augeas/lenses/dist
- lenstestdir=$(datadir)/augeas/lenses/dist/tests
-
--dist_lens_DATA=$(wildcard lenses/*.aug)
--dist_lenstest_DATA=$(wildcard lenses/tests/*.aug)
-+dist_lens_DATA=$(wildcard $(top_srcdir)/lenses/*.aug)
-+dist_lenstest_DATA=$(wildcard $(top_srcdir)lenses/tests/*.aug)
-
- EXTRA_DIST=augeas.spec build/aux/move-if-change Makefile.am HACKING
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas_1.4.0.bb b/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas_1.4.0.bb
deleted file mode 100644
index 1064ad4f4..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/augeas/augeas_1.4.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require augeas.inc
-
-SRC_URI[md5sum] = "a2536a9c3d744dc09d234228fe4b0c93"
-SRC_URI[sha256sum] = "659fae7ac229029e60a869a3b88c616cfd51cf2fba286cdfe3af3a052cb35b30"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/build-tests.patch b/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/build-tests.patch
index 91341ee69..e63457cf2 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/build-tests.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/build-tests.patch
@@ -11,15 +11,15 @@ diff -dNaur bash-3.2.48/Makefile.in.orig bash-3.2.48/Makefile.in
recho$(EXEEXT): $(SUPPORT_SRC)recho.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)recho.c ${LIBS_FOR_BUILD}
-+ @$(CC) $(CCFLAGS) -o $@ $<
++ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
zecho$(EXEEXT): $(SUPPORT_SRC)zecho.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)zecho.c ${LIBS_FOR_BUILD}
-+ @$(CC) $(CCFLAGS) -o $@ $<
++ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
printenv$(EXEEXT): $(SUPPORT_SRC)printenv.c
- @$(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) -o $@ $(SUPPORT_SRC)printenv.c ${LIBS_FOR_BUILD}
-+ @$(CC) $(CCFLAGS) -o $@ $<
++ @$(CC) $(CCFLAGS) $(LDFLAGS) -o $@ $<
-test tests check: force $(Program) $(TESTS_SUPPORT)
+test tests check:
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/string-format.patch b/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/string-format.patch
new file mode 100644
index 000000000..eda39649d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash-3.2.48/string-format.patch
@@ -0,0 +1,21 @@
+Fix a string format warning when using security flags:
+
+| ../bash-3.2.48/print_cmd.c:1152:3: error: format not a string literal and no format arguments [-Werror=format-security]
+| cprintf (indentation_string);
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/print_cmd.c b/print_cmd.c
+index d1dfd1a..956db53 100644
+--- a/print_cmd.c
++++ b/print_cmd.c
+@@ -1149,7 +1149,7 @@ indent (amount)
+ for (i = 0; amount > 0; amount--)
+ indentation_string[i++] = ' ';
+ indentation_string[i] = '\0';
+- cprintf (indentation_string);
++ cprintf ("%s", indentation_string);
+ }
+
+ static void
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash.inc b/import-layers/yocto-poky/meta/recipes-extended/bash/bash.inc
index 93ca00b25..1d08526c9 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bash/bash.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash.inc
@@ -2,7 +2,7 @@ SUMMARY = "An sh-compatible command language interpreter"
HOMEPAGE = "http://tiswww.case.edu/php/chet/bash/bashtop.html"
SECTION = "base/shell"
-DEPENDS = "ncurses bison-native"
+DEPENDS = "ncurses bison-native virtual/libiconv"
inherit autotools gettext texinfo update-alternatives ptest
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash/0001-help-fix-printf-format-security-warning.patch b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/0001-help-fix-printf-format-security-warning.patch
new file mode 100644
index 000000000..5405c84c7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/0001-help-fix-printf-format-security-warning.patch
@@ -0,0 +1,35 @@
+From e5837a42f8f48a6a721805ff8f7fcd32861d09ca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Tue, 26 Jul 2016 13:09:47 +0100
+Subject: [PATCH] help: fix printf() format security warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| ../../bash-4.3.30/builtins/../../bash-4.3.30/builtins/help.def: In function 'help_builtin':
+| ../../bash-4.3.30/builtins/../../bash-4.3.30/builtins/help.def:130:7: error: format not a string literal and no format arguments [-Werror=format-security]
+| printf (ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1)));
+| ^~~~~~
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Pending
+ builtins/help.def | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/builtins/help.def b/builtins/help.def
+index 1894f17..cf624c6 100644
+--- a/builtins/help.def
++++ b/builtins/help.def
+@@ -127,7 +127,7 @@ help_builtin (list)
+
+ if (glob_pattern_p (list->word->word))
+ {
+- printf (ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1)));
++ printf ("%s", ngettext ("Shell commands matching keyword `", "Shell commands matching keywords `", (list->next ? 2 : 1)));
+ print_word_list (list, ", ");
+ printf ("'\n\n");
+ }
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-builtins.patch b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-builtins.patch
new file mode 100644
index 000000000..2fa388302
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-builtins.patch
@@ -0,0 +1,33 @@
+From 0c4cab9594c96c2dc435a8d9724605824bcbf917 Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Tue, 19 Apr 2016 02:57:45 -0400
+Subject: [PATCH] fix run-builtins failed
+
+FAIL: run-builtins
+1. redirect the stderr output of command exec with -l option in
+ builtins.tests to /dev/null
+2. ensure the system contain the locales "en_US.UTF-8"
+
+Upstream-Status: Pending
+
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ tests/builtins.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/builtins.tests b/tests/builtins.tests
+index 9d77520..63f3af8 100644
+--- a/tests/builtins.tests
++++ b/tests/builtins.tests
+@@ -109,7 +109,7 @@ esac
+
+ # test options to exec
+ (exec -a specialname ${THIS_SH} -c 'echo $0' )
+-(exec -l -a specialname ${THIS_SH} -c 'echo $0' )
++(exec -l -a specialname ${THIS_SH} -c 'echo $0' ) 2> /dev/null
+ # test `clean' environment. if /bin/sh is bash, and the script version of
+ # printenv is run, there will be variables in the environment that bash
+ # sets on startup. Also test code that prefixes argv[0] with a dash.
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-intl.patch b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-intl.patch
new file mode 100644
index 000000000..d4a3409ec
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/fix-run-intl.patch
@@ -0,0 +1,110 @@
+From a00d3161fd7b6a698bdd2ed5f0ac5faac580ee2a Mon Sep 17 00:00:00 2001
+From: Dengke Du <dengke.du@windriver.com>
+Date: Wed, 3 Aug 2016 23:13:00 -0400
+Subject: [PATCH] fix run-intl failed
+
+1. Filter extra white space of intl.right
+
+ Due to the extra white space of intl.right, when the result of
+ sub-test unicode2.sub of intl.tests compared to it, the test
+ failed.
+
+ So we need to filter the extra white space of intl.right.
+
+ Import this patch for intl.right from bash devel branch:
+
+ http://git.savannah.gnu.org/cgit/bash.git/log/?h=devel
+
+ commit is:
+
+ 85ec0778f9d778e1820fb8c0e3e996f2d1103b45
+
+2. Change intl.right correspond to the unicode3.sub's output
+
+ In sub-test unicode3.sub of intl.tests, the payload value is:
+
+ payload=$'\065\247\100\063\231\053\306\123\070\237\242\352\263'
+
+ It used quoted string expansion(escaped octal) to assign ASCII
+ characters to variables. So when the test run the following:
+
+ printf %q "$payload"
+
+ It produced:
+
+ $'5\247@3\231+\306S8\237\242\352\263'
+
+ When compared to the intl.right(contain the converted character), it failed.
+
+ Import parts of patch for intl.right from bash devel branch:
+
+ http://git.savannah.gnu.org/cgit/bash.git/log/?h=devel
+
+ commit is:
+
+ 74b8cbb41398b4453d8ba04d0cdd1b25f9dcb9e3
+
+Upstream-Status: Backport
+
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ tests/intl.right | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/tests/intl.right b/tests/intl.right
+index acf108a..1efdfbe 100644
+--- a/tests/intl.right
++++ b/tests/intl.right
+@@ -18,34 +18,34 @@ aéb
+ 1.0000
+ 1,0000
+ Passed all 1378 Unicode tests
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 357 277 277 012
++0000000 357 277 277 012
+ 0000004
+-0000000 357 277 277 012
++0000000 357 277 277 012
+ 0000004
+-0000000 012
++0000000 012
+ 0000001
+-0000000 012
++0000000 012
+ 0000001
+-0000000 012
++0000000 012
+ 0000001
+-0000000 012
++0000000 012
+ 0000001
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 303 277 012
++0000000 303 277 012
+ 0000003
+-0000000 101 040 302 243 040 305 222 012
++0000000 101 040 302 243 040 305 222 012
+ 0000010
+ ./unicode3.sub: line 2: 5§@3™+ĆS8ź˘ęł: command not found
+-5§@3™+ĆS8ź˘ęł
++$'5\247@3\231+\306S8\237\242\352\263'
+ + : $'5\247@3\231+\306S8\237\242\352\263'
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash/run-ptest b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/run-ptest
index 2098fa46b..c61fabd02 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bash/bash/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash/run-ptest
@@ -1,2 +1,22 @@
#!/bin/sh
+
+en_US=`locale -a | grep en_US*`
+fr_FR=`locale -a | grep fr_FR*`
+de_DE=`locale -a | grep de_DE*`
+
+if [ -z "$en_US" ]
+then
+ echo "Warning: The en_US* locales is needed to run the intl.tests, please add it."
+fi
+
+if [ -z "$fr_FR" ]
+then
+ echo "Warning: The fr_FR* locales is needed to run the intl.tests, please add it."
+fi
+
+if [ -z "$de_DE" ]
+then
+ echo "Warning: The de_DE* locales is needed to run the intl.tests, please add it."
+fi
+
make -k THIS_SH=/bin/bash BUILD_DIR=`pwd` srcdir=`pwd` runtest
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash_3.2.48.bb b/import-layers/yocto-poky/meta/recipes-extended/bash/bash_3.2.48.bb
index d42b292b0..6b4028df1 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bash/bash_3.2.48.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash_3.2.48.bb
@@ -20,6 +20,7 @@ SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz;name=tarball \
file://test-output.patch \
file://run-ptest \
file://dont-include-target-CFLAGS-in-host-LDFLAGS.patch \
+ file://string-format.patch \
"
SRC_URI[tarball.md5sum] = "338dcf975a93640bb3eaa843ca42e3f8"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bash/bash_4.3.30.bb b/import-layers/yocto-poky/meta/recipes-extended/bash/bash_4.3.30.bb
index 4426cf00a..765562fbd 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bash/bash_4.3.30.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/bash/bash_4.3.30.bb
@@ -14,12 +14,22 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
${GNU_MIRROR}/bash/bash-4.3-patches/bash43-037;apply=yes;striplevel=0;name=patch037 \
${GNU_MIRROR}/bash/bash-4.3-patches/bash43-038;apply=yes;striplevel=0;name=patch038 \
${GNU_MIRROR}/bash/bash-4.3-patches/bash43-039;apply=yes;striplevel=0;name=patch039 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-040;apply=yes;striplevel=0;name=patch040 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-041;apply=yes;striplevel=0;name=patch041 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-042;apply=yes;striplevel=0;name=patch042 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-043;apply=yes;striplevel=0;name=patch043 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-044;apply=yes;striplevel=0;name=patch044 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-045;apply=yes;striplevel=0;name=patch045 \
+ ${GNU_MIRROR}/bash/bash-4.3-patches/bash43-046;apply=yes;striplevel=0;name=patch046 \
file://execute_cmd.patch;striplevel=0 \
file://mkbuiltins_have_stringize.patch \
file://build-tests.patch \
file://test-output.patch \
file://fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch \
file://run-ptest \
+ file://fix-run-builtins.patch \
+ file://0001-help-fix-printf-format-security-warning.patch \
+ file://fix-run-intl.patch \
"
SRC_URI[tarball.md5sum] = "a27b3ee9be83bd3ba448c0ff52b28447"
@@ -43,5 +53,19 @@ SRC_URI[patch038.md5sum] = "61e0522830b24fbe8c0d1b010f132470"
SRC_URI[patch038.sha256sum] = "adbeaa500ca7a82535f0e88d673661963f8a5fcdc7ad63445e68bf5b49786367"
SRC_URI[patch039.md5sum] = "a4775487abe958536751c8ce53cdf6f9"
SRC_URI[patch039.sha256sum] = "ab94dced2215541097691f60c3eb323cc28ef2549463e6a5334bbcc1e61e74ec"
+SRC_URI[patch040.md5sum] = "80d3587c58854e226055ef099ffeb535"
+SRC_URI[patch040.sha256sum] = "84bb396b9262992ca5424feab6ed3ec39f193ef5c76dfe4a62b551bd8dd9d76b"
+SRC_URI[patch041.md5sum] = "20bf63eef7cb441c0b1cc49ef3191d03"
+SRC_URI[patch041.sha256sum] = "4ec432966e4198524a7e0cd685fe222e96043769c9613e66742ac475db132c1a"
+SRC_URI[patch042.md5sum] = "70790646ae61e207c995e44931390e50"
+SRC_URI[patch042.sha256sum] = "ac219322db2791da87a496ee6e8e5544846494bdaaea2626270c2f73c1044919"
+SRC_URI[patch043.md5sum] = "855a46955cb251534e80b4732b748e37"
+SRC_URI[patch043.sha256sum] = "47a8a3c005b46e25821f4d8f5ccb04c1d653b1c829cb40568d553dc44f7a6180"
+SRC_URI[patch044.md5sum] = "29623d3282fcbb37e1158136509b5bb8"
+SRC_URI[patch044.sha256sum] = "9338820630bf67373b44d8ea68409f65162ea7a47b9b29ace06a0aed12567f99"
+SRC_URI[patch045.md5sum] = "4473244ca5abfd4b018ea26dc73e7412"
+SRC_URI[patch045.sha256sum] = "ba6ec3978e9eaa1eb3fabdaf3cc6fdf8c4606ac1c599faaeb4e2d69864150023"
+SRC_URI[patch046.md5sum] = "7e5fb09991c077076b86e0e057798913"
+SRC_URI[patch046.sha256sum] = "b3b456a6b690cd293353f17e22d92a202b3c8bce587ae5f2667c20c9ab6f688f"
BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/blktool/blktool_4-7.bb b/import-layers/yocto-poky/meta/recipes-extended/blktool/blktool_4-7.bb
index d6250a90c..4551c3233 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/blktool/blktool_4-7.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/blktool/blktool_4-7.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
DEPENDS = "glib-2.0"
-SRC_URI = "${DEBIAN_MIRROR}/main/b/blktool/blktool_4.orig.tar.gz;name=tarball \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/b/${BPN}/${BPN}_4.orig.tar.gz;name=tarball \
file://0001-fix-typos-in-manpage.patch \
file://0002-fix-string-error.patch \
file://0003-Fix-3-d-argument-for-BLKROSET-it-must-be-const-int.patch \
@@ -20,6 +20,7 @@ SRC_URI[tarball.sha256sum] = "b1e6d5912546d2a4b704ec65c2b9664aa3b4663e7d800e0680
# for this package we're mostly interested in tracking debian patches,
# and not in the upstream version where all development has effectively stopped
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/b/blktool/"
UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
S = "${WORKDIR}/${BPN}-4.orig"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20150711.bb b/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20150711.bb
deleted file mode 100644
index e5b5451f2..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20150711.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-# Sigh. This is one of those places where everyone licenses it differently. Someone
-# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
-# "I've found no reliable source which states that byacc must bear a UCB copyright."
-# Setting to PD as this is what the upstream has it as.
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=c52fb2d1b3f75b3b7534927807a1b714"
-require byacc.inc
-
-SRC_URI[md5sum] = "2700401030583c4e9169ac7ea7d08de8"
-SRC_URI[sha256sum] = "c354e4ee14c4a1bf11e55dde9275011d14887ef066406a088b6fa56caf039248"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20160606.bb b/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20160606.bb
new file mode 100644
index 000000000..98129d0ec
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/byacc/byacc_20160606.bb
@@ -0,0 +1,12 @@
+# Sigh. This is one of those places where everyone licenses it differently. Someone
+# even apply UCB to it (Free/Net/OpenBSD). The maintainer states that:
+# "I've found no reliable source which states that byacc must bear a UCB copyright."
+# Setting to PD as this is what the upstream has it as.
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://package/debian/copyright;md5=74533d32ffd38bca4cbf1f1305f8bc60"
+require byacc.inc
+
+
+SRC_URI[md5sum] = "d527c811b360f04a8c5f5a0a90625966"
+SRC_URI[sha256sum] = "cc8fdced486cb70cec7a7c9358de836bfd267d19d6456760bb4721ccfea5ac91"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch b/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch
new file mode 100644
index 000000000..1d0c3a6dd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2-1.0.6/CVE-2016-3189.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Backport
+https://bugzilla.suse.com/attachment.cgi?id=681334
+
+CVE: CVE-2016-3189
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: bzip2-1.0.6/bzip2recover.c
+===================================================================
+--- bzip2-1.0.6.orig/bzip2recover.c
++++ bzip2-1.0.6/bzip2recover.c
+@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv )
+ bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
+ bsPutUInt32 ( bsWr, blockCRC );
+ bsClose ( bsWr );
++ outFile = NULL;
+ }
+ if (wrBlock >= rbCtr) break;
+ wrBlock++;
diff --git a/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb b/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
index f717d85f4..ef7bc8976 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/bzip2/bzip2_1.0.6.bb
@@ -12,7 +12,9 @@ SRC_URI = "http://www.bzip.org/${PV}/${BP}.tar.gz \
file://fix-bunzip2-qt-returns-0-for-corrupt-archives.patch \
file://configure.ac;subdir=${BP} \
file://Makefile.am;subdir=${BP} \
- file://run-ptest"
+ file://run-ptest \
+ file://CVE-2016-3189.patch \
+ "
SRC_URI[md5sum] = "00b516f4704d4a7cb50a1d97e6e8e15b"
SRC_URI[sha256sum] = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cpio/cpio_v2.inc b/import-layers/yocto-poky/meta/recipes-extended/cpio/cpio_v2.inc
index 1bdc6176c..31adb717d 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/cpio/cpio_v2.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/cpio/cpio_v2.inc
@@ -39,3 +39,5 @@ ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
ALTERNATIVE_PRIORITY[rmt] = "50"
ALTERNATIVE_LINK_NAME[rmt] = "${base_sbindir}/rmt"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch b/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch
new file mode 100644
index 000000000..b251ac905
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib/0001-Apply-patch-to-fix-CVE-2016-6318.patch
@@ -0,0 +1,105 @@
+From 47e5dec521ab6243c9b249dd65b93d232d90d6b1 Mon Sep 17 00:00:00 2001
+From: Jan Dittberner <jan@dittberner.info>
+Date: Thu, 25 Aug 2016 17:13:49 +0200
+Subject: [PATCH] Apply patch to fix CVE-2016-6318
+
+This patch fixes an issue with a stack-based buffer overflow when
+parsing large GECOS field. See
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6318 and
+https://security-tracker.debian.org/tracker/CVE-2016-6318 for more
+information.
+
+Upstream-Status: Backport [https://github.com/cracklib/cracklib/commit/47e5dec521ab6243c9b249dd65b93d232d90d6b1]
+CVE: CVE-2016-6318
+Signed-off-by: Dengke Du <dengke.du@windriver.com>
+---
+ lib/fascist.c | 57 ++++++++++++++++++++++++++++++++-----------------------
+ 1 file changed, 33 insertions(+), 24 deletions(-)
+
+diff --git a/lib/fascist.c b/lib/fascist.c
+index a996509..d4deb15 100644
+--- a/lib/fascist.c
++++ b/lib/fascist.c
+@@ -502,7 +502,7 @@ FascistGecosUser(char *password, const char *user, const char *gecos)
+ char gbuffer[STRINGSIZE];
+ char tbuffer[STRINGSIZE];
+ char *uwords[STRINGSIZE];
+- char longbuffer[STRINGSIZE * 2];
++ char longbuffer[STRINGSIZE];
+
+ if (gecos == NULL)
+ gecos = "";
+@@ -583,38 +583,47 @@ FascistGecosUser(char *password, const char *user, const char *gecos)
+ {
+ for (i = 0; i < j; i++)
+ {
+- strcpy(longbuffer, uwords[i]);
+- strcat(longbuffer, uwords[j]);
+-
+- if (GTry(longbuffer, password))
++ if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE)
+ {
+- return _("it is derived from your password entry");
+- }
++ strcpy(longbuffer, uwords[i]);
++ strcat(longbuffer, uwords[j]);
+
+- strcpy(longbuffer, uwords[j]);
+- strcat(longbuffer, uwords[i]);
++ if (GTry(longbuffer, password))
++ {
++ return _("it is derived from your password entry");
++ }
+
+- if (GTry(longbuffer, password))
+- {
+- return _("it's derived from your password entry");
+- }
++ strcpy(longbuffer, uwords[j]);
++ strcat(longbuffer, uwords[i]);
+
+- longbuffer[0] = uwords[i][0];
+- longbuffer[1] = '\0';
+- strcat(longbuffer, uwords[j]);
++ if (GTry(longbuffer, password))
++ {
++ return _("it's derived from your password entry");
++ }
++ }
+
+- if (GTry(longbuffer, password))
++ if (strlen(uwords[j]) < STRINGSIZE - 1)
+ {
+- return _("it is derivable from your password entry");
++ longbuffer[0] = uwords[i][0];
++ longbuffer[1] = '\0';
++ strcat(longbuffer, uwords[j]);
++
++ if (GTry(longbuffer, password))
++ {
++ return _("it is derivable from your password entry");
++ }
+ }
+
+- longbuffer[0] = uwords[j][0];
+- longbuffer[1] = '\0';
+- strcat(longbuffer, uwords[i]);
+-
+- if (GTry(longbuffer, password))
++ if (strlen(uwords[i]) < STRINGSIZE - 1)
+ {
+- return _("it's derivable from your password entry");
++ longbuffer[0] = uwords[j][0];
++ longbuffer[1] = '\0';
++ strcat(longbuffer, uwords[i]);
++
++ if (GTry(longbuffer, password))
++ {
++ return _("it's derivable from your password entry");
++ }
+ }
+ }
+ }
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb b/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
index 3bd3f9367..82995219d 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
@@ -4,15 +4,13 @@ HOMEPAGE = "http://sourceforge.net/projects/cracklib"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
-DEPENDS = "cracklib-native zlib python"
-RDEPEND_${PN}-python += "python"
+DEPENDS = "cracklib-native zlib"
-PACKAGES += "${PN}-python"
-
-EXTRA_OECONF = "--with-python --libdir=${base_libdir}"
+EXTRA_OECONF = "--without-python --libdir=${base_libdir}"
SRC_URI = "${SOURCEFORGE_MIRROR}/cracklib/cracklib-${PV}.tar.gz \
file://0001-packlib.c-support-dictionary-byte-order-dependent.patch \
+ file://0001-Apply-patch-to-fix-CVE-2016-6318.patch \
file://0002-craklib-fix-testnum-and-teststr-failed.patch"
SRC_URI[md5sum] = "376790a95c1fb645e59e6e9803c78582"
@@ -21,27 +19,11 @@ SRC_URI[sha256sum] = "59ab0138bc8cf90cccb8509b6969a024d5e58d2d02bcbdccbb9ba9b88b
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/cracklib/files/cracklib/"
UPSTREAM_CHECK_REGEX = "/cracklib/(?P<pver>(\d+[\.\-_]*)+)/"
-inherit autotools gettext pythonnative python-dir
+inherit autotools gettext
do_install_append_class-target() {
create-cracklib-dict -o ${D}${datadir}/cracklib/pw_dict ${D}${datadir}/cracklib/cracklib-small
}
-do_install_append() {
- src_dir="${D}${base_libdir}/${PYTHON_DIR}/site-packages"
- rm -f $src_dir/test_cracklib.py*
-
- if [ "${base_libdir}" != "${libdir}" ] ; then
- # Move python files from ${base_libdir} to ${libdir} since used --libdir=${base_libdir}
- install -d -m 0755 ${D}${PYTHON_SITEPACKAGES_DIR}/
- mv $src_dir/* ${D}${PYTHON_SITEPACKAGES_DIR}
- rm -fr ${D}${base_libdir}/${PYTHON_DIR}
- fi
-}
-
BBCLASSEXTEND = "native nativesdk"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/cracklib.py* \
- ${PYTHON_SITEPACKAGES_DIR}/_cracklib.*"
-
-FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/_cracklib.a"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch b/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch
index 675872c3c..6c928165c 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie/crond_pam_config.patch
@@ -4,16 +4,19 @@ configure files instead.
Upstream-Status: Pending
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
---- cronie-1.4.7/pam/crond.orig 2010-12-16 16:59:02.000000000 +0800
-+++ cronie-1.4.7/pam/crond 2011-07-20 09:47:16.080819203 +0800
-@@ -4,7 +4,7 @@
+Index: cronie-1.5.1/pam/crond
+===================================================================
+--- cronie-1.5.1.orig/pam/crond
++++ cronie-1.5.1/pam/crond
+@@ -4,8 +4,8 @@
#
- # No PAM authentication called, auth modules not needed
+ # Although no PAM authentication is called, auth modules
+ # are used for credential setting
+-auth include password-auth
++auth include common-auth
account required pam_access.so
-account include password-auth
+account include common-account
session required pam_loginuid.so
-session include password-auth
--auth include password-auth
+session include common-session-noninteractive
-+auth include common-auth
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb b/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb
deleted file mode 100644
index 697501ac1..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.0.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-SUMMARY = "Cron daemon for executing programs at set times"
-DESCRIPTION = "Cronie contains the standard UNIX daemon crond that runs \
-specified programs at scheduled times and related tools. It is based on the \
-original cron and has security and configuration enhancements like the \
-ability to use pam and SELinux."
-HOMEPAGE = "https://fedorahosted.org/cronie/"
-BUGTRACKER = "https://bugzilla.redhat.com"
-
-# Internet Systems Consortium License
-LICENSE = "ISC & BSD-3-Clause & BSD-2-Clause & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd2a592170760e1386c769e1043b3722 \
- file://src/cron.c;endline=20;md5=b425c334265026177128353a142633b4 \
- file://src/popen.c;beginline=3;endline=31;md5=edd50742d8def712e9472dba353668a9"
-
-SECTION = "utils"
-
-SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
- file://crond.init \
- file://crontab \
- file://crond.service \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
-
-PAM_SRC_URI = "file://crond_pam_config.patch"
-PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid"
-
-SRC_URI[md5sum] = "9db75e1884d83a45e002d145c6c54d45"
-SRC_URI[sha256sum] = "9cf0e3f4f5042a9c09413d62c8e0c055e12401f70b112465f0f81f2c84ebfb3f"
-
-inherit autotools update-rc.d useradd systemd
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
-
-PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}"
-
-INITSCRIPT_NAME = "crond"
-INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system crontab"
-
-SYSTEMD_SERVICE_${PN} = "crond.service"
-
-do_install_append () {
- install -d ${D}${sysconfdir}/sysconfig/
- install -d ${D}${sysconfdir}/init.d/
- install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
- install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
-
- # install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_unitdir}/system/crond.service
-
- # below are necessary for a complete cron environment
- install -d ${D}${localstatedir}/spool/cron
- install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/
- mkdir -p ${D}${sysconfdir}/cron.d
- mkdir -p ${D}${sysconfdir}/cron.hourly
- mkdir -p ${D}${sysconfdir}/cron.daily
- mkdir -p ${D}${sysconfdir}/cron.weekly
- mkdir -p ${D}${sysconfdir}/cron.monthly
- touch ${D}${sysconfdir}/cron.deny
-
- # below setting is necessary to allow normal user using crontab
-
- # setgid for crontab binary
- chown root:crontab ${D}${bindir}/crontab
- chmod 2755 ${D}${bindir}/crontab
-
- # allow 'crontab' group write to /var/spool/cron
- chown root:crontab ${D}${localstatedir}/spool/cron
- chmod 770 ${D}${localstatedir}/spool/cron
-
- chmod 600 ${D}${sysconfdir}/crontab
-}
-
-FILES_${PN} += "${sysconfdir}/cron*"
-CONFFILES_${PN} += "${sysconfdir}/crontab"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.1.bb b/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.1.bb
new file mode 100644
index 000000000..99b2bb5c8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/cronie/cronie_1.5.1.bb
@@ -0,0 +1,81 @@
+SUMMARY = "Cron daemon for executing programs at set times"
+DESCRIPTION = "Cronie contains the standard UNIX daemon crond that runs \
+specified programs at scheduled times and related tools. It is based on the \
+original cron and has security and configuration enhancements like the \
+ability to use pam and SELinux."
+HOMEPAGE = "https://fedorahosted.org/cronie/"
+BUGTRACKER = "https://bugzilla.redhat.com"
+
+# Internet Systems Consortium License
+LICENSE = "ISC & BSD-3-Clause & BSD-2-Clause & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=dd2a592170760e1386c769e1043b3722 \
+ file://src/cron.c;endline=20;md5=b425c334265026177128353a142633b4 \
+ file://src/popen.c;beginline=3;endline=31;md5=edd50742d8def712e9472dba353668a9"
+
+SECTION = "utils"
+
+SRC_URI = "https://fedorahosted.org/releases/c/r/cronie/cronie-${PV}.tar.gz \
+ file://crond.init \
+ file://crontab \
+ file://crond.service \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
+
+PAM_SRC_URI = "file://crond_pam_config.patch"
+PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid"
+
+SRC_URI[md5sum] = "910e6effcc032998b0a49fbd46322e18"
+SRC_URI[sha256sum] = "6c73666102a6b5d35e2eaf1bd06925f2d4b0cef8d3323c37286dda3089a85338"
+
+inherit autotools update-rc.d useradd systemd
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+
+PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit,"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,${PAM_DEPS}"
+
+INITSCRIPT_NAME = "crond"
+INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system crontab"
+
+SYSTEMD_SERVICE_${PN} = "crond.service"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
+ install -m 0755 ${WORKDIR}/crond.init ${D}${sysconfdir}/init.d/crond
+
+ # install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/crond.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/crond.service
+
+ # below are necessary for a complete cron environment
+ install -d ${D}${localstatedir}/spool/cron
+ install -m 0755 ${WORKDIR}/crontab ${D}${sysconfdir}/
+ mkdir -p ${D}${sysconfdir}/cron.d
+ mkdir -p ${D}${sysconfdir}/cron.hourly
+ mkdir -p ${D}${sysconfdir}/cron.daily
+ mkdir -p ${D}${sysconfdir}/cron.weekly
+ mkdir -p ${D}${sysconfdir}/cron.monthly
+ touch ${D}${sysconfdir}/cron.deny
+
+ # below setting is necessary to allow normal user using crontab
+
+ # setgid for crontab binary
+ chown root:crontab ${D}${bindir}/crontab
+ chmod 2755 ${D}${bindir}/crontab
+
+ # allow 'crontab' group write to /var/spool/cron
+ chown root:crontab ${D}${localstatedir}/spool/cron
+ chmod 770 ${D}${localstatedir}/spool/cron
+
+ chmod 600 ${D}${sysconfdir}/crontab
+}
+
+FILES_${PN} += "${sysconfdir}/cron*"
+CONFFILES_${PN} += "${sysconfdir}/crontab"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cups/cups.inc b/import-layers/yocto-poky/meta/recipes-extended/cups/cups.inc
index 4b2d21409..02b6358af 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/cups/cups.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/cups/cups.inc
@@ -3,13 +3,13 @@ SECTION = "console/utils"
LICENSE = "GPLv2 & LGPLv2"
DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib libusb"
-SRC_URI = "https://www.cups.org/software/${PV}/${BP}-source.tar.bz2 \
+SRC_URI = "https://github.com/apple/cups/releases/download/release-${PV}/${BP}-source.tar.gz \
file://use_echo_only_in_init.patch \
file://0001-don-t-try-to-run-generated-binaries.patch \
file://cups_serverbin.patch \
"
-UPSTREAM_CHECK_URI = "http://www.cups.org/software.php"
+UPSTREAM_CHECK_URI = "https://github.com/apple/cups/releases"
UPSTREAM_CHECK_REGEX = "cups-(?P<pver>\d+\.\d+(\.\d+)?)-source.tar"
LEAD_SONAME = "libcupsdriver.so"
@@ -44,6 +44,7 @@ EXTRA_OECONF = " \
--without-perl \
--without-python \
--without-java \
+ DSOFLAGS='${LDFLAGS}' \
"
EXTRA_AUTORECONF += "--exclude=autoheader"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.3.bb b/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.3.bb
deleted file mode 100644
index aef211d91..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.3.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=6c5a350596fba02754bd96eb6df3afd0"
-
-SRC_URI[md5sum] = "62b8fafd590e75f72316915790b0850a"
-SRC_URI[sha256sum] = "36a70d43584aea2617da914b9331e23341c3501a8254c4d2eae9c11ec01fd4d3"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.4.bb b/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.4.bb
new file mode 100644
index 000000000..0fab806f9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/cups/cups_2.1.4.bb
@@ -0,0 +1,6 @@
+require cups.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=6c5a350596fba02754bd96eb6df3afd0"
+
+SRC_URI[md5sum] = "9f9bf6e3b9c20a3519b4dc409666d6e7"
+SRC_URI[sha256sum] = "4b14fd833180ac529ebebea766a09094c2568bf8426e219cb3a1715304ef728d"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch
index cc05d1dc0..f8638bbff 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/diffutils_fix_for_automake-1.12.patch
@@ -10,7 +10,7 @@ this patch avoids these kinds of errors:
| configure.ac:90: the top level
| autom4te: m4 failed with exit status: 1
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: diffutils-2.8.1/m4/prereq.m4
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch
new file mode 100644
index 000000000..f915287fe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-2.8.1/fix_gcc6.patch
@@ -0,0 +1,31 @@
+Fixes to allow diffutils to build with gcc v6.
+
+RP
+2016/5/25
+
+Index: diffutils-2.8.1/lib/posix/regex.h
+===================================================================
+--- diffutils-2.8.1.orig/lib/posix/regex.h
++++ diffutils-2.8.1/lib/posix/regex.h
+@@ -529,7 +529,9 @@ extern int re_exec _RE_ARGS ((const char
+ /* For now unconditionally define __restrict_arr to expand to nothing.
+ Ideally we would have a test for the compiler which allows defining
+ it to restrict. */
++#ifndef __restrict_arr
+ #define __restrict_arr
++#endif
+
+ /* POSIX compatibility. */
+ extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
+Index: diffutils-2.8.1/src/diff.c
+===================================================================
+--- diffutils-2.8.1.orig/src/diff.c
++++ diffutils-2.8.1/src/diff.c
+@@ -71,6 +71,7 @@ static void usage (void);
+ static bool recursive;
+
+ /* In context diffs, show previous lines that match these regexps. */
++struct re_pattern_buffer function_regexp;
+ static struct regexp_list function_regexp_list;
+
+ /* Ignore changes affecting only lines that match these regexps. */
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/0001-Unset-need_charset_alias-when-building-for-musl.patch b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/0001-Unset-need_charset_alias-when-building-for-musl.patch
index ba1a4bab4..ba1a4bab4 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/0001-Unset-need_charset_alias-when-building-for-musl.patch
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/run-ptest b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/run-ptest
index 695c5e8a7..695c5e8a7 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.3/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils-3.4/run-ptest
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_2.8.1.bb b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_2.8.1.bb
index bf425bbb3..fe56f9ce5 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_2.8.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_2.8.1.bb
@@ -6,7 +6,8 @@ require diffutils.inc
PR = "r7.0"
SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.gz \
- file://diffutils_fix_for_automake-1.12.patch"
+ file://diffutils_fix_for_automake-1.12.patch \
+ file://fix_gcc6.patch"
SRC_URI[md5sum] = "71f9c5ae19b60608f6c7f162da86a428"
SRC_URI[sha256sum] = "c5001748b069224dd98bf1bb9ee877321c7de8b332c8aad5af3e2a7372d23f5a"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.3.bb b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.3.bb
deleted file mode 100644
index 5008690ea..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.3.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-require diffutils.inc
-
-SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- file://run-ptest \
-"
-
-EXTRA_OECONF += "--without-libsigsegv-prefix"
-
-do_configure_prepend () {
- # Need to remove gettext macros with weird mix of versions
- for i in codeset.m4 gettext_gl.m4 intlmacosx.m4 inttypes-pri.m4 lib-ld_gl.m4 lib-prefix_gl.m4 po_gl.m4 ssize_t.m4 wchar_t.m4 wint_t.m4; do
- rm -f ${S}/m4/$i
- done
-}
-
-SRC_URI[md5sum] = "99180208ec2a82ce71f55b0d7389f1b3"
-SRC_URI[sha256sum] = "a25e89a8ab65fded1731e4186be1bb25cda967834b6df973599cdcd5abdfc19c"
-
-inherit ptest
-
-do_install_ptest() {
- t=${D}${PTEST_PATH}
- install -D ${S}/build-aux/test-driver $t/build-aux/test-driver
- cp -r ${S}/tests $t/
- install ${B}/tests/Makefile $t/tests/
- sed -e 's|^Makefile:|_Makefile:|' \
- -e 's|bash|sh|' \
- -e 's|^top_srcdir = \(.*\)|top_srcdir = ..\/|' \
- -e 's|^srcdir = \(.*\)|srcdir = .|' \
- -e 's|"`$(built_programs)`"|diff|' \
- -e 's|gawk|awk|g' \
- -i $t/tests/Makefile
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.4.bb b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.4.bb
new file mode 100644
index 000000000..cb7092b51
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/diffutils/diffutils_3.4.bb
@@ -0,0 +1,37 @@
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+require diffutils.inc
+
+SRC_URI = "${GNU_MIRROR}/diffutils/diffutils-${PV}.tar.xz \
+ file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
+ file://run-ptest \
+"
+
+EXTRA_OECONF += "--without-libsigsegv-prefix"
+
+do_configure_prepend () {
+ # Need to remove gettext macros with weird mix of versions
+ for i in codeset.m4 gettext_gl.m4 intlmacosx.m4 inttypes-pri.m4 lib-ld_gl.m4 lib-prefix_gl.m4 po_gl.m4 ssize_t.m4 wchar_t.m4 wint_t.m4; do
+ rm -f ${S}/m4/$i
+ done
+}
+
+SRC_URI[md5sum] = "df9ca465f30307cffd03da176a43a5d4"
+SRC_URI[sha256sum] = "db53c025f2ac3d217bcf753dad6dee7b410b33d0948495ff015aaf8b91189ce2"
+
+inherit ptest
+
+do_install_ptest() {
+ t=${D}${PTEST_PATH}
+ install -D ${S}/build-aux/test-driver $t/build-aux/test-driver
+ cp -r ${S}/tests $t/
+ install ${B}/tests/Makefile $t/tests/
+ sed -e 's|^Makefile:|_Makefile:|' \
+ -e 's|bash|sh|' \
+ -e 's|^top_srcdir = \(.*\)|top_srcdir = ..\/|' \
+ -e 's|^srcdir = \(.*\)|srcdir = .|' \
+ -e 's|"`$(built_programs)`"|diff|' \
+ -e 's|gawk|awk|g' \
+ -i $t/tests/Makefile
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.2.bb b/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.2.bb
deleted file mode 100644
index 95df784c4..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Display or change ethernet card settings"
-DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces."
-HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/"
-SECTION = "console/network"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216"
-
-SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
- file://run-ptest \
- file://avoid_parallel_tests.patch \
- "
-
-SRC_URI[md5sum] = "5b55f7cd76e901dfc2738ac22cab96ca"
-SRC_URI[sha256sum] = "f84226db8dd18afaf91d8d00f5cb8f87ec3d7f787d2a3605de08d6dfa95ab8ef"
-
-inherit autotools ptest
-RDEPENDS_${PN}-ptest += "make"
-
-do_compile_ptest() {
- oe_runmake buildtest-TESTS
-}
-
-do_install_ptest () {
- cp ${B}/Makefile ${D}${PTEST_PATH}
- install ${B}/test-cmdline ${D}${PTEST_PATH}
- install ${B}/test-features ${D}${PTEST_PATH}
- install ${B}/ethtool ${D}${PTEST_PATH}/ethtool
- sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.6.bb b/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.6.bb
new file mode 100644
index 000000000..788d4ea35
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/ethtool/ethtool_4.6.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Display or change ethernet card settings"
+DESCRIPTION = "A small utility for examining and tuning the settings of your ethernet-based network interfaces."
+HOMEPAGE = "http://www.kernel.org/pub/software/network/ethtool/"
+SECTION = "console/network"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://ethtool.c;beginline=4;endline=17;md5=c19b30548c582577fc6b443626fc1216"
+
+SRC_URI = "${KERNELORG_MIRROR}/software/network/ethtool/ethtool-${PV}.tar.gz \
+ file://run-ptest \
+ file://avoid_parallel_tests.patch \
+ "
+
+SRC_URI[md5sum] = "1186dd83a0384109b92c6cd40a7bb0e5"
+SRC_URI[sha256sum] = "ad45620887f7e61312fc2f9ca3fd50d49ac7737ed874b0b02845d07e0fa3ca49"
+
+inherit autotools ptest
+RDEPENDS_${PN}-ptest += "make"
+
+do_compile_ptest() {
+ oe_runmake buildtest-TESTS
+}
+
+do_install_ptest () {
+ cp ${B}/Makefile ${D}${PTEST_PATH}
+ install ${B}/test-cmdline ${D}${PTEST_PATH}
+ install ${B}/test-features ${D}${PTEST_PATH}
+ install ${B}/ethtool ${D}${PTEST_PATH}/ethtool
+ sed -i 's/^Makefile/_Makefile/' ${D}${PTEST_PATH}/Makefile
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch
index 2d0ddb43f..1b7f8cfb9 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/findutils/findutils-4.2.31/findutils_fix_for_automake-1.12.patch
@@ -6,7 +6,7 @@ this patch avoids these kinds of errors:
| configure.in:75: error: automatic de-ANSI-fication support has been removed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: findutils-4.2.31/configure.in
diff --git a/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch
new file mode 100644
index 000000000..aaedc88aa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8327.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Backport
+
+
+http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7406
+
+Hand applied change to util.c. Fix was for cups-filters but also applied to foomatic-filters.
+
+CVE: CVE-2015-8327
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: util.c
+===================================================================
+--- a/util.c
++++ b/util.c
+@@ -31,7 +31,7 @@
+ #include <assert.h>
+
+
+-const char* shellescapes = "|;<>&!$\'\"#*?()[]{}";
++const char* shellescapes = "|;<>&!$\'\"`#*?()[]{}";
+
+ const char * temp_dir()
+ {
diff --git a/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch
new file mode 100644
index 000000000..dc973c459
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters-4.0.17/CVE-2015-8560.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Backport
+
+
+http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/revision/7419
+
+Hand applied change to util.c. Fix was for cups-filters but also applied to foomatic-filters.
+
+CVE: CVE-2015-8560
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+Index: util.c
+===================================================================
+--- a/util.c
++++ b/util.c
+@@ -31,7 +31,7 @@
+ #include <assert.h>
+
+
+-const char* shellescapes = "|<>&!$\'\"#*?()[]{}";
++const char* shellescapes = "|;<>&!$\'\"#*?()[]{}";
+
+ const char * temp_dir()
+ {
diff --git a/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb
index 0cffedd66..3f439e713 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/foomatic/foomatic-filters_4.0.17.bb
@@ -17,6 +17,10 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/foomatic-filters-${PV}/COPYING;md5=393a5ca
SRC_URI = "http://www.openprinting.org/download/foomatic/foomatic-filters-${PV}.tar.gz"
+SRC_URI += "file://CVE-2015-8560.patch \
+ file://CVE-2015-8327.patch \
+ "
+
SRC_URI[md5sum] = "b05f5dcbfe359f198eef3df5b283d896"
SRC_URI[sha256sum] = "a2e2e53e502571e88eeb9010c45a0d54671f15707ee104f5c9c22b59ea7a33e3"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch
new file mode 100644
index 000000000..bc9201b63
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/0001-gawk-fix-non-glibc-gcc-4-compilation.patch
@@ -0,0 +1,67 @@
+From 53496e2e306b16ac59801553f775bcca164e6a39 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Wed, 14 Sep 2016 16:20:37 +0100
+Subject: [PATCH] fix gcc >= 4 compilation
+
+| ../gawk-3.1.5/hard-locale.h: In function 'hard_locale':
+| ../gawk-3.1.5/hard-locale.h:43:20: error: invalid storage class for function 'xmalloc'
+| static ptr_t xmalloc PARAMS ((size_t n));
+| ^~~~~~~
+
+| ../gawk-3.1.5/hard-locale.h:45:22: warning: implicit declaration of function 'xmalloc' [-Wimplicit-function-declaration]
+| char *locale = xmalloc (strlen (p) + 1);
+| ^~~~~~~
+| ../gawk-3.1.5/hard-locale.h:45:22: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
+| ../gawk-3.1.5/dfa.c: At top level:
+| ../gawk-3.1.5/dfa.c:125:14: error: conflicting types for 'xmalloc'
+| static ptr_t xmalloc PARAMS ((size_t n));
+| ^~~~~~~
+| In file included from ../gawk-3.1.5/dfa.c:112:0:
+| ../gawk-3.1.5/hard-locale.h:45:22: note: previous implicit declaration of 'xmalloc' was here
+| char *locale = xmalloc (strlen (p) + 1);
+| ^~~~~~~
+
+Upstream-Status: Inappropriate [required for gawk 3.1.5 (GPLv2) recipe only]
+
+Signed-off-by: André Draszik <git@andred.net>
+---
+ dfa.c | 2 +-
+ hard-locale.h | 2 --
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/dfa.c b/dfa.c
+index 71e3736..97f6045 100644
+--- a/dfa.c
++++ b/dfa.c
+@@ -109,6 +109,7 @@ extern void free();
+
+ #include "regex.h"
+ #include "dfa.h"
++static ptr_t xmalloc PARAMS ((size_t n));
+ #include "hard-locale.h"
+
+ /* HPUX, define those as macros in sys/param.h */
+@@ -122,7 +123,6 @@ extern void free();
+ static void dfamust PARAMS ((struct dfa *dfa));
+
+ static ptr_t xcalloc PARAMS ((size_t n, size_t s));
+-static ptr_t xmalloc PARAMS ((size_t n));
+ static ptr_t xrealloc PARAMS ((ptr_t p, size_t n));
+ #ifdef DEBUG
+ static void prtok PARAMS ((token t));
+diff --git a/hard-locale.h b/hard-locale.h
+index 0f4986b..9ee57e0 100644
+--- a/hard-locale.h
++++ b/hard-locale.h
+@@ -40,8 +40,6 @@ hard_locale (int category)
+ if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
+ hard = 0;
+ # else
+- static ptr_t xmalloc PARAMS ((size_t n));
+-
+ char *locale = xmalloc (strlen (p) + 1);
+ strcpy (locale, p);
+
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch
index b3e7987ce..c42c33c42 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk-3.1.5/gawk-3.1.5_fix_for_automake-1.12.patch
@@ -11,7 +11,7 @@ this patch avoids these kinds of errors:
...
| Makefile.am:27: error: automatic de-ANSI-fication support has been removed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: gawk-3.1.5/configure.ac
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk_3.1.5.bb b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk_3.1.5.bb
index 7c92bded3..63fd32f4b 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk_3.1.5.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/gawk/gawk_3.1.5.bb
@@ -15,8 +15,11 @@ RDEPENDS_gawk += "gawk-common"
RDEPENDS_pgawk += "gawk-common"
PR = "r2"
-SRC_URI = "${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
- file://gawk-3.1.5_fix_for_automake-1.12.patch"
+SRC_URI = "\
+ ${GNU_MIRROR}/gawk/gawk-${PV}.tar.gz \
+ file://gawk-3.1.5_fix_for_automake-1.12.patch \
+ file://0001-gawk-fix-non-glibc-gcc-4-compilation.patch \
+"
SRC_URI[md5sum] = "4760325489479cac17fe0114b8f62f30"
SRC_URI[sha256sum] = "463dcb9d0ca398b1d4f5a332f6cd9cec56441265fca616f2ea1b44d459e9f0f8"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0001-Bug-696497-Fix-support-for-building-with-no-jbig2-de.patch b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0001-Bug-696497-Fix-support-for-building-with-no-jbig2-de.patch
deleted file mode 100644
index d586a1d6d..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0001-Bug-696497-Fix-support-for-building-with-no-jbig2-de.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 1d19998091154f89b8294e4594a05986b4c2f822 Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Wed, 13 Jan 2016 02:08:42 -0500
-Subject: [PATCH 1/2] Bug 696497: Fix support for building with no jbig2
- decoder
-
-Author: Chris Liddell <chris.liddell@artifex.com>
-
-Upstream-Status: Backport
-http://bugs.ghostscript.com/show_bug.cgi?id=696497
-http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0f5a975
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- base/lib.mak | 9 +++++++++
- psi/int.mak | 23 ++++++++++++++++++-----
- 2 files changed, 27 insertions(+), 5 deletions(-)
-
-diff --git a/base/lib.mak b/base/lib.mak
-index 241df2f..daa7056 100644
---- a/base/lib.mak
-+++ b/base/lib.mak
-@@ -1732,6 +1732,10 @@ $(GLD)sjbig2_jbig2dec.dev : $(LIB_MAK) $(ECHOGS_XE) \
- $(SETMOD) $(GLD)sjbig2_jbig2dec $(sjbig2_jbig2dec)
- $(ADDMOD) $(GLD)sjbig2_jbig2dec -include $(GLD)jbig2dec.dev
-
-+$(GLD)sjbig2_.dev : $(LIB_MAK) $(ECHOGS_XE) \
-+ $(LIB_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(GLD)sjbig2_
-+
- # jbig2dec.dev is defined in jbig2.mak
-
- $(GLOBJ)sjbig2.$(OBJ) : $(GLSRC)sjbig2.c $(AK) \
-@@ -1739,6 +1743,11 @@ $(GLOBJ)sjbig2.$(OBJ) : $(GLSRC)sjbig2.c $(AK) \
- $(sjbig2_h) $(strimpl_h) $(MAKEDIRS)
- $(GLJBIG2CC) $(GLO_)sjbig2.$(OBJ) $(C_) $(GLSRC)sjbig2.c
-
-+$(GLOBJ)snojbig2.$(OBJ) : $(GLSRC)snojbig2.c $(AK) \
-+ $(stdint__h) $(memory__h) $(stdio__h) $(gserrors_h) $(gdebug_h) \
-+ $(strimpl_h) $(LIB_MAK) $(MAKEDIRS)
-+ $(GLJBIG2CC) $(GLO_)snojbig2.$(OBJ) $(C_) $(GLSRC)snojbig2.c
-+
- # luratech version
- sjbig2_luratech=$(GLOBJ)sjbig2_luratech.$(OBJ)
-
-diff --git a/psi/int.mak b/psi/int.mak
-index 6149a3b..f9d667d 100644
---- a/psi/int.mak
-+++ b/psi/int.mak
-@@ -1254,11 +1254,24 @@ $(PSOBJ)zfaes.$(OBJ) : $(PSSRC)zfaes.c $(OP) $(memory__h)\
- # this can be turned on and off with a FEATURE_DEV
-
- fjbig2_=$(PSOBJ)zfjbig2_$(JBIG2_LIB).$(OBJ)
--$(PSD)jbig2.dev : $(INT_MAK) $(ECHOGS_XE) $(fjbig2_) $(GLD)sjbig2.dev\
-- $(MAKEDIRS)
-- $(SETMOD) $(PSD)jbig2 $(fjbig2_)
-- $(ADDMOD) $(PSD)jbig2 -include $(GLD)sjbig2
-- $(ADDMOD) $(PSD)jbig2 -oper zfjbig2
-+
-+$(PSD)jbig2_jbig2dec.dev : $(ECHOGS_XE) $(fjbig2_) $(GLD)sjbig2.dev\
-+ $(INT_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(PSD)jbig2_jbig2dec $(fjbig2_)
-+ $(ADDMOD) $(PSD)jbig2_jbig2dec -include $(GLD)sjbig2
-+ $(ADDMOD) $(PSD)jbig2_jbig2dec -oper zfjbig2
-+
-+$(PSD)jbig2_luratech.dev : $(ECHOGS_XE) $(fjbig2_) $(GLD)sjbig2.dev\
-+ $(INT_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(PSD)jbig2_luratech $(fjbig2_)
-+ $(ADDMOD) $(PSD)jbig2_luratech -include $(GLD)sjbig2
-+ $(ADDMOD) $(PSD)jbig2_luratech -oper zfjbig2
-+
-+$(PSD)jbig2_.dev : $(ECHOGS_XE) $(INT_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(PSD)jbig2_
-+
-+$(PSD)jbig2.dev : $(PSD)jbig2_$(JBIG2_LIB).dev $(INT_MAK) $(MAKEDIRS)
-+ $(CP_) $(PSD)jbig2_$(JBIG2_LIB).dev $(PSD)jbig2.dev
-
- $(PSOBJ)zfjbig2_jbig2dec.$(OBJ) : $(PSSRC)zfjbig2.c $(OP) $(memory__h)\
- $(gsstruct_h) $(gstypes_h) $(ialloc_h) $(idict_h) $(ifilter_h)\
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0002-Bug-696497-part-2-fix-support-for-building-with-a-JP.patch b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0002-Bug-696497-part-2-fix-support-for-building-with-a-JP.patch
deleted file mode 100644
index fcfc479fb..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/0002-Bug-696497-part-2-fix-support-for-building-with-a-JP.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 3b43f93ec02611c4d554612953f5b64765b8683b Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Wed, 13 Jan 2016 02:14:55 -0500
-Subject: [PATCH 2/2] Bug 696497 (part 2): fix support for building with a JPX
- decoder
-
-Author: Chris Liddell <chris.liddell@artifex.com>
-
-Upstream-Status: Backport
-http://bugs.ghostscript.com/show_bug.cgi?id=696497
-http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0f5a975
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- base/lib.mak | 3 +++
- psi/int.mak | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/base/lib.mak b/base/lib.mak
-index daa7056..8853dd5 100644
---- a/base/lib.mak
-+++ b/base/lib.mak
-@@ -1774,6 +1774,9 @@ $(GLOBJ)sjpx.$(OBJ) : $(GLSRC)sjpx.c $(AK) \
- $(gdebug_h) $(strimpl_h) $(sjpx_h) $(MAKEDIRS)
- $(GLJASCC) $(GLO_)sjpx.$(OBJ) $(C_) $(GLSRC)sjpx.c
-
-+$(GLD)sjpx_.dev : $(LIB_MAK) $(ECHOGS_XE) $(LIB_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(GLD)sjpx_
-+
- # luratech version
- sjpx_luratech=$(GLOBJ)sjpx_luratech.$(OBJ)
- $(GLD)sjpx_luratech.dev : $(LIB_MAK) $(ECHOGS_XE) \
-diff --git a/psi/int.mak b/psi/int.mak
-index f9d667d..db01b65 100644
---- a/psi/int.mak
-+++ b/psi/int.mak
-@@ -1290,6 +1290,9 @@ $(PSD)jpx.dev : $(INT_MAK) $(ECHOGS_XE) $(PSD)jpx_$(JPX_LIB).dev\
- $(MAKEDIRS)
- $(CP_) $(PSD)jpx_$(JPX_LIB).dev $(PSD)jpx.dev
-
-+$(PSD)jpx_.dev : $(ECHOGS_XE) $(INT_MAK) $(MAKEDIRS)
-+ $(SETMOD) $(PSD)jpx_
-+
- fjpx_luratech=$(PSOBJ)zfjpx_luratech.$(OBJ)
-
- $(PSOBJ)zfjpx.$(OBJ) : $(PSSRC)zfjpx.c $(OP) $(memory__h)\
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
index b445a6c9e..c3e44fe86 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/files/do-not-check-local-libpng-source.patch
@@ -16,17 +16,17 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index ab30a97..b762fd7 100644
+index bf6d3f5..01df03f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -955,11 +955,11 @@ AC_SUBST(ZLIBDIR)
+@@ -930,11 +930,11 @@ AC_SUBST(ZLIBDIR)
AC_SUBST(FT_SYS_ZLIB)
dnl png for the png output device; it also requires zlib
-LIBPNGDIR=src
+LIBPNGDIR=$srcdir/libpng
PNGDEVS=''
- PNGDEVS_ALL='png48 png16m pnggray pngmono png256 png16 pngalpha'
+ PNGDEVS_ALL='png48 png16m pnggray pngmono pngmonod png256 png16 pngalpha'
AC_MSG_CHECKING([for local png library source])
-if test -f $srcdir/libpng/pngread.c; then
+if false; then
@@ -34,5 +34,5 @@ index ab30a97..b762fd7 100644
SHARE_LIBPNG=0
LIBPNGDIR=$srcdir/libpng
--
-1.9.1
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-prevent_recompiling.patch b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-prevent_recompiling.patch
index bc29be507..e709195d8 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-prevent_recompiling.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/ghostscript-9.02-prevent_recompiling.patch
@@ -1,4 +1,4 @@
-ust use commands provided by ghostscript-native, preventing recompile them when
+Just use commands provided by ghostscript-native, preventing recompile them when
compile ghostscript.
Way to enable cross compile.
@@ -7,94 +7,93 @@ Upstream-Status: Pending
Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+Rebase to 9.19
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ base/unix-aux.mak | 64 +++++++++++++++++++++++++++----------------------------
+ 1 file changed, 32 insertions(+), 32 deletions(-)
+
diff --git a/base/unix-aux.mak b/base/unix-aux.mak
-index a91fb26..c991d11 100644
+index 0110667..e2eb1a1 100644
--- a/base/unix-aux.mak
+++ b/base/unix-aux.mak
-@@ -69,46 +69,46 @@ $(GLOBJ)gp_sysv.$(OBJ): $(GLSRC)gp_sysv.c $(stdio__h) $(time__h) $(AK)\
- $(MAKEDIRS)
- $(GLCC) $(GLO_)gp_sysv.$(OBJ) $(C_) $(GLSRC)gp_sysv.c
+@@ -71,44 +71,44 @@ $(GLOBJ)gp_sysv.$(OBJ): $(GLSRC)gp_sysv.c $(stdio__h) $(time__h) $(AK)\
--# -------------------------- Auxiliary programs --------------------------- #
--
--$(ECHOGS_XE): $(GLSRC)echogs.c $(AK) $(stdpre_h) $(MAKEDIRS)
+ # -------------------------- Auxiliary programs --------------------------- #
+
+-$(ECHOGS_XE): $(GLSRC)echogs.c $(AK) $(stdpre_h) $(UNIX_AUX_MAK) $(MAKEDIRS)
- $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(ECHOGS_XE) $(GLSRC)echogs.c $(AUXEXTRALIBS)
-
--# On the RS/6000 (at least), compiling genarch.c with gcc with -O
--# produces a buggy executable.
--$(GENARCH_XE): $(GLSRC)genarch.c $(AK) $(GENARCH_DEPS) $(MAKEDIRS)
++#$(ECHOGS_XE): $(GLSRC)echogs.c $(AK) $(stdpre_h) $(UNIX_AUX_MAK) $(MAKEDIRS)
++# $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(ECHOGS_XE) $(GLSRC)echogs.c $(AUXEXTRALIBS)
++#
+ # On the RS/6000 (at least), compiling genarch.c with gcc with -O
+ # produces a buggy executable.
+-$(GENARCH_XE): $(GLSRC)genarch.c $(AK) $(GENARCH_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
- $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENARCH_XE) $(GLSRC)genarch.c $(AUXEXTRALIBS)
-
--$(GENCONF_XE): $(GLSRC)genconf.c $(AK) $(GENCONF_DEPS) $(MAKEDIRS)
+-$(GENCONF_XE): $(GLSRC)genconf.c $(AK) $(GENCONF_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
- $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENCONF_XE) $(GLSRC)genconf.c $(AUXEXTRALIBS)
-
--$(GENDEV_XE): $(GLSRC)gendev.c $(AK) $(GENDEV_DEPS) $(MAKEDIRS)
+-$(GENDEV_XE): $(GLSRC)gendev.c $(AK) $(GENDEV_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
- $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENDEV_XE) $(GLSRC)gendev.c $(AUXEXTRALIBS)
-
--$(GENHT_XE): $(GLSRC)genht.c $(AK) $(GENHT_DEPS) $(MAKEDIRS)
+-$(GENHT_XE): $(GLSRC)genht.c $(AK) $(GENHT_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
- $(CCAUX_) $(GENHT_CFLAGS) $(O_)$(GENHT_XE) $(GLSRC)genht.c $(AUXEXTRALIBS)
-
--# To get GS to use the system zlib, you remove/hide the gs/zlib directory
--# which means that the mkromfs build can't find the zlib source it needs.
--# So it's split into two targets, one using the zlib source directly.....
--MKROMFS_OBJS_0=$(MKROMFS_ZLIB_OBJS) $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
-- $(AUX)gscdefs.$(OBJ) $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
-- $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) $(AUX)memento.$(OBJ)
--
--$(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(MAKEDIRS)
-- $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_0 $(MKROMFS_OBJS_0) $(AUXEXTRALIBS)
--
--# .... and one using the zlib library linked via the command line
--MKROMFS_OBJS_1=$(AUX)gscdefs.$(OBJ) \
-- $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
-- $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
-- $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ)
--
--$(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(MAKEDIRS)
-- $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_1 $(MKROMFS_OBJS_1) $(AUXEXTRALIBS)
--
--$(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(MAKEDIRS)
-- $(CP_) $(MKROMFS_XE)_$(SHARE_ZLIB) $(MKROMFS_XE)
-+## -------------------------- Auxiliary programs --------------------------- #
-+#
-+#$(ECHOGS_XE): $(GLSRC)echogs.c $(AK) $(stdpre_h) $(MAKEDIRS)
-+# $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(ECHOGS_XE) $(GLSRC)echogs.c $(AUXEXTRALIBS)
-+#
-+## On the RS/6000 (at least), compiling genarch.c with gcc with -O
-+## produces a buggy executable.
-+#$(GENARCH_XE): $(GLSRC)genarch.c $(AK) $(GENARCH_DEPS) $(MAKEDIRS)
++#$(GENARCH_XE): $(GLSRC)genarch.c $(AK) $(GENARCH_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENARCH_XE) $(GLSRC)genarch.c $(AUXEXTRALIBS)
+#
-+#$(GENCONF_XE): $(GLSRC)genconf.c $(AK) $(GENCONF_DEPS) $(MAKEDIRS)
++#$(GENCONF_XE): $(GLSRC)genconf.c $(AK) $(GENCONF_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENCONF_XE) $(GLSRC)genconf.c $(AUXEXTRALIBS)
+#
-+#$(GENDEV_XE): $(GLSRC)gendev.c $(AK) $(GENDEV_DEPS) $(MAKEDIRS)
++#$(GENDEV_XE): $(GLSRC)gendev.c $(AK) $(GENDEV_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(I_)$(GLSRCDIR)$(_I) $(O_)$(GENDEV_XE) $(GLSRC)gendev.c $(AUXEXTRALIBS)
+#
-+#$(GENHT_XE): $(GLSRC)genht.c $(AK) $(GENHT_DEPS) $(MAKEDIRS)
++#$(GENHT_XE): $(GLSRC)genht.c $(AK) $(GENHT_DEPS) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(GENHT_CFLAGS) $(O_)$(GENHT_XE) $(GLSRC)genht.c $(AUXEXTRALIBS)
+#
-+## To get GS to use the system zlib, you remove/hide the gs/zlib directory
-+## which means that the mkromfs build can't find the zlib source it needs.
-+## So it's split into two targets, one using the zlib source directly.....
+ # To get GS to use the system zlib, you remove/hide the gs/zlib directory
+ # which means that the mkromfs build can't find the zlib source it needs.
+ # So it's split into two targets, one using the zlib source directly.....
+-MKROMFS_OBJS_0=$(MKROMFS_ZLIB_OBJS) $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
+- $(AUX)gscdefs.$(OBJ) $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
+- $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) $(AUX)memento.$(OBJ)
+-
+-$(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(UNIX_AUX_MAK) $(MAKEDIRS)
+- $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_0 $(MKROMFS_OBJS_0) $(AUXEXTRALIBS)
+-
+#MKROMFS_OBJS_0=$(MKROMFS_ZLIB_OBJS) $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
+# $(AUX)gscdefs.$(OBJ) $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
+# $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ) $(AUX)memento.$(OBJ)
+#
-+#$(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(MAKEDIRS)
++#$(MKROMFS_XE)_0: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_0) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_0 $(MKROMFS_OBJS_0) $(AUXEXTRALIBS)
+#
-+## .... and one using the zlib library linked via the command line
+ # .... and one using the zlib library linked via the command line
+-MKROMFS_OBJS_1=$(AUX)gscdefs.$(OBJ) \
+- $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
+- $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
+- $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ)
+-
+-$(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(UNIX_AUX_MAK) $(MAKEDIRS)
+- $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_1 $(MKROMFS_OBJS_1) $(AUXEXTRALIBS)
+-
+-$(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(UNIX_AUX_MAK) $(MAKEDIRS)
+- $(CP_) $(MKROMFS_XE)_$(SHARE_ZLIB) $(MKROMFS_XE)
+#MKROMFS_OBJS_1=$(AUX)gscdefs.$(OBJ) \
+# $(AUX)gpmisc.$(OBJ) $(AUX)gp_getnv.$(OBJ) \
+# $(AUX)gp_unix.$(OBJ) $(AUX)gp_unifs.$(OBJ) $(AUX)gp_unifn.$(OBJ) \
+# $(AUX)gp_stdia.$(OBJ) $(AUX)gsutil.$(OBJ)
+#
-+#$(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(MAKEDIRS)
++#$(MKROMFS_XE)_1: $(GLSRC)mkromfs.c $(MKROMFS_COMMON_DEPS) $(MKROMFS_OBJS_1) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CCAUX_) $(GENOPT) $(CFLAGS) $(I_)$(GLSRCDIR)$(_I) $(I_)$(GLOBJ)$(_I) $(I_)$(ZSRCDIR)$(_I) $(GLSRC)mkromfs.c $(O_)$(MKROMFS_XE)_1 $(MKROMFS_OBJS_1) $(AUXEXTRALIBS)
+#
-+#$(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(MAKEDIRS)
++#$(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(UNIX_AUX_MAK) $(MAKEDIRS)
+# $(CP_) $(MKROMFS_XE)_$(SHARE_ZLIB) $(MKROMFS_XE)
# Query the environment to construct gconfig_.h.
# These are all defined conditionally (except the JasPER one), so that
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/png_mak.patch b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/png_mak.patch
index da900ead3..8b84986ef 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/png_mak.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript/png_mak.patch
@@ -1,21 +1,32 @@
ghostscript: add dependency for pnglibconf.h
-
+
When using parallel make jobs, we need to be sure that
pnglibconf.h is created before we try to reference it,
so add a rule to png.mak.
Upstream-Status: Pending
-
+
Signed-off-by: Joe Slater <jslater@windriver.com>
+Rebase to 9.19
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ base/png.mak | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/base/png.mak b/base/png.mak
+index fe5c6e2..8abb53a 100644
--- a/base/png.mak
+++ b/base/png.mak
-@@ -81,6 +81,8 @@ png.config-clean :
- $(pnglibconf_h) : $(PNGSRC)scripts$(D)pnglibconf.h.prebuilt
- $(CP_) $(PNGSRC)scripts$(D)pnglibconf.h.prebuilt $(pnglibconf_h)
+@@ -74,6 +74,8 @@ png.clean-not-config-clean :
+
+ pnglibconf_h=$(PNGGENDIR)$(D)pnglibconf.h
+$(MAKEDIRS) : $(pnglibconf_h)
+
- PDEP=$(AK) $(pnglibconf_h) $(MAKEDIRS)
-
- png_1=$(PNGOBJ)png.$(OBJ) $(PNGOBJ)pngmem.$(OBJ) $(PNGOBJ)pngerror.$(OBJ) $(PNGOBJ)pngset.$(OBJ)
+ png.config-clean :
+ $(RM_) $(pnglibconf_h)
+ $(RM_) $(PNGGEN)lpg*.dev
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.18.bb b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.18.bb
deleted file mode 100644
index d4222c773..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.18.bb
+++ /dev/null
@@ -1,107 +0,0 @@
-SUMMARY = "The GPL Ghostscript PostScript/PDF interpreter"
-DESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \
-a back-end to a program such as ghostview, it can display PostScript and PDF \
-documents in an X11 environment. \
-\
-Furthermore, it can render PostScript and PDF files as graphics to be printed \
-on non-PostScript printers. Supported printers include common \
-dot-matrix, inkjet and laser models. \
-"
-HOMEPAGE = "http://www.ghostscript.com"
-SECTION = "console/utils"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b17cea54743435ab2a581c237bea294a"
-
-DEPENDS = "ghostscript-native tiff jpeg fontconfig cups libpng"
-DEPENDS_class-native = "libpng-native"
-
-SRC_URI_BASE = "http://downloads.ghostscript.com/public/ghostscript-${PV}.tar.gz \
- file://ghostscript-9.15-parallel-make.patch \
- file://ghostscript-9.16-Werror-return-type.patch \
- file://png_mak.patch \
- file://0001-Bug-696497-Fix-support-for-building-with-no-jbig2-de.patch \
- file://0002-Bug-696497-part-2-fix-support-for-building-with-a-JP.patch \
- file://do-not-check-local-libpng-source.patch \
-"
-
-SRC_URI = "${SRC_URI_BASE} \
- file://ghostscript-9.02-prevent_recompiling.patch \
- file://ghostscript-9.02-genarch.patch \
- file://objarch.h \
- file://cups-no-gcrypt.patch \
- "
-
-SRC_URI_class-native = "${SRC_URI_BASE} \
- file://ghostscript-native-fix-disable-system-libtiff.patch \
- file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
- "
-
-SRC_URI[md5sum] = "33a47567d7a591c00a253caddd12a88a"
-SRC_URI[sha256sum] = "5fc93079749a250be5404c465943850e3ed5ffbc0d5c07e10c7c5ee8afbbdb1b"
-
-EXTRA_OECONF = "--without-x --with-system-libtiff --without-jbig2dec \
- --with-fontpath=${datadir}/fonts \
- --without-libidn --with-cups-serverbin=${exec_prefix}/lib/cups \
- --with-cups-datadir=${datadir}/cups \
- ${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--enable-little-endian', '--enable-big-endian', d)} \
- "
-
-EXTRA_OECONF_append_mips = " --with-large_color_index=0"
-EXTRA_OECONF_append_mipsel = " --with-large_color_index=0"
-
-# Explicity disable libtiff, fontconfig,
-# freetype, cups for ghostscript-native
-EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
- --without-jbig2dec \
- --with-fontpath=${datadir}/fonts \
- --without-libidn --disable-fontconfig \
- --disable-freetype --disable-cups"
-
-# This has been fixed upstream but for now we need to subvert the check for time.h
-# http://bugs.ghostscript.com/show_bug.cgi?id=692443
-# http://bugs.ghostscript.com/show_bug.cgi?id=692426
-CFLAGS += "-DHAVE_SYS_TIME_H=1"
-BUILD_CFLAGS += "-DHAVE_SYS_TIME_H=1"
-
-inherit autotools
-
-do_configure_prepend () {
- mkdir -p obj
- mkdir -p soobj
- if [ -e ${WORKDIR}/objarch.h ]; then
- cp ${WORKDIR}/objarch.h obj/arch.h
- fi
-}
-
-do_configure_append () {
- # copy tools from the native ghostscript build
- if [ "${PN}" != "ghostscript-native" ]; then
- mkdir -p obj/aux soobj
- for i in genarch genconf mkromfs echogs gendev genht; do
- cp ${STAGING_BINDIR_NATIVE}/ghostscript-${PV}/$i obj/aux/$i
- done
- fi
-}
-
-do_install_append () {
- mkdir -p ${D}${datadir}/ghostscript/${PV}/
- cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/
- cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/
-}
-
-do_compile_class-native () {
- mkdir -p obj
- for i in genarch genconf mkromfs echogs gendev genht; do
- oe_runmake obj/aux/$i
- done
-}
-
-do_install_class-native () {
- install -d ${D}${bindir}/ghostscript-${PV}
- for i in genarch genconf mkromfs echogs gendev genht; do
- install -m 755 obj/aux/$i ${D}${bindir}/ghostscript-${PV}/$i
- done
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.19.bb b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.19.bb
new file mode 100644
index 000000000..fe2016b15
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/ghostscript/ghostscript_9.19.bb
@@ -0,0 +1,106 @@
+SUMMARY = "The GPL Ghostscript PostScript/PDF interpreter"
+DESCRIPTION = "Ghostscript is used for PostScript/PDF preview and printing. Usually as \
+a back-end to a program such as ghostview, it can display PostScript and PDF \
+documents in an X11 environment. \
+\
+Furthermore, it can render PostScript and PDF files as graphics to be printed \
+on non-PostScript printers. Supported printers include common \
+dot-matrix, inkjet and laser models. \
+"
+HOMEPAGE = "http://www.ghostscript.com"
+SECTION = "console/utils"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b17cea54743435ab2a581c237bea294a"
+
+DEPENDS = "ghostscript-native tiff jpeg fontconfig cups libpng"
+DEPENDS_class-native = "libpng-native"
+
+UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
+
+SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs919/${BPN}-${PV}.tar.gz \
+ file://ghostscript-9.15-parallel-make.patch \
+ file://ghostscript-9.16-Werror-return-type.patch \
+ file://png_mak.patch \
+ file://do-not-check-local-libpng-source.patch \
+"
+
+SRC_URI = "${SRC_URI_BASE} \
+ file://ghostscript-9.02-prevent_recompiling.patch \
+ file://ghostscript-9.02-genarch.patch \
+ file://objarch.h \
+ file://cups-no-gcrypt.patch \
+ "
+
+SRC_URI_class-native = "${SRC_URI_BASE} \
+ file://ghostscript-native-fix-disable-system-libtiff.patch \
+ file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
+ "
+
+SRC_URI[md5sum] = "c9682ce6b852f9197c69905a43928907"
+SRC_URI[sha256sum] = "cf3c0dce67db1557a87366969945f9c5235887989c0b585e037af366dc035989"
+
+EXTRA_OECONF = "--without-x --with-system-libtiff --without-jbig2dec \
+ --with-fontpath=${datadir}/fonts \
+ --without-libidn --with-cups-serverbin=${exec_prefix}/lib/cups \
+ --with-cups-datadir=${datadir}/cups \
+ "
+
+EXTRA_OECONF_append_mips = " --with-large_color_index=0"
+EXTRA_OECONF_append_mipsel = " --with-large_color_index=0"
+
+# Explicity disable libtiff, fontconfig,
+# freetype, cups for ghostscript-native
+EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
+ --without-jbig2dec \
+ --with-fontpath=${datadir}/fonts \
+ --without-libidn --disable-fontconfig \
+ --disable-freetype --disable-cups"
+
+# This has been fixed upstream but for now we need to subvert the check for time.h
+# http://bugs.ghostscript.com/show_bug.cgi?id=692443
+# http://bugs.ghostscript.com/show_bug.cgi?id=692426
+CFLAGS += "-DHAVE_SYS_TIME_H=1"
+BUILD_CFLAGS += "-DHAVE_SYS_TIME_H=1"
+
+inherit autotools
+
+do_configure_prepend () {
+ mkdir -p obj
+ mkdir -p soobj
+ if [ -e ${WORKDIR}/objarch.h ]; then
+ cp ${WORKDIR}/objarch.h obj/arch.h
+ fi
+}
+
+do_configure_append () {
+ # copy tools from the native ghostscript build
+ if [ "${PN}" != "ghostscript-native" ]; then
+ mkdir -p obj/aux soobj
+ for i in genarch genconf mkromfs echogs gendev genht; do
+ cp ${STAGING_BINDIR_NATIVE}/ghostscript-${PV}/$i obj/aux/$i
+ done
+ fi
+}
+
+do_install_append () {
+ mkdir -p ${D}${datadir}/ghostscript/${PV}/
+ cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/
+ cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/
+}
+
+do_compile_class-native () {
+ mkdir -p obj
+ for i in genarch genconf mkromfs echogs gendev genht; do
+ oe_runmake obj/aux/$i
+ done
+}
+
+do_install_class-native () {
+ install -d ${D}${bindir}/ghostscript-${PV}
+ for i in genarch genconf mkromfs echogs gendev genht; do
+ install -m 755 obj/aux/$i ${D}${bindir}/ghostscript-${PV}/$i
+ done
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch
index 5a4149cfc..ce595099f 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/fix-for-texinfo-5.1.patch
@@ -1,6 +1,6 @@
Upstream-Status: Inappropriate [Poky Specific this is gplv2 version]
-Signed-off-by Saul Wold <sgw@linux.intel.com>
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
Index: grep-2.5.1a/doc/grep.texi
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
index 721f2a0a6..a40a9f30b 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
@@ -12,7 +12,7 @@ This version of GNU Grep has been abandoned upstream and they are no longer
accepting patches. This is not a backport.
CVE: CVE-2012-5667
-Signed-off-by Ming Liu <ming.liu@windriver.com>
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
---
grep.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch
index 3ccce5fc3..d9b1e35e7 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/grep/grep-2.5.1a/grep_fix_for_automake-1.12.patch
@@ -13,7 +13,7 @@ this patch avoids these kinds of errors:
| src/Makefile.am:2: error: automatic de-ANSI-fication support has been removed
| autoreconf: automake failed with exit status: 1
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/04
Index: grep-2.5.1a/configure.in
diff --git a/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.23.bb b/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.23.bb
deleted file mode 100644
index 13ff32dd8..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.23.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "GNU grep utility"
-HOMEPAGE = "http://savannah.gnu.org/projects/grep/"
-BUGTRACKER = "http://savannah.gnu.org/bugs/?group=grep"
-SECTION = "console/utils"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8006d9c814277c1bfc4ca22af94b59ee"
-
-SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.xz \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- "
-
-SRC_URI[md5sum] = "f46aa9d0d2577b9212a104348a286787"
-SRC_URI[sha256sum] = "54fc478ee1ce17780109820ef30730c9e18715a949f7d5c6afc673adb2a56ecf"
-
-inherit autotools gettext texinfo
-
-EXTRA_OECONF = "--disable-perl-regexp"
-
-do_configure_prepend () {
- rm -f ${S}/m4/init.m4
-}
-
-do_install () {
- autotools_do_install
- if [ "${base_bindir}" != "${bindir}" ]; then
- install -d ${D}${base_bindir}
- mv ${D}${bindir}/grep ${D}${base_bindir}/grep
- mv ${D}${bindir}/egrep ${D}${base_bindir}/egrep
- mv ${D}${bindir}/fgrep ${D}${base_bindir}/fgrep
- rmdir ${D}${bindir}/
- fi
-}
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-
-ALTERNATIVE_${PN} = "grep egrep fgrep"
-ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
-ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
-ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
-
-export CONFIG_SHELL="/bin/sh"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.25.bb b/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.25.bb
new file mode 100644
index 000000000..9720d9f94
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/grep/grep_2.25.bb
@@ -0,0 +1,43 @@
+SUMMARY = "GNU grep utility"
+HOMEPAGE = "http://savannah.gnu.org/projects/grep/"
+BUGTRACKER = "http://savannah.gnu.org/bugs/?group=grep"
+SECTION = "console/utils"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8006d9c814277c1bfc4ca22af94b59ee"
+
+SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.xz \
+ file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
+ "
+
+SRC_URI[md5sum] = "04e96b0e6f0fe6a180ae62c88fcd0af6"
+SRC_URI[sha256sum] = "e21e83bac50450e0d0d61a42c154ee0dceaacdbf4f604ef6e79071cb8e596830"
+
+inherit autotools gettext texinfo
+
+EXTRA_OECONF = "--disable-perl-regexp"
+
+do_configure_prepend () {
+ rm -f ${S}/m4/init.m4
+}
+
+do_install () {
+ autotools_do_install
+ if [ "${base_bindir}" != "${bindir}" ]; then
+ install -d ${D}${base_bindir}
+ mv ${D}${bindir}/grep ${D}${base_bindir}/grep
+ mv ${D}${bindir}/egrep ${D}${base_bindir}/egrep
+ mv ${D}${bindir}/fgrep ${D}${base_bindir}/fgrep
+ rmdir ${D}${bindir}/
+ fi
+}
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE_${PN} = "grep egrep fgrep"
+ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
+ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
+ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
+
+export CONFIG_SHELL="/bin/sh"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch b/import-layers/yocto-poky/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch
new file mode 100644
index 000000000..4b0176fcd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/groff/groff-1.18.1.4/fix-narrowing-conversion-error.patch
@@ -0,0 +1,61 @@
+From fc289ab69c6d7e4ad489172509a85f68afec43ea Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 29 Jul 2016 03:19:39 -0400
+Subject: [PATCH] fix narrowing conversion error
+
+While gcc6 used, build old groff (for anti-GPLv3 reasons) failed:
+.....
+|groff-1.18.1.4/src/devices/grolbp/charset.h:69:1: error: narrowing
+conversion of '130' from 'int' to 'char' inside { } [-Wnarrowing]
+......
+
+In upstream git://git.savannah.gnu.org/groff.git,
+the following commit fix the issue, but the license is GPLV3,
+we could not backport it to the old groff which license is GPLV2.
+...
+commit d180038ae0da19655bc2760ae2043efa0550a76c
+Author: Werner LEMBERG <wl@gnu.org>
+Date: Wed Apr 16 21:11:07 2003 +0000
+ * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
+...
+
+We use another different way to fix the issue.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/devices/grolbp/charset.h | 2 +-
+ src/devices/grolbp/lbp.cc | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/devices/grolbp/charset.h b/src/devices/grolbp/charset.h
+index adc76f4..e9c6c5b 100644
+--- a/src/devices/grolbp/charset.h
++++ b/src/devices/grolbp/charset.h
+@@ -1,6 +1,6 @@
+ // Definition of the WP54 character set
+
+-char symset[] = {
++int symset[] = {
+ 0x57,0x50,0x35,0x34,0x00,0x41,0x76,0x61,0x6e,0x74,0x47,0x61,
+ 0x72,0x64,0x65,0x2d,0x42,0x6f,0x6f,0x6b,0x00,0x41,0x76,
+ 0x61,0x6e,0x74,0x47,0x61,0x72,0x64,0x65,0x2d,0x44,0x65,
+diff --git a/src/devices/grolbp/lbp.cc b/src/devices/grolbp/lbp.cc
+index 76db32a..00d4ca7 100644
+--- a/src/devices/grolbp/lbp.cc
++++ b/src/devices/grolbp/lbp.cc
+@@ -152,8 +152,8 @@ static void wp54charset()
+ {
+ unsigned int i;
+ lbpputs("\033[714;100;29;0;32;120.}");
+- for (i = 0; i < sizeof(symset); i++)
+- lbpputc(symset[i]);
++ for (i = 0; i < sizeof(symset)/sizeof(symset[0]); i++)
++ lbpputc((char)symset[i]&0xFF);
+ lbpputs("\033[100;0 D");
+ return;
+ }
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.18.1.4.bb b/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.18.1.4.bb
index bd786a30a..fc7eb4478 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.18.1.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.18.1.4.bb
@@ -13,6 +13,7 @@ SRC_URI = "${GNU_MIRROR}/${BPN}/old/${BP}.tar.gz \
file://man-local.patch \
file://mdoc-local.patch \
file://groff-1.18.1.4-fix-bindir.patch \
+ file://fix-narrowing-conversion-error.patch \
"
inherit autotools texinfo
diff --git a/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.22.3.bb b/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.22.3.bb
index 4bffa814f..dd241f3f8 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.22.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/groff/groff_1.22.3.bb
@@ -56,6 +56,17 @@ do_install_append() {
if [ -e ${D}${libdir}/charset.alias ]; then
rm -rf ${D}${libdir}/charset.alias
fi
+
+ # awk is located at /usr/bin/, not /bin/
+ SPECIAL_AWK=`find ${D} -name special.awk`
+ if [ -f ${SPECIAL_AWK} ]; then
+ sed -i -e 's:#!.*awk:#! ${USRBINPATH}/awk:' ${SPECIAL_AWK}
+ fi
+
+ # not ship /usr/bin/glilypond and its releated files in embedded target system
+ rm -rf ${D}${bindir}/glilypond
+ rm -rf ${D}${libdir}/groff/glilypond
+ rm -rf ${D}${mandir}/man1/glilypond*
}
do_install_append_class-native() {
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.6/wrong-path-fix.patch b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.6/wrong-path-fix.patch
deleted file mode 100644
index 92863d6c4..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.6/wrong-path-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-fix MakeMaker issues with using wrong SHELL/GREP
-
-A set of substitution is being processed to all target scripts with sed by
-replacing some key words with the detected values at configure time, this
-is exactly not compliant with cross compling, and will cause missing path
-errors at run time like:
-"/usr/bin/zgrep: line 230: /usr/bin/grep: No such file or directory"
-
-Fixed by removing unneeded substitution and using real runtime paths
-instead.
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
-
-Upstream-Status: Pending
-
-Index: gzip-1.3.12/Makefile.am
-===================================================================
-diff -urpN a/Makefile.am b/Makefile.am
---- a/Makefile.am 2013-11-30 10:06:09.402234871 +0800
-+++ b/Makefile.am 2013-11-30 10:13:42.952236025 +0800
-@@ -81,9 +81,8 @@ gzip.doc.gz: gzip.doc $(bin_PROGRAMS)
- SUFFIXES = .in
- .in:
- $(AM_V_GEN)sed \
-- -e 's|/bin/sh|$(SHELL)|g' \
- -e 's|[@]bindir@|'\''$(bindir)'\''|g' \
-- -e 's|[@]GREP@|$(GREP)|g' \
-+ -e 's|[@]GREP@|$(base_bindir)/grep|g' \
- -e 's|[@]VERSION@|$(VERSION)|g' \
- $(srcdir)/$@.in >$@-t \
- && chmod a+x $@-t \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.8/wrong-path-fix.patch b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.8/wrong-path-fix.patch
new file mode 100644
index 000000000..4dc10002e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip-1.8/wrong-path-fix.patch
@@ -0,0 +1,29 @@
+fix MakeMaker issues with using wrong SHELL/GREP
+
+A set of substitution is being processed to all target scripts with sed by
+replacing some key words with the detected values at configure time, this
+is exactly not compliant with cross compling, and will cause missing path
+errors at run time like:
+"/usr/bin/zgrep: line 230: /usr/bin/grep: No such file or directory"
+
+Fixed by removing unneeded substitution and using real runtime paths
+instead.
+
+Signed-off-by: Ming Liu <ming.liu@windriver.com>
+
+Upstream-Status: Pending
+
+Index: gzip-1.8/Makefile.am
+===================================================================
+--- gzip-1.8.orig/Makefile.am
++++ gzip-1.8/Makefile.am
+@@ -81,8 +81,7 @@ gzip.doc.gz: gzip.doc $(bin_PROGRAMS)
+ SUFFIXES = .in
+ .in:
+ $(AM_V_GEN)sed \
+- -e 's|/bin/sh|$(SHELL)|g' \
+- -e 's|[@]GREP@|$(GREP)|g' \
++ -e 's|[@]GREP@|$(base_bindir)/grep|g' \
+ -e 's|[@]VERSION@|$(VERSION)|g' \
+ $(srcdir)/$@.in >$@-t \
+ && chmod a+x $@-t \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip.inc b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip.inc
index 6e8188347..04f8f95dd 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip.inc
@@ -22,11 +22,6 @@ do_install_append () {
fi
}
-do_install_append_libc-musl () {
- rm ${D}${libdir}/charset.alias
- rmdir ${D}${libdir}
-}
-
inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.6.bb b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.6.bb
deleted file mode 100644
index b347f0bb8..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.6.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require gzip.inc
-
-LICENSE = "GPLv3+"
-
-SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz"
-SRC_URI_append_class-target = " file://wrong-path-fix.patch"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://gzip.h;beginline=8;endline=20;md5=6e47caaa630e0c8bf9f1bc8d94a8ed0e"
-
-PROVIDES_append_class-native = " gzip-replacement-native"
-NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "38603cb2843bf5681ff41aab3bcd6a20"
-SRC_URI[sha256sum] = "97eb83b763d9e5ad35f351fe5517e6b71521d7aac7acf3e3cacdb6b1496d8f7e"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.8.bb b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.8.bb
new file mode 100644
index 000000000..a19b96539
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/gzip/gzip_1.8.bb
@@ -0,0 +1,18 @@
+require gzip.inc
+
+LICENSE = "GPLv3+"
+
+SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz"
+SRC_URI_append_class-target = " file://wrong-path-fix.patch"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://gzip.h;beginline=8;endline=20;md5=6e47caaa630e0c8bf9f1bc8d94a8ed0e"
+
+PROVIDES_append_class-native = " gzip-replacement-native"
+NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
+
+BBCLASSEXTEND = "native"
+
+SRC_URI[md5sum] = "732553152814b22dc35aa0267df5286c"
+SRC_URI[sha256sum] = "1ff7aedb3d66a0d73f442f6261e4b3860df6fd6c94025c2cb31a202c9c60fe0e"
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/hdparm/hdparm_9.48.bb b/import-layers/yocto-poky/meta/recipes-extended/hdparm/hdparm_9.48.bb
index ec3d26f42..cd85776cf 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/hdparm/hdparm_9.48.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/hdparm/hdparm_9.48.bb
@@ -2,8 +2,12 @@ SUMMARY = "Utility for viewing/manipulating IDE disk drive/driver parameters"
DESCRIPTION = "hdparm is a Linux shell utility for viewing \
and manipulating various IDE drive and driver parameters."
SECTION = "console/utils"
-LICENSE = "BSD"
+
+LICENSE = "BSD & GPLv2"
+LICENSE_${PN} = "BSD"
+LICENSE_${PN}-dbg = "BSD"
LICENSE_wiper = "GPLv2"
+
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=910a8a42c962d238619c75fdb78bdb24 \
file://debian/copyright;md5=a82d7ba3ade9e8ec902749db98c592f3 \
file://wiper/GPLv2.txt;md5=fcb02dc552a041dee27e4b85c7396067 \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/images/core-image-kernel-dev.bb b/import-layers/yocto-poky/meta/recipes-extended/images/core-image-kernel-dev.bb
index 26b88c9e8..a40b3aa95 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/images/core-image-kernel-dev.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/images/core-image-kernel-dev.bb
@@ -14,7 +14,7 @@ CORE_IMAGE_EXTRA_INSTALL += "${KERNEL_DEV_MODULE} \
"
# We need extra space for things like kernel builds, etc.
-IMAGE_ROOTFS_EXTRA_SPACE_append += "+ 3000000"
+IMAGE_ROOTFS_EXTRA_SPACE_append = " + 3000000"
# Let's define our own subset to test, we can later add a on-target kernel build even!
DEFAULT_TEST_SUITES = "ping ssh df connman syslog scp date parselogs"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb b/import-layers/yocto-poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
index ad1407c7a..09a6d1604 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
@@ -18,3 +18,6 @@ inherit core-image
IMAGE_ROOTFS_SIZE = "8192"
IMAGE_ROOTFS_EXTRA_SPACE = "0"
BAD_RECOMMENDATIONS += "busybox-syslog"
+
+# Use the same restriction as initramfs-live-install-testfs
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio/libaio_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio/libaio_fix_for_x32.patch
index 508f5a12f..dc4ba505b 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio/libaio_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio/libaio_fix_for_x32.patch
@@ -6,7 +6,7 @@ syscall so that it works with both x32 and x86-64.
Received this patch from H.J. Lu <hjl.tools@gmail.com>
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2011/12/02
--- libaio-0.3.109/src/syscall-x86_64.h.x32 2009-10-09 11:17:02.000000000 -0700
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio_0.3.110.bb b/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio_0.3.110.bb
index 2adfa0aa4..75975d4ab 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio_0.3.110.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/libaio/libaio_0.3.110.bb
@@ -5,7 +5,7 @@ HOMEPAGE = "http://lse.sourceforge.net/io/aio.html"
LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
-SRC_URI = "${DEBIAN_MIRROR}/main/liba/libaio/libaio_${PV}.orig.tar.gz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/liba/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://generic-arch-dectection-for-padding-defines.patch \
file://00_arches.patch \
file://destdir.patch \
@@ -17,6 +17,8 @@ SRC_URI = "${DEBIAN_MIRROR}/main/liba/libaio/libaio_${PV}.orig.tar.gz \
SRC_URI[md5sum] = "2a35602e43778383e2f4907a4ca39ab8"
SRC_URI[sha256sum] = "e019028e631725729376250e32b473012f7cb68e1f7275bfc1bbcdd0f8745f7e"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/liba/libaio/"
+
EXTRA_OEMAKE =+ "prefix=${prefix} includedir=${includedir} libdir=${libdir}"
do_install () {
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/0001-Set-xattrs-after-setting-times.patch b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/0001-Set-xattrs-after-setting-times.patch
deleted file mode 100644
index 6d74e867e..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/0001-Set-xattrs-after-setting-times.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 545ded56095c570426fe102ff2192889681ea75c Mon Sep 17 00:00:00 2001
-From: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
-Date: Mon, 29 Feb 2016 14:38:25 +0200
-Subject: [PATCH] Set xattrs after setting times
-
-With Integrity Measurement Architecture (IMA) enabled in Linux
-kernel the security.ima extended attribute gets overwritten
-when setting times on a file with a futimens() call. So it's safer
-to set xattrs after times.
-
-Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/664]
-
-Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
-
----
- libarchive/archive_write_disk_posix.c | 21 +++++++++++----------
- 1 file changed, 11 insertions(+), 10 deletions(-)
-
-diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c
-index 0fc6193..27c9c1e 100644
---- a/libarchive/archive_write_disk_posix.c
-+++ b/libarchive/archive_write_disk_posix.c
-@@ -1620,16 +1620,6 @@ _archive_write_disk_finish_entry(struct archive *_a)
- }
-
- /*
-- * Security-related extended attributes (such as
-- * security.capability on Linux) have to be restored last,
-- * since they're implicitly removed by other file changes.
-- */
-- if (a->todo & TODO_XATTR) {
-- int r2 = set_xattrs(a);
-- if (r2 < ret) ret = r2;
-- }
--
-- /*
- * Some flags prevent file modification; they must be restored after
- * file contents are written.
- */
-@@ -1648,6 +1638,17 @@ _archive_write_disk_finish_entry(struct archive *_a)
- }
-
- /*
-+ * Security-related extended attributes (such as
-+ * security.capability or security.ima on Linux) have to be restored last,
-+ * since they're implicitly removed by other file changes like setting
-+ * times.
-+ */
-+ if (a->todo & TODO_XATTR) {
-+ int r2 = set_xattrs(a);
-+ if (r2 < ret) ret = r2;
-+ }
-+
-+ /*
- * Mac extended metadata includes ACLs.
- */
- if (a->todo & TODO_MAC_METADATA) {
---
-2.5.0
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2013-0211.patch b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2013-0211.patch
deleted file mode 100644
index 19523f4b8..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2013-0211.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 2f55d6bd308ea61975558c2469ae349dba297e89 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Sat, 22 Feb 2014 14:35:59 +0800
-Subject: [PATCH] Fix CVE-2013-0211
-
-This patch comes from:https://github.com/libarchive/libarchive/commit/22531545514043e04633e1c015c7540b9de9dbe4
-
-Upstream-Status: Backport
-CVE: CVE-2013-0211
-
-Signed-off-by: Baogen shang <baogen.shang@windriver.com>
-
-Update the patch because of uprev on 20140222
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- libarchive/archive_write.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c
-index a3d1a33..a323588 100644
---- a/libarchive/archive_write.c
-+++ b/libarchive/archive_write.c
-@@ -671,8 +671,12 @@ static ssize_t
- _archive_write_data(struct archive *_a, const void *buff, size_t s)
- {
- struct archive_write *a = (struct archive_write *)_a;
-+ const size_t max_write = INT_MAX;
- archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
- ARCHIVE_STATE_DATA, "archive_write_data");
-+ /* In particular, this catches attempts to pass negative values. */
-+ if (s > max_write)
-+ s = max_write;
- archive_clear_error(&a->archive);
- return ((a->format_write_data)(a, buff, s));
- }
---
-1.8.2.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2015-2304.patch b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2015-2304.patch
deleted file mode 100644
index 5c2439635..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/libarchive-CVE-2015-2304.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From 59357157706d47c365b2227739e17daba3607526 Mon Sep 17 00:00:00 2001
-From: Alessandro Ghedini <alessandro@ghedini.me>
-Date: Sun, 1 Mar 2015 12:07:45 +0100
-Subject: [PATCH] Add ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS option
-
-This fixes a directory traversal in the cpio tool.
-
-
-Upstream-Status: backport
-CVE: CVE-2015-2304
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- cpio/bsdcpio.1 | 3 ++-
- cpio/cpio.c | 2 ++
- libarchive/archive.h | 2 ++
- libarchive/archive_write_disk.3 | 3 +++
- libarchive/archive_write_disk_posix.c | 14 +++++++++++---
- libarchive/test/test_write_disk_secure.c | 23 +++++++++++++++++++++++
- 6 files changed, 43 insertions(+), 4 deletions(-)
-
-diff --git a/cpio/bsdcpio.1 b/cpio/bsdcpio.1
-index f966aa0..e52546e 100644
---- a/cpio/bsdcpio.1
-+++ b/cpio/bsdcpio.1
-@@ -156,7 +156,8 @@ See above for description.
- .It Fl Fl insecure
- (i and p mode only)
- Disable security checks during extraction or copying.
--This allows extraction via symbolic links and path names containing
-+This allows extraction via symbolic links, absolute paths,
-+and path names containing
- .Sq ..
- in the name.
- .It Fl J , Fl Fl xz
-diff --git a/cpio/cpio.c b/cpio/cpio.c
-index 0acde11..b267e9b 100644
---- a/cpio/cpio.c
-+++ b/cpio/cpio.c
-@@ -171,6 +171,7 @@ main(int argc, char *argv[])
- cpio->extract_flags |= ARCHIVE_EXTRACT_NO_OVERWRITE_NEWER;
- cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_SYMLINKS;
- cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NODOTDOT;
-+ cpio->extract_flags |= ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS;
- cpio->extract_flags |= ARCHIVE_EXTRACT_PERM;
- cpio->extract_flags |= ARCHIVE_EXTRACT_FFLAGS;
- cpio->extract_flags |= ARCHIVE_EXTRACT_ACL;
-@@ -256,6 +257,7 @@ main(int argc, char *argv[])
- case OPTION_INSECURE:
- cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_SYMLINKS;
- cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NODOTDOT;
-+ cpio->extract_flags &= ~ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS;
- break;
- case 'L': /* GNU cpio */
- cpio->option_follow_links = 1;
-diff --git a/libarchive/archive.h b/libarchive/archive.h
-index 1f0fc38..ef635ac 100644
---- a/libarchive/archive.h
-+++ b/libarchive/archive.h
-@@ -649,6 +649,8 @@ __LA_DECL int archive_read_set_passphrase_callback(struct archive *,
- /* Default: Do not use HFS+ compression if it was not compressed. */
- /* This has no effect except on Mac OS v10.6 or later. */
- #define ARCHIVE_EXTRACT_HFS_COMPRESSION_FORCED (0x8000)
-+/* Default: Do not reject entries with absolute paths */
-+#define ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS (0x10000)
-
- __LA_DECL int archive_read_extract(struct archive *, struct archive_entry *,
- int flags);
-diff --git a/libarchive/archive_write_disk.3 b/libarchive/archive_write_disk.3
-index fa925cc..a2e7afa 100644
---- a/libarchive/archive_write_disk.3
-+++ b/libarchive/archive_write_disk.3
-@@ -177,6 +177,9 @@ The default is to not refuse such paths.
- Note that paths ending in
- .Pa ..
- always cause an error, regardless of this flag.
-+.It Cm ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
-+Refuse to extract an absolute path.
-+The default is to not refuse such paths.
- .It Cm ARCHIVE_EXTRACT_SPARSE
- Scan data for blocks of NUL bytes and try to recreate them with holes.
- This results in sparse files, independent of whether the archive format
-diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c
-index ab3bdac..c1290eb 100644
---- a/libarchive/archive_write_disk_posix.c
-+++ b/libarchive/archive_write_disk_posix.c
-@@ -2509,8 +2509,9 @@ cleanup_pathname_win(struct archive_write_disk *a)
- /*
- * Canonicalize the pathname. In particular, this strips duplicate
- * '/' characters, '.' elements, and trailing '/'. It also raises an
-- * error for an empty path, a trailing '..' or (if _SECURE_NODOTDOT is
-- * set) any '..' in the path.
-+ * error for an empty path, a trailing '..', (if _SECURE_NODOTDOT is
-+ * set) any '..' in the path or (if ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS
-+ * is set) if the path is absolute.
- */
- static int
- cleanup_pathname(struct archive_write_disk *a)
-@@ -2529,8 +2530,15 @@ cleanup_pathname(struct archive_write_disk *a)
- cleanup_pathname_win(a);
- #endif
- /* Skip leading '/'. */
-- if (*src == '/')
-+ if (*src == '/') {
-+ if (a->flags & ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS) {
-+ archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC,
-+ "Path is absolute");
-+ return (ARCHIVE_FAILED);
-+ }
-+
- separator = *src++;
-+ }
-
- /* Scan the pathname one element at a time. */
- for (;;) {
-diff --git a/libarchive/test/test_write_disk_secure.c b/libarchive/test/test_write_disk_secure.c
-index 31c5bfd..2c94206 100644
---- a/libarchive/test/test_write_disk_secure.c
-+++ b/libarchive/test/test_write_disk_secure.c
-@@ -178,6 +178,29 @@ DEFINE_TEST(test_write_disk_secure)
- assert(S_ISDIR(st.st_mode));
- archive_entry_free(ae);
-
-+ /*
-+ * Without security checks, we should be able to
-+ * extract an absolute path.
-+ */
-+ assert((ae = archive_entry_new()) != NULL);
-+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp");
-+ archive_entry_set_mode(ae, S_IFREG | 0777);
-+ assert(0 == archive_write_header(a, ae));
-+ assert(0 == archive_write_finish_entry(a));
-+ assertFileExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp");
-+ assert(0 == unlink("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp"));
-+
-+ /* But with security checks enabled, this should fail. */
-+ assert(archive_entry_clear(ae) != NULL);
-+ archive_entry_copy_pathname(ae, "/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp");
-+ archive_entry_set_mode(ae, S_IFREG | 0777);
-+ archive_write_disk_set_options(a, ARCHIVE_EXTRACT_SECURE_NOABSOLUTEPATHS);
-+ failure("Extracting an absolute path should fail here.");
-+ assertEqualInt(ARCHIVE_FAILED, archive_write_header(a, ae));
-+ archive_entry_free(ae);
-+ assert(0 == archive_write_finish_entry(a));
-+ assertFileNotExists("/tmp/libarchive_test-test_write_disk_secure-absolute_path.tmp");
-+
- assertEqualInt(ARCHIVE_OK, archive_write_free(a));
-
- /* Test the entries on disk. */
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/mkdir.patch b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/mkdir.patch
deleted file mode 100644
index 509a2957a..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/mkdir.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Add missing mkdir calls so that out-of-tree builds work.
-
-Upstream-Status: Submitted (https://github.com/libarchive/libarchive/pull/534)
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/Makefile.am b/Makefile.am
-index 3fa2d22..5ecca52 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -508,6 +508,7 @@ libarchive_test_LDADD= $(LTLIBICONV)
- # Building it automatically provides a sanity-check on libarchive_test_SOURCES
- # above.
- libarchive/test/list.h: Makefile
-+ $(MKDIR_P) libarchive/test
- cat $(top_srcdir)/libarchive/test/test_*.c | grep DEFINE_TEST > libarchive/test/list.h
-
- libarchive_TESTS_ENVIRONMENT= LIBARCHIVE_TEST_FILES=`cd $(top_srcdir);/bin/pwd`/libarchive/test LRZIP=NOCONFIG
-@@ -835,6 +836,7 @@ bsdtar_test_CPPFLAGS=\
- $(PLATFORMCPPFLAGS)
-
- tar/test/list.h: Makefile
-+ $(MKDIR_P) tar/test
- cat $(top_srcdir)/tar/test/test_*.c | grep DEFINE_TEST > tar/test/list.h
-
- if BUILD_BSDTAR
-@@ -975,6 +977,7 @@ bsdcpio_test_CPPFLAGS= \
- bsdcpio_test_LDADD=libarchive_fe.la
-
- cpio/test/list.h: Makefile
-+ $(MKDIR_P) cpio/test
- cat $(top_srcdir)/cpio/test/test_*.c | grep DEFINE_TEST > cpio/test/list.h
-
- if BUILD_BSDCPIO
-diff --git a/configure.ac b/configure.ac
-index 38bd299..7bdb00c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -102,6 +102,7 @@ AC_USE_SYSTEM_EXTENSIONS
- AC_LIBTOOL_WIN32_DLL
- AC_PROG_LIBTOOL
- AC_CHECK_TOOL([STRIP],[strip])
-+AC_PROG_MKDIR_P
-
- #
- # Options for building bsdtar.
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/pkgconfig.patch b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/pkgconfig.patch
deleted file mode 100644
index 346af9135..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive/pkgconfig.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Use pkg-config for the libxml2 dependency, not the -config script.
-
-Upstream-Status: Pending
-
-RP 2014/5/22
-
-Index: libarchive-3.1.2/configure.ac
-===================================================================
---- libarchive-3.1.2.orig/configure.ac 2013-02-09 17:23:03.000000000 +0000
-+++ libarchive-3.1.2/configure.ac 2014-05-13 15:26:45.446499108 +0000
-@@ -329,10 +329,10 @@
- AS_HELP_STRING([--without-expat], [Don't build support for xar through expat]))
-
- if test "x$with_xml2" != "xno"; then
-- AC_PATH_PROG([XML2_CONFIG], [xml2-config],, [${PATH}])
-- if test "x$XML2_CONFIG" != "x"; then
-- CPPFLAGS="${CPPFLAGS} `${XML2_CONFIG} --cflags`"
-- LIBS="${LIBS} `${XML2_CONFIG} --libs`"
-+ PKG_CHECK_MODULES(PKG_XML2, [libxml-2.0],,)
-+ if test "x$PKG_XML2_CFLAGS" != "x"; then
-+ CPPFLAGS="${CPPFLAGS} ${PKG_XML2_CFLAGS}"
-+ LIBS="${LIBS} ${PKG_XML2_LIBS}"
- AC_CHECK_LIB(xml2,xmlInitParser,[true],AC_MSG_FAILURE(Missing xml2 library))
- else
- AC_CHECK_LIB(xml2,xmlInitParser)
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.1.2.bb b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.1.2.bb
deleted file mode 100644
index ed677ac31..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.1.2.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Support for reading various archive formats"
-DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats"
-HOMEPAGE = "http://www.libarchive.org/"
-SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4e3ffd607d6686c6cb2f63394370841"
-
-DEPENDS = "e2fsprogs-native"
-
-PACKAGECONFIG ?= "zlib bz2"
-
-PACKAGECONFIG_append_class-target = "\
- libxml2 \
- ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'xattr', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
-"
-
-PACKAGECONFIG_append_class-nativesdk = " largefile"
-
-PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
-PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr,"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib,"
-PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,bzip2,"
-PACKAGECONFIG[xz] = "--with-lzmadec --with-lzma,--without-lzmadec --without-lzma,xz,"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
-PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2,"
-PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat,"
-PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo,"
-PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle,"
-
-SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
- file://libarchive-CVE-2013-0211.patch \
- file://pkgconfig.patch \
- file://libarchive-CVE-2015-2304.patch \
- file://mkdir.patch \
- file://0001-Set-xattrs-after-setting-times.patch \
- "
-
-SRC_URI[md5sum] = "efad5a503f66329bb9d2f4308b5de98a"
-SRC_URI[sha256sum] = "eb87eacd8fe49e8d90c8fdc189813023ccc319c5e752b01fb6ad0cc7b2c53d5e"
-
-inherit autotools update-alternatives pkgconfig
-
-CPPFLAGS += "-I${WORKDIR}/extra-includes"
-
-do_configure[cleandirs] += "${WORKDIR}/extra-includes"
-do_configure_prepend() {
- # We just need the headers for some type constants, so no need to
- # build all of e2fsprogs for the target
- cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/
-}
-
-ALTERNATIVE_PRIORITY = "100"
-
-PACKAGES =+ "bsdtar"
-FILES_bsdtar = "${bindir}/bsdtar"
-
-ALTERNATIVE_bsdtar = "tar"
-ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
-ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar"
-
-PACKAGES =+ "bsdcpio"
-FILES_bsdcpio = "${bindir}/bsdcpio"
-
-ALTERNATIVE_bsdcpio = "cpio"
-ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
-ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.2.1.bb b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.2.1.bb
new file mode 100644
index 000000000..b65b5df01
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libarchive/libarchive_3.2.1.bb
@@ -0,0 +1,67 @@
+SUMMARY = "Support for reading various archive formats"
+DESCRIPTION = "C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats"
+HOMEPAGE = "http://www.libarchive.org/"
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ed99aca006bc346974bb745a35336425"
+
+DEPENDS = "e2fsprogs-native"
+
+PACKAGECONFIG ?= "zlib bz2"
+
+PACKAGECONFIG_append_class-target = "\
+ libxml2 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'acl', 'acl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'xattr', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'largefile', 'largefile', '', d)} \
+"
+
+PACKAGECONFIG_append_class-nativesdk = " largefile"
+
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
+PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr,"
+PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib,"
+PACKAGECONFIG[bz2] = "--with-bz2lib,--without-bz2lib,bzip2,"
+PACKAGECONFIG[xz] = "--with-lzmadec --with-lzma,--without-lzmadec --without-lzma,xz,"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
+PACKAGECONFIG[libxml2] = "--with-xml2,--without-xml2,libxml2,"
+PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat,"
+PACKAGECONFIG[lzo] = "--with-lzo2,--without-lzo2,lzo,"
+PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle,"
+PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
+
+SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz \
+ "
+
+SRC_URI[md5sum] = "afa257047d1941a565216edbf0171e72"
+SRC_URI[sha256sum] = "72ee1a4e3fd534525f13a0ba1aa7b05b203d186e0c6072a8a4738649d0b3cfd2"
+
+inherit autotools update-alternatives pkgconfig
+
+CPPFLAGS += "-I${WORKDIR}/extra-includes"
+
+do_configure[cleandirs] += "${WORKDIR}/extra-includes"
+do_configure_prepend() {
+ # We just need the headers for some type constants, so no need to
+ # build all of e2fsprogs for the target
+ cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/
+}
+
+ALTERNATIVE_PRIORITY = "100"
+
+PACKAGES =+ "bsdtar"
+FILES_bsdtar = "${bindir}/bsdtar"
+
+ALTERNATIVE_bsdtar = "tar"
+ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
+ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar"
+
+PACKAGES =+ "bsdcpio"
+FILES_bsdcpio = "${bindir}/bsdcpio"
+
+ALTERNATIVE_bsdcpio = "cpio"
+ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
+ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/0001-idn-fix-printf-format-security-warnings.patch b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/0001-idn-fix-printf-format-security-warnings.patch
new file mode 100644
index 000000000..5adc7d9fd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/0001-idn-fix-printf-format-security-warnings.patch
@@ -0,0 +1,181 @@
+From 82f98dcbc429bbe89a9837c533cbcbc02e77c790 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Tue, 28 Jun 2016 12:43:31 +0100
+Subject: [PATCH] idn: fix printf() format security warnings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| ../../libidn-1.32/src/idn.c: In function 'main':
+| ../../libidn-1.32/src/idn.c:172:7: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:187:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| fprintf (stderr, _("Type each input string on a line by itself, "
+| ^~~~~~~
+| ../../libidn-1.32/src/idn.c:202:4: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (EXIT_FAILURE, errno, _("input error"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:220:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:245:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:281:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:340:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:364:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:442:8: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UCS-4 to UTF-8"));
+| ^
+| ../../libidn-1.32/src/idn.c:498:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:527:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+| ../../libidn-1.32/src/idn.c:540:6: error: format not a string literal and no format arguments [-Werror=format-security]
+| error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
+| ^~~~~
+| ../../libidn-1.32/src/idn.c:551:5: error: format not a string literal and no format arguments [-Werror=format-security]
+| _("could not convert from UTF-8 to UCS-4"));
+| ^
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Pending
+
+ src/idn.c | 27 ++++++++++++++-------------
+ 1 file changed, 14 insertions(+), 13 deletions(-)
+
+diff --git a/src/idn.c b/src/idn.c
+index be1c7d1..68e4291 100644
+--- a/src/idn.c
++++ b/src/idn.c
+@@ -170,7 +170,7 @@ main (int argc, char *argv[])
+ (args_info.idna_to_unicode_given ? 1 : 0) +
+ (args_info.nfkc_given ? 1 : 0) != 1)
+ {
+- error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified"));
++ error (0, 0, "%s", _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+ usage (EXIT_FAILURE);
+ }
+
+@@ -185,7 +185,7 @@ main (int argc, char *argv[])
+ if (!args_info.quiet_given
+ && args_info.inputs_num == 0
+ && isatty (fileno (stdin)))
+- fprintf (stderr, _("Type each input string on a line by itself, "
++ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
+ "terminated by a newline character.\n"));
+
+ do
+@@ -197,7 +197,7 @@ main (int argc, char *argv[])
+ if (feof (stdin))
+ break;
+
+- error (EXIT_FAILURE, errno, _("input error"));
++ error (EXIT_FAILURE, errno, "%s", _("input error"));
+ }
+
+ if (strlen (line) > 0)
+@@ -215,7 +215,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -240,7 +240,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -277,7 +277,7 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, &len);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ if (args_info.debug_given)
+@@ -336,7 +336,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -360,7 +360,7 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, NULL);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ if (args_info.debug_given)
+@@ -438,7 +438,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+ }
+
+@@ -494,7 +494,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -523,7 +523,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -537,7 +537,8 @@ main (int argc, char *argv[])
+ r = stringprep_utf8_nfkc_normalize (p, -1);
+ free (p);
+ if (!r)
+- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
++ error (EXIT_FAILURE, 0, "%s",
++ _("could not do NFKC normalization"));
+
+ if (args_info.debug_given)
+ {
+@@ -547,7 +548,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch
index 3476bb959..98ba4d6ff 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch
@@ -7,7 +7,7 @@ These AM_PROG_MKDIR_P are coming from gettext, and the latest gettext code has n
eliminated these deprecated macros yet. So disable the treatment of warnings
as errors until gettext is updated to remove the deprecated macros.
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/07/10
Index: libidn-1.24/configure.ac
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch
index 20afd257b..5683d3c98 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn/libidn_fix_for_automake-1.12.patch
@@ -6,7 +6,7 @@ This patch fixes following issue with automake 1.12
| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: warning: 'libidn.la': linking libtool libraries using a non-POSIX
| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/x86_64-linux/usr/share/automake-1.12/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/03
Index: libidn-1.24/configure.ac
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.32.bb b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.32.bb
deleted file mode 100644
index 4d6e88529..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.32.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Internationalized Domain Name support library"
-DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
-HOMEPAGE = "http://www.gnu.org/software/libidn/"
-SECTION = "libs"
-LICENSE = "(LGPLv2.1+ | LGPLv3) & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
- file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://lib/idna.h;endline=21;md5=7c0b3828d1b153663be9a04ad4f7975f \
- file://src/idn.c;endline=20;md5=f4235f2a2cb2b65786b2979fb3cf7fbf"
-
-inherit pkgconfig autotools gettext texinfo
-
-SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
- file://libidn_fix_for_automake-1.12.patch \
- file://avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch \
- file://dont-depend-on-help2man.patch \
-"
-
-SRC_URI[md5sum] = "4dd8356ba577287ea7076bfa1554b534"
-SRC_URI[sha256sum] = "ba5d5afee2beff703a34ee094668da5c6ea5afa38784cebba8924105e185c4f5"
-
-# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
-# so package command into a separate package
-PACKAGES =+ "idn"
-FILES_idn = "${bindir}/*"
-
-EXTRA_OECONF = "--disable-csharp"
-
-do_install_append() {
- rm -rf ${D}${datadir}/emacs
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.33.bb b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.33.bb
new file mode 100644
index 000000000..d3d0f557b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libidn/libidn_1.33.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Internationalized Domain Name support library"
+DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
+HOMEPAGE = "http://www.gnu.org/software/libidn/"
+SECTION = "libs"
+LICENSE = "(LGPLv2.1+ | LGPLv3) & GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
+ file://COPYING.LESSERv2;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYINGv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://lib/idna.h;endline=21;md5=37cffad24807f446a24de3e7371f20b9 \
+ file://src/idn.c;endline=20;md5=09e97034a8877b3451cb65065fc2c06e"
+DEPENDS = "virtual/libiconv"
+
+inherit pkgconfig autotools gettext texinfo gtk-doc
+
+SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
+ file://libidn_fix_for_automake-1.12.patch \
+ file://avoid_AM_PROG_MKDIR_P_warning_error_with_automake_1.12.patch \
+ file://dont-depend-on-help2man.patch \
+ file://0001-idn-fix-printf-format-security-warnings.patch \
+"
+
+SRC_URI[md5sum] = "a9aa7e003665de9c82bd3f9fc6ccf308"
+SRC_URI[sha256sum] = "44a7aab635bb721ceef6beecc4d49dfd19478325e1b47f3196f7d2acc4930e19"
+
+# command tool is under GPLv3+, while libidn itself is under LGPLv2.1+ or LGPLv3
+# so package command into a separate package
+PACKAGES =+ "idn"
+FILES_idn = "${bindir}/*"
+
+LICENSE_${PN} = "LGPLv2.1+ | LGPLv3"
+LICENSE_idn = "GPLv3+"
+
+EXTRA_OECONF = "--disable-csharp"
+
+do_install_append() {
+ rm -rf ${D}${datadir}/emacs
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch
new file mode 100644
index 000000000..24e2228b7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-Add-fallback-fopencookie-implementation.patch
@@ -0,0 +1,254 @@
+From 5b6e113f548bd8a2b100267bc5d54cee861a4b98 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Neal=20Gompa=20=28=E3=83=8B=E3=83=BC=E3=83=AB=E3=83=BB?=
+ =?UTF-8?q?=E3=82=B3=E3=82=99=E3=83=B3=E3=83=8F=E3=82=9A=29?=
+ <ngompa13@gmail.com>
+Date: Wed, 11 Nov 2015 20:32:17 -0500
+Subject: [PATCH] Add fallback fopencookie() implementation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In environments where neither fopencookie() nor funopen()
+are implemented, we need to provide a suitable implementation
+of fopencookie() that we can use.
+
+Upstream-Status: Submitted [ https://github.com/openSUSE/libsolv/pull/112 ]
+
+Signed-off-by: Neal Gompa (ă‹ăĽă«ă»ă‚łă‚™ăłăŹă‚š) <ngompa13@gmail.com>com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ ext/CMakeLists.txt | 7 ++
+ ext/solv_xfopen.c | 10 +--
+ ext/solv_xfopen_fallback_fopencookie.c | 124 +++++++++++++++++++++++++++++++++
+ ext/solv_xfopen_fallback_fopencookie.h | 28 ++++++++
+ 4 files changed, 165 insertions(+), 4 deletions(-)
+ create mode 100644 ext/solv_xfopen_fallback_fopencookie.c
+ create mode 100644 ext/solv_xfopen_fallback_fopencookie.h
+
+diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt
+index ad52495..4f282ce 100644
+--- a/ext/CMakeLists.txt
++++ b/ext/CMakeLists.txt
+@@ -4,6 +4,13 @@ SET (libsolvext_SRCS
+ SET (libsolvext_HEADERS
+ tools_util.h solv_xfopen.h testcase.h)
+
++IF (NOT HAVE_FOPENCOOKIE AND NOT HAVE_FUNOPEN)
++ SET (libsolvext_SRCS ${libsolvext_SRCS}
++ solv_xfopen_fallback_fopencookie.c)
++ SET (libsolvext_HEADERS ${libsolvext_HEADERS}
++ solv_xfopen_fallback_fopencookie.h)
++ENDIF (NOT HAVE_FOPENCOOKIE AND NOT HAVE_FUNOPEN)
++
+ IF (ENABLE_RPMDB)
+ SET (libsolvext_SRCS ${libsolvext_SRCS}
+ pool_fileconflicts.c repo_rpmdb.c)
+diff --git a/ext/solv_xfopen.c b/ext/solv_xfopen.c
+index b0421bf..31345dd 100644
+--- a/ext/solv_xfopen.c
++++ b/ext/solv_xfopen.c
+@@ -13,6 +13,10 @@
+ #include <zlib.h>
+ #include <fcntl.h>
+
++#if !defined(HAVE_FUNOPEN) && !defined(HAVE_FOPENCOOKIE)
++#include "solv_xfopen_fallback_fopencookie.h"
++#endif
++
+ #include "solv_xfopen.h"
+ #include "util.h"
+
+@@ -39,7 +43,7 @@ static FILE *cookieopen(void *cookie, const char *mode,
+ ssize_t (*cwrite)(void *, const char *, size_t),
+ int (*cclose)(void *))
+ {
+-#ifdef HAVE_FUNOPEN
++#if defined(HAVE_FUNOPEN) && !defined(HAVE_FOPENCOOKIE)
+ if (!cookie)
+ return 0;
+ return funopen(cookie,
+@@ -48,7 +52,7 @@ static FILE *cookieopen(void *cookie, const char *mode,
+ (fpos_t (*)(void *, fpos_t, int))NULL, /* seekfn */
+ cclose
+ );
+-#elif defined(HAVE_FOPENCOOKIE)
++#else
+ cookie_io_functions_t cio;
+
+ if (!cookie)
+@@ -60,8 +64,6 @@ static FILE *cookieopen(void *cookie, const char *mode,
+ cio.write = cwrite;
+ cio.close = cclose;
+ return fopencookie(cookie, *mode == 'w' ? "w" : "r", cio);
+-#else
+-# error Need to implement custom I/O
+ #endif
+ }
+
+diff --git a/ext/solv_xfopen_fallback_fopencookie.c b/ext/solv_xfopen_fallback_fopencookie.c
+new file mode 100644
+index 0000000..89426a9
+--- /dev/null
++++ b/ext/solv_xfopen_fallback_fopencookie.c
+@@ -0,0 +1,124 @@
++/*
++ * Provides a very limited fopencookie() for environments with a libc
++ * that lacks it.
++ *
++ * Authors: zhasha & nsz
++ * Modified for libsolv by Neal Gompa
++ *
++ * This program is licensed under the BSD license, read LICENSE.BSD
++ * for further information.
++ *
++ */
++
++#define _LARGEFILE64_SOURCE 1
++#include <pthread.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <fcntl.h>
++#include <sys/types.h>
++#include <errno.h>
++#include "solv_xfopen_fallback_fopencookie.h"
++
++extern int pipe2(int[2], int);
++
++struct ctx {
++ int fd;
++ void *cookie;
++ struct cookie_io_functions_t io;
++ char buf[1024];
++};
++
++static void *proxy(void *arg)
++{
++ struct ctx *ctx = arg;
++ ssize_t r;
++ size_t n, k;
++
++ pthread_detach(pthread_self());
++
++ while (1) {
++ r = ctx->io.read ?
++ (ctx->io.read)(ctx->cookie, ctx->buf, sizeof(ctx->buf)) :
++ read(ctx->fd, ctx->buf, sizeof(ctx->buf));
++ if (r < 0) {
++ if (errno != EINTR) { break; }
++ continue;
++ }
++ if (r == 0) { break; }
++
++ n = r, k = 0;
++ while (n > 0) {
++ r = ctx->io.write ?
++ (ctx->io.write)(ctx->cookie, ctx->buf + k, n) :
++ write(ctx->fd, ctx->buf + k, n);
++ if (r < 0) {
++ if (errno != EINTR) { break; }
++ continue;
++ }
++ if (r == 0) { break; }
++
++ n -= r, k += r;
++ }
++ if (n > 0) { break; }
++ }
++
++ if (ctx->io.close) { (ctx->io.close)(ctx->cookie); }
++ close(ctx->fd);
++ return NULL;
++}
++
++FILE *fopencookie(void *cookie, const char *mode, struct cookie_io_functions_t io)
++{
++ struct ctx *ctx = NULL;
++ int rd = 0, wr = 0;
++ int p[2] = { -1, -1 };
++ FILE *f = NULL;
++ pthread_t dummy;
++
++ switch (mode[0]) {
++ case 'a':
++ case 'w': wr = 1; break;
++ case 'r': rd = 1; break;
++ default:
++ errno = EINVAL;
++ return NULL;
++ }
++ switch (mode[1]) {
++ case '\0': break;
++ case '+':
++ if (mode[2] == '\0') {
++ errno = ENOTSUP;
++ return NULL;
++ }
++ default:
++ errno = EINVAL;
++ return NULL;
++ }
++ if (io.seek) {
++ errno = ENOTSUP;
++ return NULL;
++ }
++
++ ctx = malloc(sizeof(*ctx));
++ if (!ctx) { return NULL; }
++ if (pipe2(p, O_CLOEXEC) != 0) { goto err; }
++ if ((f = fdopen(p[wr], mode)) == NULL) { goto err; }
++ p[wr] = -1;
++ ctx->fd = p[rd];
++ ctx->cookie = cookie;
++ ctx->io.read = rd ? io.read : NULL;
++ ctx->io.write = wr ? io.write : NULL;
++ ctx->io.seek = NULL;
++ ctx->io.close = io.close;
++ if (pthread_create(&dummy, NULL, proxy, ctx) != 0) { goto err; }
++
++ return f;
++
++err:
++ if (p[0] >= 0) { close(p[0]); }
++ if (p[1] >= 0) { close(p[1]); }
++ if (f) { fclose(f); }
++ free(ctx);
++ return NULL;
++}
+diff --git a/ext/solv_xfopen_fallback_fopencookie.h b/ext/solv_xfopen_fallback_fopencookie.h
+new file mode 100644
+index 0000000..7223e3f
+--- /dev/null
++++ b/ext/solv_xfopen_fallback_fopencookie.h
+@@ -0,0 +1,28 @@
++/*
++ * Provides a very limited fopencookie() for environments with a libc
++ * that lacks it.
++ *
++ * Authors: zhasha & nsz
++ * Modified for libsolv by Neal Gompa
++ *
++ * This program is licensed under the BSD license, read LICENSE.BSD
++ * for further information.
++ *
++ */
++
++#ifndef SOLV_XFOPEN_FALLBACK_FOPENCOOKIE_H
++#define SOLV_XFOPEN_FALLBACK_FOPENCOOKIE_H
++
++#include <stdio.h>
++#include <stdint.h>
++
++typedef struct cookie_io_functions_t {
++ ssize_t (*read)(void *, char *, size_t);
++ ssize_t (*write)(void *, const char *, size_t);
++ int (*seek)(void *, off64_t, int);
++ int (*close)(void *);
++} cookie_io_functions_t;
++
++FILE *fopencookie(void *cookie, const char *mode, struct cookie_io_functions_t io);
++
++#endif
+--
+2.4.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-CMakeLists.txt-fix-MAN_INSTALL_DIR.patch b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-CMakeLists.txt-fix-MAN_INSTALL_DIR.patch
deleted file mode 100644
index 972ecc9c5..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv/0001-CMakeLists.txt-fix-MAN_INSTALL_DIR.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 280f0d37c642d68bad2a2e49ef437953474d99e6 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 6 Apr 2016 23:15:02 -0700
-Subject: [PATCH] CMakeLists.txt: fix MAN_INSTALL_DIR
-
-It checks ${CMAKE_INSTALL_PREFIX}/share/man when configure, but it may
-not exist when crosscompile, for example, when CMAKE_INSTALL_PREFIX="/",
-it is OK, but when CMAKE_INSTALL_PREFIX="/some/path/else", then it
-doesn't exist, and the man dir would be set to "/usr/man" which is
-incorrect.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- CMakeLists.txt | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index fd1426b..747db22 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -57,10 +57,7 @@ else (DEFINED INCLUDE)
- ENDIF (DEFINED INCLUDE)
- MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}")
- SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
--SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man")
--IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man")
-- SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man")
--ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man")
-+SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man")
- MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}")
-
- ####################################################################
---
-2.7.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_0.6.23.bb b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_0.6.23.bb
new file mode 100644
index 000000000..f3f3d6e64
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_0.6.23.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Library for solving packages and reading repositories"
+HOMEPAGE = "https://github.com/openSUSE/libsolv"
+BUGTRACKER = "https://github.com/openSUSE/libsolv/issues"
+SECTION = "devel"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8"
+
+DEPENDS = "expat zlib"
+
+SRC_URI = "git://github.com/openSUSE/libsolv.git \
+ "
+SRC_URI_append_libc-musl = " file://0001-Add-fallback-fopencookie-implementation.patch"
+
+SRCREV = "f654c8cfa52427ed42d7142e58452dae08c0c2d0"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DLIB=${baselib} -DMULTI_SEMANTICS=ON"
+
+PACKAGES =+ "${PN}-tools ${PN}ext"
+
+FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibSolv.cmake"
+FILES_${PN}-tools = "${bindir}/*"
+FILES_${PN}ext = "${libdir}/${PN}ext.so.*"
+
+BBCLASSEXTEND =+ "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_git.bb b/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_git.bb
deleted file mode 100644
index fb81c8a5f..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/libsolv/libsolv_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Library for solving packages and reading repositories"
-HOMEPAGE = "https://github.com/openSUSE/libsolv"
-BUGTRACKER = "https://github.com/openSUSE/libsolv/issues"
-SECTION = "devel"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8"
-
-DEPENDS = "expat zlib"
-
-PV = "0.6.19"
-
-SRC_URI = "git://github.com/openSUSE/libsolv.git \
- file://0001-CMakeLists.txt-fix-MAN_INSTALL_DIR.patch \
-"
-SRCREV = "4c5af401a89858d4cebbfe40c59a0031ff9db5b0"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DLIB=${baselib}"
-
-PACKAGES =+ "${PN}-tools ${PN}ext"
-
-FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibSolv.cmake"
-FILES_${PN}-tools = "${bindir}/*"
-FILES_${PN}ext = "${libdir}/${PN}ext.so.*"
-
-BBCLASSEXTEND =+ "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch b/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
new file mode 100644
index 000000000..7c47df22e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
@@ -0,0 +1,34 @@
+From a4857911ece5ebfcdef42aee4c070eb216f39597 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Fri, 13 May 2016 11:40:13 -0500
+Subject: [PATCH] modules/files.c: parse_field fix string formating in
+ g_warnings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+[YOCTO #9547]
+
+Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
+
+Upstream-Status: Pending
+---
+ modules/files.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/files.c b/modules/files.c
+index 4ef0a57..35eafc9 100644
+--- a/modules/files.c
++++ b/modules/files.c
+@@ -534,7 +534,7 @@ parse_field(const struct format_specifier *format, GValue *value,
+ string, &err);
+ if (ret == FALSE) {
+ g_assert(err != NULL);
+- g_warning(lu_strerror(err));
++ g_warning(lu_strerror(err), NULL);
+ lu_error_free(&err);
+ }
+ return ret;
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser_0.62.bb b/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser_0.62.bb
index 1369ae8f2..3d0b516ab 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser_0.62.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/libuser/libuser_0.62.bb
@@ -14,16 +14,17 @@ SECTION = "base"
SRC_URI = "https://fedorahosted.org/releases/l/i/libuser/libuser-${PV}.tar.xz \
file://0001-Check-for-issetugid.patch \
file://0002-remove-unused-execinfo.h.patch \
- "
+ file://0001-modules-files.c-parse_field-fix-string-formating-in-.patch \
+ "
SRC_URI[md5sum] = "63e5e5c551e99dc5302b40b80bd6d4f2"
SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3cace20b"
-DEPENDS = "popt libpam glib-2.0 docbook-utils-native linuxdoc-tools-native python"
+DEPENDS = "popt libpam glib-2.0 docbook-utils-native linuxdoc-tools-native python3"
-inherit autotools gettext pythonnative python-dir pkgconfig
+inherit autotools gettext python3native python3-dir pkgconfig gtk-doc
-EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}"
+EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
PACKAGES += "${PN}-python "
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch
new file mode 100644
index 000000000..b8c7f3751
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch
@@ -0,0 +1,37 @@
+From e7a8c925b9316a72bdc8f32789ffe56fda5c4788 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 26 Aug 2016 18:20:32 +0300
+Subject: [PATCH] Use pkg-config for pcre dependency instead of -config script.
+
+RP 2014/5/22
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1d172a1..a9236da 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -380,11 +380,12 @@ if test "$WITH_PCRE" != "no"; then
+ PCRE_LIB="-L$WITH_PCRE/lib -lpcre"
+ CPPFLAGS="$CPPFLAGS -I$WITH_PCRE/include"
+ else
+- AC_PATH_PROG(PCRECONFIG, pcre-config)
+- if test x"$PCRECONFIG" != x; then
+- PCRE_LIB=`$PCRECONFIG --libs`
+- CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
+- fi
++ PKG_CHECK_MODULES(PCREPKG, [libpcre], [
++ PCRE_LIB=${PCREPKG_LIBS}
++ CPPFLAGS="$CPPFLAGS ${PCREPKG_CFLAGS}"
++ ], [
++ AC_MSG_ERROR([pcre pkgconfig not found, install the pcre-devel package or build with --without-pcre])
++ ])
+ fi
+
+ if test x"$PCRE_LIB" != x; then
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/pkgconfig.patch b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/pkgconfig.patch
deleted file mode 100644
index e395f928c..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd/pkgconfig.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Use pkg-config for pcre dependency instead of -config script.
-
-Upstream-Status: Pending
-
-RP 2014/5/22
-
-
-Index: lighttpd-1.4.35/configure.ac
-===================================================================
---- lighttpd-1.4.35.orig/configure.ac 2014-03-06 14:08:00.000000000 +0000
-+++ lighttpd-1.4.35/configure.ac 2014-05-13 16:58:30.758471169 +0000
-@@ -309,16 +309,14 @@
- AC_MSG_RESULT([$WITH_PCRE])
-
- if test "$WITH_PCRE" != "no"; then
-- AC_PATH_PROG(PCRECONFIG, pcre-config)
--
-- if test x"$PCRECONFIG" != x; then
-- PCRE_LIB=`$PCRECONFIG --libs`
-- CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
-+ PKG_CHECK_MODULES(PCREPKG, [libpcre], [
-+ PCRE_LIB=${PCREPKG_LIBS}
-+ CPPFLAGS="$CPPFLAGS ${PCREPKG_CFLAGS}"
- AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
- AC_DEFINE([HAVE_PCRE_H], [1], [pcre.h])
-- else
-+ ], [
- AC_MSG_ERROR([pcre-config not found, install the pcre-devel package or build with --without-pcre])
-- fi
-+ ])
- fi
-
- AC_SUBST(PCRE_LIB)
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.39.bb b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.39.bb
deleted file mode 100644
index 378accbf1..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.39.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "Lightweight high-performance web server"
-HOMEPAGE = "http://www.lighttpd.net/"
-BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
-
-SECTION = "net"
-DEPENDS = "zlib libpcre"
-RDEPENDS_${PN} += " \
- lighttpd-module-access \
- lighttpd-module-accesslog \
- lighttpd-module-indexfile \
- lighttpd-module-dirlisting \
- lighttpd-module-staticfile \
-"
-
-SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
- file://index.html.lighttpd \
- file://lighttpd.conf \
- file://lighttpd \
- file://lighttpd.service \
- file://pkgconfig.patch \
- "
-
-SRC_URI[md5sum] = "63c7563be1c7a7a9819a51f07f1af8b2"
-SRC_URI[sha256sum] = "7eb9a1853c3d6dd5851682b0733a729ba4158d6bdff80974d5ef5f1f6887365b"
-
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
-
-EXTRA_OECONF = " \
- --without-bzip2 \
- --without-ldap \
- --without-lua \
- --without-memcache \
- --with-pcre \
- --without-webdav-props \
- --without-webdav-locks \
- --disable-static \
-"
-
-inherit autotools pkgconfig update-rc.d gettext systemd
-
-INITSCRIPT_NAME = "lighttpd"
-INITSCRIPT_PARAMS = "defaults 70"
-
-SYSTEMD_SERVICE_${PN} = "lighttpd.service"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
- install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
- install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/index.html.lighttpd ${D}/www/pages/index.html
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/lighttpd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@BASE_BINDIR@,${base_bindir},g' \
- ${D}${systemd_unitdir}/system/lighttpd.service
- #For FHS compliance, create symbolic links to /var/log and /var/tmp for logs and temporary data
- ln -sf ${localstatedir}/log ${D}/www/logs
- ln -sf ${localstatedir}/tmp ${D}/www/var
-}
-
-FILES_${PN} += "${sysconfdir} /www"
-
-CONFFILES_${PN} = "${sysconfdir}/lighttpd.conf"
-
-PACKAGES_DYNAMIC += "^lighttpd-module-.*"
-
-python populate_packages_prepend () {
- lighttpd_libdir = d.expand('${libdir}')
- do_split_packages(d, lighttpd_libdir, '^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='')
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.41.bb b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.41.bb
new file mode 100644
index 000000000..1a3f32342
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/lighttpd/lighttpd_1.4.41.bb
@@ -0,0 +1,79 @@
+SUMMARY = "Lightweight high-performance web server"
+HOMEPAGE = "http://www.lighttpd.net/"
+BUGTRACKER = "http://redmine.lighttpd.net/projects/lighttpd/issues"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
+
+SECTION = "net"
+DEPENDS = "zlib libpcre"
+RDEPENDS_${PN} += " \
+ lighttpd-module-access \
+ lighttpd-module-accesslog \
+ lighttpd-module-indexfile \
+ lighttpd-module-dirlisting \
+ lighttpd-module-staticfile \
+"
+
+SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
+ file://index.html.lighttpd \
+ file://lighttpd.conf \
+ file://lighttpd \
+ file://lighttpd.service \
+ file://0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch \
+ "
+
+SRC_URI[md5sum] = "1df2e4dbc965cfe6f99f008ac3db4d8d"
+SRC_URI[sha256sum] = "4bcc383ef6d6dc7b284f68882d71a178e2986c83c4e85eeb3c8f3b882e346b6c"
+
+PACKAGECONFIG ??= "openssl \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', 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 \
+"
+
+inherit autotools pkgconfig update-rc.d gettext systemd
+
+INITSCRIPT_NAME = "lighttpd"
+INITSCRIPT_PARAMS = "defaults 70"
+
+SYSTEMD_SERVICE_${PN} = "lighttpd.service"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
+ install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
+ install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/index.html.lighttpd ${D}/www/pages/index.html
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/lighttpd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ ${D}${systemd_unitdir}/system/lighttpd.service
+ #For FHS compliance, create symbolic links to /var/log and /var/tmp for logs and temporary data
+ ln -sf ${localstatedir}/log ${D}/www/logs
+ ln -sf ${localstatedir}/tmp ${D}/www/var
+}
+
+FILES_${PN} += "${sysconfdir} /www"
+
+CONFFILES_${PN} = "${sysconfdir}/lighttpd.conf"
+
+PACKAGES_DYNAMIC += "^lighttpd-module-.*"
+
+python populate_packages_prepend () {
+ lighttpd_libdir = d.expand('${libdir}')
+ do_split_packages(d, lighttpd_libdir, '^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='')
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch
index 0809c9be9..17c90029c 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts/0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch
@@ -11,13 +11,14 @@ diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions
index 6850046..11223f7 100644
--- a/rc.d/init.d/functions
+++ b/rc.d/init.d/functions
-@@ -597,5 +597,5 @@ if [ "$_use_systemctl" = "1" ]; then
+@@ -597,6 +597,6 @@ if [ "$_use_systemctl" = "1" ]; then
fi
fi
-strstr "$(cat /proc/cmdline)" "rc.debug" && set -x
+strstr "$(cat /proc/cmdline)" "rc.debug" && set -x || true
-
+ return 0
+
--
2.1.0
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb
deleted file mode 100644
index 727305015..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.64.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "SysV init scripts which are only used in an LSB image"
-SECTION = "base"
-LICENSE = "GPLv2"
-DEPENDS = "popt glib-2.0"
-
-RDEPENDS_${PN} += "util-linux"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6"
-
-S="${WORKDIR}/initscripts-${PV}"
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-${PV}.tar.bz2/9cce2ae1009750e84be37c09a028757e/initscripts-${PV}.tar.bz2 \
- file://functions.patch \
- file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \
- "
-
-SRC_URI[md5sum] = "9cce2ae1009750e84be37c09a028757e"
-SRC_URI[sha256sum] = "48b59ce8157cfc58bbd4b1dfa58ad1087245761ae11c2033b66ae3864ea7e1cf"
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "functions"
-ALTERNATIVE_LINK_NAME[functions] = "${sysconfdir}/init.d/functions"
-
-# Since we are only taking the patched version of functions, no need to
-# configure or compile anything so do not execute these
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install(){
- install -d ${D}${sysconfdir}/init.d/
- install -m 0644 ${S}/rc.d/init.d/functions ${D}${sysconfdir}/init.d/functions
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
new file mode 100644
index 000000000..0c08fffce
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbinitscripts_9.68.bb
@@ -0,0 +1,33 @@
+SUMMARY = "SysV init scripts which are only used in an LSB image"
+SECTION = "base"
+LICENSE = "GPLv2"
+DEPENDS = "popt glib-2.0"
+
+RDEPENDS_${PN} += "util-linux"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebf4e8b49780ab187d51bd26aaa022c6"
+
+S="${WORKDIR}/initscripts-${PV}"
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/initscripts/initscripts-${PV}.tar.bz2/6a51a5af38e01445f53989ed0727c3e1/initscripts-${PV}.tar.bz2 \
+ file://functions.patch \
+ file://0001-functions-avoid-exit-1-which-causes-init-scripts-to-.patch \
+ "
+
+SRC_URI[md5sum] = "6a51a5af38e01445f53989ed0727c3e1"
+SRC_URI[sha256sum] = "2a1c6e9dbaa37a676518f4803b501e107c058bb14ef7a8db24c52b77fbcba531"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "functions"
+ALTERNATIVE_LINK_NAME[functions] = "${sysconfdir}/init.d/functions"
+
+# Since we are only taking the patched version of functions, no need to
+# configure or compile anything so do not execute these
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install(){
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0644 ${S}/rc.d/init.d/functions ${D}${sysconfdir}/init.d/functions
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
index b9971a17d..c31a3eb46 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
@@ -113,7 +113,7 @@ fi
#fi
SERVER1="\
- http://${SERVER_NAME}/pub/lsb/base/${LSB_RELEASE}/binary"
+ http://${SERVER_NAME}/pub/lsb/base/released-all/binary"
SERVER2="\
http://${SERVER_NAME}/pub/lsb/test_suites/released-all/binary/runtime"
SERVER3="\
@@ -429,7 +429,6 @@ cat > /etc/rpm/sysinfo/Dirnames << EOF
/opt/lsb/test/desktop/freetype
/opt/lsb/test/desktop/gtkvts
/opt/lsb/test/desktop/libpng
-/opt/lsb/test/desktop/qt3
/opt/lsb/test/desktop/xft
/opt/lsb/test/desktop/xml
/opt/lsb/test/desktop/xrender
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list
index 27d8352d9..959f93150 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/packages_list
@@ -1,4 +1,4 @@
-LSB_RELEASE="released-4.1.0"
+LSB_RELEASE="released-5.0"
LSB_ARCH="lsbarch"
BASE_PACKAGES_LIST="lsb-setup-4.1.0-1.noarch.rpm"
@@ -9,36 +9,35 @@ RUNTIME_BASE_PACKAGES_LIST="lsb-dist-checker-5.0.0.1-1.targetarch.rpm \
lsb-xvfb-1.2.0-22.targetarch.rpm \
"
-RUNTIME_PACKAGES_LIST="lsb-cmdchk-4.1.4-5.targetarch.rpm \
- lsb-libchk-4.1.4-5.targetarch.rpm \
- lsb-qm-2.2-12.lsb4.targetarch.rpm \
- lsb-task-dist-testkit-4.1.9-1.noarch.rpm \
- lsb-test-core-4.1.15-1.targetarch.rpm \
- lsb-test-cpp-t2c-4.1.0-1.targetarch.rpm \
- lsb-test-desktop-4.1.9-1.targetarch.rpm \
- lsb-test-desktop-t2c-4.1.3-3.targetarch.rpm \
- lsb-test-libstdcpp-4.1.0-18.lsb4.targetarch.rpm \
- lsb-test-olver-core-4.1.4-1.targetarch.rpm \
- lsb-test-perl-4.1.8-1.noarch.rpm \
- lsb-test-printing-4.1.2-1.targetarch.rpm \
- lsb-test-python-4.1.5-1.targetarch.rpm \
- lsb-test-qt3-azov-4.1.1-3.targetarch.rpm \
- lsb-test-qt4-azov-4.1.3-1.targetarch.rpm \
- lsb-test-xts5-5.1.5-45.lsb4.targetarch.rpm \
- lsb-test-alsa-t2c-4.1.0-1.targetarch.rpm \
- lsb-test-core-t2c-4.1.2-3.targetarch.rpm \
- lsb-test-xml2-azov-4.1.0-1.targetarch.rpm \
+RUNTIME_PACKAGES_LIST="lsb-cmdchk-5.0.3-1.targetarch.rpm \
+ lsb-libchk-5.0.3-1.targetarch.rpm \
+ lsb-qm-2.2-1.lsb5.targetarch.rpm \
+ lsb-task-dist-testkit-5.0.0-2.noarch.rpm \
+ lsb-test-core-5.0.1-1.targetarch.rpm \
+ lsb-test-cpp-t2c-5.0.0-1.targetarch.rpm \
+ lsb-test-desktop-5.0.0-1.targetarch.rpm \
+ lsb-test-desktop-t2c-5.0.0-1.targetarch.rpm \
+ lsb-test-libstdcpp-4.1.0-22.lsb1.targetarch.rpm \
+ lsb-test-olver-core-5.0.0-1.targetarch.rpm \
+ lsb-test-perl-5.0.2-1.noarch.rpm \
+ lsb-test-printing-5.0.1-1.targetarch.rpm \
+ lsb-test-python-5.0.0-1.targetarch.rpm \
+ lsb-test-qt4-azov-5.0.0-1.targetarch.rpm \
+ lsb-test-xts5-5.1.5-47.lsb5.targetarch.rpm \
+ lsb-test-alsa-t2c-5.1.91-4.targetarch.rpm \
+ lsb-test-core-t2c-5.0.1-1.targetarch.rpm \
+ lsb-test-xml2-azov-5.0.0-1.targetarch.rpm \
"
-APP_PACKAGES_LIST="lsb-python-2.4.6-7.lsb4.targetarch.rpm \
- lsb-apache-2.2.14-8.lsb4.targetarch.rpm \
- lsb-tcl-8.5.7-8.lsb4.targetarch.rpm \
- lsb-expect-5.43.0-13.lsb4.targetarch.rpm \
- lsb-groff-1.20.1-7.lsb4.targetarch.rpm \
- lsb-raptor-1.4.19-5.lsb4.targetarch.rpm \
- lsb-xpdf-1.01-14.lsb4.targetarch.rpm \
- lsb-samba-3.4.3-9.lsb4.targetarch.rpm \
- lsb-rsync-3.0.6-6.lsb4.targetarch.rpm \
+APP_PACKAGES_LIST="lsb-python-2.4.6-10.lsb5.targetarch.rpm \
+ lsb-apache-2.2.19-5.lsb5.targetarch.rpm \
+ lsb-tcl-8.5.9-21.lsb5.targetarch.rpm \
+ lsb-expect-5.43.0-21.lsb5.targetarch.rpm \
+ lsb-groff-1.20.1-9.lsb5.targetarch.rpm \
+ lsb-raptor-1.4.21-4.lsb5.targetarch.rpm \
+ lsb-xpdf-1.01-17.lsb5.targetarch.rpm \
+ lsb-samba-3.5.9-5.lsb5.targetarch.rpm \
+ lsb-rsync-3.0.8-3.lsb5.targetarch.rpm \
"
APP_TESTFILES_LIST="expect-tests.tar \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/session b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/session
index 85ca2efe9..3abcca740 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/session
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsb/lsbtest/session
@@ -126,15 +126,6 @@ VERSION: local|*
AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/python
AUTOREPLY_RESULTS_DIR: /opt/lsb/test/python/results
-[qt3-azov]
-RUN: 1
-VERSION: local|*
-
-[qt3-azov|local|*]
-AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/qt3-azov
-AUTOREPLY_X11_FONT_PATH: [default]
-AUTOREPLY_RESULTS_DIR: /opt/lsb/test/qt3-azov/results
-
[qt4-azov]
RUN: 1
VERSION: local|*
diff --git a/import-layers/yocto-poky/meta/recipes-extended/lsof/lsof_4.89.bb b/import-layers/yocto-poky/meta/recipes-extended/lsof/lsof_4.89.bb
index c10337beb..b732cf0ac 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/lsof/lsof_4.89.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/lsof/lsof_4.89.bb
@@ -47,8 +47,6 @@ do_configure () {
export I = "${STAGING_INCDIR}"
export L = "${STAGING_INCDIR}"
-EXTRA_OEMAKE = ""
-
do_compile () {
oe_runmake 'CC=${CC}' 'CFGL=${LDFLAGS} -L./lib -llsof' 'DEBUG=' 'INCL=${CFLAGS}'
}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0001-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0001-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
new file mode 100644
index 000000000..04532be79
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0001-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
@@ -0,0 +1,41 @@
+From 672a56be14426eae44864673c6c2afca0ab89d46 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Fri, 13 May 2016 11:11:28 -0500
+Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on string
+ printf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes:
+
+acl1.c: In function 'test_acl_default':
+acl1.c:317:2: error: format not a string literal and no format arguments
+[-Werror=format-security]
+ printf(cmd);
+
+[YOCTO #9548]
+
+Signed-off-by: AnĂ­bal LimĂłn <anibal.limon@linux.intel.com>
+
+Upstream-Status: Pending
+---
+ testcases/network/nfsv4/acl/acl1.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c
+index b8b67b4..7c7c506 100644
+--- a/testcases/network/nfsv4/acl/acl1.c
++++ b/testcases/network/nfsv4/acl/acl1.c
+@@ -314,7 +314,7 @@ void test_acl_default(char *dir, acl_t acl)
+ char *cmd = malloc(256);
+
+ strcpy(cmd, "chmod 7777 ");
+- printf(cmd);
++ printf(cmd, NULL);
+ strcat(cmd, dir);
+ system(cmd);
+ acl2 = acl_get_file(path, ACL_TYPE_ACCESS);
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0002-Add-knob-to-control-whether-numa-support-should-be-c.patch b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0002-Add-knob-to-control-whether-numa-support-should-be-c.patch
index 68725dc7a..0684beeee 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0002-Add-knob-to-control-whether-numa-support-should-be-c.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp/0002-Add-knob-to-control-whether-numa-support-should-be-c.patch
@@ -7,7 +7,7 @@ Subject: [PATCH 02/32] Add knob to control whether numa support should be
otherwise undeterministic dependency will be generated
during build depending upong numa being staged or not
-signed-off-by: Roy.Li <rongqing.li@windriver.com>
+Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
m4/ltp-numa.m4 | 10 +++++++++-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp_20160126.bb b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp_20160126.bb
index 097c16d57..7631e0ec0 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp_20160126.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/ltp/ltp_20160126.bb
@@ -62,6 +62,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
file://0033-shmat1-Cover-GNU-specific-code-under-__USE_GNU.patch \
file://0034-periodic_output.patch \
file://0035-fix-test_proc_kill-hang.patch \
+ file://0001-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
"
S = "${WORKDIR}/git"
@@ -91,6 +92,14 @@ do_install(){
install -d ${D}/opt/ltp/
oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install
+ # fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run
+ # as it lacks dependency on some perl moudle such as LWP::Simple
+ # And this script previously works as a tool for analyzing failures from LTP
+ # runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses
+ # http://khack.osdl.org to retrieve ltp test results run on
+ # OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible
+ rm -rf ${D}/opt/ltp/bin/STPfailure_report.pl
+
# Copy POSIX test suite into ${D}/opt/ltp/testcases by manual
cp -r testcases/open_posix_testsuite ${D}/opt/ltp/testcases
}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mailx/mailx_12.5-5.bb b/import-layers/yocto-poky/meta/recipes-extended/mailx/mailx_12.5-5.bb
index 4a32d2f68..9dd710a71 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/mailx/mailx_12.5-5.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/mailx/mailx_12.5-5.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4202a0a62910cf94f7af8a3436a2a2dd"
DEPENDS = "openssl"
-SRC_URI = "${DEBIAN_MIRROR}/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz;name=archive \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz;name=archive \
file://0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch \
file://0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch \
file://0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch \
@@ -28,6 +28,7 @@ SRC_URI[archive.sha256sum] = "015ba4209135867f37a0245d22235a392b8bbed956913286b8
# for this package we're mostly interested in tracking debian patches,
# and not in the upstream version where all development has effectively stopped
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/h/heirloom-mailx/"
UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
S = "${WORKDIR}/heirloom-mailx-12.5"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.04.bb b/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.04.bb
deleted file mode 100644
index 65df0aad3..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.04.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Linux man-pages"
-DESCRIPTION = "The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user programs"
-SECTION = "console/utils"
-HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
-LICENSE = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://README;md5=8f2a3d43057d458e5066714980567a60"
-SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/Archive/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "901cd52e0ee2a9d7508ae1ab15d5e835"
-SRC_URI[sha256sum] = "bff072462baea8d1b8e4568759324c5ed6c760716fe830bca71129cc09e00668"
-
-RDEPENDS_${PN} = "man"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-# Only deliveres man-pages so FILES_${PN} gets everything
-FILES_${PN}-doc = ""
-FILES_${PN} = "${mandir}/*"
-
-inherit update-alternatives
-
-ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "passwd.5 getspnam.3"
-ALTERNATIVE_LINK_NAME[passwd.5] = "${mandir}/man5/passwd.5"
-ALTERNATIVE_LINK_NAME[getspnam.3] = "${mandir}/man3/getspnam.3"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.07.bb b/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.07.bb
new file mode 100644
index 000000000..76a3fd8ae
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/man-pages/man-pages_4.07.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Linux man-pages"
+DESCRIPTION = "The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user programs"
+SECTION = "console/utils"
+HOMEPAGE = "http://www.kernel.org/pub/linux/docs/man-pages"
+LICENSE = "GPLv2+"
+
+LIC_FILES_CHKSUM = "file://README;md5=8f2a3d43057d458e5066714980567a60"
+SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/Archive/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "05ba1cb21e99d02bd7bc1a59378965d2"
+SRC_URI[sha256sum] = "c973351131931f7700f5e9fbf4ef366c43ea7c1515d282e8d5db9c77590c4c93"
+
+RDEPENDS_${PN} = "man"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+# Only deliveres man-pages so FILES_${PN} gets everything
+FILES_${PN}-doc = ""
+FILES_${PN} = "${mandir}/*"
+
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE_${PN} = "passwd.5 getspnam.3"
+ALTERNATIVE_LINK_NAME[passwd.5] = "${mandir}/man5/passwd.5"
+ALTERNATIVE_LINK_NAME[getspnam.3] = "${mandir}/man3/getspnam.3"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.15.bb b/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.15.bb
deleted file mode 100644
index 6c3a16aab..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.15.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Midnight Commander is an ncurses based file manager"
-HOMEPAGE = "http://www.midnight-commander.org/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2"
-SECTION = "console/utils"
-DEPENDS = "ncurses glib-2.0 util-linux"
-RDEPENDS_${PN} = "ncurses-terminfo"
-
-SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
- "
-SRC_URI[md5sum] = "db48ce26ba425a61edc51930e94227fd"
-SRC_URI[sha256sum] = "f74e3da70410975cdeb27ee9a66d1dd812250b6d3ede364bca728dd5a48e5471"
-
-inherit autotools gettext pkgconfig
-
-#
-# Both Samba (smb) and sftp require package delivered from meta-openembedded
-#
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
-PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
-
-EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x"
-
-do_install_append () {
- sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
- sed -i -e '1s,#!.*python,#!${bindir}/env python,' ${D}${libexecdir}/mc/extfs.d/*
-}
-
-PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers-python ${BPN}-helpers ${BPN}-fish"
-
-SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
-FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
- ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \
- ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \
- ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \
- ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \
- ${libexecdir}/mc/extfs.d/uzip"
-RDEPENDS_${BPN}-helpers-perl = "perl"
-
-SUMMARY_${BPN}-helpers-python = "Midnight Commander Python-based helper scripts"
-FILES_${BPN}-helpers-python = "${libexecdir}/mc/extfs.d/s3+ ${libexecdir}/mc/extfs.d/uc1541"
-RDEPENDS_${BPN}-helpers-python = "python"
-
-SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts"
-FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
-
-SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts"
-FILES_${BPN}-fish = "${libexecdir}/mc/fish"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.17.bb b/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.17.bb
new file mode 100644
index 000000000..a5c4eceb9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/mc/mc_4.8.17.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Midnight Commander is an ncurses based file manager"
+HOMEPAGE = "http://www.midnight-commander.org/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2"
+SECTION = "console/utils"
+DEPENDS = "ncurses glib-2.0 util-linux"
+RDEPENDS_${PN} = "ncurses-terminfo"
+
+SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
+ "
+SRC_URI[md5sum] = "6e9c07066e40af06b263a13fad17a07f"
+SRC_URI[sha256sum] = "66d0cb37baaed8ef930f8ad25a634adad4f264eb61820893920ac87b9dfb783b"
+
+inherit autotools gettext pkgconfig
+
+#
+# Both Samba (smb) and sftp require package delivered from meta-openembedded
+#
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
+PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
+
+EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x"
+
+do_install_append () {
+ sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
+ sed -i -e '1s,#!.*python,#!${bindir}/env python,' ${D}${libexecdir}/mc/extfs.d/*
+}
+
+PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers-python ${BPN}-helpers ${BPN}-fish"
+
+SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
+FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
+ ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \
+ ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \
+ ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \
+ ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \
+ ${libexecdir}/mc/extfs.d/uzip"
+RDEPENDS_${BPN}-helpers-perl = "perl"
+
+SUMMARY_${BPN}-helpers-python = "Midnight Commander Python-based helper scripts"
+FILES_${BPN}-helpers-python = "${libexecdir}/mc/extfs.d/s3+ ${libexecdir}/mc/extfs.d/uc1541"
+RDEPENDS_${BPN}-helpers-python = "python"
+
+SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts"
+FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
+
+SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts"
+FILES_${BPN}-fish = "${libexecdir}/mc/fish"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-some-type-comparison-problems.patch b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-some-type-comparison-problems.patch
index ee482b5ca..f829467a1 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-some-type-comparison-problems.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-some-type-comparison-problems.patch
@@ -11,7 +11,7 @@ unsigned int too.
Upstream-Status: Backport
-Signed-off-by : Xiao Ni <xni@redhat.com>
+Signed-off-by: : Xiao Ni <xni@redhat.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch
new file mode 100644
index 000000000..4cf809290
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch
@@ -0,0 +1,43 @@
+From 6d369e8f226594632ce4260129509daf7030de0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 May 2016 22:03:57 +0000
+Subject: [PATCH] mdadm.h: Undefine dprintf before redefining
+
+dprintf is also defined in libc see
+usr/include/bits/stdio2.h, this comes into
+play especially when fortify sources is enabled
+and compilers like clang reports the override
+
+In file included from policy.c:25:
+./mdadm.h:1562:9: error: 'dprintf' macro redefined [-Werror,-Wmacro-redefined]
+ ^
+/mnt/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/bits/stdio2.h:145:12: note: previous definition is here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ mdadm.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/mdadm.h b/mdadm.h
+index 230e60f..8c8f4d1 100755
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -1554,11 +1554,13 @@ static inline char *to_subarray(struct mdstat_ent *ent, char *container)
+ }
+
+ #ifdef DEBUG
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+ fprintf(stderr, "%s: %s: "fmt, Name, __func__, ##arg)
+ #define dprintf_cont(fmt, arg...) \
+ fprintf(stderr, fmt, ##arg)
+ #else
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+ ({ if (0) fprintf(stderr, "%s: %s: " fmt, Name, __func__, ##arg); 0; })
+ #define dprintf_cont(fmt, arg...) \
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-raid6check-Fix-if-else-indentation.patch b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-raid6check-Fix-if-else-indentation.patch
new file mode 100644
index 000000000..0b34b8491
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/0001-raid6check-Fix-if-else-indentation.patch
@@ -0,0 +1,37 @@
+From 1b0aa1debf6fbe9923c9aac671d2894f76c32f9d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Apr 2016 16:38:13 +0000
+Subject: [PATCH] raid6check: Fix if-else indentation
+
+gcc 6 warns about ambiguity due to this indentation
+| raid6check.c: In function 'manual_repair':
+| raid6check.c:267:4: error: this 'else' clause does not guard... [-Werror=misleading-indentation]
+| else
+| ^~~~
+| raid6check.c:269:5: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'else'
+| printf("Repairing D(%d) and P\n", failed_data);
+| ^~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ raid6check.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/raid6check.c b/raid6check.c
+index ad7ffe7..409b1b6 100644
+--- a/raid6check.c
++++ b/raid6check.c
+@@ -266,7 +266,7 @@ int manual_repair(int chunk_size, int syndrome_disks,
+ failed_data = failed_slot2;
+ else
+ failed_data = failed_slot1;
+- printf("Repairing D(%d) and P\n", failed_data);
++ printf("Repairing D(%d) and P\n", failed_data);
+ raid6_datap_recov(syndrome_disks+2, chunk_size,
+ failed_data, (uint8_t**)blocks, 1);
+ } else {
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch
index 40acc148e..84c382def 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch
@@ -6,7 +6,7 @@ set by tune settings are lost. Causing compile failure with x32 toolchain
As the bitbake defined CC is good, there is no need to redfine CC in the
make file, hence making the CC definition in the Makefile conditional.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/07
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/07
Index: mdadm-3.3/Makefile
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.4.bb b/import-layers/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.4.bb
index 142dfddbf..261054e76 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.4.bb
@@ -19,7 +19,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \
file://0001-Fix-some-type-comparison-problems.patch \
file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \
file://run-ptest \
- "
+ file://0001-raid6check-Fix-if-else-indentation.patch \
+ file://0001-mdadm.h-Undefine-dprintf-before-redefining.patch \
+ "
SRC_URI[md5sum] = "04b8b21f637540350f8517c7e68d3c63"
SRC_URI[sha256sum] = "27d0be4627d38a12ddcd1c1c3721d649d4e89e1093914497e22b57245cda8808"
@@ -44,8 +46,6 @@ do_install() {
autotools_do_install
}
-FILES_${PN} += "${base_libdir}/udev/rules.d/*.rules"
-
inherit ptest
do_compile_ptest() {
diff --git a/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.3.bb
deleted file mode 100644
index 6dbd78f9f..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.3.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "msmtp is an SMTP client"
-DESCRIPTION = "A sendmail replacement for use in MTAs like mutt"
-HOMEPAGE = "http://msmtp.sourceforge.net/"
-SECTION = "console/network"
-
-LICENSE = "GPLv3"
-DEPENDS = "zlib gnutls"
-
-#COPYING or Licence
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://sourceforge.net/projects/msmtp/files/msmtp/${PV}/${BPN}-${PV}.tar.xz \
- "
-
-SRC_URI[md5sum] = "6d9384c09405db9476beaa2237c56705"
-SRC_URI[sha256sum] = "f982be069c0772c3ee83925f552f5dac5fb307d2d1c68202f9926bb13b757355"
-
-inherit gettext autotools update-alternatives pkgconfig
-
-EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn"
-
-ALTERNATIVE_${PN} = "sendmail"
-ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp"
-ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
-ALTERNATIVE_PRIORITY = "100"
-
-pkg_postinst_${PN}_linuxstdbase () {
- # /usr/lib/sendmial is required by LSB core test
- [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.5.bb b/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.5.bb
new file mode 100644
index 000000000..d0c39eb4d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/msmtp/msmtp_1.6.5.bb
@@ -0,0 +1,30 @@
+SUMMARY = "msmtp is an SMTP client"
+DESCRIPTION = "A sendmail replacement for use in MTAs like mutt"
+HOMEPAGE = "http://msmtp.sourceforge.net/"
+SECTION = "console/network"
+
+LICENSE = "GPLv3"
+DEPENDS = "zlib gnutls"
+
+#COPYING or Licence
+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"
+
+inherit gettext autotools update-alternatives pkgconfig
+
+EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn"
+
+ALTERNATIVE_${PN} = "sendmail"
+ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp"
+ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+ALTERNATIVE_PRIORITY = "100"
+
+pkg_postinst_${PN}_linuxstdbase () {
+ # /usr/lib/sendmial is required by LSB core test
+ [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch
new file mode 100644
index 000000000..8be45ccac
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch
@@ -0,0 +1,87 @@
+From 08abfcd923e9f37d1902db26771b1dc6731eb265 Mon Sep 17 00:00:00 2001
+From: Jiri Popelka <jpopelka@redhat.com>
+Date: Fri, 27 Sep 2013 18:40:06 +0200
+Subject: [PATCH 1/1] lib/inet6.c:INET6_rresolve() - various fixes
+
+1) Fall-back to numeric address if getnameinfo fails.
+ Reverse lookup is not mandatory, therefore its fail
+ is not an error. Just return numeric address in that case.
+ This makes netstat/route show IPv6 address instead of
+ [UNKNOWN] in case of DNS problems.
+
+2) Pass length of 'name' buffer into function.
+ 'name' is a pointer and therefore sizeof(name)
+ returns size of pointer and not size of the buffer.
+ see http://stackoverflow.com/questions/14298710/c-pointers-and-arrays-sizeof-operator
+ The sizeof() usage was added with commit 604785adc,
+ so I checked all the other changes in that commit
+ and they seem to be OK.
+
+3) remove unused 's' variable
+
+Upstream-Status: Pending
+
+Signed-off-by: Shan Hai <shan.hai@windriver.com>
+Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
+---
+ lib/inet6.c | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+diff --git a/lib/inet6.c b/lib/inet6.c
+index 9a484a0..2a9c459 100644
+--- a/lib/inet6.c
++++ b/lib/inet6.c
+@@ -84,10 +84,9 @@ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
+ #endif
+
+
+-static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
++static int INET6_rresolve(char *name, size_t namelen,
++ struct sockaddr_in6 *sin6, int numeric)
+ {
+- int s;
+-
+ /* Grmpf. -FvK */
+ if (sin6->sin6_family != AF_INET6) {
+ #ifdef DEBUG
+@@ -98,21 +97,20 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
+ return (-1);
+ }
+ if (numeric & 0x7FFF) {
+- inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80);
++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
+ return (0);
+ }
+ if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
+ if (numeric & 0x8000)
+- strcpy(name, "default");
++ safe_strncpy(name, "default", namelen);
+ else
+- strcpy(name, "[::]");
++ safe_strncpy(name, "[::]", namelen);
+ return (0);
+ }
+
+- if ((s = getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
+- name, 255 /* !! */ , NULL, 0, 0))) {
+- fputs("getnameinfo failed\n", stderr);
+- return -1;
++ if (getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
++ name, namelen , NULL, 0, 0)) {
++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
+ }
+ return (0);
+ }
+@@ -143,7 +141,8 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric)
+
+ if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
+ return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
+- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0)
++ if (INET6_rresolve(buff, sizeof(buff),
++ (struct sockaddr_in6 *) sap, numeric) != 0)
+ return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff));
+ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr));
+ }
+--
+1.8.5.2.233.g932f7e4
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch
new file mode 100644
index 000000000..505eeb048
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch
@@ -0,0 +1,52 @@
+From 4d56645ea144a34f7cdd3e3ede6452d81fbae251 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Sat, 8 Oct 2016 14:42:54 +0800
+Subject: [PATCH] iptunnel.c: include linux/ip.h to fix building with linux-4.8
+
+Fix a build error when using the linux-4.8 headers that results in:
+
+In file included from
+.../sysroots/qemuarm64/usr/include/linux/if_tunnel.h:6:0,
+ from iptunnel.c:39:
+.../qemuarm64/usr/include/linux/ip.h:85:8: error: redefinition of
+'struct iphdr'
+ struct iphdr {
+ ^~~~~
+In file included from iptunnel.c:29:0:
+.../qemuarm64/usr/include/netinet/ip.h:44:8: note: originally defined here
+ struct iphdr
+ ^~~~~
+
+Upstream-Status: Submitted [1]
+
+[1] https://sourceforge.net/p/net-tools/mailman/message/35413022/
+
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ iptunnel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/iptunnel.c b/iptunnel.c
+index 4943d83..acfcbc7 100644
+--- a/iptunnel.c
++++ b/iptunnel.c
+@@ -26,7 +26,6 @@
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <netinet/in.h>
+-#include <netinet/ip.h>
+ #include <arpa/inet.h>
+ #if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1))
+ #include <net/if.h>
+@@ -36,6 +35,7 @@
+ #include <linux/if_arp.h>
+ #endif
+ #include <linux/types.h>
++#include <linux/ip.h>
+ #include <linux/if_tunnel.h>
+
+ #include "config.h"
+--
+2.8.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
index 63b2051ba..47a68a59a 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb
@@ -15,6 +15,8 @@ SRC_URI = "http://snapshot.debian.org/archive/debian/20050312T000000Z/pool/main/
file://net-tools-1.60-sctp1.patch \
file://net-tools-1.60-sctp2-quiet.patch \
file://net-tools-1.60-sctp3-addrs.patch \
+ file://0001-lib-inet6.c-INET6_rresolve-various-fixes.patch \
+ file://net-tools-fix-building-with-linux-4.8.patch \
"
# for this package we're mostly interested in tracking debian patches,
@@ -99,6 +101,10 @@ base_sbindir_progs = "arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig r
base_bindir_progs = "dnsdomainname domainname hostname netstat nisdomainname ypdomainname"
ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
+ALTERNATIVE_${PN}-doc += "hostname.1"
+ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
+ALTERNATIVE_PRIORITY[hostname.1] = "10"
+
python __anonymous() {
for prog in d.getVar('base_sbindir_progs', True).split():
d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir', True), prog))
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/files/0001-detect-gold-as-GNU-linker-too.patch b/import-layers/yocto-poky/meta/recipes-extended/newt/files/0001-detect-gold-as-GNU-linker-too.patch
new file mode 100644
index 000000000..a4b3afd95
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/newt/files/0001-detect-gold-as-GNU-linker-too.patch
@@ -0,0 +1,31 @@
+From 58245b859ffbcb1780575bf1b0a018d55e74e434 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Wed, 21 Sep 2016 21:14:40 +0200
+Subject: [PATCH] detect gold as GNU linker too
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas MĂĽller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 03e8bda..c2fce51 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -28,7 +28,7 @@ AC_CHECK_SIZEOF([void *])
+ AC_MSG_CHECKING([for GNU ld])
+ LD=`$CC -print-prog-name=ld 2>&5`
+
+-if test `$LD -v 2>&1 | $ac_cv_path_GREP -c "GNU ld"` = 0; then
++if test `$LD -v 2>&1 | $ac_cv_path_GREP -c "GNU "` = 0; then
+ # Not
+ GNU_LD=""
+ AC_MSG_RESULT([no])
+--
+2.5.5
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/files/remove_slang_include.patch b/import-layers/yocto-poky/meta/recipes-extended/newt/files/remove_slang_include.patch
deleted file mode 100644
index a2634ec75..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/newt/files/remove_slang_include.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-Upstream-Status: Pending
-
-Index: git/Makefile.in
-===================================================================
---- git.orig/Makefile.in
-+++ git/Makefile.in
-@@ -5,7 +5,7 @@ CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
- LDFLAGS = @LDFLAGS@
--CPPFLAGS = -D_GNU_SOURCE -I/usr/include/slang @CPPFLAGS@
-+CPPFLAGS = -D_GNU_SOURCE @CPPFLAGS@
- GNU_LD = @GNU_LD@
-
- VERSION = @VERSION@
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.18.bb b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.18.bb
deleted file mode 100644
index ba047574f..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.18.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-require recipes-extended/newt/libnewt_${PV}.bb
-
-SUMMARY .= " - python"
-DEPENDS = "libnewt python"
-RDEPENDS_${PN} += "python-core"
-
-inherit pythonnative python-dir
-
-EXTRA_OECONF += "--with-python"
-EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}"
-
-
-do_compile () {
- VERSION="$(sed -n 's/^VERSION = //p' Makefile)"
- oe_runmake _snack.so
-}
-
-do_install () {
- install -d ${D}${PYTHON_SITEPACKAGES_DIR}
- install -m 0755 ${PYTHON_DIR}/_snack.so ${D}${PYTHON_SITEPACKAGES_DIR}/
- install -m 0644 snack.py ${D}${PYTHON_SITEPACKAGES_DIR}/
-}
-
-PACKAGES_remove = "whiptail"
-
-FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.19.bb b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.19.bb
new file mode 100644
index 000000000..20369effe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt-python_0.52.19.bb
@@ -0,0 +1,28 @@
+require recipes-extended/newt/libnewt_${PV}.bb
+
+SUMMARY .= " - python"
+DEPENDS = "libnewt python3"
+RDEPENDS_${PN} += "python3-core"
+
+inherit python3native python3-dir
+
+EXTRA_OECONF += "--with-python"
+EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}"
+
+
+do_compile () {
+ VERSION="$(sed -n 's/^VERSION = //p' Makefile)"
+ oe_runmake _snack.so
+}
+
+do_install () {
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+ install -m 0755 ${PYTHON_DIR}/_snack.so ${D}${PYTHON_SITEPACKAGES_DIR}/
+ install -m 0644 snack.py ${D}${PYTHON_SITEPACKAGES_DIR}/
+}
+
+PACKAGES_remove = "whiptail"
+
+FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.18.bb b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.18.bb
deleted file mode 100644
index 9a2964be1..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.18.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-SUMMARY = "A library for text mode user interfaces"
-
-DESCRIPTION = "Newt is a programming library for color text mode, widget based user \
-interfaces. Newt can be used to add stacked windows, entry widgets, \
-checkboxes, radio buttons, labels, plain text fields, scrollbars, \
-etc., to text mode user interfaces. This package also contains the \
-shared library needed by programs built with newt, as well as a \
-/usr/bin/dialog replacement called whiptail. Newt is based on the \
-slang library."
-
-HOMEPAGE = "https://fedorahosted.org/newt/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-# slang needs to be >= 2.2
-DEPENDS = "slang popt"
-
-SRC_URI = "https://fedorahosted.org/releases/n/e/newt/newt-${PV}.tar.gz \
- file://remove_slang_include.patch \
- file://fix_SHAREDDIR.patch \
- file://cross_ar.patch \
- file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \
- file://pie-flags.patch \
-"
-
-SRC_URI[md5sum] = "685721bee1a318570704b19dcf31d268"
-SRC_URI[sha256sum] = "771b0e634ede56ae6a6acd910728bb5832ac13ddb0d1d27919d2498dab70c91e"
-
-S = "${WORKDIR}/newt-${PV}"
-
-EXTRA_OECONF = "--without-tcl --without-python"
-
-inherit autotools-brokensep
-
-CLEANBROKEN = "1"
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-export CPPFLAGS
-
-export BUILD_SYS
-export HOST_SYS
-
-PACKAGES_prepend = "whiptail "
-
-do_configure_prepend() {
- sh autogen.sh
-}
-
-do_compile_prepend() {
- # Make sure the recompile is OK
- rm -f ${B}/.depend
-}
-
-FILES_whiptail = "${bindir}/whiptail"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.19.bb b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.19.bb
new file mode 100644
index 000000000..a26ce1fbe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/newt/libnewt_0.52.19.bb
@@ -0,0 +1,54 @@
+SUMMARY = "A library for text mode user interfaces"
+
+DESCRIPTION = "Newt is a programming library for color text mode, widget based user \
+interfaces. Newt can be used to add stacked windows, entry widgets, \
+checkboxes, radio buttons, labels, plain text fields, scrollbars, \
+etc., to text mode user interfaces. This package also contains the \
+shared library needed by programs built with newt, as well as a \
+/usr/bin/dialog replacement called whiptail. Newt is based on the \
+slang library."
+
+HOMEPAGE = "https://fedorahosted.org/newt/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+# slang needs to be >= 2.2
+DEPENDS = "slang popt"
+
+SRC_URI = "https://fedorahosted.org/releases/n/e/newt/newt-${PV}.tar.gz \
+ file://fix_SHAREDDIR.patch \
+ file://cross_ar.patch \
+ file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \
+ file://pie-flags.patch \
+ file://0001-detect-gold-as-GNU-linker-too.patch \
+"
+
+SRC_URI[md5sum] = "e4aa0f7943edd39c52481a87f68f412a"
+SRC_URI[sha256sum] = "08c0db56c21996af6a7cbab99491b774c6c09cef91cd9b03903c84634bff2e80"
+
+S = "${WORKDIR}/newt-${PV}"
+
+EXTRA_OECONF = "--without-tcl --without-python"
+
+inherit autotools-brokensep
+
+CLEANBROKEN = "1"
+
+export CPPFLAGS
+
+PACKAGES_prepend = "whiptail "
+
+do_configure_prepend() {
+ sh autogen.sh
+}
+
+do_compile_prepend() {
+ # Make sure the recompile is OK
+ rm -f ${B}/.depend
+}
+
+FILES_whiptail = "${bindir}/whiptail"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 1d7e6089e..a60a68cbf 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -5,7 +5,6 @@
SUMMARY = "Standard full-featured Linux system"
DESCRIPTION = "Package group bringing in packages needed for a more traditional full-featured Linux system"
PR = "r6"
-LICENSE = "MIT"
inherit packagegroup
@@ -144,7 +143,6 @@ RDEPENDS_packagegroup-core-full-cmdline-sys-services = "\
cronie \
dbus \
dbus-glib \
- python-dbus \
elfutils \
gzip \
less \
diff --git a/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb b/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb
index a29c3d762..29564e0c9 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/packagegroups/packagegroup-core-lsb.bb
@@ -5,7 +5,6 @@
SUMMARY = "Linux Standard Base (LSB)"
DESCRIPTION = "Packages required to satisfy the Linux Standard Base (LSB) specification"
PR = "r10"
-LICENSE = "MIT"
inherit packagegroup distro_features_check
@@ -201,16 +200,6 @@ RDEPENDS_packagegroup-core-lsb-python = "\
python-misc \
"
-def get_libqt3(d):
- if 'linuxstdbase' in d.getVar('DISTROOVERRIDES', False) or "":
- if 'qt3' in d.getVar('BBFILE_COLLECTIONS', False) or "":
- return 'libqt-mt3'
-
- bb.warn('The meta-qt3 layer should be added, this layer provides Qt 3.x' \
- 'libraries. Its intended use is for passing LSB tests as Qt3 is' \
- 'a requirement for LSB.')
- return ''
-
QT4PKGS = " \
libqtcore4 \
libqtgui4 \
@@ -229,8 +218,8 @@ def get_libqt4(d):
if 'qt4' in d.getVar('BBFILE_COLLECTIONS', False) or "":
return d.getVar('QT4PKGS', False)
- bb.warn('The meta-qt4 layer should be added, this layer provides Qt 4.x' \
- 'libraries. Its intended use is for passing LSB tests as Qt4 is' \
+ bb.warn('The meta-qt4 layer should be added, this layer provides Qt 4.x ' \
+ 'libraries. Its intended use is for passing LSB tests as Qt4 is ' \
'a requirement for LSB.')
return ''
@@ -255,7 +244,6 @@ RDEPENDS_packagegroup-core-lsb-desktop = "\
atk \
libasound \
${@get_libqt4(d)} \
- ${@get_libqt3(d)} \
"
RDEPENDS_packagegroup-core-lsb-runtime-add = "\
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/crypt_configure.patch b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/crypt_configure.patch
index bec82a5f1..917a8af64 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/crypt_configure.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/crypt_configure.patch
@@ -1,31 +1,40 @@
+From b86575ab4a0df07da160283459da270e1c0372a0 Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Tue, 24 May 2016 14:11:09 +0300
+Subject: [PATCH] crypt_configure
+
This patch fixes a case where it find crypt defined in libc (musl) but
not in specified libraries then it ends up assigning
-
LIBCRYPT="-l" which then goes into makefile cause all sort of problems
e.g.
ld: cannot find -l-m32
| collect2: error: ld returned 1 exit status
-
-The reason is that -l appears on commandline with out any library and
-compiler treats the next argument as library name whatever it is.
-
+The reason is that -l appears on commandline with
+out any library and compiler treats the next argument as library name
+whatever it is.
Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-Index: Linux-PAM-1.1.6/configure.in
-===================================================================
---- Linux-PAM-1.1.6.org/configure.ac
-+++ Linux-PAM-1.1.6/configure.ac
-@@ -400,7 +400,9 @@ AS_IF([test "x$ac_cv_header_xcrypt_h" =
+diff --git a/configure.ac b/configure.ac
+index df39d07..e68d856 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -401,7 +401,7 @@ AS_IF([test "x$ac_cv_header_xcrypt_h" = "xyes"],
[crypt_libs="crypt"])
BACKUP_LIBS=$LIBS
--AC_SEARCH_LIBS([crypt],[$crypt_libs], LIBCRYPT="-l$ac_lib", LIBCRYPT="")
-+AC_SEARCH_LIBS([crypt],[$crypt_libs],
-+ [test "$ac_cv_search_crypt" = "none required" ||
-+ LIBCRYPT="$ac_cv_search_crypt"])
+-AC_SEARCH_LIBS([crypt],[$crypt_libs], LIBCRYPT="${ac_lib:+-l$ac_lib}", LIBCRYPT="")
++AC_SEARCH_LIBS([crypt],[$crypt_libs], [test "$ac_cv_search_crypt" = "none required" || LIBCRYPT="$ac_cv_search_crypt"])
AC_CHECK_FUNCS(crypt_r crypt_gensalt_r)
LIBS=$BACKUP_LIBS
AC_SUBST(LIBCRYPT)
+--
+2.4.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-no-innetgr.patch b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-no-innetgr.patch
deleted file mode 100644
index 5e551ac48..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-no-innetgr.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-innetgr may not be there so make sure that when innetgr is not present
-then we inform about it and not use it.
-
--Khem
-
-Upstream-Status: Pending
-
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-
-Index: Linux-PAM-1.1.3/modules/pam_group/pam_group.c
-===================================================================
---- Linux-PAM-1.1.3.orig/modules/pam_group/pam_group.c
-+++ Linux-PAM-1.1.3/modules/pam_group/pam_group.c
-@@ -659,7 +659,11 @@ static int check_account(pam_handle_t *p
- }
- /* If buffer starts with @, we are using netgroups */
- if (buffer[0] == '@')
-- good &= innetgr (&buffer[1], NULL, user, NULL);
-+#ifdef HAVE_INNETGR
-+ good &= innetgr (&buffer[1], NULL, user, NULL);
-+#else
-+ pam_syslog (pamh, LOG_ERR, "pam_group does not have netgroup support");
-+#endif
- /* otherwise, if the buffer starts with %, it's a UNIX group */
- else if (buffer[0] == '%')
- good &= pam_modutil_user_in_group_nam_nam(pamh, user, &buffer[1]);
-Index: Linux-PAM-1.1.3/modules/pam_time/pam_time.c
-===================================================================
---- Linux-PAM-1.1.3.orig/modules/pam_time/pam_time.c
-+++ Linux-PAM-1.1.3/modules/pam_time/pam_time.c
-@@ -555,9 +555,13 @@ check_account(pam_handle_t *pamh, const
- }
- /* If buffer starts with @, we are using netgroups */
- if (buffer[0] == '@')
-- good &= innetgr (&buffer[1], NULL, user, NULL);
-+#ifdef HAVE_INNETGR
-+ good &= innetgr (&buffer[1], NULL, user, NULL);
-+#else
-+ pam_syslog (pamh, LOG_ERR, "pam_time does not have netgroup support");
-+#endif
- else
-- good &= logic_field(pamh, user, buffer, count, is_same);
-+ good &= logic_field(pamh, user, buffer, count, is_same);
- D(("with user: %s", good ? "passes":"fails" ));
-
- /* here we get the time field */
-Index: Linux-PAM-1.1.3/modules/pam_succeed_if/pam_succeed_if.c
-===================================================================
---- Linux-PAM-1.1.3.orig/modules/pam_succeed_if/pam_succeed_if.c
-+++ Linux-PAM-1.1.3/modules/pam_succeed_if/pam_succeed_if.c
-@@ -231,18 +231,27 @@ evaluate_notingroup(pam_handle_t *pamh,
- }
- /* Return PAM_SUCCESS if the (host,user) is in the netgroup. */
- static int
--evaluate_innetgr(const char *host, const char *user, const char *group)
-+evaluate_innetgr(const pam_handle_t* pamh, const char *host, const char *user, const char *group)
- {
-+#ifdef HAVE_INNETGR
- if (innetgr(group, host, user, NULL) == 1)
- return PAM_SUCCESS;
-+#else
-+ pam_syslog (pamh, LOG_ERR, "pam_succeed_if does not have netgroup support");
-+#endif
-+
- return PAM_AUTH_ERR;
- }
- /* Return PAM_SUCCESS if the (host,user) is NOT in the netgroup. */
- static int
--evaluate_notinnetgr(const char *host, const char *user, const char *group)
-+evaluate_notinnetgr(const pam_handle_t* pamh, const char *host, const char *user, const char *group)
- {
-+#ifdef HAVE_INNETGR
- if (innetgr(group, host, user, NULL) == 0)
- return PAM_SUCCESS;
-+#else
-+ pam_syslog (pamh, LOG_ERR, "pam_succeed_if does not have netgroup support");
-+#endif
- return PAM_AUTH_ERR;
- }
-
-@@ -361,14 +370,14 @@ evaluate(pam_handle_t *pamh, int debug,
- const void *rhost;
- if (pam_get_item(pamh, PAM_RHOST, &rhost) != PAM_SUCCESS)
- rhost = NULL;
-- return evaluate_innetgr(rhost, user, right);
-+ return evaluate_innetgr(pamh, rhost, user, right);
- }
- /* (Rhost, user) is not in this group. */
- if (strcasecmp(qual, "notinnetgr") == 0) {
- const void *rhost;
- if (pam_get_item(pamh, PAM_RHOST, &rhost) != PAM_SUCCESS)
- rhost = NULL;
-- return evaluate_notinnetgr(rhost, user, right);
-+ return evaluate_notinnetgr(pamh, rhost, user, right);
- }
- /* Fail closed. */
- return PAM_SERVICE_ERR;
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch
index 3241e8295..d2cc66882 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch
@@ -1,9 +1,11 @@
-From 9bdc197474795f2d000c2bc04f58f7cef8898f21 Mon Sep 17 00:00:00 2001
-From: Amarnath Valluri <amarnath.valluri@intel.com>
-Date: Wed, 15 Jul 2015 13:07:20 +0300
-Subject: [PATCH] Debian patch to add a new 'nullok_secure' option to pam_unix,
- which accepts users with null passwords only when the applicant is connected
- from a tty listed in /etc/securetty.
+From b6545b83f94c5fb7aec1478b8d458a1393f479c8 Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Wed, 25 May 2016 14:12:25 +0300
+Subject: [PATCH] pam_unix: support 'nullok_secure' option
+
+Debian patch to add a new 'nullok_secure' option to pam_unix,
+which accepts users with null passwords only when the applicant is
+connected from a tty listed in /etc/securetty.
Authors: Sam Hartman <hartmans@debian.org>,
Steve Langasek <vorlon@debian.org>
@@ -11,78 +13,31 @@ Authors: Sam Hartman <hartmans@debian.org>,
Upstream-Status: Pending
Signed-off-by: Ming Liu <ming.liu@windriver.com>
-
-v2:
- - Forward ported from v1.1.6 to v1.2.1
-
Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
modules/pam_unix/Makefile.am | 3 ++-
- modules/pam_unix/README | 11 ++++++++++-
- modules/pam_unix/pam_unix.8 | 9 ++++++++-
modules/pam_unix/pam_unix.8.xml | 19 ++++++++++++++++++-
modules/pam_unix/support.c | 40 +++++++++++++++++++++++++++++++++++-----
modules/pam_unix/support.h | 8 ++++++--
- 6 files changed, 79 insertions(+), 11 deletions(-)
+ 4 files changed, 61 insertions(+), 9 deletions(-)
diff --git a/modules/pam_unix/Makefile.am b/modules/pam_unix/Makefile.am
-index 56ed591..9a372ac 100644
+index 56df178..2bba460 100644
--- a/modules/pam_unix/Makefile.am
+++ b/modules/pam_unix/Makefile.am
@@ -30,7 +30,8 @@ if HAVE_VERSIONING
pam_unix_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map
endif
pam_unix_la_LIBADD = $(top_builddir)/libpam/libpam.la \
-- @LIBCRYPT@ @LIBSELINUX@ $(NIS_LIBS)
-+ @LIBCRYPT@ @LIBSELINUX@ $(NIS_LIBS) \
+- @LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@
++ @LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@ \
+ ../pam_securetty/tty_secure.lo
securelib_LTLIBRARIES = pam_unix.la
-diff --git a/modules/pam_unix/README b/modules/pam_unix/README
-index 3935dba..7880d91 100644
---- a/modules/pam_unix/README
-+++ b/modules/pam_unix/README
-@@ -67,7 +67,16 @@ nullok
-
- The default action of this module is to not permit the user access to a
- service if their official password is blank. The nullok argument overrides
-- this default.
-+ this default and allows any user with a blank password to access the
-+ service.
-+
-+nullok_secure
-+
-+ The default action of this module is to not permit the user access to a
-+ service if their official password is blank. The nullok_secure argument
-+ overrides this default and allows any user with a blank password to access
-+ the service as long as the value of PAM_TTY is set to one of the values
-+ found in /etc/securetty.
-
- try_first_pass
-
-diff --git a/modules/pam_unix/pam_unix.8 b/modules/pam_unix/pam_unix.8
-index 339178b..a4bd906 100644
---- a/modules/pam_unix/pam_unix.8
-+++ b/modules/pam_unix/pam_unix.8
-@@ -92,7 +92,14 @@ Turns off informational messages namely messages about session open and close vi
- .RS 4
- The default action of this module is to not permit the user access to a service if their official password is blank\&. The
- \fBnullok\fR
--argument overrides this default\&.
-+argument overrides this default and allows any user with a blank password to access the service\&.
-+.RE
-+.PP
-+\fBnullok_secure\fR
-+.RS 4
-+The default action of this module is to not permit the user access to a service if their official password is blank\&. The
-+\fBnullok_secure\fR
-+argument overrides this default and allows any user with a blank password to access the service as long as the value of PAM_TTY is set to one of the values found in /etc/securetty\&.
- .RE
- .PP
- \fBtry_first_pass\fR
diff --git a/modules/pam_unix/pam_unix.8.xml b/modules/pam_unix/pam_unix.8.xml
-index a8b64bb..1ced6f4 100644
+index 1b318f1..be0330e 100644
--- a/modules/pam_unix/pam_unix.8.xml
+++ b/modules/pam_unix/pam_unix.8.xml
@@ -159,7 +159,24 @@
@@ -112,10 +67,10 @@ index a8b64bb..1ced6f4 100644
</listitem>
</varlistentry>
diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c
-index abccd82..2361957 100644
+index fc8595e..29e3341 100644
--- a/modules/pam_unix/support.c
+++ b/modules/pam_unix/support.c
-@@ -189,13 +189,22 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
+@@ -183,13 +183,22 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
/* now parse the arguments to this module */
for (; argc-- > 0; ++argv) {
@@ -141,7 +96,7 @@ index abccd82..2361957 100644
}
}
-@@ -566,6 +575,7 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
+@@ -560,6 +569,7 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
if (child == 0) {
static char *envp[] = { NULL };
const char *args[] = { NULL, NULL, NULL, NULL };
@@ -149,7 +104,7 @@ index abccd82..2361957 100644
/* XXX - should really tidy up PAM here too */
-@@ -593,7 +603,16 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
+@@ -587,7 +597,16 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
/* exec binary helper */
args[0] = CHKPWD_HELPER;
args[1] = user;
@@ -167,7 +122,7 @@ index abccd82..2361957 100644
args[2]="nullok";
} else {
args[2]="nonull";
-@@ -678,6 +697,17 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned int ctrl, const char *name)
+@@ -672,6 +691,17 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned int ctrl, const char *name)
if (on(UNIX__NONULL, ctrl))
return 0; /* will fail but don't let on yet */
@@ -185,7 +140,7 @@ index abccd82..2361957 100644
/* UNIX passwords area */
retval = get_pwd_hash(pamh, name, &pwd, &salt);
-@@ -764,7 +794,7 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name
+@@ -758,7 +788,7 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name
}
}
} else {
@@ -195,46 +150,46 @@ index abccd82..2361957 100644
if (retval == PAM_SUCCESS) {
diff --git a/modules/pam_unix/support.h b/modules/pam_unix/support.h
-index 3729ce0..43cdbea 100644
+index b4c279c..8da4a8e 100644
--- a/modules/pam_unix/support.h
+++ b/modules/pam_unix/support.h
-@@ -99,8 +99,9 @@ typedef struct {
- #define UNIX_MIN_PASS_LEN 27 /* min length for password */
+@@ -98,8 +98,9 @@ typedef struct {
#define UNIX_QUIET 28 /* Don't print informational messages */
- #define UNIX_DES 29 /* DES, default */
-+#define UNIX_NULLOK_SECURE 30 /* NULL passwords allowed only on secure ttys */
+ #define UNIX_NO_PASS_EXPIRY 29 /* Don't check for password expiration if not used for authentication */
+ #define UNIX_DES 30 /* DES, default */
++#define UNIX_NULLOK_SECURE 31 /* NULL passwords allowed only on secure ttys */
/* -------------- */
--#define UNIX_CTRLS_ 30 /* number of ctrl arguments defined */
-+#define UNIX_CTRLS_ 31 /* number of ctrl arguments defined */
+-#define UNIX_CTRLS_ 31 /* number of ctrl arguments defined */
++#define UNIX_CTRLS_ 32 /* number of ctrl arguments defined */
#define UNIX_DES_CRYPT(ctrl) (off(UNIX_MD5_PASS,ctrl)&&off(UNIX_BIGCRYPT,ctrl)&&off(UNIX_SHA256_PASS,ctrl)&&off(UNIX_SHA512_PASS,ctrl)&&off(UNIX_BLOWFISH_PASS,ctrl))
-@@ -118,7 +119,7 @@ static const UNIX_Ctrls unix_args[UNIX_CTRLS_] =
- /* UNIX_NOT_SET_PASS */ {"not_set_pass", _ALL_ON_, 0100, 0},
+@@ -117,7 +118,7 @@ static const UNIX_Ctrls unix_args[UNIX_CTRLS_] =
+ /* UNIX_AUTHTOK_TYPE */ {"authtok_type=", _ALL_ON_, 0100, 0},
/* UNIX__PRELIM */ {NULL, _ALL_ON_^(0600), 0200, 0},
/* UNIX__UPDATE */ {NULL, _ALL_ON_^(0600), 0400, 0},
-/* UNIX__NONULL */ {NULL, _ALL_ON_, 01000, 0},
-+/* UNIX__NONULL */ {NULL, _ALL_ON_^(02000000000), 01000, 0},
++/* UNIX__NONULL */ {NULL, _ALL_ON_^(02000000000), 01000, 0},
/* UNIX__QUIET */ {NULL, _ALL_ON_, 02000, 0},
/* UNIX_USE_AUTHTOK */ {"use_authtok", _ALL_ON_, 04000, 0},
/* UNIX_SHADOW */ {"shadow", _ALL_ON_, 010000, 0},
@@ -139,6 +140,7 @@ static const UNIX_Ctrls unix_args[UNIX_CTRLS_] =
- /* UNIX_MIN_PASS_LEN */ {"minlen=", _ALL_ON_, 0400000000, 0},
/* UNIX_QUIET */ {"quiet", _ALL_ON_, 01000000000, 0},
+ /* UNIX_NO_PASS_EXPIRY */ {"no_pass_expiry", _ALL_ON_, 02000000000, 0},
/* UNIX_DES */ {"des", _ALL_ON_^(0260420000), 0, 1},
-+/* UNIX_NULLOK_SECURE */ {"nullok_secure", _ALL_ON_^(01000), 02000000000, 0},
++/* UNIX_NULLOK_SECURE */ {"nullok_secure", _ALL_ON_^(01000), 02000000000, 0},
};
#define UNIX_DEFAULTS (unix_args[UNIX__NONULL].flag)
-@@ -171,6 +173,8 @@ extern int _unix_read_password(pam_handle_t * pamh
- ,const char *prompt2
+@@ -172,6 +174,8 @@ extern int _unix_read_password(pam_handle_t * pamh
,const char *data_name
,const void **pass);
-+extern int _pammodutil_tty_secure(const pam_handle_t *pamh,
-+ const char *uttyname);
++extern int _pammodutil_tty_secure(const pam_handle_t *pamh, const char *uttyname);
++
extern int _unix_run_verify_binary(pam_handle_t *pamh,
unsigned int ctrl, const char *user, int *daysleft);
+ #endif /* _PAM_UNIX_SUPPORT_H */
--
-2.1.4
+2.4.0
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.2.1.bb b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.2.1.bb
deleted file mode 100644
index 341ea2411..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.2.1.bb
+++ /dev/null
@@ -1,171 +0,0 @@
-SUMMARY = "Linux-PAM (Pluggable Authentication Modules)"
-DESCRIPTION = "Linux-PAM (Pluggable Authentication Modules for Linux), a flexible mechanism for authenticating users"
-HOMEPAGE = "https://fedorahosted.org/linux-pam/"
-BUGTRACKER = "https://fedorahosted.org/linux-pam/newticket"
-SECTION = "base"
-# PAM is dual licensed under GPL and BSD.
-# /etc/pam.d comes from Debian libpam-runtime in 2009-11 (at that time
-# libpam-runtime-1.0.1 is GPLv2+), by openembedded
-LICENSE = "GPLv2+ | BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7eb5c1bf854e8881005d673599ee74d3"
-
-SRC_URI = "http://linux-pam.org/library/Linux-PAM-${PV}.tar.bz2 \
- file://99_pam \
- file://pam.d/common-account \
- file://pam.d/common-auth \
- file://pam.d/common-password \
- file://pam.d/common-session \
- file://pam.d/common-session-noninteractive \
- file://pam.d/other \
- file://libpam-xtests.patch \
- file://fixsepbuild.patch \
- file://pam-security-abstract-securetty-handling.patch \
- file://pam-unix-nullok-secure.patch \
- file://libpam-xtests-remove-bash-dependency.patch \
- file://crypt_configure.patch \
- "
-
-SRC_URI[md5sum] = "9dc53067556d2dd567808fd509519dd6"
-SRC_URI[sha256sum] = "342b1211c0d3b203a7df2540a5b03a428a087bd8a48c17e49ae268f992b334d9"
-
-SRC_URI_append_libc-uclibc = " file://pam-no-innetgr.patch \
- file://use-utmpx.patch"
-
-SRC_URI_append_libc-musl = " file://pam-no-innetgr.patch \
- file://0001-Add-support-for-defining-missing-funcitonality.patch \
- file://include_paths_header.patch \
- "
-
-DEPENDS = "bison flex flex-native cracklib"
-
-EXTRA_OECONF = "--with-db-uniquename=_pam \
- --includedir=${includedir}/security \
- --libdir=${base_libdir} \
- --disable-nis \
- --disable-regenerate-docu \
- --disable-prelude"
-
-CFLAGS_append = " -fPIC "
-
-PR = "r5"
-
-S = "${WORKDIR}/Linux-PAM-${PV}"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit,"
-
-PACKAGES += "${PN}-runtime ${PN}-xtests"
-FILES_${PN} = "${base_libdir}/lib*${SOLIBS}"
-FILES_${PN}-dev += "${base_libdir}/security/*.la ${base_libdir}/*.la ${base_libdir}/lib*${SOLIBSDEV}"
-FILES_${PN}-runtime = "${sysconfdir}"
-FILES_${PN}-xtests = "${datadir}/Linux-PAM/xtests"
-
-PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*"
-
-def get_multilib_bit(d):
- baselib = d.getVar('baselib', True) or ''
- return baselib.replace('lib', '')
-
-libpam_suffix = "suffix${@get_multilib_bit(d)}"
-
-RPROVIDES_${PN} += "${PN}-${libpam_suffix}"
-RPROVIDES_${PN}-runtime += "${PN}-runtime-${libpam_suffix}"
-
-RDEPENDS_${PN}-runtime = "${PN}-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-deny-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-permit-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-warn-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-unix-${libpam_suffix} \
- "
-RDEPENDS_${PN}-xtests = "${PN}-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-access-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-debug-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-cracklib-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-pwhistory-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-succeed-if-${libpam_suffix} \
- ${MLPREFIX}pam-plugin-time-${libpam_suffix} \
- coreutils"
-
-# FIXME: Native suffix breaks here, disable it for now
-RRECOMMENDS_${PN} = "${PN}-runtime-${libpam_suffix}"
-RRECOMMENDS_${PN}_class-native = ""
-
-python populate_packages_prepend () {
- def pam_plugin_append_file(pn, dir, file):
- nf = os.path.join(dir, file)
- of = d.getVar('FILES_' + pn, True)
- if of:
- nf = of + " " + nf
- d.setVar('FILES_' + pn, nf)
-
- def pam_plugin_hook(file, pkg, pattern, format, basename):
- pn = d.getVar('PN', True)
- libpam_suffix = d.getVar('libpam_suffix', True)
-
- rdeps = d.getVar('RDEPENDS_' + pkg, True)
- if rdeps:
- rdeps = rdeps + " " + pn + "-" + libpam_suffix
- else:
- rdeps = pn + "-" + libpam_suffix
- d.setVar('RDEPENDS_' + pkg, rdeps)
-
- provides = d.getVar('RPROVIDES_' + pkg, True)
- if provides:
- provides = provides + " " + pkg + "-" + libpam_suffix
- else:
- provides = pkg + "-" + libpam_suffix
- d.setVar('RPROVIDES_' + pkg, provides)
-
- mlprefix = d.getVar('MLPREFIX', True) or ''
- dvar = bb.data.expand('${WORKDIR}/package', d, True)
- pam_libdir = d.expand('${base_libdir}/security')
- pam_sbindir = d.expand('${sbindir}')
- pam_filterdir = d.expand('${base_libdir}/security/pam_filter')
- pam_pkgname = mlprefix + 'pam-plugin%s'
-
- do_split_packages(d, pam_libdir, '^pam(.*)\.so$', pam_pkgname,
- 'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='')
- pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_chkpwd')
- pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_update')
- pam_plugin_append_file('%spam-plugin-tally' % mlprefix, pam_sbindir, 'pam_tally')
- pam_plugin_append_file('%spam-plugin-tally2' % mlprefix, pam_sbindir, 'pam_tally2')
- pam_plugin_append_file('%spam-plugin-timestamp' % mlprefix, pam_sbindir, 'pam_timestamp_check')
- pam_plugin_append_file('%spam-plugin-mkhomedir' % mlprefix, pam_sbindir, 'mkhomedir_helper')
- pam_plugin_append_file('%spam-plugin-console' % mlprefix, pam_sbindir, 'pam_console_apply')
- do_split_packages(d, pam_filterdir, '^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='')
-}
-
-do_install() {
- autotools_do_install
-
- # don't install /var/run when populating rootfs. Do it through volatile
- rm -rf ${D}${localstatedir}
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 0644 ${WORKDIR}/99_pam ${D}${sysconfdir}/default/volatiles
-
- install -d ${D}${sysconfdir}/pam.d/
- install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
-
- # The lsb requires unix_chkpwd has setuid permission
- chmod 4755 ${D}${sbindir}/unix_chkpwd
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- echo "session optional pam_systemd.so" >> ${D}${sysconfdir}/pam.d/common-session
- fi
-}
-
-python do_pam_sanity () {
- if not bb.utils.contains('DISTRO_FEATURES', 'pam', True, False, d):
- bb.warn("Building libpam but 'pam' isn't in DISTRO_FEATURES, PAM won't work correctly")
-}
-addtask pam_sanity before do_configure
-
-BBCLASSEXTEND = "nativesdk native"
-
-CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-session"
-CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-auth"
-CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-password"
-CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-session-noninteractive"
-CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-account"
-CONFFILES_${PN}-runtime += "${sysconfdir}/security/limits.conf"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.3.0.bb b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.3.0.bb
new file mode 100644
index 000000000..bb5a4bd8d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/pam/libpam_1.3.0.bb
@@ -0,0 +1,169 @@
+SUMMARY = "Linux-PAM (Pluggable Authentication Modules)"
+DESCRIPTION = "Linux-PAM (Pluggable Authentication Modules for Linux), a flexible mechanism for authenticating users"
+HOMEPAGE = "https://fedorahosted.org/linux-pam/"
+BUGTRACKER = "https://fedorahosted.org/linux-pam/newticket"
+SECTION = "base"
+# PAM is dual licensed under GPL and BSD.
+# /etc/pam.d comes from Debian libpam-runtime in 2009-11 (at that time
+# libpam-runtime-1.0.1 is GPLv2+), by openembedded
+LICENSE = "GPLv2+ | BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7eb5c1bf854e8881005d673599ee74d3"
+
+SRC_URI = "http://linux-pam.org/library/Linux-PAM-${PV}.tar.bz2 \
+ file://99_pam \
+ file://pam.d/common-account \
+ file://pam.d/common-auth \
+ file://pam.d/common-password \
+ file://pam.d/common-session \
+ file://pam.d/common-session-noninteractive \
+ file://pam.d/other \
+ file://libpam-xtests.patch \
+ file://fixsepbuild.patch \
+ file://pam-security-abstract-securetty-handling.patch \
+ file://pam-unix-nullok-secure.patch \
+ file://libpam-xtests-remove-bash-dependency.patch \
+ file://crypt_configure.patch \
+ "
+
+SRC_URI[md5sum] = "da4b2289b7cfb19583d54e9eaaef1c3a"
+SRC_URI[sha256sum] = "241aed1ef522f66ed672719ecf2205ec513fd0075ed80cda8e086a5b1a01d1bb"
+
+SRC_URI_append_libc-uclibc = " file://use-utmpx.patch"
+
+SRC_URI_append_libc-musl = " file://0001-Add-support-for-defining-missing-funcitonality.patch \
+ file://include_paths_header.patch \
+ "
+
+DEPENDS = "bison-native flex flex-native cracklib libxml2-native"
+
+EXTRA_OECONF = "--with-db-uniquename=_pam \
+ --includedir=${includedir}/security \
+ --libdir=${base_libdir} \
+ --disable-nis \
+ --disable-regenerate-docu \
+ --disable-prelude"
+
+CFLAGS_append = " -fPIC "
+
+PR = "r5"
+
+S = "${WORKDIR}/Linux-PAM-${PV}"
+
+inherit autotools gettext pkgconfig
+
+PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit,"
+
+PACKAGES += "${PN}-runtime ${PN}-xtests"
+FILES_${PN} = "${base_libdir}/lib*${SOLIBS}"
+FILES_${PN}-dev += "${base_libdir}/security/*.la ${base_libdir}/*.la ${base_libdir}/lib*${SOLIBSDEV}"
+FILES_${PN}-runtime = "${sysconfdir}"
+FILES_${PN}-xtests = "${datadir}/Linux-PAM/xtests"
+
+PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*"
+
+def get_multilib_bit(d):
+ baselib = d.getVar('baselib', True) or ''
+ return baselib.replace('lib', '')
+
+libpam_suffix = "suffix${@get_multilib_bit(d)}"
+
+RPROVIDES_${PN} += "${PN}-${libpam_suffix}"
+RPROVIDES_${PN}-runtime += "${PN}-runtime-${libpam_suffix}"
+
+RDEPENDS_${PN}-runtime = "${PN}-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-deny-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-permit-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-warn-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-unix-${libpam_suffix} \
+ "
+RDEPENDS_${PN}-xtests = "${PN}-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-access-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-debug-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-cracklib-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-pwhistory-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-succeed-if-${libpam_suffix} \
+ ${MLPREFIX}pam-plugin-time-${libpam_suffix} \
+ coreutils"
+
+# FIXME: Native suffix breaks here, disable it for now
+RRECOMMENDS_${PN} = "${PN}-runtime-${libpam_suffix}"
+RRECOMMENDS_${PN}_class-native = ""
+
+python populate_packages_prepend () {
+ def pam_plugin_append_file(pn, dir, file):
+ nf = os.path.join(dir, file)
+ of = d.getVar('FILES_' + pn, True)
+ if of:
+ nf = of + " " + nf
+ d.setVar('FILES_' + pn, nf)
+
+ def pam_plugin_hook(file, pkg, pattern, format, basename):
+ pn = d.getVar('PN', True)
+ libpam_suffix = d.getVar('libpam_suffix', True)
+
+ rdeps = d.getVar('RDEPENDS_' + pkg, True)
+ if rdeps:
+ rdeps = rdeps + " " + pn + "-" + libpam_suffix
+ else:
+ rdeps = pn + "-" + libpam_suffix
+ d.setVar('RDEPENDS_' + pkg, rdeps)
+
+ provides = d.getVar('RPROVIDES_' + pkg, True)
+ if provides:
+ provides = provides + " " + pkg + "-" + libpam_suffix
+ else:
+ provides = pkg + "-" + libpam_suffix
+ d.setVar('RPROVIDES_' + pkg, provides)
+
+ mlprefix = d.getVar('MLPREFIX', True) or ''
+ dvar = bb.data.expand('${WORKDIR}/package', d, True)
+ pam_libdir = d.expand('${base_libdir}/security')
+ pam_sbindir = d.expand('${sbindir}')
+ pam_filterdir = d.expand('${base_libdir}/security/pam_filter')
+ pam_pkgname = mlprefix + 'pam-plugin%s'
+
+ do_split_packages(d, pam_libdir, '^pam(.*)\.so$', pam_pkgname,
+ 'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='')
+ pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_chkpwd')
+ pam_plugin_append_file('%spam-plugin-unix' % mlprefix, pam_sbindir, 'unix_update')
+ pam_plugin_append_file('%spam-plugin-tally' % mlprefix, pam_sbindir, 'pam_tally')
+ pam_plugin_append_file('%spam-plugin-tally2' % mlprefix, pam_sbindir, 'pam_tally2')
+ pam_plugin_append_file('%spam-plugin-timestamp' % mlprefix, pam_sbindir, 'pam_timestamp_check')
+ pam_plugin_append_file('%spam-plugin-mkhomedir' % mlprefix, pam_sbindir, 'mkhomedir_helper')
+ pam_plugin_append_file('%spam-plugin-console' % mlprefix, pam_sbindir, 'pam_console_apply')
+ do_split_packages(d, pam_filterdir, '^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='')
+}
+
+do_install() {
+ autotools_do_install
+
+ # don't install /var/run when populating rootfs. Do it through volatile
+ rm -rf ${D}${localstatedir}
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 0644 ${WORKDIR}/99_pam ${D}${sysconfdir}/default/volatiles
+
+ install -d ${D}${sysconfdir}/pam.d/
+ install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
+
+ # The lsb requires unix_chkpwd has setuid permission
+ chmod 4755 ${D}${sbindir}/unix_chkpwd
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ echo "session optional pam_systemd.so" >> ${D}${sysconfdir}/pam.d/common-session
+ fi
+}
+
+python do_pam_sanity () {
+ if not bb.utils.contains('DISTRO_FEATURES', 'pam', True, False, d):
+ bb.warn("Building libpam but 'pam' isn't in DISTRO_FEATURES, PAM won't work correctly")
+}
+addtask pam_sanity before do_configure
+
+BBCLASSEXTEND = "nativesdk native"
+
+CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-session"
+CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-auth"
+CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-password"
+CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-session-noninteractive"
+CONFFILES_${PN}-runtime += "${sysconfdir}/pam.d/common-account"
+CONFFILES_${PN}-runtime += "${sysconfdir}/security/limits.conf"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pax/pax/pax-3.4_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-extended/pax/pax/pax-3.4_fix_for_x32.patch
index 80878f38b..7adbd0297 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/pax/pax/pax-3.4_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/pax/pax/pax-3.4_fix_for_x32.patch
@@ -9,7 +9,7 @@ Date: Tue Dec 6 10:34:53 2011 -0800
size of off_t to see if file offset is 64bit. This patch adds
AC_CHECK_SIZEOF(off_t) and checks SIZEOF_OFF_T == 8.
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/06
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/06
Index: pax-3.4/configure.in
===================================================================
diff --git a/import-layers/yocto-poky/meta/recipes-extended/pigz/pigz_2.3.3.bb b/import-layers/yocto-poky/meta/recipes-extended/pigz/pigz_2.3.3.bb
index 080be2bbc..9e97273c8 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/pigz/pigz_2.3.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/pigz/pigz_2.3.3.bb
@@ -1,6 +1,8 @@
require pigz.inc
LIC_FILES_CHKSUM = "file://pigz.c;beginline=7;endline=21;md5=a21d4075cb00ab4ca17fce5e7534ca95"
+UPSTREAM_CHECK_URI := "${SRC_URI}"
+SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/${BP}.tar.gz"
SRC_URI += "file://link-order.patch"
SRC_URI[md5sum] = "01d7a16cce77929cc1a78aa1bdfb68cb"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.11.bb b/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.11.bb
deleted file mode 100644
index c6dccc677..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.11.bb
+++ /dev/null
@@ -1,66 +0,0 @@
-SUMMARY = "System and process monitoring utilities"
-DESCRIPTION = "Procps contains a set of system utilities that provide system information about processes using \
-the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill, and skill."
-HOMEPAGE = "https://gitorious.org/procps"
-SECTION = "base"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM="file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
- "
-
-DEPENDS = "ncurses"
-
-inherit autotools gettext pkgconfig update-alternatives
-
-SRC_URI = "http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-${PV}.tar.xz \
- file://sysctl.conf \
- "
-
-SRC_URI[md5sum] = "6cc5b94c1c5b8cbc89ad345a7b522f74"
-SRC_URI[sha256sum] = "e9493169a2d2adc0bc045538707310c8e877b385e4e296143b62607d2bb044ed"
-
-S = "${WORKDIR}/procps-ng-${PV}"
-
-EXTRA_OECONF = "--enable-skill --disable-modern-top"
-
-CPPFLAGS += "-I${S}"
-
-do_install_append () {
- install -d ${D}${base_bindir}
- [ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
- install -d ${D}${base_sbindir}
- [ "${sbindir}" != "${base_sbindir}" ] && for i in ${base_sbindir_progs}; do mv ${D}${sbindir}/$i ${D}${base_sbindir}/$i; done
- if [ "${base_sbindir}" != "${sbindir}" ]; then
- rmdir ${D}${sbindir}
- fi
-
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${sysconfdir}/sysctl.d
- ln -sf ../sysctl.conf ${D}${sysconfdir}/sysctl.d/99-sysctl.conf
- fi
-}
-
-CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
-
-bindir_progs = "free pkill pmap pgrep pwdx skill snice top uptime"
-base_bindir_progs += "kill pidof ps watch"
-base_sbindir_progs += "sysctl"
-
-ALTERNATIVE_PRIORITY = "200"
-
-ALTERNATIVE_${PN} = "${bindir_progs} ${base_bindir_progs} ${base_sbindir_progs}"
-
-ALTERNATIVE_${PN}-doc = "kill.1 uptime.1"
-ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1"
-ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1"
-
-python __anonymous() {
- for prog in d.getVar('base_bindir_progs', True).split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir', True), prog))
-
- for prog in d.getVar('base_sbindir_progs', True).split():
- d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir', True), prog))
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.12.bb b/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.12.bb
new file mode 100644
index 000000000..4ca1a5023
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/procps/procps_3.3.12.bb
@@ -0,0 +1,66 @@
+SUMMARY = "System and process monitoring utilities"
+DESCRIPTION = "Procps contains a set of system utilities that provide system information about processes using \
+the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill, and skill."
+HOMEPAGE = "https://gitorious.org/procps"
+SECTION = "base"
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM="file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4cf66a4984120007c9881cc871cf49db \
+ "
+
+DEPENDS = "ncurses"
+
+inherit autotools gettext pkgconfig update-alternatives
+
+SRC_URI = "http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-${PV}.tar.xz \
+ file://sysctl.conf \
+ "
+
+SRC_URI[md5sum] = "957e42e8b193490b2111252e4a2b443c"
+SRC_URI[sha256sum] = "6ed65ab86318f37904e8f9014415a098bec5bc53653e5d9ab404f95ca5e1a7d4"
+
+S = "${WORKDIR}/procps-ng-${PV}"
+
+EXTRA_OECONF = "--enable-skill --disable-modern-top"
+
+CPPFLAGS += "-I${S}"
+
+do_install_append () {
+ install -d ${D}${base_bindir}
+ [ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
+ install -d ${D}${base_sbindir}
+ [ "${sbindir}" != "${base_sbindir}" ] && for i in ${base_sbindir_progs}; do mv ${D}${sbindir}/$i ${D}${base_sbindir}/$i; done
+ if [ "${base_sbindir}" != "${sbindir}" ]; then
+ rmdir ${D}${sbindir}
+ fi
+
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/sysctl.conf ${D}${sysconfdir}/sysctl.conf
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${sysconfdir}/sysctl.d
+ ln -sf ../sysctl.conf ${D}${sysconfdir}/sysctl.d/99-sysctl.conf
+ fi
+}
+
+CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
+
+bindir_progs = "free pkill pmap pgrep pwdx skill snice top uptime"
+base_bindir_progs += "kill pidof ps watch"
+base_sbindir_progs += "sysctl"
+
+ALTERNATIVE_PRIORITY = "200"
+
+ALTERNATIVE_${PN} = "${bindir_progs} ${base_bindir_progs} ${base_sbindir_progs}"
+
+ALTERNATIVE_${PN}-doc = "kill.1 uptime.1"
+ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1"
+ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1"
+
+python __anonymous() {
+ for prog in d.getVar('base_bindir_progs', True).split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir', True), prog))
+
+ for prog in d.getVar('base_sbindir_progs', True).split():
+ d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir', True), prog))
+}
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/psmisc/psmisc.inc b/import-layers/yocto-poky/meta/recipes-extended/psmisc/psmisc.inc
index 68e06561f..98a84709a 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/psmisc/psmisc.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/psmisc/psmisc.inc
@@ -15,6 +15,9 @@ S = "${WORKDIR}/psmisc-${PV}"
inherit autotools gettext
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
ALLOW_EMPTY_${PN} = "1"
PACKAGES =+ "fuser fuser-doc killall killall-doc pstree pstree-doc"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0001-Use-NGROUPS_MAX-instead-of-NGROUPS.patch b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0001-Use-NGROUPS_MAX-instead-of-NGROUPS.patch
new file mode 100644
index 000000000..6fb2daf53
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0001-Use-NGROUPS_MAX-instead-of-NGROUPS.patch
@@ -0,0 +1,83 @@
+Upstream-Status: Backport
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From feca6d2e55d992bbe176ee8faa734c105eb1b2e1 Mon Sep 17 00:00:00 2001
+From: Theodore Ts'o <tytso@mit.edu>
+Date: Tue, 29 Mar 2016 20:48:05 -0400
+Subject: [PATCH] Use NGROUPS_MAX instead of NGROUPS
+
+NGRROUPS_MAX is what is defined by SuSv3; NGROUPS is not guaranteed by
+any standard, but is just an ancient BSD'ism. Since Android's bionic
+libc has the former but not the latter, let's use NGROUPS_MAX instead.
+
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Signed-off-by: Jan Kara <jack@suse.cz>
+---
+ quota.c | 5 +++--
+ quotaops.c | 5 +++--
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/quota.c b/quota.c
+index 049dac4..e195ead 100644
+--- a/quota.c
++++ b/quota.c
+@@ -48,6 +48,7 @@
+ #include <errno.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <limits.h>
+ #ifdef RPC
+ #include <rpc/rpc.h>
+ #include "rquota.h"
+@@ -296,7 +297,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
+ int main(int argc, char **argv)
+ {
+ int ngroups;
+- gid_t gidset[NGROUPS], *gidsetp;
++ gid_t gidset[NGROUPS_MAX], *gidsetp;
+ int i, ret;
+ struct option long_opts[] = {
+ { "help", 0, NULL, 'h' },
+@@ -405,7 +406,7 @@ int main(int argc, char **argv)
+ ret |= showquotas(USRQUOTA, getuid(), argc, argv);
+ if (flags & FL_GROUP) {
+ ngroups = sysconf(_SC_NGROUPS_MAX);
+- if (ngroups > NGROUPS) {
++ if (ngroups > NGROUPS_MAX) {
+ gidsetp = malloc(ngroups * sizeof(gid_t));
+ if (!gidsetp)
+ die(1, _("Gid set allocation (%d): %s\n"), ngroups, strerror(errno));
+diff --git a/quotaops.c b/quotaops.c
+index 136aec3..590dc1b 100644
+--- a/quotaops.c
++++ b/quotaops.c
+@@ -51,6 +51,7 @@
+ #include <unistd.h>
+ #include <time.h>
+ #include <ctype.h>
++#include <limits.h>
+
+ #if defined(RPC)
+ #include "rquota.h"
+@@ -97,7 +98,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int quiet)
+ #if defined(BSD_BEHAVIOUR)
+ int j, ngroups;
+ uid_t euid;
+- gid_t gidset[NGROUPS], *gidsetp;
++ gid_t gidset[NGROUPS_MAX], *gidsetp;
+ #endif
+
+ for (i = 0; handles[i]; i++) {
+@@ -115,7 +116,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int quiet)
+ if (geteuid() == 0)
+ break;
+ ngroups = sysconf(_SC_NGROUPS_MAX);
+- if (ngroups > NGROUPS) {
++ if (ngroups > NGROUPS_MAX) {
+ gidsetp = malloc(ngroups * sizeof(gid_t));
+ if (!gidsetp) {
+ gid2group(id, name);
+--
+2.6.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0002-Allow-building-on-systems-that-do-not-have-rpc-heade.patch b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0002-Allow-building-on-systems-that-do-not-have-rpc-heade.patch
new file mode 100644
index 000000000..6cea548ed
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0002-Allow-building-on-systems-that-do-not-have-rpc-heade.patch
@@ -0,0 +1,153 @@
+Upstream-Status: Backport
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From f30e1ada8326463cc0af048afa058bc2f1dc9370 Mon Sep 17 00:00:00 2001
+From: Theodore Ts'o <tytso@mit.edu>
+Date: Tue, 29 Mar 2016 20:48:04 -0400
+Subject: [PATCH] Allow building on systems that do not have rpc header files
+
+Android's bionic C library doesn't have Sun RPC support.
+
+Signed-off-by: Theodore Ts'o <tytso@mit.edu>
+Signed-off-by: Jan Kara <jack@suse.cz>
+---
+ Makefile.am | 30 ++++++++++++++++--------------
+ quotaops.c | 2 ++
+ setquota.c | 2 ++
+ 3 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 6d7ea0e..82db99f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,5 @@
+ ACLOCAL_AMFLAGS = -I m4
+
+-BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
+-
+ docdir = $(datadir)/doc/@PACKAGE@
+ doc_DATA = \
+ README.mailserver \
+@@ -12,11 +10,6 @@ doc_DATA = \
+ doc/quotas.preformated \
+ doc/quotas-1.eps
+
+-rpcsvcdir = $(includedir)/rpcsvc
+-rpcsvc_DATA = \
+- rquota.h \
+- rquota.x
+-
+ sysconf_DATA = \
+ warnquota.conf \
+ quotatab \
+@@ -35,15 +28,12 @@ man_MANS = \
+ quota.1 \
+ quot.8 \
+ repquota.8 \
+- rpc.rquotad.8 \
+ rquota.3 \
+ setquota.8 \
+ warnquota.conf.5 \
+ warnquota.8 \
+ xqmstats.8
+
+-CLEANFILES = rquota.c rquota.h rquota_clnt.c
+-
+ SUBDIRS = po
+
+ EXTRA_DIST = \
+@@ -55,9 +45,15 @@ EXTRA_DIST = \
+ Changelog \
+ ldap-scripts
+
+-noinst_LIBRARIES = \
+- libquota.a \
+- librpcclient.a
++noinst_LIBRARIES = libquota.a
++
++if WITH_RPC
++rpcsvcdir = $(includedir)/rpcsvc
++rpcsvc_DATA = \
++ rquota.h \
++ rquota.x
++
++noinst_LIBRARIES += librpcclient.a
+
+ librpcclient_a_SOURCES = \
+ rquota.c \
+@@ -67,8 +63,10 @@ librpcclient_a_SOURCES = \
+ rquota_clnt.c
+ librpcclient_a_CFLAGS = -Wno-unused
+
+-if WITH_RPC
+ RPCLIBS = librpcclient.a
++BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
++CLEANFILES = rquota.c rquota.h rquota_clnt.c
++man_MANS += rpc.rquotad.8
+ endif
+
+ libquota_a_SOURCES = \
+@@ -217,6 +215,7 @@ convertquota_LDADD = \
+ libquota.a \
+ $(RPCLIBS)
+
++if WITH_RPC
+ rpc_rquotad_SOURCES = \
+ rquota_server.c \
+ rquota_svc.c \
+@@ -225,6 +224,7 @@ rpc_rquotad_LDADD = \
+ libquota.a \
+ $(WRAP_LIBS) \
+ $(RPCLIBS)
++endif
+
+ quota_nld_SOURCES = quota_nld.c
+ quota_nld_CFLAGS = \
+@@ -236,6 +236,7 @@ quota_nld_LDADD = \
+ $(DBUS_LIBS) \
+ $(LIBNL3_LIBS)
+
++if WITH_RPC
+ # ------------------
+ # Rpcgen conversions
+ # ------------------
+@@ -250,6 +251,7 @@ quota_nld_LDADD = \
+ rquota_clnt.c: rquota.x
+ @rm -f $@
+ @$(RPCGEN) -l -o $@ $<
++endif
+
+ # --------
+ # Quotaoff
+diff --git a/quotaops.c b/quotaops.c
+index 47ef9a7..136aec3 100644
+--- a/quotaops.c
++++ b/quotaops.c
+@@ -34,7 +34,9 @@
+
+ #include "config.h"
+
++#if defined(RPC)
+ #include <rpc/rpc.h>
++#endif
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/file.h>
+diff --git a/setquota.c b/setquota.c
+index 51d7b3c..8ecd9c3 100644
+--- a/setquota.c
++++ b/setquota.c
+@@ -7,7 +7,9 @@
+
+ #include "config.h"
+
++#if defined(RPC)
+ #include <rpc/rpc.h>
++#endif
+ #include <sys/types.h>
+ #include <errno.h>
+ #include <stdio.h>
+--
+2.6.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0003-Don-t-build-rpc.rquotad-when-disable-rpc-was-request.patch b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0003-Don-t-build-rpc.rquotad-when-disable-rpc-was-request.patch
new file mode 100644
index 000000000..145538412
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0003-Don-t-build-rpc.rquotad-when-disable-rpc-was-request.patch
@@ -0,0 +1,62 @@
+Upstream-Status: Backport
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From c7a76237e7a51a69d0236ebfc191e462f805cf4e Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Mon, 15 Feb 2016 14:42:14 +0100
+Subject: [PATCH] Don't build rpc.rquotad when --disable-rpc was requested.
+
+This fixes a buch of undefined references:
+
+x86_64-pc-linux-gnu-gcc -march=native -mtune=native -O2 -pipe -D_GNU_SOURCE -Wa
+ll -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -pie -Wl,-O1 -Wl,--hash-st
+yle=gnu -Wl,--sort-common -Wl,--as-needed -o rpc.rquotad rquota_server.o rquota_
+svc.o svc_socket.o libquota.a
+rquota_svc.o: In function `rquotaprog_2':
+rquota_svc.c:(.text+0x1d3): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x1da): undefined reference to `xdr_ext_setquota_args'
+rquota_svc.c:(.text+0x2b2): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x2b9): undefined reference to `xdr_ext_setquota_args'
+rquota_svc.c:(.text+0x2ff): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x306): undefined reference to `xdr_ext_getquota_args'
+rquota_svc.c:(.text+0x31a): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x321): undefined reference to `xdr_ext_getquota_args'
+rquota_svc.o: In function `rquotaprog_1':
+rquota_svc.c:(.text+0x3f3): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x3fa): undefined reference to `xdr_setquota_args'
+rquota_svc.c:(.text+0x4d2): undefined reference to `xdr_setquota_rslt'
+rquota_svc.c:(.text+0x4d9): undefined reference to `xdr_setquota_args'
+rquota_svc.c:(.text+0x51f): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x526): undefined reference to `xdr_getquota_args'
+rquota_svc.c:(.text+0x53a): undefined reference to `xdr_getquota_rslt'
+rquota_svc.c:(.text+0x541): undefined reference to `xdr_getquota_args'
+collect2: error: ld returned 1 exit status
+Makefile:901: recipe for target 'rpc.rquotad' failed
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+Signed-off-by: Jan Kara <jack@suse.cz>
+---
+ Makefile.am | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 77f8400..6d7ea0e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -116,8 +116,11 @@ sbin_PROGRAMS = \
+ xqmstats \
+ edquota \
+ setquota \
+- convertquota \
++ convertquota
++if WITH_RPC
++sbin_PROGRAMS += \
+ rpc.rquotad
++endif
+ if WITH_NETLINK
+ sbin_PROGRAMS += \
+ quota_nld
+--
+2.6.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0004-Fix-warnings-due-to-missing-stdlib.h.patch b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0004-Fix-warnings-due-to-missing-stdlib.h.patch
new file mode 100644
index 000000000..bdb4ceaad
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/0004-Fix-warnings-due-to-missing-stdlib.h.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Backport
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+From c4b56ee58b9b76d2598535cf6109a27b22e60abe Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Wed, 30 Mar 2016 10:21:13 +0200
+Subject: [PATCH] Fix warnings due to missing stdlib.h
+
+When compiling without RPC, we do not get stdlib.h automatically
+included via other includes and thus miss some function definitions.
+Include stdlib.h explicitely.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+---
+ quotaops.c | 1 +
+ setquota.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/quotaops.c b/quotaops.c
+index 590dc1b..56cf622 100644
+--- a/quotaops.c
++++ b/quotaops.c
+@@ -52,6 +52,7 @@
+ #include <time.h>
+ #include <ctype.h>
+ #include <limits.h>
++#include <stdlib.h>
+
+ #if defined(RPC)
+ #include "rquota.h"
+diff --git a/setquota.c b/setquota.c
+index 8ecd9c3..421631e 100644
+--- a/setquota.c
++++ b/setquota.c
+@@ -17,6 +17,7 @@
+ #include <getopt.h>
+ #include <time.h>
+ #include <ctype.h>
++#include <stdlib.h>
+
+ #if defined(RPC)
+ #include "rquota.h"
+--
+2.6.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch
index 27e60fd07..2d3797132 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch
@@ -59,20 +59,6 @@ Index: quota-tools/dqblk_v2.h
#include <sys/types.h>
#include "quota_tree.h"
-Index: quota-tools/quotaops.c
-===================================================================
---- quota-tools.orig/quotaops.c
-+++ quota-tools/quotaops.c
-@@ -34,7 +34,9 @@
-
- #include "config.h"
-
-+#if defined(RPC)
- #include <rpc/rpc.h>
-+#endif
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/file.h>
Index: quota-tools/rquota_client.c
===================================================================
--- quota-tools.orig/rquota_client.c
@@ -97,17 +83,3 @@ Index: quota-tools/rquota_client.c
#include "common.h"
#include "quotaio.h"
#include "quotasys.h"
-Index: quota-tools/setquota.c
-===================================================================
---- quota-tools.orig/setquota.c
-+++ quota-tools/setquota.c
-@@ -7,7 +7,9 @@
-
- #include "config.h"
-
-+#if defined(RPC)
- #include <rpc/rpc.h>
-+#endif
- #include <sys/types.h>
- #include <errno.h>
- #include <stdio.h>
diff --git a/import-layers/yocto-poky/meta/recipes-extended/quota/quota_4.03.bb b/import-layers/yocto-poky/meta/recipes-extended/quota/quota_4.03.bb
index 4a980464b..22aab4147 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/quota/quota_4.03.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/quota/quota_4.03.bb
@@ -12,6 +12,10 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/project/linuxquota/quota-tools/${PV}/quota-${PV
file://0001-Do-not-accidentaly-override-commandline-passed-CFLAG.patch \
file://fcntl.patch \
file://remove_non_posix_types.patch \
+ file://0001-Use-NGROUPS_MAX-instead-of-NGROUPS.patch \
+ file://0002-Allow-building-on-systems-that-do-not-have-rpc-heade.patch \
+ file://0003-Don-t-build-rpc.rquotad-when-disable-rpc-was-request.patch \
+ file://0004-Fix-warnings-due-to-missing-stdlib.h.patch \
"
SRC_URI_append_libc-musl = " file://replace_getrpcbynumber_r.patch"
@@ -25,8 +29,8 @@ DEPENDS = "gettext-native e2fsprogs libnl dbus"
inherit autotools-brokensep gettext pkgconfig
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += "-ltirpc"
+CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'rpc', '-I${STAGING_INCDIR}/tirpc', '', d)}"
+LDFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'rpc', '-ltirpc', '', d)}"
ASNEEDED = ""
PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-Fix-stack-overflow-due-to-too-deep-recursion.patch b/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-Fix-stack-overflow-due-to-too-deep-recursion.patch
deleted file mode 100644
index 4ac820fde..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-Fix-stack-overflow-due-to-too-deep-recursion.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Bug: 45713
-
-How to reproduce:
-Run this command inside screen
-$ printf '\x1b[10000000T'
-
-screen will recursively call MScrollV to depth n/256.
-This is time consuming and will overflow stack if n is huge.
-
-Fixes CVE-2015-6806
-
-Upstream-Status: Backport
-CVE: CVE-2015-6806
-
-Signed-off-by: Kuang-che Wu <kcwu@csie.org>
-Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
-diff -Naur screen-4.3.1-orig/ansi.c screen-4.3.1/ansi.c
---- screen-4.3.1-orig/ansi.c 2015-06-29 00:22:55.000000000 +0300
-+++ screen-4.3.1/ansi.c 2015-10-06 13:13:58.297648039 +0300
-@@ -2502,13 +2502,13 @@
- return;
- if (n > 0)
- {
-+ if (ye - ys + 1 < n)
-+ n = ye - ys + 1;
- if (n > 256)
- {
- MScrollV(p, n - 256, ys, ye, bce);
- n = 256;
- }
-- if (ye - ys + 1 < n)
-- n = ye - ys + 1;
- #ifdef COPY_PASTE
- if (compacthist)
- {
-@@ -2562,15 +2562,15 @@
- }
- else
- {
-- if (n < -256)
-- {
-- MScrollV(p, n + 256, ys, ye, bce);
-- n = -256;
-- }
- n = -n;
- if (ye - ys + 1 < n)
- n = ye - ys + 1;
-
-+ if (n > 256)
-+ {
-+ MScrollV(p, - (n - 256), ys, ye, bce);
-+ n = 256;
-+ }
- ml = p->w_mlines + ye;
- /* Clear lines */
- for (i = ye; i > ye - n; i--, ml--)
diff --git a/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-fix-for-multijob-build.patch b/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-fix-for-multijob-build.patch
index 40ecef00b..fbdb0eb47 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-fix-for-multijob-build.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/screen/screen/0001-fix-for-multijob-build.patch
@@ -1,3 +1,13 @@
+From 79ad2885e26631077dd6b8aebe17ae95b38133a6 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 26 Jul 2016 14:23:59 +0800
+Subject: [PATCH] fix for multijob build
+
+make sure that comm.sh script generates comm.h header before doing
+anything else
+
+Signed-off-by: Amadeusz Sawiski <amade@asmblr.net>
+
Upstream-Status: Backport
Backport patch to fix parallel build failure and update context to make patch
@@ -6,25 +16,13 @@ coulde be applied.
http://git.savannah.gnu.org/cgit/screen.git/commit?id=c0de6dd
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
-From c0de6dd7970b2c7b426a5c39dcbc31c2bef87232 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
-Date: Thu, 2 Jan 2014 18:18:06 +0100
-Subject: [PATCH] fix for multijob build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-make sure that comm.sh script generates comm.h header before doing
-anything else
-
-Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
----
- Makefile.in | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
+ Makefile.in | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index ce86cbc..dea16d8 100644
+index aca7da3..3607711 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -298,7 +298,7 @@ search.o: layout.h viewport.h canvas.h search.c config.h screen.h os.h osdef.h a
@@ -51,8 +49,10 @@ index ce86cbc..dea16d8 100644
braille.h
-list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h
-list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h
--list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h
+list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h comm.h
+list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h comm.h
-+list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h
+ list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.3.1.bb b/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.3.1.bb
deleted file mode 100644
index 00d878b2c..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.3.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Multiplexing terminal manager"
-DESCRIPTION = "Screen is a full-screen window manager \
-that multiplexes a physical terminal between several \
-processes, typically interactive shells."
-HOMEPAGE = "http://www.gnu.org/software/screen/"
-BUGTRACKER = "https://savannah.gnu.org/bugs/?func=additem&group=screen"
-
-SECTION = "console/utils"
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://screen.h;endline=26;md5=3971142989289a8198a544220703c2bf"
-
-DEPENDS = "ncurses \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-RDEPENDS_${PN} = "base-files"
-
-SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
- file://fix-parallel-make.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \
- file://Remove-redundant-compiler-sanity-checks.patch \
- file://Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch \
- file://Skip-host-file-system-checks-when-cross-compiling.patch \
- file://Avoid-mis-identifying-systems-as-SVR4.patch \
- file://0001-fix-for-multijob-build.patch \
- file://0002-comm.h-now-depends-on-term.h.patch \
- file://0001-Fix-stack-overflow-due-to-too-deep-recursion.patch \
- "
-
-SRC_URI[md5sum] = "5bb3b0ff2674e29378c31ad3411170ad"
-SRC_URI[sha256sum] = "fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63"
-
-inherit autotools texinfo
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
-
-EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
-
-do_install_append () {
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
- install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen
- fi
-}
-
-pkg_postinst_${PN} () {
- grep -q "^${bindir}/screen$" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
-}
-
-pkg_postrm_${PN} () {
- printf "$(grep -v "^${bindir}/screen$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.4.0.bb b/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.4.0.bb
new file mode 100644
index 000000000..769bac162
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/screen/screen_4.4.0.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Multiplexing terminal manager"
+DESCRIPTION = "Screen is a full-screen window manager \
+that multiplexes a physical terminal between several \
+processes, typically interactive shells."
+HOMEPAGE = "http://www.gnu.org/software/screen/"
+BUGTRACKER = "https://savannah.gnu.org/bugs/?func=additem&group=screen"
+
+SECTION = "console/utils"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://screen.h;endline=26;md5=3971142989289a8198a544220703c2bf"
+
+DEPENDS = "ncurses \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+RDEPENDS_${PN} = "base-files"
+
+SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
+ file://fix-parallel-make.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \
+ file://Remove-redundant-compiler-sanity-checks.patch \
+ file://Provide-cross-compile-alternatives-for-AC_TRY_RUN.patch \
+ file://Skip-host-file-system-checks-when-cross-compiling.patch \
+ file://Avoid-mis-identifying-systems-as-SVR4.patch \
+ file://0002-comm.h-now-depends-on-term.h.patch \
+ file://0001-fix-for-multijob-build.patch \
+ "
+
+SRC_URI[md5sum] = "d26e11a3648c2b11aaefa215a55dfd39"
+SRC_URI[sha256sum] = "ef722a54759a3bf23aad272bbf33c414c1078cad6bcd982fada93c0d7917218b"
+
+inherit autotools texinfo
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[utempter] = "ac_cv_header_utempter_h=yes,ac_cv_header_utempter_h=no,libutempter,"
+
+EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
+
+do_install_append () {
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
+ install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen
+ fi
+}
+
+pkg_postinst_${PN} () {
+ grep -q "^${bindir}/screen$" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
+}
+
+pkg_postrm_${PN} () {
+ printf "$(grep -v "^${bindir}/screen$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch
index 80594068a..c7c0aa015 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.1.2/sed-4.1.2_fix_for_automake-1.12.patch
@@ -6,7 +6,7 @@ Avoid this build issue:
| make[1]: mkdir_p@: Command not found
| make[1]: *** [install-data-yes] Error 127
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/07/13
Index: sed-4.1.2/intl/Makefile.in
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch b/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
index 105e8b745..0293900fb 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/sed/sed-4.2.2/sed-add-ptest.patch
@@ -54,7 +54,7 @@ index d80e72c..b05f01e 100644
# dummy targets for $(TESTS) so that make does not complain.
+install-ptest:
-+ cd $(BUILDDIR); tar -cf - $(TESTDIR) --exclude *.o | ( cd $(DESTDIR) && tar -xf - )
++ cd $(BUILDDIR); tar -c --exclude=*.o $(TESTDIR) | ( cd $(DESTDIR) && tar -xf - )
+ for i in $(EXTRA_DIST) tst-regex2.c; do install $(srcdir)/$$i $(DESTDIR)/$(TESTDIR); done
+ sed -e 's/^Makefile:/_Makefile:/' -e 's/^srcdir = \(.*\)/srcdir = ./' -e 's/bash/sh/' -i $(DESTDIR)/$(TESTDIR)/Makefile
+ for i in `grep -rl "../sed/sed" $(DESTDIR)/$(TESTDIR)`; do sed -e 's/..\/sed\/sed/sed/' -i $$i; done
diff --git a/import-layers/yocto-poky/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch b/import-layers/yocto-poky/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch
new file mode 100644
index 000000000..1af04d5fe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/shadow/files/shadow-relaxed-usernames.patch
@@ -0,0 +1,100 @@
+
+The groupadd from shadow does not allow upper case group names, the
+same is true for the upstream shadow. But distributions like
+Debian/Ubuntu/CentOS has their own way to cope with this problem,
+this patch is picked up from CentOS release 7.0 to relax the usernames
+restrictions to allow the upper case group names, and the relaxation is
+POSIX compliant because POSIX indicate that usernames are composed of
+characters from the portable filename character set [A-Za-z0-9._-].
+
+Upstream-Status: Pending
+
+Signed-off-by: Shan Hai <shan.hai@windriver.com>
+
+diff -urpN a/libmisc/chkname.c b/libmisc/chkname.c
+index 5089112..f40a0da 100644
+--- a/libmisc/chkname.c
++++ b/libmisc/chkname.c
+@@ -49,21 +49,28 @@
+ static bool is_valid_name (const char *name)
+ {
+ /*
+- * User/group names must match [a-z_][a-z0-9_-]*[$]
+- */
+- if (('\0' == *name) ||
+- !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) {
++ * User/group names must match gnu e-regex:
++ * [a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?
++ *
++ * as a non-POSIX, extension, allow "$" as the last char for
++ * sake of Samba 3.x "add machine script"
++ */
++ if ( ('\0' == *name) ||
++ !((*name >= 'a' && *name <= 'z') ||
++ (*name >= 'A' && *name <= 'Z') ||
++ (*name >= '0' && *name <= '9') ||
++ (*name == '_') || (*name == '.')
++ )) {
+ return false;
+ }
+
+ while ('\0' != *++name) {
+- if (!(( ('a' <= *name) && ('z' >= *name) ) ||
+- ( ('0' <= *name) && ('9' >= *name) ) ||
+- ('_' == *name) ||
+- ('-' == *name) ||
+- ('.' == *name) ||
+- ( ('$' == *name) && ('\0' == *(name + 1)) )
+- )) {
++ if (!( (*name >= 'a' && *name <= 'z') ||
++ (*name >= 'A' && *name <= 'Z') ||
++ (*name >= '0' && *name <= '9') ||
++ (*name == '_') || (*name == '.') || (*name == '-') ||
++ (*name == '$' && *(name + 1) == '\0')
++ )) {
+ return false;
+ }
+ }
+diff -urpN a/man/groupadd.8.xml b/man/groupadd.8.xml
+index 230fd0c..94f7807 100644
+--- a/man/groupadd.8.xml
++++ b/man/groupadd.8.xml
+@@ -222,12 +222,6 @@
+ <refsect1 id='caveats'>
+ <title>CAVEATS</title>
+ <para>
+- Groupnames must start with a lower case letter or an underscore,
+- followed by lower case letters, digits, underscores, or dashes.
+- They can end with a dollar sign.
+- In regular expression terms: [a-z_][a-z0-9_-]*[$]?
+- </para>
+- <para>
+ Groupnames may only be up to &GROUP_NAME_MAX_LENGTH; characters long.
+ </para>
+ <para>
+diff -urpN a/man/useradd.8.xml b/man/useradd.8.xml
+index 5dec989..fe623b9 100644
+--- a/man/useradd.8.xml
++++ b/man/useradd.8.xml
+@@ -336,7 +336,7 @@
+ </term>
+ <listitem>
+ <para>
+- Do no create the user's home directory, even if the system
++ Do not create the user's home directory, even if the system
+ wide setting from <filename>/etc/login.defs</filename>
+ (<option>CREATE_HOME</option>) is set to
+ <replaceable>yes</replaceable>.
+@@ -607,12 +607,6 @@
+ </para>
+
+ <para>
+- Usernames must start with a lower case letter or an underscore,
+- followed by lower case letters, digits, underscores, or dashes.
+- They can end with a dollar sign.
+- In regular expression terms: [a-z_][a-z0-9_-]*[$]?
+- </para>
+- <para>
+ Usernames may only be up to 32 characters long.
+ </para>
+ </refsect1>
diff --git a/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow-sysroot_4.2.1.bb b/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow-sysroot_4.2.1.bb
index 697569c47..ef014628f 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow-sysroot_4.2.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow-sysroot_4.2.1.bb
@@ -21,12 +21,10 @@ S = "${WORKDIR}"
do_install() {
install -d ${D}${sysconfdir}
- install -p -m 755 ${S}/login.defs_shadow-sysroot ${D}${sysconfdir}/login.defs
+ install -p -m 644 ${S}/login.defs_shadow-sysroot ${D}${sysconfdir}/login.defs
}
-sysroot_stage_all() {
- sysroot_stage_dir ${D} ${SYSROOT_DESTDIR}
-}
+SYSROOT_DIRS += "${sysconfdir}"
# don't create any packages
# otherwise: dbus-dev depends on shadow-sysroot-dev which depends on shadow-sysroot
diff --git a/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow.inc b/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow.inc
index d024b01dc..35a18f8ab 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/shadow/shadow.inc
@@ -22,6 +22,7 @@ SRC_URI = "http://pkg-shadow.alioth.debian.org/releases/${BPN}-${PV}.tar.xz \
SRC_URI_append_class-target = " \
file://login_defs_pam.sed \
file://shadow-update-pam-conf.patch \
+ file://shadow-relaxed-usernames.patch \
"
SRC_URI_append_class-native = " \
@@ -179,10 +180,11 @@ ALTERNATIVE_${PN}-base = "newgrp groups login su"
ALTERNATIVE_LINK_NAME[login] = "${base_bindir}/login"
ALTERNATIVE_LINK_NAME[su] = "${base_bindir}/su"
-ALTERNATIVE_${PN}-doc = "passwd.5 getspnam.3 groups.1"
+ALTERNATIVE_${PN}-doc = "passwd.5 getspnam.3 groups.1 su.1"
ALTERNATIVE_LINK_NAME[passwd.5] = "${mandir}/man5/passwd.5"
ALTERNATIVE_LINK_NAME[getspnam.3] = "${mandir}/man3/getspnam.3"
ALTERNATIVE_LINK_NAME[groups.1] = "${mandir}/man1/groups.1"
+ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1"
pkg_postinst_${PN} () {
if [ "x$D" != "x" ]; then
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch
deleted file mode 100644
index 2ea1ffda5..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-slang: change char type to signed char in macros
-
-C language has 3 distinct char types:
- char
- unsigned char
- signed char
-A char has the same range of values as signed char on X86,
-but same as unsigned char on ARM which made Slang's typecast()
-and array_sort() unable to work for char value on ARM, since
-Slang is assuming "char" as "signed char".
-
-Now we change "char" as "signed char" explicitly in
-util/mkslarith2.sl, and use it to regenerate src/slarith2.inc
-
-Upstream-Status: Submitted
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- src/slarith2.inc | 72 ++++++++++++++++++++++++-------------------------
- src/util/mkslarith2.sl | 2 -
- 2 files changed, 37 insertions(+), 37 deletions(-)
-
---- a/src/util/mkslarith2.sl
-+++ b/src/util/mkslarith2.sl
-@@ -1,7 +1,7 @@
- #!/usr/bin/env slsh
-
- private variable CTypes =
-- ["char", "unsigned char", "short", "unsigned short", "int", "unsigned int",
-+ ["signed char", "unsigned char", "short", "unsigned short", "int", "unsigned int",
- "long", "unsigned long", "long long", "unsigned long long",
- "float", "double", "long double"];
- private variable Is_Int_Type =
---- a/src/slarith2.inc
-+++ b/src/slarith2.inc
-@@ -1,43 +1,43 @@
- /* DO NOT EDIT -- this file was generated by src/util/mkslarith2.sl */
--/* ------------ char ---------- */
--DEFUN_1(copy_char_to_char,char,char)
-+/* ------------ signed char ---------- */
-+DEFUN_1(copy_char_to_char,signed char,signed char)
- #define char_to_char NULL
- #define copy_char_to_uchar copy_char_to_char
- #define char_to_uchar NULL
--DEFUN_1(copy_char_to_short,char,short)
-+DEFUN_1(copy_char_to_short,signed char,short)
- #define char_to_short NULL
--DEFUN_1(copy_char_to_ushort,char,unsigned short)
-+DEFUN_1(copy_char_to_ushort,signed char,unsigned short)
- #define char_to_ushort NULL
--DEFUN_1(copy_char_to_int,char,int)
--DEFUN_2(char_to_int,char,int,copy_char_to_int)
--DEFUN_1(copy_char_to_uint,char,unsigned int)
--DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint)
--DEFUN_1(copy_char_to_long,char,long)
--DEFUN_2(char_to_long,char,long,copy_char_to_long)
--DEFUN_1(copy_char_to_ulong,char,unsigned long)
--DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong)
-+DEFUN_1(copy_char_to_int,signed char,int)
-+DEFUN_2(char_to_int,signed char,int,copy_char_to_int)
-+DEFUN_1(copy_char_to_uint,signed char,unsigned int)
-+DEFUN_2(char_to_uint,signed char,unsigned int,copy_char_to_uint)
-+DEFUN_1(copy_char_to_long,signed char,long)
-+DEFUN_2(char_to_long,signed char,long,copy_char_to_long)
-+DEFUN_1(copy_char_to_ulong,signed char,unsigned long)
-+DEFUN_2(char_to_ulong,signed char,unsigned long,copy_char_to_ulong)
- #if defined(HAVE_LONG_LONG)
--DEFUN_1(copy_char_to_llong,char,long long)
--DEFUN_2(char_to_llong,char,long long,copy_char_to_llong)
-+DEFUN_1(copy_char_to_llong,signed char,long long)
-+DEFUN_2(char_to_llong,signed char,long long,copy_char_to_llong)
- #endif /* defined(HAVE_LONG_LONG) */
- #if defined(HAVE_LONG_LONG)
--DEFUN_1(copy_char_to_ullong,char,unsigned long long)
--DEFUN_2(char_to_ullong,char,unsigned long long,copy_char_to_ullong)
-+DEFUN_1(copy_char_to_ullong,signed char,unsigned long long)
-+DEFUN_2(char_to_ullong,signed char,unsigned long long,copy_char_to_ullong)
- #endif /* defined(HAVE_LONG_LONG) */
- #if SLANG_HAS_FLOAT
--DEFUN_1(copy_char_to_float,char,float)
--DEFUN_2(char_to_float,char,float,copy_char_to_float)
-+DEFUN_1(copy_char_to_float,signed char,float)
-+DEFUN_2(char_to_float,signed char,float,copy_char_to_float)
- #endif /* SLANG_HAS_FLOAT */
- #if SLANG_HAS_FLOAT
--DEFUN_1(copy_char_to_double,char,double)
--DEFUN_2(char_to_double,char,double,copy_char_to_double)
-+DEFUN_1(copy_char_to_double,signed char,double)
-+DEFUN_2(char_to_double,signed char,double,copy_char_to_double)
- #endif /* SLANG_HAS_FLOAT */
- #if defined(HAVE_LONG_DOUBLE)
--DEFUN_1(copy_char_to_ldouble,char,long double)
--DEFUN_2(char_to_ldouble,char,long double,copy_char_to_ldouble)
-+DEFUN_1(copy_char_to_ldouble,signed char,long double)
-+DEFUN_2(char_to_ldouble,signed char,long double,copy_char_to_ldouble)
- #endif /* defined(HAVE_LONG_DOUBLE) */
- #if SLANG_HAS_FLOAT
--TO_DOUBLE_FUN(char_to_one_double,char)
-+TO_DOUBLE_FUN(char_to_one_double,signed char)
- #endif
-
- /* ------------ unsigned char ---------- */
-@@ -82,7 +82,7 @@ TO_DOUBLE_FUN(uchar_to_one_double,unsign
- #endif
-
- /* ------------ short ---------- */
--DEFUN_1(copy_short_to_char,short,char)
-+DEFUN_1(copy_short_to_char,short,signed char)
- #define short_to_char NULL
- DEFUN_1(copy_short_to_uchar,short,unsigned char)
- #define short_to_uchar NULL
-@@ -123,7 +123,7 @@ TO_DOUBLE_FUN(short_to_one_double,short)
- #endif
-
- /* ------------ unsigned short ---------- */
--DEFUN_1(copy_ushort_to_char,unsigned short,char)
-+DEFUN_1(copy_ushort_to_char,unsigned short,signed char)
- #define ushort_to_char NULL
- DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char)
- #define ushort_to_uchar NULL
-@@ -164,7 +164,7 @@ TO_DOUBLE_FUN(ushort_to_one_double,unsig
- #endif
-
- /* ------------ int ---------- */
--DEFUN_1(copy_int_to_char,int,char)
-+DEFUN_1(copy_int_to_char,int,signed char)
- #define int_to_char NULL
- DEFUN_1(copy_int_to_uchar,int,unsigned char)
- #define int_to_uchar NULL
-@@ -205,7 +205,7 @@ TO_DOUBLE_FUN(int_to_one_double,int)
- #endif
-
- /* ------------ unsigned int ---------- */
--DEFUN_1(copy_uint_to_char,unsigned int,char)
-+DEFUN_1(copy_uint_to_char,unsigned int,signed char)
- #define uint_to_char NULL
- DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char)
- #define uint_to_uchar NULL
-@@ -246,7 +246,7 @@ TO_DOUBLE_FUN(uint_to_one_double,unsigne
- #endif
-
- /* ------------ long ---------- */
--DEFUN_1(copy_long_to_char,long,char)
-+DEFUN_1(copy_long_to_char,long,signed char)
- #define long_to_char NULL
- DEFUN_1(copy_long_to_uchar,long,unsigned char)
- #define long_to_uchar NULL
-@@ -287,7 +287,7 @@ TO_DOUBLE_FUN(long_to_one_double,long)
- #endif
-
- /* ------------ unsigned long ---------- */
--DEFUN_1(copy_ulong_to_char,unsigned long,char)
-+DEFUN_1(copy_ulong_to_char,unsigned long,signed char)
- #define ulong_to_char NULL
- DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char)
- #define ulong_to_uchar NULL
-@@ -329,7 +329,7 @@ TO_DOUBLE_FUN(ulong_to_one_double,unsign
-
- /* ------------ long long ---------- */
- #if defined(HAVE_LONG_LONG)
--DEFUN_1(copy_llong_to_char,long long,char)
-+DEFUN_1(copy_llong_to_char,long long,signed char)
- #define llong_to_char NULL
- DEFUN_1(copy_llong_to_uchar,long long,unsigned char)
- #define llong_to_uchar NULL
-@@ -372,7 +372,7 @@ TO_DOUBLE_FUN(llong_to_one_double,long l
-
- /* ------------ unsigned long long ---------- */
- #if defined(HAVE_LONG_LONG)
--DEFUN_1(copy_ullong_to_char,unsigned long long,char)
-+DEFUN_1(copy_ullong_to_char,unsigned long long,signed char)
- #define ullong_to_char NULL
- DEFUN_1(copy_ullong_to_uchar,unsigned long long,unsigned char)
- #define ullong_to_uchar NULL
-@@ -415,7 +415,7 @@ TO_DOUBLE_FUN(ullong_to_one_double,unsig
-
- /* ------------ float ---------- */
- #if SLANG_HAS_FLOAT
--DEFUN_1(copy_float_to_char,float,char)
-+DEFUN_1(copy_float_to_char,float,signed char)
- #define float_to_char NULL
- DEFUN_1(copy_float_to_uchar,float,unsigned char)
- #define float_to_uchar NULL
-@@ -458,7 +458,7 @@ TO_DOUBLE_FUN(float_to_one_double,float)
-
- /* ------------ double ---------- */
- #if SLANG_HAS_FLOAT
--DEFUN_1(copy_double_to_char,double,char)
-+DEFUN_1(copy_double_to_char,double,signed char)
- #define double_to_char NULL
- DEFUN_1(copy_double_to_uchar,double,unsigned char)
- #define double_to_uchar NULL
-@@ -501,7 +501,7 @@ TO_DOUBLE_FUN(double_to_one_double,doubl
-
- /* ------------ long double ---------- */
- #if defined(HAVE_LONG_DOUBLE)
--DEFUN_1(copy_ldouble_to_char,long double,char)
-+DEFUN_1(copy_ldouble_to_char,long double,signed char)
- #define ldouble_to_char NULL
- DEFUN_1(copy_ldouble_to_uchar,long double,unsigned char)
- #define ldouble_to_uchar NULL
-@@ -545,7 +545,7 @@ TO_DOUBLE_FUN(ldouble_to_one_double,long
- #if SLANG_HAS_FLOAT
- static To_Double_Fun_Table_Type To_Double_Fun_Table [MAX_ARITHMETIC_TYPES] =
- {
-- {sizeof(char), char_to_one_double},
-+ {sizeof(signed char), char_to_one_double},
- {sizeof(unsigned char), uchar_to_one_double},
- {sizeof(short), short_to_one_double},
- {sizeof(unsigned short), ushort_to_one_double},
-@@ -583,7 +583,7 @@ static To_Double_Fun_Table_Type To_Doubl
-
- static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] =
- {
-- /* char */
-+ /* signed char */
- {
- {(FVOID_STAR)copy_char_to_char, char_to_char},
- {(FVOID_STAR)copy_char_to_uchar, char_to_uchar},
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch
index 0c1553a66..a0ec0ff65 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch
@@ -11,14 +11,13 @@ this off.
Upstream-Status: Inappropriate
Signed-off-by: Roy.Li <rongqing.li@windriver.com>
---
- configure | 60 ++++++------------------------------------------------------
- 1 files changed, 6 insertions(+), 54 deletions(-)
+ configure | 72 +++++---------------------------------------------------------
+ 1 file changed, 6 insertions(+), 66 deletions(-)
diff --git a/configure b/configure
-index f1586c3..d22814f 100755
--- a/configure
+++ b/configure
-@@ -6991,6 +6991,7 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; }
+@@ -7191,6 +7191,7 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; }
/usr/include/pcre,/usr/lib \
/usr/pcre/include,/usr/pcre/lib \
/usr/include,/usr/lib \
@@ -26,7 +25,7 @@ index f1586c3..d22814f 100755
/opt/include/pcre,/opt/lib \
/opt/pcre/include,/opt/pcre/lib \
/opt/include,/opt/lib"
-@@ -7021,14 +7022,14 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; }
+@@ -7221,14 +7222,14 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; }
xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'`
xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'`
found=0
@@ -45,7 +44,7 @@ index f1586c3..d22814f 100755
jd_with_pcre_library="yes"
found=1
break
-@@ -7054,56 +7055,7 @@ $as_echo "yes: $jd_pcre_library_dir and $jd_pcre_include_dir" >&6; }
+@@ -7255,68 +7255,7 @@ $as_echo "yes: $jd_pcre_library_dir and $jd_pcre_include_dir" >&6; }
then
PCRE_LIB=""
else
@@ -74,7 +73,7 @@ index f1586c3..d22814f 100755
- fi
- fi
- ;;
-- *osf*|*openbsd*)
+- *osf*|*openbsd*|*freebsd*)
- if test "X$GCC" = Xyes
- then
- RPATH="-Wl,-rpath,"
@@ -95,7 +94,19 @@ index f1586c3..d22814f 100755
- RPATH="$RPATH$jd_pcre_library_dir"
- fi
- else
-- RPATH="$RPATH:$jd_pcre_library_dir"
+- _already_there=0
+- for X in `echo $RPATH | sed 's/:/ /g'`
+- do
+- if test "$X" = "$jd_pcre_library_dir"
+- then
+- _already_there=1
+- break
+- fi
+- done
+- if test $_already_there = 0
+- then
+- RPATH="$RPATH:$jd_pcre_library_dir"
+- fi
- fi
-fi
-
@@ -103,6 +114,3 @@ index f1586c3..d22814f 100755
fi
PCRE_INC=-I$jd_pcre_include_dir
---
-1.7.4.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch
index 50cac9264..f82a5313d 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch
@@ -10,7 +10,7 @@ Index: slang-2.2.4/configure
===================================================================
--- slang-2.2.4.orig/configure 2012-03-14 23:40:01.283560679 +0000
+++ slang-2.2.4/configure 2012-03-14 23:41:18.023558900 +0000
-@@ -6081,56 +6081,7 @@
+@@ -6246,68 +6246,7 @@ esac
ELF_CFLAGS="$ELF_CFLAGS $IEEE_CFLAGS"
CFLAGS="$CFLAGS $IEEE_CFLAGS"
@@ -39,7 +39,7 @@ Index: slang-2.2.4/configure
- fi
- fi
- ;;
-- *osf*|*openbsd*)
+- *osf*|*openbsd*|*freebsd*)
- if test "X$GCC" = Xyes
- then
- RPATH="-Wl,-rpath,"
@@ -60,7 +60,19 @@ Index: slang-2.2.4/configure
- RPATH="$RPATH$libdir"
- fi
- else
-- RPATH="$RPATH:$libdir"
+- _already_there=0
+- for X in `echo $RPATH | sed 's/:/ /g'`
+- do
+- if test "$X" = "$libdir"
+- then
+- _already_there=1
+- break
+- fi
+- done
+- if test $_already_there = 0
+- then
+- RPATH="$RPATH:$libdir"
+- fi
- fi
-fi
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch
index 958fe983c..850551ef0 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch
@@ -19,14 +19,14 @@ Upstream-Status: Inappropriate
Signed-off-by: Zheng Junling <zhengjunling@huawei.com>
---
- configure | 60 ++++++------------------------------------------------------
- 1 file changed, 6 insertions(+), 54 deletions(-)
+ configure | 72 +++++---------------------------------------------------------
+ 1 file changed, 6 insertions(+), 66 deletions(-)
diff --git a/configure b/configure
-index 7a96256..91632f3 100755
+index fa395ff..7fa769c 100755
--- a/configure
+++ b/configure
-@@ -7909,6 +7909,7 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; }
+@@ -8259,6 +8259,7 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; }
/usr/include/iconv,/usr/lib \
/usr/iconv/include,/usr/iconv/lib \
/usr/include,/usr/lib \
@@ -34,7 +34,7 @@ index 7a96256..91632f3 100755
/opt/include/iconv,/opt/lib \
/opt/iconv/include,/opt/iconv/lib \
/opt/include,/opt/lib"
-@@ -7939,14 +7940,14 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; }
+@@ -8289,14 +8290,14 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; }
xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'`
xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'`
found=0
@@ -53,7 +53,7 @@ index 7a96256..91632f3 100755
jd_with_iconv_library="yes"
found=1
break
-@@ -7972,56 +7973,7 @@ $as_echo "yes: $jd_iconv_library_dir and $jd_iconv_include_dir" >&6; }
+@@ -8201,68 +8201,7 @@ $as_echo "yes: $jd_iconv_library_dir and $jd_iconv_include_dir" >&6; }
then
ICONV_LIB=""
else
@@ -82,7 +82,7 @@ index 7a96256..91632f3 100755
- fi
- fi
- ;;
-- *osf*|*openbsd*)
+- *osf*|*openbsd*|*freebsd*)
- if test "X$GCC" = Xyes
- then
- RPATH="-Wl,-rpath,"
@@ -103,7 +103,19 @@ index 7a96256..91632f3 100755
- RPATH="$RPATH$jd_iconv_library_dir"
- fi
- else
-- RPATH="$RPATH:$jd_iconv_library_dir"
+- _already_there=0
+- for X in `echo $RPATH | sed 's/:/ /g'`
+- do
+- if test "$X" = "$jd_iconv_library_dir"
+- then
+- _already_there=1
+- break
+- fi
+- done
+- if test $_already_there = 0
+- then
+- RPATH="$RPATH:$jd_iconv_library_dir"
+- fi
- fi
-fi
-
@@ -111,6 +123,3 @@ index 7a96256..91632f3 100755
fi
ICONV_INC=-I$jd_iconv_include_dir
---
-1.8.3.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch
deleted file mode 100644
index 420001b08..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Upstream-Status: Backport
-
-From 3a05d1a920140e9f2c72791c12f664213feb46df Mon Sep 17 00:00:00 2001
-From: Manfred Hanke <Manfred.Hanke@tngtech.com>
-Date: Thu, 20 Jun 2013 10:24:12 +0200
-Subject: [PATCH] sprintf bug (concerning %c for 8-bit character in non-UTF8
- mode) fixed
-
-char *str points to SLuchar_Type utf8_buf[], which had too small scope
-
-src/test/strops.sl failed in the following environment:
- - compiler: gcc (Debian 4.7.2-5) 4.7.2
- - CFLAGS: -g -O2
- - libc: GNU C Library (Debian EGLIBC 2.13-38) stable release version 2.13
- - kernel: 3.2.0-4-686-pae #1 SMP Debian 3.2.39-2 i686 GNU/Linux
----
- src/slstrops.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/slstrops.c b/src/slstrops.c
-index ce6acb0..cbbbb01 100644
---- a/src/slstrops.c
-+++ b/src/slstrops.c
-@@ -1884,6 +1884,7 @@ static char *SLdo_sprintf (char *fmt) /*{{{*/
- #endif
- unsigned char uch;
- int use_long = 0, use_alt_format = 0;
-+ SLuchar_Type utf8_buf[SLUTF8_MAX_MBLEN+1];
-
- while (1)
- {
-@@ -2071,7 +2072,6 @@ static char *SLdo_sprintf (char *fmt) /*{{{*/
- #endif
- {
- SLwchar_Type wc;
-- SLuchar_Type utf8_buf[SLUTF8_MAX_MBLEN+1];
-
- if (-1 == SLang_pop_wchar (&wc))
- return out;
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.2.4.bb b/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.2.4.bb
deleted file mode 100644
index 237e9f252..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.2.4.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "The shared library for the S-Lang extension language"
-
-DESCRIPTION = "S-Lang is an interpreted language and a programming library. The \
-S-Lang language was designed so that it can be easily embedded into \
-a program to provide the program with a powerful extension language. \
-The S-Lang library, provided in this package, provides the S-Lang \
-extension language. S-Lang's syntax resembles C, which makes it easy \
-to recode S-Lang procedures in C if you need to."
-
-HOMEPAGE = "http://www.jedsoft.org/slang/"
-SECTION = "libs"
-DEPENDS = "pcre ncurses"
-PR = "r12"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02"
-
-
-SRC_URI = "http://www.jedsoft.org/releases/slang/old/slang-${PV}.tar.bz2 \
- file://rpathfix.patch \
- file://fix-check-pcre.patch \
- file://change-char-type-to-signed-char-in-macros.patch \
- file://sprintf-bug-concerning-8-bit-characters.patch \
- file://slang-fix-the-iconv-existence-checking.patch \
- file://0001-Fix-error-conflicting-types-for-posix_close.patch \
- "
-UPSTREAM_CHECK_URI = "http://www.jedsoft.org/releases/slang/"
-
-inherit autotools-brokensep
-
-CLEANBROKEN = "1"
-
-SRC_URI[md5sum] = "7fcfd447e378f07dd0c0bae671fe6487"
-SRC_URI[sha256sum] = "9a8257a9a2a55099af858b13338dc8f3a06dd2069f46f0df2c9c3bb84a01d5db"
-
-EXTRA_OECONF += " --without-z --without-png --without-onig --x-includes=${STAGING_DIR_HOST}/usr/include/X11 --x-libraries=${STAGING_DIR_HOST}/usr/lib"
-
-do_configure_prepend() {
- # slang keeps configure.ac and rest of autoconf files in autoconf/ directory
- # we have to go there to be able to run gnu-configize cause it expects configure.{in,ac}
- # to be present. Resulting files land in autoconf/autoconf/ so we need to move them.
- cd ${S}/autoconf && gnu-configize --force && mv autoconf/config.* .
- cd ${B}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} -e 'INST_LIB_DIR=${STAGING_DIR_HOST}/usr/lib'
-}
-
-FILES_${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/"
-
-PARALLEL_MAKE = ""
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.3.0.bb b/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.3.0.bb
new file mode 100644
index 000000000..17efbbe22
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang_2.3.0.bb
@@ -0,0 +1,51 @@
+SUMMARY = "The shared library for the S-Lang extension language"
+
+DESCRIPTION = "S-Lang is an interpreted language and a programming library. The \
+S-Lang language was designed so that it can be easily embedded into \
+a program to provide the program with a powerful extension language. \
+The S-Lang library, provided in this package, provides the S-Lang \
+extension language. S-Lang's syntax resembles C, which makes it easy \
+to recode S-Lang procedures in C if you need to."
+
+HOMEPAGE = "http://www.jedsoft.org/slang/"
+SECTION = "libs"
+DEPENDS = "pcre ncurses"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a52a18a472d4f7e45479b06563717c02"
+
+
+SRC_URI = "http://www.jedsoft.org/releases/${BPN}/${BP}.tar.bz2 \
+ file://rpathfix.patch \
+ file://fix-check-pcre.patch \
+ file://slang-fix-the-iconv-existence-checking.patch \
+ file://0001-Fix-error-conflicting-types-for-posix_close.patch \
+ "
+UPSTREAM_CHECK_URI = "http://www.jedsoft.org/releases/slang/"
+
+inherit autotools-brokensep
+
+CLEANBROKEN = "1"
+
+SRC_URI[md5sum] = "3bcc790460d52db1316c20395b7ac2f1"
+SRC_URI[sha256sum] = "f95224060f45e0d8212a5039b339afa5f1a94a1bb0298e796104e5b12e926129"
+
+EXTRA_OECONF += " --without-z --without-png --without-onig --x-includes=${STAGING_DIR_HOST}/usr/include/X11 --x-libraries=${STAGING_DIR_HOST}/usr/lib"
+
+do_configure_prepend() {
+ # slang keeps configure.ac and rest of autoconf files in autoconf/ directory
+ # we have to go there to be able to run gnu-configize cause it expects configure.{in,ac}
+ # to be present. Resulting files land in autoconf/autoconf/ so we need to move them.
+ cd ${S}/autoconf && gnu-configize --force && mv autoconf/config.* .
+ cd ${B}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} -e 'INST_LIB_DIR=${STAGING_DIR_HOST}/usr/lib'
+}
+
+FILES_${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/"
+
+PARALLEL_MAKE = ""
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/stat/stat-3.3/fix-security-format.patch b/import-layers/yocto-poky/meta/recipes-extended/stat/stat-3.3/fix-security-format.patch
new file mode 100644
index 000000000..0c01ed038
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/stat/stat-3.3/fix-security-format.patch
@@ -0,0 +1,68 @@
+stat: Fixing security formatting issues
+
+Fix security formatting issues related to printf without NULL argument
+
+stat.c: In function 'print_human_access':
+stat.c:292:13: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf (access);
+ ^
+stat.c: In function 'print_human_time':
+stat.c:299:57: error: format not a string literal and no format arguments [-Werror=format-security]
+ if (strftime(str, 40, "%c", localtime(t)) > 0) printf(str);
+ ^
+stat.c: In function 'print_it':
+stat.c:613:6: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf(b);
+ ^
+stat.c:642:6: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf(b);
+ ^
+
+[YOCTO #9550]
+[https://bugzilla.yoctoproject.org/show_bug.cgi?id=9550]
+
+Upstream-Status: Pending
+
+Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
+
+diff --git a/stat.c b/stat.c
+index 1ed07a9..2be6f62 100644
+--- a/stat.c
++++ b/stat.c
+@@ -289,15 +289,15 @@ void print_human_access(struct stat *statbuf)
+ default:
+ access[0] = '?';
+ }
+- printf (access);
++ fputs(access,stdout);
+ }
+
+ void print_human_time(time_t *t)
+ {
+ char str[40];
+
+- if (strftime(str, 40, "%c", localtime(t)) > 0) printf(str);
+- else printf("Cannot calculate human readable time, sorry");
++ if (strftime(str, 40, "%c", localtime(t)) > 0) fputs(str,stdout);
++ else fputs("Cannot calculate human readable time, sorry",stdout);
+ }
+
+ /* print statfs info */
+@@ -610,7 +610,7 @@ void print_it(char *masterformat, char *filename,
+ {
+ strcpy (pformat, "%");
+ *m++ = '\0';
+- printf(b);
++ fputs(b,stdout);
+
+ /* copy all format specifiers to our format string */
+ while (isdigit(*m) || strchr("#0-+. I", *m))
+@@ -639,7 +639,7 @@ void print_it(char *masterformat, char *filename,
+ }
+ else
+ {
+- printf(b);
++ fputs(b,stdout);
+ b = NULL;
+ }
+ }
diff --git a/import-layers/yocto-poky/meta/recipes-extended/stat/stat_3.3.bb b/import-layers/yocto-poky/meta/recipes-extended/stat/stat_3.3.bb
index a5ece0744..0697c7390 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/stat/stat_3.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/stat/stat_3.3.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=39886b077fd072e876e5c4c16310b631 \
file://GPL;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://www.ibiblio.org/pub/Linux/utils/file/${BP}.tar.gz \
+ file://fix-security-format.patch \
file://fix-error-return.patch"
SRC_URI[md5sum] = "37e247e8e400ad9205f1b0500b728fd3"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.15.bb b/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.15.bb
deleted file mode 100644
index 042043ece..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.15.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-require sudo.inc
-
-SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
- file://0001-Include-sys-types.h-for-id_t-definition.patch \
- "
-
-PAM_SRC_URI = "file://sudo.pam"
-
-SRC_URI[md5sum] = "7cf6b9b76d0478a572432bed481dd7b5"
-SRC_URI[sha256sum] = "4316381708324da8b6cb151f655c1a11855207c7c02244d8ffdea5104d7cc308"
-
-DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
-
-EXTRA_OECONF += " \
- ac_cv_type_rsize_t=no \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
- "
-
-do_install_append () {
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
- install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo
- fi
-
- chmod 4111 ${D}${bindir}/sudo
- chmod 0440 ${D}${sysconfdir}/sudoers
-
- # Explicitly remove the ${localstatedir}/run directory to avoid QA error
- rmdir -p --ignore-fail-on-non-empty ${D}${localstatedir}/run/sudo
-}
-
-FILES_${PN} += "${libdir}/tmpfiles.d"
-FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \
- ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.17p1.bb b/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.17p1.bb
new file mode 100644
index 000000000..614ad5c32
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/sudo/sudo_1.8.17p1.bb
@@ -0,0 +1,36 @@
+require sudo.inc
+
+SRC_URI = "http://ftp.sudo.ws/sudo/dist/sudo-${PV}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
+ file://0001-Include-sys-types.h-for-id_t-definition.patch \
+ "
+
+PAM_SRC_URI = "file://sudo.pam"
+
+SRC_URI[md5sum] = "50a840a688ceb6fa3ab24fc0adf4fa23"
+SRC_URI[sha256sum] = "c690d707fb561b3ecdf6a6de5563bc0b769388eff201c851edbace408bb155cc"
+
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
+
+EXTRA_OECONF += " \
+ ac_cv_type_rsize_t=no \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
+ "
+
+do_install_append () {
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}" = "pam" ]; then
+ install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo
+ fi
+
+ chmod 4111 ${D}${bindir}/sudo
+ chmod 0440 ${D}${sysconfdir}/sudoers
+
+ # Explicitly remove the ${localstatedir}/run directory to avoid QA error
+ rmdir -p --ignore-fail-on-non-empty ${D}${localstatedir}/run/sudo
+}
+
+FILES_${PN} += "${libdir}/tmpfiles.d"
+FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \
+ ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sysklogd/sysklogd.inc b/import-layers/yocto-poky/meta/recipes-extended/sysklogd/sysklogd.inc
index 1e363db6e..5c15ffe8a 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/sysklogd/sysklogd.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/sysklogd/sysklogd.inc
@@ -55,7 +55,7 @@ ALTERNATIVE_LINK_NAME[syslog-conf] = "${sysconfdir}/syslog.conf"
pkg_prerm_${PN} () {
if test "x$D" = "x"; then
if test "$1" = "upgrade" -o "$1" = "remove"; then
- /etc/init.d/syslog stop
+ /etc/init.d/syslog stop || :
fi
fi
}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat.inc b/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat.inc
index c35329193..bb5629db4 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat.inc
@@ -14,6 +14,7 @@ UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
DEPENDS += "base-passwd"
+# autotools-brokensep as this package doesn't use automake
inherit autotools-brokensep gettext systemd
EXTRA_OECONF += "--disable-sensors"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.2.0.bb b/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.2.0.bb
deleted file mode 100644
index 7a8eb96ad..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.2.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require sysstat.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI += "file://0001-Include-needed-headers-explicitly.patch"
-
-SRC_URI[md5sum] = "e8b615775ad98780e3f0675b91eddb19"
-SRC_URI[sha256sum] = "9806b9a662568796d3fb93ecd01ecea10d815e668337a646494953bff4bc4155"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.4.0.bb b/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.4.0.bb
new file mode 100644
index 000000000..69f83fc42
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/sysstat/sysstat_11.4.0.bb
@@ -0,0 +1,8 @@
+require sysstat.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
+
+SRC_URI += "file://0001-Include-needed-headers-explicitly.patch"
+
+SRC_URI[md5sum] = "ee7b8c0b139a11a7a3418dc0658ca1be"
+SRC_URI[sha256sum] = "b8518ca88acfcbc474a406022ee9c0c3210ccef4f0ec80e5b3e8c41dda8c16f2"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tar/tar/remove-gets.patch b/import-layers/yocto-poky/meta/recipes-extended/tar/tar/remove-gets.patch
index 0b8be39ee..f24de926a 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/tar/tar/remove-gets.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/tar/tar/remove-gets.patch
@@ -3,20 +3,27 @@ ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ re
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
-Index: tar-1.27/gnu/stdio.in.h
-===================================================================
---- tar-1.27.orig/gnu/stdio.in.h 2013-06-29 08:54:26.000000000 +0300
-+++ tar-1.27/gnu/stdio.in.h 2013-10-16 15:22:46.977204737 +0300
-@@ -710,10 +710,12 @@
+---
+ gnu/stdio.in.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h
+index ec43874..502e3ae 100644
+--- a/gnu/stdio.in.h
++++ b/gnu/stdio.in.h
+@@ -722,10 +722,12 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
/* It is very rare that the developer ever has full control of stdin,
so any use of gets warrants an unconditional warning; besides, C11
removed it. */
+#if defined gets
#undef gets
- #if HAVE_RAW_DECL_GETS
+ #if HAVE_RAW_DECL_GETS && !defined __cplusplus
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
+#endif
-
#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
+ struct obstack;
+--
+2.8.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.28.bb b/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.28.bb
deleted file mode 100644
index 518e62206..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.28.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require tar.inc
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[acl] = "--with-posix-acls, --without-posix-acls, acl,"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI += "file://remove-gets.patch \
- file://musl_dirent.patch \
- "
-SRC_URI[md5sum] = "8f32b2bc1ed7ddf4cf4e4a39711341b0"
-SRC_URI[sha256sum] = "60e4bfe0602fef34cd908d91cf638e17eeb09394d7b98c2487217dc4d3147562"
-
-do_install_append_libc-musl() {
- rm -f ${D}${libdir}/charset.alias
- rmdir ${D}${libdir}
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.29.bb b/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.29.bb
new file mode 100644
index 000000000..efce57d9d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/tar/tar_1.29.bb
@@ -0,0 +1,18 @@
+require tar.inc
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[acl] = "--with-posix-acls, --without-posix-acls, acl,"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI += "file://remove-gets.patch \
+ file://musl_dirent.patch \
+ "
+SRC_URI[md5sum] = "955cd533955acb1804b83fd70218da51"
+SRC_URI[sha256sum] = "236b11190c0a3a6885bdb8d61424f2b36a5872869aa3f7f695dea4b4843ae2f2"
+
+do_install_append_libc-musl() {
+ rm -f ${D}${libdir}/charset.alias
+ rmdir ${D}${libdir}
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016c.bb b/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016c.bb
deleted file mode 100644
index 06b92ea6e..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016c.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# note that we allow for us to use data later than our code version
-#
-SUMMARY = "tzcode, timezone zoneinfo utils -- zic, zdump, tzselect"
-LICENSE = "PD & BSD & BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=76ae2becfcb9a685041c6f166b44c2c2"
-
-SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
- http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata"
-
-SRC_URI[tzcode.md5sum] = "ffb82ab0b588138759902b4627a6a80d"
-SRC_URI[tzcode.sha256sum] = "344b1bd486935bca2b7baa47db3b99b32211c45f31ec0d1ead8bacd103c5a416"
-SRC_URI[tzdata.md5sum] = "0330ccd16140d3b6438a18dae9b34b93"
-SRC_URI[tzdata.sha256sum] = "8700d981e6f2007ac037dabb5d2b12f390e8629bbc30e564bc21cf0c069a2d48"
-
-S = "${WORKDIR}"
-
-inherit native
-
-do_install () {
- install -d ${D}${bindir}/
- install -m 755 zic ${D}${bindir}/
- install -m 755 zdump ${D}${bindir}/
- install -m 755 tzselect ${D}${bindir}/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016g.bb b/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016g.bb
new file mode 100644
index 000000000..a2e621741
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/tzcode/tzcode-native_2016g.bb
@@ -0,0 +1,26 @@
+# note that we allow for us to use data later than our code version
+#
+SUMMARY = "tzcode, timezone zoneinfo utils -- zic, zdump, tzselect"
+LICENSE = "PD & BSD & BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ef1a352b901ee7b75a75df8171d6aca7"
+
+SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
+ http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata"
+UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
+
+SRC_URI[tzcode.md5sum] = "f89867013676e3cb9544be2df7d36a91"
+SRC_URI[tzcode.sha256sum] = "1ff90b47ad7986140a513b5287b1851c40f80fd44fd636db5cc5b46d06f9fa2b"
+SRC_URI[tzdata.md5sum] = "3c7e97ec8527211104d27cc1d97a23de"
+SRC_URI[tzdata.sha256sum] = "3c7137b2bc47323b0de47b77786bacf81ed503d4b2c693ff8ada2fbd1281ebd1"
+
+S = "${WORKDIR}"
+
+inherit native
+
+do_install () {
+ install -d ${D}${bindir}/
+ install -m 755 zic ${D}${bindir}/
+ install -m 755 zdump ${D}${bindir}/
+ install -m 755 tzselect ${D}${bindir}/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016c.bb b/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016c.bb
deleted file mode 100644
index 5eb85b7e9..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016c.bb
+++ /dev/null
@@ -1,212 +0,0 @@
-SUMMARY = "Timezone data"
-HOMEPAGE = "http://www.iana.org/time-zones"
-SECTION = "base"
-LICENSE = "PD & BSD & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=76ae2becfcb9a685041c6f166b44c2c2"
-
-DEPENDS = "tzcode-native"
-
-SRC_URI = "http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata"
-
-SRC_URI[tzdata.md5sum] = "0330ccd16140d3b6438a18dae9b34b93"
-SRC_URI[tzdata.sha256sum] = "8700d981e6f2007ac037dabb5d2b12f390e8629bbc30e564bc21cf0c069a2d48"
-
-inherit allarch
-
-RCONFLICTS_${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
- timezone-arctic timezone-asia timezone-atlantic \
- timezone-australia timezone-europe timezone-indian \
- timezone-iso3166.tab timezone-pacific timezone-zone.tab"
-
-S = "${WORKDIR}"
-
-DEFAULT_TIMEZONE ?= "Universal"
-INSTALL_TIMEZONE_FILE ?= "1"
-
-TZONES= "africa antarctica asia australasia europe northamerica southamerica \
- factory etcetera backward systemv \
- "
-# pacificnew
-
-do_compile () {
- for zone in ${TZONES}; do \
- ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
- ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
- ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
- -y ${S}/yearistype.sh ${S}/${zone} ; \
- done
-}
-
-do_install () {
- install -d ${D}/$exec_prefix ${D}${datadir}/zoneinfo
- cp -pPR ${S}/$exec_prefix ${D}/
- # libc is removing zoneinfo files from package
- cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
- cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
-
- # Install default timezone
- if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
- install -d ${D}${sysconfdir}
- if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then
- echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
- fi
- ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
- else
- bberror "DEFAULT_TIMEZONE is set to an invalid value."
- exit 1
- fi
-
- chown -R root:root ${D}
-}
-
-pkg_postinst_${PN} () {
- etc_lt="$D${sysconfdir}/localtime"
- src="$D${sysconfdir}/timezone"
-
- if [ -e ${src} ] ; then
- tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
- fi
-
- if [ -z "${tz}" ] ; then
- exit 0
- fi
-
- if [ ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
- echo "You have an invalid TIMEZONE setting in ${src}"
- echo "Your ${etc_lt} has been reset to Universal; enjoy!"
- tz="Universal"
- echo "Updating ${etc_lt} with $D${datadir}/zoneinfo/${tz}"
- if [ -L ${etc_lt} ] ; then
- rm -f "${etc_lt}"
- fi
- ln -s "${datadir}/zoneinfo/${tz}" "${etc_lt}"
- fi
-}
-
-# Packages primarily organized by directory with a major city
-# in most time zones in the base package
-
-PACKAGES = "tzdata tzdata-misc tzdata-posix tzdata-right tzdata-africa \
- tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
- tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
-
-FILES_tzdata-africa += "${datadir}/zoneinfo/Africa/*"
-RPROVIDES_tzdata-africa = "tzdata-africa"
-
-FILES_tzdata-americas += "${datadir}/zoneinfo/America/* \
- ${datadir}/zoneinfo/US/* \
- ${datadir}/zoneinfo/Brazil/* \
- ${datadir}/zoneinfo/Canada/* \
- ${datadir}/zoneinfo/Mexico/* \
- ${datadir}/zoneinfo/Chile/*"
-RPROVIDES_tzdata-americas = "tzdata-americas"
-
-FILES_tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
-RPROVIDES_tzdata-antarctica = "tzdata-antarctica"
-
-FILES_tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
-RPROVIDES_tzdata-arctic = "tzdata-arctic"
-
-FILES_tzdata-asia += "${datadir}/zoneinfo/Asia/* \
- ${datadir}/zoneinfo/Indian/* \
- ${datadir}/zoneinfo/Mideast/*"
-RPROVIDES_tzdata-asia = "tzdata-asia"
-
-FILES_tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
-RPROVIDES_tzdata-atlantic = "tzdata-atlantic"
-
-FILES_tzdata-australia += "${datadir}/zoneinfo/Australia/*"
-RPROVIDES_tzdata-australia = "tzdata-australia"
-
-FILES_tzdata-europe += "${datadir}/zoneinfo/Europe/*"
-RPROVIDES_tzdata-europe = "tzdata-europe"
-
-FILES_tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
-RPROVIDES_tzdata-pacific = "tzdata-pacific"
-
-FILES_tzdata-posix += "${datadir}/zoneinfo/posix/*"
-RPROVIDES_tzdata-posix = "tzdata-posix"
-
-FILES_tzdata-right += "${datadir}/zoneinfo/right/*"
-RPROVIDES_tzdata-right = "tzdata-right"
-
-
-FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba \
- ${datadir}/zoneinfo/Egypt \
- ${datadir}/zoneinfo/Eire \
- ${datadir}/zoneinfo/Factory \
- ${datadir}/zoneinfo/GB-Eire \
- ${datadir}/zoneinfo/Hongkong \
- ${datadir}/zoneinfo/Iceland \
- ${datadir}/zoneinfo/Iran \
- ${datadir}/zoneinfo/Israel \
- ${datadir}/zoneinfo/Jamaica \
- ${datadir}/zoneinfo/Japan \
- ${datadir}/zoneinfo/Kwajalein \
- ${datadir}/zoneinfo/Libya \
- ${datadir}/zoneinfo/Navajo \
- ${datadir}/zoneinfo/Poland \
- ${datadir}/zoneinfo/Portugal \
- ${datadir}/zoneinfo/Singapore \
- ${datadir}/zoneinfo/Turkey"
-RPROVIDES_tzdata-misc = "tzdata-misc"
-
-
-FILES_${PN} += "${datadir}/zoneinfo/Pacific/Honolulu \
- ${datadir}/zoneinfo/America/Anchorage \
- ${datadir}/zoneinfo/America/Los_Angeles \
- ${datadir}/zoneinfo/America/Denver \
- ${datadir}/zoneinfo/America/Chicago \
- ${datadir}/zoneinfo/America/New_York \
- ${datadir}/zoneinfo/America/Caracas \
- ${datadir}/zoneinfo/America/Sao_Paulo \
- ${datadir}/zoneinfo/Europe/London \
- ${datadir}/zoneinfo/Europe/Paris \
- ${datadir}/zoneinfo/Africa/Cairo \
- ${datadir}/zoneinfo/Europe/Moscow \
- ${datadir}/zoneinfo/Asia/Dubai \
- ${datadir}/zoneinfo/Asia/Karachi \
- ${datadir}/zoneinfo/Asia/Dhaka \
- ${datadir}/zoneinfo/Asia/Bankok \
- ${datadir}/zoneinfo/Asia/Hong_Kong \
- ${datadir}/zoneinfo/Asia/Tokyo \
- ${datadir}/zoneinfo/Australia/Darwin \
- ${datadir}/zoneinfo/Australia/Adelaide \
- ${datadir}/zoneinfo/Australia/Brisbane \
- ${datadir}/zoneinfo/Australia/Sydney \
- ${datadir}/zoneinfo/Pacific/Noumea \
- ${datadir}/zoneinfo/CET \
- ${datadir}/zoneinfo/CST6CDT \
- ${datadir}/zoneinfo/EET \
- ${datadir}/zoneinfo/EST \
- ${datadir}/zoneinfo/EST5EDT \
- ${datadir}/zoneinfo/GB \
- ${datadir}/zoneinfo/GMT \
- ${datadir}/zoneinfo/GMT+0 \
- ${datadir}/zoneinfo/GMT-0 \
- ${datadir}/zoneinfo/GMT0 \
- ${datadir}/zoneinfo/Greenwich \
- ${datadir}/zoneinfo/HST \
- ${datadir}/zoneinfo/MET \
- ${datadir}/zoneinfo/MST \
- ${datadir}/zoneinfo/MST7MDT \
- ${datadir}/zoneinfo/NZ \
- ${datadir}/zoneinfo/NZ-CHAT \
- ${datadir}/zoneinfo/PRC \
- ${datadir}/zoneinfo/PST8PDT \
- ${datadir}/zoneinfo/ROC \
- ${datadir}/zoneinfo/ROK \
- ${datadir}/zoneinfo/UCT \
- ${datadir}/zoneinfo/UTC \
- ${datadir}/zoneinfo/Universal \
- ${datadir}/zoneinfo/W-SU \
- ${datadir}/zoneinfo/WET \
- ${datadir}/zoneinfo/Zulu \
- ${datadir}/zoneinfo/zone.tab \
- ${datadir}/zoneinfo/iso3166.tab \
- ${datadir}/zoneinfo/Etc/*"
-
-CONFFILES_${PN} += "${@ "${sysconfdir}/timezone" if bb.utils.to_boolean(d.getVar('INSTALL_TIMEZONE_FILE', True)) else "" }"
-CONFFILES_${PN} += "${sysconfdir}/localtime"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016g.bb b/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016g.bb
new file mode 100644
index 000000000..3ee4b5af6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/tzdata/tzdata_2016g.bb
@@ -0,0 +1,213 @@
+SUMMARY = "Timezone data"
+HOMEPAGE = "http://www.iana.org/time-zones"
+SECTION = "base"
+LICENSE = "PD & BSD & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ef1a352b901ee7b75a75df8171d6aca7"
+
+DEPENDS = "tzcode-native"
+
+SRC_URI = "http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata"
+UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
+
+SRC_URI[tzdata.md5sum] = "3c7e97ec8527211104d27cc1d97a23de"
+SRC_URI[tzdata.sha256sum] = "3c7137b2bc47323b0de47b77786bacf81ed503d4b2c693ff8ada2fbd1281ebd1"
+
+inherit allarch
+
+RCONFLICTS_${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
+ timezone-arctic timezone-asia timezone-atlantic \
+ timezone-australia timezone-europe timezone-indian \
+ timezone-iso3166.tab timezone-pacific timezone-zone.tab"
+
+S = "${WORKDIR}"
+
+DEFAULT_TIMEZONE ?= "Universal"
+INSTALL_TIMEZONE_FILE ?= "1"
+
+TZONES= "africa antarctica asia australasia europe northamerica southamerica \
+ factory etcetera backward systemv \
+ "
+# pacificnew
+
+do_compile () {
+ for zone in ${TZONES}; do \
+ ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo -L /dev/null \
+ -y ${S}/yearistype.sh ${S}/${zone} ; \
+ ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/posix -L /dev/null \
+ -y ${S}/yearistype.sh ${S}/${zone} ; \
+ ${STAGING_BINDIR_NATIVE}/zic -d ${WORKDIR}${datadir}/zoneinfo/right -L ${S}/leapseconds \
+ -y ${S}/yearistype.sh ${S}/${zone} ; \
+ done
+}
+
+do_install () {
+ install -d ${D}/$exec_prefix ${D}${datadir}/zoneinfo
+ cp -pPR ${S}/$exec_prefix ${D}/
+ # libc is removing zoneinfo files from package
+ cp -pP "${S}/zone.tab" ${D}${datadir}/zoneinfo
+ cp -pP "${S}/iso3166.tab" ${D}${datadir}/zoneinfo
+
+ # Install default timezone
+ if [ -e ${D}${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ]; then
+ install -d ${D}${sysconfdir}
+ if [ "${INSTALL_TIMEZONE_FILE}" = "1" ]; then
+ echo ${DEFAULT_TIMEZONE} > ${D}${sysconfdir}/timezone
+ fi
+ ln -s ${datadir}/zoneinfo/${DEFAULT_TIMEZONE} ${D}${sysconfdir}/localtime
+ else
+ bberror "DEFAULT_TIMEZONE is set to an invalid value."
+ exit 1
+ fi
+
+ chown -R root:root ${D}
+}
+
+pkg_postinst_${PN} () {
+ etc_lt="$D${sysconfdir}/localtime"
+ src="$D${sysconfdir}/timezone"
+
+ if [ -e ${src} ] ; then
+ tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+ fi
+
+ if [ -z "${tz}" ] ; then
+ exit 0
+ fi
+
+ if [ ! -e "$D${datadir}/zoneinfo/${tz}" ] ; then
+ echo "You have an invalid TIMEZONE setting in ${src}"
+ echo "Your ${etc_lt} has been reset to Universal; enjoy!"
+ tz="Universal"
+ echo "Updating ${etc_lt} with $D${datadir}/zoneinfo/${tz}"
+ if [ -L ${etc_lt} ] ; then
+ rm -f "${etc_lt}"
+ fi
+ ln -s "${datadir}/zoneinfo/${tz}" "${etc_lt}"
+ fi
+}
+
+# Packages primarily organized by directory with a major city
+# in most time zones in the base package
+
+PACKAGES = "tzdata tzdata-misc tzdata-posix tzdata-right tzdata-africa \
+ tzdata-americas tzdata-antarctica tzdata-arctic tzdata-asia \
+ tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
+
+FILES_tzdata-africa += "${datadir}/zoneinfo/Africa/*"
+RPROVIDES_tzdata-africa = "tzdata-africa"
+
+FILES_tzdata-americas += "${datadir}/zoneinfo/America/* \
+ ${datadir}/zoneinfo/US/* \
+ ${datadir}/zoneinfo/Brazil/* \
+ ${datadir}/zoneinfo/Canada/* \
+ ${datadir}/zoneinfo/Mexico/* \
+ ${datadir}/zoneinfo/Chile/*"
+RPROVIDES_tzdata-americas = "tzdata-americas"
+
+FILES_tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
+RPROVIDES_tzdata-antarctica = "tzdata-antarctica"
+
+FILES_tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
+RPROVIDES_tzdata-arctic = "tzdata-arctic"
+
+FILES_tzdata-asia += "${datadir}/zoneinfo/Asia/* \
+ ${datadir}/zoneinfo/Indian/* \
+ ${datadir}/zoneinfo/Mideast/*"
+RPROVIDES_tzdata-asia = "tzdata-asia"
+
+FILES_tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
+RPROVIDES_tzdata-atlantic = "tzdata-atlantic"
+
+FILES_tzdata-australia += "${datadir}/zoneinfo/Australia/*"
+RPROVIDES_tzdata-australia = "tzdata-australia"
+
+FILES_tzdata-europe += "${datadir}/zoneinfo/Europe/*"
+RPROVIDES_tzdata-europe = "tzdata-europe"
+
+FILES_tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
+RPROVIDES_tzdata-pacific = "tzdata-pacific"
+
+FILES_tzdata-posix += "${datadir}/zoneinfo/posix/*"
+RPROVIDES_tzdata-posix = "tzdata-posix"
+
+FILES_tzdata-right += "${datadir}/zoneinfo/right/*"
+RPROVIDES_tzdata-right = "tzdata-right"
+
+
+FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba \
+ ${datadir}/zoneinfo/Egypt \
+ ${datadir}/zoneinfo/Eire \
+ ${datadir}/zoneinfo/Factory \
+ ${datadir}/zoneinfo/GB-Eire \
+ ${datadir}/zoneinfo/Hongkong \
+ ${datadir}/zoneinfo/Iceland \
+ ${datadir}/zoneinfo/Iran \
+ ${datadir}/zoneinfo/Israel \
+ ${datadir}/zoneinfo/Jamaica \
+ ${datadir}/zoneinfo/Japan \
+ ${datadir}/zoneinfo/Kwajalein \
+ ${datadir}/zoneinfo/Libya \
+ ${datadir}/zoneinfo/Navajo \
+ ${datadir}/zoneinfo/Poland \
+ ${datadir}/zoneinfo/Portugal \
+ ${datadir}/zoneinfo/Singapore \
+ ${datadir}/zoneinfo/Turkey"
+RPROVIDES_tzdata-misc = "tzdata-misc"
+
+
+FILES_${PN} += "${datadir}/zoneinfo/Pacific/Honolulu \
+ ${datadir}/zoneinfo/America/Anchorage \
+ ${datadir}/zoneinfo/America/Los_Angeles \
+ ${datadir}/zoneinfo/America/Denver \
+ ${datadir}/zoneinfo/America/Chicago \
+ ${datadir}/zoneinfo/America/New_York \
+ ${datadir}/zoneinfo/America/Caracas \
+ ${datadir}/zoneinfo/America/Sao_Paulo \
+ ${datadir}/zoneinfo/Europe/London \
+ ${datadir}/zoneinfo/Europe/Paris \
+ ${datadir}/zoneinfo/Africa/Cairo \
+ ${datadir}/zoneinfo/Europe/Moscow \
+ ${datadir}/zoneinfo/Asia/Dubai \
+ ${datadir}/zoneinfo/Asia/Karachi \
+ ${datadir}/zoneinfo/Asia/Dhaka \
+ ${datadir}/zoneinfo/Asia/Bankok \
+ ${datadir}/zoneinfo/Asia/Hong_Kong \
+ ${datadir}/zoneinfo/Asia/Tokyo \
+ ${datadir}/zoneinfo/Australia/Darwin \
+ ${datadir}/zoneinfo/Australia/Adelaide \
+ ${datadir}/zoneinfo/Australia/Brisbane \
+ ${datadir}/zoneinfo/Australia/Sydney \
+ ${datadir}/zoneinfo/Pacific/Noumea \
+ ${datadir}/zoneinfo/CET \
+ ${datadir}/zoneinfo/CST6CDT \
+ ${datadir}/zoneinfo/EET \
+ ${datadir}/zoneinfo/EST \
+ ${datadir}/zoneinfo/EST5EDT \
+ ${datadir}/zoneinfo/GB \
+ ${datadir}/zoneinfo/GMT \
+ ${datadir}/zoneinfo/GMT+0 \
+ ${datadir}/zoneinfo/GMT-0 \
+ ${datadir}/zoneinfo/GMT0 \
+ ${datadir}/zoneinfo/Greenwich \
+ ${datadir}/zoneinfo/HST \
+ ${datadir}/zoneinfo/MET \
+ ${datadir}/zoneinfo/MST \
+ ${datadir}/zoneinfo/MST7MDT \
+ ${datadir}/zoneinfo/NZ \
+ ${datadir}/zoneinfo/NZ-CHAT \
+ ${datadir}/zoneinfo/PRC \
+ ${datadir}/zoneinfo/PST8PDT \
+ ${datadir}/zoneinfo/ROC \
+ ${datadir}/zoneinfo/ROK \
+ ${datadir}/zoneinfo/UCT \
+ ${datadir}/zoneinfo/UTC \
+ ${datadir}/zoneinfo/Universal \
+ ${datadir}/zoneinfo/W-SU \
+ ${datadir}/zoneinfo/WET \
+ ${datadir}/zoneinfo/Zulu \
+ ${datadir}/zoneinfo/zone.tab \
+ ${datadir}/zoneinfo/iso3166.tab \
+ ${datadir}/zoneinfo/Etc/*"
+
+CONFFILES_${PN} += "${@ "${sysconfdir}/timezone" if bb.utils.to_boolean(d.getVar('INSTALL_TIMEZONE_FILE', True)) else "" }"
+CONFFILES_${PN} += "${sysconfdir}/localtime"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch b/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch
new file mode 100644
index 000000000..8e9b06c42
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip/fix-security-format.patch
@@ -0,0 +1,97 @@
+unzip: Fixing security formatting issues
+
+Fix security formatting issues related to sprintf parameters expeted.
+
+[YOCTO #9551]
+[https://bugzilla.yoctoproject.org/show_bug.cgi?id=9551]
+
+Upstream-Status: Pending
+
+Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
+
+diff --git a/extract.c b/extract.c
+index 7cd9123..25c5a62 100644
+--- a/extract.c
++++ b/extract.c
+@@ -475,7 +475,7 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ Info(slide, 0x401, ((char *)slide,
+ LoadFarString(CentSigMsg), j + blknum*DIR_BLKSIZ + 1));
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(ReportMsg)));
++ "%s",LoadFarString(ReportMsg)));
+ error_in_archive = PK_BADERR;
+ }
+ reached_end = TRUE; /* ...so no more left to do */
+@@ -754,8 +754,8 @@ int extract_or_test_files(__G) /* return PK-type error code */
+
+ #ifndef SFX
+ if (no_endsig_found) { /* just to make sure */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
+- Info(slide, 0x401, ((char *)slide, LoadFarString(ReportMsg)));
++ Info(slide, 0x401, ((char *)slide, "%s", LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide, "%s", LoadFarString(ReportMsg)));
+ if (!error_in_archive) /* don't overwrite stronger error */
+ error_in_archive = PK_WARN;
+ }
+diff --git a/list.c b/list.c
+index 15e0011..0b484f6 100644
+--- a/list.c
++++ b/list.c
+@@ -181,7 +181,7 @@ int list_files(__G) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide, "%s", LoadFarString(ReportMsg)));
+ return PK_BADERR; /* sig not found */
+ }
+ }
+@@ -507,7 +507,7 @@ int list_files(__G) /* return PK-type error code */
+ && (!G.ecrec.is_zip64_archive)
+ && (memcmp(G.sig, end_central_sig, 4) != 0)
+ ) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide, "%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN; /* didn't find sig */
+ }
+
+@@ -591,7 +591,7 @@ int get_time_stamp(__G__ last_modtime, nmember) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide, "%s", LoadFarString(ReportMsg)));
+ return PK_BADERR; /* sig not found */
+ }
+ }
+@@ -674,7 +674,7 @@ int get_time_stamp(__G__ last_modtime, nmember) /* return PK-type error code */
+ ---------------------------------------------------------------------------*/
+
+ if (memcmp(G.sig, end_central_sig, 4)) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide, "%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN;
+ }
+ if (*nmember == 0L && error_in_archive <= PK_WARN)
+diff --git a/zipinfo.c b/zipinfo.c
+index 0ac75b3..1e7fa82 100644
+--- a/zipinfo.c
++++ b/zipinfo.c
+@@ -833,7 +833,7 @@ int zipinfo(__G) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide, "%s", LoadFarString(ReportMsg)));
+ error_in_archive = PK_BADERR; /* sig not found */
+ break;
+ }
+@@ -1022,7 +1022,7 @@ int zipinfo(__G) /* return PK-type error code */
+ && (!G.ecrec.is_zip64_archive)
+ && (memcmp(G.sig, end_central_sig, 4) != 0)
+ ) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide, "%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN; /* didn't find sig */
+ }
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip_6.0.bb b/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip_6.0.bb
index 9efe75628..547379c0d 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=94caec5a51ef55ef711ee4e8b1c69e29"
PE = "1"
PR = "r5"
-SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/unzip60.tgz \
+SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz \
file://avoid-strip.patch \
file://define-ldflags.patch \
file://06-unzip60-alt-iconv-utf8_CVE-2015-1315.patch \
@@ -16,6 +16,7 @@ SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/unzip60.tgz \
file://11-cve-2014-8141-getzip64data.patch \
file://CVE-2015-7696.patch \
file://CVE-2015-7697.patch \
+ file://fix-security-format.patch \
"
SRC_URI[md5sum] = "62b490407489521db863b523a7f86375"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config.bb b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config.bb
new file mode 100644
index 000000000..8bf40f0f0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Software watchdog"
+DESCRIPTION = "Watchdog is a daemon that checks if your system is still \
+working. If programs in user space are not longer executed it will reboot \
+the system."
+HOMEPAGE = "http://watchdog.sourceforge.net/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194"
+
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = " \
+ file://watchdog.default \
+ file://watchdog.conf \
+"
+
+do_install() {
+ install -Dm 0644 ${WORKDIR}/watchdog.default ${D}${sysconfdir}/default/watchdog
+ install -Dm 0644 ${WORKDIR}/watchdog.conf ${D}${sysconfdir}/watchdog.conf
+}
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.conf b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.conf
new file mode 100644
index 000000000..c493d12d3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.conf
@@ -0,0 +1,42 @@
+#ping = 172.31.14.1
+#ping = 172.26.1.255
+#interface = eth0
+#file = /var/log/messages
+#change = 1407
+
+# Uncomment to enable test. Setting one of these values to '0' disables it.
+# These values will hopefully never reboot your machine during normal use
+# (if your machine is really hung, the loadavg will go much higher than 25)
+#max-load-1 = 24
+#max-load-5 = 18
+#max-load-15 = 12
+
+# Note that this is the number of pages!
+# To get the real size, check how large the pagesize is on your machine.
+#min-memory = 1
+
+#repair-binary = /usr/sbin/repair
+#repair-timeout =
+#test-binary =
+#test-timeout =
+
+watchdog-device = /dev/watchdog
+
+# Defaults compiled into the binary
+#temperature-device =
+#max-temperature = 120
+
+# Defaults compiled into the binary
+#admin = root
+#interval = 1
+#logtick = 1
+#log-dir = /var/log/watchdog
+
+# This greatly decreases the chance that watchdog won't be scheduled before
+# your machine is really loaded
+realtime = yes
+priority = 1
+
+# Check if rsyslogd is still running by enabling the following line
+#pidfile = /var/run/rsyslogd.pid
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.default b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.default
new file mode 100644
index 000000000..647d5abca
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog-config/watchdog.default
@@ -0,0 +1,2 @@
+# Start watchdog at boot time? 0 or 1
+run_watchdog=1
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Fix-build-issues-found-with-non-glibc-C-libraries.patch b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Fix-build-issues-found-with-non-glibc-C-libraries.patch
deleted file mode 100644
index 8afed5c0d..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Fix-build-issues-found-with-non-glibc-C-libraries.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 83ec34df357218a1c9cfc13a23d3367d333652c3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Dec 2015 01:01:15 +0000
-Subject: [PATCH] Fix build issues found with non glibc C libraries
-
-Add time.h for getting time_t definition
-limits.h for PATH_MAX
-linux/param.h for EXEC_PAGESIZE
-Replace deprecated MNTTAB with _PATH_MNTTAB
-include ext2_mnt.h for MNTOPT_USRQUOTA and MNTOPT_GRPQUOTA and
-MNTTYPE_EXT2
-Include sys/types.h for u_char definition
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-
-Upstream-Status: Submitted
-
- include/extern.h | 1 +
- src/configfile.c | 1 +
- src/memory.c | 3 +++
- src/net.c | 1 +
- src/shutdown.c | 3 ++-
- 5 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/include/extern.h b/include/extern.h
-index 21db11b..04b16bc 100644
---- a/include/extern.h
-+++ b/include/extern.h
-@@ -3,6 +3,7 @@
-
- #include <netinet/in.h>
- #include <stdio.h>
-+#include <time.h>
-
- #include "logmessage.h"
- #include "xmalloc.h"
-diff --git a/src/configfile.c b/src/configfile.c
-index be5d7b3..7c1d1dd 100644
---- a/src/configfile.c
-+++ b/src/configfile.c
-@@ -16,6 +16,7 @@
- #include <errno.h>
- #include <string.h>
- #include <dirent.h>
-+#include <limits.h>
- #include <sys/stat.h>
-
- #include "extern.h"
-diff --git a/src/memory.c b/src/memory.c
-index e9607e4..b5e08aa 100644
---- a/src/memory.c
-+++ b/src/memory.c
-@@ -21,6 +21,9 @@
- #include <sys/stat.h>
- #include <sys/param.h>
- #include <sys/mman.h>
-+#ifdef __linux__
-+#include <linux/param.h>
-+#endif
-
- #include "extern.h"
- #include "watch_err.h"
-diff --git a/src/net.c b/src/net.c
-index 21823ae..8930caf 100644
---- a/src/net.c
-+++ b/src/net.c
-@@ -17,6 +17,7 @@
- #include <string.h>
- #include <unistd.h> /* for gethostname() etc */
- #include <netdb.h> /* for gethostbyname() */
-+#include <sys/types.h>
- #include <sys/param.h> /* for MAXHOSTNAMELEN */
- #include <sys/socket.h>
- #include <netinet/in.h>
-diff --git a/src/shutdown.c b/src/shutdown.c
-index 74aafa5..46b99cf 100644
---- a/src/shutdown.c
-+++ b/src/shutdown.c
-@@ -25,6 +25,7 @@
-
- #include "watch_err.h"
- #include "extern.h"
-+#include "ext2_mnt.h"
-
- #if defined __GLIBC__
- #include "ext2_mnt.h"
-@@ -123,7 +124,7 @@ static void mnt_off()
- FILE *fp;
- struct mntent *mnt;
-
-- fp = setmntent(MNTTAB, "r");
-+ fp = setmntent(_PATH_MNTTAB, "r");
- /* in some rare cases fp might be NULL so be careful */
- while (fp != NULL && ((mnt = getmntent(fp)) != (struct mntent *)0)) {
- /* First check if swap */
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
new file mode 100644
index 000000000..198f19861
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
@@ -0,0 +1,32 @@
+From 8f91385dbd5e7c14b36ecbd8a01ca82c709f6d77 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Jun 2016 18:19:29 +0000
+Subject: [PATCH] Include linux/param.h for EXEC_PAGESIZE definition
+
+Musl does not include linux/param.h whereas glibc
+does, so it fails to build on musl.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ src/watchdog.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/watchdog.c b/src/watchdog.c
+index acf6450..486384a 100644
+--- a/src/watchdog.c
++++ b/src/watchdog.c
+@@ -26,6 +26,9 @@
+ #include <sys/param.h> /* For EXEC_PAGESIZE */
+ #include <linux/oom.h>
+ #include <linux/watchdog.h>
++#ifdef __linux__
++#include <linux/param.h>
++#endif
+ #include <string.h>
+
+ #include <libgen.h>
+--
+1.8.3.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fix-ping-failure.patch b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fix-ping-failure.patch
deleted file mode 100644
index 14ab9c56a..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fix-ping-failure.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Fix ping mode failure
-
-Upstream-Status: Pending
-
-When watchdog works on ping mode, the system will be rebooted since
-watchdog can not receive the expected ECOREPLY on a setting interval.
-
-Ping mode uses a raw socket to send a ECO packet, then uses select()
-to wait and recvfrom() to receive the ECOREPLY packet, if select()
-shows the data is ready, and the data is not the expected ECOREPLY,
-and waiting time is not overdue, it will continue use select() and
-recvfrom().
-
-Problem is that the raw socket can receive any icmp packets, if we do
-not set filters, and there are many icmp packets on socket, this
-program will not find its interested ECOREPLY packet in a special
-interval, which makes the ping mode fail.
-
-
-Other program is that watchdog sometime can not reach the call of
-recvfrom to try to receive packets since tv_sec of struct timeval
-of select parameter is 0.
-
-The timeout of select() is the result of ping interval minusing the
-time of calling gettimeofday spending, when ping interval is 1 second,
-and the call of gettimeofday() spends several useconds, the tv_sec of
-struct timeval of select parameter must be 0, at that condition, we
-should it is valid of tv_sec of struct timeval of select parameter be 0
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- src/net.c | 2 +-
- src/watchdog.c | 5 ++++-
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-Index: watchdog-5.14/src/watchdog.c
-===================================================================
---- watchdog-5.14.orig/src/watchdog.c
-+++ watchdog-5.14/src/watchdog.c
-@@ -24,6 +24,7 @@
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <linux/oom.h>
-+#include <linux/icmp.h>
- #include <linux/watchdog.h>
- #include <string.h>
-
-Index: watchdog-5.14/src/net.c
-===================================================================
---- watchdog-5.14.orig/src/net.c
-+++ watchdog-5.14/src/net.c
-@@ -11,7 +11,8 @@
- #include <errno.h>
- #include <sys/time.h>
- #include <netinet/ip.h>
--#include <netinet/ip_icmp.h>
-+#include <linux/icmp.h>
-+//#include <netinet/ip_icmp.h>
- #include <fcntl.h>
- #include <string.h>
- #include <unistd.h> /* for gethostname() etc */
-@@ -179,6 +180,9 @@ int open_netcheck(struct list *tlist)
- {
- struct list *act;
- int hold = 0;
-+ struct icmp_filter filt;
-+ filt.data = ~(1<<ICMP_ECHOREPLY);
-+
-
- if (tlist != NULL) {
- for (act = tlist; act != NULL; act = act->next) {
-@@ -202,6 +206,7 @@ int open_netcheck(struct list *tlist)
- fatal_error(EX_SYSERR, "error opening socket (%s)", strerror(errno));
- }
-
-+ setsockopt(net->sock_fp, SOL_RAW, ICMP_FILTER, (char*)&filt, sizeof(filt));
- /* this is necessary for broadcast pings to work */
- (void)setsockopt(net->sock_fp, SOL_SOCKET, SO_BROADCAST, (char *)&hold, sizeof(hold));
-
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fixsepbuild.patch b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fixsepbuild.patch
deleted file mode 100644
index 2fad3a112..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/fixsepbuild.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Fix out of tree build support:
-
-| installing /etc/watchdog.conf
-| /bin/mkdir -p '/media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/image/usr/share/man/man5'
-| /bin/mkdir -p '/media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/image/usr/share/man/man8'
-| /usr/bin/install -c -m 644 /media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/watchdog-5.13/watchdog.conf.5 '/media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/image/usr/share/man/man5'
-| /usr/bin/install -c -m 644 /media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/watchdog-5.13/watchdog.8 /media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/watchdog-5.13/wd_keepalive.8 /media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/watchdog-5.13/wd_identify.8 '/media/build1/poky/build/tmp/work/i586-poky-linux/watchdog/5.13-r0/image/usr/share/man/man8'
-| /usr/bin/install: cannot stat `watchdog.conf': No such file or directory
-| make[2]: *** [install-etc-local] Error 1
-
-Upstream-Status: Pending
-
-RP 2013/03/21
-
-Index: watchdog-5.13/Makefile.am
-===================================================================
---- watchdog-5.13.orig/Makefile.am 2013-02-01 11:15:44.000000000 +0000
-+++ watchdog-5.13/Makefile.am 2013-03-21 11:59:35.637139031 +0000
-@@ -16,7 +16,7 @@
- else \
- echo "installing $(CONFIG_FILENAME)"; \
- $(mkinstalldirs) `dirname $(DESTDIR)$(CONFIG_FILENAME)`; \
-- $(INSTALL_DATA) watchdog.conf $(DESTDIR)$(CONFIG_FILENAME); \
-+ $(INSTALL_DATA) $(srcdir)/watchdog.conf $(DESTDIR)$(CONFIG_FILENAME); \
- fi
-
- install-data-local: install-etc-local
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init
new file mode 100644
index 000000000..1d3e4c555
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog/wd_keepalive.init
@@ -0,0 +1,121 @@
+#!/bin/sh
+#/etc/init.d/wd_keepalive: start wd_keepalive daemon.
+
+### BEGIN INIT INFO
+# Provides: wd_keepalive
+# Short-Description: Start watchdog keepalive daemon
+# Required-Start: $remote_fs
+# Required-Stop: $remote_fs
+# X-Start-Before: $all
+# Default-Start: 2 3 4 5
+# Default-Stop
+### END INIT INFO
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+test -x /usr/sbin/wd_keepalive || exit 0
+
+# For configuration of the init script use the file
+# /etc/default/watchdog, do not edit this init script.
+
+# Set run_watchdog to 1 to start watchdog or 0 to disable it.
+run_watchdog=0
+
+# Specify additional watchdog options here (see manpage).
+watchdog_options=""
+
+# Specify module to load
+watchdog_module="none"
+
+[ -e /etc/default/watchdog ] && . /etc/default/watchdog
+
+NAME=wd_keepalive
+DAEMON=/usr/sbin/wd_keepalive
+
+STOP_RETRY_SCHEDULE='TERM/10/forever/KILL/1'
+
+# . /lib/lsb/init-functions
+
+# Mock Debian stuff
+log_begin_msg() {
+ echo -n $*
+}
+
+log_end_msg() {
+ if [ "$1" = "0" ]; then
+ echo 'done'
+ else
+ echo 'error'
+ fi
+}
+
+log_daemon_msg() {
+ echo $*
+}
+
+log_progress_msg() {
+ echo $*
+}
+
+
+case "$1" in
+ start)
+ if [ $run_watchdog = 1 ]
+ then
+ [ ${watchdog_module:-none} != "none" ] && /sbin/modprobe $watchdog_module
+ echo -n "Starting watchdog keepalive daemon: "
+ if start-stop-daemon --start --quiet \
+ --exec $DAEMON -- $watchdog_options
+ then
+ echo wd_keepalive.
+ else
+ echo
+ fi
+ fi
+ ;;
+
+ stop)
+ if [ $run_watchdog = 1 ]
+ then
+ echo -n "Stopping watchdog keepalive daemon: "
+ if start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+ $STOP_RETRY_SCHEDULE
+ then
+ echo wd_keepalive.
+ else
+ echo
+ fi
+ fi
+ ;;
+
+ status)
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+ ;;
+
+ restart)
+ $0 force-reload
+ ;;
+
+ force-reload)
+ if [ $run_watchdog = 0 ]; then exit 0; fi
+ echo -n "Restarting $NAME daemon."
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+ $STOP_RETRY_SCHEDULE
+ echo -n "."
+ if start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON -- $watchdog_options
+ then
+ echo "done."
+ else
+ echo
+ fi
+ ;;
+
+ *)
+ echo "Usage: /etc/init.d/wd_keepalive {start|stop|status|restart|force-reload}"
+ exit 1
+
+esac
+
+exit 0
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.14.bb b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.14.bb
deleted file mode 100644
index 733023897..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.14.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Software watchdog"
-DESCRIPTION = "Watchdog is a daemon that checks if your system is still \
-working. If programs in user space are not longer executed \
-it will reboot the system."
-HOMEPAGE = "http://watchdog.sourceforge.net/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194"
-
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecc0551bf54ad97f6b541720f84d6569"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \
- file://fixsepbuild.patch \
- file://fix-ping-failure.patch \
- file://watchdog-init.patch \
- file://watchdog-conf.patch \
- file://0001-Fix-build-issues-found-with-non-glibc-C-libraries.patch \
-"
-
-SRC_URI[md5sum] = "5b2dba0c593942f4acc100bca0d560c4"
-SRC_URI[sha256sum] = "620b2f49e9879f2e85c73d4c1f422f9101e6b38e824fea2414befd8bb6866ad1"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/"
-UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
-
-inherit autotools
-inherit update-rc.d
-
-DEPENDS_append_libc-musl = " libtirpc "
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc "
-LDFLAGS_append_libc-musl = " -ltirpc "
-EXTRA_OECONF_append_libc-musl = " --disable-nfs "
-
-INITSCRIPT_NAME = "watchdog.sh"
-INITSCRIPT_PARAMS = "start 15 1 2 3 4 5 . stop 85 0 6 ."
-
-RRECOMMENDS_${PN} = "kernel-module-softdog"
-
-do_install_append() {
- install -D ${S}/redhat/watchdog.init ${D}/${sysconfdir}/init.d/watchdog.sh
-}
diff --git a/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.15.bb b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.15.bb
new file mode 100644
index 000000000..cedfc042c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/watchdog/watchdog_5.15.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Software watchdog"
+DESCRIPTION = "Watchdog is a daemon that checks if your system is still \
+working. If programs in user space are not longer executed \
+it will reboot the system."
+HOMEPAGE = "http://watchdog.sourceforge.net/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194"
+
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ecc0551bf54ad97f6b541720f84d6569"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \
+ file://0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch \
+ file://watchdog-init.patch \
+ file://watchdog-conf.patch \
+ file://wd_keepalive.init \
+"
+
+SRC_URI[md5sum] = "678c32f6f35a0492c9c1b76b4aa88828"
+SRC_URI[sha256sum] = "ffdc865137ad5d8e53664bd22bad4de6ca136d1b4636720320cb52af0c18947c"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/"
+UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
+
+inherit autotools
+inherit update-rc.d
+
+DEPENDS_append_libc-musl = " libtirpc "
+CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc "
+LDFLAGS_append_libc-musl = " -ltirpc "
+EXTRA_OECONF_append_libc-musl = " --disable-nfs "
+
+INITSCRIPT_PACKAGES = "${PN} ${PN}-keepalive"
+
+INITSCRIPT_NAME_${PN} = "watchdog.sh"
+INITSCRIPT_PARAMS_${PN} = "start 15 1 2 3 4 5 . stop 85 0 6 ."
+
+INITSCRIPT_NAME_${PN}-keepalive = "wd_keepalive"
+INITSCRIPT_PARAMS_${PN}-keepalive = "start 15 1 2 3 4 5 . stop 85 0 6 ."
+
+do_install_append() {
+ install -D ${S}/redhat/watchdog.init ${D}/${sysconfdir}/init.d/watchdog.sh
+ install -Dm 0755 ${WORKDIR}/wd_keepalive.init ${D}${sysconfdir}/init.d/wd_keepalive
+
+ # watchdog.conf is provided by the watchdog-config recipe
+ rm ${D}${sysconfdir}/watchdog.conf
+}
+
+PACKAGES =+ "${PN}-keepalive"
+
+FILES_${PN}-keepalive = " \
+ ${sysconfdir}/init.d/wd_keepalive \
+ ${sbindir}/wd_keepalive \
+"
+
+RDEPENDS_${PN} += "${PN}-config ${PN}-keepalive"
+RDEPENDS_${PN}-keepalive += "${PN}-config"
+
+RRECOMMENDS_${PN} = "kernel-module-softdog"
+
diff --git a/import-layers/yocto-poky/meta/recipes-extended/wget/wget.inc b/import-layers/yocto-poky/meta/recipes-extended/wget/wget.inc
index dc381a628..c4abfe490 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/wget/wget.inc
+++ b/import-layers/yocto-poky/meta/recipes-extended/wget/wget.inc
@@ -9,7 +9,7 @@ INC_PR = "r16"
inherit autotools gettext texinfo update-alternatives pkgconfig
-EXTRA_OECONF = "--enable-ipv6 --with-ssl=gnutls --disable-rpath --disable-iri \
+EXTRA_OECONF = "--with-ssl=gnutls --disable-rpath --disable-iri \
--without-libgnutls-prefix ac_cv_header_uuid_uuid_h=no"
ALTERNATIVE_${PN} = "wget"
@@ -20,8 +20,9 @@ RRECOMMENDS_${PN} += "ca-certificates"
BBCLASSEXTEND += "nativesdk"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
PACKAGECONFIG[libuuid] = "--with-libuuid, --without-libuuid,util-linux"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
# Let aclocal use the relative path for the m4 file rather than
# absolute, otherwise there might be an "Argument list too long" error
diff --git a/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.17.1.bb b/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.17.1.bb
deleted file mode 100644
index dca5d1f71..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.17.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC_URI = "${GNU_MIRROR}/wget/wget-${PV}.tar.gz \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- "
-
-SRC_URI[md5sum] = "a6a908c9ae0e6a4194c628974cc3f05a"
-SRC_URI[sha256sum] = "029fbb93bdc1c0c5a7507b6076a6ec2f8d34204a85aa87e5b2f61a9405b290f5"
-
-require wget.inc
diff --git a/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.18.bb b/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.18.bb
new file mode 100644
index 000000000..c969b98e7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/wget/wget_1.18.bb
@@ -0,0 +1,8 @@
+SRC_URI = "${GNU_MIRROR}/wget/wget-${PV}.tar.gz \
+ file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
+ "
+
+SRC_URI[md5sum] = "fc2debd8399e3b933a9b226794e2a886"
+SRC_URI[sha256sum] = "a00a65fab84cc46e24c53ce88c45604668a7a479276e037dc2f558e34717fb2d"
+
+require wget.inc
diff --git a/import-layers/yocto-poky/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch b/import-layers/yocto-poky/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
index fb9b1a408..0e0988b26 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
+++ b/import-layers/yocto-poky/meta/recipes-extended/which/which-2.18/fix_name_conflict_group_member.patch
@@ -3,7 +3,7 @@ Upstream-Status: Inappropriate [this is 2.18(GPLv2) specific]
# glibc also implements the function group_member. To avoid name conflict,
# here let us append a "_" to which's version.
#
-# Signed-off-by Dexuan Cui <dexuan.cui@intel.com>, 2010-08-20
+# Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>, 2010-08-20
# (this patch is licensed under GPLv2)
--- which-2.18/bash.c
diff --git a/import-layers/yocto-poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.1.bb b/import-layers/yocto-poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.1.bb
index c1472cf97..5007498bb 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.1.bb
@@ -27,6 +27,7 @@ SRC_URI[sha256sum] = "b0dd63a2576e0bb16f1aa78d6ddf7d6784784a098d4df17161cd6a17c7
UPSTREAM_CHECK_REGEX = "xdg-utils-(?P<pver>((\d+[\.\-_]*)+)((rc|alpha|beta)\d+)?)\.(tar\.gz|tgz)"
+# Needs brokensep as this doesn't use automake
inherit autotools-brokensep distro_features_check
# The xprop requires x11 in DISTRO_FEATURES
diff --git a/import-layers/yocto-poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch b/import-layers/yocto-poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch
new file mode 100644
index 000000000..19d854827
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-extended/zip/zip-3.0/fix-security-format.patch
@@ -0,0 +1,42 @@
+zip: Fixing security formatting issues
+
+Fix security formatting issues related to printing without NULL argument
+
+zip.c: In function 'help_extended':
+zip.c:1031:5: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf(text[i]);
+ ^
+zip.c: In function 'version_info':
+zip.c:1228:5: error: format not a string literal and no format arguments [-Werror=format-security]
+ printf(cryptnote[i]);
+ ^
+
+[YOCTO #9552]
+[https://bugzilla.yoctoproject.org/show_bug.cgi?id=9552]
+
+Upstream-Status: Pending
+
+Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho@intel.com>
+
+diff --git a/zip.c b/zip.c
+index 439821f..d7da768 100644
+--- a/zip.c
++++ b/zip.c
+@@ -1028,7 +1028,7 @@ local void help_extended()
+
+ for (i = 0; i < sizeof(text)/sizeof(char *); i++)
+ {
+- printf(text[i]);
++ fputs(text[i],stdout);
+ putchar('\n');
+ }
+ #ifdef DOS
+@@ -1225,7 +1225,7 @@ local void version_info()
+ CR_MAJORVER, CR_MINORVER, CR_BETA_VER, CR_VERSION_DATE);
+ for (i = 0; i < sizeof(cryptnote)/sizeof(char *); i++)
+ {
+- printf(cryptnote[i]);
++ fputs(cryptnote[i],stdout);
+ putchar('\n');
+ }
+ ++i; /* crypt support means there IS at least one compilation option */
diff --git a/import-layers/yocto-poky/meta/recipes-extended/zip/zip.inc b/import-layers/yocto-poky/meta/recipes-extended/zip/zip.inc
deleted file mode 100644
index 6221c5e13..000000000
--- a/import-layers/yocto-poky/meta/recipes-extended/zip/zip.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Compressor/archiver for creating and modifying .zip files"
-HOMEPAGE = "http://www.info-zip.org"
-SECTION = "console/utils"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d"
-
-SRC_URI = "ftp://ftp.info-zip.org/pub/infozip/src/zip${@d.getVar('PV',1).replace('.', '')}.tgz"
-
-EXTRA_OEMAKE = "'CC=${CC}' 'BIND=${CC}' 'AS=${CC} -c' 'CPP=${CPP}' \
- 'CFLAGS=-I. -DUNIX ${CFLAGS}' 'INSTALL=install' \
- 'BINFLAGS=0755' 'INSTALL_D=install -d'"
-
-do_compile() {
- oe_runmake -f unix/Makefile flags IZ_BZIP2=no_such_directory
- sed -i 's#LFLAGS1=""#LFLAGS1="${LDFLAGS}"#' flags
- oe_runmake -f unix/Makefile generic IZ_BZIP2=no_such_directory
-}
-
-do_install() {
- oe_runmake -f unix/Makefile prefix=${D}${prefix} \
- BINDIR=${D}${bindir} MANDIR=${D}${mandir}/man1 \
- install
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-extended/zip/zip_3.0.bb b/import-layers/yocto-poky/meta/recipes-extended/zip/zip_3.0.bb
index 383da4b89..087423a04 100644
--- a/import-layers/yocto-poky/meta/recipes-extended/zip/zip_3.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-extended/zip/zip_3.0.bb
@@ -1,18 +1,42 @@
-require zip.inc
+SUMMARY = "Compressor/archiver for creating and modifying .zip files"
+HOMEPAGE = "http://www.info-zip.org"
+SECTION = "console/utils"
-PR="r2"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=04d43c5d70b496c032308106e26ae17d"
+
+PR = "r2"
-# zip-2.32 still uses directory name of zip-2.30
S = "${WORKDIR}/zip30"
+SRC_URI = "${SOURCEFORGE_MIRROR}/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz \
+ file://fix-security-format.patch"
+
SRC_URI[md5sum] = "7b74551e63f8ee6aab6fbc86676c0d37"
SRC_URI[sha256sum] = "f0e8bb1f9b7eb0b01285495a2699df3a4b766784c1765a8f1aeedf63c0806369"
-# exclude version 2.3.2 which triggers a false positive
-UPSTREAM_CHECK_REGEX = "^zip(?P<pver>(?!232).+)\.tgz"
-
# zip.inc sets CFLAGS, but what Makefile actually uses is
# CFLAGS_NOOPT. It will also force -O3 optimization, overriding
# whatever we set.
-#
-EXTRA_OEMAKE_append = " 'CFLAGS_NOOPT=-I. -DUNIX ${CFLAGS}'"
+EXTRA_OEMAKE = "'CC=${CC}' 'BIND=${CC}' 'AS=${CC} -c' 'CPP=${CPP}' \
+ 'CFLAGS=-I. -DUNIX ${CFLAGS}' \
+ 'CFLAGS_NOOPT=-I. -DUNIX ${CFLAGS}' \
+ 'INSTALL=install' 'INSTALL_D=install -d' \
+ 'BINFLAGS=0755'"
+
+do_compile() {
+ oe_runmake -f unix/Makefile flags IZ_BZIP2=no_such_directory
+ sed -i 's#LFLAGS1=""#LFLAGS1="${LDFLAGS}"#' flags
+ oe_runmake -f unix/Makefile generic IZ_BZIP2=no_such_directory
+}
+
+do_install() {
+ oe_runmake -f unix/Makefile prefix=${D}${prefix} \
+ BINDIR=${D}${bindir} MANDIR=${D}${mandir}/man1 \
+ install
+}
+
+BBCLASSEXTEND = "native"
+
+# exclude version 2.3.2 which triggers a false positive
+UPSTREAM_CHECK_REGEX = "^zip(?P<pver>(?!232).+)\.tgz"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb
deleted file mode 100644
index 869569c51..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "WebKit based web browser for GNOME"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes ca-certificates avahi libnotify gcr libwnck3 \
- gsettings-desktop-schemas gnome-desktop3 libxml2-native intltool-native"
-
-inherit gnomebase gsettings distro_features_check upstream-version-is-even
-# libwnck3 is x11 only
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += "file://0001-yelp.m4-drop-the-check-for-itstool.patch"
-SRC_URI[archive.md5sum] = "172b78256100e8d3c629764abd0e1495"
-SRC_URI[archive.sha256sum] = "be699d484371111abae754e669187215df73e21533f461e513b79537d7a1c1c1"
-
-EXTRA_OECONF += " --disable-nss --with-distributor-name=${DISTRO}"
-
-do_configure_prepend() {
- touch ${S}/gnome-doc-utils.make
- sed -i -e s:help::g ${S}/Makefile.am
-}
-
-FILES_${PN} += "${datadir}/appdata ${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers"
-RDEPENDS_${PN} = "iso-codes adwaita-icon-theme"
-RRECOMMENDS_${PN} = "ca-certificates"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb
new file mode 100644
index 000000000..eba480b2f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.20.3.bb
@@ -0,0 +1,25 @@
+SUMMARY = "WebKit based web browser for GNOME"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes ca-certificates avahi libnotify gcr libwnck3 \
+ gsettings-desktop-schemas gnome-desktop3 libxml2-native intltool-native"
+
+inherit gnomebase gsettings distro_features_check upstream-version-is-even
+# libwnck3 is x11 only
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += "file://0001-yelp.m4-drop-the-check-for-itstool.patch"
+SRC_URI[archive.md5sum] = "31822b6b199f724f212ae9200bc055f1"
+SRC_URI[archive.sha256sum] = "4d9de1bdb44c14adf25aa6dc02ea3de60925cff5eb01fe89545e6032c9b424a2"
+
+EXTRA_OECONF += " --disable-nss --with-distributor-name=${DISTRO}"
+
+do_configure_prepend() {
+ sed -i -e s:help::g ${S}/Makefile.am
+}
+
+FILES_${PN} += "${datadir}/appdata ${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers"
+RDEPENDS_${PN} = "iso-codes adwaita-icon-theme"
+RRECOMMENDS_${PN} = "ca-certificates"
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb
deleted file mode 100644
index 32523a64a..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A library for bits of crypto UI and parsing etc"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt"
-
-inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection
-# depends on gtk+3, but also x11 through gtk+-x11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "b959bac99e17c9bb0990a15c9be11aed"
-SRC_URI[archive.sha256sum] = "d4d16da5af55148a694055835ccd07ad34daf0ad03bdad929bf7cad15637ce00"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1 \
- ${datadir}/gcr-3 \
-"
-
-# http://errors.yoctoproject.org/Errors/Details/20229/
-ARM_INSTRUCTION_SET = "arm"
-
-# on x86-64 the introspection binary goes into
-# an infinite loop under qemu during compilation,
-# printing the following:
-#
-# gcrypt-Message: select() error: Bad address
-#
-# gcrypt-Message: select() error: Bad address
-#
-# gcrypt-Message: select() error: Bad address
-#
-# This will be investigated later.
-EXTRA_OECONF_append_x86-64 = " --disable-introspection"
-
-# Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
-# qemu: uncaught target signal 6 (Aborted) - core dumped
-EXTRA_OECONF_append_mips64 = " --disable-introspection"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb
new file mode 100644
index 000000000..b32a455e3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A library for bits of crypto UI and parsing etc"
+HOMEPAGE = "http://www.gnome.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+DEPENDS = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt"
+
+inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection
+# depends on gtk+3, but also x11 through gtk+-x11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI[archive.md5sum] = "4314bf89eac293dd0a9d806593ff1b35"
+SRC_URI[archive.sha256sum] = "90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379"
+
+FILES_${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/gcr-3 \
+"
+
+# http://errors.yoctoproject.org/Errors/Details/20229/
+ARM_INSTRUCTION_SET = "arm"
+
+# on x86-64 the introspection binary goes into
+# an infinite loop under qemu during compilation,
+# printing the following:
+#
+# gcrypt-Message: select() error: Bad address
+#
+# gcrypt-Message: select() error: Bad address
+#
+# gcrypt-Message: select() error: Bad address
+#
+# This will be investigated later.
+EXTRA_OECONF_append_x86-64 = " --disable-introspection --disable-gtk-doc"
+
+# Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
+# qemu: uncaught target signal 6 (Aborted) - core dumped
+EXTRA_OECONF_append_mips64 = " --disable-introspection --disable-gtk-doc"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb
deleted file mode 100644
index ba94eecbd..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-SUMMARY = "Image loading library for GTK+"
-HOMEPAGE = "http://www.gtk.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b"
-
-SECTION = "libs"
-
-DEPENDS = "glib-2.0"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
- file://hardcoded_libtool.patch \
- file://extending-libinstall-dependencies.patch \
- file://run-ptest \
- file://fatal-loader.patch \
- "
-
-SRC_URI[md5sum] = "9275076639baa24a342f3e02c402920e"
-SRC_URI[sha256sum] = "2b6771f1ac72f687a8971e59810b8dc658e65e7d3086bd2e676e618fd541d031"
-
-inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection
-
-LIBV = "2.10.0"
-
-GDK_PIXBUF_LOADERS ?= "png jpeg"
-
-PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}"
-PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}"
-PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}"
-
-PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng"
-PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg"
-PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
-PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper"
-
-# Use GIO to sniff image format instead of trying all loaders
-PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info"
-PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11"
-
-PACKAGES =+ "${PN}-xlib"
-
-FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
-ALLOW_EMPTY_${PN}-xlib = "1"
-
-FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
-
-FILES_${PN}-dev += " \
- ${bindir}/gdk-pixbuf-csource \
- ${bindir}/gdk-pixbuf-pixdata \
- ${includedir}/* \
- ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \
-"
-
-PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*"
-PACKAGES_DYNAMIC_class-native = ""
-
-python populate_packages_prepend () {
- postinst_pixbufloader = d.getVar("postinst_pixbufloader", True)
-
- loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders')
-
- packages = ' '.join(do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s'))
- d.setVar('PIXBUF_PACKAGES', packages)
-
- # The test suite exercises all the loaders, so ensure they are all
- # dependencies of the ptest package.
- d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages)
-}
-
-do_install_append() {
- # Move gdk-pixbuf-query-loaders into libdir so it is always available
- # in multilib builds.
- mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/
-}
-
-do_install_append_class-native() {
- find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
-
- create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \
- GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
-
- create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \
- GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
-
- create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
- GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \
- GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders
-}
-BBCLASSEXTEND = "native"
-
-SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
-SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
-
-gdkpixbuf_sstate_preinst() {
- if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then
- rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/*
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb
new file mode 100644
index 000000000..4f39494cf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb
@@ -0,0 +1,102 @@
+SUMMARY = "Image loading library for GTK+"
+HOMEPAGE = "http://www.gtk.org/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b"
+
+SECTION = "libs"
+
+DEPENDS = "glib-2.0"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
+ file://hardcoded_libtool.patch \
+ file://extending-libinstall-dependencies.patch \
+ file://run-ptest \
+ file://fatal-loader.patch \
+ "
+
+SRC_URI[md5sum] = "63cb19f92cf7709ccf44bbb6fe1ff70c"
+SRC_URI[sha256sum] = "d55e5b383ee219bd0e23bf6ed4427d56a7db5379729a6e3e0a0e0eba9a8d8879"
+
+inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc
+
+LIBV = "2.10.0"
+
+GDK_PIXBUF_LOADERS ?= "png jpeg"
+
+PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}"
+PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}"
+PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}"
+
+PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng"
+PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg"
+PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
+PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper"
+
+# Use GIO to sniff image format instead of trying all loaders
+PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info"
+PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11"
+
+PACKAGES =+ "${PN}-xlib"
+
+FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
+ALLOW_EMPTY_${PN}-xlib = "1"
+
+FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
+
+FILES_${PN}-dev += " \
+ ${bindir}/gdk-pixbuf-csource \
+ ${bindir}/gdk-pixbuf-pixdata \
+ ${includedir}/* \
+ ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \
+"
+
+PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*"
+PACKAGES_DYNAMIC_class-native = ""
+
+python populate_packages_prepend () {
+ postinst_pixbufloader = d.getVar("postinst_pixbufloader", True)
+
+ loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders')
+
+ packages = ' '.join(do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s'))
+ d.setVar('PIXBUF_PACKAGES', packages)
+
+ # The test suite exercises all the loaders, so ensure they are all
+ # dependencies of the ptest package.
+ d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages)
+}
+
+do_install_append() {
+ # Move gdk-pixbuf-query-loaders into libdir so it is always available
+ # in multilib builds.
+ mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/
+}
+
+do_install_append_class-native() {
+ find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \;
+
+ create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \
+ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
+
+ create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \
+ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache
+
+ create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
+ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \
+ GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders
+}
+BBCLASSEXTEND = "native"
+
+SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
+SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst"
+
+gdkpixbuf_sstate_preinst() {
+ if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then
+ rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/*
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb
deleted file mode 100644
index ee460d988..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "GNOME library for reading .desktop files"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "gnome-desktop"
-
-inherit gnome pkgconfig upstream-version-is-even gobject-introspection
-SRC_URI[archive.md5sum] = "9a5875247abdb99bad93f1c4230d1d6d"
-SRC_URI[archive.sha256sum] = "ddd46d022de137543a71f50c7392b32f9b98d5d3f2b53040b35f5802de2e7b56"
-
-DEPENDS += "gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 gnome-doc-utils gnome-common startup-notification xkeyboard-config iso-codes"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = "--disable-desktop-docs"
-
-PACKAGES =+ "libgnome-desktop3"
-FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml"
-
-RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb
new file mode 100644
index 000000000..eb061b20e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "GNOME library for reading .desktop files"
+SECTION = "x11/gnome"
+LICENSE = "GPLv2 & LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+BPN = "gnome-desktop"
+
+inherit gnome pkgconfig upstream-version-is-even gobject-introspection
+SRC_URI[archive.md5sum] = "8354ed38624f5eb6b5d34267b658a9c9"
+SRC_URI[archive.sha256sum] = "492c2da7aa8c3a8b65796e8171fc8f0dfb5d322dd2799c0d76392e1fb061e2b2"
+
+DEPENDS += "intltool-native gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes"
+
+inherit distro_features_check gtk-doc
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--disable-desktop-docs"
+
+PACKAGES =+ "libgnome-desktop3"
+FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml"
+
+RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb
deleted file mode 100644
index 81c88458d..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "GTK+ icon theme"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome"
-
-LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c"
-
-inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
-
-DEPENDS += "intltool-native"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
- "
-
-SRC_URI[md5sum] = "ec1fa3fde83ad166ae7075a97dc1ec4b"
-SRC_URI[sha256sum] = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58"
-
-do_install_append() {
- # Build uses gtk-encode-symbolic-svg to create png versions:
- # no need to store the svgs anymore.
- rm -f ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic.svg \
- ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic-rtl.svg
-}
-
-PACKAGES = "${PN}-cursors ${PN}-symbolic ${PN}-hires ${PN}"
-
-RREPLACES_${PN} = "gnome-icon-theme"
-RCONFLICTS_${PN} = "gnome-icon-theme"
-RPROVIDES_${PN} = "gnome-icon-theme"
-
-FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
-FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/*/*/*.symbolic.png"
-FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/"
-FILES_${PN} = "${prefix}/share/icons/Adwaita/ \
- ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.20.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.20.bb
new file mode 100644
index 000000000..bb0eaebdc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.20.bb
@@ -0,0 +1,41 @@
+SUMMARY = "GTK+ icon theme"
+HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome"
+
+LICENSE = "LGPL-3.0 | CC-BY-SA-3.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c"
+
+inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
+
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
+ "
+
+SRC_URI[md5sum] = "411be2bd68dd8b0a3c86aca2eb351ce4"
+SRC_URI[sha256sum] = "7a0a887349f340dd644032f89d81264b694c4b006bd51af1c2c368d431e7ae35"
+
+do_install_append() {
+ # Build uses gtk-encode-symbolic-svg to create png versions:
+ # no need to store the svgs anymore.
+ rm -f ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic.svg \
+ ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic-rtl.svg
+}
+
+PACKAGES = "${PN}-cursors ${PN}-symbolic-hires ${PN}-symbolic ${PN}-hires ${PN}"
+
+RREPLACES_${PN} = "gnome-icon-theme"
+RCONFLICTS_${PN} = "gnome-icon-theme"
+RPROVIDES_${PN} = "gnome-icon-theme"
+
+FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/"
+FILES_${PN}-symbolic-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \
+ ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \
+ ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \
+ ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png"
+FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \
+ ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png"
+FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/"
+FILES_${PN} = "${prefix}/share/icons/Adwaita/ \
+ ${prefix}/share/pkgconfig/adwaita-icon-theme.pc"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc
deleted file mode 100644
index 8adfac7d7..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "A collection of documentation utilities for the Gnome project"
-DESCRIPTION = "The GNOME Documentation Build Utilities (gnome-doc- \
-utils) were created to make it easier for application developers to \
-include and create documentation in their releases. They include the \
-xml2po tool which makes it easier to translate and keep up to date \
-translations of documentation."
-LICENSE = "GPLv2 & LGPLv2.1"
-DEPENDS = "libxml2 libxslt libxslt-native gnome-doc-utils-native glib-2.0"
-DEPENDS_class-native = "libxml2-native libxslt-native intltool-native glib-2.0-native"
-
-inherit gnomebase gettext python-dir pythonnative autotools-brokensep
-
-CLEANBROKEN = "1"
-
-EXTRA_OECONF += "--disable-scrollkeeper"
-
-do_install_append() {
- chown -R root:root ${D}
-}
-
-do_install_append_class-native () {
- sed -i -e 's|^#!.*/usr/bin/env python|#! /usr/bin/env nativepython|' ${D}${bindir}/xml2po
-}
-
-FILES_${PN} += "${datadir}/xml* ${PYTHON_SITEPACKAGES_DIR}/*"
-
-RDEPENDS_${PN} = "bash"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
new file mode 100644
index 000000000..4cfcabd38
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch
@@ -0,0 +1,40 @@
+From 426e38468463a4abb495cf6a269b9635b2107519 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 17 May 2016 13:51:24 +0300
+Subject: [PATCH] glib-gettext.m4: Update AM_GLIB_GNU_GETTEXT to match glib
+
+This avoids
+ error: m4_copy: won't overwrite defined macro: glib_DEFUN
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Inappropriate [No upstream]
+---
+ m4/glib-gettext.m4 | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/m4/glib-gettext.m4 b/m4/glib-gettext.m4
+index 81f8fd2..e2b142b 100644
+--- a/m4/glib-gettext.m4
++++ b/m4/glib-gettext.m4
+@@ -310,7 +310,7 @@ msgstr ""
+ # on various variables needed by the Makefile.in.in installed by
+ # glib-gettextize.
+ dnl
+-glib_DEFUN([GLIB_GNU_GETTEXT],
++AU_DEFUN([GLIB_GNU_GETTEXT],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+
+@@ -381,7 +381,8 @@ glib_DEFUN([GLIB_GNU_GETTEXT],
+ rm -f po/POTFILES
+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+ < $srcdir/po/POTFILES.in > po/POTFILES
+- ])
++ ]
++ [[$0: This macro is deprecated. You should use upstream gettext instead.]])
+
+ # AX_GLIB_DEFINE_LOCALEDIR(VARIABLE)
+ # -------------------------------
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch
deleted file mode 100644
index 416d69864..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-In cross environment we have to prepend the sysroot to the path found by
-pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
-it ends up using the files from host system. Now usually people have gnome installed
-so the build succeeds but if you dont have gnome installed on build host then
-it wont find the files on host system and packages using gnome-doc-utils wont
-compile.
-
-This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
-will be empty
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make
-===================================================================
---- gnome-doc-utils-0.20.10.orig/tools/gnome-doc-utils.make
-+++ gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make
-@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@
- _xml2po ?= `which xml2po`
- _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
-
--_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
--_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
--_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
--_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
--_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
-+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
-+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
-+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
-+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
-
- if ENABLE_SK
- _ENABLE_SK = true
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch
deleted file mode 100644
index 0e196c063..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-We can't use #!/full/path/to/python -u as this can be longer than shebang
-allows for. In order to be appropraite for upstream more work would be
-needed to make sure that the main xml2po code doesn't rely on python
-being invoked with -u (force stdin/out/err to be used raw).
-
-Upstream-Status: Inappropriate [Would break behavior on Windows]
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: gnome-doc-utils-0.20.10/xml2po/xml2po/Makefile.am
-===================================================================
---- gnome-doc-utils-0.20.10.orig/xml2po/xml2po/Makefile.am
-+++ gnome-doc-utils-0.20.10/xml2po/xml2po/Makefile.am
-@@ -7,7 +7,6 @@ CLEANFILES = xml2po
-
- xml2po: xml2po.py.in
- $(AM_V_GEN)sed -e "s/^VERSION =.*/VERSION = \"@VERSION@\"/" \
-- -e "s+^#!.*python.*+#!$(PYTHON)+" \
- < $(srcdir)/xml2po.py.in > xml2po
- $(AM_V_at)chmod +x xml2po
-
-Index: gnome-doc-utils-0.20.10/xml2po/xml2po/xml2po.py.in
-===================================================================
---- gnome-doc-utils-0.20.10.orig/xml2po/xml2po/xml2po.py.in
-+++ gnome-doc-utils-0.20.10/xml2po/xml2po/xml2po.py.in
-@@ -1,4 +1,4 @@
--#!/usr/bin/python -u
-+#!/usr/bin/env python
- # -*- encoding: utf-8 -*-
- # Copyright (c) 2004, 2005, 2006 Danilo Ĺ egan <danilo@gnome.org>.
- # Copyright (c) 2009 Claude Paroz <claude@2xlibre.net>.
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch
deleted file mode 100644
index 9346494e9..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-This adds the -nonet option to xsltproc invocations, which fixes
-compile errors when building the gnome-doc-utils docs.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: gnome-doc-utils-0.20.10/doc/xslt/Makefile.am
-===================================================================
---- gnome-doc-utils-0.20.10.orig/doc/xslt/Makefile.am
-+++ gnome-doc-utils-0.20.10/doc/xslt/Makefile.am
-@@ -21,14 +21,14 @@ all: $(xsldoc_docs) $(xsldoc_xmls)
-
- $(xsldoc_docs): $(xsldoc_xsls) xsldoc.awk xsldoc-fill.xsl
- $(AM_V_GEN)$(GDU_AWK) -f "$(srcdir)/xsldoc.awk" "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \
-- | xsltproc -o "$@" \
-+ | xsltproc -nonet -o "$@" \
- --stringparam basename "$(basename $(notdir $@))" \
- --stringparam xsl_file "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \
- "$(srcdir)/xsldoc-fill.xsl" -
-
- $(xsldoc_xmls): xsldoc-docbook.xsl
- $(xsldoc_xmls): C/%.xml : C/%.xsldoc
-- $(AM_V_GEN)xsltproc -o "$@" \
-+ $(AM_V_GEN)xsltproc -nonet -o "$@" \
- --stringparam basename "$(basename $(notdir $@))" \
- --stringparam xsl_file "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \
- "$(srcdir)/xsldoc-docbook.xsl" "$<"
-@@ -62,7 +62,7 @@ gnome-doc-xslt-check-includes:
- gnome-doc-xslt-check-xsldoc: $(xsldoc_docs)
- @echo "Running xsldoc checks";
- @(echo "<xsldoc>"; cat $(xsldoc_docs); echo "</xsldoc>") \
-- | xsltproc "$(srcdir)/xsldoc-check.xsl" - 1> /dev/null
-+ | xsltproc -nonet "$(srcdir)/xsldoc-check.xsl" - 1> /dev/null
-
- .PHONY: clean-xsldoc
- clean-local: clean_xsldoc
-Index: gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make
-===================================================================
---- gnome-doc-utils-0.20.10.orig/tools/gnome-doc-utils.make
-+++ gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make
-@@ -37,7 +37,7 @@ $(DOC_H_FILE): $(DOC_H_DOCS);
- list='$(DOC_H_DOCS)'; for doc in $$list; do \
- xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \
- if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \
-- xsltproc --path "$$xmlpath" $(_credits) $$doc; \
-+ xsltproc -nonet --path "$$xmlpath" $(_credits) $$doc; \
- done | sort | uniq \
- | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \
- | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp
-@@ -50,7 +50,7 @@ $(DOC_H_FILE): $(DOC_H_DOCS);
- docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \
- | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \
- echo $$xmlpath; \
-- ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
-+ ids=`xsltproc -nonet --xinclude --path "$$xmlpath" $(_ids) $$doc`; \
- for id in $$ids; do \
- echo '#define HELP_'`echo $$docid`'_'`echo $$id \
- | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \
-@@ -197,7 +197,7 @@ $(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : %
- echo "The file '$(_skcontentslist)' does not exist." >&2; \
- echo "Please check your ScrollKeeper installation." >&2; \
- exit 1; }
-- $(GDU_V_DB2OMF)xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
-+ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; }
-
- ## @ _DOC_OMF_HTML
- ## The OMF files for HTML output
-@@ -212,7 +212,7 @@ if ENABLE_SK
- echo "Please check your ScrollKeeper installation." >&2; \
- exit 1; }
- endif
-- $(GDU_V_DB2OMF)xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
-+ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; }
-
- ## @ _DOC_OMF_ALL
- ## All OMF output files to be built
-@@ -267,7 +267,7 @@ _DOC_C_FIGURES = $(if $(DOC_FIGURES),
- ## All HTML documentation in the C locale
- # FIXME: probably have to shell escape to determine the file names
- _DOC_C_HTML = $(foreach f, \
-- $(shell xsltproc --xinclude \
-+ $(shell xsltproc -nonet --xinclude \
- --stringparam db.chunk.basename "$(DOC_MODULE)" \
- $(_chunks) "C/$(DOC_MODULE).xml"), \
- C/$(f).xhtml)
-@@ -393,7 +393,7 @@ _DOC_HTML_ALL = $(if $(filter html HTML,
- _DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml)
-
- $(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS)
-- $(GDU_V_DB2HTM)xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
-+ $(GDU_V_DB2HTM)xsltproc -nonet -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@)
-
-
- ################################################################################
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb
deleted file mode 100644
index 78cc005f9..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require gnome-doc-utils.inc
-LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
- file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI += "file://xsltproc_nonet.patch \
- file://use-usr-bin-env-for-python-in-xml2po.patch \
- file://sysrooted-pkg-config.patch \
- "
-
-SRC_URI[archive.md5sum] = "3c64ad7bacd617b04999e4a168afaac5"
-SRC_URI[archive.sha256sum] = "cb0639ffa9550b6ddf3b62f3b1add92fb92ab4690d351f2353cffe668be8c4a6"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.20.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.20.2.bb
new file mode 100644
index 000000000..c98d8702c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.20.2.bb
@@ -0,0 +1,39 @@
+SUMMARY = "GTK+2 standard themes"
+HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome"
+
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even distro_features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+
+DEPENDS += "intltool-native gtk+"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
+ "
+
+SRC_URI[md5sum] = "adc3b1d57330561fea524842d0c0b485"
+SRC_URI[sha256sum] = "9d0d9c4b2c9f9008301c3c1878ebb95859a735b7fd4a6a518802b9637e4a7915"
+
+EXTRA_OECONF = "--disable-gtk3-engine"
+
+do_install_append() {
+ # Only building Adwaita, remove highcontrast files
+ rm -rf ${D}${prefix}/share/themes/HighContrast \
+ ${D}${prefix}/share/icons
+}
+
+# There could be gnome-theme-highcontrast as well but that requires
+# gtk+3 and includes lots of icons (is also broken with B != S).
+PACKAGES += "gnome-theme-adwaita \
+ gnome-theme-adwaita-dbg \
+ gnome-theme-adwaita-dev"
+
+FILES_gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \
+ ${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so"
+FILES_gnome-theme-adwaita-dev = "${libdir}/gtk-2.0/2.10.0/engines/libadwaita.la"
+FILES_gnome-theme-adwaita-dbg = "${libdir}/gtk-2.0/2.10.0/engines/.debug/libadwaita.so"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
deleted file mode 100644
index 5026d8177..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From a57604e205e6535acd9989444ad1f5f5038f4fba Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 8 Oct 2015 18:30:35 +0300
-Subject: [PATCH 1/4] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR
- environment variable
-
-This environment variable sets the location of sysroot directory in cross-compilation
-environments; if the variable is not set, the prefix will be empty.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Makefile-gir.am | 18 +++++++++---------
- m4/introspection.m4 | 8 ++++----
- 2 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/Makefile-gir.am b/Makefile-gir.am
-index 9aca664..09b9360 100644
---- a/Makefile-gir.am
-+++ b/Makefile-gir.am
-@@ -55,8 +55,8 @@ else
- endif
-
- # glib
--GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
--GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
-+GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
-+GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
-
- GLIB_LIBRARY=glib-2.0
-
-@@ -92,8 +92,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT)
- gir/DBusGLib-1.0.typelib: GObject-2.0.gir
-
- # gobject
--GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
--GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
-+GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
-+GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
-
- GOBJECT_LIBRARY=gobject-2.0
-
-@@ -120,8 +120,8 @@ GObject_2_0_gir_FILES = \
- BUILT_GIRSOURCES += GObject-2.0.gir
-
- # gmodule
--GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
--GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
-+GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
-+GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
-
- GMODULE_LIBRARY=gmodule-2.0
-
-@@ -146,13 +146,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \
- BUILT_GIRSOURCES += GModule-2.0.gir
-
- # gio
--GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
--GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
-+GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
-+GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
-
- GIO_LIBRARY=gio-2.0
-
- if HAVE_GIO_UNIX
--GIO_UNIX_HDRS=$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0/gio/*.h
-+GIO_UNIX_HDRS=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0/gio/*.h
- GIO_UNIX_PACKAGES = gio-unix-2.0
- else
- GIO_UNIX_HDRS=
-diff --git a/m4/introspection.m4 b/m4/introspection.m4
-index d89c3d9..b562266 100644
---- a/m4/introspection.m4
-+++ b/m4/introspection.m4
-@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
- INTROSPECTION_GIRDIR=
- INTROSPECTION_TYPELIBDIR=
- if test "x$found_introspection" = "xyes"; then
-- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-+ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-+ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-+ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-+ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
- fi
- AC_SUBST(INTROSPECTION_SCANNER)
- AC_SUBST(INTROSPECTION_COMPILER)
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch
new file mode 100644
index 000000000..9abaea7e7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch
@@ -0,0 +1,50 @@
+From 3a9d1e5ee0aae56fafec0beba2014c19e4ff310c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 23 Mar 2016 17:07:28 +0200
+Subject: [PATCH 1/5] Revert an incomplete upstream attempt at cross-compile
+ support
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ common.mk | 4 ----
+ giscanner/gdumpparser.py | 6 ------
+ 2 files changed, 10 deletions(-)
+
+diff --git a/common.mk b/common.mk
+index b778f7a..e26c637 100644
+--- a/common.mk
++++ b/common.mk
+@@ -24,12 +24,8 @@ INTROSPECTION_SCANNER_ARGS = \
+ --add-include-path=$(top_builddir) \
+ --add-include-path=$(top_builddir)/gir
+
+-# GI_CROSS_LAUNCHER is the command to use for executing g-ir-compiler.
+-# Normally will be undefined but can be set (e.g. to wine or qemu)
+-# when cross-compiling
+ INTROSPECTION_COMPILER = \
+ env PATH=".libs:$(PATH)" \
+- $(GI_CROSS_LAUNCHER) \
+ $(top_builddir)/g-ir-compiler$(EXEEXT)
+
+ INTROSPECTION_COMPILER_ARGS = \
+diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py
+index 1134f33..9bdc2bc 100644
+--- a/giscanner/gdumpparser.py
++++ b/giscanner/gdumpparser.py
+@@ -162,12 +162,6 @@ blob containing data gleaned from GObject's primitive introspection."""
+ out_path = os.path.join(self._binary.tmpdir, 'dump.xml')
+
+ args = []
+-
+- # Prepend the launcher command and arguments, if defined
+- launcher = os.environ.get('GI_CROSS_LAUNCHER')
+- if launcher:
+- args.extend(launcher.split())
+-
+ args.extend(self._binary.args)
+ args.append('--introspect-dump=%s,%s' % (in_path, out_path))
+
+--
+2.7.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch
deleted file mode 100644
index 6afefabc7..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch
+++ /dev/null
@@ -1,204 +0,0 @@
-From c6e4f83c373b577166a7e46130ce8ff025ee8515 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 19 Oct 2015 18:29:21 +0300
-Subject: [PATCH] configure.ac: add host-gi, gi-cross-wrapper, gi-ldd-wrapper
- and introspection-data options
-
-With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner)
-that are already installed in the host system will be used for building the source tree.
-
-With the second option, g-ir-scanner will be instructed to use an executable
-wrapper to run binaries it's producing, and g-ir-compiler will be run
-through the same wrapper (host system's g-ir-compiler cannot be used because
-it's producing architecture-specific output).
-
-With the third option, giscanner will be instructed to use a special ldd
-command instead of system's ldd (which does not work when the binary to inspect
-is compiled for a different architecture).
-
-With the fourth option, it is possible to disable building of introspection data
-(.gir and .typelib files), which may be difficult or impossible in cross-compilation
-environments, because of lack of emulation (or native hardware) for the target architecture
-on which the target binaries can be run.
-
-These options are useful when cross-compiling for a different target architecture.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Makefile.am | 2 ++
- common.mk | 39 +++++++++++++++++++++++++++++++++++++++
- configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++
- tests/Makefile.am | 5 ++++-
- 4 files changed, 87 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 437c673..1eb3545 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -21,7 +21,9 @@ include Makefile-cmph.am
- include Makefile-girepository.am
- include Makefile-giscanner.am
- include Makefile-examples.am
-+if BUILD_INTROSPECTION_DATA
- include Makefile-gir.am
-+endif
- include Makefile-tools.am
- include Makefile-msvcproj.am
-
-diff --git a/common.mk b/common.mk
-index e26c637..9f3a65f 100644
---- a/common.mk
-+++ b/common.mk
-@@ -6,6 +6,15 @@
- # module itself.
- #
-
-+if USE_HOST_GI
-+INTROSPECTION_SCANNER = \
-+ env PATH="$(PATH)" \
-+ LPATH=.libs \
-+ CC="$(CC)" \
-+ PYTHONPATH=$(top_builddir):$(top_srcdir) \
-+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
-+ g-ir-scanner
-+else
- INTROSPECTION_SCANNER = \
- env PATH=".libs:$(PATH)" \
- LPATH=.libs \
-@@ -14,9 +23,24 @@ INTROSPECTION_SCANNER = \
- UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
- UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
- $(top_builddir)/g-ir-scanner
-+endif
-+
-+if USE_CROSS_WRAPPER
-+CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER)
-+else
-+CROSS_WRAPPER_ARG =
-+endif
-+
-+if USE_LDD_WRAPPER
-+LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER)
-+else
-+LDD_WRAPPER_ARG =
-+endif
-
- INTROSPECTION_SCANNER_ARGS = \
- --verbose \
-+ $(CROSS_WRAPPER_ARG) \
-+ $(LDD_WRAPPER_ARG) \
- -I$(top_srcdir) \
- --add-include-path=$(srcdir) \
- --add-include-path=$(top_srcdir)/gir \
-@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \
- --add-include-path=$(top_builddir) \
- --add-include-path=$(top_builddir)/gir
-
-+if USE_CROSS_WRAPPER
-+INTROSPECTION_COMPILER = \
-+ env PATH=".libs:$(PATH)" \
-+ $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT)
-+else
- INTROSPECTION_COMPILER = \
- env PATH=".libs:$(PATH)" \
- $(top_builddir)/g-ir-compiler$(EXEEXT)
-+endif
-
- INTROSPECTION_COMPILER_ARGS = \
- --includedir=$(srcdir) \
-@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \
- --includedir=$(top_builddir) \
- --includedir=$(top_builddir)/gir
-
-+if USE_HOST_GI
-+INTROSPECTION_DOCTOOL = \
-+ env PATH="$(PATH)" \
-+ LPATH=.libs \
-+ PYTHONPATH=$(top_builddir):$(top_srcdir) \
-+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
-+ g-ir-doc-tool
-+else
- INTROSPECTION_DOCTOOL = \
- env PATH=".libs:$(PATH)" \
- LPATH=.libs \
-@@ -42,6 +80,7 @@ INTROSPECTION_DOCTOOL = \
- UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
- UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
- $(top_builddir)/g-ir-doc-tool
-+endif
-
- INTROSPECTION_DOCTOOL_ARGS = \
- --add-include-path=$(srcdir) \
-diff --git a/configure.ac b/configure.ac
-index b11596b..d78ae52 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -347,6 +347,48 @@ fi
-
- AC_SUBST(EXTRA_LINK_FLAGS)
-
-+AC_ARG_ENABLE([host-gi],
-+[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])],
-+[case "${enableval}" in
-+ yes) host_gi=true ;;
-+ no) host_gi=false ;;
-+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;;
-+esac],[host_gi=false])
-+AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue])
-+
-+AC_ARG_ENABLE([gi-cross-wrapper],
-+[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])],
-+[
-+GI_CROSS_WRAPPER="${enableval}"
-+use_wrapper=true
-+],[
-+GI_CROSS_WRAPPER=""
-+use_wrapper=false
-+])
-+AC_SUBST(GI_CROSS_WRAPPER)
-+AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue])
-+
-+AC_ARG_ENABLE([gi-ldd-wrapper],
-+[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])],
-+[
-+GI_LDD_WRAPPER="${enableval}"
-+use_ldd_wrapper=true
-+],[
-+GI_LDD_WRAPPER=""
-+use_ldd_wrapper=false
-+])
-+AC_SUBST(GI_LDD_WRAPPER)
-+AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue])
-+
-+AC_ARG_ENABLE([introspection-data],
-+[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])],
-+[case "${enableval}" in
-+ yes) introspection_data=true ;;
-+ no) introspection_data=false ;;
-+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;;
-+esac],[introspection_data=true])
-+AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue])
-+
- AC_CONFIG_FILES([
- Makefile
- tests/Makefile
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index bdd0fa7..75dd3c9 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -1,6 +1,9 @@
- include $(top_srcdir)/common.mk
-
--SUBDIRS = . scanner repository offsets warn
-+SUBDIRS = . scanner repository warn
-+if BUILD_INTROSPECTION_DATA
-+SUBDIRS += offsets
-+endif
-
- EXTRA_DIST=
- BUILT_SOURCES=
---
-2.6.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
deleted file mode 100644
index f923dcccf..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 291a92f200981a772b2d03739dffb5926a82c5a5 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 30 Oct 2015 16:28:46 +0200
-Subject: [PATCH 1/2] giscanner: add a --use-ldd-wrapper option
-
-This is useful in cross-compile environments where system's ldd
-command does not work on binaries built for a different architecture
-
-Upstream-Status: Pending [review in oe-core]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- giscanner/scannermain.py | 3 +++
- giscanner/shlibs.py | 4 +++-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index e37d3e3..b8fff5f 100755
---- a/giscanner/scannermain.py
-+++ b/giscanner/scannermain.py
-@@ -121,6 +121,9 @@ def _get_option_parser():
- parser.add_option("", "--use-binary-wrapper",
- action="store", dest="wrapper", default=None,
- help="wrapper to use for running programs (useful when cross-compiling)")
-+ parser.add_option("", "--use-ldd-wrapper",
-+ action="store", dest="ldd_wrapper", default=None,
-+ help="wrapper to use instead of ldd (useful when cross-compiling)")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
-diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
-index 1ad75ee..41117c6 100644
---- a/giscanner/shlibs.py
-+++ b/giscanner/shlibs.py
-@@ -100,7 +100,9 @@ def _resolve_non_libtool(options, binary, libraries):
- args.extend(libtool)
- args.append('--mode=execute')
- platform_system = platform.system()
-- if platform_system == 'Darwin':
-+ if options.ldd_wrapper:
-+ args.extend([options.ldd_wrapper, binary.args[0]])
-+ elif platform_system == 'Darwin':
- args.extend(['otool', '-L', binary.args[0]])
- else:
- args.extend(['ldd', binary.args[0]])
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
deleted file mode 100644
index e1241a949..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 2322f36056265f809aaffb74fcf5ac0c83129752 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 19 Oct 2015 18:26:40 +0300
-Subject: [PATCH 2/4] giscanner: add --use-binary-wrapper option
-
-With this option, giscanner will use a wrapper executable to run
-binaries it's producing, instead of running them directly. This
-is useful when binaries are cross-compiled and cannot be run directly,
-but they can be run using for example QEMU emulation.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- giscanner/scannermain.py | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
-index b36284d..e37d3e3 100755
---- a/giscanner/scannermain.py
-+++ b/giscanner/scannermain.py
-@@ -118,6 +118,9 @@ def _get_option_parser():
- parser.add_option("", "--program",
- action="store", dest="program", default=None,
- help="program to execute")
-+ parser.add_option("", "--use-binary-wrapper",
-+ action="store", dest="wrapper", default=None,
-+ help="wrapper to use for running programs (useful when cross-compiling)")
- parser.add_option("", "--program-arg",
- action="append", dest="program_args", default=[],
- help="extra arguments to program")
-@@ -406,6 +409,17 @@ def create_binary(transformer, options, args):
- gdump_parser.get_error_quark_functions())
-
- shlibs = resolve_shlibs(options, binary, options.libraries)
-+ if options.wrapper:
-+ # The wrapper needs the binary itself, not the libtool wrapper script,
-+ # so we check if libtool has sneaked the binary into .libs subdirectory
-+ # and adjust the path accordingly
-+ import os.path
-+ dir_name, binary_name = os.path.split(binary.args[0])
-+ libtool_binary = os.path.join(dir_name, '.libs', binary_name)
-+ if os.path.exists(libtool_binary):
-+ binary.args[0] = libtool_binary
-+ # Then prepend the wrapper to the command line to execute
-+ binary.args = [options.wrapper] + binary.args
- gdump_parser.set_introspection_binary(binary)
- gdump_parser.parse()
- return shlibs
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch
new file mode 100644
index 000000000..48a0c85f0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch
@@ -0,0 +1,203 @@
+From b1503fe2693d602b3e24e4b832dc0934960d5d22 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 19 Oct 2015 18:29:21 +0300
+Subject: [PATCH 2/5] configure.ac: add host-gi, gi-cross-wrapper,
+ gi-ldd-wrapper and introspection-data options
+
+With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner)
+that are already installed in the host system will be used for building the source tree.
+
+With the second option, g-ir-scanner will be instructed to use an executable
+wrapper to run binaries it's producing, and g-ir-compiler will be run
+through the same wrapper (host system's g-ir-compiler cannot be used because
+it's producing architecture-specific output).
+
+With the third option, giscanner will be instructed to use a special ldd
+command instead of system's ldd (which does not work when the binary to inspect
+is compiled for a different architecture).
+
+With the fourth option, it is possible to disable building of introspection data
+(.gir and .typelib files), which may be difficult or impossible in cross-compilation
+environments, because of lack of emulation (or native hardware) for the target architecture
+on which the target binaries can be run.
+
+These options are useful when cross-compiling for a different target architecture.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 2 ++
+ common.mk | 39 +++++++++++++++++++++++++++++++++++++++
+ configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++
+ tests/Makefile.am | 5 ++++-
+ 4 files changed, 87 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b080a89..ce8d29b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -21,7 +21,9 @@ include Makefile-cmph.am
+ include Makefile-girepository.am
+ include Makefile-giscanner.am
+ include Makefile-examples.am
++if BUILD_INTROSPECTION_DATA
+ include Makefile-gir.am
++endif
+ include Makefile-tools.am
+ include Makefile-msvcproj.am
+
+diff --git a/common.mk b/common.mk
+index e26c637..9f3a65f 100644
+--- a/common.mk
++++ b/common.mk
+@@ -6,6 +6,15 @@
+ # module itself.
+ #
+
++if USE_HOST_GI
++INTROSPECTION_SCANNER = \
++ env PATH="$(PATH)" \
++ LPATH=.libs \
++ CC="$(CC)" \
++ PYTHONPATH=$(top_builddir):$(top_srcdir) \
++ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
++ g-ir-scanner
++else
+ INTROSPECTION_SCANNER = \
+ env PATH=".libs:$(PATH)" \
+ LPATH=.libs \
+@@ -14,9 +23,24 @@ INTROSPECTION_SCANNER = \
+ UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
+ $(top_builddir)/g-ir-scanner
++endif
++
++if USE_CROSS_WRAPPER
++CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER)
++else
++CROSS_WRAPPER_ARG =
++endif
++
++if USE_LDD_WRAPPER
++LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER)
++else
++LDD_WRAPPER_ARG =
++endif
+
+ INTROSPECTION_SCANNER_ARGS = \
+ --verbose \
++ $(CROSS_WRAPPER_ARG) \
++ $(LDD_WRAPPER_ARG) \
+ -I$(top_srcdir) \
+ --add-include-path=$(srcdir) \
+ --add-include-path=$(top_srcdir)/gir \
+@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \
+ --add-include-path=$(top_builddir) \
+ --add-include-path=$(top_builddir)/gir
+
++if USE_CROSS_WRAPPER
++INTROSPECTION_COMPILER = \
++ env PATH=".libs:$(PATH)" \
++ $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT)
++else
+ INTROSPECTION_COMPILER = \
+ env PATH=".libs:$(PATH)" \
+ $(top_builddir)/g-ir-compiler$(EXEEXT)
++endif
+
+ INTROSPECTION_COMPILER_ARGS = \
+ --includedir=$(srcdir) \
+@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \
+ --includedir=$(top_builddir) \
+ --includedir=$(top_builddir)/gir
+
++if USE_HOST_GI
++INTROSPECTION_DOCTOOL = \
++ env PATH="$(PATH)" \
++ LPATH=.libs \
++ PYTHONPATH=$(top_builddir):$(top_srcdir) \
++ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
++ g-ir-doc-tool
++else
+ INTROSPECTION_DOCTOOL = \
+ env PATH=".libs:$(PATH)" \
+ LPATH=.libs \
+@@ -42,6 +80,7 @@ INTROSPECTION_DOCTOOL = \
+ UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+ UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
+ $(top_builddir)/g-ir-doc-tool
++endif
+
+ INTROSPECTION_DOCTOOL_ARGS = \
+ --add-include-path=$(srcdir) \
+diff --git a/configure.ac b/configure.ac
+index 6c91fa5..21340a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -360,6 +360,48 @@ fi
+
+ AC_SUBST(EXTRA_LINK_FLAGS)
+
++AC_ARG_ENABLE([host-gi],
++[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])],
++[case "${enableval}" in
++ yes) host_gi=true ;;
++ no) host_gi=false ;;
++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;;
++esac],[host_gi=false])
++AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue])
++
++AC_ARG_ENABLE([gi-cross-wrapper],
++[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])],
++[
++GI_CROSS_WRAPPER="${enableval}"
++use_wrapper=true
++],[
++GI_CROSS_WRAPPER=""
++use_wrapper=false
++])
++AC_SUBST(GI_CROSS_WRAPPER)
++AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue])
++
++AC_ARG_ENABLE([gi-ldd-wrapper],
++[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])],
++[
++GI_LDD_WRAPPER="${enableval}"
++use_ldd_wrapper=true
++],[
++GI_LDD_WRAPPER=""
++use_ldd_wrapper=false
++])
++AC_SUBST(GI_LDD_WRAPPER)
++AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue])
++
++AC_ARG_ENABLE([introspection-data],
++[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])],
++[case "${enableval}" in
++ yes) introspection_data=true ;;
++ no) introspection_data=false ;;
++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;;
++esac],[introspection_data=true])
++AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue])
++
+ AC_CONFIG_FILES([
+ Makefile
+ tests/Makefile
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index bdd0fa7..75dd3c9 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -1,6 +1,9 @@
+ include $(top_srcdir)/common.mk
+
+-SUBDIRS = . scanner repository offsets warn
++SUBDIRS = . scanner repository warn
++if BUILD_INTROSPECTION_DATA
++SUBDIRS += offsets
++endif
+
+ EXTRA_DIST=
+ BUILT_SOURCES=
+--
+2.7.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch
new file mode 100644
index 000000000..f21eaca85
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch
@@ -0,0 +1,51 @@
+From 704b888d0abfb01067352c40156f49f655691c7c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 19 Oct 2015 18:26:40 +0300
+Subject: [PATCH 3/5] giscanner: add --use-binary-wrapper option
+
+With this option, giscanner will use a wrapper executable to run
+binaries it's producing, instead of running them directly. This
+is useful when binaries are cross-compiled and cannot be run directly,
+but they can be run using for example QEMU emulation.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ giscanner/scannermain.py | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index 633496f..d684cd0 100755
+--- a/giscanner/scannermain.py
++++ b/giscanner/scannermain.py
+@@ -124,6 +124,9 @@ def _get_option_parser():
+ parser.add_option("", "--program",
+ action="store", dest="program", default=None,
+ help="program to execute")
++ parser.add_option("", "--use-binary-wrapper",
++ action="store", dest="wrapper", default=None,
++ help="wrapper to use for running programs (useful when cross-compiling)")
+ parser.add_option("", "--program-arg",
+ action="append", dest="program_args", default=[],
+ help="extra arguments to program")
+@@ -419,6 +422,17 @@ def create_binary(transformer, options, args):
+ gdump_parser.get_error_quark_functions())
+
+ shlibs = resolve_shlibs(options, binary, options.libraries)
++ if options.wrapper:
++ # The wrapper needs the binary itself, not the libtool wrapper script,
++ # so we check if libtool has sneaked the binary into .libs subdirectory
++ # and adjust the path accordingly
++ import os.path
++ dir_name, binary_name = os.path.split(binary.args[0])
++ libtool_binary = os.path.join(dir_name, '.libs', binary_name)
++ if os.path.exists(libtool_binary):
++ binary.args[0] = libtool_binary
++ # Then prepend the wrapper to the command line to execute
++ binary.args = [options.wrapper] + binary.args
+ gdump_parser.set_introspection_binary(binary)
+ gdump_parser.parse()
+ return shlibs
+--
+2.7.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch
new file mode 100644
index 000000000..afb71e767
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch
@@ -0,0 +1,47 @@
+From d4ad57fd4a32c4f0d2f0522a3090ef940746431b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 30 Oct 2015 16:28:46 +0200
+Subject: [PATCH 4/5] giscanner: add a --use-ldd-wrapper option
+
+This is useful in cross-compile environments where system's ldd
+command does not work on binaries built for a different architecture
+
+Upstream-Status: Pending [review in oe-core]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ giscanner/scannermain.py | 3 +++
+ giscanner/shlibs.py | 4 +++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index d684cd0..1b3b369 100755
+--- a/giscanner/scannermain.py
++++ b/giscanner/scannermain.py
+@@ -127,6 +127,9 @@ def _get_option_parser():
+ parser.add_option("", "--use-binary-wrapper",
+ action="store", dest="wrapper", default=None,
+ help="wrapper to use for running programs (useful when cross-compiling)")
++ parser.add_option("", "--use-ldd-wrapper",
++ action="store", dest="ldd_wrapper", default=None,
++ help="wrapper to use instead of ldd (useful when cross-compiling)")
+ parser.add_option("", "--program-arg",
+ action="append", dest="program_args", default=[],
+ help="extra arguments to program")
+diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
+index c93d20c..c5b5942 100644
+--- a/giscanner/shlibs.py
++++ b/giscanner/shlibs.py
+@@ -105,7 +105,9 @@ def _resolve_non_libtool(options, binary, libraries):
+ args.extend(libtool)
+ args.append('--mode=execute')
+ platform_system = platform.system()
+- if platform_system == 'Darwin':
++ if options.ldd_wrapper:
++ args.extend([options.ldd_wrapper, binary.args[0]])
++ elif platform_system == 'Darwin':
+ args.extend(['otool', '-L', binary.args[0]])
+ else:
+ args.extend(['ldd', binary.args[0]])
+--
+2.7.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
new file mode 100644
index 000000000..47a18ec84
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
@@ -0,0 +1,96 @@
+From e08b3677dd04d6ec407ba8f74f601b2d51310eff Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 8 Oct 2015 18:30:35 +0300
+Subject: [PATCH 5/5] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR
+ environment variable
+
+This environment variable sets the location of sysroot directory in cross-compilation
+environments; if the variable is not set, the prefix will be empty.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile-gir.am | 18 +++++++++---------
+ m4/introspection.m4 | 8 ++++----
+ 2 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/Makefile-gir.am b/Makefile-gir.am
+index a09260a..ba6e89e 100644
+--- a/Makefile-gir.am
++++ b/Makefile-gir.am
+@@ -55,8 +55,8 @@ else
+ endif
+
+ # glib
+-GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
+-GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
++GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
++GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
+
+ GLIB_LIBRARY=glib-2.0
+
+@@ -92,8 +92,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT)
+ gir/DBusGLib-1.0.typelib: GObject-2.0.gir
+
+ # gobject
+-GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
+-GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
++GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
++GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
+
+ GOBJECT_LIBRARY=gobject-2.0
+
+@@ -120,8 +120,8 @@ GObject_2_0_gir_FILES = \
+ BUILT_GIRSOURCES += GObject-2.0.gir
+
+ # gmodule
+-GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
+-GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
++GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
++GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
+
+ GMODULE_LIBRARY=gmodule-2.0
+
+@@ -146,13 +146,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \
+ BUILT_GIRSOURCES += GModule-2.0.gir
+
+ # gio
+-GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
+-GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
++GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
++GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
+
+ GIO_LIBRARY=gio-2.0
+
+ if HAVE_GIO_UNIX
+-GIO_UNIX_INCLUDEDIR = $(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0
++GIO_UNIX_INCLUDEDIR = $(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0
+ GIO_UNIX_HDRS = $(GIO_UNIX_INCLUDEDIR)/gio/*.h
+ GIO_UNIX_PACKAGES = gio-unix-2.0
+ else
+diff --git a/m4/introspection.m4 b/m4/introspection.m4
+index d89c3d9..b562266 100644
+--- a/m4/introspection.m4
++++ b/m4/introspection.m4
+@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+ INTROSPECTION_GIRDIR=
+ INTROSPECTION_TYPELIBDIR=
+ if test "x$found_introspection" = "xyes"; then
+- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
++ INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
++ INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
++ INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
++ INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+ fi
+ AC_SUBST(INTROSPECTION_SCANNER)
+ AC_SUBST(INTROSPECTION_COMPILER)
+--
+2.7.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb
deleted file mode 100644
index 9b16147da..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb
+++ /dev/null
@@ -1,163 +0,0 @@
-HOMEPAGE = "http://gnome.org"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "libs"
-LICENSE = "LGPLv2+ & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=90d577535a3898e1ae5dbf0ae3509a8c \
- file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \
- file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \
- file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.46/${BPN}-${PV}.tar.xz \
- file://0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
- file://0001-giscanner-add-use-binary-wrapper-option.patch \
- file://0001-giscanner-add-a-use-ldd-wrapper-option.patch \
- file://0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch \
- "
-SRC_URI[md5sum] = "adb40a31c7c80b65b0f4c8fd71b493dc"
-SRC_URI[sha256sum] = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233"
-
-inherit autotools pkgconfig gtk-doc pythonnative qemu gobject-introspection-data
-BBCLASSEXTEND = "native"
-
-# necessary to let the call for python-config from configure.ac succeed
-export BUILD_SYS
-export HOST_SYS
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-# needed for writing out the qemu wrapper script
-export STAGING_DIR_HOST
-export B
-
-DEPENDS_append = " libffi zlib glib-2.0 python"
-
-# target build needs qemu to run temporary introspection binaries created
-# on the fly by g-ir-scanner and a native version of itself to run
-# native versions of its own tools during build.
-# Also prelink-rtld is used to find out library dependencies of introspection binaries
-# (standard ldd doesn't work when cross-compiling).
-DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native"
-
-SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir"
-
-do_configure_prepend_class-native() {
- # Tweak the native python scripts so that they don't refer to the
- # full path of native python binary (the solution is taken from glib-2.0 recipe)
- # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes)
- sed -i -e '1s,#!.*,#!${USRBINPATH}/env nativepython,' ${S}/tools/g-ir-tool-template.in
-}
-
-do_configure_prepend_class-target() {
- # Write out a qemu wrapper that will be given to gi-scanner so that it
- # can run target helper binaries through that.
- qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
- cat > ${B}/g-ir-scanner-qemuwrapper << EOF
-#!/bin/sh
-# Use a modules directory which doesn't exist so we don't load random things
-# which may then get deleted (or their dependencies) and potentially segfault
-export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
-
-$qemu_binary "\$@"
-if [ \$? -ne 0 ]; then
- echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
- echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
- exit 1
-fi
-EOF
- chmod +x ${B}/g-ir-scanner-qemuwrapper
-
- # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
- # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
- # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
- # from the target sysroot.
- cat > ${B}/g-ir-scanner-wrapper << EOF
-#!/bin/sh
-# This prevents g-ir-scanner from writing cache data to $HOME
-export GI_SCANNER_DISABLE_CACHE=1
-
-g-ir-scanner --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
-EOF
- chmod +x ${B}/g-ir-scanner-wrapper
-
- # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu.
- # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent.
- cat > ${B}/g-ir-compiler-wrapper << EOF
-#!/bin/sh
-${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@"
-EOF
- chmod +x ${B}/g-ir-compiler-wrapper
-
- # Write out a wrapper to use instead of ldd, which does not work when a binary is built
- # for a different architecture
- cat > ${B}/g-ir-scanner-lddwrapper << EOF
-#!/bin/sh
-prelink-rtld --root=$STAGING_DIR_HOST "\$@"
-EOF
- chmod +x ${B}/g-ir-scanner-lddwrapper
-
- # Also tweak the target python scripts so that they don't refer to the
- # native version of python binary (the solution is taken from glib-2.0 recipe)
- sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/tools/g-ir-tool-template.in
-}
-
-# Configure target build to use native tools of itself and to use a qemu wrapper
-# and optionally to generate introspection data
-EXTRA_OECONF_class-target += "--enable-host-gi \
- --enable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \
- --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \
- ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \
- "
-
-
-do_compile_prepend_class-target() {
- # This prevents g-ir-scanner from writing cache data to $HOME
- export GI_SCANNER_DISABLE_CACHE=1
-
- # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise
- export GIR_EXTRA_LIBS_PATH=$B/.libs
-}
-
-# Our wrappers need to be available system-wide, because they will be used
-# to build introspection files for all other gobject-based packages
-do_install_append_class-target() {
- install -d ${D}${bindir}/
- install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/
- install ${B}/g-ir-scanner-wrapper ${D}${bindir}/
- install ${B}/g-ir-compiler-wrapper ${D}${bindir}/
- install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/
-}
-
-# .typelib files are needed at runtime and so they go to the main package
-FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib"
-
-# .gir files go to dev package, as they're needed for developing (but not for running)
-# things that depends on introspection.
-FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
-
-# These are used by gobject-based packages
-# to generate transient introspection binaries
-FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \
- ${datadir}/gobject-introspection-1.0/Makefile.introspection"
-
-# These are used by dependent packages (e.g. pygobject) to build their
-# testsuites.
-FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \
- ${datadir}/gobject-introspection-1.0/tests/*.h"
-
-FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
-FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
-
-# we need target versions of introspection tools in sysroot so that they can be run via qemu
-# when building introspection files in other packages
-SYSROOT_PREPROCESS_FUNCS_append_class-target += "gi_binaries_sysroot_preprocess"
-
-gi_binaries_sysroot_preprocess() {
- sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir}
-
- # Also, tweak the binary names in introspection pkgconfig file, so that it picks up our
- # wrappers which do the cross-compile and qemu magic.
- sed -i \
- -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \
- -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \
- ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc
-}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb
new file mode 100644
index 000000000..abaa48579
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.48.0.bb
@@ -0,0 +1,173 @@
+SUMMARY = "Middleware layer between GObject-using C libraries and language bindings"
+HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90d577535a3898e1ae5dbf0ae3509a8c \
+ file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \
+ file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \
+ file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/1.48/${BPN}-${PV}.tar.xz \
+ file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \
+ file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \
+ file://0003-giscanner-add-use-binary-wrapper-option.patch \
+ file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \
+ file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
+ "
+SRC_URI[md5sum] = "01301fa9019667d48e927353e08bc218"
+SRC_URI[sha256sum] = "fa275aaccdbfc91ec0bc9a6fd0562051acdba731e7d584b64a277fec60e75877"
+
+inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even
+BBCLASSEXTEND = "native"
+
+# needed for writing out the qemu wrapper script
+export STAGING_DIR_HOST
+export B
+
+DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native"
+
+# target build needs qemu to run temporary introspection binaries created
+# on the fly by g-ir-scanner and a native version of itself to run
+# native versions of its own tools during build.
+# Also prelink-rtld is used to find out library dependencies of introspection binaries
+# (standard ldd doesn't work when cross-compiling).
+DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native"
+
+SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir"
+
+do_configure_prepend_class-native() {
+ # Tweak the native python scripts so that they don't refer to the
+ # full path of native python binary (the solution is taken from glib-2.0 recipe)
+ # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes)
+ sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in
+}
+
+do_configure_prepend_class-target() {
+ # Write out a qemu wrapper that will be given to gi-scanner so that it
+ # can run target helper binaries through that.
+ qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
+ cat > ${B}/g-ir-scanner-qemuwrapper << EOF
+#!/bin/sh
+# Use a modules directory which doesn't exist so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
+
+$qemu_binary "\$@"
+if [ \$? -ne 0 ]; then
+ echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
+ echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
+ exit 1
+fi
+EOF
+ chmod +x ${B}/g-ir-scanner-qemuwrapper
+
+ # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
+ # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
+ # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
+ # from the target sysroot.
+ cat > ${B}/g-ir-scanner-wrapper << EOF
+#!/bin/sh
+# This prevents g-ir-scanner from writing cache data to $HOME
+export GI_SCANNER_DISABLE_CACHE=1
+
+g-ir-scanner --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
+EOF
+ chmod +x ${B}/g-ir-scanner-wrapper
+
+ # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu.
+ # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent.
+ cat > ${B}/g-ir-compiler-wrapper << EOF
+#!/bin/sh
+${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@"
+EOF
+ chmod +x ${B}/g-ir-compiler-wrapper
+
+ # Write out a wrapper to use instead of ldd, which does not work when a binary is built
+ # for a different architecture
+ cat > ${B}/g-ir-scanner-lddwrapper << EOF
+#!/bin/sh
+prelink-rtld --root=$STAGING_DIR_HOST "\$@"
+EOF
+ chmod +x ${B}/g-ir-scanner-lddwrapper
+
+ # Also tweak the target python scripts so that they don't refer to the
+ # native version of python binary (the solution is taken from glib-2.0 recipe)
+ sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in
+}
+
+# Configure target build to use native tools of itself and to use a qemu wrapper
+# and optionally to generate introspection data
+EXTRA_OECONF_class-target += "--enable-host-gi \
+ --enable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \
+ --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \
+ "
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[doctool] = "--enable-doctool,--disable-doctool,python3-mako,"
+
+do_compile_prepend() {
+ # This prevents g-ir-scanner from writing cache data to $HOME
+ export GI_SCANNER_DISABLE_CACHE=1
+
+ # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise
+ export GIR_EXTRA_LIBS_PATH=$B/.libs
+}
+
+# Our wrappers need to be available system-wide, because they will be used
+# to build introspection files for all other gobject-based packages
+do_install_append_class-target() {
+ install -d ${D}${bindir}/
+ install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/
+ install ${B}/g-ir-scanner-wrapper ${D}${bindir}/
+ install ${B}/g-ir-compiler-wrapper ${D}${bindir}/
+ install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/
+}
+
+# .typelib files are needed at runtime and so they go to the main package
+FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib"
+
+# .gir files go to dev package, as they're needed for developing (but not for running)
+# things that depends on introspection.
+FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
+
+# These are used by gobject-based packages
+# to generate transient introspection binaries
+FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \
+ ${datadir}/gobject-introspection-1.0/Makefile.introspection"
+
+# These are used by dependent packages (e.g. pygobject) to build their
+# testsuites.
+FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \
+ ${datadir}/gobject-introspection-1.0/tests/*.h"
+
+FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
+FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
+
+# we need target versions of introspection tools in sysroot so that they can be run via qemu
+# when building introspection files in other packages
+SYSROOT_DIRS_append_class-target = " ${bindir}"
+
+SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess"
+gi_binaries_sysroot_preprocess() {
+ # Tweak the binary names in the introspection pkgconfig file, so that it
+ # picks up our wrappers which do the cross-compile and qemu magic.
+ sed -i \
+ -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \
+ -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \
+ ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc
+}
+
+# Need to ensure ld.so.conf exists so prelink-native works
+# both before we build and if we install from sstate
+do_configure[prefuncs] += "gobject_introspection_preconfigure"
+python gobject_introspection_preconfigure () {
+ oe.utils.write_ld_so_conf(d)
+}
+
+SSTATEPOSTINSTFUNCS += "gobject_introspection_postinst"
+python gobject_introspection_postinst () {
+ if d.getVar("BB_CURRENTTASK", True).startswith("populate_sysroot"):
+ oe.utils.write_ld_so_conf(d)
+}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb b/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb
deleted file mode 100644
index 25fdabade..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "GNOME desktop-wide GSettings schemas"
-HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "glib-2.0 intltool-native"
-
-inherit gnomebase gsettings gettext gobject-introspection
-
-SRC_URI[archive.md5sum] = "fdc92abcffe46821be423193b275cf8b"
-SRC_URI[archive.sha256sum] = "9084989b75ca9b3fc5984c8a0d297a93d3d124f51cadd2bdaaaa75a783c80635"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb
new file mode 100644
index 000000000..bb924ce74
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.20.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "GNOME desktop-wide GSettings schemas"
+HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "glib-2.0 intltool-native"
+
+inherit gnomebase gsettings gettext gobject-introspection upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "c5d87ea480aa9bf66b134ddb5b8ea0f8"
+SRC_URI[archive.sha256sum] = "55a41b533c0ab955e0a36a84d73829451c88b027d8d719955d8f695c35c6d9c1"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc
index 5bbfe6b8e..c240baa2c 100644
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc
@@ -58,7 +58,14 @@ FILES_libgail = " \
${libdir}/gtk-2.0/modules/libferret.so \
"
-GTKBASE_RRECOMMENDS ?= "liberation-fonts gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm shared-mime-info"
+GTKBASE_RRECOMMENDS ?= "liberation-fonts \
+ gdk-pixbuf-loader-png \
+ gdk-pixbuf-loader-jpeg \
+ gdk-pixbuf-loader-gif \
+ gdk-pixbuf-loader-xpm \
+ shared-mime-info \
+ gnome-theme-adwaita \
+ "
GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc
index bd29300d5..83e9b927b 100644
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -6,7 +6,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/"
SECTION = "libs"
DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
- docbook-utils-native gdk-pixbuf-native libepoxy"
+ docbook-utils-native gdk-pixbuf-native"
LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
@@ -21,6 +21,8 @@ do_configure_prepend() {
# Do this because the configure script is running ./libtool directly
rm -f libtool
ln -s ${TARGET_PREFIX}libtool libtool
+ #delete a file that will get confused with generated one in ${B}
+ rm -f ${S}/gtk/gtktypefuncs.c
}
EXTRA_OECONF += " \
@@ -29,19 +31,25 @@ EXTRA_OECONF += " \
--enable-modules \
--disable-cups \
--disable-colord \
-"
+ WAYLAND_PROTOCOLS_SYSROOT_DIR=${STAGING_DIR}/${MACHINE} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "--disable-gtk-doc", d)} \
+ "
+EXTRA_OECONF[vardepsexclude] = "MACHINE"
do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
}
PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "opengl", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "opengl x11", "glx", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}"
PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
+# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
+PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy"
PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl"
-PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa wayland-native"
+PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols libxkbcommon virtual/mesa wayland-native"
do_install_append() {
mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0
@@ -61,10 +69,6 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \
${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \
${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png"
-# The demo uses PNG files and mime type sniffing, so ensure that these
-# dependencies are present.
-RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info"
-
FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \
${bindir}/gtk-query-immodules-3.0 \
${bindir}/gtk-launch \
@@ -75,6 +79,7 @@ FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \
FILES_${PN}-dev += " \
${datadir}/gtk-3.0/gtkbuilder.rng \
${datadir}/gtk-3.0/include \
+ ${datadir}/gettext/its \
${libdir}/gtk-3.0/include \
${libdir}/gtk-3.0/${LIBV}/loaders/*.la \
${libdir}/gtk-3.0/${LIBV}/immodules/*.la \
@@ -84,9 +89,22 @@ FILES_${PN}-dev += " \
${bindir}/gtk-builder-convert \
${bindir}/gtk-encode-symbolic-svg \
${bindir}/gtk-builder-tool \
+ ${bindir}/gtk-query-settings \
"
-RRECOMMENDS_${PN} = "adwaita-icon-theme-symbolic"
+GTKBASE_RRECOMMENDS ?= "liberation-fonts \
+ gdk-pixbuf-loader-png \
+ gdk-pixbuf-loader-jpeg \
+ gdk-pixbuf-loader-gif \
+ gdk-pixbuf-loader-xpm \
+ shared-mime-info \
+ adwaita-icon-theme-symbolic \
+ "
+GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
+
+RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}"
+RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
+RDEPENDS_${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}"
PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*"
@@ -110,4 +128,3 @@ python populate_packages_prepend () {
if (d.getVar('DEBIAN_NAMES', True)):
d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0')
}
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
new file mode 100644
index 000000000..0bda1f107
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch
@@ -0,0 +1,47 @@
+From 5a73a5b92566e314bbc8a1bd40f1ec204837c111 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 21 Jun 2016 14:53:56 +0300
+Subject: [PATCH 1/4] Hardcoded libtool
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 23d3077..b6931d6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -610,7 +610,7 @@ AC_MSG_CHECKING([whether to write dependencies into .pc files])
+ case $enable_explicit_deps in
+ auto)
+ export SED
+- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
+ if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then
+ enable_explicit_deps=yes
+ else
+@@ -876,7 +876,7 @@ else
+ dnl Now we check to see if our libtool supports shared lib deps
+ dnl (in a rather ugly way even)
+ if $dynworks; then
+- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
++ module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config"
+ module_deplibs_check=`$module_libtool_config | \
+ grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
+ sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
+@@ -1630,7 +1630,7 @@ AC_SUBST(GTK_PRINT_BACKENDS)
+ # We are using gmodule-no-export now, but I'm leaving the stripping
+ # code in place for now, since pango and atk still require gmodule.
+ export SED
+-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
++export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+ if test -n "$export_dynamic"; then
+ GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
+ GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch
new file mode 100644
index 000000000..e819add88
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0001-Redo-focus-handling-in-treeview-once-more.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Backport [29faa2db]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+
+From 29faa2db44b04b9cf7f4d96e32691f424490c730 Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen@redhat.com>
+Date: Sun, 11 Sep 2016 11:47:55 -0400
+Subject: [PATCH] Redo focus handling in treeview once more
+
+The fix for bug 767468 had some unintended side-effects. This is
+an attempt at doing the same fix (don't grab focus when we are
+grab-shadowed), while avoiding the breakage, by using GTK+'s
+internal tracking for grab-shadowed-ness.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=770508
+---
+ gtk/gtktreeview.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
+index a7463cc..73d3557 100644
+--- a/gtk/gtktreeview.c
++++ b/gtk/gtktreeview.c
+@@ -3050,11 +3050,10 @@ static void
+ grab_focus_and_unset_draw_keyfocus (GtkTreeView *tree_view)
+ {
+ GtkWidget *widget = GTK_WIDGET (tree_view);
+- GtkWidget *grab_widget = gtk_grab_get_current ();
+
+ if (gtk_widget_get_can_focus (widget) &&
+ !gtk_widget_has_focus (widget) &&
+- (!grab_widget || grab_widget == widget))
++ !_gtk_widget_get_shadowed (widget))
+ gtk_widget_grab_focus (widget);
+
+ tree_view->priv->draw_keyfocus = 0;
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
new file mode 100644
index 000000000..989716e51
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch
@@ -0,0 +1,60 @@
+From d63b926f8c8d8b5c9f9ec33d078b775f0409d88a Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 16 Oct 2015 16:35:16 +0300
+Subject: [PATCH 2/4] Do not try to initialize GL without libGL
+
+_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys
+GLX api which will exit() if libGL.so.1 is not present. We do not
+want that to happen and we don't want every app to have to set
+"GDK_GL=disabled" environment variable: so use #ifdef set based on
+opengl distro feature.
+
+Upstream is not interested in the fix as it is: Either epoxy should be
+fixed (to not exit) or GTK+ possibly could do some additional probing
+before calling epoxy APIs.
+
+Upstream-Status: Denied
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 7 +++++++
+ gdk/x11/gdkvisual-x11.c | 5 +++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index b6931d6..e27da49 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -342,6 +342,13 @@ AC_ARG_ENABLE(mir-backend,
+ [enable the Mir gdk backend])],
+ [backend_set=yes])
+
++AC_ARG_ENABLE(glx,
++ [AS_HELP_STRING([--enable-glx],
++ [When enabled Gdk will try to initialize GLX])])
++AS_IF([test "x$enable_glx" != "xno"], [
++ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime])
++])
++
+ if test -z "$backend_set"; then
+ if test "$platform_win32" = yes; then
+ enable_win32_backend=yes
+diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
+index 81479d8..3c8c5c0 100644
+--- a/gdk/x11/gdkvisual-x11.c
++++ b/gdk/x11/gdkvisual-x11.c
+@@ -306,7 +306,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen)
+ /* If GL is available we want to pick better default/rgba visuals,
+ as we care about glx details such as alpha/depth/stencil depth,
+ stereo and double buffering */
++ /* update_visuals_for_gl() will end up calling epoxy GLX api which
++ will exit if libgl is not there: so only do this if we know GL
++ is available */
++#ifdef HAVE_GLX
+ _gdk_x11_screen_update_visuals_for_gl (screen);
++#endif
+ }
+
+ gint
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
new file mode 100644
index 000000000..0912c44ff
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch
@@ -0,0 +1,954 @@
+From a8fa547fdc1416b330aced805f5343ad912932ae Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 21 Jun 2016 15:11:39 +0300
+Subject: [PATCH 3/4] Add --disable-opengl configure option
+
+--disable-opengl will remove the dependency on libepoxy and on the
+OpenGL APIs. This is useful for those who want to keep using gtk+3
+without the "opengl" distro feature.
+
+GtkGLArea is still part of the API (it just doesn't work) even when
+OpenGL is disabled. GdkX11GLContext was removed from the Gtk API
+completely: that object exposes GL API elements so it had to be at
+the very least modified.
+
+The patch is _not_ great from a maintenance point of view and
+modifying the library API is also a fairly nasty thing to do.
+Long-term it would be good to find an alternative solution to this
+(maybe a no-op backend for libepoxy?)
+
+Upstream-Status: Inappropriate [Evil eye expected from upstream]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 13 +++++++++++--
+ demos/gtk-demo/glarea.c | 13 +++++++++++++
+ docs/tools/Makefile.am | 9 +++++++--
+ docs/tools/widgets.c | 4 +++-
+ gdk/gdkdisplay.c | 4 +++-
+ gdk/gdkgl.c | 10 ++++++++++
+ gdk/gdkglcontext.c | 6 ++++++
+ gdk/gdkwindow.c | 13 +++++++++++++
+ gdk/x11/Makefile.am | 30 ++++++++++++++++++++++++++----
+ gdk/x11/gdkdisplay-x11.c | 6 +++++-
+ gdk/x11/gdkscreen-x11.c | 5 +++++
+ gdk/x11/gdkwindow-x11.c | 4 ++++
+ gdk/x11/gdkx-autocleanups.h | 2 ++
+ gdk/x11/gdkx-with-gl-context.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ gdk/x11/gdkx.h | 59 -----------------------------------------------------------
+ gtk/Makefile.am | 3 +--
+ gtk/gtkglarea.c | 20 +++++++++++++++++++-
+ gtk/inspector/general.c | 6 ++++++
+ tests/Makefile.am | 10 +++++++---
+ testsuite/gtk/objects-finalize.c | 2 ++
+ 21 files changed, 260 insertions(+), 76 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a01824e..dde9dc5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -342,6 +342,15 @@ AC_ARG_ENABLE(mir-backend,
+ [enable the Mir gdk backend])],
+ [backend_set=yes])
+
++AC_ARG_ENABLE(opengl,
++ [AS_HELP_STRING([--enable-opengl],
++ [When enabled, Gtk+ will use libepoxy and exposes GtkGLArea widget ])])
++AS_IF([test "x$enable_opengl" != "xno"], [
++ AC_DEFINE([HAVE_OPENGL], [1], [libepoxy and opengl APIs are available at buildtime])
++ EPOXY_PACKAGES="epoxy >= epoxy_required_version"
++])
++AM_CONDITIONAL([HAVE_OPENGL],[test "x$enable_opengl" != "xno"])
++
+ AC_ARG_ENABLE(glx,
+ [AS_HELP_STRING([--enable-glx],
+ [When enabled Gdk will try to initialize GLX])])
+@@ -1333,7 +1342,7 @@ CFLAGS="$saved_cflags"
+ LDFLAGS="$saved_ldflags"
+
+ GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version"
+-GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version"
++GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends $EPOXY_PACKAGES"
+
+ PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES)
+ GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB"
+@@ -1367,7 +1376,7 @@ fi
+ PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
+
+ GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version"
+-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version"
++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $EPOXY_PACKAGES"
+ if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then
+ GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
+ fi
+diff --git a/demos/gtk-demo/glarea.c b/demos/gtk-demo/glarea.c
+index 3aba729..c6c79f7 100644
+--- a/demos/gtk-demo/glarea.c
++++ b/demos/gtk-demo/glarea.c
+@@ -5,7 +5,9 @@
+
+ #include <math.h>
+ #include <gtk/gtk.h>
++#if HAVE_OPENGL
+ #include <epoxy/gl.h>
++#endif
+
+ static GtkWidget *demo_window = NULL;
+
+@@ -23,6 +25,8 @@ enum {
+ /* Rotation angles on each axis */
+ static float rotation_angles[N_AXIS] = { 0.0 };
+
++#ifdef HAVE_OPENGL
++
+ /* The object we are drawing */
+ static const GLfloat vertex_data[] = {
+ 0.f, 0.5f, 0.f, 1.f,
+@@ -213,6 +217,7 @@ compute_mvp (float *res,
+ static GLuint position_buffer;
+ static GLuint program;
+ static GLuint mvp_location;
++#endif
+
+ /* We need to set up our state when we realize the GtkGLArea widget */
+ static void
+@@ -223,8 +228,10 @@ realize (GtkWidget *widget)
+ if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL)
+ return;
+
++#ifdef HAVE_OPENGL
+ init_buffers (&position_buffer, NULL);
+ init_shaders (&program, &mvp_location);
++#endif
+ }
+
+ /* We should tear down the state when unrealizing */
+@@ -236,10 +243,13 @@ unrealize (GtkWidget *widget)
+ if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL)
+ return;
+
++#ifdef HAVE_OPENGL
+ glDeleteBuffers (1, &position_buffer);
+ glDeleteProgram (program);
++#endif
+ }
+
++#ifdef HAVE_OPENGL
+ static void
+ draw_triangle (void)
+ {
+@@ -272,6 +282,7 @@ draw_triangle (void)
+ glBindBuffer (GL_ARRAY_BUFFER, 0);
+ glUseProgram (0);
+ }
++#endif
+
+ static gboolean
+ render (GtkGLArea *area,
+@@ -280,6 +291,7 @@ render (GtkGLArea *area,
+ if (gtk_gl_area_get_error (area) != NULL)
+ return FALSE;
+
++#ifdef HAVE_OPENGL
+ /* Clear the viewport */
+ glClearColor (0.5, 0.5, 0.5, 1.0);
+ glClear (GL_COLOR_BUFFER_BIT);
+@@ -289,6 +301,7 @@ render (GtkGLArea *area,
+
+ /* Flush the contents of the pipeline */
+ glFlush ();
++#endif
+
+ return TRUE;
+ }
+diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am
+index 6a6d70f..5cdf312 100644
+--- a/docs/tools/Makefile.am
++++ b/docs/tools/Makefile.am
+@@ -9,13 +9,18 @@ AM_CPPFLAGS = \
+ $(GTK_DEBUG_FLAGS) \
+ $(GTK_DEP_CFLAGS)
+
++if HAVE_OPENGL
++GEARS_LDADD = $(top_builddir)/tests/gtkgears.o
++endif
++
+ DEPS = \
+- $(top_builddir)/gtk/libgtk-3.la
++ $(top_builddir)/gtk/libgtk-3.la \
++ $(GEARS_LDADD)
+
+ LDADDS = \
+ $(top_builddir)/gtk/libgtk-3.la \
+ $(top_builddir)/gdk/libgdk-3.la \
+- $(top_builddir)/tests/gtkgears.o \
++ $(GEARS_LDADD) \
+ $(GTK_DEP_LIBS) \
+ $(GDK_DEP_LIBS) \
+ -lm
+diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c
+index 932daf1..54239d6 100644
+--- a/docs/tools/widgets.c
++++ b/docs/tools/widgets.c
+@@ -1526,9 +1526,11 @@ create_gl_area (void)
+ widget = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
+
++#ifdef HAVE_OPENGL
+ gears = gtk_gears_new ();
+ gtk_container_add (GTK_CONTAINER (widget), gears);
+-
++#endif
++
+ info = new_widget_info ("glarea", widget, MEDIUM);
+
+ return info;
+diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c
+index 6150ef7..2223629 100644
+--- a/gdk/gdkdisplay.c
++++ b/gdk/gdkdisplay.c
+@@ -2360,7 +2360,9 @@ gboolean
+ gdk_display_make_gl_context_current (GdkDisplay *display,
+ GdkGLContext *context)
+ {
+- return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context);
++ if (GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current)
++ return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context);
++ return FALSE;
+ }
+
+ GdkRenderingMode
+diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c
+index e8ba770..ba7c84b 100644
+--- a/gdk/gdkgl.c
++++ b/gdk/gdkgl.c
+@@ -22,7 +22,9 @@
+
+ #include "gdkinternals.h"
+
++#ifdef HAVE_OPENGL
+ #include <epoxy/gl.h>
++#endif
+ #include <math.h>
+ #include <string.h>
+
+@@ -36,6 +38,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface,
+ g_object_ref (window), g_object_unref);
+ }
+
++#ifdef HAVE_OPENGL
+ static const char *
+ get_vertex_type_name (int type)
+ {
+@@ -254,6 +257,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data)
+ glUseProgram (paint_data->current_program->program);
+ }
+ }
++#endif
+
+ void
+ gdk_gl_texture_quads (GdkGLContext *paint_context,
+@@ -261,6 +265,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
+ int n_quads,
+ GdkTexturedQuad *quads)
+ {
++#ifdef HAVE_OPENGL
+ GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context);
+ GdkGLContextProgram *program;
+ GdkWindow *window = gdk_gl_context_get_window (paint_context);
+@@ -324,6 +329,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context,
+
+ glDisableVertexAttribArray (program->position_location);
+ glDisableVertexAttribArray (program->uv_location);
++#endif
+ }
+
+ /* x,y,width,height describes a rectangle in the gl render buffer
+@@ -372,6 +378,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
+ int width,
+ int height)
+ {
++#ifdef HAVE_OPENGL
+ GdkGLContext *paint_context;
+ cairo_surface_t *image;
+ cairo_matrix_t matrix;
+@@ -692,6 +699,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
+ if (clip_region)
+ cairo_region_destroy (clip_region);
+
++#endif
+ }
+
+ /* This is always called with the paint context current */
+@@ -699,6 +707,7 @@ void
+ gdk_gl_texture_from_surface (cairo_surface_t *surface,
+ cairo_region_t *region)
+ {
++#ifdef HAVE_OPENGL
+ GdkGLContext *paint_context;
+ cairo_surface_t *image;
+ double device_x_offset, device_y_offset;
+@@ -799,4 +808,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface,
+
+ glDisable (GL_SCISSOR_TEST);
+ glDeleteTextures (1, &texture_id);
++#endif
+ }
+diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c
+index 00a33eb..bd8a793 100644
+--- a/gdk/gdkglcontext.c
++++ b/gdk/gdkglcontext.c
+@@ -85,7 +85,9 @@
+ #include "gdkintl.h"
+ #include "gdk-private.h"
+
++#ifdef HAVE_OPENGL
+ #include <epoxy/gl.h>
++#endif
+
+ typedef struct {
+ GdkDisplay *display;
+@@ -239,6 +241,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
+ int height,
+ guint texture_target)
+ {
++#ifdef HAVE_OPENGL
+ g_return_if_fail (GDK_IS_GL_CONTEXT (context));
+
+ glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
+@@ -246,6 +249,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context,
+ glTexImage2D (texture_target, 0, GL_RGBA, width, height, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV,
+ cairo_image_surface_get_data (image_surface));
+ glPixelStorei (GL_UNPACK_ROW_LENGTH, 0);
++#endif
+ }
+
+ static void
+@@ -635,6 +639,7 @@ gdk_gl_context_realize (GdkGLContext *context,
+ static void
+ gdk_gl_context_check_extensions (GdkGLContext *context)
+ {
++#ifdef HAVE_OPENGL
+ GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
+ gboolean has_npot, has_texture_rectangle;
+
+@@ -677,6 +682,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context)
+ priv->use_texture_rectangle ? "yes" : "no"));
+
+ priv->extensions_checked = TRUE;
++#endif
+ }
+
+ /**
+diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
+index 66ebb9d..74a0c3a 100644
+--- a/gdk/gdkwindow.c
++++ b/gdk/gdkwindow.c
+@@ -44,7 +44,9 @@
+
+ #include <math.h>
+
++#ifdef HAVE_OPENGL
+ #include <epoxy/gl.h>
++#endif
+
+ /* for the use of round() */
+ #include "fallback-c89.c"
+@@ -2759,6 +2761,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window,
+ {
+ GError *internal_error = NULL;
+
++#ifndef HAVE_OPENGL
++ g_set_error_literal (error, GDK_GL_ERROR,
++ GDK_GL_ERROR_NOT_AVAILABLE,
++ _("GL support disabled with --disable-opengl"));
++ return NULL;
++#endif
++
+ if (_gdk_gl_flags & GDK_GL_DISABLE)
+ {
+ g_set_error_literal (error, GDK_GL_ERROR,
+@@ -2955,6 +2964,7 @@ gdk_window_begin_paint_region (GdkWindow *window,
+ }
+ else
+ {
++#ifdef HAVE_OPENGL
+ gdk_gl_context_make_current (context);
+ /* With gl we always need a surface to combine the gl
+ drawing with the native drawing. */
+@@ -2969,6 +2979,7 @@ gdk_window_begin_paint_region (GdkWindow *window,
+ glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+
+ glViewport (0, 0, ww, wh);
++#endif
+ }
+ }
+
+@@ -3117,6 +3128,7 @@ gdk_window_end_paint (GdkWindow *window)
+
+ gdk_gl_context_make_current (window->gl_paint_context);
+
++#ifdef HAVE_OPENGL
+ if (!cairo_region_is_empty (opaque_region))
+ gdk_gl_texture_from_surface (window->current_paint.surface,
+ opaque_region);
+@@ -3127,6 +3139,7 @@ gdk_window_end_paint (GdkWindow *window)
+ window->current_paint.need_blend_region);
+ glDisable(GL_BLEND);
+ }
++#endif
+
+ cairo_region_destroy (opaque_region);
+
+diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am
+index c488a31..4ce3c07 100644
+--- a/gdk/x11/Makefile.am
++++ b/gdk/x11/Makefile.am
+@@ -39,8 +39,6 @@ libgdk_x11_la_SOURCES = \
+ gdkeventtranslator.c \
+ gdkeventtranslator.h \
+ gdkgeometry-x11.c \
+- gdkglcontext-x11.c \
+- gdkglcontext-x11.h \
+ gdkkeys-x11.c \
+ gdkmain-x11.c \
+ gdkproperty-x11.c \
+@@ -53,14 +51,32 @@ libgdk_x11_la_SOURCES = \
+ gdkwindow-x11.h \
+ gdkxftdefaults.c \
+ gdkxid.c \
+- gdkx.h \
+ gdkprivate-x11.h \
+ xsettings-client.h \
+ xsettings-client.c
+
++if HAVE_OPENGL
++libgdk_x11_la_SOURCES += \
++ gdkglcontext-x11.c \
++ gdkglcontext-x11.h
++endif
++
+ libgdkinclude_HEADERS = \
+ gdkx.h
+
++if HAVE_OPENGL
++GDKX_HEADER = gdkx-with-gl-context.h
++else
++GDKX_HEADER = gdkx-without-gl-context.h
++endif
++
++BUILT_SOURCES = gdkx.h
++
++.PHONY: gdkx.h
++gdkx.h:
++ $(AM_V_GEN) cd $(srcdir) \
++ && (cmp -s $(GDKX_HEADER) gdkx.h || cp $(GDKX_HEADER) gdkx.h )
++
+ libgdkx11include_HEADERS = \
+ gdkx-autocleanups.h \
+ gdkx11applaunchcontext.h \
+@@ -74,7 +90,6 @@ libgdkx11include_HEADERS = \
+ gdkx11display.h \
+ gdkx11displaymanager.h \
+ gdkx11dnd.h \
+- gdkx11glcontext.h \
+ gdkx11keys.h \
+ gdkx11property.h \
+ gdkx11screen.h \
+@@ -83,9 +98,16 @@ libgdkx11include_HEADERS = \
+ gdkx11visual.h \
+ gdkx11window.h
+
++if HAVE_OPENGL
++libgdkx11include_HEADERS += gdkx11glcontext.h
++endif
++
+ # We need to include all these C files here since the conditionals
+ # don't seem to be correctly expanded for the dist files.
+ EXTRA_DIST += \
++ gdkx.h \
+ gdksettings.c
+
++MAINTAINERCLEANFILES = gdkx.h
++
+ -include $(top_srcdir)/git.mk
+diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
+index de91c64..42d50f6 100644
+--- a/gdk/x11/gdkdisplay-x11.c
++++ b/gdk/x11/gdkdisplay-x11.c
+@@ -37,7 +37,9 @@
+ #include "gdkdisplay-x11.h"
+ #include "gdkprivate-x11.h"
+ #include "gdkscreen-x11.h"
++#ifdef HAVE_OPENGL
+ #include "gdkglcontext-x11.h"
++#endif
+ #include "gdk-private.h"
+
+ #include <glib.h>
+@@ -2959,7 +2961,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
+ display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list;
+ display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target;
+
+- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
++#ifdef HAVE_OPENGL
++ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current;
++#endif
+
+ display_class->get_default_seat = gdk_x11_display_get_default_seat;
+
+diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c
+index 9d8ed20..bd46b00 100644
+--- a/gdk/x11/gdkscreen-x11.c
++++ b/gdk/x11/gdkscreen-x11.c
+@@ -1968,3 +1968,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen)
+ {
+ return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP");
+ }
++
++#ifndef HAVE_OPENGL
++/* Function from in gdk/x11/gdkglcontext-x11.c */
++void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {}
++#endif
+diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c
+index 9ed087a..30d6eb7 100644
+--- a/gdk/x11/gdkwindow-x11.c
++++ b/gdk/x11/gdkwindow-x11.c
+@@ -36,7 +36,9 @@
+ #include "gdkasync.h"
+ #include "gdkeventsource.h"
+ #include "gdkdisplay-x11.h"
++#ifdef HAVE_OPENGL
+ #include "gdkglcontext-x11.h"
++#endif
+ #include "gdkprivate-x11.h"
+ #include "gdk-private.h"
+
+@@ -5782,7 +5784,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
+ impl_class->set_opaque_region = gdk_x11_window_set_opaque_region;
+ impl_class->set_shadow_width = gdk_x11_window_set_shadow_width;
+ impl_class->show_window_menu = gdk_x11_window_show_window_menu;
++#ifdef HAVE_OPENGL
+ impl_class->create_gl_context = gdk_x11_window_create_gl_context;
+ impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame;
++#endif
+ impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size;
+ }
+diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h
+index edb0ea7..a317d61 100644
+--- a/gdk/x11/gdkx-autocleanups.h
++++ b/gdk/x11/gdkx-autocleanups.h
+@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref)
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref)
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref)
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref)
++#ifdef HAVE_OPENGL
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref)
++#endif
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref)
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref)
+ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref)
+diff --git a/gdk/x11/gdkx-with-gl-context.h b/gdk/x11/gdkx-with-gl-context.h
+new file mode 100644
+index 0000000..ae05fa6
+--- /dev/null
++++ b/gdk/x11/gdkx-with-gl-context.h
+@@ -0,0 +1,59 @@
++/* GDK - The GIMP Drawing Kit
++ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++/*
++ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
++ * file for a list of people on the GTK+ Team. See the ChangeLog
++ * files for a list of changes. These files are distributed with
++ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
++ */
++
++#ifndef __GDK_X_H__
++#define __GDK_X_H__
++
++#include <gdk/gdk.h>
++
++#include <X11/Xlib.h>
++#include <X11/Xutil.h>
++
++#define __GDKX_H_INSIDE__
++
++#include <gdk/x11/gdkx11applaunchcontext.h>
++#include <gdk/x11/gdkx11cursor.h>
++#include <gdk/x11/gdkx11device.h>
++#include <gdk/x11/gdkx11device-core.h>
++#include <gdk/x11/gdkx11device-xi2.h>
++#include <gdk/x11/gdkx11devicemanager.h>
++#include <gdk/x11/gdkx11devicemanager-core.h>
++#include <gdk/x11/gdkx11devicemanager-xi2.h>
++#include <gdk/x11/gdkx11display.h>
++#include <gdk/x11/gdkx11displaymanager.h>
++#include <gdk/x11/gdkx11dnd.h>
++#include <gdk/x11/gdkx11glcontext.h>
++#include <gdk/x11/gdkx11keys.h>
++#include <gdk/x11/gdkx11property.h>
++#include <gdk/x11/gdkx11screen.h>
++#include <gdk/x11/gdkx11selection.h>
++#include <gdk/x11/gdkx11utils.h>
++#include <gdk/x11/gdkx11visual.h>
++#include <gdk/x11/gdkx11window.h>
++
++#include <gdk/x11/gdkx-autocleanups.h>
++
++#undef __GDKX_H_INSIDE__
++
++#endif /* __GDK_X_H__ */
+diff --git a/gdk/x11/gdkx-without-gl-context.h b/gdk/x11/gdkx-without-gl-context.h
+new file mode 100644
+index 0000000..c9e2617
+--- /dev/null
++++ b/gdk/x11/gdkx-without-gl-context.h
+@@ -0,0 +1,58 @@
++/* GDK - The GIMP Drawing Kit
++ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++/*
++ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
++ * file for a list of people on the GTK+ Team. See the ChangeLog
++ * files for a list of changes. These files are distributed with
++ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
++ */
++
++#ifndef __GDK_X_H__
++#define __GDK_X_H__
++
++#include <gdk/gdk.h>
++
++#include <X11/Xlib.h>
++#include <X11/Xutil.h>
++
++#define __GDKX_H_INSIDE__
++
++#include <gdk/x11/gdkx11applaunchcontext.h>
++#include <gdk/x11/gdkx11cursor.h>
++#include <gdk/x11/gdkx11device.h>
++#include <gdk/x11/gdkx11device-core.h>
++#include <gdk/x11/gdkx11device-xi2.h>
++#include <gdk/x11/gdkx11devicemanager.h>
++#include <gdk/x11/gdkx11devicemanager-core.h>
++#include <gdk/x11/gdkx11devicemanager-xi2.h>
++#include <gdk/x11/gdkx11display.h>
++#include <gdk/x11/gdkx11displaymanager.h>
++#include <gdk/x11/gdkx11dnd.h>
++#include <gdk/x11/gdkx11keys.h>
++#include <gdk/x11/gdkx11property.h>
++#include <gdk/x11/gdkx11screen.h>
++#include <gdk/x11/gdkx11selection.h>
++#include <gdk/x11/gdkx11utils.h>
++#include <gdk/x11/gdkx11visual.h>
++#include <gdk/x11/gdkx11window.h>
++
++#include <gdk/x11/gdkx-autocleanups.h>
++
++#undef __GDKX_H_INSIDE__
++
++#endif /* __GDK_X_H__ */
+diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx.h
+deleted file mode 100644
+index ae05fa6..0000000
+--- a/gdk/x11/gdkx.h
++++ /dev/null
+@@ -1,59 +0,0 @@
+-/* GDK - The GIMP Drawing Kit
+- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+- */
+-
+-/*
+- * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
+- * file for a list of people on the GTK+ Team. See the ChangeLog
+- * files for a list of changes. These files are distributed with
+- * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+- */
+-
+-#ifndef __GDK_X_H__
+-#define __GDK_X_H__
+-
+-#include <gdk/gdk.h>
+-
+-#include <X11/Xlib.h>
+-#include <X11/Xutil.h>
+-
+-#define __GDKX_H_INSIDE__
+-
+-#include <gdk/x11/gdkx11applaunchcontext.h>
+-#include <gdk/x11/gdkx11cursor.h>
+-#include <gdk/x11/gdkx11device.h>
+-#include <gdk/x11/gdkx11device-core.h>
+-#include <gdk/x11/gdkx11device-xi2.h>
+-#include <gdk/x11/gdkx11devicemanager.h>
+-#include <gdk/x11/gdkx11devicemanager-core.h>
+-#include <gdk/x11/gdkx11devicemanager-xi2.h>
+-#include <gdk/x11/gdkx11display.h>
+-#include <gdk/x11/gdkx11displaymanager.h>
+-#include <gdk/x11/gdkx11dnd.h>
+-#include <gdk/x11/gdkx11glcontext.h>
+-#include <gdk/x11/gdkx11keys.h>
+-#include <gdk/x11/gdkx11property.h>
+-#include <gdk/x11/gdkx11screen.h>
+-#include <gdk/x11/gdkx11selection.h>
+-#include <gdk/x11/gdkx11utils.h>
+-#include <gdk/x11/gdkx11visual.h>
+-#include <gdk/x11/gdkx11window.h>
+-
+-#include <gdk/x11/gdkx-autocleanups.h>
+-
+-#undef __GDKX_H_INSIDE__
+-
+-#endif /* __GDK_X_H__ */
+diff --git a/gtk/Makefile.am b/gtk/Makefile.am
+index 6a53a2b..49a35e6 100644
+--- a/gtk/Makefile.am
++++ b/gtk/Makefile.am
+@@ -1351,14 +1351,13 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins.
+ && cp xgen-gptbc gtkprivatetypebuiltins.c \
+ && rm -f xgen-gptbc
+
+-
+ gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile
+ $(AM_V_GEN) (echo '#undef GTK_COMPILATION' && echo '#include <gtk/gtkx.h>') > xgen-gtfsrc.c && \
+ echo 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS' > xgen-gtf && \
+ ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
+ $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \
+ sort | uniq | \
+- $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \
++ $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; s/^.*gdk_x11_gl.*$$/#ifdef HAVE_OPENGL\n&\n#endif/; }' >> xgen-gtf \
+ && cp xgen-gtf $@ && rm -f xgen-gtf
+ gtktestutils.c: gtktypefuncs.c
+
+diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c
+index 245fc6b..4214ad1 100644
+--- a/gtk/gtkglarea.c
++++ b/gtk/gtkglarea.c
+@@ -28,7 +28,9 @@
+ #include "gtkprivate.h"
+ #include "gtkrender.h"
+
++#ifdef HAVE_OPENGL
+ #include <epoxy/gl.h>
++#endif
+
+ /**
+ * SECTION:gtkglarea
+@@ -357,9 +359,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area)
+ static void
+ gtk_gl_area_resize (GtkGLArea *area, int width, int height)
+ {
++#ifdef HAVE_OPENGL
+ glViewport (0, 0, width, height);
++#endif
+ }
+
++#ifdef HAVE_OPENGL
+ /*
+ * Creates all the buffer objects needed for rendering the scene
+ */
+@@ -467,6 +472,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
+
+ priv->needs_render = TRUE;
+ }
++#endif
+
+ /**
+ * gtk_gl_area_attach_buffers:
+@@ -485,6 +491,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area)
+ void
+ gtk_gl_area_attach_buffers (GtkGLArea *area)
+ {
++#ifdef HAVE_OPENGL
+ GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
+
+ g_return_if_fail (GTK_IS_GL_AREA (area));
+@@ -517,11 +524,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area)
+ glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT,
+ GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer);
+ }
++#endif
+ }
+
+ static void
+ gtk_gl_area_delete_buffers (GtkGLArea *area)
+ {
++#ifdef HAVE_OPENGL
+ GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
+
+ if (priv->context == NULL)
+@@ -553,6 +562,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area)
+ glDeleteFramebuffersEXT (1, &priv->frame_buffer);
+ priv->frame_buffer = 0;
+ }
++#endif
+ }
+
+ static void
+@@ -663,6 +673,7 @@ gtk_gl_area_draw (GtkWidget *widget,
+ GtkGLArea *area = GTK_GL_AREA (widget);
+ GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area);
+ gboolean unused;
++#ifdef HAVE_OPENGL
+ int w, h, scale;
+ GLenum status;
+
+@@ -674,7 +685,6 @@ gtk_gl_area_draw (GtkWidget *widget,
+ gtk_widget_get_allocated_height (widget));
+ return FALSE;
+ }
+-
+ if (priv->context == NULL)
+ return FALSE;
+
+@@ -720,6 +730,14 @@ gtk_gl_area_draw (GtkWidget *widget,
+ }
+
+ return TRUE;
++#else
++ if (priv->error != NULL)
++ gtk_gl_area_draw_error_screen (area,
++ cr,
++ gtk_widget_get_allocated_width (widget),
++ gtk_widget_get_allocated_height (widget));
++ return FALSE;
++#endif
+ }
+
+ static gboolean
+diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c
+index 4eab3a7..c4e900e 100644
+--- a/gtk/inspector/general.c
++++ b/gtk/inspector/general.c
+@@ -33,8 +33,10 @@
+
+ #ifdef GDK_WINDOWING_X11
+ #include "x11/gdkx.h"
++#ifdef HAVE_OPENGL
+ #include <epoxy/glx.h>
+ #endif
++#endif
+
+ #ifdef GDK_WINDOWING_WIN32
+ #include "win32/gdkwin32.h"
+@@ -147,6 +149,7 @@ append_extension_row (GtkInspectorGeneral *gen,
+ gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label);
+ }
+
++#ifdef HAVE_OPENGL
+ #ifdef GDK_WINDOWING_X11
+ static void
+ append_glx_extension_row (GtkInspectorGeneral *gen,
+@@ -156,6 +159,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen,
+ append_extension_row (gen, ext, epoxy_has_glx_extension (dpy, 0, ext));
+ }
+ #endif
++#endif
+
+ #ifdef GDK_WINDOWING_WAYLAND
+ static void
+@@ -171,6 +175,7 @@ append_egl_extension_row (GtkInspectorGeneral *gen,
+ static void
+ init_gl (GtkInspectorGeneral *gen)
+ {
++#ifdef HAVE_OPENGL
+ #ifdef GDK_WINDOWING_X11
+ if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+ {
+@@ -197,6 +202,7 @@ init_gl (GtkInspectorGeneral *gen)
+ }
+ else
+ #endif
++#endif
+ #ifdef GDK_WINDOWING_WAYLAND
+ if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ()))
+ {
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 681807d..2941a36 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \
+ testfullscreen \
+ testgeometry \
+ testgiconpixbuf \
+- testglarea \
+- testglblending \
+ testgrid \
+ testgtk \
+ testheaderbar \
+@@ -169,11 +167,17 @@ noinst_PROGRAMS = $(TEST_PROGS) \
+ testactionbar \
+ testwindowsize \
+ testpopover \
+- gdkgears \
+ listmodel \
+ testpopup \
+ $(NULL)
+
++if HAVE_OPENGL
++noinst_PROGRAMS +=
++ testglarea \
++ testglblending \
++ gdkgears
++endif
++
+ if USE_X11
+ noinst_PROGRAMS += testerrors
+ endif
+diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c
+index e0ebee0..703643c 100644
+--- a/testsuite/gtk/objects-finalize.c
++++ b/testsuite/gtk/objects-finalize.c
+@@ -115,8 +115,10 @@ main (int argc, char **argv)
+ all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE &&
+ all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 &&
+ all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER &&
++#ifdef HAVE_OPENGL
+ all_types[i] != GDK_TYPE_X11_GL_CONTEXT &&
+ #endif
++#endif
+ /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */
+ all_types[i] != GDK_TYPE_PIXBUF_LOADER &&
+ all_types[i] != gdk_pixbuf_simple_anim_iter_get_type())
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch
new file mode 100644
index 000000000..634b3a46f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/0004-configure.ac-Fix-wayland-protocols-path.patch
@@ -0,0 +1,36 @@
+From 97b78e566634579bbae51be914aeaaa921137a8b Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Thu, 9 Jun 2016 11:21:36 +0300
+Subject: [PATCH 4/4] configure.ac: Fix wayland-protocols path
+
+The wayland-protocols directory is used during build: Fix the path
+to point to sysroot specified in recipe.
+
+Normally PKG_CONFIG_SYSROOT_DIR could be used in configure.ac but that
+breaks multilib gtk+ as it would point to multilib sysroot when the
+(allarch) wayland-protocols is actually in the machine sysroot.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index a3e9beb..dde9dc5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -461,7 +461,7 @@ fi
+ if test "$enable_wayland_backend" = "yes"; then
+ # For the cairo image backend
+ cairo_backends="$cairo_backends cairo"
+- AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
++ AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, ${WAYLAND_PROTOCOLS_SYSROOT_DIR}`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
+ GDK_BACKENDS="$GDK_BACKENDS wayland"
+ GDK_WINDOWING="$GDK_WINDOWING
+ #define GDK_WINDOWING_WAYLAND"
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch
deleted file mode 100644
index c8c480c5e..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From fc22058a10db913534f11348f86681fe9e1838e5 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Fri, 16 Oct 2015 16:35:16 +0300
-Subject: [PATCH] Do not try to initialize GL without libGL
-
-_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys
-GLX api which will exit() if libGL.so.1 is not present. We do not
-want that to happen and we don't want every app to have to set
-"GDK_GL=disabled" environment variable: so use #ifdef set based on
-opengl distro feature.
-
-Upstream is not interested in the fix as it is: Either epoxy should be
-fixed (to not exit) or GTK+ possibly could do some additional probing
-before calling epoxy APIs.
-
-Upstream-Status: Denied
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 7 +++++++
- gdk/x11/gdkvisual-x11.c | 5 +++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 729a62e..58cc1ac 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -328,6 +328,13 @@ AC_ARG_ENABLE(mir-backend,
- [enable the Mir gdk backend])],
- [backend_set=yes])
-
-+AC_ARG_ENABLE(glx,
-+ [AS_HELP_STRING([--enable-glx],
-+ [When enabled Gdk will try to initialize GLX])])
-+AS_IF([test "x$enable_glx" != "xno"], [
-+ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime])
-+])
-+
- if test -z "$backend_set"; then
- if test "$platform_win32" = yes; then
- enable_win32_backend=yes
-diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c
-index f3b062d..c8243f4 100644
---- a/gdk/x11/gdkvisual-x11.c
-+++ b/gdk/x11/gdkvisual-x11.c
-@@ -345,7 +345,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen)
- /* If GL is available we want to pick better default/rgba visuals,
- as we care about glx details such as alpha/depth/stencil depth,
- stereo and double buffering */
-+ /* update_visuals_for_gl() will end up calling epoxy GLX api which
-+ will exit if libgl is not there: so only do this if we know GL
-+ is available */
-+#ifdef HAVE_GLX
- _gdk_x11_screen_update_visuals_for_gl (screen);
-+#endif
- }
-
- gint
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch
deleted file mode 100644
index 32d8a8479..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-window: Check if we can use CSD before enabling them
-
-Upstream-Status: Backport
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-
-From c5e5ee67490e7e7af56052d8f8beb75db002c2f1 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Wed, 3 Jun 2015 14:07:29 +0100
-Subject: window: Check if we can use CSD before enabling them
-
-The change in 03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules
-as to when CSD can be enabled, but it also unconditionally enables CSD
-with the implicit assumption that client-side shadows were the real
-issue, and that we could work around that by drawing our own borders.
-This also means that setting a titlebar for a GtkWindow will enable CSD
-unconditionally.
-
-In reality, some window managers (like Matchbox) *only* support
-server-side decorations, and will ignore all hints to the contrary, to
-the point of drawing decorations at random locations on top of the
-window.
-
-Since CSD are enabled unconditionally, the GTK_CSD environment variable
-is also not a suitable escape hatch.
-
-In the grand tradition of asking ourselves if we should do something
-just because we can, we should split the environment checks from the
-checks on what the user requested; by doing that, we can also check
-when enabling client-side decorations, and ideally bail out if needed.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=750343
-
-diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
-index 423c6bd..9fe882f 100644
---- a/gtk/gtkwindow.c
-+++ b/gtk/gtkwindow.c
-@@ -4056,6 +4056,32 @@ gtk_window_supports_client_shadow (GtkWindow *window)
- return TRUE;
- }
-
-+static gboolean
-+gtk_window_can_use_csd (GtkWindow *window)
-+{
-+ const gchar *csd_env;
-+
-+#ifdef GDK_WINDOWING_BROADWAY
-+ if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-+ return TRUE;
-+#endif
-+
-+#ifdef GDK_WINDOWING_WAYLAND
-+ if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-+ return TRUE;
-+#endif
-+
-+#ifdef GDK_WINDOWING_MIR
-+ if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-+ return TRUE;
-+#endif
-+
-+ csd_env = g_getenv ("GTK_CSD");
-+
-+ /* If GTK_CSD is unset we default to CSD support */
-+ return csd_env == NULL || (strcmp (csd_env, "1") == 0);
-+}
-+
- static void
- gtk_window_enable_csd (GtkWindow *window)
- {
-@@ -4063,6 +4089,10 @@ gtk_window_enable_csd (GtkWindow *window)
- GtkWidget *widget = GTK_WIDGET (window);
- GdkVisual *visual;
-
-+ /* If the environment does not support CSD, then there's no point in enabling them */
-+ if (!gtk_window_can_use_csd (window))
-+ return;
-+
- /* We need a visual with alpha for client shadows */
- if (priv->use_client_shadow)
- {
-@@ -5839,7 +5869,6 @@ static gboolean
- gtk_window_should_use_csd (GtkWindow *window)
- {
- GtkWindowPrivate *priv = window->priv;
-- const gchar *csd_env;
-
- if (priv->csd_requested)
- return TRUE;
-@@ -5850,24 +5879,7 @@ gtk_window_should_use_csd (GtkWindow *window)
- if (priv->type == GTK_WINDOW_POPUP)
- return FALSE;
-
--#ifdef GDK_WINDOWING_BROADWAY
-- if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-- return TRUE;
--#endif
--
--#ifdef GDK_WINDOWING_WAYLAND
-- if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-- return TRUE;
--#endif
--
--#ifdef GDK_WINDOWING_MIR
-- if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window))))
-- return TRUE;
--#endif
--
-- csd_env = g_getenv ("GTK_CSD");
--
-- return (g_strcmp0 (csd_env, "1") == 0);
-+ return gtk_window_can_use_csd (window);
- }
-
- static void
---
-cgit v0.10.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch
deleted file mode 100644
index 3b4beeb71..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-
-Index: gtk+-3.8.2/configure.ac
-===================================================================
---- gtk+-3.8.2.orig/configure.ac
-+++ gtk+-3.8.2/configure.ac
-@@ -531,7 +531,7 @@ AC_MSG_CHECKING([Whether to write depend
- case $enable_explicit_deps in
- auto)
- export SED
-- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
-+ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
- if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then
- enable_explicit_deps=yes
- else
-@@ -793,7 +793,7 @@ else
- dnl Now we check to see if our libtool supports shared lib deps
- dnl (in a rather ugly way even)
- if $dynworks; then
-- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
-+ module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config"
- module_deplibs_check=`$module_libtool_config | \
- grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
- sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
-@@ -1528,7 +1528,7 @@ fi
- # We are using gmodule-no-export now, but I'm leaving the stripping
- # code in place for now, since pango and atk still require gmodule.
- export SED
--export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
-+export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
- if test -n "$export_dynamic"; then
- GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
- GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb
deleted file mode 100644
index b76c0cc1c..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require gtk+3.inc
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
- file://hardcoded_libtool.patch \
- file://Dont-force-csd.patch \
- file://Do-not-try-to-initialize-GL-without-libGL.patch \
- "
-
-SRC_URI[md5sum] = "9671acb41dc13561d19233f1a75cf184"
-SRC_URI[sha256sum] = "1c53ef1bb55364698f7183ecd185b547f92f4a3a7abfafd531400232e2e052f8"
-
-S = "${WORKDIR}/gtk+-${PV}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
- file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
- file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
- file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb
new file mode 100644
index 000000000..38e095ab9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.20.9.bb
@@ -0,0 +1,20 @@
+require gtk+3.inc
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
+ file://0001-Hardcoded-libtool.patch \
+ file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \
+ file://0003-Add-disable-opengl-configure-option.patch \
+ file://0004-configure.ac-Fix-wayland-protocols-path.patch \
+ file://0001-Redo-focus-handling-in-treeview-once-more.patch \
+ "
+SRC_URI[md5sum] = "cc76cac5e18c772c6784bf19a3dff08b"
+SRC_URI[sha256sum] = "83a609ba2f3424b5509e73967c49c67833af466d6f91081b24ee5c64fce6ac17"
+
+S = "${WORKDIR}/gtk+-${PV}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
+ file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
+ file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb
deleted file mode 100644
index cf55d2070..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require gtk+.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \
- file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \
- file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c"
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \
- file://xsettings.patch \
- file://hardcoded_libtool.patch \
- file://toggle-font.diff;striplevel=0 \
- file://doc-fixes.patch \
- file://strict-prototypes.patch \
- "
-
-SRC_URI[md5sum] = "1b7a3689f65617387b5b54520f4439e8"
-SRC_URI[sha256sum] = "0741c59600d3d810a223866453dc2bbb18ce4723828681ba24aa6519c37631b8"
-
-EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
-
-LIBV = "2.10.0"
-
-PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*"
-
-python populate_packages_prepend () {
- gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}')
- immodules_root = os.path.join(gtk_libdir, 'immodules')
- printmodules_root = os.path.join(gtk_libdir, 'printbackends');
-
- d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s')))
- do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s')
-
- if (d.getVar('DEBIAN_NAMES', True)):
- d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0')
-}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb
new file mode 100644
index 000000000..4fe990d5c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.30.bb
@@ -0,0 +1,34 @@
+require gtk+.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \
+ file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \
+ file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c"
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \
+ file://xsettings.patch \
+ file://hardcoded_libtool.patch \
+ file://toggle-font.diff;striplevel=0 \
+ file://doc-fixes.patch \
+ file://strict-prototypes.patch \
+ "
+
+SRC_URI[md5sum] = "04568ba5c58b75e3c7543e45628ad789"
+SRC_URI[sha256sum] = "0d15cec3b6d55c60eac205b1f3ba81a1ed4eadd9d0f8e7c508bc7065d0c4ca50"
+
+EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
+
+LIBV = "2.10.0"
+
+PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*"
+
+python populate_packages_prepend () {
+ gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}')
+ immodules_root = os.path.join(gtk_libdir, 'immodules')
+ printmodules_root = os.path.join(gtk_libdir, 'printbackends');
+
+ d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s')))
+ do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s')
+
+ if (d.getVar('DEBIAN_NAMES', True)):
+ d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0')
+}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb
deleted file mode 100644
index 793f14a54..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "Native icon utils for GTK+"
-DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution."
-SECTION = "libs"
-
-DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native"
-
-LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
- file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch"
-SRC_URI[md5sum] = "9671acb41dc13561d19233f1a75cf184"
-SRC_URI[sha256sum] = "1c53ef1bb55364698f7183ecd185b547f92f4a3a7abfafd531400232e2e052f8"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
- file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
- file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
- file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
-
-S = "${WORKDIR}/gtk+-${PV}"
-
-inherit pkgconfig native upstream-version-is-even
-
-PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native"
-
-do_configure() {
- # Quite ugly but defines enough to compile the tools.
- if ! test -f gtk/config.h; then
- echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h
- echo "#define HAVE_UNISTD_H 1" >> gtk/config.h
- echo "#define HAVE_FTW_H 1" >> gtk/config.h
- fi
- if ! test -f gdk/config.h; then
- touch gdk/config.h
- fi
-}
-
-do_compile() {
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \
- ${S}/gtk/updateiconcache.c \
- $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \
- -o gtk-update-icon-cache
-
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \
- ${S}/gtk/encodesymbolic.c \
- $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \
- -o gtk-encode-symbolic-svg
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir}
- install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir}
-
- create_wrapper ${D}/${bindir}/gtk-update-icon-cache \
- GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
- create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \
- GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
-}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.9.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.9.bb
new file mode 100644
index 000000000..71c1d6280
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.20.9.bb
@@ -0,0 +1,60 @@
+SUMMARY = "Native icon utils for GTK+"
+DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution."
+SECTION = "libs"
+
+DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native"
+
+LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \
+ file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch"
+SRC_URI[md5sum] = "cc76cac5e18c772c6784bf19a3dff08b"
+SRC_URI[sha256sum] = "83a609ba2f3424b5509e73967c49c67833af466d6f91081b24ee5c64fce6ac17"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+ file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \
+ file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \
+ file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1"
+
+S = "${WORKDIR}/gtk+-${PV}"
+
+inherit pkgconfig native upstream-version-is-even
+
+PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native"
+
+do_configure() {
+ # Quite ugly but defines enough to compile the tools.
+ if ! test -f gtk/config.h; then
+ echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h
+ echo "#define HAVE_UNISTD_H 1" >> gtk/config.h
+ echo "#define HAVE_FTW_H 1" >> gtk/config.h
+ fi
+ if ! test -f gdk/config.h; then
+ touch gdk/config.h
+ fi
+}
+
+do_compile() {
+ ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \
+ ${S}/gtk/updateiconcache.c \
+ $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \
+ -o gtk-update-icon-cache
+
+ ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \
+ ${S}/gtk/encodesymbolic.c \
+ $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \
+ -o gtk-encode-symbolic-svg
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir}
+ install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir}
+
+ create_wrapper ${D}/${bindir}/gtk-update-icon-cache \
+ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
+ create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \
+ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache
+}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
deleted file mode 100644
index 80b0521d4..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
+++ /dev/null
@@ -1,305 +0,0 @@
-From d636be29bf95396b4e27fcd17ff84cb7091cca91 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 8 Oct 2015 15:37:40 +0300
-Subject: [PATCH] Revert "Import introspection stub machinery too"
-
-This reverts commit 3dfd0a09de696ec8c544762747f8a0f77153622e.
-As we provide the full introspection support, we need to remove
-the stubs from this package that conflict with it.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Makefile | 4 --
- Makefile.introspection | 163 -------------------------------------------------
- introspection.m4 | 96 -----------------------------
- 3 files changed, 263 deletions(-)
- delete mode 100644 Makefile.introspection
- delete mode 100644 introspection.m4
-
-diff --git a/Makefile b/Makefile
-index 7cb6ce5..ad4231a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -23,7 +23,3 @@ install: $(bin_programs)
-
- mkdir -p $(DESTDIR)$(datarootdir)/aclocal/
- install -m 0644 $(srcdir)/gtk-doc.m4 $(DESTDIR)$(datarootdir)/aclocal/gtk-doc.m4
--
-- mkdir -p $(DESTDIR)$(datarootdir)/gobject-introspection-1.0
-- install -m 0644 $(srcdir)/Makefile.introspection $(DESTDIR)$(datarootdir)/gobject-introspection-1.0/Makefile.introspection
-- install -m 0644 $(srcdir)/introspection.m4 $(DESTDIR)$(datarootdir)/aclocal/introspection.m4
-diff --git a/Makefile.introspection b/Makefile.introspection
-deleted file mode 100644
-index 755dd15..0000000
---- a/Makefile.introspection
-+++ /dev/null
-@@ -1,163 +0,0 @@
--# -*- Mode: make -*-
--# Copyright 2009-2010 Johan Dahlin
--#
--# This file is free software; the author(s) gives unlimited
--# permission to copy and/or distribute it, with or without
--# modifications, as long as this notice is preserved.
--#
--# * Input variables:
--#
--# INTROSPECTION_GIRS - List of GIRS that should be generated
--# INTROSPECTION_SCANNER - Command to invoke scanner, normally set by
--# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
--# INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner
--# INTROSPECTION_SCANNER_ENV - Environment variables to set before running
--# the scanner
--# INTROSPECTION_COMPILER - Command to invoke compiler, normally set by
--# GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
--# INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler
--#
--# * Simple tutorial
--#
--# Add this to configure.ac:
--# -Wno-portability to AM_INIT_AUTOMAKE
--# GOBJECT_INTROSPECTION_CHECK([0.6.7])
--#
--# Add this to Makefile.am where your library/program is built:
--# include $(INTROSPECTION_MAKEFILE)
--# INTROSPECTION_GIRS = YourLib-1.0.gir
--# YourLib_1_0_gir_NAMESPACE = YourLib
--# YourLib_1_0_gir_VERSION = 1.0
--# YourLib_1_0_gir_LIBS = libyourlib.la
--# YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES)
--# girdir = $(datadir)/gir-1.0
--# dist_gir_DATA = YourLib-1.0.gir
--# typelibdir = $(libdir)/girepository-1.0
--# typelib_DATA = YourLib-1.0.typelib
--# CLEANFILES = $(dist_gir_DATA) $(typelib_DATA)
--#
--
--# Make sure the required variables are set, these should under normal
--# circumstances come from introspection.m4
--$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER))
--$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER))
--
--# Private functions
--
--## Transform the gir filename to something which can reference through a variable
--## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir
--_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1))))
--
--# Namespace and Version is either fetched from the gir filename
--# or the _NAMESPACE/_VERSION variable combo
--_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1)))))
--_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=))))
--
--# _PROGRAM is an optional variable which needs it's own --program argument
--_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM))
--
--# Variables which provides a list of things
--_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib))
--_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg))
--_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include))
--_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg))
--
--# Reuse the LIBTOOL variable from automake if it's set, but
--# work around MSYS weirdness: When running g-ir-scanner, MSYS changes
--# a command-line argument --libtool="/bin/sh ../../libtool" into
--# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path
--# because we already "know" where the libtool configure produced is.
--_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)"))
--
--# Macros for AM_SILENT_RULES prettiness
--_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
--
--_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V))
--_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity))
--_gir_silent_scanner_prefix_0 = @echo " GISCAN $(1)";
--_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V))
--_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity))
--_gir_silent_scanner_opts_0 = --quiet
--
--_gir_silent_compiler = $(_gir_silent_compiler_$(V))
--_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity))
--_gir_silent_compiler_0 = @echo " GICOMP $(1)";
--
--#
--# Creates a GIR by scanning C headers/sources
--# $(1) - Name of the gir file (output)
--#
--# If output is Gtk-2.0.gir then you should name the variables like
--# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc.
--# Required variables:
--# FILES - C sources and headers which should be scanned
--#
--# One of these variables are required:
--# LIBS - Library where the symbol represented in the gir can be found
--# PROGRAM - Program where the symbol represented in the gir can be found
--#
--# Optional variables
--# NAMESPACE - Namespace of the gir, first letter capital,
--# rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'.
--# If not present the namespace will be fetched from the gir filename,
--# the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'.
--# VERSION - Version of the gir, if not present, will be fetched from gir
--# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'.
--# LIBTOOL - Command to invoke libtool, usually set by automake
--# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list
--# CFLAGS - Flags to pass in to the parser when scanning headers
--# LDFLAGS - Linker flags used by the scanner
--# PACKAGES - list of pkg-config names which cflags are required to parse
--# the headers of this gir
--# INCLUDES - Gir files to include without the .gir suffix, for instance
--# GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that
--# provides introspection information.
--# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir.
--# By default the names in the PACKAGES variable will be used.
--#
--
--define introspection-scanner
--
--# Basic sanity check, to make sure required variables are set
--$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES))
--$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)),
-- $($(_gir_name)_LIBS),
-- $($(_gir_name)_PROGRAM)),,
-- $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM))
--
--# Only dependencies we know are actually filenames goes into _FILES, make
--# sure these are built before running the scanner. Libraries and programs
--# needs to be added manually.
--$(1): $$($(_gir_name)_FILES)
-- @ $(MKDIR_P) $(dir $(1))
-- $(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \
-- $(INTROSPECTION_SCANNER_ARGS) \
-- --namespace=$(_gir_namespace) \
-- --nsversion=$(_gir_version) \
-- $(_gir_libtool) \
-- $(_gir_packages) \
-- $(_gir_includes) \
-- $(_gir_export_packages) \
-- $(_gir_program) \
-- $(_gir_libraries) \
-- $($(_gir_name)_SCANNERFLAGS) \
-- $($(_gir_name)_CFLAGS) \
-- $($(_gir_name)_LDFLAGS) \
-- $$^ \
-- --output $(1)
--endef
--
--$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir))))
--
--#
--# Compiles a gir into a typelib
--# $(1): gir filename (input)
--# $(2): typelib filename (output)
--#
--define introspection-compiler
--$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2)
--endef
--
--# Simple rule to compile a typelib.
--%.typelib: %.gir
-- $(call introspection-compiler,$<,$@)
-diff --git a/introspection.m4 b/introspection.m4
-deleted file mode 100644
-index d89c3d9..0000000
---- a/introspection.m4
-+++ /dev/null
-@@ -1,96 +0,0 @@
--dnl -*- mode: autoconf -*-
--dnl Copyright 2009 Johan Dahlin
--dnl
--dnl This file is free software; the author(s) gives unlimited
--dnl permission to copy and/or distribute it, with or without
--dnl modifications, as long as this notice is preserved.
--dnl
--
--# serial 1
--
--m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
--[
-- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
-- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
-- AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
--
-- dnl enable/disable introspection
-- m4_if([$2], [require],
-- [dnl
-- enable_introspection=yes
-- ],[dnl
-- AC_ARG_ENABLE(introspection,
-- AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
-- [Enable introspection for this build]),,
-- [enable_introspection=auto])
-- ])dnl
--
-- AC_MSG_CHECKING([for gobject-introspection])
--
-- dnl presence/version checking
-- AS_CASE([$enable_introspection],
-- [no], [dnl
-- found_introspection="no (disabled, use --enable-introspection to enable)"
-- ],dnl
-- [yes],[dnl
-- PKG_CHECK_EXISTS([gobject-introspection-1.0],,
-- AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
-- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
-- found_introspection=yes,
-- AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
-- ],dnl
-- [auto],[dnl
-- PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
-- dnl Canonicalize enable_introspection
-- enable_introspection=$found_introspection
-- ],dnl
-- [dnl
-- AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
-- ])dnl
--
-- AC_MSG_RESULT([$found_introspection])
--
-- INTROSPECTION_SCANNER=
-- INTROSPECTION_COMPILER=
-- INTROSPECTION_GENERATE=
-- INTROSPECTION_GIRDIR=
-- INTROSPECTION_TYPELIBDIR=
-- if test "x$found_introspection" = "xyes"; then
-- INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
-- INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
-- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
-- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
-- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-- INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-- INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-- INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
-- fi
-- AC_SUBST(INTROSPECTION_SCANNER)
-- AC_SUBST(INTROSPECTION_COMPILER)
-- AC_SUBST(INTROSPECTION_GENERATE)
-- AC_SUBST(INTROSPECTION_GIRDIR)
-- AC_SUBST(INTROSPECTION_TYPELIBDIR)
-- AC_SUBST(INTROSPECTION_CFLAGS)
-- AC_SUBST(INTROSPECTION_LIBS)
-- AC_SUBST(INTROSPECTION_MAKEFILE)
--
-- AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
--])
--
--
--dnl Usage:
--dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
--
--AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
--[
-- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
--])
--
--dnl Usage:
--dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
--
--
--AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
--[
-- _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
--])
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
deleted file mode 100644
index 84e49c13a..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Stub implementation of gtk-doc"
-DESCRIPTION = "Stub implementation of gtk-doc, as we don't want to build the API documentation"
-SECTION = "x11/base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-PROVIDES = "gtk-doc"
-
-SRCREV = "1dea266593edb766d6d898c79451ef193eb17cfa"
-PV = "1.1+git${SRCPV}"
-
-SRC_URI = "git://git.gnome.org/${BPN} \
- file://0001-Revert-Import-introspection-stub-machinery-too.patch \
- "
-
-S = "${WORKDIR}/git"
-
-do_configure() {
- ./configure --prefix=${prefix} \
- --sysconfdir=${sysconfdir} \
- --bindir=${bindir} \
- --libdir=${libdir} \
- --datadir=${datadir} \
- --datarootdir=${datadir}
-}
-
-do_install() {
- oe_runmake install DESTDIR="${D}"
-}
-
-FILES_${PN} += "${datadir}"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-perl-is-not-found-or-its-version.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-perl-is-not-found-or-its-version.patch
new file mode 100644
index 000000000..4a9028742
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-perl-is-not-found-or-its-version.patch
@@ -0,0 +1,40 @@
+From e733241fb580f032efbbe684ec35d4c9d27f1595 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 8 Sep 2016 13:38:39 +0300
+Subject: [PATCH] Do not error out if perl is not found or its version is too
+ old.
+
+This allows use to avoid depending on perl-native if we're not going
+to use it (when api-docs are disabled).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2a61d6e..29415bd 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -36,7 +36,7 @@ dnl Check for Perl.
+ dnl
+ AC_PATH_PROG([PERL], [perl])
+ if test -z "$PERL"; then
+- AC_MSG_ERROR([perl not found])
++ AC_MSG_WARN([perl not found])
+ fi
+
+ AC_MSG_CHECKING([if Perl version >= 5.18.0])
+@@ -44,7 +44,7 @@ if "$PERL" -e "require v5.18.0"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+- AC_MSG_ERROR([perl >= 5.18.0 is required for gtk-doc])
++ AC_MSG_WARN([perl >= 5.18.0 is required for gtk-doc])
+ fi
+
+ dnl
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch
new file mode 100644
index 000000000..99ae4d441
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch
@@ -0,0 +1,31 @@
+From 8b7fbbb405959f2868ad6eadd7dd00018758a8a5 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 7 Sep 2016 14:52:04 +0300
+Subject: [PATCH] Do not error out if xsltproc is not found.
+
+This allows us to drop the hard xsltproc dependency, if we're not
+going to actually run the gtkdoc scripts (when api documentation is
+disabled).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b0c88d7..2a61d6e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,7 @@ dnl Check for xsltproc
+ dnl
+ AC_PATH_PROG([XSLTPROC], [xsltproc])
+ if test -z "$XSLTPROC"; then
+- AC_MSG_ERROR([xsltproc not found])
++ AC_MSG_WARN([xsltproc not found])
+ fi
+
+ dnl
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch
new file mode 100644
index 000000000..477fc9ae8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch
@@ -0,0 +1,139 @@
+From 6fab82b93c7bd301eb42448515b02f7cb3306897 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 31 Aug 2016 16:44:46 +0300
+Subject: [PATCH] Do not hardocode paths to perl/python in scripts.
+
+Doing so when the interpreters are somewhere deep in a sysroot directory
+can reach the shebang line limit, and resulting scripts wouldn't work
+on targets either.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gtkdoc-check.in | 2 +-
+ gtkdoc-common.pl.in | 2 +-
+ gtkdoc-depscan.in | 2 +-
+ gtkdoc-fixxref.in | 2 +-
+ gtkdoc-mkdb.in | 2 +-
+ gtkdoc-mktmpl.in | 2 +-
+ gtkdoc-rebase.in | 2 +-
+ gtkdoc-scan.in | 2 +-
+ gtkdoc-scangobj.in | 2 +-
+ tests/tools.sh.in | 4 ++--
+ 10 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/gtkdoc-check.in b/gtkdoc-check.in
+index 560d69b..b60857f 100755
+--- a/gtkdoc-check.in
++++ b/gtkdoc-check.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-common.pl.in b/gtkdoc-common.pl.in
+index 4747396..cfadb78 100644
+--- a/gtkdoc-common.pl.in
++++ b/gtkdoc-common.pl.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-depscan.in b/gtkdoc-depscan.in
+index 83af01b..917e247 100644
+--- a/gtkdoc-depscan.in
++++ b/gtkdoc-depscan.in
+@@ -1,4 +1,4 @@
+-#!@PYTHON@
++#!/usr/bin/env python
+
+ import gzip, os.path, re
+
+diff --git a/gtkdoc-fixxref.in b/gtkdoc-fixxref.in
+index 3d9e8d0..d55190b 100755
+--- a/gtkdoc-fixxref.in
++++ b/gtkdoc-fixxref.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in
+index 8dd6d5e..d808750 100755
+--- a/gtkdoc-mkdb.in
++++ b/gtkdoc-mkdb.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-mktmpl.in b/gtkdoc-mktmpl.in
+index c64dfd3..2f46c18 100755
+--- a/gtkdoc-mktmpl.in
++++ b/gtkdoc-mktmpl.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-rebase.in b/gtkdoc-rebase.in
+index 375482d..cf05b45 100644
+--- a/gtkdoc-rebase.in
++++ b/gtkdoc-rebase.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-scan.in b/gtkdoc-scan.in
+index 048e5c9..78c6136 100755
+--- a/gtkdoc-scan.in
++++ b/gtkdoc-scan.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/gtkdoc-scangobj.in b/gtkdoc-scangobj.in
+index fb66b76..67ee8f7 100644
+--- a/gtkdoc-scangobj.in
++++ b/gtkdoc-scangobj.in
+@@ -1,4 +1,4 @@
+-#!@PERL@ -w
++#!/usr/bin/env perl
+ # -*- cperl -*-
+ #
+ # gtk-doc - GTK DocBook documentation generator.
+diff --git a/tests/tools.sh.in b/tests/tools.sh.in
+index a114a42..7073883 100644
+--- a/tests/tools.sh.in
++++ b/tests/tools.sh.in
+@@ -11,7 +11,7 @@ echo "Running suite(s): gtk-doc-$suite";
+
+ # test perl scripts
+ for file in gtkdoc-check gtkdoc-fixxref gtkdoc-mkdb gtkdoc-mktmpl gtkdoc-rebase gtkdoc-scan gtkdoc-scangobj ; do
+- @PERL@ -cwT `which $file`
++ perl -cwT `which $file`
+ if test $? = 1 ; then failed=`expr $failed + 1`; fi
+ tested=`expr $tested + 1`
+ done
+@@ -34,7 +34,7 @@ done
+
+
+ # test python scripts
+-@PYTHON@ -m py_compile `which gtkdoc-depscan`
++python -m py_compile `which gtkdoc-depscan`
+ if test $? != 0 ; then failed=`expr $failed + 1`; fi
+ tested=`expr $tested + 1`
+
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
new file mode 100644
index 000000000..c7688704e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
@@ -0,0 +1,34 @@
+Use native pkg-config when looking for gtk-doc.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/gtk-doc.m4 b/gtk-doc.m4
+index 3675543..94881ae 100644
+--- a/gtk-doc.m4
++++ b/gtk-doc.m4
+@@ -1,6 +1,6 @@
+ dnl -*- mode: autoconf -*-
+
+-# serial 2
++# serial 2.1
+
+ dnl Usage:
+ dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
+@@ -10,11 +10,16 @@ AC_DEFUN([GTK_DOC_CHECK],
+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
++ gtkdoc_pkgconfig_save=$PKG_CONFIG
++ PKG_CONFIG=pkg-config-native
++
+ ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"])
+ AC_MSG_CHECKING([for gtk-doc])
+ PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no])
+ AC_MSG_RESULT($have_gtk_doc)
+
++ PKG_CONFIG=$gtkdoc_pkgconfig_save
++
+ if test "$have_gtk_doc" = "no"; then
+ AC_MSG_WARN([
+ You will not be able to create source packages with 'make dist'
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb
new file mode 100644
index 000000000..6af996e35
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Documentation generator for glib-based software"
+DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \
+ from glib-based software and produce a set of html documentation files from them"
+HOMEPAGE = "http://www.gtk.org/gtk-doc/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit gnomebase
+
+# Configure the scripts correctly (and build their dependencies) only if they are actually
+# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball.
+PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}"
+
+# This will cause target gtk-doc to hardcode paths of native dependencies
+# into its scripts. This means that target gtk-doc package is broken;
+# hopefully no one minds because its scripts are not used for anything during build
+# and shouldn't be used on targets.
+PACKAGECONFIG[working-scripts] = "--with-highlight=source-highlight,--with-highlight=no,libxslt-native xmlto-native source-highlight-native perl-native"
+
+# We cannot use host perl, because it may be too old for gtk-doc
+EXTRANATIVEPATH += "perl-native"
+
+SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \
+ file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
+ file://0001-Do-not-error-out-if-perl-is-not-found-or-its-version.patch \
+ "
+SRC_URI_append_class-native = " file://pkg-config-native.patch"
+
+SRC_URI[archive.md5sum] = "0dc6570953112a464a409fb99258ccbc"
+SRC_URI[archive.sha256sum] = "1ea46ed400e6501f975acaafea31479cea8f32f911dca4dff036f59e6464fd42"
+
+BBCLASSEXTEND = "native"
+
+# Do not check for XML catalogs when building because that
+# information is not used for anything during build. Recipe
+# dependencies make sure we have all the right bits.
+do_configure_prepend() {
+ sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac
+}
+
+FILES_${PN} += "${datadir}/sgml"
+FILES_${PN}-dev += "${libdir}/cmake"
+FILES_${PN}-doc = ""
+
+SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess"
+gtkdoc_makefiles_sysroot_preprocess() {
+ # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+ # instead of libtool wrapper or running them directly
+ sed -i \
+ -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+ ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make
+}
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch
deleted file mode 100644
index f0b878d37..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 8d49a386f467cbf8e0842d2218126f643e50f834 Mon Sep 17 00:00:00 2001
-From: Dominique Leuenberger <dimstar@opensuse.org>
-Date: Sun, 27 Nov 2011 14:24:57 +0000
-Subject: Fix build with glib 2.31: Only glib.h can be #include'd. Fixes bug #664914
-
-Upstream-Status: Backport
-
----
-diff --git a/engines/clearlooks/src/animation.c b/engines/clearlooks/src/animation.c
-index 1f7a41f..56a9286 100644
---- a/engines/clearlooks/src/animation.c
-+++ b/engines/clearlooks/src/animation.c
-@@ -28,7 +28,7 @@
- #include "animation.h"
-
- #ifdef HAVE_WORKING_ANIMATION
--#include <glib/gtimer.h>
-+#include <glib.h>
-
- struct _AnimationInfo {
- GTimer *timer;
---
-cgit v0.9.0.2
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch
deleted file mode 100644
index 5c557ba68..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream-Status: Pending
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd gtk-engines-2.20.2/configure.ac gtk-engines-2.20.2/configure.ac
---- gtk-engines-2.20.2/configure.ac 2010-10-01 15:42:37.000000000 +0300
-+++ gtk-engines-2.20.2/configure.ac 2013-08-20 02:50:27.930510565 +0300
-@@ -166,6 +166,9 @@
-
- AC_SUBST(DEVELOPMENT_CFLAGS)
-
-+AC_SUBST([exported_symbols_tests], [[$(EXPORTED_SYMBOLS_TESTS)]])
-+AC_SUBST([torture_test_tests], [[$(TORTURE_TEST_TESTS)]])
-+
- AM_CONFIG_HEADER([engines/support/config.h])
-
- AC_CONFIG_FILES([
-diff -Nurd gtk-engines-2.20.2/test/Makefile.am gtk-engines-2.20.2/test/Makefile.am
---- gtk-engines-2.20.2/test/Makefile.am 2010-09-19 18:18:21.000000000 +0300
-+++ gtk-engines-2.20.2/test/Makefile.am 2013-08-20 02:50:36.842510865 +0300
-@@ -66,7 +66,7 @@
- # Prefix with exported_
- EXPORTED_SYMBOLS_TESTS = $(patsubst %,exported_%,$(BUILD_ENGINES))
-
--TESTS += $(EXPORTED_SYMBOLS_TESTS)
-+TESTS += @exported_symbols_tests@
-
-
- #############################################################
-@@ -88,7 +88,7 @@
- TORTURE_TEST_TESTS = torture_buildin $(patsubst %,torture_%,$(TORTURE_TEST_ENGINES))
-
- # Add TORTURE_TEST_ENGINES to list of tests
--TESTS += $(TORTURE_TEST_TESTS)
-+TESTS += @torture_test_tests@
-
- # Possible other tests:
- # - An extensive theme switch tests that loads/unloads the engine
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb
deleted file mode 100644
index c0ac911a6..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "GTK+ theme engines"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-SECTION = "x11/base"
-DEPENDS = "intltool-native gtk+ gettext-native"
-
-PR = "r3"
-
-PACKAGES += "${PN}-schemas"
-PACKAGES_DYNAMIC += "^gtk-engine-.* ^gtk-theme-.*"
-
-RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95"
-RDEPENDS_gtk-theme-metal = "gtk-engine-metal"
-RDEPENDS_gtk-theme-mist = "gtk-engine-mist"
-RDEPENDS_gtk-theme-crux = "gtk-engine-crux-engine"
-RDEPENDS_gtk-theme-lighthouseblue = "gtk-engine-lighthouseblue"
-RDEPENDS_gtk-theme-thinice = "gtk-engine-thinice"
-RDEPENDS_gtk-theme-industrial = "gtk-engine-industrial"
-RDEPENDS_gtk-theme-clearlooks = "gtk-engine-clearlooks"
-
-FILES_${PN} = ""
-FILES_${PN}-dev += "${libdir}/gtk-2.0/*/engines/*.la"
-FILES_${PN}-schemas = "${datadir}/gtk-engines/*.xml"
-
-CFLAGS_prepend = "-DHAVE_ANIMATION "
-
-RDEPENDS_${PN}-dev = ""
-
-inherit gnomebase
-GNOME_COMPRESS_TYPE="bz2"
-
-inherit distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-# This picks stable releases in the 2.x series (but not 2.90 onwards,
-# which were GNOME 3 betas).
-UPSTREAM_CHECK_REGEX = "(?P<pver>2\.([0-8]*[02468])+(\.\d+)+)"
-
-python populate_packages_prepend() {
- engines_root = os.path.join(d.getVar('libdir', True), "gtk-2.0/2.10.0/engines")
- themes_root = os.path.join(d.getVar('datadir', True), "themes")
-
- do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='')
- do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='')
- # TODO: mark theme packages as arch all
-}
-
-SRC_URI += "file://glib-2.32.patch \
- file://substitute-tests.patch"
-SRC_URI[archive.md5sum] = "5deb287bc6075dc21812130604c7dc4f"
-SRC_URI[archive.sha256sum] = "15b680abca6c773ecb85253521fa100dd3b8549befeecc7595b10209d62d66b5"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb
deleted file mode 100644
index 3ce38cec5..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "JSON-GLib implements a full JSON parser using GLib and GObject"
-DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\
- data structures, using a DOM-like API. JSON-GLib also offers GObject \
-integration, providing the ability to serialize and deserialize GObject \
-instances to and from JSON data types."
-HOMEPAGE = "http://live.gnome.org/JsonGlib"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI[archive.md5sum] = "3131b0417ecde3da1ae72acceaa375cf"
-SRC_URI[archive.sha256sum] = "80f3593cb6bd13f1465828e46a9f740e2e9bd3cd2257889442b3e62bd6de05cd"
-
-inherit gnomebase gettext lib_package gobject-introspection
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.2.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.2.2.bb
new file mode 100644
index 000000000..8df2a42b9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.2.2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "JSON-GLib implements a full JSON parser using GLib and GObject"
+DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\
+ data structures, using a DOM-like API. JSON-GLib also offers GObject \
+integration, providing the ability to serialize and deserialize GObject \
+instances to and from JSON data types."
+HOMEPAGE = "http://live.gnome.org/JsonGlib"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI[archive.md5sum] = "c1daefb8d0fb59612af0c072c8aabb58"
+SRC_URI[archive.sha256sum] = "ea128ab52a824fcd06e5448fbb2bd8d9a13740d51c66d445828edba71321a621"
+
+inherit gnomebase gettext lib_package gobject-introspection gtk-doc
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
deleted file mode 100644
index c5d586465..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-Upstream-Status: Pending
-
-diff -ur libglade-2.4.0~/configure.in libglade-2.4.0/configure.in
---- libglade-2.4.0~/configure.in 2004-05-17 12:38:31.000000000 +0100
-+++ libglade-2.4.0/configure.in 2004-07-28 16:53:09.000000000 +0100
-@@ -147,6 +147,18 @@
- AM_CONDITIONAL(HAVE_PYTHON, $have_python)
- AC_SUBST(PYTHON)
-
-+AC_MSG_CHECKING([for cruft in libgtk])
-+AC_TRY_LINK([
-+#include <gtk/gtk.h>
-+#include <stdio.h>
-+], [ gtk_tree_get_type (); return 0; ],
-+ [ AC_MSG_RESULT(yes)
-+ have_cruft=yes ],
-+ [ AC_MSG_RESULT(no)
-+ AC_DEFINE(DISABLE_CRUFT,,[leave out support for old, broken widgets])
-+ have_cruft=no ])
-+AC_SUBST(DISABLE_CRUFT)
-+
- dnl add debugging options ...
- changequote(,)dnl
- if test "x$GCC" = xyes; then
-Only in libglade-2.4.0: configure.in.orig
-diff -ur libglade-2.4.0~/glade/glade-gtk.c libglade-2.4.0/glade/glade-gtk.c
---- libglade-2.4.0~/glade/glade-gtk.c 2004-03-13 13:47:35.000000000 +0000
-+++ libglade-2.4.0/glade/glade-gtk.c 2004-07-28 16:53:52.000000000 +0100
-@@ -213,6 +213,8 @@
- gtk_clist_column_titles_hide (GTK_CLIST (w));
- }
-
-+#ifndef DISABLE_CRUFT
-+
- static void
- tree_set_selection_mode (GladeXML *xml, GtkWidget *w,
- const char *name, const char *value)
-@@ -238,6 +240,8 @@
- gtk_tree_set_view_lines (GTK_TREE (w), BOOL (value));
- }
-
-+#endif
-+
- static void
- list_set_selection_mode (GladeXML *xml, GtkWidget *w,
- const char *name, const char *value)
-@@ -254,6 +258,7 @@
- gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (w), BOOL (value));
- }
-
-+#ifndef DISABLE_CRUFT
- static void
- text_set_text (GladeXML *xml, GtkWidget *w,
- const char *name, const char *value)
-@@ -262,6 +267,7 @@
-
- gtk_editable_insert_text (GTK_EDITABLE (w), value, -1, &pos);
- }
-+#endif
-
- static void
- radio_menu_item_set_group (GladeXML *xml, GtkWidget *w,
-@@ -1125,13 +1131,17 @@
- glade_register_custom_prop (GTK_TYPE_CLIST, "selection_mode", clist_set_selection_mode);
- glade_register_custom_prop (GTK_TYPE_CLIST, "shadow_type", clist_set_shadow_type);
- glade_register_custom_prop (GTK_TYPE_CLIST, "show_titles", clist_set_show_titles);
-+#ifndef DISABLE_CRUFT
- glade_register_custom_prop (GTK_TYPE_TREE, "selection_mode", tree_set_selection_mode);
- glade_register_custom_prop (GTK_TYPE_TREE, "view_mode", tree_set_view_mode);
- glade_register_custom_prop (GTK_TYPE_TREE, "view_line", tree_set_view_line);
-+#endif
- glade_register_custom_prop (GTK_TYPE_LIST, "selection_mode", list_set_selection_mode);
- glade_register_custom_prop (GTK_TYPE_CHECK_MENU_ITEM, "always_show_toggle",
- check_menu_item_set_always_show_toggle);
-+#ifndef DISABLE_CRUFT
- glade_register_custom_prop (GTK_TYPE_TEXT, "text", text_set_text);
-+#endif
- glade_register_custom_prop (GTK_TYPE_RADIO_MENU_ITEM, "group",
- radio_menu_item_set_group);
- glade_register_custom_prop (GTK_TYPE_TOOLBAR, "tooltips", toolbar_set_tooltips);
-@@ -1288,8 +1298,10 @@
- glade_standard_build_children, NULL);
- glade_register_widget (GTK_TYPE_TEAROFF_MENU_ITEM, glade_standard_build_widget,
- NULL, NULL);
-+#ifndef DISABLE_CRUFT
- glade_register_widget (GTK_TYPE_TEXT, glade_standard_build_widget,
- NULL, NULL);
-+#endif
- glade_register_widget (GTK_TYPE_TEXT_VIEW, glade_standard_build_widget,
- NULL, NULL);
- glade_register_widget (GTK_TYPE_TIPS_QUERY, glade_standard_build_widget,
-@@ -1304,8 +1316,10 @@
- glade_standard_build_children, NULL);
- glade_register_widget (GTK_TYPE_TOOL_BUTTON, glade_standard_build_widget,
- NULL, NULL);
-+#ifndef DISABLE_CRUFT
- glade_register_widget (GTK_TYPE_TREE, glade_standard_build_widget,
- NULL, NULL);
-+#endif
- glade_register_widget (GTK_TYPE_TREE_VIEW, glade_standard_build_widget,
- NULL, NULL);
- glade_register_widget (GTK_TYPE_VBUTTON_BOX, glade_standard_build_widget,
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
deleted file mode 100644
index dc4c092fd..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
+++ /dev/null
@@ -1,501 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff -urN libglade-2.4.2.orig/configure.in libglade-2.4.2/configure.in
---- libglade-2.4.2.orig/configure.in 2005-02-11 12:42:58.000000000 +0100
-+++ libglade-2.4.2/configure.in 2005-03-22 01:22:00.000000000 +0100
-@@ -52,11 +52,33 @@
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
- PKG_CHECK_MODULES(LIBGLADE, [dnl
-- libxml-2.0 >= required_libxml_version dnl
- atk >= required_atk_version dnl
- gtk+-2.0 >= required_gtk_version dnl
- glib-2.0 >= required_glib_version])
-
-+disable_xml2=no
-+AC_ARG_WITH([libxml2],
-+ AC_HELP_STRING([--without-libxml2], [Don't use libxml2, use Glib's GMarkupParser instead]),
-+ [disable_xml2=yes],
-+ [disable_xml2=no])
-+
-+AC_MSG_CHECKING([if we are using libxml2])
-+if test "x$disable_xml2" == "xno"; then
-+ AC_MSG_RESULT(yes)
-+ PKG_CHECK_MODULES(XML2, libxml-2.0 >= 2.4.10)
-+ PKGCFG_REQUIRE_LIBXML2="libxml-2.0"
-+ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS $XML2_CFLAGS"
-+ LIBGLADE_LIBS="$LIBGLADE_LIBS $XML2_LIBS"
-+else
-+ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS -DUSE_GMARKUP_PARSER"
-+ PKGCFG_REQUIRE_LIBXML2=""
-+ AC_MSG_RESULT(no)
-+fi
-+
-+AC_SUBST(XML2_LIBS)
-+AC_SUBST(XML2_CFLAGS)
-+AC_SUBST(PKGCFG_REQUIRE_LIBXML2)
-+
- AC_MSG_CHECKING([for native Win32])
- case "$host" in
- *-*-mingw*)
-@@ -116,6 +138,21 @@
- fi
- fi
-
-+if test "x$disable_xml2" == "xyes"; then
-+ echo "*****************************************************"
-+ echo " You chose to disable libxml2 and use Glib's"
-+ echo " GMarkupParser instead."
-+ echo
-+ echo " Please bear in mind that using libglade with"
-+ echo " GMarkupParser is an experimental feature only."
-+ echo
-+ echo " Please post problems or success stories to"
-+ echo " the glade-devel mailing list. Thank you."
-+ echo "*****************************************************"
-+fi
-+
-+
-+
- GTK_DOC_CHECK(1.0)
-
- dnl gettext stuff ... there is no message catalog for libglade -- libglade
-diff -urN libglade-2.4.2.orig/glade/glade-parser.c libglade-2.4.2/glade/glade-parser.c
---- libglade-2.4.2.orig/glade/glade-parser.c 2004-11-11 11:56:13.000000000 +0100
-+++ libglade-2.4.2/glade/glade-parser.c 2005-03-22 01:20:00.000000000 +0100
-@@ -34,7 +34,15 @@
- # define dgettext(Domain, String) (String)
- #endif
-
--#include <libxml/parser.h>
-+#ifdef USE_GMARKUP_PARSER
-+# include <zlib.h>
-+#else
-+# include <libxml/parser.h>
-+#endif
-+
-+#ifdef USE_GMARKUP_PARSER
-+# define xmlChar gchar
-+#endif
-
- #include "glade-parser.h"
- #include "glade-private.h"
-@@ -508,7 +516,9 @@
- case PARSER_START:
- if (!strcmp(name, "glade-interface")) {
- state->state = PARSER_GLADE_INTERFACE;
--#if 0
-+
-+#ifndef USE_GMARKUP_PARSER
-+ #if 0
- /* check for correct XML namespace */
- for (i = 0; attrs && attrs[i] != NULL; i += 2) {
- if (!strcmp(attrs[i], "xmlns") &&
-@@ -518,7 +528,9 @@
- g_warning("unknown attribute `%s' for <glade-interface>",
- attrs[i]);
- }
-+ #endif
- #endif
-+
- } else {
- g_warning("Expected <glade-interface>. Got <%s>.", name);
- state->prev_state = state->state;
-@@ -1063,12 +1075,18 @@
- }
- }
-
-+#ifndef USE_GMARKUP_PARSER
-+
- static xmlEntityPtr
- glade_parser_get_entity(GladeParseState *state, const xmlChar *name)
- {
- return xmlGetPredefinedEntity(name);
- }
-
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_warning(GladeParseState *state, const char *msg, ...)
- {
-@@ -1079,6 +1097,10 @@
- va_end(args);
- }
-
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_error(GladeParseState *state, const char *msg, ...)
- {
-@@ -1089,6 +1111,10 @@
- va_end(args);
- }
-
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- glade_parser_fatal_error(GladeParseState *state, const char *msg, ...)
- {
-@@ -1099,6 +1125,10 @@
- va_end(args);
- }
-
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static xmlSAXHandler glade_parser = {
- (internalSubsetSAXFunc)NULL, /* internalSubset */
- (isStandaloneSAXFunc)NULL, /* isStandalone */
-@@ -1126,6 +1156,82 @@
- (fatalErrorSAXFunc)glade_parser_fatal_error, /* fatalError */
- };
-
-+#else /* USE_GMARKUP_PARSER */
-+
-+static void
-+glade_parser_start_element_wrapper(GMarkupParseContext *context,
-+ const gchar *name,
-+ const gchar **attr_names,
-+ const gchar **attr_values,
-+ gpointer state,
-+ GError **error)
-+{
-+ guint i = 0;
-+
-+ /* Pack attribute names/values from two separate
-+ * arrays (GMarkupParser style) into one single
-+ * array (libxml SAXParser style). This is not
-+ * very efficient, but we do it to make the
-+ * GMarkupParser code as little invasive as
-+ * possible. */
-+
-+ while (attr_names[i] != NULL) {
-+ ++i;
-+ }
-+
-+ if (1)
-+ {
-+ const gchar *attr[(i*2)+1];
-+ guint j, k;
-+
-+ for (j=0, k=0; k < i; j += 2)
-+ {
-+ attr[j] = attr_names[k];
-+ attr[j+1] = attr_values[k];
-+ ++k;
-+ }
-+ attr[i*2] = NULL;
-+
-+ glade_parser_start_element((GladeParseState*)state, name, attr);
-+ }
-+}
-+
-+static void
-+glade_parser_end_element_wrapper(GMarkupParseContext *context,
-+ const gchar *name,
-+ gpointer state,
-+ GError **err)
-+{
-+ glade_parser_end_element((GladeParseState*)state, name);
-+}
-+
-+static void
-+glade_parser_characters_wrapper(GMarkupParseContext *context,
-+ const gchar *chars,
-+ gsize len,
-+ gpointer state,
-+ GError **err)
-+{
-+ glade_parser_characters((GladeParseState*)state, chars, (int) len);
-+}
-+
-+static void
-+glade_parser_error(GMarkupParseContext *context, GError *err, gpointer data)
-+{
-+ g_log("Glade-Parser", G_LOG_LEVEL_CRITICAL, "%s", err->message);
-+}
-+
-+static const GMarkupParser glade_parser = {
-+ glade_parser_start_element_wrapper, /* element open */
-+ glade_parser_end_element_wrapper, /* element close */
-+ glade_parser_characters_wrapper, /* text content */
-+ NULL, /* passthrough */
-+ glade_parser_error, /* parse error */
-+};
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
- static void
- widget_info_free(GladeWidgetInfo *info)
- {
-@@ -1191,6 +1297,9 @@
- *
- * Returns: the GladeInterface structure for the XML file.
- */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- GladeInterface *
- glade_parser_parse_file(const gchar *file, const gchar *domain)
- {
-@@ -1222,6 +1331,31 @@
- return state.interface;
- }
-
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+GladeInterface *
-+glade_parser_parse_file(const gchar *file, const gchar *domain)
-+{
-+ GladeInterface *interface;
-+ GError *err = NULL;
-+ gchar *content = NULL;
-+ gsize clen;
-+
-+ if (!g_file_get_contents(file, &content, &clen, &err)) {
-+ g_warning("could not load glade file: %s", err->message);
-+ g_error_free(err);
-+ return NULL;
-+ }
-+
-+ interface = glade_parser_parse_buffer(content, (gint) clen, domain);
-+
-+ g_free(content);
-+
-+ return interface;
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
- /**
- * glade_parser_parse_buffer
- * @buffer: a buffer in memory containing XML data.
-@@ -1237,6 +1371,9 @@
- *
- * Returns: the GladeInterface structure for the XML buffer.
- */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- GladeInterface *
- glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain)
- {
-@@ -1263,6 +1400,161 @@
- return state.interface;
- }
-
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+
-+static GladeInterface *
-+glade_parser_parse_buffer_internal(const gchar *buffer, gint len, const gchar *domain)
-+{
-+ GMarkupParseContext *context;
-+ GladeParseState state = { 0 };
-+ GError *err = NULL;
-+
-+ state.interface = NULL;
-+ if (domain)
-+ state.domain = domain;
-+ else
-+ state.domain = textdomain(NULL);
-+
-+ /* FIXME: This strstr() is not safe, as it ignores the len
-+ * argument and assumes the buffer is NUL-terminated */
-+ if (strstr(buffer, "<?xml") == NULL) {
-+ g_warning("No XML header found in document!");
-+ return NULL;
-+ }
-+
-+ context = g_markup_parse_context_new(&glade_parser, (GMarkupParseFlags) 0, &state, NULL);
-+
-+ glade_parser_start_document(&state);
-+
-+ if (!g_markup_parse_context_parse(context, buffer, (gssize) len, &err)) {
-+ g_warning("document not well formed: %s", err->message);
-+ g_error_free(err);
-+ if (state.interface)
-+ glade_interface_destroy (state.interface);
-+ return NULL;
-+ }
-+
-+ glade_parser_end_document(&state);
-+
-+ if (state.state != PARSER_FINISH) {
-+ g_warning("did not finish in PARSER_FINISH state!");
-+
-+ if (state.interface)
-+ glade_interface_destroy(state.interface);
-+
-+ return NULL;
-+ }
-+
-+ return state.interface;
-+}
-+
-+struct _gzip_rfc1952_hdr
-+{
-+ guint8 id1, id2, cm, flags;
-+ guint32 mtime;
-+ guint8 xflags;
-+ guint8 os;
-+};
-+
-+static GladeInterface *
-+glade_parser_parse_gzipped_buffer(const gchar *buffer, gint len, const gchar *domain)
-+{
-+ struct _gzip_rfc1952_hdr *hdr = (struct _gzip_rfc1952_hdr*)buffer;
-+ struct z_stream_s zstream;
-+ GladeInterface *interface;
-+ const guint8 *cbuf; /* start of compressed data */
-+ guint8 *decompress_buf;
-+ gulong decompress_len = 0;
-+ gint ret;
-+
-+ g_assert(hdr != NULL && hdr->id1 == 0x1f && hdr->id2 == 0x8b);
-+
-+ if (hdr->cm != Z_DEFLATED) {
-+ g_warning("Unknown decompression method %u", (guint) hdr->cm);
-+ return NULL;
-+ }
-+
-+ /* Uncompressed size (modulo 2^32) is last
-+ * 4 bytes of gzipped file, and little endian.
-+ * See RFC 1952 */
-+ decompress_len = GUINT32_FROM_LE(*((guint32*)(((guint8*)buffer) + len - 4)));
-+
-+ /* paranoid mode: glade files > 5MB are unlikely */
-+ g_return_val_if_fail(decompress_len < 5*1024*1024, NULL);
-+
-+ decompress_buf = g_malloc0(decompress_len + 1); /* +1 for NUL-terminator */
-+
-+ /* find start of compressed data, skipping header stuff */
-+ cbuf = (guint8*)buffer + 10;
-+ if (hdr->flags & 0x04) {
-+ guint16 xlen = GUINT16_FROM_LE(*((guint16*)cbuf));
-+ cbuf += xlen + 2;
-+ }
-+ if (hdr->flags & 0x08) {
-+ guint16 onamelen = strlen(cbuf);
-+ cbuf += onamelen + 1;
-+ }
-+ if (hdr->flags & 0x10) {
-+ guint16 commentlen = strlen(cbuf);
-+ cbuf += commentlen + 1;
-+ }
-+ if (hdr->flags & 0x02)
-+ {
-+ cbuf += 2; /* skip header CRC16 */
-+ }
-+
-+ zstream.next_in = (void*)cbuf;
-+ zstream.avail_in = (uLongf) len - ((void*)cbuf-(void*)buffer) - 4 - 4 +1;
-+ zstream.next_out = decompress_buf;
-+ zstream.avail_out= decompress_len;
-+ zstream.zalloc = Z_NULL;
-+ zstream.zfree = Z_NULL;
-+ zstream.opaque = Z_NULL;
-+
-+ ret = inflateInit2(&zstream, -MAX_WBITS);
-+
-+ if (ret != Z_OK) {
-+ g_warning("inflateInit2() failed. zlib error code: %d", ret);
-+ g_free(decompress_buf);
-+ return NULL;
-+ }
-+
-+ ret = inflate(&zstream, Z_FINISH);
-+
-+ if (ret != Z_STREAM_END) {
-+ g_warning("zlib decompression failed. zlib error code: %d", ret);
-+ g_free(decompress_buf);
-+ return NULL;
-+ }
-+
-+ interface = glade_parser_parse_buffer_internal(decompress_buf, decompress_len, domain);
-+
-+ g_free(decompress_buf);
-+
-+ return interface;
-+}
-+
-+GladeInterface *
-+glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain)
-+{
-+ g_return_val_if_fail(buffer != NULL, NULL);
-+ g_return_val_if_fail(len > 0, NULL);
-+
-+ /* Check if buffer is gzipped */
-+ if (buffer[0] == 0x1f && buffer[1] == (gchar)0x8b) {
-+ return glade_parser_parse_gzipped_buffer(buffer, len, domain);
-+ }
-+
-+ /* Buffer is cleartext. */
-+ return glade_parser_parse_buffer_internal(buffer, len, domain);
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- static void
- dump_widget(xmlNode *parent, GladeWidgetInfo *info, gint indent)
- {
-@@ -1382,6 +1674,8 @@
- xmlNodeAddContent(widget, " ");
- }
-
-+#endif /* !defined(USE_GMARKUP_PARSER) */
-+
- /**
- * glade_interface_dump
- * @interface: the GladeInterface
-@@ -1390,6 +1684,9 @@
- * This function dumps the contents of a GladeInterface into a file as
- * XML. It is intended mainly as a debugging tool.
- */
-+
-+#ifndef USE_GMARKUP_PARSER
-+
- void
- glade_interface_dump(GladeInterface *interface, const gchar *filename)
- {
-@@ -1428,6 +1725,17 @@
- xmlFreeDoc(doc);
- }
-
-+#else /* defined(USE_GMARKUP_PARSER) */
-+
-+void
-+glade_interface_dump(GladeInterface *interface, const gchar *filename)
-+{
-+ g_warning("glade_interface_dump() is only available with libxml2.");
-+}
-+
-+#endif /* USE_GMARKUP_PARSER */
-+
-+
- #if 0
- int
- main(int argc, char **argv) {
-diff -urN libglade-2.4.2.orig/libglade-2.0.pc.in libglade-2.4.2/libglade-2.0.pc.in
---- libglade-2.4.2.orig/libglade-2.0.pc.in 2001-12-12 15:28:23.000000000 +0100
-+++ libglade-2.4.2/libglade-2.0.pc.in 2005-03-22 01:20:00.000000000 +0100
-@@ -11,7 +11,7 @@
- Name: Libglade
- Description: a library for dynamically loading GLADE interface files
- Version: @VERSION@
--Requires: gtk+-2.0 libxml-2.0
-+Requires: gtk+-2.0 @PKGCFG_REQUIRE_LIBXML2@
- Libs: -L${libdir} -lglade-2.0
- Cflags: -I${includedir}/libglade-2.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
deleted file mode 100644
index b5b2ec453..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Using @PYTHON@ for this path would result in the build system python being
-referred to. Instead we want to locate python from the environment.
-
-Upstream-Status: Inappropriate [configuration]
-
-diff -ruN libglade-2.6.4-orig//libglade-convert.in libglade-2.6.4/libglade-convert.in
---- libglade-2.6.4-orig//libglade-convert.in 2011-09-22 10:18:28.991164003 +0800
-+++ libglade-2.6.4/libglade-convert.in 2011-09-22 10:18:55.431164003 +0800
-@@ -1,4 +1,4 @@
--#!@PYTHON@
-+#!/usr/bin/env python
- # -*- mode: python -*-
-
- # yes, this requires python 2.x and an XML parser module (eg. PyExpat)
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb
deleted file mode 100644
index 553e19c60..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Runtime support for the GTK+ interface builder"
-HOMEPAGE = "http://library.gnome.org/devel/libglade/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
- file://glade/glade.h;endline=22;md5=a04f461c964ba4b57a172d1fbcd8f8fc \
- file://glade/glade-gtk.c;endline=22;md5=766f993433e2642fec87936d319990ff"
-
-SECTION = "libs"
-PR = "r5"
-DEPENDS = "zlib gdk-pixbuf gtk+"
-
-inherit autotools pkgconfig gnomebase gtk-doc distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-GNOME_COMPRESS_TYPE="bz2"
-
-SRC_URI += "file://glade-cruft.patch file://no-xml2.patch file://python_environment.patch"
-
-SRC_URI[archive.md5sum] = "d1776b40f4e166b5e9c107f1c8fe4139"
-SRC_URI[archive.sha256sum] = "64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec"
-
-EXTRA_OECONF += "--without-libxml2"
-
-CFLAGS += "-lz"
-
-PACKAGES += " ${PN}-data"
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-data = "${datadir}/xml/libglade/glade-2.0.dtd"
-FILES_${PN}-dev += "${bindir}/libglade-convert"
-#RDEPENDS_${PN} = "${PN}-data"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb b/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb
index 6a105023b..709553bd0 100644
--- a/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb
+++ b/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb
@@ -10,5 +10,7 @@ RCONFLICTS_${PN} = "systemd (<= 220)"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-inherit gnomebase gobject-introspection
+inherit gnomebase gobject-introspection gtk-doc
+UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb
deleted file mode 100644
index 2ac52f779..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Library for rendering SVG files"
-HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6"
-
-SECTION = "x11/utils"
-DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
-BBCLASSEXTEND = "native"
-
-inherit autotools pkgconfig gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection
-
-SRC_URI += "file://gtk-option.patch"
-
-SRC_URI[archive.md5sum] = "ad03780e12c56e52474d8edf86976c73"
-SRC_URI[archive.sha256sum] = "4d6ea93ec05f5dabe7262d711d246a0a99b2311e215360dd3dcabd6afe3b9804"
-
-CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
-
-# The older ld (2.22) on the host (Centos 6.5) doesn't have the
-# -Bsymbolic-functions option, we can disable it for native.
-EXTRA_OECONF_append_class-native = " --enable-Bsymbolic=auto"
-
-PACKAGECONFIG ??= "gdkpixbuf"
-# The gdk-pixbuf loader
-PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
-# GTK+ test application (rsvg-view)
-PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
-
-do_install_append() {
- # Loadable modules don't need .a or .la on Linux
- rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
-}
-
-PACKAGES =+ "librsvg-gtk rsvg"
-FILES_rsvg = "${bindir}/rsvg* \
- ${datadir}/pixmaps/svg-viewer.svg \
- ${datadir}/themes"
-FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so"
-
-PIXBUF_PACKAGES = "librsvg-gtk"
-
-PIXBUFCACHE_SYSROOT_DEPS_append_class-native = " harfbuzz-native:do_populate_sysroot_setscene pango-native:do_populate_sysroot_setscene icu-native:do_populate_sysroot_setscene"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb
new file mode 100644
index 000000000..49243c8aa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.16.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Library for rendering SVG files"
+HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6"
+
+SECTION = "x11/utils"
+DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango"
+BBCLASSEXTEND = "native"
+
+inherit autotools pkgconfig gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection
+
+SRC_URI += "file://gtk-option.patch"
+
+SRC_URI[archive.md5sum] = "f474fe37177a2bf8050787df2046095c"
+SRC_URI[archive.sha256sum] = "d48bcf6b03fa98f07df10332fb49d8c010786ddca6ab34cbba217684f533ff2e"
+
+CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
+
+# The older ld (2.22) on the host (Centos 6.5) doesn't have the
+# -Bsymbolic-functions option, we can disable it for native.
+EXTRA_OECONF_append_class-native = " --enable-Bsymbolic=auto"
+
+PACKAGECONFIG ??= "gdkpixbuf"
+# The gdk-pixbuf loader
+PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native"
+# GTK+ test application (rsvg-view)
+PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3"
+
+do_install_append() {
+ # Loadable modules don't need .a or .la on Linux
+ rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la
+}
+
+PACKAGES =+ "librsvg-gtk rsvg"
+FILES_rsvg = "${bindir}/rsvg* \
+ ${datadir}/pixmaps/svg-viewer.svg \
+ ${datadir}/themes"
+FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so"
+
+PIXBUF_PACKAGES = "librsvg-gtk"
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb
deleted file mode 100644
index beaaba03e..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
-
-inherit gnomebase gtk-doc vala gobject-introspection
-
-DEPENDS += "glib-2.0 libgcrypt gettext-native intltool-native"
-
-EXTRA_OECONF += "--disable-manpages"
-
-SRC_URI[archive.md5sum] = "5190da1ee686437046bc10068f120d1d"
-SRC_URI[archive.sha256sum] = "0f29b51698198e6999c91f4adce3119c8c457f546b133a85baea5ea9010a19ed"
-
-# http://errors.yoctoproject.org/Errors/Details/20228/
-ARM_INSTRUCTION_SET = "arm"
-
-# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes
-do_configure_prepend() {
- rm -f ${S}/build/m4/vapigen.m4
-}
-
-# Secret-1: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
-# qemu: uncaught target signal 6 (Aborted) - core dumped
-EXTRA_OECONF_append_mips64 = " --disable-introspection"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb b/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb
new file mode 100644
index 000000000..bcb3046dd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb
@@ -0,0 +1,25 @@
+SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
+
+inherit gnomebase gtk-doc vala gobject-introspection
+
+DEPENDS += "glib-2.0 libgcrypt gettext-native intltool-native"
+
+EXTRA_OECONF += "--disable-manpages"
+
+SRC_URI[archive.md5sum] = "2d688825921313da8731313b0a7f394c"
+SRC_URI[archive.sha256sum] = "9ce7bd8dd5831f2786c935d82638ac428fa085057cc6780aba0e39375887ccb3"
+
+# http://errors.yoctoproject.org/Errors/Details/20228/
+ARM_INSTRUCTION_SET = "arm"
+
+# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes
+do_configure_prepend() {
+ rm -f ${S}/build/m4/vapigen.m4
+}
+
+# Secret-1: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
+# qemu: uncaught target signal 6 (Aborted) - core dumped
+EXTRA_OECONF_append_mips64 = " --disable-introspection --disable-gtk-doc"
+
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb b/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb
deleted file mode 100644
index 495894b89..000000000
--- a/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "libwnck"
-
-SECTION = "x11/libs"
-DEPENDS = "gtk+3 gdk-pixbuf-native libxres"
-
-PACKAGECONFIG ??= "startup-notification"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-inherit gnomebase gobject-introspection
-SRC_URI[archive.md5sum] = "d96c0b74c4dc5fdae758964098603c90"
-SRC_URI[archive.sha256sum] = "bb643c9c423c8aa79c59973ce27ce91d3b180d1e9907902278fb79391f52befa"
-
-inherit distro_features_check
-# libxres means x11 only
-REQUIRED_DISTRO_FEATURES = "x11"
-
diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb b/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb
new file mode 100644
index 000000000..fd4ef6949
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Window navigation construction toolkit"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+BPN = "libwnck"
+
+SECTION = "x11/libs"
+DEPENDS = "intltool-native gtk+3 gdk-pixbuf-native libxres"
+
+PACKAGECONFIG ??= "startup-notification"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+
+inherit gnomebase gobject-introspection gtk-doc
+SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492"
+SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72"
+
+inherit distro_features_check
+# libxres means x11 only
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/builder/files/builder_session.sh b/import-layers/yocto-poky/meta/recipes-graphics/builder/files/builder_session.sh
index 001a03357..4e509a701 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/builder/files/builder_session.sh
+++ b/import-layers/yocto-poky/meta/recipes-graphics/builder/files/builder_session.sh
@@ -23,8 +23,8 @@ if [ ! -d /home/builder/.local/share/applications ]; then
xdg-mime default epiphany.desktop x-scheme-handler/https
xdg-mime default epiphany.desktop text/html
- #register text files with leafpad text editor
- xdg-mime default leafpad.desktop text/plain
+ #register text files with l3afpad text editor
+ xdg-mime default l3afpad.desktop text/plain
fi
cd /home/builder/poky
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo.inc b/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo.inc
index c7e686d5a..c4b6f329e 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo.inc
+++ b/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo.inc
@@ -36,7 +36,7 @@ EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)} \
--enable-tee \
"
-inherit autotools pkgconfig
+inherit autotools pkgconfig upstream-version-is-even gtk-doc
# We don't depend on binutils so we need to disable this
export ac_cv_lib_bfd_bfd_openr="no"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo_1.14.6.bb b/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo_1.14.6.bb
index 20b46689f..d2c1e12cd 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo_1.14.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/cairo/cairo_1.14.6.bb
@@ -7,8 +7,6 @@ SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz"
SRC_URI[md5sum] = "23a0b2f0235431d35238df1d3a517fdb"
SRC_URI[sha256sum] = "613cb38447b76a93ff7235e17acd55a78b52ea84a9df128c3f2257f8eaa7b252"
-UPSTREAM_CHECK_REGEX = "cairo-(?P<pver>\d+(\.\d+)+)\.tar"
-
PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
SUMMARY_${PN} = "The Cairo 2D vector graphics library"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb
index 127f0a1c3..e3e4cde2c 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_git.bb
@@ -10,10 +10,11 @@ SECTION = "fonts"
LICENSE = "OFL-1.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=df91e3ffcab8cfb972a66bf11255188d"
-PV = "0.0.21+git${SRCPV}"
+PV = "0.0.24"
-SRCREV = "611c169df5287c059d63b0c8f0570647c75c9189"
+SRCREV = "07b6ea2cbbebfc360aa4668612a376be5e214eaa"
SRC_URI = "git://git.gnome.org/cantarell-fonts;protocol=git;branch=master"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!0\.13)(?!0\.10\.1)\d+\.\d+(\.\d+)+)"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
new file mode 100644
index 000000000..7b3c1980b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
@@ -0,0 +1,143 @@
+From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 2 Sep 2016 14:28:38 +0300
+Subject: [PATCH] Remove clutter.types as it is build configuration-specific.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ doc/reference/clutter.types | 122 --------------------------------------------
+ 1 file changed, 122 deletions(-)
+ delete mode 100644 doc/reference/clutter.types
+
+diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types
+deleted file mode 100644
+index 0037acc..0000000
+--- a/doc/reference/clutter.types
++++ /dev/null
+@@ -1,122 +0,0 @@
+-cally_actor_get_type
+-cally_clone_get_type
+-cally_group_get_type
+-cally_rectangle_get_type
+-cally_root_get_type
+-cally_stage_get_type
+-cally_text_get_type
+-cally_texture_get_type
+-cally_util_get_type
+-clutter_action_get_type
+-clutter_actor_box_get_type
+-clutter_actor_get_type
+-clutter_actor_meta_get_type
+-clutter_align_constraint_get_type
+-clutter_alpha_get_type
+-clutter_animatable_get_type
+-clutter_animation_get_type
+-clutter_animator_get_type
+-clutter_animator_key_get_type
+-clutter_backend_get_type
+-clutter_behaviour_depth_get_type
+-clutter_behaviour_ellipse_get_type
+-clutter_behaviour_get_type
+-clutter_behaviour_opacity_get_type
+-clutter_behaviour_path_get_type
+-clutter_behaviour_rotate_get_type
+-clutter_behaviour_scale_get_type
+-clutter_bin_layout_get_type
+-clutter_bind_constraint_get_type
+-clutter_binding_pool_get_type
+-clutter_blur_effect_get_type
+-clutter_box_get_type
+-clutter_box_layout_get_type
+-clutter_brightness_contrast_effect_get_type
+-clutter_cairo_texture_get_type
+-clutter_canvas_get_type
+-clutter_child_meta_get_type
+-clutter_click_action_get_type
+-clutter_clip_node_get_type
+-clutter_clone_get_type
+-clutter_color_get_type
+-clutter_color_node_get_type
+-clutter_colorize_effect_get_type
+-clutter_constraint_get_type
+-clutter_container_get_type
+-clutter_content_get_type
+-clutter_deform_effect_get_type
+-clutter_desaturate_effect_get_type
+-clutter_device_manager_get_type
+-clutter_drag_action_get_type
+-clutter_drop_action_get_type
+-clutter_effect_get_type
+-clutter_event_get_type
+-clutter_event_sequence_get_type
+-clutter_fixed_layout_get_type
+-clutter_flow_layout_get_type
+-clutter_fog_get_type
+-clutter_geometry_get_type
+-clutter_gesture_action_get_type
+-clutter_glx_texture_pixmap_get_type
+-clutter_grid_layout_get_type
+-clutter_group_get_type
+-clutter_image_get_type
+-clutter_input_device_get_type
+-clutter_interval_get_type
+-clutter_keyframe_transition_get_type
+-clutter_knot_get_type
+-clutter_layout_manager_get_type
+-clutter_layout_meta_get_type
+-clutter_list_model_get_type
+-clutter_margin_get_type
+-clutter_media_get_type
+-clutter_model_get_type
+-clutter_model_iter_get_type
+-clutter_offscreen_effect_get_type
+-clutter_page_turn_effect_get_type
+-clutter_paint_node_get_type
+-clutter_paint_volume_get_type
+-clutter_pan_action_get_type
+-clutter_param_color_get_type
+-clutter_param_fixed_get_type
+-clutter_param_units_get_type
+-clutter_path_constraint_get_type
+-clutter_path_get_type
+-clutter_path_node_get_type
+-clutter_perspective_get_type
+-clutter_pipeline_node_get_type
+-clutter_point_get_type
+-clutter_property_transition_get_type
+-clutter_rect_get_type
+-clutter_rectangle_get_type
+-clutter_rotate_action_get_type
+-clutter_score_get_type
+-clutter_script_get_type
+-clutter_scriptable_get_type
+-clutter_scroll_actor_get_type
+-clutter_settings_get_type
+-clutter_shader_effect_get_type
+-clutter_shader_float_get_type
+-clutter_shader_get_type
+-clutter_shader_int_get_type
+-clutter_shader_matrix_get_type
+-clutter_size_get_type
+-clutter_snap_constraint_get_type
+-clutter_stage_get_type
+-clutter_stage_manager_get_type
+-clutter_state_get_type
+-clutter_state_key_get_type
+-clutter_swipe_action_get_type
+-clutter_table_layout_get_type
+-clutter_tap_action_get_type
+-clutter_text_buffer_get_type
+-clutter_text_get_type
+-clutter_text_node_get_type
+-clutter_texture_get_type
+-clutter_texture_node_get_type
+-clutter_timeline_get_type
+-clutter_transition_get_type
+-clutter_transition_group_get_type
+-clutter_units_get_type
+-clutter_vertex_get_type
+-clutter_zoom_action_get_type
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch
deleted file mode 100644
index c4edff395..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0/0001-build-Use-AC_COMPILE_IFELSE.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 483a4bb00e7dd2f14d86e167c8013c8638723c33 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Thu, 18 Feb 2016 17:19:09 +0000
-Subject: [PATCH] build: Use AC_COMPILE_IFELSE
-
-Instead of AC_TRY_COMPILE, which has been deprecated by newer autoconf.
----
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- configure.ac | 66 ++++++++++++++++++++++++++++++------------------------------
- 1 file changed, 33 insertions(+), 33 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4d72e0c..8ca3f94 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -348,24 +348,25 @@ AS_IF([test "x$enable_wayland" != xno],
- # We need to manually check for Wayland support in Cogl because
- # the windowing systems are not exposed in the pkg-config file
- saved_CFLAGS="${CFLAGS}"
-- CFLAGS="`$PKG_CONFIG --cflags $CLUTTER_BASE_PC_FILES`"
-+ CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
-
- AC_MSG_CHECKING([for Wayland Cogl backend])
-- AC_TRY_COMPILE([#include <cogl/cogl.h>],
-- [
-- #ifndef COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT
-- #error "No Wayland support in Cogl"
-- #endif
-- int main (void) { return 0; }
-- ],
-- [
-- AC_MSG_RESULT(yes)
-- have_cogl_wayland=yes
-- ],
-- [
-- AC_MSG_RESULT(no)
-- have_cogl_wayland=no
-- ])
-+
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#include <cogl/cogl.h>
-+]],
-+[[
-+#ifndef COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT
-+#error Cogl compiled without Wayland support
-+#endif
-+]])], [
-+ AC_MSG_RESULT(yes)
-+ have_cogl_wayland=yes
-+ ], [
-+ AC_MSG_RESULT(no)
-+ have_cogl_wayland=no
-+ ])
-+
- CFLAGS="${saved_CFLAGS}"
- AS_IF([test "x$have_cogl_wayland" = xyes],
- [
-@@ -499,26 +500,25 @@ AS_IF([test "x$enable_mir" = "xyes"],
- # We need to manually check for Mir support in Cogl because
- # the windowing systems are not exposed in the pkg-config file
- saved_CFLAGS="${CFLAGS}"
-- CFLAGS="`$PKG_CONFIG --cflags $CLUTTER_BASE_PC_FILES`"
-+ CFLAGS="`$PKG_CONFIG --cflags cogl-1.0`"
-
- AC_MSG_CHECKING([for Mir Cogl backend])
-- AC_TRY_COMPILE([#include <cogl/cogl.h>],
-- [
-- #ifndef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT
-- #error "No Mir support in Cogl"
-- #endif
-- int main (void) { return 0; }
-- ],
-- [
-- AC_MSG_RESULT(yes)
-- have_cogl_mir=yes
-- ],
-- [
-- AC_MSG_RESULT(no)
-- have_cogl_mir=no
-- ])
-
-- CFLAGS="${saved_CFLAGS}"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-+#include <cogl/cogl.h>
-+]],
-+[[
-+#ifndef COGL_HAS_EGL_PLATFORM_MIR_SUPPORT
-+#error Cogl compiled without Mir support
-+#endif
-+]])], [
-+ AC_MSG_RESULT(yes)
-+ have_cogl_mir=yes
-+ ], [
-+ AC_MSG_RESULT(no)
-+ have_cogl_mir=no
-+ ])
-+
- AS_IF([test "x$have_cogl_mir" = xno], [AC_MSG_ERROR("*** Cogl is missing Mir support.")])
-
- PKG_CHECK_EXISTS([mirclient],
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb
deleted file mode 100644
index c53b3e71b..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.24.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require clutter-1.0.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI[archive.md5sum] = "3b98e1b33719982a5736ae42cbf7183e"
-SRC_URI[archive.sha256sum] = "9631c98cb4bcbfec15e1bbe9eaa6eef0f127201552fce40d7d28f2133803cd63"
-SRC_URI += "file://install-examples.patch \
- file://run-installed-tests-with-tap-output.patch \
- file://0001-build-Use-AC_COMPILE_IFELSE.patch \
- file://run-ptest"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.0.bb
new file mode 100644
index 000000000..dfa1cfe77
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-1.0_1.26.0.bb
@@ -0,0 +1,10 @@
+require clutter-1.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[archive.md5sum] = "b065e9ca53d1f6bc1ec26aeb27338bb7"
+SRC_URI[archive.sha256sum] = "67514e7824b3feb4723164084b36d6ce1ae41cb3a9897e9f1a56c8334993ce06"
+SRC_URI += "file://install-examples.patch \
+ file://run-installed-tests-with-tap-output.patch \
+ file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \
+ file://run-ptest"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.16.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.16.bb
deleted file mode 100644
index fcf5242c5..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.16.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require clutter-gst-3.0.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4"
-
-SRC_URI[archive.md5sum] = "ca24eb92a0d34fc9e66fd686a965d51c"
-SRC_URI[archive.sha256sum] = "803e8b7265e63e0581e21fd0c6064792dfe951512e9f515e9e7a9b452caaf9f0"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.18.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.18.bb
new file mode 100644
index 000000000..9626cd905
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gst-3.0_3.0.18.bb
@@ -0,0 +1,7 @@
+require clutter-gst-3.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4"
+
+SRC_URI[archive.md5sum] = "3e4f64477f26d9cfd2db06d3aaed203a"
+SRC_URI[archive.sha256sum] = "0aec0d0c6020cd19a5bb0dab1165a92748f81a9a3acdfabb0f966d5f53bc8093"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.6.6.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.6.6.bb
deleted file mode 100644
index 23257bb9c..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.6.6.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require clutter-gtk-1.0.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-SRC_URI[archive.md5sum] = "79dc3d7a8645f87d83a9ccca8a08aa8e"
-SRC_URI[archive.sha256sum] = "9440a68600f58d00fe0af35383738943e8ead9907f4cf507a102d96822434a28"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.0.bb
new file mode 100644
index 000000000..675365cbb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/clutter/clutter-gtk-1.0_1.8.0.bb
@@ -0,0 +1,6 @@
+require clutter-gtk-1.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI[archive.md5sum] = "351cf9229cf941d36b441ede2236d742"
+SRC_URI[archive.sha256sum] = "742ef9d68ece36cbb1b2e1a4a6fbdad932f6645360be7e6de75abbb140dfbf1d"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/cogl/cogl-1.0.inc b/import-layers/yocto-poky/meta/recipes-graphics/cogl/cogl-1.0.inc
index 690ea3b86..7a79aa789 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/import-layers/yocto-poky/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -73,3 +73,5 @@ FILES_libcogl-path = "${libdir}/libcogl-path${SOLIBS}"
RPROVIDES_libcogl = "cogl-1.0"
RCONFLICTS_libcogl = "cogl-1.0"
RREPLACES_libcogl = "cogl-1.0"
+
+COMPATIBLE_HOST_armv4 = 'null'
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples/configure.in-Fix-string-argument-syntax.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples/configure.in-Fix-string-argument-syntax.patch
deleted file mode 100644
index 0717ea6f8..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples/configure.in-Fix-string-argument-syntax.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 88077ed156a714f32bb408f422278d61611ffd41 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Sat, 26 Jul 2014 16:57:46 -0300
-Subject: [PATCH] configure.in: Fix string argument syntax
-
-Upstream-Status: Submitted
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- configure.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.in b/configure.in
-index bfe1b82..e939bbd 100644
---- a/configure.in
-+++ b/configure.in
-@@ -65,7 +65,7 @@ fi)
-
- DIRECTFB_REQUIRED_VERSION=1.4.14
-
--PKG_CHECK_MODULES(DIRECTFB, directfb >= $DIRECTFB_REQUIRED_VERSION,[ WATER=`$PKG_CONFIG --variable=water directfb` ],
-+PKG_CHECK_MODULES([DIRECTFB], directfb >= $DIRECTFB_REQUIRED_VERSION,[ WATER=`$PKG_CONFIG --variable=water directfb` ],
- AC_MSG_ERROR([$DIRECTFB_PKG_ERRORS
- *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer is required. The latest version
- *** of DirectFB is available from http://www.directfb.org/.]))
---
-1.7.10.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples_1.7.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples_1.7.0.bb
deleted file mode 100644
index 7907c5c0d..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb-examples_1.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Example DirectFB applications"
-DESCRIPTION = "The DirectFB-examples package contains a set of simple DirectFB \
- applications that can be used to test and demonstrate various DirectFB \
- features"
-DEPENDS = "directfb"
-SECTION = "libs"
-LICENSE = "MIT"
-
-SRC_URI = " \
- http://downloads.yoctoproject.org/mirror/sources/DirectFB-examples-${PV}.tar.gz \
- file://configure.in-Fix-string-argument-syntax.patch \
- "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f"
-
-S = "${WORKDIR}/DirectFB-examples-${PV}"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "8b60c867af295481c32a8c7fc5802307"
-SRC_URI[sha256sum] = "9a2104cc4da8123c8371813551b66b943198979f745cbebc034bb5e10844122a"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb.inc b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb.inc
deleted file mode 100644
index f6b7cbe1a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb.inc
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "Graphics abstraction library for the Linux Framebuffer Device"
-DESCRIPTION = "DirectFB is a thin library that provides developers \
-with hardware graphics acceleration, input device handling and \
-abstraction, an integrated windowing system with support for \
-translucent windows and multiple display layers on top of the \
-Linux framebuffer device."
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
-
-HOMEPAGE = "http://directfb.org"
-DEPENDS = "jpeg libpng freetype zlib tslib sysfsutils"
-
-SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.gz \
- file://configurefix.patch \
- file://fusion.patch \
- file://bashism.patch \
- file://0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch \
- file://compar_fn_t.patch \
- file://union-sigval.patch \
- file://use-PTHREAD_MUTEX_RECURSIVE.patch \
- "
-
-S = "${WORKDIR}/DirectFB-${PV}"
-
-LDFLAGS_append =" -lts -lm"
-
-# Workaround for linking issues seen with armv7a + gold
-LDFLAGS_append_arm = "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-
-BINCONFIG = "${bindir}/directfb-config"
-
-inherit autotools binconfig-disabled pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper"
-PACKAGECONFIG[drmkms] = "--enable-drmkms,--disable-drmkms,libdrm"
-PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
-PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
-
-EXTRA_OECONF = "\
- --with-gfxdrivers=none \
- --enable-freetype=yes \
- --enable-zlib \
- --disable-imlib2 \
- --disable-mesa \
- --disable-sdl \
- --disable-vnc \
- --disable-x11 \
-"
-
-#Once -fno-omit-frame-pointer option of gcc is added into TARGET_CLFAGS as default
-#this will cause directfb build failure on x86 arch, so filter out it.
-TARGET_CFLAGS_remove_x86 = "-fno-omit-frame-pointer"
-
-#PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*"
-#
-#python populate_packages_prepend () {
-# inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers')
-# do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s')
-#}
-
-# NOTE: monolithic packaging for now, should improve that eventually
-
-FILES_${PN}-dev += "\
- ${bindir}/directfb-config \
- ${libdir}/directfb-${RV}/systems/*.la \
- ${libdir}/directfb-${RV}/inputdrivers/*.la \
- ${libdir}/directfb-${RV}/interfaces/*/*.la \
- ${libdir}/directfb-${RV}/wm/*.la \
-"
-
-FILES_${PN} += "\
- ${libdir}/directfb-${RV}/systems/*.so \
- ${libdir}/directfb-${RV}/inputdrivers/*.so \
- ${libdir}/directfb-${RV}/interfaces/*/*.so \
- ${libdir}/directfb-${RV}/wm/*.so \
- ${datadir}/directfb-${PV} \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch
deleted file mode 100644
index 76e0f7530..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/0001-gfx-direct-Aboid-usng-VLAs-and-printf-formats.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f43ef44806ffb8e3b35d99070dde9b6cc1714d3d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Sep 2015 21:32:20 +0000
-Subject: [PATCH] gfx,direct: Aboid usng VLAs and printf formats
-
-VLAs are flagged by clang when using non-POD types, therefore replace
-the usage with alloca which is exact same allocation on stack
-
- __attribute__((__format__ (__printf__))) is not portable as used here
- therefore disable the check for clang here, we lose no functionality
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- lib/direct/util.h | 2 +-
- src/gfx/util.cpp | 8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/lib/direct/util.h b/lib/direct/util.h
-index 72941e9..8e7fa4a 100644
---- a/lib/direct/util.h
-+++ b/lib/direct/util.h
-@@ -98,7 +98,7 @@
- #define D_CONST_FUNC
- #endif
-
--#if __GNUC__ >= 3
-+#if __GNUC__ >= 3 && !defined __clang__
- #define D_FORMAT_PRINTF(n) __attribute__((__format__ (__printf__, n, n+1)))
- #define D_FORMAT_VPRINTF(n) __attribute__((__format__ (__printf__, n, 0)))
- #else
-diff --git a/src/gfx/util.cpp b/src/gfx/util.cpp
-index 40032bc..d1015d4 100644
---- a/src/gfx/util.cpp
-+++ b/src/gfx/util.cpp
-@@ -294,8 +294,8 @@ dfb_gfx_copy_regions_stereo( CoreSurface *source,
- {
- unsigned int i, n = 0;
- DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h };
-- DFBRectangle rects[num];
-- DFBPoint points[num];
-+ DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num);
-+ DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num);
-
- for (i=0; i<num; i++) {
- DFB_REGION_ASSERT( &regions[i] );
-@@ -351,8 +351,8 @@ dfb_gfx_copy_regions_client( CoreSurface *source,
- {
- unsigned int i, n = 0;
- DFBRectangle rect = { 0, 0, source->config.size.w, source->config.size.h };
-- DFBRectangle rects[num];
-- DFBPoint points[num];
-+ DFBRectangle *rects = (DFBRectangle*)alloca( sizeof(struct DFBRectangle) * num);
-+ DFBPoint *points = (DFBPoint*)alloca( sizeof(struct DFBPoint) * num);
- CoreGraphicsStateClient *client = _client ? _client : &StateClient::Get()->client;
- CardState *state = client->state;
- CardState backup;
---
-2.5.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/bashism.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/bashism.patch
deleted file mode 100644
index 2ef4e9385..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/bashism.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-${x//y/} is a bash syntax. Replace with something dash compatible
-
-RP 2015/5/3
-Upstream-Status: Pending
-
-Index: DirectFB-1.7.7/configure.in
-===================================================================
---- DirectFB-1.7.7.orig/configure.in
-+++ DirectFB-1.7.7/configure.in
-@@ -2696,7 +2696,7 @@ AM_CONDITIONAL(BUILD_TOOLS, test "$with_
- AM_CONDITIONAL(CROSS_COMPILING, test "$cross_compiling" = "yes")
-
- CFLAGS="$CFLAGS $DFB_INTERNAL_CFLAGS"
--CXXFLAGS="$CXXFLAGS ${CFLAGS//-Werror-implicit-function-declaration/}"
-+CXXFLAGS="$CXXFLAGS $(printf '%s\n' "$CFLAGS" | sed 's/-Werror-implicit-function-declaration//g')"
- DFB_LDFLAGS="$LDFLAGS $ZLIB_LIBS"
-
- CFLAGS="$CFLAGS $CFLAGS_STD"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/compar_fn_t.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/compar_fn_t.patch
deleted file mode 100644
index ee4d900ba..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/compar_fn_t.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-test for __compar_fn_t and if not defined by libc then define it
-help make directfb compile with musl
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: DirectFB-1.7.7/configure.in
-===================================================================
---- DirectFB-1.7.7.orig/configure.in
-+++ DirectFB-1.7.7/configure.in
-@@ -112,6 +112,17 @@ AC_CHECK_SIZEOF(long)
- AC_CHECK_SIZEOF(long long)
- AC_CHECK_FUNCS(fork)
-
-+AC_CACHE_CHECK([for compar_fn_t in stdlib.h],ccache_cv_COMPAR_FN_T, [
-+ AC_TRY_COMPILE(
-+ [#include <stdlib.h>],
-+ [void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }],
-+ ccache_cv_COMPAR_FN_T=yes,
-+ ccache_cv_COMPAR_FN_T=no)])
-+if test x"$ccache_cv_COMPAR_FN_T" = x"yes"; then
-+ AC_DEFINE(HAVE_COMPAR_FN_T, 1,
-+ Define to 1 if you have the `__compar_fn_t' typedef.)
-+fi
-+
- AC_PATH_PROGS(PERL, perl5 perl)
-
- AC_PATH_PROG(MAN2HTML, man2html, no)
-Index: DirectFB-1.7.7/inputdrivers/lirc/lirc.c
-===================================================================
---- DirectFB-1.7.7.orig/inputdrivers/lirc/lirc.c
-+++ DirectFB-1.7.7/inputdrivers/lirc/lirc.c
-@@ -59,6 +59,11 @@
-
- #include <core/input_driver.h>
-
-+#if HAVE_COMPAR_FN_T
-+#define COMPAR_FN_T __compar_fn_t
-+#else
-+typedef int (*COMPAR_FN_T)(const void *, const void *);
-+#endif
-
- DFB_INPUT_DRIVER( lirc )
-
-@@ -97,7 +102,7 @@ static DFBInputDeviceKeySymbol lirc_pars
- qsort ( keynames,
- D_ARRAY_SIZE( keynames ),
- sizeof(keynames[0]),
-- (__compar_fn_t) keynames_sort_compare );
-+ (COMPAR_FN_T) keynames_sort_compare );
- keynames_sorted = true;
- }
-
-@@ -124,7 +129,7 @@ static DFBInputDeviceKeySymbol lirc_pars
- symbol_name = bsearch( name, keynames,
- D_ARRAY_SIZE( keynames ),
- sizeof(keynames[0]),
-- (__compar_fn_t) keynames_compare );
-+ (COMPAR_FN_T) keynames_compare );
- if (symbol_name)
- return symbol_name->symbol;
- break;
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/configurefix.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/configurefix.patch
deleted file mode 100644
index dd8c01905..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/configurefix.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Libtool needs these set correctly else we end up with pointless rpaths
-such as the QA warnings:
-
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfblayer contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbmaster contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgifft contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbdump contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinput contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbfx contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbscreen contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgiff contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinspector contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdfiff contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinfo contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbpenmount contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbg contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6 contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6 contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_fbdev.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_devmem.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_dummy.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_ft2.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/wm/libdirectfbwm_default.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_zytronic.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_penmount.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_linux_input.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_serialmouse.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_mutouch.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_tslib.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_joystick.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_sonypi.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_lirc.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_wm97xx_ts.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_ps2mouse.so contains probably-redundant RPATH /usr/lib
-WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_keyboard.so contains probably-redundant RPATH /usr/lib
-
-Upstream-Status: Pending
-
-RP 2012/03/16
-
-Index: DirectFB-1.4.15/configure.in
-===================================================================
---- DirectFB-1.4.15.orig/configure.in 2012-03-16 13:32:23.692402879 +0000
-+++ DirectFB-1.4.15/configure.in 2012-03-16 13:33:22.312400960 +0000
-@@ -97,13 +97,6 @@
- AC_CHECK_SIZEOF(long long)
- AC_CHECK_FUNCS(fork)
-
--
--## Work around libstuhl during cross build...
--if test "$host" != "$build"; then
-- sys_lib_dlsearch_path_spec=""
-- sys_lib_search_path_spec=""
--fi
--
- AC_PATH_PROGS(PERL, perl5 perl)
-
- AC_PATH_PROG(MAN2HTML, man2html, no)
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/fusion.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/fusion.patch
deleted file mode 100644
index 1f81a6796..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/fusion.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-directfb: Fix for hangs in direct_test, fusion_skirmish on exit
-
-Upstream-Status: Pending
-Signed-off-by: Lauren Post <lauren.post@freescale.com>
-
---- a/lib/fusion/fusion.c 2013-01-18 22:57:11.000000000 +0800
-+++ b/lib/fusion/fusion.c 2013-07-04 10:42:56.502699119 +0800
-@@ -2853,9 +2853,14 @@
- direct_mutex_lock( &world->event_dispatcher_mutex );
-
- while (1) {
-- if (!world->event_dispatcher_buffers)
-+ if (!world->event_dispatcher_buffers){
- direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
--
-+ if (world->dispatch_stop) {
-+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
-+ direct_mutex_unlock( &world->event_dispatcher_mutex );
-+ return NULL;
-+ }
-+ }
- buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
- D_MAGIC_ASSERT( buf, FusionEventDispatcherBuffer );
-
-@@ -2872,6 +2877,11 @@
- //D_INFO("waiting...\n");
- D_ASSERT( buf->read_pos == buf->write_pos );
- direct_waitqueue_wait( &world->event_dispatcher_cond, &world->event_dispatcher_mutex );
-+ if (world->dispatch_stop) {
-+ D_DEBUG_AT( Fusion_Main_Dispatch, " -> IGNORING (dispatch_stop!)\n" );
-+ direct_mutex_unlock( &world->event_dispatcher_mutex );
-+ return NULL;
-+ }
- }
-
- buf = (FusionEventDispatcherBuffer *)world->event_dispatcher_buffers;
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/union-sigval.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/union-sigval.patch
deleted file mode 100644
index 29f45c797..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/union-sigval.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-This patch is taken from gentoo musl overlay
-sigval_t is glibc only construct, we use a union of sigval
-which pretty much is same effect as sigval_t
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-diff -Naur DirectFB-1.7.6.orig/lib/direct/os/linux/glibc/system.c DirectFB-1.7.6/lib/direct/os/linux/glibc/system.c
---- DirectFB-1.7.6.orig/lib/direct/os/linux/glibc/system.c 2014-07-15 02:54:58.000000000 -0400
-+++ DirectFB-1.7.6/lib/direct/os/linux/glibc/system.c 2015-07-18 16:55:35.077989166 -0400
-@@ -111,7 +111,7 @@
- void
- direct_trap( const char *domain, int sig )
- {
-- sigval_t val;
-+ union sigval val;
-
- if (direct_config->delay_trap_ms) {
- D_LOG( Direct_Trap, VERBOSE, "NOT RAISING signal %d from %s, waiting for %dms... attach gdb --pid=%d\n", sig, domain, direct_config->delay_trap_ms, getpid() );
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch
deleted file mode 100644
index ac48f68db..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb/use-PTHREAD_MUTEX_RECURSIVE.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-Remove use of DIRECT_RECURSIVE_MUTEX_INITIALIZER its not portable
-use portable way to initialize recursive mutex using pthread_once() and direct_recursive_mutex_init()
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: DirectFB-1.7.7/lib/direct/os/linux/glibc/mutex.h
-===================================================================
---- DirectFB-1.7.7.orig/lib/direct/os/linux/glibc/mutex.h
-+++ DirectFB-1.7.7/lib/direct/os/linux/glibc/mutex.h
-@@ -46,7 +46,6 @@ struct __D_DirectMutex {
- /**********************************************************************************************************************/
-
- #define DIRECT_MUTEX_INITIALIZER(name) { PTHREAD_MUTEX_INITIALIZER }
--#define DIRECT_RECURSIVE_MUTEX_INITIALIZER(name) { PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP }
-
- #endif
-
-Index: DirectFB-1.7.7/lib/direct/trace.c
-===================================================================
---- DirectFB-1.7.7.orig/lib/direct/trace.c
-+++ DirectFB-1.7.7/lib/direct/trace.c
-@@ -89,8 +89,15 @@ struct __D_DirectTraceBuffer {
- /**************************************************************************************************/
-
- static DirectLink *buffers;
--static DirectMutex buffers_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(buffers_lock);
-
-+static pthread_once_t buffers_lock_init_once = PTHREAD_ONCE_INIT;
-+static DirectMutex buffers_lock;
-+
-+static void
-+buffers_lock_init( void )
-+{
-+ direct_recursive_mutex_init(&buffers_lock);
-+}
- /**************************************************************************************************/
-
- __dfb_no_instrument_function__
-@@ -113,6 +120,7 @@ get_trace_buffer( void )
-
- D_MAGIC_SET( buffer, DirectTraceBuffer );
-
-+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
- direct_mutex_lock( &buffers_lock );
- direct_list_append( &buffers, &buffer->link );
- direct_mutex_unlock( &buffers_lock );
-@@ -138,8 +146,14 @@ typedef struct {
- } SymbolTable;
-
- static DirectLink *tables = NULL;
--static DirectMutex tables_lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(tables_lock);
-+static pthread_once_t tables_lock_init_once = PTHREAD_ONCE_INIT;
-+static DirectMutex tables_lock;
-
-+static void
-+tables_lock_init( void )
-+{
-+ direct_recursive_mutex_init(&tabless_lock);
-+}
-
- __dfb_no_instrument_function__
- static void
-@@ -370,6 +384,7 @@ direct_trace_lookup_symbol( const char *
- Symbol *symbol;
- SymbolTable *table;
-
-+ pthread_once(&tables_lock_init_once, tables_lock_init);
- direct_mutex_lock( &tables_lock );
-
- table = find_table( filename );
-@@ -514,6 +529,7 @@ direct_trace_print_stacks()
- DirectTraceBuffer *b;
- DirectTraceBuffer *buffer = get_trace_buffer();
-
-+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
- direct_mutex_lock( &buffers_lock );
-
- if (buffer && buffer->level)
-@@ -611,6 +627,7 @@ direct_trace_free_buffer( DirectTraceBuf
- D_MAGIC_ASSERT( buffer, DirectTraceBuffer );
-
- if (buffer->thread) {
-+ pthread_once(&buffers_lock_init_once, buffers_lock_init);
- direct_mutex_lock( &buffers_lock );
- direct_list_remove( &buffers, &buffer->link );
- direct_mutex_unlock( &buffers_lock );
-Index: DirectFB-1.7.7/src/directfb.c
-===================================================================
---- DirectFB-1.7.7.orig/src/directfb.c
-+++ DirectFB-1.7.7/src/directfb.c
-@@ -99,6 +99,15 @@ const unsigned int directfb_micro_versio
- const unsigned int directfb_binary_age = DIRECTFB_BINARY_AGE;
- const unsigned int directfb_interface_age = DIRECTFB_INTERFACE_AGE;
-
-+static pthread_once_t lock_init_once = PTHREAD_ONCE_INIT;
-+static DirectMutex lock;
-+
-+static void
-+lock_init( void )
-+{
-+ direct_recursive_mutex_init(&lock);
-+}
-+
- const char *
- DirectFBCheckVersion( unsigned int required_major,
- unsigned int required_minor,
-@@ -215,8 +224,7 @@ DirectFBCreate( IDirectFB **interface_pt
- if (dfb_config->remote.host)
- return CreateRemote( dfb_config->remote.host, dfb_config->remote.port, interface_ptr );
-
-- static DirectMutex lock = DIRECT_RECURSIVE_MUTEX_INITIALIZER(lock);
--
-+ pthread_once(&lock_init_once, lock_init);
- direct_mutex_lock( &lock );
-
- if (!dfb_config->no_singleton && idirectfb_singleton) {
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb_1.7.7.bb b/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb_1.7.7.bb
deleted file mode 100644
index c6c070eda..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/directfb/directfb_1.7.7.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require directfb.inc
-
-RV = "1.7-7"
-
-LEAD_SONAME = "libdirectfb-1.7.so.0"
-
-SRC_URI[md5sum] = "152cf1863b1a3a28aa1370e9053440bf"
-SRC_URI[sha256sum] = "b785c638dc31b8fe3a7c81be1475c89b2255ab3d67b777c747d3fbc52f8027a3"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch
new file mode 100644
index 000000000..bf526370b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch
@@ -0,0 +1,56 @@
+From e6bd4205b0b546afe991ae6f72256645f4404ad4 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Mon, 5 Sep 2016 14:41:37 +0300
+Subject: [PATCH libdrm] configure.ac: Allow explicit enabling of cunit tests
+
+Add --with-cunit to make it easier to do reproducible builds. Default
+is still to probe cunit and build opportunistically.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted [mailing list]
+---
+ configure.ac | 14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e3048c7..918d21d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -137,6 +137,12 @@ AC_ARG_ENABLE(install-test-programs,
+ [Install test programs (default: no)]),
+ [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
+
++AC_ARG_WITH([cunit],
++ [AS_HELP_STRING([--with-cunit],
++ [Build tests that use cunit (default: auto)])],
++ [],
++ [with_cunit=auto])
++
+ dnl ===========================================================================
+ dnl check compiler flags
+ AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
+@@ -372,7 +378,7 @@ if test "x$RADEON" = xyes; then
+ AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
+ fi
+
+-if test "x$AMDGPU" != xno; then
++if test "x$with_cunit" != xno -a "x$AMDGPU" != xno; then
+ # Detect cunit library
+ PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no])
+ # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We
+@@ -399,7 +406,11 @@ if test "x$AMDGPU" = xyes; then
+ AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"], [Enable CUNIT Have amdgpu support])
+
+ if test "x$have_cunit" = "xno"; then
+- AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
++ if test "x$with_cunit" = "xyes"; then
++ AC_MSG_ERROR([Could not find cunit library but --with-cunit was given])
++ elif test "x$with_cunit" = "xauto"; then
++ AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
++ fi
+ fi
+ fi
+
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
index 286e548bc..4708bf1eb 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch
@@ -19,6 +19,6 @@ diff -Naur libdrm-2.4.66-orig/tests/drmdevice.c libdrm-2.4.66/tests/drmdevice.c
*/
+#include <config.h>
+ #include <errno.h>
#include <stdio.h>
#include <stdlib.h>
- #include <sys/stat.h>
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.67.bb b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.67.bb
deleted file mode 100644
index ddd697f34..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.67.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "Userspace interface to the kernel DRM services"
-DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \
-stands for \"Direct Rendering Manager\", which is the kernel portion of the \
-\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \
-accelerated OpenGL drivers."
-HOMEPAGE = "http://dri.freedesktop.org"
-SECTION = "x11/base"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
-PROVIDES = "drm"
-DEPENDS = "libpthread-stubs udev libpciaccess"
-
-SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \
- file://installtests.patch \
- file://fix_O_CLOEXEC_undeclared.patch \
- "
-
-SRC_URI[md5sum] = "b844c6af34e613ebf52f80b3cd8d7055"
-SRC_URI[sha256sum] = "ee5b71e1113be37544d0752681c12f040c01f782e2933df7d7bc21fd0d10cebe"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--disable-cairo-tests \
- --enable-omap-experimental-api \
- --enable-install-test-programs \
- --disable-manpages \
- --disable-valgrind \
- "
-
-ALLOW_EMPTY_${PN}-drivers = "1"
-PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
- ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu"
-
-RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
- ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu"
-
-FILES_${PN}-tests = "${bindir}/*"
-FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
-FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
-FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*"
-FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*"
-FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
-FILES_${PN}-kms = "${libdir}/libkms*.so.*"
-FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
-FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.70.bb b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.70.bb
new file mode 100644
index 000000000..a2b5282ea
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/drm/libdrm_2.4.70.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Userspace interface to the kernel DRM services"
+DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \
+stands for \"Direct Rendering Manager\", which is the kernel portion of the \
+\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \
+accelerated OpenGL drivers."
+HOMEPAGE = "http://dri.freedesktop.org"
+SECTION = "x11/base"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
+PROVIDES = "drm"
+DEPENDS = "libpthread-stubs udev libpciaccess"
+
+SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \
+ file://installtests.patch \
+ file://fix_O_CLOEXEC_undeclared.patch \
+ file://0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch \
+ "
+
+SRC_URI[md5sum] = "920957cfe25a80efb02be9bd90bf3c1e"
+SRC_URI[sha256sum] = "b17d4b39ed97ca0e4cffa0db06ff609e617bac94646ec38e8e0579d530540e7b"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--disable-cairo-tests \
+ --without-cunit \
+ --enable-omap-experimental-api \
+ --enable-install-test-programs \
+ --disable-manpages \
+ --disable-valgrind \
+ "
+
+ALLOW_EMPTY_${PN}-drivers = "1"
+PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
+ ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu"
+
+RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
+ ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu"
+
+FILES_${PN}-tests = "${bindir}/*"
+FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
+FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
+FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*"
+FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*"
+FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
+FILES_${PN}-kms = "${libdir}/libkms*.so.*"
+FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
+FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch b/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch
deleted file mode 100644
index f2fd5d473..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e Mon Sep 17 00:00:00 2001
-From: Behdad Esfahbod <behdad@behdad.org>
-Date: Fri, 26 Jun 2015 17:02:13 -0700
-Subject: [PATCH] Revert changes made to FcConfigAppFontAddDir() recently
-
-In 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb the behavior of
-FcConfigAppFontAddFile/Dir() were changed to return false
-if not fonts were found. While this is welldefined and useful
-for AddFile(), it's quite problematic for AddDir(). For example,
-if the directory is empty, is that a failure or success? Worse,
-the false value from AddDir() was being propagated all the way
-to FcInit() returning false now. This only happened upon memory
-allocation failure before, and some clients assert that FcInit()
-is successful.
-
-With this change, AddDir() is reverted back to what it was.
-AddFont() change (which was actually in fcdir.c) from the original
-commit is left in.
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- doc/fcconfig.fncs | 2 +-
- src/fccfg.c | 29 +++++++++++------------------
- src/fcint.h | 3 ---
- src/fcstr.c | 8 --------
- 4 files changed, 12 insertions(+), 30 deletions(-)
-
-Index: fontconfig-2.11.94/doc/fcconfig.fncs
-===================================================================
---- fontconfig-2.11.94.orig/doc/fcconfig.fncs
-+++ fontconfig-2.11.94/doc/fcconfig.fncs
-@@ -232,7 +232,7 @@ the current configuration is used.
- @DESC@
- Scans the specified directory for fonts, adding each one found to the
- application-specific set of fonts. Returns FcFalse
--if the fonts cannot be added (due to allocation failure or no fonts found).
-+if the fonts cannot be added (due to allocation failure).
- Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
- the current configuration is used.
- @@
-Index: fontconfig-2.11.94/src/fccfg.c
-===================================================================
---- fontconfig-2.11.94.orig/src/fccfg.c
-+++ fontconfig-2.11.94/src/fccfg.c
-@@ -368,7 +368,6 @@ FcConfigAddDirList (FcConfig *config, Fc
- FcStrList *dirlist;
- FcChar8 *dir;
- FcCache *cache;
-- FcBool ret = FcFalse;
-
- dirlist = FcStrListCreate (dirSet);
- if (!dirlist)
-@@ -383,10 +382,9 @@ FcConfigAddDirList (FcConfig *config, Fc
- continue;
- FcConfigAddCache (config, cache, set, dirSet);
- FcDirCacheUnload (cache);
-- ret = FcTrue;
- }
- FcStrListDone (dirlist);
-- return ret;
-+ return FcTrue;
- }
-
- /*
-@@ -2199,7 +2197,6 @@ FcConfigAppFontAddFile (FcConfig *con
- FcStrSet *subdirs;
- FcStrList *sublist;
- FcChar8 *subdir;
-- FcBool ret = FcFalse;
-
- if (!config)
- {
-@@ -2229,19 +2226,16 @@ FcConfigAppFontAddFile (FcConfig *con
- FcStrSetDestroy (subdirs);
- return FcFalse;
- }
-- if (subdirs->num == 0)
-- ret = FcTrue;
-- else if ((sublist = FcStrListCreate (subdirs)))
-+ if ((sublist = FcStrListCreate (subdirs)))
- {
- while ((subdir = FcStrListNext (sublist)))
- {
-- if (FcConfigAppFontAddDir (config, subdir))
-- ret = FcTrue;
-+ FcConfigAppFontAddDir (config, subdir);
- }
- FcStrListDone (sublist);
- }
- FcStrSetDestroy (subdirs);
-- return ret;
-+ return FcTrue;
- }
-
- FcBool
-@@ -2250,7 +2244,6 @@ FcConfigAppFontAddDir (FcConfig *con
- {
- FcFontSet *set;
- FcStrSet *dirs;
-- FcBool ret = FcTrue;
-
- if (!config)
- {
-@@ -2269,8 +2262,8 @@ FcConfigAppFontAddDir (FcConfig *con
- set = FcFontSetCreate ();
- if (!set)
- {
-- ret = FcFalse;
-- goto bail;
-+ FcStrSetDestroy (dirs);
-+ return FcFalse;
- }
- FcConfigSetFonts (config, set, FcSetApplication);
- }
-@@ -2278,10 +2271,12 @@ FcConfigAppFontAddDir (FcConfig *con
- FcStrSetAddFilename (dirs, dir);
-
- if (!FcConfigAddDirList (config, FcSetApplication, dirs))
-- ret = FcFalse;
--bail:
-+ {
-+ FcStrSetDestroy (dirs);
-+ return FcFalse;
-+ }
- FcStrSetDestroy (dirs);
-- return ret;
-+ return FcTrue;
- }
-
- void
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb b/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb
deleted file mode 100644
index b427947a9..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "Generic font configuration library"
-DESCRIPTION = "Fontconfig is a font configuration and customization library, which \
-does not depend on the X Window System. It is designed to locate \
-fonts within the system and select them according to requirements \
-specified by applications. \
-Fontconfig is not a rasterization library, nor does it impose a \
-particular rasterization library on the application. The X-specific \
-library 'Xft' uses fontconfig along with freetype to specify and \
-rasterize fonts."
-
-HOMEPAGE = "http://www.fontconfig.org"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig"
-
-LICENSE = "MIT-style & MIT & PD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7a0449e9bc5370402a94c00204beca3d \
- file://src/fcfreetype.c;endline=45;md5=5d9513e3196a1fbfdfa94051c09dfc84 \
- file://src/fccache.c;beginline=1199;endline=1214;md5=0326cfeb4a7333dd4dd25fbbc4b9f27f"
-
-SECTION = "libs"
-
-DEPENDS = "expat freetype zlib"
-
-SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
- file://revert-static-pkgconfig.patch \
- file://0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch \
- "
-SRC_URI[md5sum] = "479be870c7f83f15f87bac085b61d641"
-SRC_URI[sha256sum] = "73f6d323c7bcfbde25d78397675191d55b8f4139132c6a9444410f3a2d8a9a95"
-
-PACKAGES =+ "fontconfig-utils"
-FILES_${PN} =+ "${datadir}/xml/*"
-FILES_fontconfig-utils = "${bindir}/*"
-
-# Work around past breakage in debian.bbclass
-RPROVIDES_fontconfig-utils = "libfontconfig-utils"
-RREPLACES_fontconfig-utils = "libfontconfig-utils"
-RCONFLICTS_fontconfig-utils = "libfontconfig-utils"
-DEBIAN_NOAUTONAME_fontconfig-utils = "1"
-
-inherit autotools pkgconfig
-
-FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
-
-# comma separated list of additional directories
-# /usr/share/fonts is already included by default (you can change it with --with-default-fonts)
-FONTCONFIG_FONT_DIRS ?= "no"
-
-EXTRA_OECONF = " --disable-docs --with-default-fonts=${datadir}/fonts --with-cache-dir=${FONTCONFIG_CACHE_DIR} --with-add-fonts=${FONTCONFIG_FONT_DIRS}"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
new file mode 100644
index 000000000..115f558ee
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Generic font configuration library"
+DESCRIPTION = "Fontconfig is a font configuration and customization library, which \
+does not depend on the X Window System. It is designed to locate \
+fonts within the system and select them according to requirements \
+specified by applications. \
+Fontconfig is not a rasterization library, nor does it impose a \
+particular rasterization library on the application. The X-specific \
+library 'Xft' uses fontconfig along with freetype to specify and \
+rasterize fonts."
+
+HOMEPAGE = "http://www.fontconfig.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig"
+
+LICENSE = "MIT-style & MIT & PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7a0449e9bc5370402a94c00204beca3d \
+ file://src/fcfreetype.c;endline=45;md5=5d9513e3196a1fbfdfa94051c09dfc84 \
+ file://src/fccache.c;beginline=1360;endline=1375;md5=0326cfeb4a7333dd4dd25fbbc4b9f27f"
+
+SECTION = "libs"
+
+DEPENDS = "expat freetype zlib"
+
+SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
+ file://revert-static-pkgconfig.patch \
+ "
+SRC_URI[md5sum] = "ce55e525c37147eee14cc2de6cc09f6c"
+SRC_URI[sha256sum] = "a9f42d03949f948a3a4f762287dbc16e53a927c91a07ee64207ebd90a9e5e292"
+
+PACKAGES =+ "fontconfig-utils"
+FILES_${PN} =+ "${datadir}/xml/*"
+FILES_fontconfig-utils = "${bindir}/*"
+
+# Work around past breakage in debian.bbclass
+RPROVIDES_fontconfig-utils = "libfontconfig-utils"
+RREPLACES_fontconfig-utils = "libfontconfig-utils"
+RCONFLICTS_fontconfig-utils = "libfontconfig-utils"
+DEBIAN_NOAUTONAME_fontconfig-utils = "1"
+
+inherit autotools pkgconfig
+
+FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
+
+# comma separated list of additional directories
+# /usr/share/fonts is already included by default (you can change it with --with-default-fonts)
+FONTCONFIG_FONT_DIRS ?= "no"
+
+EXTRA_OECONF = " --disable-docs --with-default-fonts=${datadir}/fonts --with-cache-dir=${FONTCONFIG_CACHE_DIR} --with-add-fonts=${FONTCONFIG_FONT_DIRS}"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.3.bb
deleted file mode 100644
index 3ed907012..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.3.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Freetype font rendering library"
-DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \
-highly customizable, and portable while capable of producing high-quality output (glyph \
-images). It can be used in graphics libraries, display servers, font conversion tools, text \
-image generation tools, and many other products as well."
-HOMEPAGE = "http://www.freetype.org/"
-BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
-SECTION = "libs"
-
-LICENSE = "FreeType | GPLv2+"
-LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \
- file://docs/FTL.TXT;md5=d479e83797f699fe873b38dadd0fcd4c \
- file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
- file://use-right-libtool.patch"
-
-SRC_URI[md5sum] = "0037b25a8c090bc8a1218e867b32beb1"
-SRC_URI[sha256sum] = "371e707aa522acf5b15ce93f11183c725b8ed1ee8546d7b3af549863045863a2"
-
-inherit autotools pkgconfig binconfig-disabled multilib_header
-
-# Adapt autotools to work with the minimal autoconf usage in freetype
-AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
-CONFIGURE_SCRIPT = "${S}/configure"
-EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
-
-PACKAGECONFIG ??= "zlib"
-
-PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
-# harfbuzz results in a circular dependency so enabling is non-trivial
-PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz"
-PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-
-EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'"
-
-TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
-
-do_install_append() {
- oe_multilib_header freetype2/freetype/config/ftconfig.h
-}
-
-BINCONFIG = "${bindir}/freetype-config"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.5.bb b/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.5.bb
new file mode 100644
index 000000000..97dde3a62
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/freetype/freetype_2.6.5.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Freetype font rendering library"
+DESCRIPTION = "FreeType is a software font engine that is designed to be small, efficient, \
+highly customizable, and portable while capable of producing high-quality output (glyph \
+images). It can be used in graphics libraries, display servers, font conversion tools, text \
+image generation tools, and many other products as well."
+HOMEPAGE = "http://www.freetype.org/"
+BUGTRACKER = "https://savannah.nongnu.org/bugs/?group=freetype"
+SECTION = "libs"
+
+LICENSE = "FreeType | GPLv2+"
+LIC_FILES_CHKSUM = "file://docs/LICENSE.TXT;md5=4af6221506f202774ef74f64932878a1 \
+ file://docs/FTL.TXT;md5=13b25413274c9b3b09b63e4028216ff4 \
+ file://docs/GPLv2.TXT;md5=8ef380476f642c20ebf40fecb0add2ec"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/freetype/freetype-${PV}.tar.bz2 \
+ file://use-right-libtool.patch"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/freetype/files/freetype2/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+SRC_URI[md5sum] = "6a386964e18ba28cb93370e57a19031b"
+SRC_URI[sha256sum] = "e20a6e1400798fd5e3d831dd821b61c35b1f9a6465d6b18a53a9df4cf441acf0"
+
+inherit autotools pkgconfig binconfig-disabled multilib_header
+
+# Adapt autotools to work with the minimal autoconf usage in freetype
+AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
+CONFIGURE_SCRIPT = "${S}/configure"
+EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
+
+PACKAGECONFIG ??= "zlib"
+
+PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
+# harfbuzz results in a circular dependency so enabling is non-trivial
+PACKAGECONFIG[harfbuzz] = "--with-harfbuzz,--without-harfbuzz,harfbuzz"
+PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+EXTRA_OECONF = "CC_BUILD='${BUILD_CC}'"
+
+TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+do_install_append() {
+ oe_multilib_header freetype2/freetype/config/ftconfig.h
+}
+
+BINCONFIG = "${bindir}/freetype-config"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_1.13.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_1.13.0.bb
deleted file mode 100644
index a25c405f3..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_1.13.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "OpenGL extension loading library"
-DESCRIPTION = "The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library."
-HOMEPAGE = "http://glew.sourceforge.net/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=67586"
-SECTION = "x11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2"
-
-DEPENDS = "virtual/libx11 virtual/libgl libglu libxext libxi libxmu"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
- file://no-strip.patch"
-
-SRC_URI[md5sum] = "7cbada3166d2aadfc4169c4283701066"
-SRC_URI[sha256sum] = "aa25dc48ed84b0b64b8d41cdd42c8f40f149c37fa2ffa39cd97f42c78d128bc7"
-
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew"
-UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/"
-
-inherit lib_package pkgconfig distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# Override SYSTEM to avoid calling config.guess, we're cross-compiling. Pass
-# our CFLAGS via POPT as that's the optimisation variable and safely
-# overwritten.
-EXTRA_OEMAKE = "SYSTEM='linux' \
- CC='${CC}' LD='${CC}' STRIP='' \
- LDFLAGS.EXTRA='${LDFLAGS}' \
- POPT='${CFLAGS}' \
- GLEW_PREFIX='${prefix}' BINDIR='${bindir}' \
- LIBDIR='${libdir}' INCDIR='${includedir}/GL'"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install.all
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_2.0.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_2.0.0.bb
new file mode 100644
index 000000000..489dd7c8f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/glew/glew_2.0.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "OpenGL extension loading library"
+DESCRIPTION = "The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library."
+HOMEPAGE = "http://glew.sourceforge.net/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=67586"
+SECTION = "x11"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2"
+
+DEPENDS = "virtual/libx11 virtual/libgl libglu libxext libxi libxmu"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
+ file://no-strip.patch"
+
+SRC_URI[md5sum] = "2a2cd7c98f13854d2fcddae0d2b20411"
+SRC_URI[sha256sum] = "c572c30a4e64689c342ba1624130ac98936d7af90c3103f9ce12b8a0c5736764"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew"
+UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/"
+
+inherit lib_package pkgconfig distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# Override SYSTEM to avoid calling config.guess, we're cross-compiling. Pass
+# our CFLAGS via POPT as that's the optimisation variable and safely
+# overwritten.
+EXTRA_OEMAKE = "SYSTEM='linux' \
+ CC='${CC}' LD='${CC}' STRIP='' \
+ LDFLAGS.EXTRA='${LDFLAGS}' \
+ POPT='${CFLAGS}' \
+ GLEW_PREFIX='${prefix}' BINDIR='${bindir}' \
+ LIBDIR='${libdir}' INCDIR='${includedir}/GL' PKGDIR='${libdir}/pkgconfig'"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install.all
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.2.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.2.3.bb
deleted file mode 100644
index cfe885fe7..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.2.3.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Text shaping library"
-DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e021dd6dda6ff1e6b1044002fc662b9b \
- file://src/hb-ucdn/COPYING;md5=994ba0f1295f15b4bda4999a5bbeddef \
-"
-
-DEPENDS = "glib-2.0 cairo fontconfig freetype"
-
-SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.bz2"
-
-SRC_URI[md5sum] = "da8d97e262e6ef8288e1ae76369421bd"
-SRC_URI[sha256sum] = "8216d2404aaab7fde87be0365a90d64aa6c55928e104557cfcb37b54a096cb8c"
-
-inherit autotools pkgconfig lib_package
-
-PACKAGECONFIG ??= "icu"
-PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
-
-EXTRA_OECONF = " \
- --with-cairo \
- --with-fontconfig \
- --with-freetype \
- --with-glib \
- --without-graphite2 \
-"
-
-PACKAGES =+ "${PN}-icu ${PN}-icu-dev"
-
-FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
-FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
- ${libdir}/libharfbuzz-icu.so \
- ${libdir}/pkgconfig/harfbuzz-icu.pc \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb
new file mode 100644
index 000000000..f24c443a7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Text shaping library"
+DESCRIPTION = "HarfBuzz is an OpenType text shaping engine."
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/HarfBuzz"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=HarfBuzz"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e021dd6dda6ff1e6b1044002fc662b9b \
+ file://src/hb-ucdn/COPYING;md5=994ba0f1295f15b4bda4999a5bbeddef \
+"
+
+DEPENDS = "glib-2.0 cairo fontconfig freetype"
+
+SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.bz2"
+
+SRC_URI[md5sum] = "a82d49ff67197bc3c96ea34b98880c52"
+SRC_URI[sha256sum] = "b04be31633efee2cae1d62d46434587302554fa837224845a62565ec68a0334d"
+
+inherit autotools pkgconfig lib_package gtk-doc
+
+PACKAGECONFIG ??= "icu"
+PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
+
+EXTRA_OECONF = " \
+ --with-cairo \
+ --with-fontconfig \
+ --with-freetype \
+ --with-glib \
+ --without-graphite2 \
+"
+
+PACKAGES =+ "${PN}-icu ${PN}-icu-dev"
+
+FILES_${PN}-icu = "${libdir}/libharfbuzz-icu.so.*"
+FILES_${PN}-icu-dev = "${libdir}/libharfbuzz-icu.la \
+ ${libdir}/libharfbuzz-icu.so \
+ ${libdir}/pkgconfig/harfbuzz-icu.pc \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-directfb.bb b/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-directfb.bb
deleted file mode 100644
index 5641195e8..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-directfb.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "An image that uses DirectFB instead of X11"
-LICENSE = "MIT"
-
-
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
- file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-inherit core-image distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "directfb"
-CONFLICT_DISTRO_FEATURES = "x11"
-
-IMAGE_INSTALL += "\
- ${CORE_IMAGE_BASE_INSTALL} \
- packagegroup-core-full-cmdline \
- packagegroup-core-directfb \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-weston.bb b/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-weston.bb
index 52e271dac..e36655ffc 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-weston.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/images/core-image-weston.bb
@@ -9,3 +9,4 @@ inherit core-image distro_features_check
REQUIRED_DISTRO_FEATURES = "wayland"
CORE_IMAGE_BASE_INSTALL += "weston weston-init weston-examples gtk+3-demo clutter-1.0-examples"
+CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_1.5.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_1.5.0.bb
new file mode 100644
index 000000000..c9e70d73d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_1.5.0.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Hardware accelerated JPEG compression/decompression library"
+DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
+HOMEPAGE = "http://libjpeg-turbo.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=05bab7c7ad899d85bfba60da1a1271f2 \
+ file://jpeglib.h;endline=16;md5=f67d70e547a2662c079781c72f877f72 \
+ file://djpeg.c;endline=11;md5=b90b6d2b4119f9e5807cd273f525d2af \
+"
+DEPENDS = "nasm-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "3fc5d9b6a8bce96161659ae7a9939257"
+SRC_URI[sha256sum] = "9f397c31a67d2b00ee37597da25898b03eb282ccd87b135a50a69993b6a2035f"
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
+UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
+
+PE= "1"
+
+# Drop-in replacement for jpeg
+PROVIDES = "jpeg"
+RPROVIDES_${PN} += "jpeg"
+RREPLACES_${PN} += "jpeg"
+RCONFLICTS_${PN} += "jpeg"
+
+inherit autotools pkgconfig
+
+# Work around missing x32 ABI support
+EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--without-simd", "", d)}"
+
+# Work around missing non-floating point ABI support in MIPS
+EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "--without-simd", "", d)}"
+
+# Provide a workaround if Altivec unit is not present in PPC
+EXTRA_OECONF_append_class-target_powerpc = "${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "--without-simd", d)}"
+EXTRA_OECONF_append_class-target_powerpc64 = "${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "--without-simd", d)}"
+
+PACKAGES =+ "jpeg-tools libturbojpeg"
+
+DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library."
+FILES_jpeg-tools = "${bindir}/*"
+
+DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
+FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_8d+1.4.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_8d+1.4.2.bb
deleted file mode 100644
index 485943194..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/jpeg/libjpeg-turbo_8d+1.4.2.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression"
-HOMEPAGE = "http://libjpeg-turbo.org/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=12;md5=cad955d15145c3fdceec6855e078e953 \
- file://jpeglib.h;endline=14;md5=dfc803dc51ae21178d1376ec73c4454d \
- file://djpeg.c;endline=9;md5=e93a8f2061e8a0ac71c7a485c10489e2 \
-"
-
-DEPENDS = "nasm-native"
-
-BASEPV = "${@d.getVar('PV',True).split('+')[1]}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${BASEPV}.tar.gz"
-SRC_URI[md5sum] = "86b0d5f7507c2e6c21c00219162c3c44"
-SRC_URI[sha256sum] = "521bb5d3043e7ac063ce3026d9a59cc2ab2e9636c655a2515af5f4706122233e"
-UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
-UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
-
-S = "${WORKDIR}/${BPN}-${BASEPV}"
-
-# Drop-in replacement for jpeg
-PROVIDES = "jpeg"
-RPROVIDES_${PN} += "jpeg"
-RREPLACES_${PN} += "jpeg"
-RCONFLICTS_${PN} += "jpeg"
-
-inherit autotools pkgconfig
-
-# Work around missing x32 ABI support
-EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--without-simd", "", d)}"
-
-PACKAGES =+ "jpeg-tools libturbojpeg"
-
-DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library."
-FILES_jpeg-tools = "${bindir}/*"
-
-DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs"
-FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch b/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch
deleted file mode 100644
index 8cd507f79..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 19c3d242034748b3c60765683e1ff4e2df970205 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Tue, 10 Dec 2013 11:37:32 +0000
-Subject: [PATCH] configure: improve libpng detection
-
-Instead of looking for "libpng12" explicitly though pkg-config and then falling
-back to library hunting, just use pkg-config to find "libpng" which is provided
-by both libpng12 and libpng16.
-
-This also makes the libpng detection deterministic.
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
----
- configure.ac | 29 +++++------------------------
- 1 file changed, 5 insertions(+), 24 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8a28076..65d7c79 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -34,7 +34,7 @@ AC_ARG_ENABLE(jpeg,
- enable_jpeg=$enableval, enable_jpeg=no)
-
- AC_ARG_ENABLE(png,
-- [ --disable-png disable png support [default=no]],
-+ [ --disable-png disable PNG support [default=enabled]],
- enable_png=$enableval, enable_png=yes )
-
- AC_ARG_ENABLE(doxygen-docs,
-@@ -156,29 +156,10 @@ fi
- dnl ------ Check for PNG ---------------------------------------------------
-
- if test x$enable_png != xno; then
-- AC_MSG_CHECKING(for libpng12)
-- if test x$PKG_CONFIG != xno && $PKG_CONFIG --exists libpng12; then
-- AC_MSG_RESULT(yes)
-- PNG_LIBS=`$PKG_CONFIG --libs libpng12`
-- PNG_CFLAGS=`$PKG_CONFIG --cflags libpng12`
-- AC_DEFINE(USE_PNG, [1], [Use Png])
-- SUPPORTS_PNG=1
-- PNG_REQUIRED="libpng12"
-- else
-- AC_MSG_RESULT(no)
-- # AC_CHECK_HEADERS(png.h, [ have_png_h="yes" ], [ have_png_h="no" ] )
-- AC_CHECK_LIB([png], [png_create_read_struct], [have_png="yes"], [have_png="no"])
--
-- if test x$have_png=xyes && test x$have_png_h=xyes; then
-- AC_DEFINE(USE_PNG, [1], [Use Png])
-- SUPPORTS_PNG=1
-- PNG_LIBS="-lpng -lz"
-- MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS"
-- else
-- AC_MSG_WARN([*** Cannot find PNG, disabling support])
-- enable_png=no
-- fi
-- fi
-+ PKG_CHECK_MODULES(PNG, libpng)
-+ AC_DEFINE(USE_PNG, [1], [Use PNG])
-+ SUPPORTS_PNG=1
-+ PNG_REQUIRED="libpng"
- fi
-
-
---
-1.8.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb b/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb
deleted file mode 100644
index f2eb67560..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Matchbox window manager core library"
-SECTION = "x11/libs"
-HOMEPAGE = "http://matchbox-project.org/"
-BUGTRACKER = "http://bugzilla.yoctoproject.com/"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
- file://libmb/mbexp.c;endline=20;md5=28c0aef3b23e308464f5dae6a11b0d2f \
- file://libmb/mbdotdesktop.c;endline=21;md5=5a287156b3207e851c1d68d09c439b51"
-
-DEPENDS = "virtual/libx11 libxext"
-
-SRC_URI = "http://downloads.yoctoproject.org/releases/matchbox/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \
- file://libpng.patch"
-
-SRC_URI[md5sum] = "fc6cc807f55a3e7c752d8013176875d7"
-SRC_URI[sha256sum] = "254cab52e304a3512c8df4be59d690cf3921bbb68a28ede7fe26b93534217b53"
-
-inherit autotools pkgconfig distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= "jpeg png xft xsettings"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
-PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,libxft"
-PACKAGECONFIG[xsettings] = "--enable-xsettings,--disable-xsettings,libxsettings-client"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb b/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
new file mode 100644
index 000000000..ce45e4814
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/libmatchbox/libmatchbox_1.12.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Matchbox window manager core library"
+SECTION = "x11/libs"
+HOMEPAGE = "http://matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.com/"
+
+LICENSE = "LGPLv2+ & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
+ file://COPYING.MIT;md5=f45ed9332b4f50a35adf2065adde4ca7 \
+ file://libmb/mbexp.c;endline=20;md5=28c0aef3b23e308464f5dae6a11b0d2f \
+ file://libmb/xsettings-client.c;endline=20;md5=4b106a387602db8d91a50d5cdfd65031"
+
+DEPENDS = "virtual/libx11 libxext"
+
+#SRCREV for 1.12
+SRCREV = "e846ee434f8e23d9db38af13c523f791495e0e87"
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG ??= "jpeg png xft"
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
+PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
+PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng"
+PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,libxft"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch b/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch
new file mode 100644
index 000000000..44e6d4df9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2/0001-src-video-make-it-compatible-with-wayland-1.10.patch
@@ -0,0 +1,57 @@
+From b1ed3533433501ec52c8289a5b3a294e57e7f798 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@gmail.com>
+Date: Thu, 26 May 2016 11:31:52 +0000
+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 <Martin.Jansa@gmail.com>
+
+---
+ 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
+--- a/src/video/wayland/SDL_waylanddyn.h
++++ b/src/video/wayland/SDL_waylanddyn.h
+@@ -79,6 +79,7 @@ void SDL_WAYLAND_UnloadSymbols(void);
+ #define wl_proxy_get_user_data (*WAYLAND_wl_proxy_get_user_data)
+ #define wl_proxy_add_listener (*WAYLAND_wl_proxy_add_listener)
+ #define wl_proxy_marshal_constructor (*WAYLAND_wl_proxy_marshal_constructor)
++#define wl_proxy_marshal_constructor_versioned (*WAYLAND_wl_proxy_marshal_constructor_versioned)
+
+ #define wl_seat_interface (*WAYLAND_wl_seat_interface)
+ #define wl_surface_interface (*WAYLAND_wl_surface_interface)
+diff --git a/src/video/wayland/SDL_waylandsym.h b/src/video/wayland/SDL_waylandsym.h
+index c3b4fa5..b9a0d97 100644
+--- a/src/video/wayland/SDL_waylandsym.h
++++ b/src/video/wayland/SDL_waylandsym.h
+@@ -55,6 +55,10 @@ SDL_WAYLAND_SYM(void, wl_list_insert_list, (struct wl_list *, struct wl_list *))
+ SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_4)
+ SDL_WAYLAND_SYM(struct wl_proxy *, wl_proxy_marshal_constructor, (struct wl_proxy *, uint32_t opcode, const struct wl_interface *interface, ...))
+
++/* These functions are available in Wayland >= 1.10 */
++SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_10)
++SDL_WAYLAND_SYM(struct wl_proxy *, wl_proxy_marshal_constructor_versioned, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, uint32_t version, ...))
++
+ SDL_WAYLAND_INTERFACE(wl_seat_interface)
+ SDL_WAYLAND_INTERFACE(wl_surface_interface)
+ SDL_WAYLAND_INTERFACE(wl_shm_pool_interface)
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.4.bb b/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.4.bb
index 428230711..844ff333c 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.4.bb
@@ -15,7 +15,9 @@ PROVIDES = "virtual/libsdl2"
DEPENDS_class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)}"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
- file://linkage.patch"
+ file://linkage.patch \
+ file://0001-src-video-make-it-compatible-with-wayland-1.10.patch \
+"
S = "${WORKDIR}/SDL2-${PV}"
@@ -44,7 +46,7 @@ PACKAGECONFIG ??= " \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
"
PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib,"
-PACKAGECONFIG[directfb] = "--enable-video-directfb --disable-video-directfb,directfb"
+PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb"
PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2"
PACKAGECONFIG[opengl] = "--enable-video-opengl,--disable-video-opengl,virtual/libgl"
PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license b/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license
deleted file mode 100644
index 628de9830..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/MIT-style-license
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright © 2001 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Red Hat not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. Red Hat makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL RED HAT
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Owen Taylor, Red Hat, Inc.
- */
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch b/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch
deleted file mode 100644
index d08d0d5b9..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/link-x11.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: Xsettings-client-0.10/Makefile.am
-===================================================================
---- Xsettings-client-0.10.orig/Makefile.am 2008-02-07 14:49:54.000000000 +0000
-+++ Xsettings-client-0.10/Makefile.am 2008-02-07 14:50:00.000000000 +0000
-@@ -9,4 +9,4 @@
-
- libXsettings_client_la_SOURCES= $(source_c) $(source_h)
-
--libXsettings_client_la_LIBADD = @X_LIBS@
-\ No newline at end of file
-+libXsettings_client_la_LIBADD = @X_LIBS@ -lX11
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/obsolete_automake_macros.patch b/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/obsolete_automake_macros.patch
deleted file mode 100644
index 905d08e61..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd Xsettings-client-0.10/configure.ac Xsettings-client-0.10/configure.ac
---- Xsettings-client-0.10/configure.ac 2003-03-28 12:39:51.000000000 +0200
-+++ Xsettings-client-0.10/configure.ac 2013-01-11 07:37:21.491597743 +0200
-@@ -1,7 +1,7 @@
- # Process this file with autoconf to produce a configure script.
- AC_INIT(xsettings-client.c)
- AM_INIT_AUTOMAKE(Xsettings-client, 0.10)
--AM_CONFIG_HEADER(config.h)
-+AC_CONFIG_HEADERS(config.h)
-
- CFLAGS="-Os -Wall"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb b/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb
deleted file mode 100644
index 67c5e2777..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/libxsettings-client/libxsettings-client_0.10.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "utility functions for the Xsettings protocol"
-DESCRIPTION = "Libraries used for applications making use of the Xsettings configuration \
-setting propagation protocol. Controls setting of double click timeout, drag-and-drop \
-threshold, and default foreground and background colors for all applications running within a \
-desktop."
-HOMEPAGE = "http://matchbox-project.org/sources/optional-dependencies/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-SECTION = "x/libs"
-LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
- file://xsettings-client.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
- file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
-DEPENDS = "virtual/libx11"
-
-PR = "r5"
-
-headers = "xsettings-common.h xsettings-client.h"
-
-SRC_URI = "http://downloads.yoctoproject.org/releases/matchbox/optional-dependencies/Xsettings-client-0.10.tar.gz \
- file://MIT-style-license \
- file://link-x11.patch;apply=yes \
- file://obsolete_automake_macros.patch \
-"
-
-SRC_URI[md5sum] = "c14aa9db6c097e0306dac97fb7da1add"
-SRC_URI[sha256sum] = "f274a4bc969ae192994a856b7f786c6fce96bae77f96c1c2b71dd97599e06e43"
-
-S = "${WORKDIR}/Xsettings-client-0.10"
-
-inherit autotools gettext distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_configure_prepend() {
- # This package doesn't ship with its own COPYING file and
- # autotools will install a GPLv2 one instead of the actual MIT-style license here.
- # Add the correct license here to avoid confusion.
- cp -f ${WORKDIR}/MIT-style-license ${S}/COPYING
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.1.bb
new file mode 100644
index 000000000..c3d2d23db
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Matchbox lightweight window manager"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://src/wm.h;endline=21;md5=a7e844465edbcf79c282369f93caa835 \
+ file://src/main.c;endline=21;md5=3e5d9f832b527b0d72dbe8e3c4c60b95 \
+ file://src/wm.c;endline=21;md5=8dc9d24477d87ef5dfbc2e4927146aab"
+
+SECTION = "x11/wm"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification expat gconf libxcursor libxfixes"
+
+# SRCREV tagged 1.2.1
+SRCREV = "9fd1806dfa7c8f2202db18b7bc880857a3019f8c"
+SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \
+ file://kbdconfig"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/matchbox \
+ ${sysconfdir}/matchbox \
+ ${datadir}/themes/blondie/matchbox \
+ ${datadir}/themes/Default/matchbox \
+ ${datadir}/themes/MBOpus/matchbox"
+
+EXTRA_OECONF = " --enable-startup-notification \
+ --disable-xrm \
+ --enable-expat \
+ --with-expat-lib=${STAGING_LIBDIR} \
+ --with-expat-includes=${STAGING_INCDIR}"
+
+do_install_prepend() {
+ install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_git.bb
deleted file mode 100644
index aa768280a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_git.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Matchbox lightweight window manager"
-HOMEPAGE = "http://matchbox-project.org"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://src/wm.h;endline=21;md5=a7e844465edbcf79c282369f93caa835 \
- file://src/main.c;endline=21;md5=3e5d9f832b527b0d72dbe8e3c4c60b95 \
- file://src/wm.c;endline=21;md5=8dc9d24477d87ef5dfbc2e4927146aab"
-
-SECTION = "x11/wm"
-DEPENDS = "libmatchbox virtual/libx11 libxext libxrender startup-notification expat gconf libxcursor libxfixes"
-
-SRCREV = "8178e70d5c742c4cd63b51df228cc8aa3594d518"
-PV = "1.2+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/matchbox-window-manager \
- file://kbdconfig"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-FILES_${PN} = "${bindir}/* \
- ${datadir}/matchbox \
- ${sysconfdir}/matchbox \
- ${datadir}/themes/blondie/matchbox \
- ${datadir}/themes/Default/matchbox \
- ${datadir}/themes/MBOpus/matchbox"
-
-EXTRA_OECONF = " --enable-startup-notification \
- --disable-xrm \
- --enable-expat \
- --with-expat-lib=${STAGING_LIBDIR} \
- --with-expat-includes=${STAGING_INCDIR}"
-
-do_install_prepend() {
- install ${WORKDIR}/kbdconfig ${S}/data/kbdconfig
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.1.bb
index eb80cd3bb..a1a8e26e0 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/menu-cache/menu-cache_1.0.1.bb
@@ -6,7 +6,7 @@ LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0964c689fcf4c21c6797ea87408416b6"
SECTION = "x11/libs"
-DEPENDS = "glib-2.0 intltool-native libfm-extra"
+DEPENDS = "glib-2.0 libfm-extra"
SRC_URI = "${SOURCEFORGE_MIRROR}/lxde/menu-cache-${PV}.tar.xz"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch
new file mode 100644
index 000000000..48bd32567
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch
@@ -0,0 +1,116 @@
+From 5ec140c17b54c25920091501b665b9aa809cc5e8 Mon Sep 17 00:00:00 2001
+From: Matt Turner <mattst88@gmail.com>
+Date: Mon, 11 Jul 2016 10:44:25 -0700
+Subject: mapi: Massage code to allow clang to compile.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+According to https://llvm.org/bugs/show_bug.cgi?id=19778#c3 this code
+was violating the spec, resulting in it failing to compile.
+
+Cc: mesa-stable@lists.freedesktop.org
+Co-authored-by: Tomasz Paweł Gajc <tpgxyz@gmail.com>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89599
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff --git a/configure.ac b/configure.ac
+index 3799d8d..1ca8359 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -226,6 +226,7 @@ AX_GCC_FUNC_ATTRIBUTE([packed])
+ AX_GCC_FUNC_ATTRIBUTE([pure])
+ AX_GCC_FUNC_ATTRIBUTE([returns_nonnull])
+ AX_GCC_FUNC_ATTRIBUTE([unused])
++AX_GCC_FUNC_ATTRIBUTE([visibility])
+ AX_GCC_FUNC_ATTRIBUTE([warn_unused_result])
+ AX_GCC_FUNC_ATTRIBUTE([weak])
+
+diff --git a/src/mapi/entry_x86-64_tls.h b/src/mapi/entry_x86-64_tls.h
+index 38faccc..c5262a1 100644
+--- a/src/mapi/entry_x86-64_tls.h
++++ b/src/mapi/entry_x86-64_tls.h
+@@ -25,6 +25,11 @@
+ * Chia-I Wu <olv@lunarg.com>
+ */
+
++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
++#define HIDDEN __attribute__((visibility("hidden")))
++#else
++#define HIDDEN
++#endif
+
+ __asm__(".text\n"
+ ".balign 32\n"
+@@ -54,8 +59,8 @@ entry_patch_public(void)
+ {
+ }
+
+-static char
+-x86_64_entry_start[];
++extern char
++x86_64_entry_start[] HIDDEN;
+
+ mapi_func
+ entry_get_public(int slot)
+diff --git a/src/mapi/entry_x86_tls.h b/src/mapi/entry_x86_tls.h
+index 46d2ece..231b409 100644
+--- a/src/mapi/entry_x86_tls.h
++++ b/src/mapi/entry_x86_tls.h
+@@ -27,6 +27,12 @@
+
+ #include <string.h>
+
++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
++#define HIDDEN __attribute__((visibility("hidden")))
++#else
++#define HIDDEN
++#endif
++
+ __asm__(".text");
+
+ __asm__("x86_current_tls:\n\t"
+@@ -71,8 +77,8 @@ __asm__(".text");
+ extern unsigned long
+ x86_current_tls();
+
+-static char x86_entry_start[];
+-static char x86_entry_end[];
++extern char x86_entry_start[] HIDDEN;
++extern char x86_entry_end[] HIDDEN;
+
+ void
+ entry_patch_public(void)
+diff --git a/src/mapi/entry_x86_tsd.h b/src/mapi/entry_x86_tsd.h
+index ea7bacb..03d9735 100644
+--- a/src/mapi/entry_x86_tsd.h
++++ b/src/mapi/entry_x86_tsd.h
+@@ -25,6 +25,11 @@
+ * Chia-I Wu <olv@lunarg.com>
+ */
+
++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY
++#define HIDDEN __attribute__((visibility("hidden")))
++#else
++#define HIDDEN
++#endif
+
+ #define X86_ENTRY_SIZE 32
+
+@@ -58,8 +63,8 @@ __asm__(".balign 32\n"
+ #include <string.h>
+ #include "u_execmem.h"
+
+-static const char x86_entry_start[];
+-static const char x86_entry_end[];
++extern const char x86_entry_start[] HIDDEN;
++extern const char x86_entry_end[] HIDDEN;
+
+ void
+ entry_patch_public(void)
+--
+cgit v0.10.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch
new file mode 100644
index 000000000..d2d67558b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch
@@ -0,0 +1,29 @@
+Configure checks for compiler to be gcc and then it enables asm_offsets
+generation. see
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=73c9b4b0e05fc66629ba250846948dc55c0e7a0d
+
+However, we missed the check when enabling this on cross compilation
+when architecture for both host and target is x86
+
+Fixes errors like
+./gen_matypes > matypes.h
+/bin/bash: ./gen_matypes: No such file or directory
+
+-Khem
+
+Upstream-Status: Submitted
+
+Index: mesa-12.0.1/configure.ac
+===================================================================
+--- mesa-12.0.1.orig/configure.ac
++++ mesa-12.0.1/configure.ac
+@@ -732,7 +732,7 @@ test "x$enable_asm" = xno && AC_MSG_RESU
+ if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
+ case "$host_cpu" in
+ i?86 | x86_64 | amd64)
+- if test "x$host_cpu" != "x$target_cpu"; then
++ if test "x$host_cpu" != "x$target_cpu" -o "x$acv_mesa_CLANG" = xyes; then
+ enable_asm=no
+ AC_MSG_RESULT([no, cross compiling])
+ fi
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch
deleted file mode 100644
index 09054cb75..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 36829a8d7ad2888515fbee95c2a70b3d636d7538 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 9 Jul 2014 14:30:33 +0200
-Subject: [PATCH 2/9] Correctly implement with AC_WITH(glut) so that
- --without-glut works.
-
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-Upstream-Status: Submitted (https://patchwork.freedesktop.org/patch/64417/)
-
----
- configure.ac | 26 +++++++++++++++-----------
- 1 file changed, 15 insertions(+), 11 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c4ee12b..9445424 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -67,21 +67,25 @@ DEMO_CFLAGS="$DEMO_CFLAGS $GL_CFLAGS"
- DEMO_LIBS="$DEMO_LIBS $GL_LIBS"
-
- dnl Check for GLUT
--GLUT_CFLAGS=""
--GLUT_LIBS=-lglut
--glut_enabled=yes
-+glut_enabled=no
- AC_ARG_WITH([glut],
- [AS_HELP_STRING([--with-glut=DIR],
- [glut install directory])],
- [GLUT_CFLAGS="-I$withval/include"
-- GLUT_LIBS="-L$withval/lib -lglut"])
--AC_CHECK_HEADER([GL/glut.h],
-- [],
-- [glut_enabled=no])
--AC_CHECK_LIB([glut],
-- [glutInit],
-- [],
-- [glut_enabled=no])
-+ GLUT_LIBS="-L$withval/lib -lglut"],
-+ [GLUT_CFLAGS=""
-+ GLUT_LIBS="-lglut"]
-+ )
-+AS_IF([test "x$with_glut" != xno],
-+ [AC_CHECK_HEADER([GL/glut.h],
-+ [],
-+ [glut_enabled=no])
-+ AC_CHECK_LIB([glut],
-+ [glutInit],
-+ [],
-+ [glut_enabled=no])
-+ glut_enabled=yes
-+])
-
- dnl Check for FreeGLUT 2.6 or later
- AC_EGREP_HEADER([glutInitContextProfile],
---
-2.0.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
index 6b58c2b77..f6b59a11f 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
@@ -1,8 +1,7 @@
-From b25e9c675cf560b8b037dc855c6b3b1d09957867 Mon Sep 17 00:00:00 2001
+From 779438770bedf3d53e6ad8f7cd6889b7f50daf3b Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 9 Jul 2014 14:23:41 +0200
-Subject: [PATCH 3/9] configure: Allow to disable demos which require GLEW or
- GLU
+Subject: [PATCH] configure: Allow to disable demos which require GLEW or GLU
* in some systems without X11 support we don't have GLEW, but
mesa-demos are still useful
@@ -10,17 +9,20 @@ Subject: [PATCH 3/9] configure: Allow to disable demos which require GLEW or
Upstream-Status: Pending
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Port to 8.3.0
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
configure.ac | 49 ++++++++++++++++++++---------
- src/Makefile.am | 14 ++++++---
+ src/Makefile.am | 18 ++++++++---
src/demos/Makefile.am | 73 ++++++++++++++++++++++++-------------------
src/egl/Makefile.am | 8 +++--
- src/egl/opengles1/Makefile.am | 44 +++++++++++++++-----------
- src/egl/opengles2/Makefile.am | 33 ++++++++++---------
- 6 files changed, 135 insertions(+), 86 deletions(-)
+ src/egl/opengles1/Makefile.am | 10 ++++--
+ src/egl/opengles2/Makefile.am | 29 ++++++++---------
+ 6 files changed, 117 insertions(+), 70 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 9445424..bc4c8d1 100644
+index 0525b09..28834cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,25 +93,44 @@ AC_EGREP_HEADER([glutInitContextProfile],
@@ -92,10 +94,11 @@ index 9445424..bc4c8d1 100644
AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes")
AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes")
diff --git a/src/Makefile.am b/src/Makefile.am
-index 1647d64..754c47c 100644
+index 1647d64..8b89dee 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -23,14 +23,18 @@
+@@ -22,15 +22,19 @@
+ # Authors:
# Eric Anholt <eric@anholt.net>
+if HAVE_GLEW
@@ -116,7 +119,7 @@ index 1647d64..754c47c 100644
objviewer \
osdemos \
perf \
-@@ -40,8 +39,12 @@ SUBDIRS = \
+@@ -40,8 +44,12 @@ SUBDIRS = \
slang \
tests \
tools \
@@ -289,10 +292,10 @@ index d64a49e..4fe1ca8 100644
+ openvg
+endif
diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
-index 7a9828d..3455e75 100644
+index fa397c2..21853e8 100644
--- a/src/egl/opengles1/Makefile.am
+++ b/src/egl/opengles1/Makefile.am
-@@ -36,28 +36,43 @@ AM_LDFLAGS = \
+@@ -36,9 +36,12 @@ AM_LDFLAGS = \
$(EGL_LIBS) \
-lm
@@ -301,42 +304,13 @@ index 7a9828d..3455e75 100644
if HAVE_EGL
if HAVE_GLESV1
-noinst_PROGRAMS = \
-- bindtex \
-- clear \
-+noinst_PROGRAMS += \
- drawtex_screen \
-+ gears_screen \
-+ torus_screen \
-+ tri_screen
-+
-+drawtex_screen_SOURCES = drawtex.c
-+gears_screen_SOURCES = gears.c
-+torus_screen_SOURCES = torus.c
-+tri_screen_SOURCES = tri.c
-+
-+drawtex_screen_LDADD = ../eglut/libeglut_screen.la
-+gears_screen_LDADD = ../eglut/libeglut_screen.la
-+torus_screen_LDADD = ../eglut/libeglut_screen.la
-+tri_screen_LDADD = ../eglut/libeglut_screen.la
-+
+if HAVE_X11
-+noinst_PROGRAMS += \
-+ clear
-+
+bin_PROGRAMS = \
-+ bindtex \
+ bindtex \
+ clear \
drawtex_x11 \
- eglfbdev \
- es1_info \
-- gears_screen \
- gears_x11 \
- msaa \
- pbuffer\
- render_tex \
- texture_from_pixmap \
-- torus_screen \
+@@ -52,8 +55,6 @@ noinst_PROGRAMS = \
torus_x11 \
-- tri_screen \
tri_x11 \
two_win
-endif
@@ -344,26 +318,7 @@ index 7a9828d..3455e75 100644
bindtex_LDADD = $(X11_LIBS)
es1_info_LDADD = $(X11_LIBS)
-@@ -71,22 +86,15 @@ two_win_LDADD = $(X11_LIBS)
- clear_LDADD = ../eglut/libeglut_x11.la $(EGL_LIBS) $(X11_LIBS)
- clear_LDFLAGS =
-
--drawtex_screen_SOURCES = drawtex.c
--gears_screen_SOURCES = gears.c
--torus_screen_SOURCES = torus.c
--tri_screen_SOURCES = tri.c
--
- drawtex_x11_SOURCES = drawtex.c
- gears_x11_SOURCES = gears.c
- torus_x11_SOURCES = torus.c
- tri_x11_SOURCES = tri.c
-
--drawtex_screen_LDADD = ../eglut/libeglut_screen.la
--gears_screen_LDADD = ../eglut/libeglut_screen.la
--torus_screen_LDADD = ../eglut/libeglut_screen.la
--tri_screen_LDADD = ../eglut/libeglut_screen.la
--
- drawtex_x11_LDADD = ../eglut/libeglut_x11.la
+@@ -76,3 +77,6 @@ drawtex_x11_LDADD = ../eglut/libeglut_x11.la
gears_x11_LDADD = ../eglut/libeglut_x11.la
torus_x11_LDADD = ../eglut/libeglut_x11.la
tri_x11_LDADD = ../eglut/libeglut_x11.la
@@ -371,35 +326,35 @@ index 7a9828d..3455e75 100644
+endif
+endif
diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am
-index 41c1b80..74af460 100644
+index b80ba50..17f8d49 100644
--- a/src/egl/opengles2/Makefile.am
+++ b/src/egl/opengles2/Makefile.am
-@@ -36,26 +36,29 @@ AM_LDFLAGS = \
+@@ -33,27 +33,28 @@ AM_LDFLAGS = \
+ $(EGL_LIBS) \
+ -lm
+
++bin_PROGRAMS =
++
if HAVE_EGL
if HAVE_GLESV2
- bin_PROGRAMS = \
+-bin_PROGRAMS =
+-if HAVE_X11
+-bin_PROGRAMS += \
- es2_info \
-- es2gears_screen \
- es2gears_x11 \
- es2tri
-+ es2gears_screen
-+
-+es2gears_screen_SOURCES = es2gears.c
-+es2gears_screen_LDADD = ../eglut/libeglut_screen.la
-+
+-endif
if HAVE_WAYLAND
bin_PROGRAMS += es2gears_wayland
-endif
-endif
--endif
-
--es2_info_LDADD = $(X11_LIBS)
--es2tri_LDADD = $(X11_LIBS)
++
+es2gears_wayland_SOURCES = es2gears.c
+es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
-+endif
+ endif
--es2gears_screen_SOURCES = es2gears.c
+-es2_info_LDADD = $(X11_LIBS)
+-es2tri_LDADD = $(X11_LIBS)
+if HAVE_X11
+bin_PROGRAMS += \
+ es2tri \
@@ -409,8 +364,6 @@ index 41c1b80..74af460 100644
+es2_info_LDADD = $(X11_LIBS)
es2gears_x11_SOURCES = es2gears.c
-
--es2gears_screen_LDADD = ../eglut/libeglut_screen.la
--
es2gears_x11_LDADD = ../eglut/libeglut_x11.la
+es2tri_LDADD = $(X11_LIBS)
+endif
@@ -420,5 +373,5 @@ index 41c1b80..74af460 100644
-es2gears_wayland_SOURCES = es2gears.c
-es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
--
-2.0.0
+2.1.4
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch
deleted file mode 100644
index aac2a3729..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-From 453353a221de9c64479f4372565d2cd8591b36cc Mon Sep 17 00:00:00 2001
-From: Frank Binns <frank.binns@imgtec.com>
-Date: Fri, 29 Jun 2012 11:26:04 +0100
-Subject: [PATCH 5/9] Fix build when EGL_MESA_screen_surface extension isn't
- present
-
-The EGL demos won't build against EGL implementations that don't support
-the EGL_MESA_screen_surface extension. Fix this, in most cases, by
-wrapping relevant bits of code in #ifdef EGL_MESA_screen_surface.
-
-Signed-off-by: Frank Binns <frank.binns@imgtec.com>
-
-Applied and fixed up in Yocto by...
-
-Integrated-by: Tom Zanussi <tom.zanussi@linux.intel.com>
-
-Upstream-Status: Pending
----
- src/egl/eglut/eglut.c | 9 +++++++--
- src/egl/eglut/eglut_screen.c | 14 ++++++++++++++
- src/egl/opengl/demo1.c | 2 ++
- src/egl/opengl/demo2.c | 7 ++++++-
- src/egl/opengl/demo3.c | 7 ++++++-
- 5 files changed, 35 insertions(+), 4 deletions(-)
-
-diff --git a/src/egl/eglut/eglut.c b/src/egl/eglut/eglut.c
-index 2ee6f15..f6a2ad4 100644
---- a/src/egl/eglut/eglut.c
-+++ b/src/egl/eglut/eglut.c
-@@ -76,8 +76,9 @@ _eglutNow(void)
- static void
- _eglutDestroyWindow(struct eglut_window *win)
- {
-- if (_eglut->surface_type != EGL_PBUFFER_BIT &&
-- _eglut->surface_type != EGL_SCREEN_BIT_MESA)
-+
-+ if (_eglut->surface_type == EGL_WINDOW_BIT ||
-+ _eglut->surface_type == EGL_PIXMAP_BIT)
- eglDestroySurface(_eglut->dpy, win->surface);
-
- _eglutNativeFiniWindow(win);
-@@ -175,7 +176,9 @@ _eglutCreateWindow(const char *title, int x, int y, int w, int h)
- win->config, win->native.u.pixmap, NULL);
- break;
- case EGL_PBUFFER_BIT:
-+#ifdef EGL_MESA_screen_surface
- case EGL_SCREEN_BIT_MESA:
-+#endif
- win->surface = win->native.u.surface;
- break;
- default:
-@@ -289,8 +292,10 @@ eglutDestroyWindow(int win)
- if (window->index != win)
- return;
-
-+#ifdef EGL_MESA_screen_surface
- /* XXX it causes some bug in st/egl KMS backend */
- if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
-+#endif
- eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
-
- _eglutDestroyWindow(_eglut->current);
-diff --git a/src/egl/eglut/eglut_screen.c b/src/egl/eglut/eglut_screen.c
-index 021a8f1..094a4e2 100644
---- a/src/egl/eglut/eglut_screen.c
-+++ b/src/egl/eglut/eglut_screen.c
-@@ -35,26 +35,33 @@
-
- #define MAX_MODES 100
-
-+#ifdef EGL_MESA_screen_surface
- static EGLScreenMESA kms_screen;
- static EGLModeMESA kms_mode;
- static EGLint kms_width, kms_height;
-+#endif
-
- void
- _eglutNativeInitDisplay(void)
- {
-+#ifdef EGL_MESA_screen_surface
- _eglut->native_dpy = EGL_DEFAULT_DISPLAY;
- _eglut->surface_type = EGL_SCREEN_BIT_MESA;
-+#endif
- }
-
- void
- _eglutNativeFiniDisplay(void)
- {
-+#ifdef EGL_MESA_screen_surface
- kms_screen = 0;
- kms_mode = 0;
- kms_width = 0;
- kms_height = 0;
-+#endif
- }
-
-+#ifdef EGL_MESA_screen_surface
- static void
- init_kms(void)
- {
-@@ -94,19 +101,23 @@ init_kms(void)
- kms_width = width;
- kms_height = height;
- }
-+#endif
-
- void
- _eglutNativeInitWindow(struct eglut_window *win, const char *title,
- int x, int y, int w, int h)
- {
-+#ifdef EGL_MESA_screen_surface
- EGLint surf_attribs[16];
- EGLint i;
-+#endif
- const char *exts;
-
- exts = eglQueryString(_eglut->dpy, EGL_EXTENSIONS);
- if (!exts || !strstr(exts, "EGL_MESA_screen_surface"))
- _eglutFatal("EGL_MESA_screen_surface is not supported\n");
-
-+#ifdef EGL_MESA_screen_surface
- init_kms();
-
- i = 0;
-@@ -128,14 +139,17 @@ _eglutNativeInitWindow(struct eglut_window *win, const char *title,
-
- win->native.width = kms_width;
- win->native.height = kms_height;
-+#endif
- }
-
- void
- _eglutNativeFiniWindow(struct eglut_window *win)
- {
-+#ifdef EGL_MESA_screen_surface
- eglShowScreenSurfaceMESA(_eglut->dpy,
- kms_screen, EGL_NO_SURFACE, 0);
- eglDestroySurface(_eglut->dpy, win->native.u.surface);
-+#endif
- }
-
- void
-diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
-index d892734..3a3564c 100644
---- a/src/egl/opengl/demo1.c
-+++ b/src/egl/opengl/demo1.c
-@@ -18,6 +18,7 @@
- static void
- TestScreens(EGLDisplay dpy)
- {
-+#ifdef EGL_MESA_screen_surface
- #define MAX 8
- EGLScreenMESA screens[MAX];
- EGLint numScreens;
-@@ -28,6 +29,7 @@ TestScreens(EGLDisplay dpy)
- for (i = 0; i < numScreens; i++) {
- printf(" Screen %d handle: %d\n", i, (int) screens[i]);
- }
-+#endif
- }
-
- /**
-diff --git a/src/egl/opengl/demo2.c b/src/egl/opengl/demo2.c
-index 505b474..bfef59e 100644
---- a/src/egl/opengl/demo2.c
-+++ b/src/egl/opengl/demo2.c
-@@ -16,6 +16,7 @@
-
- /*#define FRONTBUFFER*/
-
-+#ifdef EGL_MESA_screen_surface
- static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2,
- GLfloat r, GLfloat g, GLfloat b)
- {
-@@ -95,12 +96,13 @@ TestScreens(EGLDisplay dpy)
- printf(" Screen %d handle: %d\n", i, (int) screens[i]);
- }
- }
--
-+#endif
-
- int
- main(int argc, char *argv[])
- {
- int maj, min;
-+#ifdef EGL_MESA_screen_surface
- EGLContext ctx;
- EGLSurface pbuffer, screen_surf;
- EGLConfig configs[10];
-@@ -115,6 +117,7 @@ main(int argc, char *argv[])
- EGLModeMESA mode;
- EGLScreenMESA screen;
- EGLint count;
-+#endif
-
- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- assert(d);
-@@ -132,6 +135,7 @@ main(int argc, char *argv[])
- exit(1);
- }
-
-+#ifdef EGL_MESA_screen_surface
- eglGetConfigs(d, configs, 10, &numConfigs);
- printf("Got %d EGL configs:\n", numConfigs);
- for (i = 0; i < numConfigs; i++) {
-@@ -211,6 +215,7 @@ main(int argc, char *argv[])
- eglDestroySurface(d, pbuffer);
- eglDestroyContext(d, ctx);
- eglTerminate(d);
-+#endif
-
- return 0;
- }
-diff --git a/src/egl/opengl/demo3.c b/src/egl/opengl/demo3.c
-index f84ca23..31b5d8b 100644
---- a/src/egl/opengl/demo3.c
-+++ b/src/egl/opengl/demo3.c
-@@ -46,7 +46,7 @@ GLubyte OpenGL_bits[] = {
- 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00,
- };
-
--
-+#ifdef EGL_MESA_screen_surface
- static void Init(void)
- {
-
-@@ -551,11 +551,13 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
- fclose(f);
- }
- }
-+#endif
-
- int
- main(int argc, char *argv[])
- {
- int maj, min;
-+#ifdef EGL_MESA_screen_surface
- EGLContext ctx;
- EGLSurface screen_surf;
- EGLConfig configs[10];
-@@ -566,6 +568,7 @@ main(int argc, char *argv[])
- const GLubyte *bitmap;
- EGLint screenAttribs[32];
- EGLint i;
-+#endif
-
- EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- assert(d);
-@@ -583,6 +586,7 @@ main(int argc, char *argv[])
- exit(1);
- }
-
-+#ifdef EGL_MESA_screen_surface
- eglGetConfigs(d, configs, 10, &numConfigs);
- eglGetScreensMESA(d, &screen, 1, &count);
- eglGetModesMESA(d, screen, &mode, 1, &count);
-@@ -642,6 +646,7 @@ main(int argc, char *argv[])
- eglDestroySurface(d, screen_surf);
- eglDestroyContext(d, ctx);
- eglTerminate(d);
-+#endif
-
- return 0;
- }
---
-2.0.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch
deleted file mode 100644
index 12e0805f1..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6a19dba1d275579c73e7763b0554410ff4e1e650 Mon Sep 17 00:00:00 2001
-From: Frank Binns <frank.binns@imgtec.com>
-Date: Fri, 29 Jun 2012 12:00:26 +0100
-Subject: [PATCH 6/9] Query display for EGL_MESA_screen_surface extension
- before using it
-
-This code makes heavy use of the EGL_MESA_screen_surface extension so
-check the display to determine if it's supported by the underlying EGL
-implementation. If it doesn't then bail.
-
-Signed-off-by: Frank Binns <frank.binns@imgtec.com>
-
-Applied and fixed up in Yocto by...
-
-Integrated-by: Tom Zanussi <tom.zanussi@linux.intel.com>
-
-Upstream-Status: Pending
----
- src/egl/opengl/demo1.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
-index 3a3564c..06e2138 100644
---- a/src/egl/opengl/demo1.c
-+++ b/src/egl/opengl/demo1.c
-@@ -110,6 +110,12 @@ main(int argc, char *argv[])
- printf("EGL version = %d.%d\n", maj, min);
- printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
-
-+ if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
-+ "EGL_MESA_screen_surface")) {
-+ printf("EGL_MESA_screen_surface is not supported\n");
-+ exit(1);
-+ }
-+
- eglGetConfigs(d, NULL, 0, &numConfigs);
- configs = malloc(sizeof(*configs) *numConfigs);
- eglGetConfigs(d, configs, numConfigs, &numConfigs);
---
-2.0.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
index 89d2fac4f..6b676cdd2 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
@@ -1,11 +1,13 @@
-From d930b2da57f7c9efb80c8cef8f8adad15bbbc0d3 Mon Sep 17 00:00:00 2001
+From c59e286fa4e818ca015dd40e4725636309970ea8 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 10 Jul 2014 14:30:52 +0200
-Subject: [PATCH 7/9] Install few more test programs
+Subject: [PATCH] Install few more test programs
Upstream-Status: Pending
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
src/egl/opengl/Makefile.am | 2 +-
src/egl/opengles1/Makefile.am | 10 ++++------
@@ -13,7 +15,7 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
3 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am
-index 0c7228f..87b2f1a 100644
+index fe7faa9..3e48141 100644
--- a/src/egl/opengl/Makefile.am
+++ b/src/egl/opengl/Makefile.am
@@ -50,7 +50,7 @@ endif
@@ -22,42 +24,11 @@ index 0c7228f..87b2f1a 100644
if HAVE_EGL
-noinst_PROGRAMS = \
+bin_PROGRAMS = \
- demo1 \
- demo2 \
- demo3 \
-diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
-index 3455e75..516e516 100644
---- a/src/egl/opengles1/Makefile.am
-+++ b/src/egl/opengles1/Makefile.am
-@@ -36,11 +36,11 @@ AM_LDFLAGS = \
- $(EGL_LIBS) \
- -lm
-
--noinst_PROGRAMS =
-+bin_PROGRAMS =
-
- if HAVE_EGL
- if HAVE_GLESV1
--noinst_PROGRAMS += \
-+bin_PROGRAMS += \
- drawtex_screen \
- gears_screen \
- torus_screen \
-@@ -57,10 +57,8 @@ torus_screen_LDADD = ../eglut/libeglut_screen.la
- tri_screen_LDADD = ../eglut/libeglut_screen.la
-
- if HAVE_X11
--noinst_PROGRAMS += \
-- clear
--
--bin_PROGRAMS = \
-+bin_PROGRAMS += \
-+ clear \
- bindtex \
- drawtex_x11 \
- eglfbdev \
+ eglinfo \
+ peglgears \
+ $(EGL_DRM_DEMOS) \
diff --git a/src/egl/openvg/Makefile.am b/src/egl/openvg/Makefile.am
-index 7318a43..b545225 100644
+index b0f1212..5fd1cf8 100644
--- a/src/egl/openvg/Makefile.am
+++ b/src/egl/openvg/Makefile.am
@@ -49,7 +49,7 @@ endif
@@ -66,9 +37,9 @@ index 7318a43..b545225 100644
if HAVE_VG
-noinst_PROGRAMS = \
+bin_PROGRAMS = \
- lion_screen \
- sp_screen \
$(EGL_X11_DEMOS)
+ endif
+ endif
--
-2.0.0
+2.1.4
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch
deleted file mode 100644
index 04e1b446f..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 525fa9ded72d22b53c5eb366f61e2ac1d407a2db Mon Sep 17 00:00:00 2001
-From: Awais Belal <awais_belal@mentor.com>
-Date: Thu, 8 Oct 2015 13:49:31 +0500
-Subject: [PATCH] sharedtex_mt: fix rendering thread hang
-
-XNextEvent is a blocking call which locks up the display mutex
-this causes the rendering threads to hang when they try call
-glXSwapBuffers() as that tries to take the same mutex in
-underlying calls through XCopyArea().
-So we only go to XNextEvent when it has at least one event
-and we wouldn't lock indefinitely.
-
-Signed-off-by: Awais Belal <awais_belal@mentor.com>
-Upstream-Status: Backport (2b304e765695d385fd3bf414e6e444020bedb0a8)
-
----
- src/xdemos/sharedtex_mt.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/xdemos/sharedtex_mt.c b/src/xdemos/sharedtex_mt.c
-index a90903a..1d503c4 100644
---- a/src/xdemos/sharedtex_mt.c
-+++ b/src/xdemos/sharedtex_mt.c
-@@ -420,9 +420,14 @@ Resize(struct window *h, unsigned int width, unsigned int height)
- static void
- EventLoop(void)
- {
-+ int i;
-+ XEvent event;
- while (1) {
-- int i;
-- XEvent event;
-+ /* Do we have an event? */
-+ if (XPending(gDpy) == 0) {
-+ usleep(10000);
-+ continue;
-+ }
- XNextEvent(gDpy, &event);
- for (i = 0; i < NumWindows; i++) {
- struct window *h = &Windows[i];
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch
new file mode 100644
index 000000000..c68764740
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch
@@ -0,0 +1,44 @@
+From 3aa84c47e88a4c38446ce1323abf6f2c77389104 Mon Sep 17 00:00:00 2001
+From: Prabhu <prabhu.sundararaj@freescale.com>
+Date: Mon, 16 Nov 2015 17:09:32 -0600
+Subject: [PATCH] mesa-demos: OpenVG demos with single frame need eglSwapBuffer
+
+sp and text demos rendering single frame. to display the
+single frame rendered needed a eglSwapBuffer to diplay to window.
+Hence added eglutPostRedisplay to display the frame
+
+Upstream-Status: Pending
+
+Signed-off-by: Prabhu <prabhu.sundararaj@freescale.com>
+---
+ src/egl/openvg/sp.c | 1 +
+ src/egl/openvg/text.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/egl/openvg/sp.c b/src/egl/openvg/sp.c
+index a20c0a3..468e91e 100644
+--- a/src/egl/openvg/sp.c
++++ b/src/egl/openvg/sp.c
+@@ -500,6 +500,7 @@ draw(void)
+ }
+
+ vgFlush();
++ eglutPostRedisplay();
+ }
+
+
+diff --git a/src/egl/openvg/text.c b/src/egl/openvg/text.c
+index f5c6de8..492581c 100644
+--- a/src/egl/openvg/text.c
++++ b/src/egl/openvg/text.c
+@@ -360,6 +360,7 @@ display(void)
+ {
+ vgClear(0, 0, width, height);
+ glyph_string_draw(10.0, 10.0);
++ eglutPostRedisplay();
+ }
+
+
+--
+2.5.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch
new file mode 100644
index 000000000..e7be4dfbe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch
@@ -0,0 +1,62 @@
+From 322af294390a7f4e1524c5a79312be6cbebce988 Mon Sep 17 00:00:00 2001
+From: Awais Belal <awais_belal@mentor.com>
+Date: Wed, 11 Nov 2015 17:22:12 +0500
+Subject: [PATCH] only build GLX demos if needed
+
+There are platforms that default to EGL only configurations
+in which case the GLX applications are not required
+at all. Allow the user to control generation of these
+demos as needed through a configure switch.
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+Upstream-Status: Pending
+---
+ configure.ac | 9 +++++++++
+ src/Makefile.am | 6 +++++-
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f8ec7e3..1a4d96d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -132,6 +132,11 @@ if test "x$enable_glu" = xyes; then
+ DEMO_LIBS="$DEMO_LIBS $GLU_LIBS"
+ fi
+
++AC_ARG_ENABLE([glx-demos],
++ [AS_HELP_STRING([--enable-glx-demos],
++ [enable GLX demos @<:@default=auto@:>@])],
++ [glx_demos_enabled="$enableval"],
++ [glx_demos_enabled=yes])
+ AC_ARG_ENABLE([egl],
+ [AS_HELP_STRING([--enable-egl],
+ [enable EGL library @<:@default=auto@:>@])],
+@@ -325,6 +333,7 @@ AC_SUBST([WAYLAND_LIBS])
+
+ AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes")
+ AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes")
++AM_CONDITIONAL(HAVE_GLX, test "x$glx_demos_enabled" = "xyes")
+ AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes")
+ AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes")
+ AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes")
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 8b89dee..a4d7e8f 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -44,8 +44,12 @@ SUBDIRS = \
+ slang \
+ tests \
+ tools \
+- wgl \
++ wgl
++
++if HAVE_GLX
++SUBDIRS += \
+ xdemos
++endif
+
+ if HAVE_GLEW
+ SUBDIRS += \
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
deleted file mode 100644
index 557b8c65d..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "Mesa demo applications"
-DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
-These applications can be used for Mesa validation and benchmarking."
-HOMEPAGE = "http://mesa3d.org"
-BUGTRACKER = "https://bugs.freedesktop.org"
-SECTION = "x11"
-
-LICENSE = "MIT & PD"
-LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e \
- file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
-
-SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
- file://0001-mesa-demos-Add-missing-data-files.patch \
- file://0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch \
- file://0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch \
- file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \
- file://0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch \
- file://0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch \
- file://0007-Install-few-more-test-programs.patch \
- file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
- file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
- file://0010-sharedtex_mt-fix-rendering-thread-hang.patch \
-"
-SRC_URI[md5sum] = "72613a2c8c013716db02e3ff59d29061"
-SRC_URI[sha256sum] = "e4bfecb5816ddd4b7b37c1bc876b63f1f7f06fda5879221a9774d0952f90ba92"
-
-inherit autotools pkgconfig distro_features_check
-# depends on virtual/egl, virtual/libgl ...
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-PACKAGECONFIG ?= "drm osmesa freetype2 gbm egl gles1 gles2 \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 glew glu', '', d)}"
-
-# The Wayland code doesn't work with Wayland 1.0, so disable it for now
-#${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
-
-EXTRA_OECONF = "--with-system-data-files"
-
-PACKAGECONFIG[drm] = "--enable-libdrm,--disable-libdrm,libdrm"
-PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
-PACKAGECONFIG[freetype2] = "--enable-freetype2,--disable-freetype2,freetype"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgl"
-PACKAGECONFIG[gles1] = "--enable-gles1,--disable-gles1,virtual/libgles1"
-PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
-PACKAGECONFIG[glut] = "--with-glut=${STAGING_EXECPREFIXDIR},--without-glut,"
-PACKAGECONFIG[osmesa] = "--enable-osmesa,--disable-osmesa,"
-PACKAGECONFIG[vg] = "--enable-vg,--disable-vg,virtual/libopenvg"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,virtual/libgl wayland"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
-PACKAGECONFIG[glew] = "--enable-glew,--disable-glew,glew"
-PACKAGECONFIG[glu] = "--enable-glu,--disable-glu,virtual/libgl"
-
-do_install_append() {
- # it can be completely empty when all PACKAGECONFIG options are disabled
- rmdir --ignore-fail-on-non-empty ${D}${bindir}
-
- if [ -f ${D}${bindir}/clear ]; then
- mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb
new file mode 100644
index 000000000..fab0bdb2e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Mesa demo applications"
+DESCRIPTION = "This package includes the demonstration application, such as glxgears. \
+These applications can be used for Mesa validation and benchmarking."
+HOMEPAGE = "http://mesa3d.org"
+BUGTRACKER = "https://bugs.freedesktop.org"
+SECTION = "x11"
+
+LICENSE = "MIT & PD"
+LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e \
+ file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
+
+SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
+ file://0001-mesa-demos-Add-missing-data-files.patch \
+ file://0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch \
+ file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \
+ file://0007-Install-few-more-test-programs.patch \
+ file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
+ file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
+ file://0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch \
+ file://0013-only-build-GLX-demos-if-needed.patch \
+ "
+SRC_URI[md5sum] = "628e75c23c17394f11a316c36f8e4164"
+SRC_URI[sha256sum] = "c173154bbd0d5fb53d732471984def42fb1b14ac85fcb834138fb9518b3e0bef"
+
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/egl, virtual/libgl ...
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+PACKAGECONFIG ?= "drm osmesa freetype2 gbm egl gles1 gles2 \
+ x11 glew glu glx"
+
+# The Wayland code doesn't work with Wayland 1.0, so disable it for now
+#${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
+
+EXTRA_OECONF = "--with-system-data-files"
+
+PACKAGECONFIG[drm] = "--enable-libdrm,--disable-libdrm,libdrm"
+PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
+PACKAGECONFIG[freetype2] = "--enable-freetype2,--disable-freetype2,freetype"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/libgl"
+PACKAGECONFIG[gles1] = "--enable-gles1,--disable-gles1,virtual/libgles1"
+PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
+PACKAGECONFIG[glut] = "--with-glut=${STAGING_EXECPREFIXDIR},--without-glut,"
+PACKAGECONFIG[osmesa] = "--enable-osmesa,--disable-osmesa,"
+PACKAGECONFIG[vg] = "--enable-vg,--disable-vg,virtual/libopenvg"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,virtual/libgl wayland"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11"
+PACKAGECONFIG[glew] = "--enable-glew,--disable-glew,glew"
+PACKAGECONFIG[glu] = "--enable-glu,--disable-glu,virtual/libgl"
+PACKAGECONFIG[glx] = "--enable-glx-demos,--disable-glx-demos"
+
+do_install_append() {
+ # it can be completely empty when all PACKAGECONFIG options are disabled
+ rmdir --ignore-fail-on-non-empty ${D}${bindir}
+
+ if [ -f ${D}${bindir}/clear ]; then
+ mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb
deleted file mode 100644
index fc2bca998..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require mesa_${PV}.bb
-
-SUMMARY += " (OpenGL only, no EGL/GLES)"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/mesa:"
-
-PROVIDES = "virtual/libgl virtual/mesa"
-
-S = "${WORKDIR}/mesa-${PV}"
-
-PACKAGECONFIG ??= "dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-
-EXCLUDE_FROM_WORLD = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb
new file mode 100644
index 000000000..f06a3e9b5
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb
@@ -0,0 +1,13 @@
+require mesa_${PV}.bb
+
+SUMMARY += " (OpenGL only, no EGL/GLES)"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/mesa:"
+
+PROVIDES = "virtual/libgl virtual/mesa"
+
+S = "${WORKDIR}/mesa-${PV}"
+
+PACKAGECONFIG ??= "dri ${MESA_CRYPTO} ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc
index 442479ae6..e4880ffed 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc
@@ -10,7 +10,7 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.html;md5=6a23445982a7a972ac198e93cc1cb3de"
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=899fbe7e42d494c7c8c159c7001693d5"
PE = "2"
@@ -24,11 +24,13 @@ REQUIRED_DISTRO_FEATURES = "opengl"
EXTRA_OECONF = "--enable-shared-glapi"
-PACKAGECONFIG ??= "egl gles dri ${MESA_CRYPTO} \
+PACKAGECONFIG ??= "gbm egl gles dri ${MESA_CRYPTO} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\
"
+PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm"
+
X11_DEPS = "xf86driproto glproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
PACKAGECONFIG[x11] = "--enable-glx-tls,--disable-glx,${X11_DEPS}"
PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc"
@@ -37,7 +39,7 @@ PACKAGECONFIG[wayland] = ",,wayland-native wayland"
DRIDRIVERS = "swrast"
DRIDRIVERS_append_x86 = ",radeon,r200,nouveau,i965,i915"
DRIDRIVERS_append_x86-64 = ",radeon,r200,nouveau,i965,i915"
-PACKAGECONFIG[dri] = "--enable-dri --with-dri-drivers=${DRIDRIVERS} --enable-gbm, --disable-dri, dri2proto libdrm"
+PACKAGECONFIG[dri] = "--enable-dri --with-dri-drivers=${DRIDRIVERS}, --disable-dri, dri2proto libdrm"
PACKAGECONFIG[dri3] = "--enable-dri3, --disable-dri3, dri3proto presentproto libxshmfence"
PACKAGECONFIG[gles] = "--enable-gles1 --enable-gles2, --disable-gles1 --disable-gles2"
@@ -140,16 +142,17 @@ python mesa_populate_packages() {
d.setVar("RREPLACES_%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
import re
- dri_drivers_root = os.path.join(d.getVar('libdir', True), "dri")
- dri_pkgs = os.listdir(d.getVar('PKGD', True) + dri_drivers_root)
- lib_name = d.expand("${MLPREFIX}mesa-megadriver")
- for p in dri_pkgs:
- m = re.match('^(.*)_dri\.so$', p)
- if m:
- pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1))
- d.appendVar("RPROVIDES_%s" % lib_name, pkg_name)
- d.appendVar("RCONFLICTS_%s" % lib_name, pkg_name)
- d.appendVar("RREPLACES_%s" % lib_name, pkg_name)
+ dri_drivers_root = oe.path.join(d.getVar('PKGD', True), d.getVar('libdir', True), "dri")
+ if os.path.isdir(dri_drivers_root):
+ dri_pkgs = os.listdir(dri_drivers_root)
+ lib_name = d.expand("${MLPREFIX}mesa-megadriver")
+ for p in dri_pkgs:
+ m = re.match('^(.*)_dri\.so$', p)
+ if m:
+ pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1))
+ d.appendVar("RPROVIDES_%s" % lib_name, pkg_name)
+ d.appendVar("RCONFLICTS_%s" % lib_name, pkg_name)
+ d.appendVar("RREPLACES_%s" % lib_name, pkg_name)
pipe_drivers_root = os.path.join(d.getVar('libdir', True), "gallium-pipe")
do_split_packages(d, pipe_drivers_root, '^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='')
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb
deleted file mode 100644
index 502afcfd8..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/mesa-${PV}.tar.xz \
- file://replace_glibc_check_with_linux.patch \
-"
-
-SRC_URI[md5sum] = "1043dfb907beecb2a761272455960427"
-SRC_URI[sha256sum] = "64db074fc514136b5fb3890111f0d50604db52f0b1e94ba3fcb0fe8668a7fd20"
-
-#because we cannot rely on the fact that all apps will use pkgconfig,
-#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
-do_install_append() {
- if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
- sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb
new file mode 100644
index 000000000..80189e3ff
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb
@@ -0,0 +1,18 @@
+require ${BPN}.inc
+
+SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/mesa-${PV}.tar.xz \
+ file://replace_glibc_check_with_linux.patch \
+ file://clang-compile-PR89599.patch \
+ file://disable-asm-on-non-gcc.patch \
+"
+
+SRC_URI[md5sum] = "972fd5ad5a63aeabf173fb9adefc6522"
+SRC_URI[sha256sum] = "bab24fb79f78c876073527f515ed871fc9c81d816f66c8a0b051d8d653896389"
+
+#because we cannot rely on the fact that all apps will use pkgconfig,
+#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
+do_install_append() {
+ if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
+ sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0/fix-build-dir.patch b/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0/fix-build-dir.patch
deleted file mode 100644
index 3c8a83202..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0/fix-build-dir.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Fix build for S != B
-
-This patch is specific to version 1.4.x
-Upstream-Status: Submitted @ https://github.com/clutter-project/mx/issues/81
-Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
---
-Index: git/docs/reference/libmx-gtk/Makefile.am
-===================================================================
---- git.orig/docs/reference/libmx-gtk/Makefile.am 2013-05-08 15:07:02.027154788 +0100
-+++ git/docs/reference/libmx-gtk/Makefile.am 2013-05-08 15:14:33.684318650 +0100
-@@ -1,3 +1,6 @@
-+EXTRA_DIST=
-+CLEANFILES=
-+
- ## Process this file with automake to produce Makefile.in
-
- # We require automake 1.6 at least.
-@@ -77,7 +80,7 @@
- GTKDOC_LIBS=$(MX_LIBS) $(top_builddir)/mx-gtk/libmx-gtk-$(MX_API_VERSION).la
-
- # This includes the standard gtk-doc make rules, copied by gtkdocize.
--include $(top_srcdir)/gtk-doc.make
-+include $(top_builddir)/gtk-doc.make
-
- # Other files to distribute
- EXTRA_DIST += version.xml.in
-Index: git/docs/reference/libmx/Makefile.am
-===================================================================
---- git.orig/docs/reference/libmx/Makefile.am 2013-05-08 15:07:02.027154788 +0100
-+++ git/docs/reference/libmx/Makefile.am 2013-05-08 15:14:24.456378135 +0100
-@@ -1,3 +1,6 @@
-+EXTRA_DIST=
-+CLEANFILES=
-+
- ## Process this file with automake to produce Makefile.in
-
- # We require automake 1.6 at least.
-@@ -106,7 +109,7 @@
- GTKDOC_LIBS=$(MX_LIBS) $(top_builddir)/mx/libmx-$(MX_API_VERSION).la
-
- # This includes the standard gtk-doc make rules, copied by gtkdocize.
--include $(top_srcdir)/gtk-doc.make
-+include $(top_builddir)/gtk-doc.make
-
- # Other files to distribute
- EXTRA_DIST += version.xml.in
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb b/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb
index 5545c1e81..58a6997ff 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mx/mx-1.0_1.4.7.bb
@@ -8,7 +8,6 @@ PV = "1.4.7+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>^\d+(\.(?!99)\d+)+)"
SRC_URI = "git://github.com/clutter-project/mx.git;branch=mx-1.4 \
- file://fix-build-dir.patch \
file://fix-test-includes.patch \
"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx.inc b/import-layers/yocto-poky/meta/recipes-graphics/mx/mx.inc
index 4f1095793..d30483748 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/mx/mx.inc
+++ b/import-layers/yocto-poky/meta/recipes-graphics/mx/mx.inc
@@ -1,16 +1,15 @@
SUMMARY = "Clutter based UI widget library"
LICENSE = "LGPLv2.1"
-inherit clutter autotools-brokensep distro_features_check gobject-introspection
+inherit clutter autotools distro_features_check gobject-introspection gtk-doc
# depends on clutter-1.0 which depends on cogl-1.0
REQUIRED_DISTRO_FEATURES = "opengl"
-DEPENDS = "clutter-1.0 dbus-glib gdk-pixbuf"
+DEPENDS = "intltool-native clutter-1.0 dbus-glib gdk-pixbuf"
SRC_URI = "http://source.clutter-project.org/sources/mx/${@get_verdir("${PV}")}/mx-${PV}.tar.xz"
-EXTRA_OECONF = "--disable-gtk-doc \
- --disable-gtk-widgets \
+EXTRA_OECONF = "--disable-gtk-widgets \
--with-dbus \
--with-winsys=none \
--without-clutter-imcontext \
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
index 5734b2785..87c700e02 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Clutter package groups"
-LICENSE = "MIT"
PR = "r6"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-directfb.bb b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-directfb.bb
deleted file mode 100644
index a657a1a4e..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-directfb.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "DirectFB without X11"
-LICENSE = "MIT"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit packagegroup
-
-TOUCH = ' ${@bb.utils.contains("MACHINE_FEATURES", "touchscreen", "tslib tslib-calibrate tslib-tests", "",d)}'
-
-RDEPENDS_${PN} = " \
- directfb \
- directfb-examples \
- pango \
- fontconfig \
- ${TOUCH} \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
index 17301a052..7ea72d55a 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb
@@ -1,6 +1,5 @@
SUMMARY = "Basic X11 session"
DESCRIPTION = "Packages required to set up a basic working X11 session"
-LICENSE = "MIT"
PR = "r1"
inherit packagegroup distro_features_check
@@ -11,7 +10,6 @@ RDEPENDS_${PN} = "\
packagegroup-core-x11-xserver \
packagegroup-core-x11-utils \
dbus \
- pointercal \
matchbox-terminal \
matchbox-wm \
mini-x-session \
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
index c53f1b758..6b5002856 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11-xserver.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "X11 display server"
-LICENSE = "MIT"
PR = "r40"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
index 3537d8cbb..42914246d 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/packagegroups/packagegroup-core-x11.bb
@@ -2,7 +2,6 @@
# Copyright (C) 2011 Intel Corporation
#
-LICENSE = "MIT"
PR = "r40"
inherit packagegroup distro_features_check
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/pango/pango/0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch b/import-layers/yocto-poky/meta/recipes-graphics/pango/pango/0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch
new file mode 100644
index 000000000..6784a105a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/pango/pango/0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch
@@ -0,0 +1,147 @@
+From 526a6a9fc9a1cfe75c521c8bb39b61754fe42fe8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 2 Sep 2016 14:00:24 +0300
+Subject: [PATCH] Enforce recreation of docs/pango.types; it is build
+ configuration-specific.
+
+In particular, it needs to exclude references to PangoXft if Xft is not available.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ docs/Makefile.am | 17 ++++--------
+ docs/pango.types | 80 --------------------------------------------------------
+ 2 files changed, 5 insertions(+), 92 deletions(-)
+ delete mode 100644 docs/pango.types
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index f5f1317..8947a99 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -49,6 +49,10 @@ IGNORE_HFILES= \
+ pangocoretext-private.h \
+ pangoatsui-private.h
+
++if !HAVE_XFT
++IGNORE_HFILES += pangoxft pangoxft-render.h
++endif
++
+ # CFLAGS and LDFLAGS for compiling scan program. Only needed
+ # if $(DOC_MODULE).types is non-empty.
+ INCLUDES = \
+@@ -103,16 +107,6 @@ include $(top_srcdir)/gtk-doc.make
+ # This line really belongs in gtk-doc.mk
+ $(REPORT_FILES): sgml-build.stamp
+
+-pango.types:
+- @echo "Rebuilding $@"
+- @LANG=C; LIST=$$(grep 'pango_[_a-zA-Z0-9]*_get_type' $(HFILE_GLOB) | grep -v '\(private\|atsui\|core_text\|win32\)' | sed 's/\([^:]*:\).*\(pango[_a-zA-Z0-9]*_get_type\).*/\1\2/') && \
+- echo "$$LIST" | sed 's/.*\/\(pango\/.*\):.*/#include <\1>/' | sort -u > $@.tmp && \
+- echo >> $@.tmp && \
+- echo "$$LIST" | cut -d : -f 2 | sort -u >> $@.tmp && \
+- mv $@.tmp $@
+-
+-BUILT_SOURCES = pango.types
+-
+ ########################################################################
+
+ MAINTAINERCLEANFILES = $(BUILT_SOURCES)
+@@ -120,8 +114,7 @@ EXTRA_DIST += \
+ layout.fig \
+ layout.eps \
+ version.xml.in \
+- check.docs \
+- pango.types
++ check.docs
+
+ # force doc rebulid after configure
+ dist-hook-local: dist-local-check-no-cross-references all-local
+diff --git a/docs/pango.types b/docs/pango.types
+deleted file mode 100644
+index 7d93cda..0000000
+--- a/docs/pango.types
++++ /dev/null
+@@ -1,80 +0,0 @@
+-#include <pango/pango-attributes.h>
+-#include <pango/pango-context.h>
+-#include <pango/pango-engine.h>
+-#include <pango/pango-enum-types.h>
+-#include <pango/pango-font.h>
+-#include <pango/pango-fontmap.h>
+-#include <pango/pango-fontset.h>
+-#include <pango/pango-glyph-item.h>
+-#include <pango/pango-glyph.h>
+-#include <pango/pango-item.h>
+-#include <pango/pango-language.h>
+-#include <pango/pango-layout.h>
+-#include <pango/pango-matrix.h>
+-#include <pango/pango-ot.h>
+-#include <pango/pango-renderer.h>
+-#include <pango/pango-tabs.h>
+-#include <pango/pangocairo-fc.h>
+-#include <pango/pangocairo.h>
+-#include <pango/pangofc-decoder.h>
+-#include <pango/pangofc-font.h>
+-#include <pango/pangofc-fontmap.h>
+-#include <pango/pangoft2.h>
+-#include <pango/pangoxft-render.h>
+-#include <pango/pangoxft.h>
+-
+-pango_alignment_get_type
+-pango_attr_list_get_type
+-pango_attr_type_get_type
+-pango_bidi_type_get_type
+-pango_cairo_fc_font_map_get_type
+-pango_cairo_font_get_type
+-pango_cairo_font_map_get_type
+-pango_color_get_type
+-pango_context_get_type
+-pango_coverage_level_get_type
+-pango_direction_get_type
+-pango_ellipsize_mode_get_type
+-pango_engine_get_type
+-pango_engine_lang_get_type
+-pango_engine_shape_get_type
+-pango_fc_decoder_get_type
+-pango_fc_font_get_type
+-pango_fc_font_map_get_type
+-pango_font_description_get_type
+-pango_font_face_get_type
+-pango_font_family_get_type
+-pango_font_get_type
+-pango_font_map_get_type
+-pango_font_mask_get_type
+-pango_font_metrics_get_type
+-pango_fontset_get_type
+-pango_fontset_simple_get_type
+-pango_ft2_font_map_get_type
+-pango_glyph_item_get_type
+-pango_glyph_item_iter_get_type
+-pango_glyph_string_get_type
+-pango_gravity_get_type
+-pango_gravity_hint_get_type
+-pango_item_get_type
+-pango_language_get_type
+-pango_layout_get_type
+-pango_layout_iter_get_type
+-pango_layout_line_get_type
+-pango_matrix_get_type
+-pango_ot_info_get_type
+-pango_ot_ruleset_get_type
+-pango_render_part_get_type
+-pango_renderer_get_type
+-pango_script_get_type
+-pango_stretch_get_type
+-pango_style_get_type
+-pango_tab_align_get_type
+-pango_tab_array_get_type
+-pango_underline_get_type
+-pango_variant_get_type
+-pango_weight_get_type
+-pango_wrap_mode_get_type
+-pango_xft_font_get_type
+-pango_xft_font_map_get_type
+-pango_xft_renderer_get_type
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.38.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.38.1.bb
deleted file mode 100644
index 7fc65fd43..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.38.1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Framework for layout and rendering of internationalized text"
-DESCRIPTION = "Pango is a library for laying out and rendering of text, \
-with an emphasis on internationalization. Pango can be used anywhere \
-that text layout is needed, though most of the work on Pango so far has \
-been done in the context of the GTK+ widget toolkit. Pango forms the \
-core of text and font handling for GTK+-2.x."
-HOMEPAGE = "http://www.pango.org/"
-BUGTRACKER = "http://bugzilla.gnome.org"
-SECTION = "libs"
-LICENSE = "LGPLv2.0+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-
-inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
-
-SRC_URI += "file://run-ptest \
- file://0001-Drop-introspection-macros-from-acinclude.m4.patch \
-"
-
-SRC_URI[archive.md5sum] = "7fde35d4a127b55ce8bbcefe109bc80d"
-SRC_URI[archive.sha256sum] = "1320569f6c6d75d6b66172b2d28e59c56ee864ee9df202b76799c4506a214eb7"
-
-DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-PACKAGECONFIG[x11] = "--with-xft,--without-xft,virtual/libx11 libxft"
-
-EXTRA_AUTORECONF = ""
-
-EXTRA_OECONF = " \
- --disable-debug \
- "
-
-LEAD_SONAME = "libpango-1.0*"
-LIBV = "1.8.0"
-
-# This binary needs to be compiled for the host architecture. This isn't pretty!
-do_compile_prepend_class-target () {
- if ${@base_contains('DISTRO_FEATURES', 'ptest', 'true', 'false', d)}; then
- make CC="${BUILD_CC}" CFLAGS="" LDFLAGS="" AM_CPPFLAGS="$(pkg-config-native --cflags glib-2.0)" gen_all_unicode_LDADD="$(pkg-config-native --libs glib-2.0)" -C ${B}/tests gen-all-unicode
- fi
-}
-
-FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}"
-FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
-
-RDEPENDS_${PN}-ptest += "liberation-fonts cantarell-fonts"
-
-RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \
- pango-module-basic-fc pango-module-arabic-lang"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.40.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.40.1.bb
new file mode 100644
index 000000000..f9f344a86
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/pango/pango_1.40.1.bb
@@ -0,0 +1,52 @@
+SUMMARY = "Framework for layout and rendering of internationalized text"
+DESCRIPTION = "Pango is a library for laying out and rendering of text, \
+with an emphasis on internationalization. Pango can be used anywhere \
+that text layout is needed, though most of the work on Pango so far has \
+been done in the context of the GTK+ widget toolkit. Pango forms the \
+core of text and font handling for GTK+-2.x."
+HOMEPAGE = "http://www.pango.org/"
+BUGTRACKER = "http://bugzilla.gnome.org"
+SECTION = "libs"
+LICENSE = "LGPLv2.0+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+
+inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
+
+SRC_URI += "file://run-ptest \
+ file://0001-Drop-introspection-macros-from-acinclude.m4.patch \
+ file://0001-Enforce-recreation-of-docs-pango.types-it-is-build-c.patch \
+"
+SRC_URI[archive.md5sum] = "6fc88c6529890d6c8e03074d57a3eceb"
+SRC_URI[archive.sha256sum] = "e27af54172c72b3ac6be53c9a4c67053e16c905e02addcf3a603ceb2005c1a40"
+
+DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--with-xft,--without-xft,virtual/libx11 libxft"
+
+EXTRA_AUTORECONF = ""
+
+EXTRA_OECONF = " \
+ --disable-debug \
+ "
+
+LEAD_SONAME = "libpango-1.0*"
+LIBV = "1.8.0"
+
+# This binary needs to be compiled for the host architecture. This isn't pretty!
+do_compile_prepend_class-target () {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'true', 'false', d)}; then
+ make CC="${BUILD_CC}" CFLAGS="" LDFLAGS="${BUILD_LDFLAGS}" AM_CPPFLAGS="$(pkg-config-native --cflags glib-2.0)" gen_all_unicode_LDADD="$(pkg-config-native --libs glib-2.0)" -C ${B}/tests gen-all-unicode
+ fi
+}
+
+FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}"
+FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
+
+RDEPENDS_${PN}-ptest += "liberation-fonts cantarell-fonts"
+
+RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \
+ pango-module-basic-fc pango-module-arabic-lang"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
new file mode 100644
index 000000000..2e1c9476f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-test-utils-with-ldl.patch
@@ -0,0 +1,41 @@
+Backport patch to fix build with gold linker.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Backport
+
+
+
+From 93a7113485cf1c55fd7076116faf5b3a690706b2 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 30 Aug 2016 17:17:28 +0300
+Subject: [PATCH] cmake: Link test utils with "-ldl"
+
+Without this linking CXX executables (e.g. fbo-blit-stretch) fails
+with gold linker:
+
+| libpiglitutil_gl.so.0: error: undefined reference to 'dlsym'
+| libpiglitutil_gl.so.0: error: undefined reference to 'dlerror'
+| libpiglitutil_gl.so.0: error: undefined reference to 'dlopen'
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
+---
+ tests/util/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
+index e1f8073..3d5bef5 100644
+--- a/tests/util/CMakeLists.txt
++++ b/tests/util/CMakeLists.txt
+@@ -11,6 +11,8 @@ set_source_files_properties(
+ PROPERTIES GENERATED 1
+ )
+
++link_libraries(${CMAKE_DL_LIBS})
++
+ if(HAVE_LIBCACA)
+ link_libraries(caca)
+ endif()
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch
new file mode 100644
index 000000000..845804dd6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-Link-utils-with-xcb-explicitly.patch
@@ -0,0 +1,54 @@
+From 73e4fbc5777eddd89bb0fb16e90343551fe3e0ef Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 5 Jul 2016 10:56:23 +0300
+Subject: [PATCH] cmake: Link utils with xcb explicitly
+
+Linking with g++ can reportedly lead to:
+
+libpiglitutil_gl.so.0: error: undefined reference to 'xcb_connect'
+libpiglitutil_gl.so.0: error: undefined reference to 'xcb_get_setup'
+libpiglitutil_gl.so.0: error: undefined reference to 'xcb_setup_roots_iterator'
+
+This may have appeared now because xcb-dri2 used to overlink publicly
+but now does not.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Accepted
+---
+ CMakeLists.txt | 1 +
+ tests/util/CMakeLists.txt | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8e2abba..2e1a473 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -151,6 +151,7 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+ pkg_check_modules(LIBDRM QUIET libdrm)
+ pkg_check_modules(LIBDRM_INTEL QUIET libdrm_intel)
++ pkg_check_modules(XCB QUIET xcb)
+ pkg_check_modules(XCB_DRI2 QUIET xcb-dri2)
+ pkg_check_modules(GLPROTO QUIET glproto)
+ ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
+index fb22ffa..e1f8073 100644
+--- a/tests/util/CMakeLists.txt
++++ b/tests/util/CMakeLists.txt
+@@ -121,11 +121,13 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+ list(APPEND UTIL_GL_LIBS
+ ${LIBDRM_LDFLAGS}
++ ${XCB_LDFLAGS}
+ ${XCB_DRI2_LDFLAGS}
+ )
+
+ list(APPEND UTIL_GL_INCLUDES
+ ${LIBDRM_INCLUDE_DIRS}
++ ${XCB_INCLUDE_DIRS}
+ ${XCB_DRI2_INCLUDE_DIRS}
+ )
+
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch
new file mode 100644
index 000000000..e07e810a7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-cmake-install-bash-completions-in-the-right-place.patch
@@ -0,0 +1,35 @@
+From 26faa2c157a27a18a9f767976730fe0c115e3af4 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 13 Jul 2016 19:19:02 +0300
+Subject: [PATCH] cmake: install bash-completions in the right place
+
+The completionsdir variable is a full path and should not be
+prefixed.
+
+This does mean the files may be installed outside of
+CMAKE_INSTALL_PREFIX -- the alternative is more difficult and
+means that bash completion files may be installed where
+bash-completion can't find them.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted [mailing list]
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8e2abba..784a8f9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -532,7 +532,7 @@ install (
+ if (BASH_COMPLETION_FOUND)
+ install(
+ FILES completions/bash/piglit
+- DESTINATION ${CMAKE_INSTALL_PREFIX}/${BASH_COMPLETION_COMPLETIONSDIR}/
++ DESTINATION ${BASH_COMPLETION_COMPLETIONSDIR}/
+ )
+ endif (BASH_COMPLETION_FOUND)
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-missing-include-of-Xutil.h.patch b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-missing-include-of-Xutil.h.patch
deleted file mode 100644
index c27cc04f0..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Fix-missing-include-of-Xutil.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-From e40e0a25f996d2e205c4bdec2c8a5cc7f74e5065 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Mon, 15 Jun 2015 16:25:30 -0300
-Subject: tests: Fix missing include of Xutil.h
-
-The EGL tests rely on Xutil.h being included. Some EGL implementation
-does not explitly include it by default and then the build fails.
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-Reviewed-by: Neil Roberts <neil@linux.intel.com>
-
-diff --git a/tests/egl/egl-configless-context.c b/tests/egl/egl-configless-context.c
-index 0504a26..154b55c 100644
---- a/tests/egl/egl-configless-context.c
-+++ b/tests/egl/egl-configless-context.c
-@@ -32,6 +32,7 @@
- /* Chunks of code in this file are taken from egl-util.c */
-
- #include <X11/Xlib.h>
-+#include <X11/Xutil.h>
-
- #include "piglit-util-gl.h"
- #include "piglit-util-egl.h"
---
-cgit v0.10.2
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch
new file mode 100644
index 000000000..f851a92ce
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit/0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch
@@ -0,0 +1,54 @@
+From 0fc2c2932699cfd68be96c820fddfdd79b48b788 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Jul 2016 07:52:19 +0000
+Subject: [PATCH] tests: Use FE_UPWARD only if its defined in fenv.h
+
+On ARM, musl does not define FE_* when arch does not have
+VFP, (which is right interpretation), therefore check if
+its defined before using it
+
+Fixes errors like
+
+tests/general/roundmode-pixelstore.c:82:19: error: 'FE_UPWARD' undeclared (first use in this function)
+ ret = fesetround(FE_UPWARD);
+ ^~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ tests/general/roundmode-getintegerv.c | 2 ++
+ tests/general/roundmode-pixelstore.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/tests/general/roundmode-getintegerv.c b/tests/general/roundmode-getintegerv.c
+index 28ecfaf..5c27579 100644
+--- a/tests/general/roundmode-getintegerv.c
++++ b/tests/general/roundmode-getintegerv.c
+@@ -81,7 +81,9 @@ piglit_init(int argc, char **argv)
+ {
+ int ret;
+ bool pass = true;
++#ifdef FE_UPWARD
+ ret = fesetround(FE_UPWARD);
++#endif
+ if (ret != 0) {
+ printf("Couldn't set rounding mode\n");
+ piglit_report_result(PIGLIT_SKIP);
+diff --git a/tests/general/roundmode-pixelstore.c b/tests/general/roundmode-pixelstore.c
+index 9284f43..3fcb396 100644
+--- a/tests/general/roundmode-pixelstore.c
++++ b/tests/general/roundmode-pixelstore.c
+@@ -79,7 +79,9 @@ piglit_init(int argc, char **argv)
+ {
+ int ret;
+ bool pass = true;
++#ifdef FE_UPWARD
+ ret = fesetround(FE_UPWARD);
++#endif
+ if (ret != 0) {
+ printf("Couldn't set rounding mode\n");
+ piglit_report_result(PIGLIT_SKIP);
+--
+1.8.3.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit_git.bb
index 607f236c2..82adcdeca 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -3,18 +3,22 @@ LICENSE = "MIT & LGPLv2+ & GPLv3 & GPLv2+ & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
SRC_URI = "git://anongit.freedesktop.org/piglit \
- file://0001-tests-Fix-missing-include-of-Xutil.h.patch"
-
-# From 2015-02-19
-SRCREV = "c4585427913e4cb28994b4bfb11d49778273aa2c"
+ file://0001-cmake-install-bash-completions-in-the-right-place.patch \
+ file://0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch \
+ file://0001-cmake-Link-utils-with-xcb-explicitly.patch \
+ file://0001-cmake-Link-test-utils-with-ldl.patch \
+ "
+
+# From 2016-07-07
+SRCREV = "c39e41a86551eb390b8da23232dc8577639403d0"
# (when PV goes above 1.0 remove the trailing r)
PV = "1.0+gitr${SRCPV}"
S = "${WORKDIR}/git"
-DEPENDS = "virtual/libx11 libxrender waffle virtual/libgl libglu python-mako-native python-numpy-native"
+DEPENDS = "libpng virtual/libx11 libxrender waffle virtual/libgl libglu python3-mako-native python3-numpy-native python3-six-native"
-inherit cmake pythonnative distro_features_check
+inherit cmake python3native distro_features_check bash-completion
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
@@ -34,10 +38,15 @@ do_configure_prepend() {
fi
}
-RDEPENDS_${PN} = "waffle python python-mako python-json python-subprocess \
- python-argparse python-importlib python-unixadmin python-xml \
- python-multiprocessing python-textutils python-netserver python-shell \
+do_install() {
+ oe_runmake -C ${B} 'DESTDIR=${D}' install/strip
+}
+
+RDEPENDS_${PN} = "waffle python3 python3-mako python3-json \
+ python3-subprocess python3-misc python3-importlib \
+ python3-unixadmin python3-xml python3-multiprocessing \
+ python3-six python3-shell python3-io python3-argparse \
mesa-demos bash \
"
-INSANE_SKIP_${PN} += "dev-so"
+INSANE_SKIP_${PN} += "dev-so already-stripped"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
index 0e1a7928f..6c3bcd831 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/pong-clock/pong-clock_1.0.bb
@@ -13,7 +13,7 @@ LIC_FILES_CHKSUM = "file://pong-clock-no-flicker.c;beginline=1;endline=23;md5=dd
S = "${WORKDIR}"
do_compile () {
- ${CC} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp`
+ ${CC} ${CFLAGS} ${LDFLAGS} -o pong-clock pong-clock-no-flicker.c `pkg-config --cflags --libs x11 xau xdmcp`
}
do_install () {
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/ts.conf b/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/ts.conf
deleted file mode 100644
index 1b0da937e..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/ts.conf
+++ /dev/null
@@ -1,25 +0,0 @@
-# Uncomment if you wish to use the linux input layer event interface
-module_raw input
-
-# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
-# module_raw collie
-
-# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
-# module_raw corgi
-
-# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
-# module_raw ucb1x00
-
-# Uncomment if you're using an HP iPaq h3600 or similar
-# module_raw h3600
-
-# Uncomment if you're using a Hitachi Webpad
-# module_raw mk712
-
-# Uncomment if you're using an IBM Arctic II
-# module_raw arctic2
-
-module pthres pmin=1
-module variance delta=30
-module dejitter delta=100
-module linear
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/tslib.sh b/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/tslib.sh
deleted file mode 100644
index 7068e8d92..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib/tslib.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-if [ -e /dev/input/touchscreen0 ]; then
- TSLIB_TSDEVICE=/dev/input/touchscreen0
-
- export TSLIB_TSDEVICE
-fi
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib_1.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib_1.1.bb
deleted file mode 100644
index b0264c3b3..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/tslib/tslib_1.1.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "An abstraction layer for touchscreen panel events"
-DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
-events, as well as a filter stack for the manipulation of those events. \
-Tslib is generally used on embedded devices to provide a common user \
-space interface to touchscreen functionality."
-HOMEPAGE = "http://tslib.berlios.de/"
-
-AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
-SECTION = "base"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
- file://ts.conf \
- file://tslib.sh \
-"
-
-SRC_URI[md5sum] = "14771f8607b341bb4b297819d37e837d"
-SRC_URI[sha256sum] = "fe35e5f710ea933b118f710e2ce4403ac076fe69926b570333867d4de082a51c"
-
-UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-shared --disable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00"
-
-do_install_prepend() {
- install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/profile.d/
- install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
-}
-
-# People should consider using udev's /dev/input/touchscreen0 symlink
-# instead of detect-stylus
-#RDEPENDS_tslib-conf_weird-machine = "detect-stylus"
-RPROVIDES_tslib-conf = "libts-0.0-conf"
-
-PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate"
-DEBIAN_NOAUTONAME_tslib-conf = "1"
-DEBIAN_NOAUTONAME_tslib-tests = "1"
-DEBIAN_NOAUTONAME_tslib-calibrate = "1"
-
-RDEPENDS_${PN} = "tslib-conf"
-RRECOMMENDS_${PN} = "pointercal"
-
-FILES_${PN}-dev += "${libdir}/ts/*.la"
-FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
-FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
-FILES_tslib-calibrate += "${bindir}/ts_calibrate"
-FILES_tslib-tests = "${bindir}/ts_harvest ${bindir}/ts_print ${bindir}/ts_print_raw ${bindir}/ts_test"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch
index 97c63bd37..b52b4962b 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch
@@ -1,7 +1,7 @@
This is a workaround upstream suggests for use with kernel 4.1.
Upstream-Status: Inappropriate [temporary work-around]
-Signed-Off-By: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb
deleted file mode 100644
index 4167679c2..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Library to handle input devices in Wayland compositors"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2184aef38ff137ed33ce9a63b9d1eb8f"
-
-DEPENDS = "libevdev udev mtdev"
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
- file://touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch \
-"
-SRC_URI[md5sum] = "0945318141c1a9f52857bbf65d175f32"
-SRC_URI[sha256sum] = "302cb76209b9c57a5a318e178f9bc446eede8ea79386103b5291cbfaa5fab5b6"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
-PACKAGECONFIG[gui] = "--enable-event-gui,--disable-event-gui,cairo gtk+3"
-
-FILES_${PN} += "${libdir}/udev/"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb
new file mode 100644
index 000000000..358039226
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Library to handle input devices in Wayland compositors"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2184aef38ff137ed33ce9a63b9d1eb8f"
+
+DEPENDS = "libevdev udev mtdev"
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+ file://touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch \
+"
+SRC_URI[md5sum] = "2e7ba577ed74d8d1baeb07dbd4fb912a"
+SRC_URI[sha256sum] = "26e7b3ab499358caba499705680ea7e5851af2bd37dc32f2be64181610d6392a"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[libwacom] = "--enable-libwacom,--disable-libwacom,libwacom"
+PACKAGECONFIG[gui] = "--enable-event-gui,--disable-event-gui,cairo gtk+3"
+
+UDEVDIR = "`pkg-config --variable=udevdir udev`"
+
+EXTRA_OECONF += "--with-udev-dir=${UDEVDIR}"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb
new file mode 100644
index 000000000..1d2f0db8f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Collection of additional Wayland protocols"
+DESCRIPTION = "Wayland protocols that add functionality not \
+available in the Wayland core protocol. Such protocols either add \
+completely new functionality, or extend the functionality of some other \
+protocol either in Wayland core, or some other protocol in \
+wayland-protocols."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
+ file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ "
+SRC_URI[md5sum] = "9acfc9556f7cfedc44d97af60da66a5f"
+SRC_URI[sha256sum] = "635f2a937d318f1fecb97b54074ca211486e38af943868dd0fa82ea38d091c1f"
+
+inherit allarch autotools pkgconfig
+
+PACKAGES = "${PN}"
+FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch
new file mode 100644
index 000000000..dece95c76
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch
@@ -0,0 +1,30 @@
+From 5516d32e694badca35b6c71b02a3f08f650308bf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Jul 2016 16:23:48 -0700
+Subject: [PATCH] scanner: Use unit32_t instead of uint
+
+uint32_t is C99 defined stdint type
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted
+---
+ src/scanner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scanner.c b/src/scanner.c
+index 5f06e8e..10a4023 100644
+--- a/src/scanner.c
++++ b/src/scanner.c
+@@ -808,7 +808,7 @@ find_enumeration(struct protocol *protocol,
+ struct interface *i;
+ struct enumeration *e;
+ char *enum_name;
+- uint idx = 0, j;
++ uint32_t idx = 0, j;
+
+ for (j = 0; j + 1 < strlen(enum_attribute); j++) {
+ if (enum_attribute[j] == '.') {
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb
new file mode 100644
index 000000000..3413406d0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Wayland, a protocol between a compositor and clients"
+DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
+as well as a C library implementation of that protocol. The compositor can be \
+a standalone display server running on Linux kernel modesetting and evdev \
+input devices, an X application, or a wayland client itself. The clients can \
+be traditional applications, X servers (rootless or fullscreen) or other \
+display servers."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
+ file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://0001-scanner-Use-unit32_t-instead-of-uint.patch \
+ "
+SRC_URI[md5sum] = "fccf680be066e234729d5b69e0bd0fa9"
+SRC_URI[sha256sum] = "9540925f7928becfdf5e3b84c70757f6589bf1ceef09bea78784d8e4772c0db0"
+
+EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS = "expat libxml2 libffi wayland-native"
+
+EXTRA_OECONF = "--disable-documentation --with-host-scanner"
+
+# Wayland installs a M4 macro for other projects to use, which uses the target
+# pkg-config to find files. Replace pkg-config with pkg-config-native.
+do_install_append_class-native() {
+ sed -e 's,PKG_CHECK_MODULES(.*),,g' \
+ -e 's,$PKG_CONFIG,pkg-config-native,g' \
+ -i ${D}/${datadir}/aclocal/wayland-scanner.m4
+}
+
+sysroot_stage_all_append_class-target () {
+ rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
+ cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
+}
+
+FILES_${PN} = "${libdir}/*${SOLIBS}"
+FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb
deleted file mode 100644
index d12ac186c..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Wayland, a protocol between a compositor and clients"
-DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
-as well as a C library implementation of that protocol. The compositor can be \
-a standalone display server running on Linux kernel modesetting and evdev \
-input devices, an X application, or a wayland client itself. The clients can \
-be traditional applications, X servers (rootless or fullscreen) or other \
-display servers."
-HOMEPAGE = "http://wayland.freedesktop.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
- file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
-
-SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "5e141b3f2a7005d6c89d6f233c87c317"
-SRC_URI[sha256sum] = "9c8770720aa0034479735f58a4dc4ca9b172ecfede28f5134312e135b7301efa"
-
-EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
-
-DEPENDS = "expat libffi wayland-native"
-
-EXTRA_OECONF = "--disable-documentation --with-host-scanner"
-
-# Wayland installs a M4 macro for other projects to use, which uses the target
-# pkg-config to find files. Replace pkg-config with pkg-config-native.
-do_install_append_class-native() {
- sed -e 's,PKG_CHECK_MODULES(.*),,g' \
- -e 's,$PKG_CONFIG,pkg-config-native,g' \
- -i ${D}/${datadir}/aclocal/wayland-scanner.m4
-}
-
-sysroot_stage_all_append_class-target () {
- rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
- cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
-}
-
-FILES_${PN} = "${libdir}/*${SOLIBS}"
-FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb
index 653541e3c..291cd16b2 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb
@@ -3,16 +3,19 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
SRC_URI = "file://init \
- file://weston.service"
+ file://weston.service \
+ file://weston-start"
S = "${WORKDIR}"
do_install() {
- install -d ${D}/${sysconfdir}/init.d
- install -m755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
+ install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
+ install -Dm0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service
- install -d ${D}${systemd_system_unitdir}
- install -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}
+ # Install weston-start script
+ install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
+ sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
+ sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
}
inherit allarch update-rc.d distro_features_check systemd
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init
index 2e938f430..d3e87c6ce 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init
@@ -31,14 +31,7 @@ case "$1" in
start)
. /etc/profile
- # This is all a nasty hack
- if test -z "$XDG_RUNTIME_DIR"; then
- export XDG_RUNTIME_DIR=/run/user/root
- mkdir --parents $XDG_RUNTIME_DIR
- chmod 0700 $XDG_RUNTIME_DIR
- fi
-
- openvt -s weston -- $OPTARGS
+ weston-start -- $OPTARGS
;;
stop)
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start
new file mode 100755
index 000000000..e72fbaaac
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start
@@ -0,0 +1,69 @@
+#!/bin/sh
+# Copyright (C) 2016 O.S. Systems Software LTDA.
+# Copyright (C) 2016 Freescale Semiconductor
+
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
+
+usage() {
+ cat <<EOF
+ $0 [<openvt arguments>] [-- <weston options>]
+EOF
+}
+
+## Module support
+modules_dir=@DATADIR@/weston-start
+
+# Add weston extra argument
+add_weston_argument() {
+ weston_args="$weston_args $1"
+}
+
+# Add openvt extra argument
+add_openvt_argument() {
+ openvt_args="$openvt_args $1"
+}
+
+if [ -n "$WAYLAND_DISPLAY" ]; then
+ echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet."
+ exit 1
+fi
+if [ -n "$DISPLAY" ]; then
+ launcher="weston"
+else
+ launcher="weston-launch --"
+fi
+
+openvt_args="-s"
+while [ -n "$1" ]; do
+ if [ "$1" = "--" ]; then
+ shift
+ break
+ fi
+ openvt_args="$openvt_args $1"
+ shift
+done
+
+weston_args=$*
+
+# Load and run modules
+if [ -d "$modules_dir" ]; then
+ for m in "$modules_dir"/*; do
+ # Skip backup files
+ if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
+ continue
+ fi
+
+ # process module
+ . $m
+ done
+fi
+
+if test -z "$XDG_RUNTIME_DIR"; then
+ export XDG_RUNTIME_DIR=/run/user/`id -u`
+ if ! test -d "$XDG_RUNTIME_DIR"; then
+ mkdir --parents $XDG_RUNTIME_DIR
+ chmod 0700 $XDG_RUNTIME_DIR
+ fi
+fi
+
+exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service
index 4f1f7ff10..689ce4106 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service
@@ -1,14 +1,11 @@
[Unit]
-Description=Weston Wayland compositor startup
+Description=Weston Wayland Compositor
RequiresMountsFor=/run
[Service]
User=root
EnvironmentFile=-/etc/default/weston
-Environment="XDG_RUNTIME_DIR=/run/user/root"
-ExecStartPre=/bin/mkdir -p /run/user/root
-ExecStartPre=/bin/chmod 0700 /run/user/root
-ExecStart=/usr/bin/openvt -v -e /usr/bin/weston -- $OPTARGS
+ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS
[Install]
WantedBy=multi-user.target
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch
new file mode 100644
index 000000000..00118d78b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch
@@ -0,0 +1,34 @@
+From 1cfc1434a5d385a74de593ec7601674dba39e2fe Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 11 May 2016 16:16:30 +0300
+Subject: [PATCH] configure.ac: Fix wayland-protocols path
+
+The wayland-protocols directory is used during build: Fix the path
+to point to sysroot specified in recipe.
+
+Normally PKG_CONFIG_SYSROOT_DIR could be used in configure.ac but that
+breaks multilib weston as it would point to multilib sysroot when the
+(allarch) wayland-protocols is actually in the machine sysroot.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index bc7c329..15a05d3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,7 +187,7 @@ PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.8.0])
+ PKG_CHECK_MODULES(COMPOSITOR, [$COMPOSITOR_MODULES])
+
+ PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.2],
+- [ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
++ [ac_wayland_protocols_pkgdatadir=${WAYLAND_PROTOCOLS_SYSROOT_DIR}`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
+ AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
+
+ AC_ARG_ENABLE(wayland-compositor, [ --enable-wayland-compositor],,
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch
new file mode 100644
index 000000000..91ef727d3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch
@@ -0,0 +1,28 @@
+From ba02b8abe4e2afac2bfbf2559972d5059d75a041 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Sat, 16 Jul 2016 22:50:19 +0300
+Subject: [PATCH weston] shared: include stdint.h for int32_t
+
+This fixes build on musl.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted
+---
+ shared/xalloc.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/shared/xalloc.h b/shared/xalloc.h
+index 85fccb4..484de2d 100644
+--- a/shared/xalloc.h
++++ b/shared/xalloc.h
+@@ -30,6 +30,7 @@
+ extern "C" {
+ #endif
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
new file mode 100644
index 000000000..5542036be
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
@@ -0,0 +1,173 @@
+From d02226b3d5872b184c1d50c7f4706ac9467ffb81 Mon Sep 17 00:00:00 2001
+From: Tom Hochstein <tom.hochstein@nxp.com>
+Date: Fri, 15 Jul 2016 11:00:15 +0300
+Subject: [PATCH] weston-launch: Provide a default version that doesn't require
+ PAM
+
+weston-launch requires PAM for starting weston as a non-root user.
+
+Since starting weston as root is a valid use case by itself, if
+PAM is not available, provide a default version of weston-launch
+without non-root-user support.
+
+Upstream-Status: Pending
+
+Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
+---
+ configure.ac | 9 +++++++--
+ src/weston-launch.c | 20 ++++++++++++++++++++
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 32fdde7..240966f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -416,13 +416,17 @@ AC_ARG_ENABLE(resize-optimization,
+ AS_IF([test "x$enable_resize_optimization" = "xyes"],
+ [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
+
++AC_ARG_WITH(pam,
++ AS_HELP_STRING([--with-pam], [Use PAM]),
++ [use_pam=$withval], [use_pam=yes])
+ AC_ARG_ENABLE(weston-launch, [ --enable-weston-launch],, enable_weston_launch=yes)
+ AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch == xyes)
+-if test x$enable_weston_launch == xyes; then
++if test x$enable_weston_launch = xyes -a x$use_pam = xyes; then
+ WESTON_SEARCH_LIBS([PAM], [pam], [pam_open_session], [have_pam=yes], [have_pam=no])
+ if test x$have_pam == xno; then
+- AC_ERROR([weston-launch requires pam])
++ AC_ERROR([PAM support is explicitly requested, but libpam couldn't be found])
+ fi
++ AC_DEFINE([HAVE_PAM], [1], [Define if PAM is available])
+ fi
+
+ AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes")
+@@ -673,6 +677,7 @@ AC_MSG_RESULT([
+ Enable developer documentation ${enable_devdocs}
+
+ weston-launch utility ${enable_weston_launch}
++ PAM support ${use_pam}
+ systemd-login support ${have_systemd_login}
+ systemd notify support ${enable_systemd_notify}
+
+diff --git a/src/weston-launch.c b/src/weston-launch.c
+index b8b2ba0..a865061 100644
+--- a/src/weston-launch.c
++++ b/src/weston-launch.c
+@@ -51,7 +51,9 @@
+
+ #include <pwd.h>
+ #include <grp.h>
++#ifdef HAVE_PAM
+ #include <security/pam_appl.h>
++#endif
+
+ #ifdef HAVE_SYSTEMD_LOGIN
+ #include <systemd/sd-login.h>
+@@ -93,8 +95,10 @@ drmSetMaster(int drm_fd)
+ #endif
+
+ struct weston_launch {
++#ifdef HAVE_PAM
+ struct pam_conv pc;
+ pam_handle_t *ph;
++#endif
+ int tty;
+ int ttynr;
+ int sock[2];
+@@ -181,6 +185,7 @@ weston_launch_allowed(struct weston_launch *wl)
+ return false;
+ }
+
++#ifdef HAVE_PAM
+ static int
+ pam_conversation_fn(int msg_count,
+ const struct pam_message **messages,
+@@ -221,6 +226,7 @@ setup_pam(struct weston_launch *wl)
+
+ return 0;
+ }
++#endif
+
+ static int
+ setup_launcher_socket(struct weston_launch *wl)
+@@ -414,6 +420,7 @@ quit(struct weston_launch *wl, int status)
+ close(wl->signalfd);
+ close(wl->sock[0]);
+
++#ifdef HAVE_PAM
+ if (wl->new_user) {
+ err = pam_close_session(wl->ph, 0);
+ if (err)
+@@ -421,6 +428,7 @@ quit(struct weston_launch *wl, int status)
+ err, pam_strerror(wl->ph, err));
+ pam_end(wl->ph, err);
+ }
++#endif
+
+ if (ioctl(wl->tty, KDSKBMUTE, 0) &&
+ ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
+@@ -600,6 +608,7 @@ setup_session(struct weston_launch *wl)
+ setenv("HOME", wl->pw->pw_dir, 1);
+ setenv("SHELL", wl->pw->pw_shell, 1);
+
++#ifdef HAVE_PAM
+ env = pam_getenvlist(wl->ph);
+ if (env) {
+ for (i = 0; env[i]; ++i) {
+@@ -608,6 +617,7 @@ setup_session(struct weston_launch *wl)
+ }
+ free(env);
+ }
++#endif
+ }
+
+ static void
+@@ -665,7 +675,9 @@ static void
+ help(const char *name)
+ {
+ fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
++#ifdef HAVE_PAM
+ fprintf(stderr, " -u, --user Start session as specified username\n");
++#endif
+ fprintf(stderr, " -t, --tty Start session on alternative tty\n");
+ fprintf(stderr, " -v, --verbose Be verbose\n");
+ fprintf(stderr, " -h, --help Display this help message\n");
+@@ -678,7 +690,9 @@ main(int argc, char *argv[])
+ int i, c;
+ char *tty = NULL;
+ struct option opts[] = {
++#ifdef HAVE_PAM
+ { "user", required_argument, NULL, 'u' },
++#endif
+ { "tty", required_argument, NULL, 't' },
+ { "verbose", no_argument, NULL, 'v' },
+ { "help", no_argument, NULL, 'h' },
+@@ -690,9 +704,13 @@ main(int argc, char *argv[])
+ while ((c = getopt_long(argc, argv, "u:t::vh", opts, &i)) != -1) {
+ switch (c) {
+ case 'u':
++#ifdef HAVE_PAM
+ wl.new_user = optarg;
+ if (getuid() != 0)
+ error(1, 0, "Permission denied. -u allowed for root only");
++#else
++ error(1, 0, "-u is unsupported in this weston-launch build");
++#endif
+ break;
+ case 't':
+ tty = optarg;
+@@ -730,8 +748,10 @@ main(int argc, char *argv[])
+ if (setup_tty(&wl, tty) < 0)
+ exit(EXIT_FAILURE);
+
++#ifdef HAVE_PAM
+ if (wl.new_user && setup_pam(&wl) < 0)
+ exit(EXIT_FAILURE);
++#endif
+
+ if (setup_launcher_socket(&wl) < 0)
+ exit(EXIT_FAILURE);
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch
deleted file mode 100644
index a40eaf186..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 8e1efcd40b3bad81c83744e2e120d70c2b567ef2 Mon Sep 17 00:00:00 2001
-From: Frederico Cadete <frederico@cadete.eu>
-Date: Mon, 28 Sep 2015 00:30:10 +0200
-Subject: configure.ac: add explicit enable/disable for systemd-login support
-
-Otherwise, auto-enable depending on whether the system has the necessary
-libraries.
-
-[Updated help text as per pq suggestion -- bwh]
-
-Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-
-Upstream-Status: Backport
-Backported from Weston git:
-http://cgit.freedesktop.org/wayland/weston/commit/?id=8e1efc
-
-Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk>
-
-diff --git a/configure.ac b/configure.ac
-index a9cd429..67e80d0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -380,18 +380,30 @@ AC_ARG_ENABLE(resize-optimization,
- AS_IF([test "x$enable_resize_optimization" = "xyes"],
- [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
-
--PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-- [libsystemd >= 209],
-- [have_systemd_login_209=yes;have_systemd_login=yes],
-- [have_systemd_login_209=no;have_systemd_login=no])
--
--# Older versions of systemd package systemd-login separately. Fall back on that
--AS_IF([test x$have_systemd_login != xyes],[
-- PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-- [libsystemd-login >= 198],
-- [have_systemd_login=yes],
-- [have_systemd_login=no])
-- ])
-+AC_ARG_ENABLE(systemd-login,
-+ AS_HELP_STRING([--enable-systemd-login],
-+ [Enable logind support]),,
-+ enable_systemd_login=auto)
-+if test x$enable_systemd_login != xno; then
-+ PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-+ [libsystemd >= 209],
-+ [have_systemd_login_209=yes;have_systemd_login=yes],
-+ [have_systemd_login_209=no;have_systemd_login=no])
-+
-+ # Older versions of systemd package systemd-login separately. Fall back on that
-+ AS_IF([test x$have_systemd_login != xyes],[
-+ PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-+ [libsystemd-login >= 198],
-+ [have_systemd_login=yes],
-+ [have_systemd_login=no])
-+ ])
-+else
-+ have_systemd_login=no
-+fi
-+
-+if test "x$have_systemd_login" = "xno" -a "x$enable_systemd_login" = "xyes"; then
-+ AC_MSG_ERROR([systemd-login support explicitly enabled, but can't find libsystemd>=209 or libsystemd-login])
-+fi
-
- AS_IF([test "x$have_systemd_login" = "xyes"],
- [AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])])
---
-cgit v0.10.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch
deleted file mode 100644
index 2d28d5689..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 5eb025a867b42f8bc7bc73279eac8de58e51a13e Mon Sep 17 00:00:00 2001
-From: Frederico Cadete <frederico@cadete.eu>
-Date: Mon, 28 Sep 2015 00:30:09 +0200
-Subject: configure.ac: add support for new versions of systemd
-
-Starting from systemd version 209, a single libsystemd.pc is provided.
-For previous versions, fall back on libsystemd-login.pc.
-
-Signed-off-by: Frederico Cadete <frederico@cadete.eu>
-Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
-Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
-
-Upstream-Status: Backport
-Backported from Weston git:
-http://cgit.freedesktop.org/wayland/weston/commit/?id=5eb025
-
-Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk>
-
-diff --git a/configure.ac b/configure.ac
-index 045291c..a9cd429 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -380,14 +380,23 @@ AC_ARG_ENABLE(resize-optimization,
- AS_IF([test "x$enable_resize_optimization" = "xyes"],
- [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
-
--PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login >= 198],
-- [have_systemd_login=yes], [have_systemd_login=no])
-+PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-+ [libsystemd >= 209],
-+ [have_systemd_login_209=yes;have_systemd_login=yes],
-+ [have_systemd_login_209=no;have_systemd_login=no])
-+
-+# Older versions of systemd package systemd-login separately. Fall back on that
-+AS_IF([test x$have_systemd_login != xyes],[
-+ PKG_CHECK_MODULES(SYSTEMD_LOGIN,
-+ [libsystemd-login >= 198],
-+ [have_systemd_login=yes],
-+ [have_systemd_login=no])
-+ ])
-+
- AS_IF([test "x$have_systemd_login" = "xyes"],
- [AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])])
- AM_CONDITIONAL(HAVE_SYSTEMD_LOGIN, test "x$have_systemd_login" = "xyes")
-
--PKG_CHECK_MODULES(SYSTEMD_LOGIN_209, [libsystemd-login >= 209],
-- [have_systemd_login_209=yes], [have_systemd_login_209=no])
- AS_IF([test "x$have_systemd_login_209" = "xyes"],
- [AC_DEFINE([HAVE_SYSTEMD_LOGIN_209], [1], [Have systemd-login >= 209])])
-
---
-cgit v0.10.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch
deleted file mode 100644
index 35e6d6ff5..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-weston-1.5.0/configure.ac: make lcms explicitly configurable
-
-The lcms package is outside of openembedded-core, so make it
-explicitly configurable. Make it deterministic, so that if lcms
-dependencies are missing, autoconf throws a fatal error. Follow
-upstream style to make it more likely to be merged.
-
-Upstream-Status: Pending
-
-Index: weston-1.5.0/configure.ac
-===================================================================
---- weston-1.5.0.orig/configure.ac
-+++ weston-1.5.0/configure.ac
-@@ -491,12 +491,24 @@ AC_ARG_ENABLE(demo-clients-install,
- enable_demo_clients_install=no)
- AM_CONDITIONAL(INSTALL_DEMO_CLIENTS, [test "x$enable_demo_clients_install" = "xyes"])
-
--PKG_CHECK_MODULES(LCMS, lcms2,
-- [have_lcms=yes], [have_lcms=no])
--if test "x$have_lcms" = xyes; then
-- AC_DEFINE(HAVE_LCMS, 1, [Have lcms support])
-+AC_ARG_ENABLE(lcms,
-+ AS_HELP_STRING([--disable-lcms],
-+ [Disable lcms support]),,
-+ enable_lcms=auto)
-+AM_CONDITIONAL(HAVE_LCMS, [test "x$enable_lcms" = xyes])
-+if test "x$enable_lcms" != "xno"; then
-+ PKG_CHECK_MODULES(LCMS,
-+ lcms2,
-+ [have_lcms=yes],
-+ [have_lcms=no])
-+ if test "x$have_lcms" = "xno" -a "x$enable_lcms" = "xyes"; then
-+ AC_MSG_ERROR([lcms support explicitly requested, but lcms couldn't be found])
-+ fi
-+ if test "x$have_lcms" = "xyes"; then
-+ enable_lcms=yes
-+ AC_DEFINE(HAVE_LCMS, 1, [Have lcms support])
-+ fi
- fi
--AM_CONDITIONAL(HAVE_LCMS, [test "x$have_lcms" = xyes])
-
- AC_PATH_PROG([wayland_scanner], [wayland-scanner])
- if test x$wayland_scanner = x; then
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch
deleted file mode 100644
index ad07d4fc2..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-
-The libwebp package is outside of openembedded-core, so make it
-explicitly configurable. Make it deterministic, so that if libwebp
-dependencies are missing, autoconf throws a fatal error.
-
-Upstream-Status: Pending
-
-Index: weston-1.5.0/configure.ac
-===================================================================
---- weston-1.5.0.orig/configure.ac
-+++ weston-1.5.0/configure.ac
-@@ -268,9 +268,22 @@ fi
-
- PKG_CHECK_MODULES(PIXMAN, [pixman-1])
- PKG_CHECK_MODULES(PNG, [libpng])
--PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])
--AS_IF([test "x$have_webp" = "xyes"],
-- [AC_DEFINE([HAVE_WEBP], [1], [Have webp])])
-+AC_ARG_ENABLE(webp,
-+ AS_HELP_STRING([--disable-webp],
-+ [Disable libwebp support]),,
-+ enable_webp=auto)
-+AM_CONDITIONAL(HAVE_WEBP, [test "x$enable_webp" = xyes])
-+AS_IF([test "x$enable_webp" != "xno"],
-+ PKG_CHECK_MODULES(WEBP,
-+ [libwebp],
-+ [have_webp=yes],
-+ [have_webp=no])
-+ AS_IF([test "x$have_webp" = "xno" -a "x$enable_webp" = "xyes"],
-+ AC_MSG_ERROR([libwebp support explicitly request, but lipwebp could not be found]))
-+ AS_IF([test "x$have_webp" = "xyes"],
-+ [enable_webp=yes]
-+ [AC_DEFINE([HAVE_WEBP], [1], [Have webp])])
-+)
-
- AC_ARG_ENABLE(vaapi-recorder, [ --enable-vaapi-recorder],,
- enable_vaapi_recorder=auto)
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch
new file mode 100644
index 000000000..0c408a43d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch
@@ -0,0 +1,33 @@
+From e8b615250f700f7854b423aaaf0a0aeea92c05a9 Mon Sep 17 00:00:00 2001
+From: Tom Hochstein <tom.hochstein@nxp.com>
+Date: Sat, 7 May 2016 08:51:58 -0300
+Subject: [PATCH] weston-launch: Handle invalid command line options
+Organization: O.S. Systems Software LTDA.
+
+Exit the program if an unrecognized command line option is found.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+
+ src/weston-launch.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/weston-launch.c b/src/weston-launch.c
+index b8dfb17..9987d8e 100644
+--- a/src/weston-launch.c
++++ b/src/weston-launch.c
+@@ -703,6 +703,8 @@ main(int argc, char *argv[])
+ case 'h':
+ help("weston-launch");
+ exit(EXIT_FAILURE);
++ default:
++ exit(EXIT_FAILURE);
+ }
+ }
+
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start
new file mode 100644
index 000000000..b483c97cf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if type Xwayland >/dev/null 2>/dev/null; then
+ mkdir -p /tmp/.X11-unix
+
+ add_weston_argument "--modules=xwayland.so"
+fi
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb
new file mode 100644
index 000000000..3ad309dab
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Weston, a Wayland compositor"
+DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
+ file://src/compositor.c;endline=23;md5=1d535fed266cf39f6d8c0647f52ac331"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://weston.png \
+ file://weston.desktop \
+ file://0001-make-error-portable.patch \
+ file://0001-configure.ac-Fix-wayland-protocols-path.patch \
+ file://0001-shared-include-stdint.h-for-int32_t.patch \
+ file://xwayland.weston-start \
+ file://make-weston-launch-exit-for-unrecognized-option.patch \
+ file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
+"
+SRC_URI[md5sum] = "bc6f90a2039163804aecfa663b69c4c2"
+SRC_URI[sha256sum] = "05e086e9f186a06843b9f7a5e1abf19347b1a6e4be26d7e74927abc17b6b7125"
+
+inherit autotools pkgconfig useradd distro_features_check
+# depends on virtual/egl
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
+DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
+
+EXTRA_OECONF = "--enable-setuid-install \
+ --disable-rpi-compositor \
+ --disable-rdp-compositor \
+ WAYLAND_PROTOCOLS_SYSROOT_DIR=${STAGING_DIR}/${MACHINE} \
+ "
+EXTRA_OECONF[vardepsexclude] = "MACHINE"
+
+EXTRA_OECONF_append_qemux86 = "\
+ WESTON_NATIVE_BACKEND=fbdev-backend.so \
+ "
+EXTRA_OECONF_append_qemux86-64 = "\
+ WESTON_NATIVE_BACKEND=fbdev-backend.so \
+ "
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+ clients launch"
+#
+# Compositor choices
+#
+# Weston on KMS
+PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa mtdev"
+# Weston on Wayland (nested Weston)
+PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa"
+# Weston on X11
+PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo"
+# Headless Weston
+PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor"
+# Weston on framebuffer
+PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev"
+# weston-launch
+PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,drm"
+# VA-API desktop recorder
+PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva"
+# Weston with EGL support
+PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl"
+# Weston with cairo glesv2 support
+PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo"
+# Weston with lcms support
+PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms"
+# Weston with webp support
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
+# Weston with unwinding support
+PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
+# Weston with systemd-login support
+PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus"
+# Weston with Xwayland support (requires X11 and Wayland)
+PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland"
+# colord CMS support
+PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord"
+# Clients support
+PACKAGECONFIG[clients] = "--enable-clients --enable-simple-clients --enable-demo-clients-install,--disable-clients --disable-simple-clients"
+# Weston with PAM support
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+do_install_append() {
+ # Weston doesn't need the .la files to load modules, so wipe them
+ rm -f ${D}/${libdir}/weston/*.la
+
+ # If X11, ship a desktop file to launch it
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then
+ install -d ${D}${datadir}/applications
+ install ${WORKDIR}/weston.desktop ${D}${datadir}/applications
+
+ install -d ${D}${datadir}/icons/hicolor/48x48/apps
+ install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
+ fi
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
+ install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
+ fi
+}
+
+PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)}"
+PACKAGES += "${PN}-examples"
+
+FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
+FILES_${PN}-examples = "${bindir}/*"
+
+FILES_${PN}-xwayland = "${libdir}/${BPN}/xwayland.so"
+RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
+
+RDEPENDS_${PN} += "xkeyboard-config"
+RRECOMMENDS_${PN} = "liberation-fonts"
+RRECOMMENDS_${PN}-dev += "wayland-protocols"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system weston-launch"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb
deleted file mode 100644
index 16a788d2a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb
+++ /dev/null
@@ -1,103 +0,0 @@
-SUMMARY = "Weston, a Wayland compositor"
-DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
-HOMEPAGE = "http://wayland.freedesktop.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
- file://src/compositor.c;endline=23;md5=1d535fed266cf39f6d8c0647f52ac331"
-
-SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
- file://weston.png \
- file://weston.desktop \
- file://make-lcms-explicitly-configurable.patch \
- file://make-libwebp-explicitly-configurable.patch \
- file://0001-make-error-portable.patch \
- file://libsystemd.patch \
- file://explicit-enable-disable-systemd.patch \
-"
-SRC_URI[md5sum] = "66bbba12f546570b4d97f676bc79a28e"
-SRC_URI[sha256sum] = "9c1b03f3184fa0b0dfdf67e215048085156e1a2ca344af6613fed36794ac48cf"
-
-inherit autotools pkgconfig useradd distro_features_check
-# depends on virtual/egl
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
-DEPENDS += "wayland libinput virtual/egl pango wayland-native"
-
-EXTRA_OECONF = "--enable-setuid-install \
- --enable-simple-clients \
- --enable-clients \
- --enable-demo-clients-install \
- --disable-rpi-compositor \
- --disable-rdp-compositor \
- "
-
-EXTRA_OECONF_append_qemux86 = "\
- WESTON_NATIVE_BACKEND=fbdev-backend.so \
- "
-EXTRA_OECONF_append_qemux86-64 = "\
- WESTON_NATIVE_BACKEND=fbdev-backend.so \
- "
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'launch', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
- "
-#
-# Compositor choices
-#
-# Weston on KMS
-PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa mtdev"
-# Weston on Wayland (nested Weston)
-PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa"
-# Weston on X11
-PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo"
-# Headless Weston
-PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor"
-# Weston on framebuffer
-PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev"
-# weston-launch
-PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,libpam drm"
-# VA-API desktop recorder
-PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva"
-# Weston with EGL support
-PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl"
-# Weston with cairo glesv2 support
-PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo"
-# Weston with lcms support
-PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms"
-# Weston with webp support
-PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
-# Weston with unwinding support
-PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
-# Weston with systemd-login support
-PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus"
-# Weston with Xwayland support
-PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,libxcb libxcursor cairo"
-# colord CMS support
-PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord"
-
-do_install_append() {
- # Weston doesn't need the .la files to load modules, so wipe them
- rm -f ${D}/${libdir}/weston/*.la
-
- # If X11, ship a desktop file to launch it
- if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then
- install -d ${D}${datadir}/applications
- install ${WORKDIR}/weston.desktop ${D}${datadir}/applications
-
- install -d ${D}${datadir}/icons/hicolor/48x48/apps
- install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
- fi
-}
-
-PACKAGES += "${PN}-examples"
-
-FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
-FILES_${PN}-examples = "${bindir}/*"
-
-RDEPENDS_${PN} += "xkeyboard-config"
-RRECOMMENDS_${PN} = "liberation-fonts"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system weston-launch"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/Xserver.in b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/Xserver.in
deleted file mode 100644
index b8eed7610..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/Xserver.in
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-#
-
-XSERVER=/usr/bin/Xorg
-
-. /etc/profile
-
-ARGS=" -br -pn @BLANK_ARGS@"
-
-DISPLAY=':0'
-
-exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $*
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/13xdgbasedirs.sh b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/13xdgbasedirs.sh
index 91594b9e3..6bd40b2fc 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/13xdgbasedirs.sh
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common/etc/X11/Xsession.d/13xdgbasedirs.sh
@@ -7,7 +7,7 @@
# In the ideal case where SystemD is booting and userspace is initiated by a
# SystemD user session this will have been set already, so don't overwrite it.
-if [ -z "$XGD_RUNTIME_DIR" ]; then
- XDG_RUNTIME_DIR="/tmp"
- export XDG_RUNTIME_DIR
+if [ -z "$XDG_RUNTIME_DIR" ]; then
+ XDG_RUNTIME_DIR="/tmp"
+ export XDG_RUNTIME_DIR
fi
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common_0.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common_0.1.bb
index 6d7c347c0..ab9a939ce 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common_0.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/x11-common_0.1.bb
@@ -9,22 +9,14 @@ inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "file://etc \
- file://Xserver.in \
file://gplv2-license.patch"
S = "${WORKDIR}"
-PACKAGECONFIG ??= "blank"
-# dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG
-PACKAGECONFIG[blank] = ""
-
do_install() {
cp -R ${S}/etc ${D}${sysconfdir}
- sed -e 's/@BLANK_ARGS@/${@bb.utils.contains('PACKAGECONFIG', 'blank', '', '-s 0 -dpms', d)}/' \
- ${S}/Xserver.in > ${D}${sysconfdir}/X11/Xserver
-
chmod -R 755 ${D}${sysconfdir}
}
-RDEPENDS_${PN} = "dbus-x11 xmodmap xdpyinfo xtscal xinit formfactor"
+RDEPENDS_${PN} = "dbus-x11 xmodmap xdpyinfo xinput-calibrator formfactor"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
index b68d40e1b..a6d0d5eee 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init.bb
@@ -5,10 +5,10 @@ SECTION = "x11"
PR = "r31"
SRC_URI = "file://xserver-nodm \
- file://Xusername \
+ file://Xserver \
file://gplv2-license.patch \
- file://xserver-nodm.service \
- file://xserver-nodm.conf \
+ file://xserver-nodm.service.in \
+ file://xserver-nodm.conf.in \
"
S = "${WORKDIR}"
@@ -16,35 +16,44 @@ S = "${WORKDIR}"
# Since we refer to ROOTLESS_X which is normally enabled per-machine
PACKAGE_ARCH = "${MACHINE_ARCH}"
-inherit update-rc.d systemd
+inherit update-rc.d systemd distro_features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGECONFIG ??= "blank"
+# dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG
+PACKAGECONFIG[blank] = ""
do_install() {
- install -d ${D}${sysconfdir}/init.d
- install xserver-nodm ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/default
+ install xserver-nodm.conf.in ${D}${sysconfdir}/default/xserver-nodm
+ install -d ${D}${sysconfdir}/xserver-nodm
+ install Xserver ${D}${sysconfdir}/xserver-nodm/Xserver
+
+ BLANK_ARGS="${@bb.utils.contains('PACKAGECONFIG', 'blank', '', '-s 0 -dpms', d)}"
+ if [ "${ROOTLESS_X}" = "1" ] ; then
+ XUSER_HOME="/home/xuser"
+ XUSER="xuser"
+ else
+ XUSER_HOME=${ROOT_HOME}
+ XUSER="root"
+ fi
+ sed -i "s:@HOME@:${XUSER_HOME}:; s:@USER@:${XUSER}:; s:@BLANK_ARGS@:${BLANK_ARGS}:" \
+ ${D}${sysconfdir}/default/xserver-nodm
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${sysconfdir}/default
- install xserver-nodm.conf ${D}${sysconfdir}/default/xserver-nodm
install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/xserver-nodm.service ${D}${systemd_unitdir}/system
- if [ "${ROOTLESS_X}" = "1" ] ; then
- sed -i 's!^HOME=.*!HOME=/home/xuser!' ${D}${sysconfdir}/default/xserver-nodm
- sed -i 's!^User=.*!User=xuser!' ${D}${systemd_unitdir}/system/xserver-nodm.service
- else
- sed -i 's!^HOME=.*!HOME=${ROOT_HOME}!' ${D}${sysconfdir}/default/xserver-nodm
- sed -i '/^User=/d' ${D}${systemd_unitdir}/system/xserver-nodm.service
- fi
+ install -m 0644 ${WORKDIR}/xserver-nodm.service.in ${D}${systemd_unitdir}/system/xserver-nodm.service
+ sed -i "s:@USER@:${XUSER}:" ${D}${systemd_unitdir}/system/xserver-nodm.service
fi
if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
- if [ "${ROOTLESS_X}" = "1" ] ; then
- install -d ${D}${sysconfdir}/X11
- install Xusername ${D}${sysconfdir}/X11
- fi
+ install -d ${D}${sysconfdir}/init.d
+ install xserver-nodm ${D}${sysconfdir}/init.d
fi
}
-RDEPENDS_${PN} = "${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}"
+RDEPENDS_${PN} = "xinit ${@base_conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}"
INITSCRIPT_NAME = "xserver-nodm"
INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ."
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver
new file mode 100644
index 000000000..0edbfbfc2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xserver
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+# This script is only needed to make sure /etc/X11/xserver-common
+# can affect XSERVER, ARGS & DPI: otherwise systemd could just use
+# /etc/default/xserver-nodm as EnvironmentFile and sysvinit could just
+# source the same file
+
+. /etc/profile
+
+# load default values for XSERVER, ARGS, DISPLAY...
+. /etc/default/xserver-nodm
+
+# Allow xserver-common to override ARGS, XSERVER, DPI
+if [ -e /etc/X11/xserver-common ] ; then
+ . /etc/X11/xserver-common
+ if [ ! -e $XSERVER ] ; then
+ XSERVER=$(which $XSERVER)
+ fi
+fi
+
+if [ -n "$DPI" ] ; then
+ ARGS="$ARGS -dpi $DPI"
+fi
+
+exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $*
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername
deleted file mode 100644
index 7060e5ec1..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/Xusername
+++ /dev/null
@@ -1 +0,0 @@
-xuser
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
index bfa0a8d6c..6c548551b 100755
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
@@ -26,10 +26,11 @@ done
case "$1" in
start)
. /etc/profile
- username=root
+
+ #default for USER
+ . /etc/default/xserver-nodm
echo "Starting Xserver"
- if [ -f /etc/X11/Xusername ]; then
- username=`cat /etc/X11/Xusername`
+ if [ "$USER" != "root" ]; then
# setting for rootless X
chmod o+w /var/log
chmod g+r /dev/tty[0-3]
@@ -38,8 +39,9 @@ case "$1" in
chmod o+rw /dev/hidraw*
fi
fi
+
# Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211]
- su -l -c '/etc/X11/Xserver&' $username
+ su -l -c '/etc/xserver-nodm/Xserver &' $USER
# Wait for the desktop to say its finished loading
# before loading the rest of the system
# dbus-wait org.matchbox_project.desktop Loaded
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf
deleted file mode 100644
index 3c0582a87..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf
+++ /dev/null
@@ -1 +0,0 @@
-HOME=/home/root
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in
new file mode 100644
index 000000000..757c23d95
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.conf.in
@@ -0,0 +1,7 @@
+# common environment file for sysvinit and systemd
+
+XSERVER=/usr/bin/Xorg
+DISPLAY=:0
+ARGS=" -br -pn @BLANK_ARGS@ "
+HOME=@HOME@
+USER=@USER@
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service
deleted file mode 100644
index 62d979f1d..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=Xserver startup without a display manager
-
-[Service]
-User=root
-EnvironmentFile=/etc/default/xserver-nodm
-ExecStart=/etc/X11/Xserver
-
-[Install]
-Alias=display-manager.service
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in
new file mode 100644
index 000000000..324a26f54
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=Xserver startup without a display manager
+
+[Service]
+EnvironmentFile=/etc/default/xserver-nodm
+User=@USER@
+ExecStart=/etc/xserver-nodm/Xserver
+
+[Install]
+Alias=display-manager.service
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput/qemuall/pointercal.xinput b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput/qemuall/pointercal.xinput
new file mode 100644
index 000000000..a816d6d10
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/pointercal-xinput/qemuall/pointercal.xinput
@@ -0,0 +1,2 @@
+# Dummy pointercal.xinput file to prevent xinput_calibrator
+# from running on qemu startup
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/add-geometry-input-when-calibrating.patch b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/add-geometry-input-when-calibrating.patch
index 9351331be..9dc94ae49 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/add-geometry-input-when-calibrating.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator/add-geometry-input-when-calibrating.patch
@@ -1,33 +1,34 @@
-Upstream-Status: Inappropriate [no longer maintained]
-
-From 93abf28d602da637376b78de8c88b7ab5cf13b4f Mon Sep 17 00:00:00 2001
-From: Jonathan David <jonathan.david@ni.com>
-Date: Mon, 30 Nov 2015 12:12:20 -0600
+From 1cb83759632bb218559c4d0d65ff79f868c03dc5 Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Tue, 9 Aug 2016 17:03:31 +0300
Subject: [PATCH] add geometry input when calibrating
Send monitor geometry to xinput_calibrator when running the script
+Update:
+ Remove bashism
+
+Upstream-Status: Inappropriate [no longer maintained]
Signed-off-by: Jonathan David <jonathan.david@ni.com>
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
- scripts/xinput_calibrator_pointercal.sh | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
+ scripts/xinput_calibrator_pointercal.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/xinput_calibrator_pointercal.sh b/scripts/xinput_calibrator_pointercal.sh
-index 0ada7da..6a3aded 100755
+index fccb197..fea7c2f 100755
--- a/scripts/xinput_calibrator_pointercal.sh
+++ b/scripts/xinput_calibrator_pointercal.sh
-@@ -37,7 +37,10 @@ done
-
- [ "$USER" != "root" ] && CALFILE=$USER_CALFILE
+@@ -24,7 +24,8 @@ if [ -e $CALFILE ] ; then
+ fi
+ fi
-CALDATA=`$BINARY --output-type xinput -v | tee $LOGFILE | grep ' xinput set' | sed 's/^ //g; s/$/;/g'`
-+read RESOLUTION <<< $(xrandr | awk -F '[[:space:]+]' '/ connected/ \
-+ { if ($3 != "primary") print $3; if ($3 == "primary") print $4 }')
-+
++RESOLUTION=$(xrandr | awk -F '[[:space:]+]' '/ connected/ { if ($3 != "primary") print $3; if ($3 == "primary") print $4 }')
+CALDATA=`$BINARY --geometry $RESOLUTION --output-type xinput -v | tee $LOGFILE | grep ' xinput set' | sed 's/^ //g; s/$/;/g'`
if [ ! -z "$CALDATA" ] ; then
echo $CALDATA > $CALFILE
echo "Calibration data stored in $CALFILE (log in $LOGFILE)"
--
-1.9.1
+2.4.0
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index ac5b70cba..57c3a7a9a 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -34,5 +34,5 @@ do_install_append() {
}
FILES_${PN} += "${sysconfdir}/xdg/autostart"
-RDEPENDS_${PN} = "xinput formfactor"
+RDEPENDS_${PN} = "xinput formfactor xrandr"
RRECOMMENDS_${PN} = "pointercal-xinput"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xauth_1.0.9.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xauth_1.0.9.bb
index b173f4fe8..59b332373 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xauth_1.0.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xauth_1.0.9.bb
@@ -10,3 +10,6 @@ PE = "1"
SRC_URI[md5sum] = "7d6003f32838d5b688e2c8a131083271"
SRC_URI[sha256sum] = "56ce1523eb48b1f8a4f4244fe1c3d8e6af1a3b7d4b0e6063582421b0b68dc28f"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb
index 825737f39..f23d258e0 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xhost_1.0.7.bb
@@ -15,3 +15,6 @@ PE = "1"
SRC_URI[md5sum] = "f5d490738b148cb7f2fe760f40f92516"
SRC_URI[sha256sum] = "93e619ee15471f576cfb30c663e18f5bc70aca577a63d2c2c03f006a7837c29a"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.4.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.4.3.bb
deleted file mode 100644
index 41bd42069..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.4.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require xorg-app-common.inc
-
-SUMMARY = "XRandR: X Resize, Rotate and Reflect extension command"
-
-DESCRIPTION = "Xrandr is used to set the size, orientation and/or \
-reflection of the outputs for a screen. It can also set the screen \
-size."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3"
-DEPENDS += "libxrandr libxrender"
-PE = "1"
-
-SRC_URI[md5sum] = "441fdb98d2abc6051108b7075d948fc7"
-SRC_URI[sha256sum] = "7154ac3486b86923692f2d6cdb2991a2ee72bc32af2c4379a6f1c068f204be1b"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb
new file mode 100644
index 000000000..ea6897948
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-app/xrandr_1.5.0.bb
@@ -0,0 +1,15 @@
+require xorg-app-common.inc
+
+SUMMARY = "XRandR: X Resize, Rotate and Reflect extension command"
+
+DESCRIPTION = "Xrandr is used to set the size, orientation and/or \
+reflection of the outputs for a screen. It can also set the screen \
+size."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fe1608bdb33cf8c62a4438f7d34679b3"
+DEPENDS += "libxrandr libxrender"
+PE = "1"
+
+SRC_URI[md5sum] = "ebffac98021b8f1dc71da0c1918e9b57"
+SRC_URI[sha256sum] = "c1cfd4e1d4d708c031d60801e527abc9b6d34b85f2ffa2cadd21f75ff38151cd"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.1.bb
deleted file mode 100644
index cf77ad209..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "X.Org X server -- event devices (evdev) input driver"
-
-DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \
-devices. It therefore supports all input devices that the kernel knows \
-about, including most mice and keyboards. \
-\
-The evdev driver can serve as both a pointer and a keyboard input \
-device, and may be used as both the core keyboard and the core pointer. \
-Multiple input devices are supported by multiple instances of this \
-driver, with one Load directive for evdev in the Module section of your \
-xorg.conf for each input device that will use this driver. "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16"
-
-DEPENDS += "mtdev libevdev"
-
-SRC_URI[md5sum] = "96d89d9406a02f5e36bdaa4edd9a243a"
-SRC_URI[sha256sum] = "af9c2b47f5b272ae56b45da6bd84610fc9a3d80a4b32c8215842a39d862de017"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb
new file mode 100644
index 000000000..f81c3ec64
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-evdev_2.10.3.bb
@@ -0,0 +1,20 @@
+require xorg-driver-input.inc
+
+SUMMARY = "X.Org X server -- event devices (evdev) input driver"
+
+DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \
+devices. It therefore supports all input devices that the kernel knows \
+about, including most mice and keyboards. \
+\
+The evdev driver can serve as both a pointer and a keyboard input \
+device, and may be used as both the core keyboard and the core pointer. \
+Multiple input devices are supported by multiple instances of this \
+driver, with one Load directive for evdev in the Module section of your \
+xorg.conf for each input device that will use this driver. "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16"
+
+DEPENDS += "mtdev libevdev"
+
+SRC_URI[md5sum] = "aa3363ce5061d0c4d1e7f7019b99716d"
+SRC_URI[sha256sum] = "5aa21ba4be8df927e5676a99c7f4f0343abc089f5451b7e73e39536f29b332a2"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.16.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.16.0.bb
deleted file mode 100644
index 0252baff1..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.16.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require xorg-driver-input.inc
-
-SUMMARY = "Generic input driver for the X.Org server based on libinput"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0"
-
-DEPENDS += "libinput"
-
-SRC_URI[md5sum] = "2c8cb520f88da7bafaceebc0b34ea1d4"
-SRC_URI[sha256sum] = "fdade531e91e79acf6dce8ac55fa4f65abe3f1358c5d3d777ae48dbc74b76f49"
-
-FILES_${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.19.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.19.0.bb
new file mode 100644
index 000000000..5e5c4710a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-libinput_0.19.0.bb
@@ -0,0 +1,11 @@
+require xorg-driver-input.inc
+
+SUMMARY = "Generic input driver for the X.Org server based on libinput"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5e6b20ea2ef94a998145f0ea3f788ee0"
+
+DEPENDS += "libinput"
+
+SRC_URI[md5sum] = "52c38b1369764243bfcf6ead1e4c6d32"
+SRC_URI[sha256sum] = "6c5d30dc7c8b8ae34261340e1dc9cbb8ef435078e084b8ef507527a8a21af477"
+
+FILES_${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb
index 8615b48da..92a1b25eb 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-input-vmmouse_13.1.0.bb
@@ -23,4 +23,4 @@ do_install_append () {
EXTRA_OECONF = "--with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
-FILES_${PN} += "${nonarch_base_libdir}/udev/rules.d/ ${datadir}/X11/xorg.conf.d"
+FILES_${PN} += "${datadir}/X11/xorg.conf.d"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-gen8-Fix-the-YUV-RGB-shader.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-gen8-Fix-the-YUV-RGB-shader.patch
deleted file mode 100644
index 35762192f..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-gen8-Fix-the-YUV-RGB-shader.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From c43617b739e358064396912c7a7a8028ca91d201 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
-Date: Thu, 16 Apr 2015 20:40:39 +0300
-Subject: [PATCH] gen8: Fix the YUV->RGB shader
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Use the correct register (Yn_01) with first half of the
-Y samples instead of using the register (Yn_23) with the
-second half twice when computing the green channel.
-
-Also use the Yn_01 register name instead of Yn for the red
-channel as well, just for a bit of extra consistency.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89807
-Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-Upstream-Status: Backport
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
----
- src/render_program/exa_wm_yuv_rgb.g8a | 4 ++--
- src/render_program/exa_wm_yuv_rgb.g8b | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/render_program/exa_wm_yuv_rgb.g8a b/src/render_program/exa_wm_yuv_rgb.g8a
-index 7def093..34973ba 100644
---- a/src/render_program/exa_wm_yuv_rgb.g8a
-+++ b/src/render_program/exa_wm_yuv_rgb.g8a
-@@ -76,7 +76,7 @@ add (16) Cbn<1>F Cb<8,8,1>F -0.501961F { compr align1 };
- /*
- * R = Y + Cr * 1.596
- */
--mov (8) acc0<1>F Yn<8,8,1>F { compr align1 };
-+mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 };
- mac.sat(8) src_sample_r_01<1>F Crn_01<8,8,1>F 1.596F { compr align1 };
-
- mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 };
-@@ -84,7 +84,7 @@ mac.sat(8) src_sample_r_23<1>F Crn_23<8,8,1>F 1.596F { compr align1 };
- /*
- * G = Crn * -0.813 + Cbn * -0.392 + Y
- */
--mov (8) acc0<1>F Yn_23<8,8,1>F { compr align1 };
-+mov (8) acc0<1>F Yn_01<8,8,1>F { compr align1 };
- mac (8) acc0<1>F Crn_01<8,8,1>F -0.813F { compr align1 };
- mac.sat(8) src_sample_g_01<1>F Cbn_01<8,8,1>F -0.392F { compr align1 };
-
-diff --git a/src/render_program/exa_wm_yuv_rgb.g8b b/src/render_program/exa_wm_yuv_rgb.g8b
-index 4494953..2cd6fc4 100644
---- a/src/render_program/exa_wm_yuv_rgb.g8b
-+++ b/src/render_program/exa_wm_yuv_rgb.g8b
-@@ -6,7 +6,7 @@
- { 0x80600048, 0x21c03ae8, 0x3e8d02c0, 0x3fcc49ba },
- { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
- { 0x80600048, 0x21e03ae8, 0x3e8d02e0, 0x3fcc49ba },
-- { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
-+ { 0x00600001, 0x24003ae0, 0x008d0300, 0x00000000 },
- { 0x00600048, 0x24003ae0, 0x3e8d02c0, 0xbf5020c5 },
- { 0x80600048, 0x22003ae8, 0x3e8d0340, 0xbec8b439 },
- { 0x00600001, 0x24003ae0, 0x008d0320, 0x00000000 },
---
-2.5.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-uxa-fix-the-call-to-PixmapSyncDirtyHelper-broken-by-.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-uxa-fix-the-call-to-PixmapSyncDirtyHelper-broken-by-.patch
deleted file mode 100644
index 29924bb90..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-uxa-fix-the-call-to-PixmapSyncDirtyHelper-broken-by-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2c5063938cc809f624e56efd4673041fa8141e81 Mon Sep 17 00:00:00 2001
-From: Martin Peres <martin.peres@linux.intel.com>
-Date: Thu, 9 Jul 2015 11:26:38 +0300
-Subject: [PATCH] uxa: fix the call to PixmapSyncDirtyHelper, broken by
- xserver's 90db5ed
-
-[ickle: switch to HAS_DIRTYTRACKING_ROTATION as suggested by Dave Airlie]
-Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
-
-Upstream-Status: Backport
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
----
- src/compat-api.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/compat-api.h b/src/compat-api.h
-index aa93bee..293e9d7 100644
---- a/src/compat-api.h
-+++ b/src/compat-api.h
-@@ -247,3 +247,7 @@ static inline void FreePixmap(PixmapPtr pixmap)
- #endif
-
- #endif
-+
-+#if HAS_DIRTYTRACKING_ROTATION
-+#define PixmapSyncDirtyHelper(d, dd) PixmapSyncDirtyHelper(d)
-+#endif
---
-2.5.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch
index dda508dcf..3dddd334b 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/disable-x11-dri3.patch
@@ -12,6 +12,6 @@ diff --git a/configure.ac b/configure.ac
index bd654f3..78a0e0d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -251 +251 @@ fi
--PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-present x11-xcb xshmfence x11 xrender xext libdrm], [x11_dri3="yes"], [x11_dri3="no"])
-+#PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-present x11-xcb xshmfence x11 xrender xext libdrm], [x11_dri3="yes"], [x11_dri3="no"])
+@@ -279 +279 @@ fi
+-PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-xfixes xcb-present x11-xcb xshmfence x11 xcomposite xdamage xrender xrandr xxf86vm xext libdrm], [x11_dri3="yes"], [x11_dri3="no"])
++#PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-xfixes xcb-present x11-xcb xshmfence x11 xcomposite xdamage xrender xrandr xxf86vm xext libdrm], [x11_dri3="yes"], [x11_dri3="no"])
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/sna-Protect-against-ABI-breakage-in-recent-versions-.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/sna-Protect-against-ABI-breakage-in-recent-versions-.patch
deleted file mode 100644
index 589d52e0f..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/sna-Protect-against-ABI-breakage-in-recent-versions-.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7fe2b2948652443ff43d907855bd7a051d54d309 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Thu, 19 Mar 2015 23:14:17 +0000
-Subject: [PATCH] sna: Protect against ABI breakage in recent versions of
- libdrm
-
-commit 7fe2b2948652443ff43d907855bd7a051d54d309 upstream.
-
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Upstream-Status: Backport
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-
-diff --git a/src/sna/kgem.c b/src/sna/kgem.c
-index 11f0828f2bbc..6f16cbac87f2 100644
---- a/src/sna/kgem.c
-+++ b/src/sna/kgem.c
-@@ -182,6 +182,15 @@ struct local_i915_gem_caching {
- #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching)
- #define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching)
-
-+struct local_i915_gem_mmap {
-+ uint32_t handle;
-+ uint32_t pad;
-+ uint64_t offset;
-+ uint64_t size;
-+ uint64_t addr_ptr;
-+};
-+#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap)
-+
- struct local_i915_gem_mmap2 {
- uint32_t handle;
- uint32_t pad;
-@@ -514,15 +523,15 @@ retry_wc:
-
- static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo)
- {
-- struct drm_i915_gem_mmap mmap_arg;
-+ struct local_i915_gem_mmap arg;
- int err;
-
- retry:
-- VG_CLEAR(mmap_arg);
-- mmap_arg.handle = bo->handle;
-- mmap_arg.offset = 0;
-- mmap_arg.size = bytes(bo);
-- if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) {
-+ VG_CLEAR(arg);
-+ arg.handle = bo->handle;
-+ arg.offset = 0;
-+ arg.size = bytes(bo);
-+ if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) {
- assert(err != EINVAL);
-
- if (__kgem_throttle_retire(kgem, 0))
-@@ -536,10 +545,10 @@ retry:
- return NULL;
- }
-
-- VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo)));
-+ VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo)));
-
- DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle));
-- return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr;
-+ return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr;
- }
-
- static int gem_write(int fd, uint32_t handle,
---
-2.4.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/udev-fstat.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/udev-fstat.patch
deleted file mode 100644
index 0e675ee9f..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/udev-fstat.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 12af8a575d1518d40416f83195049157c3a062a5 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris@chris-wilson.co.uk>
-Date: Tue, 24 Feb 2015 15:25:40 +0000
-Subject: sna: udev integration depends on fstat and sys/stat.h
-
-src/sna/sna_driver.c: In function 'sna_handle_uevents':
-src/sna/sna_driver.c:759:2: error: implicit declaration of function 'fstat' [-Werror=implicit-function-declaration]
-
-Also take the opportunity to include udev support in the configure
-summary.
-
-Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-
-diff --git a/configure.ac b/configure.ac
-index 7476e2b..de3a4b3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -197,11 +197,15 @@ AC_ARG_ENABLE(udev,
-
- if test "x$UDEV" != "xno"; then
- PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"])
-+ AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"])
- if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then
- AC_MSG_ERROR([udev support requested but not found (libudev)])
- fi
- if test "x$udev" = "xyes"; then
- AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
-+ udev_msg=" yes"
-+ else
-+ udev_msg=" no"
- fi
- fi
-
-@@ -911,6 +915,7 @@ echo " Support for Kernel Mode Setting? $KMS"
- echo " Support for legacy User Mode Setting (for i810)? $UMS"
- echo " Support for Direct Rendering Infrastructure:$dri_msg"
- echo " Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg"
-+echo " Support for display hotplug notifications (udev):$udev_msg"
- echo " Build additional tools and utilities?$tools_msg"
- if test -n "$xp_msg"; then
- echo " Experimental support:$xp_msg"
-diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
-index 8c0d0b5..bc20ef0 100644
---- a/src/sna/sna_driver.c
-+++ b/src/sna/sna_driver.c
-@@ -740,6 +740,8 @@ sna_wakeup_handler(WAKEUPHANDLER_ARGS_DECL)
- }
-
- #if HAVE_UDEV
-+#include <sys/stat.h>
-+
- static void
- sna_handle_uevents(int fd, void *closure)
- {
---
-cgit v0.10.2
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.917.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.917.bb
deleted file mode 100644
index d75b44f17..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_2.99.917.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-require xorg-driver-video.inc
-
-SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver"
-
-DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \
-chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \
-the driver supports hardware accelerated 3D via the Direct Rendering \
-Infrastructure (DRI)."
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
-
-SRC_URI += "file://disable-x11-dri3.patch \
- file://always_include_xorg_server.h.patch \
- file://sna-Protect-against-ABI-breakage-in-recent-versions-.patch \
- file://udev-fstat.patch \
- file://0001-uxa-fix-the-call-to-PixmapSyncDirtyHelper-broken-by-.patch \
- file://0001-gen8-Fix-the-YUV-RGB-shader.patch \
- "
-
-SRC_URI[md5sum] = "fa196a66e52c0c624fe5d350af7a5e7b"
-SRC_URI[sha256sum] = "00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9"
-
-DEPENDS += "virtual/libx11 drm libpciaccess pixman"
-
-PACKAGECONFIG ??= "xvmc sna udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri1 dri2', '', d)}"
-
-PACKAGECONFIG[dri] = "--enable-dri,--disable-dri"
-PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1,xf86driproto"
-PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,dri2proto"
-PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,dri3proto"
-PACKAGECONFIG[sna] = "--enable-sna,--disable-sna"
-PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa"
-PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
-PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc xcb-util"
-PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxrandr libxdamage libxfixes libxcursor libxtst libxext libxrender"
-
-# --enable-kms-only option is required by ROOTLESS_X
-EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}'
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-FILES_${PN} += "${datadir}/polkit-1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
new file mode 100644
index 000000000..06cc730f4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -0,0 +1,43 @@
+require xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- Intel integrated graphics chipsets driver"
+
+DESCRIPTION = "intel is an Xorg driver for Intel integrated graphics \
+chipsets. The driver supports depths 8, 15, 16 and 24. On some chipsets, \
+the driver supports hardware accelerated 3D via the Direct Rendering \
+Infrastructure (DRI)."
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
+
+SRCREV = "8f33f80100096f7790c7b819ce37a3ed8ce8b5fa"
+PV = "2.99.917+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \
+ file://disable-x11-dri3.patch \
+ file://always_include_xorg_server.h.patch \
+ "
+
+SRC_URI[md5sum] = "fa196a66e52c0c624fe5d350af7a5e7b"
+SRC_URI[sha256sum] = "00b781eea055582820a123c47b62411bdf6aabf4f03dc0568faec55faf9667c9"
+
+DEPENDS += "virtual/libx11 drm libpciaccess pixman"
+
+PACKAGECONFIG ??= "xvmc sna udev ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri dri1 dri2', '', d)}"
+
+PACKAGECONFIG[dri] = "--enable-dri,--disable-dri"
+PACKAGECONFIG[dri1] = "--enable-dri1,--disable-dri1,xf86driproto"
+PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,dri2proto"
+PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,dri3proto"
+PACKAGECONFIG[sna] = "--enable-sna,--disable-sna"
+PACKAGECONFIG[uxa] = "--enable-uxa,--disable-uxa"
+PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,udev"
+PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc xcb-util"
+PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,libxinerama libxrandr libxdamage libxfixes libxcursor libxtst libxext libxrender"
+
+# --enable-kms-only option is required by ROOTLESS_X
+EXTRA_OECONF += '${@base_conditional( "ROOTLESS_X", "1", " --enable-kms-only", "", d )}'
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+FILES_${PN} += "${datadir}/polkit-1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb
index 90846d818..36766f2f4 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/encodings_1.0.4.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=9da93f2daf2d5572faa2bfaf0dbd9e76"
PE = "1"
PR = "${INC_PR}.1"
-DEPENDS = "mkfontscale-native font-util-native"
+DEPENDS = "mkfontscale-native mkfontdir-native font-util-native"
RDEPENDS_${PN} = ""
SRC_URI += "file://nocompiler.patch"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb
index 228512498..34646ff99 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-font/font-util_1.3.1.bb
@@ -19,7 +19,4 @@ BBCLASSEXTEND = "native"
SRC_URI[md5sum] = "23756dab809f9ec5011bb27fb2c3c7d6"
SRC_URI[sha256sum] = "aa7ebdb0715106dd255082f2310dbaa2cd7e225957c2a77d719720c7cc92b921"
-SYSROOT_PREPROCESS_FUNCS += "fontutil_sysroot_preprocess"
-fontutil_sysroot_preprocess () {
- sysroot_stage_dir ${D}${datadir}/fonts/ ${SYSROOT_DESTDIR}${datadir}/fonts/
-}
+SYSROOT_DIRS_BLACKLIST_remove = "${datadir}/fonts"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb
index 5049b7ee0..b361ad6dd 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libice_1.0.9.bb
@@ -23,5 +23,6 @@ BBCLASSEXTEND = "native"
SRC_URI[md5sum] = "addfb1e897ca8079531669c7c7711726"
SRC_URI[sha256sum] = "8f7032f2c1c64352b5423f6b48a8ebdc339cc63064af34d66a6c9aa79759e202"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
PACKAGECONFIG[arc4] = "ac_cv_lib_bsd_arc4random_buf=yes,ac_cv_lib_bsd_arc4random_buf=no,libbsd"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb
index 192513636..da4ed9251 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libsm_1.2.2.bb
@@ -26,3 +26,6 @@ BBCLASSEXTEND = "native"
SRC_URI[md5sum] = "499a7773c65aba513609fe651853c5f3"
SRC_URI[sha256sum] = "0baca8c9f5d934450a70896c4ad38d06475521255ca63b717a6510fdb6e287bd"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb/Fix-inconsistent-use-of-tabs-vs.-space.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb/Fix-inconsistent-use-of-tabs-vs.-space.patch
new file mode 100644
index 000000000..899238635
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb/Fix-inconsistent-use-of-tabs-vs.-space.patch
@@ -0,0 +1,62 @@
+From 8740a288ca468433141341347aa115b9544891d3 Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz@NetBSD.org>
+Date: Thu, 19 May 2016 17:31:18 +0200
+Subject: [PATCH] Fix inconsistent use of tabs vs. space.
+
+Needed for at least python-3.5.x.
+
+Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+
+Upstream-Status: Backport
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ src/c_client.py | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/c_client.py b/src/c_client.py
+index 57de3fb..043338d 100644
+--- a/src/c_client.py
++++ b/src/c_client.py
+@@ -1364,7 +1364,7 @@ def _c_serialize(context, self):
+ _c(' unsigned int xcb_align_to = 0;')
+ if self.is_switch:
+ _c(' unsigned int xcb_padding_offset = %d;',
+- self.get_align_offset() )
++ self.get_align_offset() )
+ prefix = [('_aux', '->', self)]
+ aux_ptr = 'xcb_out'
+
+@@ -1390,7 +1390,7 @@ def _c_serialize(context, self):
+ _c(' unsigned int xcb_align_to = 0;')
+ if self.is_switch:
+ _c(' unsigned int xcb_padding_offset = %d;',
+- self.get_align_offset() )
++ self.get_align_offset() )
+
+ elif 'sizeof' == context:
+ param_names = [p[2] for p in params]
+@@ -1930,14 +1930,14 @@ def _c_accessors_list(self, field):
+ # from the request size and divide that by the member size
+ return '(((R->length * 4) - sizeof('+ self.c_type + '))/'+'sizeof('+field.type.member.c_wiretype+'))'
+ else:
+- # use the accessor to get the start of the list, then
+- # compute the length of it by subtracting it from
++ # use the accessor to get the start of the list, then
++ # compute the length of it by subtracting it from
+ # the adress of the first byte after the end of the
+ # request
+- after_end_of_request = '(((char*)R) + R->length * 4)'
+- start_of_list = '%s(R)' % (field.c_accessor_name)
++ after_end_of_request = '(((char*)R) + R->length * 4)'
++ start_of_list = '%s(R)' % (field.c_accessor_name)
+ bytesize_of_list = '%s - (char*)(%s)' % (after_end_of_request, start_of_list)
+- return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype)
++ return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype)
+ else:
+ raise Exception(
+ "lengthless lists with varsized members are not supported. Fieldname '%s'"
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb
deleted file mode 100644
index 0856c190a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "XCB: The X protocol C binding library"
-DESCRIPTION = "The X protocol C-language Binding (XCB) is a replacement \
-for Xlib featuring a small footprint, latency hiding, direct access to \
-the protocol, improved threading support, and extensibility."
-HOMEPAGE = "http://xcb.freedesktop.org"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
-SECTION = "x11/libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7"
-
-SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2 \
- file://xcbincludedir.patch \
- file://disable-check.patch \
- file://gcc-mips-pr68302-mips-workaround.patch \
- "
-SRC_URI[md5sum] = "f97a65e6158775de518ac391935634c2"
-SRC_URI[sha256sum] = "b720fd6c7d200e5371affdb3f049cc8f88cff9aed942ff1b824d95eedbf69d30"
-
-BBCLASSEXTEND = "native nativesdk"
-
-DEPENDS = "xcb-proto xproto libxau libpthread-stubs libxdmcp"
-
-PACKAGES_DYNAMIC = "^libxcb-.*"
-
-FILES_${PN} = "${libdir}/libxcb.so.*"
-
-inherit autotools pkgconfig distro_features_check
-
-# The libxau and others requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-
-python populate_packages_prepend () {
- do_split_packages(d, '${libdir}', '^libxcb-(.*)\.so\..*$', 'libxcb-%s', 'XCB library module for %s', allow_links=True)
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.12.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.12.bb
new file mode 100644
index 000000000..a38bdea5d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcb_1.12.bb
@@ -0,0 +1,39 @@
+SUMMARY = "XCB: The X protocol C binding library"
+DESCRIPTION = "The X protocol C-language Binding (XCB) is a replacement \
+for Xlib featuring a small footprint, latency hiding, direct access to \
+the protocol, improved threading support, and extensibility."
+HOMEPAGE = "http://xcb.freedesktop.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
+SECTION = "x11/libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7"
+
+SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2 \
+ file://xcbincludedir.patch \
+ file://disable-check.patch \
+ file://gcc-mips-pr68302-mips-workaround.patch \
+ file://Fix-inconsistent-use-of-tabs-vs.-space.patch \
+ "
+SRC_URI[md5sum] = "28e552bd78bc1050b6b26ca1db0e5bb6"
+SRC_URI[sha256sum] = "4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b"
+
+BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS = "xcb-proto xproto libxau libpthread-stubs libxdmcp"
+
+PACKAGES_DYNAMIC = "^libxcb-.*"
+
+FILES_${PN} = "${libdir}/libxcb.so.*"
+
+inherit autotools pkgconfig distro_features_check
+
+# The libxau and others requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES_class-native = ""
+
+export PYTHON = "python3"
+
+python populate_packages_prepend () {
+ do_split_packages(d, '${libdir}', '^libxcb-(.*)\.so\..*$', 'libxcb-%s', 'XCB library module for %s', allow_links=True)
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.14.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.14.bb
index a8e4f24b6..17629047b 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.14.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxcursor_1.1.14.bb
@@ -12,7 +12,7 @@ LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=8902e6643f7bcd7793b23dcd5d8031a4"
DEPENDS += "libxrender libxfixes"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
PE = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb
index efa8b65ac..063e531c0 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_1.3.3.bb
@@ -13,7 +13,7 @@ require xorg-lib-common.inc
LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=879ce266785414bd1cbc3bc2f4d9d7c8"
-DEPENDS += "xproto virtual/libx11 xextproto libxau libxdmcp"
+DEPENDS += "xproto virtual/libx11 xextproto"
PROVIDES = "xext"
PE = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_git.bb
deleted file mode 100644
index b799186ef..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxext_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-require xorg-lib-common.inc
-
-SUMMARY = "XExt: X Extension library"
-
-DESCRIPTION = "libXext provides an X Window System client interface to \
-several extensions to the X protocol. The supported protocol extensions \
-are DOUBLE-BUFFER, DPMS, Extended-Visual-Information, LBX, MIT_SHM, \
-MIT_SUNDRY-NONSTANDARD, Multi-Buffering, SECURITY, SHAPE, SYNC, TOG-CUP, \
-XC-APPGROUP, XC-MISC, XTEST. libXext also provides a small set of \
-utility functions to aid authors of client APIs for X protocol \
-extensions."
-
-DEPENDS += "xproto virtual/libx11 xextproto libxau libxdmcp"
-PROVIDES = "xext"
-SRCREV = "d1f3bc77a48c8e42771579e3fdf3370b35d3209d"
-PE = "1"
-PV = "1.0.99.1+gitr${SRCPV}"
-
-XORG_PN = "libXext"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/lib/${XORG_PN}"
-S = "${WORKDIR}/git/"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.1.bb
deleted file mode 100644
index 6e2740c9a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "XFixes: X Fixes extension library"
-
-DESCRIPTION = "X applications have often needed to work around various \
-shortcomings in the core X window system. This extension is designed to \
-provide the minimal server-side support necessary to eliminate problems \
-caused by these workarounds."
-
-require xorg-lib-common.inc
-
-LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
-
-DEPENDS += "virtual/libx11 xproto fixesproto xextproto"
-
-PE = "1"
-
-XORG_PN = "libXfixes"
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "b985b85f8b9386c85ddcfe1073906b4d"
-SRC_URI[sha256sum] = "63bec085084fa3caaee5180490dd871f1eb2020ba9e9b39a30f93693ffc34767"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.2.bb
new file mode 100644
index 000000000..f078aed19
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "XFixes: X Fixes extension library"
+
+DESCRIPTION = "X applications have often needed to work around various \
+shortcomings in the core X window system. This extension is designed to \
+provide the minimal server-side support necessary to eliminate problems \
+caused by these workarounds."
+
+require xorg-lib-common.inc
+
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
+
+DEPENDS += "virtual/libx11 xproto fixesproto xextproto"
+
+PE = "1"
+
+XORG_PN = "libXfixes"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[md5sum] = "544d73df94e638ba7b64147be416e576"
+SRC_URI[sha256sum] = "9bd20edfec084a1bed481d48dd4815dee88139fffad091418cdda081129a9aea"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfont_1.5.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfont_1.5.1.bb
index 1b6e33c71..e01f3311f 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfont_1.5.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxfont_1.5.1.bb
@@ -20,3 +20,6 @@ BBCLASSEXTEND = "native"
SRC_URI[md5sum] = "96f76ba94b4c909230bac1e2dcd551c4"
SRC_URI[sha256sum] = "b70898527c73f9758f551bbab612af611b8a0962202829568d94f3edf4d86098"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxinerama_1.1.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxinerama_1.1.3.bb
index 027c8043d..bb03f44e2 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxinerama_1.1.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxinerama_1.1.3.bb
@@ -18,3 +18,5 @@ XORG_PN = "libXinerama"
SRC_URI[md5sum] = "9336dc46ae3bf5f81c247f7131461efd"
SRC_URI[sha256sum] = "7a45699f1773095a3f821e491cbd5e10c887c5a5fce5d8d3fced15c2ff7698e2"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.5.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.5.0.bb
deleted file mode 100644
index de22a8197..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.5.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Generic XKB keymap library"
-DESCRIPTION = "libxkbcommon is a keymap compiler and support library which \
-processes a reduced subset of keymaps as defined by the XKB specification."
-HOMEPAGE = "http://www.xkbcommon.org"
-LIC_FILES_CHKSUM = "file://COPYING;md5=09457b156e3155972abebcaaaa0cb434"
-LICENSE = "MIT & MIT-style"
-
-DEPENDS = "util-macros flex-native bison-native"
-
-SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "2e1faeafcc609c30af3a561a91e84158"
-SRC_URI[sha256sum] = "90bd7824742b9a6f52a6cf80e2cadd6f5349cf600a358d08260772615b89d19c"
-
-UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-docs"
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxcb xkeyboard-config,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.6.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.6.1.bb
new file mode 100644
index 000000000..fc08109c8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Generic XKB keymap library"
+DESCRIPTION = "libxkbcommon is a keymap compiler and support library which \
+processes a reduced subset of keymaps as defined by the XKB specification."
+HOMEPAGE = "http://www.xkbcommon.org"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=09457b156e3155972abebcaaaa0cb434"
+LICENSE = "MIT & MIT-style"
+
+DEPENDS = "util-macros flex-native bison-native"
+
+SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "67a8f322b5fa32352272e811bb90dd73"
+SRC_URI[sha256sum] = "5b0887b080b42169096a61106661f8d35bae783f8b6c58f97ebcd3af83ea8760"
+
+UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-docs"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxcb xkeyboard-config,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb
index 003baec6e..d5935ff34 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxmu_1.1.2.bb
@@ -30,3 +30,6 @@ BBCLASSEXTEND = "native"
SRC_URI[md5sum] = "41d92ab627dfa06568076043f3e089e4"
SRC_URI[sha256sum] = "756edc7c383254eef8b4e1b733c3bf1dc061b523c9f9833ac7058378b8349d0b"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxrender_0.9.9.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxrender_0.9.9.bb
index 9fde04061..44cb2e0eb 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxrender_0.9.9.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxrender_0.9.9.bb
@@ -11,7 +11,7 @@ require xorg-lib-common.inc
LICENSE = "MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8bc71986d3b9b3639f6dfd6fac8f196"
-DEPENDS += "virtual/libx11 renderproto xproto xdmcp"
+DEPENDS += "virtual/libx11 renderproto xproto"
PE = "1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch
index ce6c756df..ffc2c15d7 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/libxt/libxt_fix_for_x32.patch
@@ -3,7 +3,7 @@ Upstream-Status: Pending
This fixes compilation with x32 toolchain.
Received this patch from H.J. Lu <hjl.tools@gmail.com>
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/1
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/1
--- libXt-1.1.1/include/X11/Xtos.h.x32 2011-02-08 07:56:40.000000000 -0800
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
new file mode 100644
index 000000000..782c1db02
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
@@ -0,0 +1,33 @@
+From 0ccd906b904d21536d5ab41c6196760e3e5d72cb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 17 May 2016 17:30:00 -0700
+Subject: [PATCH] test/utils: Check for FE_INVALID definition before use
+
+Some architectures e.g. nios2 do not support all exceptions
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ test/utils.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/test/utils.c b/test/utils.c
+index f8e42a5..fe32b1e 100644
+--- a/test/utils.c
++++ b/test/utils.c
+@@ -978,9 +978,11 @@ enable_invalid_exceptions (void)
+ {
+ #ifdef HAVE_FENV_H
+ #ifdef HAVE_FEENABLEEXCEPT
++#ifdef FE_INVALID
+ feenableexcept (FE_INVALID);
+ #endif
+ #endif
++#endif
+ }
+
+ void *
+--
+2.8.2
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-v3-test-add-a-check-for-FE_DIVBYZERO.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-v3-test-add-a-check-for-FE_DIVBYZERO.patch
deleted file mode 100644
index 6b7c1e62a..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/0001-v3-test-add-a-check-for-FE_DIVBYZERO.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From fcd5eb9bd0e8674a6f4987a8fce7dc1ba8f9320c Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Thu, 17 Sep 2015 03:08:36 +0200
-Subject: [PATCH] [v3] test: add a check for FE_DIVBYZERO
-
-Some architectures, such as Microblaze and Nios2, currently do not
-implement FE_DIVBYZERO, even though they have <fenv.h> and
-feenableexcept(). This commit adds a configure.ac check to verify
-whether FE_DIVBYZERO is defined or not, and if not, disables the
-problematic code in test/utils.c.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Backport [commit 4297e9058]
----
-Changes v1 -> v2:
-
- * Use the ac_cv_have_decl_FE_DIVBYZERO variable, which is
- automatically set by AC_CHECK_DECL, to decide whether or not
- HAVE_FEDIVBYZERO should be defined.
-
-Changes v2 -> v3:
-
- * Use action-if-yes of AC_CHECK_DECL as suggested in
- http://lists.freedesktop.org/archives/pixman/2014-February/003176.html
----
- configure.ac | 5 +++++
- test/utils.c | 2 ++
- 2 files changed, 7 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index f93cc30..424bfd3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -891,6 +891,11 @@ if test x$have_feenableexcept = xyes; then
- AC_DEFINE(HAVE_FEENABLEEXCEPT, 1, [Whether we have feenableexcept()])
- fi
-
-+AC_CHECK_DECL([FE_DIVBYZERO],
-+ [AC_DEFINE(HAVE_FEDIVBYZERO, 1, [Whether we have FE_DIVBYZERO])],
-+ [],
-+ [[#include <fenv.h>]])
-+
- AC_CHECK_FUNC(gettimeofday, have_gettimeofday=yes, have_gettimeofday=no)
- AC_CHECK_HEADER(sys/time.h, have_sys_time_h=yes, have_sys_time_h=no)
- if test x$have_gettimeofday = xyes && test x$have_sys_time_h = xyes; then
-diff --git a/test/utils.c b/test/utils.c
-index 222d4d5..8657966 100644
---- a/test/utils.c
-+++ b/test/utils.c
-@@ -966,9 +966,11 @@ enable_divbyzero_exceptions (void)
- {
- #ifdef HAVE_FENV_H
- #ifdef HAVE_FEENABLEEXCEPT
-+#ifdef HAVE_FEDIVBYZERO
- feenableexcept (FE_DIVBYZERO);
-+#endif
- #endif
- #endif
- }
-
- void
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/mips-export-revert.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/mips-export-revert.patch
deleted file mode 100644
index 14a5fd209..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman/mips-export-revert.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Revert a commit in pixman 0.32.6 which breaks compliation on MIPS machines with
-errors such as:
-
-pixman-0.32.6/pixman/pixman-mips-dspr2-asm.S:4267:
-Error: invalid operands `mflo $14,$ac3'
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
---- b/pixman/pixman-mips-dspr2-asm.h
-+++ a/pixman/pixman-mips-dspr2-asm.h
-@@ -72,10 +72,7 @@
- #define LEAF_MIPS32R2(symbol) \
- .globl symbol; \
- .align 2; \
--#ifdef __ELF__
-- .hidden symbol; \
- .type symbol, @function; \
--#endif
- .ent symbol, 0; \
- symbol: .frame sp, 0, ra; \
- .set push; \
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.32.8.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.32.8.bb
deleted file mode 100644
index 553ce369b..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.32.8.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Pixman: Pixel Manipulation library"
-
-DESCRIPTION = "Pixman provides a library for manipulating pixel regions \
--- a set of Y-X banded rectangles, image compositing using the \
-Porter/Duff model and implicit mask generation for geometric primitives \
-including trapezoids, triangles, and rectangles."
-
-require xorg-lib-common.inc
-
-# see http://cairographics.org/releases/ - only even minor versions are stable
-UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
-
-LICENSE = "MIT & MIT-style & PD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \
- file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \
- file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
- "
-DEPENDS += "zlib libpng"
-BBCLASSEXTEND = "native nativesdk"
-
-PE = "1"
-
-IWMMXT = "--disable-arm-iwmmxt"
-LOONGSON_MMI = "--disable-loongson-mmi"
-# If target supports neon then disable the 'simd' (ie VFPv2) fallback, otherwise disable neon.
-NEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--disable-arm-simd", "--disable-arm-neon" ,d)}"
-
-EXTRA_OECONF = "--disable-gtk ${IWMMXT} ${LOONGSON_MMI} ${NEON}"
-EXTRA_OECONF_class-native = "--disable-gtk"
-EXTRA_OECONF_class-nativesdk = "--disable-gtk"
-
-SRC_URI += "\
- file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
- file://mips-export-revert.patch \
- file://asm_include.patch \
- file://0001-v3-test-add-a-check-for-FE_DIVBYZERO.patch \
-"
-
-SRC_URI[md5sum] = "18d6b62abdb7bc0f8e6b0ddf48986b2c"
-SRC_URI[sha256sum] = "5c63dbb3523fc4d86ed4186677815918a941b7cb390d5eec4f55cb5d66b59fb1"
-
-REQUIRED_DISTRO_FEATURES = ""
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb
new file mode 100644
index 000000000..c4ca621a8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/pixman_0.34.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Pixman: Pixel Manipulation library"
+
+DESCRIPTION = "Pixman provides a library for manipulating pixel regions \
+-- a set of Y-X banded rectangles, image compositing using the \
+Porter/Duff model and implicit mask generation for geometric primitives \
+including trapezoids, triangles, and rectangles."
+
+require xorg-lib-common.inc
+
+# see http://cairographics.org/releases/ - only even minor versions are stable
+UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
+
+LICENSE = "MIT & MIT-style & PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \
+ file://pixman/pixman-matrix.c;endline=25;md5=ba6e8769bfaaee2c41698755af04c4be \
+ file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
+ "
+DEPENDS += "zlib libpng"
+BBCLASSEXTEND = "native nativesdk"
+
+PE = "1"
+
+IWMMXT = "--disable-arm-iwmmxt"
+LOONGSON_MMI = "--disable-loongson-mmi"
+# If target supports neon then disable the 'simd' (ie VFPv2) fallback, otherwise disable neon.
+NEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--disable-arm-simd", "--disable-arm-neon" ,d)}"
+
+EXTRA_OECONF = "--disable-gtk ${IWMMXT} ${LOONGSON_MMI} ${NEON}"
+EXTRA_OECONF_class-native = "--disable-gtk"
+EXTRA_OECONF_class-nativesdk = "--disable-gtk"
+
+SRC_URI += "\
+ file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
+ file://asm_include.patch \
+ file://0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch \
+"
+
+SRC_URI[md5sum] = "002a4fcb644ddfcb4b0e4191576a0d59"
+SRC_URI[sha256sum] = "39ba3438f3d17c464b0cb8be006dacbca0ab5aee97ebde69fec7ecdbf85794a0"
+
+REQUIRED_DISTRO_FEATURES = ""
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.16.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.16.bb
deleted file mode 100644
index 16a1f4f31..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.16.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Keyboard configuration database for X Window"
-
-DESCRIPTION = "The non-arch keyboard configuration database for X \
-Window. The goal is to provide the consistent, well-structured, \
-frequently released open source of X keyboard configuration data for X \
-Window System implementations. The project is targeted to XKB-based \
-systems."
-
-HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config"
-
-LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
-
-SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "bf6aa31195584cfce01b2194c3e5ea26"
-SRC_URI[sha256sum] = "1e8a1f212c96b7f71ca0b05da361cac1816d27baae1d8e03e7b53049b58d1d58"
-
-SECTION = "x11/libs"
-DEPENDS = "intltool-native virtual/gettext util-macros libxslt-native"
-
-EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps"
-
-FILES_${PN} += "${datadir}/X11/xkb"
-
-inherit autotools pkgconfig gettext
-
-do_install_append () {
- install -d ${D}${datadir}/X11/xkb/compiled
- cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg
-}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.18.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.18.bb
new file mode 100644
index 000000000..79fcbd897
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.18.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Keyboard configuration database for X Window"
+
+DESCRIPTION = "The non-arch keyboard configuration database for X \
+Window. The goal is to provide the consistent, well-structured, \
+frequently released open source of X keyboard configuration data for X \
+Window System implementations. The project is targeted to XKB-based \
+systems."
+
+HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config"
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
+
+SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "c28cf45616bfec276879360bc36c6b27"
+SRC_URI[sha256sum] = "c41d917d6c8a59feb7ccbda51c40a6ada824fdd1e9684b52dd48c9530617ddd0"
+
+SECTION = "x11/libs"
+DEPENDS = "intltool-native virtual/gettext util-macros libxslt-native"
+
+EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps"
+
+FILES_${PN} += "${datadir}/X11/xkb"
+
+inherit autotools pkgconfig gettext
+
+do_install_append () {
+ install -d ${D}${datadir}/X11/xkb/compiled
+ cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/dri2proto_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/dri2proto_git.bb
deleted file mode 100644
index 9074f48d4..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/dri2proto_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "DRI2: Direct Rendering Infrastructure 2 headers"
-
-DESCRIPTION = "This package provides the wire protocol for the Direct \
-Rendering Ifnrastructure 2. DIR is required for may hardware \
-accelerated OpenGL drivers."
-
-SRCREV = "66c56ab10d917e3f47f93178d7eac6430970d3c4"
-PV = "1.99.3+git${SRCPV}"
-PR = "r2"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/dri2proto"
-
-LIC_FILES_CHKSUM="file://COPYING;md5=2e396fa91834f8786032cad2da5638f3"
-
-S = "${WORKDIR}/git"
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.1.bb
deleted file mode 100644
index 7e8e0c155..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "XI: X Input extension headers"
-
-DESCRIPTION = "This package provides the wire protocol for the X Input \
-extension. The extension supports input devices other then the core X \
-keyboard and pointer."
-
-LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e562cc0f6587b961f032211d8160f31e \
- file://XI2proto.h;endline=48;md5=1ac1581e61188da2885cc14ff49b20be"
-
-PE = "1"
-
-inherit gettext
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "6caebead4b779ba031727f66a7ffa358"
-SRC_URI[sha256sum] = "5a47ee62053a6acef3a83f506312494be1461068d0b9269d818839703b95c1d1"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.2.bb
new file mode 100644
index 000000000..eb5e66bd6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_2.3.2.bb
@@ -0,0 +1,22 @@
+require xorg-proto-common.inc
+
+SUMMARY = "XI: X Input extension headers"
+
+DESCRIPTION = "This package provides the wire protocol for the X Input \
+extension. The extension supports input devices other then the core X \
+keyboard and pointer."
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e562cc0f6587b961f032211d8160f31e \
+ file://XI2proto.h;endline=48;md5=1ac1581e61188da2885cc14ff49b20be"
+
+PE = "1"
+
+inherit gettext
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[md5sum] = "b290a463af7def483e6e190de460f31a"
+SRC_URI[sha256sum] = "893a6af55733262058a27b38eeb1edc733669f01d404e8581b167f03c03ef31d"
+
+EXTRA_OECONF += "--without-asciidoc"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_git.bb
deleted file mode 100644
index 6520f3bb0..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/inputproto_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "XI: X Input extension headers"
-
-DESCRIPTION = "This package provides the wire protocol for the X Input \
-extension. The extension supports input devices other then the core X \
-keyboard and pointer."
-
-PR = "r1"
-PE = "1"
-SRCREV = "7203036522ba9d4b224d282d6afc2d0b947711ee"
-PV = "1.9.99.12+git${SRCPV}"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xorg/proto/inputproto"
-S = "${WORKDIR}/git"
-
-inherit gettext
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.2.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.2.bb
deleted file mode 100644
index 53aa7593b..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "Xv: X Video extension headers"
-
-DESCRIPTION = "This package provides the wire protocol for the X Video \
-extension. This extension alows for accerlated drawing of videos."
-
-LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ce3472a119a864085fa4155cb0979a7b"
-
-PE = "1"
-
-SRC_URI[md5sum] = "e658641595327d3990eab70fdb55ca8b"
-SRC_URI[sha256sum] = "8dae168cb820fcd32f564879afb3f24d27c176300d9af66819a18265539bd4b6"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.3.bb
new file mode 100644
index 000000000..6f97a2653
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/videoproto_2.3.3.bb
@@ -0,0 +1,14 @@
+require xorg-proto-common.inc
+
+SUMMARY = "Xv: X Video extension headers"
+
+DESCRIPTION = "This package provides the wire protocol for the X Video \
+extension. This extension alows for accerlated drawing of videos."
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ce3472a119a864085fa4155cb0979a7b"
+
+PE = "1"
+
+SRC_URI[md5sum] = "fe86de8ea3eb53b5a8f52956c5cd3174"
+SRC_URI[sha256sum] = "c7803889fd08e6fcaf7b68cc394fb038b2325d1f315e571a6954577e07cca702"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto.inc b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto.inc
deleted file mode 100644
index 8703d6391..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "XCB: The X protocol C binding headers"
-DESCRIPTION = "Function prototypes for the X protocol C-language Binding \
-(XCB). XCB is a replacement for Xlib featuring a small footprint, \
-latency hiding, direct access to the protocol, improved threading \
-support, and extensibility."
-HOMEPAGE = "http://xcb.freedesktop.org"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
-
-SECTION = "x11/libs"
-LICENSE = "MIT-X"
-
-SRC_URI = "http://xcb.freedesktop.org/dist/xcb-proto-${PV}.tar.bz2 \
- file://no-python-native.patch"
-
-inherit autotools pkgconfig
-
-PACKAGES += "python-xcbgen"
-
-FILES_${PN} = ""
-FILES_${PN}-dev += "${datadir}/xcb/*.xml ${datadir}/xcb/*.xsd"
-FILES_python-xcbgen = "${libdir}/xcb-proto"
-
-RDEPENDS_${PN}-dev = ""
-RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Make-whitespace-use-consistent.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Make-whitespace-use-consistent.patch
new file mode 100644
index 000000000..89ec66618
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0001-Make-whitespace-use-consistent.patch
@@ -0,0 +1,215 @@
+From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz@NetBSD.org>
+Date: Thu, 19 May 2016 17:30:04 +0200
+Subject: [PATCH 1/2] Make whitespace use consistent.
+
+At least python-3.5.x complains about this forcefully.
+
+Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+
+Upstream-Status: Backport
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ xcbgen/align.py | 96 ++++++++++++++++++++++++++++-----------------------------
+ 1 file changed, 48 insertions(+), 48 deletions(-)
+
+diff --git a/xcbgen/align.py b/xcbgen/align.py
+index 5e31838..d4c12ee 100644
+--- a/xcbgen/align.py
++++ b/xcbgen/align.py
+@@ -16,12 +16,12 @@ class Alignment(object):
+ return self.align == other.align and self.offset == other.offset
+
+ def __str__(self):
+- return "(align=%d, offset=%d)" % (self.align, self.offset)
++ return "(align=%d, offset=%d)" % (self.align, self.offset)
+
+ @staticmethod
+ def for_primitive_type(size):
+- # compute the required start_alignment based on the size of the type
+- if size % 8 == 0:
++ # compute the required start_alignment based on the size of the type
++ if size % 8 == 0:
+ # do 8-byte primitives require 8-byte alignment in X11?
+ return Alignment(8,0)
+ elif size % 4 == 0:
+@@ -33,7 +33,7 @@ class Alignment(object):
+
+
+ def align_after_fixed_size(self, size):
+- new_offset = (self.offset + size) % self.align
++ new_offset = (self.offset + size) % self.align
+ return Alignment(self.align, new_offset)
+
+
+@@ -41,7 +41,7 @@ class Alignment(object):
+ '''
+ Assuming the given external_align, checks whether
+ self is fulfilled for all cases.
+- Returns True if yes, False otherwise.
++ Returns True if yes, False otherwise.
+ '''
+ if self.align == 1 and self.offset == 0:
+ # alignment 1 with offset 0 is always fulfilled
+@@ -55,9 +55,9 @@ class Alignment(object):
+ # the external align guarantees less alignment -> not guaranteed
+ return False
+
+- if external_align.align % self.align != 0:
++ if external_align.align % self.align != 0:
+ # the external align cannot be divided by our align
+- # -> not guaranteed
++ # -> not guaranteed
+ # (this can only happen if there are alignments that are not
+ # a power of 2, which is highly discouraged. But better be
+ # safe and check for it)
+@@ -72,7 +72,7 @@ class Alignment(object):
+
+ def combine_with(self, other):
+ # returns the alignment that is guaranteed when
+- # both, self or other, can happen
++ # both, self or other, can happen
+ new_align = gcd(self.align, other.align)
+ new_offset_candidate1 = self.offset % new_align
+ new_offset_candidate2 = other.offset % new_align
+@@ -83,8 +83,8 @@ class Alignment(object):
+ new_align = gcd(new_align, offset_diff)
+ new_offset_candidate1 = self.offset % new_align
+ new_offset_candidate2 = other.offset % new_align
+- assert new_offset_candidate1 == new_offset_candidate2
+- new_offset = new_offset_candidate1
++ assert new_offset_candidate1 == new_offset_candidate2
++ new_offset = new_offset_candidate1
+ # return the result
+ return Alignment(new_align, new_offset)
+
+@@ -92,44 +92,44 @@ class Alignment(object):
+ class AlignmentLog(object):
+
+ def __init__(self):
+- self.ok_list = []
+- self.fail_list = []
+- self.verbosity = 1
++ self.ok_list = []
++ self.fail_list = []
++ self.verbosity = 1
+
+ def __str__(self):
+- result = ""
++ result = ""
+
+- # output the OK-list
+- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
+- stacksize = len(callstack)
++ # output the OK-list
++ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
++ stacksize = len(callstack)
+ indent = ' ' * stacksize
+- if self.ok_callstack_is_relevant(callstack):
++ if self.ok_callstack_is_relevant(callstack):
+ if field_name is None or field_name == "":
+- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n"
+- % (indent, str(type_obj), indent, str(align_before), str(align_after)))
+- else:
+- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
+- % (indent, str(field_name), str(type_obj),
+- indent, str(align_before), str(align_after)))
++ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n"
++ % (indent, str(type_obj), indent, str(align_before), str(align_after)))
++ else:
++ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
++ % (indent, str(field_name), str(type_obj),
++ indent, str(align_before), str(align_after)))
+ if self.verbosity >= 1:
+- result += self.callstack_to_str(indent, callstack)
++ result += self.callstack_to_str(indent, callstack)
+
+- # output the fail-list
+- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
+- stacksize = len(callstack)
++ # output the fail-list
++ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
++ stacksize = len(callstack)
+ indent = ' ' * stacksize
+- if field_name is None or field_name == "":
+- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
+- % (indent, str(align_before), indent, str(type_obj), indent, reason))
+- else:
+- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
+- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
++ if field_name is None or field_name == "":
++ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
++ % (indent, str(align_before), indent, str(type_obj), indent, reason))
++ else:
++ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
++ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
+
+ if self.verbosity >= 1:
+- result += self.callstack_to_str(indent, callstack)
++ result += self.callstack_to_str(indent, callstack)
+
+
+- return result
++ return result
+
+
+ def callstack_to_str(self, indent, callstack):
+@@ -137,41 +137,41 @@ class AlignmentLog(object):
+ for stack_elem in callstack:
+ result += "\t %s%s\n" % (indent, str(stack_elem))
+ result += "\t%s]\n" % indent
+- return result
++ return result
+
+
+ def ok_callstack_is_relevant(self, ok_callstack):
+ # determine whether an ok callstack is relevant for logging
+- if self.verbosity >= 2:
+- return True
++ if self.verbosity >= 2:
++ return True
+
+ # empty callstacks are always relevant
+- if len(ok_callstack) == 0:
++ if len(ok_callstack) == 0:
+ return True
+
+- # check whether the ok_callstack is a subset or equal to a fail_callstack
++ # check whether the ok_callstack is a subset or equal to a fail_callstack
+ for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list:
+ if len(ok_callstack) <= len(fail_callstack):
+ zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
+- is_subset = all([i == j for i, j in zipped])
+- if is_subset:
++ is_subset = all([i == j for i, j in zipped])
++ if is_subset:
+ return True
+
+ return False
+
+
+ def ok(self, align_before, field_name, type_obj, callstack, align_after):
+- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
++ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
+
+ def fail(self, align_before, field_name, type_obj, callstack, reason):
+- self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
++ self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
+
+ def append(self, other):
+- self.ok_list.extend(other.ok_list)
+- self.fail_list.extend(other.fail_list)
++ self.ok_list.extend(other.ok_list)
++ self.fail_list.extend(other.fail_list)
+
+ def ok_count(self):
+- return len(self.ok_list)
++ return len(self.ok_list)
+
+
+
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch
new file mode 100644
index 000000000..542acb82b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/0002-print-is-a-function-and-needs-parentheses.patch
@@ -0,0 +1,75 @@
+From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz@NetBSD.org>
+Date: Thu, 19 May 2016 17:30:05 +0200
+Subject: [PATCH 2/2] print() is a function and needs parentheses.
+
+Fixes build with python-3.x.
+
+Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+
+Upstream-Status: Backport
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ xcbgen/xtypes.py | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
+index c3b5758..b83b119 100644
+--- a/xcbgen/xtypes.py
++++ b/xcbgen/xtypes.py
+@@ -501,7 +501,7 @@ class ComplexType(Type):
+ int(required_start_align_element.get('align', "4"), 0),
+ int(required_start_align_element.get('offset', "0"), 0))
+ if verbose_align_log:
+- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align)
++ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align))
+
+ def resolve(self, module):
+ if self.resolved:
+@@ -592,7 +592,7 @@ class ComplexType(Type):
+ if verbose_align_log:
+ print ("calc_required_start_align: %s has start-align %s"
+ % (str(self), str(self.required_start_align)))
+- print "Details:\n" + str(log)
++ print ("Details:\n" + str(log))
+ if self.required_start_align.offset != 0:
+ print (("WARNING: %s\n\thas start-align with non-zero offset: %s"
+ + "\n\tsuggest to add explicit definition with:"
+@@ -619,12 +619,12 @@ class ComplexType(Type):
+ for offset in range(0,align):
+ align_candidate = Alignment(align, offset)
+ if verbose_align_log:
+- print "trying %s for %s" % (str(align_candidate), str(self))
++ print ("trying %s for %s" % (str(align_candidate), str(self)))
+ my_log = AlignmentLog()
+ if self.is_possible_start_align(align_candidate, callstack, my_log):
+ log.append(my_log)
+ if verbose_align_log:
+- print "found start-align %s for %s" % (str(align_candidate), str(self))
++ print ("found start-align %s for %s" % (str(align_candidate), str(self)))
+ return align_candidate
+ else:
+ my_ok_count = my_log.ok_count()
+@@ -641,7 +641,7 @@ class ComplexType(Type):
+ # none of the candidates applies
+ # this type has illegal internal aligns for all possible start_aligns
+ if verbose_align_log:
+- print "didn't find start-align for %s" % str(self)
++ print ("didn't find start-align for %s" % str(self))
+ log.append(best_log)
+ return None
+
+@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
+ # aux function for unchecked_get_alignment_after
+ def get_align_for_selected_case_field(self, case_field, start_align, callstack, log):
+ if verbose_align_log:
+- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))
++ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)))
+ total_align = start_align
+ for field in self.bitcases:
+ my_callstack = callstack[:]
+--
+2.9.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch
index f808e1963..09b6088db 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch
@@ -20,7 +20,7 @@ index d140bfe..c7b68da 100644
-AM_PATH_PYTHON([2.5])
+pythondir="${libdir}/xcb-proto"
+AC_SUBST(pythondir)
-+PYTHON="python"
++PYTHON="python3"
+AC_SUBST(PYTHON)
xcbincludedir='${datadir}/xcb'
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.11.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.11.bb
deleted file mode 100644
index 5bc5a112e..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.11.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-include xcb-proto.inc
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7 \
- file://src/dri2.xml;beginline=2;endline=28;md5=f8763b13ff432e8597e0d610cf598e65"
-
-
-SRC_URI[md5sum] = "6bf2797445dc6d43e9e4707c082eff9c"
-SRC_URI[sha256sum] = "b4aceee6502a0ce45fc39b33c541a2df4715d00b72e660ebe8c5bb444771e32e"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.12.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.12.bb
new file mode 100644
index 000000000..bc04bc48e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_1.12.bb
@@ -0,0 +1,40 @@
+SUMMARY = "XCB: The X protocol C binding headers"
+DESCRIPTION = "Function prototypes for the X protocol C-language Binding \
+(XCB). XCB is a replacement for Xlib featuring a small footprint, \
+latency hiding, direct access to the protocol, improved threading \
+support, and extensibility."
+HOMEPAGE = "http://xcb.freedesktop.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
+
+SECTION = "x11/libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d763b081cb10c223435b01e00dc0aba7 \
+ file://src/dri2.xml;beginline=2;endline=28;md5=f8763b13ff432e8597e0d610cf598e65"
+
+SRC_URI = "http://xcb.freedesktop.org/dist/xcb-proto-${PV}.tar.bz2 \
+ file://no-python-native.patch \
+ file://0001-Make-whitespace-use-consistent.patch \
+ file://0002-print-is-a-function-and-needs-parentheses.patch \
+ "
+SRC_URI[md5sum] = "14e60919f859560f28426a685a555962"
+SRC_URI[sha256sum] = "5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906"
+
+inherit autotools pkgconfig
+
+PACKAGES += "python-xcbgen"
+
+FILES_${PN} = ""
+FILES_${PN}-dev += "${datadir}/xcb/*.xml ${datadir}/xcb/*.xsd"
+FILES_python-xcbgen = "${libdir}/xcb-proto"
+
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install_append() {
+ # Makefile's do_install creates .pyc files for python3, now also create
+ # them for python2 so that they will be recorded by manifest, and can be
+ # cleaned correctly.
+ python -m py_compile ${D}${libdir}/xcb-proto/xcbgen/*.py
+}
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_git.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_git.bb
deleted file mode 100644
index 2ea4d0421..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xcb-proto_git.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-DEFAULT_PREFERENCE = "-1"
-
-include xcb-proto.inc
-SRCREV = "d81ca233e98be8fa59e8c90d262c0516944c5a66"
-PV = "1.2+gitr${SRCPV}"
-PR = "r4"
-
-SRC_URI = "git://anongit.freedesktop.org/git/xcb/proto"
-S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb
index d00774ece..dde7e9db7 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xineramaproto_1.2.1.bb
@@ -15,3 +15,5 @@ PE = "1"
SRC_URI[md5sum] = "9959fe0bfb22a0e7260433b8d199590a"
SRC_URI[sha256sum] = "977574bb3dc192ecd9c55f59f991ec1dff340be3e31392c95deff423da52485b"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto/xproto_fix_for_x32.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto/xproto_fix_for_x32.patch
index 540ad27d4..8a5ff58b9 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto/xproto_fix_for_x32.patch
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto/xproto_fix_for_x32.patch
@@ -8,7 +8,7 @@ __LP64__ before defining LONG64 without checking __amd64__/amd64.
This fixes compilation with x32 toolchain.
Received this patch from H.J. Lu <hjl.tools@gmail.com>
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/1
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/1
--- xproto-7.0.22/Xmd.h.x32 2009-07-11 04:19:50.000000000 -0700
+++ xproto-7.0.22/Xmd.h 2011-11-30 17:14:19.290395893 -0800
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.28.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.28.bb
deleted file mode 100644
index 7427a7d53..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.28.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "Xlib: C Language X interface headers"
-
-DESCRIPTION = "This package provides the basic headers for the X Window \
-System."
-
-LICENSE = "MIT & MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b9e051107d5628966739a0b2e9b32676"
-
-PE = "1"
-
-SRC_URI += "file://xproto_fix_for_x32.patch"
-
-EXTRA_OECONF_append = " --enable-specs=no"
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "3ce2f230c5d8fa929f326ad1f0fa40a8"
-SRC_URI[sha256sum] = "29e85568d1f68ceef8a2c081dad9bc0e5500a53cfffde24b564dc43d46ddf6ca"
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.29.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.29.bb
new file mode 100644
index 000000000..412b6a277
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-proto/xproto_7.0.29.bb
@@ -0,0 +1,19 @@
+require xorg-proto-common.inc
+
+SUMMARY = "Xlib: C Language X interface headers"
+
+DESCRIPTION = "This package provides the basic headers for the X Window \
+System."
+
+LICENSE = "MIT & MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b9e051107d5628966739a0b2e9b32676"
+
+PE = "1"
+
+SRC_URI += "file://xproto_fix_for_x32.patch"
+
+EXTRA_OECONF_append = " --enable-specs=no"
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI[md5sum] = "eeeae1f47d43a33ef0d5c56727410326"
+SRC_URI[sha256sum] = "6c1a477092ca73233902b8d5f33012635c4b0208f17e7833cc7efe5c93ba9f8a"
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/10-preload-modules.conf b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/10-preload-modules.conf
index 7ceb6fd63..72e4fbf59 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/10-preload-modules.conf
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/10-preload-modules.conf
@@ -3,7 +3,7 @@ Section "Module"
Load "fb"
Load "shadow"
Load "shadowfb"
+ Load "int10"
Load "vbe"
Load "vgahw"
EndSection
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index f4c5469b5..29503b1a5 100644
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -69,7 +69,7 @@ PACKAGES =+ "${PN}-sdl \
xf86-video-modesetting"
SUMMARY_xf86-video-modesetting = "X.Org X server -- modesetting display driver"
-INSANE_SKIP_xf86-video-modesetting = "xorg-driver-abi"
+INSANE_SKIP_${MLPREFIX}xf86-video-modesetting = "xorg-driver-abi"
XSERVER_RRECOMMENDS = "xkeyboard-config rgb xserver-xf86-config xkbcomp"
RRECOMMENDS_${PN} += "${XSERVER_RRECOMMENDS}"
@@ -131,6 +131,7 @@ PACKAGECONFIG[dri2] = "--enable-dri2,--disable-dri2,dri2proto"
# DRI3 requires xshmfence to also be enabled
PACKAGECONFIG[dri3] = "--enable-dri3,--disable-dri3,dri3proto"
PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,glproto virtual/libgl virtual/libx11"
+PACKAGECONFIG[glamor] = "--enable-glamor,--disable-glamor,libepoxy,libegl"
PACKAGECONFIG[unwind] = "--enable-libunwind,--disable-libunwind,libunwind"
PACKAGECONFIG[xshmfence] = "--enable-xshmfence,--disable-xshmfence,libxshmfence"
PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
@@ -167,9 +168,10 @@ python populate_packages_prepend() {
}
p = subprocess.Popen(args="pkg-config --variable=%s xorg-server" % abis[name],
shell=True, env=newenv, stdout=subprocess.PIPE)
- output = p.communicate()[0]
+ stdout, stderr = p.communicate()
+ output = stdout.decode("utf-8").split(".")[0]
mlprefix = d.getVar('MLPREFIX', True) or ''
- return "%sxorg-abi-%s-%s" % (mlprefix, name, output.split(".")[0])
+ return "%sxorg-abi-%s-%s" % (mlprefix, name, output)
pn = d.getVar("PN", True)
d.appendVar("RPROVIDES_" + pn, " " + get_abi("input"))
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/configure.ac-Use-libsystemd-in-REQUIRED_LIBS-check.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/configure.ac-Use-libsystemd-in-REQUIRED_LIBS-check.patch
deleted file mode 100644
index cd3099952..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/configure.ac-Use-libsystemd-in-REQUIRED_LIBS-check.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0c2153d468229f56e6fef71d2f002e0cae14aa55 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Mon, 16 Nov 2015 16:18:40 +0200
-Subject: [PATCH] configure.ac: Use libsystemd in REQUIRED_LIBS check
-
-REQUIRED_LIBS needs to be set to the correct systemd library,
-otherwise the later check will either fail or use the wrong
-pc file.
-
-Upstream-Status: Submitted [xorg-devel@lists.x.org]
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
----
- configure.ac | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 96c0242..f63eca1 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -837,9 +837,16 @@ AC_ARG_WITH([systemd-daemon],
- [support systemd socket activation (default: auto)]),
- [WITH_SYSTEMD_DAEMON=$withval], [WITH_SYSTEMD_DAEMON=auto])
- PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
-- [HAVE_SYSTEMD_DAEMON=yes],
-+ [REQUIRED_SYSTEMD_DAEMON=libsystemd-daemon],
- [PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd],
-- [HAVE_SYSTEMD_DAEMON=yes], [HAVE_SYSTEMD_DAEMON=no])])
-+ [REQUIRED_SYSTEMD_DAEMON=libsystemd],
-+ [REQUIRED_SYSTEMD_DAEMON=])])
-+if test "x$REQUIRED_SYSTEMD_DAEMON" = x; then
-+ HAVE_SYSTEMD_DAEMON=no
-+else
-+ HAVE_SYSTEMD_DAEMON=yes
-+fi
-+
- if test "x$WITH_SYSTEMD_DAEMON" = xauto; then
- WITH_SYSTEMD_DAEMON="$HAVE_SYSTEMD_DAEMON"
- fi
-@@ -848,7 +855,7 @@ if test "x$WITH_SYSTEMD_DAEMON" = xyes; then
- AC_MSG_ERROR([systemd support requested but no library has been found])
- fi
- AC_DEFINE(HAVE_SYSTEMD_DAEMON, 1, [Define to 1 if libsystemd-daemon is available])
-- REQUIRED_LIBS="$REQUIRED_LIBS libsystemd-daemon"
-+ REQUIRED_LIBS="$REQUIRED_LIBS $REQUIRED_SYSTEMD_DAEMON"
- fi
- AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$HAVE_SYSTEMD_DAEMON" = "xyes"])
-
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/modesetting_libdrm_requirements.patch b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/modesetting_libdrm_requirements.patch
deleted file mode 100644
index 5f186cb84..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/modesetting_libdrm_requirements.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From bf23db42a4e5943129501223a47b48884cdeb62f Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Wed, 27 Jan 2016 11:50:13 -0500
-Subject: modesetting: Require sufficiently new libdrm
-
-Bugzilla: https://bugs.freedesktop.org/93883
-Signed-off-by: Adam Jackson <ajax@redhat.com>
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-Reviewed-by: Julien Cristau <jcristau@debian.org>
-
-Upstream-Status: Backport
-Signed-off-by: Johannes Pointner <johannes.pointner@gmail.com>
-
-diff --git a/configure.ac b/configure.ac
-index ac3bb64..312fc69 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2035,8 +2035,7 @@ if test "x$XORG" = xyes; then
-
- if test "x$DRM" = xyes; then
- dnl 2.4.46 is required for cursor hotspot support.
-- PKG_CHECK_EXISTS(libdrm >= 2.4.46)
-- XORG_DRIVER_MODESETTING=yes
-+ PKG_CHECK_EXISTS(libdrm >= 2.4.46, XORG_DRIVER_MODESETTING=yes, XORG_DRIVER_MODESETTING=no)
- fi
-
- AC_SUBST([XORG_LIBS])
---
-cgit v0.10.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.0.bb
deleted file mode 100644
index eb79b4046..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-require xserver-xorg.inc
-
-SRC_URI += "file://configure.ac-Use-libsystemd-in-REQUIRED_LIBS-check.patch \
- file://musl-arm-inb-outb.patch \
- file://modesetting_libdrm_requirements.patch \
- "
-SRC_URI[md5sum] = "3c1c1057d3ad27380d8dd87ffcc182cd"
-SRC_URI[sha256sum] = "195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e"
-
-# These extensions are now integrated into the server, so declare the migration
-# path for in-place upgrades.
-
-RREPLACES_${PN} = "${PN}-extension-dri \
- ${PN}-extension-dri2 \
- ${PN}-extension-record \
- ${PN}-extension-extmod \
- ${PN}-extension-dbe \
- "
-RPROVIDES_${PN} = "${PN}-extension-dri \
- ${PN}-extension-dri2 \
- ${PN}-extension-record \
- ${PN}-extension-extmod \
- ${PN}-extension-dbe \
- "
-RCONFLICTS_${PN} = "${PN}-extension-dri \
- ${PN}-extension-dri2 \
- ${PN}-extension-record \
- ${PN}-extension-extmod \
- ${PN}-extension-dbe \
- "
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.4.bb b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.4.bb
new file mode 100644
index 000000000..670056579
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.18.4.bb
@@ -0,0 +1,27 @@
+require xserver-xorg.inc
+
+SRC_URI += "file://musl-arm-inb-outb.patch"
+SRC_URI[md5sum] = "d4842dfe3bd9a9d062f2fa1df9104a46"
+SRC_URI[sha256sum] = "278459b2c31d61a15655d95a72fb79930c480a6bb8cf9226e48a07df8b1d31c8"
+
+# These extensions are now integrated into the server, so declare the migration
+# path for in-place upgrades.
+
+RREPLACES_${PN} = "${PN}-extension-dri \
+ ${PN}-extension-dri2 \
+ ${PN}-extension-record \
+ ${PN}-extension-extmod \
+ ${PN}-extension-dbe \
+ "
+RPROVIDES_${PN} = "${PN}-extension-dri \
+ ${PN}-extension-dri2 \
+ ${PN}-extension-record \
+ ${PN}-extension-extmod \
+ ${PN}-extension-dbe \
+ "
+RCONFLICTS_${PN} = "${PN}-extension-dri \
+ ${PN}-extension-dri2 \
+ ${PN}-extension-record \
+ ${PN}-extension-extmod \
+ ${PN}-extension-dbe \
+ "
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
deleted file mode 100644
index fa43617bd..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. /etc/formfactor/config
-
-if [ "$HAVE_TOUCHSCREEN" = "1" ]; then
- n=1
- while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ]
- do
- /usr/bin/xtscal
- sleep 1
- n=$(($n+1))
- done
-fi
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/change-cross.patch b/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/change-cross.patch
deleted file mode 100644
index 1da771786..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/change-cross.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
---- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000
-+++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000
-@@ -131,9 +131,10 @@
- {
- XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2);
-
-- XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
-- (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1,
-- WIDTH + 1, WIDTH + 1, 0, 360 * 64);
-+ XFillRectangle (dpy, crosshair_w, crosshair_gc,
-+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
-+ (CROSSHAIR_SIZE / 2) - (WIDTH / 2),
-+ WIDTH, WIDTH);
- }
-
- void
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/cleanup.patch b/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/cleanup.patch
deleted file mode 100644
index f7b0854c3..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/cleanup.patch
+++ /dev/null
@@ -1,621 +0,0 @@
----
- Makefile.am | 9 --
- configure.ac | 3
- gpe-dist.am | 12 ---
- h3600_ts.h | 216 -----------------------------------------------------------
- main.c | 210 ++-------------------------------------------------------
- xtscal.in | 19 -----
- 6 files changed, 14 insertions(+), 455 deletions(-)
-
-Upstream-Status: Pending
-
-Index: xtscal-0.6.3/xtscal.in
-===================================================================
---- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,19 +0,0 @@
--#!/bin/sh
--
--module_id() {
-- # Get model name
-- echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z`
--}
--
--case `module_id` in
-- "HP IPAQ H3100" | "HP IPAQ H3800" )
-- ARGS="-rotate 90" ;;
-- "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE)
-- ARGS="-rotate 270" ;;
-- # H2200: works without rotation
--esac
--
--# the things we do for autoconf
--prefix=@prefix@
--exec_prefix=@exec_prefix@
--exec @libexecdir@/xtscal.bin $ARGS $*
-Index: xtscal-0.6.3/main.c
-===================================================================
---- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100
-+++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100
-@@ -22,12 +22,10 @@
- #include <X11/Xlib.h>
-
- #include <X11/extensions/Xrender.h>
--#include <X11/extensions/Xrandr.h>
- #include <X11/Xft/Xft.h>
- #include <X11/extensions/xcalibrate.h>
- #include <X11/keysym.h>
-
--#include "h3600_ts.h"
- #include "calibrate.h"
-
- Display *dpy;
-@@ -45,15 +43,11 @@ XftColor xftcol;
- XftDraw *xftdraw;
- XftFont *xftfont;
- int screen_x, screen_y;
--int ts_fd;
- int samples;
- Pixmap bg_pixmap;
- int flag_debug;
--int rotation = 0;
- int error_base, event_base;
-
--int using_xcalibrate;
--
- int moving;
-
- #define CROSSHAIR_SIZE 25
-@@ -63,7 +57,6 @@ int moving;
- #define ENOUGH 5
- #define MAX_SAMPLES 40
-
--#define RAW_DEVICE "/dev/h3600_tsraw"
- #define FONTNAME "sans-10"
-
- struct point
-@@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b)
- void
- set_calibration (calibration *cal)
- {
-- TS_CAL tc;
-- int xtrans, ytrans, xscale, yscale, xyscale, yxscale;
- calibration ocal = *cal;
-
-- if (using_xcalibrate)
-- {
- FILE *fp;
- if (flag_debug)
- printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
-@@ -304,29 +293,6 @@ set_calibration (calibration *cal)
- }
- fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]);
- fclose (fp);
-- return;
-- }
--
-- xtrans = cal->a[0] / cal->a[6];
-- ytrans = cal->a[3] / cal->a[6];
-- xscale = cal->a[1] * 256 / cal->a[6];
-- yscale = cal->a[5] * 256 / cal->a[6];
-- xyscale = cal->a[2] * 256 / cal->a[6];
-- yxscale = cal->a[4] * 256 / cal->a[6];
--
-- tc.xtrans = xtrans;
-- tc.ytrans = ytrans;
-- tc.xscale = xscale;
-- tc.yscale = yscale;
-- tc.xyswap = 0;
--
-- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
--
-- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_SET_CAL");
-- exit (1);
-- }
- }
-
- void
-@@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press
- }
-
- void
--read_ts (void)
--{
-- TS_EVENT ts_ev;
-- int r;
--
-- r = read (ts_fd, &ts_ev, sizeof (ts_ev));
-- if (r == sizeof (ts_ev))
-- handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure);
--}
--
--void
--do_cal (char **args)
--{
-- TS_CAL tc;
--
-- tc.xscale = atoi (args[0]);
-- tc.xtrans = atoi (args[1]);
-- tc.yscale = atoi (args[2]);
-- tc.ytrans = atoi (args[3]);
-- tc.xyswap = atoi (args[4]);
--
-- if (flag_debug)
-- fprintf (stderr, "setting: %d %d %d %d %d\n",
-- tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap);
--
-- if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_SET_CAL");
-- exit (1);
-- }
--
-- exit (0);
--}
--
--void
--show_cal (void)
--{
-- TS_CAL tc;
--
-- if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0)
-- {
-- perror ("TS_GET_CAL");
-- exit (1);
-- }
--
-- printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap);
--}
--
--void
- usage (const char *name)
- {
-- fprintf (stderr, "usage: %s -view\n", name);
-- fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name);
-- fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name);
--
-+ fprintf (stderr, "usage: %s [-debug]\n", name);
- exit (1);
- }
-
- int
--xrr_supported (void)
--{
-- int xrr_event_base, xrr_error_base;
-- int xrr_major, xrr_minor;
--
-- if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False
-- || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0
-- || xrr_major != 1
-- || xrr_minor < 1)
-- return 0;
--
-- return 1;
--}
--
--int
- main (int argc, char *argv[])
- {
- XSetWindowAttributes attributes;
-@@ -480,31 +379,11 @@ main (int argc, char *argv[])
- int max_fd;
- GC bg_gc;
- int i;
-- int have_xrandr;
-
- for (i = 1; i < argc; i++)
- {
-- if (!strcmp (argv[i], "-view"))
-- {
-- show_cal ();
-- exit (0);
-- }
-- else if (!strcmp (argv[i], "-debug"))
-+ if (!strcmp (argv[i], "-debug"))
- flag_debug = 1;
-- else if (!strcmp (argv[i], "-cal"))
-- {
-- if (argc > (i + 5))
-- do_cal (argv + i + 1);
-- else
-- usage (argv[0]);
-- }
-- else if (!strcmp (argv[i], "-rotate"))
-- {
-- if (argc > (i + 1))
-- rotation = atoi (argv[++i]);
-- else
-- usage (argv[0]);
-- }
- else
- usage (argv[0]);
- }
-@@ -531,48 +410,11 @@ main (int argc, char *argv[])
- fprintf (stderr, "failed to set raw mode: error %d\n", r);
- exit (1);
- }
--
-- using_xcalibrate = 1;
-- }
--
-- have_xrandr = xrr_supported ();
-- if (have_xrandr)
-- {
-- XRRScreenConfiguration *rr_screen;
-- Rotation current_rotation;
--
-- if (flag_debug)
-- fprintf (stderr, "XRANDR is supported\n");
--
-- rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen));
--
-- XRRRotations (dpy, screen, &current_rotation);
--
-- XRRFreeScreenConfigInfo (rr_screen);
--
-- if (flag_debug)
-- fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation);
--
-- switch (current_rotation)
-- {
-- case RR_Rotate_270:
-- rotation += 90;
-- case RR_Rotate_180:
-- rotation += 90;
-- case RR_Rotate_90:
-- rotation += 90;
-- rotation %= 360;
-- case RR_Rotate_0:
-- break;
-- default:
-- fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation);
-- break;
-- }
- }
- else
- {
-- if (flag_debug)
-- fprintf (stderr, "XRANDR not supported\n");
-+ perror ("XCALIBRATE extension missing");
-+ exit (1);
- }
-
- attributes.override_redirect = flag_debug ? False : True;
-@@ -666,45 +508,17 @@ main (int argc, char *argv[])
-
- for (i = 0; i < NR_POINTS; i++)
- {
-- switch (rotation)
-- {
-- case 0:
-- cal.xfb[i] = cal.xscr[i];
-- cal.yfb[i] = cal.yscr[i];
-- break;
-- case 90:
-- cal.xfb[i] = cal.yscr[i];
-- cal.yfb[i] = screen_x - cal.xscr[i];
-- break;
-- case 180:
-- cal.xfb[i] = screen_x - cal.xscr[i];
-- cal.yfb[i] = screen_y - cal.yscr[i];
-- break;
-- case 270:
-- cal.xfb[i] = screen_y - cal.yscr[i];
-- cal.yfb[i] = cal.xscr[i];
-- break;
-- }
-+ cal.xfb[i] = cal.xscr[i];
-+ cal.yfb[i] = cal.yscr[i];
-+ XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]);
-
- if (flag_debug)
-- printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation,
-+ printf ("rotation conversion: (%d,%d) -> (%d,%d)\n",
- cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]);
- }
-
- next_event ();
-
-- if (!using_xcalibrate)
-- {
-- ts_fd = open (RAW_DEVICE, O_RDONLY);
-- if (ts_fd < 0)
-- {
-- perror (RAW_DEVICE);
-- exit (1);
-- }
-- }
--
-- max_fd = (xfd > ts_fd) ? xfd : ts_fd;
--
- for (;;)
- {
- fd_set fds;
-@@ -713,12 +527,8 @@ main (int argc, char *argv[])
-
- FD_ZERO (&fds);
- FD_SET (xfd, &fds);
-- if (ts_fd != -1)
-- FD_SET (ts_fd, &fds);
-
-- select (max_fd + 1, &fds, NULL, NULL, NULL);
--
-- if (ts_fd != -1 && FD_ISSET (ts_fd, &fds))
-- read_ts ();
-+ select (xfd + 1, &fds, NULL, NULL, NULL);
- }
- }
-+
-Index: xtscal-0.6.3/configure.ac
-===================================================================
---- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100
-+++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100
-@@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
- # Checks for programs.
- AC_PROG_CC
-
--PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate)
-+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
-
- AC_CONFIG_FILES([Makefile])
--AC_CONFIG_FILES([xtscal])
- AC_OUTPUT
-Index: xtscal-0.6.3/gpe-dist.am
-===================================================================
---- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,12 +0,0 @@
--CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
--
--dist-upload: dist
-- scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/
--
--tag:
-- cvs tag $(CVSTAG)
--
--retag:
-- cvs tag -F $(CVSTAG)
--
--source: tag dist-upload
-Index: xtscal-0.6.3/h3600_ts.h
-===================================================================
---- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100
-+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
-@@ -1,216 +0,0 @@
--/*
--*
--* Driver for the H3600 Touch Screen and other Atmel controlled devices.
--*
--* Copyright 2000 Compaq Computer Corporation.
--*
--* Use consistent with the GNU GPL is permitted,
--* provided that this copyright notice is
--* preserved in its entirety in all copies and derived works.
--*
--* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED,
--* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS
--* FITNESS FOR ANY PARTICULAR PURPOSE.
--*
--* Author: Charles Flynn.
--*
--*/
--
--
--#ifndef __H3600_TS_H__
--#define __H3600_TS_H__
--
--#include <linux/ioctl.h>
--
--enum h3600_ts_minor_devices {
-- TS_MINOR = 0,
-- TSRAW_MINOR = 1,
-- KEY_MINOR = 2
--};
--
--typedef struct h3600_ts_calibration {
-- int xscale;
-- int xtrans;
-- int yscale;
-- int ytrans;
-- int xyswap;
--} TS_CAL;
--
--typedef struct h3600_ts_event {
-- unsigned short pressure;
-- unsigned short x;
-- unsigned short y;
-- unsigned short pad;
--} TS_EVENT;
--
--/* Deprecated - do not use */
--typedef struct h3600_ts_return {
-- unsigned short pressure;
-- unsigned short x;
-- unsigned short y;
-- unsigned short pad;
--} TS_RET;
--
--enum power_button_mode {
-- PBM_SUSPEND = 0,
-- PBM_GENERATE_KEYPRESS = 1
--};
--
--
--/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */
--
--typedef struct therm_dev {
-- short data;
--} THERM_DEV;
--
--#define H3600_BATT_CHEM_ALKALINE 0x01
--#define H3600_BATT_CHEM_NICD 0x02
--#define H3600_BATT_CHEM_NIMH 0x03
--#define H3600_BATT_CHEM_LION 0x04
--#define H3600_BATT_CHEM_LIPOLY 0x05
--#define H3600_BATT_CHEM_NOT_INSTALLED 0x06
--#define H3600_BATT_CHEM_UNKNOWN 0xff
--
--/* These should match the apm_bios.h definitions */
--#define H3600_AC_STATUS_AC_OFFLINE 0x00
--#define H3600_AC_STATUS_AC_ONLINE 0x01
--#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */
--#define H3600_AC_STATUS_AC_UNKNOWN 0xff
--
--/* These bitfields are rarely "or'd" together */
--#define H3600_BATT_STATUS_HIGH 0x01
--#define H3600_BATT_STATUS_LOW 0x02
--#define H3600_BATT_STATUS_CRITICAL 0x04
--#define H3600_BATT_STATUS_CHARGING 0x08
--#define H3600_BATT_STATUS_CHARGE_MAIN 0x10
--#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */
--#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */
--#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */
--#define H3600_BATT_STATUS_NOBATT 0x80
--#define H3600_BATT_STATUS_UNKNOWN 0xff
--
--struct battery_data {
-- unsigned char chemistry;
-- unsigned char status;
-- unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */
-- unsigned short percentage; /* Percentage of full charge */
-- unsigned short life; /* Life remaining in minutes */
--};
--
--struct h3600_battery {
-- unsigned char ac_status;
-- unsigned char battery_count; /* How many batteries we have */
-- struct battery_data battery[2];
--};
--
--/* -------- EEPROM and SPI Interfaces ---------------*/
--
--#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */
--#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/
--#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */
--#define SPI_WR_BUFSIZ 7
--
--/* The EEPROM is where internal programs are stored on the Amtel.
-- You probably don't want to read or write these values */
--
--typedef struct h3600_eeprom_read_request {
-- unsigned char addr; /* 8bit Address Offset 0-255 */
-- unsigned char len; /* Number of 16bit words to read 0-128 */
-- unsigned short buff[EEPROM_RD_BUFSIZ];
--} EEPROM_READ;
--
--typedef struct h3600_eeprom_write_request {
-- unsigned char len; /* used only to compute the number of bytes to send */
-- unsigned char addr; /* 0-128 */
-- unsigned short buff[EEPROM_WR_BUFSIZ];
--} EEPROM_WRITE;
--
--/* The SPI bus connects to EEPROMs located on sleeves plugged into
-- the iPAQ. You may want to read these values */
--
--typedef struct h3600_spi_read_request {
-- unsigned short addr; /* 16bit Address Offset 0-128 */
-- unsigned char len; /* Number of bytes to read */
-- unsigned char buff[SPI_RD_BUFSIZ];
--} SPI_READ;
--
--#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */
--
--typedef struct h3600_spi_write_request {
-- unsigned short len; /* used only to compute the number of bytes to send */
-- unsigned short addr; /* this 16bit address accesses a single byte */
-- unsigned char buff[SPI_WR_BUFSIZ];
--} SPI_WRITE;
--
--
--/* -------- end of EEPROM and SPI Interfaces ---------------*/
--
--/* User space structures for IOCTL calls */
--
--typedef struct h3600_ts_version {
-- unsigned char host_version[8]; /* ascii "x.yy" */
-- unsigned char pack_version[8]; /* ascii "x.yy" */
-- unsigned char boot_type; /* TODO ?? */
--} VER_RET;
--
--typedef struct h3600_ts_led {
-- unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */
-- unsigned char TotalTime; /* Units of 5 seconds */
-- unsigned char OnTime; /* units of 100m/s */
-- unsigned char OffTime; /* units of 100m/s */
--} LED_IN;
--
--enum flite_mode {
-- FLITE_MODE1 = 1,
-- FLITE_AUTO_MODE = 1, /* for reference only */
-- FLITE_MANUAL_MODE = 2, /* Use this normally? */
-- FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */
--};
--enum flite_pwr {
-- FLITE_PWR_OFF = 0,
-- FLITE_PWR_ON = 1
--};
--
--typedef struct h3600_ts_flite {
-- unsigned char mode;
-- unsigned char pwr;
-- unsigned char brightness;
--} FLITE_IN;
--
--/*************************** Updated "universal" structures *******************/
--
--/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */
--struct h3600_ts_backlight {
-- enum flite_pwr power; /* 0 = off, 1 = on */
-- unsigned char brightness; /* 0 - 255 */
--};
--
--struct h3600_ts_contrast { /* Only useful on H3100 model */
-- unsigned char contrast; /* 0 - 255 */
--};
--
--/* IOCTL cmds user or kernel space */
--
--/* Use 'f' as magic number */
--#define IOC_H3600_TS_MAGIC 'f'
--
--/* TODO: Some of these IOWR values are just plain wrong */
--#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version )
--#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request)
--#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request)
--#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev)
--#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led)
--#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery)
--#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite)
--#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request)
--#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request)
--#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration)
--#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration)
--
--/* New IOCTL interfaces - defined to be more user friendly */
--#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
--#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight)
--#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
--#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast)
--
--#endif
-Index: xtscal-0.6.3/Makefile.am
-===================================================================
---- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100
-+++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100
-@@ -1,11 +1,8 @@
--libexec_PROGRAMS = xtscal.bin
--bin_SCRIPTS = xtscal
-+bin_PROGRAMS = xtscal
-
--xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h
-+xtscal_SOURCES = main.c calibrate.c calibrate.h
-
--xtscal_bin_LDADD = @XTSCAL_LIBS@
-+xtscal_LDADD = @XTSCAL_LIBS@
-
- INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5
-
--include gpe-dist.am
--
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
deleted file mode 100644
index 3e4533f78..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-after gcc linking has changed, all the libraries must be explicitely specified
-This patch avoids this linking error:
-
-| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M
-| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M
-| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M
-| collect2: ld returned 1 exit status^M
-| make: *** [xtscal] Error 1
-
-Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2011/01/11
-
-Upstream-Status: Pending
-
-Index: xtscal-0.6.3/configure.ac
-===================================================================
---- xtscal-0.6.3.orig/configure.ac
-+++ xtscal-0.6.3/configure.ac
-@@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2])
- # Checks for programs.
- AC_PROG_CC
-
--PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate)
-+PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender)
-
- AC_CONFIG_FILES([Makefile])
- AC_OUTPUT
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb b/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb
deleted file mode 100644
index 4bfddf06b..000000000
--- a/import-layers/yocto-poky/meta/recipes-graphics/xtscal/xtscal_0.6.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Touchscreen calibration utility"
-
-DESCRIPTION = "Basic touchscreen calibration utility"
-
-HOMEPAGE = "http://gpe.linuxtogo.org"
-BUGTRACKER = "http://bugs.linuxtogo.org"
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87"
-
-SECTION = "x11/base"
-
-DEPENDS = "virtual/libx11 libxft libxcalibrate"
-
-PR = "r13"
-
-SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \
- file://change-cross.patch \
- file://cleanup.patch \
- file://dso_linking_change_build_fix.patch \
- file://30xTs_Calibrate.sh"
-
-SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34"
-SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1"
-
-inherit autotools pkgconfig distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/X11/Xsession.d/
- install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/cryptodev.inc b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/cryptodev.inc
index ade7ef9ce..160ab3084 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/cryptodev.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/cryptodev.inc
@@ -3,7 +3,9 @@ HOMEPAGE = "http://cryptodev-linux.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "http://download.gna.org/cryptodev-linux/cryptodev-linux-${PV}.tar.gz"
+SRC_URI = "http://download.gna.org/cryptodev-linux/cryptodev-linux-${PV}.tar.gz \
+ file://06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch \
+ file://cb186f682679383e8b5806240927903730ce85d9.patch"
SRC_URI[md5sum] = "02644cc4cd02301e0b503a332eb2f0b5"
SRC_URI[sha256sum] = "67fabde9fb67b286a96c4f45b594b0eccd0f761b495705c18f2ae9461b831376"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch
new file mode 100644
index 000000000..cb556e1e2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/06d6b560c6e45dc317dae47c74706fa43f4a31d8.patch
@@ -0,0 +1,54 @@
+From f14b4706b0d04988e7e5bc8c4d2aefef9f029d9d Mon Sep 17 00:00:00 2001
+From: Michael Weiser <michael.weiser@gmx.de>
+Date: Fri, 5 Aug 2016 18:43:55 +0200
+Subject: [PATCH] Adjust to recent user page API changes
+
+4.6.0 basically renamed get_user_pages() to get_user_pages_remote() and
+introduced a new get_user_pages() that always works on the current
+task.[1] Distinguish the two APIs based on kernel version we're
+compiling for.
+
+Also, there seems to have been a massive cleansing of
+page_cache_release(page) in favour of put_page(page)[2] which was an
+alias for put_page(page)[3] since 2.6.0. Before that beginning with
+2.4.0 both page_cache_release(page) and put_page(page) have been aliases
+for __free_page(page). So using put_page() instead of
+page_cache_release(page) will produce identical code for anything after
+2.4.0.
+
+[1] https://lkml.org/lkml/2016/2/10/555
+[2] https://www.spinics.net/lists/linux-fsdevel/msg95923.html
+[3] https://www.spinics.net/lists/linux-fsdevel/msg95922.html
+---
+ zc.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+Upstream-Status: Backport [from master for 4.8 kernels]
+
+Index: cryptodev-linux-1.8/zc.c
+===================================================================
+--- cryptodev-linux-1.8.orig/zc.c
++++ cryptodev-linux-1.8/zc.c
+@@ -59,7 +59,12 @@ int __get_userbuf(uint8_t __user *addr,
+ }
+
+ down_read(&mm->mmap_sem);
+- ret = get_user_pages(task, mm,
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0))
++ ret = get_user_pages_remote(
++#else
++ ret = get_user_pages(
++#endif
++ task, mm,
+ (unsigned long)addr, pgcount, write, 0, pg, NULL);
+ up_read(&mm->mmap_sem);
+ if (ret != pgcount)
+@@ -119,7 +124,7 @@ void release_user_pages(struct csession
+ else
+ ses->readonly_pages--;
+
+- page_cache_release(ses->pages[i]);
++ put_page(ses->pages[i]);
+ }
+ ses->used_pages = 0;
+ }
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch
new file mode 100644
index 000000000..eb0eab63b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/cryptodev/files/cb186f682679383e8b5806240927903730ce85d9.patch
@@ -0,0 +1,279 @@
+From cb186f682679383e8b5806240927903730ce85d9 Mon Sep 17 00:00:00 2001
+From: Michael Weiser <michael.weiser@gmx.de>
+Date: Fri, 5 Aug 2016 17:26:27 +0200
+Subject: [PATCH] Support skcipher in addition to ablkcipher API
+
+The ablkcipher API is being phased out[1]. The unified skcipher API
+seems to have made its entry with 4.3.[3, 4] By what can be seen from
+migration patches[1.ff.], it's a drop-in replacement.
+
+Also, deallocators such as crypto_free_skcipher() are NULL-safe now[2].
+
+Add a new header cipherapi.h to aid migration from ablkcipher to skcipher and
+retain support for old kernels. Make it decide which API to use and provide
+appropriate function calls and type definitions. Since the ablkcipher and
+skcipher APIs are so similar, those are mainly defines for corresponding
+pseudo-functions in namespace cryptodev_ derived directly from their API
+counterparts.
+
+Compiles and works (i.e. checks pass) with Debian testing 4.6.4 kernel
+as well as 4.8-rc2+ Linus git tree as of today. (Both require a fix for
+changed page access API[5].)
+
+[1] https://www.spinics.net/lists/linux-crypto/msg18133.html
+[2] https://www.spinics.net/lists/linux-crypto/msg18154.html, line 120
+[3] https://www.spinics.net/lists/linux-crypto/msg16373.html
+[4] https://www.spinics.net/lists/linux-crypto/msg16294.html
+[5] https://github.com/cryptodev-linux/cryptodev-linux/pull/14
+---
+ cipherapi.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ cryptlib.c | 40 ++++++++++++++++++----------------------
+ cryptlib.h | 6 ++++--
+ ioctl.c | 4 ++--
+ 4 files changed, 84 insertions(+), 26 deletions(-)
+ create mode 100644 cipherapi.h
+
+Upstream-Status: Backport [from master for 4.8 kernels]
+
+Index: cryptodev-linux-1.8/cipherapi.h
+===================================================================
+--- /dev/null
++++ cryptodev-linux-1.8/cipherapi.h
+@@ -0,0 +1,60 @@
++#ifndef CIPHERAPI_H
++# define CIPHERAPI_H
++
++#include <linux/version.h>
++
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0))
++# include <linux/crypto.h>
++
++typedef struct ablkcipher_alg cryptodev_blkcipher_alg_t;
++typedef struct crypto_ablkcipher cryptodev_crypto_blkcipher_t;
++typedef struct ablkcipher_request cryptodev_blkcipher_request_t;
++
++# define cryptodev_crypto_alloc_blkcipher crypto_alloc_ablkcipher
++# define cryptodev_crypto_blkcipher_alg crypto_ablkcipher_alg
++# define cryptodev_crypto_blkcipher_blocksize crypto_ablkcipher_blocksize
++# define cryptodev_crypto_blkcipher_ivsize crypto_ablkcipher_ivsize
++# define cryptodev_crypto_blkcipher_alignmask crypto_ablkcipher_alignmask
++# define cryptodev_crypto_blkcipher_setkey crypto_ablkcipher_setkey
++
++static inline void cryptodev_crypto_free_blkcipher(cryptodev_crypto_blkcipher_t *c) {
++ if (c)
++ crypto_free_ablkcipher(c);
++}
++
++# define cryptodev_blkcipher_request_alloc ablkcipher_request_alloc
++# define cryptodev_blkcipher_request_set_callback ablkcipher_request_set_callback
++
++static inline void cryptodev_blkcipher_request_free(cryptodev_blkcipher_request_t *r) {
++ if (r)
++ ablkcipher_request_free(r);
++}
++
++# define cryptodev_blkcipher_request_set_crypt ablkcipher_request_set_crypt
++# define cryptodev_crypto_blkcipher_encrypt crypto_ablkcipher_encrypt
++# define cryptodev_crypto_blkcipher_decrypt crypto_ablkcipher_decrypt
++# define cryptodev_crypto_blkcipher_tfm crypto_ablkcipher_tfm
++#else
++#include <crypto/skcipher.h>
++
++typedef struct skcipher_alg cryptodev_blkcipher_alg_t;
++typedef struct crypto_skcipher cryptodev_crypto_blkcipher_t;
++typedef struct skcipher_request cryptodev_blkcipher_request_t;
++
++# define cryptodev_crypto_alloc_blkcipher crypto_alloc_skcipher
++# define cryptodev_crypto_blkcipher_alg crypto_skcipher_alg
++# define cryptodev_crypto_blkcipher_blocksize crypto_skcipher_blocksize
++# define cryptodev_crypto_blkcipher_ivsize crypto_skcipher_ivsize
++# define cryptodev_crypto_blkcipher_alignmask crypto_skcipher_alignmask
++# define cryptodev_crypto_blkcipher_setkey crypto_skcipher_setkey
++# define cryptodev_crypto_free_blkcipher crypto_free_skcipher
++# define cryptodev_blkcipher_request_alloc skcipher_request_alloc
++# define cryptodev_blkcipher_request_set_callback skcipher_request_set_callback
++# define cryptodev_blkcipher_request_free skcipher_request_free
++# define cryptodev_blkcipher_request_set_crypt skcipher_request_set_crypt
++# define cryptodev_crypto_blkcipher_encrypt crypto_skcipher_encrypt
++# define cryptodev_crypto_blkcipher_decrypt crypto_skcipher_decrypt
++# define cryptodev_crypto_blkcipher_tfm crypto_skcipher_tfm
++#endif
++
++#endif
+Index: cryptodev-linux-1.8/cryptlib.c
+===================================================================
+--- cryptodev-linux-1.8.orig/cryptlib.c
++++ cryptodev-linux-1.8/cryptlib.c
+@@ -23,7 +23,6 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+-#include <linux/crypto.h>
+ #include <linux/mm.h>
+ #include <linux/highmem.h>
+ #include <linux/ioctl.h>
+@@ -37,6 +36,7 @@
+ #include <linux/rtnetlink.h>
+ #include <crypto/authenc.h>
+ #include "cryptodev_int.h"
++#include "cipherapi.h"
+
+
+ struct cryptodev_result {
+@@ -133,15 +133,15 @@ int cryptodev_cipher_init(struct cipher_
+ int ret;
+
+ if (aead == 0) {
+- struct ablkcipher_alg *alg;
++ cryptodev_blkcipher_alg_t *alg;
+
+- out->async.s = crypto_alloc_ablkcipher(alg_name, 0, 0);
++ out->async.s = cryptodev_crypto_alloc_blkcipher(alg_name, 0, 0);
+ if (unlikely(IS_ERR(out->async.s))) {
+ ddebug(1, "Failed to load cipher %s", alg_name);
+ return -EINVAL;
+ }
+
+- alg = crypto_ablkcipher_alg(out->async.s);
++ alg = cryptodev_crypto_blkcipher_alg(out->async.s);
+ if (alg != NULL) {
+ /* Was correct key length supplied? */
+ if (alg->max_keysize > 0 &&
+@@ -154,11 +154,11 @@ int cryptodev_cipher_init(struct cipher_
+ }
+ }
+
+- out->blocksize = crypto_ablkcipher_blocksize(out->async.s);
+- out->ivsize = crypto_ablkcipher_ivsize(out->async.s);
+- out->alignmask = crypto_ablkcipher_alignmask(out->async.s);
++ out->blocksize = cryptodev_crypto_blkcipher_blocksize(out->async.s);
++ out->ivsize = cryptodev_crypto_blkcipher_ivsize(out->async.s);
++ out->alignmask = cryptodev_crypto_blkcipher_alignmask(out->async.s);
+
+- ret = crypto_ablkcipher_setkey(out->async.s, keyp, keylen);
++ ret = cryptodev_crypto_blkcipher_setkey(out->async.s, keyp, keylen);
+ } else {
+ out->async.as = crypto_alloc_aead(alg_name, 0, 0);
+ if (unlikely(IS_ERR(out->async.as))) {
+@@ -191,14 +191,14 @@ int cryptodev_cipher_init(struct cipher_
+ init_completion(&out->async.result->completion);
+
+ if (aead == 0) {
+- out->async.request = ablkcipher_request_alloc(out->async.s, GFP_KERNEL);
++ out->async.request = cryptodev_blkcipher_request_alloc(out->async.s, GFP_KERNEL);
+ if (unlikely(!out->async.request)) {
+ derr(1, "error allocating async crypto request");
+ ret = -ENOMEM;
+ goto error;
+ }
+
+- ablkcipher_request_set_callback(out->async.request,
++ cryptodev_blkcipher_request_set_callback(out->async.request,
+ CRYPTO_TFM_REQ_MAY_BACKLOG,
+ cryptodev_complete, out->async.result);
+ } else {
+@@ -218,10 +218,8 @@ int cryptodev_cipher_init(struct cipher_
+ return 0;
+ error:
+ if (aead == 0) {
+- if (out->async.request)
+- ablkcipher_request_free(out->async.request);
+- if (out->async.s)
+- crypto_free_ablkcipher(out->async.s);
++ cryptodev_blkcipher_request_free(out->async.request);
++ cryptodev_crypto_free_blkcipher(out->async.s);
+ } else {
+ if (out->async.arequest)
+ aead_request_free(out->async.arequest);
+@@ -237,10 +235,8 @@ void cryptodev_cipher_deinit(struct ciph
+ {
+ if (cdata->init) {
+ if (cdata->aead == 0) {
+- if (cdata->async.request)
+- ablkcipher_request_free(cdata->async.request);
+- if (cdata->async.s)
+- crypto_free_ablkcipher(cdata->async.s);
++ cryptodev_blkcipher_request_free(cdata->async.request);
++ cryptodev_crypto_free_blkcipher(cdata->async.s);
+ } else {
+ if (cdata->async.arequest)
+ aead_request_free(cdata->async.arequest);
+@@ -289,10 +285,10 @@ ssize_t cryptodev_cipher_encrypt(struct
+ reinit_completion(&cdata->async.result->completion);
+
+ if (cdata->aead == 0) {
+- ablkcipher_request_set_crypt(cdata->async.request,
++ cryptodev_blkcipher_request_set_crypt(cdata->async.request,
+ (struct scatterlist *)src, dst,
+ len, cdata->async.iv);
+- ret = crypto_ablkcipher_encrypt(cdata->async.request);
++ ret = cryptodev_crypto_blkcipher_encrypt(cdata->async.request);
+ } else {
+ aead_request_set_crypt(cdata->async.arequest,
+ (struct scatterlist *)src, dst,
+@@ -311,10 +307,10 @@ ssize_t cryptodev_cipher_decrypt(struct
+
+ reinit_completion(&cdata->async.result->completion);
+ if (cdata->aead == 0) {
+- ablkcipher_request_set_crypt(cdata->async.request,
++ cryptodev_blkcipher_request_set_crypt(cdata->async.request,
+ (struct scatterlist *)src, dst,
+ len, cdata->async.iv);
+- ret = crypto_ablkcipher_decrypt(cdata->async.request);
++ ret = cryptodev_crypto_blkcipher_decrypt(cdata->async.request);
+ } else {
+ aead_request_set_crypt(cdata->async.arequest,
+ (struct scatterlist *)src, dst,
+Index: cryptodev-linux-1.8/cryptlib.h
+===================================================================
+--- cryptodev-linux-1.8.orig/cryptlib.h
++++ cryptodev-linux-1.8/cryptlib.h
+@@ -3,6 +3,8 @@
+
+ #include <linux/version.h>
+
++#include "cipherapi.h"
++
+ struct cipher_data {
+ int init; /* 0 uninitialized */
+ int blocksize;
+@@ -12,8 +14,8 @@ struct cipher_data {
+ int alignmask;
+ struct {
+ /* block ciphers */
+- struct crypto_ablkcipher *s;
+- struct ablkcipher_request *request;
++ cryptodev_crypto_blkcipher_t *s;
++ cryptodev_blkcipher_request_t *request;
+
+ /* AEAD ciphers */
+ struct crypto_aead *as;
+Index: cryptodev-linux-1.8/ioctl.c
+===================================================================
+--- cryptodev-linux-1.8.orig/ioctl.c
++++ cryptodev-linux-1.8/ioctl.c
+@@ -34,7 +34,6 @@
+ */
+
+ #include <crypto/hash.h>
+-#include <linux/crypto.h>
+ #include <linux/mm.h>
+ #include <linux/highmem.h>
+ #include <linux/ioctl.h>
+@@ -53,6 +52,7 @@
+ #include "cryptodev_int.h"
+ #include "zc.h"
+ #include "version.h"
++#include "cipherapi.h"
+
+ MODULE_AUTHOR("Nikos Mavrogiannopoulos <nmav@gnutls.org>");
+ MODULE_DESCRIPTION("CryptoDev driver");
+@@ -765,7 +765,7 @@ static int get_session_info(struct fcryp
+
+ if (ses_ptr->cdata.init) {
+ if (ses_ptr->cdata.aead == 0)
+- tfm = crypto_ablkcipher_tfm(ses_ptr->cdata.async.s);
++ tfm = cryptodev_crypto_blkcipher_tfm(ses_ptr->cdata.async.s);
+ else
+ tfm = crypto_aead_tfm(ses_ptr->cdata.async.as);
+ tfm_info_to_alg_info(&siop->cipher_info, tfm);
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index 445d03a87..d8041ddd3 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -1,10 +1,10 @@
SUMMARY = "Tools for managing Yocto Project style branched kernels"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=d8d1d729a70cd5f52972f8884b80743d"
+LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=a6c2fa8aef1bda400e2828845ba0d06c"
DEPENDS = "git-native"
-SRCREV = "17d89d1861b532bbf1a81c1f024953e440db8de7"
+SRCREV = "9a3995ee8daabf37e92e1b51b133cf8582d85809"
PR = "r12"
PV = "0.2+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools.inc b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools.inc
index 758a3a78b..bdfe024a7 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools.inc
@@ -22,6 +22,10 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|fre
INSANE_SKIP_${PN} = "arch"
do_compile_prepend() {
+ # Remove the prepackaged config.h from the source tree as it overrides
+ # the same file generated by configure and placed in the build tree
+ rm -f ${S}/include/config.h
+
# Remove the '*.d' file to make sure the recompile is OK
for dep in `find ${B} -type f -name '*.d'`; do
dep_no_d="`echo $dep | sed 's#.d$##'`"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump
index 3fb133fb3..2347205ed 100755
--- a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump
@@ -8,23 +8,7 @@
#
#default
-KDUMP_KVER="`uname -r`"
-KDUMP_KIMAGE="/boot/bzImage-${KDUMP_KVER}"
-KDUMP_CMDLINE="`cat /proc/cmdline`"
-KDUMP_CMDLINE_APPEND="kdump_needed maxcpus=1 irqpoll reset_devices"
-KDUMP_VMCORE_PATH="/var/crash/`date +"%Y-%m-%d"`"
-
-#get right kernel image
-march="`uname -m`"
-case ${march} in
- x86*|i?86)
- ;;
- *)
- KDUMP_KIMAGE="/boot/uImage-${KDUMP_KVER}"
- ;;
-esac
-
-KEXEC=usr/sbin/kexec
+KEXEC=/usr/sbin/kexec
KEXEC_ARGS="-p"
MAKEDUMPFILE=/usr/bin/makedumpfile
@@ -34,6 +18,9 @@ LOGGER="logger -p info -t kdump"
if [ -f /etc/sysconfig/kdump.conf ]; then
. /etc/sysconfig/kdump.conf
+else
+ echo "no /etc/sysconfig/kdump.conf"
+ exit 1;
fi
do_check()
@@ -41,24 +28,33 @@ do_check()
#check makedumpfile
if [ ! -e ${MAKEDUMPFILE} -o ! -x ${MAKEDUMPFILE} ] ;then
echo "No makedumpfile found."
- return 1;
+ exit 0
fi
#check kexec
if [ ! -e ${KEXEC} -o ! -x ${KEXEC} ] ;then
echo "No kexec found."
- return 1;
+ exit 0
fi
#check whether kdump kernel image exists on the system
- if [ ! -f ${KDUMP_KIMAGE} ]; then
+ if [ -z "${KDUMP_KIMAGE}" -o ! -f "${KDUMP_KIMAGE}" ]; then
echo "No kdump kernel image found."
- return 1
+ exit 0
+ fi
+
+ if [ "${KDUMP_CMDLINE}"x = "x" ] ; then
+ echo "KDUMP_CMDLINE is not configured"
+ exit 0
fi
}
do_save_vmcore()
{
+ if [ ${KDUMP_VMCORE_PATH}x = x ]; then
+ KDUMP_VMCORE_PATH="/var/crash/`date +"%Y-%m-%d"`"
+ fi
+
mkdir -p ${KDUMP_VMCORE_PATH}
echo "Saving a vmcore to ${KDUMP_VMCORE_PATH}."
@@ -101,20 +97,6 @@ do_start()
return 1
fi
- #handle kdump cmdline parameters, remove some useless options
- kcmdline=""
- for x in `cat /proc/cmdline`; do
- case $x in
- crashkernel*)
- ;;
- *)
- kcmdline="${kcmdline} $x"
- ;;
- esac
- done
-
- KDUMP_CMDLINE="${kcmdline} ${KDUMP_CMDLINE_APPEND}"
-
#Load the kdump kernel image
${KEXEC} ${KEXEC_ARGS} "${KDUMP_KIMAGE}" --append="${KDUMP_CMDLINE}"
if [ $? != 0 ]; then
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump.conf b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump.conf
index 42a2435b9..38190d207 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump.conf
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kdump.conf
@@ -1,13 +1,9 @@
#the kdump kernel version string.
#KDUMP_KVER="`uname -r`"
-#this will be passed to the kdump kernel as kdump kernel command line, it
-#usually comes from /proc/cmdline
+#this will be passed to the kdump kernel as kdump kernel command line
#KDUMP_CMDLINE="`cat /proc/cmdline`"
-# append arguments to the kdump commandline
-#KDUMP_CMDLINE_APPEND="kdump_needed maxcpus=1 irqpoll reset_devices"
-
#the kernel image for kdump
#KDUMP_KIMAGE="/boot/bzImage-${KDUMP_KVER}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kexec-tools-Refine-kdump-device_tree-sort.patch b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kexec-tools-Refine-kdump-device_tree-sort.patch
deleted file mode 100644
index e198eb6e9..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools/kexec-tools-Refine-kdump-device_tree-sort.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-kexec-tools: Refine kdump device_tree sort
-
-The commit b02d735bf was to rearrange the device-tree entries, and
-assumed that these entries are sorted in the ascending order. but
-acctually when I was validating kexec and kdump, the order of
-serial node still is changed. So the patch is to sort these entries
-by the directory name in ascending order.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yang Wei <Wei.Yang@windriver.com>
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- kexec/arch/ppc/fs2dt.c | 13 ++++++++++---
- kexec/fs2dt.c | 13 ++++++++++---
- 2 files changed, 20 insertions(+), 6 deletions(-)
-
-Index: kexec-tools-2.0.10/kexec/arch/ppc/fs2dt.c
-===================================================================
---- kexec-tools-2.0.10.orig/kexec/arch/ppc/fs2dt.c
-+++ kexec-tools-2.0.10/kexec/arch/ppc/fs2dt.c
-@@ -296,6 +296,9 @@ static int comparefunc(const void *dentr
- {
- char *str1 = (*(struct dirent **)dentry1)->d_name;
- char *str2 = (*(struct dirent **)dentry2)->d_name;
-+ char* ptr1 = strchr(str1, '@');
-+ char* ptr2 = strchr(str2, '@');
-+ int len1, len2;
-
- /*
- * strcmp scans from left to right and fails to idetify for some
-@@ -303,9 +306,13 @@ static int comparefunc(const void *dentr
- * Therefore, we get the wrong sorted order like memory@10000000 and
- * memory@f000000.
- */
-- if (strchr(str1, '@') && strchr(str2, '@') &&
-- (strlen(str1) > strlen(str2)))
-- return 1;
-+ if (ptr1 && ptr2) {
-+ len1 = ptr1 - str1;
-+ len2 = ptr2 - str2;
-+ if (!strncmp(str1, str2, len1 >len2 ? len1: len2) &&
-+ (strlen(str1) > strlen(str2)))
-+ return 1;
-+ }
-
- return strcmp(str1, str2);
- }
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.11.bb b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.11.bb
deleted file mode 100644
index c1c97af9e..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.11.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-require kexec-tools.inc
-export LDFLAGS = "-L${STAGING_LIBDIR}"
-EXTRA_OECONF = " --with-zlib=yes"
-
-SRC_URI += "file://kexec-tools-Refine-kdump-device_tree-sort.patch \
- file://kexec-aarch64.patch \
- file://kexec-x32.patch \
- file://0002-powerpc-change-the-memory-size-limit.patch \
- file://0001-purgatory-Pass-r-directly-to-linker.patch \
- file://0001-vmcore-dmesg-Define-_GNU_SOURCE.patch \
- "
-
-SRC_URI[md5sum] = "86de066859f289048f1b286af6f03f78"
-SRC_URI[sha256sum] = "84f652ebf1de3f7b9de757a50cdbf6d5639d88c1d5b5ef9f525edde5ef9590c2"
-
-PACKAGES =+ "kexec kdump vmcore-dmesg"
-
-ALLOW_EMPTY_${PN} = "1"
-RRECOMMENDS_${PN} = "kexec kdump vmcore-dmesg"
-
-FILES_kexec = "${sbindir}/kexec"
-FILES_kdump = "${sbindir}/kdump ${sysconfdir}/init.d/kdump \
- ${sysconfdir}/sysconfig/kdump.conf"
-FILES_vmcore-dmesg = "${sbindir}/vmcore-dmesg"
-
-inherit update-rc.d
-
-INITSCRIPT_PACKAGES = "kdump"
-INITSCRIPT_NAME_kdump = "kdump"
-INITSCRIPT_PARAMS_kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ."
-
-do_install_append () {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
- install -d ${D}${sysconfdir}/sysconfig
- install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
-}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb
new file mode 100644
index 000000000..59376c804
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kexec/kexec-tools_2.0.12.bb
@@ -0,0 +1,37 @@
+require kexec-tools.inc
+export LDFLAGS = "-L${STAGING_LIBDIR}"
+EXTRA_OECONF = " --with-zlib=yes"
+
+SRC_URI += " \
+ file://kexec-aarch64.patch \
+ file://kexec-x32.patch \
+ file://0002-powerpc-change-the-memory-size-limit.patch \
+ file://0001-purgatory-Pass-r-directly-to-linker.patch \
+ file://0001-vmcore-dmesg-Define-_GNU_SOURCE.patch \
+ "
+
+SRC_URI[md5sum] = "10ddaae0e86af54407b164a1f5a39cc3"
+SRC_URI[sha256sum] = "cc7b60dad0da202004048a6179d8a53606943062dd627a2edba45a8ea3a85135"
+
+PACKAGES =+ "kexec kdump vmcore-dmesg"
+
+ALLOW_EMPTY_${PN} = "1"
+RRECOMMENDS_${PN} = "kexec kdump vmcore-dmesg"
+
+FILES_kexec = "${sbindir}/kexec"
+FILES_kdump = "${sbindir}/kdump ${sysconfdir}/init.d/kdump \
+ ${sysconfdir}/sysconfig/kdump.conf"
+FILES_vmcore-dmesg = "${sbindir}/vmcore-dmesg"
+
+inherit update-rc.d
+
+INITSCRIPT_PACKAGES = "kdump"
+INITSCRIPT_NAME_kdump = "kdump"
+INITSCRIPT_PARAMS_kdump = "start 56 2 3 4 5 . stop 56 0 1 6 ."
+
+do_install_append () {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/kdump ${D}${sysconfdir}/init.d/kdump
+ install -d ${D}${sysconfdir}/sysconfig
+ install -m 0644 ${WORKDIR}/kdump.conf ${D}${sysconfdir}/sysconfig
+}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb b/import-layers/yocto-poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
index c2c258910..5c7dd52f5 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb
@@ -41,10 +41,6 @@ EOF
chmod +x ${D}${bindir_crossscripts}/depmodwrapper
}
-SYSROOT_PREPROCESS_FUNCS += "depmodwrapper_sysroot_preprocess"
-
-depmodwrapper_sysroot_preprocess () {
- sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts}
-}
+SYSROOT_DIRS += "${bindir_crossscripts}"
inherit nopackages
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/kmod/kmod.inc b/import-layers/yocto-poky/meta/recipes-kernel/kmod/kmod.inc
index 0bcdcf673..166b3f02f 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/kmod/kmod.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/kmod/kmod.inc
@@ -9,16 +9,14 @@ LICENSE = "GPL-2.0+ & LGPL-2.1+"
LICENSE_libkmod = "LGPL-2.1+"
SECTION = "base"
-DEPENDS += "pkgconfig-native"
-
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://libkmod/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
"
-inherit autotools gtk-doc
+inherit autotools gtk-doc pkgconfig
-SRCREV = "42f32b8ae45ad8e3a1da29c9b20af9b5e2e9e676"
+SRCREV = "65a885df5f6f15222b44fd695c5eaca17e837a14"
# Lookout for PV bump too when SRCREV is changed
-PV = "22+git${SRCPV}"
+PV = "23+git${SRCPV}"
SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
file://depmod-search.conf \
@@ -35,7 +33,7 @@ PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
do_configure_prepend () {
- gtkdocize --docdir ${S}/libkmod/docs || touch ${S}/libkmod/docs/gtk-doc.make
+ gtkdocize --docdir ${S}/libkmod/docs --srcdir ${S}
}
do_configure_append () {
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/libpfm/files/fix-misleading-indentation-error.patch b/import-layers/yocto-poky/meta/recipes-kernel/libpfm/files/fix-misleading-indentation-error.patch
new file mode 100644
index 000000000..25d47ef12
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/libpfm/files/fix-misleading-indentation-error.patch
@@ -0,0 +1,38 @@
+Upstream-Status: Pending
+
+Fix compile error:
+
+| syst_count.c:346:3: error: this 'for' clause does not guard... [-Werror=misleading-indentation]
+| for(c=cmin ; c < cmax; c++)
+| ^~~
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/perf_examples/syst_count.c b/perf_examples/syst_count.c
+index 0d53078..2dfb9b9 100644
+--- a/perf_examples/syst_count.c
++++ b/perf_examples/syst_count.c
+@@ -343,8 +343,9 @@ measure(void)
+
+ for (delay = 1 ; delay <= options.delay; delay++) {
+
+- for(c=cmin ; c < cmax; c++)
+- start_cpu(c);
++ for(c=cmin ; c < cmax; c++) {
++ start_cpu(c);
++ }
+
+ if (0) {
+ tv.tv_sec = 0;
+@@ -353,8 +354,9 @@ measure(void)
+ } else
+ sleep(1);
+
+- for(c=cmin ; c < cmax; c++)
+- stop_cpu(c);
++ for(c=cmin ; c < cmax; c++) {
++ stop_cpu(c);
++ }
+
+ for(c = cmin; c < cmax; c++) {
+ printf("# %'ds -----\n", delay);
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/libpfm/libpfm4_4.6.0.bb b/import-layers/yocto-poky/meta/recipes-kernel/libpfm/libpfm4_4.6.0.bb
index 0b024ad61..4136eac81 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/libpfm/libpfm4_4.6.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/libpfm/libpfm4_4.6.0.bb
@@ -14,6 +14,7 @@ COMPATIBLE_HOST = "powerpc64"
SRC_URI = "http://downloads.sourceforge.net/project/perfmon2/${BPN}/libpfm-${PV}.tar.gz \
file://0001-Makefile-Add-LDFLAGS-variable-to-SLDFLAGS.patch \
+ file://fix-misleading-indentation-error.patch \
"
SRC_URI[md5sum] = "5077b9022440e4951d96f2d0e73bd487"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
index a4e64d549..8e68ae823 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-firmware/linux-firmware_git.bb
@@ -55,13 +55,14 @@ LICENSE = "\
& Firmware-xc4000 \
& Firmware-xc5000 \
& Firmware-xc5000c \
+ & WHENCE \
"
LIC_FILES_CHKSUM = "\
file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
- file://LICENSE.amdgpu;md5=a8592c24c2672062e03c7392fc7fe3bc \
+ file://LICENSE.amdgpu;md5=3fe8a3430700a518990c3b3d75297209 \
file://LICENSE.amd-ucode;md5=3a0de451253cc1edbf30a3c621effee3 \
file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \
@@ -97,7 +98,7 @@ LIC_FILES_CHKSUM = "\
file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \
file://LICENSE.QualcommAtheros_ath10k;md5=b5fe244fb2b532311de1472a3bc06da5 \
file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \
- file://LICENSE.radeon;md5=6c7f97c6c62bdd9596d0238bb205118c \
+ file://LICENSE.radeon;md5=69612f4f7b141a97659cb1d609a1bde2 \
file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \
file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \
file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \
@@ -111,6 +112,7 @@ LIC_FILES_CHKSUM = "\
file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
+ file://WHENCE;md5=f514a0c53c5d73c2fe98d5861103f0c6 \
"
# These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -168,13 +170,20 @@ NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251"
NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000"
NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000"
NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c"
+NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
-SRCREV = "5f8ca0c1db6106a2d6d7e85eee778917ff03c3de"
+SRCREV = "42ad5367dd38371b2a1bb263b6efa85f9b92fc93"
PE = "1"
PV = "0.0+git${SRCPV}"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
+# Some devices need a specific version, not the latest
+SRC_URI += "https://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git/plain/iwlwifi-8000C-19.ucode;name=iwlwifi-19"
+
+SRC_URI[iwlwifi-19.md5sum] = "132fbaee36beec5e98714f0bd66f7a1d"
+SRC_URI[iwlwifi-19.sha256sum] = "2034470df64d323b827c4f2d4d0d55be2846b7360179b5574aa28ff77b6c9471"
+
S = "${WORKDIR}/git"
inherit allarch update-alternatives
@@ -204,6 +213,9 @@ do_install() {
# fixup wl12xx location, after 2.6.37 the kernel searches a different location for it
( cd ${D}/lib/firmware ; ln -sf ti-connectivity/* . )
+
+ # Copy the iwlwifi ucode
+ cp ${WORKDIR}/iwlwifi-8000C-19.ucode ${D}/lib/firmware/
}
@@ -213,11 +225,12 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-ti-connectivity-license ${PN}-wl12xx ${PN}-wl18xx \
${PN}-vt6656-license ${PN}-vt6656 \
${PN}-rtl-license ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su \
- ${PN}-broadcom-license ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334 ${PN}-bcm43340 ${PN}-bcm4339 ${PN}-bcm4354 \
- ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \
+ ${PN}-broadcom-license ${PN}-bcm4329 ${PN}-bcm4330 ${PN}-bcm4334 ${PN}-bcm43340 ${PN}-bcm4339 ${PN}-bcm43430 ${PN}-bcm4354 \
+ ${PN}-atheros-license ${PN}-ar9170 ${PN}-carl9170 ${PN}-ath6k ${PN}-ath9k \
${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k \
\
- ${PN}-iwlwifi-license ${PN}-iwlwifi-135-6 \
+ ${PN}-iwlwifi-license ${PN}-iwlwifi \
+ ${PN}-iwlwifi-135-6 \
${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \
${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \
${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \
@@ -225,8 +238,11 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
${PN}-iwlwifi-7260 \
${PN}-iwlwifi-7265 \
${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
+ ${PN}-iwlwifi-misc \
${PN}-i915-license ${PN}-i915 \
${PN}-adsp-sst-license ${PN}-adsp-sst \
+ ${PN}-bnx2-mips \
+ ${PN}-whence-license \
${PN}-license \
"
@@ -234,11 +250,15 @@ PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \
LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware"
LICENSE_${PN}-ath6k = "Firmware-atheros_firmware"
LICENSE_${PN}-ath9k = "Firmware-atheros_firmware"
+LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware"
FILES_${PN}-atheros-license = "/lib/firmware/LICENCE.atheros_firmware"
FILES_${PN}-ar9170 = " \
/lib/firmware/ar9170*.fw \
"
+FILES_${PN}-carl9170 = " \
+ /lib/firmware/carl9170*.fw \
+"
FILES_${PN}-ath6k = " \
/lib/firmware/ath6k \
"
@@ -250,12 +270,15 @@ FILES_${PN}-ath9k = " \
"
RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license"
+RDEPENDS_${PN}-carl9170 += "${PN}-atheros-license"
RDEPENDS_${PN}-ath6k += "${PN}-atheros-license"
RDEPENDS_${PN}-ath9k += "${PN}-atheros-license"
# For QualCommAthos
LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k"
+LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k"
LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k"
+LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k"
FILES_${PN}-ar3k-license = "/lib/firmware/LICENSE.QualcommAtheros_ar3k"
FILES_${PN}-ar3k = " \
@@ -272,6 +295,7 @@ RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license"
# For ralink
LICENSE_${PN}-ralink = "Firmware-ralink-firmware"
+LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware"
FILES_${PN}-ralink-license = "/lib/firmware/LICENCE.ralink-firmware.txt"
FILES_${PN}-ralink = " \
@@ -282,6 +306,7 @@ RDEPENDS_${PN}-ralink += "${PN}-ralink-license"
# For radeon
LICENSE_${PN}-radeon = "Firmware-radeon"
+LICENSE_${PN}-radeon-license = "Firmware-radeon"
FILES_${PN}-radeon-license = "/lib/firmware/LICENSE.radeon"
FILES_${PN}-radeon = " \
@@ -295,6 +320,7 @@ LICENSE_${PN}-sd8686 = "Firmware-Marvell"
LICENSE_${PN}-sd8688 = "Firmware-Marvell"
LICENSE_${PN}-sd8787 = "Firmware-Marvell"
LICENSE_${PN}-sd8797 = "Firmware-Marvell"
+LICENSE_${PN}-marvell-license = "Firmware-Marvell"
FILES_${PN}-marvell-license = "/lib/firmware/LICENCE.Marvell"
FILES_${PN}-sd8686 = " \
@@ -321,6 +347,7 @@ RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license"
LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware"
LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware"
LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware"
+LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware"
FILES_${PN}-rtl-license = " \
/lib/firmware/LICENCE.rtlwifi_firmware.txt \
@@ -342,6 +369,7 @@ RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license"
# For ti-connectivity
LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity"
LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity"
+LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity"
FILES_${PN}-ti-connectivity-license = "/lib/firmware/LICENCE.ti-connectivity"
FILES_${PN}-wl12xx = " \
@@ -360,6 +388,7 @@ RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license"
# For vt6656
LICENSE_${PN}-vt6656 = "Firmware-via_vt6656"
+LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656"
FILES_${PN}-vt6656-license = "/lib/firmware/LICENCE.via_vt6656"
FILES_${PN}-vt6656 = " \
@@ -379,7 +408,9 @@ LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx"
LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx"
LICENSE_${PN}-bcm43340 = "Firmware-broadcom_bcm43xx"
LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx"
+LICENSE_${PN}-bcm43430 = "Firmware-broadcom_bcm43xx"
LICENSE_${PN}-bcm4354 = "Firmware-broadcom_bcm43xx"
+LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx"
FILES_${PN}-broadcom-license = " \
/lib/firmware/LICENCE.broadcom_bcm43xx \
@@ -399,6 +430,9 @@ FILES_${PN}-bcm43340 = " \
FILES_${PN}-bcm4339 = " \
/lib/firmware/brcm/brcmfmac4339-sdio.bin \
"
+FILES_${PN}-bcm43430 = " \
+ /lib/firmware/brcm/brcmfmac43430-sdio.bin \
+"
FILES_${PN}-bcm4354 = " \
/lib/firmware/brcm/brcmfmac4354-sdio.bin \
"
@@ -417,15 +451,33 @@ ALTERNATIVE_linux-firmware-bcm4330 = "brcmfmac-sdio.bin"
ALTERNATIVE_TARGET_linux-firmware-bcm4330[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4330-sdio.bin"
ALTERNATIVE_linux-firmware-bcm4339 = "brcmfmac-sdio.bin"
ALTERNATIVE_TARGET_linux-firmware-bcm4339[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac4339-sdio.bin"
+ALTERNATIVE_PRIORITY_linux-firmware-bcm4339[brcmfmac-sdio.bin] = "20"
+ALTERNATIVE_linux-firmware-bcm43430 = "brcmfmac-sdio.bin"
+ALTERNATIVE_TARGET_linux-firmware-bcm43430[brcmfmac-sdio.bin] = "/lib/firmware/brcm/brcmfmac43430-sdio.bin"
RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license"
RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license"
RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license"
RDEPENDS_${PN}-bcm43340 += "${PN}-broadcom-license"
RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license"
+RDEPENDS_${PN}-bcm43430 += "${PN}-broadcom-license"
RDEPENDS_${PN}-bcm4354 += "${PN}-broadcom-license"
+# For Broadcom bnx2-mips
+#
+# which is a separate case to the other Broadcom firmwares since its
+# license is contained in the shared WHENCE file.
+
+LICENSE_${PN}-bnx2-mips = "WHENCE"
+LICENSE_${PN}-whence-license = "WHENCE"
+
+FILES_${PN}-bnx2-mips = "/lib/firmware/bnx2/bnx2-mips-09-6.2.1b.fw"
+FILES_${PN}-whence-license = "/lib/firmware/WHENCE"
+
+RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license"
+
# For iwlwifi
+LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware"
@@ -433,7 +485,7 @@ LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware"
-LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware"
+LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware"
@@ -442,6 +494,8 @@ LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware"
+LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware"
+LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware"
FILES_${PN}-iwlwifi-license = "/lib/firmware/LICENCE.iwlwifi_firmware"
@@ -461,6 +515,7 @@ FILES_${PN}-iwlwifi-7265 = "/lib/firmware/iwlwifi-7265-*.ucode"
FILES_${PN}-iwlwifi-7265d = "/lib/firmware/iwlwifi-7265D-*.ucode"
FILES_${PN}-iwlwifi-8000c = "/lib/firmware/iwlwifi-8000C-*.ucode"
FILES_${PN}-iwlwifi-8265 = "/lib/firmware/iwlwifi-8265-*.ucode"
+FILES_${PN}-iwlwifi-misc = "/lib/firmware/iwlwifi-*.ucode"
RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license"
@@ -469,7 +524,7 @@ RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license"
-RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license"
+RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license"
@@ -478,6 +533,15 @@ RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license"
RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license"
+RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license"
+
+# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
+# firmwares that are not already included in other -iwlwifi- packages.
+# -iwlwifi is a virtual package that depends upon all iwlwifi packages.
+# These are distinct in order to allow the -misc firmwares to be installed
+# without pulling in every other iwlwifi package.
+ALLOW_EMPTY_${PN}-iwlwifi = "1"
+ALLOW_EMPTY_${PN}-iwlwifi-misc = "1"
# Handle package updating for the newly merged iwlwifi groupings
RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9"
@@ -489,12 +553,14 @@ RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-
RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9"
LICENSE_${PN}-i915 = "Firmware-i915"
+LICENSE_${PN}-i915-license = "Firmware-i915"
FILES_${PN}-i915-license = "/lib/firmware/LICENSE.i915"
FILES_${PN}-i915 = "/lib/firmware/i915"
RDEPENDS_${PN}-i915 = "${PN}-i915-license"
FILES_${PN}-adsp-sst-license = "/lib/firmware/LICENCE.adsp_sst"
LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst"
+LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst"
FILES_${PN}-adsp-sst = "/lib/firmware/intel/dsp_fw*"
RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license"
@@ -534,6 +600,7 @@ LICENSE_${PN} = "\
& Firmware-r8a779x_usb3 \
& Firmware-radeon \
& Firmware-ralink_a_mediatek_company_firmware \
+ & Firmware-ralink-firmware \
& Firmware-siano \
& Firmware-tda7706-firmware \
& Firmware-ti-connectivity \
@@ -543,14 +610,20 @@ LICENSE_${PN} = "\
& Firmware-xc4000 \
& Firmware-xc5000 \
& Firmware-xc5000c \
+ & WHENCE \
"
FILES_${PN}-license += "/lib/firmware/LICEN*"
FILES_${PN} += "/lib/firmware/*"
RDEPENDS_${PN} += "${PN}-license"
+RDEPENDS_${PN} += "${PN}-whence-license"
# Make linux-firmware depend on all of the split-out packages.
+# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages.
python populate_packages_prepend () {
firmware_pkgs = oe.utils.packages_filter_out_system(d)
d.appendVar('RDEPENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs))
+
+ iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs)
+ d.appendVar('RDEPENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs))
}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index 2ba6ed51d..078d752ca 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -18,9 +18,10 @@ LICENSE = "GPLv2"
# But you have some kernel headers you need for some driver? That is fine
# but get them from STAGING_KERNEL_DIR where the kernel installs itself.
# This will make the package using them machine specific but this is much
-# better than having a machine specific C library. This does mean your
-# recipe needs a DEPENDS += "virtual/kernel" but again, that is fine and
-# makes total sense.
+# better than having a machine specific C library. This does mean your
+# recipe needs a
+# do_configure[depends] += "virtual/kernel:do_shared_workdir"
+# but again, that is fine and makes total sense.
#
# There can also be a case where your kernel extremely old and you want
# an older libc ABI for that old kernel. The headers installed by this
@@ -49,8 +50,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/linux-${PV}.tar
S = "${WORKDIR}/linux-${PV}"
-# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE.
-EXTRA_OEMAKE = ""
+EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}""
do_configure() {
oe_runmake allnoconfig
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch
index 6ad479863..8bb775ccf 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch
@@ -11,10 +11,10 @@ Upstream-Status: Submitted
include/uapi/linux/libc-compat.h | 25 ++++++++-----------------
1 file changed, 8 insertions(+), 17 deletions(-)
-Index: linux-4.4/include/uapi/linux/libc-compat.h
+Index: linux-4.8-rc4/include/uapi/linux/libc-compat.h
===================================================================
---- linux-4.4.orig/include/uapi/linux/libc-compat.h
-+++ linux-4.4/include/uapi/linux/libc-compat.h
+--- linux-4.8-rc4.orig/include/uapi/linux/libc-compat.h
++++ linux-4.8-rc4/include/uapi/linux/libc-compat.h
@@ -48,13 +48,12 @@
#ifndef _UAPI_LIBC_COMPAT_H
#define _UAPI_LIBC_COMPAT_H
@@ -23,16 +23,17 @@ Index: linux-4.4/include/uapi/linux/libc-compat.h
-#if defined(__GLIBC__)
+#ifndef __KERNEL__ /* we're used from userspace */
--/* Coordinate with glibc netinet/in.h header. */
-+/* Coordinate with libc netinet/in.h header. */
- #if defined(_NETINET_IN_H)
+-/* Coordinate with glibc net/if.h header. */
+-#if defined(_NET_IF_H) && defined(__USE_MISC)
++/* Coordinate with libc net/if.h header. */
++#if defined(_NET_IF_H)
-/* GLIBC headers included first so don't define anything
+/* LIBC headers included first so don't define anything
* that would already be defined. */
- #define __UAPI_DEF_IN_ADDR 0
- #define __UAPI_DEF_IN_IPPROTO 0
-@@ -64,15 +63,7 @@
+
+ #define __UAPI_DEF_IF_IFCONF 0
+@@ -98,15 +97,7 @@
#define __UAPI_DEF_IN_CLASS 0
#define __UAPI_DEF_IN6_ADDR 0
@@ -48,7 +49,7 @@ Index: linux-4.4/include/uapi/linux/libc-compat.h
#define __UAPI_DEF_SOCKADDR_IN6 0
#define __UAPI_DEF_IPV6_MREQ 0
#define __UAPI_DEF_IPPROTO_V6 0
-@@ -80,10 +71,10 @@
+@@ -114,10 +105,10 @@
#define __UAPI_DEF_IN6_PKTINFO 0
#define __UAPI_DEF_IP6_MTUINFO 0
@@ -61,7 +62,7 @@ Index: linux-4.4/include/uapi/linux/libc-compat.h
* __UAPI_DEF_* defines and adjust appropriately. */
#define __UAPI_DEF_IN_ADDR 1
#define __UAPI_DEF_IN_IPPROTO 1
-@@ -93,7 +84,7 @@
+@@ -127,7 +118,7 @@
#define __UAPI_DEF_IN_CLASS 1
#define __UAPI_DEF_IN6_ADDR 1
@@ -70,16 +71,16 @@ Index: linux-4.4/include/uapi/linux/libc-compat.h
* coordinate. */
#define __UAPI_DEF_IN6_ADDR_ALT 1
#define __UAPI_DEF_SOCKADDR_IN6 1
-@@ -115,7 +106,7 @@
+@@ -149,7 +140,7 @@
/* If we did not see any headers from any supported C libraries,
* or we are being included in the kernel, then define everything
* that we need. */
-#else /* !defined(__GLIBC__) */
+#else /* __KERNEL__ */
- /* Definitions for in.h */
- #define __UAPI_DEF_IN_ADDR 1
-@@ -138,6 +129,6 @@
+ /* Definitions for if.h */
+ #define __UAPI_DEF_IF_IFCONF 1
+@@ -182,6 +173,6 @@
/* Definitions for xattr.h */
#define __UAPI_DEF_XATTR 1
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch
index c61709374..8dc1edc33 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch
@@ -11,10 +11,10 @@ Upstream-Status: Submitted
include/uapi/linux/libc-compat.h | 6 ++++++
2 files changed, 9 insertions(+), 1 deletion(-)
-diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h
-index aa63ed0..e94da57 100644
---- a/include/uapi/linux/if_ether.h
-+++ b/include/uapi/linux/if_ether.h
+Index: linux-4.8-rc4/include/uapi/linux/if_ether.h
+===================================================================
+--- linux-4.8-rc4.orig/include/uapi/linux/if_ether.h
++++ linux-4.8-rc4/include/uapi/linux/if_ether.h
@@ -22,6 +22,7 @@
#define _UAPI_LINUX_IF_ETHER_H
@@ -23,7 +23,7 @@ index aa63ed0..e94da57 100644
/*
* IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
-@@ -134,11 +135,12 @@
+@@ -138,11 +139,12 @@
* This is an Ethernet frame header.
*/
@@ -37,10 +37,10 @@ index aa63ed0..e94da57 100644
+#endif
#endif /* _UAPI_LINUX_IF_ETHER_H */
-diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
-index afe15c2..7d0c78a 100644
---- a/include/uapi/linux/libc-compat.h
-+++ b/include/uapi/linux/libc-compat.h
+Index: linux-4.8-rc4/include/uapi/linux/libc-compat.h
+===================================================================
+--- linux-4.8-rc4.orig/include/uapi/linux/libc-compat.h
++++ linux-4.8-rc4/include/uapi/linux/libc-compat.h
@@ -50,6 +50,12 @@
#ifndef __KERNEL__ /* we're used from userspace */
@@ -51,9 +51,6 @@ index afe15c2..7d0c78a 100644
+#define __UAPI_DEF_ETHHDR 1
+#endif
+
- /* Coordinate with libc netinet/in.h header. */
- #if defined(_NETINET_IN_H)
+ /* Coordinate with libc net/if.h header. */
+ #if defined(_NET_IF_H) && defined(__USE_MISC)
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
index 6d9e8d864..b5c4e1750 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
@@ -13,10 +13,10 @@ Upstream-Status: Submitted
include/uapi/linux/kernel.h | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
-index 321e399..e8ff821 100644
---- a/include/uapi/linux/kernel.h
-+++ b/include/uapi/linux/kernel.h
+Index: linux-4.8-rc4/include/uapi/linux/kernel.h
+===================================================================
+--- linux-4.8-rc4.orig/include/uapi/linux/kernel.h
++++ linux-4.8-rc4/include/uapi/linux/kernel.h
@@ -1,7 +1,9 @@
#ifndef _UAPI_LINUX_KERNEL_H
#define _UAPI_LINUX_KERNEL_H
@@ -27,6 +27,3 @@ index 321e399..e8ff821 100644
/*
* 'kernel.h' contains some often-used function prototypes etc
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb
new file mode 100644
index 000000000..77e0870d3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb
@@ -0,0 +1,12 @@
+require linux-libc-headers.inc
+
+PV = "4.8"
+
+SRC_URI_append_libc-musl = "\
+ file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
+ file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \
+ file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
+ "
+
+SRC_URI[md5sum] = "c1af0afbd3df35c1ccdc7a5118cd2d07"
+SRC_URI[sha256sum] = "3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index 196c8c7a2..0fdd0ad5f 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -28,9 +28,6 @@ do_configure[noexec] = "1"
do_compile[noexec] = "1"
do_populate_sysroot[noexec] = "1"
-# Define where the kernel headers are installed on the target as well as where
-# they are staged.
-KERNEL_SRC_PATH = "/usr/src/kernel"
S = "${STAGING_KERNEL_DIR}"
B = "${STAGING_KERNEL_BUILDDIR}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dtb.inc b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dtb.inc
index 74f5ef8ca..8528d646d 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dtb.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dtb.inc
@@ -33,12 +33,13 @@ do_compile_append() {
do_install_append() {
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
- DTB_BASE_NAME=`basename ${DTB} .dtb`
+ DTB_EXT=${DTB##*.}
+ DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
- install -m 0644 ${DTB_PATH} ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.dtb
+ install -m 0644 ${DTB_PATH} ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT}
done
done
}
@@ -46,7 +47,8 @@ do_install_append() {
do_deploy_append() {
for DTB in ${KERNEL_DEVICETREE}; do
DTB=`normalize_dtb "${DTB}"`
- DTB_BASE_NAME=`basename ${DTB} .dtb`
+ DTB_EXT=${DTB##*.}
+ DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
base_name=${type}"-"${KERNEL_IMAGE_BASE_NAME}
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
@@ -54,8 +56,8 @@ do_deploy_append() {
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
install -d ${DEPLOYDIR}
- install -m 0644 ${DTB_PATH} ${DEPLOYDIR}/${DTB_NAME}.dtb
- ln -sf ${DTB_NAME}.dtb ${DEPLOYDIR}/${DTB_SYMLINK_NAME}.dtb
+ install -m 0644 ${DTB_PATH} ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}
+ ln -sf ${DTB_NAME}.${DTB_EXT} ${DEPLOYDIR}/${DTB_SYMLINK_NAME}.${DTB_EXT}
done
done
}
@@ -65,9 +67,10 @@ pkg_postinst_kernel-devicetree () {
for DTB in ${KERNEL_DEVICETREE}; do
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
+ DTB_EXT=${DTB##*.}
DTB_BASE_NAME=`basename ${DTB} | awk -F "." '{print $1}'`
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
- update-alternatives --install /${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.dtb ${DTB_BASE_NAME}.dtb /boot/devicetree-${DTB_SYMLINK_NAME}.dtb ${KERNEL_PRIORITY} || true
+ update-alternatives --install /${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT} ${DTB_BASE_NAME}.${DTB_EXT} /boot/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
done
done
}
@@ -77,9 +80,10 @@ pkg_postrm_kernel-devicetree () {
for DTB in ${KERNEL_DEVICETREE}; do
for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
symlink_name=${type}"-"${KERNEL_IMAGE_SYMLINK_NAME}
+ DTB_EXT=${DTB##*.}
DTB_BASE_NAME=`basename ${DTB} | awk -F "." '{print $1}'`
DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
- update-alternatives --remove ${DTB_BASE_NAME}.dtb /boot/devicetree-${DTB_SYMLINK_NAME}.dtb ${KERNEL_PRIORITY} || true
+ update-alternatives --remove ${DTB_BASE_NAME}.${DTB_EXT} /boot/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
done
done
}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dummy.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dummy.bb
index cc0e4e64a..994ac7459 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dummy.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-dummy.bb
@@ -18,6 +18,8 @@ FILES_kernel-modules = ""
ALLOW_EMPTY_kernel-modules = "1"
DESCRIPTION_kernel-modules = "Kernel modules meta package"
+INHIBIT_DEFAULT_DEPS = "1"
+
#COMPATIBLE_MACHINE = "your_machine"
PR = "r1"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 308526345..9154bb7c3 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -14,14 +14,6 @@ require recipes-kernel/linux/linux-yocto.inc
# provide this .inc to set specific revisions
include recipes-kernel/linux/linux-yocto-dev-revisions.inc
-# Skip processing of this recipe if it is not explicitly specified as the
-# PREFERRED_PROVIDER for virtual/kernel. This avoids network access required
-# by the use of AUTOREV SRCREVs, which are the default for this recipe.
-python () {
- if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-dev":
- raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-dev to enable it")
-}
-
KBRANCH = "standard/base"
KMETA = "kernel-meta"
@@ -36,12 +28,14 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name
SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
-LINUX_VERSION ?= "4.6-rc+"
+LINUX_VERSION ?= "4.8-rc+"
LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
PV = "${LINUX_VERSION}+git${SRCPV}"
COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)"
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+
# Functionality flags
KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb
index a13895727..b95fb5857 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb
@@ -2,13 +2,22 @@ KBRANCH ?= "standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
-SRCREV_machine ?= "28d8cfdbcb18a6eef202099cca66430fd3b6eae0"
-SRCREV_meta ?= "a4f88c3fad887e1c559d03ae1b531ca267137b69"
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "966ddde490030166010c5770f8f86cdd0e961c76"
+SRCREV_meta ?= "3c3197e65b6f2f5514853c1fe78ae8ffc131b02c"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.1.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.1;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.1.18"
+LINUX_VERSION ?= "4.1.33"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb
index d81ca1387..6c1138277 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb
@@ -1,14 +1,23 @@
-KBRANCH ?= "standard/preempt-rt"
+KBRANCH ?= "standard/preempt-rt/base"
require recipes-kernel/linux/linux-yocto.inc
-SRCREV_machine ?= "2bc112a6ccd16800a4c45e47ccb3018a1042abdf"
-SRCREV_meta ?= "bcc65090840f51a6ac937297be5c22fe268d01ab"
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "652b564985db555b549ef73405aea6c38919eefc"
+SRCREV_meta ?= "3030330b066a33ce21164a8b30d0503cf9f68e5b"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.4.3"
+LINUX_VERSION ?= "4.4.26"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb
new file mode 100644
index 000000000..e51c9cdcc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb
@@ -0,0 +1,38 @@
+KBRANCH ?= "standard/preempt-rt/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "4057556c041f6aac0d29aa3425587d414c9a0090"
+SRCREV_meta ?= "83110d94edeb856a3667b62903ed4ae91c24117d"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.8.git;branch=${KBRANCH};name=machine \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.8;destsuffix=${KMETA}"
+
+LINUX_VERSION ?= "4.8.3"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuppc|qemumips)"
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb
index 28c72132a..ba01702cb 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb
@@ -4,13 +4,13 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "4.1.18"
+LINUX_VERSION ?= "4.1.33"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_meta ?= "a4f88c3fad887e1c559d03ae1b531ca267137b69"
+SRCREV_machine ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_meta ?= "3c3197e65b6f2f5514853c1fe78ae8ffc131b02c"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb
index 684e88098..76c41639c 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb
@@ -4,13 +4,13 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
-LINUX_VERSION ?= "4.4.3"
+LINUX_VERSION ?= "4.4.26"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
-SRCREV_machine ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_meta ?= "bcc65090840f51a6ac937297be5c22fe268d01ab"
+SRCREV_machine ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_meta ?= "3030330b066a33ce21164a8b30d0503cf9f68e5b"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb
new file mode 100644
index 000000000..c8ddbd93d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb
@@ -0,0 +1,25 @@
+KBRANCH ?= "standard/tiny/common-pc"
+LINUX_KERNEL_TYPE = "tiny"
+KCONFIG_MODE = "--allnoconfig"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+LINUX_VERSION ?= "4.8.3"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+SRCREV_machine ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_meta ?= "83110d94edeb856a3667b62903ed4ae91c24117d"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.8.git;branch=${KBRANCH};name=machine \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.8;destsuffix=${KMETA}"
+
+COMPATIBLE_MACHINE = "(qemux86$)"
+
+# Functionality flags
+KERNEL_FEATURES = ""
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto.inc b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto.inc
index 6b161fc06..09cd1f178 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto.inc
@@ -8,6 +8,15 @@ UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+(\.\d+)*)"
INC_PR = "r4"
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids network access required
+# by the use of AUTOREV SRCREVs, which are the default for this recipe.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != d.getVar("PN", True):
+ d.delVar("BB_DONT_CACHE")
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to %s to enable it" % (d.getVar("PN", True)))
+}
+
DEPENDS += "xz-native bc-native"
DEPENDS_append_aarch64 = " libgcc"
KERNEL_CC_append_aarch64 = " ${TOOLCHAIN_OPTIONS}"
@@ -17,6 +26,8 @@ DEPENDS_append_nios2 = " libgcc"
KERNEL_CC_append_nios2 = " ${TOOLCHAIN_OPTIONS}"
KERNEL_LD_append_nios2 = " ${TOOLCHAIN_OPTIONS}"
+KERNEL_FEATURES_append_qemuall=" features/debug/printk.scc"
+
# A KMACHINE is the mapping of a yocto $MACHINE to what is built
# by the kernel. This is typically the branch that should be built,
# and it can be specific to the machine or shared
@@ -35,6 +46,7 @@ SRCREV_FORMAT ?= "meta_machine"
# 2: report options that are not hardware related, but set by a BSP
KCONF_AUDIT_LEVEL ?= "1"
KCONF_BSP_AUDIT_LEVEL ?= "0"
+KMETA_AUDIT ?= "yes"
LINUX_VERSION_EXTENSION ?= "-yocto-${LINUX_KERNEL_TYPE}"
@@ -52,6 +64,7 @@ do_install_append(){
}
# extra tasks
-addtask kernel_link_vmlinux after do_compile before do_install
+addtask kernel_version_sanity_check after do_kernel_metadata do_kernel_checkout before do_compile
+addtask kernel_link_images after do_compile before do_strip
addtask validate_branches before do_patch after do_kernel_checkout
addtask kernel_configcheck after do_configure before do_compile
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.1.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.1.bb
index aecb517ed..788a8eaaa 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.1.bb
@@ -11,20 +11,20 @@ KBRANCH_qemux86 ?= "standard/base"
KBRANCH_qemux86-64 ?= "standard/base"
KBRANCH_qemumips64 ?= "standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "232e2d88841c7e20857350275d80f5585ed93734"
-SRCREV_machine_qemuarm64 ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_machine_qemumips ?= "7d3690c0762f11e038f14310a50ca1cdc813cc22"
-SRCREV_machine_qemuppc ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_machine_qemux86 ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_machine_qemux86-64 ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_machine_qemumips64 ?= "b71e4cd7d45f03048ad31e2a36dfe5a43f021b51"
-SRCREV_machine ?= "91f62d4a0a31919d9b2ccdaf881130f99b61fc5e"
-SRCREV_meta ?= "a4f88c3fad887e1c559d03ae1b531ca267137b69"
+SRCREV_machine_qemuarm ?= "d67ef485ce1420df11bda2d9f6fb78ef50c1adff"
+SRCREV_machine_qemuarm64 ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_qemumips ?= "65116339cfd210990c9c4710cdfec3ebd59abb0e"
+SRCREV_machine_qemuppc ?= "30816907653b57f1f3d5f9a7a2f6339bab14a680"
+SRCREV_machine_qemux86 ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_qemux86-64 ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_machine_qemumips64 ?= "f7a0b532b6ac81757d85b0c9a928f45a87c9e364"
+SRCREV_machine ?= "f4d0900b2851e829e990e0f64b09ed3b8e355fae"
+SRCREV_meta ?= "3c3197e65b6f2f5514853c1fe78ae8ffc131b02c"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.1.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.1;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.1.18"
+LINUX_VERSION ?= "4.1.33"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.4.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.4.bb
index 3c5ee1bd4..e3a3d901d 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.4.bb
@@ -11,20 +11,20 @@ KBRANCH_qemux86 ?= "standard/base"
KBRANCH_qemux86-64 ?= "standard/base"
KBRANCH_qemumips64 ?= "standard/mti-malta64"
-SRCREV_machine_qemuarm ?= "ec9167bcb0ccd4897177c5e235af68b5890aa326"
-SRCREV_machine_qemuarm64 ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_machine_qemumips ?= "900f98d3ab6498bc7f4ff6b7a489db3bca4e6417"
-SRCREV_machine_qemuppc ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_machine_qemux86 ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_machine_qemux86-64 ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_machine_qemumips64 ?= "4b08dfb1fb3bc7659e8f3e13665597d9a9f0816d"
-SRCREV_machine ?= "1a72cec834de2c80b5563f8afbeea7664fd5ee05"
-SRCREV_meta ?= "bcc65090840f51a6ac937297be5c22fe268d01ab"
+SRCREV_machine_qemuarm ?= "187bcc13f3023c3ae0a3ba5c69ae85c4e5e693ac"
+SRCREV_machine_qemuarm64 ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_qemumips ?= "2f273556495dd2871f08c73fc3f40d1ad546c638"
+SRCREV_machine_qemuppc ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_qemux86 ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_qemux86-64 ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_machine_qemumips64 ?= "0a19cacf5738876666a4b530a9fa14f05b355299"
+SRCREV_machine ?= "ca6a08bd7f86ebef11f763d26f787f7d65270473"
+SRCREV_meta ?= "3030330b066a33ce21164a8b30d0503cf9f68e5b"
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
-LINUX_VERSION ?= "4.4.3"
+LINUX_VERSION ?= "4.4.26"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.8.bb b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.8.bb
new file mode 100644
index 000000000..13778b9c4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/linux/linux-yocto_4.8.bb
@@ -0,0 +1,44 @@
+KBRANCH ?= "standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# board specific branches
+KBRANCH_qemuarm ?= "standard/arm-versatile-926ejs"
+KBRANCH_qemuarm64 ?= "standard/qemuarm64"
+KBRANCH_qemumips ?= "standard/mti-malta32"
+KBRANCH_qemuppc ?= "standard/qemuppc"
+KBRANCH_qemux86 ?= "standard/base"
+KBRANCH_qemux86-64 ?= "standard/base"
+KBRANCH_qemumips64 ?= "standard/mti-malta64"
+
+SRCREV_machine_qemuarm ?= "4cc544ad09ad704322cb66fe4ba197a6a05dc71f"
+SRCREV_machine_qemuarm64 ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_qemumips ?= "c285969d4f9376a671167ecf397578c8ad3e6a75"
+SRCREV_machine_qemuppc ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_qemux86 ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_qemux86-64 ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_machine_qemumips64 ?= "64f96ba530e58456070f26b0f3fcce3f64988b72"
+SRCREV_machine ?= "1adf9d36338dc3c63cdbf6f98bcbdc7bba42a794"
+SRCREV_meta ?= "83110d94edeb856a3667b62903ed4ae91c24117d"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.8.git;name=machine;branch=${KBRANCH}; \
+ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.8;destsuffix=${KMETA}"
+
+LINUX_VERSION ?= "4.8.3"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-Fix-invalid-pointer-free-with-trace-collection.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-Fix-invalid-pointer-free-with-trace-collection.patch
deleted file mode 100644
index 3e2c4e1e6..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-Fix-invalid-pointer-free-with-trace-collection.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From e4cad900994cf286d971796a947fea782dfc6651 Mon Sep 17 00:00:00 2001
-From: Francis Giraldeau <francis.giraldeau@gmail.com>
-Date: Mon, 15 Jun 2015 11:43:02 -0400
-Subject: [PATCH] Fix invalid pointer free with trace collection
-
-Upstream-Status: Submitted
-
-Patch proposed by Li RongQing related to bug# 790
-
-Signed-off-by: Mikael Beckius <mikael.beckius@windriver.com>
-Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
----
- lib/context.c | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/lib/context.c b/lib/context.c
-index 45aab34..8d3770f 100644
---- a/lib/context.c
-+++ b/lib/context.c
-@@ -79,7 +79,7 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path,
- struct bt_trace_descriptor *td;
- struct bt_format *fmt;
- struct bt_trace_handle *handle;
-- int ret, closeret;
-+ int ret;
-
- if (!ctx || !format_name || (!path && !stream_list))
- return -EINVAL;
-@@ -159,10 +159,8 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path,
- return handle->id;
-
- error:
-- closeret = fmt->close_trace(td);
-- if (closeret) {
-- fprintf(stderr, "Error in close_trace callback\n");
-- }
-+ if (handle)
-+ bt_context_remove_trace(ctx, handle->id);
- end:
- return ret;
- }
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-lttng-live-Include-sys-param.h-for-MAXNAMLEN-definti.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-lttng-live-Include-sys-param.h-for-MAXNAMLEN-definti.patch
deleted file mode 100644
index eb16cd1d2..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace/0001-lttng-live-Include-sys-param.h-for-MAXNAMLEN-definti.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8331b87845cafdda40e59a682f2ca8120ed0c472 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 08:17:40 +0000
-Subject: [PATCH] lttng-live: Include sys/param.h for MAXNAMLEN defintion
-
-exposed on musl based systems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: pending
-
- formats/lttng-live/lttng-live.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/formats/lttng-live/lttng-live.h b/formats/lttng-live/lttng-live.h
-index 4ab641d..808ed2b 100644
---- a/formats/lttng-live/lttng-live.h
-+++ b/formats/lttng-live/lttng-live.h
-@@ -25,6 +25,7 @@
- */
-
- #include <stdint.h>
-+#include <sys/param.h>
- #include "lttng-viewer-abi.h"
-
- #define LTTNG_DEFAULT_NETWORK_VIEWER_PORT 5344
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.3.1.bb b/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.3.1.bb
deleted file mode 100644
index 176602632..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.3.1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Babeltrace - Trace Format Babel Tower"
-DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log."
-HOMEPAGE = "http://www.efficios.com/babeltrace/"
-BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace"
-
-LICENSE = "MIT & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa"
-
-DEPENDS = "glib-2.0 util-linux popt bison-native flex-native"
-
-inherit autotools pkgconfig
-
-SRCREV = "6e2b9096c77138593097335b9b27202d98918089"
-
-SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.3 \
- file://0001-Fix-invalid-pointer-free-with-trace-collection.patch \
- file://0001-lttng-live-Include-sys-param.h-for-MAXNAMLEN-definti.patch \
-"
-
-S = "${WORKDIR}/git"
-
-do_configure_prepend () {
- ( cd ${S}; ${S}/bootstrap )
-}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb b/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb
new file mode 100644
index 000000000..0fadeb0d7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/babeltrace_1.4.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Babeltrace - Trace Format Babel Tower"
+DESCRIPTION = "Babeltrace provides trace read and write libraries in host side, as well as a trace converter, which used to convert LTTng 2.0 traces into human-readable log."
+HOMEPAGE = "http://www.efficios.com/babeltrace/"
+BUGTRACKER = "https://bugs.lttng.org/projects/babeltrace"
+
+LICENSE = "MIT & GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=76ba15dd76a248e1dd526bca0e2125fa"
+
+DEPENDS = "glib-2.0 util-linux popt bison-native flex-native"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://www.efficios.com/files/babeltrace/babeltrace-${PV}.tar.bz2 \
+"
+
+EXTRA_OECONF = "--disable-debug-info"
+
+SRC_URI[md5sum] = "fa99064048af5c9c6ff00e489ac809c2"
+SRC_URI[sha256sum] = "9469eeb22617cd12668683b04c27003e5337e9ac66ade914988df3642fc0d0e4"
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch
new file mode 100644
index 000000000..6a91f3258
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules/Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch
@@ -0,0 +1,49 @@
+From 1b0e574d680101105a6c1e8931c78824f5a97a42 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Mon, 5 Sep 2016 17:08:56 +0000
+Subject: [PATCH] Makefile: Do not fail if CONFIG_TRACEPOINTS is not enabled
+Organization: O.S. Systems Software LTDA.
+
+The lttng-modules are being pulled by the tools-profile image feature,
+however, not every kernel has the CONFIG_TRACEPOINTS feature enabled.
+
+This change makes the build do not fail when CONFIG_TRACEPOINTS is not
+available, allowing it to be kept being pulled by default.
+
+Upstream-Status: Inapropriate [embedded specific]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ Makefile | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8602649..75550cc 100644
+--- a/Makefile
++++ b/Makefile
+@@ -8,10 +8,7 @@ ifneq ($(KERNELRELEASE),)
+ # and defines the modules to be built.
+
+ ifdef CONFIG_LOCALVERSION # Check if dot-config is included.
+- ifeq ($(CONFIG_TRACEPOINTS),)
+- $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
+- endif # CONFIG_TRACEPOINTS
+- endif # ifdef CONFIG_LOCALVERSION
++ ifneq ($(CONFIG_TRACEPOINTS),)
+
+ TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))
+
+@@ -94,6 +91,10 @@ ifneq ($(KERNELRELEASE),)
+ obj-$(CONFIG_LTTNG) += lib/
+ obj-$(CONFIG_LTTNG) += tests/
+
++ else
++ $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
++ endif # CONFIG_TRACEPOINTS
++ endif # ifdef CONFIG_LOCALVERSION
+ else # KERNELRELEASE
+
+ # This part of the Makefile is used when the 'make' command is runned in the
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules_git.bb
index 2eb1a51bc..70145413a 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-modules_git.bb
@@ -8,12 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=362844633a08753bd96ab322a6c7f9f6 \
inherit module
-SRCREV = "45e0ebd91f995cc73c2b0d5c60cf9d12e8c838bf"
-PV = "2.7.1+git${SRCPV}"
+SRCREV = "6e4fc6f36d68fb3c8d40113f8670eb6e9c8ffd76"
+PV = "2.8.0+git${SRCPV}"
COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm).*-linux'
-SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.7"
+SRC_URI = "git://git.lttng.org/lttng-modules.git;branch=stable-2.8 \
+ file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch"
export INSTALL_MOD_DIR="kernel/lttng-modules"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-error.h-common-error.h.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-error.h-common-error.h.patch
new file mode 100644
index 000000000..6c8a9b211
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/0001-Fix-error.h-common-error.h.patch
@@ -0,0 +1,33 @@
+From 6712db617fe9155ea236f6840c2bd18dbec4c871 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Wed, 15 Jun 2016 17:18:03 -0400
+Subject: [PATCH] Fix: error.h -> common/error.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Backport
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
+Signed-off-by: Peter Liu <peter.x.liu@external.atlascopco.com>
+---
+ src/bin/lttng-sessiond/agent.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bin/lttng-sessiond/agent.c b/src/bin/lttng-sessiond/agent.c
+index 7cbbbde..310a7e8 100644
+--- a/src/bin/lttng-sessiond/agent.c
++++ b/src/bin/lttng-sessiond/agent.c
+@@ -29,7 +29,7 @@
+ #include "agent.h"
+ #include "ust-app.h"
+ #include "utils.h"
+-#include "error.h"
++#include "common/error.h"
+
+ #define AGENT_RET_CODE_INDEX(code) (code - AGENT_RET_CODE_SUCCESS)
+
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/Revert-Build-look-for-python-3.0-when-building-pytho.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/Revert-Build-look-for-python-3.0-when-building-pytho.patch
deleted file mode 100644
index d05c04c66..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/Revert-Build-look-for-python-3.0-when-building-pytho.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Fri, 4 Dec 2015 16:11:41 +0000
-Subject: [PATCH] Revert "Build: look for python >= 3.0 when building python bindings"
-Organization: O.S. Systems Software LTDA.
-
-This reverts commit 227703a2ceada3c104edd56756d48455ca4c271a.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4dee4b4..6608bcd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -339,7 +339,7 @@ AM_CONDITIONAL([PYTHON_BINDING], [test "x${enable_python_binding:-yes}" = xyes])
-
- if test "x${enable_python_binding:-yes}" = xyes; then
- AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
-- AM_PATH_PYTHON([3.0])
-+ AM_PATH_PYTHON
-
- AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
- AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
index e758815c7..623006344 100755
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest
@@ -1,4 +1,5 @@
#!/bin/sh
-
-make -C tests installcheck
-
+# Without --ignore-exit, the tap harness causes any FAILs within a
+# test plan to raise ERRORs; this is just noise.
+makeargs="LOG_DRIVER_FLAGS=--ignore-exit"
+make -t all >/dev/null 2>&1 && exec make -s $makeargs check 2>/dev/null
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/runtest-2.4.0.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/runtest-2.4.0.patch
deleted file mode 100644
index 958bce48e..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/runtest-2.4.0.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 584f59b..c2bcabd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -12,3 +12,9 @@ dist_doc_DATA = LICENSE \
- dist_noinst_DATA = CodingStyle
-
- EXTRA_DIST = extras/lttng-bash_completion gpl-2.0.txt lgpl-2.1.txt
-+
-+install-ptest:
-+ cp -r $(srcdir)/tests $(DESTDIR)
-+ for m in $$(find $(DESTDIR)/tests -name Makefile); do \
-+ sed -i -e 's|^Makefile:|_Makefile:|' $$m; \
-+ done
-diff --git a/tests/run.sh b/tests/run.sh
-index c6c50fd..6455359 100755
---- a/tests/run.sh
-+++ b/tests/run.sh
-@@ -19,4 +19,7 @@
-
- [ -z "$1" ] && echo "Error: No testlist. Please specify a testlist to run." && exit 1
-
--prove --merge --exec '' - < $1
-+prove --merge -v --exec '' - < $1 | sed \
-+ -e 's|^ok \(.*\)|PASS: \1|' \
-+ -e 's|^not ok \(.*\)|FAIL: \1|' \
-+ | egrep -h 'PASS|FAIL'
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/stop-using-SIGUNUSED.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/stop-using-SIGUNUSED.patch
deleted file mode 100644
index bd4f7d1d1..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools/stop-using-SIGUNUSED.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 1f54181c2df1fb92c3323a6dbf8273fb66b883b6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Galarneau?=
- <jeremie.galarneau@efficios.com>
-Date: Sat, 17 Oct 2015 19:41:47 -0400
-Subject: [PATCH] Port: Don't use SIGUNUSED which is not defined on Solaris
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Organization: O.S. Systems Software LTDA.
-
-Upstream-Status: Backport [2.8.0]
-
-Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
----
- src/common/runas.c | 18 +++++-------------
- 1 file changed, 5 insertions(+), 13 deletions(-)
-
-diff --git a/src/common/runas.c b/src/common/runas.c
-index 57f7382..0825470 100644
---- a/src/common/runas.c
-+++ b/src/common/runas.c
-@@ -530,21 +530,13 @@ int run_as_rmdir_recursive(const char *path, uid_t uid, gid_t gid)
- static
- int reset_sighandler(void)
- {
-- int sig, ret = 0;
-+ int sig;
-
-- for (sig = SIGHUP; sig <= SIGUNUSED; sig++) {
-- /* Skip unblockable signals. */
-- if (sig == SIGKILL || sig == SIGSTOP) {
-- continue;
-- }
-- if (signal(sig, SIG_DFL) == SIG_ERR) {
-- PERROR("reset signal %d", sig);
-- ret = -1;
-- goto end;
-- }
-+ DBG("Resetting run_as worker signal handlers to default");
-+ for (sig = 1; sig <= 31; sig++) {
-+ (void) signal(sig, SIG_DFL);
- }
--end:
-- return ret;
-+ return 0;
- }
-
- static
---
-2.6.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools_git.bb
index 8bd09892c..bfc657b3a 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-tools_git.bb
@@ -9,40 +9,41 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=01d7fc4496aacf37d90df90b90b0cac1 \
file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://lgpl-2.1.txt;md5=0f0d71500e6a57fd24d825f33242b9ca"
-DEPENDS = "liburcu popt libxml2"
+DEPENDS = "liburcu popt libxml2 util-linux"
RDEPENDS_${PN} = "libgcc"
-RDEPENDS_${PN}-ptest += "make perl bash"
+RDEPENDS_${PN}-ptest += "make perl bash gawk ${PN} babeltrace procps"
+# babelstats.pl wants getopt-long
+RDEPENDS_${PN}-ptest += "perl-module-getopt-long"
-SRCREV = "a90f2c1e10b759782653a81815625e9d1bbb75ca"
-PV = "2.7.1+git${SRCPV}"
+SRCREV = "d11e0dba0df9024b8613c51e167a379b91e8b20b"
+PV = "2.8.1+git${SRCPV}"
-PYTHON_OPTION = "am_cv_python_pyexecdir='${libdir}/python${PYTHON_BASEVERSION}/site-packages' \
- am_cv_python_pythondir='${libdir}/python${PYTHON_BASEVERSION}/site-packages' \
- PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}' \
+PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \
+ am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \
+ PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \
"
PACKAGECONFIG ??= "lttng-ust"
-PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python swig-native"
-PACKAGECONFIG[lttng-ust] = "--enable-lttng-ust, --disable-lttng-ust, lttng-ust"
+PACKAGECONFIG[python] = "--enable-python-bindings ${PYTHON_OPTION},,python3 swig-native"
+PACKAGECONFIG[lttng-ust] = "--with-lttng-ust, --without-lttng-ust, lttng-ust"
PACKAGECONFIG[kmod] = "--enable-kmod, --disable-kmod, kmod"
+PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native"
PACKAGECONFIG_remove_libc-musl = "lttng-ust"
-SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.7 \
- file://Revert-Build-look-for-python-3.0-when-building-pytho.patch \
- file://stop-using-SIGUNUSED.patch \
- file://runtest-2.4.0.patch \
+SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.8 \
+ file://0001-Fix-error.h-common-error.h.patch \
file://run-ptest"
S = "${WORKDIR}/git"
-inherit autotools-brokensep ptest pkgconfig useradd
+inherit autotools-brokensep ptest pkgconfig useradd python3-dir
USERADD_PACKAGES = "${PN}"
GROUPADD_PARAM_${PN} = "tracing"
FILES_${PN} += "${libdir}/lttng/libexec/* ${datadir}/xml/lttng \
- ${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-FILES_${PN}-staticdev += "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.a"
-FILES_${PN}-dev += "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.la"
+ ${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*.a"
+FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
# Since files are installed into ${libdir}/lttng/libexec we match
# the libexec insane test so skip it.
@@ -52,31 +53,64 @@ INSANE_SKIP_${PN}-dbg = "libexec"
do_configure_prepend () {
# Delete a shipped m4 file that overrides our patched one
- rm -f ${S}/config/libxml.m4
+ rm -f ${S}/m4/libxml.m4
}
do_install_ptest () {
- chmod +x ${D}${PTEST_PATH}/tests/utils/utils.sh
- for i in `find ${D}${PTEST_PATH} -perm /u+x -type f`; do
- sed -e "s:\$TESTDIR.*/src/bin/lttng/\$LTTNG_BIN:\$LTTNG_BIN:g" \
- -e "s:\$TESTDIR/../src/bin/lttng-sessiond/\$SESSIOND_BIN:\$SESSIOND_BIN:g" \
- -e "s:\$DIR/../src/bin/lttng-sessiond/\$SESSIOND_BIN:\$SESSIOND_BIN:g" \
- -e "s:\$TESTDIR/../src/bin/lttng-consumerd/:${libdir}/lttng/libexec/:g" \
- -e "s:\$DIR/../src/bin/lttng-consumerd/:${libdir}/lttng/libexec/:g" \
- -e "s:\$TESTDIR/../src/bin/lttng-relayd/\$RELAYD_BIN:\$RELAYD_BIN:g" \
- -e "s:\$DIR/../src/bin/lttng-sessiond/lttng-sessiond:\$SESSIOND_BIN:g" \
- -e "s:\$DIR/../src/bin/lttng-relayd/\$RELAYD_BIN:\$RELAYD_BIN:g" \
- -e "s:\$DIR/../bin/lttng-relayd/\$RELAYD_BIN:\$RELAYD_BIN:g" \
- -i $i
+ mkdir -p ${D}${PTEST_PATH}
+
+ cp -a -T ${B} ${D}${PTEST_PATH}
+
+ # Prevent attempts to update Makefiles during test runs, and
+ # silence "Making check in $SUBDIR" messages.
+ find ${D}${PTEST_PATH} -name Makefile -type f -exec \
+ sed -i -e 's!^Makefile:!_Makefile:!' \
+ -e '/echo "Making $$target in $$subdir"; \\/d' {} +
+
+ # Prevent attempts to update version.h during test runs.
+ sed -i -e '/^\.PHONY: version\.h$/d' ${D}${PTEST_PATH}/include/Makefile
+
+ # Silence "Making check in $SUBDIR" messages.
+ find ${D}${PTEST_PATH} -name Makefile -type f -exec \
+ sed -i -e '/echo "Making $$target in $$subdir"; \\/d' {} +
+
+ # Substitute links to installed binaries.
+ for prog in lttng lttng-relayd lttng-sessiond lttng-consumerd ; do
+ orig="${D}${PTEST_PATH}/src/bin/${prog}/${prog}"
+ rm "$orig"
+ case "$prog" in
+ lttng-consumerd)
+ ln -s "${libdir}/lttng/libexec/$prog" "$orig"
+ ;;
+ *)
+ ln -s "${bindir}/$prog" "$orig"
+ ;;
+ esac
done
- # Update libdir references in copied .la files
- for i in `find ${D}${PTEST_PATH} -type f -name *.la`; do
- sed -i -e 's#${S}/tests/#${STAGING_DIR}${PTEST_PATH}#g' $i
+ # Remove libtool artifacts.
+ find ${D}${PTEST_PATH} \( -name '*.l[ao]' -o -name '*.lai' \) -delete
+
+ # Remove object files and archives.
+ find ${D}${PTEST_PATH} -name '*.[oa]' -type f -delete
+
+ # Remove Makefile.am and Makefile.in.
+ find ${D}${PTEST_PATH} -name 'Makefile.*' -type f -delete
+
+ # Remove autom4te.cache.
+ rm -rf ${D}${PTEST_PATH}/autom4te.cache
+
+ # Replace libtool wrapper scripts (which won't work on the
+ # target) with their corresponding binaries.
+ for prog in unit/ini_config/ini_config \
+ regression/tools/live/live_test \
+ regression/tools/health/health_check ; do
+ basename=${prog##*/}
+ ldir=${D}${PTEST_PATH}/tests/${prog%/*}
+ mv -f ${ldir}/.libs/${basename} ${ldir}
done
- sed -e "s:src/bin:bin:g" -e "s:lt-::g" \
- -i ${D}${PTEST_PATH}/tests/utils/utils.sh
- sed -e "s:ini_config:\.libs\/ini_config:" \
- -i ${D}${PTEST_PATH}/tests/unit/ini_config/test_ini_config
+ # checkpatch.pl is unneeded on target and causes file-rdeps QA
+ # warnings.
+ rm -f ${D}${PTEST_PATH}/extras/checkpatch.pl
}
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-add-support-for-aarch64_be.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-add-support-for-aarch64_be.patch
deleted file mode 100644
index 9b37a4a33..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-add-support-for-aarch64_be.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-lttng-ust: add support for aarch64_be
-
-Upstream-Status: Pending
-
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-
-diff --ruN a/configure.ac b/configure.ac
---- a/configure.ac 2016-02-18 14:54:54.651713647 +0100
-+++ b/configure.ac 2016-02-18 14:56:11.057865297 +0100
-@@ -240,6 +240,7 @@
- s390x) NO_UNALIGNED_ACCESS=1 ;;
- arm*) NO_UNALIGNED_ACCESS=1 ;;
- aarch64) NO_UNALIGNED_ACCESS=1 ;;
-+ aarch64_be) NO_UNALIGNED_ACCESS=1 ;;
- mips*) NO_UNALIGNED_ACCESS=1 ;;
- tile*) NO_UNALIGNED_ACCESS=1 ;;
- *)
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch
index b68a9899c..caf0b8bcf 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust/lttng-ust-doc-examples-disable.patch
@@ -11,7 +11,7 @@ Index: doc/Makefile.am
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,4 +1,4 @@
--SUBDIRS = . examples
+-SUBDIRS = . man examples
+SUBDIRS = .
dist_man_MANS = man/lttng-gen-tp.1 \
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust_git.bb
index 15d925d29..baff71f58 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/lttng/lttng-ust_git.bb
@@ -11,22 +11,30 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \
inherit autotools lib_package
DEPENDS = "liburcu util-linux"
-RDEPENDS_${PN}-bin = "python-core"
+RDEPENDS_${PN}-bin = "python3-core"
# For backwards compatibility after rename
RPROVIDES_${PN} = "lttng2-ust"
RREPLACES_${PN} = "lttng2-ust"
RCONFLICTS_${PN} = "lttng2-ust"
-SRCREV = "f89c1a3cf2b06a4970b9154c00ff6409870aefb5"
+SRCREV = "514a87f3b64181e384399935a5708a8f85b0cc83"
PE = "2"
-PV = "2.7.1+git${SRCPV}"
+PV = "2.8.1+git${SRCPV}"
-SRC_URI = "git://git.lttng.org/lttng-ust.git;branch=stable-2.7 \
+SRC_URI = "git://git.lttng.org/lttng-ust.git;branch=stable-2.8 \
file://lttng-ust-doc-examples-disable.patch \
- file://lttng-ust-add-support-for-aarch64_be.patch \
"
+EXTRA_OECONF += "--disable-man-pages"
+
+do_install_append() {
+ # Patch python tools to use Python 3; they should be source compatible, but
+ # still refer to Python 2 in the shebang
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp
+}
+
+
S = "${WORKDIR}/git"
do_configure_prepend () {
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile.inc b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile.inc
index cf3ad435c..96ef43dc3 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile.inc
@@ -24,7 +24,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
file://oprofile-cross-compile-tests.patch \
file://run-ptest \
file://root-home-dir.patch \
- file://0001-Add-rmb-definition-for-NIOS2-architecture.patch"
+ file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \
+ file://0001-Fix-FTBFS-problem-with-GCC-6.patch \
+"
SRC_URI_append_libc-musl = " file://musl.patch"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
new file mode 100644
index 000000000..d372fd527
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
@@ -0,0 +1,51 @@
+From 39d4d46a0bd504ac708ffe72df87bf74cd12ad30 Mon Sep 17 00:00:00 2001
+From: William Cohen <wcohen@redhat.com>
+Date: Fri, 5 Feb 2016 17:30:19 -0500
+Subject: [PATCH] Fix FTBFS problem with GCC-6
+
+GCC-6 is pickier about some of the type conversions causing the Fedora
+24 mass rebuild the build of oprofile failed with:
+
+make[3]: Entering directory '/builddir/build/BUILD/oprofile-1.1.0/libutil++'
+g++ -DHAVE_CONFIG_H -I. -I.. -I ../libutil -I ../libop -I ../libpp -W -Wall -fno-common -ftemplate-depth-50 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o op_bfd.o op_bfd.cpp
+op_bfd.cpp: In member function 'void op_bfd::get_symbol_range(symbol_index_t, long long unsigned int&, long long unsigned int&) const':
+op_bfd.cpp:538:47: error: cannot convert 'std::ostream {aka std::basic_ostream<char>}' to 'const bool' in initialization
+ bool const verbose = cverb << (vbfd & vlevel1);
+ ^
+op_bfd.cpp:546:7: error: in argument to unary !
+ if (!verbose)
+ ^~~~~~~
+
+Avoid the intermediate bool type to make GCC-6 happy.
+
+Signed-off-by: William Cohen <wcohen@redhat.com>
+---
+Upstream-Status: Backport
+
+ libutil++/op_bfd.cpp | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/libutil++/op_bfd.cpp b/libutil++/op_bfd.cpp
+index 389c920..f2eb42b 100644
+--- a/libutil++/op_bfd.cpp
++++ b/libutil++/op_bfd.cpp
+@@ -535,15 +535,13 @@ void op_bfd::get_symbol_range(symbol_index_t sym_idx,
+ {
+ op_bfd_symbol const & sym = syms[sym_idx];
+
+- bool const verbose = cverb << (vbfd & vlevel1);
+-
+ if (anon_obj)
+ start = sym.vma();
+ else
+ start = sym.filepos();
+ end = start + sym.size();
+
+- if (!verbose)
++ if (!(cverb << (vbfd & vlevel1)))
+ return;
+
+ io_state state(cverb << (vbfd & vlevel1));
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/init b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/init
deleted file mode 100755
index 2544ea4ac..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/init
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides: oprofile-server
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: OProfileUI server
-# Description:
-### END INIT INFO
-
-. /etc/init.d/functions
-
-case "$1" in
- start)
- echo "Starting OProfileUI server"
- . /etc/profile
- /usr/bin/oprofile-server &
- ;;
-
- stop)
- echo "Stopping OProfileUI server"
- killproc oprofile-server
- ;;
-
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
-
- *)
- echo "usage: $0 { start | stop | restart }"
- ;;
-esac
-
-exit 0
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/oprofileui-server.service b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/oprofileui-server.service
deleted file mode 100644
index 1a2cbe62e..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server/oprofileui-server.service
+++ /dev/null
@@ -1,6 +0,0 @@
-[Unit]
-Description=OProfileUI Server
-After=network.target
-
-[Service]
-ExecStart=/bin/sh -c ". @SYSCONFDIR@/profile; @BINDIR@/oprofile-server"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server_git.bb
deleted file mode 100644
index cc3477bc7..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui-server_git.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require oprofileui.inc
-
-SRCREV = "389e1875af4721d52c7e65cf9cfffb69b0ed6a59"
-PV = "0.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://git.yoctoproject.org/oprofileui \
- file://init \
- file://oprofileui-server.service "
-
-DEPENDS += "intltool-native gettext-native"
-
-EXTRA_OECONF += "--disable-client --enable-server"
-
-RDEPENDS_${PN} = "oprofile avahi-daemon"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/oprofileui-server
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/oprofileui-server.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@BINDIR@,${bindir},g' ${D}${systemd_unitdir}/system/oprofileui-server.service
-}
-
-inherit update-rc.d systemd
-
-INITSCRIPT_NAME = "oprofileui-server"
-INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
-
-SYSTEMD_SERVICE_${PN} = "oprofileui-server.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui.inc b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui.inc
deleted file mode 100644
index 8fcf014a9..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "User Interface for the System-Wide Profiler"
-DESCRIPTION = "User interface for the OProfile tool"
-HOMEPAGE = "http://labs.o-hand.com/oprofileui/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-SECTION = "x11"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "glib-2.0 avahi intltool-native"
-
-inherit autotools pkgconfig gettext
-
-EXTRA_OECONF = "--with-avahi"
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui_git.bb
deleted file mode 100644
index 86f3d8e50..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/oprofile/oprofileui_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require oprofileui.inc
-
-DEPENDS += "gtk+ libglade libxml2 avahi-ui gconf gettext-native"
-
-inherit distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-SRCREV = "389e1875af4721d52c7e65cf9cfffb69b0ed6a59"
-PV = "0.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://git.yoctoproject.org/oprofileui"
-
-EXTRA_OECONF += "--enable-client --disable-server"
-
-PACKAGES =+ "oprofileui-viewer"
-
-FILES_oprofileui-viewer = "${bindir}/oparchconv ${bindir}/oprofile-viewer ${datadir}/applications/ ${datadir}/oprofileui/ ${datadir}/icons"
-RDEPENDS_oprofileui-viewer = "oprofile"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/perf/perf.bb b/import-layers/yocto-poky/meta/recipes-kernel/perf/perf.bb
index 3d6ffb30f..471023d07 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/perf/perf.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/perf/perf.bb
@@ -30,6 +30,8 @@ DEPENDS = " \
${SCRIPTING_DEPENDS} \
${LIBUNWIND_DEPENDS} \
bison flex xz \
+ xmlto-native \
+ asciidoc-native \
"
do_configure[depends] += "virtual/kernel:do_shared_workdir"
@@ -40,10 +42,6 @@ inherit linux-kernel-base kernel-arch pythonnative
# needed for building the tools/perf Python bindings
inherit python-dir
-export STAGING_INCDIR
-export STAGING_LIBDIR
-export BUILD_SYS
-export HOST_SYS
export PYTHON_SITEPACKAGES_DIR
#kernel 3.1+ supports WERROR to disable warnings as errors
@@ -81,6 +79,7 @@ EXTRA_OEMAKE = '\
ARCH=${ARCH} \
CC="${CC}" \
AR="${AR}" \
+ LD="${LD}" \
EXTRA_CFLAGS="-ldw" \
perfexecdir=${libexecdir} \
NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${LIBUNWIND_DEFINES} \
@@ -94,14 +93,12 @@ EXTRA_OEMAKE += "\
'sharedir=${datadir}' \
'sysconfdir=${sysconfdir}' \
'perfexecdir=${libexecdir}/perf-core' \
- \
'ETC_PERFCONFIG=${@os.path.relpath(sysconfdir, prefix)}' \
'sharedir=${@os.path.relpath(datadir, prefix)}' \
'mandir=${@os.path.relpath(mandir, prefix)}' \
'infodir=${@os.path.relpath(infodir, prefix)}' \
"
-
do_compile() {
# Linux kernel build system is expected to do the right thing
unset CFLAGS
@@ -136,11 +133,24 @@ do_configure_prepend () {
# with each other if its in the shared source directory
#
if [ -e "${S}/tools/perf/config/Makefile" ]; then
+ perfconfig="${S}/tools/perf/config/Makefile"
+ fi
+ if [ -e "${S}/tools/perf/Makefile.config" ]; then
+ perfconfig="${S}/tools/perf/Makefile.config"
+ fi
+ if [ -n "${perfconfig}" ]; then
# Match $(prefix)/$(lib) and $(prefix)/lib
sed -i -e 's,^libdir = \($(prefix)/.*lib\),libdir ?= \1,' \
-e 's,^perfexecdir = \(.*\),perfexecdir ?= \1,' \
-e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
- ${S}/tools/perf/config/Makefile
+ ${perfconfig}
+ fi
+ # The man pages installation is "$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)"
+ # in ${S}/tools/perf/Documentation/Makefile, if the mandir set to '?=', it
+ # will use the relative path 'share/man', in the way it will resulting in
+ # incorrect installation for man pages.
+ if [ -e "${S}/tools/perf/Documentation/Makefile" ]; then
+ sed -i 's,^mandir?=,mandir:=,' ${S}/tools/perf/Documentation/Makefile
fi
if [ -e "${S}/tools/perf/Makefile.perf" ]; then
sed -i -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \
@@ -160,10 +170,12 @@ do_configure_prepend () {
if [ -e "${S}/tools/perf/Makefile.perf" ]; then
sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/perf/Makefile.perf
sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/perf/Makefile.perf
+ sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' ${S}/tools/perf/Makefile.perf
fi
if [ -e "${S}/tools/lib/api/Makefile" ]; then
sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/api/Makefile
sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/lib/api/Makefile
+ sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' ${S}/tools/lib/api/Makefile
fi
if [ -e "${S}/tools/lib/subcmd/Makefile" ]; then
sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/subcmd/Makefile
@@ -201,6 +213,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
PACKAGES =+ "${PN}-archive ${PN}-tests ${PN}-perl ${PN}-python"
RDEPENDS_${PN} += "elfutils bash"
+RDEPENDS_${PN}-doc += "man"
RDEPENDS_${PN}-archive =+ "bash"
RDEPENDS_${PN}-python =+ "bash python python-modules"
RDEPENDS_${PN}-perl =+ "bash perl perl-modules"
@@ -209,10 +222,11 @@ RDEPENDS_${PN}-tests =+ "python"
RSUGGESTS_SCRIPTING = "${@perf_feature_enabled('perf-scripting', '${PN}-perl ${PN}-python', '',d)}"
RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}"
+#FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core /usr/lib64/traceevent ${libdir}/traceevent"
FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core ${libdir}/traceevent"
FILES_${PN}-archive = "${libdir}/perf/perf-core/perf-archive"
FILES_${PN}-tests = "${libdir}/perf/perf-core/tests ${libexecdir}/perf-core/tests"
-FILES_${PN}-python = "${libdir}/python*/site-packages ${libdir}/perf/perf-core/scripts/python"
+FILES_${PN}-python = "${libdir}/perf/perf-core/scripts/python ${PYTHON_SITEPACKAGES_DIR}"
FILES_${PN}-python += "${libexecdir}/perf-core/scripts/python/*"
FILES_${PN}-perl = "${libdir}/perf/perf-core/scripts/perl"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Avoid-building-docs.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Avoid-building-docs.patch
new file mode 100644
index 000000000..202f354d2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Avoid-building-docs.patch
@@ -0,0 +1,42 @@
+From 27df521c68e7c8b5b050dab15f40aa15fd03623a Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 4 May 2016 14:58:24 +0300
+Subject: [PATCH] Avoid building docs
+
+Upstream-Status: Inappropriate
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ Makefile.am | 2 +-
+ m4/yelp.m4 | 6 ------
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b919a3f..3a3851d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS = daemon data help lib po src tools tests
++SUBDIRS = daemon data lib po src tools tests
+
+ EXTRA_DIST = AUTHORS tap-test COPYING.gpl-2
+
+diff --git a/m4/yelp.m4 b/m4/yelp.m4
+index 5db847f..1b6ede4 100644
+--- a/m4/yelp.m4
++++ b/m4/yelp.m4
+@@ -27,12 +27,6 @@ AC_ARG_WITH([help-dir],
+ HELP_DIR="$with_help_dir"
+ AC_SUBST(HELP_DIR)
+
+-AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command])
+-AC_CHECK_PROG([ITSTOOL], [itstool], [itstool])
+-if test x"$ITSTOOL" = x; then
+- AC_MSG_ERROR([itstool not found])
+-fi
+-
+ AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command])
+ AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint])
+ if test x"$XMLLINT" = x; then
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Disable-check-for-polkit-for-UI.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Disable-check-for-polkit-for-UI.patch
new file mode 100644
index 000000000..608523272
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Disable-check-for-polkit-for-UI.patch
@@ -0,0 +1,32 @@
+From 765d578145e31ddc9495adfab8037ade33c6a9cc Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 4 May 2016 10:59:36 +0300
+Subject: [PATCH] Disable check for polkit for UI
+
+The check is not technically required: sysprof just needs
+to be able to access system perf counters at runtime.
+
+Upstream-Status: Pending
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8559597..ecf93ad 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -131,8 +131,8 @@ AS_IF([test "$enable_gtk" = auto],[
+ AS_IF([test "$have_gtk" = "yes" && test "$have_polkit" = "yes"],[enable_gtk=yes],[enable_gtk=no])
+ ])
+ AS_IF([test "$enable_gtk" = "yes"],[
+- AS_IF([test "$have_gtk" = "yes" && test "$have_polkit" = "yes"],[],[
+- AC_MSG_ERROR([--enable-gtk requires gtk+-3.0 >= gtk_required_version and polkit-gobject-1])
++ AS_IF([test "$have_gtk" = "yes"],[],[
++ AC_MSG_ERROR([--enable-gtk requires gtk+-3.0 >= gtk_required_version])
+ ])
+ ])
+ AM_CONDITIONAL(ENABLE_GTK, test "$enable_gtk" = "yes")
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Forward-port-mips-arm-memory-barrier-patches.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Forward-port-mips-arm-memory-barrier-patches.patch
new file mode 100644
index 000000000..92e804f98
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-Forward-port-mips-arm-memory-barrier-patches.patch
@@ -0,0 +1,38 @@
+From a2d385e504323641b1127821833c61e77301c90b Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Sat, 11 Jun 2016 22:45:37 +0300
+Subject: [PATCH] Forward port mips & arm memory barrier patches
+
+Upstream-Status: Pending
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ lib/util/util.h | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/lib/util/util.h b/lib/util/util.h
+index 591722d..0768056 100644
+--- a/lib/util/util.h
++++ b/lib/util/util.h
+@@ -29,4 +29,19 @@
+ #define read_barrier() asm volatile("" ::: "memory")
+ #endif
+
++#ifdef __arm__
++/*
++ * Use the __kuser_memory_barrier helper in the CPU helper page. See
++ * arch/arm/kernel/entry-armv.S in the kernel source for details.
++ */
++#define read_barrier() ((void(*)(void))0xffff0fa0)()
++#endif
++
++#ifdef __mips__
++#define read_barrier() asm volatile(".set mips2\n\t" \
++ "sync\n\t" \
++ ".set mips0" ::: "memory")
++#endif
++
++
+ #endif /* SP_UTIL_H */
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-callgraph-Use-U64_TO_POINTER.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-callgraph-Use-U64_TO_POINTER.patch
new file mode 100644
index 000000000..ac1384c9b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-callgraph-Use-U64_TO_POINTER.patch
@@ -0,0 +1,29 @@
+From 05816e6f9cd65b2624bb04de65fdf61031c7017f Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 10 Jun 2016 14:01:54 +0300
+Subject: [PATCH] callgraph: Use U64_TO_POINTER
+
+This fixes a "cast to pointer from integer of different size" on i586.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Pending
+---
+ lib/sp-callgraph-view.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/sp-callgraph-view.c b/lib/sp-callgraph-view.c
+index 02cc17b..58315b0 100644
+--- a/lib/sp-callgraph-view.c
++++ b/lib/sp-callgraph-view.c
+@@ -135,7 +135,7 @@ build_functions_store (StackNode *node,
+
+ gtk_list_store_append (state->store, &iter);
+ gtk_list_store_set (state->store, &iter,
+- COLUMN_NAME, (const gchar *)node->data,
++ COLUMN_NAME, U64_TO_POINTER(node->data),
+ COLUMN_SELF, 100.0 * size / state->profile_size,
+ COLUMN_TOTAL, 100.0 * total / state->profile_size,
+ COLUMN_POINTER, node,
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-configure-Add-option-to-enable-disable-polkit.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-configure-Add-option-to-enable-disable-polkit.patch
new file mode 100644
index 000000000..158d9975f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/0001-configure-Add-option-to-enable-disable-polkit.patch
@@ -0,0 +1,41 @@
+From 2b4005d72d3393933a7914be102ea65505c536cc Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Thu, 21 Jul 2016 11:53:31 +0300
+Subject: [PATCH] configure: Add option to enable/disable polkit
+
+Changes the configure behaviour from autodetecting the polkit by default
+to having an option to disable it explicitly
+
+Upstream-Status: Pending
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ configure.ac | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 2246d5a..3d3fe0f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -104,10 +104,18 @@ PKG_CHECK_MODULES(GTK,
+ [gtk+-3.0 >= gtk_required_version],
+ [have_gtk=yes],
+ [have_gtk=no])
++AC_ARG_ENABLE([polkit],
++ AS_HELP_STRING([--disable-polkit], [Do not use Polkit]),
++ [enable_polkit="$enableval"], [enable_polkit="yes"])
++
++AS_IF([test "x$enable_polkit" = "xyes"], [
+ PKG_CHECK_MODULES(POLKIT,
+ [polkit-gobject-1],
+ [have_polkit=yes],
+ [have_polkit=no])
++ ])
++AM_CONDITIONAL([HAVE_POLKIT], [test "x$enable_polkit" = "xyes"])
++
+ PKG_CHECK_MODULES(SYSTEMD,
+ [libsystemd >= systemd_required_version],
+ [have_systemd=yes],
+--
+2.4.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch
index dcc2cbe67..f75ddad43 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/define-NT_GNU_BUILD_ID.patch
@@ -7,8 +7,8 @@ Upstream-Status: Pending
Index: git/elfparser.h
===================================================================
---- git.orig/elfparser.h 2011-07-16 18:57:41.000000000 -0700
-+++ git/elfparser.h 2011-07-16 20:28:54.733829895 -0700
+--- git.orig/lib/util/elfparser.h 2011-07-16 18:57:41.000000000 -0700
++++ git/lib/util/elfparser.h 2011-07-16 20:28:54.733829895 -0700
@@ -17,6 +17,10 @@
*/
#include <glib.h>
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/gui-argument.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/gui-argument.patch
deleted file mode 100644
index d2c053e68..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/gui-argument.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Add the ability to explicitly enable/disable GUI support
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-Upstream-Status: Pending
-
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -62,12 +62,24 @@ KMICRO=`uname -r | cut -d"." -f 3 | cut
- # Pkgconfig dependencies
-
- core_dep="glib-2.0 >= 2.6.0"
--gui_dep="gtk+-2.0 > 2.6.0 gdk-pixbuf-2.0 pangoft2 libglade-2.0"
-
- PKG_CHECK_MODULES(CORE_DEP, $core_dep, [], AC_MSG_ERROR([sysprof dependencies not satisfied]))
-
--build_gui=yes
--PKG_CHECK_MODULES(GUI_DEP, $gui_dep, [], build_gui=no)
-+gui_dep="gtk+-2.0 > 2.6.0 gdk-pixbuf-2.0 pangoft2 libglade-2.0"
-+
-+AC_ARG_ENABLE([gui],
-+ [AS_HELP_STRING([--disable-gui],
-+ [Disable GUI functionality (requires gtk+, gdk-pixbuf, pangoft2, libglade) @<:@default=auto@:>@])],
-+ [],
-+ [enable_gui=auto])
-+
-+build_gui=no
-+AS_IF([test "x$enable_gui" != xno],
-+ [PKG_CHECK_MODULES(GUI_DEP, $gui_dep, build_gui=yes,
-+ [if test "x$enable_gui" != xauto; then
-+ AC_MSG_FAILURE(
-+ [--enable-gui was given, but gui dependencies were not satisfied])
-+ fi])])
-
- AM_CONDITIONAL([BUILD_GUI], [test "$build_gui" = yes])
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-arm.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-arm.patch
deleted file mode 100644
index c53ac6427..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-arm.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Upstream-Status: Pending
-
-Index: git/util.h
-===================================================================
---- git.orig/util.h 2010-12-07 22:41:57.156243001 -0600
-+++ git/util.h 2010-12-07 22:43:47.616243002 -0600
-@@ -37,4 +37,13 @@
- #define cpu_relax() asm volatile("" ::: "memory");
- #endif
-
-+#ifdef __arm__
-+/*
-+ * Use the __kuser_memory_barrier helper in the CPU helper page. See
-+ * arch/arm/kernel/entry-armv.S in the kernel source for details.
-+ */
-+#define rmb() ((void(*)(void))0xffff0fa0)()
-+#define cpu_relax() asm volatile("":::"memory")
-+#endif
-+
- #endif
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-mips.patch b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-mips.patch
deleted file mode 100644
index e055b8ad8..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/files/rmb-mips.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Upstream-Status: Pending
-
-Index: git/util.h
-===================================================================
---- git.orig/util.h 2010-12-08 01:22:44.486243001 -0600
-+++ git/util.h 2010-12-08 01:23:27.836243001 -0600
-@@ -37,4 +37,15 @@
- #define cpu_relax() asm volatile("" ::: "memory");
- #endif
-
-+#ifdef __mips__
-+#define rmb() asm volatile( \
-+ ".set mips2\n\t" \
-+ "sync\n\t" \
-+ ".set mips0" \
-+ : /* no output */ \
-+ : /* no input */ \
-+ : "memory")
-+#define cpu_relax() asm volatile("" ::: "memory")
-+#endif
-+
- #endif
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/sysprof_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/sysprof_git.bb
index 84c6aad39..8d8b62639 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/sysprof/sysprof_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/sysprof/sysprof_git.bb
@@ -1,31 +1,40 @@
SUMMARY = "System-wide Performance Profiler for Linux"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://src/sp-application.c;endline=17;md5=40e55577ef122c88fe20052acda64875"
+
+inherit gnomebase gettext systemd
DEPENDS = "glib-2.0"
-SRCREV = "cd44ee6644c3641507fb53b8a2a69137f2971219"
-PV = "1.2.0+git${SRCPV}"
+S = "${WORKDIR}/git"
+SRCREV = "9c6cec9b49766bf77c1713bc5a7c6d651e628068"
+PV = "3.20.0+git${SRCPV}"
SRC_URI = "git://git.gnome.org/sysprof \
file://define-NT_GNU_BUILD_ID.patch \
- file://gui-argument.patch \
+ file://0001-configure-Add-option-to-enable-disable-polkit.patch \
+ file://0001-Disable-check-for-polkit-for-UI.patch \
+ file://0001-Avoid-building-docs.patch \
+ file://0001-callgraph-Use-U64_TO_POINTER.patch \
+ file://0001-Forward-port-mips-arm-memory-barrier-patches.patch \
"
+SRC_URI[archive.md5sum] = "d56e8492033b60e247634731e7f760b9"
+SRC_URI[archive.sha256sum] = "4a338ad41bfffae87ef281f6e75c9660b3e0c6671bf5233be0c3f55a5e5b1ce5"
-SRC_URI_append_arm = " file://rmb-arm.patch"
-SRC_URI_append_armeb = " file://rmb-arm.patch"
-SRC_URI_append_mips = " file://rmb-mips.patch"
-SRC_URI_append_mips64 = " file://rmb-mips.patch"
-SRC_URI_append_mips64n32 = " file://rmb-mips.patch"
+AUTOTOOLS_AUXDIR = "${S}/build-aux"
-S = "${WORKDIR}/git"
+EXTRA_OECONF = "--enable-compile-warnings"
-inherit autotools pkgconfig
+PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)}"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
+PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit dbus"
-PACKAGECONFIG ?= "${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK2DISTROFEATURES}', 'gui', '', d)}"
-PACKAGECONFIG[gui] = "--enable-gui,--disable-gui,gtk+ gdk-pixbuf pango libglade"
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${datadir}/icons/"
+
+SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'sysprof2.service', '', d)}"
# We do not yet work for aarch64.
-#
COMPATIBLE_HOST = "^(?!aarch64).*"
-
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb
index 3686c2f76..46820ef48 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap-uprobes_git.bb
@@ -13,8 +13,6 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemtap:"
FILES_${PN} += "${datadir}/systemtap/runtime/uprobes"
-EXTRA_OEMAKE = ""
-
# Compile and install the uprobes kernel module on machines with utrace
# support. Note that staprun expects it in the systemtap/runtime directory,
# not in /lib/modules.
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch
deleted file mode 100644
index 33a89940a..000000000
--- a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/docproc-build-fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
-
-Index: git/doc/SystemTap_Tapset_Reference/Makefile.am
-===================================================================
---- git.orig/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 08:43:46.263339003 -0500
-+++ git/doc/SystemTap_Tapset_Reference/Makefile.am 2012-04-13 09:31:22.470083915 -0500
-@@ -27,6 +27,10 @@
- noinst_PROGRAMS = docproc
- SRCTREE=$(abs_top_srcdir)/
- DOCPROC=$(abs_builddir)/docproc
-+docproc_LINK = $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
-+
-+docproc.o: $(srcdir)/docproc.c
-+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) -o $@ $(srcdir)/docproc.c
-
- all: $(PDFDOCS) stamp-htmldocs stamp-mandocs
- tapsets.xml: docproc $(shell find $(SRCTREE)/tapset -name '*.stp')
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch
new file mode 100644
index 000000000..7d43a79e2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap/monitor-option.patch
@@ -0,0 +1,28 @@
+Add an option to explicitly disable the monitor (and therefore the dependency on
+json-c and ncurses).
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/configure.ac b/configure.ac
+index cd781a2..e56079a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -570,13 +574,16 @@ dnl See if we have enough libraries and tools to build the virt server
+ fi
+ AM_CONDITIONAL([BUILD_VIRT], [test "${have_libvirt}" == "yes" -a "${have_libxml2}" == "yes" -a "$enable_virt" != "no"])
+
++AC_ARG_ENABLE([monitor], AS_HELP_STRING([--disable-monitor],[Disable monitor]))
++if test "$enable_monitor" != "no"; then
+ dnl Check for presence of json-c and ncurses for use in monitor mode
+ PKG_CHECK_MODULES([jsonc], [json-c], [have_jsonc=yes], [have_jsonc=no])
+ PKG_CHECK_MODULES([ncurses], [ncurses], [have_ncurses=yes], [have_ncurses=no])
+-AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes"])
+ if test "${have_jsonc}" == "yes" -a "${have_ncurses}" == yes; then
+ AC_DEFINE([HAVE_MONITOR_LIBS],[1],[Define to 1 if json-c and ncurses libraries are installed])
+ fi
++fi
++AM_CONDITIONAL([HAVE_MONITOR_LIBS], [test "${have_jsonc}" == "yes" -a "${have_ncurses}" == "yes" -a "$enable_monitor" != "no"])
+
+ AC_CACHE_CHECK([for assembler .section "?" flags support], stap_cv_sectionq, [
+ old_CFLAGS="$CFLAGS"
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.bb b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.bb
index 97064b838..43bf69e87 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.bb
@@ -2,17 +2,14 @@ SUMMARY = "Script-directed dynamic tracing and performance analysis tool for Lin
require systemtap_git.inc
-DEPENDS = "elfutils sqlite3 systemtap-native"
-DEPENDS_class-native = "elfutils-native sqlite3-native gettext-native"
-DEPENDS_class-nativesdk = "nativesdk-elfutils nativesdk-sqlite3 nativesdk-gettext"
+DEPENDS = "boost elfutils"
-RDEPENDS_${PN} += "python bash"
-RDEPENDS_${PN}_class-native += "python-native"
-RDEPENDS_${PN}_class-nativesdk += "python-native"
+RDEPENDS_${PN} += "python3-core bash"
EXTRA_OECONF += "--with-libelf=${STAGING_DIR_TARGET} --without-rpm \
--without-nss --without-avahi --without-dyninst \
--disable-server --disable-grapher --enable-prologues \
+ --with-python3 \
ac_cv_prog_have_javac=no \
ac_cv_prog_have_jar=no "
@@ -20,8 +17,10 @@ STAP_DOCS ?= "--disable-docs --disable-publican --disable-refdocs"
EXTRA_OECONF += "${STAP_DOCS} "
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "sqlite monitor"
PACKAGECONFIG[libvirt] = "--enable-libvirt,--disable-libvirt,libvirt"
+PACKAGECONFIG[sqlite] = "--enable-sqlite,--disable-sqlite,sqlite3"
+PACKAGECONFIG[monitor] = "--enable-monitor,--disable-monitor,ncurses json-c"
inherit autotools gettext pkgconfig
diff --git a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.inc
index 656f15f80..304eb9975 100644
--- a/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/import-layers/yocto-poky/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,14 +1,14 @@
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "7009f2f782e52d6105fe68d6ea2a9820a1099c06"
-PV = "2.9"
+SRCREV = "616ec7a0b916df7785d911b824c3df6eb022b213"
+PV = "3.0"
SRC_URI = "git://sourceware.org/git/systemtap.git \
- file://docproc-build-fix.patch \
file://obsolete_automake_macros.patch \
file://system_map_location.patch \
file://configure-allow-to-disable-libvirt.patch \
file://x32_abi_time.patch \
+ file://monitor-option.patch \
"
# systemtap doesn't support mips
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch
deleted file mode 100644
index 0ead0cdaf..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/0001-topology-Add-missing-include-sys-stat.h.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3f1dba9a821b53b42001605f9a126a958804884f Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Mon, 9 Nov 2015 13:37:26 +0100
-Subject: [PATCH] topology: Add missing include sys/stat.h
-
-Necessary for proper definitions of S_IRUSR & co. Otherwise it
-results in compile errors with old glibc and uclibc:
- parser.c: In function 'snd_tplg_build_file':
- parser.c:262: error: 'S_IRUSR' undeclared (first use in this function)
- parser.c:262: error: (Each undeclared identifier is reported only once
- parser.c:262: error: for each function it appears in.)
-
-Upstream-Status: Backport
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- src/topology/parser.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/topology/parser.c b/src/topology/parser.c
-index 80a0ae0..18bb9c7 100644
---- a/src/topology/parser.c
-+++ b/src/topology/parser.c
-@@ -16,6 +16,7 @@
- Liam Girdwood <liam.r.girdwood@linux.intel.com>
- */
-
-+#include <sys/stat.h>
- #include "list.h"
- #include "tplg_local.h"
-
---
-2.4.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch
index 161619b27..3d4458593 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib/avoid-including-sys-poll.h-directly.patch
@@ -1,4 +1,4 @@
-From 7dcf46969e85c881c901df4b49309e9091cad16a Mon Sep 17 00:00:00 2001
+From c2c13cf0c469862cd39b2a69862002331ab7c8cb Mon Sep 17 00:00:00 2001
From: Andre McCurdy <armccurdy@gmail.com>
Date: Tue, 9 Feb 2016 14:01:18 -0800
Subject: [PATCH] avoid including <sys/poll.h> directly
@@ -24,7 +24,7 @@ Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
12 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/aserver/aserver.c b/aserver/aserver.c
-index 1579da7..ef64248 100644
+index ac20706..46f731a 100644
--- a/aserver/aserver.c
+++ b/aserver/aserver.c
@@ -20,7 +20,7 @@
@@ -62,7 +62,7 @@ index 3c2766e..a546194 100644
#include <stdarg.h>
#include <endian.h>
diff --git a/include/local.h b/include/local.h
-index b429f5d..e05898f 100644
+index 317f2e3..6a43a47 100644
--- a/include/local.h
+++ b/include/local.h
@@ -47,7 +47,7 @@
@@ -73,20 +73,20 @@ index b429f5d..e05898f 100644
+#include <poll.h>
#include <sys/types.h>
#include <errno.h>
- #include <linux/types.h>
+ #if defined(__linux__)
diff --git a/src/control/control.c b/src/control/control.c
-index 4a28cf6..071c5db 100644
+index 6c00b8e..fd0c303 100644
--- a/src/control/control.c
+++ b/src/control/control.c
-@@ -48,7 +48,7 @@ and IEC958 structure.
+@@ -90,7 +90,7 @@ I/O operations.
#include <string.h>
#include <fcntl.h>
#include <signal.h>
-#include <sys/poll.h>
+#include <poll.h>
+ #include <stdbool.h>
#include "control_local.h"
- /**
diff --git a/src/control/control_shm.c b/src/control/control_shm.c
index bd07d4a..9a2e268 100644
--- a/src/control/control_shm.c
@@ -101,7 +101,7 @@ index bd07d4a..9a2e268 100644
#include <sys/uio.h>
#include <sys/mman.h>
diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c
-index fd3877c..52ac093 100644
+index c3925cc..18f1dd5 100644
--- a/src/pcm/pcm_direct.c
+++ b/src/pcm/pcm_direct.c
@@ -30,7 +30,7 @@
@@ -114,7 +114,7 @@ index fd3877c..52ac093 100644
#include <sys/sem.h>
#include <sys/wait.h>
diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c
-index 5c4fbe1..2cfa7db 100644
+index 1948289..4cf220a 100644
--- a/src/pcm/pcm_mmap.c
+++ b/src/pcm/pcm_mmap.c
@@ -22,7 +22,7 @@
@@ -153,7 +153,7 @@ index a815ac6..4ee958c 100644
#include <sys/mman.h>
#include <netinet/in.h>
diff --git a/src/seq/seq.c b/src/seq/seq.c
-index 620ca3f..681cef1 100644
+index 9279830..d2027cb 100644
--- a/src/seq/seq.c
+++ b/src/seq/seq.c
@@ -777,7 +777,7 @@ void event_filter(snd_seq_t *seq, snd_seq_event_t *ev)
@@ -179,5 +179,5 @@ index 9843aa8..eaa71f0 100644
#include <sys/shm.h>
#include "list.h"
--
-1.9.1
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb
deleted file mode 100644
index a73da2882..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.0.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "ALSA sound library"
-HOMEPAGE = "http://www.alsa-project.org"
-BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
-SECTION = "libs/multimedia"
-LICENSE = "LGPLv2.1 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
- file://src/socket.c;beginline=1;endline=26;md5=11ff89a8a7a4a690a5c78effe8159545"
-
-BBCLASSEXTEND = "native nativesdk"
-
-# configure.in sets -D__arm__ on the command line for any arm system
-# (not just those with the ARM instruction set), this should be removed,
-# (or replaced by a permitted #define).
-#FIXME: remove the following
-ARM_INSTRUCTION_SET = "arm"
-
-SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/${BP}.tar.bz2 \
- file://Check-if-wordexp-function-is-supported.patch \
- file://avoid-including-sys-poll.h-directly.patch \
- file://0001-topology-Add-missing-include-sys-stat.h.patch \
-"
-SRC_URI[md5sum] = "69515ca73c3c4a212ef45160dea846c1"
-SRC_URI[sha256sum] = "dfde65d11e82b68f82e562ab6228c1fb7c78854345d3c57e2c68a9dd3dae1f15"
-
-inherit autotools pkgconfig
-
-require alsa-fpu.inc
-EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
-
-EXTRA_OECONF = "--disable-python"
-
-EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no "
-
-PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc"
-FILES_${PN} += "${libdir}/${BPN}/smixer/*.so"
-FILES_${PN}-dev += "${libdir}/${BPN}/smixer/*.la"
-FILES_libasound = "${libdir}/libasound.so.*"
-FILES_alsa-server = "${bindir}/*"
-FILES_alsa-conf = "${datadir}/alsa/"
-FILES_alsa-conf-base = "\
-${datadir}/alsa/alsa.conf \
-${datadir}/alsa/cards/aliases.conf \
-${datadir}/alsa/pcm/default.conf \
-${datadir}/alsa/pcm/dmix.conf \
-${datadir}/alsa/pcm/dsnoop.conf"
-
-RDEPENDS_libasound = "alsa-conf-base alsa-conf"
-# upgrade path
-RPROVIDES_${PN}-dev = "alsa-dev"
-RREPLACES_${PN}-dev = "alsa-dev"
-RCONFLICTS_${PN}-dev = "alsa-dev"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.2.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.2.bb
new file mode 100644
index 000000000..e313da78e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-lib_1.1.2.bb
@@ -0,0 +1,44 @@
+SUMMARY = "ALSA sound library"
+HOMEPAGE = "http://www.alsa-project.org"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
+SECTION = "libs/multimedia"
+LICENSE = "LGPLv2.1 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
+ file://src/socket.c;beginline=1;endline=26;md5=11ff89a8a7a4a690a5c78effe8159545"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/${BP}.tar.bz2 \
+ file://Check-if-wordexp-function-is-supported.patch \
+ file://avoid-including-sys-poll.h-directly.patch \
+"
+SRC_URI[md5sum] = "1946e6438b8262a7b8fdadacd0e06ba7"
+SRC_URI[sha256sum] = "d38dacd9892b06b8bff04923c380b38fb2e379ee5538935ff37e45b395d861d6"
+
+inherit autotools pkgconfig
+
+require alsa-fpu.inc
+EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
+
+EXTRA_OECONF = "--disable-python"
+
+EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no "
+
+PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc"
+FILES_${PN} += "${libdir}/${BPN}/smixer/*.so"
+FILES_${PN}-dev += "${libdir}/${BPN}/smixer/*.la"
+FILES_libasound = "${libdir}/libasound.so.*"
+FILES_alsa-server = "${bindir}/*"
+FILES_alsa-conf = "${datadir}/alsa/"
+FILES_alsa-conf-base = "\
+${datadir}/alsa/alsa.conf \
+${datadir}/alsa/cards/aliases.conf \
+${datadir}/alsa/pcm/default.conf \
+${datadir}/alsa/pcm/dmix.conf \
+${datadir}/alsa/pcm/dsnoop.conf"
+
+RDEPENDS_libasound = "alsa-conf-base alsa-conf"
+# upgrade path
+RPROVIDES_${PN}-dev = "alsa-dev"
+RREPLACES_${PN}-dev = "alsa-dev"
+RCONFLICTS_${PN}-dev = "alsa-dev"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
deleted file mode 100644
index 8e5b6a2a2..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins/0001-pph-include-config.h-from-rate_speexrate.c.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4350314c941489833a8baa930e16512e55f72a13 Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Wed, 27 Jan 2016 13:22:38 +0200
-Subject: [PATCH] pph: include config.h from rate_speexrate.c
-
-Fixes compilation against libspeexdsp 1.2rc3.
-
-rate_speexrate.c includes speex_resampler.h, which depends on config.h
-by referencing the HAVE_SPEEX_SPEEXDSP_TYPES_H macro. AFAIK it's not
-a good idea to include config.h from headers (I don't know/remember
-why, though), which is why I include config.h from rate_speexrate.c
-instead of speex_resampler.h.
-
-Upstream-Status: Accepted [expected in 1.1.1]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- pph/rate_speexrate.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pph/rate_speexrate.c b/pph/rate_speexrate.c
-index 0a1325c..8fc4cef 100644
---- a/pph/rate_speexrate.c
-+++ b/pph/rate_speexrate.c
-@@ -28,6 +28,7 @@
- POSSIBILITY OF SUCH DAMAGE.
- */
-
-+#include "config.h"
- #include <stdio.h>
- #include <alsa/asoundlib.h>
- #include <alsa/pcm_rate.h>
---
-2.7.0.rc3
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb
deleted file mode 100644
index fec657530..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.0.bb
+++ /dev/null
@@ -1,105 +0,0 @@
-SUMMARY = "ALSA Plugins"
-HOMEPAGE = "http://alsa-project.org"
-SECTION = "multimedia"
-
-# The primary license of alsa-plugins is LGPLv2.1.
-#
-# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the
-# build system, and doesn't affect the licensing of the build result.
-#
-# The samplerate plugin source code is licensed under GPLv2+ to be consistent
-# with the libsamplerate license. However, if the licensee has a commercial
-# license for libsamplerate, the samplerate plugin may be used under the terms
-# of LGPLv2.1 like the rest of the plugins.
-LICENSE = "LGPLv2.1 & GPLv2+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
- file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://m4/attributes.m4;endline=33;md5=b25958da44c02231e3641f1bccef53eb \
- file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
-"
-
-SRC_URI = "\
- ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2 \
- file://0001-pph-include-config.h-from-rate_speexrate.c.patch \
-"
-SRC_URI[md5sum] = "b123e42ed881b9adbc99e4040f257c39"
-SRC_URI[sha256sum] = "3b83c329953bef99f5fe25ae04ec4a455fe6514939f3b45a5321966652b2c9ee"
-
-DEPENDS += "alsa-lib"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "\
- samplerate \
- speexdsp \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-"
-PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec,libav"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
-PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus"
-PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
-PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0"
-PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp"
-
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
-
-PACKAGES_DYNAMIC = "^libasound-module-.*"
-
-# The alsa-plugins package doesn't itself contain anything, it just depends on
-# all built plugins.
-ALLOW_EMPTY_${PN} = "1"
-
-do_install_append() {
- rm ${D}${libdir}/alsa-lib/*.la
-
- # We use the example as is, so just drop the .example suffix.
- if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
- mv ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
- fi
-}
-
-python populate_packages_prepend() {
- plugindir = bb.data.expand('${libdir}/alsa-lib/', d)
- packages = " ".join(do_split_packages(d, plugindir, '^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends=''))
- d.setVar("RDEPENDS_alsa-plugins", packages)
-}
-
-# The rate plugins create some symlinks. For example, the samplerate plugin
-# creates these links to the main plugin file:
-#
-# libasound_module_rate_samplerate_best.so
-# libasound_module_rate_samplerate_linear.so
-# libasound_module_rate_samplerate_medium.so
-# libasound_module_rate_samplerate_order.so
-#
-# The other rate plugins create similar links. We have to add the links to
-# FILES manually, because do_split_packages() skips the links (which is good,
-# because we wouldn't want do_split_packages() to create separate packages for
-# the symlinks).
-#
-# The symlinks cause QA errors, because usually it's a bug if a non
-# -dev/-dbg/-nativesdk package contains links to .so files, but in this case
-# the errors are false positives, so we disable the QA checks.
-FILES_${MLPREFIX}libasound-module-rate-lavcrate += "${libdir}/alsa-lib/*rate_lavcrate_*.so"
-FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so"
-FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so"
-INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavcrate = "dev-so"
-INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so"
-INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so"
-
-# 50-pulseaudio.conf defines a device named "pulse" that applications can use
-# if they explicitly want to use the PulseAudio plugin.
-# 99-pulseaudio-default.conf configures the "default" device to use the
-# PulseAudio plugin.
-FILES_${PN}-pulseaudio-conf += "\
- ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \
- ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \
-"
-
-RDEPENDS_${PN}-pulseaudio-conf += "\
- libasound-module-conf-pulse \
- libasound-module-ctl-pulse \
- libasound-module-pcm-pulse \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.1.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.1.bb
new file mode 100644
index 000000000..c95ea5416
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-plugins_1.1.1.bb
@@ -0,0 +1,103 @@
+SUMMARY = "ALSA Plugins"
+HOMEPAGE = "http://alsa-project.org"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
+SECTION = "multimedia"
+
+# The primary license of alsa-plugins is LGPLv2.1.
+#
+# m4/attributes.m4 is licensed under GPLv2+. m4/attributes.m4 is part of the
+# build system, and doesn't affect the licensing of the build result.
+#
+# The samplerate plugin source code is licensed under GPLv2+ to be consistent
+# with the libsamplerate license. However, if the licensee has a commercial
+# license for libsamplerate, the samplerate plugin may be used under the terms
+# of LGPLv2.1 like the rest of the plugins.
+LICENSE = "LGPLv2.1 & GPLv2+"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
+ file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://m4/attributes.m4;endline=33;md5=b25958da44c02231e3641f1bccef53eb \
+ file://rate/rate_samplerate.c;endline=35;md5=fd77bce85f4a338c0e8ab18430b69fae \
+"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/plugins/${BP}.tar.bz2"
+SRC_URI[md5sum] = "69f9f3e2de3c97fc71d496e91e271fe5"
+SRC_URI[sha256sum] = "8ea4d1e082c36528a896a2581e5eb62d4dc2683238e353050d0d624e65f901f1"
+
+DEPENDS += "alsa-lib"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "\
+ samplerate \
+ speexdsp \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
+"
+PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec,libav"
+PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
+PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
+PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus"
+PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
+PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0"
+PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp"
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
+
+PACKAGES_DYNAMIC = "^libasound-module-.*"
+
+# The alsa-plugins package doesn't itself contain anything, it just depends on
+# all built plugins.
+ALLOW_EMPTY_${PN} = "1"
+
+do_install_append() {
+ rm ${D}${libdir}/alsa-lib/*.la
+
+ # We use the example as is, so just drop the .example suffix.
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'yes', 'no', d)}" = "yes" ]; then
+ mv ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf.example ${D}${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
+ fi
+}
+
+python populate_packages_prepend() {
+ plugindir = bb.data.expand('${libdir}/alsa-lib/', d)
+ packages = " ".join(do_split_packages(d, plugindir, '^libasound_module_(.*)\.so$', 'libasound-module-%s', 'Alsa plugin for %s', extra_depends=''))
+ d.setVar("RDEPENDS_alsa-plugins", packages)
+}
+
+# The rate plugins create some symlinks. For example, the samplerate plugin
+# creates these links to the main plugin file:
+#
+# libasound_module_rate_samplerate_best.so
+# libasound_module_rate_samplerate_linear.so
+# libasound_module_rate_samplerate_medium.so
+# libasound_module_rate_samplerate_order.so
+#
+# The other rate plugins create similar links. We have to add the links to
+# FILES manually, because do_split_packages() skips the links (which is good,
+# because we wouldn't want do_split_packages() to create separate packages for
+# the symlinks).
+#
+# The symlinks cause QA errors, because usually it's a bug if a non
+# -dev/-dbg/-nativesdk package contains links to .so files, but in this case
+# the errors are false positives, so we disable the QA checks.
+FILES_${MLPREFIX}libasound-module-rate-lavcrate += "${libdir}/alsa-lib/*rate_lavcrate_*.so"
+FILES_${MLPREFIX}libasound-module-rate-samplerate += "${libdir}/alsa-lib/*rate_samplerate_*.so"
+FILES_${MLPREFIX}libasound-module-rate-speexrate += "${libdir}/alsa-lib/*rate_speexrate_*.so"
+INSANE_SKIP_${MLPREFIX}libasound-module-rate-lavcrate = "dev-so"
+INSANE_SKIP_${MLPREFIX}libasound-module-rate-samplerate = "dev-so"
+INSANE_SKIP_${MLPREFIX}libasound-module-rate-speexrate = "dev-so"
+
+# 50-pulseaudio.conf defines a device named "pulse" that applications can use
+# if they explicitly want to use the PulseAudio plugin.
+# 99-pulseaudio-default.conf configures the "default" device to use the
+# PulseAudio plugin.
+FILES_${PN}-pulseaudio-conf += "\
+ ${datadir}/alsa/alsa.conf.d/50-pulseaudio.conf \
+ ${datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf \
+"
+
+RDEPENDS_${PN}-pulseaudio-conf += "\
+ libasound-module-conf-pulse \
+ libasound-module-ctl-pulse \
+ libasound-module-pcm-pulse \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch
new file mode 100644
index 000000000..bf95cac44
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools/0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch
@@ -0,0 +1,75 @@
+From 1cc0aa4dbd3c7f1267809e0e1ca57d46f4803bfd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 17 Apr 2016 23:25:18 +0000
+Subject: [PATCH] Cus428Midi: Explicitly cast constant to char type
+
+This is flagged by gcc6
+Cus428Midi.cc:83:1: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ us428control/Cus428Midi.cc | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/us428control/Cus428Midi.cc b/us428control/Cus428Midi.cc
+index b9e6783..bef7bb1 100644
+--- a/us428control/Cus428Midi.cc
++++ b/us428control/Cus428Midi.cc
+@@ -32,22 +32,22 @@ char Cus428Midi::KnobParam[] = {
+ 0x2A,
+ 0x29,
+ 0x28,
+- -1,
++ static_cast<char>(-1),
+ 0x10,
+ 0x11,
+ 0x18,
+ 0x19,
+ 0x1A,
+- -1,
+- -1,
+- -1,
+- -1,
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
+ 0x2C,
+ 0x2D,
+ 0x2E,
+ 0x2F,
+- -1,
+- -1,
++ static_cast<char>(-1),
++ static_cast<char>(-1),
+ 0x20,
+ 0x21,
+ 0x22,
+@@ -64,14 +64,14 @@ char Cus428Midi::KnobParam[] = {
+ 5,
+ 6,
+ 7,
+- -1,
+- -1,
+- -1,
+- -1,
+- -1,
+- -1,
+- -1,
+- -1,
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
++ static_cast<char>(-1),
+ 0x30,
+ 0x31,
+ 0x32,
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
index 9e633f1f7..8d4a14658 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-tools_1.1.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "Advanced tools for certain ALSA sound card drivers"
HOMEPAGE = "http://www.alsa-project.org"
-BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
SECTION = "console/utils"
LICENSE = "GPLv2 & LGPLv2+"
DEPENDS = "alsa-lib ncurses glib-2.0"
@@ -10,11 +10,11 @@ LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae1
SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/${BP}.tar.bz2 \
file://autotools.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', \
- 'file://makefile_no_gtk.patch', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'file://makefile_no_gtk.patch', d)} \
file://gitcompile_hdajacksensetest \
file://0001-as10k1-Make-output_tram_line-static-inline.patch \
- "
+ file://0001-Cus428Midi-Explicitly-cast-constant-to-char-type.patch \
+ "
SRC_URI[md5sum] = "b476a5afaa3ea3230855553ad59d259d"
SRC_URI[sha256sum] = "7d34558c590a50294b36576d257316a1ac5cd951eb8cd7d330e09f8cc757ab51"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb
deleted file mode 100644
index a98f9b90b..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require alsa-utils_${PV}.bb
-
-SUMMARY = "Shell scripts that show help info and create ALSA configuration files"
-PROVIDES = "alsa-utils-alsaconf"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:"
-
-PACKAGES = "${PN}"
-RDEPENDS_${PN} += "bash"
-
-FILES_${PN} = "${sbindir}/alsaconf \
- ${sbindir}/alsa-info.sh \
- "
-
-S = "${WORKDIR}/alsa-utils-${PV}"
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/
- install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.2.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.2.bb
new file mode 100644
index 000000000..fef79d9c9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.1.2.bb
@@ -0,0 +1,25 @@
+require alsa-utils_${PV}.bb
+
+SUMMARY = "Shell scripts that show help info and create ALSA configuration files"
+PROVIDES = "alsa-utils-alsaconf"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:"
+
+PACKAGES = "${PN}"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} = "${sbindir}/alsaconf \
+ ${sbindir}/alsa-info.sh \
+ ${sbindir}/alsabat-test.sh \
+ "
+
+S = "${WORKDIR}/alsa-utils-${PV}"
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/
+ install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/
+ if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then
+ install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
deleted file mode 100644
index b6d7d4f0d..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsabat-rename-to-avoid-naming-conflict.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 28c29dece6c434e7d3d01e805555ba7ddf6fba65 Mon Sep 17 00:00:00 2001
-From: "Lu, Han" <han.lu@intel.com>
-Date: Wed, 3 Feb 2016 14:20:33 +0800
-Subject: [PATCH] alsabat: rename to avoid naming conflict
-
-alsa-utils as well as bareos-bat (as well a some Bacula packages)
-all contain a program called /usr/bin/bat, which causes conflicts on
-various distributions ("basic audio tester" vs "bareos administration
-tool"("bacula administration tool")).
-Rename to avoid conflict.
-
-Signed-off-by: Lu, Han <han.lu@intel.com>
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
-Upstream-Status: Accepted [expected in version 1.1.1]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- bat/Makefile.am | 10 +++++-----
- bat/{bat.1 => alsabat.1} | 43 ++++++++++++++++++++++---------------------
- bat/bat.c | 2 +-
- 3 files changed, 28 insertions(+), 27 deletions(-)
- rename bat/{bat.1 => alsabat.1} (72%)
-
-diff --git a/bat/Makefile.am b/bat/Makefile.am
-index 842ae6b..985f00c 100644
---- a/bat/Makefile.am
-+++ b/bat/Makefile.am
-@@ -1,9 +1,9 @@
--bin_PROGRAMS = bat
--man_MANS = bat.1
-+bin_PROGRAMS = alsabat
-+man_MANS = alsabat.1
-
--EXTRA_DIST = bat.1
-+EXTRA_DIST = alsabat.1
-
--bat_SOURCES = \
-+alsabat_SOURCES = \
- bat.c \
- common.c \
- analyze.c \
-@@ -21,4 +21,4 @@ noinst_HEADERS = \
- AM_CPPFLAGS = \
- -Wall -I$(top_srcdir)/include
-
--bat_LDADD = @FFTW_LIB@
-+alsabat_LDADD = @FFTW_LIB@
-diff --git a/bat/bat.1 b/bat/alsabat.1
-similarity index 72%
-rename from bat/bat.1
-rename to bat/alsabat.1
-index e00fc27..8d0b9c0 100644
---- a/bat/bat.1
-+++ b/bat/alsabat.1
-@@ -1,23 +1,23 @@
--.TH BAT 1 "20th October 2015"
-+.TH ALSABAT 1 "20th October 2015"
- .SH NAME
--bat \- command\-line sound tester for ALSA sound card driver
-+alsabat \- command\-line sound tester for ALSA sound card driver
-
- .SH SYNOPSIS
--\fBbat\fP [\fIflags\fP]
-+\fBalsabat\fP [\fIflags\fP]
-
- .SH DESCRIPTION
--\fBBAT(Basic Audio Tester)\fP is a simple command\-line utility intended
--to help automate audio driver and sound server testing with little human
--interaction. BAT can be used to test audio quality, stress test features
--and test audio before and after PM state changes.
-+\fBALSABAT(ALSA Basic Audio Tester)\fP is a simple command\-line utility
-+intended to help automate audio driver and sound server testing with little
-+human interaction. ALSABAT can be used to test audio quality, stress test
-+features and test audio before and after PM state changes.
-
--BAT's design is relatively simple. BAT plays an audio stream and captures
--the same stream in either a digital or analog loop back. It then compares
--the captured stream using a FFT to the original to determine if the test
--case passes or fails.
-+ALSABAT's design is relatively simple. ALSABAT plays an audio stream and
-+captures the same stream in either a digital or analog loop back. It then
-+compares the captured stream using a FFT to the original to determine if
-+the test case passes or fails.
-
--BAT can either run wholly on the target machine being tested (standalone
--mode) or can run as a client/server mode where by bat client runs on the
-+ALSABAT can either run wholly on the target machine being tested (standalone
-+mode) or can run as a client/server mode where by alsabat client runs on the
- target and runs as a server on a separate tester machine. The client/server
- mode still requires some manual interaction for synchronization, but this
- is actively being developed for future releases.
-@@ -93,8 +93,8 @@ Frequencies with amplitude larger than threshold will be recognized as a
- peak, and the frequency with largest peak value will be recognized as a
- detected frequency.
- .br
--BAT then compares the detected frequency to target frequency, to decide
--if the detecting passes or fails.
-+ALSABAT then compares the detected frequency to target frequency, to
-+decide if the detecting passes or fails.
- .br
- The default value is 3.0.
- .TP
-@@ -117,18 +117,19 @@ Target WAV file to save capture test content.
- .TP
- \fI\-\-local\fP
- Internal loopback mode.
--Playback, capture and analysis internal to BAT only. This is intended for
--developers to test new BAT features as no audio is routed outside of BAT.
-+Playback, capture and analysis internal to ALSABAT only. This is intended
-+for developers to test new ALSABAT features as no audio is routed outside
-+of ALSABAT.
-
- .SH EXAMPLES
-
- .TP
--\fBbat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
-+\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
- Generate and play a sine wave of 250 Hertz with 2 channel and S32_LE format,
- and then capture and analyze.
-
- .TP
--\fBbat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
-+\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
- Play the RIFF WAV file "500Hz.wav" which contains 500 Hertz waveform LPCM
- data, and then capture and analyze.
-
-@@ -152,7 +153,7 @@ Currently only support RIFF WAV format with PCM data. Please report any bugs to
- the alsa-devel mailing list.
-
- .SH AUTHOR
--\fBbat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard Gautier
--<bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
-+\fBalsabat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard
-+Gautier <bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
- This document is by Liam Girdwood <liam.r.girdwood@linux.intel.com> and Han Lu
- <han.lu@intel.com>.
-diff --git a/bat/bat.c b/bat/bat.c
-index 086b9fa..ddb60b7 100644
---- a/bat/bat.c
-+++ b/bat/bat.c
-@@ -272,7 +272,7 @@ static void test_capture(struct bat *bat)
- static void usage(struct bat *bat)
- {
- fprintf(bat->log,
--_("Usage: bat [-options]...\n"
-+_("Usage: alsabat [-options]...\n"
- "\n"
- " -h, --help this help\n"
- " -D pcm device for both playback and capture\n"
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb
deleted file mode 100644
index af4048818..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.0.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-SUMMARY = "ALSA sound utilities"
-HOMEPAGE = "http://www.alsa-project.org"
-BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://alsactl/utils.c;beginline=1;endline=20;md5=fe9526b055e246b5558809a5ae25c0b9"
-DEPENDS = "alsa-lib ncurses libsamplerate0"
-
-PACKAGECONFIG ??= "udev"
-PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftw"
-PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev"
-PACKAGECONFIG[xmlto] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-
-SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
- file://0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch \
- file://0001-alsabat-rename-to-avoid-naming-conflict.patch \
- "
-
-SRC_URI[md5sum] = "b9d6102fbbd0b68040bb77023ed30c0c"
-SRC_URI[sha256sum] = "3b1c3135b76e14532d3dd23fb15759ddd7daf9ffbc183f7a9a0a3a86374748f1"
-
-# lazy hack. needs proper fixing in gettext.m4, see
-# http://bugs.openembedded.org/show_bug.cgi?id=2348
-# please close bug and remove this comment when properly fixed
-#
-EXTRA_OECONF_append_libc-uclibc = " --disable-nls"
-
-inherit autotools gettext pkgconfig
-
-# This are all packages that we need to make. Also, the now empty alsa-utils
-# ipk depends on them.
-
-ALSA_UTILS_PKGS = "\
- ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \
- alsa-utils-alsamixer \
- alsa-utils-alsatplg \
- alsa-utils-midi \
- alsa-utils-aplay \
- alsa-utils-amixer \
- alsa-utils-aconnect \
- alsa-utils-iecset \
- alsa-utils-speakertest \
- alsa-utils-aseqnet \
- alsa-utils-aseqdump \
- alsa-utils-alsactl \
- alsa-utils-alsaloop \
- alsa-utils-alsaucm \
- "
-
-PACKAGES += "${ALSA_UTILS_PKGS}"
-RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}"
-
-FILES_${PN} = ""
-FILES_alsa-utils-alsabat = "${bindir}/alsabat"
-FILES_alsa-utils-alsatplg = "${bindir}/alsatplg"
-FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
-FILES_alsa-utils-amixer = "${bindir}/amixer"
-FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
-FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
-FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
-FILES_alsa-utils-aconnect = "${bindir}/aconnect"
-FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
-FILES_alsa-utils-iecset = "${bindir}/iecset"
-FILES_alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d */*/udev/rules.d ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
-FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
-FILES_alsa-utils-alsaloop = "${bindir}/alsaloop"
-FILES_alsa-utils-alsaucm = "${bindir}/alsaucm"
-
-SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
-SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
-SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA"
-SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
-SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
-SUMMARY_alsa-utils-speakertest = "ALSA surround speaker test utility"
-SUMMARY_alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA"
-SUMMARY_alsa-utils-aconnect = "ALSA sequencer connection manager"
-SUMMARY_alsa-utils-aseqnet = "Network client/server for ALSA sequencer"
-SUMMARY_alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
-SUMMARY_alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state"
-SUMMARY_alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port"
-SUMMARY_alsa-utils-alsaloop = "ALSA PCM loopback utility"
-SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager"
-
-RRECOMMENDS_alsa-utils-alsactl = "alsa-states"
-
-ALLOW_EMPTY_alsa-utils = "1"
-
-do_install() {
- autotools_do_install
-
- # We don't ship this here because it requires a dependency on bash.
- # See alsa-utils-scripts_${PV}.bb
- rm ${D}${sbindir}/alsaconf
- rm ${D}${sbindir}/alsa-info.sh
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'udev', 'false', 'true', d)}; then
- # This is where alsa-utils will install its rules if we don't tell it anything else.
- rm -rf ${D}/lib/udev
- rmdir --ignore-fail-on-non-empty ${D}/lib
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.2.bb b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.2.bb
new file mode 100644
index 000000000..a22d999fb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/alsa/alsa-utils_1.1.2.bb
@@ -0,0 +1,109 @@
+SUMMARY = "ALSA sound utilities"
+HOMEPAGE = "http://www.alsa-project.org"
+BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking"
+SECTION = "console/utils"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://alsactl/utils.c;beginline=1;endline=20;md5=fe9526b055e246b5558809a5ae25c0b9"
+DEPENDS = "alsa-lib ncurses libsamplerate0"
+
+PACKAGECONFIG ??= "udev"
+
+# alsabat can be built also without fftw support (with reduced functionality).
+# It would be better to always enable alsabat, but provide an option for
+# enabling/disabling fftw. The configure script doesn't support that, however
+# (at least in any obvious way), so for now we only support alsabat with fftw
+# or no alsabat at all.
+PACKAGECONFIG[bat] = "--enable-bat,--disable-bat,fftwf"
+
+PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev"
+PACKAGECONFIG[xmlto] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
+
+SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
+ file://0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch \
+ "
+
+SRC_URI[md5sum] = "38ac7c781f80c41c02b4664d8cbafa87"
+SRC_URI[sha256sum] = "7af603c0877d1251599d65b4fbc372e63a54371b888f5c26c6a86ac1d0519071"
+
+# lazy hack. needs proper fixing in gettext.m4, see
+# http://bugs.openembedded.org/show_bug.cgi?id=2348
+# please close bug and remove this comment when properly fixed
+#
+EXTRA_OECONF_append_libc-uclibc = " --disable-nls"
+
+inherit autotools gettext pkgconfig
+
+# This are all packages that we need to make. Also, the now empty alsa-utils
+# ipk depends on them.
+
+ALSA_UTILS_PKGS = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'alsa-utils-alsabat', '', d)} \
+ alsa-utils-alsamixer \
+ alsa-utils-alsatplg \
+ alsa-utils-midi \
+ alsa-utils-aplay \
+ alsa-utils-amixer \
+ alsa-utils-aconnect \
+ alsa-utils-iecset \
+ alsa-utils-speakertest \
+ alsa-utils-aseqnet \
+ alsa-utils-aseqdump \
+ alsa-utils-alsactl \
+ alsa-utils-alsaloop \
+ alsa-utils-alsaucm \
+ "
+
+PACKAGES += "${ALSA_UTILS_PKGS}"
+RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}"
+
+FILES_${PN} = ""
+FILES_alsa-utils-alsabat = "${bindir}/alsabat"
+FILES_alsa-utils-alsatplg = "${bindir}/alsatplg"
+FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
+FILES_alsa-utils-amixer = "${bindir}/amixer"
+FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
+FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
+FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
+FILES_alsa-utils-aconnect = "${bindir}/aconnect"
+FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
+FILES_alsa-utils-iecset = "${bindir}/iecset"
+FILES_alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d */*/udev/rules.d ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
+FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
+FILES_alsa-utils-alsaloop = "${bindir}/alsaloop"
+FILES_alsa-utils-alsaucm = "${bindir}/alsaucm"
+
+SUMMARY_alsa-utils-alsabat = "Command-line sound tester for ALSA sound card driver"
+SUMMARY_alsa-utils-alsatplg = "Converts topology text files into binary format for kernel"
+SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA"
+SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
+SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
+SUMMARY_alsa-utils-speakertest = "ALSA surround speaker test utility"
+SUMMARY_alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA"
+SUMMARY_alsa-utils-aconnect = "ALSA sequencer connection manager"
+SUMMARY_alsa-utils-aseqnet = "Network client/server for ALSA sequencer"
+SUMMARY_alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
+SUMMARY_alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state"
+SUMMARY_alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port"
+SUMMARY_alsa-utils-alsaloop = "ALSA PCM loopback utility"
+SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager"
+
+RRECOMMENDS_alsa-utils-alsactl = "alsa-states"
+
+ALLOW_EMPTY_alsa-utils = "1"
+
+do_install() {
+ autotools_do_install
+
+ # We don't ship this here because it requires a dependency on bash.
+ # See alsa-utils-scripts_${PV}.bb
+ rm ${D}${sbindir}/alsaconf
+ rm ${D}${sbindir}/alsa-info.sh
+ rm -f ${D}${sbindir}/alsabat-test.sh
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'udev', 'false', 'true', d)}; then
+ # This is where alsa-utils will install its rules if we don't tell it anything else.
+ rm -rf ${D}/lib/udev
+ rmdir --ignore-fail-on-non-empty ${D}/lib
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch b/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
new file mode 100644
index 000000000..69429af8f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
@@ -0,0 +1,32 @@
+It will add -mips64r6 and -mips64r2 to cmdline which will
+cause conflicts
+
+in OE we user mips32r2 and mips64r2 for mips arch versions
+so there is no benefit of detecting it automatically by
+poking at tools especially in cross env
+
+Fixes errors like
+
+linking -mnan=2008 module with previous -mnan=legacy modules
+failed to merge target specific data of file
+
+-Khem
+Upstream-Status: Inappropriate [OE-Specific]
+
+Index: ffmpeg-3.1.1/configure
+===================================================================
+--- ffmpeg-3.1.1.orig/configure
++++ ffmpeg-3.1.1/configure
+@@ -5220,12 +5220,9 @@ elif enabled mips; then
+
+ # Enable minimum ISA based on selected options
+ if enabled mips64; then
+- enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
+ enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
+ disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
+ else
+- enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
+- enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
+ enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
+ disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'
+ fi
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb
deleted file mode 100644
index 1dfbb9b04..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.0.bb
+++ /dev/null
@@ -1,139 +0,0 @@
-SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
-DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
- mux, demux, stream, filter and play pretty much anything that humans and machines \
- have created. It supports the most obscure ancient formats up to the cutting edge."
-HOMEPAGE = "https://www.ffmpeg.org/"
-SECTION = "libs"
-
-LICENSE = "GPLv2+"
-LICENSE_FLAGS = "commercial"
-
-LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
- file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "ef9b6634bb7c920efc940b4d55adf7b2"
-SRC_URI[sha256sum] = "12f32cee41c74435f608c30793fd616bdf53467bb513278e273e135a4c58e470"
-
-# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
-ARM_INSTRUCTION_SET = "arm"
-
-# Should be API compatible with libav (which was a fork of ffmpeg)
-# libpostproc was previously packaged from a separate recipe
-PROVIDES = "libav libpostproc"
-
-DEPENDS = "alsa-lib zlib libogg yasm-native"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
- bzlib gpl lzma theora x264 \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xv', '', d)}"
-
-# libraries to build in addition to avutil
-PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
-PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
-PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
-PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
-PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
-PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
-PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
-PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
-
-# features to support
-PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
-PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
-PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
-PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
-PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
-PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
-PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
-PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
-PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
-PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger"
-PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
-PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-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"
-PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
-
-# Check codecs that require --enable-nonfree
-USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'faac', 'openssl' ], 'yes', '', d)}"
-
-EXTRA_OECONF = " \
- --disable-stripping \
- --enable-pic \
- --enable-shared \
- --enable-pthreads \
- ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
- \
- --cross-prefix=${TARGET_PREFIX} \
- \
- --ld="${CCLD}" \
- --arch=${TARGET_ARCH} \
- --target-os="linux" \
- --enable-cross-compile \
- --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
- --extra-ldflags="${TARGET_LDFLAGS}" \
- --sysroot="${STAGING_DIR_TARGET}" \
- --enable-hardcoded-tables \
- ${EXTRA_FFCONF} \
- --libdir=${libdir} \
- --shlibdir=${libdir} \
- --datadir=${datadir}/ffmpeg \
-"
-
-do_configure() {
- ${S}/configure ${EXTRA_OECONF}
-}
-
-PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util|resample)|swscale|swresample|postproc).*"
-
-# ffmpeg disables PIC on some platforms (e.g. x86-32)
-INSANE_SKIP_${MLPREFIX}libavcodec = "textrel"
-INSANE_SKIP_${MLPREFIX}libavdevice = "textrel"
-INSANE_SKIP_${MLPREFIX}libavfilter = "textrel"
-INSANE_SKIP_${MLPREFIX}libavformat = "textrel"
-INSANE_SKIP_${MLPREFIX}libavutil = "textrel"
-INSANE_SKIP_${MLPREFIX}libavresample = "textrel"
-INSANE_SKIP_${MLPREFIX}libswscale = "textrel"
-INSANE_SKIP_${MLPREFIX}libswresample = "textrel"
-INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
-
-python populate_packages_prepend() {
- av_libdir = d.expand('${libdir}')
- av_pkgconfig = d.expand('${libdir}/pkgconfig')
-
- # Runtime package
- do_split_packages(d, av_libdir, '^lib(.*)\.so\..*',
- output_pattern='lib%s',
- description='libav %s library',
- extra_depends='',
- prepend=True,
- allow_links=True)
-
- # Development packages (-dev, -staticdev)
- do_split_packages(d, av_libdir, '^lib(.*)\.so$',
- output_pattern='lib%s-dev',
- description='libav %s development package',
- extra_depends='${PN}-dev',
- prepend=True,
- allow_links=True)
- do_split_packages(d, av_pkgconfig, '^lib(.*)\.pc$',
- output_pattern='lib%s-dev',
- description='libav %s development package',
- extra_depends='${PN}-dev',
- prepend=True)
- do_split_packages(d, av_libdir, '^lib(.*)\.a$',
- output_pattern='lib%s-staticdev',
- description='libav %s development package - static library',
- extra_depends='${PN}-dev',
- prepend=True,
- allow_links=True)
-
-}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.1.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.1.3.bb
new file mode 100644
index 000000000..050f1eefa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/ffmpeg/ffmpeg_3.1.3.bb
@@ -0,0 +1,142 @@
+SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
+DESCRIPTION = "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, \
+ mux, demux, stream, filter and play pretty much anything that humans and machines \
+ have created. It supports the most obscure ancient formats up to the cutting edge."
+HOMEPAGE = "https://www.ffmpeg.org/"
+SECTION = "libs"
+
+LICENSE = "GPLv2+"
+LICENSE_FLAGS = "commercial"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+ file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
+ file://mips64_cpu_detection.patch \
+ "
+SRC_URI[md5sum] = "72769316a4b2b8809c7f6d5a8b6766f4"
+SRC_URI[sha256sum] = "f8575c071e2a64437aeb70c8c030b385cddbe0b5cde20c9b18a6def840128822"
+
+# Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
+ARM_INSTRUCTION_SET = "arm"
+
+# Should be API compatible with libav (which was a fork of ffmpeg)
+# libpostproc was previously packaged from a separate recipe
+PROVIDES = "libav libpostproc"
+
+DEPENDS = "alsa-lib zlib libogg yasm-native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "avdevice avfilter avcodec avformat swresample swscale postproc \
+ bzlib gpl lzma theora x264 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xv', '', d)}"
+
+# libraries to build in addition to avutil
+PACKAGECONFIG[avdevice] = "--enable-avdevice,--disable-avdevice"
+PACKAGECONFIG[avfilter] = "--enable-avfilter,--disable-avfilter"
+PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec"
+PACKAGECONFIG[avformat] = "--enable-avformat,--disable-avformat"
+PACKAGECONFIG[swresample] = "--enable-swresample,--disable-swresample"
+PACKAGECONFIG[swscale] = "--enable-swscale,--disable-swscale"
+PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc"
+PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample"
+
+# features to support
+PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2"
+PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
+PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
+PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
+PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
+PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
+PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
+PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
+PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl"
+PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger"
+PACKAGECONFIG[speex] = "--enable-libspeex,--disable-libspeex,speex"
+PACKAGECONFIG[theora] = "--enable-libtheora,--disable-libtheora,libtheora"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+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"
+PACKAGECONFIG[xv] = "--enable-outdev=xv,--disable-outdev=xv,libxv"
+
+# Check codecs that require --enable-nonfree
+USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'faac', 'openssl' ], 'yes', '', d)}"
+
+EXTRA_OECONF = " \
+ --disable-stripping \
+ --enable-pic \
+ --enable-shared \
+ --enable-pthreads \
+ ${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
+ \
+ --cross-prefix=${TARGET_PREFIX} \
+ \
+ --ld="${CCLD}" \
+ --cc="${CC}" \
+ --cxx="${CXX}" \
+ --arch=${TARGET_ARCH} \
+ --target-os="linux" \
+ --enable-cross-compile \
+ --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+ --extra-ldflags="${TARGET_LDFLAGS}" \
+ --sysroot="${STAGING_DIR_TARGET}" \
+ --enable-hardcoded-tables \
+ ${EXTRA_FFCONF} \
+ --libdir=${libdir} \
+ --shlibdir=${libdir} \
+ --datadir=${datadir}/ffmpeg \
+"
+
+do_configure() {
+ ${S}/configure ${EXTRA_OECONF}
+}
+
+PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util|resample)|swscale|swresample|postproc).*"
+
+# ffmpeg disables PIC on some platforms (e.g. x86-32)
+INSANE_SKIP_${MLPREFIX}libavcodec = "textrel"
+INSANE_SKIP_${MLPREFIX}libavdevice = "textrel"
+INSANE_SKIP_${MLPREFIX}libavfilter = "textrel"
+INSANE_SKIP_${MLPREFIX}libavformat = "textrel"
+INSANE_SKIP_${MLPREFIX}libavutil = "textrel"
+INSANE_SKIP_${MLPREFIX}libavresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libswscale = "textrel"
+INSANE_SKIP_${MLPREFIX}libswresample = "textrel"
+INSANE_SKIP_${MLPREFIX}libpostproc = "textrel"
+
+python populate_packages_prepend() {
+ av_libdir = d.expand('${libdir}')
+ av_pkgconfig = d.expand('${libdir}/pkgconfig')
+
+ # Runtime package
+ do_split_packages(d, av_libdir, '^lib(.*)\.so\..*',
+ output_pattern='lib%s',
+ description='libav %s library',
+ extra_depends='',
+ prepend=True,
+ allow_links=True)
+
+ # Development packages (-dev, -staticdev)
+ do_split_packages(d, av_libdir, '^lib(.*)\.so$',
+ output_pattern='lib%s-dev',
+ description='libav %s development package',
+ extra_depends='${PN}-dev',
+ prepend=True,
+ allow_links=True)
+ do_split_packages(d, av_pkgconfig, '^lib(.*)\.pc$',
+ output_pattern='lib%s-dev',
+ description='libav %s development package',
+ extra_depends='${PN}-dev',
+ prepend=True)
+ do_split_packages(d, av_libdir, '^lib(.*)\.a$',
+ output_pattern='lib%s-staticdev',
+ description='libav %s development package - static library',
+ extra_depends='${PN}-dev',
+ prepend=True,
+ allow_links=True)
+
+}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/0001-gtk-play-provide-similar-behaviour-for-quit-and-clos.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/0001-gtk-play-provide-similar-behaviour-for-quit-and-clos.patch
new file mode 100644
index 000000000..e3f1c4f74
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/0001-gtk-play-provide-similar-behaviour-for-quit-and-clos.patch
@@ -0,0 +1,32 @@
+From 220c2659a45dd354270a465c45197970dae5f548 Mon Sep 17 00:00:00 2001
+From: "Maxin B. John" <maxin.john@intel.com>
+Date: Fri, 5 Aug 2016 17:52:18 +0300
+Subject: [PATCH] gtk-play: provide similar behaviour for quit and close
+
+In x86 targets, gtk-play just pause rather than quitting the application
+when we click the close button (delete-event). Change the callback function
+to get similar behaviour when we click on "Quit" menu option.
+
+Upstream-Status: Accepted
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+---
+ gtk/gtk-play.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
+index a520bef..16afc6b 100644
+--- a/gtk/gtk-play.c
++++ b/gtk/gtk-play.c
+@@ -177,7 +177,7 @@ load_from_builder (const gchar * filename, gboolean register_sig_handler,
+ static void
+ delete_event_cb (GtkWidget * widget, GdkEvent * event, GtkPlay * play)
+ {
+- gst_player_stop (play->player);
++ gtk_widget_destroy (GTK_WIDGET (play));
+ }
+
+ static void
+--
+2.4.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop
index 9fd207b38..7ddd456a1 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=Media Player
Comment=Basic media player
-Icon=audio-player
+Icon=multimedia-player
TryExec=gtk-play
Exec=gtk-play
StartupNotify=true
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch
deleted file mode 100644
index 2cd18bbc9..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-As the rest of Sato is GTK+ 2, patch gtk-play to use GTK+ 2. When the rest of
-Sato has been ported to GTK+ 3 this patch can be dropped.
-
-Upstream-Status: Inappropriate
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-
-diff --git a/configure.ac b/configure.ac
-index b8af13b..90ab74c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -60,7 +60,7 @@ AC_SUBST(GLIB_PREFIX)
- GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-1.0`"
- AC_SUBST(GST_PREFIX)
-
--PKG_CHECK_MODULES(GTK, [gtk+-3.0], [have_gtk="yes"], [have_gtk="no"])
-+PKG_CHECK_MODULES(GTK, [gtk+-2.0], [have_gtk="yes"], [have_gtk="no"])
- AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" != "xno")
-
- GOBJECT_INTROSPECTION_CHECK([1.31.1])
-diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
-index f015077..954d6fb 100644
---- a/gtk/gtk-play.c
-+++ b/gtk/gtk-play.c
-@@ -34,6 +34,46 @@ typedef struct
- gulong seekbar_value_changed_signal_id;
- } GtkPlay;
-
-+/* Compat stubs */
-+GtkWidget *
-+gtk_box_new (GtkOrientation orientation,
-+ gint spacing)
-+{
-+ switch (orientation) {
-+ case GTK_ORIENTATION_HORIZONTAL:
-+ return gtk_hbox_new (FALSE, spacing);
-+ case GTK_ORIENTATION_VERTICAL:
-+ return gtk_vbox_new (FALSE, spacing);
-+ }
-+}
-+
-+GtkWidget*
-+gtk_button_new_from_icon_name (const gchar *icon_name,
-+ GtkIconSize size)
-+{
-+ GtkWidget *button;
-+ GtkWidget *image;
-+
-+ image = gtk_image_new_from_icon_name (icon_name, size);
-+ button = g_object_new (GTK_TYPE_BUTTON,
-+ "image", image,
-+ NULL);
-+ return button;
-+}
-+
-+GtkWidget *
-+gtk_scale_new_with_range (GtkOrientation orientation,
-+ gdouble min,
-+ gdouble max,
-+ gdouble step)
-+{
-+ switch (orientation) {
-+ case GTK_ORIENTATION_HORIZONTAL:
-+ return gtk_hscale_new_with_range (min, max, step);
-+ case GTK_ORIENTATION_VERTICAL:
-+ return gtk_vscale_new_with_range (min, max, step);
-+ }
-+}
-
- static void
- set_title (GtkPlay * play, const gchar * title)
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb
index 8129169c5..2a4c9dcfb 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gst-player_git.bb
@@ -1,39 +1,37 @@
SUMMARY = "GStreamer playback helper library and examples"
LICENSE = "LGPL-2.0+"
-LIC_FILES_CHKSUM = "file://lib/gst/player/gstplayer.c;beginline=1;endline=19;md5=03aeca9d8295f811817909075a15ff65"
+LIC_FILES_CHKSUM = "file://gtk/gtk-play.c;beginline=1;endline=20;md5=f8c72dae3d36823ec716a9ebcae593b9"
-DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gtk+"
+DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gtk+3"
SRC_URI = "git://github.com/sdroege/gst-player.git \
- file://filechooser.patch \
- file://gtk2.patch \
- file://Fix-pause-play.patch \
- file://Add-error-signal-emission-for-missing-plugins.patch \
+ file://filechooser.patch;apply=0 \
+ file://Fix-pause-play.patch;apply=0 \
+ file://Add-error-signal-emission-for-missing-plugins.patch;apply=0 \
+ file://0001-gtk-play-provide-similar-behaviour-for-quit-and-clos.patch \
file://gst-player.desktop"
-SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645"
+SRCREV = "ea90e63c1064503f9ba5d59aa4ca604f13ca5def"
+PV = "0.0.1+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit autotools gtk-doc lib_package pkgconfig distro_features_check gobject-introspection
+inherit autotools pkgconfig distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
do_configure_prepend() {
touch ${S}/ChangeLog
}
-EXTRA_OECONF += "ac_cv_path_VALGRIND=no ac_cv_path_GDB=no"
-
do_install_append() {
install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
}
-FILES_${PN}-bin += "${datadir}/applications/*.desktop"
-
-RDEPENDS_${PN}-bin = "gstreamer1.0-plugins-base-playback"
-RRECOMMENDS_${PN}-bin = "gstreamer1.0-plugins-base-meta \
- gstreamer1.0-plugins-good-meta \
- gstreamer1.0-plugins-bad-meta \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \
- ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}"
+RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback"
+RRECOMMENDS_${PN} = "gstreamer1.0-plugins-base-meta \
+ gstreamer1.0-plugins-good-meta \
+ gstreamer1.0-plugins-bad-meta \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}"
+RPROVIDES_${PN} += "${PN}-bin"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
index 363101e1a..ea011637c 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
@@ -7,7 +7,7 @@ LICENSE_FLAGS = "commercial"
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz"
-inherit autotools pkgconfig upstream-version-is-even
+inherit autotools pkgconfig upstream-version-is-even gtk-doc
# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
@@ -18,6 +18,7 @@ PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl,"
PACKAGECONFIG[libav] = "--with-system-libav,,libav"
PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native"
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
GSTREAMER_1_0_DEBUG ?= "--disable-debug"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb
deleted file mode 100644
index 687230a8f..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.6.3.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-include gstreamer1.0-libav.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
- file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
- file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
- file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
- file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
- file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
-"
-
-SRC_URI[md5sum] = "cfe9a06913d4fd4067e9e47f6e05fac2"
-SRC_URI[sha256sum] = "857b9c060a0337de38c6d26238c47352433c02eabf26c2f860c854dbc35bd4ab"
-
-S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.8.3.bb
new file mode 100644
index 000000000..3d86221d2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.8.3.bb
@@ -0,0 +1,20 @@
+include gstreamer1.0-libav.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
+ file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
+ file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+ file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+ file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
+ file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
+ file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
+"
+
+SRC_URI[md5sum] = "b51a736147bacb40f85827a4e0ae0d2c"
+SRC_URI[sha256sum] = "9006a05990089f7155ee0e848042f6bb24e52ab1d0a59ff8d1b5d7e33001a495"
+
+S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
index ebc8a5ef2..f4604a34c 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
@@ -15,20 +15,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
# and remove the ffmpeg sources from SRC_URI below. However, first note the
# warnings in gstreamer1.0-libav.inc
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-libav;name=base \
+ git://anongit.freedesktop.org/gstreamer/gst-libav;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
git://source.ffmpeg.org/ffmpeg;destsuffix=git/gst-libs/ext/libav;name=ffmpeg;branch=release/3.0 \
file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "6c4878b6abc916b7f6f25b8926c4859119acf1ec"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
-SRCREV_ffmpeg = "c40983a6f631d22fede713d535bb9c31d5c9740c"
+SRCREV_base = "f285cf0fd799cc3b46b5cecaaa439d5a2a38a9b7"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
+SRCREV_ffmpeg = "c66f4d1ae64dffaf456d05cbdade02054446f499"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
index 0fff612ee..07e5b7db5 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
@@ -7,11 +7,10 @@ LICENSE_FLAGS = "commercial"
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext gtk-doc upstream-version-is-even
acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-PR = "r1"
GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
GSTREAMER_1_0_OMX_CORE_NAME ?= "${libdir}/libomxil-bellagio.so.0"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
index 9e2b94ede..0fe5564b5 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
@@ -21,7 +21,7 @@ PACKAGECONFIG ??= " \
${PACKAGECONFIG_GL} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
bz2 curl dash dtls hls neon rsvg sbc smoothstreaming sndfile uvch264 webp \
"
@@ -32,13 +32,16 @@ PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2"
PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
PACKAGECONFIG[dtls] = "--enable-dtls,--disable-dtls,openssl"
+PACKAGECONFIG[egl] = "--enable-egl,--disable-egl,virtual/egl"
PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac"
PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa"
PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,virtual/libgles2"
PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
-PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,nettle"
+# ensure OpenSSL is used for HLS AES description instead of nettle
+# (OpenSSL is a shared dependency with dtls)
+PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=openssl,--disable-hls,openssl"
PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms"
PACKAGECONFIG[libssh2] = "--enable-libssh2,--disable-libssh2,libssh2"
PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
@@ -46,7 +49,9 @@ PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,virtual/libgl libglu"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
+# the opus encoder/decoder elements are now in the -base package,
+# but the opus parser remains in -bad
+PACKAGECONFIG[opusparse] = "--enable-opus,--disable-opus,libopus"
PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdread libdvdnav"
PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg"
PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump"
@@ -58,19 +63,19 @@ PACKAGECONFIG[srtp] = "--enable-srtp,--disable-srtp,libsrtp"
PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 libgudev"
PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
-PACKAGECONFIG[wayland] = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland"
PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
# these plugins have not been ported to 1.0 (yet):
-# apexsink dc1394 lv2 linsys musepack nas timidity teletextdec sdl xvid wininet
-# acm gsettings sndio cdxaparse dccp faceoverlay hdvparse tta mve nuvdemux
-# patchdetect real sdi videomeasure gsettings
+# apexsink dc1394 lv2 linsys musepack nas timidity sdl xvid wininet
+# sndio cdxaparse dccp faceoverlay hdvparse tta mve nuvdemux
+# patchdetect sdi videomeasure
# these plugins have no corresponding library in OE-core or meta-openembedded:
-# openni2 winks direct3d directsound winscreencap
+# openni2 winks direct3d directsound winscreencap acm
# apple_media android_media avc bs2b chromaprint daala dts gme gsm kate ladspa
-# libde265 mimic mpeg2enc mplex ofa openh264 opensles pvr soundtouch spandsp
-# spc vdpau wasapi x265 zbar
+# libde265 mimic mpeg2enc mplex nvenc ofa openh264 opensles pvr soundtouch spandsp
+# spc teletextdec tinyalsa vdpau vulkan wasapi x265 zbar
# qt5 support is disabled, because it is not present in OE core, and requires more work than
# just adding a packageconfig (it requires access to moc, uic, rcc, and qmake paths).
@@ -81,6 +86,7 @@ EXTRA_OECONF += " \
--enable-decklink \
--enable-dvb \
--enable-fbdev \
+ --enable-netsim \
--enable-shm \
--enable-vcd \
--disable-acm \
@@ -109,6 +115,7 @@ EXTRA_OECONF += " \
--disable-mplex \
--disable-musepack \
--disable-nas \
+ --disable-nvenc \
--disable-ofa \
--disable-openexr \
--disable-openh264 \
@@ -125,7 +132,9 @@ EXTRA_OECONF += " \
--disable-spc \
--disable-teletextdec \
--disable-timidity \
+ --disable-tinyalsa \
--disable-vdpau \
+ --disable-vulkan \
--disable-wasapi \
--disable-wildmidi \
--disable-wininet \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
index 154d340e4..33efc503e 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
@@ -17,7 +17,7 @@ diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am
index f968357..7cc2c7a 100644
--- a/gst-libs/gst/gl/Makefile.am
+++ b/gst-libs/gst/gl/Makefile.am
-@@ -149,7 +149,7 @@ GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@
+@@ -167,7 +167,7 @@ GstGL-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstgl-@GST_API_VERSION@
--library=libgstgl-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -30,7 +30,7 @@ diff --git a/gst-libs/gst/insertbin/Makefile.am b/gst-libs/gst/insertbin/Makefil
index 09eb97c..b746885 100644
--- a/gst-libs/gst/insertbin/Makefile.am
+++ b/gst-libs/gst/insertbin/Makefile.am
-@@ -43,7 +43,7 @@ GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GS
+@@ -44,7 +44,7 @@ GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GS
--library=libgstinsertbin-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch
deleted file mode 100644
index 1085e95e8..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-glimagesink-Downrank-to-marginal.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c6b37a80806f9128de47f1ccc3f2354f8d436bb6 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 24 Sep 2015 19:47:32 +0300
-Subject: [PATCH] glimagesink: Downrank to marginal
-
-On desktop, where there is good OpenGL, xvimagesink will come up first,
-on other platforms, OpenGL can't be trusted because it's either software (like
-in a VM) or broken (like on embedded)., so let ximagesink come above.
-
-Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=751684]
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- ext/gl/gstopengl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c
-index a4b2540..0ccaacd 100644
---- a/ext/gl/gstopengl.c
-+++ b/ext/gl/gstopengl.c
-@@ -101,7 +101,7 @@ plugin_init (GstPlugin * plugin)
- #endif
-
- if (!gst_element_register (plugin, "glimagesink",
-- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) {
-+ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) {
- return FALSE;
- }
-
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-enable-gldeinterlace-on-OpenGL-ES.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-enable-gldeinterlace-on-OpenGL-ES.patch
new file mode 100755
index 000000000..51f4eb4b3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-enable-gldeinterlace-on-OpenGL-ES.patch
@@ -0,0 +1,634 @@
+From 8a0e97f7e672301cc76e394855e8c7a3448b0249 Mon Sep 17 00:00:00 2001
+From: Haihua Hu <jared.hu@nxp.com>
+Date: Fri, 8 Apr 2016 16:47:15 +0800
+Subject: [PATCH 4/6] [glplugin] enable gldeinterlace on OpenGL ES
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+1.Porting the exist deinterlace shader and OpenGL callback
+ to be compatible with OpenGL ES.
+2.Add a our blur vertical shader to gldeinterlace.
+3.Add a property named “method” to let user choose which
+ deinterlace function to use. Default to choose blur vertical
+ method for better performance.
+
+Upstream-Status: Backport [1.9.1]
+
+https://bugzilla.gnome.org/show_bug.cgi?id=764873
+
+Signed-off-by: Haihua Hu <jared.hu@nxp.com>
+---
+ ext/gl/Makefile.am | 4 +-
+ ext/gl/gstgldeinterlace.c | 344 +++++++++++++++++++++++++++++++++++-----------
+ ext/gl/gstgldeinterlace.h | 6 +-
+ ext/gl/gstopengl.c | 13 +-
+ 4 files changed, 275 insertions(+), 92 deletions(-)
+
+diff --git a/ext/gl/Makefile.am b/ext/gl/Makefile.am
+index 5d55f54..46419a7 100644
+--- a/ext/gl/Makefile.am
++++ b/ext/gl/Makefile.am
+@@ -40,6 +40,7 @@ libgstopengl_la_SOURCES = \
+ gstglfilterapp.c \
+ gstglviewconvert.c \
+ gstglstereosplit.c \
++ gstgldeinterlace.c \
+ gstglstereomix.c
+
+ noinst_HEADERS = \
+@@ -63,20 +64,19 @@ noinst_HEADERS = \
+ gstglfilterapp.h \
+ gstglstereosplit.h \
+ gstglstereomix.h \
++ gstgldeinterlace.h \
+ gstglviewconvert.h
+
+ # full opengl required
+ if USE_OPENGL
+ libgstopengl_la_SOURCES += \
+ gstglfilterglass.c \
+- gstgldeinterlace.c \
+ gltestsrc.c \
+ gstgltestsrc.c \
+ gstglmosaic.c
+
+ noinst_HEADERS += \
+ gstglfilterglass.h \
+- gstgldeinterlace.h \
+ gltestsrc.h \
+ gstgltestsrc.h \
+ gstglmosaic.h \
+diff --git a/ext/gl/gstgldeinterlace.c b/ext/gl/gstgldeinterlace.c
+index bd0eff0..c1250dc 100644
+--- a/ext/gl/gstgldeinterlace.c
++++ b/ext/gl/gstgldeinterlace.c
+@@ -43,7 +43,8 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+
+ enum
+ {
+- PROP_0
++ PROP_0,
++ PROP_METHOD
+ };
+
+ #define DEBUG_INIT \
+@@ -57,17 +58,23 @@ static void gst_gl_deinterlace_set_property (GObject * object,
+ static void gst_gl_deinterlace_get_property (GObject * object,
+ guint prop_id, GValue * value, GParamSpec * pspec);
+
++static gboolean gst_gl_deinterlace_start (GstBaseTransform * trans);
+ static gboolean gst_gl_deinterlace_reset (GstBaseTransform * trans);
+-static gboolean gst_gl_deinterlace_init_shader (GstGLFilter * filter);
++static gboolean gst_gl_deinterlace_init_fbo (GstGLFilter * filter);
+ static gboolean gst_gl_deinterlace_filter (GstGLFilter * filter,
+ GstBuffer * inbuf, GstBuffer * outbuf);
+ static gboolean gst_gl_deinterlace_filter_texture (GstGLFilter * filter,
+ guint in_tex, guint out_tex);
+-static void gst_gl_deinterlace_callback (gint width, gint height,
++static void gst_gl_deinterlace_vfir_callback (gint width, gint height,
++ guint texture, gpointer stuff);
++static void gst_gl_deinterlace_greedyh_callback (gint width, gint height,
+ guint texture, gpointer stuff);
+
+ /* *INDENT-OFF* */
+ static const gchar *greedyh_fragment_source =
++ "#ifdef GL_ES\n"
++ "precision mediump float;\n"
++ "#endif\n"
+ "uniform sampler2D tex;\n"
+ "uniform sampler2D tex_prev;\n"
+ "uniform float max_comb;\n"
+@@ -75,35 +82,35 @@ static const gchar *greedyh_fragment_source =
+ "uniform float motion_sense;\n"
+ "uniform float width;\n"
+ "uniform float height;\n"
++ "varying vec2 v_texcoord;\n"
+
+ "void main () {\n"
+- " vec2 texcoord = gl_TexCoord[0].xy;\n"
+- " if (int(mod(texcoord.y * height, 2.0)) == 0) {\n"
+- " gl_FragColor = vec4(texture2D(tex_prev, texcoord).rgb, 1.0);\n"
++ " if (int(mod(v_texcoord.y * height, 2.0)) == 0) {\n"
++ " gl_FragColor = vec4(texture2D(tex_prev, v_texcoord).rgb, 1.0);\n"
+ " } else {\n"
+ " vec2 texcoord_L1_a1, texcoord_L3_a1, texcoord_L1, texcoord_L3, texcoord_L1_1, texcoord_L3_1;\n"
+ " vec3 L1_a1, L3_a1, L1, L3, L1_1, L3_1;\n"
+
+- " texcoord_L1 = vec2(texcoord.x, texcoord.y - 1.0 / height);\n"
+- " texcoord_L3 = vec2(texcoord.x, texcoord.y + 1.0 / height);\n"
++ " texcoord_L1 = vec2(v_texcoord.x, v_texcoord.y - 1.0 / height);\n"
++ " texcoord_L3 = vec2(v_texcoord.x, v_texcoord.y + 1.0 / height);\n"
+ " L1 = texture2D(tex_prev, texcoord_L1).rgb;\n"
+ " L3 = texture2D(tex_prev, texcoord_L3).rgb;\n"
+- " if (texcoord.x == 1.0 && texcoord.y == 1.0) {\n"
++ " if (v_texcoord.x == 1.0 && v_texcoord.y == 1.0) {\n"
+ " L1_1 = L1;\n"
+ " L3_1 = L3;\n"
+ " } else {\n"
+- " texcoord_L1_1 = vec2(texcoord.x + 1.0 / width, texcoord.y - 1.0 / height);\n"
+- " texcoord_L3_1 = vec2(texcoord.x + 1.0 / width, texcoord.y + 1.0 / height);\n"
++ " texcoord_L1_1 = vec2(v_texcoord.x + 1.0 / width, v_texcoord.y - 1.0 / height);\n"
++ " texcoord_L3_1 = vec2(v_texcoord.x + 1.0 / width, v_texcoord.y + 1.0 / height);\n"
+ " L1_1 = texture2D(tex_prev, texcoord_L1_1).rgb;\n"
+ " L3_1 = texture2D(tex_prev, texcoord_L3_1).rgb;\n"
+ " }\n"
+
+- " if (int(ceil(texcoord.x + texcoord.y)) == 0) {\n"
++ " if (int(ceil(v_texcoord.x + v_texcoord.y)) == 0) {\n"
+ " L1_a1 = L1;\n"
+ " L3_a1 = L3;\n"
+ " } else {\n"
+- " texcoord_L1_a1 = vec2(texcoord.x - 1.0 / width, texcoord.y - 1.0 / height);\n"
+- " texcoord_L3_a1 = vec2(texcoord.x - 1.0 / width, texcoord.y + 1.0 / height);\n"
++ " texcoord_L1_a1 = vec2(v_texcoord.x - 1.0 / width, v_texcoord.y - 1.0 / height);\n"
++ " texcoord_L3_a1 = vec2(v_texcoord.x - 1.0 / width, v_texcoord.y + 1.0 / height);\n"
+ " L1_a1 = texture2D(tex_prev, texcoord_L1_a1).rgb;\n"
+ " L3_a1 = texture2D(tex_prev, texcoord_L3_a1).rgb;\n"
+ " }\n"
+@@ -113,8 +120,8 @@ static const gchar *greedyh_fragment_source =
+ " vec3 avg_1 = (L1_1 + L3_1) / 2.0;\n"
+ " vec3 avg_s = (avg_a1 + avg_1) / 2.0;\n"
+ " vec3 avg_sc = (avg_s + avg) / 2.0;\n"
+- " vec3 L2 = texture2D(tex, texcoord).rgb;\n"
+- " vec3 LP2 = texture2D(tex_prev, texcoord).rgb;\n"
++ " vec3 L2 = texture2D(tex, v_texcoord).rgb;\n"
++ " vec3 LP2 = texture2D(tex_prev, v_texcoord).rgb;\n"
+ " vec3 best;\n"
+ " if (abs(L2.r - avg_sc.r) < abs(LP2.r - avg_sc.r)) {\n"
+ " best.r = L2.r;\n" " } else {\n"
+@@ -144,8 +151,87 @@ static const gchar *greedyh_fragment_source =
+ " gl_FragColor = vec4(last, 1.0);\n"
+ " }\n"
+ "}\n";
++
++const gchar *vfir_fragment_source =
++ "#ifdef GL_ES\n"
++ "precision mediump float;\n"
++ "#endif\n"
++ "uniform sampler2D tex;\n"
++ "uniform float width;\n"
++ "uniform float height;\n"
++ "varying vec2 v_texcoord;\n"
++ "void main()\n"
++ "{\n"
++ " vec2 topcoord, botcoord;\n"
++ " vec4 cur_color, top_color, bot_color;\n"
++ " topcoord.x = v_texcoord.x;\n"
++ " botcoord.x = v_texcoord.x;\n"
++ " if (v_texcoord.y == 0.0 || v_texcoord.y == 1.0) {\n"
++ " topcoord.y = v_texcoord.y ;\n"
++ " botcoord.y = v_texcoord.y ;\n"
++ " }\n"
++ " else {\n"
++ " topcoord.y = v_texcoord.y - 1.0/height;\n"
++ " botcoord.y = v_texcoord.y + 1.0/height;\n"
++ " }\n"
++ " cur_color = texture2D(tex, v_texcoord);\n"
++ " top_color = texture2D(tex, topcoord);\n"
++ " bot_color = texture2D(tex, botcoord);\n"
++ " gl_FragColor = 0.5*cur_color + 0.25*top_color + 0.25*bot_color;\n"
++ "}";
+ /* *INDENT-ON* */
+
++/* dont' forget to edit the following when a new method is added */
++typedef enum
++{
++ GST_GL_DEINTERLACE_VFIR,
++ GST_GL_DEINTERLACE_GREEDYH
++} GstGLDeinterlaceMethod;
++
++static const GEnumValue *
++gst_gl_deinterlace_get_methods (void)
++{
++ static const GEnumValue method_types[] = {
++ {GST_GL_DEINTERLACE_VFIR, "Blur Vertical", "vfir"},
++ {GST_GL_DEINTERLACE_GREEDYH, "Motion Adaptive: Advanced Detection",
++ "greedhy"},
++ {0, NULL, NULL}
++ };
++ return method_types;
++}
++
++#define GST_TYPE_GL_DEINTERLACE_METHODS (gst_gl_deinterlace_method_get_type ())
++static GType
++gst_gl_deinterlace_method_get_type (void)
++{
++ static GType gl_deinterlace_method_type = 0;
++ if (!gl_deinterlace_method_type) {
++ gl_deinterlace_method_type =
++ g_enum_register_static ("GstGLDeinterlaceMethod",
++ gst_gl_deinterlace_get_methods ());
++ }
++ return gl_deinterlace_method_type;
++}
++
++static void
++gst_gl_deinterlace_set_method (GstGLDeinterlace * deinterlace,
++ guint method_types)
++{
++ switch (method_types) {
++ case GST_GL_DEINTERLACE_VFIR:
++ deinterlace->deinterlacefunc = gst_gl_deinterlace_vfir_callback;
++ deinterlace->current_method = method_types;
++ break;
++ case GST_GL_DEINTERLACE_GREEDYH:
++ deinterlace->deinterlacefunc = gst_gl_deinterlace_greedyh_callback;
++ deinterlace->current_method = method_types;
++ break;
++ default:
++ g_assert_not_reached ();
++ break;
++ }
++}
++
+ static void
+ gst_gl_deinterlace_class_init (GstGLDeinterlaceClass * klass)
+ {
+@@ -163,25 +249,60 @@ gst_gl_deinterlace_class_init (GstGLDeinterlaceClass * klass)
+ "Deinterlacing based on fragment shaders",
+ "Julien Isorce <julien.isorce@mail.com>");
+
++ g_object_class_install_property (gobject_class,
++ PROP_METHOD,
++ g_param_spec_enum ("method",
++ "Deinterlace Method",
++ "Select which deinterlace method apply to GL video texture",
++ GST_TYPE_GL_DEINTERLACE_METHODS,
++ GST_GL_DEINTERLACE_VFIR, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
++
++ GST_BASE_TRANSFORM_CLASS (klass)->start = gst_gl_deinterlace_start;
+ GST_BASE_TRANSFORM_CLASS (klass)->stop = gst_gl_deinterlace_reset;
+
+ GST_GL_FILTER_CLASS (klass)->filter = gst_gl_deinterlace_filter;
+ GST_GL_FILTER_CLASS (klass)->filter_texture =
+ gst_gl_deinterlace_filter_texture;
+- GST_GL_FILTER_CLASS (klass)->init_fbo = gst_gl_deinterlace_init_shader;
++ GST_GL_FILTER_CLASS (klass)->init_fbo = gst_gl_deinterlace_init_fbo;
+
+- GST_GL_BASE_FILTER_CLASS (klass)->supported_gl_api = GST_GL_API_OPENGL;
++ GST_GL_BASE_FILTER_CLASS (klass)->supported_gl_api =
++ GST_GL_API_OPENGL | GST_GL_API_GLES2 | GST_GL_API_OPENGL3;
+ }
+
+ static void
+ gst_gl_deinterlace_init (GstGLDeinterlace * filter)
+ {
+- filter->shader = NULL;
++ filter->shaderstable = NULL;
++ filter->deinterlacefunc = gst_gl_deinterlace_vfir_callback;
++ filter->current_method = GST_GL_DEINTERLACE_VFIR;
+ filter->prev_buffer = NULL;
+ filter->prev_tex = 0;
+ }
+
+ static gboolean
++gst_gl_deinterlace_start (GstBaseTransform * trans)
++{
++ GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (trans);
++
++ deinterlace_filter->shaderstable = g_hash_table_new (g_str_hash, g_str_equal);
++
++ return GST_BASE_TRANSFORM_CLASS (parent_class)->start (trans);
++}
++
++static void
++gst_gl_deinterlace_ghash_func_clean (gpointer key, gpointer value,
++ gpointer data)
++{
++ GstGLShader *shader = (GstGLShader *) value;
++ GstGLFilter *filter = (GstGLFilter *) data;
++
++ //blocking call, wait the opengl thread has destroyed the shader
++ gst_gl_context_del_shader (GST_GL_BASE_FILTER (filter)->context, shader);
++
++ value = NULL;
++}
++
++static gboolean
+ gst_gl_deinterlace_reset (GstBaseTransform * trans)
+ {
+ GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (trans);
+@@ -189,10 +310,17 @@ gst_gl_deinterlace_reset (GstBaseTransform * trans)
+ gst_buffer_replace (&deinterlace_filter->prev_buffer, NULL);
+
+ //blocking call, wait the opengl thread has destroyed the shader
+- if (deinterlace_filter->shader)
+- gst_gl_context_del_shader (GST_GL_BASE_FILTER (trans)->context,
+- deinterlace_filter->shader);
+- deinterlace_filter->shader = NULL;
++ if (deinterlace_filter->shaderstable) {
++ /* release shaders in the gl thread */
++ g_hash_table_foreach (deinterlace_filter->shaderstable,
++ gst_gl_deinterlace_ghash_func_clean, deinterlace_filter);
++
++ /* clean the htable without calling values destructors
++ * because shaders have been released in the glthread
++ * through the foreach func */
++ g_hash_table_unref (deinterlace_filter->shaderstable);
++ deinterlace_filter->shaderstable = NULL;
++ }
+
+ return GST_BASE_TRANSFORM_CLASS (parent_class)->stop (trans);
+ }
+@@ -201,9 +329,12 @@ static void
+ gst_gl_deinterlace_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+ {
+- //GstGLDeinterlace *filter = GST_GL_DEINTERLACE (object);
++ GstGLDeinterlace *filter = GST_GL_DEINTERLACE (object);
+
+ switch (prop_id) {
++ case PROP_METHOD:
++ gst_gl_deinterlace_set_method (filter, g_value_get_enum (value));
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -214,9 +345,12 @@ static void
+ gst_gl_deinterlace_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+ {
+- //GstGLDeinterlace *filter = GST_GL_DEINTERLACE (object);
++ GstGLDeinterlace *filter = GST_GL_DEINTERLACE (object);
+
+ switch (prop_id) {
++ case PROP_METHOD:
++ g_value_set_enum (value, filter->current_method);
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -224,13 +358,9 @@ gst_gl_deinterlace_get_property (GObject * object, guint prop_id,
+ }
+
+ static gboolean
+-gst_gl_deinterlace_init_shader (GstGLFilter * filter)
++gst_gl_deinterlace_init_fbo (GstGLFilter * filter)
+ {
+- GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter);
+-
+- //blocking call, wait the opengl thread has compiled the shader
+- return gst_gl_context_gen_shader (GST_GL_BASE_FILTER (filter)->context, 0,
+- greedyh_fragment_source, &deinterlace_filter->shader);
++ return TRUE;
+ }
+
+ static gboolean
+@@ -241,7 +371,7 @@ gst_gl_deinterlace_filter_texture (GstGLFilter * filter, guint in_tex,
+
+ //blocking call, use a FBO
+ gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex,
+- gst_gl_deinterlace_callback, deinterlace_filter);
++ deinterlace_filter->deinterlacefunc, deinterlace_filter);
+
+ return TRUE;
+ }
+@@ -259,36 +389,104 @@ gst_gl_deinterlace_filter (GstGLFilter * filter, GstBuffer * inbuf,
+ return TRUE;
+ }
+
+-//opengl scene, params: input texture (not the output filter->texture)
++static GstGLShader *
++gst_gl_deinterlace_get_fragment_shader (GstGLFilter * filter,
++ const gchar * shader_name, const gchar * shader_source)
++{
++ GstGLShader *shader = NULL;
++ GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter);
++ GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
++
++ shader = g_hash_table_lookup (deinterlace_filter->shaderstable, shader_name);
++
++ if (!shader) {
++ GError *error = NULL;
++
++ if (!(shader = gst_gl_shader_new_link_with_stages (context, &error,
++ gst_glsl_stage_new_default_vertex (context),
++ gst_glsl_stage_new_with_string (context, GL_FRAGMENT_SHADER,
++ GST_GLSL_VERSION_NONE,
++ GST_GLSL_PROFILE_ES | GST_GLSL_PROFILE_COMPATIBILITY,
++ shader_source), NULL))) {
++ GST_ELEMENT_ERROR (deinterlace_filter, RESOURCE, NOT_FOUND,
++ ("Failed to initialize %s shader", shader_name), (NULL));
++ }
++
++ filter->draw_attr_position_loc =
++ gst_gl_shader_get_attribute_location (shader, "a_position");
++ filter->draw_attr_texture_loc =
++ gst_gl_shader_get_attribute_location (shader, "a_texcoord");
++ }
++
++ g_hash_table_insert (deinterlace_filter->shaderstable, (gchar *) shader_name,
++ shader);
++
++ return shader;
++}
++
+ static void
+-gst_gl_deinterlace_callback (gint width, gint height, guint texture,
++gst_gl_deinterlace_vfir_callback (gint width, gint height, guint texture,
+ gpointer stuff)
+ {
+- GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (stuff);
++ GstGLShader *shader;
+ GstGLFilter *filter = GST_GL_FILTER (stuff);
+- GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;
++ GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter);
++ GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
++ GstGLFuncs *gl = context->gl_vtable;
++
++ shader = gst_gl_deinterlace_get_fragment_shader (deinterlace_filter, "vfir",
++ vfir_fragment_source);
++
++ if (!shader)
++ return;
++
++#if GST_GL_HAVE_OPENGL
++ if (USING_OPENGL (context)) {
++ gl->MatrixMode (GL_PROJECTION);
++ gl->LoadIdentity ();
++ }
++#endif
++
++ gst_gl_shader_use (shader);
++
++ gl->ActiveTexture (GL_TEXTURE0);
++ gl->BindTexture (GL_TEXTURE_2D, texture);
++
++ gst_gl_shader_set_uniform_1i (shader, "tex", 0);
++ gst_gl_shader_set_uniform_1f (shader, "width",
++ GST_VIDEO_INFO_WIDTH (&filter->out_info));
++ gst_gl_shader_set_uniform_1f (shader, "height",
++ GST_VIDEO_INFO_HEIGHT (&filter->out_info));
++
++ gst_gl_filter_draw_texture (filter, texture, width, height);
++}
++
++static void
++gst_gl_deinterlace_greedyh_callback (gint width, gint height, guint texture,
++ gpointer stuff)
++{
++ GstGLShader *shader;
++ GstGLFilter *filter = GST_GL_FILTER (stuff);
++ GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter);
++ GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;
++ GstGLFuncs *gl = context->gl_vtable;
+ guint temp;
+
+- GLfloat verts[] = { -1.0, -1.0,
+- 1.0, -1.0,
+- 1.0, 1.0,
+- -1.0, 1.0
+- };
+- GLfloat texcoords0[] = { 0.0f, 0.0f,
+- 1.0f, 0.0f,
+- 1.0f, 1.0f,
+- 0.0f, 1.0f
+- };
+- GLfloat texcoords1[] = { 0.0f, 0.0f,
+- 1.0f, 0.0f,
+- 1.0f, 1.0f,
+- 0.0f, 1.0f
+- };
++ shader =
++ gst_gl_deinterlace_get_fragment_shader (deinterlace_filter, "greedhy",
++ greedyh_fragment_source);
+
+- gl->MatrixMode (GL_PROJECTION);
+- gl->LoadIdentity ();
++ if (!shader)
++ return;
+
+- gst_gl_shader_use (deinterlace_filter->shader);
++#if GST_GL_HAVE_OPENGL
++ if (USING_OPENGL (context)) {
++ gl->MatrixMode (GL_PROJECTION);
++ gl->LoadIdentity ();
++ }
++#endif
++
++ gst_gl_shader_use (shader);
+
+ if (G_UNLIKELY (deinterlace_filter->prev_tex == 0)) {
+ gst_gl_context_gen_texture (GST_GL_BASE_FILTER (filter)->context,
+@@ -298,44 +496,24 @@ gst_gl_deinterlace_callback (gint width, gint height, guint texture,
+ GST_VIDEO_INFO_HEIGHT (&filter->out_info));
+ } else {
+ gl->ActiveTexture (GL_TEXTURE1);
+- gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "tex_prev", 1);
++ gst_gl_shader_set_uniform_1i (shader, "tex_prev", 1);
+ gl->BindTexture (GL_TEXTURE_2D, deinterlace_filter->prev_tex);
+ }
+
+ gl->ActiveTexture (GL_TEXTURE0);
+- gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "tex", 0);
++ gl->BindTexture (GL_TEXTURE_2D, texture);
+
+- gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "max_comb",
+- 5.0f / 255.0f);
+- gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "motion_threshold",
+- 25.0f / 255.0f);
+- gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "motion_sense",
+- 30.0f / 255.0f);
++ gst_gl_shader_set_uniform_1i (shader, "tex", 0);
++ gst_gl_shader_set_uniform_1f (shader, "max_comb", 5.0f / 255.0f);
++ gst_gl_shader_set_uniform_1f (shader, "motion_threshold", 25.0f / 255.0f);
++ gst_gl_shader_set_uniform_1f (shader, "motion_sense", 30.0f / 255.0f);
+
+- gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "width",
++ gst_gl_shader_set_uniform_1f (shader, "width",
+ GST_VIDEO_INFO_WIDTH (&filter->out_info));
+- gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "height",
++ gst_gl_shader_set_uniform_1f (shader, "height",
+ GST_VIDEO_INFO_HEIGHT (&filter->out_info));
+
+- gl->ClientActiveTexture (GL_TEXTURE0);
+-
+- gl->EnableClientState (GL_TEXTURE_COORD_ARRAY);
+- gl->EnableClientState (GL_VERTEX_ARRAY);
+-
+- gl->VertexPointer (2, GL_FLOAT, 0, &verts);
+- gl->TexCoordPointer (2, GL_FLOAT, 0, &texcoords0);
+-
+- gl->ClientActiveTexture (GL_TEXTURE1);
+- gl->EnableClientState (GL_TEXTURE_COORD_ARRAY);
+- gl->TexCoordPointer (2, GL_FLOAT, 0, &texcoords1);
+-
+- gl->DrawArrays (GL_TRIANGLE_FAN, 0, 4);
+-
+- gl->DisableClientState (GL_VERTEX_ARRAY);
+- gl->DisableClientState (GL_TEXTURE_COORD_ARRAY);
+-
+- gl->ClientActiveTexture (GL_TEXTURE0);
+- gl->DisableClientState (GL_TEXTURE_COORD_ARRAY);
++ gst_gl_filter_draw_texture (filter, texture, width, height);
+
+ if (texture == filter->in_tex_id) {
+ temp = filter->in_tex_id;
+diff --git a/ext/gl/gstgldeinterlace.h b/ext/gl/gstgldeinterlace.h
+index a81a2e7..58a9c0c 100644
+--- a/ext/gl/gstgldeinterlace.h
++++ b/ext/gl/gstgldeinterlace.h
+@@ -38,9 +38,13 @@ typedef struct _GstGLDeinterlaceClass GstGLDeinterlaceClass;
+ struct _GstGLDeinterlace
+ {
+ GstGLFilter filter;
+- GstGLShader *shader;
++
++ GLCB deinterlacefunc;
++ GHashTable *shaderstable;
+ GstBuffer *prev_buffer;
+ guint prev_tex;
++
++ gint current_method;
+ };
+
+ struct _GstGLDeinterlaceClass
+diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c
+index 50676c4..135862a 100644
+--- a/ext/gl/gstopengl.c
++++ b/ext/gl/gstopengl.c
+@@ -62,6 +62,7 @@
+ #include "gstglstereosplit.h"
+ #include "gstglstereomix.h"
+ #include "gstglviewconvert.h"
++#include "gstgldeinterlace.h"
+
+ #if HAVE_GRAPHENE
+ #include "gstgltransformation.h"
+@@ -77,7 +78,6 @@
+ #include "gstgltestsrc.h"
+ #include "gstglfilterglass.h"
+ /* #include "gstglfilterreflectedscreen.h" */
+-#include "gstgldeinterlace.h"
+ #include "gstglmosaic.h"
+ #if HAVE_PNG
+ #include "gstgldifferencematte.h"
+@@ -226,6 +226,12 @@ plugin_init (GstPlugin * plugin)
+ GST_RANK_NONE, GST_TYPE_GL_STEREO_MIX)) {
+ return FALSE;
+ }
++
++ if (!gst_element_register (plugin, "gldeinterlace",
++ GST_RANK_NONE, GST_TYPE_GL_DEINTERLACE)) {
++ return FALSE;
++ }
++
+ #if HAVE_JPEG
+ #if HAVE_PNG
+ if (!gst_element_register (plugin, "gloverlay",
+@@ -250,11 +256,6 @@ plugin_init (GstPlugin * plugin)
+ return FALSE;
+ }
+ #endif
+- if (!gst_element_register (plugin, "gldeinterlace",
+- GST_RANK_NONE, GST_TYPE_GL_DEINTERLACE)) {
+- return FALSE;
+- }
+-
+ if (!gst_element_register (plugin, "glmosaic",
+ GST_RANK_NONE, GST_TYPE_GL_MOSAIC)) {
+ return FALSE;
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch
deleted file mode 100755
index 3491a15e6..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 95cda7fbcf1a81289d9315c801c8e2b3d896f4cb Mon Sep 17 00:00:00 2001
-From: Haihua Hu <b55597@freescale.com>
-Date: Mon, 30 Nov 2015 09:36:09 +0800
-Subject: [PATCH 2/5] [glplugin] glwindow: fix memory leak of navigation
- thread
-
-When exit navigation thread, call g_thread_join() to release
-the resource hold by it.
-
-Upstream-Status: Backport [1.7.1]
-
-bugzilla URL: https://bugzilla.gnome.org/show_bug.cgi?id=758820
-
-Signed-off-by: Haihua Hu <b55597@freescale.com>
----
- gst-libs/gst/gl/gstglwindow.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c
-index 44b74ca..42ef296 100644
---- a/gst-libs/gst/gl/gstglwindow.c
-+++ b/gst-libs/gst/gl/gstglwindow.c
-@@ -343,6 +343,9 @@ gst_gl_window_finalize (GObject * object)
- while (window->nav_alive) {
- g_cond_wait (&window->nav_destroy_cond, &window->nav_lock);
- }
-+ /* release resource hold by navigation thread */
-+ g_thread_join(window->priv->navigation_thread);
-+ window->priv->navigation_thread = NULL;
- g_mutex_unlock (&window->nav_lock);
- }
-
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-glcolorconvert-implement-multiple-render-targets-for.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-glcolorconvert-implement-multiple-render-targets-for.patch
new file mode 100755
index 000000000..31d8e052f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0003-glcolorconvert-implement-multiple-render-targets-for.patch
@@ -0,0 +1,244 @@
+From 127e517568490fc147211d8b2fb4da01cecbbeb5 Mon Sep 17 00:00:00 2001
+From: Matthew Waters <matthew@centricular.com>
+Date: Thu, 31 Mar 2016 19:50:28 +1100
+Subject: [PATCH 5/6] glcolorconvert: implement multiple render targets for
+ GLES3
+
+There are numerous slight differences required between Desktop GL and GLES3 for
+multiple render targets.
+
+1. gl_FragData doesn't exist at all and one is required to use
+ 'layout (location = ?) out ...' instead.
+2. gl_FragColor doesn't exist, same as 1
+3. texture2D() has been deprecated
+
+Fortunately most of these have been taken care of with GL3 and the shader
+mangling already exists so just expand the conditions they are used in. The
+gl_FragData issue requires a new mangle pass though. We also use this new
+pass on desktop GL for consistency.
+
+Upstream-Status: Backport [1.9.1]
+
+---
+ gst-libs/gst/gl/gstglcolorconvert.c | 125 ++++++++++++++++++++++++++++--------
+ 1 file changed, 99 insertions(+), 26 deletions(-)
+
+diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
+index 490ec54..f478faa 100644
+--- a/gst-libs/gst/gl/gstglcolorconvert.c
++++ b/gst-libs/gst/gl/gstglcolorconvert.c
+@@ -1802,10 +1802,11 @@ _mangle_sampler_type (const gchar * str, GstGLTextureTarget from,
+
+ static gchar *
+ _mangle_varying_attribute (const gchar * str, guint shader_type,
+- GstGLAPI gl_api)
++ GstGLAPI gl_api, guint gl_major, guint gl_minor)
+ {
+- if (gl_api & GST_GL_API_OPENGL3) {
+- if (shader_type == GL_VERTEX_SHADER) {
++ if (shader_type == GL_VERTEX_SHADER) {
++ if ((gl_api & GST_GL_API_OPENGL3) || (gl_api & GST_GL_API_GLES2
++ && gl_major >= 3)) {
+ gchar *tmp, *tmp2;
+ GRegex *regex;
+
+@@ -1821,7 +1822,10 @@ _mangle_varying_attribute (const gchar * str, guint shader_type,
+
+ g_free (tmp);
+ return tmp2;
+- } else if (shader_type == GL_FRAGMENT_SHADER) {
++ }
++ } else if (shader_type == GL_FRAGMENT_SHADER) {
++ if ((gl_api & GST_GL_API_OPENGL3) || (gl_api & GST_GL_API_GLES2
++ && gl_major > 3)) {
+ gchar *tmp;
+ GRegex *regex;
+
+@@ -1837,28 +1841,48 @@ _mangle_varying_attribute (const gchar * str, guint shader_type,
+ }
+
+ static gchar *
+-_mangle_frag_color (const gchar * str)
++_mangle_frag_color_data (const gchar * str)
+ {
+ GRegex *regex;
+- gchar *ret;
++ gchar *ret, *tmp;
+
+ regex = g_regex_new ("gl_FragColor", 0, 0, NULL);
+ ret = g_regex_replace_literal (regex, str, -1, 0, "fragColor", 0, NULL);
+ g_regex_unref (regex);
+
++ tmp = ret;
++ /* search and replace 'gl_FragData[NUM]' into fragColor_NUM */
++ regex = g_regex_new ("gl_FragData\\[(\\d+)\\]", 0, 0, NULL);
++ ret = g_regex_replace (regex, tmp, -1, 0, "fragColor_\\1", 0, NULL);
++ g_regex_unref (regex);
++ g_free (tmp);
++
+ return ret;
+ }
+
+ static void
+-_mangle_version_profile_from_gl_api (GstGLAPI gl_api, GstGLSLVersion * version,
+- GstGLSLProfile * profile)
++_mangle_version_profile_from_gl_api (GstGLAPI gl_api, gint gl_major,
++ gint gl_minor, GstGLSLVersion * version, GstGLSLProfile * profile)
+ {
++ *version = GST_GLSL_VERSION_NONE;
++ *profile = GST_GLSL_PROFILE_NONE;
++
+ if (gl_api & GST_GL_API_OPENGL3) {
+- *version = GST_GLSL_VERSION_150;
+- *profile = GST_GLSL_PROFILE_NONE;
++ if (gl_major > 3 || gl_minor >= 3) {
++ *version = GST_GLSL_VERSION_330;
++ *profile = GST_GLSL_PROFILE_CORE;
++ } else {
++ *version = GST_GLSL_VERSION_150;
++ *profile = GST_GLSL_PROFILE_NONE;
++ }
+ } else if (gl_api & GST_GL_API_GLES2) {
+- *version = GST_GLSL_VERSION_100;
+- *profile = GST_GLSL_PROFILE_ES;
++ if (gl_major >= 3) {
++ *version = GST_GLSL_VERSION_300;
++ *profile = GST_GLSL_PROFILE_ES;
++ } else if (gl_major >= 2) {
++ *version = GST_GLSL_VERSION_100;
++ *profile = GST_GLSL_PROFILE_ES;
++ }
+ } else if (gl_api & GST_GL_API_OPENGL) {
+ *version = GST_GLSL_VERSION_110;
+ *profile = GST_GLSL_PROFILE_COMPATIBILITY;
+@@ -1867,22 +1891,28 @@ _mangle_version_profile_from_gl_api (GstGLAPI gl_api, GstGLSLVersion * version,
+
+ static gchar *
+ _mangle_shader (const gchar * str, guint shader_type, GstGLTextureTarget from,
+- GstGLTextureTarget to, GstGLAPI gl_api, GstGLSLVersion * version,
+- GstGLSLProfile * profile)
++ GstGLTextureTarget to, GstGLAPI gl_api, gint gl_major, gint gl_minor,
++ GstGLSLVersion * version, GstGLSLProfile * profile)
+ {
+ gchar *tmp, *tmp2;
+
++ _mangle_version_profile_from_gl_api (gl_api, gl_major, gl_minor, version,
++ profile);
+ tmp = _mangle_texture_access (str, from, to, gl_api);
+ tmp2 = _mangle_sampler_type (tmp, from, to);
+ g_free (tmp);
+- tmp = _mangle_varying_attribute (tmp2, shader_type, gl_api);
++ tmp =
++ _mangle_varying_attribute (tmp2, shader_type, gl_api, gl_major, gl_minor);
+ g_free (tmp2);
+- if (shader_type == GL_FRAGMENT_SHADER && gl_api & GST_GL_API_OPENGL3) {
+- tmp2 = _mangle_frag_color (tmp);
+- g_free (tmp);
+- tmp = tmp2;
++ if (shader_type == GL_FRAGMENT_SHADER) {
++ if ((*profile == GST_GLSL_PROFILE_ES && *version >= GST_GLSL_VERSION_300)
++ || (*profile == GST_GLSL_PROFILE_CORE
++ && *version >= GST_GLSL_VERSION_150)) {
++ tmp2 = _mangle_frag_color_data (tmp);
++ g_free (tmp);
++ tmp = tmp2;
++ }
+ }
+- _mangle_version_profile_from_gl_api (gl_api, version, profile);
+ return tmp;
+ }
+
+@@ -1899,15 +1929,18 @@ _create_shader (GstGLColorConvert * convert)
+ const gchar *strings[2];
+ GError *error = NULL;
+ GstGLAPI gl_api;
++ gint gl_major, gl_minor;
+ int i;
+
+ gl_api = gst_gl_context_get_gl_api (convert->context);
++ gst_gl_context_get_gl_version (convert->context, &gl_major, &gl_minor);
+
+ ret = gst_gl_shader_new (convert->context);
+
+ tmp =
+ _mangle_shader (text_vertex_shader, GL_VERTEX_SHADER, info->templ->target,
+- convert->priv->from_texture_target, gl_api, &version, &profile);
++ convert->priv->from_texture_target, gl_api, gl_major, gl_minor, &version,
++ &profile);
+
+ tmp1 = gst_glsl_version_profile_to_string (version, profile);
+ version_str = g_strdup_printf ("#version %s\n", tmp1);
+@@ -1945,9 +1978,37 @@ _create_shader (GstGLColorConvert * convert)
+ if (info->templ->uniforms)
+ g_string_append (str, info->templ->uniforms);
+
+- if (gl_api & GST_GL_API_OPENGL3) {
+- g_string_append_c (str, '\n');
+- g_string_append (str, "out vec4 fragColor;\n");
++ g_string_append_c (str, '\n');
++
++ /* GL 3.3+ and GL ES 3.x */
++ if ((profile == GST_GLSL_PROFILE_CORE && version >= GST_GLSL_VERSION_330)
++ || (profile == GST_GLSL_PROFILE_ES && version >= GST_GLSL_VERSION_300)) {
++ if (info->out_n_textures > 1) {
++ gint i;
++
++ for (i = 0; i < info->out_n_textures; i++) {
++ g_string_append_printf (str,
++ "layout(location = %d) out vec4 fragColor_%d;\n", i, i);
++ }
++ } else {
++ g_string_append (str, "layout (location = 0) out vec4 fragColor;\n");
++ }
++ } else if (profile == GST_GLSL_PROFILE_CORE
++ && version >= GST_GLSL_VERSION_150) {
++ /* no layout specifiers, use glBindFragDataLocation instead */
++ if (info->out_n_textures > 1) {
++ gint i;
++
++ for (i = 0; i < info->out_n_textures; i++) {
++ gchar *var_name = g_strdup_printf ("fragColor_%d", i);
++ g_string_append_printf (str, "out vec4 %s;\n", var_name);
++ gst_gl_shader_bind_frag_data_location (ret, i, var_name);
++ g_free (var_name);
++ }
++ } else {
++ g_string_append (str, "out vec4 fragColor;\n");
++ gst_gl_shader_bind_frag_data_location (ret, 0, "fragColor");
++ }
+ }
+
+ for (i = 0; i < MAX_FUNCTIONS; i++) {
+@@ -1959,7 +2020,19 @@ _create_shader (GstGLColorConvert * convert)
+ g_string_append_c (str, '\n');
+ }
+
+- g_string_append (str, "\nvarying vec2 v_texcoord;\nvoid main (void) {\n");
++ {
++ const gchar *varying = NULL;
++
++ if ((profile == GST_GLSL_PROFILE_ES && version >= GST_GLSL_VERSION_300)
++ || (profile == GST_GLSL_PROFILE_CORE
++ && version >= GST_GLSL_VERSION_150)) {
++ varying = "in";
++ } else {
++ varying = "varying";
++ }
++ g_string_append_printf (str, "\n%s vec2 v_texcoord;\nvoid main (void) {\n",
++ varying);
++ }
+ if (info->frag_body) {
+ g_string_append (str, "vec2 texcoord;\n");
+ if (convert->priv->from_texture_target == GST_GL_TEXTURE_TARGET_RECTANGLE
+@@ -1975,7 +2048,7 @@ _create_shader (GstGLColorConvert * convert)
+ tmp = g_string_free (str, FALSE);
+ info->frag_prog = _mangle_shader (tmp, GL_FRAGMENT_SHADER,
+ info->templ->target, convert->priv->from_texture_target, gl_api,
+- &version, &profile);
++ gl_major, gl_minor, &version, &profile);
+ g_free (tmp);
+
+ strings[1] = info->frag_prog;
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch
new file mode 100755
index 000000000..b75f402d8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch
@@ -0,0 +1,32 @@
+From b069672ace2b762f400ca6d318571cbedf5141f2 Mon Sep 17 00:00:00 2001
+From: Matthew Waters <matthew@centricular.com>
+Date: Thu, 31 Mar 2016 20:00:37 +1100
+Subject: [PATCH 1/3] glcolorconvert: don't use the predefined variable name
+ sample
+
+Using 'sample' as a variable name is an error in GLES3
+
+Upstream-Status: Backport [1.9.1]
+---
+ gst-libs/gst/gl/gstglcolorconvert.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
+index f478faa..c23624f 100644
+--- a/gst-libs/gst/gl/gstglcolorconvert.c
++++ b/gst-libs/gst/gl/gstglcolorconvert.c
+@@ -261,9 +261,9 @@ static const struct shader_templ templ_RGB_to_PLANAR_YUV =
+ " for (int j = 0; j < int(chroma_sampling.y); j++) {\n"
+ " int n = (i+1)*(j+1);\n"
+ " delta.y = float(j);\n"
+- " vec4 sample = texture2D(tex, (chroma_pos + delta) / unnormalization).%c%c%c%c;\n"
++ " vec4 s = texture2D(tex, (chroma_pos + delta) / unnormalization).%c%c%c%c;\n"
+ /* rolling average */
+- " uv_texel = (float(n-1) * uv_texel + sample) / float(n);\n"
++ " uv_texel = (float(n-1) * uv_texel + s) / float(n);\n"
+ " }\n"
+ " }\n"
+ "}\n"
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-glshader-add-glBindFragDataLocation.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-glshader-add-glBindFragDataLocation.patch
new file mode 100755
index 000000000..57e9d1a46
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0005-glshader-add-glBindFragDataLocation.patch
@@ -0,0 +1,77 @@
+From 38221080181229d520522a20bcb1663ca19f7aff Mon Sep 17 00:00:00 2001
+From: Matthew Waters <matthew@centricular.com>
+Date: Thu, 31 Mar 2016 19:25:32 +1100
+Subject: [PATCH 2/3] glshader: add glBindFragDataLocation
+
+There are some cases where it's needed for binding in/out variables in shaders.
+e.g. glsl 150 (gl 3.2) doesn't support the 'layout (location = ?)' specifiers in
+the shader source so we have to bind them ourselves.
+
+Upstream-Status: Backport [1.9.1]
+---
+ gst-libs/gst/gl/glprototypes/shaders.h | 10 ++++++++++
+ gst-libs/gst/gl/gstglshader.c | 20 ++++++++++++++++++++
+ gst-libs/gst/gl/gstglshader.h | 1 +
+ 3 files changed, 31 insertions(+)
+
+diff --git a/gst-libs/gst/gl/glprototypes/shaders.h b/gst-libs/gst/gl/glprototypes/shaders.h
+index 817e479..6d828db 100644
+--- a/gst-libs/gst/gl/glprototypes/shaders.h
++++ b/gst-libs/gst/gl/glprototypes/shaders.h
+@@ -362,3 +362,13 @@ GST_GL_EXT_FUNCTION (void, UniformMatrix3x4fv,
+ GST_GL_EXT_FUNCTION (void, UniformMatrix4x3fv,
+ (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
+ GST_GL_EXT_END ()
++
++GST_GL_EXT_BEGIN (bind_frag_data,
++ GST_GL_API_OPENGL | GST_GL_API_OPENGL3,
++ 3, 0,
++ 255, 255,
++ "\0",
++ "\0")
++GST_GL_EXT_FUNCTION (void, BindFragDataLocation,
++ (GLuint program, GLuint index, const GLchar * name))
++GST_GL_EXT_END ()
+diff --git a/gst-libs/gst/gl/gstglshader.c b/gst-libs/gst/gl/gstglshader.c
+index 9d96784..9f09236 100644
+--- a/gst-libs/gst/gl/gstglshader.c
++++ b/gst-libs/gst/gl/gstglshader.c
+@@ -1306,3 +1306,23 @@ gst_gl_shader_bind_attribute_location (GstGLShader * shader, GLuint index,
+
+ gl->BindAttribLocation (priv->program_handle, index, name);
+ }
++
++void
++gst_gl_shader_bind_frag_data_location (GstGLShader * shader,
++ guint index, const gchar * name)
++{
++ GstGLShaderPrivate *priv;
++ GstGLFuncs *gl;
++
++ g_return_if_fail (shader != NULL);
++ if (!_ensure_program (shader))
++ g_return_if_fail (shader->priv->program_handle);
++ priv = shader->priv;
++ gl = shader->context->gl_vtable;
++ g_return_if_fail (gl->BindFragDataLocation);
++
++ GST_TRACE_OBJECT (shader, "binding program %i frag data \'%s\' location %i",
++ (int) priv->program_handle, name, index);
++
++ gl->BindFragDataLocation (priv->program_handle, index, name);
++}
+diff --git a/gst-libs/gst/gl/gstglshader.h b/gst-libs/gst/gl/gstglshader.h
+index 21410e2..2200b89 100644
+--- a/gst-libs/gst/gl/gstglshader.h
++++ b/gst-libs/gst/gl/gstglshader.h
+@@ -104,6 +104,7 @@ void gst_gl_shader_set_uniform_matrix_4x3fv (GstGLShader *shader, const gchar *n
+
+ gint gst_gl_shader_get_attribute_location (GstGLShader *shader, const gchar *name);
+ void gst_gl_shader_bind_attribute_location (GstGLShader * shader, guint index, const gchar * name);
++void gst_gl_shader_bind_frag_data_location (GstGLShader * shader, guint index, const gchar * name);
+
+ G_END_DECLS
+
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch
new file mode 100755
index 000000000..79ef4c81a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch
@@ -0,0 +1,51 @@
+From 764fd69f8482eca9f925cefe72ebae090ae59d43 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
+Date: Tue, 19 Apr 2016 19:27:33 +0300
+Subject: [PATCH 3/3] glcolorconvert: GLES3 deprecates texture2D() and it does
+ not work at all in newer versions than 3.3
+
+Use the newer texture() function instead. This fixes glimagesink and other
+things on various Android devices.
+
+Upstream-Status: Backport [1.9.1]
+
+https://bugzilla.gnome.org/show_bug.cgi?id=765266
+---
+ gst-libs/gst/gl/gstglcolorconvert.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
+index c23624f..f472d5d 100644
+--- a/gst-libs/gst/gl/gstglcolorconvert.c
++++ b/gst-libs/gst/gl/gstglcolorconvert.c
+@@ -1716,7 +1716,7 @@ _unbind_buffer (GstGLColorConvert * convert)
+
+ static gchar *
+ _mangle_texture_access (const gchar * str, GstGLTextureTarget from,
+- GstGLTextureTarget to, GstGLAPI gl_api)
++ GstGLTextureTarget to, GstGLAPI gl_api, guint gl_major, guint gl_minor)
+ {
+ const gchar *from_str = NULL, *to_str = NULL;
+ gchar *ret, *tmp;
+@@ -1730,7 +1730,8 @@ _mangle_texture_access (const gchar * str, GstGLTextureTarget from,
+ if (from == GST_GL_TEXTURE_TARGET_EXTERNAL_OES)
+ from_str = "texture2D";
+
+- if (gl_api & GST_GL_API_OPENGL3) {
++ if ((gl_api & GST_GL_API_OPENGL3) || (gl_api & GST_GL_API_GLES2
++ && gl_major >= 3)) {
+ to_str = "texture";
+ } else {
+ if (to == GST_GL_TEXTURE_TARGET_2D)
+@@ -1898,7 +1899,7 @@ _mangle_shader (const gchar * str, guint shader_type, GstGLTextureTarget from,
+
+ _mangle_version_profile_from_gl_api (gl_api, gl_major, gl_minor, version,
+ profile);
+- tmp = _mangle_texture_access (str, from, to, gl_api);
++ tmp = _mangle_texture_access (str, from, to, gl_api, gl_major, gl_minor);
+ tmp2 = _mangle_sampler_type (tmp, from, to);
+ g_free (tmp);
+ tmp =
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0008-gl-implement-GstGLMemoryEGL.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0008-gl-implement-GstGLMemoryEGL.patch
new file mode 100644
index 000000000..a67381cfe
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0008-gl-implement-GstGLMemoryEGL.patch
@@ -0,0 +1,495 @@
+From 806bbe75b0b6947f589bce3960c28fee51b5c6c2 Mon Sep 17 00:00:00 2001
+From: Gwang Yoon Hwang <yoon@igalia.com>
+Date: Thu, 21 Jan 2016 22:18:17 +0900
+Subject: [PATCH] gl: implement GstGLMemoryEGL
+
+Because current GstEGLImageMemory does not inherit GstGLMemory, GLUpload
+allocates additional GLMemory and upload the decoded contents from the decoder
+which uses EGLImage (e.g. gst-omx in RPi).
+
+This work adds GstGLMemoryEGL to avoid this overhead. Decoders allocate
+GstGLMemoryEGL and decode its contents to the EGLImage of GstGLMemoryEGL. And
+GLUpload uses this memory without allocation of additional textures and blit
+operations.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=760916
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ gst-libs/gst/gl/egl/Makefile.am | 2 +
+ gst-libs/gst/gl/egl/gstgldisplay_egl.c | 2 +
+ gst-libs/gst/gl/egl/gstglmemoryegl.c | 241 +++++++++++++++++++++++++++++++++
+ gst-libs/gst/gl/egl/gstglmemoryegl.h | 108 +++++++++++++++
+ gst-libs/gst/gl/gstgl_fwd.h | 4 +
+ gst-libs/gst/gl/gstgldisplay.c | 2 +
+ gst-libs/gst/gl/gstglupload.c | 8 ++
+ 7 files changed, 367 insertions(+)
+ create mode 100644 gst-libs/gst/gl/egl/gstglmemoryegl.c
+ create mode 100644 gst-libs/gst/gl/egl/gstglmemoryegl.h
+
+diff --git a/gst-libs/gst/gl/egl/Makefile.am b/gst-libs/gst/gl/egl/Makefile.am
+index b808178..878f16c 100644
+--- a/gst-libs/gst/gl/egl/Makefile.am
++++ b/gst-libs/gst/gl/egl/Makefile.am
+@@ -5,6 +5,7 @@ noinst_LTLIBRARIES = libgstgl-egl.la
+ libgstgl_egl_la_SOURCES = \
+ gstgldisplay_egl.c \
+ gstglcontext_egl.c \
++ gstglmemoryegl.c \
+ gsteglimagememory.c
+
+ noinst_HEADERS =
+@@ -13,6 +14,7 @@ libgstgl_eglincludedir = $(includedir)/gstreamer-@GST_API_VERSION@/gst/gl/egl
+ libgstgl_eglinclude_HEADERS = \
+ gstgldisplay_egl.h \
+ gstglcontext_egl.h \
++ gstglmemoryegl.h \
+ gsteglimagememory.h \
+ gstegl.h
+
+diff --git a/gst-libs/gst/gl/egl/gstgldisplay_egl.c b/gst-libs/gst/gl/egl/gstgldisplay_egl.c
+index 9acf4f0..20816c2 100644
+--- a/gst-libs/gst/gl/egl/gstgldisplay_egl.c
++++ b/gst-libs/gst/gl/egl/gstgldisplay_egl.c
+@@ -24,6 +24,7 @@
+
+ #include <gst/gl/egl/gstgldisplay_egl.h>
+ #include <gst/gl/egl/gsteglimagememory.h>
++#include <gst/gl/egl/gstglmemoryegl.h>
+
+ GST_DEBUG_CATEGORY_STATIC (gst_gl_display_debug);
+ #define GST_CAT_DEFAULT gst_gl_display_debug
+@@ -51,6 +52,7 @@ gst_gl_display_egl_init (GstGLDisplayEGL * display_egl)
+ display_egl->foreign_display = FALSE;
+
+ gst_egl_image_memory_init ();
++ gst_gl_memory_egl_init_once ();
+ }
+
+ static void
+diff --git a/gst-libs/gst/gl/egl/gstglmemoryegl.c b/gst-libs/gst/gl/egl/gstglmemoryegl.c
+new file mode 100644
+index 0000000..03cf432
+--- /dev/null
++++ b/gst-libs/gst/gl/egl/gstglmemoryegl.c
+@@ -0,0 +1,241 @@
++/*
++ * GStreamer
++ * Copyright (C) 2012 Collabora Ltd.
++ * @author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
++ * Copyright (C) 2014 Julien Isorce <julien.isorce@gmail.com>
++ * Copyright (C) 2015 Igalia
++ * Author: Gwang Yoon Hwang <yoon@igalia.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include <string.h>
++
++#include <gst/gl/egl/gstglmemoryegl.h>
++
++static GstAllocator *_gl_memory_egl_allocator;
++
++GST_DEBUG_CATEGORY_STATIC (GST_CAT_GL_MEMORY);
++#define GST_CAT_DEFAULT GST_CAT_GL_MEMORY
++
++#define parent_class gst_gl_memory_egl_allocator_parent_class
++G_DEFINE_TYPE (GstGLMemoryEGLAllocator, gst_gl_memory_egl_allocator,
++ GST_TYPE_GL_MEMORY_ALLOCATOR);
++
++gboolean
++gst_is_gl_memory_egl (GstMemory * mem)
++{
++ return mem != NULL && mem->allocator != NULL
++ && g_type_is_a (G_OBJECT_TYPE (mem->allocator),
++ GST_TYPE_GL_MEMORY_EGL_ALLOCATOR);
++}
++
++static GstGLMemoryEGL *
++_gl_mem_get_parent (GstGLMemoryEGL * gl_mem)
++{
++ GstGLMemoryEGL *parent = (GstGLMemoryEGL *)gl_mem->mem.mem.mem.parent;
++ return parent ? parent : gl_mem;
++}
++
++EGLImageKHR
++gst_gl_memory_egl_get_image (GstGLMemoryEGL * mem)
++{
++ g_return_val_if_fail (gst_is_gl_memory_egl (GST_MEMORY_CAST (mem)),
++ EGL_NO_IMAGE_KHR);
++ return _gl_mem_get_parent(mem)->image;
++}
++
++EGLDisplay
++gst_gl_memory_egl_get_display (GstGLMemoryEGL * mem)
++{
++ g_return_val_if_fail (gst_is_gl_memory_egl (GST_MEMORY_CAST (mem)), NULL);
++ return GST_GL_CONTEXT_EGL(_gl_mem_get_parent(mem))->egl_display;
++}
++
++GstVideoGLTextureOrientation
++gst_gl_memory_egl_get_orientation (GstGLMemoryEGL * mem)
++{
++ g_return_val_if_fail (gst_is_gl_memory_egl (GST_MEMORY_CAST (mem)),
++ GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL);
++
++ return _gl_mem_get_parent(mem)->orientation;
++}
++
++void
++gst_gl_memory_egl_set_orientation (GstGLMemoryEGL * mem,
++ GstVideoGLTextureOrientation orientation)
++{
++ g_return_if_fail (gst_is_gl_memory_egl (GST_MEMORY_CAST (mem)));
++
++ _gl_mem_get_parent(mem)->orientation = orientation;
++}
++
++static GstMemory *
++_gl_mem_alloc (GstAllocator * allocator, gsize size,
++ GstAllocationParams * params)
++{
++ g_warning ("Use gst_gl_base_memory_allocator_alloc() to allocate from this "
++ "GstGLMemoryEGL allocator");
++
++ return NULL;
++}
++
++static void
++_gl_mem_destroy (GstGLMemoryEGL * mem)
++{
++ /* Shared memory should not destroy all the data */
++ if (!mem->mem.mem.mem.parent) {
++ GstGLContextEGL *context = GST_GL_CONTEXT_EGL(mem->mem.mem.context);
++ context->eglDestroyImage (context->egl_display, mem->image);
++ }
++
++ GST_GL_BASE_MEMORY_ALLOCATOR_CLASS (parent_class)->destroy ((GstGLBaseMemory
++ *) mem);
++}
++
++static void
++_gl_mem_init (GstGLMemoryEGL * mem, GstAllocator * allocator,
++ GstMemory * parent, GstGLContext * context, GstGLTextureTarget target,
++ GstAllocationParams * params, GstVideoInfo * info,
++ guint plane, GstVideoAlignment * valign, gpointer user_data,
++ GDestroyNotify notify)
++{
++ gst_gl_memory_init ((GstGLMemory *) mem, allocator, parent,
++ context, target, params, info, plane, valign, user_data, notify);
++}
++
++static GstGLMemoryEGL *
++_gl_mem_egl_alloc (GstGLBaseMemoryAllocator * allocator,
++ GstGLVideoAllocationParams * params)
++{
++ guint alloc_flags = params->parent.alloc_flags;
++ GstGLMemoryEGL *mem;
++
++ g_return_val_if_fail (alloc_flags & GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_VIDEO,
++ NULL);
++ g_return_val_if_fail ((alloc_flags &
++ GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_GPU_HANDLE) == 0, NULL);
++ g_return_val_if_fail ((alloc_flags &
++ GST_GL_ALLOCATION_PARAMS_ALLOC_FLAG_WRAP_SYSMEM) == 0, NULL);
++
++ mem = g_new0 (GstGLMemoryEGL, 1);
++ mem->image = EGL_NO_IMAGE_KHR;
++
++ _gl_mem_init (mem, GST_ALLOCATOR_CAST (allocator), NULL,
++ params->parent.context, params->target, params->parent.alloc_params,
++ params->v_info, params->plane, params->valign, params->parent.user_data,
++ params->parent.notify);
++
++ return mem;
++}
++
++static gboolean
++_gl_mem_create (GstGLMemoryEGL * gl_mem, GError ** error)
++{
++ GstGLContextEGL *context = GST_GL_CONTEXT_EGL (gl_mem->mem.mem.context);
++ GstGLBaseMemoryAllocatorClass *alloc_class;
++
++ if (!gst_gl_context_check_feature (GST_GL_CONTEXT (context),
++ "EGL_KHR_image_base")) {
++ g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_WRONG_API,
++ "EGL_KHR_image_base is not supported");
++ return FALSE;
++ }
++
++ alloc_class = GST_GL_BASE_MEMORY_ALLOCATOR_CLASS (parent_class);
++ if (!alloc_class->create ((GstGLBaseMemory *) gl_mem, error))
++ return FALSE;
++
++ gl_mem->image = context->eglCreateImage (context->egl_display,
++ context->egl_context, EGL_GL_TEXTURE_2D_KHR,
++ (EGLClientBuffer) GSIZE_TO_POINTER (gl_mem->mem.tex_id), NULL);
++
++ GST_TRACE ("Generating EGLImage handle:%p from a texture:%u",
++ gl_mem->image, gl_mem->mem.tex_id);
++
++ if (eglGetError () != EGL_SUCCESS) {
++ g_set_error (error, GST_GL_CONTEXT_ERROR, GST_GL_CONTEXT_ERROR_FAILED,
++ "Failed to create EGLImage");
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++static GstMemory *
++_gl_mem_copy (GstGLMemoryEGL * src, gssize offset, gssize size)
++{
++ GST_CAT_ERROR (GST_CAT_GL_MEMORY, "GstGLMemoryEGL does not support copy");
++ return NULL;
++}
++
++static void
++gst_gl_memory_egl_allocator_class_init (GstGLMemoryEGLAllocatorClass * klass)
++{
++ GstGLBaseMemoryAllocatorClass *gl_base;
++ GstGLMemoryAllocatorClass *gl_tex;
++ GstAllocatorClass *allocator_class;
++
++ gl_tex = (GstGLMemoryAllocatorClass *) klass;
++ gl_base = (GstGLBaseMemoryAllocatorClass *) klass;
++ allocator_class = (GstAllocatorClass *) klass;
++
++ gl_base->alloc = (GstGLBaseMemoryAllocatorAllocFunction) _gl_mem_egl_alloc;
++ gl_base->create = (GstGLBaseMemoryAllocatorCreateFunction) _gl_mem_create;
++ gl_base->destroy = (GstGLBaseMemoryAllocatorDestroyFunction) _gl_mem_destroy;
++ gl_tex->copy = (GstGLBaseMemoryAllocatorCopyFunction) _gl_mem_copy;
++
++ allocator_class->alloc = _gl_mem_alloc;
++}
++
++static void
++gst_gl_memory_egl_allocator_init (GstGLMemoryEGLAllocator * allocator)
++{
++ GstAllocator *alloc = GST_ALLOCATOR_CAST (allocator);
++
++ alloc->mem_type = GST_GL_MEMORY_EGL_ALLOCATOR_NAME;
++
++ GST_OBJECT_FLAG_SET (allocator, GST_ALLOCATOR_FLAG_CUSTOM_ALLOC);
++}
++
++/**
++ * gst_gl_memory_egl_init_once:
++ *
++ * Initializes the GL Memory allocator. It is safe to call this function
++ * multiple times. This must be called before any other GstGLMemoryEGL operation.
++ */
++void
++gst_gl_memory_egl_init_once (void)
++{
++ static volatile gsize _init = 0;
++
++ if (g_once_init_enter (&_init)) {
++ gst_gl_memory_init_once ();
++
++ GST_DEBUG_CATEGORY_INIT (GST_CAT_GL_MEMORY, "glmemory", 0,
++ "OpenGL Texture with EGLImage memory");
++
++ _gl_memory_egl_allocator = g_object_new (GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, NULL);
++
++ gst_allocator_register (GST_GL_MEMORY_EGL_ALLOCATOR_NAME,
++ gst_object_ref (_gl_memory_egl_allocator));
++ g_once_init_leave (&_init, 1);
++ }
++}
+diff --git a/gst-libs/gst/gl/egl/gstglmemoryegl.h b/gst-libs/gst/gl/egl/gstglmemoryegl.h
+new file mode 100644
+index 0000000..7256d33
+--- /dev/null
++++ b/gst-libs/gst/gl/egl/gstglmemoryegl.h
+@@ -0,0 +1,108 @@
++/*
++ * GStreamer
++ * Copyright (C) 2012 Collabora Ltd.
++ * @author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
++ * Copyright (C) 2014 Julien Isorce <julien.isorce@gmail.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
++
++#ifndef _GST_GL_MEMORY_EGL_H_
++#define _GST_GL_MEMORY_EGL_H_
++
++#include <gst/gst.h>
++#include <gst/gstallocator.h>
++#include <gst/gstmemory.h>
++#include <gst/video/video.h>
++
++#include <gst/gl/gl.h>
++#include "gstglcontext_egl.h"
++
++#include <gst/gl/gstglmemory.h>
++
++G_BEGIN_DECLS
++
++#define GST_TYPE_GL_MEMORY_EGL_ALLOCATOR (gst_gl_memory_egl_allocator_get_type())
++GType gst_gl_memory_egl_allocator_get_type(void);
++
++#define GST_IS_GL_MEMORY_EGL_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GL_MEMORY_EGL_ALLOCATOR))
++#define GST_IS_GL_MEMORY_EGL_ALLOCATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GL_MEMORY_EGL_ALLOCATOR))
++#define GST_GL_MEMORY_EGL_ALLOCATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, GstGLMemoryEGLAllocatorClass))
++#define GST_GL_MEMORY_EGL_ALLOCATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, GstGLMemoryEGLAllocator))
++#define GST_GL_MEMORY_EGL_ALLOCATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GL_MEMORY_EGL_ALLOCATOR, GstGLAllocatorClass))
++#define GST_GL_MEMORY_EGL_ALLOCATOR_CAST(obj) ((GstGLMemoryEGLAllocator *)(obj))
++
++typedef void (*GstEGLImageDestroyNotify) (GstGLContextEGL * context,
++ gpointer data);
++
++typedef struct _GstEGLImageMemory GstEGLImageMemory;
++
++
++/**
++ * GstGLMemoryEGL:
++ *
++ * Private instance
++ */
++struct _GstGLMemoryEGL
++{
++ GstGLMemory mem;
++
++ EGLImageKHR image;
++ GstVideoGLTextureOrientation orientation;
++};
++
++/**
++ * GST_GL_MEMORY_EGL_ALLOCATOR:
++ *
++ * The name of the GL Memory EGL allocator
++ */
++#define GST_GL_MEMORY_EGL_ALLOCATOR_NAME "GLMemoryEGL"
++
++void gst_gl_memory_egl_init_once (void);
++gboolean gst_is_gl_memory_egl (GstMemory * mem);
++
++EGLImageKHR gst_gl_memory_egl_get_image (GstGLMemoryEGL * mem);
++EGLDisplay gst_gl_memory_egl_get_display (GstGLMemoryEGL * mem);
++
++GstVideoGLTextureOrientation gst_gl_memory_egl_get_orientation
++ (GstGLMemoryEGL * mem);
++
++void gst_gl_memory_egl_set_orientation (GstGLMemoryEGL * mem,
++ GstVideoGLTextureOrientation orientation);
++
++/**
++ * GstGLAllocator
++ *
++ * Opaque #GstGLAllocator struct
++ */
++struct _GstGLMemoryEGLAllocator
++{
++ GstGLMemoryAllocator parent;
++};
++
++/**
++ * GstGLAllocatorClass:
++ *
++ * The #GstGLAllocatorClass only contains private data
++ */
++struct _GstGLMemoryEGLAllocatorClass
++{
++ GstGLMemoryAllocatorClass parent_class;
++};
++
++G_END_DECLS
++
++#endif /* _GST_GL_MEMORY_EGL_H_ */
+diff --git a/gst-libs/gst/gl/gstgl_fwd.h b/gst-libs/gst/gl/gstgl_fwd.h
+index fb64ff6..73e17bd 100644
+--- a/gst-libs/gst/gl/gstgl_fwd.h
++++ b/gst-libs/gst/gl/gstgl_fwd.h
+@@ -55,6 +55,10 @@ typedef struct _GstGLMemoryPBO GstGLMemoryPBO;
+ typedef struct _GstGLMemoryPBOAllocator GstGLMemoryPBOAllocator;
+ typedef struct _GstGLMemoryPBOAllocatorClass GstGLMemoryPBOAllocatorClass;
+
++typedef struct _GstGLMemoryEGL GstGLMemoryEGL;
++typedef struct _GstGLMemoryEGLAllocator GstGLMemoryEGLAllocator;
++typedef struct _GstGLMemoryEGLAllocatorClass GstGLMemoryEGLAllocatorClass;
++
+ typedef struct _GstGLSLStage GstGLSLStage;
+ typedef struct _GstGLSLStagePrivate GstGLSLStagePrivate;
+ typedef struct _GstGLSLStageClass GstGLSLStageClass;
+diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c
+index 60dec6a..34770d0 100644
+--- a/gst-libs/gst/gl/gstgldisplay.c
++++ b/gst-libs/gst/gl/gstgldisplay.c
+@@ -68,6 +68,7 @@
+ #if GST_GL_HAVE_PLATFORM_EGL
+ #include <gst/gl/egl/gstgldisplay_egl.h>
+ #include <gst/gl/egl/gsteglimagememory.h>
++#include <gst/gl/egl/gstglmemoryegl.h>
+ #endif
+
+ GST_DEBUG_CATEGORY_STATIC (gst_context);
+@@ -144,6 +145,7 @@ gst_gl_display_init (GstGLDisplay * display)
+
+ #if GST_GL_HAVE_PLATFORM_EGL
+ gst_egl_image_memory_init ();
++ gst_gl_memory_egl_init_once ();
+ #endif
+ }
+
+diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
+index 16ed5ea..73a9029 100644
+--- a/gst-libs/gst/gl/gstglupload.c
++++ b/gst-libs/gst/gl/gstglupload.c
+@@ -29,6 +29,7 @@
+
+ #if GST_GL_HAVE_PLATFORM_EGL
+ #include "egl/gsteglimagememory.h"
++#include "egl/gstglmemoryegl.h"
+ #endif
+
+ #if GST_GL_HAVE_DMABUF
+@@ -301,6 +302,13 @@ _gl_memory_upload_propose_allocation (gpointer impl, GstQuery * decide_query,
+ context));
+ gst_query_add_allocation_param (query, allocator, &params);
+ gst_object_unref (allocator);
++
++#if GST_GL_HAVE_PLATFORM_EGL
++ allocator =
++ GST_ALLOCATOR (gst_allocator_find (GST_GL_MEMORY_EGL_ALLOCATOR_NAME));
++ gst_query_add_allocation_param (query, allocator, &params);
++ gst_object_unref (allocator);
++#endif
+ }
+
+ n_pools = gst_query_get_n_allocation_pools (query);
+--
+2.5.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0009-glimagesink-Downrank-to-marginal.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0009-glimagesink-Downrank-to-marginal.patch
new file mode 100644
index 000000000..c81fb0f6a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0009-glimagesink-Downrank-to-marginal.patch
@@ -0,0 +1,32 @@
+From c6b37a80806f9128de47f1ccc3f2354f8d436bb6 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 24 Sep 2015 19:47:32 +0300
+Subject: [PATCH] glimagesink: Downrank to marginal
+
+On desktop, where there is good OpenGL, xvimagesink will come up first,
+on other platforms, OpenGL can't be trusted because it's either software (like
+in a VM) or broken (like on embedded)., so let ximagesink come above.
+
+Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=751684]
+
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ext/gl/gstopengl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ext/gl/gstopengl.c b/ext/gl/gstopengl.c
+index a4b2540..0ccaacd 100644
+--- a/ext/gl/gstopengl.c
++++ b/ext/gl/gstopengl.c
+@@ -118,7 +118,7 @@ plugin_init (GstPlugin * plugin)
+ #endif
+
+ if (!gst_element_register (plugin, "glimagesink",
+- GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) {
++ GST_RANK_MARGINAL, gst_gl_image_sink_bin_get_type ())) {
+ return FALSE;
+ }
+
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb
deleted file mode 100644
index 8eb47c265..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.6.3.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-include gstreamer1.0-plugins-bad.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
- file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
- file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \
- file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a"
-
-# Note: The mpg123 plugin was moved to gst-plugins-ugly prior to the 1.7.2
-# release, so this line should be removed during the update to 1.8.x
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=08d8aefcdaaf89ecb6dd53ec1e4f95cd42d01664
-PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
-
-# Note: The gsettings plug-in was dropped prior to the 1.7.2 release,
-# so this line should be removed during the update to 1.8.x
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=914291808ad10621d6a74031f3d46d45eef5a3a3
-EXTRA_OECONF += "--disable-gsettings"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
- file://configure-allow-to-disable-libssh2.patch \
- file://0001-glimagesink-Downrank-to-marginal.patch \
- file://0002-glplugin-glwindow-fix-memory-leak-of-navigation-thre.patch \
-"
-
-SRC_URI[md5sum] = "4857adcafe41e4b9b8805cf88303bd55"
-SRC_URI[sha256sum] = "971b29101d6a9c5e3fe94d99d977a227f58f0b2d29b6ca2c7f292052542b3a61"
-
-S = "${WORKDIR}/gst-plugins-bad-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.3.bb
new file mode 100644
index 000000000..108f4db10
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.8.3.bb
@@ -0,0 +1,26 @@
+include gstreamer1.0-plugins-bad.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
+ file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
+ file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50 \
+ file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${PV}.tar.xz \
+ file://configure-allow-to-disable-libssh2.patch \
+ file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
+ file://avoid-including-sys-poll.h-directly.patch \
+ file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
+ file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \
+ file://0002-glplugin-enable-gldeinterlace-on-OpenGL-ES.patch \
+ file://0003-glcolorconvert-implement-multiple-render-targets-for.patch \
+ file://0004-glcolorconvert-don-t-use-the-predefined-variable-nam.patch \
+ file://0005-glshader-add-glBindFragDataLocation.patch \
+ file://0006-glcolorconvert-GLES3-deprecates-texture2D-and-it-doe.patch \
+ file://0008-gl-implement-GstGLMemoryEGL.patch \
+ file://0009-glimagesink-Downrank-to-marginal.patch \
+"
+SRC_URI[md5sum] = "955281a43e98c5464563fa049e0a0911"
+SRC_URI[sha256sum] = "7899fcb18e6a1af2888b19c90213af018a57d741c6e72ec56b133bc73ec8509b"
+
+S = "${WORKDIR}/gst-plugins-bad-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
index ef6581b2a..1370380b9 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-plugins-bad;name=base \
+ git://anongit.freedesktop.org/gstreamer/gst-plugins-bad;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
file://configure-allow-to-disable-libssh2.patch \
file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
@@ -17,36 +17,16 @@ SRC_URI = " \
file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "50ae46cc0f8827bf966920d9c221e5cf86e811ba"
-SRCREV_common = "a25397448942079002622be231e9ec49b985745a"
+SRCREV_base = "5e73b5a4843d9675246f4efec158624475ed9586"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
-# over-ride the default hls PACKAGECONFIG in gstreamer1.0-plugins-bad.inc to
-# pass an additional --with-hls-crypto=XXX option (new in 1.7.x) and switch HLS
-# AES decryption from nettle to openssl (ie a shared dependency with dtls).
-# This should move back to the common .inc once the main recipe updates to 1.8.x
-PACKAGECONFIG[hls] = "--enable-hls --with-hls-crypto=openssl,--disable-hls,openssl"
-
-# The tinyalsa plugin was added prior to the 1.7.2 release
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c8bd74fa9a81398f57d976c478d2043f30188684
-PACKAGECONFIG[tinyalsa] = "--enable-tinyalsa,--disable-tinyalsa,tinyalsa"
-
-# The vulkan based video sink plugin was added prior to the 1.7.2 release
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=5de6dd9f40629562acf90e35e1fa58464d66617d
-PACKAGECONFIG[vulkan] = "--enable-vulkan,--disable-vulkan,libxcb"
-
-# The dependency-less netsim plugin was added prior to the 1.7.2 release
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=e3f9e854f08e82bfab11182c5a2aa6f9a0c73cd5
-EXTRA_OECONF += " \
- --enable-netsim \
-"
-
do_configure_prepend() {
${S}/autogen.sh --noconfigure
}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
index 7381458f4..a04f155dc 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
@@ -31,6 +31,7 @@ PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparano
PACKAGECONFIG[gio-unix-2.0] = "--enable-gio_unix_2_0,--disable-gio_unix_2_0,glib-2.0"
PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor"
PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg"
+PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora"
PACKAGECONFIG[visual] = "--enable-libvisual,--disable-libvisual,libvisual"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
index 781e4d801..094bdac84 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
@@ -24,7 +24,7 @@ diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makef
index 9361bf9..bc7f53a 100644
--- a/gst-libs/gst/allocators/Makefile.am
+++ b/gst-libs/gst/allocators/Makefile.am
-@@ -37,7 +37,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
+@@ -38,7 +38,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstallocators-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
@@ -37,7 +37,7 @@ diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index 6d6de8d..dcc2fe0 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
-@@ -52,7 +52,7 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
+@@ -53,7 +53,7 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
--library=libgstapp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -50,7 +50,7 @@ diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 275d222..2374196 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
-@@ -106,7 +106,7 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
+@@ -116,7 +116,7 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
--include=GstTag-@GST_API_VERSION@ \
@@ -63,7 +63,7 @@ diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index 09b3d68..f545354 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
-@@ -64,7 +64,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
+@@ -65,7 +65,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstfft-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
@@ -76,7 +76,7 @@ diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index 64d5eb0..91dc214 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
-@@ -94,7 +94,7 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
+@@ -99,7 +99,7 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
--include=GstTag-@GST_API_VERSION@ \
--include=GstVideo-@GST_API_VERSION@ \
--include=GstAudio-@GST_API_VERSION@ \
@@ -102,7 +102,7 @@ diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index fdd01c1..f5445c1 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
-@@ -64,7 +64,7 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
+@@ -65,7 +65,7 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
--library=libgstrtp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -115,7 +115,7 @@ diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index ede5706..9b0b258 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
-@@ -71,7 +71,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+@@ -72,7 +72,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
--include=Gio-2.0 \
--include=Gst-@GST_API_VERSION@ \
--include=GstSdp-@GST_API_VERSION@ \
@@ -128,7 +128,7 @@ diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index a90f30b..0e149b8 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
-@@ -31,7 +31,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
+@@ -32,7 +32,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
--library=libgstsdp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
@@ -141,7 +141,7 @@ diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index c534a4d..cafafd3 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
-@@ -44,7 +44,7 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
+@@ -45,7 +45,7 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
--library=libgsttag-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
@@ -154,7 +154,7 @@ diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index 5d31fa1..ac64eb3 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
-@@ -113,7 +113,7 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
+@@ -116,7 +116,7 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
--library=libgstvideo-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
index 85fcacb55..0a8bc9b07 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
@@ -24,7 +24,7 @@ diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makef
index bc7f53a..0ef5f86 100644
--- a/gst-libs/gst/allocators/Makefile.am
+++ b/gst-libs/gst/allocators/Makefile.am
-@@ -34,7 +34,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
+@@ -35,7 +35,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
--c-include "gst/allocators/allocators.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -33,7 +33,7 @@ index bc7f53a..0ef5f86 100644
--library=libgstallocators-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(LIBTOOL)" \
-@@ -58,7 +58,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -59,7 +59,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -46,7 +46,7 @@ diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index dcc2fe0..dc076cb 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
-@@ -47,8 +47,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
+@@ -48,8 +48,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
--c-include "gst/app/app.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -61,7 +61,7 @@ diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index 2374196..295eb42 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
-@@ -96,12 +96,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
+@@ -106,12 +106,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
--c-include "gst/audio/audio.h" \
@@ -78,7 +78,7 @@ index 2374196..295eb42 100644
--library-path="$(top_builddir)/gst-libs/gst/tag/" \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
-@@ -130,8 +130,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -140,8 +140,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
--includedir=$(srcdir) \
--includedir=$(builddir) \
--includedir="$(top_builddir)/gst-libs/gst/tag/" \
@@ -93,7 +93,7 @@ diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index f545354..1bb6243 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
-@@ -61,7 +61,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
+@@ -62,7 +62,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
--c-include "gst/fft/fft.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -102,7 +102,7 @@ index f545354..1bb6243 100644
--library=libgstfft-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(LIBTOOL)" \
-@@ -85,7 +85,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -86,7 +86,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -115,7 +115,7 @@ diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index 91dc214..dc8e1d3 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
-@@ -79,14 +79,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
+@@ -84,14 +84,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
--c-include "gst/pbutils/pbutils.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -134,7 +134,7 @@ index 91dc214..dc8e1d3 100644
--library-path="$(top_builddir)/gst-libs/gst/tag/" \
--library-path="$(top_builddir)/gst-libs/gst/video/" \
--library-path="$(top_builddir)/gst-libs/gst/audio/" \
-@@ -119,8 +119,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -124,8 +124,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -175,7 +175,7 @@ diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index f5445c1..527c0b4 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
-@@ -59,8 +59,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
+@@ -60,8 +60,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
--c-include "gst/rtp/rtp.h" \
-I$(top_builddir)/gst-libs \
-I$(top_srcdir)/gst-libs \
@@ -186,7 +186,7 @@ index f5445c1..527c0b4 100644
--library=libgstrtp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
-@@ -87,8 +87,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -88,8 +88,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -201,7 +201,7 @@ diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index 9b0b258..4f6d9f8 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
-@@ -66,7 +66,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+@@ -67,7 +67,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
-I$(top_builddir)/gst-libs \
-I$(top_srcdir)/gst-libs \
--add-include-path=$(builddir)/../sdp \
@@ -210,7 +210,7 @@ index 9b0b258..4f6d9f8 100644
--library=libgstrtsp-@GST_API_VERSION@.la \
--include=Gio-2.0 \
--include=Gst-@GST_API_VERSION@ \
-@@ -96,7 +96,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -97,7 +97,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
--includedir=$(srcdir) \
--includedir=$(builddir) \
--includedir=$(builddir)/../sdp \
@@ -223,7 +223,7 @@ diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index 0e149b8..9aa0512 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
-@@ -28,7 +28,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
+@@ -29,7 +29,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
--warn-all \
--c-include "gst/sdp/sdp.h" \
-I$(top_srcdir)/gst-libs \
@@ -232,7 +232,7 @@ index 0e149b8..9aa0512 100644
--library=libgstsdp-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--libtool="$(LIBTOOL)" \
-@@ -52,7 +52,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -53,7 +53,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -245,7 +245,7 @@ diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index cafafd3..ba99279 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
-@@ -39,8 +39,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
+@@ -40,8 +40,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
--c-include "gst/tag/tag.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -256,7 +256,7 @@ index cafafd3..ba99279 100644
--library=libgsttag-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
-@@ -67,8 +67,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -68,8 +68,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
@@ -271,7 +271,7 @@ diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index ac64eb3..342c8c6 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
-@@ -108,8 +108,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
+@@ -111,8 +111,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
--c-include "gst/video/video.h" \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
@@ -282,7 +282,7 @@ index ac64eb3..342c8c6 100644
--library=libgstvideo-@GST_API_VERSION@.la \
--include=Gst-@GST_API_VERSION@ \
--include=GstBase-@GST_API_VERSION@ \
-@@ -136,8 +136,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+@@ -139,8 +139,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
--includedir=$(builddir) \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
index 42d99c1db..4adf60546 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
@@ -14,7 +14,7 @@ diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index 4f6d9f8..0afa370 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
-@@ -74,7 +74,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+@@ -75,7 +75,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
--libtool="$(LIBTOOL)" \
--pkg gio-2.0 \
--pkg gstreamer-@GST_API_VERSION@ \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch
index 7813915d8..b924e3882 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-subparse-set-need_segment-after-sink-pad-received-GS.patch
@@ -51,7 +51,7 @@ index b565e93..7741ccc
GST_WARNING_OBJECT (self, "seek to 0 bytes failed");
}
-@@ -1632,8 +1630,10 @@ gst_sub_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
+@@ -1641,8 +1639,10 @@ gst_sub_parse_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
gst_event_parse_segment (event, &s);
if (s->format == GST_FORMAT_TIME)
gst_event_copy_segment (event, &self->segment);
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch
deleted file mode 100755
index 096a6f4cb..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-convertframe-Support-video-crop-when-convert-frame.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 5be6ed00aad028d9cbb4e0c63af0be69d335c71e Mon Sep 17 00:00:00 2001
-From: Song Bing <b06498@freescale.com>
-Date: Fri, 11 Dec 2015 21:42:00 +0800
-Subject: [PATCH] convertframe: Support video crop when convert frame
-
-Get thumbnail will user convertframe to convert video frame to
-desired video format and size. But haven't process crop meta on
-the video buffer. Add support video crop.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=759329
-
-Upstream-Status: Backport [1.7.1]
-
----
- gst-libs/gst/video/convertframe.c | 65 +++++++++++++++++++++++++++++++++------
- 1 file changed, 56 insertions(+), 9 deletions(-)
-
-diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c
-index aa9c3d3..942a51e 100644
---- a/gst-libs/gst/video/convertframe.c
-+++ b/gst-libs/gst/video/convertframe.c
-@@ -110,12 +110,23 @@ fail:
- static GstElement *
- build_convert_frame_pipeline (GstElement ** src_element,
- GstElement ** sink_element, const GstCaps * from_caps,
-- const GstCaps * to_caps, GError ** err)
-+ GstVideoCropMeta * cmeta, const GstCaps * to_caps, GError ** err)
- {
-- GstElement *src = NULL, *csp = NULL, *vscale = NULL;
-- GstElement *sink = NULL, *encoder = NULL, *pipeline;
-+ GstElement *vcrop = NULL, *csp = NULL, *csp2 = NULL, *vscale = NULL;
-+ GstElement *src = NULL, *sink = NULL, *encoder = NULL, *pipeline;
-+ GstVideoInfo info;
- GError *error = NULL;
-
-+ if (cmeta) {
-+ if (!create_element ("videocrop", &vcrop, &error)) {
-+ g_warning
-+ ("build_convert_frame_pipeline: Buffer has crop metadata but videocrop element is not found. Cropping will be disabled");
-+ } else {
-+ if (!create_element ("videoconvert", &csp2, &error))
-+ goto no_elements;
-+ }
-+ }
-+
- /* videoscale is here to correct for the pixel-aspect-ratio for us */
- GST_DEBUG ("creating elements");
- if (!create_element ("appsrc", &src, &error) ||
-@@ -133,15 +144,42 @@ build_convert_frame_pipeline (GstElement ** src_element,
-
- GST_DEBUG ("adding elements");
- gst_bin_add_many (GST_BIN (pipeline), src, csp, vscale, sink, NULL);
-+ if (vcrop)
-+ gst_bin_add_many (GST_BIN (pipeline), vcrop, csp2, NULL);
-
- /* set caps */
- g_object_set (src, "caps", from_caps, NULL);
-+ if (vcrop) {
-+ gst_video_info_from_caps (&info, from_caps);
-+ g_object_set (vcrop, "left", cmeta->x, NULL);
-+ g_object_set (vcrop, "top", cmeta->y, NULL);
-+ g_object_set (vcrop, "right", GST_VIDEO_INFO_WIDTH (&info) - cmeta->width,
-+ NULL);
-+ g_object_set (vcrop, "bottom",
-+ GST_VIDEO_INFO_HEIGHT (&info) - cmeta->height, NULL);
-+ GST_DEBUG ("crop meta [x,y,width,height]: %d %d %d %d", cmeta->x, cmeta->y,
-+ cmeta->width, cmeta->height);
-+ }
- g_object_set (sink, "caps", to_caps, NULL);
-
- /* FIXME: linking is still way too expensive, profile this properly */
-- GST_DEBUG ("linking src->csp");
-- if (!gst_element_link_pads (src, "src", csp, "sink"))
-- goto link_failed;
-+ if (vcrop) {
-+ GST_DEBUG ("linking src->csp2");
-+ if (!gst_element_link_pads (src, "src", csp2, "sink"))
-+ goto link_failed;
-+
-+ GST_DEBUG ("linking csp2->vcrop");
-+ if (!gst_element_link_pads (csp2, "src", vcrop, "sink"))
-+ goto link_failed;
-+
-+ GST_DEBUG ("linking vcrop->csp");
-+ if (!gst_element_link_pads (vcrop, "src", csp, "sink"))
-+ goto link_failed;
-+ } else {
-+ GST_DEBUG ("linking src->csp");
-+ if (!gst_element_link_pads (src, "src", csp, "sink"))
-+ goto link_failed;
-+ }
-
- GST_DEBUG ("linking csp->vscale");
- if (!gst_element_link_pads_full (csp, "src", vscale, "sink",
-@@ -193,8 +231,12 @@ no_elements:
- {
- if (src)
- gst_object_unref (src);
-+ if (vcrop)
-+ gst_object_unref (vcrop);
- if (csp)
- gst_object_unref (csp);
-+ if (csp2)
-+ gst_object_unref (csp2);
- if (vscale)
- gst_object_unref (vscale);
- if (sink)
-@@ -209,7 +251,11 @@ no_elements:
- no_pipeline:
- {
- gst_object_unref (src);
-+ if (vcrop)
-+ gst_object_unref (vcrop);
- gst_object_unref (csp);
-+ if (csp2)
-+ gst_object_unref (csp2);
- gst_object_unref (vscale);
- gst_object_unref (sink);
-
-@@ -282,7 +328,8 @@ gst_video_convert_sample (GstSample * sample, const GstCaps * to_caps,
- }
-
- pipeline =
-- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err);
-+ build_convert_frame_pipeline (&src, &sink, from_caps,
-+ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &err);
- if (!pipeline)
- goto no_pipeline;
-
-@@ -646,8 +693,8 @@ gst_video_convert_sample_async (GstSample * sample,
- }
-
- pipeline =
-- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy,
-- &error);
-+ build_convert_frame_pipeline (&src, &sink, from_caps,
-+ gst_buffer_get_video_crop_meta (buf), to_caps_copy, &error);
- if (!pipeline)
- goto no_pipeline;
-
---
-2.5.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch
index 325671721..5341e3cfc 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/encodebin-Need-more-buffers-in-output-queue-for-bett.patch
@@ -17,7 +17,7 @@ diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 6728e58..32daae4 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
-@@ -1138,8 +1138,7 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
+@@ -1228,8 +1228,7 @@ _create_stream_group (GstEncodeBin * ebin, GstEncodingProfile * sprof,
* We only use a 1buffer long queue here, the actual queueing will be done
* in the input queue */
last = sgroup->outqueue = gst_element_factory_make ("queue", NULL);
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch
index 284abbe94..c8e6287a5 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/get-caps-from-src-pad-when-query-caps.patch
@@ -19,7 +19,7 @@ new mode 100755
index 9b6c478..ae2294a
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
-@@ -1708,6 +1708,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
+@@ -1769,6 +1769,19 @@ gst_tag_demux_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
}
break;
}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch
index 01e944ddd..413eff069 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/make-gio_unix_2_0-dependency-configurable.patch
@@ -25,8 +25,8 @@ diff --git a/configure.ac b/configure.ac
index 9c52aeb..26cacd6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -747,9 +747,16 @@ AC_SUBST(FT2_CFLAGS)
- AC_SUBST(FT2_LIBS)
+@@ -752,9 +752,16 @@ AC_SUBST(FT2_CFLAGS)
+ fi dnl of EXT plugins
dnl *** gio-unix-2.0 for tests/check/pipelines/tcp.c ***
+AC_ARG_ENABLE([gio_unix_2_0],
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb
deleted file mode 100644
index 429dc9338..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.6.3.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-include gstreamer1.0-plugins-base.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
- file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
-
-# Note: The dependency on freetype was dropped shortly after the 1.7.1 release
-# so these lines should be removed during the update to 1.8.x
-# http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=183610c035dd6955c9b3540b940aec50474af031
-DEPENDS += "freetype"
-EXTRA_OECONF += "--disable-freetypetest"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
- file://get-caps-from-src-pad-when-query-caps.patch \
- file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
- file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \
- file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \
- file://0005-convertframe-Support-video-crop-when-convert-frame.patch \
-"
-
-SRC_URI[md5sum] = "3ddde0ad598ef69f58d6a2e87f8b460f"
-SRC_URI[sha256sum] = "b6154f8fdba4877e95efd94610ef0ada4f0171cd12eb829a3c3c97345d9c7a75"
-
-S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.8.3.bb
new file mode 100644
index 000000000..986b5ac60
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.8.3.bb
@@ -0,0 +1,19 @@
+include gstreamer1.0-plugins-base.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
+ file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
+ file://get-caps-from-src-pad-when-query-caps.patch \
+ file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
+ file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \
+ file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \
+ file://make-gio_unix_2_0-dependency-configurable.patch \
+"
+
+SRC_URI[md5sum] = "4d03dd81828ea6b98a44c8f1ab7f4976"
+SRC_URI[sha256sum] = "114871d4d63606b4af424a8433cd923e4ff66896b244bb7ac97b9da47f71e79e"
+
+S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
index 38a9fcc29..3c2b50400 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
@@ -7,17 +7,21 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-plugins-base;name=base \
+ git://anongit.freedesktop.org/gstreamer/gst-plugins-base;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
+ file://get-caps-from-src-pad-when-query-caps.patch \
+ file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
+ file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \
+ file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \
file://make-gio_unix_2_0-dependency-configurable.patch \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "97e108bebaa58821f4566a74cbf0135e93407c01"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_base = "70f3750773bf5dba4098f6d72d63aa6c84f1f539"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
index 4621bf894..f1e30aba5 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
@@ -23,12 +23,12 @@ PACKAGECONFIG[gudev] = "--with-gudev,--without-gudev,libgudev"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng"
-PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,libv4l2"
+PACKAGECONFIG[libv4l2] = "--with-libv4l2,--without-libv4l2,v4l-utils"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4"
PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib"
-PACKAGECONFIG[v4l2] = "--enable-gst_v4l2,--disable-gst_v4l2"
+PACKAGECONFIG[v4l2] = "--enable-gst_v4l2 --enable-v4l2-probe,--disable-gst_v4l2"
PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx"
PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
PACKAGECONFIG[x11] = "--enable-x,--disable-x,${X11DEPENDS}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch
index d1973d439..a2cbb70fe 100755..100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch
@@ -17,7 +17,7 @@ diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c
index 7913d9a..1749d39 100644
--- a/gst/rtp/gstrtpmp4gpay.c
+++ b/gst/rtp/gstrtpmp4gpay.c
-@@ -390,6 +390,7 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+@@ -391,6 +391,7 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
const GValue *codec_data;
const gchar *media_type = NULL;
gboolean res;
@@ -25,7 +25,7 @@ index 7913d9a..1749d39 100644
rtpmp4gpay = GST_RTP_MP4G_PAY (payload);
-@@ -400,7 +401,6 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+@@ -401,7 +402,6 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
GST_LOG_OBJECT (rtpmp4gpay, "got codec_data");
if (G_VALUE_TYPE (codec_data) == GST_TYPE_BUFFER) {
GstBuffer *buffer;
@@ -33,7 +33,7 @@ index 7913d9a..1749d39 100644
buffer = gst_value_get_buffer (codec_data);
GST_LOG_OBJECT (rtpmp4gpay, "configuring codec_data");
-@@ -426,6 +426,23 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+@@ -427,6 +427,23 @@ gst_rtp_mp4g_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
rtpmp4gpay->config = gst_buffer_copy (buffer);
}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb
deleted file mode 100644
index 0b4f43690..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.6.3.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-include gstreamer1.0-plugins-good.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
- file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
- file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \
-"
-
-SRC_URI[md5sum] = "a1958df7aa498b42793e2f2048673815"
-SRC_URI[sha256sum] = "24b19db70b2a83461ebddfe20033db432dadfdb5d4b54ffb1dfa0d830134a177"
-
-S = "${WORKDIR}/gst-plugins-good-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.8.3.bb
new file mode 100644
index 000000000..5cc6578b7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.8.3.bb
@@ -0,0 +1,17 @@
+include gstreamer1.0-plugins-good.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
+ file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
+ file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \
+ file://avoid-including-sys-poll.h-directly.patch \
+ file://ensure-valid-sentinel-for-gst_structure_get.patch \
+"
+
+SRC_URI[md5sum] = "473ebb1f15c67de99ddb6e4d027c0876"
+SRC_URI[sha256sum] = "a1d6579ba203a7734927c24b90bf6590d846c5a5fcec01a48201018c8ad2827a"
+
+S = "${WORKDIR}/gst-plugins-good-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
index 9cadc9afc..9b79af2a9 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
@@ -7,18 +7,19 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-plugins-good;name=base \
+ git://anongit.freedesktop.org/gstreamer/gst-plugins-good;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
file://avoid-including-sys-poll.h-directly.patch \
file://ensure-valid-sentinel-for-gst_structure_get.patch \
+ file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "1b6fdce67c15d59957e395b1957aa625322092d4"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_base = "9f73b5818f98cd045e7049bb313da1c943635109"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
index aff223072..708ad7a15 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
@@ -9,7 +9,7 @@ inherit gettext
PACKAGECONFIG ??= " \
${GSTREAMER_ORC} \
- a52dec lame mad mpeg2dec \
+ a52dec lame mpg123 mpeg2dec \
"
PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52"
@@ -20,6 +20,7 @@ PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame"
PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec"
+PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
EXTRA_OECONF += " \
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb
deleted file mode 100644
index 7edfb81d2..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.6.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-include gstreamer1.0-plugins-ugly.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
-"
-
-SRC_URI[md5sum] = "dbd92afb3816cbfa90ab1f197144a2e2"
-SRC_URI[sha256sum] = "2fecf7b7c7882f8f62f1900048f4013f98c214fb3d3303d8d812245bb41fd064"
-
-S = "${WORKDIR}/gst-plugins-ugly-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.8.3.bb
new file mode 100644
index 000000000..274593796
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.8.3.bb
@@ -0,0 +1,13 @@
+include gstreamer1.0-plugins-ugly.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "4fc66c77253b0ad5ce224bda654b2e7d"
+SRC_URI[sha256sum] = "6fa2599fdd072d31fbaf50c34af406e2be944a010b1f4eab67a5fe32a0310693"
+
+S = "${WORKDIR}/gst-plugins-ugly-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
index 69afe4cfb..22cca3a8d 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
@@ -6,24 +6,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly;name=base \
+ git://anongit.freedesktop.org/gstreamer/gst-plugins-ugly;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "8bdb68edbc605e21314b608e7a39bdbaab7302b8"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_base = "79fe43c00925455a37fab6fc428e7f08655a9bbd"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
-# The mpg123 plugin was added prior to the 1.7.2 release
-# https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=43bd45ba991ef3247957ca37cdcb52f4b8c0acb1
-PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
-
do_configure_prepend() {
${S}/autogen.sh --noconfigure
}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
index 2dcec509d..9cfcec3ca 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
@@ -5,7 +5,7 @@ SECTION = "multimedia"
DEPENDS = "gstreamer1.0 glib-2.0-native"
-inherit autotools pkgconfig upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc
acpaths = "-I ${S}/common/m4 -I ${S}/m4"
@@ -33,8 +33,21 @@ SRC_URI_append = " file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_
delete_pkg_m4_file() {
# This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
rm "${S}/common/m4/pkg.m4" || true
+ rm -f "${S}/common/m4/gtk-doc.m4"
}
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+ # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+ # instead of libtool wrapper or running them directly
+ # Also substitute a bogus plugin scanner, as trying to run the real one is causing issues during build on x86_64.
+ sed -i \
+ -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+ -e "s|\$(GTKDOC_EXTRA_ENVIRONMENT)|\$(GTKDOC_EXTRA_ENVIRONMENT) GST_PLUGIN_SCANNER_1_0=\$(top_builddir)/libs/gst/helpers/gst-plugin-scanner-dummy|" \
+ ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
PACKAGES_DYNAMIC = "^${PN}-.*"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
index ae6d36477..13ba40d3d 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
@@ -13,12 +13,26 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz
S = "${WORKDIR}/${PNREAL}-${PV}"
-inherit autotools pkgconfig upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc
+
+# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
+LIBV = "1.0"
+require gst-plugins-package.inc
delete_pkg_m4_file() {
# This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
rm "${S}/common/m4/pkg.m4" || true
}
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+ # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+ # instead of libtool wrapper or running them directly
+ sed -i \
+ -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+ ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb
deleted file mode 100644
index 5bdae6cf9..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.6.2.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-include gstreamer1.0-rtsp-server.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
-
-SRC_URI[md5sum] = "a1cafefb5fc14ac5d7e7d8cdbdfa9694"
-SRC_URI[sha256sum] = "0f51f9879556c0950203c766b09a1b62f1f25b17f9a7d516e01b13ecf93c8858"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.8.3.bb
new file mode 100644
index 000000000..17059d070
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.8.3.bb
@@ -0,0 +1,6 @@
+include gstreamer1.0-rtsp-server.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
+
+SRC_URI[md5sum] = "e4b07b10dd65b6c26c9ca5f72e59297b"
+SRC_URI[sha256sum] = "010f06800c1c957851d1352e5ec7a8ba3ce6a857fec1b8afc7d1a9e5f53288bf"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
index 10b4668e5..cb0bd82f2 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
@@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native"
-inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc
# This way common/m4/introspection.m4 will come first
# (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file)
@@ -20,16 +20,16 @@ SRC_URI_append = " \
PACKAGECONFIG ??= ""
-PACKAGECONFIG[check] = "--enable-check,--disable-check"
PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
+PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks,"
+PACKAGECONFIG[trace-historic] = "--enable-trace,--disable-trace,"
EXTRA_OECONF = " \
--disable-dependency-tracking \
--disable-docbook \
--disable-examples \
- --disable-gtk-doc \
"
CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
@@ -49,9 +49,22 @@ RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-raw
delete_pkg_m4_file() {
# This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
rm "${S}/common/m4/pkg.m4" || true
+ rm -f "${S}/common/m4/gtk-doc.m4"
}
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+ # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+ # instead of libtool wrapper or running them directly
+ # Also substitute a bogus plugin scanner, as trying to run the real one is causing issues during build on x86_64.
+ sed -i \
+ -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+ -e "s|\$(GTKDOC_EXTRA_ENVIRONMENT)|\$(GTKDOC_EXTRA_ENVIRONMENT) GST_PLUGIN_SCANNER_1_0=\$(top_builddir)/libs/gst/helpers/gst-plugin-scanner-dummy|" \
+ ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
do_compile_prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
deleted file mode 100644
index 94f5cc56e..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 6b26f3dbf9bf577d71534ab7410de66d06e46ba2 Mon Sep 17 00:00:00 2001
-From: Carlos Rafael Giani <dv@pseudoterminal.org>
-Date: Sat, 6 Apr 2013 23:52:11 +0200
-Subject: [PATCH] Fix crash with gst-inspect Chris Lord <chris@openedhand.com>
-
-Upstream-Status: Pending
-
-Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
----
- tools/gst-inspect.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
-index 23b7c44..b79b02e 100644
---- a/tools/gst-inspect.c
-+++ b/tools/gst-inspect.c
-@@ -1556,7 +1556,7 @@ main (int argc, char *argv[])
- g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
- g_option_context_add_group (ctx, gst_init_get_option_group ());
- if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
-- g_printerr ("Error initializing: %s\n", err->message);
-+ g_printerr ("Error initializing: %s\n", err ? err->message : "(null)");
- return -1;
- }
- g_option_context_free (ctx);
---
-1.8.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb
deleted file mode 100644
index ba1b83b08..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.6.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-include gstreamer1.0.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
- file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
-
-SRC_URI = " \
- http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
- file://0001-Fix-crash-with-gst-inspect.patch \
-"
-
-SRC_URI[md5sum] = "b4cdeb2b9cb20dd6ac022a4f417eae0d"
-SRC_URI[sha256sum] = "22f9568d67b87cf700a111f381144bd37cb93790a77e4e331db01fe854a37f24"
-
-S = "${WORKDIR}/gstreamer-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.8.3.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.8.3.bb
new file mode 100644
index 000000000..d3561ebbd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.8.3.bb
@@ -0,0 +1,13 @@
+include gstreamer1.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
+ file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
+
+SRC_URI = " \
+ http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "e88dad542df9d986822e982105d2b530"
+SRC_URI[sha256sum] = "66b37762d4fdcd63bce5a2bec57e055f92420e95037361609900278c0db7c53f"
+
+S = "${WORKDIR}/gstreamer-${PV}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
index 7715bb202..6112f2a89 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
@@ -6,25 +6,20 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gstreamer;name=base \
+ git://anongit.freedesktop.org/gstreamer/gstreamer;branch=1.8;name=base \
git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;name=common \
"
-PV = "1.7.2+git${SRCPV}"
+PV = "1.8.2+git${SRCPV}"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
-SRCREV_base = "9e33bfa2c7a5f43da2c49b0a8235fd43cba9feaf"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
+SRCREV_base = "3de8a4f728a7194a12b784ec4085f6a8e7d9b5bd"
+SRCREV_common = "f363b3205658a38e84fa77f19dee218cd4445275"
SRCREV_FORMAT = "base"
S = "${WORKDIR}/git"
-# The option to configure tracer hooks was added prior to the 1.7.2 release
-# https://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=e5ca47236e4df4683707f0bcf99181a937d358d5
-PACKAGECONFIG[gst-tracer-hooks] = "--enable-gst-tracer-hooks,--disable-gst-tracer-hooks,"
-PACKAGECONFIG[trace-historic] = "--enable-trace,--disable-trace,"
-
do_configure_prepend() {
${S}/autogen.sh --noconfigure
}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch b/import-layers/yocto-poky/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch
index 571a1d07a..51baef26f 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch
@@ -4,7 +4,7 @@ Fix this kind of errors with automake 1.12.x:
| doc/man/Makefile.am:3: error: automatic de-ANSI-fication support has been removed
| autoreconf: automake failed with exit status: 1
-Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/07/13
Index: lame-3.99.5/configure.in
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch
deleted file mode 100644
index b49dc8c98..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Here is a patch for adding pkg-config support to libmad.
-It would make life a bit easier for distro maintainers if this was applied.
-In case you didn't know, pkg-config is a tool for providing LDFLAGS and
-CFLAGS for packages using shared libraries. It's on freedesktop.org.
-Debian has already been distributing the pkg-config file mad.pc with
-libmad for some time, and people developing on debian (notably xmms2
-developers) have started relying on this support being present, causing
-some confusion for people installing from source and on some BSDs which
-do not provide mad.pc (google: pkgconfig libmad).
-
-EMH
-
-Upstream-Status: Inappropriate [configuration]
-
---h31gzZEtNLTqOjlF
-Content-Type: text/plain; charset=us-ascii
-Content-Disposition: attachment; filename=&quot;libmad-0.15.1b-pkgconfig.patch&quot;
-
-diff -Naur libmad-0.15.1b.old/configure.ac libmad-0.15.1b/configure.ac
---- libmad-0.15.1b.old/configure.ac 2004-01-23 10:41:32.000000000 +0100
-+++ libmad-0.15.1b/configure.ac 2004-08-07 02:25:24.633462168 +0200
-@@ -429,5 +429,5 @@
- dnl AC_SUBST(LTLIBOBJS)
-
- AC_CONFIG_FILES([Makefile msvc++/Makefile \
-- libmad.list])
-+ libmad.list mad.pc])
- AC_OUTPUT
-diff -Naur libmad-0.15.1b.old/mad.pc.in libmad-0.15.1b/mad.pc.in
---- libmad-0.15.1b.old/mad.pc.in 1970-01-01 01:00:00.000000000 +0100
-+++ libmad-0.15.1b/mad.pc.in 2004-08-07 02:04:59.617692872 +0200
-@@ -0,0 +1,14 @@
-+# libmad pkg-config source file
-+
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: mad
-+Description: MPEG Audio Decoder
-+Version: @VERSION@
-+Requires:
-+Conflicts:
-+Libs: -L${libdir} -lmad -lm
-+Cflags: -I${includedir}
-diff -Naur libmad-0.15.1b.old/Makefile.am libmad-0.15.1b/Makefile.am
---- libmad-0.15.1b.old/Makefile.am 2004-02-17 03:02:03.000000000 +0100
-+++ libmad-0.15.1b/Makefile.am 2004-08-07 02:03:19.859858368 +0200
-@@ -24,6 +24,9 @@
- SUBDIRS =
- DIST_SUBDIRS = msvc++
-
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = mad.pc
-+
- lib_LTLIBRARIES = libmad.la
- include_HEADERS = mad.h
-
-@@ -34,7 +37,8 @@
- minimad_LDADD = libmad.la
-
- EXTRA_DIST = mad.h.sed \
-- CHANGES COPYRIGHT CREDITS README TODO VERSION
-+ CHANGES COPYRIGHT CREDITS README TODO VERSION \
-+ mad.pc.in
-
- exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \
- synth.h decoder.h
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/automake-foreign.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/automake-foreign.patch
deleted file mode 100644
index 3e544248d..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/automake-foreign.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Pass foreign to AM_INIT_AUTOMAKE so it doesn't enforce GNU strictness.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/configure.ac b/configure.ac
-index e602fd3..e075b86 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -29 +29 @@ AC_CONFIG_SRCDIR([decoder.h])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
deleted file mode 100644
index 01c7aa3c8..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-gcc 4.4 did this: The MIPS port no longer recognizes the h asm constraint. It was necessary to remove this constraint in order to avoid generating unpredictable code sequences.
-
-so the libmad build with gcc-4.5.0 was failing.
-
-Found a solution here:
-
-http://us.generation-nt.com/answer/bug-568418-libmad0-dev-mpg321-compilation-errors-mips-mipsel-architectures-help-169033451.html
-
-Upstream-Status: Pending
-
-2010/07/29
-Nitin A Kamble <nitin.a.kamble@intel.com>
-
-Index: libmad-0.15.1b/fixed.h
-===================================================================
---- libmad-0.15.1b.orig/fixed.h
-+++ libmad-0.15.1b/fixed.h
-@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t
-
- /* --- MIPS ---------------------------------------------------------------- */
-
-+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
-+# define MAD_F_MLX(hi, lo, x, y) \
-+ do { \
-+ u64_di_t __ll = (u64_di_t) (x) * (y); \
-+ hi = __ll >> 32; \
-+ lo = __ll; \
-+ } while (0)
-+
- # elif defined(FPM_MIPS)
-
- /*
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch
deleted file mode 100644
index d5e6d206e..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-This option no longer exists in gcc 3.4.1
-
-RP - 18/07/2008
-
-Upstream-Status: Inappropriate [configuration]
-
-Index: libmad-0.15.1b/configure.ac
-===================================================================
---- libmad-0.15.1b.orig/configure.ac 2008-07-18 15:45:30.000000000 +0100
-+++ libmad-0.15.1b/configure.ac 2008-07-18 15:45:37.000000000 +0100
-@@ -140,7 +140,6 @@
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
-- optimize="$optimize -fforce-mem"
- optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch
deleted file mode 100644
index cc87d299e..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Submitted [https://sourceforge.net/tracker/?group_id=12349&atid=112349]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd libmad-0.15.1b/configure.ac libmad-0.15.1b/configure.ac
---- libmad-0.15.1b/configure.ac 2004-01-23 11:41:32.000000000 +0200
-+++ libmad-0.15.1b/configure.ac 2013-01-03 08:28:23.718693697 +0200
-@@ -28,7 +28,7 @@
-
- AM_INIT_AUTOMAKE
-
--AM_CONFIG_HEADER([config.h])
-+AC_CONFIG_HEADERS([config.h])
-
- dnl System type.
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb
deleted file mode 100644
index d431abdaa..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "MPEG Audio Decoder library"
-HOMEPAGE = "http://sourceforge.net/projects/mad/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
-LICENSE = "GPLv2+"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \
- file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454"
-SECTION = "libs"
-DEPENDS = "libid3tag"
-PR = "r3"
-
-SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libmad-${PV}.tar.gz \
- file://no-force-mem.patch \
- file://add-pkgconfig.patch \
- file://fix_for_mips_with_gcc-4.5.0.patch \
- file://obsolete_automake_macros.patch \
- file://automake-foreign.patch \
-"
-
-SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c"
-SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690"
-
-S = "${WORKDIR}/libmad-${PV}"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "-enable-speed --enable-shared"
-EXTRA_OECONF_append_arm = " --enable-fpm=arm"
-
-do_configure_prepend () {
-# damn picky automake...
- touch NEWS AUTHORS ChangeLog
-}
-
-ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb
deleted file mode 100644
index 58cef1ff3..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.21.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "PNG image format decoding library"
-HOMEPAGE = "http://www.libpng.org/"
-SECTION = "libs"
-LICENSE = "Libpng"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=06a1b6fde6d93170bb72201c8000bf3d \
- file://png.h;endline=112;md5=9a8b5f83e1e8046df672deab87f235be"
-DEPENDS = "zlib"
-
-SRC_URI = "${GENTOO_MIRROR}/libpng-${PV}.tar.xz \
- "
-SRC_URI[md5sum] = "3bacb4728f6694a64ad9052769d6a4ce"
-SRC_URI[sha256sum] = "6c8f1849eb9264219bf5d703601e5abe92a58651ecae927a03d1a1aa15ee2083"
-
-BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
-
-inherit autotools binconfig-disabled pkgconfig
-
-# Work around missing symbols
-EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}"
-
-PACKAGES =+ "${PN}-tools"
-
-FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.24.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.24.bb
new file mode 100644
index 000000000..f91ab7ffc
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libpng/libpng_1.6.24.bb
@@ -0,0 +1,25 @@
+SUMMARY = "PNG image format decoding library"
+HOMEPAGE = "http://www.libpng.org/"
+SECTION = "libs"
+LICENSE = "Libpng"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5089214833586ba444048fd1dbbc76a4 \
+ file://png.h;endline=149;md5=376d8ff7f69b7c4ad3a09f4672cec696"
+DEPENDS = "zlib"
+
+SRC_URI = "${GENTOO_MIRROR}/libpng-${PV}.tar.xz \
+ "
+SRC_URI[md5sum] = "ffcdbd549814787fa8010c372e35ff25"
+SRC_URI[sha256sum] = "7932dc9e5e45d55ece9d204e90196bbb5f2c82741ccb0f7e10d07d364a6fd6dd"
+
+BINCONFIG = "${bindir}/libpng-config ${bindir}/libpng16-config"
+
+inherit autotools binconfig-disabled pkgconfig
+
+# Work around missing symbols
+EXTRA_OECONF_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}"
+
+PACKAGES =+ "${PN}-tools"
+
+FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix ${bindir}/pngcp"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb
deleted file mode 100644
index 80435d4b5..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.26.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Audio format Conversion library"
-HOMEPAGE = "http://www.mega-nerd.com/libsndfile"
-AUTHOR = "Erik de Castro Lopo"
-DEPENDS = "flac libogg libvorbis sqlite3"
-SECTION = "libs/multimedia"
-LICENSE = "LGPLv2.1"
-
-SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "ec810a0c60c08772a8a5552704b63393"
-SRC_URI[sha256sum] = "cd6520ec763d1a45573885ecb1f8e4e42505ac12180268482a44b28484a25092"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
-
-S = "${WORKDIR}/libsndfile-${PV}"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}"
-PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
-
-inherit autotools lib_package pkgconfig
-
-do_configure_prepend_arm() {
- export ac_cv_sys_largefile_source=1
- export ac_cv_sys_file_offset_bits=64
-}
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb
new file mode 100644
index 000000000..ec4171943
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.27.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Audio format Conversion library"
+HOMEPAGE = "http://www.mega-nerd.com/libsndfile"
+AUTHOR = "Erik de Castro Lopo"
+DEPENDS = "flac libogg libvorbis sqlite3"
+SECTION = "libs/multimedia"
+LICENSE = "LGPLv2.1"
+
+SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "fd1d97c6077f03b5d984d7956ffedb7a"
+SRC_URI[sha256sum] = "a391952f27f4a92ceb2b4c06493ac107896ed6c76be9a613a4731f076d30fac0"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
+
+S = "${WORKDIR}/libsndfile-${PV}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}"
+PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
+
+inherit autotools lib_package pkgconfig
+
+do_configure_prepend_arm() {
+ export ac_cv_sys_largefile_source=1
+ export ac_cv_sys_file_offset_bits=64
+}
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8665_8683.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8665_8683.patch
new file mode 100644
index 000000000..39c5059c7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8665_8683.patch
@@ -0,0 +1,137 @@
+From f94a29a822f5528d2334592760fbb7938f15eb55 Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Sat, 26 Dec 2015 17:32:03 +0000
+Subject: [PATCH] * libtiff/tif_getimage.c: fix out-of-bound reads in
+ TIFFRGBAImage interface in case of unsupported values of
+ SamplesPerPixel/ExtraSamples for LogLUV / CIELab. Add explicit call to
+ TIFFRGBAImageOK() in TIFFRGBAImageBegin(). Fix CVE-2015-8665 reported by
+ limingxing and CVE-2015-8683 reported by zzf of Alibaba.
+
+Upstream-Status: Backport
+CVE: CVE-2015-8665
+CVE: CVE-2015-8683
+https://github.com/vadz/libtiff/commit/f94a29a822f5528d2334592760fbb7938f15eb55
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ ChangeLog | 8 ++++++++
+ libtiff/tif_getimage.c | 35 ++++++++++++++++++++++-------------
+ 2 files changed, 30 insertions(+), 13 deletions(-)
+
+Index: tiff-4.0.6/libtiff/tif_getimage.c
+===================================================================
+--- tiff-4.0.6.orig/libtiff/tif_getimage.c
++++ tiff-4.0.6/libtiff/tif_getimage.c
+@@ -182,20 +182,22 @@ TIFFRGBAImageOK(TIFF* tif, char emsg[102
+ "Planarconfiguration", td->td_planarconfig);
+ return (0);
+ }
+- if( td->td_samplesperpixel != 3 )
++ if( td->td_samplesperpixel != 3 || colorchannels != 3 )
+ {
+ sprintf(emsg,
+- "Sorry, can not handle image with %s=%d",
+- "Samples/pixel", td->td_samplesperpixel);
++ "Sorry, can not handle image with %s=%d, %s=%d",
++ "Samples/pixel", td->td_samplesperpixel,
++ "colorchannels", colorchannels);
+ return 0;
+ }
+ break;
+ case PHOTOMETRIC_CIELAB:
+- if( td->td_samplesperpixel != 3 || td->td_bitspersample != 8 )
++ if( td->td_samplesperpixel != 3 || colorchannels != 3 || td->td_bitspersample != 8 )
+ {
+ sprintf(emsg,
+- "Sorry, can not handle image with %s=%d and %s=%d",
++ "Sorry, can not handle image with %s=%d, %s=%d and %s=%d",
+ "Samples/pixel", td->td_samplesperpixel,
++ "colorchannels", colorchannels,
+ "Bits/sample", td->td_bitspersample);
+ return 0;
+ }
+@@ -255,6 +257,9 @@ TIFFRGBAImageBegin(TIFFRGBAImage* img, T
+ int colorchannels;
+ uint16 *red_orig, *green_orig, *blue_orig;
+ int n_color;
++
++ if( !TIFFRGBAImageOK(tif, emsg) )
++ return 0;
+
+ /* Initialize to normal values */
+ img->row_offset = 0;
+@@ -2508,29 +2513,33 @@ PickContigCase(TIFFRGBAImage* img)
+ case PHOTOMETRIC_RGB:
+ switch (img->bitspersample) {
+ case 8:
+- if (img->alpha == EXTRASAMPLE_ASSOCALPHA)
++ if (img->alpha == EXTRASAMPLE_ASSOCALPHA &&
++ img->samplesperpixel >= 4)
+ img->put.contig = putRGBAAcontig8bittile;
+- else if (img->alpha == EXTRASAMPLE_UNASSALPHA)
++ else if (img->alpha == EXTRASAMPLE_UNASSALPHA &&
++ img->samplesperpixel >= 4)
+ {
+ if (BuildMapUaToAa(img))
+ img->put.contig = putRGBUAcontig8bittile;
+ }
+- else
++ else if( img->samplesperpixel >= 3 )
+ img->put.contig = putRGBcontig8bittile;
+ break;
+ case 16:
+- if (img->alpha == EXTRASAMPLE_ASSOCALPHA)
++ if (img->alpha == EXTRASAMPLE_ASSOCALPHA &&
++ img->samplesperpixel >=4 )
+ {
+ if (BuildMapBitdepth16To8(img))
+ img->put.contig = putRGBAAcontig16bittile;
+ }
+- else if (img->alpha == EXTRASAMPLE_UNASSALPHA)
++ else if (img->alpha == EXTRASAMPLE_UNASSALPHA &&
++ img->samplesperpixel >=4 )
+ {
+ if (BuildMapBitdepth16To8(img) &&
+ BuildMapUaToAa(img))
+ img->put.contig = putRGBUAcontig16bittile;
+ }
+- else
++ else if( img->samplesperpixel >=3 )
+ {
+ if (BuildMapBitdepth16To8(img))
+ img->put.contig = putRGBcontig16bittile;
+@@ -2539,7 +2548,7 @@ PickContigCase(TIFFRGBAImage* img)
+ }
+ break;
+ case PHOTOMETRIC_SEPARATED:
+- if (buildMap(img)) {
++ if (img->samplesperpixel >=4 && buildMap(img)) {
+ if (img->bitspersample == 8) {
+ if (!img->Map)
+ img->put.contig = putRGBcontig8bitCMYKtile;
+@@ -2635,7 +2644,7 @@ PickContigCase(TIFFRGBAImage* img)
+ }
+ break;
+ case PHOTOMETRIC_CIELAB:
+- if (buildMap(img)) {
++ if (img->samplesperpixel == 3 && buildMap(img)) {
+ if (img->bitspersample == 8)
+ img->put.contig = initCIELabConversion(img);
+ break;
+Index: tiff-4.0.6/ChangeLog
+===================================================================
+--- tiff-4.0.6.orig/ChangeLog
++++ tiff-4.0.6/ChangeLog
+@@ -1,3 +1,11 @@
++2015-12-26 Even Rouault <even.rouault at spatialys.com>
++
++ * libtiff/tif_getimage.c: fix out-of-bound reads in TIFFRGBAImage
++ interface in case of unsupported values of SamplesPerPixel/ExtraSamples
++ for LogLUV / CIELab. Add explicit call to TIFFRGBAImageOK() in
++ TIFFRGBAImageBegin(). Fix CVE-2015-8665 reported by limingxing and
++ CVE-2015-8683 reported by zzf of Alibaba.
++
+ 2015-09-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
+
+ * libtiff 4.0.6 released.
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch
new file mode 100644
index 000000000..0846f0f68
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8781.patch
@@ -0,0 +1,195 @@
+From aaab5c3c9d2a2c6984f23ccbc79702610439bc65 Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Sun, 27 Dec 2015 16:25:11 +0000
+Subject: [PATCH] * libtiff/tif_luv.c: fix potential out-of-bound writes in
+ decode functions in non debug builds by replacing assert()s by regular if
+ checks (bugzilla #2522). Fix potential out-of-bound reads in case of short
+ input data.
+
+Upstream-Status: Backport
+
+https://github.com/vadz/libtiff/commit/aaab5c3c9d2a2c6984f23ccbc79702610439bc65
+hand applied Changelog changes
+
+CVE: CVE-2015-8781
+
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+---
+ ChangeLog | 7 +++++++
+ libtiff/tif_luv.c | 55 ++++++++++++++++++++++++++++++++++++++++++++-----------
+ 2 files changed, 51 insertions(+), 11 deletions(-)
+
+Index: tiff-4.0.4/ChangeLog
+===================================================================
+--- tiff-4.0.4.orig/ChangeLog
++++ tiff-4.0.4/ChangeLog
+@@ -1,3 +1,10 @@
++2015-12-27 Even Rouault <even.rouault at spatialys.com>
++
++ * libtiff/tif_luv.c: fix potential out-of-bound writes in decode
++ functions in non debug builds by replacing assert()s by regular if
++ checks (bugzilla #2522).
++ Fix potential out-of-bound reads in case of short input data.
++
+ 2015-12-26 Even Rouault <even.rouault at spatialys.com>
+
+ * libtiff/tif_getimage.c: fix out-of-bound reads in TIFFRGBAImage
+Index: tiff-4.0.4/libtiff/tif_luv.c
+===================================================================
+--- tiff-4.0.4.orig/libtiff/tif_luv.c
++++ tiff-4.0.4/libtiff/tif_luv.c
+@@ -202,7 +202,11 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz
+ if (sp->user_datafmt == SGILOGDATAFMT_16BIT)
+ tp = (int16*) op;
+ else {
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ tp = (int16*) sp->tbuf;
+ }
+ _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0]));
+@@ -211,9 +215,11 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz
+ cc = tif->tif_rawcc;
+ /* get each byte string */
+ for (shft = 2*8; (shft -= 8) >= 0; ) {
+- for (i = 0; i < npixels && cc > 0; )
++ for (i = 0; i < npixels && cc > 0; ) {
+ if (*bp >= 128) { /* run */
+- rc = *bp++ + (2-128); /* TODO: potential input buffer overrun when decoding corrupt or truncated data */
++ if( cc < 2 )
++ break;
++ rc = *bp++ + (2-128);
+ b = (int16)(*bp++ << shft);
+ cc -= 2;
+ while (rc-- && i < npixels)
+@@ -223,6 +229,7 @@ LogL16Decode(TIFF* tif, uint8* op, tmsiz
+ while (--cc && rc-- && i < npixels)
+ tp[i++] |= (int16)*bp++ << shft;
+ }
++ }
+ if (i != npixels) {
+ #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
+ TIFFErrorExt(tif->tif_clientdata, module,
+@@ -268,13 +275,17 @@ LogLuvDecode24(TIFF* tif, uint8* op, tms
+ if (sp->user_datafmt == SGILOGDATAFMT_RAW)
+ tp = (uint32 *)op;
+ else {
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ tp = (uint32 *) sp->tbuf;
+ }
+ /* copy to array of uint32 */
+ bp = (unsigned char*) tif->tif_rawcp;
+ cc = tif->tif_rawcc;
+- for (i = 0; i < npixels && cc > 0; i++) {
++ for (i = 0; i < npixels && cc >= 3; i++) {
+ tp[i] = bp[0] << 16 | bp[1] << 8 | bp[2];
+ bp += 3;
+ cc -= 3;
+@@ -325,7 +336,11 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms
+ if (sp->user_datafmt == SGILOGDATAFMT_RAW)
+ tp = (uint32*) op;
+ else {
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ tp = (uint32*) sp->tbuf;
+ }
+ _TIFFmemset((void*) tp, 0, npixels*sizeof (tp[0]));
+@@ -334,11 +349,13 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms
+ cc = tif->tif_rawcc;
+ /* get each byte string */
+ for (shft = 4*8; (shft -= 8) >= 0; ) {
+- for (i = 0; i < npixels && cc > 0; )
++ for (i = 0; i < npixels && cc > 0; ) {
+ if (*bp >= 128) { /* run */
++ if( cc < 2 )
++ break;
+ rc = *bp++ + (2-128);
+ b = (uint32)*bp++ << shft;
+- cc -= 2; /* TODO: potential input buffer overrun when decoding corrupt or truncated data */
++ cc -= 2;
+ while (rc-- && i < npixels)
+ tp[i++] |= b;
+ } else { /* non-run */
+@@ -346,6 +363,7 @@ LogLuvDecode32(TIFF* tif, uint8* op, tms
+ while (--cc && rc-- && i < npixels)
+ tp[i++] |= (uint32)*bp++ << shft;
+ }
++ }
+ if (i != npixels) {
+ #if defined(__WIN32__) && (defined(_MSC_VER) || defined(__MINGW32__))
+ TIFFErrorExt(tif->tif_clientdata, module,
+@@ -413,6 +431,7 @@ LogLuvDecodeTile(TIFF* tif, uint8* bp, t
+ static int
+ LogL16Encode(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s)
+ {
++ static const char module[] = "LogL16Encode";
+ LogLuvState* sp = EncoderState(tif);
+ int shft;
+ tmsize_t i;
+@@ -433,7 +452,11 @@ LogL16Encode(TIFF* tif, uint8* bp, tmsiz
+ tp = (int16*) bp;
+ else {
+ tp = (int16*) sp->tbuf;
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ (*sp->tfunc)(sp, bp, npixels);
+ }
+ /* compress each byte string */
+@@ -506,6 +529,7 @@ LogL16Encode(TIFF* tif, uint8* bp, tmsiz
+ static int
+ LogLuvEncode24(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s)
+ {
++ static const char module[] = "LogLuvEncode24";
+ LogLuvState* sp = EncoderState(tif);
+ tmsize_t i;
+ tmsize_t npixels;
+@@ -521,7 +545,11 @@ LogLuvEncode24(TIFF* tif, uint8* bp, tms
+ tp = (uint32*) bp;
+ else {
+ tp = (uint32*) sp->tbuf;
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ (*sp->tfunc)(sp, bp, npixels);
+ }
+ /* write out encoded pixels */
+@@ -553,6 +581,7 @@ LogLuvEncode24(TIFF* tif, uint8* bp, tms
+ static int
+ LogLuvEncode32(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s)
+ {
++ static const char module[] = "LogLuvEncode32";
+ LogLuvState* sp = EncoderState(tif);
+ int shft;
+ tmsize_t i;
+@@ -574,7 +603,11 @@ LogLuvEncode32(TIFF* tif, uint8* bp, tms
+ tp = (uint32*) bp;
+ else {
+ tp = (uint32*) sp->tbuf;
+- assert(sp->tbuflen >= npixels);
++ if(sp->tbuflen < npixels) {
++ TIFFErrorExt(tif->tif_clientdata, module,
++ "Translation buffer too short");
++ return (0);
++ }
+ (*sp->tfunc)(sp, bp, npixels);
+ }
+ /* compress each byte string */
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch
new file mode 100644
index 000000000..0caf800e2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2015-8784.patch
@@ -0,0 +1,73 @@
+From b18012dae552f85dcc5c57d3bf4e997a15b1cc1c Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Sun, 27 Dec 2015 16:55:20 +0000
+Subject: [PATCH] * libtiff/tif_next.c: fix potential out-of-bound write in
+ NeXTDecode() triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif
+ (bugzilla #2508)
+
+Upstream-Status: Backport
+https://github.com/vadz/libtiff/commit/b18012dae552f85dcc5c57d3bf4e997a15b1cc1c
+hand applied Changelog changes
+
+CVE: CVE-2015-8784
+Signed-off-by: Armin Kuster <akuster@mvista.com>
+
+---
+ ChangeLog | 6 ++++++
+ libtiff/tif_next.c | 10 ++++++++--
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+Index: tiff-4.0.4/ChangeLog
+===================================================================
+--- tiff-4.0.4.orig/ChangeLog
++++ tiff-4.0.4/ChangeLog
+@@ -1,5 +1,11 @@
+ 2015-12-27 Even Rouault <even.rouault at spatialys.com>
+
++ * libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode()
++ triggered by http://lcamtuf.coredump.cx/afl/vulns/libtiff5.tif
++ (bugzilla #2508)
++
++2015-12-27 Even Rouault <even.rouault at spatialys.com>
++
+ * libtiff/tif_luv.c: fix potential out-of-bound writes in decode
+ functions in non debug builds by replacing assert()s by regular if
+ checks (bugzilla #2522).
+Index: tiff-4.0.4/libtiff/tif_next.c
+===================================================================
+--- tiff-4.0.4.orig/libtiff/tif_next.c
++++ tiff-4.0.4/libtiff/tif_next.c
+@@ -37,7 +37,7 @@
+ case 0: op[0] = (unsigned char) ((v) << 6); break; \
+ case 1: op[0] |= (v) << 4; break; \
+ case 2: op[0] |= (v) << 2; break; \
+- case 3: *op++ |= (v); break; \
++ case 3: *op++ |= (v); op_offset++; break; \
+ } \
+ }
+
+@@ -106,6 +106,7 @@ NeXTDecode(TIFF* tif, uint8* buf, tmsize
+ uint32 imagewidth = tif->tif_dir.td_imagewidth;
+ if( isTiled(tif) )
+ imagewidth = tif->tif_dir.td_tilewidth;
++ tmsize_t op_offset = 0;
+
+ /*
+ * The scanline is composed of a sequence of constant
+@@ -122,10 +123,15 @@ NeXTDecode(TIFF* tif, uint8* buf, tmsize
+ * bounds, potentially resulting in a security
+ * issue.
+ */
+- while (n-- > 0 && npixels < imagewidth)
++ while (n-- > 0 && npixels < imagewidth && op_offset < scanline)
+ SETPIXEL(op, grey);
+ if (npixels >= imagewidth)
+ break;
++ if (op_offset >= scanline ) {
++ TIFFErrorExt(tif->tif_clientdata, module, "Invalid data for scanline %ld",
++ (long) tif->tif_row);
++ return (0);
++ }
+ if (cc == 0)
+ goto bad;
+ n = *bp++, cc--;
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-3186.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-3186.patch
new file mode 100644
index 000000000..4a08aba21
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-3186.patch
@@ -0,0 +1,24 @@
+Buffer overflow in the readextension function in gif2tiff.c
+allows remote attackers to cause a denial of service via a crafted GIF file.
+
+External References:
+https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3186
+https://bugzilla.redhat.com/show_bug.cgi?id=1319503
+
+CVE: CVE-2016-3186
+Upstream-Status: Backport (RedHat)
+https://bugzilla.redhat.com/attachment.cgi?id=1144235&action=diff
+
+Signed-off-by: Yi Zhao <yi.zhao@windirver.com>
+
+--- tiff-4.0.6/tools/gif2tiff.c 2016-04-06 15:43:01.586048341 +0200
++++ tiff-4.0.6/tools/gif2tiff.c 2016-04-06 15:48:05.523207710 +0200
+@@ -349,7 +349,7 @@
+ int status = 1;
+
+ (void) getc(infile);
+- while ((count = getc(infile)) && count <= 255)
++ while ((count = getc(infile)) && count >= 0 && count <= 255)
+ if (fread(buf, 1, count, infile) != (size_t) count) {
+ fprintf(stderr, "short read from file %s (%s)\n",
+ filename, strerror(errno));
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5321.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5321.patch
new file mode 100644
index 000000000..63c665024
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5321.patch
@@ -0,0 +1,49 @@
+From d9783e4a1476b6787a51c5ae9e9b3156527589f0 Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Mon, 11 Jul 2016 21:26:03 +0000
+Subject: [PATCH 1/2] * tools/tiffcrop.c: Avoid access outside of stack
+ allocated array on a tiled separate TIFF with more than 8 samples per pixel.
+ Reported by Kaixiang Zhang of the Cloud Security Team, Qihoo 360
+ (CVE-2016-5321, bugzilla #2558)
+
+CVE: CVE-2016-5321
+Upstream-Status: Backport
+https://github.com/vadz/libtiff/commit/d9783e4a1476b6787a51c5ae9e9b3156527589f0
+
+Signed-off-by: Yi Zhao <yi.zhao@windirver.com>
+---
+ ChangeLog | 7 +++++++
+ tools/tiffcrop.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index e98d54d..4e0302f 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,10 @@
++2016-07-11 Even Rouault <even.rouault at spatialys.com>
++
++ * tools/tiffcrop.c: Avoid access outside of stack allocated array
++ on a tiled separate TIFF with more than 8 samples per pixel.
++ Reported by Kaixiang Zhang of the Cloud Security Team, Qihoo 360
++ (CVE-2016-5321, bugzilla #2558)
++
+ 2015-12-27 Even Rouault <even.rouault at spatialys.com>
+
+ * libtiff/tif_next.c: fix potential out-of-bound write in NeXTDecode()
+diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
+index d959ae3..6fc8fc1 100644
+--- a/tools/tiffcrop.c
++++ b/tools/tiffcrop.c
+@@ -989,7 +989,7 @@ static int readSeparateTilesIntoBuffer (TIFF* in, uint8 *obuf,
+ nrow = (row + tl > imagelength) ? imagelength - row : tl;
+ for (col = 0; col < imagewidth; col += tw)
+ {
+- for (s = 0; s < spp; s++)
++ for (s = 0; s < spp && s < MAX_SAMPLES; s++)
+ { /* Read each plane of a tile set into srcbuffs[s] */
+ tbytes = TIFFReadTile(in, srcbuffs[s], col, row, 0, s);
+ if (tbytes < 0 && !ignore)
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5323.patch b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5323.patch
new file mode 100644
index 000000000..41eab91ab
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/files/CVE-2016-5323.patch
@@ -0,0 +1,107 @@
+From 2f79856097f423eb33796a15fcf700d2ea41bf31 Mon Sep 17 00:00:00 2001
+From: erouault <erouault>
+Date: Mon, 11 Jul 2016 21:38:31 +0000
+Subject: [PATCH 2/2] (CVE-2016-5321 / CVE-2016-5323 , bugzilla #2558 / #2559)
+
+CVE: CVE-2016-5323
+Upstream-Status: Backport
+https://github.com/vadz/libtiff/commit/2f79856097f423eb33796a15fcf700d2ea41bf31
+
+Signed-off-by: Yi Zhao <yi.zhao@windirver.com>
+---
+ ChangeLog | 2 +-
+ tools/tiffcrop.c | 16 ++++++++--------
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index 4e0302f..62dc1b5 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -3,7 +3,7 @@
+ * tools/tiffcrop.c: Avoid access outside of stack allocated array
+ on a tiled separate TIFF with more than 8 samples per pixel.
+ Reported by Kaixiang Zhang of the Cloud Security Team, Qihoo 360
+- (CVE-2016-5321, bugzilla #2558)
++ (CVE-2016-5321 / CVE-2016-5323 , bugzilla #2558 / #2559)
+
+ 2016-07-10 Even Rouault <even.rouault at spatialys.com>
+
+diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
+index 6fc8fc1..27abc0b 100644
+--- a/tools/tiffcrop.c
++++ b/tools/tiffcrop.c
+@@ -3738,7 +3738,7 @@ combineSeparateSamples8bits (uint8 *in[], uint8 *out, uint32 cols,
+
+ matchbits = maskbits << (8 - src_bit - bps);
+ /* load up next sample from each plane */
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ buff1 = ((*src) & matchbits) << (src_bit);
+@@ -3837,7 +3837,7 @@ combineSeparateSamples16bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (16 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+@@ -3947,7 +3947,7 @@ combineSeparateSamples24bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (32 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+@@ -4073,7 +4073,7 @@ combineSeparateSamples32bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (64 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+@@ -4263,7 +4263,7 @@ combineSeparateTileSamples8bits (uint8 *in[], uint8 *out, uint32 cols,
+
+ matchbits = maskbits << (8 - src_bit - bps);
+ /* load up next sample from each plane */
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ buff1 = ((*src) & matchbits) << (src_bit);
+@@ -4362,7 +4362,7 @@ combineSeparateTileSamples16bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (16 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+@@ -4471,7 +4471,7 @@ combineSeparateTileSamples24bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (32 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+@@ -4597,7 +4597,7 @@ combineSeparateTileSamples32bits (uint8 *in[], uint8 *out, uint32 cols,
+ src_bit = bit_offset % 8;
+
+ matchbits = maskbits << (64 - src_bit - bps);
+- for (s = 0; s < spp; s++)
++ for (s = 0; (s < spp) && (s < MAX_SAMPLES); s++)
+ {
+ src = in[s] + src_offset + src_byte;
+ if (little_endian)
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb
index e2e24e0fb..8147bc4fb 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/libtiff/tiff_4.0.6.bb
@@ -1,10 +1,15 @@
SUMMARY = "Provides support for the Tag Image File Format (TIFF)"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf"
-HOMEPAGE = "http://www.remotesensing.org/libtiff/"
-SRC_URI = "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${PV}.tar.gz \
+SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
file://libtool2.patch \
+ file://CVE-2015-8665_8683.patch \
+ file://CVE-2015-8781.patch \
+ file://CVE-2015-8784.patch \
+ file://CVE-2016-3186.patch \
+ file://CVE-2016-5321.patch \
+ file://CVE-2016-5323.patch \
"
SRC_URI[md5sum] = "d1d2e940dea0b5ad435f21f03d96dd72"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/mpg123/mpg123_1.23.6.bb b/import-layers/yocto-poky/meta/recipes-multimedia/mpg123/mpg123_1.23.6.bb
new file mode 100644
index 000000000..6ee457d04
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/mpg123/mpg123_1.23.6.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Audio decoder for MPEG-1 Layer 1/2/3"
+DESCRIPTION = "The core of mpg123 is an MPEG-1 Layer 1/2/3 decoding library, which can be used by other programs. \
+mpg123 also comes with a command-line tool which can playback using ALSA, PulseAudio, OSS, and several other APIs, \
+and also can write the decoded audio to WAV."
+HOMEPAGE = "http://mpg123.de/"
+BUGTRACKER = "http://sourceforge.net/p/mpg123/bugs/"
+SECTION = "multimedia"
+
+LICENSE = "LGPLv2.1"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3"
+
+SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
+
+SRC_URI[md5sum] = "ed22a3e664f076fa05131a3454ef8166"
+SRC_URI[sha256sum] = "4073d9c60a43872f6f5a3a322f5ea21ab7f0869d2ed25e79c3eb8521fa3c32d4"
+
+inherit autotools pkgconfig
+
+# The options should be mutually exclusive for configuration script.
+# If both alsa and pulseaudio are specified (as in the default distro features)
+# pulseaudio takes precedence.
+PACKAGECONFIG_ALSA = "${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}"
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '${PACKAGECONFIG_ALSA}', d)}"
+
+PACKAGECONFIG[alsa] = "--with-default-audio=alsa,,alsa-lib"
+PACKAGECONFIG[esd] = ",,esound"
+PACKAGECONFIG[jack] = ",,jack"
+PACKAGECONFIG[openal] = ",,openal-soft"
+PACKAGECONFIG[portaudio] = ",,portaudio-v19"
+PACKAGECONFIG[pulseaudio] = "--with-default-audio=pulse,,pulseaudio"
+PACKAGECONFIG[sdl] = ",,libsdl"
+
+# Following are possible sound output modules:
+# alsa arts coreaudio dummy esd jack nas openal os2 oss portaudio pulse sdl sndio sun tinyalsa win32 win32_wasapi
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'alsa', 'alsa', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'esd', 'esd', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'jack', 'jack', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'openal', 'openal', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'portaudio', 'portaudio', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'pulse', '', d)}"
+AUDIOMODS += "${@bb.utils.contains('PACKAGECONFIG', 'sdl', 'sdl', '', d)}"
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --with-audio='${AUDIOMODS}' \
+ --with-module-suffix=.so \
+ ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \
+"
+
+# The x86 assembler optimisations contains text relocations and there are no
+# upstream plans to fix them: http://sourceforge.net/p/mpg123/bugs/168/
+INSANE_SKIP_${PN}_append_x86 = " textrel"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:47: Error: selected processor does not support Thumb mode `smull r5,r6,r7,r4'
+#| {standard input}:48: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r5,r5,lsr#24'
+#...
+#| make[3]: *** [equalizer.lo] Error 1
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 0b05ce4ca..7e54ad4b5 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -3,11 +3,12 @@ HOMEPAGE = "http://www.pulseaudio.org"
AUTHOR = "Lennart Poettering"
SECTION = "libs/multimedia"
LICENSE = "GPLv2+ & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d9ae089c8dc5339f8ac9d8563038a29f \
+ file://GPL;md5=4325afd396febcb659c36b49533135d4 \
file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/pulsecore/resampler.h;beginline=4;endline=21;md5=09794012ae16912c0270f3280cc8ff84"
-DEPENDS = "libatomic-ops libsndfile1 libtool"
+DEPENDS = "libatomic-ops libsndfile1 libtool intltool-native"
# optional
DEPENDS += "udev alsa-lib glib-2.0 gconf"
DEPENDS += "json-c gdbm speexdsp libxml-parser-perl-native libcap"
@@ -30,6 +31,7 @@ EXTRA_OECONF = "\
--without-zsh-completion-dir \
--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \
ac_cv_header_valgrind_memcheck_h=no \
+ --disable-tests \
"
# soxr (the SoX Resampler library) doesn't seem to be currently packaged in
@@ -41,6 +43,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', '3g', 'ofono', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)} \
dbus \
"
@@ -57,6 +60,8 @@ PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
# able to use pulseaudio autospawn for root as well.
PACKAGECONFIG[autospawn-for-root] = ",,,"
PACKAGECONFIG[lirc] = "--enable-lirc,--disable-lirc,lirc"
+PACKAGECONFIG[webrtc] = "--enable-webrtc-aec,--disable-webrtc-aec,webrtc-audio-processing"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
EXTRA_OECONF_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
deleted file mode 100644
index 1c1e2fbdb..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-Revert-module-switch-on-port-available-Route-to-pref.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-From b8b9b3da94a0c27090ceba243fdf54fb518c5489 Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Mon, 1 Feb 2016 15:34:59 +0200
-Subject: [PATCH] Revert "module-switch-on-port-available: Route to preferred
- profile"
-
-This reverts commit e87100d41ef6d14f8dc7f803582191d9f8d8f183.
-
-The reverted commit had some unwanted consequences:
-https://bugs.freedesktop.org/show_bug.cgi?id=93903
-https://bugs.freedesktop.org/show_bug.cgi?id=93946
-
-The first regression has a fix here:
-https://patchwork.freedesktop.org/patch/72053/
-
-The second regression, however, doesn't have a fix yet. Therefore,
-it's best to revert the offending patch for now.
-
-Upstream-Status: Inappropriate [Upstream plans to fix the issues
-properly.]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/modules/module-switch-on-port-available.c | 172 ++++++++++----------------
- 1 file changed, 67 insertions(+), 105 deletions(-)
-
-diff --git a/src/modules/module-switch-on-port-available.c b/src/modules/module-switch-on-port-available.c
-index 5dd9786..8de68a3 100644
---- a/src/modules/module-switch-on-port-available.c
-+++ b/src/modules/module-switch-on-port-available.c
-@@ -74,25 +74,22 @@ static bool profile_good_for_input(pa_card_profile *profile) {
- static int try_to_switch_profile(pa_device_port *port) {
- pa_card_profile *best_profile = NULL, *profile;
- void *state;
-- unsigned best_prio = 0;
-
-- pa_log_debug("Finding best profile for port %s, preferred = %s",
-- port->name, pa_strnull(port->preferred_profile));
-+ pa_log_debug("Finding best profile");
-
- PA_HASHMAP_FOREACH(profile, port->profiles, state) {
- bool good = false;
-- const char *name;
-- unsigned prio = profile->priority;
-+
-+ if (best_profile && best_profile->priority >= profile->priority)
-+ continue;
-
- /* We make a best effort to keep other direction unchanged */
- switch (port->direction) {
- case PA_DIRECTION_OUTPUT:
-- name = profile->output_name;
- good = profile_good_for_output(profile);
- break;
-
- case PA_DIRECTION_INPUT:
-- name = profile->input_name;
- good = profile_good_for_input(profile);
- break;
- }
-@@ -100,15 +97,7 @@ static int try_to_switch_profile(pa_device_port *port) {
- if (!good)
- continue;
-
-- /* Give a high bonus in case this is the preferred profile */
-- if (port->preferred_profile && pa_streq(name ? name : profile->name, port->preferred_profile))
-- prio += 1000000;
--
-- if (best_profile && best_prio >= prio)
-- continue;
--
- best_profile = profile;
-- best_prio = prio;
- }
-
- if (!best_profile) {
-@@ -124,125 +113,98 @@ static int try_to_switch_profile(pa_device_port *port) {
- return 0;
- }
-
--struct port_pointers {
-- pa_device_port *port;
-- pa_sink *sink;
-- pa_source *source;
-- bool is_possible_profile_active;
-- bool is_preferred_profile_active;
-- bool is_port_active;
--};
--
--static const char* profile_name_for_dir(pa_card_profile *cp, pa_direction_t dir) {
-- if (dir == PA_DIRECTION_OUTPUT && cp->output_name)
-- return cp->output_name;
-- if (dir == PA_DIRECTION_INPUT && cp->input_name)
-- return cp->input_name;
-- return cp->name;
--}
--
--static struct port_pointers find_port_pointers(pa_device_port *port) {
-- struct port_pointers pp = { .port = port };
-+static void find_sink_and_source(pa_card *card, pa_device_port *port, pa_sink **si, pa_source **so) {
-+ pa_sink *sink = NULL;
-+ pa_source *source = NULL;
- uint32_t state;
-- pa_card *card;
--
-- pa_assert(port);
-- pa_assert_se(card = port->card);
-
- switch (port->direction) {
- case PA_DIRECTION_OUTPUT:
-- PA_IDXSET_FOREACH(pp.sink, card->sinks, state)
-- if (port == pa_hashmap_get(pp.sink->ports, port->name))
-+ PA_IDXSET_FOREACH(sink, card->sinks, state)
-+ if (port == pa_hashmap_get(sink->ports, port->name))
- break;
- break;
-
- case PA_DIRECTION_INPUT:
-- PA_IDXSET_FOREACH(pp.source, card->sources, state)
-- if (port == pa_hashmap_get(pp.source->ports, port->name))
-+ PA_IDXSET_FOREACH(source, card->sources, state)
-+ if (port == pa_hashmap_get(source->ports, port->name))
- break;
- break;
- }
-
-- pp.is_possible_profile_active =
-- card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name);
-- pp.is_preferred_profile_active = pp.is_possible_profile_active && (!port->preferred_profile ||
-- pa_safe_streq(port->preferred_profile, profile_name_for_dir(card->active_profile, port->direction)));
-- pp.is_port_active = (pp.sink && pp.sink->active_port == port) || (pp.source && pp.source->active_port == port);
--
-- return pp;
-+ *si = sink;
-+ *so = source;
- }
-
--/* Switches to a port, switching profiles if necessary or preferred */
--static bool switch_to_port(pa_device_port *port) {
-- struct port_pointers pp = find_port_pointers(port);
-+static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) {
-+ pa_card* card;
-+ pa_sink *sink;
-+ pa_source *source;
-+ bool is_active_profile, is_active_port;
-
-- if (pp.is_port_active)
-- return true; /* Already selected */
-+ if (port->available == PA_AVAILABLE_UNKNOWN)
-+ return PA_HOOK_OK;
-
-- pa_log_debug("Trying to switch to port %s", port->name);
-- if (!pp.is_preferred_profile_active) {
-- if (try_to_switch_profile(port) < 0) {
-- if (pp.is_possible_profile_active)
-- return false;
-- }
-- else
-- /* Now that profile has changed, our sink and source pointers must be updated */
-- pp = find_port_pointers(port);
-- }
-+ card = port->card;
-
-- if (pp.source)
-- pa_source_set_port(pp.source, port->name, false);
-- if (pp.sink)
-- pa_sink_set_port(pp.sink, port->name, false);
-- return true;
--}
-+ if (!card) {
-+ pa_log_warn("Port %s does not have a card", port->name);
-+ return PA_HOOK_OK;
-+ }
-
--/* Switches away from a port, switching profiles if necessary or preferred */
--static bool switch_from_port(pa_device_port *port) {
-- struct port_pointers pp = find_port_pointers(port);
-- pa_device_port *p, *best_port = NULL;
-- void *state;
-+ if (pa_idxset_size(card->sinks) == 0 && pa_idxset_size(card->sources) == 0)
-+ /* This card is not initialized yet. We'll handle it in
-+ sink_new / source_new callbacks later. */
-+ return PA_HOOK_OK;
-
-- if (!pp.is_port_active)
-- return true; /* Already deselected */
-+ find_sink_and_source(card, port, &sink, &source);
-
-- /* Try to find a good enough port to switch to */
-- PA_HASHMAP_FOREACH(p, port->card->ports, state)
-- if (p->direction == port->direction && p != port && p->available != PA_AVAILABLE_NO &&
-- (!best_port || best_port->priority < p->priority))
-- best_port = p;
-+ is_active_profile = card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name);
-+ is_active_port = (sink && sink->active_port == port) || (source && source->active_port == port);
-
-- pa_log_debug("Trying to switch away from port %s, found %s", port->name, best_port ? best_port->name : "no better option");
-+ if (port->available == PA_AVAILABLE_NO && !is_active_port)
-+ return PA_HOOK_OK;
-
-- if (best_port)
-- return switch_to_port(best_port);
-+ if (port->available == PA_AVAILABLE_YES) {
-+ if (is_active_port)
-+ return PA_HOOK_OK;
-
-- return false;
--}
-+ if (!is_active_profile) {
-+ if (try_to_switch_profile(port) < 0)
-+ return PA_HOOK_OK;
-
-+ pa_assert(card->active_profile == pa_hashmap_get(port->profiles, card->active_profile->name));
-
--static pa_hook_result_t port_available_hook_callback(pa_core *c, pa_device_port *port, void* userdata) {
-- pa_assert(port);
-+ /* Now that profile has changed, our sink and source pointers must be updated */
-+ find_sink_and_source(card, port, &sink, &source);
-+ }
-
-- if (!port->card) {
-- pa_log_warn("Port %s does not have a card", port->name);
-- return PA_HOOK_OK;
-+ if (source)
-+ pa_source_set_port(source, port->name, false);
-+ if (sink)
-+ pa_sink_set_port(sink, port->name, false);
- }
-
-- if (pa_idxset_size(port->card->sinks) == 0 && pa_idxset_size(port->card->sources) == 0)
-- /* This card is not initialized yet. We'll handle it in
-- sink_new / source_new callbacks later. */
-- return PA_HOOK_OK;
-+ if (port->available == PA_AVAILABLE_NO) {
-+ if (sink) {
-+ pa_device_port *p2 = pa_device_port_find_best(sink->ports);
-+
-+ if (p2 && p2->available != PA_AVAILABLE_NO)
-+ pa_sink_set_port(sink, p2->name, false);
-+ else {
-+ /* Maybe try to switch to another profile? */
-+ }
-+ }
-
-- switch (port->available) {
-- case PA_AVAILABLE_YES:
-- switch_to_port(port);
-- break;
-- case PA_AVAILABLE_NO:
-- switch_from_port(port);
-- break;
-- default:
-- break;
-+ if (source) {
-+ pa_device_port *p2 = pa_device_port_find_best(source->ports);
-+
-+ if (p2 && p2->available != PA_AVAILABLE_NO)
-+ pa_source_set_port(source, p2->name, false);
-+ else {
-+ /* Maybe try to switch to another profile? */
-+ }
-+ }
- }
-
- return PA_HOOK_OK;
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
new file mode 100644
index 000000000..2f72ceb33
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
@@ -0,0 +1,61 @@
+From 9c3cdfcd198ef9727ea542f284ac6d8c1bcd7a3a Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Fri, 23 Oct 2015 12:36:34 +0300
+Subject: [PATCH 1/5] alsa, bluetooth: fail if user-requested profile doesn't
+ exist
+
+If we can't fulfill the user request fully, I think we shouldn't
+fulfill it at all, to make it clear that the requested operation
+didn't succeed.
+
+Upstream-Status: Accepted [expected in 10.0]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/modules/alsa/module-alsa-card.c | 11 +++++++++--
+ src/modules/bluetooth/module-bluez4-device.c | 7 +++++--
+ 2 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
+index e5cc4ae..d761683 100644
+--- a/src/modules/alsa/module-alsa-card.c
++++ b/src/modules/alsa/module-alsa-card.c
+@@ -799,8 +799,15 @@ int pa__init(pa_module *m) {
+ goto fail;
+ }
+
+- if ((profile = pa_modargs_get_value(u->modargs, "profile", NULL)))
+- pa_card_new_data_set_profile(&data, profile);
++ if ((profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
++ if (pa_hashmap_get(data.profiles, profile))
++ pa_card_new_data_set_profile(&data, profile);
++ else {
++ pa_log("No such profile: %s", profile);
++ pa_card_new_data_done(&data);
++ goto fail;
++ }
++ }
+
+ u->card = pa_card_new(m->core, &data);
+ pa_card_new_data_done(&data);
+diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
+index 9a921a5..a2de525 100644
+--- a/src/modules/bluetooth/module-bluez4-device.c
++++ b/src/modules/bluetooth/module-bluez4-device.c
+@@ -2301,8 +2301,11 @@ static int add_card(struct userdata *u) {
+ if ((default_profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
+ if (pa_hashmap_get(data.profiles, default_profile))
+ pa_card_new_data_set_profile(&data, default_profile);
+- else
+- pa_log_warn("Profile '%s' not valid or not supported by device.", default_profile);
++ else {
++ pa_log("Profile '%s' not valid or not supported by device.", default_profile);
++ pa_card_new_data_done(&data);
++ return -1;
++ }
+ }
+
+ u->card = pa_card_new(u->core, &data);
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
deleted file mode 100644
index 84c951940..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-card-add-pa_card_profile.ports.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From d1c02971867bea10afcafc82c965414012c4d6bd Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Fri, 23 Oct 2015 12:23:13 +0300
-Subject: [PATCH 1/4] card: add pa_card_profile.ports
-
-Having ports accessible from pa_card_profile allows checking whether all ports
-of a profile are unavailable, and therefore helps with managing the profile
-availability (implemented in a later patch).
-
-http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-Rebased on 8.0.
-
-Upstream-Status: Denied [The patch set needs some work to be accepted.
-The review thread:
-http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/modules/alsa/alsa-mixer.c | 4 +++-
- src/modules/alsa/alsa-ucm.c | 1 +
- src/modules/bluetooth/module-bluez4-device.c | 6 ++++++
- src/modules/bluetooth/module-bluez5-device.c | 6 ++++++
- src/pulsecore/card.c | 15 +++++++++++++++
- src/pulsecore/card.h | 4 ++++
- src/pulsecore/device-port.c | 7 ++++++-
- 7 files changed, 41 insertions(+), 2 deletions(-)
-
-diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
-index 1fe2a02..5b76b06 100644
---- a/src/modules/alsa/alsa-mixer.c
-+++ b/src/modules/alsa/alsa-mixer.c
-@@ -4783,8 +4783,10 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports, /* card ports */
- path->port = p;
- }
-
-- if (cp)
-+ if (cp) {
- pa_hashmap_put(p->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, p);
-+ }
-
- if (extra) {
- pa_hashmap_put(extra, p->name, p);
-diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
-index 42f3242..68fcc26 100644
---- a/src/modules/alsa/alsa-ucm.c
-+++ b/src/modules/alsa/alsa-ucm.c
-@@ -791,6 +791,7 @@ static void ucm_add_port_combination(
- if (cp) {
- pa_log_debug("Adding profile %s to port %s.", cp->name, port->name);
- pa_hashmap_put(port->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, port);
- }
-
- if (hash) {
-diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
-index 9a921a5..adecb32 100644
---- a/src/modules/bluetooth/module-bluez4-device.c
-+++ b/src/modules/bluetooth/module-bluez4-device.c
-@@ -2180,6 +2180,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- p->max_sink_channels = 2;
- p->max_source_channels = 0;
- pa_hashmap_put(output_port->profiles, p->name, p);
-+ pa_card_profile_add_port(p, output_port);
-
- d = PA_CARD_PROFILE_DATA(p);
- *d = PA_BLUEZ4_PROFILE_A2DP;
-@@ -2191,6 +2192,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- p->max_sink_channels = 0;
- p->max_source_channels = 2;
- pa_hashmap_put(input_port->profiles, p->name, p);
-+ pa_card_profile_add_port(p, input_port);
-
- d = PA_CARD_PROFILE_DATA(p);
- *d = PA_BLUEZ4_PROFILE_A2DP_SOURCE;
-@@ -2203,6 +2205,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- p->max_source_channels = 1;
- pa_hashmap_put(input_port->profiles, p->name, p);
- pa_hashmap_put(output_port->profiles, p->name, p);
-+ pa_card_profile_add_port(p, input_port);
-+ pa_card_profile_add_port(p, output_port);
-
- d = PA_CARD_PROFILE_DATA(p);
- *d = PA_BLUEZ4_PROFILE_HSP;
-@@ -2215,6 +2219,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- p->max_source_channels = 1;
- pa_hashmap_put(input_port->profiles, p->name, p);
- pa_hashmap_put(output_port->profiles, p->name, p);
-+ pa_card_profile_add_port(p, input_port);
-+ pa_card_profile_add_port(p, output_port);
-
- d = PA_CARD_PROFILE_DATA(p);
- *d = PA_BLUEZ4_PROFILE_HFGW;
-diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index 84e6d55..b015c67 100644
---- a/src/modules/bluetooth/module-bluez5-device.c
-+++ b/src/modules/bluetooth/module-bluez5-device.c
-@@ -1790,6 +1790,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- cp->max_sink_channels = 2;
- cp->max_source_channels = 0;
- pa_hashmap_put(output_port->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, output_port);
-
- p = PA_CARD_PROFILE_DATA(cp);
- *p = PA_BLUETOOTH_PROFILE_A2DP_SINK;
-@@ -1801,6 +1802,7 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- cp->max_sink_channels = 0;
- cp->max_source_channels = 2;
- pa_hashmap_put(input_port->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, input_port);
-
- p = PA_CARD_PROFILE_DATA(cp);
- *p = PA_BLUETOOTH_PROFILE_A2DP_SOURCE;
-@@ -1813,6 +1815,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- cp->max_source_channels = 1;
- pa_hashmap_put(input_port->profiles, cp->name, cp);
- pa_hashmap_put(output_port->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, input_port);
-+ pa_card_profile_add_port(cp, output_port);
-
- p = PA_CARD_PROFILE_DATA(cp);
- *p = PA_BLUETOOTH_PROFILE_HEADSET_HEAD_UNIT;
-@@ -1825,6 +1829,8 @@ static pa_card_profile *create_card_profile(struct userdata *u, const char *uuid
- cp->max_source_channels = 1;
- pa_hashmap_put(input_port->profiles, cp->name, cp);
- pa_hashmap_put(output_port->profiles, cp->name, cp);
-+ pa_card_profile_add_port(cp, input_port);
-+ pa_card_profile_add_port(cp, output_port);
-
- p = PA_CARD_PROFILE_DATA(cp);
- *p = PA_BLUETOOTH_PROFILE_HEADSET_AUDIO_GATEWAY;
-diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
-index b6cbbf7..f92ac87 100644
---- a/src/pulsecore/card.c
-+++ b/src/pulsecore/card.c
-@@ -45,6 +45,7 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
- c->name = pa_xstrdup(name);
- c->description = pa_xstrdup(description);
- c->available = PA_AVAILABLE_UNKNOWN;
-+ c->ports = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);
-
- return c;
- }
-@@ -52,6 +53,14 @@ pa_card_profile *pa_card_profile_new(const char *name, const char *description,
- void pa_card_profile_free(pa_card_profile *c) {
- pa_assert(c);
-
-+ if (c->ports) {
-+ pa_device_port *port;
-+ void *state;
-+ PA_HASHMAP_FOREACH(port, c->ports, state)
-+ pa_hashmap_remove (port->profiles, c->name);
-+ pa_hashmap_free(c->ports);
-+ }
-+
- pa_xfree(c->input_name);
- pa_xfree(c->output_name);
- pa_xfree(c->name);
-@@ -59,6 +68,12 @@ void pa_card_profile_free(pa_card_profile *c) {
- pa_xfree(c);
- }
-
-+void pa_card_profile_add_port(pa_card_profile *profile, pa_device_port *port) {
-+ pa_assert(profile);
-+
-+ pa_hashmap_put(profile->ports, port->name, port);
-+}
-+
- void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available) {
- pa_core *core;
-
-diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
-index 30bfc0e..fff9057 100644
---- a/src/pulsecore/card.h
-+++ b/src/pulsecore/card.h
-@@ -50,6 +50,8 @@ struct pa_card_profile {
- unsigned priority;
- pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */
-
-+ pa_hashmap *ports; /* port name -> pa_device_port */
-+
- /* We probably want to have different properties later on here */
- unsigned n_sinks;
- unsigned n_sources;
-@@ -107,6 +109,8 @@ typedef struct pa_card_new_data {
- pa_card_profile *pa_card_profile_new(const char *name, const char *description, size_t extra);
- void pa_card_profile_free(pa_card_profile *c);
-
-+void pa_card_profile_add_port(pa_card_profile *profile, pa_device_port *port);
-+
- /* The profile's available status has changed */
- void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available);
-
-diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c
-index 5807d3e..d12dfbc 100644
---- a/src/pulsecore/device-port.c
-+++ b/src/pulsecore/device-port.c
-@@ -107,8 +107,13 @@ static void device_port_free(pa_object *o) {
- if (p->proplist)
- pa_proplist_free(p->proplist);
-
-- if (p->profiles)
-+ if (p->profiles) {
-+ pa_card_profile *profile;
-+ void *state;
-+ PA_HASHMAP_FOREACH(profile, p->profiles, state)
-+ pa_hashmap_remove (profile->ports, p->name);
- pa_hashmap_free(p->profiles);
-+ }
-
- pa_xfree(p->preferred_profile);
- pa_xfree(p->name);
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
index bc3277583..33f7709ae 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
@@ -1,4 +1,4 @@
-From 1cb5647f76dc8cd7bacbce2a64fac9e6c2dc3b16 Mon Sep 17 00:00:00 2001
+From babec3a50dd710d26b72f6c6d43bd79b04e954a6 Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
Date: Tue, 28 Apr 2015 14:32:43 +0300
Subject: [PATCH] client-conf: Add allow-autospawn-for-root
@@ -24,10 +24,10 @@ Signed-off-by: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
5 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/man/pulse-client.conf.5.xml.in b/man/pulse-client.conf.5.xml.in
-index 1002dbe..0058490 100644
+index b88898c..e737c96 100644
--- a/man/pulse-client.conf.5.xml.in
+++ b/man/pulse-client.conf.5.xml.in
-@@ -71,6 +71,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+@@ -82,6 +82,15 @@ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
</option>
<option>
@@ -44,7 +44,7 @@ index 1002dbe..0058490 100644
run when autospawning. Defaults to a path configured at compile
time.</p>
diff --git a/src/pulse/client-conf.c b/src/pulse/client-conf.c
-index 83331f8..0474583 100644
+index a3c9486..9f68ee5 100644
--- a/src/pulse/client-conf.c
+++ b/src/pulse/client-conf.c
@@ -138,6 +138,7 @@ void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_e
@@ -56,13 +56,13 @@ index 83331f8..0474583 100644
{ "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL },
{ "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL },
diff --git a/src/pulse/client-conf.h b/src/pulse/client-conf.h
-index eac705a..131393a 100644
+index 7691ec7..19db7ed 100644
--- a/src/pulse/client-conf.h
+++ b/src/pulse/client-conf.h
@@ -38,6 +38,7 @@ typedef struct pa_client_conf {
char *cookie_file_from_application;
char *cookie_file_from_client_conf;
- bool autospawn, disable_shm, auto_connect_localhost, auto_connect_display;
+ bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display;
+ bool allow_autospawn_for_root;
size_t shm_size;
} pa_client_conf;
@@ -80,10 +80,10 @@ index 26b7790..69830ef 100644
; extra-arguments = --log-target=syslog
diff --git a/src/pulse/context.c b/src/pulse/context.c
-index 4bc445f..d6c3f6d 100644
+index 69be5f4..d6e13e8 100644
--- a/src/pulse/context.c
+++ b/src/pulse/context.c
-@@ -976,7 +976,7 @@ int pa_context_connect(
+@@ -1027,7 +1027,7 @@ int pa_context_connect(
if (!(flags & PA_CONTEXT_NOAUTOSPAWN) && c->conf->autospawn) {
#ifdef HAVE_GETUID
@@ -93,5 +93,5 @@ index 4bc445f..d6c3f6d 100644
else {
c->do_autospawn = true;
--
-1.9.3
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
deleted file mode 100644
index be3655b23..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 339eb179baa7810113f6456accc05b3a32c1cdba Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Fri, 23 Oct 2015 12:36:34 +0300
-Subject: [PATCH 2/4] alsa, bluetooth: fail if user-requested profile doesn't
- exist
-
-If we can't fulfill the user request fully, I think we shouldn't
-fulfill it at all, to make it clear that the requested operation
-didn't succeed.
-
-http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-Upstream-Status: Denied [The patch set needs some work to be accepted.
-The review thread:
-http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/modules/alsa/module-alsa-card.c | 10 ++++++++--
- src/modules/bluetooth/module-bluez4-device.c | 6 ++++--
- 2 files changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
-index a7fec04..32f517e 100644
---- a/src/modules/alsa/module-alsa-card.c
-+++ b/src/modules/alsa/module-alsa-card.c
-@@ -754,8 +754,14 @@ int pa__init(pa_module *m) {
- goto fail;
- }
-
-- if ((profile = pa_modargs_get_value(u->modargs, "profile", NULL)))
-- pa_card_new_data_set_profile(&data, profile);
-+ if ((profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
-+ if (pa_hashmap_get(data.profiles, profile))
-+ pa_card_new_data_set_profile(&data, profile);
-+ else {
-+ pa_log("No such profile: %s", profile);
-+ goto fail;
-+ }
-+ }
-
- u->card = pa_card_new(m->core, &data);
- pa_card_new_data_done(&data);
-diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
-index b40c6a0..94e6988 100644
---- a/src/modules/bluetooth/module-bluez4-device.c
-+++ b/src/modules/bluetooth/module-bluez4-device.c
-@@ -2310,8 +2310,10 @@ static int add_card(struct userdata *u) {
- if ((default_profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
- if (pa_hashmap_get(data.profiles, default_profile))
- pa_card_new_data_set_profile(&data, default_profile);
-- else
-- pa_log_warn("Profile '%s' not valid or not supported by device.", default_profile);
-+ else {
-+ pa_log("Profile '%s' not valid or not supported by device.", default_profile);
-+ return -1;
-+ }
- }
-
- u->card = pa_card_new(u->core, &data);
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch
new file mode 100644
index 000000000..80c291f82
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch
@@ -0,0 +1,37 @@
+From d4e6d07fef28d1bd8bfbceab4cc196ef54c23dd8 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Tue, 7 Jun 2016 16:51:00 +0300
+Subject: [PATCH 2/5] card: don't allow the CARD_NEW hook to fail
+
+There is currently no use for allowing modules to cancel card creation,
+and I don't see need for that in the future either. Let's simplify
+things by removing the failure handling code.
+
+Upstream-Status: Accepted [expected in 10.0]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/pulsecore/card.c | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
+index 410746b..0ac70b9 100644
+--- a/src/pulsecore/card.c
++++ b/src/pulsecore/card.c
+@@ -149,12 +149,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+ }
+
+ pa_card_new_data_set_name(data, name);
+-
+- if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data) < 0) {
+- pa_xfree(c);
+- pa_namereg_unregister(core, name);
+- return NULL;
+- }
++ pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data);
+
+ c->core = core;
+ c->name = pa_xstrdup(data->name);
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
index 0e7780154..e0f424bbc 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0003-card-move-profile-selection-after-pa_card_new.patch
@@ -1,61 +1,62 @@
-From 13e85dd1763e99d21a60323671b9a5df08bdae75 Mon Sep 17 00:00:00 2001
+From 0b98309fdbcd36fa92ab53e33c51b485b905e294 Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanuk@iki.fi>
Date: Fri, 23 Oct 2015 12:59:53 +0300
-Subject: [PATCH 3/4] card: move profile selection after pa_card_new()
+Subject: [PATCH 3/5] card: move profile selection after pa_card_new()
I want module-alsa-card to set the availability of unavailable
profiles before the initial card profile gets selected, so that the
selection logic can use correct availability information.
module-alsa-card initializes the jack state after calling
pa_card_new(), however, and the profile selection happens in
-pa_card_new(). This patch solves that by introducing pa_card_put() and
-moving the profile selection code there.
+pa_card_new(). This patch solves that by moving parts of pa_card_new()
+to pa_card_choose_initial_profile() and pa_card_put().
+
+pa_card_choose_initial_profile() applies the profile selection policy,
+so module-alsa-card can first call pa_card_new(), then initialize the
+jack state, and then call pa_card_choose_initial_profile(). After that
+module-alsa-card can still override the profile selection policy, in
+case module-alsa-card was loaded with the "profile" argument. Finally,
+pa_card_put() finalizes the card creation.
An alternative solution would have been to move the jack
initialization to happen before pa_card_new() and use pa_card_new_data
instead of pa_card in the jack initialization code, but I disliked
that idea (I want to get rid of the "new data" pattern eventually).
-The CARD_NEW hook is used when applying the initial profile policy, so
-that was moved to pa_card_put(). That required changing the hook data
-from pa_card_new_data to pa_card. module-card-restore now uses
-pa_card_set_profile() instead of pa_card_new_data_set_profile(). That
-required adding a state variable to pa_card, because
-pa_card_set_profile() needs to distinguish between setting the initial
-profile and setting the profile in other situations.
-
The order in which the initial profile policy is applied is reversed
in this patch. Previously the first one to set it won, now the last
one to set it wins. I think this is better, because if you have N
parties that want to set the profile, we avoid checking N times
whether someone else has already set the profile.
-http://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-Rebased on 8.0.
-
-Upstream-Status: Denied [The patch set needs some work to be accepted.
-The review thread:
-http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
+Upstream-Status: Accepted [expected in 10.0]
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
---
- src/modules/alsa/module-alsa-card.c | 19 +++----
- src/modules/bluetooth/module-bluez4-device.c | 18 +++----
- src/modules/bluetooth/module-bluez5-device.c | 1 +
- src/modules/macosx/module-coreaudio-device.c | 1 +
- src/modules/module-card-restore.c | 24 +++++----
- src/pulsecore/card.c | 81 +++++++++++++++-------------
- src/pulsecore/card.h | 7 +++
- 7 files changed, 86 insertions(+), 65 deletions(-)
+ src/modules/alsa/module-alsa-card.c | 32 +++++----
+ src/modules/bluetooth/module-bluez4-device.c | 31 +++++----
+ src/modules/bluetooth/module-bluez5-device.c | 2 +
+ src/modules/macosx/module-coreaudio-device.c | 2 +
+ src/modules/module-card-restore.c | 36 +++++++---
+ src/pulsecore/card.c | 99 +++++++++++++++++-----------
+ src/pulsecore/card.h | 9 +++
+ src/pulsecore/core.h | 1 +
+ 8 files changed, 143 insertions(+), 69 deletions(-)
diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
-index 9e8cde2..fe240f0 100644
+index d761683..1976230 100644
--- a/src/modules/alsa/module-alsa-card.c
+++ b/src/modules/alsa/module-alsa-card.c
-@@ -770,15 +770,6 @@ int pa__init(pa_module *m) {
+@@ -671,7 +671,7 @@ int pa__init(pa_module *m) {
+ struct userdata *u;
+ pa_reserve_wrapper *reserve = NULL;
+ const char *description;
+- const char *profile = NULL;
++ const char *profile_str = NULL;
+ char *fn = NULL;
+ bool namereg_fail = false;
+
+@@ -799,16 +799,6 @@ int pa__init(pa_module *m) {
goto fail;
}
@@ -64,6 +65,7 @@ index 9e8cde2..fe240f0 100644
- pa_card_new_data_set_profile(&data, profile);
- else {
- pa_log("No such profile: %s", profile);
+- pa_card_new_data_done(&data);
- goto fail;
- }
- }
@@ -71,28 +73,47 @@ index 9e8cde2..fe240f0 100644
u->card = pa_card_new(m->core, &data);
pa_card_new_data_done(&data);
-@@ -789,6 +780,16 @@ int pa__init(pa_module *m) {
- u->card->set_profile = card_set_profile;
+@@ -822,6 +812,26 @@ int pa__init(pa_module *m) {
+ (pa_hook_cb_t) card_suspend_changed, u);
init_jacks(u);
-+ pa_card_put(u->card);
+
-+ if ((profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
-+ u->card->active_profile = pa_hashmap_get(u->card->profiles, profile);
-+ if (!u->card->active_profile) {
-+ pa_log("No such profile: %s", profile);
++ pa_card_choose_initial_profile(u->card);
++
++ /* If the "profile" modarg is given, we have to override whatever the usual
++ * policy chose in pa_card_choose_initial_profile(). */
++ profile_str = pa_modargs_get_value(u->modargs, "profile", NULL);
++ if (profile_str) {
++ pa_card_profile *profile;
++
++ profile = pa_hashmap_get(u->card->profiles, profile_str);
++ if (!profile) {
++ pa_log("No such profile: %s", profile_str);
+ goto fail;
+ }
++
++ pa_card_set_profile(u->card, profile, false);
+ }
+
++ pa_card_put(u->card);
++
init_profile(u);
init_eld_ctls(u);
diff --git a/src/modules/bluetooth/module-bluez4-device.c b/src/modules/bluetooth/module-bluez4-device.c
-index dd18217..5d0d3db 100644
+index a2de525..13fb7ab 100644
--- a/src/modules/bluetooth/module-bluez4-device.c
+++ b/src/modules/bluetooth/module-bluez4-device.c
-@@ -2304,15 +2304,6 @@ static int add_card(struct userdata *u) {
+@@ -2238,7 +2238,7 @@ static int add_card(struct userdata *u) {
+ pa_bluez4_profile_t *d;
+ pa_bluez4_form_factor_t ff;
+ char *n;
+- const char *default_profile;
++ const char *profile_str;
+ const pa_bluez4_device *device;
+ const pa_bluez4_uuid *uuid;
+
+@@ -2298,16 +2298,6 @@ static int add_card(struct userdata *u) {
*d = PA_BLUEZ4_PROFILE_OFF;
pa_hashmap_put(data.profiles, p->name, p);
@@ -101,6 +122,7 @@ index dd18217..5d0d3db 100644
- pa_card_new_data_set_profile(&data, default_profile);
- else {
- pa_log("Profile '%s' not valid or not supported by device.", default_profile);
+- pa_card_new_data_done(&data);
- return -1;
- }
- }
@@ -108,127 +130,126 @@ index dd18217..5d0d3db 100644
u->card = pa_card_new(u->core, &data);
pa_card_new_data_done(&data);
-@@ -2323,6 +2314,15 @@ static int add_card(struct userdata *u) {
-
+@@ -2319,6 +2309,25 @@ static int add_card(struct userdata *u) {
u->card->userdata = u;
u->card->set_profile = card_set_profile;
-+ pa_card_put(u->card);
+
++ pa_card_choose_initial_profile(u->card);
++
++ /* If the "profile" modarg is given, we have to override whatever the usual
++ * policy chose in pa_card_choose_initial_profile(). */
++ profile_str = pa_modargs_get_value(u->modargs, "profile", NULL);
++ if (profile_str) {
++ pa_card_profile *profile;
+
-+ if ((default_profile = pa_modargs_get_value(u->modargs, "profile", NULL))) {
-+ u->card->active_profile = pa_hashmap_get(u->card->profiles, default_profile);
-+ if (!u->card->active_profile) {
-+ pa_log("Profile '%s' not valid or not supported by device.", default_profile);
++ profile = pa_hashmap_get(u->card->profiles, profile_str);
++ if (!profile) {
++ pa_log("No such profile: %s", profile_str);
+ return -1;
+ }
++
++ pa_card_set_profile(u->card, profile, false);
+ }
-
++
++ pa_card_put(u->card);
++
d = PA_CARD_PROFILE_DATA(u->card->active_profile);
+ if (*d != PA_BLUEZ4_PROFILE_OFF && (!device->transports[*d] ||
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c
-index b015c67..7b90a31 100644
+index 84e6d55..498d0e1 100644
--- a/src/modules/bluetooth/module-bluez5-device.c
+++ b/src/modules/bluetooth/module-bluez5-device.c
-@@ -1959,6 +1959,7 @@ static int add_card(struct userdata *u) {
+@@ -1953,6 +1953,8 @@ static int add_card(struct userdata *u) {
u->card->userdata = u;
u->card->set_profile = set_profile_cb;
++ pa_card_choose_initial_profile(u->card);
+ pa_card_put(u->card);
p = PA_CARD_PROFILE_DATA(u->card->active_profile);
u->profile = *p;
diff --git a/src/modules/macosx/module-coreaudio-device.c b/src/modules/macosx/module-coreaudio-device.c
-index 0c92d42..7190ee9 100644
+index 6c9e55d..d91c656 100644
--- a/src/modules/macosx/module-coreaudio-device.c
+++ b/src/modules/macosx/module-coreaudio-device.c
-@@ -807,6 +807,7 @@ int pa__init(pa_module *m) {
+@@ -821,6 +821,8 @@ int pa__init(pa_module *m) {
pa_card_new_data_done(&card_new_data);
u->card->userdata = u;
u->card->set_profile = card_set_profile;
++ pa_card_choose_initial_profile(u->card);
+ pa_card_put(u->card);
u->rtpoll = pa_rtpoll_new();
pa_thread_mq_init(&u->thread_mq, m->core->mainloop, u->rtpoll);
diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c
-index f906843..dce6674 100644
+index 7545aa5..718a0dd 100644
--- a/src/modules/module-card-restore.c
+++ b/src/modules/module-card-restore.c
-@@ -515,34 +515,38 @@ static pa_hook_result_t port_offset_change_callback(pa_core *c, pa_device_port *
- return PA_HOOK_OK;
- }
-
--static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new_data, struct userdata *u) {
-+static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card *card, struct userdata *u) {
- struct entry *e;
- void *state;
- pa_device_port *p;
- struct port_info *p_info;
-
-- pa_assert(new_data);
-+ pa_assert(c);
-+ pa_assert(card);
-+ pa_assert(u);
-
-- if (!(e = entry_read(u, new_data->name)))
-+ if (!(e = entry_read(u, card->name)))
+@@ -551,16 +551,6 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new
+ if (!(e = entry_read(u, new_data->name)))
return PA_HOOK_OK;
- if (e->profile[0]) {
+- if (e->profile[0]) {
- if (!new_data->active_profile) {
- pa_card_new_data_set_profile(new_data, e->profile);
- pa_log_info("Restored profile '%s' for card %s.", new_data->active_profile, new_data->name);
- new_data->save_profile = true;
-+ pa_card_profile *profile;
+-
+- } else
+- pa_log_debug("Not restoring profile for card %s, because already set.", new_data->name);
+- }
+-
+ /* Always restore the latency offsets because their
+ * initial value is always 0 */
+
+@@ -590,6 +580,30 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new
+ return PA_HOOK_OK;
+ }
++static pa_hook_result_t card_choose_initial_profile_callback(pa_core *core, pa_card *card, struct userdata *u) {
++ struct entry *e;
++
++ if (!(e = entry_read(u, card->name)))
++ return PA_HOOK_OK;
++
++ if (e->profile[0]) {
++ pa_card_profile *profile;
++
+ profile = pa_hashmap_get(card->profiles, e->profile);
+ if (profile) {
++ pa_log_info("Restoring profile '%s' for card %s.", card->active_profile->name, card->name);
+ pa_card_set_profile(card, profile, true);
-+ pa_log_info("Restored profile '%s' for card %s.", card->active_profile->name, card->name);
- } else
-- pa_log_debug("Not restoring profile for card %s, because already set.", new_data->name);
++ } else {
+ pa_log_debug("Tried to restore profile %s for card %s, but the card doesn't have such profile.",
+ e->profile, card->name);
- }
-
- /* Always restore the latency offsets because their
- * initial value is always 0 */
-
-- pa_log_info("Restoring port latency offsets for card %s.", new_data->name);
-+ pa_log_info("Restoring port latency offsets for card %s.", card->name);
-
- PA_HASHMAP_FOREACH(p_info, e->ports, state)
-- if ((p = pa_hashmap_get(new_data->ports, p_info->name))) {
-+ if ((p = pa_hashmap_get(card->ports, p_info->name))) {
- p->latency_offset = p_info->offset;
- if (!p->preferred_profile && p_info->profile)
- pa_device_port_set_preferred_profile(p, p_info->profile);
++ }
++ }
++
++ entry_free(e);
++
++ return PA_HOOK_OK;
++}
++
+ static pa_hook_result_t card_preferred_port_changed_callback(pa_core *core, pa_card_preferred_port_changed_hook_data *data,
+ struct userdata *u) {
+ struct entry *e;
+@@ -634,6 +648,8 @@ int pa__init(pa_module*m) {
+ u->module = m;
+
+ pa_module_hook_connect(m, &m->core->hooks[PA_CORE_HOOK_CARD_NEW], PA_HOOK_EARLY, (pa_hook_cb_t) card_new_hook_callback, u);
++ pa_module_hook_connect(m, &m->core->hooks[PA_CORE_HOOK_CARD_CHOOSE_INITIAL_PROFILE], PA_HOOK_NORMAL,
++ (pa_hook_cb_t) card_choose_initial_profile_callback, u);
+ pa_module_hook_connect(m, &m->core->hooks[PA_CORE_HOOK_CARD_PUT], PA_HOOK_NORMAL, (pa_hook_cb_t) card_put_hook_callback, u);
+ pa_module_hook_connect(m, &m->core->hooks[PA_CORE_HOOK_CARD_PREFERRED_PORT_CHANGED], PA_HOOK_NORMAL, (pa_hook_cb_t) card_preferred_port_changed_callback, u);
+ pa_module_hook_connect(m, &m->core->hooks[PA_CORE_HOOK_CARD_PROFILE_CHANGED], PA_HOOK_NORMAL, (pa_hook_cb_t) card_profile_changed_callback, u);
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
-index f92ac87..1a6e705 100644
+index 0ac70b9..a0c3d93 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
-@@ -148,6 +148,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
- pa_assert(!pa_hashmap_isempty(data->profiles));
-
- c = pa_xnew0(pa_card, 1);
-+ c->state = PA_CARD_STATE_INIT;
-
- if (!(name = pa_namereg_register(core, data->name, PA_NAMEREG_CARD, c, data->namereg_fail))) {
- pa_xfree(c);
-@@ -156,12 +157,6 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
-
- pa_card_new_data_set_name(data, name);
-
-- if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_NEW], data) < 0) {
-- pa_xfree(c);
-- pa_namereg_unregister(core, name);
-- return NULL;
-- }
--
- c->core = core;
- c->name = pa_xstrdup(data->name);
- c->proplist = pa_proplist_copy(data->proplist);
-@@ -184,38 +179,43 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
- PA_HASHMAP_FOREACH(port, c->ports, state)
- port->card = c;
+@@ -176,38 +176,56 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+ c->preferred_input_port = data->preferred_input_port;
+ c->preferred_output_port = data->preferred_output_port;
- if (data->active_profile)
- if ((c->active_profile = pa_hashmap_get(c->profiles, data->active_profile)))
@@ -252,50 +273,85 @@ index f92ac87..1a6e705 100644
- PA_HASHMAP_FOREACH(profile, c->profiles, state)
- if (!c->active_profile || profile->priority > c->active_profile->priority)
- c->active_profile = profile;
-- }
-- pa_assert(c->active_profile);
-+void pa_card_put(pa_card *card) {
++void pa_card_choose_initial_profile(pa_card *card) {
+ pa_card_profile *profile;
+ void *state;
++ pa_card_profile *best = NULL;
+
+ pa_assert(card);
+
++ /* By default, pick the highest priority profile that is not unavailable,
++ * or if all profiles are unavailable, pick the profile with the highest
++ * priority regardless of its availability. */
++
+ PA_HASHMAP_FOREACH(profile, card->profiles, state) {
+ if (profile->available == PA_AVAILABLE_NO)
+ continue;
+
-+ if (!card->active_profile || profile->priority > card->active_profile->priority)
-+ card->active_profile = profile;
++ if (!best || profile->priority > best->priority)
++ best = profile;
++ }
++
++ if (!best) {
++ PA_HASHMAP_FOREACH(profile, card->profiles, state) {
++ if (!best || profile->priority > best->priority)
++ best = profile;
+ }
+- pa_assert(c->active_profile);
}
++ pa_assert(best);
- pa_device_init_description(c->proplist, c);
- pa_device_init_icon(c->proplist, true);
- pa_device_init_intended_roles(c->proplist);
-+ /* If all profiles are unavailable, then we still need to pick one */
-+ if (!card->active_profile) {
-+ PA_HASHMAP_FOREACH(profile, card->profiles, state)
-+ if (!card->active_profile || profile->priority > card->active_profile->priority)
-+ card->active_profile = profile;
-+ }
-+ pa_assert(card->active_profile);
++ card->active_profile = best;
++ card->save_profile = false;
- pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0);
-+ pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_NEW], card);
++ /* Let policy modules override the default. */
++ pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_CHOOSE_INITIAL_PROFILE], card);
++}
- pa_log_info("Created %u \"%s\"", c->index, c->name);
- pa_subscription_post(core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, c->index);
-+ pa_assert_se(pa_idxset_put(card->core->cards, card, &card->index) >= 0);
-+ card->state = PA_CARD_STATE_LINKED;
++void pa_card_put(pa_card *card) {
++ pa_assert(card);
- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_PUT], c);
- return c;
++ pa_assert_se(pa_idxset_put(card->core->cards, card, &card->index) >= 0);
++ card->linked = true;
++
+ pa_log_info("Created %u \"%s\"", card->index, card->name);
+ pa_hook_fire(&card->core->hooks[PA_CORE_HOOK_CARD_PUT], card);
+ pa_subscription_post(card->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_NEW, card->index);
}
void pa_card_free(pa_card *c) {
-@@ -306,20 +306,27 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) {
+@@ -218,15 +236,15 @@ void pa_card_free(pa_card *c) {
+
+ core = c->core;
+
+- pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_UNLINK], c);
+-
+- pa_namereg_unregister(core, c->name);
+-
+- pa_idxset_remove_by_data(c->core->cards, c, NULL);
++ if (c->linked) {
++ pa_hook_fire(&core->hooks[PA_CORE_HOOK_CARD_UNLINK], c);
+
+- pa_log_info("Freed %u \"%s\"", c->index, c->name);
++ pa_idxset_remove_by_data(c->core->cards, c, NULL);
++ pa_log_info("Freed %u \"%s\"", c->index, c->name);
++ pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_REMOVE, c->index);
++ }
+
+- pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_REMOVE, c->index);
++ pa_namereg_unregister(core, c->name);
+
+ pa_assert(pa_idxset_isempty(c->sinks));
+ pa_idxset_free(c->sinks, NULL);
+@@ -298,20 +316,27 @@ int pa_card_set_profile(pa_card *c, pa_card_profile *profile, bool save) {
return 0;
}
@@ -307,7 +363,7 @@ index f92ac87..1a6e705 100644
+ * be probably good to change this so that also the initial profile can be
+ * set up in set_profile(), but if set_profile() fails, that would need
+ * some better handling than what we do here currently. */
-+ if (c->state != PA_CARD_STATE_INIT && (r = c->set_profile(c, profile)) < 0)
++ if (c->linked && (r = c->set_profile(c, profile)) < 0)
return r;
- pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE, c->index);
@@ -321,7 +377,7 @@ index f92ac87..1a6e705 100644
update_port_preferred_profile(c);
- pa_hook_fire(&c->core->hooks[PA_CORE_HOOK_CARD_PROFILE_CHANGED], c);
-+ if (c->state != PA_CARD_STATE_INIT) {
++ if (c->linked) {
+ pa_log_info("Changed profile of card %u \"%s\" to %s", c->index, c->name, profile->name);
+ pa_hook_fire(&c->core->hooks[PA_CORE_HOOK_CARD_PROFILE_CHANGED], c);
+ pa_subscription_post(c->core, PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE, c->index);
@@ -330,37 +386,44 @@ index f92ac87..1a6e705 100644
return 0;
}
diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
-index fff9057..a944301 100644
+index d4970e3..fd1fe0a 100644
--- a/src/pulsecore/card.h
+++ b/src/pulsecore/card.h
-@@ -34,6 +34,11 @@ typedef enum pa_available {
- PA_AVAILABLE_YES = 2,
- } pa_available_t;
-
-+typedef enum pa_card_state {
-+ PA_CARD_STATE_INIT,
-+ PA_CARD_STATE_LINKED,
-+} pa_card_state_t;
+@@ -86,6 +86,8 @@ struct pa_card {
+
+ pa_suspend_cause_t suspend_cause;
+
++ bool linked;
+
- struct pa_card_profile {
- pa_card *card;
- char *name;
-@@ -66,6 +71,7 @@ struct pa_card_profile {
-
- struct pa_card {
- uint32_t index;
-+ pa_card_state_t state;
- pa_core *core;
-
- char *name;
-@@ -120,6 +126,7 @@ void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile);
+ void *userdata;
+
+ int (*set_profile)(pa_card *c, pa_card_profile *profile);
+@@ -128,6 +130,13 @@ void pa_card_new_data_set_preferred_port(pa_card_new_data *data, pa_direction_t
void pa_card_new_data_done(pa_card_new_data *data);
pa_card *pa_card_new(pa_core *c, pa_card_new_data *data);
++
++/* Select the initial card profile according to the configured policies. This
++ * must be called between pa_card_new() and pa_card_put(), after the port and
++ * profile availablities have been initialized. */
++void pa_card_choose_initial_profile(pa_card *card);
++
+void pa_card_put(pa_card *c);
void pa_card_free(pa_card *c);
void pa_card_add_profile(pa_card *c, pa_card_profile *profile);
+diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h
+index 00d7f2f..802111b 100644
+--- a/src/pulsecore/core.h
++++ b/src/pulsecore/core.h
+@@ -118,6 +118,7 @@ typedef enum pa_core_hook {
+ PA_CORE_HOOK_CLIENT_PROPLIST_CHANGED,
+ PA_CORE_HOOK_CLIENT_SEND_EVENT,
+ PA_CORE_HOOK_CARD_NEW,
++ PA_CORE_HOOK_CARD_CHOOSE_INITIAL_PROFILE,
+ PA_CORE_HOOK_CARD_PUT,
+ PA_CORE_HOOK_CARD_UNLINK,
+ PA_CORE_HOOK_CARD_PREFERRED_PORT_CHANGED,
--
-2.7.0
+2.8.1
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
deleted file mode 100644
index e0efa70f3..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-alsa-set-availability-for-some-unavailable-profiles.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 690d567e298f6687b61c82660b051df5b25482ee Mon Sep 17 00:00:00 2001
-From: Tanu Kaskinen <tanuk@iki.fi>
-Date: Fri, 23 Oct 2015 13:37:11 +0300
-Subject: [PATCH 4/4] alsa: set availability for (some) unavailable profiles
-
-The alsa card hasn't so far set any availability for profiles. That
-caused an issue with some HDMI hardware: the sound card has two HDMI
-outputs, but only the second of them is actually usable. The
-unavailable port is marked as unavailable and the available port is
-marked as available, but this information isn't propagated to the
-profile availability. Without profile availability information, the
-initial profile policy picks the unavailable one, since it has a
-higher priority value.
-
-This patch adds simple logic for marking some profiles unavailable:
-if the profile only contains unavailable ports, the profile is
-unavailable too. This can be improved in the future so that if a
-profile contains sinks or sources that only contain unavailable ports,
-the profile should be marked as unavailable. Implementing that
-requires adding more information about the sinks and sources to
-pa_card_profile, however.
-
-BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-Rebased on 8.0.
-
-Upstream-Status: Denied [The patch set needs some work to be accepted.
-The review thread:
-http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/24301]
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
----
- src/modules/alsa/module-alsa-card.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
-index fe240f0..bdbdc12 100644
---- a/src/modules/alsa/module-alsa-card.c
-+++ b/src/modules/alsa/module-alsa-card.c
-@@ -366,6 +366,8 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
- void *state;
- pa_alsa_jack *jack;
- struct temp_port_avail *tp, *tports;
-+ pa_device_port *port;
-+ pa_card_profile *profile;
-
- pa_assert(u);
-
-@@ -412,6 +414,29 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
- pa_device_port_set_available(tp->port, tp->avail);
-
- pa_xfree(tports);
-+
-+ /* Update profile availabilities. The logic could be improved; for now we
-+ * only set obviously unavailable profiles (those that contain only
-+ * unavailable ports) to PA_AVAILABLE_NO and all others to
-+ * PA_AVAILABLE_UNKNOWN. */
-+ PA_HASHMAP_FOREACH(profile, u->card->profiles, state) {
-+ void *state2;
-+ pa_available_t available = PA_AVAILABLE_NO;
-+
-+ /* Don't touch the "off" profile. */
-+ if (pa_hashmap_size(profile->ports) == 0)
-+ continue;
-+
-+ PA_HASHMAP_FOREACH(port, profile->ports, state2) {
-+ if (port->available != PA_AVAILABLE_NO) {
-+ available = PA_AVAILABLE_UNKNOWN;
-+ break;
-+ }
-+ }
-+
-+ pa_card_profile_set_available(profile, available);
-+ }
-+
- return 0;
- }
-
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch
new file mode 100644
index 000000000..480f2cea4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0004-card-remove-pa_card_new_data.active_profile.patch
@@ -0,0 +1,72 @@
+From 375bc56fd3d66f40a9650224e5bfea4002494ade Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Fri, 23 Oct 2015 13:50:35 +0300
+Subject: [PATCH 4/5] card: remove pa_card_new_data.active_profile
+
+It's not being used any more.
+
+Upstream-Status: Accepted [expected in 10.0]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/pulsecore/card.c | 8 --------
+ src/pulsecore/card.h | 5 -----
+ 2 files changed, 13 deletions(-)
+
+diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
+index a0c3d93..bc5b75b 100644
+--- a/src/pulsecore/card.c
++++ b/src/pulsecore/card.c
+@@ -96,13 +96,6 @@ void pa_card_new_data_set_name(pa_card_new_data *data, const char *name) {
+ data->name = pa_xstrdup(name);
+ }
+
+-void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile) {
+- pa_assert(data);
+-
+- pa_xfree(data->active_profile);
+- data->active_profile = pa_xstrdup(profile);
+-}
+-
+ void pa_card_new_data_set_preferred_port(pa_card_new_data *data, pa_direction_t direction, pa_device_port *port) {
+ pa_assert(data);
+
+@@ -125,7 +118,6 @@ void pa_card_new_data_done(pa_card_new_data *data) {
+ pa_hashmap_free(data->ports);
+
+ pa_xfree(data->name);
+- pa_xfree(data->active_profile);
+ }
+
+ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
+diff --git a/src/pulsecore/card.h b/src/pulsecore/card.h
+index fd1fe0a..5699475 100644
+--- a/src/pulsecore/card.h
++++ b/src/pulsecore/card.h
+@@ -101,15 +101,11 @@ typedef struct pa_card_new_data {
+ pa_module *module;
+
+ pa_hashmap *profiles;
+- char *active_profile;
+-
+ pa_hashmap *ports;
+ pa_device_port *preferred_input_port;
+ pa_device_port *preferred_output_port;
+
+ bool namereg_fail:1;
+-
+- bool save_profile:1;
+ } pa_card_new_data;
+
+ typedef struct {
+@@ -125,7 +121,6 @@ void pa_card_profile_set_available(pa_card_profile *c, pa_available_t available)
+
+ pa_card_new_data *pa_card_new_data_init(pa_card_new_data *data);
+ void pa_card_new_data_set_name(pa_card_new_data *data, const char *name);
+-void pa_card_new_data_set_profile(pa_card_new_data *data, const char *profile);
+ void pa_card_new_data_set_preferred_port(pa_card_new_data *data, pa_direction_t direction, pa_device_port *port);
+ void pa_card_new_data_done(pa_card_new_data *data);
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch
new file mode 100644
index 000000000..5563d2c35
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0005-alsa-set-availability-for-some-unavailable-profiles.patch
@@ -0,0 +1,79 @@
+From ae6a01ba204b480bda6a5b4431be3d22e53a7006 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Fri, 23 Oct 2015 13:37:11 +0300
+Subject: [PATCH 5/5] alsa: set availability for (some) unavailable profiles
+
+The alsa card hasn't so far set any availability for profiles. That
+caused an issue with some HDMI hardware: the sound card has two HDMI
+outputs, but only the second of them is actually usable. The
+unavailable port is marked as unavailable and the available port is
+marked as available, but this information isn't propagated to the
+profile availability. Without profile availability information, the
+initial profile policy picks the unavailable one, since it has a
+higher priority value.
+
+This patch adds simple logic for marking some profiles unavailable:
+if the profile only contains unavailable ports, the profile is
+unavailable too. This can be improved in the future so that if a
+profile contains sinks or sources that only contain unavailable ports,
+the profile should be marked as unavailable. Implementing that
+requires adding more information about the sinks and sources to
+pa_card_profile, however.
+
+BugLink: https://bugzilla.yoctoproject.org/show_bug.cgi?id=8448
+
+Upstream-Status: Accepted [expected in 10.0]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/modules/alsa/module-alsa-card.c | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c
+index 1976230..323e08a 100644
+--- a/src/modules/alsa/module-alsa-card.c
++++ b/src/modules/alsa/module-alsa-card.c
+@@ -366,6 +366,7 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
+ void *state;
+ pa_alsa_jack *jack;
+ struct temp_port_avail *tp, *tports;
++ pa_card_profile *profile;
+
+ pa_assert(u);
+
+@@ -426,6 +427,32 @@ static int report_jack_state(snd_mixer_elem_t *melem, unsigned int mask) {
+ if (tp->avail == PA_AVAILABLE_NO)
+ pa_device_port_set_available(tp->port, tp->avail);
+
++ /* Update profile availabilities. The logic could be improved; for now we
++ * only set obviously unavailable profiles (those that contain only
++ * unavailable ports) to PA_AVAILABLE_NO and all others to
++ * PA_AVAILABLE_UNKNOWN. */
++ PA_HASHMAP_FOREACH(profile, u->card->profiles, state) {
++ pa_device_port *port;
++ void *state2;
++ pa_available_t available = PA_AVAILABLE_NO;
++
++ /* Don't touch the "off" profile. */
++ if (profile->n_sources == 0 && profile->n_sinks == 0)
++ continue;
++
++ PA_HASHMAP_FOREACH(port, u->card->ports, state2) {
++ if (!pa_hashmap_get(port->profiles, profile->name))
++ continue;
++
++ if (port->available != PA_AVAILABLE_NO) {
++ available = PA_AVAILABLE_UNKNOWN;
++ break;
++ }
++ }
++
++ pa_card_profile_set_available(profile, available);
++ }
++
+ pa_xfree(tports);
+ return 0;
+ }
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
deleted file mode 100644
index b01ba8f68..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_8.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require pulseaudio.inc
-
-SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
- file://0001-padsp-Make-it-compile-on-musl.patch \
- file://0001-client-conf-Add-allow-autospawn-for-root.patch \
- file://volatiles.04_pulse \
- file://0001-card-add-pa_card_profile.ports.patch \
- file://0002-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \
- file://0003-card-move-profile-selection-after-pa_card_new.patch \
- file://0004-alsa-set-availability-for-some-unavailable-profiles.patch \
- file://0001-Revert-module-switch-on-port-available-Route-to-pref.patch \
-"
-SRC_URI[md5sum] = "8678442ba0bb4b4c33ac6f62542962df"
-SRC_URI[sha256sum] = "690eefe28633466cfd1ab9d85ebfa9376f6b622deec6bfee5091ac9737cd1989"
-
-do_compile_prepend() {
- mkdir -p ${S}/libltdl
- cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
-}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb
new file mode 100644
index 000000000..00f5442b8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/pulseaudio/pulseaudio_9.0.bb
@@ -0,0 +1,19 @@
+require pulseaudio.inc
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
+ file://0001-padsp-Make-it-compile-on-musl.patch \
+ file://0001-client-conf-Add-allow-autospawn-for-root.patch \
+ file://0001-alsa-bluetooth-fail-if-user-requested-profile-doesn-.patch \
+ file://0002-card-don-t-allow-the-CARD_NEW-hook-to-fail.patch \
+ file://0003-card-move-profile-selection-after-pa_card_new.patch \
+ file://0004-card-remove-pa_card_new_data.active_profile.patch \
+ file://0005-alsa-set-availability-for-some-unavailable-profiles.patch \
+ file://volatiles.04_pulse \
+"
+SRC_URI[md5sum] = "da7162541b3a9bc20576dbd0d7d1489a"
+SRC_URI[sha256sum] = "c3d3d66b827f18fbe903fe3df647013f09fc1e2191c035be1ee2d82a9e404686"
+
+do_compile_prepend() {
+ mkdir -p ${S}/libltdl
+ cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
+}
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb b/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb
deleted file mode 100644
index c89adac5d..000000000
--- a/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "WebP is an image format designed for the Web"
-DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \
- used on a large variety of photographic, translucent and \
- graphical images found on the web. The degree of lossy \
- compression is adjustable so a user can choose the trade-off \
- between file size and image quality. WebP typically achieves \
- an average of 30% more compression than JPEG and JPEG 2000, \
- without loss of image quality."
-HOMEPAGE = "https://developers.google.com/speed/webp/"
-SECTION = "libs"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
- file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
-
-SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
-SRC_URI[md5sum] = "ba81eb9bf23e3c69a2f5cc8dcdb5938f"
-SRC_URI[sha256sum] = "5cd3bb7b623aff1f4e70bd611dc8dbabbf7688fd5eb225b32e02e09e37dfb274"
-
-UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
-
-EXTRA_OECONF = " \
- --disable-experimental \
- --disable-wic \
- --enable-libwebpmux \
- --enable-libwebpdemux \
- --enable-threading \
-"
-
-inherit autotools lib_package
-
-PACKAGECONFIG ??= ""
-
-# libwebpdecoder is a subset of libwebp, don't build it unless requested
-PACKAGECONFIG[decoder] = "--enable-libwebpdecoder,--disable-libwebpdecoder"
-
-# Apply for examples programs: cwebp and dwebp
-PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[png] = "--enable-png,--disable-png,,libpng"
-PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
-
-# Apply only for example program vwebp
-PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut"
-
-PACKAGES =+ "${PN}-gif2webp"
-
-DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP"
-FILES_${PN}-gif2webp = "${bindir}/gif2webp"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.1.bb b/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.1.bb
new file mode 100644
index 000000000..b882db75b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/webp/libwebp_0.5.1.bb
@@ -0,0 +1,54 @@
+SUMMARY = "WebP is an image format designed for the Web"
+DESCRIPTION = "WebP is a method of lossy and lossless compression that can be \
+ used on a large variety of photographic, translucent and \
+ graphical images found on the web. The degree of lossy \
+ compression is adjustable so a user can choose the trade-off \
+ between file size and image quality. WebP typically achieves \
+ an average of 30% more compression than JPEG and JPEG 2000, \
+ without loss of image quality."
+HOMEPAGE = "https://developers.google.com/speed/webp/"
+SECTION = "libs"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6e8dee932c26f2dab503abf70c96d8bb \
+ file://PATENTS;md5=c6926d0cb07d296f886ab6e0cc5a85b7"
+
+SRC_URI = "http://downloads.webmproject.org/releases/webp/${BP}.tar.gz"
+SRC_URI[md5sum] = "3d7db92ebba5b4f679413d25c6040881"
+SRC_URI[sha256sum] = "6ad66c6fcd60a023de20b6856b03da8c7d347269d76b1fd9c3287e8b5e8813df"
+
+UPSTREAM_CHECK_URI = "http://downloads.webmproject.org/releases/webp/index.html"
+
+EXTRA_OECONF = " \
+ --disable-experimental \
+ --disable-wic \
+ --enable-libwebpmux \
+ --enable-libwebpdemux \
+ --enable-threading \
+"
+# Do not trust configure to determine if neon is available.
+#
+EXTRA_OECONF_append_arm = " \
+ ${@bb.utils.contains("TUNE_FEATURES","neon","--enable-neon","--disable-neon",d)} \
+"
+
+inherit autotools lib_package
+
+PACKAGECONFIG ??= ""
+
+# libwebpdecoder is a subset of libwebp, don't build it unless requested
+PACKAGECONFIG[decoder] = "--enable-libwebpdecoder,--disable-libwebpdecoder"
+
+# Apply for examples programs: cwebp and dwebp
+PACKAGECONFIG[gif] = "--enable-gif,--disable-gif,giflib"
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
+PACKAGECONFIG[png] = "--enable-png,--disable-png,,libpng"
+PACKAGECONFIG[tiff] = "--enable-tiff,--disable-tiff,tiff"
+
+# Apply only for example program vwebp
+PACKAGECONFIG[gl] = "--enable-gl,--disable-gl,mesa-glut"
+
+PACKAGES =+ "${PN}-gif2webp"
+
+DESCRIPTION_${PN}-gif2webp = "Simple tool to convert animated GIFs to WebP"
+FILES_${PN}-gif2webp = "${bindir}/gif2webp"
diff --git a/import-layers/yocto-poky/meta/recipes-multimedia/x264/x264_git.bb b/import-layers/yocto-poky/meta/recipes-multimedia/x264/x264_git.bb
index 0a6990980..393310f68 100644
--- a/import-layers/yocto-poky/meta/recipes-multimedia/x264/x264_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-multimedia/x264/x264_git.bb
@@ -42,14 +42,12 @@ do_configure() {
./configure ${EXTRA_OECONF}
}
-# Get rid of -e
-EXTRA_OEMAKE = ""
AS = "${TARGET_PREFIX}gcc"
do_install() {
oe_runmake install DESTDIR=${D}
}
-# PIC can't be enabled for 32-bit x86
-INSANE_SKIP_${PN}_append_x86 = " textrel"
+# PIC can't be enabled for few BSP's
+INSANE_SKIP_${PN}_append = " textrel"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt-sdk.bb b/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt-sdk.bb
index db7d58183..7ddf671bc 100644
--- a/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt-sdk.bb
+++ b/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt-sdk.bb
@@ -1,5 +1,13 @@
require recipes-core/images/core-image-minimal.bb
+# Skip processing of this recipe if linux-yocto-rt is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
DESCRIPTION = "Small image capable of booting a device with a test suite and \
tools for real-time use. It includes the full meta-toolchain, development \
headers and libraries to form a standalone SDK."
diff --git a/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt.bb b/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt.bb
index cab6f8b74..9c86f2533 100644
--- a/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt.bb
+++ b/import-layers/yocto-poky/meta/recipes-rt/images/core-image-rt.bb
@@ -1,5 +1,13 @@
require recipes-core/images/core-image-minimal.bb
+# Skip processing of this recipe if linux-yocto-rt is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers.
+python () {
+ if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt":
+ raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
DESCRIPTION = "A small image just capable of allowing a device to boot plus a \
real-time test suite and tools appropriate for real-time use."
DEPENDS = "linux-yocto-rt"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Set-CC-AR-variable-only-if-it-doesn-t-have-.patch b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Set-CC-AR-variable-only-if-it-doesn-t-have-.patch
deleted file mode 100644
index 00fcc7d72..000000000
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Set-CC-AR-variable-only-if-it-doesn-t-have-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 9640dde4241e1314b8e8ea35b0c8dab0b30ae51f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 3 Jan 2016 10:50:56 -0800
-Subject: [PATCH] Makefile: Set CC/AR variable only if it doesn't have a value
-
-This helps it compile with clang or any other compilers besides gcc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 1e4b7d1..2c2d396 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 0.96
--CC=$(CROSS_COMPILE)gcc
--AR=$(CROSS_COMPILE)ar
-+CC?=$(CROSS_COMPILE)gcc
-+AR?=$(CROSS_COMPILE)ar
-
- OBJDIR = bld
-
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/rt_bmark.py b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/rt_bmark.py
index e2280e43e..080a65589 100755
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/rt_bmark.py
+++ b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/rt_bmark.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: BSD-3-Clause
@@ -106,8 +106,8 @@ def tc_name(sub_name):
def log(*msg):
tmp = "".join(map(str, msg)) # 'map(str, ...' allows numbers
- for line in tmp.split("\n"):
- print "#", line
+ for line in tmp.splitlines():
+ print("#", line)
#-------------------------------------------------------------------------------
# Like log(), but with a timestamp added
@@ -265,7 +265,7 @@ cmd = ("cyclictest",
"-d", str(interval_delta),
"-l", str(loop_count)
)
-rex = re.compile("C:\s*(\d+).*Min:\s*(\d+).*Avg:\s*(\d+).*Max:\s*(\d+)")
+rex = re.compile(b"C:\s*(\d+).*Min:\s*(\d+).*Avg:\s*(\d+).*Max:\s*(\d+)")
def run_cyclictest_once():
res = subprocess.check_output(cmd)
@@ -283,7 +283,7 @@ def run_cyclictest_once():
avg_sum = 0
avg_cnt = 0
- for line in res.split("\n"):
+ for line in res.splitlines():
m = rex.search(line)
if m is not None:
minlist.append(int(m.group(2)))
@@ -324,7 +324,7 @@ def run_cyclictest_suite():
t = time.time()
max_list = []
- for i in xrange(0, suite_size):
+ for i in range(0, suite_size):
tmp_min, tmp_avg, tmp_max = run_cyclictest_once()
msg = "%2d/%2d:" % (i+1, suite_size)
@@ -376,11 +376,11 @@ class cyclictest_runner:
log()
log("PASS")
- print
- print tc_name(name), "[Min/us,Avg/us,Max/us]:",
- print "%d,%.1f,%d" % (bm_min,bm_avg, bm_max)
- print "PASS:", tc_name(name)
- print
+ print()
+ print(tc_name(name), "[Min/us,Avg/us,Max/us]:",)
+ print("%d,%.1f,%d" % (bm_min,bm_avg, bm_max))
+ print("PASS:", tc_name(name))
+ print()
except Exception:
log()
@@ -391,9 +391,9 @@ class cyclictest_runner:
log("WD: ", os.getcwd())
log()
log("FAIL")
- print
- print "FAIL:", tc_name(name)
- print
+ print()
+ print("FAIL:", tc_name(name))
+ print()
#-------------------------------------------------------------------------------
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/run-ptest b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/run-ptest
index 8e6d3e358..b7c5e29f2 100644
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/files/run-ptest
@@ -1,3 +1,3 @@
#!/bin/sh
-python ./rt_bmark.py
+python3 ./rt_bmark.py
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_0.96.bb b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_0.96.bb
deleted file mode 100644
index 962069e3d..000000000
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_0.96.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Hardware latency detector"
-DESCRIPTION = "Python utility for controlling the kernel hardware latency detection module (hwlat_detector.ko)."
-HOMEPAGE = "https://rt.wiki.kernel.org/index.php/Cyclictest"
-SECTION = "tests"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-require rt-tests.inc
-
-EXTRA_OEMAKE += "PYLIB=${libdir}/python${PYTHON_BASEVERSION}/dist-packages"
-
-do_compile() {
- oe_runmake hwlatdetect
-}
-
-do_install() {
- oe_runmake install_hwlatdetect DESTDIR=${D} SBINDIR=${sbindir} \
- MANDIR=${mandir} INCLUDEDIR=${includedir}
-}
-
-FILES_${PN} += "${libdir}/python${PYTHON_BASEVERSION}/dist-packages/hwlatdetect.py"
-RDEPENDS_${PN} = "python python-subprocess python-textutils"
-RRECOMMENDS_${PN} = "kernel-module-hwlat-detector"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_2.0.bb b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_2.0.bb
new file mode 100644
index 000000000..012b2dd0a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/hwlatdetect_2.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Hardware latency detector"
+DESCRIPTION = "Python utility for controlling the kernel hardware latency detection module (hwlat_detector.ko)."
+HOMEPAGE = "https://rt.wiki.kernel.org/index.php/Cyclictest"
+SECTION = "tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+require rt-tests.inc
+inherit python3-dir
+
+EXTRA_OEMAKE += "PYLIB=${libdir}/python${PYTHON_BASEVERSION}/dist-packages"
+
+do_compile() {
+ oe_runmake hwlatdetect
+}
+
+do_install() {
+ oe_runmake install_hwlatdetect DESTDIR=${D} SBINDIR=${sbindir} \
+ MANDIR=${mandir} INCLUDEDIR=${includedir}
+
+ sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${libdir}/python${PYTHON_BASEVERSION}/dist-packages/hwlatdetect.py
+}
+
+FILES_${PN} += "${libdir}/python${PYTHON_BASEVERSION}/dist-packages/hwlatdetect.py"
+RDEPENDS_${PN} = "python3 python3-subprocess python3-textutils"
+RRECOMMENDS_${PN} = "kernel-module-hwlat-detector"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests.inc b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 76f9b3a34..d832828e9 100644
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,13 +1,9 @@
# Version v0.96
-PV = "0.96"
-SRCREV = "24f8c0175e04bab78e7555698e34d7002b01c87f"
+SRCREV = "e1b1537a20b35af75a49bf55dcf70296f8a62467"
SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git"
S = "${WORKDIR}/git"
-# need to append rt-tests' default CFLAGS to ours
-CFLAGS += "-I${S}/src/include -D_GNU_SOURCE -Wall -Wno-nonnull"
-
# calling 'uname -m' is broken on crossbuilds
EXTRA_OEMAKE = "NUMA=0"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_0.96.bb b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_0.96.bb
deleted file mode 100644
index 2f96fea9b..000000000
--- a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_0.96.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Real-Time preemption testcases"
-HOMEPAGE = "https://rt.wiki.kernel.org/index.php/Cyclictest"
-SECTION = "tests"
-DEPENDS = "linux-libc-headers virtual/libc"
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://src/cyclictest/cyclictest.c;beginline=7;endline=9;md5=e768b8da44555fe63f65e5c497844cb5 \
- file://src/pi_tests/pi_stress.c;beginline=6;endline=19;md5=bd426a634a43ec612e9fbf125dfcc949"
-
-require rt-tests.inc
-inherit ptest
-
-SRC_URI += "file://0001-Makefile-Set-CC-AR-variable-only-if-it-doesn-t-have-.patch \
- file://run-ptest \
- file://rt_bmark.py \
- "
-# Do not install hwlatdetect
-EXTRA_OEMAKE += "PYLIB='' CROSS_COMPILE=${TARGET_PREFIX}"
-
-CFLAGS_prepend = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
-
-do_install() {
- oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
- INCLUDEDIR=${includedir}
-}
-
-do_install_ptest() {
- cp ${WORKDIR}/rt_bmark.py ${D}${PTEST_PATH}
-}
-
-RDEPENDS_${PN}-ptest += " stress python python-subprocess python-multiprocessing python-datetime python-re python-lang"
-
-FILES_${PN} += "${prefix}/src/backfire"
diff --git a/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_2.0.bb b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_2.0.bb
new file mode 100644
index 000000000..4336c50d6
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-rt/rt-tests/rt-tests_2.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Real-Time preemption testcases"
+HOMEPAGE = "https://rt.wiki.kernel.org/index.php/Cyclictest"
+SECTION = "tests"
+DEPENDS = "linux-libc-headers virtual/libc"
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://src/cyclictest/cyclictest.c;beginline=7;endline=9;md5=e768b8da44555fe63f65e5c497844cb5 \
+ file://src/pi_tests/pi_stress.c;beginline=6;endline=19;md5=bd426a634a43ec612e9fbf125dfcc949"
+
+require rt-tests.inc
+inherit ptest
+
+SRC_URI += " \
+ file://run-ptest \
+ file://rt_bmark.py \
+ "
+# Do not install hwlatdetect
+EXTRA_OEMAKE += "PYLIB=''"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
+ INCLUDEDIR=${includedir}
+}
+
+do_install_ptest() {
+ cp ${WORKDIR}/rt_bmark.py ${D}${PTEST_PATH}
+}
+
+RDEPENDS_${PN}-ptest += " stress python3 python3-subprocess python3-multiprocessing python3-datetime python3-re python3-lang python3-misc"
+
+FILES_${PN} += "${prefix}/src/backfire"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc b/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
deleted file mode 100644
index 93538ed01..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Sato theme engine for GTK+"
-HOMEPAGE = "http://www.o-hand.com"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "LGPLv2.1 & LGPLv2+"
-
-SECTION = "x11/base"
-DEPENDS = "gtk+"
-RDEPENDS_gtk-theme-sato = "gtk-sato-engine"
-
-inherit distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-PACKAGES += "gtk-theme-sato"
-FILES_${PN} = "${libdir}/gtk-2.0/*/engines/*.so "
-FILES_${PN}-dev = "${libdir}/gtk-2.0/*/engines/*.la"
-FILES_gtk-theme-sato = "${datadir}/icons ${datadir}/themes"
-
-inherit autotools-brokensep pkgconfig
-
-do_configure_prepend() {
- for i in `ls gtk-common`; do
- ln -sf ../gtk-common/$i gtk2-engine/$i
- done
-}
diff --git a/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb b/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb
deleted file mode 100644
index da4d98ad4..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/gtk-engines/gtk-sato-engine_git.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require gtk-sato-engine.inc
-
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/sato-utils.h;endline=24;md5=708f28cfe7fe028d497aaf4389b80b62 \
- file://src/sato-main.c;endline=24;md5=b5e5dddebca570275becb51b526e4c5a"
-
-SRCREV = "4740ad8d53aba4368ce3e03b06cfdc69eb86dcdc"
-PV = "0.3.3+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'qvga', '--with-mode=qvga', '',d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/l3afpad/l3afpad_git.bb b/import-layers/yocto-poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
new file mode 100644
index 000000000..ccfda2658
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/l3afpad/l3afpad_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Simple GTK+ Text Editor"
+HOMEPAGE = "https://github.com/stevenhoneyman/l3afpad"
+
+# Note that COPYING seems to mistakenly contain LGPLv2.1.
+# The source code is marked GPLv2+ and COPYING used to contain
+# that as well.
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://src/l3afpad.h;endline=20;md5=8848fd645cd45115d8cb47ca5c42a50e \
+ file://src/utils.c;endline=20;md5=ae4792f69d3bb7b7ba91d582ba9b1a05"
+
+DEPENDS = "gtk+3 intltool-native gettext-native"
+
+PV = "0.8.18.1.11+git${SRCPV}"
+SRC_URI = "git://github.com/stevenhoneyman/l3afpad.git"
+SRCREV ="3cdccdc9505643e50f8208171d9eee5de11a42ff"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+EXTRA_OECONF = "--disable-emacs --disable-print"
+FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/leafpad.desktop b/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/leafpad.desktop
deleted file mode 100644
index c7e2d5bb5..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/leafpad.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Name=Notes
-Exec=/usr/bin/leafpad
-Comment=Text Editor
-Icon=accessories-text-editor
-Terminal=false
-Type=Application
-Categories=GTK;Utility;TextEditor;
-X-MB-SingleInstance=true
-StartupNotify=true
diff --git a/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/owl-menu.patch b/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/owl-menu.patch
deleted file mode 100644
index 2ebf74a6f..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/leafpad/files/owl-menu.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Upstream-Status: Inappropriate [enable feature]
-
---- tmp/src/menu.c.orig 2007-04-23 12:08:41.000000000 +0100
-+++ tmp/src/menu.c 2007-04-23 12:08:41.000000000 +0100
-@@ -152,7 +152,7 @@
- }
-
- accel_group = gtk_accel_group_new();
-- ifactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "<main>", accel_group);
-+ ifactory = gtk_item_factory_new(GTK_TYPE_MENU, "<main>", accel_group);
- gtk_item_factory_set_translate_func(ifactory, menu_translate, NULL, NULL);
- gtk_item_factory_create_items(ifactory, nmenu_items, menu_items, NULL);
- gtk_window_add_accel_group(GTK_WINDOW(window), accel_group);
-
---- tmp/src/window.c.orig 2007-04-23 12:14:07.000000000 +0100
-+++ tmp/src/window.c 2007-04-23 12:14:07.000000000 +0100
-@@ -18,6 +18,8 @@
- */
-
- #include "leafpad.h"
-+#include <libowl/owlwindowmenu.h>
-+
- /*
- static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view)
- {
-@@ -52,7 +54,6 @@
- gtk_container_add(GTK_CONTAINER(window), vbox);
-
- menubar = create_menu_bar(window);
-- gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
-
- sw = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
-
---- tmp/src/main.c.orig 2007-04-23 12:15:03.000000000 +0100
-+++ tmp/src/main.c 2007-04-23 12:15:03.000000000 +0100
-@@ -244,6 +244,7 @@
- Conf *conf;
- GtkItemFactory *ifactory;
- gchar *stdin_data = NULL;
-+ GtkWidget *menu;
-
- bindtextdomain(PACKAGE, LOCALEDIR);
- bind_textdomain_codeset(PACKAGE, "UTF-8");
-@@ -293,7 +294,10 @@
- conf->autoindent);
-
- gtk_widget_show_all(pub->mw->window);
-+ owl_set_window_menu (GTK_WINDOW(pub->mw->window),
-+ GTK_MENU(pub->mw->menubar));
-+
- g_free(conf->fontname);
- g_free(conf);
-
-
---- tmp/src/Makefile.am.orig 2007-04-23 12:17:54.000000000 +0100
-+++ tmp/src/Makefile.am 2007-04-23 12:17:54.000000000 +0100
-@@ -27,4 +27,4 @@
- i18n.h
-
- leafpad_CFLAGS = $(GTK_CFLAGS) $(GNOMEPRINT_CFLAGS)
--leafpad_LDADD = $(GTK_LIBS) $(INTLLIBS) $(GNOMEPRINT_LIBS)
-+leafpad_LDADD = $(GTK_LIBS) $(INTLLIBS) $(GNOMEPRINT_LIBS) -lowl
diff --git a/import-layers/yocto-poky/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb b/import-layers/yocto-poky/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb
deleted file mode 100644
index 093b89f77..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/leafpad/leafpad_0.8.18.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Simple GTK+ Text Editor"
-HOMEPAGE = "http://tarot.freeshell.org/leafpad/"
-
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://src/leafpad.h;endline=20;md5=d3d6a89f5e61e8b13bdea537511ba1fa \
- file://src/utils.c;endline=20;md5=0d2cc6584ba3202448bb274f62739571"
-
-DEPENDS = "gtk+ intltool-native libowl gettext-native"
-# The libowl requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://leafpad.desktop"
-
-SRC_URI[md5sum] = "254a72fc67505e3aa52884c729cd7b97"
-SRC_URI[sha256sum] = "959d22ae07f22803bc66ff40d373a854532a6e4732680bf8a96a3fbcb9f80a2c"
-PR = "r2"
-
-SRC_URI_append_poky = " file://owl-menu.patch;apply=yes "
-
-inherit autotools pkgconfig distro_features_check
-
-EXTRA_OECONF = " --enable-chooser --disable-emacs --disable-print"
-
-do_install_append () {
- install -d ${D}/${datadir}
- install -d ${D}/${datadir}/applications
- install -m 0644 ${WORKDIR}/leafpad.desktop ${D}/${datadir}/applications
-}
-
-FILES_${PN} += "${datadir}/applications/leafpad.desktop"
-
-PACKAGES += "leafpad-stock-icons"
-FILES_leafpad-stock-icons = "${datadir}/icons/hicolor/"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/libowl/libowl_git.bb b/import-layers/yocto-poky/meta/recipes-sato/libowl/libowl_git.bb
deleted file mode 100644
index 9cc47dbd5..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/libowl/libowl_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "OpenedHand Widget Library"
-HOMEPAGE = "http://www.o-hand.com"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://libowl/owlpaned.h;endline=20;md5=7fef844c4cc01b10541a7ab6ab5971af \
- file://libowl/owltreemodelslice.h;endline=20;md5=a5421f2cdae8debe5e4c48c09a02beb9 \
- file://libowl/owlcolourswatch.h;endline=24;md5=063c415c58719d536990ca8f606b5730"
-
-SECTION = "libs"
-DEPENDS = "gtk+"
-SRCREV = "6ebc8ac8f8575278dd40a535cadefa26374e44b1"
-PV = "0.1+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-
-# Requires gdk/gdkx.h which is provided by gtk when x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch b/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch
index 825694962..1cb184fb4 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/files/no-handed.patch
@@ -1,10 +1,13 @@
Upstream-Status: Inappropriate [configuration]
+---
+ appearance/mb-appearance.c | 4 ++++
+ 1 file changed, 4 insertions(+)
-Index: appearance/mb-appearance.c
-===================================================================
---- appearance/mb-appearance.c (revision 1614)
-+++ appearance/mb-appearance.c (working copy)
-@@ -300,11 +300,13 @@
+diff --git a/appearance/mb-appearance.c b/appearance/mb-appearance.c
+index 6af8376..71fd57b 100644
+--- a/appearance/mb-appearance.c
++++ b/appearance/mb-appearance.c
+@@ -317,11 +317,13 @@ on_gconf_value_changed (GConfClient* client, const gchar* key, GConfValue* value
gtk_font_button_set_font_name (GTK_FONT_BUTTON (font_button),
gconf_value_get_string (value));
} else if (strcmp (key, HANDED_KEY) == 0) {
@@ -18,18 +21,19 @@ Index: appearance/mb-appearance.c
}
}
-@@ -395,12 +397,13 @@
- gtk_container_add (GTK_CONTAINER (align), font_button);
+@@ -408,10 +410,12 @@ main (int argc, char **argv) {
/* Left/Right Handed */
--
+
+#if 0
- frame = new_frame (_("Orientation"), &align);
- gtk_box_pack_start (GTK_BOX (box), frame, TRUE, TRUE, 0);
handed_check = gtk_check_button_new_with_mnemonic (_("_Left-handed"));
+ frame = new_frame (_("Orientation"),handed_check);
+ gtk_box_pack_start (GTK_BOX (box), frame, TRUE, TRUE, 0);
g_signal_connect (handed_check, "toggled", G_CALLBACK (on_handed_set), NULL);
- gtk_container_add (GTK_CONTAINER (align), handed_check);
+#endif
gconf_client_add_dir (gconf, INTERFACE_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
g_signal_connect (gconf, "value-changed", G_CALLBACK (on_gconf_value_changed), NULL);
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
new file mode 100644
index 000000000..b993a9454
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_0.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Matchbox GTK+ theme configuration application"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://appearance/mb-appearance.c;endline=25;md5=ea92333cf8a6802639d62d874c114a28"
+
+DEPENDS = "gconf gtk+3"
+RDEPENDS_${PN} = "settings-daemon"
+
+# SRCREV tagged 0.2
+SRCREV = "ef2192ce98d9374ffdad5f78544c3f8f353c16aa"
+SRC_URI = "git://git.yoctoproject.org/${BPN} \
+ file://no-handed.patch"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+# The settings-daemon requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb
deleted file mode 100644
index 5f73a4c48..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-config-gtk/matchbox-config-gtk_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Matchbox GTK+ theme configuration application"
-HOMEPAGE = "http://matchbox-project.org"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://appearance/mb-appearance.c;endline=25;md5=ea92333cf8a6802639d62d874c114a28"
-
-DEPENDS = "gconf gtk+"
-RDEPENDS_${PN} = "settings-daemon"
-
-SRCREV = "3ed74dfb7c57be088a5ab36e446c0ccde9fa1028"
-PV = "0.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN} \
- file://no-handed.patch;striplevel=0"
-
-inherit autotools pkgconfig distro_features_check
-
-# The settings-daemon requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb
deleted file mode 100644
index 1979cbb76..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop-sato/matchbox-desktop-sato_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Matchbox desktop folders for the Sato environment"
-HOMEPAGE = "http://matchbox-project.org"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-SECTION = "x11"
-DEPENDS = ""
-RCONFLICTS_${PN} = "matchbox-common"
-
-SRCREV = "810b0b08eb79e4685202da2ec347b990bb467e07"
-PV = "0.1+git${SRCPV}"
-PR = "r1"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-FILES_${PN} += "${datadir}"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/0001-Do-nothing-on-delete-event-when-not-STANDALONE.patch b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/0001-Do-nothing-on-delete-event-when-not-STANDALONE.patch
deleted file mode 100644
index 46397dc8a..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/0001-Do-nothing-on-delete-event-when-not-STANDALONE.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 5fe37ef38500f858a22ecdf9bf69bf06e213bf68 Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Tue, 22 Mar 2016 12:41:35 +0200
-Subject: [PATCH] Do nothing on delete-event when not STANDALONE
-
-This prevents an opportunistic alt-F4 from closing the desktop.
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-
-Upstream-Status: Backport
----
- src/desktop.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/src/desktop.c b/src/desktop.c
-index d4fc2fb..94b4ddf 100644
---- a/src/desktop.c
-+++ b/src/desktop.c
-@@ -122,6 +122,15 @@ load_items (TakuMenu *menu)
-
- }
-
-+#ifndef STANDALONE
-+static gboolean
-+delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data)
-+{
-+ /* prevent default handler from destroying the window */
-+ return TRUE;
-+}
-+#endif
-+
- static void
- workarea_changed (int x, int y, int w, int h)
- {
-@@ -144,11 +153,11 @@ create_desktop (void)
- gtk_icon_size_register ("taku-icon", 64, 64);
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-- g_signal_connect (window, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
- gtk_widget_set_name (window, "TakuWindow");
- gtk_window_set_title (GTK_WINDOW (window), _("Desktop"));
-
- #ifndef STANDALONE
-+ g_signal_connect (window, "delete-event", G_CALLBACK (delete_event_cb), NULL);
- gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DESKTOP);
- gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE);
-
-@@ -156,6 +165,7 @@ create_desktop (void)
- screen_w = gdk_screen_get_width (screen);
- screen_h = gdk_screen_get_height (screen);
- #else
-+ g_signal_connect (window, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
- screen_w = 640;
- screen_h = 480;
- #endif
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/All.directory b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/All.directory
new file mode 100644
index 000000000..dfa41e3d3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/All.directory
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=All
+Icon=mbfolder.png
+Type=Directory
+Match=meta-all
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Applications.directory b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Applications.directory
new file mode 100644
index 000000000..a7e350171
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Applications.directory
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Name=Applications
+Comment=Applications
+Icon=gnome-applications.png
+Type=Directory
+Match=AudioVideo;Audio;Video;Graphics;Network;Office;Utility;System;Development;meta-fallback;
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Games.directory b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Games.directory
new file mode 100644
index 000000000..1b0928c75
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Games.directory
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Games
+Name[de]=Spiele
+Comment=Games of all kind
+Comment[de]=Spiele aller Art
+Icon=mbfolder.png
+Type=Directory
+Match=Game
+
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Root.order b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Root.order
new file mode 100644
index 000000000..01a86d293
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Root.order
@@ -0,0 +1,4 @@
+Applications
+Games
+Settings
+All
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Settings.directory b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Settings.directory
new file mode 100644
index 000000000..5dde365f0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/files/vfolders/Settings.directory
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Settings
+Name[de]=Einstellungen
+Comment=Settings for your handheld computer
+Comment[de]=Einstellungen fĂĽr Ihren Handheld-Computer
+Icon=mbfolder.png
+Type=Directory
+Match=Settings
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.1.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.1.bb
new file mode 100644
index 000000000..d9a2f2214
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_2.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Matchbox Window Manager Desktop"
+HOMEPAGE = "http://matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://src/desktop.c;endline=20;md5=36c9bf295e6007f3423095f405af5a2d \
+ file://src/main.c;endline=19;md5=2044244f97a195c25b7dc602ac7e9a00"
+
+DEPENDS = "gtk+3 startup-notification dbus"
+SECTION = "x11/wm"
+
+# SRCREV tagged 2.1
+SRCREV = "c8473519a0f37488b8b3e839e275b000cdde0b80"
+SRC_URI = "git://git.yoctoproject.org/${BPN}-2 \
+ file://vfolders/* \
+ "
+
+EXTRA_OECONF = "--enable-startup-notification --with-dbus"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+# The startup-notification requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append() {
+ install -d ${D}${datadir}/matchbox/vfolders/
+ install -m 0644 ${WORKDIR}/vfolders/* ${D}${datadir}/matchbox/vfolders/
+}
+
+FILES_${PN} += "${datadir}/matchbox/vfolders/"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
deleted file mode 100644
index dbe8c1145..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-desktop/matchbox-desktop_git.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Matchbox Window Manager Desktop"
-HOMEPAGE = "http://matchbox-project.org/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://libtaku/eggsequence.h;endline=20;md5=b91f68f7642a1459fa1f4c9df94a8f15 \
- file://src/desktop.c;endline=20;md5=36c9bf295e6007f3423095f405af5a2d \
- file://src/main.c;endline=19;md5=2044244f97a195c25b7dc602ac7e9a00"
-
-DEPENDS = "gtk+ startup-notification dbus"
-SECTION = "x11/wm"
-SRCREV = "71e3e6e04271e9d5a14f1c231ef100c7f320134d"
-PV = "2.0+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}-2 \
- file://0001-Do-nothing-on-delete-event-when-not-STANDALONE.patch \
- "
-
-EXTRA_OECONF = "--enable-startup-notification --with-dbus"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-
-# The startup-notification requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
new file mode 100644
index 000000000..465f1349a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_0.1.1.bb
@@ -0,0 +1,59 @@
+SUMMARY = "Matchbox virtual keyboard for X11"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+SECTION = "x11"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://src/matchbox-keyboard.h;endline=17;md5=9d6586c69e4a926f3cb0b4425f24ba3c \
+ file://applet/applet.c;endline=18;md5=4a0f721724746b14d95b51ddd42b95e7"
+
+DEPENDS = "libfakekey expat libxft"
+
+#SRCREV for 0.1.1
+SRCREV = "630d89068dc0a1e9199306d405cb32f892dfa4d3"
+SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
+ file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \
+ file://80matchboxkeyboard.sh"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check
+
+# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--disable-cairo"
+
+PACKAGECONFIG ??= "gtk3-im applet"
+PACKAGECONFIG[applet] = "--enable-applet,--disable-applet,matchbox-panel-2"
+PACKAGECONFIG[gtk2-im] = "--enable-gtk-im,--disable-gtk-im,gtk+"
+PACKAGECONFIG[gtk3-im] = "--enable-gtk3-im,--disable-gtk3-im,gtk+3"
+
+PACKAGES += "${PN}-im ${PN}-applet"
+
+FILES_${PN} = "${bindir}/ \
+ ${sysconfdir} \
+ ${datadir}/applications \
+ ${datadir}/pixmaps \
+ ${datadir}/matchbox-keyboard"
+
+FILES_${PN}-im = "${libdir}/gtk-2.0/*/immodules/*.so \
+ ${libdir}/gtk-3.0/*/immodules/*.so"
+
+FILES_${PN}-applet = "${libdir}/matchbox-panel/*.so"
+
+
+do_install_append () {
+ install -d ${D}/${sysconfdir}/X11/Xsession.d/
+ install -m 755 ${WORKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
+
+ rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
+ rm -f ${D}${libdir}/gtk-3.0/*/immodules/*.la
+ rm -f ${D}${libdir}/matchbox-panel/*.la
+}
+
+GTKIMMODULES_PACKAGES = "${PN}-im"
+
+RDEPENDS_${PN} = "formfactor dbus-wait"
+RRECOMMENDS_${PN} = "${PN}-applet"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
deleted file mode 100644
index eba1970ee..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-keyboard/matchbox-keyboard_git.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "Matchbox virtual keyboard for X11"
-HOMEPAGE = "http://matchbox-project.org"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-SECTION = "x11"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://src/matchbox-keyboard.h;endline=17;md5=9d6586c69e4a926f3cb0b4425f24ba3c \
- file://applet/applet.c;endline=18;md5=4a0f721724746b14d95b51ddd42b95e7"
-
-DEPENDS = "libfakekey expat libxft gtk+ matchbox-panel-2"
-
-SRCREV = "ebc330eac8b9d38e9aef9f01e7241c904bd01073"
-PV = "0.0+git${SRCPV}"
-PR = "r4"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN};branch=matchbox-keyboard-0-1 \
- file://0001-desktop-file-Hide-the-keyboard-from-app-list.patch \
- file://80matchboxkeyboard.sh"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig gettext gtk-immodules-cache distro_features_check
-
-# The libxft, libfakekey and matchbox-panel-2 requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = "--disable-cairo --enable-gtk-im --enable-applet"
-
-PACKAGES += "${PN}-im ${PN}-applet"
-
-FILES_${PN} = "${bindir}/ \
- ${sysconfdir} \
- ${datadir}/applications \
- ${datadir}/pixmaps \
- ${datadir}/matchbox-keyboard"
-
-FILES_${PN}-im = "${libdir}/gtk-2.0/*/immodules/*.so"
-
-FILES_${PN}-applet = "${libdir}/matchbox-panel/*.so"
-
-
-do_install_append () {
- install -d ${D}/${sysconfdir}/X11/Xsession.d/
- install -m 755 ${WORKDIR}/80matchboxkeyboard.sh ${D}/${sysconfdir}/X11/Xsession.d/
-
- rm -f ${D}${libdir}/gtk-2.0/*/immodules/*.la
- rm -f ${D}${libdir}/matchbox-panel/*.la
-}
-
-GTKIMMODULES_PACKAGES = "${PN}-im"
-
-RDEPENDS_${PN} = "formfactor dbus-wait"
-RRECOMMENDS_${PN} = "${PN}-applet"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-applets-systray-Allow-icons-to-be-smaller.patch b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-applets-systray-Allow-icons-to-be-smaller.patch
new file mode 100644
index 000000000..d13dd3d5a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-applets-systray-Allow-icons-to-be-smaller.patch
@@ -0,0 +1,34 @@
+From f83a9179696b2d060ee4860733dafbf38bbd4b87 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 28 Sep 2016 15:05:41 +0300
+Subject: [PATCH] applets/systray: Allow icons to be smaller
+
+Don't expand/fill the systray items, align them in the center of the
+systray panel. This makes sure the icons are drawn at the size they
+expect.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted
+---
+ applets/systray/systray.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/applets/systray/systray.c b/applets/systray/systray.c
+index 39698a8..94a5753 100644
+--- a/applets/systray/systray.c
++++ b/applets/systray/systray.c
+@@ -29,8 +29,9 @@ on_realize (GtkWidget *widget, gpointer user_data)
+ tray = (GtkWidget *)na_tray_new_for_screen (screen, orientation);
+
+ gtk_widget_show (tray);
+-
+- gtk_container_add (GTK_CONTAINER (widget), tray);
++ gtk_widget_set_valign (tray, GTK_ALIGN_CENTER);
++ gtk_widget_set_halign (tray, GTK_ALIGN_CENTER);
++ gtk_box_pack_start (GTK_BOX (widget), tray, FALSE, FALSE, 0);
+ }
+
+ G_MODULE_EXPORT GtkWidget *
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-showdesktop-Make-sure-active-state-is-initialized.patch b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-showdesktop-Make-sure-active-state-is-initialized.patch
deleted file mode 100644
index 3bab6d292..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/0001-showdesktop-Make-sure-active-state-is-initialized.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a0b5fca04da208990f3c40e65dbb045da4cdb35e Mon Sep 17 00:00:00 2001
-From: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date: Sun, 20 Mar 2016 13:24:37 +0200
-Subject: [PATCH] showdesktop: Make sure active state is initialized
-
-There are cases (in qemu at least) where set_active()
-is never called on startup. Make sure we initialize the active
-state so the icon gets loaded and the applet is not confused
-about the current state.
-
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-
-Upstream-Status: Backport
----
- applets/showdesktop/showdesktop.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/applets/showdesktop/showdesktop.c b/applets/showdesktop/showdesktop.c
-index 61dd5c2..33c13e1 100644
---- a/applets/showdesktop/showdesktop.c
-+++ b/applets/showdesktop/showdesktop.c
-@@ -181,6 +181,12 @@ button_clicked_cb (GtkButton *button,
- &xev);
- }
-
-+static void
-+realize_cb (GtkWidget *button, ShowDesktopApplet *applet)
-+{
-+ sync_applet (applet);
-+}
-+
- G_MODULE_EXPORT GtkWidget *
- mb_panel_applet_create (const char *id,
- GtkOrientation orientation)
-@@ -216,6 +222,10 @@ mb_panel_applet_create (const char *id,
- "clicked",
- G_CALLBACK (button_clicked_cb),
- applet);
-+ g_signal_connect (button,
-+ "realize",
-+ G_CALLBACK (realize_cb),
-+ applet);
-
- g_object_weak_ref (G_OBJECT (button),
- (GWeakNotify) show_desktop_applet_free,
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch
deleted file mode 100644
index 45ba9a031..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/files/silence-warnings.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-Don't warn if the machine doesn't actually have a battery, or if the applets
-string contains consecutive separators.
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/applets/battery/battery-acpi.c b/applets/battery/battery-acpi.c
-index 6515cb0..c44dd12 100644
---- a/applets/battery/battery-acpi.c
-+++ b/applets/battery/battery-acpi.c
-@@ -14,8 +14,6 @@ int batt_state, ac_state;
- int pm_support(void)
- {
- if(check_acpi_support() == NOT_SUPPORTED){
-- g_warning("No ACPI support\n");
--
- return 0;
- }
-
-@@ -32,8 +30,9 @@ const char* pm_battery_icon(void)
- const char *icon;
- battery_t *binfo;
-
-+ /* No battery available (not present, disabled, or something
-+ else. Silently do nothing. */
- if (batt_state != SUCCESS) {
-- g_warning("Couldnt initialize ACPI battery\n");
- return NULL;
- }
-
-diff --git a/applets/battery/battery-apm.c b/applets/battery/battery-apm.c
-index 5467438..2f39cb6 100644
---- a/applets/battery/battery-apm.c
-+++ b/applets/battery/battery-apm.c
-@@ -10,8 +10,6 @@
- int pm_support(void)
- {
- if (1 == apm_exists ()) {
-- g_warning ("No APM support");
--
- return 0;
- }
-
-diff --git a/matchbox-panel/mb-panel.c b/matchbox-panel/mb-panel.c
-index 2d8cafd..828a36d 100644
---- a/matchbox-panel/mb-panel.c
-+++ b/matchbox-panel/mb-panel.c
-@@ -110,10 +110,15 @@ load_applets (const char *applets_desc,
- applets = g_strsplit (applets_desc, ",", -1);
-
- for (i = 0; applets[i]; i++) {
-+ char *s;
- char **bits;
- GtkWidget *applet;
-
-- bits = g_strsplit (applets[i], ":", 2);
-+ s = applets[i];
-+ if (s == NULL || s[0] == '\0')
-+ continue;
-+
-+ bits = g_strsplit (s, ":", 2);
-
- applet = load_applet (bits[0],
- bits[1],
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
new file mode 100644
index 000000000..d38e7f639
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_2.11.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Simple GTK+ based panel for handheld devices"
+HOMEPAGE = "http://matchbox-project.org"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://matchbox-panel/mb-panel.h;endline=10;md5=0b7db28f4b6863fb853d0467e590019a \
+ file://applets/startup/startup.c;endline=22;md5=7cbcea60b667f609495222faf3e07917"
+
+DEPENDS = "gnome-common gtk+3 startup-notification dbus dbus-glib dbus-glib-native"
+DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}"
+DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "apmd", "",d)}"
+
+# The startup-notification requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# SRCREV tagged 2.11
+SRCREV = "850d5fffde7dbfb32015916524d88014cc2cfb30"
+
+RPROVIDES_${PN} = "matchbox-panel"
+RREPLACES_${PN} = "matchbox-panel"
+RCONFLICTS_${PN} = "matchbox-panel"
+
+SRC_URI = "git://git.yoctoproject.org/${BPN} \
+ file://0001-applets-systray-Allow-icons-to-be-smaller.patch \
+ "
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dbus"
+EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}"
+EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "--with-battery=apm", "",d)}"
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} += "${libdir}/matchbox-panel/*.so \
+ ${datadir}/matchbox-panel/brightness/*.png \
+ ${datadir}/matchbox-panel/startup/*.png \
+ ${datadir}/icons/"
+FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la"
+
+inherit autotools pkgconfig distro_features_check
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb
deleted file mode 100644
index 98c3ae487..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-panel-2/matchbox-panel-2_git.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Simple GTK+ based panel for handheld devices"
-HOMEPAGE = "http://matchbox-project.org"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://matchbox-panel/mb-panel.h;endline=10;md5=0b7db28f4b6863fb853d0467e590019a \
- file://applets/startup/startup.c;endline=22;md5=b0a64fbef3097d79f8264e6907a98f03"
-
-DEPENDS = "gnome-common gtk+ startup-notification dbus dbus-glib"
-DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "libacpi", "",d)}"
-DEPENDS += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "apmd", "",d)}"
-
-# The startup-notification requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRCREV = "26a3a67b41c50e0ae163d8fe86ccf7a0f0a671ae"
-PV = "2.0+git${SRCPV}"
-
-RPROVIDES_${PN} = "matchbox-panel"
-RREPLACES_${PN} = "matchbox-panel"
-RCONFLICTS_${PN} = "matchbox-panel"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN} \
- file://0001-showdesktop-Make-sure-active-state-is-initialized.patch \
- file://silence-warnings.patch"
-
-EXTRA_OECONF = "--enable-startup-notification --enable-dbus"
-EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "acpi", "--with-battery=acpi", "",d)}"
-EXTRA_OECONF += " ${@bb.utils.contains("MACHINE_FEATURES", "apm", "--with-battery=apm", "",d)}"
-
-S = "${WORKDIR}/git"
-
-FILES_${PN} += "${libdir}/matchbox-panel/*.so \
- ${datadir}/matchbox-panel/brightness/*.png \
- ${datadir}/matchbox-panel/startup/*.png "
-FILES_${PN}-dev += "${libdir}/matchbox-panel/*.la"
-
-inherit autotools pkgconfig distro_features_check
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/index.theme b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/index.theme
new file mode 100644
index 000000000..c9260cfd8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/index.theme
@@ -0,0 +1,7 @@
+[X-GNOME-Metatheme]
+Encoding=UTF-8
+Type=X-GNOME-Metatheme
+Name=Sato
+GtkTheme=Adwaita
+IconTheme=Sato
+MatchboxTheme=Sato
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session
index 42ce483d3..f6313bdeb 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session
@@ -14,11 +14,6 @@ else
KEYBOARD_APPLET="keyboard"
fi
-# Tell GTK+3 we really want server side decorations, even with
-# GtkHeaderBar using applications: Without that mb-panel will render
-# on top of the client side decorations.
-export GTK_CSD=0
-
matchbox-desktop &
# Lines containing feature-[foo] are removed at build time if the machine
@@ -28,6 +23,6 @@ START_APPLETS=showdesktop,windowselector
END_APPLETS=clock,battery,$KEYBOARD_APPLET,systray,startup-notify,notify
END_APPLETS=openmoko-panel-gsm,$END_APPLETS # feature-phone
-matchbox-panel --titlebar --start-applets $START_APPLETS --end-applets $END_APPLETS &
+matchbox-panel --start-applets $START_APPLETS --end-applets $END_APPLETS &
-exec matchbox-window-manager -theme Sato -use_desktop_mode decorated -use_cursor $SHOWCURSOR $@
+exec matchbox-window-manager -theme Sato -use_cursor $SHOWCURSOR $@
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
index 76de18ae9..42c742fca 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-sato/matchbox-session-sato_0.1.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://session;endline=3;md5=f8a5c5b9c279e52dc094d10e11c2be6
SECTION = "x11"
DEPENDS = "gconf-native"
-RDEPENDS_${PN} = "formfactor gtk-sato-engine matchbox-theme-sato gtk-theme-sato matchbox-panel-2 matchbox-desktop-sato matchbox-session gconf"
+RDEPENDS_${PN} = "formfactor matchbox-theme-sato matchbox-panel-2 matchbox-desktop matchbox-session gconf"
PR = "r30"
# This package is architecture specific because the session script is modified
@@ -19,9 +19,12 @@ inherit distro_features_check
# The matchbox-theme-sato requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "file://session"
+SRC_URI = "file://session \
+ file://index.theme"
S = "${WORKDIR}"
+FILES_${PN} += "${datadir}/themes/Sato/index.theme"
+
do_install() {
# This is the set of machine features that the script has markers for
FEATURES="phone"
@@ -34,6 +37,7 @@ do_install() {
fi
done
+ install -D ${S}/index.theme ${D}/${datadir}/themes/Sato/index.theme
install -d ${D}/${sysconfdir}/matchbox
sed -f "$SCRIPT" ${S}/session > ${D}/${sysconfdir}/matchbox/session
chmod +x ${D}/${sysconfdir}/matchbox/session
@@ -44,7 +48,8 @@ pkg_postinst_${PN} () {
#type, name, value
gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type $1 --set /desktop/poky/interface/$2 "$3"
}
- set_value string theme Sato
+ set_value string theme Adwaita
+ set_value string matchbox_theme Sato
set_value string icon_theme Sato
set_value bool touchscreen true
set_value string font_name "Sans 9"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.1.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.1.bb
new file mode 100644
index 000000000..4488191b2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_0.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Lightweight GTK+ terminal application"
+HOMEPAGE = "http://www.matchbox-project.org/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://main.c;endline=20;md5=96e39176d9e355639a0b8b1c7a840820"
+
+DEPENDS = "gtk+3 vte"
+SECTION = "x11/utils"
+
+#SRCREV tagged 0.1
+SRCREV = "3ad357db2302760b8a8817b5f4478dd87479442f"
+SRC_URI = "git://git.yoctoproject.org/${BPN}"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb
deleted file mode 100644
index c8cbd57a6..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-terminal/matchbox-terminal_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Lightweight GTK+ terminal application"
-HOMEPAGE = "http://www.matchbox-project.org/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://main.c;endline=20;md5=96e39176d9e355639a0b8b1c7a840820"
-
-DEPENDS = "gtk+ vte"
-SECTION = "x11/utils"
-SRCREV = "452bca253492a97a587f440289b9ab27d217353e"
-PV = "0.0+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
deleted file mode 100644
index f6786dda5..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require matchbox-theme-sato.inc
-
-PR = "r1"
-
-SRC_URI = "http://pokylinux.org/releases/sato/matchbox-theme-sato-0.1.tar.gz"
-
-SRC_URI[md5sum] = "72ae272ef7803141a3dcb69e670cff97"
-SRC_URI[sha256sum] = "5b59f9646edbfb907a309332db3bd6fa7080dc1fe24df549480cfae7d974a3fb"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
new file mode 100644
index 000000000..7a043d344
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_0.2.bb
@@ -0,0 +1,8 @@
+require matchbox-theme-sato.inc
+
+# SRCREV tagged 0.2
+SRCREV = "df085ba9cdaeaf2956890b0e29d7ea1779bf6c78"
+SRC_URI = "git://git.yoctoproject.org/matchbox-sato"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb b/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb
deleted file mode 100644
index 0d3569de9..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/matchbox-theme-sato/matchbox-theme-sato_git.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require matchbox-theme-sato.inc
-
-SRCREV = "f72cf4ed7d71ad9e47b0f2d3dbc593bc2f3e76f8"
-PV = "0.2+git${SRCPV}"
-
-DEFAULT_PREFERENCE = "-1"
-
-SRC_URI = "git://git.yoctoproject.org/matchbox-sato"
-
-EXTRA_OECONF += "${@bb.utils.contains('MACHINE_FEATURES', 'qvga', '--with-mode=qvga', '',d)}"
-
-S = "${WORKDIR}/git"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/import-layers/yocto-poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
index 8ba49231d..6fb1b678f 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
+++ b/import-layers/yocto-poky/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -3,7 +3,6 @@
#
SUMMARY = "Sato desktop"
-LICENSE = "MIT"
PR = "r33"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -31,9 +30,8 @@ RDEPENDS_${PN}-base = "\
matchbox-keyboard-im \
matchbox-config-gtk \
xcursor-transparent-theme \
- sato-icon-theme \
+ adwaita-icon-theme \
settings-daemon \
- gtk-sato-engine \
shutdown-desktop \
libsdl \
${NETWORK_MANAGER} \
@@ -48,8 +46,8 @@ WEB ?= ""
SUMMARY_${PN}-apps = "Sato desktop - applications"
RDEPENDS_${PN}-apps = "\
- leafpad \
- gst-player-bin \
+ l3afpad \
+ gst-player \
matchbox-terminal \
sato-screenshot \
${FILEMANAGER} \
@@ -58,5 +56,5 @@ RDEPENDS_${PN}-apps = "\
SUMMARY_${PN}-games = "Sato desktop - games"
RDEPENDS_${PN}-games = "\
- oh-puzzles \
+ puzzles \
"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/pcmanfm/pcmanfm_1.2.4.bb b/import-layers/yocto-poky/meta/recipes-sato/pcmanfm/pcmanfm_1.2.4.bb
index a6b0aacd2..a6bf2136e 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/pcmanfm/pcmanfm_1.2.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-sato/pcmanfm/pcmanfm_1.2.4.bb
@@ -7,8 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://src/gseal-gtk-compat.h;endline=21;md5=46922c8691f58d124f9420fe16149ce2"
SECTION = "x11"
-DEPENDS = "gtk+ startup-notification libfm intltool-native gettext-native"
-DEPENDS_append_poky = " libowl"
+DEPENDS = "gtk+3 startup-notification libfm intltool-native gettext-native"
COMPATIBLE_HOST = '(x86_64.*|i.86.*|aarch64.*|arm.*|mips.*|powerpc.*|sh.*)-(linux|freebsd.*)'
@@ -30,6 +29,8 @@ inherit autotools pkgconfig distro_features_check
# The startup-notification requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"
+EXTRA_OECONF = "--with-gtk=3"
+
do_install_append () {
install -d ${D}/${datadir}
install -d ${D}/${datadir}/pixmaps/
diff --git a/import-layers/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch b/import-layers/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
deleted file mode 100644
index 7e2c3ab75..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/puzzles/files/oh-puzzles-owl-menu.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-This patch enable owl menu, which is hidden in the title bar to save space on
-small screen. It has not been used for a long time, rebase needed.
-
-Upstream-Status: Inappropriate [enable feature]
-
-Index: src/gtk.c
-===================================================================
---- src/gtk.c (revision 22)
-+++ src/gtk.c (working copy)
-@@ -28,6 +28,8 @@
- #include <gdk/gdkx.h>
- #include <gdk-pixbuf/gdk-pixbuf.h>
-
-+#include <libowl/owlwindowmenu.h>
-+
- #include <librsvg/rsvg.h>
-
- #include <X11/Xlib.h>
-@@ -1237,6 +1239,7 @@
- }
- }
-
-+#if 0
- static void
- add_widget (GtkUIManager *merge,
- GtkWidget *widget,
-@@ -1247,10 +1250,11 @@
- gtk_box_pack_start (box, widget, FALSE, FALSE, 0);
-
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box));
-- gtk_widget_show_all (toplevel);
- }
-+#endif
-
- static GtkActionEntry toplevel_actions[] = {
-+ { "Top", NULL, "" },
- { "Game", NULL, N_("Game") },
- { "Settings", NULL, N_("Settings") },
- { "Help", NULL, N_("Help") },
-@@ -1303,11 +1307,13 @@
- frontend *fe)
- {
- GString *xml;
-+ GError *error = NULL;
- gboolean presets = FALSE;
- GSList *radio_group = NULL;
- int i;
-
-- xml = g_string_new ("<ui><menubar><placeholder name=\"TypePlaceholder\">"
-+ xml = g_string_new ("<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
-+ "<placeholder name=\"TypePlaceholder\">"
- "<menu name=\"SettingsMenu\" action=\"Settings\">");
-
- for (i = 0; i < midend_num_presets(fe->me); i++) {
-@@ -1359,8 +1365,14 @@
- "<menuitem name=\"CustomMenu\" action=\"Custom\"/>");
- }
-
-- g_string_append (xml, "</menu></placeholder></menubar></ui>");
-- gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, NULL);
-+ g_string_append (xml, "</menu></placeholder></menu></menubar></ui>");
-+
-+ gtk_ui_manager_add_ui_from_string (merge, xml->str, -1, &error);
-+ if (error != NULL) {
-+ g_warning ("Error adding custom: %s", error->message);
-+ g_error_free (error);
-+ }
-+
- g_string_free (xml, TRUE);
- }
-
-@@ -1434,6 +1446,7 @@
- new_window(char *arg, char **error)
- {
- frontend *fe;
-+ GError *err = NULL;
- GtkBox *vbox;
- GtkUIManager *merge;
- GtkActionGroup *actions;
-@@ -1496,8 +1509,6 @@
- gtk_window_add_accel_group(GTK_WINDOW(fe->window), fe->accelgroup);
-
- merge = gtk_ui_manager_new ();
-- g_signal_connect (G_OBJECT (merge), "add_widget",
-- G_CALLBACK (add_widget), vbox);
-
- actions = gtk_action_group_new ("PuzzleActions");
- gtk_action_group_add_actions (actions, toplevel_actions,
-@@ -1509,22 +1520,39 @@
-
- gtk_ui_manager_insert_action_group (merge, actions, 0);
-
-- gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml", NULL);
-+ gtk_ui_manager_add_ui_from_file (merge, DATADIR "/oh-puzzles/ui/menu.xml",
-+ &err);
-+ if (err != NULL) {
-+ g_warning ("Error making UI: %s", err->message);
-+ g_error_free (err);
-+ err = NULL;
-+ }
-
- if (thegame.can_solve) {
-- char *str = "<ui><menubar><menu name=\"GameMenu\" action=\"Game\">"
-+ char *str = "<ui><menubar><menu name=\"TopMenu\" action=\"Top\">"
-+ "<menu name=\"GameMenu\" action=\"Game\">"
- "<placeholder name=\"SolvePlaceholder\">"
- "<separator name=\"SolveSep\"/>"
- "<menuitem name=\"SolveMenu\" action=\"Solve\"/>"
-- "</placeholder></menu></menubar></ui>";
-+ "</placeholder></menu></menu></menubar></ui>";
-
-- gtk_ui_manager_add_ui_from_string (merge, str, -1, NULL);
-+ gtk_ui_manager_add_ui_from_string (merge, str, -1, &err);
-+ if (err != NULL) {
-+ g_warning ("Error adding solve. %s", err->message);
-+ g_error_free (err);
-+ }
- }
-
- if ((n = midend_num_presets(fe->me)) > 0 || thegame.can_configure) {
- generate_settings_menu (merge, actions, fe);
- }
-
-+ /* Do this so that the menu is packed now instead of in the idle loop */
-+ gtk_ui_manager_ensure_update (merge);
-+
-+ owl_set_window_menu_item (GTK_WINDOW (fe->window),
-+ GTK_MENU_ITEM (gtk_ui_manager_get_widget (merge, "/menubar/TopMenu")));
-+
- setup_colours (fe);
- setup_pixbufs (fe);
-
-@@ -1572,7 +1600,7 @@
- GDK_BUTTON_RELEASE_MASK |
- GDK_BUTTON_MOTION_MASK);
-
-- /* The window is shown once the menubar has been added */
-+ gtk_widget_show_all (fe->window);
- return fe;
- }
-
-Index: src/menu.xml
-===================================================================
---- src/menu.xml (revision 22)
-+++ src/menu.xml (working copy)
-@@ -1,26 +1,25 @@
- <ui>
- <menubar>
--<menu name="GameMenu" action="Game">
-- <menuitem name="NewMenu" action="New"/>
-- <menuitem name="RestartMenu" action="Restart"/>
--<!-- <menuitem name="SpecificMenu" action="Specific"/> -->
-- <menuitem name="RandomMenu" action="Random"/>
-- <separator name="GameSep1"/>
-- <menuitem name="LoadMenu" action="Load"/>
-- <menuitem name="SaveMenu" action="Save"/>
-- <separator name="GameSep2"/>
-- <menuitem name="UndoMenu" action="Undo"/>
-- <menuitem name="RedoMenu" action="Redo"/>
-- <placeholder name="CopyPlaceholder"/>
-- <placeholder name="SolvePlaceholder"/>
-- <separator name="GameSep3"/>
-- <menuitem name="QuitMenu" action="Quit"/>
--</menu>
-+<menu name="TopMenu" action="Top">
-+ <menu name="GameMenu" action="Game">
-+ <menuitem name="NewMenu" action="New"/>
-+ <menuitem name="RestartMenu" action="Restart"/>
-+ <!-- <menuitem name="SpecificMenu" action="Specific"/> -->
-+ <menuitem name="RandomMenu" action="Random"/>
-+ <separator name="GameSep1"/>
-+ <menuitem name="LoadMenu" action="Load"/>
-+ <menuitem name="SaveMenu" action="Save"/>
-+ <separator name="GameSep2"/>
-+ <menuitem name="UndoMenu" action="Undo"/>
-+ <menuitem name="RedoMenu" action="Redo"/>
-+ <placeholder name="CopyPlaceholder"/>
-+ <placeholder name="SolvePlaceholder"/>
-+ </menu>
-
--<placeholder name="TypePlaceholder"/>
--
--<menu name="HelpMenu" action="Help">
-+ <placeholder name="TypePlaceholder"/>
- <menuitem name="AboutMenu" action="About"/>
-+ <menuitem name="QuitMenu" action="Quit"/>
-+
- </menu>
- </menubar>
- </ui>
-Index: src/Makefile.am
-===================================================================
---- src/Makefile.am (revision 22)
-+++ src/Makefile.am (working copy)
-@@ -10,7 +10,7 @@
- lightup loopy map mines net netslide pattern pegs rect samegame \
- sixteen slant solo tents twiddle untangle
-
--libpuzzles_la_LIBADD = $(PUZZLES_LIBS)
-+libpuzzles_la_LIBADD = $(PUZZLES_LIBS) -lowl
- libpuzzles_la_SOURCES = combi.c \
- configuration.c \
- drawing.c \
diff --git a/import-layers/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb b/import-layers/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb
deleted file mode 100644
index dfa68a659..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/puzzles/oh-puzzles_git.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "Portable Puzzle Collection"
-HOMEPAGE = "http://o-hand.com/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=f56ec6772dd1c7c367067bbea8ea1675 \
- file://src/tree234.h;endline=28;md5=a188e6d250430ca094a54a82f48472a7 \
- file://src/tree234.c;endline=28;md5=b4feb1976feebf8f1379093ed52f2945"
-
-SECTION = "x11"
-DEPENDS = "gtk+ gconf intltool-native librsvg gettext-native"
-
-# libowl requires x11 in DISTRO_FEATURES
-DEPENDS_append_poky = " ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libowl', '', d)}"
-
-# Requires gdk/gdkx.h which is provided by gtk when x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRCREV = "92f1a20e4b72eed7a35b00984d9793b51dc2fb3b"
-PV = "0.2+git${SRCPV}"
-PR = "r10"
-
-SRC_URI = "git://git.yoctoproject.org/${BPN}"
-SRC_URI_append_poky = " file://oh-puzzles-owl-menu.patch;striplevel=0 "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-
-bindir = "/usr/games"
-
-EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1"
-
-do_install_append () {
- install -d ${D}/${datadir}/applications/
-
- cd ${D}/${prefix}/games
- for prog in *; do
- if [ -x $prog ]; then
- # Convert prog to Title Case
- title=$(echo $prog | sed 's/\(^\| \)./\U&/g')
- echo "making ${D}/${datadir}/applications/$prog.desktop"
- cat <<STOP > ${D}/${datadir}/applications/$prog.desktop
-[Desktop Entry]
-Name=$title
-Exec=${prefix}/games/$prog
-Icon=applications-games
-Terminal=false
-Type=Application
-Categories=Game;
-StartupNotify=true
-X-MB-SingleInstance=true
-Comment=Play $title.
-STOP
- fi
- done
-}
-
-PACKAGES += "${PN}-extra"
-RDEPENDS_${PN}-extra += "oh-puzzles"
-
-FILES_${PN} = "/usr/share/pixmaps /usr/share/oh-puzzles/"
-FILES_${PN}-extra = "/usr/games/ /usr/share/applications /etc/gconf/schemas"
-
-python __anonymous () {
- var = bb.data.expand("FILES_${PN}", d, 1)
- data = d.getVar(var, True)
- for name in ("bridges", "fifteen", "inertia", "map", "samegame", "slant"):
- data = data + " /usr/games/%s" % name
- data = data + " /usr/share/applications/%s.desktop" % name
- data = data + " /etc/gconf/schemas/%s.schemas" % name
- d.setVar(var, data)
-}
diff --git a/import-layers/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb b/import-layers/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb
index 346f43bc9..20b98891b 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/import-layers/yocto-poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -21,45 +21,54 @@ PV = "0.0+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit autotools-brokensep distro_features_check pkgconfig
+inherit autotools distro_features_check pkgconfig
-PACKAGECONFIG ??= "gtk2"
+CFLAGS_append = " -Wno-deprecated-declarations"
+
+PACKAGECONFIG ??= "gtk3"
PACKAGECONFIG[gtk2] = "--with-gtk=2,,gtk+,"
PACKAGECONFIG[gtk3] = "--with-gtk=3,,gtk+3,"
+PACKAGES += "${PN}-extra"
+FILES_${PN} = ""
+FILES_${PN}-extra = "${prefix}/bin ${datadir}/applications"
+
+python __anonymous () {
+ var = d.expand("FILES_${PN}")
+ data = d.getVar(var, False)
+ for name in ("bridges", "fifteen", "inertia", "map", "samegame", "slant"):
+ data = data + " ${bindir}/%s" % name
+ data = data + " ${datadir}/applications/%s.desktop" % name
+ d.setVar(var, data)
+}
+
do_configure_prepend () {
+ cd ${S}
./mkfiles.pl
+ cd ${B}
}
-FILES_${PN} = "${prefix}/bin/* ${datadir}/applications/*"
-
-do_install () {
- rm -rf ${D}/*
- export prefix=${D}
- export DESTDIR=${D}
- install -d ${D}/${prefix}/bin/
- oe_runmake install
-
-
- install -d ${D}/${datadir}/applications/
+do_install_append () {
+ # net conflicts with Samba, so rename it
+ mv ${D}${bindir}/net ${D}${bindir}/puzzles-net
# Create desktop shortcuts
+ install -d ${D}/${datadir}/applications/
cd ${D}/${prefix}/bin
for prog in *; do
if [ -x $prog ]; then
# Convert prog to Title Case
- title=$(echo $prog | sed 's/\(^\| \)./\U&/g')
+ title=$(echo $prog | sed 's/puzzles-//' | sed 's/\(^\| \)./\U&/g')
echo "making ${D}/${datadir}/applications/$prog.desktop"
cat <<STOP > ${D}/${datadir}/applications/$prog.desktop
[Desktop Entry]
Name=$title
-Exec=${prefix}/bin/$prog
+Exec=${bindir}/$prog
Icon=applications-games
Terminal=false
Type=Application
Categories=Game;
StartupNotify=true
-X-MB-SingleInstance=true
STOP
fi
done
diff --git a/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch b/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch
deleted file mode 100644
index 2c176ee90..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b9f02989310a3c920589f1aa646bcbf16b2572a0 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Wed, 13 Jun 2012 11:07:33 +0100
-Subject: [PATCH] Inherit the GNOME icon theme
-
-If the GNOME icon theme isn't installed this is a no-op, but if it is then
-you'll get fallback from Sato to GNOME for icons that are not in Sato.
-
-As applications that use the full GNOME icon theme depend on gnome-icon-theme,
-this just works.
-
-Upstream-Status: Backport
----
- index.theme | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/index.theme b/index.theme
-index c4b03a7..688fbbf 100644
---- a/index.theme
-+++ b/index.theme
-@@ -1,6 +1,7 @@
- [Icon Theme]
- Name=Sato
- Comment=Sato icon theme
-+Inherits=Adwaita
-
- Directories=16x16/apps,16x16/status,16x16/stock,16x16/places,16x16/mimetypes,16x16/devices,16x16/actions,22x22/apps,22x22/status,22x22/stock,22x22/places,22x22/mimetypes,22x22/devices,22x22/actions,32x32/apps,32x32/status,32x32/stock,32x32/places,32x32/mimetypes,32x32/devices,32x32/actions,48x48/apps,48x48/status,48x48/stock,48x48/places,48x48/mimetypes,48x48/devices,48x48/actions,64x64/apps,64x64/status,64x64/stock,64x64/places,64x64/mimetypes,64x64/devices,64x64/actions,
-
---
-1.7.10
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb b/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
deleted file mode 100644
index ced735f00..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/sato-icon-theme/sato-icon-theme_0.4.1.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Sato icon theme"
-HOMEPAGE = "http://www.o-hand.com"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "CC-BY-SA-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=56a830bbe6e4697fe6cbbae01bb7c2b2"
-SECTION = "x11"
-
-PR = "r6"
-
-DEPENDS = "icon-naming-utils-native libxml-simple-perl-native"
-
-SRC_URI = "http://pokylinux.org/releases/sato/${BPN}-${PV}.tar.gz \
- file://0001-Inherit-the-GNOME-icon-theme.patch"
-
-SRC_URI[md5sum] = "86a847f3128a43a9cf23b7029a656f50"
-SRC_URI[sha256sum] = "0b0a2807a6a96918ac799a86094ec3e8e2c892be0fd679a4232c2a77f2f61732"
-
-inherit autotools pkgconfig allarch gtk-icon-cache perlnative
-
-# The configure script uses pkg-config to find native binaries to execute, so
-# tell it to use our pkg-config-native wrapper.
-export PKG_CONFIG = "pkg-config-native"
-
-FILES_${PN} += "${datadir}/icons/Sato"
-
-do_install_append() {
- find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s preferences-system.png {}/apps/preferences-desktop.png \;
- find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s file-manager.png {}/apps/system-file-manager.png \;
- find ${D}${datadir}/icons/Sato/ -maxdepth 1 -type d -exec ln -s ../apps/terminal.png {}/places/computer.png \;
-}
-
-# Explictly setting "Sato" as the default icon theme to avoid flickering from
-# the desktop and settings daemon racing. This shouldn't be done here but in the sato image
-pkg_postinst_${PN} () {
- mkdir -p $D/etc/gtk-2.0
-
- grep -s -q -e ^gtk-icon-theme-name.*\"Sato\" $D/etc/gtk-2.0/gtkrc || \
- echo 'gtk-icon-theme-name = "Sato"' >> $D/etc/gtk-2.0/gtkrc
-}
diff --git a/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb b/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
new file mode 100644
index 000000000..f3305aef7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_0.3.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Ultra-simple screen capture utility, aimed at handheld devices"
+HOMEPAGE = "http://www.o-hand.com"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+
+LICENSE = "GPLv2 & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://main.c;endline=9;md5=023e14d6404d0a961eb97cbd011fc141 \
+ file://screenshot-ui.h;endline=9;md5=638d9ffa83e9325a36df224166ed6ad0"
+
+DEPENDS = "matchbox-panel-2 gtk+3"
+
+# SRCREV tagged 0.3
+SRCREV = "9250fa5a012d84ff45984e8c4345ee7635227756"
+SRC_URI = "git://git.yoctoproject.org/screenshot"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig distro_features_check
+
+FILES_${PN} += "${libdir}/matchbox-panel/*.so"
+
+do_install_append () {
+ rm ${D}${libdir}/matchbox-panel/*.la
+}
+
+# The matchbox-panel-2 requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb b/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb
deleted file mode 100644
index 1b2b65dfc..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/sato-screenshot/sato-screenshot_git.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Ultra-simple screen capture utility, aimed at handheld devices"
-HOMEPAGE = "http://www.o-hand.com"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://main.c;endline=9;md5=023e14d6404d0a961eb97cbd011fc141 \
- file://screenshot-ui.h;endline=9;md5=638d9ffa83e9325a36df224166ed6ad0"
-
-DEPENDS = "matchbox-panel-2"
-SRCREV = "3a9688e8a01b63a78f402b4e7c0b8b005fcdfa29"
-PV = "0.1+git${SRCPV}"
-PR = "r2"
-
-SRC_URI = "git://git.yoctoproject.org/screenshot"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig distro_features_check
-
-FILES_${PN} += "${libdir}/matchbox-panel/*.so"
-
-do_install_append () {
- rm ${D}${libdir}/matchbox-panel/*.la
-}
-
-# The matchbox-panel-2 requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch b/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch
deleted file mode 100644
index 594374467..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/files/dso_linking_change_build_fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-after gcc linking has changed, all the libraries must be explicitely specified to for linking.
-This patch avoids this linking error:
-
-| make all-am^M
-| make[1]: Entering directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/settings-daemon-0.0+svnr2059-r3/settings-daemon'^M
-| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -Wall -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o settings-daemon settings_daemon-xsettings-common.o settings_daemon-xsettings-manager.o settings_daemon-settings-daemon.o -pthread -lgconf-2 -ldbus-glib-1 -ldbus-1 -lpthread -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0^M
-| /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: *^A: invalid DSO for symbol `XCreateSimpleWindow' definition^M
-| /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libX11.so.6: could not read symbols: Bad value^M
-| collect2: ld returned 1 exit status^M
-| make[1]: *** [settings-daemon] Error 1^M
-| make[1]: Leaving directory `/disk0/pokybuild/build1/tmp/work/i586-poky-linux/settings-daemon-0.0+svnr2059-r3/settings-daemon'^M
-| make: *** [all] Error 2^M
-
-Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2011/01/11
-
-Index: settings-daemon/configure.ac
-===================================================================
---- settings-daemon.orig/configure.ac
-+++ settings-daemon/configure.ac
-@@ -14,7 +14,7 @@ AC_PROG_CC
-
-
- dnl TODO: make gconf optional
--PKG_CHECK_MODULES(APP, [gconf-2.0 gdk-x11-2.0])
-+PKG_CHECK_MODULES(APP, [gconf-2.0 gdk-x11-2.0 x11])
-
-
- AC_SUBST(APP_CFLAGS)
diff --git a/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb b/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
new file mode 100644
index 000000000..ceaeccaaa
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_0.0.2.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Provides a bridge between gconf and xsettings"
+HOMEPAGE = "http://svn.o-hand.com/view/matchbox/trunk/settings-daemon/"
+BUGTRACKER = "http://bugzilla.yoctoproject.org/"
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://xsettings-manager.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
+ file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
+DEPENDS = "gconf glib-2.0 gtk+3"
+SECTION = "x11"
+
+# SRCREV tagged 0.0.2
+SRCREV = "b2e5da502f8c5ff75e9e6da771372ef8e40fd9a2"
+SRC_URI = "git://git.yoctoproject.org/xsettings-daemon \
+ file://addsoundkeys.patch;apply=yes \
+ file://70settings-daemon.sh \
+ "
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig gconf distro_features_check
+
+FILES_${PN} = "${bindir}/* ${sysconfdir}"
+
+# Requires gdk-x11-2.0 which is provided by gtk when x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install_append () {
+ install -d ${D}/${sysconfdir}/X11/Xsession.d
+ install -m 755 ${WORKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/
+}
diff --git a/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_git.bb b/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_git.bb
deleted file mode 100644
index c0615530a..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/settings-daemon/settings-daemon_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Provides a bridge between gconf and xsettings"
-HOMEPAGE = "http://svn.o-hand.com/view/matchbox/trunk/settings-daemon/"
-BUGTRACKER = "http://bugzilla.yoctoproject.org/"
-LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://xsettings-manager.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b \
- file://xsettings-common.h;endline=22;md5=7cfac9d2d4dc3694cc7eb605cf32a69b"
-DEPENDS = "gconf glib-2.0 gtk+"
-SECTION = "x11"
-SRCREV = "9a99528b02255450db81176abd9bbcc1dab9a4c1"
-PV = "0.0+git${SRCPV}"
-
-
-SRC_URI = "git://git.yoctoproject.org/xsettings-daemon \
- file://addsoundkeys.patch;apply=yes \
- file://70settings-daemon.sh \
- file://dso_linking_change_build_fix.patch"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig gconf distro_features_check
-
-FILES_${PN} = "${bindir}/* ${sysconfdir}"
-
-# Requires gdk-x11-2.0 which is provided by gtk when x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_install_append () {
- install -d ${D}/${sysconfdir}/X11/Xsession.d
- install -m 755 ${WORKDIR}/70settings-daemon.sh ${D}/${sysconfdir}/X11/Xsession.d/
-}
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch
new file mode 100644
index 000000000..615fe4f40
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch
@@ -0,0 +1,48 @@
+From 5760d346b42807b596f479c81f7a6b42eb36065e Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 29 Aug 2016 16:38:11 +0300
+Subject: [PATCH] Fix racy parallel build of WebKit2-4.0.gir
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/WebKit2/PlatformGTK.cmake | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
+index adaa010..f18cf8a 100644
+--- a/Source/WebKit2/PlatformGTK.cmake
++++ b/Source/WebKit2/PlatformGTK.cmake
+@@ -906,8 +906,9 @@ endif ()
+ string(REGEX MATCHALL "-L[^ ]*"
+ INTROSPECTION_ADDITIONAL_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
+
+-add_custom_command(
+- OUTPUT ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
++# This is a target and not a command because it's used to build another .gir
++# and a .typelib, which would trigger two racy parallel builds when using command
++add_custom_target(WebKit2-${WEBKITGTK_API_VERSION}-gir
+ DEPENDS WebKit2
+ DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
+ COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS} LDFLAGS=
+@@ -950,7 +951,7 @@ add_custom_command(
+ add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/WebKit2WebExtension-${WEBKITGTK_API_VERSION}.gir
+ DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
+- DEPENDS ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
++ DEPENDS WebKit2-${WEBKITGTK_API_VERSION}-gir
+ COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS}
+ LDFLAGS="${INTROSPECTION_ADDITIONAL_LDFLAGS}"
+ ${LOADER_LIBRARY_PATH_VAR}="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
+@@ -1004,7 +1005,7 @@ add_custom_command(
+
+ add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.typelib
+- DEPENDS ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
++ DEPENDS WebKit2-${WEBKITGTK_API_VERSION}-gir
+ COMMAND ${INTROSPECTION_COMPILER} --includedir=${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir -o ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.typelib
+ )
+
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch
index 3d004db29..93a69c029 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch
@@ -13,11 +13,11 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Source/cmake/OptionsGTK.cmake | 6 ------
1 file changed, 6 deletions(-)
-diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
-index e5f1f5b..4698036 100644
---- a/Source/cmake/OptionsGTK.cmake
-+++ b/Source/cmake/OptionsGTK.cmake
-@@ -443,12 +443,6 @@ if (USE_LIBHYPHEN)
+Index: webkitgtk-2.12.1/Source/cmake/OptionsGTK.cmake
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/cmake/OptionsGTK.cmake
++++ webkitgtk-2.12.1/Source/cmake/OptionsGTK.cmake
+@@ -424,12 +424,6 @@ if (USE_LIBHYPHEN)
endif ()
endif ()
@@ -27,9 +27,6 @@ index e5f1f5b..4698036 100644
- set(ENABLE_INTROSPECTION OFF)
-endif ()
-
- set(DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR ${DERIVED_SOURCES_DIR}/webkitdom)
- set(DERIVED_SOURCES_WEBKITGTK_DIR ${DERIVED_SOURCES_DIR}/webkitgtk)
- set(DERIVED_SOURCES_WEBKITGTK_API_DIR ${DERIVED_SOURCES_WEBKITGTK_DIR}/webkit)
---
-2.7.0
-
+ # Override the cached variable, gtk-doc does not really work when building on Mac.
+ if (APPLE)
+ set(ENABLE_GTKDOC OFF)
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
new file mode 100644
index 000000000..586dd2375
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
@@ -0,0 +1,49 @@
+From 4eeeaec775e190cf3f5885d7c6717acebd0201a8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 11 Aug 2016 17:13:51 +0300
+Subject: [PATCH] Tweak gtkdoc settings so that gtkdoc generation works under
+ OpenEmbedded build system
+
+This requires setting a few environment variables so that the transient
+binary is build and linked correctly, and disabling the tweaks to RUN
+variable from gtkdoc.py script so that our qemu wrapper is taken into use.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/PlatformGTK.cmake | 2 +-
+ Tools/gtk/gtkdoc.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Source/PlatformGTK.cmake b/Source/PlatformGTK.cmake
+index af4d2e3..b7b93c7 100644
+--- a/Source/PlatformGTK.cmake
++++ b/Source/PlatformGTK.cmake
+@@ -25,7 +25,7 @@ macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args)
+ add_custom_command(
+ OUTPUT "${CMAKE_BINARY_DIR}/${_stamp_name}"
+ DEPENDS ${DocumentationDependencies}
+- COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} ${CMAKE_SOURCE_DIR}/Tools/gtk/generate-gtkdoc ${_extra_args}
++ COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} LD=${CMAKE_C_COMPILER} LDFLAGS=${CMAKE_C_LINK_FLAGS} RUN=${CMAKE_BINARY_DIR}/gtkdoc-qemuwrapper GIR_EXTRA_LIBS_PATH=${CMAKE_BINARY_DIR}/lib ${CMAKE_SOURCE_DIR}/Tools/gtk/generate-gtkdoc ${_extra_args}
+ COMMAND touch ${_stamp_name}
+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+ )
+diff --git a/Tools/gtk/gtkdoc.py b/Tools/gtk/gtkdoc.py
+index 4c8237b..c0205f0 100644
+--- a/Tools/gtk/gtkdoc.py
++++ b/Tools/gtk/gtkdoc.py
+@@ -318,9 +318,9 @@ class GTKDoc(object):
+ additional_ldflags = '%s %s' % (additional_ldflags, arg)
+ ldflags = ' "-L%s" %s ' % (self.library_path, additional_ldflags) + ldflags
+ current_ld_library_path = env.get('LD_LIBRARY_PATH')
+- if current_ld_library_path:
++ if current_ld_library_path and 'RUN' not in env:
+ env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path)
+- else:
++ elif 'RUN' not in env:
+ env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path
+
+ if ldflags:
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
new file mode 100644
index 000000000..25b3c9f24
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch
@@ -0,0 +1,223 @@
+From 53a00058184cd710c6f4375f4daab49d7e885a30 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 17 Apr 2016 12:35:41 -0700
+Subject: [PATCH] WebKitMacros: Append to -I and not to -isystem
+
+gcc-6 has now introduced stdlib.h in libstdc++ for better
+compliance and its including the C library stdlib.h using
+include_next which is sensitive to order of system header
+include paths. Its infact better to not tinker with the
+system header include paths at all. Since adding /usr/include
+to -system is redundant and compiler knows about it moreover
+now with gcc6 it interferes with compiler's functioning
+and ends up with compile errors e.g.
+
+/usr/include/c++/6.0.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ Source/cmake/WebKitMacros.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: webkitgtk-2.12.1/Source/JavaScriptCore/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/JavaScriptCore/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/JavaScriptCore/CMakeLists.txt
+@@ -1311,7 +1311,7 @@ add_subdirectory(shell)
+
+ WEBKIT_WRAP_SOURCELIST(${JavaScriptCore_SOURCES})
+ include_directories(${JavaScriptCore_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
+ add_library(JavaScriptCore ${JavaScriptCore_LIBRARY_TYPE} ${JavaScriptCore_HEADERS} ${JavaScriptCore_SOURCES})
+ target_link_libraries(JavaScriptCore ${JavaScriptCore_LIBRARIES})
+ set_target_properties(JavaScriptCore PROPERTIES COMPILE_DEFINITIONS "BUILDING_JavaScriptCore")
+Index: webkitgtk-2.12.1/Source/WTF/wtf/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WTF/wtf/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/WTF/wtf/CMakeLists.txt
+@@ -286,7 +286,7 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+
+ WEBKIT_WRAP_SOURCELIST(${WTF_SOURCES})
+ include_directories(${WTF_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WTF_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WTF_SYSTEM_INCLUDE_DIRECTORIES})
+ add_library(WTF ${WTF_LIBRARY_TYPE} ${WTF_HEADERS} ${WTF_SOURCES})
+ target_link_libraries(WTF ${WTF_LIBRARIES})
+ set_target_properties(WTF PROPERTIES COMPILE_DEFINITIONS "BUILDING_WTF")
+Index: webkitgtk-2.12.1/Source/WebCore/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebCore/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/WebCore/CMakeLists.txt
+@@ -3748,7 +3748,7 @@ WEBKIT_WRAP_SOURCELIST(${WebCore_IDL_FIL
+ WEBKIT_WRAP_SOURCELIST(${WebCoreTestSupport_IDL_FILES} ${WebCoreTestSupport_SOURCES})
+
+ include_directories(${WebCore_INCLUDE_DIRECTORIES} ${WebCoreTestSupport_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WebCore_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WebCore_SYSTEM_INCLUDE_DIRECTORIES})
+
+ if (MSVC)
+ ADD_PRECOMPILED_HEADER("WebCorePrefix.h" "WebCorePrefix.cpp" WebCore_SOURCES)
+Index: webkitgtk-2.12.1/Source/WebKit/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebKit/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/WebKit/CMakeLists.txt
+@@ -28,7 +28,7 @@ set(WebKit_LIBRARIES
+ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+
+ include_directories(${WebKit_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WebKit_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WebKit_SYSTEM_INCLUDE_DIRECTORIES})
+
+ if (MSVC)
+ ADD_PRECOMPILED_HEADER("WebKitPrefix.h" "win/WebKitPrefix.cpp" WebKit_SOURCES)
+Index: webkitgtk-2.12.1/Source/WebKit2/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebKit2/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/WebKit2/CMakeLists.txt
+@@ -756,7 +756,7 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+ GENERATE_WEBKIT2_MESSAGE_SOURCES(WebKit2_DERIVED_SOURCES "${WebKit2_MESSAGES_IN_FILES}")
+
+ include_directories(${WebKit2_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WebKit2_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WebKit2_SYSTEM_INCLUDE_DIRECTORIES})
+ add_library(WebKit2 ${WebKit2_LIBRARY_TYPE} ${WebKit2_SOURCES} ${WebKit2_DERIVED_SOURCES})
+
+ add_dependencies(WebKit2 WebCore ${WEBKIT2_EXTRA_DEPENDENCIES})
+Index: webkitgtk-2.12.1/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt
++++ webkitgtk-2.12.1/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt
+@@ -42,7 +42,7 @@ set(WebKitTestNetscapePlugin_SYSTEM_INCL
+ )
+
+ include_directories(${WebKitTestNetscapePlugin_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WebKitTestNetscapePlugin_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WebKitTestNetscapePlugin_SYSTEM_INCLUDE_DIRECTORIES})
+
+ set(WebKitTestNetscapePlugin_LIBRARIES
+ ${X11_LIBRARIES}
+Index: webkitgtk-2.12.1/Tools/ImageDiff/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/ImageDiff/CMakeLists.txt
++++ webkitgtk-2.12.1/Tools/ImageDiff/CMakeLists.txt
+@@ -14,7 +14,7 @@ set(IMAGE_DIFF_LIBRARIES
+ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+
+ include_directories(${IMAGE_DIFF_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${IMAGE_DIFF_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${IMAGE_DIFF_SYSTEM_INCLUDE_DIRECTORIES})
+ add_executable(ImageDiff ${IMAGE_DIFF_SOURCES})
+ target_link_libraries(ImageDiff ${IMAGE_DIFF_LIBRARIES})
+ set_target_properties(ImageDiff PROPERTIES FOLDER "Tools")
+Index: webkitgtk-2.12.1/Tools/MiniBrowser/gtk/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/MiniBrowser/gtk/CMakeLists.txt
++++ webkitgtk-2.12.1/Tools/MiniBrowser/gtk/CMakeLists.txt
+@@ -55,7 +55,7 @@ endif ()
+ add_definitions(-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_6)
+
+ include_directories(${MiniBrowser_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${MiniBrowser_SYSTEM_INCLUDE_DIRECTORIES})
+ add_executable(MiniBrowser ${MiniBrowser_SOURCES})
+ target_link_libraries(MiniBrowser ${MiniBrowser_LIBRARIES})
+ set_target_properties(MiniBrowser PROPERTIES FOLDER "Tools")
+Index: webkitgtk-2.12.1/Tools/WebKitTestRunner/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/WebKitTestRunner/CMakeLists.txt
++++ webkitgtk-2.12.1/Tools/WebKitTestRunner/CMakeLists.txt
+@@ -115,7 +115,7 @@ GENERATE_BINDINGS(WebKitTestRunner_SOURC
+ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+
+ include_directories(${WebKitTestRunner_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${WebKitTestRunner_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${WebKitTestRunner_SYSTEM_INCLUDE_DIRECTORIES})
+
+ add_library(TestRunnerInjectedBundle SHARED ${WebKitTestRunnerInjectedBundle_SOURCES})
+ target_link_libraries(TestRunnerInjectedBundle ${WebKitTestRunner_LIBRARIES})
+Index: webkitgtk-2.12.1/Source/WebCore/PlatformGTK.cmake
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebCore/PlatformGTK.cmake
++++ webkitgtk-2.12.1/Source/WebCore/PlatformGTK.cmake
+@@ -324,7 +324,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2)
+ ${GTK2_INCLUDE_DIRS}
+ ${GDK2_INCLUDE_DIRS}
+ )
+- target_include_directories(WebCorePlatformGTK2 SYSTEM PRIVATE
++ target_include_directories(WebCorePlatformGTK2 PRIVATE
+ ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
+ )
+ target_link_libraries(WebCorePlatformGTK2
+@@ -366,7 +366,7 @@ WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebCoreP
+ target_include_directories(WebCorePlatformGTK PRIVATE
+ ${WebCore_INCLUDE_DIRECTORIES}
+ )
+-target_include_directories(WebCorePlatformGTK SYSTEM PRIVATE
++target_include_directories(WebCorePlatformGTK PRIVATE
+ ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
+ ${GTK_INCLUDE_DIRS}
+ ${GDK_INCLUDE_DIRS}
+@@ -384,7 +384,7 @@ include_directories(
+ "${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}"
+ )
+
+-include_directories(SYSTEM
++include_directories(
+ ${WebCore_SYSTEM_INCLUDE_DIRECTORIES}
+ )
+
+Index: webkitgtk-2.12.1/Tools/TestWebKitAPI/PlatformGTK.cmake
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/TestWebKitAPI/PlatformGTK.cmake
++++ webkitgtk-2.12.1/Tools/TestWebKitAPI/PlatformGTK.cmake
+@@ -20,7 +20,7 @@ include_directories(
+ ${WEBKIT2_DIR}/UIProcess/API/gtk
+ )
+
+-include_directories(SYSTEM
++include_directories(
+ ${GDK3_INCLUDE_DIRS}
+ ${GLIB_INCLUDE_DIRS}
+ ${GTK3_INCLUDE_DIRS}
+Index: webkitgtk-2.12.1/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt
++++ webkitgtk-2.12.1/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt
+@@ -23,7 +23,7 @@ include_directories(
+ ${TOOLS_DIR}/TestWebKitAPI/gtk/WebKit2Gtk
+ )
+
+-include_directories(SYSTEM
++include_directories(
+ ${ATSPI_INCLUDE_DIRS}
+ ${GLIB_INCLUDE_DIRS}
+ ${GSTREAMER_INCLUDE_DIRS}
+Index: webkitgtk-2.12.1/Source/WebKit2/PlatformGTK.cmake
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebKit2/PlatformGTK.cmake
++++ webkitgtk-2.12.1/Source/WebKit2/PlatformGTK.cmake
+@@ -816,7 +816,7 @@ if (ENABLE_PLUGIN_PROCESS_GTK2)
+ target_include_directories(WebKitPluginProcess2 PRIVATE
+ ${WebKit2CommonIncludeDirectories}
+ )
+- target_include_directories(WebKitPluginProcess2 SYSTEM PRIVATE
++ target_include_directories(WebKitPluginProcess2 PRIVATE
+ ${WebKit2CommonSystemIncludeDirectories}
+ ${GTK2_INCLUDE_DIRS}
+ ${GDK2_INCLUDE_DIRS}
+Index: webkitgtk-2.12.1/Source/JavaScriptCore/shell/CMakeLists.txt
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/JavaScriptCore/shell/CMakeLists.txt
++++ webkitgtk-2.12.1/Source/JavaScriptCore/shell/CMakeLists.txt
+@@ -20,7 +20,7 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+
+ WEBKIT_WRAP_SOURCELIST(${JSC_SOURCES})
+ include_directories(./ ${JavaScriptCore_INCLUDE_DIRECTORIES})
+-include_directories(SYSTEM ${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
++include_directories(${JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES})
+ add_executable(jsc ${JSC_SOURCES})
+ target_link_libraries(jsc ${JSC_LIBRARIES})
+ set_target_properties(jsc PROPERTIES FOLDER "JavaScriptCore")
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
index 44b43cdbb..3f71297f5 100644
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
@@ -13,28 +13,25 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Source/WebKit2/PlatformGTK.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
-index 706f1e8..14a1c3b 100644
---- a/Source/WebKit2/PlatformGTK.cmake
-+++ b/Source/WebKit2/PlatformGTK.cmake
-@@ -884,7 +884,7 @@ add_custom_command(
+Index: webkitgtk-2.12.1/Source/WebKit2/PlatformGTK.cmake
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/WebKit2/PlatformGTK.cmake
++++ webkitgtk-2.12.1/Source/WebKit2/PlatformGTK.cmake
+@@ -910,7 +910,7 @@ add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
DEPENDS WebKit2
DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
- COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations LDFLAGS=
+ COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS} LDFLAGS=
- LD_LIBRARY_PATH="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
+ ${LOADER_LIBRARY_PATH_VAR}="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
${INTROSPECTION_SCANNER}
--quiet
-@@ -930,7 +930,7 @@ add_custom_command(
+@@ -951,7 +951,7 @@ add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/WebKit2WebExtension-${WEBKITGTK_API_VERSION}.gir
DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
DEPENDS ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
- COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations
+ COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS}
LDFLAGS="${INTROSPECTION_ADDITIONAL_LDFLAGS}"
- LD_LIBRARY_PATH="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
+ ${LOADER_LIBRARY_PATH_VAR}="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
${INTROSPECTION_SCANNER}
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/musl-fixes.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/musl-fixes.patch
new file mode 100644
index 000000000..4fdd56fea
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/musl-fixes.patch
@@ -0,0 +1,48 @@
+Replace __GLIBC__ with __linux__ since musl also supports it
+so checking __linux__ is more accomodating
+
+See http://git.alpinelinux.org/cgit/aports/tree/community/webkit2gtk/musl-fixes.patch?id=219435d86d7e8fac9474344a7431c62bd2525184
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: webkitgtk-2.12.1/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+===================================================================
+--- webkitgtk-2.12.1.orig/Source/JavaScriptCore/heap/MachineStackMarker.cpp
++++ webkitgtk-2.12.1/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+@@ -566,7 +566,7 @@ void* MachineThreads::Thread::Registers:
+ #error Unknown Architecture
+ #endif
+
+-#elif defined(__GLIBC__) && ENABLE(JIT)
++#elif defined(__linux__) && ENABLE(JIT)
+
+ #if CPU(X86)
+ return reinterpret_cast<void*>((uintptr_t) regs.machineContext.gregs[REG_ESP]);
+@@ -665,7 +665,7 @@ void* MachineThreads::Thread::Registers:
+ #error Unknown Architecture
+ #endif
+
+-#elif defined(__GLIBC__)
++#elif defined(__linux__) // glibc and musl
+
+ // The following sequence depends on glibc's sys/ucontext.h.
+ #if CPU(X86)
+@@ -747,7 +747,7 @@ void* MachineThreads::Thread::Registers:
+ #error Unknown Architecture
+ #endif
+
+-#elif defined(__GLIBC__)
++#elif defined(__linux__) // glibc and musl
+
+ // The following sequence depends on glibc's sys/ucontext.h.
+ #if CPU(X86)
+@@ -838,7 +838,7 @@ void* MachineThreads::Thread::Registers:
+ #error Unknown Architecture
+ #endif
+
+-#elif defined(__GLIBC__)
++#elif defined(__linux__) // glibc and musl
+
+ // The following sequence depends on glibc's sys/ucontext.h.
+ #if CPU(X86)
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/files/ppc-musl-fix.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/ppc-musl-fix.patch
new file mode 100644
index 000000000..5f58e4953
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/files/ppc-musl-fix.patch
@@ -0,0 +1,26 @@
+ucontext structure is different between musl and glibc for ppc
+therefore its not enough just to check for arch alone, we also
+need to check for libc type.
+
+Fixes errors like
+
+Source/JavaScriptCore/heap/MachineStackMarker.cpp:90:65: error: 'struct mcontext_t' has no member named 'uc_regs'; did you mean 'gregs'?
+ thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs;
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: webkitgtk-2.12.3/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+===================================================================
+--- webkitgtk-2.12.3.orig/Source/JavaScriptCore/heap/MachineStackMarker.cpp
++++ webkitgtk-2.12.3/Source/JavaScriptCore/heap/MachineStackMarker.cpp
+@@ -86,7 +86,7 @@ static void pthreadSignalHandlerSuspendR
+ }
+
+ ucontext_t* userContext = static_cast<ucontext_t*>(ucontext);
+-#if CPU(PPC)
++#if CPU(PPC) && defined(__GLIBC__)
+ thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs;
+ #else
+ thread->suspendedMachineContext = userContext->uc_mcontext;
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-backtrace-on-linux-when-using-glibc.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-backtrace-on-linux-when-using-glibc.patch
deleted file mode 100644
index d7e4ef626..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-backtrace-on-linux-when-using-glibc.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 0b68ad206d2d90df78d91cad4da19152084014cf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 16 Sep 2015 05:15:04 +0000
-Subject: [PATCH] Enable backtrace on linux when using glibc
-
-We dont have backtrace() implemented on non-glibc libc's on linux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Accepted
-
- Source/WTF/wtf/Assertions.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Source/WTF/wtf/Assertions.cpp b/Source/WTF/wtf/Assertions.cpp
-index 191d53f..a4d86b5 100644
---- a/Source/WTF/wtf/Assertions.cpp
-+++ b/Source/WTF/wtf/Assertions.cpp
-@@ -68,7 +68,7 @@
- #include <unistd.h>
- #endif
-
--#if OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))
-+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
- #include <cxxabi.h>
- #include <dlfcn.h>
- #include <execinfo.h>
-@@ -225,7 +225,7 @@ void WTFReportArgumentAssertionFailure(const char* file, int line, const char* f
-
- void WTFGetBacktrace(void** stack, int* size)
- {
--#if OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))
-+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__))
- *size = backtrace(stack, *size);
- #elif OS(WINDOWS)
- // The CaptureStackBackTrace function is available in XP, but it is not defined
---
-2.5.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-non-glibc-libraries-on-linux.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-non-glibc-libraries-on-linux.patch
deleted file mode 100644
index 77ebf37ef..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-non-glibc-libraries-on-linux.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 30e2ef302a329850ba55c7c458c98cbf396186ec Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Dec 2015 21:47:34 +0000
-Subject: [PATCH] Fix build with non-glibc libraries on linux
-
-qualify isnan() calls with std namespace
-malloc_trim is glibc specific API so guard it with __GLIBC__
-let ctype be used on non-glibc ( musl ) C library
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Accepted
-
- Source/JavaScriptCore/runtime/Options.cpp | 2 +-
- Source/WTF/wtf/DisallowCType.h | 2 +-
- Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp | 2 ++
- 3 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/Source/JavaScriptCore/runtime/Options.cpp b/Source/JavaScriptCore/runtime/Options.cpp
-index fe830b4..c49aade 100644
---- a/Source/JavaScriptCore/runtime/Options.cpp
-+++ b/Source/JavaScriptCore/runtime/Options.cpp
-@@ -610,7 +610,7 @@ bool Option::operator==(const Option& other) const
- case Options::Type::unsignedType:
- return m_entry.unsignedVal == other.m_entry.unsignedVal;
- case Options::Type::doubleType:
-- return (m_entry.doubleVal == other.m_entry.doubleVal) || (isnan(m_entry.doubleVal) && isnan(other.m_entry.doubleVal));
-+ return (m_entry.doubleVal == other.m_entry.doubleVal) || (std::isnan(m_entry.doubleVal) && std::isnan(other.m_entry.doubleVal));
- case Options::Type::int32Type:
- return m_entry.int32Val == other.m_entry.int32Val;
- case Options::Type::optionRangeType:
-diff --git a/Source/WTF/wtf/DisallowCType.h b/Source/WTF/wtf/DisallowCType.h
-index d85e767..dc6bcab 100644
---- a/Source/WTF/wtf/DisallowCType.h
-+++ b/Source/WTF/wtf/DisallowCType.h
-@@ -40,7 +40,7 @@
- // are used from wx headers. On GTK+ for Mac many GTK+ files include <libintl.h>
- // or <glib/gi18n-lib.h>, which in turn include <xlocale/_ctype.h> which uses
- // isacii().
--#if !(OS(DARWIN) && PLATFORM(GTK)) && !PLATFORM(EFL) && !defined(_LIBCPP_VERSION)
-+#if !(OS(DARWIN) && PLATFORM(GTK)) && !PLATFORM(EFL) && !defined(_LIBCPP_VERSION) && defined(__GLIBC__)
-
- #include <ctype.h>
-
-diff --git a/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp b/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp
-index ea61909..1495642 100644
---- a/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp
-+++ b/Source/WebCore/platform/linux/MemoryPressureHandlerLinux.cpp
-@@ -202,7 +202,9 @@ void MemoryPressureHandler::respondToMemoryPressure(Critical critical, Synchrono
- void MemoryPressureHandler::platformReleaseMemory(Critical)
- {
- ReliefLogger log("Run malloc_trim");
-+#ifdef __GLIBC__
- malloc_trim(0);
-+#endif
- }
-
- void MemoryPressureHandler::ReliefLogger::platformLog()
---
-2.6.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/clang.patch b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/clang.patch
deleted file mode 100644
index e5267138b..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk/clang.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Clang's builtin for clear_cache accepts char* and errors out when using void*,
-using char* work on both gcc and clang since char* is auto-converted to void* in gcc case
-
-Source/JavaScriptCore/assembler/ARM64Assembler.h:2857:33: error: cannot initialize a parameter of type 'char *' with an rvalue of type 'void *'
- __builtin___clear_cache(reinterpret_cast<void*>(begin), reinterpret_cast<void*>(end));
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-1 error generated.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Accepted
-
-Index: webkitgtk-2.8.5/Source/JavaScriptCore/assembler/ARM64Assembler.h
-===================================================================
---- webkitgtk-2.8.5.orig/Source/JavaScriptCore/assembler/ARM64Assembler.h
-+++ webkitgtk-2.8.5/Source/JavaScriptCore/assembler/ARM64Assembler.h
-@@ -2854,7 +2854,7 @@ public:
- #if OS(LINUX) && COMPILER(GCC)
- static inline void linuxPageFlush(uintptr_t begin, uintptr_t end)
- {
-- __builtin___clear_cache(reinterpret_cast<void*>(begin), reinterpret_cast<void*>(end));
-+ __builtin___clear_cache(reinterpret_cast<char*>(begin), reinterpret_cast<char*>(end));
- }
- #endif
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb
deleted file mode 100644
index 8eb6b9f3b..000000000
--- a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.10.7.bb
+++ /dev/null
@@ -1,88 +0,0 @@
-SUMMARY = "WebKit web rendering engine for the GTK+ platform"
-HOMEPAGE = "http://www.webkitgtk.org/"
-BUGTRACKER = "http://bugs.webkit.org/"
-
-LICENSE = "BSD & LGPLv2+"
-LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
- file://Source/WebKit/LICENSE;md5=4646f90082c40bcf298c285f8bab0b12 \
- file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
- file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
- file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
- "
-
-SRC_URI = "\
- http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
- file://clang.patch \
- file://0001-Enable-backtrace-on-linux-when-using-glibc.patch \
- file://0001-Fix-build-with-non-glibc-libraries-on-linux.patch \
- file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
- file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
- file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \
- "
-SRC_URI[md5sum] = "84832b9d8329413b4f1d87df5f7e8efe"
-SRC_URI[sha256sum] = "990d62c82ed6dede31a6ff0a82d847f16b812842ff3e1093d17113627652864e"
-
-inherit cmake lib_package pkgconfig perlnative pythonnative distro_features_check upstream-version-is-even gobject-introspection
-
-# depends on libxt
-REQUIRED_DISTRO_FEATURES = "x11"
-
-DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn gnutls \
- gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \
- pango icu bison-native gnome-common gawk intltool-native libwebp \
- atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \
- ruby-native libnotify gstreamer1.0-plugins-bad \
- "
-
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \
- ${@base_contains('DISTRO_FEATURES', 'opengl', 'webgl', '' ,d)} \
- enchant \
- gtk2 \
- libsecret \
- "
-
-PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland"
-PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11"
-PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
-PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant"
-PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+"
-PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
-PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
-PACKAGECONFIG[libsecret] = "-DENABLE_CREDENTIAL_STORAGE=ON,-DENABLE_CREDENTIAL_STORAGE=OFF,libsecret"
-PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
-
-EXTRA_OECMAKE = " \
- -DPORT=GTK \
- -DCMAKE_BUILD_TYPE=Release \
- ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
- -DENABLE_GTKDOC=OFF \
- -DENABLE_MINIBROWSER=ON \
- "
-
-# Javascript JIT is not supported on powerpc
-EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF "
-
-# ARM JIT code does not build on ARMv5/6 anymore, apparently they test only on v7 onwards
-EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF "
-
-# binutils 2.25.1 has a bug on aarch64:
-# https://sourceware.org/bugzilla/show_bug.cgi?id=18430
-EXTRA_OECMAKE_append_aarch64 = " -DUSE_LD_GOLD=OFF "
-
-# JIT not supported on MIPS either
-EXTRA_OECMAKE_append_mips = " -DENABLE_JIT=OFF "
-EXTRA_OECMAKE_append_mips64 = " -DENABLE_JIT=OFF "
-
-FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"
-
-# http://errors.yoctoproject.org/Errors/Details/20370/
-ARM_INSTRUCTION_SET = "arm"
-
-# Invalid data memory access: 0x00000000
-# ...
-# qemu: uncaught target signal 11 (Segmentation fault) - core dumped
-# Segmentation fault
-EXTRA_OECMAKE_append_powerpc = " -DENABLE_INTROSPECTION=OFF "
-
diff --git a/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.12.5.bb b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.12.5.bb
new file mode 100644
index 000000000..941d0e206
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-sato/webkit/webkitgtk_2.12.5.bb
@@ -0,0 +1,108 @@
+SUMMARY = "WebKit web rendering engine for the GTK+ platform"
+HOMEPAGE = "http://www.webkitgtk.org/"
+BUGTRACKER = "http://bugs.webkit.org/"
+
+LICENSE = "BSD & LGPLv2+"
+LIC_FILES_CHKSUM = "file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
+ file://Source/WebKit/LICENSE;md5=4646f90082c40bcf298c285f8bab0b12 \
+ file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
+ file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
+ file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
+ "
+
+SRC_URI = "\
+ http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
+ file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
+ file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
+ file://0001-OptionsGTK.cmake-drop-the-hardcoded-introspection-gt.patch \
+ file://0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch \
+ file://musl-fixes.patch \
+ file://ppc-musl-fix.patch \
+ file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
+ file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
+ "
+SRC_URI[md5sum] = "7a9ea00ec195488db90fdeb2d174ddaf"
+SRC_URI[sha256sum] = "6b147854b864a5f115fadb97b2b6200b2f696db015216a34e7298d11c88b1c40"
+
+inherit cmake lib_package pkgconfig gobject-introspection perlnative distro_features_check upstream-version-is-even gtk-doc
+
+# We cannot inherit pythonnative because that would conflict with inheriting python3native
+# (which is done by gobject-introspection). But webkit only needs the path to native Python 2.x binary
+# so we simply set it explicitly here.
+EXTRANATIVEPATH += "python-native"
+
+# depends on libxt
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "zlib libsoup-2.4 curl libxml2 cairo libxslt libxt libidn gnutls \
+ gtk+3 gstreamer1.0 gstreamer1.0-plugins-base flex-native gperf-native sqlite3 \
+ pango icu bison-native gawk intltool-native libwebp \
+ atk udev harfbuzz jpeg libpng pulseaudio librsvg libtheora libvorbis libxcomposite libxtst \
+ ruby-native libnotify gstreamer1.0-plugins-bad \
+ "
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'wayland' ,d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'webgl', '' ,d)} \
+ enchant \
+ libsecret \
+ "
+
+PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND_TARGET=ON,-DENABLE_WAYLAND_TARGET=OFF,wayland"
+PACKAGECONFIG[x11] = "-DENABLE_X11_TARGET=ON,-DENABLE_X11_TARGET=OFF,virtual/libx11"
+PACKAGECONFIG[geoclue] = "-DENABLE_GEOLOCATION=ON,-DENABLE_GEOLOCATION=OFF,geoclue"
+PACKAGECONFIG[enchant] = "-DENABLE_SPELLCHECK=ON,-DENABLE_SPELLCHECK=OFF,enchant"
+PACKAGECONFIG[gtk2] = "-DENABLE_PLUGIN_PROCESS_GTK2=ON,-DENABLE_PLUGIN_PROCESS_GTK2=OFF,gtk+"
+PACKAGECONFIG[gles2] = "-DENABLE_GLES2=ON,-DENABLE_GLES2=OFF,virtual/libgles2"
+PACKAGECONFIG[webgl] = "-DENABLE_WEBGL=ON,-DENABLE_WEBGL=OFF,virtual/libgl"
+PACKAGECONFIG[libsecret] = "-DENABLE_CREDENTIAL_STORAGE=ON,-DENABLE_CREDENTIAL_STORAGE=OFF,libsecret"
+PACKAGECONFIG[libhyphen] = "-DUSE_LIBHYPHEN=ON,-DUSE_LIBHYPHEN=OFF,libhyphen"
+
+EXTRA_OECMAKE = " \
+ -DPORT=GTK \
+ -DCMAKE_BUILD_TYPE=Release \
+ ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
+ ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \
+ -DENABLE_MINIBROWSER=ON \
+ "
+
+# Javascript JIT is not supported on powerpc
+EXTRA_OECMAKE_append_powerpc = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE_append_powerpc64 = " -DENABLE_JIT=OFF "
+
+# ARM JIT code does not build on ARMv4/5/6 anymore
+EXTRA_OECMAKE_append_armv5 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF "
+
+# binutils 2.25.1 has a bug on aarch64:
+# https://sourceware.org/bugzilla/show_bug.cgi?id=18430
+EXTRA_OECMAKE_append_aarch64 = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE_append_mips = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE_append_mips64 = " -DUSE_LD_GOLD=OFF "
+EXTRA_OECMAKE_append_toolchain-clang = " -DUSE_LD_GOLD=OFF "
+
+# JIT not supported on MIPS either
+EXTRA_OECMAKE_append_mips = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE_append_mips64 = " -DENABLE_JIT=OFF "
+
+SECURITY_CFLAGS_remove_aarch64 = "-fpie"
+SECURITY_CFLAGS_append_aarch64 = " -fPIE"
+
+FILES_${PN} += "${libdir}/webkit2gtk-4.0/injected-bundle/libwebkit2gtkinjectedbundle.so"
+
+# http://errors.yoctoproject.org/Errors/Details/20370/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv6 = "arm"
+
+# https://bugzilla.yoctoproject.org/show_bug.cgi?id=9474
+# https://bugs.webkit.org/show_bug.cgi?id=159880
+# JSC JIT can build on ARMv7 with -marm, but doesn't work on runtime.
+# Upstream only tests regularly the JSC JIT on ARMv7 with Thumb2 (-mthumb).
+ARM_INSTRUCTION_SET_armv7a = "thumb"
+ARM_INSTRUCTION_SET_armv7r = "thumb"
+ARM_INSTRUCTION_SET_armv7ve = "thumb"
+
+# WebKit2-4.0: ../../libgpg-error-1.21/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
+# qemu: uncaught target signal 6 (Aborted) - core dumped
+EXTRA_OECMAKE_append_mips64 = " -DENABLE_INTROSPECTION=OFF -DENABLE_GTKDOC=OFF"
diff --git a/import-layers/yocto-poky/meta/recipes-support/apr/apr_1.5.2.bb b/import-layers/yocto-poky/meta/recipes-support/apr/apr_1.5.2.bb
index db1530530..302c93504 100644
--- a/import-layers/yocto-poky/meta/recipes-support/apr/apr_1.5.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/apr/apr_1.5.2.bb
@@ -38,6 +38,9 @@ CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sct
# x86_64-linux-libtool: error: specify a tag with '--tag'
CCACHE = ""
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
do_configure_prepend() {
# Avoid absolute paths for grep since it causes failures
# when using sstate between different hosts with different
diff --git a/import-layers/yocto-poky/meta/recipes-support/argp-standalone/argp-standalone_1.3.bb b/import-layers/yocto-poky/meta/recipes-support/argp-standalone/argp-standalone_1.3.bb
index d61c8be24..bd0cfdfe4 100644
--- a/import-layers/yocto-poky/meta/recipes-support/argp-standalone/argp-standalone_1.3.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/argp-standalone/argp-standalone_1.3.bb
@@ -1,7 +1,7 @@
# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
# Released under the MIT license (see COPYING.MIT for the terms)
-DESCRIPTION = "Glibc hierarchical argument parsing standalone library"
+SUMMARY = "Glibc hierarchical argument parsing standalone library"
HOMEPAGE = "http://www.lysator.liu.se/~nisse/misc/"
LICENSE = "LGPL-2.1"
LIC_FILES_CHKSUM = "file://argp.h;beginline=1;endline=20;md5=008b7e53dea6f9e1d9fdef0d9cf3184a"
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.18.1.bb b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.18.1.bb
deleted file mode 100644
index b8a93f3dc..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.18.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "AT-SPI 2 Toolkit Bridge"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "d7040a55df975865ab0d74a4b325afb5"
-SRC_URI[sha256sum] = "c4b15f9386d34d464ddad5f6cc85669742c016df87141ceee93513245979c12d"
-
-DEPENDS = "dbus glib-2.0 atk at-spi2-core"
-
-inherit autotools pkgconfig distro_features_check upstream-version-is-even
-
-# The at-spi2-core requires x11 in DISTRO_FEATURES
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
-
-FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/gtk-modules"
-FILES_${PN}-gtk2 = "${libdir}/gtk-2.0/modules/libatk-bridge.*"
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.20.1.bb b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.20.1.bb
new file mode 100644
index 000000000..d4120b604
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-atk_2.20.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "AT-SPI 2 Toolkit Bridge"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "23309b6f8e1623871ace6347fb734dce"
+SRC_URI[sha256sum] = "2358a794e918e8f47ce0c7370eee8fc8a6207ff1afe976ec9ff547a03277bf8e"
+
+DEPENDS = "dbus glib-2.0 atk at-spi2-core"
+
+inherit autotools pkgconfig distro_features_check upstream-version-is-even
+
+# The at-spi2-core requires x11 in DISTRO_FEATURES
+REQUIRED_DISTRO_FEATURES = "x11"
+
+PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
+
+FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/gtk-modules"
+FILES_${PN}-gtk2 = "${libdir}/gtk-2.0/modules/libatk-bridge.*"
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core/0001-build-Add-with-systemduserunitdir.patch b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core/0001-build-Add-with-systemduserunitdir.patch
new file mode 100644
index 000000000..4103eaa2e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core/0001-build-Add-with-systemduserunitdir.patch
@@ -0,0 +1,49 @@
+From 2f47c975ebe52b6916a45ade023ae3bac21bb0e0 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Tue, 21 Jun 2016 16:00:02 +0300
+Subject: [PATCH] build: Add --with-systemduserunitdir
+
+Default to "pkg-config --variable=systemduserunitdir systemd" but
+allow overriding the value.
+
+Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=767911]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ bus/Makefile.am | 2 +-
+ configure.ac | 7 +++++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/bus/Makefile.am b/bus/Makefile.am
+index b189e02..52fbb0b 100644
+--- a/bus/Makefile.am
++++ b/bus/Makefile.am
+@@ -26,7 +26,7 @@ dbusservice_DATA = org.a11y.Bus.service
+ org.a11y.Bus.service: org.a11y.Bus.service.in
+ sed -e $(substitutions) $< > $@.tmp && mv $@.tmp $@
+
+-systemd_userdir = $(prefix)/lib/systemd/user
++systemd_userdir = $(systemduserunitdir)
+ systemd_user_DATA = at-spi-dbus-bus.service
+ at-spi-dbus-bus.service: at-spi-dbus-bus.service.in Makefile
+ sed -e $(substitutions) $< > $@.tmp && mv $@.tmp $@
+diff --git a/configure.ac b/configure.ac
+index f9061c2..2b8eeed 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -183,6 +183,13 @@ else
+ fi
+ AC_SUBST(DBUS_SERVICES_DIR)
+
++AC_ARG_WITH([systemduserunitdir],
++ AS_HELP_STRING([--with-systemduserunitdir=DIR],
++ [Directory for systemd service files]),
++ [],
++ [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
++AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
++
+ AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
+
+ GOBJECT_INTROSPECTION_CHECK([0.9.6])
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.18.3.bb b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.18.3.bb
deleted file mode 100644
index eced59750..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.18.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Assistive Technology Service Provider Interface (dbus core)"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
- file://0001-nls.m4-Take-it-from-gettext-0.15.patch \
- "
-
-SRC_URI[md5sum] = "fc18801e56f6ce6914126f837d42f556"
-SRC_URI[sha256sum] = "ada26add94155f97d0f601a20cb7a0e3fd3ba1588c3520b7288316494027d629"
-
-DEPENDS = "dbus glib-2.0 virtual/libx11 libxi libxtst intltool-native gettext-native"
-
-inherit autotools gtk-doc pkgconfig distro_features_check upstream-version-is-even gobject-introspection
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = "--disable-xevie --with-dbus-daemondir=${bindir}"
-
-FILES_${PN} += "${datadir}/dbus-1/services/*.service \
- ${datadir}/dbus-1/accessibility-services/*.service"
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.20.2.bb b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.20.2.bb
new file mode 100644
index 000000000..199243adf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/atk/at-spi2-core_2.20.2.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Assistive Technology Service Provider Interface (dbus core)"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
+
+MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
+ file://0001-nls.m4-Take-it-from-gettext-0.15.patch \
+ file://0001-build-Add-with-systemduserunitdir.patch \
+ "
+
+SRC_URI[md5sum] = "f6f6303da2e72317f881703f40bf0c62"
+SRC_URI[sha256sum] = "88a4de9d43139f13cca531b47b901bc1b56e0ab06ba899126644abd4ac16a143"
+
+DEPENDS = "dbus glib-2.0 virtual/libx11 libxi libxtst intltool-native"
+
+inherit autotools gtk-doc gettext systemd pkgconfig distro_features_check upstream-version-is-even gobject-introspection
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "--disable-xevie \
+ --with-systemduserunitdir=${systemd_user_unitdir} \
+ --with-dbus-daemondir=${bindir}"
+
+FILES_${PN} += "${datadir}/dbus-1/services/*.service \
+ ${datadir}/dbus-1/accessibility-services/*.service \
+ ${datadir}/defaults/at-spi2 \
+ ${systemd_user_unitdir}/at-spi-dbus-bus.service \
+ "
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.18.0.bb b/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.18.0.bb
deleted file mode 100644
index 3c0e82df6..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.18.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Accessibility toolkit for GNOME"
-HOMEPAGE = "http://live.gnome.org/GAP/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/libs"
-
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://atk/atkutil.c;endline=18;md5=6fd31cd2fdc9b30f619ca8d819bc12d3 \
- file://atk/atk.h;endline=18;md5=fcd7710187e0eae485e356c30d1b0c3b"
-
-DEPENDS = "glib-2.0"
-
-inherit gnomebase gtk-doc upstream-version-is-even gobject-introspection
-
-SRC_URI[archive.md5sum] = "fd3678f35004b4c92e3da39356996054"
-SRC_URI[archive.sha256sum] = "ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECONF = "--disable-glibtest \
- "
diff --git a/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.20.0.bb b/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.20.0.bb
new file mode 100644
index 000000000..0422354e0
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/atk/atk_2.20.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Accessibility toolkit for GNOME"
+HOMEPAGE = "http://live.gnome.org/GAP/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/libs"
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://atk/atkutil.c;endline=18;md5=6fd31cd2fdc9b30f619ca8d819bc12d3 \
+ file://atk/atk.h;endline=18;md5=fcd7710187e0eae485e356c30d1b0c3b"
+
+DEPENDS = "glib-2.0"
+
+inherit gnomebase gtk-doc gettext upstream-version-is-even gobject-introspection
+
+SRC_URI[archive.md5sum] = "5187b0972f4d3905f285540b31395e20"
+SRC_URI[archive.sha256sum] = "493a50f6c4a025f588d380a551ec277e070b28a82e63ef8e3c06b3ee7c1238f0"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF = "--disable-glibtest \
+ "
diff --git a/import-layers/yocto-poky/meta/recipes-support/attr/acl.inc b/import-layers/yocto-poky/meta/recipes-support/attr/acl.inc
index 198fb4fed..37a0218cb 100644
--- a/import-layers/yocto-poky/meta/recipes-support/attr/acl.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/attr/acl.inc
@@ -14,6 +14,7 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/acl/${BP}.src.tar.gz \
file://acl-fix-the-order-of-expected-output-of-getfacl.patch \
file://test-fix-insufficient-quoting-of.patch \
file://test-fixups-on-SELinux-machines-for-root-testcases.patch \
+ file://test-fix-directory-permissions.patch \
"
require ea-acl.inc
@@ -33,7 +34,7 @@ do_install_append() {
inherit ptest
do_install_ptest() {
- tar -cf - test/ --exclude nfs | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=nfs test/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
mkdir ${D}${PTEST_PATH}/include
cp ${S}/include/builddefs ${S}/include/buildmacros ${S}/include/buildrules ${D}${PTEST_PATH}/include/
}
diff --git a/import-layers/yocto-poky/meta/recipes-support/attr/acl/run-ptest b/import-layers/yocto-poky/meta/recipes-support/attr/acl/run-ptest
index 3b31cc99a..a56946d8e 100644
--- a/import-layers/yocto-poky/meta/recipes-support/attr/acl/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-support/attr/acl/run-ptest
@@ -1,7 +1,64 @@
#!/bin/sh
+#
+#This script is used to run acl test suites
-gpasswd -a daemon bin
-make -C test -k tests root-tests |sed \
- -e 's|^\[.*\] \(.*\) -- ok$|PASS: \1|' \
- -e 's|^\[.*\] \(.*\) -- failed|FAIL: \1|'
-gpasswd -d daemon bin
+#umask 077
+
+EXT3_IMAGE=ext3.img
+EXT3_MOUNT_POINT=/mnt/ext3
+
+trap 'rm -f ${EXT3_IMAGE}' EXIT
+
+dd if=/dev/zero of=${EXT3_IMAGE} bs=1M count=1
+if [ "$?" -eq 0 ]; then
+ echo "PASS: dump ext3.img"
+else
+ echo "FAIL: dump ext3.img"
+ exit 1
+fi
+
+mkfs.ext3 -F ${EXT3_IMAGE}
+if [ "$?" -eq 0 ]; then
+ echo "PASS: mkfs.ext3 -F ext3.img"
+else
+ echo "FAIL: mkfs.ext3 -F ext3.img"
+ exit 1
+fi
+
+if [ -d $EXT3_MOUNT_POINT ]; then
+ echo "mount point exist"
+else
+ mkdir -p $EXT3_MOUNT_POINT
+fi
+
+
+mount -o loop,rw,acl ${EXT3_IMAGE} $EXT3_MOUNT_POINT
+if [ "$?" -eq 0 ]; then
+ echo "PASS: mount ext3.img"
+else
+ echo "FAIL: mount ext3.img"
+ exit 1
+fi
+
+cp -rf ./test/ $EXT3_MOUNT_POINT
+
+cd $EXT3_MOUNT_POINT/test/
+
+if sed -e 's!^bin:x:2:$!bin:x:2:daemon!' < /etc/group > gtmp
+then if cp /etc/group group.orig;
+ then cp gtmp /etc/group
+ make -k tests root-tests | sed \
+ -e 's|^\[.*\] \(.*\) -- ok$|PASS: \1|' \
+ -e 's|^\[.*\] \(.*\) -- failed|FAIL: \1|'
+ cp group.orig /etc/group
+ else echo "FAIL: couldn't save original group file."
+ exit 1
+ fi
+else echo "FAIL: couldn't create modified group file."
+ exit 1
+fi
+
+cd -
+umount $EXT3_MOUNT_POINT
+rm -rf $EXT3_MOUNT_POINT
+rm $EXT3_IMAGE
diff --git a/import-layers/yocto-poky/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch b/import-layers/yocto-poky/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch
new file mode 100644
index 000000000..cd4510c0b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/attr/acl/test-fix-directory-permissions.patch
@@ -0,0 +1,24 @@
+commit c45bae84817a70fef6c2b661a07a492a0d23ae85
+Author: Peter Seebach <peter.seebach@windriver.com>
+Date: Wed May 11 15:16:06 2016 -0500
+
+ Fix permissions on temporary directory
+
+ The temporary directory's permissions have to allow other users to
+ view the directory. A default umask of 022 is common, but not mandatory,
+ and secure systems may have more restrictive defaults.
+
+ Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
+
+diff --git a/test/root/permissions.test b/test/root/permissions.test
+index 42615f5..098b52a 100644
+--- a/test/root/permissions.test
++++ b/test/root/permissions.test
+@@ -16,6 +16,7 @@ Cry immediately if we are not running as root.
+ First, set up a temporary directory and create a regular file with
+ defined permissions.
+
++ $ umask 022
+ $ mkdir d
+ $ cd d
+ $ umask 027
diff --git a/import-layers/yocto-poky/meta/recipes-support/attr/attr.inc b/import-layers/yocto-poky/meta/recipes-support/attr/attr.inc
index 68609784d..e8b5d054b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/attr/attr.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/attr/attr.inc
@@ -2,7 +2,7 @@ SUMMARY = "Utilities for manipulating filesystem extended attributes"
HOMEPAGE = "http://savannah.nongnu.org/projects/attr/"
SECTION = "libs"
-DEPENDS = "ncurses virtual/libintl"
+DEPENDS = "virtual/libintl"
LICENSE = "LGPLv2.1+ & GPLv2+"
LICENSE_${PN} = "GPLv2+"
@@ -26,7 +26,7 @@ do_install_append() {
inherit ptest
do_install_ptest() {
- tar -cf - test/ --exclude ext | ( cd ${D}${PTEST_PATH} && tar -xf - )
+ tar -c --exclude=ext test/ | ( cd ${D}${PTEST_PATH} && tar -xf - )
mkdir ${D}${PTEST_PATH}/include
for i in builddefs buildmacros buildrules; \
do cp ${S}/include/$i ${D}${PTEST_PATH}/include/; \
diff --git a/import-layers/yocto-poky/meta/recipes-support/attr/attr_2.4.47.bb b/import-layers/yocto-poky/meta/recipes-support/attr/attr_2.4.47.bb
index 44eee3964..556c8e43e 100644
--- a/import-layers/yocto-poky/meta/recipes-support/attr/attr_2.4.47.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/attr/attr_2.4.47.bb
@@ -2,9 +2,9 @@ require attr.inc
# configure.ac was missing from the release tarball. This should be fixed in
# future releases of attr, remove this when updating the recipe.
-SRC_URI_append += "file://attr-Missing-configure.ac.patch \
- file://dont-use-decl-macros.patch \
- "
+SRC_URI += "file://attr-Missing-configure.ac.patch \
+ file://dont-use-decl-macros.patch \
+ "
SRC_URI[md5sum] = "84f58dec00b60f2dc8fd1c9709291cc7"
SRC_URI[sha256sum] = "25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859"
diff --git a/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.1.bb b/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.1.bb
deleted file mode 100644
index 8b257d2d1..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.1.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Programmable Completion for Bash 4"
-HOMEPAGE = "http://bash-completion.alioth.debian.org/"
-BUGTRACKER = "https://alioth.debian.org/projects/bash-completion/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SECTION = "console/utils"
-
-SRC_URI="http://bash-completion.alioth.debian.org/files/${BPN}-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "4e2a9f11a4042a38ee79ddcd048e8b9e"
-SRC_URI[sha256sum] = "2b606804a7d5f823380a882e0f7b6c8a37b0e768e72c3d4107c51fbe8a46ae4f"
-UPSTREAM_CHECK_REGEX = "bash-completion-(?P<pver>(?!2008).+)\.tar"
-
-PARALLEL_MAKE = ""
-
-inherit autotools
-
-do_install_append() {
- # compatdir
- install -d ${D}${sysconfdir}/bash_completion.d/
- echo '. ${datadir}/${BPN}/bash_completion' >${D}${sysconfdir}/bash_completion
-
- # Delete files already provided by util-linux
- local i
- for i in cal dmesg eject hexdump hwclock ionice look renice rtcwake su; do
- rm ${D}${datadir}/${BPN}/completions/$i
- done
-
- # Delete files for networkmanager
- rm ${D}${datadir}/${BPN}/completions/nmcli
-}
-
-RDEPENDS_${PN} = "bash"
-
-# Some recipes are providing ${PN}-bash-completion packages
-PACKAGES =+ "${PN}-extra"
-FILES_${PN}-extra = "${datadir}/${BPN}/completions/ \
- ${datadir}/${BPN}/helpers/"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.4.bb b/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.4.bb
new file mode 100644
index 000000000..42719f143
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/bash-completion/bash-completion_2.4.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Programmable Completion for Bash 4"
+HOMEPAGE = "http://bash-completion.alioth.debian.org/"
+BUGTRACKER = "https://alioth.debian.org/projects/bash-completion/"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SECTION = "console/utils"
+
+SRC_URI = "https://github.com/scop/bash-completion/releases/download/${PV}/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "1ea94864fb2b2446fbbdf82f10bd25df"
+SRC_URI[sha256sum] = "c0f76b5202fec9ef8ffba82f5605025ca003f27cfd7a85115f838ba5136890f6"
+UPSTREAM_CHECK_REGEX = "bash-completion-(?P<pver>(?!2008).+)\.tar"
+UPSTREAM_CHECK_URI = "https://github.com/scop/bash-completion/releases"
+
+PARALLEL_MAKE = ""
+
+inherit autotools
+
+do_install_append() {
+ # compatdir
+ install -d ${D}${sysconfdir}/bash_completion.d/
+ echo '. ${datadir}/${BPN}/bash_completion' >${D}${sysconfdir}/bash_completion
+
+ # Delete files already provided by util-linux
+ local i
+ for i in mount umount; do
+ rm ${D}${datadir}/${BPN}/completions/$i
+ done
+}
+
+RDEPENDS_${PN} = "bash"
+
+# Some recipes are providing ${PN}-bash-completion packages
+PACKAGES =+ "${PN}-extra"
+FILES_${PN}-extra = "${datadir}/${BPN}/completions/ \
+ ${datadir}/${BPN}/helpers/"
+
+FILES_${PN}-dev += "${datadir}/cmake"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0001-fix-build-with-musl.patch b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0001-fix-build-with-musl.patch
deleted file mode 100644
index ab907fca0..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0001-fix-build-with-musl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 829a89e7f5785239a9384e3afd46c900f9d76ada Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 31 Aug 2015 19:55:32 +0000
-Subject: [PATCH] fix build with musl
-
-signal.h already includes bits/sigcontext.h
-Documentation seems to indicate that if you need the definitions in
-sigcontext.h, you are supposed to include signal.h and not sigcontext.h.
-
-a good fix should be to remove glibc
-specific understanding, in those ifdef's
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- os_dep.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/os_dep.c b/os_dep.c
-index 08c501d..5cb7873 100644
---- a/os_dep.c
-+++ b/os_dep.c
-@@ -41,7 +41,7 @@
- # else /* __GLIBC__ < 2 */
- /* libc5 doesn't have <sigcontext.h>: go directly with the kernel */
- /* one. Check LINUX_VERSION_CODE to see which we should reference. */
--# include <asm/sigcontext.h>
-+# include <signal.h>
- # endif /* __GLIBC__ < 2 */
- # endif
- #endif /* LINUX && !POWERPC */
---
-2.5.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0002-Altera-NIOS2-support.patch b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0002-Altera-NIOS2-support.patch
deleted file mode 100644
index c73c5400c..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/0002-Altera-NIOS2-support.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 2571df0e30b4976d7a12dbc6fbec4f1c4027924d Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Thu, 28 Jan 2016 04:13:13 +0100
-Subject: [PATCH] Altera NIOS2 support
-
-Add simple nios2 configuration support.
-
-* include/private/gcconfig.h (NIOS2): New macro.
-* include/private/gcconfig.h (mach_type_known, CPP_WORDSZ, MACH_TYPE,
-OS_TYPE, DYNAMIC_LOADING, _end, __data_start, DATASTART, DATAEND,
-ALIGNMENT, HBLKSIZE, HBLKSIZE, LINUX_STACKBOTTOM, NO_GETCONTEXT):
-Define for NIOS2.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Backport [ https://github.com/ivmai/bdwgc.git 2571df0e30b4976d7a12dbc6fbec4f1c4027924d ]
----
- include/private/gcconfig.h | 24 +++++++++++++++++++++++-
- 1 file changed, 23 insertions(+), 1 deletion(-)
-
-diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h
-index c467c26..92d4727 100644
---- a/include/private/gcconfig.h
-+++ b/include/private/gcconfig.h
-@@ -181,6 +181,10 @@
- # endif
- # define mach_type_known
- # endif
-+# if defined(__NIOS2__) || defined(__NIOS2) || defined(__nios2__)
-+# define NIOS2 /* Altera NIOS2 */
-+# define mach_type_known
-+# endif
- # if defined(DGUX) && (defined(i386) || defined(__i386__))
- # define I386
- # ifndef _USING_DGUX
-@@ -1658,6 +1662,24 @@
- # endif
- # endif
-
-+# ifdef NIOS2
-+# define CPP_WORDSZ 32
-+# define MACH_TYPE "NIOS2"
-+# ifdef LINUX
-+# define OS_TYPE "LINUX"
-+# define DYNAMIC_LOADING
-+ extern int _end[];
-+ extern int __data_start[];
-+# define DATASTART ((ptr_t)(__data_start))
-+# define DATAEND ((ptr_t)(_end))
-+# define ALIGNMENT 4
-+# ifndef HBLKSIZE
-+# define HBLKSIZE 4096
-+# endif
-+# define LINUX_STACKBOTTOM
-+# endif /* Linux */
-+# endif
-+
- # ifdef HP_PA
- # define MACH_TYPE "HP_PA"
- # ifdef __LP64__
-@@ -2622,6 +2644,7 @@
- #if ((defined(UNIX_LIKE) && (defined(DARWIN) || defined(HURD) \
- || defined(OPENBSD) || defined(ARM32) \
-- || defined(MIPS) || defined(AVR32))) \
-+ || defined(MIPS) || defined(AVR32) \
-+ || defined(NIOS2))) \
- || (defined(LINUX) && (defined(SPARC) || defined(M68K))) \
- || ((defined(RTEMS) || defined(PLATFORM_ANDROID)) && defined(I386))) \
- && !defined(NO_GETCONTEXT)
---
-2.7.0
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
new file mode 100644
index 000000000..4a1849665
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
@@ -0,0 +1,27 @@
+Add missing header to avoid:
+
+| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep':
+| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known
+| 1472659610.0540252: struct timeval tv;
+| 1472659610.0540252: ^~
+| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable]
+| 1472659610.054099: struct timeval tv;
+| 1472659610.054099: ^~
+| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed
+
+in musl builds.
+
+Upstream-Status: Pending
+
+Index: git/pthread_stop_world.c
+===================================================================
+--- git.orig/pthread_stop_world.c
++++ git/pthread_stop_world.c
+@@ -45,6 +45,7 @@
+ #include <semaphore.h>
+ #include <errno.h>
+ #include <unistd.h>
++#include <sys/time.h>
+ #include "atomic_ops.h"
+
+ /* It's safe to call original pthread_sigmask() here. */
diff --git a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb
deleted file mode 100644
index 8d4dab399..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "A garbage collector for C and C++"
-
-DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
- used as a garbage collecting replacement for C malloc or C++ new. It allows\
- you to allocate memory basically as you normally would, without explicitly\
- deallocating memory that is no longer useful. The collector automatically\
- recycles memory when it determines that it can no longer be otherwise\
- accessed.\
- The collector is also used by a number of programming language\
- implementations that either use C as intermediate code, want to facilitate\
- easier interoperation with C libraries, or just prefer the simple collector\
- interface.\
- Alternatively, the garbage collector may be used as a leak detector for C\
- or C++ programs, though that is not its primary goal.\
- Empirically, this collector works with most unmodified C programs, simply\
- by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
- calls, and removing free calls."
-
-HOMEPAGE = "http://www.hboehm.info/gc/"
-SECTION = "devel"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.QUICK;md5=55f5088f90a982fed7af9a4897047ef7"
-
-SRCREV = "e31cdc288ffbee5bf25f948e19deb5a7ce846971"
-SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-7_4 \
- file://0001-fix-build-with-musl.patch \
- file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \
- file://0002-Altera-NIOS2-support.patch \
- "
-
-FILES_${PN}-doc = "${datadir}"
-
-S = "${WORKDIR}/git"
-
-ARM_INSTRUCTION_SET = "arm"
-
-inherit autotools pkgconfig
-
-# by default use external libatomic-ops
-PACKAGECONFIG ??= "libatomic-ops"
-PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.6.0.bb b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.6.0.bb
new file mode 100644
index 000000000..dcb68f028
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/bdwgc/bdwgc_7.6.0.bb
@@ -0,0 +1,42 @@
+SUMMARY = "A garbage collector for C and C++"
+
+DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
+ used as a garbage collecting replacement for C malloc or C++ new. It allows\
+ you to allocate memory basically as you normally would, without explicitly\
+ deallocating memory that is no longer useful. The collector automatically\
+ recycles memory when it determines that it can no longer be otherwise\
+ accessed.\
+ The collector is also used by a number of programming language\
+ implementations that either use C as intermediate code, want to facilitate\
+ easier interoperation with C libraries, or just prefer the simple collector\
+ interface.\
+ Alternatively, the garbage collector may be used as a leak detector for C\
+ or C++ programs, though that is not its primary goal.\
+ Empirically, this collector works with most unmodified C programs, simply\
+ by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
+ calls, and removing free calls."
+
+HOMEPAGE = "http://www.hboehm.info/gc/"
+SECTION = "devel"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.QUICK;md5=4f81f24ec69726c312487c2ac740e9e3"
+
+SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa"
+SRC_URI = "git://github.com/ivmai/bdwgc.git \
+ file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \
+ file://musl_header_fix.patch \
+ "
+
+FILES_${PN}-doc = "${datadir}"
+
+S = "${WORKDIR}/git"
+
+ARM_INSTRUCTION_SET = "arm"
+
+inherit autotools pkgconfig
+
+# by default use external libatomic-ops
+PACKAGECONFIG ??= "libatomic-ops"
+PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/bmap-tools/bmap-tools_3.2.bb b/import-layers/yocto-poky/meta/recipes-support/bmap-tools/bmap-tools_3.2.bb
new file mode 100644
index 000000000..e10f5fd34
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/bmap-tools/bmap-tools_3.2.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Tools to generate block map (AKA bmap) and flash images using bmap"
+DESCRIPTION = "Bmap-tools - tools to generate block map (AKA bmap) and flash images using \
+bmap. Bmaptool is a generic tool for creating the block map (bmap) for a file, \
+and copying files using the block map. The idea is that large file containing \
+unused blocks, like raw system image files, can be copied or flashed a lot \
+faster with bmaptool than with traditional tools like "dd" or "cp"."
+HOMEPAGE = "http://git.infradead.org/users/dedekind/bmap-tools.git"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "ftp://ftp.infradead.org/pub/${BPN}/${BPN}-${PV}.tgz"
+SRC_URI[md5sum] = "92cdad1cb4dfa0cca7176c8e22752616"
+SRC_URI[sha256sum] = "cc6c7f7dc0a37e2a32deb127308e24e6c4b80bfb54f3803c308efab02bf2d434"
+
+RDEPENDS_${PN} = "python-core python-compression"
+
+inherit setuptools
+
+BBCLASSEXTEND = "native"
+
+do_install_append_class-native() {
+ sed -i -e 's|^#!.*/usr/bin/env python|#! /usr/bin/env nativepython|' ${D}${bindir}/bmaptool
+}
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.60.0.bb b/import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.61.0.bb
index 32646d707..32646d707 100644
--- a/import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.60.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/bjam-native_1.61.0.bb
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.60.0.inc b/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.60.0.inc
deleted file mode 100644
index a38693e25..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.60.0.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-# The Boost web site provides free peer-reviewed portable
-# C++ source libraries. The emphasis is on libraries which
-# work well with the C++ Standard Library. The libraries are
-# intended to be widely useful, and are in regular use by
-# thousands of programmers across a broad spectrum of applications.
-HOMEPAGE = "http://www.boost.org/"
-LICENSE = "BSL-1.0 & MIT & Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-
-BOOST_VER = "${@"_".join(d.getVar("PV",1).split("."))}"
-BOOST_MAJ = "${@"_".join(d.getVar("PV",1).split(".")[0:2])}"
-BOOST_P = "boost_${BOOST_VER}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2"
-
-SRC_URI[md5sum] = "65a840e1a0b13a558ff19eeb2c4f0cbe"
-SRC_URI[sha256sum] = "686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b"
-
-S = "${WORKDIR}/${BOOST_P}"
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.61.0.inc b/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.61.0.inc
new file mode 100644
index 000000000..cd9d8a495
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost-1.61.0.inc
@@ -0,0 +1,19 @@
+# The Boost web site provides free peer-reviewed portable
+# C++ source libraries. The emphasis is on libraries which
+# work well with the C++ Standard Library. The libraries are
+# intended to be widely useful, and are in regular use by
+# thousands of programmers across a broad spectrum of applications.
+HOMEPAGE = "http://www.boost.org/"
+LICENSE = "BSL-1.0 & MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+BOOST_VER = "${@"_".join(d.getVar("PV", True).split("."))}"
+BOOST_MAJ = "${@"_".join(d.getVar("PV", True).split(".")[0:2])}"
+BOOST_P = "boost_${BOOST_VER}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2"
+
+SRC_URI[md5sum] = "6095876341956f65f9d35939ccea1a9f"
+SRC_URI[sha256sum] = "a547bd06c2fd9a71ba1d169d9cf0339da7ebf4753849a8f7d6fdb8feee99b640"
+
+S = "${WORKDIR}/${BOOST_P}"
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost.inc b/import-layers/yocto-poky/meta/recipes-support/boost/boost.inc
index 982446c06..ef16533ba 100644
--- a/import-layers/yocto-poky/meta/recipes-support/boost/boost.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost.inc
@@ -8,11 +8,14 @@ ARM_INSTRUCTION_SET_armv5 = "arm"
BOOST_LIBS = "\
atomic \
chrono \
+ container \
date_time \
+ exception \
filesystem \
graph \
iostreams \
log \
+ math \
program_options \
random \
regex \
@@ -22,12 +25,30 @@ BOOST_LIBS = "\
timer \
test \
thread \
+ wave \
"
-# optional boost-python library
-PACKAGECONFIG ??= ""
+# only supported by x86 and powerpc
+BOOST_LIBS_append_x86 = " context coroutine"
+BOOST_LIBS_append_x86-64 = " context coroutine"
+BOOST_LIBS_append_powerpc = " context coroutine"
+# need consistent settings for native builds (x86 override not applied for native)
+BOOST_LIBS_remove_class-native = " context coroutine"
+
+# optional libraries
+PACKAGECONFIG ??= "locale"
+PACKAGECONFIG[locale] = ",,icu"
+PACKAGECONFIG[graph_parallel] = ",,,boost-mpi mpich"
+PACKAGECONFIG[mpi] = ",,mpich"
PACKAGECONFIG[python] = ",,python python3"
-BOOST_LIBS += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python python3', '', d)}"
+
+BOOST_LIBS += "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'locale', 'locale', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'graph_parallel', 'graph_parallel mpi', \
+ bb.utils.contains('PACKAGECONFIG', 'mpi', 'mpi', '', d), d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python python3', '', d)} \
+"
+
inherit python-dir
PYTHON_ROOT = "${STAGING_DIR_HOST}/${prefix}"
@@ -54,6 +75,10 @@ python __anonymous () {
}
# Override the contents of specific packages
+FILES_${PN}-graph = "${libdir}/libboost_graph.so.*"
+FILES_${PN}-graph_parallel = "${libdir}/libboost_graph_parallel.so.*"
+FILES_${PN}-locale = "${libdir}/libboost_locale.so.*"
+FILES_${PN}-mpi = "${libdir}/mpi.so ${libdir}/libboost_mpi*.so.*"
FILES_boost-serialization = "${libdir}/libboost_serialization*.so.* \
${libdir}/libboost_wserialization*.so.*"
FILES_boost-test = "${libdir}/libboost_prg_exec_monitor*.so.* \
@@ -142,7 +167,7 @@ def get_boost_parallel_make(d):
BOOST_PARALLEL_MAKE = "${@get_boost_parallel_make(d)}"
BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \
${BJAM_TOOLS} \
- -sBOOST_BUILD_USER_CONFIG=${S}/tools/build/example/user-config.jam \
+ -sBOOST_BUILD_USER_CONFIG=${WORKDIR}/user-config.jam \
--build-dir=${S}/${TARGET_SYS} \
--disable-icu \
${BJAM_EXTRA}'
@@ -150,25 +175,26 @@ BJAM_OPTS = '${BOOST_PARALLEL_MAKE} -d+2 -q \
# Native compilation of bzip2 isn't working
BJAM_OPTS_append_class-native = ' -sNO_BZIP2=1'
-do_boostconfig() {
- cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp
+do_configure() {
+ cp -f ${S}/boost/config/platform/linux.hpp ${S}/boost/config/platform/linux-gnueabi.hpp
# D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation.
- sed -i "/^using gcc : 4.3.1/d" ${S}/tools/build/example/user-config.jam
- sed -i "/^using python : ${PYTHON_BASEVERSION}"/d ${S}/tools/build/example/user-config.jam
- echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${S}/tools/build/example/user-config.jam
- echo "using python : ${PYTHON_BASEVERSION} : : ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${S}/tools/build/example/user-config.jam
- echo "using python : 3.5 : : ${STAGING_INCDIR}/python3.5m ;" >> ${S}/tools/build/example/user-config.jam
+ rm -f ${WORKDIR}/user-config.jam
+ echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${WORKDIR}/user-config.jam
+ echo "using python : ${PYTHON_BASEVERSION} : : ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${WORKDIR}/user-config.jam
+ echo "using python : 3.5 : : ${STAGING_INCDIR}/python3.5m ;" >> ${WORKDIR}/user-config.jam
+
+ if ${@bb.utils.contains('BOOST_LIBS', 'mpi', 'true', 'false', d)}; then
+ echo "using mpi : : <find-shared-library>mpi ;" >> ${WORKDIR}/user-config.jam
+ fi
CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=bjam --with-toolset=gcc --with-python-root=${PYTHON_ROOT}
- sed -i '/^using python/d' project-config.jam
+ sed -i '/^using python/d' ${S}/project-config.jam
}
-do_boostconfig[dirs] = "${S}"
-addtask do_boostconfig after do_patch before do_configure
-
do_compile() {
set -ex
+ rm -rf ${S}/${TARGET_SYS}
bjam ${BJAM_OPTS} --prefix=${prefix} \
--exec-prefix=${exec_prefix} \
--libdir=${libdir} \
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch
deleted file mode 100644
index df7e71fea..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f50e7bc9fed323c5705c0ed992c03e80eeec1dd6 Mon Sep 17 00:00:00 2001
-From: Jonathan Wakely <jwakely@redhat.com>
-Date: Mon, 14 Sep 2015 15:05:24 +0100
-Subject: [PATCH] Do not qualify <fenv.h> names that might be macros.
-
-The patch was imported from the boost-test git repository
-(https://github.com/boostorg/test) as of commit id
-f50e7bc9fed323c5705c0ed992c03e80eeec1dd6.
-
-Upstream-Status: Accepted [commit f50e7bc9fed in develop branch]
-
-Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
----
- include/boost/test/impl/execution_monitor.ipp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/include/boost/test/impl/execution_monitor.ipp b/include/boost/test/impl/execution_monitor.ipp
-index b3e873e..a7bdce2 100644
---- a/include/boost/test/impl/execution_monitor.ipp
-+++ b/include/boost/test/impl/execution_monitor.ipp
-@@ -1380,8 +1380,8 @@ enable( unsigned mask )
-
- return ~old_cw & BOOST_FPE_ALL;
- #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
-- ::feclearexcept(BOOST_FPE_ALL);
-- int res = ::feenableexcept( mask );
-+ feclearexcept(BOOST_FPE_ALL);
-+ int res = feenableexcept( mask );
- return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
- #else
- /* Not Implemented */
-@@ -1417,8 +1417,8 @@ disable( unsigned mask )
-
- return ~old_cw & BOOST_FPE_ALL;
- #elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
-- ::feclearexcept(BOOST_FPE_ALL);
-- int res = ::fedisableexcept( mask );
-+ feclearexcept(BOOST_FPE_ALL);
-+ int res = fedisableexcept( mask );
- return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
- #else
- /* Not Implemented */
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
new file mode 100644
index 000000000..8a85aac18
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch
@@ -0,0 +1,49 @@
+From 40192301130dcd913aa6d9cb9dba9e5f8dbd9d16 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 21:01:43 +0100
+Subject: [PATCH 1/4] use POSIX poll.h instead of sys/poll.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+POSIX specifies that <poll.h> is the correct header to
+include for poll()
+ http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
+whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
+so let's follow POSIX instead.
+
+As a side-effect, this silences a warning when compiling
+against the musl C-library:
+
+In file included from ./boost/asio/detail/socket_types.hpp:61:0,
+ from ./boost/asio/ip/address_v4.hpp:21,
+ from ./boost/asio/ip/address.hpp:21,
+ from libs/log/src/init_from_settings.cpp:65:
+<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
+ #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
+ ^~~~~~~
+
+etc.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
+ boost/asio/detail/socket_types.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/asio/detail/socket_types.hpp b/boost/asio/detail/socket_types.hpp
+index e8c7109..7e65d3c 100644
+--- a/boost/asio/detail/socket_types.hpp
++++ b/boost/asio/detail/socket_types.hpp
+@@ -58,7 +58,7 @@
+ #else
+ # include <sys/ioctl.h>
+ # if !defined(__SYMBIAN32__)
+-# include <sys/poll.h>
++# include <poll.h>
+ # endif
+ # include <sys/types.h>
+ # include <sys/stat.h>
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch
new file mode 100644
index 000000000..569c98733
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch
@@ -0,0 +1,145 @@
+From 5c349a1c391c9ce171a1c80f5164fae764f27dba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 20:58:59 +0100
+Subject: [PATCH 2/4] boost/test/execution_monitor.hpp: fix mips soft float
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o
+
+ "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>" -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -Wno-variadic-macros -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1 -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG -I"." -c -o "<builddir>/boost/bin.v2/libs/test/build/gcc-4.3.1/release/threading-multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
+
+In file included from ./boost/test/impl/execution_monitor.ipp:31:0,
+ from libs/test/src/execution_monitor.cpp:16:
+./boost/test/execution_monitor.hpp:491:27: error: 'FE_DIVBYZERO' was not declared in this scope
+ BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
+ ^~~~~~~~~~~~
+./boost/test/execution_monitor.hpp:492:27: error: 'FE_INEXACT' was not declared in this scope
+ BOOST_FPE_INEXACT = FE_INEXACT,
+ ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:493:27: error: 'FE_INVALID' was not declared in this scope
+ BOOST_FPE_INVALID = FE_INVALID,
+ ^~~~~~~~~~
+./boost/test/execution_monitor.hpp:494:27: error: 'FE_OVERFLOW' was not declared in this scope
+ BOOST_FPE_OVERFLOW = FE_OVERFLOW,
+ ^~~~~~~~~~~
+./boost/test/execution_monitor.hpp:495:27: error: 'FE_UNDERFLOW' was not declared in this scope
+ BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
+ ^~~~~~~~~~~~
+
+The reason is that some (notably FPU-less) architectures,
+including mips*-nf, don't define/implement some of the
+floating point constants, even though fenv.h is
+available.
+
+The key point is:
+ A fully standards conforming fenv.h does not have to
+ define any FE_* macros, and if it does define them,
+ then it defines macros only for the FP exceptions it
+ actually supports.
+
+So correct usage requires a triple check:
+1) Check BOOST_NO_FENV_H to see if the header is supported.
+2) Include the header and then check FE_ALL_EXCEPT to see
+ if any FP exceptions are supported.
+3) Before using the individual FE_* macros, you need to
+ check for their existence too as not all may be
+ supported.
+
+https://svn.boost.org/trac/boost/ticket/11756
+
+Other projects have similar issues, e.g. pixman, and
+apply similar work-arounds:
+ https://lists.freedesktop.org/archives/pixman/2014-February/003172.html
+
+Architectures are notably also allowed to define FE_ALL_EXCEPT to 0!
+Keeping this in mind, and knowing that the compiler will eliminate
+code that can't be executed, we can change BOOST_FPE_ALL to be 0 for
+the case of compiling using Clang and/or fenv.h being unavailable
+as well, which allows simplification of the #ifdef's in
+execution_monitor.ipp a bit.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/11756
+ boost/test/execution_monitor.hpp | 26 +++++++++++++++++++++++++-
+ boost/test/impl/execution_monitor.ipp | 10 ++++++++--
+ 2 files changed, 33 insertions(+), 3 deletions(-)
+
+diff --git a/boost/test/execution_monitor.hpp b/boost/test/execution_monitor.hpp
+index 0eee497..44fe59d 100644
+--- a/boost/test/execution_monitor.hpp
++++ b/boost/test/execution_monitor.hpp
+@@ -486,15 +486,39 @@ enum masks {
+ BOOST_FPE_ALL = MCW_EM,
+ #elif defined(BOOST_NO_FENV_H) || defined(BOOST_CLANG) \
+ || defined(__ARM_PCS)
+- BOOST_FPE_ALL = 1,
++ BOOST_FPE_ALL = 0,
+ #else
++#if defined(FE_DIVBYZERO)
+ BOOST_FPE_DIVBYZERO = FE_DIVBYZERO,
++#else
++ BOOST_FPE_DIVBYZERO = 0,
++#endif
++#if defined(FE_INEXACT)
+ BOOST_FPE_INEXACT = FE_INEXACT,
++#else
++ BOOST_FPE_INEXACT = 0,
++#endif
++#if defined(FE_INVALID)
+ BOOST_FPE_INVALID = FE_INVALID,
++#else
++ BOOST_FPE_INVALID = 0,
++#endif
++#if defined(FE_OVERFLOW)
+ BOOST_FPE_OVERFLOW = FE_OVERFLOW,
++#else
++ BOOST_FPE_OVERFLOW = 0,
++#endif
++#if defined(FE_UNDERFLOW)
+ BOOST_FPE_UNDERFLOW = FE_UNDERFLOW,
++#else
++ BOOST_FPE_UNDERFLOW = 0,
++#endif
+
++#if defined(FE_ALL_EXCEPT)
+ BOOST_FPE_ALL = FE_ALL_EXCEPT,
++#else
++ BOOST_FPE_ALL = 0,
++#endif
+ #endif
+ BOOST_FPE_INV = BOOST_FPE_ALL+1
+ };
+diff --git a/boost/test/impl/execution_monitor.ipp b/boost/test/impl/execution_monitor.ipp
+index f7fc8ea..d1088b9 100644
+--- a/boost/test/impl/execution_monitor.ipp
++++ b/boost/test/impl/execution_monitor.ipp
+@@ -1381,7 +1381,10 @@ enable( unsigned mask )
+ #endif
+
+ return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
++#elif defined(__GLIBC__) && defined(__USE_GNU)
++ if (BOOST_FPE_ALL == 0)
++ /* Not Implemented */
++ return 0;
+ feclearexcept(BOOST_FPE_ALL);
+ int res = feenableexcept( mask );
+ return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
+@@ -1418,7 +1421,10 @@ disable( unsigned mask )
+ #endif
+
+ return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
++#elif defined(__GLIBC__) && defined(__USE_GNU)
++ if (BOOST_FPE_ALL == 0)
++ /* Not Implemented */
++ return BOOST_FPE_INV;
+ feclearexcept(BOOST_FPE_ALL);
+ int res = fedisableexcept( mask );
+ return res == -1 ? (unsigned)BOOST_FPE_INV : (unsigned)res;
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
new file mode 100644
index 000000000..2b48d0d5d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch
@@ -0,0 +1,60 @@
+From 4f19d72ca94418431e068cfd4ffb96ed9b289f6c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Wed, 24 Aug 2016 17:34:59 +0100
+Subject: [PATCH 3/4] smart_ptr: mips assembly doesn't compile in mips16e mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gcc.compile.c++ <builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o
+
+ "mipsel-poky-linux-musl-g++" "-mel" "-mabi=32" "-msoft-float" "-march=mips32r2" "-mips16" "-minterlink-compressed" "-mtune=24kec" "-mdsp" "-Wl,-O1" "-Wl,--as-needed" "-fstack-protector-strong" "-Wl,-z,relro,-z,now" "--sysroot=<sysroot>" -ftemplate-depth-128 -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=<srcdir>=/usr/src/debug/boost/1.61.0-r0 -fdebug-prefix-map=<sysroot_host>= -fdebug-prefix-map=<sysroot>= -fstack-protector-strong -pie -fpie -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -fvisibility-inlines-hidden -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"." -c -o "<builddir>/boost/bin.v2/libs/date_time/build/gcc-4.3.1/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"
+
+{standard input}: Assembler messages:
+{standard input}:17603: Warning: the `dsp' extension requires MIPS32 revision 2 or greater
+{standard input}:17604: Error: unrecognized opcode `ll $3,4($16)'
+{standard input}:17606: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:17734: Error: unrecognized opcode `ll $3,8($16)'
+{standard input}:17736: Error: unrecognized opcode `sc $2,8($16)'
+{standard input}:18084: Error: unrecognized opcode `ll $3,4($4)'
+{standard input}:18086: Error: unrecognized opcode `sc $2,4($4)'
+{standard input}:18318: Error: unrecognized opcode `ll $3,8($4)'
+{standard input}:18320: Error: unrecognized opcode `sc $2,8($4)'
+{standard input}:19921: Error: unrecognized opcode `ll $3,4($2)'
+{standard input}:19923: Error: unrecognized opcode `sc $3,4($2)'
+{standard input}:20199: Error: unrecognized opcode `ll $4,4($16)'
+{standard input}:20201: Error: unrecognized opcode `sc $2,4($16)'
+{standard input}:23392: Error: unrecognized opcode `ll $4,8($16)'
+{standard input}:23394: Error: unrecognized opcode `sc $2,8($16)'
+...failed updating 1 target...
+
+boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+contains hand-written MIPS assembly, which is not compatible
+with the MIPS16e instruction set.
+
+By not using this file in MIPS16e mode, we fallback to using
+g++ 4.1+ __sync intrinsics (__sync_fetch_and_add() and
+__sync_val_compare_and_swap()) which are working fine.
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+---
+Upstream-Status: Backport https://svn.boost.org/trac/boost/ticket/12418
+ boost/smart_ptr/detail/sp_counted_base.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
+index 0addf07..0995ca8 100644
+--- a/boost/smart_ptr/detail/sp_counted_base.hpp
++++ b/boost/smart_ptr/detail/sp_counted_base.hpp
+@@ -65,7 +65,7 @@
+ #elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
+
+-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
++#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__) && !defined( __mips16 )
+ # include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
+
+ #elif defined( BOOST_SP_HAS_SYNC )
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/0004-Use-atomic-by-default-when-BOOST_NO_CXX11_HDR_ATOMIC.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0004-Use-atomic-by-default-when-BOOST_NO_CXX11_HDR_ATOMIC.patch
new file mode 100644
index 000000000..ab7826ba2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/0004-Use-atomic-by-default-when-BOOST_NO_CXX11_HDR_ATOMIC.patch
@@ -0,0 +1,59 @@
+From c234cc557f60729e071d6da59747c1a9289555c5 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@pdimov.com>
+Date: Sun, 28 Aug 2016 21:28:21 +0300
+Subject: [PATCH 4/4] Use <atomic> by default when BOOST_NO_CXX11_HDR_ATOMIC is
+ not defined
+
+---
+Upstream-Status: Backport [https://github.com/boostorg/smart_ptr/commit/20fedcff2ca3143503ec4e876d47745ab0ec7b0c]
+Signed-off-by: André Draszik <git@andred.net>
+ boost/smart_ptr/detail/atomic_count.hpp | 3 +++
+ boost/smart_ptr/detail/sp_counted_base.hpp | 3 +++
+ boost/smart_ptr/detail/spinlock.hpp | 3 +++
+ 3 files changed, 9 insertions(+)
+
+diff --git a/boost/smart_ptr/detail/atomic_count.hpp b/boost/smart_ptr/detail/atomic_count.hpp
+index 8aefd44..6e4f71a 100644
+--- a/boost/smart_ptr/detail/atomic_count.hpp
++++ b/boost/smart_ptr/detail/atomic_count.hpp
+@@ -73,6 +73,9 @@
+ #elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
+ # include <boost/smart_ptr/detail/atomic_count_nt.hpp>
+
++#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
++# include <boost/smart_ptr/detail/atomic_count_std_atomic.hpp>
++
+ #elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined( __PATHSCALE__ )
+ # include <boost/smart_ptr/detail/atomic_count_gcc_x86.hpp>
+
+diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
+index 0995ca8..83ede23 100644
+--- a/boost/smart_ptr/detail/sp_counted_base.hpp
++++ b/boost/smart_ptr/detail/sp_counted_base.hpp
+@@ -44,6 +44,9 @@
+ #elif defined( BOOST_SP_HAS_CLANG_C11_ATOMICS )
+ # include <boost/smart_ptr/detail/sp_counted_base_clang.hpp>
+
++#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
++# include <boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp>
++
+ #elif defined( __SNC__ )
+ # include <boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp>
+
+diff --git a/boost/smart_ptr/detail/spinlock.hpp b/boost/smart_ptr/detail/spinlock.hpp
+index 19f93d7..0b618df 100644
+--- a/boost/smart_ptr/detail/spinlock.hpp
++++ b/boost/smart_ptr/detail/spinlock.hpp
+@@ -43,6 +43,9 @@
+ #elif defined( BOOST_SP_USE_PTHREADS )
+ # include <boost/smart_ptr/detail/spinlock_pt.hpp>
+
++#elif !defined( BOOST_NO_CXX11_HDR_ATOMIC )
++# include <boost/smart_ptr/detail/spinlock_std_atomic.hpp>
++
+ #elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
+ # include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>
+
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch
new file mode 100644
index 000000000..917617a04
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-CVE-2012-2677.patch
@@ -0,0 +1,112 @@
+Reference
+
+https://svn.boost.org/trac/boost/changeset/78326
+
+Upstream-Status: Backport
+CVE: CVE-2012-2677
+Signed-off-by: Yue Tao <yue.tao@windriver.com>
+
+diff --git a/boost/pool/pool.hpp.old b/boost/pool/pool.hpp
+index c47b11f..417a1e0 100644
+--- a/boost/pool/pool.hpp.old
++++ b/boost/pool/pool.hpp
+@@ -26,6 +26,8 @@
+
+ #include <boost/pool/poolfwd.hpp>
+
++// std::numeric_limits
++#include <boost/limits.hpp>
+ // boost::integer::static_lcm
+ #include <boost/integer/common_factor_ct.hpp>
+ // boost::simple_segregated_storage
+@@ -355,6 +357,15 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
+ return s;
+ }
+
++ size_type max_chunks() const
++ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
++ size_type partition_size = alloc_size();
++ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
++ size_type max_chunks = (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
++
++ return max_chunks;
++ }
++
+ static void * & nextof(void * const ptr)
+ { //! \returns Pointer dereferenced.
+ //! (Provided and used for the sake of code readability :)
+@@ -375,6 +386,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
+ //! the first time that object needs to allocate system memory.
+ //! The default is 32. This parameter may not be 0.
+ //! \param nmax_size is the maximum number of chunks to allocate in one block.
++ set_next_size(nnext_size);
++ set_max_size(nmax_size);
+ }
+
+ ~pool()
+@@ -398,8 +411,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
+ }
+ void set_next_size(const size_type nnext_size)
+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
+- //! \returns nnext_size.
+- next_size = start_size = nnext_size;
++ BOOST_USING_STD_MIN();
++ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
+ }
+ size_type get_max_size() const
+ { //! \returns max_size.
+@@ -407,7 +420,8 @@ class pool: protected simple_segregated_storage < typename UserAllocator::size_t
+ }
+ void set_max_size(const size_type nmax_size)
+ { //! Set max_size.
+- max_size = nmax_size;
++ BOOST_USING_STD_MIN();
++ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
+ }
+ size_type get_requested_size() const
+ { //! \returns the requested size passed into the constructor.
+@@ -708,9 +722,9 @@ void * pool<UserAllocator>::malloc_need_resize()
+
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // initialize it,
+ store().add_block(node.begin(), node.element_size(), partition_size);
+@@ -748,9 +762,9 @@ void * pool<UserAllocator>::ordered_malloc_need_resize()
+
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // initialize it,
+ // (we can use "add_block" here because we know that
+@@ -792,6 +806,8 @@ void * pool<UserAllocator>::ordered_malloc(const size_type n)
+ { //! Gets address of a chunk n, allocating new memory if not already available.
+ //! \returns Address of chunk n if allocated ok.
+ //! \returns 0 if not enough memory for n chunks.
++ if (n > max_chunks())
++ return 0;
+
+ const size_type partition_size = alloc_size();
+ const size_type total_req_size = n * requested_size;
+@@ -840,9 +856,9 @@ void * pool<UserAllocator>::ordered_malloc(const size_type n)
+
+ BOOST_USING_STD_MIN();
+ if(!max_size)
+- next_size <<= 1;
++ set_next_size(next_size << 1);
+ else if( next_size*partition_size/requested_size < max_size)
+- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
++ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
+
+ // insert it into the list,
+ // handle border case.
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch b/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
new file mode 100644
index 000000000..595ba1786
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost/boost-math-disable-pch-for-gcc.patch
@@ -0,0 +1,31 @@
+From cabfcba1ff7511ffd6b91ca244288d44f585aad2 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Fri, 23 Sep 2016 01:04:50 -0700
+Subject: [PATCH] boost-math: disable pch for gcc
+
+Upstream-Status: Inappropriate [*]
+
+* It's a work around for a defect when build in parallel:
+https://svn.boost.org/trac/boost/ticket/12477
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ libs/math/build/Jamfile.v2 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libs/math/build/Jamfile.v2 b/libs/math/build/Jamfile.v2
+index e19fb2e..82472a7 100644
+--- a/libs/math/build/Jamfile.v2
++++ b/libs/math/build/Jamfile.v2
+@@ -13,7 +13,7 @@ project
+ #<toolset>intel-linux:<pch>off
+ <toolset>intel-darwin:<pch>off
+ <toolset>msvc-7.1:<pch>off
+- <toolset>gcc,<target-os>windows:<pch>off
++ <toolset>gcc:<pch>off
+ #<toolset>gcc:<cxxflags>-fvisibility=hidden
+ <toolset>intel-linux:<cxxflags>-fvisibility=hidden
+ #<toolset>sun:<cxxflags>-xldscope=hidden
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.60.0.bb b/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.60.0.bb
deleted file mode 100644
index 4d824c85b..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.60.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-include boost-${PV}.inc
-include boost.inc
-
-SRC_URI += "\
- file://arm-intrinsics.patch \
- file://0001-Do-not-qualify-fenv.h-names-that-might-be-macros.patch;striplevel=2 \
- file://consider-hardfp.patch \
-"
diff --git a/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.61.0.bb b/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.61.0.bb
new file mode 100644
index 000000000..40e3870a3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/boost/boost_1.61.0.bb
@@ -0,0 +1,13 @@
+include boost-${PV}.inc
+include boost.inc
+
+SRC_URI += "\
+ file://arm-intrinsics.patch \
+ file://consider-hardfp.patch \
+ file://boost-CVE-2012-2677.patch \
+ file://0001-boost-asio-detail-socket_types.hpp-fix-poll.h-includ.patch \
+ file://0002-boost-test-execution_monitor.hpp-fix-mips-soft-float.patch \
+ file://0003-smart_ptr-mips-assembly-doesn-t-compile-in-mips16e-m.patch \
+ file://0004-Use-atomic-by-default-when-BOOST_NO_CXX11_HDR_ATOMIC.patch \
+ file://boost-math-disable-pch-for-gcc.patch \
+"
diff --git a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch b/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
index 4b4b287d4..4a8ae5f4b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch
@@ -6,9 +6,13 @@ This solves errors such as
| Running hooks in [...]/rootfs/etc/ca-certificates/update.d...
| [...]/usr/sbin/update-ca-certificates: line 194: Not: command not found
+| [...]/usr/sbin/update-ca-certificates: line 230: Not a directory: --: command not found
+| E: Not a directory: -- exited with code 127.
+
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Maciej Borzecki <maciej.borzecki@rndity.com>
---
sbin/update-ca-certificates | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
@@ -24,7 +28,7 @@ Index: git/sbin/update-ca-certificates
- VERBOSE_ARG=
- [ "$verbose" = 0 ] || VERBOSE_ARG="--verbose"
- eval run-parts "$VERBOSE_ARG" --test -- "$HOOKSDIR" | while read hook
-+ eval run-parts --test -- "$HOOKSDIR" | while read hook
++ eval run-parts --test "$HOOKSDIR" | while read hook
do
( cat "$ADDED"
cat "$REMOVED" ) | "$hook" || echo "E: $hook exited with code $?."
diff --git a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-remove-c-rehash.patch b/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-remove-c-rehash.patch
deleted file mode 100644
index bf027233d..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates/0001-update-ca-certificates-remove-c-rehash.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Upstream-Status: Pending
-
-From 111e905fe931da1a3800accfc675cc01c8ee080c Mon Sep 17 00:00:00 2001
-From: Ulf Samuelsson <ulf@emagii.com>
-Date: Tue, 28 Feb 2012 06:42:58 +0100
-Subject: [PATCH] update-ca-certificates: remove c rehash
-
-Updated earlier patch to apply clean on 2012-02-12
-Signed-off-by: Ulf Samuelsson <ulf@emagii.com>
----
- sbin/update-ca-certificates | 20 ++++++++++----------
- 1 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/sbin/update-ca-certificates b/sbin/update-ca-certificates
-index 5375950..c567e3d 100755
---- a/sbin/update-ca-certificates
-+++ b/sbin/update-ca-certificates
-@@ -132,16 +132,16 @@ rm -f "$CERTBUNDLE"
- ADDED_CNT=$(wc -l < "$ADDED")
- REMOVED_CNT=$(wc -l < "$REMOVED")
-
--if [ "$ADDED_CNT" -gt 0 ] || [ "$REMOVED_CNT" -gt 0 ]
--then
-- # only run if set of files has changed
-- if [ "$verbose" = 0 ]
-- then
-- c_rehash . > /dev/null
-- else
-- c_rehash .
-- fi
--fi
-+#if [ "$ADDED_CNT" -gt 0 ] || [ "$REMOVED_CNT" -gt 0 ]
-+#then
-+# # only run if set of files has changed
-+# if [ "$verbose" = 0 ]
-+# then
-+# c_rehash . > /dev/null
-+# else
-+# c_rehash .
-+# fi
-+#fi
-
- chmod 0644 "$TEMPBUNDLE"
- mv -f "$TEMPBUNDLE" "$CERTBUNDLE"
---
-1.7.4.1
diff --git a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates_20160104.bb b/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates_20160104.bb
index e0f193913..1bea0676b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates_20160104.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/ca-certificates/ca-certificates_20160104.bb
@@ -9,12 +9,12 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=e7358b9541ccf3029e9705ed8de57968
# This is needed to ensure we can run the postinst at image creation time
DEPENDS = "ca-certificates-native"
-DEPENDS_class-native = ""
+DEPENDS_class-native = "openssl-native"
+DEPENDS_class-nativesdk = "ca-certificates-native openssl-native"
SRCREV = "f54715702c5c0581c9461f78fd84e2c8d2ec243c"
SRC_URI = "git://anonscm.debian.org/collab-maint/ca-certificates.git \
- file://0001-update-ca-certificates-remove-c-rehash.patch \
file://0002-update-ca-certificates-use-SYSROOT.patch \
file://0001-update-ca-certificates-don-t-use-Debianisms-in-run-p.patch \
file://update-ca-certificates-support-Toybox.patch \
@@ -77,4 +77,6 @@ do_install_append_class-native () {
SYSROOT="${D}${base_prefix}" ${D}${sbindir}/update-ca-certificates
}
+RDEPENDS_${PN} += "openssl"
+
BBCLASSEXTEND += "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/import-layers/yocto-poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index 2974e3664..ceac0fe31 100644
--- a/import-layers/yocto-poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -30,7 +30,7 @@ PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/s
PACKAGECONFIG[policykit] = "--with-polkit,--without-polkit,polkit"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--with-systemdsystemunitdir="
-FILES_${PN} += "${localstatedir}/log/ConsoleKit ${exec_prefix}/lib/ConsoleKit \
+FILES_${PN} += "${exec_prefix}/lib/ConsoleKit \
${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \
${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
@@ -45,6 +45,6 @@ do_install_append() {
> ${D}${sysconfdir}/tmpfiles.d/consolekit.conf
fi
- # Remove /var/run from package as console-kit-daemon will populate it on startup
- rm -fr "${D}${localstatedir}/run"
+ # Remove /var/ directories as the daemon creates them as required
+ rm -rf ${D}${localstatedir}
}
diff --git a/import-layers/yocto-poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch b/import-layers/yocto-poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch
new file mode 100644
index 000000000..74e5d99cf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/curl/curl/0001-replace-krb5-config-with-pkg-config.patch
@@ -0,0 +1,43 @@
+[PATCH] replace krb5-config with pkg-config
+
+Upstream-Status: Pending
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index e99b303..dc93f39 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1196,7 +1196,7 @@ AC_ARG_WITH(gssapi,
+ fi
+ ])
+
+-: ${KRB5CONFIG:="$GSSAPI_ROOT/bin/krb5-config"}
++KRB5CONFIG=`which pkg-config`
+
+ save_CPPFLAGS="$CPPFLAGS"
+ AC_MSG_CHECKING([if GSS-API support is requested])
+@@ -1207,7 +1207,7 @@ if test x"$want_gss" = xyes; then
+ if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then
+ GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi`
+ elif test -f "$KRB5CONFIG"; then
+- GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi`
++ GSSAPI_INCS=`$KRB5CONFIG --cflags mit-krb5-gssapi`
+ elif test "$GSSAPI_ROOT" != "yes"; then
+ GSSAPI_INCS="-I$GSSAPI_ROOT/include"
+ fi
+@@ -1300,7 +1300,7 @@ if test x"$want_gss" = xyes; then
+ elif test -f "$KRB5CONFIG"; then
+ dnl krb5-config doesn't have --libs-only-L or similar, put everything
+ dnl into LIBS
+- gss_libs=`$KRB5CONFIG --libs gssapi`
++ gss_libs=`$KRB5CONFIG --libs mit-krb5-gssapi`
+ LIBS="$gss_libs $LIBS"
+ else
+ case $host in
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.47.1.bb b/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.47.1.bb
deleted file mode 100644
index c2173d8a0..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.47.1.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "Command line tool and library for client-side URL transfers"
-HOMEPAGE = "http://curl.haxx.se/"
-BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker"
-SECTION = "console/network"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;beginline=8;md5=3a34942f4ae3fbf1a303160714e664ac"
-
-SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2"
-
-# curl likes to set -g0 in CFLAGS, so we stop it
-# from mucking around with debug options
-#
-SRC_URI += " file://configure_ac.patch"
-
-SRC_URI[md5sum] = "9ea3123449439bbd960cd25cf98796fb"
-SRC_URI[sha256sum] = "ddc643ab9382e24bbe4747d43df189a0a6ce38fcb33df041b9cb0b3cd47ae98f"
-
-inherit autotools pkgconfig binconfig multilib_header
-
-PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)} gnutls proxy zlib"
-PACKAGECONFIG_class-native = "ipv6 proxy ssl zlib"
-PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl zlib"
-
-PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
-PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
-PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
-PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,"
-PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
-PACKAGECONFIG[libidn] = "--with-libidn,--without-libidn,libidn"
-PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
-PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
-PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
-PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
-PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
-PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
-PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
-PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl"
-PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
-PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
-PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
-
-EXTRA_OECONF = " \
- --enable-crypto-auth \
- --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
- --without-libmetalink \
- --without-libpsl \
- --without-nghttp2 \
-"
-
-do_install_append() {
- oe_multilib_header curl/curlbuild.h
-}
-
-do_install_append_class-target() {
- # cleanup buildpaths from curl-config
- sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/curl-config
-}
-
-PACKAGES =+ "lib${BPN}"
-
-FILES_lib${BPN} = "${libdir}/lib*.so.*"
-RRECOMMENDS_lib${BPN} += "ca-certificates"
-
-FILES_${PN} += "${datadir}/zsh"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.50.1.bb b/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.50.1.bb
new file mode 100644
index 000000000..a21419a4d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/curl/curl_7.50.1.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Command line tool and library for client-side URL transfers"
+HOMEPAGE = "http://curl.haxx.se/"
+BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker"
+SECTION = "console/network"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;beginline=8;md5=3a34942f4ae3fbf1a303160714e664ac"
+
+SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
+ file://0001-replace-krb5-config-with-pkg-config.patch \
+"
+
+# curl likes to set -g0 in CFLAGS, so we stop it
+# from mucking around with debug options
+#
+SRC_URI += " file://configure_ac.patch"
+
+SRC_URI[md5sum] = "015f6a0217ca6f2c5442ca406476920b"
+SRC_URI[sha256sum] = "3c12c5f54ccaa1d40abc65d672107dcc75d3e1fcb38c267484334280096e5156"
+
+inherit autotools pkgconfig binconfig multilib_header
+
+PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)} gnutls proxy zlib"
+PACKAGECONFIG_class-native = "ipv6 proxy ssl zlib"
+PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl zlib"
+
+PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher,"
+PACKAGECONFIG[imap] = "--enable-imap,--disable-imap,"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap,"
+PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps,"
+PACKAGECONFIG[libidn] = "--with-libidn,--without-libidn,libidn"
+PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
+PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3,"
+PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy,"
+PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
+PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp,"
+PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
+PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
+PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl"
+PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
+PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
+PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
+
+EXTRA_OECONF = " \
+ --enable-crypto-auth \
+ --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
+ --without-libmetalink \
+ --without-libpsl \
+ --without-nghttp2 \
+"
+
+do_install_append() {
+ oe_multilib_header curl/curlbuild.h
+}
+
+do_install_append_class-target() {
+ # cleanup buildpaths from curl-config
+ sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/curl-config
+}
+
+PACKAGES =+ "lib${BPN}"
+
+FILES_lib${BPN} = "${libdir}/lib*.so.*"
+RRECOMMENDS_lib${BPN} += "ca-certificates"
+
+FILES_${PN} += "${datadir}/zsh"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch b/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch
index d4c6bb8e0..68a213136 100644
--- a/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libdb-6.0.la-depend-os_map.l.patch
@@ -14,10 +14,10 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
dist/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/dist/Makefile.in b/dist/Makefile.in
-index 0a42375..d9e05b9 100644
---- a/dist/Makefile.in
-+++ b/dist/Makefile.in
+Index: db-6.0.30/dist/Makefile.in
+===================================================================
+--- db-6.0.30.orig/dist/Makefile.in
++++ db-6.0.30/dist/Makefile.in
@@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS)
$(LN) -s $(libdb_version) $(libdb)
@@ -27,6 +27,3 @@ index 0a42375..d9e05b9 100644
$(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
$(LIBCSO_LIBS)
$(RM) $(libdb)
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch b/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch
index 329bff5d3..868040834 100644
--- a/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db/Makefile-let-libso_target-depend-on-bt_rec.patch
@@ -15,10 +15,10 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile.in b/Makefile.in
-index e451f70..0a42375 100644
---- a/Makefile.in
-+++ b/Makefile.in
+Index: db-6.0.30/dist/Makefile.in
+===================================================================
+--- db-6.0.30.orig/dist/Makefile.in
++++ db-6.0.30/dist/Makefile.in
@@ -863,7 +863,7 @@ $(libdb_version): $(C_OBJS)
$(LN) -s $(libdb_version) $(libdb)
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch b/import-layers/yocto-poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
index 34e8db84d..6a8eada60 100644
--- a/import-layers/yocto-poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
@@ -10,9 +10,11 @@ Upstream-Status: Inappropriate [embedded specific]
Author: jbowler@nslu2-linux.org
---- db-5.1.19/src/dbinc/mutex_int.h.orig 2011-01-05 19:21:42.181805366 -0600
-+++ db-5.1.19/src/dbinc/mutex_int.h 2011-01-05 19:24:53.141853117 -0600
-@@ -474,6 +474,25 @@
+Index: db-6.0.30/src/dbinc/mutex_int.h
+===================================================================
+--- db-6.0.30.orig/src/dbinc/mutex_int.h
++++ db-6.0.30/src/dbinc/mutex_int.h
+@@ -474,6 +474,25 @@ typedef unsigned char tsl_t;
#ifdef LOAD_ACTUAL_MUTEX_CODE
/* gcc/arm: 0 is clear, 1 is set. */
@@ -38,7 +40,7 @@ Author: jbowler@nslu2-linux.org
#define MUTEX_SET(tsl) ({ \
int __r; \
__asm__ volatile( \
-@@ -484,6 +503,7 @@
+@@ -484,6 +503,7 @@ typedef unsigned char tsl_t;
); \
__r & 1; \
})
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db/fix-parallel-build.patch b/import-layers/yocto-poky/meta/recipes-support/db/db/fix-parallel-build.patch
index 2c7f1e186..27632e1dd 100644
--- a/import-layers/yocto-poky/meta/recipes-support/db/db/fix-parallel-build.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db/fix-parallel-build.patch
@@ -6,9 +6,11 @@ Upstream-Status: Pending
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---- dist.orig/Makefile.in 2012-05-11 19:57:48.000000000 +0200
-+++ dist/Makefile.in 2013-10-31 18:17:11.875532522 +0100
-@@ -1034,7 +1034,7 @@
+Index: db-6.0.30/dist/Makefile.in
+===================================================================
+--- db-6.0.30.orig/dist/Makefile.in
++++ db-6.0.30/dist/Makefile.in
+@@ -1041,7 +1041,7 @@ db_recover: db_recover@o@ util_sig@o@ $(
db_recover@o@ util_sig@o@ $(DEF_LIB) $(LIBS)
$(POSTLINK) $@
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db_5.3.28.bb b/import-layers/yocto-poky/meta/recipes-support/db/db_5.3.28.bb
index c724f049f..0b51a1d44 100644
--- a/import-layers/yocto-poky/meta/recipes-support/db/db_5.3.28.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db_5.3.28.bb
@@ -15,15 +15,17 @@ LICENSE = "Sleepycat"
VIRTUAL_NAME ?= "virtual/db"
RCONFLICTS_${PN} = "db3"
+PR = "r1"
+
SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
-SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
+SRC_URI += "file://arm-thumb-mutex_db5.patch \
file://fix-parallel-build.patch \
"
SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24"
SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955"
inherit autotools
@@ -36,14 +38,6 @@ inherit autotools
# to select the correct db in the build (distro) .conf
PROVIDES += "${VIRTUAL_NAME}"
-# bitbake isn't quite clever enough to deal with sleepycat,
-# the distribution sits in the expected directory, but all
-# the builds must occur from a sub-directory. The following
-# persuades bitbake to go to the right place
-S = "${WORKDIR}/db-${PV}/dist"
-B = "${WORKDIR}/db-${PV}/build_unix"
-SPDX_S = "${WORKDIR}/db-${PV}"
-
# The executables go in a separate package - typically there
# is no need to install these unless doing real database
# management on the system.
@@ -75,21 +69,23 @@ ARM_MUTEX = "--with-mutex=ARM/gcc-assembly"
MUTEX = ""
MUTEX_arm = "${ARM_MUTEX}"
MUTEX_armeb = "${ARM_MUTEX}"
-EXTRA_OECONF += "${MUTEX}"
-EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+EXTRA_OECONF += "${MUTEX} STRIP=true"
+EXTRA_OEMAKE_append_class-target = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+
+AUTOTOOLS_SCRIPT_PATH = "${S}/dist"
# Cancel the site stuff - it's set for db3 and destroys the
# configure.
CONFIG_SITE = ""
do_configure() {
- gnu-configize --force ${S}
- export STRIP="true"
+ cd ${B}
+ gnu-configize --force ${AUTOTOOLS_SCRIPT_PATH}
oe_runconf
}
do_compile_prepend() {
- sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' \
- ${B}/libtool
+ # Stop libtool adding RPATHs
+ sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/libtool
}
do_install_append() {
@@ -114,4 +110,3 @@ INSANE_SKIP_${PN} = "dev-so"
INSANE_SKIP_${PN}-cxx = "dev-so"
BBCLASSEXTEND = "native nativesdk"
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.30.bb b/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.30.bb
deleted file mode 100644
index 50a469b08..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.30.bb
+++ /dev/null
@@ -1,124 +0,0 @@
-# Version 6 of the Berkeley DB from Oracle (formerly Sleepycat)
-#
-# At present this package only installs the DB code
-# itself (shared libraries, .a in the dev package),
-# documentation and headers.
-#
-# The headers have the same names as those as v3
-# of the DB, only one version can be used *for dev*
-# at once - DB3 and DB6 can both be installed on the
-# same system at the same time if really necessary.
-SECTION = "libs"
-SUMMARY = "Berkeley Database v6"
-HOMEPAGE = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
-LICENSE = "AGPL-3.0"
-VIRTUAL_NAME ?= "virtual/db"
-RCONFLICTS_${PN} = "db3"
-
-# Note, when upgraded to 6.1.x, a patch in RPM will need to be removed to activate db 6.1 support.
-
-SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
-SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
- file://fix-parallel-build.patch \
- file://Makefile-let-libso_target-depend-on-bt_rec.patch \
- file://Makefile-let-libdb-6.0.la-depend-os_map.l.patch;patchdir=.. \
- "
-
-SRC_URI[md5sum] = "ad28eb86ad3203b5422844db179c585b"
-SRC_URI[sha256sum] = "608e4b1cf390e9bf54c0ef00c5bd9ca76d36e2261b9f4d33d54516f3f6a20fd2"
-
-# Exclude NC versions which lack AES encryption
-UPSTREAM_CHECK_REGEX = "db-(?P<pver>\d+\.\d+(\.\d+)?).tar"
-UPSTREAM_CHECK_URI = "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html"
-
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=1ec8b0b17cc31513fe35ab10716f8490"
-
-inherit autotools
-
-# Put virtual/db in any appropriate provider of a
-# relational database, use it as a dependency in
-# place of a specific db and use:
-#
-# PREFERRED_PROVIDER_virtual/db
-#
-# to select the correct db in the build (distro) .conf
-PROVIDES += "${VIRTUAL_NAME}"
-
-# bitbake isn't quite clever enough to deal with sleepycat,
-# the distribution sits in the expected directory, but all
-# the builds must occur from a sub-directory. The following
-# persuades bitbake to go to the right place
-S = "${WORKDIR}/db-${PV}/dist"
-B = "${WORKDIR}/db-${PV}/build_unix"
-SPDX_S = "${WORKDIR}/db-${PV}"
-
-# The executables go in a separate package - typically there
-# is no need to install these unless doing real database
-# management on the system.
-inherit lib_package
-
-PACKAGES =+ "${PN}-cxx"
-FILES_${PN}-cxx = "${libdir}/*cxx*so"
-
-
-# The dev package has the .so link (as in db3) and the .a's -
-# it is therefore incompatible (cannot be installed at the
-# same time) as the db3 package
-# sort out the .so since they do version prior to the .so
-SOLIBS = "-6*.so"
-FILES_SOLIBSDEV = "${libdir}/libdb.so ${libdir}/libdb_cxx.so"
-
-#configuration - set in local.conf to override
-# All the --disable-* options replace --enable-smallbuild, which breaks a bunch of stuff (eg. postfix)
-DB6_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-verify --disable-compat185 --disable-sql"
-
-EXTRA_OECONF = "${DB6_CONFIG} --enable-shared --enable-cxx --with-sysroot"
-
-# Override the MUTEX setting here, the POSIX library is
-# the default - "POSIX/pthreads/library".
-# Don't ignore the nice SWP instruction on the ARM:
-# These enable the ARM assembler mutex code
-ARM_MUTEX = "--with-mutex=ARM/gcc-assembly"
-MUTEX = ""
-MUTEX_arm = "${ARM_MUTEX}"
-MUTEX_armeb = "${ARM_MUTEX}"
-EXTRA_OECONF += "${MUTEX}"
-EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
-# Cancel the site stuff - it's set for db3 and destroys the
-# configure.
-CONFIG_SITE = ""
-do_configure() {
- gnu-configize --force ${S}
- export STRIP="true"
- oe_runconf
-}
-
-do_compile_prepend() {
- sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' \
- ${B}/libtool
-}
-
-do_install_append() {
- mkdir -p ${D}/${includedir}/db60
- mv ${D}/${includedir}/db.h ${D}/${includedir}/db60/.
- mv ${D}/${includedir}/db_cxx.h ${D}/${includedir}/db60/.
- ln -s db60/db.h ${D}/${includedir}/db.h
- ln -s db60/db_cxx.h ${D}/${includedir}/db_cxx.h
-
- # The docs end up in /usr/docs - not right.
- if test -d "${D}/${prefix}/docs"
- then
- mkdir -p "${D}/${datadir}"
- test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}"
- mv "${D}/${prefix}/docs" "${D}/${docdir}"
- fi
-
- chown -R root:root ${D}
-}
-
-INSANE_SKIP_${PN} = "dev-so"
-INSANE_SKIP_${PN}-cxx = "dev-so"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.35.bb b/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.35.bb
new file mode 100644
index 000000000..32afbe82d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/db/db_6.0.35.bb
@@ -0,0 +1,122 @@
+# Version 6 of the Berkeley DB from Oracle (formerly Sleepycat)
+#
+# At present this package only installs the DB code
+# itself (shared libraries, .a in the dev package),
+# documentation and headers.
+#
+# The headers have the same names as those as v3
+# of the DB, only one version can be used *for dev*
+# at once - DB3 and DB6 can both be installed on the
+# same system at the same time if really necessary.
+SECTION = "libs"
+SUMMARY = "Berkeley Database v6"
+HOMEPAGE = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html"
+LICENSE = "AGPL-3.0"
+VIRTUAL_NAME ?= "virtual/db"
+RCONFLICTS_${PN} = "db3"
+
+PR = "r1"
+
+# Note, when upgraded to 6.1.x, a patch in RPM will need to be removed to activate db 6.1 support.
+SRC_URI = "http://distfiles.gentoo.org/distfiles/db-${PV}.tar.gz \
+ file://arm-thumb-mutex_db5.patch \
+ file://fix-parallel-build.patch \
+ file://Makefile-let-libso_target-depend-on-bt_rec.patch \
+ file://Makefile-let-libdb-6.0.la-depend-os_map.l.patch \
+ "
+
+SRC_URI[md5sum] = "c65a4d3e930a116abaaf69edfc697f25"
+SRC_URI[sha256sum] = "24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55"
+
+# Exclude NC versions which lack AES encryption
+UPSTREAM_CHECK_REGEX = "db-(?P<pver>\d+\.\d+(\.\d+)?).tar"
+UPSTREAM_CHECK_URI = "http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ec8b0b17cc31513fe35ab10716f8490"
+
+# Put virtual/db in any appropriate provider of a
+# relational database, use it as a dependency in
+# place of a specific db and use:
+#
+# PREFERRED_PROVIDER_virtual/db
+#
+# to select the correct db in the build (distro) .conf
+PROVIDES += "${VIRTUAL_NAME}"
+
+inherit autotools
+
+# The executables go in a separate package - typically there
+# is no need to install these unless doing real database
+# management on the system.
+inherit lib_package
+
+PACKAGES =+ "${PN}-cxx"
+FILES_${PN}-cxx = "${libdir}/*cxx*so"
+
+# The dev package has the .so link (as in db3) and the .a's -
+# it is therefore incompatible (cannot be installed at the
+# same time) as the db3 package
+# sort out the .so since they do version prior to the .so
+SOLIBS = "-6*.so"
+FILES_SOLIBSDEV = "${libdir}/libdb.so ${libdir}/libdb_cxx.so"
+
+#configuration - set in local.conf to override
+# All the --disable-* options replace --enable-smallbuild, which breaks a bunch of stuff (eg. postfix)
+DB6_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-verify --disable-compat185 --disable-sql"
+
+EXTRA_OECONF = "${DB6_CONFIG} --enable-shared --enable-cxx --with-sysroot"
+
+# Cancel the site stuff - it's set for db3 and destroys the configure.
+CONFIG_SITE = ""
+
+AUTOTOOLS_SCRIPT_PATH = "${S}/dist"
+
+do_configure() {
+ cd ${B}
+ gnu-configize --force ${AUTOTOOLS_SCRIPT_PATH}
+ oe_runconf
+}
+
+# Override the MUTEX setting here, the POSIX library is
+# the default - "POSIX/pthreads/library".
+# Don't ignore the nice SWP instruction on the ARM:
+# These enable the ARM assembler mutex code
+ARM_MUTEX = "--with-mutex=ARM/gcc-assembly"
+MUTEX = ""
+MUTEX_arm = "${ARM_MUTEX}"
+MUTEX_armeb = "${ARM_MUTEX}"
+EXTRA_OECONF += "${MUTEX}"
+EXTRA_OEMAKE_append_class-target = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+EXTRA_OEMAKE += "STRIP=true"
+
+do_compile_prepend() {
+ # Stop libtool adding RPATHs
+ sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/libtool
+}
+
+do_install_append() {
+ mkdir -p ${D}/${includedir}/db60
+ mv ${D}/${includedir}/db.h ${D}/${includedir}/db60/.
+ mv ${D}/${includedir}/db_cxx.h ${D}/${includedir}/db60/.
+ ln -s db60/db.h ${D}/${includedir}/db.h
+ ln -s db60/db_cxx.h ${D}/${includedir}/db_cxx.h
+
+ # The docs end up in /usr/docs - not right.
+ if test -d "${D}/${prefix}/docs"
+ then
+ mkdir -p "${D}/${datadir}"
+ test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}"
+ mv "${D}/${prefix}/docs" "${D}/${docdir}"
+ fi
+
+ chown -R root:root ${D}
+}
+
+# libdb isn't versioned in the typical manner (libdb-6.0.so is the full library
+# name) so skip these checks.
+INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP_${PN}-cxx = "dev-so"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RECIPE_NO_UPDATE_REASON = "latest db does not work with RPM-5.x due to changes in locking semantics"
diff --git a/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.7.bb b/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.7.bb
deleted file mode 100644
index 6a1d5bf83..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.7.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Miscellaneous utilities specific to Debian"
-SECTION = "base"
-LICENSE = "GPLv2 & SMAIL_GPL"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20160204T040501Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz"
-# the package is taken from snapshots.debian.org; that source is static and goes stale
-# so we check the latest upstream from a directory that does get updated
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
-
-SRC_URI[md5sum] = "00186f527b35e2cecd4db593c6d512d0"
-SRC_URI[sha256sum] = "a269cacd40f52f2fa5d5636357714a49e8538459c16d77772efaa23711fe53d9"
-
-inherit autotools update-alternatives
-
-do_configure_prepend() {
- sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am
-}
-
-do_install_append() {
- if [ "${base_bindir}" != "${bindir}" ]; then
- # Debian places some utils into ${base_bindir} as does busybox
- install -d ${D}${base_bindir}
- for app in run-parts tempfile; do
- mv ${D}${bindir}/$app ${D}${base_bindir}/$app
- done
- fi
-}
-
-# Note that we package the update-alternatives name.
-#
-PACKAGES =+ "${PN}-run-parts"
-FILES_${PN}-run-parts = "${base_bindir}/run-parts.debianutils"
-
-RDEPENDS_${PN} += "${PN}-run-parts"
-
-
-ALTERNATIVE_PRIORITY="30"
-ALTERNATIVE_${PN} = "add-shell installkernel remove-shell savelog tempfile which"
-ALTERNATIVE_${PN}-run-parts = "run-parts"
-
-ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell"
-ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel"
-ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell"
-ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts"
-ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog"
-ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile"
-ALTERNATIVE_LINK_NAME[which]="${bindir}/which"
diff --git a/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.8.bb b/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.8.bb
new file mode 100644
index 000000000..d969fd3c9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/debianutils/debianutils_4.8.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Miscellaneous utilities specific to Debian"
+SECTION = "base"
+LICENSE = "GPLv2 & SMAIL_GPL"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160629T224408Z/pool/main/d/${BPN}/${BPN}_${PV}.tar.xz"
+# the package is taken from snapshots.debian.org; that source is static and goes stale
+# so we check the latest upstream from a directory that does get updated
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/"
+
+SRC_URI[md5sum] = "66a37e5ff17be431319bd0b43e9a46b5"
+SRC_URI[sha256sum] = "afa95bbe6b6fd3ef3c0c838b2d7232f09fabeff593ca4b5583cffa6748567ee2"
+
+inherit autotools update-alternatives
+
+do_configure_prepend() {
+ sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am
+}
+
+do_install_append() {
+ if [ "${base_bindir}" != "${bindir}" ]; then
+ # Debian places some utils into ${base_bindir} as does busybox
+ install -d ${D}${base_bindir}
+ for app in run-parts tempfile; do
+ mv ${D}${bindir}/$app ${D}${base_bindir}/$app
+ done
+ fi
+}
+
+# Note that we package the update-alternatives name.
+#
+PACKAGES =+ "${PN}-run-parts"
+FILES_${PN}-run-parts = "${base_bindir}/run-parts.debianutils"
+
+RDEPENDS_${PN} += "${PN}-run-parts"
+
+
+ALTERNATIVE_PRIORITY="30"
+ALTERNATIVE_${PN} = "add-shell installkernel remove-shell savelog tempfile which"
+ALTERNATIVE_${PN}-run-parts = "run-parts"
+
+ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell"
+ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel"
+ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell"
+ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts"
+ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog"
+ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile"
+ALTERNATIVE_LINK_NAME[which]="${bindir}/which"
diff --git a/import-layers/yocto-poky/meta/recipes-support/enchant/enchant_1.6.0.bb b/import-layers/yocto-poky/meta/recipes-support/enchant/enchant_1.6.0.bb
index 97a47614c..44eb2e3df 100644
--- a/import-layers/yocto-poky/meta/recipes-support/enchant/enchant_1.6.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/enchant/enchant_1.6.0.bb
@@ -7,7 +7,7 @@ LICENSE = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=dfcbabf9131dc9a95febef6753a2958b \
file://src/enchant.h;beginline=1;endline=29;md5=8d881caa1d37523567e1d8f726675a18"
-DEPENDS = "aspell glib-2.0"
+DEPENDS = "glib-2.0"
inherit autotools pkgconfig
@@ -18,15 +18,17 @@ SRC_URI = "http://www.abisource.com/downloads/enchant/${PV}/enchant-${PV}.tar.gz
SRC_URI[md5sum] = "de11011aff801dc61042828041fb59c7"
SRC_URI[sha256sum] = "2fac9e7be7e9424b2c5570d8affe568db39f7572c10ed48d4e13cddf03f7097f"
-EXTRA_OECONF = "--with-aspell-prefix=${STAGING_DIR_HOST}${prefix} \
- --enable-aspell br_cv_binreloc=no \
- "
+PACKAGECONFIG ??= "aspell"
+PACKAGECONFIG[aspell] = " --with-aspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-aspell, --disable-aspell, aspell, aspell"
+PACKAGECONFIG[ispell] = " --with-ispell-prefix=${STAGING_DIR_HOST}${prefix} --enable-ispell, --disable-ispell, ispell, ispell"
+PACKAGECONFIG[uspell] = " --with-uspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-uspell, --disable-uspell, uspell, uspell"
+PACKAGECONFIG[hspell] = " --with-hspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-hspell, --disable-hspell, hspell, hspell"
+PACKAGECONFIG[myspell] = "--with-myspell-prefix=${STAGING_DIR_HOST}${prefix} --enable-myspell, --disable-myspell, myspell, myspell"
+
+EXTRA_OECONF = "br_cv_binreloc=no"
export CXXFLAGS += " -L${STAGING_LIBDIR} -lstdc++ "
FILES_${PN} = "${bindir} ${libdir}/*${SOLIBS} ${datadir}/${BPN} ${libdir}/${BPN}/*.so"
FILES_${PN}-dev += "${libdir}/${BPN}/*{SOLIBSDEV} ${libdir}/${BPN}/*.la"
FILES_${PN}-staticdev += "${libdir}/${BPN}/*.a"
-
-RDEPENDS_${PN} += "aspell"
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.11.bb b/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.11.bb
deleted file mode 100644
index adf8c5bd3..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.11.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Key/value database library with extensible hashing"
-HOMEPAGE = "http://www.gnu.org/software/gdbm/"
-SECTION = "libs"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
-
-
-SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
- file://run-ptest \
- file://ptest.patch \
- "
-
-SRC_URI[md5sum] = "72c832680cf0999caedbe5b265c8c1bd"
-SRC_URI[sha256sum] = "8d912f44f05d0b15a4a5d96a76f852e905d051bb88022fcdfd98b43be093e3c3"
-
-inherit autotools gettext texinfo lib_package ptest
-
-# Needed for dbm python module
-EXTRA_OECONF = "-enable-libgdbm-compat"
-
-# Stop presence of dbm/nbdm on the host contaminating builds
-CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install_append () {
- # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
- # these headers
- install -d ${D}${includedir}/gdbm
- ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
- ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
-}
-
-RDEPENDS_${PN}-ptest += "diffutils"
-
-do_compile_ptest() {
- oe_runmake -C tests buildtests
-}
-
-PACKAGES =+ "${PN}-compat \
- "
-FILES_${PN}-compat = "${libdir}/libgdbm_compat${SOLIBS} \
- "
diff --git a/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.12.bb b/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.12.bb
new file mode 100644
index 000000000..c380073c3
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gdbm/gdbm_1.12.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Key/value database library with extensible hashing"
+HOMEPAGE = "http://www.gnu.org/software/gdbm/"
+SECTION = "libs"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=241da1b9fe42e642cbb2c24d5e0c4d24"
+
+
+SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
+ file://run-ptest \
+ file://ptest.patch \
+ "
+
+SRC_URI[md5sum] = "9ce96ff4c99e74295ea19040931c8fb9"
+SRC_URI[sha256sum] = "d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea"
+
+inherit autotools gettext texinfo lib_package ptest
+
+# Needed for dbm python module
+EXTRA_OECONF = "-enable-libgdbm-compat"
+
+# Stop presence of dbm/nbdm on the host contaminating builds
+CACHED_CONFIGUREVARS += "ac_cv_lib_ndbm_main=no ac_cv_lib_dbm_main=no"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install_append () {
+ # Create a symlink to ndbm.h and gdbm.h in include/gdbm to let other packages to find
+ # these headers
+ install -d ${D}${includedir}/gdbm
+ ln -sf ../ndbm.h ${D}/${includedir}/gdbm/ndbm.h
+ ln -sf ../gdbm.h ${D}/${includedir}/gdbm/gdbm.h
+}
+
+RDEPENDS_${PN}-ptest += "diffutils"
+
+do_compile_ptest() {
+ oe_runmake -C tests buildtests
+}
+
+PACKAGES =+ "${PN}-compat \
+ "
+FILES_${PN}-compat = "${libdir}/libgdbm_compat${SOLIBS} \
+ "
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
index 63aed05ec..26fd8ef8b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
@@ -5,7 +5,7 @@ this patch avoids these kinds of errors:
| configure.in:2240: error: automatic de-ANSI-fication support has been removed
| Makefile.am:28: error: automatic de-ANSI-fication support has been removed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/02
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
index 325ffe491..325ffe491 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-Append-the-user-provided-flags-to-the-auto-detected-.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-confiure.ac-Believe-the-cflags-from-environment.patch b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-confiure.ac-Believe-the-cflags-from-environment.patch
new file mode 100644
index 000000000..665367658
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/0001-confiure.ac-Believe-the-cflags-from-environment.patch
@@ -0,0 +1,52 @@
+From ae1a4c37417a3bbbf8ea1cab198982b0cad47e29 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 12 Aug 2016 17:08:13 +0000
+Subject: [PATCH] confiure.ac: Believe the cflags from environment
+
+In some toolchains e.g. OpenEmbedded -march options
+are passed on compiler cmdline, it does not use
+the expected target triplets to make these decision
+during configure.
+
+Secondly, dont set armv4 for march when no selection
+is made, since it is passed from cmdline
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Inappropriate[OE-Specific]
+
+ configure.ac | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 857ea3b..359e919 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -607,15 +607,6 @@ case $host in
+ GMP_INCLUDE_MPN(arm/arm-defs.m4)
+ CALLING_CONVENTIONS_OBJS='arm32call.lo arm32check.lo'
+
+- # This is needed for clang, which is not content with flags like -mfpu=neon
+- # alone.
+- case $host in
+- *-*-*eabi)
+- gcc_cflags_fpmode="-mfloat-abi=softfp" ;;
+- *-*-*eabihf)
+- gcc_cflags_fpmode="-mfloat-abi=hard" ;;
+- esac
+-
+ # FIXME: We make mandatory compiler options optional here. We should
+ # either enforce them, or organise to strip paths as the corresponding
+ # options fail.
+@@ -686,8 +677,6 @@ case $host in
+ ;;
+ *)
+ path="arm"
+- gcc_cflags_arch="-march=armv4"
+- GMP_DEFINE_RAW(["define(<NOTHUMB>,1)"])
+ ;;
+ esac
+ ;;
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/amd64.patch b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/amd64.patch
index 564d12d42..564d12d42 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/amd64.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/amd64.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/use-includedir.patch b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/use-includedir.patch
index 74904a253..74904a253 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.0/use-includedir.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp-6.1.1/use-includedir.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.0.bb b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.0.bb
deleted file mode 100644
index de827f5b7..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.0.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-require gmp.inc
-
-LICENSE = "GPLv2+ | LGPLv3+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
- file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-"
-
-REVISION = ""
-SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
- file://amd64.patch \
- file://use-includedir.patch \
- file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
- "
-
-SRC_URI[md5sum] = "86ee6e54ebfc4a90b643a65e402c4048"
-SRC_URI[sha256sum] = "498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8"
-
-acpaths = ""
-
-EXTRA_OECONF += " --enable-cxx=detect"
-
-PACKAGES =+ "libgmpxx"
-FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}"
-
-do_install_append_class-target() {
- sed -i "s|--sysroot=${STAGING_DIR_HOST}||g" ${D}${includedir}/gmp.h
-}
-
-SSTATE_SCAN_FILES += "gmp.h"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.1.bb b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.1.bb
new file mode 100644
index 000000000..303c3ef9e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gmp/gmp_6.1.1.bb
@@ -0,0 +1,38 @@
+require gmp.inc
+
+LICENSE = "GPLv2+ | LGPLv3+"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+"
+
+REVISION = ""
+SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
+ file://amd64.patch \
+ file://use-includedir.patch \
+ file://0001-Append-the-user-provided-flags-to-the-auto-detected-.patch \
+ file://0001-confiure.ac-Believe-the-cflags-from-environment.patch \
+ "
+
+SRC_URI[md5sum] = "4c175f86e11eb32d8bf9872ca3a8e11d"
+SRC_URI[sha256sum] = "a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6"
+
+acpaths = ""
+
+EXTRA_OECONF += " --enable-cxx=detect"
+
+PACKAGES =+ "libgmpxx"
+FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}"
+
+do_install_append_class-target() {
+ sed -i "s|--sysroot=${STAGING_DIR_HOST}||g" ${D}${includedir}/gmp.h
+}
+
+SSTATE_SCAN_FILES += "gmp.h"
+
+# Doesn't compile in MIPS16e mode due to use of hand-written
+# assembly
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_1.4.7.bb b/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_1.4.7.bb
index b4ccbfed6..6ccffd54c 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_1.4.7.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_1.4.7.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
PR = "r9"
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-${PV}.tar.bz2 \
+SRC_URI = "${GNUPG_MIRROR}/gnupg/gnupg-${PV}.tar.bz2 \
file://long-long-thumb.patch \
file://configure.patch \
file://mips_gcc4.4.patch \
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.11.bb b/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.11.bb
deleted file mode 100644
index 8e2189bca..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.11.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)"
-HOMEPAGE = "http://www.gnupg.org/"
-LICENSE = "GPLv3 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
- file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
-
-inherit autotools gettext texinfo pkgconfig
-
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://pkgconfig.patch \
- file://use-pkgconfig-instead-of-npth-config.patch \
- file://dirmngr-uses-libgpg-error.patch \
- file://autogen.sh-fix-find-version-for-beta-checking.patch \
- "
-
-SRC_URI[md5sum] = "873302c475c4c90badb67daac90ebd5d"
-SRC_URI[sha256sum] = "b7b0fb2c8c5d47d7ec916d4a1097c0ddcb94a12bb1c0ac424ad86b1ee316b61a"
-
-EXTRA_OECONF = "--disable-ldap \
- --disable-ccid-driver \
- --with-zlib=${STAGING_LIBDIR}/.. \
- --with-bzip2=${STAGING_LIBDIR}/.. \
- --with-readline=${STAGING_LIBDIR}/.. \
- "
-RRECOMMENDS_${PN} = "pinentry"
-
-do_configure_prepend () {
- # Else these could be used in prefernce to those in aclocal-copy
- rm -f ${S}/m4/gpg-error.m4
- rm -f ${S}/m4/libassuan.m4
- rm -f ${S}/m4/ksba.m4
- rm -f ${S}/m4/libgcrypt.m4
-}
-
-do_install_append() {
- ln -sf gpg2 ${D}${bindir}/gpg
- ln -sf gpgv2 ${D}${bindir}/gpgv
-}
-
-RDEPENDS_${PN} = "gnutls"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.14.bb b/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.14.bb
new file mode 100644
index 000000000..5ea9b962e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnupg/gnupg_2.1.14.bb
@@ -0,0 +1,46 @@
+SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)"
+HOMEPAGE = "http://www.gnupg.org/"
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+ file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6"
+
+DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
+
+inherit autotools gettext texinfo pkgconfig
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
+ file://pkgconfig.patch \
+ file://use-pkgconfig-instead-of-npth-config.patch \
+ file://dirmngr-uses-libgpg-error.patch \
+ file://autogen.sh-fix-find-version-for-beta-checking.patch \
+ "
+
+SRC_URI[md5sum] = "46cf0a42ffad6c2615cafd633580b2de"
+SRC_URI[sha256sum] = "9450dee9693b6a12bf0c374dae77b66c30f69ff8f35fc9266ab8dd76998eba42"
+
+EXTRA_OECONF = "--disable-ldap \
+ --disable-ccid-driver \
+ --with-zlib=${STAGING_LIBDIR}/.. \
+ --with-bzip2=${STAGING_LIBDIR}/.. \
+ --with-readline=${STAGING_LIBDIR}/.. \
+ "
+RRECOMMENDS_${PN} = "pinentry"
+
+do_configure_prepend () {
+ # Else these could be used in prefernce to those in aclocal-copy
+ rm -f ${S}/m4/gpg-error.m4
+ rm -f ${S}/m4/libassuan.m4
+ rm -f ${S}/m4/ksba.m4
+ rm -f ${S}/m4/libgcrypt.m4
+}
+
+do_install_append() {
+ ln -sf gpg2 ${D}${bindir}/gpg
+ ln -sf gpgv2 ${D}${bindir}/gpgv
+}
+
+RDEPENDS_${PN} = "gnutls"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls.inc b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls.inc
index e7c91eb80..51b9d2b19 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls.inc
@@ -8,8 +8,9 @@ LICENSE_${PN}-xx = "LGPLv2.1+"
LICENSE_${PN}-bin = "GPLv3+"
LICENSE_${PN}-openssl = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \
+ file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343"
DEPENDS = "nettle gmp virtual/libiconv"
DEPENDS_append_libc-musl = " argp-standalone"
@@ -18,11 +19,10 @@ SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split
SRC_URI = "ftp://ftp.gnutls.org/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz"
-inherit autotools texinfo binconfig pkgconfig gettext lib_package
+inherit autotools texinfo binconfig pkgconfig gettext lib_package gtk-doc
PACKAGECONFIG ??= "libidn zlib"
-PACKAGECONFIG[docs] = "--enable-doc,--disable-doc"
PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn"
PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1"
PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit"
@@ -30,7 +30,7 @@ PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
EXTRA_OECONF = " \
- --disable-crywrap \
+ --enable-doc \
--disable-libdane \
--disable-guile \
--disable-rpath \
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/0001-Use-correct-include-dir-with-minitasn.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/0001-Use-correct-include-dir-with-minitasn.patch
new file mode 100644
index 000000000..d7dd7cf69
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/0001-Use-correct-include-dir-with-minitasn.patch
@@ -0,0 +1,31 @@
+From 2651b08477f42dd7a05ea7d6df410fb2c46de4fb Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 31 Aug 2016 11:04:06 +0300
+Subject: [PATCH] Use correct include dir with minitasn
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows compiling certtool-cfg without libtasn headers.
+
+Upstream-Status: Submitted [https://gitlab.com/gnutls/gnutls/merge_requests/54]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ src/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 182f3a5..cf65388 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -146,6 +146,7 @@ libcmd_cli_debug_la_SOURCES = cli-debug-args.def cli-debug-args.c cli-debug-args
+ COMMON_LIBS = $(LIBOPTS) $(LTLIBINTL)
+ if ENABLE_MINITASN1
+ COMMON_LIBS += ../lib/minitasn1/libminitasn1.la ../gl/libgnu.la
++AM_CPPFLAGS += -I$(top_srcdir)/lib/minitasn1
+ else
+ COMMON_LIBS += $(LIBTASN1_LIBS)
+ endif
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/CVE-2016-7444.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/CVE-2016-7444.patch
new file mode 100644
index 000000000..215be5a8e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls/CVE-2016-7444.patch
@@ -0,0 +1,35 @@
+CVE: CVE-2016-7444
+Upstream-Status: Backport
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+Upstream commit follows:
+
+
+From 964632f37dfdfb914ebc5e49db4fa29af35b1de9 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav@gnutls.org>
+Date: Sat, 27 Aug 2016 17:00:22 +0200
+Subject: [PATCH] ocsp: corrected the comparison of the serial size in OCSP response
+
+Previously the OCSP certificate check wouldn't verify the serial length
+and could succeed in cases it shouldn't.
+
+Reported by Stefan Buehler.
+---
+ lib/x509/ocsp.c | 1 +
+ 1 file changed, 1 insertion(+), 0 deletions(-)
+
+diff --git a/lib/x509/ocsp.c b/lib/x509/ocsp.c
+index 92db9b6..8181f2e 100644
+--- a/lib/x509/ocsp.c
++++ b/lib/x509/ocsp.c
+@@ -1318,6 +1318,7 @@ gnutls_ocsp_resp_check_crt(gnutls_ocsp_resp_t resp,
+ gnutls_assert();
+ goto cleanup;
+ }
++ cserial.size = t;
+
+ if (rserial.size != cserial.size
+ || memcmp(cserial.data, rserial.data, rserial.size) != 0) {
+--
+libgit2 0.24.0
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.4.9.bb b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.4.9.bb
deleted file mode 100644
index b652f6fac..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.4.9.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require gnutls.inc
-
-SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
- file://0001-configure.ac-fix-sed-command.patch \
- file://use-pkg-config-to-locate-zlib.patch \
- "
-SRC_URI[md5sum] = "1b3b6d55d0e2b6d01a54f53129f1da9b"
-SRC_URI[sha256sum] = "48594fadba33d450f796ec69526cf2bce6ff9bc3dc90fbd7bf38dc3601f57c3f"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.5.3.bb b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.5.3.bb
new file mode 100644
index 000000000..b2dbb0712
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/gnutls_3.5.3.bb
@@ -0,0 +1,13 @@
+require gnutls.inc
+
+SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
+ file://0001-configure.ac-fix-sed-command.patch \
+ file://use-pkg-config-to-locate-zlib.patch \
+ file://0001-Use-correct-include-dir-with-minitasn.patch \
+ file://CVE-2016-7444.patch \
+ "
+SRC_URI[md5sum] = "6c2c7f40ddf52933ee3ca474cb8cb63c"
+SRC_URI[sha256sum] = "92c4bc999a10a1b95299ebefaeea8333f19d8a98d957a35b5eae74881bdb1fef"
+
+# x86 .text relocations should be fixed from 3.5.5 onwards
+INSANE_SKIP_${PN}_append_x86 = " textrel"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0001-configure-don-t-add-Werror-to-build-flags.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0001-configure-don-t-add-Werror-to-build-flags.patch
new file mode 100644
index 000000000..ae643946f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0001-configure-don-t-add-Werror-to-build-flags.patch
@@ -0,0 +1,28 @@
+From 908e9fa4c1172f09e0e45420a403dc25ed0a466c Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav@redhat.com>
+Date: Tue, 26 Jul 2016 08:45:33 +0200
+Subject: [PATCH 1/4] configure: don't add -Werror to build flags
+
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 7a14e04..066f5fe 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,8 +70,6 @@ AC_ARG_ENABLE([gcc-warnings],
+ )
+
+ if test "$gl_gcc_warnings" = yes; then
+- gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
+-
+ nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
+ nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers
+ nw="$nw -Wtraditional" # Warns on #elif which we use often
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0002-ASN.y-corrected-compiler-warning.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0002-ASN.y-corrected-compiler-warning.patch
new file mode 100644
index 000000000..dd364223b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0002-ASN.y-corrected-compiler-warning.patch
@@ -0,0 +1,28 @@
+From 3542c01618fcde83b29640ea2c60bfd2629ae0b7 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav@redhat.com>
+Date: Tue, 26 Jul 2016 08:47:49 +0200
+Subject: [PATCH 2/4] ASN.y: corrected compiler warning
+
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ lib/ASN1.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/ASN1.y b/lib/ASN1.y
+index 731415d..6db638f 100644
+--- a/lib/ASN1.y
++++ b/lib/ASN1.y
+@@ -621,7 +621,7 @@ _asn1_create_errorDescription (int error, char *error_desc)
+ case ASN1_NAME_TOO_LONG:
+ snprintf (error_desc, ASN1_MAX_ERROR_DESCRIPTION_SIZE,
+ "%s:%u: name too long (more than %u characters)", file_name,
+- line_number, ASN1_MAX_NAME_SIZE);
++ line_number, (unsigned)ASN1_MAX_NAME_SIZE);
+ break;
+ case ASN1_IDENTIFIER_NOT_FOUND:
+ snprintf (error_desc, ASN1_MAX_ERROR_DESCRIPTION_SIZE,
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0003-parser_aux-corrected-potential-null-pointer-derefere.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0003-parser_aux-corrected-potential-null-pointer-derefere.patch
new file mode 100644
index 000000000..24201437b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0003-parser_aux-corrected-potential-null-pointer-derefere.patch
@@ -0,0 +1,73 @@
+From c8903aa27dc9de1d9efeed9d1f7894f1019548f7 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav@redhat.com>
+Date: Tue, 26 Jul 2016 08:49:15 +0200
+Subject: [PATCH 3/4] parser_aux: corrected potential null pointer dereferences
+
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ lib/parser_aux.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/lib/parser_aux.c b/lib/parser_aux.c
+index 2285b20..12ee16f 100644
+--- a/lib/parser_aux.c
++++ b/lib/parser_aux.c
+@@ -637,7 +637,7 @@ _asn1_change_integer_value (asn1_node node)
+ p = NULL;
+ break;
+ }
+- if (p->right)
++ if (p && p->right)
+ {
+ p = p->right;
+ break;
+@@ -753,7 +753,7 @@ _asn1_expand_object_id (asn1_node node)
+
+ if (move == RIGHT)
+ {
+- if (p->right)
++ if (p && p->right)
+ p = p->right;
+ else
+ move = UP;
+@@ -828,7 +828,7 @@ _asn1_expand_object_id (asn1_node node)
+
+ if (move == RIGHT)
+ {
+- if (p->right)
++ if (p && p->right)
+ p = p->right;
+ else
+ move = UP;
+@@ -898,7 +898,7 @@ _asn1_type_set_config (asn1_node node)
+
+ if (move == RIGHT)
+ {
+- if (p->right)
++ if (p && p->right)
+ p = p->right;
+ else
+ move = UP;
+@@ -1007,7 +1007,7 @@ _asn1_check_identifier (asn1_node node)
+ p = NULL;
+ break;
+ }
+- if (p->right)
++ if (p && p->right)
+ {
+ p = p->right;
+ break;
+@@ -1067,7 +1067,7 @@ _asn1_set_default_tag (asn1_node node)
+ p = NULL;
+ break;
+ }
+- if (p->right)
++ if (p && p->right)
+ {
+ p = p->right;
+ break;
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0004-tools-eliminated-compiler-warnings.patch b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0004-tools-eliminated-compiler-warnings.patch
new file mode 100644
index 000000000..7bda0e6f2
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1/0004-tools-eliminated-compiler-warnings.patch
@@ -0,0 +1,56 @@
+From d647bb2fa1bd288a6ac02c18318f3cba2a34c3a0 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos <nmav@redhat.com>
+Date: Tue, 26 Jul 2016 08:50:24 +0200
+Subject: [PATCH 4/4] tools: eliminated compiler warnings
+
+---
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+ src/asn1Coding.c | 2 +-
+ src/asn1Decoding.c | 2 +-
+ src/asn1Parser.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/asn1Coding.c b/src/asn1Coding.c
+index d4df593..b516bfe 100644
+--- a/src/asn1Coding.c
++++ b/src/asn1Coding.c
+@@ -188,7 +188,7 @@ main (int argc, char *argv[])
+ default:
+ fprintf (stderr,
+ "asn1Coding: ?? getopt returned character code Ox%x ??\n",
+- option_result);
++ (unsigned)option_result);
+ }
+ }
+
+diff --git a/src/asn1Decoding.c b/src/asn1Decoding.c
+index 078963e..20f91ac 100644
+--- a/src/asn1Decoding.c
++++ b/src/asn1Decoding.c
+@@ -131,7 +131,7 @@ main (int argc, char *argv[])
+ default:
+ fprintf (stderr,
+ "asn1Decoding: ?? getopt returned character code Ox%x ??\n",
+- option_result);
++ (unsigned)option_result);
+ }
+ }
+
+diff --git a/src/asn1Parser.c b/src/asn1Parser.c
+index 7a3ae67..475bfc9 100644
+--- a/src/asn1Parser.c
++++ b/src/asn1Parser.c
+@@ -139,7 +139,7 @@ main (int argc, char *argv[])
+ default:
+ fprintf (stderr,
+ "asn1Parser: ?? getopt returned character code Ox%x ??\n",
+- option_result);
++ (unsigned)option_result);
+ }
+
+ }
+--
+1.9.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.7.bb b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.7.bb
deleted file mode 100644
index 7f0856945..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.7.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Library for ASN.1 and DER manipulation"
-HOMEPAGE = "http://www.gnu.org/software/libtasn1/"
-
-LICENSE = "GPLv3+ & LGPLv2.1+"
-LICENSE_${PN}-bin = "GPLv3+"
-LICENSE_${PN} = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
- file://README;endline=8;md5=c3803a3e8ca5ab5eb1e5912faa405351"
-
-SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
- file://dont-depend-on-help2man.patch \
- "
-
-SRC_URI[md5sum] = "12d10ca4ae0a3b95f7aa06a076da39ec"
-SRC_URI[sha256sum] = "a40780dc93fc6d819170240e8ece25352058a85fd1d2347ce0f143667d8f11c9"
-
-inherit autotools texinfo binconfig lib_package
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.9.bb b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.9.bb
new file mode 100644
index 000000000..b8ff9eaf7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/gnutls/libtasn1_4.9.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Library for ASN.1 and DER manipulation"
+HOMEPAGE = "http://www.gnu.org/software/libtasn1/"
+
+LICENSE = "GPLv3+ & LGPLv2.1+"
+LICENSE_${PN}-bin = "GPLv3+"
+LICENSE_${PN} = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
+ file://README;endline=8;md5=c3803a3e8ca5ab5eb1e5912faa405351"
+
+SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
+ file://dont-depend-on-help2man.patch \
+ file://0001-configure-don-t-add-Werror-to-build-flags.patch \
+ file://0002-ASN.y-corrected-compiler-warning.patch \
+ file://0003-parser_aux-corrected-potential-null-pointer-derefere.patch \
+ file://0004-tools-eliminated-compiler-warnings.patch \
+ "
+
+SRC_URI[md5sum] = "3018d0f466a32b66dde41bb122e6cab6"
+SRC_URI[sha256sum] = "4f6f7a8fd691ac2b8307c8ca365bad711db607d4ad5966f6938a9d2ecd65c920"
+
+inherit autotools texinfo binconfig lib_package gtk-doc
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/gpgme/gpgme_1.6.0.bb b/import-layers/yocto-poky/meta/recipes-support/gpgme/gpgme_1.6.0.bb
index 86eda239b..a2d05878b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/gpgme/gpgme_1.6.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/gpgme/gpgme_1.6.0.bb
@@ -9,7 +9,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/gpgme.h.in;endline=23;md5=5027eec93a996272a9a0a6a86cf35775 \
file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d"
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gpgme/${BP}.tar.bz2 \
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \
file://gpgme.pc \
file://pkgconfig.patch \
"
diff --git a/import-layers/yocto-poky/meta/recipes-support/icu/icu/icu-release-56-1-flagparser-fix.patch b/import-layers/yocto-poky/meta/recipes-support/icu/icu/icu-release-56-1-flagparser-fix.patch
deleted file mode 100644
index 1519d8469..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/icu/icu/icu-release-56-1-flagparser-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-icu: Ticket #11959: pkgdata dies when compiled with lots'o'flags
-
-See: http://bugs.icu-project.org/trac/ticket/11959
-
-The patch avoids premature failure which results in a segfault.
-
-Upstream-Status: Backport of r38081
-Signed-off-by: Mike Crowe <mac@mcrowe.com>
-
-Index: source/tools/toolutil/flagparser.c
-===================================================================
---- source/tools/toolutil/flagparser.c (revision 38046)
-+++ source/tools/toolutil/flagparser.c (working copy)
-@@ -96,8 +96,8 @@
- uprv_free(buffer);
-
- T_FileStream_close(f);
--
-- if (U_FAILURE(*status)) {
-+
-+ if (U_FAILURE(*status) && *status != U_BUFFER_OVERFLOW_ERROR) {
- return -1;
- }
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/icu/icu_56.1.bb b/import-layers/yocto-poky/meta/recipes-support/icu/icu_56.1.bb
deleted file mode 100644
index db0de106b..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/icu/icu_56.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-require icu.inc
-
-LIC_FILES_CHKSUM = "file://../license.html;md5=64eff4aadff4d104d6d437c4fde0e6d7"
-
-def icu_download_version(d):
- pvsplit = d.getVar('PV', True).split('.')
- return pvsplit[0] + "_" + pvsplit[1]
-
-ICU_PV = "${@icu_download_version(d)}"
-
-# http://errors.yoctoproject.org/Errors/Details/20486/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/icu4c-${ICU_PV}-src.tgz"
-SRC_URI = "${BASE_SRC_URI} \
- file://icu-pkgdata-large-cmd.patch \
- file://fix-install-manx.patch \
- file://icu-release-56-1-flagparser-fix.patch \
- "
-
-SRC_URI_append_class-target = "\
- file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
- "
-SRC_URI[md5sum] = "c4a2d71ff56aec5ebfab2a3f059be99d"
-SRC_URI[sha256sum] = "3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816"
-
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-UPSTREAM_CHECK_URI = "http://download.icu-project.org/files/icu4c/"
diff --git a/import-layers/yocto-poky/meta/recipes-support/icu/icu_57.1.bb b/import-layers/yocto-poky/meta/recipes-support/icu/icu_57.1.bb
new file mode 100644
index 000000000..90c2b8275
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/icu/icu_57.1.bb
@@ -0,0 +1,28 @@
+require icu.inc
+
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=787d3b37867445c1cdd6f6167bd0e347"
+
+def icu_download_version(d):
+ pvsplit = d.getVar('PV', True).split('.')
+ return pvsplit[0] + "_" + pvsplit[1]
+
+ICU_PV = "${@icu_download_version(d)}"
+
+# http://errors.yoctoproject.org/Errors/Details/20486/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/icu4c-${ICU_PV}-src.tgz"
+SRC_URI = "${BASE_SRC_URI} \
+ file://icu-pkgdata-large-cmd.patch \
+ file://fix-install-manx.patch \
+ "
+
+SRC_URI_append_class-target = "\
+ file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
+ "
+SRC_URI[md5sum] = "976734806026a4ef8bdd17937c8898b9"
+SRC_URI[sha256sum] = "ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581"
+
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
+UPSTREAM_CHECK_URI = "http://download.icu-project.org/files/icu4c/"
diff --git a/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.65.bb b/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.65.bb
deleted file mode 100644
index 0b78dc45e..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.65.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "ISO language, territory, currency, script codes and their translations"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fbc093901857fcd118f065f900982c24"
-
-SRC_URI = "https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-${PV}.tar.xz"
-SRC_URI[md5sum] = "890a08d4f962748e0a0758a8aa471896"
-SRC_URI[sha256sum] = "834de5193c8489eedeaf6509457a9b13476702386ae1f3ed4f391a349d630320"
-
-# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
-# are inhibited by allarch
-DEPENDS = "gettext-native"
-
-inherit allarch autotools
-
-FILES_${PN} += "${datadir}/xml/"
diff --git a/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.70.bb b/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.70.bb
new file mode 100644
index 000000000..7edd8b7bb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/iso-codes/iso-codes_3.70.bb
@@ -0,0 +1,15 @@
+SUMMARY = "ISO language, territory, currency, script codes and their translations"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-${PV}.tar.xz"
+SRC_URI[md5sum] = "c61f8f02eecf978d3710ff594e43ca7e"
+SRC_URI[sha256sum] = "41e2fbaec2ed57e767b94f175d0dcd31b627aeb23b75cd604605a6fb6109d61f"
+
+# inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
+# are inhibited by allarch
+DEPENDS = "gettext-native"
+
+inherit allarch autotools
+
+FILES_${PN} += "${datadir}/xml/"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.2.bb b/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.2.bb
deleted file mode 100644
index f376d631e..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "IPC library used by GnuPG and GPGME"
-HOMEPAGE = "http://www.gnupg.org/related_software/libassuan/"
-BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
-
-LICENSE = "GPLv3+ & LGPLv2.1+"
-LICENSE_${PN} = "LGPLv2.1+"
-LICENSE_${PN}-doc = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/assuan.c;endline=20;md5=0f465544183405055ec179869fc5b5ba \
- file://src/assuan-defs.h;endline=20;md5=20cd55535260ca1779edae5c7b80b21e"
-
-DEPENDS = "libgpg-error"
-
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-${PV}.tar.bz2 \
- file://libassuan-add-pkgconfig-support.patch"
-
-SRC_URI[md5sum] = "70151995c2330ae1261c0a7ca34cf478"
-SRC_URI[sha256sum] = "bb06dc81380b74bf1b64d5849be5c0409a336f3b4c45f20ac688e86d1b5bcb20"
-
-BINCONFIG = "${bindir}/libassuan-config"
-
-inherit autotools texinfo binconfig-disabled pkgconfig
-
-do_configure_prepend () {
- # Else these could be used in preference to those in aclocal-copy
- rm -f ${S}/m4/*.m4
-}
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.3.bb b/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.3.bb
new file mode 100644
index 000000000..1b3916d73
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libassuan/libassuan_2.4.3.bb
@@ -0,0 +1,31 @@
+SUMMARY = "IPC library used by GnuPG and GPGME"
+HOMEPAGE = "http://www.gnupg.org/related_software/libassuan/"
+BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
+
+LICENSE = "GPLv3+ & LGPLv2.1+"
+LICENSE_${PN} = "LGPLv2.1+"
+LICENSE_${PN}-doc = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/assuan.c;endline=20;md5=0f465544183405055ec179869fc5b5ba \
+ file://src/assuan-defs.h;endline=20;md5=20cd55535260ca1779edae5c7b80b21e"
+
+DEPENDS = "libgpg-error"
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/libassuan/libassuan-${PV}.tar.bz2 \
+ file://libassuan-add-pkgconfig-support.patch"
+
+SRC_URI[md5sum] = "8e01a7c72d3e5d154481230668e6eb5a"
+SRC_URI[sha256sum] = "22843a3bdb256f59be49842abf24da76700354293a066d82ade8134bb5aa2b71"
+
+BINCONFIG = "${bindir}/libassuan-config"
+
+inherit autotools texinfo binconfig-disabled pkgconfig
+
+do_configure_prepend () {
+ # Else these could be used in preference to those in aclocal-copy
+ rm -f ${S}/m4/*.m4
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.2.bb b/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.2.bb
deleted file mode 100644
index fdb70d8ef..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.2.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "A library for atomic integer operations"
-HOMEPAGE = "https://github.com/ivmai/libatomic_ops/"
-SECTION = "optional"
-PROVIDES += "libatomics-ops"
-LICENSE = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://doc/LICENSING.txt;md5=e00dd5c8ac03a14c5ae5225a4525fa2d \
- "
-
-SRC_URI = "\
- http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-${PV}.tar.gz \
- file://0001-Add-initial-nios2-architecture-support.patch \
- "
-
-SRC_URI[md5sum] = "1d6538604b314d2fccdf86915e5c0857"
-SRC_URI[sha256sum] = "04fa615f62992547bcbda562260e28b504bc4c06e2f985f267f3ade30304b5dd"
-
-S = "${WORKDIR}/libatomic_ops-${PV}"
-
-ALLOW_EMPTY_${PN} = "1"
-
-ARM_INSTRUCTION_SET = "arm"
-
-inherit autotools pkgconfig
-
-do_install_append() {
- # those contain only docs, not necessary for now.
- install -m 0755 -d ${D}${docdir}
- mv ${D}${datadir}/libatomic_ops ${D}${docdir}/${BPN}
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.4.bb b/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.4.bb
new file mode 100644
index 000000000..930c1b8ed
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libatomic-ops/libatomic-ops_7.4.4.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A library for atomic integer operations"
+HOMEPAGE = "https://github.com/ivmai/libatomic_ops/"
+SECTION = "optional"
+PROVIDES += "libatomics-ops"
+LICENSE = "GPLv2 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://doc/LICENSING.txt;md5=e00dd5c8ac03a14c5ae5225a4525fa2d \
+ "
+
+SRC_URI = "\
+ http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-${PV}.tar.gz \
+ file://0001-Add-initial-nios2-architecture-support.patch \
+ "
+
+SRC_URI[md5sum] = "426d804baae12c372967a6d183e25af2"
+SRC_URI[sha256sum] = "bf210a600dd1becbf7936dd2914cf5f5d3356046904848dcfd27d0c8b12b6f8f"
+
+S = "${WORKDIR}/libatomic_ops-${PV}"
+
+ALLOW_EMPTY_${PN} = "1"
+
+ARM_INSTRUCTION_SET = "arm"
+
+inherit autotools pkgconfig
+
+do_install_append() {
+ # those contain only docs, not necessary for now.
+ install -m 0755 -d ${D}${docdir}
+ mv ${D}${datadir}/libatomic_ops ${D}${docdir}/${BPN}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.2.bb b/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.2.bb
deleted file mode 100644
index 3335386d8..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.2.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (C) 2013 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Library of utility functions from BSD systems"
-DESCRIPTION = "This library provides useful functions commonly found on BSD systems, \
- and lacking on others like GNU systems, thus making it easier to port \
- projects with strong BSD origins, without needing to embed the same \
- code over and over again on each project."
-
-HOMEPAGE = "http://libbsd.freedesktop.org/wiki/"
-# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list:
-# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort
-# License: BSD-2-clause
-# License: BSD-2-clause
-# License: BSD-2-clause-NetBSD
-# License: BSD-2-clause-author
-# License: BSD-2-clause-verbatim
-# License: BSD-3-clause
-# License: BSD-3-clause
-# License: BSD-3-clause
-# License: BSD-3-clause-Peter-Wemm
-# License: BSD-3-clause-Regents
-# License: BSD-4-clause-Christopher-G-Demetriou
-# License: BSD-4-clause-Niels-Provos
-# License: BSD-5-clause-Peter-Wemm
-# License: Beerware
-# License: Expat
-# License: ISC
-# License: ISC-Original
-# License: public-domain
-# License: public-domain-Colin-Plumb
-LICENSE = "BSD-4-Clause & ISC & PD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=145ec05a217d8f879f29cfc5f83084be"
-SECTION = "libs"
-
-SRC_URI = " \
- http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
-"
-
-SRC_URI[md5sum] = "cdee252ccff978b50ad2336278c506c9"
-SRC_URI[sha256sum] = "b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a"
-
-inherit autotools pkgconfig
diff --git a/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.3.bb b/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.3.bb
new file mode 100644
index 000000000..92121efa8
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libbsd/libbsd_0.8.3.bb
@@ -0,0 +1,43 @@
+# Copyright (C) 2013 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Library of utility functions from BSD systems"
+DESCRIPTION = "This library provides useful functions commonly found on BSD systems, \
+ and lacking on others like GNU systems, thus making it easier to port \
+ projects with strong BSD origins, without needing to embed the same \
+ code over and over again on each project."
+
+HOMEPAGE = "http://libbsd.freedesktop.org/wiki/"
+# There seems to be more licenses used in the code, I don't think we want to list them all here, complete list:
+# OE @ ~/projects/libbsd $ grep ^License: COPYING | sort
+# License: BSD-2-clause
+# License: BSD-2-clause
+# License: BSD-2-clause-NetBSD
+# License: BSD-2-clause-author
+# License: BSD-2-clause-verbatim
+# License: BSD-3-clause
+# License: BSD-3-clause
+# License: BSD-3-clause
+# License: BSD-3-clause-Peter-Wemm
+# License: BSD-3-clause-Regents
+# License: BSD-4-clause-Christopher-G-Demetriou
+# License: BSD-4-clause-Niels-Provos
+# License: BSD-5-clause-Peter-Wemm
+# License: Beerware
+# License: Expat
+# License: ISC
+# License: ISC-Original
+# License: public-domain
+# License: public-domain-Colin-Plumb
+LICENSE = "BSD-4-Clause & ISC & PD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0b9c89d861915b86655b96e5e32fa2aa"
+SECTION = "libs"
+
+SRC_URI = " \
+ http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+"
+
+SRC_URI[md5sum] = "e935c1bb6cc98a4a43cb1da22795493a"
+SRC_URI[sha256sum] = "934b634f4dfd865b6482650b8f522c70ae65c463529de8be907b53c89c3a34a8"
+
+inherit autotools pkgconfig
diff --git a/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.7.bb b/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.7.bb
deleted file mode 100644
index 571546766..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.7.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "An alternate posix capabilities library"
-DESCRIPTION = "The libcap-ng library is intended to make programming \
-with POSIX capabilities much easier than the traditional libcap library."
-HOMEPAGE = "http://freecode.com/projects/libcap-ng"
-SECTION = "base"
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
-
-SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
- file://python.patch"
-
-inherit lib_package autotools pythonnative
-
-SRC_URI[md5sum] = "3d7d126b29e2869a0257c17c8b0d9b2e"
-SRC_URI[sha256sum] = "615549ce39b333f6b78baee0c0b4ef18bc726c6bf1cca123dfd89dd963f6d06b"
-
-DEPENDS += "swig-native python"
-
-EXTRA_OECONF += "--without-python3"
-
-EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'"
-
-PACKAGES += "${PN}-python"
-
-FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
-
-BBCLASSEXTEND = "native"
-
-do_install_append() {
- # Moving libcap-ng to base_libdir
- if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
- mkdir -p ${D}/${base_libdir}/
- mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/
- relpath=${@os.path.relpath("${base_libdir}", "${libdir}")}
- ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so
- fi
-}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.8.bb b/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.8.bb
new file mode 100644
index 000000000..358319419
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libcap-ng/libcap-ng_0.7.8.bb
@@ -0,0 +1,37 @@
+SUMMARY = "An alternate posix capabilities library"
+DESCRIPTION = "The libcap-ng library is intended to make programming \
+with POSIX capabilities much easier than the traditional libcap library."
+HOMEPAGE = "http://freecode.com/projects/libcap-ng"
+SECTION = "base"
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
+
+SRC_URI = "http://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz \
+ file://python.patch"
+
+inherit lib_package autotools python3native
+
+SRC_URI[md5sum] = "0dece96644bd798020e170fbf7663802"
+SRC_URI[sha256sum] = "c21af997445cd4107a55d386f955c5ea6f6e96ead693e9151277c0ab5f97d05f"
+
+DEPENDS += "swig-native python3"
+
+EXTRA_OECONF += "--with-python --with-python3"
+EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}${PYTHON_ABI}' PYINC='${STAGING_INCDIR}/${PYLIBVER}'"
+
+PACKAGES += "${PN}-python"
+
+FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
+
+BBCLASSEXTEND = "native"
+
+do_install_append() {
+ # Moving libcap-ng to base_libdir
+ if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+ mkdir -p ${D}/${base_libdir}/
+ mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/
+ relpath=${@os.path.relpath("${base_libdir}", "${libdir}")}
+ ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so
+ fi
+}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch b/import-layers/yocto-poky/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch
new file mode 100644
index 000000000..05c771ac1
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libcap/files/0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch
@@ -0,0 +1,32 @@
+Ensure the XATTR_NAME_CAPS is defined when it is used
+
+Upstream-Status: Pending
+
+VFS_CAP_U32 can not ensure that XATTR_NAME_CAPS is defined, and failed to build
+libcap-native in old release, like CentOS release 6.7 (Final), with the blow
+error:
+ cap_file.c: In function â€cap_get_fd’:
+ cap_file.c:199: error: â€XATTR_NAME_CAPS’ undeclared (first use in this function)
+ cap_file.c:199: error: (Each undeclared identifier is reported only once
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ libcap/cap_file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libcap/cap_file.c b/libcap/cap_file.c
+index 40756ea..e27ca80 100644
+--- a/libcap/cap_file.c
++++ b/libcap/cap_file.c
+@@ -25,7 +25,7 @@ extern int fremovexattr(int, const char *);
+
+ #include "libcap.h"
+
+-#ifdef VFS_CAP_U32
++#if defined (VFS_CAP_U32) && defined (XATTR_NAME_CAPS)
+
+ #if VFS_CAP_U32 != __CAP_BLKS
+ # error VFS representation of capabilities is not the same size as kernel
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.24.bb b/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.24.bb
deleted file mode 100644
index a701019bb..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.24.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "Library for getting/setting POSIX.1e capabilities"
-HOMEPAGE = "http://sites.google.com/site/fullycapable/"
-
-# no specific GPL version required
-LICENSE = "BSD | GPLv2"
-LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1"
-
-DEPENDS = "hostperl-runtime-native"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "d43ab9f680435a7fff35b4ace8d45b80"
-SRC_URI[sha256sum] = "cee4568f78dc851d726fc93f25f4ed91cc223b1fe8259daa4a77158d174e6c65"
-
-inherit lib_package
-
-# do NOT pass target cflags to host compilations
-#
-do_configure() {
- # libcap uses := for compilers, fortunately, it gives us a hint
- # on what should be replaced with ?=
- sed -e 's,:=,?=,g' -i Make.Rules
- sed -e 's,^BUILD_CFLAGS ?= $(.*CFLAGS),BUILD_CFLAGS := $(BUILD_CFLAGS),' -i Make.Rules
-
- # disable gperf detection
- sed -e '/shell gperf/cifeq (,yes)' -i libcap/Makefile
-}
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
-PACKAGECONFIG_class-native ??= ""
-
-PACKAGECONFIG[attr] = "LIBATTR=yes,LIBATTR=no,attr"
-PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
-
-EXTRA_OEMAKE = " \
- INDENT= \
- lib=${@os.path.basename('${libdir}')} \
- RAISE_SETFCAP=no \
- DYNAMIC=yes \
-"
-
-EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
-
-# these are present in the libcap defaults, so include in our CFLAGS too
-CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
-do_compile() {
- oe_runmake ${EXTRA_OECONF}
-}
-
-do_install() {
- oe_runmake install \
- ${EXTRA_OECONF} \
- DESTDIR="${D}" \
- prefix="${prefix}" \
- SBINDIR="${D}${sbindir}"
-}
-
-do_install_append() {
- # Move the library to base_libdir
- install -d ${D}${base_libdir}
- if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
- mv ${D}${libdir}/libcap* ${D}${base_libdir}
- if [ -d ${D}${libdir}/security ]; then
- mv ${D}${libdir}/security ${D}${base_libdir}
- fi
- fi
-}
-
-FILES_${PN}-dev += "${base_libdir}/*.so"
-
-# pam files
-FILES_${PN} += "${base_libdir}/security/*.so"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.25.bb b/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.25.bb
new file mode 100644
index 000000000..7ced4be62
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libcap/libcap_2.25.bb
@@ -0,0 +1,77 @@
+SUMMARY = "Library for getting/setting POSIX.1e capabilities"
+HOMEPAGE = "http://sites.google.com/site/fullycapable/"
+
+# no specific GPL version required
+LICENSE = "BSD | GPLv2"
+LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1"
+
+DEPENDS = "hostperl-runtime-native"
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz \
+ file://0001-ensure-the-XATTR_NAME_CAPS-is-defined-when-it-is-use.patch \
+"
+SRC_URI[md5sum] = "6666b839e5d46c2ad33fc8aa2ceb5f77"
+SRC_URI[sha256sum] = "693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162"
+
+inherit lib_package
+
+# do NOT pass target cflags to host compilations
+#
+do_configure() {
+ # libcap uses := for compilers, fortunately, it gives us a hint
+ # on what should be replaced with ?=
+ sed -e 's,:=,?=,g' -i Make.Rules
+ sed -e 's,^BUILD_CFLAGS ?= $(.*CFLAGS),BUILD_CFLAGS := $(BUILD_CFLAGS),' -i Make.Rules
+
+ # disable gperf detection
+ sed -e '/shell gperf/cifeq (,yes)' -i libcap/Makefile
+}
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
+PACKAGECONFIG_class-native ??= ""
+
+PACKAGECONFIG[attr] = "LIBATTR=yes,LIBATTR=no,attr"
+PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
+
+EXTRA_OEMAKE = " \
+ INDENT= \
+ lib=${@os.path.basename('${libdir}')} \
+ RAISE_SETFCAP=no \
+ DYNAMIC=yes \
+"
+
+EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
+
+# these are present in the libcap defaults, so include in our CFLAGS too
+CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
+
+do_compile() {
+ oe_runmake ${PACKAGECONFIG_CONFARGS}
+}
+
+do_install() {
+ oe_runmake install \
+ ${PACKAGECONFIG_CONFARGS} \
+ DESTDIR="${D}" \
+ prefix="${prefix}" \
+ SBINDIR="${sbindir}"
+}
+
+do_install_append() {
+ # Move the library to base_libdir
+ install -d ${D}${base_libdir}
+ if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
+ mv ${D}${libdir}/libcap* ${D}${base_libdir}
+ if [ -d ${D}${libdir}/security ]; then
+ mv ${D}${libdir}/security ${D}${base_libdir}
+ fi
+ fi
+}
+
+FILES_${PN}-dev += "${base_libdir}/*.so"
+
+# pam files
+FILES_${PN} += "${base_libdir}/security/*.so"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.4.6.bb b/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.4.6.bb
deleted file mode 100644
index c8163e3bf..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.4.6.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Wrapper library for evdev devices"
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/"
-SECTION = "libs"
-
-LICENSE = "MIT-X"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
- file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1"
-
-SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "9b3f25bd8fb0f8efa4944d34668dddc0"
-SRC_URI[sha256sum] = "7b2ae1a0c7f9f7a96198ddc8fd167f090f233d6cbd8168b847e4f968445132d3"
-
-inherit autotools pkgconfig
diff --git a/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.5.2.bb b/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.5.2.bb
new file mode 100644
index 000000000..c76e1d79f
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libevdev/libevdev_1.5.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Wrapper library for evdev devices"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/"
+SECTION = "libs"
+
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
+ file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1"
+
+SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
+
+SRC_URI[md5sum] = "96ad6edb5ce5c4428f1b183cc180ff8c"
+SRC_URI[sha256sum] = "5ee2163656a61f5703cb5c08a05c9471ffb7b640bfbe2c55194ea50d908f629b"
+
+inherit autotools pkgconfig
diff --git a/import-layers/yocto-poky/meta/recipes-support/libevent/libevent/run-ptest b/import-layers/yocto-poky/meta/recipes-support/libevent/libevent/run-ptest
index d521688e7..0241851c7 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libevent/libevent/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-support/libevent/libevent/run-ptest
@@ -4,7 +4,7 @@ fail=0
for test in ./test/*
do
$test
- if [ $? -eq 0 ]
+ if [ $? -ne 0 ]
then
fail=1
fi
diff --git a/import-layers/yocto-poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch b/import-layers/yocto-poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch
new file mode 100644
index 000000000..61c9eb31d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch
@@ -0,0 +1,177 @@
+From 655e82c92d5c3875aee04322f1993d6b0774a7bf Mon Sep 17 00:00:00 2001
+From: Yousong Zhou <yszhou4tech@gmail.com>
+Date: Mon, 15 Aug 2016 15:00:13 +0800
+Subject: [PATCH] mips: fix MIPS softfloat build issue
+
+The patch for o32.S is taken from OpenWrt packages repo 3a7a4bf "libffi:
+fix MIPS softfloat build issue with current binutils"
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
+---
+Upstream-Status: Backport [https://github.com/libffi/libffi/commit/2ded2a4f494165c93293afc14ab0be1243cf8c49]
+ src/mips/n32.S | 17 +++++++++++++++++
+ src/mips/o32.S | 17 +++++++++++++++++
+ 2 files changed, 34 insertions(+)
+
+diff --git a/src/mips/n32.S b/src/mips/n32.S
+index c6985d3..8f25994 100644
+--- a/src/mips/n32.S
++++ b/src/mips/n32.S
+@@ -107,6 +107,16 @@ loadregs:
+
+ REG_L t6, 3*FFI_SIZEOF_ARG($fp) # load the flags word into t6.
+
++#ifdef __mips_soft_float
++ REG_L a0, 0*FFI_SIZEOF_ARG(t9)
++ REG_L a1, 1*FFI_SIZEOF_ARG(t9)
++ REG_L a2, 2*FFI_SIZEOF_ARG(t9)
++ REG_L a3, 3*FFI_SIZEOF_ARG(t9)
++ REG_L a4, 4*FFI_SIZEOF_ARG(t9)
++ REG_L a5, 5*FFI_SIZEOF_ARG(t9)
++ REG_L a6, 6*FFI_SIZEOF_ARG(t9)
++ REG_L a7, 7*FFI_SIZEOF_ARG(t9)
++#else
+ and t4, t6, ((1<<FFI_FLAG_BITS)-1)
+ REG_L a0, 0*FFI_SIZEOF_ARG(t9)
+ beqz t4, arg1_next
+@@ -193,6 +203,7 @@ arg7_next:
+ arg8_doublep:
+ l.d $f19, 7*FFI_SIZEOF_ARG(t9)
+ arg8_next:
++#endif
+
+ callit:
+ # Load the function pointer
+@@ -214,6 +225,7 @@ retint:
+ b epilogue
+
+ retfloat:
++#ifndef __mips_soft_float
+ bne t6, FFI_TYPE_FLOAT, retdouble
+ jal t9
+ REG_L t4, 4*FFI_SIZEOF_ARG($fp)
+@@ -272,6 +284,7 @@ retstruct_f_d:
+ s.s $f0, 0(t4)
+ s.d $f2, 8(t4)
+ b epilogue
++#endif
+
+ retstruct_d_soft:
+ bne t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
+@@ -429,6 +442,7 @@ ffi_closure_N32:
+ REG_S a6, A6_OFF2($sp)
+ REG_S a7, A7_OFF2($sp)
+
++#ifndef __mips_soft_float
+ # Store all possible float/double registers.
+ s.d $f12, F12_OFF2($sp)
+ s.d $f13, F13_OFF2($sp)
+@@ -438,6 +452,7 @@ ffi_closure_N32:
+ s.d $f17, F17_OFF2($sp)
+ s.d $f18, F18_OFF2($sp)
+ s.d $f19, F19_OFF2($sp)
++#endif
+
+ # Call ffi_closure_mips_inner_N32 to do the real work.
+ LA t9, ffi_closure_mips_inner_N32
+@@ -458,6 +473,7 @@ cls_retint:
+ b cls_epilogue
+
+ cls_retfloat:
++#ifndef __mips_soft_float
+ bne v0, FFI_TYPE_FLOAT, cls_retdouble
+ l.s $f0, V0_OFF2($sp)
+ b cls_epilogue
+@@ -500,6 +516,7 @@ cls_retstruct_f_d:
+ l.s $f0, V0_OFF2($sp)
+ l.d $f2, V1_OFF2($sp)
+ b cls_epilogue
++#endif
+
+ cls_retstruct_small2:
+ REG_L v0, V0_OFF2($sp)
+diff --git a/src/mips/o32.S b/src/mips/o32.S
+index eb27981..429dd0a 100644
+--- a/src/mips/o32.S
++++ b/src/mips/o32.S
+@@ -82,13 +82,16 @@ sixteen:
+
+ ADDU $sp, 4 * FFI_SIZEOF_ARG # adjust $sp to new args
+
++#ifndef __mips_soft_float
+ bnez t0, pass_d # make it quick for int
++#endif
+ REG_L a0, 0*FFI_SIZEOF_ARG($sp) # just go ahead and load the
+ REG_L a1, 1*FFI_SIZEOF_ARG($sp) # four regs.
+ REG_L a2, 2*FFI_SIZEOF_ARG($sp)
+ REG_L a3, 3*FFI_SIZEOF_ARG($sp)
+ b call_it
+
++#ifndef __mips_soft_float
+ pass_d:
+ bne t0, FFI_ARGS_D, pass_f
+ l.d $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
+@@ -130,6 +133,7 @@ pass_f_d:
+ # bne t0, FFI_ARGS_F_D, call_it
+ l.s $f12, 0*FFI_SIZEOF_ARG($sp) # load $fp regs from args
+ l.d $f14, 2*FFI_SIZEOF_ARG($sp) # passing double and float
++#endif
+
+ call_it:
+ # Load the function pointer
+@@ -158,14 +162,23 @@ retfloat:
+ bne t2, FFI_TYPE_FLOAT, retdouble
+ jalr t9
+ REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
++#ifndef __mips_soft_float
+ s.s $f0, 0(t0)
++#else
++ REG_S v0, 0(t0)
++#endif
+ b epilogue
+
+ retdouble:
+ bne t2, FFI_TYPE_DOUBLE, noretval
+ jalr t9
+ REG_L t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
++#ifndef __mips_soft_float
+ s.d $f0, 0(t0)
++#else
++ REG_S v1, 4(t0)
++ REG_S v0, 0(t0)
++#endif
+ b epilogue
+
+ noretval:
+@@ -261,9 +274,11 @@ $LCFI7:
+ li $13, 1 # FFI_O32
+ bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT
+
++#ifndef __mips_soft_float
+ # Store all possible float/double registers.
+ s.d $f12, FA_0_0_OFF2($fp)
+ s.d $f14, FA_1_0_OFF2($fp)
++#endif
+ 1:
+ # Call ffi_closure_mips_inner_O32 to do the work.
+ la t9, ffi_closure_mips_inner_O32
+@@ -281,6 +296,7 @@ $LCFI7:
+ li $13, 1 # FFI_O32
+ bne $16, $13, 1f # Skip fp restore if FFI_O32_SOFT_FLOAT
+
++#ifndef __mips_soft_float
+ li $9, FFI_TYPE_FLOAT
+ l.s $f0, V0_OFF2($fp)
+ beq $8, $9, closure_done
+@@ -288,6 +304,7 @@ $LCFI7:
+ li $9, FFI_TYPE_DOUBLE
+ l.d $f0, V0_OFF2($fp)
+ beq $8, $9, closure_done
++#endif
+ 1:
+ REG_L $3, V1_OFF2($fp)
+ REG_L $2, V0_OFF2($fp)
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libffi/libffi_3.2.1.bb b/import-layers/yocto-poky/meta/recipes-support/libffi/libffi_3.2.1.bb
index 72e25fb9d..43eee8efc 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libffi/libffi_3.2.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/libffi/libffi_3.2.1.bb
@@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b"
SRC_URI = "ftp://sourceware.org/pub/libffi/${BP}.tar.gz \
file://not-win32.patch \
file://0001-mips-Use-compiler-internal-define-for-linux.patch \
+ file://0001-mips-fix-MIPS-softfloat-build-issue.patch \
"
SRC_URI[md5sum] = "83b89587607e3eb65c70d361f13bab43"
@@ -23,4 +24,8 @@ inherit autotools texinfo
FILES_${PN}-dev += "${libdir}/libffi-${PV}"
+# Doesn't compile in MIPS16e mode due to use of hand-written
+# assembly
+MIPS_INSTRUCTION_SET = "mips"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libfm/libfm_1.2.4.bb b/import-layers/yocto-poky/meta/recipes-support/libfm/libfm_1.2.4.bb
index 866b11a9a..2218f9cb7 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libfm/libfm_1.2.4.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/libfm/libfm_1.2.4.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b \
SECTION = "x11/libs"
-DEPENDS = "glib-2.0 pango gtk+ menu-cache intltool-native libexif libfm-extra gettext-native"
+DEPENDS = "glib-2.0 pango gtk+3 menu-cache intltool-native libexif libfm-extra gettext-native"
SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz"
@@ -17,7 +17,9 @@ SRC_URI[md5sum] = "74997d75e7e87dc73398746fd373bf52"
SRC_URI[sha256sum] = "7804f6f28cb3d1bc8ffb3151ab7ff0c063b27c5f9b06c682eb903e01cf25502f"
inherit autotools pkgconfig gtk-doc distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+EXTRA_OECONF = "--with-gtk=3"
do_configure[dirs] =+ "${S}/m4"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch
index 67ddfc640..69589f548 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/add-pkgconfig-support.patch
@@ -4,61 +4,32 @@ Upstream-Status: Denied [upstream have indicated they don't want a pkg-config de
RP 2014/5/22
-Index: libgcrypt-1.2.4/configure.ac
-===================================================================
---- libgcrypt-1.2.4.orig/configure.ac 2008-03-19 22:14:50.000000000 +0000
-+++ libgcrypt-1.2.4/configure.ac 2008-03-19 22:14:58.000000000 +0000
-@@ -807,6 +807,7 @@
+Rebase to 1.7.0
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 1 +
+ src/libgcrypt.m4 | 71 +++--------------------------------------------------
+ src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++
+ 3 files changed, 38 insertions(+), 67 deletions(-)
+ create mode 100644 src/libgcrypt.pc.in
+
+diff --git a/configure.ac b/configure.ac
+index f683e21..566e1c8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2314,6 +2314,7 @@ random/Makefile
doc/Makefile
src/Makefile
src/gcrypt.h
+src/libgcrypt.pc
src/libgcrypt-config
+ src/versioninfo.rc
tests/Makefile
- w32-dll/Makefile
-Index: libgcrypt-1.2.4/src/libgcrypt.pc.in
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ libgcrypt-1.2.4/src/libgcrypt.pc.in 2008-03-19 22:14:58.000000000 +0000
-@@ -0,0 +1,33 @@
-+# Process this file with autoconf to produce a pkg-config metadata file.
-+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
-+# Author: Simon Josefsson
-+#
-+# This file is free software; as a special exception the author gives
-+# unlimited permission to copy and/or distribute it, with or without
-+# modifications, as long as this notice is preserved.
-+#
-+# This file is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+# API info
-+api_version=@LIBGCRYPT_CONFIG_API_VERSION@
-+host=@LIBGCRYPT_CONFIG_HOST@
-+
-+# Misc information.
-+symmetric_ciphers=@LIBGCRYPT_CIPHERS@
-+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
-+digests=@LIBGCRYPT_DIGESTS@
-+
-+Name: libgcrypt
-+Description: GNU crypto library
-+URL: http://www.gnupg.org
-+Version: @VERSION@
-+Libs: -L${libdir} -lgcrypt
-+Libs.private: -L${libdir} -lgpg-error
-+Cflags: -I${includedir}
-Index: libgcrypt-1.6.1/src/libgcrypt.m4
-===================================================================
---- libgcrypt-1.6.1.orig/src/libgcrypt.m4 2013-12-16 17:44:32.000000000 +0000
-+++ libgcrypt-1.6.1/src/libgcrypt.m4 2014-05-13 21:25:37.478389833 +0000
-@@ -22,17 +22,7 @@
+diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
+index c67cfec..4ea5f2c 100644
+--- a/src/libgcrypt.m4
++++ b/src/libgcrypt.m4
+@@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
dnl
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -66,17 +37,30 @@ Index: libgcrypt-1.6.1/src/libgcrypt.m4
- AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
- [prefix where LIBGCRYPT is installed (optional)]),
- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
-- if test x$libgcrypt_config_prefix != x ; then
-- if test x${LIBGCRYPT_CONFIG+set} != xset ; then
-- LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
+- if test x"${LIBGCRYPT_CONFIG}" = x ; then
+- if test x"${libgcrypt_config_prefix}" != x ; then
+- LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config"
+- else
+- case "${SYSROOT}" in
+- /*)
+- if test -x "${SYSROOT}/bin/libgcrypt-config" ; then
+- LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config"
+- fi
+- ;;
+- '')
+- ;;
+- *)
+- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
+- ;;
+- esac
- fi
- fi
-
-- AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+-
+- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
tmp=ifelse([$1], ,1:1.2.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
-@@ -42,48 +32,13 @@
+@@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
min_libgcrypt_version="$tmp"
fi
@@ -128,7 +112,7 @@ Index: libgcrypt-1.6.1/src/libgcrypt.m4
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBGCRYPT API version])
if test "$req_libgcrypt_api" -eq "$tmp" ; then
-@@ -96,10 +51,8 @@
+@@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
if test $ok = yes; then
@@ -140,7 +124,7 @@ Index: libgcrypt-1.6.1/src/libgcrypt.m4
if test x"$libgcrypt_config_host" != xnone ; then
if test x"$libgcrypt_config_host" != x"$host" ; then
AC_MSG_WARN([[
-@@ -113,8 +66,6 @@
+@@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
fi
fi
else
@@ -149,3 +133,45 @@ Index: libgcrypt-1.6.1/src/libgcrypt.m4
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
+diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in
+new file mode 100644
+index 0000000..2fc8f53
+--- /dev/null
++++ b/src/libgcrypt.pc.in
+@@ -0,0 +1,33 @@
++# Process this file with autoconf to produce a pkg-config metadata file.
++# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
++# Author: Simon Josefsson
++#
++# This file is free software; as a special exception the author gives
++# unlimited permission to copy and/or distribute it, with or without
++# modifications, as long as this notice is preserved.
++#
++# This file is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
++# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
++
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++# API info
++api_version=@LIBGCRYPT_CONFIG_API_VERSION@
++host=@LIBGCRYPT_CONFIG_HOST@
++
++# Misc information.
++symmetric_ciphers=@LIBGCRYPT_CIPHERS@
++asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
++digests=@LIBGCRYPT_DIGESTS@
++
++Name: libgcrypt
++Description: GNU crypto library
++URL: http://www.gnupg.org
++Version: @VERSION@
++Libs: -L${libdir} -lgcrypt
++Libs.private: -L${libdir} -lgpg-error
++Cflags: -I${includedir}
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/fix-undefined-reference-to-pthread.patch b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/fix-undefined-reference-to-pthread.patch
new file mode 100644
index 000000000..e7de8badf
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/files/fix-undefined-reference-to-pthread.patch
@@ -0,0 +1,27 @@
+From cc0e2b403d33892963513a3ba98e4ae5a05a4d3c Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 12 Jun 2016 04:44:29 -0400
+Subject: [PATCH] tests/Makefile.am: fix undefined reference to `pthread_create'
+
+Add missing '-lpthread' to CFLAGS
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ tests/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index d462f30..bef6dd7 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -62,4 +62,4 @@ EXTRA_DIST = README rsa-16k.key cavs_tests.sh cavs_driver.pl \
+
+ LDADD = $(standard_ldadd) $(GPG_ERROR_LIBS)
+ t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS)
+-t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS)
++t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt.inc b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt.inc
index 5478253e0..15805cd43 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt.inc
@@ -14,10 +14,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
DEPENDS = "libgpg-error libcap"
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.gz \
file://add-pkgconfig-support.patch \
file://libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
file://fix-ICE-failure-on-mips-with-option-O-and-g.patch \
+ file://fix-undefined-reference-to-pthread.patch \
"
BINCONFIG = "${bindir}/libgcrypt-config"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.6.5.bb b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.6.5.bb
deleted file mode 100644
index 717a23f1c..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.6.5.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libgcrypt.inc
-
-SRC_URI[md5sum] = "f24fcb684932d4b5ed85f2f05cb1d9f8"
-SRC_URI[sha256sum] = "202bf109ccf2d614565c849f3e5687b94cde972167b35261e094252367627bc6"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.7.3.bb b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.7.3.bb
new file mode 100644
index 000000000..ddd7c5392
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libgcrypt/libgcrypt_1.7.3.bb
@@ -0,0 +1,4 @@
+require libgcrypt.inc
+
+SRC_URI[md5sum] = "bb5b00cb70b1215833857fd690080fbb"
+SRC_URI[sha256sum] = "c98470cf6a781f2af4bdfda710ad39f0f54b5044e8c43b878d4005737d6c213f"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error/0001-libgpg-error-Add-nios2-support.patch b/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error/0001-libgpg-error-Add-nios2-support.patch
deleted file mode 100644
index dab1c13b6..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error/0001-libgpg-error-Add-nios2-support.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b2af652f43991e4ce6297917da542a9eb5135939 Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Thu, 17 Sep 2015 03:28:06 +0200
-Subject: [PATCH] libgpg-error: Add nios2 support
-
-Add configuration for the NIOS2 processor.
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Submitted
----
- src/syscfg/lock-obj-pub.nios2-unknown-linux-gnu.h | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
- create mode 100644 src/syscfg/lock-obj-pub.nios2-unknown-linux-gnu.h
-
-diff --git a/src/syscfg/lock-obj-pub.nios2-unknown-linux-gnu.h b/src/syscfg/lock-obj-pub.nios2-unknown-linux-gnu.h
-new file mode 100644
-index 0000000..3a24571
---- /dev/null
-+++ b/src/syscfg/lock-obj-pub.nios2-unknown-linux-gnu.h
-@@ -0,0 +1,23 @@
-+## lock-obj-pub.nios2-unknown-linux-gnu.h
-+## File created by gen-posix-lock-obj - DO NOT EDIT
-+## To be included by mkheader into gpg-error.h
-+
-+typedef struct
-+{
-+ long _vers;
-+ union {
-+ volatile char _priv[24];
-+ long _x_align;
-+ long *_xp_align;
-+ } u;
-+} gpgrt_lock_t;
-+
-+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
-+ 0,0,0,0,0,0,0,0, \
-+ 0,0,0,0,0,0,0,0}}}
-+##
-+## Local Variables:
-+## mode: c
-+## buffer-read-only: t
-+## End:
-+##
---
-2.5.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.21.bb b/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.21.bb
deleted file mode 100644
index 0dd16025a..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.21.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Small library that defines common error values for all GnuPG components"
-HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
-BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/gpg-error.h.in;endline=23;md5=93d3155af141ae3b369a5d09ca9d6234 \
- file://src/init.c;endline=20;md5=8f5a9b59634f4aebcd0ec9d3ebd53bfe"
-
-
-SECTION = "libs"
-
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.bz2 \
- file://pkgconfig.patch \
- file://0001-libgpg-error-Add-nios2-support.patch \
- "
-SRC_URI[md5sum] = "ab0b5aba6d0a185b41d07bda804fd8b2"
-SRC_URI[sha256sum] = "b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d"
-
-BINCONFIG = "${bindir}/gpg-error-config"
-
-inherit autotools binconfig-disabled pkgconfig gettext
-CPPFLAGS += "-P"
-do_compile_prepend() {
- TARGET_FILE=linux-gnu
- if [ ${TARGET_OS} != "linux" ]; then
- TARGET_FILE=${TARGET_OS}
- fi
-
- case ${TARGET_ARCH} in
- aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;;
- arm) TUPLE=arm-unknown-linux-gnueabi ;;
- armeb) TUPLE=arm-unknown-linux-gnueabi ;;
- i586|i686) TUPLE=i686-pc-linux-gnu ;;
- mips64el) TUPLE=mipsel-unknown-linux-gnu ;;
- mips64) TUPLE=mips-unknown-linux-gnu ;;
- x86_64) TUPLE=x86_64-pc-linux-gnu ;;
- *) TUPLE=${TARGET_ARCH}-unknown-linux-gnu ;;
- esac
-
- cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \
- ${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h
-}
-
-do_install_append() {
- # we don't have common lisp in OE
- rm -rf "${D}${datadir}/common-lisp/"
-}
-
-FILES_${PN}-dev += "${bindir}/gpg-error"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.24.bb b/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.24.bb
new file mode 100644
index 000000000..84a882a0c
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libgpg-error/libgpg-error_1.24.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Small library that defines common error values for all GnuPG components"
+HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
+BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/gpg-error.h.in;endline=23;md5=cf562f60b9dba7df20d6ee3f97ea1d5a \
+ file://src/init.c;endline=20;md5=872b2389fe9bae7ffb80d2b91225afbc"
+
+
+SECTION = "libs"
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
+ file://pkgconfig.patch \
+ "
+SRC_URI[md5sum] = "feb42198c0aaf3b28eabe8f41a34b983"
+SRC_URI[sha256sum] = "9268e1cc487de5e6e4460fca612a06e4f383072ac43ae90603e5e46783d3e540"
+
+BINCONFIG = "${bindir}/gpg-error-config"
+
+inherit autotools binconfig-disabled pkgconfig gettext
+CPPFLAGS += "-P"
+do_compile_prepend() {
+ TARGET_FILE=linux-gnu
+ if [ ${TARGET_OS} != "linux" ]; then
+ TARGET_FILE=${TARGET_OS}
+ fi
+
+ case ${TARGET_ARCH} in
+ aarch64_be) TUPLE=aarch64-unknown-linux-gnu ;;
+ arm) TUPLE=arm-unknown-linux-gnueabi ;;
+ armeb) TUPLE=arm-unknown-linux-gnueabi ;;
+ i586|i686) TUPLE=i686-pc-linux-gnu ;;
+ mips*el) TUPLE=mipsel-unknown-linux-gnu ;;
+ mips*) TUPLE=mips-unknown-linux-gnu ;;
+ x86_64) TUPLE=x86_64-pc-linux-gnu ;;
+ *) TUPLE=${TARGET_ARCH}-unknown-linux-gnu ;;
+ esac
+
+ cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \
+ ${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h
+}
+
+do_install_append() {
+ # we don't have common lisp in OE
+ rm -rf "${D}${datadir}/common-lisp/"
+}
+
+FILES_${PN}-dev += "${bindir}/gpg-error"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch b/import-layers/yocto-poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch
new file mode 100644
index 000000000..6db75f508
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libical/libical/0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch
@@ -0,0 +1,44 @@
+From 1a41069c0dc054e59cd76fc3d8cf7cc2a78b5e8d Mon Sep 17 00:00:00 2001
+From: Allen Winter <allen.winter@kdab.com>
+Date: Sat, 3 Sep 2016 16:56:29 -0400
+Subject: [PATCH] CMakeLists.txt, libical.pc.in - fix iculibs (remove full path) ISSUE: 227
+
+Upstream-Status: Backport
+
+Signed-off-by: Maxin B. John <maxin.john@intel.com>
+----
+diff -Naur libical-2.0.0-orig/CMakeLists.txt libical-2.0.0/CMakeLists.txt
+--- libical-2.0.0-orig/CMakeLists.txt 2016-09-08 18:05:06.166049345 +0300
++++ libical-2.0.0/CMakeLists.txt 2016-09-08 18:05:45.201561334 +0300
+@@ -128,6 +128,7 @@
+ # RSCALE info at http://tools.ietf.org/html/rfc7529
+ find_package(ICU)
+ if(ICU_FOUND)
++ set(ICUUC_LIBS "-licuuc") #for libical.pc
+ set(HAVE_LIBICU 1)
+ if(ICU_MAJOR_VERSION VERSION_GREATER 50)
+ set(HAVE_ICU_DANGI TRUE)
+@@ -137,6 +138,7 @@
+ endif()
+ if(ICU_I18N_FOUND)
+ set(HAVE_LIBICU_I18N 1)
++ set(ICUI18N_LIBS "-licui18n") #for libical.pc
+ endif()
+
+ # MSVC specific definitions
+diff -Naur libical-2.0.0-orig/libical.pc.in libical-2.0.0/libical.pc.in
+--- libical-2.0.0-orig/libical.pc.in 2015-12-28 23:44:53.000000000 +0200
++++ libical-2.0.0/libical.pc.in 2016-09-08 18:09:12.991963597 +0300
+@@ -3,10 +3,10 @@
+ libdir=@libdir@
+ includedir=@includedir@
+ threadslib=@PTHREAD_LIBS@
+-iculib=@ICU_LIBRARIES@ @ICU_I18N_LIBRARIES@
++iculibs=@ICUUC_LIBS@ @ICUI18N_LIBS@
+
+ Name: libical
+ Description: An implementation of basic iCAL protocols
+ Version: @VERSION@
+-Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculib}
++Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculibs}
+ Cflags: -I${includedir}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libical/libical_2.0.0.bb b/import-layers/yocto-poky/meta/recipes-support/libical/libical_2.0.0.bb
index 1042e6fa3..d4fe868eb 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libical/libical_2.0.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/libical/libical_2.0.0.bb
@@ -8,6 +8,7 @@ SECTION = "libs"
SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
file://Remove-cmake-check-for-Perl.patch \
+ file://0001-CMakeLists.txt-libical.pc.in-fix-iculibs-remove-full.patch \
"
DEPENDS = "icu"
@@ -15,13 +16,6 @@ SRC_URI[md5sum] = "6bf8e5f5a3ba88baf390d0134e05d76e"
SRC_URI[sha256sum] = "654c11f759c19237be39f6ad401d917e5a05f36f1736385ed958e60cf21456da"
UPSTREAM_CHECK_URI = "https://github.com/libical/libical/releases"
-inherit cmake
+inherit cmake pkgconfig
FILES_${PN}-dev += "${libdir}/cmake/*"
-
-#
-# Turn specific library paths in the pkgconfig file into standard library entries
-#
-do_install_append () {
- sed -i -e "s#${STAGING_LIBDIR}/lib\([a-z0-9]*\)\.so#-l\1#g" ${D}${libdir}/pkgconfig/libical.pc
-}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.3.bb b/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.3.bb
deleted file mode 100644
index bc2116419..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.3.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Easy API to create and parse X.509 and CMS related objects"
-HOMEPAGE = "http://www.gnupg.org/related_software/libksba/"
-LICENSE = "GPLv2+ | LGPLv3+ | GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \
- file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
- file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- "
-
-DEPENDS = "libgpg-error"
-
-BINCONFIG = "${bindir}/ksba-config"
-
-inherit autotools binconfig-disabled pkgconfig texinfo
-
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://ksba-add-pkgconfig-support.patch"
-
-SRC_URI[md5sum] = "a5dd3c57fca254935f5cf8db26e39065"
-SRC_URI[sha256sum] = "0c7f5ffe34d0414f6951d9880a46fcc2985c487f7c36369b9f11ad41131c7786"
-
-do_configure_prepend () {
- # Else these could be used in preference to those in aclocal-copy
- rm -f ${S}/m4/gpg-error.m4
-}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.4.bb b/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.4.bb
new file mode 100644
index 000000000..e68255c67
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libksba/libksba_1.3.4.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Easy API to create and parse X.509 and CMS related objects"
+HOMEPAGE = "http://www.gnupg.org/related_software/libksba/"
+LICENSE = "GPLv2+ | LGPLv3+ | GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \
+ file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
+ file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ "
+
+DEPENDS = "libgpg-error"
+
+BINCONFIG = "${bindir}/ksba-config"
+
+inherit autotools binconfig-disabled pkgconfig texinfo
+
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
+ file://ksba-add-pkgconfig-support.patch"
+
+SRC_URI[md5sum] = "2bfc3d69053db7b6983b5627706033f4"
+SRC_URI[sha256sum] = "f6c2883cebec5608692d8730843d87f237c0964d923bbe7aa89c05f20558ad4f"
+
+do_configure_prepend () {
+ # Else these could be used in preference to those in aclocal-copy
+ rm -f ${S}/m4/gpg-error.m4
+}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0001-lib-add-utility-function-nl_strerror_l.patch b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0001-lib-add-utility-function-nl_strerror_l.patch
new file mode 100644
index 000000000..b734028c7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0001-lib-add-utility-function-nl_strerror_l.patch
@@ -0,0 +1,146 @@
+From 683f27fbb68ca2028a7b3468f17164d484df2759 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Thu, 25 Aug 2016 13:14:59 +0100
+Subject: [PATCH 1/3] lib: add utility function nl_strerror_l()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+libnl currently uses strerror_r() throughout, but this is
+problematic because there is a non-standard GNU version
+implemented in glibc, and the standard POSIX version, which
+differ in signature. When using glibc, one can choose
+between the two versions using feature test macros
+_GNU_SOURCE and _POSIX_C_SOURCE.
+
+Given libnl is built using the former, we always get the
+glibc special version, and all code so far has been written
+for that non-standard version.
+
+Other C libraries like musl on the other hand only try
+to be posix compliant, and only ever provide the posix
+version of strerror_r(), which has a different signature.
+
+The alternative is to use strerror_l() rather than
+strerror_r() http://austingroupbugs.net/view.php?id=655
+- this will avoid the non-confirming versions issue
+- strerror_l() is now recommended by POSIX to replace
+ strerror_r() usage
+
+So rather than changing all uses of strerror_r() to be in
+line with posix, we are going to switch to the recommended
+interface strerror_l().
+
+Since strerror_l() is slightly more difficuly to use, we
+add a little (private) wrapper that we can use from all
+current callsites of strerror_r().
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+Reviewed-by: Stephane Ayotte <sayotte@tycoint.com>
+Signed-off-by: Thomas Haller <thaller@redhat.com>
+---
+Upstream-Status: Backport https://github.com/thom311/libnl/commit/683f27fbb68ca2028a7b3468f17164d484df2759
+ include/Makefile.am | 1 +
+ include/netlink-private/utils.h | 17 +++++++++++++++++
+ lib/utils.c | 24 ++++++++++++++++++++++++
+ libnl-3.sym | 5 +++++
+ 4 files changed, 47 insertions(+)
+ create mode 100644 include/netlink-private/utils.h
+
+diff --git a/include/Makefile.am b/include/Makefile.am
+index 804e984..f8b977a 100644
+--- a/include/Makefile.am
++++ b/include/Makefile.am
+@@ -166,6 +166,7 @@ noinst_HEADERS = \
+ netlink-private/socket.h \
+ netlink-private/tc.h \
+ netlink-private/types.h \
++ netlink-private/utils.h \
+ netlink-private/cache-api.h \
+ netlink-private/object-api.h \
+ netlink-private/route/link/api.h \
+diff --git a/include/netlink-private/utils.h b/include/netlink-private/utils.h
+new file mode 100644
+index 0000000..77aadb3
+--- /dev/null
++++ b/include/netlink-private/utils.h
+@@ -0,0 +1,17 @@
++/*
++ * netlink-private/utils.h Local Utility Functions
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation version 2.1
++ * of the License.
++ *
++ * Copyright (c) 2003-2012 Thomas Graf <tgraf@suug.ch>
++ */
++
++#ifndef NETLINK_UTILS_PRIV_H_
++#define NETLINK_UTILS_PRIV_H_
++
++extern const char * nl_strerror_l(int err);
++
++#endif
+diff --git a/lib/utils.c b/lib/utils.c
+index 61c3d95..c1c1b72 100644
+--- a/lib/utils.c
++++ b/lib/utils.c
+@@ -25,10 +25,12 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/utils.h>
+ #include <linux/socket.h>
+ #include <stdlib.h> /* exit() */
++#include <locale.h>
+
+ /**
+ * Global variable indicating the desired level of debugging output.
+@@ -118,6 +120,28 @@ int __nl_read_num_str_file(const char *path, int (*cb)(long, const char *))
+
+ return 0;
+ }
++
++const char *nl_strerror_l(int err)
++{
++ int errno_save = errno;
++ locale_t loc = newlocale(LC_MESSAGES_MASK, "", (locale_t)0);
++ const char *buf;
++
++ if (loc == (locale_t)0) {
++ if (errno == ENOENT)
++ loc = newlocale(LC_MESSAGES_MASK,
++ "POSIX", (locale_t)0);
++ }
++ if (loc != (locale_t)0) {
++ buf = strerror_l(err, loc);
++ freelocale(loc);
++ } else {
++ buf = "newlocale() failed";
++ }
++
++ errno = errno_save;
++ return buf;
++}
+ /** @endcond */
+
+ /**
+diff --git a/libnl-3.sym b/libnl-3.sym
+index 4e09bdd..9119e66 100644
+--- a/libnl-3.sym
++++ b/libnl-3.sym
+@@ -351,3 +351,8 @@ libnl_3_2_28 {
+ global:
+ nl_object_diff64;
+ } libnl_3_2_27;
++
++libnl_3_2_29 {
++global:
++ nl_strerror_l;
++} libnl_3_2_28;
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0002-lib-switch-to-using-strerror_l-instead-of-strerror_r.patch b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0002-lib-switch-to-using-strerror_l-instead-of-strerror_r.patch
new file mode 100644
index 000000000..6347ec0b9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0002-lib-switch-to-using-strerror_l-instead-of-strerror_r.patch
@@ -0,0 +1,403 @@
+From c1948ec29b8dcdc58d2d92700c325abdeab111a6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Thu, 25 Aug 2016 13:15:00 +0100
+Subject: [PATCH 2/3] lib: switch to using strerror_l() instead of strerror_r()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+glibc provides two versions of strerror_r(), which
+can be chosen between using feature test macros
+_GNU_SOURCE and _POSIX_C_SOURCE. libnl is built using
+the former, hence we get the glibc special version,
+and all code so far has been written for this.
+
+Other C libraries like musl on the other hand only try
+to be posix compliant, and only ever provide the posix
+version of strerror_r(), which has a different signature.
+
+Uses in libnl hence generally cause printf() of an *int*
+with a *string format* specifier for that reason.
+
+Additionally, strerror_r() has been deprecated:
+ http://austingroupbugs.net/view.php?id=655
+
+Switch to using strerror_l() (via our wrapper just
+introduced).
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+Reviewed-by: Stephane Ayotte <sayotte@tycoint.com>
+Signed-off-by: Thomas Haller <thaller@redhat.com>
+---
+Upstream-Status: Backport https://github.com/thom311/libnl/commit/c1948ec29b8dcdc58d2d92700c325abdeab111a6
+ lib/cache_mngr.c | 5 ++---
+ lib/fib_lookup/lookup.c | 3 ++-
+ lib/handlers.c | 4 ++--
+ lib/msg.c | 4 ++--
+ lib/nl.c | 26 +++++++++-----------------
+ lib/route/route_obj.c | 3 ++-
+ lib/socket.c | 33 +++++++++++----------------------
+ 7 files changed, 30 insertions(+), 48 deletions(-)
+
+diff --git a/lib/cache_mngr.c b/lib/cache_mngr.c
+index b9eb345..1f23eb1 100644
+--- a/lib/cache_mngr.c
++++ b/lib/cache_mngr.c
+@@ -33,6 +33,7 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/cache.h>
+ #include <netlink/utils.h>
+@@ -392,10 +393,8 @@ int nl_cache_mngr_poll(struct nl_cache_mngr *mngr, int timeout)
+ ret = poll(&fds, 1, timeout);
+ NL_DBG(3, "Cache manager %p, poll() returned %d\n", mngr, ret);
+ if (ret < 0) {
+- char buf[64];
+-
+ NL_DBG(4, "nl_cache_mngr_poll(%p): poll() failed with %d (%s)\n",
+- mngr, errno, strerror_r(errno, buf, sizeof(buf)));
++ mngr, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+diff --git a/lib/fib_lookup/lookup.c b/lib/fib_lookup/lookup.c
+index 43b6126..efc862b 100644
+--- a/lib/fib_lookup/lookup.c
++++ b/lib/fib_lookup/lookup.c
+@@ -17,6 +17,7 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/attr.h>
+ #include <netlink/utils.h>
+@@ -133,7 +134,7 @@ static void result_dump_line(struct nl_object *obj, struct nl_dump_params *p)
+ nl_rtntype2str(res->fr_type, buf, sizeof(buf)));
+ nl_dump(p, "scope %s error %s (%d)\n",
+ rtnl_scope2str(res->fr_scope, buf, sizeof(buf)),
+- strerror_r(-res->fr_error, buf, sizeof(buf)), res->fr_error);
++ nl_strerror_l(-res->fr_error), res->fr_error);
+ }
+
+ static void result_dump_details(struct nl_object *obj, struct nl_dump_params *p)
+diff --git a/lib/handlers.c b/lib/handlers.c
+index 97a0d9c..4a48b99 100644
+--- a/lib/handlers.c
++++ b/lib/handlers.c
+@@ -26,6 +26,7 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/utils.h>
+ #include <netlink/msg.h>
+@@ -79,10 +80,9 @@ static int nl_error_handler_verbose(struct sockaddr_nl *who,
+ struct nlmsgerr *e, void *arg)
+ {
+ FILE *ofd = arg ? arg : stderr;
+- char buf[256];
+
+ fprintf(ofd, "-- Error received: %s\n-- Original message: ",
+- strerror_r(-e->error, buf, sizeof(buf)));
++ nl_strerror_l(-e->error));
+ print_header_content(ofd, &e->msg);
+ fprintf(ofd, "\n");
+
+diff --git a/lib/msg.c b/lib/msg.c
+index e8a7e99..9af3f3a 100644
+--- a/lib/msg.c
++++ b/lib/msg.c
+@@ -27,6 +27,7 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/utils.h>
+ #include <netlink/cache.h>
+@@ -913,11 +914,10 @@ static void dump_error_msg(struct nl_msg *msg, FILE *ofd)
+ fprintf(ofd, " [ERRORMSG] %zu octets\n", sizeof(*err));
+
+ if (nlmsg_len(hdr) >= sizeof(*err)) {
+- char buf[256];
+ struct nl_msg *errmsg;
+
+ fprintf(ofd, " .error = %d \"%s\"\n", err->error,
+- strerror_r(-err->error, buf, sizeof(buf)));
++ nl_strerror_l(-err->error));
+ fprintf(ofd, " [ORIGINAL MESSAGE] %zu octets\n", sizeof(*hdr));
+
+ errmsg = nlmsg_inherit(&err->msg);
+diff --git a/lib/nl.c b/lib/nl.c
+index 123f657..a45c3ea 100644
+--- a/lib/nl.c
++++ b/lib/nl.c
+@@ -27,6 +27,7 @@
+
+ #include <netlink-private/netlink.h>
+ #include <netlink-private/socket.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/utils.h>
+ #include <netlink/handlers.h>
+@@ -105,7 +106,6 @@ int nl_connect(struct nl_sock *sk, int protocol)
+ int errsv;
+ socklen_t addrlen;
+ struct sockaddr_nl local = { 0 };
+- char buf[64];
+ int try_bind = 1;
+
+ #ifdef SOCK_CLOEXEC
+@@ -119,7 +119,7 @@ int nl_connect(struct nl_sock *sk, int protocol)
+ if (sk->s_fd < 0) {
+ errsv = errno;
+ NL_DBG(4, "nl_connect(%p): socket() failed with %d (%s)\n", sk, errsv,
+- strerror_r(errsv, buf, sizeof(buf)));
++ nl_strerror_l(errsv));
+ err = -nl_syserr2nlerr(errsv);
+ goto errout;
+ }
+@@ -158,7 +158,7 @@ int nl_connect(struct nl_sock *sk, int protocol)
+ _nl_socket_used_ports_set(used_ports, port);
+ } else {
+ NL_DBG(4, "nl_connect(%p): bind() for port %u failed with %d (%s)\n",
+- sk, (unsigned) port, errsv, strerror_r(errsv, buf, sizeof(buf)));
++ sk, (unsigned) port, errsv, nl_strerror_l(errsv));
+ _nl_socket_used_ports_release_all(used_ports);
+ err = -nl_syserr2nlerr(errsv);
+ goto errout;
+@@ -172,7 +172,7 @@ int nl_connect(struct nl_sock *sk, int protocol)
+ if (err != 0) {
+ errsv = errno;
+ NL_DBG(4, "nl_connect(%p): bind() failed with %d (%s)\n",
+- sk, errsv, strerror_r(errsv, buf, sizeof(buf)));
++ sk, errsv, nl_strerror_l(errsv));
+ err = -nl_syserr2nlerr(errsv);
+ goto errout;
+ }
+@@ -183,7 +183,7 @@ int nl_connect(struct nl_sock *sk, int protocol)
+ &addrlen);
+ if (err < 0) {
+ NL_DBG(4, "nl_connect(%p): getsockname() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ err = -nl_syserr2nlerr(errno);
+ goto errout;
+ }
+@@ -280,10 +280,8 @@ int nl_sendto(struct nl_sock *sk, void *buf, size_t size)
+ ret = sendto(sk->s_fd, buf, size, 0, (struct sockaddr *)
+ &sk->s_peer, sizeof(sk->s_peer));
+ if (ret < 0) {
+- char errbuf[64];
+-
+ NL_DBG(4, "nl_sendto(%p): sendto() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, errbuf, sizeof(errbuf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -343,10 +341,8 @@ int nl_sendmsg(struct nl_sock *sk, struct nl_msg *msg, struct msghdr *hdr)
+
+ ret = sendmsg(sk->s_fd, hdr, 0);
+ if (ret < 0) {
+- char errbuf[64];
+-
+ NL_DBG(4, "nl_sendmsg(%p): sendmsg() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, errbuf, sizeof(errbuf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -706,15 +702,13 @@ retry:
+ goto abort;
+ }
+ if (n < 0) {
+- char errbuf[64];
+-
+ if (errno == EINTR) {
+ NL_DBG(3, "recvmsg() returned EINTR, retrying\n");
+ goto retry;
+ }
+
+ NL_DBG(4, "nl_sendmsg(%p): nl_recv() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, errbuf, sizeof(errbuf)));
++ sk, errno, nl_strerror_l(errno));
+ retval = -nl_syserr2nlerr(errno);
+ goto abort;
+ }
+@@ -980,10 +974,8 @@ continue_reading:
+ goto out;
+ }
+ } else if (e->error) {
+- char buf[64];
+-
+ NL_DBG(4, "recvmsgs(%p): RTNETLINK responded with %d (%s)\n",
+- sk, -e->error, strerror_r(-e->error, buf, sizeof(buf)));
++ sk, -e->error, nl_strerror_l(-e->error));
+
+ /* Error message reported back from kernel. */
+ if (cb->cb_err) {
+diff --git a/lib/route/route_obj.c b/lib/route/route_obj.c
+index 7347ed2..21b67b1 100644
+--- a/lib/route/route_obj.c
++++ b/lib/route/route_obj.c
+@@ -31,6 +31,7 @@
+ */
+
+ #include <netlink-private/netlink.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/cache.h>
+ #include <netlink/utils.h>
+@@ -259,7 +260,7 @@ static void route_dump_details(struct nl_object *a, struct nl_dump_params *p)
+ if ((r->ce_mask & ROUTE_ATTR_CACHEINFO) && r->rt_cacheinfo.rtci_error) {
+ nl_dump_line(p, " cacheinfo error %d (%s)\n",
+ r->rt_cacheinfo.rtci_error,
+- strerror_r(-r->rt_cacheinfo.rtci_error, buf, sizeof(buf)));
++ nl_strerror_l(-r->rt_cacheinfo.rtci_error));
+ }
+
+ if (r->ce_mask & ROUTE_ATTR_METRICS) {
+diff --git a/lib/socket.c b/lib/socket.c
+index 97b2f69..55153b4 100644
+--- a/lib/socket.c
++++ b/lib/socket.c
+@@ -33,6 +33,7 @@
+
+ #include <netlink-private/netlink.h>
+ #include <netlink-private/socket.h>
++#include <netlink-private/utils.h>
+ #include <netlink/netlink.h>
+ #include <netlink/utils.h>
+ #include <netlink/handlers.h>
+@@ -449,11 +450,9 @@ int nl_socket_add_memberships(struct nl_sock *sk, int group, ...)
+ err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP,
+ &group, sizeof(group));
+ if (err < 0) {
+- char buf[64];
+-
+ va_end(ap);
+ NL_DBG(4, "nl_socket_add_memberships(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -501,11 +500,9 @@ int nl_socket_drop_memberships(struct nl_sock *sk, int group, ...)
+ err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_DROP_MEMBERSHIP,
+ &group, sizeof(group));
+ if (err < 0) {
+- char buf[64];
+-
+ va_end(ap);
+ NL_DBG(4, "nl_socket_drop_memberships(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -619,7 +616,6 @@ int nl_socket_set_fd(struct nl_sock *sk, int protocol, int fd)
+ {
+ int err = 0;
+ socklen_t addrlen;
+- char buf[64];
+ struct sockaddr_nl local = { 0 };
+ int so_type = -1, so_protocol = -1;
+
+@@ -633,7 +629,7 @@ int nl_socket_set_fd(struct nl_sock *sk, int protocol, int fd)
+ &addrlen);
+ if (err < 0) {
+ NL_DBG(4, "nl_socket_set_fd(%p,%d): getsockname() failed with %d (%s)\n",
+- sk, fd, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, fd, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+ if (addrlen != sizeof(local))
+@@ -648,7 +644,7 @@ int nl_socket_set_fd(struct nl_sock *sk, int protocol, int fd)
+ err = getsockopt(fd, SOL_SOCKET, SO_TYPE, &so_type, &addrlen);
+ if (err < 0) {
+ NL_DBG(4, "nl_socket_set_fd(%p,%d): getsockopt() for SO_TYPE failed with %d (%s)\n",
+- sk, fd, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, fd, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+ if (addrlen != sizeof(so_type))
+@@ -666,7 +662,7 @@ int nl_socket_set_fd(struct nl_sock *sk, int protocol, int fd)
+ if (errno == ENOPROTOOPT)
+ goto no_so_protocol;
+ NL_DBG(4, "nl_socket_set_fd(%p,%d): getsockopt() for SO_PROTOCOL failed with %d (%s)\n",
+- sk, fd, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, fd, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+ if (addrlen != sizeof(so_protocol))
+@@ -709,10 +705,8 @@ int nl_socket_set_nonblocking(const struct nl_sock *sk)
+ return -NLE_BAD_SOCK;
+
+ if (fcntl(sk->s_fd, F_SETFL, O_NONBLOCK) < 0) {
+- char buf[64];
+-
+ NL_DBG(4, "nl_socket_set_nonblocking(%p): fcntl() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -813,7 +807,6 @@ int nl_socket_modify_err_cb(struct nl_sock *sk, enum nl_cb_kind kind,
+ int nl_socket_set_buffer_size(struct nl_sock *sk, int rxbuf, int txbuf)
+ {
+ int err;
+- char buf[64];
+
+ if (rxbuf <= 0)
+ rxbuf = 32768;
+@@ -828,7 +821,7 @@ int nl_socket_set_buffer_size(struct nl_sock *sk, int rxbuf, int txbuf)
+ &txbuf, sizeof(txbuf));
+ if (err < 0) {
+ NL_DBG(4, "nl_socket_set_buffer_size(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -836,7 +829,7 @@ int nl_socket_set_buffer_size(struct nl_sock *sk, int rxbuf, int txbuf)
+ &rxbuf, sizeof(rxbuf));
+ if (err < 0) {
+ NL_DBG(4, "nl_socket_set_buffer_size(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -890,10 +883,8 @@ int nl_socket_set_passcred(struct nl_sock *sk, int state)
+ err = setsockopt(sk->s_fd, SOL_SOCKET, SO_PASSCRED,
+ &state, sizeof(state));
+ if (err < 0) {
+- char buf[64];
+-
+ NL_DBG(4, "nl_socket_set_passcred(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+@@ -922,10 +913,8 @@ int nl_socket_recv_pktinfo(struct nl_sock *sk, int state)
+ err = setsockopt(sk->s_fd, SOL_NETLINK, NETLINK_PKTINFO,
+ &state, sizeof(state));
+ if (err < 0) {
+- char buf[64];
+-
+ NL_DBG(4, "nl_socket_recv_pktinfo(%p): setsockopt() failed with %d (%s)\n",
+- sk, errno, strerror_r(errno, buf, sizeof(buf)));
++ sk, errno, nl_strerror_l(errno));
+ return -nl_syserr2nlerr(errno);
+ }
+
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0003-src-switch-to-using-strerror_l-instead-of-strerror_r.patch b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0003-src-switch-to-using-strerror_l-instead-of-strerror_r.patch
new file mode 100644
index 000000000..a0f5a7809
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl/0003-src-switch-to-using-strerror_l-instead-of-strerror_r.patch
@@ -0,0 +1,82 @@
+From 6c2d111177e91184073c44f83d4a6182aaba06d7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
+Date: Thu, 25 Aug 2016 13:15:01 +0100
+Subject: [PATCH 3/3] src: switch to using strerror_l() instead of strerror_r()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+glibc provides two versions of strerror_r(), which
+can be chosen between using feature test macros
+_GNU_SOURCE and _POSIX_C_SOURCE. libnl is built using
+the former, hence we get the glibc special version,
+and all code so far has been written for this.
+
+Other C libraries like musl on the other hand only try
+to be posix compliant, and only ever provide the posix
+version of strerror_r(), which has a different signature.
+
+Uses in libnl hence generally cause printf() of an *int*
+with a *string format* specifier for that reason.
+
+Additionally, strerror_r() has been deprecated:
+ http://austingroupbugs.net/view.php?id=655
+
+Switch to using strerror_l().
+
+Signed-off-by: André Draszik <adraszik@tycoint.com>
+Reviewed-by: Stephane Ayotte <sayotte@tycoint.com>
+Signed-off-by: Thomas Haller <thaller@redhat.com>
+---
+Upstream-Status: Backport https://github.com/thom311/libnl/commit/6c2d111177e91184073c44f83d4a6182aaba06d7
+ src/lib/utils.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/src/lib/utils.c b/src/lib/utils.c
+index 467aaed..5878f27 100644
+--- a/src/lib/utils.c
++++ b/src/lib/utils.c
+@@ -22,6 +22,7 @@
+ */
+
+ #include <netlink/cli/utils.h>
++#include <locale.h>
+
+ /**
+ * Parse a text based 32 bit unsigned integer argument
+@@ -70,7 +71,6 @@ void nl_cli_print_version(void)
+ void nl_cli_fatal(int err, const char *fmt, ...)
+ {
+ va_list ap;
+- char buf[256];
+
+ fprintf(stderr, "Error: ");
+
+@@ -79,8 +79,22 @@ void nl_cli_fatal(int err, const char *fmt, ...)
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ fprintf(stderr, "\n");
+- } else
+- fprintf(stderr, "%s\n", strerror_r(err, buf, sizeof(buf)));
++ } else {
++ char *buf;
++ locale_t loc = newlocale(LC_MESSAGES_MASK, "", (locale_t)0);
++ if (loc == (locale_t)0) {
++ if (errno == ENOENT)
++ loc = newlocale(LC_MESSAGES_MASK,
++ "POSIX", (locale_t)0);
++ if (loc == (locale_t)0)
++ buf = "newlocale() failed";
++ }
++ if (loc != (locale_t)0)
++ buf = strerror_l(err, loc);
++ fprintf(stderr, "%s\n", buf);
++ if (loc != (locale_t)0)
++ freelocale(loc);
++ }
+
+ exit(abs(err));
+ }
+--
+2.9.3
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.25.bb b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.25.bb
deleted file mode 100644
index cabe84107..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.25.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "A library for applications dealing with netlink sockets"
-HOMEPAGE = "http://www.infradead.org/~tgr/libnl/"
-SECTION = "libs/network"
-
-PE = "1"
-PR = "r1"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "flex-native bison-native"
-
-SRC_URI = "http://www.infradead.org/~tgr/${BPN}/files/${BP}.tar.gz \
- file://fix-pktloc_syntax_h-race.patch \
- file://fix-pc-file.patch \
- "
-
-SRC_URI[md5sum] = "03f74d0cd5037cadc8cdfa313bbd195c"
-SRC_URI[sha256sum] = "8beb7590674957b931de6b7f81c530b85dc7c1ad8fbda015398bc1e8d1ce8ec5"
-
-inherit autotools pkgconfig
-
-FILES_${PN} = "${libdir}/libnl-3.so.* \
- ${libdir}/libnl.so.* \
- ${sysconfdir}"
-RREPLACES_${PN} = "libnl2"
-RCONFLICTS_${PN} = "libnl2"
-FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a"
-
-PACKAGES += "${PN}-cli ${PN}-route ${PN}-nf ${PN}-genl ${PN}-idiag"
-FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \
- ${libdir}/libnl/cli/*/*.so \
- ${libdir}/libnl/cli/*/*.la \
- ${sbindir}/nl-*"
-FILES_${PN}-route = "${libdir}/libnl-route-3.so.*"
-FILES_${PN}-idiag = "${libdir}/libnl-idiag-3.so.*"
-FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*"
-FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \
- ${libdir}/libnl-genl.so.* \
- ${sbindir}/genl-ctrl-list"
-RREPLACES_${PN}-genl = "libnl-genl2 libnl-genl-3-200"
-RCONFLICTS_${PN}-genl = "libnl-genl2 libnl-genl-3-200"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.28.bb b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.28.bb
new file mode 100644
index 000000000..26982f3ef
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libnl/libnl_3.2.28.bb
@@ -0,0 +1,48 @@
+SUMMARY = "A library for applications dealing with netlink sockets"
+HOMEPAGE = "http://www.infradead.org/~tgr/libnl/"
+SECTION = "libs/network"
+
+PE = "1"
+
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "flex-native bison-native"
+
+SRC_URI = "https://github.com/thom311/${BPN}/releases/download/${BPN}${@d.getVar('PV', True).replace('.','_')}/${BP}.tar.gz \
+ file://fix-pktloc_syntax_h-race.patch \
+ file://fix-pc-file.patch \
+ file://0001-lib-add-utility-function-nl_strerror_l.patch \
+ file://0002-lib-switch-to-using-strerror_l-instead-of-strerror_r.patch \
+ file://0003-src-switch-to-using-strerror_l-instead-of-strerror_r.patch \
+"
+UPSTREAM_CHECK_URI = "https://github.com/thom311/${BPN}/releases"
+
+SRC_URI[md5sum] = "bab12db1eb94a42129f712a44be91a67"
+SRC_URI[sha256sum] = "cd608992c656e8f6e3ab6c1391b162a5a51c49336b9219f7f390e61fc5437c41"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "${libdir}/libnl-3.so.* \
+ ${libdir}/libnl.so.* \
+ ${sysconfdir}"
+RREPLACES_${PN} = "libnl2"
+RCONFLICTS_${PN} = "libnl2"
+FILES_${PN}-dev += "${libdir}/libnl/cli/*/*.la"
+FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a"
+
+PACKAGES += "${PN}-cli ${PN}-genl ${PN}-idiag ${PN}-nf ${PN}-route ${PN}-xfrm"
+FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \
+ ${libdir}/libnl/cli/*/*.so \
+ ${bindir}/genl-ctrl-list \
+ ${bindir}/idiag-socket-details \
+ ${bindir}/nf-* \
+ ${bindir}/nl-*"
+FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \
+ ${libdir}/libnl-genl.so.*"
+FILES_${PN}-idiag = "${libdir}/libnl-idiag-3.so.*"
+FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*"
+FILES_${PN}-route = "${libdir}/libnl-route-3.so.*"
+FILES_${PN}-xfrm = "${libdir}/libnl-xfrm-3.so.*"
+RREPLACES_${PN}-genl = "libnl-genl2"
+RCONFLICTS_${PN}-genl = "libnl-genl2"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.38.bb b/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.38.bb
deleted file mode 100644
index 384c2fe79..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.38.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-DESCRIPTION = "The PCRE library is a set of functions that implement regular \
-expression pattern matching using the same syntax and semantics as Perl 5. PCRE \
-has its own native API, as well as a set of wrapper functions that correspond \
-to the POSIX regular expression API."
-SUMMARY = "Perl Compatible Regular Expressions"
-HOMEPAGE = "http://www.pcre.org"
-SECTION = "devel"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=7e4937814aee14758c1c95b59c80c44d"
-SRC_URI = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PV}.tar.bz2 \
- file://pcre-cross.patch \
- file://fix-pcre-name-collision.patch \
- file://run-ptest \
- file://Makefile \
-"
-
-SRC_URI[md5sum] = "00aabbfe56d5a48b270f999b508c5ad2"
-SRC_URI[sha256sum] = "b9e02d36e23024d6c02a2e5b25204b3a4fa6ade43e0a5f869f254f49535079df"
-
-S = "${WORKDIR}/pcre-${PV}"
-
-PROVIDES += "pcre"
-DEPENDS += "bzip2 zlib"
-
-PACKAGECONFIG ??= "pcre8 unicode-properties"
-
-PACKAGECONFIG[pcre8] = "--enable-pcre8,--disable-pcre8"
-PACKAGECONFIG[pcre16] = "--enable-pcre16,--disable-pcre16"
-PACKAGECONFIG[pcre32] = "--enable-pcre32,--disable-pcre32"
-PACKAGECONFIG[pcretest-readline] = "--enable-pcretest-libreadline,--disable-pcretest-libreadline,readline,"
-PACKAGECONFIG[unicode-properties] = "--enable-unicode-properties,--disable-unicode-properties"
-
-BINCONFIG = "${bindir}/pcre-config"
-
-inherit autotools binconfig-disabled ptest
-
-EXTRA_OECONF = "\
- --enable-newline-is-lf \
- --enable-rebuild-chartables \
- --enable-utf \
- --with-link-size=2 \
- --with-match-limit=10000000 \
-"
-
-# Set LINK_SIZE in BUILD_CFLAGS given that the autotools bbclass use it to
-# set CFLAGS_FOR_BUILD, required for the libpcre build.
-BUILD_CFLAGS =+ "-DLINK_SIZE=2 -I${B}"
-CFLAGS += "-D_REENTRANT"
-CXXFLAGS_append_powerpc = " -lstdc++"
-
-PACKAGES =+ "libpcrecpp libpcreposix pcregrep pcregrep-doc pcretest pcretest-doc"
-
-SUMMARY_libpcrecpp = "${SUMMARY} - C++ wrapper functions"
-SUMMARY_libpcreposix = "${SUMMARY} - C wrapper functions based on the POSIX regex API"
-SUMMARY_pcregrep = "grep utility that uses perl 5 compatible regexes"
-SUMMARY_pcregrep-doc = "grep utility that uses perl 5 compatible regexes - docs"
-SUMMARY_pcretest = "program for testing Perl-comatible regular expressions"
-SUMMARY_pcretest-doc = "program for testing Perl-comatible regular expressions - docs"
-
-FILES_libpcrecpp = "${libdir}/libpcrecpp.so.*"
-FILES_libpcreposix = "${libdir}/libpcreposix.so.*"
-FILES_pcregrep = "${bindir}/pcregrep"
-FILES_pcregrep-doc = "${mandir}/man1/pcregrep.1"
-FILES_pcretest = "${bindir}/pcretest"
-FILES_pcretest-doc = "${mandir}/man1/pcretest.1"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_install_ptest() {
- t=${D}${PTEST_PATH}
- cp ${WORKDIR}/Makefile $t
- cp -r ${S}/testdata $t
- for i in pcre_stringpiece_unittest pcregrep pcretest; \
- do cp ${B}/.libs/$i $t; \
- done
- for i in RunTest RunGrepTest test-driver; \
- do cp ${S}/$i $t; \
- done
-}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.39.bb b/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.39.bb
new file mode 100644
index 000000000..2d4668b52
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libpcre/libpcre_8.39.bb
@@ -0,0 +1,81 @@
+DESCRIPTION = "The PCRE library is a set of functions that implement regular \
+expression pattern matching using the same syntax and semantics as Perl 5. PCRE \
+has its own native API, as well as a set of wrapper functions that correspond \
+to the POSIX regular expression API."
+SUMMARY = "Perl Compatible Regular Expressions"
+HOMEPAGE = "http://www.pcre.org"
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=b8221cbf43c5587f90ccf228f1185cc2"
+SRC_URI = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PV}.tar.bz2 \
+ file://pcre-cross.patch \
+ file://fix-pcre-name-collision.patch \
+ file://run-ptest \
+ file://Makefile \
+"
+
+SRC_URI[md5sum] = "e3fca7650a0556a2647821679d81f585"
+SRC_URI[sha256sum] = "b858099f82483031ee02092711689e7245586ada49e534a06e678b8ea9549e8b"
+
+S = "${WORKDIR}/pcre-${PV}"
+
+PROVIDES += "pcre"
+DEPENDS += "bzip2 zlib"
+
+PACKAGECONFIG ??= "pcre8 unicode-properties"
+
+PACKAGECONFIG[pcre8] = "--enable-pcre8,--disable-pcre8"
+PACKAGECONFIG[pcre16] = "--enable-pcre16,--disable-pcre16"
+PACKAGECONFIG[pcre32] = "--enable-pcre32,--disable-pcre32"
+PACKAGECONFIG[pcretest-readline] = "--enable-pcretest-libreadline,--disable-pcretest-libreadline,readline,"
+PACKAGECONFIG[unicode-properties] = "--enable-unicode-properties,--disable-unicode-properties"
+
+BINCONFIG = "${bindir}/pcre-config"
+
+inherit autotools binconfig-disabled ptest
+
+EXTRA_OECONF = "\
+ --enable-newline-is-lf \
+ --enable-rebuild-chartables \
+ --enable-utf \
+ --with-link-size=2 \
+ --with-match-limit=10000000 \
+"
+
+# Set LINK_SIZE in BUILD_CFLAGS given that the autotools bbclass use it to
+# set CFLAGS_FOR_BUILD, required for the libpcre build.
+BUILD_CFLAGS =+ "-DLINK_SIZE=2 -I${B}"
+CFLAGS += "-D_REENTRANT"
+CXXFLAGS_append_powerpc = " -lstdc++"
+
+export CCLD_FOR_BUILD ="${BUILD_CCLD}"
+
+PACKAGES =+ "libpcrecpp libpcreposix pcregrep pcregrep-doc pcretest pcretest-doc"
+
+SUMMARY_libpcrecpp = "${SUMMARY} - C++ wrapper functions"
+SUMMARY_libpcreposix = "${SUMMARY} - C wrapper functions based on the POSIX regex API"
+SUMMARY_pcregrep = "grep utility that uses perl 5 compatible regexes"
+SUMMARY_pcregrep-doc = "grep utility that uses perl 5 compatible regexes - docs"
+SUMMARY_pcretest = "program for testing Perl-comatible regular expressions"
+SUMMARY_pcretest-doc = "program for testing Perl-comatible regular expressions - docs"
+
+FILES_libpcrecpp = "${libdir}/libpcrecpp.so.*"
+FILES_libpcreposix = "${libdir}/libpcreposix.so.*"
+FILES_pcregrep = "${bindir}/pcregrep"
+FILES_pcregrep-doc = "${mandir}/man1/pcregrep.1"
+FILES_pcretest = "${bindir}/pcretest"
+FILES_pcretest-doc = "${mandir}/man1/pcretest.1"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install_ptest() {
+ t=${D}${PTEST_PATH}
+ cp ${WORKDIR}/Makefile $t
+ cp -r ${S}/testdata $t
+ for i in pcre_stringpiece_unittest pcregrep pcretest; \
+ do cp ${B}/.libs/$i $t; \
+ done
+ for i in RunTest RunGrepTest test-driver; \
+ do cp ${S}/$i $t; \
+ done
+}
diff --git a/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy/0001-test-Include-sys-select.h-for-select.patch b/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy/0001-test-Include-sys-select.h-for-select.patch
deleted file mode 100644
index 5ae52f2d4..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy/0001-test-Include-sys-select.h-for-select.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f5f2c2289eb35eb804c1c35e46ca41b58e4cae01 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 6 Apr 2015 14:13:49 -0700
-Subject: [PATCH] test: Include <sys/select.h> for select()
-
-As per posix we need to include this file otherwise we end up with errors like
-
-/home/kraj/work/bleeding/openembedded-core/build/tmp-musl/work/mips32r2-oe-linux-musl/libproxy/0.4.11-r0/libproxy-0.4.11/libproxy/test/get-pac-test.cpp: In member function 'bool TestServer::loop()':
-/home/kraj/work/bleeding/openembedded-core/build/tmp-musl/work/mips32r2-oe-linux-musl/libproxy/0.4.11-r0/libproxy-0.4.11/libproxy/test/get-pac-test.cpp:80:4: error: 'fd_set' was not declared in this scope
- fd_set fds;
- ^
-/home/kraj/work/bleeding/openembedded-core/build/tmp-musl/work/mips32r2-oe-linux-musl/libproxy/0.4.11-r0/libproxy-0.4.11/libproxy/test/get-pac-test.cpp:89:14: error: 'fds' was not declared in this scope
- FD_ZERO (&fds);
-<JIRA TICKET #1>, <JIRA TICKET #2>, <JIRA TICKET #n> : <one line summary of change>
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libproxy/test/get-pac-test.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libproxy/test/get-pac-test.cpp b/libproxy/test/get-pac-test.cpp
-index a61fc4b..bda4646 100644
---- a/libproxy/test/get-pac-test.cpp
-+++ b/libproxy/test/get-pac-test.cpp
-@@ -3,6 +3,7 @@
- #include <sstream>
- #include <string>
-
-+#include <sys/select.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
---
-2.1.4
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.11.bb b/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.11.bb
deleted file mode 100644
index 8cc90bb8e..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.11.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Library providing automatic proxy configuration management"
-HOMEPAGE = "http://code.google.com/p/libproxy/"
-BUGTRACKER = "http://code.google.com/p/libproxy/issues/list"
-SECTION = "libs"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://utils/proxy.c;beginline=1;endline=18;md5=55152a1006d7dafbef32baf9c30a99c0"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/libp/${BPN}/${BPN}_${PV}.orig.tar.gz \
- file://0001-test-Include-sys-select.h-for-select.patch \
- "
-
-SRC_URI[md5sum] = "3cd1ae2a4abecf44b3f24d6639d2cd84"
-SRC_URI[sha256sum] = "dc3f33de54163718f82b3e7c496a7de97f8862578414b8ecaad3cbfe4821864b"
-
-inherit cmake pkgconfig
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gnome', '', d)} gnome3"
-PACKAGECONFIG[gnome] = "-DWITH_GNOME=yes,-DWITH_GNOME=no,gconf"
-PACKAGECONFIG[gnome3] = "-DWITH_GNOME3=yes,-DWITH_GNOME3=no"
-
-EXTRA_OECMAKE += " \
- -DWITH_KDE4=no \
- -DWITH_MOZJS=no \
- -DWITH_NM=no \
- -DWITH_PERL=no \
- -DWITH_PYTHON=no \
- -DWITH_WEBKIT=no \
- -DLIB_INSTALL_DIR=${libdir} \
- -DLIBEXEC_INSTALL_DIR=${libexecdir} \
-"
-
-FILES_${PN} += "${libdir}/${BPN}/${PV}/modules"
-FILES_${PN}-dev += "${datadir}/cmake"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.13.bb b/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.13.bb
new file mode 100644
index 000000000..3940e228d
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libproxy/libproxy_0.4.13.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Library providing automatic proxy configuration management"
+HOMEPAGE = "https://github.com/libproxy/libproxy"
+BUGTRACKER = "https://github.com/libproxy/libproxy/issues"
+SECTION = "libs"
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://utils/proxy.c;beginline=1;endline=18;md5=55152a1006d7dafbef32baf9c30a99c0"
+
+DEPENDS = "glib-2.0"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/archive/${PV}.tar.gz"
+
+UPSTREAM_CHECK_URI = "https://github.com/libproxy/libproxy/releases"
+
+SRC_URI[md5sum] = "de293bb311f185a2ffa3492700a694c2"
+SRC_URI[sha256sum] = "d610bc0ef81a18ba418d759c5f4f87bf7102229a9153fb397d7d490987330ffd"
+
+inherit cmake pkgconfig
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gnome', '', d)} gnome3"
+PACKAGECONFIG[gnome] = "-DWITH_GNOME=yes,-DWITH_GNOME=no,gconf"
+PACKAGECONFIG[gnome3] = "-DWITH_GNOME3=yes,-DWITH_GNOME3=no"
+
+EXTRA_OECMAKE += " \
+ -DWITH_KDE4=no \
+ -DWITH_MOZJS=no \
+ -DWITH_NM=no \
+ -DWITH_PERL=no \
+ -DWITH_PYTHON=no \
+ -DWITH_WEBKIT=no \
+ -DLIB_INSTALL_DIR=${libdir} \
+ -DLIBEXEC_INSTALL_DIR=${libexecdir} \
+"
+
+FILES_${PN} += "${libdir}/${BPN}/${PV}/modules"
+FILES_${PN}-dev += "${datadir}/cmake"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.52.2.bb b/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.52.2.bb
deleted file mode 100644
index f6e3db2c9..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.52.2.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "An HTTP library implementation in C"
-HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome/libs"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 intltool-native"
-
-SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split('.')[1]}"
-
-SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "e4757d09012ed93822b1ee41435fec24"
-SRC_URI[sha256sum] = "db55628b5c7d952945bb71b236469057c8dfb8dea0c271513579c6273c2093dc"
-
-S = "${WORKDIR}/libsoup-${PV}"
-
-inherit autotools gettext pkgconfig upstream-version-is-even gobject-introspection
-
-# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
-
-EXTRA_OECONF = "--disable-vala"
-
-# When built without gnome support, libsoup-2.4 will contain only one shared lib
-# and will therefore become subject to renaming by debian.bbclass. Prevent
-# renaming in order to keep the package name consistent regardless of whether
-# gnome support is enabled or disabled.
-DEBIAN_NOAUTONAME_${PN} = "1"
-
-# glib-networking is needed for SSL, proxies, etc.
-RRECOMMENDS_${PN} = "glib-networking"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb b/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb
new file mode 100644
index 000000000..b93a9fde7
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "An HTTP library implementation in C"
+HOMEPAGE = "https://wiki.gnome.org/Projects/libsoup"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome/libs"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "glib-2.0 glib-2.0-native libxml2 sqlite3 intltool-native"
+
+SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split('.')[1]}"
+
+SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "73b1fb774de16c29b380f87016f9f9dd"
+SRC_URI[sha256sum] = "47b42c232034734d66e5f093025843a5d8cc4b2357c011085a2fd04ef02dd633"
+
+S = "${WORKDIR}/libsoup-${PV}"
+
+inherit autotools gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
+
+# libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+
+EXTRA_OECONF = "--disable-vala"
+
+# When built without gnome support, libsoup-2.4 will contain only one shared lib
+# and will therefore become subject to renaming by debian.bbclass. Prevent
+# renaming in order to keep the package name consistent regardless of whether
+# gnome support is enabled or disabled.
+DEBIAN_NOAUTONAME_${PN} = "1"
+
+# glib-networking is needed for SSL, proxies, etc.
+RRECOMMENDS_${PN} = "glib-networking"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Fix-build-on-mips-musl.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Fix-build-on-mips-musl.patch
deleted file mode 100644
index 5426fcc5c..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Fix-build-on-mips-musl.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From e623c7703945a5eb6c9a30586ec5e23b2f7396f6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 23 Mar 2016 06:08:59 +0000
-Subject: [PATCH] Fix build on mips/musl
-
-Do not include endian.h on musl it includes
-further headers which can not be compiled in __ASSEMBLER__
- mode
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/coredump/_UCD_internal.h | 34 ++++++++++++++++++++++++++++++++++
- src/mips/getcontext.S | 3 +--
- 2 files changed, 35 insertions(+), 2 deletions(-)
-
-diff --git a/src/coredump/_UCD_internal.h b/src/coredump/_UCD_internal.h
-index 3c95a2a..80acc15 100644
---- a/src/coredump/_UCD_internal.h
-+++ b/src/coredump/_UCD_internal.h
-@@ -34,6 +34,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
- #ifdef HAVE_SYS_PROCFS_H
- #include <sys/procfs.h> /* struct elf_prstatus */
- #endif
-+#include <sys/reg.h>
- #include <errno.h>
- #include <string.h>
- #include <limits.h>
-@@ -44,6 +45,39 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-
- #include "libunwind_i.h"
-
-+#ifndef __GLIBC__
-+#define EF_REG0 6
-+#define EF_REG1 7
-+#define EF_REG2 8
-+#define EF_REG3 9
-+#define EF_REG4 10
-+#define EF_REG5 11
-+#define EF_REG6 12
-+#define EF_REG7 13
-+#define EF_REG8 14
-+#define EF_REG9 15
-+#define EF_REG10 16
-+#define EF_REG11 17
-+#define EF_REG12 18
-+#define EF_REG13 19
-+#define EF_REG14 20
-+#define EF_REG15 21
-+#define EF_REG16 22
-+#define EF_REG17 23
-+#define EF_REG18 24
-+#define EF_REG19 25
-+#define EF_REG20 26
-+#define EF_REG21 27
-+#define EF_REG22 28
-+#define EF_REG23 29
-+#define EF_REG24 30
-+#define EF_REG25 31
-+#define EF_REG28 34
-+#define EF_REG29 35
-+#define EF_REG30 36
-+#define EF_REG31 37
-+#endif
-+
-
- #if SIZEOF_OFF_T == 4
- typedef uint32_t uoff_t;
-diff --git a/src/mips/getcontext.S b/src/mips/getcontext.S
-index d1dbd57..de9b681 100644
---- a/src/mips/getcontext.S
-+++ b/src/mips/getcontext.S
-@@ -24,12 +24,11 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-
- #include "offsets.h"
--#include <endian.h>
-
- .text
-
- #if _MIPS_SIM == _ABIO32
--# if __BYTE_ORDER == __BIG_ENDIAN
-+# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
- # define OFFSET 4
- # else
- # define OFFSET 0
---
-1.8.3.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch
deleted file mode 100644
index af972f84e..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 396b6c7ab737e2bff244d640601c436a26260ca1 Mon Sep 17 00:00:00 2001
-From: Arun Sharma <arun@sharma-home.net>
-Date: Fri, 19 Jun 2015 19:47:22 -0700
-Subject: [PATCH] Invalid dwarf opcodes can cause references beyond the end of
- the array.
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- include/dwarf_i.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/dwarf_i.h b/include/dwarf_i.h
-index 1e6231e..4a02a7d 100644
---- a/include/dwarf_i.h
-+++ b/include/dwarf_i.h
-@@ -20,7 +20,7 @@
- extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH];
- /* REG is evaluated multiple times; it better be side-effects free! */
- # define dwarf_to_unw_regnum(reg) \
-- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
-+ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0)
- #endif
-
- #ifdef UNW_LOCAL_ONLY
---
-1.7.9.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch
deleted file mode 100644
index 7309ffd86..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-disable-tests.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b07435a90bd636ee718e2238fb46c74a6dd5e069 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 22 Mar 2016 16:41:13 +0000
-Subject: [PATCH] disable tests
-
-Tests use getcontext() API which is
-not there on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Inappropriate [MUSL-only]
-
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index e24fe1e..15380e4 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -39,7 +39,7 @@ endif
-
- nodist_include_HEADERS = include/libunwind-common.h
-
--SUBDIRS = src tests doc
-+SUBDIRS = src doc
-
- noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \
- include/compiler.h include/libunwind_i.h include/mempool.h \
---
-1.8.3.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch
deleted file mode 100644
index 228ec322d..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch
+++ /dev/null
@@ -1,2529 +0,0 @@
-From ac6c0a6535975f1dc2da6e4e2766614baac2a14a Mon Sep 17 00:00:00 2001
-From: Yvan Roux <yvan.roux@linaro.org>
-Date: Sat, 11 May 2013 09:18:23 -0600
-Subject: [PATCH] AArch64 port.
-
-Upstream-Status: Backport
-
----
- Makefile.am | 6
- README | 1
- configure.ac | 6
- include/libunwind-aarch64.h | 187 ++++++++++++++++++++++
- include/libunwind.h.in | 4
- include/tdep-aarch64/dwarf-config.h | 52 ++++++
- include/tdep-aarch64/jmpbuf.h | 33 +++
- include/tdep-aarch64/libunwind_i.h | 294 +++++++++++++++++++++++++++++++++++
- include/tdep/dwarf-config.h | 4
- include/tdep/jmpbuf.h | 2
- include/tdep/libunwind_i.h.in | 4
- src/Makefile.am | 39 ++++
- src/aarch64/Gcreate_addr_space.c | 60 +++++++
- src/aarch64/Gget_proc_info.c | 39 ++++
- src/aarch64/Gget_save_loc.c | 100 +++++++++++
- src/aarch64/Gglobal.c | 57 ++++++
- src/aarch64/Ginit.c | 187 ++++++++++++++++++++++
- src/aarch64/Ginit_local.c | 55 ++++++
- src/aarch64/Ginit_remote.c | 45 +++++
- src/aarch64/Gis_signal_frame.c | 64 +++++++
- src/aarch64/Gregs.c | 113 +++++++++++++
- src/aarch64/Gresume.c | 177 +++++++++++++++++++++
- src/aarch64/Gstep.c | 129 +++++++++++++++
- src/aarch64/Lcreate_addr_space.c | 5
- src/aarch64/Lget_proc_info.c | 5
- src/aarch64/Lget_save_loc.c | 5
- src/aarch64/Lglobal.c | 5
- src/aarch64/Linit.c | 5
- src/aarch64/Linit_local.c | 5
- src/aarch64/Linit_remote.c | 5
- src/aarch64/Lis_signal_frame.c | 5
- src/aarch64/Lregs.c | 5
- src/aarch64/Lresume.c | 5
- src/aarch64/Lstep.c | 5
- src/aarch64/gen-offsets.c | 68 ++++++++
- src/aarch64/init.h | 127 +++++++++++++++
- src/aarch64/is_fpreg.c | 32 +++
- src/aarch64/offsets.h | 49 +++++
- src/aarch64/regname.c | 106 ++++++++++++
- src/aarch64/siglongjmp.S | 12 +
- src/aarch64/unwind_i.h | 43 +++++
- src/coredump/_UCD_access_reg_linux.c | 5
- src/ptrace/_UPT_reg_offset.c | 36 ++++
- 43 files changed, 2184 insertions(+), 7 deletions(-)
- create mode 100644 include/libunwind-aarch64.h
- create mode 100644 include/tdep-aarch64/dwarf-config.h
- create mode 100644 include/tdep-aarch64/jmpbuf.h
- create mode 100644 include/tdep-aarch64/libunwind_i.h
- create mode 100644 src/aarch64/Gcreate_addr_space.c
- create mode 100644 src/aarch64/Gget_proc_info.c
- create mode 100644 src/aarch64/Gget_save_loc.c
- create mode 100644 src/aarch64/Gglobal.c
- create mode 100644 src/aarch64/Ginit.c
- create mode 100644 src/aarch64/Ginit_local.c
- create mode 100644 src/aarch64/Ginit_remote.c
- create mode 100644 src/aarch64/Gis_signal_frame.c
- create mode 100644 src/aarch64/Gregs.c
- create mode 100644 src/aarch64/Gresume.c
- create mode 100644 src/aarch64/Gstep.c
- create mode 100644 src/aarch64/Lcreate_addr_space.c
- create mode 100644 src/aarch64/Lget_proc_info.c
- create mode 100644 src/aarch64/Lget_save_loc.c
- create mode 100644 src/aarch64/Lglobal.c
- create mode 100644 src/aarch64/Linit.c
- create mode 100644 src/aarch64/Linit_local.c
- create mode 100644 src/aarch64/Linit_remote.c
- create mode 100644 src/aarch64/Lis_signal_frame.c
- create mode 100644 src/aarch64/Lregs.c
- create mode 100644 src/aarch64/Lresume.c
- create mode 100644 src/aarch64/Lstep.c
- create mode 100644 src/aarch64/gen-offsets.c
- create mode 100644 src/aarch64/init.h
- create mode 100644 src/aarch64/is_fpreg.c
- create mode 100644 src/aarch64/offsets.h
- create mode 100644 src/aarch64/regname.c
- create mode 100644 src/aarch64/siglongjmp.S
- create mode 100644 src/aarch64/unwind_i.h
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,6 +2,9 @@ include_HEADERS = include/libunwind-dyna
- include/libunwind-ptrace.h \
- include/libunwind-coredump.h
-
-+if ARCH_AARCH64
-+include_HEADERS += include/libunwind-aarch64.h
-+endif
- if ARCH_ARM
- include_HEADERS += include/libunwind-arm.h
- endif
-@@ -41,6 +44,9 @@ SUBDIRS = src tests doc
- noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \
- include/compiler.h include/libunwind_i.h include/mempool.h \
- include/remote.h \
-+ include/tdep-aarch64/dwarf-config.h \
-+ include/tdep-aarch64/jmpbuf.h \
-+ include/tdep-aarch64/libunwind_i.h \
- include/tdep-arm/dwarf-config.h include/tdep-arm/ex_tables.h \
- include/tdep-arm/jmpbuf.h include/tdep-arm/libunwind_i.h \
- include/tdep-ia64/jmpbuf.h include/tdep-ia64/rse.h \
---- a/README
-+++ b/README
-@@ -9,6 +9,7 @@ several architecture/operating-system co
- Linux/IA-64: Fully tested and supported.
- Linux/PARISC: Works well, but C library missing unwind-info.
- HP-UX/IA-64: Mostly works but known to have some serious limitations.
-+ Linux/AArch64: Newly added.
- Linux/PPC64: Newly added.
- Linux/SuperH: Newly added.
- FreeBSD/i386: Newly added.
---- a/configure.ac
-+++ b/configure.ac
-@@ -104,7 +104,7 @@ SET_ARCH([$target_cpu],[target_arch])
-
- AC_ARG_ENABLE(coredump,
- AS_HELP_STRING([--enable-coredump],[building libunwind-coredump library]),,
-- [AS_CASE([$host_arch], [arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
-+ [AS_CASE([$host_arch], [aarch64*|arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
- )
-
- AC_MSG_CHECKING([if we should build libunwind-coredump])
-@@ -121,6 +121,7 @@ AC_MSG_RESULT([$target_os])
-
- AM_CONDITIONAL(BUILD_COREDUMP, test x$enable_coredump = xyes)
- AM_CONDITIONAL(REMOTE_ONLY, test x$target_arch != x$host_arch)
-+AM_CONDITIONAL(ARCH_AARCH64, test x$target_arch = xaarch64)
- AM_CONDITIONAL(ARCH_ARM, test x$target_arch = xarm)
- AM_CONDITIONAL(ARCH_IA64, test x$target_arch = xia64)
- AM_CONDITIONAL(ARCH_HPPA, test x$target_arch = xhppa)
-@@ -137,7 +138,7 @@ AM_CONDITIONAL(OS_FREEBSD, expr x$target
- AC_MSG_CHECKING([for ELF helper width])
- case "${target_arch}" in
- (arm|hppa|ppc32|x86|sh) use_elf32=yes; AC_MSG_RESULT([32]);;
--(ia64|ppc64|x86_64) use_elf64=yes; AC_MSG_RESULT([64]);;
-+(aarch64|ia64|ppc64|x86_64) use_elf64=yes; AC_MSG_RESULT([64]);;
- (mips) use_elfxx=yes; AC_MSG_RESULT([xx]);;
- *) AC_MSG_ERROR([Unknown ELF target: ${target_arch}])
- esac
-@@ -186,6 +187,7 @@ AS_HELP_STRING([--enable-cxx-exceptions]
- # C++ exception handling doesn't work too well on x86
- case $target_arch in
- x86*) enable_cxx_exceptions=no;;
-+ aarch64*) enable_cxx_exceptions=no;;
- arm*) enable_cxx_exceptions=no;;
- mips*) enable_cxx_exceptions=no;;
- *) enable_cxx_exceptions=yes;;
---- /dev/null
-+++ b/include/libunwind-aarch64.h
-@@ -0,0 +1,187 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2001-2004 Hewlett-Packard Co
-+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#ifndef LIBUNWIND_H
-+#define LIBUNWIND_H
-+
-+#if defined(__cplusplus) || defined(c_plusplus)
-+extern "C" {
-+#endif
-+
-+#include <inttypes.h>
-+#include <stddef.h>
-+#include <ucontext.h>
-+
-+#define UNW_TARGET aarch64
-+#define UNW_TARGET_AARCH64 1
-+
-+#define _U_TDEP_QP_TRUE 0 /* see libunwind-dynamic.h */
-+
-+/* This needs to be big enough to accommodate "struct cursor", while
-+ leaving some slack for future expansion. Changing this value will
-+ require recompiling all users of this library. Stack allocation is
-+ relatively cheap and unwind-state copying is relatively rare, so we
-+ want to err on making it rather too big than too small. */
-+
-+#define UNW_TDEP_CURSOR_LEN 4096
-+
-+typedef uint64_t unw_word_t;
-+typedef int64_t unw_sword_t;
-+
-+typedef long double unw_tdep_fpreg_t;
-+
-+typedef struct
-+ {
-+ /* no aarch64-specific auxiliary proc-info */
-+ }
-+unw_tdep_proc_info_t;
-+
-+typedef enum
-+ {
-+ /* 64-bit general registers. */
-+ UNW_AARCH64_X0,
-+ UNW_AARCH64_X1,
-+ UNW_AARCH64_X2,
-+ UNW_AARCH64_X3,
-+ UNW_AARCH64_X4,
-+ UNW_AARCH64_X5,
-+ UNW_AARCH64_X6,
-+ UNW_AARCH64_X7,
-+ UNW_AARCH64_X8,
-+
-+ /* Temporary registers. */
-+ UNW_AARCH64_X9,
-+ UNW_AARCH64_X10,
-+ UNW_AARCH64_X11,
-+ UNW_AARCH64_X12,
-+ UNW_AARCH64_X13,
-+ UNW_AARCH64_X14,
-+ UNW_AARCH64_X15,
-+
-+ /* Intra-procedure-call temporary registers. */
-+ UNW_AARCH64_X16,
-+ UNW_AARCH64_X17,
-+
-+ /* Callee-saved registers. */
-+ UNW_AARCH64_X18,
-+ UNW_AARCH64_X19,
-+ UNW_AARCH64_X20,
-+ UNW_AARCH64_X21,
-+ UNW_AARCH64_X22,
-+ UNW_AARCH64_X23,
-+ UNW_AARCH64_X24,
-+ UNW_AARCH64_X25,
-+ UNW_AARCH64_X26,
-+ UNW_AARCH64_X27,
-+ UNW_AARCH64_X28,
-+
-+ /* 64-bit frame pointer. */
-+ UNW_AARCH64_X29,
-+
-+ /* 64-bit link register. */
-+ UNW_AARCH64_X30,
-+
-+ /* 64-bit stack pointer. */
-+ UNW_AARCH64_SP = 31,
-+ UNW_AARCH64_PC,
-+ UNW_AARCH64_PSTATE,
-+
-+ /* 128-bit FP/Advanced SIMD registers. */
-+ UNW_AARCH64_V0 = 64,
-+ UNW_AARCH64_V1,
-+ UNW_AARCH64_V2,
-+ UNW_AARCH64_V3,
-+ UNW_AARCH64_V4,
-+ UNW_AARCH64_V5,
-+ UNW_AARCH64_V6,
-+ UNW_AARCH64_V7,
-+ UNW_AARCH64_V8,
-+ UNW_AARCH64_V9,
-+ UNW_AARCH64_V10,
-+ UNW_AARCH64_V11,
-+ UNW_AARCH64_V12,
-+ UNW_AARCH64_V13,
-+ UNW_AARCH64_V14,
-+ UNW_AARCH64_V15,
-+ UNW_AARCH64_V16,
-+ UNW_AARCH64_V17,
-+ UNW_AARCH64_V18,
-+ UNW_AARCH64_V19,
-+ UNW_AARCH64_V20,
-+ UNW_AARCH64_V21,
-+ UNW_AARCH64_V22,
-+ UNW_AARCH64_V23,
-+ UNW_AARCH64_V24,
-+ UNW_AARCH64_V25,
-+ UNW_AARCH64_V26,
-+ UNW_AARCH64_V27,
-+ UNW_AARCH64_V28,
-+ UNW_AARCH64_V29,
-+ UNW_AARCH64_V30,
-+ UNW_AARCH64_V31,
-+
-+ UNW_AARCH64_FPSR,
-+ UNW_AARCH64_FPCR,
-+
-+ /* For AArch64, the CFA is the value of SP (x31) at the call site of the
-+ previous frame. */
-+ UNW_AARCH64_CFA = UNW_AARCH64_SP,
-+
-+ UNW_TDEP_LAST_REG = UNW_AARCH64_FPCR,
-+
-+ UNW_TDEP_IP = UNW_AARCH64_X30,
-+ UNW_TDEP_SP = UNW_AARCH64_SP,
-+ UNW_TDEP_EH = UNW_AARCH64_X0,
-+
-+ }
-+aarch64_regnum_t;
-+
-+/* Use R0 through R3 to pass exception handling information. */
-+#define UNW_TDEP_NUM_EH_REGS 4
-+
-+typedef struct unw_tdep_save_loc
-+ {
-+ /* Additional target-dependent info on a save location. */
-+ }
-+unw_tdep_save_loc_t;
-+
-+
-+/* On AArch64, we can directly use ucontext_t as the unwind context. */
-+typedef ucontext_t unw_tdep_context_t;
-+
-+#include "libunwind-common.h"
-+#include "libunwind-dynamic.h"
-+
-+#define unw_tdep_getcontext(uc) (getcontext (uc), 0)
-+#define unw_tdep_is_fpreg UNW_ARCH_OBJ(is_fpreg)
-+
-+extern int unw_tdep_is_fpreg (int);
-+
-+#if defined(__cplusplus) || defined(c_plusplus)
-+}
-+#endif
-+
-+#endif /* LIBUNWIND_H */
---- a/include/libunwind.h.in
-+++ b/include/libunwind.h.in
-@@ -3,7 +3,9 @@
-
- #ifndef UNW_REMOTE_ONLY
-
--#if defined __arm__
-+#if defined __aarch64__
-+#include "libunwind-aarch64.h"
-+#elif defined __arm__
- # include "libunwind-arm.h"
- #elif defined __hppa__
- # include "libunwind-hppa.h"
---- /dev/null
-+++ b/include/tdep-aarch64/dwarf-config.h
-@@ -0,0 +1,52 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#ifndef dwarf_config_h
-+#define dwarf_config_h
-+
-+/* This matches the value udes by GCC (see
-+ gcc/config/aarch64/aarch64.h:DWARF_FRAME_REGISTERS. */
-+#define DWARF_NUM_PRESERVED_REGS 97
-+
-+/* Return TRUE if the ADDR_SPACE uses big-endian byte-order. */
-+#define dwarf_is_big_endian(addr_space) 0
-+
-+#define dwarf_to_unw_regnum(reg) (((reg) <= UNW_AARCH64_V31) ? (reg) : 0)
-+
-+/* Convert a pointer to a dwarf_cursor structure to a pointer to
-+ unw_cursor_t. */
-+#define dwarf_to_cursor(c) ((unw_cursor_t *) (c))
-+
-+typedef struct dwarf_loc
-+ {
-+ unw_word_t val;
-+#ifndef UNW_LOCAL_ONLY
-+ unw_word_t type; /* see DWARF_LOC_TYPE_* macros. */
-+#endif
-+ }
-+dwarf_loc_t;
-+
-+#endif /* dwarf_config_h */
---- /dev/null
-+++ b/include/tdep-aarch64/jmpbuf.h
-@@ -0,0 +1,33 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+/* Use glibc's jump-buffer indices; NPTL peeks at SP: */
-+
-+/* FIXME for AArch64 */
-+
-+#define JB_SP 13
-+#define JB_RP 14
-+#define JB_MASK_SAVED 15
-+#define JB_MASK 16
---- /dev/null
-+++ b/include/tdep-aarch64/libunwind_i.h
-@@ -0,0 +1,294 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2001-2005 Hewlett-Packard Co
-+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#ifndef AARCH64_LIBUNWIND_I_H
-+#define AARCH64_LIBUNWIND_I_H
-+
-+/* Target-dependent definitions that are internal to libunwind but need
-+ to be shared with target-independent code. */
-+
-+#include <stdlib.h>
-+#include <libunwind.h>
-+
-+#include "elf64.h"
-+#include "mempool.h"
-+#include "dwarf.h"
-+
-+typedef struct
-+ {
-+ /* no aarch64-specific fast trace */
-+ }
-+unw_tdep_frame_t;
-+
-+#ifdef UNW_LOCAL_ONLY
-+
-+typedef unw_word_t aarch64_loc_t;
-+
-+#else /* !UNW_LOCAL_ONLY */
-+
-+typedef struct aarch64_loc
-+ {
-+ unw_word_t w0, w1;
-+ }
-+aarch64_loc_t;
-+
-+#endif /* !UNW_LOCAL_ONLY */
-+
-+struct unw_addr_space
-+ {
-+ struct unw_accessors acc;
-+ int big_endian;
-+ unw_caching_policy_t caching_policy;
-+#ifdef HAVE_ATOMIC_OPS_H
-+ AO_t cache_generation;
-+#else
-+ uint32_t cache_generation;
-+#endif
-+ unw_word_t dyn_generation; /* see dyn-common.h */
-+ unw_word_t dyn_info_list_addr; /* (cached) dyn_info_list_addr */
-+ struct dwarf_rs_cache global_cache;
-+ struct unw_debug_frame_list *debug_frames;
-+ };
-+
-+struct cursor
-+ {
-+ struct dwarf_cursor dwarf; /* must be first */
-+ enum
-+ {
-+ AARCH64_SCF_NONE,
-+ AARCH64_SCF_LINUX_RT_SIGFRAME,
-+ }
-+ sigcontext_format;
-+ unw_word_t sigcontext_addr;
-+ unw_word_t sigcontext_sp;
-+ unw_word_t sigcontext_pc;
-+ };
-+
-+#define DWARF_GET_LOC(l) ((l).val)
-+
-+#ifdef UNW_LOCAL_ONLY
-+# define DWARF_NULL_LOC DWARF_LOC (0, 0)
-+# define DWARF_IS_NULL_LOC(l) (DWARF_GET_LOC (l) == 0)
-+# define DWARF_LOC(r, t) ((dwarf_loc_t) { .val = (r) })
-+# define DWARF_IS_REG_LOC(l) 0
-+# define DWARF_REG_LOC(c,r) (DWARF_LOC((unw_word_t) \
-+ tdep_uc_addr((c)->as_arg, (r)), 0))
-+# define DWARF_MEM_LOC(c,m) DWARF_LOC ((m), 0)
-+# define DWARF_FPREG_LOC(c,r) (DWARF_LOC((unw_word_t) \
-+ tdep_uc_addr((c)->as_arg, (r)), 0))
-+
-+static inline int
-+dwarf_getfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t *val)
-+{
-+ if (!DWARF_GET_LOC (loc))
-+ return -1;
-+ *val = *(unw_fpreg_t *) DWARF_GET_LOC (loc);
-+ return 0;
-+}
-+
-+static inline int
-+dwarf_putfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t val)
-+{
-+ if (!DWARF_GET_LOC (loc))
-+ return -1;
-+ *(unw_fpreg_t *) DWARF_GET_LOC (loc) = val;
-+ return 0;
-+}
-+
-+static inline int
-+dwarf_get (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t *val)
-+{
-+ if (!DWARF_GET_LOC (loc))
-+ return -1;
-+ *val = *(unw_word_t *) DWARF_GET_LOC (loc);
-+ return 0;
-+}
-+
-+static inline int
-+dwarf_put (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t val)
-+{
-+ if (!DWARF_GET_LOC (loc))
-+ return -1;
-+ *(unw_word_t *) DWARF_GET_LOC (loc) = val;
-+ return 0;
-+}
-+
-+#else /* !UNW_LOCAL_ONLY */
-+# define DWARF_LOC_TYPE_FP (1 << 0)
-+# define DWARF_LOC_TYPE_REG (1 << 1)
-+# define DWARF_NULL_LOC DWARF_LOC (0, 0)
-+# define DWARF_IS_NULL_LOC(l) \
-+ ({ dwarf_loc_t _l = (l); _l.val == 0 && _l.type == 0; })
-+# define DWARF_LOC(r, t) ((dwarf_loc_t) { .val = (r), .type = (t) })
-+# define DWARF_IS_REG_LOC(l) (((l).type & DWARF_LOC_TYPE_REG) != 0)
-+# define DWARF_IS_FP_LOC(l) (((l).type & DWARF_LOC_TYPE_FP) != 0)
-+# define DWARF_REG_LOC(c,r) DWARF_LOC((r), DWARF_LOC_TYPE_REG)
-+# define DWARF_MEM_LOC(c,m) DWARF_LOC ((m), 0)
-+# define DWARF_FPREG_LOC(c,r) DWARF_LOC((r), (DWARF_LOC_TYPE_REG \
-+ | DWARF_LOC_TYPE_FP))
-+
-+static inline int
-+dwarf_getfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t *val)
-+{
-+ char *valp = (char *) &val;
-+ unw_word_t addr;
-+ int ret;
-+
-+ if (DWARF_IS_NULL_LOC (loc))
-+ return -UNW_EBADREG;
-+
-+ if (DWARF_IS_REG_LOC (loc))
-+ return (*c->as->acc.access_fpreg) (c->as, DWARF_GET_LOC (loc),
-+ val, 0, c->as_arg);
-+
-+ addr = DWARF_GET_LOC (loc);
-+ if ((ret = (*c->as->acc.access_mem) (c->as, addr + 0, (unw_word_t *) valp,
-+ 0, c->as_arg)) < 0)
-+ return ret;
-+
-+ return (*c->as->acc.access_mem) (c->as, addr + 4, (unw_word_t *) valp + 1, 0,
-+ c->as_arg);
-+}
-+
-+static inline int
-+dwarf_putfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t val)
-+{
-+ char *valp = (char *) &val;
-+ unw_word_t addr;
-+ int ret;
-+
-+ if (DWARF_IS_NULL_LOC (loc))
-+ return -UNW_EBADREG;
-+
-+ if (DWARF_IS_REG_LOC (loc))
-+ return (*c->as->acc.access_fpreg) (c->as, DWARF_GET_LOC (loc),
-+ &val, 1, c->as_arg);
-+
-+ addr = DWARF_GET_LOC (loc);
-+ if ((ret = (*c->as->acc.access_mem) (c->as, addr + 0, (unw_word_t *) valp,
-+ 1, c->as_arg)) < 0)
-+ return ret;
-+
-+ return (*c->as->acc.access_mem) (c->as, addr + 4, (unw_word_t *) valp + 1,
-+ 1, c->as_arg);
-+}
-+
-+static inline int
-+dwarf_get (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t *val)
-+{
-+ if (DWARF_IS_NULL_LOC (loc))
-+ return -UNW_EBADREG;
-+
-+ /* If a code-generator were to save a value of type unw_word_t in a
-+ floating-point register, we would have to support this case. I
-+ suppose it could happen with MMX registers, but does it really
-+ happen? */
-+ assert (!DWARF_IS_FP_LOC (loc));
-+
-+ if (DWARF_IS_REG_LOC (loc))
-+ return (*c->as->acc.access_reg) (c->as, DWARF_GET_LOC (loc), val,
-+ 0, c->as_arg);
-+ else
-+ return (*c->as->acc.access_mem) (c->as, DWARF_GET_LOC (loc), val,
-+ 0, c->as_arg);
-+}
-+
-+static inline int
-+dwarf_put (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t val)
-+{
-+ if (DWARF_IS_NULL_LOC (loc))
-+ return -UNW_EBADREG;
-+
-+ /* If a code-generator were to save a value of type unw_word_t in a
-+ floating-point register, we would have to support this case. I
-+ suppose it could happen with MMX registers, but does it really
-+ happen? */
-+ assert (!DWARF_IS_FP_LOC (loc));
-+
-+ if (DWARF_IS_REG_LOC (loc))
-+ return (*c->as->acc.access_reg) (c->as, DWARF_GET_LOC (loc), &val,
-+ 1, c->as_arg);
-+ else
-+ return (*c->as->acc.access_mem) (c->as, DWARF_GET_LOC (loc), &val,
-+ 1, c->as_arg);
-+}
-+
-+#endif /* !UNW_LOCAL_ONLY */
-+
-+
-+
-+#define tdep_getcontext_trace unw_getcontext
-+#define tdep_init_done UNW_OBJ(init_done)
-+#define tdep_init UNW_OBJ(init)
-+/* Platforms that support UNW_INFO_FORMAT_TABLE need to define
-+ tdep_search_unwind_table. */
-+#define tdep_search_unwind_table dwarf_search_unwind_table
-+#define tdep_find_unwind_table dwarf_find_unwind_table
-+#define tdep_uc_addr UNW_OBJ(uc_addr)
-+#define tdep_get_elf_image UNW_ARCH_OBJ(get_elf_image)
-+#define tdep_access_reg UNW_OBJ(access_reg)
-+#define tdep_access_fpreg UNW_OBJ(access_fpreg)
-+#define tdep_fetch_frame(c,ip,n) do {} while(0)
-+#define tdep_cache_frame(c,rs) do {} while(0)
-+#define tdep_reuse_frame(c,rs) do {} while(0)
-+#define tdep_stash_frame(c,rs) do {} while(0)
-+#define tdep_trace(cur,addr,n) (-UNW_ENOINFO)
-+
-+#ifdef UNW_LOCAL_ONLY
-+# define tdep_find_proc_info(c,ip,n) \
-+ dwarf_find_proc_info((c)->as, (ip), &(c)->pi, (n), \
-+ (c)->as_arg)
-+# define tdep_put_unwind_info(as,pi,arg) \
-+ dwarf_put_unwind_info((as), (pi), (arg))
-+#else
-+# define tdep_find_proc_info(c,ip,n) \
-+ (*(c)->as->acc.find_proc_info)((c)->as, (ip), &(c)->pi, (n), \
-+ (c)->as_arg)
-+# define tdep_put_unwind_info(as,pi,arg) \
-+ (*(as)->acc.put_unwind_info)((as), (pi), (arg))
-+#endif
-+
-+#define tdep_get_as(c) ((c)->dwarf.as)
-+#define tdep_get_as_arg(c) ((c)->dwarf.as_arg)
-+#define tdep_get_ip(c) ((c)->dwarf.ip)
-+#define tdep_big_endian(as) ((as)->big_endian)
-+
-+extern int tdep_init_done;
-+
-+extern void tdep_init (void);
-+extern int tdep_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
-+ unw_dyn_info_t *di, unw_proc_info_t *pi,
-+ int need_unwind_info, void *arg);
-+extern void *tdep_uc_addr (unw_tdep_context_t *uc, int reg);
-+extern int tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
-+ unsigned long *segbase, unsigned long *mapoff,
-+ char *path, size_t pathlen);
-+extern int tdep_access_reg (struct cursor *c, unw_regnum_t reg,
-+ unw_word_t *valp, int write);
-+extern int tdep_access_fpreg (struct cursor *c, unw_regnum_t reg,
-+ unw_fpreg_t *valp, int write);
-+
-+#endif /* AARCH64_LIBUNWIND_I_H */
---- a/include/tdep/dwarf-config.h
-+++ b/include/tdep/dwarf-config.h
-@@ -1,7 +1,9 @@
- /* Provide a real file - not a symlink - as it would cause multiarch conflicts
- when multiple different arch releases are installed simultaneously. */
-
--#if defined __arm__
-+#if defined __aarch64__
-+# include "tdep-aarch64/dwarf-config.h"
-+#elif defined __arm__
- # include "tdep-arm/dwarf-config.h"
- #elif defined __hppa__
- # include "tdep-hppa/dwarf-config.h"
---- a/include/tdep/jmpbuf.h
-+++ b/include/tdep/jmpbuf.h
-@@ -3,6 +3,8 @@
-
- #ifndef UNW_REMOTE_ONLY
-
-+#if defined __aarch64__
-+# include "tdep-aarch64/jmpbuf.h"
- #if defined __arm__
- # include "tdep-arm/jmpbuf.h"
- #elif defined __hppa__
---- a/include/tdep/libunwind_i.h.in
-+++ b/include/tdep/libunwind_i.h.in
-@@ -3,7 +3,9 @@
-
- #ifndef UNW_REMOTE_ONLY
-
--#if defined __arm__
-+#if defined __aarch64__
-+# include "tdep-aarch64/libunwind_i.h"
-+#elif defined __arm__
- # include "tdep-arm/libunwind_i.h"
- #elif defined __hppa__
- # include "tdep-hppa/libunwind_i.h"
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -170,6 +170,28 @@ libunwind_elfxx_la_SOURCES = elfxx.c
- noinst_LTLIBRARIES += $(LIBUNWIND_ELF)
- libunwind_la_LIBADD += $(LIBUNWIND_ELF)
-
-+# The list of files that go into libunwind and libunwind-aarch64:
-+noinst_HEADERS += aarch64/init.h aarch64/offsets.h aarch64/unwind_i.h
-+libunwind_la_SOURCES_aarch64_common = $(libunwind_la_SOURCES_common) \
-+ aarch64/is_fpreg.c aarch64/regname.c
-+
-+# The list of files that go into libunwind:
-+libunwind_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
-+ $(libunwind_la_SOURCES_local) \
-+ aarch64/Lcreate_addr_space.c aarch64/Lget_proc_info.c \
-+ aarch64/Lget_save_loc.c aarch64/Lglobal.c aarch64/Linit.c \
-+ aarch64/Linit_local.c aarch64/Linit_remote.c \
-+ aarch64/Lis_signal_frame.c aarch64/Lregs.c aarch64/Lresume.c \
-+ aarch64/Lstep.c
-+
-+libunwind_aarch64_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
-+ $(libunwind_la_SOURCES_generic) \
-+ aarch64/Gcreate_addr_space.c aarch64/Gget_proc_info.c \
-+ aarch64/Gget_save_loc.c aarch64/Gglobal.c aarch64/Ginit.c \
-+ aarch64/Ginit_local.c aarch64/Ginit_remote.c \
-+ aarch64/Gis_signal_frame.c aarch64/Gregs.c aarch64/Gresume.c \
-+ aarch64/Gstep.c
-+
- # The list of files that go into libunwind and libunwind-arm:
- noinst_HEADERS += arm/init.h arm/offsets.h arm/unwind_i.h
- libunwind_la_SOURCES_arm_common = $(libunwind_la_SOURCES_common) \
-@@ -418,6 +440,18 @@ if OS_FREEBSD
- libunwind_coredump_la_SOURCES += coredump/_UCD_access_reg_freebsd.c
- endif
-
-+if ARCH_AARCH64
-+ lib_LTLIBRARIES += libunwind-aarch64.la
-+ libunwind_la_SOURCES = $(libunwind_la_SOURCES_aarch64)
-+ libunwind_aarch64_la_SOURCES = $(libunwind_aarch64_la_SOURCES_aarch64)
-+ libunwind_aarch64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
-+ libunwind_aarch64_la_LIBADD = libunwind-dwarf-generic.la
-+ libunwind_aarch64_la_LIBADD += libunwind-elf64.la
-+if !REMOTE_ONLY
-+ libunwind_aarch64_la_LIBADD += libunwind.la -lc
-+endif
-+ libunwind_setjmp_la_SOURCES += aarch64/siglongjmp.S
-+else
- if ARCH_ARM
- lib_LTLIBRARIES += libunwind-arm.la
- libunwind_la_SOURCES = $(libunwind_la_SOURCES_arm)
-@@ -545,6 +579,7 @@ endif # ARCH_MIPS
- endif # ARCH_HPPA
- endif # ARCH_IA64
- endif # ARCH_ARM
-+endif # ARCH_AARCH64
-
- # libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
- # at the end.
-@@ -567,7 +602,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I
- AM_CCASFLAGS = $(AM_CPPFLAGS)
- noinst_HEADERS += unwind/unwind-internal.h
-
--EXTRA_DIST = $(libunwind_la_SOURCES_arm) \
-+EXTRA_DIST = $(libunwind_la_SOURCES_aarch64) \
-+ $(libunwind_la_SOURCES_arm) \
- $(libunwind_la_SOURCES_hppa) \
- $(libunwind_la_SOURCES_ia64) \
- $(libunwind_la_SOURCES_mips) \
-@@ -579,6 +615,7 @@ EXTRA_DIST = $(libunwind_la_SOURCES_arm)
- $(libunwind_la_SOURCES_common) \
- $(libunwind_la_SOURCES_local) \
- $(libunwind_la_SOURCES_generic) \
-+ $(libunwind_aarch64_la_SOURCES_aarch64) \
- $(libunwind_arm_la_SOURCES_arm) \
- $(libunwind_hppa_la_SOURCES_hppa) \
- $(libunwind_ia64_la_SOURCES_ia64) \
---- /dev/null
-+++ b/src/aarch64/Gcreate_addr_space.c
-@@ -0,0 +1,60 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include <string.h>
-+#include <stdlib.h>
-+
-+#include "unwind_i.h"
-+
-+PROTECTED unw_addr_space_t
-+unw_create_addr_space (unw_accessors_t *a, int byte_order)
-+{
-+#ifdef UNW_LOCAL_ONLY
-+ return NULL;
-+#else
-+ unw_addr_space_t as;
-+
-+ /* AArch64 supports little-endian and big-endian. */
-+ if (byte_order != 0 && byte_order != __LITTLE_ENDIAN
-+ && byte_order != __BIG_ENDIAN)
-+ return NULL;
-+
-+ as = malloc (sizeof (*as));
-+ if (!as)
-+ return NULL;
-+
-+ memset (as, 0, sizeof (*as));
-+
-+ as->acc = *a;
-+
-+ /* Default to little-endian for AArch64. */
-+ if (byte_order == 0 || byte_order == __LITTLE_ENDIAN)
-+ as->big_endian = 0;
-+ else
-+ as->big_endian = 1;
-+
-+ return as;
-+#endif
-+}
---- /dev/null
-+++ b/src/aarch64/Gget_proc_info.c
-@@ -0,0 +1,39 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+PROTECTED int
-+unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+ int ret;
-+
-+ ret = dwarf_make_proc_info (&c->dwarf);
-+ if (ret < 0)
-+ return ret;
-+
-+ *pi = c->dwarf.pi;
-+ return 0;
-+}
---- /dev/null
-+++ b/src/aarch64/Gget_save_loc.c
-@@ -0,0 +1,100 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+PROTECTED int
-+unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+ dwarf_loc_t loc;
-+
-+ switch (reg)
-+ {
-+ case UNW_AARCH64_X0:
-+ case UNW_AARCH64_X1:
-+ case UNW_AARCH64_X2:
-+ case UNW_AARCH64_X3:
-+ case UNW_AARCH64_X4:
-+ case UNW_AARCH64_X5:
-+ case UNW_AARCH64_X6:
-+ case UNW_AARCH64_X7:
-+ case UNW_AARCH64_X8:
-+ case UNW_AARCH64_X9:
-+ case UNW_AARCH64_X10:
-+ case UNW_AARCH64_X11:
-+ case UNW_AARCH64_X12:
-+ case UNW_AARCH64_X13:
-+ case UNW_AARCH64_X14:
-+ case UNW_AARCH64_X15:
-+ case UNW_AARCH64_X16:
-+ case UNW_AARCH64_X17:
-+ case UNW_AARCH64_X18:
-+ case UNW_AARCH64_X19:
-+ case UNW_AARCH64_X20:
-+ case UNW_AARCH64_X21:
-+ case UNW_AARCH64_X22:
-+ case UNW_AARCH64_X23:
-+ case UNW_AARCH64_X24:
-+ case UNW_AARCH64_X25:
-+ case UNW_AARCH64_X26:
-+ case UNW_AARCH64_X27:
-+ case UNW_AARCH64_X28:
-+ case UNW_AARCH64_X29:
-+ case UNW_AARCH64_X30:
-+ case UNW_AARCH64_SP:
-+ case UNW_AARCH64_PC:
-+ case UNW_AARCH64_PSTATE:
-+ loc = c->dwarf.loc[reg];
-+ break;
-+
-+ default:
-+ loc = DWARF_NULL_LOC; /* default to "not saved" */
-+ break;
-+ }
-+
-+ memset (sloc, 0, sizeof (*sloc));
-+
-+ if (DWARF_IS_NULL_LOC (loc))
-+ {
-+ sloc->type = UNW_SLT_NONE;
-+ return 0;
-+ }
-+
-+#if !defined(UNW_LOCAL_ONLY)
-+ if (DWARF_IS_REG_LOC (loc))
-+ {
-+ sloc->type = UNW_SLT_REG;
-+ sloc->u.regnum = DWARF_GET_LOC (loc);
-+ }
-+ else
-+#endif
-+ {
-+ sloc->type = UNW_SLT_MEMORY;
-+ sloc->u.addr = DWARF_GET_LOC (loc);
-+ }
-+ return 0;
-+}
---- /dev/null
-+++ b/src/aarch64/Gglobal.c
-@@ -0,0 +1,57 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+#include "dwarf_i.h"
-+
-+HIDDEN define_lock (aarch64_lock);
-+HIDDEN int tdep_init_done;
-+
-+HIDDEN void
-+tdep_init (void)
-+{
-+ intrmask_t saved_mask;
-+
-+ sigfillset (&unwi_full_mask);
-+
-+ lock_acquire (&aarch64_lock, saved_mask);
-+ {
-+ if (tdep_init_done)
-+ /* another thread else beat us to it... */
-+ goto out;
-+
-+ mi_init ();
-+
-+ dwarf_init ();
-+
-+#ifndef UNW_REMOTE_ONLY
-+ aarch64_local_addr_space_init ();
-+#endif
-+ tdep_init_done = 1; /* signal that we're initialized... */
-+ }
-+ out:
-+ lock_release (&aarch64_lock, saved_mask);
-+}
---- /dev/null
-+++ b/src/aarch64/Ginit.c
-@@ -0,0 +1,187 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+#include "unwind_i.h"
-+
-+#ifdef UNW_REMOTE_ONLY
-+
-+/* unw_local_addr_space is a NULL pointer in this case. */
-+PROTECTED unw_addr_space_t unw_local_addr_space;
-+
-+#else /* !UNW_REMOTE_ONLY */
-+
-+static struct unw_addr_space local_addr_space;
-+
-+PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
-+
-+static inline void *
-+uc_addr (ucontext_t *uc, int reg)
-+{
-+ if (reg >= UNW_AARCH64_X0 && reg <= UNW_AARCH64_V31)
-+ return &uc->uc_mcontext.regs[reg];
-+ else
-+ return NULL;
-+}
-+
-+# ifdef UNW_LOCAL_ONLY
-+
-+HIDDEN void *
-+tdep_uc_addr (ucontext_t *uc, int reg)
-+{
-+ return uc_addr (uc, reg);
-+}
-+
-+# endif /* UNW_LOCAL_ONLY */
-+
-+HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-+
-+/* XXX fix me: there is currently no way to locate the dyn-info list
-+ by a remote unwinder. On ia64, this is done via a special
-+ unwind-table entry. Perhaps something similar can be done with
-+ DWARF2 unwind info. */
-+
-+static void
-+put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
-+{
-+ /* it's a no-op */
-+}
-+
-+static int
-+get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
-+ void *arg)
-+{
-+ *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
-+ return 0;
-+}
-+
-+static int
-+access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write,
-+ void *arg)
-+{
-+ if (write)
-+ {
-+ Debug (16, "mem[%lx] <- %lx\n", addr, *val);
-+ *(unw_word_t *) addr = *val;
-+ }
-+ else
-+ {
-+ *val = *(unw_word_t *) addr;
-+ Debug (16, "mem[%lx] -> %lx\n", addr, *val);
-+ }
-+ return 0;
-+}
-+
-+static int
-+access_reg (unw_addr_space_t as, unw_regnum_t reg, unw_word_t *val, int write,
-+ void *arg)
-+{
-+ unw_word_t *addr;
-+ ucontext_t *uc = arg;
-+
-+ if (unw_is_fpreg (reg))
-+ goto badreg;
-+
-+ if (!(addr = uc_addr (uc, reg)))
-+ goto badreg;
-+
-+ if (write)
-+ {
-+ *(unw_word_t *) addr = *val;
-+ Debug (12, "%s <- %lx\n", unw_regname (reg), *val);
-+ }
-+ else
-+ {
-+ *val = *(unw_word_t *) addr;
-+ Debug (12, "%s -> %lx\n", unw_regname (reg), *val);
-+ }
-+ return 0;
-+
-+ badreg:
-+ Debug (1, "bad register number %u\n", reg);
-+ return -UNW_EBADREG;
-+}
-+
-+static int
-+access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val,
-+ int write, void *arg)
-+{
-+ ucontext_t *uc = arg;
-+ unw_fpreg_t *addr;
-+
-+ if (!unw_is_fpreg (reg))
-+ goto badreg;
-+
-+ if (!(addr = uc_addr (uc, reg)))
-+ goto badreg;
-+
-+ if (write)
-+ {
-+ Debug (12, "%s <- %08lx.%08lx.%08lx\n", unw_regname (reg),
-+ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
-+ *(unw_fpreg_t *) addr = *val;
-+ }
-+ else
-+ {
-+ *val = *(unw_fpreg_t *) addr;
-+ Debug (12, "%s -> %08lx.%08lx.%08lx\n", unw_regname (reg),
-+ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
-+ }
-+ return 0;
-+
-+ badreg:
-+ Debug (1, "bad register number %u\n", reg);
-+ /* attempt to access a non-preserved register */
-+ return -UNW_EBADREG;
-+}
-+
-+static int
-+get_static_proc_name (unw_addr_space_t as, unw_word_t ip,
-+ char *buf, size_t buf_len, unw_word_t *offp,
-+ void *arg)
-+{
-+ return _Uelf64_get_proc_name (as, getpid (), ip, buf, buf_len, offp);
-+}
-+
-+HIDDEN void
-+aarch64_local_addr_space_init (void)
-+{
-+ memset (&local_addr_space, 0, sizeof (local_addr_space));
-+ local_addr_space.caching_policy = UNW_CACHE_GLOBAL;
-+ local_addr_space.acc.find_proc_info = dwarf_find_proc_info;
-+ local_addr_space.acc.put_unwind_info = put_unwind_info;
-+ local_addr_space.acc.get_dyn_info_list_addr = get_dyn_info_list_addr;
-+ local_addr_space.acc.access_mem = access_mem;
-+ local_addr_space.acc.access_reg = access_reg;
-+ local_addr_space.acc.access_fpreg = access_fpreg;
-+ local_addr_space.acc.resume = aarch64_local_resume;
-+ local_addr_space.acc.get_proc_name = get_static_proc_name;
-+ unw_flush_cache (&local_addr_space, 0, 0);
-+}
-+
-+#endif /* !UNW_REMOTE_ONLY */
---- /dev/null
-+++ b/src/aarch64/Ginit_local.c
-@@ -0,0 +1,55 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2011-2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+#include "init.h"
-+
-+#ifdef UNW_REMOTE_ONLY
-+
-+PROTECTED int
-+unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
-+{
-+ return -UNW_EINVAL;
-+}
-+
-+#else /* !UNW_REMOTE_ONLY */
-+
-+PROTECTED int
-+unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+
-+ if (!tdep_init_done)
-+ tdep_init ();
-+
-+ Debug (1, "(cursor=%p)\n", c);
-+
-+ c->dwarf.as = unw_local_addr_space;
-+ c->dwarf.as_arg = uc;
-+
-+ return common_init (c, 1);
-+}
-+
-+#endif /* !UNW_REMOTE_ONLY */
---- /dev/null
-+++ b/src/aarch64/Ginit_remote.c
-@@ -0,0 +1,45 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "init.h"
-+#include "unwind_i.h"
-+
-+PROTECTED int
-+unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
-+{
-+#ifdef UNW_LOCAL_ONLY
-+ return -UNW_EINVAL;
-+#else /* !UNW_LOCAL_ONLY */
-+ struct cursor *c = (struct cursor *) cursor;
-+
-+ if (!tdep_init_done)
-+ tdep_init ();
-+
-+ Debug (1, "(cursor=%p)\n", c);
-+
-+ c->dwarf.as = as;
-+ c->dwarf.as_arg = as_arg;
-+ return common_init (c, 0);
-+#endif /* !UNW_LOCAL_ONLY */
-+}
---- /dev/null
-+++ b/src/aarch64/Gis_signal_frame.c
-@@ -0,0 +1,64 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+/* The restorer stub will always have the form:
-+
-+ d2801168 movz x8, #0x8b
-+ d4000001 svc #0x0
-+*/
-+
-+PROTECTED int
-+unw_is_signal_frame (unw_cursor_t *cursor)
-+{
-+#ifdef __linux__
-+ struct cursor *c = (struct cursor *) cursor;
-+ unw_word_t w0, ip;
-+ unw_addr_space_t as;
-+ unw_accessors_t *a;
-+ void *arg;
-+ int ret;
-+
-+ as = c->dwarf.as;
-+ a = unw_get_accessors (as);
-+ arg = c->dwarf.as_arg;
-+
-+ ip = c->dwarf.ip;
-+
-+ ret = (*a->access_mem) (as, ip, &w0, 0, arg);
-+ if (ret < 0)
-+ return ret;
-+
-+ /* FIXME: distinguish 32bit insn vs 64bit registers. */
-+ if (w0 != 0xd4000001d2801168)
-+ return 0;
-+
-+ return 1;
-+
-+#else
-+ return -UNW_ENOINFO;
-+#endif
-+}
---- /dev/null
-+++ b/src/aarch64/Gregs.c
-@@ -0,0 +1,113 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+HIDDEN int
-+tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
-+ int write)
-+{
-+ dwarf_loc_t loc = DWARF_NULL_LOC;
-+ unsigned int mask;
-+
-+ switch (reg)
-+ {
-+ case UNW_AARCH64_X0:
-+ case UNW_AARCH64_X1:
-+ case UNW_AARCH64_X2:
-+ case UNW_AARCH64_X3:
-+ mask = 1 << reg;
-+ if (write)
-+ {
-+ c->dwarf.eh_args[reg] = *valp;
-+ c->dwarf.eh_valid_mask |= mask;
-+ return 0;
-+ }
-+ else if ((c->dwarf.eh_valid_mask & mask) != 0)
-+ {
-+ *valp = c->dwarf.eh_args[reg];
-+ return 0;
-+ }
-+ else
-+ loc = c->dwarf.loc[reg];
-+ break;
-+
-+ case UNW_AARCH64_X4:
-+ case UNW_AARCH64_X5:
-+ case UNW_AARCH64_X6:
-+ case UNW_AARCH64_X7:
-+ case UNW_AARCH64_X8:
-+ case UNW_AARCH64_X9:
-+ case UNW_AARCH64_X10:
-+ case UNW_AARCH64_X11:
-+ case UNW_AARCH64_X12:
-+ case UNW_AARCH64_X13:
-+ case UNW_AARCH64_X14:
-+ case UNW_AARCH64_X15:
-+ case UNW_AARCH64_X16:
-+ case UNW_AARCH64_X17:
-+ case UNW_AARCH64_X18:
-+ case UNW_AARCH64_X19:
-+ case UNW_AARCH64_X20:
-+ case UNW_AARCH64_X21:
-+ case UNW_AARCH64_X22:
-+ case UNW_AARCH64_X23:
-+ case UNW_AARCH64_X24:
-+ case UNW_AARCH64_X25:
-+ case UNW_AARCH64_X26:
-+ case UNW_AARCH64_X27:
-+ case UNW_AARCH64_X28:
-+ case UNW_AARCH64_X29:
-+ case UNW_AARCH64_X30:
-+ case UNW_AARCH64_PC:
-+ case UNW_AARCH64_PSTATE:
-+ loc = c->dwarf.loc[reg];
-+ break;
-+
-+ case UNW_AARCH64_SP:
-+ if (write)
-+ return -UNW_EREADONLYREG;
-+ *valp = c->dwarf.cfa;
-+ return 0;
-+
-+ default:
-+ Debug (1, "bad register number %u\n", reg);
-+ return -UNW_EBADREG;
-+ }
-+
-+ if (write)
-+ return dwarf_put (&c->dwarf, loc, *valp);
-+ else
-+ return dwarf_get (&c->dwarf, loc, valp);
-+}
-+
-+HIDDEN int
-+tdep_access_fpreg (struct cursor *c, unw_regnum_t reg, unw_fpreg_t *valp,
-+ int write)
-+{
-+ Debug (1, "bad register number %u\n", reg);
-+ return -UNW_EBADREG;
-+}
---- /dev/null
-+++ b/src/aarch64/Gresume.c
-@@ -0,0 +1,177 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2011-2013 Linaro Limited
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+#include "offsets.h"
-+
-+#ifndef UNW_REMOTE_ONLY
-+
-+HIDDEN inline int
-+aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
-+{
-+#ifdef __linux__
-+ struct cursor *c = (struct cursor *) cursor;
-+ unw_tdep_context_t *uc = c->dwarf.as_arg;
-+
-+ if (c->sigcontext_format == AARCH64_SCF_NONE)
-+ {
-+ /* Since there are no signals involved here we restore the non scratch
-+ registers only. */
-+ unsigned long regs[11];
-+ regs[0] = uc->uc_mcontext.regs[19];
-+ regs[1] = uc->uc_mcontext.regs[20];
-+ regs[2] = uc->uc_mcontext.regs[21];
-+ regs[3] = uc->uc_mcontext.regs[22];
-+ regs[4] = uc->uc_mcontext.regs[23];
-+ regs[5] = uc->uc_mcontext.regs[24];
-+ regs[6] = uc->uc_mcontext.regs[25];
-+ regs[7] = uc->uc_mcontext.regs[26];
-+ regs[8] = uc->uc_mcontext.regs[27];
-+ regs[9] = uc->uc_mcontext.regs[28];
-+ regs[10] = uc->uc_mcontext.regs[30]; /* LR */
-+ unsigned long sp = uc->uc_mcontext.sp;
-+
-+ struct regs_overlay {
-+ char x[sizeof(regs)];
-+ };
-+
-+ asm volatile (
-+ "ldp x19, x20, [%0]\n"
-+ "ldp x21, x22, [%0,16]\n"
-+ "ldp x23, x24, [%0,32]\n"
-+ "ldp x25, x26, [%0,48]\n"
-+ "ldp x27, x28, [%0,64]\n"
-+ "ldr x30, [%0,80]\n"
-+ "mov sp, %1\n"
-+ "ret \n"
-+ :
-+ : "r" (regs),
-+ "r" (sp),
-+ "m" (*(struct regs_overlay *)regs)
-+ );
-+ }
-+ else
-+ {
-+ struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr;
-+
-+ if (c->dwarf.eh_valid_mask & 0x1) sc->regs[0] = c->dwarf.eh_args[0];
-+ if (c->dwarf.eh_valid_mask & 0x2) sc->regs[1] = c->dwarf.eh_args[1];
-+ if (c->dwarf.eh_valid_mask & 0x4) sc->regs[2] = c->dwarf.eh_args[2];
-+ if (c->dwarf.eh_valid_mask & 0x8) sc->regs[3] = c->dwarf.eh_args[3];
-+
-+ sc->regs[4] = uc->uc_mcontext.regs[4];
-+ sc->regs[5] = uc->uc_mcontext.regs[5];
-+ sc->regs[6] = uc->uc_mcontext.regs[6];
-+ sc->regs[7] = uc->uc_mcontext.regs[7];
-+ sc->regs[8] = uc->uc_mcontext.regs[8];
-+ sc->regs[9] = uc->uc_mcontext.regs[9];
-+ sc->regs[10] = uc->uc_mcontext.regs[10];
-+ sc->regs[11] = uc->uc_mcontext.regs[11];
-+ sc->regs[12] = uc->uc_mcontext.regs[12];
-+ sc->regs[13] = uc->uc_mcontext.regs[13];
-+ sc->regs[14] = uc->uc_mcontext.regs[14];
-+ sc->regs[15] = uc->uc_mcontext.regs[15];
-+ sc->regs[16] = uc->uc_mcontext.regs[16];
-+ sc->regs[17] = uc->uc_mcontext.regs[17];
-+ sc->regs[18] = uc->uc_mcontext.regs[18];
-+ sc->regs[19] = uc->uc_mcontext.regs[19];
-+ sc->regs[20] = uc->uc_mcontext.regs[20];
-+ sc->regs[21] = uc->uc_mcontext.regs[21];
-+ sc->regs[22] = uc->uc_mcontext.regs[22];
-+ sc->regs[23] = uc->uc_mcontext.regs[23];
-+ sc->regs[24] = uc->uc_mcontext.regs[24];
-+ sc->regs[25] = uc->uc_mcontext.regs[25];
-+ sc->regs[26] = uc->uc_mcontext.regs[26];
-+ sc->regs[27] = uc->uc_mcontext.regs[27];
-+ sc->regs[28] = uc->uc_mcontext.regs[28];
-+ sc->regs[29] = uc->uc_mcontext.regs[29];
-+ sc->regs[30] = uc->uc_mcontext.regs[30];
-+ sc->sp = uc->uc_mcontext.sp;
-+ sc->pc = uc->uc_mcontext.pc;
-+ sc->pstate = uc->uc_mcontext.pstate;
-+
-+ asm volatile (
-+ "mov sp, %0\n"
-+ "ret %1\n"
-+ : : "r" (c->sigcontext_sp), "r" (c->sigcontext_pc)
-+ );
-+ }
-+ unreachable();
-+#else
-+ printf ("%s: implement me\n", __FUNCTION__);
-+#endif
-+ return -UNW_EINVAL;
-+}
-+
-+#endif /* !UNW_REMOTE_ONLY */
-+
-+static inline void
-+establish_machine_state (struct cursor *c)
-+{
-+ unw_addr_space_t as = c->dwarf.as;
-+ void *arg = c->dwarf.as_arg;
-+ unw_fpreg_t fpval;
-+ unw_word_t val;
-+ int reg;
-+
-+ Debug (8, "copying out cursor state\n");
-+
-+ for (reg = 0; reg <= UNW_AARCH64_PSTATE; ++reg)
-+ {
-+ Debug (16, "copying %s %d\n", unw_regname (reg), reg);
-+ if (unw_is_fpreg (reg))
-+ {
-+ if (tdep_access_fpreg (c, reg, &fpval, 0) >= 0)
-+ as->acc.access_fpreg (as, reg, &fpval, 1, arg);
-+ }
-+ else
-+ {
-+ if (tdep_access_reg (c, reg, &val, 0) >= 0)
-+ as->acc.access_reg (as, reg, &val, 1, arg);
-+ }
-+ }
-+}
-+
-+PROTECTED int
-+unw_resume (unw_cursor_t *cursor)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+
-+ Debug (1, "(cursor=%p)\n", c);
-+
-+ if (!c->dwarf.ip)
-+ {
-+ /* This can happen easily when the frame-chain gets truncated
-+ due to bad or missing unwind-info. */
-+ Debug (1, "refusing to resume execution at address 0\n");
-+ return -UNW_EINVAL;
-+ }
-+
-+ establish_machine_state (c);
-+
-+ return (*c->dwarf.as->acc.resume) (c->dwarf.as, (unw_cursor_t *) c,
-+ c->dwarf.as_arg);
-+}
---- /dev/null
-+++ b/src/aarch64/Gstep.c
-@@ -0,0 +1,129 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2011-2013 Linaro Limited
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+#include "offsets.h"
-+
-+PROTECTED int
-+unw_handle_signal_frame (unw_cursor_t *cursor)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+ int ret;
-+ unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa;
-+ struct dwarf_loc sp_loc = DWARF_LOC (sp_addr, 0);
-+
-+ if ((ret = dwarf_get (&c->dwarf, sp_loc, &sp)) < 0)
-+ return -UNW_EUNSPEC;
-+
-+ ret = unw_is_signal_frame (cursor);
-+ Debug(1, "unw_is_signal_frame()=%d\n", ret);
-+
-+ /* Save the SP and PC to be able to return execution at this point
-+ later in time (unw_resume). */
-+ c->sigcontext_sp = c->dwarf.cfa;
-+ c->sigcontext_pc = c->dwarf.ip;
-+
-+ if (ret)
-+ {
-+ c->sigcontext_format = AARCH64_SCF_LINUX_RT_SIGFRAME;
-+ sc_addr = sp_addr + sizeof (siginfo_t) + LINUX_UC_MCONTEXT_OFF;
-+ }
-+ else
-+ return -UNW_EUNSPEC;
-+
-+ c->sigcontext_addr = sc_addr;
-+
-+ /* Update the dwarf cursor.
-+ Set the location of the registers to the corresponding addresses of the
-+ uc_mcontext / sigcontext structure contents. */
-+ c->dwarf.loc[UNW_AARCH64_X0] = DWARF_LOC (sc_addr + LINUX_SC_X0_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X1] = DWARF_LOC (sc_addr + LINUX_SC_X1_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X2] = DWARF_LOC (sc_addr + LINUX_SC_X2_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X3] = DWARF_LOC (sc_addr + LINUX_SC_X3_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X4] = DWARF_LOC (sc_addr + LINUX_SC_X4_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X5] = DWARF_LOC (sc_addr + LINUX_SC_X5_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X6] = DWARF_LOC (sc_addr + LINUX_SC_X6_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X7] = DWARF_LOC (sc_addr + LINUX_SC_X7_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X8] = DWARF_LOC (sc_addr + LINUX_SC_X8_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X9] = DWARF_LOC (sc_addr + LINUX_SC_X9_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_LOC (sc_addr + LINUX_SC_X10_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_LOC (sc_addr + LINUX_SC_X11_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_LOC (sc_addr + LINUX_SC_X12_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_LOC (sc_addr + LINUX_SC_X13_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_LOC (sc_addr + LINUX_SC_X14_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_LOC (sc_addr + LINUX_SC_X15_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_LOC (sc_addr + LINUX_SC_X16_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_LOC (sc_addr + LINUX_SC_X17_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_LOC (sc_addr + LINUX_SC_X18_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_LOC (sc_addr + LINUX_SC_X19_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_LOC (sc_addr + LINUX_SC_X20_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_LOC (sc_addr + LINUX_SC_X21_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_LOC (sc_addr + LINUX_SC_X22_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_LOC (sc_addr + LINUX_SC_X23_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_LOC (sc_addr + LINUX_SC_X24_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_LOC (sc_addr + LINUX_SC_X25_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_LOC (sc_addr + LINUX_SC_X26_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_LOC (sc_addr + LINUX_SC_X27_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_LOC (sc_addr + LINUX_SC_X28_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_LOC (sc_addr + LINUX_SC_X29_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_LOC (sc_addr + LINUX_SC_X30_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_SP] = DWARF_LOC (sc_addr + LINUX_SC_SP_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_PC] = DWARF_LOC (sc_addr + LINUX_SC_PC_OFF, 0);
-+ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_LOC (sc_addr + LINUX_SC_PSTATE_OFF, 0);
-+
-+ /* Set SP/CFA and PC/IP. */
-+ dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_SP], &c->dwarf.cfa);
-+ dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_PC], &c->dwarf.ip);
-+
-+ c->dwarf.pi_valid = 0;
-+
-+ return 1;
-+}
-+
-+PROTECTED int
-+unw_step (unw_cursor_t *cursor)
-+{
-+ struct cursor *c = (struct cursor *) cursor;
-+ int ret;
-+
-+ Debug (1, "(cursor=%p, ip=0x%016lx, cfa=0x%016lx))\n",
-+ c, c->dwarf.ip, c->dwarf.cfa);
-+
-+ /* Check if this is a signal frame. */
-+ if (unw_is_signal_frame (cursor))
-+ return unw_handle_signal_frame (cursor);
-+
-+ ret = dwarf_step (&c->dwarf);
-+ Debug(1, "dwarf_step()=%d\n", ret);
-+
-+ if (unlikely (ret == -UNW_ESTOPUNWIND))
-+ return ret;
-+
-+ if (unlikely (ret < 0))
-+ return 0;
-+
-+ return (c->dwarf.ip == 0) ? 0 : 1;
-+}
---- /dev/null
-+++ b/src/aarch64/Lcreate_addr_space.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gcreate_addr_space.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lget_proc_info.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gget_proc_info.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lget_save_loc.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gget_save_loc.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lglobal.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gglobal.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Linit.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Ginit.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Linit_local.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Ginit_local.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Linit_remote.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Ginit_remote.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lis_signal_frame.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gis_signal_frame.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lregs.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gregs.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lresume.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gresume.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/Lstep.c
-@@ -0,0 +1,5 @@
-+#define UNW_LOCAL_ONLY
-+#include <libunwind.h>
-+#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
-+#include "Gstep.c"
-+#endif
---- /dev/null
-+++ b/src/aarch64/gen-offsets.c
-@@ -0,0 +1,68 @@
-+#include <stdio.h>
-+#include <stddef.h>
-+#include <ucontext.h>
-+#include <asm/sigcontext.h>
-+
-+#define UC(N,X) \
-+ printf ("#define LINUX_UC_" N "_OFF\t0x%X\n", offsetof (ucontext_t, X))
-+
-+#define SC(N,X) \
-+ printf ("#define LINUX_SC_" N "_OFF\t0x%X\n", offsetof (struct sigcontext, X))
-+
-+int
-+main (void)
-+{
-+ printf (
-+"/* Linux-specific definitions: */\n\n"
-+
-+"/* Define various structure offsets to simplify cross-compilation. */\n\n"
-+
-+"/* Offsets for AArch64 Linux \"ucontext_t\": */\n\n");
-+
-+ UC ("FLAGS", uc_flags);
-+ UC ("LINK", uc_link);
-+ UC ("STACK", uc_stack);
-+ UC ("MCONTEXT", uc_mcontext);
-+ UC ("SIGMASK", uc_sigmask);
-+
-+ printf ("\n/* Offsets for AArch64 Linux \"struct sigcontext\": */\n\n");
-+
-+ SC ("R0", regs[0]);
-+ SC ("R1", regs[1]);
-+ SC ("R2", regs[2]);
-+ SC ("R3", regs[3]);
-+ SC ("R4", regs[4]);
-+ SC ("R5", regs[5]);
-+ SC ("R6", regs[6]);
-+ SC ("R7", regs[7]);
-+ SC ("R8", regs[8]);
-+ SC ("R9", regs[9]);
-+ SC ("R10", regs[10]);
-+ SC ("R11", regs[11]);
-+ SC ("R12", regs[12]);
-+ SC ("R13", regs[13]);
-+ SC ("R14", regs[14]);
-+ SC ("R15", regs[15]);
-+ SC ("R16", regs[16]);
-+ SC ("R17", regs[17]);
-+ SC ("R18", regs[18]);
-+ SC ("R19", regs[19]);
-+ SC ("R20", regs[20]);
-+ SC ("R21", regs[21]);
-+ SC ("R22", regs[22]);
-+ SC ("R23", regs[23]);
-+ SC ("R24", regs[24]);
-+ SC ("R25", regs[25]);
-+ SC ("R26", regs[26]);
-+ SC ("R27", regs[27]);
-+ SC ("R28", regs[28]);
-+ SC ("R29", regs[29]);
-+ SC ("R30", regs[30]);
-+ SC ("R31", regs[31]);
-+
-+ SC ("PC", pc);
-+ SC ("SP", sp);
-+ SC ("Fault", fault_address);
-+ SC ("state", pstate);
-+ return 0;
-+}
---- /dev/null
-+++ b/src/aarch64/init.h
-@@ -0,0 +1,127 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+static inline int
-+common_init (struct cursor *c, unsigned use_prev_instr)
-+{
-+ int ret, i;
-+
-+ c->dwarf.loc[UNW_AARCH64_X0] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X0);
-+ c->dwarf.loc[UNW_AARCH64_X1] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X1);
-+ c->dwarf.loc[UNW_AARCH64_X2] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X2);
-+ c->dwarf.loc[UNW_AARCH64_X3] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X3);
-+ c->dwarf.loc[UNW_AARCH64_X4] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X4);
-+ c->dwarf.loc[UNW_AARCH64_X5] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X5);
-+ c->dwarf.loc[UNW_AARCH64_X6] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X6);
-+ c->dwarf.loc[UNW_AARCH64_X7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X7);
-+ c->dwarf.loc[UNW_AARCH64_X8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X8);
-+ c->dwarf.loc[UNW_AARCH64_X9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X9);
-+ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X10);
-+ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X11);
-+ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X12);
-+ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X13);
-+ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X14);
-+ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X15);
-+ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X16);
-+ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X17);
-+ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X18);
-+ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X19);
-+ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X20);
-+ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X21);
-+ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X22);
-+ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X23);
-+ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X24);
-+ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X25);
-+ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X26);
-+ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X27);
-+ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X28);
-+ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X29);
-+ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X30);
-+ c->dwarf.loc[UNW_AARCH64_SP] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_SP);
-+ c->dwarf.loc[UNW_AARCH64_PC] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_PC);
-+ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_REG_LOC (&c->dwarf,
-+ UNW_AARCH64_PSTATE);
-+ c->dwarf.loc[UNW_AARCH64_V0] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V0);
-+ c->dwarf.loc[UNW_AARCH64_V1] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V1);
-+ c->dwarf.loc[UNW_AARCH64_V2] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V2);
-+ c->dwarf.loc[UNW_AARCH64_V3] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V3);
-+ c->dwarf.loc[UNW_AARCH64_V4] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V4);
-+ c->dwarf.loc[UNW_AARCH64_V5] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V5);
-+ c->dwarf.loc[UNW_AARCH64_V6] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V6);
-+ c->dwarf.loc[UNW_AARCH64_V7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V7);
-+ c->dwarf.loc[UNW_AARCH64_V8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V8);
-+ c->dwarf.loc[UNW_AARCH64_V9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V9);
-+ c->dwarf.loc[UNW_AARCH64_V10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V10);
-+ c->dwarf.loc[UNW_AARCH64_V11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V11);
-+ c->dwarf.loc[UNW_AARCH64_V12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V12);
-+ c->dwarf.loc[UNW_AARCH64_V13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V13);
-+ c->dwarf.loc[UNW_AARCH64_V14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V14);
-+ c->dwarf.loc[UNW_AARCH64_V15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V15);
-+ c->dwarf.loc[UNW_AARCH64_V16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V16);
-+ c->dwarf.loc[UNW_AARCH64_V17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V17);
-+ c->dwarf.loc[UNW_AARCH64_V18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V18);
-+ c->dwarf.loc[UNW_AARCH64_V19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V19);
-+ c->dwarf.loc[UNW_AARCH64_V20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V20);
-+ c->dwarf.loc[UNW_AARCH64_V21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V21);
-+ c->dwarf.loc[UNW_AARCH64_V22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V22);
-+ c->dwarf.loc[UNW_AARCH64_V23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V23);
-+ c->dwarf.loc[UNW_AARCH64_V24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V24);
-+ c->dwarf.loc[UNW_AARCH64_V25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V25);
-+ c->dwarf.loc[UNW_AARCH64_V26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V26);
-+ c->dwarf.loc[UNW_AARCH64_V27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V27);
-+ c->dwarf.loc[UNW_AARCH64_V28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V28);
-+ c->dwarf.loc[UNW_AARCH64_V29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V29);
-+ c->dwarf.loc[UNW_AARCH64_V30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V30);
-+ c->dwarf.loc[UNW_AARCH64_V31] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V31);
-+
-+ for (i = UNW_AARCH64_PSTATE + 1; i < UNW_AARCH64_V0; ++i)
-+ c->dwarf.loc[i] = DWARF_NULL_LOC;
-+
-+ ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_PC], &c->dwarf.ip);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_SP], &c->dwarf.cfa);
-+ if (ret < 0)
-+ return ret;
-+
-+ c->sigcontext_format = AARCH64_SCF_NONE;
-+ c->sigcontext_addr = 0;
-+ c->sigcontext_sp = 0;
-+ c->sigcontext_pc = 0;
-+
-+ c->dwarf.args_size = 0;
-+ c->dwarf.ret_addr_column = 0;
-+ c->dwarf.stash_frames = 0;
-+ c->dwarf.use_prev_instr = use_prev_instr;
-+ c->dwarf.pi_valid = 0;
-+ c->dwarf.pi_is_dynamic = 0;
-+ c->dwarf.hint = 0;
-+ c->dwarf.prev_rs = 0;
-+
-+ return 0;
-+}
---- /dev/null
-+++ b/src/aarch64/is_fpreg.c
-@@ -0,0 +1,32 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "libunwind_i.h"
-+
-+PROTECTED int
-+unw_is_fpreg (int regnum)
-+{
-+ return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
-+}
---- /dev/null
-+++ b/src/aarch64/offsets.h
-@@ -0,0 +1,49 @@
-+/* Linux-specific definitions: */
-+
-+/* Define various structure offsets to simplify cross-compilation. */
-+
-+/* Offsets for AArch64 Linux "ucontext_t": */
-+
-+#define LINUX_UC_FLAGS_OFF 0x0
-+#define LINUX_UC_LINK_OFF 0x8
-+#define LINUX_UC_STACK_OFF 0x10
-+#define LINUX_UC_SIGMASK_OFF 0x28
-+#define LINUX_UC_MCONTEXT_OFF 0xb0
-+
-+/* Offsets for AArch64 Linux "struct sigcontext": */
-+
-+#define LINUX_SC_FAULTADDRESS_OFF 0x00
-+#define LINUX_SC_X0_OFF 0x008
-+#define LINUX_SC_X1_OFF 0x010
-+#define LINUX_SC_X2_OFF 0x018
-+#define LINUX_SC_X3_OFF 0x020
-+#define LINUX_SC_X4_OFF 0x028
-+#define LINUX_SC_X5_OFF 0x030
-+#define LINUX_SC_X6_OFF 0x038
-+#define LINUX_SC_X7_OFF 0x040
-+#define LINUX_SC_X8_OFF 0x048
-+#define LINUX_SC_X9_OFF 0x050
-+#define LINUX_SC_X10_OFF 0x058
-+#define LINUX_SC_X11_OFF 0x060
-+#define LINUX_SC_X12_OFF 0x068
-+#define LINUX_SC_X13_OFF 0x070
-+#define LINUX_SC_X14_OFF 0x078
-+#define LINUX_SC_X15_OFF 0x080
-+#define LINUX_SC_X16_OFF 0x088
-+#define LINUX_SC_X17_OFF 0x090
-+#define LINUX_SC_X18_OFF 0x098
-+#define LINUX_SC_X19_OFF 0x0a0
-+#define LINUX_SC_X20_OFF 0x0a8
-+#define LINUX_SC_X21_OFF 0x0b0
-+#define LINUX_SC_X22_OFF 0x0b8
-+#define LINUX_SC_X23_OFF 0x0c0
-+#define LINUX_SC_X24_OFF 0x0c8
-+#define LINUX_SC_X25_OFF 0x0d0
-+#define LINUX_SC_X26_OFF 0x0d8
-+#define LINUX_SC_X27_OFF 0x0e0
-+#define LINUX_SC_X28_OFF 0x0e8
-+#define LINUX_SC_X29_OFF 0x0f0
-+#define LINUX_SC_X30_OFF 0x0f8
-+#define LINUX_SC_SP_OFF 0x100
-+#define LINUX_SC_PC_OFF 0x108
-+#define LINUX_SC_PSTATE_OFF 0x110
---- /dev/null
-+++ b/src/aarch64/regname.c
-@@ -0,0 +1,106 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#include "unwind_i.h"
-+
-+static const char *const regname[] =
-+ {
-+ [UNW_AARCH64_X0] = "x0",
-+ [UNW_AARCH64_X1] = "x1",
-+ [UNW_AARCH64_X2] = "x2",
-+ [UNW_AARCH64_X3] = "x3",
-+ [UNW_AARCH64_X4] = "x4",
-+ [UNW_AARCH64_X5] = "x5",
-+ [UNW_AARCH64_X6] = "x6",
-+ [UNW_AARCH64_X7] = "x7",
-+ [UNW_AARCH64_X8] = "x8",
-+ [UNW_AARCH64_X9] = "x9",
-+ [UNW_AARCH64_X10] = "x10",
-+ [UNW_AARCH64_X11] = "x11",
-+ [UNW_AARCH64_X12] = "x12",
-+ [UNW_AARCH64_X13] = "x13",
-+ [UNW_AARCH64_X14] = "x14",
-+ [UNW_AARCH64_X15] = "x15",
-+ [UNW_AARCH64_X16] = "ip0",
-+ [UNW_AARCH64_X17] = "ip1",
-+ [UNW_AARCH64_X18] = "x18",
-+ [UNW_AARCH64_X19] = "x19",
-+ [UNW_AARCH64_X20] = "x20",
-+ [UNW_AARCH64_X21] = "x21",
-+ [UNW_AARCH64_X22] = "x22",
-+ [UNW_AARCH64_X23] = "x23",
-+ [UNW_AARCH64_X24] = "x24",
-+ [UNW_AARCH64_X25] = "x25",
-+ [UNW_AARCH64_X26] = "x26",
-+ [UNW_AARCH64_X27] = "x27",
-+ [UNW_AARCH64_X28] = "x28",
-+ [UNW_AARCH64_X29] = "fp",
-+ [UNW_AARCH64_X30] = "lr",
-+ [UNW_AARCH64_SP] = "sp",
-+ [UNW_AARCH64_PC] = "pc",
-+ [UNW_AARCH64_V0] = "v0",
-+ [UNW_AARCH64_V1] = "v1",
-+ [UNW_AARCH64_V2] = "v2",
-+ [UNW_AARCH64_V3] = "v3",
-+ [UNW_AARCH64_V4] = "v4",
-+ [UNW_AARCH64_V5] = "v5",
-+ [UNW_AARCH64_V6] = "v6",
-+ [UNW_AARCH64_V7] = "v7",
-+ [UNW_AARCH64_V8] = "v8",
-+ [UNW_AARCH64_V9] = "v9",
-+ [UNW_AARCH64_V10] = "v10",
-+ [UNW_AARCH64_V11] = "v11",
-+ [UNW_AARCH64_V12] = "v12",
-+ [UNW_AARCH64_V13] = "v13",
-+ [UNW_AARCH64_V14] = "v14",
-+ [UNW_AARCH64_V15] = "v15",
-+ [UNW_AARCH64_V16] = "v16",
-+ [UNW_AARCH64_V17] = "v17",
-+ [UNW_AARCH64_V18] = "v18",
-+ [UNW_AARCH64_V19] = "v19",
-+ [UNW_AARCH64_V20] = "v20",
-+ [UNW_AARCH64_V21] = "v21",
-+ [UNW_AARCH64_V22] = "v22",
-+ [UNW_AARCH64_V23] = "v23",
-+ [UNW_AARCH64_V24] = "v24",
-+ [UNW_AARCH64_V25] = "v25",
-+ [UNW_AARCH64_V26] = "v26",
-+ [UNW_AARCH64_V27] = "v27",
-+ [UNW_AARCH64_V28] = "v28",
-+ [UNW_AARCH64_V29] = "v29",
-+ [UNW_AARCH64_V30] = "v30",
-+ [UNW_AARCH64_V31] = "v31",
-+ [UNW_AARCH64_FPSR] = "fpsr",
-+ [UNW_AARCH64_FPCR] = "fpcr",
-+ };
-+
-+PROTECTED const char *
-+unw_regname (unw_regnum_t reg)
-+{
-+ if (reg < (unw_regnum_t) ARRAY_SIZE (regname) && regname[reg] != NULL)
-+ return regname[reg];
-+ else
-+ return "???";
-+}
---- /dev/null
-+++ b/src/aarch64/siglongjmp.S
-@@ -0,0 +1,12 @@
-+ /* Dummy implementation for now. */
-+
-+ .global _UI_siglongjmp_cont
-+ .global _UI_longjmp_cont
-+
-+_UI_siglongjmp_cont:
-+_UI_longjmp_cont:
-+ ret
-+#ifdef __linux__
-+ /* We do not need executable stack. */
-+ .section .note.GNU-stack,"",%progbits
-+#endif
---- /dev/null
-+++ b/src/aarch64/unwind_i.h
-@@ -0,0 +1,43 @@
-+/* libunwind - a platform-independent unwind library
-+ Copyright (C) 2008 CodeSourcery
-+ Copyright (C) 2013 Linaro Limited
-+
-+This file is part of libunwind.
-+
-+Permission is hereby granted, free of charge, to any person obtaining
-+a copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be
-+included in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-+
-+#ifndef unwind_i_h
-+#define unwind_i_h
-+
-+#include <stdint.h>
-+
-+#include <libunwind-aarch64.h>
-+
-+#include "libunwind_i.h"
-+
-+#define aarch64_lock UNW_OBJ(lock)
-+#define aarch64_local_resume UNW_OBJ(local_resume)
-+#define aarch64_local_addr_space_init UNW_OBJ(local_addr_space_init)
-+
-+extern void aarch64_local_addr_space_init (void);
-+extern int aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
-+ void *arg);
-+
-+#endif /* unwind_i_h */
---- a/src/coredump/_UCD_access_reg_linux.c
-+++ b/src/coredump/_UCD_access_reg_linux.c
-@@ -39,7 +39,10 @@ _UCD_access_reg (unw_addr_space_t as,
- return -UNW_EINVAL;
- }
-
--#if defined(UNW_TARGET_ARM)
-+#if defined(UNW_TARGET_AARCH64)
-+ if (regnum < 0 || regnum >= UNW_AARCH64_FPCR)
-+ goto badreg;
-+#elif defined(UNW_TARGET_ARM)
- if (regnum < 0 || regnum >= 16)
- goto badreg;
- #elif defined(UNW_TARGET_SH)
---- a/src/ptrace/_UPT_reg_offset.c
-+++ b/src/ptrace/_UPT_reg_offset.c
-@@ -1,6 +1,7 @@
- /* libunwind - a platform-independent unwind library
- Copyright (C) 2003-2004 Hewlett-Packard Co
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-+ Copyright (C) 2013 Linaro Limited
-
- This file is part of libunwind.
-
-@@ -501,6 +502,41 @@ const int _UPT_reg_offset[UNW_REG_LAST +
- [UNW_ARM_R15] = 0x3c,
- #elif defined(UNW_TARGET_MIPS)
- #elif defined(UNW_TARGET_SH)
-+#elif defined(UNW_TARGET_AARCH64)
-+ [UNW_AARCH64_X0] = 0x00,
-+ [UNW_AARCH64_X1] = 0x08,
-+ [UNW_AARCH64_X2] = 0x10,
-+ [UNW_AARCH64_X3] = 0x18,
-+ [UNW_AARCH64_X4] = 0x20,
-+ [UNW_AARCH64_X5] = 0x28,
-+ [UNW_AARCH64_X6] = 0x30,
-+ [UNW_AARCH64_X7] = 0x38,
-+ [UNW_AARCH64_X8] = 0x40,
-+ [UNW_AARCH64_X9] = 0x48,
-+ [UNW_AARCH64_X10] = 0x50,
-+ [UNW_AARCH64_X11] = 0x58,
-+ [UNW_AARCH64_X12] = 0x60,
-+ [UNW_AARCH64_X13] = 0x68,
-+ [UNW_AARCH64_X14] = 0x70,
-+ [UNW_AARCH64_X15] = 0x78,
-+ [UNW_AARCH64_X16] = 0x80,
-+ [UNW_AARCH64_X17] = 0x88,
-+ [UNW_AARCH64_X18] = 0x90,
-+ [UNW_AARCH64_X19] = 0x98,
-+ [UNW_AARCH64_X20] = 0xa0,
-+ [UNW_AARCH64_X21] = 0xa8,
-+ [UNW_AARCH64_X22] = 0xb0,
-+ [UNW_AARCH64_X23] = 0xb8,
-+ [UNW_AARCH64_X24] = 0xc0,
-+ [UNW_AARCH64_X25] = 0xc8,
-+ [UNW_AARCH64_X26] = 0xd0,
-+ [UNW_AARCH64_X27] = 0xd8,
-+ [UNW_AARCH64_X28] = 0xe0,
-+ [UNW_AARCH64_X29] = 0xe8,
-+ [UNW_AARCH64_X30] = 0xf0,
-+ [UNW_AARCH64_SP] = 0xf8,
-+ [UNW_AARCH64_PC] = 0x100,
-+ [UNW_AARCH64_PSTATE] = 0x108
- #else
- # error Fix me.
- #endif
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch
deleted file mode 100644
index dc0f5c1b4..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Fix test case link failure on PowerPC systems with Altivec
-
-Upstream-Status:backport
-
-On systems where the system compiler supports Altivec by default,
-the libunwind Makefile will attempt to build an extra test case
-ppc64-test-altivec. Unfortunately, the link step will fail since
-the Makefile does not actually link against the libunwind library.
-
-Fixed by adding the appropriate LDADD macro.
-
-Signed-off-by: Ulrich Weigand <address@hidden>
----
- tests/Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 0e30536..9c76628 100644
---- a/tests/Makefile.am
-+++ b/tests/Makefile.am
-@@ -201,3 +201,4 @@ Lia64_test_rbs_LDADD = $(LIBUNWIND_local)
- Lia64_test_readonly_LDADD = $(LIBUNWIND_local)
- ia64_test_dyn1_LDADD = $(LIBUNWIND)
- ia64_test_sig_LDADD = $(LIBUNWIND)
-+ppc64_test_altivec_LDADD = $(LIBUNWIND)
---
-1.8.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch
deleted file mode 100644
index 0e55c91b8..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 508ca17a7be01d1cc960d9a07d0af4513948fb8d Mon Sep 17 00:00:00 2001
-From: Thierry Reding <treding@nvidia.com>
-Date: Fri, 27 Jun 2014 08:40:33 +0200
-Subject: [PATCH] Link libunwind to libgcc_s rather than libgcc
-
-For some architectures, -lgcc and -lgcc_s are not equivalent. On ARM for
-example, libgcc_s.so.1 contains some symbols needed by libunwind which
-are not present in libgcc.
-
-This causes the following link error when building the X.Org X server
-with libunwind support:
-
- CCLD Xorg
- /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr0'
- /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr1'
-
-Linking against libgcc_s explicitly solves this problem.
-
-Upstream-Status: Backport
-
-Signed-off-by: Thierry Reding <treding@nvidia.com>
-Signed-off-by: Jonathan Liu <net147@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index cffe19b..3beb5f2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -258,7 +258,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[#ifndef __INTEL_COMPILER
-
- if test x$GCC = xyes -a x$intel_compiler != xyes; then
- CFLAGS="${CFLAGS} -fexceptions -Wall -Wsign-compare"
-- LIBCRTS="-lgcc"
-+ LIBCRTS="-lgcc_s"
- fi
- AC_MSG_RESULT([$intel_compiler])
-
---
-2.3.2
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch
deleted file mode 100644
index 268b702dc..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 10b064ffe902d5af31bb49bd8e4f03c545f8d462 Mon Sep 17 00:00:00 2001
-From: Ladislav Michl <ladis@linux-mips.org>
-Date: Tue, 13 Nov 2012 11:19:47 +0100
-Subject: [PATCH] Support building with older compilers.
-
-Add a check for __builtin_unreachable.
-
-Upstream-Status: Pending
----
- configure.ac | 11 +++++++++++
- include/libunwind_i.h | 6 ++++++
- src/arm/Gresume.c | 2 +-
- src/sh/Gresume.c | 2 +-
- 4 files changed, 19 insertions(+), 2 deletions(-)
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -285,6 +285,17 @@ if test x$have__builtin___clear_cache =
- fi
- AC_MSG_RESULT([$have__builtin___clear_cache])
-
-+AC_MSG_CHECKING([for __builtin_unreachable])
-+AC_LINK_IFELSE(
-+ [AC_LANG_PROGRAM([[]], [[__builtin_unreachable()]])],
-+ [have__builtin_unreachable=yes],
-+ [have__builtin_unreachable=no])
-+if test x$have__builtin_unreachable = xyes; then
-+ AC_DEFINE([HAVE__BUILTIN_UNREACHABLE], [1],
-+ [Defined if __builtin_unreachable() is available])
-+fi
-+AC_MSG_RESULT([$have__builtin_unreachable])
-+
- AC_MSG_CHECKING([for __sync atomics])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[]], [[
---- a/include/libunwind_i.h
-+++ b/include/libunwind_i.h
-@@ -72,6 +72,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE
- # endif
- #endif
-
-+#if defined(HAVE__BUILTIN_UNREACHABLE)
-+# define unreachable() __builtin_unreachable()
-+#else
-+# define unreachable() do { } while (1)
-+#endif
-+
- #ifdef DEBUG
- # define UNW_DEBUG 1
- #else
---- a/src/arm/Gresume.c
-+++ b/src/arm/Gresume.c
-@@ -96,7 +96,7 @@ arm_local_resume (unw_addr_space_t as, u
- : : "r" (c->sigcontext_sp), "r" (c->sigcontext_pc)
- );
- }
-- __builtin_unreachable();
-+ unreachable();
- #else
- printf ("%s: implement me\n", __FUNCTION__);
- #endif
---- a/src/sh/Gresume.c
-+++ b/src/sh/Gresume.c
-@@ -109,7 +109,7 @@ sh_local_resume (unw_addr_space_t as, un
- "r" (c->sigcontext_pc)
- );
- }
-- __builtin_unreachable();
-+ unreachable();
- #endif
- return -UNW_EINVAL;
- }
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind.inc b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind.inc
index 1c342d392..e4ae8df27 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind.inc
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind.inc
@@ -18,15 +18,6 @@ ATOMICOPS_armv5 = "-DAO_USE_PTHREAD_DEFS=1"
ATOMICOPS_armv4 = "-DAO_USE_PTHREAD_DEFS=1"
ATOMICOPS ?= ""
-LDFLAGS_append_x86 = " -fuse-ld=gold"
-LDFLAGS_append_x86-64 = " -fuse-ld=gold"
-
-LDFLAGS_append_arm = " -fuse-ld=gold"
-LDFLAGS_append_aarch64 = " -fuse-ld=gold"
-
-LDFLAGS_append_powerpc = " -fuse-ld=gold -mbss-plt"
-LDFLAGS_append_powerpc64 = " -fuse-ld=gold -mbss-plt"
-
SECURITY_LDFLAGS_append_libc-musl = " -lssp_nonshared -lssp"
BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-Fix-build-on-mips-musl.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-Fix-build-on-mips-musl.patch
new file mode 100644
index 000000000..8bcc252ba
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-Fix-build-on-mips-musl.patch
@@ -0,0 +1,81 @@
+From e623c7703945a5eb6c9a30586ec5e23b2f7396f6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 23 Mar 2016 06:08:59 +0000
+Subject: [PATCH] Fix build on mips/musl
+
+Do not include endian.h on musl it includes
+further headers which can not be compiled in __ASSEMBLER__
+ mode
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/coredump/_UCD_internal.h | 34 ++++++++++++++++++++++++++++++++++
+ src/mips/getcontext.S | 3 +--
+ 2 files changed, 35 insertions(+), 2 deletions(-)
+
+Index: git/src/coredump/_UCD_internal.h
+===================================================================
+--- git.orig/src/coredump/_UCD_internal.h
++++ git/src/coredump/_UCD_internal.h
+@@ -44,6 +44,41 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE
+
+ #include "libunwind_i.h"
+
++#ifndef __GLIBC__
++#include <sys/reg.h>
++
++#define EF_REG0 6
++#define EF_REG1 7
++#define EF_REG2 8
++#define EF_REG3 9
++#define EF_REG4 10
++#define EF_REG5 11
++#define EF_REG6 12
++#define EF_REG7 13
++#define EF_REG8 14
++#define EF_REG9 15
++#define EF_REG10 16
++#define EF_REG11 17
++#define EF_REG12 18
++#define EF_REG13 19
++#define EF_REG14 20
++#define EF_REG15 21
++#define EF_REG16 22
++#define EF_REG17 23
++#define EF_REG18 24
++#define EF_REG19 25
++#define EF_REG20 26
++#define EF_REG21 27
++#define EF_REG22 28
++#define EF_REG23 29
++#define EF_REG24 30
++#define EF_REG25 31
++#define EF_REG28 34
++#define EF_REG29 35
++#define EF_REG30 36
++#define EF_REG31 37
++#endif
++
+
+ #if SIZEOF_OFF_T == 4
+ typedef uint32_t uoff_t;
+Index: git/src/mips/getcontext.S
+===================================================================
+--- git.orig/src/mips/getcontext.S
++++ git/src/mips/getcontext.S
+@@ -24,12 +24,11 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+
+ #include "offsets.h"
+-#include <endian.h>
+
+ .text
+
+ #if _MIPS_SIM == _ABIO32
+-# if __BYTE_ORDER == __BIG_ENDIAN
++# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+ # define OFFSET 4
+ # else
+ # define OFFSET 0
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-add-knobs-to-disable-enable-tests.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-add-knobs-to-disable-enable-tests.patch
new file mode 100644
index 000000000..673a5bb99
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-add-knobs-to-disable-enable-tests.patch
@@ -0,0 +1,69 @@
+From 459e471fcc33d300f7bbcdaf3e0dc338d9dc15b9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Apr 2016 16:56:34 +0000
+Subject: [PATCH] add knobs to disable/enable tests
+
+Some tests do not compile on musl libc
+in general its good to have such a knob
+since not all builds may want to enable
+tests
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 6 +++++-
+ configure.ac | 12 ++++++++++--
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 6a3ed9e..0c29b3e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -42,7 +42,11 @@ endif
+
+ nodist_include_HEADERS = include/libunwind-common.h
+
+-SUBDIRS = src tests
++SUBDIRS = src
++
++if CONFIG_TESTS
++SUBDIRS += tests
++endif
+
+ if CONFIG_DOCS
+ SUBDIRS += doc
+diff --git a/configure.ac b/configure.ac
+index 85d78f8..d362387 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -129,6 +129,10 @@ AC_ARG_ENABLE(documentation,
+ AS_HELP_STRING([--disable-documentation],[Disable generating the man pages]),,
+ [enable_documentation=yes])
+
++AC_ARG_ENABLE(tests,
++ AS_HELP_STRING([--disable-tests],[Disable building tests]),,
++ [enable_tests=yes])
++
+ AC_MSG_CHECKING([if we should build libunwind-setjmp])
+ AC_MSG_RESULT([$enable_setjmp])
+
+@@ -395,9 +399,13 @@ AM_CONDITIONAL([CONFIG_DOCS], [test x$enable_documentation = xyes])
+ if test "x$enable_documentation" = "xyes"; then
+ AC_CONFIG_FILES(doc/Makefile doc/common.tex)
+ fi
++AM_CONDITIONAL([CONFIG_TESTS], [test x$enable_tests = xyes])
++if test "x$enable_tests" = "xyes"; then
++ AC_CONFIG_FILES(tests/Makefile tests/check-namespace.sh)
++fi
++
+
+-AC_CONFIG_FILES(Makefile src/Makefile tests/Makefile tests/check-namespace.sh
+- include/libunwind-common.h
++AC_CONFIG_FILES(Makefile src/Makefile include/libunwind-common.h
+ include/libunwind.h include/tdep/libunwind_i.h)
+ AC_CONFIG_FILES(src/unwind/libunwind.pc src/coredump/libunwind-coredump.pc
+ src/ptrace/libunwind-ptrace.pc src/setjmp/libunwind-setjmp.pc
+--
+1.8.3.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-backtrace-Use-only-with-glibc-and-uclibc.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-backtrace-Use-only-with-glibc-and-uclibc.patch
index 9aed419a1..9aed419a1 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-backtrace-Use-only-with-glibc-and-uclibc.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-backtrace-Use-only-with-glibc-and-uclibc.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
new file mode 100644
index 000000000..ca0641f5a
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch
@@ -0,0 +1,248 @@
+From e0eea53c77fce8537c58a072b684043507987bcc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Jul 2016 01:07:53 +0000
+Subject: [PATCH] ppc32: Consider ucontext mismatches between glibc and musl
+
+This helps in porting libunwind onto musl based systems
+ptrace.h change is required again an error that surfaces
+with musl
+
+/mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/asm/ptrace.h:31:8: error: redefinition of 'struct pt_regs'
+ struct pt_regs {
+ ^~~~~~~
+In file included from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/user.h:11:0,
+ from /mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/sys/procfs.h:9,
+ from ../../git/src/ptrace/_UPT_internal.h:40,
+ from ../../git/src/ptrace/_UPT_reg_offset.c:27:
+/mnt/oe/openembedded-core/build/tmp-musl/sysroots/qemuppc/usr/include/bits/user.h:1:8: note: originally defined here
+ struct pt_regs {
+ ^~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ src/ppc32/Ginit.c | 6 +-
+ src/ppc32/ucontext_i.h | 158 ++++++++++++++++++++++---------------------
+ src/ptrace/_UPT_reg_offset.c | 7 ++
+ 3 files changed, 92 insertions(+), 79 deletions(-)
+
+diff --git a/src/ppc32/Ginit.c b/src/ppc32/Ginit.c
+index f2e6e82..617aaa1 100644
+--- a/src/ppc32/Ginit.c
++++ b/src/ppc32/Ginit.c
+@@ -48,12 +48,12 @@ uc_addr (ucontext_t *uc, int reg)
+ void *addr;
+
+ if ((unsigned) (reg - UNW_PPC32_R0) < 32)
+- addr = &uc->uc_mcontext.uc_regs->gregs[reg - UNW_PPC32_R0];
++ addr = &uc->GET_UC_REGS->gregs[reg - UNW_PPC32_R0];
+
+ else
+ if ( ((unsigned) (reg - UNW_PPC32_F0) < 32) &&
+ ((unsigned) (reg - UNW_PPC32_F0) >= 0) )
+- addr = &uc->uc_mcontext.uc_regs->fpregs.fpregs[reg - UNW_PPC32_F0];
++ addr = &uc->GET_UC_REGS->fpregs.fpregs[reg - UNW_PPC32_F0];
+
+ else
+ {
+@@ -76,7 +76,7 @@ uc_addr (ucontext_t *uc, int reg)
+ default:
+ return NULL;
+ }
+- addr = &uc->uc_mcontext.uc_regs->gregs[gregs_idx];
++ addr = &uc->GET_UC_REGS->gregs[gregs_idx];
+ }
+ return addr;
+ }
+diff --git a/src/ppc32/ucontext_i.h b/src/ppc32/ucontext_i.h
+index c6ba806..b79f15c 100644
+--- a/src/ppc32/ucontext_i.h
++++ b/src/ppc32/ucontext_i.h
+@@ -46,83 +46,89 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+ various structure members. */
+ static ucontext_t dmy_ctxt UNUSED;
+
+-#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[0] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[1] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[2] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[3] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[4] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[5] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[6] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[7] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[8] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[9] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[10] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[11] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[12] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[13] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[14] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[15] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[16] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[17] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[18] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[19] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[20] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[21] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[22] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[23] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[24] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[25] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[26] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[27] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[28] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[29] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[30] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[31] - (void *)&dmy_ctxt)
++#ifdef __GLIBC__
++#define GET_UC_REGS uc_mcontext.uc_regs
++#else
++#define GET_UC_REGS uc_regs
++#endif
++
++#define UC_MCONTEXT_GREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[0] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[1] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[2] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[3] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[4] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[5] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[6] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[7] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[8] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[9] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[10] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[11] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[12] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[13] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[14] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[15] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[16] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[17] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[18] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[19] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[20] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[21] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[22] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[23] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[24] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[25] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[26] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[27] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[28] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[29] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[30] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[31] - (void *)&dmy_ctxt)
+
+-#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[MSR_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CTR_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[LINK_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[XER_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[CCR_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DAR_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.uc_mcontext.uc_regs->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_MSR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[MSR_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_ORIG_GPR3 ((void *)&dmy_ctxt.GET_UC_REGS->gregs[ORIG_GPR3_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_CTR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CTR_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_LINK ((void *)&dmy_ctxt.GET_UC_REGS->gregs[LINK_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_XER ((void *)&dmy_ctxt.GET_UC_REGS->gregs[XER_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_CCR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[CCR_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_SOFTE ((void *)&dmy_ctxt.GET_UC_REGS->gregs[SOFTE_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_TRAP ((void *)&dmy_ctxt.GET_UC_REGS->gregs[TRAP_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_DAR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DAR_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_DSISR ((void *)&dmy_ctxt.GET_UC_REGS->gregs[DSISR_IDX] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_GREGS_RESULT ((void *)&dmy_ctxt.GET_UC_REGS->gregs[RESULT_IDX] - (void *)&dmy_ctxt)
+
+-#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[0] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[1] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[2] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[3] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[4] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[5] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[6] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[7] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[8] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[9] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[10] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[11] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[12] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[13] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[14] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[15] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[16] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[17] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[18] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[19] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[20] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[21] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[22] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[23] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[24] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[25] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[26] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[27] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[28] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[29] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[30] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[31] - (void *)&dmy_ctxt)
+-#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.uc_mcontext.uc_regs->fpregs.fpregs[32] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R0 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[0] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R1 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[1] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R2 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[2] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R3 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[3] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R4 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[4] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R5 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[5] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R6 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[6] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R7 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[7] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R8 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[8] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R9 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[9] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R10 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[10] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R11 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[11] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R12 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[12] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R13 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[13] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R14 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[14] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R15 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[15] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R16 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[16] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R17 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[17] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R18 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[18] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R19 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[19] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R20 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[20] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R21 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[21] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R22 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[22] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R23 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[23] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R24 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[24] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R25 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[25] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R26 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[26] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R27 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[27] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R28 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[28] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R29 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[29] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R30 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[30] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_R31 ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[31] - (void *)&dmy_ctxt)
++#define UC_MCONTEXT_FREGS_FPSCR ((void *)&dmy_ctxt.GET_UC_REGS->fpregs.fpregs[32] - (void *)&dmy_ctxt)
+
+ #endif
+diff --git a/src/ptrace/_UPT_reg_offset.c b/src/ptrace/_UPT_reg_offset.c
+index 68461a2..fcc43f7 100644
+--- a/src/ptrace/_UPT_reg_offset.c
++++ b/src/ptrace/_UPT_reg_offset.c
+@@ -27,6 +27,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+ #include "_UPT_internal.h"
+
+ #include <stddef.h>
++#if !defined(__GLIBC__)
++# define pt_regs uapi_pt_regs
++#endif
++#include <asm/ptrace.h>
++#if !defined(__GLIBC__)
++# undef pt_regs
++#endif
+
+ #ifdef HAVE_ASM_PTRACE_OFFSETS_H
+ # include <asm/ptrace_offsets.h>
+--
+1.8.3.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-x86-Stub-out-x86_local_resume.patch
index 371013aaa..371013aaa 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/0001-x86-Stub-out-x86_local_resume.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/0001-x86-Stub-out-x86_local_resume.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
index 0dff2c86d..0dff2c86d 100644
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
new file mode 100644
index 000000000..79f63fd84
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind/musl-header-conflict.patch
@@ -0,0 +1,37 @@
+If you:
+
+TCLIBC=musl bitbake unwind
+TCLIBC=musl bitbake gcc-runtime -c cleansstate
+TCLIBC=musl bitbake gcc-runtime
+
+you will see libstdc++ fail to build due to finding libunwind's header file.
+
+Khem: "When we build any of gcc components they expect to use internal version
+and that works with glibc based gcc since the search headers first look into gcc
+headers, however with musl the gcc headers are searched after the standard
+headers ( which is by design the right thing )."
+
+This patch hacks around the issue by looking for a define used during gcc-runtime's
+build and skipping to the internal header in that case.
+
+[YOCTO #10129]
+
+RP 2016/8/18
+
+Upstream-Status: Inappropriate [really need to fix gcc]
+
+Index: git/include/unwind.h
+===================================================================
+--- git.orig/include/unwind.h
++++ git/include/unwind.h
+@@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER L
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+
++#ifdef _GLIBCXX_SHARED
++#include_next <unwind.h>
++#endif
++
+ #ifndef _UNWIND_H
+ #define _UNWIND_H
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_1.1.bb b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_1.1.bb
deleted file mode 100644
index aff84092a..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_1.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require libunwind.inc
-
-SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://Support-building-with-older-compilers.patch \
- file://AArch64-port.patch \
- file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \
- file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \
- file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \
- file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \
- file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \
-"
-SRC_URI_append_libc-musl = "\
- file://0001-x86-Stub-out-x86_local_resume.patch \
- file://0001-disable-tests.patch \
- file://0001-Fix-build-on-mips-musl.patch \
-"
-SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"
-SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a"
-
-# http://errors.yoctoproject.org/Errors/Details/20487/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_git.bb b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_git.bb
new file mode 100644
index 000000000..424943087
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libunwind/libunwind_git.bb
@@ -0,0 +1,29 @@
+require libunwind.inc
+
+PV = "1.1+git${SRCPV}"
+
+SRCREV = "bc8698fd7ed13a629a8ec3cb2a89bd74f9d8b5c0"
+
+SRC_URI = "git://git.sv.gnu.org/libunwind.git \
+ file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \
+ file://0001-backtrace-Use-only-with-glibc-and-uclibc.patch \
+ file://0001-x86-Stub-out-x86_local_resume.patch \
+ file://0001-Fix-build-on-mips-musl.patch \
+ file://0001-add-knobs-to-disable-enable-tests.patch \
+ file://0001-ppc32-Consider-ucontext-mismatches-between-glibc-and.patch \
+ "
+
+SRC_URI_append_libc-musl = " file://musl-header-conflict.patch"
+EXTRA_OECONF_append_libc-musl = " --disable-documentation --disable-tests "
+
+# http://errors.yoctoproject.org/Errors/Details/20487/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=19987
+SECURITY_CFLAGS_remove_aarch64 = "-fpie"
+SECURITY_CFLAGS_append_aarch64 = " -fPIE"
+
+S = "${WORKDIR}/git"
+
+LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
diff --git a/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.1.bb b/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.1.bb
deleted file mode 100644
index aadc32ff7..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Userspace RCU (read-copy-update) library"
-HOMEPAGE = "http://lttng.org/urcu"
-BUGTRACKER = "http://lttng.org/project/issues"
-
-LICENSE = "LGPLv2.1+ & MIT-style"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
- file://urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \
- file://urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b"
-
-SRC_URI = " \
- http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
- file://0001-Support-for-NIOS2-architecture.patch \
- file://0002-Support-for-aarch64_be.patch \
- "
-
-SRC_URI[md5sum] = "124eaeea06863271c0bdf2a0cc1d8e4b"
-SRC_URI[sha256sum] = "f8d278e9d95bec97c9ba954fc4c3fb584936bc0010713a8fe358b916bafd8715"
-
-S = "${WORKDIR}/userspace-rcu-${PV}"
-CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
-inherit autotools
diff --git a/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.2.bb b/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.2.bb
new file mode 100644
index 000000000..23fb8c4b4
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/liburcu/liburcu_0.9.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Userspace RCU (read-copy-update) library"
+HOMEPAGE = "http://lttng.org/urcu"
+BUGTRACKER = "http://lttng.org/project/issues"
+
+LICENSE = "LGPLv2.1+ & MIT-style"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e548d28737289d75a8f1e01ba2fd7825 \
+ file://urcu.h;beginline=4;endline=32;md5=4de0d68d3a997643715036d2209ae1d9 \
+ file://urcu/uatomic/x86.h;beginline=4;endline=21;md5=58e50bbd8a2f073bb5500e6554af0d0b"
+
+SRC_URI = " \
+ http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
+ file://0001-Support-for-NIOS2-architecture.patch \
+ file://0002-Support-for-aarch64_be.patch \
+ "
+
+SRC_URI[md5sum] = "49f86e68c1e2f41d303381a271b791d1"
+SRC_URI[sha256sum] = "8f7fa313b1e0a3f742cea24ce63a39c0efe63e615a769e2961e55bd2663ecaa3"
+
+S = "${WORKDIR}/userspace-rcu-${PV}"
+CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
+inherit autotools
diff --git a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/0001-Use-pkg-config-to-find-gcrypt-and-libxml2.patch b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/0001-Use-pkg-config-to-find-gcrypt-and-libxml2.patch
new file mode 100644
index 000000000..71867067b
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/0001-Use-pkg-config-to-find-gcrypt-and-libxml2.patch
@@ -0,0 +1,130 @@
+From ed71ac9548a2bb6ecd2dc5ad880c604975f872b0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 2 Jun 2016 14:20:04 +0300
+Subject: [PATCH] Use pkg-config to find gcrypt and libxml2.
+
+Upstream-Status: Pending [libxml2 is upstreamable]
+
+RP 2014/5/22
+
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.in | 70 +++++++++++-------------------------------------------------
+ 1 file changed, 12 insertions(+), 58 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 8bdf45a..0b2b312 100644
+--- a/configure.in
++++ b/configure.in
+@@ -377,6 +377,8 @@ AC_SUBST(pythondir)
+ AC_SUBST(PYTHON_SUBDIR)
+ AC_SUBST(PYTHON_LIBS)
+
++PKG_PROG_PKG_CONFIG
++
+ AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)])
+ WITH_CRYPTO=0
+ CRYPTO_TESTDIR=
+@@ -394,27 +396,14 @@ case $host in
+ CRYPTO_TESTDIR=crypto
+ ;;
+ *)
+- AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+- if test "$LIBGCRYPT_CONFIG" != "no" ; then
+- LIBGCRYPT_VERSION=`$LIBGCRYPT_CONFIG --version`
+- if test VERSION_TO_NUMBER(echo $LIBGCRYPT_VERSION) -lt VERSION_TO_NUMBER(echo "1.1.42")
+- then
+- LIBGCRYPT_CFLAGS=""
+- LIBGCRYPT_LIBS=""
+- echo 'gcrypt library version < 1.1.42 - Crypto extensions will not be available.'
+- else
+- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags`
+- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs`
+- AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
+- echo 'Crypto extensions will be available.'
++ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= 1.1.42], [
++ AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
++ echo 'Crypto extensions will be available.'
+ WITH_CRYPTO=1
+ CRYPTO_TESTDIR=crypto
+- fi
+- else
+- LIBGCRYPT_CFLAGS=""
+- LIBGCRYPT_LIBS=""
+- echo 'Crypto extensions will not be available. Install libgcrypt and reconfigure to make available.'
+- fi
++ ], [
++ echo 'Crypto extensions will not be available. Install libgcrypt >= 1.1.42 and reconfigure to make available.'
++ ])
+ esac
+ fi
+ AC_SUBST(WITH_CRYPTO)
+@@ -476,24 +465,8 @@ dnl original work - Mathieu Lacage 30/03/2000
+ dnl some tweaking - David Härdeman 30/10/2001
+ dnl
+
+-LIBXML_CONFIG_PREFIX=""
+ LIBXML_SRC=""
+
+-AC_ARG_WITH(libxml-prefix,
+- [ --with-libxml-prefix=[PFX] Specify location of libxml config],
+- LIBXML_CONFIG_PREFIX=$withval
+-)
+-
+-AC_ARG_WITH(libxml-include-prefix,
+- [ --with-libxml-include-prefix=[PFX] Specify location of libxml headers],
+- LIBXML_CFLAGS="-I$withval"
+-)
+-
+-AC_ARG_WITH(libxml-libs-prefix,
+- [ --with-libxml-libs-prefix=[PFX] Specify location of libxml libs],
+- LIBXML_LIBS="-L$withval"
+-)
+-
+ AC_ARG_WITH(libxml-src,
+ [ --with-libxml-src=[DIR] For libxml thats not installed yet (sets all three above)],
+ LIBXML_SRC="$withval"
+@@ -556,28 +529,9 @@ then
+ fi
+ fi
+
+-dnl
+-dnl make sure xml2-config is executable,
+-dnl test version and init our variables
+-dnl
+-
+-if ${XML_CONFIG} --libs print > /dev/null 2>&1
+-then
+- XMLVERS=`$XML_CONFIG --version`
+- if test VERSION_TO_NUMBER(echo $XMLVERS) -ge VERSION_TO_NUMBER(echo $LIBXML_REQUIRED_VERSION)
+- then
+- AC_MSG_RESULT($XMLVERS found)
+- else
+- AC_MSG_ERROR(Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt)
+- fi
+- LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
+- if test "x$LIBXML_SRC" = "x"; then
+- LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
+- fi
+-else
+- AC_MSG_ERROR([Could not find libxml2 anywhere, check ftp://xmlsoft.org/.])
+-fi
+-
++PKG_CHECK_MODULES(LIBXML, [libxml-2.0 >= $LIBXML_REQUIRED_VERSION],,
++ [AC_MSG_ERROR([Could not find libxml-2.0 >= $LIBXML_REQUIRED_VERSION anywhere, check ftp://xmlsoft.org/.])]
++)
+
+ AC_SUBST(CFLAGS)
+ AC_SUBST(CPPFLAGS)
+@@ -602,7 +556,7 @@ fi
+
+ if test "$with_plugins" = "yes" ; then
+ AC_MSG_CHECKING([libxml2 module support])
+- WITH_MODULES="`$XML_CONFIG --modules`"
++ WITH_MODULES="`$PKG_CONFIG --variable=modules libxml-2.0`"
+ if test "${WITH_MODULES}" = "1"; then
+ AC_MSG_RESULT(yes)
+ else
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/CVE-2015-7995.patch b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/CVE-2015-7995.patch
deleted file mode 100644
index f4113efba..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/CVE-2015-7995.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7ca19df892ca22d9314e95d59ce2abdeff46b617 Mon Sep 17 00:00:00 2001
-From: Daniel Veillard <veillard@redhat.com>
-Date: Thu, 29 Oct 2015 19:33:23 +0800
-Subject: Fix for type confusion in preprocessing attributes
-
-CVE-2015-7995 http://www.openwall.com/lists/oss-security/2015/10/27/10
-We need to check that the parent node is an element before dereferencing
-its namespace
-
-Upstream-Status: Backport
-CVE: CVE-2015-7995
-
-https://git.gnome.org/browse/libxslt/commit/?id=7ca19df892ca22d9314e95d59ce2abdeff46b617
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
----
- libxslt/preproc.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-Index: libxslt-1.1.28/libxslt/preproc.c
-===================================================================
---- libxslt-1.1.28.orig/libxslt/preproc.c
-+++ libxslt-1.1.28/libxslt/preproc.c
-@@ -2245,7 +2245,8 @@ xsltStylePreCompute(xsltStylesheetPtr st
- } else if (IS_XSLT_NAME(inst, "attribute")) {
- xmlNodePtr parent = inst->parent;
-
-- if ((parent == NULL) || (parent->ns == NULL) ||
-+ if ((parent == NULL) ||
-+ (parent->type != XML_ELEMENT_NODE) || (parent->ns == NULL) ||
- ((parent->ns != inst->ns) &&
- (!xmlStrEqual(parent->ns->href, inst->ns->href))) ||
- (!xmlStrEqual(parent->name, BAD_CAST "attribute-set"))) {
diff --git a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/pkgconfig.patch b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/pkgconfig.patch
deleted file mode 100644
index 89d14c944..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt/pkgconfig.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-Use pkg-config to find gcrypt and libxml2.
-
-Upstream-Status: Pending [libxml2 is upstreamable]
-
-RP 2014/5/22
-
-Index: libxslt-1.1.28/configure.in
-===================================================================
---- libxslt-1.1.28.orig/configure.in 2014-05-13 16:46:02.278474967 +0000
-+++ libxslt-1.1.28/configure.in 2014-05-13 16:53:56.510472561 +0000
-@@ -376,6 +376,8 @@
- AC_SUBST(PYTHON_SUBDIR)
- AC_SUBST(PYTHON_LIBS)
-
-+PKG_PROG_PKG_CONFIG
-+
- AC_ARG_WITH(crypto, [ --with-crypto Add crypto support to exslt (on)])
- WITH_CRYPTO=0
- if test "$with_crypto" = "no" ; then
-@@ -391,26 +393,13 @@
- WITH_CRYPTO=1
- ;;
- *)
-- AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
-- if test "$LIBGCRYPT_CONFIG" != "no" ; then
-- LIBGCRYPT_VERSION=`$LIBGCRYPT_CONFIG --version`
-- if test VERSION_TO_NUMBER(echo $LIBGCRYPT_VERSION) -lt VERSION_TO_NUMBER(echo "1.1.42")
-- then
-- LIBGCRYPT_CFLAGS=""
-- LIBGCRYPT_LIBS=""
-- echo 'gcrypt library version < 1.1.42 - Crypto extensions will not be available.'
-- else
-- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags`
-- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs`
-- AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
-- echo 'Crypto extensions will be available.'
-+ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= 1.1.42], [
-+ AC_DEFINE(HAVE_GCRYPT, 1, [Define if gcrypt library is available.])
-+ echo 'Crypto extensions will be available.'
- WITH_CRYPTO=1
-- fi
-- else
-- LIBGCRYPT_CFLAGS=""
-- LIBGCRYPT_LIBS=""
-- echo 'Crypto extensions will not be available. Install libgcrypt and reconfigure to make available.'
-- fi
-+ ], [
-+ echo 'Crypto extensions will not be available. Install libgcrypt >= 1.1.42 and reconfigure to make available.'
-+ ])
- esac
- fi
- AC_SUBST(WITH_CRYPTO)
-@@ -471,24 +460,8 @@
- dnl some tweaking - David Härdeman 30/10/2001
- dnl
-
--LIBXML_CONFIG_PREFIX=""
- LIBXML_SRC=""
-
--AC_ARG_WITH(libxml-prefix,
-- [ --with-libxml-prefix=[PFX] Specify location of libxml config],
-- LIBXML_CONFIG_PREFIX=$withval
--)
--
--AC_ARG_WITH(libxml-include-prefix,
-- [ --with-libxml-include-prefix=[PFX] Specify location of libxml headers],
-- LIBXML_CFLAGS="-I$withval"
--)
--
--AC_ARG_WITH(libxml-libs-prefix,
-- [ --with-libxml-libs-prefix=[PFX] Specify location of libxml libs],
-- LIBXML_LIBS="-L$withval"
--)
--
- AC_ARG_WITH(libxml-src,
- [ --with-libxml-src=[DIR] For libxml thats not installed yet (sets all three above)],
- LIBXML_SRC="$withval"
-@@ -551,28 +524,9 @@
- fi
- fi
-
--dnl
--dnl make sure xml2-config is executable,
--dnl test version and init our variables
--dnl
--
--if ${XML_CONFIG} --libs print > /dev/null 2>&1
--then
-- XMLVERS=`$XML_CONFIG --version`
-- if test VERSION_TO_NUMBER(echo $XMLVERS) -ge VERSION_TO_NUMBER(echo $LIBXML_REQUIRED_VERSION)
-- then
-- AC_MSG_RESULT($XMLVERS found)
-- else
-- AC_MSG_ERROR(Version $XMLVERS found. You need at least libxml2 $LIBXML_REQUIRED_VERSION for this version of libxslt)
-- fi
-- LIBXML_LIBS="$LIBXML_LIBS `$XML_CONFIG --libs`"
-- if test "x$LIBXML_SRC" = "x"; then
-- LIBXML_CFLAGS="$LIBXML_CFLAGS `$XML_CONFIG --cflags`"
-- fi
--else
-- AC_MSG_ERROR([Could not find libxml2 anywhere, check ftp://xmlsoft.org/.])
--fi
--
-+PKG_CHECK_MODULES(LIBXML, [libxml-2.0 >= $LIBXML_REQUIRED_VERSION],,
-+ [AC_MSG_ERROR([Could not find libxml-2.0 >= $LIBXML_REQUIRED_VERSION anywhere, check ftp://xmlsoft.org/.])]
-+)
-
- AC_SUBST(CFLAGS)
- AC_SUBST(CPPFLAGS)
-@@ -597,7 +551,7 @@
-
- if test "$with_plugins" = "yes" ; then
- AC_MSG_CHECKING([libxml2 module support])
-- WITH_MODULES="`$XML_CONFIG --modules`"
-+ WITH_MODULES="`$PKG_CONFIG --variable=modules libxml-2.0`"
- if test "${WITH_MODULES}" = "1"; then
- AC_MSG_RESULT(yes)
- else
diff --git a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.28.bb b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.28.bb
deleted file mode 100644
index 23ac599de..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.28.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "GNOME XSLT library"
-HOMEPAGE = "http://xmlsoft.org/XSLT/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458"
-
-SECTION = "libs"
-DEPENDS = "libxml2"
-
-SRC_URI = "ftp://xmlsoft.org/libxslt/libxslt-${PV}.tar.gz \
- file://pkgconfig_fix.patch \
- file://pkgconfig.patch \
- file://CVE-2015-7995.patch"
-
-SRC_URI[md5sum] = "9667bf6f9310b957254fdcf6596600b7"
-SRC_URI[sha256sum] = "5fc7151a57b89c03d7b825df5a0fae0a8d5f05674c0e7cf2937ecec4d54a028c"
-
-UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
-
-S = "${WORKDIR}/libxslt-${PV}"
-
-BINCONFIG = "${bindir}/xslt-config"
-
-inherit autotools pkgconfig binconfig-disabled lib_package
-
-# We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header
-do_configure_prepend () {
- sed -i -e 's/ansidecl.h//' ${S}/configure.in
-
- # The timestamps in the 1.1.28 tarball are messed up causing this file to
- # appear out of date. Touch it so that we don't try to regenerate it.
- touch ${S}/doc/xsltproc.1
-}
-
-EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto"
-# older versions of this recipe had ${PN}-utils
-RPROVIDES_${PN}-bin += "${PN}-utils"
-RCONFLICTS_${PN}-bin += "${PN}-utils"
-RREPLACES_${PN}-bin += "${PN}-utils"
-
-
-do_install_append_class-native () {
- create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog.xml
-}
-
-FILES_${PN} += "${libdir}/libxslt-plugins"
-FILES_${PN}-dev += "${libdir}/xsltConf.sh"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.29.bb b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.29.bb
new file mode 100644
index 000000000..be747e608
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libxslt/libxslt_1.1.29.bb
@@ -0,0 +1,50 @@
+SUMMARY = "GNOME XSLT library"
+HOMEPAGE = "http://xmlsoft.org/XSLT/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458"
+
+SECTION = "libs"
+DEPENDS = "libxml2"
+
+SRC_URI = "ftp://xmlsoft.org/libxslt/libxslt-${PV}.tar.gz \
+ file://pkgconfig_fix.patch \
+ file://0001-Use-pkg-config-to-find-gcrypt-and-libxml2.patch \
+ "
+
+SRC_URI[md5sum] = "a129d3c44c022de3b9dcf6d6f288d72e"
+SRC_URI[sha256sum] = "b5976e3857837e7617b29f2249ebb5eeac34e249208d31f1fbf7a6ba7a4090ce"
+
+UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
+
+S = "${WORKDIR}/libxslt-${PV}"
+
+BINCONFIG = "${bindir}/xslt-config"
+
+inherit autotools pkgconfig binconfig-disabled lib_package
+
+# We don't DEPEND on binutils for ansidecl.h so ensure we don't use the header
+do_configure_prepend () {
+ sed -i -e 's/ansidecl.h//' ${S}/configure.in
+
+ # The timestamps in the 1.1.28 tarball are messed up causing this file to
+ # appear out of date. Touch it so that we don't try to regenerate it.
+ touch ${S}/doc/xsltproc.1
+}
+
+EXTRA_OECONF = "--without-python --without-debug --without-mem-debug --without-crypto"
+# older versions of this recipe had ${PN}-utils
+RPROVIDES_${PN}-bin += "${PN}-utils"
+RCONFLICTS_${PN}-bin += "${PN}-utils"
+RREPLACES_${PN}-bin += "${PN}-utils"
+
+
+do_install_append_class-native () {
+ create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog.xml
+}
+
+FILES_${PN} += "${libdir}/libxslt-plugins"
+FILES_${PN}-dev += "${libdir}/xsltConf.sh"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libyaml/files/libyaml-CVE-2014-9130.patch b/import-layers/yocto-poky/meta/recipes-support/libyaml/files/libyaml-CVE-2014-9130.patch
deleted file mode 100644
index 61fa7e569..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libyaml/files/libyaml-CVE-2014-9130.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User Kirill Simonov <xi@resolvent.net>
-# Date 1417197312 21600
-# Node ID 2b9156756423e967cfd09a61d125d883fca6f4f2
-# Parent 053f53a381ff6adbbc93a31ab7fdee06a16c8a33
-Removed invalid simple key assertion (thank to Jonathan Gray).
-
-The patch comes from
-
-https://bitbucket.org/xi/libyaml/commits/2b9156756423e967cfd09a61d125d883fca6f4f2
-
-Upstream-Status: Backport
-CVE: CVE-2014-9130
-
-Signed-off-by: Yue Tao <yue.tao@windriver.com>
-
-diff -r 053f53a381ff -r 2b9156756423 src/scanner.c
---- a/src/scanner.c Wed Mar 26 13:55:54 2014 -0500
-+++ b/src/scanner.c Fri Nov 28 11:55:12 2014 -0600
-@@ -1106,13 +1106,6 @@
- && parser->indent == (ptrdiff_t)parser->mark.column);
-
- /*
-- * A simple key is required only when it is the first token in the current
-- * line. Therefore it is always allowed. But we add a check anyway.
-- */
--
-- assert(parser->simple_key_allowed || !required); /* Impossible. */
--
-- /*
- * If the current position may start a simple key, save it.
- */
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.6.bb b/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.6.bb
deleted file mode 100644
index b0155774d..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C."
-DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, \
-a human-readable data serialization format. "
-HOMEPAGE = "http://pyyaml.org/wiki/LibYAML"
-SECTION = "libs/devel"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
-
-SRC_URI = "http://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz \
- file://libyaml-CVE-2014-9130.patch \
- "
-
-SRC_URI[md5sum] = "5fe00cda18ca5daeb43762b80c38e06e"
-SRC_URI[sha256sum] = "7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749"
-
-S = "${WORKDIR}/yaml-${PV}"
-
-inherit autotools
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.7.bb b/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.7.bb
new file mode 100644
index 000000000..5c422ef11
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/libyaml/libyaml_0.1.7.bb
@@ -0,0 +1,20 @@
+SUMMARY = "LibYAML is a YAML 1.1 parser and emitter written in C."
+DESCRIPTION = "LibYAML is a C library for parsing and emitting data in YAML 1.1, \
+a human-readable data serialization format. "
+HOMEPAGE = "http://pyyaml.org/wiki/LibYAML"
+SECTION = "libs/devel"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
+
+SRC_URI = "http://pyyaml.org/download/libyaml/yaml-${PV}.tar.gz \
+ "
+
+SRC_URI[md5sum] = "1abf45bd3a96374fa55ca63b32f9f2f9"
+SRC_URI[sha256sum] = "8088e457264a98ba451a90b8661fcb4f9d6f478f7265d48322a196cec2480729"
+
+S = "${WORKDIR}/yaml-${PV}"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/yocto-poky/meta/recipes-support/lzo/lzo/run-ptest b/import-layers/yocto-poky/meta/recipes-support/lzo/lzo/run-ptest
index 2ea7745f7..6acb89fc1 100644
--- a/import-layers/yocto-poky/meta/recipes-support/lzo/lzo/run-ptest
+++ b/import-layers/yocto-poky/meta/recipes-support/lzo/lzo/run-ptest
@@ -1,8 +1,33 @@
#!/bin/sh
./lzotest -mavail -n10 -q /etc/services
+if [ $? -eq 0 ]; then
+ echo 'PASS: lzotest'
+else
+ echo 'FAIL: lzotest'
+fi
LZOTEST=./lzotest /bin/sh -e "./check.sh" "/etc"
./align
+if [ $? -eq 0 ]; then
+ echo 'PASS: align'
+else
+ echo 'FAIL: align'
+fi
./chksum
+if [ $? -eq 0 ]; then
+ echo 'PASS: chksum'
+else
+ echo 'FAIL: chksum'
+fi
./simple
+if [ $? -eq 0 ]; then
+ echo 'PASS: simple'
+else
+ echo 'FAIL: simple'
+fi
./testmini
+if [ $? -eq 0 ]; then
+ echo 'PASS: testmini'
+else
+ echo 'FAIL: testmini'
+fi
diff --git a/import-layers/yocto-poky/meta/recipes-support/lzop/lzop/lzop-1.03-gcc6.patch b/import-layers/yocto-poky/meta/recipes-support/lzop/lzop/lzop-1.03-gcc6.patch
new file mode 100644
index 000000000..72b33970e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/lzop/lzop/lzop-1.03-gcc6.patch
@@ -0,0 +1,37 @@
+gcc-6 has additional errors e.g.
+
+./test.c:1:12: error: variably modified '__acc_cta' at file scope
+ extern int __acc_cta[1-2*!((1l << (8*8 -1)) < 0)];
+ ^~~~~~~~~
+
+This is rightly pointed out since that index is undefined
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+--- a/src/miniacc.h.orig 2016-02-10 16:09:23.247315866 +0100
++++ a/src/miniacc.h 2016-02-10 16:12:14.973297054 +0100
+@@ -4469,12 +4469,12 @@
+ #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
+ #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
+ #else
+- ACCCHK_ASSERT((1 << (8*SIZEOF_INT-1)) < 0)
++ ACCCHK_ASSERT((int)(1u << (8*SIZEOF_INT-1)) < 0)
+ #endif
+ ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0)
+ #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
+ #else
+- ACCCHK_ASSERT((1l << (8*SIZEOF_LONG-1)) < 0)
++ ACCCHK_ASSERT((long)(1ul << (8*SIZEOF_LONG-1)) < 0)
+ #endif
+ ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
+ #if defined(acc_int16e_t)
+@@ -4703,7 +4703,7 @@
+ #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
+ #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
+ #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
+- ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
++ ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
+ #endif
+ #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
+ # pragma option pop
diff --git a/import-layers/yocto-poky/meta/recipes-support/lzop/lzop_1.03.bb b/import-layers/yocto-poky/meta/recipes-support/lzop/lzop_1.03.bb
index 07d628908..649e7243e 100644
--- a/import-layers/yocto-poky/meta/recipes-support/lzop/lzop_1.03.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/lzop/lzop_1.03.bb
@@ -15,15 +15,15 @@ SRC_URI = "http://www.lzop.org/download/${BP}.tar.gz \
file://acinclude.m4 \
file://x32_abi_miniacc_h.patch \
file://0001-use-static-inlines-as-the-external-inline-definition.patch \
+ file://lzop-1.03-gcc6.patch \
"
SRC_URI[md5sum] = "006c5e27fb78cdd14a628fdfa5aa1905"
SRC_URI[sha256sum] = "c1425b8c77d49f5a679d5a126c90ea6ad99585a55e335a613cae59e909dbb2c9"
inherit autotools
-do_configure () {
- ln -sf ../acinclude.m4 ${S}/acinclude.m4
- autotools_do_configure
+do_configure_prepend () {
+ install -Dm 0644 ${WORKDIR}/acinclude.m4 ${S}/acinclude.m4
}
BBCLASSEXTEND += "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr-3.1.3/long-long-thumb.patch b/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr/long-long-thumb.patch
index ca7100eb2..ca7100eb2 100644
--- a/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr-3.1.3/long-long-thumb.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr/long-long-thumb.patch
diff --git a/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.3.bb b/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.3.bb
deleted file mode 100644
index ee8a23893..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.3.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require mpfr.inc
-
-LICENSE = "GPLv3 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
-DEPENDS = "gmp"
-
-SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz \
- file://long-long-thumb.patch \
- "
-
-SRC_URI[md5sum] = "6969398cd2fbc56a6af570b5273c56a9"
-SRC_URI[sha256sum] = "6835a08bd992c8257641791e9a6a2b35b02336c8de26d0a8577953747e514a16"
-
-UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/"
-
-S = "${WORKDIR}/mpfr-${PV}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.4.bb b/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.4.bb
new file mode 100644
index 000000000..230a86208
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/mpfr/mpfr_3.1.4.bb
@@ -0,0 +1,18 @@
+require mpfr.inc
+
+LICENSE = "GPLv3 & LGPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
+DEPENDS = "gmp"
+
+SRC_URI = "http://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz \
+ file://long-long-thumb.patch \
+ "
+SRC_URI[md5sum] = "064b2c18185038e404a401b830d59be8"
+SRC_URI[sha256sum] = "761413b16d749c53e2bfd2b1dfaa3b027b0e793e404b90b5fbaeef60af6517f5"
+
+UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/"
+
+S = "${WORKDIR}/mpfr-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/yocto-poky/meta/recipes-support/nettle/nettle_2.7.1.bb b/import-layers/yocto-poky/meta/recipes-support/nettle/nettle_2.7.1.bb
index d4df0a3a8..ae8e3119f 100644
--- a/import-layers/yocto-poky/meta/recipes-support/nettle/nettle_2.7.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/nettle/nettle_2.7.1.bb
@@ -1,6 +1,6 @@
require nettle.inc
-LICENSE = "LGPLv2.1 & GPLv2"
+LICENSE = "LGPLv2.1+ & GPLv2"
LICENSE_${PN} = "LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
diff --git a/import-layers/yocto-poky/meta/recipes-support/npth/npth_1.2.bb b/import-layers/yocto-poky/meta/recipes-support/npth/npth_1.2.bb
index 1b3962e64..66aa3474b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/npth/npth_1.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/npth/npth_1.2.bb
@@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "\
file://COPYING;md5=751419260aa954499f7abaabaa882bbe\
file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6\
"
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/npth/npth-${PV}.tar.bz2 \
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2 \
file://pkgconfig.patch \
"
diff --git a/import-layers/yocto-poky/meta/recipes-support/nspr/nspr_4.12.bb b/import-layers/yocto-poky/meta/recipes-support/nspr/nspr_4.12.bb
index 168341bc0..fa6d52357 100644
--- a/import-layers/yocto-poky/meta/recipes-support/nspr/nspr_4.12.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/nspr/nspr_4.12.bb
@@ -147,6 +147,9 @@ TESTS = " \
inherit autotools
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
do_compile_prepend() {
oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX" LDFLAGS="" CC=gcc -C config export
}
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss/0001-Fix-build-failure-on-opensuse-13.1.patch b/import-layers/yocto-poky/meta/recipes-support/nss/nss/0001-Fix-build-failure-on-opensuse-13.1.patch
deleted file mode 100644
index cb3ad0068..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/nss/nss/0001-Fix-build-failure-on-opensuse-13.1.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 8758c6a4508a5ca01505a8d69a269c912ce10bee Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Mon, 18 Jan 2016 18:26:16 +0000
-Subject: [PATCH] Fix build failure on opensuse 13.1
-
-Upstream-Status: Inappropriate [gcc 4.8 specific issue]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- nss/cmd/modutil/install-ds.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/nss/cmd/modutil/install-ds.h b/nss/cmd/modutil/install-ds.h
-index 3a3afb3..433efe0 100644
---- a/nss/cmd/modutil/install-ds.h
-+++ b/nss/cmd/modutil/install-ds.h
-@@ -243,7 +243,7 @@ struct Pk11Install_Info_str {
- Pk11Install_Info*
- Pk11Install_Info_new();
- void
--Pk11Install_Info_init();
-+Pk11Install_Info_init(Pk11Install_Info* _this);
- void
- Pk11Install_Info_delete(Pk11Install_Info* _this);
- /*// Returns NULL for success, error message if parse error.*/
---
-1.8.4.5
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/import-layers/yocto-poky/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 000000000..86b1b6055
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,33 @@
+clang 3.9 add this warning to rightly flag undefined
+behavior, we relegate this to be just a warning instead
+of error and keep the behavior as it was. Right fix would
+be to not pass enum to the function with variadic arguments
+as last named argument
+
+Fixes errors like
+ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
+ va_start(ap, responseType0);
+ ^
+ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
+ SECOidTag responseType0, ...)
+
+see
+https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
+for more details
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: nss-3.24/nss/coreconf/Werror.mk
+===================================================================
+--- nss-3.24.orig/nss/coreconf/Werror.mk
++++ nss-3.24/nss/coreconf/Werror.mk
+@@ -54,7 +54,7 @@ ifndef WARNING_CFLAGS
+ ifdef CC_IS_CLANG
+ # -Qunused-arguments : clang objects to arguments that it doesn't understand
+ # and fixing this would require rearchitecture
+- WARNING_CFLAGS += -Qunused-arguments
++ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
+ # -Wno-parentheses-equality : because clang warns about macro expansions
+ WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
+ ifdef BUILD_OPT
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/import-layers/yocto-poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
index 866de07ea..181c69adb 100644
--- a/import-layers/yocto-poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -16,11 +16,11 @@ Upstream-Status: Pending
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
===================================================
-diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile
-index 1850bcb..5aee84f 100644
---- a/nss/coreconf/nsinstall/Makefile
-+++ b/nss/coreconf/nsinstall/Makefile
-@@ -18,6 +18,12 @@ INTERNAL_TOOLS = 1
+Index: nss-3.24/nss/coreconf/nsinstall/Makefile
+===================================================================
+--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
++++ nss-3.24/nss/coreconf/nsinstall/Makefile
+@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
include $(DEPTH)/coreconf/config.mk
@@ -29,6 +29,7 @@ index 1850bcb..5aee84f 100644
+# to clean the '-m64' from ARCHFLAG and LDFLAGS.
+ARCHFLAG =
+LDFLAGS =
++CFLAGS =
+
ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
PROGRAM =
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/import-layers/yocto-poky/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch
new file mode 100644
index 000000000..9caaaeb95
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -0,0 +1,23 @@
+nss does not build on mips with clang because wrong types are used?
+
+pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
+ if (addend < MP_DIGIT_MAX) {
+ ~~~~~~ ^ ~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: nss-3.24/nss/lib/freebl/pqg.c
+===================================================================
+--- nss-3.24.orig/nss/lib/freebl/pqg.c
++++ nss-3.24/nss/lib/freebl/pqg.c
+@@ -322,8 +322,8 @@ generate_h_candidate(SECItem *hit, mp_in
+
+ static SECStatus
+ addToSeed(const SECItem * seed,
+- unsigned long addend,
+- int seedlen, /* g in 186-1 */
++ unsigned long long addend,
++ int seedlen, /* g in 186-1 */
+ SECItem * seedout)
+ {
+ mp_int s, sum, modulus, tmp;
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.21.bb b/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.21.bb
deleted file mode 100644
index d2e24112d..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.21.bb
+++ /dev/null
@@ -1,240 +0,0 @@
-SUMMARY = "Mozilla's SSL and TLS implementation"
-DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
-designed to support cross-platform development of \
-security-enabled client and server applications. \
-Applications built with NSS can support SSL v2 and v3, \
-TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
-v3 certificates, and other security standards."
-HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
-SECTION = "libs"
-
-LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
-
-LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
- file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
- file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
-
-SRC_URI = "\
- http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_21_RTM/src/${BP}.tar.gz \
- file://nss-fix-support-cross-compiling.patch \
- file://nss-no-rpath-for-cross-compiling.patch \
- file://nss-fix-incorrect-shebang-of-perl.patch \
- file://nss-fix-nsinstall-build.patch \
- file://0001-Fix-build-failure-on-opensuse-13.1.patch \
- file://nss.pc.in \
- file://signlibs.sh \
-"
-
-SRC_URI[md5sum] = "3c8b2ed880dd3a8d86c9e0151afe6eba"
-SRC_URI[sha256sum] = "3f7a5b027d7cdd5c0e4ff7544da33fdc6f56c2f8c27fff02938fd4a6fbe87239"
-
-UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
-UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
-
-inherit siteinfo
-
-DEPENDS = "sqlite3 nspr zlib nss-native"
-DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
-RDEPENDS_${PN}-smime = "perl"
-
-TD = "${S}/tentative-dist"
-TDS = "${S}/tentative-dist-staging"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure_prepend_libc-musl () {
- sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
-}
-
-do_compile_prepend_class-native() {
- export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}
- export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
-}
-
-do_compile_prepend_class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_compile_prepend_class-native() {
- # Need to set RPATH so that chrpath will do its job correctly
- RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
-}
-
-do_compile() {
- export CROSS_COMPILE=1
- export NATIVE_CC="gcc"
- export BUILD_OPT=1
-
- export FREEBL_NO_DEPEND=1
- export FREEBL_LOWHASH=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- else
- OS_TEST="${TARGET_ARCH}"
- fi
-
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
-
- # We can modify CC in the environment, but if we set it via an
- # argument to make, nsinstall, a host program, will also build with it!
- #
- export CC="${CC} -g"
- make -C ./nss CCC="${CXX} -g" \
- OS_TEST=${OS_TEST} \
- RPATH="${RPATH}"
-}
-
-
-do_install_prepend_class-nativesdk() {
- export LDFLAGS=""
-}
-
-do_install() {
- export CROSS_COMPILE=1
- export NATIVE_CC="gcc"
- export BUILD_OPT=1
-
- export FREEBL_NO_DEPEND=1
-
- export LIBDIR=${libdir}
- export MOZILLA_CLIENT=1
- export NS_USE_GCC=1
- export NSS_USE_SYSTEM_SQLITE=1
- export NSS_ENABLE_ECC=1
-
- export OS_RELEASE=3.4
- export OS_TARGET=Linux
- export OS_ARCH=Linux
-
- if [ "${TARGET_ARCH}" = "powerpc" ]; then
- OS_TEST=ppc
- elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
- OS_TEST=ppc64
- elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
- OS_TEST=mips
- else
- OS_TEST="${TARGET_ARCH}"
- fi
- if [ "${SITEINFO_BITS}" = "64" ]; then
- export USE_64=1
- elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
- export USE_X32=1
- fi
-
- export NSS_DISABLE_GTESTS=1
-
- make -C ./nss \
- CCC="${CXX}" \
- OS_TEST=${OS_TEST} \
- SOURCE_LIB_DIR="${TD}/${libdir}" \
- SOURCE_BIN_DIR="${TD}/${bindir}" \
- install
-
- install -d ${D}/${libdir}/
- for file in ${S}/dist/*.OBJ/lib/*.so; do
- echo "Installing `basename $file`..."
- cp $file ${D}/${libdir}/
- done
-
- for shared_lib in ${TD}/${libdir}/*.so.*; do
- if [ -f $shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
- fi
- done
- for shared_lib in ${TD}/${libdir}/*.so; do
- if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
- cp $shared_lib ${D}/${libdir}
- fi
- done
-
- install -d ${D}/${includedir}/nss3
- install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
-
- install -d ${D}/${bindir}
- for binary in ${TD}/${bindir}/*; do
- install -m 755 -t ${D}/${bindir} $binary
- done
-}
-
-do_install_append() {
- # Create empty .chk files for the NSS libraries at build time. They could
- # be regenerated at target's boot time.
- for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
- touch ${D}/${libdir}/$file
- chmod 755 ${D}/${libdir}/$file
- done
- install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
-
- install -d ${D}${libdir}/pkgconfig/
- sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
- sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
-}
-
-do_install_append_class-target() {
- # Create a blank certificate
- mkdir -p ${D}${sysconfdir}/pki/nssdb/
- touch ./empty_password
- certutil -N -d ${D}${sysconfdir}/pki/nssdb/ -f ./empty_password
- chmod 644 ${D}${sysconfdir}/pki/nssdb/*.db
- rm ./empty_password
-}
-
-pkg_postinst_${PN} () {
- if [ -n "$D" ]; then
- for I in $D/${libdir}/lib*.chk; do
- DN=`dirname $I`
- BN=`basename $I .chk`
- FN=$DN/$BN.so
- shlibsign -i $FN
- if [ $? -ne 0 ]; then
- exit 1
- fi
- done
- exit 0
- fi
- signlibs.sh
-}
-
-PACKAGES =+ "${PN}-smime"
-FILES_${PN}-smime = "\
- ${bindir}/smime \
-"
-FILES_${PN} = "\
- ${sysconfdir} \
- ${bindir} \
- ${libdir}/lib*.chk \
- ${libdir}/lib*.so \
- "
-FILES_${PN}-dev = "\
- ${libdir}/nss \
- ${libdir}/pkgconfig/* \
- ${includedir}/* \
- "
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.25.bb b/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.25.bb
new file mode 100644
index 000000000..eff09ebbd
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/nss/nss_3.25.bb
@@ -0,0 +1,242 @@
+SUMMARY = "Mozilla's SSL and TLS implementation"
+DESCRIPTION = "Network Security Services (NSS) is a set of libraries \
+designed to support cross-platform development of \
+security-enabled client and server applications. \
+Applications built with NSS can support SSL v2 and v3, \
+TLS, PKCS 5, PKCS 7, PKCS 11, PKCS 12, S/MIME, X.509 \
+v3 certificates, and other security standards."
+HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
+SECTION = "libs"
+
+LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
+
+LIC_FILES_CHKSUM = "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
+ file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
+ file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
+
+SRC_URI = "\
+ http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_25_RTM/src/${BP}.tar.gz \
+ file://nss-fix-support-cross-compiling.patch \
+ file://nss-no-rpath-for-cross-compiling.patch \
+ file://nss-fix-incorrect-shebang-of-perl.patch \
+ file://nss-fix-nsinstall-build.patch \
+ file://disable-Wvarargs-with-clang.patch \
+ file://pqg.c-ULL_addend.patch \
+ file://nss.pc.in \
+ file://signlibs.sh \
+"
+SRC_URI[md5sum] = "23169c406adc8ac3672d34bf9ea2433d"
+SRC_URI[sha256sum] = "5d1ad475da19d0c033a716350dc5f8a747999d3eba5ac07ee0368c5bad6e2359"
+
+UPSTREAM_CHECK_URI = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases"
+UPSTREAM_CHECK_REGEX = "NSS_(?P<pver>.+)_release_notes"
+
+inherit siteinfo
+
+DEPENDS = "sqlite3 nspr zlib nss-native"
+DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
+RDEPENDS_${PN}-smime = "perl"
+
+TD = "${S}/tentative-dist"
+TDS = "${S}/tentative-dist-staging"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure_prepend_libc-musl () {
+ sed -i -e '/-DHAVE_SYS_CDEFS_H/d' ${S}/nss/lib/dbm/config/config.mk
+}
+
+do_compile_prepend_class-native() {
+ export NSPR_INCLUDE_DIR=${STAGING_INCDIR_NATIVE}
+ export NSPR_LIB_DIR=${STAGING_LIBDIR_NATIVE}
+ export NSS_ENABLE_WERROR=0
+}
+
+do_compile_prepend_class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_compile_prepend_class-native() {
+ # Need to set RPATH so that chrpath will do its job correctly
+ RPATH="-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE}"
+}
+
+do_compile() {
+ export CROSS_COMPILE=1
+ export NATIVE_CC="gcc"
+ export NATIVE_FLAGS="${HOST_CFLAGS}"
+ export BUILD_OPT=1
+
+ export FREEBL_NO_DEPEND=1
+ export FREEBL_LOWHASH=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+
+ # We can modify CC in the environment, but if we set it via an
+ # argument to make, nsinstall, a host program, will also build with it!
+ #
+ export CC="${CC} -g"
+ make -C ./nss CCC="${CXX} -g" \
+ OS_TEST=${OS_TEST} \
+ RPATH="${RPATH}"
+}
+
+
+do_install_prepend_class-nativesdk() {
+ export LDFLAGS=""
+}
+
+do_install() {
+ export CROSS_COMPILE=1
+ export NATIVE_CC="gcc"
+ export BUILD_OPT=1
+
+ export FREEBL_NO_DEPEND=1
+
+ export LIBDIR=${libdir}
+ export MOZILLA_CLIENT=1
+ export NS_USE_GCC=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSS_ENABLE_ECC=1
+
+ export OS_RELEASE=3.4
+ export OS_TARGET=Linux
+ export OS_ARCH=Linux
+
+ if [ "${TARGET_ARCH}" = "powerpc" ]; then
+ OS_TEST=ppc
+ elif [ "${TARGET_ARCH}" = "powerpc64" ]; then
+ OS_TEST=ppc64
+ elif [ "${TARGET_ARCH}" = "mips" -o "${TARGET_ARCH}" = "mipsel" -o "${TARGET_ARCH}" = "mips64" -o "${TARGET_ARCH}" = "mips64el" ]; then
+ OS_TEST=mips
+ else
+ OS_TEST="${TARGET_ARCH}"
+ fi
+ if [ "${SITEINFO_BITS}" = "64" ]; then
+ export USE_64=1
+ elif [ "${TARGET_ARCH}" = "x86_64" -a "${SITEINFO_BITS}" = "32" ]; then
+ export USE_X32=1
+ fi
+
+ export NSS_DISABLE_GTESTS=1
+
+ make -C ./nss \
+ CCC="${CXX}" \
+ OS_TEST=${OS_TEST} \
+ SOURCE_LIB_DIR="${TD}/${libdir}" \
+ SOURCE_BIN_DIR="${TD}/${bindir}" \
+ install
+
+ install -d ${D}/${libdir}/
+ for file in ${S}/dist/*.OBJ/lib/*.so; do
+ echo "Installing `basename $file`..."
+ cp $file ${D}/${libdir}/
+ done
+
+ for shared_lib in ${TD}/${libdir}/*.so.*; do
+ if [ -f $shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ ln -sf $(basename $shared_lib) ${D}/${libdir}/$(basename $shared_lib .1oe)
+ fi
+ done
+ for shared_lib in ${TD}/${libdir}/*.so; do
+ if [ -f $shared_lib -a ! -e ${D}/${libdir}/$shared_lib ]; then
+ cp $shared_lib ${D}/${libdir}
+ fi
+ done
+
+ install -d ${D}/${includedir}/nss3
+ install -m 644 -t ${D}/${includedir}/nss3 dist/public/nss/*
+
+ install -d ${D}/${bindir}
+ for binary in ${TD}/${bindir}/*; do
+ install -m 755 -t ${D}/${bindir} $binary
+ done
+}
+
+do_install_append() {
+ # Create empty .chk files for the NSS libraries at build time. They could
+ # be regenerated at target's boot time.
+ for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
+ touch ${D}/${libdir}/$file
+ chmod 755 ${D}/${libdir}/$file
+ done
+ install -D -m 755 ${WORKDIR}/signlibs.sh ${D}/${bindir}/signlibs.sh
+
+ install -d ${D}${libdir}/pkgconfig/
+ sed 's/%NSS_VERSION%/${PV}/' ${WORKDIR}/nss.pc.in | sed 's/%NSPR_VERSION%/4.9.2/' > ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEPREFIX:${prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
+ sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+
+do_install_append_class-target() {
+ # Create a blank certificate
+ mkdir -p ${D}${sysconfdir}/pki/nssdb/
+ touch ./empty_password
+ certutil -N -d ${D}${sysconfdir}/pki/nssdb/ -f ./empty_password
+ chmod 644 ${D}${sysconfdir}/pki/nssdb/*.db
+ rm ./empty_password
+}
+
+pkg_postinst_${PN} () {
+ if [ -n "$D" ]; then
+ for I in $D/${libdir}/lib*.chk; do
+ DN=`dirname $I`
+ BN=`basename $I .chk`
+ FN=$DN/$BN.so
+ shlibsign -i $FN
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+ done
+ exit 0
+ fi
+ signlibs.sh
+}
+
+PACKAGES =+ "${PN}-smime"
+FILES_${PN}-smime = "\
+ ${bindir}/smime \
+"
+FILES_${PN} = "\
+ ${sysconfdir} \
+ ${bindir} \
+ ${libdir}/lib*.chk \
+ ${libdir}/lib*.so \
+ "
+FILES_${PN}-dev = "\
+ ${libdir}/nss \
+ ${libdir}/pkgconfig/* \
+ ${includedir}/* \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/p11-kit/p11-kit_0.22.1.bb b/import-layers/yocto-poky/meta/recipes-support/p11-kit/p11-kit_0.22.1.bb
index a4efff161..38fa09bf9 100644
--- a/import-layers/yocto-poky/meta/recipes-support/p11-kit/p11-kit_0.22.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/p11-kit/p11-kit_0.22.1.bb
@@ -2,7 +2,7 @@ SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
-inherit autotools gettext pkgconfig upstream-version-is-even
+inherit autotools gettext pkgconfig upstream-version-is-even gtk-doc
DEPENDS = "libtasn1 libffi"
@@ -12,6 +12,26 @@ SRC_URI[sha256sum] = "ef3a339fcf6aa0e32c8c23f79ba7191e57312be2bda8b24e6d121c2670
EXTRA_OECONF = "--without-trust-paths"
+# This recipe does not use the standard gtk-doc m4 macros, and so the ./configure flags
+# that control gtk-doc build are non-standard
+EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-doc --enable-doc-html --disable-doc-pdf', \
+ '--disable-doc', d)} "
+
+# When building native recipes, disable gtkdoc, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+EXTRA_OECONF_prepend_class-native = "--disable-doc "
+EXTRA_OECONF_prepend_class-nativesdk = "--disable-doc "
+
+UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-gtk-doc-html --disable-gtk-doc-pdf --enable-gtk-doc --disable-gtk-doc"
+
+# p11-kit relies on these two being copied from source tree
+# instead of being regenerated by gtkdoc-scan, but doesn't setup
+# dependencies correctly when there is a parallel build. Let's pre-copy
+# them instead.
+do_compile_prepend () {
+ cp ${S}/doc/manual/p11-kit-overrides.txt ${S}/doc/manual/p11-kit-sections.txt ${B}/doc/manual/
+}
+
FILES_${PN} += " \
${libdir}/p11-kit-proxy.so \
${libdir}/pkcs11/*.so \
diff --git a/import-layers/yocto-poky/meta/recipes-support/pinentry/pinentry_0.9.2.bb b/import-layers/yocto-poky/meta/recipes-support/pinentry/pinentry_0.9.2.bb
index d6b713020..d315a99d4 100644
--- a/import-layers/yocto-poky/meta/recipes-support/pinentry/pinentry_0.9.2.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/pinentry/pinentry_0.9.2.bb
@@ -12,7 +12,8 @@ inherit autotools
DEPENDS = "gettext-native"
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2"
+UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
+SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "f51d454f921111b5156a2291cbf70278"
SRC_URI[sha256sum] = "fd8bc1592ceb22bb492b07cb29b1b140bb882c859e6503b974254c0a4b4134d1"
diff --git a/import-layers/yocto-poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch b/import-layers/yocto-poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch
index 91bca96a5..7d74aadff 100644
--- a/import-layers/yocto-poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch
+++ b/import-layers/yocto-poky/meta/recipes-support/popt/popt/popt_fix_for_automake-1.12.patch
@@ -4,7 +4,7 @@ This patch avoids this error with automake 1.12:
| configure.ac:49: error: automatic de-ANSI-fication support has been removed
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012/05/02
Index: popt-1.16/configure.ac
diff --git a/import-layers/yocto-poky/meta/recipes-support/popt/popt_1.16.bb b/import-layers/yocto-poky/meta/recipes-support/popt/popt_1.16.bb
index cb13a815e..478288f9b 100644
--- a/import-layers/yocto-poky/meta/recipes-support/popt/popt_1.16.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/popt/popt_1.16.bb
@@ -6,6 +6,8 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=cb0613c30af2a8249b8dcc67d3edb06d"
PR = "r3"
+DEPENDS = "virtual/libiconv"
+
SRC_URI = "http://rpm5.org/files/popt/popt-${PV}.tar.gz \
file://pkgconfig_fix.patch \
file://popt_fix_for_automake-1.12.patch \
diff --git a/import-layers/yocto-poky/meta/recipes-support/ptest-runner/ptest-runner_2.0.bb b/import-layers/yocto-poky/meta/recipes-support/ptest-runner/ptest-runner_2.0.bb
index 7081afbeb..9d4551389 100644
--- a/import-layers/yocto-poky/meta/recipes-support/ptest-runner/ptest-runner_2.0.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/ptest-runner/ptest-runner_2.0.bb
@@ -7,8 +7,8 @@ HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/ptest-runner2/about/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-SRCREV = "8bfdf946e784f4d5757bebee1fbc4b4a3d7a95c4"
-PV = "2.0+git${SRCPV}"
+SRCREV = "e2aa4256745377b784c8691f546041b59f6e046b"
+PV = "2.0.1+git${SRCPV}"
SRC_URI = "git://git.yoctoproject.org/ptest-runner2"
S = "${WORKDIR}/git"
@@ -22,5 +22,5 @@ do_compile () {
}
do_install () {
- install -D -m 0755 ${WORKDIR}/git/ptest-runner ${D}${bindir}/ptest-runner
+ install -D -m 0755 ${S}/ptest-runner ${D}${bindir}/ptest-runner
}
diff --git a/import-layers/yocto-poky/meta/recipes-support/serf/serf_1.3.8.bb b/import-layers/yocto-poky/meta/recipes-support/serf/serf_1.3.8.bb
index b5059d546..c498d9097 100644
--- a/import-layers/yocto-poky/meta/recipes-support/serf/serf_1.3.8.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/serf/serf_1.3.8.bb
@@ -1,11 +1,13 @@
SUMMARY = "High-Performance Asynchronous HTTP Client Library"
-SRC_URI = "${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/s/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://norpath.patch \
file://env.patch"
SRC_URI[md5sum] = "713beaf05d7f3329de121e218e2fcb93"
SRC_URI[sha256sum] = "77134cd5010664ca023585bce50978bd4005906ed280ff889f591f86df7c59e4"
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/s/serf/"
+
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
diff --git a/import-layers/yocto-poky/meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch b/import-layers/yocto-poky/meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch
new file mode 100644
index 000000000..b0aa5d173
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch
@@ -0,0 +1,30 @@
+From 9aa01fd5f9d8b2b98c34684dc8f68115750ef41c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 12 Jul 2016 17:15:13 +0300
+Subject: [PATCH] source-highlight.pc.in: do not add Boost's libraries and
+ includes
+
+This breaks when compiling in sysroots; a proper way is to use Depends
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ source-highlight.pc.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source-highlight.pc.in b/source-highlight.pc.in
+index 79ab63e..64114a7 100644
+--- a/source-highlight.pc.in
++++ b/source-highlight.pc.in
+@@ -7,6 +7,6 @@ Name: libsource-highlight
+ Description: GNU Source-highlight library.
+ URL: http://www.gnu.org/software/src-highlite/
+ Version: @VERSION@
+-Libs: -L${libdir} -lsource-highlight @BOOST_LDFLAGS@ @BOOST_REGEX_LIB@
+-Cflags: -I${includedir} @BOOST_CPPFLAGS@
++Libs: -L${libdir} -lsource-highlight
++Cflags: -I${includedir}
+
+--
+2.8.1
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/source-highlight/source-highlight_3.1.8.bb b/import-layers/yocto-poky/meta/recipes-support/source-highlight/source-highlight_3.1.8.bb
new file mode 100644
index 000000000..85923e475
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/source-highlight/source-highlight_3.1.8.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Syntax highlight utility"
+DESCRIPTION = "Source-highlight converts source code to formatted text with syntax highlighting."
+HOMEPAGE = "https://www.gnu.org/software/src-highlite/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
+
+SRC_URI = "${GNU_MIRROR}/src-highlite/${BPN}-${PV}.tar.gz \
+ file://0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch"
+SRC_URI[md5sum] = "3243470706ef5fefdc3e43b5306a4e41"
+SRC_URI[sha256sum] = "01336a7ea1d1ccc374201f7b81ffa94d0aecb33afc7d6903ebf9fbf33a55ada3"
+
+inherit autotools
+
+DEPENDS_append = " boost"
+
+DEPENDS_append_class-target = " source-highlight-native"
+
+EXTRA_OECONF = "--with-boost=yes --with-boost-libdir=${STAGING_DIR_TARGET}${libdir}"
+
+BBCLASSEXTEND = "native"
+
+# source-highlight is using its own binary from the build tree to make documentation
+# let's substitute the native binary instead
+do_configure_prepend_class-target () {
+ sed -i -e 's,^SRCHILITEEXE = $(top_builddir).*,SRCHILITEEXE = source-highlight,' ${S}/doc/Makefile.am
+}
+
+RDEPENDS_source-highlight += "bash"
diff --git a/import-layers/yocto-poky/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch b/import-layers/yocto-poky/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch
new file mode 100644
index 000000000..26540b241
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/sqlite/files/0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch
@@ -0,0 +1,56 @@
+From 4b286b441e8efa9a34eb0db8227748ebffd91c35 Mon Sep 17 00:00:00 2001
+From: Jianxun Zhang <jianxun.zhang@linux.intel.com>
+Date: Thu, 13 Oct 2016 09:24:21 -0700
+Subject: [PATCH] revert ad601c7962 that brings 2% increase of build time.
+
+The comment of the change in sqlite fossil project is:
+"For in-memory databases, it does not matter if pcache
+entries are marked "clean" or "writable"."
+
+Upstream Status: Inappropriate
+
+Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
+---
+ sqlite3.c | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/sqlite3.c b/sqlite3.c
+index ccddfe6..ecae550 100644
+--- a/sqlite3.c
++++ b/sqlite3.c
+@@ -13146,7 +13146,7 @@ struct PgHdr {
+ sqlite3_pcache_page *pPage; /* Pcache object page handle */
+ void *pData; /* Page data */
+ void *pExtra; /* Extra content */
+- PgHdr *pDirty; /* Transient list of dirty sorted by pgno */
++ PgHdr *pDirty; /* Transient list of dirty pages */
+ Pager *pPager; /* The pager this page is part of */
+ Pgno pgno; /* Page number for this page */
+ #ifdef SQLITE_CHECK_PAGES
+@@ -43504,13 +43504,7 @@ bitvec_end:
+ /* #include "sqliteInt.h" */
+
+ /*
+-** A complete page cache is an instance of this structure. Every
+-** entry in the cache holds a single page of the database file. The
+-** btree layer only operates on the cached copy of the database pages.
+-**
+-** A page cache entry is "clean" if it exactly matches what is currently
+-** on disk. A page is "dirty" if it has been modified and needs to be
+-** persisted to disk.
++** A complete page cache is an instance of this structure.
+ **
+ ** pDirty, pDirtyTail, pSynced:
+ ** All dirty pages are linked into the doubly linked list using
+@@ -48314,7 +48308,7 @@ static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){
+ pPager->pInJournal = 0;
+ pPager->nRec = 0;
+ if( rc==SQLITE_OK ){
+- if( pagerFlushOnCommit(pPager, bCommit) ){
++ if( MEMDB || pagerFlushOnCommit(pPager, bCommit) ){
+ sqlite3PcacheCleanAll(pPager->pPCache);
+ }else{
+ sqlite3PcacheClearWritable(pPager->pPCache);
+--
+2.7.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3/fix-disable-static-shell.patch b/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3/fix-disable-static-shell.patch
deleted file mode 100644
index 6f39ae266..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3/fix-disable-static-shell.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From ede5db83e38cc8ad8c9be291cd8985f7ad99f291 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 16 Feb 2016 14:00:00 -0800
-Subject: [PATCH] fix --disable-static-shell
-
-Upstream sqlite seems to be moving further and further away from
-allowing the sqlite3 command line tool to be dynamically linked with
-sqlite.
-
-The --disable-static-shell configure option added in 3.10.0 no longer
-has any effect in 3.11.0. For now patch things up and make it work.
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- Makefile.am | 13 +++++++++++--
- configure.ac | 2 +-
- 2 files changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 0e09cfc..608c0fd 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -6,9 +6,18 @@ libsqlite3_la_SOURCES = sqlite3.c
- libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8
-
- bin_PROGRAMS = sqlite3
--sqlite3_SOURCES = shell.c sqlite3.c sqlite3.h
--sqlite3_LDADD = @READLINE_LIBS@
-+sqlite3_SOURCES = shell.c sqlite3.h
-+EXTRA_sqlite3_SOURCES = sqlite3.c
-+sqlite3_LDADD = @EXTRA_SHELL_OBJ@ @READLINE_LIBS@
- sqlite3_DEPENDENCIES = @EXTRA_SHELL_OBJ@
-+
-+# Warning: Adding SQLITE_ENABLE_EXPLAIN_COMMENTS to sqlite3_CFLAGS doesn't
-+# actually have any effect if we link the sqlite3 command line tool with the
-+# libsqlite3.so shared library (which will contain a version of sqlite3.c
-+# compiled with the default AM_CFLAGS above). If SQLITE_ENABLE_EXPLAIN_COMMENTS
-+# debug is required, then sqlite3 must not be configured with
-+# --disable-static-shell
-+
- sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS
-
- include_HEADERS = sqlite3.h sqlite3ext.h
-diff --git a/configure.ac b/configure.ac
-index 8e7fd69..ada559e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -130,7 +130,7 @@ AC_ARG_ENABLE(static-shell, [AS_HELP_STRING(
- [statically link libsqlite3 into shell tool [default=yes]])],
- [], [enable_static_shell=yes])
- if test x"$enable_static_shell" == "xyes"; then
-- EXTRA_SHELL_OBJ=sqlite3.$OBJEXT
-+ EXTRA_SHELL_OBJ=sqlite3-sqlite3.$OBJEXT
- else
- EXTRA_SHELL_OBJ=libsqlite3.la
- fi
---
-1.9.1
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.11.0.bb b/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.11.0.bb
deleted file mode 100644
index 992d20cd5..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.11.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require sqlite3.inc
-
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=65f0a57ca6928710b418c094b3570bb0"
-
-SRC_URI = "http://www.sqlite.org/2016/sqlite-autoconf-${SQLITE_PV}.tar.gz \
- file://fix-disable-static-shell.patch \
-"
-
-SRC_URI[md5sum] = "a6cdc3e0a6e5087d620037ae0c48720d"
-SRC_URI[sha256sum] = "508d4dcbcf7a7181e95c717a1dc4ae3c0880b3d593be0c4b40abb6c3a0e201fb"
diff --git a/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.14.1.bb b/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.14.1.bb
new file mode 100644
index 000000000..7c8fa4052
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/sqlite/sqlite3_3.14.1.bb
@@ -0,0 +1,12 @@
+require sqlite3.inc
+
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=65f0a57ca6928710b418c094b3570bb0"
+
+SRC_URI = "\
+ http://www.sqlite.org/2016/sqlite-autoconf-${SQLITE_PV}.tar.gz \
+ file://0001-revert-ad601c7962-that-brings-2-increase-of-build-ti.patch \
+ "
+
+SRC_URI[md5sum] = "3634a90a3f49541462bcaed3474b2684"
+SRC_URI[sha256sum] = "bc7182476900017becb81565ecea7775d46ab747a97281aa610f4f45881c47a6"
diff --git a/import-layers/yocto-poky/meta/recipes-support/user-creation/xuser-account_0.1.bb b/import-layers/yocto-poky/meta/recipes-support/user-creation/xuser-account_0.1.bb
index 13ba67733..81817d1e2 100644
--- a/import-layers/yocto-poky/meta/recipes-support/user-creation/xuser-account_0.1.bb
+++ b/import-layers/yocto-poky/meta/recipes-support/user-creation/xuser-account_0.1.bb
@@ -21,7 +21,6 @@ do_install() {
FILES_${PN} = "${sysconfdir}/dbus-1/system.d/system-xuser.conf"
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system shutdown"
USERADD_PARAM_${PN} = "--create-home \
--groups video,tty,audio,input,shutdown,disk \
--user-group xuser"
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/cve-2012-2738.patch b/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/cve-2012-2738.patch
deleted file mode 100644
index 9b9980397..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/cve-2012-2738.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-Upstream-Status: Backport
-CVE: CVE-2012-2738
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From e524b0b3bd8fad844ffa73927c199545b892cdbd Mon Sep 17 00:00:00 2001
-From: Christian Persch <chpe@gnome.org>
-Date: Sat, 19 May 2012 19:36:09 +0200
-Subject: [PATCH 1/2] emulation: Limit integer arguments to 65535
-
-To guard against malicious sequences containing excessively big numbers,
-limit all parsed numbers to 16 bit range. Doing this here in the parsing
-routine is a catch-all guard; this doesn't preclude enforcing
-more stringent limits in the handlers themselves.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=676090
----
- src/table.c | 2 +-
- src/vteseq.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/table.c b/src/table.c
-index 140e8c8..85cf631 100644
---- a/src/table.c
-+++ b/src/table.c
-@@ -550,7 +550,7 @@ _vte_table_extract_numbers(GValueArray **array,
- if (G_UNLIKELY (*array == NULL)) {
- *array = g_value_array_new(1);
- }
-- g_value_set_long(&value, total);
-+ g_value_set_long(&value, CLAMP (total, 0, G_MAXUSHORT));
- g_value_array_append(*array, &value);
- } while (i++ < arginfo->length);
- g_value_unset(&value);
-diff --git a/src/vteseq.c b/src/vteseq.c
-index 7ef4c8c..10991db 100644
---- a/src/vteseq.c
-+++ b/src/vteseq.c
-@@ -557,7 +557,7 @@ vte_sequence_handler_multiple(VteTerminal *terminal,
- GValueArray *params,
- VteTerminalSequenceHandler handler)
- {
-- vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
-+ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXUSHORT);
- }
-
- static void
---
-2.4.9 (Apple Git-60)
-
-
-From cf1ad453a8def873c49cf6d88162593402f32bb2 Mon Sep 17 00:00:00 2001
-From: Christian Persch <chpe@gnome.org>
-Date: Sat, 19 May 2012 20:04:12 +0200
-Subject: [PATCH 2/2] emulation: Limit repetitions
-
-Don't allow malicious sequences to cause excessive repetitions.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=676090
----
- src/vteseq.c | 25 ++++++++++++++++++-------
- 1 file changed, 18 insertions(+), 7 deletions(-)
-
-diff --git a/src/vteseq.c b/src/vteseq.c
-index 10991db..209522f 100644
---- a/src/vteseq.c
-+++ b/src/vteseq.c
-@@ -1392,7 +1392,7 @@ vte_sequence_handler_dc (VteTerminal *terminal, GValueArray *params)
- static void
- vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params)
- {
-- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc);
-+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_dc);
- }
-
- /* Delete a line at the current cursor position. */
-@@ -1785,7 +1785,7 @@ vte_sequence_handler_reverse_index (VteTerminal *terminal, GValueArray *params)
- static void
- vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params)
- {
-- vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd);
-+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_nd);
- }
-
- /* Save cursor (position). */
-@@ -2777,8 +2777,7 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
- {
- GValue *value;
- VteScreen *screen;
-- long param, end, row;
-- int i;
-+ long param, end, row, i, limit;
- screen = terminal->pvt->screen;
- /* The default is one. */
- param = 1;
-@@ -2796,7 +2795,13 @@ vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
- } else {
- end = screen->insert_delta + terminal->row_count - 1;
- }
-- /* Insert the new lines at the cursor. */
-+
-+ /* Only allow to insert as many lines as there are between this row
-+ * and the end of the scrolling region. See bug #676090.
-+ */
-+ limit = end - row + 1;
-+ param = MIN (param, limit);
-+
- for (i = 0; i < param; i++) {
- /* Clear a line off the end of the region and add one to the
- * top of the region. */
-@@ -2817,8 +2822,7 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
- {
- GValue *value;
- VteScreen *screen;
-- long param, end, row;
-- int i;
-+ long param, end, row, i, limit;
-
- screen = terminal->pvt->screen;
- /* The default is one. */
-@@ -2837,6 +2841,13 @@ vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
- } else {
- end = screen->insert_delta + terminal->row_count - 1;
- }
-+
-+ /* Only allow to delete as many lines as there are between this row
-+ * and the end of the scrolling region. See bug #676090.
-+ */
-+ limit = end - row + 1;
-+ param = MIN (param, limit);
-+
- /* Clear them from below the current cursor. */
- for (i = 0; i < param; i++) {
- /* Insert a line at the end of the region and remove one from
---
-2.4.9 (Apple Git-60)
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/obsolete_automake_macros.patch b/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/obsolete_automake_macros.patch
deleted file mode 100644
index 6763d3754..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/vte/vte-0.28.2/obsolete_automake_macros.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=691545]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd vte-0.28.2/gnome-pty-helper/configure.in vte-0.28.2/gnome-pty-helper/configure.in
---- vte-0.28.2/gnome-pty-helper/configure.in 2010-07-15 20:08:44.000000000 +0300
-+++ vte-0.28.2/gnome-pty-helper/configure.in 2013-01-11 14:50:34.971027440 +0200
-@@ -8,7 +8,6 @@
- AC_ISC_POSIX
- AC_PROG_CC
- AC_STDC_HEADERS
--AM_PROG_CC_STDC
-
- if test -z "$enable_maintainer_mode"; then
- enable_maintainer_mode=yes
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte.inc b/import-layers/yocto-poky/meta/recipes-support/vte/vte.inc
deleted file mode 100644
index 8565cc2ad..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/vte/vte.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Virtual terminal emulator GTK+ widget library"
-BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "LGPLv2.0"
-DEPENDS = " glib-2.0 gtk+ intltool-native ncurses"
-RDEPENDS_libvte = "vte-termcap"
-
-inherit gnome gtk-doc distro_features_check upstream-version-is-even gobject-introspection
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-EXTRA_OECONF = "--disable-python"
-
-PACKAGES =+ "libvte vte-termcap"
-FILES_libvte = "${libdir}/*.so.* ${libexecdir}/gnome-pty-helper"
-FILES_vte-termcap = "${datadir}/vte/termcap-0.0"
-
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch b/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
new file mode 100644
index 000000000..1c5630ed9
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Add-m4-vapigen.m4.patch
@@ -0,0 +1,119 @@
+From 08ca1c48b25c332b75bba2a6b5d757da006e955b Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Fri, 7 Oct 2016 16:27:57 +0300
+Subject: [PATCH] Add m4/vapigen.m4
+
+Building without vala will fail if we don't have a vapigen.m4.
+
+Upstream-Status: Pending
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ m4/vapigen.m4 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 96 insertions(+)
+ create mode 100644 m4/vapigen.m4
+
+diff --git a/m4/vapigen.m4 b/m4/vapigen.m4
+new file mode 100644
+index 0000000..f2df12f
+--- /dev/null
++++ b/m4/vapigen.m4
+@@ -0,0 +1,96 @@
++dnl vapigen.m4
++dnl
++dnl Copyright 2012 Evan Nemerson
++dnl
++dnl This library is free software; you can redistribute it and/or
++dnl modify it under the terms of the GNU Lesser General Public
++dnl License as published by the Free Software Foundation; either
++dnl version 2.1 of the License, or (at your option) any later version.
++dnl
++dnl This library is distributed in the hope that it will be useful,
++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++dnl Lesser General Public License for more details.
++dnl
++dnl You should have received a copy of the GNU Lesser General Public
++dnl License along with this library; if not, write to the Free Software
++dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++
++# VAPIGEN_CHECK([VERSION], [API_VERSION], [FOUND-INTROSPECTION], [DEFAULT])
++# --------------------------------------
++# Check vapigen existence and version
++#
++# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
++AC_DEFUN([VAPIGEN_CHECK],
++[
++ AC_BEFORE([GOBJECT_INTROSPECTION_CHECK],[$0])
++ AC_BEFORE([GOBJECT_INTROSPECTION_REQUIRE],[$0])
++
++ AC_ARG_ENABLE([vala],
++ [AS_HELP_STRING([--enable-vala[=@<:@no/auto/yes@:>@]],[build Vala bindings @<:@default=]ifelse($4,,auto,$4)[@:>@])],,[
++ AS_IF([test "x$4" = "x"], [
++ enable_vala=auto
++ ], [
++ enable_vala=$4
++ ])
++ ])
++
++ AS_CASE([$enable_vala], [no], [enable_vala=no],
++ [yes], [
++ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
++ AC_MSG_ERROR([Vala bindings require GObject Introspection])
++ ])
++ ], [auto], [
++ AS_IF([test "x$3" != "xyes" -a "x$found_introspection" != "xyes"], [
++ enable_vala=no
++ ])
++ ], [
++ AC_MSG_ERROR([Invalid argument passed to --enable-vala, should be one of @<:@no/auto/yes@:>@])
++ ])
++
++ AS_IF([test "x$2" = "x"], [
++ vapigen_pkg_name=vapigen
++ ], [
++ vapigen_pkg_name=vapigen-$2
++ ])
++ AS_IF([test "x$1" = "x"], [
++ vapigen_pkg="$vapigen_pkg_name"
++ ], [
++ vapigen_pkg="$vapigen_pkg_name >= $1"
++ ])
++
++ PKG_PROG_PKG_CONFIG
++
++ PKG_CHECK_EXISTS([$vapigen_pkg], [
++ AS_IF([test "$enable_vala" = "auto"], [
++ enable_vala=yes
++ ])
++ ], [
++ AS_CASE([$enable_vala], [yes], [
++ AC_MSG_ERROR([$vapigen_pkg not found])
++ ], [auto], [
++ enable_vala=no
++ ])
++ ])
++
++ AC_MSG_CHECKING([for vala])
++
++ AS_CASE([$enable_vala],
++ [yes], [
++ VAPIGEN=`$PKG_CONFIG --variable=vapigen vapigen`
++ VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir vapigen`/vala/Makefile.vapigen
++ AS_IF([test "x$2" = "x"], [
++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir vapigen`
++ ], [
++ VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned vapigen`
++ ])
++ ])
++
++ AC_MSG_RESULT([$enable_vala])
++
++ AC_SUBST([VAPIGEN])
++ AC_SUBST([VAPIGEN_VAPIDIR])
++ AC_SUBST([VAPIGEN_MAKEFILE])
++
++ AM_CONDITIONAL(ENABLE_VAPIGEN, test "x$enable_vala" = "xyes")
++])
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch b/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
new file mode 100644
index 000000000..fcfc55975
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/vte/vte/0001-Don-t-enable-stack-protection-by-default.patch
@@ -0,0 +1,29 @@
+From b0a579d83e355545b64742c997fe8b1d58bf4207 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Mon, 13 Jun 2016 11:05:00 +0300
+Subject: [PATCH] Don't enable stack-protection by default
+
+These are set by security_flags.inc.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 068d072..d580f84 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -138,8 +138,6 @@ m4_define([compiler_flags_common],[ dnl
+ -fno-common dnl
+ -fdiagnostics-show-option dnl
+ -fno-strict-aliasing dnl
+- -fstack-protector dnl
+- -fstack-protector-strong dnl
+ -fno-semantic-interposition dnl
+ -Wno-deprecated-declarations dnl
+ ])
+--
+2.1.4
+
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.28.2.bb b/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.28.2.bb
deleted file mode 100644
index 74087ca83..000000000
--- a/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.28.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require vte.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-
-PR = "r6"
-
-SRC_URI += "file://obsolete_automake_macros.patch \
- file://cve-2012-2738.patch \
- "
-
-CFLAGS += "-D_GNU_SOURCE"
-
-SRC_URI[archive.md5sum] = "497f26e457308649e6ece32b3bb142ff"
-SRC_URI[archive.sha256sum] = "86cf0b81aa023fa93ed415653d51c96767f20b2d7334c893caba71e42654b0ae"
-
-RECIPE_NO_UPDATE_REASON = "matchbox-terminal needs to be ported over to new vte first"
diff --git a/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.44.2.bb b/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.44.2.bb
new file mode 100644
index 000000000..a0b671e05
--- /dev/null
+++ b/import-layers/yocto-poky/meta/recipes-support/vte/vte_0.44.2.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Virtual terminal emulator GTK+ widget library"
+BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
+LICENSE = "LGPLv2.1+"
+DEPENDS = "glib-2.0 gtk+3 intltool-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+inherit gnomebase gtk-doc distro_features_check upstream-version-is-even gobject-introspection
+
+# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
+SRC_URI += "file://0001-Don-t-enable-stack-protection-by-default.patch \
+ ${@bb.utils.contains('PACKAGECONFIG', 'vala', '', 'file://0001-Add-m4-vapigen.m4.patch', d) } \
+ "
+SRC_URI[archive.md5sum] = "eca8f8a9d9f9bb8e9d592d0acfeec015"
+SRC_URI[archive.sha256sum] = "a1ea594814bb136a3a9a6c7656b46240571f6a198825c1111007fe99194b0949"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+# Instead of "inherit vala" we do the relevant settings here so we can
+# set DEPENDS based on PACKAGECONFIG.
+
+# Our patched version of Vala looks in STAGING_DATADIR for .vapi files
+export STAGING_DATADIR
+# Upstream Vala >= 0.11 looks in XDG_DATA_DIRS for .vapi files
+export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+
+# Package additional files
+FILES_${PN}-dev += "${datadir}/vala/vapi/*"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[vala] = "--enable-vala,--disable-vala,vala-native vala"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+EXTRA_OECONF = "--disable-test-application"
+
+# libtool adds "-nostdlib" when g++ is used. This breaks PIE builds.
+# Use libtool-cross (which has a hack to prevent that) instead.
+EXTRA_OEMAKE_class-target = "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+
+PACKAGES =+ "libvte"
+FILES_libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
diff --git a/import-layers/yocto-poky/meta/site/arm-common b/import-layers/yocto-poky/meta/site/arm-common
index a3c979fe0..198c98c6a 100644
--- a/import-layers/yocto-poky/meta/site/arm-common
+++ b/import-layers/yocto-poky/meta/site/arm-common
@@ -113,7 +113,6 @@ rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no}
rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no}
rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no}
rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes}
-rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes}
rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no}
rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no}
diff --git a/import-layers/yocto-poky/meta/site/common-linux b/import-layers/yocto-poky/meta/site/common-linux
index 0a752a40e..295871639 100644
--- a/import-layers/yocto-poky/meta/site/common-linux
+++ b/import-layers/yocto-poky/meta/site/common-linux
@@ -61,3 +61,6 @@ ac_cv_have_long_long_format=yes
# apache
ac_cv_o_nonblock_inherited=${ac_cv_o_nonblock_inherited=no}
+
+# rsync
+rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
diff --git a/import-layers/yocto-poky/meta/site/ix86-common b/import-layers/yocto-poky/meta/site/ix86-common
index 23b8e8bc2..f4cf0b8db 100644
--- a/import-layers/yocto-poky/meta/site/ix86-common
+++ b/import-layers/yocto-poky/meta/site/ix86-common
@@ -154,7 +154,6 @@ rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no}
rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no}
rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no}
rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes}
-rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes}
rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no}
rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no}
diff --git a/import-layers/yocto-poky/meta/site/mips64el-linux b/import-layers/yocto-poky/meta/site/mips64el-linux
index 8b61eb0f3..680171d5e 100644
--- a/import-layers/yocto-poky/meta/site/mips64el-linux
+++ b/import-layers/yocto-poky/meta/site/mips64el-linux
@@ -35,6 +35,7 @@ glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
ac_cv_alignof_guint32=4
ac_cv_alignof_guint64=8
ac_cv_alignof_unsigned_long=8
+ac_cv_sizeof_ssize_t=8
# libpcap
ac_cv_linux_vers=${ac_cv_linux_vers=2}
diff --git a/import-layers/yocto-poky/meta/site/mipsisa32r6-linux b/import-layers/yocto-poky/meta/site/mipsisa32r6-linux
new file mode 100644
index 000000000..72a54f95e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/site/mipsisa32r6-linux
@@ -0,0 +1,79 @@
+# general
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}
+
+# bash
+ac_cv_c_long_double=${ac_cv_c_long_double=no}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
+
+# openssh
+ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
+ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
+ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
+ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
+ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}
+
+# fget
+compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}
+
+# glib
+glib_cv___va_copy=${glib_cv___va_copy=yes}
+glib_cv_has__inline=${glib_cv_has__inline=yes}
+glib_cv_has__inline__=${glib_cv_has__inline__=yes}
+glib_cv_hasinline=${glib_cv_hasinline=yes}
+glib_cv_long_long_format=${glib_cv_long_long_format=ll}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
+glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
+glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+glib_cv_uscore=${glib_cv_uscore=no}
+
+# glib-2.0
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
+glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+
+# libpcap
+ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+# startup-notification
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
+
+# libidl
+libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
+
+# ncftp
+wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
+wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}
+
+# db
+db_cv_align_t=${db_cv_align_t='unsigned long long'}
+db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
+db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
+db_cv_sprintf_count=${db_cv_sprintf_count=yes}
+
+# rrdtool
+rd_cv_ieee_works=${rd_cv_ieee_works=yes}
+# ac_cv_path_PERL=${ac_cv_path_PERL=no}
+
+# gettext
+am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+# samba
+samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}
+
+# vim
+ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
+
+# intercom
+ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+# lmbench
+ac_cv_uint=${ac_cv_unit=yes}
+
+# D-BUS
+ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
+
+# evolution-data-server
+ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}
+
diff --git a/import-layers/yocto-poky/meta/site/mipsisa32r6el-linux b/import-layers/yocto-poky/meta/site/mipsisa32r6el-linux
new file mode 100644
index 000000000..696b1beeb
--- /dev/null
+++ b/import-layers/yocto-poky/meta/site/mipsisa32r6el-linux
@@ -0,0 +1,79 @@
+# general
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}
+
+# bash
+ac_cv_c_long_double=${ac_cv_c_long_double=no}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
+
+# openssh
+ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
+ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
+ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
+ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
+ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}
+
+# fget
+compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}
+
+# glib
+glib_cv___va_copy=${glib_cv___va_copy=yes}
+glib_cv_has__inline=${glib_cv_has__inline=yes}
+glib_cv_has__inline__=${glib_cv_has__inline__=yes}
+glib_cv_hasinline=${glib_cv_hasinline=yes}
+glib_cv_long_long_format=${glib_cv_long_long_format=ll}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
+glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
+glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+glib_cv_uscore=${glib_cv_uscore=no}
+
+# glib-2.0
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
+glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+
+# libpcap
+ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+# startup-notification
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
+
+# libidl
+libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
+
+# ncftp
+wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
+wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}
+wi_cv_unix_domain_sockets=${wi_cv_unix_domain_sockets=yes}
+
+# db
+db_cv_align_t=${db_cv_align_t='unsigned long long'}
+db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
+db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
+db_cv_sprintf_count=${db_cv_sprintf_count=yes}
+
+# rrdtool
+rd_cv_ieee_works=${rd_cv_ieee_works=yes}
+# ac_cv_path_PERL=${ac_cv_path_PERL=no}
+
+# gettext
+am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+# samba
+samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}
+
+# vim
+ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
+
+# intercom
+ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+#lmbench
+ac_cv_uint=${ac_cv_unit=yes}
+
+# D-BUS
+ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
+
+# evolution-data-server
+ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}
diff --git a/import-layers/yocto-poky/meta/site/mipsisa64r6-linux b/import-layers/yocto-poky/meta/site/mipsisa64r6-linux
new file mode 100644
index 000000000..ed0fbbe65
--- /dev/null
+++ b/import-layers/yocto-poky/meta/site/mipsisa64r6-linux
@@ -0,0 +1,83 @@
+# general
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}
+
+# bash
+ac_cv_c_long_double=${ac_cv_c_long_double=no}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
+
+# openssh
+ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
+ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
+ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
+ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
+ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}
+
+# fget
+compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}
+
+# glib
+glib_cv___va_copy=${glib_cv___va_copy=yes}
+glib_cv_has__inline=${glib_cv_has__inline=yes}
+glib_cv_has__inline__=${glib_cv_has__inline__=yes}
+glib_cv_hasinline=${glib_cv_hasinline=yes}
+glib_cv_long_long_format=${glib_cv_long_long_format=ll}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
+glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
+glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+glib_cv_uscore=${glib_cv_uscore=no}
+
+# glib-2.0
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
+glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+ac_cv_alignof_guint32=4
+ac_cv_alignof_guint64=8
+ac_cv_alignof_unsigned_long=8
+ac_cv_sizeof_ssize_t=8
+
+# libpcap
+ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+# startup-notification
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
+
+# libidl
+libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
+
+# ncftp
+wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
+wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}
+
+# db
+db_cv_align_t=${db_cv_align_t='unsigned long long'}
+db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
+db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
+db_cv_sprintf_count=${db_cv_sprintf_count=yes}
+
+# rrdtool
+rd_cv_ieee_works=${rd_cv_ieee_works=yes}
+# ac_cv_path_PERL=${ac_cv_path_PERL=no}
+
+# gettext
+am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+# samba
+samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}
+
+# vim
+ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
+
+# intercom
+ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+# lmbench
+ac_cv_uint=${ac_cv_unit=yes}
+
+# D-BUS
+ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
+
+# eds-dbus
+ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}
+
diff --git a/import-layers/yocto-poky/meta/site/mipsisa64r6el-linux b/import-layers/yocto-poky/meta/site/mipsisa64r6el-linux
new file mode 100644
index 000000000..680171d5e
--- /dev/null
+++ b/import-layers/yocto-poky/meta/site/mipsisa64r6el-linux
@@ -0,0 +1,83 @@
+# general
+ac_cv_func_setvbuf_reversed=${ac_cv_func_setvbuf_reversed=no}
+
+# bash
+ac_cv_c_long_double=${ac_cv_c_long_double=no}
+bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
+
+# openssh
+ac_cv_have_accrights_in_msghdr=${ac_cv_have_accrights_in_msghdr=no}
+ac_cv_have_broken_snprintf=${ac_cv_have_broken_snprintf=no}
+ac_cv_have_control_in_msghdr=${ac_cv_have_control_in_msghdr=yes}
+ac_cv_have_openpty_ctty_bug=${ac_cv_have_openpty_ctty_bug=no}
+ac_cv_have_space_d_name_in_struct_dirent=${ac_cv_have_space_d_name_in_struct_dirent=yes}
+
+# fget
+compat_cv_func_snprintf_works=${compat_cv_func_snprintf_works=yes}
+
+# glib
+glib_cv___va_copy=${glib_cv___va_copy=yes}
+glib_cv_has__inline=${glib_cv_has__inline=yes}
+glib_cv_has__inline__=${glib_cv_has__inline__=yes}
+glib_cv_hasinline=${glib_cv_hasinline=yes}
+glib_cv_long_long_format=${glib_cv_long_long_format=ll}
+glib_cv_rtldglobal_broken=${glib_cv_rtldglobal_broken=no}
+glib_cv_sane_realloc=${glib_cv_sane_realloc=yes}
+glib_cv_sizeof_gmutex=${glib_cv_sizeof_gmutex=24}
+glib_cv_sizeof_system_thread=${glib_cv_sizeof_system_thread=4}
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+glib_cv_uscore=${glib_cv_uscore=no}
+
+# glib-2.0
+glib_cv_stack_grows=${glib_cv_stack_grows=no}
+utils_cv_sys_open_max=${utils_cv_sys_open_max=1015}
+glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+ac_cv_alignof_guint32=4
+ac_cv_alignof_guint64=8
+ac_cv_alignof_unsigned_long=8
+ac_cv_sizeof_ssize_t=8
+
+# libpcap
+ac_cv_linux_vers=${ac_cv_linux_vers=2}
+
+# startup-notification
+lf_cv_sane_realloc=${lf_cv_sane_realloc=yes}
+
+# libidl
+libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
+
+# ncftp
+wi_cv_struct_timeval_tv_sec=${wi_cv_struct_timeval_tv_sec=long}
+wi_cv_struct_timeval_tv_usec=${wi_cv_struct_timeval_tv_usec=long}
+wi_cv_unix_domain_sockets=${wi_cv_unix_domain_sockets=yes}
+
+# db
+db_cv_align_t=${db_cv_align_t='unsigned long long'}
+db_cv_alignp_t=${db_cv_alignp_t='unsigned long'}
+db_cv_fcntl_f_setfd=${db_cv_fcntl_f_setfd=yes}
+db_cv_sprintf_count=${db_cv_sprintf_count=yes}
+
+# rrdtool
+rd_cv_ieee_works=${rd_cv_ieee_works=yes}
+# ac_cv_path_PERL=${ac_cv_path_PERL=no}
+
+# gettext
+am_cv_func_working_getline=${am_cv_func_working_getline=yes}
+
+# samba
+samba_cv_HAVE_GETTIMEOFDAY_TZ=${samba_cv_HAVE_GETTIMEOFDAY_TZ=yes}
+
+# vim
+ac_cv_sizeof_int=${ac_cv_sizeof_int=4}
+
+# intercom
+ac_cv_func_fnmatch_works=${ac_cv_func_fnmatch_works=yes}
+
+#lmbench
+ac_cv_uint=${ac_cv_unit=yes}
+
+# D-BUS
+ac_cv_func_posix_getpwnam_r=${ac_cv_func_posix_getpwnam_r=yes}
+
+# eds-dbus
+ac_cv_libiconv_utf8=${ac_cv_libiconv_utf8=yes}
diff --git a/import-layers/yocto-poky/meta/site/nios2-linux b/import-layers/yocto-poky/meta/site/nios2-linux
index 95c09d3b4..2f4e570fa 100644
--- a/import-layers/yocto-poky/meta/site/nios2-linux
+++ b/import-layers/yocto-poky/meta/site/nios2-linux
@@ -171,7 +171,6 @@ rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no}
rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no}
rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no}
rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes}
-rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes}
rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no}
rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no}
diff --git a/import-layers/yocto-poky/meta/site/sh-common b/import-layers/yocto-poky/meta/site/sh-common
index 5cbf36a79..fc4d6ad79 100644
--- a/import-layers/yocto-poky/meta/site/sh-common
+++ b/import-layers/yocto-poky/meta/site/sh-common
@@ -216,7 +216,6 @@ rsync_cv_HAVE_SHORT_INO_T=${rsync_cv_HAVE_SHORT_INO_T=no}
rsync_cv_HAVE_UNSIGNED_CHAR=${rsync_cv_HAVE_UNSIGNED_CHAR=no}
rsync_cv_HAVE_BROKEN_READDIR=${rsync_cv_HAVE_BROKEN_READDIR=no}
rsync_cv_HAVE_GETTIMEOFDAY_TZ=${rsync_cv_HAVE_GETTIMEOFDAY_TZ=yes}
-rsync_cv_HAVE_C99_VSNPRINTF=${rsync_cv_HAVE_C99_VSNPRINTF=yes}
rsync_cv_HAVE_SECURE_MKSTEMP=${rsync_cv_HAVE_SECURE_MKSTEMP=yes}
rsync_cv_REPLACE_INET_NTOA=${rsync_cv_REPLACE_INET_NTOA=no}
rsync_cv_REPLACE_INET_ATON=${rsync_cv_REPLACE_INET_ATON=no}
diff --git a/import-layers/yocto-poky/scripts/bitbake-whatchanged b/import-layers/yocto-poky/scripts/bitbake-whatchanged
index af54d16f8..0207777e6 100755
--- a/import-layers/yocto-poky/scripts/bitbake-whatchanged
+++ b/import-layers/yocto-poky/scripts/bitbake-whatchanged
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
@@ -17,7 +17,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-from __future__ import print_function
import os
import sys
import getopt
@@ -25,7 +24,7 @@ import shutil
import re
import warnings
import subprocess
-from optparse import OptionParser
+import argparse
scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
lib_path = scripts_path + '/lib'
@@ -38,6 +37,8 @@ bitbakepath = scriptpath.add_bitbake_lib_path()
if not bitbakepath:
sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n")
sys.exit(1)
+scriptpath.add_oe_lib_path()
+import argparse_oe
import bb.siggen
import bb.process
@@ -118,7 +119,7 @@ def print_added(d_new = None, d_old = None):
Print the newly added tasks
"""
added = {}
- for k in d_new.keys():
+ for k in list(d_new.keys()):
if k not in d_old:
# Add the new one to added dict, and remove it from
# d_new, so the remaining ones are the changed ones
@@ -153,7 +154,7 @@ def print_vrchanged(d_new = None, d_old = None, vr = None):
"""
pvchanged = {}
counter = 0
- for k in d_new.keys():
+ for k in list(d_new.keys()):
if d_new.get(k).get(vr) != d_old.get(k).get(vr):
counter += 1
pn, task = split_pntask(k)
@@ -219,9 +220,7 @@ def main():
3) Use bb.siggen.compare_sigfiles to diff the old and new stamps
"""
- parser = OptionParser(
- version = "1.0",
- usage = """%prog [options] [package ...]
+ parser = argparse_oe.ArgumentParser(usage = """%(prog)s [options] [package ...]
print what will be done between the current and last builds, for example:
$ bitbake core-image-sato
@@ -236,17 +235,9 @@ Note:
The "nostamp" task is not included.
"""
)
- parser.add_option("-v", "--verbose", help = "print the verbose changes",
- action = "store_true", dest = "verbose")
-
- options, args = parser.parse_args(sys.argv)
-
- verbose = options.verbose
-
- if len(args) != 2:
- parser.error("Incorrect number of arguments")
- else:
- recipe = args[1]
+ parser.add_argument("recipe", help="recipe to check")
+ parser.add_argument("-v", "--verbose", help = "print the verbose changes", action = "store_true")
+ args = parser.parse_args()
# Get the STAMPS_DIR
print("Figuring out the STAMPS_DIR ...")
@@ -256,7 +247,7 @@ Note:
except:
raise
if not stampsdir:
- print("ERROR: No STAMPS_DIR found for '%s'" % recipe, file=sys.stderr)
+ print("ERROR: No STAMPS_DIR found for '%s'" % args.recipe, file=sys.stderr)
return 2
stampsdir = stampsdir.rstrip("\n")
if not os.path.isdir(stampsdir):
@@ -272,7 +263,7 @@ Note:
try:
# Generate the new stamps dir
print("Generating the new stamps ... (need several minutes)")
- cmdline = "STAMPS_DIR=%s bitbake -S none %s" % (new_stampsdir, recipe)
+ cmdline = "STAMPS_DIR=%s bitbake -S none %s" % (new_stampsdir, args.recipe)
# FIXME
# The "bitbake -S" may fail, not fatal error, the stamps will still
# be generated, this might be a bug of "bitbake -S".
@@ -287,7 +278,7 @@ Note:
# Remove the same one from both stamps.
cnt_unchanged = 0
- for k in new_dict.keys():
+ for k in list(new_dict.keys()):
if k in old_dict:
cnt_unchanged += 1
del(new_dict[k])
@@ -310,17 +301,17 @@ Note:
# PV (including PE) and PR changed
# Let the bb.siggen handle them if verbose
cnt_rv = {}
- if not verbose:
+ if not args.verbose:
for i in ('pv', 'pr'):
cnt_rv[i] = print_vrchanged(new_recon, old_recon, i)
# Dependencies changed (use bitbake-diffsigs)
- cnt_dep = print_depchanged(new_recon, old_recon, verbose)
+ cnt_dep = print_depchanged(new_recon, old_recon, args.verbose)
total_changed = cnt_added + (cnt_rv.get('pv') or 0) + (cnt_rv.get('pr') or 0) + cnt_dep
print("\n=== Summary: (%s changed, %s unchanged)" % (total_changed, cnt_unchanged))
- if verbose:
+ if args.verbose:
print("Newly added: %s\nDependencies changed: %s\n" % \
(cnt_added, cnt_dep))
else:
diff --git a/import-layers/yocto-poky/scripts/buildhistory-collect-srcrevs b/import-layers/yocto-poky/scripts/buildhistory-collect-srcrevs
index f3eb76bd0..8a03580f8 100755
--- a/import-layers/yocto-poky/scripts/buildhistory-collect-srcrevs
+++ b/import-layers/yocto-poky/scripts/buildhistory-collect-srcrevs
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Collects the recorded SRCREV values from buildhistory and reports on them
#
@@ -103,7 +103,7 @@ def main():
if options.reportall or value != orig:
all_srcrevs[curdir].append((pn, name, srcrev))
- for curdir, srcrevs in sorted(all_srcrevs.iteritems()):
+ for curdir, srcrevs in sorted(all_srcrevs.items()):
if srcrevs:
print('# %s' % curdir)
for pn, name, srcrev in srcrevs:
diff --git a/import-layers/yocto-poky/scripts/buildhistory-diff b/import-layers/yocto-poky/scripts/buildhistory-diff
index dfebcddf7..d8ca12d3e 100755
--- a/import-layers/yocto-poky/scripts/buildhistory-diff
+++ b/import-layers/yocto-poky/scripts/buildhistory-diff
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Report significant differences in the buildhistory repository since a specific revision
#
@@ -14,7 +14,7 @@ from distutils.version import LooseVersion
try:
import git
except ImportError:
- print("Please install GitPython (python-git) 0.3.1 or later in order to use this script")
+ print("Please install GitPython (python3-git) 0.3.4 or later in order to use this script")
sys.exit(1)
def main():
diff --git a/import-layers/yocto-poky/scripts/buildstats-diff b/import-layers/yocto-poky/scripts/buildstats-diff
new file mode 100755
index 000000000..f918a6d5e
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/buildstats-diff
@@ -0,0 +1,564 @@
+#!/usr/bin/python3
+#
+# Script for comparing buildstats from two different builds
+#
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+import argparse
+import glob
+import json
+import logging
+import math
+import os
+import re
+import sys
+from collections import namedtuple
+from datetime import datetime, timedelta, tzinfo
+from operator import attrgetter
+
+# Setup logging
+logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
+log = logging.getLogger()
+
+
+class ScriptError(Exception):
+ """Exception for internal error handling of this script"""
+ pass
+
+
+class TimeZone(tzinfo):
+ """Simple fixed-offset tzinfo"""
+ def __init__(self, seconds, name):
+ self._offset = timedelta(seconds=seconds)
+ self._name = name
+
+ def utcoffset(self, dt):
+ return self._offset
+
+ def tzname(self, dt):
+ return self._name
+
+ def dst(self, dt):
+ return None
+
+TIMEZONES = {'UTC': TimeZone(0, 'UTC'),
+ 'EET': TimeZone(7200, 'EET'),
+ 'EEST': TimeZone(10800, 'EEST')}
+
+taskdiff_fields = ('pkg', 'pkg_op', 'task', 'task_op', 'value1', 'value2',
+ 'absdiff', 'reldiff')
+TaskDiff = namedtuple('TaskDiff', ' '.join(taskdiff_fields))
+
+
+def to_datetime_obj(obj):
+ """Helper for getting timestamps in datetime format"""
+ if isinstance(obj, datetime):
+ return obj
+ else:
+ return datetime.utcfromtimestamp(obj).replace(tzinfo=TIMEZONES['UTC'])
+
+
+class BSTask(dict):
+ def __init__(self, *args, **kwargs):
+ self['start_time'] = None
+ self['elapsed_time'] = None
+ self['status'] = None
+ self['iostat'] = {}
+ self['rusage'] = {}
+ self['child_rusage'] = {}
+ super(BSTask, self).__init__(*args, **kwargs)
+
+ @property
+ def cputime(self):
+ """Sum of user and system time taken by the task"""
+ return self['rusage']['ru_stime'] + self['rusage']['ru_utime'] + \
+ self['child_rusage']['ru_stime'] + self['child_rusage']['ru_utime']
+
+ @property
+ def walltime(self):
+ """Elapsed wall clock time"""
+ return self['elapsed_time'].total_seconds()
+
+ @property
+ def read_bytes(self):
+ """Bytes read from the block layer"""
+ return self['iostat']['read_bytes']
+
+ @property
+ def write_bytes(self):
+ """Bytes written to the block layer"""
+ return self['iostat']['write_bytes']
+
+ @property
+ def read_ops(self):
+ """Number of read operations on the block layer"""
+ return self['rusage']['ru_inblock'] + self['child_rusage']['ru_inblock']
+
+ @property
+ def write_ops(self):
+ """Number of write operations on the block layer"""
+ return self['rusage']['ru_oublock'] + self['child_rusage']['ru_oublock']
+
+
+def read_buildstats_file(buildstat_file):
+ """Convert buildstat text file into dict/json"""
+ bs_task = BSTask()
+ log.debug("Reading task buildstats from %s", buildstat_file)
+ with open(buildstat_file) as fobj:
+ for line in fobj.readlines():
+ key, val = line.split(':', 1)
+ val = val.strip()
+ if key == 'Started':
+ start_time = to_datetime_obj(float(val))
+ bs_task['start_time'] = start_time
+ elif key == 'Ended':
+ end_time = to_datetime_obj(float(val))
+ elif key.startswith('IO '):
+ split = key.split()
+ bs_task['iostat'][split[1]] = int(val)
+ elif key.find('rusage') >= 0:
+ split = key.split()
+ ru_key = split[-1]
+ if ru_key in ('ru_stime', 'ru_utime'):
+ val = float(val)
+ else:
+ val = int(val)
+ ru_type = 'rusage' if split[0] == 'rusage' else \
+ 'child_rusage'
+ bs_task[ru_type][ru_key] = val
+ elif key == 'Status':
+ bs_task['status'] = val
+ bs_task['elapsed_time'] = end_time - start_time
+ return bs_task
+
+
+def read_buildstats_dir(bs_dir):
+ """Read buildstats directory"""
+ def split_nevr(nevr):
+ """Split name and version information from recipe "nevr" string"""
+ n_e_v, revision = nevr.rsplit('-', 1)
+ match = re.match(r'^(?P<name>\S+)-((?P<epoch>[0-9]{1,5})_)?(?P<version>[0-9]\S*)$',
+ n_e_v)
+ if not match:
+ # If we're not able to parse a version starting with a number, just
+ # take the part after last dash
+ match = re.match(r'^(?P<name>\S+)-((?P<epoch>[0-9]{1,5})_)?(?P<version>[^-]+)$',
+ n_e_v)
+ name = match.group('name')
+ version = match.group('version')
+ epoch = match.group('epoch')
+ return name, epoch, version, revision
+
+ if not os.path.isfile(os.path.join(bs_dir, 'build_stats')):
+ raise ScriptError("{} does not look like a buildstats directory".format(bs_dir))
+
+ log.debug("Reading buildstats directory %s", bs_dir)
+
+ buildstats = {}
+ subdirs = os.listdir(bs_dir)
+ for dirname in subdirs:
+ recipe_dir = os.path.join(bs_dir, dirname)
+ if not os.path.isdir(recipe_dir):
+ continue
+ name, epoch, version, revision = split_nevr(dirname)
+ recipe_bs = {'nevr': dirname,
+ 'name': name,
+ 'epoch': epoch,
+ 'version': version,
+ 'revision': revision,
+ 'tasks': {}}
+ for task in os.listdir(recipe_dir):
+ recipe_bs['tasks'][task] = [read_buildstats_file(
+ os.path.join(recipe_dir, task))]
+ if name in buildstats:
+ raise ScriptError("Cannot handle multiple versions of the same "
+ "package ({})".format(name))
+ buildstats[name] = recipe_bs
+
+ return buildstats
+
+
+def bs_append(dst, src):
+ """Append data from another buildstats"""
+ if set(dst.keys()) != set(src.keys()):
+ raise ScriptError("Refusing to join buildstats, set of packages is "
+ "different")
+ for pkg, data in dst.items():
+ if data['nevr'] != src[pkg]['nevr']:
+ raise ScriptError("Refusing to join buildstats, package version "
+ "differs: {} vs. {}".format(data['nevr'], src[pkg]['nevr']))
+ if set(data['tasks'].keys()) != set(src[pkg]['tasks'].keys()):
+ raise ScriptError("Refusing to join buildstats, set of tasks "
+ "in {} differ".format(pkg))
+ for taskname, taskdata in data['tasks'].items():
+ taskdata.extend(src[pkg]['tasks'][taskname])
+
+
+def read_buildstats_json(path):
+ """Read buildstats from JSON file"""
+ buildstats = {}
+ with open(path) as fobj:
+ bs_json = json.load(fobj)
+ for recipe_bs in bs_json:
+ if recipe_bs['name'] in buildstats:
+ raise ScriptError("Cannot handle multiple versions of the same "
+ "package ({})".format(recipe_bs['name']))
+
+ if recipe_bs['epoch'] is None:
+ recipe_bs['nevr'] = "{}-{}-{}".format(recipe_bs['name'], recipe_bs['version'], recipe_bs['revision'])
+ else:
+ recipe_bs['nevr'] = "{}-{}_{}-{}".format(recipe_bs['name'], recipe_bs['epoch'], recipe_bs['version'], recipe_bs['revision'])
+
+ for task, data in recipe_bs['tasks'].copy().items():
+ recipe_bs['tasks'][task] = [BSTask(data)]
+
+ buildstats[recipe_bs['name']] = recipe_bs
+
+ return buildstats
+
+
+def read_buildstats(path, multi):
+ """Read buildstats"""
+ if not os.path.exists(path):
+ raise ScriptError("No such file or directory: {}".format(path))
+
+ if os.path.isfile(path):
+ return read_buildstats_json(path)
+
+ if os.path.isfile(os.path.join(path, 'build_stats')):
+ return read_buildstats_dir(path)
+
+ # Handle a non-buildstat directory
+ subpaths = sorted(glob.glob(path + '/*'))
+ if len(subpaths) > 1:
+ if multi:
+ log.info("Averaging over {} buildstats from {}".format(
+ len(subpaths), path))
+ else:
+ raise ScriptError("Multiple buildstats found in '{}'. Please give "
+ "a single buildstat directory of use the --multi "
+ "option".format(path))
+ bs = None
+ for subpath in subpaths:
+ if os.path.isfile(subpath):
+ tmpbs = read_buildstats_json(subpath)
+ else:
+ tmpbs = read_buildstats_dir(subpath)
+ if not bs:
+ bs = tmpbs
+ else:
+ log.debug("Joining buildstats")
+ bs_append(bs, tmpbs)
+
+ if not bs:
+ raise ScriptError("No buildstats found under {}".format(path))
+ return bs
+
+
+def print_ver_diff(bs1, bs2):
+ """Print package version differences"""
+ pkgs1 = set(bs1.keys())
+ pkgs2 = set(bs2.keys())
+ new_pkgs = pkgs2 - pkgs1
+ deleted_pkgs = pkgs1 - pkgs2
+
+ echanged = []
+ vchanged = []
+ rchanged = []
+ unchanged = []
+ common_pkgs = pkgs2.intersection(pkgs1)
+ if common_pkgs:
+ for pkg in common_pkgs:
+ if bs1[pkg]['epoch'] != bs2[pkg]['epoch']:
+ echanged.append(pkg)
+ elif bs1[pkg]['version'] != bs2[pkg]['version']:
+ vchanged.append(pkg)
+ elif bs1[pkg]['revision'] != bs2[pkg]['revision']:
+ rchanged.append(pkg)
+ else:
+ unchanged.append(pkg)
+
+ maxlen = max([len(pkg) for pkg in pkgs1.union(pkgs2)])
+ fmt_str = " {:{maxlen}} ({})"
+# if unchanged:
+# print("\nUNCHANGED PACKAGES:")
+# print("-------------------")
+# maxlen = max([len(pkg) for pkg in unchanged])
+# for pkg in sorted(unchanged):
+# print(fmt_str.format(pkg, bs2[pkg]['nevr'], maxlen=maxlen))
+
+ if new_pkgs:
+ print("\nNEW PACKAGES:")
+ print("-------------")
+ for pkg in sorted(new_pkgs):
+ print(fmt_str.format(pkg, bs2[pkg]['nevr'], maxlen=maxlen))
+
+ if deleted_pkgs:
+ print("\nDELETED PACKAGES:")
+ print("-----------------")
+ for pkg in sorted(deleted_pkgs):
+ print(fmt_str.format(pkg, bs1[pkg]['nevr'], maxlen=maxlen))
+
+ fmt_str = " {0:{maxlen}} {1:<20} ({2})"
+ if rchanged:
+ print("\nREVISION CHANGED:")
+ print("-----------------")
+ for pkg in sorted(rchanged):
+ field1 = "{} -> {}".format(pkg, bs1[pkg]['revision'], bs2[pkg]['revision'])
+ field2 = "{} -> {}".format(bs1[pkg]['nevr'], bs2[pkg]['nevr'])
+ print(fmt_str.format(pkg, field1, field2, maxlen=maxlen))
+
+ if vchanged:
+ print("\nVERSION CHANGED:")
+ print("----------------")
+ for pkg in sorted(vchanged):
+ field1 = "{} -> {}".format(bs1[pkg]['version'], bs2[pkg]['version'])
+ field2 = "{} -> {}".format(bs1[pkg]['nevr'], bs2[pkg]['nevr'])
+ print(fmt_str.format(pkg, field1, field2, maxlen=maxlen))
+
+ if echanged:
+ print("\nEPOCH CHANGED:")
+ print("--------------")
+ for pkg in sorted(echanged):
+ field1 = "{} -> {}".format(pkg, bs1[pkg]['epoch'], bs2[pkg]['epoch'])
+ field2 = "{} -> {}".format(bs1[pkg]['nevr'], bs2[pkg]['nevr'])
+ print(fmt_str.format(pkg, field1, field2, maxlen=maxlen))
+
+
+def print_task_diff(bs1, bs2, val_type, min_val=0, min_absdiff=0, sort_by=('absdiff',)):
+ """Diff task execution times"""
+ def val_to_str(val, human_readable=False):
+ """Convert raw value to printable string"""
+ def hms_time(secs):
+ """Get time in human-readable HH:MM:SS format"""
+ h = int(secs / 3600)
+ m = int((secs % 3600) / 60)
+ s = secs % 60
+ if h == 0:
+ return "{:02d}:{:04.1f}".format(m, s)
+ else:
+ return "{:d}:{:02d}:{:04.1f}".format(h, m, s)
+
+ if 'time' in val_type:
+ if human_readable:
+ return hms_time(val)
+ else:
+ return "{:.1f}s".format(val)
+ elif 'bytes' in val_type and human_readable:
+ prefix = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi']
+ dec = int(math.log(val, 2) / 10)
+ prec = 1 if dec > 0 else 0
+ return "{:.{prec}f}{}B".format(val / (2 ** (10 * dec)),
+ prefix[dec], prec=prec)
+ elif 'ops' in val_type and human_readable:
+ prefix = ['', 'k', 'M', 'G', 'T', 'P']
+ dec = int(math.log(val, 1000))
+ prec = 1 if dec > 0 else 0
+ return "{:.{prec}f}{}ops".format(val / (1000 ** dec),
+ prefix[dec], prec=prec)
+ return str(int(val))
+
+ def sum_vals(buildstats):
+ """Get cumulative sum of all tasks"""
+ total = 0.0
+ for recipe_data in buildstats.values():
+ for bs_task in recipe_data['tasks'].values():
+ total += sum([getattr(b, val_type) for b in bs_task]) / len(bs_task)
+ return total
+
+ tasks_diff = []
+
+ if min_val:
+ print("Ignoring tasks less than {} ({})".format(
+ val_to_str(min_val, True), val_to_str(min_val)))
+ if min_absdiff:
+ print("Ignoring differences less than {} ({})".format(
+ val_to_str(min_absdiff, True), val_to_str(min_absdiff)))
+
+ # Prepare the data
+ pkgs = set(bs1.keys()).union(set(bs2.keys()))
+ for pkg in pkgs:
+ tasks1 = bs1[pkg]['tasks'] if pkg in bs1 else {}
+ tasks2 = bs2[pkg]['tasks'] if pkg in bs2 else {}
+ if not tasks1:
+ pkg_op = '+ '
+ elif not tasks2:
+ pkg_op = '- '
+ else:
+ pkg_op = ' '
+
+ for task in set(tasks1.keys()).union(set(tasks2.keys())):
+ task_op = ' '
+ if task in tasks1:
+ # Average over all values
+ val1 = [getattr(b, val_type) for b in bs1[pkg]['tasks'][task]]
+ val1 = sum(val1) / len(val1)
+ else:
+ task_op = '+ '
+ val1 = 0
+ if task in tasks2:
+ # Average over all values
+ val2 = [getattr(b, val_type) for b in bs2[pkg]['tasks'][task]]
+ val2 = sum(val2) / len(val2)
+ else:
+ val2 = 0
+ task_op = '- '
+
+ if val1 == 0:
+ reldiff = float('inf')
+ else:
+ reldiff = 100 * (val2 - val1) / val1
+
+ if max(val1, val2) < min_val:
+ log.debug("Filtering out %s:%s (%s)", pkg, task,
+ val_to_str(max(val1, val2)))
+ continue
+ if abs(val2 - val1) < min_absdiff:
+ log.debug("Filtering out %s:%s (difference of %s)", pkg, task,
+ val_to_str(val2-val1))
+ continue
+ tasks_diff.append(TaskDiff(pkg, pkg_op, task, task_op, val1, val2,
+ val2-val1, reldiff))
+
+ # Sort our list
+ for field in reversed(sort_by):
+ if field.startswith('-'):
+ field = field[1:]
+ reverse = True
+ else:
+ reverse = False
+ tasks_diff = sorted(tasks_diff, key=attrgetter(field), reverse=reverse)
+
+ linedata = [(' ', 'PKG', ' ', 'TASK', 'ABSDIFF', 'RELDIFF',
+ val_type.upper() + '1', val_type.upper() + '2')]
+ field_lens = dict([('len_{}'.format(i), len(f)) for i, f in enumerate(linedata[0])])
+
+ # Prepare fields in string format and measure field lengths
+ for diff in tasks_diff:
+ task_prefix = diff.task_op if diff.pkg_op == ' ' else ' '
+ linedata.append((diff.pkg_op, diff.pkg, task_prefix, diff.task,
+ val_to_str(diff.absdiff),
+ '{:+.1f}%'.format(diff.reldiff),
+ val_to_str(diff.value1),
+ val_to_str(diff.value2)))
+ for i, field in enumerate(linedata[-1]):
+ key = 'len_{}'.format(i)
+ if len(field) > field_lens[key]:
+ field_lens[key] = len(field)
+
+ # Print data
+ print()
+ for fields in linedata:
+ print("{:{len_0}}{:{len_1}} {:{len_2}}{:{len_3}} {:>{len_4}} {:>{len_5}} {:>{len_6}} -> {:{len_7}}".format(
+ *fields, **field_lens))
+
+ # Print summary of the diffs
+ total1 = sum_vals(bs1)
+ total2 = sum_vals(bs2)
+ print("\nCumulative {}:".format(val_type))
+ print (" {} {:+.1f}% {} ({}) -> {} ({})".format(
+ val_to_str(total2 - total1), 100 * (total2-total1) / total1,
+ val_to_str(total1, True), val_to_str(total1),
+ val_to_str(total2, True), val_to_str(total2)))
+
+
+def parse_args(argv):
+ """Parse cmdline arguments"""
+ description="""
+Script for comparing buildstats of two separate builds."""
+ parser = argparse.ArgumentParser(
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+ description=description)
+
+ min_val_defaults = {'cputime': 3.0,
+ 'read_bytes': 524288,
+ 'write_bytes': 524288,
+ 'read_ops': 500,
+ 'write_ops': 500,
+ 'walltime': 5}
+ min_absdiff_defaults = {'cputime': 1.0,
+ 'read_bytes': 131072,
+ 'write_bytes': 131072,
+ 'read_ops': 50,
+ 'write_ops': 50,
+ 'walltime': 2}
+
+ parser.add_argument('--debug', '-d', action='store_true',
+ help="Verbose logging")
+ parser.add_argument('--ver-diff', action='store_true',
+ help="Show package version differences and exit")
+ parser.add_argument('--diff-attr', default='cputime',
+ choices=min_val_defaults.keys(),
+ help="Buildstat attribute which to compare")
+ parser.add_argument('--min-val', default=min_val_defaults, type=float,
+ help="Filter out tasks less than MIN_VAL. "
+ "Default depends on --diff-attr.")
+ parser.add_argument('--min-absdiff', default=min_absdiff_defaults, type=float,
+ help="Filter out tasks whose difference is less than "
+ "MIN_ABSDIFF, Default depends on --diff-attr.")
+ parser.add_argument('--sort-by', default='absdiff',
+ help="Comma-separated list of field sort order. "
+ "Prepend the field name with '-' for reversed sort. "
+ "Available fields are: {}".format(', '.join(taskdiff_fields)))
+ parser.add_argument('--multi', action='store_true',
+ help="Read all buildstats from the given paths and "
+ "average over them")
+ parser.add_argument('buildstats1', metavar='BUILDSTATS1', help="'Left' buildstat")
+ parser.add_argument('buildstats2', metavar='BUILDSTATS2', help="'Right' buildstat")
+
+ args = parser.parse_args(argv)
+
+ # We do not nedd/want to read all buildstats if we just want to look at the
+ # package versions
+ if args.ver_diff:
+ args.multi = False
+
+ # Handle defaults for the filter arguments
+ if args.min_val is min_val_defaults:
+ args.min_val = min_val_defaults[args.diff_attr]
+ if args.min_absdiff is min_absdiff_defaults:
+ args.min_absdiff = min_absdiff_defaults[args.diff_attr]
+
+ return args
+
+
+def main(argv=None):
+ """Script entry point"""
+ args = parse_args(argv)
+ if args.debug:
+ log.setLevel(logging.DEBUG)
+
+ # Validate sort fields
+ sort_by = []
+ for field in args.sort_by.split(','):
+ if field.lstrip('-') not in taskdiff_fields:
+ log.error("Invalid sort field '%s' (must be one of: %s)" %
+ (field, ', '.join(taskdiff_fields)))
+ sys.exit(1)
+ sort_by.append(field)
+
+ try:
+ bs1 = read_buildstats(args.buildstats1, args.multi)
+ bs2 = read_buildstats(args.buildstats2, args.multi)
+
+ if args.ver_diff:
+ print_ver_diff(bs1, bs2)
+ else:
+ print_task_diff(bs1, bs2, args.diff_attr, args.min_val,
+ args.min_absdiff, sort_by)
+ except ScriptError as err:
+ log.error(str(err))
+ return 1
+ return 0
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/import-layers/yocto-poky/scripts/cleanup-workdir b/import-layers/yocto-poky/scripts/cleanup-workdir
index 01ebd526e..98769f6b3 100755
--- a/import-layers/yocto-poky/scripts/cleanup-workdir
+++ b/import-layers/yocto-poky/scripts/cleanup-workdir
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2012 Wind River Systems, Inc.
#
@@ -27,7 +27,7 @@ obsolete_dirs = []
parser = None
def err_quit(msg):
- print msg
+ print(msg)
parser.print_usage()
sys.exit(1)
@@ -43,19 +43,19 @@ def run_command(cmd):
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
output = pipe.communicate()[0]
if pipe.returncode != 0:
- print "Execute command '%s' failed." % cmd
+ print("Execute command '%s' failed." % cmd)
sys.exit(1)
- return output
+ return output.decode('utf-8')
def get_cur_arch_dirs(workdir, arch_dirs):
pattern = workdir + '/(.*?)/'
- cmd = "bitbake -e | grep ^SDK_ARCH="
+ cmd = "bitbake -e | grep ^SDK_SYS="
output = run_command(cmd)
- sdk_arch = output.split('"')[1]
+ sdk_sys = output.split('"')[1]
# select thest 5 packages to get the dirs of current arch
- pkgs = ['hicolor-icon-theme', 'base-files', 'acl-native', 'binutils-crosssdk-' + sdk_arch, 'nativesdk-autoconf']
+ pkgs = ['hicolor-icon-theme', 'base-files', 'acl-native', 'binutils-crosssdk-' + sdk_sys, 'nativesdk-autoconf']
for pkg in pkgs:
cmd = "bitbake -e " + pkg + " | grep ^IMAGE_ROOTFS="
@@ -84,7 +84,7 @@ will be deleted. Be CAUTIOUS.""")
if os.getcwd() != builddir:
err_quit("Please run %s under: %s\n" % (os.path.basename(args[0]), builddir))
- print 'Updating bitbake caches...'
+ print('Updating bitbake caches...')
cmd = "bitbake -s"
output = run_command(cmd)
@@ -129,13 +129,13 @@ will be deleted. Be CAUTIOUS.""")
# won't fail just in case
if not tmpdir or not image_rootfs:
- print "Can't get TMPDIR or IMAGE_ROOTFS."
+ print("Can't get TMPDIR or IMAGE_ROOTFS.")
return 1
pattern = tmpdir + '/(.*?)/(.*?)/'
m = re.match(pattern, image_rootfs)
if not m:
- print "Can't get WORKDIR."
+ print("Can't get WORKDIR.")
return 1
workdir = os.path.join(tmpdir, m.group(1))
@@ -178,13 +178,13 @@ will be deleted. Be CAUTIOUS.""")
break
for d in obsolete_dirs:
- print "Deleting %s" % d
+ print("Deleting %s" % d)
shutil.rmtree(d, True)
if len(obsolete_dirs):
- print '\nTotal %d items.' % len(obsolete_dirs)
+ print('\nTotal %d items.' % len(obsolete_dirs))
else:
- print '\nNo obsolete directory found under %s.' % workdir
+ print('\nNo obsolete directory found under %s.' % workdir)
return 0
diff --git a/import-layers/yocto-poky/scripts/combo-layer b/import-layers/yocto-poky/scripts/combo-layer
index 91270415f..b90bfc880 100755
--- a/import-layers/yocto-poky/scripts/combo-layer
+++ b/import-layers/yocto-poky/scripts/combo-layer
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -26,10 +26,14 @@ import optparse
import logging
import subprocess
import tempfile
-import ConfigParser
+import configparser
import re
+import copy
+import pipes
+import shutil
from collections import OrderedDict
from string import Template
+from functools import reduce
__version__ = "0.2.1"
@@ -73,7 +77,7 @@ class Configuration(object):
else:
# Apply special type transformations for some properties.
# Type matches the RawConfigParser.get*() methods.
- types = {'signoff': 'boolean', 'update': 'boolean'}
+ types = {'signoff': 'boolean', 'update': 'boolean', 'history': 'boolean'}
if name in types:
value = getattr(parser, 'get' + types[name])(section, name)
self.repos[repo][name] = value
@@ -84,7 +88,7 @@ class Configuration(object):
self.commit_msg_template = value
logger.debug("Loading config file %s" % self.conffile)
- self.parser = ConfigParser.ConfigParser()
+ self.parser = configparser.ConfigParser()
with open(self.conffile) as f:
self.parser.readfp(f)
@@ -113,7 +117,7 @@ class Configuration(object):
self.localconffile = lcfile
logger.debug("Loading local config file %s" % self.localconffile)
- self.localparser = ConfigParser.ConfigParser()
+ self.localparser = configparser.ConfigParser()
with open(self.localconffile) as f:
self.localparser.readfp(f)
@@ -174,28 +178,28 @@ class Configuration(object):
logger.error("ERROR: patchutils package is missing, please install it (e.g. # apt-get install patchutils)")
sys.exit(1)
-def runcmd(cmd,destdir=None,printerr=True,out=None):
+def runcmd(cmd,destdir=None,printerr=True,out=None,env=None):
"""
execute command, raise CalledProcessError if fail
return output if succeed
"""
logger.debug("run cmd '%s' in %s" % (cmd, os.getcwd() if destdir is None else destdir))
if not out:
- out = os.tmpfile()
+ out = tempfile.TemporaryFile()
err = out
else:
- err = os.tmpfile()
+ err = tempfile.TemporaryFile()
try:
- subprocess.check_call(cmd, stdout=out, stderr=err, cwd=destdir, shell=isinstance(cmd, str))
- except subprocess.CalledProcessError,e:
+ subprocess.check_call(cmd, stdout=out, stderr=err, cwd=destdir, shell=isinstance(cmd, str), env=env or os.environ)
+ except subprocess.CalledProcessError as e:
err.seek(0)
if printerr:
logger.error("%s" % err.read())
raise e
err.seek(0)
- output = err.read()
- logger.debug("output: %s" % output )
+ output = err.read().decode('utf-8')
+ logger.debug("output: %s" % output.replace(chr(0), '\\0'))
return output
def action_init(conf, args):
@@ -426,7 +430,7 @@ file_exclude = %s''' % (name, file_filter or '<empty>', repo.get('file_exclude',
runcmd('git replace --graft %s %s' % (start, startrev))
try:
runcmd(merge)
- except Exception, error:
+ except Exception as error:
logger.info('''Merging component repository history failed, perhaps because of merge conflicts.
It may be possible to commit anyway after resolving these conflicts.
@@ -478,32 +482,32 @@ def check_repo_clean(repodir):
sys.exit(1)
def check_patch(patchfile):
- f = open(patchfile)
+ f = open(patchfile, 'rb')
ln = f.readline()
of = None
in_patch = False
beyond_msg = False
- pre_buf = ''
+ pre_buf = b''
while ln:
if not beyond_msg:
- if ln == '---\n':
+ if ln == b'---\n':
if not of:
break
in_patch = False
beyond_msg = True
- elif ln.startswith('--- '):
+ elif ln.startswith(b'--- '):
# We have a diff in the commit message
in_patch = True
if not of:
print('WARNING: %s contains a diff in its commit message, indenting to avoid failure during apply' % patchfile)
- of = open(patchfile + '.tmp', 'w')
+ of = open(patchfile + '.tmp', 'wb')
of.write(pre_buf)
- pre_buf = ''
- elif in_patch and not ln[0] in '+-@ \n\r':
+ pre_buf = b''
+ elif in_patch and not ln[0] in b'+-@ \n\r':
in_patch = False
if of:
if in_patch:
- of.write(' ' + ln)
+ of.write(b' ' + ln)
else:
of.write(ln)
else:
@@ -516,7 +520,7 @@ def check_patch(patchfile):
def drop_to_shell(workdir=None):
if not sys.stdin.isatty():
- print "Not a TTY so can't drop to shell for resolution, exiting."
+ print("Not a TTY so can't drop to shell for resolution, exiting.")
return False
shell = os.environ.get('SHELL', 'bash')
@@ -526,7 +530,7 @@ def drop_to_shell(workdir=None):
' exit 1 -- abort\n' % shell);
ret = subprocess.call([shell], cwd=workdir)
if ret != 0:
- print "Aborting"
+ print("Aborting")
return False
else:
return True
@@ -610,8 +614,12 @@ def action_pull(conf, args):
def action_update(conf, args):
"""
update the component repos
- generate the patch list
- apply the generated patches
+ either:
+ generate the patch list
+ apply the generated patches
+ or:
+ re-creates the entire component history and merges them
+ into the current branch with a merge commit
"""
components = [arg.split(':')[0] for arg in args[1:]]
revisions = {}
@@ -624,10 +632,22 @@ def action_update(conf, args):
# make sure combo repo is clean
check_repo_clean(os.getcwd())
- import uuid
- patch_dir = "patch-%s" % uuid.uuid4()
- if not os.path.exists(patch_dir):
- os.mkdir(patch_dir)
+ # Check whether we keep the component histories. Must be
+ # set either via --history command line parameter or consistently
+ # in combo-layer.conf. Mixing modes is (currently, and probably
+ # permanently because it would be complicated) not supported.
+ if conf.history:
+ history = True
+ else:
+ history = None
+ for name in repos:
+ repo = conf.repos[name]
+ repo_history = repo.get('history', False)
+ if history is None:
+ history = repo_history
+ elif history != repo_history:
+ logger.error("'history' property is set inconsistently")
+ sys.exit(1)
# Step 1: update the component repos
if conf.nopull:
@@ -635,6 +655,17 @@ def action_update(conf, args):
else:
action_pull(conf, ['arg0'] + components)
+ if history:
+ update_with_history(conf, components, revisions, repos)
+ else:
+ update_with_patches(conf, components, revisions, repos)
+
+def update_with_patches(conf, components, revisions, repos):
+ import uuid
+ patch_dir = "patch-%s" % uuid.uuid4()
+ if not os.path.exists(patch_dir):
+ os.mkdir(patch_dir)
+
for name in repos:
revision = revisions.get(name, None)
repo = conf.repos[name]
@@ -711,6 +742,21 @@ def action_update(conf, args):
runcmd("rm -rf %s" % patch_dir)
# Step 7: commit the updated config file if it's being tracked
+ commit_conf_file(conf, components)
+
+def conf_commit_msg(conf, components):
+ # create the "components" string
+ component_str = "all components"
+ if len(components) > 0:
+ # otherwise tell which components were actually changed
+ component_str = ", ".join(components)
+
+ # expand the template with known values
+ template = Template(conf.commit_msg_template)
+ msg = template.substitute(components = component_str)
+ return msg
+
+def commit_conf_file(conf, components, commit=True):
relpath = os.path.relpath(conf.conffile)
try:
output = runcmd("git status --porcelain %s" % relpath, printerr=False)
@@ -718,23 +764,15 @@ def action_update(conf, args):
# Outside the repository
output = None
if output:
- logger.info("Committing updated configuration file")
if output.lstrip().startswith("M"):
-
- # create the "components" string
- component_str = "all components"
- if len(components) > 0:
- # otherwise tell which components were actually changed
- component_str = ", ".join(components)
-
- # expand the template with known values
- template = Template(conf.commit_msg_template)
- raw_msg = template.substitute(components = component_str)
-
- # sanitize the string before using it in command line
- msg = raw_msg.replace('"', '\\"')
-
- runcmd('git commit -m "%s" %s' % (msg, relpath))
+ logger.info("Committing updated configuration file")
+ if commit:
+ msg = conf_commit_msg(conf, components)
+ runcmd('git commit -m'.split() + [msg, relpath])
+ else:
+ runcmd('git add %s' % relpath)
+ return True
+ return False
def apply_patchlist(conf, repos):
"""
@@ -852,6 +890,418 @@ def action_splitpatch(conf, args):
else:
logger.info(patch_filename)
+def update_with_history(conf, components, revisions, repos):
+ '''Update all components with full history.
+
+ Works by importing all commits reachable from a component's
+ current head revision. If those commits are rooted in an already
+ imported commit, their content gets mixed with the content of the
+ combined repo of that commit (new or modified files overwritten,
+ removed files removed).
+
+ The last commit is an artificial merge commit that merges all the
+ updated components into the combined repository.
+
+ The HEAD ref only gets updated at the very end. All intermediate work
+ happens in a worktree which will get garbage collected by git eventually
+ after a failure.
+ '''
+ # Remember current HEAD and what we need to add to it.
+ head = runcmd("git rev-parse HEAD").strip()
+ additional_heads = {}
+
+ # Track the mapping between original commit and commit in the
+ # combined repo. We do not have to distinguish between components,
+ # because commit hashes are different anyway. Often we can
+ # skip find_revs() entirely (for example, when all new commits
+ # are derived from the last imported revision).
+ #
+ # Using "head" (typically the merge commit) instead of the actual
+ # commit for the component leads to a nicer history in the combined
+ # repo.
+ old2new_revs = {}
+ for name in repos:
+ repo = conf.repos[name]
+ revision = repo['last_revision']
+ if revision:
+ old2new_revs[revision] = head
+
+ def add_p(parents):
+ '''Insert -p before each entry.'''
+ parameters = []
+ for p in parents:
+ parameters.append('-p')
+ parameters.append(p)
+ return parameters
+
+ # Do all intermediate work with a separate work dir and index,
+ # chosen via env variables (can't use "git worktree", it is too
+ # new). This is useful (no changes to current work tree unless the
+ # update succeeds) and required (otherwise we end up temporarily
+ # removing the combo-layer hooks that we currently use when
+ # importing a new component).
+ #
+ # Not cleaned up after a failure at the moment.
+ wdir = os.path.join(os.getcwd(), ".git", "combo-layer")
+ windex = wdir + ".index"
+ if os.path.isdir(wdir):
+ shutil.rmtree(wdir)
+ os.mkdir(wdir)
+ wenv = copy.deepcopy(os.environ)
+ wenv["GIT_WORK_TREE"] = wdir
+ wenv["GIT_INDEX_FILE"] = windex
+ # This one turned out to be needed in practice.
+ wenv["GIT_OBJECT_DIRECTORY"] = os.path.join(os.getcwd(), ".git", "objects")
+ wargs = {"destdir": wdir, "env": wenv}
+
+ for name in repos:
+ revision = revisions.get(name, None)
+ repo = conf.repos[name]
+ ldir = repo['local_repo_dir']
+ dest_dir = repo['dest_dir']
+ branch = repo.get('branch', "master")
+ hook = repo.get('hook', None)
+ largs = {"destdir": ldir, "env": None}
+ file_include = repo.get('file_filter', '').split()
+ file_include.sort() # make sure that short entries like '.' come first.
+ file_exclude = repo.get('file_exclude', '').split()
+
+ def include_file(file):
+ if not file_include:
+ # No explicit filter set, include file.
+ return True
+ for filter in file_include:
+ if filter == '.':
+ # Another special case: include current directory and thus all files.
+ return True
+ if os.path.commonprefix((filter, file)) == filter:
+ # Included in directory or direct file match.
+ return True
+ # Check for wildcard match *with* allowing * to match /, i.e.
+ # src/*.c does match src/foobar/*.c. That's not how it is done elsewhere
+ # when passing the filtering to "git archive", but it is unclear what
+ # the intended semantic is (the comment on file_exclude that "append a * wildcard
+ # at the end" to match the full content of a directories implies that
+ # slashes are indeed not special), so here we simply do what's easy to
+ # implement in Python.
+ logger.debug('fnmatch(%s, %s)' % (file, filter))
+ if fnmatch.fnmatchcase(file, filter):
+ return True
+ return False
+
+ def exclude_file(file):
+ for filter in file_exclude:
+ if fnmatch.fnmatchcase(file, filter):
+ return True
+ return False
+
+ def file_filter(files):
+ '''Clean up file list so that only included files remain.'''
+ index = 0
+ while index < len(files):
+ file = files[index]
+ if not include_file(file) or exclude_file(file):
+ del files[index]
+ else:
+ index += 1
+
+
+ # Generate the revision list.
+ logger.info("Analyzing commits from %s..." % name)
+ top_revision = revision or branch
+ if not check_rev_branch(name, ldir, top_revision, branch):
+ sys.exit(1)
+
+ last_revision = repo['last_revision']
+ rev_list_args = "--full-history --sparse --topo-order --reverse"
+ if not last_revision:
+ logger.info("Warning: last_revision of component %s is not set, starting from the first commit" % name)
+ rev_list_args = rev_list_args + ' ' + top_revision
+ else:
+ if not check_rev_branch(name, ldir, last_revision, branch):
+ sys.exit(1)
+ rev_list_args = "%s %s..%s" % (rev_list_args, last_revision, top_revision)
+
+ # By definition, the current HEAD contains the latest imported
+ # commit of each component. We use that as initial mapping even
+ # though the commits do not match exactly because
+ # a) it always works (in contrast to find_revs, which relies on special
+ # commit messages)
+ # b) it is faster than find_revs, which will only be called on demand
+ # and can be skipped entirely in most cases
+ # c) last but not least, the combined history looks nicer when all
+ # new commits are rooted in the same merge commit
+ old2new_revs[last_revision] = head
+
+ # We care about all commits (--full-history and --sparse) and
+ # we want reconstruct the topology and thus do not care
+ # about ordering by time (--topo-order). We ask for the ones
+ # we need to import first to be listed first (--reverse).
+ revs = runcmd("git rev-list %s" % rev_list_args, **largs).split()
+ logger.debug("To be imported: %s" % revs)
+ # Now 'revs' contains all revisions reachable from the top revision.
+ # All revisions derived from the 'last_revision' definitely are new,
+ # whereas the others may or may not have been imported before. For
+ # a linear history in the component, that second set will be empty.
+ # To distinguish between them, we also get the shorter list
+ # of revisions starting at the ancestor.
+ if last_revision:
+ ancestor_revs = runcmd("git rev-list --ancestry-path %s" % rev_list_args, **largs).split()
+ else:
+ ancestor_revs = []
+ logger.debug("Ancestors: %s" % ancestor_revs)
+
+ # Now import each revision.
+ logger.info("Importing commits from %s..." % name)
+ def import_rev(rev):
+ global scanned_revs
+
+ # If it is part of the new commits, we definitely need
+ # to import it. Otherwise we need to check, we might have
+ # imported it before. If it was imported and we merely
+ # fail to find it because commit messages did not track
+ # the mapping, then we end up importing it again. So
+ # combined repos using "updating with history" really should
+ # enable the "From ... rev:" commit header modifications.
+ if rev not in ancestor_revs and rev not in old2new_revs and not scanned_revs:
+ logger.debug("Revision %s triggers log analysis." % rev)
+ find_revs(old2new_revs, head)
+ scanned_revs = True
+ new_rev = old2new_revs.get(rev, None)
+ if new_rev:
+ return new_rev
+
+ # If the commit is not in the original list of revisions
+ # to be imported, then it must be a parent of one of those
+ # commits and it was skipped during earlier imports or not
+ # found. Importing such merge commits leads to very ugly
+ # history (long cascade of merge commits which all point
+ # to to older commits) when switching from "update via
+ # patches" to "update with history".
+ #
+ # We can avoid importing merge commits if all non-merge commits
+ # reachable from it were already imported. In that case we
+ # can root the new commits in the current head revision.
+ def is_imported(prev):
+ parents = runcmd("git show --no-patch --pretty=format:%P " + prev, **largs).split()
+ if len(parents) > 1:
+ for p in parents:
+ if not is_imported(p):
+ logger.debug("Must import %s because %s is not imported." % (rev, p))
+ return False
+ return True
+ elif prev in old2new_revs:
+ return True
+ else:
+ logger.debug("Must import %s because %s is not imported." % (rev, prev))
+ return False
+ if rev not in revs and is_imported(rev):
+ old2new_revs[rev] = head
+ return head
+
+ # Need to import rev. Collect some information about it.
+ logger.debug("Importing %s" % rev)
+ (parents, author_name, author_email, author_timestamp, body) = \
+ runcmd("git show --no-patch --pretty=format:%P%x00%an%x00%ae%x00%at%x00%B " + rev, **largs).split(chr(0))
+ parents = parents.split()
+ if parents:
+ # Arbitrarily pick the first parent as base. It may or may not have
+ # been imported before. For example, if the parent is a merge commit
+ # and previously the combined repository used patching as update
+ # method, then the actual merge commit parent never was imported.
+ # To cover this, We recursively import parents.
+ parent = parents[0]
+ new_parent = import_rev(parent)
+ # Clean index and working tree. TODO: can we combine this and the
+ # next into one command with less file IO?
+ # "git reset --hard" does not work, it changes HEAD of the parent
+ # repo, which we wanted to avoid. Probably need to keep
+ # track of the rev that corresponds to the index and use apply_commit().
+ runcmd("git rm -q --ignore-unmatch -rf .", **wargs)
+ # Update index and working tree to match the parent.
+ runcmd("git checkout -q -f %s ." % new_parent, **wargs)
+ else:
+ parent = None
+ # Clean index and working tree.
+ runcmd("git rm -q --ignore-unmatch -rf .", **wargs)
+
+ # Modify index and working tree such that it mirrors the commit.
+ apply_commit(parent, rev, largs, wargs, dest_dir, file_filter=file_filter)
+
+ # Now commit.
+ new_tree = runcmd("git write-tree", **wargs).strip()
+ env = copy.deepcopy(wenv)
+ env['GIT_AUTHOR_NAME'] = author_name
+ env['GIT_AUTHOR_EMAIL'] = author_email
+ env['GIT_AUTHOR_DATE'] = author_timestamp
+ if hook:
+ # Need to turn the verbatim commit message into something resembling a patch header
+ # for the hook.
+ with tempfile.NamedTemporaryFile(delete=False) as patch:
+ patch.write('Subject: [PATCH] ')
+ patch.write(body)
+ patch.write('\n---\n')
+ patch.close()
+ runcmd([hook, patch.name, rev, name])
+ with open(patch.name) as f:
+ body = f.read()[len('Subject: [PATCH] '):][:-len('\n---\n')]
+
+ # We can skip non-merge commits that did not change any files. Those are typically
+ # the result of file filtering, although they could also have been introduced
+ # intentionally upstream, in which case we drop some information here.
+ if len(parents) == 1:
+ parent_rev = import_rev(parents[0])
+ old_tree = runcmd("git show -s --pretty=format:%T " + parent_rev, **wargs).strip()
+ commit = old_tree != new_tree
+ if not commit:
+ new_rev = parent_rev
+ else:
+ commit = True
+ if commit:
+ new_rev = runcmd("git commit-tree".split() + add_p([import_rev(p) for p in parents]) +
+ ["-m", body, new_tree],
+ env=env).strip()
+ old2new_revs[rev] = new_rev
+
+ return new_rev
+
+ if revs:
+ for rev in revs:
+ import_rev(rev)
+ # Remember how to update our current head. New components get added,
+ # updated components get the delta between current head and the updated component
+ # applied.
+ additional_heads[old2new_revs[revs[-1]]] = head if repo['last_revision'] else None
+ repo['last_revision'] = revs[-1]
+
+ # Now construct the final merge commit. We create the tree by
+ # starting with the head and applying the changes from each
+ # components imported head revision.
+ if additional_heads:
+ runcmd("git reset --hard", **wargs)
+ for rev, base in additional_heads.items():
+ apply_commit(base, rev, wargs, wargs, None)
+
+ # Commit with all component branches as parents as well as the previous head.
+ logger.info("Writing final merge commit...")
+ msg = conf_commit_msg(conf, components)
+ new_tree = runcmd("git write-tree", **wargs).strip()
+ new_rev = runcmd("git commit-tree".split() +
+ add_p([head] + list(additional_heads.keys())) +
+ ["-m", msg, new_tree],
+ **wargs).strip()
+ # And done! This is the first time we change the HEAD in the actual work tree.
+ runcmd("git reset --hard %s" % new_rev)
+
+ # Update and stage the (potentially modified)
+ # combo-layer.conf, but do not commit separately.
+ for name in repos:
+ repo = conf.repos[name]
+ rev = repo['last_revision']
+ conf.update(name, "last_revision", rev)
+ if commit_conf_file(conf, components, False):
+ # Must augment the previous commit.
+ runcmd("git commit --amend -C HEAD")
+
+
+scanned_revs = False
+def find_revs(old2new, head):
+ '''Construct mapping from original commit hash to commit hash in
+ combined repo by looking at the commit messages. Depends on the
+ "From ... rev: ..." convention.'''
+ logger.info("Analyzing log messages to find previously imported commits...")
+ num_known = len(old2new)
+ log = runcmd("git log --grep='From .* rev: [a-fA-F0-9][a-fA-F0-9]*' --pretty=format:%H%x00%B%x00 " + head).split(chr(0))
+ regex = re.compile(r'From .* rev: ([a-fA-F0-9]+)')
+ for new_rev, body in zip(*[iter(log)]* 2):
+ # Use the last one, in the unlikely case there are more than one.
+ rev = regex.findall(body)[-1]
+ if rev not in old2new:
+ old2new[rev] = new_rev.strip()
+ logger.info("Found %d additional commits, leading to: %s" % (len(old2new) - num_known, old2new))
+
+
+def apply_commit(parent, rev, largs, wargs, dest_dir, file_filter=None):
+ '''Compare revision against parent, remove files deleted in the
+ commit, re-write new or modified ones. Moves them into dest_dir.
+ Optionally filters files.
+ '''
+ if not dest_dir:
+ dest_dir = "."
+ # -r recurses into sub-directories, given is the full overview of
+ # what changed. We do not care about copy/edits or renames, so we
+ # can disable those with --no-renames (but we still parse them,
+ # because it was not clear from git documentation whether C and M
+ # lines can still occur).
+ logger.debug("Applying changes between %s and %s in %s" % (parent, rev, largs["destdir"]))
+ delete = []
+ update = []
+ if parent:
+ # Apply delta.
+ changes = runcmd("git diff-tree --no-commit-id --no-renames --name-status -r --raw -z %s %s" % (parent, rev), **largs).split(chr(0))
+ for status, name in zip(*[iter(changes)]*2):
+ if status[0] in "ACMRT":
+ update.append(name)
+ elif status[0] in "D":
+ delete.append(name)
+ else:
+ logger.error("Unknown status %s of file %s in revision %s" % (status, name, rev))
+ sys.exit(1)
+ else:
+ # Copy all files.
+ update.extend(runcmd("git ls-tree -r --name-only -z %s" % rev, **largs).split(chr(0)))
+
+ # Include/exclude files as define in the component config.
+ # Both updated and deleted file lists get filtered, because it might happen
+ # that a file gets excluded, pulled from a different component, and then the
+ # excluded file gets deleted. In that case we must keep the copy.
+ if file_filter:
+ file_filter(update)
+ file_filter(delete)
+
+ # We export into a tar archive here and extract with tar because it is simple (no
+ # need to implement file and symlink writing ourselves) and gives us some degree
+ # of parallel IO. The downside is that we have to pass the list of files via
+ # command line parameters - hopefully there will never be too many at once.
+ if update:
+ target = os.path.join(wargs["destdir"], dest_dir)
+ if not os.path.isdir(target):
+ os.makedirs(target)
+ quoted_target = pipes.quote(target)
+ # os.sysconf('SC_ARG_MAX') is lying: running a command with
+ # string length 629343 already failed with "Argument list too
+ # long" although SC_ARG_MAX = 2097152. "man execve" explains
+ # the limitations, but those are pretty complicated. So here
+ # we just hard-code a fixed value which is more likely to work.
+ max_cmdsize = 64 * 1024
+ while update:
+ quoted_args = []
+ unquoted_args = []
+ cmdsize = 100 + len(quoted_target)
+ while update:
+ quoted_next = pipes.quote(update[0])
+ size_next = len(quoted_next) + len(dest_dir) + 1
+ logger.debug('cmdline length %d + %d < %d?' % (cmdsize, size_next, os.sysconf('SC_ARG_MAX')))
+ if cmdsize + size_next < max_cmdsize:
+ quoted_args.append(quoted_next)
+ unquoted_args.append(update.pop(0))
+ cmdsize += size_next
+ else:
+ logger.debug('Breaking the cmdline at length %d' % cmdsize)
+ break
+ logger.debug('Final cmdline length %d / %d' % (cmdsize, os.sysconf('SC_ARG_MAX')))
+ cmd = "git archive %s %s | tar -C %s -xf -" % (rev, ' '.join(quoted_args), quoted_target)
+ logger.debug('First cmdline length %d' % len(cmd))
+ runcmd(cmd, **largs)
+ cmd = "git add -f".split() + [os.path.join(dest_dir, x) for x in unquoted_args]
+ logger.debug('Second cmdline length %d' % reduce(lambda x, y: x + len(y), cmd, 0))
+ runcmd(cmd, **wargs)
+ if delete:
+ for path in delete:
+ if dest_dir:
+ path = os.path.join(dest_dir, path)
+ runcmd("git rm -f --ignore-unmatch".split() + [os.path.join(dest_dir, x) for x in delete], **wargs)
+
def action_error(conf, args):
logger.info("invalid action %s" % args[0])
diff --git a/import-layers/yocto-poky/scripts/contrib/bbvars.py b/import-layers/yocto-poky/scripts/contrib/bbvars.py
index 0896d6444..d8d059477 100755
--- a/import-layers/yocto-poky/scripts/contrib/bbvars.py
+++ b/import-layers/yocto-poky/scripts/contrib/bbvars.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,12 +24,12 @@ import os.path
import re
def usage():
- print 'Usage: %s -d FILENAME [-d FILENAME]* -m METADIR [-m MATADIR]*' % os.path.basename(sys.argv[0])
- print ' -d FILENAME documentation file to search'
- print ' -h, --help display this help and exit'
- print ' -m METADIR meta directory to search for recipes'
- print ' -t FILENAME documentation config file (for doc tags)'
- print ' -T Only display variables with doc tags (requires -t)'
+ print('Usage: %s -d FILENAME [-d FILENAME]* -m METADIR [-m MATADIR]*' % os.path.basename(sys.argv[0]))
+ print(' -d FILENAME documentation file to search')
+ print(' -h, --help display this help and exit')
+ print(' -m METADIR meta directory to search for recipes')
+ print(' -t FILENAME documentation config file (for doc tags)')
+ print(' -T Only display variables with doc tags (requires -t)')
def recipe_bbvars(recipe):
''' Return a unique set of every bbvar encountered in the recipe '''
@@ -37,9 +37,9 @@ def recipe_bbvars(recipe):
vset = set()
try:
r = open(recipe)
- except IOError as (errno, strerror):
- print 'WARNING: Failed to open recipe ', recipe
- print strerror
+ except IOError as err:
+ print('WARNING: Failed to open recipe ', recipe)
+ print(err.args[1])
for line in r:
# Strip any comments from the line
@@ -59,8 +59,8 @@ def collect_bbvars(metadir):
for root,dirs,files in os.walk(metadir):
for name in files:
if name.find(".bb") >= 0:
- for key in recipe_bbvars(os.path.join(root,name)).iterkeys():
- if bbvars.has_key(key):
+ for key in recipe_bbvars(os.path.join(root,name)).keys():
+ if key in bbvars:
bbvars[key] = bbvars[key] + 1
else:
bbvars[key] = 1
@@ -71,9 +71,9 @@ def bbvar_is_documented(var, docfiles):
for doc in docfiles:
try:
f = open(doc)
- except IOError as (errno, strerror):
- print 'WARNING: Failed to open doc ', doc
- print strerror
+ except IOError as err:
+ print('WARNING: Failed to open doc ', doc)
+ print(err.args[1])
for line in f:
if prog.match(line):
return True
@@ -87,8 +87,8 @@ def bbvar_doctag(var, docconf):
try:
f = open(docconf)
- except IOError as (errno, strerror):
- return strerror
+ except IOError as err:
+ return err.args[1]
for line in f:
m = prog.search(line)
@@ -109,8 +109,8 @@ def main():
# Collect and validate input
try:
opts, args = getopt.getopt(sys.argv[1:], "d:hm:t:T", ["help"])
- except getopt.GetoptError, err:
- print '%s' % str(err)
+ except getopt.GetoptError as err:
+ print('%s' % str(err))
usage()
sys.exit(2)
@@ -122,13 +122,13 @@ def main():
if os.path.isfile(a):
docfiles.append(a)
else:
- print 'ERROR: documentation file %s is not a regular file' % (a)
+ print('ERROR: documentation file %s is not a regular file' % a)
sys.exit(3)
elif o == '-m':
if os.path.isdir(a):
metadirs.append(a)
else:
- print 'ERROR: meta directory %s is not a directory' % (a)
+ print('ERROR: meta directory %s is not a directory' % a)
sys.exit(4)
elif o == "-t":
if os.path.isfile(a):
@@ -139,31 +139,31 @@ def main():
assert False, "unhandled option"
if len(docfiles) == 0:
- print 'ERROR: no docfile specified'
+ print('ERROR: no docfile specified')
usage()
sys.exit(5)
if len(metadirs) == 0:
- print 'ERROR: no metadir specified'
+ print('ERROR: no metadir specified')
usage()
sys.exit(6)
if onlydoctags and docconf == "":
- print 'ERROR: no docconf specified'
+ print('ERROR: no docconf specified')
usage()
sys.exit(7)
# Collect all the variable names from the recipes in the metadirs
for m in metadirs:
- for key,cnt in collect_bbvars(m).iteritems():
- if bbvars.has_key(key):
+ for key,cnt in collect_bbvars(m).items():
+ if key in bbvars:
bbvars[key] = bbvars[key] + cnt
else:
bbvars[key] = cnt
# Check each var for documentation
varlen = 0
- for v in bbvars.iterkeys():
+ for v in bbvars.keys():
if len(v) > varlen:
varlen = len(v)
if not bbvar_is_documented(v, docfiles):
@@ -172,14 +172,14 @@ def main():
varlen = varlen + 1
# Report all undocumented variables
- print 'Found %d undocumented bb variables (out of %d):' % (len(undocumented), len(bbvars))
+ print('Found %d undocumented bb variables (out of %d):' % (len(undocumented), len(bbvars)))
header = '%s%s%s' % (str("VARIABLE").ljust(varlen), str("COUNT").ljust(6), str("DOCTAG").ljust(7))
- print header
- print str("").ljust(len(header), '=')
+ print(header)
+ print(str("").ljust(len(header), '='))
for v in undocumented:
doctag = bbvar_doctag(v, docconf)
if not onlydoctags or not doctag == "":
- print '%s%s%s' % (v.ljust(varlen), str(bbvars[v]).ljust(6), doctag)
+ print('%s%s%s' % (v.ljust(varlen), str(bbvars[v]).ljust(6), doctag))
if __name__ == "__main__":
diff --git a/import-layers/yocto-poky/scripts/contrib/build-perf-test-wrapper.sh b/import-layers/yocto-poky/scripts/contrib/build-perf-test-wrapper.sh
new file mode 100755
index 000000000..e03ea978b
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/contrib/build-perf-test-wrapper.sh
@@ -0,0 +1,153 @@
+#!/bin/bash
+#
+# Build performance test script wrapper
+#
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+#
+# This script is a simple wrapper around the actual build performance tester
+# script. This script initializes the build environment, runs
+# oe-build-perf-test and archives the results.
+
+script=`basename $0`
+archive_dir=~/perf-results/archives
+
+usage () {
+cat << EOF
+Usage: $script [-h] [-c COMMITISH] [-C GIT_REPO]
+
+Optional arguments:
+ -h show this help and exit.
+ -a ARCHIVE_DIR archive results tarball here, give an empty string to
+ disable tarball archiving (default: $archive_dir)
+ -c COMMITISH test (checkout) this commit
+ -C GIT_REPO commit results into Git
+ -w WORK_DIR work dir for this script
+ (default: GIT_TOP_DIR/build-perf-test)
+EOF
+}
+
+
+# Parse command line arguments
+commitish=""
+while getopts "ha:c:C:w:" opt; do
+ case $opt in
+ h) usage
+ exit 0
+ ;;
+ a) archive_dir=`realpath "$OPTARG"`
+ ;;
+ c) commitish=$OPTARG
+ ;;
+ C) results_repo=`realpath "$OPTARG"`
+ commit_results=("--commit-results" "$results_repo")
+ ;;
+ w) base_dir=`realpath "$OPTARG"`
+ ;;
+ *) usage
+ exit 1
+ ;;
+ esac
+done
+
+# Check positional args
+shift "$((OPTIND - 1))"
+if [ $# -ne 0 ]; then
+ echo "ERROR: No positional args are accepted."
+ usage
+ exit 1
+fi
+
+echo "Running on `uname -n`"
+if ! git_topdir=$(git rev-parse --show-toplevel); then
+ echo "The current working dir doesn't seem to be a git clone. Please cd there before running `basename $0`"
+ exit 1
+fi
+
+cd "$git_topdir"
+
+if [ -n "$commitish" ]; then
+ # Checkout correct revision
+ echo "Checking out $commitish"
+ git fetch &> /dev/null
+ git checkout HEAD^0 &> /dev/null
+ git branch -D $commitish &> /dev/null
+ if ! git checkout -f $commitish &> /dev/null; then
+ echo "Git checkout failed"
+ exit 1
+ fi
+fi
+
+# Setup build environment
+if [ -z "$base_dir" ]; then
+ base_dir="$git_topdir/build-perf-test"
+fi
+echo "Using working dir $base_dir"
+
+timestamp=`date "+%Y%m%d%H%M%S"`
+git_rev=$(git rev-parse --short HEAD) || exit 1
+build_dir="$base_dir/build-$git_rev-$timestamp"
+results_dir="$base_dir/results-$git_rev-$timestamp"
+globalres_log="$base_dir/globalres.log"
+machine="qemux86"
+
+mkdir -p "$base_dir"
+source ./oe-init-build-env $build_dir >/dev/null || exit 1
+
+# Additional config
+auto_conf="$build_dir/conf/auto.conf"
+echo "MACHINE = \"$machine\"" > "$auto_conf"
+echo 'BB_NUMBER_THREADS = "8"' >> "$auto_conf"
+echo 'PARALLEL_MAKE = "-j 8"' >> "$auto_conf"
+echo "DL_DIR = \"$base_dir/downloads\"" >> "$auto_conf"
+# Disabling network sanity check slightly reduces the variance of timing results
+echo 'CONNECTIVITY_CHECK_URIS = ""' >> "$auto_conf"
+# Possibility to define extra settings
+if [ -f "$base_dir/auto.conf.extra" ]; then
+ cat "$base_dir/auto.conf.extra" >> "$auto_conf"
+fi
+
+# Run actual test script
+oe-build-perf-test --out-dir "$results_dir" \
+ --globalres-file "$globalres_log" \
+ --lock-file "$base_dir/oe-build-perf.lock" \
+ "${commit_results[@]}" \
+ --commit-results-branch "{tester_host}/{git_branch}/$machine" \
+ --commit-results-tag "{tester_host}/{git_branch}/$machine/{git_commit_count}-g{git_commit}/{tag_num}"
+
+case $? in
+ 1) echo "ERROR: oe-build-perf-test script failed!"
+ exit 1
+ ;;
+ 2) echo "NOTE: some tests failed!"
+ ;;
+esac
+
+echo -ne "\n\n-----------------\n"
+echo "Global results file:"
+echo -ne "\n"
+
+cat "$globalres_log"
+
+if [ -n "$archive_dir" ]; then
+ echo -ne "\n\n-----------------\n"
+ echo "Archiving results in $archive_dir"
+ mkdir -p "$archive_dir"
+ results_basename=`basename "$results_dir"`
+ results_dirname=`dirname "$results_dir"`
+ tar -czf "$archive_dir/`uname -n`-${results_basename}.tar.gz" -C "$results_dirname" "$results_basename"
+fi
+
+rm -rf "$build_dir"
+rm -rf "$results_dir"
+
+echo "DONE"
diff --git a/import-layers/yocto-poky/scripts/contrib/ddimage b/import-layers/yocto-poky/scripts/contrib/ddimage
index a503f11d0..ab929957a 100755
--- a/import-layers/yocto-poky/scripts/contrib/ddimage
+++ b/import-layers/yocto-poky/scripts/contrib/ddimage
@@ -100,5 +100,9 @@ if [ "$RESPONSE" != "y" ]; then
fi
echo "Writing image..."
-dd if="$IMAGE" of="$DEVICE" bs="$BLOCKSIZE"
+if which pv >/dev/null 2>&1; then
+ pv "$IMAGE" | dd of="$DEVICE" bs="$BLOCKSIZE"
+else
+ dd if="$IMAGE" of="$DEVICE" bs="$BLOCKSIZE"
+fi
sync
diff --git a/import-layers/yocto-poky/scripts/contrib/devtool-stress.py b/import-layers/yocto-poky/scripts/contrib/devtool-stress.py
index 8cf92ca2f..d555c51a6 100755
--- a/import-layers/yocto-poky/scripts/contrib/devtool-stress.py
+++ b/import-layers/yocto-poky/scripts/contrib/devtool-stress.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# devtool stress tester
#
@@ -43,15 +43,15 @@ def select_recipes(args):
tinfoil = bb.tinfoil.Tinfoil()
tinfoil.prepare(False)
- pkg_pn = tinfoil.cooker.recipecache.pkg_pn
- (latest_versions, preferred_versions) = bb.providers.findProviders(tinfoil.config_data, tinfoil.cooker.recipecache, pkg_pn)
+ pkg_pn = tinfoil.cooker.recipecaches[''].pkg_pn
+ (latest_versions, preferred_versions) = bb.providers.findProviders(tinfoil.config_data, tinfoil.cooker.recipecaches[''], pkg_pn)
skip_classes = args.skip_classes.split(',')
recipelist = []
for pn in sorted(pkg_pn):
pref = preferred_versions[pn]
- inherits = [os.path.splitext(os.path.basename(f))[0] for f in tinfoil.cooker.recipecache.inherits[pref[1]]]
+ inherits = [os.path.splitext(os.path.basename(f))[0] for f in tinfoil.cooker.recipecaches[''].inherits[pref[1]]]
for cls in skip_classes:
if cls in inherits:
break
@@ -121,14 +121,18 @@ def stress_extract(args):
sys.stdout.write('Testing %s ' % (pn + ' ').ljust(40, '.'))
sys.stdout.flush()
failed = False
+ skipped = None
srctree = os.path.join(tmpdir, pn)
try:
bb.process.run('devtool extract %s %s' % (pn, srctree))
- except bb.process.CmdError as exc:
- failed = True
- with open('stress_%s_extract.log' % pn, 'w') as f:
- f.write(str(exc))
+ except bb.process.ExecutionError as exc:
+ if exc.exitcode == 4:
+ skipped = 'incompatible'
+ else:
+ failed = True
+ with open('stress_%s_extract.log' % pn, 'w') as f:
+ f.write(str(exc))
if os.path.exists(srctree):
shutil.rmtree(srctree)
@@ -136,6 +140,8 @@ def stress_extract(args):
if failed:
print('failed')
failures += 1
+ elif skipped:
+ print('skipped (%s)' % skipped)
else:
print('ok')
except KeyboardInterrupt:
@@ -162,29 +168,34 @@ def stress_modify(args):
sys.stdout.flush()
failed = False
reset = True
+ skipped = None
srctree = os.path.join(tmpdir, pn)
try:
bb.process.run('devtool modify -x %s %s' % (pn, srctree))
- except bb.process.CmdError as exc:
- with open('stress_%s_modify.log' % pn, 'w') as f:
- f.write(str(exc))
- failed = 'modify'
- reset = False
-
- if not failed:
- try:
- bb.process.run('bitbake -c install %s' % pn)
- except bb.process.CmdError as exc:
- with open('stress_%s_install.log' % pn, 'w') as f:
+ except bb.process.ExecutionError as exc:
+ if exc.exitcode == 4:
+ skipped = 'incompatible'
+ else:
+ with open('stress_%s_modify.log' % pn, 'w') as f:
f.write(str(exc))
- failed = 'build'
- if reset:
- try:
- bb.process.run('devtool reset %s' % pn)
- except bb.process.CmdError as exc:
- print('devtool reset failed: %s' % str(exc))
- break
+ failed = 'modify'
+ reset = False
+
+ if not skipped:
+ if not failed:
+ try:
+ bb.process.run('bitbake -c install %s' % pn)
+ except bb.process.CmdError as exc:
+ with open('stress_%s_install.log' % pn, 'w') as f:
+ f.write(str(exc))
+ failed = 'build'
+ if reset:
+ try:
+ bb.process.run('devtool reset %s' % pn)
+ except bb.process.CmdError as exc:
+ print('devtool reset failed: %s' % str(exc))
+ break
if os.path.exists(srctree):
shutil.rmtree(srctree)
@@ -192,6 +203,8 @@ def stress_modify(args):
if failed:
print('failed (%s)' % failed)
failures += 1
+ elif skipped:
+ print('skipped (%s)' % skipped)
else:
print('ok')
except KeyboardInterrupt:
@@ -210,9 +223,10 @@ def main():
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-r', '--resume-from', help='Resume from specified recipe', metavar='PN')
parser.add_argument('-o', '--only', help='Only test specified recipes (comma-separated without spaces, wildcards allowed)', metavar='PNLIST')
- parser.add_argument('-s', '--skip', help='Skip specified recipes (comma-separated without spaces, wildcards allowed)', metavar='PNLIST')
+ parser.add_argument('-s', '--skip', help='Skip specified recipes (comma-separated without spaces, wildcards allowed)', metavar='PNLIST', default='gcc-source-*,kernel-devsrc,package-index,perf,meta-world-pkgdata,glibc-locale,glibc-mtrace,glibc-scripts,os-release')
parser.add_argument('-c', '--skip-classes', help='Skip recipes inheriting specified classes (comma-separated) - default %(default)s', metavar='CLASSLIST', default='native,nativesdk,cross,cross-canadian,image,populate_sdk,meta,packagegroup')
subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
parser_modify = subparsers.add_parser('modify',
help='Run "devtool modify" followed by a build with bitbake on matching recipes',
diff --git a/import-layers/yocto-poky/scripts/contrib/graph-tool b/import-layers/yocto-poky/scripts/contrib/graph-tool
index 6dc7d337f..1df5b8c34 100755
--- a/import-layers/yocto-poky/scripts/contrib/graph-tool
+++ b/import-layers/yocto-poky/scripts/contrib/graph-tool
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Simple graph query utility
# useful for getting answers from .dot files produced by bitbake -g
@@ -30,8 +30,7 @@ def get_path_networkx(dotfile, fromnode, tonode):
print('ERROR: Please install the networkx python module')
sys.exit(1)
- graph = networkx.DiGraph(networkx.read_dot(dotfile))
-
+ graph = networkx.DiGraph(networkx.nx_pydot.read_dot(dotfile))
def node_missing(node):
import difflib
close_matches = difflib.get_close_matches(node, graph.nodes(), cutoff=0.7)
@@ -53,11 +52,11 @@ def find_paths(args, usage):
fromnode = args[1]
tonode = args[2]
- paths = list(get_path_networkx(args[0], fromnode, tonode))
- if paths:
- for path in paths:
- print ' -> '.join(path)
- else:
+
+ path = None
+ for path in get_path_networkx(args[0], fromnode, tonode):
+ print(" -> ".join(map(str, path)))
+ if not path:
print("ERROR: no path from %s to %s in graph" % (fromnode, tonode))
sys.exit(1)
diff --git a/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py b/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
index 2f3b8b06a..389fb97f6 100755
--- a/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
+++ b/import-layers/yocto-poky/scripts/contrib/list-packageconfig-flags.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,7 +37,6 @@ if not bitbakepath:
sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n")
sys.exit(1)
-import bb.cache
import bb.cooker
import bb.providers
import bb.tinfoil
@@ -45,7 +44,7 @@ import bb.tinfoil
def get_fnlist(bbhandler, pkg_pn, preferred):
''' Get all recipe file names '''
if preferred:
- (latest_versions, preferred_versions) = bb.providers.findProviders(bbhandler.config_data, bbhandler.cooker.recipecache, pkg_pn)
+ (latest_versions, preferred_versions) = bb.providers.findProviders(bbhandler.config_data, bbhandler.cooker.recipecaches[''], pkg_pn)
fn_list = []
for pn in sorted(pkg_pn):
@@ -58,11 +57,11 @@ def get_fnlist(bbhandler, pkg_pn, preferred):
def get_recipesdata(bbhandler, preferred):
''' Get data of all available recipes which have PACKAGECONFIG flags '''
- pkg_pn = bbhandler.cooker.recipecache.pkg_pn
+ pkg_pn = bbhandler.cooker.recipecaches[''].pkg_pn
data_dict = {}
for fn in get_fnlist(bbhandler, pkg_pn, preferred):
- data = bb.cache.Cache.loadDataFull(fn, bbhandler.cooker.collection.get_file_appends(fn), bbhandler.config_data)
+ data = bbhandler.parse_recipe_file(fn)
flags = data.getVarFlags("PACKAGECONFIG")
flags.pop('doc', None)
if flags:
@@ -86,7 +85,7 @@ def collect_flags(pkg_dict):
''' Collect available PACKAGECONFIG flags and all affected pkgs '''
# flag_dict = {'flag': ['pkg1', 'pkg2',...]}
flag_dict = {}
- for pkgname, flaglist in pkg_dict.iteritems():
+ for pkgname, flaglist in pkg_dict.items():
for flag in flaglist:
if flag in flag_dict:
flag_dict[flag].append(pkgname)
@@ -104,8 +103,8 @@ def display_pkgs(pkg_dict):
pkgname_len += 1
header = '%-*s%s' % (pkgname_len, str("RECIPE NAME"), str("PACKAGECONFIG FLAGS"))
- print header
- print str("").ljust(len(header), '=')
+ print(header)
+ print(str("").ljust(len(header), '='))
for pkgname in sorted(pkg_dict):
print('%-*s%s' % (pkgname_len, pkgname, ' '.join(pkg_dict[pkgname])))
@@ -115,28 +114,28 @@ def display_flags(flag_dict):
flag_len = len("PACKAGECONFIG FLAG") + 5
header = '%-*s%s' % (flag_len, str("PACKAGECONFIG FLAG"), str("RECIPE NAMES"))
- print header
- print str("").ljust(len(header), '=')
+ print(header)
+ print(str("").ljust(len(header), '='))
for flag in sorted(flag_dict):
print('%-*s%s' % (flag_len, flag, ' '.join(sorted(flag_dict[flag]))))
def display_all(data_dict):
''' Display all pkgs and PACKAGECONFIG information '''
- print str("").ljust(50, '=')
+ print(str("").ljust(50, '='))
for fn in data_dict:
print('%s' % data_dict[fn].getVar("P", True))
- print fn
+ print(fn)
packageconfig = data_dict[fn].getVar("PACKAGECONFIG", True) or ''
if packageconfig.strip() == '':
packageconfig = 'None'
print('PACKAGECONFIG %s' % packageconfig)
- for flag,flag_val in data_dict[fn].getVarFlags("PACKAGECONFIG").iteritems():
+ for flag,flag_val in data_dict[fn].getVarFlags("PACKAGECONFIG").items():
if flag == "doc":
continue
print('PACKAGECONFIG[%s] %s' % (flag, flag_val))
- print ''
+ print('')
def main():
pkg_dict = {}
@@ -160,20 +159,20 @@ def main():
options, args = parser.parse_args(sys.argv)
- bbhandler = bb.tinfoil.Tinfoil()
- bbhandler.prepare()
- print("Gathering recipe data...")
- data_dict = get_recipesdata(bbhandler, options.preferred)
-
- if options.listtype == 'flags':
- pkg_dict = collect_pkgs(data_dict)
- flag_dict = collect_flags(pkg_dict)
- display_flags(flag_dict)
- elif options.listtype == 'recipes':
- pkg_dict = collect_pkgs(data_dict)
- display_pkgs(pkg_dict)
- elif options.listtype == 'all':
- display_all(data_dict)
+ with bb.tinfoil.Tinfoil() as bbhandler:
+ bbhandler.prepare()
+ print("Gathering recipe data...")
+ data_dict = get_recipesdata(bbhandler, options.preferred)
+
+ if options.listtype == 'flags':
+ pkg_dict = collect_pkgs(data_dict)
+ flag_dict = collect_flags(pkg_dict)
+ display_flags(flag_dict)
+ elif options.listtype == 'recipes':
+ pkg_dict = collect_pkgs(data_dict)
+ display_pkgs(pkg_dict)
+ elif options.listtype == 'all':
+ display_all(data_dict)
if __name__ == "__main__":
main()
diff --git a/import-layers/yocto-poky/scripts/contrib/mkefidisk.sh b/import-layers/yocto-poky/scripts/contrib/mkefidisk.sh
index 333284ff5..d8db3c016 100755
--- a/import-layers/yocto-poky/scripts/contrib/mkefidisk.sh
+++ b/import-layers/yocto-poky/scripts/contrib/mkefidisk.sh
@@ -369,8 +369,8 @@ mkswap $SWAP >$OUT 2>&1 || die "Failed to prepare swap"
# Installing to $DEVICE
#
debug "Mounting images and device in preparation for installation"
-mount -o loop $HDDIMG $HDDIMG_MNT >$OUT 2>&1 || error "Failed to mount $HDDIMG"
-mount -o loop $HDDIMG_MNT/rootfs.img $HDDIMG_ROOTFS_MNT >$OUT 2>&1 || error "Failed to mount rootfs.img"
+mount -o ro,loop $HDDIMG $HDDIMG_MNT >$OUT 2>&1 || error "Failed to mount $HDDIMG"
+mount -o ro,loop $HDDIMG_MNT/rootfs.img $HDDIMG_ROOTFS_MNT >$OUT 2>&1 || error "Failed to mount rootfs.img"
mount $ROOTFS $ROOTFS_MNT >$OUT 2>&1 || error "Failed to mount $ROOTFS on $ROOTFS_MNT"
mount $BOOTFS $BOOTFS_MNT >$OUT 2>&1 || error "Failed to mount $BOOTFS on $BOOTFS_MNT"
diff --git a/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-2.7.py b/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-2.7.py
index d93c943c6..f2ecf8d3f 100755
--- a/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-2.7.py
+++ b/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-2.7.py
@@ -97,7 +97,7 @@ class MakefileMaker:
# generate package variables
#
- for name, data in sorted(self.packages.iteritems()):
+ for name, data in sorted(self.packages.items()):
desc, deps, files = data
#
@@ -130,7 +130,7 @@ class MakefileMaker:
self.out( 'SUMMARY_${PN}-modules="All Python modules"' )
line = 'RDEPENDS_${PN}-modules="'
- for name, data in sorted(self.packages.iteritems()):
+ for name, data in sorted(self.packages.items()):
if name not in ['${PN}-dev', '${PN}-distutils-staticdev']:
line += "%s " % name
@@ -153,7 +153,7 @@ if __name__ == "__main__":
os.unlink(sys.argv[1])
except Exception:
sys.exc_clear()
- outfile = file( sys.argv[1], "w" )
+ outfile = open( sys.argv[1], "w" )
else:
outfile = sys.stdout
diff --git a/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-3.5.py b/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-3.5.py
index 367b4b8b4..2906cc66d 100755
--- a/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-3.5.py
+++ b/import-layers/yocto-poky/scripts/contrib/python/generate-manifest-3.5.py
@@ -100,7 +100,7 @@ class MakefileMaker:
# generate package variables
#
- for name, data in sorted(self.packages.iteritems()):
+ for name, data in sorted(self.packages.items()):
desc, deps, files = data
#
@@ -133,7 +133,7 @@ class MakefileMaker:
self.out( 'SUMMARY_${PN}-modules="All Python modules"' )
line = 'RDEPENDS_${PN}-modules="'
- for name, data in sorted(self.packages.iteritems()):
+ for name, data in sorted(self.packages.items()):
if name not in ['${PN}-dev', '${PN}-distutils-staticdev']:
line += "%s " % name
@@ -156,7 +156,7 @@ if __name__ == "__main__":
os.unlink(sys.argv[1])
except Exception:
sys.exc_clear()
- outfile = file( sys.argv[1], "w" )
+ outfile = open( sys.argv[1], "w" )
else:
outfile = sys.stdout
@@ -167,7 +167,7 @@ if __name__ == "__main__":
#
m.addPackage( "${PN}-core", "Python interpreter and core modules", "${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math",
- "__future__.* _abcoll.* abc.* ast.* copy.* copyreg.* ConfigParser.* " +
+ "__future__.* _abcoll.* abc.* ast.* copy.* copyreg.* configparser.* " +
"genericpath.* getopt.* linecache.* new.* " +
"os.* posixpath.* struct.* " +
"warnings.* site.* stat.* " +
@@ -208,6 +208,9 @@ if __name__ == "__main__":
m.addPackage( "${PN}-audio", "Python Audio Handling", "${PN}-core",
"wave.* chunk.* sndhdr.* lib-dynload/ossaudiodev.*.so lib-dynload/audioop.*.so audiodev.* sunaudio.* sunau.* toaiff.*" )
+ m.addPackage( "${PN}-argparse", "Python command line argument parser", "${PN}-core ${PN}-codecs ${PN}-textutils",
+ "argparse.*" )
+
m.addPackage( "${PN}-asyncio", "Python Asynchronous I/O, event loop, coroutines and tasks", "${PN}-core",
"asyncio" )
@@ -217,8 +220,8 @@ if __name__ == "__main__":
m.addPackage( "${PN}-compile", "Python bytecode compilation support", "${PN}-core",
"py_compile.* compileall.*" )
- m.addPackage( "${PN}-compression", "Python high-level compression support", "${PN}-core ${PN}-codecs",
- "gzip.* zipfile.* tarfile.* lib-dynload/bz2.*.so" )
+ m.addPackage( "${PN}-compression", "Python high-level compression support", "${PN}-core ${PN}-codecs ${PN}-importlib ${PN}-threading ${PN}-shell",
+ "gzip.* zipfile.* tarfile.* lib-dynload/bz2.*.so lib-dynload/zlib.*.so" )
m.addPackage( "${PN}-crypt", "Python basic cryptographic and hashing support", "${PN}-core",
"hashlib.* md5.* sha.* lib-dynload/crypt.*.so lib-dynload/_hashlib.*.so lib-dynload/_sha256.*.so lib-dynload/_sha512.*.so" )
@@ -229,11 +232,11 @@ if __name__ == "__main__":
m.addPackage( "${PN}-curses", "Python curses support", "${PN}-core",
"curses lib-dynload/_curses.*.so lib-dynload/_curses_panel.*.so" ) # directory + low level module
- m.addPackage( "${PN}-ctypes", "Python C types support", "${PN}-core",
+ m.addPackage( "${PN}-ctypes", "Python C types support", "${PN}-core ${PN}-subprocess",
"ctypes lib-dynload/_ctypes.*.so lib-dynload/_ctypes_test.*.so" ) # directory + low level module
m.addPackage( "${PN}-datetime", "Python calendar and time support", "${PN}-core ${PN}-codecs",
- "_strptime.* calendar.* lib-dynload/datetime.*.so" )
+ "_strptime.* calendar.* datetime.* lib-dynload/_datetime.*.so" )
m.addPackage( "${PN}-db", "Python file-based database support", "${PN}-core",
"anydbm.* dumbdbm.* whichdb.* dbm lib-dynload/_dbm.*.so" )
@@ -256,13 +259,16 @@ if __name__ == "__main__":
m.addPackage( "${PN}-email", "Python email support", "${PN}-core ${PN}-io ${PN}-re ${PN}-mime ${PN}-audio ${PN}-image ${PN}-netclient",
"imaplib.* email" ) # package
+ m.addPackage( "${PN}-enum", "Python support for enumerations", "${PN}-core",
+ "enum.*" )
+
m.addPackage( "${PN}-fcntl", "Python's fcntl interface", "${PN}-core",
"lib-dynload/fcntl.*.so" )
m.addPackage( "${PN}-html", "Python HTML processing support", "${PN}-core",
"formatter.* htmlentitydefs.* htmllib.* markupbase.* sgmllib.* HTMLParser.* " )
- m.addPackage( "${PN}-importlib", "Python import implementation library", "${PN}-core",
+ m.addPackage( "${PN}-importlib", "Python import implementation library", "${PN}-core ${PN}-lang",
"importlib" )
m.addPackage( "${PN}-gdbm", "Python GNU database support", "${PN}-core",
@@ -278,10 +284,10 @@ if __name__ == "__main__":
m.addPackage( "${PN}-json", "Python JSON support", "${PN}-core ${PN}-math ${PN}-re",
"json lib-dynload/_json.*.so" ) # package
- m.addPackage( "${PN}-lang", "Python low-level language support", "${PN}-core",
+ m.addPackage( "${PN}-lang", "Python low-level language support", "${PN}-core ${PN}-importlib",
"lib-dynload/_bisect.*.so lib-dynload/_collections.*.so lib-dynload/_heapq.*.so lib-dynload/_weakref.*.so lib-dynload/_functools.*.so " +
"lib-dynload/array.*.so lib-dynload/itertools.*.so lib-dynload/operator.*.so lib-dynload/parser.*.so " +
- "atexit.* bisect.* code.* codeop.* collections.* _collections_abc.* dis.* functools.* heapq.* inspect.* keyword.* opcode.* symbol.* repr.* token.* " +
+ "atexit.* bisect.* code.* codeop.* collections.* _collections_abc.* contextlib.* dis.* functools.* heapq.* inspect.* keyword.* opcode.* operator.* symbol.* repr.* token.* " +
"tokenize.* traceback.* weakref.*" )
m.addPackage( "${PN}-logging", "Python logging support", "${PN}-core ${PN}-io ${PN}-lang ${PN}-pickle ${PN}-stringold",
@@ -290,7 +296,7 @@ if __name__ == "__main__":
m.addPackage( "${PN}-mailbox", "Python mailbox format support", "${PN}-core ${PN}-mime",
"mailbox.*" )
- m.addPackage( "${PN}-math", "Python math support", "${PN}-core",
+ m.addPackage( "${PN}-math", "Python math support", "${PN}-core ${PN}-crypt",
"lib-dynload/cmath.*.so lib-dynload/math.*.so lib-dynload/_random.*.so random.* sets.*" )
m.addPackage( "${PN}-mime", "Python MIME handling APIs", "${PN}-core ${PN}-io",
@@ -336,11 +342,17 @@ if __name__ == "__main__":
m.addPackage( "${PN}-resource", "Python resource control interface", "${PN}-core",
"lib-dynload/resource.*.so" )
- m.addPackage( "${PN}-shell", "Python shell-like functionality", "${PN}-core ${PN}-re",
+ m.addPackage( "${PN}-selectors", "Python High-level I/O multiplexing", "${PN}-core",
+ "selectors.*" )
+
+ m.addPackage( "${PN}-shell", "Python shell-like functionality", "${PN}-core ${PN}-re ${PN}-compression",
"cmd.* commands.* dircache.* fnmatch.* glob.* popen2.* shlex.* shutil.*" )
- m.addPackage( "${PN}-subprocess", "Python subprocess support", "${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle",
- "subprocess.*" )
+ m.addPackage( "${PN}-signal", "Python set handlers for asynchronous events support", "${PN}-core ${PN}-enum",
+ "signal.*" )
+
+ m.addPackage( "${PN}-subprocess", "Python subprocess support", "${PN}-core ${PN}-io ${PN}-re ${PN}-fcntl ${PN}-pickle ${PN}-threading ${PN}-signal ${PN}-selectors",
+ "subprocess.* lib-dynload/_posixsubprocess.*.so" )
m.addPackage( "${PN}-sqlite3", "Python Sqlite3 database support", "${PN}-core ${PN}-datetime ${PN}-lang ${PN}-crypt ${PN}-io ${PN}-threading",
"lib-dynload/_sqlite3.*.so sqlite3/dbapi2.* sqlite3/__init__.* sqlite3/dump.*" )
@@ -361,7 +373,7 @@ if __name__ == "__main__":
"test" ) # package
m.addPackage( "${PN}-threading", "Python threading & synchronization support", "${PN}-core ${PN}-lang",
- "_threading_local.* dummy_thread.* dummy_threading.* mutex.* threading.* Queue.*" )
+ "_threading_local.* dummy_thread.* dummy_threading.* mutex.* threading.* queue.*" )
m.addPackage( "${PN}-tkinter", "Python Tcl/Tk bindings", "${PN}-core",
"lib-dynload/_tkinter.*.so lib-tk tkinter" ) # package
diff --git a/import-layers/yocto-poky/scripts/contrib/uncovered b/import-layers/yocto-poky/scripts/contrib/uncovered
new file mode 100755
index 000000000..a8399ad17
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/contrib/uncovered
@@ -0,0 +1,39 @@
+#!/bin/bash -eur
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# Find python modules uncovered by oe-seltest
+#
+# Copyright (c) 2016, Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Author: Ed Bartosh <ed.bartosh@linux.intel.com>
+#
+
+if [ ! "$#" -eq 1 -o -t 0 ] ; then
+ echo 'Usage: coverage report | ./scripts/contrib/uncovered <dir>' 1>&2
+ exit 1
+fi
+
+path=$(readlink -ev $1)
+
+if [ ! -d "$path" ] ; then
+ echo "directory $1 doesn't exist" 1>&2
+ exit 1
+fi
+
+diff -u <(grep "$path" | grep -v '0%$' | cut -f1 -d: | sort) \
+ <(find $path | xargs file | grep 'Python script' | cut -f1 -d:| sort) | \
+ grep "^+$path" | cut -c2-
diff --git a/import-layers/yocto-poky/scripts/contrib/verify-homepage.py b/import-layers/yocto-poky/scripts/contrib/verify-homepage.py
index 265ff65d3..d39dd1d97 100755
--- a/import-layers/yocto-poky/scripts/contrib/verify-homepage.py
+++ b/import-layers/yocto-poky/scripts/contrib/verify-homepage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# This script can be used to verify HOMEPAGE values for all recipes in
# the current configuration.
@@ -7,7 +7,7 @@
import sys
import os
import subprocess
-import urllib2
+import urllib.request
# Allow importing scripts/lib modules
@@ -33,30 +33,30 @@ def wgetHomepage(pn, homepage):
return 0
def verifyHomepage(bbhandler):
- pkg_pn = bbhandler.cooker.recipecache.pkg_pn
+ pkg_pn = bbhandler.cooker.recipecaches[''].pkg_pn
pnlist = sorted(pkg_pn)
count = 0
checked = []
for pn in pnlist:
for fn in pkg_pn[pn]:
# There's no point checking multiple BBCLASSEXTENDed variants of the same recipe
- realfn, _ = bb.cache.Cache.virtualfn2realfn(fn)
+ realfn, _, _ = bb.cache.virtualfn2realfn(fn)
if realfn in checked:
continue
- data = bb.cache.Cache.loadDataFull(realfn, bbhandler.cooker.collection.get_file_appends(realfn), bbhandler.config_data)
+ data = bbhandler.parse_recipe_file(realfn)
homepage = data.getVar("HOMEPAGE", True)
if homepage:
try:
- urllib2.urlopen(homepage, timeout=5)
+ urllib.request.urlopen(homepage, timeout=5)
except Exception:
count = count + wgetHomepage(os.path.basename(realfn), homepage)
checked.append(realfn)
return count
if __name__=='__main__':
- bbhandler = bb.tinfoil.Tinfoil()
- bbhandler.prepare()
- logger.info("Start verifying HOMEPAGE:")
- failcount = verifyHomepage(bbhandler)
- logger.info("Finished verifying HOMEPAGE.")
- logger.info("Summary: %s failed" % failcount)
+ with bb.tinfoil.Tinfoil() as bbhandler:
+ bbhandler.prepare()
+ logger.info("Start verifying HOMEPAGE:")
+ failcount = verifyHomepage(bbhandler)
+ logger.info("Finished verifying HOMEPAGE.")
+ logger.info("Summary: %s failed" % failcount)
diff --git a/import-layers/yocto-poky/scripts/cp-noerror b/import-layers/yocto-poky/scripts/cp-noerror
index 28eb90d4a..35eb211be 100755
--- a/import-layers/yocto-poky/scripts/cp-noerror
+++ b/import-layers/yocto-poky/scripts/cp-noerror
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Allow copying of $1 to $2 but if files in $1 disappear during the copy operation,
# don't error.
@@ -33,16 +33,16 @@ def copytree(src, dst, symlinks=False, ignore=None):
shutil.copy2(srcname, dstname)
# catch the Error from the recursive copytree so that we can
# continue with other files
- except shutil.Error, err:
+ except shutil.Error as err:
errors.extend(err.args[0])
- except EnvironmentError, why:
+ except EnvironmentError as why:
errors.append((srcname, dstname, str(why)))
try:
shutil.copystat(src, dst)
- except OSError, why:
+ except OSError as why:
errors.extend((src, dst, str(why)))
if errors:
- raise shutil.Error, errors
+ raise shutil.Error(errors)
try:
copytree(sys.argv[1], sys.argv[2])
diff --git a/import-layers/yocto-poky/scripts/create-pull-request b/import-layers/yocto-poky/scripts/create-pull-request
index 479ad6efc..a88f35a4a 100755
--- a/import-layers/yocto-poky/scripts/create-pull-request
+++ b/import-layers/yocto-poky/scripts/create-pull-request
@@ -39,13 +39,15 @@ Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to
-l local branch Local branch name (default: HEAD)
-c Create an RFC (Request for Comment) patch series
-h Display this help message
+ -a Automatically push local branch (-l) to remote branch (-b),
+ or set CPR_CONTRIB_AUTO_PUSH in env
-i commit_id Ending commit (default: HEAD)
-m msg_body_file The file containing a blurb to be inserted into the summary email
-o output_dir Specify the output directory for the messages (default: pull-PID)
-p prefix Use [prefix N/M] instead of [PATCH N/M] as the subject prefix
-r relative_to Starting commit (default: master)
-s subject The subject to be inserted into the summary email
- -u remote The git remote where the branch is located
+ -u remote The git remote where the branch is located, or set CPR_CONTRIB_REMOTE in env
-d relative_dir Generate patches relative to directory
Examples:
@@ -58,8 +60,9 @@ Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to
EOM
}
+REMOTE="$CPR_CONTRIB_REMOTE"
# Parse and validate arguments
-while getopts "b:cd:hi:m:o:p:r:s:u:l:" OPT; do
+while getopts "b:acd:hi:m:o:p:r:s:u:l:" OPT; do
case $OPT in
b)
BRANCH="$OPTARG"
@@ -101,35 +104,45 @@ while getopts "b:cd:hi:m:o:p:r:s:u:l:" OPT; do
;;
u)
REMOTE="$OPTARG"
- REMOTE_URL=$(git config remote.$REMOTE.url)
- if [ $? -ne 0 ]; then
- echo "ERROR: git config failed to find a url for '$REMOTE'"
- echo
- echo "To add a remote url for $REMOTE, use:"
- echo " git config remote.$REMOTE.url <url>"
- exit 1
- fi
-
- # Rewrite private URLs to public URLs
- # Determine the repository name for use in the WEB_URL later
- case "$REMOTE_URL" in
- *@*)
- USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?"
- PROTO_RE="[a-z][a-z+]*://"
- GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
- REMOTE_URL=${REMOTE_URL%.git}
- REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
- REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#")
- ;;
- *)
- echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
- echo " The pull and browse URLs will likely be incorrect"
- ;;
- esac
+ ;;
+ a)
+ CPR_CONTRIB_AUTO_PUSH="1"
;;
esac
done
+if [ -z "$REMOTE" ]; then
+ echo "ERROR: Missing parameter -u or CPR_CONTRIB_REMOTE in env, no git remote!"
+ usage
+ exit 1
+fi
+
+REMOTE_URL=$(git config remote.$REMOTE.url)
+if [ $? -ne 0 ]; then
+ echo "ERROR: git config failed to find a url for '$REMOTE'"
+ echo
+ echo "To add a remote url for $REMOTE, use:"
+ echo " git config remote.$REMOTE.url <url>"
+ exit 1
+fi
+
+# Rewrite private URLs to public URLs
+# Determine the repository name for use in the WEB_URL later
+case "$REMOTE_URL" in
+*@*)
+ USER_RE="[A-Za-z0-9_.@][A-Za-z0-9_.@-]*\$\?"
+ PROTO_RE="[a-z][a-z+]*://"
+ GIT_RE="\(^\($PROTO_RE\)\?$USER_RE@\)\([^:/]*\)[:/]\(.*\)"
+ REMOTE_URL=${REMOTE_URL%.git}
+ REMOTE_REPO=$(echo $REMOTE_URL | sed "s#$GIT_RE#\4#")
+ REMOTE_URL=$(echo $REMOTE_URL | sed "s#$GIT_RE#git://\3/\4#")
+ ;;
+*)
+ echo "WARNING: Unrecognized remote URL: $REMOTE_URL"
+ echo " The pull and browse URLs will likely be incorrect"
+ ;;
+esac
+
if [ -z "$BRANCH" ]; then
BRANCH=$(git branch | grep -e "^\* " | cut -d' ' -f2)
echo "NOTE: Assuming remote branch '$BRANCH', use -b to override."
@@ -140,12 +153,6 @@ if [ -z "$L_BRANCH" ]; then
echo "NOTE: Assuming local branch HEAD, use -l to override."
fi
-if [ -z "$REMOTE_URL" ]; then
- echo "ERROR: Missing parameter -u, no git remote!"
- usage
- exit 1
-fi
-
if [ $RFC -eq 1 ]; then
PREFIX="RFC $PREFIX"
fi
@@ -171,6 +178,11 @@ esac
# Perform a sanity test on the web URL. Issue a warning if it is not
# accessible, but do not abort as users may want to run offline.
if [ -n "$WEB_URL" ]; then
+ if [ "$CPR_CONTRIB_AUTO_PUSH" = "1" ]; then
+ echo "Pushing '$BRANCH' on '$REMOTE' as requested..."
+ git push $REMOTE $L_BRANCH:$BRANCH
+ echo ""
+ fi
wget --no-check-certificate -q $WEB_URL -O /dev/null
if [ $? -ne 0 ]; then
echo "WARNING: Branch '$BRANCH' was not found on the contrib git tree."
@@ -217,6 +229,7 @@ else
fi
if [ $? -ne 0 ]; then
echo "ERROR: git request-pull reported an error"
+ rm -rf $ODIR
exit 1
fi
@@ -249,7 +262,13 @@ if [ -n "$BODY" ]; then
sed -i "/BLURB HERE/ d" "$CL"
fi
-# If the user specified a subject, replace the SUBJECT token with it.
+# Set subject automatically if there is only one patch
+patch_cnt=`git log --pretty=oneline ${RELATIVE_TO}..${L_BRANCH} | wc -l`
+if [ -z "$SUBJECT" -a $patch_cnt -eq 1 ]; then
+ SUBJECT="`git log --format=%s ${RELATIVE_TO}..${L_BRANCH}`"
+fi
+
+# Replace the SUBJECT token with it.
if [ -n "$SUBJECT" ]; then
sed -i -e "s/\*\*\* SUBJECT HERE \*\*\*/$SUBJECT/" "$CL"
fi
diff --git a/import-layers/yocto-poky/scripts/devtool b/import-layers/yocto-poky/scripts/devtool
index 478039065..0c32c502a 100755
--- a/import-layers/yocto-poky/scripts/devtool
+++ b/import-layers/yocto-poky/scripts/devtool
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# OpenEmbedded Development tool
#
@@ -22,7 +22,7 @@ import os
import argparse
import glob
import re
-import ConfigParser
+import configparser
import subprocess
import logging
@@ -51,12 +51,12 @@ class ConfigHandler(object):
def __init__(self, filename):
self.config_file = filename
- self.config_obj = ConfigParser.SafeConfigParser()
+ self.config_obj = configparser.SafeConfigParser()
def get(self, section, option, default=None):
try:
ret = self.config_obj.get(section, option)
- except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
+ except (configparser.NoOptionError, configparser.NoSectionError):
if default != None:
ret = default
else:
@@ -86,6 +86,11 @@ class ConfigHandler(object):
with open(self.config_file, 'w') as f:
self.config_obj.write(f)
+ def set(self, section, option, value):
+ if not self.config_obj.has_section(section):
+ self.config_obj.add_section(section)
+ self.config_obj.set(section, option, value)
+
class Context:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
@@ -174,13 +179,16 @@ def _create_workspace(workspacedir, config, basepath):
# Add a README file
with open(os.path.join(workspacedir, 'README'), 'w') as f:
f.write('This layer was created by the OpenEmbedded devtool utility in order to\n')
- f.write('contain recipes and bbappends. In most instances you should use the\n')
+ f.write('contain recipes and bbappends that are currently being worked on. The idea\n')
+ f.write('is that the contents is temporary - once you have finished working on a\n')
+ f.write('recipe you use the appropriate method to move the files you have been\n')
+ f.write('working on to a proper layer. In most instances you should use the\n')
f.write('devtool utility to manage files within it rather than modifying files\n')
f.write('directly (although recipes added with "devtool add" will often need\n')
f.write('direct modification.)\n')
- f.write('\nIf you no longer need to use devtool you can remove the path to this\n')
- f.write('workspace layer from your conf/bblayers.conf file (and then delete the\n')
- f.write('layer, if you wish).\n')
+ f.write('\nIf you no longer need to use devtool or the workspace layer\'s contents\n')
+ f.write('you can remove the path to this workspace layer from your conf/bblayers.conf\n')
+ f.write('file (and then delete the layer, if you wish).\n')
f.write('\nNote that by default, if devtool fetches and unpacks source code, it\n')
f.write('will place it in a subdirectory of a "sources" subdirectory of the\n')
f.write('layer. If you prefer it to be elsewhere you can specify the source\n')
@@ -281,18 +289,17 @@ def main():
if global_args.bbpath is None:
tinfoil = setup_tinfoil(config_only=True, basepath=basepath)
- global_args.bbpath = tinfoil.config_data.getVar('BBPATH', True)
- else:
- tinfoil = None
+ try:
+ global_args.bbpath = tinfoil.config_data.getVar('BBPATH', True)
+ finally:
+ tinfoil.shutdown()
for path in [scripts_path] + global_args.bbpath.split(':'):
pluginpath = os.path.join(path, 'lib', 'devtool')
scriptutils.load_plugins(logger, plugins, pluginpath)
- if tinfoil:
- tinfoil.shutdown()
-
subparsers = parser.add_subparsers(dest="subparser_name", title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
subparsers.add_subparser_group('sdk', 'SDK maintenance', -2)
subparsers.add_subparser_group('advanced', 'Advanced', -1)
@@ -325,7 +332,7 @@ def main():
except DevtoolError as err:
if str(err):
logger.error(str(err))
- ret = 1
+ ret = err.exitcode
except argparse_oe.ArgumentUsageError as ae:
parser.error_subcommand(ae.message, ae.subcommand)
diff --git a/import-layers/yocto-poky/scripts/gen-lockedsig-cache b/import-layers/yocto-poky/scripts/gen-lockedsig-cache
index 0986a2165..49de74ed9 100755
--- a/import-layers/yocto-poky/scripts/gen-lockedsig-cache
+++ b/import-layers/yocto-poky/scripts/gen-lockedsig-cache
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import sys
@@ -15,15 +15,27 @@ def mkdir(d):
if len(sys.argv) < 5:
print("Incorrect number of arguments specified")
- print("syntax: gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir> <nativelsbstring>")
+ print("syntax: gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir> <nativelsbstring> [filterfile]")
sys.exit(1)
+filterlist = []
+if len(sys.argv) > 5:
+ print('Reading filter file %s' % sys.argv[5])
+ with open(sys.argv[5]) as f:
+ for l in f.readlines():
+ if ":" in l:
+ filterlist.append(l.rstrip())
+
print('Reading %s' % sys.argv[1])
sigs = []
with open(sys.argv[1]) as f:
for l in f.readlines():
if ":" in l:
- sigs.append(l.split(":")[2].split()[0])
+ task, sig = l.split()[0].rsplit(':', 1)
+ if filterlist and not task in filterlist:
+ print('Filtering out %s' % task)
+ else:
+ sigs.append(sig)
print('Gathering file list')
files = set()
@@ -45,13 +57,14 @@ for f in files:
destdir = os.path.dirname(dst)
mkdir(destdir)
+ src = os.path.realpath(f)
if os.path.exists(dst):
os.remove(dst)
- if (os.stat(f).st_dev == os.stat(destdir).st_dev):
+ if (os.stat(src).st_dev == os.stat(destdir).st_dev):
print('linking')
- os.link(f, dst)
+ os.link(src, dst)
else:
print('copying')
- shutil.copyfile(f, dst)
+ shutil.copyfile(src, dst)
print('Done!')
diff --git a/import-layers/yocto-poky/scripts/lib/argparse_oe.py b/import-layers/yocto-poky/scripts/lib/argparse_oe.py
index bf3ebaddf..bf6eb1719 100644
--- a/import-layers/yocto-poky/scripts/lib/argparse_oe.py
+++ b/import-layers/yocto-poky/scripts/lib/argparse_oe.py
@@ -14,23 +14,35 @@ class ArgumentParser(argparse.ArgumentParser):
kwargs.setdefault('formatter_class', OeHelpFormatter)
self._subparser_groups = OrderedDict()
super(ArgumentParser, self).__init__(*args, **kwargs)
+ self._positionals.title = 'arguments'
+ self._optionals.title = 'options'
def error(self, message):
- sys.stderr.write('ERROR: %s\n' % message)
- self.print_help()
+ """error(message: string)
+
+ Prints a help message incorporating the message to stderr and
+ exits.
+ """
+ self._print_message('%s: error: %s\n' % (self.prog, message), sys.stderr)
+ self.print_help(sys.stderr)
sys.exit(2)
def error_subcommand(self, message, subcommand):
if subcommand:
- for action in self._actions:
- if isinstance(action, argparse._SubParsersAction):
- for choice, subparser in action.choices.items():
- if choice == subcommand:
- subparser.error(message)
- return
+ action = self._get_subparser_action()
+ try:
+ subparser = action._name_parser_map[subcommand]
+ except KeyError:
+ self.error('no subparser for name "%s"' % subcommand)
+ else:
+ subparser.error(message)
+
self.error(message)
def add_subparsers(self, *args, **kwargs):
+ if 'dest' not in kwargs:
+ kwargs['dest'] = '_subparser_name'
+
ret = super(ArgumentParser, self).add_subparsers(*args, **kwargs)
# Need a way of accessing the parent parser
ret._parent_parser = self
@@ -43,6 +55,38 @@ class ArgumentParser(argparse.ArgumentParser):
def add_subparser_group(self, groupname, groupdesc, order=0):
self._subparser_groups[groupname] = (groupdesc, order)
+ def parse_args(self, args=None, namespace=None):
+ """Parse arguments, using the correct subparser to show the error."""
+ args, argv = self.parse_known_args(args, namespace)
+ if argv:
+ message = 'unrecognized arguments: %s' % ' '.join(argv)
+ if self._subparsers:
+ subparser = self._get_subparser(args)
+ subparser.error(message)
+ else:
+ self.error(message)
+ sys.exit(2)
+ return args
+
+ def _get_subparser(self, args):
+ action = self._get_subparser_action()
+ if action.dest == argparse.SUPPRESS:
+ self.error('cannot get subparser, the subparser action dest is suppressed')
+
+ name = getattr(args, action.dest)
+ try:
+ return action._name_parser_map[name]
+ except KeyError:
+ self.error('no subparser for name "%s"' % name)
+
+ def _get_subparser_action(self):
+ if not self._subparsers:
+ self.error('cannot return the subparser action, no subparsers added')
+
+ for action in self._subparsers._group_actions:
+ if isinstance(action, argparse._SubParsersAction):
+ return action
+
class ArgumentSubParser(ArgumentParser):
def __init__(self, *args, **kwargs):
@@ -51,10 +95,6 @@ class ArgumentSubParser(ArgumentParser):
if 'order' in kwargs:
self._order = kwargs.pop('order')
super(ArgumentSubParser, self).__init__(*args, **kwargs)
- for agroup in self._action_groups:
- if agroup.title == 'optional arguments':
- agroup.title = 'options'
- break
def parse_known_args(self, args=None, namespace=None):
# This works around argparse not handling optional positional arguments being
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/engine.py b/import-layers/yocto-poky/scripts/lib/bsp/engine.py
index 66e2162ea..07a15bb90 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/engine.py
+++ b/import-layers/yocto-poky/scripts/lib/bsp/engine.py
@@ -34,23 +34,22 @@
import os
import sys
from abc import ABCMeta, abstractmethod
-from tags import *
+from .tags import *
import shlex
import json
import subprocess
import shutil
-class Line():
+class Line(metaclass=ABCMeta):
"""
Generic (abstract) container representing a line that will appear
in the BSP-generating program.
"""
- __metaclass__ = ABCMeta
def __init__(self, line):
self.line = line
self.generated_line = ""
- self.prio = sys.maxint
+ self.prio = sys.maxsize
self.discard = False
@abstractmethod
@@ -155,7 +154,7 @@ class InputLine(Line):
try:
self.prio = int(props["prio"])
except KeyError:
- self.prio = sys.maxint
+ self.prio = sys.maxsize
def gen(self, context = None):
try:
@@ -201,7 +200,7 @@ class EditBoxInputLine(InputLine):
msg += " [default: " + default_choice + "]"
- line = name + " = default(raw_input(\"" + msg + " \"), " + name + ")"
+ line = name + " = default(input(\"" + msg + " \"), " + name + ")"
return line
@@ -314,16 +313,15 @@ class BooleanInputLine(InputLine):
msg += " [default: " + default_choice + "]"
- line = name + " = boolean(raw_input(\"" + msg + " \"), " + name + ")"
+ line = name + " = boolean(input(\"" + msg + " \"), " + name + ")"
return line
-class ListInputLine(InputLine):
+class ListInputLine(InputLine, metaclass=ABCMeta):
"""
Base class for List-based Input lines. e.g. Choicelist, Checklist.
"""
- __metaclass__ = ABCMeta
def __init__(self, props, tag, lineno):
InputLine.__init__(self, props, tag, lineno)
@@ -464,9 +462,9 @@ class ListInputLine(InputLine):
choices_str = self.gen_choices_str(choicepairs)
choices_val_list = self.gen_choices_val_list(choicepairs)
if checklist:
- choiceval = default(find_choicevals(raw_input(msg + "\n" + choices_str), choices_val_list), default_choice)
+ choiceval = default(find_choicevals(input(msg + "\n" + choices_str), choices_val_list), default_choice)
else:
- choiceval = default(find_choiceval(raw_input(msg + "\n" + choices_str), choices_val_list), default_choice)
+ choiceval = default(find_choiceval(input(msg + "\n" + choices_str), choices_val_list), default_choice)
return choiceval
@@ -540,12 +538,12 @@ def get_verified_git_repo(input_str, name):
"""
msg = input_str.strip() + " "
- giturl = default(raw_input(msg), name)
+ giturl = default(input(msg), name)
while True:
if verify_git_repo(giturl):
return giturl
- giturl = default(raw_input(msg), name)
+ giturl = default(input(msg), name)
def get_verified_file(input_str, name, filename_can_be_null):
@@ -555,14 +553,14 @@ def get_verified_file(input_str, name, filename_can_be_null):
"""
msg = input_str.strip() + " "
- filename = default(raw_input(msg), name)
+ filename = default(input(msg), name)
while True:
if not filename and filename_can_be_null:
return filename
if os.path.isfile(filename):
return filename
- filename = default(raw_input(msg), name)
+ filename = default(input(msg), name)
def replace_file(replace_this, with_this):
@@ -1263,13 +1261,13 @@ def conditional_filename(filename):
return None
end = filename.find(CLOSE_TAG, opentag_start)
if end == -1:
- print "No close tag found for open tag in filename %s" % filename
+ print("No close tag found for open tag in filename %s" % filename)
sys.exit(1)
# we have a {{ tag i.e. code
tag = filename[opentag_start + len(OPEN_TAG):end].strip()
if not tag.lstrip().startswith(IF_TAG):
- print "Only 'if' tags are allowed in file or directory names, filename: %s" % filename
+ print("Only 'if' tags are allowed in file or directory names, filename: %s" % filename)
sys.exit(1)
return CodeLine(tag)
@@ -1286,7 +1284,7 @@ class InputLineGroup(InputLine):
def __init__(self, codeline):
InputLine.__init__(self, {}, "", 0)
self.group = []
- self.prio = sys.maxint
+ self.prio = sys.maxsize
self.group.append(codeline)
def append(self, line):
@@ -1364,7 +1362,7 @@ def run_program_lines(linelist, codedump):
of = open("bspgen.out", "w")
of.write(buf)
of.close()
- exec buf
+ exec(buf)
def gen_target(files, context = None):
@@ -1387,7 +1385,7 @@ def gen_supplied_property_vals(properties, program_lines):
Generate user-specified entries for input values instead of
generating input prompts.
"""
- for name, val in properties.iteritems():
+ for name, val in properties.items():
program_line = name + " = \"" + val + "\""
program_lines.append(program_line)
@@ -1515,7 +1513,7 @@ def expand_targets(context, bsp_output_dir, expand_common=True):
arches = os.listdir(arch_path)
if arch not in arches or arch == "common":
- print "Invalid karch, exiting\n"
+ print("Invalid karch, exiting\n")
sys.exit(1)
target = os.path.join(arch_path, arch)
@@ -1541,7 +1539,7 @@ def yocto_common_create(machine, target, scripts_path, layer_output_dir, codedum
expand_common - boolean, use the contents of (for bsp layers) arch/common
"""
if os.path.exists(layer_output_dir):
- print "\nlayer output dir already exists, exiting. (%s)" % layer_output_dir
+ print("\nlayer output dir already exists, exiting. (%s)" % layer_output_dir)
sys.exit(1)
properties = None
@@ -1549,11 +1547,13 @@ def yocto_common_create(machine, target, scripts_path, layer_output_dir, codedum
if properties_file:
try:
infile = open(properties_file, "r")
+ properties = json.load(infile)
except IOError:
- print "Couldn't open properties file %s for reading, exiting" % properties_file
+ print("Couldn't open properties file %s for reading, exiting" % properties_file)
+ sys.exit(1)
+ except ValueError:
+ print("Wrong format on properties file %s, exiting" % properties_file)
sys.exit(1)
-
- properties = json.load(infile)
if properties_str and not properties:
properties = json.loads(properties_str)
@@ -1597,8 +1597,8 @@ def yocto_layer_create(layer_name, scripts_path, layer_output_dir, codedump, pro
"""
yocto_common_create(layer_name, "layer", scripts_path, layer_output_dir, codedump, properties_file, properties, False)
- print "\nNew layer created in %s.\n" % (layer_output_dir)
- print "Don't forget to add it to your BBLAYERS (for details see %s/README)." % (layer_output_dir)
+ print("\nNew layer created in %s.\n" % layer_output_dir)
+ print("Don't forget to add it to your BBLAYERS (for details see %s/README)." % layer_output_dir)
def yocto_bsp_create(machine, arch, scripts_path, bsp_output_dir, codedump, properties_file, properties=None):
@@ -1616,21 +1616,21 @@ def yocto_bsp_create(machine, arch, scripts_path, bsp_output_dir, codedump, prop
"""
yocto_common_create(machine, arch, scripts_path, bsp_output_dir, codedump, properties_file, properties)
- print "\nNew %s BSP created in %s" % (arch, bsp_output_dir)
+ print("\nNew %s BSP created in %s" % (arch, bsp_output_dir))
def print_dict(items, indent = 0):
"""
Print the values in a possibly nested dictionary.
"""
- for key, val in items.iteritems():
- print " "*indent + "\"%s\" :" % key,
+ for key, val in items.items():
+ print(" "*indent + "\"%s\" :" % key)
if type(val) == dict:
- print "{"
+ print("{")
print_dict(val, indent + 1)
- print " "*indent + "}"
+ print(" "*indent + "}")
else:
- print "%s" % val
+ print("%s" % val)
def get_properties(input_lines):
@@ -1681,7 +1681,7 @@ def yocto_layer_list_properties(arch, scripts_path, properties_file, expand_comm
try:
of = open(properties_file, "w")
except IOError:
- print "Couldn't open properties file %s for writing, exiting" % properties_file
+ print("Couldn't open properties file %s for writing, exiting" % properties_file)
sys.exit(1)
json.dump(properties, of, indent=1)
@@ -1755,10 +1755,10 @@ def print_values(type, values_list):
"""
if type == "choicelist":
for value in values_list:
- print "[\"%s\", \"%s\"]" % (value[0], value[1])
+ print("[\"%s\", \"%s\"]" % (value[0], value[1]))
elif type == "boolean":
for value in values_list:
- print "[\"%s\", \"%s\"]" % (value[0], value[1])
+ print("[\"%s\", \"%s\"]" % (value[0], value[1]))
def yocto_layer_list_property_values(arch, property, scripts_path, properties_file, expand_common=True):
@@ -1789,7 +1789,7 @@ def yocto_layer_list_property_values(arch, property, scripts_path, properties_fi
input_line = find_input_line(property, input_lines)
if not input_line:
- print "Couldn't find values for property %s" % property
+ print("Couldn't find values for property %s" % property)
return
values_list = []
@@ -1818,7 +1818,7 @@ def yocto_layer_list_property_values(arch, property, scripts_path, properties_fi
try:
of = open(properties_file, "w")
except IOError:
- print "Couldn't open properties file %s for writing, exiting" % properties_file
+ print("Couldn't open properties file %s for writing, exiting" % properties_file)
sys.exit(1)
json.dump(values_list, of)
@@ -1826,44 +1826,28 @@ def yocto_layer_list_property_values(arch, property, scripts_path, properties_fi
print_values(type, values_list)
-def yocto_bsp_list(args, scripts_path, properties_file):
+def yocto_bsp_list(args, scripts_path):
"""
Print available architectures, or the complete list of properties
defined by the BSP, or the possible values for a particular BSP
property.
"""
- if len(args) < 1:
- return False
-
- if args[0] == "karch":
+ if args.karch == "karch":
lib_path = scripts_path + '/lib'
bsp_path = lib_path + '/bsp'
arch_path = bsp_path + '/substrate/target/arch'
- print "Architectures available:"
+ print("Architectures available:")
for arch in os.listdir(arch_path):
if arch == "common" or arch == "layer":
continue
- print " %s" % arch
- return True
- else:
- arch = args[0]
-
- if len(args) < 2 or len(args) > 3:
- return False
-
- if len(args) == 2:
- if args[1] == "properties":
- yocto_layer_list_properties(arch, scripts_path, properties_file)
- else:
- return False
+ print(" %s" % arch)
+ return
- if len(args) == 3:
- if args[1] == "property":
- yocto_layer_list_property_values(arch, args[2], scripts_path, properties_file)
- else:
- return False
+ if args.properties:
+ yocto_layer_list_properties(args.karch, scripts_path, args.properties_file)
+ elif args.property:
+ yocto_layer_list_property_values(args.karch, args.property, scripts_path, args.properties_file)
- return True
def yocto_layer_list(args, scripts_path, properties_file):
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/help.py b/import-layers/yocto-poky/scripts/lib/bsp/help.py
index 85a09dd29..4f0d7721f 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/help.py
+++ b/import-layers/yocto-poky/scripts/lib/bsp/help.py
@@ -42,7 +42,7 @@ def display_help(subcommand, subcommands):
help = subcommands.get(subcommand, subcommand_error)[2]
pager = subprocess.Popen('less', stdin=subprocess.PIPE)
- pager.communicate(help)
+ pager.communicate(bytes(help, 'UTF-8'))
return True
@@ -183,9 +183,9 @@ DESCRIPTION
yocto_bsp_list_usage = """
usage: yocto-bsp list karch
- yocto-bsp list <karch> properties
+ yocto-bsp list <karch> --properties
[-o <JSON PROPERTY FILE> | --outfile <JSON PROPERTY_FILE>]
- yocto-bsp list <karch> property <xxx>
+ yocto-bsp list <karch> --property <xxx>
[-o <JSON PROPERTY FILE> | --outfile <JSON PROPERTY_FILE>]
This command enumerates the complete set of possible values for a
@@ -213,9 +213,9 @@ NAME
SYNOPSIS
yocto-bsp list karch
- yocto-bsp list <karch> properties
+ yocto-bsp list <karch> --properties
[--o <JSON PROPERTY FILE> | -outfile <JSON PROPERTY_FILE>]
- yocto-bsp list <karch> property <xxx>
+ yocto-bsp list <karch> --property <xxx>
[--o <JSON PROPERTY FILE> | -outfile <JSON PROPERTY_FILE>]
DESCRIPTION
@@ -246,9 +246,9 @@ DESCRIPTION
object will consist of the set of name:value pairs corresponding
to the (possibly nested) dictionary of properties defined by the
input statements used by the BSP. Some example output for the
- 'list properties' command:
+ 'list --properties' command:
- $ yocto-bsp list arm properties
+ $ yocto-bsp list arm --properties
"touchscreen" : {
"msg" : Does your BSP have a touchscreen? (y/N)
"default" : n
@@ -310,11 +310,11 @@ DESCRIPTION
name:value pairs corresponding to the array of property values
associated with the property.
- $ yocto-bsp list i386 property xserver_choice
+ $ yocto-bsp list i386 --property xserver_choice
["xserver_vesa", "VESA xserver support"]
["xserver_i915", "i915 xserver support"]
- $ yocto-bsp list arm property base_kbranch_linux_yocto_3_0
+ $ yocto-bsp list arm --property base_kbranch_linux_yocto_3_0
Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.0...
["yocto/base", "yocto/base"]
["yocto/eg20t", "yocto/eg20t"]
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/kernel.py b/import-layers/yocto-poky/scripts/lib/bsp/kernel.py
index ba68b60fc..a3ee325a8 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/kernel.py
+++ b/import-layers/yocto-poky/scripts/lib/bsp/kernel.py
@@ -29,11 +29,10 @@
import sys
import os
import shutil
-from tags import *
+from .tags import *
import glob
import subprocess
-from engine import create_context
-
+from .engine import create_context
def find_bblayers():
"""
@@ -42,7 +41,7 @@ def find_bblayers():
try:
builddir = os.environ["BUILDDIR"]
except KeyError:
- print "BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)"
+ print("BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)")
sys.exit(1)
bblayers_conf = os.path.join(builddir, "conf/bblayers.conf")
@@ -50,10 +49,10 @@ def find_bblayers():
bitbake_env_cmd = "bitbake -e"
bitbake_env_lines = subprocess.Popen(bitbake_env_cmd, shell=True,
- stdout=subprocess.PIPE).stdout.read()
+ stdout=subprocess.PIPE).stdout.read().decode('utf-8')
if not bitbake_env_lines:
- print "Couldn't get '%s' output, exiting." % bitbake_env_cmd
+ print("Couldn't get '%s' output, exiting." % bitbake_env_cmd)
sys.exit(1)
for line in bitbake_env_lines.split('\n'):
@@ -62,8 +61,7 @@ def find_bblayers():
break
if not bblayers:
- print "Couldn't find BBLAYERS in %s output, exiting." % \
- bitbake_env_cmd
+ print("Couldn't find BBLAYERS in %s output, exiting." % bitbake_env_cmd)
sys.exit(1)
raw_layers = bblayers.split()
@@ -110,8 +108,8 @@ def find_bsp_layer(machine):
if layer.endswith(machine):
return layer
- print "Unable to find the BSP layer for machine %s." % machine
- print "Please make sure it is listed in bblayers.conf"
+ print("Unable to find the BSP layer for machine %s." % machine)
+ print("Please make sure it is listed in bblayers.conf")
sys.exit(1)
@@ -190,8 +188,8 @@ def yocto_kernel_config_list(scripts_path, machine):
"""
config_items = read_config_items(scripts_path, machine)
- print "The current set of machine-specific kernel config items for %s is:" % machine
- print gen_choices_str(config_items)
+ print("The current set of machine-specific kernel config items for %s is:" % machine)
+ print(gen_choices_str(config_items))
def yocto_kernel_config_rm(scripts_path, machine):
@@ -202,9 +200,9 @@ def yocto_kernel_config_rm(scripts_path, machine):
"""
config_items = read_config_items(scripts_path, machine)
- print "Specify the kernel config items to remove:"
- input = raw_input(gen_choices_str(config_items))
- rm_choices = input.split()
+ print("Specify the kernel config items to remove:")
+ inp = input(gen_choices_str(config_items))
+ rm_choices = inp.split()
rm_choices.sort()
removed = []
@@ -213,18 +211,18 @@ def yocto_kernel_config_rm(scripts_path, machine):
try:
idx = int(choice) - 1
except ValueError:
- print "Invalid choice (%s), exiting" % choice
+ print("Invalid choice (%s), exiting" % choice)
sys.exit(1)
if idx < 0 or idx >= len(config_items):
- print "Invalid choice (%d), exiting" % (idx + 1)
+ print("Invalid choice (%d), exiting" % (idx + 1))
sys.exit(1)
removed.append(config_items.pop(idx))
write_config_items(scripts_path, machine, config_items)
- print "Removed items:"
+ print("Removed items:")
for r in removed:
- print "\t%s" % r
+ print("\t%s" % r)
def yocto_kernel_config_add(scripts_path, machine, config_items):
@@ -239,7 +237,7 @@ def yocto_kernel_config_add(scripts_path, machine, config_items):
for item in config_items:
if not item.startswith("CONFIG") or (not "=y" in item and not "=m" in item):
- print "Invalid config item (%s), exiting" % item
+ print("Invalid config item (%s), exiting" % item)
sys.exit(1)
if item not in cur_items and item not in new_items:
new_items.append(item)
@@ -249,16 +247,16 @@ def yocto_kernel_config_add(scripts_path, machine, config_items):
if len(new_items) > 0:
cur_items.extend(new_items)
write_config_items(scripts_path, machine, cur_items)
- print "Added item%s:" % ("" if len(new_items)==1 else "s")
+ print("Added item%s:" % ("" if len(new_items)==1 else "s"))
for n in new_items:
- print "\t%s" % n
+ print("\t%s" % n)
if len(dup_items) > 0:
output="The following item%s already exist%s in the current configuration, ignoring %s:" % \
(("","s", "it") if len(dup_items)==1 else ("s", "", "them" ))
- print output
+ print(output)
for n in dup_items:
- print "\t%s" % n
+ print("\t%s" % n)
def find_current_kernel(bsp_layer, machine):
"""
@@ -347,8 +345,8 @@ def yocto_kernel_patch_list(scripts_path, machine):
"""
patches = read_patch_items(scripts_path, machine)
- print "The current set of machine-specific patches for %s is:" % machine
- print gen_choices_str(patches)
+ print("The current set of machine-specific patches for %s is:" % machine)
+ print(gen_choices_str(patches))
def yocto_kernel_patch_rm(scripts_path, machine):
@@ -358,26 +356,26 @@ def yocto_kernel_patch_rm(scripts_path, machine):
"""
patches = read_patch_items(scripts_path, machine)
- print "Specify the patches to remove:"
- input = raw_input(gen_choices_str(patches))
- rm_choices = input.split()
+ print("Specify the patches to remove:")
+ inp = input(gen_choices_str(patches))
+ rm_choices = inp.split()
rm_choices.sort()
removed = []
filesdir = find_filesdir(scripts_path, machine)
if not filesdir:
- print "Couldn't rm patch(es) since we couldn't find a 'files' dir"
+ print("Couldn't rm patch(es) since we couldn't find a 'files' dir")
sys.exit(1)
for choice in reversed(rm_choices):
try:
idx = int(choice) - 1
except ValueError:
- print "Invalid choice (%s), exiting" % choice
+ print("Invalid choice (%s), exiting" % choice)
sys.exit(1)
if idx < 0 or idx >= len(patches):
- print "Invalid choice (%d), exiting" % (idx + 1)
+ print("Invalid choice (%d), exiting" % (idx + 1))
sys.exit(1)
filesdir_patch = os.path.join(filesdir, patches[idx])
if os.path.isfile(filesdir_patch):
@@ -387,9 +385,9 @@ def yocto_kernel_patch_rm(scripts_path, machine):
write_patch_items(scripts_path, machine, patches)
- print "Removed patches:"
+ print("Removed patches:")
for r in removed:
- print "\t%s" % r
+ print("\t%s" % r)
def yocto_kernel_patch_add(scripts_path, machine, patches):
@@ -401,19 +399,19 @@ def yocto_kernel_patch_add(scripts_path, machine, patches):
for patch in patches:
if os.path.basename(patch) in existing_patches:
- print "Couldn't add patch (%s) since it's already been added" % os.path.basename(patch)
+ print("Couldn't add patch (%s) since it's already been added" % os.path.basename(patch))
sys.exit(1)
filesdir = find_filesdir(scripts_path, machine)
if not filesdir:
- print "Couldn't add patch (%s) since we couldn't find a 'files' dir to add it to" % os.path.basename(patch)
+ print("Couldn't add patch (%s) since we couldn't find a 'files' dir to add it to" % os.path.basename(patch))
sys.exit(1)
new_patches = []
for patch in patches:
if not os.path.isfile(patch):
- print "Couldn't find patch (%s), exiting" % patch
+ print("Couldn't find patch (%s), exiting" % patch)
sys.exit(1)
basename = os.path.basename(patch)
filesdir_patch = os.path.join(filesdir, basename)
@@ -424,9 +422,9 @@ def yocto_kernel_patch_add(scripts_path, machine, patches):
cur_items.extend(new_patches)
write_patch_items(scripts_path, machine, cur_items)
- print "Added patches:"
+ print("Added patches:")
for n in new_patches:
- print "\t%s" % n
+ print("\t%s" % n)
def inc_pr(line):
@@ -461,7 +459,7 @@ def kernel_contents_changed(scripts_path, machine):
kernel = find_current_kernel(layer, machine)
if not kernel:
- print "Couldn't determine the kernel for this BSP, exiting."
+ print("Couldn't determine the kernel for this BSP, exiting.")
sys.exit(1)
kernel_bbfile = os.path.join(layer, "recipes-kernel/linux/" + kernel + ".bbappend")
@@ -597,8 +595,8 @@ def yocto_kernel_feature_list(scripts_path, machine):
"""
features = read_features(scripts_path, machine)
- print "The current set of machine-specific features for %s is:" % machine
- print gen_choices_str(features)
+ print("The current set of machine-specific features for %s is:" % machine)
+ print(gen_choices_str(features))
def yocto_kernel_feature_rm(scripts_path, machine):
@@ -609,9 +607,9 @@ def yocto_kernel_feature_rm(scripts_path, machine):
"""
features = read_features(scripts_path, machine)
- print "Specify the features to remove:"
- input = raw_input(gen_choices_str(features))
- rm_choices = input.split()
+ print("Specify the features to remove:")
+ inp = input(gen_choices_str(features))
+ rm_choices = inp.split()
rm_choices.sort()
removed = []
@@ -620,18 +618,18 @@ def yocto_kernel_feature_rm(scripts_path, machine):
try:
idx = int(choice) - 1
except ValueError:
- print "Invalid choice (%s), exiting" % choice
+ print("Invalid choice (%s), exiting" % choice)
sys.exit(1)
if idx < 0 or idx >= len(features):
- print "Invalid choice (%d), exiting" % (idx + 1)
+ print("Invalid choice (%d), exiting" % (idx + 1))
sys.exit(1)
removed.append(features.pop(idx))
write_features(scripts_path, machine, features)
- print "Removed features:"
+ print("Removed features:")
for r in removed:
- print "\t%s" % r
+ print("\t%s" % r)
def yocto_kernel_feature_add(scripts_path, machine, features):
@@ -643,7 +641,7 @@ def yocto_kernel_feature_add(scripts_path, machine, features):
for item in features:
if not item.endswith(".scc"):
- print "Invalid feature (%s), exiting" % item
+ print("Invalid feature (%s), exiting" % item)
sys.exit(1)
new_items.append(item)
@@ -652,9 +650,9 @@ def yocto_kernel_feature_add(scripts_path, machine, features):
write_features(scripts_path, machine, cur_items)
- print "Added features:"
+ print("Added features:")
for n in new_items:
- print "\t%s" % n
+ print("\t%s" % n)
def find_feature_url(git_url):
@@ -714,7 +712,7 @@ def print_feature_descs(layer, feature_dir):
feature_dir + "/" + file)
f = open(fullpath)
feature_desc = find_feature_desc(f.readlines())
- print feature_dir + "/" + file + ": " + feature_desc
+ print(feature_dir + "/" + file + ": " + feature_desc)
def yocto_kernel_available_features_list(scripts_path, machine):
@@ -725,7 +723,7 @@ def yocto_kernel_available_features_list(scripts_path, machine):
layer = find_bsp_layer(machine)
kernel = find_current_kernel(layer, machine)
if not kernel:
- print "Couldn't determine the kernel for this BSP, exiting."
+ print("Couldn't determine the kernel for this BSP, exiting.")
sys.exit(1)
context = create_context(machine, "arch", scripts_path)
@@ -735,9 +733,9 @@ def yocto_kernel_available_features_list(scripts_path, machine):
feature_url = find_feature_url(giturl)
feature_cmd = "wget -q -O - " + feature_url
- tmp = subprocess.Popen(feature_cmd, shell=True, stdout=subprocess.PIPE).stdout.read()
+ tmp = subprocess.Popen(feature_cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
- print "The current set of kernel features available to %s is:\n" % machine
+ print("The current set of kernel features available to %s is:\n" % machine)
if tmp:
tmpline = tmp.split("\n")
@@ -754,9 +752,9 @@ def yocto_kernel_available_features_list(scripts_path, machine):
feature_type = feature_def[0].strip()
feature = feature_def[1].strip()
desc = get_feature_desc(giturl, feature)
- print "%s: %s" % (feature, desc)
+ print("%s: %s" % (feature, desc))
- print "[local]"
+ print("[local]")
print_feature_descs(layer, "cfg")
print_feature_descs(layer, "features")
@@ -786,7 +784,7 @@ def get_feature_desc(git_url, feature):
"""
feature_desc_url = find_feature_desc_url(git_url, feature)
feature_desc_cmd = "wget -q -O - " + feature_desc_url
- tmp = subprocess.Popen(feature_desc_cmd, shell=True, stdout=subprocess.PIPE).stdout.read()
+ tmp = subprocess.Popen(feature_desc_cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
return find_feature_desc(tmp.split("\n"))
@@ -800,7 +798,7 @@ def yocto_kernel_feature_describe(scripts_path, machine, feature):
kernel = find_current_kernel(layer, machine)
if not kernel:
- print "Couldn't determine the kernel for this BSP, exiting."
+ print("Couldn't determine the kernel for this BSP, exiting.")
sys.exit(1)
context = create_context(machine, "arch", scripts_path)
@@ -810,7 +808,7 @@ def yocto_kernel_feature_describe(scripts_path, machine, feature):
desc = get_feature_desc(giturl, feature)
- print desc
+ print(desc)
def check_feature_name(feature_name):
@@ -818,11 +816,11 @@ def check_feature_name(feature_name):
Sanity-check the feature name for create/destroy. Return False if not OK.
"""
if not feature_name.endswith(".scc"):
- print "Invalid feature name (must end with .scc) [%s], exiting" % feature_name
+ print("Invalid feature name (must end with .scc) [%s], exiting" % feature_name)
return False
if "/" in feature_name:
- print "Invalid feature name (don't specify directory) [%s], exiting" % feature_name
+ print("Invalid feature name (don't specify directory) [%s], exiting" % feature_name)
return False
return True
@@ -836,11 +834,11 @@ def check_create_input(feature_items):
return False
if feature_items[1].endswith(".patch") or feature_items[1].startswith("CONFIG_"):
- print "Missing description and/or compatibilty [%s], exiting" % feature_items[1]
+ print("Missing description and/or compatibilty [%s], exiting" % feature_items[1])
return False
if feature_items[2].endswith(".patch") or feature_items[2].startswith("CONFIG_"):
- print "Missing description and/or compatibility [%s], exiting" % feature_items[1]
+ print("Missing description and/or compatibility [%s], exiting" % feature_items[1])
return False
return True
@@ -868,7 +866,7 @@ def yocto_kernel_feature_create(scripts_path, machine, feature_items):
if ("=y" in item or "=m" in item):
cfg_items.append(item)
else:
- print "Invalid feature item (must be .patch or CONFIG_*) [%s], exiting" % item
+ print("Invalid feature item (must be .patch or CONFIG_*) [%s], exiting" % item)
sys.exit(1)
feature_dirname = "cfg"
@@ -877,7 +875,7 @@ def yocto_kernel_feature_create(scripts_path, machine, feature_items):
filesdir = find_filesdir(scripts_path, machine)
if not filesdir:
- print "Couldn't add feature (%s), no 'files' dir found" % feature
+ print("Couldn't add feature (%s), no 'files' dir found" % feature)
sys.exit(1)
featdir = os.path.join(filesdir, feature_dirname)
@@ -886,7 +884,7 @@ def yocto_kernel_feature_create(scripts_path, machine, feature_items):
for patch in patches:
if not os.path.isfile(patch):
- print "Couldn't find patch (%s), exiting" % patch
+ print("Couldn't find patch (%s), exiting" % patch)
sys.exit(1)
basename = os.path.basename(patch)
featdir_patch = os.path.join(featdir, basename)
@@ -910,8 +908,8 @@ def yocto_kernel_feature_create(scripts_path, machine, feature_items):
new_feature_file.write("kconf non-hardware " + feature_basename + ".cfg\n")
new_feature_file.close()
- print "Added feature:"
- print "\t%s" % feature_dirname + "/" + feature
+ print("Added feature:")
+ print("\t%s" % feature_dirname + "/" + feature)
def feature_in_use(scripts_path, machine, feature):
@@ -949,18 +947,18 @@ def yocto_kernel_feature_destroy(scripts_path, machine, feature):
if feature_in_use(scripts_path, machine, "features/" + feature) or \
feature_in_use(scripts_path, machine, "cfg/" + feature):
- print "Feature %s is in use (use 'feature rm' to un-use it first), exiting" % feature
+ print("Feature %s is in use (use 'feature rm' to un-use it first), exiting" % feature)
sys.exit(1)
filesdir = find_filesdir(scripts_path, machine)
if not filesdir:
- print "Couldn't destroy feature (%s), no 'files' dir found" % feature
+ print("Couldn't destroy feature (%s), no 'files' dir found" % feature)
sys.exit(1)
feature_dirname = "features"
featdir = os.path.join(filesdir, feature_dirname)
if not os.path.exists(featdir):
- print "Couldn't find feature directory (%s)" % feature_dirname
+ print("Couldn't find feature directory (%s)" % feature_dirname)
sys.exit(1)
feature_fqn = os.path.join(featdir, feature)
@@ -968,11 +966,11 @@ def yocto_kernel_feature_destroy(scripts_path, machine, feature):
feature_dirname = "cfg"
featdir = os.path.join(filesdir, feature_dirname)
if not os.path.exists(featdir):
- print "Couldn't find feature directory (%s)" % feature_dirname
+ print("Couldn't find feature directory (%s)" % feature_dirname)
sys.exit(1)
feature_fqn = os.path.join(featdir, feature_filename)
if not os.path.exists(feature_fqn):
- print "Couldn't find feature (%s)" % feature
+ print("Couldn't find feature (%s)" % feature)
sys.exit(1)
f = open(feature_fqn, "r")
@@ -989,8 +987,8 @@ def yocto_kernel_feature_destroy(scripts_path, machine, feature):
feature_remove(scripts_path, machine, feature)
- print "Removed feature:"
- print "\t%s" % feature_dirname + "/" + feature
+ print("Removed feature:")
+ print("\t%s" % feature_dirname + "/" + feature)
def base_branches(context):
@@ -999,10 +997,10 @@ def base_branches(context):
"""
giturl = find_giturl(context)
- print "Getting branches from remote repo %s..." % giturl
+ print("Getting branches from remote repo %s..." % giturl)
gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
- tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()
+ tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
branches = []
@@ -1029,10 +1027,10 @@ def all_branches(context):
"""
giturl = find_giturl(context)
- print "Getting branches from remote repo %s..." % giturl
+ print("Getting branches from remote repo %s..." % giturl)
gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
- tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()
+ tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
branches = []
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/files/machine-standard.scc
index 405972d98..8a881574d 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH arm
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..7c0df8bcd
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/arm/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/conf/machine/machine.conf b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/conf/machine/machine.conf
index d5abe4f61..4745c1cc5 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/conf/machine/machine.conf
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/conf/machine/machine.conf
@@ -33,15 +33,7 @@ MACHINE_FEATURES += "wifi efi pcbios"
{{ input type:"boolean" name:"xserver" prio:"50" msg:"Do you need support for X? (y/n)" default:"y" }}
-{{ if xserver == "y" and (kernel_choice == "linux-yocto_4.4" or kernel_choice == "linux-yocto_4.1"): }}
-{{ input type:"choicelist" name:"xserver_choice" prio:"50" msg:"Please select an xserver for this machine:" default:"xserver_vesa" }}
-{{ input type:"choice" val:"xserver_vesa" msg:"VESA xserver support" }}
-{{ input type:"choice" val:"xserver_i915" msg:"i915 xserver support" }}
-{{ input type:"choice" val:"xserver_i965" msg:"i965 xserver support" }}
-{{ input type:"choice" val:"xserver_fbdev" msg:"fbdev xserver support" }}
-{{ input type:"choice" val:"xserver_modesetting" msg:"modesetting xserver support" }}
-
-{{ if xserver == "y" and kernel_choice == "custom": }}
+{{ if xserver == "y": }}
{{ input type:"choicelist" name:"xserver_choice" prio:"50" msg:"Please select an xserver for this machine:" default:"xserver_vesa" }}
{{ input type:"choice" val:"xserver_vesa" msg:"VESA xserver support" }}
{{ input type:"choice" val:"xserver_i915" msg:"i915 xserver support" }}
@@ -49,7 +41,7 @@ MACHINE_FEATURES += "wifi efi pcbios"
{{ input type:"choice" val:"xserver_fbdev" msg:"fbdev xserver support" }}
{{ input type:"choice" val:"xserver_modesetting" msg:"modesetting xserver support" }}
-{{ if xserver == "y" and kernel_choice != "linux-yocto_4.4" and kernel_choice != "linux-yocto_4.1" and kernel_choice != "custom": xserver_choice = "xserver_i915" }}
+{{ if xserver == "y" and kernel_choice != "linux-yocto_4.8" and kernel_choice != "linux-yocto_4.4" and kernel_choice != "linux-yocto_4.1" and kernel_choice != "custom": xserver_choice = "xserver_i915" }}
{{ if xserver == "y": }}
XSERVER ?= "${XSERVER_X86_BASE} \
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/files/machine-standard.scc
index 67a54be87..38d1ca558 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH i386
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..137d8fa51
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/i386/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard:standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard:standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/files/machine-standard.scc
index 7c9dc52d2..b34f3d352 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH mips
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..7c0df8bcd
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/files/machine-standard.scc
index 7c9dc52d2..b34f3d352 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH mips
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..accf9d5d8
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/mips64/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/edgerouter" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/edgerouter" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/files/machine-standard.scc
index 89b344fea..c166fcd3d 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH powerpc
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..7c0df8bcd
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/powerpc/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine-standard.scc
index 14554da28..43cf642d4 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine-standard.scc
@@ -4,15 +4,15 @@ define KMACHINE {{=machine}}
define KARCH {{=qemuarch}}
{{ if qemuarch == "i386" or qemuarch == "x86_64": }}
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if qemuarch == "arm": }}
-include bsp/arm-versatile-926ejs/arm-versatile-926ejs-standard
+include bsp/arm-versatile-926ejs/arm-versatile-926ejs-standard nopatch
{{ if qemuarch == "powerpc": }}
-include bsp/qemu-ppc32/qemu-ppc32-standard
+include bsp/qemu-ppc32/qemu-ppc32-standard nopatch
{{ if qemuarch == "mips": }}
-include bsp/mti-malta32/mti-malta32-be-standard
+include bsp/mti-malta32/mti-malta32-be-standard nopatch
{{ if qemuarch == "mips64": }}
-include bsp/mti-malta64/mti-malta64-be-standard
+include bsp/mti-malta64/mti-malta64-be-standard nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine.cfg b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine.cfg
index d560784b5..3fa4ed0b7 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine.cfg
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/files/machine.cfg
@@ -1 +1,3 @@
-# yocto-bsp-filename {{=machine}}.cfg \ No newline at end of file
+# yocto-bsp-filename {{=machine}}.cfg
+{{ if qemuarch == "i386": }}
+# CONFIG_64BIT is not set
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..c1635d6f6
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,62 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "arm": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"arm" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "arm": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"arm" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "powerpc": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"powerpc" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "powerpc": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"powerpc" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "i386": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"i386" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "i386": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"i386" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/common-pc" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "x86_64": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"x86_64" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "x86_64": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"x86_64" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "mips": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"mips" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "mips": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"mips" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "mips64": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"mips64" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "mips64": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"mips64" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..e8c3fc82e
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/qemu/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,61 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "arm": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base your new BSP branch on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "arm": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose an existing machine branch to use for this BSP:" default:"standard/arm-versatile-926ejs" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "powerpc": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"powerpc" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "powerpc": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"powerpc" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/qemuppc" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "i386": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"i386" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "i386": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"i386" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "x86_64": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"x86_64" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "x86_64": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"x86_64" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "mips": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"mips" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/mti-malta32" }}
+
+{{ if need_new_kbranch == "n" and qemuarch == "mips64": }}
+{{ input type:"choicelist" name:"existing_kbranch" nameappend:"mips64" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/mti-malta64" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "mips": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"mips" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "y" and qemuarch == "mips64": }}
+{{ input type:"choicelist" name:"new_kbranch" nameappend:"mips64" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Would you like SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/files/machine-standard.scc b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/files/machine-standard.scc
index 9c9cc9025..a2b291085 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/files/machine-standard.scc
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/files/machine-standard.scc
@@ -3,7 +3,7 @@ define KMACHINE {{=machine}}
define KARCH x86_64
-include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}}
+include {{=map_standard_kbranch(need_new_kbranch, new_kbranch, existing_kbranch)}} nopatch
{{ if need_new_kbranch == "y": }}
define KTYPE {{=new_kbranch}}
branch {{=machine}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/kernel-list.noinstall b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/kernel-list.noinstall
index 00cf36042..0120ed055 100644
--- a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/kernel-list.noinstall
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/kernel-list.noinstall
@@ -1,5 +1,5 @@
{{ if kernel_choice != "custom": }}
-{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.4) kernel? (y/n)" default:"y"}}
+{{ input type:"boolean" name:"use_default_kernel" prio:"10" msg:"Would you like to use the default (4.8) kernel? (y/n)" default:"y"}}
{{ if kernel_choice != "custom" and use_default_kernel == "n": }}
-{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.4"}}
+{{ input type:"choicelist" name:"kernel_choice" gen:"bsp.kernel.kernels" prio:"10" msg:"Please choose the kernel to use in this BSP:" default:"linux-yocto_4.8"}}
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
new file mode 100644
index 000000000..5fb45d9ab
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto-tiny_4.8.bbappend
@@ -0,0 +1,33 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto-tiny_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard/tiny" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/tiny/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-tiny.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-patches.scc \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto-tiny_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto_4.8.bbappend b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto_4.8.bbappend
new file mode 100644
index 000000000..7c0df8bcd
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/bsp/substrate/target/arch/x86_64/recipes-kernel/linux/linux-yocto_4.8.bbappend
@@ -0,0 +1,32 @@
+# yocto-bsp-filename {{ if kernel_choice == "linux-yocto_4.8": }} this
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+PR := "${PR}.1"
+
+COMPATIBLE_MACHINE_{{=machine}} = "{{=machine}}"
+
+{{ input type:"boolean" name:"need_new_kbranch" prio:"20" msg:"Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [y/n]" default:"y" }}
+
+{{ if need_new_kbranch == "y": }}
+{{ input type:"choicelist" name:"new_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+{{ input type:"choicelist" name:"existing_kbranch" gen:"bsp.kernel.all_branches" branches_base:"standard" prio:"20" msg:"Please choose a machine branch to base this BSP on:" default:"standard/base" }}
+
+{{ if need_new_kbranch == "n": }}
+KBRANCH_{{=machine}} = "{{=existing_kbranch}}"
+
+{{ input type:"boolean" name:"smp" prio:"30" msg:"Do you need SMP support? (y/n)" default:"y"}}
+{{ if smp == "y": }}
+KERNEL_FEATURES_append_{{=machine}} += " cfg/smp.scc"
+
+SRC_URI += "file://{{=machine}}-standard.scc \
+ file://{{=machine}}-user-config.cfg \
+ file://{{=machine}}-user-features.scc \
+ "
+
+# replace these SRCREVs with the real commit ids once you've had
+# the appropriate changes committed to the upstream linux-yocto repo
+SRCREV_machine_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+SRCREV_meta_pn-linux-yocto_{{=machine}} ?= "${AUTOREV}"
+#LINUX_VERSION = "4.8"
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/__init__.py b/import-layers/yocto-poky/scripts/lib/devtool/__init__.py
index ff97dfc94..e675133f6 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/__init__.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Development tool - utility functions for plugins
#
@@ -26,10 +26,11 @@ import re
logger = logging.getLogger('devtool')
-
class DevtoolError(Exception):
"""Exception for handling devtool errors"""
- pass
+ def __init__(self, message, exitcode=1):
+ super(DevtoolError, self).__init__(message)
+ self.exitcode = exitcode
def exec_build_env_command(init_path, builddir, cmd, watch=False, **options):
@@ -59,7 +60,7 @@ def exec_build_env_command(init_path, builddir, cmd, watch=False, **options):
def exec_watch(cmd, **options):
"""Run program with stdout shown on sys.stdout"""
import bb
- if isinstance(cmd, basestring) and not "shell" in options:
+ if isinstance(cmd, str) and not "shell" in options:
options["shell"] = True
process = subprocess.Popen(
@@ -69,6 +70,7 @@ def exec_watch(cmd, **options):
buf = ''
while True:
out = process.stdout.read(1)
+ out = out.decode('utf-8')
if out:
sys.stdout.write(out)
sys.stdout.flush()
@@ -144,8 +146,7 @@ def parse_recipe(config, tinfoil, pn, appends, filter_workspace=True):
not path.startswith(config.workspace_path)]
else:
append_files = None
- return oe.recipeutils.parse_recipe(recipefile, append_files,
- tinfoil.config_data)
+ return oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, append_files)
def check_workspace_recipe(workspace, pn, checksrc=True, bbclassextend=False):
"""
@@ -155,7 +156,7 @@ def check_workspace_recipe(workspace, pn, checksrc=True, bbclassextend=False):
workspacepn = pn
- for recipe, value in workspace.iteritems():
+ for recipe, value in workspace.items():
if recipe == pn:
break
if bbclassextend:
@@ -195,15 +196,18 @@ def use_external_build(same_dir, no_same_dir, d):
b_is_s = False
return b_is_s
-def setup_git_repo(repodir, version, devbranch, basetag='devtool-base'):
+def setup_git_repo(repodir, version, devbranch, basetag='devtool-base', d=None):
"""
Set up the git repository for the source tree
"""
import bb.process
+ import oe.patch
if not os.path.exists(os.path.join(repodir, '.git')):
bb.process.run('git init', cwd=repodir)
bb.process.run('git add .', cwd=repodir)
- commit_cmd = ['git', 'commit', '-q']
+ commit_cmd = ['git']
+ oe.patch.GitApplyTree.gitCommandUserOptions(commit_cmd, d=d)
+ commit_cmd += ['commit', '-q']
stdout, _ = bb.process.run('git status --porcelain', cwd=repodir)
if not stdout:
commit_cmd.append('--allow-empty')
@@ -255,3 +259,32 @@ def get_bbclassextend_targets(recipefile, pn):
elif variant in ['native', 'cross', 'crosssdk']:
targets.append('%s-%s' % (pn, variant))
return targets
+
+def ensure_npm(config, basepath, fixed_setup=False):
+ """
+ Ensure that npm is available and either build it or show a
+ reasonable error message
+ """
+ tinfoil = setup_tinfoil(config_only=True, basepath=basepath)
+ try:
+ nativepath = tinfoil.config_data.getVar('STAGING_BINDIR_NATIVE', True)
+ finally:
+ tinfoil.shutdown()
+
+ npmpath = os.path.join(nativepath, 'npm')
+ if not os.path.exists(npmpath):
+ logger.info('Building nodejs-native')
+ try:
+ exec_build_env_command(config.init_path, basepath,
+ 'bitbake -q nodejs-native', watch=True)
+ except bb.process.ExecutionError as e:
+ if "Nothing PROVIDES 'nodejs-native'" in e.stdout:
+ if fixed_setup:
+ msg = 'nodejs-native is required for npm but is not available within this SDK'
+ else:
+ msg = 'nodejs-native is required for npm but is not available - you will likely need to add a layer that provides nodejs'
+ raise DevtoolError(msg)
+ else:
+ raise
+ if not os.path.exists(npmpath):
+ raise DevtoolError('Built nodejs-native but npm binary still could not be found at %s' % npmpath)
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/build.py b/import-layers/yocto-poky/scripts/lib/devtool/build.py
index 48f6fe1be..6be549dd5 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/build.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/build.py
@@ -27,7 +27,7 @@ logger = logging.getLogger('devtool')
def _set_file_values(fn, values):
- remaining = values.keys()
+ remaining = list(values.keys())
def varfunc(varname, origvalue, op, newlines):
newvalue = values.get(varname, origvalue)
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/build_image.py b/import-layers/yocto-poky/scripts/lib/devtool/build_image.py
index e51d76647..ae75511dc 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/build_image.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/build_image.py
@@ -18,6 +18,7 @@
"""Devtool plugin containing the build-image subcommand."""
import os
+import errno
import logging
from bb.process import ExecutionError
@@ -34,7 +35,7 @@ def _get_packages(tinfoil, workspace, config):
for recipe in workspace:
data = parse_recipe(config, tinfoil, recipe, True)
if 'class-target' in data.getVar('OVERRIDES', True).split(':'):
- if recipe in data.getVar('PACKAGES', True):
+ if recipe in data.getVar('PACKAGES', True).split():
result.append(recipe)
else:
logger.warning("Skipping recipe %s as it doesn't produce a "
@@ -72,70 +73,89 @@ def build_image(args, config, basepath, workspace):
return result
def build_image_task(config, basepath, workspace, image, add_packages=None, task=None, extra_append=None):
- appendfile = os.path.join(config.workspace_path, 'appends',
- '%s.bbappend' % image)
-
# remove <image>.bbappend to make sure setup_tinfoil doesn't
# break because of it
- if os.path.isfile(appendfile):
- os.unlink(appendfile)
+ target_basename = config.get('SDK', 'target_basename', '')
+ if target_basename:
+ appendfile = os.path.join(config.workspace_path, 'appends',
+ '%s.bbappend' % target_basename)
+ try:
+ os.unlink(appendfile)
+ except OSError as exc:
+ if exc.errno != errno.ENOENT:
+ raise
tinfoil = setup_tinfoil(basepath=basepath)
- rd = parse_recipe(config, tinfoil, image, True)
- if not rd:
- # Error already shown
- return (1, None)
- if not bb.data.inherits_class('image', rd):
- raise TargetNotImageError()
-
- outputdir = None
try:
- if workspace or add_packages:
- if add_packages:
- packages = add_packages
- else:
- packages = _get_packages(tinfoil, workspace, config)
- else:
- packages = None
- if not task:
- if not packages and not add_packages and workspace:
- logger.warning('No recipes in workspace, building image %s unmodified', image)
- elif not packages:
- logger.warning('No packages to add, building image %s unmodified', image)
-
- if packages or extra_append:
- bb.utils.mkdirhier(os.path.dirname(appendfile))
- with open(appendfile, 'w') as afile:
- if packages:
- # include packages from workspace recipes into the image
- afile.write('IMAGE_INSTALL_append = " %s"\n' % ' '.join(packages))
- if not task:
- logger.info('Building image %s with the following '
- 'additional packages: %s', image, ' '.join(packages))
- if extra_append:
- for line in extra_append:
- afile.write('%s\n' % line)
-
- if task in ['populate_sdk', 'populate_sdk_ext']:
- outputdir = rd.getVar('SDK_DEPLOY', True)
- else:
- outputdir = rd.getVar('DEPLOY_DIR_IMAGE', True)
-
- tinfoil.shutdown()
-
- options = ''
- if task:
- options += '-c %s' % task
-
- # run bitbake to build image (or specified task)
+ rd = parse_recipe(config, tinfoil, image, True)
+ if not rd:
+ # Error already shown
+ return (1, None)
+ if not bb.data.inherits_class('image', rd):
+ raise TargetNotImageError()
+
+ # Get the actual filename used and strip the .bb and full path
+ target_basename = rd.getVar('FILE', True)
+ target_basename = os.path.splitext(os.path.basename(target_basename))[0]
+ config.set('SDK', 'target_basename', target_basename)
+ config.write()
+
+ appendfile = os.path.join(config.workspace_path, 'appends',
+ '%s.bbappend' % target_basename)
+
+ outputdir = None
try:
- exec_build_env_command(config.init_path, basepath,
- 'bitbake %s %s' % (options, image), watch=True)
- except ExecutionError as err:
- return (err.exitcode, None)
+ if workspace or add_packages:
+ if add_packages:
+ packages = add_packages
+ else:
+ packages = _get_packages(tinfoil, workspace, config)
+ else:
+ packages = None
+ if not task:
+ if not packages and not add_packages and workspace:
+ logger.warning('No recipes in workspace, building image %s unmodified', image)
+ elif not packages:
+ logger.warning('No packages to add, building image %s unmodified', image)
+
+ if packages or extra_append:
+ bb.utils.mkdirhier(os.path.dirname(appendfile))
+ with open(appendfile, 'w') as afile:
+ if packages:
+ # include packages from workspace recipes into the image
+ afile.write('IMAGE_INSTALL_append = " %s"\n' % ' '.join(packages))
+ if not task:
+ logger.info('Building image %s with the following '
+ 'additional packages: %s', image, ' '.join(packages))
+ if extra_append:
+ for line in extra_append:
+ afile.write('%s\n' % line)
+
+ if task in ['populate_sdk', 'populate_sdk_ext']:
+ outputdir = rd.getVar('SDK_DEPLOY', True)
+ else:
+ outputdir = rd.getVar('DEPLOY_DIR_IMAGE', True)
+
+ tmp_tinfoil = tinfoil
+ tinfoil = None
+ tmp_tinfoil.shutdown()
+
+ options = ''
+ if task:
+ options += '-c %s' % task
+
+ # run bitbake to build image (or specified task)
+ try:
+ exec_build_env_command(config.init_path, basepath,
+ 'bitbake %s %s' % (options, image), watch=True)
+ except ExecutionError as err:
+ return (err.exitcode, None)
+ finally:
+ if os.path.isfile(appendfile):
+ os.unlink(appendfile)
finally:
- if os.path.isfile(appendfile):
- os.unlink(appendfile)
+ if tinfoil:
+ tinfoil.shutdown()
return (0, outputdir)
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/deploy.py b/import-layers/yocto-poky/scripts/lib/devtool/deploy.py
index 66644ccb6..c4c7bf6c7 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/deploy.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/deploy.py
@@ -85,7 +85,7 @@ def _prepare_remote_script(deploy, verbose=False, dryrun=False, undeployall=Fals
lines.append('do')
lines.append(' checkpath=`dirname "$checkpath"`')
lines.append('done')
- lines.append('freespace=`df -P $checkpath | sed "1d" | awk \'{ print $4 }\'`')
+ lines.append(r'freespace=$(df -P $checkpath | sed -nre "s/^(\S+\s+){3}([0-9]+).*/\2/p")')
# First line of the file is the total space
lines.append('total=`head -n1 $3`')
lines.append('if [ $total -gt $freespace ] ; then')
@@ -155,83 +155,86 @@ def deploy(args, config, basepath, workspace):
tinfoil = setup_tinfoil(basepath=basepath)
try:
- rd = oe.recipeutils.parse_recipe_simple(tinfoil.cooker, args.recipename, tinfoil.config_data)
- except Exception as e:
- raise DevtoolError('Exception parsing recipe %s: %s' %
- (args.recipename, e))
- recipe_outdir = rd.getVar('D', True)
- if not os.path.exists(recipe_outdir) or not os.listdir(recipe_outdir):
- raise DevtoolError('No files to deploy - have you built the %s '
- 'recipe? If so, the install step has not installed '
- 'any files.' % args.recipename)
+ try:
+ rd = oe.recipeutils.parse_recipe_simple(tinfoil.cooker, args.recipename, tinfoil.config_data)
+ except Exception as e:
+ raise DevtoolError('Exception parsing recipe %s: %s' %
+ (args.recipename, e))
+ recipe_outdir = rd.getVar('D', True)
+ if not os.path.exists(recipe_outdir) or not os.listdir(recipe_outdir):
+ raise DevtoolError('No files to deploy - have you built the %s '
+ 'recipe? If so, the install step has not installed '
+ 'any files.' % args.recipename)
- filelist = []
- ftotalsize = 0
- for root, _, files in os.walk(recipe_outdir):
- for fn in files:
- # Get the size in kiB (since we'll be comparing it to the output of du -k)
- # MUST use lstat() here not stat() or getfilesize() since we don't want to
- # dereference symlinks
- fsize = int(math.ceil(float(os.lstat(os.path.join(root, fn)).st_size)/1024))
- ftotalsize += fsize
- # The path as it would appear on the target
- fpath = os.path.join(destdir, os.path.relpath(root, recipe_outdir), fn)
- filelist.append((fpath, fsize))
+ filelist = []
+ ftotalsize = 0
+ for root, _, files in os.walk(recipe_outdir):
+ for fn in files:
+ # Get the size in kiB (since we'll be comparing it to the output of du -k)
+ # MUST use lstat() here not stat() or getfilesize() since we don't want to
+ # dereference symlinks
+ fsize = int(math.ceil(float(os.lstat(os.path.join(root, fn)).st_size)/1024))
+ ftotalsize += fsize
+ # The path as it would appear on the target
+ fpath = os.path.join(destdir, os.path.relpath(root, recipe_outdir), fn)
+ filelist.append((fpath, fsize))
- if args.dry_run:
- print('Files to be deployed for %s on target %s:' % (args.recipename, args.target))
- for item, _ in filelist:
- print(' %s' % item)
- return 0
+ if args.dry_run:
+ print('Files to be deployed for %s on target %s:' % (args.recipename, args.target))
+ for item, _ in filelist:
+ print(' %s' % item)
+ return 0
- extraoptions = ''
- if args.no_host_check:
- extraoptions += '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
- if not args.show_status:
- extraoptions += ' -q'
+ extraoptions = ''
+ if args.no_host_check:
+ extraoptions += '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
+ if not args.show_status:
+ extraoptions += ' -q'
- # In order to delete previously deployed files and have the manifest file on
- # the target, we write out a shell script and then copy it to the target
- # so we can then run it (piping tar output to it).
- # (We cannot use scp here, because it doesn't preserve symlinks.)
- tmpdir = tempfile.mkdtemp(prefix='devtool')
- try:
- tmpscript = '/tmp/devtool_deploy.sh'
- tmpfilelist = os.path.join(os.path.dirname(tmpscript), 'devtool_deploy.list')
- shellscript = _prepare_remote_script(deploy=True,
- verbose=args.show_status,
- nopreserve=args.no_preserve,
- nocheckspace=args.no_check_space)
- # Write out the script to a file
- with open(os.path.join(tmpdir, os.path.basename(tmpscript)), 'w') as f:
- f.write(shellscript)
- # Write out the file list
- with open(os.path.join(tmpdir, os.path.basename(tmpfilelist)), 'w') as f:
- f.write('%d\n' % ftotalsize)
- for fpath, fsize in filelist:
- f.write('%s %d\n' % (fpath, fsize))
- # Copy them to the target
- ret = subprocess.call("scp %s %s/* %s:%s" % (extraoptions, tmpdir, args.target, os.path.dirname(tmpscript)), shell=True)
- if ret != 0:
- raise DevtoolError('Failed to copy script to %s - rerun with -s to '
- 'get a complete error message' % args.target)
- finally:
- shutil.rmtree(tmpdir)
+ # In order to delete previously deployed files and have the manifest file on
+ # the target, we write out a shell script and then copy it to the target
+ # so we can then run it (piping tar output to it).
+ # (We cannot use scp here, because it doesn't preserve symlinks.)
+ tmpdir = tempfile.mkdtemp(prefix='devtool')
+ try:
+ tmpscript = '/tmp/devtool_deploy.sh'
+ tmpfilelist = os.path.join(os.path.dirname(tmpscript), 'devtool_deploy.list')
+ shellscript = _prepare_remote_script(deploy=True,
+ verbose=args.show_status,
+ nopreserve=args.no_preserve,
+ nocheckspace=args.no_check_space)
+ # Write out the script to a file
+ with open(os.path.join(tmpdir, os.path.basename(tmpscript)), 'w') as f:
+ f.write(shellscript)
+ # Write out the file list
+ with open(os.path.join(tmpdir, os.path.basename(tmpfilelist)), 'w') as f:
+ f.write('%d\n' % ftotalsize)
+ for fpath, fsize in filelist:
+ f.write('%s %d\n' % (fpath, fsize))
+ # Copy them to the target
+ ret = subprocess.call("scp %s %s/* %s:%s" % (extraoptions, tmpdir, args.target, os.path.dirname(tmpscript)), shell=True)
+ if ret != 0:
+ raise DevtoolError('Failed to copy script to %s - rerun with -s to '
+ 'get a complete error message' % args.target)
+ finally:
+ shutil.rmtree(tmpdir)
- # Now run the script
- ret = exec_fakeroot(rd, 'tar cf - . | ssh %s %s \'sh %s %s %s %s\'' % (extraoptions, args.target, tmpscript, args.recipename, destdir, tmpfilelist), cwd=recipe_outdir, shell=True)
- if ret != 0:
- raise DevtoolError('Deploy failed - rerun with -s to get a complete '
- 'error message')
+ # Now run the script
+ ret = exec_fakeroot(rd, 'tar cf - . | ssh %s %s \'sh %s %s %s %s\'' % (extraoptions, args.target, tmpscript, args.recipename, destdir, tmpfilelist), cwd=recipe_outdir, shell=True)
+ if ret != 0:
+ raise DevtoolError('Deploy failed - rerun with -s to get a complete '
+ 'error message')
- logger.info('Successfully deployed %s' % recipe_outdir)
+ logger.info('Successfully deployed %s' % recipe_outdir)
- files_list = []
- for root, _, files in os.walk(recipe_outdir):
- for filename in files:
- filename = os.path.relpath(os.path.join(root, filename), recipe_outdir)
- files_list.append(os.path.join(destdir, filename))
+ files_list = []
+ for root, _, files in os.walk(recipe_outdir):
+ for filename in files:
+ filename = os.path.relpath(os.path.join(root, filename), recipe_outdir)
+ files_list.append(os.path.join(destdir, filename))
+ finally:
+ tinfoil.shutdown()
return 0
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/runqemu.py b/import-layers/yocto-poky/scripts/lib/devtool/runqemu.py
index daee7fbbe..ae25cee08 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/runqemu.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/runqemu.py
@@ -30,9 +30,11 @@ def runqemu(args, config, basepath, workspace):
"""Entry point for the devtool 'runqemu' subcommand"""
tinfoil = setup_tinfoil(config_only=True, basepath=basepath)
- machine = tinfoil.config_data.getVar('MACHINE', True)
- bindir_native = tinfoil.config_data.getVar('STAGING_BINDIR_NATIVE', True)
- tinfoil.shutdown()
+ try:
+ machine = tinfoil.config_data.getVar('MACHINE', True)
+ bindir_native = tinfoil.config_data.getVar('STAGING_BINDIR_NATIVE', True)
+ finally:
+ tinfoil.shutdown()
if not glob.glob(os.path.join(bindir_native, 'qemu-system-*')):
raise DevtoolError('QEMU is not available within this SDK')
@@ -46,7 +48,12 @@ def runqemu(args, config, basepath, workspace):
raise DevtoolError('Unable to determine image name to run, please specify one')
try:
- exec_build_env_command(config.init_path, basepath, 'runqemu %s %s %s' % (machine, imagename, " ".join(args.args)), watch=True)
+ # FIXME runqemu assumes that if OECORE_NATIVE_SYSROOT is set then it shouldn't
+ # run bitbake to find out the values of various environment variables, which
+ # isn't the case for the extensible SDK. Work around it for now.
+ newenv = dict(os.environ)
+ newenv.pop('OECORE_NATIVE_SYSROOT', '')
+ exec_build_env_command(config.init_path, basepath, 'runqemu %s %s %s' % (machine, imagename, " ".join(args.args)), watch=True, env=newenv)
except bb.process.ExecutionError as e:
# We've already seen the output since watch=True, so just ensure we return something to the user
return e.exitcode
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/sdk.py b/import-layers/yocto-poky/scripts/lib/devtool/sdk.py
index 46fd12bdb..922277b79 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/sdk.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/sdk.py
@@ -107,7 +107,7 @@ def check_manifest(fn, basepath):
return changedfiles
def sdk_update(args, config, basepath, workspace):
- # Fetch locked-sigs.inc file from remote/local destination
+ """Entry point for devtool sdk-update command"""
updateserver = args.updateserver
if not updateserver:
updateserver = config.get('SDK', 'updateserver', '')
@@ -122,10 +122,9 @@ def sdk_update(args, config, basepath, workspace):
else:
logger.debug("Found conf/locked-sigs.inc in %s" % basepath)
- if ':' in updateserver:
- is_remote = True
- else:
- is_remote = False
+ if not '://' in updateserver:
+ logger.error("Update server must be a URL")
+ return -1
layers_dir = os.path.join(basepath, 'layers')
conf_dir = os.path.join(basepath, 'conf')
@@ -139,120 +138,85 @@ def sdk_update(args, config, basepath, workspace):
finally:
tinfoil.shutdown()
- if not is_remote:
- # devtool sdk-update /local/path/to/latest/sdk
- new_locked_sig_file_path = os.path.join(updateserver, 'conf/locked-sigs.inc')
- if not os.path.exists(new_locked_sig_file_path):
- logger.error("%s doesn't exist or is not an extensible SDK" % updateserver)
- return -1
- else:
- logger.debug("Found conf/locked-sigs.inc in %s" % updateserver)
- update_dict = generate_update_dict(new_locked_sig_file_path, old_locked_sig_file_path)
- logger.debug("update_dict = %s" % update_dict)
- newsdk_path = updateserver
- sstate_dir = os.path.join(newsdk_path, 'sstate-cache')
- if not os.path.exists(sstate_dir):
- logger.error("sstate-cache directory not found under %s" % newsdk_path)
- return 1
- sstate_objects = get_sstate_objects(update_dict, sstate_dir)
- logger.debug("sstate_objects = %s" % sstate_objects)
- if len(sstate_objects) == 0:
- logger.info("No need to update.")
+ tmpsdk_dir = tempfile.mkdtemp()
+ try:
+ os.makedirs(os.path.join(tmpsdk_dir, 'conf'))
+ new_locked_sig_file_path = os.path.join(tmpsdk_dir, 'conf', 'locked-sigs.inc')
+ # Fetch manifest from server
+ tmpmanifest = os.path.join(tmpsdk_dir, 'conf', 'sdk-conf-manifest')
+ ret = subprocess.call("wget -q -O %s %s/conf/sdk-conf-manifest" % (tmpmanifest, updateserver), shell=True)
+ changedfiles = check_manifest(tmpmanifest, basepath)
+ if not changedfiles:
+ logger.info("Already up-to-date")
return 0
- logger.info("Installing sstate objects into %s", basepath)
- install_sstate_objects(sstate_objects, updateserver.rstrip('/'), basepath)
- logger.info("Updating configuration files")
- new_conf_dir = os.path.join(updateserver, 'conf')
- shutil.rmtree(conf_dir)
- shutil.copytree(new_conf_dir, conf_dir)
- logger.info("Updating layers")
- new_layers_dir = os.path.join(updateserver, 'layers')
- shutil.rmtree(layers_dir)
- ret = subprocess.call("cp -a %s %s" % (new_layers_dir, layers_dir), shell=True)
- if ret != 0:
- logger.error("Copying %s to %s failed" % (new_layers_dir, layers_dir))
- return ret
- else:
- # devtool sdk-update http://myhost/sdk
- tmpsdk_dir = tempfile.mkdtemp()
- try:
- os.makedirs(os.path.join(tmpsdk_dir, 'conf'))
- new_locked_sig_file_path = os.path.join(tmpsdk_dir, 'conf', 'locked-sigs.inc')
- # Fetch manifest from server
- tmpmanifest = os.path.join(tmpsdk_dir, 'conf', 'sdk-conf-manifest')
- ret = subprocess.call("wget -q -O %s %s/conf/sdk-conf-manifest" % (tmpmanifest, updateserver), shell=True)
- changedfiles = check_manifest(tmpmanifest, basepath)
- if not changedfiles:
- logger.info("Already up-to-date")
- return 0
- # Update metadata
- logger.debug("Updating metadata via git ...")
- #Check for the status before doing a fetch and reset
- if os.path.exists(os.path.join(basepath, 'layers/.git')):
- out = subprocess.check_output("git status --porcelain", shell=True, cwd=layers_dir)
- if not out:
- ret = subprocess.call("git fetch --all; git reset --hard", shell=True, cwd=layers_dir)
- else:
- logger.error("Failed to update metadata as there have been changes made to it. Aborting.");
- logger.error("Changed files:\n%s" % out);
- return -1
+ # Update metadata
+ logger.debug("Updating metadata via git ...")
+ #Check for the status before doing a fetch and reset
+ if os.path.exists(os.path.join(basepath, 'layers/.git')):
+ out = subprocess.check_output("git status --porcelain", shell=True, cwd=layers_dir)
+ if not out:
+ ret = subprocess.call("git fetch --all; git reset --hard", shell=True, cwd=layers_dir)
else:
- ret = -1
+ logger.error("Failed to update metadata as there have been changes made to it. Aborting.");
+ logger.error("Changed files:\n%s" % out);
+ return -1
+ else:
+ ret = -1
+ if ret != 0:
+ ret = subprocess.call("git clone %s/layers/.git" % updateserver, shell=True, cwd=tmpsdk_dir)
+ if ret != 0:
+ logger.error("Updating metadata via git failed")
+ return ret
+ logger.debug("Updating conf files ...")
+ for changedfile in changedfiles:
+ ret = subprocess.call("wget -q -O %s %s/%s" % (changedfile, updateserver, changedfile), shell=True, cwd=tmpsdk_dir)
if ret != 0:
- ret = subprocess.call("git clone %s/layers/.git" % updateserver, shell=True, cwd=tmpsdk_dir)
- if ret != 0:
- logger.error("Updating metadata via git failed")
- return ret
- logger.debug("Updating conf files ...")
- for changedfile in changedfiles:
- ret = subprocess.call("wget -q -O %s %s/%s" % (changedfile, updateserver, changedfile), shell=True, cwd=tmpsdk_dir)
- if ret != 0:
- logger.error("Updating %s failed" % changedfile)
- return ret
+ logger.error("Updating %s failed" % changedfile)
+ return ret
- # Check if UNINATIVE_CHECKSUM changed
- uninative = False
- if 'conf/local.conf' in changedfiles:
- def read_uninative_checksums(fn):
- chksumitems = []
- with open(fn, 'r') as f:
- for line in f:
- if line.startswith('UNINATIVE_CHECKSUM'):
- splitline = re.split(r'[\[\]"\']', line)
- if len(splitline) > 3:
- chksumitems.append((splitline[1], splitline[3]))
- return chksumitems
+ # Check if UNINATIVE_CHECKSUM changed
+ uninative = False
+ if 'conf/local.conf' in changedfiles:
+ def read_uninative_checksums(fn):
+ chksumitems = []
+ with open(fn, 'r') as f:
+ for line in f:
+ if line.startswith('UNINATIVE_CHECKSUM'):
+ splitline = re.split(r'[\[\]"\']', line)
+ if len(splitline) > 3:
+ chksumitems.append((splitline[1], splitline[3]))
+ return chksumitems
- oldsums = read_uninative_checksums(os.path.join(basepath, 'conf/local.conf'))
- newsums = read_uninative_checksums(os.path.join(tmpsdk_dir, 'conf/local.conf'))
- if oldsums != newsums:
- uninative = True
- for buildarch, chksum in newsums:
- uninative_file = os.path.join('downloads', 'uninative', chksum, '%s-nativesdk-libc.tar.bz2' % buildarch)
- mkdir(os.path.join(tmpsdk_dir, os.path.dirname(uninative_file)))
- ret = subprocess.call("wget -q -O %s %s/%s" % (uninative_file, updateserver, uninative_file), shell=True, cwd=tmpsdk_dir)
+ oldsums = read_uninative_checksums(os.path.join(basepath, 'conf/local.conf'))
+ newsums = read_uninative_checksums(os.path.join(tmpsdk_dir, 'conf/local.conf'))
+ if oldsums != newsums:
+ uninative = True
+ for buildarch, chksum in newsums:
+ uninative_file = os.path.join('downloads', 'uninative', chksum, '%s-nativesdk-libc.tar.bz2' % buildarch)
+ mkdir(os.path.join(tmpsdk_dir, os.path.dirname(uninative_file)))
+ ret = subprocess.call("wget -q -O %s %s/%s" % (uninative_file, updateserver, uninative_file), shell=True, cwd=tmpsdk_dir)
- # Ok, all is well at this point - move everything over
- tmplayers_dir = os.path.join(tmpsdk_dir, 'layers')
- if os.path.exists(tmplayers_dir):
- shutil.rmtree(layers_dir)
- shutil.move(tmplayers_dir, layers_dir)
- for changedfile in changedfiles:
- destfile = os.path.join(basepath, changedfile)
- os.remove(destfile)
- shutil.move(os.path.join(tmpsdk_dir, changedfile), destfile)
- os.remove(os.path.join(conf_dir, 'sdk-conf-manifest'))
- shutil.move(tmpmanifest, conf_dir)
- if uninative:
- shutil.rmtree(os.path.join(basepath, 'downloads', 'uninative'))
- shutil.move(os.path.join(tmpsdk_dir, 'downloads', 'uninative'), os.path.join(basepath, 'downloads'))
+ # Ok, all is well at this point - move everything over
+ tmplayers_dir = os.path.join(tmpsdk_dir, 'layers')
+ if os.path.exists(tmplayers_dir):
+ shutil.rmtree(layers_dir)
+ shutil.move(tmplayers_dir, layers_dir)
+ for changedfile in changedfiles:
+ destfile = os.path.join(basepath, changedfile)
+ os.remove(destfile)
+ shutil.move(os.path.join(tmpsdk_dir, changedfile), destfile)
+ os.remove(os.path.join(conf_dir, 'sdk-conf-manifest'))
+ shutil.move(tmpmanifest, conf_dir)
+ if uninative:
+ shutil.rmtree(os.path.join(basepath, 'downloads', 'uninative'))
+ shutil.move(os.path.join(tmpsdk_dir, 'downloads', 'uninative'), os.path.join(basepath, 'downloads'))
- if not sstate_mirrors:
- with open(os.path.join(conf_dir, 'site.conf'), 'a') as f:
- f.write('SCONF_VERSION = "%s"\n' % site_conf_version)
- f.write('SSTATE_MIRRORS_append = " file://.* %s/sstate-cache/PATH \\n "\n' % updateserver)
- finally:
- shutil.rmtree(tmpsdk_dir)
+ if not sstate_mirrors:
+ with open(os.path.join(conf_dir, 'site.conf'), 'a') as f:
+ f.write('SCONF_VERSION = "%s"\n' % site_conf_version)
+ f.write('SSTATE_MIRRORS_append = " file://.* %s/sstate-cache/PATH \\n "\n' % updateserver)
+ finally:
+ shutil.rmtree(tmpsdk_dir)
if not args.skip_prepare:
# Find all potentially updateable tasks
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/standard.py b/import-layers/yocto-poky/scripts/lib/devtool/standard.py
index 77a82d559..4eff6f878 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/standard.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/standard.py
@@ -1,6 +1,6 @@
# Development tool - standard commands plugin
#
-# Copyright (C) 2014-2015 Intel Corporation
+# Copyright (C) 2014-2016 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -28,8 +28,9 @@ import argparse_oe
import scriptutils
import errno
import glob
+import filecmp
from collections import OrderedDict
-from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, DevtoolError
+from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, use_external_build, setup_git_repo, recipe_to_append, get_bbclassextend_targets, ensure_npm, DevtoolError
from devtool import parse_recipe
logger = logging.getLogger('devtool')
@@ -46,13 +47,13 @@ def add(args, config, basepath, workspace):
# These are positional arguments, but because we're nice, allow
# specifying e.g. source tree without name, or fetch URI without name or
# source tree (if we can detect that that is what the user meant)
- if '://' in args.recipename:
+ if scriptutils.is_src_url(args.recipename):
if not args.fetchuri:
if args.fetch:
raise DevtoolError('URI specified as positional argument as well as -f/--fetch')
args.fetchuri = args.recipename
args.recipename = ''
- elif args.srctree and '://' in args.srctree:
+ elif scriptutils.is_src_url(args.srctree):
if not args.fetchuri:
if args.fetch:
raise DevtoolError('URI specified as positional argument as well as -f/--fetch')
@@ -63,13 +64,17 @@ def add(args, config, basepath, workspace):
args.srctree = args.recipename
args.recipename = None
elif os.path.isdir(args.recipename):
- logger.warn('Ambiguous argument %s - assuming you mean it to be the recipe name')
+ logger.warn('Ambiguous argument "%s" - assuming you mean it to be the recipe name' % args.recipename)
+
+ if args.srctree and os.path.isfile(args.srctree):
+ args.fetchuri = 'file://' + os.path.abspath(args.srctree)
+ args.srctree = ''
if args.fetch:
if args.fetchuri:
raise DevtoolError('URI specified as positional argument as well as -f/--fetch')
else:
- # FIXME should show a warning that -f/--fetch is deprecated here
+ logger.warn('-f/--fetch option is deprecated - you can now simply specify the URL to fetch as a positional argument instead')
args.fetchuri = args.fetch
if args.recipename:
@@ -80,10 +85,6 @@ def add(args, config, basepath, workspace):
if reason:
raise DevtoolError(reason)
- # FIXME this ought to be in validate_pn but we're using that in other contexts
- if '/' in args.recipename:
- raise DevtoolError('"/" is not a valid character in recipe names')
-
if args.srctree:
srctree = os.path.abspath(args.srctree)
srctreeparent = None
@@ -127,6 +128,9 @@ def add(args, config, basepath, workspace):
color = args.color
extracmdopts = ''
if args.fetchuri:
+ if args.fetchuri.startswith('npm://'):
+ ensure_npm(config, basepath, args.fixed_setup)
+
source = args.fetchuri
if srctree:
extracmdopts += ' -x %s' % srctree
@@ -144,16 +148,28 @@ def add(args, config, basepath, workspace):
extracmdopts += ' --also-native'
if args.src_subdir:
extracmdopts += ' --src-subdir "%s"' % args.src_subdir
+ if args.autorev:
+ extracmdopts += ' -a'
tempdir = tempfile.mkdtemp(prefix='devtool')
try:
- try:
- stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create -o %s "%s" %s' % (color, tempdir, source, extracmdopts))
- except bb.process.ExecutionError as e:
- if e.exitcode == 15:
- raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
- else:
- raise DevtoolError('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
+ while True:
+ try:
+ stdout, _ = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create -o %s "%s" %s' % (color, tempdir, source, extracmdopts))
+ except bb.process.ExecutionError as e:
+ if e.exitcode == 14:
+ # FIXME this is a horrible hack that is unfortunately
+ # necessary due to the fact that we can't run bitbake from
+ # inside recipetool since recipetool keeps tinfoil active
+ # with references to it throughout the code, so we have
+ # to exit out and come back here to do it.
+ ensure_npm(config, basepath, args.fixed_setup)
+ continue
+ elif e.exitcode == 15:
+ raise DevtoolError('Could not auto-determine recipe name, please specify it on the command line')
+ else:
+ raise DevtoolError('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
+ break
recipes = glob.glob(os.path.join(tempdir, '*.bb'))
if recipes:
@@ -205,55 +221,57 @@ def add(args, config, basepath, workspace):
for fn in os.listdir(recipedir):
_add_md5(config, recipename, os.path.join(recipedir, fn))
- if args.fetchuri and not args.no_git:
- setup_git_repo(srctree, args.version, 'devtool')
-
- initial_rev = None
- if os.path.exists(os.path.join(srctree, '.git')):
- (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
- initial_rev = stdout.rstrip()
-
tinfoil = setup_tinfoil(config_only=True, basepath=basepath)
- rd = oe.recipeutils.parse_recipe(recipefile, None, tinfoil.config_data)
- if not rd:
- return 1
-
- if args.src_subdir:
- srctree = os.path.join(srctree, args.src_subdir)
-
- bb.utils.mkdirhier(os.path.dirname(appendfile))
- with open(appendfile, 'w') as f:
- f.write('inherit externalsrc\n')
- f.write('EXTERNALSRC = "%s"\n' % srctree)
-
- b_is_s = use_external_build(args.same_dir, args.no_same_dir, rd)
- if b_is_s:
- f.write('EXTERNALSRC_BUILD = "%s"\n' % srctree)
- if initial_rev:
- f.write('\n# initial_rev: %s\n' % initial_rev)
-
- if args.binary:
- f.write('do_install_append() {\n')
- f.write(' rm -rf ${D}/.git\n')
- f.write(' rm -f ${D}/singletask.lock\n')
- f.write('}\n')
-
- if bb.data.inherits_class('npm', rd):
- f.write('do_install_append() {\n')
- f.write(' # Remove files added to source dir by devtool/externalsrc\n')
- f.write(' rm -f ${NPM_INSTALLDIR}/singletask.lock\n')
- f.write(' rm -rf ${NPM_INSTALLDIR}/.git\n')
- f.write(' rm -rf ${NPM_INSTALLDIR}/oe-local-files\n')
- f.write(' for symlink in ${EXTERNALSRC_SYMLINKS} ; do\n')
- f.write(' rm -f ${NPM_INSTALLDIR}/${symlink%%:*}\n')
- f.write(' done\n')
- f.write('}\n')
+ try:
+ rd = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, None)
+ if not rd:
+ return 1
- _add_md5(config, recipename, appendfile)
+ if args.fetchuri and not args.no_git:
+ setup_git_repo(srctree, args.version, 'devtool', d=tinfoil.config_data)
- logger.info('Recipe %s has been automatically created; further editing may be required to make it fully functional' % recipefile)
+ initial_rev = None
+ if os.path.exists(os.path.join(srctree, '.git')):
+ (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
+ initial_rev = stdout.rstrip()
+
+ if args.src_subdir:
+ srctree = os.path.join(srctree, args.src_subdir)
+
+ bb.utils.mkdirhier(os.path.dirname(appendfile))
+ with open(appendfile, 'w') as f:
+ f.write('inherit externalsrc\n')
+ f.write('EXTERNALSRC = "%s"\n' % srctree)
+
+ b_is_s = use_external_build(args.same_dir, args.no_same_dir, rd)
+ if b_is_s:
+ f.write('EXTERNALSRC_BUILD = "%s"\n' % srctree)
+ if initial_rev:
+ f.write('\n# initial_rev: %s\n' % initial_rev)
+
+ if args.binary:
+ f.write('do_install_append() {\n')
+ f.write(' rm -rf ${D}/.git\n')
+ f.write(' rm -f ${D}/singletask.lock\n')
+ f.write('}\n')
+
+ if bb.data.inherits_class('npm', rd):
+ f.write('do_install_append() {\n')
+ f.write(' # Remove files added to source dir by devtool/externalsrc\n')
+ f.write(' rm -f ${NPM_INSTALLDIR}/singletask.lock\n')
+ f.write(' rm -rf ${NPM_INSTALLDIR}/.git\n')
+ f.write(' rm -rf ${NPM_INSTALLDIR}/oe-local-files\n')
+ f.write(' for symlink in ${EXTERNALSRC_SYMLINKS} ; do\n')
+ f.write(' rm -f ${NPM_INSTALLDIR}/${symlink%%:*}\n')
+ f.write(' done\n')
+ f.write('}\n')
+
+ _add_md5(config, recipename, appendfile)
+
+ logger.info('Recipe %s has been automatically created; further editing may be required to make it fully functional' % recipefile)
- tinfoil.shutdown()
+ finally:
+ tinfoil.shutdown()
return 0
@@ -262,28 +280,30 @@ def _check_compatible_recipe(pn, d):
"""Check if the recipe is supported by devtool"""
if pn == 'perf':
raise DevtoolError("The perf recipe does not actually check out "
- "source and thus cannot be supported by this tool")
+ "source and thus cannot be supported by this tool",
+ 4)
if pn in ['kernel-devsrc', 'package-index'] or pn.startswith('gcc-source'):
- raise DevtoolError("The %s recipe is not supported by this tool" % pn)
+ raise DevtoolError("The %s recipe is not supported by this tool" % pn, 4)
if bb.data.inherits_class('image', d):
raise DevtoolError("The %s recipe is an image, and therefore is not "
- "supported by this tool" % pn)
+ "supported by this tool" % pn, 4)
if bb.data.inherits_class('populate_sdk', d):
raise DevtoolError("The %s recipe is an SDK, and therefore is not "
- "supported by this tool" % pn)
+ "supported by this tool" % pn, 4)
if bb.data.inherits_class('packagegroup', d):
raise DevtoolError("The %s recipe is a packagegroup, and therefore is "
- "not supported by this tool" % pn)
+ "not supported by this tool" % pn, 4)
if bb.data.inherits_class('meta', d):
raise DevtoolError("The %s recipe is a meta-recipe, and therefore is "
- "not supported by this tool" % pn)
+ "not supported by this tool" % pn, 4)
if bb.data.inherits_class('externalsrc', d) and d.getVar('EXTERNALSRC', True):
+ # Not an incompatibility error per se, so we don't pass the error code
raise DevtoolError("externalsrc is currently enabled for the %s "
"recipe. This prevents the normal do_patch task "
"from working. You will need to disable this "
@@ -296,6 +316,13 @@ def _move_file(src, dst):
bb.utils.mkdirhier(dst_d)
shutil.move(src, dst)
+def _copy_file(src, dst):
+ """Copy a file. Creates all the directory components of destination path."""
+ dst_d = os.path.dirname(dst)
+ if dst_d:
+ bb.utils.mkdirhier(dst_d)
+ shutil.copy(src, dst)
+
def _git_ls_tree(repodir, treeish='HEAD', recursive=False):
"""List contents of a git treeish"""
import bb
@@ -319,7 +346,7 @@ def _git_exclude_path(srctree, path):
# becomes greater than that.
path = os.path.normpath(path)
recurse = True if len(path.split(os.path.sep)) > 1 else False
- git_files = _git_ls_tree(srctree, 'HEAD', recurse).keys()
+ git_files = list(_git_ls_tree(srctree, 'HEAD', recurse).keys())
if path in git_files:
git_files.remove(path)
return git_files
@@ -343,19 +370,21 @@ def extract(args, config, basepath, workspace):
if not tinfoil:
# Error already shown
return 1
+ try:
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
+ return 1
- rd = parse_recipe(config, tinfoil, args.recipename, True)
- if not rd:
- return 1
-
- srctree = os.path.abspath(args.srctree)
- initial_rev = _extract_source(srctree, args.keep_temp, args.branch, False, rd)
- logger.info('Source tree extracted to %s' % srctree)
+ srctree = os.path.abspath(args.srctree)
+ initial_rev = _extract_source(srctree, args.keep_temp, args.branch, False, rd)
+ logger.info('Source tree extracted to %s' % srctree)
- if initial_rev:
- return 0
- else:
- return 1
+ if initial_rev:
+ return 0
+ else:
+ return 1
+ finally:
+ tinfoil.shutdown()
def sync(args, config, basepath, workspace):
"""Entry point for the devtool 'sync' subcommand"""
@@ -365,19 +394,21 @@ def sync(args, config, basepath, workspace):
if not tinfoil:
# Error already shown
return 1
+ try:
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
+ return 1
- rd = parse_recipe(config, tinfoil, args.recipename, True)
- if not rd:
- return 1
-
- srctree = os.path.abspath(args.srctree)
- initial_rev = _extract_source(srctree, args.keep_temp, args.branch, True, rd)
- logger.info('Source tree %s synchronized' % srctree)
+ srctree = os.path.abspath(args.srctree)
+ initial_rev = _extract_source(srctree, args.keep_temp, args.branch, True, rd)
+ logger.info('Source tree %s synchronized' % srctree)
- if initial_rev:
- return 0
- else:
- return 1
+ if initial_rev:
+ return 0
+ else:
+ return 1
+ finally:
+ tinfoil.shutdown()
class BbTaskExecutor(object):
"""Class for executing bitbake tasks for a recipe
@@ -411,7 +442,10 @@ class BbTaskExecutor(object):
class PatchTaskExecutor(BbTaskExecutor):
def __init__(self, rdata):
+ import oe.patch
self.check_git = False
+ self.useroptions = []
+ oe.patch.GitApplyTree.gitCommandUserOptions(self.useroptions, d=rdata)
super(PatchTaskExecutor, self).__init__(rdata)
def exec_func(self, func, report):
@@ -438,7 +472,7 @@ class PatchTaskExecutor(BbTaskExecutor):
stdout, _ = bb.process.run('git status --porcelain', cwd=srcsubdir)
if stdout:
- bb.process.run('git add .; git commit -a -m "Committing changes from %s\n\n%s"' % (func, GitApplyTree.ignore_commit_prefix + ' - from %s' % func), cwd=srcsubdir)
+ bb.process.run('git add .; git %s commit -a -m "Committing changes from %s\n\n%s"' % (' '.join(self.useroptions), func, GitApplyTree.ignore_commit_prefix + ' - from %s' % func), cwd=srcsubdir)
def _prep_extract_operation(config, basepath, recipename, tinfoil=None):
@@ -496,7 +530,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d):
if 'noexec' in (d.getVarFlags('do_unpack', False) or []):
raise DevtoolError("The %s recipe has do_unpack disabled, unable to "
- "extract source" % pn)
+ "extract source" % pn, 4)
if not sync:
# Prepare for shutil.move later on
@@ -547,8 +581,14 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d):
recipe_patches = [os.path.basename(patch) for patch in
oe.recipeutils.get_recipe_patches(crd)]
local_files = oe.recipeutils.get_recipe_local_files(crd)
+
+ # Ignore local files with subdir={BP}
+ srcabspath = os.path.abspath(srcsubdir)
local_files = [fname for fname in local_files if
- os.path.exists(os.path.join(workdir, fname))]
+ os.path.exists(os.path.join(workdir, fname)) and
+ (srcabspath == workdir or not
+ os.path.join(workdir, fname).startswith(srcabspath +
+ os.sep))]
if local_files:
for fname in local_files:
_move_file(os.path.join(workdir, fname),
@@ -583,7 +623,7 @@ def _extract_source(srctree, keep_temp, devbranch, sync, d):
"doesn't use any source or the correct source "
"directory could not be determined" % pn)
- setup_git_repo(srcsubdir, crd.getVar('PV', True), devbranch)
+ setup_git_repo(srcsubdir, crd.getVar('PV', True), devbranch, d=d)
(stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srcsubdir)
initial_rev = stdout.rstrip()
@@ -703,128 +743,127 @@ def modify(args, config, basepath, workspace):
args.recipename)
tinfoil = setup_tinfoil(basepath=basepath)
- rd = parse_recipe(config, tinfoil, args.recipename, True)
- if not rd:
- return 1
-
- pn = rd.getVar('PN', True)
- if pn != args.recipename:
- logger.info('Mapping %s to %s' % (args.recipename, pn))
- if pn in workspace:
- raise DevtoolError("recipe %s is already in your workspace" %
- pn)
-
- if args.srctree:
- srctree = os.path.abspath(args.srctree)
- else:
- srctree = get_default_srctree(config, pn)
-
- if args.no_extract and not os.path.isdir(srctree):
- raise DevtoolError("--no-extract specified and source path %s does "
- "not exist or is not a directory" %
- srctree)
- if not args.no_extract:
- tinfoil = _prep_extract_operation(config, basepath, pn, tinfoil)
- if not tinfoil:
- # Error already shown
+ try:
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
return 1
- recipefile = rd.getVar('FILE', True)
- appendfile = recipe_to_append(recipefile, config, args.wildcard)
- if os.path.exists(appendfile):
- raise DevtoolError("Another variant of recipe %s is already in your "
- "workspace (only one variant of a recipe can "
- "currently be worked on at once)"
- % pn)
-
- _check_compatible_recipe(pn, rd)
+ pn = rd.getVar('PN', True)
+ if pn != args.recipename:
+ logger.info('Mapping %s to %s' % (args.recipename, pn))
+ if pn in workspace:
+ raise DevtoolError("recipe %s is already in your workspace" %
+ pn)
- initial_rev = None
- commits = []
- if not args.no_extract:
- initial_rev = _extract_source(srctree, False, args.branch, False, rd)
- if not initial_rev:
- return 1
- logger.info('Source tree extracted to %s' % srctree)
- # Get list of commits since this revision
- (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree)
- commits = stdout.split()
- else:
- if os.path.exists(os.path.join(srctree, '.git')):
- # Check if it's a tree previously extracted by us
- try:
- (stdout, _) = bb.process.run('git branch --contains devtool-base', cwd=srctree)
- except bb.process.ExecutionError:
- stdout = ''
- for line in stdout.splitlines():
- if line.startswith('*'):
- (stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=srctree)
- initial_rev = stdout.rstrip()
+ if args.srctree:
+ srctree = os.path.abspath(args.srctree)
+ else:
+ srctree = get_default_srctree(config, pn)
+
+ if args.no_extract and not os.path.isdir(srctree):
+ raise DevtoolError("--no-extract specified and source path %s does "
+ "not exist or is not a directory" %
+ srctree)
+ if not args.no_extract:
+ tinfoil = _prep_extract_operation(config, basepath, pn, tinfoil)
+ if not tinfoil:
+ # Error already shown
+ return 1
+
+ recipefile = rd.getVar('FILE', True)
+ appendfile = recipe_to_append(recipefile, config, args.wildcard)
+ if os.path.exists(appendfile):
+ raise DevtoolError("Another variant of recipe %s is already in your "
+ "workspace (only one variant of a recipe can "
+ "currently be worked on at once)"
+ % pn)
+
+ _check_compatible_recipe(pn, rd)
+
+ initial_rev = None
+ commits = []
+ if not args.no_extract:
+ initial_rev = _extract_source(srctree, False, args.branch, False, rd)
if not initial_rev:
- # Otherwise, just grab the head revision
- (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
- initial_rev = stdout.rstrip()
-
- # Check that recipe isn't using a shared workdir
- s = os.path.abspath(rd.getVar('S', True))
- workdir = os.path.abspath(rd.getVar('WORKDIR', True))
- if s.startswith(workdir) and s != workdir and os.path.dirname(s) != workdir:
- # Handle if S is set to a subdirectory of the source
- srcsubdir = os.path.relpath(s, workdir).split(os.sep, 1)[1]
- srctree = os.path.join(srctree, srcsubdir)
-
- bb.utils.mkdirhier(os.path.dirname(appendfile))
- with open(appendfile, 'w') as f:
- f.write('FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n')
- # Local files can be modified/tracked in separate subdir under srctree
- # Mostly useful for packages with S != WORKDIR
- f.write('FILESPATH_prepend := "%s:"\n' %
- os.path.join(srctree, 'oe-local-files'))
-
- f.write('\ninherit externalsrc\n')
- f.write('# NOTE: We use pn- overrides here to avoid affecting multiple variants in the case where the recipe uses BBCLASSEXTEND\n')
- f.write('EXTERNALSRC_pn-%s = "%s"\n' % (pn, srctree))
-
- b_is_s = use_external_build(args.same_dir, args.no_same_dir, rd)
- if b_is_s:
- f.write('EXTERNALSRC_BUILD_pn-%s = "%s"\n' % (pn, srctree))
-
- if bb.data.inherits_class('kernel', rd):
- f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout '
- 'do_fetch do_unpack do_patch do_kernel_configme do_kernel_configcheck"\n')
- f.write('\ndo_configure_append() {\n'
- ' cp ${B}/.config ${S}/.config.baseline\n'
- ' ln -sfT ${B}/.config ${S}/.config.new\n'
- '}\n')
- if initial_rev:
- f.write('\n# initial_rev: %s\n' % initial_rev)
- for commit in commits:
- f.write('# commit: %s\n' % commit)
-
- _add_md5(config, pn, appendfile)
+ return 1
+ logger.info('Source tree extracted to %s' % srctree)
+ # Get list of commits since this revision
+ (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree)
+ commits = stdout.split()
+ else:
+ if os.path.exists(os.path.join(srctree, '.git')):
+ # Check if it's a tree previously extracted by us
+ try:
+ (stdout, _) = bb.process.run('git branch --contains devtool-base', cwd=srctree)
+ except bb.process.ExecutionError:
+ stdout = ''
+ for line in stdout.splitlines():
+ if line.startswith('*'):
+ (stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=srctree)
+ initial_rev = stdout.rstrip()
+ if not initial_rev:
+ # Otherwise, just grab the head revision
+ (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
+ initial_rev = stdout.rstrip()
- logger.info('Recipe %s now set up to build from %s' % (pn, srctree))
+ # Check that recipe isn't using a shared workdir
+ s = os.path.abspath(rd.getVar('S', True))
+ workdir = os.path.abspath(rd.getVar('WORKDIR', True))
+ if s.startswith(workdir) and s != workdir and os.path.dirname(s) != workdir:
+ # Handle if S is set to a subdirectory of the source
+ srcsubdir = os.path.relpath(s, workdir).split(os.sep, 1)[1]
+ srctree = os.path.join(srctree, srcsubdir)
+
+ bb.utils.mkdirhier(os.path.dirname(appendfile))
+ with open(appendfile, 'w') as f:
+ f.write('FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n')
+ # Local files can be modified/tracked in separate subdir under srctree
+ # Mostly useful for packages with S != WORKDIR
+ f.write('FILESPATH_prepend := "%s:"\n' %
+ os.path.join(srctree, 'oe-local-files'))
+
+ f.write('\ninherit externalsrc\n')
+ f.write('# NOTE: We use pn- overrides here to avoid affecting multiple variants in the case where the recipe uses BBCLASSEXTEND\n')
+ f.write('EXTERNALSRC_pn-%s = "%s"\n' % (pn, srctree))
+
+ b_is_s = use_external_build(args.same_dir, args.no_same_dir, rd)
+ if b_is_s:
+ f.write('EXTERNALSRC_BUILD_pn-%s = "%s"\n' % (pn, srctree))
+
+ if bb.data.inherits_class('kernel', rd):
+ f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout '
+ 'do_fetch do_unpack do_patch do_kernel_configme do_kernel_configcheck"\n')
+ f.write('\ndo_configure_append() {\n'
+ ' cp ${B}/.config ${S}/.config.baseline\n'
+ ' ln -sfT ${B}/.config ${S}/.config.new\n'
+ '}\n')
+ if initial_rev:
+ f.write('\n# initial_rev: %s\n' % initial_rev)
+ for commit in commits:
+ f.write('# commit: %s\n' % commit)
+
+ _add_md5(config, pn, appendfile)
+
+ logger.info('Recipe %s now set up to build from %s' % (pn, srctree))
- tinfoil.shutdown()
+ finally:
+ tinfoil.shutdown()
return 0
-def _get_patchset_revs(args, srctree, recipe_path):
+def _get_patchset_revs(srctree, recipe_path, initial_rev=None):
"""Get initial and update rev of a recipe. These are the start point of the
whole patchset and start point for the patches to be re-generated/updated.
"""
import bb
- if args.initial_rev:
- return args.initial_rev, args.initial_rev
-
- # Parse initial rev from recipe
+ # Parse initial rev from recipe if not specified
commits = []
- initial_rev = None
with open(recipe_path, 'r') as f:
for line in f:
if line.startswith('# initial_rev:'):
- initial_rev = line.split(':')[-1].strip()
+ if not initial_rev:
+ initial_rev = line.split(':')[-1].strip()
elif line.startswith('# commit:'):
commits.append(line.split(':')[-1].strip())
@@ -835,7 +874,7 @@ def _get_patchset_revs(args, srctree, recipe_path):
stdout, _ = bb.process.run('git rev-list --reverse %s..HEAD' %
initial_rev, cwd=srctree)
newcommits = stdout.split()
- for i in xrange(min(len(commits), len(newcommits))):
+ for i in range(min(len(commits), len(newcommits))):
if newcommits[i] == commits[i]:
update_rev = commits[i]
@@ -861,7 +900,7 @@ def _remove_file_entries(srcuri, filelist):
entries = []
for fname in filelist:
basename = os.path.basename(fname)
- for i in xrange(len(srcuri)):
+ for i in range(len(srcuri)):
if (srcuri[i].startswith('file://') and
os.path.basename(srcuri[i].split(';')[0]) == basename):
entries.append(srcuri[i])
@@ -870,10 +909,10 @@ def _remove_file_entries(srcuri, filelist):
break
return entries, remaining
-def _remove_source_files(args, files, destpath):
+def _remove_source_files(append, files, destpath):
"""Unlink existing patch files"""
for path in files:
- if args.append:
+ if append:
if not destpath:
raise Exception('destpath should be set here')
path = os.path.join(destpath, os.path.basename(path))
@@ -996,7 +1035,7 @@ def _export_local_files(srctree, rd, destdir):
bb.process.run(['git', 'checkout', tree, '--', '.'], cwd=srctree,
env=dict(os.environ, GIT_WORK_TREE=destdir,
GIT_INDEX_FILE=tmp_index))
- new_set = _git_ls_tree(srctree, tree, True).keys()
+ new_set = list(_git_ls_tree(srctree, tree, True).keys())
elif os.path.isdir(local_files_dir):
# If not tracked by Git, just copy from working copy
new_set = _ls_tree(os.path.join(srctree, 'oe-local-files'))
@@ -1026,15 +1065,47 @@ def _export_local_files(srctree, rd, destdir):
if new_set is not None:
for fname in new_set:
if fname in existing_files:
- updated[fname] = existing_files.pop(fname)
+ origpath = existing_files.pop(fname)
+ workpath = os.path.join(local_files_dir, fname)
+ if not filecmp.cmp(origpath, workpath):
+ updated[fname] = origpath
elif fname != '.gitignore':
added[fname] = None
+ workdir = rd.getVar('WORKDIR', True)
+ s = rd.getVar('S', True)
+ if not s.endswith(os.sep):
+ s += os.sep
+
+ if workdir != s:
+ # Handle files where subdir= was specified
+ for fname in list(existing_files.keys()):
+ # FIXME handle both subdir starting with BP and not?
+ fworkpath = os.path.join(workdir, fname)
+ if fworkpath.startswith(s):
+ fpath = os.path.join(srctree, os.path.relpath(fworkpath, s))
+ if os.path.exists(fpath):
+ origpath = existing_files.pop(fname)
+ if not filecmp.cmp(origpath, fpath):
+ updated[fpath] = origpath
+
removed = existing_files
return (updated, added, removed)
-def _update_recipe_srcrev(args, srctree, rd, config_data):
+def _determine_files_dir(rd):
+ """Determine the appropriate files directory for a recipe"""
+ recipedir = rd.getVar('FILE_DIRNAME', True)
+ for entry in rd.getVar('FILESPATH', True).split(':'):
+ relpth = os.path.relpath(entry, recipedir)
+ if not os.sep in relpth:
+ # One (or zero) levels below only, so we don't put anything in machine-specific directories
+ if os.path.isdir(entry):
+ return entry
+ return os.path.join(recipedir, rd.getVar('BPN', True))
+
+
+def _update_recipe_srcrev(srctree, rd, appendlayerdir, wildcard_version, no_remove):
"""Implement the 'srcrev' mode of update-recipe"""
import bb
import oe.recipeutils
@@ -1063,7 +1134,7 @@ def _update_recipe_srcrev(args, srctree, rd, config_data):
try:
local_files_dir = tempfile.mkdtemp(dir=tempdir)
upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir)
- if not args.no_remove:
+ if not no_remove:
# Find list of existing patches in recipe file
patches_dir = tempfile.mkdtemp(dir=tempdir)
old_srcrev = (rd.getVar('SRCREV', False) or '')
@@ -1071,29 +1142,33 @@ def _update_recipe_srcrev(args, srctree, rd, config_data):
patches_dir)
# Remove deleted local files and "overlapping" patches
- remove_files = del_f.values() + upd_p.values()
+ remove_files = list(del_f.values()) + list(upd_p.values())
if remove_files:
removedentries = _remove_file_entries(srcuri, remove_files)[0]
update_srcuri = True
- if args.append:
+ if appendlayerdir:
files = dict((os.path.join(local_files_dir, key), val) for
- key, val in upd_f.items() + new_f.items())
+ key, val in list(upd_f.items()) + list(new_f.items()))
removevalues = {}
if update_srcuri:
removevalues = {'SRC_URI': removedentries}
patchfields['SRC_URI'] = '\\\n '.join(srcuri)
_, destpath = oe.recipeutils.bbappend_recipe(
- rd, args.append, files, wildcardver=args.wildcard_version,
+ rd, appendlayerdir, files, wildcardver=wildcard_version,
extralines=patchfields, removevalues=removevalues)
else:
- files_dir = os.path.join(os.path.dirname(recipefile),
- rd.getVar('BPN', True))
- for basepath, path in upd_f.iteritems():
+ files_dir = _determine_files_dir(rd)
+ for basepath, path in upd_f.items():
logger.info('Updating file %s' % basepath)
- _move_file(os.path.join(local_files_dir, basepath), path)
+ if os.path.isabs(basepath):
+ # Original file (probably with subdir pointing inside source tree)
+ # so we do not want to move it, just copy
+ _copy_file(basepath, path)
+ else:
+ _move_file(os.path.join(local_files_dir, basepath), path)
update_srcuri= True
- for basepath, path in new_f.iteritems():
+ for basepath, path in new_f.items():
logger.info('Adding new file %s' % basepath)
_move_file(os.path.join(local_files_dir, basepath),
os.path.join(files_dir, basepath))
@@ -1109,21 +1184,21 @@ def _update_recipe_srcrev(args, srctree, rd, config_data):
'point to a git repository where you have pushed your '
'changes')
- _remove_source_files(args, remove_files, destpath)
+ _remove_source_files(appendlayerdir, remove_files, destpath)
return True
-def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
+def _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, initial_rev):
"""Implement the 'patch' mode of update-recipe"""
import bb
import oe.recipeutils
recipefile = rd.getVar('FILE', True)
- append = workspace[args.recipename]['bbappend']
+ append = workspace[recipename]['bbappend']
if not os.path.exists(append):
raise DevtoolError('unable to find workspace bbappend for recipe %s' %
- args.recipename)
+ recipename)
- initial_rev, update_rev, changed_revs = _get_patchset_revs(args, srctree, append)
+ initial_rev, update_rev, changed_revs = _get_patchset_revs(srctree, append, initial_rev)
if not initial_rev:
raise DevtoolError('Unable to find initial revision - please specify '
'it with --initial-rev')
@@ -1134,13 +1209,13 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
upd_f, new_f, del_f = _export_local_files(srctree, rd, local_files_dir)
remove_files = []
- if not args.no_remove:
+ if not no_remove:
# Get all patches from source tree and check if any should be removed
all_patches_dir = tempfile.mkdtemp(dir=tempdir)
upd_p, new_p, del_p = _export_patches(srctree, rd, initial_rev,
all_patches_dir)
# Remove deleted local files and patches
- remove_files = del_f.values() + del_p.values()
+ remove_files = list(del_f.values()) + list(del_p.values())
# Get updated patches from source tree
patches_dir = tempfile.mkdtemp(dir=tempdir)
@@ -1150,11 +1225,11 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
updaterecipe = False
destpath = None
srcuri = (rd.getVar('SRC_URI', False) or '').split()
- if args.append:
+ if appendlayerdir:
files = dict((os.path.join(local_files_dir, key), val) for
- key, val in upd_f.items() + new_f.items())
+ key, val in list(upd_f.items()) + list(new_f.items()))
files.update(dict((os.path.join(patches_dir, key), val) for
- key, val in upd_p.items() + new_p.items()))
+ key, val in list(upd_p.items()) + list(new_p.items())))
if files or remove_files:
removevalues = None
if remove_files:
@@ -1165,17 +1240,23 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
item in remaining]
removevalues = {'SRC_URI': removedentries + remaining}
_, destpath = oe.recipeutils.bbappend_recipe(
- rd, args.append, files,
+ rd, appendlayerdir, files,
+ wildcardver=wildcard_version,
removevalues=removevalues)
else:
logger.info('No patches or local source files needed updating')
else:
# Update existing files
- for basepath, path in upd_f.iteritems():
+ for basepath, path in upd_f.items():
logger.info('Updating file %s' % basepath)
- _move_file(os.path.join(local_files_dir, basepath), path)
+ if os.path.isabs(basepath):
+ # Original file (probably with subdir pointing inside source tree)
+ # so we do not want to move it, just copy
+ _copy_file(basepath, path)
+ else:
+ _move_file(os.path.join(local_files_dir, basepath), path)
updatefiles = True
- for basepath, path in upd_p.iteritems():
+ for basepath, path in upd_p.items():
patchfn = os.path.join(patches_dir, basepath)
if changed_revs is not None:
# Avoid updating patches that have not actually changed
@@ -1188,15 +1269,14 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
_move_file(patchfn, path)
updatefiles = True
# Add any new files
- files_dir = os.path.join(os.path.dirname(recipefile),
- rd.getVar('BPN', True))
- for basepath, path in new_f.iteritems():
+ files_dir = _determine_files_dir(rd)
+ for basepath, path in new_f.items():
logger.info('Adding new file %s' % basepath)
_move_file(os.path.join(local_files_dir, basepath),
os.path.join(files_dir, basepath))
srcuri.append('file://%s' % basepath)
updaterecipe = True
- for basepath, path in new_p.iteritems():
+ for basepath, path in new_p.items():
logger.info('Adding new patch %s' % basepath)
_move_file(os.path.join(patches_dir, basepath),
os.path.join(files_dir, basepath))
@@ -1216,7 +1296,7 @@ def _update_recipe_patch(args, config, workspace, srctree, rd, config_data):
finally:
shutil.rmtree(tempdir)
- _remove_source_files(args, remove_files, destpath)
+ _remove_source_files(appendlayerdir, remove_files, destpath)
return True
def _guess_recipe_update_mode(srctree, rdata):
@@ -1241,6 +1321,19 @@ def _guess_recipe_update_mode(srctree, rdata):
return 'patch'
+def _update_recipe(recipename, workspace, rd, mode, appendlayerdir, wildcard_version, no_remove, initial_rev):
+ srctree = workspace[recipename]['srctree']
+ if mode == 'auto':
+ mode = _guess_recipe_update_mode(srctree, rd)
+
+ if mode == 'srcrev':
+ updated = _update_recipe_srcrev(srctree, rd, appendlayerdir, wildcard_version, no_remove)
+ elif mode == 'patch':
+ updated = _update_recipe_patch(recipename, workspace, srctree, rd, appendlayerdir, wildcard_version, no_remove, initial_rev)
+ else:
+ raise DevtoolError('update_recipe: invalid mode %s' % mode)
+ return updated
+
def update_recipe(args, config, basepath, workspace):
"""Entry point for the devtool 'update-recipe' subcommand"""
check_workspace_recipe(workspace, args.recipename)
@@ -1254,28 +1347,20 @@ def update_recipe(args, config, basepath, workspace):
'destination layer "%s"' % args.append)
tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
+ try:
- rd = parse_recipe(config, tinfoil, args.recipename, True)
- if not rd:
- return 1
-
- srctree = workspace[args.recipename]['srctree']
- if args.mode == 'auto':
- mode = _guess_recipe_update_mode(srctree, rd)
- else:
- mode = args.mode
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
+ return 1
- if mode == 'srcrev':
- updated = _update_recipe_srcrev(args, srctree, rd, tinfoil.config_data)
- elif mode == 'patch':
- updated = _update_recipe_patch(args, config, workspace, srctree, rd, tinfoil.config_data)
- else:
- raise DevtoolError('update_recipe: invalid mode %s' % mode)
+ updated = _update_recipe(args.recipename, workspace, rd, args.mode, args.append, args.wildcard_version, args.no_remove, args.initial_rev)
- if updated:
- rf = rd.getVar('FILE', True)
- if rf.startswith(config.workspace_path):
- logger.warn('Recipe file %s has been updated but is inside the workspace - you will need to move it (and any associated files next to it) out to the desired layer before using "devtool reset" in order to keep any changes' % rf)
+ if updated:
+ rf = rd.getVar('FILE', True)
+ if rf.startswith(config.workspace_path):
+ logger.warn('Recipe file %s has been updated but is inside the workspace - you will need to move it (and any associated files next to it) out to the desired layer before using "devtool reset" in order to keep any changes' % rf)
+ finally:
+ tinfoil.shutdown()
return 0
@@ -1283,7 +1368,7 @@ def update_recipe(args, config, basepath, workspace):
def status(args, config, basepath, workspace):
"""Entry point for the devtool 'status' subcommand"""
if workspace:
- for recipe, value in workspace.iteritems():
+ for recipe, value in workspace.items():
recipefile = value['recipefile']
if recipefile:
recipestr = ' (%s)' % recipefile
@@ -1295,23 +1380,10 @@ def status(args, config, basepath, workspace):
return 0
-def reset(args, config, basepath, workspace):
- """Entry point for the devtool 'reset' subcommand"""
- import bb
- if args.recipename:
- if args.all:
- raise DevtoolError("Recipe cannot be specified if -a/--all is used")
- else:
- check_workspace_recipe(workspace, args.recipename, checksrc=False)
- elif not args.all:
- raise DevtoolError("Recipe must be specified, or specify -a/--all to "
- "reset all recipes")
- if args.all:
- recipes = workspace.keys()
- else:
- recipes = [args.recipename]
+def _reset(recipes, no_clean, config, basepath, workspace):
+ """Reset one or more recipes"""
- if recipes and not args.no_clean:
+ if recipes and not no_clean:
if len(recipes) == 1:
logger.info('Cleaning sysroot for recipe %s...' % recipes[0])
else:
@@ -1323,7 +1395,7 @@ def reset(args, config, basepath, workspace):
for recipe in recipes:
targets.append(recipe)
recipefile = workspace[recipe]['recipefile']
- if recipefile:
+ if recipefile and os.path.exists(recipefile):
targets.extend(get_bbclassextend_targets(recipefile, recipe))
try:
exec_build_env_command(config.init_path, basepath, 'bitbake -c clean %s' % ' '.join(targets))
@@ -1363,6 +1435,126 @@ def reset(args, config, basepath, workspace):
# This is unlikely, but if it's empty we can just remove it
os.rmdir(srctree)
+
+def reset(args, config, basepath, workspace):
+ """Entry point for the devtool 'reset' subcommand"""
+ import bb
+ if args.recipename:
+ if args.all:
+ raise DevtoolError("Recipe cannot be specified if -a/--all is used")
+ else:
+ for recipe in args.recipename:
+ check_workspace_recipe(workspace, recipe, checksrc=False)
+ elif not args.all:
+ raise DevtoolError("Recipe must be specified, or specify -a/--all to "
+ "reset all recipes")
+ if args.all:
+ recipes = list(workspace.keys())
+ else:
+ recipes = args.recipename
+
+ _reset(recipes, args.no_clean, config, basepath, workspace)
+
+ return 0
+
+
+def _get_layer(layername, d):
+ """Determine the base layer path for the specified layer name/path"""
+ layerdirs = d.getVar('BBLAYERS', True).split()
+ layers = {os.path.basename(p): p for p in layerdirs}
+ # Provide some shortcuts
+ if layername.lower() in ['oe-core', 'openembedded-core']:
+ layerdir = layers.get('meta', None)
+ else:
+ layerdir = layers.get(layername, None)
+ if layerdir:
+ layerdir = os.path.abspath(layerdir)
+ return layerdir or layername
+
+def finish(args, config, basepath, workspace):
+ """Entry point for the devtool 'finish' subcommand"""
+ import bb
+ import oe.recipeutils
+
+ check_workspace_recipe(workspace, args.recipename)
+
+ tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
+ try:
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
+ return 1
+
+ destlayerdir = _get_layer(args.destination, tinfoil.config_data)
+ origlayerdir = oe.recipeutils.find_layerdir(rd.getVar('FILE', True))
+
+ if not os.path.isdir(destlayerdir):
+ raise DevtoolError('Unable to find layer or directory matching "%s"' % args.destination)
+
+ if os.path.abspath(destlayerdir) == config.workspace_path:
+ raise DevtoolError('"%s" specifies the workspace layer - that is not a valid destination' % args.destination)
+
+ # If it's an upgrade, grab the original path
+ origpath = None
+ origfilelist = None
+ append = workspace[args.recipename]['bbappend']
+ with open(append, 'r') as f:
+ for line in f:
+ if line.startswith('# original_path:'):
+ origpath = line.split(':')[1].strip()
+ elif line.startswith('# original_files:'):
+ origfilelist = line.split(':')[1].split()
+
+ if origlayerdir == config.workspace_path:
+ # Recipe file itself is in workspace, update it there first
+ appendlayerdir = None
+ origrelpath = None
+ if origpath:
+ origlayerpath = oe.recipeutils.find_layerdir(origpath)
+ if origlayerpath:
+ origrelpath = os.path.relpath(origpath, origlayerpath)
+ destpath = oe.recipeutils.get_bbfile_path(rd, destlayerdir, origrelpath)
+ if not destpath:
+ raise DevtoolError("Unable to determine destination layer path - check that %s specifies an actual layer and %s/conf/layer.conf specifies BBFILES. You may also need to specify a more complete path." % (args.destination, destlayerdir))
+ elif destlayerdir == origlayerdir:
+ # Same layer, update the original recipe
+ appendlayerdir = None
+ destpath = None
+ else:
+ # Create/update a bbappend in the specified layer
+ appendlayerdir = destlayerdir
+ destpath = None
+
+ # Remove any old files in the case of an upgrade
+ if origpath and origfilelist and oe.recipeutils.find_layerdir(origpath) == oe.recipeutils.find_layerdir(destlayerdir):
+ for fn in origfilelist:
+ fnp = os.path.join(origpath, fn)
+ try:
+ os.remove(fnp)
+ except FileNotFoundError:
+ pass
+
+ # Actually update the recipe / bbappend
+ _update_recipe(args.recipename, workspace, rd, args.mode, appendlayerdir, wildcard_version=True, no_remove=False, initial_rev=args.initial_rev)
+
+ if origlayerdir == config.workspace_path and destpath:
+ # Recipe file itself is in the workspace - need to move it and any
+ # associated files to the specified layer
+ logger.info('Moving recipe file to %s' % destpath)
+ recipedir = os.path.dirname(rd.getVar('FILE', True))
+ for root, _, files in os.walk(recipedir):
+ for fn in files:
+ srcpath = os.path.join(root, fn)
+ relpth = os.path.relpath(os.path.dirname(srcpath), recipedir)
+ destdir = os.path.abspath(os.path.join(destpath, relpth))
+ bb.utils.mkdirhier(destdir)
+ shutil.move(srcpath, os.path.join(destdir, fn))
+
+ finally:
+ tinfoil.shutdown()
+
+ # Everything else has succeeded, we can now reset
+ _reset([args.recipename], no_clean=False, config=config, basepath=basepath, workspace=workspace)
+
return 0
@@ -1390,10 +1582,11 @@ def register_commands(subparsers, context):
parser_add.add_argument('--fetch', '-f', help='Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead)', metavar='URI')
parser_add.add_argument('--version', '-V', help='Version to use within recipe (PV)')
parser_add.add_argument('--no-git', '-g', help='If fetching source, do not set up source tree as a git repository', action="store_true")
+ parser_add.add_argument('--autorev', '-a', help='When fetching from a git repository, set SRCREV in the recipe to a floating revision instead of fixed', action="store_true")
parser_add.add_argument('--binary', '-b', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure). Useful with binary packages e.g. RPMs.', action='store_true')
parser_add.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true')
parser_add.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR')
- parser_add.set_defaults(func=add)
+ parser_add.set_defaults(func=add, fixed_setup=context.fixed_setup)
parser_modify = subparsers.add_parser('modify', help='Modify the source for an existing recipe',
description='Sets up the build environment to modify the source for an existing recipe. The default behaviour is to extract the source being fetched by the recipe into a git tree so you can work on it; alternatively if you already have your own pre-prepared source tree you can specify -n/--no-extract.',
@@ -1446,9 +1639,18 @@ def register_commands(subparsers, context):
parser_status.set_defaults(func=status)
parser_reset = subparsers.add_parser('reset', help='Remove a recipe from your workspace',
- description='Removes the specified recipe from your workspace (resetting its state)',
+ description='Removes the specified recipe(s) from your workspace (resetting its state back to that defined by the metadata).',
group='working', order=-100)
- parser_reset.add_argument('recipename', nargs='?', help='Recipe to reset')
+ parser_reset.add_argument('recipename', nargs='*', help='Recipe to reset')
parser_reset.add_argument('--all', '-a', action="store_true", help='Reset all recipes (clear workspace)')
parser_reset.add_argument('--no-clean', '-n', action="store_true", help='Don\'t clean the sysroot to remove recipe output')
parser_reset.set_defaults(func=reset)
+
+ parser_finish = subparsers.add_parser('finish', help='Finish working on a recipe in your workspace',
+ description='Pushes any committed changes to the specified recipe to the specified layer and removes it from your workspace. Roughly equivalent to an update-recipe followed by reset, except the update-recipe step will do the "right thing" depending on the recipe and the destination layer specified.',
+ group='working', order=-100)
+ parser_finish.add_argument('recipename', help='Recipe to finish')
+ parser_finish.add_argument('destination', help='Layer/path to put recipe into. Can be the name of a layer configured in your bblayers.conf, the path to the base of a layer, or a partial path inside a layer. %(prog)s will attempt to complete the path based on the layer\'s structure.')
+ parser_finish.add_argument('--mode', '-m', choices=['patch', 'srcrev', 'auto'], default='auto', help='Update mode (where %(metavar)s is %(choices)s; default is %(default)s)', metavar='MODE')
+ parser_finish.add_argument('--initial-rev', help='Override starting revision for patches')
+ parser_finish.set_defaults(func=finish)
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/upgrade.py b/import-layers/yocto-poky/scripts/lib/devtool/upgrade.py
index a085f78c4..a4239f1cd 100644
--- a/import-layers/yocto-poky/scripts/lib/devtool/upgrade.py
+++ b/import-layers/yocto-poky/scripts/lib/devtool/upgrade.py
@@ -70,18 +70,26 @@ def _remove_patch_dirs(recipefolder):
def _recipe_contains(rd, var):
rf = rd.getVar('FILE', True)
varfiles = oe.recipeutils.get_var_files(rf, [var], rd)
- for var, fn in varfiles.iteritems():
+ for var, fn in varfiles.items():
if fn and fn.startswith(os.path.dirname(rf) + os.sep):
return True
return False
def _rename_recipe_dirs(oldpv, newpv, path):
for root, dirs, files in os.walk(path):
+ # Rename directories with the version in their name
for olddir in dirs:
if olddir.find(oldpv) != -1:
newdir = olddir.replace(oldpv, newpv)
if olddir != newdir:
shutil.move(os.path.join(path, olddir), os.path.join(path, newdir))
+ # Rename any inc files with the version in their name (unusual, but possible)
+ for oldfile in files:
+ if oldfile.endswith('.inc'):
+ if oldfile.find(oldpv) != -1:
+ newfile = oldfile.replace(oldpv, newpv)
+ if oldfile != newfile:
+ os.rename(os.path.join(path, oldfile), os.path.join(path, newfile))
def _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path):
oldrecipe = os.path.basename(oldrecipe)
@@ -97,7 +105,7 @@ def _rename_recipe_files(oldrecipe, bpn, oldpv, newpv, path):
_rename_recipe_dirs(oldpv, newpv, path)
return _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path)
-def _write_append(rc, srctree, same_dir, no_same_dir, rev, workspace, d):
+def _write_append(rc, srctree, same_dir, no_same_dir, rev, copied, workspace, d):
"""Writes an append file"""
if not os.path.exists(rc):
raise DevtoolError("bbappend not created because %s does not exist" % rc)
@@ -120,8 +128,12 @@ def _write_append(rc, srctree, same_dir, no_same_dir, rev, workspace, d):
b_is_s = use_external_build(same_dir, no_same_dir, d)
if b_is_s:
f.write('EXTERNALSRC_BUILD_pn-%s = "%s"\n' % (pn, srctree))
+ f.write('\n')
if rev:
- f.write('\n# initial_rev: %s\n' % rev)
+ f.write('# initial_rev: %s\n' % rev)
+ if copied:
+ f.write('# original_path: %s\n' % os.path.dirname(d.getVar('FILE', True)))
+ f.write('# original_files: %s\n' % ' '.join(copied))
return af
def _cleanup_on_error(rf, srctree):
@@ -215,7 +227,9 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, branch, keep_temp, tin
for f in stdout.splitlines():
__run('git add "%s"' % f)
- __run('git commit -q -m "Commit of upstream changes at version %s" --allow-empty' % newpv)
+ useroptions = []
+ oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=rd)
+ __run('git %s commit -q -m "Commit of upstream changes at version %s" --allow-empty' % (' '.join(useroptions), newpv))
__run('git tag -f devtool-base-%s' % newpv)
(stdout, _) = __run('git rev-parse HEAD')
@@ -228,16 +242,22 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, branch, keep_temp, tin
for patch in patches:
logger.warn("%s" % os.path.basename(patch))
else:
+ __run('git checkout devtool-patched -b %s' % branch)
+ skiptag = False
try:
- __run('git checkout devtool-patched -b %s' % branch)
__run('git rebase %s' % rev)
+ except bb.process.ExecutionError as e:
+ skiptag = True
+ if 'conflict' in e.stdout:
+ logger.warn('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
+ else:
+ logger.warn('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
+ if not skiptag:
if uri.startswith('git://'):
suffix = 'new'
else:
suffix = newpv
__run('git tag -f devtool-patched-%s' % suffix)
- except bb.process.ExecutionError as e:
- logger.warn('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
if tmpsrctree:
if keep_temp:
@@ -253,7 +273,7 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, workspace, tinfoil
bpn = rd.getVar('BPN', True)
path = os.path.join(workspace, 'recipes', bpn)
bb.utils.mkdirhier(path)
- oe.recipeutils.copy_recipe_files(rd, path)
+ copied, _ = oe.recipeutils.copy_recipe_files(rd, path)
oldpv = rd.getVar('PV', True)
if not newpv:
@@ -300,10 +320,10 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, workspace, tinfoil
newvalues['SRC_URI[md5sum]'] = md5
newvalues['SRC_URI[sha256sum]'] = sha256
- rd = oe.recipeutils.parse_recipe(fullpath, None, tinfoil.config_data)
+ rd = oe.recipeutils.parse_recipe(tinfoil.cooker, fullpath, None)
oe.recipeutils.patch_recipe(rd, fullpath, newvalues)
- return fullpath
+ return fullpath, copied
def upgrade(args, config, basepath, workspace):
"""Entry point for the devtool 'upgrade' subcommand"""
@@ -316,48 +336,51 @@ def upgrade(args, config, basepath, workspace):
raise DevtoolError("If you specify --srcbranch/-B then you must use --srcrev/-S to specify the revision" % args.recipename)
tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
- rd = parse_recipe(config, tinfoil, args.recipename, True)
- if not rd:
- return 1
-
- pn = rd.getVar('PN', True)
- if pn != args.recipename:
- logger.info('Mapping %s to %s' % (args.recipename, pn))
- if pn in workspace:
- raise DevtoolError("recipe %s is already in your workspace" % pn)
-
- if args.srctree:
- srctree = os.path.abspath(args.srctree)
- else:
- srctree = standard.get_default_srctree(config, pn)
-
- standard._check_compatible_recipe(pn, rd)
- old_srcrev = rd.getVar('SRCREV', True)
- if old_srcrev == 'INVALID':
- old_srcrev = None
- if old_srcrev and not args.srcrev:
- raise DevtoolError("Recipe specifies a SRCREV value; you must specify a new one when upgrading")
- if rd.getVar('PV', True) == args.version and old_srcrev == args.srcrev:
- raise DevtoolError("Current and upgrade versions are the same version")
-
- rf = None
try:
- rev1 = standard._extract_source(srctree, False, 'devtool-orig', False, rd)
- rev2, md5, sha256 = _extract_new_source(args.version, srctree, args.no_patch,
- args.srcrev, args.branch, args.keep_temp,
- tinfoil, rd)
- rf = _create_new_recipe(args.version, md5, sha256, args.srcrev, args.srcbranch, config.workspace_path, tinfoil, rd)
- except bb.process.CmdError as e:
- _upgrade_error(e, rf, srctree)
- except DevtoolError as e:
- _upgrade_error(e, rf, srctree)
- standard._add_md5(config, pn, os.path.dirname(rf))
-
- af = _write_append(rf, srctree, args.same_dir, args.no_same_dir, rev2,
- config.workspace_path, rd)
- standard._add_md5(config, pn, af)
- logger.info('Upgraded source extracted to %s' % srctree)
- logger.info('New recipe is %s' % rf)
+ rd = parse_recipe(config, tinfoil, args.recipename, True)
+ if not rd:
+ return 1
+
+ pn = rd.getVar('PN', True)
+ if pn != args.recipename:
+ logger.info('Mapping %s to %s' % (args.recipename, pn))
+ if pn in workspace:
+ raise DevtoolError("recipe %s is already in your workspace" % pn)
+
+ if args.srctree:
+ srctree = os.path.abspath(args.srctree)
+ else:
+ srctree = standard.get_default_srctree(config, pn)
+
+ standard._check_compatible_recipe(pn, rd)
+ old_srcrev = rd.getVar('SRCREV', True)
+ if old_srcrev == 'INVALID':
+ old_srcrev = None
+ if old_srcrev and not args.srcrev:
+ raise DevtoolError("Recipe specifies a SRCREV value; you must specify a new one when upgrading")
+ if rd.getVar('PV', True) == args.version and old_srcrev == args.srcrev:
+ raise DevtoolError("Current and upgrade versions are the same version")
+
+ rf = None
+ try:
+ rev1 = standard._extract_source(srctree, False, 'devtool-orig', False, rd)
+ rev2, md5, sha256 = _extract_new_source(args.version, srctree, args.no_patch,
+ args.srcrev, args.branch, args.keep_temp,
+ tinfoil, rd)
+ rf, copied = _create_new_recipe(args.version, md5, sha256, args.srcrev, args.srcbranch, config.workspace_path, tinfoil, rd)
+ except bb.process.CmdError as e:
+ _upgrade_error(e, rf, srctree)
+ except DevtoolError as e:
+ _upgrade_error(e, rf, srctree)
+ standard._add_md5(config, pn, os.path.dirname(rf))
+
+ af = _write_append(rf, srctree, args.same_dir, args.no_same_dir, rev2,
+ copied, config.workspace_path, rd)
+ standard._add_md5(config, pn, af)
+ logger.info('Upgraded source extracted to %s' % srctree)
+ logger.info('New recipe is %s' % rf)
+ finally:
+ tinfoil.shutdown()
return 0
def register_commands(subparsers, context):
@@ -371,7 +394,7 @@ def register_commands(subparsers, context):
parser_upgrade.add_argument('recipename', help='Name of recipe to upgrade (just name - no version, path or extension)')
parser_upgrade.add_argument('srctree', nargs='?', help='Path to where to extract the source tree. If not specified, a subdirectory of %s will be used.' % defsrctree)
parser_upgrade.add_argument('--version', '-V', help='Version to upgrade to (PV)')
- parser_upgrade.add_argument('--srcrev', '-S', help='Source revision to upgrade to (if fetching from an SCM such as git)')
+ parser_upgrade.add_argument('--srcrev', '-S', help='Source revision to upgrade to (required if fetching from an SCM such as git)')
parser_upgrade.add_argument('--srcbranch', '-B', help='Branch in source repository containing the revision to use (if fetching from an SCM such as git)')
parser_upgrade.add_argument('--branch', '-b', default="devtool", help='Name for new development branch to checkout (default "%(default)s")')
parser_upgrade.add_argument('--no-patch', action="store_true", help='Do not apply patches from the recipe to the new source code')
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/append.py b/import-layers/yocto-poky/scripts/lib/recipetool/append.py
index 558fd25ac..1e0fc1ee8 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/append.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/append.py
@@ -61,7 +61,7 @@ def find_target_file(targetpath, d, pkglist=None):
'/etc/gshadow': '/etc/gshadow should be managed through the useradd and extrausers classes',
'${sysconfdir}/hostname': '${sysconfdir}/hostname contents should be set by setting hostname_pn-base-files = "value" in configuration',}
- for pthspec, message in invalidtargets.iteritems():
+ for pthspec, message in invalidtargets.items():
if fnmatch.fnmatchcase(targetpath, d.expand(pthspec)):
raise InvalidTargetFileError(d.expand(message))
@@ -90,7 +90,7 @@ def find_target_file(targetpath, d, pkglist=None):
if fnmatch.fnmatchcase(fullpth, targetpath):
recipes[targetpath].append(pn)
elif line.startswith('pkg_preinst_') or line.startswith('pkg_postinst_'):
- scriptval = line.split(':', 1)[1].strip().decode('string_escape')
+ scriptval = line.split(':', 1)[1].strip().encode('utf-8').decode('unicode_escape')
if 'update-alternatives --install %s ' % targetpath in scriptval:
recipes[targetpath].append('?%s' % pn)
elif targetpath_re.search(scriptval):
@@ -115,8 +115,7 @@ def _parse_recipe(pn, tinfoil):
# Error already logged
return None
append_files = tinfoil.cooker.collection.get_file_appends(recipefile)
- rd = oe.recipeutils.parse_recipe(recipefile, append_files,
- tinfoil.config_data)
+ rd = oe.recipeutils.parse_recipe(tinfoil.cooker, recipefile, append_files)
return rd
def determine_file_source(targetpath, rd):
@@ -152,7 +151,7 @@ def determine_file_source(targetpath, rd):
# Check patches
srcpatches = []
patchedfiles = oe.recipeutils.get_recipe_patched_files(rd)
- for patch, filelist in patchedfiles.iteritems():
+ for patch, filelist in patchedfiles.items():
for fileitem in filelist:
if fileitem[0] == srcpath:
srcpatches.append((patch, fileitem[1]))
@@ -172,7 +171,7 @@ def get_source_path(cmdelements):
"""Find the source path specified within a command"""
command = cmdelements[0]
if command in ['install', 'cp']:
- helptext = subprocess.check_output('LC_ALL=C %s --help' % command, shell=True)
+ helptext = subprocess.check_output('LC_ALL=C %s --help' % command, shell=True).decode('utf-8')
argopts = ''
argopt_line_re = re.compile('^-([a-zA-Z0-9]), --[a-z-]+=')
for line in helptext.splitlines():
@@ -270,7 +269,7 @@ def appendfile(args):
postinst_pns = []
selectpn = None
- for targetpath, pnlist in recipes.iteritems():
+ for targetpath, pnlist in recipes.items():
for pn in pnlist:
if pn.startswith('?'):
alternative_pns.append(pn[1:])
@@ -351,7 +350,7 @@ def appendsrc(args, files, rd, extralines=None):
copyfiles = {}
extralines = extralines or []
- for newfile, srcfile in files.iteritems():
+ for newfile, srcfile in files.items():
src_destdir = os.path.dirname(srcfile)
if not args.use_workdir:
if rd.getVar('S', True) == rd.getVar('STAGING_KERNEL_DIR', True):
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create.py b/import-layers/yocto-poky/scripts/lib/recipetool/create.py
index bb9fb9b04..d427d3206 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create.py
@@ -24,7 +24,7 @@ import re
import json
import logging
import scriptutils
-import urlparse
+from urllib.parse import urlparse, urldefrag, urlsplit
import hashlib
logger = logging.getLogger('recipetool')
@@ -61,8 +61,8 @@ class RecipeHandler(object):
libpaths = list(set([base_libdir, libdir]))
libname_re = re.compile('^lib(.+)\.so.*$')
pkglibmap = {}
- for lib, item in shlib_providers.iteritems():
- for path, pkg in item.iteritems():
+ for lib, item in shlib_providers.items():
+ for path, pkg in item.items():
if path in libpaths:
res = libname_re.match(lib)
if res:
@@ -74,7 +74,7 @@ class RecipeHandler(object):
# Now turn it into a library->recipe mapping
pkgdata_dir = d.getVar('PKGDATA_DIR', True)
- for libname, pkg in pkglibmap.iteritems():
+ for libname, pkg in pkglibmap.items():
try:
with open(os.path.join(pkgdata_dir, 'runtime', pkg)) as f:
for line in f:
@@ -167,7 +167,7 @@ class RecipeHandler(object):
unmappedpc = []
pcdeps = list(set(pcdeps))
for pcdep in pcdeps:
- if isinstance(pcdep, basestring):
+ if isinstance(pcdep, str):
recipe = recipemap.get(pcdep, None)
if recipe:
deps.append(recipe)
@@ -256,30 +256,56 @@ def validate_pv(pv):
def determine_from_filename(srcfile):
"""Determine name and version from a filename"""
- part = ''
+ if is_package(srcfile):
+ # Force getting the value from the package metadata
+ return None, None
+
if '.tar.' in srcfile:
- namepart = srcfile.split('.tar.')[0].lower()
+ namepart = srcfile.split('.tar.')[0]
else:
- namepart = os.path.splitext(srcfile)[0].lower()
- splitval = namepart.rsplit('_', 1)
+ namepart = os.path.splitext(srcfile)[0]
+ namepart = namepart.lower().replace('_', '-')
+ if namepart.endswith('.src'):
+ namepart = namepart[:-4]
+ if namepart.endswith('.orig'):
+ namepart = namepart[:-5]
+ splitval = namepart.split('-')
+ logger.debug('determine_from_filename: split name %s into: %s' % (srcfile, splitval))
+
+ ver_re = re.compile('^v?[0-9]')
+
+ pv = None
+ pn = None
if len(splitval) == 1:
- splitval = namepart.rsplit('-', 1)
- pn = splitval[0].replace('_', '-')
- if len(splitval) > 1:
- if splitval[1][0] in '0123456789':
- pv = splitval[1]
+ # Try to split the version out if there is no separator (or a .)
+ res = re.match('^([^0-9]+)([0-9.]+.*)$', namepart)
+ if res:
+ if len(res.group(1)) > 1 and len(res.group(2)) > 1:
+ pn = res.group(1).rstrip('.')
+ pv = res.group(2)
else:
- pn = '-'.join(splitval).replace('_', '-')
- pv = None
+ pn = namepart
else:
- pv = None
+ if splitval[-1] in ['source', 'src']:
+ splitval.pop()
+ if len(splitval) > 2 and re.match('^(alpha|beta|stable|release|rc[0-9]|pre[0-9]|p[0-9]|[0-9]{8})', splitval[-1]) and ver_re.match(splitval[-2]):
+ pv = '-'.join(splitval[-2:])
+ if pv.endswith('-release'):
+ pv = pv[:-8]
+ splitval = splitval[:-2]
+ elif ver_re.match(splitval[-1]):
+ pv = splitval.pop()
+ pn = '-'.join(splitval)
+ if pv and pv.startswith('v'):
+ pv = pv[1:]
+ logger.debug('determine_from_filename: name = "%s" version = "%s"' % (pn, pv))
return (pn, pv)
def determine_from_url(srcuri):
"""Determine name and version from a URL"""
pn = None
pv = None
- parseres = urlparse.urlparse(srcuri.lower().split(';', 1)[0])
+ parseres = urlparse(srcuri.lower().split(';', 1)[0])
if parseres.path:
if 'github.com' in parseres.netloc:
res = re.search(r'.*/(.*?)/archive/(.*)-final\.(tar|zip)', parseres.path)
@@ -310,43 +336,66 @@ def supports_srcrev(uri):
# odd interactions with the urldata cache which lead to errors
localdata.setVar('SRCREV', '${AUTOREV}')
bb.data.update_data(localdata)
- fetcher = bb.fetch2.Fetch([uri], localdata)
- urldata = fetcher.ud
- for u in urldata:
- if urldata[u].method.supports_srcrev():
+ try:
+ fetcher = bb.fetch2.Fetch([uri], localdata)
+ urldata = fetcher.ud
+ for u in urldata:
+ if urldata[u].method.supports_srcrev():
+ return True
+ except bb.fetch2.FetchError as e:
+ logger.debug('FetchError in supports_srcrev: %s' % str(e))
+ # Fall back to basic check
+ if uri.startswith(('git://', 'gitsm://')):
return True
return False
def reformat_git_uri(uri):
'''Convert any http[s]://....git URI into git://...;protocol=http[s]'''
checkuri = uri.split(';', 1)[0]
- if checkuri.endswith('.git') or '/git/' in checkuri:
- res = re.match('(https?)://([^;]+(\.git)?)(;.*)?$', uri)
+ if checkuri.endswith('.git') or '/git/' in checkuri or re.match('https?://github.com/[^/]+/[^/]+/?$', checkuri):
+ res = re.match('(http|https|ssh)://([^;]+(\.git)?)(;.*)?$', uri)
if res:
# Need to switch the URI around so that the git fetcher is used
return 'git://%s;protocol=%s%s' % (res.group(2), res.group(1), res.group(4) or '')
+ elif '@' in checkuri:
+ # Catch e.g. git@git.example.com:repo.git
+ return 'git://%s;protocol=ssh' % checkuri.replace(':', '/', 1)
return uri
+def is_package(url):
+ '''Check if a URL points to a package'''
+ checkurl = url.split(';', 1)[0]
+ if checkurl.endswith(('.deb', '.ipk', '.rpm', '.srpm')):
+ return True
+ return False
+
def create_recipe(args):
import bb.process
import tempfile
import shutil
+ import oe.recipeutils
pkgarch = ""
if args.machine:
pkgarch = "${MACHINE_ARCH}"
+ extravalues = {}
checksums = (None, None)
tempsrc = ''
+ source = args.source
srcsubdir = ''
srcrev = '${AUTOREV}'
- if '://' in args.source:
+
+ if os.path.isfile(source):
+ source = 'file://%s' % os.path.abspath(source)
+
+ if scriptutils.is_src_url(source):
# Fetch a URL
- fetchuri = reformat_git_uri(urlparse.urldefrag(args.source)[0])
+ fetchuri = reformat_git_uri(urldefrag(source)[0])
if args.binary:
# Assume the archive contains the directory structure verbatim
# so we need to extract to a subdirectory
- fetchuri += ';subdir=%s' % os.path.splitext(os.path.basename(urlparse.urlsplit(fetchuri).path))[0]
+ fetchuri += ';subdir=${BP}'
srcuri = fetchuri
rev_re = re.compile(';rev=([^;]+)')
res = rev_re.search(srcuri)
@@ -357,10 +406,7 @@ def create_recipe(args):
srctree = tempsrc
if fetchuri.startswith('npm://'):
# Check if npm is available
- npm = bb.utils.which(tinfoil.config_data.getVar('PATH', True), 'npm')
- if not npm:
- logger.error('npm:// URL requested but npm is not available - you need to either build nodejs-native or install npm using your package manager')
- sys.exit(1)
+ check_npm(tinfoil.config_data)
logger.info('Fetching %s...' % srcuri)
try:
checksums = scriptutils.fetch_uri(tinfoil.config_data, fetchuri, srctree, srcrev)
@@ -377,19 +423,50 @@ def create_recipe(args):
srcsubdir = dirlist[0]
srctree = os.path.join(srctree, srcsubdir)
else:
- with open(singleitem, 'r') as f:
+ with open(singleitem, 'r', errors='surrogateescape') as f:
if '<html' in f.read(100).lower():
logger.error('Fetching "%s" returned a single HTML page - check the URL is correct and functional' % fetchuri)
sys.exit(1)
+ if os.path.exists(os.path.join(srctree, '.gitmodules')) and srcuri.startswith('git://'):
+ srcuri = 'gitsm://' + srcuri[6:]
+ logger.info('Fetching submodules...')
+ bb.process.run('git submodule update --init --recursive', cwd=srctree)
+
+ if is_package(fetchuri):
+ tmpfdir = tempfile.mkdtemp(prefix='recipetool-')
+ try:
+ pkgfile = None
+ try:
+ fileuri = fetchuri + ';unpack=0'
+ scriptutils.fetch_uri(tinfoil.config_data, fileuri, tmpfdir, srcrev)
+ for root, _, files in os.walk(tmpfdir):
+ for f in files:
+ pkgfile = os.path.join(root, f)
+ break
+ except bb.fetch2.BBFetchException as e:
+ logger.warn('Second fetch to get metadata failed: %s' % str(e).rstrip())
+
+ if pkgfile:
+ if pkgfile.endswith(('.deb', '.ipk')):
+ stdout, _ = bb.process.run('ar x %s control.tar.gz' % pkgfile, cwd=tmpfdir)
+ stdout, _ = bb.process.run('tar xf control.tar.gz ./control', cwd=tmpfdir)
+ values = convert_debian(tmpfdir)
+ extravalues.update(values)
+ elif pkgfile.endswith(('.rpm', '.srpm')):
+ stdout, _ = bb.process.run('rpm -qp --xml %s > pkginfo.xml' % pkgfile, cwd=tmpfdir)
+ values = convert_rpm_xml(os.path.join(tmpfdir, 'pkginfo.xml'))
+ extravalues.update(values)
+ finally:
+ shutil.rmtree(tmpfdir)
else:
# Assume we're pointing to an existing source tree
if args.extract_to:
logger.error('--extract-to cannot be specified if source is a directory')
sys.exit(1)
- if not os.path.isdir(args.source):
- logger.error('Invalid source directory %s' % args.source)
+ if not os.path.isdir(source):
+ logger.error('Invalid source directory %s' % source)
sys.exit(1)
- srctree = args.source
+ srctree = source
srcuri = ''
if os.path.exists(os.path.join(srctree, '.git')):
# Try to get upstream repo location from origin remote
@@ -401,7 +478,7 @@ def create_recipe(args):
for line in stdout.splitlines():
splitline = line.split()
if len(splitline) > 1:
- if splitline[0] == 'origin' and '://' in splitline[1]:
+ if splitline[0] == 'origin' and scriptutils.is_src_url(splitline[1]):
srcuri = reformat_git_uri(splitline[1])
srcsubdir = 'git'
break
@@ -429,37 +506,12 @@ def create_recipe(args):
lines_before.append('# Recipe created by %s' % os.path.basename(sys.argv[0]))
lines_before.append('# This is the basis of a recipe and may need further editing in order to be fully functional.')
lines_before.append('# (Feel free to remove these comments when editing.)')
- lines_before.append('#')
-
- licvalues = guess_license(srctree_use)
- lic_files_chksum = []
- if licvalues:
- licenses = []
- for licvalue in licvalues:
- if not licvalue[0] in licenses:
- licenses.append(licvalue[0])
- lic_files_chksum.append('file://%s;md5=%s' % (licvalue[1], licvalue[2]))
- lines_before.append('# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is')
- lines_before.append('# your responsibility to verify that the values are complete and correct.')
- if len(licvalues) > 1:
- lines_before.append('#')
- lines_before.append('# NOTE: multiple licenses have been detected; if that is correct you should separate')
- lines_before.append('# these in the LICENSE value using & if the multiple licenses all apply, or | if there')
- lines_before.append('# is a choice between the multiple licenses. If in doubt, check the accompanying')
- lines_before.append('# documentation to determine which situation is applicable.')
- else:
- lines_before.append('# Unable to find any files that looked like license statements. Check the accompanying')
- lines_before.append('# documentation and source headers and set LICENSE and LIC_FILES_CHKSUM accordingly.')
- lines_before.append('#')
- lines_before.append('# NOTE: LICENSE is being set to "CLOSED" to allow you to at least start building - if')
- lines_before.append('# this is not accurate with respect to the licensing of the software being built (it')
- lines_before.append('# will not be in most cases) you must specify the correct value before using this')
- lines_before.append('# recipe for anything other than initial testing/development!')
- licenses = ['CLOSED']
- lines_before.append('LICENSE = "%s"' % ' '.join(licenses))
- lines_before.append('LIC_FILES_CHKSUM = "%s"' % ' \\\n '.join(lic_files_chksum))
+ # We need a blank line here so that patch_recipe_lines can rewind before the LICENSE comments
lines_before.append('')
+ handled = []
+ licvalues = handle_license_vars(srctree_use, lines_before, handled, extravalues, tinfoil.config_data)
+
classes = []
# FIXME This is kind of a hack, we probably ought to be using bitbake to do this
@@ -515,10 +567,16 @@ def create_recipe(args):
lines_before.append('')
lines_before.append('# Modify these as desired')
lines_before.append('PV = "%s+git${SRCPV}"' % (realpv or '1.0'))
+ if not args.autorev and srcrev == '${AUTOREV}':
+ if os.path.exists(os.path.join(srctree, '.git')):
+ (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
+ srcrev = stdout.rstrip()
lines_before.append('SRCREV = "%s"' % srcrev)
lines_before.append('')
- if srcsubdir:
+ if srcsubdir and not args.binary:
+ # (for binary packages we explicitly specify subdir= when fetching to
+ # match the default value of S, so we don't need to set it in that case)
lines_before.append('S = "${WORKDIR}/%s"' % srcsubdir)
lines_before.append('')
@@ -549,40 +607,36 @@ def create_recipe(args):
handlers = [item[0] for item in handlers]
# Apply the handlers
- handled = []
- handled.append(('license', licvalues))
-
if args.binary:
classes.append('bin_package')
handled.append('buildsystem')
- extravalues = {}
for handler in handlers:
handler.process(srctree_use, classes, lines_before, lines_after, handled, extravalues)
extrafiles = extravalues.pop('extrafiles', {})
+ extra_pn = extravalues.pop('PN', None)
+ extra_pv = extravalues.pop('PV', None)
- if not realpv:
- realpv = extravalues.get('PV', None)
- if realpv:
- if not validate_pv(realpv):
- realpv = None
- else:
- realpv = realpv.lower().split()[0]
- if '_' in realpv:
- realpv = realpv.replace('_', '-')
- if not pn:
- pn = extravalues.get('PN', None)
- if pn:
- if pn.startswith('GNU '):
- pn = pn[4:]
- if ' ' in pn:
- # Probably a descriptive identifier rather than a proper name
- pn = None
- else:
- pn = pn.lower()
- if '_' in pn:
- pn = pn.replace('_', '-')
+ if extra_pv and not realpv:
+ realpv = extra_pv
+ if not validate_pv(realpv):
+ realpv = None
+ else:
+ realpv = realpv.lower().split()[0]
+ if '_' in realpv:
+ realpv = realpv.replace('_', '-')
+ if extra_pn and not pn:
+ pn = extra_pn
+ if pn.startswith('GNU '):
+ pn = pn[4:]
+ if ' ' in pn:
+ # Probably a descriptive identifier rather than a proper name
+ pn = None
+ else:
+ pn = pn.lower()
+ if '_' in pn:
+ pn = pn.replace('_', '-')
if not outfile:
if not pn:
@@ -590,8 +644,11 @@ def create_recipe(args):
# devtool looks for this specific exit code, so don't change it
sys.exit(15)
else:
- if srcuri and srcuri.startswith(('git://', 'hg://', 'svn://')):
- outfile = '%s_%s.bb' % (pn, srcuri.split(':', 1)[0])
+ if srcuri and srcuri.startswith(('gitsm://', 'git://', 'hg://', 'svn://')):
+ suffix = srcuri.split(':', 1)[0]
+ if suffix == 'gitsm':
+ suffix = 'git'
+ outfile = '%s_%s.bb' % (pn, suffix)
elif realpv:
outfile = '%s_%s.bb' % (pn, realpv)
else:
@@ -610,7 +667,7 @@ def create_recipe(args):
else:
extraoutdir = os.path.join(os.path.dirname(outfile), pn)
bb.utils.mkdirhier(extraoutdir)
- for destfn, extrafile in extrafiles.iteritems():
+ for destfn, extrafile in extrafiles.items():
shutil.move(extrafile, os.path.join(extraoutdir, destfn))
lines = lines_before
@@ -662,6 +719,12 @@ def create_recipe(args):
outlines.append('')
outlines.extend(lines_after)
+ if extravalues:
+ if 'LICENSE' in extravalues and not licvalues:
+ # Don't blow away 'CLOSED' value that comments say we set
+ del extravalues['LICENSE']
+ _, outlines = oe.recipeutils.patch_recipe_lines(outlines, extravalues, trailing_newline=False)
+
if args.extract_to:
scriptutils.git_convert_standalone_clone(srctree)
if os.path.isdir(args.extract_to):
@@ -679,14 +742,72 @@ def create_recipe(args):
sys.stdout.write('\n'.join(outlines) + '\n')
else:
with open(outfile, 'w') as f:
- f.write('\n'.join(outlines) + '\n')
+ lastline = None
+ for line in outlines:
+ if not lastline and not line:
+ # Skip extra blank lines
+ continue
+ f.write('%s\n' % line)
+ lastline = line
logger.info('Recipe %s has been created; further editing may be required to make it fully functional' % outfile)
if tempsrc:
- shutil.rmtree(tempsrc)
+ if args.keep_temp:
+ logger.info('Preserving temporary directory %s' % tempsrc)
+ else:
+ shutil.rmtree(tempsrc)
return 0
+def handle_license_vars(srctree, lines_before, handled, extravalues, d):
+ licvalues = guess_license(srctree, d)
+ lic_files_chksum = []
+ lic_unknown = []
+ if licvalues:
+ licenses = []
+ for licvalue in licvalues:
+ if not licvalue[0] in licenses:
+ licenses.append(licvalue[0])
+ lic_files_chksum.append('file://%s;md5=%s' % (licvalue[1], licvalue[2]))
+ if licvalue[0] == 'Unknown':
+ lic_unknown.append(licvalue[1])
+ lines_before.append('# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is')
+ lines_before.append('# your responsibility to verify that the values are complete and correct.')
+ if len(licvalues) > 1:
+ lines_before.append('#')
+ lines_before.append('# NOTE: multiple licenses have been detected; if that is correct you should separate')
+ lines_before.append('# these in the LICENSE value using & if the multiple licenses all apply, or | if there')
+ lines_before.append('# is a choice between the multiple licenses. If in doubt, check the accompanying')
+ lines_before.append('# documentation to determine which situation is applicable.')
+ if lic_unknown:
+ lines_before.append('#')
+ lines_before.append('# The following license files were not able to be identified and are')
+ lines_before.append('# represented as "Unknown" below, you will need to check them yourself:')
+ for licfile in lic_unknown:
+ lines_before.append('# %s' % licfile)
+ lines_before.append('#')
+ else:
+ lines_before.append('# Unable to find any files that looked like license statements. Check the accompanying')
+ lines_before.append('# documentation and source headers and set LICENSE and LIC_FILES_CHKSUM accordingly.')
+ lines_before.append('#')
+ lines_before.append('# NOTE: LICENSE is being set to "CLOSED" to allow you to at least start building - if')
+ lines_before.append('# this is not accurate with respect to the licensing of the software being built (it')
+ lines_before.append('# will not be in most cases) you must specify the correct value before using this')
+ lines_before.append('# recipe for anything other than initial testing/development!')
+ licenses = ['CLOSED']
+ pkg_license = extravalues.pop('LICENSE', None)
+ if pkg_license:
+ if licenses == ['Unknown']:
+ lines_before.append('# NOTE: The following LICENSE value was determined from the original package metadata')
+ licenses = [pkg_license]
+ else:
+ lines_before.append('# NOTE: Original package metadata indicates license is: %s' % pkg_license)
+ lines_before.append('LICENSE = "%s"' % ' '.join(licenses))
+ lines_before.append('LIC_FILES_CHKSUM = "%s"' % ' \\\n '.join(lic_files_chksum))
+ lines_before.append('')
+ handled.append(('license', licvalues))
+ return licvalues
+
def get_license_md5sums(d, static_only=False):
import bb.utils
md5sums = {}
@@ -751,7 +872,7 @@ def crunch_license(licfile):
# Note: these are carefully constructed!
license_title_re = re.compile('^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$')
- license_statement_re = re.compile('^This (project|software) is( free software)? released under the .{1,10} [Ll]icen[sc]e:?$')
+ license_statement_re = re.compile('^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$')
copyright_re = re.compile('^(#+)? *Copyright .*$')
crunched_md5sums = {}
@@ -781,7 +902,7 @@ def crunch_license(licfile):
# https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.LGPLv3
crunched_md5sums['2ebfb3bb49b9a48a075cc1425e7f4129'] = 'LGPLv3'
lictext = []
- with open(licfile, 'r') as f:
+ with open(licfile, 'r', errors='surrogateescape') as f:
for line in f:
# Drop opening statements
if copyright_re.match(line):
@@ -792,14 +913,14 @@ def crunch_license(licfile):
continue
# Squash spaces, and replace smart quotes, double quotes
# and backticks with single quotes
- line = oe.utils.squashspaces(line.strip()).decode("utf-8")
+ line = oe.utils.squashspaces(line.strip())
line = line.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\u201c","'").replace(u"\u201d", "'").replace('"', '\'').replace('`', '\'')
if line:
lictext.append(line)
m = hashlib.md5()
try:
- m.update(' '.join(lictext))
+ m.update(' '.join(lictext).encode('utf-8'))
md5val = m.hexdigest()
except UnicodeEncodeError:
md5val = None
@@ -807,9 +928,9 @@ def crunch_license(licfile):
license = crunched_md5sums.get(md5val, None)
return license, md5val, lictext
-def guess_license(srctree):
+def guess_license(srctree, d):
import bb
- md5sums = get_license_md5sums(tinfoil.config_data)
+ md5sums = get_license_md5sums(d)
licenses = []
licspecs = ['*LICEN[CS]E*', 'COPYING*', '*[Ll]icense*', 'LEGAL*', '[Ll]egal*', '*GPL*', 'README.lic*', 'COPYRIGHT*', '[Cc]opyright*']
@@ -842,7 +963,7 @@ def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=None, pn
"""
pkglicenses = {pn: []}
for license, licpath, _ in licvalues:
- for pkgname, pkgpath in packages.iteritems():
+ for pkgname, pkgpath in packages.items():
if licpath.startswith(pkgpath + '/'):
if pkgname in pkglicenses:
pkglicenses[pkgname].append(license)
@@ -854,7 +975,7 @@ def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=None, pn
pkglicenses[pn].append(license)
outlicenses = {}
for pkgname in packages:
- license = ' '.join(list(set(pkglicenses.get(pkgname, ['Unknown']))))
+ license = ' '.join(list(set(pkglicenses.get(pkgname, ['Unknown'])))) or 'Unknown'
if license == 'Unknown' and pkgname in fallback_licenses:
license = fallback_licenses[pkgname]
outlines.append('LICENSE_%s = "%s"' % (pkgname, license))
@@ -869,7 +990,7 @@ def read_pkgconfig_provides(d):
for line in f:
pkgmap[os.path.basename(line.rstrip())] = os.path.splitext(os.path.basename(fn))[0]
recipemap = {}
- for pc, pkg in pkgmap.iteritems():
+ for pc, pkg in pkgmap.items():
pkgdatafile = os.path.join(pkgdatadir, 'runtime', pkg)
if os.path.exists(pkgdatafile):
with open(pkgdatafile, 'r') as f:
@@ -878,73 +999,84 @@ def read_pkgconfig_provides(d):
recipemap[pc] = line.split(':', 1)[1].strip()
return recipemap
-def convert_pkginfo(pkginfofile):
- values = {}
- with open(pkginfofile, 'r') as f:
- indesc = False
- for line in f:
- if indesc:
- if line.strip():
- values['DESCRIPTION'] += ' ' + line.strip()
- else:
- indesc = False
- else:
- splitline = line.split(': ', 1)
- key = line[0]
- value = line[1]
- if key == 'LICENSE':
- for dep in value.split(','):
- dep = dep.split()[0]
- mapped = depmap.get(dep, '')
- if mapped:
- depends.append(mapped)
- elif key == 'License':
- values['LICENSE'] = value
- elif key == 'Summary':
- values['SUMMARY'] = value
- elif key == 'Description':
- values['DESCRIPTION'] = value
- indesc = True
- return values
-
def convert_debian(debpath):
+ value_map = {'Package': 'PN',
+ 'Version': 'PV',
+ 'Section': 'SECTION',
+ 'License': 'LICENSE',
+ 'Homepage': 'HOMEPAGE'}
+
# FIXME extend this mapping - perhaps use distro_alias.inc?
depmap = {'libz-dev': 'zlib'}
values = {}
depends = []
- with open(os.path.join(debpath, 'control')) as f:
+ with open(os.path.join(debpath, 'control'), 'r', errors='surrogateescape') as f:
indesc = False
for line in f:
if indesc:
- if line.strip():
+ if line.startswith(' '):
if line.startswith(' This package contains'):
indesc = False
else:
- values['DESCRIPTION'] += ' ' + line.strip()
+ if 'DESCRIPTION' in values:
+ values['DESCRIPTION'] += ' ' + line.strip()
+ else:
+ values['DESCRIPTION'] = line.strip()
else:
indesc = False
- else:
+ if not indesc:
splitline = line.split(':', 1)
- key = line[0]
- value = line[1]
+ if len(splitline) < 2:
+ continue
+ key = splitline[0]
+ value = splitline[1].strip()
if key == 'Build-Depends':
for dep in value.split(','):
dep = dep.split()[0]
mapped = depmap.get(dep, '')
if mapped:
depends.append(mapped)
- elif key == 'Section':
- values['SECTION'] = value
elif key == 'Description':
values['SUMMARY'] = value
indesc = True
+ else:
+ varname = value_map.get(key, None)
+ if varname:
+ values[varname] = value
- if depends:
- values['DEPENDS'] = ' '.join(depends)
+ #if depends:
+ # values['DEPENDS'] = ' '.join(depends)
return values
+def convert_rpm_xml(xmlfile):
+ '''Converts the output from rpm -qp --xml to a set of variable values'''
+ import xml.etree.ElementTree as ElementTree
+ rpmtag_map = {'Name': 'PN',
+ 'Version': 'PV',
+ 'Summary': 'SUMMARY',
+ 'Description': 'DESCRIPTION',
+ 'License': 'LICENSE',
+ 'Url': 'HOMEPAGE'}
+
+ values = {}
+ tree = ElementTree.parse(xmlfile)
+ root = tree.getroot()
+ for child in root:
+ if child.tag == 'rpmTag':
+ name = child.attrib.get('name', None)
+ if name:
+ varname = rpmtag_map.get(name, None)
+ if varname:
+ values[varname] = child[0].text
+ return values
+
+
+def check_npm(d):
+ if not os.path.exists(os.path.join(d.getVar('STAGING_BINDIR_NATIVE', True), 'npm')):
+ logger.error('npm required to process specified source, but npm is not available - you need to build nodejs-native first')
+ sys.exit(14)
def register_commands(subparsers):
parser_create = subparsers.add_parser('create',
@@ -959,5 +1091,7 @@ def register_commands(subparsers):
parser_create.add_argument('-b', '--binary', help='Treat the source tree as something that should be installed verbatim (no compilation, same directory structure)', action='store_true')
parser_create.add_argument('--also-native', help='Also add native variant (i.e. support building recipe for the build host as well as the target machine)', action='store_true')
parser_create.add_argument('--src-subdir', help='Specify subdirectory within source tree to use', metavar='SUBDIR')
+ parser_create.add_argument('-a', '--autorev', help='When fetching from a git repository, set SRCREV in the recipe to a floating revision instead of fixed', action="store_true")
+ parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)')
parser_create.set_defaults(func=create_recipe)
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys.py b/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys.py
index f84ec3dc6..e914e53aa 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys.py
@@ -44,7 +44,7 @@ class CmakeRecipeHandler(RecipeHandler):
classes.append('cmake')
values = CmakeRecipeHandler.extract_cmake_deps(lines_before, srctree, extravalues)
classes.extend(values.pop('inherit', '').split())
- for var, value in values.iteritems():
+ for var, value in values.items():
lines_before.append('%s = "%s"' % (var, value))
lines_after.append('# Specify any options you want to pass to cmake using EXTRA_OECMAKE:')
lines_after.append('EXTRA_OECMAKE = ""')
@@ -159,7 +159,7 @@ class CmakeRecipeHandler(RecipeHandler):
def find_cmake_package(pkg):
RecipeHandler.load_devel_filemap(tinfoil.config_data)
- for fn, pn in RecipeHandler.recipecmakefilemap.iteritems():
+ for fn, pn in RecipeHandler.recipecmakefilemap.items():
splitname = fn.split('/')
if len(splitname) > 1:
if splitname[0].lower().startswith(pkg.lower()):
@@ -173,7 +173,7 @@ class CmakeRecipeHandler(RecipeHandler):
def parse_cmake_file(fn, paths=None):
searchpaths = (paths or []) + [os.path.dirname(fn)]
logger.debug('Parsing file %s' % fn)
- with open(fn, 'r') as f:
+ with open(fn, 'r', errors='surrogateescape') as f:
for line in f:
line = line.strip()
for handler in handlers:
@@ -348,13 +348,13 @@ class AutotoolsRecipeHandler(RecipeHandler):
autoconf = True
values = AutotoolsRecipeHandler.extract_autotools_deps(lines_before, srctree, extravalues)
classes.extend(values.pop('inherit', '').split())
- for var, value in values.iteritems():
+ for var, value in values.items():
lines_before.append('%s = "%s"' % (var, value))
else:
conffile = RecipeHandler.checkfiles(srctree, ['configure'])
if conffile:
# Check if this is just a pre-generated autoconf configure script
- with open(conffile[0], 'r') as f:
+ with open(conffile[0], 'r', errors='surrogateescape') as f:
for i in range(1, 10):
if 'Generated by GNU Autoconf' in f.readline():
autoconf = True
@@ -364,7 +364,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
# Last resort
conffile = RecipeHandler.checkfiles(srctree, ['configure'])
if conffile:
- with open(conffile[0], 'r') as f:
+ with open(conffile[0], 'r', errors='surrogateescape') as f:
for line in f:
line = line.strip()
if line.startswith('VERSION=') or line.startswith('PACKAGE_VERSION='):
@@ -442,11 +442,12 @@ class AutotoolsRecipeHandler(RecipeHandler):
ac_init_re = re.compile('AC_INIT\(\s*([^,]+),\s*([^,]+)[,)].*')
am_init_re = re.compile('AM_INIT_AUTOMAKE\(\s*([^,]+),\s*([^,]+)[,)].*')
define_re = re.compile('\s*(m4_)?define\(\s*([^,]+),\s*([^,]+)\)')
+ version_re = re.compile('([0-9.]+)')
defines = {}
def subst_defines(value):
newvalue = value
- for define, defval in defines.iteritems():
+ for define, defval in defines.items():
newvalue = newvalue.replace(define, defval)
if newvalue != value:
return subst_defines(newvalue)
@@ -488,6 +489,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
for handler in handlers:
if handler.process_macro(srctree, keyword, value, process_value, libdeps, pcdeps, deps, outlines, inherits, values):
return
+ logger.debug('Found keyword %s with value "%s"' % (keyword, value))
if keyword == 'PKG_CHECK_MODULES':
res = pkg_re.search(value)
if res:
@@ -569,10 +571,21 @@ class AutotoolsRecipeHandler(RecipeHandler):
deps.append('sqlite3')
elif keyword == 'AX_LIB_TAGLIB':
deps.append('taglib')
- elif keyword == 'AX_PKG_SWIG':
- deps.append('swig')
+ elif keyword in ['AX_PKG_SWIG', 'AC_PROG_SWIG']:
+ deps.append('swig-native')
elif keyword == 'AX_PROG_XSLTPROC':
deps.append('libxslt-native')
+ elif keyword in ['AC_PYTHON_DEVEL', 'AX_PYTHON_DEVEL', 'AM_PATH_PYTHON']:
+ pythonclass = 'pythonnative'
+ res = version_re.search(value)
+ if res:
+ if res.group(1).startswith('3'):
+ pythonclass = 'python3native'
+ # Avoid replacing python3native with pythonnative
+ if not pythonclass in inherits and not 'python3native' in inherits:
+ if 'pythonnative' in inherits:
+ inherits.remove('pythonnative')
+ inherits.append(pythonclass)
elif keyword == 'AX_WITH_CURSES':
deps.append('ncurses')
elif keyword == 'AX_PATH_BDB':
@@ -638,7 +651,11 @@ class AutotoolsRecipeHandler(RecipeHandler):
'AX_LIB_SQLITE3',
'AX_LIB_TAGLIB',
'AX_PKG_SWIG',
+ 'AC_PROG_SWIG',
'AX_PROG_XSLTPROC',
+ 'AC_PYTHON_DEVEL',
+ 'AX_PYTHON_DEVEL',
+ 'AM_PATH_PYTHON',
'AX_WITH_CURSES',
'AX_PATH_BDB',
'AX_PATH_LIB_PCRE',
@@ -654,7 +671,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
nesting = 0
in_keyword = ''
partial = ''
- with open(srcfile, 'r') as f:
+ with open(srcfile, 'r', errors='surrogateescape') as f:
for line in f:
if in_keyword:
partial += ' ' + line.strip()
@@ -682,7 +699,7 @@ class AutotoolsRecipeHandler(RecipeHandler):
process_macro(in_keyword, partial)
if extravalues:
- for k,v in extravalues.items():
+ for k,v in list(extravalues.items()):
if v:
if v.startswith('$') or v.startswith('@') or v.startswith('%'):
del extravalues[k]
@@ -737,7 +754,7 @@ class MakefileRecipeHandler(RecipeHandler):
if 'buildsystem' in handled:
return False
- makefile = RecipeHandler.checkfiles(srctree, ['Makefile'])
+ makefile = RecipeHandler.checkfiles(srctree, ['Makefile', 'makefile', 'GNUmakefile'])
if makefile:
lines_after.append('# NOTE: this is a Makefile-only piece of software, so we cannot generate much of the')
lines_after.append('# recipe automatically - you will need to examine the Makefile yourself and ensure')
@@ -753,7 +770,7 @@ class MakefileRecipeHandler(RecipeHandler):
if scanfile and os.path.exists(scanfile):
values = AutotoolsRecipeHandler.extract_autotools_deps(lines_before, srctree, acfile=scanfile)
classes.extend(values.pop('inherit', '').split())
- for var, value in values.iteritems():
+ for var, value in values.items():
if var == 'DEPENDS':
lines_before.append('# NOTE: some of these dependencies may be optional, check the Makefile and/or upstream documentation')
lines_before.append('%s = "%s"' % (var, value))
@@ -780,7 +797,7 @@ class MakefileRecipeHandler(RecipeHandler):
if installtarget:
func.append('# This is a guess; additional arguments may be required')
makeargs = ''
- with open(makefile[0], 'r') as f:
+ with open(makefile[0], 'r', errors='surrogateescape') as f:
for i in range(1, 100):
if 'DESTDIR' in f.readline():
makeargs += " 'DESTDIR=${D}'"
@@ -809,7 +826,7 @@ class VersionFileRecipeHandler(RecipeHandler):
version = None
for fileitem in filelist:
linecount = 0
- with open(fileitem, 'r') as f:
+ with open(fileitem, 'r', errors='surrogateescape') as f:
for line in f:
line = line.rstrip().strip('"\'')
linecount += 1
@@ -830,22 +847,35 @@ class SpecFileRecipeHandler(RecipeHandler):
if 'PV' in extravalues and 'PN' in extravalues:
return
filelist = RecipeHandler.checkfiles(srctree, ['*.spec'], recursive=True)
- pn = None
- pv = None
+ valuemap = {'Name': 'PN',
+ 'Version': 'PV',
+ 'Summary': 'SUMMARY',
+ 'Url': 'HOMEPAGE',
+ 'License': 'LICENSE'}
+ foundvalues = {}
for fileitem in filelist:
linecount = 0
- with open(fileitem, 'r') as f:
+ with open(fileitem, 'r', errors='surrogateescape') as f:
for line in f:
- if line.startswith('Name:') and not pn:
- pn = line.split(':')[1].strip()
- if line.startswith('Version:') and not pv:
- pv = line.split(':')[1].strip()
- if pv or pn:
- if pv and not 'PV' in extravalues and validate_pv(pv):
- extravalues['PV'] = pv
- if pn and not 'PN' in extravalues:
- extravalues['PN'] = pn
- break
+ for value, varname in valuemap.items():
+ if line.startswith(value + ':') and not varname in foundvalues:
+ foundvalues[varname] = line.split(':', 1)[1].strip()
+ break
+ if len(foundvalues) == len(valuemap):
+ break
+ if 'PV' in foundvalues:
+ if not validate_pv(foundvalues['PV']):
+ del foundvalues['PV']
+ license = foundvalues.pop('LICENSE', None)
+ if license:
+ liccomment = '# NOTE: spec file indicates the license may be "%s"' % license
+ for i, line in enumerate(lines_before):
+ if line.startswith('LICENSE ='):
+ lines_before.insert(i, liccomment)
+ break
+ else:
+ lines_before.append(liccomment)
+ extravalues.update(foundvalues)
def register_recipe_handlers(handlers):
# Set priorities with some gaps so that other plugins can insert
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys_python.py b/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys_python.py
index c3823307a..e41d81a31 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys_python.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create_buildsys_python.py
@@ -61,8 +61,6 @@ class PythonRecipeHandler(RecipeHandler):
}
# PN/PV are already set by recipetool core & desc can be extremely long
excluded_fields = [
- 'Name',
- 'Version',
'Description',
]
setup_parse_map = {
@@ -88,8 +86,11 @@ class PythonRecipeHandler(RecipeHandler):
]
setuparg_multi_line_values = ['Description']
replacements = [
+ ('License', r' +$', ''),
+ ('License', r'^ +', ''),
('License', r' ', '-'),
- ('License', r'-License$', ''),
+ ('License', r'^GNU-', ''),
+ ('License', r'-[Ll]icen[cs]e(,?-[Vv]ersion)?', ''),
('License', r'^UNKNOWN$', ''),
# Remove currently unhandled version numbers from these variables
@@ -218,6 +219,9 @@ class PythonRecipeHandler(RecipeHandler):
else:
info = self.get_setup_args_info(setupscript)
+ # Grab the license value before applying replacements
+ license_str = info.get('License', '').strip()
+
self.apply_info_replacements(info)
if uses_setuptools:
@@ -225,63 +229,53 @@ class PythonRecipeHandler(RecipeHandler):
else:
classes.append('distutils')
+ if license_str:
+ for i, line in enumerate(lines_before):
+ if line.startswith('LICENSE = '):
+ lines_before.insert(i, '# NOTE: License in setup.py/PKGINFO is: %s' % license_str)
+ break
+
if 'Classifier' in info:
+ existing_licenses = info.get('License', '')
licenses = []
for classifier in info['Classifier']:
if classifier in self.classifier_license_map:
license = self.classifier_license_map[classifier]
+ if license == 'Apache' and 'Apache-2.0' in existing_licenses:
+ license = 'Apache-2.0'
+ elif license == 'GPL':
+ if 'GPL-2.0' in existing_licenses or 'GPLv2' in existing_licenses:
+ license = 'GPL-2.0'
+ elif 'GPL-3.0' in existing_licenses or 'GPLv3' in existing_licenses:
+ license = 'GPL-3.0'
+ elif license == 'LGPL':
+ if 'LGPL-2.1' in existing_licenses or 'LGPLv2.1' in existing_licenses:
+ license = 'LGPL-2.1'
+ elif 'LGPL-2.0' in existing_licenses or 'LGPLv2' in existing_licenses:
+ license = 'LGPL-2.0'
+ elif 'LGPL-3.0' in existing_licenses or 'LGPLv3' in existing_licenses:
+ license = 'LGPL-3.0'
licenses.append(license)
if licenses:
info['License'] = ' & '.join(licenses)
-
# Map PKG-INFO & setup.py fields to bitbake variables
- bbinfo = {}
- for field, values in info.iteritems():
+ for field, values in info.items():
if field in self.excluded_fields:
continue
if field not in self.bbvar_map:
continue
- if isinstance(values, basestring):
+ if isinstance(values, str):
value = values
else:
value = ' '.join(str(v) for v in values if v)
bbvar = self.bbvar_map[field]
- if bbvar not in bbinfo and value:
- bbinfo[bbvar] = value
-
- comment_lic_line = None
- for pos, line in enumerate(list(lines_before)):
- if line.startswith('#') and 'LICENSE' in line:
- comment_lic_line = pos
- elif line.startswith('LICENSE =') and 'LICENSE' in bbinfo:
- if line in ('LICENSE = "Unknown"', 'LICENSE = "CLOSED"'):
- lines_before[pos] = 'LICENSE = "{}"'.format(bbinfo['LICENSE'])
- if line == 'LICENSE = "CLOSED"' and comment_lic_line:
- lines_before[comment_lic_line:pos] = [
- '# WARNING: the following LICENSE value is a best guess - it is your',
- '# responsibility to verify that the value is complete and correct.'
- ]
- del bbinfo['LICENSE']
-
- src_uri_line = None
- for pos, line in enumerate(lines_before):
- if line.startswith('SRC_URI ='):
- src_uri_line = pos
-
- if bbinfo:
- mdinfo = ['']
- for k in sorted(bbinfo):
- v = bbinfo[k]
- mdinfo.append('{} = "{}"'.format(k, v))
- if src_uri_line:
- lines_before[src_uri_line-1:src_uri_line-1] = mdinfo
- else:
- lines_before.extend(mdinfo)
+ if bbvar not in extravalues and value:
+ extravalues[bbvar] = value
mapped_deps, unmapped_deps = self.scan_setup_python_deps(srctree, setup_info, setup_non_literals)
@@ -294,8 +288,8 @@ class PythonRecipeHandler(RecipeHandler):
lines_after.append('# The upstream names may not correspond exactly to bitbake package names.')
lines_after.append('#')
lines_after.append('# Uncomment this line to enable all the optional features.')
- lines_after.append('#PACKAGECONFIG ?= "{}"'.format(' '.join(k.lower() for k in extras_req.iterkeys())))
- for feature, feature_reqs in extras_req.iteritems():
+ lines_after.append('#PACKAGECONFIG ?= "{}"'.format(' '.join(k.lower() for k in extras_req)))
+ for feature, feature_reqs in extras_req.items():
unmapped_deps.difference_update(feature_reqs)
feature_req_deps = ('python-' + r.replace('.', '-').lower() for r in sorted(feature_reqs))
@@ -361,7 +355,7 @@ class PythonRecipeHandler(RecipeHandler):
# Naive mapping of setup() arguments to PKG-INFO field names
for d in [info, non_literals]:
- for key, value in d.items():
+ for key, value in list(d.items()):
new_key = _map(key)
if new_key != key:
del d[key]
@@ -436,14 +430,14 @@ class PythonRecipeHandler(RecipeHandler):
return value
value = info[variable]
- if isinstance(value, basestring):
+ if isinstance(value, str):
new_value = replace_value(search, replace, value)
if new_value is None:
del info[variable]
elif new_value != value:
info[variable] = new_value
- elif hasattr(value, 'iteritems'):
- for dkey, dvalue in value.iteritems():
+ elif hasattr(value, 'items'):
+ for dkey, dvalue in list(value.items()):
new_list = []
for pos, a_value in enumerate(dvalue):
new_value = replace_value(search, replace, a_value)
@@ -504,8 +498,10 @@ class PythonRecipeHandler(RecipeHandler):
for dep in scanned_deps:
mapped = provided_packages.get(dep)
if mapped:
+ logger.debug('Mapped %s to %s' % (dep, mapped))
mapped_deps.add(mapped)
else:
+ logger.debug('Could not map %s' % dep)
unmapped_deps.add(dep)
return mapped_deps, unmapped_deps
@@ -516,7 +512,7 @@ class PythonRecipeHandler(RecipeHandler):
except (OSError, subprocess.CalledProcessError):
pass
else:
- for line in dep_output.splitlines():
+ for line in dep_output.decode('utf-8').splitlines():
line = line.rstrip()
dep, filename = line.split('\t', 1)
if filename.endswith('/setup.py'):
@@ -558,7 +554,7 @@ class PythonRecipeHandler(RecipeHandler):
else:
continue
- for fn in files_info.iterkeys():
+ for fn in files_info:
for suffix in suffixes:
if fn.endswith(suffix):
break
@@ -566,6 +562,8 @@ class PythonRecipeHandler(RecipeHandler):
continue
if fn.startswith(dynload_dir + os.sep):
+ if '/.debug/' in fn:
+ continue
base = os.path.basename(fn)
provided = base.split('.', 1)[0]
packages[provided] = os.path.basename(pkgdatafile)
@@ -608,7 +606,7 @@ def gather_setup_info(fileobj):
visitor.visit(parsed)
non_literals, extensions = {}, []
- for key, value in visitor.keywords.items():
+ for key, value in list(visitor.keywords.items()):
if key == 'ext_modules':
if isinstance(value, list):
for ext in value:
@@ -640,7 +638,7 @@ class SetupScriptVisitor(ast.NodeVisitor):
def visit_setup(self, node):
call = LiteralAstTransform().visit(node)
self.keywords = call.keywords
- for k, v in self.keywords.iteritems():
+ for k, v in self.keywords.items():
if has_non_literals(v):
self.non_literals.append(k)
@@ -706,10 +704,10 @@ class LiteralAstTransform(ast.NodeTransformer):
def has_non_literals(value):
if isinstance(value, ast.AST):
return True
- elif isinstance(value, basestring):
+ elif isinstance(value, str):
return False
- elif hasattr(value, 'itervalues'):
- return any(has_non_literals(v) for v in value.itervalues())
+ elif hasattr(value, 'values'):
+ return any(has_non_literals(v) for v in value.values())
elif hasattr(value, '__iter__'):
return any(has_non_literals(v) for v in value)
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create_kernel.py b/import-layers/yocto-poky/scripts/lib/recipetool/create_kernel.py
index c6e86bd2b..7dac59fd0 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create_kernel.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create_kernel.py
@@ -59,7 +59,7 @@ class KernelRecipeHandler(RecipeHandler):
kpatchlevel = -1
ksublevel = -1
kextraversion = ''
- with open(makefile, 'r') as f:
+ with open(makefile, 'r', errors='surrogateescape') as f:
for i, line in enumerate(f):
if i > 10:
break
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create_kmod.py b/import-layers/yocto-poky/scripts/lib/recipetool/create_kmod.py
index fe39edb28..7cf188db2 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create_kmod.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create_kmod.py
@@ -53,7 +53,7 @@ class KernelModuleRecipeHandler(RecipeHandler):
break
else:
continue
- with open(cfile, 'r') as f:
+ with open(cfile, 'r', errors='surrogateescape') as f:
for line in f:
if module_inc_re.match(line.strip()):
is_module = True
@@ -73,7 +73,7 @@ class KernelModuleRecipeHandler(RecipeHandler):
in_install = False
in_compile = False
install_target = None
- with open(makefile, 'r') as f:
+ with open(makefile, 'r', errors='surrogateescape') as f:
for line in f:
if line.startswith('install:'):
if not install_lines:
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/create_npm.py b/import-layers/yocto-poky/scripts/lib/recipetool/create_npm.py
index b3ffcdbc5..7bb844cb0 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/create_npm.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/create_npm.py
@@ -21,7 +21,7 @@ import subprocess
import tempfile
import shutil
import json
-from recipetool.create import RecipeHandler, split_pkg_licenses
+from recipetool.create import RecipeHandler, split_pkg_licenses, handle_license_vars, check_npm
logger = logging.getLogger('recipetool')
@@ -45,7 +45,7 @@ class NpmRecipeHandler(RecipeHandler):
license = data['license']
if isinstance(license, dict):
license = license.get('type', None)
- return None
+ return license
def _shrinkwrap(self, srctree, localfilesdir, extravalues, lines_before):
try:
@@ -83,6 +83,66 @@ class NpmRecipeHandler(RecipeHandler):
extravalues['extrafiles']['lockdown.json'] = tmpfile
lines_before.append('NPM_LOCKDOWN := "${THISDIR}/${PN}/lockdown.json"')
+ def _handle_dependencies(self, d, deps, lines_before, srctree):
+ import scriptutils
+ # If this isn't a single module we need to get the dependencies
+ # and add them to SRC_URI
+ def varfunc(varname, origvalue, op, newlines):
+ if varname == 'SRC_URI':
+ if not origvalue.startswith('npm://'):
+ src_uri = origvalue.split()
+ changed = False
+ for dep, depdata in deps.items():
+ version = self.get_node_version(dep, depdata, d)
+ if version:
+ url = 'npm://registry.npmjs.org;name=%s;version=%s;subdir=node_modules/%s' % (dep, version, dep)
+ scriptutils.fetch_uri(d, url, srctree)
+ src_uri.append(url)
+ changed = True
+ if changed:
+ return src_uri, None, -1, True
+ return origvalue, None, 0, True
+ updated, newlines = bb.utils.edit_metadata(lines_before, ['SRC_URI'], varfunc)
+ if updated:
+ del lines_before[:]
+ for line in newlines:
+ # Hack to avoid newlines that edit_metadata inserts
+ if line.endswith('\n'):
+ line = line[:-1]
+ lines_before.append(line)
+ return updated
+
+ def _replace_license_vars(self, srctree, lines_before, handled, extravalues, d):
+ for item in handled:
+ if isinstance(item, tuple):
+ if item[0] == 'license':
+ del item
+ break
+
+ calledvars = []
+ def varfunc(varname, origvalue, op, newlines):
+ if varname in ['LICENSE', 'LIC_FILES_CHKSUM']:
+ for i, e in enumerate(reversed(newlines)):
+ if not e.startswith('#'):
+ stop = i
+ while stop > 0:
+ newlines.pop()
+ stop -= 1
+ break
+ calledvars.append(varname)
+ if len(calledvars) > 1:
+ # The second time around, put the new license text in
+ insertpos = len(newlines)
+ handle_license_vars(srctree, newlines, handled, extravalues, d)
+ return None, None, 0, True
+ return origvalue, None, 0, True
+ updated, newlines = bb.utils.edit_metadata(lines_before, ['LICENSE', 'LIC_FILES_CHKSUM'], varfunc)
+ if updated:
+ del lines_before[:]
+ lines_before.extend(newlines)
+ else:
+ raise Exception('Did not find license variables')
+
def process(self, srctree, classes, lines_before, lines_after, handled, extravalues):
import bb.utils
import oe
@@ -92,11 +152,13 @@ class NpmRecipeHandler(RecipeHandler):
return False
def read_package_json(fn):
- with open(fn, 'r') as f:
+ with open(fn, 'r', errors='surrogateescape') as f:
return json.loads(f.read())
files = RecipeHandler.checkfiles(srctree, ['package.json'])
if files:
+ check_npm(tinfoil.config_data)
+
data = read_package_json(files[0])
if 'name' in data and 'version' in data:
extravalues['PN'] = data['name']
@@ -104,9 +166,15 @@ class NpmRecipeHandler(RecipeHandler):
classes.append('npm')
handled.append('buildsystem')
if 'description' in data:
- lines_before.append('SUMMARY = "%s"' % data['description'])
+ extravalues['SUMMARY'] = data['description']
if 'homepage' in data:
- lines_before.append('HOMEPAGE = "%s"' % data['homepage'])
+ extravalues['HOMEPAGE'] = data['homepage']
+
+ deps = data.get('dependencies', {})
+ updated = self._handle_dependencies(tinfoil.config_data, deps, lines_before, srctree)
+ if updated:
+ # We need to redo the license stuff
+ self._replace_license_vars(srctree, lines_before, handled, extravalues, tinfoil.config_data)
# Shrinkwrap
localfilesdir = tempfile.mkdtemp(prefix='recipetool-npm')
@@ -128,7 +196,7 @@ class NpmRecipeHandler(RecipeHandler):
license = self._handle_license(data)
if license:
licenses['${PN}'] = license
- for pkgname, pkgitem in npmpackages.iteritems():
+ for pkgname, pkgitem in npmpackages.items():
_, pdata = pkgitem
license = self._handle_license(pdata)
if license:
@@ -136,7 +204,7 @@ class NpmRecipeHandler(RecipeHandler):
# Now write out the package-specific license values
# We need to strip out the json data dicts for this since split_pkg_licenses
# isn't expecting it
- packages = OrderedDict((x,y[0]) for x,y in npmpackages.iteritems())
+ packages = OrderedDict((x,y[0]) for x,y in npmpackages.items())
packages['${PN}'] = ''
pkglicenses = split_pkg_licenses(licvalues, packages, lines_after, licenses)
all_licenses = list(set([item for pkglicense in pkglicenses.values() for item in pkglicense]))
@@ -148,9 +216,52 @@ class NpmRecipeHandler(RecipeHandler):
lines_before[i] = 'LICENSE = "%s"' % ' & '.join(all_licenses)
break
+ # Need to move S setting after inherit npm
+ for i, line in enumerate(lines_before):
+ if line.startswith('S ='):
+ lines_before.pop(i)
+ lines_after.insert(0, '# Must be set after inherit npm since that itself sets S')
+ lines_after.insert(1, line)
+ break
+
return True
return False
+ # FIXME this is duplicated from lib/bb/fetch2/npm.py
+ def _parse_view(self, output):
+ '''
+ Parse the output of npm view --json; the last JSON result
+ is assumed to be the one that we're interested in.
+ '''
+ pdata = None
+ outdeps = {}
+ datalines = []
+ bracelevel = 0
+ for line in output.splitlines():
+ if bracelevel:
+ datalines.append(line)
+ elif '{' in line:
+ datalines = []
+ datalines.append(line)
+ bracelevel = bracelevel + line.count('{') - line.count('}')
+ if datalines:
+ pdata = json.loads('\n'.join(datalines))
+ return pdata
+
+ # FIXME this is effectively duplicated from lib/bb/fetch2/npm.py
+ # (split out from _getdependencies())
+ def get_node_version(self, pkg, version, d):
+ import bb.fetch2
+ pkgfullname = pkg
+ if version != '*' and not '/' in version:
+ pkgfullname += "@'%s'" % version
+ logger.debug(2, "Calling getdeps on %s" % pkg)
+ runenv = dict(os.environ, PATH=d.getVar('PATH', True))
+ fetchcmd = "npm view %s --json" % pkgfullname
+ output, _ = bb.process.run(fetchcmd, stderr=subprocess.STDOUT, env=runenv, shell=True)
+ data = self._parse_view(output)
+ return data.get('version', None)
+
def register_recipe_handlers(handlers):
handlers.append((NpmRecipeHandler(), 60))
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/newappend.py b/import-layers/yocto-poky/scripts/lib/recipetool/newappend.py
index bdf0693ec..fbdd7bcef 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/newappend.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/newappend.py
@@ -39,16 +39,6 @@ def tinfoil_init(instance):
tinfoil = instance
-def _provide_to_pn(cooker, provide):
- """Get the name of the preferred recipe for the specified provide."""
- import bb.providers
- filenames = cooker.recipecache.providers[provide]
- eligible, foundUnique = bb.providers.filterProviders(filenames, provide, cooker.expanded_data, cooker.recipecache)
- filename = eligible[0]
- pn = cooker.recipecache.pkg_fn[filename]
- return pn
-
-
def _get_recipe_file(cooker, pn):
import oe.recipeutils
recipefile = oe.recipeutils.pn_to_recipe(cooker, pn)
@@ -70,8 +60,7 @@ def layer(layerpath):
def newappend(args):
import oe.recipeutils
- pn = _provide_to_pn(tinfoil.cooker, args.target)
- recipe_path = _get_recipe_file(tinfoil.cooker, pn)
+ recipe_path = _get_recipe_file(tinfoil.cooker, args.target)
rd = tinfoil.config_data.createCopy()
rd.setVar('FILE', recipe_path)
@@ -81,7 +70,7 @@ def newappend(args):
return 1
if not path_ok:
- logger.warn('Unable to determine correct subdirectory path for bbappend file - check that what %s adds to BBFILES also matches .bbappend files. Using %s for now, but until you fix this the bbappend will not be applied.', os.path.join(destlayerdir, 'conf', 'layer.conf'), os.path.dirname(appendpath))
+ logger.warn('Unable to determine correct subdirectory path for bbappend file - check that what %s adds to BBFILES also matches .bbappend files. Using %s for now, but until you fix this the bbappend will not be applied.', os.path.join(args.destlayer, 'conf', 'layer.conf'), os.path.dirname(append_path))
layerdirs = [os.path.abspath(layerdir) for layerdir in rd.getVar('BBLAYERS', True).split()]
if not os.path.abspath(args.destlayer) in layerdirs:
diff --git a/import-layers/yocto-poky/scripts/lib/recipetool/setvar.py b/import-layers/yocto-poky/scripts/lib/recipetool/setvar.py
index 657d2b6a7..85701c06a 100644
--- a/import-layers/yocto-poky/scripts/lib/recipetool/setvar.py
+++ b/import-layers/yocto-poky/scripts/lib/recipetool/setvar.py
@@ -51,7 +51,7 @@ def setvar(args):
if args.recipe_only:
patches = [oe.recipeutils.patch_recipe_file(args.recipefile, varvalues, patch=args.patch)]
else:
- rd = oe.recipeutils.parse_recipe(args.recipefile, None, tinfoil.config_data)
+ rd = oe.recipeutils.parse_recipe(tinfoil.cooker, args.recipefile, None)
if not rd:
return 1
patches = oe.recipeutils.patch_recipe(rd, args.recipefile, varvalues, patch=args.patch)
diff --git a/import-layers/yocto-poky/scripts/lib/scriptutils.py b/import-layers/yocto-poky/scripts/lib/scriptutils.py
index aef19d3d7..5ccc02796 100644
--- a/import-layers/yocto-poky/scripts/lib/scriptutils.py
+++ b/import-layers/yocto-poky/scripts/lib/scriptutils.py
@@ -103,7 +103,7 @@ def fetch_uri(d, uri, destdir, srcrev=None):
return ret
def run_editor(fn):
- if isinstance(fn, basestring):
+ if isinstance(fn, str):
params = '"%s"' % fn
else:
params = ''
@@ -116,3 +116,16 @@ def run_editor(fn):
except OSError as exc:
logger.error("Execution of editor '%s' failed: %s", editor, exc)
return 1
+
+def is_src_url(param):
+ """
+ Check if a parameter is a URL and return True if so
+ NOTE: be careful about changing this as it will influence how devtool/recipetool command line handling works
+ """
+ if not param:
+ return False
+ elif '://' in param:
+ return True
+ elif param.startswith('git@') or ('@' in param and param.endswith('.git')):
+ return True
+ return False
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks
index ea01cf375..8d7d8de6e 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-gpt.wks
@@ -6,5 +6,5 @@
part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 1024
part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
-bootloader --ptable gpt --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0"
+bootloader --ptable gpt --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0 console=ttyS0,115200n8"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-multi-rootfs.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-multi-rootfs.wks
index 8a81f8f51..f61d941d6 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-multi-rootfs.wks
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk-multi-rootfs.wks
@@ -19,5 +19,5 @@ part /boot --source bootimg-pcbios --ondisk sda --label boot --active --align 10
part / --source rootfs --rootfs-dir=rootfs1 --ondisk sda --fstype=ext4 --label platform --align 1024
part /rescue --source rootfs --rootfs-dir=rootfs2 --ondisk sda --fstype=ext4 --label secondary --align 1024
-bootloader --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0"
+bootloader --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0 console=ttyS0,115200n8"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk.wks
index 6db74a78b..8c8e06b02 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk.wks
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/directdisk.wks
@@ -4,5 +4,5 @@
include common.wks.inc
-bootloader --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0"
+bootloader --timeout=0 --append="rootwait rootfstype=ext4 video=vesafb vga=0x318 console=tty0 console=ttyS0,115200n8"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkefidisk.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkefidisk.wks
index 696e94e3d..9f534fe18 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkefidisk.wks
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkefidisk.wks
@@ -4,8 +4,8 @@
part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024
-part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024
+part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
part swap --ondisk sda --size 44 --label swap1 --fstype=swap
-bootloader --timeout=10 --append="rootwait rootfstype=ext4 console=ttyPCH0,115200 console=tty0 vmalloc=256MB snd-hda-intel.enable_msi=0"
+bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 console=ttyS0,115200 console=tty0"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkgummidisk.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkgummidisk.wks
index 66a22f60b..f3ae09099 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkgummidisk.wks
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/mkgummidisk.wks
@@ -8,4 +8,4 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024
part swap --ondisk sda --size 44 --label swap1 --fstype=swap
-bootloader --timeout=10 --append="rootwait rootfstype=ext4 console=ttyPCH0,115200 console=tty0 vmalloc=256MB snd-hda-intel.enable_msi=0"
+bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4 console=ttyS0,115200 console=tty0"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/canned-wks/systemd-bootdisk.wks b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/systemd-bootdisk.wks
new file mode 100644
index 000000000..b90002356
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/wic/canned-wks/systemd-bootdisk.wks
@@ -0,0 +1,11 @@
+# short-description: Create an EFI disk image with systemd-boot
+# long-description: Creates a partitioned EFI disk image that the user
+# can directly dd to boot media. The selected bootloader is systemd-boot.
+
+part /boot --source bootimg-efi --sourceparams="loader=systemd-boot" --ondisk sda --label msdos --active --align 1024
+
+part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024
+
+part swap --ondisk sda --size 44 --label swap1 --fstype=swap
+
+bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4 console=ttyS0,115200 console=tty0"
diff --git a/import-layers/yocto-poky/scripts/lib/wic/conf.py b/import-layers/yocto-poky/scripts/lib/wic/conf.py
index f7d56d046..070ec3096 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/conf.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/conf.py
@@ -70,7 +70,7 @@ class ConfigMgr(object):
self.create = {}
# initialize the values with defaults
- for sec, vals in self.DEFAULTS.iteritems():
+ for sec, vals in self.DEFAULTS.items():
setattr(self, sec, vals)
def __set_ksconf(self, ksconf):
diff --git a/import-layers/yocto-poky/scripts/lib/wic/creator.py b/import-layers/yocto-poky/scripts/lib/wic/creator.py
index 523129728..8f7d1503f 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/creator.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/creator.py
@@ -24,7 +24,7 @@ from wic.conf import configmgr
from wic.plugin import pluginmgr
-class Creator(object):
+class Creator():
"""${name}: create an image
Usage:
@@ -41,7 +41,7 @@ class Creator(object):
# get cmds from pluginmgr
# mix-in do_subcmd interface
- for subcmd, klass in pluginmgr.get_plugins('imager').iteritems():
+ for subcmd, klass in pluginmgr.get_plugins('imager').items():
if not hasattr(klass, 'do_create'):
msger.warning("Unsupported subcmd: %s" % subcmd)
continue
@@ -69,6 +69,7 @@ class Creator(object):
optparser.add_option('', '--tmpfs', action='store_true', dest='enabletmpfs',
help='Setup tmpdir as tmpfs to accelerate, experimental'
' feature, use it if you have more than 4G memory')
+ optparser.add_option('', '--bmap', action='store_true', help='generate .bmap')
return optparser
def postoptparse(self, options):
diff --git a/import-layers/yocto-poky/scripts/lib/wic/engine.py b/import-layers/yocto-poky/scripts/lib/wic/engine.py
index 76b93e82f..5b104631c 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/engine.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/engine.py
@@ -44,7 +44,7 @@ def verify_build_env():
Returns True if it is, false otherwise
"""
if not os.environ.get("BUILDDIR"):
- print "BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)"
+ print("BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)")
sys.exit(1)
return True
@@ -107,7 +107,7 @@ def list_canned_images(scripts_path):
desc = line[idx + len("short-description:"):].strip()
break
basename = os.path.splitext(fname)[0]
- print " %s\t\t%s" % (basename.ljust(30), desc)
+ print(" %s\t\t%s" % (basename.ljust(30), desc))
def list_canned_image_help(scripts_path, fullpath):
@@ -120,15 +120,15 @@ def list_canned_image_help(scripts_path, fullpath):
if not found:
idx = line.find("long-description:")
if idx != -1:
- print
- print line[idx + len("long-description:"):].strip()
+ print()
+ print(line[idx + len("long-description:"):].strip())
found = True
continue
if not line.strip():
break
idx = line.find("#")
if idx != -1:
- print line[idx + len("#:"):].rstrip()
+ print(line[idx + len("#:"):].rstrip())
else:
break
@@ -140,12 +140,12 @@ def list_source_plugins():
plugins = pluginmgr.get_source_plugins()
for plugin in plugins:
- print " %s" % plugin
+ print(" %s" % plugin)
def wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
native_sysroot, scripts_path, image_output_dir,
- compressor, debug):
+ compressor, bmap, debug):
"""Create image
wks_file - user-defined OE kickstart file
@@ -156,6 +156,7 @@ def wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
scripts_path - absolute path to /scripts dir
image_output_dir - dirname to create for image
compressor - compressor utility to compress the image
+ bmap - enable generation of .bmap
Normally, the values for the build artifacts values are determined
by 'wic -e' from the output of the 'bitbake -e' command given an
@@ -178,7 +179,7 @@ def wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
try:
oe_builddir = os.environ["BUILDDIR"]
except KeyError:
- print "BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)"
+ print("BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)")
sys.exit(1)
if debug:
@@ -186,10 +187,14 @@ def wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
crobj = creator.Creator()
- crobj.main(["direct", native_sysroot, kernel_dir, bootimg_dir, rootfs_dir,
- wks_file, image_output_dir, oe_builddir, compressor or ""])
+ cmdline = ["direct", native_sysroot, kernel_dir, bootimg_dir, rootfs_dir,
+ wks_file, image_output_dir, oe_builddir, compressor or ""]
+ if bmap:
+ cmdline.append('--bmap')
- print "\nThe image(s) were created using OE kickstart file:\n %s" % wks_file
+ crobj.main(cmdline)
+
+ print("\nThe image(s) were created using OE kickstart file:\n %s" % wks_file)
def wic_list(args, scripts_path):
@@ -209,10 +214,10 @@ def wic_list(args, scripts_path):
wks_file = args[0]
fullpath = find_canned_image(scripts_path, wks_file)
if not fullpath:
- print "No image named %s found, exiting. "\
+ print("No image named %s found, exiting. "\
"(Use 'wic list images' to list available images, or "\
"specify a fully-qualified OE kickstart (.wks) "\
- "filename)\n" % wks_file
+ "filename)\n" % wks_file)
sys.exit(1)
list_canned_image_help(scripts_path, fullpath)
return True
diff --git a/import-layers/yocto-poky/scripts/lib/wic/filemap.py b/import-layers/yocto-poky/scripts/lib/wic/filemap.py
new file mode 100644
index 000000000..f3240ba8d
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/lib/wic/filemap.py
@@ -0,0 +1,561 @@
+# Copyright (c) 2012 Intel, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2,
+# as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+"""
+This module implements python implements a way to get file block. Two methods
+are supported - the FIEMAP ioctl and the 'SEEK_HOLE / SEEK_DATA' features of
+the file seek syscall. The former is implemented by the 'FilemapFiemap' class,
+the latter is implemented by the 'FilemapSeek' class. Both classes provide the
+same API. The 'filemap' function automatically selects which class can be used
+and returns an instance of the class.
+"""
+
+# Disable the following pylint recommendations:
+# * Too many instance attributes (R0902)
+# pylint: disable=R0902
+
+import os
+import struct
+import array
+import fcntl
+import tempfile
+import logging
+
+def get_block_size(file_obj):
+ """
+ Returns block size for file object 'file_obj'. Errors are indicated by the
+ 'IOError' exception.
+ """
+
+ from fcntl import ioctl
+ import struct
+
+ # Get the block size of the host file-system for the image file by calling
+ # the FIGETBSZ ioctl (number 2).
+ binary_data = ioctl(file_obj, 2, struct.pack('I', 0))
+ return struct.unpack('I', binary_data)[0]
+
+class ErrorNotSupp(Exception):
+ """
+ An exception of this type is raised when the 'FIEMAP' or 'SEEK_HOLE' feature
+ is not supported either by the kernel or the file-system.
+ """
+ pass
+
+class Error(Exception):
+ """A class for all the other exceptions raised by this module."""
+ pass
+
+
+class _FilemapBase(object):
+ """
+ This is a base class for a couple of other classes in this module. This
+ class simply performs the common parts of the initialization process: opens
+ the image file, gets its size, etc. The 'log' parameter is the logger object
+ to use for printing messages.
+ """
+
+ def __init__(self, image, log=None):
+ """
+ Initialize a class instance. The 'image' argument is full path to the
+ file or file object to operate on.
+ """
+
+ self._log = log
+ if self._log is None:
+ self._log = logging.getLogger(__name__)
+
+ self._f_image_needs_close = False
+
+ if hasattr(image, "fileno"):
+ self._f_image = image
+ self._image_path = image.name
+ else:
+ self._image_path = image
+ self._open_image_file()
+
+ try:
+ self.image_size = os.fstat(self._f_image.fileno()).st_size
+ except IOError as err:
+ raise Error("cannot get information about file '%s': %s"
+ % (self._f_image.name, err))
+
+ try:
+ self.block_size = get_block_size(self._f_image)
+ except IOError as err:
+ raise Error("cannot get block size for '%s': %s"
+ % (self._image_path, err))
+
+ self.blocks_cnt = self.image_size + self.block_size - 1
+ self.blocks_cnt //= self.block_size
+
+ try:
+ self._f_image.flush()
+ except IOError as err:
+ raise Error("cannot flush image file '%s': %s"
+ % (self._image_path, err))
+
+ try:
+ os.fsync(self._f_image.fileno()),
+ except OSError as err:
+ raise Error("cannot synchronize image file '%s': %s "
+ % (self._image_path, err.strerror))
+
+ self._log.debug("opened image \"%s\"" % self._image_path)
+ self._log.debug("block size %d, blocks count %d, image size %d"
+ % (self.block_size, self.blocks_cnt, self.image_size))
+
+ def __del__(self):
+ """The class destructor which just closes the image file."""
+ if self._f_image_needs_close:
+ self._f_image.close()
+
+ def _open_image_file(self):
+ """Open the image file."""
+ try:
+ self._f_image = open(self._image_path, 'rb')
+ except IOError as err:
+ raise Error("cannot open image file '%s': %s"
+ % (self._image_path, err))
+
+ self._f_image_needs_close = True
+
+ def block_is_mapped(self, block): # pylint: disable=W0613,R0201
+ """
+ This method has has to be implemented by child classes. It returns
+ 'True' if block number 'block' of the image file is mapped and 'False'
+ otherwise.
+ """
+
+ raise Error("the method is not implemented")
+
+ def block_is_unmapped(self, block): # pylint: disable=W0613,R0201
+ """
+ This method has has to be implemented by child classes. It returns
+ 'True' if block number 'block' of the image file is not mapped (hole)
+ and 'False' otherwise.
+ """
+
+ raise Error("the method is not implemented")
+
+ def get_mapped_ranges(self, start, count): # pylint: disable=W0613,R0201
+ """
+ This method has has to be implemented by child classes. This is a
+ generator which yields ranges of mapped blocks in the file. The ranges
+ are tuples of 2 elements: [first, last], where 'first' is the first
+ mapped block and 'last' is the last mapped block.
+
+ The ranges are yielded for the area of the file of size 'count' blocks,
+ starting from block 'start'.
+ """
+
+ raise Error("the method is not implemented")
+
+ def get_unmapped_ranges(self, start, count): # pylint: disable=W0613,R0201
+ """
+ This method has has to be implemented by child classes. Just like
+ 'get_mapped_ranges()', but yields unmapped block ranges instead
+ (holes).
+ """
+
+ raise Error("the method is not implemented")
+
+
+# The 'SEEK_HOLE' and 'SEEK_DATA' options of the file seek system call
+_SEEK_DATA = 3
+_SEEK_HOLE = 4
+
+def _lseek(file_obj, offset, whence):
+ """This is a helper function which invokes 'os.lseek' for file object
+ 'file_obj' and with specified 'offset' and 'whence'. The 'whence'
+ argument is supposed to be either '_SEEK_DATA' or '_SEEK_HOLE'. When
+ there is no more data or hole starting from 'offset', this function
+ returns '-1'. Otherwise the data or hole position is returned."""
+
+ try:
+ return os.lseek(file_obj.fileno(), offset, whence)
+ except OSError as err:
+ # The 'lseek' system call returns the ENXIO if there is no data or
+ # hole starting from the specified offset.
+ if err.errno == os.errno.ENXIO:
+ return -1
+ elif err.errno == os.errno.EINVAL:
+ raise ErrorNotSupp("the kernel or file-system does not support "
+ "\"SEEK_HOLE\" and \"SEEK_DATA\"")
+ else:
+ raise
+
+class FilemapSeek(_FilemapBase):
+ """
+ This class uses the 'SEEK_HOLE' and 'SEEK_DATA' to find file block mapping.
+ Unfortunately, the current implementation requires the caller to have write
+ access to the image file.
+ """
+
+ def __init__(self, image, log=None):
+ """Refer the '_FilemapBase' class for the documentation."""
+
+ # Call the base class constructor first
+ _FilemapBase.__init__(self, image, log)
+ self._log.debug("FilemapSeek: initializing")
+
+ self._probe_seek_hole()
+
+ def _probe_seek_hole(self):
+ """
+ Check whether the system implements 'SEEK_HOLE' and 'SEEK_DATA'.
+ Unfortunately, there seems to be no clean way for detecting this,
+ because often the system just fakes them by just assuming that all
+ files are fully mapped, so 'SEEK_HOLE' always returns EOF and
+ 'SEEK_DATA' always returns the requested offset.
+
+ I could not invent a better way of detecting the fake 'SEEK_HOLE'
+ implementation than just to create a temporary file in the same
+ directory where the image file resides. It would be nice to change this
+ to something better.
+ """
+
+ directory = os.path.dirname(self._image_path)
+
+ try:
+ tmp_obj = tempfile.TemporaryFile("w+", dir=directory)
+ except IOError as err:
+ raise ErrorNotSupp("cannot create a temporary in \"%s\": %s"
+ % (directory, err))
+
+ try:
+ os.ftruncate(tmp_obj.fileno(), self.block_size)
+ except OSError as err:
+ raise ErrorNotSupp("cannot truncate temporary file in \"%s\": %s"
+ % (directory, err))
+
+ offs = _lseek(tmp_obj, 0, _SEEK_HOLE)
+ if offs != 0:
+ # We are dealing with the stub 'SEEK_HOLE' implementation which
+ # always returns EOF.
+ self._log.debug("lseek(0, SEEK_HOLE) returned %d" % offs)
+ raise ErrorNotSupp("the file-system does not support "
+ "\"SEEK_HOLE\" and \"SEEK_DATA\" but only "
+ "provides a stub implementation")
+
+ tmp_obj.close()
+
+ def block_is_mapped(self, block):
+ """Refer the '_FilemapBase' class for the documentation."""
+ offs = _lseek(self._f_image, block * self.block_size, _SEEK_DATA)
+ if offs == -1:
+ result = False
+ else:
+ result = (offs // self.block_size == block)
+
+ self._log.debug("FilemapSeek: block_is_mapped(%d) returns %s"
+ % (block, result))
+ return result
+
+ def block_is_unmapped(self, block):
+ """Refer the '_FilemapBase' class for the documentation."""
+ return not self.block_is_mapped(block)
+
+ def _get_ranges(self, start, count, whence1, whence2):
+ """
+ This function implements 'get_mapped_ranges()' and
+ 'get_unmapped_ranges()' depending on what is passed in the 'whence1'
+ and 'whence2' arguments.
+ """
+
+ assert whence1 != whence2
+ end = start * self.block_size
+ limit = end + count * self.block_size
+
+ while True:
+ start = _lseek(self._f_image, end, whence1)
+ if start == -1 or start >= limit or start == self.image_size:
+ break
+
+ end = _lseek(self._f_image, start, whence2)
+ if end == -1 or end == self.image_size:
+ end = self.blocks_cnt * self.block_size
+ if end > limit:
+ end = limit
+
+ start_blk = start // self.block_size
+ end_blk = end // self.block_size - 1
+ self._log.debug("FilemapSeek: yielding range (%d, %d)"
+ % (start_blk, end_blk))
+ yield (start_blk, end_blk)
+
+ def get_mapped_ranges(self, start, count):
+ """Refer the '_FilemapBase' class for the documentation."""
+ self._log.debug("FilemapSeek: get_mapped_ranges(%d, %d(%d))"
+ % (start, count, start + count - 1))
+ return self._get_ranges(start, count, _SEEK_DATA, _SEEK_HOLE)
+
+ def get_unmapped_ranges(self, start, count):
+ """Refer the '_FilemapBase' class for the documentation."""
+ self._log.debug("FilemapSeek: get_unmapped_ranges(%d, %d(%d))"
+ % (start, count, start + count - 1))
+ return self._get_ranges(start, count, _SEEK_HOLE, _SEEK_DATA)
+
+
+# Below goes the FIEMAP ioctl implementation, which is not very readable
+# because it deals with the rather complex FIEMAP ioctl. To understand the
+# code, you need to know the FIEMAP interface, which is documented in the
+# "Documentation/filesystems/fiemap.txt" file in the Linux kernel sources.
+
+# Format string for 'struct fiemap'
+_FIEMAP_FORMAT = "=QQLLLL"
+# sizeof(struct fiemap)
+_FIEMAP_SIZE = struct.calcsize(_FIEMAP_FORMAT)
+# Format string for 'struct fiemap_extent'
+_FIEMAP_EXTENT_FORMAT = "=QQQQQLLLL"
+# sizeof(struct fiemap_extent)
+_FIEMAP_EXTENT_SIZE = struct.calcsize(_FIEMAP_EXTENT_FORMAT)
+# The FIEMAP ioctl number
+_FIEMAP_IOCTL = 0xC020660B
+# This FIEMAP ioctl flag which instructs the kernel to sync the file before
+# reading the block map
+_FIEMAP_FLAG_SYNC = 0x00000001
+# Size of the buffer for 'struct fiemap_extent' elements which will be used
+# when invoking the FIEMAP ioctl. The larger is the buffer, the less times the
+# FIEMAP ioctl will be invoked.
+_FIEMAP_BUFFER_SIZE = 256 * 1024
+
+class FilemapFiemap(_FilemapBase):
+ """
+ This class provides API to the FIEMAP ioctl. Namely, it allows to iterate
+ over all mapped blocks and over all holes.
+
+ This class synchronizes the image file every time it invokes the FIEMAP
+ ioctl in order to work-around early FIEMAP implementation kernel bugs.
+ """
+
+ def __init__(self, image, log=None):
+ """
+ Initialize a class instance. The 'image' argument is full the file
+ object to operate on.
+ """
+
+ # Call the base class constructor first
+ _FilemapBase.__init__(self, image, log)
+ self._log.debug("FilemapFiemap: initializing")
+
+ self._buf_size = _FIEMAP_BUFFER_SIZE
+
+ # Calculate how many 'struct fiemap_extent' elements fit the buffer
+ self._buf_size -= _FIEMAP_SIZE
+ self._fiemap_extent_cnt = self._buf_size // _FIEMAP_EXTENT_SIZE
+ assert self._fiemap_extent_cnt > 0
+ self._buf_size = self._fiemap_extent_cnt * _FIEMAP_EXTENT_SIZE
+ self._buf_size += _FIEMAP_SIZE
+
+ # Allocate a mutable buffer for the FIEMAP ioctl
+ self._buf = array.array('B', [0] * self._buf_size)
+
+ # Check if the FIEMAP ioctl is supported
+ self.block_is_mapped(0)
+
+ def _invoke_fiemap(self, block, count):
+ """
+ Invoke the FIEMAP ioctl for 'count' blocks of the file starting from
+ block number 'block'.
+
+ The full result of the operation is stored in 'self._buf' on exit.
+ Returns the unpacked 'struct fiemap' data structure in form of a python
+ list (just like 'struct.upack()').
+ """
+
+ if self.blocks_cnt != 0 and (block < 0 or block >= self.blocks_cnt):
+ raise Error("bad block number %d, should be within [0, %d]"
+ % (block, self.blocks_cnt))
+
+ # Initialize the 'struct fiemap' part of the buffer. We use the
+ # '_FIEMAP_FLAG_SYNC' flag in order to make sure the file is
+ # synchronized. The reason for this is that early FIEMAP
+ # implementations had many bugs related to cached dirty data, and
+ # synchronizing the file is a necessary work-around.
+ struct.pack_into(_FIEMAP_FORMAT, self._buf, 0, block * self.block_size,
+ count * self.block_size, _FIEMAP_FLAG_SYNC, 0,
+ self._fiemap_extent_cnt, 0)
+
+ try:
+ fcntl.ioctl(self._f_image, _FIEMAP_IOCTL, self._buf, 1)
+ except IOError as err:
+ # Note, the FIEMAP ioctl is supported by the Linux kernel starting
+ # from version 2.6.28 (year 2008).
+ if err.errno == os.errno.EOPNOTSUPP:
+ errstr = "FilemapFiemap: the FIEMAP ioctl is not supported " \
+ "by the file-system"
+ self._log.debug(errstr)
+ raise ErrorNotSupp(errstr)
+ if err.errno == os.errno.ENOTTY:
+ errstr = "FilemapFiemap: the FIEMAP ioctl is not supported " \
+ "by the kernel"
+ self._log.debug(errstr)
+ raise ErrorNotSupp(errstr)
+ raise Error("the FIEMAP ioctl failed for '%s': %s"
+ % (self._image_path, err))
+
+ return struct.unpack(_FIEMAP_FORMAT, self._buf[:_FIEMAP_SIZE])
+
+ def block_is_mapped(self, block):
+ """Refer the '_FilemapBase' class for the documentation."""
+ struct_fiemap = self._invoke_fiemap(block, 1)
+
+ # The 3rd element of 'struct_fiemap' is the 'fm_mapped_extents' field.
+ # If it contains zero, the block is not mapped, otherwise it is
+ # mapped.
+ result = bool(struct_fiemap[3])
+ self._log.debug("FilemapFiemap: block_is_mapped(%d) returns %s"
+ % (block, result))
+ return result
+
+ def block_is_unmapped(self, block):
+ """Refer the '_FilemapBase' class for the documentation."""
+ return not self.block_is_mapped(block)
+
+ def _unpack_fiemap_extent(self, index):
+ """
+ Unpack a 'struct fiemap_extent' structure object number 'index' from
+ the internal 'self._buf' buffer.
+ """
+
+ offset = _FIEMAP_SIZE + _FIEMAP_EXTENT_SIZE * index
+ return struct.unpack(_FIEMAP_EXTENT_FORMAT,
+ self._buf[offset : offset + _FIEMAP_EXTENT_SIZE])
+
+ def _do_get_mapped_ranges(self, start, count):
+ """
+ Implements most the functionality for the 'get_mapped_ranges()'
+ generator: invokes the FIEMAP ioctl, walks through the mapped extents
+ and yields mapped block ranges. However, the ranges may be consecutive
+ (e.g., (1, 100), (100, 200)) and 'get_mapped_ranges()' simply merges
+ them.
+ """
+
+ block = start
+ while block < start + count:
+ struct_fiemap = self._invoke_fiemap(block, count)
+
+ mapped_extents = struct_fiemap[3]
+ if mapped_extents == 0:
+ # No more mapped blocks
+ return
+
+ extent = 0
+ while extent < mapped_extents:
+ fiemap_extent = self._unpack_fiemap_extent(extent)
+
+ # Start of the extent
+ extent_start = fiemap_extent[0]
+ # Starting block number of the extent
+ extent_block = extent_start // self.block_size
+ # Length of the extent
+ extent_len = fiemap_extent[2]
+ # Count of blocks in the extent
+ extent_count = extent_len // self.block_size
+
+ # Extent length and offset have to be block-aligned
+ assert extent_start % self.block_size == 0
+ assert extent_len % self.block_size == 0
+
+ if extent_block > start + count - 1:
+ return
+
+ first = max(extent_block, block)
+ last = min(extent_block + extent_count, start + count) - 1
+ yield (first, last)
+
+ extent += 1
+
+ block = extent_block + extent_count
+
+ def get_mapped_ranges(self, start, count):
+ """Refer the '_FilemapBase' class for the documentation."""
+ self._log.debug("FilemapFiemap: get_mapped_ranges(%d, %d(%d))"
+ % (start, count, start + count - 1))
+ iterator = self._do_get_mapped_ranges(start, count)
+ first_prev, last_prev = next(iterator)
+
+ for first, last in iterator:
+ if last_prev == first - 1:
+ last_prev = last
+ else:
+ self._log.debug("FilemapFiemap: yielding range (%d, %d)"
+ % (first_prev, last_prev))
+ yield (first_prev, last_prev)
+ first_prev, last_prev = first, last
+
+ self._log.debug("FilemapFiemap: yielding range (%d, %d)"
+ % (first_prev, last_prev))
+ yield (first_prev, last_prev)
+
+ def get_unmapped_ranges(self, start, count):
+ """Refer the '_FilemapBase' class for the documentation."""
+ self._log.debug("FilemapFiemap: get_unmapped_ranges(%d, %d(%d))"
+ % (start, count, start + count - 1))
+ hole_first = start
+ for first, last in self._do_get_mapped_ranges(start, count):
+ if first > hole_first:
+ self._log.debug("FilemapFiemap: yielding range (%d, %d)"
+ % (hole_first, first - 1))
+ yield (hole_first, first - 1)
+
+ hole_first = last + 1
+
+ if hole_first < start + count:
+ self._log.debug("FilemapFiemap: yielding range (%d, %d)"
+ % (hole_first, start + count - 1))
+ yield (hole_first, start + count - 1)
+
+def filemap(image, log=None):
+ """
+ Create and return an instance of a Filemap class - 'FilemapFiemap' or
+ 'FilemapSeek', depending on what the system we run on supports. If the
+ FIEMAP ioctl is supported, an instance of the 'FilemapFiemap' class is
+ returned. Otherwise, if 'SEEK_HOLE' is supported an instance of the
+ 'FilemapSeek' class is returned. If none of these are supported, the
+ function generates an 'Error' type exception.
+ """
+
+ try:
+ return FilemapFiemap(image, log)
+ except ErrorNotSupp:
+ return FilemapSeek(image, log)
+
+def sparse_copy(src_fname, dst_fname, offset=0, skip=0):
+ """Efficiently copy sparse file to or into another file."""
+ fmap = filemap(src_fname)
+ try:
+ dst_file = open(dst_fname, 'r+b')
+ except IOError:
+ dst_file = open(dst_fname, 'wb')
+
+ for first, last in fmap.get_mapped_ranges(0, fmap.blocks_cnt):
+ start = first * fmap.block_size
+ end = (last + 1) * fmap.block_size
+
+ if start < skip < end:
+ start = skip
+
+ fmap._f_image.seek(start, os.SEEK_SET)
+ dst_file.seek(offset + start, os.SEEK_SET)
+
+ chunk_size = 1024 * 1024
+ to_read = end - start
+ read = 0
+
+ while read < to_read:
+ if read + chunk_size > to_read:
+ chunk_size = to_read - read
+ chunk = fmap._f_image.read(chunk_size)
+ dst_file.write(chunk)
+ read += chunk_size
+ dst_file.close()
diff --git a/import-layers/yocto-poky/scripts/lib/wic/help.py b/import-layers/yocto-poky/scripts/lib/wic/help.py
index 405d25a87..e5347ec4b 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/help.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/help.py
@@ -45,7 +45,7 @@ def display_help(subcommand, subcommands):
if callable(hlp):
hlp = hlp()
pager = subprocess.Popen('less', stdin=subprocess.PIPE)
- pager.communicate(hlp)
+ pager.communicate(hlp.encode('utf-8'))
return True
@@ -55,7 +55,7 @@ def wic_help(args, usage_str, subcommands):
Subcommand help dispatcher.
"""
if len(args) == 1 or not display_help(args[1], subcommands):
- print usage_str
+ print(usage_str)
def get_wic_plugins_help():
@@ -66,7 +66,7 @@ def get_wic_plugins_help():
result = wic_plugins_help
for plugin_type in PLUGIN_TYPES:
result += '\n\n%s PLUGINS\n\n' % plugin_type.upper()
- for name, plugin in pluginmgr.get_plugins(plugin_type).iteritems():
+ for name, plugin in pluginmgr.get_plugins(plugin_type).items():
result += "\n %s plugin:\n" % name
if plugin.__doc__:
result += plugin.__doc__
@@ -152,7 +152,7 @@ SYNOPSIS
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
[-r, --rootfs-dir] [-b, --bootimg-dir]
[-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs]
- [-c, --compress-with]
+ [-c, --compress-with] [-m, --bmap]
DESCRIPTION
This command creates an OpenEmbedded image based on the 'OE
@@ -221,6 +221,9 @@ DESCRIPTION
The -c option is used to specify compressor utility to compress
an image. gzip, bzip2 and xz compressors are supported.
+
+ The -m option is used to produce .bmap file for the image. This file
+ can be used to flash image using bmaptool utility.
"""
wic_list_usage = """
@@ -738,6 +741,10 @@ DESCRIPTION
in bootloader configuration before running wic. In this case .wks file can
be generated or modified to set preconfigured parition UUID using this option.
+ --system-id: This option is specific to wic. It specifies partition system id. It's useful
+ for the harware that requires non-default partition system ids. The parameter
+ in one byte long hex number either with 0x prefix or without it.
+
* bootloader
This command allows the user to specify various bootloader
diff --git a/import-layers/yocto-poky/scripts/lib/wic/imager/baseimager.py b/import-layers/yocto-poky/scripts/lib/wic/imager/baseimager.py
index 760cf8a58..1a52dd8b4 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/imager/baseimager.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/imager/baseimager.py
@@ -16,7 +16,6 @@
# with this program; if not, write to the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-from __future__ import with_statement
import os
import tempfile
import shutil
@@ -25,7 +24,7 @@ from wic import msger
from wic.utils.errors import CreatorError
from wic.utils import runner
-class BaseImageCreator(object):
+class BaseImageCreator():
"""Base class for image creation.
BaseImageCreator is the simplest creator class available; it will
@@ -68,7 +67,7 @@ class BaseImageCreator(object):
}
# update setting from createopts
- for key in createopts.keys():
+ for key in createopts:
if key in optmap:
option = optmap[key]
else:
diff --git a/import-layers/yocto-poky/scripts/lib/wic/imager/direct.py b/import-layers/yocto-poky/scripts/lib/wic/imager/direct.py
index a1b424965..edf5e5d22 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/imager/direct.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/imager/direct.py
@@ -26,20 +26,40 @@
import os
import shutil
+import uuid
from wic import msger
-from wic.utils import fs_related
from wic.utils.oe.misc import get_bitbake_var
from wic.utils.partitionedfs import Image
from wic.utils.errors import CreatorError, ImageError
from wic.imager.baseimager import BaseImageCreator
from wic.plugin import pluginmgr
-from wic.utils.oe.misc import exec_cmd
+from wic.utils.oe.misc import exec_cmd, exec_native_cmd
disk_methods = {
"do_install_disk":None,
}
+class DiskImage():
+ """
+ A Disk backed by a file.
+ """
+ def __init__(self, device, size):
+ self.size = size
+ self.device = device
+ self.created = False
+
+ def exists(self):
+ return os.path.exists(self.device)
+
+ def create(self):
+ if self.created:
+ return
+ # create sparse disk image
+ cmd = "truncate %s -s %s" % (self.device, self.size)
+ exec_cmd(cmd)
+ self.created = True
+
class DirectImageCreator(BaseImageCreator):
"""
Installs a system into a file containing a partitioned disk image.
@@ -52,7 +72,8 @@ class DirectImageCreator(BaseImageCreator):
"""
def __init__(self, oe_builddir, image_output_dir, rootfs_dir, bootimg_dir,
- kernel_dir, native_sysroot, compressor, creatoropts=None):
+ kernel_dir, native_sysroot, compressor, creatoropts=None,
+ bmap=False):
"""
Initialize a DirectImageCreator instance.
@@ -74,6 +95,7 @@ class DirectImageCreator(BaseImageCreator):
self.kernel_dir = kernel_dir
self.native_sysroot = native_sysroot
self.compressor = compressor
+ self.bmap = bmap
def __get_part_num(self, num, parts):
"""calculate the real partition number, accounting for partitions not
@@ -221,12 +243,23 @@ class DirectImageCreator(BaseImageCreator):
self.__image = Image(self.native_sysroot)
- for part in parts:
+ disk_ids = {}
+ for num, part in enumerate(parts, 1):
# as a convenience, set source to the boot partition source
# instead of forcing it to be set via bootloader --source
if not self.ks.bootloader.source and part.mountpoint == "/boot":
self.ks.bootloader.source = part.source
+ # generate parition UUIDs
+ if not part.uuid and part.use_uuid:
+ if self.ptable_format == 'gpt':
+ part.uuid = str(uuid.uuid4())
+ else: # msdos partition table
+ if part.disk not in disk_ids:
+ disk_ids[part.disk] = int.from_bytes(os.urandom(4), 'little')
+ disk_id = disk_ids[part.disk]
+ part.uuid = '%0x-%02d' % (disk_id, self.__get_part_num(num, parts))
+
fstab_path = self._write_fstab(self.rootfs_dir.get("ROOTFS_DIR"))
shutil.rmtree(self.workdir)
@@ -267,7 +300,8 @@ class DirectImageCreator(BaseImageCreator):
align=part.align,
no_table=part.no_table,
part_type=part.part_type,
- uuid=part.uuid)
+ uuid=part.uuid,
+ system_id=part.system_id)
if fstab_path:
shutil.move(fstab_path + ".orig", fstab_path)
@@ -279,9 +313,9 @@ class DirectImageCreator(BaseImageCreator):
full_path = self._full_path(self.__imgdir, disk_name, "direct")
msger.debug("Adding disk %s as %s with size %s bytes" \
% (disk_name, full_path, disk['min_size']))
- disk_obj = fs_related.DiskImage(full_path, disk['min_size'])
+ disk_obj = DiskImage(full_path, disk['min_size'])
self.__disks[disk_name] = disk_obj
- self.__image.add_disk(disk_name, disk_obj)
+ self.__image.add_disk(disk_name, disk_obj, disk_ids.get(disk_name))
self.__image.create()
@@ -313,12 +347,17 @@ class DirectImageCreator(BaseImageCreator):
self.bootimg_dir,
self.kernel_dir,
self.native_sysroot)
- # Compress the image
- if self.compressor:
- for disk_name, disk in self.__image.disks.items():
- full_path = self._full_path(self.__imgdir, disk_name, "direct")
- msger.debug("Compressing disk %s with %s" % \
- (disk_name, self.compressor))
+
+ for disk_name, disk in self.__image.disks.items():
+ full_path = self._full_path(self.__imgdir, disk_name, "direct")
+ # Generate .bmap
+ if self.bmap:
+ msger.debug("Generating bmap file for %s" % disk_name)
+ exec_native_cmd("bmaptool create %s -o %s.bmap" % (full_path, full_path),
+ self.native_sysroot)
+ # Compress the image
+ if self.compressor:
+ msger.debug("Compressing disk %s with %s" % (disk_name, self.compressor))
exec_cmd("%s %s" % (self.compressor, full_path))
def print_outimage_info(self):
@@ -375,6 +414,6 @@ class DirectImageCreator(BaseImageCreator):
if not self.__image is None:
try:
self.__image.cleanup()
- except ImageError, err:
+ except ImageError as err:
msger.warning("%s" % err)
diff --git a/import-layers/yocto-poky/scripts/lib/wic/ksparser.py b/import-layers/yocto-poky/scripts/lib/wic/ksparser.py
index 8c3f80882..0894e2b19 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/ksparser.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/ksparser.py
@@ -51,7 +51,7 @@ def sizetype(arg):
Converts size string in <num>[K|k|M|G] format into the integer value
"""
if arg.isdigit():
- return int(arg) * 1024L
+ return int(arg) * 1024
if not arg[:-1].isdigit():
raise ArgumentTypeError("Invalid size: %r" % arg)
@@ -60,9 +60,9 @@ def sizetype(arg):
if arg.endswith("k") or arg.endswith("K"):
return size
if arg.endswith("M"):
- return size * 1024L
+ return size * 1024
if arg.endswith("G"):
- return size * 1024L * 1024L
+ return size * 1024 * 1024
raise ArgumentTypeError("Invalid size: %r" % arg)
@@ -92,7 +92,25 @@ def cannedpathtype(arg):
raise ArgumentTypeError("file not found: %s" % arg)
return result
-class KickStart(object):
+def systemidtype(arg):
+ """
+ Custom type for ArgumentParser
+ Checks if the argument sutisfies system id requirements,
+ i.e. if it's one byte long integer > 0
+ """
+ error = "Invalid system type: %s. must be hex "\
+ "between 0x1 and 0xFF" % arg
+ try:
+ result = int(arg, 16)
+ except ValueError:
+ raise ArgumentTypeError(error)
+
+ if result <= 0 or result > 0xff:
+ raise ArgumentTypeError(error)
+
+ return arg
+
+class KickStart():
""""Kickstart parser implementation."""
def __init__(self, confpath):
@@ -106,10 +124,10 @@ class KickStart(object):
subparsers = parser.add_subparsers()
part = subparsers.add_parser('part')
- part.add_argument('mountpoint')
+ part.add_argument('mountpoint', nargs='?')
part.add_argument('--active', action='store_true')
part.add_argument('--align', type=int)
- part.add_argument("--extra-space", type=sizetype, default=10*1024L)
+ part.add_argument("--extra-space", type=sizetype, default=10*1024)
part.add_argument('--fsoptions', dest='fsopts')
part.add_argument('--fstype')
part.add_argument('--label')
@@ -121,6 +139,7 @@ class KickStart(object):
part.add_argument('--size', type=sizetype, default=0)
part.add_argument('--source')
part.add_argument('--sourceparams')
+ part.add_argument('--system-id', type=systemidtype)
part.add_argument('--use-uuid', action='store_true')
part.add_argument('--uuid')
diff --git a/import-layers/yocto-poky/scripts/lib/wic/msger.py b/import-layers/yocto-poky/scripts/lib/wic/msger.py
index b73755422..fb8336d94 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/msger.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/msger.py
@@ -21,18 +21,14 @@ import sys
import re
import time
-__ALL__ = ['set_mode',
- 'get_loglevel',
+__ALL__ = ['get_loglevel',
'set_loglevel',
'set_logfile',
- 'raw',
'debug',
'verbose',
'info',
'warning',
'error',
- 'ask',
- 'pause',
]
# COLORs in ANSI
@@ -70,10 +66,6 @@ def _general_print(head, color, msg=None, stream=None, level='normal'):
# skip
return
- # encode raw 'unicode' str to utf8 encoded str
- if msg and isinstance(msg, unicode):
- msg = msg.encode('utf-8', 'ignore')
-
errormsg = ''
if CATCHERR_BUFFILE_FD > 0:
size = os.lseek(CATCHERR_BUFFILE_FD, 0, os.SEEK_END)
@@ -122,9 +114,6 @@ def _color_print(head, color, msg, stream, level):
newline = True
if msg is not None:
- if isinstance(msg, unicode):
- msg = msg.encode('utf8', 'ignore')
-
stream.write('%s%s' % (head, msg))
if newline:
stream.write('\n')
@@ -159,7 +148,7 @@ def _split_msg(head, msg):
return head, msg
def get_loglevel():
- return (k for k, v in LOG_LEVELS.items() if v == LOG_LEVEL).next()
+ return next((k for k, v in LOG_LEVELS.items() if v == LOG_LEVEL))
def set_loglevel(level):
global LOG_LEVEL
@@ -182,9 +171,6 @@ def log(msg=''):
if msg:
LOG_CONTENT += msg
-def raw(msg=''):
- _general_print('', NO_COLOR, msg)
-
def info(msg):
head, msg = _split_msg('Info', msg)
_general_print(head, INFO_COLOR, msg)
@@ -206,66 +192,6 @@ def error(msg):
_color_perror(head, ERR_COLOR, msg)
sys.exit(1)
-def ask(msg, default=True):
- _general_print('\rQ', ASK_COLOR, '')
- try:
- if default:
- msg += '(Y/n) '
- else:
- msg += '(y/N) '
- if INTERACTIVE:
- while True:
- repl = raw_input(msg)
- if repl.lower() == 'y':
- return True
- elif repl.lower() == 'n':
- return False
- elif not repl.strip():
- # <Enter>
- return default
-
- # else loop
- else:
- if default:
- msg += ' Y'
- else:
- msg += ' N'
- _general_print('', NO_COLOR, msg)
-
- return default
- except KeyboardInterrupt:
- sys.stdout.write('\n')
- sys.exit(2)
-
-def choice(msg, choices, default=0):
- if default >= len(choices):
- return None
- _general_print('\rQ', ASK_COLOR, '')
- try:
- msg += " [%s] " % '/'.join(choices)
- if INTERACTIVE:
- while True:
- repl = raw_input(msg)
- if repl in choices:
- return repl
- elif not repl.strip():
- return choices[default]
- else:
- msg += choices[default]
- _general_print('', NO_COLOR, msg)
-
- return choices[default]
- except KeyboardInterrupt:
- sys.stdout.write('\n')
- sys.exit(2)
-
-def pause(msg=None):
- if INTERACTIVE:
- _general_print('\rQ', ASK_COLOR, '')
- if msg is None:
- msg = 'press <ENTER> to continue ...'
- raw_input(msg)
-
def set_logfile(fpath):
global LOG_FILE_FP
diff --git a/import-layers/yocto-poky/scripts/lib/wic/partition.py b/import-layers/yocto-poky/scripts/lib/wic/partition.py
index f40d1bc8b..90f65a1e3 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/partition.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/partition.py
@@ -26,7 +26,6 @@
import os
import tempfile
-import uuid
from wic.utils.oe.misc import msger, parse_sourceparams
from wic.utils.oe.misc import exec_cmd, exec_native_cmd
@@ -38,7 +37,7 @@ partition_methods = {
"do_configure_partition":None,
}
-class Partition(object):
+class Partition():
def __init__(self, args, lineno):
self.args = args
@@ -57,10 +56,9 @@ class Partition(object):
self.size = args.size
self.source = args.source
self.sourceparams = args.sourceparams
+ self.system_id = args.system_id
self.use_uuid = args.use_uuid
self.uuid = args.uuid
- if args.use_uuid and not self.uuid:
- self.uuid = str(uuid.uuid4())
self.lineno = lineno
self.source_file = ""
@@ -219,9 +217,7 @@ class Partition(object):
msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \
(extra_blocks, self.mountpoint, rootfs_size))
- dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=0 bs=1k" % \
- (rootfs, rootfs_size)
- exec_cmd(dd_cmd)
+ exec_cmd("truncate %s -s %d" % (rootfs, rootfs_size * 1024))
extra_imagecmd = "-i 8192"
@@ -254,9 +250,7 @@ class Partition(object):
msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \
(extra_blocks, self.mountpoint, rootfs_size))
- dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=0 bs=1k" % \
- (rootfs, rootfs_size)
- exec_cmd(dd_cmd)
+ exec_cmd("truncate %s -s %d" % (rootfs, rootfs_size * 1024))
label_str = ""
if self.label:
@@ -284,14 +278,6 @@ class Partition(object):
msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \
(extra_blocks, self.mountpoint, blocks))
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation
- # is done in blocks, thus the mod by 16 instead of 32. Apply
- # sector count fix only when needed.
- if blocks % 16 != 0:
- blocks += (16 - (blocks % 16))
-
label_str = "-n boot"
if self.label:
label_str = "-n %s" % self.label
@@ -319,9 +305,7 @@ class Partition(object):
"""
Prepare an empty ext2/3/4 partition.
"""
- dd_cmd = "dd if=/dev/zero of=%s bs=1k seek=%d count=0" % \
- (rootfs, self.size)
- exec_cmd(dd_cmd)
+ exec_cmd("truncate %s -s %d" % (rootfs, self.size * 1024))
extra_imagecmd = "-i 8192"
@@ -338,9 +322,7 @@ class Partition(object):
"""
Prepare an empty btrfs partition.
"""
- dd_cmd = "dd if=/dev/zero of=%s bs=1k seek=%d count=0" % \
- (rootfs, self.size)
- exec_cmd(dd_cmd)
+ exec_cmd("truncate %s -s %d" % (rootfs, self.size * 1024))
label_str = ""
if self.label:
@@ -401,9 +383,7 @@ class Partition(object):
"""
path = "%s/fs.%s" % (cr_workdir, self.fstype)
- dd_cmd = "dd if=/dev/zero of=%s bs=1k seek=%d count=0" % \
- (path, self.size)
- exec_cmd(dd_cmd)
+ exec_cmd("truncate %s -s %d" % (path, self.size * 1024))
import uuid
label_str = ""
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugin.py b/import-layers/yocto-poky/scripts/lib/wic/plugin.py
index ccfdfcb93..306b32437 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugin.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugin.py
@@ -29,7 +29,7 @@ PLUGIN_TYPES = ["imager", "source"]
PLUGIN_DIR = "/lib/wic/plugins" # relative to scripts
SCRIPTS_PLUGIN_DIR = "scripts" + PLUGIN_DIR
-class PluginMgr(object):
+class PluginMgr():
plugin_dirs = {}
# make the manager class as singleton
@@ -42,7 +42,7 @@ class PluginMgr(object):
def __init__(self):
wic_path = os.path.dirname(__file__)
- eos = wic_path.find('scripts') + len('scripts')
+ eos = wic_path.rfind('scripts') + len('scripts')
scripts_path = wic_path[:eos]
self.scripts_path = scripts_path
self.plugin_dir = scripts_path + PLUGIN_DIR
@@ -81,7 +81,7 @@ class PluginMgr(object):
# the value True/False means "loaded"
def _load_all(self):
- for (pdir, loaded) in self.plugin_dirs.iteritems():
+ for (pdir, loaded) in self.plugin_dirs.items():
if loaded:
continue
@@ -97,7 +97,7 @@ class PluginMgr(object):
self.plugin_dirs[pdir] = True
msger.debug("Plugin module %s:%s imported"\
% (mod, pymod.__file__))
- except ImportError, err:
+ except ImportError as err:
msg = 'Failed to load plugin %s/%s: %s' \
% (os.path.basename(pdir), mod, err)
msger.warning(msg)
@@ -135,9 +135,9 @@ class PluginMgr(object):
None is returned.
"""
return_methods = None
- for _source_name, klass in self.get_plugins('source').iteritems():
+ for _source_name, klass in self.get_plugins('source').items():
if _source_name == source_name:
- for _method_name in methods.keys():
+ for _method_name in methods:
if not hasattr(klass, _method_name):
msger.warning("Unimplemented %s source interface for: %s"\
% (_method_name, _source_name))
diff --git a/import-layers/yocto-poky/scripts/lib/wic/pluginbase.py b/import-layers/yocto-poky/scripts/lib/wic/pluginbase.py
index ee8fe95c6..e737dee7b 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/pluginbase.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/pluginbase.py
@@ -15,34 +15,26 @@
# with this program; if not, write to the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-from wic import msger
-
-class _Plugin(object):
- class __metaclass__(type):
- def __init__(cls, name, bases, attrs):
- if not hasattr(cls, 'plugins'):
- cls.plugins = {}
-
- elif 'wic_plugin_type' in attrs:
- if attrs['wic_plugin_type'] not in cls.plugins:
- cls.plugins[attrs['wic_plugin_type']] = {}
+__all__ = ['ImagerPlugin', 'SourcePlugin', 'get_plugins']
- elif hasattr(cls, 'wic_plugin_type') and 'name' in attrs:
- cls.plugins[cls.wic_plugin_type][attrs['name']] = cls
+import sys
+from collections import defaultdict
- def show_plugins(cls):
- for cls in cls.plugins[cls.wic_plugin_type]:
- print cls
+from wic import msger
- def get_plugins(cls):
- return cls.plugins
+class PluginMeta(type):
+ plugins = defaultdict(dict)
+ def __new__(cls, name, bases, attrs):
+ class_type = type.__new__(cls, name, bases, attrs)
+ if 'name' in attrs:
+ cls.plugins[class_type.wic_plugin_type][attrs['name']] = class_type
+ return class_type
-class ImagerPlugin(_Plugin):
+class ImagerPlugin(PluginMeta("Plugin", (), {})):
wic_plugin_type = "imager"
-
-class SourcePlugin(_Plugin):
+class SourcePlugin(PluginMeta("Plugin", (), {})):
wic_plugin_type = "source"
"""
The methods that can be implemented by --source plugins.
@@ -99,10 +91,4 @@ class SourcePlugin(_Plugin):
msger.debug("SourcePlugin: do_prepare_partition: part: %s" % part)
def get_plugins(typen):
- plugins = ImagerPlugin.get_plugins()
- if typen in plugins:
- return plugins[typen]
- else:
- return None
-
-__all__ = ['ImagerPlugin', 'SourcePlugin', 'get_plugins']
+ return PluginMeta.plugins.get(typen)
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugins/imager/direct_plugin.py b/import-layers/yocto-poky/scripts/lib/wic/plugins/imager/direct_plugin.py
index 6d3f46cc6..8fe393080 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugins/imager/direct_plugin.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugins/imager/direct_plugin.py
@@ -86,7 +86,8 @@ class DirectPlugin(ImagerPlugin):
kernel_dir,
native_sysroot,
compressor,
- creatoropts)
+ creatoropts,
+ opts.bmap)
try:
creator.create()
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index a4734c9b3..8bc362254 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -84,7 +84,7 @@ class BootimgEFIPlugin(SourcePlugin):
@classmethod
def do_configure_gummiboot(cls, hdddir, creator, cr_workdir):
"""
- Create loader-specific (gummiboot) config
+ Create loader-specific systemd-boot/gummiboot config
"""
install_cmd = "install -d %s/loader" % hdddir
exec_cmd(install_cmd)
@@ -149,7 +149,8 @@ class BootimgEFIPlugin(SourcePlugin):
try:
if source_params['loader'] == 'grub-efi':
cls.do_configure_grubefi(hdddir, creator, cr_workdir)
- elif source_params['loader'] == 'gummiboot':
+ elif source_params['loader'] == 'gummiboot' \
+ or source_params['loader'] == 'systemd-boot':
cls.do_configure_gummiboot(hdddir, creator, cr_workdir)
else:
msger.error("unrecognized bootimg-efi loader: %s" % source_params['loader'])
@@ -189,7 +190,8 @@ class BootimgEFIPlugin(SourcePlugin):
exec_cmd(cp_cmd, True)
shutil.move("%s/grub.cfg" % cr_workdir,
"%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
- elif source_params['loader'] == 'gummiboot':
+ elif source_params['loader'] == 'gummiboot' \
+ or source_params['loader'] == 'systemd-boot':
cp_cmd = "cp %s/EFI/BOOT/* %s/EFI/BOOT" % (bootimg_dir, hdddir)
exec_cmd(cp_cmd, True)
else:
@@ -197,6 +199,11 @@ class BootimgEFIPlugin(SourcePlugin):
except KeyError:
msger.error("bootimg-efi requires a loader, none specified")
+ startup = os.path.join(bootimg_dir, "startup.nsh")
+ if os.path.exists(startup):
+ cp_cmd = "cp %s %s/" % (startup, hdddir)
+ exec_cmd(cp_cmd, True)
+
du_cmd = "du -bks %s" % hdddir
out = exec_cmd(du_cmd)
blocks = int(out.split()[0])
@@ -211,12 +218,6 @@ class BootimgEFIPlugin(SourcePlugin):
msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \
(extra_blocks, part.mountpoint, blocks))
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation is
- # done in blocks, thus the mod by 16 instead of 32.
- blocks += (16 - (blocks % 16))
-
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py
index 5b719bf3b..f204daa32 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/bootimg-pcbios.py
@@ -179,12 +179,6 @@ class BootimgPcbiosPlugin(SourcePlugin):
msger.debug("Added %d extra blocks to %s to get to %d total blocks" % \
(extra_blocks, part.mountpoint, blocks))
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation is
- # done in blocks, thus the mod by 16 instead of 32.
- blocks += (16 - (blocks % 16))
-
# dosfs image, created by mkdosfs
bootimg = "%s/boot.img" % cr_workdir
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
index bc9928314..3858fd439 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/isoimage-isohybrid.py
@@ -27,6 +27,7 @@ import glob
from wic import msger
from wic.pluginbase import SourcePlugin
+from wic.utils.misc import get_custom_config
from wic.utils.oe.misc import exec_cmd, exec_native_cmd, get_bitbake_var
class IsoImagePlugin(SourcePlugin):
@@ -59,7 +60,7 @@ class IsoImagePlugin(SourcePlugin):
"""
Create loader-specific (syslinux) config
"""
- splash = os.path.join(cr_workdir, "/ISO/boot/splash.jpg")
+ splash = os.path.join(cr_workdir, "ISO/boot/splash.jpg")
if os.path.exists(splash):
splashline = "menu background splash.jpg"
else:
@@ -94,33 +95,43 @@ class IsoImagePlugin(SourcePlugin):
"""
Create loader-specific (grub-efi) config
"""
- splash = os.path.join(cr_workdir, "/EFI/boot/splash.jpg")
- if os.path.exists(splash):
- splashline = "menu background splash.jpg"
+ configfile = creator.ks.bootloader.configfile
+ if configfile:
+ grubefi_conf = get_custom_config(configfile)
+ if grubefi_conf:
+ msger.debug("Using custom configuration file "
+ "%s for grub.cfg" % configfile)
+ else:
+ msger.error("configfile is specified but failed to "
+ "get it from %s." % configfile)
else:
- splashline = ""
+ splash = os.path.join(cr_workdir, "EFI/boot/splash.jpg")
+ if os.path.exists(splash):
+ splashline = "menu background splash.jpg"
+ else:
+ splashline = ""
- bootloader = creator.ks.bootloader
+ bootloader = creator.ks.bootloader
- grubefi_conf = ""
- grubefi_conf += "serial --unit=0 --speed=115200 --word=8 "
- grubefi_conf += "--parity=no --stop=1\n"
- grubefi_conf += "default=boot\n"
- grubefi_conf += "timeout=%s\n" % (bootloader.timeout or 10)
- grubefi_conf += "\n"
- grubefi_conf += "search --set=root --label %s " % part.label
- grubefi_conf += "\n"
- grubefi_conf += "menuentry 'boot'{\n"
+ grubefi_conf = ""
+ grubefi_conf += "serial --unit=0 --speed=115200 --word=8 "
+ grubefi_conf += "--parity=no --stop=1\n"
+ grubefi_conf += "default=boot\n"
+ grubefi_conf += "timeout=%s\n" % (bootloader.timeout or 10)
+ grubefi_conf += "\n"
+ grubefi_conf += "search --set=root --label %s " % part.label
+ grubefi_conf += "\n"
+ grubefi_conf += "menuentry 'boot'{\n"
- kernel = "/bzImage"
+ kernel = "/bzImage"
- grubefi_conf += "linux %s rootwait %s\n" \
- % (kernel, bootloader.append)
- grubefi_conf += "initrd /initrd \n"
- grubefi_conf += "}\n"
+ grubefi_conf += "linux %s rootwait %s\n" \
+ % (kernel, bootloader.append)
+ grubefi_conf += "initrd /initrd \n"
+ grubefi_conf += "}\n"
- if splashline:
- grubefi_conf += "%s\n" % splashline
+ if splashline:
+ grubefi_conf += "%s\n" % splashline
msger.debug("Writing grubefi config %s/EFI/BOOT/grub.cfg" \
% cr_workdir)
@@ -430,12 +441,6 @@ class IsoImagePlugin(SourcePlugin):
% (part.mountpoint, blocks)
msger.debug(msg)
- # Ensure total sectors is an integral number of sectors per
- # track or mcopy will complain. Sectors are 512 bytes, and we
- # generate images with 32 sectors per track. This calculation is
- # done in blocks, thus the mod by 16 instead of 32.
- blocks += (16 - (blocks % 16))
-
# dosfs image for EFI boot
bootimg = "%s/efi.img" % isodir
diff --git a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/rawcopy.py b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/rawcopy.py
index 0472f536b..e0b11f95a 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/plugins/source/rawcopy.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/plugins/source/rawcopy.py
@@ -20,6 +20,7 @@ import os
from wic import msger
from wic.pluginbase import SourcePlugin
from wic.utils.oe.misc import exec_cmd, get_bitbake_var
+from wic.filemap import sparse_copy
class RawCopyPlugin(SourcePlugin):
"""
@@ -67,14 +68,12 @@ class RawCopyPlugin(SourcePlugin):
return
src = os.path.join(bootimg_dir, source_params['file'])
- dst = os.path.join(cr_workdir, source_params['file'])
+ dst = os.path.join(cr_workdir, "%s.%s" % (source_params['file'], part.lineno))
if 'skip' in source_params:
- dd_cmd = "dd if=%s of=%s ibs=%s skip=1 conv=notrunc" % \
- (src, dst, source_params['skip'])
+ sparse_copy(src, dst, skip=source_params['skip'])
else:
- dd_cmd = "cp %s %s" % (src, dst)
- exec_cmd(dd_cmd)
+ sparse_copy(src, dst)
# get the size in the right units for kickstart (kB)
du_cmd = "du -Lbks %s" % dst
diff --git a/import-layers/yocto-poky/scripts/lib/wic/utils/fs_related.py b/import-layers/yocto-poky/scripts/lib/wic/utils/fs_related.py
deleted file mode 100644
index 2e74461a4..000000000
--- a/import-layers/yocto-poky/scripts/lib/wic/utils/fs_related.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python -tt
-#
-# Copyright (c) 2007, Red Hat, Inc.
-# Copyright (c) 2009, 2010, 2011 Intel, Inc.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; version 2 of the License
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from __future__ import with_statement
-import os
-import errno
-
-from wic.utils.oe.misc import exec_cmd
-
-def makedirs(dirname):
- """A version of os.makedirs() that doesn't throw an
- exception if the leaf directory already exists.
- """
- try:
- os.makedirs(dirname)
- except OSError, err:
- if err.errno != errno.EEXIST:
- raise
-
-class Disk:
- """
- Generic base object for a disk.
- """
- def __init__(self, size, device=None):
- self._device = device
- self._size = size
-
- def create(self):
- pass
-
- def cleanup(self):
- pass
-
- def get_device(self):
- return self._device
- def set_device(self, path):
- self._device = path
- device = property(get_device, set_device)
-
- def get_size(self):
- return self._size
- size = property(get_size)
-
-
-class DiskImage(Disk):
- """
- A Disk backed by a file.
- """
- def __init__(self, image_file, size):
- Disk.__init__(self, size)
- self.image_file = image_file
-
- def exists(self):
- return os.path.exists(self.image_file)
-
- def create(self):
- if self.device is not None:
- return
-
- blocks = self.size / 1024
- if self.size - blocks * 1024:
- blocks += 1
-
- # create disk image
- dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=1" % \
- (self.image_file, blocks)
- exec_cmd(dd_cmd)
-
- self.device = self.image_file
diff --git a/import-layers/yocto-poky/scripts/lib/wic/utils/oe/misc.py b/import-layers/yocto-poky/scripts/lib/wic/utils/oe/misc.py
index 81239ac35..fe188c9d2 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/utils/oe/misc.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/utils/oe/misc.py
@@ -28,12 +28,14 @@
import os
from collections import defaultdict
+from distutils import spawn
from wic import msger
from wic.utils import runner
# executable -> recipe pairs for exec_native_cmd
-NATIVE_RECIPES = {"mcopy": "mtools",
+NATIVE_RECIPES = {"bmaptool": "bmap-tools",
+ "mcopy": "mtools",
"mkdosfs": "dosfstools",
"mkfs.btrfs": "btrfs-tools",
"mkfs.ext2": "e2fsprogs",
@@ -43,6 +45,7 @@ NATIVE_RECIPES = {"mcopy": "mtools",
"mksquashfs": "squashfs-tools",
"mkswap": "util-linux",
"parted": "parted",
+ "sfdisk": "util-linux",
"sgdisk": "gptfdisk",
"syslinux": "syslinux"
}
@@ -82,13 +85,6 @@ def exec_cmd(cmd_and_args, as_shell=False, catch=3):
return out
-def cmd_in_path(cmd, path):
- import scriptpath
-
- scriptpath.add_bitbake_lib_path()
-
- return bb.utils.which(path, cmd) != "" or False
-
def exec_native_cmd(cmd_and_args, native_sysroot, catch=3, pseudo=""):
"""
Execute native command, catching stderr, stdout
@@ -111,7 +107,7 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch=3, pseudo=""):
msger.debug("exec_native_cmd: %s" % cmd_and_args)
# If the command isn't in the native sysroot say we failed.
- if cmd_in_path(args[0], native_paths):
+ if spawn.find_executable(args[0], native_paths):
ret, out = _exec_cmd(native_cmd_and_args, True, catch)
else:
ret = 127
@@ -186,8 +182,8 @@ class BitbakeVars(defaultdict):
for line in varsfile:
self._parse_line(line, image)
else:
- print "Couldn't get bitbake variable from %s." % fname
- print "File %s doesn't exist." % fname
+ print("Couldn't get bitbake variable from %s." % fname)
+ print("File %s doesn't exist." % fname)
return
else:
# Get bitbake -e output
@@ -201,8 +197,8 @@ class BitbakeVars(defaultdict):
msger.set_loglevel(log_level)
if ret:
- print "Couldn't get '%s' output." % cmd
- print "Bitbake failed with error:\n%s\n" % lines
+ print("Couldn't get '%s' output." % cmd)
+ print("Bitbake failed with error:\n%s\n" % lines)
return
# Parse bitbake -e output
diff --git a/import-layers/yocto-poky/scripts/lib/wic/utils/partitionedfs.py b/import-layers/yocto-poky/scripts/lib/wic/utils/partitionedfs.py
index ad596d26f..cb03009fc 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/utils/partitionedfs.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/utils/partitionedfs.py
@@ -22,6 +22,7 @@ import os
from wic import msger
from wic.utils.errors import ImageError
from wic.utils.oe.misc import exec_cmd, exec_native_cmd
+from wic.filemap import sparse_copy
# Overhead of the MBR partitioning scheme (just one sector)
MBR_OVERHEAD = 1
@@ -32,7 +33,7 @@ GPT_OVERHEAD = 34
# Size of a sector in bytes
SECTOR_SIZE = 512
-class Image(object):
+class Image():
"""
Generic base object for an image.
@@ -42,6 +43,7 @@ class Image(object):
def __init__(self, native_sysroot=None):
self.disks = {}
self.partitions = []
+ self.partimages = []
# Size of a sector used in calculations
self.sector_size = SECTOR_SIZE
self._partitions_layed_out = False
@@ -66,15 +68,17 @@ class Image(object):
'offset': 0, # Offset of next partition (in sectors)
# Minimum required disk size to fit all partitions (in bytes)
'min_size': 0,
- 'ptable_format': "msdos"} # Partition table format
+ 'ptable_format': "msdos", # Partition table format
+ 'identifier': None} # Disk system identifier
- def add_disk(self, disk_name, disk_obj):
+ def add_disk(self, disk_name, disk_obj, identifier):
""" Add a disk object which have to be partitioned. More than one disk
can be added. In case of multiple disks, disk partitions have to be
added for each disk separately with 'add_partition()". """
self.__add_disk(disk_name)
self.disks[disk_name]['disk'] = disk_obj
+ self.disks[disk_name]['identifier'] = identifier
def __add_partition(self, part):
""" This is a helper function for 'add_partition()' which adds a
@@ -87,14 +91,14 @@ class Image(object):
def add_partition(self, size, disk_name, mountpoint, source_file=None, fstype=None,
label=None, fsopts=None, boot=False, align=None, no_table=False,
- part_type=None, uuid=None):
+ part_type=None, uuid=None, system_id=None):
""" Add the next partition. Prtitions have to be added in the
first-to-last order. """
ks_pnum = len(self.partitions)
# Converting kB to sectors for parted
- size = size * 1024 / self.sector_size
+ size = size * 1024 // self.sector_size
part = {'ks_pnum': ks_pnum, # Partition number in the KS file
'size': size, # In sectors
@@ -110,7 +114,8 @@ class Image(object):
'align': align, # Partition alignment
'no_table' : no_table, # Partition does not appear in partition table
'part_type' : part_type, # Partition type
- 'uuid': uuid} # Partition UUID
+ 'uuid': uuid, # Partition UUID
+ 'system_id': system_id} # Partition system id
self.__add_partition(part)
@@ -130,7 +135,7 @@ class Image(object):
for num in range(len(self.partitions)):
part = self.partitions[num]
- if not self.disks.has_key(part['disk_name']):
+ if part['disk_name'] not in self.disks:
raise ImageError("No disk %s for partition %s" \
% (part['disk_name'], part['mountpoint']))
@@ -171,12 +176,12 @@ class Image(object):
# gaps we could enlargea the previous partition?
# Calc how much the alignment is off.
- align_sectors = disk['offset'] % (part['align'] * 1024 / self.sector_size)
+ align_sectors = disk['offset'] % (part['align'] * 1024 // self.sector_size)
if align_sectors:
# If partition is not aligned as required, we need
# to move forward to the next alignment point
- align_sectors = (part['align'] * 1024 / self.sector_size) - align_sectors
+ align_sectors = (part['align'] * 1024 // self.sector_size) - align_sectors
msger.debug("Realignment for %s%s with %s sectors, original"
" offset %s, target alignment is %sK." %
@@ -234,7 +239,7 @@ class Image(object):
def __format_disks(self):
self.layout_partitions()
- for dev in self.disks.keys():
+ for dev in self.disks:
disk = self.disks[dev]
msger.debug("Initializing partition table for %s" % \
(disk['disk'].device))
@@ -242,6 +247,12 @@ class Image(object):
(disk['disk'].device, disk['ptable_format']),
self.native_sysroot)
+ if disk['identifier']:
+ msger.debug("Set disk identifier %x" % disk['identifier'])
+ with open(disk['disk'].device, 'r+b') as img:
+ img.seek(0x1B8)
+ img.write(disk['identifier'].to_bytes(4, 'little'))
+
msger.debug("Creating partitions")
for part in self.partitions:
@@ -296,7 +307,7 @@ class Image(object):
(part['num'], part['part_type'],
disk['disk'].device), self.native_sysroot)
- if part['uuid']:
+ if part['uuid'] and disk['ptable_format'] == "gpt":
msger.debug("partition %d: set UUID to %s" % \
(part['num'], part['uuid']))
exec_native_cmd("sgdisk --partition-guid=%d:%s %s" % \
@@ -310,6 +321,10 @@ class Image(object):
exec_native_cmd("parted -s %s set %d %s on" % \
(disk['disk'].device, part['num'], flag_name),
self.native_sysroot)
+ if part['system_id']:
+ exec_native_cmd("sfdisk --part-type %s %s %s" % \
+ (disk['disk'].device, part['num'], part['system_id']),
+ self.native_sysroot)
# Parted defaults to enabling the lba flag for fat16 partitions,
# which causes compatibility issues with some firmware (and really
@@ -330,6 +345,10 @@ class Image(object):
disk['disk'].cleanup()
except:
pass
+ # remove partition images
+ for image in self.partimages:
+ if os.path.isfile(image):
+ os.remove(image)
def assemble(self, image_file):
msger.debug("Installing partitions")
@@ -338,20 +357,19 @@ class Image(object):
source = part['source_file']
if source:
# install source_file contents into a partition
- cmd = "dd if=%s of=%s bs=%d seek=%d count=%d conv=notrunc" % \
- (source, image_file, self.sector_size,
- part['start'], part['size'])
- exec_cmd(cmd)
+ sparse_copy(source, image_file, part['start'] * self.sector_size)
msger.debug("Installed %s in partition %d, sectors %d-%d, "
"size %d sectors" % \
(source, part['num'], part['start'],
part['start'] + part['size'] - 1, part['size']))
- os.rename(source, image_file + '.p%d' % part['num'])
+ partimage = image_file + '.p%d' % part['num']
+ os.rename(source, partimage)
+ self.partimages.append(partimage)
def create(self):
- for dev in self.disks.keys():
+ for dev in self.disks:
disk = self.disks[dev]
disk['disk'].create()
diff --git a/import-layers/yocto-poky/scripts/lib/wic/utils/runner.py b/import-layers/yocto-poky/scripts/lib/wic/utils/runner.py
index 7431917ff..db536ba58 100644
--- a/import-layers/yocto-poky/scripts/lib/wic/utils/runner.py
+++ b/import-layers/yocto-poky/scripts/lib/wic/utils/runner.py
@@ -65,9 +65,9 @@ def runtool(cmdln_or_args, catch=1):
process = subprocess.Popen(cmdln_or_args, stdout=sout,
stderr=serr, shell=shell)
(sout, serr) = process.communicate()
- # combine stdout and stderr, filter None out
- out = ''.join(filter(None, [sout, serr]))
- except OSError, err:
+ # combine stdout and stderr, filter None out and decode
+ out = ''.join([out.decode('utf-8') for out in [sout, serr] if out])
+ except OSError as err:
if err.errno == 2:
# [Errno 2] No such file or directory
msger.error('Cannot run command: %s, lost dependency?' % cmd)
diff --git a/import-layers/yocto-poky/scripts/lnr b/import-layers/yocto-poky/scripts/lnr
index 9dacebe09..5fed780eb 100755
--- a/import-layers/yocto-poky/scripts/lnr
+++ b/import-layers/yocto-poky/scripts/lnr
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
# Create a *relative* symlink, just like ln --relative does but without needing
# coreutils 8.16.
@@ -6,7 +6,7 @@
import sys, os
if len(sys.argv) != 3:
- print "$ lnr TARGET LINK_NAME"
+ print("$ lnr TARGET LINK_NAME")
sys.exit(1)
target = sys.argv[1]
diff --git a/import-layers/yocto-poky/scripts/oe-build-perf-test b/import-layers/yocto-poky/scripts/oe-build-perf-test
new file mode 100755
index 000000000..638e195ef
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/oe-build-perf-test
@@ -0,0 +1,211 @@
+#!/usr/bin/python3
+#
+# Build performance test script
+#
+# Copyright (c) 2016, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+"""Build performance test script"""
+import argparse
+import errno
+import fcntl
+import logging
+import os
+import shutil
+import sys
+import unittest
+from datetime import datetime
+
+sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '/lib')
+import scriptpath
+scriptpath.add_oe_lib_path()
+import oeqa.buildperf
+from oeqa.buildperf import (BuildPerfTestLoader, BuildPerfTestResult,
+ BuildPerfTestRunner, KernelDropCaches)
+from oeqa.utils.commands import runCmd
+from oeqa.utils.git import GitRepo, GitError
+
+
+# Set-up logging
+LOG_FORMAT = '[%(asctime)s] %(levelname)s: %(message)s'
+logging.basicConfig(level=logging.INFO, format=LOG_FORMAT,
+ datefmt='%Y-%m-%d %H:%M:%S')
+log = logging.getLogger()
+
+
+def acquire_lock(lock_f):
+ """Acquire flock on file"""
+ log.debug("Acquiring lock %s", os.path.abspath(lock_f.name))
+ try:
+ fcntl.flock(lock_f, fcntl.LOCK_EX | fcntl.LOCK_NB)
+ except IOError as err:
+ if err.errno == errno.EAGAIN:
+ return False
+ raise
+ log.debug("Lock acquired")
+ return True
+
+
+def pre_run_sanity_check():
+ """Sanity check of build environment"""
+ build_dir = os.environ.get("BUILDDIR")
+ if not build_dir:
+ log.error("BUILDDIR not set. Please run the build environmnent setup "
+ "script.")
+ return False
+ if os.getcwd() != build_dir:
+ log.error("Please run this script under BUILDDIR (%s)", build_dir)
+ return False
+
+ ret = runCmd('which bitbake', ignore_status=True)
+ if ret.status:
+ log.error("bitbake command not found")
+ return False
+ return True
+
+def init_git_repo(path):
+ """Check/create Git repository where to store results"""
+ path = os.path.abspath(path)
+ if os.path.isfile(path):
+ log.error("Invalid Git repo %s: path exists but is not a directory", path)
+ return False
+ if not os.path.isdir(path):
+ try:
+ os.mkdir(path)
+ except (FileNotFoundError, PermissionError) as err:
+ log.error("Failed to mkdir %s: %s", path, err)
+ return False
+ if not os.listdir(path):
+ log.info("Initializing a new Git repo at %s", path)
+ GitRepo.init(path)
+ try:
+ GitRepo(path, is_topdir=True)
+ except GitError:
+ log.error("No Git repository but a non-empty directory found at %s.\n"
+ "Please specify a Git repository, an empty directory or "
+ "a non-existing directory", path)
+ return False
+ return True
+
+
+def setup_file_logging(log_file):
+ """Setup loggin to file"""
+ log_dir = os.path.dirname(log_file)
+ if not os.path.exists(log_dir):
+ os.makedirs(log_dir)
+ formatter = logging.Formatter(LOG_FORMAT)
+ handler = logging.FileHandler(log_file)
+ handler.setFormatter(formatter)
+ log.addHandler(handler)
+
+
+def archive_build_conf(out_dir):
+ """Archive build/conf to test results"""
+ src_dir = os.path.join(os.environ['BUILDDIR'], 'conf')
+ tgt_dir = os.path.join(out_dir, 'build', 'conf')
+ os.makedirs(os.path.dirname(tgt_dir))
+ shutil.copytree(src_dir, tgt_dir)
+
+
+def parse_args(argv):
+ """Parse command line arguments"""
+ parser = argparse.ArgumentParser(
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+
+ parser.add_argument('-D', '--debug', action='store_true',
+ help='Enable debug level logging')
+ parser.add_argument('--globalres-file',
+ type=os.path.abspath,
+ help="Append results to 'globalres' csv file")
+ parser.add_argument('--lock-file', default='./oe-build-perf.lock',
+ metavar='FILENAME', type=os.path.abspath,
+ help="Lock file to use")
+ parser.add_argument('-o', '--out-dir', default='results-{date}',
+ type=os.path.abspath,
+ help="Output directory for test results")
+ parser.add_argument('--log-file',
+ default='{out_dir}/oe-build-perf-test.log',
+ help="Log file of this script")
+ parser.add_argument('--run-tests', nargs='+', metavar='TEST',
+ help="List of tests to run")
+ parser.add_argument('--commit-results', metavar='GIT_DIR',
+ type=os.path.abspath,
+ help="Commit result data to a (local) git repository")
+ parser.add_argument('--commit-results-branch', metavar='BRANCH',
+ default="{git_branch}",
+ help="Commit results to branch BRANCH.")
+ parser.add_argument('--commit-results-tag', metavar='TAG',
+ default="{git_branch}/{git_commit_count}-g{git_commit}/{tag_num}",
+ help="Tag results commit with TAG.")
+
+ return parser.parse_args(argv)
+
+
+def main(argv=None):
+ """Script entry point"""
+ args = parse_args(argv)
+
+ # Set-up log file
+ out_dir = args.out_dir.format(date=datetime.now().strftime('%Y%m%d%H%M%S'))
+ setup_file_logging(args.log_file.format(out_dir=out_dir))
+
+ if args.debug:
+ log.setLevel(logging.DEBUG)
+
+ lock_f = open(args.lock_file, 'w')
+ if not acquire_lock(lock_f):
+ log.error("Another instance of this script is running, exiting...")
+ return 1
+
+ if not pre_run_sanity_check():
+ return 1
+ if args.commit_results:
+ if not init_git_repo(args.commit_results):
+ return 1
+
+ # Check our capability to drop caches and ask pass if needed
+ KernelDropCaches.check()
+
+ # Load build perf tests
+ loader = BuildPerfTestLoader()
+ if args.run_tests:
+ suite = loader.loadTestsFromNames(args.run_tests, oeqa.buildperf)
+ else:
+ suite = loader.loadTestsFromModule(oeqa.buildperf)
+
+ archive_build_conf(out_dir)
+ runner = BuildPerfTestRunner(out_dir, verbosity=2)
+
+ # Suppress logger output to stderr so that the output from unittest
+ # is not mixed with occasional logger output
+ log.handlers[0].setLevel(logging.CRITICAL)
+
+ # Run actual tests
+ result = runner.run(suite)
+
+ # Restore logger output to stderr
+ log.handlers[0].setLevel(log.level)
+
+ if args.globalres_file:
+ result.update_globalres_file(args.globalres_file)
+ if args.commit_results:
+ result.git_commit_results(args.commit_results,
+ args.commit_results_branch,
+ args.commit_results_tag)
+ if result.wasSuccessful():
+ return 0
+
+ return 2
+
+
+if __name__ == '__main__':
+ sys.exit(main())
+
diff --git a/import-layers/yocto-poky/scripts/oe-buildenv-internal b/import-layers/yocto-poky/scripts/oe-buildenv-internal
index e04db0398..9fae3b4ec 100755
--- a/import-layers/yocto-poky/scripts/oe-buildenv-internal
+++ b/import-layers/yocto-poky/scripts/oe-buildenv-internal
@@ -29,27 +29,31 @@ if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then
return 1
fi
-# Make sure we're not using python v3.x. This check can't go into
-# sanity.bbclass because bitbake's source code doesn't even pass
-# parsing stage when used with python v3, so we catch it here so we
-# can offer a meaningful error message.
-py_v3_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3")
-if [ -n "$py_v3_check" ]; then
- echo >&2 "Bitbake is not compatible with python v3"
- echo >&2 "Please set up python v2 as your default python interpreter"
+# Make sure we're not using python v3.x as 'python', we don't support it.
+py_v2_check=$(/usr/bin/env python --version 2>&1 | grep "Python 3")
+if [ -n "$py_v2_check" ]; then
+ echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3."
+ echo >&2 "Please set up python v2 as your default 'python' interpreter."
return 1
fi
-unset py_v3_check
-
-# Similarly, we now have code that doesn't parse correctly with older
-# versions of Python, and rather than fixing that and being eternally
-# vigilant for any other new feature use, just check the version here.
-py_v26_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)')
-if [ "$py_v26_check" != "True" ]; then
- echo >&2 "BitBake requires Python 2.7.3 or later"
+unset py_v2_check
+
+py_v27_check=$(python -c 'import sys; print sys.version_info >= (2,7,3)')
+if [ "$py_v27_check" != "True" ]; then
+ echo >&2 "OpenEmbedded requires 'python' to be python v2 (>= 2.7.3), not python v3."
+ echo >&2 "Please upgrade your python v2."
+fi
+unset py_v27_check
+
+# We potentially have code that doesn't parse correctly with older versions
+# of Python, and rather than fixing that and being eternally vigilant for
+# any other new feature use, just check the version here.
+py_v34_check=$(python3 -c 'import sys; print(sys.version_info >= (3,4,0))')
+if [ "$py_v34_check" != "True" ]; then
+ echo >&2 "BitBake requires Python 3.4.0 or later as 'python3'"
return 1
fi
-unset py_v26_check
+unset py_v34_check
if [ -z "$BDIR" ]; then
if [ -z "$1" ]; then
@@ -92,7 +96,7 @@ BITBAKEDIR=$(readlink -f "$BITBAKEDIR")
BUILDDIR=$(readlink -f "$BUILDDIR")
if [ ! -d "$BITBAKEDIR" ]; then
- echo >&2 "Error: The bitbake directory ($BITBAKEDIR) does not exist! Please ensure a copy of bitbake exists at this location"
+ echo >&2 "Error: The bitbake directory ($BITBAKEDIR) does not exist! Please ensure a copy of bitbake exists at this location or specify an alternative path on the command line"
return 1
fi
@@ -114,7 +118,7 @@ BB_ENV_EXTRAWHITE_OE="MACHINE DISTRO TCMODE TCLIBC HTTP_PROXY http_proxy \
HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \
all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \
SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
-SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR"
+SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR BBPATH_EXTRA BB_SETSCENE_ENFORCE"
BB_ENV_EXTRAWHITE="$(echo $BB_ENV_EXTRAWHITE $BB_ENV_EXTRAWHITE_OE | tr ' ' '\n' | LC_ALL=C sort --unique | tr '\n' ' ')"
diff --git a/import-layers/yocto-poky/scripts/oe-check-sstate b/import-layers/yocto-poky/scripts/oe-check-sstate
new file mode 100755
index 000000000..d06efe436
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/oe-check-sstate
@@ -0,0 +1,121 @@
+#!/usr/bin/env python3
+
+# Query which tasks will be restored from sstate
+#
+# Copyright 2016 Intel Corporation
+# Authored-by: Paul Eggleton <paul.eggleton@intel.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import sys
+import os
+import subprocess
+import tempfile
+import shutil
+import re
+
+scripts_path = os.path.dirname(os.path.realpath(__file__))
+lib_path = scripts_path + '/lib'
+sys.path = sys.path + [lib_path]
+import scriptutils
+import scriptpath
+scriptpath.add_bitbake_lib_path()
+import argparse_oe
+
+
+def translate_virtualfns(tasks):
+ import bb.tinfoil
+ tinfoil = bb.tinfoil.Tinfoil()
+ try:
+ tinfoil.prepare(False)
+
+ recipecaches = tinfoil.cooker.recipecaches
+ outtasks = []
+ for task in tasks:
+ (mc, fn, taskname) = bb.runqueue.split_tid(task)
+ if taskname.endswith('_setscene'):
+ taskname = taskname[:-9]
+ outtasks.append('%s:%s' % (recipecaches[mc].pkg_fn[fn], taskname))
+ finally:
+ tinfoil.shutdown()
+ return outtasks
+
+
+def check(args):
+ tmpdir = tempfile.mkdtemp(prefix='oe-check-sstate-')
+ try:
+ env = os.environ.copy()
+ if not args.same_tmpdir:
+ env['BB_ENV_EXTRAWHITE'] = env.get('BB_ENV_EXTRAWHITE', '') + ' TMPDIR_forcevariable'
+ env['TMPDIR_forcevariable'] = tmpdir
+
+ try:
+ output = subprocess.check_output(
+ 'bitbake -n %s' % ' '.join(args.target),
+ stderr=subprocess.STDOUT,
+ env=env,
+ shell=True)
+
+ task_re = re.compile('NOTE: Running setscene task [0-9]+ of [0-9]+ \(([^)]+)\)')
+ tasks = []
+ for line in output.decode('utf-8').splitlines():
+ res = task_re.match(line)
+ if res:
+ tasks.append(res.group(1))
+ outtasks = translate_virtualfns(tasks)
+ except subprocess.CalledProcessError as e:
+ print('ERROR: bitbake failed:\n%s' % e.output.decode('utf-8'))
+ return e.returncode
+ finally:
+ shutil.rmtree(tmpdir)
+
+ if args.log:
+ with open(args.log, 'wb') as f:
+ f.write(output)
+
+ if args.outfile:
+ with open(args.outfile, 'w') as f:
+ for task in outtasks:
+ f.write('%s\n' % task)
+ else:
+ for task in outtasks:
+ print(task)
+
+ return 0
+
+
+def main():
+ parser = argparse_oe.ArgumentParser(description='OpenEmbedded sstate check tool. Does a dry-run to check restoring the specified targets from shared state, and lists the tasks that would be restored. Set BB_SETSCENE_ENFORCE=1 in the environment if you wish to ensure real tasks are disallowed.')
+
+ parser.add_argument('target', nargs='+', help='Target to check')
+ parser.add_argument('-o', '--outfile', help='Write list to a file instead of stdout')
+ parser.add_argument('-l', '--log', help='Write full log to a file')
+ parser.add_argument('-s', '--same-tmpdir', action='store_true', help='Use same TMPDIR for check (list will then be dependent on what tasks have executed previously)')
+
+ parser.set_defaults(func=check)
+
+ args = parser.parse_args()
+
+ ret = args.func(args)
+ return ret
+
+
+if __name__ == "__main__":
+ try:
+ ret = main()
+ except Exception:
+ ret = 1
+ import traceback
+ traceback.print_exc()
+ sys.exit(ret)
diff --git a/import-layers/yocto-poky/scripts/oe-git-proxy b/import-layers/yocto-poky/scripts/oe-git-proxy
index 124790240..0078e9545 100755
--- a/import-layers/yocto-poky/scripts/oe-git-proxy
+++ b/import-layers/yocto-poky/scripts/oe-git-proxy
@@ -86,13 +86,14 @@ match_host() {
# Match by netmask
if valid_ipv4 $GLOB; then
- HOST_IP=$(gethostip -d $HOST)
- if valid_ipv4 $HOST_IP; then
- match_ipv4 $GLOB $HOST_IP
- if [ $? -eq 0 ]; then
- return 0
+ for HOST_IP in $(getent ahostsv4 $HOST | grep ' STREAM ' | cut -d ' ' -f 1) ; do
+ if valid_ipv4 $HOST_IP; then
+ match_ipv4 $GLOB $HOST_IP
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
fi
- fi
+ done
fi
return 1
diff --git a/import-layers/yocto-poky/scripts/oe-gnome-terminal-phonehome b/import-layers/yocto-poky/scripts/oe-gnome-terminal-phonehome
new file mode 100755
index 000000000..e02354883
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/oe-gnome-terminal-phonehome
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# Gnome terminal won't tell us which PID a given command is run as
+# or allow a single instance so we can't tell when it completes.
+# This allows us to figure out the PID of the target so we can tell
+# when its done.
+#
+echo $$ > $1
+shift
+exec $@
diff --git a/import-layers/yocto-poky/scripts/oe-pkgdata-util b/import-layers/yocto-poky/scripts/oe-pkgdata-util
index a04e44d35..bb917b4fc 100755
--- a/import-layers/yocto-poky/scripts/oe-pkgdata-util
+++ b/import-layers/yocto-poky/scripts/oe-pkgdata-util
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# OpenEmbedded pkgdata utility
#
@@ -240,7 +240,7 @@ def lookup_pkg(args):
sys.exit(1)
if args.reverse:
- items = mappings.values()
+ items = list(mappings.values())
else:
items = []
for pkg in pkgs:
@@ -274,6 +274,61 @@ def lookup_recipe(args):
items.extend(mappings.get(pkg, []))
print('\n'.join(items))
+def package_info(args):
+ # Handle both multiple arguments and multiple values within an arg (old syntax)
+ packages = []
+ if args.file:
+ with open(args.file, 'r') as f:
+ for line in f:
+ splitline = line.split()
+ if splitline:
+ packages.append(splitline[0])
+ else:
+ for pkgitem in args.pkg:
+ packages.extend(pkgitem.split())
+ if not packages:
+ logger.error("No packages specified")
+ sys.exit(1)
+
+ mappings = defaultdict(lambda: defaultdict(str))
+ for pkg in packages:
+ pkgfile = os.path.join(args.pkgdata_dir, 'runtime-reverse', pkg)
+ if os.path.exists(pkgfile):
+ with open(pkgfile, 'r') as f:
+ for line in f:
+ fields = line.rstrip().split(': ')
+ if fields[0].endswith("_" + pkg):
+ k = fields[0][:len(fields[0]) - len(pkg) - 1]
+ else:
+ k = fields[0]
+ v = fields[1] if len(fields) == 2 else ""
+ mappings[pkg][k] = v
+
+ if len(mappings) < len(packages):
+ missing = list(set(packages) - set(mappings.keys()))
+ logger.error("The following packages could not be found: %s" %
+ ', '.join(missing))
+ sys.exit(1)
+
+ items = []
+ for pkg in packages:
+ pkg_version = mappings[pkg]['PKGV']
+ if mappings[pkg]['PKGE']:
+ pkg_version = mappings[pkg]['PKGE'] + ":" + pkg_version
+ if mappings[pkg]['PKGR']:
+ pkg_version = pkg_version + "-" + mappings[pkg]['PKGR']
+ recipe = mappings[pkg]['PN']
+ recipe_version = mappings[pkg]['PV']
+ if mappings[pkg]['PE']:
+ recipe_version = mappings[pkg]['PE'] + ":" + recipe_version
+ if mappings[pkg]['PR']:
+ recipe_version = recipe_version + "-" + mappings[pkg]['PR']
+ pkg_size = mappings[pkg]['PKGSIZE']
+
+ items.append("%s %s %s %s %s" %
+ (pkg, pkg_version, recipe, recipe_version, pkg_size))
+ print('\n'.join(items))
+
def get_recipe_pkgs(pkgdata_dir, recipe, unpackaged):
recipedatafile = os.path.join(pkgdata_dir, recipe)
if not os.path.exists(recipedatafile):
@@ -437,6 +492,7 @@ def main():
parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true')
parser.add_argument('-p', '--pkgdata-dir', help='Path to pkgdata directory (determined automatically if not specified)')
subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
parser_lookup_pkg = subparsers.add_parser('lookup-pkg',
help='Translate between recipe-space package names and runtime package names',
@@ -469,6 +525,13 @@ def main():
parser_lookup_recipe.add_argument('pkg', nargs='+', help='Runtime package name to look up')
parser_lookup_recipe.set_defaults(func=lookup_recipe)
+ parser_package_info = subparsers.add_parser('package-info',
+ help='Shows version, recipe and size information for one or more packages',
+ description='Looks up the specified runtime package(s) and display information')
+ parser_package_info.add_argument('pkg', nargs='*', help='Runtime package name to look up')
+ parser_package_info.add_argument('-f', '--file', help='Read package names from the specified file (one per line, first field only)')
+ parser_package_info.set_defaults(func=package_info)
+
parser_find_path = subparsers.add_parser('find-path',
help='Find package providing a target path',
description='Finds the recipe-space package providing the specified target path')
@@ -506,7 +569,10 @@ def main():
sys.exit(1)
logger.debug('Found bitbake path: %s' % bitbakepath)
tinfoil = tinfoil_init()
- args.pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR', True)
+ try:
+ args.pkgdata_dir = tinfoil.config_data.getVar('PKGDATA_DIR', True)
+ finally:
+ tinfoil.shutdown()
logger.debug('Value of PKGDATA_DIR is "%s"' % args.pkgdata_dir)
if not args.pkgdata_dir:
logger.error('Unable to determine pkgdata directory from PKGDATA_DIR')
diff --git a/import-layers/yocto-poky/scripts/oe-publish-sdk b/import-layers/yocto-poky/scripts/oe-publish-sdk
index 55872f2f9..4fe8974de 100755
--- a/import-layers/yocto-poky/scripts/oe-publish-sdk
+++ b/import-layers/yocto-poky/scripts/oe-publish-sdk
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# OpenEmbedded SDK publishing tool
diff --git a/import-layers/yocto-poky/scripts/oe-run-native b/import-layers/yocto-poky/scripts/oe-run-native
new file mode 100755
index 000000000..496e34f70
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/oe-run-native
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Copyright (c) 2016, Intel Corporation.
+# All Rights Reserved
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+# the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>
+#
+
+#
+# This script is for running tools from native oe sysroot
+#
+
+if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
+ echo "Usage: $0 <native tool> [parameters]"
+ exit 1
+fi
+
+SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null`
+if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
+ echo "Error: Unable to find oe-find-native-sysroot script"
+ exit 1
+fi
+. $SYSROOT_SETUP_SCRIPT
+
+OLDPATH=$PATH
+
+# look for a tool only in native sysroot
+PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin
+tool=`/usr/bin/which $1 2>/dev/null`
+
+if [ -n "$tool" ] ; then
+ # add old path to allow usage of host tools
+ PATH=$PATH:$OLD_PATH $@
+else
+ echo "Error: Unable to find '$1' in native sysroot"
+ exit 1
+fi
diff --git a/import-layers/yocto-poky/scripts/oe-selftest b/import-layers/yocto-poky/scripts/oe-selftest
index 5e23ef003..d9ffd40e8 100755
--- a/import-layers/yocto-poky/scripts/oe-selftest
+++ b/import-layers/yocto-poky/scripts/oe-selftest
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2013 Intel Corporation
#
@@ -34,6 +34,8 @@ import subprocess
import time as t
import re
import fnmatch
+import collections
+import imp
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + '/lib')
import scriptpath
@@ -46,8 +48,19 @@ import oeqa.utils.ftools as ftools
from oeqa.utils.commands import runCmd, get_bb_var, get_test_layer
from oeqa.selftest.base import oeSelfTest, get_available_machines
+try:
+ import xmlrunner
+ from xmlrunner.result import _XMLTestResult as TestResult
+ from xmlrunner import XMLTestRunner as _TestRunner
+except ImportError:
+ # use the base runner instead
+ from unittest import TextTestResult as TestResult
+ from unittest import TextTestRunner as _TestRunner
+
+log_prefix = "oe-selftest-" + t.strftime("%Y%m%d-%H%M%S")
+
def logger_create():
- log_file = "oe-selftest-" + t.strftime("%Y-%m-%d_%H:%M:%S") + ".log"
+ log_file = log_prefix + ".log"
if os.path.exists("oe-selftest.log"): os.remove("oe-selftest.log")
os.symlink(log_file, "oe-selftest.log")
@@ -211,7 +224,7 @@ def get_tests_from_module(tmod):
try:
import importlib
modlib = importlib.import_module(tmod)
- for mod in vars(modlib).values():
+ for mod in list(vars(modlib).values()):
if isinstance(mod, type(oeSelfTest)) and issubclass(mod, oeSelfTest) and mod is not oeSelfTest:
for test in dir(mod):
if test.startswith('test_') and hasattr(vars(mod)[test], '__call__'):
@@ -220,12 +233,12 @@ def get_tests_from_module(tmod):
try:
tid = vars(mod)[test].test_case
except:
- print 'DEBUG: tc id missing for ' + str(test)
+ print('DEBUG: tc id missing for ' + str(test))
tid = None
try:
ttag = vars(mod)[test].tag__feature
except:
- # print 'DEBUG: feature tag missing for ' + str(test)
+ # print('DEBUG: feature tag missing for ' + str(test))
ttag = None
# NOTE: for some reason lstrip() doesn't work for mod.__module__
@@ -260,16 +273,22 @@ def get_testsuite_by(criteria, keyword):
result = []
remaining = values[:]
for key in keyword:
+ found = False
if key in remaining:
# Regular matching of exact item
result.append(key)
remaining.remove(key)
+ found = True
else:
# Wildcard matching
pattern = re.compile(fnmatch.translate(r"%s" % key))
added = [x for x in remaining if pattern.match(x)]
- result.extend(added)
- remaining = [x for x in remaining if x not in added]
+ if added:
+ result.extend(added)
+ remaining = [x for x in remaining if x not in added]
+ found = True
+ if not found:
+ log.error("Failed to find test: %s" % key)
return result
@@ -320,17 +339,17 @@ def list_testsuite_by(criteria, keyword):
ts = sorted([ (tc.tcid, tc.tctag, tc.tcname, tc.tcclass, tc.tcmodule) for tc in get_testsuite_by(criteria, keyword) ])
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % ('id', 'tag', 'name', 'class', 'module')
- print '_' * 150
+ print('%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % ('id', 'tag', 'name', 'class', 'module'))
+ print('_' * 150)
for t in ts:
if isinstance(t[1], (tuple, list)):
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % (t[0], ', '.join(t[1]), t[2], t[3], t[4])
+ print('%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % (t[0], ', '.join(t[1]), t[2], t[3], t[4]))
else:
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % t
- print '_' * 150
- print 'Filtering by:\t %s' % criteria
- print 'Looking for:\t %s' % ', '.join(str(x) for x in keyword)
- print 'Total found:\t %s' % len(ts)
+ print('%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % t)
+ print('_' * 150)
+ print('Filtering by:\t %s' % criteria)
+ print('Looking for:\t %s' % ', '.join(str(x) for x in keyword))
+ print('Total found:\t %s' % len(ts))
def list_tests():
@@ -338,16 +357,15 @@ def list_tests():
ts = get_all_tests()
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % ('id', 'tag', 'name', 'class', 'module')
- print '_' * 150
+ print('%-4s\t%-10s\t%-50s' % ('id', 'tag', 'test'))
+ print('_' * 80)
for t in ts:
if isinstance(t.tctag, (tuple, list)):
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % (t.tcid, ', '.join(t.tctag), t.tcname, t.tcclass, t.tcmodule)
+ print('%-4s\t%-10s\t%-50s' % (t.tcid, ', '.join(t.tctag), '.'.join([t.tcmodule, t.tcclass, t.tcname])))
else:
- print '%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % (t.tcid, t.tctag, t.tcname, t.tcclass, t.tcmodule)
- print '_' * 150
- print 'Total found:\t %s' % len(ts)
-
+ print('%-4s\t%-10s\t%-50s' % (t.tcid, t.tctag, '.'.join([t.tcmodule, t.tcclass, t.tcname])))
+ print('_' * 80)
+ print('Total found:\t %s' % len(ts))
def list_tags():
# Get all tags set to test cases
@@ -362,7 +380,7 @@ def list_tags():
else:
tags.add(tc.tctag)
- print 'Tags:\t%s' % ', '.join(str(x) for x in tags)
+ print('Tags:\t%s' % ', '.join(str(x) for x in tags))
def coverage_setup(coverage_source, coverage_include, coverage_omit):
""" Set up the coverage measurement for the testcases to be run """
@@ -370,7 +388,7 @@ def coverage_setup(coverage_source, coverage_include, coverage_omit):
import subprocess
builddir = os.environ.get("BUILDDIR")
pokydir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
- curcommit= subprocess.check_output(["git", "--git-dir", os.path.join(pokydir, ".git"), "rev-parse", "HEAD"])
+ curcommit= subprocess.check_output(["git", "--git-dir", os.path.join(pokydir, ".git"), "rev-parse", "HEAD"]).decode('utf-8')
coveragerc = "%s/.coveragerc" % builddir
data_file = "%s/.coverage." % builddir
data_file += datetime.datetime.now().strftime('%Y%m%dT%H%M%S')
@@ -415,7 +433,7 @@ def coverage_report():
# Coverage under version 4 uses coverage.coverage
from coverage import coverage as Coverage
- import cStringIO as StringIO
+ import io as StringIO
from coverage.misc import CoverageException
cov_output = StringIO.StringIO()
@@ -443,22 +461,24 @@ def main():
bbpath = get_bb_var('BBPATH').split(':')
layer_libdirs = [p for p in (os.path.join(l, 'lib') for l in bbpath) if os.path.exists(p)]
sys.path.extend(layer_libdirs)
- reload(oeqa.selftest)
+ imp.reload(oeqa.selftest)
if args.run_tests_by and len(args.run_tests_by) >= 2:
valid_options = ['name', 'class', 'module', 'id', 'tag']
if args.run_tests_by[0] not in valid_options:
- print '--run-tests-by %s not a valid option. Choose one of <name|class|module|id|tag>.' % args.run_tests_by[0]
+ print('--run-tests-by %s not a valid option. Choose one of <name|class|module|id|tag>.' % args.run_tests_by[0])
return 1
else:
criteria = args.run_tests_by[0]
keyword = args.run_tests_by[1:]
ts = sorted([ tc.fullpath for tc in get_testsuite_by(criteria, keyword) ])
+ if not ts:
+ return 1
if args.list_tests_by and len(args.list_tests_by) >= 2:
valid_options = ['name', 'class', 'module', 'id', 'tag']
if args.list_tests_by[0] not in valid_options:
- print '--list-tests-by %s not a valid option. Choose one of <name|class|module|id|tag>.' % args.list_tests_by[0]
+ print('--list-tests-by %s not a valid option. Choose one of <name|class|module|id|tag>.' % args.list_tests_by[0])
return 1
else:
criteria = args.list_tests_by[0]
@@ -482,7 +502,7 @@ def main():
info = ''
if module.startswith('_'):
info = ' (hidden)'
- print module + info
+ print(module + info)
if args.list_allclasses:
try:
import importlib
@@ -490,13 +510,13 @@ def main():
for v in vars(modlib):
t = vars(modlib)[v]
if isinstance(t, type(oeSelfTest)) and issubclass(t, oeSelfTest) and t!=oeSelfTest:
- print " --", v
+ print(" --", v)
for method in dir(t):
- if method.startswith("test_") and callable(vars(t)[method]):
- print " -- --", method
+ if method.startswith("test_") and isinstance(vars(t)[method], collections.Callable):
+ print(" -- --", method)
except (AttributeError, ImportError) as e:
- print e
+ print(e)
pass
if args.run_tests or args.run_all_tests or args.run_tests_by:
@@ -511,7 +531,8 @@ def main():
suite = unittest.TestSuite()
loader = unittest.TestLoader()
loader.sortTestMethodsUsing = None
- runner = unittest.TextTestRunner(verbosity=2, resultclass=buildResultClass(args))
+ runner = TestRunner(verbosity=2,
+ resultclass=buildResultClass(args))
# we need to do this here, otherwise just loading the tests
# will take 2 minutes (bitbake -e calls)
oeSelfTest.testlayer_path = get_test_layer()
@@ -552,7 +573,7 @@ def buildResultClass(args):
"""Build a Result Class to use in the testcase execution"""
import site
- class StampedResult(unittest.TextTestResult):
+ class StampedResult(TestResult):
"""
Custom TestResult that prints the time when a test starts. As oe-selftest
can take a long time (ie a few hours) to run, timestamps help us understand
@@ -584,6 +605,10 @@ def buildResultClass(args):
if self.coverage_installed:
log.info("Coverage is enabled")
+ major_version = int(coverage.version.__version__[0])
+ if major_version < 4:
+ log.error("python coverage %s installed. Require version 4 or greater." % coverage.version.__version__)
+ self.stop()
# In case the user has not set the variable COVERAGE_PROCESS_START,
# create a default one and export it. The COVERAGE_PROCESS_START
# value indicates where the coverage configuration file resides
@@ -622,6 +647,21 @@ def buildResultClass(args):
return StampedResult
+class TestRunner(_TestRunner):
+ """Test runner class aware of exporting tests."""
+ def __init__(self, *args, **kwargs):
+ try:
+ exportdir = os.path.join(os.getcwd(), log_prefix)
+ kwargsx = dict(**kwargs)
+ # argument specific to XMLTestRunner, if adding a new runner then
+ # also add logic to use other runner's args.
+ kwargsx['output'] = exportdir
+ kwargsx['descriptions'] = False
+ # done for the case where telling the runner where to export
+ super(TestRunner, self).__init__(*args, **kwargsx)
+ except TypeError:
+ log.info("test runner init'ed like unittest")
+ super(TestRunner, self).__init__(*args, **kwargs)
if __name__ == "__main__":
try:
diff --git a/import-layers/yocto-poky/scripts/oe-trim-schemas b/import-layers/yocto-poky/scripts/oe-trim-schemas
index 29fb3a1b6..66a1b8d81 100755
--- a/import-layers/yocto-poky/scripts/oe-trim-schemas
+++ b/import-layers/yocto-poky/scripts/oe-trim-schemas
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
import sys
try:
diff --git a/import-layers/yocto-poky/scripts/oepydevshell-internal.py b/import-layers/yocto-poky/scripts/oepydevshell-internal.py
index f7b2e4e0b..a22bec336 100755
--- a/import-layers/yocto-poky/scripts/oepydevshell-internal.py
+++ b/import-layers/yocto-poky/scripts/oepydevshell-internal.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import os
import sys
@@ -29,9 +29,6 @@ if len(sys.argv) != 3:
pty = open(sys.argv[1], "w+b", 0)
parent = int(sys.argv[2])
-# Don't buffer output by line endings
-sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
-sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
nonblockingfd(pty)
nonblockingfd(sys.stdin)
@@ -50,7 +47,7 @@ try:
# Need cbreak/noecho whilst in select so we trigger on any keypress
cbreaknoecho(sys.stdin.fileno())
# Send our PID to the other end so they can kill us.
- pty.write(str(os.getpid()) + "\n")
+ pty.write(str(os.getpid()).encode('utf-8') + b"\n")
while True:
try:
writers = []
@@ -59,17 +56,18 @@ try:
(ready, _, _) = select.select([pty, sys.stdin], writers , [], 0)
try:
if pty in ready:
- i = i + pty.read()
+ i = i + pty.read().decode('utf-8')
if i:
# Write a page at a time to avoid overflowing output
# d.keys() is a good way to do that
sys.stdout.write(i[:4096])
+ sys.stdout.flush()
i = i[4096:]
if sys.stdin in ready:
echonocbreak(sys.stdin.fileno())
- o = raw_input()
+ o = input().encode('utf-8')
cbreaknoecho(sys.stdin.fileno())
- pty.write(o + "\n")
+ pty.write(o + b"\n")
except (IOError, OSError) as e:
if e.errno == 11:
continue
diff --git a/import-layers/yocto-poky/scripts/opkg-query-helper.py b/import-layers/yocto-poky/scripts/opkg-query-helper.py
index 2fb1a7897..ce89491f6 100755
--- a/import-layers/yocto-poky/scripts/opkg-query-helper.py
+++ b/import-layers/yocto-poky/scripts/opkg-query-helper.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# OpenEmbedded opkg query helper utility
#
diff --git a/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/main.py.in b/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/main.py.in
index 21bb0be3a..a954b125d 100644
--- a/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/main.py.in
+++ b/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/main.py.in
@@ -16,8 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with pybootchartgui. If not, see <http://www.gnu.org/licenses/>.
-from __future__ import print_function
-
import sys
import os
import optparse
@@ -149,9 +147,7 @@ def main(argv=None):
for time in res[4]:
if time is not None:
# output as ms
- print(time * 10, file=f)
- else:
- print(file=f)
+ f.write(time * 10)
finally:
f.close()
filename = _get_filename(options.output)
diff --git a/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/parsing.py b/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/parsing.py
index d423b9f77..a3a0b0b33 100644
--- a/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/parsing.py
+++ b/import-layers/yocto-poky/scripts/pybootchartgui/pybootchartgui/parsing.py
@@ -13,9 +13,6 @@
# You should have received a copy of the GNU General Public License
# along with pybootchartgui. If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import with_statement
-
import os
import string
import re
diff --git a/import-layers/yocto-poky/scripts/pythondeps b/import-layers/yocto-poky/scripts/pythondeps
index ff92e747e..590b9769e 100755
--- a/import-layers/yocto-poky/scripts/pythondeps
+++ b/import-layers/yocto-poky/scripts/pythondeps
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Determine dependencies of python scripts or available python modules in a search path.
#
@@ -187,7 +187,7 @@ def get_depends_recursive(directory):
directory = os.path.realpath(directory)
provides = dict((v, k) for k, v in get_provides(directory))
- for filename, provide in provides.iteritems():
+ for filename, provide in provides.items():
if os.path.isdir(filename):
filename = os.path.join(filename, '__init__.py')
ispkg = True
diff --git a/import-layers/yocto-poky/scripts/recipetool b/import-layers/yocto-poky/scripts/recipetool
index 6c6648756..1052cd2b2 100755
--- a/import-layers/yocto-poky/scripts/recipetool
+++ b/import-layers/yocto-poky/scripts/recipetool
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Recipe creation tool
#
@@ -60,6 +60,7 @@ def main():
parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS,
help='show this help message and exit')
subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
if global_args.debug:
logger.setLevel(logging.DEBUG)
@@ -76,37 +77,40 @@ def main():
scriptutils.logger_setup_color(logger, global_args.color)
tinfoil = tinfoil_init(False)
- for path in ([scripts_path] +
- tinfoil.config_data.getVar('BBPATH', True).split(':')):
- pluginpath = os.path.join(path, 'lib', 'recipetool')
- scriptutils.load_plugins(logger, plugins, pluginpath)
-
- registered = False
- for plugin in plugins:
- if hasattr(plugin, 'register_commands'):
- registered = True
- plugin.register_commands(subparsers)
- elif hasattr(plugin, 'register_command'):
- # Legacy function name
- registered = True
- plugin.register_command(subparsers)
- if hasattr(plugin, 'tinfoil_init'):
- plugin.tinfoil_init(tinfoil)
-
- if not registered:
- logger.error("No commands registered - missing plugins?")
- sys.exit(1)
-
- args = parser.parse_args(unparsed_args, namespace=global_args)
-
try:
- if getattr(args, 'parserecipes', False):
- tinfoil.config_data.disableTracking()
- tinfoil.parseRecipes()
- tinfoil.config_data.enableTracking()
- ret = args.func(args)
- except bb.BBHandledException:
- ret = 1
+ for path in ([scripts_path] +
+ tinfoil.config_data.getVar('BBPATH', True).split(':')):
+ pluginpath = os.path.join(path, 'lib', 'recipetool')
+ scriptutils.load_plugins(logger, plugins, pluginpath)
+
+ registered = False
+ for plugin in plugins:
+ if hasattr(plugin, 'register_commands'):
+ registered = True
+ plugin.register_commands(subparsers)
+ elif hasattr(plugin, 'register_command'):
+ # Legacy function name
+ registered = True
+ plugin.register_command(subparsers)
+ if hasattr(plugin, 'tinfoil_init'):
+ plugin.tinfoil_init(tinfoil)
+
+ if not registered:
+ logger.error("No commands registered - missing plugins?")
+ sys.exit(1)
+
+ args = parser.parse_args(unparsed_args, namespace=global_args)
+
+ try:
+ if getattr(args, 'parserecipes', False):
+ tinfoil.config_data.disableTracking()
+ tinfoil.parseRecipes()
+ tinfoil.config_data.enableTracking()
+ ret = args.func(args)
+ except bb.BBHandledException:
+ ret = 1
+ finally:
+ tinfoil.shutdown()
return ret
diff --git a/import-layers/yocto-poky/scripts/relocate_sdk.py b/import-layers/yocto-poky/scripts/relocate_sdk.py
index 99fca86a1..e47b4d916 100755
--- a/import-layers/yocto-poky/scripts/relocate_sdk.py
+++ b/import-layers/yocto-poky/scripts/relocate_sdk.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (c) 2012 Intel Corporation
#
diff --git a/import-layers/yocto-poky/scripts/runqemu b/import-layers/yocto-poky/scripts/runqemu
index d7fa941a6..dbe17abfc 100755
--- a/import-layers/yocto-poky/scripts/runqemu
+++ b/import-layers/yocto-poky/scripts/runqemu
@@ -1,8 +1,9 @@
-#!/bin/bash
-#
+#!/usr/bin/env python3
+
# Handle running OE images standalone with QEMU
#
# Copyright (C) 2006-2011 Linux Foundation
+# Copyright (c) 2016 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -17,530 +18,1010 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-usage() {
- MYNAME=`basename $0`
-cat <<_EOF
+import os
+import sys
+import logging
+import subprocess
+import re
+import fcntl
+import shutil
+import glob
+import configparser
+
+class OEPathError(Exception):
+ """Custom Exception to give better guidance on missing binaries"""
+ def __init__(self, message):
+ self.message = "In order for this script to dynamically infer paths\n \
+kernels or filesystem images, you either need bitbake in your PATH\n \
+or to source oe-init-build-env before running this script.\n\n \
+Dynamic path inference can be avoided by passing a *.qemuboot.conf to\n \
+runqemu, i.e. `runqemu /path/to/my-image-name.qemuboot.conf`\n\n %s" % message
+
+
+def create_logger():
+ logger = logging.getLogger('runqemu')
+ logger.setLevel(logging.INFO)
+
+ # create console handler and set level to debug
+ ch = logging.StreamHandler()
+ ch.setLevel(logging.INFO)
+
+ # create formatter
+ formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
+
+ # add formatter to ch
+ ch.setFormatter(formatter)
+ # add ch to logger
+ logger.addHandler(ch)
+
+ return logger
+
+logger = create_logger()
+
+def print_usage():
+ print("""
Usage: you can run this script with any valid combination
of the following environment variables (in any order):
KERNEL - the kernel image file to use
ROOTFS - the rootfs image file or nfsroot directory to use
MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
Simplified QEMU command-line options can be passed with:
- nographic - disables video console
- serial - enables a serial console on /dev/ttyS0
- kvm - enables KVM when running qemux86/qemux86-64 (VT-capable CPU required)
- kvm-vhost - enables KVM with vhost support when running qemux86/qemux86-64 (VT-capable CPU required)
+ nographic - disable video console
+ serial - enable a serial console on /dev/ttyS0
+ slirp - enable user networking, no root privileges is required
+ kvm - enable KVM when running x86/x86_64 (VT-capable CPU required)
+ kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU required)
publicvnc - enable a VNC server open to all hosts
- qemuparams="xyz" - specify custom parameters to QEMU
- bootparams="xyz" - specify custom kernel parameters during boot
+ audio - enable audio
+ tcpserial=<port> - specify tcp serial port number
+ biosdir=<dir> - specify custom bios dir
+ biosfilename=<filename> - specify bios filename
+ qemuparams=<xyz> - specify custom parameters to QEMU
+ bootparams=<xyz> - specify custom kernel parameters during boot
+ help: print this text
Examples:
- $MYNAME qemuarm
- $MYNAME qemux86-64 core-image-sato ext4
- $MYNAME qemux86-64 wic-image-minimal wic
- $MYNAME path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial
- $MYNAME qemux86 iso/hddimg/vmdk/qcow2/vdi/ramfs/cpio.gz...
- $MYNAME qemux86 qemuparams="-m 256"
- $MYNAME qemux86 bootparams="psplash=false"
- $MYNAME path/to/<image>-<machine>.vmdk
- $MYNAME path/to/<image>-<machine>.wic
-_EOF
- exit 1
-}
-
-if [ "x$1" = "x" ]; then
- usage
-fi
-
-error() {
- echo "Error: "$*
- usage
-}
-
-MACHINE=${MACHINE:=""}
-KERNEL=${KERNEL:=""}
-ROOTFS=${ROOTFS:=""}
-FSTYPE=${FSTYPE:=""}
-LAZY_ROOTFS=""
-SCRIPT_QEMU_OPT=""
-SCRIPT_QEMU_EXTRA_OPT=""
-SCRIPT_KERNEL_OPT=""
-SERIALSTDIO=""
-TCPSERIAL_PORTNUM=""
-KVM_ENABLED="no"
-KVM_ACTIVE="no"
-VHOST_ENABLED="no"
-VHOST_ACTIVE="no"
-IS_VM="false"
-
-# Determine whether the file is a kernel or QEMU image, and set the
-# appropriate variables
-process_filename() {
- filename=$1
-
- # Extract the filename extension
- EXT=`echo $filename | awk -F . '{ print \$NF }'`
- case /$EXT/ in
- /bin/)
- # A file ending in .bin is a kernel
- [ -z "$KERNEL" ] && KERNEL=$filename || \
- error "conflicting KERNEL args [$KERNEL] and [$filename]"
- ;;
- /ext[234]/|/jffs2/|/btrfs/)
- # A file ending in a supportted fs type is a rootfs image
- if [ -z "$FSTYPE" -o "$FSTYPE" = "$EXT" ]; then
- FSTYPE=$EXT
- ROOTFS=$filename
- else
- error "conflicting FSTYPE types [$FSTYPE] and [$EXT]"
- fi
- ;;
- /hddimg/|/hdddirect/|/vmdk/|/wic/|/qcow2/|/vdi/)
- FSTYPE=$EXT
- VM=$filename
- ROOTFS=$filename
- IS_VM="true"
- ;;
- *)
- error "unknown file arg [$filename]"
- ;;
- esac
-}
-
-check_fstype_conflicts() {
- if [ -z "$FSTYPE" -o "$FSTYPE" = "$1" ]; then
- FSTYPE=$1
- else
- error "conflicting FSTYPE types [$FSTYPE] and [$1]"
- fi
-}
-# Parse command line args without requiring specific ordering. It's a
-# bit more complex, but offers a great user experience.
-while true; do
- arg=${1}
- case "$arg" in
- "qemux86" | "qemux86-64" | "qemuarm" | "qemuarm64" | "qemumips" | "qemumipsel" | \
- "qemumips64" | "qemush4" | "qemuppc" | "qemumicroblaze" | "qemuzynq")
- [ -z "$MACHINE" -o "$MACHINE" = "$arg" ] && MACHINE=$arg || \
- error "conflicting MACHINE types [$MACHINE] and [$arg]"
- ;;
- "ext"[234] | "jffs2" | "nfs" | "btrfs")
- check_fstype_conflicts $arg
- ;;
- "hddimg" | "hdddirect" | "wic" | "vmdk" | "qcow2" | "vdi" | "iso")
- check_fstype_conflicts $arg
- IS_VM="true"
- ;;
- "ramfs" | "cpio.gz")
- FSTYPE=cpio.gz
- ;;
- "nographic")
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -nographic"
- SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0"
- ;;
- "serial")
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -serial stdio"
- SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0"
- SERIALSTDIO="1"
- ;;
- "tcpserial="*)
- TCPSERIAL_PORTNUM=${arg##tcpserial=}
- ;;
- "biosdir="*)
- CUSTOMBIOSDIR="${arg##biosdir=}"
- ;;
- "biosfilename="*)
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -bios ${arg##biosfilename=}"
- ;;
- "qemuparams="*)
- SCRIPT_QEMU_EXTRA_OPT="${arg##qemuparams=}"
-
- # Warn user if they try to specify serial or kvm options
- # to use simplified options instead
- serial_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-serial\)'`
- kvm_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-enable-kvm\)'`
- vga_option=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-vga\)'`
- [ ! -z "$serial_option" -o ! -z "$kvm_option" ] && \
- echo "Please use simplified serial or kvm options instead"
- ;;
- "bootparams="*)
- SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT ${arg##bootparams=}"
- ;;
- "audio")
- if [ "x$MACHINE" = "xqemux86" -o "x$MACHINE" = "xqemux86-64" ]; then
- echo "Enabling audio in qemu."
- echo "Please install snd_intel8x0 or snd_ens1370 driver in linux guest."
- QEMU_AUDIO_DRV="alsa"
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -soundhw ac97,es1370"
- fi
- ;;
- "kvm")
- KVM_ENABLED="yes"
- KVM_CAPABLE=`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1`
- ;;
- "kvm-vhost")
- KVM_ENABLED="yes"
- KVM_CAPABLE=`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1`
- VHOST_ENABLED="yes"
- ;;
- "slirp")
- SLIRP_ENABLED="yes"
- ;;
- "publicvnc")
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -vnc :0"
- ;;
- *-image*)
- [ -z "$ROOTFS" ] || \
- error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
- if [ -f "$arg" ]; then
- process_filename $arg
- elif [ -d "$arg" ]; then
- # Handle the case where the nfsroot dir has -image-
- # in the pathname
- echo "Assuming $arg is an nfs rootfs"
- FSTYPE=nfs
- ROOTFS=$arg
- else
- ROOTFS=$arg
- LAZY_ROOTFS="true"
- fi
- ;;
- "") break ;;
- *)
- # A directory name is an nfs rootfs
- if [ -d "$arg" ]; then
- echo "Assuming $arg is an nfs rootfs"
- if [ -z "$FSTYPE" -o "$FSTYPE" = "nfs" ]; then
- FSTYPE=nfs
- else
- error "conflicting FSTYPE types [$arg] and nfs"
- fi
-
- if [ -z "$ROOTFS" ]; then
- ROOTFS=$arg
- else
- error "conflicting ROOTFS args [$ROOTFS] and [$arg]"
- fi
- elif [ -f "$arg" ]; then
- process_filename $arg
- else
- error "unable to classify arg [$arg]"
- fi
- ;;
- esac
- shift
-done
-
-if [ ! -c /dev/net/tun ] ; then
- echo "TUN control device /dev/net/tun is unavailable; you may need to enable TUN (e.g. sudo modprobe tun)"
- exit 1
-elif [ ! -w /dev/net/tun ] ; then
- echo "TUN control device /dev/net/tun is not writable, please fix (e.g. sudo chmod 666 /dev/net/tun)"
- exit 1
-fi
-
-# Report errors for missing combinations of options
-if [ -z "$MACHINE" -a -z "$KERNEL" -a -z "$VM" -a "$FSTYPE" != "wic" ]; then
- error "you must specify at least a MACHINE or KERNEL argument"
-fi
-if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
- error "NFS booting without an explicit ROOTFS path is not yet supported"
-fi
-
-if [ -z "$MACHINE" ]; then
- if [ "$IS_VM" = "true" ]; then
- [ "x$FSTYPE" = "xwic" ] && filename=$ROOTFS || filename=$VM
- MACHINE=`basename $filename | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
- if [ -z "$MACHINE" ]; then
- error "Unable to set MACHINE from image filename [$VM]"
- fi
- echo "Set MACHINE to [$MACHINE] based on image [$VM]"
- else
- MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
- if [ -z "$MACHINE" ]; then
- error "Unable to set MACHINE from kernel filename [$KERNEL]"
- fi
- echo "Set MACHINE to [$MACHINE] based on kernel [$KERNEL]"
- fi
-fi
-
-YOCTO_KVM_WIKI="https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu"
-YOCTO_PARAVIRT_KVM_WIKI="https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM"
-# Detect KVM configuration
-if [ "x$KVM_ENABLED" = "xyes" ]; then
- if [ -z "$KVM_CAPABLE" ]; then
- echo "You are trying to enable KVM on a cpu without VT support."
- echo "Remove kvm from the command-line, or refer"
- echo "$YOCTO_KVM_WIKI";
- exit 1;
- fi
- if [ "x$MACHINE" != "xqemux86" -a "x$MACHINE" != "xqemux86-64" ]; then
- echo "KVM only support x86 & x86-64. Remove kvm from the command-line";
- exit 1;
- fi
- if [ ! -e /dev/kvm ]; then
- echo "Missing KVM device. Have you inserted kvm modules?"
- echo "For further help see:"
- echo "$YOCTO_KVM_WIKI";
- exit 1;
- fi
- if [ -w /dev/kvm -a -r /dev/kvm ]; then
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm"
- KVM_ACTIVE="yes"
- else
- echo "You have no rights on /dev/kvm."
- echo "Please change the ownership of this file as described at:"
- echo "$YOCTO_KVM_WIKI";
- exit 1;
- fi
- if [ "x$VHOST_ENABLED" = "xyes" ]; then
- if [ ! -e /dev/vhost-net ]; then
- echo "Missing virtio net device. Have you inserted vhost-net module?"
- echo "For further help see:"
- echo "$YOCTO_PARAVIRT_KVM_WIKI";
- exit 1;
- fi
-
- if [ -w /dev/vhost-net -a -r /dev/vhost-net ]; then
- VHOST_ACTIVE="yes"
- else
- echo "You have no rights on /dev/vhost-net."
- echo "Please change the ownership of this file as described at:"
- echo "$YOCTO_KVM_WIKI";
- exit 1;
- fi
- fi
-fi
-
-machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'`
-# MACHINE is now set for all cases
-
-# Defaults used when these vars need to be inferred
-QEMUX86_DEFAULT_KERNEL=bzImage-qemux86.bin
-QEMUX86_DEFAULT_FSTYPE=ext4
-
-QEMUX86_64_DEFAULT_KERNEL=bzImage-qemux86-64.bin
-QEMUX86_64_DEFAULT_FSTYPE=ext4
-
-QEMUARM_DEFAULT_KERNEL=zImage-qemuarm.bin
-QEMUARM_DEFAULT_FSTYPE=ext4
-
-QEMUARM64_DEFAULT_KERNEL=Image-qemuarm64.bin
-QEMUARM64_DEFAULT_FSTYPE=ext4
-
-QEMUMIPS_DEFAULT_KERNEL=vmlinux-qemumips.bin
-QEMUMIPS_DEFAULT_FSTYPE=ext4
-
-QEMUMIPSEL_DEFAULT_KERNEL=vmlinux-qemumipsel.bin
-QEMUMIPSEL_DEFAULT_FSTYPE=ext4
-
-QEMUMIPS64_DEFAULT_KERNEL=vmlinux-qemumips64.bin
-QEMUMIPS64_DEFAULT_FSTYPE=ext4
-
-QEMUSH4_DEFAULT_KERNEL=vmlinux-qemumips.bin
-QEMUSH4_DEFAULT_FSTYPE=ext4
-
-QEMUPPC_DEFAULT_KERNEL=vmlinux-qemuppc.bin
-QEMUPPC_DEFAULT_FSTYPE=ext4
-
-QEMUMICROBLAZE_DEFAULT_KERNEL=linux.bin.ub
-QEMUMICROBLAZE_DEFAULT_FSTYPE=cpio
-
-QEMUZYNQ_DEFAULT_KERNEL=uImage
-QEMUZYNQ_DEFAULT_FSTYPE=cpio
-
-setup_path_vars() {
- if [ -z "$OE_TMPDIR" ] ; then
- PATHS_REQUIRED=true
- elif [ "$1" = "1" -a -z "$DEPLOY_DIR_IMAGE" ] ; then
- PATHS_REQUIRED=true
- else
- PATHS_REQUIRED=false
- fi
-
- if [ "$PATHS_REQUIRED" = "true" ]; then
- # Try to get the variable values from bitbake
- type -P bitbake &>/dev/null || {
- echo "In order for this script to dynamically infer paths";
- echo "to kernels or filesystem images, you either need";
- echo "bitbake in your PATH or to source oe-init-build-env";
- echo "before running this script" >&2;
- exit 1; }
-
- # We have bitbake in PATH, get the variable values from bitbake
- BITBAKE_ENV_TMPFILE=`mktemp --tmpdir runqemu.XXXXXXXXXX`
- if [ "$?" != "0" ] ; then
- echo "Error: mktemp failed for bitbake environment output"
- exit 1
- fi
-
- MACHINE=$MACHINE bitbake -e > $BITBAKE_ENV_TMPFILE
- if [ -z "$OE_TMPDIR" ] ; then
- OE_TMPDIR=`sed -n 's/^TMPDIR=\"\(.*\)\"/\1/p' $BITBAKE_ENV_TMPFILE`
- fi
- if [ -z "$DEPLOY_DIR_IMAGE" ] ; then
- DEPLOY_DIR_IMAGE=`sed -n 's/^DEPLOY_DIR_IMAGE=\"\(.*\)\"/\1/p' $BITBAKE_ENV_TMPFILE`
- fi
- if [ -z "$OE_TMPDIR" ]; then
- # Check for errors from bitbake that the user needs to know about
- BITBAKE_OUTPUT=`cat $BITBAKE_ENV_TMPFILE | wc -l`
- if [ "$BITBAKE_OUTPUT" -eq "0" ]; then
- echo "Error: this script needs to be run from your build directory, or you need"
- echo "to explicitly set OE_TMPDIR and DEPLOY_DIR_IMAGE in your environment"
- else
- echo "There was an error running bitbake to determine TMPDIR"
- echo "Here is the output from 'bitbake -e':"
- cat $BITBAKE_ENV_TMPFILE
- fi
- rm $BITBAKE_ENV_TMPFILE
- exit 1
- fi
- rm $BITBAKE_ENV_TMPFILE
- fi
-}
-
-setup_sysroot() {
- # Toolchain installs set up $OECORE_NATIVE_SYSROOT in their
- # environment script. If that variable isn't set, we're
- # either in an in-tree build scenario or the environment
- # script wasn't source'd.
- if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
- setup_path_vars
- BUILD_ARCH=`uname -m`
- BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
- BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
-
- OECORE_NATIVE_SYSROOT=$OE_TMPDIR/sysroots/$BUILD_SYS
- fi
-
- # Some recipes store the BIOS under $OE_TMPDIR/sysroots/$MACHINE,
- # now defined as OECORE_MACHINE_SYSROOT. The latter is used when searching
- # BIOS, VGA BIOS and keymaps.
- if [ -z "$OECORE_MACHINE_SYSROOT" ]; then
- OECORE_MACHINE_SYSROOT=$OE_TMPDIR/sysroots/$MACHINE
- fi
-}
-
-# Locate a rootfs image to boot which matches our expected
-# machine and fstype.
-findimage() {
- where=$1
- machine=$2
- extension=$3
-
- # Sort rootfs candidates by modification time - the most
- # recently created one is the one we most likely want to boot.
- filename=`ls -t1 $where/*-image*$machine.$extension 2>/dev/null | head -n1`
- if [ "x$filename" != "x" ]; then
- ROOTFS=$filename
- return
- fi
-
- echo "Couldn't find a $machine rootfs image in $where."
- exit 1
-}
-
-if [ -e "$ROOTFS" -a -z "$FSTYPE" ]; then
- # Extract the filename extension
- EXT=`echo $ROOTFS | awk -F . '{ print \$NF }'`
- if [ "x$EXT" = "xext2" -o "x$EXT" = "xext3" -o \
- "x$EXT" = "xjffs2" -o "x$EXT" = "xbtrfs" -o \
- "x$EXT" = "xext4" ]; then
- FSTYPE=$EXT
- else
- echo "Note: Unable to determine filesystem extension for $ROOTFS"
- echo "We will use the default FSTYPE for $MACHINE"
- # ...which is done further below...
- fi
-fi
-
-if [ -z "$KERNEL" -a "$IS_VM" = "false" ]; then \
- setup_path_vars 1
- eval kernel_file=\$${machine2}_DEFAULT_KERNEL
- KERNEL=$DEPLOY_DIR_IMAGE/$kernel_file
-
- if [ -z "$KERNEL" ]; then
- error "Unable to determine default kernel for MACHINE [$MACHINE]"
- fi
-fi
-# KERNEL is now set for all cases
-
-if [ -z "$FSTYPE" ]; then
- eval FSTYPE=\$${machine2}_DEFAULT_FSTYPE
-
- if [ -z "$FSTYPE" ]; then
- error "Unable to determine default fstype for MACHINE [$MACHINE]"
- fi
-fi
-
-# FSTYPE is now set for all cases
-
-# Handle cases where a ROOTFS type is given instead of a filename, e.g.
-# core-image-sato
-if [ "$LAZY_ROOTFS" = "true" ]; then
- setup_path_vars 1
- echo "Assuming $ROOTFS really means $DEPLOY_DIR_IMAGE/$ROOTFS-$MACHINE.$FSTYPE"
- if [ "$IS_VM" = "true" ]; then
- VM=$DEPLOY_DIR_IMAGE/$ROOTFS-$MACHINE.$FSTYPE
- else
- ROOTFS=$DEPLOY_DIR_IMAGE/$ROOTFS-$MACHINE.$FSTYPE
- fi
-fi
-
-if [ -z "$ROOTFS" ]; then
- setup_path_vars 1
- T=$DEPLOY_DIR_IMAGE
- eval rootfs_list=\$${machine2}_DEFAULT_ROOTFS
- findimage $T $MACHINE $FSTYPE
-
- if [ -z "$ROOTFS" ]; then
- error "Unable to determine default rootfs for MACHINE [$MACHINE]"
- elif [ "$IS_VM" = "true" ]; then
- VM=$ROOTFS
- fi
-fi
-# ROOTFS is now set for all cases, now expand it to be an absolute path, it should exist at this point
-
-ROOTFS=`readlink -f $ROOTFS`
-
-echo ""
-echo "Continuing with the following parameters:"
-if [ "$IS_VM" = "false" ]; then
- echo "KERNEL: [$KERNEL]"
- echo "ROOTFS: [$ROOTFS]"
-else
- echo "VM: [$VM]"
-fi
-echo "FSTYPE: [$FSTYPE]"
-
-setup_sysroot
-# OECORE_NATIVE_SYSROOT and OECORE_MACHINE_SYSROOT are now set for all cases
-
-INTERNAL_SCRIPT="$0-internal"
-if [ ! -f "$INTERNAL_SCRIPT" -o ! -r "$INTERNAL_SCRIPT" ]; then
-INTERNAL_SCRIPT=`which runqemu-internal`
-fi
-
-# Specify directory for BIOS, VGA BIOS and keymaps
-if [ ! -z "$CUSTOMBIOSDIR" ]; then
- if [ -d "$OECORE_NATIVE_SYSROOT/$CUSTOMBIOSDIR" ]; then
- echo "Assuming biosdir is $OECORE_NATIVE_SYSROOT/$CUSTOMBIOSDIR"
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -L $OECORE_NATIVE_SYSROOT/$CUSTOMBIOSDIR"
- elif [ -d "$OECORE_MACHINE_SYSROOT/$CUSTOMBIOSDIR" ]; then
- echo "Assuming biosdir is $OECORE_MACHINE_SYSROOT/$CUSTOMBIOSDIR"
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -L $OECORE_MACHINE_SYSROOT/$CUSTOMBIOSDIR"
- else
- if [ ! -d "$CUSTOMBIOSDIR" ]; then
- echo "Custom BIOS directory not found. Tried: $CUSTOMBIOSDIR"
- echo "and $OECORE_NATIVE_SYSROOT/$CUSTOMBIOSDIR"
- echo "and $OECORE_MACHINE_SYSROOT/$CUSTOMBIOSDIR"
- exit 1;
- fi
- echo "Assuming biosdir is $CUSTOMBIOSDIR"
- SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -L $CUSTOMBIOSDIR"
- fi
-fi
-
-. $INTERNAL_SCRIPT
-exit $?
+ runqemu qemuarm
+ runqemu tmp/deploy/images/qemuarm
+ runqemu tmp/deploy/images/qemux86/.qemuboot.conf
+ runqemu qemux86-64 core-image-sato ext4
+ runqemu qemux86-64 wic-image-minimal wic
+ runqemu path/to/bzImage-qemux86.bin path/to/nfsrootdir/ serial
+ runqemu qemux86 iso/hddimg/vmdk/qcow2/vdi/ramfs/cpio.gz...
+ runqemu qemux86 qemuparams="-m 256"
+ runqemu qemux86 bootparams="psplash=false"
+ runqemu path/to/<image>-<machine>.vmdk
+ runqemu path/to/<image>-<machine>.wic
+""")
+
+def check_tun():
+ """Check /dev/net/run"""
+ dev_tun = '/dev/net/tun'
+ if not os.path.exists(dev_tun):
+ raise Exception("TUN control device %s is unavailable; you may need to enable TUN (e.g. sudo modprobe tun)" % dev_tun)
+
+ if not os.access(dev_tun, os.W_OK):
+ raise Exception("TUN control device %s is not writable, please fix (e.g. sudo chmod 666 %s)" % (dev_tun, dev_tun))
+
+def check_libgl(qemu_bin):
+ cmd = 'ldd %s' % qemu_bin
+ logger.info('Running %s...' % cmd)
+ need_gl = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
+ if re.search('libGLU', need_gl):
+ # We can't run without a libGL.so
+ libgl = False
+ check_files = (('/usr/lib/libGL.so', '/usr/lib/libGLU.so'), \
+ ('/usr/lib64/libGL.so', '/usr/lib64/libGLU.so'), \
+ ('/usr/lib/*-linux-gnu/libGL.so', '/usr/lib/*-linux-gnu/libGLU.so'))
+
+ for (f1, f2) in check_files:
+ if re.search('\*', f1):
+ for g1 in glob.glob(f1):
+ if libgl:
+ break
+ if os.path.exists(g1):
+ for g2 in glob.glob(f2):
+ if os.path.exists(g2):
+ libgl = True
+ break
+ if libgl:
+ break
+ else:
+ if os.path.exists(f1) and os.path.exists(f2):
+ libgl = True
+ break
+ if not libgl:
+ logger.error("You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator.")
+ logger.error("Ubuntu package names are: libgl1-mesa-dev and libglu1-mesa-dev.")
+ logger.error("Fedora package names are: mesa-libGL-devel mesa-libGLU-devel.")
+ raise Exception('%s requires libGLU, but not found' % qemu_bin)
+
+def get_first_file(cmds):
+ """Return first file found in wildcard cmds"""
+ for cmd in cmds:
+ all_files = glob.glob(cmd)
+ if all_files:
+ for f in all_files:
+ if not os.path.isdir(f):
+ return f
+ return ''
+
+class BaseConfig(object):
+ def __init__(self):
+ # Vars can be merged with .qemuboot.conf, use a dict to manage them.
+ self.d = {
+ 'MACHINE': '',
+ 'DEPLOY_DIR_IMAGE': '',
+ 'QB_KERNEL_ROOT': '/dev/vda',
+ }
+
+ self.qemu_opt = ''
+ self.qemu_opt_script = ''
+ self.nfs_dir = ''
+ self.clean_nfs_dir = False
+ self.nfs_server = ''
+ self.rootfs = ''
+ self.qemuboot = ''
+ self.qbconfload = False
+ self.kernel = ''
+ self.kernel_cmdline = ''
+ self.kernel_cmdline_script = ''
+ self.dtb = ''
+ self.fstype = ''
+ self.kvm_enabled = False
+ self.vhost_enabled = False
+ self.slirp_enabled = False
+ self.nfs_instance = 0
+ self.nfs_running = False
+ self.serialstdio = False
+ self.cleantap = False
+ self.saved_stty = ''
+ self.audio_enabled = False
+ self.tcpserial_portnum = ''
+ self.custombiosdir = ''
+ self.lock = ''
+ self.lock_descriptor = ''
+ self.bitbake_e = ''
+ self.snapshot = False
+ self.fstypes = ('ext2', 'ext3', 'ext4', 'jffs2', 'nfs', 'btrfs', 'cpio.gz', 'cpio', 'ramfs')
+ self.vmtypes = ('hddimg', 'hdddirect', 'wic', 'vmdk', 'qcow2', 'vdi', 'iso')
+
+ def acquire_lock(self):
+ logger.info("Acquiring lockfile %s..." % self.lock)
+ try:
+ self.lock_descriptor = open(self.lock, 'w')
+ fcntl.flock(self.lock_descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB)
+ except Exception as e:
+ logger.info("Acquiring lockfile %s failed: %s" % (self.lock, e))
+ if self.lock_descriptor:
+ self.lock_descriptor.close()
+ return False
+ return True
+
+ def release_lock(self):
+ fcntl.flock(self.lock_descriptor, fcntl.LOCK_UN)
+ self.lock_descriptor.close()
+ os.remove(self.lock)
+
+ def get(self, key):
+ if key in self.d:
+ return self.d.get(key)
+ else:
+ return ''
+
+ def set(self, key, value):
+ self.d[key] = value
+
+ def is_deploy_dir_image(self, p):
+ if os.path.isdir(p):
+ if not re.search('.qemuboot.conf$', '\n'.join(os.listdir(p)), re.M):
+ logger.info("Can't find required *.qemuboot.conf in %s" % p)
+ return False
+ if not re.search('-image-', '\n'.join(os.listdir(p))):
+ logger.info("Can't find *-image-* in %s" % p)
+ return False
+ return True
+ else:
+ return False
+
+ def check_arg_fstype(self, fst):
+ """Check and set FSTYPE"""
+ if fst not in self.fstypes + self.vmtypes:
+ logger.warn("Maybe unsupported FSTYPE: %s" % fst)
+ if not self.fstype or self.fstype == fst:
+ if fst == 'ramfs':
+ fst = 'cpio.gz'
+ self.fstype = fst
+ else:
+ raise Exception("Conflicting: FSTYPE %s and %s" % (self.fstype, fst))
+
+ def set_machine_deploy_dir(self, machine, deploy_dir_image):
+ """Set MACHINE and DEPLOY_DIR_IMAGE"""
+ logger.info('MACHINE: %s' % machine)
+ self.set("MACHINE", machine)
+ logger.info('DEPLOY_DIR_IMAGE: %s' % deploy_dir_image)
+ self.set("DEPLOY_DIR_IMAGE", deploy_dir_image)
+
+ def check_arg_nfs(self, p):
+ if os.path.isdir(p):
+ self.nfs_dir = p
+ else:
+ m = re.match('(.*):(.*)', p)
+ self.nfs_server = m.group(1)
+ self.nfs_dir = m.group(2)
+ self.rootfs = ""
+ self.check_arg_fstype('nfs')
+
+ def check_arg_path(self, p):
+ """
+ - Check whether it is <image>.qemuboot.conf or contains <image>.qemuboot.conf
+ - Check whether is a kernel file
+ - Check whether is a image file
+ - Check whether it is a nfs dir
+ """
+ if p.endswith('.qemuboot.conf'):
+ self.qemuboot = p
+ self.qbconfload = True
+ elif re.search('\.bin$', p) or re.search('bzImage', p) or \
+ re.search('zImage', p) or re.search('vmlinux', p) or \
+ re.search('fitImage', p) or re.search('uImage', p):
+ self.kernel = p
+ elif os.path.exists(p) and (not os.path.isdir(p)) and re.search('-image-', os.path.basename(p)):
+ self.rootfs = p
+ dirpath = os.path.dirname(p)
+ m = re.search('(.*)\.(.*)$', p)
+ if m:
+ qb = '%s%s' % (re.sub('\.rootfs$', '', m.group(1)), '.qemuboot.conf')
+ if os.path.exists(qb):
+ self.qemuboot = qb
+ self.qbconfload = True
+ else:
+ logger.warn("%s doesn't exist" % qb)
+ fst = m.group(2)
+ self.check_arg_fstype(fst)
+ else:
+ raise Exception("Can't find FSTYPE from: %s" % p)
+ elif os.path.isdir(p) or re.search(':', arg) and re.search('/', arg):
+ if self.is_deploy_dir_image(p):
+ logger.info('DEPLOY_DIR_IMAGE: %s' % p)
+ self.set("DEPLOY_DIR_IMAGE", p)
+ else:
+ logger.info("Assuming %s is an nfs rootfs" % p)
+ self.check_arg_nfs(p)
+ else:
+ raise Exception("Unknown path arg %s" % p)
+
+ def check_arg_machine(self, arg):
+ """Check whether it is a machine"""
+ if self.get('MACHINE') and self.get('MACHINE') != arg or re.search('/', arg):
+ raise Exception("Unknown arg: %s" % arg)
+ elif self.get('MACHINE') == arg:
+ return
+ logger.info('Assuming MACHINE = %s' % arg)
+
+ # if we're running under testimage, or similarly as a child
+ # of an existing bitbake invocation, we can't invoke bitbake
+ # to validate the MACHINE setting and must assume it's correct...
+ # FIXME: testimage.bbclass exports these two variables into env,
+ # are there other scenarios in which we need to support being
+ # invoked by bitbake?
+ deploy = os.environ.get('DEPLOY_DIR_IMAGE')
+ bbchild = deploy and os.environ.get('OE_TMPDIR')
+ if bbchild:
+ self.set_machine_deploy_dir(arg, deploy)
+ return
+ # also check whether we're running under a sourced toolchain
+ # environment file
+ if os.environ.get('OECORE_NATIVE_SYSROOT'):
+ self.set("MACHINE", arg)
+ return
+
+ cmd = 'MACHINE=%s bitbake -e' % arg
+ logger.info('Running %s...' % cmd)
+ self.bitbake_e = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
+ # bitbake -e doesn't report invalid MACHINE as an error, so
+ # let's check DEPLOY_DIR_IMAGE to make sure that it is a valid
+ # MACHINE.
+ s = re.search('^DEPLOY_DIR_IMAGE="(.*)"', self.bitbake_e, re.M)
+ if s:
+ deploy_dir_image = s.group(1)
+ else:
+ raise Exception("bitbake -e %s" % self.bitbake_e)
+ if self.is_deploy_dir_image(deploy_dir_image):
+ self.set_machine_deploy_dir(arg, deploy_dir_image)
+ else:
+ logger.error("%s not a directory valid DEPLOY_DIR_IMAGE" % deploy_dir_image)
+ self.set("MACHINE", arg)
+
+ def check_args(self):
+ unknown_arg = ""
+ for arg in sys.argv[1:]:
+ if arg in self.fstypes + self.vmtypes:
+ self.check_arg_fstype(arg)
+ elif arg == 'nographic':
+ self.qemu_opt_script += ' -nographic'
+ self.kernel_cmdline_script += ' console=ttyS0'
+ elif arg == 'serial':
+ self.kernel_cmdline_script += ' console=ttyS0'
+ self.serialstdio = True
+ elif arg == 'audio':
+ logger.info("Enabling audio in qemu")
+ logger.info("Please install sound drivers in linux host")
+ self.audio_enabled = True
+ elif arg == 'kvm':
+ self.kvm_enabled = True
+ elif arg == 'kvm-vhost':
+ self.vhost_enabled = True
+ elif arg == 'slirp':
+ self.slirp_enabled = True
+ elif arg == 'snapshot':
+ self.snapshot = True
+ elif arg == 'publicvnc':
+ self.qemu_opt_script += ' -vnc :0'
+ elif arg.startswith('tcpserial='):
+ self.tcpserial_portnum = arg[len('tcpserial='):]
+ elif arg.startswith('biosdir='):
+ self.custombiosdir = arg[len('biosdir='):]
+ elif arg.startswith('biosfilename='):
+ self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):]
+ elif arg.startswith('qemuparams='):
+ self.qemu_opt_script += ' %s' % arg[len('qemuparams='):]
+ elif arg.startswith('bootparams='):
+ self.kernel_cmdline_script += ' %s' % arg[len('bootparams='):]
+ elif os.path.exists(arg) or (re.search(':', arg) and re.search('/', arg)):
+ self.check_arg_path(os.path.abspath(arg))
+ elif re.search('-image-', arg):
+ # Lazy rootfs
+ self.rootfs = arg
+ else:
+ # At last, assume is it the MACHINE
+ if (not unknown_arg) or unknown_arg == arg:
+ unknown_arg = arg
+ else:
+ raise Exception("Can't handle two unknown args: %s %s" % (unknown_arg, arg))
+ # Check to make sure it is a valid machine
+ if unknown_arg:
+ if self.get('MACHINE') == unknown_arg:
+ return
+ if not self.get('DEPLOY_DIR_IMAGE'):
+ # Trying to get DEPLOY_DIR_IMAGE from env.
+ p = os.getenv('DEPLOY_DIR_IMAGE')
+ if p and self.is_deploy_dir_image(p):
+ machine = os.path.basename(p)
+ if unknown_arg == machine:
+ self.set_machine_deploy_dir(machine, p)
+ return
+ else:
+ logger.info('DEPLOY_DIR_IMAGE: %s' % p)
+ self.set("DEPLOY_DIR_IMAGE", p)
+ self.check_arg_machine(unknown_arg)
+
+ def check_kvm(self):
+ """Check kvm and kvm-host"""
+ if not (self.kvm_enabled or self.vhost_enabled):
+ self.qemu_opt_script += ' %s %s' % (self.get('QB_MACHINE'), self.get('QB_CPU'))
+ return
+
+ if not self.get('QB_CPU_KVM'):
+ raise Exception("QB_CPU_KVM is NULL, this board doesn't support kvm")
+
+ self.qemu_opt_script += ' %s %s' % (self.get('QB_MACHINE'), self.get('QB_CPU_KVM'))
+ yocto_kvm_wiki = "https://wiki.yoctoproject.org/wiki/How_to_enable_KVM_for_Poky_qemu"
+ yocto_paravirt_kvm_wiki = "https://wiki.yoctoproject.org/wiki/Running_an_x86_Yocto_Linux_image_under_QEMU_KVM"
+ dev_kvm = '/dev/kvm'
+ dev_vhost = '/dev/vhost-net'
+ with open('/proc/cpuinfo', 'r') as f:
+ kvm_cap = re.search('vmx|svm', "".join(f.readlines()))
+ if not kvm_cap:
+ logger.error("You are trying to enable KVM on a cpu without VT support.")
+ logger.error("Remove kvm from the command-line, or refer:")
+ raise Exception(yocto_kvm_wiki)
+
+ if not os.path.exists(dev_kvm):
+ logger.error("Missing KVM device. Have you inserted kvm modules?")
+ logger.error("For further help see:")
+ raise Exception(yocto_kvm_wiki)
+
+ if os.access(dev_kvm, os.W_OK|os.R_OK):
+ self.qemu_opt_script += ' -enable-kvm'
+ else:
+ logger.error("You have no read or write permission on /dev/kvm.")
+ logger.error("Please change the ownership of this file as described at:")
+ raise Exception(yocto_kvm_wiki)
+
+ if self.vhost_enabled:
+ if not os.path.exists(dev_vhost):
+ logger.error("Missing virtio net device. Have you inserted vhost-net module?")
+ logger.error("For further help see:")
+ raise Exception(yocto_paravirt_kvm_wiki)
+
+ if not os.access(dev_kvm, os.W_OK|os.R_OK):
+ logger.error("You have no read or write permission on /dev/vhost-net.")
+ logger.error("Please change the ownership of this file as described at:")
+ raise Exception(yocto_kvm_wiki)
+
+ def check_fstype(self):
+ """Check and setup FSTYPE"""
+ if not self.fstype:
+ fstype = self.get('QB_DEFAULT_FSTYPE')
+ if fstype:
+ self.fstype = fstype
+ else:
+ raise Exception("FSTYPE is NULL!")
+
+ def check_rootfs(self):
+ """Check and set rootfs"""
+
+ if self.fstype == 'nfs':
+ return
+
+ if self.rootfs and not os.path.exists(self.rootfs):
+ # Lazy rootfs
+ self.rootfs = "%s/%s-%s.%s" % (self.get('DEPLOY_DIR_IMAGE'),
+ self.rootfs, self.get('MACHINE'),
+ self.fstype)
+ elif not self.rootfs:
+ cmd_name = '%s/%s*.%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_NAME'), self.fstype)
+ cmd_link = '%s/%s*.%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_LINK_NAME'), self.fstype)
+ cmds = (cmd_name, cmd_link)
+ self.rootfs = get_first_file(cmds)
+ if not self.rootfs:
+ raise Exception("Failed to find rootfs: %s or %s" % cmds)
+
+ if not os.path.exists(self.rootfs):
+ raise Exception("Can't find rootfs: %s" % self.rootfs)
+
+ def check_kernel(self):
+ """Check and set kernel, dtb"""
+ # The vm image doesn't need a kernel
+ if self.fstype in self.vmtypes:
+ return
+
+ deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
+ if not self.kernel:
+ kernel_match_name = "%s/%s" % (deploy_dir_image, self.get('QB_DEFAULT_KERNEL'))
+ kernel_match_link = "%s/%s" % (deploy_dir_image, self.get('KERNEL_IMAGETYPE'))
+ kernel_startswith = "%s/%s*" % (deploy_dir_image, self.get('KERNEL_IMAGETYPE'))
+ cmds = (kernel_match_name, kernel_match_link, kernel_startswith)
+ self.kernel = get_first_file(cmds)
+ if not self.kernel:
+ raise Exception('KERNEL not found: %s, %s or %s' % cmds)
+
+ if not os.path.exists(self.kernel):
+ raise Exception("KERNEL %s not found" % self.kernel)
+
+ dtb = self.get('QB_DTB')
+ if dtb:
+ cmd_match = "%s/%s" % (deploy_dir_image, dtb)
+ cmd_startswith = "%s/%s*" % (deploy_dir_image, dtb)
+ cmd_wild = "%s/*.dtb" % deploy_dir_image
+ cmds = (cmd_match, cmd_startswith, cmd_wild)
+ self.dtb = get_first_file(cmds)
+ if not os.path.exists(self.dtb):
+ raise Exception('DTB not found: %s, %s or %s' % cmds)
+
+ def check_biosdir(self):
+ """Check custombiosdir"""
+ if not self.custombiosdir:
+ return
+
+ biosdir = ""
+ biosdir_native = "%s/%s" % (self.get('STAGING_DIR_NATIVE'), self.custombiosdir)
+ biosdir_host = "%s/%s" % (self.get('STAGING_DIR_HOST'), self.custombiosdir)
+ for i in (self.custombiosdir, biosdir_native, biosdir_host):
+ if os.path.isdir(i):
+ biosdir = i
+ break
+
+ if biosdir:
+ logger.info("Assuming biosdir is: %s" % biosdir)
+ self.qemu_opt_script += ' -L %s' % biosdir
+ else:
+ logger.error("Custom BIOS directory not found. Tried: %s, %s, and %s" % (self.custombiosdir, biosdir_native, biosdir_host))
+ raise Exception("Invalid custombiosdir: %s" % self.custombiosdir)
+
+ def check_mem(self):
+ s = re.search('-m +([0-9]+)', self.qemu_opt_script)
+ if s:
+ self.set('QB_MEM', '-m %s' % s.group(1))
+ elif not self.get('QB_MEM'):
+ logger.info('QB_MEM is not set, use 512M by default')
+ self.set('QB_MEM', '-m 512')
+
+ self.kernel_cmdline_script += ' mem=%s' % self.get('QB_MEM').replace('-m','').strip() + 'M'
+ self.qemu_opt_script += ' %s' % self.get('QB_MEM')
+
+ def check_tcpserial(self):
+ if self.tcpserial_portnum:
+ if self.get('QB_TCPSERIAL_OPT'):
+ self.qemu_opt_script += ' ' + self.get('QB_TCPSERIAL_OPT').replace('@PORT@', self.tcpserial_portnum)
+ else:
+ self.qemu_opt_script += ' -serial tcp:127.0.0.1:%s' % self.tcpserial_portnum
+
+ def check_and_set(self):
+ """Check configs sanity and set when needed"""
+ self.validate_paths()
+ check_tun()
+ # Check audio
+ if self.audio_enabled:
+ if not self.get('QB_AUDIO_DRV'):
+ raise Exception("QB_AUDIO_DRV is NULL, this board doesn't support audio")
+ if not self.get('QB_AUDIO_OPT'):
+ logger.warn('QB_AUDIO_OPT is NULL, you may need define it to make audio work')
+ else:
+ self.qemu_opt_script += ' %s' % self.get('QB_AUDIO_OPT')
+ os.putenv('QEMU_AUDIO_DRV', self.get('QB_AUDIO_DRV'))
+ else:
+ os.putenv('QEMU_AUDIO_DRV', 'none')
+
+ self.check_kvm()
+ self.check_fstype()
+ self.check_rootfs()
+ self.check_kernel()
+ self.check_biosdir()
+ self.check_mem()
+ self.check_tcpserial()
+
+ def read_qemuboot(self):
+ if not self.qemuboot:
+ if self.get('DEPLOY_DIR_IMAGE'):
+ deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
+ elif os.getenv('DEPLOY_DIR_IMAGE'):
+ deploy_dir_image = os.getenv('DEPLOY_DIR_IMAGE')
+ else:
+ logger.info("Can't find qemuboot conf file, DEPLOY_DIR_IMAGE is NULL!")
+ return
+
+ if self.rootfs and not os.path.exists(self.rootfs):
+ # Lazy rootfs
+ machine = self.get('MACHINE')
+ if not machine:
+ machine = os.path.basename(deploy_dir_image)
+ self.qemuboot = "%s/%s-%s.qemuboot.conf" % (deploy_dir_image,
+ self.rootfs, machine)
+ else:
+ cmd = 'ls -t %s/*.qemuboot.conf' % deploy_dir_image
+ logger.info('Running %s...' % cmd)
+ qbs = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
+ if qbs:
+ self.qemuboot = qbs.split()[0]
+ self.qbconfload = True
+
+ if not self.qemuboot:
+ # If we haven't found a .qemuboot.conf at this point it probably
+ # doesn't exist, continue without
+ return
+
+ if not os.path.exists(self.qemuboot):
+ raise Exception("Failed to find <image>.qemuboot.conf!")
+
+ logger.info('CONFFILE: %s' % self.qemuboot)
+
+ cf = configparser.ConfigParser()
+ cf.read(self.qemuboot)
+ for k, v in cf.items('config_bsp'):
+ k_upper = k.upper()
+ self.set(k_upper, v)
+
+ def validate_paths(self):
+ """Ensure all relevant path variables are set"""
+ # When we're started with a *.qemuboot.conf arg assume that image
+ # artefacts are relative to that file, rather than in whatever
+ # directory DEPLOY_DIR_IMAGE in the conf file points to.
+ if self.qbconfload:
+ imgdir = os.path.dirname(self.qemuboot)
+ if imgdir != self.get('DEPLOY_DIR_IMAGE'):
+ logger.info('Setting DEPLOY_DIR_IMAGE to folder containing %s (%s)' % (self.qemuboot, imgdir))
+ self.set('DEPLOY_DIR_IMAGE', imgdir)
+
+ # If the STAGING_*_NATIVE directories from the config file don't exist
+ # and we're in a sourced OE build directory try to extract the paths
+ # from `bitbake -e`
+ havenative = os.path.exists(self.get('STAGING_DIR_NATIVE')) and \
+ os.path.exists(self.get('STAGING_BINDIR_NATIVE'))
+
+ if not havenative:
+ if not self.bitbake_e:
+ self.load_bitbake_env()
+
+ if self.bitbake_e:
+ native_vars = ['STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE']
+ for nv in native_vars:
+ s = re.search('^%s="(.*)"' % nv, self.bitbake_e, re.M)
+ if s and s.group(1) != self.get(nv):
+ logger.info('Overriding conf file setting of %s to %s from Bitbake environment' % (nv, s.group(1)))
+ self.set(nv, s.group(1))
+ else:
+ # when we're invoked from a running bitbake instance we won't
+ # be able to call `bitbake -e`, then try:
+ # - get OE_TMPDIR from environment and guess paths based on it
+ # - get OECORE_NATIVE_SYSROOT from environment (for sdk)
+ tmpdir = os.environ.get('OE_TMPDIR', None)
+ oecore_native_sysroot = os.environ.get('OECORE_NATIVE_SYSROOT', None)
+ if tmpdir:
+ logger.info('Setting STAGING_DIR_NATIVE and STAGING_BINDIR_NATIVE relative to OE_TMPDIR (%s)' % tmpdir)
+ hostos, _, _, _, machine = os.uname()
+ buildsys = '%s-%s' % (machine, hostos.lower())
+ staging_dir_native = '%s/sysroots/%s' % (tmpdir, buildsys)
+ self.set('STAGING_DIR_NATIVE', staging_dir_native)
+ elif oecore_native_sysroot:
+ logger.info('Setting STAGING_DIR_NATIVE to OECORE_NATIVE_SYSROOT (%s)' % oecore_native_sysroot)
+ self.set('STAGING_DIR_NATIVE', oecore_native_sysroot)
+ if self.get('STAGING_DIR_NATIVE'):
+ # we have to assume that STAGING_BINDIR_NATIVE is at usr/bin
+ staging_bindir_native = '%s/usr/bin' % self.get('STAGING_DIR_NATIVE')
+ logger.info('Setting STAGING_BINDIR_NATIVE to %s' % staging_bindir_native)
+ self.set('STAGING_BINDIR_NATIVE', '%s/usr/bin' % self.get('STAGING_DIR_NATIVE'))
+
+ def print_config(self):
+ logger.info('Continuing with the following parameters:\n')
+ if not self.fstype in self.vmtypes:
+ print('KERNEL: [%s]' % self.kernel)
+ if self.dtb:
+ print('DTB: [%s]' % self.dtb)
+ print('MACHINE: [%s]' % self.get('MACHINE'))
+ print('FSTYPE: [%s]' % self.fstype)
+ if self.fstype == 'nfs':
+ print('NFS_DIR: [%s]' % self.nfs_dir)
+ else:
+ print('ROOTFS: [%s]' % self.rootfs)
+ print('CONFFILE: [%s]' % self.qemuboot)
+ print('')
+
+ def setup_nfs(self):
+ if not self.nfs_server:
+ if self.slirp_enabled:
+ self.nfs_server = '10.0.2.2'
+ else:
+ self.nfs_server = '192.168.7.1'
+
+ nfs_instance = int(self.nfs_instance)
+
+ mountd_rpcport = 21111 + nfs_instance
+ nfsd_rpcport = 11111 + nfs_instance
+ nfsd_port = 3049 + 2 * nfs_instance
+ mountd_port = 3048 + 2 * nfs_instance
+ unfs_opts="nfsvers=3,port=%s,mountprog=%s,nfsprog=%s,udp,mountport=%s" % (nfsd_port, mountd_rpcport, nfsd_rpcport, mountd_port)
+ self.unfs_opts = unfs_opts
+
+ p = '%s/.runqemu-sdk/pseudo' % os.getenv('HOME')
+ os.putenv('PSEUDO_LOCALSTATEDIR', p)
+
+ # Extract .tar.bz2 or .tar.bz if no self.nfs_dir
+ if not self.nfs_dir:
+ src_prefix = '%s/%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_LINK_NAME'))
+ dest = "%s-nfsroot" % src_prefix
+ if os.path.exists('%s.pseudo_state' % dest):
+ logger.info('Use %s as NFS_DIR' % dest)
+ self.nfs_dir = dest
+ else:
+ src = ""
+ src1 = '%s.tar.bz2' % src_prefix
+ src2 = '%s.tar.gz' % src_prefix
+ if os.path.exists(src1):
+ src = src1
+ elif os.path.exists(src2):
+ src = src2
+ if not src:
+ raise Exception("No NFS_DIR is set, and can't find %s or %s to extract" % (src1, src2))
+ logger.info('NFS_DIR not found, extracting %s to %s' % (src, dest))
+ cmd = 'runqemu-extract-sdk %s %s' % (src, dest)
+ logger.info('Running %s...' % cmd)
+ if subprocess.call(cmd, shell=True) != 0:
+ raise Exception('Failed to run %s' % cmd)
+ self.clean_nfs_dir = True
+ self.nfs_dir = dest
+
+ # Start the userspace NFS server
+ cmd = 'runqemu-export-rootfs restart %s' % self.nfs_dir
+ logger.info('Running %s...' % cmd)
+ if subprocess.call(cmd, shell=True) != 0:
+ raise Exception('Failed to run %s' % cmd)
+
+ self.nfs_running = True
+
+
+ def setup_slirp(self):
+ if self.fstype == 'nfs':
+ self.setup_nfs()
+ self.kernel_cmdline_script += ' ip=dhcp'
+ self.set('NETWORK_CMD', self.get('QB_SLIRP_OPT'))
+
+ def setup_tap(self):
+ """Setup tap"""
+
+ # This file is created when runqemu-gen-tapdevs creates a bank of tap
+ # devices, indicating that the user should not bring up new ones using
+ # sudo.
+ nosudo_flag = '/etc/runqemu-nosudo'
+ self.qemuifup = shutil.which('runqemu-ifup')
+ self.qemuifdown = shutil.which('runqemu-ifdown')
+ ip = shutil.which('ip')
+ lockdir = "/tmp/qemu-tap-locks"
+
+ if not (self.qemuifup and self.qemuifdown and ip):
+ raise OEPathError("runqemu-ifup, runqemu-ifdown or ip not found")
+
+ if not os.path.exists(lockdir):
+ # There might be a race issue when multi runqemu processess are
+ # running at the same time.
+ try:
+ os.mkdir(lockdir)
+ except FileExistsError:
+ pass
+
+ cmd = '%s link' % ip
+ logger.info('Running %s...' % cmd)
+ ip_link = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
+ # Matches line like: 6: tap0: <foo>
+ possibles = re.findall('^[1-9]+: +(tap[0-9]+): <.*', ip_link, re.M)
+ tap = ""
+ for p in possibles:
+ lockfile = os.path.join(lockdir, p)
+ if os.path.exists('%s.skip' % lockfile):
+ logger.info('Found %s.skip, skipping %s' % (lockfile, p))
+ continue
+ self.lock = lockfile + '.lock'
+ if self.acquire_lock():
+ tap = p
+ logger.info("Using preconfigured tap device %s" % tap)
+ logger.info("If this is not intended, touch %s.skip to make runqemu skip %s." %(lockfile, tap))
+ break
+
+ if not tap:
+ if os.path.exists(nosudo_flag):
+ logger.error("Error: There are no available tap devices to use for networking,")
+ logger.error("and I see %s exists, so I am not going to try creating" % nosudo_flag)
+ raise Exception("a new one with sudo.")
+
+ gid = os.getgid()
+ uid = os.getuid()
+ logger.info("Setting up tap interface under sudo")
+ cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE'))
+ tap = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8').rstrip('\n')
+ lockfile = os.path.join(lockdir, tap)
+ self.lock = lockfile + '.lock'
+ self.acquire_lock()
+ self.cleantap = True
+ logger.info('Created tap: %s' % tap)
+
+ if not tap:
+ logger.error("Failed to setup tap device. Run runqemu-gen-tapdevs to manually create.")
+ return 1
+ self.tap = tap
+ n0 = tap[3:]
+ n1 = int(n0) * 2 + 1
+ n2 = n1 + 1
+ self.nfs_instance = n0
+ if self.fstype == 'nfs':
+ self.setup_nfs()
+ self.kernel_cmdline_script += " ip=192.168.7.%s::192.168.7.%s:255.255.255.0" % (n2, n1)
+ mac = "52:54:00:12:34:%02x" % n2
+ qb_tap_opt = self.get('QB_TAP_OPT')
+ if qb_tap_opt:
+ qemu_tap_opt = qb_tap_opt.replace('@TAP@', tap).replace('@MAC@', mac)
+ else:
+ qemu_tap_opt = "-device virtio-net-pci,netdev=net0,mac=%s -netdev tap,id=net0,ifname=%s,script=no,downscript=no" % (mac, self.tap)
+
+ if self.vhost_enabled:
+ qemu_tap_opt += ',vhost=on'
+
+ self.set('NETWORK_CMD', qemu_tap_opt)
+
+ def setup_network(self):
+ cmd = "stty -g"
+ self.saved_stty = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
+ if self.slirp_enabled:
+ self.setup_slirp()
+ else:
+ self.setup_tap()
+
+ rootfs_format = self.fstype if self.fstype in ('vmdk', 'qcow2', 'vdi') else 'raw'
+
+ qb_rootfs_opt = self.get('QB_ROOTFS_OPT')
+ if qb_rootfs_opt:
+ self.rootfs_options = qb_rootfs_opt.replace('@ROOTFS@', self.rootfs)
+ else:
+ self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
+
+ if self.fstype in ('cpio.gz', 'cpio'):
+ self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
+ self.rootfs_options = '-initrd %s' % self.rootfs
+ else:
+ if self.fstype in self.vmtypes:
+ if self.fstype == 'iso':
+ vm_drive = '-cdrom %s' % self.rootfs
+ else:
+ cmd1 = "grep -q 'root=/dev/sd' %s" % self.rootfs
+ cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs
+ if subprocess.call(cmd1, shell=True) == 0:
+ logger.info('Using scsi drive')
+ vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
+ % (self.rootfs, rootfs_format)
+ elif subprocess.call(cmd2, shell=True) == 0:
+ logger.info('Using scsi drive')
+ vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format)
+ else:
+ logger.warn("Can't detect drive type %s" % self.rootfs)
+ logger.warn('Tring to use virtio block drive')
+ vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
+ self.rootfs_options = '%s -no-reboot' % vm_drive
+ self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT'))
+
+ if self.fstype == 'nfs':
+ self.rootfs_options = ''
+ k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, self.nfs_dir, self.unfs_opts)
+ self.kernel_cmdline = 'root=%s rw highres=off' % k_root
+
+ self.set('ROOTFS_OPTIONS', self.rootfs_options)
+
+ def guess_qb_system(self):
+ """attempt to determine the appropriate qemu-system binary"""
+ mach = self.get('MACHINE')
+ if not mach:
+ search = '.*(qemux86-64|qemux86|qemuarm64|qemuarm|qemumips64|qemumips64el|qemumipsel|qemumips|qemuppc).*'
+ if self.rootfs:
+ match = re.match(search, self.rootfs)
+ if match:
+ mach = match.group(1)
+ elif self.kernel:
+ match = re.match(search, self.kernel)
+ if match:
+ mach = match.group(1)
+
+ if not mach:
+ return None
+
+ if mach == 'qemuarm':
+ qbsys = 'arm'
+ elif mach == 'qemuarm64':
+ qbsys = 'aarch64'
+ elif mach == 'qemux86':
+ qbsys = 'i386'
+ elif mach == 'qemux86-64':
+ qbsys = 'x86_64'
+ elif mach == 'qemuppc':
+ qbsys = 'ppc'
+ elif mach == 'qemumips':
+ qbsys = 'mips'
+ elif mach == 'qemumips64':
+ qbsys = 'mips64'
+ elif mach == 'qemumipsel':
+ qbsys = 'mipsel'
+ elif mach == 'qemumips64el':
+ qbsys = 'mips64el'
+
+ return 'qemu-system-%s' % qbsys
+
+ def setup_final(self):
+ qemu_system = self.get('QB_SYSTEM_NAME')
+ if not qemu_system:
+ qemu_system = self.guess_qb_system()
+ if not qemu_system:
+ raise Exception("Failed to boot, QB_SYSTEM_NAME is NULL!")
+
+ qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system)
+ if not os.access(qemu_bin, os.X_OK):
+ raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin)
+
+ check_libgl(qemu_bin)
+
+ self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.qemu_opt_script, self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND'))
+
+ if self.snapshot:
+ self.qemu_opt += " -snapshot"
+
+ if self.serialstdio:
+ logger.info("Interrupt character is '^]'")
+ cmd = "stty intr ^]"
+ subprocess.call(cmd, shell=True)
+
+ first_serial = ""
+ if not re.search("-nographic", self.qemu_opt):
+ first_serial = "-serial mon:vc"
+ # We always want a ttyS1. Since qemu by default adds a serial
+ # port when nodefaults is not specified, it seems that all that
+ # would be needed is to make sure a "-serial" is there. However,
+ # it appears that when "-serial" is specified, it ignores the
+ # default serial port that is normally added. So here we make
+ # sure to add two -serial if there are none. And only one if
+ # there is one -serial already.
+ serial_num = len(re.findall("-serial", self.qemu_opt))
+ if serial_num == 0:
+ self.qemu_opt += " %s %s" % (first_serial, self.get("QB_SERIAL_OPT"))
+ elif serial_num == 1:
+ self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT")
+
+ def start_qemu(self):
+ if self.kernel:
+ kernel_opts = "-kernel %s -append '%s %s %s'" % (self.kernel, self.kernel_cmdline, self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'))
+ if self.dtb:
+ kernel_opts += " -dtb %s" % self.dtb
+ else:
+ kernel_opts = ""
+ cmd = "%s %s" % (self.qemu_opt, kernel_opts)
+ logger.info('Running %s' % cmd)
+ if subprocess.call(cmd, shell=True) != 0:
+ raise Exception('Failed to run %s' % cmd)
+
+ def cleanup(self):
+ if self.cleantap:
+ cmd = 'sudo %s %s %s' % (self.qemuifdown, self.tap, self.get('STAGING_DIR_NATIVE'))
+ logger.info('Running %s' % cmd)
+ subprocess.call(cmd, shell=True)
+ if self.lock_descriptor:
+ logger.info("Releasing lockfile for tap device '%s'" % self.tap)
+ self.release_lock()
+
+ if self.nfs_running:
+ logger.info("Shutting down the userspace NFS server...")
+ cmd = "runqemu-export-rootfs stop %s" % self.nfs_dir
+ logger.info('Running %s' % cmd)
+ subprocess.call(cmd, shell=True)
+
+ if self.saved_stty:
+ cmd = "stty %s" % self.saved_stty
+ subprocess.call(cmd, shell=True)
+
+ if self.clean_nfs_dir:
+ logger.info('Removing %s' % self.nfs_dir)
+ shutil.rmtree(self.nfs_dir)
+ shutil.rmtree('%s.pseudo_state' % self.nfs_dir)
+
+ def load_bitbake_env(self, mach=None):
+ if self.bitbake_e:
+ return
+
+ bitbake = shutil.which('bitbake')
+ if not bitbake:
+ return
+
+ if not mach:
+ mach = self.get('MACHINE')
+
+ if mach:
+ cmd = 'MACHINE=%s bitbake -e' % mach
+ else:
+ cmd = 'bitbake -e'
+
+ logger.info('Running %s...' % cmd)
+ try:
+ self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
+ except subprocess.CalledProcessError as err:
+ self.bitbake_e = ''
+ logger.warn("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
+
+def main():
+ if len(sys.argv) == 1 or "help" in sys.argv:
+ print_usage()
+ return 0
+ config = BaseConfig()
+ try:
+ config.check_args()
+ except Exception as esc:
+ logger.error(esc)
+ logger.error("Try 'runqemu help' on how to use it")
+ return 1
+ config.read_qemuboot()
+ config.check_and_set()
+ config.print_config()
+ try:
+ config.setup_network()
+ config.setup_final()
+ config.start_qemu()
+ finally:
+ config.cleanup()
+ return 0
+
+if __name__ == "__main__":
+ try:
+ ret = main()
+ except OEPathError as err:
+ ret = 1
+ logger.error(err.message)
+ except Exception as esc:
+ ret = 1
+ import traceback
+ traceback.print_exc()
+ sys.exit(ret)
diff --git a/import-layers/yocto-poky/scripts/runqemu-gen-tapdevs b/import-layers/yocto-poky/scripts/runqemu-gen-tapdevs
index 624deacb7..bfb60f44a 100755
--- a/import-layers/yocto-poky/scripts/runqemu-gen-tapdevs
+++ b/import-layers/yocto-poky/scripts/runqemu-gen-tapdevs
@@ -69,32 +69,38 @@ if [ ! -x "$IFCONFIG" ]; then
exit 1
fi
-# Ensure we start with a clean slate
-for tap in `$IFCONFIG link | grep tap | awk '{ print \$2 }' | sed s/://`; do
- echo "Note: Destroying pre-existing tap interface $tap..."
- $TUNCTL -d $tap
-done
-
-echo "Creating $COUNT tap devices for UID: $TUID GID: $GID..."
-for ((index=0; index < $COUNT; index++)); do
- echo "Creating tap$index"
- ifup=`$RUNQEMU_IFUP $TUID $GID $SYSROOT 2>&1`
- if [ $? -ne 0 ]; then
- echo "Error running tunctl: $ifup"
- exit 1
- fi
-done
+if [ $COUNT -ge 0 ]; then
+ # Ensure we start with a clean slate
+ for tap in `$IFCONFIG link | grep tap | awk '{ print \$2 }' | sed s/://`; do
+ echo "Note: Destroying pre-existing tap interface $tap..."
+ $TUNCTL -d $tap
+ done
+ rm -f /etc/runqemu-nosudo
+else
+ echo "Error: Incorrect count: $COUNT"
+ exit 1
+fi
if [ $COUNT -gt 0 ]; then
+ echo "Creating $COUNT tap devices for UID: $TUID GID: $GID..."
+ for ((index=0; index < $COUNT; index++)); do
+ echo "Creating tap$index"
+ ifup=`$RUNQEMU_IFUP $TUID $GID $SYSROOT 2>&1`
+ if [ $? -ne 0 ]; then
+ echo "Error running tunctl: $ifup"
+ exit 1
+ fi
+ done
+
echo "Note: For systems running NetworkManager, it's recommended"
echo "Note: that the tap devices be set as unmanaged in the"
echo "Note: NetworkManager.conf file. Add the following lines to"
echo "Note: /etc/NetworkManager/NetworkManager.conf"
echo "[keyfile]"
echo "unmanaged-devices=interface-name:tap*"
-fi
-# The runqemu script will check for this file, and if it exists,
-# will use the existing bank of tap devices without creating
-# additional ones via sudo.
-touch /etc/runqemu-nosudo
+ # The runqemu script will check for this file, and if it exists,
+ # will use the existing bank of tap devices without creating
+ # additional ones via sudo.
+ touch /etc/runqemu-nosudo
+fi
diff --git a/import-layers/yocto-poky/scripts/runqemu-internal b/import-layers/yocto-poky/scripts/runqemu-internal
deleted file mode 100755
index ac1c703c5..000000000
--- a/import-layers/yocto-poky/scripts/runqemu-internal
+++ /dev/null
@@ -1,717 +0,0 @@
-#!/bin/bash -x
-
-# Handle running OE images under qemu
-#
-# Copyright (C) 2006-2011 Linux Foundation
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-# Call setting:
-# QEMU_MEMORY (optional) - set the amount of memory in the emualted system.
-# SERIAL_LOGFILE (optional) - log the serial port output to a file
-#
-# Image options:
-# MACHINE - the machine to run
-# FSTYPE - the image type to run
-# KERNEL - the kernel image file to use
-# ROOTFS - the disk image file to use
-#
-
-mem_size=-1
-
-#Get rid of <> and get the contents of extra qemu running params
-SCRIPT_QEMU_EXTRA_OPT=`echo $SCRIPT_QEMU_EXTRA_OPT | sed -e 's/<//' -e 's/>//'`
-#if user set qemu memory, eg: -m 256 in qemu extra params, we need to do some
-# validation check
-mem_set=`expr "$SCRIPT_QEMU_EXTRA_OPT" : '.*\(-m[[:space:]] *[0-9]*\)'`
-if [ ! -z "$mem_set" ] ; then
-#Get memory setting size from user input
- mem_size=`echo $mem_set | sed 's/-m[[:space:]] *//'`
-fi
-
-# This file is created when runqemu-gen-tapdevs creates a bank of tap
-# devices, indicating that the user should not bring up new ones using
-# sudo.
-NOSUDO_FLAG="/etc/runqemu-nosudo"
-
-QEMUIFUP=`which runqemu-ifup 2> /dev/null`
-QEMUIFDOWN=`which runqemu-ifdown 2> /dev/null`
-if [ -z "$QEMUIFUP" -o ! -x "$QEMUIFUP" ]; then
- echo "runqemu-ifup cannot be found or executed"
- exit 1
-fi
-if [ -z "$QEMUIFDOWN" -o ! -x "$QEMUIFDOWN" ]; then
- echo "runqemu-ifdown cannot be found or executed"
- exit 1
-fi
-
-NFSRUNNING="false"
-
-#capture original stty values
-ORIG_STTY=$(stty -g)
-
-if [ "$SLIRP_ENABLED" = "yes" ]; then
- KERNEL_NETWORK_CMD="ip=dhcp"
- QEMU_TAP_CMD=""
- QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice tablet"
- QEMU_NETWORK_CMD=""
- DROOT="/dev/vda"
- ROOTFS_OPTIONS="-drive file=$ROOTFS,if=virtio,format=raw"
-else
- acquire_lock() {
- lockfile=$1
- if [ -z "$lockfile" ]; then
- echo "Error: missing lockfile arg passed to acquire_lock()"
- return 1
- fi
-
- touch $lockfile.lock 2>/dev/null
- if [ $? -ne 0 ]; then
- echo "Acquiring lockfile for $lockfile.lock failed"
- return 1
- fi
- exec 8>$lockfile.lock
- flock -n -x 8
- if [ $? -ne 0 ]; then
- exec 8>&-
- return 1
- fi
-
- return 0
- }
-
- release_lock() {
- lockfile=$1
- if [ -z "$lockfile" ]; then
- echo "Error: missing lockfile arg passed to release_lock()"
- return 1
- fi
-
- rm -f $lockfile.lock
- exec 8>&-
- }
-
- LOCKDIR="/tmp/qemu-tap-locks"
- if [ ! -d "$LOCKDIR" ]; then
- mkdir $LOCKDIR
- chmod 777 $LOCKDIR
- fi
-
- IFCONFIG=`which ip 2> /dev/null`
- if [ -z "$IFCONFIG" ]; then
- IFCONFIG=/sbin/ip
- fi
- if [ ! -x "$IFCONFIG" ]; then
- echo "$IFCONFIG cannot be executed"
- exit 1
- fi
-
- POSSIBLE=`$IFCONFIG link | grep 'tap' | awk '{print $2}' | sed -e 's/://' -e 's/@.*//'`
- TAP=""
- LOCKFILE=""
- USE_PRECONF_TAP="no"
- for tap in $POSSIBLE; do
- LOCKFILE="$LOCKDIR/$tap"
- if [ -e "$LOCKFILE.skip" ]; then
- echo "Found $LOCKFILE.skip, skipping $tap"
- continue
- fi
- echo "Acquiring lockfile for $tap..."
- acquire_lock $LOCKFILE
- if [ $? -eq 0 ]; then
- TAP=$tap
- USE_PRECONF_TAP="yes"
- break
- fi
- done
-
- if [ "$TAP" = "" ]; then
- if [ -e "$NOSUDO_FLAG" ]; then
- echo "Error: There are no available tap devices to use for networking,"
- echo "and I see $NOSUDO_FLAG exists, so I am not going to try creating"
- echo "a new one with sudo."
- exit 1
- fi
-
- GROUPID=`id -g`
- USERID=`id -u`
- echo "Setting up tap interface under sudo"
- # Redirect stderr since we could see a LD_PRELOAD warning here if pseudo is loaded
- # but inactive. This looks scary but is harmless
- tap=`sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT 2> /dev/null`
- if [ $? -ne 0 ]; then
- # Re-run standalone to see verbose errors
- sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT
- return 1
- fi
- LOCKFILE="$LOCKDIR/$tap"
- echo "Acquiring lockfile for $tap..."
- acquire_lock $LOCKFILE
- if [ $? -eq 0 ]; then
- TAP=$tap
- fi
- else
- echo "Using preconfigured tap device '$TAP'"
- echo "If this is not intended, touch $LOCKFILE.skip to make runqemu skip $TAP."
- fi
-
- cleanup() {
- if [ ! -e "$NOSUDO_FLAG" -a "$USE_PRECONF_TAP" = "no" ]; then
- # Redirect stderr since we could see a LD_PRELOAD warning here if pseudo is loaded
- # but inactive. This looks scary but is harmless
- sudo $QEMUIFDOWN $TAP $OECORE_NATIVE_SYSROOT 2> /dev/null
- fi
- echo "Releasing lockfile of preconfigured tap device '$TAP'"
- release_lock $LOCKFILE
-
- if [ "$NFSRUNNING" = "true" ]; then
- echo "Shutting down the userspace NFS server..."
- echo "runqemu-export-rootfs stop $ROOTFS"
- runqemu-export-rootfs stop $ROOTFS
- fi
- # If QEMU crashes or somehow tty properties are not restored
- # after qemu exits, we need to run stty sane
- #stty sane
-
- #instead of using stty sane we set the original stty values
- stty ${ORIG_STTY}
-
- }
-
-
- n0=$(echo $TAP | sed 's/tap//')
-
- case $n0 in
- ''|*[!0-9]*)
- echo "Error Couldn't turn $TAP into an interface number?"
- exit 1
- ;;
- esac
-
- n1=$(($n0 * 2 + 1))
- n2=$(($n1 + 1))
-
- KERNEL_NETWORK_CMD="ip=192.168.7.$n2::192.168.7.$n1:255.255.255.0"
- QEMU_TAP_CMD="-net tap,vlan=0,ifname=$TAP,script=no,downscript=no"
- if [ "$VHOST_ACTIVE" = "yes" ]; then
- QEMU_NETWORK_CMD="-net nic,model=virtio $QEMU_TAP_CMD,vhost=on"
- else
- QEMU_NETWORK_CMD="-net nic,model=virtio $QEMU_TAP_CMD"
- fi
- DROOT="/dev/vda"
- ROOTFS_OPTIONS="-drive file=$ROOTFS,if=virtio,format=raw"
-
- KERNCMDLINE="mem=$QEMU_MEMORY"
- QEMU_UI_OPTIONS="-show-cursor -usb -usbdevice tablet"
-
- NFS_INSTANCE=`echo $TAP | sed 's/tap//'`
- export NFS_INSTANCE
-
- SERIALOPTS=""
- if [ "x$SERIAL_LOGFILE" != "x" ]; then
- SERIALOPTS="-serial file:$SERIAL_LOGFILE"
- fi
-fi
-
-if [ ! -f "$KERNEL" -a "$IS_VM" = "false" ]; then
- echo "Error: Kernel image file $KERNEL doesn't exist"
- cleanup
- return 1
-fi
-
-if [ "$FSTYPE" != "nfs" -a "$IS_VM" = "false" -a ! -f "$ROOTFS" ]; then
- echo "Error: Image file $ROOTFS doesn't exist"
- cleanup
- return 1
-fi
-
-if [ "$NFS_SERVER" = "" ]; then
- NFS_SERVER="192.168.7.1"
- if [ "$SLIRP_ENABLED" = "yes" ]; then
- NFS_SERVER="10.0.2.2"
- fi
-fi
-
-if [ "$FSTYPE" = "nfs" ]; then
- NFS_DIR=`echo $ROOTFS | sed 's/^[^:]*:\(.*\)/\1/'`
- if [ "$NFS_INSTANCE" = "" ] ; then
- NFS_INSTANCE=0
- fi
- MOUNTD_RPCPORT=$[ 21111 + $NFS_INSTANCE ]
- NFSD_RPCPORT=$[ 11111 + $NFS_INSTANCE ]
- NFSD_PORT=$[ 3049 + 2 * $NFS_INSTANCE ]
- MOUNTD_PORT=$[ 3048 + 2 * $NFS_INSTANCE ]
- UNFS_OPTS="nfsvers=3,port=$NFSD_PORT,mountprog=$MOUNTD_RPCPORT,nfsprog=$NFSD_RPCPORT,udp,mountport=$MOUNTD_PORT"
-
- PSEUDO_LOCALSTATEDIR=~/.runqemu-sdk/pseudo
- export PSEUDO_LOCALSTATEDIR
-
- # Start the userspace NFS server
- echo "runqemu-export-rootfs restart $ROOTFS"
- runqemu-export-rootfs restart $ROOTFS
- if [ $? != 0 ]; then
- return 1
- fi
- NFSRUNNING="true"
-fi
-
-
-set_mem_size() {
- if [ ! -z "$mem_set" ] ; then
- #Get memory setting size from user input
- mem_size=`echo $mem_set | sed 's/-m[[:space:]] *//'`
- else
- mem_size=$1
- fi
- # QEMU_MEMORY has 'M' appended to mem_size
- QEMU_MEMORY="$mem_size"M
-
-}
-
-config_qemuarm() {
- set_mem_size 128
- QEMU=qemu-system-arm
- MACHINE_SUBTYPE=versatilepb
- export QEMU_AUDIO_DRV="none"
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- KERNCMDLINE="root=$DROOT rw console=ttyAMA0,115200 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY highres=off"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} $ROOTFS_OPTIONS -no-reboot $QEMU_UI_OPTIONS"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist"
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,115200 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS"
- fi
- if [ "$MACHINE" = "qemuarmv6" ]; then
- QEMUOPTIONS="$QEMUOPTIONS -cpu arm1136"
- fi
- if [ "$MACHINE" = "qemuarmv7" ]; then
- QEMUOPTIONS="$QEMUOPTIONS -cpu cortex-a8"
- fi
-}
-
-config_qemuarm64() {
- set_mem_size 512
- QEMU=qemu-system-aarch64
-
- QEMU_NETWORK_CMD="-netdev tap,id=net0,ifname=$TAP,script=no,downscript=no -device virtio-net-device,netdev=net0 "
- DROOT="/dev/vda"
- ROOTFS_OPTIONS="-drive id=disk0,file=$ROOTFS,if=none,format=raw -device virtio-blk-device,drive=disk0"
-
- export QEMU_AUDIO_DRV="none"
- if [ "x$SERIALSTDIO" = "x" ] ; then
- QEMU_UI_OPTIONS="-nographic"
- else
- QEMU_UI_OPTIONS=""
- fi
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- KERNCMDLINE="root=$DROOT rw console=ttyAMA0,38400 mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD"
- # qemu-system-aarch64 only support '-machine virt -cpu cortex-a57' for now
- QEMUOPTIONS="$QEMU_NETWORK_CMD -machine virt -cpu cortex-a57 $ROOTFS_OPTIONS $QEMU_UI_OPTIONS"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist"
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,38400 mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -machine virt -cpu cortex-a57 $QEMU_UI_OPTIONS"
- fi
-}
-
-config_qemux86() {
- set_mem_size 256
- QEMU=qemu-system-i386
- if [ "$KVM_ACTIVE" = "yes" ]; then
- CPU_SUBTYPE=kvm32
- else
- CPU_SUBTYPE=qemu32
- fi
- if [ ! -z "$vga_option" ]; then
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
- else
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware"
- fi
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- KERNCMDLINE="vga=0 uvesafb.mode_option=640x480-32 root=$DROOT rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $ROOTFS_OPTIONS $QEMU_UI_OPTIONS"
- fi
- if [ "${FSTYPE:0:4}" = "cpio" ]; then
- KERNCMDLINE="vga=0 uvesafb.mode_option=640x480-32 root=/dev/ram0 rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE -initrd $ROOTFS $QEMU_UI_OPTIONS"
- fi
-
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist."
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD $QEMU_UI_OPTIONS"
- fi
- if [ "$IS_VM" = "true" ]; then
- QEMUOPTIONS="$QEMU_NETWORK_CMD $QEMU_UI_OPTIONS"
- fi
- # Currently oprofile's event based interrupt mode doesn't work(Bug #828) in
- # qemux86 and qemux86-64. We can use timer interrupt mode for now.
- KERNCMDLINE="$KERNCMDLINE oprofile.timer=1"
-}
-
-config_qemux86_64() {
- set_mem_size 256
- QEMU=qemu-system-x86_64
- if [ "$KVM_ACTIVE" = "yes" ]; then
- CPU_SUBTYPE=kvm64
- else
- CPU_SUBTYPE=core2duo
- fi
- if [ ! -z "$vga_option" ]; then
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
- else
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS -vga vmware"
- fi
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- KERNCMDLINE="vga=0 uvesafb.mode_option=640x480-32 root=$DROOT rw mem=$QEMU_MEMORY $KERNEL_NETWORK_CMD"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $ROOTFS_OPTIONS $QEMU_UI_OPTIONS"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "x$ROOTFS" = "x" ]; then
- ROOTFS=/srv/nfs/qemux86-64
- fi
- if [ ! -d "$ROOTFS" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist."
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $QEMU_UI_OPTIONS"
- fi
- if [ "$IS_VM" = "true" ]; then
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $QEMU_UI_OPTIONS"
- fi
- # Currently oprofile's event based interrupt mode doesn't work(Bug #828) in
- # qemux86 and qemux86-64. We can use timer interrupt mode for now.
- KERNCMDLINE="$KERNCMDLINE oprofile.timer=1"
-}
-
-config_qemumips() {
- set_mem_size 256
- case "$MACHINE" in
- qemumips) QEMU=qemu-system-mips ;;
- qemumipsel) QEMU=qemu-system-mipsel ;;
- qemumips64) QEMU=qemu-system-mips64 ;;
- esac
- MACHINE_SUBTYPE=malta
- QEMU_UI_OPTIONS="-vga cirrus $QEMU_UI_OPTIONS"
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- #KERNCMDLINE="root=/dev/hda console=ttyS0 console=tty0 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- KERNCMDLINE="root=$DROOT rw console=ttyS0 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE $ROOTFS_OPTIONS -no-reboot $QEMU_UI_OPTIONS"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist"
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs console=ttyS0 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS"
- fi
-}
-
-config_qemuppc() {
- set_mem_size 256
- QEMU=qemu-system-ppc
- MACHINE_SUBTYPE=mac99
- CPU_SUBTYPE=G4
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
- if [ "$SLIRP_ENABLED" = "yes" ]; then
- QEMU_NETWORK_CMD=""
- else
- QEMU_NETWORK_CMD="-net nic,model=pcnet $QEMU_TAP_CMD"
- fi
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- KERNCMDLINE="root=$DROOT rw console=ttyS0 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE -M $MACHINE_SUBTYPE $ROOTFS_OPTIONS -no-reboot $QEMU_UI_OPTIONS"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist"
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs console=ttyS0 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS"
- fi
-}
-
-config_qemush4() {
- set_mem_size 1024
- QEMU=qemu-system-sh4
- MACHINE_SUBTYPE=r2d
- QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
- if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then
- #KERNCMDLINE="root=/dev/hda console=ttyS0 console=tty0 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- KERNCMDLINE="root=/dev/hda rw console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
- SERIALSTDIO="1"
- fi
- if [ "$FSTYPE" = "nfs" ]; then
- if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
- echo "Error: NFS mount point $ROOTFS doesn't exist"
- cleanup
- return 1
- fi
- KERNCMDLINE="root=/dev/nfs console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
- SERIALSTDIO="1"
- fi
-}
-
-config_qemuzynq() {
- set_mem_size 1024
- QEMU=qemu-system-arm
- QEMU_SYSTEM_OPTIONS="$QEMU_NETWORK_CMD -M xilinx-zynq-a9 -serial null -serial mon:stdio -dtb $KERNEL-$MACHINE.dtb"
- # zynq serial ports are named 'ttyPS0' and 'ttyPS1', fixup the default values
- SCRIPT_KERNEL_OPT=$(echo "$SCRIPT_KERNEL_OPT" | sed 's/console=ttyS/console=ttyPS/g')
- if [ "${FSTYPE:0:3}" = "ext" -o "${FSTYPE:0:4}" = "cpio" ]; then
- KERNCMDLINE="earlyprintk root=/dev/ram rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_SYSTEM_OPTIONS -initrd $ROOTFS"
- fi
-}
-
-config_qemumicroblaze() {
- set_mem_size 256
- QEMU=qemu-system-microblazeel
- QEMU_SYSTEM_OPTIONS="$QEMU_NETWORK_CMD -M petalogix-ml605 -serial mon:stdio"
- if [ "${FSTYPE:0:3}" = "ext" -o "${FSTYPE:0:4}" = "cpio" ]; then
- KERNCMDLINE="earlyprintk root=/dev/ram rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
- QEMUOPTIONS="$QEMU_SYSTEM_OPTIONS -initrd $ROOTFS"
- fi
-}
-
-case "$MACHINE" in
- "qemuarm" | "qemuarmv6" | "qemuarmv7")
- config_qemuarm
- ;;
- "qemuarm64")
- config_qemuarm64
- ;;
- "qemux86")
- config_qemux86
- ;;
- "qemux86-64")
- config_qemux86_64
- ;;
- "qemumips" | "qemumipsel" | "qemumips64")
- config_qemumips
- ;;
- "qemuppc")
- config_qemuppc
- ;;
- "qemush4")
- config_qemush4
- ;;
- "qemuzynq")
- config_qemuzynq
- ;;
- "qemumicroblaze")
- config_qemumicroblaze
- ;;
- *)
- echo "Error: Unsupported machine type $MACHINE"
- return 1
- ;;
-esac
-
-# We need to specify -m <mem_size> to overcome a bug in qemu 0.14.0
-# https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/584480
-if [ -z "$mem_set" ] ; then
- SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT -m $mem_size"
-fi
-
-if [ "${FSTYPE:0:3}" = "ext" ]; then
- KERNCMDLINE="$KERNCMDLINE rootfstype=$FSTYPE"
-fi
-
-if [ "$FSTYPE" = "cpio.gz" ]; then
- QEMUOPTIONS="-initrd $ROOTFS -nographic"
- KERNCMDLINE="root=/dev/ram0 console=ttyS0 debugshell"
-fi
-
-if [ "$FSTYPE" = "iso" ]; then
- QEMUOPTIONS="$QEMU_NETWORK_CMD -cdrom $ROOTFS $QEMU_UI_OPTIONS"
-fi
-
-if [ "x$QEMUOPTIONS" = "x" ]; then
- echo "Error: Unable to support this combination of options"
- cleanup
- return 1
-fi
-
-if [ "$TCPSERIAL_PORTNUM" != "" ]; then
- if [ "$MACHINE" = "qemuarm64" ]; then
- SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT -device virtio-serial-device -chardev socket,id=virtcon,port=$TCPSERIAL_PORTNUM,host=127.0.0.1 -device virtconsole,chardev=virtcon"
- else
- SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT -serial tcp:127.0.0.1:$TCPSERIAL_PORTNUM"
- fi
-fi
-
-PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$PATH
-
-QEMUBIN=`which $QEMU 2> /dev/null`
-if [ ! -x "$QEMUBIN" ]; then
- echo "Error: No QEMU binary '$QEMU' could be found."
- cleanup
- return 1
-fi
-
-NEED_GL=`ldd $QEMUBIN/$QEMU 2>&1 | grep libGLU`
-# We can't run without a libGL.so
-if [ "$NEED_GL" != "" ]; then
- libgl='no'
-
- [ -e /usr/lib/libGL.so -a -e /usr/lib/libGLU.so ] && libgl='yes'
- [ -e /usr/lib64/libGL.so -a -e /usr/lib64/libGLU.so ] && libgl='yes'
- [ -e /usr/lib/*-linux-gnu/libGL.so -a -e /usr/lib/*-linux-gnu/libGLU.so ] && libgl='yes'
-
- if [ "$libgl" != 'yes' ]; then
- echo "You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator.
- Ubuntu package names are: libgl1-mesa-dev and libglu1-mesa-dev.
- Fedora package names are: mesa-libGL-devel mesa-libGLU-devel."
- return 1;
- fi
-fi
-
-do_quit() {
- cleanup
- return 1
-}
-
-trap do_quit INT TERM QUIT
-
-# qemu got segfault if linked with nVidia's libgl
-GL_LD_PRELOAD=$LD_PRELOAD
-
-if ldd $QEMUBIN | grep -i nvidia &> /dev/null
-then
-cat << EOM
-WARNING: nVidia proprietary OpenGL libraries detected.
-nVidia's OpenGL libraries are known to have compatibility issues with qemu,
-resulting in a segfault. Please uninstall these drivers or ensure the mesa libGL
-libraries precede nvidia's via LD_PRELOAD(Already do it on Ubuntu 10).
-EOM
-
-# Automatically use Ubuntu system's mesa libGL, other distro can add its own path
-if grep -i ubuntu /etc/lsb-release &> /dev/null
-then
- # precede nvidia's driver on Ubuntu 10
- UBUNTU_MAIN_VERSION=`cat /etc/lsb-release |grep DISTRIB_RELEASE |cut -d= -f 2| cut -d. -f 1`
- if [ "$UBUNTU_MAIN_VERSION" = "10" ];
- then
- GL_PATH=""
- if test -e /usr/lib/libGL.so
- then
- GL_PATH="/usr/lib/libGL.so"
- elif test -e /usr/lib/x86_64-linux-gnu/libGL.so
- then
- GL_PATH="/usr/lib/x86_64-linux-gnu/libGL.so"
- fi
-
- echo "Skip nVidia's libGL on Ubuntu 10!"
- GL_LD_PRELOAD="$GL_PATH $LD_PRELOAD"
- fi
-fi
-fi
-
-if [ "x$SERIALSTDIO" = "x1" ]; then
- echo "Interrupt character is '^]'"
- stty intr ^]
-fi
-
-
-# Preserve the multiplexing behavior for the monitor that would be there based
-# on whether nographic is used.
-if echo "$QEMUOPTIONS $SERIALOPTS $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT" | grep -- "-nographic"; then
- FIRST_SERIAL_OPT="-serial mon:stdio"
-else
- FIRST_SERIAL_OPT="-serial mon:vc"
-fi
-
-# qemuarm64 uses virtio for any additional serial ports so the normal mechanism
-# of using -serial will not work
-if [ "$MACHINE" = "qemuarm64" ]; then
- SECOND_SERIAL_OPT="$SCRIPT_QEMU_EXTRA_OPT -device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
-else
- SECOND_SERIAL_OPT="-serial null"
-fi
-
-# We always want a ttyS1. Since qemu by default adds a serial port when
-# nodefaults is not specified, it seems that all that would be needed is to
-# make sure a "-serial" is there. However, it appears that when "-serial" is
-# specified, it ignores the default serial port that is normally added.
-# So here we make sure to add two -serial if there are none. And only one
-# if there is one -serial already.
-NUM_SERIAL_OPTS=`echo $QEMUOPTIONS $SERIALOPTS $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT | sed -e 's/ /\n/g' | grep --count -- -serial`
-
-if [ "$NUM_SERIAL_OPTS" = "0" ]; then
- SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT $FIRST_SERIAL_OPT $SECOND_SERIAL_OPT"
-elif [ "$NUM_SERIAL_OPTS" = "1" ]; then
- SCRIPT_QEMU_EXTRA_OPT="$SCRIPT_QEMU_EXTRA_OPT $SECOND_SERIAL_OPT"
-fi
-
-echo "Running $QEMU..."
-# -no-reboot is a mandatory option - see bug #100
-if [ "$IS_VM" = "true" ]; then
- # Check root=/dev/sdX or root=/dev/vdX
- [ ! -e "$VM" ] && error "VM image is not found!"
- if grep -q 'root=/dev/sd' $VM; then
- echo "Using scsi drive"
- VM_DRIVE="-drive if=none,id=hd,file=$VM -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd"
- elif grep -q 'root=/dev/hd' $VM; then
- echo "Using ide drive"
- VM_DRIVE="$VM"
- else
- echo "Using virtio block drive"
- VM_DRIVE="-drive if=virtio,file=$VM"
- fi
- QEMU_FIRE="$QEMUBIN $VM_DRIVE $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT"
- echo $QEMU_FIRE
- LD_PRELOAD="$GL_LD_PRELOAD" $QEMU_FIRE
-elif [ "$FSTYPE" = "iso" -o "$FSTYPE" = "wic" ]; then
- QEMU_FIRE="$QEMUBIN $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT"
- echo $QEMU_FIRE
- LD_PRELOAD="$GL_LD_PRELOAD" $QEMU_FIRE
-else
- QEMU_FIRE="$QEMUBIN -kernel $KERNEL $QEMUOPTIONS $SLIRP_CMD $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT"
- echo $QEMU_FIRE -append '"'$KERNCMDLINE $SCRIPT_KERNEL_OPT'"'
- LD_PRELOAD="$GL_LD_PRELOAD" $QEMU_FIRE -append "$KERNCMDLINE $SCRIPT_KERNEL_OPT"
-fi
-ret=$?
-if [ "$SLIRP_ENABLED" != "yes" ]; then
- cleanup
-fi
-
-#set the original stty values before exit
-stty ${ORIG_STTY}
-trap - INT TERM QUIT
-
-return $ret
diff --git a/import-layers/yocto-poky/scripts/send-error-report b/import-layers/yocto-poky/scripts/send-error-report
index a29feff32..15b5e8491 100755
--- a/import-layers/yocto-poky/scripts/send-error-report
+++ b/import-layers/yocto-poky/scripts/send-error-report
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Sends an error report (if the report-error class was enabled) to a
# remote server.
@@ -7,7 +7,7 @@
# Author: Andreea Proca <andreea.b.proca@intel.com>
# Author: Michael Wood <michael.g.wood@intel.com>
-import urllib2
+import urllib.request, urllib.error
import sys
import json
import os
@@ -25,10 +25,10 @@ log = logging.getLogger("send-error-report")
logging.basicConfig(format='%(levelname)s: %(message)s')
def getPayloadLimit(url):
- req = urllib2.Request(url, None)
+ req = urllib.request.Request(url, None)
try:
- response = urllib2.urlopen(req)
- except urllib2.URLError as e:
+ response = urllib.request.urlopen(req)
+ except urllib.error.URLError as e:
# Use this opportunity to bail out if we can't even contact the server
log.error("Could not contact server: " + url)
log.error(e.reason)
@@ -44,12 +44,12 @@ def getPayloadLimit(url):
def ask_for_contactdetails():
print("Please enter your name and your email (optionally), they'll be saved in the file you send.")
- username = raw_input("Name (required): ")
- email = raw_input("E-mail (not required): ")
+ username = input("Name (required): ")
+ email = input("E-mail (not required): ")
return username, email
def edit_content(json_file_path):
- edit = raw_input("Review information before sending? (y/n): ")
+ edit = input("Review information before sending? (y/n): ")
if 'y' in edit or 'Y' in edit:
editor = os.environ.get('EDITOR', None)
if editor:
@@ -108,7 +108,7 @@ def prepare_data(args):
if max_log_size != 0:
for fail in jsondata['failures']:
if len(fail['log']) > max_log_size:
- print "Truncating log to allow for upload"
+ print("Truncating log to allow for upload")
fail['log'] = fail['log'][-max_log_size:]
data = json.dumps(jsondata, indent=4, sort_keys=True)
@@ -125,7 +125,7 @@ def prepare_data(args):
with open(args.error_file, 'r') as json_fp:
data = json_fp.read()
- return data
+ return data.encode('utf-8')
def send_data(data, args):
@@ -136,14 +136,14 @@ def send_data(data, args):
else:
url = "http://"+args.server+"/ClientPost/"
- req = urllib2.Request(url, data=data, headers=headers)
+ req = urllib.request.Request(url, data=data, headers=headers)
try:
- response = urllib2.urlopen(req)
- except urllib2.HTTPError, e:
+ response = urllib.request.urlopen(req)
+ except urllib.error.HTTPError as e:
logging.error(e.reason)
sys.exit(1)
- print response.read()
+ print(response.read())
if __name__ == '__main__':
@@ -192,7 +192,7 @@ if __name__ == '__main__':
args = arg_parse.parse_args()
if (args.json == False):
- print "Preparing to send errors to: "+args.server
+ print("Preparing to send errors to: "+args.server)
data = prepare_data(args)
send_data(data, args)
diff --git a/import-layers/yocto-poky/scripts/swabber-strace-attach b/import-layers/yocto-poky/scripts/swabber-strace-attach
deleted file mode 100755
index bb0391a7c..000000000
--- a/import-layers/yocto-poky/scripts/swabber-strace-attach
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-import subprocess
-
-# Detach from the controlling terminal and parent process by forking twice to daemonize ourselves,
-# then run the command passed as argv[1]. Send log data to argv[2].
-
-pid = os.fork()
-if (pid == 0):
- os.setsid()
- pid = os.fork()
- if (pid != 0):
- os._exit(0)
-else:
- sys.exit()
-
-
-si = file(os.devnull, 'r')
-so = file(sys.argv[2], 'w')
-se = so
-
-# Replace those fds with our own
-os.dup2(si.fileno(), sys.stdin.fileno())
-os.dup2(so.fileno(), sys.stdout.fileno())
-os.dup2(se.fileno(), sys.stderr.fileno())
-
-ret = subprocess.call(sys.argv[1], shell=True)
-
-os._exit(ret)
-
diff --git a/import-layers/yocto-poky/scripts/sysroot-relativelinks.py b/import-layers/yocto-poky/scripts/sysroot-relativelinks.py
index ac26367e7..e44eba2b1 100755
--- a/import-layers/yocto-poky/scripts/sysroot-relativelinks.py
+++ b/import-layers/yocto-poky/scripts/sysroot-relativelinks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import sys
import os
diff --git a/import-layers/yocto-poky/scripts/test-dependencies.sh b/import-layers/yocto-poky/scripts/test-dependencies.sh
index 0170947f0..00c50e0d6 100755
--- a/import-layers/yocto-poky/scripts/test-dependencies.sh
+++ b/import-layers/yocto-poky/scripts/test-dependencies.sh
@@ -141,7 +141,7 @@ build_all() {
bitbake -k $targets 2>&1 | tee -a ${OUTPUT1}/complete.log
RESULT+=${PIPESTATUS[0]}
grep "ERROR: Task.*failed" ${OUTPUT1}/complete.log > ${OUTPUT1}/failed-tasks.log
- cat ${OUTPUT1}/failed-tasks.log | sed 's@.*/@@g; s@_.*@@g; s@\.bb, .*@@g' | sort -u > ${OUTPUT1}/failed-recipes.log
+ cat ${OUTPUT1}/failed-tasks.log | sed 's@.*/@@g; s@_.*@@g; s@\.bb, .*@@g; s@\.bb;.*@@g' | sort -u > ${OUTPUT1}/failed-recipes.log
}
build_every_recipe() {
@@ -178,7 +178,7 @@ build_every_recipe() {
RESULT+=${RECIPE_RESULT}
mv ${OUTPUTB}/${recipe}.log ${OUTPUTB}/failed/
grep "ERROR: Task.*failed" ${OUTPUTB}/failed/${recipe}.log | tee -a ${OUTPUTB}/failed-tasks.log
- grep "ERROR: Task.*failed" ${OUTPUTB}/failed/${recipe}.log | sed 's@.*/@@g; s@_.*@@g; s@\.bb, .*@@g' >> ${OUTPUTB}/failed-recipes.log
+ grep "ERROR: Task.*failed" ${OUTPUTB}/failed/${recipe}.log | sed 's@.*/@@g; s@_.*@@g; s@\.bb, .*@@g; s@\.bb;.*@@g' >> ${OUTPUTB}/failed-recipes.log
# and append also ${recipe} in case the failed task was from some dependency
echo ${recipe} >> ${OUTPUTB}/failed-recipes.log
else
diff --git a/import-layers/yocto-poky/scripts/test-remote-image b/import-layers/yocto-poky/scripts/test-remote-image
index 9c5b0158d..27b1cae38 100755
--- a/import-layers/yocto-poky/scripts/test-remote-image
+++ b/import-layers/yocto-poky/scripts/test-remote-image
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2014 Intel Corporation
#
@@ -92,13 +92,11 @@ def get_args_parser():
parser.add_argument('--skip-download', required=False, action="store_true", dest="skip_download", default=False, help='Skip downloading the images completely. This needs the correct files to be present in the directory specified by the target profile.')
return parser
-class BaseTargetProfile(object):
+class BaseTargetProfile(object, metaclass=ABCMeta):
"""
This class defines the meta profile for a specific target (MACHINE type + image type).
"""
- __metaclass__ = ABCMeta
-
def __init__(self, image_type):
self.image_type = image_type
@@ -191,13 +189,11 @@ class AutoTargetProfile(BaseTargetProfile):
return controller.get_extra_files()
-class BaseRepoProfile(object):
+class BaseRepoProfile(object, metaclass=ABCMeta):
"""
This class defines the meta profile for an images repository.
"""
- __metaclass__ = ABCMeta
-
def __init__(self, repolink, localdir):
self.localdir = localdir
self.repolink = repolink
@@ -289,7 +285,7 @@ class HwAuto():
result = bitbake("%s -c testimage" % image_type, ignore_status=True, postconfig=postconfig)
testimage_results = ftools.read_file(os.path.join(get_bb_var("T", image_type), "log.do_testimage"))
log.info('Runtime tests results for %s:' % image_type)
- print testimage_results
+ print(testimage_results)
return result
# Start the procedure!
diff --git a/import-layers/yocto-poky/scripts/tiny/dirsize.py b/import-layers/yocto-poky/scripts/tiny/dirsize.py
index 40ff4ab89..ddccc5a8c 100755
--- a/import-layers/yocto-poky/scripts/tiny/dirsize.py
+++ b/import-layers/yocto-poky/scripts/tiny/dirsize.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (c) 2011, Intel Corporation.
# All rights reserved.
@@ -52,26 +52,22 @@ class Record:
self.size = 0
self.records = []
- def __cmp__(this, that):
+ def __lt__(this, that):
if that is None:
- return 1
+ return False
if not isinstance(that, Record):
raise TypeError
if len(this.records) > 0 and len(that.records) == 0:
- return -1
- if len(this.records) == 0 and len(that.records) > 0:
- return 1
- if this.size < that.size:
- return -1
+ return False
if this.size > that.size:
- return 1
- return 0
+ return False
+ return True
def show(self, minsize):
total = 0
if self.size <= minsize:
return 0
- print "%10d %s" % (self.size, self.path)
+ print("%10d %s" % (self.size, self.path))
for r in self.records:
total += r.show(minsize)
if len(self.records) == 0:
@@ -85,8 +81,8 @@ def main():
minsize = int(sys.argv[1])
rootfs = Record.create(".")
total = rootfs.show(minsize)
- print "Displayed %d/%d bytes (%.2f%%)" % \
- (total, rootfs.size, 100 * float(total) / rootfs.size)
+ print("Displayed %d/%d bytes (%.2f%%)" % \
+ (total, rootfs.size, 100 * float(total) / rootfs.size))
if __name__ == "__main__":
diff --git a/import-layers/yocto-poky/scripts/tiny/ksize.py b/import-layers/yocto-poky/scripts/tiny/ksize.py
index 4006f2f6f..b9d2b192c 100755
--- a/import-layers/yocto-poky/scripts/tiny/ksize.py
+++ b/import-layers/yocto-poky/scripts/tiny/ksize.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# Copyright (c) 2011, Intel Corporation.
# All rights reserved.
@@ -28,16 +28,14 @@ import sys
import getopt
import os
from subprocess import *
-from string import join
-
def usage():
prog = os.path.basename(sys.argv[0])
- print 'Usage: %s [OPTION]...' % (prog)
- print ' -d, display an additional level of drivers detail'
- print ' -h, --help display this help and exit'
- print ''
- print 'Run %s from the top-level Linux kernel build directory.' % (prog)
+ print('Usage: %s [OPTION]...' % prog)
+ print(' -d, display an additional level of drivers detail')
+ print(' -h, --help display this help and exit')
+ print('')
+ print('Run %s from the top-level Linux kernel build directory.' % prog)
class Sizes:
@@ -55,8 +53,8 @@ class Sizes:
self.text = self.data = self.bss = self.total = 0
def show(self, indent=""):
- print "%-32s %10d | %10d %10d %10d" % \
- (indent+self.title, self.total, self.text, self.data, self.bss)
+ print("%-32s %10d | %10d %10d %10d" % \
+ (indent+self.title, self.total, self.text, self.data, self.bss))
class Report:
@@ -66,7 +64,7 @@ class Report:
p = Popen("ls " + path + "/*.o | grep -v built-in.o",
shell=True, stdout=PIPE, stderr=PIPE)
- glob = join(p.communicate()[0].splitlines())
+ glob = ' '.join(p.communicate()[0].splitlines())
oreport = Report(glob, path + "/*.o")
oreport.sizes.title = path + "/*.o"
r.parts.append(oreport)
@@ -101,22 +99,22 @@ class Report:
def show(self, indent=""):
rule = str.ljust(indent, 80, '-')
- print "%-32s %10s | %10s %10s %10s" % \
- (indent+self.title, "total", "text", "data", "bss")
- print rule
+ print("%-32s %10s | %10s %10s %10s" % \
+ (indent+self.title, "total", "text", "data", "bss"))
+ print(rule)
self.sizes.show(indent)
- print rule
+ print(rule)
for p in self.parts:
if p.sizes.total > 0:
p.sizes.show(indent)
- print rule
- print "%-32s %10d | %10d %10d %10d" % \
+ print(rule)
+ print("%-32s %10d | %10d %10d %10d" % \
(indent+"sum", self.totals["total"], self.totals["text"],
- self.totals["data"], self.totals["bss"])
- print "%-32s %10d | %10d %10d %10d" % \
+ self.totals["data"], self.totals["bss"]))
+ print("%-32s %10d | %10d %10d %10d" % \
(indent+"delta", self.deltas["total"], self.deltas["text"],
- self.deltas["data"], self.deltas["bss"])
- print "\n"
+ self.deltas["data"], self.deltas["bss"]))
+ print("\n")
def __cmp__(this, that):
if that is None:
@@ -133,8 +131,8 @@ class Report:
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "dh", ["help"])
- except getopt.GetoptError, err:
- print '%s' % str(err)
+ except getopt.GetoptError as err:
+ print('%s' % str(err))
usage()
sys.exit(2)
diff --git a/import-layers/yocto-poky/scripts/verify-bashisms b/import-layers/yocto-poky/scripts/verify-bashisms
new file mode 100755
index 000000000..0741e1844
--- /dev/null
+++ b/import-layers/yocto-poky/scripts/verify-bashisms
@@ -0,0 +1,116 @@
+#!/usr/bin/env python3
+
+import sys, os, subprocess, re, shutil
+
+whitelist = (
+ # type is supported by dash
+ 'if type systemctl >/dev/null 2>/dev/null; then',
+ 'if type systemd-tmpfiles >/dev/null 2>/dev/null; then',
+ 'if type update-rc.d >/dev/null 2>/dev/null; then',
+ 'command -v',
+ # HOSTNAME is set locally
+ 'buildhistory_single_commit "$CMDLINE" "$HOSTNAME"',
+ # False-positive, match is a grep not shell expression
+ 'grep "^$groupname:[^:]*:[^:]*:\\([^,]*,\\)*$username\\(,[^,]*\\)*"',
+ # TODO verify dash's '. script args' behaviour
+ '. $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE'
+ )
+
+def is_whitelisted(s):
+ for w in whitelist:
+ if w in s:
+ return True
+ return False
+
+def process(recipe, function, script):
+ import tempfile
+
+ if not script.startswith("#!"):
+ script = "#! /bin/sh\n" + script
+
+ fn = tempfile.NamedTemporaryFile(mode="w+t")
+ fn.write(script)
+ fn.flush()
+
+ try:
+ subprocess.check_output(("checkbashisms.pl", fn.name), universal_newlines=True, stderr=subprocess.STDOUT)
+ # No bashisms, so just return
+ return
+ except subprocess.CalledProcessError as e:
+ # TODO check exit code is 1
+
+ # Replace the temporary filename with the function and split it
+ output = e.output.replace(fn.name, function).splitlines()
+ if len(results) % 2 != 0:
+ print("Unexpected output from checkbashism: %s" % str(output))
+ return
+
+ # Turn the output into a list of (message, source) values
+ result = []
+ # Check the results against the whitelist
+ for message, source in zip(output[0::2], output[1::2]):
+ if not is_whitelisted(source):
+ result.append((message, source))
+ return result
+
+def get_tinfoil():
+ scripts_path = os.path.dirname(os.path.realpath(__file__))
+ lib_path = scripts_path + '/lib'
+ sys.path = sys.path + [lib_path]
+ import scriptpath
+ scriptpath.add_bitbake_lib_path()
+ import bb.tinfoil
+ tinfoil = bb.tinfoil.Tinfoil()
+ tinfoil.prepare()
+ # tinfoil.logger.setLevel(logging.WARNING)
+ return tinfoil
+
+if __name__=='__main__':
+ import shutil
+ if shutil.which("checkbashisms.pl") is None:
+ print("Cannot find checkbashisms.pl on $PATH")
+ sys.exit(1)
+
+ tinfoil = get_tinfoil()
+
+ # This is only the default configuration and should iterate over
+ # recipecaches to handle multiconfig environments
+ pkg_pn = tinfoil.cooker.recipecaches[""].pkg_pn
+
+ # TODO: use argparse and have --help
+ if len(sys.argv) > 1:
+ initial_pns = sys.argv[1:]
+ else:
+ initial_pns = sorted(pkg_pn)
+
+ pns = []
+ print("Generating file list...")
+ for pn in initial_pns:
+ for fn in pkg_pn[pn]:
+ # There's no point checking multiple BBCLASSEXTENDed variants of the same recipe
+ realfn, _, _ = bb.cache.virtualfn2realfn(fn)
+ if realfn not in pns:
+ pns.append(realfn)
+
+
+ def func(fn):
+ result = []
+ data = tinfoil.parse_recipe_file(fn)
+ for key in data.keys():
+ if data.getVarFlag(key, "func", True) and not data.getVarFlag(key, "python", True):
+ script = data.getVar(key, False)
+ if not script: continue
+ #print ("%s:%s" % (fn, key))
+ r = process(fn, key, script)
+ if r: result.extend(r)
+ return fn, result
+
+ print("Scanning scripts...\n")
+ import multiprocessing
+ pool = multiprocessing.Pool()
+ for pn,results in pool.imap(func, pns):
+ if results:
+ print(pn)
+ for message,source in results:
+ print(" %s\n %s" % (message, source))
+ print()
diff --git a/import-layers/yocto-poky/scripts/wic b/import-layers/yocto-poky/scripts/wic
index 2286f20a9..fe2c33f0e 100755
--- a/import-layers/yocto-poky/scripts/wic
+++ b/import-layers/yocto-poky/scripts/wic
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -28,7 +28,6 @@
# AUTHORS
# Tom Zanussi <tom.zanussi (at] linux.intel.com>
#
-
__version__ = "0.2.0"
# Python Standard Library modules
@@ -114,6 +113,7 @@ def wic_create_subcommand(args, usage_str):
parser.add_option("-c", "--compress-with", choices=("gzip", "bzip2", "xz"),
dest='compressor',
help="compress image with specified compressor")
+ parser.add_option("-m", "--bmap", action="store_true", help="generate .bmap")
parser.add_option("-v", "--vars", dest='vars_dir',
help="directory with <image>.env files that store "
"bitbake variables")
@@ -140,8 +140,8 @@ def wic_create_subcommand(args, usage_str):
if not val:
missed.append(opt)
if missed:
- print "The following build artifacts are not specified:"
- print " " + ", ".join(missed)
+ print("The following build artifacts are not specified:")
+ print(" " + ", ".join(missed))
sys.exit(1)
if options.image_name:
@@ -153,12 +153,12 @@ def wic_create_subcommand(args, usage_str):
BB_VARS.vars_dir = options.vars_dir
if options.build_check:
- print "Checking basic build environment..."
+ print("Checking basic build environment...")
if not engine.verify_build_env():
- print "Couldn't verify build environment, exiting\n"
+ print("Couldn't verify build environment, exiting\n")
sys.exit(1)
else:
- print "Done.\n"
+ print("Done.\n")
bootimg_dir = ""
@@ -168,7 +168,7 @@ def wic_create_subcommand(args, usage_str):
if options.debug:
argv.append("--debug")
- print "Building rootfs...\n"
+ print("Building rootfs...\n")
if bitbake_main(BitBakeConfigParameters(argv),
cookerdata.CookerConfiguration()):
sys.exit(1)
@@ -179,7 +179,7 @@ def wic_create_subcommand(args, usage_str):
options.image_name)
else:
if options.build_rootfs:
- print "Image name is not specified, exiting. (Use -e/--image-name to specify it)\n"
+ print("Image name is not specified, exiting. (Use -e/--image-name to specify it)\n")
sys.exit(1)
wks_file = args[0]
@@ -187,9 +187,9 @@ def wic_create_subcommand(args, usage_str):
if not wks_file.endswith(".wks"):
wks_file = engine.find_canned_image(scripts_path, wks_file)
if not wks_file:
- print "No image named %s found, exiting. (Use 'wic list images' "\
+ print("No image named %s found, exiting. (Use 'wic list images' "\
"to list available images, or specify a fully-qualified OE "\
- "kickstart (.wks) filename)\n" % args[0]
+ "kickstart (.wks) filename)\n" % args[0])
sys.exit(1)
image_output_dir = ""
@@ -204,16 +204,16 @@ def wic_create_subcommand(args, usage_str):
kernel_dir = options.kernel_dir
native_sysroot = options.native_sysroot
if rootfs_dir and not os.path.isdir(rootfs_dir):
- print "--roofs-dir (-r) not found, exiting\n"
+ print("--roofs-dir (-r) not found, exiting\n")
sys.exit(1)
if not os.path.isdir(bootimg_dir):
- print "--bootimg-dir (-b) not found, exiting\n"
+ print("--bootimg-dir (-b) not found, exiting\n")
sys.exit(1)
if not os.path.isdir(kernel_dir):
- print "--kernel-dir (-k) not found, exiting\n"
+ print("--kernel-dir (-k) not found, exiting\n")
sys.exit(1)
if not os.path.isdir(native_sysroot):
- print "--native-sysroot (-n) not found, exiting\n"
+ print("--native-sysroot (-n) not found, exiting\n")
sys.exit(1)
else:
not_found = not_found_dir = ""
@@ -226,12 +226,12 @@ def wic_create_subcommand(args, usage_str):
if not_found:
if not not_found_dir:
not_found_dir = "Completely missing artifact - wrong image (.wks) used?"
- print "Build artifacts not found, exiting."
- print " (Please check that the build artifacts for the machine"
- print " selected in local.conf actually exist and that they"
- print " are the correct artifacts for the image (.wks file)).\n"
- print "The artifact that couldn't be found was %s:\n %s" % \
- (not_found, not_found_dir)
+ print("Build artifacts not found, exiting.")
+ print(" (Please check that the build artifacts for the machine")
+ print(" selected in local.conf actually exist and that they")
+ print(" are the correct artifacts for the image (.wks file)).\n")
+ print("The artifact that couldn't be found was %s:\n %s" % \
+ (not_found, not_found_dir))
sys.exit(1)
krootfs_dir = options.rootfs_dir
@@ -241,10 +241,10 @@ def wic_create_subcommand(args, usage_str):
rootfs_dir = rootfs_dir_to_args(krootfs_dir)
- print "Creating image(s)...\n"
+ print("Creating image(s)...\n")
engine.wic_create(wks_file, rootfs_dir, bootimg_dir, kernel_dir,
native_sysroot, scripts_path, image_output_dir,
- options.compressor, options.debug)
+ options.compressor, options.bmap, options.debug)
def wic_list_subcommand(args, usage_str):
@@ -294,7 +294,7 @@ subcommands = {
def start_logging(loglevel):
- logging.basicConfig(filname='wic.log', filemode='w', level=loglevel)
+ logging.basicConfig(filename='wic.log', filemode='w', level=loglevel)
def main(argv):
@@ -318,6 +318,6 @@ if __name__ == "__main__":
try:
sys.exit(main(sys.argv[1:]))
except WicError as err:
- print >> sys.stderr, "ERROR:", err
+ print("ERROR:", err, file=sys.stderr)
sys.exit(1)
diff --git a/import-layers/yocto-poky/scripts/wipe-sysroot b/import-layers/yocto-poky/scripts/wipe-sysroot
index 9e067e8df..5e6b1a4e2 100755
--- a/import-layers/yocto-poky/scripts/wipe-sysroot
+++ b/import-layers/yocto-poky/scripts/wipe-sysroot
@@ -51,4 +51,4 @@ rm -rf $STAMPS_DIR/*/*/*.do_packagedata.*
rm -rf $STAMPS_DIR/*/*/*.do_packagedata_setscene.*
# The sstate manifests
-rm -rf $SSTATE_MANIFESTS/manifest-*.populate-sysroot
+rm -rf $SSTATE_MANIFESTS/manifest-*.populate_sysroot
diff --git a/import-layers/yocto-poky/scripts/yocto-bsp b/import-layers/yocto-poky/scripts/yocto-bsp
index 82a050ebd..6fb1f419c 100755
--- a/import-layers/yocto-poky/scripts/yocto-bsp
+++ b/import-layers/yocto-poky/scripts/yocto-bsp
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -30,120 +30,128 @@
# Tom Zanussi <tom.zanussi (at] intel.com>
#
-__version__ = "0.1.0"
-
import os
import sys
-import optparse
+import argparse
import logging
-scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
-lib_path = scripts_path + '/lib'
-sys.path = sys.path + [lib_path]
+scripts_path = os.path.dirname(os.path.realpath(__file__))
+sys.path.insert(0, scripts_path + '/lib')
+import argparse_oe
from bsp.help import *
from bsp.engine import *
-def yocto_bsp_create_subcommand(args, usage_str):
+def do_create_bsp(args):
"""
Command-line handling for BSP creation. The real work is done by
bsp.engine.yocto_bsp_create()
"""
- parser = optparse.OptionParser(usage = usage_str)
-
- parser.add_option("-o", "--outdir", dest = "outdir", action = "store",
- help = "name of BSP dir to create")
- parser.add_option("-i", "--infile", dest = "properties_file", action = "store",
- help = "name of file containing the values for BSP properties as a JSON file")
- parser.add_option("-c", "--codedump", dest = "codedump", action = "store_true",
- default = False, help = "dump the generated code to bspgen.out")
- parser.add_option("-s", "--skip-git-check", dest = "git_check", action = "store_false",
- default = True, help = "skip the git connectivity check")
- (options, args) = parser.parse_args(args)
-
- if len(args) != 2:
- logging.error("Wrong number of arguments, exiting\n")
- parser.print_help()
- sys.exit(1)
-
- machine = args[0]
- karch = args[1]
-
- if options.outdir:
- bsp_output_dir = options.outdir
+ if args.outdir:
+ bsp_output_dir = args.outdir
else:
- bsp_output_dir = "meta-" + machine
+ bsp_output_dir = "meta-" + args.bspname
- if options.git_check and not options.properties_file:
- print "Checking basic git connectivity..."
+ if args.git_check and not args.properties_file:
+ print("Checking basic git connectivity...")
if not verify_git_repo(GIT_CHECK_URI):
- print "Couldn't verify git connectivity, exiting\n"
- print "Details: couldn't access %s" % GIT_CHECK_URI
- print " (this most likely indicates a network connectivity problem or"
- print " a misconfigured git intallation)"
+ print("Couldn't verify git connectivity, exiting\n")
+ print("Details: couldn't access %s" % GIT_CHECK_URI)
+ print(" (this most likely indicates a network connectivity problem or")
+ print(" a misconfigured git intallation)")
sys.exit(1)
else:
- print "Done.\n"
+ print("Done.\n")
- yocto_bsp_create(machine, karch, scripts_path, bsp_output_dir, options.codedump, options.properties_file)
+ yocto_bsp_create(args.bspname, args.karch, scripts_path, bsp_output_dir, args.codedump, args.properties_file)
-def yocto_bsp_list_subcommand(args, usage_str):
+def do_list_bsp(args):
"""
Command-line handling for listing available BSP properties and
values. The real work is done by bsp.engine.yocto_bsp_list()
"""
- parser = optparse.OptionParser(usage = usage_str)
-
- parser.add_option("-o", "--outfile", action = "store", dest = "properties_file",
- help = "dump the possible values for BSP properties to a JSON file")
-
- (options, args) = parser.parse_args(args)
-
- if not yocto_bsp_list(args, scripts_path, options.properties_file):
- logging.error("Bad list arguments, exiting\n")
- parser.print_help()
- sys.exit(1)
+ yocto_bsp_list(args, scripts_path)
+def do_help_bsp(args):
+ """
+ Command-line help tool
+ """
+ help_text = command_help.get(args.subcommand)
+ pager = subprocess.Popen('less', stdin=subprocess.PIPE)
+ pager.communicate(bytes(help_text,'UTF-8'))
-subcommands = {
- "create": [yocto_bsp_create_subcommand,
- yocto_bsp_create_usage,
- yocto_bsp_create_help],
- "list": [yocto_bsp_list_subcommand,
- yocto_bsp_list_usage,
- yocto_bsp_list_help],
+command_help = {
+ "create": yocto_bsp_create_help,
+ "list": yocto_bsp_list_help
}
def start_logging(loglevel):
- logging.basicConfig(filname = 'yocto-bsp.log', filemode = 'w', level=loglevel)
+ logging.basicConfig(filename = 'yocto-bsp.log', filemode = 'w', level=loglevel)
def main():
- parser = optparse.OptionParser(version = "yocto-bsp version %s" % __version__,
- usage = yocto_bsp_usage)
+ parser = argparse_oe.ArgumentParser(description='Create a customized Yocto BSP layer.',
+ epilog="See '%(prog)s help <subcommand>' for more information on a specific command.")
- parser.disable_interspersed_args()
- parser.add_option("-D", "--debug", dest = "debug", action = "store_true",
+ parser.add_argument("-D", "--debug", action = "store_true",
default = False, help = "output debug information")
+ subparsers = parser.add_subparsers(title='subcommands', metavar='<subcommand>')
+ subparsers.required = True
+
+ create_parser = subparsers.add_parser('create', help='Create a new Yocto BSP',
+ description='Create a new Yocto BSP')
+ create_parser.add_argument('bspname', metavar='bsp-name', help='name for the new BSP')
+ create_parser.add_argument('karch', help='kernel architecture')
+ create_parser.add_argument("-o", "--outdir", help = "name of BSP dir to create")
+ create_parser.add_argument("-i", "--infile", dest = "properties_file",
+ help = "name of file containing the values for BSP properties as a JSON file")
+ create_parser.add_argument("-c", "--codedump", action = "store_true", default = False,
+ help = "dump the generated code to bspgen.out")
+ create_parser.add_argument("-s", "--skip-git-check", dest = "git_check", action = "store_false",
+ default = True, help = "skip the git connectivity check")
+ create_parser.set_defaults(func=do_create_bsp)
+
- (options, args) = parser.parse_args()
+ list_parser = subparsers.add_parser('list', help='List available values for options and BSP properties')
+ list_parser.add_argument('karch', help='kernel architecture')
+ prop_group = list_parser.add_mutually_exclusive_group()
+ prop_group.add_argument("--properties", action = "store_true", default = False,
+ help = "list all properties for the kernel architecture")
+ prop_group.add_argument("--property", help = "list available values for the property")
+ list_parser.add_argument("-o", "--outfile", dest = "properties_file",
+ help = "dump the possible values for BSP properties to a JSON file")
+
+ list_parser.set_defaults(func=do_list_bsp)
+
+ help_parser = subparsers.add_parser('help',
+ description='This command displays detailed help for the specified subcommand.')
+ help_parser.add_argument('subcommand', nargs='?')
+ help_parser.set_defaults(func=do_help_bsp)
+
+ args = parser.parse_args()
loglevel = logging.INFO
- if options.debug:
+ if args.debug:
loglevel = logging.DEBUG
start_logging(loglevel)
- if len(args):
- if args[0] == "help":
- if len(args) == 1:
- parser.print_help()
- sys.exit()
+ if args._subparser_name == "list":
+ if not args.karch == "karch" and not args.properties and not args.property:
+ print ("yocto-bsp list: error: one of the arguments --properties --property is required")
+ list_parser.print_help()
- invoke_subcommand(args, parser, yocto_bsp_help_usage, subcommands)
+ if args._subparser_name == "help":
+ if not args.subcommand:
+ parser.print_help()
+ return 0
+ elif not command_help.get(args.subcommand):
+ print ("yocto-bsp help: No manual entry for %s" % args.subcommand)
+ return 1
+ return args.func(args)
if __name__ == "__main__":
try:
@@ -153,4 +161,3 @@ if __name__ == "__main__":
import traceback
traceback.print_exc()
sys.exit(ret)
-
diff --git a/import-layers/yocto-poky/scripts/yocto-kernel b/import-layers/yocto-poky/scripts/yocto-kernel
index daaad0752..5c70d0c8c 100755
--- a/import-layers/yocto-poky/scripts/yocto-kernel
+++ b/import-layers/yocto-poky/scripts/yocto-kernel
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -351,7 +351,7 @@ subcommands = {
def start_logging(loglevel):
- logging.basicConfig(filname = 'yocto-kernel.log', filemode = 'w', level=loglevel)
+ logging.basicConfig(filename = 'yocto-kernel.log', filemode = 'w', level=loglevel)
def main():
diff --git a/import-layers/yocto-poky/scripts/yocto-layer b/import-layers/yocto-poky/scripts/yocto-layer
index 356972ece..d58facaa4 100755
--- a/import-layers/yocto-poky/scripts/yocto-layer
+++ b/import-layers/yocto-poky/scripts/yocto-layer
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
@@ -113,7 +113,7 @@ subcommands = {
def start_logging(loglevel):
- logging.basicConfig(filname = 'yocto-layer.log', filemode = 'w', level=loglevel)
+ logging.basicConfig(filename = 'yocto-layer.log', filemode = 'w', level=loglevel)
def main():
OpenPOWER on IntegriCloud